2010/08/05

ABAP TABLE REPORT FUNCTION MODULE(FM) BACTH DOWNLOAD

REPORT YZEROCHO01 NO STANDARD PAGE HEADING LINE-SIZE 500.
***************************************************************
*** ABAP TABLE REPORT FUNCTION MODULE(FM) BACTH DOWNLOAD ***
*** Download one or more Fucntion Groups to PC-File
*** ABAP テーブル レポート 汎用モジュール バッチダウンロード ***
*** FMのインクルードファイル
*** 参照
*** http://hi.baidu.com/festsoft/blog/item/5c69f595a98b164ed0135e4c.html
***************************************************************

TABLES:TADIR,TRDIRT,TSTC,DD03L,DD02L,DD04L,DD02T,DD03T,DD04T.
TABLES:TFDIR.
DATA: BEGIN OF YTADIR OCCURS 0.
INCLUDE STRUCTURE TADIR.
INCLUDE STRUCTURE TRDIRT.
DATA: END OF YTADIR.

DATA:PROG(72) TYPE C OCCURS 0 WITH HEADER LINE.
*テーブル構造
DATA:BEGIN OF TAB OCCURS 0.
INCLUDE STRUCTURE DD03L.
DATA:TEXT(40).
DATA:END OF TAB.

DATA:BEGIN OF T1 OCCURS 0,
TABNAME LIKE DD02L-TABNAME,
DDTEXT LIKE DD02T-DDTEXT,
END OF T1.

DATA:BEGIN OF ITAB OCCURS 0,
FIELD(15), "
KEY(6), "
ELMENT(15), "
TYPE(10), "
LENG(8) , "
DECIMALS(8) , "
CHK(10), "
CAN(10), "
CFI(10), "
TEXT(40), "
END OF ITAB.

DATA: BEGIN OF IT_TFDIR OCCURS 0,
NAME LIKE PROGDIR-NAME ,
FGNAME LIKE EFRM-FUNC_POOL ,
FUNCNAME LIKE TFDIR-FUNCNAME ,
INCNAME LIKE PROGDIR-NAME ,
INCLUDE LIKE TFDIR-INCLUDE,
OBSOLETE LIKE RODIR-OBSOLETE,
FUNAM LIKE PROGDIR-UNAM ,
FUDAT LIKE PROGDIR-UDAT,
STEXT LIKE TFTIT-STEXT ,
END OF IT_TFDIR.

DATA: YYNAME(128) TYPE C.
DATA: TT(500) OCCURS 0 WITH HEADER LINE.
DATA: RN(72).

DATA: T_ENLFDIR LIKE ENLFDIR OCCURS 0 WITH HEADER LINE.

DATA:FIELDS(40),
LIN TYPE I,
VAL(30),
REP(40).
SELECTION-SCREEN BEGIN OF BLOCK BLK1 WITH FRAME.
PARAMETERS:DOW AS CHECKBOX. "ダウンロード
PARAMETERS:P_DIR(50) DEFAULT 'D:\ABAPCODE\'. "パス
PARAMETERS:STYPE(6) DEFAULT 'TXT'.

PARAMETERS:R1 RADIOBUTTON GROUP R DEFAULT 'X',
R2 RADIOBUTTON GROUP R,
R3 RADIOBUTTON GROUP R.
SELECTION-SCREEN COMMENT /1(30) COMM1.
SELECTION-SCREEN END OF BLOCK BLK1.

SELECTION-SCREEN BEGIN OF BLOCK BLK2 WITH FRAME.
SELECT-OPTIONS:AUTHOR FOR TADIR-AUTHOR. "開発者
SELECT-OPTIONS:DEVCLASS FOR TADIR-DEVCLASS. "クラス
SELECT-OPTIONS:OBJ FOR TADIR-OBJ_NAME. "プログラム名
SELECT-OPTIONS:TABNAME FOR DD02L-TABNAME. "テーブル名
SELECTION-SCREEN END OF BLOCK BLK2.

SELECTION-SCREEN BEGIN OF BLOCK BLK3 WITH FRAME.
PARAMETERS: FUNCAREA LIKE TLIBG-AREA.
SELECT-OPTIONS: FUNCNAME FOR TFDIR-FUNCNAME."汎用モジュール
PARAMETERS: INCLD AS CHECKBOX DEFAULT 'X'. "INCLUDE
SELECTION-SCREEN END OF BLOCK BLK3.

