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



Yüklə 28,67 Mb.
səhifə270/383
tarix17.01.2019
ölçüsü28,67 Mb.
#98988
1   ...   266   267   268   269   270   271   272   273   ...   383

Thanks to Rick Salazar, City of Long Beach, USA.


Change 16.040 Corrupted type 42 subtype 6 caused INPUT EXCEEDED error.

VMAC42 The record has SMF42PDL=DFSMSV1R and SMFPDN='DF TP' but

Apr 2, 1998 the rest of the product section is trash and the record

is longer than its triplets indicate is should be!

The INPUT EXCEEDED occurs because MXG did not validate

that the offset field in the PRODUCT section was less

than the record length. To detect and delete these

corrupted records, insert this circumvention:

IF OFFJDDS+LENJDDS GT LENGTH+1 THEN DELETE;

after the statement LOOP42:

The actual MXG change was more extensive, and will

produce a diagnostic message on the SAS log that the bad

record is being skipped.

Thanks to Melanie Floyd, United Parcel Service, USA.


Change 16.039 Year 2000 only. READTIME in TYPE6 will be 1900 for a job

VMAC6 read in year 2000. MXG's protection for CA-Dispatch's

Apr 2, 1998 corruption of the first byte of julian date was resetting

May 14, 1998 the century bit to zero. The statement in VMAC6 could

have been changed from

IF SUBSTR(READCADI,5,1) GT '00'X THEN

SUBSTR(READCADI,5,1)='00'X;

/*CA-DISPATCH CORRUPTION FIX*/

to

IF SUBSTR(READCADI,5,1) GT '01'X THEN



so both year 2000 and CA corrupt records can be processed

correctly. Following text revised May 14, 1998.

However, the actual change that I made was to remove the

protection for the CA corruption, since their current

versions must be installed for year 2000 anyhow, and the

MXG heuristic protection is just another opportunity for

a future error! This error would also have affected

BUILDPDB; the print records would not match the READTIME

of the other job records, so they will create separate

obs in PDB.JOBS with the 1900 date and only print

resources, while the real PDB.OBS with 2000 date will

have no print resources counted.

Thanks to Arzina Merali, Alberta Public Works, CANADA.

Thanks to Joe Zelyas, Alberta Public Works, CANADA.


Taught 3-day class in Dallas, Mar 30 - April 1, 1998.
Change 16.038 Cosmetic. Messages about INVALID SUBTYPE VALUES that

VMXGGETM seemed endless are now printed only for the first five

Mar 27, 1998 records in this utility used to create SMFSMALL file.

Thanks to Joe Zubras, Pennsylvania Hospital, USA.


Change 16.037 Cosmetic. Format $MG028ST was created by Change 13.072,

VMAC28 but was supposed to be used for variable LSCDSTYP, but

Mar 27, 1998 that was only accomplished now, with this change.
Change 16.036 Nine instances of "=F" must be changed to "@" in this

ANALMULT example report; different character translation tables

Mar 27, 1998 were used during transmission of this member.
Change 16.035 Year 2000 Support for AS/400 was incorrect. There are 44

VMACQAPM instances of IF YY GT 0 THEN ... that must be changed to

Mar 27, 1998 IF YY GE 0 THEN ....

