,zH~DWPROFILE34.BCK~gDWPROFILE34.BCK8BACKUP *.* ID:[ANONYMOUS.VMSNET]DWPROFILE34.BCK/SAVE/LOG TANNER `wxV5.5 _BLACK::  _$1$DUS4: V5.5-2 ~ *[DWP]AAAREADME.TXT;44+,^$s./ 4V:- 0123KPWO560ۮlJ7lJ89p|uGHJ N  Installation:F The logical name DWPUID needs to point to the directory that containsB DWPROFILE.UID, ACCESS.UID, PRIVS.UID, IDENTS.UID, RESETOWNER.COM,3 DELTREE.COM, MOVE_DIRECTORY.COM and DWPROFILE.HLB.D DWPROFILE.DAT must be put in DECW$SYSTEM_DEFAULTS: (World Readable) or DECW$USER_DEFAULTS: To rebuild: UIL/MOTIF DWPROFILE UIL/MOTIF ACCESS UIL/MOTIF PRIVS UIL/MOTIF IDENTS CC DWPROFILE LINK DWPROFILE,MOTIF/OPT0 LIBRARY/CREATE/HELP DWPROFILE.HLB DWPROFILE.HLP. or if you have MMS, use the DESCRIP.MMS file. Operation:G The interface is supposed to be intuitive, but here's what the buttons and stuff do:B 'Read Identifiers' forces the list of identifiers to be reloaded.B This is only necessary if new identifiers have been created since DWProfile was started.> 'Read' reads in the UAF entry given by the 'username' widget.A 'Find Next' will search the UAF for a field that is specified by the 'Select' menu.D 'Write' writes out those fields that were changed for the specifiedH record. If the UAF record is created, the UIC, owner, account, defaultI device and directory must also be specified. A new directory is createdG if necessary, the directory tree will be moved if the device/directory field changes.K 'Remove' removes the specified UAF record. The directory tree is deleted. 'Quit' exits the program.@ 'Access...' pops up or removes a window that displays the hours@ available for each category of access. Click and drag in these windows to change the time.E 'Privs...' pops up or removes a window that displays the default and authorized privileges.D 'Accounts...' pops up or removes a selection widget that provides aC list of group identifier names. A new UIC is calculated from this group number.D 'Idents...' pops up up or removes a pair of list boxes that containF the identifiers that may be granted and the identifiers that are held by the UIC.J 'Select' lets you select a field and contents for the 'Find Next' button.Non-obvious interactions:A If DWProfile is defined as a symbol, the initial username can beB specified after the symbol name, e.g. dwp :== $dwprofile and then dwp tanner.I If return is pressed in the 'username' widget, the 'Read' button routine is executed.D If the return key is pressed in the 'account' widget and the UIC is% [0,0], a new UIC will be calculated.Screen/font interactions:I The default 75DPI font used on 19" monitors, is smaller than the defaultD 100DPI font used on 15" monitors. If the application's widgets areG positioned for the 75DPI fonts, the text fields will probably overlap.F I've explicitly specified that the 75DPI 12 point Helvetica Bold fontE will be used by all widgets (see DWPROFILE.DAT). This is almost theC same as the default 75DPI font, except that the pitch is narrower.Customization:C There are a couple of non-widget resources that DWProfile can use.% The default value is in parenthesis.P DWProfile.quota (none) and DWProfile.overdraft (none) set the disk quota9 and overdraft used when creating a new directory.F DWProfile.defaultIdent ("") will position the list box of identifiersD to show this idenifier item if it exists. In other words, if there= is a 'staff' identifier that almost everyone gets, this will6 automatically scroll the list widget to show 'staff'.; DWProfile.showAccess (False), DWProfile.showPrivs (False),B DWProfile.showAccounts (False), DWProfile.showIdents (False) will- automatically display the specified windows.< DWProfile.readNotifyInterval (-2) will provide notificationF when reading a non-existant user name. See findNotifyInterval for a ' description of the value. > DWProfile.writeNotifyInterval (-2) will provide notificationI upon successful creation/update of a UAF record. See findNotifyInterval- for a description of the value. A DWProfile.findNotifyInterval (-1) will provide notification of aD non-existant UAF record when searching through the list of UIC-type6 identifiers. The interpretation of the interval is: -2 means don't notify at allP -1 means display the message on sys$output (the DECterm, fileview output, etc.) 0 means pop up a message windowV n means pop up a message window for n milliseconds or until the OK button is pressed.E DWProfile.versionLimit (0) will define the version limit of a user's? directory created by DWProfile. The version limit is normally% inherited from the parent directory.F DWProfile.minimumGroup (0) and DWProfile.maximumGroup (32767) specifyF the minimum and maximum groups that will be calculated when a new UICB is generated. For example, your group numbers start with 200 andF extend upward, but you have network servers with UIC group numbers atF 400. A new account string will generate a UIC group above 400 ratherC than in the 200's that you'd wish. Setting maximumGroup to be 255F (377 octal) will cause DWProfile to ignore UICs above [400,0] for the@ purposes of making a new UIC. minimumGroup won't mean anything6 unless you are creating a new range of group numbers.H You can override the resources in DECW$SYSTEM_DEFAULTS:DWPROFILE.DAT by; specifying resources in SYS$USER_DEFAULTS:DWPROFILE.DAT orG SYS$LOGIN:DECW$XDEFAULTS.DAT. Just remember that you have to log back) in to reload the new DECW$XDEFAULTS.DAT. Things to do:1 Add/Remove identifiers (maybe). Is this needed?@ It turns out that the login flags and quotas aren't used often./ Perhaps they can be put into their own window?C Then we'd have room for password changed date, pwd expired button, disk quota and overdraft.C Save a named default UAF record other than the DEFAULT UAF record.- Include things like identifiers, disk quota.G Pop up requestor on search for date fields, numeric fields, to ask forG a relation. Flags and privs would have a mask and match. Identifiers are easy ($find_holder).C Something else might be done with the list of matched identifiers.5 Write username/owner/etc. to a file? Print widget? , Use XtVaSetArgs(), XmNmodifyVerify callbackAcknowledgements:F This program was inspired by and named after Profile by John Howells.E Some of the techniques used in DWProfile were gratefully stolen from that program.A DELTREE.COM was posted to comp.os.vms by Jamie Hanrahan, Simpact Associates, San Diego CA.+Bugs/fixes/suggestions/praise/brickbats to: Tanner@Cerritos.EDU Bruce Tanner Cerritos College Computer Services 11110 Alondra Blvd. Norwalk, CA 90650 (310) 860-2451 x596*[DWP]ABSTRACT.TXT;1+,j ./ 4K- 0123KPWO56I7S/I89p|uGHJ N FDWProfile is a DECwindows Motif application that creates, modifies andHdeletes UAF records. It will perform most of the functions of AUTHORIZE@and will also automatically create, move and delete directories.KDWProfile will also search and display UAF records based on fields matching)(possibly wildcarded) selection criteria.Source: C, UIL+Requires: DECwindows Motif V1.0A or higher.*[DWP]ACCESS.UID;2+,r$5.3/ 43)- 0123KPWO456vttaF7taF89p|uGHJ N Pro|URM 1.1Motif Uil CompilerV1.1-00030-NOV-1992 17:58:08.83Access.+@<   L t<PH 0Xaccess_boxH I ,access_box  Thfp xHelphoursprimeH |DI| (Dprime_bTpdprime_boxprime_labelH x Ix ,prime_label h  imlaH &y" ISO8859-1 Prime Days:H H<IH ,xprime_boxl \  prime_labellal8(sunday_buttonsaturday_buttonfriday_buttonthursday_buttonwednesday_buttontuesday_buttonmonday_buttonH  tI \0monday_buttonhfLPrimeCreated  xhfPrimeChangedH !y ISO8859-1MondayH  I \0tuesday_buttonhfLPrimeCreated  xhfPrimeChangedH "y ISO8859-1TuesdayH  I `4wednesday_buttonfhfPimPrimeCreated  |hfimPrimeChangedH #y ISO8859-1WednsdayH  I \0thursday_buttonhfLPrimeCreatedted  xhfPrimeChangedgedH #y ISO8859-1ThursdayH  I \0friday_buttonnhfLPrimeCreatedted  xhfPrimeChangedgedH !y ISO8859-1FridayH  I \0saturday_buttonhfLPrimeCreatedted  xhfPrimeChangedgedH #y ISO8859-1SaturdayH   I \0sunday_buttonnhfLPrimeCreatedted  xhfPrimeChangedged H ! y ISO8859-1SundayH ` I` (Dhours_b( iPe@0   ieremoteddialupolocaltubatchutnetworksecondary_hours_2aysecondary_hours_1busecondary_labelprimary_hours_2primary_hours_1primary_labelH \ I\ 0primary_label L eH "8 y ISO8859-1PrimaryH \ I\ 0primary_hours_1 Ld eH 3 y/ ISO8859-1000000000011111111112222H hL Ih 0primary_hours_2 Xd  H 3 y/ ISO8859-1012345678901234567890123H \I\ 0secondary_label L^ H $Xy  ISO8859-1 Secondaryro|.  D4vcMl6$ d D   vR 0 `   l$4 $ D8  tz g S << $ fXX >ClassTable>ResourceTableremote_secondary_windowremote_secondary_labelremote_prime_windowremote_prime_labelremotedialup_secondary_windowdialup_secondary_labeldialup_prime_windowdialup_prime_labeldialuplocal_secondary_windowlocal_secondary_labellocal_prime_windowlocal_prime_labellocalbatch_secondary_windowbatch_secondary_labelbatch_prime_windowbatch_prime_labelbatchnetwork_secondary_windownetwork_secondary_labelnetwork_prime_windownetwork_prime_labelnetworksecondary_hours_2secondary_hours_1secondary_labelprimary_hours_2primary_hours_1primary_labelhourssunday_buttonsaturday_buttonfriday_buttonthursday_buttonwednesday_buttontuesday_buttonmonday_buttonprime_boxprime_labelprimeaccess_boxAccessro| TH `I` 4secondary_hours_1 PH 3y/ ISO8859-1000000000011111111112222H ltIl 4secondary_hours_2 \ H 3y/ ISO8859-1012345678901234567890123H <I (<networktnetwork_secondary_windownetwork_secondary_labelnetwork_prime_windownetwork_prime_labelH lIl 4network_prime_label \H #ly ISO8859-1Network:H I d8network_prime_windowhfT$WidgetCreateddH p$Ip 8network_secondary_label `^teH #y ISO8859-1Network:H PI h<network_secondary_windowhfX%WidgetCreatedH I (<batchk_2fXCtbatch_secondary_windowbatch_secondary_labellabatch_prime_windowibatch_prime_labelimH l4Il 4batch_prime_label \H !y ISO8859-1Batch:H I `4batch_prime_windowhfP&WidgetCreateddH pIp 8batch_secondary_labelf `^H !ly ISO8859-1Batch:H I d8batch_secondary_windowhfT'WidgetCreatedH $I (<localseFf'ttlocal_secondary_windowlocal_secondary_labellalocal_prime_windowilocal_prime_labelimH lIl 4local_prime_label \H ! y ISO8859-1Local:H , I `4local_prime_windowhfP(WidgetCreateddH p` Ip 8local_secondary_labelf `^H ! y ISO8859-1Local:H  I d8local_secondary_windowhfT)WidgetCreatedH  I (<dialupeZf)ttdialup_secondary_windowdialup_secondary_labeladialup_prime_windowdialup_prime_labelmH ld Il 4dialup_prime_label \H "D y ISO8859-1Dialup:H  I `4dialup_prime_windowhfP*WidgetCreateddH p Ip 8dialup_secondary_label `^H "y ISO8859-1Dialup:ro|,    dro| ( H I d8dialup_secondary_windowhfT+WidgetCreatedH I (<remotesnf+ttremote_secondary_windowremote_secondary_labelaremote_prime_windowremote_prime_labelmH lIl 4remote_prime_label \H "y ISO8859-1Remote:H I `4remote_prime_windowhfP,WidgetCreateddH p<Ip 8remote_secondary_label `^H "y ISO8859-1Remote:H dI d8remote_secondary_windowhfT-WidgetCreatedH 2y. ISO8859-1DWProfile: Access timesH @menus windows accessH ZVfrydefaultPositiondialogTitleheightlabelStringleftAttachmentleftOffsetleftWidgetorientationpackingsubMenuIdtopAttachmenttopOffsetwidthxycreateCallbackhelpCallbackvalueChangedCallbackH Z .J^kyXmCreateBulletinBoardDialogXmCreateDrawingAreaXmCreateFormXmCreateLabelXmCreateLabelGadgetXmCreateRowColumnXmCreateToggleButtonXmCreateToggleButtonGadget*[DWP]ACCESS.UIL;39+,./ 4L- 0123KPWO56l@_F7`@_F89p|uGHJ N module Access names = case_sensitive objects = { XmLabel = gadget; XmPushButton = gadget; XmToggleButton = gadget; } procedure WidgetCreated(integer); Help(string); object access_box: XmBulletinBoardDialog { arguments { XmNdialogTitle = "DWProfile: Access times"; XmNdefaultPosition = false; }; controls { XmForm prime; XmForm hours; }; callbacks { XmNhelpCallback = procedure Help("menus windows access"); }; }; value k_monday_button: 0; k_tuesday_button: 1; k_wednesday_button: 2; k_thursday_button: 3; k_friday_button: 4; k_saturday_button: 5; k_sunday_button: 6; procedure PrimeCreated(integer); PrimeChanged(integer); object prime: XmForm { arguments { XmNx = 5; XmNy = 5; }; controls { XmLabel prime_label; XmRowColumn prime_box; }; }; prime_label: XmLabel { arguments { XmNlabelString = "Prime Days:"; XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = 5; XmNtopAttachment = XmATTACH_FORM; XmNtopOffset = 2; }; }; prime_box: XmRowColumn { arguments { XmNleftAttachment = XmATTACH_WIDGET; XmNleftWidget = prime_label; XmNorientation = XmHORIZONTAL; XmNpacking = XmPACK_TIGHT; }; controls { XmToggleButton monday_button; XmToggleButton tuesday_button; XmToggleButton wednesday_button; XmToggleButton thursday_button; XmToggleButton friday_button; XmToggleButton saturday_button; XmToggleButton sunday_button; }; }; sunday_button: XmToggleButton { arguments { XmNlabelString = "Sunday"; }; callbacks { MrmNcreateCallback = procedure PrimeCreated(k_sunday_button); XmNvalueChangedCallback = procedure PrimeChanged(k_sunday_button); }; }; monday_button: XmToggleButton { arguments { XmNlabelString = "Monday"; }; callbacks { MrmNcreateCallback = procedure PrimeCreated(k_monday_button); XmNvalueChangedCallback = procedure PrimeChanged(k_monday_button); }; }; tuesday_button:P~DWPROFILE34.BCK [DWP]ACCESS.UIL;39L" XmToggleButton { arguments { XmNlabelString = "Tuesday"; }; callbacks { MrmNcreateCallback = procedure PrimeCreated(k_tuesday_button); XmNvalueChangedCallback = procedure PrimeChanged(k_tuesday_button); }; }; wednesday_button: XmToggleButton { arguments { XmNlabelString = "Wednsday"; }; callbacks { MrmNcreateCallback = procedure PrimeCreated(k_wednesday_button); XmNvalueChangedCallback = procedure PrimeChanged(k_wednesday_button); }; }; thursday_button: XmToggleButton { arguments { XmNlabelString = "Thursday"; }; callbacks { MrmNcreateCallback = procedure PrimeCreated(k_thursday_button); XmNvalueChangedCallback = procedure PrimeChanged(k_thursday_button); }; }; friday_button: XmToggleButton { arguments { XmNlabelString = "Friday"; }; callbacks { MrmNcreateCallback = procedure PrimeCreated(k_friday_button); XmNvalueChangedCallback = procedure PrimeChanged(k_friday_button); }; }; saturday_button: XmToggleButton { arguments { XmNlabelString = "Saturday"; }; callbacks { MrmNcreateCallback = procedure PrimeCreated(k_saturday_button); XmNvalueChangedCallback = procedure PrimeChanged(k_saturday_button); }; }; value k_widget_network_prime: 36; k_widget_network_secondary: 37; k_widget_batch_prime: 38; k_widget_batch_secondary: 39; k_widget_local_prime: 40; k_widget_local_secondary: 41; k_widget_dialup_prime: 42; k_widget_dialup_secondary: 43; k_widget_remote_prime: 44; k_widget_remote_secondary: 45; k_prime_label_tab: 5; k_prime_hour_tab: 100; k_secondary_label_tab: 350; k_secondary_hour_tab: 450; k_hours_height: 16; k_hours_width: 192; !runtime modified to hourSize * 24 k_hour_2_y: 13; object hours: XmForm { arguments { XmNx = 5; XmNy = 40; }; controls { XmLabel primary_label; XmLabel primary_hours_1; XmLabel primary_hours_2; XmLabel secondary_label; XmLabel secondary_hours_1; XmLabel secondary_hours_2; XmForm network; XmForm batch; XmForm local; XmForm dialup; XmForm remote; }; }; primary_label: XmLabel { arguments { XmNlabelString = "Primary"; XmNx = k_prime_label_tab; }; }; primary_hours_1: XmLabel { arguments { XmNlabelString = "000000000011111111112222"; XmNx = k_prime_hour_tab; }; }; primary_hours_2: XmLabel { arguments { XmNlabelString = "012345678901234567890123"; XmNx = k_prime_hour_tab; XmNy = k_hour_2_y; }; }; secondary_label: XmLabel { arguments { XmNlabelString = "Secondary"; XmNx = k_secondary_label_tab; }; }; secondary_hours_1: XmLabel { arguments { XmNlabelString = "000000000011111111112222"; XmNx = k_secondary_hour_tab; }; }; secondary_hours_2: XmLabel { arguments { XmNlabelString = "012345678901234567890123"; XmNx = k_secondary_hour_tab; XmNy = k_hour_2_y; }; }; network: XmForm { arguments { XmNy = 30; }; controls { XmLabel network_prime_label; XmDrawingArea network_prime_window; XmLabel network_secondary_label; XmDrawingArea network_secondary_window; }; }; network_prime_label: XmLabel { arguments { XmNlabelString = "Network:"; XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_prime_label_tab; }; }; network_prime_window: XmDrawingArea { arguments { XmNheight = k_hours_height; XmNwidth = k_hours_width; XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_prime_hour_tab; }; callbacks { MrmNcreateCallback = procedure WidgetCreated(k_widget_network_prime); }; }; network_secondary_label: XmLabel { arguments { XmNlabelString = "Network:"; XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_secondary_label_tab; }; }; network_secondary_window: XmDrawingArea { arguments { XmNheight = k_hours_height; XmNwidth = k_hours_width; XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_secondary_hour_tab; }; callbacks { MrmNcreateCallback = procedure WidgetCreated(k_widget_network_secondary); }; }; batch: XmForm { arguments { XmNy = 50; }; controls { XmLabel batch_prime_label; XmDrawingArea batch_prime_window; XmLabel batch_secondary_label; XmDrawingArea batch_secondary_window; }; }; batch_prime_label: XmLabel { arguments { XmNlabelString = "Batch:"; XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_prime_label_tab; }; }; batch_prime_window: XmDrawingArea { arguments { XmNheight = k_hours_height; XmNwidth = k_hours_width; XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_prime_hour_tab; }; callbacks { MrmNcreateCallback = procedure WidgetCreated(k_widget_batch_prime); }; }; batch_secondary_label: XmLabel { arguments { XmNlabelString = "Batch:"; XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_secondary_label_tab; }; }; batch_secondary_window: XmDrawingArea { arguments { XmNheight = k_hours_height; XmNwidth = k_hours_width; XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_secondary_hour_tab; }; callbacks { MrmNcreateCallback = procedure WidgetCreated(k_widget_batch_secondary); }; }; local: XmForm { arguments { XmNy = 70; }; controls { XmLabel local_prime_label; XmDrawingArea local_prime_window; XmLabel local_secondary_label; XmDrawingArea local_secondary_window; }; }; local_prime_label: XmLabel { arguments { XmNlabelString = "Local:"; XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_prime_label_tab; }; }; local_prime_window: XmDrawingArea { arguments { XmNheight = k_hours_height; XmNwidth = k_hours_width; XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_prime_hour_tab; }; callbacks { MrmNcreateCallback = procedure WidgetCreated(k_widget_local_prime); }; }; local_secondary_label: XmLabel { arguments { XmNlabelString = "Local:"; XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_secondary_label_tab; }; }; local_secondary_window: XmDrawingArea { arguments { XmNheight = k_hours_height; XmNwidth = k_hours_width; XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_secondary_hour_tab; }; callbacks { MrmNcreateCallback = procedure WidgetCreated(k_widget_local_secondary); }; }; dialup: XmForm { arguments { XmNy = 90; }; controls { XmLabel dialup_prime_label; XmDrawingArea dialup_prime_window; XmLabel dialup_secondary_label; XmDrawingArea dialup_secondary_window; }; }; dialup_prime_label: XmLabel { arguments { XmNlabelString = "Dialup:"; XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_prime_label_tab; }; }; dialup_prime_window: XmDrawingArea { arguments { XmNheight = k_hours_height; XmNwidth = k_hours_width; XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_prime_hour_tab; }; callbacks { MrmNcreateCallback = procedure WidgetCreated(k_widget_dialup_prime); }; }; dialup_secondary_label: XmLabel { arguments { XmNlabelString = "Dialup:"; XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_secondary_label_tab; }; }; dialup_secondary_window: XmDrawingArea { arguments { XmNheight = k_hours_height; XmNwidth = k_hours_width; XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_secondary_hour_tab; }; callbacks { MrmNcreateCallback = procedure WidgetCreated(k_widget_dialup_secondary); }; }; remote: XmForm { arguments { XmNy = 110; }; controls { XmLabel remote_prime_label; XmDrawingArea remote_prime_window; XmLabel remote_secondary_label; XmDrawingArea remote_secondary_window; }; }; remote_prime_label: XmLabel { arguments { XmNlabelString = "Remote:"; XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_prime_label_tab; }; }; remote_prime_window: XmDrawingArea { arguments { XmNheight = k_hours_height; XmNwidth = k_hours_width; XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_prime_hour_tab; }; callbacks { MrmNcreateCallback = procedure WidgetCreated(k_widget_remote_prime); }; }; remote_secondary_label: XmLabel { arguments { XmNlabelString = "Remote:"; XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_secondary_label_tab; }; }; remote_secondary_window: XmDrawingArea { arguments { XmNheight = k_hours_height; XmNwidth = k_hours_width; XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_secondary_hour_tab; }; callbacks { MrmNcreateCallback = procedure WidgetCreated(k_widget_remote_secondary); }; }; end module; *[DWP]BUTTONS.UIL;79+,./ 4C- 0123KPWO56AZʓP7rʓP89p|uGHJ N &value k_work_area_x: 100; k_work_area_spacing: 50; k_access_menu: 0; k_accounts_menu: 1; k_idents_menu: 2; k_privs_menu: 3; k_functions_menu: 4; k_find_menu: 5; k_find_button: 6; k_restart_button: 7; k_username_select: 0; k_account_select: 1; k_owner_select: 2; k_uic_select: 3; k_device_select: 4; k_directory_select: 5; k_cli_select: 6; k_lgicmd_select: 7; k_table_select: 8; k_lifetime_select: 9; k_expire_select: 10; k_logfail_select: 11; k_restart_select: 100; procedure Quit(); Read(); Find(); Write(); Remove(); Access(); Privs(); Idents(); Accounts(); ReadIdentifiers(); ButtonCreated(integer); Select(integer); object menu: XmMenuBar { arguments { XmNorientation = XmHORIZONTAL; XmNspacing = 10; XmNmenuHelpWidget = XmCascadeButton help_menu_entry; }; controls { XmCascadeButton file_menu_entry; XmCascadeButton windows_menu_entry; XmCascadeButton select_menu_entry; XmCascadeButton help_menu_entry; }; callbacks { XmNhelpCallback = procedure Help("menus"); }; }; file_menu_entry: XmCascadeButton { arguments { XmNlabelString = "File"; XmNmnemonic = keysym('F'); }; controls { XmPulldownMenu commands_menu; }; callbacks { XmNhelpCallback = procedure Help("menus file"); }; }; windows_menu_entry: XmCascadeButton { arguments { XmNlabelString = "Windows"; XmNmnemonic = keysym('W'); }; controls { XmPulldownMenu windows_menu; }; callbacks { XmNhelpCallback = procedure Help("menus windows"); }; }; select_menu_entry: XmCascadeButton { arguments { XmNlabelString = "Select"; XmNmnemonic = keysym('S'); }; controls { XmPulldownMenu select_menu; }; callbacks { XmNhelpCallback = procedure Help("menus select"); }; }; help_menu_entry: XmCascadeButton { arguments { XmNlabelString = "Help"; XmNmnemonic = keysym('H'); }; controls { XmPulldownMenu help_menu; }; }; commands_menu: XmPulldownMenu { controls { XmPushButton read_id_button; XmSeparator {}; XmPushButton read_button; XmPushButton find_menu_button; XmPushButton write_button; XmPushButton remove_button; XmPushButton quit_button; }; }; windows_menu: XmPulldownMenu { controls { XmToggleButton access_button; XmToggleButton accounts_button; XmToggleButton idents_button; XmToggleButton privs_button; }; }; privs_button: XmToggleButton { arguments { XmNlabelString = "Privs..."; }; callbacks { MrmNcreateCallback = procedure ButtonCreated(k_privs_menu); XmNvalueChangedCallback = procedure Privs; XmNhelpCallback = procedure Help("menus windows privs"); }; }; accounts_button: XmToggleButton { arguments { XmNlabelString = "Accounts..."; }; callbacks { MrmNcreateCallback = procedure ButtonCreated(k_accounts_menu); XmNvalueChangedCallback = procedure Accounts; XmNhelpCallback = procedure Help("menus windows accounts"); }; }; idents_button: XmToggleButton { arguments { XmNlabelString = "Identifiers..."; }; callbacks { MrmNcreateCallback = procedure ButtonCreated(k_idents_menu); XmNvalueChangedCallback = procedure Idents; XmNhelpCallback = procedure Help("menus windows idents"); }; }; access_button: XmToggleButton { arguments { XmNlabelString = "Access..."; }; callbacks { MrmNcreateCallback = procedure ButtonCreated(k_access_menu); XmNvalueChangedCallback = procedure Access; XmNhelpCallback = procedure Help("menus windows access"); }; }; select_menu: XmPulldownMenu { controls { XmPushButton restart_button; XmSeparator {}; XmPushButton username_button; XmPushButton account_button; XmPushButton owner_button; XmPushButton uic_button; XmPushButton device_button; XmPushButton directory_button; XmPushButton cli_button; XmPushButton lgicmd_button; XmPushButton table_button; XmPushButton lifetime_button; XmPushButton expire_button; XmPushButton logfail_button; }; }; restart_button: XmPushButton { arguments { XmNlabelString = "Reset search"; XmNsensitive = false; }; callbacks { MrmNcreateCallback = procedure ButtonCreated(k_restart_button); XmNactivateCallback = procedure Select(k_restart_select); XmNhelpCallback = procedure Help("menus select restart"); }; }; username_button: XmPushButton { arguments { XmNlabelString = "Username"; }; callbacks { XmNactivateCallback = procedure Select(k_username_select); }; }; account_button: XmPushButton { arguments { XmNlabelString = "Account"; }; callbacks { XmNactivateCallback = procedure Select(k_account_select); }; }; owner_button: XmPushButton { arguments { XmNlabelString = "Owner"; }; callbacks { XmNactivateCallback = procedure Select(k_owner_select); }; }; uic_button: XmPushButton { arguments { XmNlabelString = "UIC"; }; callbacks { XmNactivateCallback = procedure Select(k_uic_select); }; }; device_button: XmPushButton { arguments { XmNlabelString = "Device"; }; callbacks { XmNactivateCallback = procedure Select(k_device_select); }; }; directory_button: XmPushButton { arguments { XmNlabelString = "Directory"; }; callbacks { XmNactivateCallback = procedure Select(k_directory_select); }; }; cli_button: XmPushButton { arguments { XmNlabelString = "CLI"; }; callbacks { XmNactivateCallback = procedure Select(k_cli_select); }; }; lgicmd_button: XmPushButton { arguments { XmNlabelString = "LGICMD"; }; callbacks { XmNactivateCallback = procedure Select(k_lgicmd_select); }; }; table_button: XmPushButton { arguments { XmNlabelString = "DCL table"; }; callbacks { XmNactivateCallback = procedure Select(k_table_select); }; }; lifetime_button: XmPushButton { arguments { XmNlabelString = "Pwdlifetime"; }; callbacks { XmNactivateCallback = procedure Select(k_lifetime_select); }; }; expire_button: XmPushButton { arguments { XmNlabelString = "Expire date"; }; callbacks { XmNactivateCallback = procedure Select(k_expire_select); }; }; logfail_button: XmPushButton { arguments { XmNlabelString = "Login failures > 0"; }; callbacks { XmNactivateCallback = procedure Select(k_logfail_select); }; }; help_menu: XmPulldownMenu { controls { XmPushButton help_context; XmPushButton help_window; XmPushButton help_version; }; }; help_context: XmPushButton { arguments { XmNlabelString = "On Context"; }; callbacks { XmNactivateCallback = procedure Help("context"); }; }; help_window: XmPushButton { arguments { XmNlabelString = "On Window"; }; callbacks { XmNactivateCallback = procedure Help("overview"); }; }; help_version: XmPushButton { arguments { XmNlabelString = "On Version"; }; callbacks { XmNactivateCallback = procedure Help("version"); }; }; object functions: XmRowColumn { arguments { XmNorientation = XmHORIZONTAL; XmNx = k_work_area_x; XmNy = k_functions_y; XmNspacing = k_work_area_spacing; XmNborderWidth = 1; }; controls { XmPushButton read_button; XmPushButton find_button; XmPushButton write_button; XmPushButton remove_button; XmPushButton quit_button; }; callbacks { MrmNcreateCallback = procedure ButtonCreated(k_functions_menu); }; }; read_id_button: XmPushButton widget { arguments { XmNlabelString = "Read Identifiers"; }; callbacks { XmNactivateCallback = procedure ReadIdentifiers; XmNhelpCallback = procedure Help("menus file read_identifiers"); }; }; read_button: XmPushButton widget { arguments { XmNlabelString = "Read"; }; callbacks { XmNactivateCallback = procedure Read; XmNhelpCallback = procedure Help("menus file read"); }; }; find_menu_button: XmPushButton widget { arguments { XmNlabelString = "Find Next"; XmNsensitive = false; XmNaccelerator = "Next:"; XmNacceleratorText = "Next"; }; callbacks { MrmNcreateCallback = procedure ButtonCreated(k_find_menu); XmNactivateCallback = procedure Find; XmNhelpCallback = procedure Help("menus file find_next"); }; }; find_button: XmPushButton widget { arguments { XmNlabelString = "Find Next"; XmNsensitive = false; }; callbacks { MrmNcreateCallback = procedure ButtonCreated(k_find_button); XmNactivateCallback = procedure Find; XmNhelpCallback = procedure Help("menus file find_next"); }; }; write_button: XmPushButton widget { arguments { XmNlabelString = "Write"; }; callbacks { XmNactivateCallback = procedure Write; XmNhelpCallback = procedure Help("menus file write"); }; }; remove_button: XmPushButton widget { arguments { XmNlabelString = "Remove"; }; callbacks { XmNactivateCallback = procedure Remove; XmNhelpCallback = procedure Help("menus file remove"); }; }; quit_button: XmPushButton widget { arguments { XmNlabelString = "Quit"; XmNacceleratorText = "Ctrl/Z"; XmNaccelerator = "Ctrlz:"; }; callbacks { XmNactivateCallback = procedure Quit; XmNhelpCallback = procedure Help("menus file quit"); }; }; *[DWP]DELTREE.COM;4+,%?./ 4Jd- 0123KPWO56.@7 8.@89p|uGHJ N  $ old_veri = f$verify(0)2$ ! DELTREE.COM - delete a complete directory tree$+$ ! P1 = pathname of root of tree to delete$4$ ! All files and directories in the tree, including,$ ! the named root directory, are deleted. $ ! For instance, $ !$ ! @DELTREE [USER.SUBDIR]$ !I$ ! deletes everything in [USER.SUBDIR...], and also [USER]SUBDIR.DIR;1 .$ !F$ ! Note: There are faster ways to do this, but this is so elegant. $=$ old_priv = f$setprv("BYPASS") ! ensure we can delete files$ on control_y then goto done$ on warning then goto done2$ default = f$logical("SYS$DISK") + f$directory()$ $GET_PARAM:$ if p1 .eqs. "" then exit$)$ p1 = p1 - "..." ! don't want elipsisJ$ p1_dir = f$parse(p1,,,"DIRECTORY") - "]"! get the direc spec w/o trlng ];$ if p1_dir .eqs. "" then goto bad_param ! check for errors5$ p1_nd = f$parse(p1,,,"NODE") + - ! parse for errors f$parse(p1,,,"DEVICE")$ p1 = p1_nd + p1_dir9$ if p1 .eqs. "" then goto bad_param ! Report error, exit$'$ ! set default to the root of the tree$$ set default 'p1']$.$ ! delete each tree under the current default$ $DIR_LOOP:$ sub_dir = f$search("*.DIR;*"),$ if sub_dir .eqs. "" then goto end_dir_loop*$ sub_dir_name = f$parse(sub_dir,,,"NAME")*$ @'f$envi("PROCEDURE")' [.'sub_dir_name']$ goto dir_loop$END_DIR_LOOP:$8$ ! now there are no .DIRs here, delete everything else.$2$ if f$search("*.*;*") .eqs. "" then goto del_root)$ write sys$output "Deleting ''p1']*.*;*"$ on warning then goto del_root$!!! set file/prot=o:rwed *.*;*$ delete *.*;*$7$ ! finally, delete the .DIR for the current default. $ $DEL_ROOT:$F$ ! we set the default up one level, then remove the resulting defaultE$ ! directory string from the original root directory spec, so we're E$ ! left with the file name of the .DIR to be deleted. The characterF$ ! expression used here works properly even when the root is a ufd. $$ set default [-]E$ top_dir = ((p1_dir - (f$directory() - "]")) - "." - "[") + ".DIR;1"$ on warning then goto done@$ write sys$output "Deleting ''p1_nd'''f$directory()'''top_dir'" $ set file/prot=w:rwed 'top_dir'$ delete 'top_dir' $ goto done$ $BAD_PARAM:($ write sys$output "COULD NOT FIND ROOT"$$DONE:$ set default 'default'$ junk = f$setprv (old_priv)$ junk = f$veri(old_veri)*[DWP]DESCRIP.MMS;39+,.]./ 4W- 0123KPWO56`1]TB7`]TB89p|uGHJ N .suffixes .uid .uil.uil.uid UIL/MOTIF $(mms$source)Wbuild : dwprofile.exe, dwprofile.uid, access.uid, privs.uid, idents.uid, dwprofile.hlb  !donedwprofile.exe : dwprofile.obj2 $(link) $(linkflags) $(mms$source_list),motif/opt%dwprofile.obj : dwprofile.c, dwpdef.hKdwprofile.uid : dwprofile.uil, text.uil, flags.uil, quotas.uil, buttons.uildeb : % cflags = "/noopt/debug/define=debug" linkflags = "/deb"M if "''f$search("dwprofile.obj")'" .nes. "" then delete/nolog dwprofile.obj;* mms /override*[DWP]DWPDEF.H;51+,'+./ 4V- 0123KPWO56r(\]7Ld\]89p|uGHJ N "/* DWprofile table definitions */ #include uaidef #include #include #define NO 0 #define OFF 0 #define ON 1 #define k_widget_uic_trans 7 /* unused UAI codes */ #define k_widget_held_list 8 /* for non-UAI widgets */ #define k_widget_all_list 9 #define k_hours_height 16 #define MAX_WIDGET UAI$_MAX_ITEM_CODE #define PRIVS_BIAS 40 #define MAX_PRIVS PRIVS_BIAS * 2 #define MAX_PRIME 7 /* number of prime day widgets */ #define MAX_FLAGS 20 /* number of flag widgets */ #define access_menu 0 #define accounts_menu 1 #define idents_menu 2 #define privs_menu 3 #define functions_menu 4 #define find_menu 5 #define find_button 6 #define restart_button 7 #define MAX_MENUS (restart_button + 1) #define SDATA_LEN 65 /* size of largest UAI item + 1 */ /* Type of UAF element */ #define DWP_LALPHA 1 /* Alpha with length byte */ #define DWP_INT 2 /* Integer */ #define DWP_TIME 3 /* 3 byte time vector */ #define DWP_DATE 4 /* Date */ #define DWP_PRIV 5 /* Priv vector */ #define DWP_FLAG 6 /* Login flags */ #define DWP_UIC 7 /* UIC */ #define DWP_PRIME 8 /* Primary/seconday days */ #define DWP_ENCR 9 /* Encrypted password */ #define DWP_ALPHA 10 /* Alpha, no length byte */ #define DWP_CPU 11 /* CPU time in 10 ms units */ #define DWP_RDATE 12 /* Read-only Date */ #define DWP_RINT 13 /* Read-only Integer */ /* array of UAF elements */ struct { int code, size, type; } items[] = { {UAI$_ACCOUNT, 32, DWP_ALPHA}, {UAI$_ASTLM, 2, DWP_INT}, {UAI$_BATCH_ACCESS_P, 3, DWP_TIME}, {UAI$_BATCH_ACCESS_S, 3, DWP_TIME}, {UAI$_BIOLM, 2, DWP_INT}, {UAI$_BYTLM, 4, DWP_INT}, {UAI$_CLITABLES, 32, DWP_LALPHA}, {UAI$_CPUTIM, 4, DWP_CPU}, {UAI$_DEFCLI, 32, DWP_LALPHA}, {UAI$_DEFDEV, 32, DWP_LALPHA}, {UAI$_DEFDIR, 64, DWP_LALPHA}, {UAI$_DEF_PRIV, 8, DWP_PRIV}, {UAI$_DFWSCNT, 4, DWP_INT}, {UAI$_DIOLM, 2, DWP_INT}, {UAI$_DIALUP_ACCESS_P, 3, DWP_TIME}, {UAI$_DIALUP_ACCESS_S, 3, DWP_TIME}, {UAI$_ENQLM, 2, DWP_INT}, {UAI$_EXPIRATION, 8, DWP_DATE}, {UAI$_FILLM, 2, DWP_INT}, {UAI$_FLAGS, 4, DWP_FLAG}, {UAI$_JTQUOTA, 4, DWP_INT}, {UAI$_LGICMD, 64, DWP_LALPHA}, {UAI$_LASTLOGIN_I, 8, DWP_RDATE}, {UAI$_LASTLOGIN_N, 8, DWP_RDATE}, {UAI$_LOCAL_ACCESS_P, 3, DWP_TIME}, {UAI$_LOCAL_ACCESS_S, 3, DWP_TIME}, {UAI$_LOGFAILS, 2, DWP_RINT}, {UAI$_MAXACCTJOBS, 2, DWP_INT}, {UAI$_MAXDETACH, 2, DWP_INT}, {UAI$_MAXJOBS, 2, DWP_INT}, {UAI$_NETWORK_ACCESS_P, 3, DWP_TIME}, {UAI$_NETWORK_ACCESS_S, 3, DWP_TIME}, {UAI$_OWNER, 32, DWP_LALPHA}, {UAI$_PBYTLM, 4, DWP_INT}, {UAI$_PGFLQUOTA, 4, DWP_INT}, {UAI$_PRCCNT, 2, DWP_INT}, {UAI$_PRI, 1, DWP_INT}, {UAI$_PRIMEDAYS, 1, DWP_PRIME}, {UAI$_PRIV, 8, DWP_PRIV}, {UAI$_PWD, 8, DWP_ENCR}, {UAI$_PWD_DATE, 8, DWP_RDATE}, {UAI$_PWD_LENGTH, 1, DWP_INT}, {UAI$_PWD_LIFETIME, 8, DWP_DATE}, {UAI$_PWD2_DATE, 8, DWP_RDATE}, {UAI$_QUEPRI, 1, DWP_INT}, {UAI$_REMOTE_ACCESS_P, 3, DWP_TIME}, {UAI$_REMOTE_ACCESS_S, 3, DWP_TIME}, {UAI$_SHRFILLM, 2, DWP_INT}, {UAI$_TQCNT, 2, DWP_INT}, {UAI$_UIC, 4, DWP_UIC}, {UAI$_USERNAME, 12, DWP_ALPHA}, {UAI$_WSEXTENT, 4, DWP_INT}, {UAI$_WSQUOTA, 4, DWP_INT}, {0, 0, 0} }; /* array of UAF elements that can be selected for the 'find' button */ /* indexed by k_*_select in buttons.uil */ struct { int code, size, type; String name; } select_data[] = { {UAI$_USERNAME, 12, DWP_ALPHA, "Username"}, {UAI$_ACCOUNT, 32, DWP_ALPHA, "Account"}, {UAI$_OWNER, 32, DWP_LALPHA, "Owner"}, {UAI$_UIC, 4, DWP_UIC, "UIC"}, {UAI$_DEFDEV, 32, DWP_LALPHA, "Device"}, {UAI$_DEFDIR, 64, DWP_LALPHA, "Directory"}, {UAI$_DEFCLI, 32, DWP_LALPHA, "CLI"}, {UAI$_LGICMD, 64, DWP_LALPHA, "LGICMD"}, {UAI$_CLITABLES, 32, DWP_LALPHA, "DCL Table"}, {UAI$_PWD_LIFETIME, 8, DWP_DATE, "Pwdlifetime"}, {UAI$_EXPIRATION, 8, DWP_DATE, "Expire Date"}, {UAI$_LOGFAILS, 2, DWP_RINT, "Login failures"}, { 0, 0, 0, (char *) NULL} }; /* ubiquitous itemlist3 */ struct itemlist3 { short buflen; short itmcode; caddr_t bufadr; short *retadr; }; typedef unsigned short int ushort; /* Identifier list node structure */ typedef struct ident_node { String name; /* name of identifier */ Cardinal identifier; /* value of identifier */ enum {uic_ident, account, intern_ident, user_ident} status; /* uic_ident = [n,m] type identifier */ /* account = [n,*] type identifier */ /* intern_ident = interactive, batch, sys$node_x */ /* user_ident = regular identifier (%x080010000+n) */ struct ident_node *next; } ident; /* Held identifier list node structure */ typedef struct held_node { String name; /* name of identifier */ Cardinal identifier; /* value of identifier */ enum {original, del_orig, add_ident} status; /* original = identifier was held when user read in */ /* del_orig = original identifier to be removed upon write */ /* add_ident = identifier to be added upon write */ struct held_node *next; } held_ident; /* non-widget resources */ typedef struct { Cardinal quota, overdraft, version_limit, minimum_group, maximum_group, hour_size; int read_interval, write_interval, find_interval; String default_ident; Boolean show_access, show_accounts, show_idents, show_privs, show_work; } ApplicationData, *ApplicationDataPtr; static XtResource resources[] = { {"defaultIdent", "DefaultIdent", XtRString, sizeof(String), XtOffset(ApplicationDataPtr, default_ident), XtRString, ""}, {"hourSize", "HourSize", XtRInt, sizeof(int), XtOffset(ApplicationDataPtr, hour_size), XtRString, "7"}, {"readNotifyInterval", "PopupTime", XtRInt, sizeof(int), XtOffset(ApplicationDataPtr, read_interval), XtRString, "-2"}, {"writeNotifyInterval", "PopupTime", XtRInt, sizeof(int), XtOffset(ApplicationDataPtr, write_interval), XtRString, "-2"}, {"findNotifyInterval", "PopupTime", XtRInt, sizeof(int), XtOffset(ApplicationDataPtr, find_interval), XtRString, "-1"}, {"overdraft", "Overdraft", XtRInt, sizeof(int), XtOffset(ApplicationDataPtr, overdraft), XtRString, "0"}, {"quota", "Quota", XtRInt, sizeof(int), XtOffset(ApplicationDataPtr, quota), XtRString, "0"}, {"showAccess", "ShowAccess", XtRBoolean, sizeof(Boolean), XtOffset(ApplicationDataPtr, show_access), XtRString, "False"}, {"showAccounts", "AutoShow", XtRBoolean, sizeof(Boolean), XtOffset(ApplicationDataPtr, show_accounts), XtRString, "False"}, {"showPrivs", "AutoShow", XtRBoolean, sizeof(Boolean), XtOffset(ApplicationDataPtr, show_privs), XtRString, "False"}, {"showIdents", "AutoShow", XtRBoolean, sizeof(Boolean), XtOffset(ApplicationDataPtr, show_idents), XtRString, "False"}, {"showWorkBox", "AutoShow", XtRBoolean, sizeof(Boolean), XtOffset(ApplicationDataPtr, show_work), XtRString, "True"}, {"versionLimit", "VersionLimit", XtRInt, sizeof(int), XtOffset(ApplicationDataPtr, version_limit), XtRString, "0"}, {"minimumGroup", "MinimumGroup", XtRInt, sizeof(int), XtOffset(ApplicationDataPtr, minimum_group), XtRString, "0"}, {"maximumGroup", "MaximumGroup", XtRInt, sizeof(int), XtOffset(ApplicationDataPtr, maximum_group), XtRString, "32767"} }; #define dwp32_width 32 #define dwp32_height 32 static char dwp32_bits[] = { 0x00, 0x00, 0x20, 0x80, 0xfe, 0xff, 0xaf, 0xbf, 0x82, 0x20, 0xa8, 0xaa, 0xfe, 0xff, 0xaf, 0xbf, 0x82, 0x20, 0xa8, 0xaa, 0xfe, 0xff, 0xaf, 0xbf, 0x82, 0x20, 0xa8, 0xaa, 0xfe, 0xff, 0xaf, 0xbf, 0xaa, 0xaa, 0xaa, 0xaa, 0xfe, 0xff, 0xaf, 0xbf, 0xaa, 0xaa, 0xaa, 0xaa, 0xfe, 0xff, 0xaf, 0xbf, 0xfe, 0xff, 0x2f, 0x80, 0xe2, 0x38, 0xee, 0xff, 0xfe, 0xff, 0xef, 0xff, 0xe2, 0x38, 0xee, 0xff, 0xfe, 0xff, 0xef, 0xff, 0xe2, 0x38, 0xee, 0xff, 0xfe, 0xff, 0xef, 0xff, 0xe2, 0x38, 0xee, 0xff, 0xfe, 0xff, 0xef, 0xff, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xe0, 0xff, 0xfe, 0xff, 0xef, 0xff, 0x02, 0x06, 0xe8, 0xff, 0xfe, 0xff, 0xef, 0xff, 0x02, 0x06, 0xe8, 0xff, 0xfe, 0xff, 0xef, 0xff, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff}; static String uidname[] = { "DWPUID:DWPROFILE.UID", "DWPUID:ACCESS.UID", "DWPUID:PRIVS.UID", "DWPUID:IDENTS.UID", }; #define HELP_LIBRARY "DWPUID:DWPROFILE.HLB" pVL9~DWPROFILE34.BCK?'j [DWP]DWPROFILE.C;466*[DWP]DWPROFILE.C;466+,?'j./ 4- 0123KPWO56P6Θ6r7P.6r89p|uGHJ N z/* DWPROFILE.C -- Authorize/Profile/DECburger replacement */ /* Copyright 1990,1991,1992 Bruce Tanner - Cerritos College */ /* * Revision history: * 9/4/90 Version 1.0 * 9/12/90 Version 1.1 * Added popup menu for access, privs boxes. * Forced 12 point Helvetica Bold font. * Moved lots of stuff to the resource file. * Added date of last login, logfails. * 10/10/90 Version 2.0 * Create/delete directory. * Add/delete disk quota. * Grant/revoke identifiers. * Take username from command line. * 11/28/90 Version 2.1 * Fixed: Dup UIC from calc_uic() on multiple adds from same record. * Fixed: Identifier not changed on UIC change. * 8/21/91 Version 2.2 * Fixed: directory creation; add quota THEN create directory. * Check for blank owner, account DEFAULT, defdir [USER] * Fixed: New account created bad UIC. * 10/9/92 Version 2.3 * Keep list of identifiers up to date. * Minor code cleanup. * 10/27/92 Version 3.0 * Converted to Motif. * 11/4/92 Version 3.1 * Added Select menu and Find Next button. * 11/13/92 Version 3.2 * Added Help menu item. * 11/30/92 Version 3.3 * Beta test bug fixes and the usual code randomizing. * 1/19/93 Version 3.4 * Adding new account didn't insert account identifier in Rightslist. * Added casts for /STANDARD=PORTABLE. */ #define TITLE "DWProfile" #module DWProfile "DWProfile V3.4" #include descrip #include string #include ssdef #include stdio #include clidef #include jpidef #include prvdef #include rmsdef #include strdef #include str$routines #include #include "dwpdef.h" #include #include #include #include #include #include #include #include #include #include #include #include static MrmHierarchy Hierarchy; static MrmType class; static XtAppContext context; static Widget toplevel, dwprofile_main, access_box, privs_box, widget_array[MAX_WIDGET], flags_array[MAX_FLAGS], prime_array[MAX_PRIME], privs_array[MAX_PRIVS], button_array[MAX_MENUS], idents_box, accounts_box, work_box; static void init_application(), get_gc(), update_prime(), update_time(Cardinal), update_strings(), update_flags(), update_privs(), set_translations(), set_handlers(), trans_uic(Cardinal), make_cursor(), build_popup(), update_held(), set_defaults(), build_accounts(), pos_functions(), DWPerror(String, String, int), DWPmsg(String, Cardinal), progress(ident *), read_identifiers(Boolean); static Boolean get_record(String), parse_uic(int); static XtEventHandler popup_handler(), access_handler(); static XtCallbackProc WidgetCreated(), WidgetChanged(), Quit(), Write(), Read(), Find(), Remove(), Access(), Privs(), Accounts(), Idents(), FlagsCreated(), FlagsChanged(), PrimeCreated(), PrimeChanged(), PrivsCreated(), PrivsChanged(), AccountChanged(), CautionCallback(), MessageCallback(), ReadIdentifiers(), ListSelect(), IdentsCancelCallback(), ButtonCreated(), Select(), FindCancelCallback(), Help(), DestroyHelpCallback(); static XtActionProc return_key(), select_key(); static MrmRegisterArg regvec[] = { {"WidgetCreated", (caddr_t) WidgetCreated}, {"WidgetChanged", (caddr_t) WidgetChanged}, {"Quit", (caddr_t) Quit}, {"Write", (caddr_t) Write}, {"Read", (caddr_t) Read}, {"Find", (caddr_t) Find}, {"Remove", (caddr_t) Remove}, {"Access", (caddr_t) Access}, {"Privs", (caddr_t) Privs}, {"Accounts", (caddr_t) Accounts}, {"FlagsCreated", (caddr_t) FlagsCreated}, {"FlagsChanged", (caddr_t) FlagsChanged}, {"PrimeCreated", (caddr_t) PrimeCreated}, {"PrimeChanged", (caddr_t) PrimeChanged}, {"PrivsCreated", (caddr_t) PrivsCreated}, {"PrivsChanged", (caddr_t) PrivsChanged}, {"ReadIdentifiers", (caddr_t) ReadIdentifiers}, {"Idents", (caddr_t) Idents}, {"ListSelect", (caddr_t) ListSelect}, {"ButtonCreated", (caddr_t) ButtonCreated}, {"Select", (caddr_t) Select}, {"Help", (caddr_t) Help} }; static char return_translation[] = "Return: return_key()", select_translation[] = "osfSelect: select_key()"; static XtActionsRec action_table[] = { {"return_key", (XtActionProc) return_key}, {"select_key", (XtActionProc) select_key} }; static String fallbacks[] = { "*fontList: -Adobe-Helvetica-Bold-R-Normal--12-120-75-75-P-*-*-*", NULL }; static String select_string, unpad(String); static ApplicationData resource_data; static struct { int idata; Boolean changed; char sdata[SDATA_LEN], odata[SDATA_LEN]; } uafdata[MAX_WIDGET]; static struct itemlist3 itmlst[MAX_WIDGET]; static Display *top_display; static Window top_window; static GC gc_draw, gc_clear; static Boolean setting_widgets, setting_prime, setting_flags, setting_privs; static ident *ident_list = NULL, *select_ptr = NULL, *ident_ptr, *found_ptr, *found_add, found_list = {NULL, 0, 0, NULL}; static held_ident *held_list = NULL; static Cardinal uic_count, account_count, ident_count, select_index; static XtIntervalId timeout_id, progress_id; static Cursor wait_cursor; static XtWorkProcId idents_work_proc_id, find_work_proc_id; main(unsigned int argc, char *argv[]) { Cardinal status, ac; Arg arglist[5]; Pixmap icon_pixmap; init_application(); MrmInitialize(); DXmInitialize(); ac = 0; XtSetArg(arglist[ac], XmNtitle, TITLE); ac++; XtSetArg(arglist[ac], XmNmwmDecorations, MWM_DECOR_MENU |MWM_DECOR_BORDER | MWM_DECOR_TITLE | MWM_DECOR_MINIMIZE); ac++; toplevel = XtAppInitialize(&context, "DWProfile", (XrmOptionDescList) NULL, 0, &argc, argv, fallbacks, arglist, ac); status = MrmOpenHierarchy(XtNumber(uidname), uidname, NULL, &Hierarchy); if (status != MrmSUCCESS) lib$signal(status); status = MrmRegisterNames(regvec, XtNumber(regvec)); if (status != MrmSUCCESS) lib$signal(status); if ((MrmFetchWidget(Hierarchy, "dwprofile_main", toplevel, &dwprofile_main, &class)) != MrmSUCCESS) XtAppError(context, "Error Fetching main widget"); XtGetApplicationResources(toplevel, &resource_data, resources, XtNumber(resources), (ArgList) NULL, 0); XtManageChild(dwprofile_main); XtRealizeWidget(toplevel); top_display = XtDisplay(toplevel); top_window = XtWindow(toplevel); icon_pixmap = XCreateBitmapFromData(top_display, top_window, dwp32_bits, dwp32_width, dwp32_height); /* Set up the WM icons via shell widget attributes */ ac = 0; XtSetArg(arglist[ac], XmNiconPixmap, icon_pixmap); ac++; XtSetValues(toplevel, arglist, ac); make_cursor(); /* create wait_cursor */ set_translations(); /* set text widget translations */ build_popup(); /* build a popup menu */ get_gc(); /* set up stuff for access windows */ pos_functions(); /* center the functions box */ if (argc == 1) get_record(""); /* Initialize text fields */ /* load username if given on command line */ if (argc == 2) if (!get_record(argv[1])) if (get_record("DEFAULT")) set_defaults(argv[1]); else DWPerror("Main Init", "Cannot read username DEFAULT", 0); /* set up the windows based on resource file */ if (resource_data.show_access) Access((Widget) NULL, (XtPointer) NULL, (XmPushButtonCallbackStruct *) NULL); if (resource_data.show_privs) Privs((Widget) NULL, (XtPointer) NULL, (XmPushButtonCallbackStruct *) NULL); if (resource_data.show_accounts) Accounts((Widget) NULL, (XtPointer) NULL, (XmPushButtonCallbackStruct *) NULL); if (resource_data.show_idents) Idents((Widget) NULL, (XtPointer) NULL, (XmPushButtonCallbackStruct *) NULL); /* traverse to the username widget */ XmProcessTraversal(widget_array[UAI$_USERNAME], XmTRAVERSE_CURRENT); XtAppMainLoop(context); } /*** Initialization Routines ***/ /* * Clear out widget arrays */ static void init_application() { Cardinal ind; for (ind = 0; ind < MAX_WIDGET; ind++) widget_array[ind] = (Widget) NULL; for (ind = 0; ind < MAX_FLAGS; ind++) flags_array[ind] = (Widget) NULL; for (ind = 0; ind < MAX_PRIVS; ind++) privs_array[ind] = (Widget) NULL; for (ind = 0; ind < MAX_PRIME; ind++) prime_array[ind] = (Widget) NULL; } /* * Load the cursor font and allocate colors for the cursor */ static void make_cursor() { Colormap cmap; XColor red, white, dummy; Font cursorfont; cmap = DefaultColormap(top_display, DefaultScreen(top_display)); XAllocNamedColor(top_display, cmap, "white", &white, &dummy); XAllocNamedColor(top_display, cmap, "red", &red, &dummy); cursorfont = XLoadFont(top_display, "DECW$CURSOR"); wait_cursor = XCreateGlyphCursor(top_display, cursorfont, cursorfont, decw$c_wait_cursor, decw$c_wait_cursor+1, &red, &white); } /* * Override the translation table of the Username, Account text widgets * Override Select translation for selectable fields */ static void set_translations() { Cardinal si; XtTranslations compiled_trans; XtAppAddActions(context, action_table, XtNumber(action_table)); compiled_trans = XtParseTranslationTable(return_translation); XtOverrideTranslations(widget_array[UAI$_USERNAME], compiled_trans); XtOverrideTranslations(widget_array[UAI$_ACCOUNT], compiled_trans); compiled_trans = XtParseTranslationTable(select_translation); for(si = 0; select_data[si].code; si++) if (select_data[si].type != DWP_RINT) XtOverrideTranslations(widget_array[select_data[si].code], compiled_trans); } /* * Set up event handlers for access windows */ static void set_handlers() { Cardinal wi; for (wi = UAI$_NETWORK_ACCESS_P; wi <= UAI$_REMOTE_ACCESS_S; wi++) if (widget_array[wi]) XtAddEventHandler(widget_array[wi], ButtonPressMask | ButtonReleaseMask | ExposureMask | Button1MotionMask, FALSE, access_handler, wi); } /* * Build a MenuPopup widget and children */ static void build_popup() { #define MENUS 4 Arg arglist[2]; Cardinal ac, ind; struct { String resource; String title; XtCallbackProc callback; } params[MENUS] = { {"access_button", "Access...", (XtCallbackProc) Access}, {"privs_button", "Privs...", (XtCallbackProc) Privs}, {"accounts_button", "Accounts...", (XtCallbackProc) Accounts}, {"idents_button", "Identifiers...", (XtCallbackProc) Idents} }; Widget menu_items[MENUS], popup_menu; popup_menu = XmCreatePopupMenu(dwprofile_main, "popup", (ArgList) NULL, 0); /* pass popup_menu as the client data for popup() */ XtAddEventHandler(dwprofile_main, ButtonPressMask, FALSE, popup_handler, popup_menu); for (ind = 0; ind < MENUS; ind++) { ac = 0; XtSetArg(arglist[ac], XmNlabelString, XmStringCreateSimple(params[ind].title)); ac++; menu_items[ind] = XmCreatePushButtonGadget(popup_menu, params[ind].resource, arglist, ac); XtAddCallback(menu_items[ind], XmNactivateCallback, params[ind].callback, 0); } XtManageChildren(menu_items, ind); /* just the buttons, not the menu */ } /* * Set up the graphic contexts gc_draw and gc_clear */ static void get_gc() { Cardinal ac; Arg arglist[2]; XGCValues gc_values; Pixel foreground, background; ac = 0; XtSetArg(arglist[ac], XmNforeground, &foreground); ac++; XtSetArg(arglist[ac], XmNbackground, &background); ac++; XtGetValues(dwprofile_main, arglist, ac); gc_values.foreground = foreground; gc_values.background = background; gc_draw = XtGetGC(dwprofile_main, GCForeground | GCBackground, &gc_values); gc_values.foreground = background; gc_clear = XtGetGC(dwprofile_main, GCForeground, &gc_values); } /*** Utility Routines ***/ /* * Set the username, password and directory name * Called by main, Read */ static void set_defaults(String user) { Arg arg[1]; char text[40]; /* SetString sets .sdata and .changed */ XmTextSetString(widget_array[UAI$_USERNAME], user); XmTextSetString(widget_array[UAI$_PWD], user); sprintf(uafdata[UAI$_DEFDIR].sdata, "[%s]", user); XmTextSetString(widget_array[UAI$_DEFDIR], uafdata[UAI$_DEFDIR].sdata); sprintf(text, "%s\n%s", TITLE, user); XtSetArg(arg[0], XmNiconName, text); XtSetValues(toplevel, arg, 1); /* update the icon name */ } /* * Center the functions box */ static void pos_functions() { Arg arglist[5]; Cardinal ac; Dimension funct_width, main_width, funct_x, new_x; ac = 0; XtSetArg(arglist[ac], XmNwidth, &funct_width); ac++; XtSetArg(arglist[ac], XmNx, &funct_x); ac++; XtGetValues(button_array[functions_menu], arglist, ac); ac = 0; XtSetArg(arglist[ac], XmNwidth, &main_width); ac++; XtGetValues(dwprofile_main, arglist, ac); new_x = (main_width - funct_width) / 2; ac = 0; XtSetArg(arglist[ac], XmNx, new_x); ac++; XtSetValues(button_array[functions_menu], arglist, ac); } /* * Lookup a UAF record and fill those widgets * Called by Read and program initialization */ static Boolean get_record(String acct) { Cardinal status, ind, resid, rdbctx = 0, holder[2] = {0, 0}; ushort namlen; held_ident *hptr, *tptr; Arg arg[1]; char text[40], nambuf[40]; $DESCRIPTOR(acct_dsc, acct); $DESCRIPTOR(name_dsc, nambuf); /* reset all the data storage */ for (ind = 0; ind < MAX_WIDGET; ind++) { memset(uafdata[ind].sdata, 0, SDATA_LEN); uafdata[ind].idata = 0; uafdata[ind].changed = FALSE; } /* acct = "" means clear form */ if (strlen(acct)) { acct_dsc.dsc$w_length = strlen(acct); for (ind = 0; ; ind++) { itmlst[ind].buflen = items[ind].size; itmlst[ind].itmcode = items[ind].code; if (!items[ind].code) break; /* exit after copying zero entry */ if (items[ind].size > 4) /* anything that fits goes in .idata */ itmlst[ind].bufadr = (caddr_t) uafdata[items[ind].code].sdata; else itmlst[ind].bufadr = (caddr_t) &uafdata[items[ind].code].idata; itmlst[ind].retadr = (short *) NULL; } status = sys$getuai(0, 0, &acct_dsc, itmlst, 0, 0, 0); if ((status & 7) != SS$_NORMAL) /* often SS$_BUFFEROVF */ return FALSE; /* probably not found */ /* remember the old values of device and directory */ memcpy(uafdata[UAI$_DEFDEV].odata, uafdata[UAI$_DEFDEV].sdata, 32); memcpy(uafdata[UAI$_DEFDIR].odata, uafdata[UAI$_DEFDIR].sdata, 64); } for (hptr = held_list; hptr; hptr = tptr) { /* free old held list */ tptr = hptr->next; XtFree(hptr); } held_list = (held_ident *) NULL; if (strlen(acct)) { holder[0] = uafdata[UAI$_UIC].idata; for (hptr = held_list;;) { status = sys$find_held(holder, &resid, 0, &rdbctx); if (status == SS$_NOSUCHID) break; if (status != SS$_NORMAL) { sys$finish_rdb(&rdbctx); DWPmsg("get_record", status); break; } if (hptr) hptr = hptr->next = XtNew(held_ident); else held_list = hptr = XtNew(held_ident); hptr->next = (held_ident *) NULL; hptr->identifier = resid; hptr->status = original; status = sys$idtoasc(resid, &namlen, &name_dsc, 0, 0, 0); nambuf[namlen] = '\0'; hptr->name = XtNewString(nambuf); } } uafdata[UAI$_PWD].sdata[0] = '\0'; /* discard password for Write()*/ update_strings(); /* update the string widgets */ update_flags(); /* update the flag toggle button widgets */ update_prime(); /* update the primary days and time widgets */ update_privs(); /* update the privs toggle button widgets */ update_held(); /* update the list of held identifiers */ if (strlen(acct)) { sprintf(text, "%s\n%s", TITLE, acct); XtSetArg(arg[0], XmNiconName, text); XtSetValues(toplevel, arg, 1); /* update the icon name */ } return TRUE; } /* * Find all UAI elements that have (text) widgets and update them */ static void update_strings() { Cardinal ind, value, status; ushort length; char str[SDATA_LEN], *ptr; Arg arg[1]; XmString xmstr; setting_widgets = TRUE; for (ind = 0; value = items[ind].code; ind++) if (widget_array[value]) switch (items[ind].type) { case DWP_LALPHA: /* string with length byte */ /* can't use unpad() because owner field contains spaces */ length = (ushort) uafdata[value].sdata[0]; uafdata[value].sdata[length+1] = '\0'; XmTextSetString(widget_array[value], &uafdata[value].sdata[1]); break; case DWP_ALPHA: /* string (username, account) */ XmTextSetString(widget_array[value], unpad(uafdata[value].sdata)); break; case DWP_ENCR: /* password */ XmTextSetString(widget_array[value], ""); /* clear field */ break; case DWP_DATE: /* text date */ { $DESCRIPTOR(time_dsc, str); sys$asctim(&length, &time_dsc, uafdata[value].sdata, 0); str[length] = '\0'; ptr = strstr(str, ":00.00"); if (ptr) *ptr = '\0'; if (!strncmp(str, "17-NOV-1858", 11)) strcpy(str,"(none)"); /* handle 'none' */ XmTextSetString(widget_array[value], str); break; } case DWP_RDATE: /* label date */ { $DESCRIPTOR(time_dsc, str); sys$asctim(&length, &time_dsc, uafdata[value].sdata, 0); str[length] = '\0'; ptr = strrchr(str, ':'); if (ptr) *ptr = '\0'; /* chop off :ss.cc */ if (!strncmp(str, "17-NOV-1858", 11)) strcpy(str,"(none)"); /* handle 'none' */ xmstr = XmStringCreateSimple(str); XtSetArg(arg[0], XmNlabelString, xmstr); XtSetValues(widget_array[value], arg, 1); XmStringFree(xmstr); break; } case DWP_CPU: /* CPU time */ if (!uafdata[value].idata) strcpy(str, "(none)"); else { Cardinal dd, hh, mm, ss, cc, time = uafdata[value].idata; dd = time / 8640000; time -= dd * 8640000; hh = time / 360000; time -= hh * 360000; mm = time / 6000; time -= mm * 6000; ss = time / 100; time -= ss * 100; cc = time; sprintf(str, "%d %02d:%02d:%02d.%02d", dd, hh, mm, ss, cc); } XmTextSetString(widget_array[value], str); break; case DWP_UIC: /* UIC */ sprintf(uafdata[value].sdata, "[%o,%o]", uafdata[value].idata >> 16, uafdata[value].idata & 0xFFFF); XmTextSetString(widget_array[value], uafdata[value].sdata); trans_uic(uafdata[value].idata); break; case DWP_INT: /* text integer */ sprintf(str, "%d", uafdata[value].idata); XmTextSetString(widget_array[value], str); break; case DWP_RINT: /* label integer */ sprintf(str, "%d", uafdata[value].idata); xmstr = XmStringCreateSimple(str); XtSetArg(arg[0], XmNlabelString, xmstr); XtSetValues(widget_array[value], arg, 1); XmStringFree(xmstr); break; } setting_widgets = FALSE; } /* * Update login flags toggle buttons according to UAI data */ static void update_flags() { Cardinal ind; Boolean notify = NO; setting_flags = TRUE; for (ind = 0; ind < MAX_FLAGS; ind++) if (flags_array[ind]) if (uafdata[UAI$_FLAGS].idata >> ind & 1) XmToggleButtonSetState(flags_array[ind], ON, notify); else XmToggleButtonSetState(flags_array[ind], OFF, notify); setting_flags = FALSE; } /* * Set the buttons to reflect primedays * Set the time map window widgets */ static void update_prime() { Cardinal ind; Boolean notify = NO; setting_prime = TRUE; for (ind = 0; ind < MAX_PRIME; ind++) if (prime_array[ind]) XmToggleButtonSetState(prime_array[ind], uafdata[UAI$_PRIMEDAYS].idata >> ind & 1 ^ 1, notify); setting_prime = FALSE; update_time(UAI$_NETWORK_ACCESS_P); update_time(UAI$_NETWORK_ACCESS_S); update_time(UAI$_BATCH_ACCESS_P); update_time(UAI$_BATCH_ACCESS_S); update_time(UAI$_LOCAL_ACCESS_P); update_time(UAI$_LOCAL_ACCESS_S); update_time(UAI$_DIALUP_ACCESS_P); update_time(UAI$_DIALUP_ACCESS_S); update_time(UAI$_REMOTE_ACCESS_P); update_time(UAI$_REMOTE_ACCESS_S); } /* * Set the priv buttons to reflect auth priv & default priv * the buttons for default privs 0-38 are kept in privs_array[0-38] * the buttons for auth privs 0-38 are kept in privs_array[40-78] * (PRIVS_BIAS is 40) */ static void update_privs() { Cardinal ind; Boolean notify = NO; setting_privs = TRUE; for (ind = 0; ind < MAX_PRIVS/2; ind++) if (privs_array[ind]) if (uafdata[UAI$_PRIV].sdata[ind >> 3] >> (ind & 7) & 1) XmToggleButtonSetState(privs_array[ind], ON, notify); else XmToggleButtonSetState(privs_array[ind], OFF, notify); for (ind = PRIVS_BIAS; ind < MAX_PRIVS; ind++) if (privs_array[ind]) if (uafdata[UAI$_DEF_PRIV].sdata[ind - PRIVS_BIAS >> 3] >> (ind - PRIVS_BIAS & 7) & 1) XmToggleButtonSetState(privs_array[ind], ON, notify); else XmToggleButtonSetState(privs_array[ind], OFF, notify); setting_privs = FALSE; } /* * Update a time map window widget */ static void update_time(Cardinal code) { Cardinal ind; Display *display; Window window; if (!widget_array[code]) return; /* return if no widget */ display = XtDisplay(widget_array[code]); /* get display for XFill */ window = XtWindow(widget_array[code]); /* get window for XFill */ if (!window) return; /* Just paranoia? */ switch (uafdata[code].idata) { /* speed up special cases */ case 0: /* full access */ XFillRectangle(display, window, gc_draw, 0, 0, resource_data.hour_size * 24, k_hours_height); break; case 0xFFFFFF: /* no access */ XFillRectangle(display, window, gc_clear, 0, 0, resource_data.hour_size * 24, k_hours_height); break; default: XFillRectangle(display, window, gc_draw, 0, 0, resource_data.hour_size * 24, k_hours_height); for (ind = 0; ind < 24; ind++) if (uafdata[code].idata >> ind & 1) XFillRectangle(display, window, gc_clear, ind * resource_data.hour_size, 0, resource_data.hour_size, k_hours_height); } } /* * Update the list of held identifiers */ static void update_held() { Cardinal status, ac, ind, entries, position; Boolean already_granted; Arg arglist[5]; ident *ptr; held_ident *hptr; XmString *items; /* quit if the idents box is not there, or still building ident_list */ if (!idents_box || !XtIsManaged(idents_box) || idents_work_proc_id) return; items = (XmString *)XtCalloc(ident_count, sizeof(XmString)); /* show the held idents list */ for (hptr = held_list, ind = 0; hptr; hptr = hptr->next) if (hptr->status == original || hptr->status == add_ident) items[ind++] = XmStringCreateSimple(hptr->name); entries = ind; /* save count of list entries */ if (ind > ident_count) XtAppError(context, "held ident array overflow in update_held()"); /* The Motif FAQ says that this will free memory used by the old list */ ac = 0; XtSetArg(arglist[ac], XmNitems, items); ac++; XtSetArg(arglist[ac], XmNitemCount, ind); ac++; XtSetValues(widget_array[k_widget_held_list], arglist, ac); for (ind = 0; ind < entries; ind++) XmStringFree(items[ind]); /* show all the non-uic idents not already held */ for (ptr = ident_list, ind = 0; ptr; ptr = ptr->next) if (ptr->status == user_ident) { already_granted = FALSE; for (hptr = held_list; hptr; hptr = hptr->next) already_granted |= (hptr->identifier == ptr->identifier) && (hptr->status != del_orig); if (!already_granted) { /* if user doesn't already have id */ if (!strcmp(ptr->name, resource_data.default_ident)) position = ind; items[ind++] = XmStringCreateSimple(ptr->name); } } entries = ind; /* save count of list entries */ if (ind > ident_count) XtAppError(context, "all ident array overflow in update_held()"); ac = 0; XtSetArg(arglist[ac], XmNitems, items); ac++; XtSetArg(arglist[ac], XmNitemCount, ind); ac++; XtSetArg(arglist[ac], XmNtopItemPosition, position + 1); ac++; XtSetValues(widget_array[k_widget_all_list], arglist, ac); for (ind = 0; ind < entries; ind++) XmStringFree(items[ind]); XtFree(items); } /* * Force text to uppercase * Called by WidgetChanged, AccountChanged */ static void uppercase(String str) { String str2; for (str2 = str; *str2; str2++) *str2 = toupper(*str2); } /* * Remove trailing blanks from a DWP_LALPHA data item * Returns the address of the string */ static String unpad(String alpha) { String ptr; ptr = strchr(alpha, ' '); if (ptr) *ptr = '\0'; /* if there is a trailing space, trim it */ if ((Cardinal) alpha[0] < 32) return alpha + 1; /* if there is a length byte, return the start of the string */ else return alpha; } /* * Signal a local error * Interval = -2 means don't do anything * -1 means just printf to stdout * 0 means popup message box without timeout * > 0 means popup message box with timeout in 'interval' ms */ static void DWPerror(String where, String what, int interval) { Cardinal ac; Arg arglist[5]; char msg[100]; XmString xmstr; static Widget message_box = (Widget) NULL; if (interval == -2) return; if (interval == -1) { printf("%s (From: %s)\n", what, where); return; } if (!message_box) { ac = 0; xmstr = XmStringCreateSimple("DWProfile: Warning Message"); XtSetArg(arglist[ac], XmNdialogTitle, xmstr); ac++; message_box = XmCreateMessageDialog(dwprofile_main, "message_box", arglist, ac); XmStringFree(xmstr); XtUnmanageChild(XmMessageBoxGetChild(message_box, XmDIALOG_HELP_BUTTON)); XtUnmanageChild(XmMessageBoxGetChild(message_box, XmDIALOG_CANCEL_BUTTON)); XtAddCallback(message_box, XmNokCallback, MessageCallback, (XtPointer) NULL); } ac = 0; sprintf(msg, "%s\nFrom: %s", what, where); xmstr = XmStringCreateLtoR(msg,XmSTRING_DEFAULT_CHARSET); XtSetArg(arglist[ac], XmNmessageString, xmstr); ac++; XtSetValues(message_box, arglist, ac); XmStringFree(xmstr); XtManageChild(message_box); /* popup message box */ if (interval) timeout_id = XtAppAddTimeOut(context, interval, MessageCallback, message_box); XFlush(top_display); } /* * Signal an external error */ static void DWPmsg(String where, Cardinal msg) { char buffer[100]; Cardinal status; ushort length; $DESCRIPTOR(txt_dsc, buffer); status = sys$getmsg(msg, &length, &txt_dsc, 0, 0); buffer[length] = '\0'; if ((status & 7) == SS$_NORMAL) DWPerror(where, buffer, 0); else DWPerror(where, "Unknown", 0); } /* * Do a DCL command * Called by Write */ static void spawn_dcl(String str) { Cardinal status, substatus = SS$_NORMAL, flags = CLI$M_NOCLISYM, /* | CLI$M_NOLOGNAM */ devlen, ctx, count = 0; char *cptr, dev1[40] = "", dev2[40], dir[40], result[40], filespec[40]; ident *iptr, *prev; FILE *file; $DESCRIPTOR(dcl_dsc, "DCL.TMP"); #ifdef DEBUG $DESCRIPTOR(out_dsc, "TT:"); #else $DESCRIPTOR(out_dsc, "NL:"); /* change to TT: for debugging command files */ #endif $DESCRIPTOR(dev1_dsc, dev1); $DESCRIPTOR(dev2_dsc, dev2); $DESCRIPTOR(res_dsc, result); $DESCRIPTOR(file_dsc, filespec); Boolean remove_command = !strncmp(str, "$ UAF REMOVE", 12); Boolean modify_uic = strstr(str, "$ UAF MODIFY") && strstr(str, "/UIC"); #ifdef DEBUG printf("spawn_dcl(%s)\n", str); #endif /* set up dev1, dev2, dir */ /* if from getuai, it has a length byte; if from text widget, not */ strcpy(dev1, unpad(uafdata[UAI$_DEFDEV].sdata)); if (dev1[strlen(dev1) - 1] == ':') dev1[strlen(dev1) - 1] = '\0'; /* strip off trailing ':' */ dev1_dsc.dsc$w_length = strlen(dev1); status = lib$sys_trnlog(&dev1_dsc, &devlen, &dev2_dsc, 0, 0, 0); cptr = strchr(dev2, ' '); if (cptr) *cptr = '\0'; /* null terminate */ cptr = strchr(dev2, ':'); if (cptr) *cptr = '\0'; /* physical device without ':' */ strcpy(dir, unpad(uafdata[UAI$_DEFDIR].sdata)); if (dir[0] == '[') strcpy(dir, dir + 1); /* strip off [ */ if (dir[strlen(dir) - 1] == ']') dir[strlen(dir) - 1] = '\0'; /* strip off ] */ file = fopen("DCL.TMP","w"); #ifdef DEBUG fprintf(file, "$ SET VERIFY\n"); fprintf(file, "$ SHOW LOGICAL DWPUID\n"); #endif fprintfQu~DWPROFILE34.BCK?'j [DWP]DWPROFILE.C;466|>(file, "$ DELETE DCL.TMP;*\n"); fprintf(file, "$ PREVPRIV = F$SETPRV(\"ALL\")\n"); fprintf(file, "$ DEFINE/USER SYSUAF SYS$SYSTEM:SYSUAF\n"); fprintf(file, "$ UAF :== $AUTHORIZE\n"); fprintf(file, "%s\n", str); /* if the command is REMOVE, delete mail profile */ if (remove_command) { fprintf(file, "$ MAIL\n"); fprintf(file, "REMOVE %s\n", uafdata[UAI$_USERNAME].sdata); fprintf(file, "EXIT\n"); } /* if the command is REMOVE, delete disk files and directory */ if (remove_command && strlen(dev1) && strlen(dir)) fprintf(file, "$ @DWPUID:DELTREE %s:[%s]\n", dev1, dir); /* add the quota and overdraft resources. The default (0) is to do nothing, i.e. use the [group,0] entry in quota.sys. Set the resources 'quota' and 'overdraft' to use a fixed quota */ /* if defdev exists and a fixed disk quota specified */ if (strlen(dev1) && (resource_data.quota)) { sprintf(filespec, "%s:[000000]QUOTA.SYS", dev2); file_dsc.dsc$w_length = strlen(filespec); ctx = 0; status = lib$find_file(&file_dsc, &res_dsc, &ctx, 0, 0, 0, 0); lib$find_file_end(&ctx); if ((status & 7) == SS$_NORMAL) { /* QUOTA.SYS exists */ fprintf(file, "$ RUN SYS$SYSTEM:DISKQUOTA\n"); fprintf(file, "USE %s\n", dev2); if (remove_command) fprintf(file, "REMOVE %s\n", uafdata[UAI$_UIC].sdata); else fprintf(file, "ADD %s /PERMQUOTA=%d /OVERDRAFT=%d\n", uafdata[UAI$_UIC].sdata, resource_data.quota, resource_data.overdraft); fprintf(file, "EXIT\n"); } } fclose(file); status = lib$spawn(0, &dcl_dsc, &out_dsc, &flags, 0, 0, &substatus, 0, 0, 0, 0, 0); if ((substatus & 7) != SS$_NORMAL) /* probably CLI$_NORMAL */ DWPmsg("Spawned process status", substatus); if (status != SS$_NORMAL) DWPmsg("Spawn_DCL", status); if (!remove_command && strlen(dev1) && strlen(dir)) { sprintf(filespec, "%s:[000000]%s.DIR", dev1, dir); file_dsc.dsc$w_length = strlen(filespec); ctx = 0; status = lib$find_file(&file_dsc, &res_dsc, &ctx, 0, 0, 0, 0); lib$find_file_end(&ctx); filespec[0] == '\0'; if (status == RMS$_FNF) { /* setpriv(ON, PRV$M_BYPASS | PRV$M_EXQUOTA | PRV$M_SYSPRV); */ sprintf(filespec, "%s:[%s]", dev1, dir); file_dsc.dsc$w_length = strlen(filespec); if (strlen(filespec)) { status = lib$create_dir(&file_dsc, &uafdata[UAI$_UIC].idata, 0, 0, &resource_data.version_limit, 0); #ifdef DEBUG printf("create_dir %s status = %d\n", filespec, status); #endif if (status != SS$_CREATED) DWPmsg("Create Dir", status); } } } /* If REMOVE, remove identifier from ident_list */ if (remove_command || modify_uic) { for (iptr = ident_list, prev = (ident *) NULL; iptr; prev = iptr, iptr = iptr->next) if (!strcmp(iptr->name, uafdata[UAI$_USERNAME].sdata)) break; if (iptr) { if (prev) prev->next = iptr->next; else ident_list = iptr->next; XtFree(iptr->name); XtFree(iptr); uic_count--; } /* identifier may still be on found_list */ for (iptr = found_list.next, prev = &found_list; iptr; prev = iptr, iptr = iptr->next) if (!strcmp(iptr->name, uafdata[UAI$_USERNAME].sdata)) break; if (iptr) { prev->next = iptr->next; XtFree(iptr->name); XtFree(iptr); if (iptr == found_ptr) found_ptr = prev; if (iptr == found_add) found_add = prev; } /* remove group identifier if no other uic in group */ for (iptr = ident_list; iptr; iptr = iptr->next) if ((iptr->identifier >> 16) == (uafdata[UAI$_UIC].idata >> 16)) count++; if (count == 1) { for (iptr = ident_list, prev = (ident *) NULL; iptr; prev = iptr, iptr = iptr->next) if (iptr->identifier == (uafdata[UAI$_UIC].idata | 0xFFFF)) break; if (iptr) { if (prev) prev->next = iptr->next; else ident_list = iptr->next; XtFree(iptr->name); XtFree(iptr); account_count--; } } if (accounts_box && XtIsManaged(accounts_box)) { XtUnmanageChild(accounts_box); Accounts((Widget) NULL, (XtPointer) NULL, (XmPushButtonCallbackStruct *) NULL); /* reload accounts select box */ } } } /* * Calculate the next available UIC in the group that matches the account * or finds the next available group if there is no match * Updates the UIC widget and uafdata fields. * Called when an account is selected via selector widget or from return_key * when in the account text widget */ static void calc_uic() { Cardinal status, maxgroup = resource_data.minimum_group, groupid = 0, uic = 0; ident *ptr; $DESCRIPTOR(group_dsc, uafdata[UAI$_ACCOUNT].sdata); /* read in text widget */ if (!parse_uic(UAI$_UIC)) DWPerror("calc_uic","Illegal UIC format", 0); if (uafdata[UAI$_UIC].idata) return; /* don't recalc if UIC exists */ read_identifiers(FALSE); group_dsc.dsc$w_length = strlen(uafdata[UAI$_ACCOUNT].sdata); status = sys$asctoid(&group_dsc, &groupid, 0); /* if this is a new group name, status = SS$_NOSUCHID and groupid = 0 */ for (ptr = ident_list; ptr; ptr = ptr->next) { /* if groups match and not in [n,*] and higher than old uic, save it */ if (((ptr->identifier >> 16) == (groupid >> 16)) && ((ptr->identifier & 0xFFFF) != 0xFFFF)) uic = (ptr->identifier > uic) ? ptr->identifier : uic; /* if this is a new group name, remember highest [n,*] ident */ if (!groupid && (ptr->identifier < 0x80000000) && (ptr->identifier < (resource_data.maximum_group << 16)) && (ptr->identifier > maxgroup)) maxgroup = ptr->identifier; } if (!groupid) /* new group name */ groupid = maxgroup + 0x10000; /* highest group + 1 */ if (!uic) /* if only [x,177777] in UAF, give [x,101] as uic */ uic = (groupid & 0x7FFF0000) + 0100; uafdata[UAI$_UIC].idata = ++uic; sprintf(uafdata[UAI$_UIC].sdata, "[%o,%o]", uic >> 16, uic & 0xFFFF); XmTextSetString(widget_array[UAI$_UIC], uafdata[UAI$_UIC].sdata); } /* * Translate UIC to identifier format, if identifiers are loaded * Called by update_strings, return key in Account widget, and Accounts selector */ static void trans_uic(Cardinal uic) { ident *ptr; char group[32] = "", member[32] = "", suic[32]; Arg arg[1]; XmString xmstr; for (ptr = ident_list; ptr; ptr = ptr->next) if (ptr->identifier == uic) strcpy(member, ptr->name); else if (ptr->identifier == (uic & 0x7FFF0000 | 0xFFFF)) strcpy(group, ptr->name); if (member[0]) if (group[0]) sprintf(suic, "([%s,%s])", group, member); else sprintf(suic, "([%s])", member); else sprintf(suic, "([%o,%o])", uic >> 16, uic & 0xFFFF); xmstr = XmStringCreateSimple(suic); XtSetArg(arg[0], XmNlabelString, xmstr); XtSetValues(widget_array[k_widget_uic_trans], arg, 1); XmStringFree(xmstr); } /* * Close the work_box dialog box */ static void close_work_box() { if (XtIsManaged(work_box)) XtUnmanageChild(work_box); XUndefineCursor(top_display, top_window); } /* * WorkProc to put one identifier on the idents list */ static Boolean idents_work_proc(XtPointer data) { Cardinal status, resid, ac = 0; static int id, count, rdbctx; Arg arglist[5]; ushort namlen; XmString xmstr; char idbuf[35], str[30]; $DESCRIPTOR(name_dsc, idbuf); if (!ident_ptr) { /* init count, id, context on first & subsequent calls */ count = 0; id = -1; sys$finish_rdb(&rdbctx); } count++; if (((count % 100) == 0) && (count >= 200)) { sprintf(str, "Reading identifier %d", count); ac = 0; xmstr = XmStringCreateSimple(str); XtSetArg(arglist[ac], XmNmessageString, xmstr); ac++; XtSetValues(work_box, arglist, ac); XmStringFree(xmstr); } status = sys$idtoasc(id, &namlen, &name_dsc, &resid, 0, &rdbctx); if (status == SS$_NOSUCHID) { close_work_box(); idents_work_proc_id = (XtWorkProcId) 0; build_accounts(); update_held(); return TRUE; } if (status != SS$_NORMAL) { sys$finish_rdb(&rdbctx); DWPmsg("read_identifiers", status); close_work_box(); idents_work_proc_id = (XtWorkProcId) 0; return TRUE; } if (ident_ptr) ident_ptr = ident_ptr->next = XtNew(ident); else ident_list = ident_ptr = XtNew(ident); idbuf[namlen] = '\0'; ident_ptr->name = XtNewString(idbuf); ident_ptr->next = (ident *) NULL; ident_ptr->identifier = resid; if ((resid > 0x80010000) && /* if not VMS defined idents */ strncmp(idbuf, "SYS$NODE", 8)) { /* and not SYS$NODE_xxx */ ident_ptr->status = user_ident; /* it's a regular ident */ ident_count++; } else if (resid > 0x80000000) /* if a non-uic ident and not a user ident */ ident_ptr->status = intern_ident; /* it's a internal ident */ else if ((resid & 0xFFFF) == 0xFFFF) { ident_ptr->status = account; /* accounts end in FFFF */ account_count++; } else { ident_ptr->status = uic_ident; uic_count++; } return FALSE; } /* * Build list of identifiers if list is empty or if 'force' true */ static void read_identifiers(Boolean force) { Cardinal ac; Arg arglist[10]; XmString xmstr; ident *ptr, *tptr; if (!idents_work_proc_id && (!ident_list || force)) { if (!work_box) { ac = 0; XtSetArg(arglist[ac], XmNheight, 120); ac++; XtSetArg(arglist[ac], XmNwidth, 220); ac++; XtSetArg(arglist[ac], XmNresizePolicy, XmRESIZE_NONE); ac++; xmstr = XmStringCreateSimple("DWProfile: Reading Identifiers"); XtSetArg(arglist[ac], XmNdialogTitle, xmstr); ac++; work_box = XmCreateWorkingDialog(dwprofile_main, "work_box", arglist, ac); XmStringFree(xmstr); XtUnmanageChild(XmMessageBoxGetChild(work_box, XmDIALOG_OK_BUTTON)); XtUnmanageChild(XmMessageBoxGetChild(work_box, XmDIALOG_HELP_BUTTON)); XtAddCallback(work_box, XmNcancelCallback, IdentsCancelCallback, (XtPointer) NULL); } ac = 0; xmstr = XmStringCreateSimple("Reading identifiers"); XtSetArg(arglist[ac], XmNmessageString, xmstr); ac++; XtSetValues(work_box, arglist, ac); XmStringFree(xmstr); if (resource_data.show_work && !XtIsManaged(work_box)) XtManageChild(work_box); /* pop up work box */ for (ptr = ident_list; ptr; ptr = tptr) { /* free old ident list */ XtFree(ptr->name); tptr = ptr->next; XtFree(ptr); } ident_list = ident_ptr = select_ptr = (ident *) NULL; account_count = uic_count = ident_count = 0; idents_work_proc_id = XtAppAddWorkProc(context, idents_work_proc, (XtPointer) NULL); } } /* * Check each uic identifier for match against select_string * Update found_add (the end of found_list) */ static Boolean find_work_proc(XtPointer data) { char message[80], match_string[80]; Boolean matched; Cardinal status, uic; ushort length, logfails; String sptr; struct dsc$descriptor_s ident_dsc = { 0, DSC$K_DTYPE_T, DSC$K_CLASS_S, (char *) NULL }; $DESCRIPTOR(select_dsc, select_string); $DESCRIPTOR(match_dsc, match_string); select_dsc.dsc$w_length = strlen(select_string); if (!ident_list) { /* No idents read, this is bad and shouldn't happen */ find_work_proc_id = (XtWorkProcId) 0; return TRUE; } if (!select_ptr) /* select_ptr is the workproc control variable */ select_ptr = ident_list; if (select_ptr->status != uic_ident) { select_ptr = select_ptr->next; /* only look at uic type idents */ return FALSE; } ident_dsc.dsc$a_pointer = select_ptr->name; ident_dsc.dsc$w_length = strlen(select_ptr->name); switch (select_data[select_index].type) { case DWP_ALPHA: if (select_data[select_index].code == UAI$_USERNAME) { matched = (str$match_wild(&ident_dsc, &select_dsc) == STR$_MATCH); break; } else { itmlst[0].buflen = select_data[select_index].size; itmlst[0].itmcode = select_data[select_index].code; itmlst[0].bufadr = (caddr_t) match_string; itmlst[0].retadr = (short *) NULL; itmlst[1].buflen = 0; itmlst[1].itmcode = 0; status = sys$getuai(0, 0, &ident_dsc, itmlst, 0, 0, 0); if ((status & 7) != SS$_NORMAL) { sprintf(message, "Username %s does not exist", select_ptr->name); DWPerror("Find", message, resource_data.find_interval); break; } match_string[8] = ' '; /* make sure ' ' */ match_string[9] = '\0'; /* make sure null */ sptr = strchr(match_string, ' '); if (sptr) *sptr = '\0'; match_dsc.dsc$w_length = strlen(match_string); matched = (str$match_wild(&match_dsc, &select_dsc) == STR$_MATCH); break; } case DWP_LALPHA: itmlst[0].buflen = select_data[select_index].size; itmlst[0].itmcode = select_data[select_index].code; itmlst[0].bufadr = (caddr_t) match_string; itmlst[0].retadr = (short *) &length; itmlst[1].buflen = 0; itmlst[1].itmcode = 0; status = sys$getuai(0, 0, &ident_dsc, itmlst, 0, 0, 0); if ((status & 7) != SS$_NORMAL) { sprintf(message, "Username %s does not exist", select_ptr->name); DWPerror("Find", message, resource_data.find_interval); break; } match_string[length] = ' '; /* make sure ' ' */ match_string[length+1] = '\0'; /* make sure null */ strcpy(match_string, unpad(match_string)); /* get rid of length byte */ match_dsc.dsc$w_length = strlen(match_string); matched = (str$match_wild(&match_dsc, &select_dsc) == STR$_MATCH); break; case DWP_UIC: itmlst[0].buflen = select_data[select_index].size; itmlst[0].itmcode = select_data[select_index].code; itmlst[0].bufadr = (caddr_t) &uic; itmlst[0].retadr = (short *) &length; itmlst[1].buflen = 0; itmlst[1].itmcode = 0; status = sys$getuai(0, 0, &ident_dsc, itmlst, 0, 0, 0); if ((status & 7) != SS$_NORMAL) { sprintf(message, "Username %s does not exist", select_ptr->name); DWPerror("Find", message, resource_data.find_interval); break; } /* convert UIC to text and do text wildcard match */ sprintf(match_string, "[%o,%o]", uic >> 16, uic & 0xFFFF); match_dsc.dsc$w_length = strlen(match_string); matched = (str$match_wild(&match_dsc, &select_dsc) == STR$_MATCH); break; case DWP_DATE: itmlst[0].buflen = select_data[select_index].size; itmlst[0].itmcode = select_data[select_index].code; itmlst[0].bufadr = (caddr_t) match_string; itmlst[0].retadr = (short *) NULL; itmlst[1].buflen = 0; itmlst[1].itmcode = 0; status = sys$getuai(0, 0, &ident_dsc, itmlst, 0, 0, 0); if ((status & 7) != SS$_NORMAL) { sprintf(message, "Username %s does not exist", select_ptr->name); DWPerror("Find", message, resource_data.find_interval); break; } matched = (!memcmp(match_string, select_string, select_data[select_index].size)); break; case DWP_RINT: /* special test - the only test of a RINT is logfails > 0 */ itmlst[0].buflen = select_data[select_index].size; itmlst[0].itmcode = select_data[select_index].code; itmlst[0].bufadr = (caddr_t) &logfails; itmlst[0].retadr = (short *) &length; itmlst[1].buflen = 0; itmlst[1].itmcode = 0; status = sys$getuai(0, 0, &ident_dsc, itmlst, 0, 0, 0); if ((status & 7) != SS$_NORMAL) { sprintf(message, "Username %s does not exist", select_ptr->name); DWPerror("Find", message, resource_data.find_interval); break; } matched = logfails; break; } if (matched) { if (found_add) found_add = found_add->next = XtNew(ident); else found_add = found_list.next = XtNew(ident); found_add->name = XtNewString(select_ptr->name); found_add->next = (ident *) NULL; } if (select_ptr = select_ptr->next) return FALSE; else { if (!found_ptr->next) { /* no more to display */ XtSetSensitive(button_array[find_button], OFF); /* 'find' button is inactive */ XtSetSensitive(button_array[find_menu], OFF); } progress(NULL); find_work_proc_id = (XtWorkProcId) 0; return TRUE; } } /* * Parse textual date to 64 bit binary value * Returns false if illegal date */ static Boolean parse_date(Cardinal value) { Cardinal status, count = 0; String str; $DESCRIPTOR(time_dsc, uafdata[value].sdata); if (!strlen(uafdata[value].sdata)) { /* empty date means (none) */ memset(uafdata[value].sdata, 0, 8); /* make date 'none' */ return TRUE; } /* default expiration date to midnight instead of current time */ for (str = uafdata[value].sdata; str;) { if((str = strchr(str, ':')) == NULL) break; /* no more colons */ count++; /* count the colons in date */ str++; /* skip over the colon we just counted */ } if (count < 1) /* no hh:mm:ss.cc */ strcat(uafdata[value].sdata, " 00:00:00.00"); else if (count < 2) /* no ss.cc */ strcat(uafdata[value].sdata, ":00.00"); time_dsc.dsc$w_length = strlen(uafdata[value].sdata); status = sys$bintim(&time_dsc, uafdata[value].sdata); /* .sdata will now contain the 64-bit system time */ return (status == SS$_NORMAL); } /* * Parse textual UIC to binary value * Returns false if illegal UIC format */ static Boolean parse_uic(int code) { Cardinal status, grp = 0, mem = 0; status = sscanf(uafdata[code].sdata, "[%o,%o]", &grp, &mem); if (status != 2) /* try without [] */ status = sscanf(uafdata[code].sdata, "%o,%o", &grp, &mem); uafdata[UAI$_UIC].idata = (grp << 16) + mem; return (status == 2); } /* * Build the list of accounts for accounts_box */ static void build_accounts() { ident *ptr; XmString *items; Widget list; Cardinal ind; if (!accounts_box || !XtIsManaged(accounts_box)) return; /* box isn't there */ list = XmSelectionBoxGetChild(accounts_box, XmDIALOG_LIST); XmListDeleteAllItems(list); items = (XmString *)XtCalloc(account_count, sizeof(XmString)); for (ptr = ident_list, ind = 0; ptr; ptr = ptr->next) if (ptr->status == account) items[ind++] = XmStringCreateSimple(ptr->name); XmListAddItems(list, items, ind, 0); for (ind = 0; ind < account_count; ind++) XmStringFree(items[ind]); XtFree(items); } /* * Show the progress of 'Find Next' */ static void progress(ident *location) { static Widget progress_box = (Widget) NULL; XmString xmstr; char str[80]; Cardinal ac, count, pct; static int old_pct = -1; Arg arglist[10]; ident *ptr; if (progress_id) { XtRemoveTimeOut(progress_id); /* clear out any old timers */ progress_id = (XtIntervalId) 0; } if (!location) { /* location = null means pop down box */ if (progress_box && XtIsManaged(progress_box)) XtUnmanageChild(progress_box); return; } if (!progress_box) { ac = 0; xmstr = XmStringCreateSimple("DWProfile: Find progress"); XtSetArg(arglist[ac], XmNheight, 112); ac++; XtSetArg(arglist[ac], XmNwidth, 224); ac++; XtSetArg(arglist[ac], XmNresizePolicy, XmRESIZE_NONE); ac++; XtSetArg(arglist[ac], XmNdialogTitle, xmstr); ac++; progress_box = XmCreateWorkingDialog(dwprofile_main, "progress_box", arglist, ac); XmStringFree(xmstr); XtUnmanageChild(XmMessageBoxGetChild(progress_box, XmDIALOG_OK_BUTTON)); XtUnmanageChild(XmMessageBoxGetChild(progress_box, XmDIALOG_HELP_BUTTON)); XtAddCallback(progress_box, XmNcancelCallback, FindCancelCallback, (XtPointer) NULL); } if (!XtIsManaged(progress_box)) XtManageChild(progress_box); /* pop up progress box */ if (location->next) { for (ptr = ident_list, count = 0; ptr != location; ptr = ptr->next) if (ptr->status == uic_ident) count++; /* count idents read so far */ pct = (count * 100) / uic_count; /* idents read as a percent */ if (pct != old_pct) { old_pct = pct; sprintf(str, "%d%% of identifiers searched", pct); xmstr = XmStringCreateSimple(str); ac = 0; XtSetArg(arglist[ac], XmNmessageString, xmstr); ac++; XtSetValues(progress_box, arglist, ac); XmStringFree(xmstr); } /* leave this dialog box up, call Find in 1 second */ progress_id = XtAppAddTimeOut(context, 1000, Find, (XtPointer) NULL); } else /* this is the last item, pop down the box */ XtUnmanageChild(progress_box); } /*** Event Handlers ***/ /* * Called by mouse button and exposure events in access windows */ static XtEventHandler access_handler(Widget w, XtPointer data, XButtonEvent *event, Boolean *dispatch) { Cardinal wi, hour; static Boolean mode; /* find the uai code for this event */ for (wi = UAI$_NETWORK_ACCESS_P; widget_array[wi] != w && wi <= UAI$_REMOTE_ACCESS_S; wi++) /* just calc index */ ; switch (event->type) { case Expose : update_time(wi); /* update the exposed window */ break; case ButtonPress : uafdata[wi].changed = TRUE; hour = event->x / resource_data.hour_size; mode = uafdata[wi].idata >> hour & 1 ^ 1; /* flip current */ case MotionNotify: /* common code for ButtonPress, Motion */ hour = event->x / resource_data.hour_size; XFillRectangle(event->display, event->window, mode ? gc_clear : gc_draw, hour * resource_data.hour_size, 0, resource_data.hour_size, k_hours_height); if (mode) uafdata[wi].idata |= 1 << hour; else uafdata[wi].idata &= ~(1 << hour); break; } } /* * Called by event handler on MB3 push */ static XtEventHandler popup_handler(Widget widget, Widget popup_menu, XButtonPressedEvent *event, Boolean *dispatch) { if (event->button != Button3) return; XmMenuPosition(popup_menu, event); /* position popup menu */ XtManageChild(popup_menu); /* manage it */ } /* * Called when a return is pressed in a text widget */ static XtActionProc return_key(Widget widget, XKeyPressedEvent *event, String *str, Cardinal *args) { if (widget == widget_array[UAI$_USERNAME]) Read((Widget) NULL, (XtPointer) NULL, (XmPushButtonCallbackStruct *) NULL); /* read new username */ else if (widget == widget_array[UAI$_ACCOUNT]) { calc_uic(); /* figure out a new uic */ trans_uic(uafdata[UAI$_UIC].idata); /* in case calc_uic didn't */ } } /* * Select menu shortcut * Set up select_data index for call to Select() */ static XtActionProc select_key(Widget widget, XKeyPressedEvent *event, String *str, Cardinal *args) { Cardinal wi, si; /* find the widget_array index */ for(wi = 0; items[wi].code; wi++) if (widget == widget_array[wi]) break; /* find the select_data index */ for(si = 0; select_data[si].code; si++) if (wi == select_data[si].code) break; /* call Select() with the index */ if (select_data[si].code) Select((Widget) NULL, &si, (XmPushButtonCallbackStruct *) NULL); } /*** Callbacks ***/ /* * Called by 'Quit' menu item */ static XtCallbackProc Quit(Widget widget, XtPointer data, XmPushButtonCallbackStruct *reason) { exit(); } /* * Read in the uaf entry specified by username; if error, load DEFAULT * Called by 'Read' menu or return_key from username text widget */ static XtCallbackProc Read(Widget widget, XtPointer data, XmPushButtonCallbackStruct *reason) { String str; char errormsg[40]; XDefineCursor(top_display, top_window, wait_cursor); XFlush(top_display); str = XmTextGetString(widget_array[UAI$_USERNAME]); if (!get_record(str)) { if (get_record("DEFAULT")) { set_defaults(str); DWPerror("Read", "Username does not exist, defaults applied", resource_data.read_interval); } else { sprintf(errormsg,"Cannot read username %s", str); DWPerror("Read", errormsg, 0); } } XtFree(str); XUndefineCursor(top_display, top_window); } /* * Find the next UAF entry that matches the current criteria * * Note: UAF entry is defined as a UIC-type identifier. * If a UAF entry does not have an identifier of the same * name, it will not be searched. * * Called by 'Find' menu item */ static XtCallbackProc Find(Widget widget, XtPointer data, XmPushButtonCallbackStruct *reason) { /* if nothing found yet and still looking, mark time */ if (!found_ptr->next && find_work_proc_id) { progress(select_ptr); return; } #ifdef DEBUG if (!XtIsSensitive(button_array[find_button])) { /* stray timer callback */ printf("Find() callback with button insensitive\n"); return; } #endif progress((ident *) NULL); /* something is found or search done, get rid of progress box */ /* get next found ident and display it */ if (found_ptr->next) { found_ptr = found_ptr->next; get_record(found_ptr->name); if (!found_ptr->next && !find_work_proc_id) { /* last item on found list? */ XtSetSensitive(button_array[find_button], OFF); XtSetSensitive(button_array[find_menu], OFF); } } /* we get here when something allows a Find Next with nothing to get */ else { #ifdef DEBUG printf("This shouldn't happen, tell me\n"); #endif XtSetSensitive(button_array[find_button], OFF); /* turn off button */ XtSetSensitive(button_array[find_menu], OFF); } } /* * Update the UAF record for 'username' * Called by 'Write' menu item */ static XtCallbackProc Write(Widget widget, XtPointer data, XmPushButtonCallbackStruct *reason) { Cardinal ind, pad, item, value, status, dd, hh, mm, ss, cc, holder[2] = {0, 0}, groupid; ident *ptr, *prev, *next; held_ident *hptr, *prev_hptr, *tmp_hptr; char command[200] = "", temp[100]; $DESCRIPTOR(acct_dsc, uafdata[UAI$_USERNAME].sdata); $DESCRIPTOR(group_dsc, uafdata[UAI$_ACCOUNT].sdata); XDefineCursor(top_display, top_window, wait_cursor); XFlush(top_display); /* make sure uafdata[uai$_uic].idata matches the text */ if (!parse_uic(UAI$_UIC)) /* if not good uic */ uafdata[UAI$_UIC].idata = 0; /* force error */ if (!strlen(uafdata[UAI$_OWNER].sdata) || !strncmp(uafdata[UAI$_ACCOUNT].sdata, "DEFAULT", 7) || !strncmp(uafdata[UAI$_DEFDIR].sdata, "[USER]", 6) || !strlen(unpad(uafdata[UAI$_DEFDEV].sdata)) || !strlen(unpad(uafdata[UAI$_DEFDIR].sdata)) || !uafdata[UAI$_UIC].idata) { DWPerror("Write","Bad Owner, Account, UIC or Directory name", 0); XUndefineCursor(top_display, top_window); return; } /* item code UAI$_USERNAME is never used by sys$setuai */ if (uafdata[UAI$_USERNAME].changed) { if (uafdata[UAI$_USERNAME].sdata[0] && uafdata[UAI$_UIC].idata) { /* create a new user */ sprintf(temp, "$ UAF ADD %s/UIC=%s", uafdata[UAI$_USERNAME].sdata, uafdata[UAI$_UIC].sdata); strcpy(command, temp); uafdata[UAI$_USERNAME].changed = FALSE; uafdata[UAI$_UIC].changed = FALSE; if (uafdata[UAI$_ACCOUNT].sdata[0]) { sprintf(temp, "/ACCOUNT=%s", uafdata[UAI$_ACCOUNT].sdata); strcat(command, temp); uafdata[UAI$_ACCOUNT].changed = FALSE; } if (uafdata[UAI$_PWD].sdata[0]) { sprintf(temp, "/PASSWORD=%s", uafdata[UAI$_PWD].sdata); strcat(command, temp); uafdata[UAI$_PWD].changed = FALSE; } spawn_dcl(command); } else { DWPerror("Write","No username or no UIC", 0); XUndefineCursor(top_display, top_window); return; } } else { /* check for password change; is setuai able to do this now? */ if (uafdata[UAI$_PWD].changed && uafdata[UAI$_USERNAME].sdata[0] && uafdata[UAI$_PWD].sdata[0]) { sprintf(temp, "$ UAF MODIFY %s/PASSWORD=%s\n", uafdata[UAI$_USERNAME].sdata, uafdata[UAI$_PWD].sdata); strcat(command, temp); uafdata[UAI$_PWD].changed = FALSE; } /* check for device/directory change; the directory tree needs to be moved */ if ((uafdata[UAI$_DEFDEV].changed && strlen(uafdata[UAI$_DEFDEV].sdata)) || (uafdata[UAI$_DEFDIR].changed && strlen(uafdata[UAI$_DEFDIR].sdata))) { sprintf(temp, "$ @DWPUID:MOVE_DIRECTORY %s %s %s %s\n", unpad(uafdata[UAI$_DEFDEV].odata), unpad(uafdata[UAI$_DEFDIR].odata), unpad(uafdata[UAI$_DEFDEV].sdata), unpad(uafdata[UAI$_DEFDIR].sdata)); strcat(command, temp); /* update the old values */ strcpy(uafdata[UAI$_DEFDEV].odata, unpad(uafdata[UAI$_DEFDEV].sdata)); strcpy(uafdata[UAI$_DEFDIR].odata, unpad(uafdata[UAI$_DEFDIR].sdata)); } /* check for UIC change; old identifier must be deleted, new ident created */ /* let authorize handle it. new UIC will be added to idents list below */ if (uafdata[UAI$_UIC].changed && ,~DWPROFILE34.BCK?'j [DWP]DWPROFILE.C;466~n|uafdata[UAI$_UIC].idata) { sprintf(temp, "$ UAF MODIFY %s/UIC=%s\n", uafdata[UAI$_USERNAME].sdata, uafdata[UAI$_UIC].sdata); strcat(command, temp); uafdata[UAI$_UIC].changed = FALSE; sprintf(temp, "$ @DWPUID:RESETOWNER %s%s %s\n", unpad(uafdata[UAI$_DEFDEV].sdata), unpad(uafdata[UAI$_DEFDIR].sdata), uafdata[UAI$_USERNAME].sdata); strcat(command, temp); } /* check for account change; if new account doesn't exist, create it */ if (uafdata[UAI$_ACCOUNT].changed) { group_dsc.dsc$w_length = strlen(uafdata[UAI$_ACCOUNT].sdata); status = sys$asctoid(&group_dsc, &groupid, 0); if (status == SS$_NOSUCHID) { sprintf(temp, "$ UAF ADD/IDENTIFIER/VALUE=UIC=[%o,*] %s\n", uafdata[UAI$_UIC].idata >> 16, uafdata[UAI$_ACCOUNT].sdata); strcat(command,temp); } } /* any of these generated a DCL command? */ if (strlen(command)) spawn_dcl(command); } item = 0; for (ind = 0; value = items[ind].code; ind++) { if (value && uafdata[value].changed) { uafdata[value].changed = FALSE; itmlst[item].itmcode = value; itmlst[item].buflen = items[ind].size; switch (items[ind].type) { case DWP_LALPHA: /* if it's been changed, it has no length byte */ if (value == UAI$_DEFDIR && strlen(uafdata[value].sdata)) { if (uafdata[value].sdata[0] != '[') { sprintf(temp, "[%s", uafdata[value].sdata); strcpy(uafdata[value].sdata, temp); } if (uafdata[value].sdata[strlen(uafdata[value].sdata)-1] != ']') strcat(uafdata[value].sdata, "]"); /* dir has [] */ } if (value == UAI$_DEFDEV && strlen(uafdata[value].sdata) && uafdata[value].sdata[strlen(uafdata[value].sdata)-1] != ':') strcat(uafdata[value].sdata, ":"); /* ends with ':' */ strcpy(temp, uafdata[value].sdata); uafdata[value].sdata[0] = strlen(temp); /* make length byte */ for (pad = strlen(temp); pad < items[ind].size; pad++) temp[pad] = ' '; /* pad with spaces, no null */ strncpy(&uafdata[value].sdata[1], temp, items[ind].size); itmlst[item].bufadr = (caddr_t) uafdata[value].sdata; break; case DWP_ALPHA: /* account */ for (pad = 0; pad < items[ind].size && uafdata[value].sdata[pad];) pad++; /* skip over string */ for (; pad < items[ind].size; pad++) uafdata[value].sdata[pad] = ' '; /* pad with spaces, no null */ case DWP_PRIV: /* common code for all alphabetic, priv */ itmlst[item].bufadr = (caddr_t) uafdata[value].sdata; break; case DWP_INT: sscanf(uafdata[value].sdata, "%d", &uafdata[value].idata); case DWP_TIME: /* these have correct data in .idata */ case DWP_FLAG: case DWP_PRIME: itmlst[item].bufadr = (caddr_t) &uafdata[value].idata; break; case DWP_CPU: dd = hh = mm = ss = cc = 0; status = sscanf(uafdata[value].sdata, "%d %02d:%02d:%02d.%02d", &dd, &hh, &mm, &ss, &cc); if (status < 4) { /* try hh:mm:ss */ dd = hh = mm = ss = cc = 0; status = sscanf(uafdata[value].sdata, "%02d:%02d:%02d.%02d", &hh, &mm, &ss, &cc); } if (status < 3) { /* try mm:ss */ dd = hh = mm = ss = cc = 0; status = sscanf(uafdata[value].sdata, "%02d:%02d.%02d", &mm, &ss, &cc); } if (status < 2) { /* try ss */ dd = hh = mm = ss = cc = 0; status = sscanf(uafdata[value].sdata, "%d.%02d", &ss, &cc); } uafdata[value].idata = dd * 8640000 + hh * 360000 + mm * 6000 + ss * 100 + cc; itmlst[item].bufadr = (caddr_t) &uafdata[value].idata; break; case DWP_DATE: { /* This one's kinda tricky, .sdata can contain a 64-bit */ /* system time or a string. At this point it should contain */ /* a string, since .changed is set only in WidgetChanged */ if (parse_date(value)) itmlst[item].bufadr = (caddr_t) uafdata[value].sdata; else { DWPerror("Write","Illegal date format", 0); --item; } break; } case DWP_UIC: itmlst[item].bufadr = (caddr_t) &uafdata[value].idata; break; } itmlst[item].retadr = (short *) NULL; item++; } } itmlst[item].itmcode = itmlst[item].buflen = 0; /* end the list */ acct_dsc.dsc$w_length = strlen(uafdata[UAI$_USERNAME].sdata); if (item) { status = sys$setuai(0, 0, &acct_dsc, itmlst, 0, 0, 0); if (status != SS$_NORMAL) DWPmsg("Write/SETUAI", status); else DWPerror("Write", "SETUAI successful", resource_data.write_interval); } update_strings(); /* undo the padding of strings done above */ holder[0] = uafdata[UAI$_UIC].idata; for (hptr = held_list, prev_hptr = (held_ident *) NULL; hptr;) { tmp_hptr = (held_ident *) NULL; switch (hptr->status) { case add_ident: /* ident flagged for pending add */ status = sys$add_holder(hptr->identifier, holder, 0); if (status != SS$_NORMAL) DWPmsg("Write/ADD_HOLDER", status); else DWPerror("Write","ADD_HOLDER successful", resource_data.write_interval); hptr->status = original; /* ident is now permanently held */ break; case del_orig: /* ident flagged for pending delete */ status = sys$rem_holder(hptr->identifier, holder); if (status != SS$_NORMAL) DWPmsg("Write/REM_HOLDER", status); else DWPerror("Write","REM_HOLDER successful", resource_data.write_interval); if (prev_hptr) prev_hptr->next = hptr->next; /* remove node from list */ else held_list = hptr->next; tmp_hptr = hptr; break; case original: /* originally held id, no need to add it again */ break; } prev_hptr = hptr; hptr = hptr->next; if (tmp_hptr) XtFree(tmp_hptr); } /* add identifier to list */ for (ptr = ident_list, prev = (ident *) NULL; ptr; prev = ptr, ptr = ptr->next) if (strcmp(ptr->name, uafdata[UAI$_USERNAME].sdata) >= 0) break; /* if ptr = 0, no identifier was higher than username if strcmp > 0, ptr->name is the next higher name if strcmp = 0, names matched; don't insert */ if (!ptr || strcmp(ptr->name, uafdata[UAI$_USERNAME].sdata)) { next = ptr; ptr = XtNew(ident); if (prev) prev->next = ptr; else ident_list = ptr; ptr->name = XtNewString(uafdata[UAI$_USERNAME].sdata); ptr->next = next; ptr->identifier = uafdata[UAI$_UIC].idata; ptr->status = uic_ident; uic_count++; } /* add group identifier to list */ for (ptr = ident_list, prev = (ident *) NULL; ptr; prev = ptr, ptr = ptr->next) if (strcmp(ptr->name, uafdata[UAI$_ACCOUNT].sdata) >= 0) break; if (!ptr || strcmp(ptr->name, uafdata[UAI$_ACCOUNT].sdata)) { next = ptr; ptr = XtNew(ident); if (prev) prev->next = ptr; else ident_list = ptr; ptr->name = XtNewString(uafdata[UAI$_ACCOUNT].sdata); ptr->next = next; ptr->identifier = (uafdata[UAI$_UIC].idata | 0xFFFF); ptr->status = account; account_count++; if (accounts_box && XtIsManaged(accounts_box)) { build_accounts(); /* reload accounts info */ } } XUndefineCursor(top_display, top_window); } /* * Delete a UAF record * Called by 'Remove' menu item */ static XtCallbackProc Remove(Widget widget, XtPointer data, XmPushButtonCallbackStruct *reason) { Cardinal ac; Arg arglist[5]; char msg[60]; XmString xmstr; String str; static Widget caution_box = (Widget) NULL; str = XmTextGetString(widget_array[UAI$_USERNAME]); /* read the UAF record, exit if it doesn't exist */ if (!get_record(str)) { sprintf(msg, "User %s does not exist", str); DWPerror("Remove", msg, 0); XtFree(str); return; } XtFree(str); if (!caution_box) { ac = 0; xmstr = XmStringCreateSimple("DWProfile: Remove"); XtSetArg(arglist[ac], XmNdialogTitle, xmstr); ac++; XtSetArg(arglist[ac], XmNdialogStyle, XmDIALOG_APPLICATION_MODAL); ac++; caution_box = XmCreateWarningDialog(dwprofile_main, "caution_box", arglist, ac); XmStringFree(xmstr); XtUnmanageChild(XmMessageBoxGetChild(caution_box, XmDIALOG_HELP_BUTTON)); XtAddCallback(caution_box, XmNokCallback, CautionCallback, (XtPointer) NULL); } ac = 0; sprintf(msg, "Remove user %s?", uafdata[UAI$_USERNAME].sdata); xmstr = XmStringCreateSimple(msg); XtSetArg(arglist[ac], XmNmessageString, xmstr); ac++; XtSetValues(caution_box, arglist, ac); XmStringFree(xmstr); XtManageChild(caution_box); /* popup modal caution box */ } /* * Issue REMOVE UAF command if OK button pressed in caution box */ static XtCallbackProc CautionCallback(Widget widget, XtPointer data, XmPushButtonCallbackStruct *reason) { char command[20]; XtUnmanageChild(widget); XDefineCursor(top_display, top_window, wait_cursor); XFlush(top_display); if (reason->reason == XmCR_OK && uafdata[UAI$_USERNAME].sdata[0]) { sprintf(command, "$ UAF REMOVE %s", uafdata[UAI$_USERNAME].sdata); spawn_dcl(command); get_record(""); } XUndefineCursor(top_display, top_window); } /* * Remove the error message widget when ack'ed or timed out */ static XtTimerCallbackProc MessageCallback(Widget widget, XtPointer data) { XtUnmanageChild(widget); /* popdown message box */ XtRemoveTimeOut(timeout_id); /* clear out timer */ } /* * Stop the idents work proc when 'reading idents' WorkingDialog widget is cancelled */ static XtCallbackProc IdentsCancelCallback(Widget widget, XtPointer data, XmPushButtonCallbackStruct *reason) { XtRemoveWorkProc(idents_work_proc_id); idents_work_proc_id = (XtWorkProcId) 0; } /* * Stop find() when 'find progress' WorkingDialog widget is cancelled */ static XtCallbackProc FindCancelCallback(Widget widget, XtPointer data, XmPushButtonCallbackStruct *reason) { XtRemoveWorkProc(find_work_proc_id); find_work_proc_id = (XtWorkProcId) 0; if (progress_id) { XtRemoveTimeOut(progress_id); /* cancel pending timeout */ progress_id = (XtIntervalId) 0; } if (!found_ptr->next) { /* nothing left on found list? */ XtSetSensitive(button_array[find_button], OFF); XtSetSensitive(button_array[find_menu], OFF); } } /* * Pop up (or remove) the access dialog box * Called by 'Access' menu item */ static XtCallbackProc Access(Widget widget, XtPointer data, XmToggleButtonCallbackStruct *reason) { Cardinal wi, ac; Arg arglist[2]; if (!access_box) { if ((MrmFetchWidget(Hierarchy, "access_box", toplevel, &access_box, &class)) != MrmSUCCESS) XtAppError(context, "Error Fetching Access main widget"); /* adjust drawing area using hourSize resource */ for (wi = UAI$_NETWORK_ACCESS_P; wi <= UAI$_REMOTE_ACCESS_S; wi++) { ac = 0; XtSetArg(arglist[ac], XmNwidth, resource_data.hour_size * 24); ac++; if (widget_array[wi]) XtSetValues(widget_array[wi], arglist, ac); } } if (XtIsManaged(access_box)) { XtUnmanageChild(access_box); XmToggleButtonSetState(button_array[access_menu], OFF, NO); } else { XtManageChild(access_box); XmToggleButtonSetState(button_array[access_menu], ON, NO); update_prime(); /* may not have existed */ set_handlers(); /* set window event handlers */ } } /* * Pop up (or remove) the privs dialog box * Called by 'Privs' menu item */ static XtCallbackProc Privs(Widget widget, XtPointer data, XmToggleButtonCallbackStruct *reason) { if (!privs_box) if ((MrmFetchWidget(Hierarchy, "privs_box", toplevel, &privs_box, &class)) != MrmSUCCESS) XtAppError(context, "Error Fetching Privs main widget"); if (XtIsManaged(privs_box)) { XtUnmanageChild(privs_box); XmToggleButtonSetState(button_array[privs_menu], OFF, NO); } else { XtManageChild(privs_box); XmToggleButtonSetState(button_array[privs_menu], ON, NO); update_privs(); /* may not have existed */ } } /* * Activation callback on Select menu item * also called by select_key() * widget, reason not referenced */ static XtCallbackProc Select(Widget widget, int *data, XmPushButtonCallbackStruct *reason) { Cardinal ac; Arg arglist[10]; ident *ptr, *tptr; char str[80]; XmString xmstr; if (found_list.next || *data < 100) { /* skip if 100 and nothing on list */ XtSetSensitive(button_array[find_button], ON); /* 'find' button is now active */ XtSetSensitive(button_array[find_menu], ON); /* 'find' menu item is now active */ } if (*data == 100) { /* 100 means re-enable found_list */ found_ptr = &found_list; return; } sprintf(str, "Reset %s search", select_data[*data].name); xmstr = XmStringCreateSimple(str); ac = 0; XtSetArg(arglist[ac], XmNlabelString, xmstr); ac++; XtSetArg(arglist[ac], XmNsensitive, TRUE); ac++; XtSetValues(button_array[restart_button], arglist, ac); XmStringFree(xmstr); for (ptr = found_list.next; ptr; ptr = tptr) { /* free old found list */ XtFree(ptr->name); tptr = ptr->next; XtFree(ptr); } select_index = *data; /* which field to match */ if (select_string) XtFree(select_string); /* free memory used by old string */ switch (select_data[*data].type) { case DWP_ALPHA: /* username, account */ case DWP_LALPHA: /* other text fields */ case DWP_UIC: /* use the text of UIC */ /* we could parse_dev(), parse_dir(), etc. here to ensure match */ select_string = XtNewString(unpad(uafdata[select_data[*data].code].sdata)); break; case DWP_DATE: /* pwdlifetime, expiration; text string or 64 bit date */ if (uafdata[select_data[*data].code].changed) /* text was entered */ if (!parse_date(select_data[*data].code)) /* convert text to binary */ DWPerror("Select","Illegal date format", 0); select_string = XtMalloc(select_data[*data].size); memcpy(select_string, uafdata[select_data[*data].code].sdata, select_data[*data].size); break; default: select_string = XtNewString(""); /* so find_work_proc won't blow up */ } select_ptr = found_add = (ident *) NULL; /* restart find from the beginning */ found_list.next = (ident *) NULL; found_ptr = &found_list; if (find_work_proc_id) /* is there one going on now? */ XtRemoveWorkProc(find_work_proc_id); /* stop it */ find_work_proc_id = XtAppAddWorkProc(context, find_work_proc, (XtPointer) NULL); /* note: to be run first, read_identifiers must be called after AppAddWorkProc */ read_identifiers(FALSE); /* set up ident_list if necessary */ } /* * Creation callback; save the widget using the UAI code as the index */ static XtCallbackProc WidgetCreated(Widget widget, XtPointer data, XmAnyCallbackStruct *reason) { widget_array[*data] = widget; } /* * Creation callback; save the save menu button widget in button_array */ static XtCallbackProc ButtonCreated(Widget widget, XtPointer data, XmAnyCallbackStruct *reason) { button_array[*data] = widget; } /* * Called whenever a key is pressed in a text widget */ static XtCallbackProc WidgetChanged(Widget widget, XtPointer data, XmTextVerifyCallbackStruct *reason) { String str; Cardinal pos; if (setting_widgets) return; pos = XmTextGetInsertionPosition(widget); str = XmTextGetString(widget); uafdata[*data].changed = TRUE; /* element has changed */ if (*data != UAI$_OWNER) uppercase(str); strcpy(uafdata[*data].sdata, str); setting_widgets = TRUE; /* Don't allow recursion */ XmTextSetString(widget, str); XmTextSetInsertionPosition(widget, pos); setting_widgets = FALSE; XtFree(str); } /* * Called when flag toggle button is created */ static XtCallbackProc FlagsCreated(Widget widget, XtPointer data, XmAnyCallbackStruct *reason) { flags_array[*data] = widget; } /* * Called whenever a flag toggle button is pressed */ static XtCallbackProc FlagsChanged(Widget widget, XtPointer data, XmAnyCallbackStruct *reason) { if (setting_flags) return; uafdata[UAI$_FLAGS].changed = TRUE; /* element has changed */ uafdata[UAI$_FLAGS].idata ^= 1 << *data; /* toggle flag bit */ } /* * Called when a primary day toggle button is created */ static XtCallbackProc PrimeCreated(Widget widget, XtPointer data, XmAnyCallbackStruct *reason) { prime_array[*data] = widget; } /* * Called whenever a prime day toggle button is pressed */ static XtCallbackProc PrimeChanged(Widget widget, XtPointer data, XmAnyCallbackStruct *reason) { if (setting_prime) return; uafdata[UAI$_PRIMEDAYS].changed = TRUE; /* element has changed */ uafdata[UAI$_PRIMEDAYS].idata ^= 1 << *data; /* toggle bit in primedays */ } /* * Called when a privs toggle button is created */ static XtCallbackProc PrivsCreated(Widget widget, XtPointer data, XmAnyCallbackStruct *reason) { privs_array[*data] = widget; } /* * Called whenever a privs toggle button is pressed */ static XtCallbackProc PrivsChanged(Widget widget, XtPointer data, XmAnyCallbackStruct *reason) { if (setting_privs) return; if (*data < PRIVS_BIAS) { uafdata[UAI$_PRIV].sdata[*data >> 3] ^= 1 << (*data & 7); uafdata[UAI$_PRIV].changed = TRUE; /* element has changed */ } else { uafdata[UAI$_DEF_PRIV].sdata[(*data - PRIVS_BIAS) >> 3] ^= 1 << (*data - PRIVS_BIAS & 7); uafdata[UAI$_DEF_PRIV].changed = TRUE; } } /* * Read selection box widget to get account name * Create new UIC */ static XtCallbackProc AccountChanged(Widget widget, XtPointer data, XmSelectionBoxCallbackStruct *reason) { String str; if (reason->reason == XmCR_CANCEL) { XmTextSetString(widget_array[UAI$_ACCOUNT], ""); uafdata[UAI$_ACCOUNT].changed = TRUE; strcpy(uafdata[UAI$_ACCOUNT].sdata, ""); return; } XmStringGetLtoR(reason->value, XmSTRING_DEFAULT_CHARSET, &str); XmTextSetString(widget_array[UAI$_ACCOUNT], str); uafdata[UAI$_ACCOUNT].changed = TRUE; strcpy(uafdata[UAI$_ACCOUNT].sdata, str); uppercase(uafdata[UAI$_ACCOUNT].sdata); XtFree(str); strcpy(uafdata[UAI$_UIC].sdata, "[0,0]"); /* force UIC recalc */ calc_uic(); trans_uic(uafdata[UAI$_UIC].idata); } /* * Called by 'Read Identifiers' menu item */ static XtCallbackProc ReadIdentifiers(Widget widget, XtPointer data, XmAnyCallbackStruct *reason) { read_identifiers(TRUE); } /* * Pop up accounts selection box widget * Called by 'Accounts' menu item */ static XtCallbackProc Accounts(Widget widget, XtPointer data, XmAnyCallbackStruct *reason) { Cardinal ac; Arg arglist[5]; XmString xmstr; /* make accounts_box */ /* this could be fetched from a UID file, but it's easier here */ if (!accounts_box) { ac = 0; xmstr = XmStringCreateSimple("DWProfile: Accounts"); XtSetArg(arglist[ac], XmNdialogTitle, xmstr); ac++; XtSetArg(arglist[ac], XmNdefaultPosition, FALSE); ac++; accounts_box = XmCreateSelectionDialog(toplevel, "accounts_box", arglist, ac); XmStringFree(xmstr); XtAddCallback(accounts_box, XmNapplyCallback, AccountChanged, (XtPointer) NULL); XtAddCallback(accounts_box, XmNhelpCallback, Help, "menus windows accounts"); XtUnmanageChild(XmSelectionBoxGetChild(accounts_box, XmDIALOG_OK_BUTTON)); XtUnmanageChild(XmSelectionBoxGetChild(accounts_box, XmDIALOG_CANCEL_BUTTON)); } if (XtIsManaged(accounts_box)) { XtUnmanageChild(accounts_box); XmToggleButtonSetState(button_array[accounts_menu], OFF, NO); return; } XtManageChild(accounts_box); XmToggleButtonSetState(button_array[accounts_menu], ON, NO); if (ident_list) build_accounts(); /* build list from idents */ else read_identifiers(FALSE); /* get idents, build list when done */ } /* * Pop up (or remove) the idents dialog box * Called by 'Idents' menu item */ static XtCallbackProc Idents(Widget widget, XtPointer data, XmAnyCallbackStruct *reason) { if (!idents_box) if ((MrmFetchWidget(Hierarchy, "idents_box", toplevel, &idents_box, &class)) != MrmSUCCESS) XtAppError(context, "Error Fetching Idents main widget"); if (XtIsManaged(idents_box)) { XtUnmanageChild(idents_box); XmToggleButtonSetState(button_array[idents_menu], OFF, NO); return; } XtManageChild(idents_box); XmToggleButtonSetState(button_array[idents_menu], ON, NO); if (ident_list) update_held(); /* build list from idents */ else read_identifiers(FALSE); /* get idents, build list when done */ } /* * Add (or remove) the identifier for the user * Called by selecting identifier from list box */ static XtCallbackProc ListSelect(Widget widget, XtPointer data, XmListCallbackStruct *list) { Cardinal count; ident *ptr; held_ident *hptr, *prev_hptr, *tmp_hptr; String str; switch(*data) { case k_widget_all_list: XmStringGetLtoR(list->item, XmSTRING_DEFAULT_CHARSET, &str); /* find the identifier that matches the selected item */ for (ptr = ident_list; ptr; ptr = ptr->next) if (!strcmp(ptr->name, str)) break; XtFree(str); for (hptr = held_list, prev_hptr = (held_ident *) NULL; hptr; prev_hptr = hptr, hptr = hptr->next) /* find deleted id or end */ if (hptr->identifier == ptr->identifier) break; if (!hptr) { /* not in held list, make new node */ hptr = XtNew(held_ident); hptr->name = XtNewString(ptr->name); hptr->identifier = 0; hptr->next = (held_ident *) NULL; if (prev_hptr) prev_hptr->next = hptr; /* point prev node to new node */ else held_list = hptr; /* or start list with first new node */ } if (!hptr->identifier) { hptr->status = add_ident; /* not found */ hptr->identifier = ptr->identifier; } else hptr->status = original; /* orig ident deleted then added back */ break; case k_widget_held_list: count = 0; for (hptr = held_list, prev_hptr = (held_ident *) NULL; hptr;) { tmp_hptr = (held_ident *) NULL; if (hptr->status == original || hptr->status == add_ident) count++; if (count == list->item_position) { /* is this the list item selected ? */ if (hptr->status == add_ident) { /* if this is a pending add */ if (prev_hptr) /* remove it from held_list */ prev_hptr->next = hptr->next; else held_list = hptr->next; tmp_hptr = hptr; /* and flag it for delete */ } hptr->status = del_orig; /* original ident marked for removal */ break; } prev_hptr = hptr; hptr = hptr->next; if (tmp_hptr) XtFree(tmp_hptr); } break; } update_held(); } /* * Activation callback on a help menu or help callback */ static XtCallbackProc Help(Widget widget, String data, XmPushButtonCallbackStruct *reason) { Cardinal ac; Arg arglist[10]; XmString appname, overviewtopic, libspec, topic; static Widget help_box = (Widget) NULL; Widget temp_help_box; if (!strcmp(data, "context")) { /* context sensitive help mode, we'll get back here via helpcallback */ DXmHelpOnContext(toplevel, FALSE); return; } topic = XmStringCreateSimple(data); if (!help_box || XtIsManaged(help_box)) { /* We're going to create a help widget */ ac = 0; appname = XmStringCreateSimple("DWProfile"); overviewtopic = XmStringCreateSimple("overview"); libspec = XmStringCreateSimple(HELP_LIBRARY); XtSetArg(arglist[ac], DXmNapplicationName, appname); ac++; XtSetArg(arglist[ac], DXmNoverviewTopic, overviewtopic); ac++; XtSetArg(arglist[ac], DXmNlibrarySpec, libspec); ac++; } if (!help_box) { /* create the help box */ help_box = DXmCreateHelpDialog (toplevel, "help_box", arglist, ac); XmStringFree(appname); XmStringFree(overviewtopic); XmStringFree(libspec); } if (XtIsManaged(help_box)) { /* there's already a help box up, make another one */ XtSetArg(arglist[ac], DXmNfirstTopic, topic); ac++; temp_help_box = DXmCreateHelpDialog (toplevel, "help_box", arglist, ac); XtAddCallback(temp_help_box, XmNunmapCallback, DestroyHelpCallback, (XtPointer) NULL); XmStringFree(appname); XmStringFree(overviewtopic); XmStringFree(libspec); XmStringFree(topic); XtManageChild(temp_help_box); return; } else { /* exists but is unmanaged */ ac = 0; XtSetArg(arglist[ac], DXmNfirstTopic, topic); ac++; XtSetValues(help_box, arglist, ac); } XmStringFree(topic); XtManageChild(help_box); } /* * Destroy generic help widget when it gets unmapped */ static XtCallbackProc DestroyHelpCallback(Widget widget, XtPointer data, XmAnyCallbackStruct *reason) { XtDestroyWidget(widget); } *[DWP]DWPROFILE.DAT;91+,Jn./ 4H- 0123KPWO56`7J77J89p|uGHJ N # local configuration#DWProfile.quota: 2000#DWProfile.overdraft: 100#DWProfile.defaultIdent: STAFF#DWProfile.showAccounts: True#DWProfile.showIdents: True#DWProfile.PopupTime: 2000#DWProfile.minimumGroup: 128#DWProfile.maximumGroup: 230HDWProfile*fontList: -Adobe-Helvetica-Bold-R-Normal--12-120-75-75-P-*-*-*DWProfile.x: 15DWProfile.y: 40$DWProfile.dwprofile_main.height: 610#DWProfile.dwprofile_main.width: 6208DWProfile.dwprofile_main*main_box*XmText*marginHeight: 1A#DWProfile.dwprofile_main*main_box*XmToggleButton*marginHeight: 0DWProfile*access_box.x: 10DWProfile*access_box.y: 690DWProfile*accounts_box.x: 720DWProfile*accounts_box.y: 540DWProfile*idents_box.x: 100DWProfile*idents_box.y: 700DWProfile*privs_box.x: 660DWProfile*privs_box.y: 45DWProfile*privs_box.height: 460DWProfile*privs_box.width: 330!DWProfile*privs_box*numColumns: 4*[DWP]DWPROFILE.EXE;6+,q.E/ 4EE- 0123 KPWOF560S7r7P27r89p|uGHJ N 0D`02057rhD= DWPROFILEDWProfile V3.4P:7r05-13    )"K 9 ?&!DECW$XMLIBSHR_001'7+dDECW$DWTLIBSHR_001 ! VAXCRTL_001! LIBRTL_001O! MTHRTL_001%!dDECW$XLIBSHR_001.! DECW$TRANSPORT_COMMON_001'!DECW$DXMLIBSHR_001!  LBRSHR_001"! SECURESHR_001#!SECURESHRP_001UsernameAccountOwnerUICDeviceDirectoryCLILGICMDDCL TablePwdlifetimeExpire DateLogin failuresdefaultIdentDefaultIdenthourSizeHourSize7readNotifyIntervalPopupTime-2writeNotifyIntervalPopupTime-2findNotifyIntervalPopupTime-1overdraftOverdraft0quotaQuota0showAccessShowAccessFalseshowAccountsAutoShowFalseshowPrivsAutoShowFalseshowIdentsAutoShowFalseshowWorkBoxAutoShowTrueversionLimitVersionLimit0minimumGroupMinimumGroup0maximumGroupMaximumGroup32767DWPUID:DWPROFILE.UIDDWPUID:ACCESS.UIDDWPUID:PRIVS.UIDDWPUID:IDENTS.UIDWidgetCreatedWidgetChangedQuitWriteReadFindRemoveAccessPrivsAccountsFlagsCreatedFlagsChangedPrimeCreatedPrimeChangedPrivsCreatedPrivsChangedReadIdentifiersIdentsListSelectButtonCreatedSelectHelpreturn_keyselect_key*fontList: -Adobe-Helvetica-Bold-R-Normal--12-120-75-75-P-*-*-*DWProfilemwmDecorationsDWProfiledwprofile_mainError Fetching main widgetDEFAULTMain InitCannot read username DEFAULTwhiteredDECW$CURPPH~DWPROFILE34.BCKq [DWP]DWPROFILE.EXE;6E|SORaccess_buttonAccess...privs_buttonPrivs...accounts_buttonAccounts...idents_buttonIdentifiers...popup[%s]%s %sDWProfileget_record%s %sDWProfile:00.0017-NOV-1858(none)17-NOV-1858(none)(none)%d %02d:%02d:%02d.%02d[%o,%o]%d%dheld ident array overflow in update_held()all ident array overflow in update_held()%s (From: %s) DWProfile: Warning Messagemessage_box%s From: %sUnknownDCL.TMPNL:$ UAF REMOVE$ UAF MODIFY/UICDCL.TMPw$ DELETE DCL.TMP;* $ PREVPRIV = F$SETPRV("ALL") $ DEFINE/USER SYSUAF SYS$SYSTEM:SYSUAF $ UAF :== $AUTHORIZE %s $ MAIL REMOVE %s EXIT $ @DWPUID:DELTREE %s:[%s] %s:[000000]QUOTA.SYS$ RUN SYS$SYSTEM:DISKQUOTA USE %s REMOVE %s ADD %s /PERMQUOTA=%d /OVERDRAFT=%d EXIT Spawned process statusSpawn_DCL%s:[000000]%s.DIR%s:[%s]Create Dircalc_uicIllegal UIC format[%o,%o]([%s,%s])([%s])([%o,%o])Reading identifier %dread_identifiersSYS$NODEDWProfile: Reading Identifierswork_boxReading identifiersUsername %s does not existFindUsername %s does not existFindUsername %s does not existFind[%o,%o]Username %s does not existFindUsername %s does not existFind 00:00:00.00:00.00[%o,%o]%o,%oDWProfile: Find progressprogress_box%d%% of identifiers searchedDEFAULTReadUsername does not exist, defaults appliedCannot read username %sReadDEFAULT[USER]WriteBad Owner, Account, UIC or Directory name$ UAF ADD %s/UIC=%s/ACCOUNT=%s/PASSWORD=%sWriteNo username or no UIC$ UAF MODIFY %s/PASSWORD=%s $ @DWPUID:MOVE_DIRECTORY %s %s %s %s $ UAF MODIFY %s/UIC=%s $ @DWPUID:RESETOWNER %s%s %s $ UAF ADD/IDENTIFIER/VALUE=UIC=[%o,*] %s [%s]:%d%d %02d:%02d:%02d.%02d%02d:%02d:%02d.%02d%02d:%02d.%02d%d.%02dWriteIllegal date formatWrite/SETUAIWriteSETUAI successfulWrite/ADD_HOLDERWriteADD_HOLDER successfulWrite/REM_HOLDERWriteREM_HOLDER successfulUser %s does not existRemoveDWProfile: Removecaution_boxRemove user %s?$ UAF REMOVE %saccess_boxError Fetching Access main widgetprivs_boxError Fetching Privs main widgetReset %s searchSelectIllegal date format[0,0]DWProfile: Accountsaccounts_boxmenus windows accountsidents_boxError Fetching Idents main widgetcontextDWProfileoverviewDWPUID:DWPROFILE.HLBDXmapplicationNameDXmoverviewTopicDXmlibrarySpechelp_boxDXmfirstTopichelp_boxDXmfirstTopichup$pLpLpLpL pLp Lp'd(p28Ed)pNT^d+pgmxd*pd,pLpL pLp /8888 1ClQ_0wdxj@woPxt({D\Ď܎ \DPReturn: return_key()osfSelect: select_key()pv&v1 8&'5A @   @ =6*+9:#C@  () 231$% B?4/.   0,-;7 ><    @" ,@0 7AM Y^SWUSP@PPPHPP@pPPPP@PPPPP@PPQSYxYP@RTb@RqbYxYP@R{b@R:bYY߭@ݬ߬|~NJ< `RP@4$QPTT TCSHnQPTT T%S?8D@ǔ4FQPǣ<Q|~cL@QDQ@Q@RТPPP ТRPРT ТPРRPРTT/ТPPPТZX ТPРZXX/ ä//RPnYxYP@RRb@RnbYY߭@5Q/TŏPĄQČPA0Rb[[T$R[/ R/QPݮݮ/QP(0/<}PjPPRR`^PR|QPBPPTVxVP@eRb2xVP@Qa T@eP`P@PPVxVP@eP`ςZxZP@?RQb@CRޭbZxZP@?R{Qb@CRޭbZZ?DOЭWЭ[O DOP/ЭWODOP/Ѭ ǾѬ1ЬRݢ϶P1ǿϦPrТTT`NRbTØbTq P ÈbT|vOP@Nut |~:@w1YVXL/?8L@ 4MP <NLTФPPP #RPRRT1N|~(xMPTN(\Mϳ u |~Gv1|XV</?8<@s 4>MP~ <M<TФPPP #RPRRTM|~$L1P<iM$L/ϵ`L<EMP^YP\PLP\\H\PLp\\\PL\\P\PL\\P<(^ͷSR/QŏPP\@0\lT؟TQM؟T/M/MPU䟭UU/MP(0<^USnR/<0LLP\\`L\|LKPUTxT\Lc\l1xT\LP` ULc\l\LPKTxT\Lc\lP ^R$SCPSϫ)< ~CPKSS-^lTW<)=2BLDN\zE|~kDJPXXJ*DJUVxV\LPL`LS URB\lJPcVV߭ܞB\lX%JPEB\lULEJUUUnJ ^RSxS\LPL`L\ޭlSxS\LPK`L\ޭlSS߭D[JЭЭ D]JP/Э͋DBJP/<4^ݴS RЬUU`eITdU˜dUq J ˆdU|v߭J6Kޭ̭߭@I<4^TSxS\LR KbLR>bSxS\LRJbLR>bSS߭,LISxS\LRJbLR>bSS߭DIPV 0RTR#բѢTSTbc=PCfТ RTWT0<(>XxXRBS?cBRVbXxXRBS?cBRTbXX߭p=TWDf<TTW/STSZѣNR 0PQѠѠQQRР PR&pc)>PTYTRTc<PBfУ STWT0&<M=XxXRBS>cBRVbXxXRBS>cBRTbXxXRBS>cBRYbXX߭t<TWPDf;TTWV<^ЬRbPb~B=PbRb^ ЬRR<=P`bPP RPRP<p^/T\SѬ Ѭ ݬݬP=401U`>;PRxUP@Q=a@PR`UU߭{D=;P40R ;40.;P;40;P{;y,K=40;Uݬݬćpi<ēp:PRxUP@Q =a@PR`UU߭40I;Rl:40:լ 40+ݬ <:P 0/6< ^ȥRcޭ|~?ݬPS?T@HR,PD/00P////Pՠ Р /P/P/ ,PLx0P@RbPP &~1?Px0TDfRb%DL+RP$RRX1PDRbq,x0P@fRbs,Tu,|y,|~q,L|~,PWʏPP(/߭j+l߭13P \] T+P`T+Py,},|~q,L|~;+PWʏPP(/߭*l߭:1gPy,},|~q,L|~@*PWʏPP%/߭)l߭7?1lˏ~<~<Tt)TA)Pu,>y,},|~q,L|~(PWʏPP%/d߭;(l߭XXk/R8'P P/#'P0P//RT$PRR'PP&P'PTT//RԢ /PР /P/Pՠ 4&0&*002P| ^MUzTS@ŏRB~Rbb 'Pb 'PŏP@~R:R&PRSRSńŏRB~& PSőŏRB~z&ŏRB~Rbv&PbXPVRVRRPP< ^YST|߭߭ØŏP@~Rb8&PUU߭߭àb&PUxPPģ PUPPP|^T@\ЬRRR #RPRR@L$PVV#0$PU/\S\ѬSRSl#PBeЬ \SUV#S0PCe#SS0U$P\^+WXS$0$0*$$0լ)D0Q!СRPP#RRR Q#D01VǦ#PUxVRB\P%`B`RpbVxVRB\PZ%`B`RbVxVRB\Pa%`B`RbVxVRB\P6%`B`RUbVV\ǿD"PD0U"D0"P#D0"P#A$D0#D0QСRPP#RRR Q"ެQaRբ 1/PTPRPՠTР PPaŏdTRQRP0R RP QP{RPQPQXXH0ZXH0X߭p#߭!PTVxVRB\P$`B`RTbVV\D0P"Ts!]<~<"P$0PD0!^S$TެRDPbT-TDPbT-м PP%qP?PTŏTUE}Ь RQТ P`R RP Q{RPQPQWWPEyRxPbPʏPPPL0Ь U`VQХ PVR RP QP{RPQPQWVVW~L0/R/RRݥݥ H"L0ŏTRByRxWPPbŏTRByRxWPPbP^Ь PѠ4ݬ ݬ ݬ ^﹘RѬ` |~ϳPѬ|/£ ϲ^aTSsRQ QP@cP`ѬAPQ QP@cP`ԭxP@dP`xP@dPQ`֭xP@dP`xP@dP` ߭^ P|^ﴊSR(0// / `PVV֕P1֕P}VUU`TdU˜dUq P ˆdU|v߭1 ޭ߭@0dϯV ߭߭8 ώV // ^ٖR/Pՠ 00 /SK/Pՠ =Р ///Pՠ >0084q0dP4S0F^VW9T|= @͚͜͝Ě͞@͔͕͒K ͖(0///Z|߭߭ƘŏZRB~ScPѮ߭߭ƠcvPxRRģ RѮRRģ -P1> K  P1F P|Y H ݮLP`HRR HRЮHRRPB D ݮHP`DRR  DRPЮDRRPģ S M B//ę1Ě1ģ 1Ĩ Ě} ͢T͢ęħ K &K Ƒ ͢$͢J &Ɲ ͢͢X1ư ƪ u//6Ě0*Ě ͢͢EX Y DP 1d ,P1R @ ݮD P`@RR @RЮ@RRY @ ݮDP`@RR  @RPЮ@RR!@ ݮDP`@RR  @RPЮ@RRĚ @ ݮD|P`@RR  @RPЮ@RR ͢͢4Y 0 ݮ4.P`0RR 0RЮ0RRĚ  , ݮ0P`,RR  ,RPЮ,RR!ħ 1ģ 1Ĩ Ě ͢͢ħ Ě , ݮ0yP`,RR  ,RPЮ,RRY , ݮ0HP`,RR  ,RPЮ,RR! ͢K͢J UK P͒߭ܟ͒P[[!)K xģ ~? ͢͢P EYԮ RBgRbX1Zbb  X1ŏXP@}1@} YP@s,RXb@q,S QARbcARbPP "BZF1A?PXfŏXRB~ScjPOB~[ci ͢͢cŏXRB~ScjPRP@~] m cX 3ŏXRB~ScjPcjPRP@~: o cŏXRB~͢͢jPB~͢jPU P@RUbP E͢UUb P@Rb͢ŏXRB YP@u,PB~`1U QARUb0ŏXRURB~ARUUbŏXPUP@~ SCQUaŏXRURP @~UUa YP@u,SŏXRB~c1ŏXRByq B~, YP@u,SŏXRByc1[P||ԭ߭߭߭߭߭t ŏXRB~Rb<^{TS`UPRRȕP(RO ߭߭f QRRP01Um PRxUP@Q&a@PR`UxUP@Q$a@P`UU߭ DPP0RkP0P߯tP0UÚċ ߭߭PRxUP@Qa@PR`UUP0RP0u ^qzSRݬ[(0///Ѽ )š#šÛ ߭;߭ϯë ς//e^)Rݬ 0^R,0,0^R0000$0$0$0/Pՠ 40P|^]yVRHq?8H@Ƭ 4 PƷ <\$SUxUP@Qa@P``UCPU߭CPSS-HUХSSS #SPSSU |~ PU  ϣ$TDPTϏ< ~DPp TT-^QxT~RL/?8L@ 4 P <P LSУPPP#PPPS |~(0 PS ( kPP^wWWXՄU0 Ѽd4 0 Ѽd//xP@ Rb \a \ PTVxVRBS cBRTbVxVRBScBRbVV߭8) TL 0S' TPcdУ RSdRSм0H H xP@RbPP !!!1zP?PxP@hRŏbRB~ ݮ D P`RR  RPЮRRS1PxP@hRŏbRB~ ݮ P`RR  RPЮRRxP@hRŏbRB~ ݮ P`RR RЮRR PP Pk PSSH1xSChRŏbRB}ChRbP  ЬSxcP@Rb PHxcRBScBhRŏbRB~H 9P/ RR'1 0  PP* P PRRH//0//00 00 < P00P^aQPЬ@P^論QPЬ@|^S/ݬPVݬPUЬP`RďRB}` UTTRbb~ PbRbURďRB~ /UݬwVr/U ^QPЬ@p^̀Q/PxPPP^鹿QPЬ@^Q/PxPPP^eQPЬ@^MS/TT(,TPxPRBQTPPPxPPPQQBPTP(PxPQA^RʏPxPPPRRA^]<^rTSѼ $2 |(J 3 K H߭4 Ь Rݢݭ|J ݭK K UURbb~PbRbݭ[5 è ã N^PP<,^qSR@1U; PTxUP@Q}a@PT`UxUP@Qa@P`UU߭O @ P@TϭO@t\ ϔ:@[@P@P@QСPPP#PPPQ|~ $@  /Ϻ  ^pS}R</?8<@s 4P~ <<QСPPP#PPPQ1|~$x<$]/φa^oX}URR1R 1߭Ƞ Ь Rݢ/SݭcPУ Sݭ 0RVRѢ RVТ RRUPRcTY%PTTAPPPPYYbԢԢ V R PR 0բУXPԢPPW 0RSR@ TբѢWWѢSТ Т 0 RSТ R6^nT{Uġ ݬnP@ݬPWT0QСPPP#PPPPoVĩ RbPXij bPZļ bPYxVP@R b@RXbVxVP@R b@RZbVxVP@R b@RYbVT0/V߭ @APT0XRbZbYbT0QСPPP #RPRRhxVP@R b@RWbVV߭ @PS߯vPSoXRbZbYbWbSVxVP@R$ b@RWbVVͬT0+WNT0^ݬ@@ )0 p`` `ph(@ H 8A/>L8;P:4\3  t|l<L|D  (  (  x $ 8#,&#\$<&XpE\m<P PUsername P  PAccountP  POwner,PPUICReturn: return_key()PosfSelect: select_key()Preturn_key/P&Pselect_key7P&1P*fontList: -Adobe-Helvetica-Bold-R-Normal--12-120-75-75-P-*-*-*@P1qPDWProfile{PmwmDecorationsPDWProfilePdwprofile_mainPError Fetching main widgetPDEFAULTPMain InitPCannot read username DEFAULTPwhitePredPDECW$CURSORPaccess_buttonPAccess...Pprivs_button)PPrivs...2Paccounts_buttonBPAccounts...NPidents_button\PIdentifiers...kPpopupqP[%s]vP%s %s|PDWProfilePget_recordP%s %sPDWProfileP:00.00P17-NOV-1858P(none)P17-NOV-1858P(none)P(none)P%d %02d:%02d:%02d.%02dP[%o,%o]P%dP%dPheld ident array overflow in update_held()&Pall ident array overflow in update_held()PP%s (From: %s) `PDWProfile: Warning Message{Pmessage_boxP%s From: %sPUnknownPDCL.TMPPNL:P$ UAF REMOVEP$ UAF MODIFYP/UICPDCL.TMPPwP$ DELETE DCL.TMP;* P$ PREVPRIV = F$SETPRV("ALL") P$ DEFINE/USER SYSUAF SYS$SYSTEM:SYSUAF ,P$ UAF :== $AUTHORIZE BP%s FP$ MAIL NPREMOVE %s YPEXIT _P$ @DWPUID:DELTREE %s:[%s] zP%s:[000000]QUOTA.SYSP$ RUN SYS$SYSTEM:DISKQUOTA PUSE %s PREMOVE %s PADD %s /PERMQUOTA=%d /OVERDRAFT=%d PEXIT PSpawned process statusPSpawn_DCL P%s:[000000]%s.DIRP%s:[%s]#PCreate Dir.Pcalc_uic7PIllegal UIC formatJP[%o,%o]TP([%s,%s])^P([%s])eP([%o,%o])oPReading identifier %dPread_identifiersPSYS$NODEPDWProfile: Reading IdentifiersPwork_boxPReading identifiersPUsername %s does not existPFindPUsername %s does not existPFindPUsername %s does not exist7PFind<P[%o,%o]DPUsername %s does not exist_PFinddPUsername %s does not existPFindP 00:00:00.00P:00.00P[%o,%o]P%o,%oH0PPDWProfile: Find progressPprogress_boxP%d%% of identifiers searchedPDEFAULTPReadPUsername does not exist, defaults applied PCannot read username %s8 PRead> PDEFAULTF P[USER]M PWriteS PBad Owner, Account, UIC or Directory name} P$ UAF ADD %s/UIC=%s P/ACCOUNT=%s P/PASSWORD=%s PWrite PNo username or no UIC P$ UAF MODIFY %s/PASSWORD=%s  P$ @DWPUID:MOVE_DIRECTORY %s %s %s %s  P$ UAF MODIFY %s/UIC=%s ! P$ @DWPUID:RESETOWNER %s%s %s ? P$ UAF ADD/IDENTIFIER/VALUE=UIC=[%o,*] %s i P[%sm P]o P:q P%dt P%d %02d:%02d:%02d.%02d P%02d:%02d:%02d.%02d P%02d:%02d.%02d P%d.%02d PWrite PIllegal date format PWrite/SETUAI PWrite PSETUAI successful PWrite/ADD_HOLDER PWrite PADD_HOLDER successful" PWrite/REM_HOLDER3 PWrite9 PREM_HOLDER successfulO PUser %s does not existf PRemovem PDWProfile: Remove Pcaution_box PRemove user %s? P$ UAF REMOVE %s Paccess_box PError Fetching Access main widget Pprivs_box PError Fetching Privs main widget PReset %s search PSelect PIllegal date format5 P[0,0]; PDWProfile: AccountsO Paccounts_box\ Pmenus windows accountss Pidents_box~ PError Fetching Idents main widget Pcontext PDWProfile Poverview PDWPUID:DWPROFILE.HLB PDXmapplicationName PDXmoverXMDRAWINGAREAWIDGETCLASSXMTEXTWIDGETCLASSDXMHELPWIDGETCLASSDXMCREATEHELPDIALOGDXMHELPONCONTEXT DXMINITIALIZEXMTEXTSETINSERTIONPOSITIONXMTEXTGETINSERTIONPOSITIONXMTEXTSETSTRINGXMTEXTGETSTRINGXMCREATESELECTIONDIALOGXMSELECTIONBOXGETCHILDXMMESSAGEBOXGETCHILDXMCREATEWORKINGDIALOGXMCREATEWARNINGDIALOGXMCREATEMESSAGEDIALOGXMMENUPOSITIONXMCREATEPOPUPMENUXMCREATEPUSHBUTTONGADGETMRMFETCHWIDGETMRMREGISTERNAMESMRMOPENHIERARCHY MRMINITIALIZEXMPROCESSTRAVERSAL XMSTRINGFREEXMSTRINGGETLTORXMSTRINGCREATELTORXMSTRINGCREATESIMPLEXTGETGCXTREMOVEWORKPROCXTAPPADDWORKPROCXTFREEXTCALLOCXTMALLOC XTAPPERROR XTGETVALUES XTSETVALUESXTGETAPPLICATIONRESOURCESXTAPPINITIALIZE XTADDCALLBACKXTSETSENSITIVEXTDESTROYWIDGETXTREALIZEWIDGETXTREMOVETIMEOUTXTAPPADDTIMEOUT XTAPPMAINLOOPXTADDEVENTHANDLERXTAPPADDACTIONSXTOVERRIDETRANSLATIONSXTPARSETRANSLATIONTABLEXTUNMANAGECHILD XTMANAGECHILDXTMANAGECHILDRENXUNDEFINECURSORXFLUSHXFILLRECTANGLE XDEFINECURSORXALLOCNAMEDCOLORXCREATEBITMAPFROMDATA XLOADFONTXCREATEGLYPHCURSORSTR$MATCH_WILDSPRINTFPRINTFFPRINTFSSCANFFCLOSEFOPENMEMSETMEMCPYMEMCMPSTRSTRSTRLENSTRRCHRSTRCHRSTRNCMPSTRCMPSTRCATSTRNCPYSTRCPY LIB$SIGNAL SYS$IDTOASCSYS$FINISH_RDB SYS$FIND_HELD SYS$GETUAI SYS$ASCTIMXMTOGGLEBUTTONSETSTATEXMTOGGLEBUTTONSETSTATEXMTOGGLEBUTTONSETSTATETOUPPER SYS$GETMSGLIB$CREATE_DIR LIB$SPAWNLIB$FIND_FILE_END LIB$FIND_FILELIB$SYS_TRNLOG SYS$ASCTOID SYS$IDTOASCSYS$FINISH_RDB SYS$GETUAIviewTopic PDXmlibrarySpec Phelp_box PDXmfirstTopic Phelp_box$ PDXmfirstTopicP^ C$MAIN_ARGSWUSP@PPPHPP@pPPPP@PPPPP@PP MRMINITIALIZE DXMINITIALIZEYxYP@R X$GBLSTRINGS3b@RqbYxYP@R{b@R:bYY߭@ݬ߬|~NJ< XTAPPINITIALIZEP@4$MRMOPENHIERARCHYPTT T LIB$SIGNALHMRMREGISTERNAMESPTT T LIB$SIGNAL?8D@ǔ4MRMFETCHWIDGETPǣ< XTAPPERROR|~cL@XTGETAPPLICATIONRESOURCESD XTMANAGECHILD@XTREALIZEWIDGET@RТPPP ТRPРT ТPРRPРTT/ТPPPТZX ТPРZXX/ ä//XCREATEBITMAPFROMDATAPnYxYP@R X$GBLSTRINGS,3b@RnbYY߭@ XTSETVALUES/TŏPĄQČPA0Rb[[TXALLOCNAMEDCOLOR[/XALLOCNAMEDCOLOR/ XLOADFONTPݮݮ/XCREATEGLYPHCURSORP(0/<XTAPPADDACTIONSXTPARSETRANSLATIONTABLEPRR`XTOVERRIDETRANSLATIONSR|XTOVERRIDETRANSLATIONSXTPARSETRANSLATIONTABLEPTVxVP@eRb2xVP@Qa T@eP`P@PXTOVERRIDETRANSLATIONSVxVP@eP`ςZxZP@?R X$GBLSTRINGS3b@CRޭbZxZP@?R X$GBLSTRINGS\3b@CRޭbZZ?D XTGETVALUESЭWЭ[O DXTGETGCP/ЭWODXTGETGCP/Ѭ ǾѬ1ЬRݢ϶P1ǿϦPrТTT`XMTEXTSETSTRINGRbTØbTq SPRINTF ÈbT|vSPRINTF X$GBLSTRINGS<3@ XTSETVALUESut |~:@w1YVXL/?8L@ 4MRMFETCHWIDGETP < XTAPPERRORLTФPPP #RPRRTXTUNMANAGECHILD|~(XMTOGGLEBUTTONSETSTATEPT XTMANAGECHILD(XMTOGGLEBUTTONSETSTATEϳ u |~Gv1|XV</?8<@s 4MRMFETCHWIDGETP~ < XTAPPERROR<TФPPP #RPRRTXTUNMANAGECHILD|~$XMTOGGLEBUTTONSETSTATE1P< XTMANAGECHILD$XMTOGGLEBUTTONSETSTATE/ϵ`XMPROCESSTRAVERSAL< XTAPPMAINLOOPP^P\PLP\\H\PLp\\\PL\\P\PL\\P<(^SR/QŏPP\@0\lT؟TQXALLOCNAMEDCOLOR؟T/XALLOCNAMEDCOLOR/ XLOADFONTPU䟭UU/XCREATEGLYPHCURSORP(0<^SR/<XTAPPADDACTIONSXTPARSETRANSLATIONTABLEP\\`XTOVERRIDETRANSLATIONS\|XTOVERRIDETRANSLATIONSXTPARSETRANSLATIONTABLEPUTxT\Lc\l1xT\LP` ULc\l\LPXTOVERRIDETRANSLATIONSTxT\Lc\lP ^R$SCPSϫ)< ~CPXTADDEVENTHANDLERSS-^TW<)=2BLDN\zE|~kDXMCREATEPOPUPMENUPXXJ*DXTADDEVENTHANDLERUVxV\LP X$GBLSTRINGS:3`LS URB\lXMSTRINGCREATESIMPLEPcVV߭ܞB\lXXMCREATEPUSHBUTTONGADGETPEB\l X$GBLSTRINGS3E XTADDCALLBACKUUUXTMANAGECHILDREN ^RSxS\LP X$GBLSTRINGS3`L\ޭlSxS\LP X$GBLSTRINGS\3`L\ޭlSS߭D XTGETVALUESЭЭ DXTGETGCP/Э͋DXTGETGCP/<4^SRЬUU`XMTEXTSETSTRINGTdU˜dUq SPRINTF ˆdU|v߭SPRINTF X$GBLSTRINGS<3ޭ̭߭@ XTSETVALUES<4^TSxS\LR X$GBLSTRINGS3bLR>bSxS\LR X$GBLSTRINGS3bLR>bSS߭, XTGETVALUESSxS\LR X$GBLSTRINGS3bLR>bSS߭D XTGETVALUES?T@HSTRLENPD/00P////Pՠ Р /P/P/STRLENPLx0P@RbPP (P1?Px0TDfRb%DLSTR$MATCH_WILDRP$RRX1PDRbq,x0P@fRbs,Tu,|y,|~q,L|~ SYS$GETUAIPWʏPP(/߭SPRINTFl߭13P \] TSTRCHRP`TSTRLENPy,},|~q,L|~ SYS$GETUAIPWʏPP(/߭SPRINTFl߭:1gPy,},|~q,L|~ SYS$GETUAIPWʏPP%/߭SPRINTFl߭7?1lˏ~<~<TSPRINTFTSTRLENPu,>y,},|~q,L|~ SYS$GETUAIPWʏPP%/d߭SPRINTFl߭XXk/RXTMALLOCP P/XTMALLOCP0P//RT$PRRSTRLENPPXTMALLOCPSTRCPYPTT//RԢ /PР /P/Pՠ 4XTSETSENSITIVE0XTSETSENSITIVE  ~DWPROFILE34.BCKA(* [DWP]DWPROFILE.OBJ;3TB3*002P| ^UTS@ŏRB~RbbSTRLENPbMEMSETPŏP@~R:RSTRCHRPRSRSńŏRB~STRCAT PSőŏRB~STRCATŏRB~RbSTRLENPb SYS$BINTIMPVRVRRPP< ^ST|߭߭ØŏP@~RbSSCANFPUU߭߭àbSSCANFPUxPPģ PUPPP|^T@\ЬRRR #RPRR@XMSELECTIONBOXGETCHILDPVVXMLISTDELETEALLITEMS0XTCALLOCPU/\S\ѬSRSlXMSTRINGCREATESIMPLEPBeЬ \SUVXMLISTADDITEMSS0PCe XMSTRINGFREESS0UXTFREEP\^WS$0$0XTREMOVETIMEOUT$0լ)D0Q!СRPP#RRR QXTUNMANAGECHILDD01VǦXMSTRINGCREATESIMPLEPUxVRB\P X$GBLSTRINGS3`B`RpbVxVRB\P X$GBLSTRINGS3`B`RbVxVRB\P X$GBLSTRINGS;3`B`RbVxVRB\P X$GBLSTRINGS<<3`B`RUbVV\ǿDXMCREATEWORKINGDIALOGPD0U XMSTRINGFREED0XMMESSAGEBOXGETCHILDPXTUNMANAGECHILDD0XMMESSAGEBOXGETCHILDPXTUNMANAGECHILDA X$GBLSTRINGS3D0 XTADDCALLBACKD0QСRPP#RRR Q XTMANAGECHILDެQaRբ 1/PTPRPՠTР PPaŏdTRQRP0R RP QP{RPQPQXXH0ZXH0X߭SPRINTF߭XMSTRINGCREATESIMPLEPTVxVRB\P X$GBLSTRINGS0084XTSETSENSITIVE0XTSETSENSITIVEP4XTSETSENSITIVE0XTSETSENSITIVE^VWT|= @͚͜͝Ě͞@͔͕͒K ͖(0// XDEFINECURSOR/XFLUSHZ|߭߭ƘŏZRB~ScSSCANFPѮ߭߭ƠcSSCANFPxRRģ RѮRRģ STRLENP1> K STRNCMPP1F STRNCMPP|Y H ݮLSTRCHRP`HRR HRЮHRRSTRLENPB D ݮHSTRCHRP`DRR  DRPЮDRRSTRLENPģ S M B//PXUNDEFINECURSORę1Ě1ģ 1Ĩ Ě} ͢SPRINTF͢STRCPYęħ K &K Ƒ ͢SPRINTF͢STRCATJ &Ɲ ͢SPRINTF͢STRCAT֔X1ư ƪ u//XUNDEFINECURSOR6Ě0*Ě ͢SPRINTF͢STRCATX Y STRLENP 1d STRLENP1R @ ݮDSTRCHRP`@RR @RЮ@RRY @ ݮDSTRCHRP`@RR  @RPЮ@RR!@ ݮDSTRCHRP`@RR  @RPЮ@RRĚ @ ݮDSTRCHRP`@RR  @RPЮ@RR ͢SPRINTF͢STRCATY 0 ݮ4STRCHRP`0RR 0RЮ0RRĚ STRCPY , ݮ0STRCHRP`,RR  ,RPЮ,RR!STRCPYܕħ 1ģ 1Ĩ Ě ͢SPRINTF͢STRCATħ Ě , ݮ0STRCHRP`,RR  ,RPЮ,RRY , ݮ0STRCHRP`,RR  ,RPЮ,RR! ͢SPRINTF͢STRCATJ UK STRLENP͒߭ܟ͒ SYS$ASCTOIDP[[!)K xģ ~? ͢SPRINTF͢STRCATSTRLENP EYԮ RBgRbX1STRLENZSTRCPYSTRCAT SSCANF X1ŏXP@}1@} YP@s,RXb@q,S QARbcARbPP :P1A?PXfŏXRB~ScjPOB~[ci ͢SPRINTF͢cŏXRB~ScjPRP@~] m cX 3ŏXRB~ScjPcjPRP@~: o cŏXRB~͢͢jPB~͢jPU P@RUbP E͢UUb P@Rb͢ŏXRBSTRNCPY YP@u,PB~`1U QARUb0ŏXRURB~ARUUbŏXPUP@~ SCQUaŏXRURP @~UUa YP@u,SŏXRB~c1ŏXRByq B~, YP@u,SŏXRByc1[P||ԭ߭߭߭߭߭t ŏXRB~Rb<ЀP[["||ԭ߭߭߭߭Ƌ b8P[[*||ԭ߭߭߭Ɵ ŏXRB~4P[['||ԭ߭߭Ʈ ŏXRB~0P[ŏXRBySŏփRŏ@~PPRŏpPPRŏdPPRRc YP@u,RcbTXP YP@u,SŏXRB~c/PƼ ƶ ϹY YP@u,SŏXRByc YP@y,RbY֮ P@gRbX1: YRBs,SBq,RbcĚSTRLENP͚Y1|~q,͚|~ SYS$SETUAIP[[n [Sc͍͊͌&͎|~͊?S SYS$GETMSGPn?PO:P"BZFO1P%q'P&~ZP&VVVVVLPlITPI\P03dP4lP@3tPP4|P(BPDPEPLPDJP\JPJPJPJPJP        xџ SYS$BINTIMXMLISTADDITEMSXMLISTDELETEALLITEMSEXITSYS$REM_HOLDERSYS$ADD_HOLDER SYS$SETUAI SYS$ASCTOIDXMTOGGLEBUTTONSETSTATEXMTOGGLEBUTTONSETSTATEXMTOGGLEBUTTONSETSTATEXMTOGGLEBUTTONSETSTATE MAIN C$MAIN_ARGS0Q$CODEX0$DATASTDINSTDOUTSTDERRITEMS SELECT_DATA2 $CHAR_STRING_CONSTANTSL LP\MPNPIPDFPPO3Pp2;P2ETVALUESSS-HUХSSS #SPSSUXTUNMANAGECHILD|~XMTOGGLEBUTTONSETSTATEPU XTMANAGECHILDXMTOGGLEBUTTONSETSTATEϣ$TDPTϏ< ~DPXTADDEVENTHANDLERTT-^TRL/?8L@ 4MRMFETCHWIDGETP <*[DWP]DWPROFILE.UID;13+,.i/ 4ii- 0123KPWOj56dv ӓP7dFԓP89p|uGHJ N 8ro|URM 1.1Motif Uil CompilerV1.1-00013-DEC-1992 17:23:54.17DWProfilep  P   p@tT      " H 0Xdwprofile_mainH I 0xdwprofile_main Dhf` hHelpmain_boxmenuH ,DI, (menufil  Xhft |Helphelp_menu_entrynuhelp_menu_entryselect_menu_entrywindows_menu_entryfile_menu_entryH I 0file_menu_entry   `hf| Helptrcommands_menuH  DI 0commands_menuy |quit_buttonremove_buttonwrite_buttonfind_menu_buttonnuread_buttonread_id_buttonpH  (I 0read_id_button   Xhft |Helphf ReadIdentifiersonH +$y' ISO8859-1Read IdentifiersH menus file read_identifiersH 0@I0 widget-4-112-17H  pI ,read_button   TXhfp xHelpelphf Readead H y ISO8859-1ReadH menus file readH  ,I, `4find_menu_buttonhfPTButtonCreatedp     hf Helpon nhf yFindt_m nd  yH $y  ISO8859-1 Find NextH  Next:H Ty ISO8859-1NextH tmenus file find_nextH  I 0write_buttonton   XCrhft |Help hf fWriteH  y ISO8859-1WriteH  menus file writeH   I 0remove_buttonon   XCrhft |Help hf fRemoveH ! y ISO8859-1RemoveH  menus file removeH   I ,quit_button     h|hf Help hf QuitH ( y ISO8859-1QuitH !, y ISO8859-1Ctrl/ZH  ` Ctrlz:H  menus file quitH  y ISO8859-1FileH  FH  menus fileH  I 4windows_menu_entry   dhf Helpelpwindows_menuH  @ I 0windows_menuentx hprivs_buttonidents_buttonlpaccounts_buttonaccess_buttonH (Wro|_ <  l3   L#`  P  p x^ hR G   D  - $z#  (   0  g P Z | N @  x     $  ? L      s  _ N <. TD   \  A`D6 T*    d  d  "h  ? 1 `$ (  4 |  p  ^ P M  l  O l2,D  5 d'    | s d hW I < X      \    T   $     , x t~ n _ k p] P a( $m  "   ( H l _< < 1  J > t 3 4 p <x n     H4 A(N@ {  h  (* ,     s t>ClassTable>ResourceTablefind_buttonfunctionspgflquo_textpgflquo_labelpgflquoenqlm_textenqlm_labelenqlmcpu_textcpu_labelcpuwsextent_textwsextent_labelwsextenttqelm_texttqelm_labeltqelmqueprio_textqueprio_labelquepriowsquota_textwsquota_labelwsquotaastlm_textastlm_labelastlmprio_textprio_labelpriowsdef_textwsdef_labelwsdefdiolm_textdiolm_labeldiolmprclm_textprclm_labelprclmjtquota_textjtquota_labeljtquotabiolm_textbiolm_labelbiolmmaxdetach_textmaxdetach_labelmaxdetachpbytlm_textpbytlm_labelpbytlmshrfillm_textshrfillm_labelshrfillmmaxacctjobs_textmaxacctjobs_labelmaxacctjobsbytlm_textbytlm_labelbytlmfillm_textfillm_labelfillmmaxjobs_textmaxjobs_labelmaxjobspwdlength_textpwdlength_labelpwdlengthpwdlifetime_textpwdlifetime_labelpwdlifetimeexpiration_textexpiration_labelexpirationsep2restricted_buttonpwd2_buttonpwd_buttonlockpwd_buttongenpwd_buttondiswelcom_buttondisacnt_buttondisreport_buttondisreconnect_buttondispwdhis_buttondispwddic_buttonnomail_buttondismail_buttondisimage_buttondisforce_buttondisctly_buttondefcli_buttoncaptive_buttonautologin_buttonaudit_buttonflagssep1logfails_textlogfails_labellogfailslastlogin_n_textlastlogin_n_labellastlogin_nlastlogin_i_textlastlogin_i_labellastlogin_ipassword_textpassword_labelpasswordlgicmd_textlgicmd_labellgicmddirectory_textdirectory_labeldirectorycli_textcli_labelclitable_texttable_labeltabledevice_textdevice_labeldeviceuic_transuic_textuic_labeluicaccount_textaccount_labelaccountowner_textowner_labelowneruser_textuser_labelusermain_boxhelp_versionhelp_windowhelp_contexthelp_menuhelp_menu_entrylogfail_buttonexpire_buttonlifetime_buttontable_buttonlgicmd_buttoncli_buttondirectory_buttondevice_buttonuic_buttonowner_buttonaccount_buttonusername_buttonrestart_buttonselect_menuselect_menu_entryprivs_buttonidents_buttonaccounts_buttonaccess_buttonwindows_menuwindows_menu_entryquit_buttonremove_buttonwrite_buttonfind_menu_buttonread_buttonread_id_buttoncommands_menufile_menu_entrymenudwprofile_mainDWProfilero|` , 8dd,H4     \   x\(Ht<l4\HD   |``(   DP\dlt        , 8 @ D H X  p   |  @  0   L  <  d  (  ( ro|"xHH I \0access_buttonnthfLButtonCreated   tohf _bHelphf AccessH $y  ISO8859-1 Access...H menus windows accessH 8I \0accounts_buttonhfLButtonCreated   tohf _bHelphf AccountsH &`y" ISO8859-1 Accounts...H dmenus windows accountsH I \0idents_buttonnhfLButtonCreated   tohf _bHelp hf Identss H )y% ISO8859-1Identifiers...H menus windows identsH I \0privs_buttonnhfLButtonCreated   tohf _bHelp hf Privss H #,y ISO8859-1Privs...H ,menus windows privsH "dy ISO8859-1WindowsH menus windowsH I 4select_menu_entryf   dhf Helpf select_menuH  I ,select_menutrxfh\L8, clogfail_buttonexpire_button_mlifetime_buttontable_butt .E~DWPROFILE34.BCK [DWP]DWPROFILE.UID;13iQ|onlgicmd_buttonycli_buttondirectory_buttondevice_buttonuic_buttonowner_buttonaccount_buttonusername_buttonrestart_buttonH  I \0restart_buttonrhfLButtonCreated   hf HelphfdSelect__bH 'y# ISO8859-1 Reset searchH  menus select restartH 0 I0 widget-4-177-17H   I 0username_button p LhfhSelectH #4 y ISO8859-1UsernameH   I 0account_button p LhfhSelectH " y ISO8859-1AccountH   I 0owner_buttonn p LhfhSelectH  y ISO8859-1OwnerH  |\ I| ,uic_buttonn l HhfdSelecteH  y ISO8859-1UICH   I 0device_button p LhfhleSelectH !P y ISO8859-1DeviceH   I 4directory_button t PhflleSelectH $y  ISO8859-1 DirectoryH  |I| ,cli_buttonu l HhfdSelecteH y ISO8859-1CLIro|!@H  I 0lgicmd_button p LhfhleSelectH !y ISO8859-1LGICMDH  I 0table_button p LhfhleSelectH $y  ISO8859-1 DCL tableH  \I 0lifetime_button p Lhfh leSelectH &y" ISO8859-1 PwdlifetimeH  (I 0expire_buttonn p Lhfh leSelectH &`y" ISO8859-1 Expire dateH  I 0logfail_button p Lhfh leSelectH -,y) ISO8859-1Login failures > 0H !y ISO8859-1SelectH SH  4menus selectH HI 0help_menu_entry x h Xhle help_menuhfH  hI ,help_menuenythXhelp_versionlehelp_windowhelp_contextheH   I 0help_contexty  Lhfh pleHelpwin!xt"fH %y! ISO8859-1 On ContextH HcontextH  I ,help_window | Hhfd lHelpelp#$H $y  ISO8859-1 On WindowH  <overviewH  tI 0help_version  Lhfh plpHelp%&fH %y! ISO8859-1 On VersionH 4versionH ly ISO8859-1HelpH HH menusH I ,@main_boxion*hltlf`dTH<_4f,n$o_ iro_cntms|tl`\TL@functionspgflquoenqlmcpuwsextenttqelmquepriowsquotaastlmpriowsdefdiolmprclmjtquotabiolmmaxdetachpbytlmshrfillmmaxacctjobsbytlmfillmmaxjobspwdlengthpwdlifetimeexpirationsep2flagssep1logfailslastlogin_nlastlogin_ipasswordlgicmddirectoryclitabledeviceuic_transuicaccountowneruserH I (userbox  Phfl tHelp'user_textuser_labelH x Ix ,user_label h(H  y ISO8859-1User:H I X,user_texthfHWidgetCreatedP   hfWidgetChangedH Hfields text userro||@H I (ownerex  PCrhfl tHelp)owner_textowner_labelH xIx ,owner_label h*H !y ISO8859-1Owner:H \I X,owner_texthfH WidgetCreatedZ    hf laWidgetChangedowner_labelHH fields text ownerH I (account( PCrhfl tHelp+ account_textaccount_labelgeH |I| 0account_label l,H #y ISO8859-1Account:H I \0account_texthfL WidgetCreatedP   hf t_WidgetChangedaccount_labelH Lfields text accountH HI $uic( Lhfh pHelp-uic_textuic_labelH xpIx ,uic_label h.H <y ISO8859-1UIC:H I X,uic_texthfHWidgetCreatedZ   xthfChWidgetChangeduic_labelH fields text uicH tIt X,uic_transhfHWidgetCreated-H  I (devicenF PCrhfl tHelp/device_textdevice_labelH |I| 0device_label l0H "| y ISO8859-1Device:H  I X,device_texthfH WidgetCreatedP    vihf ChWidgetChangeddevice_label<H @ fields text deviceH D I (table_tF PCrhfl tHelp1 table_texttable_labelH xl Ix ,table_label h2H !< y ISO8859-1Table:H  I X,table_texthfHWidgetCreatedZ   blhfChWidgetChangedtable_label<H  fields text tableH I $cliF Ldghfh pHelp3cli_textfcli_labelH x$Ix ,cli_label h4H y ISO8859-1CLI:ro|$H I X,cli_texthfHWidgetCreatedK    xthfChWidgetChangedcli_labellH fields text cliH I ,directoryd Ttehfp xHelp5directory_textdirectory_labelH |$I| 0directory_label l6H %y! ISO8859-1 Directory:H I \0directory_texthfLWidgetCreatedP    rehflWidgetChangeddirectory_label_H fields text directoryH I (lgicmdrd Pdghfl tHelp7lgicmd_textlgicmd_labelH |I| 0lgicmd_label l8H "y ISO8859-1LGICMD:H `I X,lgicmd_texthfHWidgetCreatedZ    ichfWidgetChangedgelgicmd_label_labeH fields text lgicmdH I ,Hpasswordxtddgtxhpassword_textpassword_labelH I 0password_label  thf Help9ic:H $\y  ISO8859-1 Password:H (fields text passwordH `I \0password_texthfLWidgetCreatedK    hfdgWidgetChangedpassword_label_H I ,Hlastlogin_iC|hlastlogin_i_textlastlogin_i_labelH l Il 4lastlogin_i_label \;stH '4 y# ISO8859-1 Login (int):H  I `4lastlogin_i_texthfPWidgetCreatedP i_lastlogin_i_label H  I ,Hlastlogin_nd|hlastlogin_n_textlastlogin_n_labelH l Il 4lastlogin_n_label \<stH 'P y# ISO8859-1 Login (non):H  I `4lastlogin_n_texthfPWidgetCreatedZ n_lastlogin_n_label H  I ,Hlogfails_n_dxhlogfails_textlogfails_label_H h Ih 0logfails_label X=H $dy  ISO8859-1 Logfails:H I \0logfails_texthfLWidgetCreatedA ablogfails_label_laro|,H PIP (sep1ils>dgH  I (flagsls xhf aiHelpbel>fCw_fntod_Pi<r(o_cntmsrestricted_buttonpwd2_buttonpwd_buttonlockpwd_buttongenpwd_buttondiswelcom_buttondisacnt_buttondisreport_buttondisreconnect_buttondispwdhis_buttongfldispwddic_buttonsexnomail_buttondismail_buttondisimage_buttondisforce_buttondisctly_buttondefcli_buttonaccaptive_buttonfautologin_buttonbsaudit_buttonH dI \0audit_buttonhfL FlagsCreated  hf FlagsChangedf?H  py ISO8859-1AuditH DI `4autologin_buttonfhfPagFlagsCreated  fhfagFlagsChanged@H $xy  ISO8859-1 AutologinH PI \0captive_buttonnhfLFlagsCreatedted  hfFlagsChangedgedAH "y ISO8859-1CaptiveH \I \0defcli_buttonnhfLFlagsCreatedted  hfFlagsChangedgedBH !y ISO8859-1DefcliH dI \0disctly_buttonnhfLFlagsCreatedted  hfFlagsChangedgedCH "y ISO8859-1DisctlyH lI \0disforce_buttonhfLFlagsCreatedted  hfFlagsChangedgedDH #y ISO8859-1DisforceH t I \0disimage_buttonhfLFlagsCreatedted  hfFlagsChangedgedEH # y ISO8859-1DisimageH  I \0dismail_buttonhfLFlagsCreatedted  hfFlagsChangedgedFH " y ISO8859-1DismailH  I \0nomail_buttonhfLFlagsCreatedted  hfFlagsChangedgedGH % y! ISO8859-1 DisnewmailH  I `4dispwddic_buttonfhfPagFlagsCreated  fhfagFlagsChangedHH $ y  ISO8859-1 DispwddicH  I `4dispwdhis_buttonfhfPagFlagsCreated  fhfagFlagsChangedIH $ y  ISO8859-1 DispwdhisH I `4disreconnect_buttonhfP agFlagsCreated  fhf agFlagsChangedJro| 0H 'y# ISO8859-1 DisreconnectbutH I `4disreport_buttononhfP agFlagsCreated  fhf agFlagsChangedKH $<y  ISO8859-1 DisreportmeH I \0disacnt_buttonnhfLFlagsCreatedted  hfFlagsChangedgedLH "Ly ISO8859-1DisuserH  I `4diswelcom_buttonfhfPagFlagsCreated  fhfagFlagsChangedMonH %Ty! ISO8859-1 DiswelcomeH ,I \0genpwd_buttononhfLFlagsCreatedted  hfFlagsChangedgedNH !dy ISO8859-1GenpwdH 8I \0lockpwd_buttonnhfLFlagsCreatedted  hfFlagsChangedgedOH "ly ISO8859-1LockpwdH @I X,pwd_buttonthfH FlagsCreatedted  hf FlagsChangedgedP H "ty ISO8859-1Pwd ExpH DI X,pwd2_buttonhfH FlagsCreatedted  hf FlagsChangedgedQhH #xy ISO8859-1Pwd2 ExpH HI `4restricted_buttonhfPreFlagsCreated  hfhaFlagsChangedRunH %y! ISO8859-1 RestrictedH  Xfields flagsH PIP (sep2ict>"re H I ,expiration Taghfp xHelpSfexpiration_textexpiration_labelH H  I 4expiration_label pTH & y" ISO8859-1 Expiration:H  I \0expiration_texthfLWidgetCreatedP   pihfelWidgetChangedexpiration_labelH H  fields text expirationH  I ,pwdlifetime TCrhfp xHelpUpwdlifetime_textpwdlifetime_labelCh H  I 4pwdlifetime_label pV H ' y# ISO8859-1 PWDlifetime:LH p I `4pwdlifetime_texthfPWidgetCreatedZ    ethfbeWidgetChangedpwdlifetime_labelH  fields text lifetimeH I ,pwdlengthe_ Tdghfp xHelpWpwdlength_textpwdlength_labelro| PH |I| 0pwdlength_label lXH "y ISO8859-1PWDmin:H I \0pwdlength_texthfLWidgetCreatedK   hfdlWidgetChangedbepwdlength_labelpwdlifH fields text pwdminH I (Pmaxjobs,dgCrpmaxjobs_textmaxjobs_labelH |I| 0maxjobs_label lYxtxpH #y ISO8859-1Maxjobs:H  I \0maxjobs_texthfL1WidgetCreatedZ   hf1dlWidgetChangedbemaxjobs_labellpwH XI (Pfillms_,dgCr|pfillm_textfillm_label H xTIx ,fillm_label hZte_vH !y ISO8859-1Fillm:H |I X,fillm_texthfH:WidgetCreatedZ   hf:WidgetChangedgefillm_labellabelH I (Pbytlmte,Crte|pbytlm_textbytlm_labelH xIx ,bytlm_label h[teH !Dy ISO8859-1Bytlm:H I X,bytlm_texthfHAWidgetCreatedZ   hfAWidgetChangedgebytlm_labellabelH I ,TmaxacctjobsJtetmaxacctjobs_textmaxacctjobs_labeltH I 4maxacctjobs_label p\s_H ' y# ISO8859-1 Maxacctjobs:H @ I `4maxacctjobs_texthfP2WidgetCreatedZ   hf2ChWidgetChangedmaxacctjobs_labeletimasH | I ,Tshrfillmbs_JdgCrtshrfillm_textshrfillm_labelflH | I| 0shrfillm_label l]lmH $( y  ISO8859-1 Shrfillm:bH  I \0shrfillm_texthfL;WidgetCreatedZ   hf;WidgetChangedgeshrfillm_label_laH  I (PpbytlmmJdgCr|ppbytlm_textpbytlm_labelH | I| 0pbytlm_label l^tH "y ISO8859-1Pbytlm:ro|  4H I X,pbytlm_texthfHBWidgetCreatedZ   hfBWidgetChangedgepbytlm_labellabelH I ,Tmaxdetachthtetmaxdetach_textmaxdetach_labelH |I| 0maxdetach_label l_acH %y! ISO8859-1 Maxdetach:H 0I \0maxdetach_texthfL3WidgetCreatedZ   hf3dgWidgetChangedmaxdetach_labellabelunH hI (PbiolmachdgCr|pbiolm_textbiolm_labelH xhIx ,biolm_label h`tehH !y ISO8859-1BIOlm:H I X,biolm_texthfH5WidgetCreatedZ   hf5WidgetChangedgebiolm_labelh_labeH I (PjtquotahCrtepjtquota_textjtquota_label,H |I| 0jtquota_label laxtH #`y ISO8859-1JTquota:H I \0jtquota_texthfLCWidgetCreatedZ   hfCdgWidgetChangedjtquota_labelllaH H (I (Pprclma_dgCr|pprclm_textprclm_labelH x$Ix ,prclm_label hbteH !y ISO8859-1Prclm: H L I X,prclm_texthfH4WidgetCreatedZ   hf4WidgetChangedgeprclm_labellabelceH  I (PdiolmteCrte|pdiolm_textdiolm_labelH xx Ix ,diolm_label hctetaH ! y ISO8859-1DIOlm:H  I X,diolm_texthfH6WidgetCreatedZ   hf6WidgetChangedgediolm_labellabelH H  I (PwsdefteCrte|pwsdef_textwsdef_labelH x Ix ,wsdef_label hdtelaH !h y ISO8859-1WSdef: H  I X,wsdef_texthfH=WidgetCreatedZ   hf=WidgetChangedgewsdef_labellabelH (I (Pprio_teCrte|pprio_textprio_labelro|  H xIx ,prio_label heex H  y ISO8859-1Prio:H I X,prio_texthfH/WidgetCreatedZ   hf/WidgetChangedgeprio_labellaH I (PastlmexCrte|pastlm_textastlm_label H xIx ,astlm_label hfteH !Py ISO8859-1ASTlm:H I X,astlm_texthfH8WidgetCreatedZ   hf8WidgetChangedge ,?r>W [DWP]ACCESS.UIL*OS ?a Nb\OH4c:2Og, e J܍zlZR bV¦ecn%K P⇆ĖLj}OzΖ|y8 8RmBΥ O"v.ӯ/֙vÓ zغc/90)3Nx_wjΦmL-B(n'U^% [vG?oze] SH@?pW* N3,<IՌa͢ȃvcn?/п4ͼN'KolD1dʃNjFf3'_o;W3ƿگʆz/^3oEHԯWbiڔZ:s4m_1|C[8M-Z،yG_q\5L & uƕp;•۸ C n}! CGO }b}jʅ Qvm@HC?Z0Cޫ{=YbPݗÞ-e\0c7,.ߛkђMc.ܺH0&dz"E-zO S]<2AI#v $qf~b)=:-}c{+ܲ)SOTEs4T?"B?EbsRmqXc@oZT{-4ܭ("I y8Zd*Jm%H.&S<W-3xGx2VWd1o5 zoHz/` ץ!hnNy ۹{QPGzRoX)vizmi .['c1e: I+W8_X]Ew)f&aShLBM 2(I?&?,4J;jC{ui&G >"uvVo\N&_ CA8/_A|#UQ[xl(JhpJi7yv*VE +HoZxPEfKS5)w+JCnxblyo=RKsXRGV(QaŪ$n]\Uv)8C&HsB}qP0m(¯&P/T]zM^6l@ i_.WzʽS<(&h@"~"2fDPXf,5ų@9xw6>Us+ KkRo#}_]Z(@ q` o%2 `GtNRi[| cuR]#Z>1NB-_NNmr V*=1yx+ ?jb04@gQ)~[x/zP&L41@] X}]"IA~϶mdN[W%o=Ga"KP])8AN BN5G,2z[dVgV2n2|^:=,>UM!,|Fu\X7``)xO,uO(^s7j' +pJj Ejxl OOM D+2^iz!(W=4?Vt9l v`xNCM\Q#@-M#8IHfv(7u4K|`~j9A1GL2cP{YG[IIu&F"{ Z;,a zT:aO!]{-bQ~;2MhM,kOKDH:x?rZF[Y'.ZnGϓ2vCshvBG1 9%XUNQll"Q*RvhvnKTvUe9xo4k?RQ WSBo$ "v$Vjn kz0W\\F3=ggie;z>*_eOW2QZ+iikL&OsaSiq1ufOY&-X?w'ȸ2iBtLwp-PgN,S#!<=4 I,(-Jl@ZRTRoMQ$fY X7U;O0gOޛa~]Kk )SKp$z#3"C}fxF:=[uGCu7@z #sVs1Ob;3E T1Cc;P 5\ _Yz&Oh0PmwL N %K .c|1P%<R0`'yJLn[8XGwG3K cXm}v=Kp8%'Muw{=fC L;YF_z!_EQA# Ki>nb,oxS=5}i3DR  cPJw4I+K5ɮ W[TxV"I6ֻ k 9eJ+(1g5UE&rpXFM.*@#' ]iN9qz.%Eeue\nz AlRQq= Q^OR8^S6leӥ+ e-@4d-y$V:ǁ\;Y V6_ w%0$csyoCUFVOw&;F,H7|/xK?NCܑ;II%rIВ;i@E[eDž:W^(-@ز̈́C [e<(f{6aRtg.R]L;Nb"df1M* j]/@ $^,u9P1\ JhFzJ|\DOf MU6GO`[YxT]y9?VWleVVK4TAOG B:ަ4s[Y<_SЀ])Q˯n6c CcքٯҾ1~ĂD쩈&؜ ۂW9'չ~eYR*'[d^$(rȡq>ryhcesRٽwҝ(:eP4 zuHcK71&<z(pLF_|dюqJ@}Y2ERL2s@6.Ğ^幽.uScLqZD:աe:1~)V m^ws;@=.ʨ|L-HTm ZU-XZ[Zy 4gR+{-I Pxp6c1Pq:ʷX-6z1Bl`wJi& ]W42 _Mwљ"&YljRƣxA#%fhs#!6!@nrt=A}ɸU{kX3>|4P] #! 1 V)\b*n_GO;?:}ݻtZ/_d` x}`ٮo nrnEdC_)j&ތL!#K̒ͼ1f7 PWL2mMw=ɅZNGw}PbV+{j&hpvbMؐ)њF[,f^?!. [{~آ% m0dCafw{AࠜPtaj3v-xB=jy IBp.\#w^d.=O' I,h &g/ik &WyZѰs yl HѾHSnqG#ay' (Kd>í@0-ZJZL/Tx1;]x^[)2x0LYM?@\4o) + ozj lhG/YCS[L ay@?1^U{h"Sm2T귭o# |? ND^^Yls Eu"Ct'sZ]Jg샌 (B^y;嵈ZuFK;RKgZtP3'uޞD /$ycn?*3x1ekG@eE_*H5D a9D-pez)V4J>!J]`UO4+}}8F|+;hBv͖Nbd=x+$hDn2$]Lyhb*}r|1%jS_A Ivd1Wߒn c}qU*6[Ԭ4;N dhcyaC{:V_USȊFVB-W_/q#"n7fun4Hn427^ OQSYb 6viтAʶְ(LYh []uqqUM]^*nmo3l!Kk'I^K'&₠Rnt(rkTLhx3,5?/;:XKwiZE"u0%I`F'- eH2{~YZu=c7]C 4cG@:XBVC]n T[.A:f!^fFB[xui~*= Gb ac U8O}v[nTkDP2L3[UkM>>u<\E[C_d$vsx DBO%WS= WTT i-Ly݋&\1_6c h4oRkzD}x:fr^yUj_/=4=H_q:(=K %hi`t&1b0oL-FN]R7i:5hPDB||x"0**3eܤ1רyAReLXo˯Ry\\Si^Z.dqnOdz64/1IMÈbk.+7~΂f_t3m9t@dl}3vs_aLangt? &9V_o.҉-L D!-!(qH(o^vRngA(|ckMF% zOO8De?%yfS+użwN-HxEP~w _BD['d.)y ݿnQz>}:}~ !A8{E#̽vv{xR %2~C+^m/m<UQ} 8s,mgz>g})ԗzjQq}0%];7僯h$"E aj<x.4; lp` }$_B[*mozu]SJšw^eGmCP~tT9ѩV3C Vm>eBNydo(/qu+WKcc__\k Lm^$LBd4fOhkha3gXTCK)Ȳ8ă9aʅ2K2]dU'3mʒ?M@Ugܙ!r[`8џbe!t{t9 F([NEyDd ¢~0jvg>.cbi d JiSDP_t$;g ۪>Ekx`ᄞf2Xx<&R355493i&WsDrw#5PZ8[hR\IԜȰF| n 2цo~L4dx\n;uD!CW&5?pmAx߭>?g/ƒQcUU'6IVV1@Fr3Bg1+t/> #__|WJdn_ʲ\SY'Mt?ieW;~lod42G~@_2qp8+U70/|0+N yn;OG27Sw @W=x'qN8u!K1Ѿt޶)ށ*fJrw/U;RUF 'yNhNH-H݆)&$#ֿBm'͋meeA;l,)"hOnQ$ec|r-Ui%ukRg](07Xl"*`06[=B*Ӄ<.WJ6]6%'k5H3rV;rd1pt.,g!ղ?aKttp} Cl* 0|Ɍm`r%ذOlF\Mf3c5|^#F sJ"5 "4RiXeobZt+夤8sJjd?4K- AzV] [Ž\)}+v~=ѾУ;?O4DƮѯ5nG3bLP˷ f#30g8U@P)xDƇHzɝW? "pM-zXv?$?7i{.əEL!2)뱑QREPY G`ɕjnsdc[qX]h BkQX6R1N`TH*Lvv{~!'8e](;Md( 2Jh7R-_yðp|EAa9/~Oΐ62GrA1ؖ % 8+93WZE߃Ț{*R`+IH\RL}|}EHcO7M_08aN KO"JCQwZjXb{MTOd6F2y!$ Wa p 7,3ɀ";tpyU@uc!tSE̔S}(\ '^ֲ2*-ZhibWNŐ>`"2JM뛺 - ڈ3)˺'ʿB]ke_IR¡q^ć#-vFOKM\ 8 U/CR &.ZB'ˠk".OߧOB^FO+= 9[[NdPtFm Q4-1=~2T-8|vkFqCGp0~ky-NR1 R4( 'gUeͷ.CgPr1K"a#@K PUuc8rѨϿg;˓6guu4C_;ciDŜD1ylO0w>ϊ`.ľ0ai;/#@''[jliC5jOSB A-R!RÁT4-BdݲO$ЕWfB"8֬ڐIhŮ74Q . Ug4d~nٖrR$0gV4a2#1inXӅM`+yW׫Y9/:|.O@e]OHe_[~7M AQ'?_q1, [\֍š_2GQF鵈}|B"Rz^l{;_ɚ`V=cK[ZOgd,p pqTp7g}OAVg7§s/ X%P\(6ox7pq|'A0OݡkMVGL:|5tx3 /bEv j6&?9:r,#$~^-MNjwd۸sreVsee۶FgEk rBWCioy阬G^(d {?A(l3< 4G$}1(+vI:⚄( ~TUpG?+Q7* -F_dK7G/R]|%b8d1M!{5CNreqNl)CLY*T͙c:ѵsZLqæ|5k.՜x:&9#=A%uqE2?>_mKID(s4l7rȥIeoiJf(`OX(5`z5uR|d9/=s3bI%jA&PA򕅒R99=fZ. z4 hEgJ6q7f*X޸%)>dk7ci:FR2R`N%6&Er`_T7mKW3T"`IK0Rc^F0(8dz(`րnq{͈8>~jfAfEnE(L tQwdayM{Ʉ=ޝvH+ᙃdo|_!Y +p6y"ҵ']T*_1Pk*.\ysvX9Miumev>{q+Qڕ{4p1JY{WxP!OM~Tu7R\iڐ9ED(_ygvz~<@L)f/#rƩky4u^@>鿁ĝo1R5\6G֗P>uõFnd,sbKɻcu:U7۱Qƞ:BR2O?BŲ&i}P()oufMLO<]`k%ϩS]O4a>HLde']%bF [[AZ~eV~L 1 f%_#eYK̎t8`,F[El2Eݘd-o{~@yX9-Fө6gfa͒l.錳4KnƁ캨ݲL!-6W\;.Il+KT R*Iճh9mМlp*ڶ'(^GU(Cng8;K]8>A.j\7f,a}/gC~uw86u'Xt ׻)oЏ6-pcC%;eSŪ6GɺlaPݝU |[22c[ozEݢ3:= 0E*&B H?@Zg7ZNk~[Pf0\/np<7%ҪG8SN+Nꂏ-}WRJ3kOT`]Sԅe]Q*n%<Ȥ2_Ԇ*ǫb2'mTh NNkSEh=F 7 `Em#'8M6"5~M"D'L^WB["AS{隞-hRG/6r=iA0?awo0nۙ~A;!w! v” [kab칉5|KHҬKE'ofşDPH cz1aq\? KC˝\ ltK- Tu;L֪Z퀸<-Qo!FUk]OSOj6{N H6톿p F LC+>r4 m0/&\KqЯ/>u_~hIomͭAѿ͋S!ɺįR#Q5z~N- H,0#Ig;ײRܬI؏ +_r<VI=|d`2Wl]άy2n+xf# Z) "/FCNBEF N!mBZ8$ѯAn"١@Ywbٻ͈~&ЍSP9ĒlbڭA#9U "EAp)Ag6y=o^𸗾c|gbduaR-dItaXwiZo (kםv֣brҁ6 F>'*NY4Q k،n[w6n4N@I,CACe}tM>:cmˣKso&8n6PkW*`S [D26aGW-GozILgh!AYH7vN<G[|kP>㘴Ȫ},8uAV;D^ Q*M|uS(H9J僙tu.<XhP,?591L &<蕤]aJφs[oXnr۫B;0ƝJ-|&x[_I6ǒA|4cL;/ګkE:rw9X)75xReՃ<?(TcxqgcCOZ?J'Q5P{Ax 㝢zWVA|;m#Eyf,y0 M s 9JNEDd<=+ϷuW47NN'mb 9#5iֺNf5<:)ЫG}n,ƻO!EqκlK:YB0zi LoũQ8u:𕯲'Tl`]'!GA,b֒^$\ ӎ9*D$. ՋzG+ t=uOlt.DǂPEgڗ0#mƪP4ܴHc+h^&>عc)ӄ_iN:J鿦N32YTf{(8x@*҄g'U0Z1kqʣ^iC/59<:mTC fY?JZ.`ȬY}xA9)}P*1*u'Hș#+ RZWvК$m&YR$q[ $ 噴Џt2im*ZJےjMix6ȯh!كbxekMCid[:T)yndI~GAr@ ̬OvڍUw亃k<#*>zqBU8v8sfd KE؅ܙ,) Tpܿ􋵑|B/`⥲ }9oh"4g _d?_8IrwQBxfʑEtx+Wڞ_Z7_cY -D&i\r9NAC~-4aѝc/ek p:) D|gTyb> rr)w.%;o'0$gU3k&v$vhOXp=3#o9jۨ踋+3OF@FB5G]<a.FDI6PzR9ĒHhQovE7#=7*-ђR.U ,+.4|wBd#i(6 <}sPzF5QcxN!`6-h63RZܜcb2e0`_sco*S'qrKp v7DE{zyT-r7 )s{^(G -p6]Am(L{.@$DQ Rt̚'k?RkǦ*h-ij121!kb,;ёBAWӽyPuyT/i qLNaf:.W9mx&G7Ћ\ʿH 9ӷtL?\lVv\s;fRQ]';`Džrg Dvѧ>2N*qfk)Έ?H`d~ Zad@מ*.izZa(Z#!YxpyV'[t6'~^{i=U/ @1A ƄFQ=x%Ӑ#_6C"^Hf=hبÈ":Uģ9X6ߏJkku<.E(6E-cxز2INZ|^S N B ltX3 4v+8t J^Rgȡ"go$;f =phk;Z.471 gEvs-cPa.t_X"OK)-D-\\{0*˟,a2QW;JUTw+lJO_३[u[bl"E\?4 Sj[6 Xxtw*[+A#+UfI~ӌmKI)mR RnwM9m+ @;!%2sJ8&(i lYliT*\,k,*[jq#R %: w9yUrEũh!=!QrWG X~t'}$+$4ggkz{5׋_kL5QDeF6gܕfzܷhC@i ^jpHz9:T^g=:!_` %IzA7ev./!lHϻVr?@u)r=HPr)}o5;kRMg 91pF5˛b Nm#Bg: |(;#~ V$[>:! ARVW ^ZaKx# |Ga[*g+ ۰zv>,2iGŲTo#pW&[נҥ&/%D\ĖV r_!v:YzW_x*H) =K3TRX6$hŻK$JV>sg4SUq'*J>⸷Y#$)f*Or7JhVػi(y$7%iLh-Y ?x8Ij*CZ޻T}wt*Ys [])VUa)1#a+)?meW¿2K\+C+ܷS=0G,yssBS0"T|+ݶY aaQWPXRk6… ;68׽Gv o,SjTj(VȂød<؊9fa5>'e 4 ˔37X NڎjW)\ 6 (ʺ *<:mK)g9q Ggb}yP1NB\70ZrKa+Uukh;+F DsOfUULmy?BMB'Ő"tT\kzϟ95/KX^jէDMhyCgj3:ԃ/NMy9b@O{yQp:¨"Wk0w6IF7l[@Ah mhzExvyC;(bx.[*^/a{z}e |> tlKe?6tM58Z/( nPL|iH ǖY=m\_EQԪ:@nb{bzxMJdB )3F)Vn$ת ΗgUaٶ_XVeaF9|z&ԤNJ {8l@?7y #V:~#MSCBpNى_݋5=9"~r V `ÿI_Pbw4ԿQ @B kRU"*_:2E,UlnI&Q;Įdc]&h4:"+Fyִ j@MvKiV8޻ۻjK_Hn[QGVST`"aHY"2a2`sAqH` NZRћC?w./Y-v)_~WjЖy7蚧=US|t5tV_] j&IcxB⺉Xm7iٰs-дTiS`ecH \, |JXo:{`:rgAkp+G/BU=9%!bfv}g; ݓ;*> Y>l> 8{h51 p4̨xJbɇ>'7tb(ٞ;Z:LҰ1g"Ic;c|)]yйfMblE ˧vPk3?&an-cab}м7JDZ r$))O2=5ՄN}=qn$ţfD_Uk qka'Aj c\b="CpmR[ Brzv/"%gzLxVb:mM%Mik]J}mg -!;V`z?2>Ja Dt4rM8d338q-4C<Wɤ""jj`,J*d_rv[MBj$)<ykY^<l]O:*W[8;?+ۑ6Yeeߣ\ո}h&ZcO^g+GE~Uq@(BP-|_9h%x|H;4>N?&fm-1ϙ!j~Y"s9b/94]h/ üؾfQ|𐵀zR( ?)R*6r-$EECm.+@oClo~h6R5UyYݦ*WB4y]YCB[HAoW(ѭ VV/Y+4Μb)&&dŪCt.a튿lns;]}Bi<aI(ᛄ_t"~"(R50қLa/p++l8߾ => tOB 8)g UZAkĝgBnIon!}`tRgJѕ]`J1J%B|J+flK:r5įgDjqq>w| c|yq~Am ݗ? IРV)_dޫ5Z^8 h32߅uTmο\FV O3+ѣV>\o (:NA>Rdug6!ΒwXXϛffexj>[.TQ6nm\@&UOHO&2\_!PoقY25= wSryV^?IE9ǹ3+ ~+2ADE@pހeٟO A`h5yH<'M,%T%/)Fr4ޮh9\Qʑ=:U.IǤ!pW!z6-cQ.Y5k}˧a+6$6O#/0ϵ_)z4sI|{.֊DduCR{6_"O+5mN+gon8 c+=PQQ..(SkkͿZPx p]rKo 0&aYR0W\x#(n ir-=wLo`2xV -X(Y`y \P)w]hpb蘭j)# 8 W[j@BjsaTCm}h<1<FTyvrq`PSz 3,Atn.>/ 俫À\ÁtH)Jepa%H?upx+߾)1+HOܾPx2Tcݍߩ1 x|Xoc94fTXŎE2H֎tEO>'ݦg(* "+s~8[%#hʳuyf`ӉHRUB~%ß&}!\C}٩Po7 QmlxOTs U^+5|UShb֍m)XDoʄy4KGEy>+_Mqw۬fzqGlAUO#On&%%K55AVC=AvGSa \U~dm^??9ƶІf-;s[|"1͏4xfHV|EmV'\}t47 ~AO 1. eΆ|ۑMNmﭭe6R6%]@0.5HLRiK"Ay1}O)09R.jƇܛƴ9rpyYH*^}h|q 2Un! f>>>XiW|ƭ†d_R]UIӭT4EA7O8*k$9UaJ[ S3_"3!MťF4~ K Љ>wMAX +됲@ 4t+ZJpJkنa&I#;V7k:rG60m5ń9aLz׸d@L2f4'~\X8uFwx')dUtKjVZ2%>Y:~mPL:c;lPe%Vb?DׁlF$6in,gF^H`+? ?i/HÀ~R7%΂eGU{z}na{q,[<ĒptٜSt\[.d7D[{,ȿʷn8{B~npzI~A$± N r`xb>RKog!B4OT2wIAw-H 'fzZSBT@n Kk)MMxKFhe0Ԯd`?kӤOա]`\(^ʬqm36=WA^\8a#ݹ#{9n ]j,LM~03U8;+&EH6uoXݑa0#džnFDpqe :ƀ@s/EeEc 9~zwHK "CN/ldZMbilgk;4n3 CW4>ia}i }Z.JkZafOSC<_Z{]7sܻ?KWF(u@QuTLlϱj Ҽ1]TPV殈ӬʮP}5V82ݑ^!t_  EF7a}rǑk%>ɍ $&철 ѥך!5vMI#"(aj;|?|rU[JQLt̲,MhEaIoHEWFL2E_1it@\^/$rPؾ\gHB!^"TwI_`d8h#|=uD/.s4?ڷ|D4݉s) '{Bd# b };̩WGٖ8%t 2cWS8)i-Kyy45^Owe}/4P)BTRSN4Fr}ڻ&?i#B5LIElIX.)> )5v,{EU--̟ <hVjR*bq*o94->κ54,B*1b'j:v@RSp+E4:`MWC9@o:mAg%gjtd ϩ%zi80^M#Z=S e>siP& q_=8݂&Pjc[H;ߐj\r@[t>,hqE$Ni4Ok 91>M(ؘA >ZM*0L1e&<4-Ԙ1Aw=8G 8~>`)?zD9W.;AS.ۙ38 Adg (oUJ%_I.8-Xq M| NkG;]J!Pb*,G9%pǃw]U$I6vb}dBWTcow4®Fbu )O F!Ƿϣg9Dz~Q˫IiDAX(< <[f|gY8;eB2׵C' ҄;esX|/BZN^fχӿ ϐ^&:8X鬒#=<Pv-8;.Ľ~~>)~g0r*l lp=R]Q:M8o̐T3){UwQz>ޝ_ 6_e"JX%xw횁uQa\Ii+>Iѳt*a5EAQyRq!H2V ugO@5 ^fJsL55/w[~ },CϽ' J*(yNl79Q)}&qu[ [xiq٣ç8bZՄQP7䄋KM*-#zZOLMoR>bwxc-<[}2ܘ4˘5w^:B6, ??c|Ъa nOޝhF* :_Uk/KD):hvswX8so1)Î=9?8rNi/_B >")ihWfj@lT'e`% EC"HڰDQLZI1peZG|tj`.UdKD3pGDC%"Kp`ʚvBRj]//.IkNEJ|hPgɥP0Xth93{ ,$@ VW)ji<ڵ 0LVj-ߢV ۵߬eq3.YܮD aڙt|߾J2HR-)E܌Yu#{%X T-M[X$1vPo| &ݾHFimycc 喊J/hph{acHTVI(~5qa USb׭mE$<+_jև Ѹ["qgk 漄pל p\GWF7GNJa * #bZ,)u>a07HA='췜xxSvH WY_(9>d\Q WABԟ0L*<K`lQP1}Roֱ34Z$b~/t~Z]ZqmRu} \Thvw/LMJugW!_- yFљw֥U!'>x\os oe٪ UKOJK{9JJŻclkkVIwaoz#cç|Xi)pp3Jdb+EM"YWڡ5W37ji>} co>WνAib{T(] hT ';WTCD#Y^aLBmWēb)=a :5p!݃FL3>bLoI,eij;Q {WeV^f$y3+ɍ xJV|<;4}.pciRHYG;?a9nʩq;Od\Ey!2D O&{X%@%"u}zJK y^VIqf$RmRV}x O޶(MsO+ %_Cq.wI9̈>2>~mUB9GNOwj tJ{n\4X|jD+Aw=*\W ~.[Q/혳 p)Xw ωiTTLb'l}kGzIv&)S;cQPps9 hy9aX NqV uZ!t 3XߢWůsHT^}wغ΢+$Ks:A.X}ד|)b*݋$o9%{lz;BGPZXS)Rr_Z8ǸĘq@*gYF/շTXɥMuSM}p { OQEF<%@r9t.\s\b|OlhJܓdwFhw%{;9SP+ҿ[Y1Ȏw`Tl؅UXg15?bX= YS:dw_yQ[H 3. tsb٣%Nj L5w13Z^̴眆M d_.b -_3o Ie4=wL2cXp0,щAV_ \JznCpDY4/62U;5>%,Kz~fL^.RA(N .NJ8A.k?>lt~(<OȰ+|6^|u§:)P;`\fM&\j[^'|B!^P$lS5~{:. wI^5gE̓n)Ww-~=&D|v8u{PKSva==]3QiF|;~`<ͧNUU]|'S t^Շq!7NuUg@?){AC ]"+%%!9uCA{ 4 @+"8rlj6gYϛDgoRq+' 0K06qOQPFK8h6sveutt5q$mfXQXwIKisp tE>WG\{i$U0>r)D~"4Ql"`k[W%i,P_ ;?Z a Vݵ#8Æ `F_đH3?阻R̮=wC$uJ- BMD}T= ו@("@ڲsZQ6'GVjkx7PzX zd.(K% !uON4MNģ8Wl=3}jMCʹCpڤI;iD1:A Qs/('5 iR(lOX|7G3?> i1=w ^#O5v'_%MgDxgrk2-=1S,\,6I)sAT9DNnykYg*dop%C!4ĊtT҉[-(u)w0K;%!6~wS8My|[)3 =*Ax!o=2I,(e/IZ[Wwga2|g@e;tR:S. [xܫcaƥfŜ;Lс62#>g?0R/%<`p,C/0꭭:ŋ0c:WrG4r z(j'{'%(]Gɯ5ksE{Xluwql0 I'z\ceLBH(Ec"{Lf:~܅v! W6:BX p<'fH}!ch}}#,d4~8 |1EL\ LP7O y)OZBU &Rlh]H 5mdrpu;++fIR8.^uOq #,%c6$B-+mFq)0V ǤJÂݶ#}iBrucpK# + BQ@TsjP]Hjs;%.b)q.(<6aa"֍!N8ç6Ai}њ?]lJ&mGĞ%DL+3F pk4S(n)F{F'xJ0ԖU?*{&Y/} Zžd.tmSGe1^wYPrЅmxl졗MLJ~W>{{:A 'B/2b:,p_v]Y:lլI~sg"Q|7BO  xgˌ$]Wdj~ϥ)_z2DXv46.rY>jF_ݘze(sO벐Mg,}P$jT5v1pva%)\*z}}4{nM9?M9tY ዟe[jG83ȓ,kww?n]eVXߊ+tIfM?Ǡ *ҟ xd0H8ߌmz2oB.Wݱ _@jF?Dkd]DDpƹ]խ9KB_-!]+Q`{QWk^4y D<;>"SQU!h@_ {EK\'"G,AgObs|<djr'4:v}{;MrV?9 ; h r1>w$<|RPl"sʯKRjIah,J8B4A2Ѡ-c+ cZ`mB؆ _k}LXK6./oHNjrw(4m+rR:l|B.zLvǠj7l|?n% 7{P;eV=OQ~W~v‘[4'hnOgiG{&@$nBs6܏>qc@3"bG'fjJ\:HVBL{t1ڌ ucRV](_FHM/2x\vgjd36 ;MK7dA93a"=EXWeC],8m&ׇ^B cȢ#ot@&V ۇ+]"yS)S`(3[=fX#Κ6aj?>6I1"A}Yܕו,I=nЧМl_}@'kۆiuU{|Q-[MvX*1WidgetCreatedZ   hf>dgWidgetChangedwsextent_labellaZH  I $Lcpudgtxlcpu_textcpu_labelH x Ix ,cpu_label hkH 0y ISO8859-1CPU:$H I X,cpu_texthfH@WidgetCreatedZ    hf@WidgetChangedgecpu_labelnt_lro| < H I (PenqlmxtCrte|penqlm_textenqlm_labelsH xIx ,enqlm_label hlteH !y ISO8859-1Enqlm:H (I X,enqlm_texthfH9WidgetCreatedZ   hf9WidgetChangedgeenqlm_label_labelonH \I (PpgflquoCrteppgflquo_textpgflquo_labelonH |TI| 0pgflquo_label lmxtH #y ISO8859-1Pgflquo:H I \0pgflquo_texthfL?WidgetCreatedZ   hf?dgWidgetChangedpgflquo_labellaH  I X,functionsxthfHButtonCreatedted2Cquit_buttonremove_buttonlawrite_buttonfind_buttonread_buttonsCH  I X,find_buttonhfHButtonCreatedte   hf Helpnhf FindbutotoFlH $y  ISO8859-1 Find NexthH menus file find_nextgH  (overviewH PZ~%-9CKUcmsuwacceleratoracceleratorTextborderWidthcolumnslabelStringleftAttachmentleftOffsetleftWidgetmarginHeightmaxLengthmenuHelpWidgetmnemonicnumColumnsorientationpackingresizeWidthsensitivespacingsubMenuIdtopAttachmenttopOffsetwidthxycreateCallbackactivateCallbackhelpCallbackvalueChangedCallbackH lZNdz 1IVkXmCreateBulletinBoardXmCreateCascadeButtonXmCreateFormXmCreateLabelXmCreateLabelGadgetXmCreateMainWindowXmCreateMenuBarXmCreatePulldownMenuXmCreatePushButtonXmCreatePushButtonGadgetXmCreateRowColumnXmCreateSeparatorXmCreateSeparatorGadgetXmCreateTextXmCreateToggleButtonXmCreateToggleButtonGadget\0dismail_buttonhfLFlagsCreatedted  hfFlagsChangedgedFH " y ISO8859-1DismailH  I \0nomail_buttonhfLFlagsCreatedted  hfFlagsChangedgedGH % y! ISO8859-1 DisnewmailH  I `4dispwddic_buttonfhfPagFlagsCreated  fhfagFlagsChangedHH $ y  ISO8859-1 DispwddicH  I `4dispwdhis_buttonfhfPagFlagsCreated  fhfagFlagsChangedIH $ y  ISO8859-1 DispwdhisH I `4disreconnect_buttonhfP agFlagsCreated  fhf agFlagsChangedJ*[DWP]DWPROFILE.UIL;44+,C./ 4T- 0123KPWO56s;7v_;89p|uGHJ N  module DWProfile names = case_sensitive objects = { XmSeparator = gadget; XmLabel = gadget; XmPushButton = gadget; XmToggleButton = gadget; } procedure WidgetCreated(integer); WidgetChanged(integer); Help(string); value k_label_deltax: 5; ! offset from left side of form to XmLabel k_text_deltax: 90; ! part 3 offset from left side of form to text widget k_text_deltax1: 80; ! col 1 offset from left side of form to text widget k_text_deltax2: 90; ! col 2 offset from left side of form to text widget k_text_deltax3: 75; ! col 3 offset from left side of form to text widget k_label_form_offset: 5; ! offset from top of form to XmLabel (to align with widget) k_flag_margin: 0; k_tab1: 0; k_tab2: 220; k_tab3: 420; k_col1: 0; k_col2: 200; k_col3: 400; k_line_height: 30; k_dialog_y: 30; k_line_1_y: 10; k_line_2_y: k_line_1_y + k_line_height; k_line_3_y: k_line_2_y + k_line_height; k_line_4_y: k_line_3_y + k_line_height; k_line_5_y: k_line_4_y + k_line_height; k_line_login_y: k_line_5_y + k_line_height + 5; k_flags_y: k_line_login_y + k_line_height; k_line_6_y: k_flags_y + 105; k_line_7_y: k_line_6_y + k_line_height; k_line_8_y: k_line_7_y + k_line_height; k_line_9_y: k_line_8_y + k_line_height; k_line_10_y: k_line_9_y + k_line_height; k_line_11_y: k_line_10_y + k_line_height; k_line_12_y: k_line_11_y + k_line_height; k_functions_y: k_line_12_y + k_line_height + 20; k_main_height: k_functions_y + 80; k_main_width: 620; object dwprofile_main: XmMainWindow { arguments { }; controls { XmMenuBar menu; XmBulletinBoard main_box; }; callbacks { XmNhelpCallback = procedure Help("overview"); }; }; main_box: XmBulletinBoard { arguments { XmNy = k_dialog_y; }; controls { XmForm user; XmForm owner; XmForm account; XmForm uic; XmLabel uic_trans; XmForm device; XmForm table; XmForm cli; XmForm directory; XmForm lgicmd; XmForm password; XmForm lastlogin_i; XmForm lastlogin_n; XmForm logfails; XmSeparator sep1; XmRowColumn flags; XmSeparator sep2; XmForm expiration; XmForm pwdlifetime; XmForm pwdlength; XmForm maxjobs; XmForm fillm; XmForm bytlm; XmForm maxacctjobs; XmForm shrfillm; XmForm pbytlm; XmForm maxdetach; XmForm biolm; XmForm jtquota; XmForm prclm; XmForm diolm; XmForm wsdef; XmForm prio; XmForm astlm; XmForm wsquota; XmForm queprio; XmForm tqelm; XmForm wsextent; XmForm cpu; XmForm enqlm; XmForm pgflquo; XmRowColumn functions; }; }; include file '[]text.uil'; include file '[]flags.uil'; include file '[]quotas.uil'; include file '[]buttons.uil'; end module; *[DWP]FLAGS.UIL;51+,'./ 4Ki- 0123KPWO56`SHs;7`Hs;89p|uGHJ N &value k_disctly_button: 0; k_defcli_button: 1; k_lockpwd_button: 2; k_restricted_button: 3; k_disacnt_button: 4; k_diswelcom_button: 5; k_dismail_button: 6; k_nomail_button: 7; k_genpwd_button: 8; k_pwd_button: 9; k_pwd2_button: 10; k_audit_button: 11; k_disreport_button: 12; k_disreconnect_button: 13; k_autologin_button: 14; k_disforce_button: 15; k_captive_button: 16; k_disimage_button: 17; k_dispwddic_button: 18; k_dispwdhis_button: 19; k_disctly_label_text: "Disctly"; k_defcli_label_text: "Defcli"; k_lockpwd_label_text: "Lockpwd"; k_restricted_label_text: "Restricted"; ! old captive becomes restricted k_disacnt_label_text: "Disuser"; ! disable accnt = disable user ? k_diswelcom_label_text: "Diswelcome"; ! looks better with the 'e' k_dismail_label_text: "Dismail"; k_nomail_label_text: "Disnewmail"; ! ?? k_genpwd_label_text: "Genpwd"; k_pwd_label_text: "Pwd Exp"; k_pwd2_label_text: "Pwd2 Exp"; k_audit_label_text: "Audit"; k_disreport_label_text: "Disreport"; k_disreconnect_label_text: "Disreconnect"; k_autologin_label_text: "Autologin"; k_disforce_label_text: "Disforce"; k_disimage_label_text: "Disimage"; k_captive_label_text: "Captive"; k_dispwddic_label_text: "Dispwddic"; k_dispwdhis_label_text: "Dispwdhis"; k_widget_disctly: k_disctly_button; k_widget_defcli: k_defcli_button; k_widget_lockpwd: k_lockpwd_button; k_widget_restricted: k_restricted_button; k_widget_disacnt: k_disacnt_button; k_widget_diswelcom: k_diswelcom_button; k_widget_dismail: k_dismail_button; k_widget_nomail: k_nomail_button; k_widget_genpwd: k_genpwd_button; k_widget_pwd: k_pwd_button; k_widget_pwd2: k_pwd2_button; k_widget_audit: k_audit_button; k_widget_disreport: k_disreport_button; k_widget_disreconnect: k_disreconnect_button; k_widget_autologin: k_autologin_button; k_widget_disforce: k_disforce_button; k_widget_captive: k_captive_button; k_widget_disimage: k_disimage_button; k_widget_dispwddic: k_dispwddic_button; k_widget_dispwdhis: k_dispwdhis_button; procedure FlagsCreated(integer); FlagsChanged(integer); object sep1: XmSeparator { arguments { XmNx = k_main_width / 10; XmNwidth = k_main_width * 8 / 10; XmNy = k_flags_y - 2; }; }; object sep2: XmSeparator { arguments { XmNx = k_main_width / 10; XmNwidth = k_main_width * 8 / 10; XmNy = k_line_6_y - 10; }; }; object flags: XmRowColumn { arguments { XmNy = k_flags_y; XmNx = 30; XmNnumColumns = 4; XmNorientation = XmHORIZONTAL; XmNpacking = XmPACK_COLUMN; XmNspacing = 0; }; controls { XmToggleButton audit_button; XmToggleButton autologin_button; XmToggleButton captive_button; XmToggleButton defcli_button; XmToggleButton disctly_button; XmToggleButton disforce_button; XmToggleButton disimage_button; XmToggleButton dismail_button; XmToggleButton nomail_button; XmToggleButton dispwddic_button; XmToggleButton dispwdhis_button; XmToggleButton disreconnect_button; XmToggleButton disreport_button; XmToggleButton disacnt_button; XmToggleButton diswelcom_button; XmToggleButton genpwd_button; XmToggleButton lockpwd_button; XmToggleButton pwd_button; XmToggleButton pwd2_button; XmToggleButton restricted_button; }; callbacks { XmNhelpCallback = procedure Help("fields flags"); }; }; disctly_button: XmToggleButton { arguments { XmNlabelString = k_disctly_label_text; XmNmarginHeight = k_flag_margin; }; callbacks { XmNvalueChangedCallback = procedure FlagsChanged(k_disctly_button); MrmNcreateCallback = procedure FlagsCreated(k_widget_disctly); }; }; defcli_button: XmToggleButton { arguments { XmNlabelString = k_defcli_label_text; XmNmarginHeight = k_flag_margin; }; callbacks { XmNvalueChangedCallback = procedure FlagsChanged(k_defcli_button); MrmNcreateCallback = procedure FlagsCreated(k_widget_defcli); }; }; lockpwd_button: XmToggleButton { arguments { XmNlabelString = k_lockpwd_label_text; XmNmarginHeight = k_flag_margin; }; callbacks { XmNvalueChangedCallback = procedure FlagsChanged(k_lockpwd_button); MrmNcreateCallback = procedure FlagsCreated(k_widget_lockpwd); }; }; restricted_button: XmToggleButton { arguments { XmNlabelString = k_restricted_label_text; XmNmarginHeight = k_flag_margin; }; callbacks { XmNvalueChangedCallback = procedure FlagsChanged(k_restricted_button); MrmNcreateCallback = procedure FlagsCreated(k_widget_restricted); }; }; disacnt_button: XmToggleButton { arguments { XmNlabelString = k_disacnt_label_text; XmNmarginHeight = k_flag_margin; }; callbacks { XmNvalueChangedCallback = procedure FlagsChanged(k_disacnt_button); MrmNcreateCallback = procedure FlagsCreated(k_widget_disacnt); }; }; diswelcom_button: XmToggleButton { arguments { XmNlabelString = k_diswelcom_label_text; XmNmarginHeight = k_flag_margin; }; callbacks { XmNvalueChangedCallback = procedure FlagsChanged(k_diswelcom_button); MrmNcreateCallback = procedure FlagsCreated(k_widget_diswelcom); }; }; dismail_button: XmToggleButton { arguments { XmNlabelString = k_dismail_label_text; XmNmarginHeight = k_flag_margin; }; callbacks { XmNvalueChangedCallback = procedure FlagsChanged(k_dismail_button); MrmNcreateCallback = procedure FlagsCreated(k_widget_dismail); }; }; nomail_button: XmToggleButton { arguments { XmNlabelString = k_nomail_label_text; XmNmarginHeight = k_flag_margin; }; callbacks { XmNvalueChangedCallback = procedure FlagsChanged(k_nomail_button); MrmNcreateCallback = procedure FlagsCreated(k_widget_nomail); }; }; genpwd_button: XmToggleButton { arguments { XmNlabelString = k_genpwd_label_text; XmNmarginHeight = k_flag_margin; }; callbacks { XmNvalueChangedCallback = procedure FlagsChanged(k_genpwd_button); MrmNcreateCallback = procedure FlagsCreated(k_widget_genpwd); }; }; pwd_button: XmToggleButton { arguments { XmNlabelString = k_pwd_label_text; XmNmarginHeight = k_flag_margin; }; callbacks { XmNvalueChangedCallback = procedure FlagsChanged(k_pwd_button); MrmNcreateCallback = procedure FlagsCreated(k_widget_pwd); }; }; pwd2_button: XmToggleButton { arguments { XmNlabelString = k_pwd2_label_text; XmNmarginHeight = k_flag_margin; }; callbacks { XmNvalueChangedCallback = procedure FlagsChanged(k_pwd2_button); MrmNcreateCallback = procedure FlagsCreated(k_widget_pwd2); }; }; audit_button: XmToggleButton { arguments { XmNlabelString = k_audit_label_text; XmNmarginHeight = k_flag_margin; }; callbacks { XmNvalueChangedCallback = procedure FlagsChanged(k_audit_button); MrmNcreateCallback = procedure FlagsCreated(k_widget_audit); }; }; disreport_button: XmToggleButton { arguments { XmNlabelString = k_disreport_label_text; XmNmarginHeight = k_flag_margin; }; callbacks { XmNvalueChangedCallback = procedure FlagsChanged(k_disreport_button); MrmNcreateCallback = procedure FlagsCreated(k_widget_disreport); }; }; disreconnect_button: XmToggleButton { arguments { XmNlabelString = k_disreconnect_label_text; XmNmarginHeight = k_flag_margin; }; callbacks { XmNvalueChangedCallback = procedure FlagsChanged(k_disreconnect_button); MrmNcreateCallback = procedure FlagsCreated(k_widget_disreconnect); }; }; autologin_button: XmToggleButton { arguments { XmNlabelString = k_autologin_label_text; XmNmarginHeight = k_flag_margin; }; callbacks { XmNvalueChangedCallback = procedure FlagsChanged(k_autologin_button); MrmNcreateCallback = procedure FlagsCreated(k_widget_autologin); }; }; disforce_button: XmToggleButton { arguments { XmNlabelString = k_disforce_label_text; XmNmarginHeight = k_flag_margin; }; callbacks { XmNvalueChangedCallback = procedure FlagsChanged(k_disforce_button); MrmNcreateCallback = procedure FlagsCreated(k_widget_disforce); }; }; disimage_button: XmToggleButton { arguments { XmNlabelString = k_disimage_label_text; XmNmarginHeight = k_flag_margin; }; callbacks { XmNvalueChangedCallback = procedure FlagsChanged(k_disimage_button); MrmNcreateCallback = procedure FlagsCreated(k_widget_disimage); }; }; captive_button: XmToggleButton { arguments { XmNlabelString = k_captive_label_text; XmNmarginHeight = k_flag_margin; }; callbacks { XmNvalueChangedCallback = procedure FlagsChanged(k_captive_button); MrmNcreateCallback = procedure FlagsCreated(k_widget_captive); }; }; dispwddic_button: XmToggleButton { arguments { XmNlabelString = k_dispwddic_label_text; XmNmarginHeight = k_flag_margin; }; callbacks { XmNvalueChangedCallback = procedure FlagsChanged(k_dispwddic_button); MrmNcreateCallback = procedure FlagsCreated(k_widget_dispwddic); }; }; dispwdhis_button: XmToggleButton { arguments { XmNlabelString = k_dispwdhis_label_text; XmNmarginHeight = k_flag_margin; }; callbacks { XmNvalueChangedCallback = procedure FlagsChanged(k_dispwdhis_button); MrmNcreateCallback = procedure FlagsCreated(k_widget_dispwdhis); }; }; *[DWP]IDENTS.UID;2+,|$.!/ 4!- 0123KPWO"56{aF7D{aF89p|uGHJ N  ro|URM 1.1Motif Uil CompilerV1.1-00030-NOV-1992 17:58:19.92Idents t$d~H 0Xidents_boxH I ,idents_box  Thfp xHelpidents_formH dDId ,idents_formXLheld_formfall_formxH dId ,all_formrmXLall_identsall_labelxH PIP ,all_labelm @l_H 8y4 ISO8859-1Click here to add identifiersH dI X,all_identsehfH WidgetCreated     hf ListSelectall_labelH I ,lheld_forme T teall_form  held_identsheld_labelH PIP ,held_labele @ H ;ly7 ISO8859-1 Click here to remove identifiersH I X,held_identshfHWidgetCreated     hfListSelectheld_labelH < y8 ISO8859-1!DWProfile: Rightslist IdentifiersH $menus windows identsH =tZN^jv!defaultPositiondialogTitlelabelStringleftAttachmentleftOffsetleftWidgetrightAttachmentscrollBarDisplayPolicyselectionPolicysubMenuIdtopAttachmenttopWidgetvisibleItemCountcreateCallbackhelpCallbacksingleSelectionCallbackH Z">KYmXmCreateBulletinBoardDialogXmCreateFormXmCreateLabelXmCreateLabelGadgetXmCreateScrolledListro| x6x lD>ClassTable>ResourceTableheld_identsheld_labelheld_formall_identsall_labelall_formidents_formidents_boxIdents*[DWP]IDENTS.UIL;33+,./ 4I- 0123KPWO56 BB_F7xB_F89p|uGHJ N  module Idents names = case_sensitive objects = { XmSeparator = gadget; XmLabel = gadget; XmPushButton = gadget; XmToggleButton = gadget; } procedure WidgetCreated(integer); ListSelect(integer); Help(string); value k_widget_held_list: 8; k_widget_all_list: 9; object idents_box: XmBulletinBoardDialog { arguments { XmNdialogTitle = "DWProfile: Rightslist Identifiers"; XmNdefaultPosition = false; }; controls { XmForm idents_form; }; callbacks { XmNhelpCallback = procedure Help("menus windows idents"); }; }; idents_form: XmForm { controls { XmForm all_form; XmForm held_form; }; }; all_form: XmForm { controls { XmLabel all_label; XmScrolledList all_idents; }; }; held_form: XmForm { arguments { XmNleftAttachment = XmATTACH_WIDGET; XmNleftWidget = all_form; XmNleftOffset = 10; }; controls { XmLabel held_label; XmScrolledList held_idents; }; }; all_label: XmLabel { arguments { XmNlabelString = "Click here to add identifiers"; }; }; all_idents: XmScrolledList { arguments { XmNtopAttachment = XmATTACH_WIDGET; XmNtopWidget = all_label; XmNleftAttachment = XmATTACH_FORM; XmNrightAttachment = XmATTACH_FORM; XmNvisibleItemCount = 6; XmNselectionPolicy = XmSINGLE_SELECT; XmNscrollBarDisplayPolicy = XmSTATIC; }; callbacks { MrmNcreateCallback = procedure WidgetCreated(k_widget_all_list); XmNsingleSelectionCallback = procedure ListSelect(k_widget_all_list); }; }; held_label: XmLabel { arguments { XmNlabelString = "Click here to remove identifiers"; }; }; held_idents: XmScrolledList { arguments { XmNtopAttachment = XmATTACH_WIDGET; XmNtopWidget = held_label; XmNleftAttachment = XmATTACH_FORM; XmNrightAttachment = XmATTACH_FORM; XmNvisibleItemCount = 6; XmNselectionPolicy = XmSINGLE_SELECT; XmNscrollBarDisplayPolicy = XmSTATIC; }; callbacks { MrmNcreateCallback = procedure WidgetCreated(k_widget_held_list); XmNsingleSelectionCallback = procedure ListSelect(k_widget_held_list); }; }; end module;  n~DWPROFILE34.BCKB [DWP]MOTIF.OPT;3$B*[DWP]MOTIF.OPT;3+,B./ 4$L- 0123KPWO56kI<7I<89p|uGHJ N #sys$library:decw$xmlibshr.exe/share$sys$library:decw$dxmlibshr.exe/share*[DWP]MOVE_DIRECTORY.COM;10+,7./ 4M- 0123KPWO56G<7@4H<89p|uGHJ N %$! move a directory from p1p2 to p3p4M$ if p1 .eqs. "" .or. p2 .eqs. "" .or. p3 .eqs. "" .or. p4 .eqs. "" then exit.$ if "''p1'''p2'" .eqs. "''p3'''p4'" then exit$$ p2dir = p2 - "[" - "]"$ p4dir = p4 - "[" - "]"J$ backup 'p1'[000000]'p2dir'.dir 'p3'[000000]'p4dir'.dir/by_owner=originalF$ backup 'p1'['p2dir'...]*.*;* 'p3'['p4dir'...]*.*;*/by_owner=original$ @dwpuid:deltree 'p1''p2'$ exit*[DWP]PRIVS.UID;3+,N.E/ 4EA- 0123KPWOF56`$,vJ7 MvJ89p|uGHJ N tro|URM 1.1Motif Uil CompilerV1.1-000 5-DEC-1992 22:42:12.51PrivsQJ6NL x <\l x     ,8 D H 0Xprivs_boxH I ,privs_box  Thfp xHelpdef_privssepauth_privsH pDIp ,auth_privs\Lauth_privs_boxauth_privs_labelH l8Il 4auth_privs_label d  \elH 0y, ISO8859-1Authorized PrivilegesH <I 0xauth_privs_box  X\auth_privs_labelp#piXtD0|hT@,t`L8$auth_world_buttonauth_volpro_buttonauth_tmpmbx_buttonauth_sysprv_buttonauth_sysnam_buttonauth_syslck_buttonauth_sysgbl_buttonauth_shmem_buttonauth_share_buttonauth_setprv_buttonauth_setpri_buttonauth_security_buttonauth_readall_buttonauth_pswapm_buttonauth_prmmbx_buttonauth_prmgbl_buttonauth_prmceb_buttonauth_phy_io_buttonauth_pfnmap_buttonauth_oper_buttonauth_noacnt_buttonauth_netmbx_buttonauth_mount_buttonauth_log_io_buttonauth_grpprv_buttonauth_grpnam_buttonauth_group_buttonauth_exquota_buttonauth_diagnose_buttonauth_detach_buttonauth_cmkrnl_buttonauth_cmexec_buttonauth_bypass_buttonauth_bugchk_buttonauth_allspool_buttonH  I d8auth_allspool_buttonhfTPrivsCreatedau  hfPrivsChangedH #y ISO8859-1AllspoolH  \I `4auth_bugchk_buttonnhfPPrivsCreatedted  hfPrivsChangedgedH !y ISO8859-1BugchkH  l I `4auth_bypass_buttonnhfPPrivsCreatedted  hfPrivsChangedgedH ! y ISO8859-1BypassH  x I `4auth_cmexec_buttonnhfPPrivsCreatedted  hfPrivsChangedgedH ! y ISO8859-1CmexecH   I `4auth_cmkrnl_buttonnhfPPrivsCreatedted  hfPrivsChangedgedH ! y ISO8859-1CmkrnlH   I `4auth_detach_buttonnhfPPrivsCreatedted  hfPrivsChangedgedH ! y ISO8859-1DetachH   I d8auth_diagnose_buttonfhfTivPrivsCreated  fhfivPrivsChanged H # y ISO8859-1Diagnosero|Q] w]  i  z g T A ,  $0<HT`ql ^x 8K 8 %       , 8 D Py \f hS t @  -         $ 0 m < Z L I X 7 d%     $ 0 < D P 0   \ h t t b  O  ;  )      $ 0 < H T `x l D  >ClassTable>ResourceTabledef_world_buttondef_volpro_buttondef_tmpmbx_buttondef_sysprv_buttondef_sysnam_buttondef_syslck_buttondef_sysgbl_buttondef_shmem_buttondef_share_buttondef_setprv_buttondef_setpri_buttondef_security_buttondef_readall_buttondef_pswapm_buttondef_prmmbx_buttondef_prmgbl_buttondef_prmceb_buttondef_phy_io_buttondef_pfnmap_buttondef_oper_buttondef_noacnt_buttondef_netmbx_buttondef_mount_buttondef_log_io_buttondef_grpprv_buttondef_grpnam_buttondef_group_buttondef_exquota_buttondef_diagnose_buttondef_detach_buttondef_cmkrnl_buttondef_cmexec_buttondef_bypass_buttondef_bugchk_buttondef_allspool_buttondef_privs_boxdef_privs_labeldef_privssepauth_world_buttonauth_volpro_buttonauth_tmpmbx_buttonauth_sysprv_buttonauth_sysnam_buttonauth_syslck_buttonauth_sysgbl_buttonauth_shmem_buttonauth_share_buttonauth_setprv_buttonauth_setpri_buttonauth_security_buttonauth_readall_buttonauth_pswapm_buttonauth_prmmbx_buttonauth_prmgbl_buttonauth_prmceb_buttonauth_phy_io_buttonauth_pfnmap_buttonauth_oper_buttonauth_noacnt_buttonauth_netmbx_buttonauth_mount_buttonauth_log_io_buttonauth_grpprv_buttonauth_grpnam_buttonauth_group_buttonauth_exquota_buttonauth_diagnose_buttonauth_detach_buttonauth_cmkrnl_buttonauth_cmexec_buttonauth_bypass_buttonauth_bugchk_buttonauth_allspool_buttonauth_privs_boxauth_privs_labelauth_privsprivs_boxPrivsro|<H  I `4auth_exquota_buttonhfPPrivsCreatedted  hfPrivsChangedged H "y ISO8859-1ExquotaH  I `4auth_group_buttonnhfPPrivsCreatedted  hfPrivsChangedged H  y ISO8859-1GroupH  I `4auth_grpnam_buttonhfPPrivsCreatedted  hfPrivsChangedged H !y ISO8859-1GrpnamH  I `4auth_grpprv_buttonhfP"PrivsCreatedted  hf"PrivsChangedged H !$y ISO8859-1GrpprvH  I `4auth_log_io_buttonhfPPrivsCreatedted  hfPrivsChangedgedH !0y ISO8859-1Log_ioH  I `4auth_mount_buttonhfPPrivsCreatedted  hfPrivsChangedgedH  <y ISO8859-1MountH  I `4auth_netmbx_buttonhfPPrivsCreatedted  hfPrivsChangedgedH !Hy ISO8859-1NetmbxH   I `4auth_noacnt_buttonhfP PrivsCreatedted  hf PrivsChangedgedH !Ty ISO8859-1NoacntH  ,I `4auth_oper_buttonnhfPPrivsCreatedted  hfPrivsChangedgedH `y ISO8859-1OperH  8 I `4auth_pfnmap_buttonhfPPrivsCreatedted  hfPrivsChangedgedH !l y ISO8859-1PfnmapH  D I `4auth_phy_io_buttonhfPPrivsCreatedted  hfPrivsChangedgedH !x y ISO8859-1Phy_ioH  P I `4auth_prmceb_buttonhfP PrivsCreatedted  hf PrivsChangedgedH ! y ISO8859-1PrmcebH  \ I `4auth_prmgbl_buttonhfPPrivsCreatedted  hfPrivsChangedgedH ! y ISO8859-1PrmgblH  h I `4auth_prmmbx_buttonhfP PrivsCreatedted  hf PrivsChangedgedH ! y ISO8859-1PrmmbxH  tI `4auth_pswapm_buttonhfP PrivsCreatedted  hf PrivsChangedgedH !y ISO8859-1Pswapmro|P \ h t(4@ L X d p \   $ 0<(4 @ L X d p ,8 D ro|\TH  I `4auth_readall_buttonhfP#PrivsCreatedted  hf#PrivsChangedgedH "y ISO8859-1ReadallH  I d8auth_security_buttonfhfT&ivPrivsCreated  fhf&ivPrivsChangedH # y ISO8859-1SecurityH  I `4auth_setpri_buttonnhfP PrivsCreatedted  hf PrivsChangedgedH ! y ISO8859-1SetpriH  I `4auth_setprv_buttonnhfPPrivsCreatedted  hfPrivsChangedgedH !,y ISO8859-1SetprvH  I `4auth_share_buttonnhfPPrivsCreatedted  hfPrivsChangedged H  8y ISO8859-1ShareH  I `4auth_shmem_buttonnhfPPrivsCreatedted  hfPrivsChangedged H  Dy ISO8859-1ShmemH  I `4auth_sysgbl_buttonnhfPPrivsCreatedted  hfPrivsChangedged H !Py ISO8859-1SysgblH  (I `4auth_syslck_buttonnhfPPrivsCreatedted  hfPrivsChangedged H !\y ISO8859-1SyslckH  4I `4auth_sysnam_buttonnhfPPrivsCreatedted  hfPrivsChangedged H !hy ISO8859-1SysnamH  @ I `4auth_sysprv_buttonnhfPPrivsCreatedted  hfPrivsChangedgedH !t y ISO8859-1SysprvH  L I `4auth_tmpmbx_buttonnhfPPrivsCreatedted  hfPrivsChangedgedH ! y ISO8859-1TmpmbxH  X I `4auth_volpro_buttonnhfPPrivsCreatedted  hfPrivsChangedgedH ! y ISO8859-1VolproH  d I `4auth_world_buttonnhfPPrivsCreatedted  hfPrivsChangedgedH  y ISO8859-1WorldH xp Ix $sep  `  edauth_privsH  I ,hdef_privs  T  sepauvdef_privs_boxdef_privs_labelH \0I\ 0def_privs_label d LH -y) ISO8859-1Default Privilegesro|<pH I 0xdef_privs_boxl  Xdef_privs_labelv#iflexdiPt<(xdP<(t`L8$def_world_buttondef_volpro_buttondef_tmpmbx_buttondef_sysprv_buttondef_sysnam_buttondef_syslck_buttondef_sysgbl_buttondef_shmem_buttondef_share_buttondef_setprv_buttondef_setpri_buttondef_security_buttondef_readall_buttontdef_pswapm_buttonttdef_prmmbx_buttonttdef_prmgbl_buttonttdef_prmceb_buttonttdef_phy_io_buttonttdef_pfnmap_buttonttdef_oper_buttondef_noacnt_buttont_def_netmbx_buttonx_def_mount_buttont_bdef_log_io_buttono_def_grpprv_buttonv_def_grpnam_buttonm_def_group_buttonp_bdef_exquota_buttonadef_diagnose_buttondef_detach_buttonetdef_cmkrnl_buttonmkdef_cmexec_buttonmedef_bypass_buttonypdef_bugchk_buttonugdef_allspool_buttonH  I `4def_allspool_buttonhfP,PrivsCreated  hf,PrivsChangedeH #y ISO8859-1AllspoolH  I `4def_bugchk_buttonnhfP?PrivsCreated  hf?PrivsChangedeH !y ISO8859-1BugchkH  I `4def_bypass_buttonnhfPEPrivsCreated  hfEPrivsChangedeH ! y ISO8859-1BypassH  I `4def_cmexec_buttonnhfP)PrivsCreated  hf)PrivsChangedeH !y ISO8859-1CmexecH  I `4def_cmkrnl_buttonnhfP(PrivsCreated  hf(PrivsChangedeH !$ y ISO8859-1CmkrnlH   I `4def_detach_buttonnhfP-PrivsCreated  hf-PrivsChangedeH !0 y ISO8859-1DetachH   I `4def_diagnose_buttonhfP.PrivsCreated  hf.PrivsChangedeH #< y ISO8859-1DiagnoseH   I `4def_exquota_buttonhfP;PrivsCreated  hf;PrivsChangedeH "L y ISO8859-1ExquotaH  $ I `4def_group_buttonnhfP0PrivsCreated  hf0PrivsChangedeH  X y ISO8859-1GroupH  0I `4def_grpnam_buttonhfP+PrivsCreated  hf+PrivsChangedeH !dy ISO8859-1Grpnamro|<H  I `4def_grpprv_buttonhfPJPrivsCreated  hfJPrivsChangedeH !y ISO8859-1GrpprvH  I `4def_log_io_buttonhfP/PrivsCreated  hf/PrivsChangedeH ! y ISO8859-1Log_ioH  I `4def_mount_buttonhfP9PrivsCreated  hf9PrivsChangedeH  y ISO8859-1MountH  I `4def_netmbx_buttonhfP<PrivsCreated  hf<PrivsChangede H !$y ISO8859-1NetmbxH  I `4def_noacnt_buttonhfP1PrivsCreated  hf1PrivsChangede!H !0y ISO8859-1NoacntH  I \0def_oper_buttonhfL:PrivsCreatedted  hf:PrivsChangedged"H <y ISO8859-1OperH  I `4def_pfnmap_buttonfhfPBivPrivsCreated  fhfBivPrivsChanged#H !Dy ISO8859-1PfnmapH  I `4def_phy_io_buttonfhfP>ivPrivsCreated  fhf>ivPrivsChanged$H !Py ISO8859-1Phy_ioH  (I `4def_prmceb_buttonfhfP2ivPrivsCreated  fhf2ivPrivsChanged%H !\y ISO8859-1PrmcebH  4 I `4def_prmgbl_buttonfhfP@ivPrivsCreated  fhf@ivPrivsChanged&H !h y ISO8859-1PrmgblH  @ I `4def_prmmbx_buttonfhfP3ivPrivsCreated  fhf3ivPrivsChanged'H !t y ISO8859-1PrmmbxH  L I `4def_pswapm_buttonfhfP4ivPrivsCreated  fhf4ivPrivsChanged(H ! y ISO8859-1PswapmH  X I `4def_readall_buttonhfPKivPrivsCreated  fhfKivPrivsChanged)H " y ISO8859-1ReadallH  d I `4def_security_buttonhfPNivPrivsCreated  fhfNivPrivsChanged*H # y ISO8859-1SecurityH  pI `4def_setpri_buttonnhfP5ivPrivsCreated  fhf5ivPrivsChanged+H !y ISO8859-1Setpriro| H  I `4def_setprv_buttonnhfP6ivPrivsCreated  fhf6ivPrivsChanged,H !y ISO8859-1SetprvH  I `4def_share_buttonnhfPGivPrivsCreated  fhfGivPrivsChanged-H  y ISO8859-1ShareH  I `4def_shmem_buttonnhfPCivPrivsCreated  fhfCivPrivsChanged.H  y ISO8859-1ShmemH  I `4def_sysgbl_buttonnhfPAivPrivsCreated  fhfAivPrivsChangedk~DWPROFILE34.BCKN [DWP]PRIVS.UID;3E> ;/H !$y ISO8859-1SysgblH  I `4def_syslck_buttonnhfPFivPrivsCreated  fhfFivPrivsChanged0H !0y ISO8859-1SyslckH  I `4def_sysnam_buttonnhfP*ivPrivsCreated  fhf*ivPrivsChanged1H !<y ISO8859-1SysnamH  I `4def_sysprv_buttonnhfPDivPrivsCreated  fhfDivPrivsChanged2H !Hy ISO8859-1SysprvH   I `4def_tmpmbx_buttonnhfP7ivPrivsCreated  fhf7ivPrivsChanged3H !Ty ISO8859-1TmpmbxH  ,I `4def_volpro_buttonnhfP=ivPrivsCreated  fhf=ivPrivsChanged4H !`y ISO8859-1VolproH  8 I `4def_world_buttonnhfP8ivPrivsCreated  fhf8ivPrivsChanged5H  l y ISO8859-1WorldH 0D y, ISO8859-1DWProfile: PrivilegesH x menus windows privsH  ZN^jvdefaultPositiondialogTitlelabelStringleftAttachmentmarginHeightpackingrightAttachmentsubMenuIdtopAttachmenttopOffsettopWidgetxycreateCallbackhelpCallbackvalueChangedCallbackH  Z 2?R`tXmCreateFormXmCreateFormDialogXmCreateLabelXmCreateLabelGadgetXmCreateRowColumnXmCreateSeparatorXmCreateSeparatorGadgetXmCreateToggleButtonXmCreateToggleButtonGadget*[DWP]PRIVS.UIL;61+,$.?/ 4U?=X- 0123KPWO>56LqpJ7qpJ89p|uGHJ N nmodule Privs names = case_sensitive objects = { XmSeparator = gadget; XmLabel = gadget; XmPushButton = gadget; XmToggleButton = gadget; } value k_title: "DWProfile: Privileges"; k_cmkrnl_button: 0; k_cmexec_button: 1; k_sysnam_button: 2; k_grpnam_button: 3; k_allspool_button: 4; k_detach_button: 5; k_diagnose_button: 6; k_log_io_button: 7; k_group_button: 8; k_noacnt_button: 9; k_prmceb_button: 10; k_prmmbx_button: 11; k_pswapm_button: 12; k_setpri_button: 13; k_setprv_button: 14; k_tmpmbx_button: 15; k_world_button: 16; k_mount_button: 17; k_oper_button: 18; k_exquota_button: 19; k_netmbx_button: 20; k_volpro_button: 21; k_phy_io_button: 22; k_bugchk_button: 23; k_prmgbl_button: 24; k_sysgbl_button: 25; k_pfnmap_button: 26; k_shmem_button: 27; k_sysprv_button: 28; k_bypass_button: 29; k_syslck_button: 30; k_share_button: 31; k_upgrade_button: 32; k_downgrade_button: 33; k_grpprv_button: 34; k_readall_button: 35; k_security_button: 38; k_def_bias: 40; k_widget_cmkrnl: k_cmkrnl_button; k_widget_cmexec: k_cmexec_button; k_widget_sysnam: k_sysnam_button; k_widget_grpnam: k_grpnam_button; k_widget_allspool: k_allspool_button; k_widget_detach: k_detach_button; k_widget_diagnose: k_diagnose_button; k_widget_log_io: k_log_io_button; k_widget_group: k_group_button; k_widget_noacnt: k_noacnt_button; k_widget_prmceb: k_prmceb_button; k_widget_prmmbx: k_prmmbx_button; k_widget_pswapm: k_pswapm_button; k_widget_setpri: k_setpri_button; k_widget_setprv: k_setprv_button; k_widget_tmpmbx: k_tmpmbx_button; k_widget_world: k_world_button; k_widget_mount: k_mount_button; k_widget_oper: k_oper_button; k_widget_exquota: k_exquota_button; k_widget_netmbx: k_netmbx_button; k_widget_volpro: k_volpro_button; k_widget_phy_io: k_phy_io_button; k_widget_bugchk: k_bugchk_button; k_widget_prmgbl: k_prmgbl_button; k_widget_sysgbl: k_sysgbl_button; k_widget_pfnmap: k_pfnmap_button; k_widget_shmem: k_shmem_button; k_widget_sysprv: k_sysprv_button; k_widget_bypass: k_bypass_button; k_widget_syslck: k_syslck_button; k_widget_share: k_share_button; k_widget_upgrade: k_upgrade_button; k_widget_downgrade: k_downgrade_button; k_widget_grpprv: k_grpprv_button; k_widget_readall: k_readall_button; k_widget_security: k_security_button; k_cmkrnl_label_text: "Cmkrnl"; k_cmexec_label_text: "Cmexec"; k_sysnam_label_text: "Sysnam"; k_grpnam_label_text: "Grpnam"; k_allspool_label_text: "Allspool"; k_detach_label_text: "Detach"; k_diagnose_label_text: "Diagnose"; k_log_io_label_text: "Log_io"; k_group_label_text: "Group"; k_noacnt_label_text: "Noacnt"; k_prmceb_label_text: "Prmceb"; k_prmmbx_label_text: "Prmmbx"; k_pswapm_label_text: "Pswapm"; k_setpri_label_text: "Setpri"; k_setprv_label_text: "Setprv"; k_tmpmbx_label_text: "Tmpmbx"; k_world_label_text: "World"; k_mount_label_text: "Mount"; k_oper_label_text: "Oper"; k_exquota_label_text: "Exquota"; k_netmbx_label_text: "Netmbx"; k_volpro_label_text: "Volpro"; k_phy_io_label_text: "Phy_io"; k_bugchk_label_text: "Bugchk"; k_prmgbl_label_text: "Prmgbl"; k_sysgbl_label_text: "Sysgbl"; k_pfnmap_label_text: "Pfnmap"; k_shmem_label_text: "Shmem"; k_sysprv_label_text: "Sysprv"; k_bypass_label_text: "Bypass"; k_syslck_label_text: "Syslck"; k_share_label_text: "Share"; k_upgrade_label_text: "Upgrade"; k_downgrade_label_text: "Downgrade"; k_grpprv_label_text: "Grpprv"; k_readall_label_text: "Readall"; k_security_label_text: "Security"; k_auth_label_text: "Authorized Privileges"; k_def_label_text: "Default Privileges"; k_margin_height: -2; procedure PrivsCreated(integer); PrivsChanged(integer); Help(string); object privs_box: XmFormDialog { arguments { XmNdialogTitle = k_title; XmNdefaultPosition = false; }; controls { XmForm auth_privs; XmSeparator sep; XmForm def_privs; }; callbacks { XmNhelpCallback = procedure Help("menus windows privs"); }; }; sep: XmSeparator { arguments { XmNtopAttachment = XmATTACH_WIDGET; XmNtopWidget = auth_privs; XmNtopOffset = 10; XmNleftAttachment = XmATTACH_FORM; XmNrightAttachment = XmATTACH_FORM; }; }; auth_privs: XmForm { controls { XmLabel auth_privs_label; XmRowColumn auth_privs_box; }; }; auth_privs_label: XmLabel { arguments { XmNx = 100; XmNy = 10; XmNlabelString = k_auth_label_text; }; }; auth_privs_box: XmRowColumn { arguments { XmNtopAttachment = XmATTACH_WIDGET; XmNtopWidget = auth_privs_label; XmNpacking = XmPACK_COLUMN; }; controls { XmToggleButton auth_allspool_button; XmToggleButton auth_bugchk_button; XmToggleButton auth_bypass_button; XmToggleButton auth_cmexec_button; XmToggleButton auth_cmkrnl_button; XmToggleButton auth_detach_button; XmToggleButton auth_diagnose_button; /* XmToggleButton auth_downgrade_button; */ XmToggleButton auth_exquota_button; XmToggleButton auth_group_button; XmToggleButton auth_grpnam_button; XmToggleButton auth_grpprv_button; XmToggleButton auth_log_io_button; XmToggleButton auth_mount_button; XmToggleButton auth_netmbx_button; XmToggleButton auth_noacnt_button; XmToggleButton auth_oper_button; XmToggleButton auth_pfnmap_button; XmToggleButton auth_phy_io_button; XmToggleButton auth_prmceb_button; XmToggleButton auth_prmgbl_button; XmToggleButton auth_prmmbx_button; XmToggleButton auth_pswapm_button; XmToggleButton auth_readall_button; XmToggleButton auth_security_button; XmToggleButton auth_setpri_button; XmToggleButton auth_setprv_button; XmToggleButton auth_share_button; XmToggleButton auth_shmem_button; XmToggleButton auth_sysgbl_button; XmToggleButton auth_syslck_button; XmToggleButton auth_sysnam_button; XmToggleButton auth_sysprv_button; XmToggleButton auth_tmpmbx_button; /* XmToggleButton auth_upgrade_button; */ XmToggleButton auth_volpro_button; XmToggleButton auth_world_button; }; }; auth_cmkrnl_button: XmToggleButton { arguments { XmNlabelString = k_cmkrnl_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_cmkrnl); XmNvalueChangedCallback = procedure PrivsChanged(k_cmkrnl_button); }; }; auth_cmexec_button: XmToggleButton { arguments { XmNlabelString = k_cmexec_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_cmexec); XmNvalueChangedCallback = procedure PrivsChanged(k_cmexec_button); }; }; auth_sysnam_button: XmToggleButton { arguments { XmNlabelString = k_sysnam_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_sysnam); XmNvalueChangedCallback = procedure PrivsChanged(k_sysnam_button); }; }; auth_grpnam_button: XmToggleButton { arguments { XmNlabelString = k_grpnam_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_grpnam); XmNvalueChangedCallback = procedure PrivsChanged(k_grpnam_button); }; }; auth_allspool_button: XmToggleButton { arguments { XmNlabelString = k_allspool_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_allspool); XmNvalueChangedCallback = procedure PrivsChanged(k_allspool_button); }; }; auth_detach_button: XmToggleButton { arguments { XmNlabelString = k_detach_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_detach); XmNvalueChangedCallback = procedure PrivsChanged(k_detach_button); }; }; auth_diagnose_button: XmToggleButton { arguments { XmNlabelString = k_diagnose_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_diagnose); XmNvalueChangedCallback = procedure PrivsChanged(k_diagnose_button); }; }; auth_log_io_button: XmToggleButton { arguments { XmNlabelString = k_log_io_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_log_io); XmNvalueChangedCallback = procedure PrivsChanged(k_log_io_button); }; }; auth_group_button: XmToggleButton { arguments { XmNlabelString = k_group_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_group); XmNvalueChangedCallback = procedure PrivsChanged(k_group_button); }; }; auth_noacnt_button: XmToggleButton { arguments { XmNlabelString = k_noacnt_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_noacnt); XmNvalueChangedCallback = procedure PrivsChanged(k_noacnt_button); }; }; auth_prmceb_button: XmToggleButton { arguments { XmNlabelString = k_prmceb_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_prmceb); XmNvalueChangedCallback = procedure PrivsChanged(k_prmceb_button); }; }; auth_prmmbx_button: XmToggleButton { arguments { XmNlabelString = k_prmmbx_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_prmmbx); XmNvalueChangedCallback = procedure PrivsChanged(k_prmmbx_button); }; }; auth_pswapm_button: XmToggleButton { arguments { XmNlabelString = k_pswapm_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_pswapm); XmNvalueChangedCallback = procedure PrivsChanged(k_pswapm_button); }; }; auth_setpri_button: XmToggleButton { arguments { XmNlabelString = k_setpri_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_setpri); XmNvalueChangedCallback = procedure PrivsChanged(k_setpri_button); }; }; auth_setprv_button: XmToggleButton { arguments { XmNlabelString = k_setprv_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_setprv); XmNvalueChangedCallback = procedure PrivsChanged(k_setprv_button); }; }; auth_tmpmbx_button: XmToggleButton { arguments { XmNlabelString = k_tmpmbx_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_tmpmbx); XmNvalueChangedCallback = procedure PrivsChanged(k_tmpmbx_button); }; }; auth_world_button: XmToggleButton { arguments { XmNlabelString = k_world_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_world); XmNvalueChangedCallback = procedure PrivsChanged(k_world_button); }; }; auth_mount_button: XmToggleButton { arguments { XmNlabelString = k_mount_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_mount); XmNvalueChangedCallback = procedure PrivsChanged(k_mount_button); }; }; auth_oper_button: XmToggleButton { arguments { XmNlabelString = k_oper_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_oper); XmNvalueChangedCallback = procedure PrivsChanged(k_oper_button); }; }; auth_exquota_button: XmToggleButton { arguments { XmNlabelString = k_exquota_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_exquota); XmNvalueChangedCallback = procedure PrivsChanged(k_exquota_button); }; }; auth_netmbx_button: XmToggleButton { arguments { XmNlabelString = k_netmbx_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_netmbx); XmNvalueChangedCallback = procedure PrivsChanged(k_netmbx_button); }; }; auth_volpro_button: XmToggleButton { arguments { XmNlabelString = k_volpro_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_volpro); XmNvalueChangedCallback = procedure PrivsChanged(k_volpro_button); }; }; auth_phy_io_button: XmToggleButton { arguments { XmNlabelString = k_phy_io_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_phy_io); XmNvalueChangedCallback = procedure PrivsChanged(k_phy_io_button); }; }; auth_bugchk_button: XmToggleButton { arguments { XmNlabelString = k_bugchk_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_bugchk); XmNvalueChangedCallback = procedure PrivsChanged(k_bugchk_button); }; }; auth_prmgbl_button: XmToggleButton { arguments { XmNlabelString = k_prmgbl_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_prmgbl); XmNvalueChangedCallback = procedure PrivsChanged(k_prmgbl_button); }; }; auth_sysgbl_button: XmToggleButton { arguments { XmNlabelString = k_sysgbl_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_sysgbl); XmNvalueChangedCallback = procedure PrivsChanged(k_sysgbl_button); }; }; auth_pfnmap_button: XmToggleButton { arguments { XmNlabelString = k_pfnmap_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_pfnmap); XmNvalueChangedCallback = procedure PrivsChanged(k_pfnmap_button); }; }; auth_shmem_button: XmToggleButton { arguments { XmNlabelString = k_shmem_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_shmem); XmNvalueChangedCallback = procedure PrivsChanged(k_shmem_button); }; }; auth_sysprv_button: XmToggleButton { arguments { XmNlabelString = k_sysprv_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_sysprv); XmNvalueChangedCallback = procedure PrivsChanged(k_sysprv_button); }; }; auth_bypass_button: XmToggleButton { arguments { XmNlabelString = k_bypass_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_bypass); XmNvalueChangedCallback = procedure PrivsChanged(k_bypass_button); }; }; auth_syslck_button: XmToggleButton { arguments { XmNlabelString = k_syslck_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_syslck); XmNvalueChangedCallback = procedure PrivsChanged(k_syslck_button); }; }; auth_share_button: XmToggleButton { arguments { XmNlabelString = k_share_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_share); XmNvalueChangedCallback = procedure PrivsChanged(k_share_button); }; }; /* auth_upgrade_button: XmToggleButton { arguments { XmNlabelString = k_upgrade_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_upgrade); XmNvalueChangedCallback = procedure PrivsChanged(k_upgrade_button); }; }; auth_downgrade_button: XmToggleButton { arguments { XmNlabelString = k_downgrade_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_downgrade); XmNvalueChangedCallback = procedure PrivsChanged(k_downgrade_button); }; }; */ auth_grpprv_button: XmToggleButton { arguments { XmNlabelString = k_grpprv_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_grpprv); XmNvalueChangedCallback = procedure PrivsChanged(k_grpprv_button); }; }; auth_readall_button: XmToggleButton { arguments { XmNlabelString = k_readall_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_readall); XmNvalueChangedCallback = procedure PrivsChanged(k_readall_button); }; }; auth_security_button: XmToggleButton { arguments { XmNlabelString = k_security_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_security); XmNvalueChangedCallback = procedure PrivsChanged(k_security_button); }; }; object def_privs: XmForm { arguments { XmNtopAttachment = XmATTACH_WIDGET; XmNtopWidget = sep; XmNtopOffset = 10; }; controls { XmLabel def_privs_label; XmRowColumn def_privs_box; }; }; def_privs_label: XmLabel { arguments { XmNx = 100; XmNlabelString = k_def_label_text; }; }; def_privs_box: XmRowColumn { arguments { XmNtopAttachment = XmATTACH_WIDGET; XmNtopWidget = def_privs_label; XmNpacking = XmPACK_COLUMN; }; controls { XmToggleButton def_allspool_button; XmToggleButton def_bugchk_button; XmToggleButton def_bypass_button; XmToggleButton def_cmexec_button; XmToggleButton def_cmkrnl_button; XmToggleButton def_detach_button; XmToggleButton def_diagnose_button; /* XmToggleButton def_downgrade_button; */ XmToggleButton def_exquota_button; XmToggleButton def_group_button; XmToggleButton def_grpnam_button; XmToggleButton def_grpprv_button; XmToggleButton def_log_io_button; XmToggleButton def_mount_button; XmToggleButton def_netmbx_button; XmToggleButton def_noacnt_button; XmToggleButton def_oper_button; XmToggleButton def_pfnmap_button; XmToggleButton def_phy_io_button; XmToggleButton def_prmceb_button; XmToggleButton def_prmgbl_button; XmToggleButton def_prmmbx_button; XmToggleButton def_pswapm_button; XmToggleButton def_readall_button; XmToggleButton def_security_button; XmToggleButton def_setpri_button; XmToggleButton def_setprv_button; XmToggleButton def_share_button; XmToggleButton def_shmem_button; XmToggleButton def_sysgbl_button; XmToggleButton def_syslck_button; XmToggleButton def_sysnam_button; XmToggleButton def_sysprv_button; XmToggleButton def_tmpmbx_button; /* XmToggleButton def_upgrade_button; */ XmToggleButton def_volpro_button; XmToggleButton def_world_button; }; }; def_cmkrnl_button: XmToggleButton { arguments { XmNlabelString = k_cmkrnl_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_cmkrnl + k_def_bias); XmNvalueChangedCallback = procedure PrivsChanged(k_cmkrnl_button + k_def_bias); }; }; def_cmexec_button: XmToggleButton { arguments { XmNlabelString = k_cmexec_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_cmexec + k_def_bias); XmNvalueChangedCallback = procedure PrivsChanged(k_cmexec_button + k_def_bias); }; }; def_sysnam_button: XmToggleButton { arguments { XmNlabelString = k_sysnam_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_sysnam + k_def_bias); XmNvalueChangedCallback = procedure PrivsChanged(k_sysnam_button + k_def_bias); }; }; def_grpnam_button: XmToggleButton { arguments { XmNlabelString = k_grpnam_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_grpnam + k_def_bias); XmNvalueChangedCallback = procedure PrivsChanged(k_grpnam_button + k_def_bias); }; }; def_allspool_button: XmToggleButton { arguments { XmNlabelString = k_allspool_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_allspool + k_def_bias); XmNvalueChangedCallback = procedure PrivsChanged(k_allspool_button + k_def_bias); }; }; def_detach_button: XmToggleButton { arguments { XmNlabelString = k_detach_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_detach + k_def_bias); XmNvalueChangedCallback = procedure PrivsChanged(k_detach_button + k_def_bias); }; }; def_diagnose_button: XmToggleButton { arguments { XmNlabelString = k_diagnose_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_diagnose + k_def_bias); XmNvalueChangedCallback = procedure PrivsChanged(k_diagnose_button + k_def_bias); }; }; def_log_io_button: XmToggleButton { arguments { XmNlabelString = k_log_io_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_log_io + k_def_bias); XmNvalueChangedCallback = procedure PrivsChanged(k_log_io_button + k_def_bias); }; }; def_group_button: XmToggleButton { arguments { XmNlabelString = k_group_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_group + k_def_bias); XmNvalueChangedCallback = procedure PrivsChanged(k_group_button + k_def_bias); }; }; def_noacnt_button: XmToggleButton { arguments { XmNlabelString = k_noacnt_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_noacnt + k_def_bias); XmNvalueChangedCallback = procedure PrivsChanged(k_noacnt_button + k_def_bias); }; }; def_prmceb_button: XmToggleButton { arguments { XmNlabelString = k_prmceb_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_prmceb + k_def_bias); XmNvalueChangedCallback = procedure PrivsChanged(k_prmceb_button + k_def_bias); }; }; def_prmmbx_button: XmToggleButton { arguments { XmNlabelString = k_prmmbx_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_prmmbx + k_def_bias); XmNvalueChangedCallback = procedure PrivsChanged(k_prmmbx_button + k_def_bias); }; }; def_pswapm_button: XmToggleButton { arguments { XmNlabelString = k_pswapm_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_pswapm + k_def_bias); XmNvalueChangedCallback = procedure PrivsChanged(k_pswapm_button + k_def_bias); }; }; def_setpri_button: XmToggleButton { arguments { XmNlabelString = k_setpri_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_setpri + k_def_bias); XmNvalueChangedCallback = procedure PrivsChanged(k_setpri_button + k_def_bias); }; }; def_setprv_button: XmToggleButton { arguments { XmNlabelString = k_setprv_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_setprv + k_def_bias); XmNvalueChangedCallback = procedure PrivsChanged(k_setprv_button + k_def_bias); }; }; def_tmpmbx_button: XmToggleButton { arguments { XmNlabelString = k_tmpmbx_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_tmpmbx + k_def_bias); XmNvalueChangedCallback = procedure PrivsChanged(k_tmpmbx_button + k_def_bias); }; }; def_world_button: XmToggleButton { arguments { XmNlabelString = k_world_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_world + k_def_bias); XmNvalueChangedCallback = procedure PrivsChanged(k_world_button + k_def_bias); }; }; def_mount_button: XmToggleButton { arguments { XmNlabelString = k_mount_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_mount + k_def_bias); XmNvalueChangedCallback = procedure PrivsChanged(k_mount_button + k_def_bias); }; }; def_oper_button: XmToggleButton { arguments { XmNlabelString = k_oper_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_oper + k_def_bias); XmNvalueChangedCallback = procedure PrivsChanged(k_oper_button + k_def_bias); }; }; def_exquota_button: XmToggleButton { arguments { XmNlabelString = k_exquota_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_exquota + k_def_bias); XmNvalueChangedCallback = procedure PrivsChanged(k_exquota_button + k_def_bias); }; }; def_netmbx_button: XmToggleButton { arguments { XmNlabelString = k_netmbx_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_netmbx + k_def_bias); XmNvalueChangedCallback = procedure PrivsChanged(k_netmbx_button + k_def_bias); }; }; def_volpro_button: XmToggleButton { arguments { XmNlabelString = k_volpro_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_volpro + k_def_bias); XmNvalueChangedCallback = procedure PrivsChanged(k_volpro_button + k_def_bias); }; }; def_phy_io_button: XmToggleButton { arguments { XmNlabelString = k_phy_io_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_phy_io + k_def_bias); XmNvalueChangedCallback = procedure PrivsChanged(k_phy_io_button + k_def_bias); }; }; def_bugchk_button: XmToggleButton { arguments { XmNlabelString = k_bugchk_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_bugchk + k_def_bias); XmNvalueChangedCallback = procedure PrivsChanged(k_bugchk_button + k_def_bias); }; }; def_prmgbl_button: XmToggleButton { arguments { XmNlabelString = k_prmgbl_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_prmgbl + k_def_bias); XmNvalueChangedCallback = procedure PrivsChanged(k_prmgbl_button + k_def_bias); }; }; def_sysgbl_button: XmToggleButton { arguments { XmNlabelString = k_sysgbl_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_sysgbl + k_def_bias); XmNvalueChangedCallback = procedure PrivsChanged(k_sysgbl_button + k_def_bias); }; }; def_pfnmap_button: XmToggleButton { arguments { XmNlabelString = k_pfnmap_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_pfnmap + k_def_bias); XmNvalueChangedCallback = procedure PrivsChanged(k_pfnmap_button + k_def_bias); }; }; def_shmem_button: XmToggleButton { arguments { XmNlabelString = k_shmem_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_shmem + k_def_bias); XmNvalueChangedCallback = procedure PrivsChanged(k_shmem_button + k_def_bias); }; }; def_sysprv_button: XmToggleButton { argume~DWPROFILE34.BCK$ [DWP]PRIVS.UIL;61U? 8nts { XmNlabelString = k_sysprv_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_sysprv + k_def_bias); XmNvalueChangedCallback = procedure PrivsChanged(k_sysprv_button + k_def_bias); }; }; def_bypass_button: XmToggleButton { arguments { XmNlabelString = k_bypass_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_bypass + k_def_bias); XmNvalueChangedCallback = procedure PrivsChanged(k_bypass_button + k_def_bias); }; }; def_syslck_button: XmToggleButton { arguments { XmNlabelString = k_syslck_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_syslck + k_def_bias); XmNvalueChangedCallback = procedure PrivsChanged(k_syslck_button + k_def_bias); }; }; def_share_button: XmToggleButton { arguments { XmNlabelString = k_share_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_share + k_def_bias); XmNvalueChangedCallback = procedure PrivsChanged(k_share_button + k_def_bias); }; }; /* def_upgrade_button: XmToggleButton { arguments { XmNlabelString = k_upgrade_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_upgrade + k_def_bias); XmNvalueChangedCallback = procedure PrivsChanged(k_upgrade_button + k_def_bias); }; }; def_downgrade_button: XmToggleButton { arguments { XmNlabelString = k_downgrade_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_downgrade + k_def_bias); XmNvalueChangedCallback = procedure PrivsChanged(k_downgrade_button + k_def_bias); }; }; */ def_grpprv_button: XmToggleButton { arguments { XmNlabelString = k_grpprv_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_grpprv + k_def_bias); XmNvalueChangedCallback = procedure PrivsChanged(k_grpprv_button + k_def_bias); }; }; def_readall_button: XmToggleButton { arguments { XmNlabelString = k_readall_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_readall + k_def_bias); XmNvalueChangedCallback = procedure PrivsChanged(k_readall_button + k_def_bias); }; }; def_security_button: XmToggleButton { arguments { XmNlabelString = k_security_label_text; XmNmarginHeight = k_margin_height; }; callbacks { MrmNcreateCallback = procedure PrivsCreated(k_widget_security + k_def_bias); XmNvalueChangedCallback = procedure PrivsChanged(k_security_button + k_def_bias); }; }; end module; *[DWP]QUOTAS.UIL;16+,.$/ 4K$#- 0123KPWO$56B6597b)6989p|uGHJ N Fvalue k_maxjobs_label_text: "Maxjobs:"; UAI$_MAXJOBS: 49; object maxjobs: XmForm { arguments { XmNx = k_col1; XmNy = k_line_6_y; XmNborderWidth = 0; }; controls { XmLabel maxjobs_label; XmText maxjobs_text; }; }; maxjobs_label: XmLabel { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_label_deltax; XmNtopAttachment = XmATTACH_FORM; XmNtopOffset = k_label_form_offset; XmNlabelString = k_maxjobs_label_text; }; }; maxjobs_text: XmText { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_text_deltax; XmNleftWidget = XmLabel maxjobs_label; XmNcolumns = 6; XmNmaxLength = 6; }; callbacks { MrmNcreateCallback = procedure WidgetCreated(UAI$_MAXJOBS); XmNvalueChangedCallback = procedure WidgetChanged(UAI$_MAXJOBS); }; }; value k_fillm_label_text: "Fillm:"; UAI$_FILLM: 58; object fillm: XmForm { arguments { XmNx = k_col2; XmNy = k_line_6_y; XmNborderWidth = 0; }; controls { XmLabel fillm_label; XmText fillm_text; }; }; fillm_label: XmLabel { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_label_deltax; XmNtopAttachment = XmATTACH_FORM; XmNtopOffset = k_label_form_offset; XmNlabelString = k_fillm_label_text; }; }; fillm_text: XmText { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_text_deltax; XmNleftWidget = XmLabel fillm_label; XmNcolumns = 6; XmNmaxLength = 6; }; callbacks { MrmNcreateCallback = procedure WidgetCreated(UAI$_FILLM); XmNvalueChangedCallback = procedure WidgetChanged(UAI$_FILLM); }; }; value k_bytlm_label_text: "Bytlm:"; UAI$_BYTLM: 65; object bytlm: XmForm { arguments { XmNx = k_col3; XmNy = k_line_6_y; XmNborderWidth = 0; }; controls { XmLabel bytlm_label; XmText bytlm_text; }; }; bytlm_label: XmLabel { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_label_deltax; XmNtopAttachment = XmATTACH_FORM; XmNtopOffset = k_label_form_offset; XmNlabelString = k_bytlm_label_text; }; }; bytlm_text: XmText { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_text_deltax; XmNleftWidget = XmLabel bytlm_label; XmNcolumns = 6; XmNmaxLength = 6; }; callbacks { MrmNcreateCallback = procedure WidgetCreated(UAI$_BYTLM); XmNvalueChangedCallback = procedure WidgetChanged(UAI$_BYTLM); }; }; value k_maxacctjobs_label_text: "Maxacctjobs:"; k_widget_maxacctjobs: 50; object maxacctjobs: XmForm { arguments { XmNx = k_col1; XmNy = k_line_7_y; XmNborderWidth = 0; }; controls { XmLabel maxacctjobs_label; XmText maxacctjobs_text; }; }; maxacctjobs_label: XmLabel { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_label_deltax; XmNtopAttachment = XmATTACH_FORM; XmNtopOffset = k_label_form_offset; XmNlabelString = k_maxacctjobs_label_text; }; }; maxacctjobs_text: XmText { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_text_deltax; XmNleftWidget = XmLabel maxacctjobs_label; XmNcolumns = 6; XmNmaxLength = 6; }; callbacks { MrmNcreateCallback = procedure WidgetCreated(k_widget_maxacctjobs); XmNvalueChangedCallback = procedure WidgetChanged(k_widget_maxacctjobs); }; }; value k_shrfillm_label_text: "Shrfillm:"; UAI$_SHRFILLM: 59; object shrfillm: XmForm { arguments { XmNx = k_col2; XmNy = k_line_7_y; XmNborderWidth = 0; }; controls { XmLabel shrfillm_label; XmText shrfillm_text; }; }; shrfillm_label: XmLabel { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_label_deltax; XmNtopAttachment = XmATTACH_FORM; XmNtopOffset = k_label_form_offset; XmNlabelString = k_shrfillm_label_text; }; }; shrfillm_text: XmText { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_text_deltax; XmNleftWidget = XmLabel shrfillm_label; XmNcolumns = 6; XmNmaxLength = 6; }; callbacks { MrmNcreateCallback = procedure WidgetCreated(UAI$_SHRFILLM); XmNvalueChangedCallback = procedure WidgetChanged(UAI$_SHRFILLM); }; }; value k_pbytlm_label_text: "Pbytlm:"; UAI$_PBYTLM: 66; object pbytlm: XmForm { arguments { XmNx = k_col3; XmNy = k_line_7_y; XmNborderWidth = 0; }; controls { XmLabel pbytlm_label; XmText pbytlm_text; }; }; pbytlm_label: XmLabel { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_label_deltax; XmNtopAttachment = XmATTACH_FORM; XmNtopOffset = k_label_form_offset; XmNlabelString = k_pbytlm_label_text; }; }; pbytlm_text: XmText { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_text_deltax; XmNleftWidget = XmLabel pbytlm_label; XmNcolumns = 6; XmNmaxLength = 6; }; callbacks { MrmNcreateCallback = procedure WidgetCreated(UAI$_PBYTLM); XmNvalueChangedCallback = procedure WidgetChanged(UAI$_PBYTLM); }; }; value k_maxdetach_label_text: "Maxdetach:"; UAI$_MAXDETACH: 51; object maxdetach: XmForm { arguments { XmNx = k_col1; XmNy = k_line_8_y; XmNborderWidth = 0; }; controls { XmLabel maxdetach_label; XmText maxdetach_text; }; }; maxdetach_label: XmLabel { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_label_deltax; XmNtopAttachment = XmATTACH_FORM; XmNtopOffset = k_label_form_offset; XmNlabelString = k_maxdetach_label_text; }; }; maxdetach_text: XmText { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_text_deltax; XmNleftWidget = XmLabel maxdetach_label; XmNcolumns = 6; XmNmaxLength = 6; }; callbacks { MrmNcreateCallback = procedure WidgetCreated(UAI$_MAXDETACH); XmNvalueChangedCallback = procedure WidgetChanged(UAI$_MAXDETACH); }; }; value k_biolm_label_text: "BIOlm:"; UAI$_BIOLM: 53; object biolm: XmForm { arguments { XmNx = k_col2; XmNy = k_line_8_y; XmNborderWidth = 0; }; controls { XmLabel biolm_label; XmText biolm_text; }; }; biolm_label: XmLabel { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_label_deltax; XmNtopAttachment = XmATTACH_FORM; XmNtopOffset = k_label_form_offset; XmNlabelString = k_biolm_label_text; }; }; biolm_text: XmText { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_text_deltax; XmNleftWidget = XmLabel biolm_label; XmNcolumns = 6; XmNmaxLength = 6; }; callbacks { MrmNcreateCallback = procedure WidgetCreated(UAI$_BIOLM); XmNvalueChangedCallback = procedure WidgetChanged(UAI$_BIOLM); }; }; value k_jtquota_label_text: "JTquota:"; UAI$_JTQUOTA: 67; object jtquota: XmForm { arguments { XmNx = k_col3; XmNy = k_line_8_y; XmNborderWidth = 0; }; controls { XmLabel jtquota_label; XmText jtquota_text; }; }; jtquota_label: XmLabel { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_label_deltax; XmNtopAttachment = XmATTACH_FORM; XmNtopOffset = k_label_form_offset; XmNlabelString = k_jtquota_label_text; }; }; jtquota_text: XmText { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_text_deltax; XmNleftWidget = XmLabel jtquota_label; XmNcolumns = 6; XmNmaxLength = 6; }; callbacks { MrmNcreateCallback = procedure WidgetCreated(UAI$_JTQUOTA); XmNvalueChangedCallback = procedure WidgetChanged(UAI$_JTQUOTA); }; }; value k_prclm_label_text: "Prclm:"; UAI$_PRCCNT: 52; object prclm: XmForm { arguments { XmNx = k_col1; XmNy = k_line_9_y; XmNborderWidth = 0; }; controls { XmLabel prclm_label; XmText prclm_text; }; }; prclm_label: XmLabel { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_label_deltax; XmNtopAttachment = XmATTACH_FORM; XmNtopOffset = k_label_form_offset; XmNlabelString = k_prclm_label_text; }; }; prclm_text: XmText { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_text_deltax; XmNleftWidget = XmLabel prclm_label; XmNcolumns = 6; XmNmaxLength = 6; }; callbacks { MrmNcreateCallback = procedure WidgetCreated(UAI$_PRCCNT); XmNvalueChangedCallback = procedure WidgetChanged(UAI$_PRCCNT); }; }; value k_diolm_label_text: "DIOlm:"; UAI$_DIOLM: 54; object diolm: XmForm { arguments { XmNx = k_col2; XmNy = k_line_9_y; XmNborderWidth = 0; }; controls { XmLabel diolm_label; XmText diolm_text; }; }; diolm_label: XmLabel { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_label_deltax; XmNtopAttachment = XmATTACH_FORM; XmNtopOffset = k_label_form_offset; XmNlabelString = k_diolm_label_text; }; }; diolm_text: XmText { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_text_deltax; XmNleftWidget = XmLabel diolm_label; XmNcolumns = 6; XmNmaxLength = 6; }; callbacks { MrmNcreateCallback = procedure WidgetCreated(UAI$_DIOLM); XmNvalueChangedCallback = procedure WidgetChanged(UAI$_DIOLM); }; }; value k_wsdef_label_text: "WSdef:"; UAI$_DFWSCNT: 61; object wsdef: XmForm { arguments { XmNx = k_col3; XmNy = k_line_9_y; XmNborderWidth = 0; }; controls { XmLabel wsdef_label; XmText wsdef_text; }; }; wsdef_label: XmLabel { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_label_deltax; XmNtopAttachment = XmATTACH_FORM; XmNtopOffset = k_label_form_offset; XmNlabelString = k_wsdef_label_text; }; }; wsdef_text: XmText { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_text_deltax; XmNleftWidget = XmLabel wsdef_label; XmNcolumns = 6; XmNmaxLength = 6; }; callbacks { MrmNcreateCallback = procedure WidgetCreated(UAI$_DFWSCNT); XmNvalueChangedCallback = procedure WidgetChanged(UAI$_DFWSCNT); }; }; value k_prio_label_text: "Prio:"; UAI$_PRI: 47; object prio: XmForm { arguments { XmNx = k_col1; XmNy = k_line_10_y; XmNborderWidth = 0; }; controls { XmLabel prio_label; XmText prio_text; }; }; prio_label: XmLabel { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_label_deltax; XmNtopAttachment = XmATTACH_FORM; XmNtopOffset = k_label_form_offset; XmNlabelString = k_prio_label_text; }; }; prio_text: XmText { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_text_deltax; XmNleftWidget = XmLabel prio_label; XmNcolumns = 6; XmNmaxLength = 6; }; callbacks { MrmNcreateCallback = procedure WidgetCreated(UAI$_PRI); XmNvalueChangedCallback = procedure WidgetChanged(UAI$_PRI); }; }; value k_astlm_label_text: "ASTlm:"; UAI$_ASTLM: 56; object astlm: XmForm { arguments { XmNx = k_col2; XmNy = k_line_10_y; XmNborderWidth = 0; }; controls { XmLabel astlm_label; XmText astlm_text; }; }; astlm_label: XmLabel { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_label_deltax; XmNtopAttachment = XmATTACH_FORM; XmNtopOffset = k_label_form_offset; XmNlabelString = k_astlm_label_text; }; }; astlm_text: XmText { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_text_deltax; XmNleftWidget = XmLabel astlm_label; XmNcolumns = 6; XmNmaxLength = 6; }; callbacks { MrmNcreateCallback = procedure WidgetCreated(UAI$_ASTLM); XmNvalueChangedCallback = procedure WidgetChanged(UAI$_ASTLM); }; }; value k_wsquota_label_text: "WSquota:"; UAI$_WSQUOTATA: 60; object wsquota: XmForm { arguments { XmNx = k_col3; XmNy = k_line_10_y; XmNborderWidth = 0; }; controls { XmLabel wsquota_label; XmText wsquota_text; }; }; wsquota_label: XmLabel { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_label_deltax; XmNtopAttachment = XmATTACH_FORM; XmNtopOffset = k_label_form_offset; XmNlabelString = k_wsquota_label_text; }; }; wsquota_text: XmText { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_text_deltax; XmNleftWidget = XmLabel wsquota_label; XmNcolumns = 6; XmNmaxLength = 6; }; callbacks { MrmNcreateCallback = procedure WidgetCreated(UAI$_WSQUOTATA); XmNvalueChangedCallback = procedure WidgetChanged(UAI$_WSQUOTATA); }; }; value k_queprio_label_text: "Queprio:"; UAI$_QUEPRI: 48; object queprio: XmForm { arguments { XmNx = k_col1; XmNy = k_line_11_y; XmNborderWidth = 0; }; controls { XmLabel queprio_label; XmText queprio_text; }; }; queprio_label: XmLabel { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_label_deltax; XmNtopAttachment = XmATTACH_FORM; XmNtopOffset = k_label_form_offset; XmNlabelString = k_queprio_label_text; }; }; queprio_text: XmText { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_text_deltax; XmNleftWidget = XmLabel queprio_label; XmNcolumns = 6; XmNmaxLength = 6; }; callbacks { MrmNcreateCallback = procedure WidgetCreated(UAI$_QUEPRI); XmNvalueChangedCallback = procedure WidgetChanged(UAI$_QUEPRI); }; }; value k_tqelm_label_text: "TQElm:"; UAI$_TQCNT: 55; object tqelm: XmForm { arguments { XmNx = k_col2; XmNy = k_line_11_y; XmNborderWidth = 0; }; controls { XmLabel tqelm_label; XmText tqelm_text; }; }; tqelm_label: XmLabel { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_label_deltax; XmNtopAttachment = XmATTACH_FORM; XmNtopOffset = k_label_form_offset; XmNlabelString = k_tqelm_label_text; }; }; tqelm_text: XmText { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_text_deltax; XmNleftWidget = XmLabel tqelm_label; XmNcolumns = 6; XmNmaxLength = 6; }; callbacks { MrmNcreateCallback = procedure WidgetCreated(UAI$_TQCNT); XmNvalueChangedCallback = procedure WidgetChanged(UAI$_TQCNT); }; }; value k_wsextent_label_text: "WSextent:"; UAI$_WSEXTENT: 62; object wsextent: XmForm { arguments { XmNx = k_col3; XmNy = k_line_11_y; XmNborderWidth = 0; }; controls { XmLabel wsextent_label; XmText wsextent_text; }; }; wsextent_label: XmLabel { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_label_deltax; XmNtopAttachment = XmATTACH_FORM; XmNtopOffset = k_label_form_offset; XmNlabelString = k_wsextent_label_text; }; }; wsextent_text: XmText { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_text_deltax; XmNleftWidget = XmLabel wsextent_label; XmNcolumns = 6; XmNmaxLength = 6; }; callbacks { MrmNcreateCallback = procedure WidgetCreated(UAI$_WSEXTENT); XmNvalueChangedCallback = procedure WidgetChanged(UAI$_WSEXTENT); }; }; value k_cpu_label_text: "CPU:"; UAI$_CPUTIM: 64; object cpu: XmForm { arguments { XmNx = k_col1; XmNy = k_line_12_y; XmNborderWidth = 0; }; controls { XmLabel cpu_label; XmText cpu_text; }; }; cpu_label: XmLabel { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_label_deltax; XmNtopAttachment = XmATTACH_FORM; XmNtopOffset = k_label_form_offset; XmNlabelString = k_cpu_label_text; }; }; cpu_text: XmText { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_text_deltax; XmNleftWidget = XmLabel cpu_label; XmNcolumns = 6; XmNmaxLength = 10; }; callbacks { MrmNcreateCallback = procedure WidgetCreated(UAI$_CPUTIM); XmNvalueChangedCallback = procedure WidgetChanged(UAI$_CPUTIM); }; }; value k_enqlm_label_text: "Enqlm:"; UAI$_ENQLM: 57; object enqlm: XmForm { arguments { XmNx = k_col2; XmNy = k_line_12_y; XmNborderWidth = 0; }; controls { XmLabel enqlm_label; XmText enqlm_text; }; }; enqlm_label: XmLabel { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_label_deltax; XmNtopAttachment = XmATTACH_FORM; XmNtopOffset = k_label_form_offset; XmNlabelString = k_enqlm_label_text; }; }; enqlm_text: XmText { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_text_deltax; XmNleftWidget = XmLabel enqlm_label; XmNcolumns = 6; XmNmaxLength = 6; }; callbacks { MrmNcreateCallback = procedure WidgetCreated(UAI$_ENQLM); XmNvalueChangedCallback = procedure WidgetChanged(UAI$_ENQLM); }; }; value k_pgflquo_label_text: "Pgflquo:"; k_widget_pgflquo: 63; object pgflquo: XmForm { arguments { XmNx = k_col3; XmNy = k_line_12_y; XmNborderWidth = 0; }; controls { XmLabel pgflquo_label; XmText pgflquo_text; }; }; pgflquo_label: XmLabel { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_label_deltax; XmNtopAttachment = XmATTACH_FORM; XmNtopOffset = k_label_form_offset; XmNlabelString = k_pgflquo_label_text; }; }; pgflquo_text: XmText { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_text_deltax; XmNleftWidget = XmLabel pgflquo_label; XmNcolumns = 6; XmNmaxLength = 6; }; callbacks { MrmNcreateCallback = procedure WidgetCreated(k_widget_pgflquo); XmNvalueChangedCallback = procedure WidgetChanged(k_widget_pgflquo); }; }; *[DWP]RESETOWNER.COM;19+,d ./ 4>- 0123KPWO56 57@589p|uGHJ N  $ on control_y then goto cleanup $ on warning then goto top_level$ prevpriv = f$setprv("SYSPRV")$ if p1 .eqs. ""$ then$ default = f$directory()6$ inquire direct "Directory name to use [''default']"+$ if direct .eqs. "" then direct = default$ else$ direct = p1$ endif$ dev = f$element(0,":",direct)!$ dir_1 = f$element(1,":",direct)$ if dir_1 .eqs. ":"$ then$ dir_1 = dev $ dev = ""$ endif&$ if dev .nes. "" then dev = dev + ":"&$ dir_2 = dir_1 - "[" - "]" -"<" - ">"#$ dir_3 = "[" + dir_2 + "...]*.*;*" $ owner = ""$ if p2 .nes. ""$ then $ owner = p2$ else>$ if p1 .eqs. "" then inquire owner "Owner to use [''dir_2']"$ endif&$ if owner .eqs. "" then owner = dir_2$ owner = owner - "[" - "]"+$ set file/owner=['owner'] 'dev''dir_3'/log $top_level:7$ set file/owner=['owner'] 'dev'[000000]'dir_2'.dir/log $cleanup:$ prevpriv = f$setprv(prevpriv)$ exit*[DWP]TEXT.UIL;25+,t./ 4H- 0123KPWO56Иr:7sr:89p|uGHJ N "value UAI$_USERNAME: 4; object user: XmForm { arguments { XmNx = k_tab1; XmNy = k_line_1_y; }; controls { XmLabel user_label; XmText user_text; }; callbacks { XmNhelpCallback = procedure Help("fields text user"); }; }; user_label: XmLabel { arguments { XmNlabelString = "User:"; XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_label_deltax; XmNtopAttachment = XmATTACH_FORM; XmNtopOffset = k_label_form_offset; }; }; user_text: XmText { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_text_deltax1; XmNcolumns = 14; XmNmaxLength = 12; }; callbacks { MrmNcreateCallback = procedure WidgetCreated(UAI$_USERNAME); XmNvalueChangedCallback = procedure WidgetChanged(UAI$_USERNAME); }; }; value UAI$_OWNER: 12; object owner: XmForm { arguments { XmNx = k_tab2; XmNy = k_line_1_y; }; controls { XmLabel owner_label; XmText owner_text; }; callbacks { XmNhelpCallback = procedure Help("fields text owner"); }; }; owner_label: XmLabel { arguments { XmNlabelString = "Owner:"; XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_label_deltax; XmNtopAttachment = XmATTACH_FORM; XmNtopOffset = k_label_form_offset; }; }; owner_text: XmText { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_text_deltax2; XmNleftWidget = XmLabel owner_label; XmNcolumns = 32; XmNmaxLength = 32; }; callbacks { MrmNcreateCallback = procedure WidgetCreated(UAI$_OWNER); XmNvalueChangedCallback = procedure WidgetChanged(UAI$_OWNER); }; }; value UAI$_ACCOUNT: 11; object account: XmForm { arguments { XmNx = k_tab1; XmNy = k_line_2_y; }; controls { XmLabel account_label; XmText account_text; }; callbacks { XmNhelpCallback = procedure Help("fields text account"); }; }; account_label: XmLabel { arguments { XmNlabelString = "Account:"; XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_label_deltax; XmNtopAttachment = XmATTACH_FORM; XmNtopOffset = k_label_form_offset; }; }; account_text: XmText { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_text_deltax1; XmNleftWidget = XmLabel account_label; XmNcolumns = 8; XmNmaxLength = 8; }; callbacks { MrmNcreateCallback = procedure WidgetCreated(UAI$_ACCOUNT); XmNvalueChangedCallback = procedure WidgetChanged(UAI$_ACCOUNT); }; }; value UAI$_UIC: 6; object uic: XmForm { arguments { XmNx = k_tab2; XmNy = k_line_2_y; }; controls { XmLabel uic_label; XmText uic_text; }; callbacks { XmNhelpCallback = procedure Help("fields text uic"); }; }; uic_label: XmLabel { arguments { XmNlabelString = "UIC:"; XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_label_deltax; XmNtopAttachment = XmATTACH_FORM; XmNtopOffset = k_label_form_offset; }; }; uic_text: XmText { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_text_deltax2; XmNleftWidget = XmLabel uic_label; XmNcolumns = 11; XmNmaxLength = 15; XmNresizeWidth = false; }; callbacks { MrmNcreateCallback = procedure WidgetCreated(UAI$_UIC); XmNvalueChangedCallback = procedure WidgetChanged(UAI$_UIC); }; }; value k_widget_uic_trans: 7; object uic_trans: XmLabel { arguments { XmNx = k_tab3 + k_label_deltax + 5; XmNy = k_line_2_y + k_label_form_offset; }; callbacks { MrmNcreateCallback = procedure WidgetCreated(k_widget_uic_trans); }; }; value UAI$_DEFDEV: 13; object device: XmForm { arguments { XmNx = k_tab1; XmNy = k_line_3_y; }; controls { XmLabel device_label; XmText device_text; }; callbacks { XmNhelpCallback = procedure Help("fields text device"); }; }; device_label: XmLabel { arguments { XmNlabelString = "Device:"; XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_label_deltax; XmNtopAttachment = XmATTACH_FORM; XmNtopOffset = k_label_form_offset; }; }; device_text: XmText { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_text_deltax1; XmNleftWidget = XmLabel device_label; XmNcolumns = 14; XmNmaxLength = 32; XmNresizeWidth = false; }; callbacks { MrmNcreateCallback = procedure WidgetCreated(UAI$_DEFDEV); XmNvalueChangedCallback = procedure WidgetChanged(UAI$_DEFDEV); }; }; value UAI$_CLITABLES: 17; object table: XmForm { arguments { XmNx = k_tab2; XmNy = k_line_3_y; }; controls { XmLabel table_label; XmText table_text; }; callbacks { XmNhelpCallback = procedure Help("fields text table"); }; }; table_label: XmLabel { arguments { XmNlabelString = "Table:"; XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_label_deltax; XmNtopAttachment = XmATTACH_FORM; XmNtopOffset = k_label_form_offset; }; }; table_text: XmText { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_text_deltax2; XmNleftWidget = XmLabel table_label; XmNcolumns = 11; XmNmaxLength = 20; XmNresizeWidth = false; }; callbacks { MrmNcreateCallback = procedure WidgetCreated(UAI$_CLITABLES); XmNvalueChangedCallback = procedure WidgetChanged(UAI$_CLITABLES); }; }; value UAI$_DEFCLI: 16; object cli: XmForm { arguments { XmNx = k_tab3; XmNy = k_line_3_y; }; controls { XmLabel cli_label; XmText cli_text; }; callbacks { XmNhelpCallback = procedure Help("fields text cli"); }; }; cli_label: XmLabel { arguments { XmNlabelString = "CLI:"; XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_label_deltax; XmNtopAttachment = XmATTACH_FORM; XmNtopOffset = k_label_form_offset; }; }; cli_text: XmText { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_text_deltax3; XmNleftWidget = XmLabel cli_label; XmNcolumns = 8; XmNmaxLength = 32; XmNresizeWidth = false; }; callbacks { MrmNcreateCallback = procedure WidgetCreated(UAI$_DEFCLI); XmNvalueChangedCallback = procedure WidgetChanged(UAI$_DEFCLI); }; }; value UAI$_DEFDIR: 14; object directory: XmForm { arguments { XmNx = k_tab1; XmNy = k_line_4_y; }; controls { XmLabel directory_label; XmText directory_text; }; callbacks { XmNhelpCallback = procedure Help("fields text directory"); }; }; directory_label: XmLabel { arguments { XmNlabelString = "Directory:"; XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_label_deltax; XmNtopAttachment = XmATTACH_FORM; XmNtopOffset = k_label_form_offset; }; }; directory_text: XmText { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_text_deltax1; XmNleftWidget = XmLabel directory_label; XmNcolumns = 14; XmNmaxLength = 32; XmNresizeWidth = false; }; callbacks { MrmNcreateCallback = procedure WidgetCreated(UAI$_DEFDIR); XmNvalueChangedCallback = procedure WidgetChanged(UAI$_DEFDIR); }; }; value UAI$_LGICMD: 15; object lgicmd: XmForm { arguments { XmNx = k_tab2; XmNy = k_line_4_y; }; controls { XmLabel lgicmd_label; XmText lgicmd_text; }; callbacks { XmNhelpCallback = procedure Help("fields text lgicmd"); }; }; lgicmd_label: XmLabel { arguments { XmNlabelString = "LGICMD:"; XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_label_deltax; XmNtopAttachment = XmATTACH_FORM; XmNtopOffset = k_label_form_offset; }; }; lgicmd_text: XmText { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_text_deltax2; XmNleftWidget = XmLabel lgicmd_label; XmNcolumns = 11; XmNmaxLength = 32; XmNresizeWidth = false; }; callbacks { MrmNcreateCallback = procedure WidgetCreated(UAI$_LGICMD); XmNvalueChangedCallback = procedure WidgetChanged(UAI$_LGICMD); }; }; value UAI$_PWD: 18; object password: XmForm { arguments { XmNx = k_tab3; XmNy = k_line_4_y; }; controls { XmLabel password_label; XmText password_text; }; }; password_label: XmLabel { arguments { XmNlabelString = "Password:"; XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_label_deltax; XmNtopAttachment = XmATTACH_FORM; XmNtopOffset = k_label_form_offset; }; callbacks { XmNhelpCallback = procedure Help("fields text password"); }; }; password_text: XmText { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_text_deltax3; XmNleftWidget = XmLabel password_label; XmNcolumns = 8; XmNmaxLength = 32; XmNresizeWidth = false; }; callbackss~DWPROFILE34.BCKt [DWP]TEXT.UIL;25H} { MrmNcreateCallback = procedure WidgetCreated(UAI$_PWD); XmNvalueChangedCallback = procedure WidgetChanged(UAI$_PWD); }; }; value UAI$_EXPIRATION: 25; object expiration: XmForm { arguments { XmNx = k_tab1; XmNy = k_line_5_y; }; controls { XmLabel expiration_label; XmText expiration_text; }; callbacks { XmNhelpCallback = procedure Help("fields text expiration"); }; }; expiration_label: XmLabel { arguments { XmNlabelString = "Expiration:"; XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_label_deltax; XmNtopAttachment = XmATTACH_FORM; XmNtopOffset = k_label_form_offset; }; }; expiration_text: XmText { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_text_deltax1; XmNleftWidget = XmLabel expiration_label; XmNcolumns = 12; XmNmaxLength = 17; XmNresizeWidth = false; }; callbacks { MrmNcreateCallback = procedure WidgetCreated(UAI$_EXPIRATION); XmNvalueChangedCallback = procedure WidgetChanged(UAI$_EXPIRATION); }; }; value UAI$_PWD_LIFETIME: 26; object pwdlifetime: XmForm { arguments { XmNx = k_tab2; XmNy = k_line_5_y; }; controls { XmLabel pwdlifetime_label; XmText pwdlifetime_text; }; callbacks { XmNhelpCallback = procedure Help("fields text lifetime"); }; }; pwdlifetime_label: XmLabel { arguments { XmNlabelString = "PWDlifetime:"; XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_label_deltax; XmNtopAttachment = XmATTACH_FORM; XmNtopOffset = k_label_form_offset; }; }; pwdlifetime_text: XmText { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_text_deltax2; XmNleftWidget = XmLabel pwdlifetime_label; XmNcolumns = 11; XmNmaxLength = 12; XmNresizeWidth = false; }; callbacks { MrmNcreateCallback = procedure WidgetCreated(UAI$_PWD_LIFETIME); XmNvalueChangedCallback = procedure WidgetChanged(UAI$_PWD_LIFETIME); }; }; value UAI$_PWD_LENGTH: 24; object pwdlength: XmForm { arguments { XmNx = k_tab3; XmNy = k_line_5_y; }; controls { XmLabel pwdlength_label; XmText pwdlength_text; }; callbacks { XmNhelpCallback = procedure Help("fields text pwdmin"); }; }; pwdlength_label: XmLabel { arguments { XmNlabelString = "PWDmin:"; XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_label_deltax; XmNtopAttachment = XmATTACH_FORM; XmNtopOffset = k_label_form_offset; }; }; pwdlength_text: XmText { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_text_deltax3; XmNleftWidget = XmLabel pwdlength_label; XmNcolumns = 2; XmNmaxLength = 2; }; callbacks { MrmNcreateCallback = procedure WidgetCreated(UAI$_PWD_LENGTH); XmNvalueChangedCallback = procedure WidgetChanged(UAI$_PWD_LENGTH); }; }; value UAI$_LASTLOGIN_I: 29; object lastlogin_i: XmForm { arguments { XmNx = k_tab1; XmNy = k_line_login_y; }; controls { XmLabel lastlogin_i_label; XmLabel lastlogin_i_text; }; }; lastlogin_i_label: XmLabel { arguments { XmNlabelString = "Login (int):"; XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_label_deltax; }; }; lastlogin_i_text: XmLabel { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_text_deltax1; XmNleftWidget = XmLabel lastlogin_i_label; }; callbacks { MrmNcreateCallback = procedure WidgetCreated(UAI$_LASTLOGIN_I); }; }; value UAI$_LASTLOGIN_N: 30; object lastlogin_n: XmForm { arguments { XmNx = k_tab2; XmNy = k_line_login_y; }; controls { XmLabel lastlogin_n_label; XmLabel lastlogin_n_text; }; }; lastlogin_n_label: XmLabel { arguments { XmNlabelString = "Login (non):"; XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_label_deltax; }; }; lastlogin_n_text: XmLabel { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_text_deltax2; XmNleftWidget = XmLabel lastlogin_n_label; }; callbacks { MrmNcreateCallback = procedure WidgetCreated(UAI$_LASTLOGIN_N); }; }; value UAI$_LOGFAILS: 20; object logfails: XmForm { arguments { XmNx = k_tab3 + 30; XmNy = k_line_login_y; }; controls { XmLabel logfails_label; XmLabel logfails_text; }; }; logfails_label: XmLabel { arguments { XmNlabelString = "Logfails:"; XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_label_deltax; }; }; logfails_text: XmLabel { arguments { XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = k_text_deltax3 - 10; XmNleftWidget = XmLabel logfails_label; }; callbacks { MrmNcreateCallback = procedure WidgetCreated(UAI$_LOGFAILS); }; }; h~DWPROFILE34.BCK4 [DWP]]]\O'=OP"'VxD;139 1JOi)=pDS^?{Kl(/Y<K# "}n@5[wpDl\z>w<^d\l`+clac>L$t|@zy !~b_4y\ sP$yXK)QSwt %G#sd\ ]Yf=qi14$%(8QE;RSAmE8f>Ggh*fa3|5J|9xwY4A+b-@hj HEhf N*QIbR_mlsN5i^w6aAw * Otv3d/7 K{NVf>%" (ois5kY^kfCWHCm@hoBO /?NF=4%UOcx4FCi| f'se/ 7Rdn4,,13 Ot0q}]?yXneH}[Pkjv{OKihPݯlsu/p~lop>r ^IR;ZFfkGR~97`wz_El:W+ozhQ6}]4Avf [Z{**. j-X%` $f0#;`FlQkJ9gWoh}H,/}QbjA;'^rp&M &$.aLY HI<n`E4pw55!9-*PĜ \wVc)f h4"I$"A70SmH9)9t=)BQUQl`;bqDAez]S,=~*<~(E'@2!z[VTkr2.{g&p)ZPJQCZ "W4 ~#c4n8':p9!g.rS1XKFceuiQDn$17".r()im*#"*t{9& b$)1ikY[?Tj1`LTbN{Td0MxOM>LhFJB5A^Rqbs <; G3_t! F^K.kPL{Y ) B*z.bh7r|h$:)fBp1,JL4K$TsK&19_qAA5|D6&k*t'J@Sie \{3gQa&$lh `$h!&ps2>G uk<&fRvd׶'t'elG1w106cWU il`J8"{= "*(fj0Q/cV4 +]3TomJi4,|z^ "cRtka~r6X ."'-)1!"6 PY|o$ .2;s?Q3 !OY,PeoHN}~Bi\noV]}-=MFO|}jW*=n&fULjhDuH\>d)pf{uQ̡OdQcG2(uR,:wlhlV{vjwbk>Z{c:Hc~Zm}pOFt3<7TB 2 6D:NSQUO^j2 x#1LdcbacJr-.E @nQ% IzaMYT* "a{2p,F ScCbOL}zzZ@&M/z(  ЊCt{2o-z} +1:b7 w5Q0mC*?xuC$cX:6tyvTXF~1xD Y"$!@a>G&_BhV`edy?ODohb33T[U3cg3-cdGdh* ,'A^:PH62 1&'P3 jnkzbb#*:)bB78XZjamO5]2]'&.2*u_IcIpW8l; N> ' &%1Aup~l #sq@,:gld}H=@9jh*rEj$E]( ~z{WWht VDjKe/ErAOOm`l0'rZjޱdTSma|;p{POM`_\H0 P5l [(gr`Y~{Ug}z# B\_NF"38-k50%aIh51k44+^Ic}o)CCgdS~qs}8dbg?%4$HHcO>1#LA TsHF L3 w$1/+2#3aVzUk:? Z  ]yby MJ>kr5\HW87?f R@F28025dhN UgfWefk97 ]E,0 G  grqmeovt!{  \mNq"=!j_.a52  lYNy `$k_lkd_ldg-j^y0 }; 0 oov u!{ oM`"el destmmghn_>6.QkfnlIJMOshj# NobmAjN<  c` ^BXurPegKc-achtfnt ?XmAPTAIYA`p =o~]gMVWsw]iZkSPelfn>(d4]s*_Za4*? ?^_ ^Ajm#oӰgmVL9"[  %YeFU\.AiaL]}[EbW r/`a=r4(kUmNhNbB> u_E%<> TIqJk6{ Xrx Y0 N+ slU ;*/9Apkf}C ו.i}lxkJ 47wKxe "St|0Gjqs/_|Y_yC"lT}Ecj5~9%Bf"c binpi@NRsVT`bU glX&ZBR%n,"OsnMbeA3LNny8qF/aT0H|b}Nvh}uw9+ WA MLrQJK^HS _'b,=7sEU \>Xduw3Uxy$.iE Js8vANqf >-,w?tGV$^):&o,p_:cgy=~]  w?4N?wQEQGkgo[Jv\(2KV^UP 3"dm#yPWTun0@^! ("C# <3l(sj?I1=&{ imWcRrvs*i3vQ"Bq$#(YM|`2lGn;I_80249UbTTu)WfinWz?.VOe'neM4h$ 'rLDW?Z4j @J>(8oDlQ_YlgjWl_Rzr;$j\?t"Ro>HPaAUm+6.:y2#lt~c\h7:[v}zr^q"lloW!qLVO;@M BkGZ`Y.  ]/urn0PJoPBIjO-lW_dOf:9T_NUӆo7 >T#* oF|79`nsQLILphS\ t+,3\n7cTh> .>>+j FFijq Yz} n"6ZEY#4 Kxc]iDJ:U'FsCSo^#ZfIakYbkpiys=M4wxCa_Yj f`nd}dFbGJ)q VV}Rab3dc}&ne{am%=f0~G~Gkv^Ho?gj1`_O6 ,Ia3! 4tH8wj!A Viujyp]t{4ޔZ ckTqcvmT|im+ 9V\D ga]p2_Mi!*\ku9fYN%h<mce[ztyA",WlIfqq_my: EN5(SjThLH3<6Sa_>ixhXe@09a q { (cT;t_},Wq I/$ _ZfW9eli TbB/@Vd\3o *O2aVm} g:_qhR&+s~}/Im*:&d.hUxQr2:W.}lhk}MXfidT #(,^SM[i_ SW>jmRnY/Ir:;t+1dN^VwlS]Zux?}XAba Wfmg:P VJ[[dh'ZUy|Y3$ 8xqp;dS{ 2 imY*0}jf09oy{eNQf3ZortgcQKt7nbv7qpL~b)=.b5% 5*[dXlgUsji[H~Id LYw$LSSٍџJjS'.V!HyoO7 x_BG`l`Jj^' 8/^g1koM5jEhX~\xO)u\v)JEhVtW &9 . b& (u9I+cc:+;:tklaqb("(< 0L%tksZX 4 ArA*_e7nB,V$U_ "k  '5 XIXhclHcIL>J77~DVOosmCZffa]K.A{Fopsd{xp~aiz"SsV? X8_:3z<BWR xgFc}_GU? dg: R:PXL$, {Jj HDdS5OA@rVSJax9 9 LbT!_qZ3ZbV:) +2 +2^01CB  CZ[ix58 = 8#:Zfy1 BzgBS1`T!)'h 7O)Zu^he+|k |%@ UdakaM}>?(vLEFhpa64N](, LO3: 5HlC @u 8& 7<h ,]^F}3z>7g. aPnnlbjkIbl 7ylq^mW0PfEM~J>Kzo@nhLXKki:$CA1b"Hdh{hf oqezJ! Omf :IvYWeC1  +_y23(@:q? NrOQ38:Uf  >mtR{D.R]S9 j(Wn~2-Lr|bdm6RVya_aWrl,URb9(z96'8Ylim( @Tx*H I[oWkzlE"Oo}YfL'# Is+26 TLfsw8zjd\gFl|Hv[KHaf{1aY$v }Oox" %R( G+or}IbP" 3A2 L4+GW+qbV 1I{[Ytfo.og$RTV+.31TR`@HRe@=EVRd DIO+ Ednl$ y}{`6 gOez.glIKS.,na%)=? ShefnxD}f=AN*!?;`EFRT\GyDw!R@] `V;YCeni!A[o587 1D\b93~2t2w4mgOxeeH l`ee522 5)&R~zk{~59=@ Y}fQ-+^l}J}g x7}DYFP39"}xEVOF-vj`47,u&zd}OPue35 X*y{f;* spbVIX -l OIZ&li3w2QwidI)eMe^zh{h q:,+ "88#"+&est"Zj@MCxWFORMChHGN)Fl 2 |Lx2MV6?9)?Gs 3 ! TdF7&l$b$\#le7A\r!4 W&y 'u@.\c8; X11[\hehFRm=]NWx\fAbrf#Ta9E\|0`/ q]?'n4%`'~tmja~ B4'A0 shHpvtW1nUJ03Ak ?&v/23*1O{F\}#  {S07pSP(`hc!B0k9tl_?X`d[w% odNra".{ hPD"'9>fka.Ff3"!3]Oc}:i!mWzav E0ErDg!~s_uo g\l0 U\}eXpBbgT6),, PDH^m&!Vbn+1Hkf< z vm:BFdi wd) ZOggleNkhdsNjJsgz?e=$=jx^[[h!1,zjxy_I^y|fa*U+U#N%bQ@a vvfFw 8lu >dE0ZO7gl{y[Y3>lggdiBF_s,tR IWqsJ7Llsw$! R&r>!pRx^,&F'/; 64c, 3dD?jkx2Oy5'&ju= !R@Q*u  j]g{c :i`+\" hX6: m+DvFTUNu - wUkgd {a sz6h|!8~@# NVzW]FwD/ Ro-( 0 + ' XyJ Dn]b*+#C o='1mr+$<}K4#2g9F[0M-vWV"P}Z%hSxDI jKef,?ocue0"ciZ)b@UuAGEoE V`}[>?3Sw2TM1l%#$,& B2VVlXBppN%' I10 5}OYgq=VVm6!r@!Nes^H"'(k`hm*9*52$ -%bo~WyU0% OdMX y21/>P~25&K(]Jrml}Xbm nb]%\@r:.]gjf4 Emv(nfl~O`mri;;suajf~~Gmt`[c|WfoFfhzv}jh!/;wz.YTJYr6  9MMxpn,t['7 *7.6^d\;48#@rb6+9lJ&UH0[wdB*e'-bx[% uLA U&+J>X#>9v~#k'AQ rhXl]6+"9FCCG[$m(~o28)! JuTy|*F+Oqj1d! 6\A*21Bz/HeYVUEWOfG^ *5s  *z~{lkDYi$P  3`^L<XUzah*-GL|}8u1k#k|/BJ`|U3DywpxSYyWBp:4yC{l4d;E}jOaMru;"6QA#I4Q=Jdp3J ' &UV cigcL~d e$=UP~+fgI;LN |htxS0AUp $ d{97G*h|Pdyzyht0 z 2;k6j^8%-M(cIV1cs`j]K^1 %QVL8 \xCai9F"`^ , !8pBf9D'c,K1;?$b07!4TK ",TKmqd  IyXbim]xc0'x6wW UT5Qd' >[%ozSCaNRi2R{T( =  M~^q&KOB}A4g< HzmG-Id?bQ1iE9u-C2kq!;F|V.9*Ac]+c[hQNO+4/ Q]s=7f(=b [ bq8( ]j374:OY@!;N, >K^2%5NOc,fDO .k3fkRArn:8 2],fqmswZGbx$*Q}CFe#F:Z+/+Q&VZh|}02K_d' 8lVi9Y=MzD5k]N6 &FG|!VN"|dmbayer&pbroxu %46{L[yn ]l#;S/CQ~AB~:!> NcT'77` [:tmKkgIU 4]M0=-kjQ@^\,[m>TY(mUyHRd|"QQq#vB3g|CJa9ftf|)\wb#=%ʢW)jQWZAV !qXm``bm!`|t-$; &TP[f+`e rQ3o56L20_|G6'ymu}6E@;E`]r rW&qhTp2Xd}C/?!57 EOx9>60[`)6hklP?avI :pp5* a+Kjf2t2Rd]y6 k31Lhle[R?qveglCreat N Od`sx`gjxPn :1 < 瀶T zW]J2"[:efAl1 &EZT,9 IS: A%<&a;UfhQk!c ~hja!:OF9_8,/(> $pp{JfL<(FXXNCLNBB7 r$ 2IeZu0HP5"&, 6?(5(W^O_u f ;`kx`z>Skgk+g>vwozcD\xuewT8 ;kp;qZym W,hgz)f7A+ydwm'+4O`]}C(Zb%;o %t NPlG]"(Es- NtOxHf e ' c# ^4)$ev?Ogwe.~X{oxSe?Zxn`g * ٿ@M>Vfkgk @LUKbHgFhJQRWeP16_ |w>6;Y3q/44 1)XA#f+;[jUwg!ZHofZkO5 ;BDLgfey{$I!'$?9\O1'-8 ,>ANTJfJSf7[tUw=3 y:l 3KrbveL_iol[ufBG.;HKHlMjGWaejjjtgh`sB- ~*in=iegl[OfVrP?zUR M@ue?ePAxfbr+U`CYhD84fvS#]!.U@v`m$1. kU$ k,0K,Qrwi 8'o?I]3.P{mW6;<D5vk|B `bTbo 5,$>Tv X\h} C,aCk 7?:N\cl]szW*a "{/8qq Y\6\T{qtdhktUn&s]>!?OcKAmtLWj@izJ_df(Zblz%"Rht! \eN['<( Y)xGj{du~?.,7LX\igPVT9uy(QrsJPwcY5[G5+?| 8+UiCh8zfrM]7 eX~1v7|O PvfZc= y>, + 6reEWc*1r^&v B6a'S7ssf~>(Vu'mTw. J<#mtn9l(0.l/AEo]( Fqk{95)}h"֢G]+e]Y3l|B^QEha#)5#Qhn?:og;vng`|>+ BIjow/?3 t{ohSn^8(-R;VQ . vS,K,;V+BY3~FG(E% DxGbw7A6zwX+(xWh),#L>C?Vnpct6Q Axt: E{mWx):eBՍ͞]P_^. ZX h#Rb(!7 tSsy8%vWLozl> r`5.*hgBo/ZCG)66!@]QXQokoKa"nwo~U UGm uF(UUzb\@U^0!uoD'*(r^qZRa5@kThv]ua!1gq]Z_"S+U8 4{(Z g!pkm$l=30PjY{.Z$Mf'YrghjgAPFi+aGic! #mY+5 ukF4YzdH-sF_}\KY}. H[Cyeo*!;xn+-5EbppiO1au}ebli*yZ.S6#Ib|ao3!WtV7bE}sEQJ 9T8 %A{f%-4.Z9:@ A`gj^ ez 4oU8wbngrjX{?VB#Nyd?-|t_dr)x|^EAMZ"S^CYFp;}8D)<6=u+]W{,  [/0k > Hmta&(a=_XoH Z=qCZZ[7*z?`wN7$m4RQxr >/5;2?~6:e"w}f;bO"_urf*j{()~ #_BkuWr$[JcK |9yl:AmG?{^GIVT|umN!NkU+1tҔa ^aNkqe7a(@7- 3HOq*;/<+ 1xjs&Du}7 &~_n6#Xcj Ym3ECM:AWes1kH5b-rXg|  ~2^\Ja+-87o}bNMW^,brf5w;`l} Q~-/Tluq]}kiRzv5gWU 0$& K` p47+3u D[89`kn6yO r}HJ/034IOHgLXKEtSXlc4F9J5}1 Op6 *)'/b.m*5$},- ]jk(8*6ibosfbak$D >o6Eo+cqs~f"/%Yce5QlBGQK vEK=9we`uf=:M|hm, >GTwJ-=8>Bq]O>6xOD6KSO_Nqdr #N,Ma8whf4A1sy6rKbwId#08S"HK1x.x^?0&=L8%]C>foSb{)Yg&&[w[^.{@P67dJtdt7;1o[us7Z3 :il!#:7 gh{p;p: H89bu {= ioPj>?k{se|irXvc+<(2GtF= } P\sc|f:tE"Z jh FbDMoHuz_% /M 1:MmJq}|Je`zXx ^@_>^0)8V[eI<]@ hv!)./nGhJD_1!tSgk2j]]d6b;3!b)FuD/|r.AqTxQZt&=x\|LJjSvs_Mv^'p"d sRkb_[yjoCFA29h9F?9}qs@ky %#Zo[crI..won$#v#*]\d#l,PGi\MmsJPkztvD:bxt;2:/w@S^ZTEH1KlJeJ|$e>[<gL}mu.q{o+84zLL = HW<5_e; ]fDw,$d3 Jzypd*:0r+ Uqka?UzQrz1n ]F \j )=:oLmCcvj1^QjFnUaj[/sQuiawxsr| @%I lG'uuas#;4$NzK/5Q| NcU@ac>* 1j 3Xk_#[.=ojcfeafeH)?*N!e Wu&<b%,kBWTbp{u{w38 `~GiY>? ~)g53;}mFGOv$lL7 FYSh=!OR.5!GQ7gQx\ogeI*K .4"'Kd@gMDmgWb37%,Bp1kW}xJhxx&qt;&>h0VA:v))bvt Qm13\oZ/FjTrv|7a|#=?pNYS|dcb4YT|i)8= /4.)xKe41W@Sm6WInvo %c"?[^duyiT~FpCd,H}hT(j) ~Hq $1Ywzfl 2 h80 ;wbq=2_[EC@EU~ndubrwB: 1XWO"+LM3 = *8'54 = fgNog^c~h\ddFDXgv@Rblco|/RQ @="Ls^(usb`lYBXcel'8kU>e]BU\oCDZV lagsCM7* k4w( 8WeLNbhH=*$xF$3 {zcYa:]% < JZ vw-hbqo`jzo_b )7rebt{vqPh|Yf5:}$#YiK0=l{ Fupq9Ff= OIVoCNtJ:*5 Nn[?0e 5#/DvJ_c{8i>k-?Ia_Eyc.P\'%x#%lUyk"0<.Dvtt>[ '  @.| ##p [oaQexHky65[mT+MglkQbride$~"$g#spzwr @a?  [%<ok#,kRS=9,%klNM}6 /zbEdgPen"$z~'*e)'vY(Cktk=Ki``eyS{8 wc(,%KIMH_Px Mr8"= (chCvh*?!*#~Hgwud9k}$Ou 4vWEi14d2EMY]E`CK]tPo8~8l3V.luaEiRa(1HAI9>W,LNS-gWozteo!>QSr L[K| .6/ 9I% 7X}V^;!`>2E]Gs;KO2[laaermCEh0 2nkOq5 )cu4r(FQk}D|w}(HH G?+l~ QmARnht)DEqin6oKrD~fnUVqD|t f #prJ5!ts,DI[buIy-igVV kOrr*{ru}g\fntVnN Q`XhElk m A7sH,, ]lVrkCKYVgzBVVLwd!AIP`wB/~V]2917 F8 "bv,_4U(\tWVohzdCD`:.*R[21*CYSS=Jg$" RLJqwUaF:(,a'1w@HsgPFzplq;T{t;~jnN=q(rnsN]9<&r9lFGbh(U@Gcq(]fBu2^m ^o po{)x!L &^g'TU^qV*=wXh~!:/|Gp DddK{ro s}mr+! K(eR@VJ^;yCMZO2Z\ma#GUotmcC`zbEXKwLL7Nzfmpff:OREl0p]zMvQia;kh68(]i[U2/(b/% #c?H</Gp@r\y^o|Gmn+4b<;^q1X*AHX4!l,io Wd2*a7x:Qpm#1pLsBiK{Teg+mX/+eg$6^g3 v,l#w7G]ioKX>1<Gw% )1z>8Onjn`Fr\f#yH`kq1afnsnSn3pM;.^dVMh``+ 0*N@MaHyz(?%&~030(!P b2rJjz%-6 zj,&uexpoP2 ]Wot<,uADQV*:%gxW^@Jt\X5fdP)Ef}t]a.k ! ]z;" q,_ @*a~ai\cTwr1kM l^id}r3?fpsv1g_#{ Xmp-'G;%^|@l>_> $Aosj @[QaU|~me~B .Q~oo(PZhEC7zZ=4l&,($>r K2S]\'nEqn$*+r" Nu04 bhd7OQO,XE]T,AVL1 afkCN1 HrfYyr $d >WA_Fd ,SO_QMq;8<2J:TSHh; /688J?<muD=Cpni/mD{ 9(- |acltylc?{n|/8MV>&+ CO@ ;ygu~I+aT"C&0<] %FgHdVTV@ku8 Z&lcI6Wlrc^]BsgwvtY3 :[IAiL\kl{YFcl{a0H}T'3UEqC-qlBxRpzsgEd{e۹Faj(=-}MZK8pDfA=2Qw2 /;&KERMENiC`ej`YwB(/[~^`3_$Y? "+"oB`rwfJPx1#[\2hIQ1QDm#7n[' "CCo!p ;8iYk`MW$3e0L=gZyn'IGaYeG|F!F oMg|ue8:SgE)  t;Ta u6=];9h$-Zk[czcB"K2<t ZE ^r15(e|Ywulu:@4h/H. iu'$%1IaJ#/nM];c| 'w-2?|zz .= #Lg;Iz|%j}`gl x!-%Wc^lf@{Z* S(KhwuWX&G_i?nt+k7Fq"6 a 892vD0N=Uo*e-Tv+8]o{y6(/xlO&Um]hAa(?adEjn(*2mbvwLAmde(M-E!&&6"p 6Bsqw`bnN 5qW6^czH\%lR&I|v/z  HWc(2'nRhq+x qKW*vPDHX8<HMP)f=,+G>o+;"&-RwEbr3*YCWP4 F2+p  +,;eZQZiUO_Jilsa}9zn*%GMEQ~1kM V}w +U.ff }gGq)@aVjW91S CqOy"<7f+aSh+E]1CR`]f?"-9I~֣FNgln}qj: EY{a6l\B3zl `AdutJ[.VR8.E '>7)XWynbabm`3W'{hGkmeY@=gSN6'59-1n?FaPjzUKhr,D[^1#_&1 =-n$ ZRnnl}3+;O) Ak btacOkixpm}rcj9%TR1  TpOI.9%>nM}+>+7 "U#&l }; Ycnn{rols { XmT? md;bllsokj r6 YmToSuo>vdefbn; Ur XmToggleBut$&> ݜr ztwmn> m[o%sT>ynn d@f]cAeeU ilo; `u[u#, 7' wrw;y \amirottwod; md,suvtonk#`^dtac_Zu ton; h-<0@ey@+} d2 anose_b+twmy? /*  YmTofg<*76 3UWRB@(3TRONy?m]V&>*FXATuBto-s_ seta_Vuv|n. XoTfgl &@hijB,cve8o;Au}lj; eX}heTm-daTxm^@s&l YAqu{ S:GjB}wCe.E P.zBwttodD\C}nk3vgn3 h4-_:Ndee7Eqou+M Unz 9<0 /u\ԯ:n~HupUK,z7x;B/',1N 1l |f9 'otKNu@/Ia53R:cd}.~FLoVX=7OdtVOoBWȋWtuuROZO.J8.,1 /K8i,5P\_rj| &L`x70!q<ACO1 =dzg_0(d@< h`-.kl !K@1Giu1?jD-pu!`Ju5#%M++ a$3g4I+I?CdRCZr}Nk1ge=D<;{}_E 'M:s Kogm`>mvoCG " 'J._MROB 7^G(mb*7fvgCL15wٰ*:YJpG JNc}i..NGb1{mzX4;qd|6R'mRK; -Gh_ {XO 84tzgHj9aZJU57 Qf~Tx.T\ Jl<2 1)p/!W+FRASw;glm@5'U1HC,'3I6+n%++:M! V [GMdbh^tez: iOm`phnHdilt 6"^largjVhdkbit; | }; balWajs!y~ LrYJcrdctdCallJe/RK pqje#SsvsBs2a]lOQ!?Y *Wo  ^`eK]*ivij2$BoO~e% *S\WkVRcd*s2IPGQS   I"I>& ]qc`sn(xDvm!+kgqfHfoH*BcgU4zk^o4Udf%my*aCuvuvnY!,cw1Nof Lz_OftKy Xlda[:9 ,=immecagt{;EXRma wIIH0la:Jmp|h^>*% s+$7J!ML>.& KvMxztcXYW($lC3T5$R|im bpXuog4$ 4NRvsRW]HOZzK' 0)uPWrh+ol\i,jd .o'%3b,-if$]oUM#.4 )'Izpg*'/\kb0mSx8q4LzQDBVsr%MAoV M}.aWy]\*/pV`z^dqZ:TyT'~"=Wprz~HtetS5\)a&&K%FlSQ=&v[V'TrkL'K4vN?<WNt4-u PRW&:(>:-G<,Y_ [QudZCP1&?"qXsa$-04*>LQxbhgn9 f6- 2iFa?%.$&3VWQufotSlzFbD+  :^XygpY39 8n=d*87AbdhGHM=<7HATO?WkkMe x lZF;EG 8:*81?U`L7ym,TD3Sd@l\`~)RKeJ=3 o*r`tZxn|:Aaz)7Qdx|dYfwh|Ia"_)`ght11'g$^MKxfjl= <cUA]U^n!2$U~IOjq}`~w+[flioVRoz5Xkeek)w(3+ &I0 NNSg'9;.(!Uad{h6|Jzl =.=V>]EL[qDoH c_A%8 BA_E-t+3J3TqLkJSz|t@n !=]y%#$ NdWaE\b}2w2 Zf|<O^h7YKDP_]3GC\uix  jeSSTJS7E[Zr`$rqU~`m?:&D}A 1*bVm=[cr?/*]tTf~nHZdnl, $x{5, )e#EYU$3';/0iTm~6:;](e0 jjWhj@ȆJ{o!0?x QQM$ 7u1AT/fIYdHidj1u :[ `,:NHY?e[}'Rdn)@aUe<JCqH}G|_y+=HVhko4M5gh{ = F,bVd8 :m)4)_ `V@Zb{) gGel+,: P_|:"QoD 38U$$6:Km,Y{19/;cZ'+r(> ' Ye|nn=)J\( mB0'&e<_*4z ,^2LA`z D$8c  Oeg)"]40 3 z:LOq}Tf]Lxg|<-I#g]f>Mh]]S`eOn1~idUPE62p/KJMV"!\hle[,WIo 0UMVf*+Oq92dGd9) .> C7 v%<]mPano3Ja W|Seh^b2jhe4LTfz,4oJVDK{\3W!HTNrl\U@M X*~v|G)[`(:>kAt }_I Fxom|=M?QKz"WCO [y$-=%b&+ YL>  4BHT<-h^B7TWrk`Skdnl_H@]dKIF+( GRkjg|"U0*' me0k6-;'cA?ky9 y)cj3)Xqzy6T1oydUR %Mkb}V4 (UbT's?QfG0 >ISK <}5&Vjrn)@+ZTU=*+Mpf!<'nos: ZdWei/wi{l,Q} IEtilm^*Y{>/D70!D{^sNc@@wvl-$C#, \o(AW4fT 'AMb bvL2-9LP)IeilNxo)% ). ]E:E'> GkEETw Pj1 =EZldZ2Icgn]*(\-&\} yZMwvw/L18< EU,. t:IAV}5Woe}xDelM,n$~OoT7    '43^U Hnea 5M"l4!KOE1 =&ވ2yTk{nj6&w']ylI)@aVe dXaS~la0M=)jZ,VfhhbU:YE<&X$R|za~prKs#~X2vnl}<a[T <1IZSqVJ]0.>1^ahg?Bb -ELR4< :D5 q-D]rq}4c9 VKM3MgA >^66 k3t7RfGTF<ɹL@]Vhp_kdJu:7wU21#*0Lfe)#3 8H[)_fbAkne.Or`GAQ, >yrVeh/sr{J(:YPM{~&5': bjSX<6 V*7:  @!zC-V\4(Q[u+Qn[pnIbhg*   (QL EXUc'2F;@;}"^nolV"KxddC*!V 3P?EUr,22|3k |aVUmk = kĖS~\U*M1tŬAkfTsMI&u,K{Z~*fdpxamlBBAvWkkle"_oe}C*!)Q^lVyz/ >_U+TE_ GLL e{d>Oy)rt2Qd-  0Im)4)&-= + " =T*y{f;*G>, +t* F ;B 3-6_i{ig3jWh_^q~he|"xD";!>0 %:XhRX7*t``Yw q7PDhf=Ef'avS`bXP*")b +_IZ^4,{@f0"J E}H 1 &:_3Vi)4]Mxfj -I pJh6 )"U:@!)bV<2:hG>$/>h0Vw0fz_mmT <TegH  &!/ K[ ;Q^A5)V7hF~pJ TT5W_~x{j"Ukkldojjn/>]I6E) 4F*bV oTzI%s"[l2e.e0vjBVS?o/`k(gOui{lh, pev7- or`c =Ua&(5;4*79^n-b/* += :6~)mp2QdG #%3) .B\A$ g[ME]G^ *~[u`}),#*N:EIP{0 O[M40#;ɭg#3w2 tbL;LjVQQ9gyz_#=-36 ]=(Q & 6Td;DG&:Hvog})ey 61-<-KDS2kE8b{KjgVv.R#CUPU}lq|2+4_so`na,MsL^Kp@h@|nJ<=-?8Zkle)^|`n>Py/rQeGA@EUWfkh+uL # E$pA[MyJ{l9+MHDdz@MiaY4=0R@cToidh`lWWfkhj&je~l  !" t @^KQFOZDD./4l&K$j`qtPI:y6S'080(8 boX LxbbgN_IeYkiVDXF/iHa Mxd=,Dg@utmfM4UV,d=NL_Hm}dPOy)rw2. "TOa~$SL_ a1=JdSOdfk :}OkmelbLN3oinGHMYtTcgVa=)T:*bV}Y82jhe4_]s==Cx4 L-\tGojn;Zfek %TOO'`}{?M J''=>_le}O0/5nC3O_fWxeYx 0ںK\e-  n} P~K> oUOEP") 6N/l=%"|ktbh text tAILf+XmVk`Hs2tw2~hk^UfhZ>AlcwXfm1ke3A) ! f~}jgDen 'F*+Th+VCY<{+ E[**? :BXL$,p 7% ^m1nbS$% j[F:AnG13 C:^d}mqD1!;<&h?Acml.jhV& ""g\KN]ZS+4+ye <L#VN2HR9 8  n)")Tnlo"Yckz]> 39\mD]99Y|xcrxhKh BOIiP ejlm-+L5gu^qExek(.WCzI3 #6<+)!vfaZm>2,]ul 7)b+Or};[h ]OUk|}!V> bHT,r3pj}rk~m^rt!1T5#" ;>ISD`Vff(82 1>=!R992XdfC-9$ .4_$0rU~  )aaR~8hhekzd^phh&M?i[lh9w./4c\Lj!. e4Vg`sOdS&A|sqmONV;'d" 6{(#6dgf|g,MeV 3xvuEjquU? 9%V_L,  c:.H\N-V:c;71K4/ k b"Ve| eh=E!)>-APmw]KIBkYQUUekaV~ eO( 4Teɻ ' ! b~\f#~ɻ4_S * eJ;5hI'hQoTm[j7]:Y*[g _x\e  I +` $l6 EeaVdh* = Cy U{iR"PFwoX c f AazyrF{ZG;+  3" guRz"knpxmrduEp9 kP [G+G6MX^dnlf"ckz,Q n;"LA4)# :GnJh g8!9) CxN(1.7 EYI#_Pdh|oGG .%> F@M4Rz^\A>:~dx]s~-RRtemn8 _y8 '+ T2z!m-+ a/~hj5 AkE4>5&=/$hBRX1fPWayzM9tu}1(bV4 ,X ,4%:EIa?8}5g;sWcV}oO0)Q5 Aa)xh|d(üy}l"LR!u UOx<3"2::';7)a?0Nc]kykmPtlcT E49"6AONq:2Rdq : $9 &4L J^\\DR  rJ\?} pNNxL0\Riim?0ZLfWk},!ASl17_A1 Q0uF/vu2 V}kmwa~,_|vlvHU^9 O r$Hamo}XkjbU,zfrr0ks664D3&e)H{ +-?_<((zr~ ^L_EdRI`  PkglN$z6T\@KElMO+YqO*,+@ >Q;573 }<4T,-,g5EL iYBFrTnUS^i}fBUnh?i spjf>e HG8Q;:J>0rj) 0whB[q 5#"oav CVV~.fEzq.H)z ^dH@st?PLr`cmFYlov{k`r7nE/|CGv z5_/i}EV)|'a8FE@P.XYSocd@Zmq &Ue+( &nrtv'wD9~Ghr :boj54;A@*,(#6i|L]DX]W8 #%lh e^r+8 '%85i!mF$)%7Od+[pb)TverAnd8Jar55*81:;n=/X&>< K+6 _`MtE+! cCDb,gSs|Lr4lA>G[ov@2. HKZ/~f$2*!gr2ap6#x'ld>zSlIB^8c-zFHnm@/K9 :s h$  U='-A0rgR:@ y+dD9ddž+mDqpQhUZ4YI(vTSf|{s3T]dn]Ocg|qf|x'n-:o3g4< D!6X3 $1T&R@{0D :K ({$|[qv{E:& Sp\MIw` U  g%]34?;>1Ec_sI%+'Vkc'1;#@Ff"s?)cerlo]iD2JimISz*895zPq)Ns@2qr` {6UUghb6l_MLkMPg`/hs {\0"Lq_>;z'&b",SM^M@@oW~dacb \?6NCkjPi~vtq3%8bCZ0 { )F9*p`0Dq &D.Pr^B 1#OwAMGaDqUojmmceY=|Ar]Pqm |qm&l.on:)eDhb9,mgN= .-@ q w` ^QMLl^Rgc)5wDEYPjfWq!=]od\[elVMegmw ExxiW NJ} jvFb C@'3S^.LbBi`zklUuo'/N |?wfFS^uw&xU@4eUw W i[[6;|r&7%FI8>4 1lb 9rfuw<lNhqU-.%.N4&##%;yO{((/ -uvep )u[m+0E+ 5Vx<9bpbj{05nis {F^ wX `pvdnm@$#aqiv"vQGt}:,CXG8j>\kJ D%VEs9cD 3 J[c22LuAw UyqcX3+f0`XoG"8U5;96;)vYx\BM.G h&%w*5&!,!4 ZkNvV8kQ a\S)d{xenBQBZX5d[LZ((=*61]j_`Hgm+ K/hhpb 1R81c1fe IfylJngQs|r!: N>47(9 q\t^UfvsxYxw?yED YwgcQQDqD]d$ Q|CDLwa$( p7 "d\WQH^AJmO{7GUJEbj -Y^~<.l}O882j8$EtRcUQpYcZf_11&wr&^soV+ . {|BS.L\"[% Wh}U%t,=3#o43-_6TF-:Gmti6s`11-ucinUx=8TY\S(ntwe[zf <=l+}b~rӁQNuq weLW^?edehiOE6hi ZB5+Q 2,)xqLnf+ E8^]nN^ SLYGeA7npQy|gkb!qeN # Zpa%7 3.*!YAPNAU ^0-2(v)?iA^B uOvktQ}DgkOvLC?*%<[ /@./_"!1ROKjbw_PHjKX >i , grlT LDkgfmmY{UMTUYYON&&"zVwW!\XC'{BffgJD}xE~ H|=|MU s {jc0zyzc{pR%9IJE%D`w=+:%7It`NO[Th{VyOhhXUn(99QY)z:R@_"VPEQhX0\^fft#  `uPJ4LkXsa:o|F`Si{v m 81Vjh9FQ#>5;= +>)`|hjh%:J`Y\de2RfE^{ LXlalse; }; callbacks