* copyright (C) 1984-2019 merrill consultants dallas texas usa



Yüklə 28,67 Mb.
səhifə353/383
tarix17.01.2019
ölçüsü28,67 Mb.
#98988
1   ...   349   350   351   352   353   354   355   356   ...   383

nor the PDB.SMFINTRV data set):
APPCATR ='TRANSACTIONS*SCHEDULED*BY ASCH'

APPCCN ='TOTAL*CONVERSATIONS*(ACTIVE+DEALLOC)'

APPCCNA ='NUMBER OF ALL*CONVERSATIONS*ALLOCATED'

APPCDAR ='BYTES OF DATA*RECEIVED*BY THE TP'

APPCDAT ='BYTES OF DATA*SENT*BY THE TP'

APPCREC ='RECEIVE CALLS*ISSUED*BY TP'

APPCSEN ='SEND CALLS*ISSUED*BY TP'

APPCTAC ='NUMBER OF*ACTIVE*CONVERSATIONS'


d. The JCTJOBID field from which TYPETASK and JESNR are

extracted has changed with APPC. Instead of three

characters JOB/STC/TSU follwed by the five digit JESNR

the JCTJOBID will contain an "A" and a seven digit

number, which MXG stores in TYPETASK and JESNR, but

the maximum JESNR is 999,999 because the first of the

seven digits is always a zero. You should check if

any reporting programs use TYPETASK for selection, and

to ensure they are coded robustly so they will not

fail if TYPETASK='A' is encountered. The JCTJOBID

change was not compatibly implemented and changed

VMAC6,VMAC30,VMAC32,VMAC26J2, and VMAC26J3. SMF

records use the fieldname SMFnnJNM for the eight byte

JCTJOBID field. This IBM change in that field could

also affect "banner page" printing code in your SMF

exits.
3.New dataset TYPE33_1 records APPC Transaction Program,

"TP" resources, for each TP work scheduled by ASCH. Each

type 33 is an APPC event, with the same APPC counts that

are totaled in the type 30, above. In addition, times of

receipt, scheduling, and execution of the TP are recorded

as is the CPU times, I/O connect time and EXCP counts for

APPC TPs. This new data is the resource record for APPC,

and will be used instead of the type30s for APPC resource

accounting, performance measurement, etc. The variables

in this data set from the type 33 subtype 1 record are:
ACCOUNTn='ACCOUNT*FIELD* n'

APPCCNAS='CONVERSATIONS*ALLOCATED*BY THIS TP'

APPCCONS='NUMBER OF*CONVERSATIONS*FOR THIS TP'

APPCDARS='BYTES*RECEIVED*BY THIS TP '

APPCDATS='BYTES*SENT BY*THIS TP '

APPCRECV='RECEIVES*ISSUED*BY THIS TP'

APPCSEND='SENDS*ISSUED*BY THIS TP '

CPUSRBTM='CPU*SRB*DURATION'

CPUTCBTM='CPU*TCB*DURATION'

ELAPSTM ='ELAPSED*DURATION'

EXCPTOTL='EXCPS*FOR*THIS TP'

INPREQTM='INPUT*REQUEST*DURATION'

IOTMTOTL='DEVICE*CONNECT*DURATION '

LENACCTn='LENGTH OF*ACCOUNT FIELD* n '

LOCLLUNM='LOCAL*LU NAME*FOR THE TP'

NRACCTFL='NUMBER*ACCOUNT*FIELDS'

PARTLUNM='NODENAME*LUNAME*OF PARTNER'

QUEUETM ='SCHEDULER*QUEUE*DURATION'

RACFGRUP='RACF*GROUP*IDENTIFICATION'

RACFUSER='RACF*USER*IDENTIFICATION'

REQDTIME='REQUEST*RECOGNIZED*BY FMH-5'

SKEDTIME='REQUEST*PLACED ON*SCHEDULER QUEUE'

SMFTIME ='TIMESTAMP*WHEN RECORD*WAS WRITTEN'

SYSTEM ='SMF*SYSTEM*ID'

TPCLASS ='TP*CLASS'

TPNAME ='TP*NAME'

TPNDTIME='TP*EXECUTION*ENDED'

TPROFILE='TP*PROFILE*NAME'

TPSKEDTY='TP*SCHEDULER*TYPE'

TPSTTIME='TP*EXECUTION*STARTED'