AT SELECTION-SCREEN OUTPUT.
comm1 ='R1:REPORT R2:TABLE R3:FUNCTION MODULE'.

INITIALIZATION .

AT SELECTION-SCREEN.
IF FUNCAREA IS NOT INITIAL.
SELECT * FROM ENLFDIR INTO TABLE T_ENLFDIR WHERE AREA EQ FUNCAREA.
LOOP AT T_ENLFDIR WHERE AREA EQ FUNCAREA.
CLEAR: FUNCNAME.
MOVE: T_ENLFDIR-FUNCNAME TO FUNCNAME-LOW.
MOVE: 'EQ' TO FUNCNAME-OPTION.
MOVE: 'I' TO FUNCNAME-SIGN.
* CHECK FUNCNAME-LOW IN RESTRICT.
APPEND FUNCNAME.
ENDLOOP.
SORT FUNCNAME.
DELETE ADJACENT DUPLICATES FROM FUNCNAME.
CLEAR: FUNCAREA.
ENDIF.

START-OF-SELECTION .
IF R1 = 'X'.
PERFORM GET_DATA.
ENDIF.

IF R2 = 'X'.
IF TABNAME IS INITIAL.
MESSAGE 'テーブル名' TYPE 'I'.
ELSE.
PERFORM GET_TABLE_DATA.
ENDIF.
ENDIF.

IF R3 = 'X'.
IF FUNCNAME IS INITIAL.
MESSAGE '汎用モジュール名' TYPE 'I'.
ELSE.
PERFORM GET_FM_DATA.
ENDIF.
ENDIF.


AT LINE-SELECTION.
CLEAR: FIELDS, LIN.
GET CURSOR FIELD FIELDS LINE LIN VALUE VAL.
LIN = LIN - 1.
IF LIN >= 1.
READ TABLE YTADIR INDEX LIN.
IF SY-SUBRC = 0.
CLEAR REP.
CLEAR PROG.
REP = YTADIR-OBJ_NAME.
READ REPORT REP INTO PROG.
EDITOR-CALL FOR PROG.
* SET PARAMETER ID 'RID' FIELD REP.
* CALL TRANSACTION 'SE38' AND SKIP FIRST SCREEN.
ENDIF.
ENDIF.

END-OF-SELECTION.


*---------------------------------------------------------------------*
* FORM GET_DATA *
*---------------------------------------------------------------------*
* プログラム ダウンロード *
*---------------------------------------------------------------------*
FORM GET_DATA.
SELECT * INTO CORRESPONDING FIELDS OF TABLE YTADIR
FROM TADIR
INNER JOIN TRDIRT ON TADIR~OBJ_NAME = TRDIRT~NAME
WHERE OBJECT = 'PROG'
AND OBJ_NAME IN OBJ
AND DEVCLASS IN DEVCLASS
AND AUTHOR IN AUTHOR
AND SPRSL = SY-LANGU.
SORT YTADIR BY OBJ_NAME.

WRITE:/ '開発者','開発クラス','プログラム','プログラム名'.
LOOP AT YTADIR.
IF DOW = 'X'.
REFRESH TT.
RN = YTADIR-OBJ_NAME.
READ REPORT RN INTO TT.

* 禁止文字
REPLACE '/' with '_' into YTADIR-TEXT."/スラッシュ
REPLACE '\' with '_' into YTADIR-TEXT."\バックスラッシュ(円マーク)
REPLACE ':' with '_' into YTADIR-TEXT.":コロン
REPLACE '*' with '_' into YTADIR-TEXT."*アスタリスク
REPLACE '"' with '_' into YTADIR-TEXT."
REPLACE '<' with '_' into YTADIR-TEXT.
REPLACE '>' with '_' into YTADIR-TEXT.
REPLACE '|' with '_' into YTADIR-TEXT."|パイプ
REPLACE '?' with '_' into YTADIR-TEXT."?クエッションマーク

CONCATENATE P_DIR YTADIR-AUTHOR '_' YTADIR-OBJ_NAME
'_' YTADIR-TEXT '.' STYPE
INTO YYNAME.

CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
FILENAME = YYNAME
FILETYPE = 'ASC'
TABLES
DATA_TAB = TT.

IF SY-SUBRC = 0.
WRITE:/1(10) YTADIR-DEVCLASS,
(8) YTADIR-AUTHOR,
(15) YTADIR-OBJ_NAME,
(40) YTADIR-TEXT.

FORMAT COLOR 5.
WRITE: 'ダウンロードしました'.
FORMAT COLOR OFF.
ELSE.
WRITE:/ YTADIR-DEVCLASS,YTADIR-AUTHOR,YTADIR-OBJ_NAME,YTADIR-TEXT.
FORMAT COLOR 4.
WRITE: 'ダウンロード出来ない'.
FORMAT COLOR OFF.

ENDIF.
ELSE.
WRITE:/ YTADIR-DEVCLASS,YTADIR-AUTHOR,YTADIR-OBJ_NAME,YTADIR-TEXT.
ENDIF.

ENDLOOP.

ENDFORM.

*---------------------------------------------------------------------*
* FORM GET_TABLE_DATA *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM GET_TABLE_DATA.
SELECT DISTINCT * INTO CORRESPONDING FIELDS OF TABLE T1
FROM DD02T WHERE TABNAME IN TABNAME
AND DDLANGUAGE EQ SY-LANGU.

SELECT * INTO CORRESPONDING FIELDS OF TABLE TAB FROM DD03L AS A
WHERE A~TABNAME IN TABNAME.
SORT TAB BY TABNAME POSITION.

WRITE:/'項目名','PK','データエレメント','タイプ','長さ','小数',
'テーブルチェック','参考テーブル','参照項目','項目テキスト'.
ULINE.
LOOP AT T1.
REFRESH ITAB.
CLEAR YYNAME.

IF DOW = 'X'.
ITAB-FIELD = '項目名'.
ITAB-KEY = 'PK'.
ITAB-ELMENT = 'データエレメント'.
ITAB-TYPE = 'タイプ'.
ITAB-LENG = '長さ'.
ITAB-DECIMALS = '小数'.
ITAB-TEXT = '字段描述'.
ITAB-CHK = 'テーブルチェック'.
ITAB-CAN = '参考テーブル'.
ITAB-CFI = '参照項目'.
APPEND ITAB.
CLEAR ITAB.
ENDIF.
CONCATENATE T1-TABNAME '_' T1-DDTEXT '的表结构如下:'
INTO YYNAME.
FORMAT COLOR 3.
WRITE:/ YYNAME.
FORMAT COLOR OFF.


LOOP AT TAB WHERE TABNAME = T1-TABNAME.
ITAB-FIELD = TAB-FIELDNAME.
ITAB-KEY = TAB-KEYFLAG.
ITAB-ELMENT = TAB-ROLLNAME.
ITAB-TYPE = TAB-DATATYPE.
ITAB-LENG = TAB-LENG.
ITAB-CHK = TAB-CHECKTABLE.
ITAB-CAN = TAB-REFTABLE.
ITAB-CFI = TAB-REFFIELD.
ITAB-DECIMALS = TAB-DECIMALS.

IF TAB-ROLLNAME NE SPACE.
SELECT SINGLE * FROM DD04T WHERE ROLLNAME = TAB-ROLLNAME
AND DDLANGUAGE = SY-LANGU.
IF SY-SUBRC = 0.
ITAB-TEXT = DD04T-DDTEXT.
ELSE.
CLEAR ITAB-TEXT.
ENDIF.
ELSE.
SELECT SINGLE * FROM DD03T WHERE TABNAME = TAB-TABNAME
AND DDLANGUAGE = SY-LANGU
AND FIELDNAME = TAB-FIELDNAME.
IF SY-SUBRC = 0.
ITAB-TEXT = DD03T-DDTEXT.
ELSE.
CLEAR ITAB-TEXT.
ENDIF.
ENDIF.
APPEND ITAB.
WRITE:/ ITAB-FIELD,ITAB-KEY,ITAB-ELMENT,ITAB-TYPE,ITAB-LENG,
ITAB-DECIMALS,ITAB-CHK,ITAB-CAN,ITAB-CFI,ITAB-TEXT.
CLEAR ITAB.
ENDLOOP.

IF DOW = 'X'.

