{"diffoscope-json-version": 1, "source1": "/input1", "source2": "/input2", "unified_diff": null, "details": [{"source1": "zipinfo {}", "source2": "zipinfo {}", "unified_diff": "@@ -1,8 +1,8 @@\n-Zip file size: 11739 bytes, number of entries: 21\n+Zip file size: 11755 bytes, number of entries: 21\n -rw-r--r--  2.0 unx       64 b- defN 20-Apr-01 08:04 META-INF/MANIFEST.MF\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 META-INF/\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 org/\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 org/apache/\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 org/apache/dubbo/\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 org/apache/dubbo/metadata/\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 org/apache/dubbo/metadata/store/\n@@ -11,13 +11,13 @@\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 META-INF/dubbo/internal/\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 META-INF/maven/\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 META-INF/maven/org.apache.dubbo/\n drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-01 08:04 META-INF/maven/org.apache.dubbo/dubbo-metadata-report-redis/\n -rw-r--r--  2.0 unx     4082 b- defN 20-Apr-01 08:04 META-INF/DEPENDENCIES\n -rw-r--r--  2.0 unx    11358 b- defN 20-Apr-01 08:04 META-INF/LICENSE\n -rw-r--r--  2.0 unx      184 b- defN 20-Apr-01 08:04 META-INF/NOTICE\n--rw-r--r--  2.0 unx     9321 b- defN 20-Apr-01 08:04 org/apache/dubbo/metadata/store/redis/RedisMetadataReport.java\n--rw-r--r--  2.0 unx     1269 b- defN 20-Apr-01 08:04 org/apache/dubbo/metadata/store/redis/RedisMetadataReportFactory.java\n--rw-r--r--  2.0 unx       71 b- defN 20-Apr-01 08:04 META-INF/dubbo/internal/org.apache.dubbo.metadata.report.MetadataReportFactory\n--rw-r--r--  2.0 unx     2383 b- defN 20-Apr-01 08:04 META-INF/maven/org.apache.dubbo/dubbo-metadata-report-redis/pom.xml\n+-rw-r--r--  2.0 unx     9531 b- defN 20-Apr-01 08:04 org/apache/dubbo/metadata/store/redis/RedisMetadataReport.java\n+-rw-r--r--  2.0 unx     1303 b- defN 20-Apr-01 08:04 org/apache/dubbo/metadata/store/redis/RedisMetadataReportFactory.java\n+-rw-r--r--  2.0 unx       72 b- defN 20-Apr-01 08:04 META-INF/dubbo/internal/org.apache.dubbo.metadata.report.MetadataReportFactory\n+-rw-r--r--  2.0 unx     2321 b- defN 20-Apr-01 08:04 META-INF/maven/org.apache.dubbo/dubbo-metadata-report-redis/pom.xml\n -rw-r--r--  2.0 unx       82 b- defN 20-Apr-01 08:04 META-INF/maven/org.apache.dubbo/dubbo-metadata-report-redis/pom.properties\n-21 files, 28814 bytes uncompressed, 8711 bytes compressed:  69.8%\n+21 files, 28997 bytes uncompressed, 8727 bytes compressed:  69.9%\n"}, {"source1": "zipdetails --redact --scan --utc {}", "source2": "zipdetails --redact --scan --utc {}", "unified_diff": "@@ -299,781 +299,781 @@\n 174F Extract Zip Spec      14 (20) '2.0'\n 1750 Extract OS            00 (0) 'MS-DOS'\n 1751 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n 1753 Compression Method    0008 (8) 'Deflated'\n 1755 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1759 CRC                   AE94BF94 (2928983956)\n-175D Compressed Size       0000078F (1935)\n-1761 Uncompressed Size     00002469 (9321)\n+1759 CRC                   7E3D8E6C (2117963372)\n+175D Compressed Size       0000079C (1948)\n+1761 Uncompressed Size     0000253B (9531)\n 1765 Filename Length       003E (62)\n 1767 Extra Length          0000 (0)\n 1769 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n # WARNING: Offset 0x1769: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n 17A7 PAYLOAD\n \n-1F36 LOCAL HEADER #18      04034B50 (67324752)\n-1F3A Extract Zip Spec      14 (20) '2.0'\n-1F3B Extract OS            00 (0) 'MS-DOS'\n-1F3C General Purpose Flag  0800 (2048)\n+1F43 LOCAL HEADER #18      04034B50 (67324752)\n+1F47 Extract Zip Spec      14 (20) '2.0'\n+1F48 Extract OS            00 (0) 'MS-DOS'\n+1F49 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-1F3E Compression Method    0008 (8) 'Deflated'\n-1F40 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-1F44 CRC                   FCE39D55 (4242775381)\n-1F48 Compressed Size       0000026B (619)\n-1F4C Uncompressed Size     000004F5 (1269)\n-1F50 Filename Length       0045 (69)\n-1F52 Extra Length          0000 (0)\n-1F54 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+1F4B Compression Method    0008 (8) 'Deflated'\n+1F4D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+1F51 CRC                   70A19A06 (1889638918)\n+1F55 Compressed Size       00000274 (628)\n+1F59 Uncompressed Size     00000517 (1303)\n+1F5D Filename Length       0045 (69)\n+1F5F Extra Length          0000 (0)\n+1F61 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x1F54: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x1F61: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1F99 PAYLOAD\n+1FA6 PAYLOAD\n \n-2204 LOCAL HEADER #19      04034B50 (67324752)\n-2208 Extract Zip Spec      14 (20) '2.0'\n-2209 Extract OS            00 (0) 'MS-DOS'\n-220A General Purpose Flag  0800 (2048)\n+221A LOCAL HEADER #19      04034B50 (67324752)\n+221E Extract Zip Spec      14 (20) '2.0'\n+221F Extract OS            00 (0) 'MS-DOS'\n+2220 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-220C Compression Method    0008 (8) 'Deflated'\n-220E Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2212 CRC                   2C4E7D33 (743341363)\n-2216 Compressed Size       0000003E (62)\n-221A Uncompressed Size     00000047 (71)\n-221E Filename Length       004E (78)\n-2220 Extra Length          0000 (0)\n-2222 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2222 Compression Method    0008 (8) 'Deflated'\n+2224 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2228 CRC                   C26ABF3F (3261775679)\n+222C Compressed Size       0000003F (63)\n+2230 Uncompressed Size     00000048 (72)\n+2234 Filename Length       004E (78)\n+2236 Extra Length          0000 (0)\n+2238 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2222: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2238: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-2270 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+2286 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n \n-22AE LOCAL HEADER #20      04034B50 (67324752)\n-22B2 Extract Zip Spec      14 (20) '2.0'\n-22B3 Extract OS            00 (0) 'MS-DOS'\n-22B4 General Purpose Flag  0800 (2048)\n+22C5 LOCAL HEADER #20      04034B50 (67324752)\n+22C9 Extract Zip Spec      14 (20) '2.0'\n+22CA Extract OS            00 (0) 'MS-DOS'\n+22CB General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-22B6 Compression Method    0008 (8) 'Deflated'\n-22B8 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-22BC CRC                   7F9CF02D (2140991533)\n-22C0 Compressed Size       0000037B (891)\n-22C4 Uncompressed Size     0000094F (2383)\n-22C8 Filename Length       0043 (67)\n-22CA Extra Length          0000 (0)\n-22CC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+22CD Compression Method    0008 (8) 'Deflated'\n+22CF Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+22D3 CRC                   26D24E82 (651316866)\n+22D7 Compressed Size       00000374 (884)\n+22DB Uncompressed Size     00000911 (2321)\n+22DF Filename Length       0043 (67)\n+22E1 Extra Length          0000 (0)\n+22E3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x22CC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x22E3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-230F PAYLOAD\n+2326 PAYLOAD\n \n-268A LOCAL HEADER #21      04034B50 (67324752)\n-268E Extract Zip Spec      14 (20) '2.0'\n-268F Extract OS            00 (0) 'MS-DOS'\n-2690 General Purpose Flag  0800 (2048)\n+269A LOCAL HEADER #21      04034B50 (67324752)\n+269E Extract Zip Spec      14 (20) '2.0'\n+269F Extract OS            00 (0) 'MS-DOS'\n+26A0 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-2692 Compression Method    0008 (8) 'Deflated'\n-2694 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2698 CRC                   3794C7CD (932497357)\n-269C Compressed Size       0000004C (76)\n-26A0 Uncompressed Size     00000052 (82)\n-26A4 Filename Length       004A (74)\n-26A6 Extra Length          0000 (0)\n-26A8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+26A2 Compression Method    0008 (8) 'Deflated'\n+26A4 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+26A8 CRC                   3794C7CD (932497357)\n+26AC Compressed Size       0000004C (76)\n+26B0 Uncompressed Size     00000052 (82)\n+26B4 Filename Length       004A (74)\n+26B6 Extra Length          0000 (0)\n+26B8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x26A8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x26B8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-26F2 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+2702 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n \n-273E CENTRAL HEADER #1     02014B50 (33639248)\n-2742 Created Zip Spec      14 (20) '2.0'\n-2743 Created OS            03 (3) 'Unix'\n-2744 Extract Zip Spec      14 (20) '2.0'\n-2745 Extract OS            00 (0) 'MS-DOS'\n-2746 General Purpose Flag  0800 (2048)\n+274E CENTRAL HEADER #1     02014B50 (33639248)\n+2752 Created Zip Spec      14 (20) '2.0'\n+2753 Created OS            03 (3) 'Unix'\n+2754 Extract Zip Spec      14 (20) '2.0'\n+2755 Extract OS            00 (0) 'MS-DOS'\n+2756 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-2748 Compression Method    0008 (8) 'Deflated'\n-274A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-274E CRC                   A689EB18 (2794056472)\n-2752 Compressed Size       00000042 (66)\n-2756 Uncompressed Size     00000040 (64)\n-275A Filename Length       0014 (20)\n-275C Extra Length          0000 (0)\n-275E Comment Length        0000 (0)\n-2760 Disk Start            0000 (0)\n-2762 Int File Attributes   0000 (0)\n+2758 Compression Method    0008 (8) 'Deflated'\n+275A Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+275E CRC                   A689EB18 (2794056472)\n+2762 Compressed Size       00000042 (66)\n+2766 Uncompressed Size     00000040 (64)\n+276A Filename Length       0014 (20)\n+276C Extra Length          0000 (0)\n+276E Comment Length        0000 (0)\n+2770 Disk Start            0000 (0)\n+2772 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-2764 Ext File Attributes   81A40000 (2175008768)\n+2774 Ext File Attributes   81A40000 (2175008768)\n      [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n      [Bits 28-31]          08 (8) 'Regular File'\n-2768 Local Header Offset   00000000 (0)\n-276C Filename              'XXXXXXXXXXXXXXXXXXXX'\n+2778 Local Header Offset   00000000 (0)\n+277C Filename              'XXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x276C: Filename 'XXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x277C: Filename 'XXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2780 CENTRAL HEADER #2     02014B50 (33639248)\n-2784 Created Zip Spec      14 (20) '2.0'\n-2785 Created OS            03 (3) 'Unix'\n-2786 Extract Zip Spec      0A (10) '1.0'\n-2787 Extract OS            00 (0) 'MS-DOS'\n-2788 General Purpose Flag  0800 (2048)\n+2790 CENTRAL HEADER #2     02014B50 (33639248)\n+2794 Created Zip Spec      14 (20) '2.0'\n+2795 Created OS            03 (3) 'Unix'\n+2796 Extract Zip Spec      0A (10) '1.0'\n+2797 Extract OS            00 (0) 'MS-DOS'\n+2798 General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-278A Compression Method    0000 (0) 'Stored'\n-278C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2790 CRC                   00000000 (0)\n-2794 Compressed Size       00000000 (0)\n-2798 Uncompressed Size     00000000 (0)\n-279C Filename Length       0009 (9)\n-279E Extra Length          0000 (0)\n-27A0 Comment Length        0000 (0)\n-27A2 Disk Start            0000 (0)\n-27A4 Int File Attributes   0000 (0)\n+279A Compression Method    0000 (0) 'Stored'\n+279C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+27A0 CRC                   00000000 (0)\n+27A4 Compressed Size       00000000 (0)\n+27A8 Uncompressed Size     00000000 (0)\n+27AC Filename Length       0009 (9)\n+27AE Extra Length          0000 (0)\n+27B0 Comment Length        0000 (0)\n+27B2 Disk Start            0000 (0)\n+27B4 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-27A6 Ext File Attributes   41ED0010 (1106051088)\n+27B6 Ext File Attributes   41ED0010 (1106051088)\n      [Bit 4]               Directory\n      [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n      [Bits 28-31]          04 (4) 'Directory'\n-27AA Local Header Offset   00000074 (116)\n-27AE Filename              'XXXXXXXXX'\n+27BA Local Header Offset   00000074 (116)\n+27BE Filename              'XXXXXXXXX'\n #\n-# WARNING: Offset 0x27AE: Filename 'XXXXXXXXX'\n+# WARNING: Offset 0x27BE: Filename 'XXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x27AE: Directory 'XXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x27BE: Directory 'XXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x2786: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXX'\n+# WARNING: Offset 0x2796: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXX'\n #\n \n-27B7 CENTRAL HEADER #3     02014B50 (33639248)\n-27BB Created Zip Spec      14 (20) '2.0'\n-27BC Created OS            03 (3) 'Unix'\n-27BD Extract Zip Spec      0A (10) '1.0'\n-27BE Extract OS            00 (0) 'MS-DOS'\n-27BF General Purpose Flag  0800 (2048)\n+27C7 CENTRAL HEADER #3     02014B50 (33639248)\n+27CB Created Zip Spec      14 (20) '2.0'\n+27CC Created OS            03 (3) 'Unix'\n+27CD Extract Zip Spec      0A (10) '1.0'\n+27CE Extract OS            00 (0) 'MS-DOS'\n+27CF General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-27C1 Compression Method    0000 (0) 'Stored'\n-27C3 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-27C7 CRC                   00000000 (0)\n-27CB Compressed Size       00000000 (0)\n-27CF Uncompressed Size     00000000 (0)\n-27D3 Filename Length       0004 (4)\n-27D5 Extra Length          0000 (0)\n-27D7 Comment Length        0000 (0)\n-27D9 Disk Start            0000 (0)\n-27DB Int File Attributes   0000 (0)\n+27D1 Compression Method    0000 (0) 'Stored'\n+27D3 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+27D7 CRC                   00000000 (0)\n+27DB Compressed Size       00000000 (0)\n+27DF Uncompressed Size     00000000 (0)\n+27E3 Filename Length       0004 (4)\n+27E5 Extra Length          0000 (0)\n+27E7 Comment Length        0000 (0)\n+27E9 Disk Start            0000 (0)\n+27EB Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-27DD Ext File Attributes   41ED0010 (1106051088)\n+27ED Ext File Attributes   41ED0010 (1106051088)\n      [Bit 4]               Directory\n      [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n      [Bits 28-31]          04 (4) 'Directory'\n-27E1 Local Header Offset   0000009B (155)\n-27E5 Filename              'XXXX'\n+27F1 Local Header Offset   0000009B (155)\n+27F5 Filename              'XXXX'\n #\n-# WARNING: Offset 0x27E5: Filename 'XXXX'\n+# WARNING: Offset 0x27F5: Filename 'XXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x27E5: Directory 'XXXX' must end in a '/'\n+# ERROR: Offset 0x27F5: Directory 'XXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x27BD: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXX'\n+# WARNING: Offset 0x27CD: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXX'\n #\n \n-27E9 CENTRAL HEADER #4     02014B50 (33639248)\n-27ED Created Zip Spec      14 (20) '2.0'\n-27EE Created OS            03 (3) 'Unix'\n-27EF Extract Zip Spec      0A (10) '1.0'\n-27F0 Extract OS            00 (0) 'MS-DOS'\n-27F1 General Purpose Flag  0800 (2048)\n+27F9 CENTRAL HEADER #4     02014B50 (33639248)\n+27FD Created Zip Spec      14 (20) '2.0'\n+27FE Created OS            03 (3) 'Unix'\n+27FF Extract Zip Spec      0A (10) '1.0'\n+2800 Extract OS            00 (0) 'MS-DOS'\n+2801 General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-27F3 Compression Method    0000 (0) 'Stored'\n-27F5 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-27F9 CRC                   00000000 (0)\n-27FD Compressed Size       00000000 (0)\n-2801 Uncompressed Size     00000000 (0)\n-2805 Filename Length       000B (11)\n-2807 Extra Length          0000 (0)\n-2809 Comment Length        0000 (0)\n-280B Disk Start            0000 (0)\n-280D Int File Attributes   0000 (0)\n+2803 Compression Method    0000 (0) 'Stored'\n+2805 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2809 CRC                   00000000 (0)\n+280D Compressed Size       00000000 (0)\n+2811 Uncompressed Size     00000000 (0)\n+2815 Filename Length       000B (11)\n+2817 Extra Length          0000 (0)\n+2819 Comment Length        0000 (0)\n+281B Disk Start            0000 (0)\n+281D Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-280F Ext File Attributes   41ED0010 (1106051088)\n+281F Ext File Attributes   41ED0010 (1106051088)\n      [Bit 4]               Directory\n      [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n      [Bits 28-31]          04 (4) 'Directory'\n-2813 Local Header Offset   000000BD (189)\n-2817 Filename              'XXXXXXXXXXX'\n+2823 Local Header Offset   000000BD (189)\n+2827 Filename              'XXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2817: Filename 'XXXXXXXXXXX'\n+# WARNING: Offset 0x2827: Filename 'XXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x2817: Directory 'XXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x2827: Directory 'XXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x27EF: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXX'\n+# WARNING: Offset 0x27FF: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXX'\n #\n \n-2822 CENTRAL HEADER #5     02014B50 (33639248)\n-2826 Created Zip Spec      14 (20) '2.0'\n-2827 Created OS            03 (3) 'Unix'\n-2828 Extract Zip Spec      0A (10) '1.0'\n-2829 Extract OS            00 (0) 'MS-DOS'\n-282A General Purpose Flag  0800 (2048)\n+2832 CENTRAL HEADER #5     02014B50 (33639248)\n+2836 Created Zip Spec      14 (20) '2.0'\n+2837 Created OS            03 (3) 'Unix'\n+2838 Extract Zip Spec      0A (10) '1.0'\n+2839 Extract OS            00 (0) 'MS-DOS'\n+283A General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-282C Compression Method    0000 (0) 'Stored'\n-282E Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2832 CRC                   00000000 (0)\n-2836 Compressed Size       00000000 (0)\n-283A Uncompressed Size     00000000 (0)\n-283E Filename Length       0011 (17)\n-2840 Extra Length          0000 (0)\n-2842 Comment Length        0000 (0)\n-2844 Disk Start            0000 (0)\n-2846 Int File Attributes   0000 (0)\n+283C Compression Method    0000 (0) 'Stored'\n+283E Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2842 CRC                   00000000 (0)\n+2846 Compressed Size       00000000 (0)\n+284A Uncompressed Size     00000000 (0)\n+284E Filename Length       0011 (17)\n+2850 Extra Length          0000 (0)\n+2852 Comment Length        0000 (0)\n+2854 Disk Start            0000 (0)\n+2856 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-2848 Ext File Attributes   41ED0010 (1106051088)\n+2858 Ext File Attributes   41ED0010 (1106051088)\n      [Bit 4]               Directory\n      [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n      [Bits 28-31]          04 (4) 'Directory'\n-284C Local Header Offset   000000E6 (230)\n-2850 Filename              'XXXXXXXXXXXXXXXXX'\n+285C Local Header Offset   000000E6 (230)\n+2860 Filename              'XXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2850: Filename 'XXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2860: Filename 'XXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x2850: Directory 'XXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x2860: Directory 'XXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x2828: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2838: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXX'\n #\n \n-2861 CENTRAL HEADER #6     02014B50 (33639248)\n-2865 Created Zip Spec      14 (20) '2.0'\n-2866 Created OS            03 (3) 'Unix'\n-2867 Extract Zip Spec      0A (10) '1.0'\n-2868 Extract OS            00 (0) 'MS-DOS'\n-2869 General Purpose Flag  0800 (2048)\n+2871 CENTRAL HEADER #6     02014B50 (33639248)\n+2875 Created Zip Spec      14 (20) '2.0'\n+2876 Created OS            03 (3) 'Unix'\n+2877 Extract Zip Spec      0A (10) '1.0'\n+2878 Extract OS            00 (0) 'MS-DOS'\n+2879 General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-286B Compression Method    0000 (0) 'Stored'\n-286D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2871 CRC                   00000000 (0)\n-2875 Compressed Size       00000000 (0)\n-2879 Uncompressed Size     00000000 (0)\n-287D Filename Length       001A (26)\n-287F Extra Length          0000 (0)\n-2881 Comment Length        0000 (0)\n-2883 Disk Start            0000 (0)\n-2885 Int File Attributes   0000 (0)\n+287B Compression Method    0000 (0) 'Stored'\n+287D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2881 CRC                   00000000 (0)\n+2885 Compressed Size       00000000 (0)\n+2889 Uncompressed Size     00000000 (0)\n+288D Filename Length       001A (26)\n+288F Extra Length          0000 (0)\n+2891 Comment Length        0000 (0)\n+2893 Disk Start            0000 (0)\n+2895 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-2887 Ext File Attributes   41ED0010 (1106051088)\n+2897 Ext File Attributes   41ED0010 (1106051088)\n      [Bit 4]               Directory\n      [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n      [Bits 28-31]          04 (4) 'Directory'\n-288B Local Header Offset   00000115 (277)\n-288F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+289B Local Header Offset   00000115 (277)\n+289F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x288F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x289F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x288F: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x289F: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x2867: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2877: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-28A9 CENTRAL HEADER #7     02014B50 (33639248)\n-28AD Created Zip Spec      14 (20) '2.0'\n-28AE Created OS            03 (3) 'Unix'\n-28AF Extract Zip Spec      0A (10) '1.0'\n-28B0 Extract OS            00 (0) 'MS-DOS'\n-28B1 General Purpose Flag  0800 (2048)\n+28B9 CENTRAL HEADER #7     02014B50 (33639248)\n+28BD Created Zip Spec      14 (20) '2.0'\n+28BE Created OS            03 (3) 'Unix'\n+28BF Extract Zip Spec      0A (10) '1.0'\n+28C0 Extract OS            00 (0) 'MS-DOS'\n+28C1 General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-28B3 Compression Method    0000 (0) 'Stored'\n-28B5 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-28B9 CRC                   00000000 (0)\n-28BD Compressed Size       00000000 (0)\n-28C1 Uncompressed Size     00000000 (0)\n-28C5 Filename Length       0020 (32)\n-28C7 Extra Length          0000 (0)\n-28C9 Comment Length        0000 (0)\n-28CB Disk Start            0000 (0)\n-28CD Int File Attributes   0000 (0)\n+28C3 Compression Method    0000 (0) 'Stored'\n+28C5 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+28C9 CRC                   00000000 (0)\n+28CD Compressed Size       00000000 (0)\n+28D1 Uncompressed Size     00000000 (0)\n+28D5 Filename Length       0020 (32)\n+28D7 Extra Length          0000 (0)\n+28D9 Comment Length        0000 (0)\n+28DB Disk Start            0000 (0)\n+28DD Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-28CF Ext File Attributes   41ED0010 (1106051088)\n+28DF Ext File Attributes   41ED0010 (1106051088)\n      [Bit 4]               Directory\n      [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n      [Bits 28-31]          04 (4) 'Directory'\n-28D3 Local Header Offset   0000014D (333)\n-28D7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+28E3 Local Header Offset   0000014D (333)\n+28E7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x28D7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x28E7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x28D7: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x28E7: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x28AF: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x28BF: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-28F7 CENTRAL HEADER #8     02014B50 (33639248)\n-28FB Created Zip Spec      14 (20) '2.0'\n-28FC Created OS            03 (3) 'Unix'\n-28FD Extract Zip Spec      0A (10) '1.0'\n-28FE Extract OS            00 (0) 'MS-DOS'\n-28FF General Purpose Flag  0800 (2048)\n+2907 CENTRAL HEADER #8     02014B50 (33639248)\n+290B Created Zip Spec      14 (20) '2.0'\n+290C Created OS            03 (3) 'Unix'\n+290D Extract Zip Spec      0A (10) '1.0'\n+290E Extract OS            00 (0) 'MS-DOS'\n+290F General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-2901 Compression Method    0000 (0) 'Stored'\n-2903 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2907 CRC                   00000000 (0)\n-290B Compressed Size       00000000 (0)\n-290F Uncompressed Size     00000000 (0)\n-2913 Filename Length       0026 (38)\n-2915 Extra Length          0000 (0)\n-2917 Comment Length        0000 (0)\n-2919 Disk Start            0000 (0)\n-291B Int File Attributes   0000 (0)\n+2911 Compression Method    0000 (0) 'Stored'\n+2913 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2917 CRC                   00000000 (0)\n+291B Compressed Size       00000000 (0)\n+291F Uncompressed Size     00000000 (0)\n+2923 Filename Length       0026 (38)\n+2925 Extra Length          0000 (0)\n+2927 Comment Length        0000 (0)\n+2929 Disk Start            0000 (0)\n+292B Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-291D Ext File Attributes   41ED0010 (1106051088)\n+292D Ext File Attributes   41ED0010 (1106051088)\n      [Bit 4]               Directory\n      [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n      [Bits 28-31]          04 (4) 'Directory'\n-2921 Local Header Offset   0000018B (395)\n-2925 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2931 Local Header Offset   0000018B (395)\n+2935 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2925: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2935: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x2925: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x2935: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x28FD: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x290D: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-294B CENTRAL HEADER #9     02014B50 (33639248)\n-294F Created Zip Spec      14 (20) '2.0'\n-2950 Created OS            03 (3) 'Unix'\n-2951 Extract Zip Spec      0A (10) '1.0'\n-2952 Extract OS            00 (0) 'MS-DOS'\n-2953 General Purpose Flag  0800 (2048)\n+295B CENTRAL HEADER #9     02014B50 (33639248)\n+295F Created Zip Spec      14 (20) '2.0'\n+2960 Created OS            03 (3) 'Unix'\n+2961 Extract Zip Spec      0A (10) '1.0'\n+2962 Extract OS            00 (0) 'MS-DOS'\n+2963 General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-2955 Compression Method    0000 (0) 'Stored'\n-2957 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-295B CRC                   00000000 (0)\n-295F Compressed Size       00000000 (0)\n-2963 Uncompressed Size     00000000 (0)\n-2967 Filename Length       000F (15)\n-2969 Extra Length          0000 (0)\n-296B Comment Length        0000 (0)\n-296D Disk Start            0000 (0)\n-296F Int File Attributes   0000 (0)\n+2965 Compression Method    0000 (0) 'Stored'\n+2967 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+296B CRC                   00000000 (0)\n+296F Compressed Size       00000000 (0)\n+2973 Uncompressed Size     00000000 (0)\n+2977 Filename Length       000F (15)\n+2979 Extra Length          0000 (0)\n+297B Comment Length        0000 (0)\n+297D Disk Start            0000 (0)\n+297F Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-2971 Ext File Attributes   41ED0010 (1106051088)\n+2981 Ext File Attributes   41ED0010 (1106051088)\n      [Bit 4]               Directory\n      [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n      [Bits 28-31]          04 (4) 'Directory'\n-2975 Local Header Offset   000001CF (463)\n-2979 Filename              'XXXXXXXXXXXXXXX'\n+2985 Local Header Offset   000001CF (463)\n+2989 Filename              'XXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2979: Filename 'XXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2989: Filename 'XXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x2979: Directory 'XXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x2989: Directory 'XXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x2951: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2961: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXX'\n #\n \n-2988 CENTRAL HEADER #10    02014B50 (33639248)\n-298C Created Zip Spec      14 (20) '2.0'\n-298D Created OS            03 (3) 'Unix'\n-298E Extract Zip Spec      0A (10) '1.0'\n-298F Extract OS            00 (0) 'MS-DOS'\n-2990 General Purpose Flag  0800 (2048)\n+2998 CENTRAL HEADER #10    02014B50 (33639248)\n+299C Created Zip Spec      14 (20) '2.0'\n+299D Created OS            03 (3) 'Unix'\n+299E Extract Zip Spec      0A (10) '1.0'\n+299F Extract OS            00 (0) 'MS-DOS'\n+29A0 General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-2992 Compression Method    0000 (0) 'Stored'\n-2994 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2998 CRC                   00000000 (0)\n-299C Compressed Size       00000000 (0)\n-29A0 Uncompressed Size     00000000 (0)\n-29A4 Filename Length       0018 (24)\n-29A6 Extra Length          0000 (0)\n-29A8 Comment Length        0000 (0)\n-29AA Disk Start            0000 (0)\n-29AC Int File Attributes   0000 (0)\n+29A2 Compression Method    0000 (0) 'Stored'\n+29A4 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+29A8 CRC                   00000000 (0)\n+29AC Compressed Size       00000000 (0)\n+29B0 Uncompressed Size     00000000 (0)\n+29B4 Filename Length       0018 (24)\n+29B6 Extra Length          0000 (0)\n+29B8 Comment Length        0000 (0)\n+29BA Disk Start            0000 (0)\n+29BC Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-29AE Ext File Attributes   41ED0010 (1106051088)\n+29BE Ext File Attributes   41ED0010 (1106051088)\n      [Bit 4]               Directory\n      [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n      [Bits 28-31]          04 (4) 'Directory'\n-29B2 Local Header Offset   000001FC (508)\n-29B6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n+29C2 Local Header Offset   000001FC (508)\n+29C6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x29B6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29C6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x29B6: Directory 'XXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x29C6: Directory 'XXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x298E: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x299E: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-29CE CENTRAL HEADER #11    02014B50 (33639248)\n-29D2 Created Zip Spec      14 (20) '2.0'\n-29D3 Created OS            03 (3) 'Unix'\n-29D4 Extract Zip Spec      0A (10) '1.0'\n-29D5 Extract OS            00 (0) 'MS-DOS'\n-29D6 General Purpose Flag  0800 (2048)\n+29DE CENTRAL HEADER #11    02014B50 (33639248)\n+29E2 Created Zip Spec      14 (20) '2.0'\n+29E3 Created OS            03 (3) 'Unix'\n+29E4 Extract Zip Spec      0A (10) '1.0'\n+29E5 Extract OS            00 (0) 'MS-DOS'\n+29E6 General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-29D8 Compression Method    0000 (0) 'Stored'\n-29DA Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-29DE CRC                   00000000 (0)\n-29E2 Compressed Size       00000000 (0)\n-29E6 Uncompressed Size     00000000 (0)\n-29EA Filename Length       000F (15)\n-29EC Extra Length          0000 (0)\n-29EE Comment Length        0000 (0)\n-29F0 Disk Start            0000 (0)\n-29F2 Int File Attributes   0000 (0)\n+29E8 Compression Method    0000 (0) 'Stored'\n+29EA Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+29EE CRC                   00000000 (0)\n+29F2 Compressed Size       00000000 (0)\n+29F6 Uncompressed Size     00000000 (0)\n+29FA Filename Length       000F (15)\n+29FC Extra Length          0000 (0)\n+29FE Comment Length        0000 (0)\n+2A00 Disk Start            0000 (0)\n+2A02 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-29F4 Ext File Attributes   41ED0010 (1106051088)\n+2A04 Ext File Attributes   41ED0010 (1106051088)\n      [Bit 4]               Directory\n      [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n      [Bits 28-31]          04 (4) 'Directory'\n-29F8 Local Header Offset   00000232 (562)\n-29FC Filename              'XXXXXXXXXXXXXXX'\n+2A08 Local Header Offset   00000232 (562)\n+2A0C Filename              'XXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x29FC: Filename 'XXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2A0C: Filename 'XXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x29FC: Directory 'XXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x2A0C: Directory 'XXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x29D4: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x29E4: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXX'\n #\n \n-2A0B CENTRAL HEADER #12    02014B50 (33639248)\n-2A0F Created Zip Spec      14 (20) '2.0'\n-2A10 Created OS            03 (3) 'Unix'\n-2A11 Extract Zip Spec      0A (10) '1.0'\n-2A12 Extract OS            00 (0) 'MS-DOS'\n-2A13 General Purpose Flag  0800 (2048)\n+2A1B CENTRAL HEADER #12    02014B50 (33639248)\n+2A1F Created Zip Spec      14 (20) '2.0'\n+2A20 Created OS            03 (3) 'Unix'\n+2A21 Extract Zip Spec      0A (10) '1.0'\n+2A22 Extract OS            00 (0) 'MS-DOS'\n+2A23 General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-2A15 Compression Method    0000 (0) 'Stored'\n-2A17 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2A1B CRC                   00000000 (0)\n-2A1F Compressed Size       00000000 (0)\n-2A23 Uncompressed Size     00000000 (0)\n-2A27 Filename Length       0020 (32)\n-2A29 Extra Length          0000 (0)\n-2A2B Comment Length        0000 (0)\n-2A2D Disk Start            0000 (0)\n-2A2F Int File Attributes   0000 (0)\n+2A25 Compression Method    0000 (0) 'Stored'\n+2A27 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2A2B CRC                   00000000 (0)\n+2A2F Compressed Size       00000000 (0)\n+2A33 Uncompressed Size     00000000 (0)\n+2A37 Filename Length       0020 (32)\n+2A39 Extra Length          0000 (0)\n+2A3B Comment Length        0000 (0)\n+2A3D Disk Start            0000 (0)\n+2A3F Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-2A31 Ext File Attributes   41ED0010 (1106051088)\n+2A41 Ext File Attributes   41ED0010 (1106051088)\n      [Bit 4]               Directory\n      [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n      [Bits 28-31]          04 (4) 'Directory'\n-2A35 Local Header Offset   0000025F (607)\n-2A39 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2A45 Local Header Offset   0000025F (607)\n+2A49 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2A39: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2A49: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x2A39: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x2A49: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x2A11: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2A21: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-2A59 CENTRAL HEADER #13    02014B50 (33639248)\n-2A5D Created Zip Spec      14 (20) '2.0'\n-2A5E Created OS            03 (3) 'Unix'\n-2A5F Extract Zip Spec      0A (10) '1.0'\n-2A60 Extract OS            00 (0) 'MS-DOS'\n-2A61 General Purpose Flag  0800 (2048)\n+2A69 CENTRAL HEADER #13    02014B50 (33639248)\n+2A6D Created Zip Spec      14 (20) '2.0'\n+2A6E Created OS            03 (3) 'Unix'\n+2A6F Extract Zip Spec      0A (10) '1.0'\n+2A70 Extract OS            00 (0) 'MS-DOS'\n+2A71 General Purpose Flag  0800 (2048)\n      [Bit 11]              1 'Language Encoding'\n-2A63 Compression Method    0000 (0) 'Stored'\n-2A65 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2A69 CRC                   00000000 (0)\n-2A6D Compressed Size       00000000 (0)\n-2A71 Uncompressed Size     00000000 (0)\n-2A75 Filename Length       003C (60)\n-2A77 Extra Length          0000 (0)\n-2A79 Comment Length        0000 (0)\n-2A7B Disk Start            0000 (0)\n-2A7D Int File Attributes   0000 (0)\n+2A73 Compression Method    0000 (0) 'Stored'\n+2A75 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2A79 CRC                   00000000 (0)\n+2A7D Compressed Size       00000000 (0)\n+2A81 Uncompressed Size     00000000 (0)\n+2A85 Filename Length       003C (60)\n+2A87 Extra Length          0000 (0)\n+2A89 Comment Length        0000 (0)\n+2A8B Disk Start            0000 (0)\n+2A8D Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-2A7F Ext File Attributes   41ED0010 (1106051088)\n+2A8F Ext File Attributes   41ED0010 (1106051088)\n      [Bit 4]               Directory\n      [Bits 16-24]          01ED (493) 'Unix attrib: rwxr-xr-x'\n      [Bits 28-31]          04 (4) 'Directory'\n-2A83 Local Header Offset   0000029D (669)\n-2A87 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2A93 Local Header Offset   0000029D (669)\n+2A97 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2A87: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2A97: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-# ERROR: Offset 0x2A87: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n+# ERROR: Offset 0x2A97: Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' must end in a '/'\n #        'External Attributes' flag this as a directory\n #\n-# WARNING: Offset 0x2A5F: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2A6F: 'Extract Zip Spec' is '1.0'. Need value >= '2.0' for Directory 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n \n-2AC3 CENTRAL HEADER #14    02014B50 (33639248)\n-2AC7 Created Zip Spec      14 (20) '2.0'\n-2AC8 Created OS            03 (3) 'Unix'\n-2AC9 Extract Zip Spec      14 (20) '2.0'\n-2ACA Extract OS            00 (0) 'MS-DOS'\n-2ACB General Purpose Flag  0800 (2048)\n+2AD3 CENTRAL HEADER #14    02014B50 (33639248)\n+2AD7 Created Zip Spec      14 (20) '2.0'\n+2AD8 Created OS            03 (3) 'Unix'\n+2AD9 Extract Zip Spec      14 (20) '2.0'\n+2ADA Extract OS            00 (0) 'MS-DOS'\n+2ADB General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-2ACD Compression Method    0008 (8) 'Deflated'\n-2ACF Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2AD3 CRC                   684D4AB6 (1749895862)\n-2AD7 Compressed Size       000003D6 (982)\n-2ADB Uncompressed Size     00000FF2 (4082)\n-2ADF Filename Length       0015 (21)\n-2AE1 Extra Length          0000 (0)\n-2AE3 Comment Length        0000 (0)\n-2AE5 Disk Start            0000 (0)\n-2AE7 Int File Attributes   0000 (0)\n+2ADD Compression Method    0008 (8) 'Deflated'\n+2ADF Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2AE3 CRC                   684D4AB6 (1749895862)\n+2AE7 Compressed Size       000003D6 (982)\n+2AEB Uncompressed Size     00000FF2 (4082)\n+2AEF Filename Length       0015 (21)\n+2AF1 Extra Length          0000 (0)\n+2AF3 Comment Length        0000 (0)\n+2AF5 Disk Start            0000 (0)\n+2AF7 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-2AE9 Ext File Attributes   81A40000 (2175008768)\n+2AF9 Ext File Attributes   81A40000 (2175008768)\n      [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n      [Bits 28-31]          08 (8) 'Regular File'\n-2AED Local Header Offset   000002F7 (759)\n-2AF1 Filename              'XXXXXXXXXXXXXXXXXXXXX'\n+2AFD Local Header Offset   000002F7 (759)\n+2B01 Filename              'XXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2AF1: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2B01: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2B06 CENTRAL HEADER #15    02014B50 (33639248)\n-2B0A Created Zip Spec      14 (20) '2.0'\n-2B0B Created OS            03 (3) 'Unix'\n-2B0C Extract Zip Spec      14 (20) '2.0'\n-2B0D Extract OS            00 (0) 'MS-DOS'\n-2B0E General Purpose Flag  0800 (2048)\n+2B16 CENTRAL HEADER #15    02014B50 (33639248)\n+2B1A Created Zip Spec      14 (20) '2.0'\n+2B1B Created OS            03 (3) 'Unix'\n+2B1C Extract Zip Spec      14 (20) '2.0'\n+2B1D Extract OS            00 (0) 'MS-DOS'\n+2B1E General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-2B10 Compression Method    0008 (8) 'Deflated'\n-2B12 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2B16 CRC                   86E2B4B4 (2263004340)\n-2B1A Compressed Size       00000F6D (3949)\n-2B1E Uncompressed Size     00002C5E (11358)\n-2B22 Filename Length       0010 (16)\n-2B24 Extra Length          0000 (0)\n-2B26 Comment Length        0000 (0)\n-2B28 Disk Start            0000 (0)\n-2B2A Int File Attributes   0000 (0)\n+2B20 Compression Method    0008 (8) 'Deflated'\n+2B22 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2B26 CRC                   86E2B4B4 (2263004340)\n+2B2A Compressed Size       00000F6D (3949)\n+2B2E Uncompressed Size     00002C5E (11358)\n+2B32 Filename Length       0010 (16)\n+2B34 Extra Length          0000 (0)\n+2B36 Comment Length        0000 (0)\n+2B38 Disk Start            0000 (0)\n+2B3A Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-2B2C Ext File Attributes   81A40000 (2175008768)\n+2B3C Ext File Attributes   81A40000 (2175008768)\n      [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n      [Bits 28-31]          08 (8) 'Regular File'\n-2B30 Local Header Offset   00000700 (1792)\n-2B34 Filename              'XXXXXXXXXXXXXXXX'\n+2B40 Local Header Offset   00000700 (1792)\n+2B44 Filename              'XXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2B34: Filename 'XXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2B44: Filename 'XXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2B44 CENTRAL HEADER #16    02014B50 (33639248)\n-2B48 Created Zip Spec      14 (20) '2.0'\n-2B49 Created OS            03 (3) 'Unix'\n-2B4A Extract Zip Spec      14 (20) '2.0'\n-2B4B Extract OS            00 (0) 'MS-DOS'\n-2B4C General Purpose Flag  0800 (2048)\n+2B54 CENTRAL HEADER #16    02014B50 (33639248)\n+2B58 Created Zip Spec      14 (20) '2.0'\n+2B59 Created OS            03 (3) 'Unix'\n+2B5A Extract Zip Spec      14 (20) '2.0'\n+2B5B Extract OS            00 (0) 'MS-DOS'\n+2B5C General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-2B4E Compression Method    0008 (8) 'Deflated'\n-2B50 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2B54 CRC                   0C715E4F (208756303)\n-2B58 Compressed Size       00000083 (131)\n-2B5C Uncompressed Size     000000B8 (184)\n-2B60 Filename Length       000F (15)\n-2B62 Extra Length          0000 (0)\n-2B64 Comment Length        0000 (0)\n-2B66 Disk Start            0000 (0)\n-2B68 Int File Attributes   0000 (0)\n+2B5E Compression Method    0008 (8) 'Deflated'\n+2B60 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2B64 CRC                   0C715E4F (208756303)\n+2B68 Compressed Size       00000083 (131)\n+2B6C Uncompressed Size     000000B8 (184)\n+2B70 Filename Length       000F (15)\n+2B72 Extra Length          0000 (0)\n+2B74 Comment Length        0000 (0)\n+2B76 Disk Start            0000 (0)\n+2B78 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-2B6A Ext File Attributes   81A40000 (2175008768)\n+2B7A Ext File Attributes   81A40000 (2175008768)\n      [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n      [Bits 28-31]          08 (8) 'Regular File'\n-2B6E Local Header Offset   0000169B (5787)\n-2B72 Filename              'XXXXXXXXXXXXXXX'\n+2B7E Local Header Offset   0000169B (5787)\n+2B82 Filename              'XXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2B72: Filename 'XXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2B82: Filename 'XXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2B81 CENTRAL HEADER #17    02014B50 (33639248)\n-2B85 Created Zip Spec      14 (20) '2.0'\n-2B86 Created OS            03 (3) 'Unix'\n-2B87 Extract Zip Spec      14 (20) '2.0'\n-2B88 Extract OS            00 (0) 'MS-DOS'\n-2B89 General Purpose Flag  0800 (2048)\n+2B91 CENTRAL HEADER #17    02014B50 (33639248)\n+2B95 Created Zip Spec      14 (20) '2.0'\n+2B96 Created OS            03 (3) 'Unix'\n+2B97 Extract Zip Spec      14 (20) '2.0'\n+2B98 Extract OS            00 (0) 'MS-DOS'\n+2B99 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-2B8B Compression Method    0008 (8) 'Deflated'\n-2B8D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2B91 CRC                   AE94BF94 (2928983956)\n-2B95 Compressed Size       0000078F (1935)\n-2B99 Uncompressed Size     00002469 (9321)\n-2B9D Filename Length       003E (62)\n-2B9F Extra Length          0000 (0)\n-2BA1 Comment Length        0000 (0)\n-2BA3 Disk Start            0000 (0)\n-2BA5 Int File Attributes   0000 (0)\n+2B9B Compression Method    0008 (8) 'Deflated'\n+2B9D Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2BA1 CRC                   7E3D8E6C (2117963372)\n+2BA5 Compressed Size       0000079C (1948)\n+2BA9 Uncompressed Size     0000253B (9531)\n+2BAD Filename Length       003E (62)\n+2BAF Extra Length          0000 (0)\n+2BB1 Comment Length        0000 (0)\n+2BB3 Disk Start            0000 (0)\n+2BB5 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-2BA7 Ext File Attributes   81A40000 (2175008768)\n+2BB7 Ext File Attributes   81A40000 (2175008768)\n      [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n      [Bits 28-31]          08 (8) 'Regular File'\n-2BAB Local Header Offset   0000174B (5963)\n-2BAF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2BBB Local Header Offset   0000174B (5963)\n+2BBF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2BAF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2BBF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2BED CENTRAL HEADER #18    02014B50 (33639248)\n-2BF1 Created Zip Spec      14 (20) '2.0'\n-2BF2 Created OS            03 (3) 'Unix'\n-2BF3 Extract Zip Spec      14 (20) '2.0'\n-2BF4 Extract OS            00 (0) 'MS-DOS'\n-2BF5 General Purpose Flag  0800 (2048)\n+2BFD CENTRAL HEADER #18    02014B50 (33639248)\n+2C01 Created Zip Spec      14 (20) '2.0'\n+2C02 Created OS            03 (3) 'Unix'\n+2C03 Extract Zip Spec      14 (20) '2.0'\n+2C04 Extract OS            00 (0) 'MS-DOS'\n+2C05 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-2BF7 Compression Method    0008 (8) 'Deflated'\n-2BF9 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2BFD CRC                   FCE39D55 (4242775381)\n-2C01 Compressed Size       0000026B (619)\n-2C05 Uncompressed Size     000004F5 (1269)\n-2C09 Filename Length       0045 (69)\n-2C0B Extra Length          0000 (0)\n-2C0D Comment Length        0000 (0)\n-2C0F Disk Start            0000 (0)\n-2C11 Int File Attributes   0000 (0)\n+2C07 Compression Method    0008 (8) 'Deflated'\n+2C09 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2C0D CRC                   70A19A06 (1889638918)\n+2C11 Compressed Size       00000274 (628)\n+2C15 Uncompressed Size     00000517 (1303)\n+2C19 Filename Length       0045 (69)\n+2C1B Extra Length          0000 (0)\n+2C1D Comment Length        0000 (0)\n+2C1F Disk Start            0000 (0)\n+2C21 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-2C13 Ext File Attributes   81A40000 (2175008768)\n+2C23 Ext File Attributes   81A40000 (2175008768)\n      [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n      [Bits 28-31]          08 (8) 'Regular File'\n-2C17 Local Header Offset   00001F36 (7990)\n-2C1B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2C27 Local Header Offset   00001F43 (8003)\n+2C2B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2C1B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2C2B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2C60 CENTRAL HEADER #19    02014B50 (33639248)\n-2C64 Created Zip Spec      14 (20) '2.0'\n-2C65 Created OS            03 (3) 'Unix'\n-2C66 Extract Zip Spec      14 (20) '2.0'\n-2C67 Extract OS            00 (0) 'MS-DOS'\n-2C68 General Purpose Flag  0800 (2048)\n+2C70 CENTRAL HEADER #19    02014B50 (33639248)\n+2C74 Created Zip Spec      14 (20) '2.0'\n+2C75 Created OS            03 (3) 'Unix'\n+2C76 Extract Zip Spec      14 (20) '2.0'\n+2C77 Extract OS            00 (0) 'MS-DOS'\n+2C78 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-2C6A Compression Method    0008 (8) 'Deflated'\n-2C6C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2C70 CRC                   2C4E7D33 (743341363)\n-2C74 Compressed Size       0000003E (62)\n-2C78 Uncompressed Size     00000047 (71)\n-2C7C Filename Length       004E (78)\n-2C7E Extra Length          0000 (0)\n-2C80 Comment Length        0000 (0)\n-2C82 Disk Start            0000 (0)\n-2C84 Int File Attributes   0000 (0)\n+2C7A Compression Method    0008 (8) 'Deflated'\n+2C7C Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2C80 CRC                   C26ABF3F (3261775679)\n+2C84 Compressed Size       0000003F (63)\n+2C88 Uncompressed Size     00000048 (72)\n+2C8C Filename Length       004E (78)\n+2C8E Extra Length          0000 (0)\n+2C90 Comment Length        0000 (0)\n+2C92 Disk Start            0000 (0)\n+2C94 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-2C86 Ext File Attributes   81A40000 (2175008768)\n+2C96 Ext File Attributes   81A40000 (2175008768)\n      [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n      [Bits 28-31]          08 (8) 'Regular File'\n-2C8A Local Header Offset   00002204 (8708)\n-2C8E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2C9A Local Header Offset   0000221A (8730)\n+2C9E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2C8E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2C9E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2CDC CENTRAL HEADER #20    02014B50 (33639248)\n-2CE0 Created Zip Spec      14 (20) '2.0'\n-2CE1 Created OS            03 (3) 'Unix'\n-2CE2 Extract Zip Spec      14 (20) '2.0'\n-2CE3 Extract OS            00 (0) 'MS-DOS'\n-2CE4 General Purpose Flag  0800 (2048)\n+2CEC CENTRAL HEADER #20    02014B50 (33639248)\n+2CF0 Created Zip Spec      14 (20) '2.0'\n+2CF1 Created OS            03 (3) 'Unix'\n+2CF2 Extract Zip Spec      14 (20) '2.0'\n+2CF3 Extract OS            00 (0) 'MS-DOS'\n+2CF4 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-2CE6 Compression Method    0008 (8) 'Deflated'\n-2CE8 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2CEC CRC                   7F9CF02D (2140991533)\n-2CF0 Compressed Size       0000037B (891)\n-2CF4 Uncompressed Size     0000094F (2383)\n-2CF8 Filename Length       0043 (67)\n-2CFA Extra Length          0000 (0)\n-2CFC Comment Length        0000 (0)\n-2CFE Disk Start            0000 (0)\n-2D00 Int File Attributes   0000 (0)\n+2CF6 Compression Method    0008 (8) 'Deflated'\n+2CF8 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2CFC CRC                   26D24E82 (651316866)\n+2D00 Compressed Size       00000374 (884)\n+2D04 Uncompressed Size     00000911 (2321)\n+2D08 Filename Length       0043 (67)\n+2D0A Extra Length          0000 (0)\n+2D0C Comment Length        0000 (0)\n+2D0E Disk Start            0000 (0)\n+2D10 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-2D02 Ext File Attributes   81A40000 (2175008768)\n+2D12 Ext File Attributes   81A40000 (2175008768)\n      [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n      [Bits 28-31]          08 (8) 'Regular File'\n-2D06 Local Header Offset   000022AE (8878)\n-2D0A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2D16 Local Header Offset   000022C5 (8901)\n+2D1A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2D0A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2D1A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2D4D CENTRAL HEADER #21    02014B50 (33639248)\n-2D51 Created Zip Spec      14 (20) '2.0'\n-2D52 Created OS            03 (3) 'Unix'\n-2D53 Extract Zip Spec      14 (20) '2.0'\n-2D54 Extract OS            00 (0) 'MS-DOS'\n-2D55 General Purpose Flag  0800 (2048)\n+2D5D CENTRAL HEADER #21    02014B50 (33639248)\n+2D61 Created Zip Spec      14 (20) '2.0'\n+2D62 Created OS            03 (3) 'Unix'\n+2D63 Extract Zip Spec      14 (20) '2.0'\n+2D64 Extract OS            00 (0) 'MS-DOS'\n+2D65 General Purpose Flag  0800 (2048)\n      [Bits 1-2]            0 'Normal Compression'\n      [Bit 11]              1 'Language Encoding'\n-2D57 Compression Method    0008 (8) 'Deflated'\n-2D59 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n-2D5D CRC                   3794C7CD (932497357)\n-2D61 Compressed Size       0000004C (76)\n-2D65 Uncompressed Size     00000052 (82)\n-2D69 Filename Length       004A (74)\n-2D6B Extra Length          0000 (0)\n-2D6D Comment Length        0000 (0)\n-2D6F Disk Start            0000 (0)\n-2D71 Int File Attributes   0000 (0)\n+2D67 Compression Method    0008 (8) 'Deflated'\n+2D69 Modification Time     50814080 (1350647936) 'Wed Apr  1 08:04:00 2020'\n+2D6D CRC                   3794C7CD (932497357)\n+2D71 Compressed Size       0000004C (76)\n+2D75 Uncompressed Size     00000052 (82)\n+2D79 Filename Length       004A (74)\n+2D7B Extra Length          0000 (0)\n+2D7D Comment Length        0000 (0)\n+2D7F Disk Start            0000 (0)\n+2D81 Int File Attributes   0000 (0)\n      [Bit 0]               0 'Binary Data'\n-2D73 Ext File Attributes   81A40000 (2175008768)\n+2D83 Ext File Attributes   81A40000 (2175008768)\n      [Bits 16-24]          01A4 (420) 'Unix attrib: rw-r--r--'\n      [Bits 28-31]          08 (8) 'Regular File'\n-2D77 Local Header Offset   0000268A (9866)\n-2D7B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+2D87 Local Header Offset   0000269A (9882)\n+2D8B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x2D7B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x2D8B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n \n-2DC5 END CENTRAL HEADER    06054B50 (101010256)\n-2DC9 Number of this disk   0000 (0)\n-2DCB Central Dir Disk no   0000 (0)\n-2DCD Entries in this disk  0015 (21)\n-2DCF Total Entries         0015 (21)\n-2DD1 Size of Central Dir   00000687 (1671)\n-2DD5 Offset to Central Dir 0000273E (10046)\n-2DD9 Comment Length        0000 (0)\n+2DD5 END CENTRAL HEADER    06054B50 (101010256)\n+2DD9 Number of this disk   0000 (0)\n+2DDB Central Dir Disk no   0000 (0)\n+2DDD Entries in this disk  0015 (21)\n+2DDF Total Entries         0015 (21)\n+2DE1 Size of Central Dir   00000687 (1671)\n+2DE5 Offset to Central Dir 0000274E (10062)\n+2DE9 Comment Length        0000 (0)\n #\n # Error Count: 12\n # Warning Count: 54\n #\n # Done\n"}, {"source1": "org/apache/dubbo/metadata/store/redis/RedisMetadataReport.java", "source2": "org/apache/dubbo/metadata/store/redis/RedisMetadataReport.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,210 +1,210 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.store.redis;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.metadata.report.identifier.BaseMetadataIdentifier;\n-import org.apache.dubbo.metadata.report.identifier.KeyTypeEnum;\n-import org.apache.dubbo.metadata.report.identifier.MetadataIdentifier;\n-import org.apache.dubbo.metadata.report.identifier.ServiceMetadataIdentifier;\n-import org.apache.dubbo.metadata.report.identifier.SubscriberMetadataIdentifier;\n-import org.apache.dubbo.metadata.report.support.AbstractMetadataReport;\n-import org.apache.dubbo.rpc.RpcException;\n-\n-import org.apache.commons.pool2.impl.GenericObjectPoolConfig;\n-import redis.clients.jedis.HostAndPort;\n-import redis.clients.jedis.Jedis;\n-import redis.clients.jedis.JedisCluster;\n-import redis.clients.jedis.JedisPool;\n-import redis.clients.jedis.JedisPoolConfig;\n-\n-import java.util.ArrayList;\n-import java.util.Arrays;\n-import java.util.Collections;\n-import java.util.HashSet;\n-import java.util.List;\n-import java.util.Set;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.CLUSTER_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_TIMEOUT;\n-import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\n-import static org.apache.dubbo.metadata.MetadataConstants.META_DATA_STORE_TAG;\n-\n-/**\n- * RedisMetadataReport\n- */\n-public class RedisMetadataReport extends AbstractMetadataReport {\n-\n-    private final static String REDIS_DATABASE_KEY = \"database\";\n-    /**\n-     * maximum number of retries\n-     */\n-    private final static int MAX_ATTEMPTS = 2;\n-    /**\n-     * the default slot of the redis database\n-     */\n-    private final static int DEFAULT_REDIS_DATABASE_SLOT = 0;\n-\n-    JedisPool pool;\n-    Set<HostAndPort> jedisClusterNodes;\n-    private int timeout;\n-    private String password;\n-\n-\n-    public RedisMetadataReport(URL url) {\n-        super(url);\n-        timeout = url.getParameter(TIMEOUT_KEY, DEFAULT_TIMEOUT);\n-        password = url.getPassword();\n-        if (url.getParameter(CLUSTER_KEY, false)) {\n-            jedisClusterNodes = new HashSet<HostAndPort>();\n-            List<URL> urls = url.getBackupUrls();\n-            for (URL tmpUrl : urls) {\n-                jedisClusterNodes.add(new HostAndPort(tmpUrl.getHost(), tmpUrl.getPort()));\n-            }\n-        } else {\n-            int database = url.getParameter(REDIS_DATABASE_KEY, DEFAULT_REDIS_DATABASE_SLOT);\n-            pool = new JedisPool(new JedisPoolConfig(), url.getHost(), url.getPort(), timeout, password, database);\n-        }\n-    }\n-\n-    @Override\n-    protected void doStoreProviderMetadata(MetadataIdentifier providerMetadataIdentifier, String serviceDefinitions) {\n-        this.storeMetadata(providerMetadataIdentifier, serviceDefinitions);\n-    }\n-\n-    @Override\n-    protected void doStoreConsumerMetadata(MetadataIdentifier consumerMetadataIdentifier, String value) {\n-        this.storeMetadata(consumerMetadataIdentifier, value);\n-    }\n-\n-    @Override\n-    protected void doSaveMetadata(ServiceMetadataIdentifier serviceMetadataIdentifier, URL url) {\n-        this.storeMetadata(serviceMetadataIdentifier, URL.encode(url.toFullString()));\n-    }\n-\n-    @Override\n-    protected void doRemoveMetadata(ServiceMetadataIdentifier serviceMetadataIdentifier) {\n-        this.deleteMetadata(serviceMetadataIdentifier);\n-    }\n-\n-    @Override\n-    protected List<String> doGetExportedURLs(ServiceMetadataIdentifier metadataIdentifier) {\n-        String content = getMetadata(metadataIdentifier);\n-        if (StringUtils.isEmpty(content)) {\n-            return Collections.emptyList();\n-        }\n-        return new ArrayList<String>(Arrays.asList(URL.decode(content)));\n-    }\n-\n-    @Override\n-    protected void doSaveSubscriberData(SubscriberMetadataIdentifier subscriberMetadataIdentifier, String urlListStr) {\n-        this.storeMetadata(subscriberMetadataIdentifier, urlListStr);\n-    }\n-\n-    @Override\n-    protected String doGetSubscribedURLs(SubscriberMetadataIdentifier subscriberMetadataIdentifier) {\n-        return this.getMetadata(subscriberMetadataIdentifier);\n-    }\n-\n-    @Override\n-    public String getServiceDefinition(MetadataIdentifier metadataIdentifier) {\n-        return this.getMetadata(metadataIdentifier);\n-    }\n-\n-    private void storeMetadata(BaseMetadataIdentifier metadataIdentifier, String v) {\n-        if (pool != null) {\n-            storeMetadataStandalone(metadataIdentifier, v);\n-        } else {\n-            storeMetadataInCluster(metadataIdentifier, v);\n-        }\n-    }\n-\n-    private void storeMetadataInCluster(BaseMetadataIdentifier metadataIdentifier, String v) {\n-        try (JedisCluster jedisCluster = new JedisCluster(jedisClusterNodes, timeout, timeout, MAX_ATTEMPTS, password,\n-                new GenericObjectPoolConfig())) {\n-            jedisCluster.set(metadataIdentifier.getIdentifierKey() + META_DATA_STORE_TAG, v);\n-        } catch (Throwable e) {\n-            logger.error(\"Failed to put \" + metadataIdentifier + \" to redis cluster \" + v + \", cause: \" + e.getMessage(), e);\n-            throw new RpcException(\"Failed to put \" + metadataIdentifier + \" to redis cluster \" + v + \", cause: \" + e.getMessage(), e);\n-        }\n-    }\n-\n-    private void storeMetadataStandalone(BaseMetadataIdentifier metadataIdentifier, String v) {\n-        try (Jedis jedis = pool.getResource()) {\n-            jedis.set(metadataIdentifier.getUniqueKey(KeyTypeEnum.UNIQUE_KEY), v);\n-        } catch (Throwable e) {\n-            logger.error(\"Failed to put \" + metadataIdentifier + \" to redis \" + v + \", cause: \" + e.getMessage(), e);\n-            throw new RpcException(\"Failed to put \" + metadataIdentifier + \" to redis \" + v + \", cause: \" + e.getMessage(), e);\n-        }\n-    }\n-\n-    private void deleteMetadata(BaseMetadataIdentifier metadataIdentifier) {\n-        if (pool != null) {\n-            deleteMetadataStandalone(metadataIdentifier);\n-        } else {\n-            deleteMetadataInCluster(metadataIdentifier);\n-        }\n-    }\n-\n-    private void deleteMetadataInCluster(BaseMetadataIdentifier metadataIdentifier) {\n-        try (JedisCluster jedisCluster = new JedisCluster(jedisClusterNodes, timeout, timeout, MAX_ATTEMPTS, password,\n-                new GenericObjectPoolConfig())) {\n-            jedisCluster.del(metadataIdentifier.getIdentifierKey() + META_DATA_STORE_TAG);\n-        } catch (Throwable e) {\n-            logger.error(\"Failed to delete \" + metadataIdentifier + \" from redis cluster , cause: \" + e.getMessage(), e);\n-            throw new RpcException(\"Failed to delete \" + metadataIdentifier + \" from redis cluster , cause: \" + e.getMessage(), e);\n-        }\n-    }\n-\n-    private void deleteMetadataStandalone(BaseMetadataIdentifier metadataIdentifier) {\n-        try (Jedis jedis = pool.getResource()) {\n-            jedis.del(metadataIdentifier.getUniqueKey(KeyTypeEnum.UNIQUE_KEY));\n-        } catch (Throwable e) {\n-            logger.error(\"Failed to delete \" + metadataIdentifier + \" from redis , cause: \" + e.getMessage(), e);\n-            throw new RpcException(\"Failed to delete \" + metadataIdentifier + \" from redis , cause: \" + e.getMessage(), e);\n-        }\n-    }\n-\n-    private String getMetadata(BaseMetadataIdentifier metadataIdentifier) {\n-        if (pool != null) {\n-            return getMetadataStandalone(metadataIdentifier);\n-        } else {\n-            return getMetadataInCluster(metadataIdentifier);\n-        }\n-    }\n-\n-    private String getMetadataInCluster(BaseMetadataIdentifier metadataIdentifier) {\n-        try (JedisCluster jedisCluster = new JedisCluster(jedisClusterNodes, timeout, timeout, MAX_ATTEMPTS, password,\n-                new GenericObjectPoolConfig())) {\n-            return jedisCluster.get(metadataIdentifier.getIdentifierKey() + META_DATA_STORE_TAG);\n-        } catch (Throwable e) {\n-            logger.error(\"Failed to get \" + metadataIdentifier + \" from redis cluster , cause: \" + e.getMessage(), e);\n-            throw new RpcException(\"Failed to get \" + metadataIdentifier + \" from redis cluster , cause: \" + e.getMessage(), e);\n-        }\n-    }\n-\n-    private String getMetadataStandalone(BaseMetadataIdentifier metadataIdentifier) {\n-        try (Jedis jedis = pool.getResource()) {\n-            return jedis.get(metadataIdentifier.getUniqueKey(KeyTypeEnum.UNIQUE_KEY));\n-        } catch (Throwable e) {\n-            logger.error(\"Failed to get \" + metadataIdentifier + \" from redis , cause: \" + e.getMessage(), e);\n-            throw new RpcException(\"Failed to get \" + metadataIdentifier + \" from redis , cause: \" + e.getMessage(), e);\n-        }\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.store.redis;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.metadata.report.identifier.BaseMetadataIdentifier;\r\n+import org.apache.dubbo.metadata.report.identifier.KeyTypeEnum;\r\n+import org.apache.dubbo.metadata.report.identifier.MetadataIdentifier;\r\n+import org.apache.dubbo.metadata.report.identifier.ServiceMetadataIdentifier;\r\n+import org.apache.dubbo.metadata.report.identifier.SubscriberMetadataIdentifier;\r\n+import org.apache.dubbo.metadata.report.support.AbstractMetadataReport;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+\r\n+import org.apache.commons.pool2.impl.GenericObjectPoolConfig;\r\n+import redis.clients.jedis.HostAndPort;\r\n+import redis.clients.jedis.Jedis;\r\n+import redis.clients.jedis.JedisCluster;\r\n+import redis.clients.jedis.JedisPool;\r\n+import redis.clients.jedis.JedisPoolConfig;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.Arrays;\r\n+import java.util.Collections;\r\n+import java.util.HashSet;\r\n+import java.util.List;\r\n+import java.util.Set;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.CLUSTER_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_TIMEOUT;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\r\n+import static org.apache.dubbo.metadata.MetadataConstants.META_DATA_STORE_TAG;\r\n+\r\n+/**\r\n+ * RedisMetadataReport\r\n+ */\r\n+public class RedisMetadataReport extends AbstractMetadataReport {\r\n+\r\n+    private final static String REDIS_DATABASE_KEY = \"database\";\r\n+    /**\r\n+     * maximum number of retries\r\n+     */\r\n+    private final static int MAX_ATTEMPTS = 2;\r\n+    /**\r\n+     * the default slot of the redis database\r\n+     */\r\n+    private final static int DEFAULT_REDIS_DATABASE_SLOT = 0;\r\n+\r\n+    JedisPool pool;\r\n+    Set<HostAndPort> jedisClusterNodes;\r\n+    private int timeout;\r\n+    private String password;\r\n+\r\n+\r\n+    public RedisMetadataReport(URL url) {\r\n+        super(url);\r\n+        timeout = url.getParameter(TIMEOUT_KEY, DEFAULT_TIMEOUT);\r\n+        password = url.getPassword();\r\n+        if (url.getParameter(CLUSTER_KEY, false)) {\r\n+            jedisClusterNodes = new HashSet<HostAndPort>();\r\n+            List<URL> urls = url.getBackupUrls();\r\n+            for (URL tmpUrl : urls) {\r\n+                jedisClusterNodes.add(new HostAndPort(tmpUrl.getHost(), tmpUrl.getPort()));\r\n+            }\r\n+        } else {\r\n+            int database = url.getParameter(REDIS_DATABASE_KEY, DEFAULT_REDIS_DATABASE_SLOT);\r\n+            pool = new JedisPool(new JedisPoolConfig(), url.getHost(), url.getPort(), timeout, password, database);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doStoreProviderMetadata(MetadataIdentifier providerMetadataIdentifier, String serviceDefinitions) {\r\n+        this.storeMetadata(providerMetadataIdentifier, serviceDefinitions);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doStoreConsumerMetadata(MetadataIdentifier consumerMetadataIdentifier, String value) {\r\n+        this.storeMetadata(consumerMetadataIdentifier, value);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doSaveMetadata(ServiceMetadataIdentifier serviceMetadataIdentifier, URL url) {\r\n+        this.storeMetadata(serviceMetadataIdentifier, URL.encode(url.toFullString()));\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doRemoveMetadata(ServiceMetadataIdentifier serviceMetadataIdentifier) {\r\n+        this.deleteMetadata(serviceMetadataIdentifier);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected List<String> doGetExportedURLs(ServiceMetadataIdentifier metadataIdentifier) {\r\n+        String content = getMetadata(metadataIdentifier);\r\n+        if (StringUtils.isEmpty(content)) {\r\n+            return Collections.emptyList();\r\n+        }\r\n+        return new ArrayList<String>(Arrays.asList(URL.decode(content)));\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doSaveSubscriberData(SubscriberMetadataIdentifier subscriberMetadataIdentifier, String urlListStr) {\r\n+        this.storeMetadata(subscriberMetadataIdentifier, urlListStr);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected String doGetSubscribedURLs(SubscriberMetadataIdentifier subscriberMetadataIdentifier) {\r\n+        return this.getMetadata(subscriberMetadataIdentifier);\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getServiceDefinition(MetadataIdentifier metadataIdentifier) {\r\n+        return this.getMetadata(metadataIdentifier);\r\n+    }\r\n+\r\n+    private void storeMetadata(BaseMetadataIdentifier metadataIdentifier, String v) {\r\n+        if (pool != null) {\r\n+            storeMetadataStandalone(metadataIdentifier, v);\r\n+        } else {\r\n+            storeMetadataInCluster(metadataIdentifier, v);\r\n+        }\r\n+    }\r\n+\r\n+    private void storeMetadataInCluster(BaseMetadataIdentifier metadataIdentifier, String v) {\r\n+        try (JedisCluster jedisCluster = new JedisCluster(jedisClusterNodes, timeout, timeout, MAX_ATTEMPTS, password,\r\n+                new GenericObjectPoolConfig())) {\r\n+            jedisCluster.set(metadataIdentifier.getIdentifierKey() + META_DATA_STORE_TAG, v);\r\n+        } catch (Throwable e) {\r\n+            logger.error(\"Failed to put \" + metadataIdentifier + \" to redis cluster \" + v + \", cause: \" + e.getMessage(), e);\r\n+            throw new RpcException(\"Failed to put \" + metadataIdentifier + \" to redis cluster \" + v + \", cause: \" + e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+    private void storeMetadataStandalone(BaseMetadataIdentifier metadataIdentifier, String v) {\r\n+        try (Jedis jedis = pool.getResource()) {\r\n+            jedis.set(metadataIdentifier.getUniqueKey(KeyTypeEnum.UNIQUE_KEY), v);\r\n+        } catch (Throwable e) {\r\n+            logger.error(\"Failed to put \" + metadataIdentifier + \" to redis \" + v + \", cause: \" + e.getMessage(), e);\r\n+            throw new RpcException(\"Failed to put \" + metadataIdentifier + \" to redis \" + v + \", cause: \" + e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+    private void deleteMetadata(BaseMetadataIdentifier metadataIdentifier) {\r\n+        if (pool != null) {\r\n+            deleteMetadataStandalone(metadataIdentifier);\r\n+        } else {\r\n+            deleteMetadataInCluster(metadataIdentifier);\r\n+        }\r\n+    }\r\n+\r\n+    private void deleteMetadataInCluster(BaseMetadataIdentifier metadataIdentifier) {\r\n+        try (JedisCluster jedisCluster = new JedisCluster(jedisClusterNodes, timeout, timeout, MAX_ATTEMPTS, password,\r\n+                new GenericObjectPoolConfig())) {\r\n+            jedisCluster.del(metadataIdentifier.getIdentifierKey() + META_DATA_STORE_TAG);\r\n+        } catch (Throwable e) {\r\n+            logger.error(\"Failed to delete \" + metadataIdentifier + \" from redis cluster , cause: \" + e.getMessage(), e);\r\n+            throw new RpcException(\"Failed to delete \" + metadataIdentifier + \" from redis cluster , cause: \" + e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+    private void deleteMetadataStandalone(BaseMetadataIdentifier metadataIdentifier) {\r\n+        try (Jedis jedis = pool.getResource()) {\r\n+            jedis.del(metadataIdentifier.getUniqueKey(KeyTypeEnum.UNIQUE_KEY));\r\n+        } catch (Throwable e) {\r\n+            logger.error(\"Failed to delete \" + metadataIdentifier + \" from redis , cause: \" + e.getMessage(), e);\r\n+            throw new RpcException(\"Failed to delete \" + metadataIdentifier + \" from redis , cause: \" + e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+    private String getMetadata(BaseMetadataIdentifier metadataIdentifier) {\r\n+        if (pool != null) {\r\n+            return getMetadataStandalone(metadataIdentifier);\r\n+        } else {\r\n+            return getMetadataInCluster(metadataIdentifier);\r\n+        }\r\n+    }\r\n+\r\n+    private String getMetadataInCluster(BaseMetadataIdentifier metadataIdentifier) {\r\n+        try (JedisCluster jedisCluster = new JedisCluster(jedisClusterNodes, timeout, timeout, MAX_ATTEMPTS, password,\r\n+                new GenericObjectPoolConfig())) {\r\n+            return jedisCluster.get(metadataIdentifier.getIdentifierKey() + META_DATA_STORE_TAG);\r\n+        } catch (Throwable e) {\r\n+            logger.error(\"Failed to get \" + metadataIdentifier + \" from redis cluster , cause: \" + e.getMessage(), e);\r\n+            throw new RpcException(\"Failed to get \" + metadataIdentifier + \" from redis cluster , cause: \" + e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+    private String getMetadataStandalone(BaseMetadataIdentifier metadataIdentifier) {\r\n+        try (Jedis jedis = pool.getResource()) {\r\n+            return jedis.get(metadataIdentifier.getUniqueKey(KeyTypeEnum.UNIQUE_KEY));\r\n+        } catch (Throwable e) {\r\n+            logger.error(\"Failed to get \" + metadataIdentifier + \" from redis , cause: \" + e.getMessage(), e);\r\n+            throw new RpcException(\"Failed to get \" + metadataIdentifier + \" from redis , cause: \" + e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/store/redis/RedisMetadataReportFactory.java", "source2": "org/apache/dubbo/metadata/store/redis/RedisMetadataReportFactory.java", "comments": ["Ordering differences only"], "unified_diff": "@@ -1,34 +1,34 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.store.redis;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.metadata.report.MetadataReport;\n-import org.apache.dubbo.metadata.report.support.AbstractMetadataReportFactory;\n-\n-/**\n- * RedisMetadataReportFactory.\n- */\n-public class RedisMetadataReportFactory extends AbstractMetadataReportFactory {\n-\n-\n-    @Override\n-    public MetadataReport createMetadataReport(URL url) {\n-        return new RedisMetadataReport(url);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.store.redis;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.metadata.report.MetadataReport;\r\n+import org.apache.dubbo.metadata.report.support.AbstractMetadataReportFactory;\r\n+\r\n+/**\r\n+ * RedisMetadataReportFactory.\r\n+ */\r\n+public class RedisMetadataReportFactory extends AbstractMetadataReportFactory {\r\n+\r\n+\r\n+    @Override\r\n+    public MetadataReport createMetadataReport(URL url) {\r\n+        return new RedisMetadataReport(url);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "META-INF/dubbo/internal/org.apache.dubbo.metadata.report.MetadataReportFactory", "source2": "META-INF/dubbo/internal/org.apache.dubbo.metadata.report.MetadataReportFactory", "comments": ["Ordering differences only"], "unified_diff": "@@ -1 +1 @@\n-redis=org.apache.dubbo.metadata.store.redis.RedisMetadataReportFactory\n+redis=org.apache.dubbo.metadata.store.redis.RedisMetadataReportFactory\r\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-metadata-report-redis/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-metadata-report-redis/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,149 +1,146 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 202d 2d3e 0d0a 3c70  ense...  -->..<p\n-00000350: 726f 6a65 6374 2078 7369 3a73 6368 656d  roject xsi:schem\n-00000360: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000370: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n-00000380: 7267 2f50 4f4d 2f34 2e30 2e30 2068 7474  rg/POM/4.0.0 htt\n-00000390: 7073 3a2f 2f6d 6176 656e 2e61 7061 6368  ps://maven.apach\n-000003a0: 652e 6f72 672f 7873 642f 6d61 7665 6e2d  e.org/xsd/maven-\n-000003b0: 342e 302e 302e 7873 6422 2078 6d6c 6e73  4.0.0.xsd\" xmlns\n-000003c0: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-000003d0: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-000003e0: 302e 3022 0d0a 2020 2020 786d 6c6e 733a  0.0\"..    xmlns:\n-000003f0: 7873 693d 2268 7474 703a 2f2f 7777 772e  xsi=\"http://www.\n-00000400: 7733 2e6f 7267 2f32 3030 312f 584d 4c53  w3.org/2001/XMLS\n-00000410: 6368 656d 612d 696e 7374 616e 6365 223e  chema-instance\">\n-00000420: 0d0a 2020 3c6d 6f64 656c 5665 7273 696f  ..  <modelVersio\n-00000430: 6e3e 342e 302e 303c 2f6d 6f64 656c 5665  n>4.0.0</modelVe\n-00000440: 7273 696f 6e3e 0d0a 2020 3c70 6172 656e  rsion>..  <paren\n-00000450: 743e 0d0a 2020 2020 3c67 726f 7570 4964  t>..    <groupId\n-00000460: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000470: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000480: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000490: 626f 2d6d 6574 6164 6174 613c 2f61 7274  bo-metadata</art\n-000004a0: 6966 6163 7449 643e 0d0a 2020 2020 3c76  ifactId>..    <v\n-000004b0: 6572 7369 6f6e 3e32 2e37 2e31 303c 2f76  ersion>2.7.10</v\n-000004c0: 6572 7369 6f6e 3e0d 0a20 203c 2f70 6172  ersion>..  </par\n-000004d0: 656e 743e 0d0a 2020 3c67 726f 7570 4964  ent>..  <groupId\n-000004e0: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-000004f0: 6f3c 2f67 726f 7570 4964 3e0d 0a20 203c  o</groupId>..  <\n-00000500: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n-00000510: 2d6d 6574 6164 6174 612d 7265 706f 7274  -metadata-report\n-00000520: 2d72 6564 6973 3c2f 6172 7469 6661 6374  -redis</artifact\n-00000530: 4964 3e0d 0a20 203c 7665 7273 696f 6e3e  Id>..  <version>\n-00000540: 322e 372e 3130 3c2f 7665 7273 696f 6e3e  2.7.10</version>\n-00000550: 0d0a 2020 3c6c 6963 656e 7365 733e 0d0a  ..  <licenses>..\n-00000560: 2020 2020 3c6c 6963 656e 7365 3e0d 0a20      <license>.. \n-00000570: 2020 2020 203c 6e61 6d65 3e41 7061 6368       <name>Apach\n-00000580: 6520 4c69 6365 6e73 652c 2056 6572 7369  e License, Versi\n-00000590: 6f6e 2032 2e30 3c2f 6e61 6d65 3e0d 0a20  on 2.0</name>.. \n-000005a0: 2020 2020 203c 7572 6c3e 6874 7470 3a2f       <url>http:/\n-000005b0: 2f77 7777 2e61 7061 6368 652e 6f72 672f  /www.apache.org/\n-000005c0: 6c69 6365 6e73 6573 2f4c 4943 454e 5345  licenses/LICENSE\n-000005d0: 2d32 2e30 3c2f 7572 6c3e 0d0a 2020 2020  -2.0</url>..    \n-000005e0: 2020 3c64 6973 7472 6962 7574 696f 6e3e    <distribution>\n-000005f0: 7265 706f 3c2f 6469 7374 7269 6275 7469  repo</distributi\n-00000600: 6f6e 3e0d 0a20 2020 203c 2f6c 6963 656e  on>..    </licen\n-00000610: 7365 3e0d 0a20 203c 2f6c 6963 656e 7365  se>..  </license\n-00000620: 733e 0d0a 2020 3c64 6570 656e 6465 6e63  s>..  <dependenc\n-00000630: 6965 733e 0d0a 2020 2020 3c64 6570 656e  ies>..    <depen\n-00000640: 6465 6e63 793e 0d0a 2020 2020 2020 3c67  dency>..      <g\n-00000650: 726f 7570 4964 3e6f 7267 2e61 7061 6368  roupId>org.apach\n-00000660: 652e 6475 6262 6f3c 2f67 726f 7570 4964  e.dubbo</groupId\n-00000670: 3e0d 0a20 2020 2020 203c 6172 7469 6661  >..      <artifa\n-00000680: 6374 4964 3e64 7562 626f 2d6d 6574 6164  ctId>dubbo-metad\n-00000690: 6174 612d 6170 693c 2f61 7274 6966 6163  ata-api</artifac\n-000006a0: 7449 643e 0d0a 2020 2020 2020 3c76 6572  tId>..      <ver\n-000006b0: 7369 6f6e 3e24 7b70 726f 6a65 6374 2e70  sion>${project.p\n-000006c0: 6172 656e 742e 7665 7273 696f 6e7d 3c2f  arent.version}</\n-000006d0: 7665 7273 696f 6e3e 0d0a 2020 2020 3c2f  version>..    </\n-000006e0: 6465 7065 6e64 656e 6379 3e0d 0a20 2020  dependency>..   \n-000006f0: 203c 6465 7065 6e64 656e 6379 3e0d 0a20   <dependency>.. \n-00000700: 2020 2020 203c 6772 6f75 7049 643e 7265       <groupId>re\n-00000710: 6469 732e 636c 6965 6e74 733c 2f67 726f  dis.clients</gro\n-00000720: 7570 4964 3e0d 0a20 2020 2020 203c 6172  upId>..      <ar\n-00000730: 7469 6661 6374 4964 3e6a 6564 6973 3c2f  tifactId>jedis</\n-00000740: 6172 7469 6661 6374 4964 3e0d 0a20 2020  artifactId>..   \n-00000750: 203c 2f64 6570 656e 6465 6e63 793e 0d0a   </dependency>..\n-00000760: 2020 2020 3c64 6570 656e 6465 6e63 793e      <dependency>\n-00000770: 0d0a 2020 2020 2020 3c67 726f 7570 4964  ..      <groupId\n-00000780: 3e6f 7267 2e61 7061 6368 652e 6375 7261  >org.apache.cura\n-00000790: 746f 723c 2f67 726f 7570 4964 3e0d 0a20  tor</groupId>.. \n-000007a0: 2020 2020 203c 6172 7469 6661 6374 4964       <artifactId\n-000007b0: 3e63 7572 6174 6f72 2d74 6573 743c 2f61  >curator-test</a\n-000007c0: 7274 6966 6163 7449 643e 0d0a 2020 2020  rtifactId>..    \n-000007d0: 2020 3c73 636f 7065 3e74 6573 743c 2f73    <scope>test</s\n-000007e0: 636f 7065 3e0d 0a20 2020 203c 2f64 6570  cope>..    </dep\n-000007f0: 656e 6465 6e63 793e 0d0a 2020 2020 3c64  endency>..    <d\n-00000800: 6570 656e 6465 6e63 793e 0d0a 2020 2020  ependency>..    \n-00000810: 2020 3c67 726f 7570 4964 3e63 6f6d 2e67    <groupId>com.g\n-00000820: 6974 6875 622e 6b73 7479 7263 3c2f 6772  ithub.kstyrc</gr\n-00000830: 6f75 7049 643e 0d0a 2020 2020 2020 3c61  oupId>..      <a\n-00000840: 7274 6966 6163 7449 643e 656d 6265 6464  rtifactId>embedd\n-00000850: 6564 2d72 6564 6973 3c2f 6172 7469 6661  ed-redis</artifa\n-00000860: 6374 4964 3e0d 0a20 2020 2020 203c 7363  ctId>..      <sc\n-00000870: 6f70 653e 7465 7374 3c2f 7363 6f70 653e  ope>test</scope>\n-00000880: 0d0a 2020 2020 3c2f 6465 7065 6e64 656e  ..    </dependen\n-00000890: 6379 3e0d 0a20 2020 203c 6465 7065 6e64  cy>..    <depend\n-000008a0: 656e 6379 3e0d 0a20 2020 2020 203c 6772  ency>..      <gr\n-000008b0: 6f75 7049 643e 6f72 672e 6170 6163 6865  oupId>org.apache\n-000008c0: 2e63 6f6d 6d6f 6e73 3c2f 6772 6f75 7049  .commons</groupI\n-000008d0: 643e 0d0a 2020 2020 2020 3c61 7274 6966  d>..      <artif\n-000008e0: 6163 7449 643e 636f 6d6d 6f6e 732d 6c61  actId>commons-la\n-000008f0: 6e67 333c 2f61 7274 6966 6163 7449 643e  ng3</artifactId>\n-00000900: 0d0a 2020 2020 2020 3c73 636f 7065 3e74  ..      <scope>t\n-00000910: 6573 743c 2f73 636f 7065 3e0d 0a20 2020  est</scope>..   \n-00000920: 203c 2f64 6570 656e 6465 6e63 793e 0d0a   </dependency>..\n-00000930: 2020 3c2f 6465 7065 6e64 656e 6369 6573    </dependencies\n-00000940: 3e0d 0a3c 2f70 726f 6a65 6374 3e0d 0a    >..</project>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 202d 2d3e 0a3c 7072  cense..  -->.<pr\n+00000340: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n+00000350: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n+00000360: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n+00000370: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n+00000380: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n+00000390: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n+000003a0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n+000003b0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+000003c0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+000003d0: 2e30 220a 2020 2020 786d 6c6e 733a 7873  .0\".    xmlns:xs\n+000003e0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n+000003f0: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n+00000400: 656d 612d 696e 7374 616e 6365 223e 0a20  ema-instance\">. \n+00000410: 203c 6d6f 6465 6c56 6572 7369 6f6e 3e34   <modelVersion>4\n+00000420: 2e30 2e30 3c2f 6d6f 6465 6c56 6572 7369  .0.0</modelVersi\n+00000430: 6f6e 3e0a 2020 3c70 6172 656e 743e 0a20  on>.  <parent>. \n+00000440: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000450: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000460: 6f75 7049 643e 0a20 2020 203c 6172 7469  oupId>.    <arti\n+00000470: 6661 6374 4964 3e64 7562 626f 2d6d 6574  factId>dubbo-met\n+00000480: 6164 6174 613c 2f61 7274 6966 6163 7449  adata</artifactI\n+00000490: 643e 0a20 2020 203c 7665 7273 696f 6e3e  d>.    <version>\n+000004a0: 322e 372e 3130 3c2f 7665 7273 696f 6e3e  2.7.10</version>\n+000004b0: 0a20 203c 2f70 6172 656e 743e 0a20 203c  .  </parent>.  <\n+000004c0: 6772 6f75 7049 643e 6f72 672e 6170 6163  groupId>org.apac\n+000004d0: 6865 2e64 7562 626f 3c2f 6772 6f75 7049  he.dubbo</groupI\n+000004e0: 643e 0a20 203c 6172 7469 6661 6374 4964  d>.  <artifactId\n+000004f0: 3e64 7562 626f 2d6d 6574 6164 6174 612d  >dubbo-metadata-\n+00000500: 7265 706f 7274 2d72 6564 6973 3c2f 6172  report-redis</ar\n+00000510: 7469 6661 6374 4964 3e0a 2020 3c76 6572  tifactId>.  <ver\n+00000520: 7369 6f6e 3e32 2e37 2e31 303c 2f76 6572  sion>2.7.10</ver\n+00000530: 7369 6f6e 3e0a 2020 3c6c 6963 656e 7365  sion>.  <license\n+00000540: 733e 0a20 2020 203c 6c69 6365 6e73 653e  s>.    <license>\n+00000550: 0a20 2020 2020 203c 6e61 6d65 3e41 7061  .      <name>Apa\n+00000560: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000570: 7369 6f6e 2032 2e30 3c2f 6e61 6d65 3e0a  sion 2.0</name>.\n+00000580: 2020 2020 2020 3c75 726c 3e68 7474 703a        <url>http:\n+00000590: 2f2f 7777 772e 6170 6163 6865 2e6f 7267  //www.apache.org\n+000005a0: 2f6c 6963 656e 7365 732f 4c49 4345 4e53  /licenses/LICENS\n+000005b0: 452d 322e 303c 2f75 726c 3e0a 2020 2020  E-2.0</url>.    \n+000005c0: 2020 3c64 6973 7472 6962 7574 696f 6e3e    <distribution>\n+000005d0: 7265 706f 3c2f 6469 7374 7269 6275 7469  repo</distributi\n+000005e0: 6f6e 3e0a 2020 2020 3c2f 6c69 6365 6e73  on>.    </licens\n+000005f0: 653e 0a20 203c 2f6c 6963 656e 7365 733e  e>.  </licenses>\n+00000600: 0a20 203c 6465 7065 6e64 656e 6369 6573  .  <dependencies\n+00000610: 3e0a 2020 2020 3c64 6570 656e 6465 6e63  >.    <dependenc\n+00000620: 793e 0a20 2020 2020 203c 6772 6f75 7049  y>.      <groupI\n+00000630: 643e 6f72 672e 6170 6163 6865 2e64 7562  d>org.apache.dub\n+00000640: 626f 3c2f 6772 6f75 7049 643e 0a20 2020  bo</groupId>.   \n+00000650: 2020 203c 6172 7469 6661 6374 4964 3e64     <artifactId>d\n+00000660: 7562 626f 2d6d 6574 6164 6174 612d 6170  ubbo-metadata-ap\n+00000670: 693c 2f61 7274 6966 6163 7449 643e 0a20  i</artifactId>. \n+00000680: 2020 2020 203c 7665 7273 696f 6e3e 247b       <version>${\n+00000690: 7072 6f6a 6563 742e 7061 7265 6e74 2e76  project.parent.v\n+000006a0: 6572 7369 6f6e 7d3c 2f76 6572 7369 6f6e  ersion}</version\n+000006b0: 3e0a 2020 2020 3c2f 6465 7065 6e64 656e  >.    </dependen\n+000006c0: 6379 3e0a 2020 2020 3c64 6570 656e 6465  cy>.    <depende\n+000006d0: 6e63 793e 0a20 2020 2020 203c 6772 6f75  ncy>.      <grou\n+000006e0: 7049 643e 7265 6469 732e 636c 6965 6e74  pId>redis.client\n+000006f0: 733c 2f67 726f 7570 4964 3e0a 2020 2020  s</groupId>.    \n+00000700: 2020 3c61 7274 6966 6163 7449 643e 6a65    <artifactId>je\n+00000710: 6469 733c 2f61 7274 6966 6163 7449 643e  dis</artifactId>\n+00000720: 0a20 2020 203c 2f64 6570 656e 6465 6e63  .    </dependenc\n+00000730: 793e 0a20 2020 203c 6465 7065 6e64 656e  y>.    <dependen\n+00000740: 6379 3e0a 2020 2020 2020 3c67 726f 7570  cy>.      <group\n+00000750: 4964 3e6f 7267 2e61 7061 6368 652e 6375  Id>org.apache.cu\n+00000760: 7261 746f 723c 2f67 726f 7570 4964 3e0a  rator</groupId>.\n+00000770: 2020 2020 2020 3c61 7274 6966 6163 7449        <artifactI\n+00000780: 643e 6375 7261 746f 722d 7465 7374 3c2f  d>curator-test</\n+00000790: 6172 7469 6661 6374 4964 3e0a 2020 2020  artifactId>.    \n+000007a0: 2020 3c73 636f 7065 3e74 6573 743c 2f73    <scope>test</s\n+000007b0: 636f 7065 3e0a 2020 2020 3c2f 6465 7065  cope>.    </depe\n+000007c0: 6e64 656e 6379 3e0a 2020 2020 3c64 6570  ndency>.    <dep\n+000007d0: 656e 6465 6e63 793e 0a20 2020 2020 203c  endency>.      <\n+000007e0: 6772 6f75 7049 643e 636f 6d2e 6769 7468  groupId>com.gith\n+000007f0: 7562 2e6b 7374 7972 633c 2f67 726f 7570  ub.kstyrc</group\n+00000800: 4964 3e0a 2020 2020 2020 3c61 7274 6966  Id>.      <artif\n+00000810: 6163 7449 643e 656d 6265 6464 6564 2d72  actId>embedded-r\n+00000820: 6564 6973 3c2f 6172 7469 6661 6374 4964  edis</artifactId\n+00000830: 3e0a 2020 2020 2020 3c73 636f 7065 3e74  >.      <scope>t\n+00000840: 6573 743c 2f73 636f 7065 3e0a 2020 2020  est</scope>.    \n+00000850: 3c2f 6465 7065 6e64 656e 6379 3e0a 2020  </dependency>.  \n+00000860: 2020 3c64 6570 656e 6465 6e63 793e 0a20    <dependency>. \n+00000870: 2020 2020 203c 6772 6f75 7049 643e 6f72       <groupId>or\n+00000880: 672e 6170 6163 6865 2e63 6f6d 6d6f 6e73  g.apache.commons\n+00000890: 3c2f 6772 6f75 7049 643e 0a20 2020 2020  </groupId>.     \n+000008a0: 203c 6172 7469 6661 6374 4964 3e63 6f6d   <artifactId>com\n+000008b0: 6d6f 6e73 2d6c 616e 6733 3c2f 6172 7469  mons-lang3</arti\n+000008c0: 6661 6374 4964 3e0a 2020 2020 2020 3c73  factId>.      <s\n+000008d0: 636f 7065 3e74 6573 743c 2f73 636f 7065  cope>test</scope\n+000008e0: 3e0a 2020 2020 3c2f 6465 7065 6e64 656e  >.    </dependen\n+000008f0: 6379 3e0a 2020 3c2f 6465 7065 6e64 656e  cy>.  </dependen\n+00000900: 6369 6573 3e0a 3c2f 7072 6f6a 6563 743e  cies>.</project>\n+00000910: 0a                                       .\n"}]}