TPUSECNT='USES OF*THIS TP*BY THIS USER'

TPUSRTYP='TP*USER*TYPE'

ZDATE ='ZEE DATE*ZEE OBS*WAS CREATED'
The following time sequence is unvalidated but is thought

to describe the events for a standard TP scheduled event:

INPREQTM QUEUETM ELAPSTM

Waiting on Waiting on Executing

Scheduler TP queue

|_____________|_______________|____________|

| | | |

REQDTIME SKEDTIME TPSTTIME TPENTIME



Request Placed on Execution Execution

Received TP's queue Started Ended


4.New variables were added to TYPE4345 for JES2 start

options:
CONSOPT ='CONSOLE*OPTION*SPECIFIED?'

LOGOPTN ='LOG*OPTIONS*SPECIFIED?'

QUIKSTRT='JES2 DID*QUICK*START??

RECNFGOP='RECONFIG*OPTION*SPECIFIED?'
5.New TYPE70 variables APPCMIN,APPCMAX,APPCAVG for the min,

max,avg number of APPC address spaces active, and twelve

distribution buckets APPC00 thru APPC11 count the percent

of time when 0, 1-3, ... over 36 APPC address spaces were

active, paralleling the similar set of fifteen variables

for the existing other three types of address spaces for

BATCH, TSO, and STC addresses.
6.New TYPE71 variables count blocked pages in or out, the

PWSS (Primary working set) pages migrated, and the number

of ESTORE frames that were freed without migration:

ESPGFRNO='ESTORE FRAMES FREED W/O MIGRATION'

PGBKtoin='BLOCKED*PAGES*PAGED IN'

PGBKtoou='BLOCKED*PAGES*PAGED OUT'

PWSSMIIN='PWSS PAGES*MIGRATED*FROM ESTORE'
7.Old TYPE72 variable WKLOAD no longer exists.

Eleven new variables, including the long needed new

ESA CPU times, and the ESTORE residency time (which

can be compared with the existing variable ACTFRMTM,

previously discussed in NEWSLTRS member) to estimate

usage of ESTORE frames.

ACTESFTM='EXPANDED*STORAGE*RESIDENCY'

ACTFRMTM='ACTIVE*FRAME*TIME'

BLKSAUIN='BLOCKS*PAGED IN*FROM AUX'

BLKSESIN='BLOCKS*PAGED IN*FROM ESTORE'

CPUHPTTM='HIPERSPACE*CPU TIME'

CPUIIPTM='I/O*PROCESSING*CPU TIME'

CPURCTTM='REGION*CONTROL*CPU TIME'

PGBKESIN='BLOCKED PAGES*PAGED IN*FROM ES'

PGBKTOIN='BLOCKED PAGES*PAGED IN'

PGTOESIN='PAGES*PAGED IN*FROM ESTORE'

SYSTRNTM='SYSTEM*TRANSACTION*TIME'
8.New TYPE73 variables describe IODF name and creation:

CFGCHGFL='SMF73CFL CONFIGURATION CHANGE FLAGS'

CHPADDED='CHANNEL*PATH*ADDED?'

CHPDELET='CHANNEL*PATH*DELETED?'

CHPMODIF='CHANNEL*PATH*MODIFIED?'

IODFNAME='IODF*NAME'

IODFSUFX='IODF*NAME*SUFFIX'

IODFTIME='IODF*CREATION*DATETIME'


9.Type 74 record contains the same fields added to the type

73 listed above, but the variables are NOT kept in TYPE74

because I don't think the 44 bytes of IODF name needs to

be kept in each device segment of MXG's TYPE74 dataset.

If they really turn out to be needed, I will create a new

data set, one per type 74 record, instead of one for each

device. The code is in place, so the variables do exist

and are available in EXTY74, if needed.


_______ _______ ________

|Offset |Offset |Offset | SMF Type 33 APPC/MVS TP Accounting

|to POF |to IOF |to UOF |

|_______|_______|________|

Product Section:

____________________________

| |

POF: | "ASCH", MVSLEVEL |



|____________________________|

TP Identification Section:

_________________________________________________________

|Offset | |

IOF: |to TPO |TP Class, Standard/Multi-Trans, TP Profile Name |

|_______|_________________________________________________|

\

\

\



\ TP Program Name Section:

\ _______ _______________________________

| | |