* 禁止文字
REPLACE '/' with '_' into T1-DDTEXT."/スラッシュ
REPLACE '\' with '_' into T1-DDTEXT."\バックスラッシュ(円マーク)
REPLACE ':' with '_' into T1-DDTEXT.":コロン
REPLACE '*' with '_' into T1-DDTEXT."*アスタリスク
REPLACE '"' with '_' into T1-DDTEXT."
REPLACE '<' with '_' into T1-DDTEXT.
REPLACE '>' with '_' into T1-DDTEXT.
REPLACE '|' with '_' into T1-DDTEXT."|パイプ
REPLACE '?' with '_' into T1-DDTEXT."?クエッションマーク

CONCATENATE P_DIR T1-TABNAME '_' T1-DDTEXT '.' STYPE
INTO YYNAME.

CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
FILENAME = YYNAME
FILETYPE = 'ASC'
TABLES
DATA_TAB = ITAB.

ELSE.
ULINE.
ENDIF.

ENDLOOP.
ENDFORM.
*&---------------------------------------------------------------------*
*& FORM GET_FM_DATA 汎用モジュール
*&---------------------------------------------------------------------*
FORM GET_FM_DATA .
DATA: f1(40),f2(40),f3(40) .
SELECT TFDIR~FUNCNAME
TFDIR~PNAME
TFDIR~INCLUDE
TFTIT~STEXT
PROGDIR~NAME
RODIR~OBSOLETE
INTO CORRESPONDING FIELDS OF TABLE IT_TFDIR
FROM TFDIR
INNER JOIN PROGDIR ON TFDIR~PNAME = PROGDIR~NAME AND
PROGDIR~STATE = 'A'
LEFT JOIN TFTIT ON TFDIR~FUNCNAME = TFTIT~FUNCNAME AND
TFTIT~SPRAS = SY-LANGU
LEFT JOIN RODIR ON TFDIR~FUNCNAME = RODIR~OBJECT AND
RODIR~OBJECTTYPE = 'FUNC'
WHERE TFDIR~FUNCNAME IN FUNCNAME.

LOOP AT it_tfdir.
IF it_tfdir-name(1) = '/'.
SPLIT it_tfdir-name AT '/' INTO f1 f2 f3 .
CONCATENATE '/' f2 '/' 'L' f3+4(36) 'U' it_tfdir-include
INTO it_tfdir-incname.
CONCATENATE '/' f2 '/' f3+4(36) INTO it_tfdir-fgname.
ELSE.
CONCATENATE 'L' it_tfdir-name+4(36) 'U' it_tfdir-include
INTO it_tfdir-incname.
it_tfdir-fgname = it_tfdir-name+4(36).
ENDIF.
SELECT SINGLE unam udat INTO (it_tfdir-funam,it_tfdir-fudat)
FROM progdir
WHERE name = it_tfdir-incname .
MODIFY it_tfdir .
ENDLOOP.

WRITE:/ 'プログラム名','汎用グループ','汎用モジュール名','プログラム名','文字','変更者','変更日','テキスト'.
LOOP AT IT_TFDIR.
IF DOW = 'X'.
REFRESH TT.
RN = IT_TFDIR-INCNAME.
READ REPORT RN INTO TT.

* 禁止文字
REPLACE '/' with '_' into IT_TFDIR-STEXT."/スラッシュ
REPLACE '\' with '_' into IT_TFDIR-STEXT."\バックスラッシュ(円マーク)
REPLACE ':' with '_' into IT_TFDIR-STEXT.":コロン
REPLACE '*' with '_' into IT_TFDIR-STEXT."*アスタリスク
REPLACE '"' with '_' into IT_TFDIR-STEXT."
REPLACE '<' with '_' into IT_TFDIR-STEXT.
REPLACE '>' with '_' into IT_TFDIR-STEXT.
REPLACE '|' with '_' into IT_TFDIR-STEXT."|パイプ
REPLACE '?' with '_' into IT_TFDIR-STEXT."?クエッションマーク

CONCATENATE P_DIR IT_TFDIR-FUNCNAME '_' IT_TFDIR-INCNAME
'_' IT_TFDIR-STEXT '.' STYPE
INTO YYNAME.

CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
FILENAME = YYNAME
FILETYPE = 'ASC'
TABLES
DATA_TAB = TT.

IF SY-SUBRC = 0.
* WRITE:/ IT_TFDIR-NAME,IT_TFDIR-FGNAME,IT_TFDIR-FUNCNAME,IT_TFDIR-INCNAME,IT_TFDIR-INCLUDE,
* IT_TFDIR-OBSOLETE,IT_TFDIR-FUNAM,IT_TFDIR-FUDAT,IT_TFDIR-STEXT.
WRITE:/1(20) IT_TFDIR-FUNCNAME,(30)IT_TFDIR-INCNAME,(40)IT_TFDIR-STEXT.
FORMAT COLOR 5.
WRITE: 'ダウンロードしました'.
FORMAT COLOR OFF.
ELSE.
WRITE:/1(20) IT_TFDIR-FUNCNAME,(30)IT_TFDIR-INCNAME,(40)IT_TFDIR-STEXT.
FORMAT COLOR 4.
WRITE: 'ダウンロード出来ない'.
FORMAT COLOR OFF.

ENDIF.

ELSE.
WRITE:/ IT_TFDIR-NAME,IT_TFDIR-FGNAME,IT_TFDIR-FUNCNAME,IT_TFDIR-INCNAME,IT_TFDIR-INCLUDE,
IT_TFDIR-OBSOLETE,IT_TFDIR-FUNAM,IT_TFDIR-FUDAT,IT_TFDIR-STEXT.
ENDIF.

ENDLOOP.

* INLUCDE ダウンロード----------------------
DATA: FUNCPOOL LIKE SY-REPID.
DATA: INCL LIKE SY-REPID OCCURS 0 WITH HEADER LINE.
DATA: T_COMPO LIKE SCOMPO OCCURS 0 WITH HEADER LINE.
DATA: T_CROSS_REF LIKE CROSS OCCURS 0 WITH HEADER LINE.
DATA: T_INC LIKE D010INC OCCURS 0 WITH HEADER LINE.

FUNCPOOL = IT_TFDIR-NAME.
CALL FUNCTION 'RS_PROGRAM_INDEX'
EXPORTING
PG_NAME = FUNCPOOL
* WITHOUT_TREE = ' '
* IMPORTING
* MESSAGE_CLASS =
TABLES
COMPO = T_COMPO
CROSS_REF = T_CROSS_REF
INC = T_INC
EXCEPTIONS
SYNTAX_ERROR = 1
OTHERS = 2.

LOOP AT T_COMPO.
INCL = T_COMPO-INCL .
ENDLOOP.


SORT T_COMPO BY INCL.
DELETE ADJACENT DUPLICATES FROM T_COMPO COMPARING INCL.

WRITE /'FMのインクルード プログラム'.
LOOP AT T_COMPO.
WRITE:/1(20) T_COMPO-INCL.
IF DOW = 'X' AND INCLD = 'X'.
REFRESH TT.
RN = T_COMPO-INCL.
READ REPORT RN INTO TT.

CONCATENATE P_DIR T_COMPO-INCL '_インクルードプログラム' '.' STYPE
INTO YYNAME.

CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
FILENAME = YYNAME
FILETYPE = 'ASC'
TABLES
DATA_TAB = TT.

IF SY-SUBRC = 0.
FORMAT COLOR 5.
WRITE: 'ダウンロードしました'.
FORMAT COLOR OFF.
ELSE.
FORMAT COLOR 4.
WRITE: 'ダウンロード出来ない'.
FORMAT COLOR OFF.
ENDIF.
ENDIF.
ENDLOOP.

ENDFORM. " GET_FM_DATA

13 comments:

Anonymous said...

Hi every one, here every one is sharing such know-how, so it's fastidious to read this website, and I used to visit this blog daily.

Here is my website :: best buy beats solo

Anonymous said...

Howdy fantastic blog! Does running a blog such as this require a great
deal of work? I have no expertise in computer programming
but I had been hoping to start my own blog in the near future.
Anyway, if you have any suggestions or techniques for new blog
owners please share. I know this is off topic nevertheless I simply needed to ask.

Thanks a lot!

Check out my page :: http://webvoyancegratuite.blogspot.fr/

Anonymous said...