and the four lines preceding GDES1=MDY(MO,DD,.... that

input variables YY MO DD and CC with informat &NUM.n.

need double-questionmarks between the variable and the

informat, eg., YY ?? &NUM.2.

Without this fix, the date variables in the year 2000

(only) will have 1960 dates (Because their value is zero

and the zero SAS date is 1960.

Thanks to Mike Wroot, SAS UK Customer Support, ENGLAND.

Thanks to Paul Hill, Midland Bank, ENGLAND.


Change 16.034 Support for DECnet/SNA DTF SMF records creates nine new

EXDECS01 MXG datasets:

EXDECS03 Subtype Dataset Description

EXDECS04 01x *DECSSTAR DECNET/SNA ADDRESS SPACE START

EXDECS05 03x *DECSBEGN DECNET/SNA SESSION BEGIN

EXDECS06 04x *DECSEND DECNET/SNA SESSION END

EXDECS07 05x DECSDIR DECNET/SNA DIRECTORY REQUEST

EXDECS08 06x *DECSALOC DECNET/SNA FILE ALLOCATION

EXDECS09 07x DECSOPEN DECNET/SNA FILE OPEN

EXDECS0C 08x *DECSCLOS DECNET/SNA FILE CLOSE

EXDECS0d 09x *DECSERAS DECNET/SNA FILE DELETE

EXDECS0f 0Cx DECSREQB DECNET/SNA IBM REQUEST BEGIN

EXDECS10 0Dx DECSREQE DECNET/SNA IBM REQUEST END

FORMATS 0Fx DECSTERM DECNET/SNA ADDRESS SPACE TERMINATE

IMACDECS 10x DECSRCAL DECNET/SNA DATASET RECALL ON DIR

TYPEDECS The six datasets prefixed with '*' above have been

VMACDECS tested with data records.

Mar 26, 1998

Thanks to Brian Harvey, Navistar International Transportation, USA.
Change 16.033 IDMS 10.2 records were not output, so all seven lines

VMACIDMS with IF 'xxxx' LE SMFHVER LT '1400' THEN DO; were

Mar 25, 1998 changed to IF SMFHVER LT '1400' THEN DO;

Thanks to Ron Larue, FDISG Boston, USA.


Change 16.032 The MXG DISCOVERY. NO STRUCTURE MATCH. NON FATAL message

VMAC74 should no longer occur. The message was printed when a

Mar 25, 1998 structure in the Request Data Section was not found in

the Structure Data Section, and the only impact was that

variable R744QSIZ in TYPE74ST would be missing for that

structure name in that observation. But now, having

examined sample mismatches, I find that there is an entry

for the Structure in the Request Data Section, but there

is no corresponding entry in the Structure Data Section,

and the Request Data Section has R744SFLG='00000000'B, so

this structure neither was Online at End of Interval, nor

did it Become Active during the interval, but it had been

connected at the start of the interval, hence the Request

Data Section. But IBM explains that the Structure data

is a snapshot at interval end of all allocated structures

in the coupling facility (returned by IXCQUERY), and as

the structure was not allocated at interval end, there is

no structure data. This accounts for the mismatch, so

now, the mis-match message won't be printed when R744SFLG

is zero.


Thanks to Steve Smith, BGS, USA.
Change 16.031 CICS UNEXPECTED STATISTICS RECORD with STID=0 or = large

VMAC110 was caused by incorrect processing of STID=94 record. The

Mar 25, 1998 +11 after LGSAUTOP was INPUT must be +7. This also caused

zero observations in dataset CICLGS.

Thanks to Steve Smith, BGS, USA.
Change 16.030 Variable ABENDUSR in dataset CIMSPROG has never been

VMACCIMS right. The equation ABENDUSR=MOD(ABENDSYS,16)+ABENDUSR;

Mar 24, 1998 must be replaced with ABENDUSR=MOD(ABENDUSR,4096); and

ABENDUSR must be removed from the HEX4 format statement

as IMS User Abends range from 0 to 4095, not 0 to FFFx,

so they will now print as decimal by default.

Thanks to Karen Sherman, Franklin-Templeton, USA.

Thanks to Wayne Collins, Franklin-Templeton, USA.


Change 16.029 Variable R723CIMP (Importance Level) was in the SUM=

TRND72GO argument, making it meaningless in non-zero CPU Dispatch

Mar 24, 1998 times and non-zero Percent CPU Busy values.
Change 16.028 MXG 15.15-15.07 Only. For PR/SM Deactivated Partitions,

ASUM70PR observations were created that had non-zero CPU Dispatch

VMAC7072 times and non-zero Percent CPU Busy values, which when

Mar 24, 1998 summed into ASUM70PR could record more than 100% CPU Busy

for the CEC. Fortunately, very few sites have Partitions

Deactivated, but if you have this error, there will be

observations in TYPE70PR with LPARCPUS=0, as that is the

Deactivated Partition flag.


If you do have LPARCPUS=0 obs, you can correct the old

PDB.TYPE70PR data simply by deleting TYPE70PR obs with

LPARCPUS=0, and then re-run ASUM70PR (which reads the

corrected TYPE70PR dataset) to re-create the corrected

PDB.ASUM70PR dataset:

DATA PDB.TYPE70PR; SET PDB.TYPE70PR;

IF LPARCPUS=0 THEN DELETE;

%INCLUDE SOURCLIB(ASUM70PR);


You can prevent the creation of LPARCPUS=0 observations

in tomorrow's PDB by adding an IF test before the OUTPUT

statement in member EXTY70PR:

IF LPARCPUS GT 0 THEN OUTPUT ....;

until you install this change or MXG 16.01 or later.
The Permanent Fix. Change 15.299 created observations

for the Deactivated Partitions (for availability

reporting) but it failed to reset the variables from the

previous segment in this record. The permanent fix is to

insert these lines immediately after the existing IF:

IF LPARCPUS=0 THEN DO;

LCPUPDTM=.;

LCPUADDR=.;

LCPUSHAR=.;

LPARVPF =.;

LCPUEDTM=.;

LCPUDED =' ';

LCPUWAIT=' ';

LCPUCHST=' ';

LCPUCHWT=' ';

LCPUCAP =' ';

LCPUCAPC=' ';

ORIGWAIT=.;

NEWWAIT=.;

PCTCPUBY=.;

PCTMVSBY=.;

Thanks to Wayne Lauck, State of South Dakota, USA.


Change 16.027 While Change 15.273 mentioned that JES3 APAR UW41108

VMAC26J3 was required to fix an IBM error in the JES3 type 26

Mar 23, 1998 purge record, it did not protect the absence of that

APAR. By inserting IF LENGTH-COL+1 GE 10 THEN

immediately before the INPUT SMF27LN7 &PIB.2.

statement, even if the APAR is not installed, MXG won't

fail.

Thanks to Pete Gain, SAS Software, ENGLAND.


Change 16.026 New subtype 6 SMF type 99 record caused INVALID SERVER

VMAC99 SECTION TRIPLET because SMF99CPO=SMF99CPO+SMF99CPN;

Mar 22, 1998 should have been SMF99CPO=SMF99CPO+SMF99CPL;

This also caused truncated values for SRVCLASS.

Thanks to Steve Smith, BGS Systems, USA.
Change 16.025 "SHORT ABAR" warning messages about deleted records could

VMACHSM be erroneously created. Insert the INPUT statement below

Mar 22, 1998 between the ELSE DO; and the LENGTH-COL test so it reads:

ELSE DO;


INPUT @15+OFFSMF @;

IF LENGTH-COL+1 LT 274 THEN DO;

The COL value was still @40 as a result of the prior

INPUT, so records that were sufficiently long were

incorrectly deleted, but with the warning message.

Thanks to Don Friesen, B.C. Government, CANADA.


Change 16.024 -Support for new object "Database" creates new MXG dataset

EXNTDATA named DATABASE. This object has 104 fields in the record

IMACNTSM but only 16 are populated with field names and data.

VMACNTSM -Support for EXCHANGE 5.5 (INCOMPATIBLE) inserted data in

Mar 21, 1998 seven MS Exchange objects (IMC, IS Private, IS Public,

IS, Internet Protocols, MTA, and MTA Connections), which

caused INVALID TRIPLET warnings and skipped records until

this change is installed. Scores of variables were added

and some no longer exist in the Exchange records.

-Messages INVALID DATA FOR DURATM for Discovery Records

(Discovery Records have OID=0) occurs with NTSMF 2.1.4

records, but it has no impact on the real datasets that

MXG creates. The format of the Discovery Records was

changed, causing the MXG message.

-In addition, the _UNTDISC utility to print the Discovery

Records no longer worked with Release 2.0.h, which has a

NRNAMES field only in the 0.5 and not in the 0.6 or 0.6,

and there is an extra field at the end of each 0.7 record

that contains a repeat of the penultimate field. Also,

records from NTSMF 2.1.4 have still different Discovery

records, but the NTSMF Version is still 2.0.h, so logic

based on whether DURATM is missing or not (because the

new format has OBJECT name where DURATM was) is used to

decode which Discovery Format is in place, so that

_UNTDISC is now functional.

Thanks to Jim Quigley, Con Edison, USA.


Change 16.023 Change 15.368 added the DURATM=INTERVAL parameter to the

ASUMJOBS VMXGSUM invocations in most ASUM members, but ASUMJOBS

Mar 20, 1998 was overlooked until now.

Thanks to Chris Weston, SAS Institute ITSV, USA.


Change 16.022 Only for those few who use the &DEBUGMXG symbolic during

VMXGSUM testing is this minor fix needed. The three lines

Mar 20, 1998 %IF &MXGDEBUG GE 2 ...; %ELSE %IF &MXGDEBUG GE 3 ...;

May 14, 1998 and %ELSE %IF &MXGDEBUG GE 4 ....; need the %ELSE

removed from the second and third lines.

This Change was not included in MXG 16.01, but was in

MXG 16.02.

Thanks to Graham Bell, Blue Cross Blue Shield of Kansas, USA.


Change 16.021 The TRENDing of TYPE70 dataset had not been updated for

TRND70 more than 8 CPUs. While TYPE70 contained sixteen buckets

Mar 20, 1998 for CPU's (variables suffixes 0-9,A,B,C,D,E,F), but the

TRND70 member was overlooked when variables 9 and above

were added to TYPE70. The lists of these variables were

expanded: CPUWAITn, IORATEn, PCTCPBYn, PCTTPIn, VFAFFTMn,

and logic added for PCTTPIn, PCTCPBYn and PCTRDYWT

calculations.

Thanks to Graham Bell, Blue Cross Blue Shield of Kansas, USA.
Change 16.020 Support for Software Engineering's SpaceManager's two

EXSPMGSP flat files, Space Records and Volume Records create two

EXSPMGVL new datasets:

FORMATS SPMGSPAC - SpaceManager Space Records

IMACSPMG SPMGVOL - SpaceManager Volume Records

TYPESPMG MXG requires both a //SPMGSPAC DD and a //SPMGVOL DD and

VMACSPMG will read both files with member TYPESPMG. If you only

Mar 20, 1998 want to process one file, simply DD DUMMY the unwanted.

Apr 7, 1998 Several new $MGSPMxx formats are created, so you will

need to update your MXG Format library using this new

FORMATS member.

Thanks to Hans Juergen-Beck, DVG, GERMANY.


Change 16.019 -Variables TPXBYTI and TPXBYTO have always been wrong, due

VMACEPIL to an error in CA's documentation. Instead of being two

VMACOMAU 8-byte fields, they are now input as &PIB.4. and a line

VMACOMCI with +4 follows each to skip over the unused 4-bytes.

VMACTPX -It was also noted that all of the internal TPX datetimes:

VMAC39 TPXETIME, TPXSTIME, TPXUTIME were on the GMT clock, while

Mar 20, 1998 the SMFTIME is on the local clock, but there is a GMT

Apr 6, 1998 offset in the record, so now, MXG converts those three

timestamps into local. The CVTTZ field in the record is

the high four-bytes of the GMT offset, which is not an

exact value, so the following algorithm is required to

get the GMT offset in seconds into TPXCVTTZ:

INPUT TPXCVTTC $CHAR4. @;

TPXCVTTZ=INPUT((TPXCVTTC!!'00000000'X),&IB.8.6)/4096;

IF . LT TPXCVTTZ LT 0 THEN TPXCVTTZ=FLOOR(TPXCVTTZ);

ELSE TPXCVTTZ=CEIL(TPXCVTTZ);

For example values, the raw TPXCVTTC is '00000D69'x for

a +1 hour (3600 seconds) European offset, and for a -5

hour (-18000 seconds) USA EST is 'FFFFBCF2'x.

Then to correct timestamps to local, you add TPXCVTTZ:

TPXETIME=TPXETIME+TPXCVTTZ;

-In validating this change, I looked at all of the members

that contain CVTTZ and I discovered that in four members,

VMACEPIL, VMACOMAU, VMACOMCI, and VMAC39, I had reversed

the FLOOR and CEIL functions, which caused a one second

error in value of the GMT offset, so those four members

were also corrected by this change.

Thanks to Harry Olschewski, DeTeCSM, GERMANY.


Change 16.018 Member DOCGRAF is updated with examples of getting graphs

DOCGRAF from the mainframe to your PC. The new examples were

Mar 20, 1998 originally postings on our MXG-L ListServer.

Thanks to Bob Hare, Comerica, INC, USA.

Thanks to Neal Musitano, Jr., Department of Veterans Affairs, USA.
Change 16.017 The three DSORG fields in DCOLLECT (DCDSORG,UMDSORG, and

VMACDCOL UBDSORG) are increased to three bytes long from two, and

Mar 19, 1998 the suffix "U" will be added (e.g., DSORG='PSU') for the

files that "contain location dependent information, the

old "Unmoveable" attribute. I had erroneously set the

DSORT='U' for the Unmoveable attribute.

Thanks to Dr. Alexander Raeder, Karstadt AG, GERMANY.
Change 16.016 Change 15.356 introduced the &MACxxxx macros, but member

IMACFILE IMACFILE was overlooked. Now, &MACFILE is initialized as

VMXGINIT blank in VMXGINIT and a line with only &MACFILE now ends

Mar 18, 1998 member IMACFILE (which is included after the SMF header

has been input), so that any tailoring of member IMACFILE

(formerly done EDIT and SAVE into your USERID.SOURCLIB)

and now be done inline by setting the &MACFILE variable.

Because this &MACFILE variable will be inserting actual

SAS statements with semi-colons, the always-safe-syntax

to use to insert statements in &MACFILE is:

%LET MACFILE= %QUOTE(

LINE OF CODE TO BE EXECUTED ;

LINE OF CODE TO BE EXECUTED ;

LINE OF CODE TO BE EXECUTED ;

) ;

For a specific example, your //SYSIN program could be:



%LET MACFILE= %QUOTE(

IF ID=110 AND SUBTYPE=2 THEN DELETE;

) ;

%INCLUDE SOURCLIB(TYPE110);



would delete the CICS subtype 2 (Statistics) records so

no //WORK space would be needed by them, but would read

the CICS subtype 1 transaction records to create CICSTRAN

observations. Note that while the references are

&MACFILE, the %LET syntax does not use the ampersand.
If you have an-already-tailored IMACFILE member, you must

either add &MACFILE to the end of your tailored member

(so that any code added inline with &MACFILE will be

executed AFTER the code in member IMACFILE), or you must

remove your tailored IMACFILE member and do all your

tailoring in the %LET MACFILE= statements.


For reasons that are still unclear, it was necessary to

add a semicolon after the &MACFILE statement in the

IMACFILE member to satisfy the SAS compiler under MS

Windows, but not under MVS!

Thanks to Chuck Hopf, MBNA, USA.
Change 16.015 Documentation. Variable JCSPTIME had been INPUT but not

VMAC110 kept, but was re-spelled as JCSPTOD when it was added to

Mar 17, 1998 the KEEP= list for dataset CICSSMED in Change 15.157.

Thanks to Jens Schlatter, Independent Consultant, GERMANY.


Change 16.014 Variables XMGMXT and XMGTNUM were not kept in CICINTRV

CICINTRV dataset (in CICS 4.1 XMGMXT replaced DSGTL's MAXTASK

Mar 16, 1998 limit; DSG fields for AMAXTASK no longer exist in 4.1).

In the last VMXGSUM invocation in member CICINTRV, add

XMGTNUM to the SUM= argument and XMGMXT to the MAX=.

Thanks to Steve Donahue, Blue Cross and Blue Shield of Texas, USA.


Change 16.013 Cosmetic. Variable WTSCWTCN was given FORMAT TIME12.2,

VMACTMO2 but the variable that should have been in the FORMAT

Mar 16, 1998 statement was WTSCWTTM.

Thanks to Chris Weston, SAS Institute ITSV, USA.


Change 16.012 IDMS Version 10.2.1 PMHRTYPE=1 records caused error INPUT

VMACIDMS STATEMENT EXCEEDED RECORD LENGTH. Find the FIRST instance

Mar 16, 1998 of the line reading:

ELSE IF '1201' LE SMFHVER LT '1400' THEN DO; and change

it to read: ELSE IF '1021' LE SMFHVER LT '1400' THEN DO;

Thanks to Alan Deepe, SBC Warburg Dillon Read, ENGLAND.


Change 16.011 Variable SRHCRWRT is now SRCHRWRT to be consistent with

VMACNTSM the other spelling of other SRCHxxxx variables in dataset

Mar 15, 1998 FULCRUM built from NTSMF records.

Thanks to Chris Weston, SAS Institute ITSV, USA.


Change 16.010 Member YEAR2000 now warrants that MXG is (in IBM terms)

YEAR2000 "Year 2000 Ready", and the cover letter that is normally

Mar 15, 1998 sent in reply to year 2000 requests is now included at

the beginning of member YEAR2000.


Change 16.009 Variable MXGVERSN in dataset TYPE70 was blank in 15.15.

VMAC7072 Originally MXGVERSN=SYMGET('MXGVERS'); was before the

Mar 13, 1998 IF (ID=70 OR ID=72) AND NOT MVSXA THEN DO; logic, but

Change 15.354's relocation of IF tests (for BUILDPDB's

performance) inadvertently caused the SYMGET to only be

executed for pre-XA RMF records. The simple fix is to

just copy the three lines:

IF MXGVERSN=' ' THEN DO;

MXGVERSN=SYMGET('MXGVERS');

END;


to immediately follow the IF ... AND MVSXA THEN DO;....

statement, so the SYMGET statement is executed once for

either type of record. However, Don Deese showed me that

RETAIN MXGVERSN "&MXGVERS" ;

will initialize a RETAINed character variable to the

value of a macro variable, so the actual change replaced

the existing RETAIN MXGVERSN ' ' statement with the

above syntax, deleted the three-line DO group on MXGVERSN

and added a line with MXGVERSN $6 to the LENGTH statement

to define MXGVERSN's length.

Users of CPExpert will need to install this change or get

a one-line fix from Don Deese to circumvent my error.

The PROC COMPARE that should have caught this error that

was not run for MXG 15.15 has been reinstated in MXG QA!

Thanks to Don Deese, (CPExpert), Computer Management Sciences, USA.

Thanks to Lynn Meyer, Storage Tek, USA.

Thanks to David Ehresman, University of Louisville, USA.
Change 16.008 Duplicate observations in TYPE30_V might not be deleted.

BUILDPDB Change 15.235 discussed the addition of MULTIDD EXTRADD

BUILDPD3 to the BY list for TYPE30_4 and TYPE30_5, but those two

BUILD005 variables were not added to the TYPE30_V sort until this

BUIL3005 change.

Mar 13, 1998

Thanks to Allan Winston, MBNA, USA.
Change 16.007 Cosmetic. Format MGILKAT had repeated 4: for the RETR,

FORMATS APPE, and STOR actions, instead of having 8:RETR, 16:APPE

Mar 13, 1998 and 32:STOR for the format values.

Thanks to Ken Mazer, Internal Revenue Service WVA, USA.


Change 16.006 The ARRAY statement permitted only 10 LCUIDs, causing the

ANALPATH SUBSCRIPT OUT OF RANGE error. The array statement was

Mar 11, 1998 increased to 16, the LCU1-LCU9 instances were change to

LCU1-LCU16 and variables LCU10 thru LUC16 were added to

the initialization logic.

Thanks to Tobias Cafiero, Mercedes Benz of North America, USA.


Change 16.005 Variable PCTDLSSW was added by Change 14.318, but its

VMAC7072 value was incorrect because it was never divided by the

Mar 5, 1998 variable VALDSAMP due the misspelling as PCTLDSSW in the

line in which it should have been divided by VALDSAMP.

Thanks to Chris Weston, SAS Institute CARY, USA.
Change 16.004 Change 15.293 discussed why YEARSECS and YEARDAYS can not

TYPEDMS be used to protect non-Y2K-compliant date fields, but the

TYPEMON8 code in these four non-compliant products was not changed

TYPETMON until this change, which uses smart logic to protect.

VMACNSM

Mar 5, 1998


Change 16.003 IBM's NPM product now creates a "century" value in their

VMAC28 unique date fields, but the new and unexpected format of

YEAR2000 'CYYMMDDF'x is still not documented by IBM. APAR II10481

Mar 4, 1998 does make the following statement:

Mar 9, 1998 "97/04/30 NPM will support the year 2000. User's do

not need to do anything special.

Further details provided by NPM development:

NPM's SMF record header contains the date (SMF28DTE)

in the form 0CYYDDDF, where the '0C' represents the

century. This byte contains '00' in this century


Yüklə 28,67 Mb.

Dostları ilə paylaş:
1   ...   266   267   268   269   270   271   272   273   ...   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