TPO: | Len |TP Name (up to 64 characters) |



|_______|_______________________________|
______________________

/ \


TP Usage Section: / \

_______________ _______ _________ _______ \

| |Offset | |Offset | /

UOF: |RACFUSER,GROUP |to AOF |Usecount |to TDO | /

|_______________|_______|_________|_______| /

/ /


/ /

/ /


/ /

_________________/ /

/ /

/ TP Usage Accounting Section:



/ ______ __________________

/ | |Accounting fields |

/ AOF: | Len |(up to 175 char) |

/ |______|__________________|

/

/

/



TP Usage Detail Section

_______ ___________________________________________

|Offset | |

TDO: |to TSO | Sends,received,data,conversations,TCB,SRB |

|_______|___________________________________________|

\

\



\

\ TP Usage Scheduler Section

\ _____________________________

| |


TDO: | LLU, PLU, Four Time Stamps |

|_____________________________|


10.Type 78 record contains the same fields added to the type

73 listed above, but the variables are NOT kept in TYPE78

because I don't think the 44 bytes of IODF name needs to

be kept in each subtype 3 segment. See above note.


Change 08.223 Deaccumulation of EXCP count from type 14/15 records by

ANALDSET this MXG analysis routine did not handle concatenated PDS

Jan 25, 1991 libraries, noticibly causing JES2 job's PROCnn DDNAMES to

have incorrectly high EXCP counts in this analysis. The

BY list in lines 017300 and 017600 should have had the

variable DSNAME inserted between DDNAME and UNITADR:

BY SYSTEM READTIME JOB STEP DDNAME DSNAME UNITADR SMFTIME;

Thanks to Lee Hollis, Lowe's Companies, Inc, USA.

Thanks to Dee Ramon, Mutual of America, USA.
Change 08.222 Default SMF record IDs in IMAC.... members for User SMF

IMACWSF records are intended to all be 512 (an impossible value)

Jan 25, 1991 but some IMACs slipped into the library with a different

value; if your site had a record of that value, the test

of JCLTEST could cause an "INPUT STATEMENT EXCEEDED "

STOPOVER condition. All IMACs for User SMF records now

have the value of 512, as they should have all along!

Thanks to Glenn Hanna, Textron Defense Systems, USA.


Change 08.221 SAS 6.06 Compatibility. Mixed case from PUT function.

MONTHBLD The DAY=PUT(TODAY,WEEKDATE3.); may create mixed case in

Jan 25, 1991 the character variable DAY under SAS 6.06, depending on

several SAS 6.06 options; the first letter is upper case,

while the second and third letters of the name of the day

are lower case. Since the subsequent test is for caps,

the test fails. Line 005200 is now replaced with

DAY=UPCASE(PUT(TODAY,WEEKDATE3.));

to force DAY to be uppercase, independent of the sites

options for case.

Thanks to Barry Lampkin, Blue Cross Blue Shield of Mass., USA.

Thanks to Debora Reinert, Nordstrom, Inc, USA.


Change 08.220 DCOLLECT variable DCDBKLNG should have been multiplied

VMACDCOL by 1024 (like the other adjacent values) to convert to

Jan 25, 1991 bytes for printing by the MGBYTES format.

Thanks to David Stern, CSX Technology, USA.


Change 08.219 Hiperbatch statistics added to the TYPE64 data set were

VMAC64 not kept in the correct dataset. The line containing

Jan 24, 1991 the six new variables was mis-located in the keep list

for TYPE64X (which is output before the variable are

input) instead of the correct keep list for TYPE64.

Variable JFCBDSNM was spelled incorrectly as JCFBDSNM.

Thanks to Michael Enad, Dun and Bradstreet, USA.
Change 08.218 Validation of PreRelease uncovered minor corrections.

IMACPDB 1.Line 029800 in IMACPDB should be _FREQ_ vice _FREQ