Wonderful post however I was wanting to know if you could write a litte more on this topic?
I'd be very thankful if you could elaborate a little
bit more. Appreciate it!

Have a look at my homepage ... nya online casino på nätet; http://nyacasinon2014.webs.com/,

oakleyses said...

gucci handbags, polo ralph lauren, louis vuitton outlet, polo ralph lauren outlet online, longchamp outlet, oakley sunglasses, polo outlet, nike free, louis vuitton outlet, prada handbags, kate spade outlet, prada outlet, ugg boots, christian louboutin, air max, tiffany and co, louboutin pas cher, louis vuitton, cheap oakley sunglasses, christian louboutin shoes, replica watches, replica watches, louis vuitton outlet, ray ban sunglasses, longchamp outlet, ugg boots, nike outlet, nike roshe, christian louboutin outlet, nike air max, tiffany jewelry, jordan pas cher, longchamp outlet, ray ban sunglasses, louis vuitton, longchamp pas cher, nike free run, jordan shoes, chanel handbags, michael kors pas cher, nike air max, ray ban sunglasses, uggs on sale, christian louboutin uk, oakley sunglasses, sac longchamp pas cher, oakley sunglasses, tory burch outlet, oakley sunglasses wholesale

oakleyses said...

ray ban, louboutin, nike roshe run, abercrombie and fitch, lancel, valentino shoes, reebok outlet, mont blanc pens, ralph lauren, nike trainers uk, bottega veneta, new balance shoes, nike air max, soccer shoes, beats by dre, mcm handbags, celine handbags, vans outlet, nike air max, p90x workout, chi flat iron, oakley, hollister, north face outlet, herve leger, longchamp uk, north face outlet, hollister, vans, instyler, timberland boots, hollister clothing, jimmy choo outlet, soccer jerseys, iphone cases, hermes belt, insanity workout, gucci, mac cosmetics, baseball bats, babyliss, nike huaraches, ghd hair, nfl jerseys, converse, wedding dresses, asics running shoes, converse outlet, lululemon, ferragamo shoes

chenmeinv0 said...

adidas superstar trainers
cheap jerseys
cheap basketball shoes
mavericks jerseys
cheap nhl jerseys
polo ralph lauren outlet
moncler coats
moncler pas cher
louboutin shoes
ugg classic
2016.12.21xukaimin

Unknown said...

many thanks for permitting me to comment
http://www.kuwait.prokr.net/
http://www.emirates.prokr.net/

7889520 said...

qzz0620
canada goose outlet
jerseys from china
michael kors handbags
bulgari jewelry
ferragamo outlet
michael kors uk
barbour jackets
pandora charms sale clearance
ferragamo outlet
longchamp outlet

elmota7ta said...

تفصيل ستائر ام القيوين
خياط ستائر ام القيوين

تزيين حدائق ام القيوين
شركة تنسيق حدائق ام القيوين
تركيب عشب صناعي ام القيوين

تركيب سيراميك ام القيوين
معلم تركيب سيراميك ام القيوين
فني تركيب سيراميك ام القيوين

elmota7ta said...

شركة مكافحة حشرات بجدة

شركة نقل عفش بجدة
شركة كشف تسربات المياه بجدة
نجار بجدة
شركة تنسيق حدائق بجدة

شركة تنظيف بمكة
شركة تنظيف بمكة
شركة تنظيف بالبخار بمكة

elmota7ta said...

شركة كشف تسربات المياه بالباحة

شركة كشف تسربات المياه بالقصيم
شركة كشف تسربات المياه بالطائف
شركة كشف تسربات المياه بينبع
شركة نقل عفش بالطائف
شركة نقل عفش بالقصيم

شركة نقل عفش بالدمام
شركة نقل عفش بالرياض

elmota7ta said...

شركة نقل عفش من جدة الي الاردن
شركة نقل عفش من جدة الي الامارات
شركة نقل عفش من جدة الي الكويت
شركة نقل عفش من جدة الي البحرين


شركة تنظيف خزانات بالطائف
شركة مكافحة حشرات بالطائف
شركة تركيب طارد حمام بالمدينة المنورة
شركة شفط بيارات بالمدينة المنورة

mestere said...

m1z41d1z96 k2s27u2b09 w8p64w3i80 g6k57x7m63 g6y53p7f66 u2x82m0c38