{"diffoscope-json-version": 1, "source1": "/input1", "source2": "/input2", "unified_diff": null, "details": [{"source1": "zipinfo {}", "source2": "zipinfo {}", "unified_diff": "@@ -1,24 +1,24 @@\n-Zip file size: 38443 bytes, number of entries: 22\n+Zip file size: 38898 bytes, number of entries: 22\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/\n -rw----     2.0 fat     3130 bX stor 70-Jan-01 00:00 META-INF/DEPENDENCIES\n -rw----     2.0 fat    11358 bX stor 70-Jan-01 00:00 META-INF/LICENSE\n -rw----     2.0 fat       25 bX stor 70-Jan-01 00:00 META-INF/MANIFEST.MF\n -rw----     2.0 fat      177 bX stor 70-Jan-01 00:00 META-INF/NOTICE\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-remoting-redis/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-remoting-redis/pom.properties\n--rw----     2.0 fat     2355 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-remoting-redis/pom.xml\n+-rw----     2.0 fat     2297 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-remoting-redis/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/remoting/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/remoting/redis/\n--rw----     2.0 fat     1418 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/redis/RedisClient.java\n+-rw----     2.0 fat     1464 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/redis/RedisClient.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/remoting/redis/jedis/\n--rw----     2.0 fat     4681 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/redis/jedis/ClusterRedisClient.java\n--rw----     2.0 fat     3666 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/redis/jedis/MonoRedisClient.java\n--rw----     2.0 fat     4062 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/redis/jedis/SentinelRedisClient.java\n+-rw----     2.0 fat     4815 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/redis/jedis/ClusterRedisClient.java\n+-rw----     2.0 fat     3784 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/redis/jedis/MonoRedisClient.java\n+-rw----     2.0 fat     4183 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/redis/jedis/SentinelRedisClient.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/remoting/redis/support/\n--rw----     2.0 fat     3767 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/redis/support/AbstractRedisClient.java\n-22 files, 34639 bytes uncompressed, 34639 bytes compressed:  0.0%\n+-rw----     2.0 fat     3861 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/redis/support/AbstractRedisClient.java\n+22 files, 35094 bytes uncompressed, 35094 bytes compressed:  0.0%\n"}, {"source1": "zipdetails --redact --scan --utc {}", "source2": "zipdetails --redact --scan --utc {}", "unified_diff": "@@ -242,960 +242,960 @@\n #\n 3C63 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n 3C65   Length              0005 (5)\n 3C67   Flags               01 (1) 'Modification'\n 3C68   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n 3C6C PAYLOAD\n \n-459F DATA DESCRIPTOR       08074B50 (134695760)\n-45A3 CRC                   68F64CB7 (1760971959)\n-45A7 Compressed Size       00000933 (2355)\n-45AB Uncompressed Size     00000933 (2355)\n-\n-45AF LOCAL HEADER #11      04034B50 (67324752)\n-45B3 Extract Zip Spec      14 (20) '2.0'\n-45B4 Extract OS            00 (0) 'MS-DOS'\n-45B5 General Purpose Flag  0000 (0)\n-45B7 Compression Method    0000 (0) 'Stored'\n-45B9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-45BD CRC                   00000000 (0)\n-45C1 Compressed Size       00000000 (0)\n-45C5 Uncompressed Size     00000000 (0)\n-45C9 Filename Length       0004 (4)\n-45CB Extra Length          0009 (9)\n-45CD Filename              'XXXX'\n-#\n-# WARNING: Offset 0x45CD: Filename 'XXXX'\n-#          Zero length filename\n-#\n-45D1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-45D3   Length              0005 (5)\n-45D5   Flags               01 (1) 'Modification'\n-45D6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-45DA LOCAL HEADER #12      04034B50 (67324752)\n-45DE Extract Zip Spec      14 (20) '2.0'\n-45DF Extract OS            00 (0) 'MS-DOS'\n-45E0 General Purpose Flag  0000 (0)\n-45E2 Compression Method    0000 (0) 'Stored'\n-45E4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-45E8 CRC                   00000000 (0)\n-45EC Compressed Size       00000000 (0)\n-45F0 Uncompressed Size     00000000 (0)\n-45F4 Filename Length       000B (11)\n-45F6 Extra Length          0009 (9)\n-45F8 Filename              'XXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x45F8: Filename 'XXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4603 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4605   Length              0005 (5)\n-4607   Flags               01 (1) 'Modification'\n-4608   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-460C LOCAL HEADER #13      04034B50 (67324752)\n-4610 Extract Zip Spec      14 (20) '2.0'\n-4611 Extract OS            00 (0) 'MS-DOS'\n-4612 General Purpose Flag  0000 (0)\n-4614 Compression Method    0000 (0) 'Stored'\n-4616 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-461A CRC                   00000000 (0)\n-461E Compressed Size       00000000 (0)\n-4622 Uncompressed Size     00000000 (0)\n-4626 Filename Length       0011 (17)\n-4628 Extra Length          0009 (9)\n-462A Filename              'XXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x462A: Filename 'XXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-463B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-463D   Length              0005 (5)\n-463F   Flags               01 (1) 'Modification'\n-4640   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-4644 LOCAL HEADER #14      04034B50 (67324752)\n-4648 Extract Zip Spec      14 (20) '2.0'\n-4649 Extract OS            00 (0) 'MS-DOS'\n-464A General Purpose Flag  0000 (0)\n-464C Compression Method    0000 (0) 'Stored'\n-464E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4652 CRC                   00000000 (0)\n-4656 Compressed Size       00000000 (0)\n-465A Uncompressed Size     00000000 (0)\n-465E Filename Length       001A (26)\n-4660 Extra Length          0009 (9)\n-4662 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4662: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-467C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-467E   Length              0005 (5)\n-4680   Flags               01 (1) 'Modification'\n-4681   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-4685 LOCAL HEADER #15      04034B50 (67324752)\n-4689 Extract Zip Spec      14 (20) '2.0'\n-468A Extract OS            00 (0) 'MS-DOS'\n-468B General Purpose Flag  0000 (0)\n-468D Compression Method    0000 (0) 'Stored'\n-468F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4693 CRC                   00000000 (0)\n-4697 Compressed Size       00000000 (0)\n-469B Uncompressed Size     00000000 (0)\n-469F Filename Length       0020 (32)\n-46A1 Extra Length          0009 (9)\n-46A3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x46A3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-46C3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-46C5   Length              0005 (5)\n-46C7   Flags               01 (1) 'Modification'\n-46C8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-46CC LOCAL HEADER #16      04034B50 (67324752)\n-46D0 Extract Zip Spec      14 (20) '2.0'\n-46D1 Extract OS            00 (0) 'MS-DOS'\n-46D2 General Purpose Flag  0008 (8)\n-     [Bit  3]              1 'Streamed'\n-46D4 Compression Method    0000 (0) 'Stored'\n-46D6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-46DA CRC                   00000000 (0)\n-46DE Compressed Size       00000000 (0)\n-46E2 Uncompressed Size     00000000 (0)\n-46E6 Filename Length       0030 (48)\n-46E8 Extra Length          0009 (9)\n-46EA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x46EA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-471A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-471C   Length              0005 (5)\n-471E   Flags               01 (1) 'Modification'\n-471F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4723 PAYLOAD\n-\n-4CAD DATA DESCRIPTOR       08074B50 (134695760)\n-4CB1 CRC                   99D15CAE (2580634798)\n-4CB5 Compressed Size       0000058A (1418)\n-4CB9 Uncompressed Size     0000058A (1418)\n-\n-4CBD LOCAL HEADER #17      04034B50 (67324752)\n-4CC1 Extract Zip Spec      14 (20) '2.0'\n-4CC2 Extract OS            00 (0) 'MS-DOS'\n-4CC3 General Purpose Flag  0000 (0)\n-4CC5 Compression Method    0000 (0) 'Stored'\n-4CC7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4CCB CRC                   00000000 (0)\n-4CCF Compressed Size       00000000 (0)\n-4CD3 Uncompressed Size     00000000 (0)\n-4CD7 Filename Length       0026 (38)\n-4CD9 Extra Length          0009 (9)\n-4CDB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4CDB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4D01 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4D03   Length              0005 (5)\n-4D05   Flags               01 (1) 'Modification'\n-4D06   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-4D0A LOCAL HEADER #18      04034B50 (67324752)\n-4D0E Extract Zip Spec      14 (20) '2.0'\n-4D0F Extract OS            00 (0) 'MS-DOS'\n-4D10 General Purpose Flag  0008 (8)\n-     [Bit  3]              1 'Streamed'\n-4D12 Compression Method    0000 (0) 'Stored'\n-4D14 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4D18 CRC                   00000000 (0)\n-4D1C Compressed Size       00000000 (0)\n-4D20 Uncompressed Size     00000000 (0)\n-4D24 Filename Length       003D (61)\n-4D26 Extra Length          0009 (9)\n-4D28 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4D28: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4D65 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4D67   Length              0005 (5)\n-4D69   Flags               01 (1) 'Modification'\n-4D6A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4D6E PAYLOAD\n-\n-5FB7 DATA DESCRIPTOR       08074B50 (134695760)\n-5FBB CRC                   E8BD727A (3904729722)\n-5FBF Compressed Size       00001249 (4681)\n-5FC3 Uncompressed Size     00001249 (4681)\n-\n-5FC7 LOCAL HEADER #19      04034B50 (67324752)\n-5FCB Extract Zip Spec      14 (20) '2.0'\n-5FCC Extract OS            00 (0) 'MS-DOS'\n-5FCD General Purpose Flag  0008 (8)\n-     [Bit  3]              1 'Streamed'\n-5FCF Compression Method    0000 (0) 'Stored'\n-5FD1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5FD5 CRC                   00000000 (0)\n-5FD9 Compressed Size       00000000 (0)\n-5FDD Uncompressed Size     00000000 (0)\n-5FE1 Filename Length       003A (58)\n-5FE3 Extra Length          0009 (9)\n-5FE5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5FE5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-601F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6021   Length              0005 (5)\n-6023   Flags               01 (1) 'Modification'\n-6024   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6028 PAYLOAD\n-\n-6E7A DATA DESCRIPTOR       08074B50 (134695760)\n-6E7E CRC                   F73B7760 (4147869536)\n-6E82 Compressed Size       00000E52 (3666)\n-6E86 Uncompressed Size     00000E52 (3666)\n-\n-6E8A LOCAL HEADER #20      04034B50 (67324752)\n-6E8E Extract Zip Spec      14 (20) '2.0'\n-6E8F Extract OS            00 (0) 'MS-DOS'\n-6E90 General Purpose Flag  0008 (8)\n-     [Bit  3]              1 'Streamed'\n-6E92 Compression Method    0000 (0) 'Stored'\n-6E94 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E98 CRC                   00000000 (0)\n-6E9C Compressed Size       00000000 (0)\n-6EA0 Uncompressed Size     00000000 (0)\n-6EA4 Filename Length       003E (62)\n-6EA6 Extra Length          0009 (9)\n-6EA8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EA8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EE6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EE8   Length              0005 (5)\n-6EEA   Flags               01 (1) 'Modification'\n-6EEB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6EEF PAYLOAD\n-\n-7ECD DATA DESCRIPTOR       08074B50 (134695760)\n-7ED1 CRC                   300A8302 (805995266)\n-7ED5 Compressed Size       00000FDE (4062)\n-7ED9 Uncompressed Size     00000FDE (4062)\n-\n-7EDD LOCAL HEADER #21      04034B50 (67324752)\n-7EE1 Extract Zip Spec      14 (20) '2.0'\n-7EE2 Extract OS            00 (0) 'MS-DOS'\n-7EE3 General Purpose Flag  0000 (0)\n-7EE5 Compression Method    0000 (0) 'Stored'\n-7EE7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-7EEB CRC                   00000000 (0)\n-7EEF Compressed Size       00000000 (0)\n-7EF3 Uncompressed Size     00000000 (0)\n-7EF7 Filename Length       0028 (40)\n-7EF9 Extra Length          0009 (9)\n-7EFB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x7EFB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-7F23 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-7F25   Length              0005 (5)\n-7F27   Flags               01 (1) 'Modification'\n-7F28   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-7F2C LOCAL HEADER #22      04034B50 (67324752)\n-7F30 Extract Zip Spec      14 (20) '2.0'\n-7F31 Extract OS            00 (0) 'MS-DOS'\n-7F32 General Purpose Flag  0008 (8)\n-     [Bit  3]              1 'Streamed'\n-7F34 Compression Method    0000 (0) 'Stored'\n-7F36 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-7F3A CRC                   00000000 (0)\n-7F3E Compressed Size       00000000 (0)\n-7F42 Uncompressed Size     00000000 (0)\n-7F46 Filename Length       0040 (64)\n-7F48 Extra Length          0009 (9)\n-7F4A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x7F4A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-7F8A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-7F8C   Length              0005 (5)\n-7F8E   Flags               01 (1) 'Modification'\n-7F8F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-7F93 PAYLOAD\n-\n-8E4A DATA DESCRIPTOR       08074B50 (134695760)\n-8E4E CRC                   40BDA4ED (1086170349)\n-8E52 Compressed Size       00000EB7 (3767)\n-8E56 Uncompressed Size     00000EB7 (3767)\n-\n-8E5A CENTRAL HEADER #1     02014B50 (33639248)\n-8E5E Created Zip Spec      14 (20) '2.0'\n-8E5F Created OS            00 (0) 'MS-DOS'\n-8E60 Extract Zip Spec      14 (20) '2.0'\n-8E61 Extract OS            00 (0) 'MS-DOS'\n-8E62 General Purpose Flag  0000 (0)\n-8E64 Compression Method    0000 (0) 'Stored'\n-8E66 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-8E6A CRC                   00000000 (0)\n-8E6E Compressed Size       00000000 (0)\n-8E72 Uncompressed Size     00000000 (0)\n-8E76 Filename Length       0009 (9)\n-8E78 Extra Length          0009 (9)\n-8E7A Comment Length        0000 (0)\n-8E7C Disk Start            0000 (0)\n-8E7E Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-8E80 Ext File Attributes   00000000 (0)\n-8E84 Local Header Offset   00000000 (0)\n-8E88 Filename              'XXXXXXXXX'\n-#\n-# WARNING: Offset 0x8E88: Filename 'XXXXXXXXX'\n-#          Zero length filename\n-#\n-8E91 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-8E93   Length              0005 (5)\n-8E95   Flags               01 (1) 'Modification'\n-8E96   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-8E9A CENTRAL HEADER #2     02014B50 (33639248)\n-8E9E Created Zip Spec      14 (20) '2.0'\n-8E9F Created OS            00 (0) 'MS-DOS'\n-8EA0 Extract Zip Spec      14 (20) '2.0'\n-8EA1 Extract OS            00 (0) 'MS-DOS'\n-8EA2 General Purpose Flag  0008 (8)\n-     [Bit  3]              1 'Streamed'\n-8EA4 Compression Method    0000 (0) 'Stored'\n-8EA6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-8EAA CRC                   AD27A3A1 (2905056161)\n-8EAE Compressed Size       00000C3A (3130)\n-8EB2 Uncompressed Size     00000C3A (3130)\n-8EB6 Filename Length       0015 (21)\n-8EB8 Extra Length          0009 (9)\n-8EBA Comment Length        0000 (0)\n-8EBC Disk Start            0000 (0)\n-8EBE Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-8EC0 Ext File Attributes   00000000 (0)\n-8EC4 Local Header Offset   00000030 (48)\n-8EC8 Filename              'XXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x8EC8: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-8EDD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-8EDF   Length              0005 (5)\n-8EE1   Flags               01 (1) 'Modification'\n-8EE2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-8EE6 CENTRAL HEADER #3     02014B50 (33639248)\n-8EEA Created Zip Spec      14 (20) '2.0'\n-8EEB Created OS            00 (0) 'MS-DOS'\n-8EEC Extract Zip Spec      14 (20) '2.0'\n-8EED Extract OS            00 (0) 'MS-DOS'\n-8EEE General Purpose Flag  0008 (8)\n-     [Bit  3]              1 'Streamed'\n-8EF0 Compression Method    0000 (0) 'Stored'\n-8EF2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-8EF6 CRC                   86E2B4B4 (2263004340)\n-8EFA Compressed Size       00002C5E (11358)\n-8EFE Uncompressed Size     00002C5E (11358)\n-8F02 Filename Length       0010 (16)\n-8F04 Extra Length          0009 (9)\n-8F06 Comment Length        0000 (0)\n-8F08 Disk Start            0000 (0)\n-8F0A Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-8F0C Ext File Attributes   00000000 (0)\n-8F10 Local Header Offset   00000CB6 (3254)\n-8F14 Filename              'XXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x8F14: Filename 'XXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-8F24 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-8F26   Length              0005 (5)\n-8F28   Flags               01 (1) 'Modification'\n-8F29   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-8F2D CENTRAL HEADER #4     02014B50 (33639248)\n-8F31 Created Zip Spec      14 (20) '2.0'\n-8F32 Created OS            00 (0) 'MS-DOS'\n-8F33 Extract Zip Spec      14 (20) '2.0'\n-8F34 Extract OS            00 (0) 'MS-DOS'\n-8F35 General Purpose Flag  0008 (8)\n-     [Bit  3]              1 'Streamed'\n-8F37 Compression Method    0000 (0) 'Stored'\n-8F39 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-8F3D CRC                   EE027FB2 (3993141170)\n-8F41 Compressed Size       00000019 (25)\n-8F45 Uncompressed Size     00000019 (25)\n-8F49 Filename Length       0014 (20)\n-8F4B Extra Length          0009 (9)\n-8F4D Comment Length        0000 (0)\n-8F4F Disk Start            0000 (0)\n-8F51 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-8F53 Ext File Attributes   00000000 (0)\n-8F57 Local Header Offset   0000395B (14683)\n-8F5B Filename              'XXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x8F5B: Filename 'XXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-8F6F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-8F71   Length              0005 (5)\n-8F73   Flags               01 (1) 'Modification'\n-8F74   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-8F78 CENTRAL HEADER #5     02014B50 (33639248)\n-8F7C Created Zip Spec      14 (20) '2.0'\n-8F7D Created OS            00 (0) 'MS-DOS'\n-8F7E Extract Zip Spec      14 (20) '2.0'\n-8F7F Extract OS            00 (0) 'MS-DOS'\n-8F80 General Purpose Flag  0008 (8)\n-     [Bit  3]              1 'Streamed'\n-8F82 Compression Method    0000 (0) 'Stored'\n-8F84 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-8F88 CRC                   3110311C (823144732)\n-8F8C Compressed Size       000000B1 (177)\n-8F90 Uncompressed Size     000000B1 (177)\n-8F94 Filename Length       000F (15)\n-8F96 Extra Length          0009 (9)\n-8F98 Comment Length        0000 (0)\n-8F9A Disk Start            0000 (0)\n-8F9C Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-8F9E Ext File Attributes   00000000 (0)\n-8FA2 Local Header Offset   000039BF (14783)\n-8FA6 Filename              'XXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x8FA6: Filename 'XXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-8FB5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-8FB7   Length              0005 (5)\n-8FB9   Flags               01 (1) 'Modification'\n-8FBA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-8FBE CENTRAL HEADER #6     02014B50 (33639248)\n-8FC2 Created Zip Spec      14 (20) '2.0'\n-8FC3 Created OS            00 (0) 'MS-DOS'\n-8FC4 Extract Zip Spec      14 (20) '2.0'\n-8FC5 Extract OS            00 (0) 'MS-DOS'\n-8FC6 General Purpose Flag  0000 (0)\n-8FC8 Compression Method    0000 (0) 'Stored'\n-8FCA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-8FCE CRC                   00000000 (0)\n-8FD2 Compressed Size       00000000 (0)\n-8FD6 Uncompressed Size     00000000 (0)\n-8FDA Filename Length       000F (15)\n-8FDC Extra Length          0009 (9)\n-8FDE Comment Length        0000 (0)\n-8FE0 Disk Start            0000 (0)\n-8FE2 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-8FE4 Ext File Attributes   00000000 (0)\n-8FE8 Local Header Offset   00003AB6 (15030)\n-8FEC Filename              'XXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x8FEC: Filename 'XXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-8FFB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-8FFD   Length              0005 (5)\n-8FFF   Flags               01 (1) 'Modification'\n-9000   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-9004 CENTRAL HEADER #7     02014B50 (33639248)\n-9008 Created Zip Spec      14 (20) '2.0'\n-9009 Created OS            00 (0) 'MS-DOS'\n-900A Extract Zip Spec      14 (20) '2.0'\n-900B Extract OS            00 (0) 'MS-DOS'\n-900C General Purpose Flag  0000 (0)\n-900E Compression Method    0000 (0) 'Stored'\n-9010 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-9014 CRC                   00000000 (0)\n-9018 Compressed Size       00000000 (0)\n-901C Uncompressed Size     00000000 (0)\n-9020 Filename Length       0020 (32)\n-9022 Extra Length          0009 (9)\n-9024 Comment Length        0000 (0)\n-9026 Disk Start            0000 (0)\n-9028 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-902A Ext File Attributes   00000000 (0)\n-902E Local Header Offset   00003AEC (15084)\n-9032 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x9032: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-9052 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-9054   Length              0005 (5)\n-9056   Flags               01 (1) 'Modification'\n-9057   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-905B CENTRAL HEADER #8     02014B50 (33639248)\n-905F Created Zip Spec      14 (20) '2.0'\n-9060 Created OS            00 (0) 'MS-DOS'\n-9061 Extract Zip Spec      14 (20) '2.0'\n-9062 Extract OS            00 (0) 'MS-DOS'\n-9063 General Purpose Flag  0000 (0)\n-9065 Compression Method    0000 (0) 'Stored'\n-9067 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-906B CRC                   00000000 (0)\n-906F Compressed Size       00000000 (0)\n-9073 Uncompressed Size     00000000 (0)\n-9077 Filename Length       0035 (53)\n-9079 Extra Length          0009 (9)\n-907B Comment Length        0000 (0)\n-907D Disk Start            0000 (0)\n-907F Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-9081 Ext File Attributes   00000000 (0)\n-9085 Local Header Offset   00003B33 (15155)\n-9089 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x9089: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-90BE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-90C0   Length              0005 (5)\n-90C2   Flags               01 (1) 'Modification'\n-90C3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-90C7 CENTRAL HEADER #9     02014B50 (33639248)\n-90CB Created Zip Spec      14 (20) '2.0'\n-90CC Created OS            00 (0) 'MS-DOS'\n-90CD Extract Zip Spec      14 (20) '2.0'\n-90CE Extract OS            00 (0) 'MS-DOS'\n-90CF General Purpose Flag  0008 (8)\n-     [Bit  3]              1 'Streamed'\n-90D1 Compression Method    0000 (0) 'Stored'\n-90D3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-90D7 CRC                   00000000 (0)\n-90DB Compressed Size       00000000 (0)\n-90DF Uncompressed Size     00000000 (0)\n-90E3 Filename Length       0043 (67)\n-90E5 Extra Length          0009 (9)\n-90E7 Comment Length        0000 (0)\n-90E9 Disk Start            0000 (0)\n-90EB Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-90ED Ext File Attributes   00000000 (0)\n-90F1 Local Header Offset   00003B8F (15247)\n-90F5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x90F5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-9138 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-913A   Length              0005 (5)\n-913C   Flags               01 (1) 'Modification'\n-913D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-9141 CENTRAL HEADER #10    02014B50 (33639248)\n-9145 Created Zip Spec      14 (20) '2.0'\n-9146 Created OS            00 (0) 'MS-DOS'\n-9147 Extract Zip Spec      14 (20) '2.0'\n-9148 Extract OS            00 (0) 'MS-DOS'\n-9149 General Purpose Flag  0008 (8)\n-     [Bit  3]              1 'Streamed'\n-914B Compression Method    0000 (0) 'Stored'\n-914D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-9151 CRC                   68F64CB7 (1760971959)\n-9155 Compressed Size       00000933 (2355)\n-9159 Uncompressed Size     00000933 (2355)\n-915D Filename Length       003C (60)\n-915F Extra Length          0009 (9)\n-9161 Comment Length        0000 (0)\n-9163 Disk Start            0000 (0)\n-9165 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-9167 Ext File Attributes   00000000 (0)\n-916B Local Header Offset   00003C09 (15369)\n-916F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x916F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-91AB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-91AD   Length              0005 (5)\n-91AF   Flags               01 (1) 'Modification'\n-91B0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-91B4 CENTRAL HEADER #11    02014B50 (33639248)\n-91B8 Created Zip Spec      14 (20) '2.0'\n-91B9 Created OS            00 (0) 'MS-DOS'\n-91BA Extract Zip Spec      14 (20) '2.0'\n-91BB Extract OS            00 (0) 'MS-DOS'\n-91BC General Purpose Flag  0000 (0)\n-91BE Compression Method    0000 (0) 'Stored'\n-91C0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-91C4 CRC                   00000000 (0)\n-91C8 Compressed Size       00000000 (0)\n-91CC Uncompressed Size     00000000 (0)\n-91D0 Filename Length       0004 (4)\n-91D2 Extra Length          0009 (9)\n-91D4 Comment Length        0000 (0)\n-91D6 Disk Start            0000 (0)\n-91D8 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-91DA Ext File Attributes   00000000 (0)\n-91DE Local Header Offset   000045AF (17839)\n-91E2 Filename              'XXXX'\n-#\n-# WARNING: Offset 0x91E2: Filename 'XXXX'\n-#          Zero length filename\n-#\n-91E6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-91E8   Length              0005 (5)\n-91EA   Flags               01 (1) 'Modification'\n-91EB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-91EF CENTRAL HEADER #12    02014B50 (33639248)\n-91F3 Created Zip Spec      14 (20) '2.0'\n-91F4 Created OS            00 (0) 'MS-DOS'\n-91F5 Extract Zip Spec      14 (20) '2.0'\n-91F6 Extract OS            00 (0) 'MS-DOS'\n-91F7 General Purpose Flag  0000 (0)\n-91F9 Compression Method    0000 (0) 'Stored'\n-91FB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-91FF CRC                   00000000 (0)\n-9203 Compressed Size       00000000 (0)\n-9207 Uncompressed Size     00000000 (0)\n-920B Filename Length       000B (11)\n-920D Extra Length          0009 (9)\n-920F Comment Length        0000 (0)\n-9211 Disk Start            0000 (0)\n-9213 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-9215 Ext File Attributes   00000000 (0)\n-9219 Local Header Offset   000045DA (17882)\n-921D Filename              'XXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x921D: Filename 'XXXXXXXXXXX'\n-#          Zero length filename\n-#\n-9228 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-922A   Length              0005 (5)\n-922C   Flags               01 (1) 'Modification'\n-922D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-9231 CENTRAL HEADER #13    02014B50 (33639248)\n-9235 Created Zip Spec      14 (20) '2.0'\n-9236 Created OS            00 (0) 'MS-DOS'\n-9237 Extract Zip Spec      14 (20) '2.0'\n-9238 Extract OS            00 (0) 'MS-DOS'\n-9239 General Purpose Flag  0000 (0)\n-923B Compression Method    0000 (0) 'Stored'\n-923D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-9241 CRC                   00000000 (0)\n-9245 Compressed Size       00000000 (0)\n-9249 Uncompressed Size     00000000 (0)\n-924D Filename Length       0011 (17)\n-924F Extra Length          0009 (9)\n-9251 Comment Length        0000 (0)\n-9253 Disk Start            0000 (0)\n-9255 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-9257 Ext File Attributes   00000000 (0)\n-925B Local Header Offset   0000460C (17932)\n-925F Filename              'XXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x925F: Filename 'XXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-9270 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-9272   Length              0005 (5)\n-9274   Flags               01 (1) 'Modification'\n-9275   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-9279 CENTRAL HEADER #14    02014B50 (33639248)\n-927D Created Zip Spec      14 (20) '2.0'\n-927E Created OS            00 (0) 'MS-DOS'\n-927F Extract Zip Spec      14 (20) '2.0'\n-9280 Extract OS            00 (0) 'MS-DOS'\n-9281 General Purpose Flag  0000 (0)\n-9283 Compression Method    0000 (0) 'Stored'\n-9285 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-9289 CRC                   00000000 (0)\n-928D Compressed Size       00000000 (0)\n-9291 Uncompressed Size     00000000 (0)\n-9295 Filename Length       001A (26)\n-9297 Extra Length          0009 (9)\n-9299 Comment Length        0000 (0)\n-929B Disk Start            0000 (0)\n-929D Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-929F Ext File Attributes   00000000 (0)\n-92A3 Local Header Offset   00004644 (17988)\n-92A7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x92A7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-92C1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-92C3   Length              0005 (5)\n-92C5   Flags               01 (1) 'Modification'\n-92C6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-92CA CENTRAL HEADER #15    02014B50 (33639248)\n-92CE Created Zip Spec      14 (20) '2.0'\n-92CF Created OS            00 (0) 'MS-DOS'\n-92D0 Extract Zip Spec      14 (20) '2.0'\n-92D1 Extract OS            00 (0) 'MS-DOS'\n-92D2 General Purpose Flag  0000 (0)\n-92D4 Compression Method    0000 (0) 'Stored'\n-92D6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-92DA CRC                   00000000 (0)\n-92DE Compressed Size       00000000 (0)\n-92E2 Uncompressed Size     00000000 (0)\n-92E6 Filename Length       0020 (32)\n-92E8 Extra Length          0009 (9)\n-92EA Comment Length        0000 (0)\n-92EC Disk Start            0000 (0)\n-92EE Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-92F0 Ext File Attributes   00000000 (0)\n-92F4 Local Header Offset   00004685 (18053)\n-92F8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x92F8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-9318 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-931A   Length              0005 (5)\n-931C   Flags               01 (1) 'Modification'\n-931D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-9321 CENTRAL HEADER #16    02014B50 (33639248)\n-9325 Created Zip Spec      14 (20) '2.0'\n-9326 Created OS            00 (0) 'MS-DOS'\n-9327 Extract Zip Spec      14 (20) '2.0'\n-9328 Extract OS            00 (0) 'MS-DOS'\n-9329 General Purpose Flag  0008 (8)\n-     [Bit  3]              1 'Streamed'\n-932B Compression Method    0000 (0) 'Stored'\n-932D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-9331 CRC                   99D15CAE (2580634798)\n-9335 Compressed Size       0000058A (1418)\n-9339 Uncompressed Size     0000058A (1418)\n-933D Filename Length       0030 (48)\n-933F Extra Length          0009 (9)\n-9341 Comment Length        0000 (0)\n-9343 Disk Start            0000 (0)\n-9345 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-9347 Ext File Attributes   00000000 (0)\n-934B Local Header Offset   000046CC (18124)\n-934F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x934F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-937F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-9381   Length              0005 (5)\n-9383   Flags               01 (1) 'Modification'\n-9384   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-9388 CENTRAL HEADER #17    02014B50 (33639248)\n-938C Created Zip Spec      14 (20) '2.0'\n-938D Created OS            00 (0) 'MS-DOS'\n-938E Extract Zip Spec      14 (20) '2.0'\n-938F Extract OS            00 (0) 'MS-DOS'\n-9390 General Purpose Flag  0000 (0)\n-9392 Compression Method    0000 (0) 'Stored'\n-9394 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-9398 CRC                   00000000 (0)\n-939C Compressed Size       00000000 (0)\n-93A0 Uncompressed Size     00000000 (0)\n-93A4 Filename Length       0026 (38)\n-93A6 Extra Length          0009 (9)\n-93A8 Comment Length        0000 (0)\n-93AA Disk Start            0000 (0)\n-93AC Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-93AE Ext File Attributes   00000000 (0)\n-93B2 Local Header Offset   00004CBD (19645)\n-93B6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x93B6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-93DC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-93DE   Length              0005 (5)\n-93E0   Flags               01 (1) 'Modification'\n-93E1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-93E5 CENTRAL HEADER #18    02014B50 (33639248)\n-93E9 Created Zip Spec      14 (20) '2.0'\n-93EA Created OS            00 (0) 'MS-DOS'\n-93EB Extract Zip Spec      14 (20) '2.0'\n-93EC Extract OS            00 (0) 'MS-DOS'\n-93ED General Purpose Flag  0008 (8)\n-     [Bit  3]              1 'Streamed'\n-93EF Compression Method    0000 (0) 'Stored'\n-93F1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-93F5 CRC                   E8BD727A (3904729722)\n-93F9 Compressed Size       00001249 (4681)\n-93FD Uncompressed Size     00001249 (4681)\n-9401 Filename Length       003D (61)\n-9403 Extra Length          0009 (9)\n-9405 Comment Length        0000 (0)\n-9407 Disk Start            0000 (0)\n-9409 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-940B Ext File Attributes   00000000 (0)\n-940F Local Header Offset   00004D0A (19722)\n-9413 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x9413: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-9450 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-9452   Length              0005 (5)\n-9454   Flags               01 (1) 'Modification'\n-9455   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-9459 CENTRAL HEADER #19    02014B50 (33639248)\n-945D Created Zip Spec      14 (20) '2.0'\n-945E Created OS            00 (0) 'MS-DOS'\n-945F Extract Zip Spec      14 (20) '2.0'\n-9460 Extract OS            00 (0) 'MS-DOS'\n-9461 General Purpose Flag  0008 (8)\n-     [Bit  3]              1 'Streamed'\n-9463 Compression Method    0000 (0) 'Stored'\n-9465 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-9469 CRC                   F73B7760 (4147869536)\n-946D Compressed Size       00000E52 (3666)\n-9471 Uncompressed Size     00000E52 (3666)\n-9475 Filename Length       003A (58)\n-9477 Extra Length          0009 (9)\n-9479 Comment Length        0000 (0)\n-947B Disk Start            0000 (0)\n-947D Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-947F Ext File Attributes   00000000 (0)\n-9483 Local Header Offset   00005FC7 (24519)\n-9487 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x9487: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-94C1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-94C3   Length              0005 (5)\n-94C5   Flags               01 (1) 'Modification'\n-94C6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-94CA CENTRAL HEADER #20    02014B50 (33639248)\n-94CE Created Zip Spec      14 (20) '2.0'\n-94CF Created OS            00 (0) 'MS-DOS'\n-94D0 Extract Zip Spec      14 (20) '2.0'\n-94D1 Extract OS            00 (0) 'MS-DOS'\n-94D2 General Purpose Flag  0008 (8)\n-     [Bit  3]              1 'Streamed'\n-94D4 Compression Method    0000 (0) 'Stored'\n-94D6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-94DA CRC                   300A8302 (805995266)\n-94DE Compressed Size       00000FDE (4062)\n-94E2 Uncompressed Size     00000FDE (4062)\n-94E6 Filename Length       003E (62)\n-94E8 Extra Length          0009 (9)\n-94EA Comment Length        0000 (0)\n-94EC Disk Start            0000 (0)\n-94EE Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-94F0 Ext File Attributes   00000000 (0)\n-94F4 Local Header Offset   00006E8A (28298)\n-94F8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x94F8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-9536 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-9538   Length              0005 (5)\n-953A   Flags               01 (1) 'Modification'\n-953B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-953F CENTRAL HEADER #21    02014B50 (33639248)\n-9543 Created Zip Spec      14 (20) '2.0'\n-9544 Created OS            00 (0) 'MS-DOS'\n-9545 Extract Zip Spec      14 (20) '2.0'\n-9546 Extract OS            00 (0) 'MS-DOS'\n-9547 General Purpose Flag  0000 (0)\n-9549 Compression Method    0000 (0) 'Stored'\n-954B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-954F CRC                   00000000 (0)\n-9553 Compressed Size       00000000 (0)\n-9557 Uncompressed Size     00000000 (0)\n-955B Filename Length       0028 (40)\n-955D Extra Length          0009 (9)\n-955F Comment Length        0000 (0)\n-9561 Disk Start            0000 (0)\n-9563 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-9565 Ext File Attributes   00000000 (0)\n-9569 Local Header Offset   00007EDD (32477)\n-956D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x956D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-9595 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-9597   Length              0005 (5)\n-9599   Flags               01 (1) 'Modification'\n-959A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-959E CENTRAL HEADER #22    02014B50 (33639248)\n-95A2 Created Zip Spec      14 (20) '2.0'\n-95A3 Created OS            00 (0) 'MS-DOS'\n-95A4 Extract Zip Spec      14 (20) '2.0'\n-95A5 Extract OS            00 (0) 'MS-DOS'\n-95A6 General Purpose Flag  0008 (8)\n-     [Bit  3]              1 'Streamed'\n-95A8 Compression Method    0000 (0) 'Stored'\n-95AA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-95AE CRC                   40BDA4ED (1086170349)\n-95B2 Compressed Size       00000EB7 (3767)\n-95B6 Uncompressed Size     00000EB7 (3767)\n-95BA Filename Length       0040 (64)\n-95BC Extra Length          0009 (9)\n-95BE Comment Length        0000 (0)\n-95C0 Disk Start            0000 (0)\n-95C2 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-95C4 Ext File Attributes   00000000 (0)\n-95C8 Local Header Offset   00007F2C (32556)\n-95CC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x95CC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-960C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-960E   Length              0005 (5)\n-9610   Flags               01 (1) 'Modification'\n-9611   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-9615 END CENTRAL HEADER    06054B50 (101010256)\n-9619 Number of this disk   0000 (0)\n-961B Central Dir Disk no   0000 (0)\n-961D Entries in this disk  0016 (22)\n-961F Total Entries         0016 (22)\n-9621 Size of Central Dir   000007BB (1979)\n-9625 Offset to Central Dir 00008E5A (36442)\n-9629 Comment Length        0000 (0)\n+4565 DATA DESCRIPTOR       08074B50 (134695760)\n+4569 CRC                   C87FB043 (3363811395)\n+456D Compressed Size       000008F9 (2297)\n+4571 Uncompressed Size     000008F9 (2297)\n+\n+4575 LOCAL HEADER #11      04034B50 (67324752)\n+4579 Extract Zip Spec      14 (20) '2.0'\n+457A Extract OS            00 (0) 'MS-DOS'\n+457B General Purpose Flag  0000 (0)\n+457D Compression Method    0000 (0) 'Stored'\n+457F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4583 CRC                   00000000 (0)\n+4587 Compressed Size       00000000 (0)\n+458B Uncompressed Size     00000000 (0)\n+458F Filename Length       0004 (4)\n+4591 Extra Length          0009 (9)\n+4593 Filename              'XXXX'\n+#\n+# WARNING: Offset 0x4593: Filename 'XXXX'\n+#          Zero length filename\n+#\n+4597 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4599   Length              0005 (5)\n+459B   Flags               01 (1) 'Modification'\n+459C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+45A0 LOCAL HEADER #12      04034B50 (67324752)\n+45A4 Extract Zip Spec      14 (20) '2.0'\n+45A5 Extract OS            00 (0) 'MS-DOS'\n+45A6 General Purpose Flag  0000 (0)\n+45A8 Compression Method    0000 (0) 'Stored'\n+45AA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+45AE CRC                   00000000 (0)\n+45B2 Compressed Size       00000000 (0)\n+45B6 Uncompressed Size     00000000 (0)\n+45BA Filename Length       000B (11)\n+45BC Extra Length          0009 (9)\n+45BE Filename              'XXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x45BE: Filename 'XXXXXXXXXXX'\n+#          Zero length filename\n+#\n+45C9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+45CB   Length              0005 (5)\n+45CD   Flags               01 (1) 'Modification'\n+45CE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+45D2 LOCAL HEADER #13      04034B50 (67324752)\n+45D6 Extract Zip Spec      14 (20) '2.0'\n+45D7 Extract OS            00 (0) 'MS-DOS'\n+45D8 General Purpose Flag  0000 (0)\n+45DA Compression Method    0000 (0) 'Stored'\n+45DC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+45E0 CRC                   00000000 (0)\n+45E4 Compressed Size       00000000 (0)\n+45E8 Uncompressed Size     00000000 (0)\n+45EC Filename Length       0011 (17)\n+45EE Extra Length          0009 (9)\n+45F0 Filename              'XXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x45F0: Filename 'XXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4601 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4603   Length              0005 (5)\n+4605   Flags               01 (1) 'Modification'\n+4606   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+460A LOCAL HEADER #14      04034B50 (67324752)\n+460E Extract Zip Spec      14 (20) '2.0'\n+460F Extract OS            00 (0) 'MS-DOS'\n+4610 General Purpose Flag  0000 (0)\n+4612 Compression Method    0000 (0) 'Stored'\n+4614 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4618 CRC                   00000000 (0)\n+461C Compressed Size       00000000 (0)\n+4620 Uncompressed Size     00000000 (0)\n+4624 Filename Length       001A (26)\n+4626 Extra Length          0009 (9)\n+4628 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4628: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4642 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4644   Length              0005 (5)\n+4646   Flags               01 (1) 'Modification'\n+4647   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+464B LOCAL HEADER #15      04034B50 (67324752)\n+464F Extract Zip Spec      14 (20) '2.0'\n+4650 Extract OS            00 (0) 'MS-DOS'\n+4651 General Purpose Flag  0000 (0)\n+4653 Compression Method    0000 (0) 'Stored'\n+4655 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4659 CRC                   00000000 (0)\n+465D Compressed Size       00000000 (0)\n+4661 Uncompressed Size     00000000 (0)\n+4665 Filename Length       0020 (32)\n+4667 Extra Length          0009 (9)\n+4669 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4669: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4689 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+468B   Length              0005 (5)\n+468D   Flags               01 (1) 'Modification'\n+468E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+4692 LOCAL HEADER #16      04034B50 (67324752)\n+4696 Extract Zip Spec      14 (20) '2.0'\n+4697 Extract OS            00 (0) 'MS-DOS'\n+4698 General Purpose Flag  0008 (8)\n+     [Bit  3]              1 'Streamed'\n+469A Compression Method    0000 (0) 'Stored'\n+469C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+46A0 CRC                   00000000 (0)\n+46A4 Compressed Size       00000000 (0)\n+46A8 Uncompressed Size     00000000 (0)\n+46AC Filename Length       0030 (48)\n+46AE Extra Length          0009 (9)\n+46B0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x46B0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+46E0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+46E2   Length              0005 (5)\n+46E4   Flags               01 (1) 'Modification'\n+46E5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+46E9 PAYLOAD\n+\n+4CA1 DATA DESCRIPTOR       08074B50 (134695760)\n+4CA5 CRC                   F61CD2D8 (4129084120)\n+4CA9 Compressed Size       000005B8 (1464)\n+4CAD Uncompressed Size     000005B8 (1464)\n+\n+4CB1 LOCAL HEADER #17      04034B50 (67324752)\n+4CB5 Extract Zip Spec      14 (20) '2.0'\n+4CB6 Extract OS            00 (0) 'MS-DOS'\n+4CB7 General Purpose Flag  0000 (0)\n+4CB9 Compression Method    0000 (0) 'Stored'\n+4CBB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4CBF CRC                   00000000 (0)\n+4CC3 Compressed Size       00000000 (0)\n+4CC7 Uncompressed Size     00000000 (0)\n+4CCB Filename Length       0026 (38)\n+4CCD Extra Length          0009 (9)\n+4CCF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4CCF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4CF5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4CF7   Length              0005 (5)\n+4CF9   Flags               01 (1) 'Modification'\n+4CFA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+4CFE LOCAL HEADER #18      04034B50 (67324752)\n+4D02 Extract Zip Spec      14 (20) '2.0'\n+4D03 Extract OS            00 (0) 'MS-DOS'\n+4D04 General Purpose Flag  0008 (8)\n+     [Bit  3]              1 'Streamed'\n+4D06 Compression Method    0000 (0) 'Stored'\n+4D08 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4D0C CRC                   00000000 (0)\n+4D10 Compressed Size       00000000 (0)\n+4D14 Uncompressed Size     00000000 (0)\n+4D18 Filename Length       003D (61)\n+4D1A Extra Length          0009 (9)\n+4D1C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4D1C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4D59 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4D5B   Length              0005 (5)\n+4D5D   Flags               01 (1) 'Modification'\n+4D5E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4D62 PAYLOAD\n+\n+6031 DATA DESCRIPTOR       08074B50 (134695760)\n+6035 CRC                   250C4A13 (621562387)\n+6039 Compressed Size       000012CF (4815)\n+603D Uncompressed Size     000012CF (4815)\n+\n+6041 LOCAL HEADER #19      04034B50 (67324752)\n+6045 Extract Zip Spec      14 (20) '2.0'\n+6046 Extract OS            00 (0) 'MS-DOS'\n+6047 General Purpose Flag  0008 (8)\n+     [Bit  3]              1 'Streamed'\n+6049 Compression Method    0000 (0) 'Stored'\n+604B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+604F CRC                   00000000 (0)\n+6053 Compressed Size       00000000 (0)\n+6057 Uncompressed Size     00000000 (0)\n+605B Filename Length       003A (58)\n+605D Extra Length          0009 (9)\n+605F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x605F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6099 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+609B   Length              0005 (5)\n+609D   Flags               01 (1) 'Modification'\n+609E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+60A2 PAYLOAD\n+\n+6F6A DATA DESCRIPTOR       08074B50 (134695760)\n+6F6E CRC                   28340452 (674497618)\n+6F72 Compressed Size       00000EC8 (3784)\n+6F76 Uncompressed Size     00000EC8 (3784)\n+\n+6F7A LOCAL HEADER #20      04034B50 (67324752)\n+6F7E Extract Zip Spec      14 (20) '2.0'\n+6F7F Extract OS            00 (0) 'MS-DOS'\n+6F80 General Purpose Flag  0008 (8)\n+     [Bit  3]              1 'Streamed'\n+6F82 Compression Method    0000 (0) 'Stored'\n+6F84 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F88 CRC                   00000000 (0)\n+6F8C Compressed Size       00000000 (0)\n+6F90 Uncompressed Size     00000000 (0)\n+6F94 Filename Length       003E (62)\n+6F96 Extra Length          0009 (9)\n+6F98 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F98: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FD6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FD8   Length              0005 (5)\n+6FDA   Flags               01 (1) 'Modification'\n+6FDB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6FDF PAYLOAD\n+\n+8036 DATA DESCRIPTOR       08074B50 (134695760)\n+803A CRC                   BBE41D21 (3152289057)\n+803E Compressed Size       00001057 (4183)\n+8042 Uncompressed Size     00001057 (4183)\n+\n+8046 LOCAL HEADER #21      04034B50 (67324752)\n+804A Extract Zip Spec      14 (20) '2.0'\n+804B Extract OS            00 (0) 'MS-DOS'\n+804C General Purpose Flag  0000 (0)\n+804E Compression Method    0000 (0) 'Stored'\n+8050 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+8054 CRC                   00000000 (0)\n+8058 Compressed Size       00000000 (0)\n+805C Uncompressed Size     00000000 (0)\n+8060 Filename Length       0028 (40)\n+8062 Extra Length          0009 (9)\n+8064 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x8064: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+808C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+808E   Length              0005 (5)\n+8090   Flags               01 (1) 'Modification'\n+8091   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+8095 LOCAL HEADER #22      04034B50 (67324752)\n+8099 Extract Zip Spec      14 (20) '2.0'\n+809A Extract OS            00 (0) 'MS-DOS'\n+809B General Purpose Flag  0008 (8)\n+     [Bit  3]              1 'Streamed'\n+809D Compression Method    0000 (0) 'Stored'\n+809F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+80A3 CRC                   00000000 (0)\n+80A7 Compressed Size       00000000 (0)\n+80AB Uncompressed Size     00000000 (0)\n+80AF Filename Length       0040 (64)\n+80B1 Extra Length          0009 (9)\n+80B3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x80B3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+80F3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+80F5   Length              0005 (5)\n+80F7   Flags               01 (1) 'Modification'\n+80F8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+80FC PAYLOAD\n+\n+9011 DATA DESCRIPTOR       08074B50 (134695760)\n+9015 CRC                   E7735ED0 (3883097808)\n+9019 Compressed Size       00000F15 (3861)\n+901D Uncompressed Size     00000F15 (3861)\n+\n+9021 CENTRAL HEADER #1     02014B50 (33639248)\n+9025 Created Zip Spec      14 (20) '2.0'\n+9026 Created OS            00 (0) 'MS-DOS'\n+9027 Extract Zip Spec      14 (20) '2.0'\n+9028 Extract OS            00 (0) 'MS-DOS'\n+9029 General Purpose Flag  0000 (0)\n+902B Compression Method    0000 (0) 'Stored'\n+902D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+9031 CRC                   00000000 (0)\n+9035 Compressed Size       00000000 (0)\n+9039 Uncompressed Size     00000000 (0)\n+903D Filename Length       0009 (9)\n+903F Extra Length          0009 (9)\n+9041 Comment Length        0000 (0)\n+9043 Disk Start            0000 (0)\n+9045 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+9047 Ext File Attributes   00000000 (0)\n+904B Local Header Offset   00000000 (0)\n+904F Filename              'XXXXXXXXX'\n+#\n+# WARNING: Offset 0x904F: Filename 'XXXXXXXXX'\n+#          Zero length filename\n+#\n+9058 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+905A   Length              0005 (5)\n+905C   Flags               01 (1) 'Modification'\n+905D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+9061 CENTRAL HEADER #2     02014B50 (33639248)\n+9065 Created Zip Spec      14 (20) '2.0'\n+9066 Created OS            00 (0) 'MS-DOS'\n+9067 Extract Zip Spec      14 (20) '2.0'\n+9068 Extract OS            00 (0) 'MS-DOS'\n+9069 General Purpose Flag  0008 (8)\n+     [Bit  3]              1 'Streamed'\n+906B Compression Method    0000 (0) 'Stored'\n+906D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+9071 CRC                   AD27A3A1 (2905056161)\n+9075 Compressed Size       00000C3A (3130)\n+9079 Uncompressed Size     00000C3A (3130)\n+907D Filename Length       0015 (21)\n+907F Extra Length          0009 (9)\n+9081 Comment Length        0000 (0)\n+9083 Disk Start            0000 (0)\n+9085 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+9087 Ext File Attributes   00000000 (0)\n+908B Local Header Offset   00000030 (48)\n+908F Filename              'XXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x908F: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+90A4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+90A6   Length              0005 (5)\n+90A8   Flags               01 (1) 'Modification'\n+90A9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+90AD CENTRAL HEADER #3     02014B50 (33639248)\n+90B1 Created Zip Spec      14 (20) '2.0'\n+90B2 Created OS            00 (0) 'MS-DOS'\n+90B3 Extract Zip Spec      14 (20) '2.0'\n+90B4 Extract OS            00 (0) 'MS-DOS'\n+90B5 General Purpose Flag  0008 (8)\n+     [Bit  3]              1 'Streamed'\n+90B7 Compression Method    0000 (0) 'Stored'\n+90B9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+90BD CRC                   86E2B4B4 (2263004340)\n+90C1 Compressed Size       00002C5E (11358)\n+90C5 Uncompressed Size     00002C5E (11358)\n+90C9 Filename Length       0010 (16)\n+90CB Extra Length          0009 (9)\n+90CD Comment Length        0000 (0)\n+90CF Disk Start            0000 (0)\n+90D1 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+90D3 Ext File Attributes   00000000 (0)\n+90D7 Local Header Offset   00000CB6 (3254)\n+90DB Filename              'XXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x90DB: Filename 'XXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+90EB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+90ED   Length              0005 (5)\n+90EF   Flags               01 (1) 'Modification'\n+90F0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+90F4 CENTRAL HEADER #4     02014B50 (33639248)\n+90F8 Created Zip Spec      14 (20) '2.0'\n+90F9 Created OS            00 (0) 'MS-DOS'\n+90FA Extract Zip Spec      14 (20) '2.0'\n+90FB Extract OS            00 (0) 'MS-DOS'\n+90FC General Purpose Flag  0008 (8)\n+     [Bit  3]              1 'Streamed'\n+90FE Compression Method    0000 (0) 'Stored'\n+9100 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+9104 CRC                   EE027FB2 (3993141170)\n+9108 Compressed Size       00000019 (25)\n+910C Uncompressed Size     00000019 (25)\n+9110 Filename Length       0014 (20)\n+9112 Extra Length          0009 (9)\n+9114 Comment Length        0000 (0)\n+9116 Disk Start            0000 (0)\n+9118 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+911A Ext File Attributes   00000000 (0)\n+911E Local Header Offset   0000395B (14683)\n+9122 Filename              'XXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x9122: Filename 'XXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+9136 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+9138   Length              0005 (5)\n+913A   Flags               01 (1) 'Modification'\n+913B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+913F CENTRAL HEADER #5     02014B50 (33639248)\n+9143 Created Zip Spec      14 (20) '2.0'\n+9144 Created OS            00 (0) 'MS-DOS'\n+9145 Extract Zip Spec      14 (20) '2.0'\n+9146 Extract OS            00 (0) 'MS-DOS'\n+9147 General Purpose Flag  0008 (8)\n+     [Bit  3]              1 'Streamed'\n+9149 Compression Method    0000 (0) 'Stored'\n+914B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+914F CRC                   3110311C (823144732)\n+9153 Compressed Size       000000B1 (177)\n+9157 Uncompressed Size     000000B1 (177)\n+915B Filename Length       000F (15)\n+915D Extra Length          0009 (9)\n+915F Comment Length        0000 (0)\n+9161 Disk Start            0000 (0)\n+9163 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+9165 Ext File Attributes   00000000 (0)\n+9169 Local Header Offset   000039BF (14783)\n+916D Filename              'XXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x916D: Filename 'XXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+917C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+917E   Length              0005 (5)\n+9180   Flags               01 (1) 'Modification'\n+9181   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+9185 CENTRAL HEADER #6     02014B50 (33639248)\n+9189 Created Zip Spec      14 (20) '2.0'\n+918A Created OS            00 (0) 'MS-DOS'\n+918B Extract Zip Spec      14 (20) '2.0'\n+918C Extract OS            00 (0) 'MS-DOS'\n+918D General Purpose Flag  0000 (0)\n+918F Compression Method    0000 (0) 'Stored'\n+9191 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+9195 CRC                   00000000 (0)\n+9199 Compressed Size       00000000 (0)\n+919D Uncompressed Size     00000000 (0)\n+91A1 Filename Length       000F (15)\n+91A3 Extra Length          0009 (9)\n+91A5 Comment Length        0000 (0)\n+91A7 Disk Start            0000 (0)\n+91A9 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+91AB Ext File Attributes   00000000 (0)\n+91AF Local Header Offset   00003AB6 (15030)\n+91B3 Filename              'XXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x91B3: Filename 'XXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+91C2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+91C4   Length              0005 (5)\n+91C6   Flags               01 (1) 'Modification'\n+91C7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+91CB CENTRAL HEADER #7     02014B50 (33639248)\n+91CF Created Zip Spec      14 (20) '2.0'\n+91D0 Created OS            00 (0) 'MS-DOS'\n+91D1 Extract Zip Spec      14 (20) '2.0'\n+91D2 Extract OS            00 (0) 'MS-DOS'\n+91D3 General Purpose Flag  0000 (0)\n+91D5 Compression Method    0000 (0) 'Stored'\n+91D7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+91DB CRC                   00000000 (0)\n+91DF Compressed Size       00000000 (0)\n+91E3 Uncompressed Size     00000000 (0)\n+91E7 Filename Length       0020 (32)\n+91E9 Extra Length          0009 (9)\n+91EB Comment Length        0000 (0)\n+91ED Disk Start            0000 (0)\n+91EF Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+91F1 Ext File Attributes   00000000 (0)\n+91F5 Local Header Offset   00003AEC (15084)\n+91F9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x91F9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+9219 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+921B   Length              0005 (5)\n+921D   Flags               01 (1) 'Modification'\n+921E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+9222 CENTRAL HEADER #8     02014B50 (33639248)\n+9226 Created Zip Spec      14 (20) '2.0'\n+9227 Created OS            00 (0) 'MS-DOS'\n+9228 Extract Zip Spec      14 (20) '2.0'\n+9229 Extract OS            00 (0) 'MS-DOS'\n+922A General Purpose Flag  0000 (0)\n+922C Compression Method    0000 (0) 'Stored'\n+922E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+9232 CRC                   00000000 (0)\n+9236 Compressed Size       00000000 (0)\n+923A Uncompressed Size     00000000 (0)\n+923E Filename Length       0035 (53)\n+9240 Extra Length          0009 (9)\n+9242 Comment Length        0000 (0)\n+9244 Disk Start            0000 (0)\n+9246 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+9248 Ext File Attributes   00000000 (0)\n+924C Local Header Offset   00003B33 (15155)\n+9250 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x9250: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+9285 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+9287   Length              0005 (5)\n+9289   Flags               01 (1) 'Modification'\n+928A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+928E CENTRAL HEADER #9     02014B50 (33639248)\n+9292 Created Zip Spec      14 (20) '2.0'\n+9293 Created OS            00 (0) 'MS-DOS'\n+9294 Extract Zip Spec      14 (20) '2.0'\n+9295 Extract OS            00 (0) 'MS-DOS'\n+9296 General Purpose Flag  0008 (8)\n+     [Bit  3]              1 'Streamed'\n+9298 Compression Method    0000 (0) 'Stored'\n+929A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+929E CRC                   00000000 (0)\n+92A2 Compressed Size       00000000 (0)\n+92A6 Uncompressed Size     00000000 (0)\n+92AA Filename Length       0043 (67)\n+92AC Extra Length          0009 (9)\n+92AE Comment Length        0000 (0)\n+92B0 Disk Start            0000 (0)\n+92B2 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+92B4 Ext File Attributes   00000000 (0)\n+92B8 Local Header Offset   00003B8F (15247)\n+92BC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x92BC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+92FF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+9301   Length              0005 (5)\n+9303   Flags               01 (1) 'Modification'\n+9304   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+9308 CENTRAL HEADER #10    02014B50 (33639248)\n+930C Created Zip Spec      14 (20) '2.0'\n+930D Created OS            00 (0) 'MS-DOS'\n+930E Extract Zip Spec      14 (20) '2.0'\n+930F Extract OS            00 (0) 'MS-DOS'\n+9310 General Purpose Flag  0008 (8)\n+     [Bit  3]              1 'Streamed'\n+9312 Compression Method    0000 (0) 'Stored'\n+9314 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+9318 CRC                   C87FB043 (3363811395)\n+931C Compressed Size       000008F9 (2297)\n+9320 Uncompressed Size     000008F9 (2297)\n+9324 Filename Length       003C (60)\n+9326 Extra Length          0009 (9)\n+9328 Comment Length        0000 (0)\n+932A Disk Start            0000 (0)\n+932C Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+932E Ext File Attributes   00000000 (0)\n+9332 Local Header Offset   00003C09 (15369)\n+9336 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x9336: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+9372 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+9374   Length              0005 (5)\n+9376   Flags               01 (1) 'Modification'\n+9377   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+937B CENTRAL HEADER #11    02014B50 (33639248)\n+937F Created Zip Spec      14 (20) '2.0'\n+9380 Created OS            00 (0) 'MS-DOS'\n+9381 Extract Zip Spec      14 (20) '2.0'\n+9382 Extract OS            00 (0) 'MS-DOS'\n+9383 General Purpose Flag  0000 (0)\n+9385 Compression Method    0000 (0) 'Stored'\n+9387 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+938B CRC                   00000000 (0)\n+938F Compressed Size       00000000 (0)\n+9393 Uncompressed Size     00000000 (0)\n+9397 Filename Length       0004 (4)\n+9399 Extra Length          0009 (9)\n+939B Comment Length        0000 (0)\n+939D Disk Start            0000 (0)\n+939F Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+93A1 Ext File Attributes   00000000 (0)\n+93A5 Local Header Offset   00004575 (17781)\n+93A9 Filename              'XXXX'\n+#\n+# WARNING: Offset 0x93A9: Filename 'XXXX'\n+#          Zero length filename\n+#\n+93AD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+93AF   Length              0005 (5)\n+93B1   Flags               01 (1) 'Modification'\n+93B2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+93B6 CENTRAL HEADER #12    02014B50 (33639248)\n+93BA Created Zip Spec      14 (20) '2.0'\n+93BB Created OS            00 (0) 'MS-DOS'\n+93BC Extract Zip Spec      14 (20) '2.0'\n+93BD Extract OS            00 (0) 'MS-DOS'\n+93BE General Purpose Flag  0000 (0)\n+93C0 Compression Method    0000 (0) 'Stored'\n+93C2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+93C6 CRC                   00000000 (0)\n+93CA Compressed Size       00000000 (0)\n+93CE Uncompressed Size     00000000 (0)\n+93D2 Filename Length       000B (11)\n+93D4 Extra Length          0009 (9)\n+93D6 Comment Length        0000 (0)\n+93D8 Disk Start            0000 (0)\n+93DA Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+93DC Ext File Attributes   00000000 (0)\n+93E0 Local Header Offset   000045A0 (17824)\n+93E4 Filename              'XXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x93E4: Filename 'XXXXXXXXXXX'\n+#          Zero length filename\n+#\n+93EF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+93F1   Length              0005 (5)\n+93F3   Flags               01 (1) 'Modification'\n+93F4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+93F8 CENTRAL HEADER #13    02014B50 (33639248)\n+93FC Created Zip Spec      14 (20) '2.0'\n+93FD Created OS            00 (0) 'MS-DOS'\n+93FE Extract Zip Spec      14 (20) '2.0'\n+93FF Extract OS            00 (0) 'MS-DOS'\n+9400 General Purpose Flag  0000 (0)\n+9402 Compression Method    0000 (0) 'Stored'\n+9404 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+9408 CRC                   00000000 (0)\n+940C Compressed Size       00000000 (0)\n+9410 Uncompressed Size     00000000 (0)\n+9414 Filename Length       0011 (17)\n+9416 Extra Length          0009 (9)\n+9418 Comment Length        0000 (0)\n+941A Disk Start            0000 (0)\n+941C Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+941E Ext File Attributes   00000000 (0)\n+9422 Local Header Offset   000045D2 (17874)\n+9426 Filename              'XXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x9426: Filename 'XXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+9437 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+9439   Length              0005 (5)\n+943B   Flags               01 (1) 'Modification'\n+943C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+9440 CENTRAL HEADER #14    02014B50 (33639248)\n+9444 Created Zip Spec      14 (20) '2.0'\n+9445 Created OS            00 (0) 'MS-DOS'\n+9446 Extract Zip Spec      14 (20) '2.0'\n+9447 Extract OS            00 (0) 'MS-DOS'\n+9448 General Purpose Flag  0000 (0)\n+944A Compression Method    0000 (0) 'Stored'\n+944C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+9450 CRC                   00000000 (0)\n+9454 Compressed Size       00000000 (0)\n+9458 Uncompressed Size     00000000 (0)\n+945C Filename Length       001A (26)\n+945E Extra Length          0009 (9)\n+9460 Comment Length        0000 (0)\n+9462 Disk Start            0000 (0)\n+9464 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+9466 Ext File Attributes   00000000 (0)\n+946A Local Header Offset   0000460A (17930)\n+946E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x946E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+9488 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+948A   Length              0005 (5)\n+948C   Flags               01 (1) 'Modification'\n+948D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+9491 CENTRAL HEADER #15    02014B50 (33639248)\n+9495 Created Zip Spec      14 (20) '2.0'\n+9496 Created OS            00 (0) 'MS-DOS'\n+9497 Extract Zip Spec      14 (20) '2.0'\n+9498 Extract OS            00 (0) 'MS-DOS'\n+9499 General Purpose Flag  0000 (0)\n+949B Compression Method    0000 (0) 'Stored'\n+949D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+94A1 CRC                   00000000 (0)\n+94A5 Compressed Size       00000000 (0)\n+94A9 Uncompressed Size     00000000 (0)\n+94AD Filename Length       0020 (32)\n+94AF Extra Length          0009 (9)\n+94B1 Comment Length        0000 (0)\n+94B3 Disk Start            0000 (0)\n+94B5 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+94B7 Ext File Attributes   00000000 (0)\n+94BB Local Header Offset   0000464B (17995)\n+94BF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x94BF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+94DF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+94E1   Length              0005 (5)\n+94E3   Flags               01 (1) 'Modification'\n+94E4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+94E8 CENTRAL HEADER #16    02014B50 (33639248)\n+94EC Created Zip Spec      14 (20) '2.0'\n+94ED Created OS            00 (0) 'MS-DOS'\n+94EE Extract Zip Spec      14 (20) '2.0'\n+94EF Extract OS            00 (0) 'MS-DOS'\n+94F0 General Purpose Flag  0008 (8)\n+     [Bit  3]              1 'Streamed'\n+94F2 Compression Method    0000 (0) 'Stored'\n+94F4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+94F8 CRC                   F61CD2D8 (4129084120)\n+94FC Compressed Size       000005B8 (1464)\n+9500 Uncompressed Size     000005B8 (1464)\n+9504 Filename Length       0030 (48)\n+9506 Extra Length          0009 (9)\n+9508 Comment Length        0000 (0)\n+950A Disk Start            0000 (0)\n+950C Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+950E Ext File Attributes   00000000 (0)\n+9512 Local Header Offset   00004692 (18066)\n+9516 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x9516: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+9546 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+9548   Length              0005 (5)\n+954A   Flags               01 (1) 'Modification'\n+954B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+954F CENTRAL HEADER #17    02014B50 (33639248)\n+9553 Created Zip Spec      14 (20) '2.0'\n+9554 Created OS            00 (0) 'MS-DOS'\n+9555 Extract Zip Spec      14 (20) '2.0'\n+9556 Extract OS            00 (0) 'MS-DOS'\n+9557 General Purpose Flag  0000 (0)\n+9559 Compression Method    0000 (0) 'Stored'\n+955B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+955F CRC                   00000000 (0)\n+9563 Compressed Size       00000000 (0)\n+9567 Uncompressed Size     00000000 (0)\n+956B Filename Length       0026 (38)\n+956D Extra Length          0009 (9)\n+956F Comment Length        0000 (0)\n+9571 Disk Start            0000 (0)\n+9573 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+9575 Ext File Attributes   00000000 (0)\n+9579 Local Header Offset   00004CB1 (19633)\n+957D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x957D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+95A3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+95A5   Length              0005 (5)\n+95A7   Flags               01 (1) 'Modification'\n+95A8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+95AC CENTRAL HEADER #18    02014B50 (33639248)\n+95B0 Created Zip Spec      14 (20) '2.0'\n+95B1 Created OS            00 (0) 'MS-DOS'\n+95B2 Extract Zip Spec      14 (20) '2.0'\n+95B3 Extract OS            00 (0) 'MS-DOS'\n+95B4 General Purpose Flag  0008 (8)\n+     [Bit  3]              1 'Streamed'\n+95B6 Compression Method    0000 (0) 'Stored'\n+95B8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+95BC CRC                   250C4A13 (621562387)\n+95C0 Compressed Size       000012CF (4815)\n+95C4 Uncompressed Size     000012CF (4815)\n+95C8 Filename Length       003D (61)\n+95CA Extra Length          0009 (9)\n+95CC Comment Length        0000 (0)\n+95CE Disk Start            0000 (0)\n+95D0 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+95D2 Ext File Attributes   00000000 (0)\n+95D6 Local Header Offset   00004CFE (19710)\n+95DA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x95DA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+9617 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+9619   Length              0005 (5)\n+961B   Flags               01 (1) 'Modification'\n+961C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+9620 CENTRAL HEADER #19    02014B50 (33639248)\n+9624 Created Zip Spec      14 (20) '2.0'\n+9625 Created OS            00 (0) 'MS-DOS'\n+9626 Extract Zip Spec      14 (20) '2.0'\n+9627 Extract OS            00 (0) 'MS-DOS'\n+9628 General Purpose Flag  0008 (8)\n+     [Bit  3]              1 'Streamed'\n+962A Compression Method    0000 (0) 'Stored'\n+962C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+9630 CRC                   28340452 (674497618)\n+9634 Compressed Size       00000EC8 (3784)\n+9638 Uncompressed Size     00000EC8 (3784)\n+963C Filename Length       003A (58)\n+963E Extra Length          0009 (9)\n+9640 Comment Length        0000 (0)\n+9642 Disk Start            0000 (0)\n+9644 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+9646 Ext File Attributes   00000000 (0)\n+964A Local Header Offset   00006041 (24641)\n+964E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x964E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+9688 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+968A   Length              0005 (5)\n+968C   Flags               01 (1) 'Modification'\n+968D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+9691 CENTRAL HEADER #20    02014B50 (33639248)\n+9695 Created Zip Spec      14 (20) '2.0'\n+9696 Created OS            00 (0) 'MS-DOS'\n+9697 Extract Zip Spec      14 (20) '2.0'\n+9698 Extract OS            00 (0) 'MS-DOS'\n+9699 General Purpose Flag  0008 (8)\n+     [Bit  3]              1 'Streamed'\n+969B Compression Method    0000 (0) 'Stored'\n+969D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+96A1 CRC                   BBE41D21 (3152289057)\n+96A5 Compressed Size       00001057 (4183)\n+96A9 Uncompressed Size     00001057 (4183)\n+96AD Filename Length       003E (62)\n+96AF Extra Length          0009 (9)\n+96B1 Comment Length        0000 (0)\n+96B3 Disk Start            0000 (0)\n+96B5 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+96B7 Ext File Attributes   00000000 (0)\n+96BB Local Header Offset   00006F7A (28538)\n+96BF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x96BF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+96FD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+96FF   Length              0005 (5)\n+9701   Flags               01 (1) 'Modification'\n+9702   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+9706 CENTRAL HEADER #21    02014B50 (33639248)\n+970A Created Zip Spec      14 (20) '2.0'\n+970B Created OS            00 (0) 'MS-DOS'\n+970C Extract Zip Spec      14 (20) '2.0'\n+970D Extract OS            00 (0) 'MS-DOS'\n+970E General Purpose Flag  0000 (0)\n+9710 Compression Method    0000 (0) 'Stored'\n+9712 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+9716 CRC                   00000000 (0)\n+971A Compressed Size       00000000 (0)\n+971E Uncompressed Size     00000000 (0)\n+9722 Filename Length       0028 (40)\n+9724 Extra Length          0009 (9)\n+9726 Comment Length        0000 (0)\n+9728 Disk Start            0000 (0)\n+972A Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+972C Ext File Attributes   00000000 (0)\n+9730 Local Header Offset   00008046 (32838)\n+9734 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x9734: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+975C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+975E   Length              0005 (5)\n+9760   Flags               01 (1) 'Modification'\n+9761   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+9765 CENTRAL HEADER #22    02014B50 (33639248)\n+9769 Created Zip Spec      14 (20) '2.0'\n+976A Created OS            00 (0) 'MS-DOS'\n+976B Extract Zip Spec      14 (20) '2.0'\n+976C Extract OS            00 (0) 'MS-DOS'\n+976D General Purpose Flag  0008 (8)\n+     [Bit  3]              1 'Streamed'\n+976F Compression Method    0000 (0) 'Stored'\n+9771 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+9775 CRC                   E7735ED0 (3883097808)\n+9779 Compressed Size       00000F15 (3861)\n+977D Uncompressed Size     00000F15 (3861)\n+9781 Filename Length       0040 (64)\n+9783 Extra Length          0009 (9)\n+9785 Comment Length        0000 (0)\n+9787 Disk Start            0000 (0)\n+9789 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+978B Ext File Attributes   00000000 (0)\n+978F Local Header Offset   00008095 (32917)\n+9793 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x9793: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+97D3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+97D5   Length              0005 (5)\n+97D7   Flags               01 (1) 'Modification'\n+97D8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+97DC END CENTRAL HEADER    06054B50 (101010256)\n+97E0 Number of this disk   0000 (0)\n+97E2 Central Dir Disk no   0000 (0)\n+97E4 Entries in this disk  0016 (22)\n+97E6 Total Entries         0016 (22)\n+97E8 Size of Central Dir   000007BB (1979)\n+97EC Offset to Central Dir 00009021 (36897)\n+97F0 Comment Length        0000 (0)\n #\n # Warning Count: 44\n #\n # Done\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-remoting-redis/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-remoting-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,148 +1,144 @@\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 2d72 656d 6f74 696e 673c 2f61 7274  bo-remoting</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: 2d72 656d 6f74 696e 672d 7265 6469 733c  -remoting-redis<\n-00000520: 2f61 7274 6966 6163 7449 643e 0d0a 2020  /artifactId>..  \n-00000530: 3c76 6572 7369 6f6e 3e32 2e37 2e31 303c  <version>2.7.10<\n-00000540: 2f76 6572 7369 6f6e 3e0d 0a20 203c 6e61  /version>..  <na\n-00000550: 6d65 3e24 7b70 726f 6a65 6374 2e61 7274  me>${project.art\n-00000560: 6966 6163 7449 647d 3c2f 6e61 6d65 3e0d  ifactId}</name>.\n-00000570: 0a20 203c 6465 7363 7269 7074 696f 6e3e  .  <description>\n-00000580: 5468 6520 7265 6469 7320 7265 6d6f 7469  The redis remoti\n-00000590: 6e67 206d 6f64 756c 6520 6f66 2064 7562  ng module of dub\n-000005a0: 626f 2070 726f 6a65 6374 3c2f 6465 7363  bo project</desc\n-000005b0: 7269 7074 696f 6e3e 0d0a 2020 3c6c 6963  ription>..  <lic\n-000005c0: 656e 7365 733e 0d0a 2020 2020 3c6c 6963  enses>..    <lic\n-000005d0: 656e 7365 3e0d 0a20 2020 2020 203c 6e61  ense>..      <na\n-000005e0: 6d65 3e41 7061 6368 6520 4c69 6365 6e73  me>Apache Licens\n-000005f0: 652c 2056 6572 7369 6f6e 2032 2e30 3c2f  e, Version 2.0</\n-00000600: 6e61 6d65 3e0d 0a20 2020 2020 203c 7572  name>..      <ur\n-00000610: 6c3e 6874 7470 3a2f 2f77 7777 2e61 7061  l>http://www.apa\n-00000620: 6368 652e 6f72 672f 6c69 6365 6e73 6573  che.org/licenses\n-00000630: 2f4c 4943 454e 5345 2d32 2e30 3c2f 7572  /LICENSE-2.0</ur\n-00000640: 6c3e 0d0a 2020 2020 2020 3c64 6973 7472  l>..      <distr\n-00000650: 6962 7574 696f 6e3e 7265 706f 3c2f 6469  ibution>repo</di\n-00000660: 7374 7269 6275 7469 6f6e 3e0d 0a20 2020  stribution>..   \n-00000670: 203c 2f6c 6963 656e 7365 3e0d 0a20 203c   </license>..  <\n-00000680: 2f6c 6963 656e 7365 733e 0d0a 2020 3c70  /licenses>..  <p\n-00000690: 726f 7065 7274 6965 733e 0d0a 2020 2020  roperties>..    \n-000006a0: 3c73 6b69 705f 6d61 7665 6e5f 6465 706c  <skip_maven_depl\n-000006b0: 6f79 3e66 616c 7365 3c2f 736b 6970 5f6d  oy>false</skip_m\n-000006c0: 6176 656e 5f64 6570 6c6f 793e 0d0a 2020  aven_deploy>..  \n-000006d0: 2020 3c70 726f 6a65 6374 2e62 7569 6c64    <project.build\n-000006e0: 2e73 6f75 7263 6545 6e63 6f64 696e 673e  .sourceEncoding>\n-000006f0: 5554 462d 383c 2f70 726f 6a65 6374 2e62  UTF-8</project.b\n-00000700: 7569 6c64 2e73 6f75 7263 6545 6e63 6f64  uild.sourceEncod\n-00000710: 696e 673e 0d0a 2020 3c2f 7072 6f70 6572  ing>..  </proper\n-00000720: 7469 6573 3e0d 0a20 203c 6465 7065 6e64  ties>..  <depend\n-00000730: 656e 6369 6573 3e0d 0a20 2020 203c 6465  encies>..    <de\n-00000740: 7065 6e64 656e 6379 3e0d 0a20 2020 2020  pendency>..     \n-00000750: 203c 6772 6f75 7049 643e 6f72 672e 6170   <groupId>org.ap\n-00000760: 6163 6865 2e64 7562 626f 3c2f 6772 6f75  ache.dubbo</grou\n-00000770: 7049 643e 0d0a 2020 2020 2020 3c61 7274  pId>..      <art\n-00000780: 6966 6163 7449 643e 6475 6262 6f2d 7265  ifactId>dubbo-re\n-00000790: 6d6f 7469 6e67 2d61 7069 3c2f 6172 7469  moting-api</arti\n-000007a0: 6661 6374 4964 3e0d 0a20 2020 2020 203c  factId>..      <\n-000007b0: 7665 7273 696f 6e3e 247b 7072 6f6a 6563  version>${projec\n-000007c0: 742e 7061 7265 6e74 2e76 6572 7369 6f6e  t.parent.version\n-000007d0: 7d3c 2f76 6572 7369 6f6e 3e0d 0a20 2020  }</version>..   \n-000007e0: 203c 2f64 6570 656e 6465 6e63 793e 0d0a   </dependency>..\n-000007f0: 2020 2020 3c64 6570 656e 6465 6e63 793e      <dependency>\n-00000800: 0d0a 2020 2020 2020 3c67 726f 7570 4964  ..      <groupId\n-00000810: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000820: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000830: 2020 203c 6172 7469 6661 6374 4964 3e64     <artifactId>d\n-00000840: 7562 626f 2d63 6f6d 6d6f 6e3c 2f61 7274  ubbo-common</art\n-00000850: 6966 6163 7449 643e 0d0a 2020 2020 2020  ifactId>..      \n-00000860: 3c76 6572 7369 6f6e 3e24 7b70 726f 6a65  <version>${proje\n-00000870: 6374 2e70 6172 656e 742e 7665 7273 696f  ct.parent.versio\n-00000880: 6e7d 3c2f 7665 7273 696f 6e3e 0d0a 2020  n}</version>..  \n-00000890: 2020 3c2f 6465 7065 6e64 656e 6379 3e0d    </dependency>.\n-000008a0: 0a20 2020 203c 6465 7065 6e64 656e 6379  .    <dependency\n-000008b0: 3e0d 0a20 2020 2020 203c 6772 6f75 7049  >..      <groupI\n-000008c0: 643e 7265 6469 732e 636c 6965 6e74 733c  d>redis.clients<\n-000008d0: 2f67 726f 7570 4964 3e0d 0a20 2020 2020  /groupId>..     \n-000008e0: 203c 6172 7469 6661 6374 4964 3e6a 6564   <artifactId>jed\n-000008f0: 6973 3c2f 6172 7469 6661 6374 4964 3e0d  is</artifactId>.\n-00000900: 0a20 2020 203c 2f64 6570 656e 6465 6e63  .    </dependenc\n-00000910: 793e 0d0a 2020 3c2f 6465 7065 6e64 656e  y>..  </dependen\n-00000920: 6369 6573 3e0d 0a3c 2f70 726f 6a65 6374  cies>..</project\n-00000930: 3e0d 0a                                  >..\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 2d72 656d  factId>dubbo-rem\n+00000480: 6f74 696e 673c 2f61 7274 6966 6163 7449  oting</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 2d72 656d 6f74 696e 672d  >dubbo-remoting-\n+00000500: 7265 6469 733c 2f61 7274 6966 6163 7449  redis</artifactI\n+00000510: 643e 0a20 203c 7665 7273 696f 6e3e 322e  d>.  <version>2.\n+00000520: 372e 3130 3c2f 7665 7273 696f 6e3e 0a20  7.10</version>. \n+00000530: 203c 6e61 6d65 3e24 7b70 726f 6a65 6374   <name>${project\n+00000540: 2e61 7274 6966 6163 7449 647d 3c2f 6e61  .artifactId}</na\n+00000550: 6d65 3e0a 2020 3c64 6573 6372 6970 7469  me>.  <descripti\n+00000560: 6f6e 3e54 6865 2072 6564 6973 2072 656d  on>The redis rem\n+00000570: 6f74 696e 6720 6d6f 6475 6c65 206f 6620  oting module of \n+00000580: 6475 6262 6f20 7072 6f6a 6563 743c 2f64  dubbo project</d\n+00000590: 6573 6372 6970 7469 6f6e 3e0a 2020 3c6c  escription>.  <l\n+000005a0: 6963 656e 7365 733e 0a20 2020 203c 6c69  icenses>.    <li\n+000005b0: 6365 6e73 653e 0a20 2020 2020 203c 6e61  cense>.      <na\n+000005c0: 6d65 3e41 7061 6368 6520 4c69 6365 6e73  me>Apache Licens\n+000005d0: 652c 2056 6572 7369 6f6e 2032 2e30 3c2f  e, Version 2.0</\n+000005e0: 6e61 6d65 3e0a 2020 2020 2020 3c75 726c  name>.      <url\n+000005f0: 3e68 7474 703a 2f2f 7777 772e 6170 6163  >http://www.apac\n+00000600: 6865 2e6f 7267 2f6c 6963 656e 7365 732f  he.org/licenses/\n+00000610: 4c49 4345 4e53 452d 322e 303c 2f75 726c  LICENSE-2.0</url\n+00000620: 3e0a 2020 2020 2020 3c64 6973 7472 6962  >.      <distrib\n+00000630: 7574 696f 6e3e 7265 706f 3c2f 6469 7374  ution>repo</dist\n+00000640: 7269 6275 7469 6f6e 3e0a 2020 2020 3c2f  ribution>.    </\n+00000650: 6c69 6365 6e73 653e 0a20 203c 2f6c 6963  license>.  </lic\n+00000660: 656e 7365 733e 0a20 203c 7072 6f70 6572  enses>.  <proper\n+00000670: 7469 6573 3e0a 2020 2020 3c73 6b69 705f  ties>.    <skip_\n+00000680: 6d61 7665 6e5f 6465 706c 6f79 3e66 616c  maven_deploy>fal\n+00000690: 7365 3c2f 736b 6970 5f6d 6176 656e 5f64  se</skip_maven_d\n+000006a0: 6570 6c6f 793e 0a20 2020 203c 7072 6f6a  eploy>.    <proj\n+000006b0: 6563 742e 6275 696c 642e 736f 7572 6365  ect.build.source\n+000006c0: 456e 636f 6469 6e67 3e55 5446 2d38 3c2f  Encoding>UTF-8</\n+000006d0: 7072 6f6a 6563 742e 6275 696c 642e 736f  project.build.so\n+000006e0: 7572 6365 456e 636f 6469 6e67 3e0a 2020  urceEncoding>.  \n+000006f0: 3c2f 7072 6f70 6572 7469 6573 3e0a 2020  </properties>.  \n+00000700: 3c64 6570 656e 6465 6e63 6965 733e 0a20  <dependencies>. \n+00000710: 2020 203c 6465 7065 6e64 656e 6379 3e0a     <dependency>.\n+00000720: 2020 2020 2020 3c67 726f 7570 4964 3e6f        <groupId>o\n+00000730: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n+00000740: 2f67 726f 7570 4964 3e0a 2020 2020 2020  /groupId>.      \n+00000750: 3c61 7274 6966 6163 7449 643e 6475 6262  <artifactId>dubb\n+00000760: 6f2d 7265 6d6f 7469 6e67 2d61 7069 3c2f  o-remoting-api</\n+00000770: 6172 7469 6661 6374 4964 3e0a 2020 2020  artifactId>.    \n+00000780: 2020 3c76 6572 7369 6f6e 3e24 7b70 726f    <version>${pro\n+00000790: 6a65 6374 2e70 6172 656e 742e 7665 7273  ject.parent.vers\n+000007a0: 696f 6e7d 3c2f 7665 7273 696f 6e3e 0a20  ion}</version>. \n+000007b0: 2020 203c 2f64 6570 656e 6465 6e63 793e     </dependency>\n+000007c0: 0a20 2020 203c 6465 7065 6e64 656e 6379  .    <dependency\n+000007d0: 3e0a 2020 2020 2020 3c67 726f 7570 4964  >.      <groupId\n+000007e0: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n+000007f0: 6f3c 2f67 726f 7570 4964 3e0a 2020 2020  o</groupId>.    \n+00000800: 2020 3c61 7274 6966 6163 7449 643e 6475    <artifactId>du\n+00000810: 6262 6f2d 636f 6d6d 6f6e 3c2f 6172 7469  bbo-common</arti\n+00000820: 6661 6374 4964 3e0a 2020 2020 2020 3c76  factId>.      <v\n+00000830: 6572 7369 6f6e 3e24 7b70 726f 6a65 6374  ersion>${project\n+00000840: 2e70 6172 656e 742e 7665 7273 696f 6e7d  .parent.version}\n+00000850: 3c2f 7665 7273 696f 6e3e 0a20 2020 203c  </version>.    <\n+00000860: 2f64 6570 656e 6465 6e63 793e 0a20 2020  /dependency>.   \n+00000870: 203c 6465 7065 6e64 656e 6379 3e0a 2020   <dependency>.  \n+00000880: 2020 2020 3c67 726f 7570 4964 3e72 6564      <groupId>red\n+00000890: 6973 2e63 6c69 656e 7473 3c2f 6772 6f75  is.clients</grou\n+000008a0: 7049 643e 0a20 2020 2020 203c 6172 7469  pId>.      <arti\n+000008b0: 6661 6374 4964 3e6a 6564 6973 3c2f 6172  factId>jedis</ar\n+000008c0: 7469 6661 6374 4964 3e0a 2020 2020 3c2f  tifactId>.    </\n+000008d0: 6465 7065 6e64 656e 6379 3e0a 2020 3c2f  dependency>.  </\n+000008e0: 6465 7065 6e64 656e 6369 6573 3e0a 3c2f  dependencies>.</\n+000008f0: 7072 6f6a 6563 743e 0a                   project>.\n"}, {"source1": "org/apache/dubbo/remoting/redis/RedisClient.java", "source2": "org/apache/dubbo/remoting/redis/RedisClient.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,46 +1,46 @@\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.remoting.redis;\n-\n-import redis.clients.jedis.JedisPubSub;\n-\n-import java.util.Map;\n-import java.util.Set;\n-\n-public interface RedisClient {\n-    Long hset(String key, String field, String value);\n-\n-    Long publish(String channel, String message);\n-\n-//    void clean(String pattern);\n-\n-    boolean isConnected();\n-\n-    void destroy();\n-\n-    Long hdel(final String key, final String... fields);\n-\n-    Set<String> scan(String pattern);\n-\n-    Map<String, String> hgetAll(String key);\n-\n-    void psubscribe(final JedisPubSub jedisPubSub, final String... patterns);\n-\n-    void disconnect();\n-\n-    void close();\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.remoting.redis;\r\n+\r\n+import redis.clients.jedis.JedisPubSub;\r\n+\r\n+import java.util.Map;\r\n+import java.util.Set;\r\n+\r\n+public interface RedisClient {\r\n+    Long hset(String key, String field, String value);\r\n+\r\n+    Long publish(String channel, String message);\r\n+\r\n+//    void clean(String pattern);\r\n+\r\n+    boolean isConnected();\r\n+\r\n+    void destroy();\r\n+\r\n+    Long hdel(final String key, final String... fields);\r\n+\r\n+    Set<String> scan(String pattern);\r\n+\r\n+    Map<String, String> hgetAll(String key);\r\n+\r\n+    void psubscribe(final JedisPubSub jedisPubSub, final String... patterns);\r\n+\r\n+    void disconnect();\r\n+\r\n+    void close();\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/redis/jedis/ClusterRedisClient.java", "source2": "org/apache/dubbo/remoting/redis/jedis/ClusterRedisClient.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,134 +1,134 @@\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.remoting.redis.jedis;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.remoting.redis.RedisClient;\n-import org.apache.dubbo.remoting.redis.support.AbstractRedisClient;\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.JedisPubSub;\n-\n-import java.util.HashSet;\n-import java.util.Map;\n-import java.util.Set;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.COLON_SPLIT_PATTERN;\n-import static org.apache.dubbo.common.constants.CommonConstants.COMMA_SPLIT_PATTERN;\n-\n-public class ClusterRedisClient extends AbstractRedisClient implements RedisClient {\n-    private static final Logger logger = LoggerFactory.getLogger(ClusterRedisClient.class);\n-\n-    private static final int DEFAULT_TIMEOUT = 2000;\n-\n-    private static final int DEFAULT_SO_TIMEOUT = 2000;\n-\n-    private static final int DEFAULT_MAX_ATTEMPTS = 5;\n-\n-    private JedisCluster jedisCluster;\n-\n-    public ClusterRedisClient(URL url) {\n-        super(url);\n-        Set<HostAndPort> nodes = getNodes(url);\n-        jedisCluster = new JedisCluster(nodes, url.getParameter(\"connection.timeout\", DEFAULT_TIMEOUT),\n-                url.getParameter(\"so.timeout\", DEFAULT_SO_TIMEOUT), url.getParameter(\"max.attempts\", DEFAULT_MAX_ATTEMPTS),\n-                url.getPassword(), getConfig());\n-    }\n-\n-    @Override\n-    public Long hset(String key, String field, String value) {\n-        return jedisCluster.hset(key, field, value);\n-    }\n-\n-    @Override\n-    public Long publish(String channel, String message) {\n-        return jedisCluster.publish(channel, message);\n-    }\n-\n-    @Override\n-    public boolean isConnected() {\n-        Map<String, JedisPool> poolMap = jedisCluster.getClusterNodes();\n-        for (JedisPool jedisPool : poolMap.values()) {\n-            Jedis jedis = jedisPool.getResource();\n-            if (jedis.isConnected()) {\n-                return true;\n-            }\n-        }\n-        return false;\n-    }\n-\n-    @Override\n-    public void destroy() {\n-        jedisCluster.close();\n-    }\n-\n-    @Override\n-    public Long hdel(String key, String... fields) {\n-        return jedisCluster.hdel(key, fields);\n-    }\n-\n-    @Override\n-    public Set<String> scan(String pattern) {\n-        Map<String, JedisPool> nodes = jedisCluster.getClusterNodes();\n-        Set<String> result = new HashSet<>();\n-        for (JedisPool jedisPool : nodes.values()) {\n-            Jedis jedis = jedisPool.getResource();\n-            result.addAll(scan(jedis, pattern));\n-            jedis.close();\n-        }\n-        return result;\n-    }\n-\n-    @Override\n-    public Map<String, String> hgetAll(String key) {\n-        return jedisCluster.hgetAll(key);\n-    }\n-\n-    @Override\n-    public void psubscribe(JedisPubSub jedisPubSub, String... patterns) {\n-        jedisCluster.psubscribe(jedisPubSub, patterns);\n-    }\n-\n-    @Override\n-    public void disconnect() {\n-        jedisCluster.close();\n-    }\n-\n-    @Override\n-    public void close() {\n-        jedisCluster.close();\n-    }\n-\n-    private Set<HostAndPort> getNodes(URL url) {\n-        Set<HostAndPort> hostAndPorts = new HashSet<>();\n-        hostAndPorts.add(new HostAndPort(url.getHost(), url.getPort()));\n-        String backupAddresses = url.getBackupAddress(6379);\n-        String[] nodes = StringUtils.isEmpty(backupAddresses) ? new String[0] : COMMA_SPLIT_PATTERN.split(backupAddresses);\n-        if (nodes.length > 0) {\n-            for (String node : nodes) {\n-                String[] hostAndPort = COLON_SPLIT_PATTERN.split(node);\n-                hostAndPorts.add(new HostAndPort(hostAndPort[0], Integer.valueOf(hostAndPort[1])));\n-            }\n-        }\n-        return hostAndPorts;\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.remoting.redis.jedis;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.remoting.redis.RedisClient;\r\n+import org.apache.dubbo.remoting.redis.support.AbstractRedisClient;\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.JedisPubSub;\r\n+\r\n+import java.util.HashSet;\r\n+import java.util.Map;\r\n+import java.util.Set;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.COLON_SPLIT_PATTERN;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.COMMA_SPLIT_PATTERN;\r\n+\r\n+public class ClusterRedisClient extends AbstractRedisClient implements RedisClient {\r\n+    private static final Logger logger = LoggerFactory.getLogger(ClusterRedisClient.class);\r\n+\r\n+    private static final int DEFAULT_TIMEOUT = 2000;\r\n+\r\n+    private static final int DEFAULT_SO_TIMEOUT = 2000;\r\n+\r\n+    private static final int DEFAULT_MAX_ATTEMPTS = 5;\r\n+\r\n+    private JedisCluster jedisCluster;\r\n+\r\n+    public ClusterRedisClient(URL url) {\r\n+        super(url);\r\n+        Set<HostAndPort> nodes = getNodes(url);\r\n+        jedisCluster = new JedisCluster(nodes, url.getParameter(\"connection.timeout\", DEFAULT_TIMEOUT),\r\n+                url.getParameter(\"so.timeout\", DEFAULT_SO_TIMEOUT), url.getParameter(\"max.attempts\", DEFAULT_MAX_ATTEMPTS),\r\n+                url.getPassword(), getConfig());\r\n+    }\r\n+\r\n+    @Override\r\n+    public Long hset(String key, String field, String value) {\r\n+        return jedisCluster.hset(key, field, value);\r\n+    }\r\n+\r\n+    @Override\r\n+    public Long publish(String channel, String message) {\r\n+        return jedisCluster.publish(channel, message);\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isConnected() {\r\n+        Map<String, JedisPool> poolMap = jedisCluster.getClusterNodes();\r\n+        for (JedisPool jedisPool : poolMap.values()) {\r\n+            Jedis jedis = jedisPool.getResource();\r\n+            if (jedis.isConnected()) {\r\n+                return true;\r\n+            }\r\n+        }\r\n+        return false;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() {\r\n+        jedisCluster.close();\r\n+    }\r\n+\r\n+    @Override\r\n+    public Long hdel(String key, String... fields) {\r\n+        return jedisCluster.hdel(key, fields);\r\n+    }\r\n+\r\n+    @Override\r\n+    public Set<String> scan(String pattern) {\r\n+        Map<String, JedisPool> nodes = jedisCluster.getClusterNodes();\r\n+        Set<String> result = new HashSet<>();\r\n+        for (JedisPool jedisPool : nodes.values()) {\r\n+            Jedis jedis = jedisPool.getResource();\r\n+            result.addAll(scan(jedis, pattern));\r\n+            jedis.close();\r\n+        }\r\n+        return result;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Map<String, String> hgetAll(String key) {\r\n+        return jedisCluster.hgetAll(key);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void psubscribe(JedisPubSub jedisPubSub, String... patterns) {\r\n+        jedisCluster.psubscribe(jedisPubSub, patterns);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void disconnect() {\r\n+        jedisCluster.close();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void close() {\r\n+        jedisCluster.close();\r\n+    }\r\n+\r\n+    private Set<HostAndPort> getNodes(URL url) {\r\n+        Set<HostAndPort> hostAndPorts = new HashSet<>();\r\n+        hostAndPorts.add(new HostAndPort(url.getHost(), url.getPort()));\r\n+        String backupAddresses = url.getBackupAddress(6379);\r\n+        String[] nodes = StringUtils.isEmpty(backupAddresses) ? new String[0] : COMMA_SPLIT_PATTERN.split(backupAddresses);\r\n+        if (nodes.length > 0) {\r\n+            for (String node : nodes) {\r\n+                String[] hostAndPort = COLON_SPLIT_PATTERN.split(node);\r\n+                hostAndPorts.add(new HostAndPort(hostAndPort[0], Integer.valueOf(hostAndPort[1])));\r\n+            }\r\n+        }\r\n+        return hostAndPorts;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/redis/jedis/MonoRedisClient.java", "source2": "org/apache/dubbo/remoting/redis/jedis/MonoRedisClient.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,118 +1,118 @@\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.remoting.redis.jedis;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.remoting.redis.RedisClient;\n-import org.apache.dubbo.remoting.redis.support.AbstractRedisClient;\n-import redis.clients.jedis.Jedis;\n-import redis.clients.jedis.JedisPool;\n-import redis.clients.jedis.JedisPubSub;\n-\n-import java.util.Map;\n-import java.util.Set;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_TIMEOUT;\n-import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\n-\n-public class MonoRedisClient extends AbstractRedisClient implements RedisClient {\n-    private static final Logger logger = LoggerFactory.getLogger(MonoRedisClient.class);\n-\n-    private static final String START_CURSOR = \"0\";\n-\n-    private JedisPool jedisPool;\n-\n-    public MonoRedisClient(URL url) {\n-        super(url);\n-        jedisPool = new JedisPool(getConfig(), url.getHost(), url.getPort(),\n-                url.getParameter(TIMEOUT_KEY, DEFAULT_TIMEOUT), url.getPassword());\n-    }\n-\n-    @Override\n-    public Long hset(String key, String field, String value) {\n-        Jedis jedis = jedisPool.getResource();\n-        Long result = jedis.hset(key, field, value);\n-        jedis.close();\n-        return result;\n-    }\n-\n-    @Override\n-    public Long publish(String channel, String message) {\n-        Jedis jedis = jedisPool.getResource();\n-        Long result = jedis.publish(channel, message);\n-        jedis.close();\n-        return result;\n-    }\n-\n-    @Override\n-    public boolean isConnected() {\n-        Jedis jedis = jedisPool.getResource();\n-        boolean connected = jedis.isConnected();\n-        jedis.close();\n-        return connected;\n-    }\n-\n-    @Override\n-    public void destroy() {\n-        jedisPool.close();\n-    }\n-\n-    @Override\n-    public Long hdel(String key, String... fields) {\n-        Jedis jedis = jedisPool.getResource();\n-        Long result = jedis.hdel(key, fields);\n-        jedis.close();\n-        return result;\n-    }\n-\n-    @Override\n-    public Set<String> scan(String pattern) {\n-        Jedis jedis = jedisPool.getResource();\n-        Set<String> result = super.scan(jedis, pattern);\n-        jedis.close();\n-        return result;\n-    }\n-\n-    @Override\n-    public Map<String, String> hgetAll(String key) {\n-        Jedis jedis = jedisPool.getResource();\n-        Map<String, String> result = jedis.hgetAll(key);\n-        jedis.close();\n-        return result;\n-    }\n-\n-    @Override\n-    public void psubscribe(JedisPubSub jedisPubSub, String... patterns) {\n-        Jedis jedis = jedisPool.getResource();\n-        jedis.psubscribe(jedisPubSub, patterns);\n-        jedis.close();\n-    }\n-\n-    @Override\n-    public void disconnect() {\n-        jedisPool.close();\n-    }\n-\n-    @Override\n-    public void close() {\n-        jedisPool.close();\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.remoting.redis.jedis;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.remoting.redis.RedisClient;\r\n+import org.apache.dubbo.remoting.redis.support.AbstractRedisClient;\r\n+import redis.clients.jedis.Jedis;\r\n+import redis.clients.jedis.JedisPool;\r\n+import redis.clients.jedis.JedisPubSub;\r\n+\r\n+import java.util.Map;\r\n+import java.util.Set;\r\n+\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+\r\n+public class MonoRedisClient extends AbstractRedisClient implements RedisClient {\r\n+    private static final Logger logger = LoggerFactory.getLogger(MonoRedisClient.class);\r\n+\r\n+    private static final String START_CURSOR = \"0\";\r\n+\r\n+    private JedisPool jedisPool;\r\n+\r\n+    public MonoRedisClient(URL url) {\r\n+        super(url);\r\n+        jedisPool = new JedisPool(getConfig(), url.getHost(), url.getPort(),\r\n+                url.getParameter(TIMEOUT_KEY, DEFAULT_TIMEOUT), url.getPassword());\r\n+    }\r\n+\r\n+    @Override\r\n+    public Long hset(String key, String field, String value) {\r\n+        Jedis jedis = jedisPool.getResource();\r\n+        Long result = jedis.hset(key, field, value);\r\n+        jedis.close();\r\n+        return result;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Long publish(String channel, String message) {\r\n+        Jedis jedis = jedisPool.getResource();\r\n+        Long result = jedis.publish(channel, message);\r\n+        jedis.close();\r\n+        return result;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isConnected() {\r\n+        Jedis jedis = jedisPool.getResource();\r\n+        boolean connected = jedis.isConnected();\r\n+        jedis.close();\r\n+        return connected;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() {\r\n+        jedisPool.close();\r\n+    }\r\n+\r\n+    @Override\r\n+    public Long hdel(String key, String... fields) {\r\n+        Jedis jedis = jedisPool.getResource();\r\n+        Long result = jedis.hdel(key, fields);\r\n+        jedis.close();\r\n+        return result;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Set<String> scan(String pattern) {\r\n+        Jedis jedis = jedisPool.getResource();\r\n+        Set<String> result = super.scan(jedis, pattern);\r\n+        jedis.close();\r\n+        return result;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Map<String, String> hgetAll(String key) {\r\n+        Jedis jedis = jedisPool.getResource();\r\n+        Map<String, String> result = jedis.hgetAll(key);\r\n+        jedis.close();\r\n+        return result;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void psubscribe(JedisPubSub jedisPubSub, String... patterns) {\r\n+        Jedis jedis = jedisPool.getResource();\r\n+        jedis.psubscribe(jedisPubSub, patterns);\r\n+        jedis.close();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void disconnect() {\r\n+        jedisPool.close();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void close() {\r\n+        jedisPool.close();\r\n+    }\r\n+\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/redis/jedis/SentinelRedisClient.java", "source2": "org/apache/dubbo/remoting/redis/jedis/SentinelRedisClient.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,121 +1,121 @@\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.remoting.redis.jedis;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.constants.RemotingConstants;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.remoting.redis.RedisClient;\n-import org.apache.dubbo.remoting.redis.support.AbstractRedisClient;\n-import redis.clients.jedis.Jedis;\n-import redis.clients.jedis.JedisPubSub;\n-import redis.clients.jedis.JedisSentinelPool;\n-\n-import java.util.Arrays;\n-import java.util.HashSet;\n-import java.util.Map;\n-import java.util.Set;\n-\n-public class SentinelRedisClient extends AbstractRedisClient implements RedisClient {\n-    private static final Logger logger = LoggerFactory.getLogger(SentinelRedisClient.class);\n-\n-    private JedisSentinelPool sentinelPool;\n-\n-    public SentinelRedisClient(URL url) {\n-        super(url);\n-        String masterName = url.getParameter(\"master.name\", \"Sentinel-master\");\n-        String address = (new StringBuilder()).append(url.getAddress()).toString();\n-        String[] backupAddresses = url.getParameter(RemotingConstants.BACKUP_KEY, new String[0]);\n-        if (backupAddresses.length == 0) {\n-            throw new IllegalStateException(\"Sentinel addresses can not be empty\");\n-        }\n-        Set<String> sentinels = new HashSet<>(Arrays.asList(backupAddresses));\n-        sentinels.add(address);\n-        sentinelPool = new JedisSentinelPool(masterName, sentinels, getConfig(), url.getPassword());\n-    }\n-\n-    @Override\n-    public Long hset(String key, String field, String value) {\n-        Jedis jedis = sentinelPool.getResource();\n-        Long result = jedis.hset(key, field, value);\n-        jedis.close();\n-        return result;\n-    }\n-\n-    @Override\n-    public Long publish(String channel, String message) {\n-        Jedis jedis = sentinelPool.getResource();\n-        Long result = jedis.publish(channel, message);\n-        jedis.close();\n-        return result;\n-    }\n-\n-    @Override\n-    public boolean isConnected() {\n-        Jedis jedis = sentinelPool.getResource();\n-        boolean result = jedis.isConnected();\n-        jedis.close();\n-        return result;\n-    }\n-\n-    @Override\n-    public void destroy() {\n-        sentinelPool.close();\n-    }\n-\n-    @Override\n-    public Long hdel(String key, String... fields) {\n-        Jedis jedis = sentinelPool.getResource();\n-        Long result = jedis.hdel(key, fields);\n-        jedis.close();\n-        return result;\n-    }\n-\n-    @Override\n-    public Set<String> scan(String pattern) {\n-        Jedis jedis = sentinelPool.getResource();\n-        Set<String> result = scan(jedis, pattern);\n-        jedis.close();\n-        return result;\n-    }\n-\n-    @Override\n-    public Map<String, String> hgetAll(String key) {\n-        Jedis jedis = sentinelPool.getResource();\n-        Map<String, String> result = jedis.hgetAll(key);\n-        jedis.close();\n-        return result;\n-    }\n-\n-    @Override\n-    public void psubscribe(JedisPubSub jedisPubSub, String... patterns) {\n-        Jedis jedis = sentinelPool.getResource();\n-        jedis.psubscribe(jedisPubSub, patterns);\n-        jedis.close();\n-    }\n-\n-    @Override\n-    public void disconnect() {\n-        sentinelPool.close();\n-    }\n-\n-    @Override\n-    public void close() {\n-        sentinelPool.close();\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.remoting.redis.jedis;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.constants.RemotingConstants;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.remoting.redis.RedisClient;\r\n+import org.apache.dubbo.remoting.redis.support.AbstractRedisClient;\r\n+import redis.clients.jedis.Jedis;\r\n+import redis.clients.jedis.JedisPubSub;\r\n+import redis.clients.jedis.JedisSentinelPool;\r\n+\r\n+import java.util.Arrays;\r\n+import java.util.HashSet;\r\n+import java.util.Map;\r\n+import java.util.Set;\r\n+\r\n+public class SentinelRedisClient extends AbstractRedisClient implements RedisClient {\r\n+    private static final Logger logger = LoggerFactory.getLogger(SentinelRedisClient.class);\r\n+\r\n+    private JedisSentinelPool sentinelPool;\r\n+\r\n+    public SentinelRedisClient(URL url) {\r\n+        super(url);\r\n+        String masterName = url.getParameter(\"master.name\", \"Sentinel-master\");\r\n+        String address = (new StringBuilder()).append(url.getAddress()).toString();\r\n+        String[] backupAddresses = url.getParameter(RemotingConstants.BACKUP_KEY, new String[0]);\r\n+        if (backupAddresses.length == 0) {\r\n+            throw new IllegalStateException(\"Sentinel addresses can not be empty\");\r\n+        }\r\n+        Set<String> sentinels = new HashSet<>(Arrays.asList(backupAddresses));\r\n+        sentinels.add(address);\r\n+        sentinelPool = new JedisSentinelPool(masterName, sentinels, getConfig(), url.getPassword());\r\n+    }\r\n+\r\n+    @Override\r\n+    public Long hset(String key, String field, String value) {\r\n+        Jedis jedis = sentinelPool.getResource();\r\n+        Long result = jedis.hset(key, field, value);\r\n+        jedis.close();\r\n+        return result;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Long publish(String channel, String message) {\r\n+        Jedis jedis = sentinelPool.getResource();\r\n+        Long result = jedis.publish(channel, message);\r\n+        jedis.close();\r\n+        return result;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isConnected() {\r\n+        Jedis jedis = sentinelPool.getResource();\r\n+        boolean result = jedis.isConnected();\r\n+        jedis.close();\r\n+        return result;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() {\r\n+        sentinelPool.close();\r\n+    }\r\n+\r\n+    @Override\r\n+    public Long hdel(String key, String... fields) {\r\n+        Jedis jedis = sentinelPool.getResource();\r\n+        Long result = jedis.hdel(key, fields);\r\n+        jedis.close();\r\n+        return result;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Set<String> scan(String pattern) {\r\n+        Jedis jedis = sentinelPool.getResource();\r\n+        Set<String> result = scan(jedis, pattern);\r\n+        jedis.close();\r\n+        return result;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Map<String, String> hgetAll(String key) {\r\n+        Jedis jedis = sentinelPool.getResource();\r\n+        Map<String, String> result = jedis.hgetAll(key);\r\n+        jedis.close();\r\n+        return result;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void psubscribe(JedisPubSub jedisPubSub, String... patterns) {\r\n+        Jedis jedis = sentinelPool.getResource();\r\n+        jedis.psubscribe(jedisPubSub, patterns);\r\n+        jedis.close();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void disconnect() {\r\n+        sentinelPool.close();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void close() {\r\n+        sentinelPool.close();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/redis/support/AbstractRedisClient.java", "source2": "org/apache/dubbo/remoting/redis/support/AbstractRedisClient.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,94 +1,94 @@\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.remoting.redis.support;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.remoting.redis.RedisClient;\n-import redis.clients.jedis.Jedis;\n-import redis.clients.jedis.JedisPoolConfig;\n-import redis.clients.jedis.ScanParams;\n-import redis.clients.jedis.ScanResult;\n-\n-import java.util.HashSet;\n-import java.util.List;\n-import java.util.Set;\n-\n-public abstract class AbstractRedisClient implements RedisClient {\n-    private URL url;\n-\n-    private JedisPoolConfig config;\n-\n-    public AbstractRedisClient(URL url) {\n-        this.url = url;\n-        config = new JedisPoolConfig();\n-        config.setTestOnBorrow(url.getParameter(\"test.on.borrow\", true));\n-        config.setTestOnReturn(url.getParameter(\"test.on.return\", false));\n-        config.setTestWhileIdle(url.getParameter(\"test.while.idle\", false));\n-        if (url.getParameter(\"max.idle\", 0) > 0) {\n-            config.setMaxIdle(url.getParameter(\"max.idle\", 0));\n-        }\n-        if (url.getParameter(\"min.idle\", 0) > 0) {\n-            config.setMinIdle(url.getParameter(\"min.idle\", 0));\n-        }\n-        if (url.getParameter(\"max.active\", 0) > 0) {\n-            config.setMaxTotal(url.getParameter(\"max.active\", 0));\n-        }\n-        if (url.getParameter(\"max.total\", 0) > 0) {\n-            config.setMaxTotal(url.getParameter(\"max.total\", 0));\n-        }\n-        if (url.getParameter(\"max.wait\", url.getParameter(\"timeout\", 0)) > 0) {\n-            config.setMaxWaitMillis(url.getParameter(\"max.wait\", url.getParameter(\"timeout\", 0)));\n-        }\n-        if (url.getParameter(\"num.tests.per.eviction.run\", 0) > 0) {\n-            config.setNumTestsPerEvictionRun(url.getParameter(\"num.tests.per.eviction.run\", 0));\n-        }\n-        if (url.getParameter(\"time.between.eviction.runs.millis\", 0) > 0) {\n-            config.setTimeBetweenEvictionRunsMillis(url.getParameter(\"time.between.eviction.runs.millis\", 0));\n-        }\n-        if (url.getParameter(\"min.evictable.idle.time.millis\", 0) > 0) {\n-            config.setMinEvictableIdleTimeMillis(url.getParameter(\"min.evictable.idle.time.millis\", 0));\n-        }\n-    }\n-\n-    protected Set<String> scan(Jedis jedis, String pattern) {\n-        Set<String> result = new HashSet<>();\n-        String cursor = ScanParams.SCAN_POINTER_START;\n-        ScanParams params = new ScanParams();\n-        params.match(pattern);\n-        while (true) {\n-            ScanResult<String> scanResult = jedis.scan(cursor, params);\n-            List<String> list = scanResult.getResult();\n-            if (CollectionUtils.isNotEmpty(list)) {\n-                result.addAll(list);\n-            }\n-            if (ScanParams.SCAN_POINTER_START.equals(scanResult.getCursor())) {\n-                break;\n-            }\n-            cursor = scanResult.getCursor();\n-        }\n-        return result;\n-    }\n-\n-    public URL getUrl() {\n-        return url;\n-    }\n-\n-    public JedisPoolConfig getConfig() {\n-        return config;\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.remoting.redis.support;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.remoting.redis.RedisClient;\r\n+import redis.clients.jedis.Jedis;\r\n+import redis.clients.jedis.JedisPoolConfig;\r\n+import redis.clients.jedis.ScanParams;\r\n+import redis.clients.jedis.ScanResult;\r\n+\r\n+import java.util.HashSet;\r\n+import java.util.List;\r\n+import java.util.Set;\r\n+\r\n+public abstract class AbstractRedisClient implements RedisClient {\r\n+    private URL url;\r\n+\r\n+    private JedisPoolConfig config;\r\n+\r\n+    public AbstractRedisClient(URL url) {\r\n+        this.url = url;\r\n+        config = new JedisPoolConfig();\r\n+        config.setTestOnBorrow(url.getParameter(\"test.on.borrow\", true));\r\n+        config.setTestOnReturn(url.getParameter(\"test.on.return\", false));\r\n+        config.setTestWhileIdle(url.getParameter(\"test.while.idle\", false));\r\n+        if (url.getParameter(\"max.idle\", 0) > 0) {\r\n+            config.setMaxIdle(url.getParameter(\"max.idle\", 0));\r\n+        }\r\n+        if (url.getParameter(\"min.idle\", 0) > 0) {\r\n+            config.setMinIdle(url.getParameter(\"min.idle\", 0));\r\n+        }\r\n+        if (url.getParameter(\"max.active\", 0) > 0) {\r\n+            config.setMaxTotal(url.getParameter(\"max.active\", 0));\r\n+        }\r\n+        if (url.getParameter(\"max.total\", 0) > 0) {\r\n+            config.setMaxTotal(url.getParameter(\"max.total\", 0));\r\n+        }\r\n+        if (url.getParameter(\"max.wait\", url.getParameter(\"timeout\", 0)) > 0) {\r\n+            config.setMaxWaitMillis(url.getParameter(\"max.wait\", url.getParameter(\"timeout\", 0)));\r\n+        }\r\n+        if (url.getParameter(\"num.tests.per.eviction.run\", 0) > 0) {\r\n+            config.setNumTestsPerEvictionRun(url.getParameter(\"num.tests.per.eviction.run\", 0));\r\n+        }\r\n+        if (url.getParameter(\"time.between.eviction.runs.millis\", 0) > 0) {\r\n+            config.setTimeBetweenEvictionRunsMillis(url.getParameter(\"time.between.eviction.runs.millis\", 0));\r\n+        }\r\n+        if (url.getParameter(\"min.evictable.idle.time.millis\", 0) > 0) {\r\n+            config.setMinEvictableIdleTimeMillis(url.getParameter(\"min.evictable.idle.time.millis\", 0));\r\n+        }\r\n+    }\r\n+\r\n+    protected Set<String> scan(Jedis jedis, String pattern) {\r\n+        Set<String> result = new HashSet<>();\r\n+        String cursor = ScanParams.SCAN_POINTER_START;\r\n+        ScanParams params = new ScanParams();\r\n+        params.match(pattern);\r\n+        while (true) {\r\n+            ScanResult<String> scanResult = jedis.scan(cursor, params);\r\n+            List<String> list = scanResult.getResult();\r\n+            if (CollectionUtils.isNotEmpty(list)) {\r\n+                result.addAll(list);\r\n+            }\r\n+            if (ScanParams.SCAN_POINTER_START.equals(scanResult.getCursor())) {\r\n+                break;\r\n+            }\r\n+            cursor = scanResult.getCursor();\r\n+        }\r\n+        return result;\r\n+    }\r\n+\r\n+    public URL getUrl() {\r\n+        return url;\r\n+    }\r\n+\r\n+    public JedisPoolConfig getConfig() {\r\n+        return config;\r\n+    }\r\n+}\r\n"}]}