IMACACCT (but no error was set as _FREQ_ only exists in 6.06

VMAC110 and the missing underscore only caused _FREQ_ to be kept.

Jan 21, 1991 2.Comments in IMACACCT were enhanced to suggest that the

unwanted LENACCTn variables should also be dropped, and

that meaningless SAS "393" warnings print on the log.

3.CICS 3.1 processing was not protected for an unexpected

Statistics subtype. It did not fail, but the messages

produced were unclear. Now it is protected.

Thanks to Norbert Korsche, OMV-AG, AUSTRIA.
Change 08.217 Support for Candle's EPILOG for MVS Version 300 SMF "type

EXEPMEP 180" data record is added by this user contribution.

EXEPMIO Three EPMV.. data sets are created:

EXEPMEQ EPMVEP - The fixed workload information and the wait

IMACEPMV statistics for the two kinds of workloads,

TYPEEPMV PG (perf groups, periods, total sys), and

VMACEPMV AS (TSO, JOB, STC). Variable SM180SUB shows

Jan 16, 1991 which of the 10 subtypes created the record:

TOTS - all perf groups combined

PGN - all periods of a perf group

PGP - a single period of a perf group

BAT - end of step for batch address space

TSO - end of step for TSO address space

STC - end of step for STC address space

bat - end of interval for batch ASID

tso - end of interval for TSO ASID

stc - end of interval for STC ASID

RSRC - EPILOG captured data (not from RMF)

EPMVEPIO - I/O counts for each device with counts.

EPMVEPEQ - ENQ counts for each major name with counts.

Thanks to Billy Westland, Candle Corporation, USA.

Thanks to John Ebner, Litton Computer Services, USA.


Change 08.216 Both SIO73CNT and SIO78CNT are missing in RMFINTRV for a

RMFINTRV 4381/3090/ES9000 processor, because I/O counts moved into

Jan 16, 1991 different records for different processors and software.

Mar 13, 1991 Insert after line 070200

DATA TYPE78; SET PDB.TYPE78;

(so a PDB can be on tape), and expand the SET statement

in line 070400 to read:

SET TYPE73P TYPE78 (IN=IN78) PDB.TYPE78IO (IN=IN78IO);

and insert new line after 070700:

IF IN78IO THEN SIO73CNT=IOPACTRT*DURATM;

to now populate variable SIO73CNT to contain total SSCH

count to all channels from the appropriate data set.

Thanks to John McDonald, Arizona State University, USA.
Change 08.215 If only DB2 Report PMLOK03 was requested, a 309 error is

ANALDB2R received. Line 076980, variable QW0054AI should have

Jan 16, 1991 numeric 0's instead of alphabetic o's. Line 077020,

variables MINTIME and MAXTIME need to be added to that

RETAIN statement.

Thanks to Elliot Weitzman, Oryx Energy Company, USA.


Change 08.214 "INVALID THIRD ARGUMENT TO FUNCTION SUBSTR" error message

VMAC6156 from syntax WANT6156=INPUT(SUBSTR(SYSPARM(),10,7),7.);

Jan 15, 1991 when the SYSPARM value is less than 17 characters. This

soft error can be eliminated by storing the value of the

SYSPARM() function into a variable, because SAS sets that

variable's length to 200 bytes. The variable is then used

in place of the subsequent SYSPARM() references. Lines

012200 thru 012600 now read:

IF WANT6156=. THEN DO;

SYSPARM=SYSPARM();

IF SYSPARM EQ: 'TYPE6156-' THEN

WANT6156=INPUT(SUBSTR(SYSPARM,10,7),7.);

ELSE WANT6156=-1;

RETAIN WANT6156;

END;
Apr 1 update. Now I find out from SAS that this message

only occurs in SAS 6.06 if ZAP Z6060627 was installed,

and that zap is now marked REMOVED by the Institute).

But I'll leave my robust circumvention in place!

Thanks to Debbie Matic, Commercial Union Assurance of Canada, CANADA.
Change 08.213 This example shows how new-style macros can be used in

Book place of the old style _DAY macro and INSTREAM DD.

Jan 15, 1991 The example in the Chapter 35 to copy the DAY PDB into

the correct "Day-of-Week" PDB uses a temporary dataset

(pointed to by the INSTREAM DDname), and writes out an

old-style MACRO named _DAY that contains the character

name of the day of the week, which is then used as the

DDNAME into which the daily PDB will be copied. That

example has been updated and commented below:
//INSTREAM DD UNIT=SYSDA,SPACE=(TRK,(1,1))

OPTIONS NOTITLES;

DATA _NULL_ ;

FILE INSTREAM NOPRINT RECFM=FB LRECL=80 BLKSIZE=8000;

TODAY=TODAY()-1; /* get yesterday's date */

WEEKDAY=' ';

