Sep 29, 1995 be IF MAXTIME GT LATEST THEN DO:
Thanks to Jim Ray, Branch Banking and Trust Company, USA.
Change 13.215 CA's IDMS Version 12.01 records cause INPUT STATEMENT
VMACIDMS EXCEEDED RECORD, but that failure should have been caught
Sep 28, 1995 by MXG; the circumvention is to delete the line
IF SKIP GT 0 THEN INPUT +SKIP @;
that is located at the end of member VMACIDMS, after the
END; /* END SUBTYPE 18 */ statement and before the
END; /* END DO _I_ TO SMFHNREC */ statement.
This correction will allow MXG to tolerate 12.01 records.
An update to this change will be made when the DSECTS for
the new version have been received and the MXG code
enhanced to pick up the new variables.
Thanks to Don Snivley, E-Systems, USA.
Change 13.214 The BGS I/O Monitor SMF record produces invalid records
VMACBGSI with MVS/ESA 5.2. MXG does not fail, but prints INVALID
Sep 28, 1995 TRIPLET messages on the log and deletes the records. BGS
alerted me and is investigating their error.
Change 13.213 Variables TSORESP TRIVRESP TSO2RESP TSO3RESP TSO4RESP in
RMFINTRV PDB.RMFINTRV are now FORMAT 7.3 (instead of 5.1), because
Sep 28, 1995 average trivial response is now often measured in tens of
milliseconds, which disappear when printed with the
shorter format.
Thanks to Chuck Hopf, MBNA, USA.
Change 13.212 DB2 stats dataset DB2STAT2 should never have been used in
DIFFDB2 building DB2STATS, as it contains only threshold values
VMACDB2 instead of interval resources used, so all references to
Sep 27, 1995 DB2STAT2 were removed in the building of DB2STATS in
member DIFFDB2. Now, DIFFDB2 creates DB2STATS from only
DB2STAT0 and DB2STAT1 data sets (as MXG did in 11.11!).
Fortunately, the inclusion of DB2STAT2 did not affect the
validity of DB2STATS dataset for its other variables.
-Tom also discovered that only the first buffer pool's
threshold's values were being OUTPUT to DB2STAT2 in its
creation in member VMACDB2. This correction was to move
the statement DIFFDB22=0 and the %INCLUDE of EXDB2ST2 to
be inside the DO group, and to insert statement
OFFQDBP=OFFQDBP+LENQDBP; after that %INCLUDE.
Thanks to Tom Parker, Hogan Systems, USA.
Change 13.211 MXG 13.02-MXG 13.05 only. IMF processing will cause an
TYPECIMS error 80-322 and 201-322 occur if you use member IMACCIMS
Sep 27, 1995 to define MACRO _LIMFTRN CIMSTRAN.CIMSTRAN %, because MXG
Change 13.089 incorrectly added _LIMFTRN to the DELETE
statement. Change DELETE _LIMFTRN CHAINED ; to read
DELETE CHAINED;
Thanks to Jim Wertenberger, Blue Cross Blue Shield of Ohio, USA.
Change 13.210 Labels for variables were clarified in TYPE70:
VMAC7072 NRCPUS ='NUMBER OF*CPUS AVAILABLE*TO THIS MVS'
Sep 27, 1995 PARTNCPU='TOTAL*NUMBER OF CPUS*IN THE CEC'
and in TYPE70PR:
LPARCPUS='NUMBER OF*CPUS IN*THIS LPAR'
Thanks to Angela Mulcahey, United Jersey Bank, USA.
Change 13.209 Comments describing use were enhanced, pointing out that
IMACFILE all SMF-processing programs use IMACFILE; if you want to
Sep 25, 1995 tailor IMACFILE for only one job (eg., BUILDPDB), then
you should put the tailored IMACFILE member in a special
PDS source library in the //SOURCLIB concatenation for
that one job, instead of putting it in the USERID.SOURCLI
tailoring library.
Thanks to Mr. Jan Beukeletrs, ANHYP NV, Belgium.
Change 13.208 INVALID DATA FOR DTL results if there is no value for the
VMACEREP last activity time. Insert ?? between DTL and &PD.4.
Sep 25, 1995 to suppress the invalid data message. This revision also
Oct 3, 1995 adds Machine Check Handler (MCH) record processing.
Thanks to Mr. Geiger, KKH, GERMANY.
Change 13.207 INVALID ARGUMENT error if there are more than 10 LCUIDs
ANALPATH associated with one CHPID, so the ARRAY was increased to
Sep 25, 1995 16, but the source of the error was that ANALPATH applied
Oct 2, 1995 IF &PRMTM; prime-time-only selection only to the TYPE74
dataset, while TYPE73 and TYPE78CF (from whence the error
came) had no shift selection (and the data that cause the
large number was across several IPLs with different I/O
configurations). Thus IF &PRMTM; was added logically to
the subsetting of TYPE73 and TYPE78CF datasets as well as
increasing the size of the ARRAY.
Thanks to Diane Eppestine, Southwestern Bell, USA.
Change 13.206 Variables ACTDLYTM, DSPDLYTM, and RESDLYTM are now added
VMAC30 to the TIME12.2 format, to print consistently with other
Sep 25, 1995 duration variables.
Thanks to Chuck Hopf, MBNA, USA.
Change 13.205 Variable HMF5BS29 was always zero, because it should not
DIFFHMF have been DIF()ed. Remove both lines in DIFFDB2 than
Sep 25, 1995 contain HMF5BS29.
Thanks to Shaheen Pervaiz, Acxion CDC, Inc, USA.
Change 13.204 MXG coding for Landmark TMON/CICS 1.3 was INCOMPATIBLY
TYPETMON changed so that TMON data could be processed under ASCII
Sep 25, 1995 and EBCDIC versions of SAS. You MUST change your JCL for
the DDname of MONICICS from RECFM=U BLKSIZE=32760 to be
RECFM=VB LRECL=32756 BLKSIZE=32760 with this change.
(I regret the inconvenience, but this was the only way to
support LANDMARK data processing under OS2/UNIX/WINDOWS
and is the way TYPETMON should have been coded. Since VB
processing is faster than U processing, you may actually
see a faster run time! And even if you don't read this
notice, the error message that you now get will tell you
that you have either used RECFM=U in place of RECFM=VB,
or that you are trying to read compressed data without
having installed the EXITMON6 decompression exit!).
The code changes were to delete the two lines that INPUT
LENMONI1 and LENMONI2, to change all occurrences of
LENMONI1 to MONILEN, and to replace the INPUT of ENDDATE
as YYMMDD6. with YY &NUM.2. MO &NUM.2. DD &NUM.2. and
then use IF YY GT 0 THEN ENDDATE=MDY(MO,DD,YY);
Note that for processing TMON 1.3 data under ASCII SAS,
you must use
FILENAME MONICICS 'C:\...'
RECFM=S370VB LRECL=32752 BLKSIZE=32756;
Thanks to Ian Gibson, Queensland Transport Department, AUSTRALIA.
Change 13.203 MXG execution under ASCII only. Landmark 8.1 format MXG
TYPEMON8 code was not updated for ASCII execution, causing wrong
Sep 25, 1995 values and notes on the log. Change all occurrences of
"RB8." to "&RB.8.", and replace ENDDATE as described in
Change 13.203. There is no error under MVS execution.
Thanks to Ian Gibson, Queensland Transport Department, AUSTRALIA.
Change 13.202 Variable DURATM was created, equal to INTERVAL, to be
VMAC23 consistent with SAS/CPE desires.
Sep 22, 1995
Thanks to Mitch McKenna, Independent Consultant, Australia.
Change 13.201 Support for Omegamon for MVS/ESA V400 adds these new
VMACEPMV twenty-three variables:
Sep 22, 1995 SM180APS SM180ARC SM180ASC SM180CFR SM180CSS SM180EFR
SM180HSP SM180IOC SM180OLS SM180OM1 SM180OM2 SM180QUI
SM180RGN SM180RGP SM180SCN SM180SCP SM180SCX SM180SPS
SM180SVF SM180VIO SM180WKS SM180WLN SM180XME
Thanks to Frank Altrichter, Bell Atlantic, USA.
Change 13.200 Variables SYSNAME and SYSPLEX were not in PDB.RMFINTRV,
RMFINTRV although Change 13.172 supposedly made the addition; the
Sep 22, 1995 variables must be added to the ID statement that precedes
OUTPUT OUT=RMF70D1 .... MXG processing currently assumes
that each of your SYSTEM ids are unique within a SYSPLEX;
if that is not true, I may have to change the sort order
of all of the RMF datasets from SYSTEM STARTIME to
SYSPLEX SYSNAME SYSTEM STARTIME, but I will defer that
change until truly required (and I have test data!).
Thanks to Norbert Korsche, OMV AG, AUSTRIA.
Change 13.199 SAP variable STICODE in CICS journal records should be
IMACICSA INPUT as $EBCDIC4. (it was &PIB.4.), as it is a transact
Sep 22, 1995 code (similar to STCTCODE).
Thanks to Norbert Korsche, OMV AG, AUSTRIA.
Change 13.198 Support for 3590 tape drives was incomplete, as variable
ANALTAPE TAPE3590 was not added to PDB.JOBS & PDB.STEPS datasets.
BUILDPDB -IMACPDB must be updated. Variable TAPE3590 must be added
BUILDPD3 to macro _PDB30_4 and to macro _MAXSTP, and then the PROC
BUILD005 MEANS OUTPUT statement required the X9 to be changed to
ChangeSS X10, and the SUM= statement required the addition of X10
IMACPDB after the X9. Note that if IMACPDB exists in your
VMAC30 USERID.SOURCLIB, you must retrofit your tailoring in that
Sep 22, 1995 member, starting with this new IMACPDB member.
-Although not required, the TAPExxxx variables in LENGTH
statements in BUILDPDB, BUILDPD3 and BUILD005 were taken
out, as the _MAXSTP macro reference already contains the
TAPExxxx variables, and their removal avoids confusion.
-It was also noted that none of the EXCPxxxx or IOTMxxxx
variables were kept in TYPE30_6, so member VMAC30 was
updated to add _IO30IO to the KEEP list for TYPE30_6 to
be consistent with other type 30 datasets.
-ANALTAPE was updated to report 3590 tapes separately
-Finally, my notes on what I have to do for a new tape
device (text of Change 9.152 in CHANGESS) were revised
so I do it right the first time the next time!
Thanks to Norbert Korsche. OMV AG, AUSTRIA.
Change 13.197 By changing all occurrences of SORTDSNS to DSNAMES, the
VMXGVTOF PROC SORT DATA=DSNAMES .... that precedes the %DO group
Sep 22, 1995 can be eliminated, saving an extra pass of the data.
Thanks to Graeme Yeandle, British Telecom, ENGLAND.
Change 13.196 Protection for future version changes was not correct for
VMACHMF subtype 4, 5, 8, and 9, as the subtractor should be 26,
Sep 22, 1995 16, 54, and 64 respectively. (The segment lengths do not
include their own length.) However, there was no error
with the current version's records.
Thanks to Shaheen Pervaiz, Acxiom CDC, Inc, USA.
Change 13.195 Variables BATRSPRO BASCRUID BASPCCHN BARTNDTA BAVOLOWN
VMACTLMS were not in the KEEP list, nor were they in the LABEL
Sep 22, 1995 statement, but now they are.
Thanks to Alex Torben Nielsen, TeleDanmark EDB, DENMARK.
Change 13.194 Variables IMSID (IMS System ID) was added to the KEEP
VMACCIMS list for datasets CIMSDBDS and CIMSDB2 to ease in reports
Sep 22, 1995 by system.
Change 13.193 Variables QWSBIID,ISEQ,OTH1,OTH2,SBNA,SCF,SRND,SRNW,SRSW
VMACDB2 were added by Change 13.139 but those names were already
DIFFDB2 in use, and where they were DIF()ed in DIFFDB2, wrong
Sep 21, 1995 counts were created. Fortunately, these variables record
generally unimportant counts of activity by IFC, and they
were added only to eliminate a nuisance message from MXG,
but now they were renamed to QWSYxxxx to avoid conflict.
This change could not be made with a global change, so if
this is really of concern, you will need the new version.
Thanks to Tom Parker, Hogan Systems, USA.
Change 13.192 INVALID SECOND ARGUMENT IN FUNCTION SUBSTR occurs in the
VMAC102 processing of DB2 Trace IFCIDs 21 or 44. The following
Sep 21, 1995 changes must be made twice; once after MACRO _C102021 and
once after MACRO _C102044.
Find the following code:
DO I= 1 TO 27 BY 3;
IF I LT 27 THEN ....
ELSE ....
....
IF I=27 AND J=7 THEN J=20;
....
Change it to read:
DO I= 1 TO 19 BY 3;
IF I LT 19 THEN ....
ELSE ....
....
IF I=19 AND J=13 THEN J=20;
....
Thanks to Mitch McKenna, SAS Europe, GERMANY
Thanks to Mealin Beecking, Generale de Banque NV/SA, BELGIUM.
Change 13.191 Building the $DB2DBID and $DB2OBID formats may still fail
ANALDB2R when there are zero obs in T102S105 or T102S107, due to
Sep 21, 1995 insufficiently robust logic.
Find IF FIRST.DBID THEN DO; . Replicate this DO group.
In the first DO group, change the IF FIRST.DBID THEN DO;
to IF FIRST.DBID AND LAST.DBID THEN DO; . In the second
DO group, change the IF FIRST.DBID THEN DO; to
ELSE IF FIRST.DBID THEN DO; . In the first DO group,
insert OUTPUT; after LASTNAME=DBNAME;
Find IF FIRST.OBID THEN DO; . Replicate this DO group.
In the first DO group, change the IF FIRST.OBID THEN DO;
to IF FIRST.OBID AND LAST.OBID THEN DO; . In the second
DO group, change the IF FIRST.OBID THEN DO; to
ELSE IF FIRST.OBID THEN DO; . In the first DO group,
insert OUTPUT; after LASTOAME=OBNAME;
Thanks to ????, Union Bank of Switzerland, SWITZERLAND.
Thanks to Werner Schellenbert, SAS Switzerland, SWITZERLAND.
Change 13.190 The format of variable UOWTIME in all datasets is changed
ANALDB2C to DATETIME25.6, because the previous DATETIME21.2 format
TYPEMOND caused the PROC MEANS in ANALDB2C to collapse what were
TYPEMON8 separate events into one output observation (because the
TYPETMON variable UOWTIME is in the BY list, and PROC MEANS, like
VMACCIMS most other procedures, uses the formatted value to build
VMACDB2 its output observation).
VMACDB2H The ANALDB2C error could be corrected with the addition
VMACOMCI of "INCODE=FORMAT UOWTIME DATETIME25.6;," to both
VMAC116 of the %VMXGSUM invocations and by changing the FORMAT
VMAC123 statement, which would let ANALDB2C use date that was
Sep 21, 1995 created prior to this change, but that circumvention will
cause an extra pass of CICS and DB2 data by ANALDB2C.
So the permanent correction was to change the format in
all of the members that create variable UOWTIME, and only
the existing FORMAT statement was changed in ANALDB2C.
Thanks to H. Thomas Lowin, ICG Informationssysteme, GERMANY.
Change 13.189 INVALID DATA FOR AFSTTIME in type 91 BatchPipes/MVS SMF
VMAC91 record because of a reserved field. After the INPUT of
Sep 21, 1995 SMF91IWB &PIB.4. and the INPUT of SMF91OWB &PIB.4.,
insert +4 (to skip over the reserved field).
Thanks to Siegfried Trantes, IDG Gmbh, GERMANY.
Change 13.188 Variable WRBUFUSE (write buffers used) was added to KEEP
VMAC50 list for dataset TYPE50, and is now input by changing the
Sep 20, 1995 @39+OFFSMF +4 to read @39+OFFSMF WRBUF &PIB.4. (for the
subtype 01 (channel-to-channel) record).
Thanks to Earl Berg, Bank of America, USA.
Change 13.187 ASMTAPES revision MAINTLEV 6 now replaces prior version.
ASMTAPES MXG 13.05 ASMTAPES may stop writing allocation records,
Sep 29, 1995 although mount records continue to be written. The SRB
that we schedule fails if the job in allocation (or in
allocation pending) is swapped out. We continue to retry
the SRB, but if an internal maximum count is exceeded, we
(erroneously, I now realize!) shut down the allocation
monitor and stop writing records. This section of the
monitor has been redesigned, now that we realize why the
SRB routine times out. In addition, this revision
-Adds 'DEBUG' mode, which can be invoked via Operator
Modify Command "F MXGTMNT,DEBUG=YES" (default at startup
is DEBUG=NO, so that debugging messages TMNT009I/011I
will not be written by default).
-Corrects incorrect job and step information due to
allocation recovery and step changes
-Enhanced code to get DDNAME when a device is initially
found in allocation recovery, but later sampled during
execution. The DDNAME is unavailable during allocation
recovery, and so records written only for allocation
recovery will not have a DDNAME; once the job goes from
allocation recovery to execution, a subsequent monitor
sample will now pick up the DDNAME.
Change 13.186 Support for year 2000 for TLMS records was added. Twelve
VMACTLMS fields that contain dates with century value will now be
YEAR2000 converted to four digit values (eg., the 0100001 value of
Sep 20, 1995 01Jan2000 will now be converted to 2000001). The logic
is X=FLOOR(X/100000)*100+1900+X; for each of these X:
BAPURCH BADESTDT BACLNDT BACERTDT BAVMOVED BAVKEEPD
BAVEXPDT BAVSCRDT BADKEEPD BADEXPDT BACDATE BAIDATE
TLMS was not previously recognized as needing conversion,
because these twelve variables are simply numbers and are
not converted to SAS date values (and my research in the
YEAR2000 member only addressed MXG variables that are
date values).
Thanks to Rey Marquez, General Accident Insurance, USA.
Change 13.185 INPUT STATEMENT EXCEEDED RECORD LENGTH for type 92 SMF
VMAC92 because the INPUT of SMF92PPL should have been &PIB.2.
Sep 20, 1995 instead of the &PIB.4. that was coded.
Thanks to Diane Eppestine, Southwestern Bell, USA.
Change 13.184 Variable SMF22SNV should be labeled SUBSYSTEM*NVS*STATUS.
VMAC22 New variable SMF22PNV should be created by inserting
Sep 20, 1995 SMF22PNV $CHAR1. immediately after the INPUT of
SMF22SNV, and SMF22PNV must be added to the KEEP= list,
the $HEX2. list, and the $NOTRAN. list, after SMF22SNV.
Thanks to Dean Brown, Pacific Bell, USA.
Change 13.183 MXG 13.01-MXG 13.05 only. RACF type 80, ACF2 user SMF and
IMACJBCK DB2 type 101 observations were not output if job name was
VMAC80 hex zeroes.
VMAC80A For consistency, Change 13.076 added IMACJBCK to all SMF
VMACDB2 processing members (IMACJBCK allows selection of records
VMACACF2 by job name), but it contained a default test of
Sep 1, 1995 IF JOB GE ' '; but if the variable JOB has
Sep 20, 1995 nulls, this addition causes the record to be deleted!
Nov 30, 1995 It now turns out that RACF can write records with nulls
for job name - "For RACINIT records for batch jobs,
SMF80JBN can be zero", and those records were deleted.
Also, DB2 records for Distributed Threads for non-DB2
requestors contain nulls for JOB, causing observations in
DB2ACCT and DB2ACCTP datasets to be deleted.
The change was to eliminate that default test in IMACJBCK
so it only contains comments about how it can be used!
There was no change to VMAC80, VMAC80A, nor VMACDB2, but
they are listed here for the alert of the problem.
Thanks to Joseph J. Faska, Depository Trust, USA.
Thanks to Tom Parker, Hogan Systems, USA.
Change 13.182 SNS/TCPaccess Version 2.1.0 added on new variable F20AERR
VMACILKA to dataset ILKAST20 compatibly.
Sep 1, 1995
Thanks to Joe Schwartz, CIGNA, USA.
Change 13.181 APAR OW11142 adds new variables with compression stats:
VMAC64 SMF64CCS SMF64CDS SMF64CMP SMF64CSS SMF64DTK SMF64EF
Sep 1, 1995 SMF64SDS SMF64TRK
In addition, variable ALLOCCYL is now calculated to give
the allocated size of the VSAM component.
Thanks to Siegfried Trantes, IDG Informationsvararbeitung, GERMANY.
Change 13.180 TYPE42DS and TYPE42SR variable RESPTIME was found to be
VMAC42 greater than the sum of connect, pend, disconnect and CU
Sep 1, 1995 queue; IBM development confirmed that the IOS queue time
is included in RESPTIME but not separately recorded, so
AVGIOQMS=RESPTIME-(AVGCONMS+AVGPNDMS+AVGDISMS+AVGCUQMS);
was inserted after AVGCUQMS=128*AVGCUQMS; in two places,
AVGQIOMS was added to the KEEP= for both datasets.
In addition, these "millisecond" variables RESPTIME
AVGIOQMS AVGCONMS AVGPNDMS AVGDISMS and AVGCUQMS are now
multiplied by 1000 so their values are actually in
milliseconds. I know this will affect those of you that
have started to use the TYPE42DS data, but consistency
with their labels and with counterpart variables in the
TYPE74 dataset justify this annoyance to those pioneers
who have already found this valuable data source.
Thanks to Bruce Sloss, PNC Bank, USA.
Change 13.179 RACFTYPE=34 caused "SKIPPED SEGMENT" message on the log,
VMAC80A but had no impact on created datasets. To eliminate the
Aug 30, 1995 diagnostic, copy the WHEN (55) DO; block to after the
WHEN (33) block, and then change the 55 to 34.
Thanks to Joseph J. Faska, Depository Trust, USA.
Change 13.178 MXG 13.05 only. Variable NDMTIME is missing because the
VMACNDM test IF DATEYYYY GT 80000 AND .. should have been changed
Aug 30, 1995 to IF DATEYYYY GT 0 AND .... (the 80000 test was for a
julian date after 1980, but DATEYYYY was change to a SAS
date by Change 13.158, and current value is only 13,000).
Thanks to Chuck Hopf, MBNA, USA.
Change 13.177 Variable VELOCITY is added to TYPE72 & TYPE72GO datasets
VMAC7072 (for both Compatibility and Goal Mode measurement). The
Aug 30, 1995 equation is VELOCITY=CPUUSESM/SUM(CPUUSESM,TOTDLYSM);
for dataset TYPE72 and the equation is
VELOCITY=PCTUSCUS/SUM(PCTUSCUS,PCTDLTOT); for goal mode.
Thanks to Don Deese, (CPExpert), Computer Management Sciences, USA.
Thanks to Dave Crandall, Farmers Insurance, USA.
Change 13.176 Support for Software Engineering of America's TRMS (Total
EXTRMS01 Report Management Solution) user SMF record adds datasets
EXTRMS02 TRMS01 - Report Accumulation
EXTRMS03 TRMS02 - Report Deletion
EXTRMS04 TRMS03 - Distribution Bundle
IMACTRMS TRMS04 - Distribution Print (Demand)
TYPETRMS with the identity of the print-causing job, duration, and
VMACTRMS counts of lines, pages, etc.
Aug 30, 1995
Thanks to John Rivera, PKS Information Services, Inc, USA.
Change 13.175 If you build your weekly PDB on tape, running the TREND
WEEKBLDT code can cause lots of tape mounts. It may be wiser to
Aug 28, 1995 build the entire PDB on tape first, then use PROC COPY
with a SELECT statement to create a pseudo-PDB on DASD
with only the datasets needed for Trending.
Thanks to Chuck Hopf, MBNA, USA.
Change 13.174 MXG 13.05 only. Assembly of ASMTAPES fails because you
ASMTAPES cannot continue ASM comments with X in column 72. Find
Aug 28, 1995 MAINTLEV, remove X's from column 72, put asterisk in col
1 (except for the final MAINTLEV EQU 5, which was ok.)
This was a stupid error; I changed the comments and then
failed to reassemble the program.
Thanks to Chuck Hopf, MBNA, USA.
Change 13.173 OMEGAMON CICS V300 SMF Subtype 200 subsubtype 4 caused
VMACOMCI INPUT STATEMENT EXCEEDED RECORD LENGTH due to MXG error.
Aug 24, 1995 Insert between EEDRMFS and EEDTSIO these lines:
EEDRMFS &PIB.1.
@;
IF SUBTYPE=200 THEN INPUT +3 @;
INPUT
EEDTSIO &PIB.4.
and change the subsequent IF SUBTYPE=200 THEN LOC=LOC+1;
to read IF SUBTYPE=200 THEN LOC=LOC+4;
Thanks to F. Pulles, Compuzorg B.V., THE NETHERLANDS.
==========MXG Version 13.05, dated Aug 21, 1995, thru 13.172==========
Change 13.172 Variables SYSPLEX and SYSNAME were added to all of the
RMFINTRV RMF/CMF datasets built from type 70-79 records (they had
Dostları ilə paylaş: |