{"diffoscope-json-version": 1, "source1": "/srv/reproducible-results/rbuild-debian/r-b-build.8zfIdCKc/b1/pandas_2.2.3+dfsg-8_arm64.changes", "source2": "/srv/reproducible-results/rbuild-debian/r-b-build.8zfIdCKc/b2/pandas_2.2.3+dfsg-8_arm64.changes", "unified_diff": null, "details": [{"source1": "Files", "source2": "Files", "unified_diff": "@@ -1,5 +1,5 @@\n \n- 1b1d785b7b3921c742e1f5fd3014c996 10793780 doc optional python-pandas-doc_2.2.3+dfsg-8_all.deb\n- b82025b39799b33c0c035eac8a4943c9 70934760 debug optional python3-pandas-lib-dbgsym_2.2.3+dfsg-8_arm64.deb\n- ab1541411f7241c7230e430ae2e37ec7 6025904 python optional python3-pandas-lib_2.2.3+dfsg-8_arm64.deb\n+ 481b7f1a085ddfc958458a42cab259e2 10793776 doc optional python-pandas-doc_2.2.3+dfsg-8_all.deb\n+ 8f04d3428e523868db590d729ceeefe4 70943328 debug optional python3-pandas-lib-dbgsym_2.2.3+dfsg-8_arm64.deb\n+ d5206db7c636db49d3efce5f5cf8f753 6025516 python optional python3-pandas-lib_2.2.3+dfsg-8_arm64.deb\n ad1d0d3815c32f9db583cfe0dd79d880 3096896 python optional python3-pandas_2.2.3+dfsg-8_all.deb\n"}, {"source1": "python-pandas-doc_2.2.3+dfsg-8_all.deb", "source2": "python-pandas-doc_2.2.3+dfsg-8_all.deb", "unified_diff": null, "details": [{"source1": "file list", "source2": "file list", "unified_diff": "@@ -1,3 +1,3 @@\n -rw-r--r-- 0 0 0 4 2025-02-01 18:39:17.000000 debian-binary\n--rw-r--r-- 0 0 0 147392 2025-02-01 18:39:17.000000 control.tar.xz\n+-rw-r--r-- 0 0 0 147388 2025-02-01 18:39:17.000000 control.tar.xz\n -rw-r--r-- 0 0 0 10646196 2025-02-01 18:39:17.000000 data.tar.xz\n"}, {"source1": "control.tar.xz", "source2": "control.tar.xz", "unified_diff": null, "details": [{"source1": "control.tar", "source2": "control.tar", "unified_diff": null, "details": [{"source1": "./md5sums", "source2": "./md5sums", "unified_diff": null, "details": [{"source1": "./md5sums", "source2": "./md5sums", "comments": ["Files differ"], "unified_diff": null}]}]}]}, {"source1": "data.tar.xz", "source2": "data.tar.xz", "unified_diff": null, "details": [{"source1": "data.tar", "source2": "data.tar", "unified_diff": null, "details": [{"source1": "file list", "source2": "file list", "unified_diff": "@@ -6256,61 +6256,61 @@\n -rw-r--r-- 0 root (0) root (0) 210184 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/reference/series.html\n -rw-r--r-- 0 root (0) root (0) 48665 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/reference/style.html\n -rw-r--r-- 0 root (0) root (0) 48657 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/reference/testing.html\n -rw-r--r-- 0 root (0) root (0) 53295 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/reference/window.html\n -rw-r--r-- 0 root (0) root (0) 244 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/release.html\n -rw-r--r-- 0 root (0) root (0) 269 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/reshaping.html\n -rw-r--r-- 0 root (0) root (0) 17010 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/search.html\n--rw-r--r-- 0 root (0) root (0) 2358386 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/searchindex.js\n+-rw-r--r-- 0 root (0) root (0) 2358436 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/searchindex.js\n -rw-r--r-- 0 root (0) root (0) 259 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/sparse.html\n -rw-r--r-- 0 root (0) root (0) 244 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/style.html\n -rw-r--r-- 0 root (0) root (0) 255 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/text.html\n -rw-r--r-- 0 root (0) root (0) 256 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/timedeltas.html\n -rw-r--r-- 0 root (0) root (0) 277 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/timeseries.html\n -rw-r--r-- 0 root (0) root (0) 272 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/tutorials.html\n drwxr-xr-x 0 root (0) root (0) 0 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/\n -rw-r--r-- 0 root (0) root (0) 171332 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/10min.html\n--rw-r--r-- 0 root (0) root (0) 283824 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/advanced.html\n+-rw-r--r-- 0 root (0) root (0) 283823 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/advanced.html\n -rw-r--r-- 0 root (0) root (0) 435951 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/basics.html\n -rw-r--r-- 0 root (0) root (0) 36646 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/boolean.html\n -rw-r--r-- 0 root (0) root (0) 217475 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/categorical.html\n -rw-r--r-- 0 root (0) root (0) 18313 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/cookbook.html\n -rw-r--r-- 0 root (0) root (0) 66125 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/copy_on_write.html\n -rw-r--r-- 0 root (0) root (0) 160305 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/dsintro.html\n -rw-r--r-- 0 root (0) root (0) 81366 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/duplicates.html\n--rw-r--r-- 0 root (0) root (0) 115355 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/enhancingperf.html\n+-rw-r--r-- 0 root (0) root (0) 115386 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/enhancingperf.html\n -rw-r--r-- 0 root (0) root (0) 107868 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/gotchas.html\n -rw-r--r-- 0 root (0) root (0) 300850 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/groupby.html\n -rw-r--r-- 0 root (0) root (0) 59715 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/index.html\n -rw-r--r-- 0 root (0) root (0) 395370 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/indexing.html\n -rw-r--r-- 0 root (0) root (0) 41778 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/integer_na.html\n -rw-r--r-- 0 root (0) root (0) 1145214 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/io.html\n -rw-r--r-- 0 root (0) root (0) 208885 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/merging.html\n -rw-r--r-- 0 root (0) root (0) 178642 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/missing_data.html\n -rw-r--r-- 0 root (0) root (0) 112153 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/options.html\n -rw-r--r-- 0 root (0) root (0) 147512 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/pyarrow.html\n -rw-r--r-- 0 root (0) root (0) 162660 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/reshaping.html\n -rw-r--r-- 0 root (0) root (0) 115580 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/scale.html\n -rw-r--r-- 0 root (0) root (0) 65537 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/sparse.html\n -rw-r--r-- 0 root (0) root (0) 698240 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/style.html\n--rw-r--r-- 0 root (0) root (0) 87875 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/style.ipynb.gz\n+-rw-r--r-- 0 root (0) root (0) 87847 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/style.ipynb.gz\n -rw-r--r-- 0 root (0) root (0) 165302 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/text.html\n -rw-r--r-- 0 root (0) root (0) 100927 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/timedeltas.html\n -rw-r--r-- 0 root (0) root (0) 486577 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/timeseries.html\n -rw-r--r-- 0 root (0) root (0) 204341 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/visualization.html\n -rw-r--r-- 0 root (0) root (0) 141947 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/window.html\n -rw-r--r-- 0 root (0) root (0) 270 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/visualization.html\n drwxr-xr-x 0 root (0) root (0) 0 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/\n -rw-r--r-- 0 root (0) root (0) 107681 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/index.html\n -rw-r--r-- 0 root (0) root (0) 10566 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/index.html.gz\n -rw-r--r-- 0 root (0) root (0) 83987 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.10.0.html\n -rw-r--r-- 0 root (0) root (0) 66492 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.10.1.html\n -rw-r--r-- 0 root (0) root (0) 82312 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.11.0.html\n -rw-r--r-- 0 root (0) root (0) 104316 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.12.0.html\n--rw-r--r-- 0 root (0) root (0) 222477 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.13.0.html\n+-rw-r--r-- 0 root (0) root (0) 222478 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.13.0.html\n -rw-r--r-- 0 root (0) root (0) 89385 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.13.1.html\n -rw-r--r-- 0 root (0) root (0) 243730 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.14.0.html\n -rw-r--r-- 0 root (0) root (0) 83262 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.14.1.html\n -rw-r--r-- 0 root (0) root (0) 252293 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.15.0.html\n -rw-r--r-- 0 root (0) root (0) 68280 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.15.1.html\n -rw-r--r-- 0 root (0) root (0) 75115 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.15.2.html\n -rw-r--r-- 0 root (0) root (0) 145199 2025-02-01 18:39:17.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.16.0.html\n"}, {"source1": "./usr/share/doc/python-pandas-doc/html/searchindex.js", "source2": "./usr/share/doc/python-pandas-doc/html/searchindex.js", "unified_diff": null, "details": [{"source1": "js-beautify {}", "source2": "js-beautify {}", "unified_diff": "@@ -21494,31 +21494,31 @@\n \"001294\": 2210,\n \"001372\": 2207,\n \"001376\": 2207,\n \"001427\": 2214,\n \"001438\": 2195,\n \"001486\": [102, 1158],\n \"00180\": 2294,\n- \"002\": [2193, 2264],\n+ \"002\": 2264,\n \"002000\": 2232,\n \"002040\": 2235,\n \"002118\": [2230, 2231],\n \"002653\": 2207,\n \"002846\": 2229,\n- \"003\": [2185, 2193, 2235],\n+ \"003\": [2185, 2235],\n \"003144\": 2210,\n \"003337\": 2207,\n \"003494\": 15,\n \"003507\": [2209, 2218],\n \"003556\": 2207,\n \"00360\": 2294,\n \"003733\": 2207,\n \"003932\": 2216,\n \"003945\": 2210,\n- \"004\": [2186, 2193, 2227],\n+ \"004\": [2186, 2227],\n \"004000\": 2232,\n \"004005006\": [287, 939],\n \"004054\": 2229,\n \"004091\": [2204, 2257],\n \"004127\": 2207,\n \"004194\": 2186,\n \"004201\": 2186,\n@@ -21542,22 +21542,22 @@\n \"006438\": 2215,\n \"006549\": [182, 760],\n \"006695\": 2186,\n \"006747\": [2185, 2197, 2199, 2202, 2204, 2215],\n \"006871\": 2212,\n \"006888\": 2220,\n \"006938\": 2207,\n- \"007\": 2193,\n \"007200\": 2184,\n \"007207\": [2184, 2214],\n \"007717\": 2199,\n \"007824\": 15,\n \"007952\": 2207,\n \"007996\": 2186,\n \"007f\": 203,\n+ \"008\": 2193,\n \"008182\": 2204,\n \"008298\": 2186,\n \"008344\": 2207,\n \"008358\": 2207,\n \"008500\": 15,\n \"008543\": [102, 1158],\n \"008943\": [102, 1158],\n@@ -21569,15 +21569,16 @@\n \"009673\": 2195,\n \"009783\": 2207,\n \"009797\": 2186,\n \"009826\": [102, 1158, 2205],\n \"009920\": [2184, 2195, 2214],\n \"00am\": 2230,\n \"00index\": 2218,\n- \"01\": [3, 15, 16, 17, 19, 29, 30, 31, 36, 79, 80, 82, 88, 107, 121, 182, 187, 207, 213, 218, 219, 230, 242, 261, 270, 271, 276, 277, 278, 283, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 298, 299, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 326, 329, 330, 331, 332, 333, 345, 362, 363, 423, 445, 510, 511, 513, 514, 515, 516, 517, 519, 521, 523, 525, 529, 531, 532, 533, 534, 535, 536, 537, 541, 542, 543, 544, 545, 546, 547, 548, 549, 551, 554, 556, 557, 558, 560, 561, 562, 563, 564, 565, 566, 575, 591, 592, 593, 600, 629, 637, 639, 640, 641, 642, 643, 644, 645, 646, 647, 649, 650, 651, 652, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 665, 666, 667, 668, 670, 671, 673, 674, 675, 676, 677, 678, 679, 680, 684, 685, 686, 688, 689, 696, 760, 763, 781, 788, 793, 804, 817, 874, 893, 898, 899, 902, 903, 904, 905, 909, 910, 917, 919, 922, 929, 934, 939, 940, 943, 944, 945, 948, 949, 953, 954, 957, 959, 960, 969, 972, 982, 984, 997, 1000, 1001, 1003, 1004, 1005, 1011, 1014, 1016, 1017, 1020, 1021, 1024, 1051, 1075, 1078, 1106, 1118, 1122, 1141, 1144, 1145, 1147, 1157, 1164, 1170, 1171, 1176, 1180, 1185, 1192, 1195, 1197, 1206, 1214, 1221, 1227, 1228, 1233, 1239, 1245, 1246, 1253, 1256, 1258, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1277, 1278, 1279, 1280, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1344, 1345, 1367, 1391, 1392, 1393, 1436, 1447, 1452, 1475, 1488, 1490, 1498, 1500, 1501, 1506, 1524, 1542, 1560, 1620, 1699, 1720, 1741, 1793, 1815, 1857, 1930, 1947, 1982, 2036, 2054, 2090, 2108, 2127, 2163, 2184, 2185, 2186, 2188, 2191, 2195, 2197, 2198, 2199, 2200, 2201, 2202, 2204, 2205, 2206, 2207, 2209, 2210, 2212, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2225, 2226, 2228, 2229, 2230, 2231, 2232, 2235, 2238, 2240, 2241, 2246, 2249, 2261, 2264, 2265, 2271, 2283, 2289, 2294, 2298, 2302, 2307],\n+ \"01\": [3, 15, 16, 17, 19, 29, 30, 31, 36, 79, 80, 82, 88, 107, 121, 182, 187, 207, 213, 218, 219, 230, 242, 261, 270, 271, 276, 277, 278, 283, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 298, 299, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 326, 329, 330, 331, 332, 333, 345, 362, 363, 423, 445, 510, 511, 513, 514, 515, 516, 517, 519, 521, 523, 525, 529, 531, 532, 533, 534, 535, 536, 537, 541, 542, 543, 544, 545, 546, 547, 548, 549, 551, 554, 556, 557, 558, 560, 561, 562, 563, 564, 565, 566, 575, 591, 592, 593, 600, 629, 637, 639, 640, 641, 642, 643, 644, 645, 646, 647, 649, 650, 651, 652, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 665, 666, 667, 668, 670, 671, 673, 674, 675, 676, 677, 678, 679, 680, 684, 685, 686, 688, 689, 696, 760, 763, 781, 788, 793, 804, 817, 874, 893, 898, 899, 902, 903, 904, 905, 909, 910, 917, 919, 922, 929, 934, 939, 940, 943, 944, 945, 948, 949, 953, 954, 957, 959, 960, 969, 972, 982, 984, 997, 1000, 1001, 1003, 1004, 1005, 1011, 1014, 1016, 1017, 1020, 1021, 1024, 1051, 1075, 1078, 1106, 1118, 1122, 1141, 1144, 1145, 1147, 1157, 1164, 1170, 1171, 1176, 1180, 1185, 1192, 1195, 1197, 1206, 1214, 1221, 1227, 1228, 1233, 1239, 1245, 1246, 1253, 1256, 1258, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1277, 1278, 1279, 1280, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1344, 1345, 1367, 1391, 1392, 1393, 1436, 1447, 1452, 1475, 1488, 1490, 1498, 1500, 1501, 1506, 1524, 1542, 1560, 1620, 1699, 1720, 1741, 1793, 1815, 1857, 1930, 1947, 1982, 2036, 2054, 2090, 2108, 2127, 2163, 2184, 2185, 2186, 2188, 2191, 2193, 2195, 2197, 2198, 2199, 2200, 2201, 2202, 2204, 2205, 2206, 2207, 2209, 2210, 2212, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2225, 2226, 2228, 2229, 2230, 2231, 2232, 2235, 2238, 2240, 2241, 2246, 2249, 2261, 2264, 2265, 2271, 2283, 2289, 2294, 2298, 2302, 2307],\n+ \"010\": 2193,\n \"0100\": [575, 893, 957, 970, 997, 1004, 1014, 1016, 1020, 1021, 1498, 2186, 2199, 2210, 2246, 2271],\n \"010000\": [954, 1894],\n \"010010012\": [923, 2209],\n \"010026\": 2191,\n \"010081\": 15,\n \"010165\": 2199,\n \"010589\": 2193,\n@@ -21597,15 +21598,14 @@\n \"011975\": 2207,\n \"012108\": 2207,\n \"012299\": 2207,\n \"0123456789123456\": [2164, 2165],\n \"012549\": 2207,\n \"012694\": 2199,\n \"012922\": 2219,\n- \"013\": 2193,\n \"013086\": 15,\n \"0133\": 2202,\n \"013448\": 2207,\n \"013605\": 2207,\n \"013684\": [182, 760],\n \"013692\": [102, 1158],\n \"013747\": 2199,\n@@ -21627,15 +21627,14 @@\n \"015083\": 2186,\n \"015420\": 2195,\n \"015458\": 2207,\n \"015696\": [2220, 2228, 2230],\n \"015906\": 2186,\n \"015962\": [2184, 2214],\n \"015988\": 2186,\n- \"016\": 2193,\n \"016009\": 15,\n \"016287\": 2210,\n \"016331\": 2210,\n \"016424\": [16, 19],\n \"016692\": [2184, 2195, 2214],\n \"01685762652715874\": [624, 1215],\n \"017106\": 2207,\n@@ -21704,15 +21703,15 @@\n \"024580\": [2184, 2195, 2214],\n \"024738\": [102, 1158],\n \"024786\": 2207,\n \"024810\": 2207,\n \"0249\": [267, 896],\n \"024925\": 2195,\n \"024967\": 2207,\n- \"025\": [2186, 2193, 2222, 2227],\n+ \"025\": [2186, 2222, 2227],\n \"025054\": 2184,\n \"025270\": 2186,\n \"025363\": 2186,\n \"025367\": 2207,\n \"025747\": [2191, 2197, 2207],\n \"026036\": 2207,\n \"026158\": 2210,\n@@ -21728,15 +21727,15 @@\n \"028152\": 2207,\n \"028166\": 15,\n \"028182\": 2207,\n \"028578\": 2207,\n \"028603\": 2195,\n \"028662\": 28,\n \"028665\": 15,\n- \"029\": [2186, 2193, 2227],\n+ \"029\": [2186, 2227],\n \"029302\": 2191,\n \"029399\": 2184,\n \"029582\": 2207,\n \"029587\": 2193,\n \"029630\": 2195,\n \"029766\": 2197,\n \"02d\": 2205,\n@@ -21798,14 +21797,15 @@\n \"036104\": 2207,\n \"036142\": [2220, 2231],\n \"0362\": 2202,\n \"0362196\": 2202,\n \"036235\": 2205,\n \"036660\": 2199,\n \"036854\": 2199,\n+ \"037\": 2193,\n \"037181\": 2191,\n \"037528\": 2235,\n \"037651\": 2207,\n \"037772\": 2214,\n \"037882\": [2184, 2214],\n \"038\": [1447, 2200, 2232],\n \"038031\": 2207,\n@@ -21819,28 +21819,29 @@\n \"039575\": [15, 2184, 2185, 2186, 2191, 2195, 2197, 2199, 2202, 2210, 2214, 2215, 2218, 2225, 2226, 2241, 2260],\n \"0396\": [2184, 2186],\n \"039624\": 2207,\n \"039926\": 2210,\n \"03c\": 2208,\n \"03t00\": [2199, 2210, 2235, 2261],\n \"03t05\": [909, 2210],\n- \"04\": [26, 27, 29, 31, 80, 84, 88, 114, 127, 148, 149, 157, 177, 178, 207, 213, 230, 292, 294, 306, 307, 317, 330, 332, 345, 402, 423, 528, 529, 592, 595, 600, 640, 644, 646, 658, 659, 671, 685, 688, 703, 725, 726, 732, 755, 756, 781, 788, 804, 985, 1075, 1145, 1269, 1270, 1280, 1289, 1344, 1393, 1452, 1498, 1500, 1741, 1776, 1815, 2184, 2185, 2186, 2188, 2193, 2195, 2197, 2199, 2201, 2204, 2205, 2207, 2209, 2210, 2212, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2222, 2223, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2235, 2238, 2240, 2241, 2246, 2249, 2250, 2261, 2264, 2271, 2283, 2298],\n+ \"04\": [26, 27, 29, 31, 80, 84, 88, 114, 127, 148, 149, 157, 177, 178, 207, 213, 230, 292, 294, 306, 307, 317, 330, 332, 345, 402, 423, 528, 529, 592, 595, 600, 640, 644, 646, 658, 659, 671, 685, 688, 703, 725, 726, 732, 755, 756, 781, 788, 804, 985, 1075, 1145, 1269, 1270, 1280, 1289, 1344, 1393, 1452, 1498, 1500, 1741, 1776, 1815, 2184, 2185, 2186, 2188, 2195, 2197, 2199, 2201, 2204, 2205, 2207, 2209, 2210, 2212, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2222, 2223, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2235, 2238, 2240, 2241, 2246, 2249, 2250, 2261, 2264, 2271, 2283, 2298],\n \"0400\": [2222, 2271],\n \"040039\": 2216,\n \"040247\": 2207,\n \"0405\": [182, 760],\n \"040775\": 2207,\n \"040863\": 2186,\n \"041\": [1447, 2200, 2232],\n \"041290\": 2197,\n \"041575\": 2219,\n \"041665\": 2205,\n \"041898\": 2207,\n \"041927\": 2199,\n \"041933\": 2184,\n+ \"042\": 2193,\n \"042041\": 2207,\n \"042275\": [283, 910],\n \"042322\": 2207,\n \"042379\": [2184, 2195, 2214],\n \"0424\": 2257,\n \"042856\": 2218,\n \"042935\": 2207,\n@@ -21858,15 +21859,15 @@\n \"044236\": [16, 17, 18, 19, 2184, 2185, 2186, 2191, 2195, 2197, 2199, 2202, 2210, 2214, 2215, 2216, 2218, 2220, 2225, 2235, 2241, 2260],\n \"044522\": 586,\n \"044546\": 2207,\n \"044933\": 2207,\n \"045691\": 2191,\n \"045759\": 2207,\n \"045976\": 2214,\n- \"046\": 2207,\n+ \"046\": [2193, 2207],\n \"046044\": 2199,\n \"046582\": 2207,\n \"046611\": 2210,\n \"046731\": 2207,\n \"046805\": 2207,\n \"046882\": 2199,\n \"047046\": 2210,\n@@ -21925,15 +21926,14 @@\n \"053667\": 2207,\n \"053768\": 2199,\n \"053785\": 2219,\n \"054325\": 2191,\n \"0549\": 2202,\n \"054932\": 2207,\n \"054972\": 2207,\n- \"055\": 2193,\n \"055224\": 2184,\n \"055300\": 2212,\n \"055457\": 2199,\n \"055473\": 2235,\n \"055501\": 2207,\n \"055556\": [69, 109, 129, 171, 173, 182, 199, 204, 206, 215, 216, 217, 220, 221, 222, 244, 275, 760],\n \"055758\": 2197,\n@@ -21951,29 +21951,30 @@\n \"0582\": 2202,\n \"0582158\": 2202,\n \"058373\": 2207,\n \"058534\": 2210,\n \"058615\": 2207,\n \"058664\": 2195,\n \"058837\": 2210,\n+ \"059\": 2193,\n \"059018\": 2199,\n \"059277\": [102, 1158],\n \"0593\": 2202,\n \"059318\": [182, 760],\n \"059352\": [102, 1158],\n \"059382\": 2207,\n \"059478\": 2210,\n \"059481\": 2207,\n \"059552\": 2207,\n \"059761\": 2207,\n \"059869e\": 2191,\n \"059881\": 2210,\n \"059904\": 2214,\n \"05t00\": 2261,\n- \"06\": [26, 27, 29, 30, 31, 207, 213, 218, 230, 273, 292, 294, 332, 363, 526, 534, 536, 637, 644, 646, 688, 781, 788, 793, 804, 900, 969, 993, 1075, 1344, 1441, 1442, 1449, 1450, 1452, 1489, 1497, 1500, 1506, 1524, 1598, 1677, 2184, 2186, 2193, 2195, 2197, 2199, 2201, 2204, 2205, 2207, 2209, 2210, 2212, 2214, 2215, 2216, 2217, 2218, 2219, 2222, 2226, 2230, 2231, 2232, 2235, 2246, 2249, 2261, 2264, 2271, 2298, 2302],\n+ \"06\": [26, 27, 29, 30, 31, 207, 213, 218, 230, 273, 292, 294, 332, 363, 526, 534, 536, 637, 644, 646, 688, 781, 788, 793, 804, 900, 969, 993, 1075, 1344, 1441, 1442, 1449, 1450, 1452, 1489, 1497, 1500, 1506, 1524, 1598, 1677, 2184, 2186, 2195, 2197, 2199, 2201, 2204, 2205, 2207, 2209, 2210, 2212, 2214, 2215, 2216, 2217, 2218, 2219, 2222, 2226, 2230, 2231, 2232, 2235, 2246, 2249, 2261, 2264, 2271, 2298, 2302],\n \"060015\": 2207,\n \"060074\": 2185,\n \"060603\": 2207,\n \"060654\": 2207,\n \"060777\": 2207,\n \"061019\": 2199,\n \"061068\": 2210,\n@@ -21995,15 +21996,15 @@\n \"063328\": 2235,\n \"063367\": 2216,\n \"063474\": 2207,\n \"063477\": 2186,\n \"063850\": 2207,\n \"063922\": 2184,\n \"063933\": 2207,\n- \"064\": 2207,\n+ \"064\": [2193, 2207],\n \"064034\": [15, 2191],\n \"064423\": 2207,\n \"064434\": 2207,\n \"065587\": 2218,\n \"065761\": 2207,\n \"065818\": [2204, 2207],\n \"065934\": [182, 760],\n@@ -22031,15 +22032,15 @@\n \"069486\": 2230,\n \"069546\": 2199,\n \"069718\": 2186,\n \"069887\": 2207,\n \"069908\": 2207,\n \"069949\": 2207,\n \"06t00\": 2261,\n- \"07\": [26, 27, 29, 30, 31, 187, 202, 207, 213, 230, 273, 277, 292, 294, 330, 332, 345, 644, 646, 685, 688, 763, 781, 788, 804, 900, 903, 1075, 1280, 1344, 1441, 1442, 1449, 1450, 1452, 1598, 1677, 1720, 2184, 2186, 2195, 2197, 2199, 2201, 2204, 2205, 2207, 2209, 2210, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2222, 2226, 2227, 2228, 2230, 2231, 2235, 2261, 2271, 2294, 2298],\n+ \"07\": [26, 27, 29, 30, 31, 187, 202, 207, 213, 230, 273, 277, 292, 294, 330, 332, 345, 644, 646, 685, 688, 763, 781, 788, 804, 900, 903, 1075, 1280, 1344, 1441, 1442, 1449, 1450, 1452, 1598, 1677, 1720, 2184, 2186, 2193, 2195, 2197, 2199, 2201, 2204, 2205, 2207, 2209, 2210, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2222, 2226, 2227, 2228, 2230, 2231, 2235, 2261, 2271, 2294, 2298],\n \"0700\": 995,\n \"070087\": 2218,\n \"070816\": 2235,\n \"071068\": 2222,\n \"071357\": 2191,\n \"071665\": 2219,\n \"0718\": [2184, 2186],\n@@ -22098,15 +22099,15 @@\n \"079307\": 15,\n \"079587\": 2230,\n \"079631\": 2207,\n \"0797\": 2202,\n \"079769\": 2207,\n \"079915\": 2193,\n \"07t00\": 2261,\n- \"08\": [29, 30, 107, 207, 213, 230, 264, 273, 277, 292, 294, 316, 326, 330, 332, 629, 644, 646, 670, 680, 685, 688, 781, 788, 804, 900, 903, 1075, 1145, 1164, 1221, 1274, 1289, 1344, 1441, 1442, 1449, 1450, 1452, 1495, 1497, 1506, 1598, 1657, 1677, 1699, 1720, 1741, 2184, 2185, 2186, 2191, 2195, 2197, 2199, 2201, 2204, 2205, 2207, 2209, 2210, 2212, 2214, 2215, 2218, 2220, 2222, 2226, 2228, 2230, 2231, 2232, 2235, 2246, 2249, 2261, 2271, 2294, 2307],\n+ \"08\": [29, 30, 107, 207, 213, 230, 264, 273, 277, 292, 294, 316, 326, 330, 332, 629, 644, 646, 670, 680, 685, 688, 781, 788, 804, 900, 903, 1075, 1145, 1164, 1221, 1274, 1289, 1344, 1441, 1442, 1449, 1450, 1452, 1495, 1497, 1506, 1598, 1657, 1677, 1699, 1720, 1741, 2184, 2185, 2186, 2191, 2193, 2195, 2197, 2199, 2201, 2204, 2205, 2207, 2209, 2210, 2212, 2214, 2215, 2218, 2220, 2222, 2226, 2228, 2230, 2231, 2232, 2235, 2246, 2249, 2261, 2271, 2294, 2307],\n \"0800\": [953, 2210],\n \"080174\": 2207,\n \"080372\": 2199,\n \"080952\": [2184, 2214],\n \"081009\": 2195,\n \"081161\": 2216,\n \"081249\": 2207,\n@@ -22252,20 +22253,20 @@\n \"0n\": [1489, 2298],\n \"0px\": 2207,\n \"0rc0\": 13,\n \"0th\": [26, 249, 882, 1202, 2185, 2197, 2199, 2235],\n \"0x00\": 2294,\n \"0x40\": 2294,\n \"0x7efd0c0b0690\": 3,\n- \"0xffff31a25630\": 2230,\n- \"0xffff327cd620\": 2210,\n- \"0xffff665105f0\": 2199,\n- \"0xffff72090940\": 2197,\n- \"0xffff7358ab70\": 2195,\n- \"0xffff8927b8c0\": 2246,\n+ \"0xffff18277ec0\": 2210,\n+ \"0xffff4a40edf0\": 2199,\n+ \"0xffff560303d0\": 2197,\n+ \"0xffff574d0f50\": 2195,\n+ \"0xffff5bfcfa10\": 2246,\n+ \"0xffff6acfaa50\": 2230,\n \"1\": [1, 2, 4, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 39, 42, 44, 46, 49, 54, 56, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 82, 83, 84, 85, 86, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 134, 135, 136, 137, 138, 139, 140, 141, 143, 144, 145, 146, 148, 149, 151, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 177, 178, 180, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 298, 299, 300, 301, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 317, 318, 319, 321, 323, 324, 325, 326, 327, 328, 329, 331, 332, 333, 337, 339, 341, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 361, 363, 364, 366, 367, 370, 371, 372, 375, 376, 377, 378, 380, 382, 384, 385, 386, 387, 388, 389, 390, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 403, 404, 405, 406, 407, 408, 409, 411, 412, 414, 415, 416, 417, 419, 420, 421, 422, 423, 424, 425, 426, 427, 429, 430, 431, 432, 433, 434, 435, 436, 437, 440, 446, 449, 450, 451, 455, 456, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 473, 475, 476, 477, 478, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 495, 496, 498, 499, 500, 501, 502, 503, 505, 509, 510, 511, 514, 516, 519, 525, 531, 532, 533, 534, 536, 540, 543, 545, 547, 548, 549, 551, 557, 558, 561, 565, 568, 569, 571, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 589, 590, 591, 592, 593, 594, 595, 596, 597, 599, 600, 601, 602, 603, 604, 609, 613, 614, 615, 616, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 671, 673, 674, 675, 676, 678, 679, 680, 681, 682, 683, 684, 686, 688, 689, 690, 691, 692, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 709, 710, 711, 712, 713, 714, 715, 716, 717, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 743, 744, 747, 748, 749, 750, 751, 752, 753, 755, 756, 758, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 810, 812, 813, 814, 815, 816, 817, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 891, 892, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 912, 913, 914, 916, 918, 921, 923, 927, 930, 938, 939, 940, 941, 942, 943, 945, 946, 947, 948, 949, 950, 951, 952, 953, 957, 959, 960, 970, 977, 979, 981, 984, 994, 997, 1003, 1004, 1005, 1006, 1011, 1012, 1021, 1031, 1032, 1033, 1034, 1035, 1036, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1091, 1092, 1093, 1095, 1096, 1097, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1118, 1119, 1121, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1347, 1348, 1350, 1354, 1355, 1358, 1359, 1362, 1363, 1368, 1369, 1372, 1373, 1374, 1375, 1377, 1380, 1381, 1382, 1383, 1384, 1385, 1387, 1388, 1389, 1390, 1391, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1413, 1414, 1415, 1416, 1417, 1419, 1421, 1422, 1423, 1424, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1453, 1454, 1455, 1457, 1458, 1459, 1460, 1462, 1463, 1464, 1466, 1467, 1468, 1469, 1470, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1482, 1483, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1502, 1506, 1507, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1524, 1525, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1542, 1543, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1560, 1561, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1578, 1580, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1598, 1600, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1620, 1621, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1637, 1638, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1657, 1659, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1677, 1679, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1699, 1701, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1720, 1722, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1741, 1742, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1758, 1759, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1776, 1777, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1793, 1794, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1815, 1816, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1839, 1840, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1857, 1858, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1876, 1877, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1894, 1895, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1912, 1913, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1930, 1931, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1947, 1948, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1964, 1965, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1982, 1983, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 2000, 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2018, 2019, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2036, 2037, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2054, 2055, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2073, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2090, 2091, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2108, 2109, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2127, 2128, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2145, 2146, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2163, 2164, 2165, 2166, 2184, 2185, 2186, 2187, 2188, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2208, 2209, 2210, 2211, 2212, 2214, 2216, 2217, 2218, 2220, 2222, 2224, 2225, 2227, 2228, 2230, 2232, 2238, 2240, 2241, 2243, 2245, 2246, 2249, 2257, 2259, 2260, 2263, 2298, 2307, 2309, 2310],\n \"10\": [2, 3, 5, 6, 9, 10, 15, 16, 17, 18, 19, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 68, 69, 74, 80, 83, 84, 85, 88, 91, 94, 97, 98, 102, 105, 109, 111, 113, 119, 120, 121, 129, 133, 137, 138, 139, 140, 142, 144, 160, 163, 171, 173, 187, 188, 189, 190, 192, 193, 199, 202, 203, 204, 206, 207, 212, 213, 215, 216, 217, 220, 221, 222, 223, 228, 230, 234, 244, 258, 265, 268, 275, 276, 278, 284, 286, 288, 289, 293, 295, 296, 298, 300, 302, 316, 317, 318, 322, 323, 324, 329, 330, 331, 345, 395, 423, 427, 440, 445, 509, 514, 516, 534, 536, 544, 546, 551, 554, 556, 560, 562, 568, 569, 570, 571, 572, 577, 583, 592, 594, 595, 596, 600, 620, 621, 627, 635, 639, 641, 645, 647, 648, 649, 650, 652, 670, 671, 673, 677, 678, 679, 681, 684, 685, 686, 695, 696, 708, 713, 714, 738, 741, 763, 764, 765, 766, 768, 781, 787, 788, 798, 804, 808, 836, 837, 838, 839, 840, 841, 842, 843, 844, 849, 852, 863, 868, 874, 889, 895, 902, 904, 912, 923, 940, 942, 943, 944, 948, 957, 959, 960, 970, 982, 984, 995, 997, 1001, 1003, 1004, 1005, 1011, 1016, 1020, 1021, 1069, 1071, 1072, 1075, 1109, 1154, 1158, 1162, 1163, 1173, 1174, 1175, 1180, 1185, 1189, 1195, 1200, 1205, 1219, 1220, 1230, 1239, 1246, 1250, 1256, 1261, 1264, 1267, 1284, 1288, 1291, 1292, 1294, 1297, 1298, 1299, 1306, 1308, 1319, 1324, 1343, 1344, 1345, 1350, 1367, 1387, 1391, 1403, 1411, 1416, 1418, 1420, 1421, 1440, 1447, 1451, 1452, 1458, 1462, 1467, 1473, 1478, 1479, 1482, 1485, 1488, 1490, 1491, 1498, 1598, 1657, 1677, 1699, 1720, 1741, 1758, 1894, 1912, 2018, 2185, 2186, 2188, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2234, 2235, 2238, 2240, 2241, 2246, 2249, 2254, 2257, 2260, 2261, 2264, 2265, 2271, 2277, 2283, 2289, 2290, 2294, 2298, 2302, 2307, 2308],\n \"100\": [3, 15, 17, 22, 30, 68, 97, 98, 111, 118, 132, 135, 141, 142, 145, 159, 161, 175, 182, 192, 202, 207, 212, 213, 233, 273, 303, 345, 359, 360, 427, 577, 587, 588, 620, 621, 655, 709, 717, 760, 781, 787, 788, 900, 1345, 1391, 1398, 1447, 1457, 1472, 1473, 1488, 1490, 2184, 2185, 2186, 2188, 2190, 2191, 2193, 2194, 2195, 2197, 2199, 2200, 2201, 2202, 2204, 2207, 2208, 2209, 2210, 2211, 2212, 2218, 2220, 2222, 2223, 2225, 2226, 2230, 2231, 2232, 2235, 2241, 2242, 2246, 2249, 2302, 2307],\n \"1000\": [9, 10, 15, 24, 25, 28, 29, 32, 102, 141, 183, 191, 193, 194, 427, 717, 761, 767, 768, 769, 874, 1154, 1158, 1456, 1465, 1467, 1876, 1964, 2184, 2185, 2186, 2188, 2193, 2195, 2199, 2205, 2206, 2207, 2210, 2211, 2220, 2223, 2229, 2230, 2235, 2238, 2246, 2249, 2261, 2294],\n \"10000\": [192, 1485, 2185, 2201, 2206, 2210, 2220, 2228, 2266],\n \"100000\": [1354, 1372, 2199, 2201, 2210],\n \"1000000\": [144, 2199, 2228],\n@@ -22453,15 +22454,15 @@\n \"10442\": 2229,\n \"10443\": 2228,\n \"10447\": 2228,\n \"10448\": 2228,\n \"10451\": 2228,\n \"10452\": 2231,\n \"104569\": [15, 2184, 2185, 2186, 2191, 2195, 2197, 2199, 2202, 2206, 2210, 2214, 2215, 2220, 2225, 2241, 2257, 2260],\n- \"1046\": [2184, 2186],\n+ \"1046\": [2184, 2186, 2193],\n \"10460\": 2228,\n \"10467\": 2228,\n \"104677\": 15,\n \"104699\": 2230,\n \"104759\": 2207,\n \"10476\": 2232,\n \"10477\": 2228,\n@@ -22522,15 +22523,15 @@\n \"1061\": [2194, 2212],\n \"10610\": 2228,\n \"10611\": 2246,\n \"10618\": 2228,\n \"1062\": [2194, 2197, 2212, 2231],\n \"10620\": 2228,\n \"106252\": 2207,\n- \"1063\": [2186, 2194, 2212],\n+ \"1063\": [2186, 2193, 2194, 2212],\n \"10630\": 2228,\n \"10632\": 2235,\n \"10633\": [2228, 2249],\n \"10636\": 2228,\n \"10637\": 2228,\n \"10638\": 2228,\n \"10639\": 2228,\n@@ -22984,15 +22985,15 @@\n \"11788\": 2199,\n \"117887\": 2195,\n \"11790\": 2230,\n \"11792\": 2246,\n \"11794\": 2230,\n \"117949\": 2214,\n \"117967\": 2216,\n- \"118\": [268, 2184, 2185, 2186, 2188, 2191, 2193, 2195, 2197, 2199, 2200, 2201, 2204, 2208, 2209, 2210, 2211, 2220, 2228, 2230, 2232, 2242, 2249, 2265],\n+ \"118\": [268, 2184, 2185, 2186, 2188, 2191, 2195, 2197, 2199, 2200, 2201, 2204, 2208, 2209, 2210, 2211, 2220, 2228, 2230, 2232, 2242, 2249, 2265],\n \"11804\": 2230,\n \"11805\": 2230,\n \"11806\": 2199,\n \"118076\": 2186,\n \"11808\": 2230,\n \"118091\": 2207,\n \"11818\": 2230,\n@@ -23057,15 +23058,15 @@\n \"11974\": 2230,\n \"11981\": 2232,\n \"11986\": 2230,\n \"11990\": 2230,\n \"11995\": 2230,\n \"11h\": 2210,\n \"12\": [15, 17, 18, 19, 22, 24, 25, 26, 28, 29, 30, 31, 32, 69, 72, 73, 77, 78, 84, 88, 102, 107, 109, 111, 113, 129, 133, 134, 160, 162, 171, 173, 183, 187, 188, 189, 190, 193, 199, 202, 204, 206, 207, 208, 213, 215, 216, 217, 220, 221, 222, 244, 253, 259, 265, 275, 288, 292, 294, 296, 303, 308, 309, 313, 316, 318, 332, 333, 345, 362, 363, 420, 423, 509, 513, 514, 515, 516, 522, 524, 526, 530, 532, 535, 541, 557, 575, 586, 595, 600, 629, 635, 639, 644, 646, 652, 655, 660, 661, 666, 670, 673, 688, 689, 708, 738, 761, 763, 764, 765, 766, 768, 781, 782, 788, 799, 873, 886, 890, 893, 895, 923, 926, 940, 943, 948, 953, 976, 980, 987, 1017, 1075, 1154, 1158, 1162, 1164, 1169, 1189, 1192, 1195, 1205, 1219, 1221, 1226, 1250, 1253, 1256, 1267, 1274, 1276, 1290, 1292, 1336, 1344, 1392, 1431, 1433, 1452, 1482, 1487, 1497, 1498, 1560, 1578, 1598, 1620, 1637, 1657, 1677, 1699, 1720, 1758, 1793, 1815, 1839, 1876, 1894, 1912, 1930, 1964, 2018, 2127, 2145, 2184, 2185, 2186, 2188, 2190, 2191, 2192, 2193, 2194, 2195, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2214, 2215, 2216, 2218, 2219, 2220, 2221, 2222, 2223, 2225, 2226, 2228, 2229, 2230, 2231, 2232, 2235, 2238, 2240, 2241, 2246, 2249, 2257, 2261, 2264, 2265, 2271, 2277, 2283, 2289, 2294, 2298, 2302, 2307],\n- \"120\": [15, 78, 162, 273, 359, 360, 587, 588, 900, 930, 2184, 2185, 2186, 2188, 2191, 2195, 2197, 2199, 2200, 2201, 2204, 2208, 2209, 2210, 2211, 2220, 2230, 2232],\n+ \"120\": [15, 78, 162, 273, 359, 360, 587, 588, 900, 930, 2184, 2185, 2186, 2188, 2191, 2193, 2195, 2197, 2199, 2200, 2201, 2204, 2208, 2209, 2210, 2211, 2220, 2230, 2232],\n \"12000\": [2185, 2220],\n \"12004\": 2265,\n \"120055\": 2228,\n \"12011\": [176, 179],\n \"12014\": 2230,\n \"12017\": 2230,\n \"12019\": 2230,\n@@ -23136,15 +23137,15 @@\n \"12182\": 2230,\n \"12185\": 2232,\n \"12190\": 2238,\n \"121950\": 2207,\n \"12198\": 2230,\n \"121991\": 2207,\n \"122\": [2184, 2185, 2186, 2188, 2191, 2195, 2197, 2199, 2200, 2201, 2204, 2207, 2208, 2209, 2210, 2211, 2220, 2232],\n- \"1220\": [2193, 2298],\n+ \"1220\": 2298,\n \"12202\": 2230,\n \"12203\": 2231,\n \"1221\": 2298,\n \"12211\": 2231,\n \"12213\": 2265,\n \"12216\": 2232,\n \"12217\": 2230,\n@@ -23377,15 +23378,15 @@\n \"12887\": 2231,\n \"12888\": 2230,\n \"1289\": 2197,\n \"128907\": 2186,\n \"12893\": 2231,\n \"12896\": 2232,\n \"128hr\": 234,\n- \"129\": [2184, 2185, 2186, 2188, 2191, 2193, 2195, 2197, 2199, 2200, 2201, 2203, 2208, 2210, 2211, 2214, 2225, 2232, 2283],\n+ \"129\": [2184, 2185, 2186, 2188, 2191, 2195, 2197, 2199, 2200, 2201, 2203, 2208, 2210, 2211, 2214, 2225, 2232, 2283],\n \"1290\": 2197,\n \"12902\": 2231,\n \"12903\": 2231,\n \"12907\": 2232,\n \"12908\": 2231,\n \"1291\": 2197,\n \"12910\": 2231,\n@@ -24314,15 +24315,15 @@\n \"15495\": 2238,\n \"1549507744\": 2199,\n \"1549507744249032\": 2197,\n \"154951\": [15, 2185, 2197, 2199, 2202],\n \"154971\": 22,\n \"154975\": 22,\n \"15498\": 2235,\n- \"155\": [1447, 2185, 2186, 2188, 2193, 2195, 2197, 2199, 2200, 2201, 2207, 2210, 2211, 2232],\n+ \"155\": [1447, 2185, 2186, 2188, 2195, 2197, 2199, 2200, 2201, 2207, 2210, 2211, 2232],\n \"15501\": 2246,\n \"15503\": 2235,\n \"15504\": 2235,\n \"15506\": 2246,\n \"15507\": 2238,\n \"15516\": 2235,\n \"15520\": 2235,\n@@ -25677,15 +25678,15 @@\n \"20020101\": 2199,\n \"200252\": 2207,\n \"20027\": 2241,\n \"2002q3\": 540,\n \"2003\": [195, 264, 770, 2199],\n \"20030\": 2241,\n \"200308\": 2207,\n- \"2004\": [107, 629, 1164, 1221, 2219],\n+ \"2004\": [107, 629, 1164, 1221, 2193, 2219],\n \"20040\": 2241,\n \"20040601\": 2219,\n \"20049\": 2246,\n \"2005\": [532, 1345, 1391, 1488, 1490, 1501, 2199, 2202, 2210],\n \"200519\": 2207,\n \"20056\": 2241,\n \"2006\": [107, 532, 629, 1164, 1221, 2191],\n@@ -25747,20 +25748,19 @@\n \"2021\": [288, 296, 318, 639, 652, 673, 940, 943, 948, 957, 970, 997, 1542, 2201, 2207, 2213, 2277, 2289, 2294],\n \"2022\": [5, 22, 523, 525, 528, 537, 982, 1185, 1246, 1288, 1491, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1542, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1560, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1578, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1598, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1620, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1637, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1657, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1677, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1699, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1720, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1758, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1776, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1793, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1815, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1839, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1857, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1876, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1894, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1912, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1930, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1947, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1964, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1982, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 2000, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2018, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2036, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2054, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2108, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2127, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2145, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2186, 2203, 2213, 2227, 2298, 2302, 2307],\n \"2022a\": 2294,\n \"2023\": [34, 270, 298, 301, 320, 363, 511, 519, 526, 533, 543, 544, 545, 546, 547, 548, 549, 551, 554, 555, 556, 557, 558, 560, 563, 564, 565, 566, 567, 651, 894, 898, 954, 959, 960, 982, 984, 1000, 1001, 1003, 1004, 1005, 1011, 1016, 1020, 1021, 1024, 1122, 1141, 1147, 1157, 1170, 1171, 1176, 1180, 1185, 1195, 1197, 1206, 1214, 1227, 1228, 1233, 1239, 1245, 1246, 1256, 1258, 1268, 1271, 1273, 1274, 1277, 1278, 1279, 1280, 1282, 1283, 1284, 1285, 1287, 1288, 1290, 1291, 1292, 1293, 1294, 1295, 1297, 1501, 1620, 1930, 2090, 2127, 2145, 2213],\n \"202380\": 2207,\n \"20239\": [2241, 2265],\n \"2024\": [270, 544, 546, 555, 567, 894, 898, 2127, 2213],\n- \"2025\": [36, 544, 546, 555, 567, 894, 898],\n+ \"2025\": [36, 544, 546, 555, 567, 894, 898, 2228],\n \"20251\": 2307,\n \"2026\": 2228,\n \"202602\": 2205,\n \"202646\": 2230,\n- \"2027\": 2228,\n \"20271\": 2241,\n \"202872\": [2184, 2214],\n \"202946\": 2207,\n \"203\": [2185, 2186, 2188, 2195, 2197, 2199, 2210, 2211, 2231, 2253],\n \"2030\": 2265,\n \"20303\": 2265,\n \"20306\": 2302,\n@@ -25851,15 +25851,15 @@\n \"206341\": 2207,\n \"20636\": [2241, 2246],\n \"2064\": [31, 2191],\n \"206412\": [2185, 2197, 2199, 2202, 2204, 2215, 2257],\n \"206446\": 2207,\n \"20647\": [2271, 2298],\n \"20649\": 2277,\n- \"2065\": 31,\n+ \"2065\": [31, 2193],\n \"20653\": 2241,\n \"20656\": 2246,\n \"2066\": 31,\n \"206601\": 2186,\n \"20661\": 2241,\n \"20664\": 2241,\n \"2067\": [30, 31],\n@@ -26247,15 +26247,15 @@\n \"2205\": 2264,\n \"220674\": 2195,\n \"22074\": 2246,\n \"22083\": 2246,\n \"22084\": 2246,\n \"22085\": 2246,\n \"22092\": 2246,\n- \"221\": [2185, 2186, 2188, 2195, 2197, 2199, 2210, 2220],\n+ \"221\": [2185, 2186, 2188, 2193, 2195, 2197, 2199, 2210, 2220],\n \"221118\": 2191,\n \"221163\": 2207,\n \"22119\": 2246,\n \"22124\": 2246,\n \"221265\": 2214,\n \"22144\": 2289,\n \"2215\": 2218,\n@@ -26385,14 +26385,15 @@\n \"22727\": 2283,\n \"227371\": 2202,\n \"227435\": 2186,\n \"22747\": 2246,\n \"22748\": 2246,\n \"22752\": 2246,\n \"22762\": 2246,\n+ \"227688\": 2228,\n \"2277\": [2186, 2227],\n \"227761\": 2207,\n \"22783\": 2246,\n \"22784\": 2246,\n \"227870\": 2197,\n \"227877\": [1148, 1149],\n \"22790\": 2246,\n@@ -26413,14 +26414,15 @@\n \"22862\": 2246,\n \"22880\": 2246,\n \"22887\": 2246,\n \"229\": [2185, 2186, 2188, 2195, 2197, 2199, 2210],\n \"22903\": 2246,\n \"22905\": 2246,\n \"22912\": 2246,\n+ \"229158\": 2228,\n \"22922\": 2246,\n \"229349\": 2207,\n \"22938\": 2246,\n \"229453\": 2197,\n \"229616\": 2207,\n \"22962\": 2298,\n \"229675\": 2207,\n@@ -27331,15 +27333,15 @@\n \"2718281\": 2223,\n \"27186\": [2241, 2249],\n \"271860\": [15, 2184, 2185, 2186, 2191, 2195, 2197, 2199, 2202, 2210, 2214, 2215, 2218, 2225, 2231, 2241, 2260],\n \"2719\": [2184, 2186, 2191],\n \"271973\": 2216,\n \"27198\": 2265,\n \"27199\": [2249, 2265],\n- \"272\": [2186, 2188, 2193, 2195, 2197, 2199, 2210],\n+ \"272\": [2186, 2188, 2195, 2197, 2199, 2210],\n \"27219\": 2249,\n \"27222\": 2271,\n \"27237\": 2271,\n \"272395\": 2235,\n \"27242\": 2265,\n \"27250\": 2249,\n \"272593\": 2230,\n@@ -27423,14 +27425,15 @@\n \"276183\": 2257,\n \"2762\": [2184, 2186, 2191],\n \"276232\": [15, 2184, 2185, 2186, 2191, 2197, 2199, 2202, 2210, 2214, 2215, 2216, 2218, 2225, 2231, 2241, 2264],\n \"27636\": 2250,\n \"276386\": 2207,\n \"27642\": 2250,\n \"276464\": 2230,\n+ \"2765\": 2193,\n \"27656\": [2294, 2298],\n \"27660\": 2265,\n \"2766617129497566\": 2257,\n \"276662\": [2185, 2197, 2199, 2202, 2215, 2257],\n \"27668\": 2265,\n \"2767\": 2191,\n \"27676\": 2265,\n@@ -27513,15 +27516,15 @@\n \"28115\": 2265,\n \"28118\": 2265,\n \"281247\": [2185, 2191, 2197, 2199, 2202, 2204],\n \"28130\": 2265,\n \"28139\": 2265,\n \"281461\": 2191,\n \"28147\": 2251,\n- \"281472986114992\": 2246,\n+ \"281472225191632\": 2246,\n \"28150\": 2265,\n \"28156\": 2271,\n \"28163\": 2265,\n \"2817\": 1344,\n \"281885\": 2186,\n \"28189\": 2271,\n \"28192\": 2265,\n@@ -29102,15 +29105,15 @@\n \"3605\": 2217,\n \"360526\": 2207,\n \"360575\": 2191,\n \"360588\": 2186,\n \"3606\": 2217,\n \"36063\": 2274,\n \"36076\": 2277,\n- \"361\": [69, 109, 129, 171, 173, 199, 204, 206, 215, 216, 217, 220, 221, 222, 244, 268, 271, 275, 899, 1485, 2186, 2197, 2199, 2210, 2249, 2255, 2298],\n+ \"361\": [69, 109, 129, 171, 173, 199, 204, 206, 215, 216, 217, 220, 221, 222, 244, 268, 271, 275, 899, 1485, 2186, 2193, 2197, 2199, 2210, 2249, 2255, 2298],\n \"361078\": 2214,\n \"36113\": 2277,\n \"36122\": 2274,\n \"361288\": 2207,\n \"36131\": [2283, 2298],\n \"361428\": 2199,\n \"36148\": [2277, 2294, 2298],\n@@ -29197,15 +29200,15 @@\n \"36566\": 2283,\n \"36567\": 2277,\n \"365819\": 2210,\n \"36583\": 2277,\n \"36589\": 2289,\n \"3659\": 2217,\n \"36596\": 2283,\n- \"366\": [303, 514, 516, 532, 544, 546, 655, 2186, 2193, 2197, 2199, 2209, 2210, 2298],\n+ \"366\": [303, 514, 516, 532, 544, 546, 655, 2186, 2197, 2199, 2209, 2210, 2298],\n \"36603\": 2274,\n \"36611\": 2277,\n \"366110\": 2197,\n \"3662\": 2220,\n \"36621\": 2277,\n \"3663\": 2238,\n \"366330\": 2195,\n@@ -29213,15 +29216,15 @@\n \"3667\": 2217,\n \"36672\": 2225,\n \"36685\": [2277, 2298],\n \"36688\": 2283,\n \"366920\": 2214,\n \"36695\": 2298,\n \"36697\": 2298,\n- \"367\": [2186, 2197, 2199, 2209, 2210, 2249],\n+ \"367\": [2186, 2193, 2197, 2199, 2209, 2210, 2249],\n \"36702\": 2277,\n \"36703\": 2302,\n \"36712\": 2298,\n \"367219\": 2207,\n \"36727\": 2275,\n \"367331\": 2191,\n \"36738\": 2277,\n@@ -29417,15 +29420,15 @@\n \"37748\": 2277,\n \"37750\": 2289,\n \"377535\": 2186,\n \"37755\": 2276,\n \"37758\": 2277,\n \"377642\": 2210,\n \"37768\": 2277,\n- \"3777\": [2193, 2218],\n+ \"3777\": 2218,\n \"37782\": 2302,\n \"377887\": 2207,\n \"37799\": 2277,\n \"378\": [2186, 2197, 2199, 2207, 2210, 2231],\n \"3780\": 2222,\n \"37804\": 2283,\n \"378163\": 2207,\n@@ -29505,15 +29508,15 @@\n \"3817\": [2185, 2191, 2194],\n \"38172\": 2289,\n \"38178\": 2277,\n \"38187\": 2277,\n \"38195\": 2277,\n \"38197\": 2277,\n \"381994\": 2197,\n- \"382\": [16, 17, 18, 19, 2186, 2197, 2199, 2210, 2235],\n+ \"382\": [16, 17, 18, 19, 2186, 2193, 2197, 2199, 2210, 2235],\n \"382141\": 2206,\n \"382242\": 2199,\n \"38225\": 2277,\n \"382263\": 2207,\n \"38227\": 2277,\n \"38234\": 2277,\n \"382459\": 2184,\n@@ -30479,15 +30482,15 @@\n \"42650\": 2285,\n \"42651\": 2289,\n \"42659\": 2288,\n \"426676\": 2207,\n \"426679\": 2229,\n \"42688\": 2289,\n \"426953\": 2207,\n- \"427\": [2186, 2193, 2199, 2210, 2298],\n+ \"427\": [2186, 2199, 2210, 2298],\n \"42704\": 2289,\n \"427117\": 2207,\n \"42714\": 2285,\n \"42717\": 2298,\n \"42719\": 2285,\n \"42727\": 2285,\n \"4273\": 2218,\n@@ -30850,15 +30853,15 @@\n \"43986\": 2289,\n \"439872\": 2199,\n \"43988\": 2289,\n \"439895\": 2193,\n \"4399\": 2197,\n \"43997\": 2289,\n \"43999\": 2302,\n- \"44\": [15, 17, 19, 28, 31, 32, 213, 345, 788, 2184, 2185, 2186, 2188, 2190, 2191, 2193, 2194, 2195, 2197, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2214, 2218, 2219, 2220, 2222, 2225, 2226, 2228, 2230, 2232, 2235, 2238, 2241, 2246, 2249, 2265, 2271, 2283, 2294],\n+ \"44\": [15, 17, 19, 28, 31, 32, 213, 345, 788, 2184, 2185, 2186, 2188, 2190, 2191, 2193, 2194, 2195, 2197, 2199, 2200, 2201, 2202, 2203, 2204, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2214, 2218, 2219, 2220, 2222, 2225, 2226, 2228, 2230, 2232, 2235, 2238, 2241, 2246, 2249, 2265, 2271, 2283, 2294],\n \"440\": [1363, 2186, 2199, 2210],\n \"4400\": 2197,\n \"44008\": 2302,\n \"44011\": 2289,\n \"44014\": 2294,\n \"44019\": 2289,\n \"4402\": 2218,\n@@ -31943,15 +31946,15 @@\n \"4936\": 2218,\n \"493662\": [15, 2185, 2197, 2204],\n \"4937\": 2218,\n \"49374\": 2296,\n \"4939\": 2218,\n \"49397\": 2298,\n \"493995\": 2201,\n- \"494\": [2193, 2199, 2207, 2210, 2249, 2298],\n+ \"494\": [2199, 2207, 2210, 2249, 2298],\n \"4940\": 2218,\n \"494034\": 2207,\n \"49404\": 2298,\n \"494079\": 2207,\n \"49417\": 2298,\n \"49420\": 2298,\n \"494400\": 162,\n@@ -32309,15 +32312,15 @@\n \"51076\": 2298,\n \"510805\": 2207,\n \"51084\": 2298,\n \"51090\": 2298,\n \"51092\": 2298,\n \"51098\": 2298,\n \"51099\": 2302,\n- \"511\": [2184, 2199, 2205],\n+ \"511\": [2184, 2193, 2199, 2205],\n \"51101\": 2298,\n \"511055\": 2207,\n \"51111198\": [624, 1215],\n \"51152\": 2298,\n \"51158\": 2302,\n \"51162\": 2298,\n \"51167\": 2298,\n@@ -32454,15 +32457,15 @@\n \"51856\": 2302,\n \"51858\": 2302,\n \"51861\": 2302,\n \"51873\": 2302,\n \"518736\": 2197,\n \"51895\": 2300,\n \"51896\": 2302,\n- \"519\": [2194, 2199, 2201, 2203, 2205, 2238, 2283, 2294, 2307],\n+ \"519\": [2194, 2199, 2201, 2203, 2238, 2283, 2294, 2307],\n \"51903\": 2302,\n \"5191\": 2218,\n \"519133\": 2207,\n \"51921\": 2302,\n \"51922\": 2302,\n \"51929\": 2307,\n \"51936\": 2302,\n@@ -32999,15 +33002,15 @@\n \"54868\": 2303,\n \"54870\": 2303,\n \"548702\": [2184, 2214],\n \"54875\": 2303,\n \"54877\": 2303,\n \"548814\": 2166,\n \"54894\": 2303,\n- \"549\": 2199,\n+ \"549\": [2199, 2205],\n \"5490\": 2219,\n \"54904\": 2303,\n \"549047\": 2207,\n \"54918\": 2303,\n \"54920\": 2303,\n \"54922\": 2304,\n \"54931\": 2303,\n@@ -33047,15 +33050,15 @@\n \"55069\": 2308,\n \"550787\": 2207,\n \"5508\": 2218,\n \"55080\": 2305,\n \"55084\": 2307,\n \"550854\": 2207,\n \"55088\": 2306,\n- \"551\": [2193, 2199],\n+ \"551\": 2199,\n \"55106\": 2304,\n \"55108\": 2307,\n \"551115123125783e\": 2199,\n \"55113\": 2307,\n \"551225\": 2193,\n \"55137\": 2306,\n \"55138\": 2304,\n@@ -33296,15 +33299,15 @@\n \"562777\": 2191,\n \"562782\": 2186,\n \"562808\": 2207,\n \"562860\": [1148, 1149],\n \"562861\": 2235,\n \"562868\": 2207,\n \"562973\": 2186,\n- \"563\": [2199, 2205, 2257],\n+ \"563\": [2199, 2257],\n \"5630\": [2192, 2197],\n \"5632\": [2192, 2197],\n \"56323\": 2307,\n \"5633\": [2192, 2197],\n \"5634\": [2192, 2197],\n \"56345\": 2307,\n \"5635\": [2192, 2197],\n@@ -33399,15 +33402,15 @@\n \"5695\": 2219,\n \"569522\": 2207,\n \"569605\": [2185, 2197, 2199, 2202, 2204, 2215],\n \"569718\": 2207,\n \"5698\": 2218,\n \"56991\": 2308,\n \"57\": [15, 17, 18, 19, 276, 902, 1192, 1253, 2184, 2185, 2186, 2188, 2190, 2191, 2193, 2195, 2197, 2199, 2200, 2201, 2202, 2203, 2204, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2214, 2218, 2220, 2222, 2225, 2226, 2228, 2230, 2232, 2235, 2238, 2241, 2246, 2249, 2271],\n- \"570\": [2199, 2205],\n+ \"570\": 2199,\n \"57006\": 2308,\n \"57010\": 2308,\n \"57019\": 2308,\n \"5702\": 2218,\n \"57027\": 2308,\n \"5703\": 2218,\n \"57039\": 2308,\n@@ -33810,15 +33813,15 @@\n \"615556\": 27,\n \"615597\": 2207,\n \"615674\": 2207,\n \"615801\": 2207,\n \"615855\": 2185,\n \"615972\": 2205,\n \"615975\": 2207,\n- \"616\": [2199, 2232],\n+ \"616\": [2193, 2199, 2232],\n \"616184\": 2197,\n \"6166\": 2220,\n \"6167\": 2219,\n \"616767\": 2184,\n \"6169\": 2219,\n \"617\": [16, 17, 18, 19, 2199, 2203, 2232, 2235, 2298],\n \"6171\": 2219,\n@@ -33879,15 +33882,15 @@\n \"6240\": 2220,\n \"624607\": 15,\n \"624615\": 2207,\n \"624699e\": 2191,\n \"624747\": 2199,\n \"624938\": 2191,\n \"624988\": 2230,\n- \"625\": [205, 778, 2199, 2203, 2218, 2298],\n+ \"625\": [205, 778, 2199, 2203, 2298],\n \"6252\": 2220,\n \"625210\": 2207,\n \"6254\": 2220,\n \"625415\": 2207,\n \"6255\": 2192,\n \"6256\": [2192, 2202],\n \"6257\": 2192,\n@@ -33903,15 +33906,15 @@\n \"626300\": 1323,\n \"6263001\": 1323,\n \"6264\": 2192,\n \"626404\": 2235,\n \"626444\": 15,\n \"6265\": 2220,\n \"626968\": 2217,\n- \"627\": 2199,\n+ \"627\": [2199, 2205],\n \"627068\": 2207,\n \"627081\": [2184, 2195, 2214],\n \"6273\": 2220,\n \"6274\": 2220,\n \"627712\": 2197,\n \"627796\": 2235,\n \"6279\": 2271,\n@@ -33967,15 +33970,15 @@\n \"6342\": 2220,\n \"634248\": 2199,\n \"6344\": 2220,\n \"6345\": 2220,\n \"634509\": 2191,\n \"634686\": 2207,\n \"6348\": 2220,\n- \"635\": 2199,\n+ \"635\": [2199, 2205],\n \"6351\": 2220,\n \"6355\": 2220,\n \"636\": 2199,\n \"6360\": 2246,\n \"636123\": 2207,\n \"636524\": [2220, 2228, 2230, 2231],\n \"6366\": 2220,\n@@ -34631,15 +34634,15 @@\n \"709248\": 2260,\n \"709459\": 2199,\n \"7095\": 2228,\n \"7096\": 2232,\n \"709661\": [2184, 2214],\n \"7097\": 2222,\n \"7098\": 2220,\n- \"71\": [15, 17, 24, 25, 28, 29, 32, 133, 208, 708, 718, 782, 2184, 2185, 2186, 2188, 2191, 2195, 2197, 2199, 2200, 2201, 2202, 2204, 2205, 2207, 2208, 2209, 2210, 2211, 2212, 2218, 2222, 2226, 2228, 2230, 2232, 2235, 2241, 2246, 2271],\n+ \"71\": [15, 17, 24, 25, 28, 29, 32, 133, 208, 708, 718, 782, 2184, 2185, 2186, 2188, 2191, 2193, 2195, 2197, 2199, 2200, 2201, 2202, 2204, 2205, 2207, 2208, 2209, 2210, 2211, 2212, 2218, 2222, 2226, 2228, 2230, 2232, 2235, 2241, 2246, 2271],\n \"710\": 2199,\n \"7101\": 2220,\n \"7103\": 2222,\n \"7105\": 2220,\n \"7106\": 2220,\n \"711\": 2199,\n \"711409\": 2186,\n@@ -34766,15 +34769,15 @@\n \"729\": [16, 17, 18, 19, 2197, 2199, 2231, 2235],\n \"729161\": 2199,\n \"7292\": 2241,\n \"7297\": 2221,\n \"7299\": 2221,\n \"729907\": 2186,\n \"72hr\": 234,\n- \"73\": [15, 17, 2184, 2185, 2186, 2188, 2191, 2193, 2195, 2197, 2199, 2200, 2201, 2202, 2204, 2205, 2207, 2208, 2209, 2210, 2211, 2212, 2218, 2220, 2222, 2226, 2228, 2230, 2232, 2235, 2238, 2241, 2246, 2271],\n+ \"73\": [15, 17, 2184, 2185, 2186, 2188, 2191, 2195, 2197, 2199, 2200, 2201, 2202, 2204, 2205, 2207, 2208, 2209, 2210, 2211, 2212, 2218, 2220, 2222, 2226, 2228, 2230, 2232, 2235, 2238, 2241, 2246, 2271],\n \"730\": [16, 17, 18, 19, 2199, 2235],\n \"7300\": 2221,\n \"730057\": 2195,\n \"7302\": 2221,\n \"7306\": 2221,\n \"7308\": 2294,\n \"730951\": 2257,\n@@ -35091,15 +35094,14 @@\n \"773866\": 2207,\n \"773882\": 2197,\n \"7739\": 2249,\n \"773900\": 15,\n \"774\": 2258,\n \"7740\": 2222,\n \"7741\": 2222,\n- \"774211\": 2228,\n \"7746\": 2222,\n \"774627\": 15,\n \"774753\": 2195,\n \"7748\": 2222,\n \"774848\": 2207,\n \"774928\": 2206,\n \"7750\": 29,\n@@ -35107,15 +35109,14 @@\n \"7751\": 2235,\n \"7754\": 2227,\n \"775482\": 2199,\n \"775558e\": 2222,\n \"775602\": 2207,\n \"7757\": 2238,\n \"7758\": 2222,\n- \"775872\": 2228,\n \"775880\": 2186,\n \"7760\": 2222,\n \"7761\": 2222,\n \"7762\": 2222,\n \"7763\": 2222,\n \"7766\": 2222,\n \"776734\": 2207,\n@@ -35575,15 +35576,15 @@\n \"838\": 2199,\n \"838161\": 2207,\n \"838166\": 2207,\n \"838258\": 2207,\n \"838665\": 2207,\n \"8387\": 2222,\n \"839002\": 2207,\n- \"84\": [31, 228, 2184, 2185, 2186, 2188, 2191, 2195, 2197, 2199, 2200, 2201, 2202, 2204, 2207, 2208, 2209, 2210, 2211, 2212, 2218, 2222, 2223, 2226, 2228, 2230, 2232, 2235, 2241, 2246],\n+ \"84\": [31, 228, 2184, 2185, 2186, 2188, 2191, 2193, 2195, 2197, 2199, 2200, 2201, 2202, 2204, 2207, 2208, 2209, 2210, 2211, 2212, 2218, 2222, 2223, 2226, 2228, 2230, 2232, 2235, 2241, 2246],\n \"8400\": 2222,\n \"840123\": 2215,\n \"840255\": 2228,\n \"840449\": 15,\n \"840607\": 2186,\n \"840870\": 2197,\n \"840938\": 2207,\n@@ -35890,15 +35891,15 @@\n \"880331\": 2207,\n \"880609\": 15,\n \"880680\": 2207,\n \"880838\": 2218,\n \"8813\": 2224,\n \"881334\": 2191,\n \"881376\": 2204,\n- \"882\": [27, 2193, 2259],\n+ \"882\": [27, 2259],\n \"8822\": 2226,\n \"8823\": 2226,\n \"8825\": 2235,\n \"8826\": 2246,\n \"882641\": 2230,\n \"8831\": 2224,\n \"8833\": 2224,\n@@ -36056,15 +36057,15 @@\n \"902\": 2199,\n \"903\": 2199,\n \"9031\": 2246,\n \"903246\": 2207,\n \"903450\": 1340,\n \"9037\": 2225,\n \"903794\": 2186,\n- \"904\": 2199,\n+ \"904\": [2193, 2199],\n \"9046\": 2277,\n \"904807\": 2191,\n \"9049\": 2225,\n \"905\": 2199,\n \"905029\": 2207,\n \"905122\": 2199,\n \"9052\": 2230,\n@@ -36464,15 +36465,15 @@\n \"9663\": 2227,\n \"966718\": [2224, 2228],\n \"966995\": 2207,\n \"967\": 2197,\n \"9671\": 2226,\n \"9675\": 2226,\n \"9676\": 2226,\n- \"968\": [2186, 2197],\n+ \"968\": [2186, 2197, 2218],\n \"9680\": 2226,\n \"968304\": 2207,\n \"968344\": 15,\n \"9685\": 2226,\n \"9688\": 2226,\n \"9689\": 2191,\n \"968914\": [2185, 2197, 2199, 2215, 2218, 2219],\n@@ -36578,15 +36579,15 @@\n \"980950\": 2195,\n \"981\": [2199, 2207],\n \"981293\": 2207,\n \"9816\": 2228,\n \"981683\": 2207,\n \"981845\": 2199,\n \"981981\": 1306,\n- \"982\": 2199,\n+ \"982\": [2193, 2199],\n \"982353\": 29,\n \"982405\": 2184,\n \"9827\": 2226,\n \"982821\": 1298,\n \"9832\": 2226,\n \"983776\": 2195,\n \"984\": 2199,\n@@ -36934,15 +36935,15 @@\n \"_get_numeric_data\": 2218,\n \"_get_object_pars\": 2199,\n \"_get_opt\": [2202, 2298],\n \"_get_pyarrow_opt\": [2203, 2298],\n \"_get_root\": 2202,\n \"_get_single_kei\": 2202,\n \"_get_slice_axi\": [2185, 2197],\n- \"_get_valu\": [2185, 2191, 2193, 2194, 2197],\n+ \"_get_valu\": [2185, 2191, 2194, 2197],\n \"_getbool_axi\": [2185, 2197],\n \"_getitem_axi\": [2185, 2197],\n \"_getitem_lowerdim\": [2185, 2197],\n \"_getitem_tupl\": [2185, 2197],\n \"_getitem_tuple_same_dim\": 2185,\n \"_handled_typ\": 1031,\n \"_has_inf\": 2221,\n@@ -37724,15 +37725,15 @@\n \"barboursvil\": 2199,\n \"bare\": [2, 2199, 2222, 2241, 2277],\n \"barf\": 2217,\n \"barh\": [26, 186, 188, 762, 764, 1188, 1249, 2211, 2220, 2221, 2228, 2260, 2294],\n \"bark\": 1365,\n \"barplot\": 2222,\n \"barycentr\": [146, 720, 1280, 2201, 2218],\n- \"base\": [1, 3, 4, 5, 10, 11, 13, 16, 17, 18, 19, 20, 21, 22, 23, 25, 31, 32, 34, 49, 65, 83, 84, 88, 107, 111, 112, 121, 127, 136, 137, 138, 141, 142, 144, 147, 157, 160, 184, 187, 212, 213, 218, 224, 240, 248, 253, 276, 278, 279, 285, 286, 288, 296, 318, 328, 331, 345, 352, 415, 433, 445, 459, 478, 540, 568, 573, 594, 595, 600, 629, 633, 639, 652, 673, 686, 696, 703, 712, 714, 717, 718, 732, 738, 754, 757, 763, 787, 788, 793, 816, 823, 836, 837, 838, 839, 840, 841, 842, 843, 844, 881, 886, 902, 904, 905, 913, 938, 940, 943, 948, 952, 1031, 1040, 1052, 1068, 1073, 1075, 1119, 1125, 1141, 1148, 1149, 1164, 1173, 1193, 1207, 1208, 1221, 1242, 1243, 1254, 1265, 1269, 1270, 1286, 1342, 1343, 1398, 1423, 1431, 1444, 1453, 1467, 1470, 1474, 1475, 1498, 1519, 1537, 1556, 1574, 1593, 1614, 1633, 1650, 1672, 1693, 1715, 1736, 1754, 1772, 1789, 1808, 1830, 1853, 1870, 1890, 1908, 1926, 1943, 1960, 1978, 1995, 2013, 2032, 2050, 2068, 2086, 2103, 2121, 2141, 2159, 2163, 2166, 2183, 2184, 2185, 2187, 2188, 2191, 2192, 2193, 2194, 2195, 2196, 2199, 2200, 2201, 2203, 2207, 2208, 2210, 2211, 2212, 2213, 2214, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2226, 2228, 2229, 2230, 2231, 2232, 2235, 2236, 2238, 2240, 2241, 2246, 2249, 2253, 2255, 2261, 2264, 2265, 2274, 2277, 2283, 2291, 2298, 2302],\n+ \"base\": [1, 3, 4, 5, 10, 11, 13, 16, 17, 18, 19, 20, 21, 22, 23, 25, 31, 32, 34, 49, 65, 83, 84, 88, 107, 111, 112, 121, 127, 136, 137, 138, 141, 142, 144, 147, 157, 160, 184, 187, 212, 213, 218, 224, 240, 248, 253, 276, 278, 279, 285, 286, 288, 296, 318, 328, 331, 345, 352, 415, 433, 445, 459, 478, 540, 568, 573, 594, 595, 600, 629, 633, 639, 652, 673, 686, 696, 703, 712, 714, 717, 718, 732, 738, 754, 757, 763, 787, 788, 793, 816, 823, 836, 837, 838, 839, 840, 841, 842, 843, 844, 881, 886, 902, 904, 905, 913, 938, 940, 943, 948, 952, 1031, 1040, 1052, 1068, 1073, 1075, 1119, 1125, 1141, 1148, 1149, 1164, 1173, 1193, 1207, 1208, 1221, 1242, 1243, 1254, 1265, 1269, 1270, 1286, 1342, 1343, 1398, 1423, 1431, 1444, 1453, 1467, 1470, 1474, 1475, 1498, 1519, 1537, 1556, 1574, 1593, 1614, 1633, 1650, 1672, 1693, 1715, 1736, 1754, 1772, 1789, 1808, 1830, 1853, 1870, 1890, 1908, 1926, 1943, 1960, 1978, 1995, 2013, 2032, 2050, 2068, 2086, 2103, 2121, 2141, 2159, 2163, 2166, 2183, 2184, 2185, 2187, 2188, 2191, 2192, 2194, 2195, 2196, 2199, 2200, 2201, 2203, 2207, 2208, 2210, 2211, 2212, 2213, 2214, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2226, 2228, 2229, 2230, 2231, 2232, 2235, 2236, 2238, 2240, 2241, 2246, 2249, 2253, 2255, 2261, 2264, 2265, 2274, 2277, 2283, 2291, 2298, 2302],\n \"base_dtyp\": 2199,\n \"base_pars\": 2199,\n \"base_typ\": [2194, 2201, 2203, 2294, 2302, 2307],\n \"basebal\": [15, 2186, 2191, 2197, 2227, 2231],\n \"baseblockmanag\": [2197, 2199, 2298],\n \"basebooleanreducetest\": 2307,\n \"basebuff\": [16, 17, 18, 19, 2199, 2235],\n@@ -38256,15 +38257,15 @@\n \"cheat\": [21, 2234],\n \"check\": [1, 2, 4, 5, 6, 8, 12, 13, 18, 21, 22, 23, 24, 25, 26, 27, 30, 32, 36, 62, 75, 80, 81, 147, 153, 163, 169, 228, 256, 284, 346, 384, 386, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 420, 445, 447, 448, 453, 454, 455, 461, 469, 473, 478, 500, 501, 584, 592, 603, 615, 741, 799, 836, 837, 838, 839, 840, 841, 842, 843, 844, 888, 912, 976, 977, 978, 979, 1076, 1079, 1081, 1082, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1093, 1095, 1097, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1110, 1111, 1112, 1113, 1114, 1115, 1127, 1136, 1141, 1146, 1184, 1345, 1354, 1370, 1391, 1441, 1442, 1446, 1449, 1450, 1475, 1482, 1483, 1488, 1490, 1493, 1494, 1495, 1496, 1499, 1512, 1530, 1548, 1566, 1586, 1607, 1626, 1643, 1665, 1686, 1707, 1728, 1747, 1765, 1782, 1801, 1823, 1846, 1863, 1883, 1901, 1919, 1936, 1953, 1971, 1988, 2006, 2025, 2043, 2061, 2079, 2096, 2114, 2133, 2151, 2168, 2185, 2186, 2188, 2190, 2191, 2192, 2193, 2194, 2195, 2197, 2199, 2200, 2201, 2202, 2208, 2211, 2217, 2218, 2220, 2222, 2224, 2225, 2227, 2228, 2229, 2230, 2231, 2232, 2234, 2235, 2238, 2240, 2241, 2246, 2253, 2255, 2261, 2265, 2271, 2277, 2279, 2283, 2289, 2294, 2298, 2302, 2307, 2308],\n \"check_array_index\": 2172,\n \"check_categor\": [1494, 1495, 1496, 2242],\n \"check_category_ord\": 1496,\n \"check_column_typ\": 1494,\n \"check_datetimelike_compat\": [1494, 1496],\n- \"check_dict_or_set_index\": 2197,\n+ \"check_dict_or_set_index\": [2193, 2197],\n \"check_dtyp\": [1493, 1494, 1496, 2271, 2272, 2299],\n \"check_dtype_backend\": 2199,\n \"check_exact\": [1493, 1494, 1495, 1496, 2272, 2277, 2307, 2308],\n \"check_extens\": 2294,\n \"check_flag\": [1494, 1496, 2290],\n \"check_frame_typ\": 1494,\n \"check_freq\": [1494, 1496, 2278],\n@@ -40249,15 +40250,15 @@\n \"get_indexer_for\": [2283, 2289],\n \"get_indexer_non_uniqu\": [379, 2192, 2197, 2238, 2243, 2246, 2249, 2265, 2277, 2289],\n \"get_indexer_nonuniqu\": 2302,\n \"get_item\": [2191, 2194],\n \"get_jit_argu\": 2212,\n \"get_letter_typ\": 2195,\n \"get_level_valu\": [1416, 2185, 2218, 2220, 2228, 2232, 2241, 2246, 2253, 2256],\n- \"get_loc\": [2, 362, 383, 426, 492, 2185, 2191, 2193, 2194, 2197, 2225, 2228, 2231, 2235, 2238, 2241, 2246, 2249, 2265, 2271, 2273, 2277, 2283, 2289, 2298, 2299],\n+ \"get_loc\": [2, 362, 383, 426, 492, 2185, 2191, 2194, 2197, 2225, 2228, 2231, 2235, 2238, 2241, 2246, 2249, 2265, 2271, 2273, 2277, 2283, 2289, 2298, 2299],\n \"get_loc_level\": 2246,\n \"get_local\": 2265,\n \"get_method\": [16, 17, 18, 19, 2199, 2235],\n \"get_near_stock_pric\": [2216, 2223],\n \"get_offset\": [2265, 2298],\n \"get_offset_nam\": [2230, 2238],\n \"get_op_result_nam\": 2186,\n@@ -40890,14 +40891,15 @@\n \"interf\": 2265,\n \"interfac\": [2, 10, 12, 13, 16, 17, 18, 19, 40, 77, 119, 695, 914, 1031, 1068, 1090, 2167, 2186, 2199, 2203, 2207, 2210, 2211, 2218, 2220, 2225, 2227, 2228, 2230, 2235, 2246, 2261, 2271, 2298, 2307],\n \"interleav\": 2199,\n \"intermedi\": [7, 2172, 2195, 2205, 2210, 2212, 2253, 2307],\n \"intermix\": 2186,\n \"intern\": [0, 7, 11, 22, 191, 194, 203, 268, 286, 364, 376, 430, 622, 624, 699, 767, 769, 873, 932, 938, 1031, 1044, 1123, 1124, 1140, 1148, 1149, 1203, 1207, 1208, 1213, 1215, 1264, 1280, 1345, 1361, 1364, 1388, 1391, 1422, 1423, 1433, 1469, 1486, 1488, 1490, 1493, 1494, 1495, 1496, 1499, 2186, 2188, 2193, 2194, 2195, 2197, 2202, 2207, 2210, 2213, 2216, 2217, 2219, 2220, 2230, 2232, 2235, 2238, 2246, 2249, 2253, 2261, 2263, 2265, 2267, 2271, 2274, 2277, 2280, 2289, 2293, 2298, 2307],\n \"internal_cach\": 10,\n+ \"internal_valu\": 2193,\n \"internet\": 2,\n \"interoper\": [2167, 2186, 2201, 2203, 2302],\n \"interp1d\": [146, 720, 1280],\n \"interp_\": 2201,\n \"interpol\": [89, 124, 125, 169, 202, 601, 700, 701, 776, 1031, 1190, 1251, 1275, 1314, 1331, 1411, 1446, 1447, 1448, 2186, 2199, 2210, 2214, 2217, 2218, 2219, 2220, 2222, 2228, 2230, 2231, 2235, 2236, 2249, 2250, 2261, 2265, 2271, 2272, 2277, 2283, 2289, 2294, 2298, 2302, 2303, 2304, 2307],\n \"interpret\": [2, 3, 6, 13, 16, 17, 18, 19, 24, 31, 134, 160, 212, 256, 568, 709, 738, 750, 787, 862, 866, 888, 1463, 1469, 1470, 1486, 1487, 2185, 2188, 2197, 2199, 2201, 2202, 2206, 2212, 2214, 2216, 2217, 2218, 2220, 2221, 2222, 2226, 2228, 2232, 2235, 2236, 2238, 2241, 2246, 2249, 2265, 2283, 2294, 2298, 2302],\n \"interrog\": [168, 407, 745],\n@@ -41606,15 +41608,15 @@\n \"maldiv\": [176, 179, 754, 757, 1242, 1243],\n \"male\": [18, 23, 25, 28, 32, 1204, 2195, 2220],\n \"malform\": [1469, 1486, 2199, 2225, 2246, 2265, 2283, 2289],\n \"malfunct\": 2238,\n \"malta\": [176, 179, 754, 757, 1242, 1243, 2199],\n \"mamba\": [1, 13],\n \"mammal\": [172, 198, 210, 211, 214, 249, 271, 285, 494, 784, 882, 899, 913, 1198, 1202, 1263, 2195],\n- \"manag\": [2, 5, 22, 34, 341, 1345, 1391, 1451, 1488, 1490, 1793, 1815, 2186, 2197, 2199, 2202, 2218, 2222, 2224, 2232, 2238, 2246, 2277, 2298],\n+ \"manag\": [2, 5, 22, 34, 341, 1345, 1391, 1451, 1488, 1490, 1793, 1815, 2186, 2193, 2197, 2199, 2202, 2218, 2222, 2224, 2232, 2238, 2246, 2277, 2298],\n \"manchest\": 2199,\n \"mangl\": [2195, 2241, 2246, 2289],\n \"mangle_dupe_col\": [2283, 2294, 2298],\n \"mango\": [394, 399],\n \"mani\": [1, 2, 3, 5, 7, 8, 10, 13, 15, 16, 17, 18, 19, 21, 22, 23, 24, 26, 31, 34, 35, 85, 102, 114, 168, 342, 596, 754, 757, 1031, 1064, 1153, 1158, 1166, 1212, 1223, 1242, 1243, 1272, 1274, 1275, 1286, 1358, 1387, 1390, 1469, 1486, 1498, 2166, 2167, 2173, 2185, 2186, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2199, 2200, 2202, 2205, 2206, 2207, 2210, 2212, 2214, 2216, 2217, 2218, 2219, 2221, 2223, 2225, 2228, 2231, 2232, 2235, 2238, 2241, 2246, 2254, 2255, 2256, 2260, 2261, 2271, 2277, 2283, 2289, 2298, 2302, 2307, 2308],\n \"manifest\": [2223, 2224, 2241, 2273],\n \"manipul\": [10, 15, 21, 23, 33, 34, 35, 1423, 2172, 2185, 2186, 2195, 2204, 2207, 2210, 2218, 2222, 2257],\n@@ -43769,15 +43771,15 @@\n \"set_table_attribut\": [1421, 1422, 1435, 2207],\n \"set_table_class\": 1394,\n \"set_table_styl\": [1400, 1420, 1422, 1433, 1435, 2207, 2277, 2283],\n \"set_td_class\": [1402, 1420, 1421, 2207, 2283],\n \"set_titl\": 2211,\n \"set_tooltip\": [2207, 2283],\n \"set_uuid\": 2207,\n- \"set_valu\": [2218, 2238, 2256, 2265, 2298],\n+ \"set_valu\": [2193, 2218, 2238, 2256, 2265, 2298],\n \"set_xlim\": [2220, 2298],\n \"set_ylabel\": [26, 2211],\n \"set_ylim\": 2220,\n \"setattr\": 2192,\n \"seterr\": 2239,\n \"sethmmorton\": 234,\n \"setitem\": [2188, 2190, 2218, 2219, 2220, 2221, 2222, 2223, 2227, 2230, 2275, 2298],\n"}]}, {"source1": "./usr/share/doc/python-pandas-doc/html/user_guide/advanced.html", "source2": "./usr/share/doc/python-pandas-doc/html/user_guide/advanced.html", "unified_diff": "@@ -1847,25 +1847,25 @@\n In [141]: indexer = np.arange(10000)\n \n In [142]: random.shuffle(indexer)\n \n In [143]: %timeit arr[indexer]\n .....: %timeit arr.take(indexer, axis=0)\n .....: \n-243 us +- 34.2 us per loop (mean +- std. dev. of 7 runs, 10,000 loops each)\n-76 us +- 7.76 us per loop (mean +- std. dev. of 7 runs, 10,000 loops each)\n+222 us +- 12.2 us per loop (mean +- std. dev. of 7 runs, 1,000 loops each)\n+123 us +- 8.66 us per loop (mean +- std. dev. of 7 runs, 10,000 loops each)\n \n \n
In [144]: ser = pd.Series(arr[:, 0])\n \n In [145]: %timeit ser.iloc[indexer]\n .....: %timeit ser.take(indexer)\n .....: \n-165 us +- 7.22 us per loop (mean +- std. dev. of 7 runs, 10,000 loops each)\n-161 us +- 17.7 us per loop (mean +- std. dev. of 7 runs, 10,000 loops each)\n+167 us +- 25.8 us per loop (mean +- std. dev. of 7 runs, 1,000 loops each)\n+146 us +- 6.44 us per loop (mean +- std. dev. of 7 runs, 10,000 loops each)\n
We have discussed MultiIndex
in the previous sections pretty extensively.\n Documentation about DatetimeIndex
and PeriodIndex
are shown here,\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1245,23 +1245,23 @@\n In [141]: indexer = np.arange(10000)\n \n In [142]: random.shuffle(indexer)\n \n In [143]: %timeit arr[indexer]\n .....: %timeit arr.take(indexer, axis=0)\n .....:\n-243 us +- 34.2 us per loop (mean +- std. dev. of 7 runs, 10,000 loops each)\n-76 us +- 7.76 us per loop (mean +- std. dev. of 7 runs, 10,000 loops each)\n+222 us +- 12.2 us per loop (mean +- std. dev. of 7 runs, 1,000 loops each)\n+123 us +- 8.66 us per loop (mean +- std. dev. of 7 runs, 10,000 loops each)\n In [144]: ser = pd.Series(arr[:, 0])\n \n In [145]: %timeit ser.iloc[indexer]\n .....: %timeit ser.take(indexer)\n .....:\n-165 us +- 7.22 us per loop (mean +- std. dev. of 7 runs, 10,000 loops each)\n-161 us +- 17.7 us per loop (mean +- std. dev. of 7 runs, 10,000 loops each)\n+167 us +- 25.8 us per loop (mean +- std. dev. of 7 runs, 1,000 loops each)\n+146 us +- 6.44 us per loop (mean +- std. dev. of 7 runs, 10,000 loops each)\n *\b**\b**\b**\b**\b* I\bIn\bnd\bde\bex\bx t\bty\byp\bpe\bes\bs_\b#\b# *\b**\b**\b**\b**\b*\n We have discussed MultiIndex in the previous sections pretty extensively.\n Documentation about DatetimeIndex and PeriodIndex are shown _\bh_\be_\br_\be, and\n documentation about TimedeltaIndex is found _\bh_\be_\br_\be.\n In the following sub-sections we will highlight some other index types.\n *\b**\b**\b**\b* C\bCa\bat\bte\beg\bgo\bor\bri\bic\bca\bal\blI\bIn\bnd\bde\bex\bx_\b#\b# *\b**\b**\b**\b*\n _\bC_\ba_\bt_\be_\bg_\bo_\br_\bi_\bc_\ba_\bl_\bI_\bn_\bd_\be_\bx is a type of index that is useful for supporting indexing with\n"}]}, {"source1": "./usr/share/doc/python-pandas-doc/html/user_guide/enhancingperf.html", "source2": "./usr/share/doc/python-pandas-doc/html/user_guide/enhancingperf.html", "unified_diff": "@@ -592,31 +592,31 @@\n ...: s += f(a + i * dx)\n ...: return s * dx\n ...: \n \n \n
We achieve our result by using DataFrame.apply()
(row-wise):
In [5]: %timeit df.apply(lambda x: integrate_f(x["a"], x["b"], x["N"]), axis=1)\n-129 ms +- 26.5 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)\n+382 ms +- 120 ms per loop (mean +- std. dev. of 7 runs, 1 loop each)\n
Let\u2019s take a look and see where the time is spent during this operation\n using the prun ipython magic function:
\n# most time consuming 4 calls\n In [6]: %prun -l 4 df.apply(lambda x: integrate_f(x["a"], x["b"], x["N"]), axis=1) # noqa E999\n- 605946 function calls (605928 primitive calls) in 0.494 seconds\n+ 605946 function calls (605928 primitive calls) in 1.221 seconds\n \n Ordered by: internal time\n List reduced from 159 to 4 due to restriction <4>\n \n ncalls tottime percall cumtime percall filename:lineno(function)\n- 1000 0.272 0.000 0.427 0.000 <ipython-input-4-c2a74e076cf0>:1(integrate_f)\n- 552423 0.155 0.000 0.155 0.000 <ipython-input-3-c138bdd570e3>:1(f)\n- 3000 0.013 0.000 0.055 0.000 series.py:1095(__getitem__)\n- 3000 0.011 0.000 0.029 0.000 series.py:1220(_get_value)\n+ 1000 0.616 0.001 0.982 0.001 <ipython-input-4-c2a74e076cf0>:1(integrate_f)\n+ 552423 0.367 0.000 0.367 0.000 <ipython-input-3-c138bdd570e3>:1(f)\n+ 3000 0.046 0.000 0.064 0.000 indexing.py:2765(check_dict_or_set_indexers)\n+ 1000 0.042 0.000 0.042 0.000 managers.py:2065(set_values)\n
By far the majority of time is spend inside either integrate_f
or f
,\n hence we\u2019ll concentrate our efforts cythonizing these two functions.
In [9]: %timeit df.apply(lambda x: integrate_f_plain(x["a"], x["b"], x["N"]), axis=1)\n-118 ms +- 27.3 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)\n+361 ms +- 55.7 ms per loop (mean +- std. dev. of 7 runs, 1 loop each)\n
This has improved the performance compared to the pure Python approach by one-third.
\nWe can annotate the function variables and return types as well as use cdef
\n@@ -658,36 +658,36 @@\n ....: for i in range(N):\n ....: s += f_typed(a + i * dx)\n ....: return s * dx\n ....: \n \n \n
In [11]: %timeit df.apply(lambda x: integrate_f_typed(x["a"], x["b"], x["N"]), axis=1)\n-12.4 ms +- 2.04 ms per loop (mean +- std. dev. of 7 runs, 100 loops each)\n+40.9 ms +- 8.01 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)\n
Annotating the functions with C types yields an over ten times performance improvement compared to\n the original Python implementation.
\nWhen re-profiling, time is spent creating a Series
from each row, and calling __getitem__
from both\n the index and the series (three times for each row). These Python function calls are expensive and\n can be improved by passing an np.ndarray
.
In [12]: %prun -l 4 df.apply(lambda x: integrate_f_typed(x["a"], x["b"], x["N"]), axis=1)\n- 52523 function calls (52505 primitive calls) in 0.025 seconds\n+ 52523 function calls (52505 primitive calls) in 0.059 seconds\n \n Ordered by: internal time\n List reduced from 157 to 4 due to restriction <4>\n \n ncalls tottime percall cumtime percall filename:lineno(function)\n- 3000 0.004 0.000 0.016 0.000 series.py:1095(__getitem__)\n- 3000 0.003 0.000 0.007 0.000 series.py:1220(_get_value)\n- 16098 0.002 0.000 0.003 0.000 {built-in method builtins.isinstance}\n- 3000 0.002 0.000 0.003 0.000 base.py:3777(get_loc)\n+ 16098 0.010 0.000 0.011 0.000 {built-in method builtins.isinstance}\n+ 3000 0.010 0.000 0.010 0.000 managers.py:2004(internal_values)\n+1063/1046 0.008 0.000 0.008 0.000 {built-in method builtins.len}\n+ 3000 0.008 0.000 0.037 0.000 series.py:1095(__getitem__)\n
In [13]: %%cython\n ....: cimport numpy as np\n ....: import numpy as np\n ....: cdef double f_typed(double x) except? -2:\n ....: return x * (x - 1)\n@@ -722,15 +722,15 @@\n
This implementation creates an array of zeros and inserts the result\n of integrate_f_typed
applied over each row. Looping over an ndarray
is faster\n in Cython than looping over a Series
object.
Since apply_integrate_f
is typed to accept an np.ndarray
, Series.to_numpy()
\n calls are needed to utilize this function.
In [14]: %timeit apply_integrate_f(df["a"].to_numpy(), df["b"].to_numpy(), df["N"].to_numpy())\n-1.78 ms +- 366 us per loop (mean +- std. dev. of 7 runs, 1,000 loops each)\n+4.84 ms +- 511 us per loop (mean +- std. dev. of 7 runs, 100 loops each)\n
Performance has improved from the prior implementation by almost ten times.
\n \nThe majority of the time is now spent in apply_integrate_f
. Disabling Cython\u2019s boundscheck
\n@@ -782,15 +782,15 @@\n from /build/reproducible-path/pandas-2.2.3+dfsg/buildtmp/.cache/ipython/cython/_cython_magic_883da8958ecc60be73b28b7124368f9c7cc2d174.c:1251:\n /usr/lib/python3/dist-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:17:2: warning: #warning "Using deprecated NumPy API, disable it with " "#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]\n 17 | #warning "Using deprecated NumPy API, disable it with " \\\n | ^~~~~~~\n
In [17]: %timeit apply_integrate_f_wrap(df["a"].to_numpy(), df["b"].to_numpy(), df["N"].to_numpy())\n-882 us +- 35.8 us per loop (mean +- std. dev. of 7 runs, 1,000 loops each)\n+2.08 ms +- 904 us per loop (mean +- std. dev. of 7 runs, 1,000 loops each)\n
However, a loop indexer i
accessing an invalid location in an array would cause a segfault because memory access isn\u2019t checked.\n For more about boundscheck
and wraparound
, see the Cython docs on\n compiler directives.
DataFrame
. This engine requires the\n optional dependency numexpr
to be installed.\n The 'python'
engine is generally not useful except for testing\n other evaluation engines against it. You will achieve no performance\n benefits using eval()
with engine='python'
and may\n incur a performance hit.
In [40]: %timeit df1 + df2 + df3 + df4\n-18.9 ms +- 4.73 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)\n+20.8 ms +- 3.25 ms per loop (mean +- std. dev. of 7 runs, 100 loops each)\n
In [41]: %timeit pd.eval("df1 + df2 + df3 + df4", engine="python")\n-31 ms +- 1.73 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)\n+20.6 ms +- 3.16 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)\n
DataFrame.eval()
method#In addition to the top level pandas.eval()
function you can also\n evaluate an expression in the \u201ccontext\u201d of a DataFrame
.
In [58]: nrows, ncols = 20000, 100\n \n In [59]: df1, df2, df3, df4 = [pd.DataFrame(np.random.randn(nrows, ncols)) for _ in range(4)]\n
DataFrame
arithmetic:
In [60]: %timeit df1 + df2 + df3 + df4\n-29.6 ms +- 3.47 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)\n+27.1 ms +- 6.38 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)\n
In [61]: %timeit pd.eval("df1 + df2 + df3 + df4")\n-13.3 ms +- 551 us per loop (mean +- std. dev. of 7 runs, 100 loops each)\n+13.9 ms +- 1.22 ms per loop (mean +- std. dev. of 7 runs, 100 loops each)\n
DataFrame
comparison:
In [62]: %timeit (df1 > 0) & (df2 > 0) & (df3 > 0) & (df4 > 0)\n-51.5 ms +- 9.12 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)\n+30.3 ms +- 3.71 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)\n
In [63]: %timeit pd.eval("(df1 > 0) & (df2 > 0) & (df3 > 0) & (df4 > 0)")\n-16.3 ms +- 494 us per loop (mean +- std. dev. of 7 runs, 100 loops each)\n+21.3 ms +- 4.58 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)\n
DataFrame
arithmetic with unaligned axes.
In [64]: s = pd.Series(np.random.randn(50))\n \n In [65]: %timeit df1 + df2 + df3 + df4 + s\n-40.9 ms +- 2.47 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)\n+34.8 ms +- 4.07 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)\n
In [66]: %timeit pd.eval("df1 + df2 + df3 + df4 + s")\n-14.2 ms +- 3.06 ms per loop (mean +- std. dev. of 7 runs, 100 loops each)\n+17.8 ms +- 1.23 ms per loop (mean +- std. dev. of 7 runs, 100 loops each)\n
Note
\nOperations such as
\n1 and 2 # would parse to 1 & 2, but should evaluate to 2\n 3 or 4 # would parse to 3 | 4, but should evaluate to 3\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -110,32 +110,33 @@\n ...: dx = (b - a) / N\n ...: for i in range(N):\n ...: s += f(a + i * dx)\n ...: return s * dx\n ...:\n We achieve our result by using _\bD_\ba_\bt_\ba_\bF_\br_\ba_\bm_\be_\b._\ba_\bp_\bp_\bl_\by_\b(_\b) (row-wise):\n In [5]: %timeit df.apply(lambda x: integrate_f(x[\"a\"], x[\"b\"], x[\"N\"]), axis=1)\n-129 ms +- 26.5 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)\n+382 ms +- 120 ms per loop (mean +- std. dev. of 7 runs, 1 loop each)\n Let\u2019s take a look and see where the time is spent during this operation using\n the _\bp_\br_\bu_\bn_\b _\bi_\bp_\by_\bt_\bh_\bo_\bn_\b _\bm_\ba_\bg_\bi_\bc_\b _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn:\n # most time consuming 4 calls\n In [6]: %prun -l 4 df.apply(lambda x: integrate_f(x[\"a\"], x[\"b\"], x[\"N\"]),\n axis=1) # noqa E999\n- 605946 function calls (605928 primitive calls) in 0.494 seconds\n+ 605946 function calls (605928 primitive calls) in 1.221 seconds\n \n Ordered by: internal time\n List reduced from 159 to 4 due to restriction <4>\n \n ncalls tottime percall cumtime percall filename:lineno(function)\n- 1000 0.272 0.000 0.427 0.000 :1\n+ 1000 0.616 0.001 0.982 0.001 :1\n (integrate_f)\n- 552423 0.155 0.000 0.155 0.000 :1\n+ 552423 0.367 0.000 0.367 0.000 :1\n (f)\n- 3000 0.013 0.000 0.055 0.000 series.py:1095(__getitem__)\n- 3000 0.011 0.000 0.029 0.000 series.py:1220(_get_value)\n+ 3000 0.046 0.000 0.064 0.000 indexing.py:2765\n+(check_dict_or_set_indexers)\n+ 1000 0.042 0.000 0.042 0.000 managers.py:2065(set_values)\n By far the majority of time is spend inside either integrate_f or f, hence\n we\u2019ll concentrate our efforts cythonizing these two functions.\n *\b**\b**\b**\b* P\bPl\bla\bai\bin\bn C\bCy\byt\bth\bho\bon\bn_\b#\b# *\b**\b**\b**\b*\n First we\u2019re going to need to import the Cython magic function to IPython:\n In [7]: %load_ext Cython\n Now, let\u2019s simply copy our functions over to Cython:\n In [8]: %%cython\n@@ -146,15 +147,15 @@\n ...: dx = (b - a) / N\n ...: for i in range(N):\n ...: s += f_plain(a + i * dx)\n ...: return s * dx\n ...:\n In [9]: %timeit df.apply(lambda x: integrate_f_plain(x[\"a\"], x[\"b\"], x[\"N\"]),\n axis=1)\n-118 ms +- 27.3 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)\n+361 ms +- 55.7 ms per loop (mean +- std. dev. of 7 runs, 1 loop each)\n This has improved the performance compared to the pure Python approach by one-\n third.\n *\b**\b**\b**\b* D\bDe\bec\bcl\bla\bar\bri\bin\bng\bg C\bC t\bty\byp\bpe\bes\bs_\b#\b# *\b**\b**\b**\b*\n We can annotate the function variables and return types as well as use cdef and\n cpdef to improve performance:\n In [10]: %%cython\n ....: cdef double f_typed(double x) except? -2:\n@@ -166,35 +167,35 @@\n ....: dx = (b - a) / N\n ....: for i in range(N):\n ....: s += f_typed(a + i * dx)\n ....: return s * dx\n ....:\n In [11]: %timeit df.apply(lambda x: integrate_f_typed(x[\"a\"], x[\"b\"], x[\"N\"]),\n axis=1)\n-12.4 ms +- 2.04 ms per loop (mean +- std. dev. of 7 runs, 100 loops each)\n+40.9 ms +- 8.01 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)\n Annotating the functions with C types yields an over ten times performance\n improvement compared to the original Python implementation.\n *\b**\b**\b**\b* U\bUs\bsi\bin\bng\bg n\bnd\bda\bar\brr\bra\bay\by_\b#\b# *\b**\b**\b**\b*\n When re-profiling, time is spent creating a _\bS_\be_\br_\bi_\be_\bs from each row, and calling\n __getitem__ from both the index and the series (three times for each row).\n These Python function calls are expensive and can be improved by passing an\n np.ndarray.\n In [12]: %prun -l 4 df.apply(lambda x: integrate_f_typed(x[\"a\"], x[\"b\"], x\n [\"N\"]), axis=1)\n- 52523 function calls (52505 primitive calls) in 0.025 seconds\n+ 52523 function calls (52505 primitive calls) in 0.059 seconds\n \n Ordered by: internal time\n List reduced from 157 to 4 due to restriction <4>\n \n ncalls tottime percall cumtime percall filename:lineno(function)\n- 3000 0.004 0.000 0.016 0.000 series.py:1095(__getitem__)\n- 3000 0.003 0.000 0.007 0.000 series.py:1220(_get_value)\n- 16098 0.002 0.000 0.003 0.000 {built-in method\n+ 16098 0.010 0.000 0.011 0.000 {built-in method\n builtins.isinstance}\n- 3000 0.002 0.000 0.003 0.000 base.py:3777(get_loc)\n+ 3000 0.010 0.000 0.010 0.000 managers.py:2004(internal_values)\n+1063/1046 0.008 0.000 0.008 0.000 {built-in method builtins.len}\n+ 3000 0.008 0.000 0.037 0.000 series.py:1095(__getitem__)\n In [13]: %%cython\n ....: cimport numpy as np\n ....: import numpy as np\n ....: cdef double f_typed(double x) except? -2:\n ....: return x * (x - 1)\n ....: cpdef double integrate_f_typed(double a, double b, int N):\n ....: cdef int i\n@@ -235,15 +236,15 @@\n This implementation creates an array of zeros and inserts the result of\n integrate_f_typed applied over each row. Looping over an ndarray is faster in\n Cython than looping over a _\bS_\be_\br_\bi_\be_\bs object.\n Since apply_integrate_f is typed to accept an np.ndarray, _\bS_\be_\br_\bi_\be_\bs_\b._\bt_\bo_\b__\bn_\bu_\bm_\bp_\by_\b(_\b)\n calls are needed to utilize this function.\n In [14]: %timeit apply_integrate_f(df[\"a\"].to_numpy(), df[\"b\"].to_numpy(), df\n [\"N\"].to_numpy())\n-1.78 ms +- 366 us per loop (mean +- std. dev. of 7 runs, 1,000 loops each)\n+4.84 ms +- 511 us per loop (mean +- std. dev. of 7 runs, 100 loops each)\n Performance has improved from the prior implementation by almost ten times.\n *\b**\b**\b**\b* D\bDi\bis\bsa\bab\bbl\bli\bin\bng\bg c\bco\bom\bmp\bpi\bil\ble\ber\br d\bdi\bir\bre\bec\bct\bti\biv\bve\bes\bs_\b#\b# *\b**\b**\b**\b*\n The majority of the time is now spent in apply_integrate_f. Disabling Cython\u2019s\n boundscheck and wraparound checks can yield more performance.\n In [15]: %prun -l 4 apply_integrate_f(df[\"a\"].to_numpy(), df[\"b\"].to_numpy(),\n df[\"N\"].to_numpy())\n 78 function calls in 0.001 seconds\n@@ -298,15 +299,15 @@\n /usr/lib/python3/dist-packages/numpy/core/include/numpy/\n npy_1_7_deprecated_api.h:17:2: warning: #warning \"Using deprecated NumPy API,\n disable it with \" \"#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION\" [-Wcpp]\n 17 | #warning \"Using deprecated NumPy API, disable it with \" \\\n | ^~~~~~~\n In [17]: %timeit apply_integrate_f_wrap(df[\"a\"].to_numpy(), df[\"b\"].to_numpy(),\n df[\"N\"].to_numpy())\n-882 us +- 35.8 us per loop (mean +- std. dev. of 7 runs, 1,000 loops each)\n+2.08 ms +- 904 us per loop (mean +- std. dev. of 7 runs, 1,000 loops each)\n However, a loop indexer i accessing an invalid location in an array would cause\n a segfault because memory access isn\u2019t checked. For more about boundscheck and\n wraparound, see the Cython docs on _\bc_\bo_\bm_\bp_\bi_\bl_\be_\br_\b _\bd_\bi_\br_\be_\bc_\bt_\bi_\bv_\be_\bs.\n *\b**\b**\b**\b**\b* N\bNu\bum\bmb\bba\ba (\b(J\bJI\bIT\bT c\bco\bom\bmp\bpi\bil\bla\bat\bti\bio\bon\bn)\b)_\b#\b# *\b**\b**\b**\b**\b*\n An alternative to statically compiling Cython code is to use a dynamic just-in-\n time (JIT) compiler with _\bN_\bu_\bm_\bb_\ba.\n Numba allows you to write a pure Python function which can be JIT compiled to\n@@ -609,17 +610,17 @@\n The 'numexpr' engine is the more performant engine that can yield performance\n improvements compared to standard Python syntax for large _\bD_\ba_\bt_\ba_\bF_\br_\ba_\bm_\be. This\n engine requires the optional dependency numexpr to be installed.\n The 'python' engine is generally n\bno\bot\bt useful except for testing other evaluation\n engines against it. You will achieve n\bno\bo performance benefits using _\be_\bv_\ba_\bl_\b(_\b) with\n engine='python' and may incur a performance hit.\n In [40]: %timeit df1 + df2 + df3 + df4\n-18.9 ms +- 4.73 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)\n+20.8 ms +- 3.25 ms per loop (mean +- std. dev. of 7 runs, 100 loops each)\n In [41]: %timeit pd.eval(\"df1 + df2 + df3 + df4\", engine=\"python\")\n-31 ms +- 1.73 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)\n+20.6 ms +- 3.16 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)\n *\b**\b**\b**\b* T\bTh\bhe\be _\bD\bD_\ba\ba_\bt\bt_\ba\ba_\bF\bF_\br\br_\ba\ba_\bm\bm_\be\be_\b.\b._\be\be_\bv\bv_\ba\ba_\bl\bl_\b(\b(_\b)\b) m\bme\bet\bth\bho\bod\bd_\b#\b# *\b**\b**\b**\b*\n In addition to the top level _\bp_\ba_\bn_\bd_\ba_\bs_\b._\be_\bv_\ba_\bl_\b(_\b) function you can also evaluate an\n expression in the \u201ccontext\u201d of a _\bD_\ba_\bt_\ba_\bF_\br_\ba_\bm_\be.\n In [42]: df = pd.DataFrame(np.random.randn(5, 2), columns=[\"a\", \"b\"])\n \n In [43]: df.eval(\"a + b\")\n Out[43]:\n@@ -716,29 +717,29 @@\n _\bp_\ba_\bn_\bd_\ba_\bs_\b._\be_\bv_\ba_\bl_\b(_\b) works well with expressions containing large arrays.\n In [58]: nrows, ncols = 20000, 100\n \n In [59]: df1, df2, df3, df4 = [pd.DataFrame(np.random.randn(nrows, ncols)) for\n _ in range(4)]\n _\bD_\ba_\bt_\ba_\bF_\br_\ba_\bm_\be arithmetic:\n In [60]: %timeit df1 + df2 + df3 + df4\n-29.6 ms +- 3.47 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)\n+27.1 ms +- 6.38 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)\n In [61]: %timeit pd.eval(\"df1 + df2 + df3 + df4\")\n-13.3 ms +- 551 us per loop (mean +- std. dev. of 7 runs, 100 loops each)\n+13.9 ms +- 1.22 ms per loop (mean +- std. dev. of 7 runs, 100 loops each)\n _\bD_\ba_\bt_\ba_\bF_\br_\ba_\bm_\be comparison:\n In [62]: %timeit (df1 > 0) & (df2 > 0) & (df3 > 0) & (df4 > 0)\n-51.5 ms +- 9.12 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)\n+30.3 ms +- 3.71 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)\n In [63]: %timeit pd.eval(\"(df1 > 0) & (df2 > 0) & (df3 > 0) & (df4 > 0)\")\n-16.3 ms +- 494 us per loop (mean +- std. dev. of 7 runs, 100 loops each)\n+21.3 ms +- 4.58 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)\n _\bD_\ba_\bt_\ba_\bF_\br_\ba_\bm_\be arithmetic with unaligned axes.\n In [64]: s = pd.Series(np.random.randn(50))\n \n In [65]: %timeit df1 + df2 + df3 + df4 + s\n-40.9 ms +- 2.47 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)\n+34.8 ms +- 4.07 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)\n In [66]: %timeit pd.eval(\"df1 + df2 + df3 + df4 + s\")\n-14.2 ms +- 3.06 ms per loop (mean +- std. dev. of 7 runs, 100 loops each)\n+17.8 ms +- 1.23 ms per loop (mean +- std. dev. of 7 runs, 100 loops each)\n Note\n Operations such as\n 1 and 2 # would parse to 1 & 2, but should evaluate to 2\n 3 or 4 # would parse to 3 | 4, but should evaluate to 3\n ~1 # this is okay, but slower when using eval\n should be performed in Python. An exception will be raised if you try to\n perform any boolean/bitwise operations with scalar operands that are not of\n"}]}, {"source1": "./usr/share/doc/python-pandas-doc/html/user_guide/scale.html", "source2": "./usr/share/doc/python-pandas-doc/html/user_guide/scale.html", "unified_diff": "@@ -1086,16 +1086,16 @@\n ....: files = pathlib.Path("data/timeseries/").glob("ts*.parquet")\n ....: counts = pd.Series(dtype=int)\n ....: for path in files:\n ....: df = pd.read_parquet(path)\n ....: counts = counts.add(df["name"].value_counts(), fill_value=0)\n ....: counts.astype(int)\n ....: \n-CPU times: user 519 us, sys: 44 us, total: 563 us\n-Wall time: 570 us\n+CPU times: user 549 us, sys: 78 us, total: 627 us\n+Wall time: 635 us\n Out[32]: Series([], dtype: int64)\n
Some readers, like pandas.read_csv()
, offer parameters to control the\n chunksize
when reading a single file.
Manually chunking is an OK option for workflows that don\u2019t\n require too sophisticated of operations. Some operations, like pandas.DataFrame.groupby()
, are\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -644,16 +644,16 @@\n ....: files = pathlib.Path(\"data/timeseries/\").glob(\"ts*.parquet\")\n ....: counts = pd.Series(dtype=int)\n ....: for path in files:\n ....: df = pd.read_parquet(path)\n ....: counts = counts.add(df[\"name\"].value_counts(), fill_value=0)\n ....: counts.astype(int)\n ....:\n-CPU times: user 519 us, sys: 44 us, total: 563 us\n-Wall time: 570 us\n+CPU times: user 549 us, sys: 78 us, total: 627 us\n+Wall time: 635 us\n Out[32]: Series([], dtype: int64)\n Some readers, like _\bp_\ba_\bn_\bd_\ba_\bs_\b._\br_\be_\ba_\bd_\b__\bc_\bs_\bv_\b(_\b), offer parameters to control the chunksize\n when reading a single file.\n Manually chunking is an OK option for workflows that don\u2019t require too\n sophisticated of operations. Some operations, like _\bp_\ba_\bn_\bd_\ba_\bs_\b._\bD_\ba_\bt_\ba_\bF_\br_\ba_\bm_\be_\b._\bg_\br_\bo_\bu_\bp_\bb_\by_\b(_\b),\n are much harder to do chunkwise. In these cases, you may be better switching to\n a different library that implements these out-of-core algorithms for you.\n"}]}, {"source1": "./usr/share/doc/python-pandas-doc/html/user_guide/style.ipynb.gz", "source2": "./usr/share/doc/python-pandas-doc/html/user_guide/style.ipynb.gz", "unified_diff": null, "details": [{"source1": "style.ipynb", "source2": "style.ipynb", "unified_diff": null, "details": [{"source1": "Pretty-printed", "source2": "Pretty-printed", "comments": ["Similarity: 0.9985610875706213%", "Differences: {\"'cells'\": \"{1: {'metadata': {'execution': {'iopub.execute_input': '2025-02-13T00:04:29.331127Z', \"", " \"'iopub.status.busy': '2025-02-13T00:04:29.330662Z', 'iopub.status.idle': \"", " \"'2025-02-13T00:04:29.750346Z', 'shell.execute_reply': \"", " \"'2025-02-13T00:04:29.742989Z'}}}, 3: {'metadata': {'execution': \"", " \"{'iopub.execute_input': '2025-02-13T00:04:29.766964Z', 'iopub.status.busy': \"", " \"'2025-02-13T00:04:29.766597Z', 'iopub.status.idle': '2025-02-13T00:04:3 [\u2026]"], "unified_diff": "@@ -39,18 +39,18 @@\n ]\n },\n {\n \"cell_type\": \"code\",\n \"execution_count\": 1,\n \"metadata\": {\n \"execution\": {\n- \"iopub.execute_input\": \"2026-03-18T04:24:36.942759Z\",\n- \"iopub.status.busy\": \"2026-03-18T04:24:36.942509Z\",\n- \"iopub.status.idle\": \"2026-03-18T04:24:37.706708Z\",\n- \"shell.execute_reply\": \"2026-03-18T04:24:37.706001Z\"\n+ \"iopub.execute_input\": \"2025-02-13T00:04:29.331127Z\",\n+ \"iopub.status.busy\": \"2025-02-13T00:04:29.330662Z\",\n+ \"iopub.status.idle\": \"2025-02-13T00:04:29.750346Z\",\n+ \"shell.execute_reply\": \"2025-02-13T00:04:29.742989Z\"\n },\n \"nbsphinx\": \"hidden\"\n },\n \"outputs\": [],\n \"source\": [\n \"import matplotlib.pyplot\\n\",\n \"# We have this here to trigger matplotlib's font cache stuff.\\n\",\n@@ -77,36 +77,36 @@\n ]\n },\n {\n \"cell_type\": \"code\",\n \"execution_count\": 2,\n \"metadata\": {\n \"execution\": {\n- \"iopub.execute_input\": \"2026-03-18T04:24:37.709536Z\",\n- \"iopub.status.busy\": \"2026-03-18T04:24:37.709226Z\",\n- \"iopub.status.idle\": \"2026-03-18T04:24:38.170675Z\",\n- \"shell.execute_reply\": \"2026-03-18T04:24:38.170003Z\"\n+ \"iopub.execute_input\": \"2025-02-13T00:04:29.766964Z\",\n+ \"iopub.status.busy\": \"2025-02-13T00:04:29.766597Z\",\n+ \"iopub.status.idle\": \"2025-02-13T00:04:30.058055Z\",\n+ \"shell.execute_reply\": \"2025-02-13T00:04:30.046032Z\"\n }\n },\n \"outputs\": [],\n \"source\": [\n \"import pandas as pd\\n\",\n \"import numpy as np\\n\",\n \"import matplotlib as mpl\\n\"\n ]\n },\n {\n \"cell_type\": \"code\",\n \"execution_count\": 3,\n \"metadata\": {\n \"execution\": {\n- \"iopub.execute_input\": \"2026-03-18T04:24:38.173419Z\",\n- \"iopub.status.busy\": \"2026-03-18T04:24:38.173095Z\",\n- \"iopub.status.idle\": \"2026-03-18T04:24:38.442647Z\",\n- \"shell.execute_reply\": \"2026-03-18T04:24:38.441985Z\"\n+ \"iopub.execute_input\": \"2025-02-13T00:04:30.078999Z\",\n+ \"iopub.status.busy\": \"2025-02-13T00:04:30.078609Z\",\n+ \"iopub.status.idle\": \"2025-02-13T00:04:30.282771Z\",\n+ \"shell.execute_reply\": \"2025-02-13T00:04:30.282034Z\"\n },\n \"nbsphinx\": \"hidden\"\n },\n \"outputs\": [],\n \"source\": [\n \"# For reproducibility - this doesn't respect uuid_len or positionally-passed uuid but the places here that use that coincidentally bypass this anyway\\n\",\n \"from pandas.io.formats.style import Styler\\n\",\n@@ -123,18 +123,18 @@\n ]\n },\n {\n \"cell_type\": \"code\",\n \"execution_count\": 4,\n \"metadata\": {\n \"execution\": {\n- \"iopub.execute_input\": \"2026-03-18T04:24:38.445361Z\",\n- \"iopub.status.busy\": \"2026-03-18T04:24:38.445054Z\",\n- \"iopub.status.idle\": \"2026-03-18T04:24:38.466626Z\",\n- \"shell.execute_reply\": \"2026-03-18T04:24:38.465984Z\"\n+ \"iopub.execute_input\": \"2025-02-13T00:04:30.288449Z\",\n+ \"iopub.status.busy\": \"2025-02-13T00:04:30.288077Z\",\n+ \"iopub.status.idle\": \"2025-02-13T00:04:30.302725Z\",\n+ \"shell.execute_reply\": \"2025-02-13T00:04:30.302018Z\"\n }\n },\n \"outputs\": [\n {\n \"data\": {\n \"text/html\": [\n \"