WEEKDAY=PUT(TODAY,WEEKDATE3.);

PUT 'MACRO _DAY ' WEEKDAY $CHAR3. '%' ;

RUN;

%INCLUDE INSTREAM; /*read macro just created*/



PROC COPY IN=DAY OUT= _DAY;
Some users have been directed by SAS technical support to

replace the old-style substitution macro with the %MACRO

facility. One recommended implementation is:
DATA _NULL_;

TODAY=TODAY()-1;

DAY=UPCASE(PUT(TODAY,WEEKDATE3.));

CALL SYMPUT('_DAY',DAY);

PROC COPY IN=DAY OUT=&_DAY;
More later.
Change 08.212 This change deletes MXG member XMACEPIL and puts support

VMACEPIL for EPILOG CL1000 back in member VMACEPIL. Change 8.019

XMACEPIL was applied to member XMACEPIL, which was then copied in

Jan 14, 1991 to VMACEPIL. It is believed to support 4.4.0, 4.5.0, and

4.5.1 versions, but test data is not at hand.
Change 08.211 New variable INVOKSAS in TYPESYNC dataset from user SMF

VMACSYNC record produced by SYNCSORT now identifies if this SORT

Jan 14, 1991 was invoked by the SAS System. Note that SYNCSORT's

enhancement PTF number EW2903 must have been installed by

your SYNCSORT installer before this field will be "Y".
Change 08.210 DCOLLECT migration/backup tape data sets datetime values

VMACDCOL UMTIME or UBTIME were wrong. Both occurrences of JULDATE

Jan 14, 1991 must be changed to DATEJUL (lines 037800 and 040000).

In addition, the value written in the record by IBM is

apparently wrong itself, until you install APAR OY37378.

Thanks to Derek Cespedes, Florida Power and Light, USA.


Change 08.209 TSO/MON variable READTIME is missing in PreReleases 8.3

VMACTSOM thru 8.7. Change 8.104 to correct CA7 corruption of the

Jan 14, 1991 first byte of Reader Date worked ONLY if for corrupted

records; normal, non-CA7 records produced missing values.

In line 040110, remove the DO; and delete line 040130

(containing END;) so that READTIME is always created by

the INPUT function.

Thanks to David B. Adams, National Life of Vermont, USA.


Change 08.208 IBM SMF APARs have added new data fields.

VMAC23 1.SMF now flags when the CPU timer goes bad in a new field

VMAC30 in the type 30 timer section. APAR OY24857 applies.

Jan 12, 1991 New variable CPUERROR (which was formerly a reserved

field) will have hex 0000 (APAR not installed), hex 8000

(APAR installed, no error). The subsequent bits are on if

the corresponding CPU measurement value (there are now

seven CPU measures) was defective and set to zero in this

record. The APAR also eliminates an OC9 ABEND of SMF.

2.SMF now flags a step cancellation due to NOT CATLG 2 or

NOT CATLG 7 condition (one bit for both reasons), but

only if the installation specified JOBFAIL(YES) in ALOCXX

SYS1.PARMLIB member (which ABENDs the NOT CTLG JOB). APAR

OY38977 applies. IBM's bit 11 of SMF30STI is used, and

MXG ABEND will contain NOTCTLG if the step was cancelled

due to NON CATLG condition. In addition, new variable

TERMIND contains all 16 bits of the step/job indicator

for detail examination in your programs, if needed.

3.SMF type 23 record (buffer statistics) is expanded to

better describe the SMF writer's use of its memory. APAR

OY27449 applies. New variables created in TYPE23 dataset:

CURALLOC='SMF BUFFER*CURRENT*ALOCATION'

HWMALLOC='SMF BUFFER*HIWATERMK*ALLOCATION'

MAXBUFSZ='BUFFER*MAXIMUM*LEVEL'

MVSLEVEL='MVS*SOFTWARE*LEVEL'

PERALLOC='INCREMENT*PER EACH*ALLOCATION'

WRNBUFSZ='BUFFER*WARNING*LEVEL'
Change 08.207 MXG 8.7 only. Several test sites noted that //SOURCLIB DD

JCLTEST6 JCL statement was missing from the FORMATS step, and the

Jan 12, 1991 SMFSMALL step's //SYSIN DD DSN=MXG(UTILGETM) was replaced

with a //SYSIN DD * statement and a %INCLUDE.


