--- /home/fdroid/fdroiddata/tmp/de.bashtian.dashclocksunrise_3.apk +++ /home/fdroid/fdroiddata/tmp/sigcp_de.bashtian.dashclocksunrise_3.apk ├── /usr/lib/android-sdk/build-tools/debian/apksigner verify --verbose --print-certs {} │┄ error from `/usr/lib/android-sdk/build-tools/debian/apksigner verify --verbose --print-certs {}` (b): │┄ DOES NOT VERIFY │┄ ERROR: res/drawable-xhdpi/ic_sunrise.png entry referenced by META-INF/MANIFEST.MF not found in the APK │ @@ -1,16 +0,0 @@ │ -Verifies │ -Verified using v1 scheme (JAR signing): true │ -Verified using v2 scheme (APK Signature Scheme v2): false │ -Verified using v3 scheme (APK Signature Scheme v3): false │ -Verified using v4 scheme (APK Signature Scheme v4): false │ -Verified for SourceStamp: false │ -Number of signers: 1 │ -Signer #1 certificate DN: CN=FDroid, OU=FDroid, O=fdroid.org, L=ORG, ST=ORG, C=UK │ -Signer #1 certificate SHA-256 digest: 960ce0de3cbfe93ac0c40706de9b158a51e9b49893e581581d12ae10988600e7 │ -Signer #1 certificate SHA-1 digest: 1dfbc5f0ef82fbf3541976d61bb3cd93378d00d2 │ -Signer #1 certificate MD5 digest: 8d922f1f6f934b2947787a6d03b47bb2 │ -Signer #1 key algorithm: RSA │ -Signer #1 key size (bits): 2048 │ -Signer #1 public key SHA-256 digest: 65e615b3f7c76c4966354893bc176fa83cfdcebda3f1d03695b3c0ba108fb1b2 │ -Signer #1 public key SHA-1 digest: 1dfe06ad5ce265b3efb39e2be17daa84c3d829b5 │ -Signer #1 public key MD5 digest: 1c07f85a9b1c7d4d20bc0a3a789b8444 ├── zipinfo -v {} │┄ Differences in extra fields detected; using output from zipinfo -v │ @@ -1,324 +1,316 @@ │ There is no zipfile comment. │ │ End-of-central-directory record: │ ------------------------------- │ │ - Zip archive file size: 108950 (000000000001A996h) │ - Actual end-cent-dir record offset: 108928 (000000000001A980h) │ - Expected end-cent-dir record offset: 108928 (000000000001A980h) │ + Zip archive file size: 108822 (000000000001A916h) │ + Actual end-cent-dir record offset: 108800 (000000000001A900h) │ + Expected end-cent-dir record offset: 108800 (000000000001A900h) │ (based on the length of the central directory and its expected offset) │ │ This zipfile constitutes the sole disk of a single-part archive; its │ central directory contains 10 entries. │ - The central directory is 668 (000000000000029Ch) bytes long, │ + The central directory is 671 (000000000000029Fh) bytes long, │ and its (expected) offset in bytes from the beginning of the zipfile │ - is 108260 (000000000001A6E4h). │ + is 108129 (000000000001A661h). │ │ │ Central directory entry #1: │ --------------------------- │ │ - META-INF/MANIFEST.MF │ + AndroidManifest.xml │ │ offset of local header from start of archive: 0 │ (0000000000000000h) bytes │ file system or operating system of origin: MS-DOS, OS/2 or NT FAT │ version of encoding software: 2.0 │ minimum file system compatibility required: MS-DOS, OS/2 or NT FAT │ minimum software version required to extract: 2.0 │ compression method: deflated │ compression sub-type (deflation): normal │ file security status: not encrypted │ extended local header: yes │ - file last modified on (DOS date/time): 2014 Aug 19 05:48:18 │ - 32-bit CRC value (hex): e306fcc3 │ - compressed size: 376 bytes │ - uncompressed size: 582 bytes │ - length of filename: 20 characters │ - length of extra field: 0 bytes │ + file last modified on (DOS date/time): 2017 Sep 28 00:13:54 │ + 32-bit CRC value (hex): c0baf566 │ + compressed size: 957 bytes │ + uncompressed size: 2716 bytes │ + length of filename: 19 characters │ + length of extra field: 4 bytes │ length of file comment: 0 characters │ disk number on which file begins: disk 1 │ apparent file type: binary │ non-MSDOS external file attributes: 000000 hex │ MS-DOS file attributes (00 hex): none │ │ + The central-directory extra field contains: │ + - A subfield with ID 0xcafe (unknown) and 0 data bytes. │ + │ There is no file comment. │ │ Central directory entry #2: │ --------------------------- │ │ There are an extra 16 bytes preceding this file. │ │ - META-INF/A609D511.SF │ + res/drawable-xhdpi-v4/ic_sunrise.png │ │ - offset of local header from start of archive: 442 │ - (00000000000001BAh) bytes │ + offset of local header from start of archive: 1026 │ + (0000000000000402h) bytes │ file system or operating system of origin: MS-DOS, OS/2 or NT FAT │ - version of encoding software: 2.0 │ + version of encoding software: 1.0 │ minimum file system compatibility required: MS-DOS, OS/2 or NT FAT │ - minimum software version required to extract: 2.0 │ - compression method: deflated │ - compression sub-type (deflation): normal │ + minimum software version required to extract: 1.0 │ + compression method: none (stored) │ file security status: not encrypted │ - extended local header: yes │ - file last modified on (DOS date/time): 2014 Aug 19 05:48:18 │ - 32-bit CRC value (hex): 28e69620 │ - compressed size: 442 bytes │ - uncompressed size: 703 bytes │ - length of filename: 20 characters │ + extended local header: no │ + file last modified on (DOS date/time): 1980 Jan 1 00:00:00 │ + 32-bit CRC value (hex): 470ae895 │ + compressed size: 2645 bytes │ + uncompressed size: 2645 bytes │ + length of filename: 36 characters │ length of extra field: 0 bytes │ length of file comment: 0 characters │ disk number on which file begins: disk 1 │ apparent file type: binary │ non-MSDOS external file attributes: 000000 hex │ MS-DOS file attributes (00 hex): none │ │ There is no file comment. │ │ Central directory entry #3: │ --------------------------- │ │ - There are an extra 16 bytes preceding this file. │ - │ - META-INF/A609D511.RSA │ + res/xml/pref_sunrise.xml │ │ - offset of local header from start of archive: 950 │ - (00000000000003B6h) bytes │ + offset of local header from start of archive: 3737 │ + (0000000000000E99h) bytes │ file system or operating system of origin: MS-DOS, OS/2 or NT FAT │ version of encoding software: 2.0 │ minimum file system compatibility required: MS-DOS, OS/2 or NT FAT │ minimum software version required to extract: 2.0 │ compression method: deflated │ compression sub-type (deflation): normal │ file security status: not encrypted │ extended local header: yes │ - file last modified on (DOS date/time): 2014 Aug 19 05:48:18 │ - 32-bit CRC value (hex): 75166fdc │ - compressed size: 1077 bytes │ - uncompressed size: 1332 bytes │ - length of filename: 21 characters │ + file last modified on (DOS date/time): 2017 Sep 28 00:13:54 │ + 32-bit CRC value (hex): 2faef2d0 │ + compressed size: 350 bytes │ + uncompressed size: 656 bytes │ + length of filename: 24 characters │ length of extra field: 0 bytes │ length of file comment: 0 characters │ disk number on which file begins: disk 1 │ apparent file type: binary │ non-MSDOS external file attributes: 000000 hex │ MS-DOS file attributes (00 hex): none │ │ There is no file comment. │ │ Central directory entry #4: │ --------------------------- │ │ There are an extra 16 bytes preceding this file. │ │ - res/xml/pref_sunrise.xml │ + resources.arsc │ │ - offset of local header from start of archive: 2094 │ - (000000000000082Eh) bytes │ + offset of local header from start of archive: 4157 │ + (000000000000103Dh) bytes │ file system or operating system of origin: MS-DOS, OS/2 or NT FAT │ - version of encoding software: 2.0 │ + version of encoding software: 1.0 │ minimum file system compatibility required: MS-DOS, OS/2 or NT FAT │ - minimum software version required to extract: 2.0 │ - compression method: deflated │ - compression sub-type (deflation): normal │ + minimum software version required to extract: 1.0 │ + compression method: none (stored) │ file security status: not encrypted │ - extended local header: yes │ - file last modified on (DOS date/time): 2014 Aug 19 05:35:38 │ - 32-bit CRC value (hex): 2faef2d0 │ - compressed size: 350 bytes │ - uncompressed size: 656 bytes │ - length of filename: 24 characters │ - length of extra field: 4 bytes │ + extended local header: no │ + file last modified on (DOS date/time): 1980 Jan 1 00:00:00 │ + 32-bit CRC value (hex): a1954d0c │ + compressed size: 2000 bytes │ + uncompressed size: 2000 bytes │ + length of filename: 14 characters │ + length of extra field: 0 bytes │ length of file comment: 0 characters │ disk number on which file begins: disk 1 │ apparent file type: binary │ non-MSDOS external file attributes: 000000 hex │ MS-DOS file attributes (00 hex): none │ │ - The central-directory extra field contains: │ - - A subfield with ID 0xcafe (unknown) and 0 data bytes. │ - │ There is no file comment. │ │ Central directory entry #5: │ --------------------------- │ │ - There are an extra 16 bytes preceding this file. │ - │ - AndroidManifest.xml │ + classes.dex │ │ - offset of local header from start of archive: 2518 │ - (00000000000009D6h) bytes │ + offset of local header from start of archive: 6201 │ + (0000000000001839h) bytes │ file system or operating system of origin: MS-DOS, OS/2 or NT FAT │ version of encoding software: 2.0 │ minimum file system compatibility required: MS-DOS, OS/2 or NT FAT │ minimum software version required to extract: 2.0 │ compression method: deflated │ compression sub-type (deflation): normal │ file security status: not encrypted │ extended local header: yes │ - file last modified on (DOS date/time): 2014 Aug 19 05:35:38 │ - 32-bit CRC value (hex): e8c882bd │ - compressed size: 1039 bytes │ - uncompressed size: 2888 bytes │ - length of filename: 19 characters │ + file last modified on (DOS date/time): 2017 Sep 28 00:13:54 │ + 32-bit CRC value (hex): e91b042d │ + compressed size: 98132 bytes │ + uncompressed size: 287300 bytes │ + length of filename: 11 characters │ length of extra field: 0 bytes │ length of file comment: 0 characters │ disk number on which file begins: disk 1 │ apparent file type: binary │ non-MSDOS external file attributes: 000000 hex │ MS-DOS file attributes (00 hex): none │ │ There is no file comment. │ │ Central directory entry #6: │ --------------------------- │ │ There are an extra 16 bytes preceding this file. │ │ - resources.arsc │ + main/ruby/solardatacollector.rb │ │ - offset of local header from start of archive: 3622 │ - (0000000000000E26h) bytes │ + offset of local header from start of archive: 104390 │ + (00000000000197C6h) bytes │ file system or operating system of origin: MS-DOS, OS/2 or NT FAT │ - version of encoding software: 1.0 │ + version of encoding software: 2.0 │ minimum file system compatibility required: MS-DOS, OS/2 or NT FAT │ - minimum software version required to extract: 1.0 │ - compression method: none (stored) │ + minimum software version required to extract: 2.0 │ + compression method: deflated │ + compression sub-type (deflation): normal │ file security status: not encrypted │ - extended local header: no │ - file last modified on (DOS date/time): 2014 Aug 19 05:35:40 │ - 32-bit CRC value (hex): cb799755 │ - compressed size: 1912 bytes │ - uncompressed size: 1912 bytes │ - length of filename: 14 characters │ + extended local header: yes │ + file last modified on (DOS date/time): 2017 Sep 28 00:13:36 │ + 32-bit CRC value (hex): c845d228 │ + compressed size: 758 bytes │ + uncompressed size: 1343 bytes │ + length of filename: 31 characters │ length of extra field: 0 bytes │ length of file comment: 0 characters │ disk number on which file begins: disk 1 │ apparent file type: binary │ non-MSDOS external file attributes: 000000 hex │ MS-DOS file attributes (00 hex): none │ │ There is no file comment. │ │ Central directory entry #7: │ --------------------------- │ │ - There are an extra 2 bytes preceding this file. │ + There are an extra 16 bytes preceding this file. │ │ - res/drawable-xhdpi/ic_sunrise.png │ + LICENSE.txt │ │ - offset of local header from start of archive: 5580 │ - (00000000000015CCh) bytes │ + offset of local header from start of archive: 105225 │ + (0000000000019B09h) bytes │ file system or operating system of origin: MS-DOS, OS/2 or NT FAT │ - version of encoding software: 1.0 │ + version of encoding software: 2.0 │ minimum file system compatibility required: MS-DOS, OS/2 or NT FAT │ - minimum software version required to extract: 1.0 │ - compression method: none (stored) │ + minimum software version required to extract: 2.0 │ + compression method: deflated │ + compression sub-type (deflation): normal │ file security status: not encrypted │ - extended local header: no │ - file last modified on (DOS date/time): 2014 Aug 19 05:35:38 │ - 32-bit CRC value (hex): 47b591bd │ - compressed size: 2647 bytes │ - uncompressed size: 2647 bytes │ - length of filename: 33 characters │ + extended local header: yes │ + file last modified on (DOS date/time): 2017 Sep 28 00:13:54 │ + 32-bit CRC value (hex): 9b210473 │ + compressed size: 801 bytes │ + uncompressed size: 1509 bytes │ + length of filename: 11 characters │ length of extra field: 0 bytes │ length of file comment: 0 characters │ disk number on which file begins: disk 1 │ apparent file type: binary │ non-MSDOS external file attributes: 000000 hex │ MS-DOS file attributes (00 hex): none │ │ There is no file comment. │ │ Central directory entry #8: │ --------------------------- │ │ - There are an extra 1 bytes preceding this file. │ + There are an extra 16 bytes preceding this file. │ │ - classes.dex │ + META-INF/MANIFEST.MF │ │ - offset of local header from start of archive: 8291 │ - (0000000000002063h) bytes │ + offset of local header from start of archive: 106083 │ + (0000000000019E63h) bytes │ file system or operating system of origin: MS-DOS, OS/2 or NT FAT │ version of encoding software: 2.0 │ minimum file system compatibility required: MS-DOS, OS/2 or NT FAT │ minimum software version required to extract: 2.0 │ compression method: deflated │ compression sub-type (deflation): normal │ file security status: not encrypted │ - extended local header: yes │ - file last modified on (DOS date/time): 2014 Aug 19 05:35:38 │ - 32-bit CRC value (hex): e9a4090c │ - compressed size: 98219 bytes │ - uncompressed size: 294720 bytes │ - length of filename: 11 characters │ + extended local header: no │ + file last modified on (DOS date/time): 2017 Sep 28 00:13:54 │ + 32-bit CRC value (hex): e306fcc3 │ + compressed size: 376 bytes │ + uncompressed size: 582 bytes │ + length of filename: 20 characters │ length of extra field: 0 bytes │ length of file comment: 0 characters │ disk number on which file begins: disk 1 │ apparent file type: binary │ non-MSDOS external file attributes: 000000 hex │ MS-DOS file attributes (00 hex): none │ │ There is no file comment. │ │ Central directory entry #9: │ --------------------------- │ │ - There are an extra 16 bytes preceding this file. │ - │ - main/ruby/solardatacollector.rb │ + META-INF/A609D511.SF │ │ - offset of local header from start of archive: 106567 │ - (000000000001A047h) bytes │ + offset of local header from start of archive: 106509 │ + (000000000001A00Dh) bytes │ file system or operating system of origin: MS-DOS, OS/2 or NT FAT │ version of encoding software: 2.0 │ minimum file system compatibility required: MS-DOS, OS/2 or NT FAT │ minimum software version required to extract: 2.0 │ compression method: deflated │ compression sub-type (deflation): normal │ file security status: not encrypted │ - extended local header: yes │ - file last modified on (DOS date/time): 2014 Aug 19 05:34:44 │ - 32-bit CRC value (hex): c845d228 │ - compressed size: 758 bytes │ - uncompressed size: 1343 bytes │ - length of filename: 31 characters │ + extended local header: no │ + file last modified on (DOS date/time): 2017 Sep 28 00:13:54 │ + 32-bit CRC value (hex): 28e69620 │ + compressed size: 442 bytes │ + uncompressed size: 703 bytes │ + length of filename: 20 characters │ length of extra field: 0 bytes │ length of file comment: 0 characters │ disk number on which file begins: disk 1 │ apparent file type: binary │ non-MSDOS external file attributes: 000000 hex │ MS-DOS file attributes (00 hex): none │ │ There is no file comment. │ │ Central directory entry #10: │ --------------------------- │ │ - There are an extra 16 bytes preceding this file. │ - │ - LICENSE.txt │ + META-INF/A609D511.RSA │ │ - offset of local header from start of archive: 107402 │ - (000000000001A38Ah) bytes │ + offset of local header from start of archive: 107001 │ + (000000000001A1F9h) bytes │ file system or operating system of origin: MS-DOS, OS/2 or NT FAT │ version of encoding software: 2.0 │ minimum file system compatibility required: MS-DOS, OS/2 or NT FAT │ minimum software version required to extract: 2.0 │ compression method: deflated │ compression sub-type (deflation): normal │ file security status: not encrypted │ - extended local header: yes │ - file last modified on (DOS date/time): 2014 Aug 19 05:35:38 │ - 32-bit CRC value (hex): 9b210473 │ - compressed size: 801 bytes │ - uncompressed size: 1509 bytes │ - length of filename: 11 characters │ + extended local header: no │ + file last modified on (DOS date/time): 2017 Sep 28 00:13:54 │ + 32-bit CRC value (hex): 75166fdc │ + compressed size: 1077 bytes │ + uncompressed size: 1332 bytes │ + length of filename: 21 characters │ length of extra field: 0 bytes │ length of file comment: 0 characters │ disk number on which file begins: disk 1 │ apparent file type: binary │ non-MSDOS external file attributes: 000000 hex │ MS-DOS file attributes (00 hex): none ├── filetype from file(1) │ @@ -1 +1 @@ │ -Zip archive data, at least v2.0 to extract │ +Java archive data (JAR) ├── AndroidManifest.xml (decoded) │ ├── AndroidManifest.xml │ │ @@ -1,17 +1,16 @@ │ │ │ │ - │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ ├── resources.arsc │ @@ -1,120 +1,125 @@ │ -00000000: 0200 0c00 7807 0000 0100 0000 0100 1c00 ....x........... │ -00000010: ec01 0000 1600 0000 0000 0000 0001 0000 ................ │ +00000000: 0200 0c00 d007 0000 0100 0000 0100 1c00 ................ │ +00000010: f001 0000 1600 0000 0000 0000 0001 0000 ................ │ 00000020: 7400 0000 0000 0000 0000 0000 1b00 0000 t............... │ -00000030: 3f00 0000 5d00 0000 7200 0000 aa00 0000 ?...]...r....... │ -00000040: ba00 0000 d700 0000 eb00 0000 fb00 0000 ................ │ -00000050: 0c01 0000 1d01 0000 2e01 0000 3f01 0000 ............?... │ -00000060: 5101 0000 5a01 0000 5e01 0000 6201 0000 Q...Z...^...b... │ -00000070: 6601 0000 6a01 0000 6e01 0000 7301 0000 f...j...n...s... │ +00000030: 4200 0000 6000 0000 7500 0000 ad00 0000 B...`...u....... │ +00000040: bd00 0000 da00 0000 ee00 0000 fe00 0000 ................ │ +00000050: 0f01 0000 2001 0000 3101 0000 4201 0000 .... ...1...B... │ +00000060: 5401 0000 5d01 0000 6101 0000 6501 0000 T...]...a...e... │ +00000070: 6901 0000 6d01 0000 7101 0000 7601 0000 i...m...q...v... │ 00000080: 1818 7265 732f 786d 6c2f 7072 6566 5f73 ..res/xml/pref_s │ -00000090: 756e 7269 7365 2e78 6d6c 0021 2172 6573 unrise.xml.!!res │ -000000a0: 2f64 7261 7761 626c 652d 7868 6470 692f /drawable-xhdpi/ │ -000000b0: 6963 5f73 756e 7269 7365 2e70 6e67 001b ic_sunrise.png.. │ -000000c0: 1b44 6173 6843 6c6f 636b 2053 756e 7269 .DashClock Sunri │ -000000d0: 7365 2045 7874 656e 7369 6f6e 0012 1253 se Extension...S │ -000000e0: 756e 7269 7365 2061 6e64 2053 756e 7365 unrise and Sunse │ -000000f0: 7400 3535 5368 6f77 7320 7468 6520 7375 t.55Shows the su │ -00000100: 6e72 6973 6520 616e 6420 7375 6e73 6574 nrise and sunset │ -00000110: 2074 696d 6573 2066 6f72 2079 6f75 7220 times for your │ -00000120: 6c6f 6361 7469 6f6e 2e00 0b0d 2531 2473 location....%1$s │ -00000130: 20e2 8094 2025 3224 7300 1a1a 5375 6e72 ... %2$s...Sunr │ -00000140: 6973 6520 4578 7465 6e73 696f 6e20 5365 ise Extension Se │ -00000150: 7474 696e 6773 0011 1144 6973 706c 6179 ttings...Display │ -00000160: 206e 6578 7420 7469 6d65 000d 0d31 2068 next time...1 h │ -00000170: 6f75 7220 6265 666f 7265 000e 0e32 2068 our before...2 h │ -00000180: 6f75 7273 2062 6566 6f72 6500 0e0e 3320 ours before...3 │ -00000190: 686f 7572 7320 6265 666f 7265 000e 0e36 hours before...6 │ -000001a0: 2068 6f75 7273 2062 6566 6f72 6500 0e0e hours before... │ -000001b0: 3920 686f 7572 7320 6265 666f 7265 000f 9 hours before.. │ -000001c0: 0f31 3220 686f 7572 7320 6265 666f 7265 .12 hours before │ -000001d0: 0006 0661 6c77 6179 7300 0101 3100 0101 ...always...1... │ -000001e0: 3200 0101 3300 0101 3600 0101 3900 0202 2...3...6...9... │ -000001f0: 3132 0001 0130 0000 0002 1c01 8005 0000 12...0.......... │ -00000200: 7f00 0000 6400 6500 2e00 6200 6100 7300 ....d.e...b.a.s. │ -00000210: 6800 7400 6900 6100 6e00 2e00 6400 6100 h.t.i.a.n...d.a. │ -00000220: 7300 6800 6300 6c00 6f00 6300 6b00 7300 s.h.c.l.o.c.k.s. │ -00000230: 7500 6e00 7200 6900 7300 6500 0000 0000 u.n.r.i.s.e..... │ +00000090: 756e 7269 7365 2e78 6d6c 0024 2472 6573 unrise.xml.$$res │ +000000a0: 2f64 7261 7761 626c 652d 7868 6470 692d /drawable-xhdpi- │ +000000b0: 7634 2f69 635f 7375 6e72 6973 652e 706e v4/ic_sunrise.pn │ +000000c0: 6700 1b1b 4461 7368 436c 6f63 6b20 5375 g...DashClock Su │ +000000d0: 6e72 6973 6520 4578 7465 6e73 696f 6e00 nrise Extension. │ +000000e0: 1212 5375 6e72 6973 6520 616e 6420 5375 ..Sunrise and Su │ +000000f0: 6e73 6574 0035 3553 686f 7773 2074 6865 nset.55Shows the │ +00000100: 2073 756e 7269 7365 2061 6e64 2073 756e sunrise and sun │ +00000110: 7365 7420 7469 6d65 7320 666f 7220 796f set times for yo │ +00000120: 7572 206c 6f63 6174 696f 6e2e 000b 0d25 ur location....% │ +00000130: 3124 7320 e280 9420 2532 2473 001a 1a53 1$s ... %2$s...S │ +00000140: 756e 7269 7365 2045 7874 656e 7369 6f6e unrise Extension │ +00000150: 2053 6574 7469 6e67 7300 1111 4469 7370 Settings...Disp │ +00000160: 6c61 7920 6e65 7874 2074 696d 6500 0d0d lay next time... │ +00000170: 3120 686f 7572 2062 6566 6f72 6500 0e0e 1 hour before... │ +00000180: 3220 686f 7572 7320 6265 666f 7265 000e 2 hours before.. │ +00000190: 0e33 2068 6f75 7273 2062 6566 6f72 6500 .3 hours before. │ +000001a0: 0e0e 3620 686f 7572 7320 6265 666f 7265 ..6 hours before │ +000001b0: 000e 0e39 2068 6f75 7273 2062 6566 6f72 ...9 hours befor │ +000001c0: 6500 0f0f 3132 2068 6f75 7273 2062 6566 e...12 hours bef │ +000001d0: 6f72 6500 0606 616c 7761 7973 0001 0131 ore...always...1 │ +000001e0: 0001 0132 0001 0133 0001 0136 0001 0139 ...2...3...6...9 │ +000001f0: 0002 0231 3200 0101 3000 0000 0002 2001 ...12...0..... . │ +00000200: d405 0000 7f00 0000 6400 6500 2e00 6200 ........d.e...b. │ +00000210: 6100 7300 6800 7400 6900 6100 6e00 2e00 a.s.h.t.i.a.n... │ +00000220: 6400 6100 7300 6800 6300 6c00 6f00 6300 d.a.s.h.c.l.o.c. │ +00000230: 6b00 7300 7500 6e00 7200 6900 7300 6500 k.s.u.n.r.i.s.e. │ 00000240: 0000 0000 0000 0000 0000 0000 0000 0000 ................ │ 00000250: 0000 0000 0000 0000 0000 0000 0000 0000 ................ │ 00000260: 0000 0000 0000 0000 0000 0000 0000 0000 ................ │ 00000270: 0000 0000 0000 0000 0000 0000 0000 0000 ................ │ 00000280: 0000 0000 0000 0000 0000 0000 0000 0000 ................ │ 00000290: 0000 0000 0000 0000 0000 0000 0000 0000 ................ │ 000002a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ │ 000002b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ │ 000002c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ │ 000002d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ │ 000002e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ │ 000002f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ │ -00000300: 0000 0000 1c01 0000 0500 0000 7801 0000 ............x... │ -00000310: 0a00 0000 0100 1c00 5c00 0000 0500 0000 ........\....... │ -00000320: 0000 0000 0001 0000 3000 0000 0000 0000 ........0....... │ -00000330: 0000 0000 0700 0000 1200 0000 1800 0000 ................ │ -00000340: 2100 0000 0404 6174 7472 0008 0864 7261 !.....attr...dra │ -00000350: 7761 626c 6500 0303 786d 6c00 0606 7374 wable...xml...st │ -00000360: 7269 6e67 0005 0561 7272 6179 0000 0000 ring...array.... │ -00000370: 0100 1c00 4001 0000 0a00 0000 0000 0000 ....@........... │ -00000380: 0001 0000 4400 0000 0000 0000 0000 0000 ....D........... │ -00000390: 0d00 0000 1c00 0000 2700 0000 3900 0000 ........'...9... │ -000003a0: 5100 0000 6b00 0000 7c00 0000 a300 0000 Q...k...|....... │ -000003b0: d200 0000 0a0a 6963 5f73 756e 7269 7365 ......ic_sunrise │ -000003c0: 000c 0c70 7265 665f 7375 6e72 6973 6500 ...pref_sunrise. │ -000003d0: 0808 6170 705f 6e61 6d65 000f 0f65 7874 ..app_name...ext │ -000003e0: 656e 7369 6f6e 5f74 6974 6c65 0015 1565 ension_title...e │ -000003f0: 7874 656e 7369 6f6e 5f64 6573 6372 6970 xtension_descrip │ -00000400: 7469 6f6e 0017 1765 7870 616e 6465 645f tion...expanded_ │ -00000410: 7469 746c 655f 7465 6d70 6c61 7465 000e title_template.. │ -00000420: 0e74 6974 6c65 5f73 6574 7469 6e67 7300 .title_settings. │ -00000430: 2424 7072 6566 5f73 756e 7269 7365 5f73 $$pref_sunrise_s │ -00000440: 686f 775f 6265 666f 7265 5f68 6f75 7273 how_before_hours │ -00000450: 5f74 6974 6c65 002c 2c70 7265 665f 7375 _title.,,pref_su │ -00000460: 6e72 6973 655f 7368 6f77 5f62 6566 6f72 nrise_show_befor │ -00000470: 655f 686f 7572 735f 6469 7370 6c61 795f e_hours_display_ │ -00000480: 6e61 6d65 7300 2525 7072 6566 5f73 756e names.%%pref_sun │ -00000490: 7269 7365 5f73 686f 775f 6265 666f 7265 rise_show_before │ -000004a0: 5f68 6f75 7273 5f76 616c 7565 7300 0000 _hours_values... │ -000004b0: 0202 1000 1000 0000 0100 0000 0000 0000 ................ │ -000004c0: 0202 1000 1400 0000 0200 0000 0100 0000 ................ │ -000004d0: 0000 0000 0102 3800 4c00 0000 0200 0000 ......8.L....... │ -000004e0: 0100 0000 3c00 0000 2400 0000 0000 0000 ....<...$....... │ -000004f0: 0000 0000 0000 4001 0000 0000 0000 0000 ......@......... │ -00000500: 0400 0000 0000 0000 0000 0000 0000 0000 ................ │ -00000510: 0800 0000 0000 0000 0800 0003 0100 0000 ................ │ -00000520: 0202 1000 1400 0000 0300 0000 0100 0000 ................ │ -00000530: 0000 0000 0102 3800 4c00 0000 0300 0000 ......8.L....... │ -00000540: 0100 0000 3c00 0000 2400 0000 0000 0000 ....<...$....... │ -00000550: 0000 0000 0000 0000 0000 0000 0000 0000 ................ │ -00000560: 0000 0000 0000 0000 0000 0000 0000 0000 ................ │ -00000570: 0800 0000 0100 0000 0800 0003 0000 0000 ................ │ -00000580: 0202 1000 2800 0000 0400 0000 0600 0000 ....(........... │ +00000300: 0000 0000 0000 0000 2001 0000 0500 0000 ........ ....... │ +00000310: 7c01 0000 0a00 0000 0000 0000 0100 1c00 |............... │ +00000320: 5c00 0000 0500 0000 0000 0000 0001 0000 \............... │ +00000330: 3000 0000 0000 0000 0000 0000 0700 0000 0............... │ +00000340: 1200 0000 1800 0000 2100 0000 0404 6174 ........!.....at │ +00000350: 7472 0008 0864 7261 7761 626c 6500 0303 tr...drawable... │ +00000360: 786d 6c00 0606 7374 7269 6e67 0005 0561 xml...string...a │ +00000370: 7272 6179 0000 0000 0100 1c00 4001 0000 rray........@... │ +00000380: 0a00 0000 0000 0000 0001 0000 4400 0000 ............D... │ +00000390: 0000 0000 0000 0000 0d00 0000 1c00 0000 ................ │ +000003a0: 2700 0000 3900 0000 5100 0000 6b00 0000 '...9...Q...k... │ +000003b0: 7c00 0000 a300 0000 d200 0000 0a0a 6963 |.............ic │ +000003c0: 5f73 756e 7269 7365 000c 0c70 7265 665f _sunrise...pref_ │ +000003d0: 7375 6e72 6973 6500 0808 6170 705f 6e61 sunrise...app_na │ +000003e0: 6d65 000f 0f65 7874 656e 7369 6f6e 5f74 me...extension_t │ +000003f0: 6974 6c65 0015 1565 7874 656e 7369 6f6e itle...extension │ +00000400: 5f64 6573 6372 6970 7469 6f6e 0017 1765 _description...e │ +00000410: 7870 616e 6465 645f 7469 746c 655f 7465 xpanded_title_te │ +00000420: 6d70 6c61 7465 000e 0e74 6974 6c65 5f73 mplate...title_s │ +00000430: 6574 7469 6e67 7300 2424 7072 6566 5f73 ettings.$$pref_s │ +00000440: 756e 7269 7365 5f73 686f 775f 6265 666f unrise_show_befo │ +00000450: 7265 5f68 6f75 7273 5f74 6974 6c65 002c re_hours_title., │ +00000460: 2c70 7265 665f 7375 6e72 6973 655f 7368 ,pref_sunrise_sh │ +00000470: 6f77 5f62 6566 6f72 655f 686f 7572 735f ow_before_hours_ │ +00000480: 6469 7370 6c61 795f 6e61 6d65 7300 2525 display_names.%% │ +00000490: 7072 6566 5f73 756e 7269 7365 5f73 686f pref_sunrise_sho │ +000004a0: 775f 6265 666f 7265 5f68 6f75 7273 5f76 w_before_hours_v │ +000004b0: 616c 7565 7300 0000 0202 1000 1000 0000 alues........... │ +000004c0: 0100 0000 0000 0000 0202 1000 1400 0000 ................ │ +000004d0: 0200 0000 0100 0000 0000 0000 0102 4c00 ..............L. │ +000004e0: 6000 0000 0200 0000 0100 0000 5000 0000 `...........P... │ +000004f0: 3800 0000 0000 0000 0000 0000 0000 4001 8.............@. │ +00000500: 0000 0000 0000 0000 0400 0000 0000 0000 ................ │ +00000510: 0000 0000 0000 0000 0000 0000 0000 0000 ................ │ +00000520: 0000 0000 0000 0000 0000 0000 0800 0000 ................ │ +00000530: 0000 0000 0800 0003 0100 0000 0202 1000 ................ │ +00000540: 1400 0000 0300 0000 0100 0000 0000 0000 ................ │ +00000550: 0102 4c00 6000 0000 0300 0000 0100 0000 ..L.`........... │ +00000560: 5000 0000 3800 0000 0000 0000 0000 0000 P...8........... │ +00000570: 0000 0000 0000 0000 0000 0000 0000 0000 ................ │ +00000580: 0000 0000 0000 0000 0000 0000 0000 0000 ................ │ 00000590: 0000 0000 0000 0000 0000 0000 0000 0000 ................ │ -000005a0: 0000 0000 0000 0000 0102 3800 b000 0000 ..........8..... │ -000005b0: 0400 0000 0600 0000 5000 0000 2400 0000 ........P...$... │ +000005a0: 0800 0000 0100 0000 0800 0003 0000 0000 ................ │ +000005b0: 0202 1000 2800 0000 0400 0000 0600 0000 ....(........... │ 000005c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ │ -000005d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ │ -000005e0: 0000 0000 1000 0000 2000 0000 3000 0000 ........ ...0... │ -000005f0: 4000 0000 5000 0000 0800 0000 0200 0000 @...P........... │ -00000600: 0800 0003 0200 0000 0800 0000 0300 0000 ................ │ -00000610: 0800 0003 0300 0000 0800 0000 0400 0000 ................ │ -00000620: 0800 0003 0400 0000 0800 0000 0500 0000 ................ │ -00000630: 0800 0003 0500 0000 0800 0000 0600 0000 ................ │ -00000640: 0800 0003 0600 0000 0800 0000 0700 0000 ................ │ -00000650: 0800 0003 0700 0000 0202 1000 1800 0000 ................ │ -00000660: 0500 0000 0200 0000 0000 0000 0000 0000 ................ │ -00000670: 0102 3800 0801 0000 0500 0000 0200 0000 ..8............. │ -00000680: 4000 0000 2400 0000 0000 0000 0000 0000 @...$........... │ -00000690: 0000 0000 0000 0000 0000 0000 0000 0000 ................ │ -000006a0: 0000 0000 0000 0000 0000 0000 6400 0000 ............d... │ -000006b0: 1000 0100 0800 0000 0000 0000 0700 0000 ................ │ -000006c0: 0000 0002 0800 0003 0800 0000 0100 0002 ................ │ -000006d0: 0800 0003 0900 0000 0200 0002 0800 0003 ................ │ -000006e0: 0a00 0000 0300 0002 0800 0003 0b00 0000 ................ │ -000006f0: 0400 0002 0800 0003 0c00 0000 0500 0002 ................ │ -00000700: 0800 0003 0d00 0000 0600 0002 0800 0003 ................ │ -00000710: 0e00 0000 1000 0100 0900 0000 0000 0000 ................ │ -00000720: 0700 0000 0000 0002 0800 0003 0f00 0000 ................ │ -00000730: 0100 0002 0800 0003 1000 0000 0200 0002 ................ │ -00000740: 0800 0003 1100 0000 0300 0002 0800 0003 ................ │ -00000750: 1200 0000 0400 0002 0800 0003 1300 0000 ................ │ -00000760: 0500 0002 0800 0003 1400 0000 0600 0002 ................ │ -00000770: 0800 0003 1500 0000 ........ │ +000005d0: 0000 0000 0000 0000 0102 4c00 c400 0000 ..........L..... │ +000005e0: 0400 0000 0600 0000 6400 0000 3800 0000 ........d...8... │ +000005f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ │ +00000600: 0000 0000 0000 0000 0000 0000 0000 0000 ................ │ +00000610: 0000 0000 0000 0000 0000 0000 0000 0000 ................ │ +00000620: 0000 0000 0000 0000 1000 0000 2000 0000 ............ ... │ +00000630: 3000 0000 4000 0000 5000 0000 0800 0000 0...@...P....... │ +00000640: 0200 0000 0800 0003 0200 0000 0800 0000 ................ │ +00000650: 0300 0000 0800 0003 0300 0000 0800 0000 ................ │ +00000660: 0400 0000 0800 0003 0400 0000 0800 0000 ................ │ +00000670: 0500 0000 0800 0003 0500 0000 0800 0000 ................ │ +00000680: 0600 0000 0800 0003 0600 0000 0800 0000 ................ │ +00000690: 0700 0000 0800 0003 0700 0000 0202 1000 ................ │ +000006a0: 1800 0000 0500 0000 0200 0000 0000 0000 ................ │ +000006b0: 0000 0000 0102 4c00 1c01 0000 0500 0000 ......L......... │ +000006c0: 0200 0000 5400 0000 3800 0000 0000 0000 ....T...8....... │ +000006d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ │ +000006e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ │ +000006f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ │ +00000700: 0000 0000 6400 0000 1000 0100 0800 0000 ....d........... │ +00000710: 0000 0000 0700 0000 0000 0002 0800 0003 ................ │ +00000720: 0800 0000 0100 0002 0800 0003 0900 0000 ................ │ +00000730: 0200 0002 0800 0003 0a00 0000 0300 0002 ................ │ +00000740: 0800 0003 0b00 0000 0400 0002 0800 0003 ................ │ +00000750: 0c00 0000 0500 0002 0800 0003 0d00 0000 ................ │ +00000760: 0600 0002 0800 0003 0e00 0000 1000 0100 ................ │ +00000770: 0900 0000 0000 0000 0700 0000 0000 0002 ................ │ +00000780: 0800 0003 0f00 0000 0100 0002 0800 0003 ................ │ +00000790: 1000 0000 0200 0002 0800 0003 1100 0000 ................ │ +000007a0: 0300 0002 0800 0003 1200 0000 0400 0002 ................ │ +000007b0: 0800 0003 1300 0000 0500 0002 0800 0003 ................ │ +000007c0: 1400 0000 0600 0002 0800 0003 1500 0000 ................ ├── classes.dex │ ├── classes.jar │ │ ├── zipinfo {} │ │ │ @@ -1,18 +1,18 @@ │ │ │ -Zip file size: 391080 bytes, number of entries: 284 │ │ │ +Zip file size: 391070 bytes, number of entries: 284 │ │ │ ?rwxrwxr-x 2.0 unx 692 b- stor 80-Jan-01 00:00 com/google/android/apps/dashclock/api/DashClockExtension$1$1.class │ │ │ ?rwxrwxr-x 2.0 unx 3480 b- stor 80-Jan-01 00:00 com/google/android/apps/dashclock/api/DashClockExtension.class │ │ │ ?rwxrwxr-x 2.0 unx 739 b- stor 80-Jan-01 00:00 com/google/android/apps/dashclock/api/ExtensionData$1.class │ │ │ ?rwxrwxr-x 2.0 unx 5556 b- stor 80-Jan-01 00:00 com/google/android/apps/dashclock/api/ExtensionData.class │ │ │ ?rwxrwxr-x 2.0 unx 257 b- stor 80-Jan-01 00:00 com/google/android/apps/dashclock/api/internal/IExtension.class │ │ │ ?rwxrwxr-x 2.0 unx 319 b- stor 80-Jan-01 00:00 com/google/android/apps/dashclock/api/internal/IExtensionHost.class │ │ │ ?rwxrwxr-x 2.0 unx 102 b- stor 80-Jan-01 00:00 com/google/android/apps/dashclock/api/package-info.class │ │ │ ?rwxrwxr-x 2.0 unx 2821 b- stor 80-Jan-01 00:00 com/luckycatlabs/sunrisesunset/SunriseSunsetCalculator.class │ │ │ ?rwxrwxr-x 2.0 unx 693 b- stor 80-Jan-01 00:00 com/luckycatlabs/sunrisesunset/Zenith.class │ │ │ -?rwxrwxr-x 2.0 unx 7222 b- stor 80-Jan-01 00:00 com/luckycatlabs/sunrisesunset/calculator/SolarEventCalculator.class │ │ │ +?rwxrwxr-x 2.0 unx 7227 b- stor 80-Jan-01 00:00 com/luckycatlabs/sunrisesunset/calculator/SolarEventCalculator.class │ │ │ ?rwxrwxr-x 2.0 unx 580 b- stor 80-Jan-01 00:00 com/luckycatlabs/sunrisesunset/dto/Location.class │ │ │ ?rwxrwxr-x 2.0 unx 2070 b- stor 80-Jan-01 00:00 com/luckycatlabs/sunrisesunset/util/BaseTestCase.class │ │ │ ?rwxrwxr-x 2.0 unx 1380 b- stor 80-Jan-01 00:00 com/luckycatlabs/sunrisesunset/util/CSVTestDriver.class │ │ │ ?rwxrwxr-x 2.0 unx 175 b- stor 80-Jan-01 00:00 de/bashtian/dashclocksunrise/BuildConfig.class │ │ │ ?rwxrwxr-x 2.0 unx 300 b- stor 80-Jan-01 00:00 de/bashtian/dashclocksunrise/R$array.class │ │ │ ?rwxrwxr-x 2.0 unx 150 b- stor 80-Jan-01 00:00 de/bashtian/dashclocksunrise/R$attr.class │ │ │ ?rwxrwxr-x 2.0 unx 208 b- stor 80-Jan-01 00:00 de/bashtian/dashclocksunrise/R$drawable.class │ │ │ @@ -146,15 +146,15 @@ │ │ │ ?rwxrwxr-x 2.0 unx 3694 b- stor 80-Jan-01 00:00 org/junit/runners/model/TestClass.class │ │ │ ?rwxrwxr-x 2.0 unx 82 b- stor 80-Jan-01 00:00 org/junit/runners/package-info.class │ │ │ ?rwxrwxr-x 2.0 unx 1303 b- stor 80-Jan-01 00:00 com/google/android/apps/dashclock/api/internal/IExtension$Stub$Proxy.class │ │ │ ?rwxrwxr-x 2.0 unx 1693 b- stor 80-Jan-01 00:00 com/google/android/apps/dashclock/api/internal/IExtension$Stub.class │ │ │ ?rwxrwxr-x 2.0 unx 1517 b- stor 80-Jan-01 00:00 com/google/android/apps/dashclock/api/internal/IExtensionHost$Stub$Proxy.class │ │ │ ?rwxrwxr-x 2.0 unx 1971 b- stor 80-Jan-01 00:00 com/google/android/apps/dashclock/api/internal/IExtensionHost$Stub.class │ │ │ ?rwxrwxr-x 2.0 unx 2703 b- stor 80-Jan-01 00:00 com/luckycatlabs/sunrisesunset/SunriseSunsetCalculatorTest.class │ │ │ -?rwxrwxr-x 2.0 unx 3356 b- stor 80-Jan-01 00:00 com/luckycatlabs/sunrisesunset/SunriseSunsetDataTest.class │ │ │ +?rwxrwxr-x 2.0 unx 3341 b- stor 80-Jan-01 00:00 com/luckycatlabs/sunrisesunset/SunriseSunsetDataTest.class │ │ │ ?rwxrwxr-x 2.0 unx 1947 b- stor 80-Jan-01 00:00 com/luckycatlabs/sunrisesunset/calculator/SolarEventCalculatorTest.class │ │ │ ?rwxrwxr-x 2.0 unx 5889 b- stor 80-Jan-01 00:00 de/bashtian/dashclocksunrise/SunriseExtension.class │ │ │ ?rwxrwxr-x 2.0 unx 640 b- stor 80-Jan-01 00:00 junit/extensions/TestDecorator.class │ │ │ ?rwxrwxr-x 2.0 unx 562 b- stor 80-Jan-01 00:00 junit/extensions/TestSetup$1.class │ │ │ ?rwxrwxr-x 2.0 unx 801 b- stor 80-Jan-01 00:00 junit/framework/ComparisonFailure.class │ │ │ ?rwxrwxr-x 2.0 unx 2865 b- stor 80-Jan-01 00:00 junit/framework/JUnit4TestAdapter.class │ │ │ ?rwxrwxr-x 2.0 unx 1123 b- stor 80-Jan-01 00:00 junit/framework/JUnit4TestAdapterCache$1.class │ │ │ @@ -279,8 +279,8 @@ │ │ │ ?rwxrwxr-x 2.0 unx 834 b- stor 80-Jan-01 00:00 org/junit/internal/matchers/SubstringMatcher.class │ │ │ ?rwxrwxr-x 2.0 unx 964 b- stor 80-Jan-01 00:00 org/junit/rules/ExpectedException$1.class │ │ │ ?rwxrwxr-x 2.0 unx 181 b- stor 80-Jan-01 00:00 org/junit/runners/AllTests.class │ │ │ ?rwxrwxr-x 2.0 unx 181 b- stor 80-Jan-01 00:00 org/junit/runners/JUnit4.class │ │ │ ?rwxrwxr-x 2.0 unx 2322 b- stor 80-Jan-01 00:00 org/junit/runners/Parameterized$TestClassRunnerForParameters.class │ │ │ ?rwxrwxr-x 2.0 unx 2330 b- stor 80-Jan-01 00:00 org/junit/runners/Parameterized.class │ │ │ ?rwxrwxr-x 2.0 unx 599 b- stor 80-Jan-01 00:00 org/junit/internal/matchers/StringContains.class │ │ │ -284 files, 344028 bytes uncompressed, 344028 bytes compressed: 0.0% │ │ │ +284 files, 344018 bytes uncompressed, 344018 bytes compressed: 0.0% │ │ ├── com/luckycatlabs/sunrisesunset/calculator/SolarEventCalculator.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -147,21 +147,20 @@ │ │ │ │ } │ │ │ │ │ │ │ │ private BigDecimal getMeanAnomaly(final BigDecimal bigDecimal) { │ │ │ │ return this.setScale(this.multiplyBy(new BigDecimal("0.9856"), bigDecimal).subtract(new BigDecimal("3.289"))); │ │ │ │ } │ │ │ │ │ │ │ │ private BigDecimal getRightAscension(final BigDecimal bigDecimal) { │ │ │ │ - final long n = 360L; │ │ │ │ BigDecimal bigDecimal2 = this.setScale(this.convertRadiansToDegrees(new BigDecimal(Math.atan(this.convertDegreesToRadians(this.multiplyBy(this.convertRadiansToDegrees(new BigDecimal(Math.tan(this.convertDegreesToRadians(bigDecimal).doubleValue()))), new BigDecimal("0.91764"))).doubleValue())))); │ │ │ │ if (bigDecimal2.doubleValue() < 0.0) { │ │ │ │ - bigDecimal2 = bigDecimal2.add(BigDecimal.valueOf(n)); │ │ │ │ + bigDecimal2 = bigDecimal2.add(BigDecimal.valueOf(360L)); │ │ │ │ } │ │ │ │ else if (bigDecimal2.doubleValue() > 360.0) { │ │ │ │ - bigDecimal2 = bigDecimal2.subtract(BigDecimal.valueOf(n)); │ │ │ │ + bigDecimal2 = bigDecimal2.subtract(BigDecimal.valueOf(360L)); │ │ │ │ } │ │ │ │ final BigDecimal value = BigDecimal.valueOf(90); │ │ │ │ return this.divideBy(bigDecimal2.add(bigDecimal.divide(value, 0, RoundingMode.FLOOR).multiply(value).subtract(bigDecimal2.divide(value, 0, RoundingMode.FLOOR).multiply(value))), BigDecimal.valueOf((long)15)); │ │ │ │ } │ │ │ │ │ │ │ │ private BigDecimal getSinOfSunDeclination(final BigDecimal bigDecimal) { │ │ │ │ return this.setScale(BigDecimal.valueOf(Math.sin(this.convertDegreesToRadians(bigDecimal).doubleValue())).multiply(new BigDecimal("0.39782"))); │ │ ├── org/junit/internal/runners/MethodRoadie$1.class │ │ │ ├── javap -verbose -constants -s -l -private {} │ │ │ │ @@ -161,48 +161,48 @@ │ │ │ │ 73: aload 6 │ │ │ │ 75: invokeinterface #58, 4 // InterfaceMethod java/util/concurrent/Future.get:(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object; │ │ │ │ 80: pop │ │ │ │ 81: return │ │ │ │ 82: astore 8 │ │ │ │ 84: aload_0 │ │ │ │ 85: getfield #12 // Field this$0:Lorg/junit/internal/runners/MethodRoadie; │ │ │ │ - 88: astore 9 │ │ │ │ + 88: astore 6 │ │ │ │ 90: new #60 // class java/lang/Exception │ │ │ │ - 93: astore 10 │ │ │ │ + 93: astore 9 │ │ │ │ 95: iconst_1 │ │ │ │ - 96: istore 11 │ │ │ │ - 98: iload 11 │ │ │ │ + 96: istore 10 │ │ │ │ + 98: iload 10 │ │ │ │ 100: anewarray #4 // class java/lang/Object │ │ │ │ - 103: astore 12 │ │ │ │ + 103: astore 11 │ │ │ │ 105: aload_0 │ │ │ │ 106: getfield #14 // Field val$timeout:J │ │ │ │ - 109: lstore 13 │ │ │ │ - 111: lload 13 │ │ │ │ + 109: lstore 12 │ │ │ │ + 111: lload 12 │ │ │ │ 113: invokestatic #69 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long; │ │ │ │ - 116: astore 15 │ │ │ │ - 118: aload 12 │ │ │ │ + 116: astore 14 │ │ │ │ + 118: aload 11 │ │ │ │ 120: iconst_0 │ │ │ │ - 121: aload 15 │ │ │ │ + 121: aload 14 │ │ │ │ 123: aastore │ │ │ │ 124: ldc #62 // String test timed out after %d milliseconds │ │ │ │ - 126: aload 12 │ │ │ │ + 126: aload 11 │ │ │ │ 128: invokestatic #75 // Method java/lang/String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ │ │ - 131: astore 6 │ │ │ │ - 133: aload 10 │ │ │ │ - 135: aload 6 │ │ │ │ + 131: astore 15 │ │ │ │ + 133: aload 9 │ │ │ │ + 135: aload 15 │ │ │ │ 137: invokespecial #78 // Method java/lang/Exception."":(Ljava/lang/String;)V │ │ │ │ - 140: aload 9 │ │ │ │ - 142: aload 10 │ │ │ │ + 140: aload 6 │ │ │ │ + 142: aload 9 │ │ │ │ 144: invokevirtual #84 // Method org/junit/internal/runners/MethodRoadie.addFailure:(Ljava/lang/Throwable;)V │ │ │ │ 147: goto 81 │ │ │ │ 150: astore 8 │ │ │ │ 152: aload_0 │ │ │ │ 153: getfield #12 // Field this$0:Lorg/junit/internal/runners/MethodRoadie; │ │ │ │ - 156: astore 9 │ │ │ │ - 158: aload 9 │ │ │ │ + 156: astore 6 │ │ │ │ + 158: aload 6 │ │ │ │ 160: aload 8 │ │ │ │ 162: invokevirtual #84 // Method org/junit/internal/runners/MethodRoadie.addFailure:(Ljava/lang/Throwable;)V │ │ │ │ 165: goto 81 │ │ │ │ Exception table: │ │ │ │ from to target type │ │ │ │ 27 31 82 Class java/util/concurrent/TimeoutException │ │ │ │ 27 31 150 Class java/lang/Exception │ │ ├── com/luckycatlabs/sunrisesunset/SunriseSunsetDataTest.class │ │ │ ├── javap -verbose -constants -s -l -private {} │ │ │ │ @@ -381,217 +381,209 @@ │ │ │ │ 5: invokestatic #108 // Method java/util/TimeZone.setDefault:(Ljava/util/TimeZone;)V │ │ │ │ 8: return │ │ │ │ │ │ │ │ public void testRiseAndSetTimes(); │ │ │ │ descriptor: ()V │ │ │ │ flags: (0x0001) ACC_PUBLIC │ │ │ │ Code: │ │ │ │ - stack=300, locals=19, args_size=1 │ │ │ │ + stack=300, locals=17, args_size=1 │ │ │ │ 0: getstatic #96 // Field dataSetNames:[Ljava/lang/String; │ │ │ │ 3: astore_1 │ │ │ │ 4: aload_1 │ │ │ │ 5: arraylength │ │ │ │ 6: istore_2 │ │ │ │ 7: iconst_0 │ │ │ │ 8: istore_3 │ │ │ │ - 9: aconst_null │ │ │ │ - 10: astore 4 │ │ │ │ - 12: iconst_0 │ │ │ │ - 13: istore 5 │ │ │ │ - 15: iload 5 │ │ │ │ - 17: iload_2 │ │ │ │ - 18: if_icmpge 407 │ │ │ │ - 21: aload_1 │ │ │ │ - 22: iload 5 │ │ │ │ - 24: aaload │ │ │ │ - 25: astore 6 │ │ │ │ - 27: getstatic #90 // Field driver:Lcom/luckycatlabs/sunrisesunset/util/CSVTestDriver; │ │ │ │ - 30: aload 6 │ │ │ │ - 32: invokevirtual #112 // Method com/luckycatlabs/sunrisesunset/util/CSVTestDriver.getData:(Ljava/lang/String;)Ljava/util/List; │ │ │ │ - 35: astore 7 │ │ │ │ - 37: aload 6 │ │ │ │ - 39: ldc #114 // String \\# │ │ │ │ - 41: invokevirtual #44 // Method java/lang/String.split:(Ljava/lang/String;)[Ljava/lang/String; │ │ │ │ - 44: astore 8 │ │ │ │ - 46: aload 8 │ │ │ │ - 48: iconst_1 │ │ │ │ - 49: aaload │ │ │ │ - 50: ldc #116 // String \\. │ │ │ │ - 52: invokevirtual #44 // Method java/lang/String.split:(Ljava/lang/String;)[Ljava/lang/String; │ │ │ │ - 55: astore 9 │ │ │ │ - 57: aconst_null │ │ │ │ - 58: astore 10 │ │ │ │ - 60: aload 9 │ │ │ │ - 62: iconst_0 │ │ │ │ - 63: aaload │ │ │ │ - 64: astore 9 │ │ │ │ - 66: bipush 45 │ │ │ │ - 68: istore 11 │ │ │ │ - 70: bipush 47 │ │ │ │ - 72: istore 12 │ │ │ │ - 74: aload 9 │ │ │ │ - 76: iload 11 │ │ │ │ - 78: iload 12 │ │ │ │ - 80: invokevirtual #48 // Method java/lang/String.replace:(CC)Ljava/lang/String; │ │ │ │ - 83: astore 13 │ │ │ │ - 85: iconst_0 │ │ │ │ - 86: istore 14 │ │ │ │ - 88: aload 8 │ │ │ │ - 90: iconst_0 │ │ │ │ - 91: aaload │ │ │ │ - 92: astore 9 │ │ │ │ - 94: aload_0 │ │ │ │ - 95: aload 9 │ │ │ │ - 97: invokespecial #122 // Method createLocation:(Ljava/lang/String;)Lcom/luckycatlabs/sunrisesunset/dto/Location; │ │ │ │ - 100: astore 9 │ │ │ │ - 102: aload_0 │ │ │ │ - 103: aload 9 │ │ │ │ - 105: putfield #126 // Field location:Lcom/luckycatlabs/sunrisesunset/dto/Location; │ │ │ │ - 108: aload 7 │ │ │ │ - 110: invokeinterface #132, 1 // InterfaceMethod java/util/List.iterator:()Ljava/util/Iterator; │ │ │ │ - 115: astore 4 │ │ │ │ - 117: aload 4 │ │ │ │ - 119: invokeinterface #138, 1 // InterfaceMethod java/util/Iterator.hasNext:()Z │ │ │ │ - 124: istore 14 │ │ │ │ - 126: iload 14 │ │ │ │ - 128: ifeq 396 │ │ │ │ - 131: aload 4 │ │ │ │ - 133: invokeinterface #142, 1 // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object; │ │ │ │ - 138: checkcast #143 // class "[Ljava/lang/String;" │ │ │ │ - 141: astore 15 │ │ │ │ - 143: aload 15 │ │ │ │ - 145: iconst_0 │ │ │ │ - 146: aaload │ │ │ │ - 147: astore 16 │ │ │ │ - 149: aload 16 │ │ │ │ - 151: ldc #145 // String \\/ │ │ │ │ - 153: invokevirtual #44 // Method java/lang/String.split:(Ljava/lang/String;)[Ljava/lang/String; │ │ │ │ - 156: astore 9 │ │ │ │ - 158: aload_0 │ │ │ │ - 159: aload 9 │ │ │ │ - 161: invokespecial #149 // Method createCalendar:([Ljava/lang/String;)Ljava/util/Calendar; │ │ │ │ - 164: astore 17 │ │ │ │ - 166: new #151 // class com/luckycatlabs/sunrisesunset/SunriseSunsetCalculator │ │ │ │ - 169: astore 18 │ │ │ │ - 171: aload_0 │ │ │ │ - 172: getfield #126 // Field location:Lcom/luckycatlabs/sunrisesunset/dto/Location; │ │ │ │ - 175: astore 9 │ │ │ │ - 177: aload 18 │ │ │ │ - 179: aload 9 │ │ │ │ - 181: aload 13 │ │ │ │ - 183: invokespecial #154 // Method com/luckycatlabs/sunrisesunset/SunriseSunsetCalculator."":(Lcom/luckycatlabs/sunrisesunset/dto/Location;Ljava/lang/String;)V │ │ │ │ - 186: aload 15 │ │ │ │ - 188: iconst_1 │ │ │ │ - 189: aaload │ │ │ │ - 190: astore 9 │ │ │ │ - 192: aload 18 │ │ │ │ - 194: aload 17 │ │ │ │ - 196: invokevirtual #158 // Method com/luckycatlabs/sunrisesunset/SunriseSunsetCalculator.getAstronomicalSunriseForDate:(Ljava/util/Calendar;)Ljava/lang/String; │ │ │ │ - 199: astore 10 │ │ │ │ - 201: aload_0 │ │ │ │ - 202: aload 9 │ │ │ │ - 204: aload 10 │ │ │ │ - 206: aload 16 │ │ │ │ - 208: invokevirtual #162 // Method assertTimeEquals:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ - 211: aload 15 │ │ │ │ - 213: bipush 8 │ │ │ │ - 215: aaload │ │ │ │ - 216: astore 9 │ │ │ │ - 218: aload 18 │ │ │ │ - 220: aload 17 │ │ │ │ - 222: invokevirtual #166 // Method com/luckycatlabs/sunrisesunset/SunriseSunsetCalculator.getAstronomicalSunsetForDate:(Ljava/util/Calendar;)Ljava/lang/String; │ │ │ │ - 225: astore 10 │ │ │ │ - 227: aload_0 │ │ │ │ - 228: aload 9 │ │ │ │ - 230: aload 10 │ │ │ │ - 232: aload 16 │ │ │ │ - 234: invokevirtual #162 // Method assertTimeEquals:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ - 237: aload 15 │ │ │ │ - 239: iconst_2 │ │ │ │ - 240: aaload │ │ │ │ - 241: astore 9 │ │ │ │ - 243: aload 18 │ │ │ │ - 245: aload 17 │ │ │ │ - 247: invokevirtual #169 // Method com/luckycatlabs/sunrisesunset/SunriseSunsetCalculator.getNauticalSunriseForDate:(Ljava/util/Calendar;)Ljava/lang/String; │ │ │ │ - 250: astore 10 │ │ │ │ - 252: aload_0 │ │ │ │ - 253: aload 9 │ │ │ │ - 255: aload 10 │ │ │ │ - 257: aload 16 │ │ │ │ - 259: invokevirtual #162 // Method assertTimeEquals:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ - 262: aload 15 │ │ │ │ - 264: bipush 7 │ │ │ │ - 266: aaload │ │ │ │ - 267: astore 9 │ │ │ │ - 269: aload 18 │ │ │ │ - 271: aload 17 │ │ │ │ - 273: invokevirtual #173 // Method com/luckycatlabs/sunrisesunset/SunriseSunsetCalculator.getNauticalSunsetForDate:(Ljava/util/Calendar;)Ljava/lang/String; │ │ │ │ - 276: astore 10 │ │ │ │ - 278: aload_0 │ │ │ │ - 279: aload 9 │ │ │ │ - 281: aload 10 │ │ │ │ - 283: aload 16 │ │ │ │ - 285: invokevirtual #162 // Method assertTimeEquals:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ - 288: aload 15 │ │ │ │ - 290: iconst_4 │ │ │ │ - 291: aaload │ │ │ │ - 292: astore 9 │ │ │ │ - 294: aload 18 │ │ │ │ - 296: aload 17 │ │ │ │ - 298: invokevirtual #177 // Method com/luckycatlabs/sunrisesunset/SunriseSunsetCalculator.getOfficialSunriseForDate:(Ljava/util/Calendar;)Ljava/lang/String; │ │ │ │ - 301: astore 10 │ │ │ │ - 303: aload_0 │ │ │ │ - 304: aload 9 │ │ │ │ - 306: aload 10 │ │ │ │ - 308: aload 16 │ │ │ │ - 310: invokevirtual #162 // Method assertTimeEquals:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ - 313: aload 15 │ │ │ │ - 315: iconst_5 │ │ │ │ - 316: aaload │ │ │ │ - 317: astore 9 │ │ │ │ - 319: aload 18 │ │ │ │ - 321: aload 17 │ │ │ │ - 323: invokevirtual #181 // Method com/luckycatlabs/sunrisesunset/SunriseSunsetCalculator.getOfficialSunsetForDate:(Ljava/util/Calendar;)Ljava/lang/String; │ │ │ │ - 326: astore 10 │ │ │ │ - 328: aload_0 │ │ │ │ - 329: aload 9 │ │ │ │ - 331: aload 10 │ │ │ │ - 333: aload 16 │ │ │ │ - 335: invokevirtual #162 // Method assertTimeEquals:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ - 338: aload 15 │ │ │ │ - 340: iconst_3 │ │ │ │ - 341: aaload │ │ │ │ - 342: astore 9 │ │ │ │ - 344: aload 18 │ │ │ │ - 346: aload 17 │ │ │ │ - 348: invokevirtual #185 // Method com/luckycatlabs/sunrisesunset/SunriseSunsetCalculator.getCivilSunriseForDate:(Ljava/util/Calendar;)Ljava/lang/String; │ │ │ │ - 351: astore 10 │ │ │ │ - 353: aload_0 │ │ │ │ - 354: aload 9 │ │ │ │ - 356: aload 10 │ │ │ │ - 358: aload 16 │ │ │ │ - 360: invokevirtual #162 // Method assertTimeEquals:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ - 363: bipush 6 │ │ │ │ - 365: istore 14 │ │ │ │ - 367: aload 15 │ │ │ │ - 369: iload 14 │ │ │ │ - 371: aaload │ │ │ │ - 372: astore 9 │ │ │ │ - 374: aload 18 │ │ │ │ - 376: aload 17 │ │ │ │ - 378: invokevirtual #189 // Method com/luckycatlabs/sunrisesunset/SunriseSunsetCalculator.getCivilSunsetForDate:(Ljava/util/Calendar;)Ljava/lang/String; │ │ │ │ - 381: astore 10 │ │ │ │ - 383: aload_0 │ │ │ │ - 384: aload 9 │ │ │ │ - 386: aload 10 │ │ │ │ - 388: aload 16 │ │ │ │ - 390: invokevirtual #162 // Method assertTimeEquals:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ - 393: goto 117 │ │ │ │ - 396: iload 5 │ │ │ │ - 398: iconst_1 │ │ │ │ - 399: iadd │ │ │ │ - 400: istore_3 │ │ │ │ - 401: iload_3 │ │ │ │ - 402: istore 5 │ │ │ │ - 404: goto 15 │ │ │ │ - 407: return │ │ │ │ + 9: iload_3 │ │ │ │ + 10: iload_2 │ │ │ │ + 11: if_icmpge 392 │ │ │ │ + 14: aload_1 │ │ │ │ + 15: iload_3 │ │ │ │ + 16: aaload │ │ │ │ + 17: astore 4 │ │ │ │ + 19: getstatic #90 // Field driver:Lcom/luckycatlabs/sunrisesunset/util/CSVTestDriver; │ │ │ │ + 22: aload 4 │ │ │ │ + 24: invokevirtual #112 // Method com/luckycatlabs/sunrisesunset/util/CSVTestDriver.getData:(Ljava/lang/String;)Ljava/util/List; │ │ │ │ + 27: astore 5 │ │ │ │ + 29: aload 4 │ │ │ │ + 31: ldc #114 // String \\# │ │ │ │ + 33: invokevirtual #44 // Method java/lang/String.split:(Ljava/lang/String;)[Ljava/lang/String; │ │ │ │ + 36: astore 6 │ │ │ │ + 38: aload 6 │ │ │ │ + 40: iconst_1 │ │ │ │ + 41: aaload │ │ │ │ + 42: ldc #116 // String \\. │ │ │ │ + 44: invokevirtual #44 // Method java/lang/String.split:(Ljava/lang/String;)[Ljava/lang/String; │ │ │ │ + 47: astore 7 │ │ │ │ + 49: aconst_null │ │ │ │ + 50: astore 8 │ │ │ │ + 52: aload 7 │ │ │ │ + 54: iconst_0 │ │ │ │ + 55: aaload │ │ │ │ + 56: astore 7 │ │ │ │ + 58: bipush 45 │ │ │ │ + 60: istore 9 │ │ │ │ + 62: bipush 47 │ │ │ │ + 64: istore 10 │ │ │ │ + 66: aload 7 │ │ │ │ + 68: iload 9 │ │ │ │ + 70: iload 10 │ │ │ │ + 72: invokevirtual #48 // Method java/lang/String.replace:(CC)Ljava/lang/String; │ │ │ │ + 75: astore 11 │ │ │ │ + 77: aload 6 │ │ │ │ + 79: iconst_0 │ │ │ │ + 80: aaload │ │ │ │ + 81: astore 7 │ │ │ │ + 83: aload_0 │ │ │ │ + 84: aload 7 │ │ │ │ + 86: invokespecial #122 // Method createLocation:(Ljava/lang/String;)Lcom/luckycatlabs/sunrisesunset/dto/Location; │ │ │ │ + 89: astore 7 │ │ │ │ + 91: aload_0 │ │ │ │ + 92: aload 7 │ │ │ │ + 94: putfield #126 // Field location:Lcom/luckycatlabs/sunrisesunset/dto/Location; │ │ │ │ + 97: aload 5 │ │ │ │ + 99: invokeinterface #132, 1 // InterfaceMethod java/util/List.iterator:()Ljava/util/Iterator; │ │ │ │ + 104: astore 7 │ │ │ │ + 106: aload 7 │ │ │ │ + 108: invokeinterface #138, 1 // InterfaceMethod java/util/Iterator.hasNext:()Z │ │ │ │ + 113: istore 9 │ │ │ │ + 115: iload 9 │ │ │ │ + 117: ifeq 385 │ │ │ │ + 120: aload 7 │ │ │ │ + 122: invokeinterface #142, 1 // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object; │ │ │ │ + 127: checkcast #143 // class "[Ljava/lang/String;" │ │ │ │ + 130: astore 12 │ │ │ │ + 132: aload 12 │ │ │ │ + 134: iconst_0 │ │ │ │ + 135: aaload │ │ │ │ + 136: astore 13 │ │ │ │ + 138: aload 13 │ │ │ │ + 140: ldc #145 // String \\/ │ │ │ │ + 142: invokevirtual #44 // Method java/lang/String.split:(Ljava/lang/String;)[Ljava/lang/String; │ │ │ │ + 145: astore 8 │ │ │ │ + 147: aload_0 │ │ │ │ + 148: aload 8 │ │ │ │ + 150: invokespecial #149 // Method createCalendar:([Ljava/lang/String;)Ljava/util/Calendar; │ │ │ │ + 153: astore 14 │ │ │ │ + 155: new #151 // class com/luckycatlabs/sunrisesunset/SunriseSunsetCalculator │ │ │ │ + 158: astore 15 │ │ │ │ + 160: aload_0 │ │ │ │ + 161: getfield #126 // Field location:Lcom/luckycatlabs/sunrisesunset/dto/Location; │ │ │ │ + 164: astore 8 │ │ │ │ + 166: aload 15 │ │ │ │ + 168: aload 8 │ │ │ │ + 170: aload 11 │ │ │ │ + 172: invokespecial #154 // Method com/luckycatlabs/sunrisesunset/SunriseSunsetCalculator."":(Lcom/luckycatlabs/sunrisesunset/dto/Location;Ljava/lang/String;)V │ │ │ │ + 175: aload 12 │ │ │ │ + 177: iconst_1 │ │ │ │ + 178: aaload │ │ │ │ + 179: astore 8 │ │ │ │ + 181: aload 15 │ │ │ │ + 183: aload 14 │ │ │ │ + 185: invokevirtual #158 // Method com/luckycatlabs/sunrisesunset/SunriseSunsetCalculator.getAstronomicalSunriseForDate:(Ljava/util/Calendar;)Ljava/lang/String; │ │ │ │ + 188: astore 16 │ │ │ │ + 190: aload_0 │ │ │ │ + 191: aload 8 │ │ │ │ + 193: aload 16 │ │ │ │ + 195: aload 13 │ │ │ │ + 197: invokevirtual #162 // Method assertTimeEquals:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ + 200: aload 12 │ │ │ │ + 202: bipush 8 │ │ │ │ + 204: aaload │ │ │ │ + 205: astore 8 │ │ │ │ + 207: aload 15 │ │ │ │ + 209: aload 14 │ │ │ │ + 211: invokevirtual #166 // Method com/luckycatlabs/sunrisesunset/SunriseSunsetCalculator.getAstronomicalSunsetForDate:(Ljava/util/Calendar;)Ljava/lang/String; │ │ │ │ + 214: astore 16 │ │ │ │ + 216: aload_0 │ │ │ │ + 217: aload 8 │ │ │ │ + 219: aload 16 │ │ │ │ + 221: aload 13 │ │ │ │ + 223: invokevirtual #162 // Method assertTimeEquals:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ + 226: aload 12 │ │ │ │ + 228: iconst_2 │ │ │ │ + 229: aaload │ │ │ │ + 230: astore 8 │ │ │ │ + 232: aload 15 │ │ │ │ + 234: aload 14 │ │ │ │ + 236: invokevirtual #169 // Method com/luckycatlabs/sunrisesunset/SunriseSunsetCalculator.getNauticalSunriseForDate:(Ljava/util/Calendar;)Ljava/lang/String; │ │ │ │ + 239: astore 16 │ │ │ │ + 241: aload_0 │ │ │ │ + 242: aload 8 │ │ │ │ + 244: aload 16 │ │ │ │ + 246: aload 13 │ │ │ │ + 248: invokevirtual #162 // Method assertTimeEquals:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ + 251: aload 12 │ │ │ │ + 253: bipush 7 │ │ │ │ + 255: aaload │ │ │ │ + 256: astore 8 │ │ │ │ + 258: aload 15 │ │ │ │ + 260: aload 14 │ │ │ │ + 262: invokevirtual #173 // Method com/luckycatlabs/sunrisesunset/SunriseSunsetCalculator.getNauticalSunsetForDate:(Ljava/util/Calendar;)Ljava/lang/String; │ │ │ │ + 265: astore 16 │ │ │ │ + 267: aload_0 │ │ │ │ + 268: aload 8 │ │ │ │ + 270: aload 16 │ │ │ │ + 272: aload 13 │ │ │ │ + 274: invokevirtual #162 // Method assertTimeEquals:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ + 277: aload 12 │ │ │ │ + 279: iconst_4 │ │ │ │ + 280: aaload │ │ │ │ + 281: astore 8 │ │ │ │ + 283: aload 15 │ │ │ │ + 285: aload 14 │ │ │ │ + 287: invokevirtual #177 // Method com/luckycatlabs/sunrisesunset/SunriseSunsetCalculator.getOfficialSunriseForDate:(Ljava/util/Calendar;)Ljava/lang/String; │ │ │ │ + 290: astore 16 │ │ │ │ + 292: aload_0 │ │ │ │ + 293: aload 8 │ │ │ │ + 295: aload 16 │ │ │ │ + 297: aload 13 │ │ │ │ + 299: invokevirtual #162 // Method assertTimeEquals:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ + 302: aload 12 │ │ │ │ + 304: iconst_5 │ │ │ │ + 305: aaload │ │ │ │ + 306: astore 8 │ │ │ │ + 308: aload 15 │ │ │ │ + 310: aload 14 │ │ │ │ + 312: invokevirtual #181 // Method com/luckycatlabs/sunrisesunset/SunriseSunsetCalculator.getOfficialSunsetForDate:(Ljava/util/Calendar;)Ljava/lang/String; │ │ │ │ + 315: astore 16 │ │ │ │ + 317: aload_0 │ │ │ │ + 318: aload 8 │ │ │ │ + 320: aload 16 │ │ │ │ + 322: aload 13 │ │ │ │ + 324: invokevirtual #162 // Method assertTimeEquals:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ + 327: aload 12 │ │ │ │ + 329: iconst_3 │ │ │ │ + 330: aaload │ │ │ │ + 331: astore 8 │ │ │ │ + 333: aload 15 │ │ │ │ + 335: aload 14 │ │ │ │ + 337: invokevirtual #185 // Method com/luckycatlabs/sunrisesunset/SunriseSunsetCalculator.getCivilSunriseForDate:(Ljava/util/Calendar;)Ljava/lang/String; │ │ │ │ + 340: astore 16 │ │ │ │ + 342: aload_0 │ │ │ │ + 343: aload 8 │ │ │ │ + 345: aload 16 │ │ │ │ + 347: aload 13 │ │ │ │ + 349: invokevirtual #162 // Method assertTimeEquals:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ + 352: bipush 6 │ │ │ │ + 354: istore 9 │ │ │ │ + 356: aload 12 │ │ │ │ + 358: iload 9 │ │ │ │ + 360: aaload │ │ │ │ + 361: astore 8 │ │ │ │ + 363: aload 15 │ │ │ │ + 365: aload 14 │ │ │ │ + 367: invokevirtual #189 // Method com/luckycatlabs/sunrisesunset/SunriseSunsetCalculator.getCivilSunsetForDate:(Ljava/util/Calendar;)Ljava/lang/String; │ │ │ │ + 370: astore 16 │ │ │ │ + 372: aload_0 │ │ │ │ + 373: aload 8 │ │ │ │ + 375: aload 16 │ │ │ │ + 377: aload 13 │ │ │ │ + 379: invokevirtual #162 // Method assertTimeEquals:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ + 382: goto 106 │ │ │ │ + 385: iload_3 │ │ │ │ + 386: iconst_1 │ │ │ │ + 387: iadd │ │ │ │ + 388: istore_3 │ │ │ │ + 389: goto 9 │ │ │ │ + 392: return │ │ │ │ } ├── smali/junit/framework/Assert.smali │ @@ -42,30 +42,30 @@ │ invoke-static {v0, p0, p1}, Ljunit/framework/Assert;->assertEquals(Ljava/lang/String;CC)V │ │ .line 180 │ return-void │ .end method │ │ .method public static assertEquals(DDD)V │ - .locals 7 │ + .locals 8 │ .param p0, "expected" # D │ .param p2, "actual" # D │ .param p4, "delta" # D │ │ .prologue │ .line 109 │ - const/4 v0, 0x0 │ + const/4 v1, 0x0 │ │ - move-wide v1, p0 │ + move-wide v2, p0 │ │ - move-wide v3, p2 │ + move-wide v4, p2 │ │ - move-wide v5, p4 │ + move-wide v6, p4 │ │ - invoke-static/range {v0 .. v6}, Ljunit/framework/Assert;->assertEquals(Ljava/lang/String;DDD)V │ + invoke-static/range {v1 .. v7}, Ljunit/framework/Assert;->assertEquals(Ljava/lang/String;DDD)V │ │ .line 110 │ return-void │ .end method │ │ .method public static assertEquals(FFF)V │ .locals 1 │ @@ -95,15 +95,15 @@ │ invoke-static {v0, p0, p1}, Ljunit/framework/Assert;->assertEquals(Ljava/lang/String;II)V │ │ .line 206 │ return-void │ .end method │ │ .method public static assertEquals(JJ)V │ - .locals 1 │ + .locals 2 │ .param p0, "expected" # J │ .param p2, "actual" # J │ │ .prologue │ .line 140 │ const/4 v0, 0x0 │ │ @@ -169,15 +169,15 @@ │ invoke-static {p0, v0, v1}, Ljunit/framework/Assert;->assertEquals(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V │ │ .line 174 │ return-void │ .end method │ │ .method public static assertEquals(Ljava/lang/String;DDD)V │ - .locals 2 │ + .locals 3 │ .param p0, "message" # Ljava/lang/String; │ .param p1, "expected" # D │ .param p3, "actual" # D │ .param p5, "delta" # D │ │ .prologue │ .line 99 │ @@ -283,15 +283,15 @@ │ invoke-static {p0, v0, v1}, Ljunit/framework/Assert;->assertEquals(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V │ │ .line 200 │ return-void │ .end method │ │ .method public static assertEquals(Ljava/lang/String;JJ)V │ - .locals 2 │ + .locals 3 │ .param p0, "message" # Ljava/lang/String; │ .param p1, "expected" # J │ .param p3, "actual" # J │ │ .prologue │ .line 134 │ new-instance v0, Ljava/lang/Long; ├── smali/junit/textui/TestRunner.smali │ @@ -227,41 +227,41 @@ │ .line 113 │ invoke-virtual {p0}, Ljunit/textui/TestRunner;->createTestResult()Ljunit/framework/TestResult; │ │ move-result-object v2 │ │ .line 114 │ .local v2, "result":Ljunit/framework/TestResult; │ - iget-object v7, p0, Ljunit/textui/TestRunner;->fPrinter:Ljunit/textui/ResultPrinter; │ + iget-object v3, p0, Ljunit/textui/TestRunner;->fPrinter:Ljunit/textui/ResultPrinter; │ │ - invoke-virtual {v2, v7}, Ljunit/framework/TestResult;->addListener(Ljunit/framework/TestListener;)V │ + invoke-virtual {v2, v3}, Ljunit/framework/TestResult;->addListener(Ljunit/framework/TestListener;)V │ │ .line 115 │ invoke-static {}, Ljava/lang/System;->currentTimeMillis()J │ │ - move-result-wide v5 │ + move-result-wide v6 │ │ .line 116 │ - .local v5, "startTime":J │ + .local v6, "startTime":J │ invoke-interface {p1, v2}, Ljunit/framework/Test;->run(Ljunit/framework/TestResult;)V │ │ .line 117 │ invoke-static {}, Ljava/lang/System;->currentTimeMillis()J │ │ move-result-wide v0 │ │ .line 118 │ .local v0, "endTime":J │ - sub-long v3, v0, v5 │ + sub-long v4, v0, v6 │ │ .line 119 │ - .local v3, "runTime":J │ - iget-object v7, p0, Ljunit/textui/TestRunner;->fPrinter:Ljunit/textui/ResultPrinter; │ + .local v4, "runTime":J │ + iget-object v3, p0, Ljunit/textui/TestRunner;->fPrinter:Ljunit/textui/ResultPrinter; │ │ - invoke-virtual {v7, v2, v3, v4}, Ljunit/textui/ResultPrinter;->print(Ljunit/framework/TestResult;J)V │ + invoke-virtual {v3, v2, v4, v5}, Ljunit/textui/ResultPrinter;->print(Ljunit/framework/TestResult;J)V │ │ .line 121 │ invoke-virtual {p0, p2}, Ljunit/textui/TestRunner;->pause(Z)V │ │ .line 122 │ return-object v2 │ .end method ├── smali/junit/textui/ResultPrinter.smali │ @@ -70,30 +70,30 @@ │ invoke-virtual {v0, v1}, Ljava/io/PrintStream;->print(Ljava/lang/String;)V │ │ .line 120 │ return-void │ .end method │ │ .method protected elapsedTimeAsString(J)Ljava/lang/String; │ - .locals 5 │ + .locals 7 │ .param p1, "runTime" # J │ │ .prologue │ .line 102 │ invoke-static {}, Ljava/text/NumberFormat;->getInstance()Ljava/text/NumberFormat; │ │ move-result-object v0 │ │ - long-to-double v1, p1 │ + long-to-double v2, p1 │ │ - const-wide v3, 0x408f400000000000L # 1000.0 │ + const-wide v4, 0x408f400000000000L # 1000.0 │ │ - div-double/2addr v1, v3 │ + div-double/2addr v2, v4 │ │ - invoke-virtual {v0, v1, v2}, Ljava/text/NumberFormat;->format(D)Ljava/lang/String; │ + invoke-virtual {v0, v2, v3}, Ljava/text/NumberFormat;->format(D)Ljava/lang/String; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ .method public endTest(Ljunit/framework/Test;)V │ @@ -112,15 +112,15 @@ │ .line 106 │ iget-object v0, p0, Ljunit/textui/ResultPrinter;->fWriter:Ljava/io/PrintStream; │ │ return-object v0 │ .end method │ │ .method declared-synchronized print(Ljunit/framework/TestResult;J)V │ - .locals 1 │ + .locals 2 │ .param p1, "result" # Ljunit/framework/TestResult; │ .param p2, "runTime" # J │ │ .prologue │ .line 27 │ monitor-enter p0 ├── smali/junit/runner/BaseTestRunner.smali │ @@ -751,30 +751,30 @@ │ │ .prologue │ .line 214 │ return-void │ .end method │ │ .method public elapsedTimeAsString(J)Ljava/lang/String; │ - .locals 5 │ + .locals 7 │ .param p1, "runTime" # J │ │ .prologue │ .line 146 │ invoke-static {}, Ljava/text/NumberFormat;->getInstance()Ljava/text/NumberFormat; │ │ move-result-object v0 │ │ - long-to-double v1, p1 │ + long-to-double v2, p1 │ │ - const-wide v3, 0x408f400000000000L # 1000.0 │ + const-wide v4, 0x408f400000000000L # 1000.0 │ │ - div-double/2addr v1, v3 │ + div-double/2addr v2, v4 │ │ - invoke-virtual {v0, v1, v2}, Ljava/text/NumberFormat;->format(D)Ljava/lang/String; │ + invoke-virtual {v0, v2, v3}, Ljava/text/NumberFormat;->format(D)Ljava/lang/String; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ .method public declared-synchronized endTest(Ljunit/framework/Test;)V ├── smali/com/google/android/apps/dashclock/api/DashClockExtension$1$1.smali │ @@ -22,14 +22,15 @@ │ │ .field final synthetic val$reason:I │ │ │ # direct methods │ .method constructor (Lcom/google/android/apps/dashclock/api/DashClockExtension$1;I)V │ .locals 0 │ + .param p1, "this$1" # Lcom/google/android/apps/dashclock/api/DashClockExtension$1; │ │ .prologue │ .line 240 │ iput-object p1, p0, Lcom/google/android/apps/dashclock/api/DashClockExtension$1$1;->this$1:Lcom/google/android/apps/dashclock/api/DashClockExtension$1; │ │ iput p2, p0, Lcom/google/android/apps/dashclock/api/DashClockExtension$1$1;->val$reason:I ├── smali/com/google/android/apps/dashclock/api/DashClockExtension.smali │ @@ -166,14 +166,15 @@ │ │ const-string v2, "DashClockExtension:" │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v1 │ │ + .line 191 │ invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class; │ │ move-result-object v2 │ │ invoke-virtual {v2}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String; │ │ move-result-object v2 ├── smali/com/google/android/apps/dashclock/api/ExtensionData$1.smali │ @@ -53,15 +53,14 @@ │ invoke-direct {v0, p1, v1}, Lcom/google/android/apps/dashclock/api/ExtensionData;->(Landroid/os/Parcel;Lcom/google/android/apps/dashclock/api/ExtensionData$1;)V │ │ return-object v0 │ .end method │ │ .method public bridge synthetic createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; │ .locals 1 │ - .param p1, "x0" # Landroid/os/Parcel; │ │ .prologue │ .line 290 │ invoke-virtual {p0, p1}, Lcom/google/android/apps/dashclock/api/ExtensionData$1;->createFromParcel(Landroid/os/Parcel;)Lcom/google/android/apps/dashclock/api/ExtensionData; │ │ move-result-object v0 │ │ @@ -77,15 +76,14 @@ │ new-array v0, p1, [Lcom/google/android/apps/dashclock/api/ExtensionData; │ │ return-object v0 │ .end method │ │ .method public bridge synthetic newArray(I)[Ljava/lang/Object; │ .locals 1 │ - .param p1, "x0" # I │ │ .prologue │ .line 290 │ invoke-virtual {p0, p1}, Lcom/google/android/apps/dashclock/api/ExtensionData$1;->newArray(I)[Lcom/google/android/apps/dashclock/api/ExtensionData; │ │ move-result-object v0 ├── smali/com/google/android/apps/dashclock/api/ExtensionData.smali │ @@ -609,44 +609,48 @@ │ │ if-ne v4, v5, :cond_0 │ │ iget-object v4, v2, Lcom/google/android/apps/dashclock/api/ExtensionData;->mStatus:Ljava/lang/String; │ │ iget-object v5, p0, Lcom/google/android/apps/dashclock/api/ExtensionData;->mStatus:Ljava/lang/String; │ │ + .line 366 │ invoke-static {v4, v5}, Landroid/text/TextUtils;->equals(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_0 │ │ iget-object v4, v2, Lcom/google/android/apps/dashclock/api/ExtensionData;->mExpandedTitle:Ljava/lang/String; │ │ iget-object v5, p0, Lcom/google/android/apps/dashclock/api/ExtensionData;->mExpandedTitle:Ljava/lang/String; │ │ + .line 367 │ invoke-static {v4, v5}, Landroid/text/TextUtils;->equals(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_0 │ │ iget-object v4, v2, Lcom/google/android/apps/dashclock/api/ExtensionData;->mExpandedBody:Ljava/lang/String; │ │ iget-object v5, p0, Lcom/google/android/apps/dashclock/api/ExtensionData;->mExpandedBody:Ljava/lang/String; │ │ + .line 368 │ invoke-static {v4, v5}, Landroid/text/TextUtils;->equals(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_0 │ │ iget-object v4, v2, Lcom/google/android/apps/dashclock/api/ExtensionData;->mClickIntent:Landroid/content/Intent; │ │ iget-object v5, p0, Lcom/google/android/apps/dashclock/api/ExtensionData;->mClickIntent:Landroid/content/Intent; │ │ + .line 369 │ invoke-static {v4, v5}, Lcom/google/android/apps/dashclock/api/ExtensionData;->intentEquals(Landroid/content/Intent;Landroid/content/Intent;)Z │ :try_end_0 │ .catch Ljava/lang/ClassCastException; {:try_start_0 .. :try_end_0} :catch_0 │ │ move-result v4 │ │ if-eqz v4, :cond_0 ├── smali/com/google/android/apps/dashclock/api/DashClockExtension$1.smali │ @@ -17,14 +17,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/google/android/apps/dashclock/api/DashClockExtension; │ │ │ # direct methods │ .method constructor (Lcom/google/android/apps/dashclock/api/DashClockExtension;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/google/android/apps/dashclock/api/DashClockExtension; │ │ .prologue │ .line 209 │ iput-object p1, p0, Lcom/google/android/apps/dashclock/api/DashClockExtension$1;->this$0:Lcom/google/android/apps/dashclock/api/DashClockExtension; │ │ invoke-direct {p0}, Lcom/google/android/apps/dashclock/api/internal/IExtension$Stub;->()V ├── smali/com/luckycatlabs/sunrisesunset/SunriseSunsetCalculatorTest.smali │ @@ -311,15 +311,15 @@ │ invoke-virtual {p0, v0, v1, v2}, Lcom/luckycatlabs/sunrisesunset/SunriseSunsetCalculatorTest;->assertTimeEquals(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V │ │ .line 81 │ return-void │ .end method │ │ .method public testSpecificDateLocationAndTimezone()V │ - .locals 9 │ + .locals 10 │ .annotation runtime Lorg/junit/Test; │ .end annotation │ │ .prologue │ .line 85 │ new-instance v2, Lcom/luckycatlabs/sunrisesunset/dto/Location; │ │ @@ -367,48 +367,48 @@ │ .line 94 │ invoke-virtual {v0, v1}, Lcom/luckycatlabs/sunrisesunset/SunriseSunsetCalculator;->getOfficialSunriseCalendarForDate(Ljava/util/Calendar;)Ljava/util/Calendar; │ │ move-result-object v3 │ │ .line 95 │ .local v3, "officialSunriseCalendarForDate":Ljava/util/Calendar; │ - const-wide/16 v5, 0x16 │ + const-wide/16 v6, 0x16 │ │ - const/16 v7, 0xb │ + const/16 v5, 0xb │ │ - invoke-virtual {v3, v7}, Ljava/util/Calendar;->get(I)I │ + invoke-virtual {v3, v5}, Ljava/util/Calendar;->get(I)I │ │ - move-result v7 │ + move-result v5 │ │ - int-to-long v7, v7 │ + int-to-long v8, v5 │ │ - invoke-static {v5, v6, v7, v8}, Lorg/junit/Assert;->assertEquals(JJ)V │ + invoke-static {v6, v7, v8, v9}, Lorg/junit/Assert;->assertEquals(JJ)V │ │ .line 96 │ - const-wide/16 v5, 0x23 │ + const-wide/16 v6, 0x23 │ │ - const/16 v7, 0xc │ + const/16 v5, 0xc │ │ - invoke-virtual {v3, v7}, Ljava/util/Calendar;->get(I)I │ + invoke-virtual {v3, v5}, Ljava/util/Calendar;->get(I)I │ │ - move-result v7 │ + move-result v5 │ │ - int-to-long v7, v7 │ + int-to-long v8, v5 │ │ - invoke-static {v5, v6, v7, v8}, Lorg/junit/Assert;->assertEquals(JJ)V │ + invoke-static {v6, v7, v8, v9}, Lorg/junit/Assert;->assertEquals(JJ)V │ │ .line 97 │ - const-wide/16 v5, 0x6 │ + const-wide/16 v6, 0x6 │ │ - const/4 v7, 0x5 │ + const/4 v5, 0x5 │ │ - invoke-virtual {v3, v7}, Ljava/util/Calendar;->get(I)I │ + invoke-virtual {v3, v5}, Ljava/util/Calendar;->get(I)I │ │ - move-result v7 │ + move-result v5 │ │ - int-to-long v7, v7 │ + int-to-long v8, v5 │ │ - invoke-static {v5, v6, v7, v8}, Lorg/junit/Assert;->assertEquals(JJ)V │ + invoke-static {v6, v7, v8, v9}, Lorg/junit/Assert;->assertEquals(JJ)V │ │ .line 98 │ return-void │ .end method ├── smali/com/luckycatlabs/sunrisesunset/SunriseSunsetDataTest.smali │ @@ -247,243 +247,229 @@ │ .line 44 │ return-void │ .end method │ │ │ # virtual methods │ .method public testRiseAndSetTimes()V │ - .locals 15 │ + .locals 14 │ .annotation runtime Lorg/junit/Test; │ .end annotation │ │ .prologue │ .line 48 │ - sget-object v0, Lcom/luckycatlabs/sunrisesunset/SunriseSunsetDataTest;->dataSetNames:[Ljava/lang/String; │ + sget-object v9, Lcom/luckycatlabs/sunrisesunset/SunriseSunsetDataTest;->dataSetNames:[Ljava/lang/String; │ │ - .local v0, "arr$":[Ljava/lang/String; │ - array-length v9, v0 │ + array-length v10, v9 │ │ - .local v9, "len$":I │ - const/4 v7, 0x0 │ + const/4 v8, 0x0 │ │ - .local v7, "i$":I │ - move v8, v7 │ - │ - .end local v7 # "i$":I │ - .local v8, "i$":I │ :goto_0 │ - if-ge v8, v9, :cond_1 │ + if-ge v8, v10, :cond_1 │ │ - aget-object v4, v0, v8 │ + aget-object v3, v9, v8 │ │ .line 49 │ - .local v4, "dataSetName":Ljava/lang/String; │ - sget-object v12, Lcom/luckycatlabs/sunrisesunset/SunriseSunsetDataTest;->driver:Lcom/luckycatlabs/sunrisesunset/util/CSVTestDriver; │ + .local v3, "dataSetName":Ljava/lang/String; │ + sget-object v11, Lcom/luckycatlabs/sunrisesunset/SunriseSunsetDataTest;->driver:Lcom/luckycatlabs/sunrisesunset/util/CSVTestDriver; │ │ - invoke-virtual {v12, v4}, Lcom/luckycatlabs/sunrisesunset/util/CSVTestDriver;->getData(Ljava/lang/String;)Ljava/util/List; │ + invoke-virtual {v11, v3}, Lcom/luckycatlabs/sunrisesunset/util/CSVTestDriver;->getData(Ljava/lang/String;)Ljava/util/List; │ │ - move-result-object v3 │ + move-result-object v2 │ │ .line 50 │ - .local v3, "data":Ljava/util/List;, "Ljava/util/List<[Ljava/lang/String;>;" │ - const-string v12, "\\#" │ + .local v2, "data":Ljava/util/List;, "Ljava/util/List<[Ljava/lang/String;>;" │ + const-string v11, "\\#" │ │ - invoke-virtual {v4, v12}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; │ + invoke-virtual {v3, v11}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; │ │ - move-result-object v5 │ + move-result-object v4 │ │ .line 51 │ - .local v5, "dataSetNameParts":[Ljava/lang/String; │ - const/4 v12, 0x1 │ + .local v4, "dataSetNameParts":[Ljava/lang/String; │ + const/4 v11, 0x1 │ │ - aget-object v12, v5, v12 │ + aget-object v11, v4, v11 │ │ - const-string v13, "\\." │ + const-string v12, "\\." │ │ - invoke-virtual {v12, v13}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; │ + invoke-virtual {v11, v12}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; │ │ - move-result-object v12 │ + move-result-object v11 │ │ - const/4 v13, 0x0 │ + const/4 v12, 0x0 │ │ - aget-object v12, v12, v13 │ + aget-object v11, v11, v12 │ │ - const/16 v13, 0x2d │ + const/16 v12, 0x2d │ │ - const/16 v14, 0x2f │ + const/16 v13, 0x2f │ │ - invoke-virtual {v12, v13, v14}, Ljava/lang/String;->replace(CC)Ljava/lang/String; │ + invoke-virtual {v11, v12, v13}, Ljava/lang/String;->replace(CC)Ljava/lang/String; │ │ - move-result-object v11 │ + move-result-object v7 │ │ .line 52 │ - .local v11, "timeZoneName":Ljava/lang/String; │ - const/4 v12, 0x0 │ + .local v7, "timeZoneName":Ljava/lang/String; │ + const/4 v11, 0x0 │ │ - aget-object v12, v5, v12 │ + aget-object v11, v4, v11 │ │ - invoke-direct {p0, v12}, Lcom/luckycatlabs/sunrisesunset/SunriseSunsetDataTest;->createLocation(Ljava/lang/String;)Lcom/luckycatlabs/sunrisesunset/dto/Location; │ + invoke-direct {p0, v11}, Lcom/luckycatlabs/sunrisesunset/SunriseSunsetDataTest;->createLocation(Ljava/lang/String;)Lcom/luckycatlabs/sunrisesunset/dto/Location; │ │ - move-result-object v12 │ + move-result-object v11 │ │ - iput-object v12, p0, Lcom/luckycatlabs/sunrisesunset/SunriseSunsetDataTest;->location:Lcom/luckycatlabs/sunrisesunset/dto/Location; │ + iput-object v11, p0, Lcom/luckycatlabs/sunrisesunset/SunriseSunsetDataTest;->location:Lcom/luckycatlabs/sunrisesunset/dto/Location; │ │ .line 54 │ - invoke-interface {v3}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface {v2}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v7 │ + move-result-object v11 │ │ - .end local v8 # "i$":I │ - .local v7, "i$":Ljava/util/Iterator; │ :goto_1 │ - invoke-interface {v7}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v11}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v12 │ │ if-eqz v12, :cond_0 │ │ - invoke-interface {v7}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v11}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v10 │ + move-result-object v6 │ │ - check-cast v10, [Ljava/lang/String; │ + check-cast v6, [Ljava/lang/String; │ │ .line 55 │ - .local v10, "line":[Ljava/lang/String; │ + .local v6, "line":[Ljava/lang/String; │ const/4 v12, 0x0 │ │ - aget-object v6, v10, v12 │ + aget-object v5, v6, v12 │ │ .line 56 │ - .local v6, "date":Ljava/lang/String; │ + .local v5, "date":Ljava/lang/String; │ const-string v12, "\\/" │ │ - invoke-virtual {v6, v12}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; │ + invoke-virtual {v5, v12}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; │ │ move-result-object v12 │ │ invoke-direct {p0, v12}, Lcom/luckycatlabs/sunrisesunset/SunriseSunsetDataTest;->createCalendar([Ljava/lang/String;)Ljava/util/Calendar; │ │ - move-result-object v2 │ + move-result-object v1 │ │ .line 57 │ - .local v2, "calendar":Ljava/util/Calendar; │ - new-instance v1, Lcom/luckycatlabs/sunrisesunset/SunriseSunsetCalculator; │ + .local v1, "calendar":Ljava/util/Calendar; │ + new-instance v0, Lcom/luckycatlabs/sunrisesunset/SunriseSunsetCalculator; │ │ iget-object v12, p0, Lcom/luckycatlabs/sunrisesunset/SunriseSunsetDataTest;->location:Lcom/luckycatlabs/sunrisesunset/dto/Location; │ │ - invoke-direct {v1, v12, v11}, Lcom/luckycatlabs/sunrisesunset/SunriseSunsetCalculator;->(Lcom/luckycatlabs/sunrisesunset/dto/Location;Ljava/lang/String;)V │ + invoke-direct {v0, v12, v7}, Lcom/luckycatlabs/sunrisesunset/SunriseSunsetCalculator;->(Lcom/luckycatlabs/sunrisesunset/dto/Location;Ljava/lang/String;)V │ │ .line 59 │ - .local v1, "calc":Lcom/luckycatlabs/sunrisesunset/SunriseSunsetCalculator; │ + .local v0, "calc":Lcom/luckycatlabs/sunrisesunset/SunriseSunsetCalculator; │ const/4 v12, 0x1 │ │ - aget-object v12, v10, v12 │ + aget-object v12, v6, v12 │ │ - invoke-virtual {v1, v2}, Lcom/luckycatlabs/sunrisesunset/SunriseSunsetCalculator;->getAstronomicalSunriseForDate(Ljava/util/Calendar;)Ljava/lang/String; │ + invoke-virtual {v0, v1}, Lcom/luckycatlabs/sunrisesunset/SunriseSunsetCalculator;->getAstronomicalSunriseForDate(Ljava/util/Calendar;)Ljava/lang/String; │ │ move-result-object v13 │ │ - invoke-virtual {p0, v12, v13, v6}, Lcom/luckycatlabs/sunrisesunset/SunriseSunsetDataTest;->assertTimeEquals(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V │ + invoke-virtual {p0, v12, v13, v5}, Lcom/luckycatlabs/sunrisesunset/SunriseSunsetDataTest;->assertTimeEquals(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V │ │ .line 60 │ const/16 v12, 0x8 │ │ - aget-object v12, v10, v12 │ + aget-object v12, v6, v12 │ │ - invoke-virtual {v1, v2}, Lcom/luckycatlabs/sunrisesunset/SunriseSunsetCalculator;->getAstronomicalSunsetForDate(Ljava/util/Calendar;)Ljava/lang/String; │ + invoke-virtual {v0, v1}, Lcom/luckycatlabs/sunrisesunset/SunriseSunsetCalculator;->getAstronomicalSunsetForDate(Ljava/util/Calendar;)Ljava/lang/String; │ │ move-result-object v13 │ │ - invoke-virtual {p0, v12, v13, v6}, Lcom/luckycatlabs/sunrisesunset/SunriseSunsetDataTest;->assertTimeEquals(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V │ + invoke-virtual {p0, v12, v13, v5}, Lcom/luckycatlabs/sunrisesunset/SunriseSunsetDataTest;->assertTimeEquals(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V │ │ .line 61 │ const/4 v12, 0x2 │ │ - aget-object v12, v10, v12 │ + aget-object v12, v6, v12 │ │ - invoke-virtual {v1, v2}, Lcom/luckycatlabs/sunrisesunset/SunriseSunsetCalculator;->getNauticalSunriseForDate(Ljava/util/Calendar;)Ljava/lang/String; │ + invoke-virtual {v0, v1}, Lcom/luckycatlabs/sunrisesunset/SunriseSunsetCalculator;->getNauticalSunriseForDate(Ljava/util/Calendar;)Ljava/lang/String; │ │ move-result-object v13 │ │ - invoke-virtual {p0, v12, v13, v6}, Lcom/luckycatlabs/sunrisesunset/SunriseSunsetDataTest;->assertTimeEquals(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V │ + invoke-virtual {p0, v12, v13, v5}, Lcom/luckycatlabs/sunrisesunset/SunriseSunsetDataTest;->assertTimeEquals(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V │ │ .line 62 │ const/4 v12, 0x7 │ │ - aget-object v12, v10, v12 │ + aget-object v12, v6, v12 │ │ - invoke-virtual {v1, v2}, Lcom/luckycatlabs/sunrisesunset/SunriseSunsetCalculator;->getNauticalSunsetForDate(Ljava/util/Calendar;)Ljava/lang/String; │ + invoke-virtual {v0, v1}, Lcom/luckycatlabs/sunrisesunset/SunriseSunsetCalculator;->getNauticalSunsetForDate(Ljava/util/Calendar;)Ljava/lang/String; │ │ move-result-object v13 │ │ - invoke-virtual {p0, v12, v13, v6}, Lcom/luckycatlabs/sunrisesunset/SunriseSunsetDataTest;->assertTimeEquals(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V │ + invoke-virtual {p0, v12, v13, v5}, Lcom/luckycatlabs/sunrisesunset/SunriseSunsetDataTest;->assertTimeEquals(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V │ │ .line 63 │ const/4 v12, 0x4 │ │ - aget-object v12, v10, v12 │ + aget-object v12, v6, v12 │ │ - invoke-virtual {v1, v2}, Lcom/luckycatlabs/sunrisesunset/SunriseSunsetCalculator;->getOfficialSunriseForDate(Ljava/util/Calendar;)Ljava/lang/String; │ + invoke-virtual {v0, v1}, Lcom/luckycatlabs/sunrisesunset/SunriseSunsetCalculator;->getOfficialSunriseForDate(Ljava/util/Calendar;)Ljava/lang/String; │ │ move-result-object v13 │ │ - invoke-virtual {p0, v12, v13, v6}, Lcom/luckycatlabs/sunrisesunset/SunriseSunsetDataTest;->assertTimeEquals(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V │ + invoke-virtual {p0, v12, v13, v5}, Lcom/luckycatlabs/sunrisesunset/SunriseSunsetDataTest;->assertTimeEquals(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V │ │ .line 64 │ const/4 v12, 0x5 │ │ - aget-object v12, v10, v12 │ + aget-object v12, v6, v12 │ │ - invoke-virtual {v1, v2}, Lcom/luckycatlabs/sunrisesunset/SunriseSunsetCalculator;->getOfficialSunsetForDate(Ljava/util/Calendar;)Ljava/lang/String; │ + invoke-virtual {v0, v1}, Lcom/luckycatlabs/sunrisesunset/SunriseSunsetCalculator;->getOfficialSunsetForDate(Ljava/util/Calendar;)Ljava/lang/String; │ │ move-result-object v13 │ │ - invoke-virtual {p0, v12, v13, v6}, Lcom/luckycatlabs/sunrisesunset/SunriseSunsetDataTest;->assertTimeEquals(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V │ + invoke-virtual {p0, v12, v13, v5}, Lcom/luckycatlabs/sunrisesunset/SunriseSunsetDataTest;->assertTimeEquals(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V │ │ .line 65 │ const/4 v12, 0x3 │ │ - aget-object v12, v10, v12 │ + aget-object v12, v6, v12 │ │ - invoke-virtual {v1, v2}, Lcom/luckycatlabs/sunrisesunset/SunriseSunsetCalculator;->getCivilSunriseForDate(Ljava/util/Calendar;)Ljava/lang/String; │ + invoke-virtual {v0, v1}, Lcom/luckycatlabs/sunrisesunset/SunriseSunsetCalculator;->getCivilSunriseForDate(Ljava/util/Calendar;)Ljava/lang/String; │ │ move-result-object v13 │ │ - invoke-virtual {p0, v12, v13, v6}, Lcom/luckycatlabs/sunrisesunset/SunriseSunsetDataTest;->assertTimeEquals(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V │ + invoke-virtual {p0, v12, v13, v5}, Lcom/luckycatlabs/sunrisesunset/SunriseSunsetDataTest;->assertTimeEquals(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V │ │ .line 66 │ const/4 v12, 0x6 │ │ - aget-object v12, v10, v12 │ + aget-object v12, v6, v12 │ │ - invoke-virtual {v1, v2}, Lcom/luckycatlabs/sunrisesunset/SunriseSunsetCalculator;->getCivilSunsetForDate(Ljava/util/Calendar;)Ljava/lang/String; │ + invoke-virtual {v0, v1}, Lcom/luckycatlabs/sunrisesunset/SunriseSunsetCalculator;->getCivilSunsetForDate(Ljava/util/Calendar;)Ljava/lang/String; │ │ move-result-object v13 │ │ - invoke-virtual {p0, v12, v13, v6}, Lcom/luckycatlabs/sunrisesunset/SunriseSunsetDataTest;->assertTimeEquals(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V │ + invoke-virtual {p0, v12, v13, v5}, Lcom/luckycatlabs/sunrisesunset/SunriseSunsetDataTest;->assertTimeEquals(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V │ │ goto :goto_1 │ │ .line 48 │ - .end local v1 # "calc":Lcom/luckycatlabs/sunrisesunset/SunriseSunsetCalculator; │ - .end local v2 # "calendar":Ljava/util/Calendar; │ - .end local v6 # "date":Ljava/lang/String; │ - .end local v10 # "line":[Ljava/lang/String; │ + .end local v0 # "calc":Lcom/luckycatlabs/sunrisesunset/SunriseSunsetCalculator; │ + .end local v1 # "calendar":Ljava/util/Calendar; │ + .end local v5 # "date":Ljava/lang/String; │ + .end local v6 # "line":[Ljava/lang/String; │ :cond_0 │ - add-int/lit8 v7, v8, 0x1 │ - │ - .local v7, "i$":I │ - move v8, v7 │ + add-int/lit8 v8, v8, 0x1 │ │ - .end local v7 # "i$":I │ - .restart local v8 # "i$":I │ goto/16 :goto_0 │ │ .line 69 │ - .end local v3 # "data":Ljava/util/List;, "Ljava/util/List<[Ljava/lang/String;>;" │ - .end local v4 # "dataSetName":Ljava/lang/String; │ - .end local v5 # "dataSetNameParts":[Ljava/lang/String; │ - .end local v11 # "timeZoneName":Ljava/lang/String; │ + .end local v2 # "data":Ljava/util/List;, "Ljava/util/List<[Ljava/lang/String;>;" │ + .end local v3 # "dataSetName":Ljava/lang/String; │ + .end local v4 # "dataSetNameParts":[Ljava/lang/String; │ + .end local v7 # "timeZoneName":Ljava/lang/String; │ :cond_1 │ return-void │ .end method ├── smali/com/luckycatlabs/sunrisesunset/Zenith.smali │ @@ -15,50 +15,50 @@ │ │ # instance fields │ .field private final degrees:Ljava/math/BigDecimal; │ │ │ # direct methods │ .method static constructor ()V │ - .locals 3 │ + .locals 4 │ │ .prologue │ .line 26 │ new-instance v0, Lcom/luckycatlabs/sunrisesunset/Zenith; │ │ - const-wide/high16 v1, 0x405b000000000000L # 108.0 │ + const-wide/high16 v2, 0x405b000000000000L # 108.0 │ │ - invoke-direct {v0, v1, v2}, Lcom/luckycatlabs/sunrisesunset/Zenith;->(D)V │ + invoke-direct {v0, v2, v3}, Lcom/luckycatlabs/sunrisesunset/Zenith;->(D)V │ │ sput-object v0, Lcom/luckycatlabs/sunrisesunset/Zenith;->ASTRONOMICAL:Lcom/luckycatlabs/sunrisesunset/Zenith; │ │ .line 29 │ new-instance v0, Lcom/luckycatlabs/sunrisesunset/Zenith; │ │ - const-wide v1, 0x4059800000000000L # 102.0 │ + const-wide v2, 0x4059800000000000L # 102.0 │ │ - invoke-direct {v0, v1, v2}, Lcom/luckycatlabs/sunrisesunset/Zenith;->(D)V │ + invoke-direct {v0, v2, v3}, Lcom/luckycatlabs/sunrisesunset/Zenith;->(D)V │ │ sput-object v0, Lcom/luckycatlabs/sunrisesunset/Zenith;->NAUTICAL:Lcom/luckycatlabs/sunrisesunset/Zenith; │ │ .line 32 │ new-instance v0, Lcom/luckycatlabs/sunrisesunset/Zenith; │ │ - const-wide/high16 v1, 0x4058000000000000L # 96.0 │ + const-wide/high16 v2, 0x4058000000000000L # 96.0 │ │ - invoke-direct {v0, v1, v2}, Lcom/luckycatlabs/sunrisesunset/Zenith;->(D)V │ + invoke-direct {v0, v2, v3}, Lcom/luckycatlabs/sunrisesunset/Zenith;->(D)V │ │ sput-object v0, Lcom/luckycatlabs/sunrisesunset/Zenith;->CIVIL:Lcom/luckycatlabs/sunrisesunset/Zenith; │ │ .line 35 │ new-instance v0, Lcom/luckycatlabs/sunrisesunset/Zenith; │ │ - const-wide v1, 0x4056b554c985f06fL # 90.8333 │ + const-wide v2, 0x4056b554c985f06fL # 90.8333 │ │ - invoke-direct {v0, v1, v2}, Lcom/luckycatlabs/sunrisesunset/Zenith;->(D)V │ + invoke-direct {v0, v2, v3}, Lcom/luckycatlabs/sunrisesunset/Zenith;->(D)V │ │ sput-object v0, Lcom/luckycatlabs/sunrisesunset/Zenith;->OFFICIAL:Lcom/luckycatlabs/sunrisesunset/Zenith; │ │ return-void │ .end method │ │ .method public constructor (D)V ├── smali/com/luckycatlabs/sunrisesunset/calculator/SolarEventCalculatorTest.smali │ @@ -101,15 +101,15 @@ │ invoke-static {v0, v1}, Lorg/junit/Assert;->assertEquals(Ljava/lang/Object;Ljava/lang/Object;)V │ │ .line 50 │ return-void │ .end method │ │ .method public testGetLocalTimeAsCalendar()V │ - .locals 5 │ + .locals 6 │ .annotation runtime Lorg/junit/Test; │ .end annotation │ │ .prologue │ .line 54 │ iget-object v1, p0, Lcom/luckycatlabs/sunrisesunset/calculator/SolarEventCalculatorTest;->calc:Lcom/luckycatlabs/sunrisesunset/calculator/SolarEventCalculator; │ │ @@ -125,45 +125,45 @@ │ │ invoke-virtual {v1, v2, v3}, Lcom/luckycatlabs/sunrisesunset/calculator/SolarEventCalculator;->getLocalTimeAsCalendar(Ljava/math/BigDecimal;Ljava/util/Calendar;)Ljava/util/Calendar; │ │ move-result-object v0 │ │ .line 55 │ .local v0, "localTime":Ljava/util/Calendar; │ - const-wide/16 v1, 0xf │ + const-wide/16 v2, 0xf │ │ - const/16 v3, 0xb │ + const/16 v1, 0xb │ │ - invoke-virtual {v0, v3}, Ljava/util/Calendar;->get(I)I │ + invoke-virtual {v0, v1}, Ljava/util/Calendar;->get(I)I │ │ - move-result v3 │ + move-result v1 │ │ - int-to-long v3, v3 │ + int-to-long v4, v1 │ │ - invoke-static {v1, v2, v3, v4}, Lorg/junit/Assert;->assertEquals(JJ)V │ + invoke-static {v2, v3, v4, v5}, Lorg/junit/Assert;->assertEquals(JJ)V │ │ .line 56 │ - const-wide/16 v1, 0x1e │ + const-wide/16 v2, 0x1e │ │ - const/16 v3, 0xc │ + const/16 v1, 0xc │ │ - invoke-virtual {v0, v3}, Ljava/util/Calendar;->get(I)I │ + invoke-virtual {v0, v1}, Ljava/util/Calendar;->get(I)I │ │ - move-result v3 │ + move-result v1 │ │ - int-to-long v3, v3 │ + int-to-long v4, v1 │ │ - invoke-static {v1, v2, v3, v4}, Lorg/junit/Assert;->assertEquals(JJ)V │ + invoke-static {v2, v3, v4, v5}, Lorg/junit/Assert;->assertEquals(JJ)V │ │ .line 57 │ return-void │ .end method │ │ .method public testGetLocalTimeAsCalendarForNegative()V │ - .locals 5 │ + .locals 6 │ .annotation runtime Lorg/junit/Test; │ .end annotation │ │ .prologue │ .line 68 │ iget-object v1, p0, Lcom/luckycatlabs/sunrisesunset/calculator/SolarEventCalculatorTest;->calc:Lcom/luckycatlabs/sunrisesunset/calculator/SolarEventCalculator; │ │ @@ -179,38 +179,38 @@ │ │ invoke-virtual {v1, v2, v3}, Lcom/luckycatlabs/sunrisesunset/calculator/SolarEventCalculator;->getLocalTimeAsCalendar(Ljava/math/BigDecimal;Ljava/util/Calendar;)Ljava/util/Calendar; │ │ move-result-object v0 │ │ .line 69 │ .local v0, "localTime":Ljava/util/Calendar; │ - const-wide/16 v1, 0xe │ + const-wide/16 v2, 0xe │ │ - const/16 v3, 0xb │ + const/16 v1, 0xb │ │ - invoke-virtual {v0, v3}, Ljava/util/Calendar;->get(I)I │ + invoke-virtual {v0, v1}, Ljava/util/Calendar;->get(I)I │ │ - move-result v3 │ + move-result v1 │ │ - int-to-long v3, v3 │ + int-to-long v4, v1 │ │ - invoke-static {v1, v2, v3, v4}, Lorg/junit/Assert;->assertEquals(JJ)V │ + invoke-static {v2, v3, v4, v5}, Lorg/junit/Assert;->assertEquals(JJ)V │ │ .line 70 │ - const-wide/16 v1, 0x0 │ + const-wide/16 v2, 0x0 │ │ - const/16 v3, 0xc │ + const/16 v1, 0xc │ │ - invoke-virtual {v0, v3}, Ljava/util/Calendar;->get(I)I │ + invoke-virtual {v0, v1}, Ljava/util/Calendar;->get(I)I │ │ - move-result v3 │ + move-result v1 │ │ - int-to-long v3, v3 │ + int-to-long v4, v1 │ │ - invoke-static {v1, v2, v3, v4}, Lorg/junit/Assert;->assertEquals(JJ)V │ + invoke-static {v2, v3, v4, v5}, Lorg/junit/Assert;->assertEquals(JJ)V │ │ .line 71 │ return-void │ .end method │ │ .method public testGetLocalTimeAsCalendarForZero()V │ .locals 6 │ @@ -241,25 +241,25 @@ │ .local v0, "localTime":Ljava/util/Calendar; │ const/16 v1, 0xb │ │ invoke-virtual {v0, v1}, Ljava/util/Calendar;->get(I)I │ │ move-result v1 │ │ - int-to-long v1, v1 │ + int-to-long v2, v1 │ │ - invoke-static {v4, v5, v1, v2}, Lorg/junit/Assert;->assertEquals(JJ)V │ + invoke-static {v4, v5, v2, v3}, Lorg/junit/Assert;->assertEquals(JJ)V │ │ .line 63 │ const/16 v1, 0xc │ │ invoke-virtual {v0, v1}, Ljava/util/Calendar;->get(I)I │ │ move-result v1 │ │ - int-to-long v1, v1 │ + int-to-long v2, v1 │ │ - invoke-static {v4, v5, v1, v2}, Lorg/junit/Assert;->assertEquals(JJ)V │ + invoke-static {v4, v5, v2, v3}, Lorg/junit/Assert;->assertEquals(JJ)V │ │ .line 64 │ return-void │ .end method ├── smali/com/luckycatlabs/sunrisesunset/calculator/SolarEventCalculator.smali │ @@ -49,15 +49,15 @@ │ iput-object p2, p0, Lcom/luckycatlabs/sunrisesunset/calculator/SolarEventCalculator;->timeZone:Ljava/util/TimeZone; │ │ .line 59 │ return-void │ .end method │ │ .method private adjustForDST(Ljava/math/BigDecimal;Ljava/util/Calendar;)Ljava/math/BigDecimal; │ - .locals 5 │ + .locals 6 │ .param p1, "localMeanTime" # Ljava/math/BigDecimal; │ .param p2, "date" # Ljava/util/Calendar; │ │ .prologue │ .line 282 │ move-object v0, p1 │ │ @@ -82,40 +82,40 @@ │ │ move-result-object v0 │ │ .line 286 │ :cond_0 │ invoke-virtual {v0}, Ljava/math/BigDecimal;->doubleValue()D │ │ - move-result-wide v1 │ + move-result-wide v2 │ │ - const-wide/high16 v3, 0x4038000000000000L # 24.0 │ + const-wide/high16 v4, 0x4038000000000000L # 24.0 │ │ - cmpl-double v1, v1, v3 │ + cmpl-double v1, v2, v4 │ │ if-lez v1, :cond_1 │ │ .line 287 │ - const-wide/16 v1, 0x18 │ + const-wide/16 v2, 0x18 │ │ - invoke-static {v1, v2}, Ljava/math/BigDecimal;->valueOf(J)Ljava/math/BigDecimal; │ + invoke-static {v2, v3}, Ljava/math/BigDecimal;->valueOf(J)Ljava/math/BigDecimal; │ │ move-result-object v1 │ │ invoke-virtual {v0, v1}, Ljava/math/BigDecimal;->subtract(Ljava/math/BigDecimal;)Ljava/math/BigDecimal; │ │ move-result-object v0 │ │ .line 289 │ :cond_1 │ return-object v0 │ .end method │ │ .method private computeSolarEventTime(Lcom/luckycatlabs/sunrisesunset/Zenith;Ljava/util/Calendar;Z)Ljava/math/BigDecimal; │ - .locals 11 │ + .locals 12 │ .param p1, "solarZenith" # Lcom/luckycatlabs/sunrisesunset/Zenith; │ .param p2, "date" # Ljava/util/Calendar; │ .param p3, "isSunrise" # Z │ │ .prologue │ .line 116 │ iget-object v7, p0, Lcom/luckycatlabs/sunrisesunset/calculator/SolarEventCalculator;->timeZone:Ljava/util/TimeZone; │ @@ -149,29 +149,29 @@ │ │ move-result-object v0 │ │ .line 122 │ .local v0, "cosineSunLocalHour":Ljava/math/BigDecimal; │ invoke-virtual {v0}, Ljava/math/BigDecimal;->doubleValue()D │ │ - move-result-wide v7 │ + move-result-wide v8 │ │ - const-wide/high16 v9, -0x4010000000000000L # -1.0 │ + const-wide/high16 v10, -0x4010000000000000L # -1.0 │ │ - cmpg-double v7, v7, v9 │ + cmpg-double v7, v8, v10 │ │ if-ltz v7, :cond_0 │ │ invoke-virtual {v0}, Ljava/math/BigDecimal;->doubleValue()D │ │ - move-result-wide v7 │ + move-result-wide v8 │ │ - const-wide/high16 v9, 0x3ff0000000000000L # 1.0 │ + const-wide/high16 v10, 0x3ff0000000000000L # 1.0 │ │ - cmpl-double v7, v7, v9 │ + cmpl-double v7, v8, v10 │ │ if-lez v7, :cond_1 │ │ .line 123 │ :cond_0 │ const/4 v2, 0x0 │ │ @@ -222,24 +222,24 @@ │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ .method private convertRadiansToDegrees(Ljava/math/BigDecimal;)Ljava/math/BigDecimal; │ - .locals 3 │ + .locals 4 │ .param p1, "radians" # Ljava/math/BigDecimal; │ │ .prologue │ .line 386 │ new-instance v0, Ljava/math/BigDecimal; │ │ - const-wide v1, 0x404ca5dc1a63c1f8L # 57.29577951308232 │ + const-wide v2, 0x404ca5dc1a63c1f8L # 57.29577951308232 │ │ - invoke-direct {v0, v1, v2}, Ljava/math/BigDecimal;->(D)V │ + invoke-direct {v0, v2, v3}, Ljava/math/BigDecimal;->(D)V │ │ invoke-direct {p0, p1, v0}, Lcom/luckycatlabs/sunrisesunset/calculator/SolarEventCalculator;->multiplyBy(Ljava/math/BigDecimal;Ljava/math/BigDecimal;)Ljava/math/BigDecimal; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ @@ -259,54 +259,54 @@ │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ .method private getArcCosineFor(Ljava/math/BigDecimal;)Ljava/math/BigDecimal; │ - .locals 3 │ + .locals 4 │ .param p1, "radians" # Ljava/math/BigDecimal; │ │ .prologue │ .line 381 │ invoke-virtual {p1}, Ljava/math/BigDecimal;->doubleValue()D │ │ - move-result-wide v1 │ + move-result-wide v2 │ │ - invoke-static {v1, v2}, Ljava/lang/Math;->acos(D)D │ + invoke-static {v2, v3}, Ljava/lang/Math;->acos(D)D │ │ - move-result-wide v1 │ + move-result-wide v2 │ │ - invoke-static {v1, v2}, Ljava/math/BigDecimal;->valueOf(D)Ljava/math/BigDecimal; │ + invoke-static {v2, v3}, Ljava/math/BigDecimal;->valueOf(D)Ljava/math/BigDecimal; │ │ move-result-object v0 │ │ .line 382 │ .local v0, "arcCosine":Ljava/math/BigDecimal; │ invoke-direct {p0, v0}, Lcom/luckycatlabs/sunrisesunset/calculator/SolarEventCalculator;->setScale(Ljava/math/BigDecimal;)Ljava/math/BigDecimal; │ │ move-result-object v1 │ │ return-object v1 │ .end method │ │ .method private getBaseLongitudeHour()Ljava/math/BigDecimal; │ - .locals 3 │ + .locals 4 │ │ .prologue │ .line 139 │ iget-object v0, p0, Lcom/luckycatlabs/sunrisesunset/calculator/SolarEventCalculator;->location:Lcom/luckycatlabs/sunrisesunset/dto/Location; │ │ invoke-virtual {v0}, Lcom/luckycatlabs/sunrisesunset/dto/Location;->getLongitude()Ljava/math/BigDecimal; │ │ move-result-object v0 │ │ - const-wide/16 v1, 0xf │ + const-wide/16 v2, 0xf │ │ - invoke-static {v1, v2}, Ljava/math/BigDecimal;->valueOf(J)Ljava/math/BigDecimal; │ + invoke-static {v2, v3}, Ljava/math/BigDecimal;->valueOf(J)Ljava/math/BigDecimal; │ │ move-result-object v1 │ │ invoke-direct {p0, v0, v1}, Lcom/luckycatlabs/sunrisesunset/calculator/SolarEventCalculator;->divideBy(Ljava/math/BigDecimal;Ljava/math/BigDecimal;)Ljava/math/BigDecimal; │ │ move-result-object v0 │ │ @@ -351,15 +351,15 @@ │ │ move-result-object v2 │ │ return-object v2 │ .end method │ │ .method private getCosineSunLocalHour(Ljava/math/BigDecimal;Lcom/luckycatlabs/sunrisesunset/Zenith;)Ljava/math/BigDecimal; │ - .locals 11 │ + .locals 12 │ .param p1, "sunTrueLong" # Ljava/math/BigDecimal; │ .param p2, "zenith" # Lcom/luckycatlabs/sunrisesunset/Zenith; │ │ .prologue │ .line 224 │ invoke-direct {p0, p1}, Lcom/luckycatlabs/sunrisesunset/calculator/SolarEventCalculator;->getSinOfSunDeclination(Ljava/math/BigDecimal;)Ljava/math/BigDecimal; │ │ @@ -381,21 +381,21 @@ │ │ move-result-object v8 │ │ .line 228 │ .local v8, "zenithInRads":Ljava/math/BigDecimal; │ invoke-virtual {v8}, Ljava/math/BigDecimal;->doubleValue()D │ │ - move-result-wide v9 │ + move-result-wide v10 │ │ - invoke-static {v9, v10}, Ljava/lang/Math;->cos(D)D │ + invoke-static {v10, v11}, Ljava/lang/Math;->cos(D)D │ │ - move-result-wide v9 │ + move-result-wide v10 │ │ - invoke-static {v9, v10}, Ljava/math/BigDecimal;->valueOf(D)Ljava/math/BigDecimal; │ + invoke-static {v10, v11}, Ljava/math/BigDecimal;->valueOf(D)Ljava/math/BigDecimal; │ │ move-result-object v2 │ │ .line 229 │ .local v2, "cosineZenith":Ljava/math/BigDecimal; │ iget-object v9, p0, Lcom/luckycatlabs/sunrisesunset/calculator/SolarEventCalculator;->location:Lcom/luckycatlabs/sunrisesunset/dto/Location; │ │ @@ -405,21 +405,21 @@ │ │ invoke-direct {p0, v9}, Lcom/luckycatlabs/sunrisesunset/calculator/SolarEventCalculator;->convertDegreesToRadians(Ljava/math/BigDecimal;)Ljava/math/BigDecimal; │ │ move-result-object v9 │ │ invoke-virtual {v9}, Ljava/math/BigDecimal;->doubleValue()D │ │ - move-result-wide v9 │ + move-result-wide v10 │ │ - invoke-static {v9, v10}, Ljava/lang/Math;->sin(D)D │ + invoke-static {v10, v11}, Ljava/lang/Math;->sin(D)D │ │ - move-result-wide v9 │ + move-result-wide v10 │ │ - invoke-static {v9, v10}, Ljava/math/BigDecimal;->valueOf(D)Ljava/math/BigDecimal; │ + invoke-static {v10, v11}, Ljava/math/BigDecimal;->valueOf(D)Ljava/math/BigDecimal; │ │ move-result-object v6 │ │ .line 230 │ .local v6, "sinLatitude":Ljava/math/BigDecimal; │ iget-object v9, p0, Lcom/luckycatlabs/sunrisesunset/calculator/SolarEventCalculator;->location:Lcom/luckycatlabs/sunrisesunset/dto/Location; │ │ @@ -429,21 +429,21 @@ │ │ invoke-direct {p0, v9}, Lcom/luckycatlabs/sunrisesunset/calculator/SolarEventCalculator;->convertDegreesToRadians(Ljava/math/BigDecimal;)Ljava/math/BigDecimal; │ │ move-result-object v9 │ │ invoke-virtual {v9}, Ljava/math/BigDecimal;->doubleValue()D │ │ - move-result-wide v9 │ + move-result-wide v10 │ │ - invoke-static {v9, v10}, Ljava/lang/Math;->cos(D)D │ + invoke-static {v10, v11}, Ljava/lang/Math;->cos(D)D │ │ - move-result-wide v9 │ + move-result-wide v10 │ │ - invoke-static {v9, v10}, Ljava/math/BigDecimal;->valueOf(D)Ljava/math/BigDecimal; │ + invoke-static {v10, v11}, Ljava/math/BigDecimal;->valueOf(D)Ljava/math/BigDecimal; │ │ move-result-object v0 │ │ .line 232 │ .local v0, "cosLatitude":Ljava/math/BigDecimal; │ invoke-virtual {v7, v6}, Ljava/math/BigDecimal;->multiply(Ljava/math/BigDecimal;)Ljava/math/BigDecimal; │ │ @@ -490,21 +490,21 @@ │ │ invoke-direct {v0, v1}, Ljava/math/BigDecimal;->(I)V │ │ return-object v0 │ .end method │ │ .method private getLocalMeanTime(Ljava/math/BigDecimal;Ljava/math/BigDecimal;Ljava/math/BigDecimal;)Ljava/math/BigDecimal; │ - .locals 9 │ + .locals 10 │ .param p1, "sunTrueLong" # Ljava/math/BigDecimal; │ .param p2, "longitudeHour" # Ljava/math/BigDecimal; │ .param p3, "sunLocalHour" # Ljava/math/BigDecimal; │ │ .prologue │ - const-wide/16 v7, 0x18 │ + const-wide/16 v8, 0x18 │ │ .line 261 │ invoke-direct {p0, p1}, Lcom/luckycatlabs/sunrisesunset/calculator/SolarEventCalculator;->getRightAscension(Ljava/math/BigDecimal;)Ljava/math/BigDecimal; │ │ move-result-object v2 │ │ .line 262 │ @@ -540,24 +540,24 @@ │ invoke-virtual {v1, v3}, Ljava/math/BigDecimal;->subtract(Ljava/math/BigDecimal;)Ljava/math/BigDecimal; │ │ move-result-object v1 │ │ .line 266 │ invoke-virtual {v1}, Ljava/math/BigDecimal;->doubleValue()D │ │ - move-result-wide v3 │ + move-result-wide v4 │ │ - const-wide/16 v5, 0x0 │ + const-wide/16 v6, 0x0 │ │ - cmpg-double v3, v3, v5 │ + cmpg-double v3, v4, v6 │ │ if-gez v3, :cond_1 │ │ .line 267 │ - invoke-static {v7, v8}, Ljava/math/BigDecimal;->valueOf(J)Ljava/math/BigDecimal; │ + invoke-static {v8, v9}, Ljava/math/BigDecimal;->valueOf(J)Ljava/math/BigDecimal; │ │ move-result-object v3 │ │ invoke-virtual {v1, v3}, Ljava/math/BigDecimal;->add(Ljava/math/BigDecimal;)Ljava/math/BigDecimal; │ │ move-result-object v1 │ │ @@ -570,24 +570,24 @@ │ │ return-object v3 │ │ .line 268 │ :cond_1 │ invoke-virtual {v1}, Ljava/math/BigDecimal;->doubleValue()D │ │ - move-result-wide v3 │ + move-result-wide v4 │ │ - const-wide/high16 v5, 0x4038000000000000L # 24.0 │ + const-wide/high16 v6, 0x4038000000000000L # 24.0 │ │ - cmpl-double v3, v3, v5 │ + cmpl-double v3, v4, v6 │ │ if-lez v3, :cond_0 │ │ .line 269 │ - invoke-static {v7, v8}, Ljava/math/BigDecimal;->valueOf(J)Ljava/math/BigDecimal; │ + invoke-static {v8, v9}, Ljava/math/BigDecimal;->valueOf(J)Ljava/math/BigDecimal; │ │ move-result-object v3 │ │ invoke-virtual {v1, v3}, Ljava/math/BigDecimal;->subtract(Ljava/math/BigDecimal;)Ljava/math/BigDecimal; │ │ move-result-object v1 │ │ @@ -969,38 +969,34 @@ │ │ move-result-object v1 │ │ return-object v1 │ .end method │ │ .method private getRightAscension(Ljava/math/BigDecimal;)Ljava/math/BigDecimal; │ - .locals 14 │ + .locals 12 │ .param p1, "sunTrueLong" # Ljava/math/BigDecimal; │ │ .prologue │ - const-wide/16 v12, 0x168 │ - │ - const/4 v11, 0x0 │ - │ .line 200 │ new-instance v6, Ljava/math/BigDecimal; │ │ invoke-direct {p0, p1}, Lcom/luckycatlabs/sunrisesunset/calculator/SolarEventCalculator;->convertDegreesToRadians(Ljava/math/BigDecimal;)Ljava/math/BigDecimal; │ │ move-result-object v7 │ │ invoke-virtual {v7}, Ljava/math/BigDecimal;->doubleValue()D │ │ - move-result-wide v7 │ + move-result-wide v8 │ │ - invoke-static {v7, v8}, Ljava/lang/Math;->tan(D)D │ + invoke-static {v8, v9}, Ljava/lang/Math;->tan(D)D │ │ - move-result-wide v7 │ + move-result-wide v8 │ │ - invoke-direct {v6, v7, v8}, Ljava/math/BigDecimal;->(D)V │ + invoke-direct {v6, v8, v9}, Ljava/math/BigDecimal;->(D)V │ │ .line 202 │ .local v6, "tanL":Ljava/math/BigDecimal; │ invoke-direct {p0, v6}, Lcom/luckycatlabs/sunrisesunset/calculator/SolarEventCalculator;->convertRadiansToDegrees(Ljava/math/BigDecimal;)Ljava/math/BigDecimal; │ │ move-result-object v7 │ │ @@ -1020,79 +1016,85 @@ │ │ invoke-direct {p0, v1}, Lcom/luckycatlabs/sunrisesunset/calculator/SolarEventCalculator;->convertDegreesToRadians(Ljava/math/BigDecimal;)Ljava/math/BigDecimal; │ │ move-result-object v7 │ │ invoke-virtual {v7}, Ljava/math/BigDecimal;->doubleValue()D │ │ - move-result-wide v7 │ + move-result-wide v8 │ │ - invoke-static {v7, v8}, Ljava/lang/Math;->atan(D)D │ + invoke-static {v8, v9}, Ljava/lang/Math;->atan(D)D │ │ - move-result-wide v7 │ + move-result-wide v8 │ │ - invoke-direct {v4, v7, v8}, Ljava/math/BigDecimal;->(D)V │ + invoke-direct {v4, v8, v9}, Ljava/math/BigDecimal;->(D)V │ │ .line 204 │ .local v4, "rightAscension":Ljava/math/BigDecimal; │ invoke-direct {p0, v4}, Lcom/luckycatlabs/sunrisesunset/calculator/SolarEventCalculator;->convertRadiansToDegrees(Ljava/math/BigDecimal;)Ljava/math/BigDecimal; │ │ move-result-object v7 │ │ invoke-direct {p0, v7}, Lcom/luckycatlabs/sunrisesunset/calculator/SolarEventCalculator;->setScale(Ljava/math/BigDecimal;)Ljava/math/BigDecimal; │ │ move-result-object v4 │ │ .line 206 │ invoke-virtual {v4}, Ljava/math/BigDecimal;->doubleValue()D │ │ - move-result-wide v7 │ + move-result-wide v8 │ │ - const-wide/16 v9, 0x0 │ + const-wide/16 v10, 0x0 │ │ - cmpg-double v7, v7, v9 │ + cmpg-double v7, v8, v10 │ │ if-gez v7, :cond_1 │ │ .line 207 │ - invoke-static {v12, v13}, Ljava/math/BigDecimal;->valueOf(J)Ljava/math/BigDecimal; │ + const-wide/16 v8, 0x168 │ + │ + invoke-static {v8, v9}, Ljava/math/BigDecimal;->valueOf(J)Ljava/math/BigDecimal; │ │ move-result-object v7 │ │ invoke-virtual {v4, v7}, Ljava/math/BigDecimal;->add(Ljava/math/BigDecimal;)Ljava/math/BigDecimal; │ │ move-result-object v4 │ │ .line 212 │ :cond_0 │ :goto_0 │ - const-wide/16 v7, 0x5a │ + const-wide/16 v8, 0x5a │ │ - invoke-static {v7, v8}, Ljava/math/BigDecimal;->valueOf(J)Ljava/math/BigDecimal; │ + invoke-static {v8, v9}, Ljava/math/BigDecimal;->valueOf(J)Ljava/math/BigDecimal; │ │ move-result-object v3 │ │ .line 213 │ .local v3, "ninety":Ljava/math/BigDecimal; │ - sget-object v7, Ljava/math/RoundingMode;->FLOOR:Ljava/math/RoundingMode; │ + const/4 v7, 0x0 │ │ - invoke-virtual {p1, v3, v11, v7}, Ljava/math/BigDecimal;->divide(Ljava/math/BigDecimal;ILjava/math/RoundingMode;)Ljava/math/BigDecimal; │ + sget-object v8, Ljava/math/RoundingMode;->FLOOR:Ljava/math/RoundingMode; │ + │ + invoke-virtual {p1, v3, v7, v8}, Ljava/math/BigDecimal;->divide(Ljava/math/BigDecimal;ILjava/math/RoundingMode;)Ljava/math/BigDecimal; │ │ move-result-object v2 │ │ .line 214 │ .local v2, "longitudeQuadrant":Ljava/math/BigDecimal; │ invoke-virtual {v2, v3}, Ljava/math/BigDecimal;->multiply(Ljava/math/BigDecimal;)Ljava/math/BigDecimal; │ │ move-result-object v2 │ │ .line 216 │ - sget-object v7, Ljava/math/RoundingMode;->FLOOR:Ljava/math/RoundingMode; │ + const/4 v7, 0x0 │ │ - invoke-virtual {v4, v3, v11, v7}, Ljava/math/BigDecimal;->divide(Ljava/math/BigDecimal;ILjava/math/RoundingMode;)Ljava/math/BigDecimal; │ + sget-object v8, Ljava/math/RoundingMode;->FLOOR:Ljava/math/RoundingMode; │ + │ + invoke-virtual {v4, v3, v7, v8}, Ljava/math/BigDecimal;->divide(Ljava/math/BigDecimal;ILjava/math/RoundingMode;)Ljava/math/BigDecimal; │ │ move-result-object v5 │ │ .line 217 │ .local v5, "rightAscensionQuadrant":Ljava/math/BigDecimal; │ invoke-virtual {v5, v3}, Ljava/math/BigDecimal;->multiply(Ljava/math/BigDecimal;)Ljava/math/BigDecimal; │ │ @@ -1125,24 +1127,26 @@ │ .end local v0 # "augend":Ljava/math/BigDecimal; │ .end local v2 # "longitudeQuadrant":Ljava/math/BigDecimal; │ .end local v3 # "ninety":Ljava/math/BigDecimal; │ .end local v5 # "rightAscensionQuadrant":Ljava/math/BigDecimal; │ :cond_1 │ invoke-virtual {v4}, Ljava/math/BigDecimal;->doubleValue()D │ │ - move-result-wide v7 │ + move-result-wide v8 │ │ - const-wide v9, 0x4076800000000000L # 360.0 │ + const-wide v10, 0x4076800000000000L # 360.0 │ │ - cmpl-double v7, v7, v9 │ + cmpl-double v7, v8, v10 │ │ if-lez v7, :cond_0 │ │ .line 209 │ - invoke-static {v12, v13}, Ljava/math/BigDecimal;->valueOf(J)Ljava/math/BigDecimal; │ + const-wide/16 v8, 0x168 │ + │ + invoke-static {v8, v9}, Ljava/math/BigDecimal;->valueOf(J)Ljava/math/BigDecimal; │ │ move-result-object v7 │ │ invoke-virtual {v4, v7}, Ljava/math/BigDecimal;->subtract(Ljava/math/BigDecimal;)Ljava/math/BigDecimal; │ │ move-result-object v4 │ │ @@ -1240,34 +1244,34 @@ │ │ move-result-object v2 │ │ return-object v2 │ .end method │ │ .method private getSunTrueLongitude(Ljava/math/BigDecimal;)Ljava/math/BigDecimal; │ - .locals 9 │ + .locals 10 │ .param p1, "meanAnomaly" # Ljava/math/BigDecimal; │ │ .prologue │ .line 177 │ new-instance v3, Ljava/math/BigDecimal; │ │ invoke-direct {p0, p1}, Lcom/luckycatlabs/sunrisesunset/calculator/SolarEventCalculator;->convertDegreesToRadians(Ljava/math/BigDecimal;)Ljava/math/BigDecimal; │ │ move-result-object v5 │ │ invoke-virtual {v5}, Ljava/math/BigDecimal;->doubleValue()D │ │ - move-result-wide v5 │ + move-result-wide v6 │ │ - invoke-static {v5, v6}, Ljava/lang/Math;->sin(D)D │ + invoke-static {v6, v7}, Ljava/lang/Math;->sin(D)D │ │ - move-result-wide v5 │ + move-result-wide v6 │ │ - invoke-direct {v3, v5, v6}, Ljava/math/BigDecimal;->(D)V │ + invoke-direct {v3, v6, v7}, Ljava/math/BigDecimal;->(D)V │ │ .line 178 │ .local v3, "sinMeanAnomaly":Ljava/math/BigDecimal; │ new-instance v2, Ljava/math/BigDecimal; │ │ invoke-direct {p0, p1}, Lcom/luckycatlabs/sunrisesunset/calculator/SolarEventCalculator;->convertDegreesToRadians(Ljava/math/BigDecimal;)Ljava/math/BigDecimal; │ │ @@ -1279,23 +1283,25 @@ │ │ move-result-object v6 │ │ invoke-direct {p0, v5, v6}, Lcom/luckycatlabs/sunrisesunset/calculator/SolarEventCalculator;->multiplyBy(Ljava/math/BigDecimal;Ljava/math/BigDecimal;)Ljava/math/BigDecimal; │ │ move-result-object v5 │ │ + .line 179 │ invoke-virtual {v5}, Ljava/math/BigDecimal;->doubleValue()D │ │ - move-result-wide v5 │ + move-result-wide v6 │ │ - invoke-static {v5, v6}, Ljava/lang/Math;->sin(D)D │ + .line 178 │ + invoke-static {v6, v7}, Ljava/lang/Math;->sin(D)D │ │ - move-result-wide v5 │ + move-result-wide v6 │ │ - invoke-direct {v2, v5, v6}, Ljava/math/BigDecimal;->(D)V │ + invoke-direct {v2, v6, v7}, Ljava/math/BigDecimal;->(D)V │ │ .line 181 │ .local v2, "sinDoubleMeanAnomaly":Ljava/math/BigDecimal; │ new-instance v5, Ljava/math/BigDecimal; │ │ const-string v6, "1.916" │ │ @@ -1337,26 +1343,26 @@ │ │ move-result-object v4 │ │ .line 185 │ .local v4, "trueLongitude":Ljava/math/BigDecimal; │ invoke-virtual {v4}, Ljava/math/BigDecimal;->doubleValue()D │ │ - move-result-wide v5 │ + move-result-wide v6 │ │ - const-wide v7, 0x4076800000000000L # 360.0 │ + const-wide v8, 0x4076800000000000L # 360.0 │ │ - cmpl-double v5, v5, v7 │ + cmpl-double v5, v6, v8 │ │ if-lez v5, :cond_0 │ │ .line 186 │ - const-wide/16 v5, 0x168 │ + const-wide/16 v6, 0x168 │ │ - invoke-static {v5, v6}, Ljava/math/BigDecimal;->valueOf(J)Ljava/math/BigDecimal; │ + invoke-static {v6, v7}, Ljava/math/BigDecimal;->valueOf(J)Ljava/math/BigDecimal; │ │ move-result-object v5 │ │ invoke-virtual {v4, v5}, Ljava/math/BigDecimal;->subtract(Ljava/math/BigDecimal;)Ljava/math/BigDecimal; │ │ move-result-object v4 │ │ @@ -1518,22 +1524,22 @@ │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ .method protected getLocalTimeAsCalendar(Ljava/math/BigDecimal;Ljava/util/Calendar;)Ljava/util/Calendar; │ - .locals 9 │ + .locals 10 │ .param p1, "localTimeParam" # Ljava/math/BigDecimal; │ .param p2, "date" # Ljava/util/Calendar; │ │ .prologue │ - const/16 v8, 0xb │ + const/16 v9, 0xb │ │ - const/4 v7, 0x0 │ + const/4 v8, 0x0 │ │ .line 334 │ if-nez p1, :cond_0 │ │ .line 335 │ const/4 v3, 0x0 │ │ @@ -1562,28 +1568,28 @@ │ move-result v5 │ │ const/4 v6, -0x1 │ │ if-ne v5, v6, :cond_1 │ │ .line 343 │ - const-wide/high16 v5, 0x4038000000000000L # 24.0 │ + const-wide/high16 v6, 0x4038000000000000L # 24.0 │ │ - invoke-static {v5, v6}, Ljava/math/BigDecimal;->valueOf(D)Ljava/math/BigDecimal; │ + invoke-static {v6, v7}, Ljava/math/BigDecimal;->valueOf(D)Ljava/math/BigDecimal; │ │ move-result-object v5 │ │ invoke-virtual {v1, v5}, Ljava/math/BigDecimal;->add(Ljava/math/BigDecimal;)Ljava/math/BigDecimal; │ │ move-result-object v1 │ │ .line 344 │ const/16 v5, -0x18 │ │ - invoke-virtual {v3, v8, v5}, Ljava/util/Calendar;->add(II)V │ + invoke-virtual {v3, v9, v5}, Ljava/util/Calendar;->add(II)V │ │ .line 346 │ :cond_1 │ invoke-virtual {v1}, Ljava/math/BigDecimal;->toPlainString()Ljava/lang/String; │ │ move-result-object v5 │ │ @@ -1591,15 +1597,15 @@ │ │ invoke-virtual {v5, v6}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; │ │ move-result-object v4 │ │ .line 347 │ .local v4, "timeComponents":[Ljava/lang/String; │ - aget-object v5, v4, v7 │ + aget-object v5, v4, v8 │ │ invoke-static {v5}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I │ │ move-result v0 │ │ .line 349 │ .local v0, "hour":I │ @@ -1627,27 +1633,27 @@ │ │ move-result-object v5 │ │ invoke-direct {v2, v5}, Ljava/math/BigDecimal;->(Ljava/lang/String;)V │ │ .line 350 │ .local v2, "minutes":Ljava/math/BigDecimal; │ - const-wide/16 v5, 0x3c │ + const-wide/16 v6, 0x3c │ │ - invoke-static {v5, v6}, Ljava/math/BigDecimal;->valueOf(J)Ljava/math/BigDecimal; │ + invoke-static {v6, v7}, Ljava/math/BigDecimal;->valueOf(J)Ljava/math/BigDecimal; │ │ move-result-object v5 │ │ invoke-virtual {v2, v5}, Ljava/math/BigDecimal;->multiply(Ljava/math/BigDecimal;)Ljava/math/BigDecimal; │ │ move-result-object v5 │ │ sget-object v6, Ljava/math/RoundingMode;->HALF_EVEN:Ljava/math/RoundingMode; │ │ - invoke-virtual {v5, v7, v6}, Ljava/math/BigDecimal;->setScale(ILjava/math/RoundingMode;)Ljava/math/BigDecimal; │ + invoke-virtual {v5, v8, v6}, Ljava/math/BigDecimal;->setScale(ILjava/math/RoundingMode;)Ljava/math/BigDecimal; │ │ move-result-object v2 │ │ .line 351 │ invoke-virtual {v2}, Ljava/math/BigDecimal;->intValue()I │ │ move-result v5 │ @@ -1669,29 +1675,29 @@ │ if-ne v0, v5, :cond_3 │ │ .line 356 │ const/4 v0, 0x0 │ │ .line 360 │ :cond_3 │ - invoke-virtual {v3, v8, v0}, Ljava/util/Calendar;->set(II)V │ + invoke-virtual {v3, v9, v0}, Ljava/util/Calendar;->set(II)V │ │ .line 361 │ const/16 v5, 0xc │ │ invoke-virtual {v2}, Ljava/math/BigDecimal;->intValue()I │ │ move-result v6 │ │ invoke-virtual {v3, v5, v6}, Ljava/util/Calendar;->set(II)V │ │ .line 362 │ const/16 v5, 0xd │ │ - invoke-virtual {v3, v5, v7}, Ljava/util/Calendar;->set(II)V │ + invoke-virtual {v3, v5, v8}, Ljava/util/Calendar;->set(II)V │ │ .line 363 │ invoke-virtual {p2}, Ljava/util/Calendar;->getTimeZone()Ljava/util/TimeZone; │ │ move-result-object v5 │ │ invoke-virtual {v3, v5}, Ljava/util/Calendar;->setTimeZone(Ljava/util/TimeZone;)V ├── smali/org/junit/Assert.smali │ @@ -74,32 +74,32 @@ │ invoke-virtual {v0, p0, p1, p2}, Lorg/junit/internal/InexactComparisonCriteria;->arrayEquals(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V │ │ .line 353 │ return-void │ .end method │ │ .method public static assertArrayEquals(Ljava/lang/String;[F[FF)V │ - .locals 3 │ + .locals 4 │ .param p0, "message" # Ljava/lang/String; │ .param p1, "expecteds" # [F │ .param p2, "actuals" # [F │ .param p3, "delta" # F │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Lorg/junit/internal/ArrayComparisonFailure; │ } │ .end annotation │ │ .prologue │ .line 382 │ new-instance v0, Lorg/junit/internal/InexactComparisonCriteria; │ │ - float-to-double v1, p3 │ + float-to-double v2, p3 │ │ - invoke-direct {v0, v1, v2}, Lorg/junit/internal/InexactComparisonCriteria;->(D)V │ + invoke-direct {v0, v2, v3}, Lorg/junit/internal/InexactComparisonCriteria;->(D)V │ │ invoke-virtual {v0, p0, p1, p2}, Lorg/junit/internal/InexactComparisonCriteria;->arrayEquals(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V │ │ .line 383 │ return-void │ .end method │ │ @@ -206,15 +206,15 @@ │ invoke-static {v0, p0, p1}, Lorg/junit/Assert;->assertArrayEquals(Ljava/lang/String;[C[C)V │ │ .line 246 │ return-void │ .end method │ │ .method public static assertArrayEquals([D[DD)V │ - .locals 1 │ + .locals 2 │ .param p0, "expecteds" # [D │ .param p1, "actuals" # [D │ .param p2, "delta" # D │ │ .prologue │ .line 365 │ const/4 v0, 0x0 │ @@ -298,15 +298,15 @@ │ invoke-static {v0, p0, p1}, Lorg/junit/Assert;->assertArrayEquals(Ljava/lang/String;[S[S)V │ │ .line 276 │ return-void │ .end method │ │ .method public static assertEquals(DD)V │ - .locals 1 │ + .locals 2 │ .param p0, "expected" # D │ .param p2, "actual" # D │ .annotation runtime Ljava/lang/Deprecated; │ .end annotation │ │ .prologue │ .line 482 │ @@ -315,37 +315,37 @@ │ invoke-static {v0, p0, p1, p2, p3}, Lorg/junit/Assert;->assertEquals(Ljava/lang/String;DD)V │ │ .line 483 │ return-void │ .end method │ │ .method public static assertEquals(DDD)V │ - .locals 7 │ + .locals 8 │ .param p0, "expected" # D │ .param p2, "actual" # D │ .param p4, "delta" # D │ │ .prologue │ .line 512 │ - const/4 v0, 0x0 │ + const/4 v1, 0x0 │ │ - move-wide v1, p0 │ + move-wide v2, p0 │ │ - move-wide v3, p2 │ + move-wide v4, p2 │ │ - move-wide v5, p4 │ + move-wide v6, p4 │ │ - invoke-static/range {v0 .. v6}, Lorg/junit/Assert;->assertEquals(Ljava/lang/String;DDD)V │ + invoke-static/range {v1 .. v7}, Lorg/junit/Assert;->assertEquals(Ljava/lang/String;DDD)V │ │ .line 513 │ return-void │ .end method │ │ .method public static assertEquals(JJ)V │ - .locals 1 │ + .locals 2 │ .param p0, "expected" # J │ .param p2, "actual" # J │ │ .prologue │ .line 456 │ const/4 v0, 0x0 │ │ @@ -385,15 +385,15 @@ │ invoke-static {v0}, Lorg/junit/Assert;->fail(Ljava/lang/String;)V │ │ .line 494 │ return-void │ .end method │ │ .method public static assertEquals(Ljava/lang/String;DDD)V │ - .locals 2 │ + .locals 3 │ .param p0, "message" # Ljava/lang/String; │ .param p1, "expected" # D │ .param p3, "actual" # D │ .param p5, "delta" # D │ │ .prologue │ .line 440 │ @@ -431,15 +431,15 @@ │ │ invoke-static {p0, v0, v1}, Lorg/junit/Assert;->failNotEquals(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V │ │ goto :goto_0 │ .end method │ │ .method public static assertEquals(Ljava/lang/String;JJ)V │ - .locals 2 │ + .locals 3 │ .param p0, "message" # Ljava/lang/String; │ .param p1, "expected" # J │ .param p3, "actual" # J │ │ .prologue │ .line 472 │ invoke-static {p1, p2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; ├── smali/org/junit/experimental/max/MaxHistory$RememberingListener.smali │ @@ -95,15 +95,15 @@ │ invoke-virtual {v0, v1, v2, v3}, Lorg/junit/experimental/max/MaxHistory;->putTestFailureTimestamp(Lorg/junit/runner/Description;J)V │ │ .line 121 │ return-void │ .end method │ │ .method public testFinished(Lorg/junit/runner/Description;)V │ - .locals 7 │ + .locals 8 │ .param p1, "description" # Lorg/junit/runner/Description; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/lang/Exception; │ } │ .end annotation │ │ @@ -127,17 +127,17 @@ │ │ move-result-wide v2 │ │ .line 115 │ .local v2, "start":J │ iget-object v4, p0, Lorg/junit/experimental/max/MaxHistory$RememberingListener;->this$0:Lorg/junit/experimental/max/MaxHistory; │ │ - sub-long v5, v0, v2 │ + sub-long v6, v0, v2 │ │ - invoke-virtual {v4, p1, v5, v6}, Lorg/junit/experimental/max/MaxHistory;->putTestDuration(Lorg/junit/runner/Description;J)V │ + invoke-virtual {v4, p1, v6, v7}, Lorg/junit/experimental/max/MaxHistory;->putTestDuration(Lorg/junit/runner/Description;J)V │ │ .line 116 │ return-void │ .end method │ │ .method public testRunFinished(Lorg/junit/runner/Result;)V │ .locals 1 │ @@ -155,31 +155,31 @@ │ invoke-static {v0}, Lorg/junit/experimental/max/MaxHistory;->access$000(Lorg/junit/experimental/max/MaxHistory;)V │ │ .line 126 │ return-void │ .end method │ │ .method public testStarted(Lorg/junit/runner/Description;)V │ - .locals 3 │ + .locals 4 │ .param p1, "description" # Lorg/junit/runner/Description; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/lang/Exception; │ } │ .end annotation │ │ .prologue │ .line 107 │ iget-object v0, p0, Lorg/junit/experimental/max/MaxHistory$RememberingListener;->starts:Ljava/util/Map; │ │ invoke-static {}, Ljava/lang/System;->nanoTime()J │ │ - move-result-wide v1 │ + move-result-wide v2 │ │ - invoke-static {v1, v2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; │ + invoke-static {v2, v3}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; │ │ move-result-object v1 │ │ invoke-interface {v0, p1, v1}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ .line 109 │ return-void ├── smali/org/junit/experimental/max/MaxHistory$TestComparator.smali │ @@ -53,15 +53,15 @@ │ .line 129 │ invoke-direct {p0, p1}, Lorg/junit/experimental/max/MaxHistory$TestComparator;->(Lorg/junit/experimental/max/MaxHistory;)V │ │ return-void │ .end method │ │ .method private getFailure(Lorg/junit/runner/Description;)Ljava/lang/Long; │ - .locals 3 │ + .locals 4 │ .param p1, "key" # Lorg/junit/runner/Description; │ │ .prologue │ .line 144 │ iget-object v1, p0, Lorg/junit/experimental/max/MaxHistory$TestComparator;->this$0:Lorg/junit/experimental/max/MaxHistory; │ │ invoke-virtual {v1, p1}, Lorg/junit/experimental/max/MaxHistory;->getFailureTimestamp(Lorg/junit/runner/Description;)Ljava/lang/Long; │ @@ -69,17 +69,17 @@ │ move-result-object v0 │ │ .line 145 │ .local v0, "result":Ljava/lang/Long; │ if-nez v0, :cond_0 │ │ .line 146 │ - const-wide/16 v1, 0x0 │ + const-wide/16 v2, 0x0 │ │ - invoke-static {v1, v2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; │ + invoke-static {v2, v3}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; │ │ move-result-object v0 │ │ .line 147 │ .end local v0 # "result":Ljava/lang/Long; │ :cond_0 │ return-object v0 ├── smali/org/junit/experimental/max/MaxHistory.smali │ @@ -343,15 +343,15 @@ │ │ invoke-direct {v0, p0, v1}, Lorg/junit/experimental/max/MaxHistory$RememberingListener;->(Lorg/junit/experimental/max/MaxHistory;Lorg/junit/experimental/max/MaxHistory$1;)V │ │ return-object v0 │ .end method │ │ .method putTestDuration(Lorg/junit/runner/Description;J)V │ - .locals 3 │ + .locals 4 │ .param p1, "description" # Lorg/junit/runner/Description; │ .param p2, "duration" # J │ │ .prologue │ .line 97 │ iget-object v0, p0, Lorg/junit/experimental/max/MaxHistory;->fDurations:Ljava/util/Map; │ │ @@ -366,15 +366,15 @@ │ invoke-interface {v0, v1, v2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ .line 98 │ return-void │ .end method │ │ .method putTestFailureTimestamp(Lorg/junit/runner/Description;J)V │ - .locals 3 │ + .locals 4 │ .param p1, "key" # Lorg/junit/runner/Description; │ .param p2, "end" # J │ │ .prologue │ .line 85 │ iget-object v0, p0, Lorg/junit/experimental/max/MaxHistory;->fFailureTimestamps:Ljava/util/Map; ├── smali/org/junit/internal/InexactComparisonCriteria.smali │ @@ -5,15 +5,15 @@ │ │ # instance fields │ .field public fDelta:D │ │ │ # direct methods │ .method public constructor (D)V │ - .locals 0 │ + .locals 1 │ .param p1, "delta" # D │ │ .prologue │ .line 8 │ invoke-direct {p0}, Lorg/junit/internal/ComparisonCriteria;->()V │ │ .line 9 ├── smali/org/junit/internal/TextListener.smali │ @@ -48,30 +48,30 @@ │ │ return-object v0 │ .end method │ │ │ # virtual methods │ .method protected elapsedTimeAsString(J)Ljava/lang/String; │ - .locals 5 │ + .locals 7 │ .param p1, "runTime" # J │ │ .prologue │ .line 96 │ invoke-static {}, Ljava/text/NumberFormat;->getInstance()Ljava/text/NumberFormat; │ │ move-result-object v0 │ │ - long-to-double v1, p1 │ + long-to-double v2, p1 │ │ - const-wide v3, 0x408f400000000000L # 1000.0 │ + const-wide v4, 0x408f400000000000L # 1000.0 │ │ - div-double/2addr v1, v3 │ + div-double/2addr v2, v4 │ │ - invoke-virtual {v0, v1, v2}, Ljava/text/NumberFormat;->format(D)Ljava/lang/String; │ + invoke-virtual {v0, v2, v3}, Ljava/text/NumberFormat;->format(D)Ljava/lang/String; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ .method protected printFailure(Lorg/junit/runner/notification/Failure;Ljava/lang/String;)V ├── smali/org/junit/internal/runners/TestMethod.smali │ @@ -161,43 +161,43 @@ │ .end method │ │ .method public getTimeout()J │ .locals 5 │ │ .prologue │ .line 34 │ - iget-object v3, p0, Lorg/junit/internal/runners/TestMethod;->fMethod:Ljava/lang/reflect/Method; │ + iget-object v1, p0, Lorg/junit/internal/runners/TestMethod;->fMethod:Ljava/lang/reflect/Method; │ │ const-class v4, Lorg/junit/Test; │ │ - invoke-virtual {v3, v4}, Ljava/lang/reflect/Method;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation; │ + invoke-virtual {v1, v4}, Ljava/lang/reflect/Method;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation; │ │ move-result-object v0 │ │ check-cast v0, Lorg/junit/Test; │ │ .line 35 │ .local v0, "annotation":Lorg/junit/Test; │ if-nez v0, :cond_0 │ │ .line 36 │ - const-wide/16 v1, 0x0 │ + const-wide/16 v2, 0x0 │ │ .line 38 │ :goto_0 │ - return-wide v1 │ + return-wide v2 │ │ .line 37 │ :cond_0 │ invoke-interface {v0}, Lorg/junit/Test;->timeout()J │ │ - move-result-wide v1 │ + move-result-wide v2 │ │ .line 38 │ - .local v1, "timeout":J │ + .local v2, "timeout":J │ goto :goto_0 │ .end method │ │ .method public invoke(Ljava/lang/Object;)V │ .locals 2 │ .param p1, "test" # Ljava/lang/Object; │ .annotation system Ldalvik/annotation/Throws; ├── smali/org/junit/internal/runners/MethodRoadie$1.smali │ @@ -63,36 +63,36 @@ │ │ .line 67 │ .local v2, "result":Ljava/util/concurrent/Future;, "Ljava/util/concurrent/Future;" │ invoke-interface {v3}, Ljava/util/concurrent/ExecutorService;->shutdown()V │ │ .line 69 │ :try_start_0 │ - iget-wide v5, p0, Lorg/junit/internal/runners/MethodRoadie$1;->val$timeout:J │ + iget-wide v6, p0, Lorg/junit/internal/runners/MethodRoadie$1;->val$timeout:J │ │ - sget-object v7, Ljava/util/concurrent/TimeUnit;->MILLISECONDS:Ljava/util/concurrent/TimeUnit; │ + sget-object v5, Ljava/util/concurrent/TimeUnit;->MILLISECONDS:Ljava/util/concurrent/TimeUnit; │ │ - invoke-interface {v3, v5, v6, v7}, Ljava/util/concurrent/ExecutorService;->awaitTermination(JLjava/util/concurrent/TimeUnit;)Z │ + invoke-interface {v3, v6, v7, v5}, Ljava/util/concurrent/ExecutorService;->awaitTermination(JLjava/util/concurrent/TimeUnit;)Z │ │ move-result v4 │ │ .line 71 │ .local v4, "terminated":Z │ if-nez v4, :cond_0 │ │ .line 72 │ invoke-interface {v3}, Ljava/util/concurrent/ExecutorService;->shutdownNow()Ljava/util/List; │ │ .line 73 │ :cond_0 │ - const-wide/16 v5, 0x0 │ + const-wide/16 v6, 0x0 │ │ - sget-object v7, Ljava/util/concurrent/TimeUnit;->MILLISECONDS:Ljava/util/concurrent/TimeUnit; │ + sget-object v5, Ljava/util/concurrent/TimeUnit;->MILLISECONDS:Ljava/util/concurrent/TimeUnit; │ │ - invoke-interface {v2, v5, v6, v7}, Ljava/util/concurrent/Future;->get(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object; │ + invoke-interface {v2, v6, v7, v5}, Ljava/util/concurrent/Future;->get(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object; │ :try_end_0 │ .catch Ljava/util/concurrent/TimeoutException; {:try_start_0 .. :try_end_0} :catch_0 │ .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_1 │ │ .line 79 │ .end local v4 # "terminated":Z │ :goto_0 ├── smali/org/junit/internal/runners/statements/FailOnTimeout.smali │ @@ -34,15 +34,15 @@ │ iput-wide p2, p0, Lorg/junit/internal/runners/statements/FailOnTimeout;->fTimeout:J │ │ .line 16 │ return-void │ .end method │ │ .method private evaluateStatement()Lorg/junit/internal/runners/statements/FailOnTimeout$StatementThread; │ - .locals 3 │ + .locals 4 │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/lang/InterruptedException; │ } │ .end annotation │ │ .prologue │ @@ -54,17 +54,17 @@ │ invoke-direct {v0, v1}, Lorg/junit/internal/runners/statements/FailOnTimeout$StatementThread;->(Lorg/junit/runners/model/Statement;)V │ │ .line 27 │ .local v0, "thread":Lorg/junit/internal/runners/statements/FailOnTimeout$StatementThread; │ invoke-virtual {v0}, Lorg/junit/internal/runners/statements/FailOnTimeout$StatementThread;->start()V │ │ .line 28 │ - iget-wide v1, p0, Lorg/junit/internal/runners/statements/FailOnTimeout;->fTimeout:J │ + iget-wide v2, p0, Lorg/junit/internal/runners/statements/FailOnTimeout;->fTimeout:J │ │ - invoke-virtual {v0, v1, v2}, Lorg/junit/internal/runners/statements/FailOnTimeout$StatementThread;->join(J)V │ + invoke-virtual {v0, v2, v3}, Lorg/junit/internal/runners/statements/FailOnTimeout$StatementThread;->join(J)V │ │ .line 29 │ invoke-virtual {v0}, Lorg/junit/internal/runners/statements/FailOnTimeout$StatementThread;->interrupt()V │ │ .line 30 │ return-object v0 │ .end method ├── smali/org/junit/runners/model/TestClass.smali │ @@ -656,15 +656,15 @@ │ │ move-result-object v0 │ │ goto :goto_0 │ .end method │ │ .method public getOnlyConstructor()Ljava/lang/reflect/Constructor; │ - .locals 5 │ + .locals 6 │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "()", │ "Ljava/lang/reflect/Constructor", │ "<*>;" │ } │ .end annotation │ @@ -675,21 +675,21 @@ │ │ invoke-virtual {v1}, Ljava/lang/Class;->getConstructors()[Ljava/lang/reflect/Constructor; │ │ move-result-object v0 │ │ .line 127 │ .local v0, "constructors":[Ljava/lang/reflect/Constructor;, "[Ljava/lang/reflect/Constructor<*>;" │ - const-wide/16 v1, 0x1 │ + const-wide/16 v2, 0x1 │ │ - array-length v3, v0 │ + array-length v1, v0 │ │ - int-to-long v3, v3 │ + int-to-long v4, v1 │ │ - invoke-static {v1, v2, v3, v4}, Lorg/junit/Assert;->assertEquals(JJ)V │ + invoke-static {v2, v3, v4, v5}, Lorg/junit/Assert;->assertEquals(JJ)V │ │ .line 128 │ const/4 v1, 0x0 │ │ aget-object v1, v0, v1 │ │ return-object v1 ├── smali/org/junit/rules/Timeout.smali │ @@ -25,23 +25,23 @@ │ .line 44 │ return-void │ .end method │ │ │ # virtual methods │ .method public apply(Lorg/junit/runners/model/Statement;Lorg/junit/runner/Description;)Lorg/junit/runners/model/Statement; │ - .locals 3 │ + .locals 4 │ .param p1, "base" # Lorg/junit/runners/model/Statement; │ .param p2, "description" # Lorg/junit/runner/Description; │ │ .prologue │ .line 47 │ new-instance v0, Lorg/junit/internal/runners/statements/FailOnTimeout; │ │ iget v1, p0, Lorg/junit/rules/Timeout;->fMillis:I │ │ - int-to-long v1, v1 │ + int-to-long v2, v1 │ │ - invoke-direct {v0, p1, v1, v2}, Lorg/junit/internal/runners/statements/FailOnTimeout;->(Lorg/junit/runners/model/Statement;J)V │ + invoke-direct {v0, p1, v2, v3}, Lorg/junit/internal/runners/statements/FailOnTimeout;->(Lorg/junit/runners/model/Statement;J)V │ │ return-object v0 │ .end method ├── smali/org/junit/runner/Result$Listener.smali │ @@ -120,15 +120,15 @@ │ invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicInteger;->getAndIncrement()I │ │ .line 92 │ return-void │ .end method │ │ .method public testRunFinished(Lorg/junit/runner/Result;)V │ - .locals 5 │ + .locals 6 │ .param p1, "result" # Lorg/junit/runner/Result; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/lang/Exception; │ } │ .end annotation │ │ @@ -142,39 +142,39 @@ │ .local v0, "endTime":J │ iget-object v2, p0, Lorg/junit/runner/Result$Listener;->this$0:Lorg/junit/runner/Result; │ │ iget-object v3, p0, Lorg/junit/runner/Result$Listener;->this$0:Lorg/junit/runner/Result; │ │ invoke-static {v3}, Lorg/junit/runner/Result;->access$000(Lorg/junit/runner/Result;)J │ │ - move-result-wide v3 │ + move-result-wide v4 │ │ - sub-long v3, v0, v3 │ + sub-long v4, v0, v4 │ │ - invoke-static {v2, v3, v4}, Lorg/junit/runner/Result;->access$114(Lorg/junit/runner/Result;J)J │ + invoke-static {v2, v4, v5}, Lorg/junit/runner/Result;->access$114(Lorg/junit/runner/Result;J)J │ │ .line 77 │ return-void │ .end method │ │ .method public testRunStarted(Lorg/junit/runner/Description;)V │ - .locals 3 │ + .locals 4 │ .param p1, "description" # Lorg/junit/runner/Description; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/lang/Exception; │ } │ .end annotation │ │ .prologue │ .line 70 │ iget-object v0, p0, Lorg/junit/runner/Result$Listener;->this$0:Lorg/junit/runner/Result; │ │ invoke-static {}, Ljava/lang/System;->currentTimeMillis()J │ │ - move-result-wide v1 │ + move-result-wide v2 │ │ - invoke-static {v0, v1, v2}, Lorg/junit/runner/Result;->access$002(Lorg/junit/runner/Result;J)J │ + invoke-static {v0, v2, v3}, Lorg/junit/runner/Result;->access$002(Lorg/junit/runner/Result;J)J │ │ .line 71 │ return-void │ .end method ├── smali/org/junit/runner/Result.smali │ @@ -90,27 +90,27 @@ │ .line 17 │ iget-wide v0, p0, Lorg/junit/runner/Result;->fStartTime:J │ │ return-wide v0 │ .end method │ │ .method static synthetic access$002(Lorg/junit/runner/Result;J)J │ - .locals 0 │ + .locals 1 │ .param p0, "x0" # Lorg/junit/runner/Result; │ .param p1, "x1" # J │ │ .prologue │ .line 17 │ iput-wide p1, p0, Lorg/junit/runner/Result;->fStartTime:J │ │ return-wide p1 │ .end method │ │ .method static synthetic access$114(Lorg/junit/runner/Result;J)J │ - .locals 2 │ + .locals 3 │ .param p0, "x0" # Lorg/junit/runner/Result; │ .param p1, "x1" # J │ │ .prologue │ .line 17 │ iget-wide v0, p0, Lorg/junit/runner/Result;->fRunTime:J ├── smali/de/bashtian/dashclocksunrise/SunriseSettingsActivity$1.smali │ @@ -58,32 +58,34 @@ │ │ move-result v0 │ │ .line 62 │ .local v0, "index":I │ if-ltz v0, :cond_1 │ │ + .line 64 │ invoke-virtual {v1}, Landroid/preference/ListPreference;->getEntries()[Ljava/lang/CharSequence; │ │ move-result-object v3 │ │ aget-object v3, v3, v0 │ │ + .line 62 │ :goto_0 │ invoke-virtual {p1, v3}, Landroid/preference/Preference;->setSummary(Ljava/lang/CharSequence;)V │ │ .line 68 │ .end local v0 # "index":I │ .end local v1 # "listPreference":Landroid/preference/ListPreference; │ :cond_0 │ const/4 v3, 0x1 │ │ return v3 │ │ - .line 62 │ + .line 64 │ .restart local v0 # "index":I │ .restart local v1 # "listPreference":Landroid/preference/ListPreference; │ :cond_1 │ const/4 v3, 0x0 │ │ goto :goto_0 │ .end method ├── smali/de/bashtian/dashclocksunrise/SunriseSettingsActivity.smali │ @@ -41,32 +41,35 @@ │ sget-object v0, Lde/bashtian/dashclocksunrise/SunriseSettingsActivity;->sBindPreferenceSummaryToValueListener:Landroid/preference/Preference$OnPreferenceChangeListener; │ │ invoke-virtual {p0, v0}, Landroid/preference/Preference;->setOnPreferenceChangeListener(Landroid/preference/Preference$OnPreferenceChangeListener;)V │ │ .line 86 │ sget-object v0, Lde/bashtian/dashclocksunrise/SunriseSettingsActivity;->sBindPreferenceSummaryToValueListener:Landroid/preference/Preference$OnPreferenceChangeListener; │ │ + .line 88 │ invoke-virtual {p0}, Landroid/preference/Preference;->getContext()Landroid/content/Context; │ │ move-result-object v1 │ │ invoke-static {v1}, Landroid/preference/PreferenceManager;->getDefaultSharedPreferences(Landroid/content/Context;)Landroid/content/SharedPreferences; │ │ move-result-object v1 │ │ + .line 89 │ invoke-virtual {p0}, Landroid/preference/Preference;->getKey()Ljava/lang/String; │ │ move-result-object v2 │ │ const-string v3, "" │ │ invoke-interface {v1, v2, v3}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v1 │ │ + .line 86 │ invoke-interface {v0, p0, v1}, Landroid/preference/Preference$OnPreferenceChangeListener;->onPreferenceChange(Landroid/preference/Preference;Ljava/lang/Object;)Z │ │ .line 90 │ return-void │ .end method │ │ .method private setupSimplePreferencesScreen()V ├── smali/de/bashtian/dashclocksunrise/R.smali │ @@ -19,10 +19,9 @@ │ .method public constructor ()V │ .locals 0 │ │ .prologue │ .line 10 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 30 │ return-void │ .end method ├── smali/de/bashtian/dashclocksunrise/SunriseExtension.smali │ @@ -180,18 +180,20 @@ │ │ move-object/from16 v0, p0 │ │ iget v0, v0, Lde/bashtian/dashclocksunrise/SunriseExtension;->mShowBeforeHours:I │ │ move/from16 v25, v0 │ │ + .line 104 │ invoke-static/range {v25 .. v25}, Ljava/lang/Integer;->toString(I)Ljava/lang/String; │ │ move-result-object v25 │ │ + .line 103 │ move-object/from16 v0, v18 │ │ move-object/from16 v1, v24 │ │ move-object/from16 v2, v25 │ │ invoke-interface {v0, v1, v2}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; │ @@ -357,14 +359,15 @@ │ :goto_1 │ new-instance v24, Ljava/text/SimpleDateFormat; │ │ move-object/from16 v0, v24 │ │ invoke-direct {v0, v8}, Ljava/text/SimpleDateFormat;->(Ljava/lang/String;)V │ │ + .line 137 │ invoke-virtual/range {v19 .. v19}, Ljava/util/Calendar;->getTime()Ljava/util/Date; │ │ move-result-object v25 │ │ invoke-virtual/range {v24 .. v25}, Ljava/text/SimpleDateFormat;->format(Ljava/util/Date;)Ljava/lang/String; │ │ move-result-object v15 │ @@ -373,14 +376,15 @@ │ .local v15, "officialSunriseForDate":Ljava/lang/CharSequence; │ new-instance v24, Ljava/text/SimpleDateFormat; │ │ move-object/from16 v0, v24 │ │ invoke-direct {v0, v8}, Ljava/text/SimpleDateFormat;->(Ljava/lang/String;)V │ │ + .line 139 │ invoke-virtual/range {v21 .. v21}, Ljava/util/Calendar;->getTime()Ljava/util/Date; │ │ move-result-object v25 │ │ invoke-virtual/range {v24 .. v25}, Ljava/text/SimpleDateFormat;->format(Ljava/util/Date;)Ljava/lang/String; │ │ move-result-object v16 │ @@ -480,19 +484,19 @@ │ move-result-wide v12 │ │ .line 148 │ .local v12, "nextChange":J │ :goto_3 │ invoke-static {}, Lde/bashtian/dashclocksunrise/SunriseExtension;->getCurrentTimestamp()J │ │ - move-result-wide v5 │ + move-result-wide v6 │ │ .line 149 │ - .local v5, "currentTimestamp":J │ - sub-long v24, v12, v5 │ + .local v6, "currentTimestamp":J │ + sub-long v24, v12, v6 │ │ move-object/from16 v0, p0 │ │ iget v0, v0, Lde/bashtian/dashclocksunrise/SunriseExtension;->mShowBeforeHours:I │ │ move/from16 v26, v0 │ │ @@ -509,38 +513,41 @@ │ cmp-long v24, v24, v26 │ │ if-gez v24, :cond_5 │ │ const/16 v23, 0x1 │ │ .line 152 │ - .end local v5 # "currentTimestamp":J │ + .end local v6 # "currentTimestamp":J │ .end local v12 # "nextChange":J │ :cond_1 │ :goto_4 │ new-instance v24, Lcom/google/android/apps/dashclock/api/ExtensionData; │ │ invoke-direct/range {v24 .. v24}, Lcom/google/android/apps/dashclock/api/ExtensionData;->()V │ │ + .line 153 │ move-object/from16 v0, v24 │ │ move/from16 v1, v23 │ │ invoke-virtual {v0, v1}, Lcom/google/android/apps/dashclock/api/ExtensionData;->visible(Z)Lcom/google/android/apps/dashclock/api/ExtensionData; │ │ move-result-object v24 │ │ const/high16 v25, 0x7f020000 │ │ + .line 154 │ invoke-virtual/range {v24 .. v25}, Lcom/google/android/apps/dashclock/api/ExtensionData;->icon(I)Lcom/google/android/apps/dashclock/api/ExtensionData; │ │ move-result-object v25 │ │ if-eqz v17, :cond_6 │ │ + .line 155 │ invoke-interface/range {v16 .. v16}, Ljava/lang/CharSequence;->toString()Ljava/lang/String; │ │ move-result-object v24 │ │ :goto_5 │ move-object/from16 v0, v25 │ │ @@ -550,35 +557,38 @@ │ │ move-result-object v25 │ │ if-eqz v17, :cond_7 │ │ move-object/from16 v24, v22 │ │ + .line 156 │ :goto_6 │ move-object/from16 v0, v25 │ │ move-object/from16 v1, v24 │ │ invoke-virtual {v0, v1}, Lcom/google/android/apps/dashclock/api/ExtensionData;->expandedTitle(Ljava/lang/String;)Lcom/google/android/apps/dashclock/api/ExtensionData; │ │ move-result-object v24 │ │ if-eqz v17, :cond_8 │ │ + .line 157 │ .end local v20 # "sunriseText":Ljava/lang/String; │ :goto_7 │ move-object/from16 v0, v24 │ │ move-object/from16 v1, v20 │ │ invoke-virtual {v0, v1}, Lcom/google/android/apps/dashclock/api/ExtensionData;->expandedBody(Ljava/lang/String;)Lcom/google/android/apps/dashclock/api/ExtensionData; │ │ move-result-object v24 │ │ + .line 152 │ move-object/from16 v0, p0 │ │ move-object/from16 v1, v24 │ │ invoke-virtual {v0, v1}, Lde/bashtian/dashclocksunrise/SunriseExtension;->publishUpdate(Lcom/google/android/apps/dashclock/api/ExtensionData;)V │ │ .line 159 │ @@ -595,30 +605,30 @@ │ .end local v16 # "officialSunsetForDate":Ljava/lang/CharSequence; │ .end local v17 # "showSunset":Z │ .end local v19 # "sunrise":Ljava/util/Calendar; │ .end local v21 # "sunset":Ljava/util/Calendar; │ .end local v22 # "sunsetText":Ljava/lang/String; │ .end local v23 # "visible":Z │ :catch_0 │ - move-exception v7 │ + move-exception v5 │ │ .line 106 │ - .local v7, "e":Ljava/lang/NumberFormatException; │ + .local v5, "e":Ljava/lang/NumberFormatException; │ const/16 v24, 0x0 │ │ move/from16 v0, v24 │ │ move-object/from16 v1, p0 │ │ iput v0, v1, Lde/bashtian/dashclocksunrise/SunriseExtension;->mShowBeforeHours:I │ │ goto/16 :goto_0 │ │ .line 133 │ - .end local v7 # "e":Ljava/lang/NumberFormatException; │ + .end local v5 # "e":Ljava/lang/NumberFormatException; │ .restart local v4 # "calculator":Lcom/luckycatlabs/sunrisesunset/SunriseSunsetCalculator; │ .restart local v9 # "isBeforeSunrise":Z │ .restart local v10 # "isBeforeSunset":Z │ .restart local v11 # "location":Lcom/luckycatlabs/sunrisesunset/dto/Location; │ .restart local v14 # "now":Ljava/util/Calendar; │ .restart local v19 # "sunrise":Ljava/util/Calendar; │ .restart local v21 # "sunset":Ljava/util/Calendar; │ @@ -645,23 +655,23 @@ │ invoke-virtual/range {v19 .. v19}, Ljava/util/Calendar;->getTimeInMillis()J │ │ move-result-wide v12 │ │ goto :goto_3 │ │ .line 149 │ - .restart local v5 # "currentTimestamp":J │ + .restart local v6 # "currentTimestamp":J │ .restart local v12 # "nextChange":J │ :cond_5 │ const/16 v23, 0x0 │ │ goto :goto_4 │ │ - .line 152 │ - .end local v5 # "currentTimestamp":J │ + .line 155 │ + .end local v6 # "currentTimestamp":J │ .end local v12 # "nextChange":J │ :cond_6 │ invoke-interface {v15}, Ljava/lang/CharSequence;->toString()Ljava/lang/String; │ │ move-result-object v24 │ │ goto :goto_5 │ @@ -670,14 +680,15 @@ │ move-object/from16 v24, v20 │ │ goto :goto_6 │ │ :cond_8 │ move-object/from16 v20, v22 │ │ + .line 156 │ goto :goto_7 │ .end method │ │ │ # virtual methods │ .method public onDestroy()V │ .locals 0 │ @@ -690,19 +701,19 @@ │ invoke-direct {p0}, Lde/bashtian/dashclocksunrise/SunriseExtension;->disableOneTimeLocationListener()V │ │ .line 189 │ return-void │ .end method │ │ .method protected onUpdateData(I)V │ - .locals 8 │ + .locals 9 │ .param p1, "reason" # I │ │ .prologue │ - const/4 v7, 0x1 │ + const/4 v8, 0x1 │ │ .line 66 │ const-string v3, "SunriseExtension" │ │ new-instance v4, Ljava/lang/StringBuilder; │ │ invoke-direct {v4}, Ljava/lang/StringBuilder;->()V │ @@ -738,15 +749,15 @@ │ │ check-cast v1, Landroid/location/LocationManager; │ │ .line 68 │ .local v1, "lm":Landroid/location/LocationManager; │ sget-object v3, Lde/bashtian/dashclocksunrise/SunriseExtension;->sLocationCriteria:Landroid/location/Criteria; │ │ - invoke-virtual {v1, v3, v7}, Landroid/location/LocationManager;->getBestProvider(Landroid/location/Criteria;Z)Ljava/lang/String; │ + invoke-virtual {v1, v3, v8}, Landroid/location/LocationManager;->getBestProvider(Landroid/location/Criteria;Z)Ljava/lang/String; │ │ move-result-object v2 │ │ .line 69 │ .local v2, "provider":Ljava/lang/String; │ invoke-static {v2}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z │ │ @@ -791,27 +802,28 @@ │ │ move-result-object v0 │ │ .line 76 │ .local v0, "lastLocation":Landroid/location/Location; │ if-eqz v0, :cond_1 │ │ + .line 77 │ invoke-static {}, Landroid/os/SystemClock;->elapsedRealtimeNanos()J │ │ - move-result-wide v3 │ + move-result-wide v4 │ │ invoke-virtual {v0}, Landroid/location/Location;->getElapsedRealtimeNanos()J │ │ - move-result-wide v5 │ + move-result-wide v6 │ │ - sub-long/2addr v3, v5 │ + sub-long/2addr v4, v6 │ │ - const-wide v5, 0x8bb2c97000L │ + const-wide v6, 0x8bb2c97000L │ │ - cmp-long v3, v3, v5 │ + cmp-long v3, v4, v6 │ │ if-ltz v3, :cond_2 │ │ .line 79 │ :cond_1 │ const-string v3, "SunriseExtension" │ │ @@ -819,15 +831,15 @@ │ │ invoke-static {v3, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I │ │ .line 81 │ invoke-direct {p0}, Lde/bashtian/dashclocksunrise/SunriseExtension;->disableOneTimeLocationListener()V │ │ .line 82 │ - iput-boolean v7, p0, Lde/bashtian/dashclocksunrise/SunriseExtension;->mOneTimeLocationListenerActive:Z │ + iput-boolean v8, p0, Lde/bashtian/dashclocksunrise/SunriseExtension;->mOneTimeLocationListenerActive:Z │ │ .line 83 │ iget-object v3, p0, Lde/bashtian/dashclocksunrise/SunriseExtension;->mOneTimeLocationListener:Landroid/location/LocationListener; │ │ const/4 v4, 0x0 │ │ invoke-virtual {v1, v2, v3, v4}, Landroid/location/LocationManager;->requestSingleUpdate(Ljava/lang/String;Landroid/location/LocationListener;Landroid/os/Looper;)V ├── smali/de/bashtian/dashclocksunrise/SunriseExtension$1.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lde/bashtian/dashclocksunrise/SunriseExtension; │ │ │ # direct methods │ .method constructor (Lde/bashtian/dashclocksunrise/SunriseExtension;)V │ .locals 0 │ + .param p1, "this$0" # Lde/bashtian/dashclocksunrise/SunriseExtension; │ │ .prologue │ .line 165 │ iput-object p1, p0, Lde/bashtian/dashclocksunrise/SunriseExtension$1;->this$0:Lde/bashtian/dashclocksunrise/SunriseExtension; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── res/drawable-xhdpi-v4/ic_sunrise.png │ ├── sng │ │ @@ -1,14 +1,14 @@ │ │ #SNG: from stdin │ │ IHDR { │ │ width: 96; height: 96; bitdepth: 8; │ │ using color palette; │ │ } │ │ PLTE { │ │ - (255,255,255) # rgb = (0xff,0xff,0xff) grey100 │ │ + ( 0, 0, 0) # rgb = (0x00,0x00,0x00) grey0 │ │ (255,255,255) # rgb = (0xff,0xff,0xff) grey100 │ │ (255,255,255) # rgb = (0xff,0xff,0xff) grey100 │ │ (255,255,255) # rgb = (0xff,0xff,0xff) grey100 │ │ (255,255,255) # rgb = (0xff,0xff,0xff) grey100 │ │ (255,255,255) # rgb = (0xff,0xff,0xff) grey100 │ │ (255,255,255) # rgb = (0xff,0xff,0xff) grey100 │ │ (255,255,255) # rgb = (0xff,0xff,0xff) grey100 │ │ @@ -238,107 +238,107 @@ │ │ (255,255,255) # rgb = (0xff,0xff,0xff) grey100 │ │ (255,255,255) # rgb = (0xff,0xff,0xff) grey100 │ │ (255,255,255) # rgb = (0xff,0xff,0xff) grey100 │ │ (255,255,255) # rgb = (0xff,0xff,0xff) grey100 │ │ (255,255,255) # rgb = (0xff,0xff,0xff) grey100 │ │ } │ │ tRNS { │ │ - 0 104 42 34 244 201 3 1 188 255 118 102 247 40 81 16 28 240 198 67 69 204 231 96 181 114 27 169 133 236 199 49 92 246 38 5 116 243 167 14 253 151 20 24 237 64 213 203 47 235 2 171 25 165 238 79 206 56 84 37 4 113 242 18 111 254 159 232 195 211 53 144 88 177 123 210 158 194 19 228 51 153 129 108 83 60 39 13 9 23 45 71 94 193 215 8 224 186 141 91 89 137 252 229 251 168 107 17 103 175 54 170 10 192 248 43 127 152 163 164 46 106 245 110 87 223 52 68 162 233 166 74 44 219 12 6 220 225 21 202 200 173 217 191 117 15 7 147 11 205 221 66 126 140 218 135 26 119 226 249 176 80 182 124 131 148 57 216 250 48 125 30 95 187 190 97 241 59 157 36 77 22 234 138 50 58 98 172 85 75 174 93 29 150 90 189 78 72 207 185 62 82 86 179 178 183 55 161 105 155 196 63 239 70 156 146 142 136 130 101 35 227 139 209 197 65 41 132 230 145 115 134 100 212 154 222} │ │ + 0 104 42 34 244 201 3 1 188 118 102 247 40 81 16 28 240 198 67 69 204 231 96 181 114 27 169 133 236 199 49 92 246 38 5 116 243 167 14 253 151 20 24 237 64 213 203 47 235 2 171 25 165 238 79 206 56 84 37 4 113 242 18 111 254 159 232 195 211 53 144 88 177 123 210 158 194 19 228 51 153 129 108 83 60 39 13 9 23 45 71 94 193 215 8 224 186 141 91 89 137 252 229 251 168 107 17 103 175 54 170 10 192 248 43 127 152 163 164 46 106 245 110 87 223 52 68 162 233 166 74 44 219 12 6 220 225 21 202 200 173 217 191 117 15 7 147 11 205 221 66 126 140 218 135 26 119 226 249 176 80 182 124 131 148 57 216 250 48 125 30 95 187 190 97 241 59 157 36 77 22 234 138 50 58 98 172 85 75 174 93 29 150 90 189 78 72 207 185 62 82 86 179 178 183 55 161 105 155 196 63 239 70 156 146 142 136 130 101 35 227 139 209 197 65 41 132 230 145 115 134 100 212 154 222} │ │ IMAGE { │ │ pixels hex │ │ 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 │ │ 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 │ │ 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 │ │ 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 │ │ 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 │ │ 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 │ │ 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 │ │ 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000304050600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 │ │ -000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070809090a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 │ │ -0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b0909090c0d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 │ │ -00000000000000000000000000000000000000000000000000000000000e0f0000000000000000000000000010110909090912060000000000000000000000000013140000000000000000000000000000000000000000000000000000000000 │ │ -0000000000000000000000000000000000000000000000000000000000151617070000000000000000000000180909090909091900000000000000000000001a1b091c0000000000000000000000000000000000000000000000000000000000 │ │ -00000000000000000000000000000000000000000000000000000000001d09091e1f0000000000000000002009090909090909212200000000000000002324250909260000000000000000000000000000000000000000000000000000000000 │ │ -00000000000000000000000000000000000000000000000000000000270909090928292a0000000000002b2c090909090909090912060000000000002d2e090909092f0000000000000000000000000000000000000000000000000000000000 │ │ -000000000000000000000000000000000000000000000000000000003009090909090931013200000000330909090909090909090919000000003435090909090909360000000000000000000000000000000000000000000000000000000000 │ │ -00000000000000000000000000000000000000000000000000000000370909090909090909383900003a0909090909090909090909213b003c3d3e09090909090909093f00000000000000000000000000000000000000000000000000000000 │ │ -000000000000000000000000000000000000000000000000000000004009090909090909090941420243090909090909090909090909442d45090909090909090909094600000000000000000000000000000000000000000000000000000000 │ │ -000000000000000000000000000000000000000000000000000000004709090909090909090909094109090909090909090909090909090909090909090909090909094800000000000000000000000000000000000000000000000000000000 │ │ -000000000000000000000000000000000000000000000000000000004909090909090909090909090909090909090909090909090909090909090909090909090909094a00000000000000000000000000000000000000000000000000000000 │ │ -000000000000000000000000000000000000000000000000000000004b09090909090909090909090909090909090909090909090909090909090909090909090909094c00000000000000000000000000000000000000000000000000000000 │ │ -000000000000000000000000000000000000000000000000000000003e09090909090909090909090909090909090909090909090909090909090909090909090909094d00000000000000000000000000000000000000000000000000000000 │ │ -0000000000000000000000000000000000000000000000000000004e0909090909090909090909090909090909090909090909090909090909090909090909090909094f00000000000000000000000000000000000000000000000000000000 │ │ -0000000000000000000000000000504951525354555657000000005009090909090909090909090909090909090941363628090909090909090909090909090909090941580007595a5b5c0a47265d5e1d3f0000000000000000000000000000 │ │ -00000000000000000000000000005f250909090909090921601e496109090909090909090909090928386263462a000000003f5064652f6609090909090909090909090945676809090909090909090961000000000000000000000000000000 │ │ -0000000000000000000000000000006909090909090909090909090909090909090909090909126a2a00000000000000000000000000006b0b4d410909090909090909090909090909090909090909096c000000000000000000000000000000 │ │ -0000000000000000000000000000005409090909090909090909090909090909090909416d6e0000000000000000000000000000000000000000306f280909090909090909090909090909090909092859000000000000000000000000000000 │ │ -00000000000000000000000000000070040909090909090909090909090909090909156e0000000000000000000000000000000000000000000000001f1e09090909090909090909090909090909097100000000000000000000000000000000 │ │ -0000000000000000000000000000000033090909090909090909090909090909721932000000000000000773647475767751526378320000000000000032797a0909090909090909090909090909097b00000000000000000000000000000000 │ │ -000000000000000000000000000000007c09090909090909090909090909097d7e000000000000067f80810909090909090909090931828306000000000000848509090909090909090909090909411000000000000000000000000000000000 │ │ -00000000000000000000000000000000862109090909090909090909090915590000000000870b8809090909090909090909090909090909896a5f00000000008a8b0909090909090909090909098c0000000000000000000000000000000000 │ │ -00000000000000000000000000000000008d09090909090909090909094d5700000000007f8e090909090909090909090909090909090909090988830000000000868f0909090909090909090909900000000000000000000000000000000000 │ │ -000000000000000000000000000000000064090909090909090909094b91000000009293090909090909090909090909090909090909090909090909515f00000000948c09090909090909090909030000000000000000000000000000000000 │ │ -0000000000000000000000000000000000277209090909090909094310000000008a8c0909090909090909090909090909090909090909090909090909952b000000005916090909090909090938000000000000000000000000000000000000 │ │ -0000000000000000000000000000000000004909090909090909661400000000108e090909090909090909090909090909090909090909090909090909099610000000009766090909090909094a000000000000000000000000000000000000 │ │ -000000000000000000000000000000000000980909090909090999000000000f4b0909090909090909090909090909090909090909090909090909090909099a8a0000000065090909090909099b3f0000000000000000000000000000000000 │ │ -0000000000000000000000000000009c9d5e090909090909099e86000000060809090909090909090909090909090909090909090909090909090909090909094d230000009489090909090909099fa0a1920000000000000000000000000000 │ │ -0000000000000000000000005863a2660909090909090909096400000000a309090909090909090909090909090909090909090909090909090909090909090909a4000000007c090909090909090909092ca5a6000000000000000000000000 │ │ -00000000000000000000a651110909090909090909090909a73200000084a80909090909090909090909090909090909090909090909090909090909090909090968a9000000325e090909090909090909090909a7aaab000000000000000000 │ │ -000000000000009c9d5e0909090909090909090909090909ac00000000ad090909090909090909090909090909090909090909090909090909090909090909090909ae000000005c0909090909090909090909090909415daf91000000000000 │ │ -0000000000001366090909090909090909090909090909b070000000b109090909090909090909090909090909090909090909090909090909090909090909090909095500000070b00909090909090909090909090909096010000000000000 │ │ -000000000000004a090909090909090909090909090909b200000000a00909090909090909090909090909090909090909090909090909090909090909090909090909a0000000004c09090909090909090909090909094fb300000000000000 │ │ -0000000000000000520909090909090909090909090909b4000000b5a80909090909090909090909090909090909090909090909090909090909090909090909090909a8b5000000b409090909090909090909090909b6730000000000000000 │ │ -000000000000000000b709090909090909090909090966910000006c090909090909090909090909090909090909090909090909090909090909090909090909090909096c0000000f66090909090909090909090911b8000000000000000000 │ │ -00000000000000000000470909090909090909090909150000000033090909090909090909090909090909090909090909090909090909090909090909090909090909096f0000000095090909090909090909097ab900000000000000000000 │ │ -00000000000000000000077509090909090909090909760000000043090909090909090909090909090909090909090909090909090909090909090909090909090909091600000000770909090909090909090c130000000000000000000000 │ │ -000000000000000000000007420909090909090909094a0000006b0909090909090909090909090909090909090909090909090909090909090909090909090909090909090f000000a309090909090909099fb4000000000000000000000000 │ │ -00000000000000000000000006260909090909090909170000006e0909090909090909090909090909090909090909090909090909090909090909090909090909090909097e000000ba09090909090909667c00000000000000000000000000 │ │ -0000000000000000000000000006bb090909090909093a0000001409090909090909090909090909090909090909090909090909090909090909090909090909090909090913000000bc09090909090941ba0000000000000000000000000000 │ │ -0000000000000000000000000000878f090909090909bd00000037090909090909090909090909090909090909090909090909090909090909090909090909090909090909bd000000bd090909090909be000000000000000000000000000000 │ │ -0000000000000000000000000000501109090909090937000000830909090909090909090909090909090909090909090909090909090909090909090909090909090909095b000000a109090909090909400000000000000000000000000000 │ │ -0000000000000000000000000084b60909090909090920000000b1090909090909090909090909090909090909090909090909090909090909090909090909090909090909b9000000bf09090909090909416c00000000000000000000000000 │ │ -000000000000000000000000b36709090909090909093d000000ab090909090909090909090909090909090909090909090909090909090909090909090909090909090909c00000003d090909090909090941af000000000000000000000000 │ │ -00000000000000000000001089090909090909090909c100000007040909090909090909090909090909090909090909090909090909090909090909090909090909090925000000002909090909090909090966c20000000000000000000000 │ │ -00000000000000000000598509090909090909090909c300000000710909090909090909090909090909090909090909090909090909090909090909090909090909090971000000008f09090909090909090909663a00000000000000000000 │ │ -0000000000000000004e4b0909090909090909090909b03c000000aa09090909090909090909090909090909090909090909090909090909090909090909090909090909aa0000003c3e09090909090909090909099fc4000000000000000000 │ │ -0000000000000000918b09090909090909090909090909a6000000780909090909090909090909090909090909090909090909090909090909090909090909090909090978000000b9090909090909090909090909099fc50000000000000000 │ │ -00000000000000704d09090909090909090909090909097400000000c60909090909090909090909090909090909090909090909090909090909090909090909090909c6000000005209090909090909090909090909097a1300000000000000 │ │ -00000000000087c7090909090909090909090909090909a700000000af0909090909090909090909090909090909090909090909090909090909090909090909090909ba00000007960909090909090909090909090909097ab9000000000000 │ │ -00000000000022772109090909090909090909090909090955000000237d0909090909090909090909090909090909090909090909090909090909090909090909096087000000c809090909090909090909090909096618bc92000000000000 │ │ -000000000000000057178f280909090909090909090909096d00000000c9090909090909090909090909090909090909090909090909090909090909090909090909ca00000000cb0909090909090909090909095e9d9c000000000000000000 │ │ -0000000000000000000000ab4a5e09090909090909090909413000000000cc09090909090909090909090909090909090909090909090909090909090909090909a20000000030410909090909090909091151a6000000000000000000000000 │ │ -00000000000000000000000000006e931d0909090909090909ae070000002a9e0909090909090909090909090909090909090909090909090909090909090909433400000000080909090909090928ad63580000000000000000000000000000 │ │ -000000000000000000000000000000002337cd090909090909096300000000ce7a0909090909090909090909090909090909090909090909090909090909097ace000000006409090909090909cfab0000000000000000000000000000000000 │ │ -000000000000000000000000000000000000d00909090909090931c0000000007f0c090909090909090909090909090909090909090909090909090909099fb4000000009cb609090909090909d1000000000000000000000000000000000000 │ │ -000000000000000000000000000000000000ad0909090909090909d22300000000d3d409090909090909090909090909090909090909090909090909093e1300000000064d09090909090909091d230000000000000000000000000000000000 │ │ -00000000000000000000000000000000004ea80909090909090909094c07000000000d4b0909090909090909090909090909090909090909090909095e840000000000c109090909090909090909d50000000000000000000000000000000000 │ │ -0000000000000000000000000000000000af09090909090909090909096500000000005fb7a8090909090909090909090909090909090909090968479400000000009b0909090909090909090909d60000000000000000000000000000000000 │ │ -0000000000000000000000000000000000cc090909090909090909090909d73200000000000233280909090909090909090909090909090941a0300000000000071c0909090909090909090909091d2300000000000000000000000000000000 │ │ -000000000000000000000000000000002772090909090909090909090909096f860000000000000d656709090909090909090909090916d80200000000000070770909090909090909090909090909d500000000000000000000000000000000 │ │ -00000000000000000000000000000000480909090909090909090909090909099a1f00000000000000075a40d15d8e4f679a44b23d1f3200000000000000845e090909090909090909090909090909b200000000000000000000000000000000 │ │ -0000000000000000000000000000000033090909090909090909090909090909099fd98600000000000000000000000000000000000000000000000058da9f090909090909090909090909090909091d23000000000000000000000000000000 │ │ -0000000000000000000000000000005804090909090909090909090909090909090909896a5f000000000000000000000000000000000000000087db7d090909090909090909090909090909090909095b000000000000000000000000000000 │ │ -0000000000000000000000000000000e09090909090909090909090909090909090909090916da5600000000000000000000000000000000dc98dd090909090909090909090909090909090909090909b2000000000000000000000000000000 │ │ -0000000000000000000000000000008009090909090909090909090909090909090909090909090995de839c0000000000000000595bd9054109090909090909090909090428090909090909090909091d230000000000000000000000000000 │ │ -000000000000000000000000000087110909726012a0c1746cc46e78090909090909090909090909090909093edfad6dbeadc61109090909090909090909090909090909bd3259842d647ba4d1a0e085255b0000000000000000000000000000 │ │ -000000000000000000000000000091e1023f00000000000000000000d4090909090909090909090909090909090909090909090909090909090909090909090909090909e2000000000000000000000000000000000000000000000000000000 │ │ -00000000000000000000000000000000000000000000000000000000150909090909090909090909090909090909090909090909090909090909090909090909090909415f000000000000000000000000000000000000000000000000000000 │ │ -000000000000000000000000000000000000000000000000000000008209090909090909090909090909090909090909090909090909090909090909090909090909094f00000000000000000000000000000000000000000000000000000000 │ │ -00000000000000000000000000000000000000000000000000000000e309090909090909090909090909090909090909090909090909090909090909090909090909094d00000000000000000000000000000000000000000000000000000000 │ │ -000000000000000000000000000000000000000000000000000000005c0909090909090909090909090909090909090909090909090909090909090909090909090909cf00000000000000000000000000000000000000000000000000000000 │ │ -00000000000000000000000000000000000000000000000000000000b1090909090909090909099fd99a0909090909090909090909099f7985090909090909090909099800000000000000000000000000000000000000000000000000000000 │ │ -00000000000000000000000000000000000000000000000000000000b5090909090909090909aee200552809090909090909090909097400874a0409090909090909092000000000000000000000000000000000000000000000000000000000 │ │ -0000000000000000000000000000000000000000000000000000000000b0090909090909e4630000000047090909090909090909094b87000000ab6f09090909090909b100000000000000000000000000000000000000000000000000000000 │ │ -0000000000000000000000000000000000000000000000000000000000380909090968e591000000000094880909090909090909666e000000000000972e09090909093400000000000000000000000000000000000000000000000000000000 │ │ -00000000000000000000000000000000000000000000000000000000006909090912a90000000000000000d341090909090909099900000000000000003ce6b009097a0000000000000000000000000000000000000000000000000000000000 │ │ -0000000000000000000000000000000000000000000000000000000000e70931e80700000000000000000000a5090909090909885800000000000000000000348041e90000000000000000000000000000000000000000000000000000000000 │ │ -00000000000000000000000000000000000000000000000000000000005cea2a000000000000000000000000948809090909412d0000000000000000000000000055a40000000000000000000000000000000000000000000000000000000000 │ │ -000000000000000000000000000000000000000000000000000000000032000000000000000000000000000000d34109090951000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 │ │ -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a50909dd91000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 │ │ -0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000086eb09b400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 │ │ -000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013350000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 │ │ -000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000870000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 │ │ +0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000708ebeb0900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 │ │ +0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000aebebeb0b0c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 │ │ +00000000000000000000000000000000000000000000000000000000000d0e000000000000000000000000000f10ebebebeb11060000000000000000000000000012130000000000000000000000000000000000000000000000000000000000 │ │ +000000000000000000000000000000000000000000000000000000000014151607000000000000000000000017ebebebebebeb180000000000000000000000191aeb1b0000000000000000000000000000000000000000000000000000000000 │ │ +00000000000000000000000000000000000000000000000000000000001cebeb1d1e0000000000000000001febebebebebebeb20210000000000000000222324ebeb250000000000000000000000000000000000000000000000000000000000 │ │ +0000000000000000000000000000000000000000000000000000000026ebebebeb2728290000000000002a2bebebebebebebebeb11060000000000002c2debebebeb2e0000000000000000000000000000000000000000000000000000000000 │ │ +000000000000000000000000000000000000000000000000000000002febebebebebeb3001310000000032ebebebebebebebebebeb18000000003334ebebebebebeb350000000000000000000000000000000000000000000000000000000000 │ │ +0000000000000000000000000000000000000000000000000000000036ebebebebebebebeb3738000039ebebebebebebebebebebeb203a003b3c3debebebebebebebeb3e00000000000000000000000000000000000000000000000000000000 │ │ +000000000000000000000000000000000000000000000000000000003febebebebebebebebeb40410242ebebebebebebebebebebebeb432c44ebebebebebebebebebeb4500000000000000000000000000000000000000000000000000000000 │ │ +0000000000000000000000000000000000000000000000000000000046ebebebebebebebebebebeb40ebebebebebebebebebebebebebebebebebebebebebebebebebeb4700000000000000000000000000000000000000000000000000000000 │ │ +0000000000000000000000000000000000000000000000000000000048ebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebeb4900000000000000000000000000000000000000000000000000000000 │ │ +000000000000000000000000000000000000000000000000000000004aebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebeb4b00000000000000000000000000000000000000000000000000000000 │ │ +000000000000000000000000000000000000000000000000000000003debebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebeb4c00000000000000000000000000000000000000000000000000000000 │ │ +0000000000000000000000000000000000000000000000000000004debebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebeb4e00000000000000000000000000000000000000000000000000000000 │ │ +00000000000000000000000000004f4850515253545556000000004febebebebebebebebebebebebebebebebebeb40353527ebebebebebebebebebebebebebebebebeb4057000758595a5b0946255c5d1c3e0000000000000000000000000000 │ │ +00000000000000000000000000005e24ebebebebebebeb205f1d4860ebebebebebebebebebebebeb273761624529000000003e4f63642e65ebebebebebebebebebebebeb446667ebebebebebebebebeb60000000000000000000000000000000 │ │ +00000000000000000000000000000068ebebebebebebebebebebebebebebebebebebebebebeb11692900000000000000000000000000006a0a4c40ebebebebebebebebebebebebebebebebebebebebeb6b000000000000000000000000000000 │ │ +00000000000000000000000000000053ebebebebebebebebebebebebebebebebebebeb406c6d00000000000000000000000000000000000000002f6e27ebebebebebebebebebebebebebebebebebeb2758000000000000000000000000000000 │ │ +0000000000000000000000000000006f04ebebebebebebebebebebebebebebebebeb146d0000000000000000000000000000000000000000000000001e1debebebebebebebebebebebebebebebebeb7000000000000000000000000000000000 │ │ +0000000000000000000000000000000032ebebebebebebebebebebebebebebeb7118310000000000000007726373747576505162773100000000000000317879ebebebebebebebebebebebebebebeb7a00000000000000000000000000000000 │ │ +000000000000000000000000000000007bebebebebebebebebebebebebebeb7c7d000000000000067e7f80ebebebebebebebebebeb308182060000000000008384ebebebebebebebebebebebebeb400f00000000000000000000000000000000 │ │ +000000000000000000000000000000008520ebebebebebebebebebebebeb14580000000000860a87ebebebebebebebebebebebebebebebeb88695e0000000000898aebebebebebebebebebebebeb8b0000000000000000000000000000000000 │ │ +00000000000000000000000000000000008cebebebebebebebebebebeb4c5600000000007e8debebebebebebebebebebebebebebebebebebebeb87820000000000858eebebebebebebebebebebeb8f0000000000000000000000000000000000 │ │ +000000000000000000000000000000000063ebebebebebebebebebeb4a90000000009192ebebebebebebebebebebebebebebebebebebebebebebebeb505e00000000938bebebebebebebebebebeb030000000000000000000000000000000000 │ │ +00000000000000000000000000000000002671ebebebebebebebeb420f00000000898bebebebebebebebebebebebebebebebebebebebebebebebebebeb942a000000005815ebebebebebebebeb37000000000000000000000000000000000000 │ │ +00000000000000000000000000000000000048ebebebebebebeb6513000000000f8debebebebebebebebebebebebebebebebebebebebebebebebebebebeb950f000000009665ebebebebebebeb49000000000000000000000000000000000000 │ │ +00000000000000000000000000000000000097ebebebebebebeb98000000000e4aebebebebebebebebebebebebebebebebebebebebebebebebebebebebebeb99890000000064ebebebebebebeb9a3e0000000000000000000000000000000000 │ │ +0000000000000000000000000000009b9c5debebebebebebeb9d850000000608ebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebeb4c220000009388ebebebebebebeb9e9fa0910000000000000000000000000000 │ │ +0000000000000000000000005762a165ebebebebebebebebeb6300000000a2ebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebeba3000000007bebebebebebebebebebeb2ba4a5000000000000000000000000 │ │ +00000000000000000000a55010ebebebebebebebebebebeba63100000083a7ebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebeb67a8000000315debebebebebebebebebebebeba6a9aa000000000000000000 │ │ +000000000000009b9c5debebebebebebebebebebebebebebab00000000acebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebad000000005bebebebebebebebebebebebebebeb405cae90000000000000 │ │ +0000000000001265ebebebebebebebebebebebebebebebaf6f000000b0ebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebeb540000006fafebebebebebebebebebebebebebebeb5f0f000000000000 │ │ +0000000000000049ebebebebebebebebebebebebebebebb1000000009febebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebeb9f000000004bebebebebebebebebebebebebebeb4eb200000000000000 │ │ +000000000000000051ebebebebebebebebebebebebebebb3000000b4a7ebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebeba7b4000000b3ebebebebebebebebebebebebebb5720000000000000000 │ │ +000000000000000000b6ebebebebebebebebebebebeb65900000006bebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebeb6b0000000e65ebebebebebebebebebebeb10b7000000000000000000 │ │ +0000000000000000000046ebebebebebebebebebebeb140000000032ebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebeb6e0000000094ebebebebebebebebebeb79b800000000000000000000 │ │ +000000000000000000000774ebebebebebebebebebeb750000000042ebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebeb150000000076ebebebebebebebebeb0b120000000000000000000000 │ │ +00000000000000000000000741ebebebebebebebebeb490000006aebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebeb0e000000a2ebebebebebebebeb9eb3000000000000000000000000 │ │ +0000000000000000000000000625ebebebebebebebeb160000006debebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebeb7d000000b9ebebebebebebeb657b00000000000000000000000000 │ │ +0000000000000000000000000006baebebebebebebeb3900000013ebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebeb12000000bbebebebebebeb40b90000000000000000000000000000 │ │ +0000000000000000000000000000868eebebebebebebbc00000036ebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebbc000000bcebebebebebebbd000000000000000000000000000000 │ │ +00000000000000000000000000004f10ebebebebebeb3600000082ebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebeb5a000000a0ebebebebebebeb3f0000000000000000000000000000 │ │ +0000000000000000000000000083b5ebebebebebebeb1f000000b0ebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebb8000000beebebebebebebeb406b00000000000000000000000000 │ │ +000000000000000000000000b266ebebebebebebebeb3c000000aaebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebbf0000003cebebebebebebebeb40ae000000000000000000000000 │ │ +00000000000000000000000f88ebebebebebebebebebc00000000704ebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebeb240000000028ebebebebebebebebeb65c10000000000000000000000 │ │ +000000000000000000005884ebebebebebebebebebebc20000000070ebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebeb70000000008eebebebebebebebebebeb653900000000000000000000 │ │ +0000000000000000004d4aebebebebebebebebebebebaf3b000000a9ebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebeba90000003b3debebebebebebebebebebeb9ec3000000000000000000 │ │ +0000000000000000908aebebebebebebebebebebebebeba500000077ebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebeb77000000b8ebebebebebebebebebebebebeb9ec40000000000000000 │ │ +000000000000006f4cebebebebebebebebebebebebebeb7300000000c5ebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebc50000000051ebebebebebebebebebebebebebeb791200000000000000 │ │ +00000000000086c6ebebebebebebebebebebebebebebeba600000000aeebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebb90000000795ebebebebebebebebebebebebebebeb79b8000000000000 │ │ +000000000000217620ebebebebebebebebebebebebebebeb54000000227cebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebeb5f86000000c7ebebebebebebebebebebebebebeb6517bb91000000000000 │ │ +000000000000000056168e27ebebebebebebebebebebebeb6c00000000c8ebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebc900000000caebebebebebebebebebebebeb5d9c9b000000000000000000 │ │ +0000000000000000000000aa495debebebebebebebebebeb402f00000000cbebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebeba1000000002f40ebebebebebebebebeb1050a5000000000000000000000000 │ │ +00000000000000000000000000006d921cebebebebebebebebad07000000299debebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebeb42330000000008ebebebebebebeb27ac62570000000000000000000000000000 │ │ +000000000000000000000000000000002236ccebebebebebebeb6200000000cd79ebebebebebebebebebebebebebebebebebebebebebebebebebebebebebeb79cd0000000063ebebebebebebebceaa0000000000000000000000000000000000 │ │ +000000000000000000000000000000000000cfebebebebebebeb30bf000000007e0bebebebebebebebebebebebebebebebebebebebebebebebebebebebeb9eb3000000009bb5ebebebebebebebd0000000000000000000000000000000000000 │ │ +000000000000000000000000000000000000acebebebebebebebebd12200000000d2d3ebebebebebebebebebebebebebebebebebebebebebebebebebeb3d1200000000064cebebebebebebebeb1c220000000000000000000000000000000000 │ │ +00000000000000000000000000000000004da7ebebebebebebebebeb4b07000000000c4aebebebebebebebebebebebebebebebebebebebebebebebeb5d830000000000c0ebebebebebebebebebebd40000000000000000000000000000000000 │ │ +0000000000000000000000000000000000aeebebebebebebebebebebeb6400000000005eb6a7ebebebebebebebebebebebebebebebebebebebeb67469300000000009aebebebebebebebebebebebd50000000000000000000000000000000000 │ │ +0000000000000000000000000000000000cbebebebebebebebebebebebebd6310000000000023227ebebebebebebebebebebebebebebebeb409f2f0000000000071bebebebebebebebebebebebeb1c2200000000000000000000000000000000 │ │ +000000000000000000000000000000002671ebebebebebebebebebebebebeb6e850000000000000c6466ebebebebebebebebebebebeb15d7020000000000006f76ebebebebebebebebebebebebebebd400000000000000000000000000000000 │ │ +0000000000000000000000000000000047ebebebebebebebebebebebebebebeb991e0000000000000007593fd05c8d4e669943b13c1e3100000000000000835debebebebebebebebebebebebebebebb100000000000000000000000000000000 │ │ +0000000000000000000000000000000032ebebebebebebebebebebebebebebebeb9ed88500000000000000000000000000000000000000000000000057d99eebebebebebebebebebebebebebebebeb1c22000000000000000000000000000000 │ │ +0000000000000000000000000000005704ebebebebebebebebebebebebebebebebebeb88695e000000000000000000000000000000000000000086da7cebebebebebebebebebebebebebebebebebebeb5a000000000000000000000000000000 │ │ +0000000000000000000000000000000debebebebebebebebebebebebebebebebebebebebeb15d95500000000000000000000000000000000db97dcebebebebebebebebebebebebebebebebebebebebebb1000000000000000000000000000000 │ │ +0000000000000000000000000000007febebebebebebebebebebebebebebebebebebebebebebebeb94dd829b0000000000000000585ad80540ebebebebebebebebebebeb0427ebebebebebebebebebeb1c220000000000000000000000000000 │ │ +00000000000000000000000000008610ebeb715f119fc0736bc36d77ebebebebebebebebebebebebebebebeb3ddeac6cbdacc510ebebebebebebebebebebebebebebebebbc3158832c637aa3d09fdf84245a0000000000000000000000000000 │ │ +000000000000000000000000000090e0023e00000000000000000000d3ebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebe1000000000000000000000000000000000000000000000000000000 │ │ +0000000000000000000000000000000000000000000000000000000014ebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebeb405e000000000000000000000000000000000000000000000000000000 │ │ +0000000000000000000000000000000000000000000000000000000081ebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebeb4e00000000000000000000000000000000000000000000000000000000 │ │ +00000000000000000000000000000000000000000000000000000000e2ebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebeb4c00000000000000000000000000000000000000000000000000000000 │ │ +000000000000000000000000000000000000000000000000000000005bebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebce00000000000000000000000000000000000000000000000000000000 │ │ +00000000000000000000000000000000000000000000000000000000b0ebebebebebebebebebeb9ed899ebebebebebebebebebebebeb9e7884ebebebebebebebebebeb9700000000000000000000000000000000000000000000000000000000 │ │ +00000000000000000000000000000000000000000000000000000000b4ebebebebebebebebebade1005427ebebebebebebebebebebeb7300864904ebebebebebebebeb1f00000000000000000000000000000000000000000000000000000000 │ │ +0000000000000000000000000000000000000000000000000000000000afebebebebebebe3620000000046ebebebebebebebebebeb4a86000000aa6eebebebebebebebb000000000000000000000000000000000000000000000000000000000 │ │ +000000000000000000000000000000000000000000000000000000000037ebebebeb67e49000000000009387ebebebebebebebeb656d000000000000962debebebebeb3300000000000000000000000000000000000000000000000000000000 │ │ +000000000000000000000000000000000000000000000000000000000068ebebeb11a80000000000000000d240ebebebebebebeb9800000000000000003be5afebeb790000000000000000000000000000000000000000000000000000000000 │ │ +0000000000000000000000000000000000000000000000000000000000e6eb30e70700000000000000000000a4ebebebebebeb875700000000000000000000337f40e80000000000000000000000000000000000000000000000000000000000 │ │ +00000000000000000000000000000000000000000000000000000000005be9290000000000000000000000009387ebebebeb402c0000000000000000000000000054a30000000000000000000000000000000000000000000000000000000000 │ │ +000000000000000000000000000000000000000000000000000000000031000000000000000000000000000000d240ebebeb50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 │ │ +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a4ebebdc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 │ │ +0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000085eaebb300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 │ │ +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012340000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 │ │ +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000860000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 │ │ 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 │ │ 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 │ │ 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 │ │ 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 │ │ } │ ├── Image content