Change 08.206 SAS 6.06 Compatibility, only in MXG PreReleases thru 8.7.

UTILGETM The UTILGETM program, used only during installation of

Jan 12, 1991 MXG (to build a small SMF file for testing), will put SAS

6.06 (even at the October maintenance level) in a 100%

CPU Busy loop, causing a System 322 ABEND. The error is

in the processing of the %VMXGVBS macro which was added

by MXG Change 8.174. This macro generates different DCB

attributes for the FILE statement (CMS can't create VBS)

so new MXG users under CMS did not die during testing.

The %VMXGVBS macro added to UTILGETM was almost exactly

the same as the %VMXGLRC macro for the INFILE statement

in the _SMF macro. The differences were that %VMXGVBS

sets only the LRECL parameter of the INFILE SMF, while

%VMXGVBS sets LRECL, DCB, and BLKSIZE options, and that

their references were located in different positions in

their respective INFILE and FILE statements. Over 50 runs

322 ABENDed before the %MACRO compiler error was found to

be circumvented when there is a "parameter=value"syntax

preceding the %VMXGVBS invocation. Adding COL=COLOUT to

line 01900 in UTILGETM circumvents the loop. This works:

FILE SMFOUT COL=COLOUT %VMXGVBS;

This didn't:

FILE SMFOUT %VMXGVBS;

SAS Institute now knows the loop occurs only a %MACRO on

a FILE or INFILE statement (and also only if the %MACRO

itself starts with %IF), and are working on the problem.

SAS Zap Z606xxxx, available Month dd,yyyy corrects this

error in the SAS 6.06 %MACRO compiler. Tracking 163046.

Thanks to Barry Lampkin, Blue Cross Blue Shield of Mass., USA.

Thanks to Grady Tart, McM Information Services, Inc, USA.


Change 08.205 PreRelease 8.2 thru 8.7 only. The label for CPUTCBTM may

VMAC110 say "SUM OF THREE CPU TCB TIMES", but it is still the

Jan 11, 1991 CPU TCB TIME. (The CICS 3.1 support label overrode the

original label).

Thanks to Raymond Zieverink, Belk Stores Services, USA.
Change 08.204 DB2ACCT variable QXNSMIAP was misspelled as QXMSMIAP. The

ANALDB2R correct variable QXNSMIAP was added by this change, but

VMACDB2 the original variable is also kept so that any reports

Dec 20, 1990 that you've written won't fail. Please correct in your

report programs and eventually QXMSMIAP will be dropped.

Thanks to Ron Root, Oryx Energy Company, USA.


---Changes thru 8.203 were included in MXG PreRelease 8.7 Dec 18, 1990--
Change 08.203 WSF2 record from RSD newest version 3.3.4 has a section

VMACWSF mis-located two bytes to the right and truncated at the

Dec 17, 1990 end. However, MXG code had not been validated with a real

record from that version, and a nine-bit bit test only

failed when actually executed, and the overlay of two

fields in the WSF2 DSECT was missed in MXG coding. The

two MXG oversights were corrected, and the logic was

expanded to support both the correct and incorrect record

format. Until maintenance exists from its vendor, the

value of ACCNPELT will be incorrect, and usually zero.

Thanks to Dennis Mahlubam, Aetna Life & Casualty, USA.
Change 08.202 MXG didn't calculate converted RMF data (3.5.1 to 4.1.1).

VMAC79 The equation for R791FMCT in line 027800 should be

Dec 16, 1990 ELSE R791FMCT=R791RSV1 + R791RSV2;

Note R791WSS is missing here, since SMF79ASL is only 60.

Thanks to Miller Dixon, Continuum, USA.
Change 08.201 -VM/XA Monitor records appear to have an IBM error. In the

VMACVMXA VXUSEINT record the HFQUCT (Hi Freq Sample Count) resets

Dec 16, 1990 itself erratically. MXG tries to capture the CPU time a

VM machine used between a logon and the end of the first

interval, and used HFQUCT in that heuristic algorithm.

However, that logic is now invalidated by this IBM reset

and the user interval record is no longer output when a

logon event is detected. The actual change was to

comment out the two lines "IF NOT (FIRST.BEGINMTR OR


Yüklə 28,67 Mb.

Dostları ilə paylaş:
1   ...   349   350   351   352   353   354   355   356   ...   383




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin