diff --git a/.trinity/seals/analog_AnalogAcceptSar.json b/.trinity/seals/analog_AnalogAcceptSar.json index 073527250b..a1dece0599 100644 --- a/.trinity/seals/analog_AnalogAcceptSar.json +++ b/.trinity/seals/analog_AnalogAcceptSar.json @@ -19,7 +19,7 @@ }, { "spec": "specs/analog/mos_psp103_gates.t27", - "spec_hash": "sha256:63ec92b62957ef68e8522c4dc392727ef8e5dc3b97195d519d68da1193b83e66" + "spec_hash": "sha256:1b86ebd4bba806b972b39625d135646d7880255ab934c521a51467c92e42ee35" }, { "spec": "specs/analog/sar_adc.t27", @@ -55,16 +55,16 @@ } ], "config": "gen=c,rust,verilog,zig;tests=zig", - "gen_hash_c": "sha256:34ccbab9cc4e3487395ef4e9b572a107c27a6dcfc9f1fce65e25448c65d2460d", - "gen_hash_rust": "sha256:fb56af614562c17edf7ddf801463a2b0cab6650b4833e140e3d753d7b72fe2b8", - "gen_hash_verilog": "sha256:c2311f1cb2c8fd5da7cda29c7c498104e62920a3d1cf3e17bfa0fd85eefb514c", - "gen_hash_zig": "sha256:23badcb27fb8ab78bc62a2956cdc25171e5d9e3274c50afe622e16c92c931e43", + "gen_hash_c": "sha256:3f6992a682a03e5d9ce66aa9dc261de35315b020aa2dd125cf9fc4ba5ba06e6b", + "gen_hash_rust": "sha256:491dfc6f9418e5650b2f66d415df6683edf68ced544648f0310c4b6452c8c9cd", + "gen_hash_verilog": "sha256:bc2099c4b2bf4d4f8d191946936ec071c4f87091fff777ccdcd4298461f07cb3", + "gen_hash_zig": "sha256:81a184a65723aa373c8ec78d9405d2501d38623d9102fcf8f41979494c4cff57", "module": "AnalogAcceptSar", "ring": 12, "seal_schema": 2, - "sealed_at": "2026-10-20T08:13:43Z", + "sealed_at": "2026-10-20T09:07:24Z", "sealed_by": "t27c-bootstrap@0.5.2", - "spec_hash": "sha256:815322645790478d663c1b0a8ce688e419fa7f78e2d9718042e7695d110f6087", + "spec_hash": "sha256:6304ef41504fb584a1a7ac3af7779acaa2a468be46df1055217f4fb4206867e2", "spec_path": "specs/analog/accept_sar.t27", "tests": { "failed": 0, diff --git a/.trinity/seals/analog_AnalogMosPsp103Gates.json b/.trinity/seals/analog_AnalogMosPsp103Gates.json index 42ed09a160..96c5c56ef0 100644 --- a/.trinity/seals/analog_AnalogMosPsp103Gates.json +++ b/.trinity/seals/analog_AnalogMosPsp103Gates.json @@ -1,6 +1,10 @@ { "built_by": "t27c-bootstrap@0.5.2+2d3203e90", "closure": [ + { + "spec": "specs/analog/linear.t27", + "spec_hash": "sha256:3ddef7be183aba583ed285334ee389b48a65b41335e98914514235db7c4e5d62" + }, { "spec": "specs/analog/mos_psp103.t27", "spec_hash": "sha256:e04b69e5c43188a3d46a4c0949cfc727f239721de73fb46e92c8a845bbbbc98e" @@ -9,29 +13,33 @@ "spec": "specs/analog/mos_psp103_data.t27", "spec_hash": "sha256:86e7c154c88a325e41ff4a154a3b766cb8d65e89e2ea82176b46ee4fc523dd74" }, + { + "spec": "specs/analog/mos_psp103_vsb_data.t27", + "spec_hash": "sha256:1084104fc91192606d207a0bb45084c5fb62f097d1850d1875fca25f72387cfe" + }, { "spec": "specs/analog/mos_table.t27", - "spec_hash": "sha256:54e248069ae620d18d260231e238b6bc42dc3c65792bd1673b162c2dc97b2edb" + "spec_hash": "sha256:cbebd820d2284174fd88fd6e5c36fb4f0a7778c9977c9742fe215b177d623bd8" } ], "config": "gen=c,rust,verilog,zig;tests=zig", - "gen_hash_c": "sha256:a27f3f394d8594134c3259e724858912d29f0870219ff3087c2beefaabb53a7f", - "gen_hash_rust": "sha256:773c19b0e5918f14274d5677437cec1ddca6bbba9a290593c7c74849913f0594", - "gen_hash_verilog": "sha256:e259d778dda4a1a118f8c81187e7dc22a319b098f3af0d00d7b46bb3b81b45a4", - "gen_hash_zig": "sha256:2ca337a6c0d2ccd3f92b1ad4e07d69298fc4d79b81075225c72f96f1829e1a0c", + "gen_hash_c": "sha256:3c1e5cb5dbd8dda22c01df25a41f4f39702fecf0352e9c060c0ef1e443b98d67", + "gen_hash_rust": "sha256:90e38efe9ca4b750f344f26d17acea27f6a761c7ec9b8b600ed825e14550b2ab", + "gen_hash_verilog": "sha256:c5fa61c958611e9d8b1bbc5c61eda17a257f053671e9a05f77500d5f496995f1", + "gen_hash_zig": "sha256:f7d5b8aab7819d20d8a58fc0fce4a00e309d3401f3c14faaa243188639d63497", "module": "AnalogMosPsp103Gates", "ring": 12, "seal_schema": 2, - "sealed_at": "2026-10-20T08:13:50Z", + "sealed_at": "2026-10-20T09:07:14Z", "sealed_by": "t27c-bootstrap@0.5.2", - "spec_hash": "sha256:63ec92b62957ef68e8522c4dc392727ef8e5dc3b97195d519d68da1193b83e66", + "spec_hash": "sha256:1b86ebd4bba806b972b39625d135646d7880255ab934c521a51467c92e42ee35", "spec_path": "specs/analog/mos_psp103_gates.t27", "tests": { "failed": 0, "failing": [], "forced": false, - "passed": 6, - "total": 6, + "passed": 9, + "total": 9, "vacuous": 0 }, "toolchain": { diff --git a/.trinity/seals/analog_AnalogMosPsp103VsbData.json b/.trinity/seals/analog_AnalogMosPsp103VsbData.json new file mode 100644 index 0000000000..5d52c731a0 --- /dev/null +++ b/.trinity/seals/analog_AnalogMosPsp103VsbData.json @@ -0,0 +1,37 @@ +{ + "built_by": "t27c-bootstrap@0.5.2+2d3203e90", + "closure": [ + { + "spec": "specs/analog/mos_psp103_data.t27", + "spec_hash": "sha256:86e7c154c88a325e41ff4a154a3b766cb8d65e89e2ea82176b46ee4fc523dd74" + }, + { + "spec": "specs/analog/mos_table.t27", + "spec_hash": "sha256:cbebd820d2284174fd88fd6e5c36fb4f0a7778c9977c9742fe215b177d623bd8" + } + ], + "config": "gen=c,rust,verilog,zig;tests=zig", + "gen_hash_c": "sha256:4c3995dba63df4e35e656f17860215b5657f61896abd9f142e1ce6e20bec84d5", + "gen_hash_rust": "sha256:7fcdaa84e58f4489e9d266bf59d69593f4bec21cf35c93276cccbda77225e4aa", + "gen_hash_verilog": "sha256:6bc5ac32b5c6d05f0c9b645c16a341015b99bef0c6f0f9a6b61dde1ee5983343", + "gen_hash_zig": "sha256:3ee153637cfb9c3afae60231fd8fbd0782cf20f2960b99da1d25726c09e34a65", + "module": "AnalogMosPsp103VsbData", + "ring": 12, + "seal_schema": 2, + "sealed_at": "2026-10-20T09:07:07Z", + "sealed_by": "t27c-bootstrap@0.5.2", + "spec_hash": "sha256:1084104fc91192606d207a0bb45084c5fb62f097d1850d1875fca25f72387cfe", + "spec_path": "specs/analog/mos_psp103_vsb_data.t27", + "tests": { + "failed": 0, + "failing": [], + "forced": false, + "passed": 3, + "total": 3, + "vacuous": 0 + }, + "toolchain": { + "test_runner": "sha256:8512b80da533b79289110fca4a65f3336abd7a059ca4b72ea595d5e33ff8ad10", + "zig": "0.16.0" + } +} \ No newline at end of file diff --git a/.trinity/seals/analog_AnalogMosTable.json b/.trinity/seals/analog_AnalogMosTable.json index f56f4dc197..3ed9d7a356 100644 --- a/.trinity/seals/analog_AnalogMosTable.json +++ b/.trinity/seals/analog_AnalogMosTable.json @@ -1,5 +1,5 @@ { - "built_by": "t27c-bootstrap@0.5.2+42a4860c4", + "built_by": "t27c-bootstrap@0.5.2+2d3203e90", "closure": [ { "spec": "specs/analog/linear.t27", @@ -7,23 +7,23 @@ } ], "config": "gen=c,rust,verilog,zig;tests=zig", - "gen_hash_c": "sha256:0d463e6735ad1e4b396815cc2cd3fbeaf247b51957a064a17401c55c662e7c09", - "gen_hash_rust": "sha256:88836ddfbb71fe8ead14846b2366b665f9bc75c79744eacaa5c393835356a3cc", - "gen_hash_verilog": "sha256:81cec1ae23c7262af635c0fca6a89e7b20a57473d4b3a1d011fbcb6a4f5e2e07", - "gen_hash_zig": "sha256:b6d45978701159e277778cb20711620e7f45af9ea9385df6a06d353b323e79ab", + "gen_hash_c": "sha256:497a6d0931257b149405e1e545ae77d6265d8e06be3197743fea8683f2cb17b0", + "gen_hash_rust": "sha256:ee143e299f97492f9bc241bfabae82e6b8f61db25d9ac6c1777f68562d54c2c9", + "gen_hash_verilog": "sha256:6e217c9e8b89a5a2a10af7665943f4df4a0ceb44c02d2ac4208ff9e02ba49328", + "gen_hash_zig": "sha256:15e1e282aa807ffe1516ec9b207cf7f26b3f1e6edbc0f3d602cd9dc980805e1d", "module": "AnalogMosTable", "ring": 12, "seal_schema": 2, - "sealed_at": "2026-10-19T19:25:12Z", + "sealed_at": "2026-10-20T09:07:01Z", "sealed_by": "t27c-bootstrap@0.5.2", - "spec_hash": "sha256:54e248069ae620d18d260231e238b6bc42dc3c65792bd1673b162c2dc97b2edb", + "spec_hash": "sha256:cbebd820d2284174fd88fd6e5c36fb4f0a7778c9977c9742fe215b177d623bd8", "spec_path": "specs/analog/mos_table.t27", "tests": { "failed": 0, "failing": [], "forced": false, - "passed": 20, - "total": 20, + "passed": 21, + "total": 21, "vacuous": 0 }, "toolchain": { diff --git a/docs/analog/accept-sar-2026-10-20.md b/docs/analog/accept-sar-2026-10-20.md index 59938dd043..81371e341c 100644 --- a/docs/analog/accept-sar-2026-10-20.md +++ b/docs/analog/accept-sar-2026-10-20.md @@ -1,10 +1,10 @@ # The external team's per-block checks applied to our SAR ADC blocks, 2026-10-20 -Issue #11212, milestone M5c of the analog epic #10486, night loop #11063; M5d (issue #11263) adds the transistor-level rows of the nand, nor, tgate and tracking_switch, cross-checked against ngspice. English, ASCII only. +Issue #11212, milestone M5c of the analog epic #10486, night loop #11063; M5d (issue #11263) adds the transistor-level rows of the nand, nor, tgate and tracking_switch, cross-checked against ngspice; M3e (issue #11283) adds a source-to-bulk axis to the PSP103 tables, which turns the tgate's two resistances from NOT MODELLED to PASS (section 3c). English, ASCII only. The external team's report of 2026-10-16 lists, for each of the 13 blocks of the golden SAR ADC, a measured value and the limit that its check enforces (conditions: tt corner, 27 C, VDD 1.5 V, cells taken from the integrated converter's netlist). The team confirmed on 2026-10-20 that the checks and their limits may be used and published here. `specs/analog/accept_sar.t27` holds those limits as named constants, one pure check function per quantity, and one function per block that measures the quantity on OUR model by `use` of the spec that holds it. This document is the result. Every "our value" below is computed by a named function of that spec and pinned by a test; every "report" value is the report's, and is also in the spec as the positive control of its check (the report's own number must pass the report's own check). -What this document does not say: nothing about a transistor-level result for the gate-level blocks (dff, clock_gen, SAR_logic), nothing about the voltage level of any digital node but the nand's and the nor's, nothing about the delay of a gate into a load, nothing about the tgate's resistance, nothing about power, noise, mismatch, another corner or temperature, or speed. No model was tuned to turn a FAIL into a PASS, and none was changed to make a number come out. +What this document does not say: nothing about a transistor-level result for the gate-level blocks (dff, clock_gen, SAR_logic), nothing about the voltage level of any digital node but the nand's and the nor's, nothing about the delay of a gate into a load, nothing about the tgate's resistance beyond the 27 outputs at 10 mV across it, nothing about power, noise, mismatch, another corner or temperature, or speed. No model was tuned to turn a FAIL into a PASS, and none was changed to make a number come out. ## 1. The verdict rule @@ -24,11 +24,11 @@ Over the 13 blocks of the report (inverter, nand, nor, tgate, dff, dynamic_compa | verdict | blocks | which | |---|---|---| -| PASS | 5 | clock_gen, SAR_logic, integration, nand, nor | +| PASS | 6 | clock_gen, SAR_logic, integration, nand, nor, tgate | | FAIL | 1 | dynamic_comparator (decision time) | -| NOT MODELLED | 7 | inverter, tgate, dff, tracking_switch, DAC_control, DAC_control_top, neg_bottom_plate_logic | +| NOT MODELLED | 6 | inverter, dff, tracking_switch, DAC_control, DAC_control_top, neg_bottom_plate_logic | -Over the 30 rows: 19 PASS, 1 FAIL, 10 NOT MODELLED (a test pins both counts: `as_all_blocks`, `as_all_rows`). Before M5d the counts were 3 / 1 / 9 blocks and 16 / 1 / 13 rows. The new PASS rows are the nand's and the nor's levels (2) and the tgate's off leakage (1); the tgate's two resistances are measured now but stay NOT MODELLED, with their numbers and the reason (section 3b). Four of the seven NOT MODELLED blocks have at least one measured, passing row (inverter 1, tgate 1, dff 2, tracking_switch 1); three have none (DAC_control, DAC_control_top, neg_bottom_plate_logic). The PASS of clock_gen and SAR_logic is the PASS of the gate-level model named in section 4, that of integration the PASS of a behavioural converter fitted to the golden deck, and that of the nand and the nor the PASS of a DC solve on the PSP103 tables, each level within 3 uV of ngspice's. +Over the 30 rows: 21 PASS, 1 FAIL, 8 NOT MODELLED (a test pins both counts: `as_all_blocks`, `as_all_rows`). Before M5d the counts were 3 / 1 / 9 blocks and 16 / 1 / 13 rows; after M5d and before M3e they were 5 / 1 / 7 blocks and 19 / 1 / 10 rows. The M5d PASS rows are the nand's and the nor's levels (2) and the tgate's off leakage (1); the M3e PASS rows are the tgate's two resistances (2), read on tables with a source-to-bulk axis (section 3c), so the tgate block is a PASS. Three of the six NOT MODELLED blocks have at least one measured, passing row (inverter 1, dff 2, tracking_switch 1); three have none (DAC_control, DAC_control_top, neg_bottom_plate_logic). The PASS of clock_gen and SAR_logic is the PASS of the gate-level model named in section 4, that of integration the PASS of a behavioural converter fitted to the golden deck, and that of the nand, the nor and the tgate the PASS of a DC solve on the PSP103 tables, each nand and nor level within 3 uV of ngspice's and the tgate's Ron within 0.1 percent of ngspice's real cell. The report's corners smoke suite (SAR inverter delay 62 to 124 ps, comparator decision 467 to 829 ps over 5 corners at -40, 27 and 125 C) is a test run, not a block, and is not in the 13. It is NOT MODELLED (last row of the table). @@ -44,8 +44,8 @@ Times in ps or ns as written. "Report" is the report's measured value; "limit" i | nand | levels into 10 fF (DC solve, worst level of the 4 inputs) | 1 levels 1.5 V - 0.18 / 0.48 / 0.48 uV; 0 level 0.18 uV | 1.5 V for a 1, microvolts for a 0 | 1.45 to 1.55 V; +-50 mV | PASS (within 2.4 uV of ngspice) | `gt_levels` | | nor | truth table 00, 01, 10, 11 (logic level) | 1, 0, 0, 0 | rows right | exact | PASS | `sl_nor_code` | | nor | levels into 10 fF (DC solve, worst level of the 4 inputs) | 1 level 1.5 V - 1.85 uV; 0 levels 0.06 uV | 1.5 V for a 1, microvolts for a 0 | 1.45 to 1.55 V; +-50 mV | PASS (within 1.1 uV of ngspice) | `gt_levels` | -| tgate | Ron at 0.75 V (10 mV across it) | 1718 ohm, no body effect; ngspice's real cell 2460 ohm, 30.2 % above | 2.44 kohm | <= 30 kohm | NOT MODELLED (cross-check bar 10 %) | `gt_tg_ron` | -| tgate | worst Ron over 0.1 to 1.4 V (27 points) | 2109 ohm at 1.15 V, no body effect; ngspice's real cell 2776 ohm at 1.0 V, 24.0 % above | 2.78 kohm | <= 50 kohm | NOT MODELLED (cross-check bar 10 %) | `gt_tg_worst` | +| tgate | Ron at 0.75 V (10 mV across it) | 2461.2 ohm with the body effect (bulks on the rails); ngspice's real cell 2459.6 ohm, +0.065 % | 2.44 kohm | <= 30 kohm | PASS (within 10 % of ngspice) | `gt_tg_ron` | +| tgate | worst Ron over 0.1 to 1.4 V (27 points) | 2777.5 ohm at 1.0 V with the body effect; ngspice's real cell 2776.1 ohm at 1.0 V, +0.049 % | 2.78 kohm | <= 50 kohm | PASS (within 10 % of ngspice) | `gt_tg_worst` | | tgate | off leakage (full swing) | 291.0 pA; ngspice 285.6 pA at the output source, 271.4 pA at the input source | 0.29 nA | <= 1 nA | PASS (within 7.2 % of ngspice) | `gt_tg_off` | | dff | edge capture, hold, set, reset (logic level, 11 stages) | all right | all right | exact | PASS | `as_sar_run`, `as_dff_set_reset` | | dff | levels of the 8 observation points | not produced | all right | +-50 mV | NOT MODELLED | | @@ -84,8 +84,8 @@ Every number in this table is printed by a deck of `specs/analog/decks` run in n | nor 01, 0 level | 0.060 uV | 0.634 uV | -0.575 uV | 10 uV | microvolts | +-50 mV | PASS | | nor 10, 0 level | 0.060 uV | 0.617 uV | -0.557 uV | 10 uV | microvolts | +-50 mV | PASS | | nor 11, 0 level | 0.060 uV | 0.611 uV | -0.552 uV | 10 uV | microvolts | +-50 mV | PASS | -| tgate Ron at 0.75 V | 1718.0 ohm | 2459.6 ohm (real cell) | -741.6 ohm, -30.2 % | 10 % | 2.44 kohm | <= 30 kohm | NOT MODELLED | -| tgate worst Ron, 27 points 0.10 to 1.40 V | 2109.3 ohm (1.15 V) | 2776.1 ohm (real cell, 1.0 V) | -666.8 ohm, -24.0 % | 10 % | 2.78 kohm | <= 50 kohm | NOT MODELLED | +| tgate Ron at 0.75 V | 2461.2 ohm (with the body effect; 1718.0 ohm with Vsb forced to 0) | 2459.6 ohm (real cell) | +1.6 ohm, +0.065 % (-741.6 ohm, -30.2 % with Vsb forced to 0) | 10 % | 2.44 kohm | <= 30 kohm | PASS (NOT MODELLED with Vsb forced to 0) | +| tgate worst Ron, 27 points 0.10 to 1.40 V | 2777.5 ohm (1.0 V; 2109.3 ohm at 1.15 V with Vsb forced to 0) | 2776.1 ohm (real cell, 1.0 V) | +1.4 ohm, +0.049 % (-666.8 ohm, -24.0 % with Vsb forced to 0) | 10 % | 2.78 kohm | <= 50 kohm | PASS (NOT MODELLED with Vsb forced to 0) | | tgate off leakage, 1.5 V across | 291.0 pA | 285.6 pA (output source), 271.4 pA (input source) | +5.4 pA (+1.9 %), +19.7 pA (+7.2 %) | 10 % | 0.29 nA | <= 1 nA | PASS | | tracking error, 0.2 V into 3.93 pF | -1.967 uV | +0.287 uV | -2.253 uV | 10 uV | < 1 uV at 0.3 V and 1.2 V into 2 pF | +-5 mV | PASS | | tracking error, 1.3 V into 3.93 pF | -1.967 uV | -0.174 uV | -1.793 uV | 10 uV | as above | +-5 mV | PASS | @@ -97,7 +97,7 @@ What the numbers say, one by one. - nand and nor levels. All eight levels, ours and ngspice's, are microvolts from the rail (1.5 V or 0 V): the report's "microvolts for a 0" is ngspice's too. The largest difference is 2.358 uV (the nand's 11, where the model's current floor leaves 0.18 uV and ngspice 2.54 uV); the bar of 10 uV was set at four times the worst difference and the verdict does not depend on it, since the limit is 50 mV. The levels are the DC solution with no load, which is the level a gate settles to into 10 fF; no transient is run, so nothing is said about how fast a gate gets there. - tgate off leakage. Ours is the sum of the two table words at Vgs = 0, Vds = 1.5 V (the NMOS 261 pA, the PMOS 30 pA). ngspice's two sources differ by 14 pA (285.6 pA at the output, 271.4 pA at the input), the size of a junction leakage that sits in different terminals of the two; the terms are not separated here, and our number is within the 10 percent bar of both, and the report's 0.29 nA is ngspice's output-source number rounded. -- tgate Ron. Both resistances are NOT MODELLED because the model is 30 and 24 percent under the real cell, and the cause is measured, not guessed: the tables have no source-to-bulk voltage, and the real tgate has its bulks on the rails, so at 0.75 V the NMOS source sits 0.75 V above its bulk and the PMOS source 0.75 V below its bulk, which raises both thresholds. The deck `accept_tgate.cir` runs the same two devices again with each bulk tied to its own source, the condition the tables were made under: there ngspice gives 1717.2 ohm at 0.75 V and 2108.4 ohm at the worst point, and the model is within 0.06 percent of it at all 27 points (0.0588 percent at the largest). The gap to the real cell is largest at 0.85 V (31.1 percent) and the model is under the real cell at every one of the 27 points. Both resistances are far inside their limits (30 and 50 kohm); the rows are not PASS because the number is not the cell's number. +- tgate Ron. Before M3e both resistances were NOT MODELLED because the model was 30 and 24 percent under the real cell, and the cause was measured, not guessed: the 2-D tables have no source-to-bulk voltage, and the real tgate has its bulks on the rails, so at 0.75 V the NMOS source sits 0.75 V above its bulk and the PMOS source 0.75 V below its bulk, which raises both thresholds. The deck `accept_tgate.cir` runs the same two devices again with each bulk tied to its own source, the condition the tables were made under: there ngspice gives 1717.2 ohm at 0.75 V and 2108.4 ohm at the worst point, and the model is within 0.06 percent of it at all 27 points (0.0588 percent at the largest). The gap to the real cell was largest at 0.85 V (31.1 percent) and the model was under the real cell at every one of the 27 points. Both resistances were far inside their limits (30 and 50 kohm); the rows were not PASS because the number was not the cell's number. With the source-to-bulk axis (section 3c) the model reads each device at the Vsb its source has, and the two resistances are 2461.2 and 2777.5 ohm, +0.065 and +0.049 percent from the real cell (the largest of the 27 gaps is 0.090 percent, at 0.65 V), so both rows are measured, inside the 10 percent bar and inside the report's limits: PASS. The read with Vsb forced to 0 is kept as the negative control and is still refused by the bar. - tracking error. The square-law model (`sar_switch.t27`) tracks to -1.967 uV, the arithmetic floor; the PSP103 cell tracks to +0.287 and -0.174 uV (a settling residue, either sign); the 2.3 uV between them is under the bar of 10 uV and 2000 times under the limit. At the report's own conditions (0.3 V and 1.2 V into 2 pF) the PSP103 cell tracks to +0.346 and +0.350 uV; our model is not run at those two conditions (its load and its levels are fixed in `sar_switch.t27`), and the DC error is the model's floor at every level it has been run at. - hold step and droop. The model has no gate capacitance and no leakage, so it produces neither, and the rows stay NOT MODELLED as before. What is new is ngspice's number for the same cell with the foundry's model: -1.596 and -1.730 mV at the report's conditions (the report's -1.6 and -1.7 mV), and -0.812 and -0.890 mV into our 3.93 pF (the charge injection spreads over a larger capacitor). The droop is zero at the six digits ngspice prints (under 10 uV) over the 413 ns of hold. @@ -114,11 +114,32 @@ The same ngspice runs that serve as the reference give the numbers the external | switch hold step at 1.2 V into 2 pF | -1.7 mV | -1.730 mV | -0.030 mV (the report gives two digits) | | switch tracking error, both levels | < 0.001 mV | 0.35 uV | inside | +## 3c. The body effect of the tgate (M3e, issue #11283) + +The 2-D log tables of both devices (`TT_LG_N`, `TT_LG_P`) are made with each bulk on its own source. The tgate's bulks are on the rails, so its Ron is 30 percent above the 2-D model's at 0.75 V (section 3b). M3e adds a third axis, the source-to-bulk voltage Vsb, and reads the tgate on it. + +- The data. `specs/analog/decks/psp103_idpa_vsb_tt.cir` is `psp103_idpa_tt.cir` with the bulk of each device moved off its source (the NMOS bulk at -Vsb, the PMOS bulk at 1.5 V + Vsb) and prints the same table, with the same grid and the same integer encoding, at Vsb = 0, 0.25, .. 1.5 V (7 slices), and 1000 held-out currents at centres of the cells of the (Vgs, Vds, Vsb) grid, Vsb halfway between two slices (0.125, 0.375, .. 1.375 V). Run twice on the reference host (ngspice-47, a container, 2 threads, 46 s and 48 s); the data rows of the two logs are identical. The six slices above 0 of each device, 12 tables of 4851 words, and the held-out currents are in `specs/analog/mos_psp103_vsb_data.t27` (566 kB); the slice 0 is the existing 2-D table (the deck's own slice 0 agrees with it in all but 4 and 3 of 4753 words, by at most 3 words, solver noise, and is not pasted). +- The read. `lg_fine_vsb` of `mos_table.t27` reads the two slices around a Vsb and blends their log word linearly (weights 2^22 units = 0.25 V), then takes the same exp and Vds factor as the 2-D read (the tail is now one function, `lg_cur`, used by both). At Vsb = 0 it is the 2-D read to the word (a test over a lattice of 70 x 42 points per device, both devices); at a slice's own voltage it is that slice's 2-D read; above the supply it is the top slice. +- The tgate. Conducting, the NMOS source is the output Vout, so its Vsb is Vout, and the PMOS source is the input Vout + 10 mV, so its Vsb is 1.5 V - (Vout + 10 mV). `gt_tg_i` with body true reads each device there; with body false it forces Vsb to 0 and is the 2-D read. + +| quantity | ours, 2-D (Vsb forced to 0) | ours, with Vsb | ngspice real cell | gap, with Vsb | +|---|---|---|---|---| +| Ron at 0.75 V | 1718.0 ohm | 2461.2 ohm | 2459.6 ohm | +0.065 % | +| worst Ron of the 27 points (1.0 V) | 2109.3 ohm (1.15 V) | 2777.5 ohm | 2776.1 ohm | +0.049 % | +| largest of the 27 gaps | 31.1 % | 0.090 % (at 0.65 V) | | | +| held-out currents, relative error, floor 1 nA | NMOS 10481 %, PMOS 42404 % | NMOS 1.71 %, PMOS 2.51 % | 1000 points, 898 and 818 above the floor | bar 3 % | + +The bar of 10 percent holds by a factor of 110 on the Ron, so the tgate's rows pass the cross-check rule of section 1 and are PASS: inside the report's 30 and 50 kohm as well. The held-out error is larger, as it should be: a chord of the log word over 0.25 V of Vsb is exact where the threshold moves linearly with Vsb and is not where it bends (the square-root law is steepest near Vsb = 0), and the 2-D read's own 0.47 and 0.70 percent at its cell centres are in the number; the bar is 3 percent and the read is 1.2 times under it for the PMOS. The Ron check needs less than that: the same tables read with a floating-point twin of the reader (a scratch run) give the 27 Ron points within 0.09 percent with 7 slices, 0.29 percent with 4 slices (0.5 V apart), 0.58 percent with 3 and 1.2 percent with the two end slices alone, and the held-out error is 2.5, 5.8 and 14 percent for 7, 4 and 3 slices; the seven were kept because the data is modest and the held-out error is what a later user of the axis meets. + +What the data say, besides: the current of both devices falls with Vsb at every node above 0.25 V of gate drive (a test over 2 x 6 x 3969 nodes); at Vgs = 0.25 V, Vds = 1.5 V the NMOS current falls by a factor 92 from Vsb = 0 to 1.5 V and the PMOS current by 922. Below 0.25 V of gate drive the PMOS off current at Vsb above 0.5 V is held at the 1 IUNIT (1.164 pA) floor of the log word and the junction leakage that rises with Vsb is not resolved there; the off leakage row of the tgate uses Vsb = 0 for both devices, which is right (a gate off at full swing has each source on its own rail). + +What this does not say: the tgate at another corner, temperature or size (tt, 27 C, W 1.0 um and 3.0 um, L 0.45 um only); a bulk forward-biased against its source (Vsb below 0); the comparator, the switch or any cell other than the tgate, which are not read on the axis. + ## 4. What each model is, and what that means for the verdict - inverter. The PSP103 tables of the SG13G2 NMOS (W 1.0 um) and PMOS (W 3.0 um), tt, 27 C, current in the log domain (`mos_psp103.t27`, M3c-2). The threshold is the input at which the DC transfer falls through Vdd / 2: 0.689243 V on the log tables, 0.689252 V on the linear ones; ngspice's trip point is 0.689 V and the report's 0.69 V. The delays into 20 fF are NOT MODELLED: the model's transient is validated at 500 fF (tpLH 1.344 ns, tpHL 1.018 ns) and 10 pF only, and a gate edge kicks the output 5 times further at 20 fF than at the 100 fF that `mos_psp103.t27` already says leaves the tables' 0 to Vdd range. Those 500 fF delays are not compared with the 1 to 500 ps limit: they are a different load. - nand, nor. Two rows each. The truth table is at gate level (`sar_logic.t27`: a gate is a delay and a truth table, a value is 0, 1 or X and never a voltage). The levels in volts are the DC solution of the two-input gate on the same PSP103 log tables as the inverter (`mos_psp103_gates.t27`, M5d): the nand is two NMOS in series against two PMOS in parallel, the nor the same seen from the supply, each device the W and L of the golden netlist's (NMOS 1.0 um, PMOS 3.0 um, L 0.45 um), so no new table was made. The solver is the inverter's bisection with the stack's middle node solved inside it (a second bisection); the currents are read by the integer log-domain reader in steps of 1.164 pA and the output has a resolution of 59.6 nV. Every level of both gates is within 3 uV of ngspice's run of the same cell, and microvolts from its rail. -- tgate. The same tables and the same reader (`mos_psp103_gates.t27`): conducting, the NMOS reads (Vdd - Vout, 10 mV) and the PMOS (Vin, 10 mV), and R is 10 mV over the sum, at 27 outputs from 0.10 V to 1.40 V (the measurement of `sar_off_ron.cir`); off, both devices sit at Vgs = 0, Vds = 1.5 V and the leakage is the sum of their two table words. The leakage is a row. The two resistances are NOT MODELLED: the tables are made with source and bulk on one rail and have no body effect, and the real cell's bulks are on the rails, so ngspice's real cell is 30 and 24 percent above the model (section 3b); with each bulk tied to its own source ngspice and the model agree to 0.06 percent, which is how the cause was found. The 2592 ohm of a golden tgate in `sar_kick.t27` is a different measurement (50 C, the golden deck's own bias) and is not compared. +- tgate. The same tables and the same reader (`mos_psp103_gates.t27`): conducting, the NMOS reads (Vdd - Vout, 10 mV) and the PMOS (Vin, 10 mV), and R is 10 mV over the sum, at 27 outputs from 0.10 V to 1.40 V (the measurement of `sar_off_ron.cir`); off, both devices sit at Vgs = 0, Vds = 1.5 V and the leakage is the sum of their two table words. The leakage is a row, and so are the two resistances since M3e: the NMOS bulk is on ground and the PMOS bulk on the supply, so while the gate conducts the NMOS source (the output) is Vout above its bulk and the PMOS source (the input, Vout + 10 mV) is 1.5 V - (Vout + 10 mV) below its; each device is read on the tables at that source-to-bulk voltage (`gt_tg_i` with body true, section 3c). Without the axis (body false) the 2-D tables are made with source and bulk on one rail, and ngspice's real cell is 30 and 24 percent above the model (section 3b); with each bulk tied to its own source ngspice and the 2-D model agree to 0.06 percent, which is how the cause was found. The 2592 ohm of a golden tgate in `sar_kick.t27` is a different measurement (50 C, the golden deck's own bias) and is not compared. - dff. Gate level (`sar_logic.t27`): capture, hold, set, reset and the clock-to-Q delay are measured on it; the levels in volts are NOT MODELLED. The dff clock-to-Q is the first stage of the sequencer, Valid rise to CK11 rise with D = VDD, 546 ps (ngspice's own is 550 ps). - dynamic_comparator. The PSP103 current tables at 50 C, the golden deck's temperature, with M4b's solver (`sar_comparator_psp.t27`). It has no charge: the devices' own capacitance is not in it, and against ngspice on the golden comparator with its charge its decision comes 98 times too fast (5.35 ps against 523 ps at +2 mV; the model is within 6.5 percent of ngspice with the charge swamped, which is the comparison the tables were built for). So the decision time FAILS the 10 ps lower limit by 4.65 ps, and the FAIL is the model's: ngspice's 523 ps on the same comparator with its charge is inside 10 to 10000 ps. The same run on the 27 C tables, the report's temperature, gives 5.12 ps and fails too. The reset row is NOT MODELLED because the run is one evaluation phase of 14 ps and the clock never falls. - tracking_switch. A SQUARE-LAW bootstrapped switch (`sar_switch.t27`, MOSFET level 1). The tracking error at DC is measured: 1.97 uV, which is the fixed-point arithmetic floor (ngspice's own on the square-law deck is 0.03 to 0.05 uV), and it is a row because ngspice's PSP103 run of the same cell at the same conditions (`accept_switch.cir`) gives +0.29 and -0.17 uV, 2.3 uV from it. The hold step and the droop are NOT MODELLED because the square law has no gate capacitance, so no charge injection, and no leakage: the model returns a step of 0.18 uV and a droop of exactly 0, which sit far inside +-30 mV and +-5 mV by having no effect at all. That is not a measurement of the effect the report's -1.6 and -1.7 mV show, so the rows are not passes; the same cell in ngspice with the foundry's model has the effect (-1.60 and -1.73 mV) and the doc shows it beside the rows. A model with the PSP103 switch is what the two rows need. @@ -168,6 +189,9 @@ Every check function accepts the report's own value and refuses a broken one, so | nand, nor levels | the wrong gate (the nand's 1 read where the nor has a 0) | 1.5 V apart | | tgate leakage | the NMOS table in both slots | 521.5 pA: inside the report's 1 nA, 82.6 percent over ngspice's, refused by the 10 percent bar | | tgate Ron | the PMOS table zeroed / the NMOS table zeroed, against the no-body-effect cell | 2895 / 4225 ohm at 0.75 V, 69 and 146 percent over, refused by the 10 percent bar | +| tgate Ron (M3e) | the real cell read with Vsb forced to 0 | 1718.0 ohm at 0.75 V and 2109.3 ohm at the worst point, inside the report's limits and 30.2 and 24.0 percent under ngspice's real cell (largest of 27 gaps 31.1 percent): refused by the 10 percent bar, rows NOT MODELLED | +| tgate Ron (M3e) | the two devices' Vsb exchanged | 2461.07 ohm at 0.75 V (symmetric cell, not seen there), the largest of the 27 gaps 32.3 percent, 358 times the right read's: refused by the bar | +| source-to-bulk read (M3e) | the 1000 held-out currents read with Vsb forced to 0 | 105 (NMOS) and 424 (PMOS) times off in relative terms against the bar of 3 percent | | DAC_control_top | a wrong code, a wrong plate code, two bits swapped, code and plate exchanged | refused (1430 + 617 = 2047, the complement pair) | Four mutants of the new code were also run and each fails tests (not committed): the nor's output not mirrored (2 tests fail), the 10 percent bar loosened to 50 percent (3), the tgate's NMOS gate drive wrong (2), and the tgate's Ron verdict made to ignore the cross-check (2, the tgate's and the counts'). @@ -176,7 +200,7 @@ A limit of the control: some of the report's limits are wide, and a model error ## 7. Not done, and why -- The 20 fF inverter delays, the tgate's two resistances, the comparator's reset, the tracking switch's hold step and droop, and the three DAC blocks are NOT MODELLED. Each needs a model that does not exist: a charge-aware inverter at 20 fF, a transmission gate with the body effect (the tables have none: a source-to-bulk dimension or a measured threshold shift per device, which the two tgate decks of M5d can validate on the real cell and on the cell with the bulks tied), a second clock phase for the comparator, a switch with gate capacitance and leakage (ngspice's PSP103 numbers for that cell, -1.60 and -1.73 mV and no droop, are in section 3b as the target), circuit-level plate drivers and latches. They are not approximated here. +- The 20 fF inverter delays, the comparator's reset, the tracking switch's hold step and droop, and the three DAC blocks are NOT MODELLED (the tgate's two resistances were too, until M3e gave the tables a source-to-bulk axis). Each needs a model that does not exist: a charge-aware inverter at 20 fF, a second clock phase for the comparator, a switch with gate capacitance and leakage (ngspice's PSP103 numbers for that cell, -1.60 and -1.73 mV and no droop, are in section 3b as the target), circuit-level plate drivers and latches. They are not approximated here. - The nand's, the nor's and the tgate's delays into a load, and their levels in a transient: M5d does the DC levels only. - The tracking error of our model at the report's own conditions (0.3 V and 1.2 V into 2 pF), see section 5. - The comparator's FAIL stays a FAIL. The cause is known and measured (no charge: 98 times too fast); the charge tables for the comparator are not made. @@ -189,8 +213,9 @@ A limit of the control: some of the report's limits are wide, and a model error ./target/release/t27c test-report specs/analog/accept_sar.t27 ./target/release/t27b test specs/analog/accept_sar.t27 --check ./target/release/t27b test specs/analog/mos_psp103_gates.t27 --check +./target/release/t27b test specs/analog/mos_psp103_vsb_data.t27 --check ``` -`accept_sar.t27` has 14 tests (the verdict rule, one for each block or group of blocks, the reference run against the report, the corners line and the counts of blocks and of rows); `mos_psp103_gates.t27` has 6 (the nand, the nor, the gates' negative controls, the tgate without and with the body effect, the leakage). Every number in sections 3 and 3b is pinned in them. `t27b test --check` exits 0 with no jit/interp mismatch. +`accept_sar.t27` has 14 tests (the verdict rule, one for each block or group of blocks, the reference run against the report, the corners line and the counts of blocks and of rows); `mos_psp103_gates.t27` has 9 (the nand, the nor, the gates' negative controls, the tgate without the body effect, the real cell against the 2-D read, the leakage, and three of M3e: the Ron with the body effect, the held-out currents between slices, the controls); `mos_psp103_vsb_data.t27` has 3 (the pins and the layout of the 12 slices, the fall of the current with Vsb, the read at Vsb = 0 against the 2-D read); `mos_table.t27` has 21 (the one of M3e: the Vsb read on two synthetic slices). Every number in sections 3, 3b and 3c is pinned in them. `t27b test --check` exits 0 with no jit/interp mismatch. -The ngspice numbers are the printed output of three decks, none changed after printing: `IHP_PDK= IHP_OSDI= ngspice -b specs/analog/decks/accept_gates.cir` (the eight gate levels and the off leakage), `accept_tgate.cir` (the conducting tgate, the real cell and the cell with its bulks on its sources, 27 points) and `accept_switch.cir` (the PSP103 tracking switch, four copies: tracking error, hold step, droop); ngspice-47 with the PSP103 of IHP-Open-PDK 21133f21, mos_tt, 27 C. The decks contain the W, L and m of the cells (facts of the circuit) and none of the golden netlist's text. +The ngspice numbers are the printed output of three decks, none changed after printing: `IHP_PDK= IHP_OSDI= ngspice -b specs/analog/decks/accept_gates.cir` (the eight gate levels and the off leakage), `accept_tgate.cir` (the conducting tgate, the real cell and the cell with its bulks on its sources, 27 points) and `accept_switch.cir` (the PSP103 tracking switch, four copies: tracking error, hold step, droop); ngspice-47 with the PSP103 of IHP-Open-PDK 21133f21, mos_tt, 27 C. M3e adds a fourth: `psp103_idpa_vsb_tt.cir` (the log-domain current tables of both devices at seven source-to-bulk voltages and 1000 held-out currents between them, section 3c). The decks contain the W, L and m of the cells (facts of the circuit) and none of the golden netlist's text. diff --git a/specs/analog/accept_sar.t27 b/specs/analog/accept_sar.t27 index 1d85ea3838..79c114a726 100644 --- a/specs/analog/accept_sar.t27 +++ b/specs/analog/accept_sar.t27 @@ -1,6 +1,7 @@ // SPDX-License-Identifier: Apache-2.0 ; specs/analog/accept_sar.t27 -- the per-block acceptance checks of the external team's report of 2026-10-16, as an evaluator, applied to our SAR ADC blocks -; M5c of the analog emulation epic (#10486, issue #11212, night loop #11063); M5d (issue #11263) adds the transistor-level rows of the nand, nor, tgate and tracking_switch. The +; M5c of the analog emulation epic (#10486, issue #11212, night loop #11063); M5d (issue #11263) adds the transistor-level rows of the nand, nor, tgate and tracking_switch; M3e (issue #11283) adds the source-to-bulk axis that turns the tgate's +; two resistances from NOT MODELLED to PASS. The ; external team's report of 2026-10-16 lists, for the 13 blocks of the golden SAR ADC, a ; measured value and the limit that its check enforces (conditions: tt corner, 27 C, VDD 1.5 V, cells taken from the integrated converter's netlist). The team ; confirmed on 2026-10-20 that the checks and their limits may be used and published in this repository. This file holds those limits as named constants, one @@ -22,9 +23,11 @@ ; nand, nor two rows each. The truth table at GATE LEVEL (sar_logic.t27: a gate is a delay and a truth table, a value is 0, 1 or X) is one; the LEVELS in volts are the ; other, a DC solve of the two-input gate on the same PSP103 log tables as the inverter (mos_psp103_gates.t27, M5d), each level within 3 uV of ngspice's run of the ; same cell. Both rows PASS, so the two blocks PASS. -; tgate three rows on the same tables (mos_psp103_gates.t27): the off leakage (291.0 pA, 7.2 percent from ngspice's real cell) is a row; Ron at 0.75 V and the worst Ron -; over 0.1 to 1.4 V (1718 and 2109 ohm, inside 30 and 50 kohm) are NOT MODELLED: the real cell, run in ngspice with its bulks on the rails, is 30 and 24 percent -; above them, past the 10 percent bar, because the tables have no body effect. With each bulk tied to its source ngspice is within 0.06 percent of the tables. +; tgate three rows on the same tables (mos_psp103_gates.t27): the off leakage (291.0 pA, 7.2 percent from ngspice's real cell), Ron at 0.75 V and the worst Ron over 0.1 to 1.4 V. +; The two resistances are read on the tables WITH A SOURCE-TO-BULK AXIS (M3e, mos_psp103_vsb_data.t27: seven slices, Vsb 0 to 1.5 V, each device read at the Vsb its source +; has with the bulks on the rails): 2461.2 ohm and 2777.5 ohm, within 0.07 and 0.05 percent of ngspice's real cell (2459.6 and 2776.1 ohm; the largest of 27 gaps is 0.09 +; percent), inside the report's 30 and 50 kohm: all three rows PASS and the block PASSes. Before M3e the tables had no body effect and read 1718 and 2109 ohm, 30 and 24 +; percent under the real cell, past the 10 percent bar, and the two rows were NOT MODELLED; that read is kept (body false) as the negative control and still gives NOT MODELLED. ; dff the gate level (inside SAR_logic): capture, hold, set, reset and the clock-to-Q delay are measured on it; the levels in volts are NOT MODELLED. ; dynamic_comparator PSP103 current tables at 50 C, the golden deck's temperature (sar_comparator_psp.t27), the NO-CHARGE model: the devices' own capacitance is not in it, so ; its decision comes 98 times too fast against ngspice (5.35 ps against 523 ps at +2 mV). The sign and the end levels are measured; the reset (a second clock @@ -52,7 +55,7 @@ ; code) and accepts the report's own measured value, so no check is always-FAIL or always-PASS. Where a model can be broken to leave the limit, that is done too: the ; PMOS table zeroed (the output never falls through Vdd / 2: the reader returns -0.031 V, no crossing), the inputs of the comparator exchanged (the sign flips), the boost capacitor removed (tracking error 25.4 mV, refused by the limit and by the cross-check), the trim code ; ignored (ratio 1.0), a dff with Set and Reset exchanged (the order, the counts and the set and reset rows fail), a converter whose MSB capacitor is halved (237 LSB), a gate with -; its PMOS or NMOS table zeroed (the 1 levels at 0 V, the 0 level at 1.5 V), the tgate with the NMOS table in both slots (521 pA, inside the report's 1 nA and 82 percent over ngspice's, so the cross-check refuses it). +; its PMOS or NMOS table zeroed (the 1 levels at 0 V, the 0 level at 1.5 V), the tgate with the NMOS table in both slots (521 pA, inside the report's 1 nA and 82 percent over ngspice's, so the cross-check refuses it), the tgate read with Vsb forced to 0 (M3e: 1718 and 2109 ohm, inside the report's limits and 30 and 24 percent under ngspice's real cell, so the cross-check refuses it and the rows are NOT MODELLED). ; Honest limit of the control: a few of the report's limits are wide (the inverter threshold 0.5 to 1.0 V, a bridge of 2 units gives 45.5 LSB against 64), and a model ; error inside the limit is not seen by that check; the sar_adc.t27 tests see it by the codes. The level cross-check of a gate does not see a device's width (the two tables in each ; other's slots stay within 3 uV of ngspice's levels, mos_psp103_gates.t27 pins it); the tgate's leakage and Ron do. @@ -61,10 +64,10 @@ ; (the report 2.44 kohm) and 2776.1 ohm worst (2.78 kohm), 0.2856 nA off (0.29 nA), and the PSP103 tracking switch -1.596 and -1.730 mV of hold step (-1.6 and -1.7 mV), so the ; numbers a model is judged by are the report's cells; a test pins each. ; - -; WHAT A PASS SAYS. For the clock_gen, SAR_logic, integration, nand and nor blocks: every quantity the report's check enforces is produced by our model and is inside the report's +; WHAT A PASS SAYS. For the clock_gen, SAR_logic, integration, nand, nor and tgate blocks: every quantity the report's check enforces is produced by our model and is inside the report's ; limit. For a row marked PASS inside a NOT MODELLED block: that quantity, at the model's level above, is inside the limit. WHAT IT DOES NOT SAY. Nothing about a transistor-level ; result for the gate-level blocks (dff, clock_gen, SAR_logic), nothing about voltage levels of any digital node but the nand's and nor's, nothing about the delay of any gate into a load, -; nothing about the tgate's resistance (the body effect is not in the tables), nothing about power, noise, mismatch or another corner or temperature (the report's smoke +; nothing about the tgate's resistance beyond the 27 outputs at 10 mV across it (the body effect is in the tables from M3e, at 27 C), nothing about power, noise, mismatch or another corner or temperature (the report's smoke ; suite runs five corners at -40, 27 and 125 C; our tables have no -40 or 125 C and the line is NOT MODELLED), nothing about speed. The report's numbers are the report's; ours ; are computed here by the named functions. ASCII only, English only. ; phi^2 + 1/phi^2 = 3 | TRINITY @@ -105,7 +108,7 @@ pub const AS_N_ROWS : u32 = 30; ; --- why a row is NOT MODELLED (one reason per kind, quoted by the doc) --------------------------------------------- pub const AS_WHY_INV_DELAY : str = "the transient is validated at 500 fF and 10 pF only; at 20 fF the gate edge kicks the output outside the tables' 0 to Vdd range"; pub const AS_WHY_LEVELS : str = "the model is gate level: a node is 0, 1 or X, never a voltage"; -pub const AS_WHY_TG_RON : str = "the tables have no body effect: ngspice's real cell is 30 percent above ours at 0.75 V and 24 percent above at the worst point, past the 10 percent bar; with each bulk tied to its source ngspice agrees with ours to 0.06 percent"; +pub const AS_WHY_TG_RON : str = "a read with no body effect (Vsb forced to 0) puts ours 30 percent under ngspice's real cell at 0.75 V and 24 percent under at the worst point, past the 10 percent bar; with each bulk tied to its source ngspice agrees with ours to 0.06 percent; with the source-to-bulk axis (M3e) the rows are measured and PASS"; pub const AS_WHY_CMP_RESET : str = "the comparator run is one evaluation phase of 14 ps; the clock never falls, so there is no reset phase to measure"; pub const AS_WHY_SW_HOLD : str = "square law: no gate capacitance, so no charge injection; the hold step the model returns is a following artifact of 0.18 uV"; pub const AS_WHY_SW_DROOP : str = "square law: no leakage; the droop the model returns is exactly zero by construction"; @@ -675,14 +678,15 @@ pub fn as_ramp_report_like() -> Ramp { } ; --- the tgate on the tt log tables, against ngspice's real cell ------------------------------------------------------------------ -/// The tgate on the tables tn, tp (mos_psp103_gates.t27): Ron at 0.75 V (sweep point 13), the worst Ron of the 27 points, the off leakage in nA, and each one's relative gap to +/// The tgate on the tables tn, tp (mos_psp103_gates.t27, the Vsb = 0 slices; body true reads each device at the source-to-bulk voltage its source has with the bulks on the rails, the +/// golden cell, body false forces Vsb to 0, the 2-D read, the negative control): Ron at 0.75 V (sweep point 13), the worst Ron of the 27 points, the off leakage in nA, and each one's relative gap to /// ngspice's REAL cell (the bulks on the rails: accept_tgate.cir and accept_gates.cir): Ron to its 0.75 V point, the worst to the largest of ngspice's 27, the leakage to the larger of /// ngspice's two source currents and to the smaller (the larger of the two gaps). pub struct Tg { ron: f64, worst: f64, leak_na: f64, g_ron: f64, g_worst: f64, g_leak: f64 } -pub fn as_tgate(tn: []const u32, tp: []const u32) -> Tg { - const ron : f64 = gt_tg_ron(tn, tp, gt_tg_v(13)); - const worst : f64 = gt_tg_worst(tn, tp); +pub fn as_tgate(tn: []const u32, tp: []const u32, body: bool) -> Tg { + const ron : f64 = gt_tg_ron(tn, tp, gt_tg_v(13), body); + const worst : f64 = gt_tg_worst(tn, tp, body); const leak : f64 = gt_tg_off(tn, tp); var g_leak : f64 = rel_gap(leak, GT_NG_LEAK_OUT_A); const g_in : f64 = rel_gap(leak, GT_NG_LEAK_IN_A); @@ -718,17 +722,22 @@ pub fn as_blk_nor() -> Blk { return b; } -/// tgate: Ron at 0.75 V, the worst Ron over 0.1 to 1.4 V and the off leakage on the PSP103 log tables; a row only when its value is within 10 percent of ngspice's run of the REAL -/// cell. The tables have no body effect, so the two resistances are 30 and 24 percent under and are NOT MODELLED; the leakage, at Vgs = 0, has none and is within 7.2 percent. -pub fn as_blk_tgate() -> Blk { +/// tgate: Ron at 0.75 V, the worst Ron over 0.1 to 1.4 V and the off leakage of a measured tgate t; a row only when its value is within 10 percent of ngspice's run of the REAL cell. +/// Read with the body effect (M3e) the two resistances are within 0.07 and 0.05 percent and PASS with the leakage (7.2 percent); read with Vsb forced to 0 they are 30 and 24 percent +/// under and are NOT MODELLED. +pub fn as_blk_tg(t: Tg) -> Blk { var b : Blk = as_blk0(); - const t : Tg = as_tgate(&TT_LG_N, &TT_LG_P); b = as_add(b, as_verdict(t.g_ron <= GT_B_REL, as_chk_tg_ron(t.ron))); b = as_add(b, as_verdict(t.g_worst <= GT_B_REL, as_chk_tg_worst(t.worst))); b = as_add(b, as_verdict(t.g_leak <= GT_B_REL, as_chk_tg_leak(t.leak_na))); return b; } +/// The tgate block of the report: the cell of the golden netlist, bulks on the rails, read on the tables with the source-to-bulk axis. +pub fn as_blk_tgate() -> Blk { + return as_blk_tg(as_tgate(&TT_LG_N, &TT_LG_P, true)); +} + /// dff: capture and hold (the sequencer's thermometer at each Valid edge and between edges), set and reset (the Set pulse and the clks reset), the clock-to-Q of the first /// stage; the levels in volts are not modelled. pub fn as_blk_dff() -> Blk { @@ -972,7 +981,7 @@ test the_nand_and_nor_truth_tables_are_measured_at_logic_level_and_their_levels_ assert_eq(as_block_verdict(br), AS_PASS); } -test the_tgate_leakage_is_a_row_and_its_two_resistances_are_not_modelled_because_the_tables_have_no_body_effect { +test the_tgate_rows_are_measured_on_the_tables_with_the_body_effect_and_pass_and_the_read_with_vsb_forced_to_zero_is_not_modelled { assert(as_chk_tgate(R_TG_RON_OHM, R_TG_RON_WORST_OHM, R_TG_LEAK_NA)); var high_r : f64 = 60000.0; var high_w : f64 = 90000.0; @@ -983,40 +992,63 @@ test the_tgate_leakage_is_a_row_and_its_two_resistances_are_not_modelled_because assert(!as_chk_tg_ron(high_r)); assert(!as_chk_tg_worst(high_w)); assert(!as_chk_tg_leak(leak)); - // THE TGATE on the tt log tables (mos_psp103_gates.t27, 10 mV across it, the output at 0.10 V to 1.40 V): Ron 1718.0 ohm at 0.75 V, 2109.3 ohm at the worst of the 27 points, 291.0 pA - // off at full swing; all three far inside the limits of the report (30 kohm, 50 kohm, 1 nA) - const t : Tg = as_tgate(&TT_LG_N, &TT_LG_P); - assert(t.ron > 1717.9); - assert(t.ron < 1718.1); - assert(t.worst > 2109.2); - assert(t.worst < 2109.4); + // THE TGATE on the tt log tables with the source-to-bulk axis (M3e, mos_psp103_gates.t27 and mos_psp103_vsb_data.t27; the cell of the golden netlist, bulks on the rails; 10 mV + // across it, the output at 0.10 V to 1.40 V): Ron 2461.2 ohm at 0.75 V, 2777.5 ohm at the worst of the 27 points, 291.0 pA off at full swing; all three inside the limits of the + // report (30 kohm, 50 kohm, 1 nA) + const t : Tg = as_tgate(&TT_LG_N, &TT_LG_P, true); + assert(t.ron > 2461.2); + assert(t.ron < 2461.3); + assert(t.worst > 2777.5); + assert(t.worst < 2777.6); assert(t.leak_na > 0.2910); assert(t.leak_na < 0.2911); assert(as_chk_tg_ron(t.ron)); assert(as_chk_tg_worst(t.worst)); assert(as_chk_tg_leak(t.leak_na)); + assert(as_chk_tgate(t.ron, t.worst, t.leak_na)); // THE CROSS-CHECK against ngspice's run of the REAL cell (accept_tgate.cir, accept_gates.cir), the bar 10 percent: the leakage is 7.2 percent from it (1.9 percent from the larger of - // ngspice's two source currents), inside; the two resistances are 30.2 and 24.0 percent under it, outside by 3.0 and 2.4 times, and the rows are NOT MODELLED although both numbers are - // inside their limits: the tables have no body effect (mos_psp103_gates.t27 shows it, ngspice with each bulk tied to its source is 0.06 percent from ours) + // ngspice's two source currents), inside; the two resistances are 0.065 and 0.049 percent from it, 150 and 200 times inside the bar, so both rows are measured and PASS assert(t.g_leak > 0.0724); assert(t.g_leak < 0.0725); assert(t.g_leak < GT_B_REL); - assert(t.g_ron > 0.3015); - assert(t.g_ron < 0.3016); - assert(t.g_worst > 0.2401); - assert(t.g_worst < 0.2402); - assert(t.g_ron > 3.0 * GT_B_REL); - assert(t.g_worst > 2.4 * GT_B_REL); + assert(t.g_ron > 0.000648); + assert(t.g_ron < 0.000650); + assert(t.g_worst > 0.000488); + assert(t.g_worst < 0.000490); + assert(t.g_ron * 100.0 < GT_B_REL); + assert(t.g_worst * 100.0 < GT_B_REL); + // NEGATIVE CONTROL (FR-005 of M3e): the same cell read with Vsb forced to 0 (the tables with no body effect) is Ron 1718.0 ohm at 0.75 V, 2109.3 ohm at the worst point, both inside the + // report's limits and 30.2 and 24.0 percent under ngspice's real cell, outside the bar by 3.0 and 2.4 times: the rows are NOT MODELLED although both numbers pass the limits + const z : Tg = as_tgate(&TT_LG_N, &TT_LG_P, false); + assert(z.ron > 1717.9); + assert(z.ron < 1718.1); + assert(z.worst > 2109.2); + assert(z.worst < 2109.4); + assert(as_chk_tg_ron(z.ron)); + assert(as_chk_tg_worst(z.worst)); + assert(z.g_ron > 0.3015); + assert(z.g_ron < 0.3016); + assert(z.g_worst > 0.2401); + assert(z.g_worst < 0.2402); + assert(z.g_ron > 3.0 * GT_B_REL); + assert(z.g_worst > 2.4 * GT_B_REL); // NEGATIVE CONTROL on the leakage cross-check: the NMOS table in both slots leaks 521.5 pA, inside the report's 1 nA but 82.6 percent over ngspice's, so it is not a row - const two : Tg = as_tgate(&TT_LG_N, &TT_LG_N); + const two : Tg = as_tgate(&TT_LG_N, &TT_LG_N, true); assert(as_chk_tg_leak(two.leak_na)); assert(two.g_leak > 0.8); assert(two.g_leak > 8.0 * GT_B_REL); + // the block: read with the body effect all three rows are PASS and so is the block (it was one row PASS and two NOT MODELLED, a NOT MODELLED block, before M3e); read with Vsb forced to + // 0 it is the old block, one row PASS (the leakage) and two NOT MODELLED const b : Blk = as_blk_tgate(); - assert_eq(b.pass, 1); + assert_eq(b.pass, 3); assert_eq(b.fail, 0); - assert_eq(b.nm, 2); - assert_eq(as_block_verdict(b), AS_NM); + assert_eq(b.nm, 0); + assert_eq(as_block_verdict(b), AS_PASS); + const bz : Blk = as_blk_tg(z); + assert_eq(bz.pass, 1); + assert_eq(bz.fail, 0); + assert_eq(bz.nm, 2); + assert_eq(as_block_verdict(bz), AS_NM); } test the_reference_run_of_the_real_tgate_and_the_psp103_switch_reproduces_the_reports_own_numbers { @@ -1408,12 +1440,12 @@ test the_corners_smoke_suite_is_not_modelled_and_its_checks_refuse_a_delay_out_o assert_eq(as_nm(), AS_NM); } -test the_thirteen_blocks_count_5_pass_1_fail_and_7_not_modelled_and_their_30_rows_19_pass_1_fail_and_10_not_modelled { +test the_thirteen_blocks_count_6_pass_1_fail_and_6_not_modelled_and_their_30_rows_21_pass_1_fail_and_8_not_modelled { // the blocks, one by one, each by the strict rule assert_eq(as_block_verdict(as_blk_inverter()), AS_NM); assert_eq(as_block_verdict(as_blk_nand()), AS_PASS); assert_eq(as_block_verdict(as_blk_nor()), AS_PASS); - assert_eq(as_block_verdict(as_blk_tgate()), AS_NM); + assert_eq(as_block_verdict(as_blk_tgate()), AS_PASS); assert_eq(as_block_verdict(as_blk_dff()), AS_NM); assert_eq(as_block_verdict(as_blk_comparator()), AS_FAIL); assert_eq(as_block_verdict(as_blk_switch()), AS_NM); @@ -1425,14 +1457,15 @@ test the_thirteen_blocks_count_5_pass_1_fail_and_7_not_modelled_and_their_30_row assert_eq(as_block_verdict(as_blk_integration()), AS_PASS); // the counts over the 13 blocks, and they add up: nothing is counted twice and no block is left out const t : Blk = as_all_blocks(); - assert_eq(t.pass, 5); + assert_eq(t.pass, 6); assert_eq(t.fail, 1); - assert_eq(t.nm, 7); + assert_eq(t.nm, 6); assert_eq(t.pass + t.fail + t.nm, AS_N_BLOCKS); - // and over the rows of those blocks (the corners line is not a block and has no row here): 30 rows, of which 19 PASS, 1 FAIL and 10 NOT MODELLED + // and over the rows of those blocks (the corners line is not a block and has no row here): 30 rows, of which 21 PASS, 1 FAIL and 8 NOT MODELLED (before M3e's source-to-bulk axis the + // tgate's two resistances were NOT MODELLED: 19, 1 and 10 rows, 5, 1 and 7 blocks) const r : Blk = as_all_rows(); - assert_eq(r.pass, 19); + assert_eq(r.pass, 21); assert_eq(r.fail, 1); - assert_eq(r.nm, 10); + assert_eq(r.nm, 8); assert_eq(r.pass + r.fail + r.nm, AS_N_ROWS); } diff --git a/specs/analog/decks/psp103_idpa_vsb_tt.cir b/specs/analog/decks/psp103_idpa_vsb_tt.cir new file mode 100644 index 0000000000..2281648a27 --- /dev/null +++ b/specs/analog/decks/psp103_idpa_vsb_tt.cir @@ -0,0 +1,581 @@ +IHP SG13G2 PSP103 log-domain current tables with a source-to-bulk axis, corner mos_tt +* specs/analog/decks/psp103_idpa_vsb_tt.cir -- the log-domain current tables of the tt corner at seven source-to-bulk voltages Vsb = 0, 0.25, .. 1.5 V, for +* specs/analog/mos_psp103_vsb_data.t27 (M3e, #11283, epic #10486): psp103_idpa_tt.cir with the bulk of each device moved off its source. A netlist plus a .control block that prints the numbers. +* Model: IHP-Open-PDK commit 21133f219b1a6da10d803e345761e77415ceff40, ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib (PSP 103.6, revision 200310), section +* mos_tt; the model code is libs.tech/verilog-a/psp103/psp103.va of the same commit, compiled with OpenVAF-Reloaded v24.0.2mob to psp103.osdi (and psp103_nqs.osdi). +* Temperature 27 C (TNOM 27 C). Devices: sg13_lv_nmos w=1.0u l=0.45u ng=1 m=1 and sg13_lv_pmos w=3.0u l=0.45u ng=1 m=1, the devices of psp103_idpa_tt.cir (the same netlist lines +* but for the bulk terminal). +* Solver options: reltol 1e-6, vntol 1e-9, abstol 1e-14, as psp103_idpa_tt.cir. +* Paths are NOT in this file. ngspice reads two environment variables: IHP_PDK, the IHP-Open-PDK checkout, and IHP_OSDI, the directory that holds the compiled +* psp103.osdi and psp103_nqs.osdi. +* Run: IHP_PDK= IHP_OSDI= ngspice -b psp103_idpa_vsb_tt.cir > psp103_idpa_vsb_tt.out (ngspice-47) +* WHY. The tables of psp103_idpa_tt.cir have each bulk tied to its source (the NMOS source and bulk at 0 V, the PMOS source and bulk at 1.5 V), so they hold no body effect, and a +* transmission gate whose bulks sit on the rails (the NMOS bulk at 0 V, the PMOS bulk at 1.5 V) has a source above (NMOS) or below (PMOS) its bulk while it conducts. accept_tgate.cir +* measured it: the cell with its bulks on the rails is 30 percent above the cell with each bulk tied to its source. This deck adds the missing axis. +* THE AXIS. Vsb is the reverse bias of the source-to-bulk junction, a magnitude for both devices: the NMOS bulk is at -Vsb (its source at 0 V), the PMOS bulk is at 1.5 V + Vsb (its +* source at the 1.5 V rail). A model is a function of voltage differences, so this is the same device as one whose source is at any other level and whose bulk is Vsb below it (NMOS) +* or above it (PMOS), which is how the tgate's devices sit. Vsb = k * 0.25 V, k = 0 .. 6 (7 slices); the slice k = 0 is psp103_idpa_tt.cir's table again (bulk on the source, written as a node of its own): it agrees with TT_LG_N and TT_LG_P of mos_psp103_data.t27 in all but 4 and 3 of 4753 words, by at most 3 words, the solver noise of two netlists at reltol 1e-6, and the spec takes the existing tables for it. +* THE TABLE of each slice is psp103_idpa_tt.cir's, the same grid and the same integer encoding. A node is the drain current Id, divided by the factor of weak inversion +* F = 1 - exp(-Vds / s(Vgs)), as log2 in 1/65536 of an octave, relative to IUNIT = 1 / (200 * 2^32) A = 1.164 pA. With the gate scale (the tt one, the same at every Vsb: the reader +* multiplies Vds by rv, which depends on Vgs only) +* s(Vgs) = sqrt(0.030^2 + (0.65 * max(Vgs - 0.23, 0))^2) volts, rv = nint(4096 / s) (the word the reader multiplies Vds by), s_eff = 4096 / rv, +* the word of node (ix, iy), Vgs = ix * 15.625 mV (ix = 0 .. 96), Vds = iy * 31.25 mV (iy = 0 .. 48), is +* iy >= 1: nint(65536 * log2(max(Id / F(Vds; s_eff), IUNIT) / IUNIT)) +* iy = 0: nint(65536 * log2(max(s_eff * gds0, IUNIT) / IUNIT)) gds0 = the output conductance ngspice reports at Vds = 0, the limit of Id / F there. +* Index ix * 49 + iy, ix outer, 4753 rows. The PMOS is read at Vsg = 1.5 V - Vgp and Vsd = 1.5 V - Vdp. +* What it prints. Between "BEGIN name" and "END name" every row " TAB " is one number, in sweep order (the first sweep source runs fastest). The values are pasted into +* the spec in that order, none changed. +* lam_n_k, lam_p_k the 4753 words of the NMOS and of the PMOS at Vsb = k * 0.25 V, k = 0 .. 6; r_k rv at Vgs = ix * 15.625 mV, 97 rows (the same for both devices, and for every k). +* cen_n, cen_p Id in pA (nint(Id * 1e12)) at 1000 held-out points that are CENTRES of cells of the (Vgs, Vds, Vsb) grid, the places a chord of it is worst: point k = 1..1000 is +* Vgs (Vsg) = (floor(96 frac(k a1)) + 1/2) * 15.625 mV, Vds (Vsd) = (floor(48 frac(k a2)) + 1/2) * 31.25 mV and Vsb = (floor(6 frac(k a3)) + 1/2) * 0.25 V (so Vsb is +* halfway between two slices: 0.125, 0.375, .. 1.375 V), with a1 = 0.8191725133961645, a2 = 0.6710436067037893, a3 = 0.5497004779019703 (the 3-D R sequence, 1/g, 1/g^2, 1/g^3 for g^4 = g + 1). +* nmos table device: drain VDN, gate VGN, source at 0 V, bulk VBN at -Vsb +.lib $IHP_PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt +VDN dn 0 0 +VGN gn 0 0 +VBN bn 0 0 +XMN dn gn 0 bn sg13_lv_nmos w=1.0u l=0.45u ng=1 m=1 +* pmos table device: source at the 1.5 V rail, bulk VBP at 1.5 V + Vsb, drain VDP and gate VGP, both swept downward from 1.5 V +VSP sp 0 1.5 +VDP dp 0 1.5 +VGP gp 0 1.5 +VBP bp 0 1.5 +XMP dp gp sp bp sg13_lv_pmos w=3.0u l=0.45u ng=1 m=1 +* held-out points: B sources compute the cell centre from the sweep variable k; the zero-volt sources VRDN, VRDP measure the drain current +VK k 0 1 +BRGN rgn 0 V = (floor(96*(v(k)*0.8191725133961645-floor(v(k)*0.8191725133961645)))+0.5)*0.015625 +BRDN rdn0 0 V = (floor(48*(v(k)*0.6710436067037893-floor(v(k)*0.6710436067037893)))+0.5)*0.03125 +BRBN rbn 0 V = 0-(floor(6*(v(k)*0.5497004779019703-floor(v(k)*0.5497004779019703)))+0.5)*0.25 +VRDN rdn0 rdn 0 +XRN rdn rgn 0 rbn sg13_lv_nmos w=1.0u l=0.45u ng=1 m=1 +BRGP rgp 0 V = 1.5-(floor(96*(v(k)*0.8191725133961645-floor(v(k)*0.8191725133961645)))+0.5)*0.015625 +BRDP rdp0 0 V = 1.5-(floor(48*(v(k)*0.6710436067037893-floor(v(k)*0.6710436067037893)))+0.5)*0.03125 +BRBP rbp 0 V = 1.5+(floor(6*(v(k)*0.5497004779019703-floor(v(k)*0.5497004779019703)))+0.5)*0.25 +VRDP rdp rdp0 0 +VRSP rsp 0 1.5 +XRP rdp rgp rsp rbp sg13_lv_pmos w=3.0u l=0.45u ng=1 m=1 +.temp 27 +.options reltol=1e-6 vntol=1e-9 abstol=1e-14 +.control +pre_osdi $IHP_OSDI/psp103.osdi +pre_osdi $IHP_OSDI/psp103_nqs.osdi +set num_threads=2 +set numdgt=10 +set noprintscale +save all @n.xmn.nsg13_lv_nmos[gds] @n.xmp.nsg13_lv_pmos[gds] +* ---- slice 0: Vsb = 0 V (the NMOS bulk at 0 V, the PMOS bulk at 1.5 V). Plots dc1, dc2: the Vds = 0 columns; dc3, dc4: the grids. +alter VBN = 0 +alter VBP = 1.5 +alter VDN = 0 +dc VGN 0 1.5 0.015625 +let gzn = @n.xmn.nsg13_lv_nmos[gds] +let kk = vector(97) +let vgk = kk * 0.015625 +let ovk = (vgk - 0.23 + abs(vgk - 0.23)) / 2 +let sk = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovk * ovk) +let rk = nint(4096 / sk) +let sek = 4096 / rk +let an = gzn * sek +let zn = (an + 1.1641532182693481e-12 + abs(an - 1.1641532182693481e-12)) / 2 +let l0n = nint(65536 / ln(2) * ln(zn / 1.1641532182693481e-12)) +alter VDP = 1.5 +dc VGP 1.5 0 -0.015625 +let gzp = @n.xmp.nsg13_lv_pmos[gds] +let kk = vector(97) +let vgk = kk * 0.015625 +let ovk = (vgk - 0.23 + abs(vgk - 0.23)) / 2 +let sk = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovk * ovk) +let rk = nint(4096 / sk) +let sek = 4096 / rk +let ap = gzp * sek +let zp = (ap + 1.1641532182693481e-12 + abs(ap - 1.1641532182693481e-12)) / 2 +let l0p = nint(65536 / ln(2) * ln(zp / 1.1641532182693481e-12)) +echo BEGIN r_0 +print rk +echo END r_0 +alter VDN = 0 +dc VDN 0 1.5 0.03125 VGN 0 1.5 0.015625 +let vgn = v(gn) +let vdn = v(dn) +let ovn = (vgn - 0.23 + abs(vgn - 0.23)) / 2 +let sn = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovn * ovn) +let rn = nint(4096 / sn) +let fn = 1 - exp(0 - vdn * rn / 4096) +let idn = 0 - i(VDN) +let qn = (idn + abs(idn)) / 2 +let jn = qn / (fn + 1e-30) +let mn = (jn + 1.1641532182693481e-12 + abs(jn - 1.1641532182693481e-12)) / 2 +let lamn = nint(65536 / ln(2) * ln(mn / 1.1641532182693481e-12)) +let k = 0 +while k < 97 + let lamn[k*49] = dc1.l0n[k] + let k = k + 1 +end +echo BEGIN lam_n_0 +print lamn +echo END lam_n_0 +alter VDP = 1.5 +dc VDP 1.5 0 -0.03125 VGP 1.5 0 -0.015625 +let vgp = 1.5 - v(gp) +let vdp = 1.5 - v(dp) +let ovp = (vgp - 0.23 + abs(vgp - 0.23)) / 2 +let sp = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovp * ovp) +let rp = nint(4096 / sp) +let fp = 1 - exp(0 - vdp * rp / 4096) +let idp = i(VDP) +let qp = (idp + abs(idp)) / 2 +let jp = qp / (fp + 1e-30) +let mp = (jp + 1.1641532182693481e-12 + abs(jp - 1.1641532182693481e-12)) / 2 +let lamp = nint(65536 / ln(2) * ln(mp / 1.1641532182693481e-12)) +let k = 0 +while k < 97 + let lamp[k*49] = dc2.l0p[k] + let k = k + 1 +end +echo BEGIN lam_p_0 +print lamp +echo END lam_p_0 +* ---- slice 1: Vsb = 0.25 V (the NMOS bulk at -0.25 V, the PMOS bulk at 1.75 V). Plots dc5, dc6: the Vds = 0 columns; dc7, dc8: the grids. +alter VBN = -0.25 +alter VBP = 1.75 +alter VDN = 0 +dc VGN 0 1.5 0.015625 +let gzn = @n.xmn.nsg13_lv_nmos[gds] +let kk = vector(97) +let vgk = kk * 0.015625 +let ovk = (vgk - 0.23 + abs(vgk - 0.23)) / 2 +let sk = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovk * ovk) +let rk = nint(4096 / sk) +let sek = 4096 / rk +let an = gzn * sek +let zn = (an + 1.1641532182693481e-12 + abs(an - 1.1641532182693481e-12)) / 2 +let l0n = nint(65536 / ln(2) * ln(zn / 1.1641532182693481e-12)) +alter VDP = 1.5 +dc VGP 1.5 0 -0.015625 +let gzp = @n.xmp.nsg13_lv_pmos[gds] +let kk = vector(97) +let vgk = kk * 0.015625 +let ovk = (vgk - 0.23 + abs(vgk - 0.23)) / 2 +let sk = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovk * ovk) +let rk = nint(4096 / sk) +let sek = 4096 / rk +let ap = gzp * sek +let zp = (ap + 1.1641532182693481e-12 + abs(ap - 1.1641532182693481e-12)) / 2 +let l0p = nint(65536 / ln(2) * ln(zp / 1.1641532182693481e-12)) +echo BEGIN r_1 +print rk +echo END r_1 +alter VDN = 0 +dc VDN 0 1.5 0.03125 VGN 0 1.5 0.015625 +let vgn = v(gn) +let vdn = v(dn) +let ovn = (vgn - 0.23 + abs(vgn - 0.23)) / 2 +let sn = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovn * ovn) +let rn = nint(4096 / sn) +let fn = 1 - exp(0 - vdn * rn / 4096) +let idn = 0 - i(VDN) +let qn = (idn + abs(idn)) / 2 +let jn = qn / (fn + 1e-30) +let mn = (jn + 1.1641532182693481e-12 + abs(jn - 1.1641532182693481e-12)) / 2 +let lamn = nint(65536 / ln(2) * ln(mn / 1.1641532182693481e-12)) +let k = 0 +while k < 97 + let lamn[k*49] = dc5.l0n[k] + let k = k + 1 +end +echo BEGIN lam_n_1 +print lamn +echo END lam_n_1 +alter VDP = 1.5 +dc VDP 1.5 0 -0.03125 VGP 1.5 0 -0.015625 +let vgp = 1.5 - v(gp) +let vdp = 1.5 - v(dp) +let ovp = (vgp - 0.23 + abs(vgp - 0.23)) / 2 +let sp = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovp * ovp) +let rp = nint(4096 / sp) +let fp = 1 - exp(0 - vdp * rp / 4096) +let idp = i(VDP) +let qp = (idp + abs(idp)) / 2 +let jp = qp / (fp + 1e-30) +let mp = (jp + 1.1641532182693481e-12 + abs(jp - 1.1641532182693481e-12)) / 2 +let lamp = nint(65536 / ln(2) * ln(mp / 1.1641532182693481e-12)) +let k = 0 +while k < 97 + let lamp[k*49] = dc6.l0p[k] + let k = k + 1 +end +echo BEGIN lam_p_1 +print lamp +echo END lam_p_1 +* ---- slice 2: Vsb = 0.5 V (the NMOS bulk at -0.5 V, the PMOS bulk at 2 V). Plots dc9, dc10: the Vds = 0 columns; dc11, dc12: the grids. +alter VBN = -0.5 +alter VBP = 2 +alter VDN = 0 +dc VGN 0 1.5 0.015625 +let gzn = @n.xmn.nsg13_lv_nmos[gds] +let kk = vector(97) +let vgk = kk * 0.015625 +let ovk = (vgk - 0.23 + abs(vgk - 0.23)) / 2 +let sk = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovk * ovk) +let rk = nint(4096 / sk) +let sek = 4096 / rk +let an = gzn * sek +let zn = (an + 1.1641532182693481e-12 + abs(an - 1.1641532182693481e-12)) / 2 +let l0n = nint(65536 / ln(2) * ln(zn / 1.1641532182693481e-12)) +alter VDP = 1.5 +dc VGP 1.5 0 -0.015625 +let gzp = @n.xmp.nsg13_lv_pmos[gds] +let kk = vector(97) +let vgk = kk * 0.015625 +let ovk = (vgk - 0.23 + abs(vgk - 0.23)) / 2 +let sk = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovk * ovk) +let rk = nint(4096 / sk) +let sek = 4096 / rk +let ap = gzp * sek +let zp = (ap + 1.1641532182693481e-12 + abs(ap - 1.1641532182693481e-12)) / 2 +let l0p = nint(65536 / ln(2) * ln(zp / 1.1641532182693481e-12)) +echo BEGIN r_2 +print rk +echo END r_2 +alter VDN = 0 +dc VDN 0 1.5 0.03125 VGN 0 1.5 0.015625 +let vgn = v(gn) +let vdn = v(dn) +let ovn = (vgn - 0.23 + abs(vgn - 0.23)) / 2 +let sn = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovn * ovn) +let rn = nint(4096 / sn) +let fn = 1 - exp(0 - vdn * rn / 4096) +let idn = 0 - i(VDN) +let qn = (idn + abs(idn)) / 2 +let jn = qn / (fn + 1e-30) +let mn = (jn + 1.1641532182693481e-12 + abs(jn - 1.1641532182693481e-12)) / 2 +let lamn = nint(65536 / ln(2) * ln(mn / 1.1641532182693481e-12)) +let k = 0 +while k < 97 + let lamn[k*49] = dc9.l0n[k] + let k = k + 1 +end +echo BEGIN lam_n_2 +print lamn +echo END lam_n_2 +alter VDP = 1.5 +dc VDP 1.5 0 -0.03125 VGP 1.5 0 -0.015625 +let vgp = 1.5 - v(gp) +let vdp = 1.5 - v(dp) +let ovp = (vgp - 0.23 + abs(vgp - 0.23)) / 2 +let sp = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovp * ovp) +let rp = nint(4096 / sp) +let fp = 1 - exp(0 - vdp * rp / 4096) +let idp = i(VDP) +let qp = (idp + abs(idp)) / 2 +let jp = qp / (fp + 1e-30) +let mp = (jp + 1.1641532182693481e-12 + abs(jp - 1.1641532182693481e-12)) / 2 +let lamp = nint(65536 / ln(2) * ln(mp / 1.1641532182693481e-12)) +let k = 0 +while k < 97 + let lamp[k*49] = dc10.l0p[k] + let k = k + 1 +end +echo BEGIN lam_p_2 +print lamp +echo END lam_p_2 +* ---- slice 3: Vsb = 0.75 V (the NMOS bulk at -0.75 V, the PMOS bulk at 2.25 V). Plots dc13, dc14: the Vds = 0 columns; dc15, dc16: the grids. +alter VBN = -0.75 +alter VBP = 2.25 +alter VDN = 0 +dc VGN 0 1.5 0.015625 +let gzn = @n.xmn.nsg13_lv_nmos[gds] +let kk = vector(97) +let vgk = kk * 0.015625 +let ovk = (vgk - 0.23 + abs(vgk - 0.23)) / 2 +let sk = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovk * ovk) +let rk = nint(4096 / sk) +let sek = 4096 / rk +let an = gzn * sek +let zn = (an + 1.1641532182693481e-12 + abs(an - 1.1641532182693481e-12)) / 2 +let l0n = nint(65536 / ln(2) * ln(zn / 1.1641532182693481e-12)) +alter VDP = 1.5 +dc VGP 1.5 0 -0.015625 +let gzp = @n.xmp.nsg13_lv_pmos[gds] +let kk = vector(97) +let vgk = kk * 0.015625 +let ovk = (vgk - 0.23 + abs(vgk - 0.23)) / 2 +let sk = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovk * ovk) +let rk = nint(4096 / sk) +let sek = 4096 / rk +let ap = gzp * sek +let zp = (ap + 1.1641532182693481e-12 + abs(ap - 1.1641532182693481e-12)) / 2 +let l0p = nint(65536 / ln(2) * ln(zp / 1.1641532182693481e-12)) +echo BEGIN r_3 +print rk +echo END r_3 +alter VDN = 0 +dc VDN 0 1.5 0.03125 VGN 0 1.5 0.015625 +let vgn = v(gn) +let vdn = v(dn) +let ovn = (vgn - 0.23 + abs(vgn - 0.23)) / 2 +let sn = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovn * ovn) +let rn = nint(4096 / sn) +let fn = 1 - exp(0 - vdn * rn / 4096) +let idn = 0 - i(VDN) +let qn = (idn + abs(idn)) / 2 +let jn = qn / (fn + 1e-30) +let mn = (jn + 1.1641532182693481e-12 + abs(jn - 1.1641532182693481e-12)) / 2 +let lamn = nint(65536 / ln(2) * ln(mn / 1.1641532182693481e-12)) +let k = 0 +while k < 97 + let lamn[k*49] = dc13.l0n[k] + let k = k + 1 +end +echo BEGIN lam_n_3 +print lamn +echo END lam_n_3 +alter VDP = 1.5 +dc VDP 1.5 0 -0.03125 VGP 1.5 0 -0.015625 +let vgp = 1.5 - v(gp) +let vdp = 1.5 - v(dp) +let ovp = (vgp - 0.23 + abs(vgp - 0.23)) / 2 +let sp = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovp * ovp) +let rp = nint(4096 / sp) +let fp = 1 - exp(0 - vdp * rp / 4096) +let idp = i(VDP) +let qp = (idp + abs(idp)) / 2 +let jp = qp / (fp + 1e-30) +let mp = (jp + 1.1641532182693481e-12 + abs(jp - 1.1641532182693481e-12)) / 2 +let lamp = nint(65536 / ln(2) * ln(mp / 1.1641532182693481e-12)) +let k = 0 +while k < 97 + let lamp[k*49] = dc14.l0p[k] + let k = k + 1 +end +echo BEGIN lam_p_3 +print lamp +echo END lam_p_3 +* ---- slice 4: Vsb = 1 V (the NMOS bulk at -1 V, the PMOS bulk at 2.5 V). Plots dc17, dc18: the Vds = 0 columns; dc19, dc20: the grids. +alter VBN = -1 +alter VBP = 2.5 +alter VDN = 0 +dc VGN 0 1.5 0.015625 +let gzn = @n.xmn.nsg13_lv_nmos[gds] +let kk = vector(97) +let vgk = kk * 0.015625 +let ovk = (vgk - 0.23 + abs(vgk - 0.23)) / 2 +let sk = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovk * ovk) +let rk = nint(4096 / sk) +let sek = 4096 / rk +let an = gzn * sek +let zn = (an + 1.1641532182693481e-12 + abs(an - 1.1641532182693481e-12)) / 2 +let l0n = nint(65536 / ln(2) * ln(zn / 1.1641532182693481e-12)) +alter VDP = 1.5 +dc VGP 1.5 0 -0.015625 +let gzp = @n.xmp.nsg13_lv_pmos[gds] +let kk = vector(97) +let vgk = kk * 0.015625 +let ovk = (vgk - 0.23 + abs(vgk - 0.23)) / 2 +let sk = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovk * ovk) +let rk = nint(4096 / sk) +let sek = 4096 / rk +let ap = gzp * sek +let zp = (ap + 1.1641532182693481e-12 + abs(ap - 1.1641532182693481e-12)) / 2 +let l0p = nint(65536 / ln(2) * ln(zp / 1.1641532182693481e-12)) +echo BEGIN r_4 +print rk +echo END r_4 +alter VDN = 0 +dc VDN 0 1.5 0.03125 VGN 0 1.5 0.015625 +let vgn = v(gn) +let vdn = v(dn) +let ovn = (vgn - 0.23 + abs(vgn - 0.23)) / 2 +let sn = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovn * ovn) +let rn = nint(4096 / sn) +let fn = 1 - exp(0 - vdn * rn / 4096) +let idn = 0 - i(VDN) +let qn = (idn + abs(idn)) / 2 +let jn = qn / (fn + 1e-30) +let mn = (jn + 1.1641532182693481e-12 + abs(jn - 1.1641532182693481e-12)) / 2 +let lamn = nint(65536 / ln(2) * ln(mn / 1.1641532182693481e-12)) +let k = 0 +while k < 97 + let lamn[k*49] = dc17.l0n[k] + let k = k + 1 +end +echo BEGIN lam_n_4 +print lamn +echo END lam_n_4 +alter VDP = 1.5 +dc VDP 1.5 0 -0.03125 VGP 1.5 0 -0.015625 +let vgp = 1.5 - v(gp) +let vdp = 1.5 - v(dp) +let ovp = (vgp - 0.23 + abs(vgp - 0.23)) / 2 +let sp = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovp * ovp) +let rp = nint(4096 / sp) +let fp = 1 - exp(0 - vdp * rp / 4096) +let idp = i(VDP) +let qp = (idp + abs(idp)) / 2 +let jp = qp / (fp + 1e-30) +let mp = (jp + 1.1641532182693481e-12 + abs(jp - 1.1641532182693481e-12)) / 2 +let lamp = nint(65536 / ln(2) * ln(mp / 1.1641532182693481e-12)) +let k = 0 +while k < 97 + let lamp[k*49] = dc18.l0p[k] + let k = k + 1 +end +echo BEGIN lam_p_4 +print lamp +echo END lam_p_4 +* ---- slice 5: Vsb = 1.25 V (the NMOS bulk at -1.25 V, the PMOS bulk at 2.75 V). Plots dc21, dc22: the Vds = 0 columns; dc23, dc24: the grids. +alter VBN = -1.25 +alter VBP = 2.75 +alter VDN = 0 +dc VGN 0 1.5 0.015625 +let gzn = @n.xmn.nsg13_lv_nmos[gds] +let kk = vector(97) +let vgk = kk * 0.015625 +let ovk = (vgk - 0.23 + abs(vgk - 0.23)) / 2 +let sk = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovk * ovk) +let rk = nint(4096 / sk) +let sek = 4096 / rk +let an = gzn * sek +let zn = (an + 1.1641532182693481e-12 + abs(an - 1.1641532182693481e-12)) / 2 +let l0n = nint(65536 / ln(2) * ln(zn / 1.1641532182693481e-12)) +alter VDP = 1.5 +dc VGP 1.5 0 -0.015625 +let gzp = @n.xmp.nsg13_lv_pmos[gds] +let kk = vector(97) +let vgk = kk * 0.015625 +let ovk = (vgk - 0.23 + abs(vgk - 0.23)) / 2 +let sk = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovk * ovk) +let rk = nint(4096 / sk) +let sek = 4096 / rk +let ap = gzp * sek +let zp = (ap + 1.1641532182693481e-12 + abs(ap - 1.1641532182693481e-12)) / 2 +let l0p = nint(65536 / ln(2) * ln(zp / 1.1641532182693481e-12)) +echo BEGIN r_5 +print rk +echo END r_5 +alter VDN = 0 +dc VDN 0 1.5 0.03125 VGN 0 1.5 0.015625 +let vgn = v(gn) +let vdn = v(dn) +let ovn = (vgn - 0.23 + abs(vgn - 0.23)) / 2 +let sn = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovn * ovn) +let rn = nint(4096 / sn) +let fn = 1 - exp(0 - vdn * rn / 4096) +let idn = 0 - i(VDN) +let qn = (idn + abs(idn)) / 2 +let jn = qn / (fn + 1e-30) +let mn = (jn + 1.1641532182693481e-12 + abs(jn - 1.1641532182693481e-12)) / 2 +let lamn = nint(65536 / ln(2) * ln(mn / 1.1641532182693481e-12)) +let k = 0 +while k < 97 + let lamn[k*49] = dc21.l0n[k] + let k = k + 1 +end +echo BEGIN lam_n_5 +print lamn +echo END lam_n_5 +alter VDP = 1.5 +dc VDP 1.5 0 -0.03125 VGP 1.5 0 -0.015625 +let vgp = 1.5 - v(gp) +let vdp = 1.5 - v(dp) +let ovp = (vgp - 0.23 + abs(vgp - 0.23)) / 2 +let sp = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovp * ovp) +let rp = nint(4096 / sp) +let fp = 1 - exp(0 - vdp * rp / 4096) +let idp = i(VDP) +let qp = (idp + abs(idp)) / 2 +let jp = qp / (fp + 1e-30) +let mp = (jp + 1.1641532182693481e-12 + abs(jp - 1.1641532182693481e-12)) / 2 +let lamp = nint(65536 / ln(2) * ln(mp / 1.1641532182693481e-12)) +let k = 0 +while k < 97 + let lamp[k*49] = dc22.l0p[k] + let k = k + 1 +end +echo BEGIN lam_p_5 +print lamp +echo END lam_p_5 +* ---- slice 6: Vsb = 1.5 V (the NMOS bulk at -1.5 V, the PMOS bulk at 3 V). Plots dc25, dc26: the Vds = 0 columns; dc27, dc28: the grids. +alter VBN = -1.5 +alter VBP = 3 +alter VDN = 0 +dc VGN 0 1.5 0.015625 +let gzn = @n.xmn.nsg13_lv_nmos[gds] +let kk = vector(97) +let vgk = kk * 0.015625 +let ovk = (vgk - 0.23 + abs(vgk - 0.23)) / 2 +let sk = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovk * ovk) +let rk = nint(4096 / sk) +let sek = 4096 / rk +let an = gzn * sek +let zn = (an + 1.1641532182693481e-12 + abs(an - 1.1641532182693481e-12)) / 2 +let l0n = nint(65536 / ln(2) * ln(zn / 1.1641532182693481e-12)) +alter VDP = 1.5 +dc VGP 1.5 0 -0.015625 +let gzp = @n.xmp.nsg13_lv_pmos[gds] +let kk = vector(97) +let vgk = kk * 0.015625 +let ovk = (vgk - 0.23 + abs(vgk - 0.23)) / 2 +let sk = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovk * ovk) +let rk = nint(4096 / sk) +let sek = 4096 / rk +let ap = gzp * sek +let zp = (ap + 1.1641532182693481e-12 + abs(ap - 1.1641532182693481e-12)) / 2 +let l0p = nint(65536 / ln(2) * ln(zp / 1.1641532182693481e-12)) +echo BEGIN r_6 +print rk +echo END r_6 +alter VDN = 0 +dc VDN 0 1.5 0.03125 VGN 0 1.5 0.015625 +let vgn = v(gn) +let vdn = v(dn) +let ovn = (vgn - 0.23 + abs(vgn - 0.23)) / 2 +let sn = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovn * ovn) +let rn = nint(4096 / sn) +let fn = 1 - exp(0 - vdn * rn / 4096) +let idn = 0 - i(VDN) +let qn = (idn + abs(idn)) / 2 +let jn = qn / (fn + 1e-30) +let mn = (jn + 1.1641532182693481e-12 + abs(jn - 1.1641532182693481e-12)) / 2 +let lamn = nint(65536 / ln(2) * ln(mn / 1.1641532182693481e-12)) +let k = 0 +while k < 97 + let lamn[k*49] = dc25.l0n[k] + let k = k + 1 +end +echo BEGIN lam_n_6 +print lamn +echo END lam_n_6 +alter VDP = 1.5 +dc VDP 1.5 0 -0.03125 VGP 1.5 0 -0.015625 +let vgp = 1.5 - v(gp) +let vdp = 1.5 - v(dp) +let ovp = (vgp - 0.23 + abs(vgp - 0.23)) / 2 +let sp = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovp * ovp) +let rp = nint(4096 / sp) +let fp = 1 - exp(0 - vdp * rp / 4096) +let idp = i(VDP) +let qp = (idp + abs(idp)) / 2 +let jp = qp / (fp + 1e-30) +let mp = (jp + 1.1641532182693481e-12 + abs(jp - 1.1641532182693481e-12)) / 2 +let lamp = nint(65536 / ln(2) * ln(mp / 1.1641532182693481e-12)) +let k = 0 +while k < 97 + let lamp[k*49] = dc26.l0p[k] + let k = k + 1 +end +echo BEGIN lam_p_6 +print lamp +echo END lam_p_6 +* the held-out currents: the bulks back where the sweeps found them do not matter, the held-out devices have their own bulk sources +echo BEGIN cen_n +dc VK 1 1000 1 +let u = nint(i(VRDN) * 1e12) +print u +echo END cen_n +echo BEGIN cen_p +let u = nint(i(VRDP) * 1e12) +print u +echo END cen_p +.endc +.end diff --git a/specs/analog/mos_psp103_gates.t27 b/specs/analog/mos_psp103_gates.t27 index 92a1e8c6c5..105612a863 100644 --- a/specs/analog/mos_psp103_gates.t27 +++ b/specs/analog/mos_psp103_gates.t27 @@ -1,5 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 ; specs/analog/mos_psp103_gates.t27 -- the two-input gates and the transmission gate of the SAR ADC on the PSP103 log tables, judged by ngspice +; M3e (#11283) adds the body effect of the transmission gate: its Ron is read on the source-to-bulk tables, the section THE BODY EFFECT below. ; M5d of the analog emulation epic (#10486, issue #11263). specs/analog/mos_psp103.t27 solves ONE CMOS inverter on the tt tables of the NMOS (W 1.0 um) and the PMOS (W 3.0 um), L 0.45 um. The ; nand, the nor and the tgate of the integrated converter's golden netlist are made of the same two devices, with the same W, L and m (nand: two NMOS in series and two PMOS in parallel; ; nor: two NMOS in parallel and two PMOS in series; tgate: one PMOS and one NMOS in parallel between the input and the output; the sizes are facts of the circuit, none of its text is @@ -18,11 +19,17 @@ ; sar_off_ron.cir measures the golden tgate the same way). Off (PMOS gate Vdd, NMOS gate 0 V), the input at Vdd and the output at 0 V: both devices at Vgs = 0, Vds = Vdd, and the ; leakage is the sum of their two table words (`gt_tg_off`). ; - +; THE BODY EFFECT (M3e, #11283). The 2-D tables have each bulk tied to its source, so the Ron above is the Ron of a cell with no body effect. The golden cell has its bulks on the rails: the +; NMOS bulk at 0 V and the PMOS bulk at 1.5 V, so while it conducts the NMOS source (the output vout) is vout above its bulk, and the PMOS source (the input vout + dv) is 1.5 V - (vout + dv) +; below its bulk. `gt_tg_i` with body true reads each device at that source-to-bulk voltage on the seven slices of mos_psp103_vsb_data.t27 (Vsb = 0, 0.25, .. 1.5 V; the slice 0 is the +; 2-D table passed in), the log word blended between the two slices around it (`lg_fine_vsb` of mos_table.t27); with body false Vsb is forced to 0 and the read is the 2-D read bit for bit. +; The held-out check of the read, `gt_hold_vsb`, judges it at 1000 centres of the cells of the (Vgs, Vds, Vsb) grid against ngspice's own currents there. +; - ; THE REFERENCE. ngspice-47 with the IHP SG13G2 PSP103 of IHP-Open-PDK 21133f21, mos_tt, 27 C, on the reference host (a container, 2 threads), 2026-10-20, three decks of ; specs/analog/decks: accept_gates.cir (the eight gate outputs, the off tgate), accept_tgate.cir (the conducting tgate, two cells), accept_switch.cir (used by accept_sar.t27). ; The levels are the DC solution with no load, which is what a gate settles to into 10 fF. The numbers are the GT_NG_* constants below, none changed after printing. ; - -; THE RESULT, our model against that run. +; THE RESULT, our model against that run (the 2-D read, then below the read with the body effect). ; levels the distance of each output from its ideal level (1.5 V minus a 1, a 0 itself), nand A B = 00, 01, 10, 11 / nor 00, 01, 10, 11, in uV: ; nand ours 0.179 0.477 0.477 0.179 ngspice 0.316 0.721 0.687 2.537 worst gap 2.358 uV (nand 11) ; nor ours 1.848 0.060 0.060 0.060 ngspice 2.883 0.634 0.617 0.611 worst gap 1.036 uV (nor 00) @@ -34,29 +41,39 @@ ; EFFECT, and the real cell has bulks on the rails: while the tgate conducts at 0.75 V the NMOS source is 0.75 V above its bulk and the PMOS source 0.75 V below its bulk, which ; raises both thresholds. That is not an assumption: accept_tgate.cir also runs the same two devices with each bulk tied to its own source (the condition the tables were made ; under), and there our model is within 0.06 % of ngspice at all 27 points (the largest gap 0.0588 %) (ngspice 1717.2 ohm at 0.75 V, 2108.4 ohm at the worst). The bar of 10 % refuses the real cell by -; 3 times at 0.75 V and 2.4 times at the worst point, so the tgate's Ron rows of accept_sar.t27 are NOT MODELLED, with our numbers and ngspice's shown. +; 3 times at 0.75 V and 2.4 times at the worst point: with Vsb forced to 0 (body false) the tgate's Ron rows of accept_sar.t27 are NOT MODELLED, and that is the negative control (FR-005). +; Ron WITH THE BODY EFFECT (M3e, body true): ours 2461.2 ohm at 0.75 V (ngspice's real cell 2459.6 ohm, +0.065 %) and 2777.5 ohm at the worst of the 27 points (2776.1 ohm, +0.049 %); the +; largest of the 27 gaps is 0.090 %, 110 times inside the bar of 10 %, and the Ron rows of accept_sar.t27 are PASS (inside the report's 30 and 50 kohm as well). The held-out +; currents between slices are read to 1.71 % (NMOS) and 2.51 % (PMOS) with a floor of 1 nA (898 and 818 of 1000 points above it): the bar is 3 % (GT_B_VSB). The Ron check needs +; less: read off the same tables with a floating-point twin of the reader (a scratch run), even the two end slices alone (Vsb = 0 and 1.5 V) give the 27 Ron points within 1.2 %. ; the external team's report has 2.44 kohm at 0.75 V, 2.78 kohm worst and 0.29 nA: ngspice's real cell gives 2.46 kohm (0.8 % over), 2.78 kohm (0.1 % under) and 0.286 nA, so the ; reference run reproduces the report; the report's numbers are the report's, ours are the functions here. ; - ; THE NEGATIVE CONTROLS (FR-004), each a test that passes by seeing the failure. The nand with the PMOS table zeroed never rises (its 1 levels are under 0.4 mV, 1.5 V off); with the NMOS ; zeroed its 11 output stays at 1.5 V; the nand's output read where the nor has a 0 is 1.5 V off. The tgate's leakage with the NMOS table in both slots is 521.5 pA, 82.6 % over ngspice's, and ; with the NMOS zeroed 30.3 pA, 89 % under; its Ron at 0.75 V with the PMOS zeroed is 2895 ohm and with the NMOS zeroed 4225 ohm, 69 % and 146 % over the no-body-effect cell: the bar of 10 % -; refuses each. THE LIMIT OF THE LEVEL CONTROL: the two tables in each other's slots (a 3 um stack and a 1 um pair) leave every level within 0.69 uV (nand) and 2.7 uV (nor) of ngspice's, +; refuses each. M3e's controls: the real cell read with Vsb forced to 0 is 1718.0 ohm at 0.75 V, 30.2 % under, the largest of the 27 gaps 31.1 %, refused by the same bar; the held-out +; currents read with Vsb forced to 0 are 105 (NMOS) and 424 (PMOS) times off in relative terms; the two devices' Vsb exchanged is 2461.07 ohm at 0.75 V (the cell is symmetric there, the +; exchange is invisible) and 32.3 % off at the worst of the 27 points, 358 times the right read's gap. THE LIMIT OF THE LEVEL CONTROL: the two tables in each other's slots (a 3 um stack and a 1 um pair) leave every level within 0.69 uV (nand) and 2.7 uV (nor) of ngspice's, ; inside the bar, because a level is the leakage of the off side times the resistance of the on side and both are microvolts for either width: a level check does not see a device's ; width, and a test pins that (the leakage and the resistance see it). ; - ; WHAT A PASS SAYS. The tt log tables of the two devices, read by the integer reader and solved for the nand, nor and tgate cells of the golden netlist, give the gates' output levels -; within 2.4 uV of ngspice's, and the tgate's off leakage within 7.2 % of it, at 27 C with no load. WHAT IT DOES NOT SAY. The Ron of the real cell: it is 30 % off, for the body effect -; (the tables have no source-to-bulk voltage, and no test here pretends otherwise: the no-body-effect run agrees to 0.06 % and the real cell does not). Nothing about delay or a transient -; into 10 fF (the DC level is what the gate settles to), another corner or temperature (tt, 27 C only), mismatch, noise or power; the leakage is one bias (full swing) and its two junction -; terms are not separated. The model is a TABLE MODEL of PSP103, not PSP103. ASCII only, English only. +; within 2.4 uV of ngspice's, and the tgate's off leakage within 7.2 % of it, at 27 C with no load; and, read at the source-to-bulk voltage of each device (M3e), the tgate's Ron of the real +; cell (bulks on the rails) within 0.09 % of ngspice's at 27 outputs from 0.1 V to 1.4 V. WHAT IT DOES NOT SAY. That the 2-D read (body false) is the real cell: it is 30 % under it, for the +; body effect, and no test here pretends otherwise. That the Vsb read is accurate everywhere: it is 1.7 % and 2.5 % at the held-out centres between slices, and below 0.25 V of gate drive +; the PMOS off current at Vsb above 0.5 V is a floor of 1 IUNIT. Nothing about delay or a transient into 10 fF (the DC level is what the gate settles to), another corner or temperature +; (tt, 27 C only), mismatch, noise or power; the leakage is one bias (full swing, Vsb = 0 for both devices) and its two junction terms are not separated. The model is a TABLE MODEL of PSP103, +; not PSP103. ASCII only, English only. ; phi^2 + 1/phi^2 = 3 | TRINITY module AnalogMosPsp103Gates; -use analog::mos_table::{VDD, lg_fine, dpos}; -use analog::mos_psp103::{UPV, IUNIT_A}; +use analog::linear::{fabs64}; +use analog::mos_table::{VDD, lg_fine, dpos, fmax64, LG_NG, LG_ND, LG_NV, LG_GBITS, LG_DBITS, LG_VBITS}; +use analog::mos_psp103::{UPV, IUNIT_A, cell_centre}; use analog::mos_psp103_data::{TT_LG_N, TT_LG_P}; +use analog::mos_psp103_vsb_data::{DEV_N, DEV_P, R3_A1, R3_A2, R3_A3, vsb_fine, vsb_cen}; pub const KIND : str = "analog-cell-check"; pub const ID : str = "analog/mos_psp103_gates"; @@ -70,6 +87,9 @@ pub const GT_NV : u32 = 27; pub const GT_B_LEVEL_V : f64 = 0.00001; /// The cross-check bar for a resistance or a current: 10 percent of ngspice's. pub const GT_B_REL : f64 = 0.10; +/// The bar of the source-to-bulk read at the held-out points (M3e): 3 percent, with a floor of 1 nA on the reference. The 2-D read's bar is 1 percent (B_LOG_ISSUE of mos_psp103.t27); the +/// third axis is a chord of the log word over 0.25 V of Vsb and adds to it. +pub const GT_B_VSB : f64 = 0.03; ; --- ngspice-47 + PSP103 mos_tt 27 C, the decks of specs/analog/decks (printed to 12 digits, none changed) ---------------------------------- /// accept_gates.cir: the nand's output distance from its ideal level in V, inputs A B = 00, 01, 10, 11 (the 1 levels as 1.5 V minus the output, the 0 level as the output). @@ -181,9 +201,18 @@ pub fn gt_levels(tn: []const u32, tp: []const u32, nor: bool) -> Lv { ; --- the tgate ----------------------------------------------------------------------------------------------------- /// The tgate conducting (PMOS gate 0 V, NMOS gate Vdd): the current from an input dv above the output vout to the output, in IUNIT. The NMOS source is the output, the PMOS -/// source the input: the NMOS reads (Vdd - vout, dv), the PMOS (vin, dv). -pub fn gt_tg_i(tn: []const u32, tp: []const u32, vout: u32, dv: u32) -> u64 { - return lg_fine(tn, VDD - vout, dv) + lg_fine(tp, vout + dv, dv); +/// source the input: the NMOS reads (Vdd - vout, dv), the PMOS (vin, dv). With body false each device is read with its bulk on its own source, the 2-D tables' condition (Vsb = 0, the +/// read of mos_table.t27 bit for bit). With body true the bulks are on the rails, as in the golden cell (the NMOS bulk at 0 V, the PMOS bulk at Vdd, M3e, #11283): the NMOS source is +/// the output, so its source-to-bulk voltage is vout, and the PMOS source is the input vout + dv, so its voltage to the bulk at Vdd is Vdd - (vout + dv). tn and tp are the Vsb = 0 +/// slices; the other slices are those of mos_psp103_vsb_data.t27. +pub fn gt_tg_i(tn: []const u32, tp: []const u32, vout: u32, dv: u32, body: bool) -> u64 { + var sn : u32 = 0; + var sp : u32 = 0; + if (body) { + sn = vout; + sp = VDD - (vout + dv); + } + return vsb_fine(DEV_N, tn, VDD - vout, dv, sn) + vsb_fine(DEV_P, tp, vout + dv, dv, sp); } /// The output of the sweep point k of the Ron sweep, in units of 2^-24 V. @@ -191,18 +220,18 @@ pub fn gt_tg_v(k: u32) -> u32 { return ((0.1 + 0.05 * (k as f64)) * UPV + 0.5) as u32; } -/// The tgate's resistance in ohm at output vout: the voltage across it over the current. -pub fn gt_tg_ron(tn: []const u32, tp: []const u32, vout: u32) -> f64 { - const i : f64 = (gt_tg_i(tn, tp, vout, GT_DV) as f64) * IUNIT_A; +/// The tgate's resistance in ohm at output vout: the voltage across it over the current (body as in `gt_tg_i`). +pub fn gt_tg_ron(tn: []const u32, tp: []const u32, vout: u32, body: bool) -> f64 { + const i : f64 = (gt_tg_i(tn, tp, vout, GT_DV, body) as f64) * IUNIT_A; return ((GT_DV as f64) / UPV) / i; } /// The largest resistance over the 27 points, 0.10 V to 1.40 V. -pub fn gt_tg_worst(tn: []const u32, tp: []const u32) -> f64 { +pub fn gt_tg_worst(tn: []const u32, tp: []const u32, body: bool) -> f64 { var w : f64 = 0.0; var k : u32 = 0; while (k < GT_NV) { - const r : f64 = gt_tg_ron(tn, tp, gt_tg_v(k)); + const r : f64 = gt_tg_ron(tn, tp, gt_tg_v(k), body); if (r > w) { w = r; } k = k + 1; } @@ -210,12 +239,12 @@ pub fn gt_tg_worst(tn: []const u32, tp: []const u32) -> f64 { } /// The largest relative distance |ours - ngspice| / ngspice of the resistance from a 27-point reference (GT_NG_RTG or GT_NG_RNB). -pub fn gt_ron_gap(tn: []const u32, tp: []const u32, refs: []const f64) -> f64 { +pub fn gt_ron_gap(tn: []const u32, tp: []const u32, refs: []const f64, body: bool) -> f64 { var w : f64 = 0.0; var k : u32 = 0; while (k < GT_NV) { const want : f64 = refs[k as usize]; - var g : f64 = (gt_tg_ron(tn, tp, gt_tg_v(k)) - want) / want; + var g : f64 = (gt_tg_ron(tn, tp, gt_tg_v(k), body) - want) / want; if (g < 0.0) { g = 0.0 - g; } if (g > w) { w = g; } k = k + 1; @@ -239,6 +268,35 @@ pub fn gt_tg_off(tn: []const u32, tp: []const u32) -> f64 { return ((lg_fine(tn, 0, VDD) + lg_fine(tp, 0, VDD)) as f64) * IUNIT_A; } +; --- the held-out check of the source-to-bulk read (M3e) ---------------------------------------------------------------------------- +pub struct HoldV { rel9: f64, abs_a: f64, n9: u32 } + +/// The read of device dev (DEV_N or DEV_P; t0 its Vsb = 0 slice) against the ngspice currents of mos_psp103_vsb_data.t27 (pA) at the first n of its 1000 held-out points, which are the +/// centres of the cells of the (Vgs, Vds, Vsb) grid (Vsb halfway between two slices), the worst places for a chord of it: the largest relative error with a floor of 1e-9 A on the +/// reference (the measure `hold_log` of mos_psp103.t27 uses for the 2-D read), the largest absolute error in A, and how many points have a reference above the floor. With on false the +/// Vsb of every point is forced to 0, the 2-D read: the negative control. +pub fn gt_hold_vsb(dev: u32, t0: []const u32, n: u32, on: bool) -> HoldV { + const ref_pa : []const u32 = vsb_cen(dev); + var rel9 : f64 = 0.0; + var abs_a : f64 = 0.0; + var n9 : u32 = 0; + var i : u32 = 0; + while (i < n) { + const k : u32 = i + 1; + const vg : u32 = cell_centre(k, R3_A1, LG_NG, LG_GBITS); + const vd : u32 = cell_centre(k, R3_A2, LG_ND, LG_DBITS); + var vs : u32 = 0; + if (on) { vs = cell_centre(k, R3_A3, LG_NV, LG_VBITS); } + const got : f64 = ((vsb_fine(dev, t0, vg, vd, vs)) as f64) * IUNIT_A; + const want : f64 = ((ref_pa[i as usize]) as f64) * 0.000000000001; + abs_a = fmax64(abs_a, fabs64(got - want)); + rel9 = fmax64(rel9, fabs64(got - want) / fmax64(want, 0.000000001)); + if (want >= 0.000000001) { n9 = n9 + 1; } + i = i + 1; + } + return HoldV { rel9: rel9, abs_a: abs_a, n9: n9 }; +} + ; --- the tests ---------------------------------------------------------------------------------------------------- ; Variables, not constants, carry the data of the asserts: an assert on a constant is folded by the compiler and counts as no assert at all. @@ -335,17 +393,17 @@ test a_gate_with_a_dead_device_table_or_the_wrong_gate_is_refused_and_the_tables test the_tgate_without_the_body_effect_is_within_0_07_percent_of_ngspice_at_all_27_points_where_the_two_cells_have_the_same_bulk_condition_as_the_tables { // accept_tgate.cir, second cell: each bulk tied to its own source, the condition the tables were made under. 1718.0 ohm at 0.75 V (ngspice 1717.2), 2109.3 ohm at the worst point // (ngspice 2108.4); the largest of the 27 relative gaps is 0.0588 % - const r075 : f64 = gt_tg_ron(&TT_LG_N, &TT_LG_P, gt_tg_v(13)); + const r075 : f64 = gt_tg_ron(&TT_LG_N, &TT_LG_P, gt_tg_v(13), false); assert(r075 > 1717.9); assert(r075 < 1718.1); - const worst : f64 = gt_tg_worst(&TT_LG_N, &TT_LG_P); + const worst : f64 = gt_tg_worst(&TT_LG_N, &TT_LG_P, false); assert(worst > 2109.2); assert(worst < 2109.4); assert(GT_NG_RNB[13] > 1717.2); assert(GT_NG_RNB[13] < 1717.3); assert(gt_ref_max(>_NG_RNB) > 2108.3); assert(gt_ref_max(>_NG_RNB) < 2108.4); - const gap : f64 = gt_ron_gap(&TT_LG_N, &TT_LG_P, >_NG_RNB); + const gap : f64 = gt_ron_gap(&TT_LG_N, &TT_LG_P, >_NG_RNB, false); assert(gap > 0.0005); assert(gap < 0.0007); assert(gap < GT_B_REL); @@ -356,15 +414,15 @@ test the_tgate_without_the_body_effect_is_within_0_07_percent_of_ngspice_at_all_ // NEGATIVE CONTROL, a device missing from the cell: the PMOS never conducts, the NMOS alone is 2895 ohm at 0.75 V, 69 % over the no-body-effect cell; the NMOS never conducts, the // PMOS alone is 4225 ohm, 146 % over. The bar of 10 % refuses both, by 6.9 and 14.6 times var dead : [4851]u32 = [0] ** 4851; - const rn : f64 = gt_tg_ron(&TT_LG_N, &dead, gt_tg_v(13)); - const rp : f64 = gt_tg_ron(&dead, &TT_LG_P, gt_tg_v(13)); + const rn : f64 = gt_tg_ron(&TT_LG_N, &dead, gt_tg_v(13), false); + const rp : f64 = gt_tg_ron(&dead, &TT_LG_P, gt_tg_v(13), false); assert(rn > 2895.0); assert(rn < 2896.0); assert(rp > 4225.0); assert(rp < 4226.0); assert((rn - GT_NG_RNB[13]) / GT_NG_RNB[13] > 6.0 * GT_B_REL); assert((rp - GT_NG_RNB[13]) / GT_NG_RNB[13] > 14.0 * GT_B_REL); - assert(gt_ron_gap(&TT_LG_N, &dead, >_NG_RNB) > 0.6); + assert(gt_ron_gap(&TT_LG_N, &dead, >_NG_RNB, false) > 0.6); } test the_real_tgate_is_24_to_31_percent_above_the_tables_at_every_point_because_the_tables_have_no_body_effect_and_the_10_percent_bar_refuses_it { @@ -374,15 +432,15 @@ test the_real_tgate_is_24_to_31_percent_above_the_tables_at_every_point_because_ assert(GT_NG_RTG[13] < 2459.7); assert(gt_ref_max(>_NG_RTG) > 2776.1); assert(gt_ref_max(>_NG_RTG) < 2776.2); - const r075 : f64 = gt_tg_ron(&TT_LG_N, &TT_LG_P, gt_tg_v(13)); + const r075 : f64 = gt_tg_ron(&TT_LG_N, &TT_LG_P, gt_tg_v(13), false); const g075 : f64 = (GT_NG_RTG[13] - r075) / GT_NG_RTG[13]; assert(g075 > 0.301); assert(g075 < 0.302); - const worst : f64 = gt_tg_worst(&TT_LG_N, &TT_LG_P); + const worst : f64 = gt_tg_worst(&TT_LG_N, &TT_LG_P, false); const gw : f64 = (gt_ref_max(>_NG_RTG) - worst) / gt_ref_max(>_NG_RTG); assert(gw > 0.240); assert(gw < 0.241); - const gap : f64 = gt_ron_gap(&TT_LG_N, &TT_LG_P, >_NG_RTG); + const gap : f64 = gt_ron_gap(&TT_LG_N, &TT_LG_P, >_NG_RTG, false); assert(gap > 0.311); assert(gap < 0.312); // the bar of 10 % refuses the real cell by 3 times at 0.75 V and 2.4 times at the worst point @@ -393,7 +451,7 @@ test the_real_tgate_is_24_to_31_percent_above_the_tables_at_every_point_because_ var above : bool = true; var above_nb : bool = true; while (k < GT_NV) { - if (gt_tg_ron(&TT_LG_N, &TT_LG_P, gt_tg_v(k)) >= GT_NG_RTG[k as usize]) { above = false; } + if (gt_tg_ron(&TT_LG_N, &TT_LG_P, gt_tg_v(k), false) >= GT_NG_RTG[k as usize]) { above = false; } if (GT_NG_RNB[k as usize] >= GT_NG_RTG[k as usize]) { above_nb = false; } k = k + 1; } @@ -430,3 +488,117 @@ test the_tgate_off_leakage_is_291_pA_against_ngspices_286_pA_at_the_output_and_2 assert(only_p < 0.0000000000303); assert((GT_NG_LEAK_OUT_A - only_p) / GT_NG_LEAK_OUT_A > 8.0 * GT_B_REL); } + +test the_real_tgate_read_with_its_bulks_on_the_rails_on_the_source_to_bulk_tables_is_within_0_1_percent_of_ngspice_at_all_27_points_and_inside_the_10_percent_bar { + // M3e (#11283), FR-003. accept_tgate.cir, first cell (the NMOS bulk at 0 V, the PMOS bulk at 1.5 V): 2459.6 ohm at 0.75 V and 2776.1 ohm at the worst point (the external team's report: + // 2.44 and 2.78 kohm). Ours, each device read at the source-to-bulk voltage its source has (NMOS: the output level, PMOS: Vdd minus the input) on the seven slices of + // mos_psp103_vsb_data.t27, the log word blended between them: 2461.2 ohm (+0.065 %) and 2777.5 ohm (+0.049 %); the largest of the 27 gaps is 0.090 %, 110 times inside the bar of 10 %. + // Before the Vsb axis: 1718.0 and 2109.3 ohm, 30.2 and 24.0 % under, the largest gap 31.1 %. + const r075 : f64 = gt_tg_ron(&TT_LG_N, &TT_LG_P, gt_tg_v(13), true); + assert(r075 > 2461.2); + assert(r075 < 2461.3); + const worst : f64 = gt_tg_worst(&TT_LG_N, &TT_LG_P, true); + assert(worst > 2777.5); + assert(worst < 2777.6); + const g075 : f64 = (r075 - GT_NG_RTG[13]) / GT_NG_RTG[13]; + assert(g075 > 0.000648); + assert(g075 < 0.000650); + const gw : f64 = (worst - gt_ref_max(>_NG_RTG)) / gt_ref_max(>_NG_RTG); + assert(gw > 0.000488); + assert(gw < 0.000490); + const gap : f64 = gt_ron_gap(&TT_LG_N, &TT_LG_P, >_NG_RTG, true); + assert(gap > 0.000902); + assert(gap < 0.000905); + assert(gap < GT_B_REL); + assert(gap * 100.0 < GT_B_REL); + assert(g075 < GT_B_REL); + assert(gw < GT_B_REL); + // the body effect raises a resistance and the read has it: at every one of the 27 points the Ron with the bulks on the rails is above the Ron with each bulk on its source (in ngspice's two cells by 1.5 % at 0.1 V to 45 % at 0.85 V) + var k : u32 = 0; + var above : u32 = 0; + while (k < GT_NV) { + if (gt_tg_ron(&TT_LG_N, &TT_LG_P, gt_tg_v(k), true) > gt_tg_ron(&TT_LG_N, &TT_LG_P, gt_tg_v(k), false)) { above = above + 1; } + k = k + 1; + } + assert_eq(above, GT_NV); + // the ngspice cell with each bulk on its own source (accept_tgate.cir, second cell) is the condition of the 2-D tables, not of the real cell: the Vsb read of the real cell is 43 % + // above it at 0.75 V (2461 against 1717 ohm), so it is the real cell's reference that the read meets and not that one + assert(gt_ron_gap(&TT_LG_N, &TT_LG_P, >_NG_RNB, true) > 0.3); +} + +test the_source_to_bulk_read_meets_3_percent_with_a_floor_of_1_nA_at_1000_held_out_centres_between_slices_and_the_read_with_vsb_forced_to_zero_does_not { + // M3e (#11283), FR-001 and FR-005 on the held-out currents of mos_psp103_vsb_data.t27 (ngspice, never used to make a table): the centres of the cells of the (Vgs, Vds, Vsb) grid, Vsb + // halfway between two slices. The largest relative error with a floor of 1 nA on the reference is 1.71 % (NMOS) and 2.51 % (PMOS): the third axis is a chord of the log word over + // 0.25 V of Vsb (the 2-D read's own 0.47 % and 0.70 % at its cell centres are in it), and the bar is 3 %. 898 and 818 of the 1000 points are above the floor. + const hn : HoldV = gt_hold_vsb(DEV_N, &TT_LG_N, 1000, true); + const hp : HoldV = gt_hold_vsb(DEV_P, &TT_LG_P, 1000, true); + assert(hn.rel9 < GT_B_VSB); + assert(hp.rel9 < GT_B_VSB); + assert(hn.rel9 > 0.017114); + assert(hn.rel9 < 0.017115); + assert(hp.rel9 > 0.025132); + assert(hp.rel9 < 0.025133); + // the largest absolute error: 134 nA (NMOS) and 186 nA (PMOS) + assert(hn.abs_a > 0.0000001336); + assert(hn.abs_a < 0.0000001337); + assert(hp.abs_a > 0.0000001857); + assert(hp.abs_a < 0.0000001858); + assert_eq(hn.n9, 898); + assert_eq(hp.n9, 818); + // NEGATIVE CONTROL: the same points read with Vsb forced to 0 (the 2-D read of the existing tables) are 105 times (NMOS) and 424 times (PMOS) off, in relative terms: the weak inversion + // current at Vsb up to 1.4 V is 2^6 to 2^10 times below the one at 0, and the bar of 3 % refuses it by 3500 and 14000 times + const zn : HoldV = gt_hold_vsb(DEV_N, &TT_LG_N, 1000, false); + const zp : HoldV = gt_hold_vsb(DEV_P, &TT_LG_P, 1000, false); + assert(zn.rel9 > 104.8); + assert(zn.rel9 < 104.9); + assert(zp.rel9 > 424.0); + assert(zp.rel9 < 424.1); + assert(zn.rel9 > 3000.0 * GT_B_VSB); + assert(zp.rel9 > 10000.0 * GT_B_VSB); +} + +test the_real_cell_read_with_vsb_forced_to_zero_is_the_2d_read_bit_for_bit_and_the_bar_refuses_it_and_so_it_refuses_a_read_with_the_two_devices_vsb_exchanged { + // M3e (#11283), FR-002 and FR-005. With body false the third axis is off: at every one of the 27 points the current is the sum of the two 2-D reads of mos_table.t27, to the word. + var same : u32 = 0; + var k : u32 = 0; + var dv : u32 = GT_DV; + while (k < GT_NV) { + const vout : u32 = gt_tg_v(k); + if (gt_tg_i(&TT_LG_N, &TT_LG_P, vout, dv, false) == lg_fine(&TT_LG_N, VDD - vout, dv) + lg_fine(&TT_LG_P, vout + dv, dv)) { same = same + 1; } + k = k + 1; + } + assert_eq(same, GT_NV); + // THE NEGATIVE CONTROL OF THE ISSUE: the real cell read with Vsb forced to 0 is 1718.0 ohm at 0.75 V (30.2 % under ngspice's 2459.6) and the largest of the 27 gaps is 31.1 %: the same + // bar of 10 % refuses it, by 3.0 and 3.1 times + const rz : f64 = gt_tg_ron(&TT_LG_N, &TT_LG_P, gt_tg_v(13), false); + const gz075 : f64 = (GT_NG_RTG[13] - rz) / GT_NG_RTG[13]; + const gz : f64 = gt_ron_gap(&TT_LG_N, &TT_LG_P, >_NG_RTG, false); + assert(rz > 1717.9); + assert(rz < 1718.1); + assert(gz075 > 0.301); + assert(gz075 < 0.302); + assert(gz > 0.311); + assert(gz < 0.312); + assert(gz075 > 3.0 * GT_B_REL); + assert(gz > 3.1 * GT_B_REL); + // A second control, the two devices' Vsb exchanged (the NMOS read at Vdd minus the input, the PMOS at the output level): at 0.75 V the cell is symmetric and the exchange is not seen + // there (2461.07 ohm against 2461.22), it is seen at the other 26 points: the largest of the 27 gaps is 32.3 %, 358 times the right read's, and the bar refuses it + var worst : f64 = 0.0; + var at075 : f64 = 0.0; + k = 0; + while (k < GT_NV) { + const vout : u32 = gt_tg_v(k); + const i : u64 = vsb_fine(DEV_N, &TT_LG_N, VDD - vout, dv, VDD - (vout + dv)) + vsb_fine(DEV_P, &TT_LG_P, vout + dv, dv, vout); + const r : f64 = ((dv as f64) / UPV) / ((i as f64) * IUNIT_A); + var g : f64 = (r - GT_NG_RTG[k as usize]) / GT_NG_RTG[k as usize]; + if (g < 0.0) { g = 0.0 - g; } + if (g > worst) { worst = g; } + if (k == 13) { at075 = r; } + k = k + 1; + } + assert(at075 > 2461.0); + assert(at075 < 2461.1); + assert(worst > 0.323); + assert(worst < 0.324); + assert(worst > 3.0 * GT_B_REL); +} diff --git a/specs/analog/mos_psp103_vsb_data.t27 b/specs/analog/mos_psp103_vsb_data.t27 new file mode 100644 index 0000000000..d23d18658a --- /dev/null +++ b/specs/analog/mos_psp103_vsb_data.t27 @@ -0,0 +1,4649 @@ +// SPDX-License-Identifier: Apache-2.0 +; specs/analog/mos_psp103_vsb_data.t27 -- the IHP SG13G2 PSP103 current tables with a source-to-bulk axis, corner mos_tt, 27 C: data, the accessors and the tests of the data +; M3e of the analog emulation epic (#10486, issue #11283). The log-domain tables of mos_psp103_data.t27 (TT_LG_N, TT_LG_P) are Id(Vgs, Vds) of sg13_lv_nmos (W 1.0 um, L 0.45 um) and +; sg13_lv_pmos (W 3.0 um, L 0.45 um) with each bulk tied to its source, so they hold no body effect. A transmission gate has its bulks on the rails (the NMOS on ground, the PMOS on +; the supply) and conducts with its sources between them: while it conducts at 0.75 V the NMOS source is 0.75 V above its bulk and the PMOS source 0.75 V below its bulk, which raises +; both thresholds, and ngspice's real cell is 30 percent above the tables' Ron (mos_psp103_gates.t27, accept_tgate.cir). This file adds the missing axis: the same two tables at +; six more source-to-bulk voltages Vsb = 0.25, 0.5, .. 1.5 V (the slices 1 .. 6; the slice 0 is the existing 2-D table, which is the Vsb = 0 case, so the read at Vsb = 0 is the 2-D +; read bit for bit). The read is in mos_table.t27 (`lg_fine_vsb`, the log word blended between two slices); the accessors here pick the two slices around a Vsb. +; - +; WHERE THE NUMBERS COME FROM. ngspice-47 and the IHP-Open-PDK checkout at commit 21133f219b1a6da10d803e345761e77415ceff40 (cornerMOSlv.lib, PSP 103.6, section mos_tt, psp103.osdi from +; the same commit), 27 C, on the reference host (a container, 2 threads), 2026-10-20, one deck run twice (46 s and 48 s; the data rows of the two logs are identical): specs/analog/decks/psp103_idpa_vsb_tt.cir, psp103_idpa_tt.cir with the +; bulk of each device on its own source of voltage: the NMOS bulk at -Vsb (its source at 0 V), the PMOS bulk at 1.5 V + Vsb (its source at the 1.5 V rail). Vsb is a reverse bias +; for both, a magnitude. The grid, the gate scale s(Vgs) (the tt one, the same at every Vsb, so rv is a function of Vgs only), the encoding (log2(Id / F) in 1/65536 of an octave over +; IUNIT = 1.164 pA, the Vds = 0 column the limit s_eff * gds0) are those of TT_LG_N and TT_LG_P: a slice is a table of 4851 words (the tag word 4294967295, 4753 log words +; at ix * 49 + iy, 97 rv words) that the 2-D reader reads as it reads TT_LG_N. The six slices of the NMOS are VSB_N1 .. VSB_N6 and of the PMOS VSB_P1 .. VSB_P6. The deck also prints +; the slice 0 (Vsb = 0 with the bulk as a node of its own): it agrees with TT_LG_N and TT_LG_P in all but 4 and 3 of 4753 words, by at most 3 and 1 words (3 / 65536 of an octave is +; 0.003 percent of a current), the solver noise of two netlists at reltol 1e-6; it is not pasted, so the accessors take the existing tables for the slice 0. +; - +; THE AXIS. Seven slices 0.25 V apart over 0 .. 1.5 V: the count is what the transmission gate's Ron needs, measured before it was chosen (the same data read with 4 slices, 0.5 V apart, +; is within 0.29 percent of ngspice's real cell at the worst of 27 points, with 7 within 0.09 percent; with 3 (0.75 V apart) 0.58 percent; the bar is 10 percent), and the held-out +; currents between slices keep the read to 2.5 percent (7 slices), 5.8 percent (4) and 14 percent (3): a chord of the log word over a slice is exact where the threshold moves linearly +; with Vsb and is not where it bends (the square-root law is steepest near Vsb = 0). The three counts were read off the same printed tables with a floating-point twin of the reader, +; a scratch run outside the repository, and the integer read of mos_table.t27 is what the tests of mos_psp103_gates.t27 judge. +; - +; THE HELD-OUT POINTS are 1000 currents in pA (nint(Id * 1e12)) at centres of the cells of the 3-D grid, the places a chord of it is worst: point k = 1 .. 1000 is +; Vgs = (floor(96 frac(k a1)) + 1/2) * 15.625 mV, Vds = (floor(48 frac(k a2)) + 1/2) * 31.25 mV, Vsb = (floor(6 frac(k a3)) + 1/2) * 0.25 V (so Vsb is halfway between two slices: +; 0.125, 0.375, .. 1.375 V), a1, a2, a3 = R3_A1, R3_A2, R3_A3 (the 3-D R sequence, 1 / g, 1 / g^2 and 1 / g^3 for g^4 = g + 1). VSB_CEN_N and VSB_CEN_P. They were not used to make a +; table. The pins fail on any changed number. +; - +; WHAT A PASS SAYS. The numbers in this file are the numbers the deck printed, in order (the pins); the slices are tables of the format the 2-D reader reads; the rv words are the +; same in every slice; the current of a device falls with Vsb at every node above Vgs = 0.25 V; and the read at Vsb = 0 is the 2-D read of the existing table. WHAT IT DOES NOT SAY. +; That the interpolation along Vsb is accurate (mos_psp103_gates.t27 judges it against the held-out currents and the real tgate), anything about another corner, temperature, W, L or m, +; the leakage floor of the off state (a log word below 1 IUNIT is held at 0, so the PMOS off current at Vsb above 0.5 V is a floor, and the junction leakage that rises with Vsb is +; not resolved below it), or a bulk forward-biased against its source (Vsb below 0). The model is a TABLE MODEL of PSP103, not PSP103. ASCII only, English only. +; phi^2 + 1/phi^2 = 3 | TRINITY + +module AnalogMosPsp103VsbData; + +use analog::mos_table::{lg_fine, lg_fine_vsb, lg_vsb_cell, lg_vsb_frac, LG_TAG}; +use analog::mos_psp103_data::{TT_LG_N, TT_LG_P, fold_arr}; + +; --- what the numbers are ------------------------------------------------------------------------------------------ +pub const KIND : str = "analog-table-data"; +pub const ID : str = "analog/mos_psp103_vsb_data"; +pub const REFERENCE : str = "IHP-Open-PDK ihp-sg13g2 cornerMOSlv.lib (PSP 103.6) through ngspice-47 and OSDI, bulk off the source; deck specs/analog/decks/psp103_idpa_vsb_tt.cir"; +/// The IHP-Open-PDK checkout every number was made from (the commit of M3b's tables). +pub const PDK_COMMIT : str = "21133f219b1a6da10d803e345761e77415ceff40"; +pub const TEMP_C : u32 = 27; +/// The slices along Vsb (slice 0 is the existing 2-D table), 0.25 V apart, and the held-out points. +pub const VSB_NSLICE : u32 = 7; +pub const VSB_STEP_MV : u32 = 250; +pub const VSB_CEN_COUNT : u32 = 1000; +/// The device index of the accessors: the NMOS table, the PMOS table. +pub const DEV_N : u32 = 0; +pub const DEV_P : u32 = 1; +/// The 3-D R sequence of the held-out points: 1 / g, 1 / g^2, 1 / g^3 for g the real root of g^4 = g + 1. +pub const R3_A1 : f64 = 0.8191725133961645; +pub const R3_A2 : f64 = 0.6710436067037893; +pub const R3_A3 : f64 = 0.5497004779019703; + +; --- order-sensitive folds of the pasted numbers (fold_arr of mos_psp103_data.t27) ------------------------------------ +/// The twelve slices in the order VSB_N1 .. VSB_N6, VSB_P1 .. VSB_P6 (4851 words each), and the two held-out sets, NMOS then PMOS. +pub const PIN_VSB_LG : u64 = 0x8643D5629A3C357E; +pub const PIN_VSB_CEN : u64 = 0x061EB2F38AC69E0C; + +; --- the numbers -------------------------------------------------------------------------------------------------------- +/// NMOS log-domain current table, corner mos_tt, IHP-Open-PDK 21133f21, L 0.45 um, 27 C, at the source-to-bulk voltage Vsb = 0.25 V (slice 1): the tag word (4294967295), then the 4753 words ix * 49 + iy of log2(Id / F) in 1/65536 octave over 2^-8 of a linear-table word (1.164 pA), then the 97 rv words; the format of TT_LG_N (deck psp103_idpa_vsb_tt.cir, blocks lam_n_1 and r_1). +pub const VSB_N1 : [4851]u32 = [ + 4294967295, 294260, 294050, 294118, 296253, 299945, 304498, 309335, 314234, 318967, 323562, 327960, 332157, 336159, + 339972, 343607, 347076, 350388, 353555, 356585, 359489, 362275, 364950, 367524, 370001, 372390, 374695, 376923, + 379078, 381165, 383190, 385155, 387065, 388924, 390734, 392500, 394224, 395909, 397559, 399175, 400762, 402321, + 403856, 405372, 406872, 408362, 409861, 411357, 412870, 414413, 340044, 339234, 339430, 341601, 345318, 349895, + 354781, 359682, 364464, 369058, 373479, 377697, 381716, 385546, 389180, 392660, 395983, 399158, 402195, 405104, + 407893, 410570, 413143, 415619, 418003, 420302, 422521, 424666, 426740, 428749, 430697, 432586, 434422, 436214, + 437950, 439641, 441290, 442899, 444472, 446010, 447516, 448993, 450444, 451871, 453279, 454671, 456059, 457441, + 458827, 385875, 384698, 384981, 387186, 390931, 395537, 400454, 405385, 410196, 414829, 419263, 423505, 427536, + 431382, 435049, 438545, 441882, 445070, 448118, 451037, 453834, 456518, 459096, 461575, 463962, 466262, 468480, + 470622, 472693, 474696, 476636, 478517, 480342, 482113, 483835, 485510, 487141, 488730, 490279, 491792, 493270, + 494715, 496134, 497521, 498882, 500221, 501541, 502849, 504147, 431754, 430352, 430698, 432935, 436710, 441349, + 446298, 451261, 456103, 460767, 465228, 469495, 473551, 477419, 481105, 484620, 487974, 491177, 494240, 497171, + 499979, 502673, 505260, 507747, 510140, 512445, 514667, 516813, 518885, 520889, 522829, 524708, 526529, 528297, + 530013, 531681, 533304, 534883, 536421, 537921, 539384, 540812, 542208, 543574, 544911, 546222, 547512, 548776, + 550025, 477676, 476141, 476534, 478801, 482608, 487281, 492264, 497261, 502135, 506829, 511319, 515608, 519693, + 523585, 527292, 530827, 534199, 537419, 540497, 543442, 546264, 548970, 551567, 554064, 556465, 558778, 561008, + 563159, 565237, 567245, 569188, 571070, 572893, 574661, 576378, 578045, 579665, 581241, 582776, 584270, 585727, + 587148, 588535, 589889, 591214, 592510, 593780, 595026, 596249, 523640, 522028, 522458, 524755, 528594, 533301, + 538320, 543351, 548258, 552983, 557504, 561818, 565928, 569843, 573573, 577127, 580518, 583755, 586850, 589810, + 592646, 595364, 597974, 600481, 602893, 605216, 607454, 609613, 611697, 613712, 615661, 617547, 619375, 621147, + 622866, 624536, 626158, 627735, 629269, 630763, 632219, 633638, 635022, 636372, 637692, 638982, 640243, 641479, + 642690, 569641, 567988, 568449, 570776, 574648, 579390, 584443, 589509, 594449, 599205, 603755, 608096, 612232, + 616170, 619922, 623497, 626906, 630161, 633272, 636248, 639097, 641830, 644452, 646971, 649393, 651726, 653973, + 656141, 658234, 660256, 662212, 664105, 665938, 667715, 669439, 671113, 672739, 674319, 675856, 677352, 678809, + 680229, 681614, 682964, 684283, 685571, 686830, 688062, 689267, 615673, 614005, 614495, 616851, 620755, 625531, + 630619, 635719, 640691, 645478, 650057, 654425, 658586, 662548, 666321, 669916, 673344, 676617, 679744, 682735, + 685599, 688345, 690979, 693510, 695944, 698287, 700544, 702721, 704822, 706852, 708816, 710715, 712555, 714339, + 716069, 717747, 719378, 720963, 722504, 724004, 725464, 726887, 728274, 729626, 730946, 732235, 733495, 734726, + 735930, 661726, 660063, 660581, 662965, 666902, 671711, 676834, 681967, 686971, 691787, 696395, 700789, 704974, + 708959, 712753, 716368, 719815, 723105, 726248, 729254, 732132, 734891, 737538, 740081, 742525, 744878, 747145, + 749332, 751442, 753480, 755451, 757358, 759205, 760995, 762731, 764415, 766051, 767641, 769187, 770691, 772156, + 773582, 774972, 776328, 777651, 778943, 780204, 781437, 782642, 707786, 706147, 706694, 709107, 713074, 717917, + 723072, 728237, 733271, 738117, 742752, 747171, 751380, 755386, 759201, 762835, 766300, 769606, 772765, 775785, + 778677, 781448, 784108, 786661, 789117, 791480, 793756, 795952, 798070, 800117, 802095, 804010, 805863, 807660, + 809402, 811092, 812734, 814329, 815880, 817389, 818858, 820288, 821682, 823042, 824368, 825663, 826927, 828163, + 829370, 753828, 752238, 752818, 755259, 759256, 764129, 769315, 774509, 779573, 784445, 789105, 793549, 797779, + 801806, 805640, 809292, 812773, 816095, 819268, 822302, 825207, 827990, 830660, 833225, 835690, 838063, 840348, + 842552, 844679, 846733, 848719, 850640, 852500, 854303, 856051, 857747, 859394, 860994, 862550, 864064, 865537, + 866972, 868370, 869733, 871063, 872361, 873629, 874867, 876078, 799816, 798307, 798927, 801397, 805420, 810321, + 815534, 820755, 825844, 830741, 835424, 839888, 844138, 848183, 852034, 855702, 859198, 862533, 865719, 868766, + 871682, 874476, 877156, 879730, 882205, 884586, 886879, 889091, 891224, 893286, 895278, 897205, 899072, 900880, + 902633, 904335, 905987, 907591, 909152, 910670, 912147, 913586, 914988, 916355, 917688, 918989, 920260, 921501, + 922714, 845689, 844313, 844985, 847482, 851529, 856451, 861687, 866930, 872039, 876956, 881656, 886137, 890404, + 894463, 898328, 902008, 905516, 908863, 912060, 915116, 918041, 920844, 923532, 926114, 928596, 930984, 933284, + 935501, 937641, 939708, 941706, 943638, 945509, 947322, 949080, 950786, 952442, 954051, 955615, 957136, 958617, + 960059, 961464, 962834, 964170, 965474, 966748, 967991, 969207, 891353, 890188, 890933, 893458, 897520, 902457, + 907707, 912963, 918085, 923013, 927725, 932217, 936493, 940562, 944435, 948123, 951639, 954992, 958195, 961258, + 964189, 966997, 969691, 972277, 974764, 977156, 979460, 981682, 983826, 985896, 987897, 989833, 991707, 993523, + 995284, 996992, 998651, 1000262, 1001829, 1003353, 1004836, 1006280, 1007687, 1009059, 1010397, 1011703, 1012978, 1014224, + 1015441, 936660, 935829, 936679, 939232, 943300, 948239, 953489, 958746, 963869, 968797, 973509, 978001, 982278, + 986347, 990220, 993909, 997425, 1000779, 1003983, 1007046, 1009977, 1012786, 1015480, 1018067, 1020554, 1022947, 1025252, + 1027474, 1029618, 1031689, 1033691, 1035627, 1037502, 1039318, 1041079, 1042788, 1044447, 1046059, 1047626, 1049150, 1050634, + 1052078, 1053486, 1054858, 1056197, 1057503, 1058778, 1060024, 1061242, 981811, 981318, 982210, 984726, 988753, 993658, + 998882, 1004117, 1009220, 1014130, 1018826, 1023303, 1027565, 1031621, 1035483, 1039160, 1042666, 1046011, 1049205, 1052260, + 1055184, 1057985, 1060673, 1063254, 1065735, 1068122, 1070422, 1072639, 1074778, 1076845, 1078842, 1080775, 1082646, 1084459, + 1086217, 1087922, 1089578, 1091187, 1092751, 1094273, 1095754, 1097196, 1098601, 1099971, 1101308, 1102612, 1103885, 1105129, + 1106345, 1033350, 1030435, 1029494, 1030840, 1034196, 1038738, 1043764, 1048884, 1053911, 1058765, 1063415, 1067851, 1072077, + 1076100, 1079931, 1083580, 1087060, 1090380, 1093552, 1096585, 1099489, 1102272, 1104943, 1107507, 1109973, 1112346, 1114632, + 1116836, 1118963, 1121018, 1123005, 1124927, 1126788, 1128591, 1130340, 1132037, 1133685, 1135286, 1136842, 1138357, 1139831, + 1141266, 1142665, 1144029, 1145359, 1146658, 1147925, 1149164, 1150374, 1089800, 1082755, 1078562, 1077687, 1079665, 1083400, + 1087959, 1092799, 1097649, 1102378, 1106932, 1111288, 1115444, 1119405, 1123178, 1126775, 1130206, 1133481, 1136610, 1139604, + 1142471, 1145219, 1147857, 1150391, 1152828, 1155174, 1157434, 1159614, 1161718, 1163751, 1165717, 1167619, 1169461, 1171247, + 1172979, 1174659, 1176291, 1177877, 1179419, 1180920, 1182380, 1183803, 1185190, 1186542, 1187861, 1189148, 1190405, 1191633, + 1192834, 1146306, 1135619, 1128125, 1124692, 1124882, 1127439, 1131239, 1135588, 1140106, 1144602, 1148978, 1153193, 1157230, + 1161085, 1164765, 1168276, 1171628, 1174829, 1177891, 1180821, 1183629, 1186321, 1188906, 1191391, 1193781, 1196083, 1198302, + 1200442, 1202509, 1204506, 1206438, 1208308, 1210120, 1211876, 1213580, 1215233, 1216840, 1218401, 1219920, 1221398, 1222836, + 1224238, 1225604, 1226937, 1228237, 1229506, 1230746, 1231957, 1233142, 1200003, 1187007, 1176863, 1171025, 1169318, 1170482, + 1173291, 1176936, 1180950, 1185072, 1189163, 1193151, 1196999, 1200693, 1204231, 1207614, 1210849, 1213944, 1216906, 1219744, + 1222465, 1225077, 1227586, 1229998, 1232321, 1234558, 1236716, 1238799, 1240811, 1242756, 1244638, 1246461, 1248228, 1249941, + 1251603, 1253217, 1254786, 1256311, 1257794, 1259238, 1260645, 1262016, 1263352, 1264656, 1265928, 1267170, 1268384, 1269570, + 1270730, 1249603, 1235652, 1223717, 1215858, 1212341, 1212047, 1213728, 1216513, 1219868, 1223482, 1227172, 1230835, 1234415, + 1237881, 1241220, 1244428, 1247504, 1250455, 1253284, 1255998, 1258603, 1261107, 1263514, 1265831, 1268063, 1270215, 1272291, + 1274297, 1276236, 1278111, 1279927, 1281686, 1283392, 1285047, 1286654, 1288214, 1289732, 1291208, 1292644, 1294043, 1295406, + 1296734, 1298030, 1299294, 1300528, 1301734, 1302912, 1304064, 1305191, 1294670, 1280833, 1267950, 1258537, 1253402, 1251689, + 1252199, 1254036, 1256630, 1259629, 1262820, 1266072, 1269307, 1272480, 1275564, 1278548, 1281424, 1284193, 1286856, 1289417, + 1291880, 1294250, 1296533, 1298732, 1300853, 1302899, 1304876, 1306787, 1308635, 1310425, 1312158, 1313839, 1315469, 1317052, + 1318590, 1320084, 1321538, 1322953, 1324330, 1325672, 1326980, 1328256, 1329500, 1330715, 1331902, 1333062, 1334195, 1335304, + 1336389, 1335233, 1322215, 1309120, 1298638, 1292134, 1289106, 1288469, 1289337, 1291121, 1293445, 1296071, 1298848, 1301681, + 1304507, 1307291, 1310009, 1312650, 1315206, 1317676, 1320059, 1322358, 1324575, 1326715, 1328779, 1330773, 1332700, 1334563, + 1336365, 1338110, 1339801, 1341440, 1343030, 1344574, 1346074, 1347532, 1348950, 1350330, 1351674, 1352983, 1354259, 1355503, + 1356717, 1357902, 1359060, 1360191, 1361297, 1362378, 1363436, 1364472, 1371590, 1359767, 1347036, 1335956, 1328356, 1324159, + 1322447, 1322373, 1323345, 1324975, 1327007, 1329275, 1331669, 1334116, 1336568, 1338994, 1341374, 1343696, 1345953, 1348142, + 1350262, 1352313, 1354297, 1356217, 1358074, 1359871, 1361611, 1363297, 1364931, 1366515, 1368053, 1369546, 1370997, 1372407, + 1373779, 1375114, 1376414, 1377681, 1378916, 1380120, 1381295, 1382442, 1383562, 1384657, 1385727, 1386774, 1387798, 1388800, + 1389782, 1404168, 1393670, 1381698, 1370449, 1362042, 1356843, 1354155, 1353198, 1353390, 1354338, 1355777, 1357529, 1359472, + 1361525, 1363630, 1365748, 1367854, 1369930, 1371964, 1373950, 1375883, 1377762, 1379585, 1381355, 1383071, 1384735, 1386349, + 1387915, 1389436, 1390912, 1392345, 1393739, 1395094, 1396412, 1397696, 1398946, 1400164, 1401351, 1402509, 1403639, 1404743, + 1405820, 1406873, 1407903, 1408910, 1409895, 1410859, 1411804, 1412729, 1433430, 1424235, 1413250, 1402194, 1393264, 1387242, + 1383692, 1381928, 1381393, 1381693, 1382559, 1383806, 1385304, 1386963, 1388719, 1390527, 1392355, 1394181, 1395989, 1397769, + 1399513, 1401218, 1402881, 1404500, 1406076, 1407608, 1409097, 1410545, 1411952, 1413321, 1414652, 1415947, 1417208, 1418436, + 1419632, 1420798, 1421934, 1423043, 1424125, 1425182, 1426214, 1427223, 1428209, 1429174, 1430118, 1431042, 1431947, 1432833, + 1433702, 1459823, 1451828, 1441920, 1431334, 1422152, 1415490, 1411199, 1408713, 1407510, 1407208, 1407534, 1408299, 1409368, + 1410645, 1412060, 1413562, 1415116, 1416695, 1418279, 1419855, 1421413, 1422947, 1424451, 1425923, 1427361, 1428764, 1430132, + 1431464, 1432763, 1434028, 1435260, 1436461, 1437631, 1438771, 1439884, 1440969, 1442027, 1443061, 1444070, 1445056, 1446020, + 1446962, 1447884, 1448786, 1449669, 1450534, 1451381, 1452211, 1453025, 1483741, 1476812, 1467979, 1458050, 1448860, 1441739, + 1436829, 1433706, 1431903, 1431048, 1430873, 1431186, 1431849, 1432761, 1433848, 1435056, 1436344, 1437682, 1439048, 1440425, + 1441802, 1443169, 1444519, 1445848, 1447153, 1448431, 1449683, 1450905, 1452100, 1453266, 1454404, 1455515, 1456599, 1457657, + 1458690, 1459699, 1460684, 1461647, 1462587, 1463507, 1464406, 1465286, 1466147, 1466989, 1467815, 1468624, 1469416, 1470193, + 1470956, 1505529, 1499530, 1491710, 1482545, 1473551, 1466147, 1460738, 1457065, 1454724, 1453368, 1452733, 1452627, 1452909, + 1453477, 1454253, 1455179, 1456212, 1457319, 1458475, 1459660, 1460861, 1462067, 1463268, 1464460, 1465637, 1466797, 1467936, + 1469054, 1470150, 1471223, 1472272, 1473298, 1474302, 1475283, 1476241, 1477179, 1478095, 1478991, 1479868, 1480725, 1481564, + 1482386, 1483190, 1483978, 1484750, 1485506, 1486248, 1486976, 1487690, 1525473, 1520277, 1513382, 1505022, 1496383, 1488860, + 1483071, 1478931, 1476116, 1474308, 1473252, 1472760, 1472689, 1472935, 1473417, 1474077, 1474868, 1475754, 1476708, 1477710, + 1478742, 1479793, 1480851, 1481911, 1482966, 1484012, 1485045, 1486063, 1487065, 1488049, 1489015, 1489962, 1490889, 1491798, + 1492687, 1493558, 1494411, 1495245, 1496062, 1496862, 1497646, 1498413, 1499165, 1499902, 1500625, 1501333, 1502028, 1502710, + 1503379, 1543823, 1539317, 1533250, 1525688, 1517516, 1510019, 1503965, 1499440, 1496210, 1493997, 1492559, 1491712, 1491314, + 1491260, 1491468, 1491876, 1492437, 1493113, 1493876, 1494701, 1495572, 1496474, 1497396, 1498329, 1499267, 1500203, 1501135, + 1502058, 1502971, 1503871, 1504757, 1505629, 1506485, 1507326, 1508151, 1508959, 1509752, 1510530, 1511292, 1512039, 1512771, + 1513489, 1514192, 1514883, 1515560, 1516224, 1516876, 1517516, 1518144, 1560775, 1556862, 1551527, 1544726, 1537091, 1529745, + 1523536, 1518705, 1515120, 1512546, 1510763, 1509591, 1508892, 1508559, 1508510, 1508683, 1509027, 1509504, 1510084, 1510742, + 1511458, 1512218, 1513008, 1513820, 1514645, 1515477, 1516312, 1517144, 1517972, 1518792, 1519603, 1520404, 1521193, 1521969, + 1522733, 1523484, 1524221, 1524945, 1525656, 1526354, 1527039, 1527710, 1528370, 1529017, 1529652, 1530276, 1530888, 1531489, + 1532080, 1576506, 1573106, 1568413, 1562319, 1555253, 1548156, 1541894, 1536834, 1532950, 1530059, 1527964, 1526496, 1525519, + 1524928, 1524640, 1524591, 1524731, 1525020, 1525426, 1525924, 1526492, 1527116, 1527780, 1528476, 1529193, 1529925, 1530665, + 1531411, 1532157, 1532901, 1533640, 1534373, 1535098, 1535814, 1536521, 1537217, 1537902, 1538576, 1539239, 1539891, 1540531, + 1541160, 1541778, 1542386, 1542982, 1543568, 1544144, 1544710, 1545267, 1591151, 1588194, 1584064, 1578616, 1572125, 1565352, + 1559128, 1553915, 1549786, 1546619, 1544246, 1542509, 1541277, 1540446, 1539935, 1539679, 1539627, 1539738, 1539980, 1540325, + 1540753, 1541247, 1541791, 1542374, 1542987, 1543623, 1544274, 1544935, 1545603, 1546274, 1546944, 1547612, 1548276, 1548935, + 1549587, 1550231, 1550867, 1551494, 1552112, 1552720, 1553319, 1553909, 1554488, 1555059, 1555619, 1556171, 1556713, 1557246, + 1557771, 1604838, 1602265, 1598628, 1593764, 1587833, 1581434, 1575327, 1570031, 1565711, 1562308, 1559687, 1557706, 1556240, + 1555188, 1554469, 1554020, 1553787, 1553730, 1553816, 1554017, 1554310, 1554679, 1555107, 1555583, 1556097, 1556639, 1557204, + 1557784, 1558377, 1558977, 1559581, 1560187, 1560792, 1561396, 1561995, 1562590, 1563179, 1563761, 1564336, 1564904, 1565464, + 1566016, 1566559, 1567095, 1567622, 1568141, 1568652, 1569155, 1569651, 1617667, 1615430, 1612226, 1607886, 1602488, 1596490, + 1590564, 1585252, 1580793, 1577194, 1574355, 1572153, 1570473, 1569217, 1568305, 1567674, 1567272, 1567057, 1566995, 1567058, + 1567224, 1567473, 1567790, 1568163, 1568580, 1569033, 1569514, 1570017, 1570536, 1571068, 1571608, 1572154, 1572703, 1573253, + 1573802, 1574349, 1574893, 1575432, 1575967, 1576496, 1577019, 1577535, 1578045, 1578548, 1579043, 1579532, 1580014, 1580489, + 1580956, 1629727, 1627785, 1624960, 1621089, 1616189, 1610603, 1604909, 1599639, 1595092, 1591335, 1588308, 1585909, 1584033, + 1582589, 1581498, 1580697, 1580136, 1579771, 1579569, 1579502, 1579545, 1579680, 1579892, 1580165, 1580490, 1580856, 1581256, + 1581683, 1582132, 1582598, 1583076, 1583564, 1584058, 1584556, 1585057, 1585558, 1586058, 1586557, 1587052, 1587544, 1588031, + 1588514, 1588991, 1589463, 1589929, 1590389, 1590843, 1591291, 1591733, 1641093, 1639410, 1636921, 1633467, 1629029, 1623854, + 1618426, 1613251, 1608663, 1604785, 1601598, 1599024, 1596972, 1595354, 1594097, 1593138, 1592427, 1591921, 1591587, 1591395, + 1591322, 1591348, 1591457, 1591635, 1591871, 1592154, 1592476, 1592830, 1593210, 1593611, 1594029, 1594460, 1594902, 1595350, + 1595803, 1596260, 1596718, 1597177, 1597634, 1598090, 1598543, 1598993, 1599439, 1599881, 1600319, 1600751, 1601179, 1601602, + 1602019, 1651827, 1650374, 1648182, 1645101, 1641085, 1636310, 1631171, 1626134, 1621550, 1617588, 1614270, 1611543, 1609332, + 1607555, 1606144, 1605037, 1604186, 1603547, 1603087, 1602778, 1602594, 1602516, 1602527, 1602614, 1602763, 1602966, 1603212, + 1603496, 1603809, 1604148, 1604508, 1604884, 1605273, 1605673, 1606080, 1606494, 1606911, 1607331, 1607752, 1608173, 1608593, + 1609011, 1609427, 1609841, 1610251, 1610657, 1611060, 1611458, 1611852, 1661989, 1660741, 1658812, 1656064, 1652434, 1648041, + 1643204, 1638338, 1633798, 1629787, 1626365, 1623508, 1621154, 1619233, 1617679, 1616435, 1615452, 1614688, 1614110, 1613688, + 1613398, 1613221, 1613139, 1613137, 1613204, 1613329, 1613502, 1613717, 1613966, 1614244, 1614547, 1614869, 1615208, 1615560, + 1615923, 1616294, 1616671, 1617053, 1617439, 1617826, 1618214, 1618601, 1618988, 1619374, 1619758, 1620139, 1620517, 1620892, + 1621264, 1671635, 1670569, 1668874, 1666423, 1663144, 1659112, 1654579, 1649911, 1645449, 1641422, 1637924, 1634956, 1632476, + 1630424, 1628739, 1627367, 1626261, 1625379, 1624689, 1624160, 1623770, 1623497, 1623325, 1623239, 1623226, 1623275, 1623378, + 1623526, 1623713, 1623932, 1624179, 1624449, 1624739, 1625044, 1625363, 1625693, 1626031, 1626376, 1626726, 1627080, 1627436, + 1627794, 1628153, 1628512, 1628869, 1629226, 1629580, 1629933, 1630283, 1680797, 1679894, 1678409, 1676224, 1673264, 1669570, + 1665339, 1660885, 1656532, 1652520, 1648971, 1645915, 1643326, 1641156, 1639351, 1637861, 1636639, 1635647, 1634850, 1634221, + 1633735, 1633371, 1633113, 1632945, 1632855, 1632832, 1632867, 1632950, 1633076, 1633238, 1633431, 1633650, 1633892, 1634152, + 1634428, 1634717, 1635017, 1635326, 1635642, 1635963, 1636289, 1636617, 1636948, 1637280, 1637613, 1637945, 1638277, 1638608, + 1638937, 1689518, 1688763, 1687465, 1685520, 1682848, 1679468, 1675531, 1671303, 1667083, 1663113, 1659539, 1656415, 1653733, + 1651459, 1649545, 1647945, 1646616, 1645520, 1644623, 1643898, 1643320, 1642870, 1642529, 1642284, 1642120, 1642027, 1641995, + 1642016, 1642083, 1642189, 1642329, 1642499, 1642693, 1642909, 1643143, 1643393, 1643655, 1643928, 1644210, 1644500, 1644795, + 1645095, 1645399, 1645705, 1646013, 1646321, 1646631, 1646940, 1647249, 1697837, 1697214, 1696085, 1694355, 1691945, 1688855, + 1685201, 1681204, 1677134, 1673231, 1669656, 1666483, 1663725, 1661359, 1659347, 1657646, 1656217, 1655023, 1654032, 1653216, + 1652551, 1652018, 1651599, 1651278, 1651043, 1650883, 1650787, 1650747, 1650757, 1650809, 1650898, 1651018, 1651167, 1651339, + 1651532, 1651743, 1651968, 1652206, 1652455, 1652714, 1652979, 1653251, 1653527, 1653808, 1654091, 1654377, 1654664, 1654952, + 1655241, 1705785, 1705281, 1704305, 1702768, 1700595, 1697774, 1694389, 1690623, 1686717, 1682901, 1679346, 1676144, 1673325, + 1670880, 1668780, 1666987, 1665465, 1664180, 1663099, 1662198, 1661451, 1660838, 1660343, 1659951, 1659647, 1659421, 1659264, + 1659165, 1659119, 1659118, 1659157, 1659230, 1659334, 1659463, 1659616, 1659788, 1659977, 1660181, 1660398, 1660625, 1660861, + 1661105, 1661355, 1661610, 1661870, 1662133, 1662398, 1662665, 1662934, 1713381, 1712986, 1712147, 1710786, 1708828, 1706254, + 1703123, 1699586, 1695853, 1692142, 1688627, 1685414, 1682550, 1680039, 1677861, 1675985, 1674378, 1673007, 1671843, 1670860, + 1670034, 1669347, 1668780, 1668318, 1667948, 1667660, 1667442, 1667287, 1667187, 1667135, 1667125, 1667152, 1667211, 1667299, + 1667412, 1667547, 1667701, 1667871, 1668055, 1668252, 1668459, 1668676, 1668900, 1669130, 1669366, 1669606, 1669850, 1670097, + 1670346, 1720656, 1720359, 1719646, 1718443, 1716682, 1714334, 1711442, 1708127, 1704573, 1700980, 1697522, 1694316, 1691423, + 1688858, 1686612, 1684661, 1682975, 1681525, 1680283, 1679223, 1678323, 1677564, 1676927, 1676399, 1675967, 1675618, 1675342, + 1675132, 1674979, 1674877, 1674820, 1674802, 1674818, 1674866, 1674940, 1675038, 1675156, 1675293, 1675446, 1675613, 1675791, + 1675981, 1676179, 1676385, 1676597, 1676815, 1677038, 1677264, 1677494, 1727628, 1727421, 1726822, 1725763, 1724181, 1722042, + 1719374, 1716274, 1712900, 1709436, 1706050, 1702867, 1699958, 1697352, 1695049, 1693031, 1691273, 1689750, 1688434, 1687302, + 1686332, 1685504, 1684802, 1684210, 1683717, 1683309, 1682978, 1682715, 1682511, 1682361, 1682257, 1682195, 1682170, 1682177, + 1682213, 1682275, 1682359, 1682464, 1682585, 1682722, 1682873, 1683035, 1683208, 1683390, 1683579, 1683775, 1683977, 1684183, + 1684394, 1734323, 1734198, 1733703, 1732775, 1731355, 1729408, 1726948, 1724054, 1720860, 1717532, 1714231, 1711084, 1708174, + 1705538, 1703188, 1701111, 1699289, 1697699, 1696314, 1695114, 1694077, 1693184, 1692419, 1691767, 1691215, 1690751, 1690366, + 1690051, 1689798, 1689601, 1689452, 1689347, 1689281, 1689249, 1689248, 1689274, 1689325, 1689397, 1689488, 1689596, 1689719, + 1689855, 1690002, 1690160, 1690326, 1690500, 1690681, 1690868, 1691059, 1740759, 1740710, 1740309, 1739501, 1738229, 1736457, + 1734192, 1731494, 1728477, 1725289, 1722083, 1718986, 1716086, 1713433, 1711044, 1708918, 1707038, 1705385, 1703937, 1702673, + 1701573, 1700618, 1699793, 1699083, 1698474, 1697956, 1697520, 1697155, 1696854, 1696610, 1696418, 1696271, 1696165, 1696095, + 1696058, 1696049, 1696067, 1696107, 1696168, 1696247, 1696342, 1696452, 1696575, 1696708, 1696852, 1697005, 1697165, 1697332, + 1697504, 1746937, 1746958, 1746644, 1745946, 1744810, 1743201, 1741117, 1738605, 1735761, 1732717, 1729613, 1726577, 1723700, + 1721040, 1718624, 1716455, 1714525, 1712816, 1711310, 1709987, 1708827, 1707814, 1706932, 1706166, 1705503, 1704934, 1704447, + 1704034, 1703687, 1703399, 1703164, 1702977, 1702832, 1702725, 1702652, 1702609, 1702594, 1702604, 1702635, 1702686, 1702754, + 1702838, 1702936, 1703047, 1703168, 1703299, 1703439, 1703586, 1703740, 1752894, 1752978, 1752744, 1752146, 1751135, 1749674, + 1747758, 1745422, 1742746, 1739845, 1736850, 1733883, 1731040, 1728384, 1725949, 1723746, 1721771, 1720012, 1718452, 1717073, + 1715858, 1714789, 1713853, 1713033, 1712320, 1711700, 1711165, 1710705, 1710314, 1709983, 1709707, 1709479, 1709296, 1709153, + 1709045, 1708969, 1708922, 1708901, 1708903, 1708926, 1708968, 1709027, 1709100, 1709187, 1709286, 1709396, 1709516, 1709643, + 1709779, 1758639, 1758781, 1758620, 1758114, 1757217, 1755893, 1754133, 1751962, 1749447, 1746689, 1743807, 1740917, 1738116, + 1735473, 1733028, 1730799, 1728786, 1726982, 1725373, 1723943, 1722675, 1721554, 1720566, 1719696, 1718933, 1718265, 1717683, + 1717179, 1716744, 1716371, 1716055, 1715789, 1715569, 1715389, 1715248, 1715139, 1715061, 1715010, 1714983, 1714978, 1714994, + 1715027, 1715077, 1715141, 1715218, 1715306, 1715406, 1715514, 1715631, 1764174, 1764369, 1764276, 1763854, 1763062, 1761866, + 1760250, 1758235, 1755875, 1753257, 1750490, 1747684, 1744935, 1742314, 1739868, 1737619, 1735575, 1733732, 1732079, 1730601, + 1729285, 1728115, 1727078, 1726159, 1725349, 1724635, 1724009, 1723461, 1722984, 1722571, 1722215, 1721912, 1721656, 1721442, + 1721267, 1721126, 1721017, 1720937, 1720882, 1720850, 1720840, 1720848, 1720874, 1720915, 1720971, 1721039, 1721118, 1721207, + 1721306, 1769517, 1769763, 1769731, 1769388, 1768692, 1767612, 1766132, 1764263, 1762050, 1759570, 1756920, 1754202, 1751510, + 1748920, 1746480, 1744220, 1742152, 1740275, 1738581, 1737061, 1735699, 1734483, 1733399, 1732435, 1731579, 1730822, 1730152, + 1729562, 1729045, 1728593, 1728199, 1727860, 1727568, 1727321, 1727113, 1726941, 1726802, 1726693, 1726610, 1726552, 1726516, + 1726500, 1726503, 1726521, 1726555, 1726602, 1726662, 1726732, 1726813, 1774670, 1774962, 1774988, 1774717, 1774111, 1773139, + 1771784, 1770053, 1767981, 1765635, 1763101, 1760475, 1757848, 1755295, 1752869, 1750605, 1748518, 1746613, 1744885, 1743326, + 1741922, 1740663, 1739536, 1738529, 1737630, 1736830, 1736119, 1735489, 1734933, 1734443, 1734013, 1733638, 1733312, 1733032, + 1732792, 1732590, 1732422, 1732284, 1732175, 1732090, 1732029, 1731990, 1731969, 1731965, 1731978, 1732005, 1732045, 1732097, + 1732159, 1779662, 1779996, 1780076, 1779871, 1779348, 1778476, 1777236, 1775633, 1773695, 1771478, 1769059, 1766528, 1763970, + 1761460, 1759055, 1756793, 1754694, 1752766, 1751007, 1749412, 1747971, 1746671, 1745503, 1744454, 1743515, 1742674, 1741924, + 1741255, 1740661, 1740134, 1739668, 1739259, 1738900, 1738587, 1738317, 1738085, 1737888, 1737722, 1737586, 1737476, 1737390, + 1737327, 1737283, 1737258, 1737250, 1737256, 1737277, 1737310, 1737354, 1784484, 1784858, 1784987, 1784844, 1784397, 1783618, + 1782487, 1781004, 1779193, 1777100, 1774796, 1772360, 1769875, 1767414, 1765037, 1762783, 1760677, 1758731, 1756947, 1755320, + 1753844, 1752508, 1751301, 1750213, 1749235, 1748356, 1747567, 1746861, 1746231, 1745669, 1745169, 1744726, 1744335, 1743991, + 1743690, 1743429, 1743204, 1743011, 1742849, 1742714, 1742604, 1742517, 1742451, 1742404, 1742375, 1742362, 1742363, 1742378, + 1742405, 1789157, 1789568, 1789743, 1789657, 1789280, 1788587, 1787556, 1786186, 1784495, 1782522, 1780329, 1777989, 1775579, + 1773173, 1770828, 1768588, 1766481, 1764522, 1762717, 1761063, 1759555, 1758184, 1756941, 1755817, 1754802, 1753886, 1753061, + 1752319, 1751653, 1751057, 1750524, 1750048, 1749626, 1749252, 1748921, 1748632, 1748379, 1748160, 1747972, 1747812, 1747678, + 1747568, 1747480, 1747412, 1747362, 1747329, 1747312, 1747308, 1747317, 1793682, 1794127, 1794344, 1794311, 1794000, 1793386, + 1792450, 1791185, 1789607, 1787749, 1785664, 1783420, 1781089, 1778740, 1776433, 1774212, 1772110, 1770143, 1768320, 1766643, + 1765106, 1763704, 1762428, 1761270, 1760219, 1759268, 1758408, 1757632, 1756933, 1756303, 1755738, 1755231, 1754778, 1754374, + 1754015, 1753698, 1753418, 1753173, 1752960, 1752776, 1752619, 1752486, 1752376, 1752287, 1752217, 1752165, 1752128, 1752107, + 1752099, 1798069, 1798545, 1798802, 1798818, 1798569, 1798029, 1797180, 1796014, 1794543, 1792794, 1790815, 1788665, 1786414, + 1784126, 1781861, 1779664, 1777571, 1775601, 1773765, 1772068, 1770506, 1769076, 1767769, 1766578, 1765495, 1764510, 1763618, + 1762809, 1762077, 1761415, 1760819, 1760281, 1759799, 1759366, 1758979, 1758634, 1758328, 1758058, 1757820, 1757612, 1757432, + 1757277, 1757146, 1757036, 1756946, 1756875, 1756820, 1756780, 1756755, 1802320, 1802825, 1803119, 1803181, 1802989, 1802518, + 1801750, 1800678, 1799307, 1797663, 1795786, 1793730, 1791558, 1789334, 1787115, 1784947, 1782867, 1780898, 1779054, 1777341, + 1775758, 1774302, 1772967, 1771746, 1770631, 1769616, 1768691, 1767851, 1767088, 1766396, 1765769, 1765202, 1764691, 1764230, + 1763816, 1763445, 1763113, 1762818, 1762556, 1762325, 1762122, 1761946, 1761794, 1761663, 1761554, 1761463, 1761390, 1761333, + 1761291, 1806456, 1806988, 1807316, 1807420, 1807281, 1806874, 1806182, 1805196, 1803921, 1802376, 1800597, 1798633, 1796541, + 1794382, 1792211, 1790077, 1788014, 1786051, 1784202, 1782475, 1780873, 1779394, 1778034, 1776785, 1775641, 1774596, 1773641, + 1772770, 1771977, 1771256, 1770600, 1770004, 1769465, 1768977, 1768536, 1768139, 1767782, 1767463, 1767177, 1766923, 1766698, + 1766500, 1766327, 1766177, 1766048, 1765939, 1765847, 1765773, 1765713, 1810455, 1811013, 1811373, 1811518, 1811428, 1811081, + 1810460, 1809557, 1808372, 1806922, 1805238, 1803363, 1801352, 1799260, 1797141, 1795042, 1793002, 1791048, 1789198, 1787462, + 1785845, 1784347, 1782963, 1781688, 1780518, 1779444, 1778461, 1777562, 1776740, 1775990, 1775307, 1774684, 1774118, 1773603, + 1773137, 1772715, 1772334, 1771990, 1771682, 1771405, 1771159, 1770940, 1770747, 1770577, 1770429, 1770301, 1770192, 1770100, + 1770024, 1814352, 1814933, 1815323, 1815505, 1815461, 1815170, 1814616, 1813789, 1812689, 1811329, 1809736, 1807949, 1806016, + 1803991, 1801926, 1799866, 1797851, 1795910, 1794063, 1792322, 1790692, 1789176, 1787771, 1786474, 1785278, 1784178, 1783168, + 1782241, 1781392, 1780614, 1779904, 1779254, 1778662, 1778122, 1777630, 1777184, 1776779, 1776412, 1776081, 1775783, 1775515, + 1775276, 1775062, 1774873, 1774706, 1774560, 1774433, 1774324, 1774232, 1818135, 1818739, 1819157, 1819374, 1819372, 1819134, + 1818642, 1817887, 1816867, 1815593, 1814087, 1812385, 1810530, 1808573, 1806563, 1804546, 1802559, 1800635, 1798793, 1797049, + 1795411, 1793880, 1792457, 1791138, 1789919, 1788794, 1787758, 1786806, 1785930, 1785127, 1784390, 1783715, 1783097, 1782532, + 1782017, 1781546, 1781118, 1780729, 1780376, 1780056, 1779767, 1779508, 1779275, 1779066, 1778881, 1778717, 1778573, 1778447, + 1778339, 1821806, 1822430, 1822874, 1823124, 1823163, 1822974, 1822541, 1821854, 1820909, 1819717, 1818295, 1816675, 1814898, + 1813009, 1811055, 1809082, 1807127, 1805222, 1803390, 1801647, 1800002, 1798460, 1797021, 1795683, 1794442, 1793295, 1792235, + 1791258, 1790358, 1789530, 1788768, 1788068, 1787426, 1786837, 1786298, 1785805, 1785354, 1784943, 1784568, 1784228, 1783919, + 1783639, 1783387, 1783160, 1782957, 1782775, 1782614, 1782472, 1782348, 1825387, 1826031, 1826499, 1826779, 1826856, 1826713, + 1826335, 1825711, 1824838, 1823722, 1822380, 1820840, 1819138, 1817317, 1815420, 1813493, 1811572, 1809689, 1807870, 1806130, + 1804482, 1802930, 1801477, 1800122, 1798862, 1797693, 1796611, 1795610, 1794686, 1793834, 1793048, 1792325, 1791659, 1791047, + 1790485, 1789969, 1789496, 1789063, 1788668, 1788307, 1787978, 1787679, 1787408, 1787162, 1786941, 1786742, 1786564, 1786406, + 1786266, 1828868, 1829529, 1830020, 1830329, 1830441, 1830342, 1830015, 1829451, 1828645, 1827603, 1826338, 1824875, 1823246, + 1821492, 1819653, 1817773, 1815888, 1814031, 1812227, 1810493, 1808844, 1807285, 1805821, 1804451, 1803173, 1801985, 1800882, + 1799860, 1798913, 1798038, 1797229, 1796483, 1795794, 1795160, 1794575, 1794038, 1793544, 1793090, 1792674, 1792293, 1791945, + 1791627, 1791337, 1791074, 1790835, 1790619, 1790424, 1790250, 1790094, 1832260, 1832938, 1833451, 1833786, 1833932, 1833872, + 1833594, 1833086, 1832344, 1831372, 1830180, 1828790, 1827233, 1825545, 1823765, 1821933, 1820086, 1818256, 1816470, 1814746, + 1813098, 1811535, 1810061, 1808678, 1807385, 1806178, 1805056, 1804013, 1803045, 1802148, 1801317, 1800549, 1799838, 1799182, + 1798576, 1798017, 1797502, 1797028, 1796592, 1796192, 1795824, 1795488, 1795180, 1794899, 1794643, 1794410, 1794199, 1794009, + 1793838, 1835564, 1836258, 1836791, 1837151, 1837328, 1837306, 1837074, 1836619, 1835937, 1835031, 1833909, 1832590, 1831103, + 1829480, 1827758, 1825975, 1824168, 1822368, 1820601, 1818888, 1817245, 1815680, 1814199, 1812805, 1811497, 1810275, 1809134, + 1808072, 1807084, 1806166, 1805315, 1804525, 1803793, 1803116, 1802489, 1801910, 1801375, 1800881, 1800425, 1800005, 1799619, + 1799264, 1798939, 1798640, 1798368, 1798119, 1797892, 1797686, 1797499, 1838781, 1839489, 1840040, 1840425, 1840631, 1840645, + 1840455, 1840051, 1839426, 1838582, 1837527, 1836277, 1834858, 1833298, 1831634, 1829902, 1828135, 1826366, 1824622, 1822923, + 1821286, 1819721, 1818236, 1816833, 1815513, 1814276, 1813118, 1812038, 1811031, 1810094, 1809223, 1808413, 1807661, 1806963, + 1806317, 1805717, 1805163, 1804649, 1804175, 1803736, 1803332, 1802959, 1802616, 1802301, 1802012, 1801746, 1801504, 1801283, + 1801081, 1841923, 1842645, 1843213, 1843620, 1843853, 1843901, 1843752, 1843394, 1842823, 1842039, 1841047, 1839864, 1838509, + 1837012, 1835406, 1833723, 1831998, 1830262, 1828542, 1826859, 1825231, 1823669, 1822180, 1820770, 1819440, 1818189, 1817017, + 1815920, 1814895, 1813939, 1813048, 1812219, 1811448, 1810731, 1810064, 1809446, 1808872, 1808340, 1807847, 1807390, 1806968, + 1806578, 1806218, 1805886, 1805580, 1805299, 1805041, 1804805, 1804588, 1844977, 1845712, 1846297, 1846724, 1846984, 1847064, + 1846952, 1846640, 1846120, 1845392, 1844462, 1843341, 1842050, 1840615, 1839065, 1837433, 1835751, 1834049, 1832355, 1830691, + 1829073, 1827515, 1826026, 1824611, 1823272, 1822010, 1820824, 1819711, 1818670, 1817697, 1816788, 1815941, 1815151, 1814415, + 1813730, 1813093, 1812501, 1811950, 1811439, 1810965, 1810526, 1810119, 1809742, 1809394, 1809072, 1808775, 1808502, 1808251, + 1808020, 1847956, 1848703, 1849304, 1849751, 1850035, 1850145, 1850070, 1849800, 1849329, 1848655, 1847782, 1846723, 1845493, + 1844117, 1842623, 1841042, 1839403, 1837737, 1836071, 1834426, 1832821, 1831270, 1829782, 1828363, 1827017, 1825745, 1824547, + 1823421, 1822364, 1821375, 1820449, 1819584, 1818776, 1818022, 1817319, 1816664, 1816054, 1815486, 1814958, 1814467, 1814010, + 1813587, 1813194, 1812829, 1812492, 1812180, 1811892, 1811626, 1811382, 1850876, 1851634, 1852249, 1852714, 1853021, 1853159, + 1853118, 1852887, 1852462, 1851839, 1851022, 1850020, 1848850, 1847532, 1846093, 1844561, 1842966, 1841336, 1839699, 1838075, + 1836485, 1834942, 1833457, 1832036, 1830685, 1829404, 1828195, 1827056, 1825985, 1824980, 1824038, 1823156, 1822331, 1821560, + 1820840, 1820167, 1819539, 1818954, 1818409, 1817901, 1817428, 1816988, 1816579, 1816199, 1815846, 1815519, 1815216, 1814936, + 1814678, 1853707, 1854475, 1855104, 1855587, 1855916, 1856081, 1856072, 1855880, 1855498, 1854924, 1854160, 1853215, 1852102, + 1850841, 1849456, 1847974, 1846423, 1844831, 1843223, 1841623, 1840049, 1838517, 1837036, 1835616, 1834261, 1832974, 1831755, + 1830604, 1829520, 1828501, 1827544, 1826647, 1825806, 1825018, 1824281, 1823592, 1822948, 1822346, 1821784, 1821260, 1820771, + 1820315, 1819891, 1819496, 1819128, 1818787, 1818470, 1818176, 1817903, 1856492, 1857270, 1857912, 1858411, 1858760, 1858951, + 1858972, 1858815, 1858474, 1857946, 1857232, 1856340, 1855282, 1854076, 1852743, 1851310, 1849803, 1848249, 1846672, 1845097, + 1843540, 1842019, 1840545, 1839126, 1837769, 1836476, 1835249, 1834088, 1832992, 1831959, 1830988, 1830075, 1829219, 1828415, + 1827662, 1826957, 1826296, 1825678, 1825100, 1824560, 1824055, 1823584, 1823144, 1822734, 1822352, 1821996, 1821665, 1821357, + 1821071, 1859204, 1859991, 1860644, 1861159, 1861528, 1861742, 1861791, 1861669, 1861367, 1860883, 1860217, 1859377, 1858372, + 1857219, 1855938, 1854553, 1853090, 1851574, 1850030, 1848480, 1846943, 1845435, 1843969, 1842553, 1841195, 1839898, 1838664, + 1837494, 1836387, 1835342, 1834358, 1833431, 1832559, 1831741, 1830972, 1830251, 1829575, 1828942, 1828348, 1827793, 1827273, + 1826786, 1826332, 1825907, 1825510, 1825140, 1824795, 1824474, 1824175, 1861856, 1862651, 1863316, 1863845, 1864232, 1864468, + 1864545, 1864455, 1864190, 1863748, 1863128, 1862337, 1861383, 1860282, 1859051, 1857715, 1856295, 1854817, 1853306, 1851782, + 1850266, 1848773, 1847316, 1845905, 1844547, 1843247, 1842008, 1840830, 1839713, 1838657, 1837660, 1836720, 1835835, 1835002, + 1834219, 1833483, 1832792, 1832143, 1831535, 1830964, 1830429, 1829928, 1829459, 1829020, 1828609, 1828225, 1827867, 1827532, + 1827220, 1864433, 1865236, 1865912, 1866455, 1866860, 1867118, 1867221, 1867161, 1866932, 1866529, 1865954, 1865210, 1864306, + 1863255, 1862074, 1860785, 1859409, 1857970, 1856492, 1854996, 1853502, 1852025, 1850579, 1849175, 1847819, 1846518, 1845275, + 1844090, 1842965, 1841899, 1840891, 1839938, 1839040, 1838194, 1837396, 1836646, 1835941, 1835278, 1834655, 1834070, 1833521, + 1833006, 1832523, 1832070, 1831646, 1831248, 1830877, 1830529, 1830204, 1866966, 1867776, 1868462, 1869018, 1869439, 1869717, + 1869845, 1869814, 1869618, 1869254, 1868721, 1868022, 1867165, 1866163, 1865030, 1863786, 1862453, 1861054, 1859609, 1858142, + 1856670, 1855210, 1853777, 1852380, 1851028, 1849727, 1848480, 1847290, 1846157, 1845082, 1844063, 1843099, 1842189, 1841329, + 1840519, 1839755, 1839035, 1838358, 1837721, 1837122, 1836559, 1836030, 1835533, 1835067, 1834629, 1834219, 1833834, 1833474, + 1833136, 1869439, 1870257, 1870952, 1871520, 1871956, 1872254, 1872404, 1872401, 1872237, 1871910, 1871417, 1870761, 1869950, + 1868995, 1867909, 1866710, 1865420, 1864059, 1862649, 1861210, 1859762, 1858321, 1856901, 1855513, 1854166, 1852866, 1851617, + 1850423, 1849284, 1848200, 1847172, 1846197, 1845275, 1844403, 1843580, 1842803, 1842070, 1841380, 1840729, 1840117, 1839540, + 1838998, 1838487, 1838008, 1837557, 1837134, 1836736, 1836363, 1836014, 1871869, 1872692, 1873396, 1873976, 1874427, 1874742, + 1874914, 1874937, 1874804, 1874510, 1874056, 1873442, 1872675, 1871764, 1870723, 1869569, 1868321, 1866998, 1865622, 1864213, + 1862789, 1861367, 1859962, 1858584, 1857243, 1855945, 1854696, 1853498, 1852353, 1851262, 1850225, 1849241, 1848307, 1847424, + 1846588, 1845799, 1845053, 1844350, 1843686, 1843060, 1842470, 1841915, 1841391, 1840899, 1840435, 1839999, 1839589, 1839204, + 1838842, 1874239, 1875068, 1875780, 1876371, 1876835, 1877168, 1877361, 1877409, 1877304, 1877044, 1876626, 1876052, 1875327, + 1874461, 1873464, 1872353, 1871146, 1869862, 1868520, 1867141, 1865742, 1864341, 1862951, 1861584, 1860250, 1858956, 1857708, + 1856508, 1855358, 1854261, 1853216, 1852222, 1851279, 1850385, 1849538, 1848737, 1847979, 1847263, 1846586, 1845948, 1845345, + 1844777, 1844241, 1843735, 1843259, 1842811, 1842389, 1841992, 1841618, 1876566, 1877400, 1878120, 1878720, 1879198, 1879547, + 1879760, 1879831, 1879754, 1879525, 1879142, 1878606, 1877922, 1877097, 1876144, 1875075, 1873908, 1872662, 1871355, 1870006, + 1868633, 1867253, 1865879, 1864525, 1863199, 1861909, 1860662, 1859461, 1858308, 1857206, 1856153, 1855151, 1854199, 1853294, + 1852436, 1851623, 1850854, 1850126, 1849437, 1848786, 1848171, 1847590, 1847042, 1846524, 1846036, 1845576, 1845142, 1844732, + 1844347, 1878832, 1879672, 1880399, 1881009, 1881499, 1881864, 1882096, 1882189, 1882139, 1881940, 1881590, 1881091, 1880447, + 1879663, 1878751, 1877724, 1876597, 1875388, 1874116, 1872797, 1871451, 1870093, 1868737, 1867396, 1866079, 1864796, 1863551, + 1862350, 1861195, 1860088, 1859030, 1858020, 1857059, 1856145, 1855277, 1854454, 1853673, 1852933, 1852233, 1851570, 1850943, + 1850351, 1849790, 1849261, 1848761, 1848289, 1847843, 1847422, 1847026, 1881055, 1881900, 1882633, 1883253, 1883755, 1884134, + 1884384, 1884499, 1884473, 1884303, 1883986, 1883522, 1882915, 1882171, 1881300, 1880313, 1879225, 1878054, 1876815, 1875528, + 1874208, 1872872, 1871535, 1870208, 1868902, 1867625, 1866384, 1865184, 1864028, 1862917, 1861854, 1860837, 1859868, 1858946, + 1858068, 1857234, 1856443, 1855693, 1854981, 1854307, 1853668, 1853064, 1852492, 1851951, 1851440, 1850956, 1850499, 1850067, + 1849660, 1883235, 1884084, 1884824, 1885452, 1885965, 1886358, 1886625, 1886760, 1886759, 1886616, 1886330, 1885900, 1885329, + 1884623, 1883791, 1882843, 1881794, 1880659, 1879454, 1878198, 1876905, 1875593, 1874274, 1872962, 1871668, 1870399, 1869163, + 1867964, 1866807, 1865694, 1864626, 1863604, 1862628, 1861697, 1860810, 1859967, 1859166, 1858405, 1857682, 1856997, 1856348, + 1855732, 1855149, 1854597, 1854074, 1853579, 1853111, 1852668, 1852250, 1885372, 1886224, 1886970, 1887606, 1888129, 1888536, + 1888819, 1888974, 1888995, 1888879, 1888622, 1888224, 1887688, 1887019, 1886225, 1885315, 1884304, 1883205, 1882034, 1880808, + 1879543, 1878254, 1876956, 1875660, 1874377, 1873117, 1871886, 1870690, 1869534, 1868419, 1867347, 1866320, 1865337, 1864399, + 1863504, 1862652, 1861841, 1861070, 1860337, 1859642, 1858981, 1858355, 1857761, 1857198, 1856664, 1856158, 1855679, 1855226, + 1854797, 1887465, 1888321, 1889072, 1889716, 1890249, 1890668, 1890967, 1891140, 1891183, 1891092, 1890863, 1890497, 1889994, + 1889361, 1888603, 1887731, 1886756, 1885693, 1884556, 1883361, 1882123, 1880858, 1879580, 1878300, 1877031, 1875780, 1874556, + 1873364, 1872208, 1871092, 1870018, 1868987, 1867998, 1867053, 1866151, 1865290, 1864470, 1863689, 1862947, 1862241, 1861571, + 1860934, 1860329, 1859755, 1859211, 1858695, 1858205, 1857741, 1857302, 1889514, 1890373, 1891130, 1891781, 1892324, 1892755, + 1893069, 1893260, 1893324, 1893256, 1893054, 1892718, 1892248, 1891649, 1890927, 1890091, 1889152, 1888124, 1887020, 1885855, + 1884645, 1883405, 1882147, 1880885, 1879630, 1878389, 1877173, 1875985, 1874832, 1873716, 1872639, 1871604, 1870611, 1869660, + 1868750, 1867882, 1867053, 1866264, 1865512, 1864796, 1864116, 1863469, 1862854, 1862270, 1861715, 1861189, 1860689, 1860215, + 1859765, 1891520, 1892382, 1893144, 1893802, 1894354, 1894796, 1895124, 1895332, 1895416, 1895371, 1895196, 1894888, 1894450, + 1893884, 1893196, 1892396, 1891492, 1890498, 1889427, 1888293, 1887111, 1885895, 1884659, 1883415, 1882174, 1880945, 1879736, + 1878554, 1877404, 1876288, 1875211, 1874173, 1873176, 1872219, 1871303, 1870427, 1869591, 1868793, 1868032, 1867307, 1866617, + 1865961, 1865336, 1864742, 1864177, 1863641, 1863131, 1862647, 1862188, 1893501, 1894366, 1895132, 1895796, 1896356, 1896809, + 1897150, 1897374, 1897477, 1897454, 1897303, 1897023, 1896614, 1896080, 1895426, 1894659, 1893790, 1892830, 1891791, 1890687, + 1889533, 1888341, 1887127, 1885901, 1884675, 1883458, 1882258, 1881082, 1879935, 1878821, 1877743, 1876703, 1875702, 1874740, + 1873818, 1872936, 1872092, 1871286, 1870516, 1869783, 1869084, 1868417, 1867783, 1867180, 1866605, 1866059, 1865539, 1865046, + 1864576, 1895438, 1896305, 1897075, 1897745, 1898313, 1898777, 1899130, 1899370, 1899491, 1899489, 1899362, 1899108, 1898728, + 1898225, 1897603, 1896870, 1896034, 1895106, 1894099, 1893026, 1891899, 1890733, 1889540, 1888333, 1887123, 1885919, 1884728, + 1883559, 1882417, 1881305, 1880227, 1879186, 1878181, 1877216, 1876288, 1875400, 1874549, 1873735, 1872958, 1872216, 1871508, + 1870832, 1870189, 1869576, 1868992, 1868436, 1867907, 1867404, 1866925, 1897331, 1898200, 1898975, 1899650, 1900226, 1900699, + 1901065, 1901320, 1901458, 1901476, 1901372, 1901144, 1900792, 1900319, 1899729, 1899028, 1898225, 1897329, 1896354, 1895310, + 1894211, 1893070, 1891900, 1890712, 1889518, 1888327, 1887147, 1885986, 1884849, 1883740, 1882663, 1881621, 1880614, 1879645, + 1878713, 1877819, 1876962, 1876141, 1875356, 1874606, 1873890, 1873206, 1872554, 1871932, 1871339, 1870774, 1870236, 1869724, + 1869236, 1899180, 1900051, 1900830, 1901511, 1902094, 1902577, 1902955, 1903223, 1903379, 1903416, 1903334, 1903131, 1902806, + 1902362, 1901802, 1901133, 1900362, 1899498, 1898554, 1897540, 1896468, 1895353, 1894205, 1893038, 1891860, 1890683, 1889515, + 1888362, 1887231, 1886126, 1885051, 1884009, 1883001, 1882029, 1881093, 1880194, 1879331, 1878504, 1877712, 1876954, 1876230, + 1875538, 1874878, 1874247, 1873646, 1873072, 1872525, 1872004, 1871507, 136533, 136533, 136533, 136533, 136533, 136533, + 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 135924, 125277, 108081, 91368, 77552, + 66660, 58112, 51334, 45876, 41412, 37706, 34587, 31931, 29644, 27657, 25914, 24375, 23005, 21780, + 20677, 19679, 18772, 17944, 17186, 16489, 15845, 15250, 14698, 14184, 13704, 13256, 12836, 12442, + 12071, 11721, 11392, 11080, 10784, 10504, 10238, 9986, 9745, 9516, 9297, 9088, 8888, 8697, + 8513, 8338, 8169, 8007, 7852, 7702, 7558, 7419, 7285, 7156, 7031, 6911, 6795, 6682, + 6574, 6468, 6366, 6267, 6172, 6079, 5989, 5901, 5816, 5733, 5653, 5575, 5499, 5425, + 5353, 5283, 5215, 5148, 5083, 5020, 4959 +]; +/// NMOS log-domain current table, corner mos_tt, IHP-Open-PDK 21133f21, L 0.45 um, 27 C, at the source-to-bulk voltage Vsb = 0.5 V (slice 2): the tag word (4294967295), then the 4753 words ix * 49 + iy of log2(Id / F) in 1/65536 octave over 2^-8 of a linear-table word (1.164 pA), then the 97 rv words; the format of TT_LG_N (deck psp103_idpa_vsb_tt.cir, blocks lam_n_2 and r_2). +pub const VSB_N2 : [4851]u32 = [ + 4294967295, 192984, 199734, 198585, 200815, 204890, 209962, 215188, 220531, 225756, 230786, 235593, 240177, 244541, + 248697, 252656, 256430, 260033, 263477, 266772, 269930, 272961, 275874, 278679, 281382, 283992, 286515, 288959, + 291330, 293632, 295873, 298055, 300185, 302267, 304305, 306304, 308266, 310197, 312100, 313979, 315840, 317686, + 319524, 321362, 323208, 325107, 327020, 328992, 331049, 333224, 239450, 243017, 242555, 244951, 249103, 254179, + 259575, 264976, 270199, 275277, 280129, 284751, 289150, 293335, 297318, 301113, 304731, 308185, 311487, 314647, + 317676, 320582, 323375, 326063, 328653, 331151, 333565, 335901, 338163, 340357, 342489, 344561, 346579, 348547, + 350468, 352346, 354185, 355987, 357757, 359497, 361213, 362907, 364585, 366253, 367919, 369611, 371309, 373042, + 374831, 285953, 287520, 287507, 290019, 294233, 299361, 304808, 310258, 315565, 320646, 325537, 330194, 334624, + 338836, 342843, 346658, 350293, 353761, 357074, 360241, 363275, 366183, 368974, 371658, 374240, 376728, 379128, + 381446, 383688, 385858, 387961, 390002, 391984, 393912, 395788, 397617, 399402, 401145, 402850, 404519, 406157, + 407765, 409347, 410908, 412453, 413986, 415528, 417069, 418628, 332490, 332817, 333094, 335688, 339953, 345127, + 350619, 356112, 361460, 366602, 371504, 376193, 380652, 384890, 388906, 392739, 396391, 399874, 403199, 406378, + 409420, 412335, 415131, 417817, 420400, 422887, 425283, 427596, 429829, 431989, 434080, 436105, 438070, 439977, + 441830, 443640, 445395, 447105, 448773, 450402, 451994, 453553, 455080, 456579, 458054, 459507, 460944, 462377, + 463803, 379062, 378624, 379089, 381746, 386054, 391270, 396802, 402334, 407720, 412896, 417841, 422549, 427034, + 431286, 435335, 439188, 442858, 446357, 449696, 452887, 455940, 458863, 461667, 464359, 466946, 469436, 471834, + 474146, 476378, 478535, 480621, 482640, 484596, 486494, 488336, 490125, 491865, 493558, 495207, 496814, 498383, + 499914, 501412, 502881, 504316, 505725, 507110, 508476, 509827, 425665, 424761, 425350, 428055, 432402, 437656, + 443227, 448796, 454216, 459425, 464400, 469136, 473641, 477922, 481992, 485865, 489552, 493067, 496421, 499625, + 502689, 505623, 508437, 511136, 513731, 516226, 518629, 520945, 523179, 525337, 527424, 529442, 531397, 533291, + 535129, 536912, 538646, 540331, 541970, 543567, 545123, 546640, 548121, 549568, 550983, 552368, 553726, 555058, + 556369, 472300, 471114, 471786, 474531, 478914, 484204, 489811, 495415, 500868, 506108, 511112, 515874, 520404, + 524708, 528799, 532690, 536395, 539926, 543294, 546512, 549588, 552534, 555357, 558066, 560669, 563172, 565581, + 567903, 570142, 572304, 574394, 576414, 578371, 580266, 582104, 583887, 585618, 587301, 588937, 590530, 592080, + 593591, 595065, 596503, 597907, 599280, 600622, 601938, 603227, 518963, 517609, 518340, 521119, 525536, 530861, + 536502, 542140, 547625, 552895, 557927, 562715, 567268, 571594, 575705, 579615, 583337, 586884, 590267, 593498, + 596587, 599544, 602378, 605097, 607708, 610219, 612636, 614964, 617210, 619378, 621472, 623497, 625457, 627356, + 629196, 630981, 632714, 634397, 636034, 637626, 639175, 640684, 642155, 643590, 644990, 646357, 647693, 648999, + 650279, 565650, 564201, 564975, 567786, 572235, 577593, 583268, 588938, 594454, 599753, 604812, 609626, 614201, + 618548, 622679, 626607, 630346, 633908, 637306, 640550, 643652, 646620, 649465, 652194, 654814, 657334, 659759, + 662095, 664347, 666521, 668621, 670652, 672617, 674519, 676363, 678152, 679888, 681574, 683212, 684806, 686357, + 687867, 689338, 690772, 692171, 693536, 694870, 696174, 697448, 612356, 610857, 611667, 614507, 618987, 624378, + 630085, 635786, 641333, 646660, 651744, 656582, 661180, 665547, 669697, 673643, 677399, 680976, 684387, 687645, + 690758, 693738, 696594, 699332, 701962, 704491, 706923, 709267, 711526, 713707, 715813, 717850, 719820, 721728, + 723576, 725369, 727109, 728799, 730440, 732037, 733590, 735102, 736575, 738011, 739411, 740777, 742111, 743414, + 744688, 659071, 657556, 658397, 661265, 665774, 671196, 676934, 682666, 688241, 693595, 698704, 703566, 708185, + 712572, 716740, 720703, 724474, 728066, 731491, 734761, 737887, 740878, 743743, 746492, 749131, 751668, 754109, + 756460, 758726, 760914, 763026, 765068, 767044, 768957, 770811, 772608, 774352, 776046, 777691, 779291, 780848, + 782363, 783838, 785276, 786679, 788047, 789382, 790686, 791961, 705780, 704277, 705149, 708042, 712580, 718031, + 723799, 729559, 735161, 740540, 745673, 750556, 755196, 759602, 763788, 767767, 771552, 775158, 778596, 781878, + 785015, 788016, 790892, 793649, 796297, 798842, 801291, 803649, 805922, 808116, 810235, 812283, 814264, 816182, + 818041, 819843, 821591, 823289, 824938, 826542, 828102, 829620, 831099, 832539, 833944, 835315, 836652, 837958, + 839235, 752459, 750997, 751901, 754821, 759385, 764863, 770657, 776443, 782070, 787472, 792626, 797530, 802187, + 806610, 810812, 814805, 818605, 822223, 825673, 828966, 832113, 835124, 838008, 840774, 843430, 845982, 848438, + 850803, 853083, 855283, 857407, 859460, 861447, 863370, 865233, 867039, 868792, 870493, 872146, 873754, 875317, + 876838, 878320, 879764, 881171, 882544, 883884, 885193, 886471, 799070, 797685, 798629, 801573, 806160, 811661, + 817478, 823286, 828933, 834355, 839528, 844448, 849121, 853559, 857774, 861780, 865591, 869220, 872679, 875982, + 879137, 882157, 885049, 887822, 890485, 893043, 895505, 897876, 900161, 902366, 904495, 906553, 908544, 910471, + 912338, 914148, 915905, 917610, 919266, 920876, 922443, 923967, 925451, 926898, 928308, 929683, 931025, 932336, + 933616, 845550, 844297, 845292, 848260, 852863, 858381, 864215, 870039, 875701, 881137, 886323, 891255, 895939, + 900387, 904612, 908627, 912446, 916083, 919550, 922859, 926021, 929046, 931944, 934722, 937390, 939953, 942419, + 944794, 947083, 949292, 951425, 953486, 955480, 957411, 959281, 961094, 962853, 964560, 966219, 967832, 969400, + 970927, 972413, 973862, 975274, 976651, 977995, 979307, 980589, 892223, 891002, 891953, 894878, 899458, 904967, + 910800, 916627, 922293, 927734, 932924, 937861, 942550, 947002, 951230, 955248, 959071, 962710, 966180, 969492, + 972657, 975684, 978584, 981365, 984034, 986600, 989068, 991444, 993735, 995946, 998080, 1000143, 1002138, 1004070, + 1005941, 1007755, 1009516, 1011224, 1012884, 1014498, 1016068, 1017595, 1019083, 1020532, 1021945, 1023322, 1024667, 1025980, + 1027262, 945801, 941710, 940692, 942434, 946371, 951553, 957228, 962978, 968606, 974026, 979203, 984130, 988811, + 993256, 997479, 1001492, 1005309, 1008945, 1012411, 1015719, 1018880, 1021904, 1024801, 1027579, 1030246, 1032809, 1035275, + 1037650, 1039938, 1042147, 1044280, 1046341, 1048335, 1050265, 1052135, 1053948, 1055707, 1057414, 1059073, 1060686, 1062254, + 1063781, 1065267, 1066715, 1068127, 1069504, 1070848, 1072160, 1073442, 1005006, 996158, 991685, 991181, 993775, 998201, + 1003464, 1008990, 1014493, 1019838, 1024967, 1029858, 1034511, 1038933, 1043134, 1047128, 1050929, 1054548, 1057999, 1061294, + 1064442, 1067455, 1070341, 1073108, 1075766, 1078320, 1080777, 1083143, 1085425, 1087626, 1089752, 1091807, 1093794, 1095719, + 1097583, 1099391, 1101145, 1102847, 1104502, 1106110, 1107674, 1109197, 1110679, 1112124, 1113532, 1114906, 1116246, 1117555, + 1118833, 1065173, 1051876, 1043800, 1040687, 1041532, 1044846, 1049420, 1054525, 1059766, 1064942, 1069956, 1074764, 1079353, + 1083721, 1087877, 1091830, 1095594, 1099181, 1102601, 1105867, 1108989, 1111977, 1114840, 1117586, 1120223, 1122758, 1125197, + 1127546, 1129812, 1131998, 1134109, 1136150, 1138125, 1140037, 1141890, 1143686, 1145429, 1147122, 1148766, 1150365, 1151920, + 1153434, 1154908, 1156345, 1157745, 1159111, 1160445, 1161747, 1163019, 1123537, 1106999, 1095856, 1090242, 1089219, 1091208, + 1094868, 1099349, 1104162, 1109040, 1113840, 1118489, 1122953, 1127221, 1131291, 1135171, 1138870, 1142396, 1145763, 1148979, + 1152054, 1154999, 1157822, 1160530, 1163132, 1165633, 1168041, 1170361, 1172598, 1174758, 1176844, 1178861, 1180813, 1182703, + 1184535, 1186312, 1188036, 1189711, 1191338, 1192920, 1194459, 1195958, 1197417, 1198839, 1200226, 1201579, 1202900, 1204190, + 1205450, 1178734, 1160319, 1146850, 1139046, 1136212, 1136795, 1139396, 1143088, 1147315, 1151755, 1156222, 1160613, 1164872, + 1168971, 1172901, 1176659, 1180251, 1183682, 1186962, 1190099, 1193102, 1195979, 1198738, 1201387, 1203933, 1206383, 1208741, + 1211015, 1213208, 1215325, 1217372, 1219351, 1221267, 1223124, 1224923, 1226668, 1228363, 1230008, 1231608, 1233164, 1234678, + 1236152, 1237588, 1238988, 1240354, 1241686, 1242986, 1244256, 1245498, 1230041, 1211007, 1195974, 1186353, 1181844, 1181024, + 1182491, 1185281, 1188795, 1192669, 1196686, 1200713, 1204675, 1208527, 1212247, 1215825, 1219258, 1222549, 1225702, 1228723, + 1231620, 1234399, 1237067, 1239632, 1242098, 1244472, 1246760, 1248966, 1251096, 1253154, 1255143, 1257068, 1258933, 1260739, + 1262491, 1264192, 1265843, 1267447, 1269007, 1270525, 1272002, 1273441, 1274844, 1276211, 1277545, 1278846, 1280117, 1281359, + 1282573, 1277062, 1258447, 1242585, 1231538, 1225527, 1223354, 1223666, 1225490, 1228203, 1231415, 1234883, 1238453, 1242031, + 1245558, 1248998, 1252334, 1255554, 1258655, 1261637, 1264503, 1267258, 1269907, 1272454, 1274905, 1277265, 1279540, 1281734, + 1283852, 1285898, 1287876, 1289790, 1291643, 1293438, 1295179, 1296868, 1298509, 1300102, 1301651, 1303158, 1304625, 1306053, + 1307445, 1308802, 1310125, 1311416, 1312677, 1313909, 1315112, 1316289, 1319676, 1302233, 1286216, 1274143, 1266829, 1263389, + 1262569, 1263409, 1265276, 1267767, 1270618, 1273662, 1276789, 1279926, 1283028, 1286066, 1289023, 1291890, 1294661, 1297336, + 1299916, 1302403, 1304801, 1307113, 1309344, 1311497, 1313576, 1315585, 1317528, 1319408, 1321229, 1322993, 1324704, 1326365, + 1327976, 1329543, 1331065, 1332546, 1333987, 1335391, 1336758, 1338091, 1339392, 1340660, 1341899, 1343109, 1344291, 1345447, + 1346578, 1358003, 1342175, 1326584, 1313895, 1305500, 1300910, 1299017, 1298895, 1299914, 1301662, 1303867, 1306347, 1308981, + 1311687, 1314409, 1317112, 1319770, 1322369, 1324898, 1327354, 1329733, 1332035, 1334262, 1336415, 1338497, 1340510, 1342458, + 1344343, 1346169, 1347938, 1349652, 1351315, 1352930, 1354497, 1356021, 1357502, 1358943, 1360345, 1361711, 1363042, 1364339, + 1365604, 1366839, 1368045, 1369223, 1370373, 1371498, 1372599, 1373676, 1392357, 1378318, 1363596, 1350693, 1341463, 1335865, + 1332984, 1331953, 1332155, 1333175, 1334733, 1336641, 1338769, 1341025, 1343349, 1345696, 1348035, 1350346, 1352616, 1354834, + 1356997, 1359100, 1361142, 1363124, 1365046, 1366909, 1368715, 1370467, 1372167, 1373816, 1375416, 1376970, 1378481, 1379949, + 1381377, 1382766, 1384119, 1385437, 1386721, 1387973, 1389194, 1390386, 1391550, 1392687, 1393798, 1394885, 1395947, 1396987, + 1398005, 1423156, 1410884, 1397319, 1384571, 1374764, 1368316, 1364552, 1362688, 1362125, 1362453, 1363390, 1364740, 1366369, + 1368180, 1370103, 1372090, 1374105, 1376123, 1378126, 1380101, 1382041, 1383939, 1385791, 1387596, 1389354, 1391063, 1392724, + 1394340, 1395910, 1397436, 1398919, 1400362, 1401766, 1403132, 1404462, 1405758, 1407020, 1408251, 1409451, 1410623, 1411766, + 1412882, 1413973, 1415039, 1416081, 1417101, 1418099, 1419076, 1420033, 1450843, 1440203, 1427931, 1415648, 1405526, 1398397, + 1393866, 1391251, 1389989, 1389676, 1390030, 1390853, 1392006, 1393386, 1394921, 1396556, 1398253, 1399982, 1401721, 1403455, + 1405173, 1406867, 1408531, 1410161, 1411755, 1413311, 1414829, 1416308, 1417750, 1419155, 1420523, 1421856, 1423155, 1424420, + 1425654, 1426857, 1428030, 1429175, 1430292, 1431383, 1432449, 1433491, 1434509, 1435505, 1436479, 1437433, 1438366, 1439281, + 1440177, 1475840, 1466649, 1455690, 1444102, 1433913, 1426277, 1421095, 1417818, 1415926, 1415029, 1414846, 1415179, 1415885, + 1416860, 1418026, 1419326, 1420717, 1422167, 1423651, 1425152, 1426655, 1428150, 1429631, 1431090, 1432525, 1433933, 1435312, + 1436660, 1437978, 1439265, 1440522, 1441749, 1442947, 1444115, 1445256, 1446370, 1447458, 1448520, 1449558, 1450572, 1451563, + 1452533, 1453481, 1454409, 1455318, 1456208, 1457079, 1457934, 1458771, 1498517, 1490584, 1480880, 1470132, 1460098, 1452128, + 1446415, 1442563, 1440111, 1438686, 1438014, 1437897, 1438190, 1438787, 1439608, 1440592, 1441694, 1442879, 1444121, 1445398, + 1446696, 1448002, 1449306, 1450603, 1451886, 1453151, 1454397, 1455620, 1456820, 1457996, 1459147, 1460273, 1461374, 1462451, + 1463504, 1464534, 1465541, 1466525, 1467488, 1468429, 1469351, 1470252, 1471135, 1471999, 1472846, 1473676, 1474489, 1475286, + 1476068, 1519205, 1512350, 1503799, 1493959, 1484264, 1476126, 1469998, 1465656, 1462709, 1460811, 1459697, 1459169, 1459083, + 1459330, 1459830, 1460519, 1461350, 1462286, 1463299, 1464365, 1465468, 1466594, 1467731, 1468872, 1470011, 1471142, 1472261, + 1473365, 1474453, 1475523, 1476575, 1477606, 1478617, 1479608, 1480579, 1481529, 1482460, 1483372, 1484264, 1485139, 1485995, + 1486833, 1487654, 1488459, 1489248, 1490022, 1490781, 1491525, 1492255, 1538166, 1532233, 1524714, 1515794, 1506574, 1498423, + 1491996, 1487246, 1483868, 1481549, 1480035, 1479134, 1478701, 1478627, 1478829, 1479245, 1479823, 1480526, 1481324, 1482191, + 1483110, 1484066, 1485045, 1486040, 1487041, 1488044, 1489044, 1490036, 1491019, 1491990, 1492947, 1493889, 1494815, 1495726, + 1496619, 1497497, 1498357, 1499201, 1500028, 1500840, 1501635, 1502415, 1503180, 1503930, 1504666, 1505387, 1506096, 1506791, + 1507474, 1555637, 1550488, 1543882, 1535848, 1527196, 1519168, 1512552, 1507474, 1503725, 1501032, 1499159, 1497919, 1497169, + 1496800, 1496728, 1496889, 1497232, 1497718, 1498313, 1498994, 1499740, 1500535, 1501365, 1502221, 1503093, 1503975, 1504862, + 1505748, 1506631, 1507508, 1508377, 1509235, 1510082, 1510917, 1511739, 1512547, 1513342, 1514123, 1514890, 1515643, 1516382, + 1517108, 1517820, 1518520, 1519207, 1519881, 1520543, 1521193, 1521832, 1571796, 1567319, 1561512, 1554309, 1546275, 1538483, + 1531785, 1526457, 1522394, 1519374, 1517179, 1515632, 1514592, 1513952, 1513628, 1513554, 1513678, 1513960, 1514367, 1514873, + 1515456, 1516099, 1516789, 1517513, 1518263, 1519031, 1519810, 1520596, 1521385, 1522173, 1522958, 1523738, 1524510, 1525274, + 1526028, 1526772, 1527506, 1528228, 1528938, 1529637, 1530325, 1531000, 1531665, 1532317, 1532959, 1533589, 1534209, 1534818, + 1535416, 1586810, 1582909, 1577800, 1571358, 1563959, 1556491, 1549807, 1544305, 1539983, 1536677, 1534196, 1532371, 1531068, + 1530179, 1529622, 1529329, 1529250, 1529342, 1529573, 1529914, 1530343, 1530844, 1531400, 1532000, 1532634, 1533293, 1533971, + 1534662, 1535362, 1536066, 1536771, 1537476, 1538178, 1538875, 1539565, 1540249, 1540925, 1541592, 1542250, 1542898, 1543537, + 1544167, 1544786, 1545395, 1545995, 1546585, 1547165, 1547736, 1548297, 1600810, 1597406, 1592905, 1587152, 1580380, 1573297, + 1566714, 1561109, 1556583, 1553033, 1550297, 1548222, 1546678, 1545561, 1544788, 1544294, 1544025, 1543940, 1544004, 1544191, + 1544476, 1544841, 1545272, 1545754, 1546278, 1546834, 1547415, 1548016, 1548630, 1549254, 1549885, 1550518, 1551153, 1551786, + 1552417, 1553044, 1553665, 1554280, 1554889, 1555490, 1556083, 1556669, 1557246, 1557815, 1558376, 1558928, 1559472, 1560008, + 1560535, 1613909, 1610935, 1606965, 1601830, 1595658, 1589001, 1582590, 1576952, 1572274, 1568518, 1565559, 1563259, 1561496, + 1560169, 1559198, 1558516, 1558070, 1557820, 1557729, 1557770, 1557919, 1558156, 1558467, 1558838, 1559257, 1559715, 1560204, + 1560718, 1561252, 1561800, 1562358, 1562924, 1563495, 1564068, 1564641, 1565213, 1565783, 1566349, 1566911, 1567467, 1568018, + 1568563, 1569101, 1569632, 1570156, 1570673, 1571183, 1571686, 1572182, 1626204, 1623604, 1620098, 1615515, 1609908, 1603694, + 1597513, 1591904, 1587125, 1583202, 1580049, 1577548, 1575586, 1574068, 1572913, 1572056, 1571447, 1571041, 1570804, 1570708, + 1570728, 1570845, 1571043, 1571307, 1571626, 1571991, 1572392, 1572824, 1573280, 1573755, 1574245, 1574746, 1575255, 1575770, + 1576289, 1576809, 1577330, 1577849, 1578366, 1578880, 1579390, 1579896, 1580397, 1580892, 1581382, 1581867, 1582345, 1582817, + 1583283, 1637770, 1635499, 1632400, 1628308, 1623226, 1617459, 1611550, 1606026, 1601195, 1597144, 1593826, 1591147, 1589005, + 1587311, 1585986, 1584968, 1584205, 1583655, 1583281, 1583055, 1582954, 1582957, 1583047, 1583210, 1583434, 1583710, 1584027, + 1584380, 1584761, 1585166, 1585590, 1586029, 1586480, 1586939, 1587405, 1587876, 1588349, 1588824, 1589298, 1589772, 1590243, + 1590712, 1591177, 1591639, 1592096, 1592549, 1592998, 1593441, 1593879, 1648684, 1646701, 1643960, 1640306, 1635704, 1630376, + 1624769, 1619377, 1614541, 1610397, 1606943, 1604108, 1601804, 1599949, 1598469, 1597301, 1596395, 1595708, 1595205, 1594858, + 1594642, 1594536, 1594524, 1594591, 1594724, 1594914, 1595151, 1595428, 1595738, 1596076, 1596436, 1596815, 1597209, 1597615, + 1598031, 1598454, 1598882, 1599313, 1599747, 1600181, 1600615, 1601049, 1601480, 1601910, 1602336, 1602759, 1603179, 1603595, + 1604006, 1659010, 1657282, 1654858, 1651592, 1647430, 1642522, 1637234, 1632013, 1627212, 1623012, 1619448, 1616479, 1614031, + 1612030, 1610405, 1609098, 1608058, 1607244, 1606620, 1606158, 1605833, 1605624, 1605514, 1605489, 1605536, 1605644, 1605804, + 1606008, 1606249, 1606522, 1606821, 1607142, 1607482, 1607836, 1608203, 1608579, 1608963, 1609353, 1609747, 1610144, 1610542, + 1610941, 1611341, 1611739, 1612135, 1612530, 1612922, 1613312, 1613698, 1668791, 1667289, 1665146, 1662228, 1658464, 1653956, + 1648993, 1643973, 1639246, 1635024, 1631378, 1628296, 1625720, 1623587, 1621830, 1620394, 1619230, 1618296, 1617558, 1616987, + 1616559, 1616253, 1616051, 1615938, 1615902, 1615932, 1616017, 1616151, 1616327, 1616537, 1616777, 1617042, 1617329, 1617633, + 1617952, 1618284, 1618625, 1618975, 1619330, 1619691, 1620055, 1620421, 1620789, 1621157, 1621525, 1621892, 1622258, 1622622, + 1622984, 1678078, 1676778, 1674885, 1672276, 1668875, 1664741, 1660103, 1655305, 1650684, 1646471, 1642770, 1639596, 1636910, + 1634657, 1632780, 1631225, 1629944, 1628899, 1628054, 1627381, 1626855, 1626455, 1626165, 1625969, 1625854, 1625808, 1625823, + 1625889, 1626001, 1626151, 1626334, 1626545, 1626780, 1627036, 1627310, 1627598, 1627898, 1628208, 1628526, 1628851, 1629182, + 1629516, 1629853, 1630192, 1630532, 1630873, 1631213, 1631553, 1631892, 1686915, 1685795, 1684126, 1681794, 1678720, 1674935, + 1670615, 1666053, 1661564, 1657389, 1653659, 1650413, 1647632, 1645274, 1643287, 1641622, 1640234, 1639083, 1638137, 1637367, + 1636749, 1636261, 1635887, 1635611, 1635419, 1635302, 1635248, 1635250, 1635300, 1635391, 1635519, 1635678, 1635864, 1636073, + 1636301, 1636547, 1636807, 1637079, 1637361, 1637652, 1637949, 1638252, 1638560, 1638870, 1639183, 1639498, 1639814, 1640130, + 1640446, 1695340, 1694382, 1692913, 1690829, 1688052, 1684589, 1680575, 1676257, 1671921, 1667810, 1664075, 1660777, 1657918, + 1655467, 1653380, 1651614, 1650126, 1648877, 1647836, 1646974, 1646268, 1645697, 1645242, 1644889, 1644625, 1644438, 1644319, + 1644258, 1644248, 1644284, 1644358, 1644466, 1644603, 1644766, 1644952, 1645156, 1645377, 1645612, 1645858, 1646115, 1646381, + 1646653, 1646932, 1647215, 1647501, 1647791, 1648083, 1648376, 1648670, 1703376, 1702564, 1701275, 1699415, 1696906, 1693740, + 1690019, 1685947, 1681780, 1677756, 1674038, 1670708, 1667786, 1665256, 1663081, 1661222, 1659641, 1658301, 1657171, 1656223, + 1655434, 1654782, 1654251, 1653826, 1653492, 1653238, 1653056, 1652935, 1652868, 1652848, 1652871, 1652930, 1653020, 1653139, + 1653282, 1653446, 1653628, 1653827, 1654039, 1654263, 1654497, 1654740, 1654990, 1655246, 1655507, 1655772, 1656040, 1656310, + 1656583, 1711059, 1710378, 1709252, 1707593, 1705327, 1702435, 1698991, 1695162, 1691176, 1687257, 1683577, 1680234, 1677265, + 1674667, 1672414, 1670472, 1668805, 1667380, 1666166, 1665136, 1664268, 1663541, 1662937, 1662442, 1662041, 1661724, 1661480, + 1661301, 1661179, 1661107, 1661079, 1661090, 1661135, 1661210, 1661312, 1661437, 1661582, 1661745, 1661924, 1662115, 1662319, + 1662532, 1662754, 1662984, 1663219, 1663460, 1663705, 1663954, 1664205, 1718409, 1717849, 1716869, 1715392, 1713347, 1710707, + 1707523, 1703933, 1700133, 1696335, 1692711, 1689373, 1686372, 1683720, 1681398, 1679381, 1677636, 1676132, 1674839, 1673733, + 1672791, 1671992, 1671318, 1670756, 1670292, 1669913, 1669611, 1669376, 1669200, 1669077, 1669000, 1668965, 1668966, 1668999, + 1669061, 1669147, 1669256, 1669384, 1669530, 1669690, 1669863, 1670048, 1670243, 1670446, 1670657, 1670874, 1671096, 1671323, + 1671553, 1725456, 1725004, 1724158, 1722846, 1721001, 1718592, 1715653, 1712292, 1708683, 1705017, 1701465, 1698147, 1695130, + 1692435, 1690056, 1687971, 1686154, 1684577, 1683212, 1682033, 1681020, 1680153, 1679413, 1678787, 1678261, 1677824, 1677465, + 1677176, 1676949, 1676776, 1676653, 1676572, 1676530, 1676522, 1676544, 1676594, 1676667, 1676761, 1676874, 1677003, 1677147, + 1677304, 1677472, 1677649, 1677836, 1678029, 1678229, 1678435, 1678645, 1732220, 1731867, 1731142, 1729980, 1728317, 1726120, + 1723408, 1720269, 1716849, 1713324, 1709858, 1706576, 1703556, 1700830, 1698402, 1696259, 1694378, 1692733, 1691299, 1690053, + 1688974, 1688041, 1687238, 1686551, 1685967, 1685473, 1685060, 1684718, 1684441, 1684221, 1684051, 1683927, 1683843, 1683795, + 1683779, 1683792, 1683830, 1683891, 1683972, 1684071, 1684186, 1684315, 1684456, 1684609, 1684771, 1684941, 1685119, 1685304, + 1685493, 1738706, 1738444, 1737829, 1736804, 1735308, 1733306, 1730806, 1727878, 1724647, 1721268, 1717899, 1714667, 1711657, + 1708912, 1706447, 1704253, 1702315, 1700608, 1699112, 1697802, 1696660, 1695666, 1694804, 1694059, 1693418, 1692870, 1692404, + 1692013, 1691688, 1691421, 1691207, 1691040, 1690916, 1690829, 1690776, 1690753, 1690757, 1690786, 1690836, 1690905, 1690992, + 1691094, 1691209, 1691337, 1691475, 1691623, 1691779, 1691943, 1692113, 1744950, 1744771, 1744257, 1743356, 1742013, 1740189, + 1737886, 1735159, 1732111, 1728881, 1725618, 1722447, 1719459, 1716707, 1714213, 1711977, 1709987, 1708225, 1706670, 1705302, + 1704100, 1703048, 1702129, 1701328, 1700633, 1700033, 1699518, 1699078, 1698706, 1698394, 1698137, 1697929, 1697765, 1697641, + 1697551, 1697494, 1697465, 1697461, 1697481, 1697521, 1697579, 1697655, 1697745, 1697848, 1697963, 1698088, 1698223, 1698366, + 1698516, 1750964, 1750861, 1750440, 1749653, 1748448, 1746788, 1744669, 1742130, 1739260, 1736181, 1733030, 1729930, 1726975, + 1724226, 1721713, 1719442, 1717408, 1715596, 1713987, 1712563, 1711306, 1710199, 1709225, 1708371, 1707625, 1706975, 1706411, + 1705924, 1705507, 1705153, 1704854, 1704606, 1704403, 1704241, 1704116, 1704025, 1703963, 1703928, 1703918, 1703929, 1703961, + 1704010, 1704074, 1704153, 1704245, 1704349, 1704462, 1704585, 1704716, 1756753, 1756719, 1756383, 1755701, 1754623, 1753114, + 1751165, 1748804, 1746106, 1743178, 1740144, 1737123, 1734212, 1731476, 1728952, 1726655, 1724583, 1722726, 1721068, 1719594, + 1718285, 1717126, 1716101, 1715197, 1714401, 1713703, 1713093, 1712561, 1712100, 1711704, 1711365, 1711078, 1710838, 1710640, + 1710481, 1710356, 1710262, 1710197, 1710157, 1710141, 1710145, 1710168, 1710208, 1710263, 1710333, 1710414, 1710507, 1710610, + 1710721, 1762335, 1762366, 1762108, 1761521, 1760561, 1759191, 1757399, 1755206, 1752673, 1749893, 1746980, 1744045, 1741185, + 1738471, 1735946, 1733630, 1731527, 1729630, 1727929, 1726407, 1725050, 1723842, 1722768, 1721816, 1720974, 1720230, 1719575, + 1719000, 1718497, 1718060, 1717682, 1717357, 1717081, 1716848, 1716655, 1716498, 1716373, 1716278, 1716210, 1716166, 1716144, + 1716141, 1716157, 1716189, 1716236, 1716296, 1716368, 1716451, 1716543, 1767714, 1767804, 1767619, 1767120, 1766268, 1765026, + 1763381, 1761346, 1758971, 1756336, 1753544, 1750701, 1747901, 1745218, 1742699, 1740372, 1738244, 1736315, 1734574, 1733010, + 1731608, 1730354, 1729235, 1728237, 1727350, 1726562, 1725864, 1725248, 1724705, 1724229, 1723813, 1723452, 1723140, 1722873, + 1722648, 1722459, 1722304, 1722180, 1722083, 1722012, 1721964, 1721937, 1721929, 1721938, 1721962, 1722001, 1722053, 1722117, + 1722191, 1772919, 1773064, 1772945, 1772528, 1771774, 1770651, 1769141, 1767254, 1765029, 1762535, 1759865, 1757117, 1754383, + 1751738, 1749233, 1746901, 1744755, 1742797, 1741021, 1739418, 1737975, 1736678, 1735516, 1734475, 1733545, 1732715, 1731976, + 1731320, 1730738, 1730224, 1729771, 1729374, 1729028, 1728728, 1728471, 1728251, 1728066, 1727914, 1727790, 1727692, 1727618, + 1727567, 1727535, 1727521, 1727524, 1727542, 1727574, 1727618, 1727673, 1777943, 1778138, 1778081, 1777739, 1777077, 1776064, + 1774680, 1772931, 1770849, 1768492, 1765943, 1763293, 1760630, 1758030, 1755547, 1753217, 1751058, 1749078, 1747272, 1745634, + 1744153, 1742816, 1741613, 1740532, 1739561, 1738691, 1737913, 1737218, 1736599, 1736048, 1735560, 1735129, 1734749, 1734417, + 1734129, 1733879, 1733665, 1733485, 1733334, 1733210, 1733112, 1733036, 1732981, 1732945, 1732926, 1732924, 1732936, 1732961, + 1732998, 1782807, 1783049, 1783049, 1782776, 1782199, 1781287, 1780020, 1778401, 1776453, 1774228, 1771799, 1769248, 1766661, + 1764111, 1761656, 1759334, 1757169, 1755171, 1753340, 1751670, 1750154, 1748781, 1747540, 1746420, 1745411, 1744503, 1743687, + 1742955, 1742299, 1741713, 1741191, 1740726, 1740314, 1739951, 1739632, 1739353, 1739111, 1738903, 1738726, 1738577, 1738454, + 1738354, 1738276, 1738219, 1738179, 1738156, 1738148, 1738154, 1738173, 1787513, 1787799, 1787851, 1787643, 1787144, 1786326, + 1785168, 1783670, 1781850, 1779752, 1777439, 1774989, 1772481, 1769986, 1767564, 1765257, 1763091, 1761080, 1759228, 1757532, + 1755984, 1754577, 1753301, 1752145, 1751099, 1750154, 1749302, 1748534, 1747844, 1747224, 1746668, 1746171, 1745728, 1745335, + 1744986, 1744679, 1744409, 1744174, 1743971, 1743797, 1743650, 1743527, 1743427, 1743348, 1743287, 1743244, 1743217, 1743205, + 1743206, 1792073, 1792399, 1792500, 1792352, 1791925, 1791194, 1790138, 1788753, 1787054, 1785077, 1782878, 1780528, 1778100, + 1775665, 1773282, 1770995, 1768834, 1766815, 1764946, 1763226, 1761651, 1760213, 1758904, 1757714, 1756633, 1755654, 1754767, + 1753965, 1753241, 1752589, 1752001, 1751473, 1750999, 1750576, 1750199, 1749863, 1749567, 1749306, 1749077, 1748879, 1748708, + 1748563, 1748441, 1748340, 1748259, 1748196, 1748150, 1748119, 1748103, 1796487, 1796851, 1796998, 1796905, 1796546, 1795895, + 1794934, 1793655, 1792070, 1790209, 1788122, 1785871, 1783526, 1781154, 1778814, 1776552, 1774400, 1772379, 1770497, 1768758, + 1767158, 1765693, 1764353, 1763131, 1762018, 1761006, 1760086, 1759252, 1758496, 1757811, 1757193, 1756634, 1756131, 1755679, + 1755274, 1754912, 1754589, 1754303, 1754050, 1753827, 1753633, 1753466, 1753322, 1753201, 1753099, 1753017, 1752952, 1752903, + 1752869, 1800779, 1801177, 1801366, 1801325, 1801028, 1800453, 1799579, 1798400, 1796922, 1795171, 1793191, 1791038, 1788776, + 1786470, 1784177, 1781944, 1779806, 1777786, 1775896, 1774141, 1772520, 1771028, 1769661, 1768409, 1767265, 1766222, 1765271, + 1764405, 1763618, 1762903, 1762254, 1761667, 1761135, 1760655, 1760223, 1759834, 1759485, 1759174, 1758897, 1758651, 1758434, + 1758245, 1758080, 1757938, 1757817, 1757715, 1757632, 1757565, 1757513, 1804927, 1805358, 1805587, 1805594, 1805356, 1804851, + 1804059, 1802973, 1801597, 1799952, 1798076, 1796019, 1793841, 1791602, 1789360, 1787161, 1785043, 1783028, 1781134, 1779367, + 1777727, 1776214, 1774821, 1773542, 1772370, 1771297, 1770317, 1769421, 1768605, 1767860, 1767183, 1766567, 1766008, 1765501, + 1765042, 1764628, 1764254, 1763919, 1763618, 1763349, 1763111, 1762900, 1762714, 1762552, 1762411, 1762291, 1762189, 1762105, + 1762036, 1808966, 1809427, 1809692, 1809744, 1809561, 1809120, 1808406, 1807407, 1806127, 1804582, 1802805, 1800842, 1798747, + 1796577, 1794388, 1792227, 1790131, 1788126, 1786232, 1784455, 1782801, 1781268, 1779852, 1778547, 1777348, 1776248, 1775239, + 1774315, 1773470, 1772698, 1771993, 1771350, 1770763, 1770230, 1769746, 1769306, 1768908, 1768549, 1768225, 1767934, 1767674, + 1767442, 1767235, 1767053, 1766894, 1766755, 1766635, 1766533, 1766448, 1812885, 1813375, 1813674, 1813768, 1813635, 1813256, + 1812613, 1811696, 1810506, 1809056, 1807375, 1805504, 1803491, 1801392, 1799258, 1797138, 1795068, 1793077, 1791185, 1789404, + 1787737, 1786187, 1784751, 1783423, 1782200, 1781073, 1780038, 1779087, 1778215, 1777415, 1776683, 1776014, 1775402, 1774843, + 1774334, 1773870, 1773448, 1773066, 1772720, 1772407, 1772125, 1771872, 1771646, 1771445, 1771266, 1771109, 1770972, 1770853, + 1770751, 1816685, 1817201, 1817533, 1817666, 1817581, 1817259, 1816684, 1815844, 1814739, 1813380, 1811791, 1810008, 1808078, + 1806049, 1803973, 1801896, 1799856, 1797882, 1795997, 1794214, 1792539, 1790975, 1789520, 1788172, 1786926, 1785775, 1784715, + 1783738, 1782840, 1782015, 1781258, 1780563, 1779926, 1779343, 1778809, 1778322, 1777877, 1777472, 1777104, 1776770, 1776468, + 1776195, 1775949, 1775728, 1775531, 1775356, 1775202, 1775066, 1774948, 1820391, 1820931, 1821293, 1821462, 1821422, 1821153, + 1820640, 1819873, 1818848, 1817575, 1816074, 1814377, 1812527, 1810569, 1808551, 1806519, 1804511, 1802559, 1800683, 1798901, + 1797220, 1795644, 1794174, 1792807, 1791540, 1790366, 1789282, 1788282, 1787359, 1786509, 1785727, 1785007, 1784346, 1783739, + 1783182, 1782672, 1782205, 1781778, 1781388, 1781033, 1780711, 1780418, 1780153, 1779913, 1779698, 1779506, 1779334, 1779181, + 1779047, 1823990, 1824554, 1824944, 1825147, 1825148, 1824930, 1824476, 1823776, 1822827, 1821636, 1820219, 1818606, 1816833, + 1814946, 1812988, 1811004, 1809031, 1807101, 1805239, 1803461, 1801777, 1800192, 1798709, 1797325, 1796039, 1794845, 1793738, + 1792715, 1791769, 1790895, 1790090, 1789346, 1788662, 1788032, 1787452, 1786920, 1786431, 1785983, 1785572, 1785197, 1784854, + 1784542, 1784258, 1784000, 1783767, 1783557, 1783368, 1783200, 1783049, 1827497, 1828081, 1828497, 1828733, 1828773, 1828601, + 1828203, 1827567, 1826689, 1825575, 1824239, 1822706, 1821010, 1819192, 1817295, 1815359, 1813424, 1811520, 1809674, 1807903, + 1806218, 1804627, 1803133, 1801734, 1800430, 1799217, 1798090, 1797045, 1796077, 1795181, 1794352, 1793587, 1792880, 1792227, + 1791626, 1791071, 1790561, 1790092, 1789661, 1789266, 1788904, 1788573, 1788270, 1787995, 1787744, 1787517, 1787312, 1787127, + 1786961, 1830911, 1831515, 1831956, 1832221, 1832298, 1832170, 1831823, 1831247, 1830437, 1829396, 1828137, 1826682, 1825061, + 1823311, 1821474, 1819589, 1817693, 1815818, 1813990, 1812228, 1810546, 1808951, 1807448, 1806037, 1804717, 1803486, 1802340, + 1801275, 1800286, 1799368, 1798518, 1797731, 1797002, 1796328, 1795705, 1795130, 1794599, 1794110, 1793659, 1793244, 1792863, + 1792513, 1792193, 1791899, 1791632, 1791388, 1791166, 1790965, 1790784, 1834232, 1834855, 1835319, 1835613, 1835724, 1835637, + 1835340, 1834820, 1834074, 1833103, 1831917, 1830536, 1828988, 1827306, 1825529, 1823695, 1821840, 1819996, 1818189, 1816439, + 1814762, 1813165, 1811655, 1810234, 1808901, 1807654, 1806490, 1805406, 1804397, 1803459, 1802588, 1801780, 1801031, 1800336, + 1799692, 1799097, 1798546, 1798037, 1797567, 1797133, 1796734, 1796366, 1796027, 1795717, 1795432, 1795172, 1794934, 1794718, + 1794522, 1837475, 1838115, 1838601, 1838921, 1839064, 1839016, 1838765, 1838298, 1837612, 1836707, 1835591, 1834282, 1832804, + 1831189, 1829471, 1827689, 1825876, 1824064, 1822280, 1820545, 1818875, 1817279, 1815765, 1814335, 1812990, 1811728, 1810548, + 1809446, 1808419, 1807462, 1806571, 1805743, 1804973, 1804258, 1803595, 1802980, 1802409, 1801881, 1801392, 1800940, 1800522, + 1800136, 1799781, 1799453, 1799152, 1798875, 1798622, 1798390, 1798179, 1840626, 1841283, 1841789, 1842134, 1842308, 1842296, + 1842088, 1841673, 1841044, 1840201, 1839152, 1837912, 1836502, 1834952, 1833295, 1831564, 1829794, 1828017, 1826258, 1824540, + 1822879, 1821286, 1819770, 1818333, 1816978, 1815704, 1814510, 1813391, 1812346, 1811371, 1810462, 1809615, 1808826, 1808092, + 1807409, 1806775, 1806186, 1805639, 1805132, 1804662, 1804226, 1803823, 1803451, 1803107, 1802789, 1802497, 1802228, 1801982, + 1801756, 1843699, 1844372, 1844897, 1845265, 1845467, 1845491, 1845324, 1844956, 1844381, 1843598, 1842613, 1841438, 1840095, + 1838609, 1837010, 1835332, 1833606, 1831864, 1830133, 1828434, 1826784, 1825197, 1823680, 1822238, 1820875, 1819590, 1818382, + 1817249, 1816188, 1815195, 1814268, 1813403, 1812596, 1811843, 1811142, 1810490, 1809883, 1809318, 1808793, 1808305, 1807852, + 1807433, 1807044, 1806683, 1806350, 1806043, 1805759, 1805497, 1805257, 1846709, 1847395, 1847938, 1848328, 1848557, 1848613, + 1848484, 1848161, 1847637, 1846910, 1845986, 1844875, 1843595, 1842170, 1840629, 1839003, 1837322, 1835617, 1833914, 1832236, + 1830599, 1829019, 1827503, 1826059, 1824689, 1823394, 1822174, 1821027, 1819951, 1818942, 1817998, 1817115, 1816290, 1815520, + 1814801, 1814131, 1813506, 1812923, 1812381, 1811876, 1811407, 1810970, 1810565, 1810189, 1809840, 1809517, 1809218, 1808942, + 1808687, 1849626, 1850327, 1850886, 1851298, 1851553, 1851639, 1851547, 1851266, 1850791, 1850118, 1849252, 1848202, 1846984, + 1845620, 1844136, 1842562, 1840927, 1839260, 1837587, 1835931, 1834310, 1832738, 1831227, 1829781, 1828406, 1827103, 1825873, + 1824714, 1823624, 1822600, 1821641, 1820742, 1819900, 1819113, 1818377, 1817690, 1817048, 1816448, 1815889, 1815368, 1814882, + 1814430, 1814009, 1813617, 1813253, 1812916, 1812602, 1812312, 1812043, 1852496, 1853208, 1853783, 1854214, 1854493, 1854608, + 1854550, 1854309, 1853879, 1853257, 1852446, 1851454, 1850296, 1848990, 1847562, 1846039, 1844449, 1842820, 1841178, 1839546, + 1837942, 1836381, 1834874, 1833429, 1832051, 1830741, 1829502, 1828331, 1827228, 1826191, 1825216, 1824301, 1823444, 1822640, + 1821888, 1821183, 1820525, 1819909, 1819333, 1818796, 1818294, 1817826, 1817389, 1816983, 1816604, 1816251, 1815923, 1815619, + 1815337, 1855288, 1856012, 1856602, 1857052, 1857352, 1857495, 1857469, 1857266, 1856880, 1856307, 1855548, 1854612, 1853511, + 1852263, 1850889, 1849417, 1847872, 1846283, 1844673, 1843066, 1841481, 1839932, 1838432, 1836989, 1835609, 1834295, 1833047, + 1831866, 1830752, 1829701, 1828713, 1827783, 1826910, 1826091, 1825323, 1824603, 1823928, 1823297, 1822705, 1822152, 1821635, + 1821151, 1820700, 1820278, 1819885, 1819518, 1819176, 1818858, 1818562, 1858018, 1858753, 1859357, 1859824, 1860145, 1860314, + 1860319, 1860152, 1859806, 1859279, 1858572, 1857689, 1856643, 1855450, 1854130, 1852708, 1851208, 1849658, 1848082, 1846501, + 1844936, 1843401, 1841910, 1840470, 1839090, 1837771, 1836517, 1835328, 1834203, 1833140, 1832139, 1831196, 1830308, 1829474, + 1828691, 1827955, 1827265, 1826618, 1826012, 1825443, 1824911, 1824412, 1823946, 1823510, 1823102, 1822721, 1822366, 1822034, + 1821725, 1860670, 1861416, 1862033, 1862517, 1862859, 1863052, 1863086, 1862954, 1862648, 1862165, 1861505, 1860674, 1859682, + 1858542, 1857275, 1855902, 1854448, 1852938, 1851396, 1849843, 1848299, 1846780, 1845299, 1843865, 1842486, 1841165, 1839906, + 1838710, 1837575, 1836502, 1835488, 1834532, 1833632, 1832784, 1831986, 1831236, 1830531, 1829869, 1829248, 1828665, 1828118, + 1827605, 1827124, 1826674, 1826253, 1825858, 1825490, 1825145, 1824823, 1863276, 1864031, 1864661, 1865159, 1865521, 1865737, + 1865799, 1865698, 1865430, 1864988, 1864375, 1863593, 1862651, 1861564, 1860347, 1859023, 1857614, 1856144, 1854636, 1853112, + 1851590, 1850088, 1848618, 1847191, 1845815, 1844493, 1843230, 1842027, 1840884, 1839801, 1838777, 1837808, 1836895, 1836033, + 1835222, 1834458, 1833739, 1833062, 1832427, 1831829, 1831268, 1830741, 1830246, 1829782, 1829347, 1828940, 1828558, 1828200, + 1827865, 1865819, 1866583, 1867225, 1867738, 1868118, 1868356, 1868444, 1868374, 1868141, 1867740, 1867170, 1866435, 1865543, + 1864505, 1863339, 1862062, 1860698, 1859267, 1857794, 1856299, 1854801, 1853317, 1851860, 1850442, 1849069, 1847748, 1846482, + 1845274, 1844124, 1843032, 1841997, 1841018, 1840092, 1839218, 1838393, 1837616, 1836883, 1836193, 1835543, 1834932, 1834357, + 1833816, 1833308, 1832831, 1832383, 1831962, 1831567, 1831196, 1830849, 1868317, 1869089, 1869742, 1870269, 1870665, 1870923, + 1871036, 1870996, 1870795, 1870432, 1869904, 1869214, 1868369, 1867380, 1866261, 1865032, 1863711, 1862320, 1860882, 1859417, + 1857943, 1856478, 1855035, 1853626, 1852258, 1850939, 1849672, 1848459, 1847303, 1846203, 1845159, 1844169, 1843232, 1842346, + 1841508, 1840718, 1839972, 1839268, 1838605, 1837980, 1837392, 1836838, 1836316, 1835826, 1835365, 1834931, 1834523, 1834140, + 1833781, 1870753, 1871533, 1872196, 1872735, 1873148, 1873426, 1873562, 1873549, 1873381, 1873054, 1872566, 1871919, 1871120, + 1870178, 1869106, 1867922, 1866644, 1865294, 1863891, 1862456, 1861008, 1859563, 1858135, 1856736, 1855375, 1854059, 1852791, + 1851576, 1850415, 1849308, 1848255, 1847255, 1846308, 1845410, 1844561, 1843758, 1843000, 1842284, 1841608, 1840970, 1840368, + 1839801, 1839267, 1838764, 1838290, 1837843, 1837423, 1837028, 1836657, 1873143, 1873930, 1874603, 1875155, 1875582, 1875879, + 1876037, 1876050, 1875913, 1875620, 1875170, 1874564, 1873809, 1872912, 1871885, 1870746, 1869511, 1868199, 1866832, 1865428, + 1864006, 1862582, 1861170, 1859783, 1858430, 1857117, 1855850, 1854633, 1853468, 1852355, 1851294, 1850286, 1849328, 1848420, + 1847560, 1846745, 1845974, 1845246, 1844557, 1843907, 1843293, 1842713, 1842166, 1841650, 1841164, 1840705, 1840273, 1839867, + 1839483, 1875472, 1876266, 1876947, 1877511, 1877953, 1878267, 1878447, 1878485, 1878377, 1878116, 1877703, 1877137, 1876424, + 1875571, 1874589, 1873493, 1872300, 1871028, 1869696, 1868324, 1866928, 1865526, 1864132, 1862758, 1861413, 1860106, 1858841, + 1857623, 1856455, 1855337, 1854270, 1853253, 1852287, 1851369, 1850498, 1849672, 1848890, 1848150, 1847449, 1846787, 1846160, + 1845569, 1845010, 1844482, 1843983, 1843513, 1843069, 1842651, 1842256, 1877755, 1878555, 1879245, 1879820, 1880275, 1880606, + 1880806, 1880869, 1880788, 1880559, 1880180, 1879653, 1878980, 1878169, 1877230, 1876177, 1875025, 1873792, 1872495, 1871154, + 1869786, 1868406, 1867031, 1865670, 1864335, 1863034, 1861773, 1860555, 1859385, 1858263, 1857190, 1856166, 1855191, 1854264, + 1853383, 1852547, 1851754, 1851002, 1850290, 1849616, 1848978, 1848375, 1847804, 1847264, 1846754, 1846272, 1845817, 1845387, + 1844981, 1879992, 1880799, 1881497, 1882082, 1882550, 1882897, 1883116, 1883201, 1883146, 1882948, 1882603, 1882112, 1881478, + 1880708, 1879810, 1878799, 1877687, 1876492, 1875230, 1873921, 1872580, 1871224, 1869867, 1868522, 1867198, 1865904, 1864647, + 1863430, 1862259, 1861133, 1860055, 1859025, 1858043, 1857107, 1856217, 1855371, 1854567, 1853805, 1853082, 1852397, 1851747, + 1851132, 1850550, 1849999, 1849477, 1848984, 1848517, 1848076, 1847660, 1882185, 1882997, 1883702, 1884297, 1884778, 1885140, + 1885377, 1885484, 1885454, 1885284, 1884971, 1884514, 1883918, 1883187, 1882331, 1881359, 1880287, 1879129, 1877903, 1876625, + 1875312, 1873980, 1872643, 1871313, 1870001, 1868716, 1867463, 1866249, 1865077, 1863949, 1862867, 1861832, 1860843, 1859899, + 1859000, 1858144, 1857331, 1856558, 1855825, 1855129, 1854468, 1853842, 1853249, 1852686, 1852154, 1851649, 1851172, 1850720, + 1850293, 1884333, 1885150, 1885862, 1886466, 1886958, 1887335, 1887590, 1887717, 1887711, 1887568, 1887285, 1886863, 1886303, + 1885610, 1884792, 1883860, 1882826, 1881706, 1880514, 1879268, 1877983, 1876676, 1875359, 1874045, 1872746, 1871470, 1870223, + 1869012, 1867841, 1866712, 1865627, 1864586, 1863591, 1862640, 1861733, 1860868, 1860046, 1859263, 1858520, 1857813, 1857142, + 1856505, 1855901, 1855328, 1854785, 1854270, 1853781, 1853319, 1852881, 1886435, 1887257, 1887976, 1888589, 1889092, 1889482, + 1889753, 1889900, 1889917, 1889800, 1889547, 1889157, 1888631, 1887975, 1887195, 1886302, 1885306, 1884222, 1883065, 1881850, + 1880594, 1879311, 1878015, 1876719, 1875433, 1874167, 1872927, 1871721, 1870551, 1869421, 1868333, 1867289, 1866288, 1865331, + 1864416, 1863544, 1862712, 1861921, 1861167, 1860451, 1859770, 1859122, 1858508, 1857924, 1857370, 1856845, 1856346, 1855874, + 1855425, 1888493, 1889319, 1890044, 1890665, 1891179, 1891582, 1891869, 1892035, 1892074, 1891982, 1891757, 1891398, 1890906, + 1890285, 1889542, 1888685, 1887727, 1886679, 1885556, 1884373, 1883145, 1881887, 1880613, 1879334, 1878063, 1876808, 1875576, + 1874374, 1873207, 1872078, 1870988, 1869941, 1868935, 1867972, 1867051, 1866171, 1865331, 1864531, 1863768, 1863042, 1862351, + 1861694, 1861070, 1860476, 1859912, 1859376, 1858868, 1858385, 1857927, 1890524, 1891353, 1892084, 1892713, 1893237, 1893652, + 1893954, 1894137, 1894197, 1894129, 1893930, 1893601, 1893141, 1892554, 1891846, 1891026, 1890103, 1889090, 1888000, 1886849, + 1885649, 1884416, 1883164, 1881904, 1880647, 1879404, 1878181, 1876985, 1875821, 1874692, 1873602, 1872551, 1871542, 1870573, + 1869645, 1868758, 1867911, 1867102, 1866331, 1865595, 1864895, 1864229, 1863594, 1862991, 1862417, 1861871, 1861352, 1860860, + 1860392, 1892509, 1893342, 1894079, 1894715, 1895248, 1895675, 1895991, 1896191, 1896271, 1896226, 1896053, 1895752, 1895323, + 1894769, 1894095, 1893310, 1892422, 1891444, 1890387, 1889267, 1888096, 1886888, 1885658, 1884417, 1883176, 1881945, 1880731, + 1879542, 1878382, 1877255, 1876165, 1875112, 1874099, 1873126, 1872193, 1871299, 1870444, 1869628, 1868848, 1868104, 1867395, + 1866719, 1866075, 1865462, 1864879, 1864323, 1863795, 1863293, 1862815, 1894450, 1895286, 1896028, 1896671, 1897213, 1897651, + 1897981, 1898198, 1898296, 1898273, 1898125, 1897851, 1897452, 1896930, 1896290, 1895539, 1894686, 1893741, 1892717, 1891627, + 1890485, 1889304, 1888096, 1886875, 1885650, 1884432, 1883228, 1882046, 1880891, 1879767, 1878677, 1877624, 1876608, 1875631, + 1874693, 1873793, 1872932, 1872108, 1871320, 1870568, 1869850, 1869166, 1868513, 1867891, 1867298, 1866734, 1866196, 1865684, + 1865197, 1896345, 1897185, 1897931, 1898581, 1899132, 1899581, 1899924, 1900156, 1900273, 1900271, 1900147, 1899900, 1899530, + 1899039, 1898431, 1897713, 1896893, 1895982, 1894991, 1893932, 1892818, 1891662, 1890478, 1889276, 1888069, 1886865, 1885672, + 1884498, 1883349, 1882228, 1881140, 1880086, 1879068, 1878088, 1877146, 1876241, 1875373, 1874543, 1873748, 1872988, 1872262, + 1871569, 1870908, 1870277, 1869676, 1869102, 1868556, 1868035, 1867539, 136533, 136533, 136533, 136533, 136533, 136533, + 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 135924, 125277, 108081, 91368, 77552, + 66660, 58112, 51334, 45876, 41412, 37706, 34587, 31931, 29644, 27657, 25914, 24375, 23005, 21780, + 20677, 19679, 18772, 17944, 17186, 16489, 15845, 15250, 14698, 14184, 13704, 13256, 12836, 12442, + 12071, 11721, 11392, 11080, 10784, 10504, 10238, 9986, 9745, 9516, 9297, 9088, 8888, 8697, + 8513, 8338, 8169, 8007, 7852, 7702, 7558, 7419, 7285, 7156, 7031, 6911, 6795, 6682, + 6574, 6468, 6366, 6267, 6172, 6079, 5989, 5901, 5816, 5733, 5653, 5575, 5499, 5425, + 5353, 5283, 5215, 5148, 5083, 5020, 4959 +]; +/// NMOS log-domain current table, corner mos_tt, IHP-Open-PDK 21133f21, L 0.45 um, 27 C, at the source-to-bulk voltage Vsb = 0.75 V (slice 3): the tag word (4294967295), then the 4753 words ix * 49 + iy of log2(Id / F) in 1/65536 octave over 2^-8 of a linear-table word (1.164 pA), then the 97 rv words; the format of TT_LG_N (deck psp103_idpa_vsb_tt.cir, blocks lam_n_3 and r_3). +pub const VSB_N3 : [4851]u32 = [ + 4294967295, 101225, 128845, 123600, 125011, 128923, 133949, 139251, 144672, 149985, 155108, 160016, 164703, 169176, + 173442, 177515, 181406, 185129, 188696, 192119, 195409, 198577, 201633, 204586, 207445, 210218, 212913, 215538, + 218099, 220602, 223055, 225462, 227830, 230164, 232470, 234751, 237013, 239263, 241504, 243743, 245987, 248245, + 250528, 252851, 255293, 257770, 260366, 263121, 266089, 269336, 148203, 165434, 162236, 164211, 168414, 173675, + 179186, 184810, 190309, 195602, 200662, 205485, 210077, 214448, 218611, 222579, 226367, 229985, 233449, 236768, + 239953, 243016, 245965, 248810, 251558, 254217, 256795, 259298, 261732, 264103, 266417, 268679, 270895, 273068, + 275204, 277306, 279380, 281430, 283461, 285477, 287486, 289494, 291511, 293548, 295665, 297806, 300032, 302376, + 304882, 195209, 205513, 203789, 206169, 210587, 216020, 221771, 227538, 233102, 238522, 243696, 248620, 253302, + 257752, 261984, 266011, 269849, 273509, 277006, 280351, 283555, 286629, 289582, 292423, 295161, 297802, 300354, + 302824, 305218, 307541, 309798, 311996, 314137, 316228, 318272, 320273, 322235, 324162, 326058, 327927, 329773, + 331602, 333420, 335233, 337053, 338919, 340799, 342734, 344752, 242243, 248071, 247353, 250014, 254584, 260143, + 266014, 271891, 277609, 283068, 288326, 293326, 298075, 302584, 306868, 310941, 314818, 318512, 322037, 325404, + 328626, 331712, 334673, 337517, 340252, 342887, 345428, 347881, 350254, 352550, 354776, 356937, 359036, 361078, + 363067, 365007, 366902, 368754, 370568, 372346, 374092, 375811, 377506, 379182, 380845, 382502, 384183, 385867, + 387584, 289304, 292306, 292250, 295100, 299780, 305430, 311390, 317350, 323143, 328705, 333992, 339049, 343848, + 348403, 352727, 356836, 360744, 364465, 368013, 371383, 374621, 377721, 380691, 383542, 386282, 388931, 391469, + 393916, 396279, 398563, 400773, 402914, 404990, 407005, 408964, 410870, 412725, 414535, 416300, 418025, 419713, + 421366, 422988, 424583, 426153, 427705, 429244, 430788, 432329, 336391, 337634, 338005, 340984, 345744, 351463, + 357493, 363515, 369367, 374982, 380336, 385419, 390258, 394849, 399205, 403328, 407260, 411003, 414570, 417974, + 421227, 424339, 427320, 430179, 432924, 435564, 438104, 440552, 442913, 445193, 447397, 449530, 451596, 453598, + 455542, 457430, 459265, 461051, 462791, 464493, 466147, 467763, 469344, 470892, 472410, 473901, 475370, 476824, + 478264, 383504, 383665, 384308, 387377, 392198, 397970, 404056, 410129, 416028, 421686, 427080, 432198, 437070, + 441683, 446062, 450221, 454174, 457936, 461521, 464941, 468207, 471331, 474322, 477190, 479943, 482588, 485133, + 487584, 489947, 492227, 494430, 496560, 498622, 500619, 502556, 504435, 506260, 508034, 509759, 511440, 513077, + 514673, 516232, 517755, 519244, 520703, 522136, 523541, 524925, 430640, 430141, 430959, 434093, 438963, 444779, + 450911, 457027, 462966, 468661, 474088, 479244, 484137, 488775, 493177, 497357, 501330, 505109, 508710, 512143, + 515423, 518558, 521560, 524437, 527197, 529850, 532400, 534856, 537223, 539507, 541712, 543843, 545904, 547901, + 549835, 551711, 553532, 555301, 557021, 558694, 560322, 561908, 563455, 564964, 566438, 567879, 569289, 570670, + 572025, 477799, 476900, 477833, 481016, 485927, 491780, 497954, 504107, 510081, 515808, 521265, 526448, 531367, + 536027, 540450, 544649, 548639, 552435, 556049, 559497, 562788, 565934, 568946, 571832, 574601, 577261, 579819, + 582280, 584652, 586940, 589149, 591283, 593348, 595346, 597281, 599158, 600978, 602746, 604464, 606134, 607759, + 609341, 610882, 612385, 613852, 615283, 616682, 618051, 619391, 524978, 523840, 524851, 528073, 533019, 538909, + 545118, 551304, 557310, 563067, 568551, 573759, 578700, 583383, 587825, 592041, 596047, 599858, 603486, 606946, + 610249, 613406, 616428, 619323, 622100, 624768, 627332, 629800, 632178, 634471, 636685, 638823, 640891, 642892, + 644830, 646709, 648531, 650300, 652019, 653689, 655313, 656895, 658435, 659935, 661399, 662827, 664221, 665584, + 666916, 572172, 570897, 571961, 575217, 580196, 586119, 592360, 598578, 604614, 610398, 615908, 621139, 626100, + 630803, 635264, 639497, 643518, 647343, 650984, 654456, 657770, 660937, 663969, 666873, 669658, 672333, 674905, + 677380, 679764, 682062, 684281, 686424, 688496, 690501, 692443, 694325, 696150, 697921, 699642, 701314, 702940, + 704522, 706062, 707563, 709026, 710453, 711846, 713207, 714536, 619376, 618027, 619133, 622417, 627426, 633381, + 639652, 645900, 651963, 657774, 663307, 668561, 673542, 678263, 682741, 686990, 691025, 694863, 698517, 702000, + 705325, 708503, 711543, 714456, 717249, 719932, 722510, 724992, 727382, 729686, 731910, 734058, 736135, 738144, + 740090, 741976, 743804, 745578, 747302, 748976, 750604, 752188, 753731, 755233, 756697, 758125, 759518, 760878, + 762207, 666579, 665200, 666340, 669652, 674689, 680672, 686972, 693248, 699337, 705172, 710727, 716001, 721001, + 725741, 730234, 734498, 738547, 742397, 746063, 749557, 752892, 756079, 759128, 762049, 764850, 767540, 770125, + 772613, 775009, 777319, 779548, 781701, 783782, 785796, 787746, 789635, 791467, 793245, 794971, 796648, 798279, + 799866, 801410, 802915, 804381, 805810, 807205, 808566, 809896, 713764, 712390, 713563, 716900, 721962, 727972, + 734299, 740599, 746712, 752569, 758146, 763438, 768456, 773211, 777719, 781996, 786058, 789920, 793597, 797101, + 800445, 803640, 806698, 809626, 812434, 815131, 817722, 820216, 822617, 824933, 827167, 829324, 831410, 833428, + 835382, 837275, 839110, 840892, 842621, 844301, 845935, 847524, 849071, 850577, 852046, 853477, 854873, 856236, + 857567, 760905, 759572, 760778, 764139, 769224, 775256, 781606, 787929, 794063, 799939, 805533, 810842, 815875, + 820644, 825165, 829454, 833527, 837399, 841085, 844598, 847950, 851153, 854217, 857152, 859967, 862669, 865266, + 867765, 870171, 872491, 874730, 876892, 878981, 881003, 882960, 884857, 886696, 888480, 890212, 891895, 893531, + 895123, 896672, 898181, 899651, 901084, 902482, 903847, 905180, 808381, 806948, 808081, 811398, 816468, 822503, + 828864, 835200, 841349, 847239, 852847, 858169, 863214, 867993, 872524, 876822, 880904, 884784, 888477, 891996, + 895355, 898564, 901634, 904574, 907394, 910101, 912702, 915205, 917615, 919939, 922181, 924346, 926439, 928463, + 930424, 932323, 934164, 935951, 937685, 939370, 941009, 942602, 944153, 945664, 947136, 948571, 949971, 951337, + 952671, 862988, 858487, 857601, 859734, 864176, 869903, 876124, 882403, 888531, 894417, 900027, 905353, 910403, + 915188, 919724, 924027, 928113, 931998, 935695, 939218, 942580, 945792, 948865, 951809, 954631, 957340, 959944, + 962449, 964862, 967187, 969431, 971599, 973693, 975720, 977681, 979582, 981425, 983213, 984949, 986635, 988275, + 989870, 991422, 992933, 994406, 995842, 997243, 998610, 999945, 923570, 914015, 909592, 909476, 912599, 917600, + 923439, 929524, 935555, 941394, 946980, 952294, 957337, 962118, 966651, 970952, 975036, 978919, 982615, 986137, + 989498, 992710, 995782, 998724, 1001546, 1004255, 1006858, 1009362, 1011774, 1014100, 1016343, 1018510, 1020604, 1022630, + 1024592, 1026492, 1028334, 1030122, 1031858, 1033544, 1035183, 1036778, 1038330, 1039841, 1041314, 1042750, 1044150, 1045517, + 1046852, 985629, 971186, 963032, 960302, 961709, 965641, 970839, 976547, 982359, 988070, 993579, 998846, 1003857, + 1008615, 1013131, 1017417, 1021489, 1025361, 1029047, 1032560, 1035913, 1039117, 1042182, 1045118, 1047933, 1050636, 1053234, + 1055734, 1058141, 1060462, 1062701, 1064864, 1066954, 1068977, 1070935, 1072832, 1074671, 1076456, 1078189, 1079872, 1081509, + 1083101, 1084651, 1086160, 1087630, 1089064, 1090462, 1091827, 1093160, 1046592, 1028299, 1016881, 1011633, 1011216, 1013884, + 1018232, 1023379, 1028825, 1034295, 1039644, 1044802, 1049735, 1054437, 1058908, 1063158, 1067200, 1071045, 1074707, 1078199, + 1081533, 1084718, 1087767, 1090687, 1093488, 1096177, 1098762, 1101250, 1103646, 1105956, 1108185, 1110338, 1112419, 1114433, + 1116383, 1118272, 1120104, 1121882, 1123608, 1125285, 1126915, 1128501, 1130045, 1131548, 1133014, 1134442, 1135836, 1137196, + 1138524, 1105270, 1084323, 1070289, 1062809, 1060629, 1061966, 1065335, 1069774, 1074711, 1079816, 1084903, 1089867, 1094657, + 1099247, 1103631, 1107809, 1111790, 1115584, 1119200, 1122651, 1125948, 1129099, 1132116, 1135007, 1137781, 1140445, 1143006, + 1145471, 1147846, 1150136, 1152346, 1154481, 1156546, 1158543, 1160477, 1162352, 1164170, 1165934, 1167647, 1169312, 1170930, + 1172505, 1174038, 1175531, 1176986, 1178405, 1179789, 1181140, 1182460, 1161017, 1138571, 1122571, 1113184, 1109366, 1109376, + 1111697, 1115321, 1119630, 1124252, 1128966, 1133642, 1138204, 1142613, 1146849, 1150906, 1154783, 1158487, 1162025, 1165407, + 1168640, 1171734, 1174698, 1177541, 1180269, 1182891, 1185412, 1187840, 1190180, 1192437, 1194615, 1196721, 1198757, 1200727, + 1202636, 1204486, 1206280, 1208022, 1209714, 1211358, 1212957, 1214513, 1216028, 1217504, 1218942, 1220345, 1221713, 1223049, + 1224354, 1213330, 1190460, 1173118, 1162139, 1156821, 1155534, 1156772, 1159507, 1163091, 1167126, 1171364, 1175652, 1179897, + 1184044, 1188061, 1191932, 1195651, 1199217, 1202634, 1205907, 1209043, 1212049, 1214932, 1217700, 1220359, 1222916, 1225377, + 1227748, 1230034, 1232240, 1234371, 1236431, 1238424, 1240353, 1242223, 1244035, 1245794, 1247502, 1249161, 1250774, 1252343, + 1253870, 1255357, 1256806, 1258219, 1259597, 1260941, 1262254, 1263537, 1261781, 1239447, 1221368, 1209104, 1202421, 1199880, + 1200021, 1201815, 1204601, 1207962, 1211633, 1215443, 1219285, 1223089, 1226813, 1230431, 1233930, 1237303, 1240549, 1243669, + 1246667, 1249548, 1252316, 1254978, 1257539, 1260005, 1262380, 1264671, 1266882, 1269017, 1271080, 1273076, 1275008, 1276880, + 1278694, 1280454, 1282163, 1283823, 1285436, 1287004, 1288531, 1290017, 1291465, 1292876, 1294252, 1295595, 1296906, 1298186, + 1299437, 1306074, 1285051, 1266828, 1253595, 1245693, 1241955, 1241007, 1241835, 1243776, 1246403, 1249438, 1252698, 1256064, + 1259455, 1262819, 1266122, 1269344, 1272471, 1275497, 1278419, 1281238, 1283955, 1286574, 1289098, 1291531, 1293878, 1296142, + 1298329, 1300441, 1302483, 1304459, 1306371, 1308224, 1310021, 1311763, 1313455, 1315097, 1316694, 1318247, 1319757, 1321228, + 1322661, 1324057, 1325418, 1326747, 1328043, 1329309, 1330546, 1331755, 1346136, 1326947, 1309135, 1295273, 1286319, 1281466, + 1279464, 1279333, 1280415, 1282279, 1284639, 1287305, 1290147, 1293075, 1296030, 1298970, 1301868, 1304706, 1307471, 1310158, + 1312763, 1315284, 1317723, 1320081, 1322360, 1324563, 1326693, 1328754, 1330747, 1332677, 1334547, 1336359, 1338116, 1339821, + 1341477, 1343085, 1344648, 1346168, 1347648, 1349088, 1350491, 1351858, 1353192, 1354493, 1355762, 1357002, 1358214, 1359398, + 1360556, 1382125, 1365024, 1348093, 1333963, 1324157, 1318297, 1315306, 1314254, 1314496, 1315602, 1317281, 1319338, 1321634, + 1324076, 1326595, 1329145, 1331691, 1334211, 1336690, 1339115, 1341481, 1343784, 1346022, 1348193, 1350299, 1352341, 1354320, + 1356238, 1358098, 1359902, 1361652, 1363351, 1365000, 1366602, 1368159, 1369673, 1371146, 1372580, 1373976, 1375336, 1376662, + 1377955, 1379217, 1380449, 1381652, 1382828, 1383977, 1385100, 1386199, 1414372, 1399381, 1383674, 1369635, 1359205, 1352473, + 1348582, 1346674, 1346122, 1346502, 1347522, 1348981, 1350737, 1352691, 1354770, 1356921, 1359106, 1361298, 1363478, 1365630, + 1367746, 1369818, 1371843, 1373817, 1375740, 1377610, 1379429, 1381197, 1382915, 1384584, 1386207, 1387785, 1389319, 1390812, + 1392264, 1393678, 1395054, 1396396, 1397703, 1398978, 1400222, 1401436, 1402621, 1403779, 1404910, 1406016, 1407098, 1408156, + 1409192, 1443293, 1430284, 1415996, 1402375, 1391565, 1384115, 1379430, 1376745, 1375463, 1375167, 1375567, 1376459, 1377699, + 1379182, 1380832, 1382592, 1384422, 1386289, 1388170, 1390050, 1391914, 1393755, 1395564, 1397339, 1399076, 1400773, 1402429, + 1404044, 1405618, 1407151, 1408645, 1410100, 1411517, 1412898, 1414244, 1415556, 1416835, 1418082, 1419299, 1420487, 1421647, + 1422780, 1423887, 1424969, 1426027, 1427062, 1428074, 1429066, 1430037, 1469313, 1458082, 1445274, 1432336, 1421393, 1413390, + 1408024, 1404649, 1402709, 1401797, 1401626, 1401993, 1402750, 1403790, 1405034, 1406423, 1407912, 1409466, 1411060, 1412674, + 1414294, 1415908, 1417508, 1419088, 1420643, 1422169, 1423666, 1425131, 1426563, 1427963, 1429329, 1430664, 1431967, 1433238, + 1434480, 1435691, 1436874, 1438029, 1439158, 1440260, 1441337, 1442390, 1443420, 1444427, 1445413, 1446378, 1447323, 1448249, + 1449156, 1492841, 1483156, 1471789, 1459718, 1448874, 1440487, 1434556, 1430580, 1428054, 1426587, 1425898, 1425784, 1426097, + 1426728, 1427595, 1428636, 1429804, 1431063, 1432384, 1433747, 1435134, 1436532, 1437931, 1439323, 1440703, 1442067, 1443410, + 1444730, 1446027, 1447298, 1448543, 1449762, 1450955, 1452122, 1453263, 1454378, 1455469, 1456536, 1457579, 1458599, 1459598, + 1460574, 1461530, 1462466, 1463383, 1464281, 1465160, 1466023, 1466868, 1514218, 1505862, 1495834, 1484733, 1474191, 1465587, + 1459208, 1454718, 1451676, 1449714, 1448559, 1448010, 1447918, 1448173, 1448693, 1449412, 1450282, 1451266, 1452332, 1453459, + 1454626, 1455820, 1457030, 1458245, 1459460, 1460669, 1461867, 1463051, 1464218, 1465368, 1466498, 1467608, 1468696, 1469764, + 1470810, 1471835, 1472840, 1473823, 1474786, 1475729, 1476653, 1477558, 1478445, 1479313, 1480165, 1480999, 1481817, 1482620, + 1483408, 1533753, 1526527, 1517708, 1507610, 1497530, 1488868, 1482157, 1477236, 1473744, 1471343, 1469770, 1468828, 1468369, + 1468281, 1468482, 1468905, 1469501, 1470229, 1471058, 1471964, 1472927, 1473930, 1474962, 1476011, 1477071, 1478134, 1479195, + 1480250, 1481297, 1482332, 1483354, 1484361, 1485352, 1486327, 1487285, 1488225, 1489148, 1490054, 1490942, 1491813, 1492668, + 1493506, 1494328, 1495134, 1495925, 1496700, 1497462, 1498209, 1498942, 1551687, 1545421, 1537674, 1528560, 1519057, 1510484, + 1503552, 1498282, 1494403, 1491615, 1489669, 1488373, 1487580, 1487181, 1487091, 1487242, 1487585, 1488077, 1488687, 1489388, + 1490160, 1490985, 1491851, 1492745, 1493659, 1494586, 1495519, 1496454, 1497387, 1498315, 1499235, 1500146, 1501046, 1501934, + 1502809, 1503671, 1504518, 1505351, 1506170, 1506975, 1507765, 1508541, 1509303, 1510051, 1510786, 1511508, 1512216, 1512912, + 1513596, 1568236, 1562788, 1555980, 1547797, 1538940, 1530580, 1523536, 1517995, 1513788, 1510660, 1508382, 1506767, 1505673, + 1504990, 1504634, 1504536, 1504645, 1504920, 1505326, 1505838, 1506432, 1507091, 1507801, 1508550, 1509328, 1510127, 1510940, + 1511762, 1512588, 1513416, 1514241, 1515062, 1515877, 1516684, 1517482, 1518270, 1519047, 1519813, 1520567, 1521310, 1522041, + 1522759, 1523466, 1524161, 1524844, 1525515, 1526175, 1526824, 1527462, 1583574, 1578823, 1572834, 1565510, 1557329, 1549283, + 1542229, 1536494, 1532015, 1528592, 1526018, 1524117, 1522750, 1521809, 1521209, 1520882, 1520777, 1520850, 1521068, 1521403, + 1521832, 1522336, 1522901, 1523514, 1524164, 1524843, 1525543, 1526259, 1526986, 1527719, 1528455, 1529192, 1529927, 1530658, + 1531383, 1532102, 1532814, 1533517, 1534211, 1534896, 1535572, 1536237, 1536892, 1537538, 1538173, 1538798, 1539414, 1540019, + 1540615, 1597846, 1593693, 1588416, 1581872, 1574368, 1566711, 1559738, 1553882, 1549186, 1545510, 1542674, 1540516, 1538902, + 1537726, 1536902, 1536365, 1536062, 1535949, 1535992, 1536162, 1536437, 1536796, 1537226, 1537711, 1538241, 1538807, 1539402, + 1540018, 1540650, 1541295, 1541947, 1542604, 1543264, 1543923, 1544581, 1545236, 1545886, 1546530, 1547168, 1547799, 1548423, + 1549039, 1549647, 1550246, 1550837, 1551420, 1551994, 1552559, 1553116, 1611175, 1607538, 1602881, 1597037, 1590188, 1582969, + 1576156, 1570250, 1565390, 1561501, 1558436, 1556048, 1554210, 1552818, 1551790, 1551060, 1550573, 1550287, 1550167, 1550185, + 1550315, 1550540, 1550841, 1551207, 1551624, 1552084, 1552578, 1553100, 1553644, 1554204, 1554777, 1555360, 1555948, 1556540, + 1557134, 1557728, 1558320, 1558909, 1559495, 1560075, 1560651, 1561220, 1561784, 1562340, 1562890, 1563433, 1563968, 1564497, + 1565018, 1623660, 1620471, 1616354, 1611136, 1604908, 1598154, 1591565, 1585674, 1580702, 1576639, 1573376, 1570783, 1568742, + 1567155, 1565939, 1565030, 1564374, 1563928, 1563656, 1563531, 1563526, 1563624, 1563806, 1564058, 1564369, 1564729, 1565129, + 1565562, 1566021, 1566502, 1567000, 1567511, 1568032, 1568561, 1569094, 1569630, 1570167, 1570704, 1571240, 1571773, 1572303, + 1572829, 1573351, 1573867, 1574378, 1574884, 1575384, 1575877, 1576365, 1635394, 1632595, 1628950, 1624289, 1618638, 1612358, + 1606043, 1600227, 1595192, 1590993, 1587560, 1584786, 1582563, 1580797, 1579409, 1578335, 1577522, 1576927, 1576514, 1576254, + 1576124, 1576102, 1576171, 1576317, 1576528, 1576793, 1577103, 1577451, 1577831, 1578236, 1578663, 1579106, 1579563, 1580031, + 1580507, 1580988, 1581473, 1581961, 1582449, 1582937, 1583424, 1583909, 1584391, 1584869, 1585344, 1585815, 1586281, 1586742, + 1587199, 1646457, 1643999, 1640768, 1636602, 1631482, 1625670, 1619664, 1613973, 1608924, 1604625, 1601051, 1598118, 1595731, + 1593802, 1592256, 1591029, 1590070, 1589335, 1588791, 1588406, 1588156, 1588022, 1587984, 1588030, 1588145, 1588320, 1588545, + 1588813, 1589117, 1589450, 1589808, 1590187, 1590583, 1590993, 1591413, 1591842, 1592278, 1592718, 1593162, 1593607, 1594052, + 1594498, 1594943, 1595385, 1595826, 1596263, 1596697, 1597128, 1597555, 1656903, 1654745, 1651880, 1648153, 1643518, 1638159, + 1632484, 1626962, 1621941, 1617580, 1613892, 1610822, 1608289, 1606213, 1604521, 1603154, 1602059, 1601196, 1600527, 1600025, + 1599664, 1599423, 1599285, 1599235, 1599260, 1599350, 1599494, 1599685, 1599916, 1600181, 1600474, 1600791, 1601129, 1601483, + 1601851, 1602230, 1602618, 1603012, 1603413, 1603817, 1604223, 1604631, 1605040, 1605448, 1605856, 1606262, 1606666, 1607067, + 1607466, 1666792, 1664900, 1662358, 1659022, 1654829, 1649901, 1644567, 1639247, 1634294, 1629904, 1626131, 1622946, 1620284, + 1618074, 1616250, 1614752, 1613532, 1612548, 1611764, 1611151, 1610684, 1610344, 1610111, 1609970, 1609910, 1609918, 1609985, + 1610103, 1610265, 1610464, 1610694, 1610953, 1611234, 1611535, 1611852, 1612183, 1612525, 1612876, 1613235, 1613599, 1613968, + 1614340, 1614715, 1615090, 1615466, 1615842, 1616217, 1616591, 1616963, 1676178, 1674521, 1672265, 1669278, 1665485, 1660963, + 1655971, 1650878, 1646028, 1641642, 1637810, 1634530, 1631756, 1629426, 1627481, 1625863, 1624526, 1623429, 1622536, 1621819, + 1621254, 1620818, 1620495, 1620269, 1620127, 1620058, 1620051, 1620099, 1620194, 1620330, 1620501, 1620702, 1620929, 1621179, + 1621447, 1621732, 1622030, 1622339, 1622658, 1622984, 1623317, 1623654, 1623996, 1624339, 1624685, 1625032, 1625379, 1625726, + 1626073, 1685104, 1683658, 1681657, 1678980, 1675548, 1671404, 1666749, 1661900, 1657181, 1652830, 1648964, 1645610, 1642739, + 1640304, 1638248, 1636520, 1635074, 1633871, 1632877, 1632063, 1631403, 1630878, 1630469, 1630162, 1629942, 1629798, 1629721, + 1629702, 1629733, 1629809, 1629922, 1630068, 1630243, 1630443, 1630665, 1630904, 1631160, 1631428, 1631708, 1631998, 1632295, + 1632599, 1632908, 1633222, 1633538, 1633857, 1634177, 1634499, 1634820, 1693599, 1692342, 1690569, 1688170, 1685066, 1681273, + 1676944, 1672348, 1667784, 1663494, 1659620, 1656212, 1653262, 1650732, 1648577, 1646748, 1645203, 1643901, 1642812, 1641905, + 1641157, 1640547, 1640057, 1639672, 1639378, 1639164, 1639020, 1638936, 1638907, 1638923, 1638981, 1639075, 1639200, 1639352, + 1639528, 1639724, 1639938, 1640168, 1640410, 1640664, 1640927, 1641199, 1641477, 1641760, 1642048, 1642340, 1642634, 1642931, + 1643229, 1701705, 1700616, 1699048, 1696900, 1694091, 1690621, 1686604, 1682265, 1677874, 1673669, 1669810, 1666367, 1663353, + 1660744, 1658499, 1656578, 1654940, 1653547, 1652368, 1651375, 1650544, 1649853, 1649286, 1648827, 1648462, 1648181, 1647972, + 1647827, 1647738, 1647699, 1647703, 1647746, 1647822, 1647928, 1648060, 1648214, 1648388, 1648580, 1648786, 1649005, 1649235, + 1649475, 1649723, 1649977, 1650238, 1650503, 1650772, 1651044, 1651319, 1709445, 1708510, 1707126, 1705202, 1702661, 1699489, + 1695769, 1691686, 1687479, 1683381, 1679557, 1676100, 1673037, 1670360, 1668037, 1666033, 1664309, 1662831, 1661569, 1660494, + 1659584, 1658817, 1658177, 1657647, 1657215, 1656869, 1656598, 1656394, 1656249, 1656156, 1656108, 1656102, 1656131, 1656192, + 1656281, 1656395, 1656530, 1656684, 1656855, 1657040, 1657238, 1657447, 1657666, 1657892, 1658126, 1658366, 1658610, 1658859, + 1659111, 1716854, 1716057, 1714839, 1713118, 1710819, 1707920, 1704479, 1700647, 1696634, 1692657, 1688889, 1685434, 1682339, + 1679606, 1677215, 1675135, 1673333, 1671777, 1670436, 1669285, 1668300, 1667461, 1666751, 1666154, 1665657, 1665249, 1664919, + 1664658, 1664459, 1664313, 1664217, 1664163, 1664146, 1664164, 1664212, 1664286, 1664383, 1664501, 1664637, 1664790, 1664956, + 1665135, 1665325, 1665524, 1665731, 1665946, 1666166, 1666392, 1666622, 1723954, 1723282, 1722214, 1720677, 1718598, 1715949, + 1712770, 1709181, 1705365, 1701523, 1697827, 1694392, 1691279, 1688502, 1686053, 1683906, 1682033, 1680403, 1678990, 1677766, + 1676711, 1675804, 1675027, 1674367, 1673808, 1673341, 1672953, 1672638, 1672386, 1672190, 1672046, 1671945, 1671885, 1671861, + 1671868, 1671904, 1671964, 1672047, 1672150, 1672270, 1672406, 1672555, 1672717, 1672889, 1673071, 1673260, 1673457, 1673660, + 1673868, 1730752, 1730194, 1729264, 1727893, 1726015, 1723596, 1720661, 1717307, 1713690, 1709993, 1706383, 1702984, 1699866, + 1697059, 1694562, 1692356, 1690419, 1688723, 1687241, 1685951, 1684829, 1683858, 1683018, 1682297, 1681680, 1681155, 1680714, + 1680346, 1680043, 1679800, 1679608, 1679464, 1679361, 1679296, 1679264, 1679262, 1679287, 1679336, 1679406, 1679495, 1679601, + 1679721, 1679856, 1680002, 1680158, 1680324, 1680497, 1680678, 1680865, 1737288, 1736834, 1736028, 1734808, 1733112, 1730904, + 1728197, 1725066, 1721646, 1718100, 1714589, 1711238, 1708130, 1705304, 1702768, 1700512, 1698517, 1696760, 1695215, 1693862, + 1692678, 1691645, 1690746, 1689966, 1689293, 1688714, 1688220, 1687801, 1687450, 1687160, 1686924, 1686736, 1686592, 1686488, + 1686418, 1686379, 1686369, 1686385, 1686423, 1686481, 1686557, 1686650, 1686757, 1686878, 1687009, 1687151, 1687302, 1687461, + 1687628, 1743575, 1743216, 1742524, 1741442, 1739912, 1737897, 1735400, 1732482, 1729254, 1725863, 1722460, 1719171, 1716084, + 1713250, 1710685, 1708386, 1706341, 1704527, 1702925, 1701513, 1700270, 1699179, 1698223, 1697388, 1696661, 1696030, 1695485, + 1695018, 1694620, 1694285, 1694005, 1693776, 1693592, 1693448, 1693342, 1693268, 1693224, 1693206, 1693213, 1693241, 1693289, + 1693354, 1693435, 1693530, 1693637, 1693756, 1693885, 1694022, 1694168, 1749619, 1749347, 1748759, 1747803, 1746425, 1744587, + 1742287, 1739570, 1736529, 1733295, 1730007, 1726790, 1723737, 1720905, 1718320, 1715988, 1713898, 1712035, 1710380, 1708913, + 1707615, 1706469, 1705460, 1704572, 1703793, 1703113, 1702520, 1702006, 1701563, 1701184, 1700862, 1700593, 1700370, 1700189, + 1700046, 1699938, 1699861, 1699812, 1699788, 1699787, 1699807, 1699845, 1699900, 1699970, 1700053, 1700149, 1700256, 1700373, + 1700498, 1755442, 1755250, 1754757, 1753916, 1752676, 1751002, 1748884, 1746356, 1743497, 1740419, 1737252, 1734116, 1731106, + 1728287, 1725692, 1723333, 1721205, 1719298, 1717595, 1716077, 1714728, 1713531, 1712470, 1711532, 1710705, 1709976, 1709337, + 1708778, 1708292, 1707871, 1707509, 1707200, 1706939, 1706722, 1706545, 1706403, 1706293, 1706213, 1706159, 1706130, 1706122, + 1706134, 1706163, 1706209, 1706269, 1706343, 1706428, 1706524, 1706629, 1761046, 1760928, 1760523, 1759788, 1758676, 1757152, + 1755203, 1752854, 1750168, 1747245, 1744203, 1741155, 1738199, 1735402, 1732805, 1730427, 1728269, 1726323, 1724576, 1723013, + 1721616, 1720370, 1719262, 1718276, 1717402, 1716628, 1715945, 1715343, 1714815, 1714353, 1713952, 1713605, 1713308, 1713056, + 1712845, 1712670, 1712530, 1712419, 1712336, 1712279, 1712244, 1712230, 1712235, 1712257, 1712294, 1712345, 1712409, 1712485, + 1712571, 1766464, 1766413, 1766089, 1765451, 1764457, 1763071, 1761278, 1759096, 1756576, 1753805, 1750888, 1747934, 1745038, + 1742272, 1739683, 1737293, 1735110, 1733131, 1731345, 1729739, 1728298, 1727007, 1725853, 1724822, 1723903, 1723086, 1722360, + 1721716, 1721147, 1720647, 1720208, 1719824, 1719492, 1719206, 1718961, 1718755, 1718583, 1718443, 1718332, 1718247, 1718186, + 1718146, 1718127, 1718125, 1718140, 1718169, 1718213, 1718268, 1718335, 1771689, 1771701, 1771451, 1770903, 1770016, 1768758, + 1767111, 1765085, 1762724, 1760100, 1757310, 1754455, 1751626, 1748899, 1746324, 1743930, 1741729, 1739722, 1737902, 1736257, + 1734775, 1733442, 1732245, 1731172, 1730211, 1729352, 1728585, 1727902, 1727294, 1726756, 1726280, 1725861, 1725495, 1725175, + 1724899, 1724661, 1724460, 1724291, 1724152, 1724040, 1723953, 1723889, 1723846, 1723821, 1723814, 1723822, 1723844, 1723880, + 1723928, 1776743, 1776813, 1776631, 1776166, 1775379, 1774238, 1772726, 1770847, 1768636, 1766155, 1763491, 1760736, 1757981, + 1755300, 1752746, 1750354, 1748141, 1746112, 1744262, 1742583, 1741063, 1739691, 1738454, 1737340, 1736339, 1735440, 1734634, + 1733912, 1733267, 1732692, 1732181, 1731728, 1731328, 1730976, 1730669, 1730401, 1730171, 1729974, 1729808, 1729670, 1729557, + 1729469, 1729402, 1729354, 1729325, 1729312, 1729315, 1729331, 1729360, 1781629, 1781752, 1781634, 1781245, 1780550, 1779519, + 1778131, 1776389, 1774321, 1771979, 1769438, 1766787, 1764109, 1761479, 1758954, 1756571, 1754352, 1752305, 1750430, 1748720, + 1747166, 1745758, 1744483, 1743331, 1742292, 1741355, 1740512, 1739753, 1739073, 1738463, 1737917, 1737431, 1736999, 1736616, + 1736278, 1735981, 1735722, 1735497, 1735305, 1735141, 1735004, 1734892, 1734801, 1734732, 1734681, 1734648, 1734630, 1734627, + 1734638, 1786359, 1786532, 1786473, 1786154, 1785544, 1784614, 1783342, 1781729, 1779795, 1777585, 1775167, 1772619, 1770022, + 1767449, 1764958, 1762590, 1760371, 1758312, 1756416, 1754679, 1753095, 1751653, 1750343, 1749156, 1748080, 1747107, 1746228, + 1745434, 1744719, 1744075, 1743497, 1742978, 1742515, 1742101, 1741733, 1741408, 1741121, 1740870, 1740652, 1740463, 1740302, + 1740166, 1740053, 1739962, 1739890, 1739836, 1739799, 1739777, 1739769, 1790935, 1791154, 1791150, 1790897, 1790366, 1789529, + 1788366, 1786873, 1785066, 1782984, 1780685, 1778240, 1775727, 1773215, 1770764, 1768417, 1766202, 1764136, 1762223, 1760464, + 1758852, 1757380, 1756038, 1754817, 1753707, 1752700, 1751787, 1750959, 1750211, 1749535, 1748924, 1748375, 1747881, 1747438, + 1747042, 1746689, 1746375, 1746098, 1745854, 1745641, 1745456, 1745297, 1745162, 1745049, 1744957, 1744883, 1744827, 1744786, + 1744760, 1795381, 1795642, 1795688, 1795496, 1795038, 1794287, 1793225, 1791844, 1790157, 1788196, 1786012, 1783671, 1781243, + 1778796, 1776388, 1774067, 1771862, 1769793, 1767868, 1766090, 1764453, 1762953, 1761581, 1760329, 1759187, 1758147, 1757201, + 1756341, 1755561, 1754853, 1754212, 1753632, 1753109, 1752637, 1752213, 1751833, 1751493, 1751190, 1750921, 1750684, 1750476, + 1750295, 1750138, 1750004, 1749891, 1749798, 1749722, 1749663, 1749620, 1799676, 1799977, 1800071, 1799935, 1799545, 1798876, + 1797907, 1796632, 1795058, 1793213, 1791142, 1788902, 1786560, 1784181, 1781822, 1779532, 1777342, 1775275, 1773342, 1771548, + 1769891, 1768367, 1766967, 1765686, 1764514, 1763443, 1762467, 1761576, 1760765, 1760028, 1759357, 1758748, 1758197, 1757697, + 1757246, 1756840, 1756474, 1756147, 1755854, 1755593, 1755363, 1755159, 1754981, 1754827, 1754694, 1754582, 1754488, 1754411, + 1754350, 1803854, 1804192, 1804330, 1804247, 1803920, 1803325, 1802444, 1801267, 1799801, 1798066, 1796102, 1793962, 1791707, + 1789397, 1787091, 1784834, 1782664, 1780603, 1778667, 1776861, 1775186, 1773639, 1772215, 1770906, 1769706, 1768607, 1767600, + 1766681, 1765840, 1765073, 1764374, 1763738, 1763158, 1762632, 1762155, 1761723, 1761332, 1760980, 1760664, 1760380, 1760127, + 1759903, 1759704, 1759529, 1759377, 1759245, 1759132, 1759038, 1758959, 1807907, 1808279, 1808458, 1808424, 1808156, 1807631, + 1806832, 1805747, 1804381, 1802751, 1800892, 1798849, 1796680, 1794442, 1792190, 1789972, 1787825, 1785775, 1783838, 1782024, + 1780335, 1778769, 1777322, 1775989, 1774762, 1773635, 1772601, 1771654, 1770785, 1769991, 1769264, 1768600, 1767994, 1767442, + 1766939, 1766482, 1766068, 1765692, 1765353, 1765047, 1764772, 1764526, 1764307, 1764112, 1763941, 1763790, 1763660, 1763547, + 1763452, 1811834, 1812239, 1812456, 1812468, 1812256, 1811796, 1811073, 1810075, 1808804, 1807275, 1805515, 1803568, 1801484, + 1799319, 1797124, 1794948, 1792828, 1790793, 1788860, 1787041, 1785340, 1783758, 1782291, 1780936, 1779685, 1778533, 1777473, + 1776498, 1775604, 1774782, 1774029, 1773340, 1772708, 1772131, 1771603, 1771122, 1770684, 1770286, 1769924, 1769596, 1769300, + 1769034, 1768795, 1768581, 1768390, 1768222, 1768073, 1767944, 1767832, 1815661, 1816096, 1816348, 1816404, 1816242, 1815844, + 1815192, 1814275, 1813094, 1811658, 1809995, 1808140, 1806140, 1804048, 1801912, 1799781, 1797691, 1795674, 1793748, 1791927, + 1790218, 1788622, 1787138, 1785762, 1784488, 1783312, 1782227, 1781228, 1780307, 1779461, 1778682, 1777967, 1777311, 1776709, + 1776158, 1775653, 1775192, 1774771, 1774387, 1774039, 1773722, 1773435, 1773176, 1772943, 1772734, 1772547, 1772382, 1772235, + 1772107, 1819377, 1819839, 1820126, 1820221, 1820108, 1819766, 1819181, 1818341, 1817244, 1815898, 1814326, 1812561, 1810645, + 1808625, 1806550, 1804465, 1802410, 1800413, 1798498, 1796679, 1794964, 1793357, 1791858, 1790463, 1789169, 1787971, 1786863, + 1785840, 1784895, 1784024, 1783221, 1782482, 1781802, 1781176, 1780602, 1780075, 1779591, 1779148, 1778743, 1778374, 1778037, + 1777730, 1777452, 1777200, 1776973, 1776769, 1776586, 1776423, 1776278, 1822994, 1823483, 1823801, 1823933, 1823865, 1823577, + 1823054, 1822286, 1821268, 1820008, 1818524, 1816845, 1815010, 1813062, 1811049, 1809013, 1806994, 1805021, 1803120, 1801305, + 1799588, 1797973, 1796460, 1795049, 1793737, 1792518, 1791388, 1790342, 1789374, 1788480, 1787654, 1786891, 1786188, 1785540, + 1784943, 1784393, 1783888, 1783424, 1782999, 1782609, 1782252, 1781926, 1781629, 1781359, 1781114, 1780892, 1780692, 1780513, + 1780352, 1826515, 1827028, 1827375, 1827543, 1827516, 1827278, 1826814, 1826113, 1825170, 1823991, 1822590, 1820995, 1819239, + 1817364, 1815412, 1813427, 1811446, 1809501, 1807616, 1805809, 1804092, 1802470, 1800947, 1799522, 1798193, 1796955, 1795805, + 1794738, 1793748, 1792831, 1791983, 1791198, 1790473, 1789802, 1789183, 1788613, 1788086, 1787602, 1787156, 1786746, 1786370, + 1786025, 1785710, 1785421, 1785159, 1784920, 1784704, 1784508, 1784332, 1829939, 1830475, 1830849, 1831050, 1831063, 1830872, + 1830463, 1829825, 1828953, 1827851, 1826531, 1825016, 1823337, 1821533, 1819644, 1817710, 1815769, 1813854, 1811988, 1810191, + 1808477, 1806852, 1805321, 1803884, 1802539, 1801284, 1800116, 1799028, 1798018, 1797081, 1796211, 1795405, 1794658, 1793966, + 1793326, 1792735, 1792188, 1791683, 1791218, 1790788, 1790393, 1790030, 1789697, 1789391, 1789111, 1788856, 1788623, 1788412, + 1788220, 1833280, 1833837, 1834237, 1834469, 1834519, 1834372, 1834015, 1833436, 1832631, 1831601, 1830357, 1828919, 1827316, + 1825582, 1823755, 1821874, 1819975, 1818091, 1816247, 1814463, 1812754, 1811128, 1809590, 1808143, 1806785, 1805515, 1804328, + 1803223, 1802193, 1801235, 1800345, 1799518, 1798751, 1798038, 1797378, 1796766, 1796200, 1795675, 1795191, 1794743, 1794329, + 1793948, 1793597, 1793274, 1792977, 1792706, 1792457, 1792230, 1792023, 1836525, 1837103, 1837527, 1837788, 1837873, 1837768, + 1837459, 1836937, 1836195, 1835234, 1834063, 1832700, 1831170, 1829504, 1827739, 1825911, 1824056, 1822206, 1820386, 1818618, + 1816916, 1815291, 1813750, 1812295, 1810925, 1809641, 1808439, 1807316, 1806268, 1805292, 1804382, 1803536, 1802749, 1802017, + 1801337, 1800706, 1800120, 1799577, 1799073, 1798607, 1798176, 1797777, 1797409, 1797069, 1796756, 1796468, 1796204, 1795961, + 1795739, 1839689, 1840285, 1840732, 1841021, 1841139, 1841073, 1840810, 1840341, 1839659, 1838763, 1837662, 1836370, 1834911, + 1833313, 1831609, 1829835, 1828025, 1826209, 1824416, 1822665, 1820973, 1819352, 1817809, 1816347, 1814969, 1813672, 1812456, + 1811317, 1810252, 1809258, 1808330, 1807465, 1806659, 1805908, 1805209, 1804559, 1803955, 1803393, 1802872, 1802388, 1801939, + 1801523, 1801138, 1800782, 1800453, 1800149, 1799869, 1799612, 1799376, 1842786, 1843399, 1843868, 1844181, 1844330, 1844301, + 1844081, 1843662, 1843036, 1842202, 1841167, 1839944, 1838553, 1837020, 1835377, 1833656, 1831891, 1830113, 1828347, 1826615, + 1824936, 1823320, 1821777, 1820311, 1818924, 1817617, 1816387, 1815234, 1814153, 1813141, 1812196, 1811313, 1810489, 1809720, + 1809003, 1808334, 1807712, 1807132, 1806593, 1806092, 1805626, 1805193, 1804791, 1804419, 1804074, 1803755, 1803460, 1803188, + 1802937, 1845788, 1846418, 1846907, 1847245, 1847423, 1847428, 1847250, 1846878, 1846305, 1845531, 1844560, 1843402, 1842077, + 1840609, 1839026, 1837359, 1835640, 1833900, 1832163, 1830454, 1828788, 1827181, 1825640, 1824171, 1822778, 1821462, 1820221, + 1819054, 1817959, 1816932, 1815970, 1815070, 1814229, 1813442, 1812708, 1812022, 1811383, 1810786, 1810230, 1809711, 1809229, + 1808780, 1808362, 1807974, 1807614, 1807280, 1806970, 1806684, 1806419, 1848738, 1849383, 1849891, 1850251, 1850456, 1850494, + 1850354, 1850027, 1849505, 1848786, 1847874, 1846780, 1845518, 1844112, 1842587, 1840974, 1839302, 1837600, 1835894, 1834207, + 1832558, 1830959, 1829422, 1827953, 1826555, 1825231, 1823980, 1822801, 1821692, 1820650, 1819673, 1818757, 1817898, 1817095, + 1816344, 1815641, 1814984, 1814371, 1813798, 1813263, 1812764, 1812299, 1811866, 1811462, 1811087, 1810737, 1810413, 1810112, + 1809834, 1851608, 1852268, 1852793, 1853175, 1853406, 1853475, 1853371, 1853086, 1852611, 1851946, 1851092, 1850058, 1848858, + 1847512, 1846045, 1844484, 1842859, 1841196, 1839523, 1837861, 1836229, 1834642, 1833111, 1831642, 1830242, 1828911, 1827651, + 1826462, 1825340, 1824285, 1823293, 1822361, 1821487, 1820668, 1819900, 1819181, 1818508, 1817878, 1817289, 1816739, 1816224, + 1815743, 1815295, 1814876, 1814486, 1814122, 1813784, 1813469, 1813177, 1854413, 1855087, 1855628, 1856030, 1856286, 1856383, + 1856314, 1856068, 1855640, 1855025, 1854225, 1853249, 1852108, 1850821, 1849410, 1847902, 1846323, 1844701, 1843061, 1841425, + 1839812, 1838238, 1836714, 1835248, 1833846, 1832511, 1831244, 1830044, 1828911, 1827843, 1826838, 1825892, 1825003, 1824168, + 1823385, 1822650, 1821962, 1821316, 1820711, 1820145, 1819615, 1819119, 1818656, 1818222, 1817817, 1817440, 1817087, 1816759, + 1816453, 1857138, 1857825, 1858382, 1858804, 1859082, 1859208, 1859171, 1858964, 1858578, 1858012, 1857265, 1856344, 1855260, + 1854030, 1852675, 1851219, 1849687, 1848105, 1846499, 1844891, 1843299, 1841740, 1840225, 1838764, 1837362, 1836024, 1834751, + 1833543, 1832400, 1831321, 1830303, 1829343, 1828441, 1827591, 1826793, 1826044, 1825340, 1824679, 1824060, 1823478, 1822934, + 1822423, 1821945, 1821498, 1821079, 1820687, 1820321, 1819980, 1819661, 1859814, 1860512, 1861085, 1861524, 1861824, 1861976, + 1861970, 1861798, 1861454, 1860933, 1860236, 1859368, 1858339, 1857164, 1855863, 1854457, 1852972, 1851431, 1849860, 1848280, + 1846710, 1845167, 1843663, 1842207, 1840807, 1839467, 1838189, 1836974, 1835822, 1834732, 1833702, 1832730, 1831814, 1830951, + 1830139, 1829375, 1828656, 1827981, 1827347, 1826751, 1826192, 1825667, 1825174, 1824713, 1824280, 1823875, 1823496, 1823141, + 1822809, 1862425, 1863135, 1863721, 1864178, 1864499, 1864675, 1864698, 1864560, 1864255, 1863777, 1863128, 1862311, 1861335, + 1860213, 1858964, 1857609, 1856169, 1854670, 1853134, 1851584, 1850037, 1848512, 1847019, 1845571, 1844174, 1842834, 1841552, + 1840331, 1839171, 1838072, 1837031, 1836047, 1835118, 1834242, 1833417, 1832639, 1831906, 1831217, 1830568, 1829958, 1829385, + 1828846, 1828340, 1827865, 1827419, 1827001, 1826608, 1826241, 1825896, 1864989, 1865708, 1866308, 1866780, 1867120, 1867320, + 1867371, 1867265, 1866995, 1866559, 1865955, 1865186, 1864261, 1863191, 1861993, 1860687, 1859293, 1857834, 1856334, 1854814, + 1853291, 1851784, 1850305, 1848866, 1847473, 1846133, 1844849, 1843623, 1842456, 1841348, 1840297, 1839303, 1838362, 1837473, + 1836634, 1835843, 1835097, 1834394, 1833732, 1833108, 1832521, 1831969, 1831449, 1830960, 1830501, 1830070, 1829665, 1829284, + 1828927, 1867488, 1868217, 1868829, 1869317, 1869675, 1869897, 1869974, 1869898, 1869664, 1869267, 1868706, 1867985, 1867108, + 1866088, 1864940, 1863681, 1862332, 1860915, 1859451, 1857961, 1856464, 1854977, 1853513, 1852083, 1850696, 1849358, 1848073, + 1846844, 1845671, 1844555, 1843495, 1842490, 1841538, 1840638, 1839787, 1838983, 1838224, 1837508, 1836832, 1836195, 1835595, + 1835030, 1834497, 1833995, 1833523, 1833079, 1832661, 1832269, 1831900, 1869939, 1870678, 1871301, 1871803, 1872179, 1872421, + 1872523, 1872476, 1872275, 1871916, 1871396, 1870719, 1869889, 1868918, 1867817, 1866605, 1865301, 1863924, 1862496, 1861038, + 1859567, 1858100, 1856652, 1855233, 1853853, 1852518, 1851233, 1850001, 1848824, 1847701, 1846633, 1845618, 1844656, 1843745, + 1842882, 1842066, 1841295, 1840566, 1839877, 1839228, 1838615, 1838036, 1837491, 1836976, 1836492, 1836035, 1835605, 1835200, + 1834820, 1872327, 1873075, 1873709, 1874224, 1874616, 1874879, 1875004, 1874985, 1874816, 1874493, 1874013, 1873378, 1872594, + 1871669, 1870615, 1869449, 1868188, 1866852, 1865461, 1864034, 1862590, 1861145, 1859714, 1858307, 1856936, 1855605, 1854322, + 1853088, 1851907, 1850779, 1849704, 1848681, 1847709, 1846788, 1845914, 1845086, 1844303, 1843562, 1842862, 1842200, 1841574, + 1840983, 1840426, 1839899, 1839402, 1838934, 1838492, 1838075, 1837683, 1874668, 1875423, 1876068, 1876596, 1877004, 1877285, + 1877433, 1877440, 1877301, 1877012, 1876570, 1875976, 1875235, 1874355, 1873347, 1872226, 1871008, 1869712, 1868357, 1866962, + 1865546, 1864124, 1862710, 1861317, 1859954, 1858630, 1857349, 1856115, 1854931, 1853798, 1852716, 1851686, 1850706, 1849774, + 1848890, 1848052, 1847257, 1846505, 1845793, 1845119, 1844481, 1843878, 1843309, 1842770, 1842261, 1841781, 1841328, 1840900, + 1840496, 1876961, 1877724, 1878378, 1878919, 1879341, 1879641, 1879810, 1879842, 1879732, 1879475, 1879069, 1878514, 1877815, + 1876978, 1876015, 1874937, 1873761, 1872505, 1871186, 1869824, 1868435, 1867036, 1865641, 1864263, 1862911, 1861593, 1860315, + 1859082, 1857896, 1856759, 1855672, 1854635, 1853646, 1852706, 1851812, 1850964, 1850158, 1849395, 1848671, 1847986, 1847337, + 1846722, 1846141, 1845591, 1845070, 1844579, 1844114, 1843674, 1843259, 1879208, 1879978, 1880641, 1881193, 1881630, 1881946, + 1882135, 1882191, 1882108, 1881882, 1881511, 1880994, 1880335, 1879540, 1878619, 1877584, 1876449, 1875232, 1873950, 1872619, + 1871259, 1869884, 1868509, 1867145, 1865805, 1864494, 1863221, 1861990, 1860803, 1859663, 1858572, 1857528, 1856532, 1855584, + 1854681, 1853823, 1853007, 1852233, 1851499, 1850802, 1850142, 1849516, 1848923, 1848362, 1847830, 1847327, 1846851, 1846401, + 1845975, 1881408, 1882185, 1882856, 1883419, 1883869, 1884201, 1884410, 1884489, 1884432, 1884235, 1883897, 1883416, 1882795, + 1882041, 1881161, 1880167, 1879073, 1877895, 1876648, 1875350, 1874019, 1872668, 1871313, 1869966, 1868638, 1867336, 1866068, + 1864839, 1863653, 1862511, 1861416, 1860367, 1859365, 1858408, 1857497, 1856629, 1855804, 1855020, 1854275, 1853568, 1852897, + 1852260, 1851657, 1851084, 1850542, 1850028, 1849541, 1849080, 1848643, 1883562, 1884344, 1885024, 1885597, 1886060, 1886407, + 1886634, 1886734, 1886703, 1886534, 1886227, 1885781, 1885198, 1884482, 1883643, 1882689, 1881635, 1880494, 1879283, 1878018, + 1876715, 1875390, 1874056, 1872726, 1871410, 1870118, 1868857, 1867632, 1866446, 1865304, 1864205, 1863152, 1862144, 1861180, + 1860261, 1859385, 1858551, 1857757, 1857003, 1856285, 1855604, 1854957, 1854342, 1853759, 1853206, 1852681, 1852184, 1851712, + 1851266, 1885669, 1886457, 1887145, 1887727, 1888202, 1888564, 1888809, 1888929, 1888921, 1888780, 1888504, 1888091, 1887543, + 1886865, 1886065, 1885150, 1884135, 1883032, 1881856, 1880623, 1879349, 1878049, 1876737, 1875425, 1874123, 1872842, 1871588, + 1870368, 1869184, 1868041, 1866940, 1865883, 1864870, 1863901, 1862974, 1862090, 1861248, 1860445, 1859681, 1858954, 1858262, + 1857605, 1856980, 1856387, 1855824, 1855289, 1854781, 1854299, 1853842, 1887748, 1888541, 1889235, 1889827, 1890313, 1890689, + 1890950, 1891090, 1891104, 1890989, 1890741, 1890360, 1889846, 1889205, 1888442, 1887565, 1886587, 1885521, 1884379, 1883179, + 1881934, 1880659, 1879369, 1878075, 1876789, 1875519, 1874273, 1873057, 1871877, 1870734, 1869632, 1868572, 1867554, 1866579, + 1865646, 1864754, 1863903, 1863092, 1862319, 1861582, 1860881, 1860214, 1859579, 1858976, 1858403, 1857858, 1857340, 1856848, + 1856381, 1889780, 1890578, 1891279, 1891879, 1892376, 1892765, 1893042, 1893201, 1893237, 1893146, 1892926, 1892575, 1892095, + 1891488, 1890761, 1889922, 1888980, 1887950, 1886843, 1885674, 1884458, 1883210, 1881942, 1880667, 1879396, 1878138, 1876901, + 1875692, 1874515, 1873373, 1872271, 1871208, 1870186, 1869206, 1868267, 1867369, 1866510, 1865691, 1864909, 1864164, 1863453, + 1862777, 1862133, 1861520, 1860936, 1860382, 1859854, 1859352, 1858876, 1891766, 1892568, 1893276, 1893884, 1894391, 1894793, + 1895085, 1895262, 1895319, 1895252, 1895058, 1894737, 1894288, 1893715, 1893023, 1892220, 1891315, 1890319, 1889246, 1888110, + 1886923, 1885701, 1884456, 1883200, 1881946, 1880701, 1879474, 1878271, 1877099, 1875960, 1874857, 1873793, 1872768, 1871784, + 1870839, 1869935, 1869070, 1868242, 1867453, 1866699, 1865980, 1865294, 1864641, 1864019, 1863426, 1862862, 1862325, 1861814, + 1861328, 1893705, 1894512, 1895226, 1895842, 1896359, 1896773, 1897079, 1897273, 1897350, 1897306, 1897138, 1896845, 1896427, + 1895887, 1895230, 1894461, 1893592, 1892631, 1891591, 1890486, 1889329, 1888133, 1886912, 1885676, 1884438, 1883207, 1881991, + 1880796, 1879629, 1878493, 1877391, 1876327, 1875300, 1874312, 1873363, 1872453, 1871581, 1870747, 1869950, 1869188, 1868460, + 1867766, 1867104, 1866473, 1865872, 1865298, 1864752, 1864232, 1863737, 136533, 136533, 136533, 136533, 136533, 136533, + 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 135924, 125277, 108081, 91368, 77552, + 66660, 58112, 51334, 45876, 41412, 37706, 34587, 31931, 29644, 27657, 25914, 24375, 23005, 21780, + 20677, 19679, 18772, 17944, 17186, 16489, 15845, 15250, 14698, 14184, 13704, 13256, 12836, 12442, + 12071, 11721, 11392, 11080, 10784, 10504, 10238, 9986, 9745, 9516, 9297, 9088, 8888, 8697, + 8513, 8338, 8169, 8007, 7852, 7702, 7558, 7419, 7285, 7156, 7031, 6911, 6795, 6682, + 6574, 6468, 6366, 6267, 6172, 6079, 5989, 5901, 5816, 5733, 5653, 5575, 5499, 5425, + 5353, 5283, 5215, 5148, 5083, 5020, 4959 +]; +/// NMOS log-domain current table, corner mos_tt, IHP-Open-PDK 21133f21, L 0.45 um, 27 C, at the source-to-bulk voltage Vsb = 1 V (slice 4): the tag word (4294967295), then the 4753 words ix * 49 + iy of log2(Id / F) in 1/65536 octave over 2^-8 of a linear-table word (1.164 pA), then the 97 rv words; the format of TT_LG_N (deck psp103_idpa_vsb_tt.cir, blocks lam_n_4 and r_4). +pub const VSB_N4 : [4851]u32 = [ + 4294967295, 16776, 88354, 76027, 75367, 78596, 82487, 87154, 91980, 96753, 101394, 105874, 110185, 114327, + 118305, 122130, 125809, 129353, 132773, 136079, 139279, 142385, 145405, 148347, 151221, 154033, 156792, 159506, + 162181, 164824, 167441, 170040, 172625, 175203, 177780, 180362, 182953, 185562, 188194, 190858, 193565, 196329, + 199166, 202200, 205285, 208547, 212042, 215838, 220020, 224692, 64153, 113181, 104168, 104587, 108101, 112854, + 118002, 123290, 128493, 133529, 138369, 143004, 147437, 151675, 155730, 159611, 163332, 166902, 170335, 173641, + 176829, 179911, 182894, 185788, 188602, 191342, 194016, 196632, 199196, 201714, 204193, 206637, 209054, 211448, + 213825, 216190, 218548, 220906, 223270, 225648, 228049, 230486, 232975, 235613, 238295, 241120, 244138, 247410, + 251012, 111555, 143736, 137676, 139023, 143070, 148267, 153819, 159494, 165055, 170418, 175552, 180452, 185121, + 189571, 193812, 197858, 201721, 205416, 208954, 212348, 215607, 218744, 221767, 224685, 227507, 230242, 232895, + 235475, 237988, 240441, 242838, 245186, 247489, 249754, 251985, 254186, 256363, 258520, 260662, 262796, 264929, + 267068, 269225, 271413, 273705, 276030, 278462, 281043, 283824, 158979, 179274, 175577, 177647, 182109, 187649, + 193516, 199489, 205324, 210934, 216292, 221392, 226241, 230849, 235231, 239401, 243373, 247162, 250781, 254243, + 257559, 260741, 263798, 266739, 269574, 272311, 274957, 277518, 280003, 282415, 284763, 287049, 289281, 291462, + 293596, 295690, 297746, 299768, 301762, 303732, 305682, 307619, 309550, 311483, 313430, 315443, 317476, 319584, + 321799, 206426, 218722, 216761, 219352, 224118, 229908, 236115, 242289, 248294, 254019, 259538, 264783, 269760, + 274483, 278967, 283226, 287278, 291136, 294815, 298328, 301687, 304903, 307988, 310950, 313799, 316542, 319187, + 321742, 324212, 326604, 328923, 331174, 333363, 335493, 337570, 339597, 341578, 343517, 345417, 347283, 349118, + 350927, 352714, 354485, 356248, 358029, 359810, 361619, 363475, 253895, 260998, 260232, 263184, 268162, 274129, + 280504, 286831, 292976, 298869, 304459, 309806, 314875, 319679, 324235, 328559, 332667, 336575, 340297, 343848, + 347239, 350483, 353590, 356569, 359431, 362182, 364832, 367386, 369851, 372233, 374538, 376771, 378936, 381038, + 383082, 385070, 387007, 388897, 390741, 392545, 394311, 396042, 397743, 399417, 401068, 402703, 404329, 405970, + 407611, 301385, 305202, 305226, 308419, 313545, 319671, 326130, 332565, 338809, 344792, 350488, 355882, 361016, + 365878, 370486, 374856, 379006, 382935, 386689, 390267, 393683, 396949, 400074, 403068, 405942, 408703, 411359, + 413917, 416383, 418763, 421063, 423288, 425442, 427539, 429565, 431533, 433445, 435307, 437120, 438888, 440614, + 442301, 443951, 445568, 447155, 448717, 450256, 451785, 453303, 348895, 350669, 351201, 354556, 359785, 366002, + 372545, 379058, 385374, 391422, 397177, 402636, 407806, 412711, 417357, 421749, 425928, 429898, 433677, 437277, + 440713, 443995, 447134, 450142, 453026, 455796, 458458, 461021, 463490, 465871, 468170, 470392, 472542, 474624, + 476642, 478600, 480501, 482348, 484145, 485894, 487599, 489261, 490884, 492470, 494025, 495545, 497036, 498503, + 499951, 396425, 396944, 397799, 401263, 406566, 412850, 419456, 426028, 432399, 438496, 444296, 449796, 455002, + 459940, 464607, 469035, 473237, 477230, 481028, 484646, 488097, 491393, 494545, 497564, 500458, 503235, 505905, + 508473, 510946, 513331, 515632, 517855, 520005, 522085, 524100, 526053, 527949, 529789, 531578, 533317, 535010, + 536660, 538267, 539836, 541368, 542865, 544331, 545768, 547178, 443973, 443727, 444789, 448328, 453687, 460023, + 466679, 473298, 479712, 485849, 491684, 497217, 502452, 507413, 512108, 516558, 520780, 524791, 528605, 532238, + 535702, 539011, 542174, 545202, 548105, 550890, 553567, 556141, 558620, 561008, 563313, 565539, 567690, 569772, + 571787, 573740, 575633, 577472, 579257, 580992, 582680, 584323, 585923, 587483, 589005, 590491, 591942, 593362, + 594753, 491538, 490831, 492024, 495619, 501023, 507401, 514099, 520756, 527206, 533376, 539242, 544801, 550062, + 555045, 559761, 564230, 568469, 572495, 576324, 579970, 583446, 586765, 589938, 592976, 595886, 598680, 601363, + 603943, 606427, 608821, 611130, 613359, 615514, 617597, 619615, 621569, 623463, 625302, 627087, 628821, 630507, + 632148, 633745, 635302, 636819, 638299, 639744, 641155, 642536, 539116, 538134, 539415, 543052, 548493, 554908, + 561641, 568332, 574814, 581013, 586905, 592489, 597774, 602774, 607509, 611994, 616248, 620288, 624130, 627788, + 631275, 634604, 637786, 640832, 643751, 646551, 649241, 651827, 654317, 656716, 659029, 661263, 663421, 665508, + 667528, 669485, 671381, 673221, 675007, 676743, 678429, 680070, 681667, 683222, 684738, 686216, 687658, 689066, + 690442, 586702, 585562, 586904, 590575, 596048, 602496, 609261, 615982, 622492, 628717, 634633, 640239, 645543, + 650562, 655313, 659814, 664082, 668135, 671988, 675657, 679154, 682492, 685683, 688737, 691663, 694470, 697167, + 699759, 702254, 704658, 706976, 709214, 711376, 713467, 715490, 717450, 719349, 721192, 722980, 724717, 726405, + 728047, 729645, 731201, 732717, 734195, 735636, 737043, 738417, 634290, 633066, 634452, 638152, 643654, 650132, + 656925, 663674, 670210, 676459, 682397, 688022, 693345, 698381, 703147, 707662, 711943, 716008, 719872, 723550, + 727057, 730404, 733603, 736664, 739597, 742411, 745113, 747711, 750211, 752620, 754943, 757185, 759352, 761446, + 763473, 765436, 767338, 769183, 770974, 772714, 774404, 776048, 777647, 779205, 780722, 782200, 783643, 785050, + 786424, 681867, 680609, 682032, 685758, 691286, 697790, 704610, 711384, 717943, 724213, 730171, 735815, 741155, + 746206, 750986, 755513, 759806, 763882, 767756, 771444, 774959, 778314, 781520, 784588, 787528, 790348, 793055, + 795659, 798164, 800577, 802905, 805151, 807321, 809419, 811450, 813416, 815321, 817169, 818963, 820704, 822397, + 824043, 825644, 827204, 828722, 830202, 831646, 833054, 834429, 729836, 728403, 729745, 733430, 738947, 745459, + 752295, 759088, 765666, 771955, 777930, 783590, 788944, 794008, 798801, 803339, 807643, 811728, 815611, 819307, + 822829, 826191, 829404, 832479, 835424, 838249, 840962, 843570, 846080, 848498, 850829, 853079, 855253, 857354, + 859388, 861357, 863265, 865116, 866912, 868656, 870351, 871999, 873602, 875163, 876683, 878165, 879610, 881020, + 882396, 785031, 780434, 779740, 782242, 787138, 793352, 800057, 806801, 813366, 819657, 825641, 831312, 836677, + 841751, 846553, 851101, 855413, 859505, 863396, 867098, 870627, 873995, 877213, 880293, 883243, 886072, 888789, + 891401, 893914, 896336, 898670, 900923, 903100, 905204, 907240, 909212, 911122, 912975, 914774, 916520, 918216, + 919866, 921471, 923034, 924556, 926039, 927486, 928897, 930274, 846358, 836565, 832304, 832559, 836148, 841650, + 847989, 854553, 861035, 867291, 873263, 878932, 884299, 889379, 894186, 898739, 903056, 907153, 911048, 914755, + 918287, 921659, 924881, 927963, 930916, 933748, 936468, 939083, 941598, 944022, 946359, 948614, 950792, 952898, + 954936, 956909, 958821, 960676, 962475, 964223, 965921, 967572, 969178, 970742, 972265, 973749, 975196, 976608, + 977987, 909405, 894515, 886471, 884113, 886007, 890463, 896185, 902396, 908681, 914830, 920745, 926383, 931735, + 936806, 941610, 946161, 950477, 954574, 958469, 962176, 965709, 969081, 972303, 975385, 978339, 981171, 983891, + 986506, 989022, 991446, 993783, 996038, 998217, 1000323, 1002361, 1004335, 1006247, 1008102, 1009902, 1011649, 1013348, + 1014999, 1016605, 1018169, 1019692, 1021176, 1022624, 1024036, 1025414, 971731, 952676, 941284, 936410, 936509, 939738, + 944647, 950334, 956288, 962230, 968014, 973571, 978872, 983910, 988691, 993226, 997530, 1001618, 1005505, 1009205, + 1012732, 1016099, 1019316, 1022395, 1025344, 1028173, 1030889, 1033501, 1036014, 1038435, 1040769, 1043022, 1045198, 1047302, + 1049338, 1051310, 1053220, 1055073, 1056871, 1058617, 1060313, 1061963, 1063568, 1065130, 1066652, 1068135, 1069581, 1070992, + 1072369, 1032316, 1010149, 996007, 988899, 987277, 989229, 993215, 998248, 1003745, 1009371, 1014938, 1020344, 1025540, + 1030502, 1035228, 1039722, 1043994, 1048056, 1051922, 1055604, 1059115, 1062468, 1065672, 1068739, 1071677, 1074496, 1077203, + 1079805, 1082310, 1084723, 1087050, 1089296, 1091466, 1093563, 1095593, 1097559, 1099464, 1101312, 1103105, 1104846, 1106538, + 1108183, 1109784, 1111343, 1112861, 1114340, 1115782, 1117190, 1118563, 1090702, 1066411, 1050099, 1041070, 1037863, 1038559, + 1041573, 1045866, 1050806, 1056015, 1061273, 1066448, 1071470, 1076302, 1080927, 1085341, 1089550, 1093560, 1097381, 1101026, + 1104505, 1107828, 1111006, 1114049, 1116965, 1119764, 1122452, 1125037, 1127526, 1129923, 1132235, 1134467, 1136624, 1138709, + 1140727, 1142682, 1144576, 1146414, 1148197, 1149929, 1151612, 1153249, 1154841, 1156392, 1157902, 1159374, 1160810, 1162210, + 1163577, 1146534, 1121046, 1103091, 1092429, 1087777, 1087260, 1089282, 1092775, 1097077, 1101782, 1106641, 1111502, 1116275, + 1120908, 1125373, 1129658, 1133759, 1137679, 1141425, 1145003, 1148424, 1151695, 1154827, 1157828, 1160706, 1163469, 1166125, + 1168679, 1171139, 1173509, 1175796, 1178005, 1180138, 1182202, 1184200, 1186135, 1188011, 1189830, 1191597, 1193312, 1194980, + 1196602, 1198180, 1199717, 1201214, 1202673, 1204097, 1205485, 1206841, 1199408, 1173621, 1154519, 1142475, 1136496, 1134804, + 1135820, 1138465, 1142060, 1146178, 1150553, 1155015, 1159459, 1163819, 1168057, 1172150, 1176090, 1179872, 1183497, 1186971, + 1190299, 1193489, 1196546, 1199480, 1202296, 1205003, 1207606, 1210111, 1212525, 1214853, 1217099, 1219269, 1221367, 1223396, + 1225362, 1227266, 1229112, 1230903, 1232643, 1234333, 1235976, 1237574, 1239129, 1240644, 1242121, 1243560, 1244963, 1246333, + 1247671, 1248859, 1223636, 1203881, 1190689, 1183482, 1180645, 1180638, 1182391, 1185215, 1188672, 1192482, 1196464, 1200498, + 1204508, 1208446, 1212282, 1215999, 1219586, 1223041, 1226364, 1229558, 1232627, 1235576, 1238410, 1241135, 1243758, 1246283, + 1248716, 1251062, 1253327, 1255513, 1257627, 1259672, 1261651, 1263568, 1265426, 1267229, 1268979, 1270679, 1272330, 1273937, + 1275500, 1277022, 1278505, 1279950, 1281359, 1282734, 1284076, 1285387, 1294469, 1270580, 1250680, 1236584, 1228247, 1224290, + 1223252, 1224078, 1226079, 1228813, 1231989, 1235417, 1238969, 1242558, 1246128, 1249641, 1253073, 1256409, 1259641, 1262765, + 1265779, 1268685, 1271486, 1274186, 1276787, 1279295, 1281714, 1284049, 1286303, 1288480, 1290585, 1292622, 1294594, 1296504, + 1298355, 1300151, 1301894, 1303587, 1305232, 1306832, 1308388, 1309903, 1311379, 1312817, 1314219, 1315587, 1316922, 1318226, + 1319500, 1335992, 1314024, 1294492, 1279766, 1270415, 1265385, 1263325, 1263210, 1264359, 1266329, 1268825, 1271647, 1274661, + 1277773, 1280919, 1284055, 1287150, 1290185, 1293147, 1296026, 1298819, 1301525, 1304142, 1306673, 1309119, 1311483, 1313768, + 1315977, 1318114, 1320182, 1322184, 1324123, 1326002, 1327824, 1329592, 1331309, 1332976, 1334596, 1336172, 1337705, 1339198, + 1340652, 1342068, 1343450, 1344797, 1346112, 1347396, 1348651, 1349877, 1373422, 1353714, 1335025, 1319983, 1309774, 1303747, + 1300703, 1299666, 1299967, 1301164, 1302960, 1305152, 1307598, 1310200, 1312887, 1315611, 1318334, 1321033, 1323689, 1326291, + 1328832, 1331306, 1333711, 1336046, 1338311, 1340507, 1342636, 1344699, 1346699, 1348638, 1350518, 1352342, 1354112, 1355831, + 1357500, 1359122, 1360700, 1362235, 1363728, 1365182, 1366599, 1367980, 1369327, 1370641, 1371923, 1373175, 1374399, 1375595, + 1376764, 1406984, 1389627, 1372166, 1357145, 1346272, 1339358, 1335400, 1333489, 1332975, 1333421, 1334529, 1336094, 1337971, + 1340055, 1342273, 1344569, 1346904, 1349249, 1351583, 1353890, 1356160, 1358385, 1360561, 1362683, 1364751, 1366763, 1368721, + 1370623, 1372472, 1374269, 1376015, 1377712, 1379362, 1380966, 1382527, 1384045, 1385524, 1386963, 1388366, 1389732, 1391065, + 1392365, 1393634, 1394873, 1396082, 1397264, 1398420, 1399550, 1400656, 1437039, 1421937, 1405954, 1391286, 1379975, 1372309, + 1367533, 1364819, 1363548, 1363288, 1363745, 1364711, 1366038, 1367619, 1369376, 1371250, 1373199, 1375190, 1377199, 1379207, + 1381201, 1383172, 1385112, 1387015, 1388879, 1390702, 1392481, 1394217, 1395909, 1397558, 1399164, 1400729, 1402253, 1403738, + 1405184, 1406594, 1407968, 1409308, 1410615, 1411889, 1413134, 1414349, 1415535, 1416695, 1417828, 1418936, 1420020, 1421080, + 1422119, 1464015, 1450962, 1436566, 1422541, 1411031, 1402768, 1397280, 1393849, 1391890, 1390985, 1390840, 1391248, 1392059, + 1393166, 1394485, 1395956, 1397534, 1399183, 1400876, 1402592, 1404316, 1406037, 1407744, 1409431, 1411093, 1412726, 1414329, + 1415898, 1417433, 1418934, 1420401, 1421833, 1423231, 1424596, 1425928, 1427229, 1428498, 1429738, 1430948, 1432131, 1433286, + 1434415, 1435519, 1436598, 1437654, 1438688, 1439699, 1440689, 1441660, 1488321, 1477067, 1464250, 1451086, 1439615, 1430920, + 1424835, 1420777, 1418205, 1416718, 1416027, 1415926, 1416264, 1416931, 1417844, 1418939, 1420169, 1421495, 1422889, 1424328, + 1425794, 1427275, 1428759, 1430238, 1431705, 1433156, 1434587, 1435995, 1437379, 1438737, 1440067, 1441371, 1442646, 1443895, + 1445116, 1446310, 1447478, 1448620, 1449737, 1450829, 1451898, 1452943, 1453966, 1454968, 1455948, 1456909, 1457849, 1458771, + 1459675, 1510340, 1500633, 1489306, 1477140, 1465923, 1456963, 1450398, 1445800, 1442689, 1440684, 1439503, 1438942, 1438851, + 1439117, 1439657, 1440406, 1441313, 1442339, 1443454, 1444634, 1445859, 1447114, 1448388, 1449670, 1450953, 1452231, 1453499, + 1454755, 1455994, 1457215, 1458416, 1459597, 1460756, 1461894, 1463009, 1464102, 1465173, 1466222, 1467250, 1468257, 1469243, + 1470209, 1471155, 1472082, 1472991, 1473882, 1474755, 1475611, 1476451, 1530387, 1521999, 1512029, 1500922, 1490139, 1481078, + 1474149, 1469097, 1465518, 1463054, 1461437, 1460463, 1459984, 1459888, 1460089, 1460520, 1461132, 1461882, 1462740, 1463680, + 1464680, 1465726, 1466803, 1467901, 1469012, 1470128, 1471244, 1472356, 1473459, 1474552, 1475632, 1476698, 1477747, 1478780, + 1479796, 1480794, 1481774, 1482736, 1483680, 1484606, 1485515, 1486406, 1487281, 1488138, 1488980, 1489805, 1490615, 1491410, + 1492191, 1548742, 1541473, 1532712, 1522661, 1512449, 1503439, 1496259, 1490837, 1486854, 1483988, 1481982, 1480639, 1479811, + 1479387, 1479280, 1479423, 1479764, 1480262, 1480883, 1481601, 1482394, 1483246, 1484141, 1485068, 1486018, 1486983, 1487957, + 1488934, 1489911, 1490884, 1491851, 1492809, 1493756, 1494692, 1495615, 1496524, 1497419, 1498300, 1499166, 1500018, 1500854, + 1501676, 1502484, 1503276, 1504055, 1504820, 1505572, 1506310, 1507035, 1565635, 1559315, 1551615, 1542575, 1533022, 1524199, + 1516879, 1511166, 1506840, 1503623, 1501272, 1499599, 1498458, 1497737, 1497350, 1497230, 1497325, 1497591, 1497995, 1498509, + 1499111, 1499782, 1500509, 1501277, 1502078, 1502903, 1503744, 1504597, 1505456, 1506318, 1507178, 1508036, 1508888, 1509733, + 1510569, 1511396, 1512213, 1513018, 1513812, 1514594, 1515364, 1516121, 1516867, 1517600, 1518321, 1519030, 1519727, 1520412, + 1521087, 1581253, 1575741, 1568968, 1560867, 1552018, 1543493, 1536138, 1530213, 1525603, 1522080, 1519425, 1517456, 1516033, + 1515043, 1514403, 1514044, 1513913, 1513967, 1514171, 1514497, 1514922, 1515428, 1515998, 1516620, 1517282, 1517976, 1518694, + 1519431, 1520180, 1520937, 1521699, 1522463, 1523227, 1523987, 1524743, 1525493, 1526236, 1526971, 1527698, 1528416, 1529124, + 1529822, 1530510, 1531187, 1531855, 1532512, 1533160, 1533797, 1534424, 1595757, 1590936, 1584967, 1577724, 1569588, 1561448, + 1554154, 1548091, 1543253, 1539468, 1536545, 1534312, 1532634, 1531402, 1530531, 1529954, 1529616, 1529475, 1529495, 1529648, + 1529910, 1530261, 1530686, 1531171, 1531704, 1532277, 1532880, 1533508, 1534154, 1534814, 1535485, 1536161, 1536841, 1537523, + 1538204, 1538882, 1539557, 1540227, 1540891, 1541549, 1542199, 1542842, 1543477, 1544104, 1544722, 1545331, 1545932, 1546525, + 1547109, 1609275, 1605047, 1599777, 1593307, 1585869, 1578173, 1571025, 1564897, 1559883, 1555879, 1552721, 1550253, 1548346, + 1546894, 1545813, 1545035, 1544508, 1544188, 1544038, 1544031, 1544142, 1544350, 1544640, 1544998, 1545411, 1545870, 1546366, + 1546892, 1547442, 1548011, 1548595, 1549190, 1549792, 1550400, 1551010, 1551622, 1552233, 1552842, 1553447, 1554049, 1554646, + 1555237, 1555823, 1556402, 1556974, 1557540, 1558098, 1558649, 1559193, 1621920, 1618205, 1613543, 1607764, 1600991, 1593775, + 1586843, 1580717, 1575582, 1571397, 1568035, 1565359, 1563245, 1561593, 1560320, 1559360, 1558658, 1558172, 1557866, 1557710, + 1557680, 1557756, 1557921, 1558159, 1558460, 1558812, 1559207, 1559638, 1560098, 1560582, 1561084, 1561602, 1562132, 1562670, + 1563214, 1563763, 1564313, 1564865, 1565416, 1565965, 1566512, 1567055, 1567594, 1568129, 1568658, 1569183, 1569701, 1570214, + 1570721, 1633794, 1630523, 1626392, 1621227, 1615076, 1608353, 1601693, 1595632, 1590425, 1586097, 1582561, 1579700, 1577402, + 1575568, 1574120, 1572991, 1572129, 1571490, 1571038, 1570744, 1570583, 1570534, 1570581, 1570708, 1570903, 1571155, 1571456, + 1571797, 1572172, 1572575, 1573001, 1573446, 1573906, 1574379, 1574861, 1575350, 1575844, 1576341, 1576840, 1577340, 1577840, + 1578338, 1578833, 1579326, 1579816, 1580301, 1580783, 1581260, 1581732, 1644964, 1642083, 1638416, 1633796, 1628220, 1621990, + 1615642, 1609699, 1604469, 1600036, 1596356, 1593334, 1590869, 1588871, 1587262, 1585979, 1584969, 1584188, 1583601, 1583178, + 1582895, 1582731, 1582667, 1582689, 1582785, 1582943, 1583154, 1583411, 1583705, 1584032, 1584386, 1584762, 1585157, 1585567, + 1585990, 1586423, 1586863, 1587309, 1587760, 1588213, 1588668, 1589123, 1589578, 1590031, 1590483, 1590932, 1591379, 1591822, + 1592262, 1655505, 1652965, 1649707, 1645571, 1640521, 1634769, 1628760, 1622983, 1617774, 1613273, 1609476, 1606315, 1603703, + 1601556, 1599801, 1598375, 1597227, 1596315, 1595603, 1595060, 1594663, 1594389, 1594222, 1594146, 1594148, 1594218, 1594344, + 1594521, 1594739, 1594993, 1595278, 1595589, 1595922, 1596273, 1596640, 1597019, 1597408, 1597806, 1598210, 1598618, 1599031, + 1599445, 1599861, 1600277, 1600693, 1601108, 1601522, 1601933, 1602342, 1665479, 1663240, 1660342, 1656636, 1652064, 1646770, + 1641114, 1635538, 1630392, 1625858, 1621972, 1618693, 1615951, 1613670, 1611781, 1610224, 1608950, 1607915, 1607085, 1606430, + 1605926, 1605550, 1605285, 1605116, 1605030, 1605015, 1605062, 1605162, 1605308, 1605494, 1605713, 1605962, 1606236, 1606531, + 1606843, 1607171, 1607512, 1607863, 1608222, 1608589, 1608960, 1609336, 1609715, 1610096, 1610477, 1610860, 1611242, 1611623, + 1612003, 1674940, 1672966, 1670387, 1667063, 1662924, 1658062, 1652763, 1647416, 1642370, 1637835, 1633886, 1630511, 1627655, + 1625254, 1623243, 1621566, 1620174, 1619025, 1618086, 1617326, 1616720, 1616248, 1615892, 1615635, 1615465, 1615371, 1615341, + 1615369, 1615446, 1615566, 1615723, 1615912, 1616129, 1616370, 1616632, 1616910, 1617204, 1617511, 1617828, 1618153, 1618486, + 1618825, 1619168, 1619515, 1619864, 1620215, 1620567, 1620919, 1621271, 1683922, 1682185, 1679889, 1676907, 1673160, 1668701, + 1663755, 1658657, 1653741, 1649237, 1645252, 1641801, 1638849, 1636340, 1634219, 1632432, 1630931, 1629677, 1628635, 1627777, + 1627077, 1626514, 1626070, 1625731, 1625482, 1625311, 1625210, 1625169, 1625180, 1625237, 1625335, 1625467, 1625630, 1625819, + 1626031, 1626263, 1626512, 1626775, 1627051, 1627338, 1627633, 1627936, 1628245, 1628559, 1628877, 1629198, 1629521, 1629846, + 1630172, 1692472, 1690948, 1688905, 1686227, 1682834, 1678750, 1674146, 1669309, 1664548, 1660104, 1656108, 1652601, 1649568, + 1646966, 1644745, 1642856, 1641255, 1639903, 1638766, 1637815, 1637025, 1636377, 1635851, 1635433, 1635108, 1634866, 1634696, + 1634589, 1634538, 1634535, 1634575, 1634653, 1634764, 1634903, 1635068, 1635254, 1635460, 1635682, 1635919, 1636168, 1636427, + 1636696, 1636972, 1637254, 1637542, 1637834, 1638129, 1638427, 1638727, 1700622, 1699288, 1697471, 1695066, 1691993, 1688255, + 1683980, 1679409, 1674823, 1670463, 1666480, 1662937, 1659839, 1657156, 1654847, 1652866, 1651173, 1649729, 1648502, 1647465, + 1646592, 1645862, 1645259, 1644766, 1644370, 1644059, 1643823, 1643654, 1643542, 1643482, 1643468, 1643493, 1643553, 1643645, + 1643764, 1643907, 1644071, 1644254, 1644452, 1644665, 1644889, 1645125, 1645369, 1645621, 1645879, 1646143, 1646412, 1646684, + 1646959, 1708407, 1707244, 1705630, 1703471, 1700687, 1697267, 1693305, 1689000, 1684603, 1680348, 1676399, 1672840, 1669693, + 1666942, 1664554, 1662490, 1660711, 1659183, 1657872, 1656753, 1655801, 1654996, 1654318, 1653755, 1653290, 1652914, 1652616, + 1652386, 1652217, 1652102, 1652034, 1652009, 1652022, 1652067, 1652142, 1652243, 1652367, 1652511, 1652672, 1652850, 1653041, + 1653244, 1653457, 1653679, 1653909, 1654146, 1654389, 1654636, 1654887, 1715855, 1714846, 1713415, 1711477, 1708955, 1705826, + 1702159, 1698116, 1693918, 1689786, 1685891, 1682334, 1679152, 1676345, 1673889, 1671750, 1669894, 1668286, 1666898, 1665703, + 1664676, 1663798, 1663051, 1662420, 1661891, 1661452, 1661093, 1660806, 1660582, 1660414, 1660296, 1660222, 1660188, 1660189, + 1660221, 1660281, 1660366, 1660472, 1660598, 1660742, 1660900, 1661071, 1661255, 1661448, 1661651, 1661861, 1662078, 1662301, + 1662529, 1722975, 1722107, 1720843, 1719104, 1716820, 1713959, 1710569, 1706781, 1702786, 1698792, 1694969, 1691431, 1688231, + 1685381, 1682867, 1680661, 1678734, 1677055, 1675594, 1674327, 1673231, 1672285, 1671472, 1670776, 1670185, 1669687, 1669272, + 1668929, 1668652, 1668433, 1668267, 1668146, 1668067, 1668025, 1668017, 1668037, 1668084, 1668155, 1668246, 1668356, 1668482, + 1668624, 1668778, 1668943, 1669119, 1669304, 1669496, 1669695, 1669901, 1729811, 1729069, 1727956, 1726398, 1724329, 1721713, + 1718582, 1715039, 1711250, 1707403, 1703668, 1700164, 1696959, 1694078, 1691515, 1689252, 1687261, 1685515, 1683987, 1682653, + 1681490, 1680480, 1679604, 1678848, 1678198, 1677643, 1677172, 1676777, 1676449, 1676181, 1675968, 1675802, 1675680, 1675596, + 1675548, 1675530, 1675541, 1675576, 1675634, 1675711, 1675807, 1675918, 1676044, 1676182, 1676332, 1676491, 1676660, 1676836, + 1677019, 1736377, 1735752, 1734774, 1733381, 1731507, 1729117, 1726226, 1722917, 1719332, 1715640, 1712004, 1708549, 1705354, + 1702453, 1699851, 1697537, 1695489, 1693682, 1692092, 1690696, 1689471, 1688399, 1687464, 1686649, 1685943, 1685334, 1684810, + 1684364, 1683988, 1683673, 1683414, 1683205, 1683040, 1682917, 1682829, 1682775, 1682749, 1682751, 1682775, 1682822, 1682887, + 1682969, 1683067, 1683179, 1683303, 1683438, 1683582, 1683736, 1683897, 1742682, 1742162, 1741309, 1740066, 1738371, 1736186, + 1733519, 1730434, 1727049, 1723516, 1719991, 1716598, 1713424, 1710515, 1707884, 1705528, 1703430, 1701568, 1699921, 1698466, + 1697183, 1696054, 1695062, 1694193, 1693433, 1692771, 1692198, 1691703, 1691279, 1690919, 1690616, 1690365, 1690161, 1689998, + 1689873, 1689783, 1689723, 1689691, 1689684, 1689699, 1689735, 1689789, 1689860, 1689946, 1690045, 1690156, 1690277, 1690409, + 1690548, 1748748, 1748325, 1747587, 1746479, 1744947, 1742952, 1740493, 1737618, 1734428, 1731058, 1727650, 1724330, 1721190, + 1718283, 1715633, 1713243, 1711101, 1709190, 1707490, 1705981, 1704643, 1703460, 1702415, 1701493, 1700682, 1699971, 1699349, + 1698808, 1698339, 1697935, 1697590, 1697298, 1697055, 1696854, 1696693, 1696568, 1696474, 1696410, 1696372, 1696358, 1696365, + 1696391, 1696436, 1696496, 1696570, 1696658, 1696757, 1696866, 1696985, 1754582, 1754247, 1753614, 1752631, 1751249, 1749428, + 1747161, 1744486, 1741485, 1738276, 1734992, 1731755, 1728659, 1725765, 1723106, 1720689, 1718510, 1716556, 1714808, 1713249, + 1711861, 1710627, 1709531, 1708560, 1707701, 1706942, 1706274, 1705688, 1705176, 1704730, 1704345, 1704014, 1703732, 1703496, + 1703300, 1703140, 1703014, 1702918, 1702850, 1702807, 1702786, 1702786, 1702804, 1702840, 1702890, 1702955, 1703031, 1703120, + 1703218, 1760215, 1759962, 1759424, 1758556, 1757310, 1755648, 1753560, 1751072, 1748252, 1745203, 1742047, 1738900, 1735857, + 1732986, 1730325, 1727889, 1725680, 1723687, 1721896, 1720291, 1718856, 1717574, 1716431, 1715412, 1714507, 1713703, 1712990, + 1712361, 1711807, 1711321, 1710896, 1710527, 1710209, 1709937, 1709707, 1709514, 1709356, 1709230, 1709132, 1709061, 1709012, + 1708986, 1708979, 1708990, 1709017, 1709059, 1709114, 1709181, 1709260, 1765642, 1765464, 1765015, 1764252, 1763132, 1761617, + 1759695, 1757382, 1754736, 1751845, 1748818, 1745767, 1742786, 1739946, 1737292, 1734846, 1732612, 1730586, 1728757, 1727111, + 1725632, 1724305, 1723117, 1722054, 1721104, 1720257, 1719502, 1718832, 1718238, 1717713, 1717250, 1716845, 1716491, 1716185, + 1715921, 1715697, 1715508, 1715352, 1715226, 1715126, 1715051, 1714999, 1714967, 1714954, 1714958, 1714978, 1715012, 1715059, + 1715117, 1770887, 1770779, 1770410, 1769744, 1768739, 1767361, 1765591, 1763443, 1760962, 1758224, 1755328, 1752377, 1749465, + 1746665, 1744026, 1741575, 1739324, 1737270, 1735408, 1733723, 1732204, 1730835, 1729605, 1728499, 1727508, 1726619, 1725824, + 1725114, 1724481, 1723918, 1723419, 1722979, 1722591, 1722251, 1721955, 1721700, 1721481, 1721296, 1721141, 1721015, 1720914, + 1720836, 1720780, 1720744, 1720726, 1720724, 1720736, 1720763, 1720802, 1775953, 1775909, 1775616, 1775039, 1774140, 1772887, + 1771260, 1769266, 1766941, 1764352, 1761586, 1758739, 1755902, 1753148, 1750531, 1748083, 1745820, 1743745, 1741853, 1740134, + 1738578, 1737171, 1735900, 1734755, 1733724, 1732796, 1731962, 1731214, 1730544, 1729945, 1729411, 1728936, 1728515, 1728143, + 1727816, 1727530, 1727282, 1727069, 1726887, 1726734, 1726608, 1726506, 1726426, 1726366, 1726326, 1726302, 1726295, 1726302, + 1726322, 1780854, 1780869, 1780645, 1780151, 1779350, 1778212, 1776717, 1774867, 1772691, 1770246, 1767608, 1764867, 1762109, + 1759408, 1756820, 1754381, 1752112, 1750020, 1748103, 1746355, 1744765, 1743322, 1742015, 1740832, 1739763, 1738797, 1737926, + 1737142, 1736436, 1735802, 1735234, 1734726, 1734273, 1733869, 1733512, 1733197, 1732921, 1732680, 1732471, 1732292, 1732141, + 1732015, 1731912, 1731830, 1731768, 1731724, 1731696, 1731683, 1731684, 1785592, 1785662, 1785502, 1785084, 1784375, 1783344, + 1781971, 1780256, 1778221, 1775913, 1773402, 1770768, 1768093, 1765450, 1762897, 1760474, 1758205, 1756102, 1754164, 1752390, + 1750770, 1749294, 1747952, 1746734, 1745629, 1744629, 1743722, 1742903, 1742163, 1741496, 1740895, 1740355, 1739870, 1739437, + 1739050, 1738707, 1738403, 1738135, 1737900, 1737696, 1737521, 1737371, 1737245, 1737142, 1737058, 1736993, 1736945, 1736914, + 1736896, 1790191, 1790311, 1790211, 1789864, 1789238, 1788306, 1787047, 1785458, 1783556, 1781380, 1778991, 1776464, 1773874, + 1771294, 1768782, 1766380, 1764116, 1762005, 1760052, 1758255, 1756608, 1755102, 1753728, 1752477, 1751338, 1750303, 1749364, + 1748511, 1747738, 1747038, 1746405, 1745834, 1745319, 1744857, 1744441, 1744070, 1743739, 1743445, 1743185, 1742956, 1742757, + 1742584, 1742436, 1742311, 1742206, 1742121, 1742054, 1742003, 1741967, 1794631, 1794799, 1794755, 1794473, 1793926, 1793086, + 1791933, 1790462, 1788685, 1786636, 1784368, 1781947, 1779445, 1776931, 1774464, 1772089, 1769836, 1767724, 1765759, 1763943, + 1762272, 1760740, 1759337, 1758055, 1756885, 1755818, 1754846, 1753962, 1753157, 1752427, 1751764, 1751163, 1750619, 1750128, + 1749685, 1749286, 1748929, 1748610, 1748325, 1748073, 1747850, 1747655, 1747485, 1747339, 1747214, 1747109, 1747022, 1746953, + 1746900, 1798948, 1799160, 1799167, 1798946, 1798472, 1797717, 1796663, 1795302, 1793643, 1791714, 1789562, 1787245, 1784832, + 1782388, 1779970, 1777627, 1775389, 1773279, 1771307, 1769476, 1767784, 1766227, 1764798, 1763487, 1762287, 1761190, 1760188, + 1759273, 1758438, 1757677, 1756985, 1756355, 1755783, 1755264, 1754795, 1754370, 1753987, 1753643, 1753334, 1753058, 1752813, + 1752596, 1752404, 1752237, 1752092, 1751968, 1751863, 1751775, 1751704, 1803133, 1803386, 1803440, 1803277, 1802869, 1802194, + 1801232, 1799974, 1798427, 1796613, 1794572, 1792358, 1790034, 1787661, 1785298, 1782989, 1780772, 1778668, 1776693, 1774851, + 1773142, 1771564, 1770109, 1768772, 1767545, 1766419, 1765388, 1764444, 1763580, 1762791, 1762070, 1761413, 1760813, 1760268, + 1759772, 1759322, 1758914, 1758546, 1758214, 1757915, 1757648, 1757409, 1757196, 1757009, 1756844, 1756701, 1756577, 1756472, + 1756383, 1807186, 1807477, 1807577, 1807466, 1807122, 1806521, 1805645, 1804484, 1803042, 1801337, 1799404, 1797292, 1795056, + 1792757, 1790450, 1788181, 1785988, 1783896, 1781921, 1780071, 1778349, 1776752, 1775276, 1773914, 1772661, 1771509, 1770450, + 1769479, 1768588, 1767771, 1767023, 1766339, 1765714, 1765142, 1764621, 1764147, 1763715, 1763323, 1762968, 1762647, 1762358, + 1762098, 1761866, 1761658, 1761474, 1761312, 1761170, 1761047, 1760942, 1811133, 1811460, 1811601, 1811540, 1811254, 1810722, + 1809926, 1808856, 1807512, 1805911, 1804082, 1802067, 1799920, 1797695, 1795446, 1793220, 1791055, 1788978, 1787007, 1785153, + 1783419, 1781806, 1780311, 1778927, 1777650, 1776473, 1775388, 1774390, 1773473, 1772630, 1771856, 1771146, 1770495, 1769899, + 1769353, 1768855, 1768400, 1767985, 1767608, 1767265, 1766954, 1766674, 1766421, 1766194, 1765992, 1765811, 1765651, 1765511, + 1765389, 1814963, 1815323, 1815504, 1815489, 1815257, 1814790, 1814069, 1813084, 1811834, 1810331, 1808601, 1806682, 1804621, + 1802471, 1800283, 1798103, 1795969, 1793911, 1791948, 1790093, 1788351, 1786725, 1785212, 1783809, 1782510, 1781309, 1780200, + 1779178, 1778235, 1777367, 1776568, 1775833, 1775158, 1774538, 1773968, 1773446, 1772969, 1772532, 1772132, 1771769, 1771438, + 1771137, 1770865, 1770619, 1770397, 1770199, 1770022, 1769864, 1769725, 1818690, 1819081, 1819299, 1819326, 1819146, 1818739, + 1818089, 1817183, 1816021, 1814611, 1812976, 1811149, 1809174, 1807099, 1804973, 1802841, 1800742, 1798705, 1796753, 1794900, + 1793154, 1791517, 1789990, 1788568, 1787249, 1786026, 1784895, 1783849, 1782882, 1781990, 1781167, 1780409, 1779709, 1779066, + 1778473, 1777929, 1777429, 1776970, 1776550, 1776165, 1775814, 1775494, 1775202, 1774938, 1774698, 1774482, 1774287, 1774113, + 1773958, 1822316, 1822736, 1822987, 1823055, 1822923, 1822572, 1821987, 1821157, 1820077, 1818756, 1817211, 1815474, 1813583, + 1811582, 1809519, 1807437, 1805375, 1803364, 1801426, 1799578, 1797830, 1796185, 1794645, 1793208, 1791870, 1790628, 1789475, + 1788407, 1787418, 1786502, 1785656, 1784875, 1784153, 1783486, 1782872, 1782305, 1781784, 1781304, 1780863, 1780458, 1780087, + 1779748, 1779438, 1779155, 1778897, 1778664, 1778452, 1778262, 1778091, 1825840, 1826287, 1826571, 1826677, 1826589, 1826292, + 1825768, 1825008, 1824006, 1822769, 1821311, 1819660, 1817851, 1815925, 1813925, 1811895, 1809873, 1807889, 1805969, 1804129, + 1802381, 1800731, 1799181, 1797730, 1796376, 1795115, 1793943, 1792854, 1791843, 1790906, 1790038, 1789234, 1788491, 1787802, + 1787166, 1786579, 1786037, 1785536, 1785075, 1784651, 1784261, 1783902, 1783574, 1783273, 1782998, 1782748, 1782520, 1782313, + 1782126, 1829278, 1829750, 1830063, 1830205, 1830159, 1829911, 1829446, 1828751, 1827823, 1826665, 1825290, 1823722, 1821992, + 1820139, 1818203, 1816226, 1814245, 1812292, 1810392, 1808563, 1806818, 1805165, 1803607, 1802145, 1800776, 1799498, 1798307, + 1797198, 1796168, 1795210, 1794321, 1793496, 1792731, 1792022, 1791365, 1790757, 1790194, 1789674, 1789193, 1788750, 1788341, + 1787964, 1787617, 1787299, 1787007, 1786740, 1786496, 1786273, 1786071, 1832616, 1833112, 1833454, 1833628, 1833623, 1833421, + 1833010, 1832378, 1831520, 1830437, 1829142, 1827653, 1826001, 1824220, 1822348, 1820425, 1818487, 1816567, 1814689, 1812874, + 1811135, 1809482, 1807918, 1806446, 1805065, 1803772, 1802564, 1801437, 1800387, 1799410, 1798501, 1797656, 1796871, 1796141, + 1795464, 1794836, 1794254, 1793715, 1793215, 1792753, 1792326, 1791931, 1791567, 1791232, 1790923, 1790640, 1790380, 1790142, + 1789924, 1835869, 1836387, 1836755, 1836961, 1836993, 1836836, 1836476, 1835902, 1835109, 1834098, 1832878, 1831467, 1829890, + 1828179, 1826371, 1824503, 1822610, 1820724, 1818871, 1817072, 1815342, 1813690, 1812123, 1810643, 1809251, 1807945, 1806722, + 1805578, 1804510, 1803515, 1802587, 1801722, 1800917, 1800169, 1799473, 1798825, 1798224, 1797666, 1797148, 1796668, 1796223, + 1795811, 1795430, 1795078, 1794753, 1794453, 1794177, 1793924, 1793692, 1839051, 1839590, 1839983, 1840218, 1840284, 1840168, + 1839856, 1839338, 1838607, 1837663, 1836515, 1835177, 1833672, 1832031, 1830286, 1828472, 1826625, 1824775, 1822949, 1821168, + 1819448, 1817800, 1816232, 1814746, 1813345, 1812026, 1810789, 1809630, 1808545, 1807532, 1806586, 1805703, 1804879, 1804112, + 1803397, 1802731, 1802111, 1801535, 1800999, 1800501, 1800038, 1799609, 1799211, 1798843, 1798502, 1798186, 1797895, 1797627, + 1797380, 1842135, 1842694, 1843110, 1843374, 1843473, 1843396, 1843129, 1842663, 1841991, 1841112, 1840033, 1838766, 1837332, + 1835758, 1834075, 1832317, 1830517, 1828705, 1826907, 1825147, 1823440, 1821798, 1820231, 1818741, 1817333, 1816004, 1814754, + 1813581, 1812481, 1811452, 1810488, 1809588, 1808747, 1807962, 1807229, 1806545, 1805908, 1805314, 1804761, 1804245, 1803766, + 1803321, 1802906, 1802522, 1802165, 1801835, 1801529, 1801246, 1800985, 1845164, 1845742, 1846179, 1846468, 1846599, 1846558, + 1846334, 1845917, 1845300, 1844482, 1843467, 1842268, 1840901, 1839393, 1837772, 1836068, 1834315, 1832542, 1830775, 1829036, + 1827344, 1825710, 1824145, 1822654, 1821239, 1819901, 1818640, 1817454, 1816340, 1815294, 1814315, 1813398, 1812539, 1811737, + 1810987, 1810286, 1809631, 1809020, 1808449, 1807917, 1807422, 1806960, 1806529, 1806129, 1805757, 1805412, 1805091, 1804793, + 1804518, 1848110, 1848705, 1849164, 1849477, 1849636, 1849630, 1849446, 1849076, 1848512, 1847751, 1846799, 1845664, 1844364, + 1842919, 1841358, 1839710, 1838004, 1836271, 1834535, 1832821, 1831145, 1829521, 1827961, 1826469, 1825050, 1823705, 1822434, + 1821236, 1820109, 1819049, 1818055, 1817122, 1816247, 1815428, 1814661, 1813944, 1813272, 1812644, 1812058, 1811509, 1810998, + 1810520, 1810074, 1809659, 1809272, 1808911, 1808576, 1808265, 1807975, 1850989, 1851600, 1852078, 1852414, 1852601, 1852627, + 1852481, 1852155, 1851640, 1850935, 1850042, 1848969, 1847732, 1846349, 1844847, 1843253, 1841595, 1839902, 1838200, 1836511, + 1834853, 1833242, 1831687, 1830197, 1828776, 1827425, 1826146, 1824937, 1823798, 1822725, 1821716, 1820768, 1819878, 1819043, + 1818260, 1817526, 1816839, 1816195, 1815592, 1815028, 1814501, 1814008, 1813547, 1813116, 1812714, 1812340, 1811990, 1811665, + 1811362, 1853785, 1854411, 1854908, 1855266, 1855479, 1855536, 1855427, 1855142, 1854675, 1854022, 1853186, 1852173, 1850996, + 1849675, 1848231, 1846690, 1845081, 1843429, 1841761, 1840099, 1838462, 1836864, 1835318, 1833831, 1832409, 1831054, 1829768, + 1828550, 1827400, 1826315, 1825293, 1824331, 1823426, 1822577, 1821779, 1821030, 1820327, 1819668, 1819050, 1818470, 1817928, + 1817420, 1816944, 1816499, 1816083, 1815695, 1815332, 1814993, 1814677, 1856529, 1857170, 1857683, 1858063, 1858300, 1858386, + 1858311, 1858065, 1857642, 1857039, 1856257, 1855301, 1854183, 1852920, 1851532, 1850045, 1848483, 1846873, 1845240, 1843606, + 1841990, 1840408, 1838871, 1837389, 1835967, 1834609, 1833317, 1832092, 1830932, 1829835, 1828801, 1827826, 1826907, 1826043, + 1825231, 1824467, 1823749, 1823075, 1822442, 1821848, 1821291, 1820768, 1820278, 1819819, 1819389, 1818986, 1818610, 1818258, + 1817929, 1859206, 1859860, 1860390, 1860789, 1861050, 1861163, 1861120, 1860912, 1860532, 1859976, 1859245, 1858343, 1857282, + 1856075, 1854743, 1853308, 1851794, 1850226, 1848628, 1847024, 1845430, 1843865, 1842339, 1840863, 1839444, 1838084, 1836788, + 1835556, 1834387, 1833281, 1832235, 1831247, 1830316, 1829438, 1828612, 1827834, 1827101, 1826413, 1825766, 1825157, 1824586, + 1824049, 1823545, 1823072, 1822628, 1822212, 1821822, 1821457, 1821116, 1861833, 1862500, 1863045, 1863462, 1863744, 1863884, + 1863871, 1863698, 1863357, 1862846, 1862164, 1861315, 1860308, 1859156, 1857877, 1856492, 1855025, 1853500, 1851938, 1850363, + 1848794, 1847246, 1845733, 1844265, 1842849, 1841489, 1840190, 1838952, 1837775, 1836659, 1835603, 1834604, 1833660, 1832769, + 1831929, 1831138, 1830392, 1829689, 1829028, 1828405, 1827820, 1827269, 1826751, 1826265, 1825808, 1825379, 1824976, 1824598, + 1824244, 1864394, 1865072, 1865632, 1866066, 1866369, 1866533, 1866550, 1866410, 1866108, 1865639, 1865004, 1864205, 1863250, + 1862151, 1860924, 1859590, 1858169, 1856686, 1855161, 1853617, 1852073, 1850544, 1849045, 1847586, 1846174, 1844816, 1843515, + 1842273, 1841090, 1839965, 1838899, 1837890, 1836934, 1836032, 1835179, 1834374, 1833615, 1832899, 1832224, 1831588, 1830989, + 1830425, 1829894, 1829394, 1828924, 1828482, 1828067, 1827676, 1827310, 1866905, 1867595, 1868168, 1868618, 1868941, 1869128, + 1869171, 1869063, 1868798, 1868370, 1867779, 1867027, 1866122, 1865074, 1863898, 1862613, 1861239, 1859797, 1858309, 1856796, + 1855278, 1853770, 1852286, 1850837, 1849431, 1848076, 1846774, 1845528, 1844339, 1843208, 1842133, 1841113, 1840147, 1839233, + 1838368, 1837551, 1836779, 1836050, 1835362, 1834713, 1834101, 1833523, 1832979, 1832467, 1831984, 1831529, 1831101, 1830699, + 1830320, 1869351, 1870051, 1870636, 1871103, 1871444, 1871653, 1871723, 1871645, 1871414, 1871025, 1870476, 1869771, 1868914, + 1867916, 1866789, 1865552, 1864223, 1862823, 1861373, 1859892, 1858400, 1856914, 1855446, 1854009, 1852611, 1851259, 1849958, + 1848710, 1847517, 1846379, 1845296, 1844268, 1843292, 1842367, 1841491, 1840662, 1839877, 1839136, 1838436, 1837774, 1837149, + 1836560, 1836003, 1835478, 1834983, 1834516, 1834076, 1833662, 1833271, 1871747, 1872457, 1873055, 1873536, 1873895, 1874125, + 1874219, 1874170, 1873972, 1873620, 1873112, 1872450, 1871640, 1870689, 1869611, 1868420, 1867136, 1865777, 1864364, 1862916, + 1861452, 1859988, 1858538, 1857113, 1855724, 1854377, 1853077, 1851828, 1850632, 1849489, 1848399, 1847362, 1846377, 1845442, + 1844555, 1843715, 1842919, 1842166, 1841454, 1840780, 1840143, 1839541, 1838972, 1838435, 1837928, 1837449, 1836997, 1836571, + 1836169, 1874095, 1874814, 1875423, 1875918, 1876293, 1876544, 1876661, 1876639, 1876472, 1876155, 1875686, 1875067, 1874301, + 1873396, 1872364, 1871219, 1869979, 1868661, 1867285, 1865870, 1864434, 1862993, 1861561, 1860151, 1858771, 1857430, 1856133, + 1854884, 1853685, 1852538, 1851442, 1850398, 1849404, 1848460, 1847563, 1846712, 1845905, 1845141, 1844417, 1843731, 1843083, + 1842469, 1841888, 1841339, 1840820, 1840330, 1839866, 1839429, 1839016, 1876394, 1877121, 1877741, 1878249, 1878641, 1878910, + 1879050, 1879054, 1878916, 1878633, 1878201, 1877622, 1876898, 1876038, 1875051, 1873951, 1872754, 1871476, 1870137, 1868755, + 1867348, 1865930, 1864518, 1863123, 1861754, 1860420, 1859127, 1857879, 1856679, 1855528, 1854427, 1853376, 1852374, 1851421, + 1850515, 1849654, 1848837, 1848061, 1847326, 1846629, 1845969, 1845344, 1844752, 1844191, 1843661, 1843159, 1842684, 1842236, + 1841811, 1878645, 1879380, 1880011, 1880531, 1880937, 1881224, 1881385, 1881414, 1881305, 1881053, 1880657, 1880116, 1879434, + 1878616, 1877673, 1876617, 1875461, 1874224, 1872922, 1871573, 1870194, 1868802, 1867409, 1866030, 1864673, 1863347, 1862059, + 1860813, 1859612, 1858459, 1857353, 1856297, 1855288, 1854327, 1853412, 1852541, 1851714, 1850928, 1850182, 1849475, 1848803, + 1848167, 1847564, 1846992, 1846451, 1845938, 1845452, 1844992, 1844557, 1880848, 1881591, 1882231, 1882762, 1883183, 1883487, + 1883668, 1883721, 1883639, 1883418, 1883055, 1882551, 1881909, 1881132, 1880232, 1879217, 1878103, 1876905, 1875640, 1874324, + 1872975, 1871607, 1870236, 1868873, 1867529, 1866212, 1864930, 1863687, 1862487, 1861332, 1860223, 1859161, 1858146, 1857178, + 1856254, 1855375, 1854538, 1853743, 1852987, 1852269, 1851587, 1850940, 1850326, 1849743, 1849191, 1848667, 1848171, 1847701, + 1847255, 1883003, 1883753, 1884402, 1884945, 1885379, 1885699, 1885900, 1885975, 1885918, 1885727, 1885397, 1884928, 1884324, + 1883587, 1882728, 1881754, 1880681, 1879522, 1878293, 1877010, 1875690, 1874348, 1872999, 1871653, 1870323, 1869017, 1867741, + 1866502, 1865303, 1864147, 1863036, 1861970, 1860950, 1859974, 1859044, 1858156, 1857311, 1856506, 1855740, 1855012, 1854320, + 1853663, 1853038, 1852445, 1851883, 1851348, 1850842, 1850361, 1849905, 1885128, 1885884, 1886541, 1887095, 1887542, 1887877, + 1888096, 1888192, 1888160, 1887996, 1887697, 1887263, 1886694, 1885996, 1885176, 1884243, 1883208, 1882087, 1880894, 1879644, + 1878354, 1877038, 1875710, 1874383, 1873067, 1871771, 1870504, 1869269, 1868073, 1866917, 1865803, 1864734, 1863708, 1862727, + 1861789, 1860894, 1860040, 1859226, 1858451, 1857713, 1857011, 1856344, 1855709, 1855106, 1854533, 1853989, 1853472, 1852981, + 1852515, 1887205, 1887968, 1888633, 1889196, 1889655, 1890005, 1890241, 1890358, 1890349, 1890212, 1889942, 1889540, 1889007, + 1888346, 1887564, 1886670, 1885674, 1884590, 1883432, 1882215, 1880955, 1879665, 1878360, 1877051, 1875750, 1874467, 1873208, + 1871979, 1870785, 1869630, 1868516, 1867443, 1866414, 1865427, 1864483, 1863580, 1862718, 1861896, 1861112, 1860365, 1859654, + 1858977, 1858332, 1857720, 1857137, 1856582, 1856055, 1855555, 1855079, 1889235, 1890003, 1890676, 1891249, 1891719, 1892083, + 1892336, 1892472, 1892486, 1892374, 1892133, 1891763, 1891263, 1890638, 1889893, 1889036, 1888078, 1887031, 1885908, 1884724, + 1883493, 1882230, 1880948, 1879659, 1878374, 1877103, 1875854, 1874631, 1873442, 1872288, 1871174, 1870099, 1869066, 1868075, + 1867125, 1866216, 1865347, 1864517, 1863725, 1862969, 1862249, 1861562, 1860909, 1860286, 1859694, 1859130, 1858594, 1858083, + 1857598, 1891217, 1891990, 1892671, 1893253, 1893734, 1894112, 1894381, 1894535, 1894571, 1894484, 1894270, 1893930, 1893463, + 1892872, 1892164, 1891344, 1890423, 1889411, 1888323, 1887172, 1885971, 1884735, 1883476, 1882207, 1880939, 1879682, 1878442, + 1877228, 1876043, 1874892, 1873778, 1872703, 1871667, 1870672, 1869717, 1868802, 1867926, 1867088, 1866289, 1865525, 1864796, + 1864101, 1863438, 1862807, 1862205, 1861632, 1861087, 1860567, 1860073, 136533, 136533, 136533, 136533, 136533, 136533, + 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 135924, 125277, 108081, 91368, 77552, + 66660, 58112, 51334, 45876, 41412, 37706, 34587, 31931, 29644, 27657, 25914, 24375, 23005, 21780, + 20677, 19679, 18772, 17944, 17186, 16489, 15845, 15250, 14698, 14184, 13704, 13256, 12836, 12442, + 12071, 11721, 11392, 11080, 10784, 10504, 10238, 9986, 9745, 9516, 9297, 9088, 8888, 8697, + 8513, 8338, 8169, 8007, 7852, 7702, 7558, 7419, 7285, 7156, 7031, 6911, 6795, 6682, + 6574, 6468, 6366, 6267, 6172, 6079, 5989, 5901, 5816, 5733, 5653, 5575, 5499, 5425, + 5353, 5283, 5215, 5148, 5083, 5020, 4959 +]; +/// NMOS log-domain current table, corner mos_tt, IHP-Open-PDK 21133f21, L 0.45 um, 27 C, at the source-to-bulk voltage Vsb = 1.25 V (slice 5): the tag word (4294967295), then the 4753 words ix * 49 + iy of log2(Id / F) in 1/65536 octave over 2^-8 of a linear-table word (1.164 pA), then the 97 rv words; the format of TT_LG_N (deck psp103_idpa_vsb_tt.cir, blocks lam_n_5 and r_5). +pub const VSB_N5 : [4851]u32 = [ + 4294967295, 0, 75186, 56093, 52971, 54542, 57342, 60878, 64618, 68374, 72074, 75691, 79213, 82636, + 85963, 89196, 92343, 95409, 98401, 101327, 104193, 107008, 109779, 112512, 115214, 117894, 120558, 123211, + 125862, 128516, 131180, 133860, 136561, 139290, 142052, 144853, 147698, 150597, 153555, 156584, 159698, 162915, + 166260, 169919, 173666, 177689, 182065, 186889, 192273, 198347, 0, 88537, 72426, 70440, 72803, 76176, + 80320, 84656, 88980, 93213, 97324, 101302, 105142, 108849, 112428, 115884, 119227, 122464, 125605, 128657, + 131628, 134527, 137362, 140139, 142867, 145553, 148203, 150824, 153423, 156005, 158578, 161147, 163718, 166296, + 168887, 171497, 174133, 176801, 179509, 182270, 185096, 188006, 191026, 194318, 197696, 201328, 205286, 209664, + 214568, 33586, 107208, 94507, 93766, 96681, 100968, 105753, 110711, 115619, 120394, 125003, 129436, 133691, + 137773, 141689, 145449, 149063, 152540, 155891, 159125, 162252, 165281, 168220, 171079, 173863, 176582, 179242, + 181851, 184414, 186937, 189428, 191892, 194334, 196760, 199176, 201586, 203996, 206413, 208844, 211295, 213778, + 216306, 218897, 221658, 224469, 227443, 230634, 234108, 237951, 81326, 131802, 122554, 123020, 126686, 131612, + 136996, 142525, 147966, 153230, 158284, 163120, 167739, 172149, 176359, 180382, 184229, 187913, 191446, 194839, + 198102, 201246, 204280, 207213, 210053, 212809, 215487, 218095, 220639, 223126, 225561, 227951, 230300, 232615, + 234899, 237158, 239397, 241621, 243835, 246046, 248262, 250490, 252744, 255038, 257456, 259913, 262496, 265252, + 268239, 129086, 162236, 156085, 157590, 161893, 167357, 173240, 179243, 185119, 190779, 196191, 201349, 206257, + 210925, 215367, 219596, 223627, 227473, 231149, 234666, 238037, 241273, 244384, 247378, 250266, 253056, 255755, + 258369, 260907, 263375, 265777, 268120, 270409, 272649, 274845, 277000, 279121, 281211, 283275, 285317, 287344, + 289361, 291376, 293399, 295443, 297569, 299722, 301966, 304338, 176866, 197783, 194118, 196430, 201227, 207103, + 213499, 219838, 226010, 231889, 237568, 242964, 248084, 252943, 257554, 261934, 266099, 270064, 273845, 277454, + 280905, 284209, 287378, 290420, 293346, 296164, 298882, 301507, 304046, 306505, 308890, 311207, 313460, 315655, + 317796, 319887, 321933, 323937, 325903, 327836, 329740, 331618, 333478, 335324, 337166, 339036, 340909, 342819, + 344789, 224664, 237354, 235515, 238410, 243563, 249808, 256416, 263009, 269412, 275550, 281364, 286928, 292199, + 297191, 301921, 306407, 310666, 314715, 318569, 322244, 325751, 329105, 332315, 335393, 338348, 341189, 343923, + 346559, 349102, 351560, 353938, 356242, 358476, 360646, 362755, 364808, 366809, 368762, 370669, 372535, 374364, + 376158, 377922, 379660, 381377, 383080, 384791, 386498, 388223, 272479, 279839, 279256, 282550, 287950, 294406, + 301206, 307976, 314540, 320822, 326797, 332445, 337819, 342902, 347715, 352274, 356598, 360705, 364611, 368331, + 371879, 375252, 378494, 381598, 384575, 387434, 390196, 392841, 395391, 397851, 400228, 402526, 404752, 406909, + 409001, 411034, 413010, 414933, 416807, 418634, 420418, 422163, 423870, 425544, 427189, 428808, 430406, 431998, + 433580, 320312, 324307, 324552, 328111, 333680, 340280, 347214, 354106, 360780, 367163, 373227, 378971, 384400, + 389547, 394417, 399027, 403383, 407530, 411471, 415223, 418800, 422214, 425477, 428601, 431595, 434467, 437227, + 439882, 442439, 444904, 447283, 449582, 451805, 453957, 456042, 458065, 460028, 461936, 463792, 465599, 467359, + 469081, 470757, 472395, 473998, 475569, 477111, 478630, 480133, 368160, 370070, 370845, 374580, 380264, 386965, + 393992, 400970, 407723, 414176, 420304, 426105, 431584, 436777, 441687, 446322, 450723, 454898, 458866, 462642, + 466239, 469672, 472953, 476091, 479098, 481982, 484751, 487414, 489977, 492447, 494830, 497130, 499353, 501504, + 503586, 505605, 507562, 509463, 511309, 513105, 514852, 516554, 518213, 519831, 521412, 522957, 524470, 525956, + 527410, 416024, 416657, 417768, 421619, 427384, 434158, 441253, 448294, 455104, 461609, 467783, 473626, 479148, + 484369, 489302, 493972, 498397, 502595, 506583, 510377, 513991, 517438, 520732, 523882, 526899, 529793, 532571, + 535241, 537810, 540285, 542671, 544975, 547200, 549352, 551435, 553452, 555408, 557305, 559148, 560938, 562679, + 564373, 566023, 567631, 569200, 570731, 572227, 573690, 575124, 463902, 463760, 465083, 469014, 474838, 481667, + 488814, 495903, 502757, 509302, 515512, 521387, 526939, 532186, 537143, 541835, 546279, 550494, 554498, 558307, + 561934, 565394, 568698, 571858, 574885, 577786, 580571, 583248, 585823, 588303, 590694, 593001, 595229, 597383, + 599468, 601486, 603442, 605340, 607181, 608970, 610708, 612399, 614045, 615649, 617211, 618735, 620223, 621676, + 623097, 511791, 511183, 512643, 516630, 522500, 529373, 536561, 543689, 550578, 557156, 563395, 569297, 574873, + 580142, 585118, 589828, 594288, 598519, 602536, 606357, 609995, 613465, 616779, 619948, 622982, 625891, 628683, + 631365, 633946, 636431, 638826, 641137, 643369, 645526, 647613, 649634, 651591, 653490, 655332, 657121, 658859, + 660550, 662195, 663796, 665356, 666878, 668361, 669810, 671225, 559688, 558805, 560354, 564384, 570291, 577200, + 584423, 591583, 598503, 605108, 611373, 617297, 622894, 628179, 633175, 637900, 642374, 646617, 650647, 654478, + 658126, 661606, 664928, 668105, 671146, 674061, 676859, 679548, 682133, 684623, 687023, 689338, 691573, 693734, + 695823, 697847, 699807, 701707, 703551, 705341, 707081, 708772, 710417, 712019, 713579, 715099, 716582, 718028, + 719441, 607588, 606548, 608157, 612221, 618159, 625100, 632353, 639542, 646488, 653117, 659404, 665349, 670964, + 676266, 681276, 686015, 690502, 694757, 698796, 702637, 706295, 709782, 713112, 716296, 719344, 722266, 725069, + 727763, 730353, 732848, 735251, 737570, 739809, 741973, 744066, 746092, 748055, 749958, 751804, 753596, 755337, + 757030, 758676, 760279, 761839, 763360, 764843, 766289, 767701, 655903, 654599, 656139, 660167, 666099, 673051, + 680324, 687535, 694504, 701154, 707460, 713423, 719054, 724371, 729394, 734145, 738644, 742909, 746958, 750808, + 754473, 757968, 761305, 764495, 767549, 770476, 773285, 775984, 778579, 781077, 783485, 785808, 788051, 790218, + 792314, 794343, 796308, 798213, 800062, 801856, 803599, 805293, 806941, 808545, 810107, 811629, 813112, 814560, + 815972, 711484, 706941, 706446, 709295, 714611, 721269, 728416, 735582, 742542, 749199, 755517, 761493, 767137, + 772466, 777502, 782264, 786772, 791046, 795103, 798961, 802634, 806135, 809478, 812674, 815734, 818666, 821479, + 824182, 826781, 829284, 831695, 834021, 836267, 838437, 840536, 842567, 844535, 846443, 848294, 850090, 851835, + 853531, 855181, 856786, 858350, 859873, 861357, 862806, 864219, 773265, 763445, 759375, 759979, 763995, 769949, + 776737, 783731, 790614, 797241, 803552, 809531, 815182, 820520, 825564, 830335, 834851, 839132, 843197, 847060, + 850739, 854246, 857594, 860795, 863859, 866795, 869612, 872319, 874921, 877427, 879842, 882171, 884419, 886592, + 888693, 890727, 892697, 894607, 896459, 898257, 900004, 901702, 903353, 904960, 906525, 908049, 909535, 910984, + 912399, 836879, 821854, 813982, 811977, 814306, 819228, 825411, 832063, 838760, 845290, 851553, 857509, 863152, + 868490, 873536, 878310, 882830, 887116, 891185, 895053, 898736, 902246, 905598, 908802, 911869, 914808, 917628, + 920337, 922942, 925450, 927867, 930198, 932448, 934622, 936725, 938761, 940733, 942644, 944498, 946297, 948045, + 949744, 951396, 953004, 954570, 956095, 957582, 959032, 960447, 899952, 880605, 869350, 864832, 865384, 869098, + 874489, 880636, 887019, 893358, 899506, 905396, 911000, 916315, 921349, 926117, 930634, 934919, 938988, 942856, + 946539, 950051, 953403, 956608, 959676, 962616, 965436, 968146, 970752, 973260, 975678, 978009, 980260, 982435, + 984539, 986575, 988547, 990459, 992313, 994113, 995861, 997560, 999213, 1000821, 1002387, 1003913, 1005400, 1006850, + 1008265, 961567, 938871, 924808, 918061, 916917, 919385, 923884, 929408, 935364, 941413, 947368, 953129, 958648, + 963907, 968904, 973646, 978146, 982419, 986478, 990340, 994018, 997525, 1000874, 1004075, 1007140, 1010077, 1012896, + 1015603, 1018207, 1020714, 1023129, 1025459, 1027709, 1029882, 1031984, 1034019, 1035990, 1037900, 1039753, 1041552, 1043299, + 1044998, 1046649, 1048257, 1049822, 1051346, 1052833, 1054282, 1055697, 1021406, 996233, 979905, 971242, 968553, 969812, + 973386, 978216, 983659, 989333, 995016, 1000582, 1005960, 1011117, 1016040, 1020727, 1025187, 1029428, 1033463, 1037305, + 1040967, 1044461, 1047798, 1050990, 1054045, 1056974, 1059785, 1062486, 1065083, 1067584, 1069994, 1072319, 1074563, 1076732, + 1078829, 1080860, 1082827, 1084733, 1086583, 1088378, 1090122, 1091817, 1093465, 1095070, 1096632, 1098154, 1099637, 1101084, + 1102496, 1079290, 1052419, 1034300, 1024004, 1019922, 1020034, 1022685, 1026782, 1031650, 1036878, 1042218, 1047520, 1052696, + 1057697, 1062500, 1067094, 1071480, 1075662, 1079650, 1083453, 1087082, 1090548, 1093861, 1097031, 1100067, 1102979, 1105774, + 1108460, 1111044, 1113532, 1115930, 1118243, 1120477, 1122636, 1124725, 1126746, 1128704, 1130603, 1132445, 1134233, 1135970, + 1137658, 1139300, 1140898, 1142454, 1143971, 1145449, 1146890, 1148297, 1134989, 1107159, 1087667, 1075974, 1070626, 1069648, + 1071381, 1074717, 1078960, 1083681, 1088609, 1093580, 1098489, 1103276, 1107905, 1112358, 1116628, 1120715, 1124623, 1128358, + 1131930, 1135345, 1138614, 1141745, 1144747, 1147627, 1150394, 1153053, 1155612, 1158078, 1160455, 1162748, 1164963, 1167105, + 1169176, 1171182, 1173125, 1175009, 1176837, 1178612, 1180336, 1182012, 1183643, 1185230, 1186776, 1188282, 1189750, 1191182, + 1192580, 1188139, 1160100, 1139628, 1126736, 1120218, 1118184, 1118994, 1121536, 1125105, 1129255, 1133705, 1138274, 1142849, + 1147355, 1151750, 1156006, 1160110, 1164055, 1167842, 1171473, 1174953, 1178288, 1181486, 1184554, 1187499, 1190327, 1193046, + 1195662, 1198181, 1200609, 1202950, 1205211, 1207395, 1209508, 1211551, 1213531, 1215449, 1217309, 1219115, 1220868, 1222572, + 1224228, 1225840, 1227409, 1228937, 1230426, 1231878, 1233295, 1234678, 1238264, 1210786, 1189738, 1175824, 1168203, 1165125, + 1164993, 1166700, 1169536, 1173051, 1176951, 1181047, 1185215, 1189372, 1193466, 1197462, 1201342, 1205092, 1208708, 1212189, + 1215537, 1218755, 1221847, 1224820, 1227678, 1230428, 1233075, 1235624, 1238082, 1240452, 1242741, 1244951, 1247088, 1249156, + 1251157, 1253097, 1254977, 1256801, 1258572, 1260292, 1261964, 1263591, 1265173, 1266715, 1268216, 1269679, 1271107, 1272499, + 1273859, 1284871, 1258697, 1237506, 1222754, 1214088, 1209970, 1208868, 1209694, 1211742, 1214556, 1217838, 1221390, 1225080, + 1228818, 1232543, 1236216, 1239810, 1243308, 1246700, 1249982, 1253151, 1256209, 1259156, 1261997, 1264735, 1267375, 1269920, + 1272376, 1274747, 1277036, 1279248, 1281387, 1283457, 1285461, 1287403, 1289285, 1291111, 1292884, 1294606, 1296279, 1297906, + 1299490, 1301031, 1302532, 1303996, 1305423, 1306815, 1308173, 1309500, 1327576, 1303332, 1282463, 1267092, 1257455, 1252310, + 1250224, 1250137, 1251353, 1253416, 1256024, 1258973, 1262124, 1265382, 1268679, 1271970, 1275223, 1278415, 1281533, 1284567, + 1287513, 1290368, 1293131, 1295803, 1298386, 1300883, 1303297, 1305630, 1307886, 1310069, 1312181, 1314226, 1316208, 1318128, + 1319991, 1321798, 1323552, 1325257, 1326914, 1328525, 1330093, 1331619, 1333105, 1334554, 1335967, 1337345, 1338690, 1340003, + 1341286, 1366233, 1344333, 1324253, 1308527, 1298035, 1291907, 1288848, 1287846, 1288214, 1289501, 1291403, 1293713, 1296287, + 1299023, 1301850, 1304717, 1307586, 1310431, 1313234, 1315982, 1318667, 1321283, 1323828, 1326299, 1328697, 1331023, 1333277, + 1335462, 1337580, 1339633, 1341624, 1343555, 1345428, 1347246, 1349011, 1350726, 1352393, 1354014, 1355591, 1357125, 1358620, + 1360076, 1361495, 1362879, 1364229, 1365546, 1366833, 1368090, 1369319, 1400944, 1381555, 1362671, 1346903, 1335717, 1328689, + 1324708, 1322820, 1322359, 1322878, 1324075, 1325739, 1327724, 1329923, 1332261, 1334681, 1337144, 1339618, 1342082, 1344520, + 1346920, 1349275, 1351578, 1353826, 1356018, 1358151, 1360227, 1362245, 1364206, 1366113, 1367965, 1369765, 1371515, 1373216, + 1374871, 1376480, 1378047, 1379571, 1381056, 1382503, 1383913, 1385288, 1386629, 1387938, 1389216, 1390464, 1391684, 1392876, + 1394042, 1432018, 1415089, 1397698, 1382214, 1370538, 1362728, 1357905, 1355192, 1353949, 1353738, 1354257, 1355296, 1356705, + 1358375, 1360228, 1362202, 1364255, 1366353, 1368471, 1370590, 1372696, 1374779, 1376830, 1378845, 1380819, 1382750, 1384636, + 1386476, 1388271, 1390021, 1391725, 1393386, 1395003, 1396579, 1398114, 1399610, 1401068, 1402489, 1403875, 1405227, 1406545, + 1407833, 1409089, 1410317, 1411517, 1412689, 1413836, 1414957, 1416055, 1459846, 1445189, 1429447, 1414552, 1402616, 1394171, + 1388607, 1385149, 1383192, 1382307, 1382196, 1382649, 1383515, 1384684, 1386072, 1387618, 1389274, 1391006, 1392785, 1394590, + 1396406, 1398218, 1400018, 1401799, 1403554, 1405281, 1406975, 1408636, 1410262, 1411852, 1413406, 1414924, 1416407, 1417854, + 1419267, 1420646, 1421993, 1423308, 1424591, 1425845, 1427070, 1428267, 1429437, 1430581, 1431699, 1432793, 1433864, 1434913, + 1435939, 1484860, 1472214, 1458148, 1444090, 1432132, 1423209, 1417017, 1412904, 1410308, 1408814, 1408130, 1408048, 1408414, + 1409117, 1410073, 1411217, 1412501, 1413886, 1415343, 1416849, 1418385, 1419938, 1421495, 1423049, 1424593, 1426120, 1427628, + 1429114, 1430574, 1432007, 1433414, 1434792, 1436141, 1437462, 1438754, 1440018, 1441255, 1442464, 1443647, 1444804, 1445936, + 1447043, 1448127, 1449187, 1450225, 1451242, 1452238, 1453213, 1454169, 1507443, 1496536, 1484078, 1471024, 1459271, 1450039, + 1443335, 1438658, 1435499, 1433464, 1432267, 1431701, 1431615, 1431894, 1432454, 1433229, 1434168, 1435232, 1436390, 1437616, + 1438890, 1440199, 1441527, 1442867, 1444209, 1445548, 1446878, 1448195, 1449497, 1450782, 1452046, 1453290, 1454511, 1455711, + 1456887, 1458041, 1459172, 1460280, 1461366, 1462429, 1463471, 1464492, 1465493, 1466473, 1467433, 1468375, 1469298, 1470203, + 1471090, 1527949, 1518527, 1507548, 1495585, 1484232, 1474858, 1467759, 1462606, 1458957, 1456445, 1454792, 1453794, 1453301, + 1453197, 1453399, 1453837, 1454462, 1455231, 1456112, 1457080, 1458113, 1459194, 1460310, 1461449, 1462603, 1463765, 1464928, + 1466088, 1467242, 1468385, 1469516, 1470633, 1471734, 1472818, 1473886, 1474935, 1475966, 1476978, 1477972, 1478948, 1479905, + 1480844, 1481766, 1482670, 1483557, 1484428, 1485282, 1486120, 1486943, 1546673, 1538511, 1528857, 1518001, 1507203, 1497844, + 1490466, 1484922, 1480853, 1477923, 1475866, 1474483, 1473625, 1473177, 1473055, 1473189, 1473527, 1474027, 1474656, 1475387, + 1476197, 1477069, 1477988, 1478943, 1479922, 1480920, 1481928, 1482941, 1483956, 1484968, 1485974, 1486973, 1487962, 1488939, + 1489904, 1490855, 1491793, 1492716, 1493624, 1494517, 1495396, 1496259, 1497107, 1497940, 1498759, 1499563, 1500353, 1501129, + 1501892, 1563861, 1556766, 1548279, 1538497, 1528359, 1519158, 1511615, 1505762, 1501336, 1498042, 1495628, 1493903, 1492719, + 1491962, 1491548, 1491406, 1491485, 1491741, 1492139, 1492653, 1493259, 1493939, 1494677, 1495461, 1496279, 1497125, 1497989, + 1498867, 1499753, 1500643, 1501533, 1502422, 1503306, 1504184, 1505054, 1505915, 1506765, 1507605, 1508434, 1509251, 1510055, + 1510848, 1511628, 1512395, 1513150, 1513893, 1514623, 1515342, 1516049, 1579718, 1573530, 1566063, 1557287, 1547868, 1538948, + 1531346, 1525264, 1520542, 1516932, 1514205, 1512175, 1510699, 1509665, 1508986, 1508595, 1508438, 1508471, 1508660, 1508975, + 1509394, 1509897, 1510469, 1511095, 1511765, 1512470, 1513201, 1513953, 1514720, 1515497, 1516280, 1517067, 1517854, 1518639, + 1519421, 1520197, 1520968, 1521731, 1522485, 1523231, 1523968, 1524695, 1525411, 1526118, 1526814, 1527500, 1528176, 1528842, + 1529497, 1594411, 1588995, 1582415, 1574562, 1565884, 1557340, 1549781, 1543545, 1538584, 1534705, 1531702, 1529402, 1527665, + 1526380, 1525464, 1524847, 1524475, 1524305, 1524302, 1524436, 1524683, 1525023, 1525441, 1525922, 1526455, 1527030, 1527638, + 1528274, 1528930, 1529602, 1530285, 1530977, 1531674, 1532373, 1533073, 1533771, 1534467, 1535158, 1535845, 1536525, 1537198, + 1537864, 1538523, 1539173, 1539816, 1540449, 1541074, 1541691, 1542299, 1608084, 1603331, 1597520, 1590501, 1582555, 1574456, + 1567028, 1560713, 1555568, 1551462, 1548219, 1545679, 1543707, 1542197, 1541065, 1540242, 1539675, 1539320, 1539140, 1539107, + 1539196, 1539387, 1539663, 1540010, 1540415, 1540870, 1541364, 1541891, 1542444, 1543018, 1543609, 1544212, 1544825, 1545445, + 1546068, 1546694, 1547320, 1547945, 1548567, 1549186, 1549801, 1550411, 1551015, 1551614, 1552206, 1552791, 1553369, 1553940, + 1554504, 1620863, 1616680, 1611537, 1605264, 1598020, 1590409, 1583188, 1576864, 1571587, 1567294, 1563843, 1561090, 1558908, + 1557195, 1555866, 1554856, 1554110, 1553584, 1553242, 1553055, 1552998, 1553051, 1553195, 1553418, 1553705, 1554047, 1554434, + 1554860, 1555317, 1555800, 1556305, 1556826, 1557360, 1557904, 1558457, 1559014, 1559575, 1560138, 1560701, 1561263, 1561823, + 1562381, 1562935, 1563484, 1564030, 1564570, 1565105, 1565634, 1566157, 1632835, 1629147, 1624586, 1618978, 1612393, 1605290, + 1598338, 1592068, 1586712, 1582271, 1578643, 1575703, 1573333, 1571436, 1569929, 1568748, 1567838, 1567155, 1566664, 1566335, + 1566143, 1566067, 1566090, 1566196, 1566373, 1566610, 1566899, 1567230, 1567597, 1567995, 1568418, 1568862, 1569322, 1569797, + 1570282, 1570776, 1571276, 1571780, 1572288, 1572796, 1573305, 1573814, 1574321, 1574825, 1575327, 1575825, 1576319, 1576809, + 1577295, 1644090, 1640832, 1636781, 1631762, 1625788, 1619197, 1612558, 1606401, 1601015, 1596464, 1592688, 1589584, 1587047, + 1584983, 1583314, 1581976, 1580915, 1580089, 1579460, 1578999, 1578682, 1578486, 1578395, 1578393, 1578467, 1578607, 1578802, + 1579045, 1579328, 1579645, 1579992, 1580363, 1580754, 1581163, 1581585, 1582019, 1582461, 1582911, 1583366, 1583824, 1584285, + 1584747, 1585210, 1585672, 1586132, 1586591, 1587048, 1587501, 1587952, 1654704, 1651823, 1648218, 1643722, 1638308, 1632217, + 1625923, 1619926, 1614556, 1609932, 1606037, 1602792, 1600106, 1597892, 1596075, 1594593, 1593394, 1592434, 1591677, 1591095, + 1590660, 1590353, 1590156, 1590053, 1590030, 1590078, 1590185, 1590345, 1590548, 1590790, 1591065, 1591367, 1591693, 1592039, + 1592402, 1592778, 1593167, 1593564, 1593970, 1594381, 1594796, 1595215, 1595635, 1596057, 1596479, 1596901, 1597322, 1597741, + 1598158, 1664740, 1662192, 1658979, 1654947, 1650043, 1644431, 1638499, 1632703, 1627391, 1622729, 1618742, 1615378, 1612560, + 1610211, 1608260, 1606646, 1605319, 1604235, 1603360, 1602663, 1602120, 1601709, 1601412, 1601213, 1601100, 1601061, 1601086, + 1601166, 1601295, 1601465, 1601672, 1601909, 1602173, 1602459, 1602766, 1603088, 1603425, 1603774, 1604132, 1604498, 1604870, + 1605247, 1605628, 1606012, 1606397, 1606784, 1607171, 1607558, 1607944, 1674244, 1671989, 1669123, 1665504, 1661062, 1655905, + 1650340, 1644775, 1639560, 1634895, 1630843, 1627381, 1624449, 1621980, 1619907, 1618172, 1616727, 1615529, 1614543, 1613740, + 1613095, 1612586, 1612195, 1611908, 1611709, 1611588, 1611535, 1611541, 1611599, 1611702, 1611843, 1612019, 1612223, 1612454, + 1612706, 1612978, 1613265, 1613567, 1613880, 1614203, 1614534, 1614872, 1615215, 1615563, 1615913, 1616267, 1616621, 1616977, + 1617333, 1683268, 1681274, 1678716, 1675465, 1671440, 1666708, 1661509, 1656197, 1651111, 1646474, 1642383, 1638844, 1635815, + 1633239, 1631055, 1629210, 1627656, 1626352, 1625263, 1624361, 1623620, 1623020, 1622541, 1622169, 1621890, 1621692, 1621565, + 1621501, 1621491, 1621529, 1621609, 1621725, 1621874, 1622051, 1622252, 1622474, 1622715, 1622972, 1623242, 1623524, 1623815, + 1624116, 1624423, 1624736, 1625053, 1625374, 1625698, 1626025, 1626352, 1691850, 1690089, 1687806, 1684882, 1681235, 1676898, + 1672056, 1667011, 1662080, 1657500, 1653397, 1649801, 1646691, 1644021, 1641738, 1639792, 1638137, 1636735, 1635551, 1634556, + 1633725, 1633039, 1632477, 1632026, 1631670, 1631399, 1631202, 1631071, 1630997, 1630973, 1630995, 1631055, 1631150, 1631275, + 1631427, 1631603, 1631799, 1632012, 1632241, 1632484, 1632738, 1633002, 1633274, 1633554, 1633839, 1634130, 1634425, 1634723, + 1635023, 1700031, 1698478, 1696441, 1693810, 1690504, 1686532, 1682033, 1677261, 1672507, 1668010, 1663918, 1660285, 1657110, + 1654358, 1651987, 1649949, 1648202, 1646709, 1645435, 1644354, 1643439, 1642671, 1642031, 1641504, 1641077, 1640736, 1640473, + 1640277, 1640142, 1640060, 1640025, 1640032, 1640076, 1640152, 1640257, 1640387, 1640540, 1640712, 1640901, 1641106, 1641324, + 1641553, 1641792, 1642039, 1642294, 1642555, 1642822, 1643093, 1643367, 1707844, 1706477, 1704660, 1702293, 1699295, 1695658, + 1691485, 1686988, 1682426, 1678035, 1673975, 1670325, 1667100, 1664280, 1661830, 1659710, 1657878, 1656300, 1654943, 1653780, + 1652786, 1651942, 1651228, 1650630, 1650133, 1649727, 1649400, 1649144, 1648950, 1648812, 1648723, 1648679, 1648673, 1648702, + 1648761, 1648848, 1648959, 1649092, 1649243, 1649411, 1649593, 1649789, 1649996, 1650213, 1650438, 1650670, 1650909, 1651154, + 1651403, 1715300, 1714103, 1712485, 1710355, 1707636, 1704307, 1700443, 1696217, 1691858, 1687591, 1683586, 1679937, 1676678, + 1673803, 1671285, 1669090, 1667181, 1665525, 1664091, 1662852, 1661785, 1660868, 1660085, 1659419, 1658857, 1658388, 1658001, + 1657687, 1657438, 1657246, 1657106, 1657012, 1656959, 1656942, 1656959, 1657004, 1657075, 1657169, 1657283, 1657416, 1657565, + 1657728, 1657904, 1658090, 1658287, 1658492, 1658705, 1658924, 1659148, 1722447, 1721402, 1719963, 1718047, 1715580, 1712534, + 1708960, 1704998, 1700847, 1696720, 1692786, 1689155, 1685877, 1682959, 1680383, 1678122, 1676143, 1674415, 1672909, 1671599, + 1670462, 1669477, 1668627, 1667898, 1667274, 1666745, 1666300, 1665931, 1665628, 1665385, 1665196, 1665054, 1664956, 1664895, + 1664869, 1664874, 1664907, 1664963, 1665042, 1665141, 1665257, 1665389, 1665534, 1665692, 1665861, 1666039, 1666226, 1666420, + 1666621, 1729302, 1728396, 1727119, 1725396, 1723157, 1720370, 1717067, 1713359, 1709420, 1705442, 1701596, 1698000, 1694717, + 1691767, 1689143, 1686824, 1684782, 1682988, 1681415, 1680038, 1678835, 1677786, 1676874, 1676083, 1675401, 1674815, 1674315, + 1673892, 1673538, 1673246, 1673009, 1672822, 1672679, 1672577, 1672510, 1672476, 1672471, 1672492, 1672536, 1672602, 1672686, + 1672787, 1672903, 1673033, 1673174, 1673326, 1673488, 1673659, 1673836, 1735875, 1735095, 1733965, 1732418, 1730388, 1727837, + 1724787, 1721323, 1717594, 1713775, 1710030, 1706483, 1703209, 1700239, 1697577, 1695209, 1693110, 1691256, 1689621, 1688183, + 1686918, 1685809, 1684837, 1683989, 1683250, 1682610, 1682057, 1681584, 1681181, 1680841, 1680559, 1680328, 1680143, 1680000, + 1679894, 1679822, 1679781, 1679767, 1679778, 1679811, 1679865, 1679936, 1680024, 1680126, 1680241, 1680368, 1680506, 1680652, + 1680808, 1742191, 1741527, 1740532, 1739144, 1737303, 1734970, 1732153, 1728922, 1725400, 1721744, 1718111, 1714626, 1711374, + 1708397, 1705706, 1703296, 1701147, 1699239, 1697548, 1696051, 1694729, 1693563, 1692535, 1691632, 1690840, 1690148, 1689545, + 1689023, 1688573, 1688188, 1687861, 1687588, 1687362, 1687180, 1687037, 1686928, 1686852, 1686804, 1686783, 1686785, 1686808, + 1686851, 1686911, 1686986, 1687076, 1687178, 1687292, 1687416, 1687549, 1748258, 1747700, 1746828, 1745586, 1743918, 1741785, + 1739186, 1736174, 1732854, 1729364, 1725852, 1722441, 1719223, 1716249, 1713540, 1711095, 1708904, 1706947, 1705204, 1703655, + 1702279, 1701059, 1699978, 1699023, 1698181, 1697439, 1696789, 1696220, 1695725, 1695296, 1694928, 1694614, 1694349, 1694129, + 1693949, 1693805, 1693695, 1693615, 1693562, 1693534, 1693528, 1693542, 1693575, 1693625, 1693689, 1693767, 1693858, 1693960, + 1694071, 1754111, 1753648, 1752888, 1751780, 1750270, 1748319, 1745922, 1743117, 1739992, 1736669, 1733282, 1729956, 1726782, + 1723821, 1721102, 1718632, 1716404, 1714404, 1712614, 1711015, 1709588, 1708318, 1707187, 1706183, 1705292, 1704504, 1703807, + 1703193, 1702655, 1702184, 1701775, 1701422, 1701119, 1700862, 1700646, 1700469, 1700326, 1700214, 1700130, 1700072, 1700038, + 1700025, 1700031, 1700056, 1700096, 1700150, 1700218, 1700298, 1700389, 1759744, 1759370, 1758713, 1757727, 1756362, 1754579, + 1752369, 1749759, 1746822, 1743664, 1740408, 1737173, 1734054, 1731116, 1728396, 1725908, 1723650, 1721612, 1719780, 1718136, + 1716663, 1715345, 1714168, 1713117, 1712180, 1711346, 1710606, 1709949, 1709369, 1708859, 1708410, 1708019, 1707680, 1707387, + 1707137, 1706927, 1706752, 1706609, 1706495, 1706409, 1706347, 1706307, 1706288, 1706287, 1706304, 1706335, 1706381, 1706439, + 1706509, 1765182, 1764890, 1764328, 1763454, 1762221, 1760593, 1758556, 1756129, 1753371, 1750375, 1747253, 1744116, 1741059, + 1738153, 1735441, 1732942, 1730660, 1728590, 1726720, 1725035, 1723519, 1722157, 1720935, 1719840, 1718859, 1717983, 1717200, + 1716503, 1715883, 1715333, 1714847, 1714419, 1714044, 1713717, 1713434, 1713192, 1712985, 1712813, 1712670, 1712556, 1712467, + 1712401, 1712357, 1712332, 1712325, 1712334, 1712358, 1712395, 1712445, 1770431, 1770214, 1769740, 1768968, 1767858, 1766372, + 1764495, 1762240, 1759653, 1756815, 1753827, 1750792, 1747806, 1744940, 1742243, 1739740, 1737442, 1735345, 1733442, 1731719, + 1730163, 1728760, 1727497, 1726360, 1725338, 1724421, 1723598, 1722861, 1722203, 1721616, 1721093, 1720630, 1720221, 1719861, + 1719546, 1719272, 1719035, 1718833, 1718663, 1718521, 1718406, 1718315, 1718246, 1718197, 1718167, 1718154, 1718157, 1718174, + 1718204, 1775503, 1775356, 1774962, 1774286, 1773288, 1771934, 1770205, 1768110, 1765686, 1763002, 1760147, 1757219, 1754308, + 1751490, 1748816, 1746316, 1744006, 1741888, 1739956, 1738200, 1736608, 1735167, 1733864, 1732688, 1731627, 1730671, 1729810, + 1729035, 1728340, 1727717, 1727159, 1726662, 1726220, 1725827, 1725481, 1725177, 1724911, 1724681, 1724483, 1724315, 1724174, + 1724058, 1723965, 1723893, 1723841, 1723806, 1723788, 1723784, 1723795, 1780404, 1780321, 1780002, 1779413, 1778519, 1777286, + 1775696, 1773751, 1771481, 1768945, 1766222, 1763402, 1760573, 1757809, 1755164, 1752675, 1750360, 1748226, 1746270, 1744484, + 1742859, 1741383, 1740044, 1738831, 1737733, 1736739, 1735841, 1735031, 1734301, 1733643, 1733052, 1732522, 1732047, 1731624, + 1731247, 1730914, 1730620, 1730362, 1730137, 1729943, 1729777, 1729637, 1729521, 1729426, 1729352, 1729296, 1729257, 1729234, + 1729226, 1785157, 1785134, 1784883, 1784375, 1783577, 1782456, 1780994, 1779188, 1777064, 1774670, 1772077, 1769366, 1766622, + 1763917, 1761308, 1758835, 1756520, 1754374, 1752398, 1750587, 1748932, 1747424, 1746051, 1744803, 1743669, 1742641, 1741708, + 1740863, 1740098, 1739407, 1738784, 1738221, 1737716, 1737262, 1736856, 1736494, 1736172, 1735888, 1735637, 1735417, 1735227, + 1735063, 1734924, 1734807, 1734711, 1734635, 1734576, 1734533, 1734506, 1789743, 1789775, 1789589, 1789157, 1788447, 1787431, + 1786088, 1784414, 1782427, 1780170, 1777704, 1775103, 1772447, 1769806, 1767239, 1764788, 1762479, 1760327, 1758336, 1756503, + 1754822, 1753285, 1751881, 1750600, 1749433, 1748372, 1747406, 1746528, 1745731, 1745008, 1744353, 1743761, 1743225, 1742743, + 1742308, 1741919, 1741570, 1741259, 1740983, 1740739, 1740525, 1740338, 1740176, 1740038, 1739921, 1739825, 1739746, 1739685, + 1739639, 1794199, 1794282, 1794155, 1793793, 1793165, 1792245, 1791012, 1789461, 1787605, 1785477, 1783134, 1780643, 1778076, + 1775503, 1772982, 1770558, 1768261, 1766108, 1764105, 1762254, 1760550, 1758986, 1757553, 1756242, 1755044, 1753951, 1752953, + 1752044, 1751216, 1750462, 1749777, 1749155, 1748590, 1748079, 1747617, 1747201, 1746826, 1746490, 1746189, 1745921, 1745684, + 1745474, 1745291, 1745131, 1744994, 1744877, 1744779, 1744699, 1744635, 1798515, 1798646, 1798575, 1798277, 1797726, 1796895, + 1795765, 1794329, 1792595, 1790592, 1788368, 1785984, 1783508, 1781006, 1778536, 1776145, 1773864, 1771713, 1769704, 1767839, + 1766115, 1764527, 1763067, 1761728, 1760501, 1759378, 1758351, 1757411, 1756553, 1755770, 1755056, 1754405, 1753813, 1753275, + 1752786, 1752343, 1751943, 1751582, 1751257, 1750966, 1750706, 1750474, 1750269, 1750089, 1749932, 1749795, 1749678, 1749580, + 1749498, 1802694, 1802869, 1802850, 1802612, 1802133, 1801386, 1800352, 1799023, 1797404, 1795520, 1793412, 1791134, 1788749, + 1786321, 1783906, 1781551, 1779290, 1777148, 1775136, 1773260, 1771520, 1769911, 1768428, 1767063, 1765809, 1764658, 1763602, + 1762634, 1761748, 1760937, 1760195, 1759516, 1758897, 1758333, 1757818, 1757350, 1756926, 1756541, 1756193, 1755879, 1755596, + 1755343, 1755118, 1754917, 1754740, 1754584, 1754449, 1754333, 1754234, 1806760, 1806977, 1807005, 1806824, 1806411, 1805741, + 1804797, 1803568, 1802058, 1800287, 1798289, 1796115, 1793821, 1791467, 1789110, 1786795, 1784560, 1782429, 1780419, 1778535, + 1776781, 1775154, 1773650, 1772261, 1770982, 1769804, 1768722, 1767727, 1766813, 1765974, 1765206, 1764501, 1763856, 1763265, + 1762726, 1762234, 1761785, 1761376, 1761005, 1760669, 1760365, 1760091, 1759845, 1759624, 1759428, 1759254, 1759100, 1758966, + 1758850, 1810705, 1810960, 1811033, 1810905, 1810553, 1809956, 1809095, 1807961, 1806553, 1804889, 1802998, 1800924, 1798720, + 1796443, 1794146, 1791875, 1789669, 1787554, 1785548, 1783661, 1781897, 1780255, 1778731, 1777321, 1776018, 1774816, 1773708, + 1772687, 1771748, 1770883, 1770088, 1769358, 1768688, 1768073, 1767509, 1766993, 1766521, 1766090, 1765697, 1765339, 1765014, + 1764719, 1764453, 1764213, 1763998, 1763805, 1763634, 1763483, 1763349, 1814541, 1814833, 1814947, 1814868, 1814574, 1814044, + 1813262, 1812215, 1810904, 1809341, 1807552, 1805576, 1803462, 1801261, 1799026, 1796802, 1794628, 1792532, 1790535, 1788647, + 1786876, 1785221, 1783681, 1782251, 1780927, 1779702, 1778570, 1777525, 1776560, 1775671, 1774852, 1774097, 1773402, 1772763, + 1772176, 1771637, 1771142, 1770689, 1770274, 1769895, 1769550, 1769235, 1768949, 1768690, 1768456, 1768246, 1768057, 1767888, + 1767739, 1818270, 1818596, 1818750, 1818716, 1818476, 1818009, 1817300, 1816336, 1815115, 1813648, 1811957, 1810077, 1808050, + 1805926, 1803754, 1801580, 1799441, 1797368, 1795382, 1793498, 1791721, 1790057, 1788502, 1787055, 1785711, 1784465, 1783310, + 1782242, 1781254, 1780341, 1779498, 1778720, 1778002, 1777340, 1776730, 1776169, 1775652, 1775177, 1774741, 1774342, 1773976, + 1773642, 1773337, 1773059, 1772807, 1772579, 1772373, 1772188, 1772022, 1821894, 1822251, 1822442, 1822451, 1822261, 1821854, + 1821213, 1820327, 1819192, 1817816, 1816219, 1814430, 1812489, 1810442, 1808334, 1806211, 1804111, 1802064, 1800093, 1798214, + 1796437, 1794764, 1793198, 1791736, 1790374, 1789108, 1787933, 1786843, 1785833, 1784898, 1784032, 1783231, 1782491, 1781806, + 1781174, 1780591, 1780053, 1779558, 1779102, 1778682, 1778297, 1777943, 1777620, 1777324, 1777054, 1776809, 1776586, 1776384, + 1776202, 1825427, 1825814, 1826039, 1826088, 1825945, 1825593, 1825016, 1824202, 1823148, 1821859, 1820351, 1818650, 1816793, + 1814821, 1812779, 1810709, 1808649, 1806631, 1804678, 1802808, 1801031, 1799354, 1797778, 1796303, 1794925, 1793641, 1792446, + 1791336, 1790305, 1789348, 1788460, 1787638, 1786876, 1786170, 1785517, 1784912, 1784354, 1783838, 1783362, 1782923, 1782518, + 1782146, 1781804, 1781491, 1781203, 1780941, 1780701, 1780483, 1780286, 1828857, 1829271, 1829528, 1829615, 1829517, 1829217, + 1828700, 1827955, 1826978, 1825770, 1824347, 1822732, 1820957, 1819060, 1817083, 1815068, 1813051, 1811063, 1809132, 1807273, + 1805501, 1803821, 1802238, 1800751, 1799360, 1798059, 1796847, 1795718, 1794667, 1793689, 1792781, 1791938, 1791155, 1790429, + 1789755, 1789130, 1788552, 1788016, 1787521, 1787063, 1786640, 1786250, 1785890, 1785559, 1785255, 1784976, 1784720, 1784486, + 1784273, 1832197, 1832638, 1832925, 1833048, 1832991, 1832740, 1832280, 1831600, 1830694, 1829564, 1828223, 1826689, 1824994, + 1823171, 1821259, 1819299, 1817326, 1815373, 1813464, 1811620, 1809854, 1808175, 1806586, 1805091, 1803687, 1802372, 1801143, + 1799996, 1798926, 1797930, 1797002, 1796139, 1795336, 1794590, 1793897, 1793253, 1792655, 1792100, 1791586, 1791109, 1790668, + 1790260, 1789883, 1789535, 1789214, 1788919, 1788648, 1788399, 1788171, 1835463, 1835928, 1836244, 1836399, 1836382, 1836176, + 1835769, 1835149, 1834311, 1833255, 1831991, 1830536, 1828917, 1827166, 1825320, 1823416, 1821488, 1819570, 1817687, 1815859, + 1814102, 1812425, 1810834, 1809331, 1807916, 1806588, 1805344, 1804180, 1803093, 1802079, 1801132, 1800250, 1799428, 1798662, + 1797950, 1797286, 1796670, 1796096, 1795564, 1795069, 1794611, 1794185, 1793791, 1793426, 1793089, 1792778, 1792491, 1792226, + 1791983, 1838628, 1839116, 1839459, 1839646, 1839665, 1839503, 1839146, 1838584, 1837810, 1836824, 1835634, 1834255, 1832711, + 1831031, 1829250, 1827402, 1825521, 1823641, 1821785, 1819977, 1818231, 1816558, 1814966, 1813458, 1812035, 1810696, 1809438, + 1808260, 1807157, 1806125, 1805161, 1804261, 1803420, 1802637, 1801906, 1801224, 1800590, 1799998, 1799448, 1798936, 1798460, + 1798018, 1797608, 1797227, 1796874, 1796547, 1796245, 1795966, 1795708, 1841736, 1842244, 1842612, 1842828, 1842882, 1842760, + 1842450, 1841942, 1841228, 1840308, 1839188, 1837882, 1836409, 1834798, 1833080, 1831288, 1829456, 1827613, 1825787, 1824000, + 1822267, 1820601, 1819010, 1817498, 1816068, 1814719, 1813449, 1812256, 1811138, 1810090, 1809109, 1808191, 1807334, 1806532, + 1805783, 1805084, 1804432, 1803823, 1803255, 1802726, 1802234, 1801775, 1801348, 1800951, 1800583, 1800240, 1799923, 1799629, + 1799358, 1844757, 1845286, 1845677, 1845921, 1846007, 1845924, 1845658, 1845201, 1844544, 1843687, 1842634, 1841397, 1839994, + 1838451, 1836795, 1835060, 1833275, 1831473, 1829678, 1827913, 1826196, 1824539, 1822951, 1821438, 1820002, 1818644, 1817364, + 1816159, 1815026, 1813963, 1812966, 1812032, 1811158, 1810339, 1809573, 1808857, 1808188, 1807562, 1806978, 1806433, 1805924, + 1805449, 1805006, 1804594, 1804210, 1803853, 1803521, 1803213, 1802927, 1847708, 1848255, 1848668, 1848939, 1849056, 1849008, + 1848785, 1848375, 1847772, 1846975, 1845986, 1844815, 1843479, 1842001, 1840407, 1838728, 1836992, 1835230, 1833468, 1831728, + 1830028, 1828381, 1826798, 1825285, 1823846, 1822481, 1821192, 1819975, 1818830, 1817753, 1816741, 1815792, 1814901, 1814066, + 1813284, 1812551, 1811866, 1811224, 1810623, 1810062, 1809537, 1809046, 1808588, 1808161, 1807762, 1807390, 1807044, 1806722, + 1806422, 1850573, 1851139, 1851573, 1851868, 1852014, 1852001, 1851818, 1851454, 1850903, 1850162, 1849234, 1848127, 1846856, + 1845442, 1843909, 1842285, 1840599, 1838878, 1837150, 1835436, 1833755, 1832122, 1830546, 1829035, 1827594, 1826224, 1824926, + 1823700, 1822543, 1821453, 1820428, 1819464, 1818558, 1817708, 1816911, 1816162, 1815461, 1814803, 1814187, 1813610, 1813070, + 1812564, 1812091, 1811649, 1811236, 1810850, 1810490, 1810154, 1809841, 1853384, 1853966, 1854421, 1854739, 1854912, 1854931, + 1854785, 1854464, 1853962, 1853275, 1852405, 1851359, 1850150, 1848798, 1847324, 1845754, 1844117, 1842439, 1840746, 1839059, + 1837399, 1835779, 1834212, 1832705, 1831263, 1829889, 1828585, 1827350, 1826182, 1825081, 1824042, 1823065, 1822145, 1821280, + 1820467, 1819704, 1818987, 1818314, 1817683, 1817091, 1816535, 1816015, 1815527, 1815071, 1814643, 1814243, 1813870, 1813520, + 1813194, 1856126, 1856724, 1857197, 1857537, 1857737, 1857786, 1857675, 1857395, 1856939, 1856303, 1855488, 1854501, 1853352, + 1852059, 1850643, 1849128, 1847539, 1845904, 1844247, 1842589, 1840951, 1839347, 1837790, 1836288, 1834847, 1833471, 1832162, + 1830919, 1829742, 1828629, 1827579, 1826588, 1825655, 1824776, 1823949, 1823171, 1822440, 1821752, 1821106, 1820499, 1819930, + 1819395, 1818893, 1818422, 1817981, 1817568, 1817180, 1816818, 1816479, 1858816, 1859428, 1859918, 1860279, 1860503, 1860581, + 1860503, 1860261, 1859849, 1859261, 1858499, 1857567, 1856476, 1855241, 1853881, 1852419, 1850879, 1849286, 1847665, 1846037, + 1844422, 1842836, 1841290, 1839795, 1838356, 1836979, 1835666, 1834416, 1833231, 1832108, 1831047, 1830044, 1829098, 1828206, + 1827365, 1826573, 1825827, 1825125, 1824465, 1823844, 1823260, 1822711, 1822195, 1821711, 1821256, 1820829, 1820429, 1820053, + 1819701, 1861437, 1862063, 1862570, 1862950, 1863197, 1863302, 1863256, 1863051, 1862680, 1862138, 1861426, 1860548, 1859513, + 1858333, 1857028, 1855618, 1854126, 1852577, 1850993, 1849396, 1847805, 1846237, 1844705, 1843218, 1841783, 1840407, 1839090, + 1837836, 1836643, 1835512, 1834440, 1833426, 1832468, 1831563, 1830709, 1829903, 1829144, 1828429, 1827755, 1827120, 1826522, + 1825960, 1825430, 1824933, 1824465, 1824025, 1823611, 1823223, 1822859, 1864007, 1864646, 1865168, 1865567, 1865835, 1865966, + 1865950, 1865779, 1865447, 1864949, 1864285, 1863458, 1862475, 1861350, 1860098, 1858739, 1857295, 1855788, 1854241, 1852676, + 1851111, 1849563, 1848045, 1846567, 1845138, 1843763, 1842445, 1841186, 1839987, 1838848, 1837767, 1836742, 1835773, 1834856, + 1833990, 1833171, 1832399, 1831670, 1830983, 1830335, 1829724, 1829148, 1828605, 1828095, 1827614, 1827161, 1826735, 1826335, + 1825958, 1866509, 1867160, 1867697, 1868113, 1868403, 1868558, 1868570, 1868433, 1868138, 1867682, 1867063, 1866285, 1865354, + 1864281, 1863081, 1861773, 1860375, 1858911, 1857403, 1855870, 1854331, 1852804, 1851302, 1849835, 1848413, 1847041, 1845723, + 1844461, 1843257, 1842111, 1841021, 1839987, 1839007, 1838079, 1837201, 1836371, 1835586, 1834845, 1834145, 1833484, 1832860, + 1832271, 1831716, 1831193, 1830699, 1830234, 1829796, 1829383, 1828995, 1868960, 1869623, 1870173, 1870606, 1870915, 1871094, + 1871133, 1871027, 1870767, 1870351, 1869776, 1869045, 1868164, 1867141, 1865991, 1864731, 1863380, 1861959, 1860488, 1858988, + 1857477, 1855972, 1854487, 1853032, 1851618, 1850250, 1848933, 1847669, 1846461, 1845309, 1844212, 1843169, 1842180, 1841241, + 1840352, 1839510, 1838714, 1837960, 1837248, 1836574, 1835938, 1835337, 1834769, 1834234, 1833728, 1833251, 1832801, 1832376, + 1831976, 1871360, 1872034, 1872598, 1873046, 1873374, 1873574, 1873639, 1873562, 1873337, 1872959, 1872425, 1871739, 1870905, + 1869931, 1868830, 1867618, 1866312, 1864933, 1863500, 1862033, 1860550, 1859068, 1857601, 1856160, 1854754, 1853392, 1852077, + 1850813, 1849601, 1848444, 1847340, 1846290, 1845291, 1844343, 1843443, 1842591, 1841783, 1841017, 1840293, 1839608, 1838959, + 1838346, 1837767, 1837219, 1836701, 1836212, 1835751, 1835315, 1834903, 1873711, 1874394, 1874971, 1875434, 1875779, 1876000, + 1876090, 1876041, 1875848, 1875505, 1875012, 1874368, 1873579, 1872652, 1871599, 1870433, 1869173, 1867835, 1866440, 1865007, + 1863553, 1862094, 1860646, 1859219, 1857824, 1856467, 1855155, 1853892, 1852679, 1851517, 1850408, 1849350, 1848343, 1847386, + 1846476, 1845613, 1844794, 1844018, 1843282, 1842585, 1841925, 1841301, 1840709, 1840150, 1839621, 1839120, 1838647, 1838200, + 1837777, 1876011, 1876704, 1877292, 1877770, 1878132, 1878372, 1878485, 1878463, 1878300, 1877992, 1877537, 1876935, 1876189, + 1875308, 1874300, 1873180, 1871963, 1870667, 1869309, 1867910, 1866485, 1865051, 1863622, 1862211, 1860827, 1859478, 1858170, + 1856908, 1855694, 1854529, 1853415, 1852351, 1851337, 1850371, 1849452, 1848579, 1847750, 1846963, 1846216, 1845508, 1844837, + 1844201, 1843598, 1843027, 1842487, 1841975, 1841491, 1841033, 1840599, 1878262, 1878964, 1879563, 1880054, 1880432, 1880691, + 1880826, 1880830, 1880696, 1880421, 1880002, 1879439, 1878735, 1877897, 1876934, 1875858, 1874684, 1873429, 1872109, 1870743, + 1869348, 1867939, 1866531, 1865136, 1863765, 1862424, 1861122, 1859862, 1858648, 1857481, 1856363, 1855293, 1854272, 1853298, + 1852371, 1851489, 1850650, 1849853, 1849096, 1848377, 1847695, 1847048, 1846435, 1845853, 1845301, 1844779, 1844284, 1843815, + 1843370, 1880463, 1881174, 1881784, 1882287, 1882680, 1882957, 1883113, 1883141, 1883035, 1882792, 1882407, 1881882, 1881219, + 1880423, 1879503, 1878471, 1877339, 1876123, 1874841, 1873509, 1872144, 1870760, 1869374, 1867996, 1866638, 1865307, 1864011, + 1862755, 1861541, 1860373, 1859252, 1858178, 1857151, 1856170, 1855235, 1854344, 1853496, 1852689, 1851922, 1851193, 1850501, + 1849844, 1849219, 1848627, 1848065, 1847532, 1847026, 1846547, 1846092, 1882634, 1883352, 1883972, 1884486, 1884893, 1885188, + 1885363, 1885414, 1885335, 1885121, 1884770, 1884281, 1883656, 1882901, 1882022, 1881031, 1879940, 1878764, 1877519, 1876220, + 1874885, 1873528, 1872163, 1870803, 1869459, 1868139, 1866850, 1865597, 1864386, 1863217, 1862093, 1861015, 1859982, 1858995, + 1858052, 1857153, 1856297, 1855481, 1854704, 1853965, 1853263, 1852595, 1851961, 1851358, 1850785, 1850242, 1849726, 1849236, + 1848771, 1884755, 1885481, 1886110, 1886636, 1887056, 1887366, 1887561, 1887634, 1887580, 1887394, 1887075, 1886620, 1886033, + 1885317, 1884478, 1883528, 1882477, 1881340, 1880131, 1878866, 1877560, 1876230, 1874888, 1873547, 1872217, 1870908, 1869628, + 1868380, 1867171, 1866003, 1864877, 1863796, 1862759, 1861766, 1860816, 1859910, 1859045, 1858220, 1857435, 1856686, 1855974, + 1855297, 1854652, 1854039, 1853457, 1852903, 1852377, 1851877, 1851402, 1886828, 1887560, 1888198, 1888734, 1889168, 1889494, + 1889706, 1889800, 1889771, 1889613, 1889323, 1888902, 1888351, 1887672, 1886873, 1885962, 1884951, 1883851, 1882678, 1881447, + 1880172, 1878868, 1877549, 1876227, 1874914, 1873617, 1872345, 1871104, 1869899, 1868732, 1867605, 1866521, 1865480, 1864482, + 1863527, 1862614, 1861741, 1860908, 1860114, 1859357, 1858636, 1857949, 1857295, 1856672, 1856080, 1855517, 1854981, 1854471, + 1853987, 1888851, 1889590, 1890236, 1890783, 1891229, 1891570, 1891800, 1891914, 1891908, 1891776, 1891516, 1891127, 1890610, + 1889968, 1889207, 1888335, 1887361, 1886299, 1885162, 1883964, 1882720, 1881443, 1880148, 1878846, 1877549, 1876266, 1875004, + 1873770, 1872569, 1871404, 1870278, 1869192, 1868148, 1867146, 1866185, 1865265, 1864386, 1863546, 1862743, 1861978, 1861248, + 1860552, 1859889, 1859257, 1858656, 1858083, 1857538, 1857019, 1856525, 136533, 136533, 136533, 136533, 136533, 136533, + 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 135924, 125277, 108081, 91368, 77552, + 66660, 58112, 51334, 45876, 41412, 37706, 34587, 31931, 29644, 27657, 25914, 24375, 23005, 21780, + 20677, 19679, 18772, 17944, 17186, 16489, 15845, 15250, 14698, 14184, 13704, 13256, 12836, 12442, + 12071, 11721, 11392, 11080, 10784, 10504, 10238, 9986, 9745, 9516, 9297, 9088, 8888, 8697, + 8513, 8338, 8169, 8007, 7852, 7702, 7558, 7419, 7285, 7156, 7031, 6911, 6795, 6682, + 6574, 6468, 6366, 6267, 6172, 6079, 5989, 5901, 5816, 5733, 5653, 5575, 5499, 5425, + 5353, 5283, 5215, 5148, 5083, 5020, 4959 +]; +/// NMOS log-domain current table, corner mos_tt, IHP-Open-PDK 21133f21, L 0.45 um, 27 C, at the source-to-bulk voltage Vsb = 1.5 V (slice 6): the tag word (4294967295), then the 4753 words ix * 49 + iy of log2(Id / F) in 1/65536 octave over 2^-8 of a linear-table word (1.164 pA), then the 97 rv words; the format of TT_LG_N (deck psp103_idpa_vsb_tt.cir, blocks lam_n_6 and r_6). +pub const VSB_N6 : [4851]u32 = [ + 4294967295, 0, 77495, 54215, 49761, 49531, 51334, 53827, 56544, 59318, 62087, 64827, 67526, 70181, + 72792, 75361, 77892, 80390, 82859, 85304, 87731, 90147, 92556, 94965, 97379, 99806, 102251, 104720, + 107219, 109754, 112331, 114956, 117633, 120369, 123169, 126038, 128982, 132010, 135129, 138352, 141697, 145185, + 148850, 152929, 157130, 161693, 166714, 172306, 178602, 185744, 0, 83740, 62272, 58123, 58938, 61190, + 64167, 67368, 70614, 73836, 77005, 80109, 83143, 86106, 89001, 91830, 94599, 97314, 99979, 102601, + 105186, 107740, 110269, 112780, 115278, 117771, 120264, 122762, 125273, 127802, 130355, 132938, 135555, 138213, + 140916, 143672, 146487, 149368, 152326, 155375, 158532, 161822, 165433, 169136, 173121, 177468, 182273, 187652, + 193739, 0, 93292, 74318, 71205, 72781, 75621, 79224, 83047, 86891, 90681, 94385, 97988, 101485, + 104876, 108164, 111354, 114450, 117460, 120391, 123249, 126041, 128774, 131455, 134091, 136688, 139253, 141792, + 144311, 146816, 149314, 151810, 154309, 156818, 159342, 161887, 164457, 167060, 169702, 172392, 175140, 177960, + 180871, 183898, 187210, 190615, 194284, 198294, 202742, 207740, 8309, 107306, 91474, 89616, 92095, 95628, + 99959, 104493, 109014, 113438, 117731, 121879, 125877, 129728, 133435, 137006, 140448, 143770, 146980, 150086, + 153097, 156021, 158865, 161638, 164345, 166995, 169594, 172148, 174664, 177148, 179605, 182041, 184462, 186873, + 189280, 191688, 194102, 196528, 198974, 201447, 203959, 206521, 209153, 211970, 214843, 217891, 221170, 224753, + 228729, 56329, 126805, 114514, 114009, 117166, 121695, 126773, 132025, 137221, 142270, 147136, 151808, 156283, + 160567, 164667, 168593, 172356, 175965, 179432, 182767, 185980, 189080, 192077, 194978, 197792, 200526, 203187, + 205782, 208319, 210802, 213238, 215632, 217990, 220317, 222618, 224899, 227163, 229417, 231666, 233917, 236176, + 238454, 240763, 243119, 245613, 248151, 250830, 253697, 256818, 104366, 152327, 143564, 144343, 148335, 153580, + 159335, 165231, 171022, 176615, 181976, 187095, 191974, 196621, 201049, 205269, 209296, 213142, 216821, 220343, + 223722, 226968, 230090, 233099, 236002, 238809, 241526, 244161, 246721, 249212, 251640, 254011, 256329, 258600, + 260829, 263021, 265179, 267310, 269417, 271505, 273580, 275650, 277721, 279805, 281915, 284120, 286357, 288697, + 291180, 152420, 183694, 178039, 179904, 184589, 190423, 196876, 203261, 209406, 215428, 221174, 226639, 231828, + 236753, 241430, 245873, 250099, 254123, 257960, 261624, 265128, 268483, 271701, 274791, 277764, 280628, 283390, + 286060, 288642, 291144, 293572, 295932, 298228, 300466, 302651, 304786, 306876, 308926, 310939, 312919, 314872, + 316801, 318714, 320616, 322516, 324451, 326393, 328379, 330435, 200491, 220095, 216894, 219589, 224802, 231183, + 237954, 244719, 251293, 257597, 263563, 269278, 274689, 279813, 284666, 289268, 293635, 297786, 301735, 305499, + 309091, 312524, 315810, 318960, 321983, 324889, 327686, 330382, 332984, 335498, 337930, 340287, 342573, 344793, + 346952, 349054, 351104, 353104, 355060, 356974, 358850, 360692, 362505, 364293, 366061, 367818, 369587, 371354, + 373145, 248576, 260399, 258977, 262262, 267849, 274551, 281615, 288646, 295461, 301980, 308176, 314024, 319588, + 324848, 329823, 334533, 338997, 343234, 347260, 351093, 354746, 358233, 361567, 364758, 367817, 370753, 373576, + 376292, 378909, 381433, 383872, 386229, 388512, 390724, 392870, 394954, 396981, 398954, 400876, 402751, 404582, + 406373, 408126, 409846, 411537, 413202, 414849, 416482, 418126, 296676, 303494, 303282, 306967, 312809, 319731, + 326994, 334207, 341186, 347852, 354178, 360164, 365810, 371163, 376220, 381003, 385532, 389814, 393892, 397770, + 401465, 404989, 408356, 411576, 414661, 417620, 420461, 423193, 425823, 428357, 430802, 433164, 435447, 437657, + 439798, 441875, 443890, 445848, 447760, 449613, 451419, 453180, 454900, 456581, 458227, 459841, 461426, 462987, + 464534, 344790, 348467, 349046, 352994, 359008, 366079, 373478, 380816, 387906, 394672, 401087, 407152, 412869, + 418284, 423397, 428221, 432792, 437126, 441240, 445151, 448874, 452424, 455814, 459055, 462158, 465132, 467987, + 470731, 473370, 475912, 478363, 480729, 483015, 485225, 487365, 489437, 491448, 493399, 495294, 497137, 498929, + 500675, 502377, 504037, 505659, 507244, 508800, 510321, 511816, 392917, 394657, 395740, 399860, 405991, 413163, + 420657, 428080, 435248, 442084, 448561, 454681, 460456, 465906, 471059, 475917, 480520, 484882, 489022, 492956, + 496700, 500269, 503676, 506932, 510048, 513035, 515900, 518653, 521300, 523849, 526305, 528675, 530964, 533176, + 535316, 537389, 539398, 541346, 543237, 545074, 546860, 548598, 550290, 551939, 553547, 555117, 556651, 558151, + 559621, 441055, 441615, 443015, 447249, 453461, 460706, 468267, 475752, 482976, 489861, 496384, 502544, 508355, + 513837, 519013, 523903, 528529, 532912, 537071, 541022, 544782, 548365, 551785, 555052, 558179, 561175, 564049, + 566809, 569463, 572018, 574479, 576853, 579145, 581360, 583503, 585576, 587586, 589533, 591424, 593259, 595042, + 596777, 598464, 600108, 601709, 603271, 604795, 606284, 607739, 489204, 489051, 490651, 494962, 501232, 508531, + 516143, 523674, 530941, 537864, 544421, 550612, 556451, 561957, 567155, 572065, 576710, 581109, 585283, 589248, + 593020, 596614, 600044, 603321, 606456, 609460, 612341, 615108, 617768, 620327, 622794, 625172, 627467, 629685, + 631830, 633906, 635917, 637866, 639756, 641592, 643375, 645108, 646794, 648435, 650034, 651592, 653111, 654595, + 656043, 537359, 536781, 538509, 542875, 549189, 556530, 564182, 571750, 579050, 586004, 592588, 598804, 604665, + 610191, 615408, 620334, 624994, 629407, 633592, 637568, 641351, 644955, 648393, 651678, 654821, 657831, 660718, + 663491, 666156, 668720, 671191, 673573, 675872, 678093, 680241, 682319, 684332, 686283, 688175, 690011, 691795, + 693529, 695215, 696856, 698453, 700010, 701528, 703009, 704454, 585940, 584930, 586627, 590969, 597286, 604646, + 612323, 619919, 627246, 634225, 640832, 647069, 652949, 658493, 663724, 668664, 673336, 677761, 681957, 685943, + 689734, 693346, 696792, 700084, 703233, 706249, 709142, 711919, 714589, 717158, 719632, 722018, 724321, 726545, + 728696, 730777, 732792, 734745, 736639, 738477, 740262, 741997, 743683, 745325, 746923, 748480, 749998, 751478, + 752922, 641805, 637444, 637128, 640298, 646004, 653075, 660632, 668187, 675508, 682497, 689119, 695371, 701266, + 706825, 712069, 717021, 721704, 726139, 730344, 734339, 738138, 741757, 745209, 748508, 751662, 754684, 757582, + 760364, 763038, 765611, 768089, 770478, 772784, 775011, 777165, 779248, 781266, 783221, 785117, 786957, 788743, + 790480, 792168, 793811, 795410, 796968, 798486, 799966, 801411, 703899, 694179, 690295, 691226, 695637, 702010, + 709212, 716599, 723848, 730811, 737428, 743686, 749591, 755160, 760415, 765377, 770070, 774513, 778726, 782728, + 786534, 790159, 793618, 796921, 800081, 803107, 806009, 808795, 811473, 814050, 816531, 818924, 821233, 823463, + 825619, 827705, 829724, 831682, 833580, 835421, 837210, 838948, 840637, 842281, 843882, 845441, 846960, 848441, + 849886, 767879, 752876, 745189, 743514, 746246, 751592, 758196, 765247, 772316, 779187, 785761, 792001, 797901, + 803472, 808732, 813701, 818400, 822849, 827069, 831077, 834888, 838519, 841982, 845290, 848454, 851485, 854390, + 857180, 859861, 862440, 864925, 867320, 869631, 871864, 874022, 876110, 878132, 880091, 881991, 883834, 885624, + 887363, 889054, 890700, 892301, 893861, 895381, 896864, 898310, 831403, 811986, 800906, 796722, 797685, 801835, + 807656, 814213, 820977, 827665, 834132, 840311, 846178, 851733, 856986, 861953, 866653, 871105, 875328, 879339, + 883154, 886788, 890255, 893566, 896733, 899766, 902674, 905466, 908150, 910731, 913218, 915615, 917928, 920163, + 922322, 924412, 926435, 928396, 930297, 932141, 933933, 935673, 937365, 939011, 940614, 942175, 943696, 945179, + 946625, 893606, 870716, 856803, 850395, 849678, 852598, 857545, 863494, 869845, 876257, 882543, 888606, 894399, + 899906, 905130, 910079, 914769, 919216, 923436, 927445, 931260, 934895, 938362, 941674, 944842, 947876, 950785, + 953578, 956262, 958845, 961332, 963730, 966044, 968279, 970439, 972529, 974553, 976514, 978416, 980261, 982053, + 983793, 985486, 987133, 988735, 990297, 991818, 993301, 994748, 954255, 928702, 912482, 904165, 901924, 903663, + 907712, 912993, 918855, 924915, 930949, 936834, 942503, 947924, 953087, 957995, 962656, 967082, 971288, 975287, + 979095, 982724, 986186, 989495, 992660, 995692, 998599, 1001391, 1004073, 1006655, 1009141, 1011537, 1013850, 1016084, + 1018244, 1020333, 1022356, 1024316, 1026217, 1028061, 1029852, 1031593, 1033285, 1034930, 1036533, 1038093, 1039614, 1041097, + 1042543, 1013288, 985756, 967676, 957734, 954135, 954768, 957935, 962524, 967849, 973498, 979221, 984871, 990364, + 995655, 1000721, 1005555, 1010162, 1014546, 1018720, 1022695, 1026484, 1030097, 1033547, 1036845, 1040002, 1043026, 1045926, + 1048711, 1051389, 1053965, 1056446, 1058839, 1061148, 1063378, 1065534, 1067620, 1069639, 1071596, 1073494, 1075336, 1077124, + 1078862, 1080552, 1082195, 1083795, 1085354, 1086872, 1088353, 1089797, 1070630, 1041730, 1022164, 1010834, 1006019, 1005622, + 1007933, 1011820, 1016577, 1021770, 1027130, 1032493, 1037760, 1042872, 1047798, 1052523, 1057042, 1061358, 1065476, 1069407, + 1073158, 1076741, 1080165, 1083442, 1086579, 1089586, 1092472, 1095244, 1097909, 1100474, 1102946, 1105329, 1107629, 1109851, + 1111999, 1114077, 1116090, 1118041, 1119932, 1121768, 1123551, 1125283, 1126967, 1128606, 1130201, 1131755, 1133269, 1134745, + 1136186, 1126093, 1096423, 1075703, 1063175, 1057252, 1055880, 1057352, 1060527, 1064686, 1069380, 1074328, 1079352, 1084341, + 1089226, 1093965, 1098537, 1102931, 1107142, 1111175, 1115032, 1118723, 1122254, 1125634, 1128871, 1131974, 1134951, 1137810, + 1140557, 1143200, 1145745, 1148197, 1150563, 1152847, 1155053, 1157187, 1159252, 1161252, 1163191, 1165071, 1166895, 1168667, + 1170390, 1172064, 1173694, 1175280, 1176825, 1178331, 1179800, 1181233, 1179342, 1149536, 1127978, 1114405, 1107447, 1105127, + 1105757, 1108195, 1111717, 1115865, 1120348, 1124976, 1129630, 1134232, 1138732, 1143101, 1147323, 1151389, 1155296, 1159047, + 1162644, 1166095, 1169404, 1172579, 1175627, 1178554, 1181368, 1184075, 1186680, 1189191, 1191612, 1193948, 1196204, 1198385, + 1200494, 1202537, 1204515, 1206433, 1208294, 1210100, 1211854, 1213559, 1215218, 1216832, 1218403, 1219934, 1221426, 1222882, + 1224302, 1229906, 1200649, 1178585, 1164100, 1156148, 1152878, 1152640, 1154300, 1157133, 1160676, 1164630, 1168799, 1173055, + 1177311, 1181513, 1185623, 1189619, 1193489, 1197226, 1200826, 1204292, 1207626, 1210831, 1213913, 1216877, 1219729, 1222474, + 1225118, 1227666, 1230123, 1232495, 1234785, 1236998, 1239139, 1241210, 1243217, 1245161, 1247047, 1248877, 1250654, 1252381, + 1254060, 1255693, 1257283, 1258831, 1260339, 1261810, 1263245, 1264645, 1277240, 1249241, 1227043, 1211784, 1202866, 1198628, + 1197481, 1198309, 1200392, 1203265, 1206622, 1210263, 1214052, 1217896, 1221734, 1225524, 1229237, 1232856, 1236370, 1239772, + 1243060, 1246235, 1249297, 1252250, 1255097, 1257842, 1260489, 1263043, 1265508, 1267888, 1270188, 1272412, 1274562, 1276644, + 1278660, 1280614, 1282509, 1284348, 1286133, 1287868, 1289554, 1291194, 1292790, 1294344, 1295858, 1297333, 1298772, 1300176, + 1301547, 1320875, 1294777, 1272864, 1257001, 1247157, 1241937, 1239845, 1239793, 1241069, 1243210, 1245907, 1248956, 1252213, + 1255582, 1258995, 1262404, 1265777, 1269090, 1272329, 1275483, 1278548, 1281521, 1284399, 1287184, 1289877, 1292481, 1294999, + 1297433, 1299786, 1302063, 1304267, 1306399, 1308465, 1310467, 1312408, 1314291, 1316118, 1317893, 1319617, 1321294, 1322924, + 1324511, 1326056, 1327561, 1329028, 1330459, 1331854, 1333217, 1334547, 1360536, 1336813, 1315631, 1299389, 1288697, 1282511, + 1279463, 1278506, 1278943, 1280312, 1282307, 1284716, 1287394, 1290240, 1293179, 1296159, 1299143, 1302105, 1305024, 1307889, + 1310689, 1313420, 1316077, 1318659, 1321165, 1323596, 1325954, 1328240, 1330455, 1332603, 1334685, 1336705, 1338664, 1340566, + 1342411, 1344204, 1345946, 1347640, 1349286, 1350889, 1352449, 1353968, 1355448, 1356891, 1358298, 1359671, 1361012, 1362321, + 1363600, 1396228, 1375114, 1355083, 1338744, 1327335, 1320241, 1316263, 1314414, 1314012, 1314604, 1315882, 1317634, 1319712, + 1322008, 1324446, 1326969, 1329536, 1332116, 1334686, 1337230, 1339737, 1342197, 1344605, 1346957, 1349251, 1351485, 1353659, + 1355773, 1357829, 1359827, 1361769, 1363656, 1365491, 1367274, 1369008, 1370695, 1372336, 1373934, 1375489, 1377004, 1378480, + 1379919, 1381322, 1382692, 1384028, 1385333, 1386607, 1387852, 1389070, 1428173, 1409673, 1391123, 1375004, 1363061, 1355160, + 1350320, 1347626, 1346422, 1346263, 1346844, 1347951, 1349434, 1351183, 1353117, 1355177, 1357317, 1359505, 1361714, 1363925, + 1366124, 1368299, 1370444, 1372551, 1374617, 1376638, 1378614, 1380544, 1382426, 1384260, 1386049, 1387791, 1389489, 1391142, + 1392754, 1394323, 1395853, 1397345, 1398799, 1400217, 1401600, 1402950, 1404268, 1405555, 1406812, 1408040, 1409241, 1410415, + 1411564, 1456751, 1440698, 1423828, 1408241, 1395984, 1387410, 1381801, 1378337, 1376393, 1375535, 1375461, 1375959, 1376875, + 1378099, 1379547, 1381157, 1382881, 1384683, 1386534, 1388414, 1390305, 1392195, 1394073, 1395932, 1397766, 1399571, 1401344, + 1403083, 1404786, 1406452, 1408082, 1409674, 1411229, 1412747, 1414230, 1415678, 1417091, 1418471, 1419819, 1421135, 1422421, + 1423677, 1424905, 1426105, 1427278, 1428426, 1429549, 1430648, 1431724, 1482372, 1468508, 1453382, 1438596, 1426262, 1417171, + 1410904, 1406757, 1404149, 1402657, 1401986, 1401924, 1402317, 1403053, 1404047, 1405233, 1406564, 1407999, 1409509, 1411071, + 1412665, 1414278, 1415898, 1417515, 1419123, 1420715, 1422288, 1423839, 1425365, 1426864, 1428335, 1429777, 1431190, 1432574, + 1433928, 1435254, 1436550, 1437819, 1439059, 1440273, 1441461, 1442622, 1443759, 1444871, 1445960, 1447027, 1448071, 1449094, + 1450096, 1505450, 1493490, 1480060, 1466270, 1454091, 1444650, 1437841, 1433105, 1429911, 1427856, 1426649, 1426081, 1426000, + 1426291, 1426868, 1427665, 1428631, 1429726, 1430918, 1432182, 1433497, 1434849, 1436224, 1437611, 1439003, 1440393, 1441775, + 1443145, 1444501, 1445839, 1447157, 1448455, 1449730, 1450983, 1452213, 1453420, 1454603, 1455762, 1456899, 1458013, 1459105, + 1460174, 1461222, 1462249, 1463255, 1464242, 1465209, 1466157, 1467088, 1526350, 1516019, 1504166, 1491484, 1479669, 1470047, + 1462815, 1457581, 1453877, 1451325, 1449643, 1448625, 1448118, 1448008, 1448208, 1448651, 1449284, 1450067, 1450967, 1451956, + 1453014, 1454124, 1455271, 1456444, 1457634, 1458833, 1460035, 1461236, 1462431, 1463617, 1464791, 1465952, 1467097, 1468226, + 1469338, 1470431, 1471507, 1472563, 1473601, 1474620, 1475620, 1476601, 1477565, 1478510, 1479438, 1480348, 1481242, 1482119, + 1482980, 1545386, 1536437, 1526006, 1514468, 1503186, 1493546, 1486009, 1480364, 1476223, 1473238, 1471137, 1469718, 1468831, + 1468362, 1468223, 1468347, 1468680, 1469180, 1469812, 1470551, 1471372, 1472259, 1473196, 1474171, 1475175, 1476198, 1477233, + 1478276, 1479322, 1480366, 1481405, 1482438, 1483462, 1484475, 1485475, 1486463, 1487437, 1488397, 1489342, 1490271, 1491186, + 1492085, 1492969, 1493838, 1494692, 1495531, 1496355, 1497165, 1497961, 1562821, 1555043, 1545870, 1535452, 1524826, 1515317, + 1507590, 1501619, 1497108, 1493746, 1491276, 1489503, 1488279, 1487489, 1487046, 1486882, 1486943, 1487186, 1487577, 1488086, + 1488692, 1489376, 1490120, 1490914, 1491745, 1492605, 1493487, 1494384, 1495291, 1496204, 1497119, 1498033, 1498944, 1499849, + 1500747, 1501636, 1502516, 1503386, 1504244, 1505091, 1505926, 1506748, 1507558, 1508356, 1509141, 1509913, 1510674, 1511421, + 1512157, 1578869, 1572084, 1564012, 1554654, 1544756, 1535508, 1527703, 1521487, 1516669, 1512982, 1510189, 1508103, 1506577, + 1505500, 1504785, 1504362, 1504178, 1504189, 1504360, 1504662, 1505071, 1505568, 1506137, 1506763, 1507437, 1508148, 1508888, + 1509650, 1510430, 1511221, 1512021, 1512825, 1513631, 1514436, 1515239, 1516038, 1516831, 1517617, 1518395, 1519165, 1519926, + 1520678, 1521419, 1522151, 1522872, 1523583, 1524284, 1524975, 1525655, 1593715, 1587776, 1580661, 1572280, 1563142, 1554260, + 1546479, 1540097, 1535030, 1531065, 1527990, 1525627, 1523833, 1522499, 1521538, 1520882, 1520476, 1520276, 1520247, 1520360, + 1520590, 1520917, 1521324, 1521798, 1522327, 1522900, 1523509, 1524148, 1524809, 1525489, 1526182, 1526884, 1527593, 1528306, + 1529021, 1529735, 1530448, 1531156, 1531861, 1532560, 1533253, 1533938, 1534617, 1535288, 1535950, 1536605, 1537251, 1537888, + 1538517, 1607515, 1602299, 1596014, 1588518, 1580137, 1571698, 1564036, 1557562, 1552302, 1548104, 1544783, 1542174, 1540141, + 1538576, 1537394, 1536526, 1535919, 1535528, 1535317, 1535256, 1535322, 1535492, 1535752, 1536085, 1536480, 1536926, 1537415, + 1537939, 1538491, 1539067, 1539661, 1540269, 1540889, 1541516, 1542149, 1542785, 1543422, 1544060, 1544695, 1545328, 1545958, + 1546583, 1547203, 1547817, 1548426, 1549028, 1549623, 1550211, 1550793, 1620383, 1615790, 1610226, 1603524, 1595874, 1587928, + 1580464, 1573971, 1568572, 1564182, 1560650, 1557824, 1555578, 1553806, 1552424, 1551365, 1550574, 1550009, 1549631, 1549412, + 1549326, 1549354, 1549477, 1549680, 1549952, 1550281, 1550658, 1551076, 1551527, 1552006, 1552509, 1553030, 1553566, 1554113, + 1554670, 1555234, 1555801, 1556372, 1556944, 1557516, 1558087, 1558655, 1559221, 1559783, 1560341, 1560895, 1561443, 1561986, + 1562524, 1632430, 1628374, 1623437, 1617443, 1610484, 1603057, 1595858, 1589411, 1583926, 1579383, 1575670, 1572655, 1570219, + 1568260, 1566697, 1565464, 1564507, 1563781, 1563251, 1562886, 1562662, 1562557, 1562554, 1562637, 1562794, 1563014, 1563288, + 1563607, 1563964, 1564354, 1564771, 1565210, 1565669, 1566142, 1566628, 1567123, 1567626, 1568135, 1568647, 1569162, 1569678, + 1570194, 1570709, 1571223, 1571734, 1572242, 1572747, 1573248, 1573745, 1643747, 1640159, 1635769, 1630403, 1624085, 1617184, + 1610298, 1603958, 1598436, 1593780, 1589916, 1586736, 1584130, 1582003, 1580276, 1578884, 1577774, 1576902, 1576231, 1575732, + 1575379, 1575152, 1575032, 1575004, 1575055, 1575173, 1575350, 1575577, 1575847, 1576153, 1576489, 1576853, 1577238, 1577642, + 1578061, 1578493, 1578935, 1579386, 1579842, 1580304, 1580768, 1581235, 1581703, 1582171, 1582638, 1583104, 1583568, 1584030, + 1584489, 1654412, 1651232, 1647322, 1642512, 1636783, 1630399, 1623861, 1617677, 1612167, 1607434, 1603448, 1600125, 1597369, + 1595091, 1593215, 1591678, 1590428, 1589420, 1588620, 1587997, 1587525, 1587184, 1586955, 1586823, 1586775, 1586799, 1586885, + 1587026, 1587213, 1587440, 1587702, 1587993, 1588310, 1588649, 1589005, 1589377, 1589762, 1590158, 1590562, 1590973, 1591389, + 1591810, 1592233, 1592658, 1593084, 1593511, 1593937, 1594362, 1594785, 1664480, 1661659, 1658170, 1653854, 1648662, 1642777, + 1636607, 1630623, 1625167, 1620394, 1616315, 1612871, 1609983, 1607570, 1605559, 1603890, 1602511, 1601379, 1600459, 1599720, + 1599138, 1598691, 1598361, 1598132, 1597991, 1597926, 1597928, 1597987, 1598097, 1598250, 1598442, 1598665, 1598918, 1599194, + 1599492, 1599808, 1600139, 1600482, 1600837, 1601200, 1601571, 1601948, 1602329, 1602714, 1603101, 1603490, 1603880, 1604270, + 1604660, 1674014, 1671510, 1668394, 1664516, 1659810, 1654398, 1648606, 1642854, 1637492, 1632712, 1628566, 1625024, 1622022, + 1619487, 1617354, 1615564, 1614066, 1612819, 1611788, 1610943, 1610257, 1609711, 1609286, 1608967, 1608738, 1608590, 1608513, + 1608496, 1608533, 1608616, 1608740, 1608901, 1609092, 1609310, 1609552, 1609814, 1610093, 1610388, 1610695, 1611014, 1611341, + 1611677, 1612018, 1612365, 1612715, 1613069, 1613425, 1613782, 1614140, 1683058, 1680836, 1678049, 1674562, 1670296, 1665327, + 1659911, 1654415, 1649181, 1644428, 1640242, 1636622, 1633522, 1630881, 1628637, 1626737, 1625130, 1623777, 1622643, 1621698, + 1620916, 1620278, 1619764, 1619359, 1619049, 1618822, 1618669, 1618581, 1618548, 1618566, 1618627, 1618727, 1618860, 1619023, + 1619211, 1619422, 1619653, 1619901, 1620164, 1620439, 1620726, 1621021, 1621325, 1621635, 1621951, 1622271, 1622594, 1622920, + 1623249, 1691660, 1689689, 1687195, 1684056, 1680188, 1675631, 1670583, 1665359, 1660280, 1655583, 1651382, 1647705, 1644524, + 1641789, 1639446, 1637445, 1635738, 1634287, 1633057, 1632018, 1631147, 1630422, 1629825, 1629339, 1628952, 1628652, 1628427, + 1628270, 1628173, 1628128, 1628129, 1628171, 1628249, 1628359, 1628497, 1628659, 1628844, 1629047, 1629267, 1629501, 1629748, + 1630006, 1630274, 1630549, 1630831, 1631119, 1631411, 1631708, 1632007, 1699857, 1698110, 1695878, 1693049, 1689540, 1685364, + 1680671, 1675726, 1670826, 1666211, 1662021, 1658306, 1655059, 1652243, 1649813, 1647720, 1645921, 1644379, 1643059, 1641934, + 1640979, 1640172, 1639496, 1638934, 1638474, 1638104, 1637812, 1637590, 1637431, 1637326, 1637270, 1637257, 1637282, 1637342, + 1637431, 1637547, 1637687, 1637848, 1638027, 1638222, 1638431, 1638653, 1638885, 1639127, 1639377, 1639634, 1639897, 1640165, + 1640437, 1707667, 1706121, 1704125, 1701576, 1698391, 1694566, 1690212, 1685548, 1680844, 1676334, 1672177, 1668444, 1665148, + 1662265, 1659757, 1657581, 1655699, 1654073, 1652671, 1651464, 1650430, 1649547, 1648797, 1648165, 1647636, 1647199, 1646843, + 1646560, 1646341, 1646180, 1646069, 1646004, 1645980, 1645991, 1646034, 1646106, 1646203, 1646323, 1646463, 1646620, 1646793, + 1646980, 1647179, 1647389, 1647608, 1647836, 1648070, 1648310, 1648556, 1715139, 1713774, 1711989, 1709691, 1706799, 1703296, + 1699262, 1694877, 1690379, 1685994, 1681891, 1678159, 1674828, 1671890, 1669314, 1667065, 1665106, 1663402, 1661923, 1660641, + 1659533, 1658578, 1657758, 1657058, 1656463, 1655963, 1655547, 1655206, 1654931, 1654715, 1654552, 1654437, 1654364, 1654329, + 1654328, 1654357, 1654413, 1654494, 1654596, 1654717, 1654855, 1655009, 1655175, 1655354, 1655544, 1655742, 1655949, 1656163, + 1656383, 1722294, 1721094, 1719499, 1717426, 1714799, 1711591, 1707858, 1703745, 1699460, 1695216, 1691185, 1687471, 1684121, + 1681139, 1678506, 1676191, 1674163, 1672388, 1670837, 1669484, 1668307, 1667284, 1666398, 1665633, 1664977, 1664417, 1663943, + 1663546, 1663217, 1662949, 1662736, 1662573, 1662454, 1662375, 1662331, 1662319, 1662336, 1662378, 1662443, 1662530, 1662634, + 1662755, 1662891, 1663040, 1663200, 1663371, 1663552, 1663740, 1663935, 1729146, 1728094, 1726672, 1724804, 1722417, 1719480, + 1716028, 1712178, 1708108, 1704017, 1700074, 1696396, 1693041, 1690028, 1687348, 1684976, 1682885, 1681044, 1679428, 1678009, + 1676766, 1675680, 1674731, 1673907, 1673191, 1672575, 1672045, 1671595, 1671214, 1670897, 1670637, 1670428, 1670264, 1670142, + 1670057, 1670006, 1669985, 1669990, 1670021, 1670073, 1670145, 1670235, 1670340, 1670460, 1670593, 1670737, 1670892, 1671055, + 1671227, 1735721, 1734805, 1733540, 1731857, 1729689, 1726999, 1723808, 1720210, 1716356, 1712427, 1708586, 1704957, 1701612, + 1698580, 1695862, 1693441, 1691294, 1689394, 1687717, 1686237, 1684933, 1683786, 1682779, 1681897, 1681126, 1680455, 1679873, + 1679372, 1678942, 1678578, 1678271, 1678018, 1677812, 1677649, 1677524, 1677435, 1677377, 1677347, 1677344, 1677363, 1677404, + 1677463, 1677539, 1677631, 1677737, 1677855, 1677984, 1678124, 1678272, 1742029, 1741236, 1740114, 1738601, 1736631, 1734168, + 1731222, 1727864, 1724223, 1720460, 1716733, 1713168, 1709845, 1706806, 1704060, 1701598, 1699402, 1697449, 1695716, 1694179, + 1692818, 1691615, 1690553, 1689616, 1688792, 1688070, 1687438, 1686888, 1686412, 1686002, 1685652, 1685356, 1685109, 1684906, + 1684744, 1684618, 1684524, 1684461, 1684424, 1684412, 1684422, 1684452, 1684500, 1684565, 1684644, 1684737, 1684842, 1684958, + 1685084, 1748106, 1747426, 1746434, 1745074, 1743286, 1741031, 1738310, 1735179, 1731745, 1728152, 1724548, 1721057, 1717769, + 1714733, 1711968, 1709473, 1707235, 1705234, 1703449, 1701860, 1700446, 1699190, 1698075, 1697086, 1696212, 1695440, 1694761, + 1694164, 1693643, 1693189, 1692797, 1692460, 1692174, 1691933, 1691734, 1691572, 1691444, 1691347, 1691279, 1691236, 1691216, + 1691218, 1691239, 1691277, 1691330, 1691399, 1691480, 1691573, 1691676, 1753950, 1753373, 1752501, 1751281, 1749659, 1747594, + 1745083, 1742166, 1738934, 1735511, 1732035, 1728630, 1725387, 1722365, 1719591, 1717071, 1714797, 1712754, 1710923, 1709285, + 1707821, 1706515, 1705351, 1704314, 1703392, 1702574, 1701848, 1701208, 1700643, 1700148, 1699715, 1699339, 1699014, 1698737, + 1698502, 1698306, 1698145, 1698016, 1697917, 1697844, 1697796, 1697769, 1697763, 1697776, 1697805, 1697849, 1697907, 1697978, + 1698060, 1759586, 1759104, 1758341, 1757250, 1755779, 1753890, 1751572, 1748857, 1745817, 1742564, 1739222, 1735909, 1732722, + 1729723, 1726949, 1724411, 1722108, 1720028, 1718155, 1716473, 1714963, 1713611, 1712400, 1711317, 1710349, 1709486, 1708717, + 1708034, 1707428, 1706892, 1706420, 1706006, 1705645, 1705332, 1705062, 1704833, 1704640, 1704480, 1704351, 1704249, 1704173, + 1704120, 1704087, 1704074, 1704079, 1704100, 1704135, 1704184, 1704245, 1765020, 1764626, 1763963, 1762990, 1761658, 1759930, + 1757792, 1755266, 1752411, 1749324, 1746118, 1742905, 1739782, 1736816, 1734050, 1731502, 1729176, 1727064, 1725154, 1723431, + 1721880, 1720483, 1719229, 1718102, 1717091, 1716186, 1715375, 1714651, 1714005, 1713431, 1712922, 1712471, 1712075, 1711727, + 1711425, 1711163, 1710939, 1710749, 1710590, 1710461, 1710357, 1710277, 1710220, 1710182, 1710163, 1710161, 1710175, 1710202, + 1710243, 1770267, 1769954, 1769384, 1768519, 1767315, 1765735, 1763764, 1761414, 1758736, 1755811, 1752742, 1749634, 1746582, + 1743657, 1740907, 1738356, 1736014, 1733876, 1731933, 1730174, 1728583, 1727146, 1725851, 1724683, 1723631, 1722685, 1721835, + 1721072, 1720388, 1719776, 1719231, 1718745, 1718314, 1717934, 1717599, 1717306, 1717052, 1716833, 1716646, 1716489, 1716358, + 1716253, 1716171, 1716110, 1716067, 1716043, 1716035, 1716041, 1716062, 1775333, 1775093, 1774609, 1773844, 1772758, 1771315, + 1769498, 1767314, 1764804, 1762036, 1759104, 1756105, 1753130, 1750254, 1747528, 1744981, 1742628, 1740469, 1738499, 1736707, + 1735081, 1733607, 1732273, 1731066, 1729976, 1728991, 1728103, 1727303, 1726582, 1725935, 1725355, 1724835, 1724371, 1723959, + 1723593, 1723270, 1722986, 1722739, 1722525, 1722341, 1722185, 1722055, 1721948, 1721864, 1721799, 1721753, 1721723, 1721710, + 1721710, 1780241, 1780070, 1779665, 1778992, 1778014, 1776697, 1775023, 1772994, 1770642, 1768027, 1765229, 1762340, 1759448, + 1756627, 1753931, 1751395, 1749037, 1746863, 1744869, 1743048, 1741389, 1739881, 1738510, 1737267, 1736140, 1735119, 1734195, + 1733358, 1732603, 1731921, 1731307, 1730755, 1730259, 1729816, 1729420, 1729067, 1728755, 1728480, 1728239, 1728029, 1727848, + 1727693, 1727563, 1727456, 1727369, 1727301, 1727251, 1727217, 1727199, 1784975, 1784868, 1784536, 1783949, 1783071, 1781871, + 1780330, 1778446, 1776245, 1773776, 1771111, 1768335, 1765529, 1762769, 1760110, 1757591, 1755235, 1753050, 1751037, 1749192, + 1747504, 1745964, 1744561, 1743283, 1742122, 1741066, 1740107, 1739237, 1738449, 1737734, 1737088, 1736504, 1735978, 1735504, + 1735079, 1734698, 1734359, 1734057, 1733790, 1733555, 1733349, 1733171, 1733018, 1732888, 1732780, 1732692, 1732621, 1732568, + 1732530, 1789570, 1789522, 1789258, 1788749, 1787964, 1786873, 1785455, 1783706, 1781646, 1779317, 1776783, 1774118, 1771402, + 1768707, 1766091, 1763595, 1761245, 1759055, 1757027, 1755160, 1753447, 1751878, 1750444, 1749135, 1747941, 1746852, 1745860, + 1744958, 1744137, 1743391, 1742713, 1742099, 1741543, 1741040, 1740587, 1740179, 1739812, 1739484, 1739192, 1738932, 1738703, + 1738502, 1738326, 1738174, 1738045, 1737936, 1737846, 1737773, 1737717, 1794019, 1794026, 1793824, 1793389, 1792690, 1791699, + 1790395, 1788773, 1786847, 1784652, 1782244, 1779691, 1777067, 1774441, 1771872, 1769404, 1767067, 1764875, 1762838, 1760953, + 1759217, 1757623, 1756160, 1754821, 1753597, 1752477, 1751454, 1750521, 1749669, 1748892, 1748185, 1747542, 1746957, 1746426, + 1745945, 1745511, 1745118, 1744765, 1744448, 1744164, 1743912, 1743688, 1743490, 1743317, 1743167, 1743038, 1742929, 1742838, + 1742763, 1798323, 1798381, 1798239, 1797872, 1797253, 1796355, 1795158, 1793655, 1791855, 1789788, 1787502, 1785060, 1782528, + 1779976, 1777459, 1775024, 1772704, 1770516, 1768473, 1766575, 1764820, 1763202, 1761714, 1760348, 1759095, 1757946, 1756894, + 1755931, 1755050, 1754244, 1753509, 1752837, 1752225, 1751667, 1751160, 1750699, 1750281, 1749904, 1749563, 1749256, 1748981, + 1748735, 1748516, 1748323, 1748152, 1748004, 1747875, 1747766, 1747673, 1802510, 1802615, 1802527, 1802224, 1801679, 1800868, + 1799770, 1798377, 1796696, 1794751, 1792583, 1790248, 1787810, 1785332, 1782871, 1780474, 1778175, 1775996, 1773950, 1772042, + 1770271, 1768633, 1767122, 1765730, 1764450, 1763274, 1762194, 1761202, 1760293, 1759460, 1758696, 1757998, 1757359, 1756775, + 1756242, 1755756, 1755314, 1754912, 1754548, 1754218, 1753921, 1753654, 1753414, 1753200, 1753010, 1752842, 1752695, 1752567, + 1752458, 1806568, 1806718, 1806681, 1806436, 1805961, 1805230, 1804225, 1802936, 1801367, 1799537, 1797483, 1795255, 1792910, + 1790508, 1788106, 1785750, 1783477, 1781311, 1779267, 1777352, 1775568, 1773913, 1772381, 1770966, 1769661, 1768459, 1767353, + 1766335, 1765399, 1764539, 1763749, 1763024, 1762359, 1761750, 1761192, 1760682, 1760216, 1759791, 1759404, 1759053, 1758734, + 1758446, 1758186, 1757952, 1757743, 1757556, 1757391, 1757245, 1757118, 1810513, 1810704, 1810714, 1810525, 1810114, 1809459, + 1808540, 1807348, 1805884, 1804164, 1802219, 1800094, 1797841, 1795517, 1793177, 1790866, 1788622, 1786472, 1784434, 1782516, + 1780722, 1779052, 1777502, 1776066, 1774738, 1773512, 1772381, 1771337, 1770376, 1769490, 1768675, 1767925, 1767235, 1766601, + 1766020, 1765486, 1764997, 1764549, 1764140, 1763767, 1763428, 1763119, 1762839, 1762586, 1762357, 1762152, 1761969, 1761806, + 1761662, 1814346, 1814576, 1814631, 1814493, 1814142, 1813557, 1812719, 1811618, 1810253, 1808637, 1806797, 1804771, 1802610, + 1800364, 1798087, 1795824, 1793614, 1791484, 1789454, 1787537, 1785736, 1784054, 1782488, 1781033, 1779684, 1778436, 1777281, + 1776213, 1775228, 1774318, 1773478, 1772704, 1771990, 1771333, 1770728, 1770171, 1769660, 1769190, 1768760, 1768366, 1768005, + 1767677, 1767377, 1767105, 1766858, 1766635, 1766435, 1766255, 1766094, 1818069, 1818335, 1818432, 1818342, 1818047, 1817528, + 1816766, 1815750, 1814478, 1812961, 1811221, 1809293, 1807221, 1805054, 1802842, 1800629, 1798455, 1796349, 1794332, 1792418, + 1790614, 1788922, 1787342, 1785871, 1784503, 1783233, 1782057, 1780967, 1779958, 1779025, 1778162, 1777364, 1776627, 1775947, + 1775320, 1774741, 1774208, 1773717, 1773266, 1772852, 1772472, 1772123, 1771805, 1771514, 1771249, 1771009, 1770791, 1770594, + 1770417, 1821697, 1821997, 1822132, 1822087, 1821845, 1821387, 1820695, 1819759, 1818576, 1817152, 1815508, 1813673, 1811689, + 1809600, 1807453, 1805293, 1803158, 1801079, 1799078, 1797170, 1795365, 1793666, 1792075, 1790588, 1789203, 1787915, 1786717, + 1785606, 1784575, 1783620, 1782735, 1781915, 1781156, 1780454, 1779804, 1779204, 1778650, 1778139, 1777667, 1777233, 1776833, + 1776466, 1776129, 1775820, 1775537, 1775279, 1775045, 1774832, 1774639, 1825218, 1825549, 1825721, 1825718, 1825526, 1825125, + 1824500, 1823639, 1822539, 1821204, 1819651, 1817907, 1816009, 1813997, 1811917, 1809812, 1807718, 1805668, 1803686, 1801788, + 1799985, 1798282, 1796681, 1795182, 1793782, 1792476, 1791260, 1790129, 1789077, 1788101, 1787194, 1786353, 1785573, 1784850, + 1784180, 1783559, 1782984, 1782453, 1781962, 1781508, 1781089, 1780704, 1780348, 1780022, 1779722, 1779448, 1779196, 1778967, + 1778759, 1828645, 1829006, 1829212, 1829250, 1829103, 1828757, 1828194, 1827404, 1826382, 1825131, 1823666, 1822009, 1820194, + 1818259, 1816246, 1814196, 1812146, 1810128, 1808168, 1806282, 1804483, 1802779, 1801172, 1799662, 1798248, 1796926, 1795693, + 1794543, 1793473, 1792476, 1791549, 1790688, 1789887, 1789144, 1788453, 1787813, 1787218, 1786667, 1786157, 1785685, 1785248, + 1784844, 1784471, 1784127, 1783811, 1783520, 1783252, 1783007, 1782784, 1831995, 1832384, 1832621, 1832696, 1832593, 1832297, + 1831792, 1831069, 1830120, 1828949, 1827566, 1825993, 1824259, 1822399, 1820453, 1818459, 1816455, 1814471, 1812534, 1810663, + 1808871, 1807167, 1805556, 1804037, 1802611, 1801275, 1800026, 1798859, 1797770, 1796754, 1795808, 1794927, 1794107, 1793343, + 1792633, 1791973, 1791360, 1790790, 1790261, 1789770, 1789315, 1788893, 1788503, 1788142, 1787809, 1787502, 1787219, 1786958, + 1786720, 1835240, 1835655, 1835923, 1836033, 1835971, 1835723, 1835274, 1834613, 1833734, 1832638, 1831336, 1829843, 1828188, + 1826402, 1824522, 1822586, 1820628, 1818681, 1816771, 1814917, 1813135, 1811435, 1809821, 1808296, 1806860, 1805511, 1804248, + 1803065, 1801959, 1800926, 1799961, 1799062, 1798223, 1797441, 1796712, 1796033, 1795401, 1794813, 1794266, 1793758, 1793285, + 1792847, 1792440, 1792063, 1791713, 1791390, 1791092, 1790816, 1790563, 1838424, 1838864, 1839160, 1839302, 1839279, 1839075, + 1838677, 1838075, 1837261, 1836237, 1835010, 1833595, 1832015, 1830301, 1828487, 1826608, 1824698, 1822789, 1820907, 1819072, + 1817302, 1815606, 1813992, 1812462, 1811018, 1809658, 1808381, 1807183, 1806061, 1805011, 1804029, 1803112, 1802255, 1801455, + 1800708, 1800011, 1799361, 1798755, 1798190, 1797664, 1797175, 1796719, 1796296, 1795902, 1795537, 1795199, 1794885, 1794595, + 1794326, 1841520, 1841982, 1842305, 1842478, 1842491, 1842329, 1841980, 1841433, 1840682, 1839726, 1838570, 1837229, 1835723, + 1834080, 1832330, 1830509, 1828648, 1826778, 1824926, 1823113, 1821357, 1819669, 1818056, 1816523, 1815072, 1813703, 1812414, + 1811203, 1810067, 1809001, 1808003, 1807068, 1806194, 1805376, 1804612, 1803898, 1803230, 1802607, 1802025, 1801483, 1800977, + 1800505, 1800065, 1799656, 1799276, 1798922, 1798593, 1798289, 1798006, 1844542, 1845026, 1845373, 1845576, 1845622, 1845500, + 1845197, 1844702, 1844010, 1843118, 1842031, 1840761, 1839326, 1837751, 1836066, 1834301, 1832489, 1830660, 1828840, 1827051, + 1825311, 1823632, 1822023, 1820489, 1819033, 1817656, 1816357, 1815134, 1813983, 1812903, 1811889, 1810939, 1810048, 1809214, + 1808432, 1807701, 1807017, 1806377, 1805779, 1805220, 1804698, 1804210, 1803755, 1803331, 1802935, 1802566, 1802223, 1801904, + 1801608, 1847476, 1847980, 1848352, 1848582, 1848661, 1848576, 1848317, 1847872, 1847236, 1846405, 1845383, 1844181, 1842815, + 1841307, 1839685, 1837978, 1836216, 1834429, 1832642, 1830879, 1829156, 1827489, 1825885, 1824353, 1822894, 1821511, 1820203, + 1818969, 1817806, 1816712, 1815684, 1814719, 1813813, 1812962, 1812165, 1811418, 1810718, 1810062, 1809448, 1808874, 1808336, + 1807833, 1807362, 1806923, 1806513, 1806130, 1805773, 1805440, 1805130, 1850353, 1850877, 1851271, 1851527, 1851636, 1851586, + 1851368, 1850970, 1850386, 1849613, 1848654, 1847516, 1846216, 1844773, 1843212, 1841561, 1839850, 1838105, 1836353, 1834617, + 1832914, 1831259, 1829663, 1828133, 1826673, 1825285, 1823969, 1822725, 1821551, 1820445, 1819403, 1818423, 1817502, 1816637, + 1815825, 1815062, 1814346, 1813675, 1813045, 1812455, 1811902, 1811384, 1810899, 1810445, 1810020, 1809623, 1809252, 1808905, + 1808582, 1853159, 1853700, 1854116, 1854396, 1854534, 1854518, 1854338, 1853984, 1853450, 1852732, 1851832, 1850757, 1849521, + 1848141, 1846640, 1845045, 1843383, 1841682, 1839965, 1838257, 1836576, 1834936, 1833349, 1831823, 1830363, 1828971, 1827650, + 1826397, 1825213, 1824095, 1823041, 1822048, 1821113, 1820233, 1819406, 1818628, 1817898, 1817211, 1816567, 1815962, 1815394, + 1814861, 1814362, 1813894, 1813455, 1813044, 1812659, 1812299, 1811963, 1855910, 1856468, 1856903, 1857206, 1857371, 1857386, + 1857243, 1856931, 1856444, 1855778, 1854934, 1853919, 1852743, 1851424, 1849982, 1848442, 1846829, 1845171, 1843491, 1841813, + 1840154, 1838530, 1836954, 1835433, 1833974, 1832581, 1831254, 1829995, 1828801, 1827673, 1826607, 1825601, 1824653, 1823759, + 1822918, 1822126, 1821381, 1820680, 1820021, 1819401, 1818819, 1818272, 1817758, 1817276, 1816823, 1816399, 1816001, 1815628, + 1815278, 1858591, 1859165, 1859618, 1859943, 1860133, 1860179, 1860070, 1859797, 1859355, 1858739, 1857949, 1856991, 1855874, + 1854613, 1853228, 1851742, 1850180, 1848565, 1846923, 1845275, 1843640, 1842034, 1840470, 1838956, 1837501, 1836107, 1834776, + 1833511, 1832309, 1831171, 1830095, 1829077, 1828116, 1827210, 1826355, 1825549, 1824790, 1824075, 1823402, 1822769, 1822172, + 1821612, 1821084, 1820588, 1820122, 1819685, 1819274, 1818888, 1818526, 1861218, 1861806, 1862277, 1862623, 1862837, 1862911, + 1862834, 1862599, 1862199, 1861630, 1860891, 1859987, 1858927, 1857723, 1856394, 1854961, 1853447, 1851876, 1850272, 1848655, + 1847045, 1845459, 1843908, 1842403, 1840952, 1839558, 1838226, 1836955, 1835747, 1834600, 1833513, 1832485, 1831512, 1830593, + 1829726, 1828907, 1828134, 1827406, 1826719, 1826072, 1825462, 1824888, 1824347, 1823838, 1823359, 1822908, 1822485, 1822086, + 1821712, 1863775, 1864378, 1864866, 1865231, 1865468, 1865568, 1865523, 1865324, 1864964, 1864440, 1863750, 1862898, 1861892, + 1860744, 1859469, 1858088, 1856623, 1855096, 1853529, 1851945, 1850362, 1848795, 1847260, 1845765, 1844320, 1842928, 1841595, + 1840321, 1839107, 1837953, 1836857, 1835818, 1834835, 1833904, 1833025, 1832193, 1831408, 1830667, 1829967, 1829307, 1828684, + 1828097, 1827543, 1827021, 1826529, 1826066, 1825630, 1825220, 1824833, 1866280, 1866896, 1867399, 1867783, 1868042, 1868167, + 1868152, 1867986, 1867665, 1867183, 1866540, 1865738, 1864784, 1863689, 1862467, 1861137, 1859720, 1858236, 1856708, 1855157, + 1853601, 1852056, 1850537, 1849054, 1847615, 1846227, 1844894, 1843617, 1842399, 1841238, 1840134, 1839086, 1838093, 1837151, + 1836260, 1835417, 1834620, 1833866, 1833154, 1832481, 1831845, 1831245, 1830679, 1830145, 1829640, 1829165, 1828717, 1828294, + 1827896, 1868732, 1869361, 1869879, 1870280, 1870560, 1870709, 1870721, 1870588, 1870303, 1869862, 1869263, 1868509, 1867605, + 1866561, 1865391, 1864111, 1862740, 1861300, 1859810, 1858292, 1856764, 1855242, 1853740, 1852270, 1850840, 1849456, 1848124, + 1846846, 1845624, 1844457, 1843346, 1842290, 1841287, 1840336, 1839434, 1838579, 1837770, 1837004, 1836280, 1835595, 1834947, + 1834335, 1833756, 1833210, 1832694, 1832206, 1831746, 1831312, 1830902, 1871133, 1871773, 1872305, 1872723, 1873022, 1873194, + 1873233, 1873130, 1872879, 1872477, 1871921, 1871213, 1870357, 1869362, 1868241, 1867010, 1865685, 1864288, 1862837, 1861353, + 1859853, 1858355, 1856871, 1855415, 1853994, 1852617, 1851287, 1850009, 1848783, 1847612, 1846495, 1845431, 1844419, 1843458, + 1842546, 1841681, 1840861, 1840084, 1839348, 1838651, 1837991, 1837367, 1836777, 1836218, 1835690, 1835191, 1834719, 1834274, + 1833853, 1873482, 1874133, 1874679, 1875112, 1875429, 1875623, 1875687, 1875613, 1875396, 1875030, 1874515, 1873850, 1873040, + 1872093, 1871021, 1869836, 1868557, 1867202, 1865790, 1864340, 1862870, 1861396, 1859932, 1858490, 1857080, 1855709, 1854383, + 1853105, 1851879, 1850704, 1849581, 1848510, 1847491, 1846521, 1845599, 1844724, 1843893, 1843105, 1842358, 1841649, 1840978, + 1840343, 1839741, 1839171, 1838631, 1838121, 1837638, 1837181, 1836749, 1875780, 1876442, 1877000, 1877448, 1877783, 1877997, + 1878085, 1878039, 1877853, 1877522, 1877045, 1876423, 1875657, 1874756, 1873730, 1872592, 1871358, 1870045, 1868671, 1867255, + 1865815, 1864366, 1862922, 1861496, 1860098, 1858735, 1857414, 1856138, 1854910, 1853733, 1852606, 1851529, 1850502, 1849524, + 1848593, 1847708, 1846867, 1846069, 1845311, 1844592, 1843910, 1843263, 1842650, 1842069, 1841518, 1840997, 1840503, 1840035, + 1839592, 1878027, 1878699, 1879269, 1879731, 1880082, 1880317, 1880427, 1880407, 1880251, 1879954, 1879515, 1878932, 1878209, + 1877353, 1876372, 1875279, 1874088, 1872817, 1871481, 1870100, 1868690, 1867266, 1865844, 1864435, 1863049, 1861696, 1860380, + 1859107, 1857880, 1856700, 1855569, 1854488, 1853454, 1852469, 1851530, 1850636, 1849786, 1848977, 1848209, 1847480, 1846787, + 1846130, 1845506, 1844914, 1844353, 1843820, 1843316, 1842837, 1842384, 1880242, 1880923, 1881503, 1881979, 1882346, 1882598, + 1882730, 1882735, 1882607, 1882343, 1881938, 1881394, 1880712, 1879898, 1878961, 1877911, 1876763, 1875532, 1874234, 1872887, + 1871507, 1870110, 1868709, 1867318, 1865946, 1864602, 1863293, 1862023, 1860797, 1859617, 1858483, 1857396, 1856357, 1855365, + 1854418, 1853516, 1852656, 1851839, 1851061, 1850321, 1849618, 1848950, 1848316, 1847713, 1847141, 1846599, 1846083, 1845595, + 1845131, 1882406, 1883095, 1883687, 1884175, 1884557, 1884827, 1884979, 1885008, 1884907, 1884673, 1884302, 1883795, 1883152, + 1882379, 1881484, 1880477, 1879371, 1878180, 1876919, 1875607, 1874257, 1872886, 1871508, 1870135, 1868778, 1867445, 1866143, + 1864878, 1863654, 1862473, 1861338, 1860247, 1859203, 1858205, 1857251, 1856341, 1855473, 1854646, 1853859, 1853109, 1852397, + 1851719, 1851074, 1850462, 1849879, 1849326, 1848801, 1848302, 1847828, 1884521, 1885218, 1885819, 1886320, 1886716, 1887002, + 1887175, 1887226, 1887151, 1886946, 1886608, 1886136, 1885531, 1884798, 1883944, 1882978, 1881913, 1880761, 1879538, 1878259, + 1876940, 1875597, 1874242, 1872888, 1871546, 1870225, 1868932, 1867672, 1866451, 1865271, 1864134, 1863041, 1861993, 1860989, + 1860028, 1859111, 1858235, 1857400, 1856604, 1855846, 1855123, 1854436, 1853782, 1853159, 1852567, 1852004, 1851469, 1850960, + 1850477, 1886584, 1887289, 1887901, 1888412, 1888822, 1889125, 1889316, 1889389, 1889340, 1889163, 1888856, 1888417, 1887849, + 1887155, 1886341, 1885415, 1884389, 1883276, 1882090, 1880845, 1879558, 1878241, 1876910, 1875576, 1874251, 1872942, 1871659, + 1870406, 1869189, 1868010, 1866873, 1865778, 1864726, 1863717, 1862751, 1861827, 1860944, 1860101, 1859297, 1858530, 1857799, + 1857102, 1856439, 1855807, 1855206, 1854633, 1854088, 1853570, 1853077, 136533, 136533, 136533, 136533, 136533, 136533, + 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 135924, 125277, 108081, 91368, 77552, + 66660, 58112, 51334, 45876, 41412, 37706, 34587, 31931, 29644, 27657, 25914, 24375, 23005, 21780, + 20677, 19679, 18772, 17944, 17186, 16489, 15845, 15250, 14698, 14184, 13704, 13256, 12836, 12442, + 12071, 11721, 11392, 11080, 10784, 10504, 10238, 9986, 9745, 9516, 9297, 9088, 8888, 8697, + 8513, 8338, 8169, 8007, 7852, 7702, 7558, 7419, 7285, 7156, 7031, 6911, 6795, 6682, + 6574, 6468, 6366, 6267, 6172, 6079, 5989, 5901, 5816, 5733, 5653, 5575, 5499, 5425, + 5353, 5283, 5215, 5148, 5083, 5020, 4959 +]; +/// PMOS log-domain current table, corner mos_tt, IHP-Open-PDK 21133f21, L 0.45 um, 27 C, at the source-to-bulk voltage Vsb = 0.25 V (slice 1): the tag word (4294967295), then the 4753 words ix * 49 + iy of log2(Id / F) in 1/65536 octave over 2^-8 of a linear-table word (1.164 pA), then the 97 rv words; the format of TT_LG_P (deck psp103_idpa_vsb_tt.cir, blocks lam_p_1 and r_1). +pub const VSB_P1 : [4851]u32 = [ + 4294967295, 71502, 85622, 81462, 81080, 82089, 84059, 85765, 87707, 89718, 91754, 93807, 95877, 97967, + 100079, 102217, 104381, 106575, 108799, 111054, 113340, 115659, 118009, 120392, 122806, 125251, 127728, 130236, + 132775, 135347, 137957, 140612, 143326, 146119, 149026, 152096, 155591, 159289, 163461, 168269, 173898, 180554, + 188442, 197744, 208594, 221050, 235085, 250587, 267372, 285215, 116779, 123850, 120144, 119386, 119930, 121052, + 122518, 123876, 125305, 126757, 128225, 129707, 131207, 132728, 134273, 135843, 137440, 139066, 140723, 142410, + 144130, 145881, 147666, 149485, 151336, 153221, 155140, 157093, 159081, 161107, 163176, 165296, 167481, 169754, + 172150, 174850, 177705, 180913, 184600, 188921, 194059, 200211, 207579, 216339, 226624, 238493, 251926, 266819, + 282997, 162271, 165041, 161563, 160426, 160607, 161350, 162429, 163370, 164377, 165404, 166441, 167486, 168544, + 169616, 170705, 171814, 172943, 174095, 175272, 176473, 177701, 178956, 180239, 181551, 182892, 184262, 185662, + 187093, 188556, 190052, 191584, 193158, 194782, 196471, 198246, 200141, 202321, 204658, 207331, 210458, 214185, + 218682, 224136, 230741, 238670, 248062, 258989, 271451, 285367, 207931, 208119, 204791, 203348, 203233, 203720, + 204404, 205198, 205919, 206655, 207395, 208138, 208886, 209642, 210409, 211187, 211979, 212787, 213611, 214453, + 215314, 216195, 217096, 218019, 218964, 219931, 220922, 221937, 222976, 224041, 225134, 226258, 227418, 228623, + 229886, 231227, 232749, 234375, 236221, 238367, 240919, 244006, 247780, 252414, 258087, 264970, 273206, 282890, + 294050, 253725, 252377, 249159, 247507, 247159, 247467, 247977, 248595, 249129, 249675, 250220, 250763, 251306, + 251851, 252401, 252957, 253521, 254094, 254677, 255271, 255877, 256496, 257128, 257775, 258437, 259115, 259808, + 260519, 261247, 261993, 262759, 263546, 264357, 265197, 266074, 267000, 267991, 269134, 270367, 271786, 273459, + 275474, 277942, 280994, 284778, 289457, 295192, 302129, 310378, 299626, 297381, 294224, 292451, 291938, 292111, + 292511, 292958, 293434, 293858, 294278, 294694, 295106, 295516, 295926, 296338, 296754, 297174, 297598, 298029, + 298467, 298913, 299366, 299828, 300300, 300782, 301273, 301776, 302290, 302816, 303355, 303907, 304474, 305060, + 305668, 306305, 306980, 307742, 308557, 309480, 310553, 311832, 313387, 315307, 317700, 320690, 324416, 329022, + 334646, 345614, 342854, 339725, 337886, 337268, 337341, 337667, 338043, 338418, 338795, 339138, 339474, 339803, + 340129, 340452, 340774, 341095, 341418, 341743, 342070, 342401, 342735, 343074, 343417, 343766, 344120, 344481, + 344848, 345222, 345603, 345992, 346389, 346795, 347212, 347642, 348089, 348557, 349055, 349619, 350226, 350917, + 351726, 352694, 353877, 355344, 357180, 359484, 362368, 365955, 391675, 388625, 385506, 383628, 382949, 382956, + 383227, 383560, 383890, 384205, 384517, 384803, 385082, 385355, 385624, 385890, 386153, 386416, 386679, 386941, + 387205, 387470, 387737, 388006, 388277, 388552, 388830, 389111, 389396, 389685, 389978, 390276, 390580, 390889, + 391206, 391532, 391869, 392223, 392613, 393026, 393485, 394008, 394620, 395354, 396250, 397361, 398750, 400495, + 402682, 437800, 434591, 431476, 429572, 428860, 428824, 429057, 429360, 429663, 429951, 430223, 430490, 430738, + 430979, 431215, 431447, 431675, 431901, 432125, 432349, 432571, 432794, 433016, 433239, 433463, 433688, 433915, + 434142, 434372, 434604, 434838, 435074, 435314, 435556, 435802, 436054, 436311, 436577, 436854, 437159, 437480, + 437836, 438241, 438711, 439272, 439953, 440793, 441839, 443148, 483981, 480688, 477575, 475655, 474924, 474864, + 475071, 475354, 475640, 475911, 476166, 476408, 476644, 476866, 477082, 477293, 477500, 477704, 477905, 478104, + 478302, 478498, 478694, 478889, 479084, 479279, 479474, 479669, 479865, 480062, 480259, 480458, 480658, 480859, + 481062, 481268, 481477, 481690, 481909, 482141, 482383, 482643, 482928, 483249, 483619, 484054, 484578, 485217, + 486006, 530211, 526879, 523768, 521839, 521096, 521023, 521214, 521483, 521759, 522020, 522264, 522495, 522716, + 522927, 523132, 523334, 523528, 523718, 523906, 524091, 524273, 524454, 524634, 524812, 524989, 525166, 525342, + 525518, 525693, 525868, 526044, 526220, 526395, 526572, 526749, 526927, 527107, 527288, 527473, 527661, 527860, + 528065, 528283, 528520, 528783, 529081, 529427, 529836, 530329, 576483, 573140, 570032, 568099, 567349, 567269, + 567452, 567712, 567980, 568235, 568474, 568698, 568912, 569117, 569315, 569507, 569694, 569879, 570058, 570234, + 570408, 570580, 570750, 570918, 571085, 571251, 571415, 571579, 571742, 571905, 572067, 572229, 572391, 572552, + 572714, 572875, 573037, 573200, 573364, 573530, 573699, 573875, 574056, 574246, 574450, 574672, 574920, 575202, + 575530, 622789, 619454, 616352, 614417, 613664, 613580, 613759, 614014, 614278, 614529, 614765, 614986, 615196, + 615398, 615591, 615779, 615962, 616141, 616316, 616487, 616656, 616824, 616988, 617150, 617311, 617471, 617629, + 617786, 617942, 618097, 618251, 618405, 618558, 618710, 618863, 619015, 619166, 619318, 619470, 619623, 619777, + 619935, 620094, 620259, 620430, 620611, 620806, 621018, 621255, 669116, 665805, 662712, 660779, 660025, 659941, + 660118, 660371, 660632, 660882, 661116, 661336, 661545, 661744, 661936, 662122, 662303, 662479, 662651, 662821, + 662987, 663150, 663312, 663471, 663629, 663785, 663940, 664093, 664244, 664395, 664545, 664694, 664842, 664990, + 665137, 665283, 665429, 665574, 665720, 665865, 666011, 666157, 666306, 666456, 666610, 666768, 666934, 667108, + 667296, 715442, 712176, 709098, 707169, 706418, 706334, 706513, 706766, 707026, 707276, 707510, 707730, 707939, + 708138, 708329, 708515, 708695, 708870, 709042, 709210, 709375, 709537, 709697, 709855, 710011, 710165, 710317, + 710469, 710618, 710767, 710915, 711061, 711207, 711352, 711496, 711639, 711781, 711924, 712065, 712206, 712348, + 712489, 712631, 712773, 712917, 713064, 713214, 713368, 713529, 762158, 758784, 755614, 753629, 752850, 752754, + 752928, 753180, 753442, 753692, 753927, 754149, 754358, 754558, 754751, 754937, 755117, 755293, 755465, 755633, + 755798, 755960, 756120, 756278, 756433, 756587, 756739, 756889, 757039, 757186, 757333, 757478, 757623, 757766, + 757909, 758051, 758192, 758333, 758473, 758612, 758751, 758889, 759028, 759167, 759306, 759446, 759588, 759732, + 759879, 816080, 809610, 804407, 801233, 799821, 799415, 799446, 799635, 799872, 800113, 800346, 800568, 800779, + 800981, 801176, 801363, 801546, 801723, 801896, 802066, 802232, 802396, 802556, 802715, 802871, 803026, 803178, + 803329, 803479, 803627, 803774, 803919, 804064, 804207, 804350, 804492, 804633, 804773, 804912, 805051, 805189, + 805327, 805464, 805601, 805738, 805875, 806013, 806152, 806292, 876084, 864504, 855753, 850337, 847619, 846500, + 846162, 846169, 846319, 846522, 846739, 846957, 847168, 847373, 847570, 847761, 847946, 848127, 848303, 848475, + 848644, 848810, 848973, 849134, 849292, 849448, 849603, 849755, 849906, 850056, 850204, 850351, 850497, 850641, + 850785, 850928, 851069, 851210, 851350, 851490, 851628, 851766, 851904, 852041, 852178, 852314, 852451, 852588, + 852725, 937718, 921159, 908667, 900661, 896266, 894119, 893177, 892844, 892809, 892914, 893083, 893278, 893481, + 893684, 893883, 894078, 894268, 894453, 894634, 894811, 894984, 895154, 895321, 895485, 895647, 895807, 895965, + 896120, 896274, 896427, 896578, 896727, 896876, 897023, 897168, 897313, 897457, 897600, 897742, 897883, 898024, + 898163, 898302, 898441, 898579, 898716, 898853, 898990, 899127, 998478, 977924, 962161, 951690, 945547, 942216, + 940503, 939683, 939348, 939276, 939343, 939481, 939656, 939846, 940042, 940239, 940433, 940624, 940811, 940995, + 941175, 941351, 941524, 941695, 941862, 942028, 942191, 942351, 942510, 942668, 942823, 942977, 943129, 943281, + 943430, 943579, 943727, 943873, 944018, 944163, 944307, 944449, 944591, 944733, 944873, 945013, 945153, 945292, + 945430, 1057261, 1033843, 1015459, 1002846, 995070, 990547, 987991, 986590, 985867, 985540, 985444, 985483, 985598, + 985756, 985937, 986128, 986324, 986520, 986715, 986907, 987095, 987281, 987463, 987643, 987819, 987993, 988164, + 988333, 988499, 988663, 988826, 988987, 989146, 989303, 989459, 989614, 989767, 989919, 990070, 990220, 990368, + 990516, 990663, 990809, 990954, 991098, 991242, 991385, 991527, 1113517, 1088316, 1067962, 1053582, 1044371, 1038738, + 1035346, 1033333, 1032169, 1031533, 1031226, 1031123, 1031146, 1031247, 1031395, 1031571, 1031761, 1031959, 1032160, 1032361, + 1032561, 1032758, 1032953, 1033144, 1033333, 1033519, 1033701, 1033881, 1034059, 1034234, 1034407, 1034577, 1034746, 1034913, + 1035078, 1035241, 1035403, 1035563, 1035722, 1035879, 1036035, 1036190, 1036344, 1036497, 1036649, 1036800, 1036950, 1037099, + 1037247, 1166808, 1140847, 1119148, 1103370, 1092945, 1086327, 1082159, 1079547, 1077931, 1076960, 1076409, 1076133, 1076037, + 1076058, 1076156, 1076302, 1076477, 1076672, 1076876, 1077085, 1077297, 1077507, 1077717, 1077924, 1078128, 1078329, 1078527, + 1078722, 1078914, 1079104, 1079290, 1079474, 1079656, 1079835, 1080013, 1080188, 1080361, 1080533, 1080702, 1080870, 1081037, + 1081202, 1081365, 1081528, 1081689, 1081848, 1082007, 1082164, 1082321, 1216705, 1190944, 1168507, 1151684, 1140264, 1132798, + 1127937, 1124769, 1122715, 1121406, 1120598, 1120130, 1119895, 1119819, 1119849, 1119952, 1120103, 1120285, 1120488, 1120702, + 1120923, 1121147, 1121372, 1121596, 1121818, 1122037, 1122254, 1122467, 1122677, 1122884, 1123088, 1123288, 1123486, 1123681, + 1123874, 1124064, 1124251, 1124437, 1124620, 1124801, 1124980, 1125157, 1125333, 1125507, 1125679, 1125850, 1126019, 1126187, + 1126354, 1262815, 1238109, 1215534, 1198007, 1185796, 1177617, 1172151, 1168480, 1166018, 1164380, 1163314, 1162647, 1162260, + 1162071, 1162020, 1162066, 1162180, 1162341, 1162534, 1162747, 1162973, 1163207, 1163445, 1163685, 1163924, 1164162, 1164397, + 1164630, 1164859, 1165084, 1165307, 1165526, 1165741, 1165954, 1166163, 1166369, 1166573, 1166773, 1166972, 1167167, 1167360, + 1167551, 1167740, 1167927, 1168112, 1168295, 1168476, 1168655, 1168833, 1304897, 1281916, 1259782, 1241886, 1229072, 1220299, + 1214306, 1210186, 1207345, 1205395, 1204074, 1203203, 1202655, 1202340, 1202194, 1202171, 1202235, 1202361, 1202532, 1202734, + 1202957, 1203194, 1203439, 1203690, 1203942, 1204195, 1204446, 1204695, 1204941, 1205184, 1205424, 1205660, 1205893, 1206122, + 1206347, 1206569, 1206788, 1207004, 1207216, 1207426, 1207633, 1207837, 1208038, 1208237, 1208434, 1208628, 1208821, 1209011, + 1209199, 1342930, 1322095, 1300923, 1282987, 1269742, 1260477, 1254024, 1249498, 1246306, 1244057, 1242486, 1241406, 1240688, + 1240236, 1239981, 1239872, 1239870, 1239948, 1240083, 1240261, 1240468, 1240697, 1240940, 1241192, 1241449, 1241709, 1241970, + 1242230, 1242489, 1242745, 1242997, 1243247, 1243493, 1243735, 1243973, 1244208, 1244440, 1244668, 1244892, 1245113, 1245331, + 1245546, 1245758, 1245967, 1246173, 1246377, 1246578, 1246777, 1246974, 1377103, 1358581, 1338784, 1321129, 1307620, 1297949, + 1291091, 1286193, 1282671, 1280134, 1278314, 1277024, 1276127, 1275526, 1275148, 1274937, 1274854, 1274867, 1274951, 1275089, + 1275267, 1275474, 1275701, 1275943, 1276195, 1276454, 1276715, 1276978, 1277241, 1277502, 1277762, 1278019, 1278272, 1278522, + 1278769, 1279012, 1279251, 1279487, 1279719, 1279948, 1280173, 1280395, 1280614, 1280830, 1281043, 1281252, 1281460, 1281664, + 1281866, 1407756, 1391506, 1373358, 1356284, 1342674, 1332680, 1325462, 1320220, 1316386, 1313570, 1311504, 1309998, 1308915, + 1308155, 1307640, 1307315, 1307136, 1307068, 1307086, 1307170, 1307303, 1307475, 1307674, 1307894, 1308129, 1308374, 1308627, + 1308883, 1309142, 1309401, 1309659, 1309916, 1310171, 1310423, 1310672, 1310918, 1311160, 1311399, 1311634, 1311866, 1312094, + 1312320, 1312541, 1312760, 1312975, 1313188, 1313397, 1313604, 1313808, 1435285, 1421139, 1404763, 1388531, 1374990, 1364755, + 1357221, 1351662, 1347531, 1344445, 1342136, 1340414, 1339141, 1338213, 1337553, 1337102, 1336814, 1336653, 1336591, 1336607, + 1336684, 1336807, 1336966, 1337153, 1337360, 1337582, 1337815, 1338056, 1338302, 1338551, 1338801, 1339051, 1339300, 1339548, + 1339794, 1340037, 1340277, 1340514, 1340748, 1340979, 1341206, 1341431, 1341652, 1341869, 1342084, 1342296, 1342505, 1342711, + 1342914, 1460101, 1447827, 1433219, 1418029, 1404731, 1394344, 1386539, 1380690, 1376278, 1372931, 1370384, 1368448, 1366982, + 1365883, 1365071, 1364486, 1364080, 1363816, 1363665, 1363603, 1363611, 1363676, 1363784, 1363927, 1364097, 1364287, 1364493, + 1364710, 1364935, 1365167, 1365402, 1365639, 1365877, 1366115, 1366352, 1366587, 1366821, 1367052, 1367281, 1367507, 1367730, + 1367950, 1368167, 1368381, 1368592, 1368800, 1369006, 1369208, 1369408, 1482566, 1471923, 1458991, 1444971, 1432083, 1421643, + 1413617, 1407506, 1402833, 1399238, 1396462, 1394315, 1392658, 1391386, 1390419, 1389696, 1389166, 1388792, 1388544, 1388396, + 1388329, 1388326, 1388376, 1388468, 1388592, 1388743, 1388914, 1389100, 1389299, 1389507, 1389721, 1389940, 1390162, 1390385, + 1390609, 1390833, 1391056, 1391278, 1391498, 1391716, 1391931, 1392144, 1392355, 1392563, 1392768, 1392971, 1393171, 1393368, + 1393563, 1503013, 1493770, 1482371, 1469576, 1457247, 1446860, 1438672, 1432331, 1427417, 1423588, 1420591, 1418240, 1416396, + 1414953, 1413831, 1412967, 1412311, 1411823, 1411473, 1411233, 1411085, 1411010, 1410995, 1411029, 1411102, 1411207, 1411338, + 1411488, 1411655, 1411834, 1412023, 1412219, 1412421, 1412626, 1412833, 1413042, 1413251, 1413461, 1413669, 1413876, 1414082, + 1414286, 1414488, 1414688, 1414885, 1415081, 1415273, 1415464, 1415652, 1521708, 1513663, 1503632, 1492055, 1480407, 1470184, + 1461898, 1455365, 1450233, 1446186, 1442981, 1440435, 1438410, 1436800, 1435525, 1434521, 1433737, 1433134, 1432679, 1432346, + 1432112, 1431961, 1431877, 1431849, 1431866, 1431921, 1432007, 1432117, 1432248, 1432395, 1432554, 1432724, 1432901, 1433085, + 1433273, 1433464, 1433657, 1433851, 1434046, 1434240, 1434434, 1434627, 1434819, 1435009, 1435197, 1435384, 1435569, 1435751, + 1435932, 1538890, 1531867, 1523042, 1512630, 1501744, 1491794, 1483480, 1476796, 1471472, 1467226, 1463826, 1461094, 1458894, + 1457123, 1455699, 1454557, 1453648, 1452929, 1452369, 1451939, 1451619, 1451388, 1451233, 1451140, 1451098, 1451100, 1451138, + 1451205, 1451296, 1451407, 1451534, 1451674, 1451825, 1451985, 1452150, 1452321, 1452496, 1452673, 1452852, 1453032, 1453213, + 1453393, 1453573, 1453752, 1453931, 1454107, 1454283, 1454457, 1454629, 1554753, 1548605, 1540832, 1531504, 1521425, 1511843, + 1503578, 1496789, 1491301, 1486874, 1483293, 1480387, 1478022, 1476096, 1474527, 1473251, 1472218, 1471386, 1470721, 1470195, + 1469786, 1469476, 1469247, 1469087, 1468985, 1468931, 1468918, 1468939, 1468988, 1469061, 1469154, 1469262, 1469385, 1469517, + 1469659, 1469808, 1469962, 1470121, 1470282, 1470447, 1470612, 1470779, 1470946, 1471114, 1471281, 1471447, 1471612, 1471777, + 1471940, 1569457, 1564060, 1557204, 1548865, 1539602, 1530469, 1522329, 1515484, 1509865, 1505279, 1501532, 1498462, 1495941, + 1493867, 1492159, 1490754, 1489601, 1488657, 1487889, 1487268, 1486772, 1486380, 1486077, 1485850, 1485685, 1485575, 1485509, + 1485483, 1485488, 1485521, 1485577, 1485653, 1485744, 1485849, 1485965, 1486090, 1486222, 1486361, 1486504, 1486651, 1486801, + 1486953, 1487106, 1487261, 1487416, 1487571, 1487725, 1487880, 1488033, 1583142, 1578391, 1572332, 1564885, 1556421, 1547795, + 1539852, 1533005, 1527288, 1522565, 1518669, 1515449, 1512781, 1510567, 1508727, 1507197, 1505927, 1504875, 1504005, 1503291, + 1502708, 1502237, 1501860, 1501564, 1501337, 1501168, 1501050, 1500974, 1500935, 1500927, 1500945, 1500985, 1501044, 1501120, + 1501208, 1501308, 1501418, 1501535, 1501659, 1501787, 1501920, 1502057, 1502195, 1502336, 1502478, 1502621, 1502765, 1502909, + 1503052, 1595916, 1591727, 1586362, 1579712, 1572010, 1563928, 1556247, 1549453, 1543676, 1538841, 1534812, 1531454, 1528650, + 1526304, 1524338, 1522690, 1521308, 1520151, 1519183, 1518378, 1517709, 1517159, 1516709, 1516345, 1516055, 1515828, 1515656, + 1515531, 1515446, 1515396, 1515375, 1515379, 1515405, 1515450, 1515511, 1515584, 1515670, 1515765, 1515868, 1515977, 1516092, + 1516212, 1516336, 1516462, 1516591, 1516721, 1516853, 1516986, 1517119, 1607883, 1604182, 1599423, 1593483, 1586494, 1578971, + 1571606, 1564920, 1559120, 1554200, 1550057, 1546576, 1543646, 1541176, 1539092, 1537330, 1535841, 1534582, 1533520, 1532625, + 1531874, 1531246, 1530724, 1530293, 1529940, 1529656, 1529430, 1529255, 1529123, 1529030, 1528969, 1528937, 1528929, 1528943, + 1528974, 1529021, 1529081, 1529153, 1529234, 1529324, 1529421, 1529523, 1529631, 1529742, 1529857, 1529974, 1530094, 1530215, + 1530337, 1619132, 1615857, 1611628, 1606317, 1599988, 1593023, 1586015, 1579485, 1573704, 1568725, 1564489, 1560897, 1557852, + 1555268, 1553071, 1551202, 1549610, 1548255, 1547101, 1546120, 1545288, 1544584, 1543990, 1543493, 1543078, 1542736, 1542457, + 1542231, 1542054, 1541917, 1541816, 1541747, 1541705, 1541686, 1541687, 1541706, 1541741, 1541789, 1541848, 1541917, 1541994, + 1542079, 1542170, 1542265, 1542365, 1542469, 1542576, 1542685, 1542796, 1629722, 1626823, 1623059, 1618307, 1612582, 1606162, + 1599539, 1593209, 1587487, 1582480, 1578170, 1574483, 1571335, 1568645, 1566344, 1564373, 1562684, 1561236, 1559994, 1558930, + 1558019, 1557242, 1556579, 1556016, 1555541, 1555142, 1554809, 1554534, 1554310, 1554130, 1553989, 1553882, 1553805, 1553754, + 1553725, 1553716, 1553724, 1553747, 1553784, 1553832, 1553889, 1553955, 1554029, 1554108, 1554193, 1554283, 1554376, 1554473, + 1554572, 1639722, 1637153, 1633800, 1629545, 1624369, 1618470, 1612247, 1606156, 1600529, 1595525, 1591163, 1587398, 1584158, + 1581371, 1578973, 1576908, 1575127, 1573590, 1572264, 1571120, 1570133, 1569284, 1568554, 1567928, 1567393, 1566937, 1566552, + 1566228, 1565958, 1565735, 1565553, 1565409, 1565296, 1565212, 1565152, 1565115, 1565096, 1565095, 1565108, 1565134, 1565171, + 1565218, 1565274, 1565337, 1565406, 1565481, 1565561, 1565645, 1565732, 1649188, 1646913, 1643923, 1640108, 1635431, 1630024, + 1624206, 1618381, 1612886, 1607913, 1603523, 1599695, 1596376, 1593502, 1591015, 1588861, 1586993, 1585372, 1583965, 1582744, + 1581685, 1580766, 1579970, 1579282, 1578688, 1578178, 1577741, 1577368, 1577052, 1576786, 1576565, 1576382, 1576234, 1576117, + 1576027, 1575960, 1575915, 1575888, 1575877, 1575881, 1575897, 1575925, 1575962, 1576008, 1576062, 1576122, 1576188, 1576258, + 1576333, 1658170, 1656155, 1653487, 1650065, 1645838, 1640891, 1635474, 1629935, 1624602, 1619691, 1615295, 1611422, 1608036, + 1605086, 1602517, 1600280, 1598330, 1596630, 1595146, 1593851, 1592721, 1591735, 1590876, 1590127, 1589477, 1588912, 1588424, + 1588004, 1587642, 1587334, 1587073, 1586853, 1586669, 1586519, 1586397, 1586302, 1586229, 1586176, 1586141, 1586123, 1586118, + 1586126, 1586145, 1586173, 1586210, 1586255, 1586306, 1586363, 1586426, 1666700, 1664918, 1662537, 1659465, 1655644, 1651125, + 1646098, 1640859, 1635714, 1630891, 1626513, 1622613, 1619174, 1616158, 1613515, 1611202, 1609177, 1607402, 1605845, 1604480, + 1603282, 1602232, 1601311, 1600504, 1599798, 1599181, 1598643, 1598175, 1597770, 1597419, 1597118, 1596861, 1596643, 1596459, + 1596306, 1596182, 1596081, 1596003, 1595944, 1595902, 1595876, 1595864, 1595864, 1595875, 1595895, 1595924, 1595961, 1596004, + 1596053, 1674821, 1673248, 1671123, 1668365, 1664911, 1660787, 1656134, 1651200, 1646263, 1641554, 1637216, 1633308, 1629830, + 1626758, 1624051, 1621668, 1619572, 1617727, 1616101, 1614669, 1613407, 1612295, 1611314, 1610451, 1609690, 1609022, 1608436, + 1607921, 1607472, 1607080, 1606740, 1606446, 1606193, 1605976, 1605793, 1605639, 1605511, 1605406, 1605323, 1605258, 1605211, + 1605178, 1605159, 1605152, 1605155, 1605168, 1605189, 1605218, 1605254, 1682563, 1681177, 1679282, 1676805, 1673682, 1669921, + 1665625, 1660996, 1656282, 1651709, 1647433, 1643534, 1640033, 1636916, 1634152, 1631708, 1629547, 1627636, 1625946, 1624450, + 1623126, 1621954, 1620917, 1619998, 1619186, 1618468, 1617834, 1617275, 1616782, 1616350, 1615971, 1615641, 1615353, 1615104, + 1614889, 1614706, 1614551, 1614420, 1614312, 1614225, 1614155, 1614102, 1614063, 1614038, 1614024, 1614021, 1614027, 1614041, + 1614064, 1689960, 1688743, 1687054, 1684829, 1682006, 1678577, 1674617, 1670288, 1665807, 1661388, 1657195, 1653323, 1649812, + 1646662, 1643852, 1641352, 1639132, 1637160, 1635409, 1633853, 1632471, 1631242, 1630149, 1629178, 1628315, 1627548, 1626868, + 1626265, 1625730, 1625258, 1624842, 1624475, 1624153, 1623872, 1623626, 1623414, 1623231, 1623075, 1622942, 1622832, 1622740, + 1622666, 1622608, 1622564, 1622533, 1622513, 1622504, 1622504, 1622512, 1697038, 1695973, 1694471, 1692472, 1689920, 1686796, + 1683151, 1679113, 1674870, 1670619, 1666526, 1662700, 1659194, 1656022, 1653173, 1650626, 1648353, 1646325, 1644517, 1642905, + 1641466, 1640183, 1639038, 1638016, 1637104, 1636290, 1635565, 1634918, 1634343, 1633832, 1633378, 1632975, 1632620, 1632306, + 1632031, 1631790, 1631579, 1631397, 1631240, 1631106, 1630993, 1630898, 1630820, 1630757, 1630708, 1630672, 1630647, 1630632, + 1630626, 1703806, 1702879, 1701545, 1699752, 1697445, 1694600, 1691249, 1687493, 1683489, 1679418, 1675441, 1671676, 1668190, + 1665009, 1662133, 1659546, 1657225, 1655147, 1653287, 1651622, 1650131, 1648796, 1647601, 1646530, 1645571, 1644712, 1643943, + 1643255, 1642640, 1642090, 1641600, 1641163, 1640774, 1640429, 1640124, 1639854, 1639617, 1639409, 1639228, 1639070, 1638935, + 1638819, 1638722, 1638640, 1638574, 1638521, 1638479, 1638449, 1638429, 1710304, 1709502, 1708320, 1706713, 1704628, 1702038, + 1698960, 1695473, 1691706, 1687822, 1683975, 1680286, 1676833, 1673654, 1670760, 1668140, 1665780, 1663656, 1661747, 1660033, + 1658493, 1657109, 1655865, 1654748, 1653743, 1652840, 1652029, 1651300, 1650646, 1650059, 1649533, 1649062, 1648641, 1648265, + 1647930, 1647632, 1647368, 1647134, 1646928, 1646748, 1646591, 1646454, 1646337, 1646237, 1646152, 1646082, 1646025, 1645980, + 1645945, 1716548, 1715859, 1714816, 1713377, 1711493, 1709136, 1706312, 1703079, 1699545, 1695851, 1692144, 1688544, 1685138, + 1681974, 1679070, 1676427, 1674032, 1671868, 1669916, 1668155, 1666569, 1665138, 1663849, 1662687, 1661638, 1660693, 1659841, + 1659073, 1658381, 1657757, 1657196, 1656692, 1656238, 1655832, 1655467, 1655141, 1654851, 1654592, 1654362, 1654158, 1653979, + 1653822, 1653684, 1653565, 1653463, 1653376, 1653303, 1653242, 1653193, 1722545, 1721960, 1721043, 1719756, 1718056, 1715912, + 1713322, 1710330, 1707022, 1703521, 1699961, 1696463, 1693116, 1689978, 1687075, 1684416, 1681994, 1679795, 1677804, 1676001, + 1674372, 1672898, 1671565, 1670360, 1669270, 1668285, 1667393, 1666587, 1665858, 1665199, 1664604, 1664066, 1663582, 1663145, + 1662752, 1662398, 1662081, 1661797, 1661543, 1661317, 1661116, 1660938, 1660781, 1660643, 1660523, 1660419, 1660329, 1660253, + 1660189, 1728317, 1727826, 1727024, 1725876, 1724344, 1722394, 1720022, 1717255, 1714165, 1710856, 1707450, 1704063, 1700786, + 1697684, 1694793, 1692126, 1689683, 1687455, 1685429, 1683589, 1681920, 1680405, 1679032, 1677786, 1676656, 1675632, 1674702, + 1673859, 1673094, 1672401, 1671772, 1671203, 1670688, 1670222, 1669800, 1669420, 1669077, 1668768, 1668490, 1668241, 1668019, + 1667820, 1667643, 1667487, 1667348, 1667227, 1667121, 1667030, 1666951, 1733869, 1733465, 1732767, 1731747, 1730367, 1728597, + 1726425, 1723870, 1720989, 1717870, 1714621, 1711352, 1708157, 1705102, 1702231, 1699565, 1697109, 1694858, 1692802, 1690928, + 1689223, 1687671, 1686259, 1684975, 1683807, 1682745, 1681779, 1680901, 1680102, 1679375, 1678714, 1678114, 1677569, 1677074, + 1676625, 1676218, 1675849, 1675516, 1675215, 1674944, 1674700, 1674481, 1674284, 1674109, 1673953, 1673815, 1673693, 1673586, + 1673492, 1739233, 1738908, 1738306, 1737402, 1736161, 1734554, 1732567, 1730210, 1727528, 1724594, 1721504, 1718360, 1715253, + 1712255, 1709413, 1706756, 1704293, 1702024, 1699943, 1698040, 1696301, 1694714, 1693267, 1691946, 1690743, 1689645, 1688644, + 1687731, 1686898, 1686139, 1685447, 1684817, 1684242, 1683719, 1683242, 1682809, 1682416, 1682058, 1681734, 1681441, 1681176, + 1680936, 1680720, 1680526, 1680352, 1680197, 1680059, 1679936, 1679828, 1744404, 1744151, 1743638, 1742839, 1741726, 1740270, + 1738453, 1736281, 1733788, 1731033, 1728102, 1725087, 1722076, 1719143, 1716340, 1713699, 1711237, 1708957, 1706856, 1704927, + 1703159, 1701540, 1700059, 1698705, 1697468, 1696336, 1695301, 1694355, 1693491, 1692700, 1691978, 1691318, 1690715, 1690164, + 1689661, 1689203, 1688784, 1688403, 1688057, 1687741, 1687455, 1687195, 1686960, 1686748, 1686556, 1686384, 1686229, 1686091, + 1685968, 1749404, 1749218, 1748785, 1748084, 1747087, 1745768, 1744109, 1742110, 1739795, 1737214, 1734439, 1731556, 1728647, + 1725787, 1723030, 1720413, 1717957, 1715672, 1713556, 1711606, 1709812, 1708164, 1706653, 1705267, 1703997, 1702833, 1701767, + 1700789, 1699894, 1699073, 1698321, 1697632, 1697001, 1696424, 1695895, 1695411, 1694969, 1694564, 1694195, 1693858, 1693551, + 1693271, 1693017, 1692786, 1692577, 1692388, 1692217, 1692063, 1691925, 1754237, 1754112, 1753753, 1753141, 1752252, 1751060, + 1749546, 1747707, 1745560, 1743145, 1740525, 1737774, 1734973, 1732192, 1729488, 1726902, 1724460, 1722175, 1720050, 1718082, + 1716266, 1714593, 1713054, 1711639, 1710338, 1709144, 1708047, 1707040, 1706114, 1705264, 1704484, 1703767, 1703109, 1702506, + 1701951, 1701443, 1700977, 1700550, 1700158, 1699800, 1699473, 1699173, 1698900, 1698651, 1698425, 1698219, 1698032, 1697862, + 1697710, 1758916, 1758847, 1758555, 1758025, 1757235, 1756159, 1754780, 1753090, 1751101, 1748846, 1746375, 1743758, 1741066, + 1738370, 1735726, 1733179, 1730757, 1728477, 1726347, 1724367, 1722532, 1720837, 1719272, 1717830, 1716502, 1715279, 1714153, + 1713117, 1712163, 1711285, 1710477, 1709734, 1709049, 1708420, 1707841, 1707309, 1706819, 1706370, 1705957, 1705577, 1705230, + 1704911, 1704619, 1704352, 1704108, 1703885, 1703683, 1703498, 1703330, 1763442, 1763425, 1763196, 1762742, 1762042, 1761074, + 1759819, 1758268, 1756428, 1754324, 1751999, 1749514, 1746935, 1744327, 1741749, 1739246, 1736851, 1734583, 1732453, 1730465, + 1728616, 1726901, 1725314, 1723848, 1722493, 1721244, 1720091, 1719027, 1718046, 1717141, 1716307, 1715537, 1714828, 1714174, + 1713571, 1713015, 1712503, 1712031, 1711597, 1711197, 1710830, 1710492, 1710181, 1709897, 1709636, 1709396, 1709178, 1708978, + 1708796, 1767839, 1767870, 1767698, 1767314, 1766697, 1765828, 1764687, 1763265, 1761565, 1759604, 1757420, 1755065, 1752599, + 1750083, 1747576, 1745123, 1742760, 1740509, 1738384, 1736391, 1734531, 1732800, 1731194, 1729705, 1728327, 1727052, 1725873, + 1724784, 1723776, 1722846, 1721986, 1721191, 1720457, 1719779, 1719152, 1718573, 1718039, 1717546, 1717091, 1716671, 1716284, + 1715927, 1715598, 1715296, 1715018, 1714762, 1714527, 1714312, 1714116, 1772089, 1772163, 1772046, 1771725, 1771186, 1770408, + 1769374, 1768072, 1766503, 1764679, 1762630, 1760403, 1758050, 1755630, 1753197, 1750800, 1748474, 1746246, 1744132, 1742139, + 1740272, 1738529, 1736906, 1735398, 1733998, 1732700, 1731498, 1730384, 1729352, 1728397, 1727512, 1726694, 1725936, 1725234, + 1724585, 1723984, 1723428, 1722914, 1722439, 1721999, 1721593, 1721218, 1720871, 1720551, 1720257, 1719985, 1719735, 1719505, + 1719293, 1776225, 1776340, 1776271, 1776010, 1775542, 1774848, 1773912, 1772722, 1771274, 1769579, 1767661, 1765557, 1763316, + 1760993, 1758639, 1756302, 1754018, 1751817, 1749717, 1747730, 1745859, 1744107, 1742470, 1740944, 1739525, 1738206, 1736981, + 1735844, 1734789, 1733810, 1732903, 1732061, 1731280, 1730556, 1729884, 1729262, 1728685, 1728150, 1727655, 1727196, 1726771, + 1726377, 1726013, 1725676, 1725365, 1725077, 1724811, 1724566, 1724341, 1780237, 1780390, 1780367, 1780161, 1779758, 1779143, + 1778298, 1777211, 1775878, 1774305, 1772510, 1770527, 1768397, 1766171, 1763899, 1761625, 1759389, 1757220, 1755139, 1753160, + 1751290, 1749531, 1747884, 1746344, 1744907, 1743569, 1742324, 1741165, 1740088, 1739087, 1738157, 1737293, 1736490, 1735744, + 1735052, 1734408, 1733811, 1733256, 1732741, 1732263, 1731819, 1731408, 1731026, 1730673, 1730345, 1730041, 1729761, 1729501, + 1729261, 1784128, 1784316, 1784335, 1784180, 1783839, 1783296, 1782535, 1781545, 1780320, 1778861, 1777185, 1775318, 1773298, + 1771170, 1768980, 1766774, 1764589, 1762456, 1760399, 1758433, 1756568, 1754807, 1753151, 1751599, 1750148, 1748793, 1747529, + 1746351, 1745253, 1744231, 1743280, 1742395, 1741571, 1740804, 1740091, 1739427, 1738810, 1738236, 1737702, 1737205, 1736744, + 1736315, 1735916, 1735546, 1735202, 1734883, 1734588, 1734313, 1734059, 1787922, 1788142, 1788200, 1788092, 1787807, 1787331, + 1786649, 1785748, 1784623, 1783272, 1781708, 1779953, 1778040, 1776009, 1773904, 1771766, 1769636, 1767544, 1765514, 1763565, + 1761707, 1759947, 1758287, 1756725, 1755261, 1753891, 1752610, 1751413, 1750296, 1749255, 1748283, 1747378, 1746533, 1745747, + 1745013, 1744330, 1743693, 1743100, 1742548, 1742033, 1741554, 1741108, 1740692, 1740306, 1739946, 1739612, 1739301, 1739013, + 1738745, 1791609, 1791858, 1791952, 1791888, 1791655, 1791241, 1790632, 1789815, 1788783, 1787534, 1786077, 1784430, 1782621, + 1780686, 1778665, 1776600, 1774527, 1772479, 1770481, 1768552, 1766706, 1764950, 1763287, 1761719, 1760245, 1758861, 1757565, + 1756352, 1755217, 1754157, 1753166, 1752241, 1751378, 1750572, 1749819, 1749117, 1748462, 1747850, 1747280, 1746747, 1746251, + 1745788, 1745356, 1744954, 1744579, 1744229, 1743904, 1743601, 1743319, 1795200, 1795477, 1795605, 1795581, 1795396, 1795040, + 1794499, 1793760, 1792815, 1791662, 1790306, 1788762, 1787053, 1785213, 1783277, 1781285, 1779272, 1777271, 1775308, 1773404, + 1771572, 1769823, 1768161, 1766589, 1765107, 1763712, 1762402, 1761174, 1760023, 1758945, 1757937, 1756994, 1756112, 1755287, + 1754516, 1753796, 1753122, 1752493, 1751905, 1751355, 1750842, 1750362, 1749915, 1749496, 1749106, 1748742, 1748402, 1748085, + 1747790, 1798699, 1799001, 1799160, 1799173, 1799034, 1798731, 1798252, 1797586, 1796723, 1795660, 1794400, 1792954, 1791343, + 1789595, 1787744, 1785826, 1783875, 1781924, 1780000, 1778123, 1776309, 1774570, 1772912, 1771338, 1769850, 1768446, 1767124, + 1765883, 1764717, 1763623, 1762598, 1761638, 1760738, 1759896, 1759107, 1758369, 1757678, 1757031, 1756426, 1755860, 1755330, + 1754835, 1754371, 1753938, 1753532, 1753154, 1752800, 1752469, 1752160, 1802105, 1802431, 1802618, 1802666, 1802569, 1802316, + 1801896, 1801297, 1800511, 1799532, 1798363, 1797011, 1795494, 1793837, 1792070, 1790226, 1788339, 1786441, 1784557, 1782710, + 1780918, 1779192, 1777540, 1775968, 1774476, 1773065, 1771734, 1770481, 1769301, 1768193, 1767153, 1766176, 1765260, 1764401, + 1763595, 1762840, 1762132, 1761469, 1760847, 1760265, 1759719, 1759208, 1758729, 1758281, 1757861, 1757468, 1757100, 1756755, + 1756433, 1805432, 1805779, 1805994, 1806074, 1806015, 1805809, 1805443, 1804907, 1804193, 1803293, 1802209, 1800946, 1799520, + 1797951, 1796267, 1794497, 1792676, 1790831, 1788991, 1787177, 1785409, 1783699, 1782057, 1780487, 1778994, 1777579, 1776240, + 1774976, 1773784, 1772663, 1771608, 1770616, 1769684, 1768809, 1767987, 1767216, 1766492, 1765812, 1765175, 1764576, 1764015, + 1763489, 1762995, 1762532, 1762097, 1761690, 1761308, 1760951, 1760616, 1808667, 1809035, 1809275, 1809385, 1809363, 1809199, + 1808885, 1808408, 1807760, 1806936, 1805932, 1804755, 1803415, 1801932, 1800329, 1798634, 1796878, 1795090, 1793295, 1791518, + 1789777, 1788086, 1786455, 1784892, 1783400, 1781982, 1780637, 1779364, 1778163, 1777029, 1775961, 1774955, 1774009, 1773119, + 1772282, 1771495, 1770755, 1770060, 1769407, 1768794, 1768217, 1767676, 1767167, 1766690, 1766242, 1765821, 1765426, 1765055, + 1764707, 1811825, 1812212, 1812474, 1812613, 1812625, 1812502, 1812234, 1811813, 1811228, 1810473, 1809546, 1808450, 1807194, + 1805793, 1804270, 1802649, 1800959, 1799228, 1797481, 1795742, 1794031, 1792361, 1790745, 1789190, 1787701, 1786282, 1784933, + 1783654, 1782443, 1781299, 1780219, 1779201, 1778241, 1777336, 1776485, 1775683, 1774929, 1774219, 1773551, 1772923, 1772332, + 1771776, 1771254, 1770762, 1770300, 1769866, 1769458, 1769074, 1768714, 1814919, 1815324, 1815608, 1815772, 1815815, 1815729, + 1815506, 1815136, 1814609, 1813920, 1813065, 1812046, 1810869, 1809548, 1808102, 1806554, 1804930, 1803257, 1801559, 1799861, + 1798180, 1796534, 1794935, 1793390, 1791907, 1790489, 1789138, 1787853, 1786635, 1785482, 1784391, 1783360, 1782388, 1781470, + 1780605, 1779789, 1779020, 1778296, 1777614, 1776971, 1776366, 1775796, 1775259, 1774754, 1774279, 1773831, 1773410, 1773014, + 1772641, 1817923, 1818344, 1818648, 1818837, 1818910, 1818859, 1818678, 1818355, 1817884, 1817257, 1816471, 1815524, 1814423, + 1813180, 1811809, 1810333, 1808775, 1807161, 1805514, 1803858, 1802212, 1800592, 1799012, 1797480, 1796005, 1794591, 1793239, + 1791951, 1790727, 1789566, 1788466, 1787425, 1786440, 1785510, 1784632, 1783803, 1783021, 1782283, 1781587, 1780931, 1780312, + 1779729, 1779179, 1778661, 1778173, 1777712, 1777279, 1776870, 1776486, 1820879, 1821315, 1821637, 1821849, 1821949, 1821930, + 1821787, 1821510, 1821090, 1820521, 1819798, 1818920, 1817892, 1816722, 1815425, 1814019, 1812526, 1810970, 1809375, 1807762, + 1806151, 1804560, 1803000, 1801484, 1800019, 1798609, 1797258, 1795969, 1794740, 1793572, 1792463, 1791413, 1790418, 1789476, + 1788586, 1787744, 1786949, 1786198, 1785489, 1784819, 1784187, 1783591, 1783028, 1782496, 1781995, 1781522, 1781076, 1780656, + 1780259, 1823759, 1824209, 1824549, 1824782, 1824907, 1824919, 1824812, 1824576, 1824205, 1823690, 1823028, 1822216, 1821256, + 1820157, 1818931, 1817594, 1816166, 1814669, 1813126, 1811558, 1809985, 1808423, 1806887, 1805388, 1803934, 1802531, 1801184, + 1799894, 1798662, 1797489, 1796374, 1795314, 1794310, 1793357, 1792456, 1791603, 1790795, 1790032, 1789310, 1788628, 1787983, + 1787374, 1786798, 1786255, 1785741, 1785256, 1784798, 1784365, 1783957, 1826578, 1827041, 1827397, 1827649, 1827798, 1827839, + 1827765, 1827569, 1827243, 1826780, 1826174, 1825424, 1824530, 1823499, 1822341, 1821071, 1819707, 1818269, 1816778, 1815256, + 1813722, 1812192, 1810681, 1809201, 1807761, 1806367, 1805024, 1803735, 1802502, 1801325, 1800204, 1799137, 1798124, 1797162, + 1796250, 1795386, 1794567, 1793792, 1793058, 1792363, 1791706, 1791085, 1790497, 1789941, 1789416, 1788919, 1788449, 1788005, + 1787585, 1829321, 1829796, 1830167, 1830438, 1830610, 1830677, 1830636, 1830477, 1830193, 1829779, 1829227, 1828535, 1827705, + 1826739, 1825648, 1824443, 1823141, 1821762, 1820325, 1818849, 1817355, 1815859, 1814375, 1812916, 1811491, 1810108, 1808772, + 1807487, 1806254, 1805075, 1803949, 1802876, 1801855, 1800885, 1799964, 1799089, 1798260, 1797474, 1796729, 1796023, 1795354, + 1794721, 1794121, 1793554, 1793017, 1792508, 1792027, 1791572, 1791141, 1832019, 1832504, 1832890, 1833178, 1833370, 1833463, + 1833451, 1833326, 1833083, 1832713, 1832212, 1831576, 1830805, 1829902, 1828874, 1827732, 1826492, 1825170, 1823786, 1822358, + 1820905, 1819443, 1817988, 1816551, 1815144, 1813773, 1812445, 1811164, 1809933, 1808752, 1807623, 1806546, 1805518, 1804540, + 1803610, 1802726, 1801887, 1801090, 1800334, 1799617, 1798937, 1798293, 1797682, 1797103, 1796554, 1796035, 1795543, 1795076, + 1794635, 1834656, 1835152, 1835550, 1835855, 1836066, 1836182, 1836198, 1836106, 1835900, 1835573, 1835120, 1834537, 1833822, + 1832978, 1832012, 1830932, 1829751, 1828487, 1827155, 1825775, 1824363, 1822937, 1821512, 1820099, 1818711, 1817354, 1816036, + 1814762, 1813533, 1812353, 1811222, 1810140, 1809107, 1808123, 1807185, 1806292, 1805443, 1804637, 1803871, 1803143, 1802453, + 1801797, 1801176, 1800586, 1800026, 1799496, 1798993, 1798516, 1798064, 1837249, 1837754, 1838164, 1838484, 1838713, 1838851, + 1838892, 1838830, 1838659, 1838373, 1837964, 1837431, 1836770, 1835983, 1835075, 1834054, 1832932, 1831723, 1830444, 1829111, + 1827742, 1826352, 1824958, 1823571, 1822203, 1820862, 1819555, 1818288, 1817063, 1815885, 1814753, 1813668, 1812631, 1811640, + 1810695, 1809795, 1808937, 1808122, 1807346, 1806608, 1805907, 1805242, 1804609, 1804009, 1803439, 1802898, 1802384, 1801896, + 1801434, 1839781, 1840296, 1840717, 1841050, 1841297, 1841455, 1841520, 1841487, 1841349, 1841100, 1840735, 1840248, 1839638, + 1838905, 1838054, 1837090, 1836025, 1834871, 1833643, 1832358, 1831032, 1829681, 1828318, 1826959, 1825612, 1824288, 1822994, + 1821736, 1820517, 1819341, 1818209, 1817123, 1816082, 1815087, 1814136, 1813228, 1812363, 1811539, 1810754, 1810007, 1809297, + 1808621, 1807979, 1807368, 1806788, 1806236, 1805713, 1805215, 1804742, 1842270, 1842792, 1843224, 1843570, 1843832, 1844010, + 1844098, 1844091, 1843984, 1843771, 1843445, 1843003, 1842441, 1841760, 1840962, 1840054, 1839044, 1837944, 1836767, 1835530, + 1834246, 1832933, 1831604, 1830272, 1828948, 1827643, 1826363, 1825115, 1823903, 1822731, 1821601, 1820514, 1819471, 1818471, + 1817515, 1816601, 1815729, 1814897, 1814104, 1813348, 1812628, 1811943, 1811291, 1810670, 1810080, 1809519, 1808985, 1808478, + 1807995, 1844699, 1845229, 1845670, 1846029, 1846306, 1846501, 1846610, 1846629, 1846552, 1846372, 1846084, 1845684, 1845168, + 1844537, 1843791, 1842936, 1841979, 1840931, 1839805, 1838615, 1837375, 1836101, 1834806, 1833503, 1832204, 1830918, 1829654, + 1828418, 1827214, 1826048, 1824920, 1823834, 1822789, 1821787, 1820826, 1819907, 1819029, 1818189, 1817388, 1816625, 1815896, + 1815202, 1814541, 1813911, 1813312, 1812741, 1812198, 1811681, 1811189, 1847084, 1847621, 1848071, 1848441, 1848732, 1848944, + 1849074, 1849116, 1849066, 1848918, 1848666, 1848305, 1847833, 1847249, 1846553, 1845749, 1844844, 1843848, 1842771, 1841628, + 1840431, 1839196, 1837935, 1836663, 1835389, 1834124, 1832877, 1831653, 1830460, 1829300, 1828176, 1827091, 1826046, 1825042, + 1824078, 1823154, 1822270, 1821424, 1820616, 1819845, 1819108, 1818406, 1817736, 1817097, 1816489, 1815909, 1815356, 1814830, + 1814329, 1849425, 1849969, 1850428, 1850808, 1851112, 1851340, 1851488, 1851553, 1851529, 1851410, 1851192, 1850869, 1850438, + 1849899, 1849250, 1848495, 1847640, 1846694, 1845666, 1844569, 1843415, 1842219, 1840994, 1839752, 1838504, 1837262, 1836032, + 1834823, 1833640, 1832488, 1831369, 1830287, 1829243, 1828237, 1827271, 1826343, 1825454, 1824603, 1823788, 1823009, 1822265, + 1821555, 1820877, 1820230, 1819613, 1819024, 1818463, 1817927, 1817417, 1851724, 1852273, 1852740, 1853130, 1853446, 1853688, + 1853854, 1853940, 1853940, 1853850, 1853663, 1853376, 1852985, 1852487, 1851884, 1851176, 1850370, 1849472, 1848491, 1847440, + 1846329, 1845172, 1843983, 1842772, 1841552, 1840332, 1839121, 1837928, 1836757, 1835613, 1834501, 1833422, 1832380, 1831374, + 1830406, 1829475, 1828582, 1827725, 1826905, 1826120, 1825369, 1824651, 1823965, 1823310, 1822684, 1822087, 1821517, 1820973, + 1820455, 1853979, 1854533, 1855008, 1855407, 1855734, 1855990, 1856173, 1856278, 1856301, 1856237, 1856081, 1855827, 1855473, + 1855016, 1854456, 1853794, 1853034, 1852183, 1851249, 1850242, 1849174, 1848057, 1846903, 1845724, 1844532, 1843336, 1842145, + 1840968, 1839810, 1838677, 1837571, 1836498, 1835458, 1834453, 1833484, 1832551, 1831654, 1830793, 1829967, 1829176, 1828419, + 1827694, 1827001, 1826338, 1825704, 1825099, 1824521, 1823969, 1823442, 1856191, 1856750, 1857231, 1857639, 1857977, 1858246, + 1858445, 1858568, 1858613, 1858574, 1858446, 1858224, 1857906, 1857487, 1856969, 1856350, 1855635, 1854830, 1853941, 1852978, + 1851951, 1850874, 1849756, 1848609, 1847446, 1846274, 1845105, 1843945, 1842801, 1841679, 1840582, 1839514, 1838477, 1837474, + 1836505, 1835571, 1834671, 1833807, 1832976, 1832180, 1831417, 1830685, 1829985, 1829315, 1828674, 1828062, 1827476, 1826916, + 1826381, 1858360, 1858924, 1859411, 1859826, 1860175, 1860456, 1860669, 1860810, 1860876, 1860860, 1860759, 1860568, 1860283, + 1859901, 1859422, 1858845, 1858174, 1857412, 1856567, 1855648, 1854663, 1853624, 1852542, 1851428, 1850294, 1849148, 1848001, + 1846859, 1845731, 1844620, 1843533, 1842471, 1841439, 1840439, 1839470, 1838535, 1837634, 1836767, 1835933, 1835132, 1834363, + 1833626, 1832919, 1832243, 1831595, 1830975, 1830381, 1829814, 1829271, 1860503, 1861071, 1861564, 1861987, 1862344, 1862637, + 1862864, 1863021, 1863105, 1863112, 1863036, 1862873, 1862620, 1862273, 1861831, 1861294, 1860664, 1859945, 1859143, 1858265, + 1857321, 1856321, 1855275, 1854194, 1853089, 1851969, 1850844, 1849722, 1848609, 1847511, 1846434, 1845380, 1844354, 1843356, + 1842389, 1841454, 1840552, 1839682, 1838845, 1838039, 1837266, 1836523, 1835811, 1835128, 1834473, 1833846, 1833245, 1832670, + 1832120, 1862604, 1863175, 1863673, 1864103, 1864469, 1864773, 1865012, 1865185, 1865287, 1865314, 1865262, 1865127, 1864904, + 1864590, 1864184, 1863685, 1863096, 1862418, 1861657, 1860820, 1859916, 1858954, 1857944, 1856896, 1855821, 1854728, 1853626, + 1852524, 1851427, 1850343, 1849277, 1848232, 1847211, 1846218, 1845254, 1844320, 1843417, 1842545, 1841705, 1840896, 1840118, + 1839371, 1838653, 1837964, 1837303, 1836669, 1836062, 1835480, 1834923, 1864661, 1865236, 1865739, 1866175, 1866549, 1866863, + 1867115, 1867302, 1867421, 1867469, 1867439, 1867329, 1867135, 1866853, 1866482, 1866020, 1865468, 1864830, 1864109, 1863313, + 1862448, 1861524, 1860549, 1859535, 1858490, 1857424, 1856346, 1855264, 1854186, 1853117, 1852062, 1851027, 1850013, 1849025, + 1848064, 1847132, 1846229, 1845357, 1844515, 1843703, 1842921, 1842169, 1841447, 1840752, 1840086, 1839446, 1838832, 1838244, + 1837680, 1866674, 1867253, 1867761, 1868203, 1868585, 1868908, 1869172, 1869373, 1869508, 1869575, 1869567, 1869482, 1869315, + 1869063, 1868724, 1868297, 1867783, 1867183, 1866502, 1865745, 1864919, 1864032, 1863093, 1862111, 1861097, 1860059, 1859006, + 1857945, 1856885, 1855832, 1854790, 1853765, 1852760, 1851778, 1850821, 1849891, 1848990, 1848117, 1847274, 1846460, 1845675, + 1844919, 1844192, 1843493, 1842821, 1842176, 1841556, 1840962, 1840391, 136533, 136533, 136533, 136533, 136533, 136533, + 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 135924, 125277, 108081, 91368, 77552, + 66660, 58112, 51334, 45876, 41412, 37706, 34587, 31931, 29644, 27657, 25914, 24375, 23005, 21780, + 20677, 19679, 18772, 17944, 17186, 16489, 15845, 15250, 14698, 14184, 13704, 13256, 12836, 12442, + 12071, 11721, 11392, 11080, 10784, 10504, 10238, 9986, 9745, 9516, 9297, 9088, 8888, 8697, + 8513, 8338, 8169, 8007, 7852, 7702, 7558, 7419, 7285, 7156, 7031, 6911, 6795, 6682, + 6574, 6468, 6366, 6267, 6172, 6079, 5989, 5901, 5816, 5733, 5653, 5575, 5499, 5425, + 5353, 5283, 5215, 5148, 5083, 5020, 4959 +]; +/// PMOS log-domain current table, corner mos_tt, IHP-Open-PDK 21133f21, L 0.45 um, 27 C, at the source-to-bulk voltage Vsb = 0.5 V (slice 2): the tag word (4294967295), then the 4753 words ix * 49 + iy of log2(Id / F) in 1/65536 octave over 2^-8 of a linear-table word (1.164 pA), then the 97 rv words; the format of TT_LG_P (deck psp103_idpa_vsb_tt.cir, blocks lam_p_2 and r_2). +pub const VSB_P2 : [4851]u32 = [ + 4294967295, 0, 23347, 11772, 11716, 14225, 17761, 21181, 24783, 28415, 32040, 35650, 39248, 42838, + 46424, 50008, 53593, 57181, 60774, 64373, 67978, 71589, 75207, 78830, 82460, 86095, 89735, 93381, + 97033, 100697, 104378, 108090, 111855, 115709, 119701, 123909, 128721, 133792, 139511, 146082, 153725, 162661, + 173080, 185114, 198809, 214115, 230892, 248931, 267979, 287776, 0, 41917, 32198, 32159, 34350, 37436, + 40172, 43121, 46123, 49133, 52145, 55161, 58183, 61216, 64261, 67322, 70401, 73497, 76612, 79747, + 82902, 86076, 89269, 92481, 95711, 98958, 102223, 105504, 108806, 112131, 115490, 118897, 122379, 125974, + 129743, 134000, 138471, 143481, 149212, 155875, 163691, 172872, 183591, 195954, 209976, 225576, 242590, 260790, + 279921, 29311, 67131, 59081, 58705, 60468, 63099, 65160, 67444, 69796, 72167, 74549, 76944, 79354, + 81784, 84237, 86713, 89216, 91746, 94305, 96892, 99509, 102156, 104831, 107535, 110268, 113029, 115817, + 118633, 121476, 124351, 127263, 130221, 133245, 136364, 139620, 143259, 147071, 151315, 156149, 161761, 168362, + 176173, 185395, 196188, 208635, 222730, 238372, 255382, 273527, 75135, 98404, 91851, 91002, 92206, 93934, + 95886, 97570, 99328, 101110, 102905, 104715, 106542, 108391, 110263, 112162, 114089, 116046, 118035, 120055, + 122108, 124194, 126314, 128468, 130655, 132876, 135130, 137417, 139738, 142094, 144489, 146930, 149429, 152005, + 154690, 157530, 160770, 164210, 168108, 172624, 177944, 184280, 191846, 200837, 211402, 223614, 237458, 252827, + 269541, 121316, 134631, 129321, 128058, 128670, 129952, 131489, 132697, 133972, 135269, 136577, 137897, 139230, + 140580, 141951, 143344, 144762, 146206, 147678, 149179, 150710, 152271, 153865, 155490, 157148, 158839, 160563, + 162321, 164112, 165938, 167801, 169706, 171660, 173675, 175774, 177987, 180484, 183130, 186111, 189551, 193604, + 198452, 204298, 211349, 219797, 229786, 241394, 254611, 269341, 167747, 174591, 170154, 168629, 168747, 169628, + 170645, 171714, 172630, 173566, 174508, 175456, 176411, 177378, 178358, 179354, 180368, 181402, 182457, 183534, + 184635, 185760, 186911, 188088, 189292, 190524, 191783, 193071, 194388, 195735, 197114, 198527, 199979, 201477, + 203036, 204674, 206422, 208434, 210595, 213072, 215980, 219462, 223688, 228848, 235139, 242748, 251824, 262456, + 274658, 214351, 217144, 213255, 211593, 211363, 211910, 212681, 213435, 214194, 214879, 215565, 216252, 216941, + 217635, 218336, 219047, 219769, 220504, 221252, 222016, 222796, 223593, 224408, 225242, 226096, 226970, 227864, + 228781, 229719, 230681, 231666, 232677, 233716, 234788, 235901, 237067, 238303, 239705, 241202, 242903, 244884, + 247246, 250114, 253640, 257995, 263361, 269916, 277816, 287167, 261075, 261398, 257841, 256093, 255653, 255958, + 256537, 257135, 257739, 258257, 258775, 259289, 259800, 260312, 260827, 261345, 261869, 262400, 262938, 263486, + 264044, 264613, 265193, 265785, 266391, 267010, 267642, 268290, 268953, 269632, 270327, 271039, 271771, 272525, + 273305, 274117, 274973, 275888, 276939, 278072, 279376, 280914, 282770, 285049, 287879, 291407, 295795, 301207, + 307797, 307888, 306730, 303371, 301560, 301005, 301151, 301586, 302077, 302540, 302996, 303405, 303809, 304207, + 304602, 304996, 305390, 305786, 306184, 306587, 306994, 307406, 307824, 308249, 308681, 309121, 309569, 310025, + 310491, 310967, 311452, 311948, 312456, 312975, 313508, 314057, 314626, 315220, 315847, 316552, 317304, 318153, + 319138, 320310, 321736, 323499, 325703, 328468, 331930, 336233, 354767, 352734, 349491, 347639, 347014, 347068, + 347403, 347816, 348216, 348587, 348950, 349285, 349612, 349934, 350253, 350570, 350885, 351201, 351517, 351835, + 352155, 352478, 352804, 353133, 353467, 353805, 354149, 354497, 354851, 355211, 355578, 355951, 356331, 356720, + 357118, 357526, 357950, 358391, 358859, 359385, 359948, 360587, 361330, 362218, 363300, 364642, 366323, 368437, + 371094, 401701, 399156, 395981, 394102, 393432, 393437, 393709, 394066, 394423, 394755, 395078, 395370, 395654, + 395932, 396204, 396473, 396739, 397003, 397267, 397530, 397793, 398056, 398321, 398587, 398855, 399125, 399398, + 399673, 399951, 400232, 400517, 400805, 401097, 401394, 401697, 402005, 402321, 402647, 402987, 403357, 403748, + 404179, 404667, 405233, 405908, 406728, 407743, 409010, 410603, 448680, 445840, 442705, 440810, 440112, 440087, + 440324, 440643, 440970, 441278, 441564, 441843, 442101, 442351, 442596, 442836, 443072, 443305, 443537, 443766, + 443995, 444222, 444450, 444677, 444905, 445133, 445362, 445592, 445823, 446056, 446290, 446526, 446764, 447005, + 447248, 447494, 447745, 448000, 448263, 448535, 448831, 449141, 449481, 449863, 450303, 450822, 451449, 452217, + 453171, 495698, 492691, 489581, 487677, 486962, 486918, 487137, 487432, 487738, 488030, 488301, 488558, 488802, + 489042, 489270, 489492, 489710, 489925, 490137, 490347, 490554, 490760, 490965, 491169, 491373, 491575, 491778, + 491981, 492184, 492387, 492591, 492795, 493001, 493207, 493414, 493623, 493834, 494047, 494263, 494485, 494718, + 494959, 495215, 495493, 495802, 496152, 496561, 497047, 497635, 542748, 539653, 536558, 534649, 533924, 533870, + 534077, 534360, 534652, 534933, 535196, 535443, 535678, 535905, 536123, 536339, 536547, 536750, 536951, 537148, + 537344, 537537, 537728, 537918, 538107, 538295, 538482, 538669, 538855, 539040, 539226, 539411, 539596, 539782, + 539968, 540154, 540341, 540529, 540719, 540911, 541106, 541309, 541518, 541738, 541974, 542232, 542521, 542851, + 543236, 589823, 586687, 583605, 581694, 580964, 580903, 581104, 581380, 581664, 581938, 582196, 582438, 582668, + 582889, 583102, 583309, 583511, 583709, 583904, 584095, 584283, 584469, 584652, 584834, 585014, 585193, 585371, + 585548, 585724, 585899, 586074, 586248, 586421, 586595, 586768, 586941, 587114, 587287, 587460, 587635, 587811, + 587989, 588173, 588361, 588557, 588765, 588988, 589233, 589507, 637336, 634009, 630824, 628849, 628084, 628005, + 628196, 628465, 628744, 629013, 629267, 629507, 629734, 629952, 630162, 630366, 630564, 630758, 630949, 631136, + 631320, 631502, 631682, 631859, 632035, 632208, 632381, 632552, 632722, 632891, 633060, 633227, 633394, 633560, + 633726, 633891, 634055, 634220, 634385, 634549, 634714, 634880, 635049, 635219, 635393, 635573, 635761, 635960, + 636175, 692136, 685616, 680373, 677197, 675793, 675396, 675438, 675639, 675888, 676142, 676389, 676625, 676851, + 677067, 677276, 677478, 677675, 677868, 678056, 678241, 678424, 678603, 678780, 678955, 679128, 679299, 679470, + 679638, 679805, 679970, 680135, 680299, 680462, 680624, 680785, 680946, 681106, 681266, 681425, 681584, 681743, + 681902, 682061, 682223, 682385, 682550, 682719, 682894, 683077, 753157, 741391, 732556, 727122, 724401, 723283, + 722947, 722959, 723115, 723325, 723551, 723778, 723999, 724213, 724421, 724623, 724820, 725012, 725200, 725385, + 725566, 725745, 725921, 726095, 726267, 726437, 726606, 726773, 726938, 727102, 727266, 727428, 727589, 727749, + 727908, 728067, 728224, 728381, 728538, 728694, 728850, 729005, 729160, 729316, 729472, 729630, 729789, 729950, + 730116, 816033, 799081, 786438, 778386, 773972, 771813, 770863, 770525, 770486, 770591, 770761, 770959, 771165, + 771373, 771578, 771779, 771975, 772168, 772357, 772542, 772724, 772903, 773079, 773254, 773426, 773596, 773764, + 773931, 774096, 774260, 774423, 774585, 774745, 774905, 775063, 775221, 775378, 775534, 775689, 775844, 775998, + 776152, 776305, 776458, 776612, 776765, 776919, 777075, 777232, 878396, 857133, 841107, 830547, 824360, 820998, + 819260, 818420, 818070, 817986, 818043, 818175, 818345, 818532, 818726, 818921, 819116, 819308, 819497, 819684, + 819867, 820047, 820225, 820401, 820574, 820746, 820915, 821083, 821249, 821414, 821578, 821740, 821901, 822061, + 822220, 822378, 822535, 822691, 822847, 823001, 823155, 823309, 823462, 823615, 823767, 823919, 824071, 824224, + 824377, 939329, 914724, 895903, 883135, 875278, 870695, 868089, 866648, 865890, 865534, 865414, 865432, 865530, + 865673, 865840, 866021, 866207, 866396, 866584, 866771, 866956, 867139, 867319, 867497, 867673, 867847, 868018, + 868188, 868357, 868524, 868689, 868853, 869016, 869178, 869338, 869498, 869656, 869814, 869971, 870127, 870282, + 870436, 870590, 870744, 870896, 871049, 871201, 871353, 871505, 998526, 971447, 950389, 935753, 926406, 920672, + 917196, 915111, 913887, 913198, 912845, 912702, 912690, 912761, 912881, 913031, 913199, 913378, 913561, 913746, + 913932, 914116, 914300, 914481, 914661, 914838, 915014, 915188, 915360, 915530, 915699, 915867, 916033, 916198, + 916361, 916524, 916685, 916845, 917005, 917163, 917321, 917478, 917634, 917789, 917944, 918098, 918252, 918405, + 918558, 1055823, 1027041, 1004245, 988061, 977426, 970651, 966353, 963631, 961919, 960865, 960240, 959900, 959746, + 959716, 959766, 959869, 960006, 960165, 960337, 960517, 960701, 960887, 961073, 961258, 961443, 961626, 961807, + 961986, 962164, 962340, 962515, 962688, 962859, 963029, 963197, 963365, 963531, 963696, 963859, 964022, 964184, + 964345, 964505, 964664, 964822, 964980, 965137, 965293, 965449, 1111008, 1081255, 1057174, 1039735, 1028006, 1020317, + 1015273, 1011948, 1009759, 1008331, 1007418, 1006858, 1006540, 1006387, 1006349, 1006389, 1006483, 1006612, 1006766, 1006935, + 1007114, 1007300, 1007488, 1007678, 1007869, 1008059, 1008247, 1008435, 1008621, 1008805, 1008987, 1009168, 1009347, 1009525, + 1009701, 1009875, 1010048, 1010220, 1010390, 1010560, 1010728, 1010895, 1011061, 1011226, 1011390, 1011553, 1011715, 1011877, + 1012038, 1163740, 1133762, 1108834, 1090411, 1077772, 1069299, 1063595, 1059724, 1057087, 1055298, 1054097, 1053310, 1052816, + 1052529, 1052389, 1052354, 1052394, 1052486, 1052615, 1052769, 1052940, 1053123, 1053313, 1053508, 1053705, 1053904, 1054102, + 1054299, 1054496, 1054691, 1054884, 1055076, 1055265, 1055453, 1055640, 1055824, 1056007, 1056189, 1056368, 1056547, 1056724, + 1056900, 1057074, 1057247, 1057419, 1057590, 1057760, 1057929, 1058097, 1213568, 1184132, 1158813, 1139667, 1126291, 1117160, + 1110887, 1106532, 1103490, 1101364, 1099888, 1098879, 1098207, 1097781, 1097533, 1097416, 1097395, 1097443, 1097541, 1097675, + 1097836, 1098014, 1098205, 1098404, 1098609, 1098816, 1099025, 1099235, 1099444, 1099652, 1099859, 1100064, 1100267, 1100469, + 1100668, 1100865, 1101061, 1101255, 1101447, 1101637, 1101825, 1102012, 1102198, 1102381, 1102564, 1102745, 1102925, 1103103, + 1103280, 1260004, 1231867, 1206640, 1187033, 1173084, 1163409, 1156653, 1151878, 1148475, 1146044, 1144313, 1143092, 1142247, + 1141681, 1141323, 1141119, 1141032, 1141030, 1141093, 1141203, 1141348, 1141519, 1141708, 1141910, 1142120, 1142337, 1142557, + 1142779, 1143001, 1143224, 1143445, 1143665, 1143883, 1144100, 1144314, 1144526, 1144736, 1144944, 1145150, 1145353, 1145555, + 1145755, 1145953, 1146149, 1146343, 1146535, 1146726, 1146916, 1147103, 1302657, 1276469, 1251841, 1232046, 1217673, 1207556, + 1200391, 1195252, 1191530, 1188822, 1186854, 1185433, 1184421, 1183717, 1183246, 1182952, 1182793, 1182736, 1182757, 1182837, + 1182961, 1183119, 1183301, 1183501, 1183714, 1183936, 1184164, 1184396, 1184630, 1184865, 1185100, 1185334, 1185567, 1185797, + 1186026, 1186252, 1186477, 1186699, 1186918, 1187135, 1187350, 1187562, 1187773, 1187981, 1188187, 1188391, 1188593, 1188793, + 1188991, 1341351, 1317566, 1294027, 1274324, 1259668, 1249193, 1241680, 1236220, 1232210, 1229248, 1227058, 1225445, 1224268, + 1223425, 1222837, 1222447, 1222209, 1222088, 1222058, 1222099, 1222193, 1222329, 1222496, 1222687, 1222896, 1223117, 1223347, + 1223584, 1223825, 1224068, 1224312, 1224556, 1224799, 1225041, 1225281, 1225519, 1225755, 1225988, 1226219, 1226447, 1226673, + 1226896, 1227117, 1227335, 1227551, 1227764, 1227975, 1228185, 1228391, 1376153, 1354977, 1332946, 1313625, 1298823, 1288061, + 1280243, 1274494, 1270218, 1267016, 1264612, 1262810, 1261469, 1260483, 1259772, 1259277, 1258950, 1258756, 1258665, 1258655, + 1258709, 1258812, 1258954, 1259125, 1259320, 1259531, 1259755, 1259988, 1260228, 1260472, 1260719, 1260967, 1261215, 1261462, + 1261708, 1261953, 1262195, 1262436, 1262673, 1262909, 1263141, 1263372, 1263599, 1263824, 1264046, 1264266, 1264483, 1264698, + 1264911, 1407339, 1388752, 1368526, 1349870, 1335062, 1324075, 1315988, 1309971, 1305444, 1302011, 1299397, 1297406, 1295897, + 1294762, 1293921, 1293312, 1292887, 1292607, 1292443, 1292371, 1292372, 1292432, 1292537, 1292678, 1292847, 1293039, 1293246, + 1293467, 1293697, 1293934, 1294175, 1294419, 1294665, 1294911, 1295157, 1295402, 1295646, 1295888, 1296128, 1296365, 1296600, + 1296833, 1297063, 1297290, 1297515, 1297737, 1297956, 1298173, 1298388, 1435279, 1419106, 1400836, 1383102, 1368437, 1357292, + 1348966, 1342700, 1337933, 1334275, 1331454, 1329275, 1327595, 1326307, 1325329, 1324598, 1324065, 1323690, 1323443, 1323298, + 1323236, 1323240, 1323298, 1323398, 1323532, 1323694, 1323876, 1324075, 1324286, 1324507, 1324735, 1324969, 1325205, 1325444, + 1325683, 1325923, 1326162, 1326400, 1326637, 1326871, 1327104, 1327334, 1327563, 1327788, 1328011, 1328232, 1328450, 1328666, + 1328879, 1460390, 1446373, 1430070, 1413467, 1399104, 1387873, 1379343, 1372846, 1367849, 1363973, 1360948, 1358581, 1356729, + 1355284, 1354164, 1353305, 1352657, 1352179, 1351840, 1351614, 1351480, 1351420, 1351421, 1351471, 1351562, 1351684, 1351832, + 1352001, 1352187, 1352385, 1352593, 1352808, 1353029, 1353254, 1353481, 1353710, 1353940, 1354169, 1354398, 1354626, 1354852, + 1355076, 1355299, 1355519, 1355738, 1355954, 1356167, 1356379, 1356588, 1483048, 1470910, 1456483, 1441151, 1427250, 1416019, + 1407324, 1400617, 1395404, 1391318, 1388095, 1385543, 1383519, 1381917, 1380653, 1379663, 1378896, 1378310, 1377874, 1377560, + 1377346, 1377216, 1377153, 1377147, 1377186, 1377263, 1377371, 1377504, 1377657, 1377826, 1378008, 1378200, 1378400, 1378606, + 1378817, 1379030, 1379246, 1379462, 1379680, 1379897, 1380113, 1380328, 1380542, 1380755, 1380965, 1381174, 1381381, 1381585, + 1381788, 1503605, 1493079, 1480372, 1466377, 1453088, 1441953, 1433141, 1426249, 1420835, 1416549, 1413135, 1410403, 1408212, + 1406454, 1405046, 1403923, 1403035, 1402338, 1401801, 1401395, 1401098, 1400892, 1400761, 1400692, 1400676, 1400702, 1400764, + 1400856, 1400971, 1401107, 1401258, 1401423, 1401598, 1401781, 1401971, 1402165, 1402364, 1402564, 1402767, 1402970, 1403174, + 1403378, 1403581, 1403783, 1403984, 1404183, 1404381, 1404577, 1404772, 1522356, 1513204, 1502034, 1489372, 1476819, 1465885, + 1457013, 1449966, 1444369, 1439896, 1436300, 1433395, 1431040, 1429130, 1427580, 1426326, 1425317, 1424509, 1423869, 1423369, + 1422986, 1422701, 1422498, 1422364, 1422288, 1422260, 1422272, 1422319, 1422393, 1422492, 1422609, 1422743, 1422889, 1423047, + 1423213, 1423385, 1423564, 1423746, 1423931, 1424119, 1424308, 1424498, 1424688, 1424878, 1425067, 1425256, 1425444, 1425630, + 1425816, 1539547, 1531563, 1521746, 1510363, 1498633, 1488005, 1479138, 1471972, 1466214, 1461569, 1457802, 1454731, 1452220, + 1450162, 1448474, 1447091, 1445962, 1445043, 1444301, 1443706, 1443236, 1442871, 1442594, 1442393, 1442255, 1442170, 1442130, + 1442129, 1442160, 1442218, 1442299, 1442399, 1442515, 1442644, 1442784, 1442933, 1443089, 1443250, 1443417, 1443587, 1443759, + 1443934, 1444110, 1444286, 1444463, 1444640, 1444816, 1444992, 1445167, 1555386, 1548399, 1539760, 1529568, 1518709, 1508485, + 1499693, 1492450, 1486555, 1481754, 1477828, 1474602, 1471941, 1469741, 1467920, 1466412, 1465166, 1464138, 1463294, 1462605, + 1462048, 1461603, 1461252, 1460982, 1460780, 1460637, 1460544, 1460493, 1460479, 1460495, 1460537, 1460601, 1460684, 1460783, + 1460895, 1461018, 1461150, 1461290, 1461436, 1461587, 1461742, 1461900, 1462060, 1462222, 1462386, 1462550, 1462714, 1462878, + 1463042, 1570041, 1563906, 1556290, 1547185, 1537209, 1527469, 1518827, 1511553, 1505550, 1500612, 1496540, 1493169, 1490367, + 1488032, 1486083, 1484455, 1483095, 1481961, 1481018, 1480236, 1479593, 1479068, 1478642, 1478303, 1478038, 1477836, 1477688, + 1477587, 1477526, 1477499, 1477501, 1477529, 1477578, 1477645, 1477728, 1477824, 1477931, 1478047, 1478171, 1478302, 1478438, + 1478579, 1478723, 1478869, 1479018, 1479168, 1479320, 1479472, 1479625, 1583660, 1578256, 1571527, 1563401, 1554288, 1545093, + 1536673, 1529419, 1523339, 1518285, 1514082, 1510576, 1507642, 1505179, 1503108, 1501364, 1499894, 1498658, 1497618, 1496746, + 1496019, 1495414, 1494915, 1494508, 1494179, 1493917, 1493715, 1493562, 1493454, 1493383, 1493344, 1493334, 1493348, 1493382, + 1493435, 1493503, 1493584, 1493676, 1493778, 1493887, 1494004, 1494126, 1494253, 1494383, 1494517, 1494653, 1494791, 1494931, + 1495071, 1596370, 1591597, 1585637, 1578383, 1570094, 1561481, 1553347, 1546165, 1540043, 1534895, 1530576, 1526947, 1523890, + 1521307, 1519120, 1517265, 1515691, 1514354, 1513221, 1512261, 1511451, 1510769, 1510198, 1509722, 1509330, 1509010, 1508752, + 1508548, 1508392, 1508276, 1508196, 1508148, 1508126, 1508127, 1508148, 1508187, 1508241, 1508308, 1508387, 1508475, 1508571, + 1508674, 1508783, 1508896, 1509014, 1509136, 1509260, 1509387, 1509515, 1608260, 1604035, 1598744, 1592265, 1584746, 1576733, + 1568939, 1561882, 1555756, 1550538, 1546121, 1542382, 1539212, 1536516, 1534220, 1532260, 1530585, 1529154, 1527930, 1526885, + 1525995, 1525237, 1524595, 1524053, 1523598, 1523219, 1522907, 1522652, 1522448, 1522288, 1522167, 1522079, 1522021, 1521988, + 1521978, 1521988, 1522014, 1522056, 1522110, 1522176, 1522251, 1522334, 1522425, 1522521, 1522623, 1522729, 1522839, 1522952, + 1523068, 1619422, 1615674, 1610968, 1605175, 1598368, 1590952, 1583540, 1576658, 1570566, 1565305, 1560808, 1556972, 1553698, + 1550899, 1548500, 1546441, 1544671, 1543148, 1541838, 1540711, 1539742, 1538911, 1538200, 1537593, 1537077, 1536640, 1536274, + 1535969, 1535717, 1535513, 1535350, 1535223, 1535128, 1535062, 1535020, 1535000, 1534998, 1535014, 1535043, 1535086, 1535140, + 1535203, 1535275, 1535354, 1535439, 1535530, 1535625, 1535724, 1535827, 1629935, 1626605, 1622410, 1617224, 1611067, 1604232, + 1597231, 1590567, 1584548, 1579273, 1574715, 1570796, 1567430, 1564535, 1562040, 1559887, 1558027, 1556417, 1555023, 1553817, + 1552773, 1551871, 1551092, 1550421, 1549845, 1549353, 1548933, 1548577, 1548279, 1548030, 1547826, 1547660, 1547529, 1547428, + 1547354, 1547304, 1547274, 1547263, 1547268, 1547288, 1547320, 1547363, 1547415, 1547476, 1547544, 1547619, 1547699, 1547784, + 1547873, 1639862, 1636901, 1633155, 1628507, 1622939, 1616660, 1610084, 1603676, 1597767, 1592506, 1587908, 1583922, 1580474, + 1577491, 1574908, 1572667, 1570721, 1569028, 1567555, 1566273, 1565156, 1564185, 1563341, 1562608, 1561973, 1561425, 1560953, + 1560548, 1560203, 1559911, 1559665, 1559461, 1559293, 1559158, 1559052, 1558971, 1558913, 1558876, 1558856, 1558851, 1558861, + 1558883, 1558916, 1558959, 1559010, 1559068, 1559133, 1559203, 1559279, 1649251, 1646615, 1643266, 1639094, 1634060, 1628305, + 1622160, 1616035, 1610272, 1605055, 1600439, 1596401, 1592883, 1589822, 1587158, 1584835, 1582808, 1581037, 1579488, 1578133, + 1576947, 1575909, 1575002, 1574209, 1573517, 1572915, 1572392, 1571939, 1571548, 1571212, 1570926, 1570683, 1570479, 1570310, + 1570172, 1570061, 1569975, 1569910, 1569865, 1569837, 1569824, 1569825, 1569838, 1569862, 1569896, 1569938, 1569987, 1570043, + 1570104, 1658155, 1655808, 1652811, 1649063, 1644510, 1639244, 1633523, 1627704, 1622115, 1616971, 1612361, 1608287, 1604712, + 1601582, 1598844, 1596445, 1594343, 1592498, 1590877, 1589452, 1588199, 1587098, 1586129, 1585278, 1584531, 1583876, 1583302, + 1582802, 1582366, 1581988, 1581661, 1581381, 1581141, 1580938, 1580767, 1580626, 1580512, 1580420, 1580350, 1580298, 1580263, + 1580242, 1580235, 1580240, 1580256, 1580281, 1580314, 1580355, 1580403, 1666614, 1664525, 1661841, 1658469, 1654350, 1649538, + 1644229, 1638727, 1633339, 1628296, 1623712, 1619621, 1616001, 1612813, 1610009, 1607541, 1605368, 1603453, 1601764, 1600273, + 1598957, 1597793, 1596766, 1595858, 1595057, 1594351, 1593729, 1593182, 1592702, 1592282, 1591916, 1591598, 1591323, 1591086, + 1590884, 1590713, 1590569, 1590451, 1590355, 1590279, 1590222, 1590180, 1590153, 1590139, 1590137, 1590145, 1590162, 1590188, + 1590221, 1674670, 1672811, 1670405, 1667370, 1663642, 1659248, 1654335, 1649154, 1643988, 1639068, 1634535, 1630443, 1626793, + 1623556, 1620693, 1618163, 1615925, 1613945, 1612191, 1610638, 1609260, 1608037, 1606953, 1605991, 1605138, 1604382, 1603712, + 1603120, 1602597, 1602136, 1601731, 1601376, 1601066, 1600796, 1600562, 1600361, 1600189, 1600044, 1599923, 1599823, 1599743, + 1599680, 1599632, 1599599, 1599578, 1599569, 1599570, 1599581, 1599599, 1682356, 1680703, 1678547, 1675812, 1672437, 1668426, + 1663887, 1659027, 1654097, 1649323, 1644861, 1640787, 1637120, 1633846, 1630933, 1628346, 1626048, 1624008, 1622194, 1620580, + 1619144, 1617865, 1616726, 1615711, 1614808, 1614003, 1613287, 1612651, 1612086, 1611585, 1611141, 1610750, 1610405, 1610102, + 1609837, 1609606, 1609407, 1609235, 1609088, 1608965, 1608861, 1608777, 1608709, 1608656, 1608618, 1608591, 1608576, 1608570, + 1608574, 1689685, 1688219, 1686287, 1683823, 1680766, 1677106, 1672922, 1668377, 1663692, 1659083, 1654711, 1650673, 1647004, + 1643703, 1640750, 1638114, 1635763, 1633666, 1631795, 1630126, 1628634, 1627302, 1626111, 1625046, 1624094, 1623242, 1622482, + 1621803, 1621197, 1620656, 1620176, 1619748, 1619369, 1619034, 1618739, 1618479, 1618251, 1618053, 1617881, 1617734, 1617608, + 1617502, 1617414, 1617342, 1617284, 1617241, 1617209, 1617188, 1617177, 1696705, 1695406, 1693676, 1691455, 1688684, 1685346, + 1681492, 1677253, 1672819, 1668387, 1664125, 1660139, 1656482, 1653166, 1650181, 1647502, 1645103, 1642955, 1641032, 1639309, + 1637766, 1636382, 1635141, 1634027, 1633028, 1632132, 1631328, 1630607, 1629961, 1629382, 1628865, 1628402, 1627990, 1627623, + 1627297, 1627008, 1626753, 1626528, 1626332, 1626160, 1626012, 1625884, 1625776, 1625685, 1625609, 1625547, 1625499, 1625462, + 1625436, 1703434, 1702286, 1700739, 1698737, 1696226, 1693180, 1689634, 1685689, 1681505, 1677262, 1673124, 1669207, 1665576, + 1662256, 1659248, 1656535, 1654093, 1651899, 1649927, 1648155, 1646562, 1645129, 1643840, 1642680, 1641636, 1640696, 1639849, + 1639088, 1638403, 1637787, 1637233, 1636737, 1636291, 1635893, 1635537, 1635219, 1634937, 1634686, 1634465, 1634270, 1634099, + 1633950, 1633821, 1633710, 1633616, 1633537, 1633472, 1633419, 1633378, 1709882, 1708873, 1707490, 1705687, 1703410, 1700633, + 1697373, 1693709, 1689772, 1685726, 1681725, 1677890, 1674299, 1670988, 1667967, 1665226, 1662749, 1660513, 1658497, 1656679, + 1655040, 1653561, 1652227, 1651022, 1649934, 1648952, 1648065, 1647264, 1646542, 1645889, 1645301, 1644771, 1644293, 1643864, + 1643479, 1643133, 1642824, 1642547, 1642301, 1642083, 1641890, 1641719, 1641570, 1641440, 1641327, 1641231, 1641149, 1641080, + 1641024, 1716077, 1715193, 1713960, 1712336, 1710273, 1707740, 1704745, 1701346, 1697653, 1693806, 1689952, 1686214, 1682676, + 1679385, 1676360, 1673600, 1671093, 1668821, 1666765, 1664905, 1663222, 1661700, 1660323, 1659076, 1657946, 1656924, 1655998, + 1655159, 1654399, 1653711, 1653089, 1652526, 1652017, 1651558, 1651143, 1650770, 1650434, 1650132, 1649862, 1649620, 1649405, + 1649214, 1649044, 1648895, 1648764, 1648650, 1648551, 1648466, 1648395, 1722025, 1721255, 1720158, 1718698, 1716829, 1714520, + 1711771, 1708622, 1705164, 1701519, 1697821, 1694190, 1690717, 1687458, 1684439, 1681668, 1679138, 1676836, 1674744, 1672846, + 1671123, 1669560, 1668142, 1666855, 1665686, 1664625, 1663661, 1662786, 1661991, 1661269, 1660613, 1660018, 1659479, 1658990, + 1658547, 1658147, 1657785, 1657458, 1657164, 1656899, 1656662, 1656450, 1656260, 1656092, 1655942, 1655811, 1655695, 1655595, + 1655508, 1727761, 1727094, 1726122, 1724810, 1723118, 1721013, 1718490, 1715577, 1712344, 1708899, 1705362, 1701848, 1698451, + 1695233, 1692231, 1689456, 1686909, 1684582, 1682459, 1680526, 1678766, 1677166, 1675709, 1674383, 1673177, 1672078, 1671078, + 1670167, 1669337, 1668582, 1667894, 1667268, 1666699, 1666181, 1665710, 1665283, 1664895, 1664544, 1664226, 1663939, 1663680, + 1663447, 1663237, 1663050, 1662882, 1662733, 1662601, 1662484, 1662382, 1733281, 1732710, 1731851, 1730675, 1729143, 1727226, + 1724912, 1722219, 1719203, 1715955, 1712581, 1709192, 1705881, 1702716, 1699738, 1696968, 1694412, 1692065, 1689916, 1687952, + 1686159, 1684523, 1683031, 1681669, 1680426, 1679292, 1678257, 1677312, 1676449, 1675662, 1674943, 1674287, 1673688, 1673142, + 1672644, 1672191, 1671778, 1671402, 1671061, 1670752, 1670471, 1670217, 1669988, 1669781, 1669596, 1669429, 1669281, 1669148, + 1669031, 1738610, 1738127, 1737371, 1736319, 1734935, 1733189, 1731066, 1728579, 1725770, 1722713, 1719505, 1716246, 1713029, + 1709925, 1706981, 1704224, 1701665, 1699304, 1697133, 1695142, 1693319, 1691651, 1690125, 1688729, 1687453, 1686285, 1685216, + 1684238, 1683344, 1682525, 1681775, 1681090, 1680462, 1679889, 1679364, 1678885, 1678448, 1678048, 1677684, 1677352, 1677051, + 1676776, 1676528, 1676302, 1676099, 1675915, 1675750, 1675602, 1675469, 1743754, 1743350, 1742690, 1741751, 1740501, 1738912, + 1736968, 1734672, 1732059, 1729188, 1726144, 1723020, 1719904, 1716870, 1713968, 1711232, 1708676, 1706307, 1704119, 1702106, + 1700256, 1698559, 1697002, 1695574, 1694265, 1693065, 1691965, 1690956, 1690030, 1689181, 1688402, 1687688, 1687033, 1686432, + 1685882, 1685378, 1684916, 1684493, 1684106, 1683753, 1683430, 1683136, 1682868, 1682624, 1682402, 1682202, 1682020, 1681856, + 1681708, 1748726, 1748396, 1747823, 1746988, 1745861, 1744417, 1742636, 1740519, 1738090, 1735398, 1732517, 1729530, 1726521, + 1723563, 1720712, 1718003, 1715459, 1713087, 1710887, 1708855, 1706982, 1705259, 1703673, 1702216, 1700877, 1699646, 1698515, + 1697476, 1696521, 1695643, 1694835, 1694093, 1693411, 1692785, 1692209, 1691680, 1691194, 1690749, 1690340, 1689965, 1689622, + 1689308, 1689020, 1688758, 1688519, 1688301, 1688103, 1687923, 1687761, 1753530, 1753268, 1752775, 1752035, 1751022, 1749711, + 1748081, 1746131, 1743875, 1741356, 1738634, 1735785, 1732887, 1730013, 1727219, 1724546, 1722018, 1719650, 1717443, 1715397, + 1713505, 1711758, 1710147, 1708662, 1707295, 1706036, 1704876, 1703808, 1702824, 1701918, 1701083, 1700315, 1699607, 1698954, + 1698354, 1697801, 1697292, 1696824, 1696394, 1695998, 1695634, 1695301, 1694994, 1694714, 1694457, 1694223, 1694008, 1693813, + 1693636, 1758192, 1757991, 1757573, 1756920, 1756011, 1754821, 1753331, 1751535, 1749443, 1747087, 1744520, 1741808, 1739025, + 1736240, 1733509, 1730877, 1728373, 1726013, 1723805, 1721749, 1719840, 1718073, 1716439, 1714929, 1713535, 1712249, 1711062, + 1709966, 1708955, 1708022, 1707161, 1706366, 1705632, 1704955, 1704331, 1703754, 1703223, 1702733, 1702281, 1701864, 1701481, + 1701128, 1700803, 1700504, 1700230, 1699979, 1699749, 1699538, 1699345, 1762692, 1762549, 1762198, 1761627, 1760814, 1759736, + 1758376, 1756723, 1754785, 1752586, 1750169, 1747594, 1744928, 1742235, 1739574, 1736991, 1734516, 1732171, 1729966, 1727904, + 1725983, 1724199, 1722545, 1721013, 1719595, 1718284, 1717071, 1715949, 1714913, 1713954, 1713067, 1712248, 1711490, 1710789, + 1710141, 1709542, 1708988, 1708476, 1708003, 1707567, 1707164, 1706792, 1706449, 1706133, 1705842, 1705574, 1705328, 1705102, + 1704894, 1767066, 1766976, 1766688, 1766191, 1765466, 1764492, 1763251, 1761732, 1759937, 1757886, 1755615, 1753174, 1750624, + 1748028, 1745441, 1742911, 1740472, 1738146, 1735949, 1733886, 1731956, 1730158, 1728486, 1726934, 1725494, 1724159, 1722922, + 1721776, 1720715, 1719731, 1718820, 1717976, 1717194, 1716470, 1715800, 1715178, 1714603, 1714070, 1713577, 1713120, 1712698, + 1712308, 1711947, 1711613, 1711305, 1711021, 1710759, 1710518, 1710295, 1771305, 1771264, 1771035, 1770607, 1769963, 1769085, + 1767954, 1766559, 1764899, 1762989, 1760856, 1758547, 1756114, 1753616, 1751108, 1748636, 1746237, 1743937, 1741753, 1739692, + 1737758, 1735949, 1734263, 1732693, 1731233, 1729876, 1728617, 1727448, 1726363, 1725356, 1724421, 1723554, 1722750, 1722003, + 1721310, 1720667, 1720071, 1719518, 1719005, 1718529, 1718087, 1717679, 1717300, 1716949, 1716625, 1716324, 1716047, 1715790, + 1715554, 1775412, 1775417, 1775241, 1774877, 1774309, 1773520, 1772491, 1771212, 1769678, 1767900, 1765902, 1763720, 1761404, + 1759006, 1756580, 1754171, 1751818, 1749548, 1747381, 1745327, 1743392, 1741577, 1739878, 1738293, 1736815, 1735440, 1734160, + 1732969, 1731862, 1730833, 1729876, 1728987, 1728161, 1727392, 1726678, 1726015, 1725398, 1724825, 1724292, 1723797, 1723338, + 1722911, 1722515, 1722147, 1721806, 1721490, 1721197, 1720926, 1720675, 1779413, 1779459, 1779333, 1779028, 1778529, 1777822, + 1776888, 1775716, 1774300, 1772647, 1770776, 1768718, 1766516, 1764219, 1761877, 1759535, 1757231, 1754996, 1752851, 1750808, + 1748876, 1747056, 1745349, 1743751, 1742257, 1740864, 1739565, 1738354, 1737226, 1736176, 1735198, 1734287, 1733440, 1732650, + 1731916, 1731232, 1730595, 1730002, 1729451, 1728937, 1728460, 1728015, 1727602, 1727218, 1726861, 1726529, 1726221, 1725935, + 1725670, 1783296, 1783381, 1783301, 1783051, 1782617, 1781985, 1781139, 1780067, 1778762, 1777227, 1775477, 1773539, 1771449, + 1769253, 1766996, 1764724, 1762474, 1760278, 1758159, 1756131, 1754205, 1752385, 1750672, 1749064, 1747557, 1746148, 1744831, + 1743602, 1742455, 1741385, 1740387, 1739456, 1738588, 1737778, 1737024, 1736320, 1735664, 1735052, 1734482, 1733951, 1733456, + 1732994, 1732564, 1732164, 1731791, 1731444, 1731121, 1730821, 1730541, 1787076, 1787197, 1787160, 1786960, 1786586, 1786025, + 1785260, 1784281, 1783079, 1781655, 1780021, 1778197, 1776217, 1774121, 1771951, 1769751, 1767559, 1765406, 1763316, 1761308, + 1759392, 1757574, 1755857, 1754241, 1752724, 1751301, 1749968, 1748722, 1747557, 1746468, 1745451, 1744501, 1743613, 1742785, + 1742011, 1741288, 1740613, 1739983, 1739395, 1738846, 1738333, 1737855, 1737409, 1736992, 1736604, 1736241, 1735904, 1735589, + 1735296, 1790755, 1790910, 1790912, 1790759, 1790441, 1789944, 1789256, 1788363, 1787257, 1785938, 1784413, 1782699, 1780826, + 1778829, 1776747, 1774621, 1772488, 1770381, 1768326, 1766340, 1764437, 1762625, 1760908, 1759287, 1757761, 1756326, 1754980, + 1753718, 1752536, 1751430, 1750395, 1749426, 1748520, 1747673, 1746880, 1746139, 1745447, 1744799, 1744193, 1743627, 1743097, + 1742602, 1742140, 1741708, 1741304, 1740927, 1740575, 1740246, 1739939, 1794334, 1794519, 1794559, 1794449, 1794183, 1793747, + 1793129, 1792316, 1791301, 1790080, 1788659, 1787051, 1785281, 1783381, 1781387, 1779336, 1777266, 1775209, 1773190, 1771231, + 1769345, 1767542, 1765828, 1764204, 1762671, 1761226, 1759868, 1758593, 1757396, 1756273, 1755221, 1754235, 1753312, 1752447, + 1751637, 1750878, 1750168, 1749503, 1748880, 1748297, 1747751, 1747240, 1746762, 1746314, 1745896, 1745504, 1745138, 1744795, + 1744475, 1797827, 1798041, 1798114, 1798045, 1797826, 1797447, 1796894, 1796157, 1795226, 1794097, 1792774, 1791267, 1789597, + 1787792, 1785884, 1783910, 1781905, 1779899, 1777921, 1775991, 1774125, 1772334, 1770625, 1769001, 1767463, 1766011, 1764643, + 1763355, 1762144, 1761006, 1759939, 1758936, 1757996, 1757114, 1756287, 1755511, 1754784, 1754102, 1753463, 1752864, 1752302, + 1751775, 1751282, 1750819, 1750386, 1749980, 1749599, 1749243, 1748910, 1801221, 1801462, 1801568, 1801536, 1801362, 1801036, + 1800544, 1799877, 1799025, 1797983, 1796753, 1795342, 1793769, 1792056, 1790235, 1788338, 1786399, 1784448, 1782512, 1780615, + 1778772, 1776996, 1775295, 1773674, 1772134, 1770677, 1769300, 1768001, 1766778, 1765627, 1764545, 1763527, 1762571, 1761674, + 1760830, 1760039, 1759295, 1758597, 1757942, 1757327, 1756750, 1756208, 1755699, 1755222, 1754774, 1754354, 1753960, 1753591, + 1753244, 1804531, 1804798, 1804933, 1804937, 1804805, 1804527, 1804093, 1803491, 1802713, 1801753, 1800610, 1799291, 1797810, + 1796188, 1794452, 1792632, 1790759, 1788865, 1786975, 1785113, 1783296, 1781538, 1779848, 1778232, 1776693, 1775232, 1773848, + 1772541, 1771307, 1770143, 1769048, 1768016, 1767046, 1766133, 1765274, 1764467, 1763708, 1762994, 1762324, 1761693, 1761101, + 1760544, 1760021, 1759530, 1759068, 1758634, 1758227, 1757844, 1757485, 1807773, 1808062, 1808225, 1808262, 1808168, 1807935, + 1807554, 1807013, 1806304, 1805420, 1804360, 1803128, 1801736, 1800201, 1798548, 1796804, 1795000, 1793163, 1791321, 1789496, + 1787708, 1785970, 1784293, 1782684, 1781148, 1779685, 1778297, 1776982, 1775738, 1774564, 1773456, 1772411, 1771426, 1770499, + 1769626, 1768804, 1768030, 1767301, 1766616, 1765970, 1765363, 1764792, 1764255, 1763749, 1763274, 1762826, 1762406, 1762010, + 1761638, 1810918, 1811229, 1811418, 1811485, 1811428, 1811238, 1810907, 1810423, 1809779, 1808968, 1807986, 1806837, 1805530, + 1804080, 1802509, 1800841, 1799104, 1797327, 1795534, 1793750, 1791993, 1790278, 1788618, 1787019, 1785487, 1784025, 1782634, + 1781313, 1780062, 1778878, 1777759, 1776703, 1775705, 1774765, 1773878, 1773042, 1772253, 1771511, 1770811, 1770152, 1769531, + 1768946, 1768394, 1767875, 1767386, 1766926, 1766493, 1766085, 1765701, 1814010, 1814341, 1814554, 1814650, 1814626, 1814475, + 1814190, 1813760, 1813176, 1812432, 1811524, 1810453, 1809227, 1807859, 1806366, 1804773, 1803104, 1801386, 1799645, 1797902, + 1796178, 1794489, 1792847, 1791260, 1789735, 1788275, 1786883, 1785558, 1784300, 1783108, 1781979, 1780911, 1779902, 1778948, + 1778048, 1777199, 1776397, 1775640, 1774927, 1774253, 1773619, 1773020, 1772455, 1771923, 1771421, 1770947, 1770501, 1770081, + 1769684, 1817022, 1817371, 1817606, 1817729, 1817736, 1817623, 1817381, 1817001, 1816474, 1815793, 1814954, 1813958, 1812810, + 1811520, 1810105, 1808585, 1806984, 1805326, 1803637, 1801938, 1800250, 1798588, 1796966, 1795394, 1793877, 1792422, 1791030, + 1789703, 1788441, 1787241, 1786104, 1785026, 1784006, 1783041, 1782129, 1781266, 1780452, 1779682, 1778955, 1778269, 1777621, + 1777009, 1776431, 1775886, 1775371, 1774885, 1774427, 1773994, 1773586, 1819967, 1820334, 1820590, 1820737, 1820774, 1820696, + 1820494, 1820160, 1819686, 1819065, 1818293, 1817367, 1816293, 1815078, 1813738, 1812289, 1810755, 1809158, 1807522, 1805869, + 1804217, 1802585, 1800986, 1799430, 1797925, 1796476, 1795087, 1793759, 1792492, 1791287, 1790143, 1789056, 1788026, 1787050, + 1786127, 1785252, 1784425, 1783643, 1782904, 1782205, 1781544, 1780919, 1780329, 1779771, 1779244, 1778746, 1778275, 1777830, + 1777411, 1822832, 1823215, 1823491, 1823662, 1823727, 1823681, 1823517, 1823228, 1822804, 1822239, 1821529, 1820671, 1819667, + 1818525, 1817257, 1815880, 1814412, 1812876, 1811293, 1809686, 1808074, 1806474, 1804899, 1803362, 1801870, 1800430, 1799045, + 1797718, 1796450, 1795241, 1794090, 1792996, 1791957, 1790972, 1790038, 1789153, 1788314, 1787520, 1786769, 1786058, 1785385, + 1784748, 1784145, 1783575, 1783036, 1782526, 1782044, 1781588, 1781157, 1825648, 1826046, 1826340, 1826532, 1826623, 1826607, + 1826479, 1826231, 1825854, 1825342, 1824690, 1823895, 1822958, 1821886, 1820688, 1819379, 1817976, 1816500, 1814972, 1813412, + 1811840, 1810273, 1808725, 1807208, 1805731, 1804301, 1802922, 1801597, 1800329, 1799117, 1797961, 1796861, 1795814, 1794820, + 1793876, 1792980, 1792131, 1791326, 1790563, 1789840, 1789155, 1788507, 1787892, 1787311, 1786760, 1786238, 1785745, 1785277, + 1784835, 1828399, 1828811, 1829122, 1829335, 1829449, 1829462, 1829367, 1829157, 1828825, 1828363, 1827766, 1827031, 1826158, + 1825152, 1824022, 1822779, 1821440, 1820024, 1818551, 1817039, 1815509, 1813976, 1812456, 1810962, 1809501, 1808083, 1806711, + 1805391, 1804124, 1802910, 1801751, 1800645, 1799592, 1798589, 1797637, 1796732, 1795872, 1795056, 1794283, 1793549, 1792853, + 1792193, 1791567, 1790974, 1790412, 1789879, 1789374, 1788896, 1788443, 1831102, 1831527, 1831853, 1832085, 1832222, 1832261, + 1832198, 1832024, 1831732, 1831317, 1830771, 1830093, 1829281, 1828339, 1827273, 1826095, 1824818, 1823461, 1822042, 1820579, + 1819090, 1817594, 1816104, 1814633, 1813190, 1811785, 1810423, 1809108, 1807843, 1806629, 1805467, 1804357, 1803298, 1802289, + 1801328, 1800414, 1799545, 1798719, 1797935, 1797191, 1796484, 1795813, 1795176, 1794572, 1793999, 1793455, 1792939, 1792450, + 1791987, 1833741, 1834178, 1834520, 1834769, 1834927, 1834991, 1834957, 1834817, 1834564, 1834192, 1833696, 1833072, 1832318, + 1831436, 1830433, 1829317, 1828102, 1826803, 1825437, 1824023, 1822578, 1821118, 1819659, 1818214, 1816791, 1815402, 1814050, + 1812742, 1811481, 1810268, 1809105, 1807992, 1806928, 1805913, 1804945, 1804023, 1803145, 1802310, 1801516, 1800762, 1800044, + 1799363, 1798716, 1798101, 1797517, 1796963, 1796437, 1795938, 1795463, 1836333, 1836781, 1837136, 1837402, 1837580, 1837668, + 1837660, 1837552, 1837336, 1837005, 1836555, 1835981, 1835282, 1834458, 1833515, 1832459, 1831304, 1830062, 1828750, 1827384, + 1825983, 1824561, 1823134, 1821715, 1820315, 1818941, 1817602, 1816303, 1815047, 1813836, 1812673, 1811558, 1810490, 1809470, + 1808495, 1807566, 1806680, 1805837, 1805033, 1804269, 1803542, 1802851, 1802193, 1801568, 1800975, 1800410, 1799874, 1799364, + 1798880, 1838861, 1839320, 1839689, 1839970, 1840167, 1840276, 1840295, 1840216, 1840034, 1839743, 1839337, 1838811, 1838164, + 1837396, 1836510, 1835513, 1834415, 1833229, 1831970, 1830654, 1829297, 1827914, 1826521, 1825129, 1823752, 1822397, 1821071, + 1819782, 1818533, 1817326, 1816164, 1815048, 1813978, 1812953, 1811973, 1811037, 1810145, 1809293, 1808481, 1807708, 1806972, + 1806271, 1805604, 1804970, 1804366, 1803792, 1803245, 1802726, 1802232, 1841343, 1841812, 1842192, 1842488, 1842702, 1842832, + 1842875, 1842825, 1842675, 1842421, 1842056, 1841576, 1840978, 1840262, 1839431, 1838491, 1837449, 1836318, 1835112, 1833844, + 1832531, 1831188, 1829829, 1828467, 1827113, 1825778, 1824468, 1823190, 1821948, 1820747, 1819587, 1818471, 1817399, 1816371, + 1815387, 1814446, 1813546, 1812688, 1811868, 1811087, 1810342, 1809632, 1808956, 1808312, 1807699, 1807115, 1806559, 1806030, + 1805526, 1843778, 1844256, 1844648, 1844958, 1845188, 1845337, 1845403, 1845379, 1845260, 1845040, 1844714, 1844277, 1843726, + 1843061, 1842282, 1841396, 1840409, 1839331, 1838176, 1836957, 1835688, 1834385, 1833061, 1831729, 1830401, 1829086, 1827793, + 1826527, 1825295, 1824100, 1822944, 1821829, 1820756, 1819726, 1818738, 1817792, 1816887, 1816021, 1815195, 1814406, 1813652, + 1812934, 1812249, 1811596, 1810974, 1810381, 1809816, 1809277, 1808765, 1846168, 1846654, 1847056, 1847379, 1847624, 1847792, + 1847878, 1847879, 1847789, 1847602, 1847312, 1846916, 1846410, 1845792, 1845065, 1844230, 1843296, 1842270, 1841166, 1839994, + 1838770, 1837507, 1836218, 1834917, 1833616, 1832323, 1831047, 1829796, 1828574, 1827386, 1826234, 1825122, 1824050, 1823018, + 1822027, 1821077, 1820167, 1819295, 1818462, 1817666, 1816905, 1816179, 1815485, 1814824, 1814193, 1813591, 1813017, 1812470, + 1811948, 1848511, 1849005, 1849417, 1849752, 1850011, 1850196, 1850303, 1850327, 1850264, 1850107, 1849852, 1849495, 1849031, + 1848459, 1847779, 1846995, 1846112, 1845137, 1844082, 1842957, 1841777, 1840554, 1839302, 1838033, 1836759, 1835489, 1834232, + 1832995, 1831785, 1830606, 1829460, 1828351, 1827280, 1826248, 1825255, 1824302, 1823387, 1822511, 1821672, 1820869, 1820101, + 1819367, 1818666, 1817996, 1817357, 1816746, 1816164, 1815608, 1815078, 1850808, 1851310, 1851731, 1852077, 1852350, 1852551, + 1852676, 1852723, 1852685, 1852557, 1852336, 1852015, 1851591, 1851062, 1850429, 1849693, 1848859, 1847933, 1846926, 1845848, + 1844712, 1843529, 1842314, 1841077, 1839831, 1838585, 1837348, 1836128, 1834931, 1833761, 1832622, 1831518, 1830449, 1829417, + 1828424, 1827468, 1826550, 1825668, 1824824, 1824015, 1823241, 1822500, 1821791, 1821114, 1820467, 1819848, 1819257, 1818693, + 1818155, 1853060, 1853569, 1853999, 1854355, 1854641, 1854857, 1855000, 1855067, 1855053, 1854953, 1854763, 1854476, 1854091, + 1853604, 1853015, 1852325, 1851538, 1850660, 1849701, 1848669, 1847575, 1846433, 1845255, 1844051, 1842834, 1841612, 1840397, + 1839194, 1838010, 1836851, 1835721, 1834622, 1833557, 1832526, 1831532, 1830575, 1829654, 1828769, 1827920, 1827106, 1826325, + 1825578, 1824862, 1824178, 1823523, 1822897, 1822299, 1821726, 1821180, 1855285, 1855799, 1856237, 1856603, 1856901, 1857130, + 1857290, 1857377, 1857385, 1857311, 1857150, 1856896, 1856546, 1856099, 1855551, 1854905, 1854164, 1853333, 1852419, 1851432, + 1850381, 1849279, 1848137, 1846967, 1845779, 1844583, 1843389, 1842204, 1841036, 1839888, 1838767, 1837674, 1836613, 1835585, + 1834591, 1833633, 1832710, 1831822, 1830968, 1830149, 1829363, 1828610, 1827888, 1827196, 1826534, 1825901, 1825295, 1824715, + 1824160, 1857464, 1857984, 1858429, 1858804, 1859113, 1859356, 1859532, 1859636, 1859666, 1859617, 1859483, 1859260, 1858945, + 1858534, 1858027, 1857424, 1856726, 1855940, 1855071, 1854127, 1853119, 1852056, 1850951, 1849814, 1848656, 1847487, 1846316, + 1845150, 1843997, 1842863, 1841751, 1840666, 1839610, 1838585, 1837593, 1836634, 1835710, 1834819, 1833962, 1833139, 1832348, + 1831589, 1830861, 1830163, 1829494, 1828854, 1828240, 1827653, 1827091, 1859597, 1860123, 1860575, 1860959, 1861278, 1861534, + 1861724, 1861846, 1861897, 1861870, 1861762, 1861569, 1861287, 1860912, 1860443, 1859880, 1859226, 1858482, 1857657, 1856756, + 1855789, 1854766, 1853698, 1852595, 1851467, 1850325, 1849177, 1848032, 1846896, 1845775, 1844674, 1843597, 1842547, 1841527, + 1840537, 1839579, 1838654, 1837762, 1836902, 1836075, 1835280, 1834516, 1833782, 1833078, 1832403, 1831756, 1831136, 1830542, + 1829973, 1861685, 1862216, 1862675, 1863067, 1863396, 1863664, 1863868, 1864007, 1864076, 1864072, 1863989, 1863824, 1863573, + 1863232, 1862800, 1862277, 1861663, 1860962, 1860178, 1859320, 1858394, 1857410, 1856379, 1855309, 1854213, 1853098, 1851975, + 1850850, 1849732, 1848626, 1847537, 1846469, 1845427, 1844411, 1843424, 1842468, 1841543, 1840650, 1839788, 1838958, 1838159, + 1837391, 1836652, 1835943, 1835263, 1834610, 1833983, 1833382, 1832807, 136533, 136533, 136533, 136533, 136533, 136533, + 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 135924, 125277, 108081, 91368, 77552, + 66660, 58112, 51334, 45876, 41412, 37706, 34587, 31931, 29644, 27657, 25914, 24375, 23005, 21780, + 20677, 19679, 18772, 17944, 17186, 16489, 15845, 15250, 14698, 14184, 13704, 13256, 12836, 12442, + 12071, 11721, 11392, 11080, 10784, 10504, 10238, 9986, 9745, 9516, 9297, 9088, 8888, 8697, + 8513, 8338, 8169, 8007, 7852, 7702, 7558, 7419, 7285, 7156, 7031, 6911, 6795, 6682, + 6574, 6468, 6366, 6267, 6172, 6079, 5989, 5901, 5816, 5733, 5653, 5575, 5499, 5425, + 5353, 5283, 5215, 5148, 5083, 5020, 4959 +]; +/// PMOS log-domain current table, corner mos_tt, IHP-Open-PDK 21133f21, L 0.45 um, 27 C, at the source-to-bulk voltage Vsb = 0.75 V (slice 3): the tag word (4294967295), then the 4753 words ix * 49 + iy of log2(Id / F) in 1/65536 octave over 2^-8 of a linear-table word (1.164 pA), then the 97 rv words; the format of TT_LG_P (deck psp103_idpa_vsb_tt.cir, blocks lam_p_3 and r_3). +pub const VSB_P3 : [4851]u32 = [ + 4294967295, 0, 23395, 4877, 3459, 6317, 9404, 13079, 16922, 20792, 24650, 28490, 32312, 36121, + 39920, 43713, 47501, 51287, 55072, 58857, 62643, 66431, 70220, 74010, 77801, 81592, 85384, 89178, + 92974, 96779, 100602, 104458, 108375, 112394, 116577, 121260, 126147, 131586, 137771, 144922, 153274, 163045, + 174411, 187468, 202219, 218562, 236312, 255222, 275021, 295442, 0, 27419, 9963, 9004, 12249, 15189, + 18593, 22184, 25809, 29429, 33036, 36632, 40221, 43806, 47390, 50977, 54567, 58164, 61766, 65376, + 68992, 72616, 76248, 79885, 83529, 87179, 90835, 94497, 98170, 101859, 105577, 109344, 113193, 117174, + 121360, 126133, 131160, 136828, 143344, 150937, 159839, 170251, 182317, 196092, 211529, 228486, 246745, 266043, + 286109, 0, 35086, 18954, 18107, 20818, 24451, 27506, 30751, 34044, 37340, 40630, 43916, 47203, + 50493, 53791, 57099, 60418, 63751, 67097, 70457, 73833, 77223, 80627, 84045, 87476, 90920, 94377, + 97846, 101329, 104831, 108360, 111931, 115570, 119315, 123226, 127623, 132229, 137375, 143253, 150079, 158087, + 167499, 178495, 191183, 205576, 221584, 239030, 257673, 277244, 0, 47493, 33211, 32180, 35264, 38271, + 40984, 43789, 46658, 49539, 52423, 55311, 58206, 61114, 64037, 66977, 69937, 72917, 75920, 78944, + 81992, 85062, 88154, 91269, 94405, 97561, 100737, 103934, 107151, 110391, 113660, 116968, 120334, 123788, + 127376, 131166, 135512, 140112, 145327, 151358, 158430, 166773, 176598, 188061, 201234, 216092, 232511, 250286, + 269163, 1319, 65636, 53702, 52364, 54363, 57548, 60026, 62339, 64716, 67115, 69523, 71940, 74372, + 76821, 79291, 81785, 84304, 86850, 89425, 92028, 94661, 97324, 100016, 102737, 105487, 108266, 111072, + 113906, 116767, 119658, 122580, 125542, 128556, 131645, 134842, 138201, 142002, 146010, 150520, 155710, 161788, + 168980, 177514, 187582, 199319, 212769, 227876, 244491, 262393, 47467, 90146, 80581, 79029, 80309, 82854, + 85089, 86959, 88829, 90727, 92637, 94559, 96497, 98454, 100434, 102440, 104473, 106536, 108630, 110755, + 112913, 115105, 117330, 119589, 121881, 124206, 126565, 128957, 131381, 133839, 136333, 138867, 141449, 144096, + 146831, 149693, 152739, 156260, 160019, 164322, 169349, 175310, 182432, 190932, 200993, 212731, 226171, 241240, + 257777, 94120, 120826, 113280, 111655, 112261, 113908, 115927, 117481, 118897, 120334, 121784, 123244, 124717, + 126207, 127717, 129251, 130810, 132396, 134010, 135655, 137331, 139039, 140779, 142553, 144361, 146202, 148077, + 149987, 151931, 153909, 155924, 157978, 160076, 162229, 164452, 166774, 169232, 172038, 175027, 178426, 182383, + 187078, 192718, 199523, 207705, 217437, 228829, 241901, 256579, 141096, 156759, 150760, 149085, 149209, 150277, + 151779, 153075, 154151, 155212, 156282, 157359, 158444, 159541, 160652, 161781, 162930, 164100, 165293, 166510, + 167753, 169023, 170321, 171647, 173002, 174387, 175803, 177249, 178726, 180235, 181776, 183352, 184966, 186625, + 188338, 190122, 192005, 194026, 196381, 198924, 201868, 205354, 209552, 214662, 220892, 228447, 237499, 248161, + 260465, 188279, 196697, 191786, 190049, 189879, 190512, 191584, 192601, 193464, 194248, 195036, 195825, 196617, + 197415, 198222, 199039, 199870, 200715, 201577, 202455, 203353, 204270, 205207, 206166, 207148, 208152, 209180, + 210232, 211309, 212412, 213541, 214697, 215883, 217102, 218361, 219670, 221045, 222511, 224194, 226002, 228077, + 230518, 233453, 237039, 241456, 246899, 253564, 261622, 271199, 235595, 239440, 235248, 233459, 233095, 233454, + 234143, 234975, 235689, 236296, 236887, 237476, 238064, 238653, 239245, 239843, 240448, 241061, 241684, 242318, + 242964, 243623, 244295, 244982, 245685, 246403, 247137, 247889, 248659, 249447, 250254, 251080, 251928, 252799, + 253698, 254628, 255602, 256631, 257740, 259031, 260435, 262069, 264017, 266391, 269323, 272974, 277516, 283130, + 289986, 283003, 284037, 280300, 278472, 277976, 278178, 278668, 279261, 279837, 280389, 280853, 281311, 281765, + 282216, 282666, 283118, 283572, 284030, 284493, 284962, 285437, 285920, 286411, 286912, 287421, 287941, 288471, + 289012, 289565, 290129, 290707, 291297, 291902, 292522, 293158, 293816, 294498, 295215, 295977, 296844, 297778, + 298845, 300100, 301612, 303470, 305785, 308687, 312326, 316861, 330477, 329814, 326357, 324504, 323921, 324027, + 324399, 324868, 325346, 325785, 326204, 326578, 326947, 327310, 327670, 328029, 328387, 328745, 329106, 329468, + 329834, 330203, 330577, 330955, 331339, 331729, 332124, 332526, 332935, 333352, 333776, 334208, 334649, 335099, + 335560, 336032, 336520, 337026, 337558, 338126, 338775, 339476, 340283, 341237, 342391, 343815, 345596, 347837, + 350659, 378002, 376328, 373039, 371170, 370533, 370577, 370885, 371274, 371681, 372066, 372419, 372760, 373075, + 373385, 373689, 373990, 374288, 374585, 374881, 375178, 375475, 375773, 376073, 376375, 376680, 376987, 377298, + 377612, 377930, 378252, 378578, 378909, 379245, 379586, 379933, 380287, 380649, 381022, 381409, 381814, 382263, + 382741, 383275, 383889, 384614, 385491, 386572, 387922, 389619, 425566, 423298, 420109, 418230, 417560, 417566, + 417835, 418179, 418537, 418885, 419207, 419518, 419801, 420077, 420347, 420613, 420875, 421135, 421392, 421648, + 421904, 422158, 422413, 422669, 422925, 423182, 423440, 423699, 423961, 424224, 424490, 424758, 425028, 425302, + 425579, 425859, 426144, 426434, 426731, 427038, 427360, 427713, 428088, 428504, 428981, 429539, 430209, 431030, + 432048, 473164, 470550, 467421, 465536, 464846, 464828, 465073, 465393, 465722, 466043, 466345, 466627, 466895, + 467158, 467408, 467652, 467892, 468129, 468363, 468595, 468825, 469054, 469282, 469509, 469735, 469962, 470188, + 470415, 470642, 470870, 471099, 471329, 471560, 471792, 472025, 472261, 472498, 472739, 472982, 473231, 473487, + 473759, 474042, 474347, 474683, 475062, 475502, 476022, 476650, 521210, 518218, 515011, 513058, 512323, 512276, + 512500, 512802, 513113, 513416, 513704, 513975, 514232, 514478, 514720, 514953, 515180, 515403, 515624, 515841, + 516056, 516269, 516481, 516691, 516900, 517108, 517316, 517523, 517730, 517936, 518143, 518350, 518557, 518764, + 518972, 519180, 519389, 519600, 519812, 520026, 520244, 520467, 520701, 520944, 521202, 521482, 521794, 522149, + 522562, 576565, 570255, 565000, 561842, 560461, 560089, 560156, 560382, 560656, 560935, 561209, 561470, 561720, + 561959, 562191, 562416, 562636, 562854, 563066, 563275, 563482, 563686, 563888, 564088, 564287, 564484, 564681, + 564876, 565071, 565265, 565458, 565651, 565844, 566037, 566229, 566422, 566614, 566807, 567000, 567195, 567390, + 567588, 567792, 567999, 568215, 568441, 568684, 568949, 569245, 638178, 626525, 617677, 612255, 609551, 608452, + 608135, 608167, 608342, 608572, 608819, 609066, 609307, 609540, 609767, 609988, 610204, 610416, 610624, 610828, + 611031, 611230, 611426, 611621, 611814, 612005, 612195, 612384, 612571, 612758, 612944, 613129, 613313, 613497, + 613681, 613864, 614046, 614229, 614411, 614594, 614777, 614961, 615146, 615336, 615528, 615725, 615931, 616148, + 616381, 701710, 684778, 672106, 664059, 659656, 657509, 656573, 656249, 656226, 656345, 656531, 656745, 656968, + 657192, 657412, 657629, 657842, 658051, 658256, 658458, 658656, 658853, 659046, 659238, 659428, 659616, 659803, + 659988, 660171, 660354, 660535, 660716, 660896, 661075, 661253, 661431, 661608, 661784, 661961, 662137, 662312, + 662488, 662665, 662842, 663022, 663204, 663390, 663581, 663781, 764834, 743477, 727394, 716825, 710641, 707285, + 705554, 704722, 704382, 704308, 704376, 704520, 704702, 704901, 705108, 705316, 705523, 705729, 705932, 706132, + 706329, 706524, 706716, 706906, 707095, 707281, 707466, 707649, 707831, 708012, 708191, 708369, 708546, 708723, + 708898, 709073, 709247, 709421, 709593, 709766, 709938, 710109, 710281, 710453, 710626, 710799, 710974, 711152, + 711334, 826706, 801843, 782913, 770116, 762250, 757662, 755055, 753614, 752858, 752506, 752391, 752416, 752521, + 752672, 752848, 753037, 753233, 753431, 753629, 753827, 754022, 754216, 754408, 754597, 754785, 754971, 755155, + 755338, 755519, 755699, 755877, 756055, 756231, 756407, 756581, 756755, 756927, 757099, 757271, 757441, 757611, + 757781, 757950, 758119, 758288, 758458, 758628, 758799, 758972, 887125, 859540, 838290, 823591, 814216, 808461, + 804971, 802875, 801643, 800949, 800592, 800448, 800437, 800508, 800631, 800784, 800957, 801140, 801328, 801520, + 801712, 801903, 802094, 802283, 802471, 802657, 802841, 803025, 803206, 803386, 803565, 803743, 803919, 804095, + 804269, 804443, 804616, 804787, 804958, 805129, 805299, 805468, 805636, 805804, 805972, 806140, 806307, 806475, + 806644, 946084, 916419, 893295, 876998, 866304, 859486, 855154, 852403, 850668, 849594, 848955, 848602, 848438, + 848399, 848443, 848542, 848675, 848832, 849002, 849182, 849366, 849553, 849741, 849929, 850117, 850303, 850488, + 850673, 850855, 851037, 851217, 851396, 851574, 851751, 851926, 852101, 852275, 852447, 852619, 852791, 852961, + 853131, 853300, 853468, 853636, 853804, 853971, 854138, 854306, 1003589, 972391, 947771, 930138, 918306, 910541, + 905433, 902055, 899821, 898354, 897408, 896819, 896476, 896302, 896245, 896269, 896348, 896465, 896607, 896767, + 896938, 897117, 897299, 897484, 897671, 897857, 898044, 898229, 898414, 898598, 898780, 898962, 899142, 899321, + 899499, 899676, 899852, 900027, 900202, 900375, 900547, 900719, 900890, 901060, 901230, 901399, 901567, 901735, + 901903, 1059559, 1027343, 1001558, 982819, 970015, 961418, 955611, 951652, 948940, 947086, 945828, 944991, 944452, + 944125, 943950, 943883, 943894, 943959, 944064, 944197, 944349, 944514, 944688, 944868, 945052, 945238, 945425, + 945613, 945800, 945987, 946173, 946358, 946542, 946726, 946908, 947088, 947268, 947447, 947625, 947802, 947978, + 948153, 948327, 948501, 948673, 948845, 949017, 949188, 949358, 1113792, 1081089, 1054453, 1034816, 1021190, 1011875, + 1005450, 1000965, 997811, 995588, 994026, 992940, 992200, 991712, 991408, 991241, 991173, 991179, 991238, 991336, + 991464, 991611, 991774, 991947, 992127, 992312, 992500, 992690, 992881, 993073, 993264, 993454, 993644, 993833, + 994020, 994207, 994393, 994577, 994761, 994943, 995125, 995305, 995485, 995664, 995841, 996018, 996194, 996370, + 996544, 1165936, 1133333, 1106173, 1085836, 1071529, 1061604, 1054643, 1049694, 1046141, 1043578, 1041731, 1040406, 1039469, + 1038819, 1038385, 1038112, 1037960, 1037900, 1037909, 1037969, 1038068, 1038195, 1038344, 1038508, 1038684, 1038868, 1039057, + 1039250, 1039446, 1039643, 1039841, 1040039, 1040236, 1040433, 1040629, 1040824, 1041017, 1041210, 1041402, 1041592, 1041782, + 1041970, 1042157, 1042343, 1042528, 1042712, 1042895, 1043077, 1043258, 1215498, 1183655, 1156337, 1135500, 1120647, 1110214, + 1102799, 1097448, 1093545, 1090678, 1088571, 1087025, 1085901, 1085097, 1084534, 1084156, 1083920, 1083793, 1083749, 1083768, + 1083836, 1083942, 1084075, 1084230, 1084401, 1084583, 1084775, 1084972, 1085173, 1085378, 1085584, 1085790, 1085998, 1086204, + 1086411, 1086616, 1086820, 1087024, 1087226, 1087427, 1087626, 1087824, 1088021, 1088217, 1088411, 1088604, 1088796, 1088987, + 1089177, 1261933, 1231542, 1204480, 1183357, 1168088, 1157244, 1149450, 1143758, 1139551, 1136418, 1134078, 1132331, 1131036, + 1130085, 1129401, 1128922, 1128603, 1128408, 1128310, 1128288, 1128324, 1128406, 1128523, 1128667, 1128832, 1129013, 1129205, + 1129407, 1129614, 1129826, 1130042, 1130259, 1130476, 1130695, 1130913, 1131130, 1131346, 1131562, 1131776, 1131989, 1132200, + 1132410, 1132618, 1132825, 1133030, 1133234, 1133437, 1133638, 1133838, 1304755, 1276453, 1250109, 1228931, 1213371, 1202200, + 1194093, 1188113, 1183644, 1180277, 1177729, 1175800, 1174347, 1173260, 1172459, 1171882, 1171481, 1171219, 1171066, 1171000, + 1171001, 1171057, 1171154, 1171285, 1171441, 1171618, 1171810, 1172013, 1172225, 1172443, 1172666, 1172892, 1173120, 1173349, + 1173578, 1173807, 1174035, 1174262, 1174488, 1174713, 1174936, 1175157, 1175377, 1175595, 1175811, 1176026, 1176239, 1176450, + 1176660, 1343696, 1317954, 1292794, 1271813, 1256081, 1244654, 1236285, 1230055, 1225356, 1221778, 1219040, 1216942, 1215338, + 1214120, 1213206, 1212530, 1212046, 1211713, 1211500, 1211385, 1211347, 1211370, 1211443, 1211554, 1211697, 1211864, 1212049, + 1212250, 1212462, 1212682, 1212909, 1213140, 1213374, 1213611, 1213848, 1214085, 1214322, 1214559, 1214794, 1215028, 1215260, + 1215491, 1215720, 1215948, 1216173, 1216396, 1216618, 1216838, 1217055, 1378738, 1355789, 1332234, 1311717, 1295932, 1284306, + 1275711, 1269259, 1264347, 1260573, 1257655, 1255394, 1253644, 1252295, 1251264, 1250488, 1249914, 1249504, 1249225, 1249053, + 1248967, 1248951, 1248990, 1249074, 1249194, 1249344, 1249516, 1249706, 1249911, 1250126, 1250350, 1250581, 1250815, 1251053, + 1251293, 1251534, 1251775, 1252016, 1252256, 1252495, 1252733, 1252970, 1253204, 1253437, 1253667, 1253896, 1254123, 1254348, + 1254571, 1410110, 1389951, 1368310, 1348528, 1332813, 1321040, 1312245, 1305586, 1300474, 1296509, 1293415, 1290992, 1289094, + 1287611, 1286460, 1285575, 1284905, 1284409, 1284056, 1283818, 1283675, 1283608, 1283605, 1283652, 1283741, 1283863, 1284013, + 1284184, 1284373, 1284576, 1284789, 1285011, 1285239, 1285472, 1285708, 1285946, 1286185, 1286425, 1286665, 1286904, 1287142, + 1287378, 1287614, 1287847, 1288079, 1288309, 1288537, 1288763, 1288987, 1438162, 1420616, 1401056, 1382264, 1366755, 1354889, + 1345918, 1339063, 1333757, 1329607, 1326337, 1323751, 1321702, 1320082, 1318804, 1317805, 1317032, 1316444, 1316007, 1315694, + 1315485, 1315359, 1315303, 1315304, 1315352, 1315439, 1315557, 1315701, 1315866, 1316048, 1316243, 1316449, 1316663, 1316884, + 1317109, 1317338, 1317570, 1317803, 1318036, 1318270, 1318503, 1318736, 1318967, 1319197, 1319426, 1319653, 1319878, 1320101, + 1320322, 1463309, 1448107, 1430649, 1413058, 1397904, 1386008, 1376885, 1369846, 1364353, 1360020, 1356577, 1353827, 1351626, + 1349864, 1348456, 1347338, 1346455, 1345767, 1345240, 1344846, 1344562, 1344369, 1344253, 1344200, 1344200, 1344243, 1344322, + 1344431, 1344565, 1344718, 1344889, 1345072, 1345266, 1345469, 1345678, 1345892, 1346111, 1346331, 1346554, 1346778, 1347002, + 1347226, 1347449, 1347672, 1347894, 1348114, 1348333, 1348550, 1348766, 1485951, 1472790, 1457342, 1441098, 1426455, 1414605, + 1405362, 1398156, 1392482, 1387972, 1384357, 1381445, 1379091, 1377187, 1375647, 1374406, 1373411, 1372619, 1371996, 1371515, + 1371151, 1370886, 1370703, 1370590, 1370535, 1370529, 1370563, 1370631, 1370727, 1370847, 1370987, 1371143, 1371312, 1371491, + 1371679, 1371874, 1372075, 1372280, 1372487, 1372697, 1372909, 1373121, 1373333, 1373545, 1373757, 1373968, 1374178, 1374387, + 1374594, 1506443, 1495034, 1481432, 1466607, 1452621, 1440907, 1431587, 1424232, 1418390, 1413709, 1409928, 1406857, 1404353, + 1402307, 1400634, 1399270, 1398160, 1397262, 1396542, 1395970, 1395523, 1395181, 1394928, 1394751, 1394636, 1394576, 1394560, + 1394583, 1394638, 1394720, 1394825, 1394949, 1395088, 1395241, 1395405, 1395577, 1395756, 1395942, 1396131, 1396325, 1396520, + 1396718, 1396917, 1397116, 1397316, 1397515, 1397714, 1397913, 1398110, 1525096, 1515177, 1503226, 1489817, 1476615, 1465137, + 1455790, 1448312, 1442317, 1437475, 1433535, 1430310, 1427659, 1425474, 1423671, 1422184, 1420960, 1419956, 1419136, 1418473, + 1417941, 1417520, 1417195, 1416950, 1416774, 1416656, 1416588, 1416562, 1416573, 1416613, 1416680, 1416769, 1416877, 1417000, + 1417136, 1417283, 1417438, 1417602, 1417771, 1417945, 1418123, 1418304, 1418487, 1418672, 1418858, 1419045, 1419231, 1419418, + 1419604, 1542163, 1533510, 1523010, 1510960, 1498631, 1487492, 1478180, 1470612, 1464482, 1459491, 1455401, 1452029, 1449237, + 1446918, 1444988, 1443381, 1442044, 1440935, 1440017, 1439261, 1438643, 1438144, 1437744, 1437431, 1437191, 1437014, 1436892, + 1436816, 1436780, 1436777, 1436804, 1436856, 1436929, 1437020, 1437127, 1437246, 1437377, 1437516, 1437664, 1437817, 1437976, + 1438139, 1438305, 1438474, 1438644, 1438817, 1438990, 1439164, 1439337, 1557863, 1550287, 1541049, 1530266, 1518858, 1508156, + 1498947, 1491327, 1485084, 1479959, 1475728, 1472218, 1469291, 1466842, 1464789, 1463066, 1461620, 1460407, 1459392, 1458546, + 1457843, 1457264, 1456791, 1456408, 1456105, 1455868, 1455690, 1455562, 1455478, 1455431, 1455417, 1455430, 1455467, 1455525, + 1455601, 1455691, 1455795, 1455909, 1456033, 1456165, 1456303, 1456447, 1456595, 1456747, 1456902, 1457059, 1457217, 1457378, + 1457539, 1572381, 1565724, 1557579, 1547949, 1537474, 1527288, 1518254, 1510626, 1504296, 1499053, 1494694, 1491054, 1487999, + 1485427, 1483257, 1481421, 1479868, 1478555, 1477445, 1476510, 1475723, 1475066, 1474519, 1474068, 1473700, 1473404, 1473169, + 1472989, 1472856, 1472764, 1472707, 1472681, 1472682, 1472705, 1472749, 1472809, 1472885, 1472973, 1473073, 1473182, 1473298, + 1473422, 1473551, 1473685, 1473823, 1473965, 1474108, 1474254, 1474402, 1585854, 1579984, 1572786, 1564192, 1554628, 1545021, + 1536233, 1528646, 1522259, 1516917, 1512443, 1508683, 1505509, 1502820, 1500537, 1498594, 1496939, 1495529, 1494327, 1493305, + 1492437, 1491703, 1491084, 1490565, 1490133, 1489777, 1489487, 1489255, 1489073, 1488935, 1488835, 1488769, 1488732, 1488721, + 1488732, 1488762, 1488809, 1488871, 1488945, 1489030, 1489125, 1489228, 1489338, 1489453, 1489574, 1489699, 1489827, 1489959, + 1490093, 1598411, 1593219, 1586840, 1579170, 1570474, 1561483, 1553004, 1545510, 1539100, 1533680, 1529106, 1525236, 1521951, + 1519154, 1516764, 1514719, 1512966, 1511462, 1510171, 1509065, 1508118, 1507308, 1506619, 1506033, 1505539, 1505124, 1504779, + 1504494, 1504264, 1504080, 1503938, 1503831, 1503757, 1503710, 1503688, 1503687, 1503705, 1503739, 1503788, 1503849, 1503922, + 1504003, 1504093, 1504190, 1504293, 1504401, 1504514, 1504630, 1504750, 1610159, 1605554, 1599887, 1593035, 1585149, 1576789, + 1568675, 1561325, 1554926, 1549453, 1544794, 1540827, 1537440, 1534540, 1532050, 1529907, 1528061, 1526467, 1525092, 1523904, + 1522880, 1521997, 1521238, 1520588, 1520032, 1519559, 1519159, 1518824, 1518545, 1518315, 1518130, 1517984, 1517871, 1517789, + 1517734, 1517702, 1517690, 1517697, 1517720, 1517757, 1517806, 1517866, 1517935, 1518013, 1518098, 1518189, 1518286, 1518387, + 1518492, 1621189, 1617095, 1612047, 1605918, 1598779, 1591045, 1583336, 1576179, 1569830, 1564328, 1559603, 1555550, 1552070, + 1549075, 1546491, 1544257, 1542321, 1540642, 1539184, 1537919, 1536820, 1535867, 1535041, 1534326, 1533710, 1533180, 1532727, + 1532341, 1532014, 1531739, 1531512, 1531325, 1531175, 1531058, 1530969, 1530905, 1530864, 1530843, 1530840, 1530852, 1530878, + 1530916, 1530965, 1531023, 1531090, 1531163, 1531243, 1531329, 1531420, 1631565, 1627919, 1623413, 1617922, 1611465, 1604339, + 1597064, 1590143, 1583883, 1578380, 1573606, 1569482, 1565920, 1562838, 1560167, 1557846, 1555826, 1554065, 1552529, 1551189, + 1550018, 1548997, 1548106, 1547330, 1546655, 1546070, 1545564, 1545127, 1544754, 1544435, 1544165, 1543939, 1543752, 1543599, + 1543476, 1543382, 1543311, 1543262, 1543232, 1543220, 1543222, 1543238, 1543266, 1543305, 1543353, 1543409, 1543473, 1543543, + 1543618, 1641361, 1638108, 1634078, 1629151, 1623311, 1616767, 1609938, 1603290, 1597155, 1591680, 1586878, 1582697, 1579063, + 1575902, 1573150, 1570748, 1568649, 1566811, 1565200, 1563788, 1562548, 1561461, 1560507, 1559671, 1558939, 1558300, 1557742, + 1557257, 1556837, 1556475, 1556164, 1555898, 1555674, 1555486, 1555331, 1555204, 1555104, 1555027, 1554971, 1554934, 1554913, + 1554907, 1554914, 1554932, 1554962, 1555000, 1555047, 1555101, 1555162, 1650627, 1647721, 1644110, 1639684, 1634401, 1628403, + 1622024, 1615677, 1609702, 1604283, 1599475, 1595251, 1591557, 1588327, 1585501, 1583024, 1580850, 1578939, 1577257, 1575776, + 1574470, 1573319, 1572305, 1571411, 1570624, 1569932, 1569324, 1568792, 1568326, 1567921, 1567569, 1567265, 1567004, 1566781, + 1566593, 1566436, 1566306, 1566202, 1566119, 1566057, 1566012, 1565984, 1565970, 1565969, 1565979, 1565999, 1566029, 1566067, + 1566113, 1659417, 1656819, 1653579, 1649596, 1644815, 1639327, 1633390, 1627364, 1621577, 1616243, 1611450, 1607201, 1603458, + 1600168, 1597274, 1594728, 1592484, 1590504, 1588755, 1587208, 1585840, 1584628, 1583555, 1582605, 1581764, 1581021, 1580364, + 1579785, 1579276, 1578828, 1578436, 1578094, 1577797, 1577540, 1577319, 1577131, 1576972, 1576840, 1576731, 1576644, 1576576, + 1576525, 1576490, 1576469, 1576460, 1576463, 1576475, 1576497, 1576527, 1667773, 1665449, 1662539, 1658949, 1654620, 1649603, + 1644095, 1638400, 1632828, 1627605, 1622850, 1618592, 1614813, 1611471, 1608518, 1605908, 1603600, 1601555, 1599742, 1598133, + 1596703, 1595433, 1594304, 1593300, 1592407, 1591614, 1590910, 1590285, 1589732, 1589244, 1588812, 1588433, 1588100, 1587809, + 1587556, 1587338, 1587150, 1586990, 1586855, 1586743, 1586651, 1586578, 1586522, 1586480, 1586453, 1586437, 1586433, 1586438, + 1586453, 1675717, 1673639, 1671023, 1667785, 1663862, 1659279, 1654182, 1648823, 1643484, 1638398, 1633702, 1629453, 1625652, + 1622269, 1619265, 1616598, 1614230, 1612125, 1610252, 1608584, 1607097, 1605771, 1604588, 1603532, 1602589, 1601748, 1600998, + 1600330, 1599735, 1599206, 1598736, 1598320, 1597952, 1597628, 1597344, 1597095, 1596879, 1596691, 1596531, 1596394, 1596279, + 1596183, 1596106, 1596044, 1595998, 1595964, 1595942, 1595932, 1595931, 1683302, 1681444, 1679091, 1676167, 1672610, 1668424, + 1663716, 1658690, 1653599, 1648669, 1644054, 1639832, 1636021, 1632607, 1629560, 1626843, 1624420, 1622259, 1620330, 1618606, + 1617065, 1615685, 1614450, 1613344, 1612353, 1611465, 1610671, 1609959, 1609323, 1608755, 1608247, 1607795, 1607393, 1607037, + 1606721, 1606442, 1606197, 1605983, 1605797, 1605635, 1605497, 1605380, 1605281, 1605199, 1605134, 1605082, 1605043, 1605016, + 1604999, 1690554, 1688893, 1686775, 1684134, 1680906, 1677083, 1672740, 1668041, 1663206, 1658449, 1653934, 1649756, 1645950, + 1642516, 1639434, 1636673, 1634201, 1631989, 1630007, 1628230, 1626637, 1625206, 1623921, 1622767, 1621729, 1620796, 1619958, + 1619205, 1618529, 1617922, 1617378, 1616891, 1616455, 1616066, 1615720, 1615412, 1615139, 1614898, 1614686, 1614500, 1614339, + 1614199, 1614079, 1613978, 1613893, 1613823, 1613767, 1613723, 1613691, 1697486, 1696004, 1694099, 1691711, 1688780, 1685289, + 1681287, 1676905, 1672330, 1667761, 1663364, 1659245, 1655458, 1652016, 1648908, 1646110, 1643595, 1641336, 1639305, 1637480, + 1635837, 1634358, 1633026, 1631825, 1630743, 1629767, 1628887, 1628093, 1627378, 1626734, 1626154, 1625633, 1625164, 1624743, + 1624367, 1624030, 1623729, 1623462, 1623225, 1623015, 1622831, 1622669, 1622528, 1622407, 1622303, 1622215, 1622141, 1622081, + 1622033, 1704130, 1702809, 1701096, 1698936, 1696275, 1693086, 1689402, 1685323, 1681008, 1676637, 1672372, 1668329, 1664575, + 1661136, 1658011, 1655183, 1652631, 1650330, 1648255, 1646383, 1644694, 1643170, 1641792, 1640547, 1639422, 1638404, 1637484, + 1636651, 1635898, 1635218, 1634603, 1634048, 1633547, 1633095, 1632689, 1632324, 1631996, 1631703, 1631440, 1631207, 1631000, + 1630816, 1630655, 1630514, 1630391, 1630285, 1630194, 1630117, 1630053, 1710496, 1709322, 1707783, 1705830, 1703412, 1700500, + 1697111, 1693321, 1689262, 1685095, 1680976, 1677024, 1673317, 1669892, 1666759, 1663910, 1661326, 1658988, 1656872, 1654959, + 1653227, 1651659, 1650239, 1648952, 1647786, 1646728, 1645768, 1644898, 1644109, 1643393, 1642744, 1642157, 1641624, 1641143, + 1640707, 1640314, 1639960, 1639641, 1639354, 1639097, 1638867, 1638663, 1638481, 1638320, 1638178, 1638054, 1637946, 1637853, + 1637774, 1716623, 1715582, 1714200, 1712434, 1710237, 1707576, 1704460, 1700943, 1697134, 1693175, 1689210, 1685361, 1681713, + 1678314, 1675183, 1672319, 1669710, 1667340, 1665188, 1663235, 1661463, 1659855, 1658394, 1657067, 1655861, 1654764, 1653767, + 1652861, 1652036, 1651286, 1650604, 1649984, 1649421, 1648910, 1648446, 1648025, 1647645, 1647300, 1646990, 1646709, 1646457, + 1646231, 1646029, 1645848, 1645688, 1645546, 1645421, 1645311, 1645216, 1722508, 1721589, 1720350, 1718755, 1716758, 1714328, + 1711463, 1708204, 1704637, 1700886, 1697083, 1693348, 1689772, 1686410, 1683290, 1680419, 1677792, 1675395, 1673211, 1671223, + 1669414, 1667768, 1666269, 1664904, 1663660, 1662527, 1661494, 1660552, 1659693, 1658910, 1658196, 1657545, 1656952, 1656412, + 1655920, 1655473, 1655066, 1654697, 1654362, 1654059, 1653785, 1653538, 1653316, 1653116, 1652937, 1652777, 1652635, 1652509, + 1652398, 1728180, 1727372, 1726264, 1724823, 1723009, 1720789, 1718156, 1715138, 1711804, 1708259, 1704623, 1701012, 1697517, + 1694202, 1691103, 1688234, 1685594, 1683175, 1680964, 1678945, 1677102, 1675420, 1673885, 1672484, 1671204, 1670036, 1668968, + 1667992, 1667100, 1666284, 1665539, 1664858, 1664236, 1663667, 1663148, 1662675, 1662243, 1661850, 1661491, 1661166, 1660870, + 1660602, 1660359, 1660140, 1659943, 1659765, 1659606, 1659464, 1659338, 1733646, 1732939, 1731950, 1730651, 1729003, 1726976, + 1724557, 1721765, 1718653, 1715310, 1711844, 1708363, 1704959, 1701701, 1698632, 1695772, 1693127, 1690692, 1688458, 1686411, + 1684537, 1682823, 1681254, 1679819, 1678506, 1677303, 1676202, 1675194, 1674270, 1673423, 1672648, 1671937, 1671287, 1670691, + 1670145, 1669646, 1669189, 1668772, 1668391, 1668043, 1667726, 1667437, 1667175, 1666937, 1666721, 1666526, 1666350, 1666192, + 1666050, 1738921, 1738307, 1737428, 1736258, 1734762, 1732911, 1730689, 1728107, 1725207, 1722061, 1718765, 1715419, 1712115, + 1708924, 1705893, 1703050, 1700405, 1697960, 1695708, 1693637, 1691736, 1689992, 1688392, 1686925, 1685580, 1684345, 1683212, + 1682172, 1681218, 1680341, 1679536, 1678797, 1678119, 1677496, 1676925, 1676400, 1675919, 1675478, 1675074, 1674705, 1674367, + 1674058, 1673776, 1673519, 1673285, 1673073, 1672880, 1672706, 1672548, 1744011, 1743483, 1742704, 1741652, 1740296, 1738606, + 1736566, 1734181, 1731480, 1728526, 1725399, 1722193, 1718995, 1715878, 1712894, 1710075, 1707439, 1704989, 1702723, 1700632, + 1698707, 1696937, 1695308, 1693812, 1692436, 1691171, 1690008, 1688938, 1687954, 1687048, 1686215, 1685449, 1684744, 1684095, + 1683498, 1682949, 1682444, 1681980, 1681554, 1681163, 1680804, 1680476, 1680174, 1679899, 1679647, 1679418, 1679209, 1679018, + 1678846, 1748942, 1748492, 1747805, 1746862, 1745633, 1744091, 1742219, 1740016, 1737504, 1734733, 1731773, 1728708, 1725621, + 1722585, 1719655, 1716869, 1714246, 1711797, 1709522, 1707416, 1705470, 1703675, 1702021, 1700497, 1699092, 1697798, 1696606, + 1695508, 1694495, 1693562, 1692701, 1691908, 1691177, 1690502, 1689881, 1689308, 1688779, 1688293, 1687845, 1687433, 1687054, + 1686705, 1686385, 1686091, 1685822, 1685575, 1685349, 1685143, 1684955, 1753698, 1753320, 1752718, 1751874, 1750763, 1749358, + 1747641, 1745608, 1743274, 1740678, 1737882, 1734959, 1731988, 1729040, 1726172, 1723424, 1720823, 1718380, 1716102, 1713984, + 1712021, 1710206, 1708528, 1706979, 1705548, 1704227, 1703008, 1701882, 1700843, 1699883, 1698996, 1698177, 1697420, 1696721, + 1696076, 1695479, 1694929, 1694421, 1693951, 1693519, 1693119, 1692752, 1692413, 1692101, 1691814, 1691551, 1691309, 1691087, + 1690884, 1758314, 1758003, 1757479, 1756727, 1755723, 1754443, 1752869, 1750994, 1748826, 1746398, 1743760, 1740979, 1738126, + 1735271, 1732470, 1729768, 1727193, 1724763, 1722485, 1720360, 1718384, 1716551, 1714852, 1713279, 1711824, 1710478, 1709233, + 1708081, 1707016, 1706030, 1705118, 1704274, 1703493, 1702770, 1702101, 1701482, 1700909, 1700379, 1699889, 1699436, 1699017, + 1698630, 1698273, 1697943, 1697639, 1697359, 1697101, 1696864, 1696646, 1762783, 1762534, 1762082, 1761414, 1760509, 1759346, + 1757904, 1756175, 1754164, 1751895, 1749411, 1746770, 1744037, 1741278, 1738550, 1735899, 1733357, 1730945, 1728673, 1726545, + 1724559, 1722711, 1720994, 1719401, 1717923, 1716554, 1715284, 1714108, 1713018, 1712008, 1711071, 1710203, 1709398, 1708652, + 1707961, 1707319, 1706725, 1706174, 1705664, 1705191, 1704753, 1704347, 1703972, 1703624, 1703304, 1703007, 1702733, 1702481, + 1702248, 1767108, 1766916, 1766531, 1765942, 1765129, 1764072, 1762752, 1761160, 1759296, 1757178, 1754842, 1752339, 1749726, + 1747067, 1744418, 1741824, 1739320, 1736931, 1734670, 1732543, 1730552, 1728692, 1726960, 1725348, 1723851, 1722460, 1721168, + 1719969, 1718855, 1717821, 1716862, 1715971, 1715143, 1714375, 1713661, 1712999, 1712383, 1711812, 1711282, 1710789, 1710333, + 1709909, 1709516, 1709151, 1708814, 1708501, 1708212, 1707944, 1707697, 1771316, 1771177, 1770853, 1770336, 1769607, 1768649, + 1767442, 1765976, 1764249, 1762275, 1760081, 1757711, 1755219, 1752662, 1750094, 1747561, 1745102, 1742741, 1740495, 1738373, + 1736379, 1734511, 1732766, 1731139, 1729623, 1728212, 1726899, 1725678, 1724542, 1723486, 1722504, 1721591, 1720741, 1719951, + 1719216, 1718533, 1717897, 1717306, 1716756, 1716245, 1715769, 1715328, 1714917, 1714536, 1714182, 1713853, 1713548, 1713266, + 1713004, 1775398, 1775307, 1775040, 1774590, 1773940, 1773072, 1771971, 1770622, 1769024, 1767184, 1765126, 1762887, 1760514, + 1758060, 1755576, 1753110, 1750698, 1748370, 1746145, 1744033, 1742040, 1740167, 1738412, 1736771, 1735239, 1733810, 1732478, + 1731237, 1730080, 1729003, 1728000, 1727065, 1726195, 1725384, 1724628, 1723924, 1723269, 1722658, 1722089, 1721560, 1721066, + 1720607, 1720179, 1719781, 1719411, 1719067, 1718747, 1718450, 1718174, 1779367, 1779321, 1779107, 1778719, 1778141, 1777358, + 1776353, 1775114, 1773636, 1771924, 1769995, 1767882, 1765626, 1763275, 1760879, 1758482, 1756123, 1753832, 1751631, 1749532, + 1747544, 1745669, 1743908, 1742256, 1740710, 1739265, 1737915, 1736655, 1735479, 1734382, 1733358, 1732403, 1731512, 1730681, + 1729906, 1729183, 1728508, 1727878, 1727291, 1726743, 1726232, 1725755, 1725311, 1724897, 1724511, 1724151, 1723816, 1723504, + 1723214, 1783226, 1783222, 1783058, 1782726, 1782215, 1781511, 1780596, 1779459, 1778093, 1776500, 1774695, 1772704, 1770563, + 1768315, 1766007, 1763682, 1761380, 1759130, 1756957, 1754876, 1752897, 1751023, 1749257, 1747597, 1746039, 1744580, 1743214, + 1741937, 1740743, 1739627, 1738584, 1737610, 1736699, 1735849, 1735054, 1734312, 1733619, 1732971, 1732365, 1731800, 1731272, + 1730778, 1730317, 1729887, 1729485, 1729111, 1728761, 1728435, 1728131, 1786977, 1787012, 1786893, 1786615, 1786167, 1785534, + 1784703, 1783661, 1782400, 1780921, 1779233, 1777359, 1775329, 1773184, 1770965, 1768715, 1766473, 1764269, 1762128, 1760068, + 1758101, 1756232, 1754465, 1752798, 1751231, 1749760, 1748380, 1747087, 1745876, 1744742, 1743681, 1742689, 1741760, 1740891, + 1740078, 1739318, 1738606, 1737940, 1737317, 1736735, 1736190, 1735680, 1735203, 1734757, 1734340, 1733950, 1733586, 1733246, + 1732928, 1790634, 1790706, 1790629, 1790400, 1790010, 1789445, 1788691, 1787737, 1786575, 1785201, 1783625, 1781862, 1779941, + 1777896, 1775768, 1773594, 1771414, 1769259, 1767154, 1765119, 1763167, 1761306, 1759540, 1757870, 1756296, 1754814, 1753421, + 1752114, 1750887, 1749737, 1748660, 1747650, 1746703, 1745816, 1744986, 1744208, 1743478, 1742795, 1742156, 1741556, 1740995, + 1740469, 1739976, 1739515, 1739083, 1738678, 1738300, 1737946, 1737614, 1794187, 1794292, 1794255, 1794072, 1793735, 1793233, + 1792553, 1791681, 1790610, 1789337, 1787865, 1786210, 1784395, 1782449, 1780410, 1778315, 1776199, 1774096, 1772030, 1770024, + 1768091, 1766240, 1764479, 1762808, 1761229, 1759739, 1758336, 1757016, 1755775, 1754610, 1753517, 1752490, 1751527, 1750624, + 1749776, 1748981, 1748235, 1747536, 1746879, 1746264, 1745686, 1745145, 1744637, 1744161, 1743714, 1743295, 1742903, 1742535, + 1742191, 1797649, 1797786, 1797785, 1797645, 1797359, 1796915, 1796302, 1795507, 1794522, 1793343, 1791971, 1790419, 1788705, + 1786856, 1784906, 1782889, 1780841, 1778791, 1776769, 1774794, 1772882, 1771046, 1769292, 1767623, 1766041, 1764545, 1763132, + 1761802, 1760549, 1759370, 1758262, 1757220, 1756241, 1755322, 1754458, 1753647, 1752885, 1752169, 1751497, 1750865, 1750273, + 1749716, 1749193, 1748702, 1748241, 1747808, 1747402, 1747021, 1746664, 1801036, 1801201, 1801235, 1801135, 1800895, 1800506, + 1799955, 1799232, 1798327, 1797235, 1795958, 1794503, 1792887, 1791132, 1789270, 1787332, 1785351, 1783358, 1781380, 1779439, + 1777553, 1775733, 1773989, 1772324, 1770741, 1769240, 1767821, 1766481, 1765216, 1764025, 1762903, 1761847, 1760853, 1759918, + 1759039, 1758212, 1757434, 1756703, 1756015, 1755369, 1754761, 1754189, 1753652, 1753146, 1752671, 1752225, 1751805, 1751411, + 1751040, 1804320, 1804514, 1804579, 1804517, 1804321, 1803982, 1803490, 1802834, 1802005, 1800997, 1799808, 1798447, 1796924, + 1795262, 1793486, 1791627, 1789715, 1787781, 1785850, 1783947, 1782089, 1780289, 1778557, 1776898, 1775318, 1773815, 1772391, + 1771043, 1769769, 1768566, 1767432, 1766363, 1765355, 1764406, 1763512, 1762671, 1761878, 1761132, 1760430, 1759768, 1759146, + 1758560, 1758008, 1757489, 1757001, 1756541, 1756108, 1755701, 1755318, 1807547, 1807765, 1807860, 1807832, 1807677, 1807385, + 1806948, 1806354, 1805595, 1804664, 1803560, 1802286, 1800854, 1799280, 1797589, 1795807, 1793965, 1792090, 1790209, 1788345, + 1786517, 1784739, 1783022, 1781372, 1779795, 1778292, 1776864, 1775510, 1774228, 1773015, 1771869, 1770788, 1769767, 1768804, + 1767897, 1767041, 1766234, 1765473, 1764756, 1764081, 1763444, 1762844, 1762278, 1761746, 1761243, 1760770, 1760325, 1759905, + 1759509, 1810687, 1810929, 1811052, 1811057, 1810939, 1810692, 1810305, 1809770, 1809077, 1808219, 1807194, 1806004, 1804658, + 1803170, 1801562, 1799858, 1798085, 1796270, 1794441, 1792618, 1790823, 1789070, 1787370, 1785732, 1784161, 1782660, 1781230, + 1779871, 1778582, 1777361, 1776205, 1775113, 1774080, 1773105, 1772184, 1771314, 1770494, 1769719, 1768989, 1768299, 1767649, + 1767035, 1766456, 1765910, 1765395, 1764909, 1764451, 1764019, 1763611, 1813757, 1814021, 1814170, 1814205, 1814123, 1813916, + 1813578, 1813097, 1812466, 1811677, 1810726, 1809616, 1808352, 1806947, 1805419, 1803791, 1802087, 1800334, 1798557, 1796779, + 1795018, 1793292, 1791612, 1789988, 1788425, 1786928, 1785498, 1784136, 1782841, 1781613, 1780448, 1779345, 1778302, 1777315, + 1776381, 1775499, 1774666, 1773878, 1773134, 1772432, 1771768, 1771141, 1770549, 1769990, 1769462, 1768964, 1768493, 1768049, + 1767629, 1816742, 1817027, 1817200, 1817264, 1817215, 1817048, 1816754, 1816325, 1815752, 1815027, 1814148, 1813113, 1811928, + 1810603, 1809154, 1807600, 1805966, 1804275, 1802552, 1800819, 1799096, 1797399, 1795741, 1794133, 1792580, 1791089, 1789661, + 1788298, 1787000, 1785766, 1784594, 1783482, 1782428, 1781431, 1780486, 1779592, 1778746, 1777946, 1777190, 1776475, 1775798, + 1775159, 1774554, 1773983, 1773443, 1772932, 1772450, 1771994, 1771562, 1819673, 1819977, 1820173, 1820263, 1820245, 1820114, + 1819862, 1819481, 1818962, 1818299, 1817486, 1816523, 1815413, 1814164, 1812791, 1811310, 1809744, 1808115, 1806447, 1804760, + 1803076, 1801410, 1799776, 1798185, 1796646, 1795162, 1793738, 1792375, 1791074, 1789835, 1788657, 1787537, 1786475, 1785467, + 1784511, 1783606, 1782749, 1781937, 1781169, 1780441, 1779752, 1779101, 1778484, 1777900, 1777348, 1776826, 1776331, 1775864, + 1775421, 1822535, 1822857, 1823075, 1823190, 1823201, 1823104, 1822891, 1822555, 1822087, 1821481, 1820731, 1819836, 1818797, + 1817622, 1816322, 1814913, 1813414, 1811847, 1810234, 1808595, 1806951, 1805318, 1803710, 1802140, 1800614, 1799140, 1797721, + 1796360, 1795059, 1793817, 1792633, 1791507, 1790436, 1789419, 1788454, 1787538, 1786670, 1785847, 1785067, 1784328, 1783627, + 1782964, 1782335, 1781740, 1781176, 1780642, 1780136, 1779657, 1779204, 1825345, 1825684, 1825922, 1826060, 1826098, 1826032, + 1825856, 1825562, 1825142, 1824589, 1823898, 1823067, 1822096, 1820992, 1819762, 1818422, 1816990, 1815484, 1813926, 1812336, + 1810733, 1809135, 1807555, 1806006, 1804496, 1803033, 1801621, 1800264, 1798963, 1797719, 1796531, 1795399, 1794321, 1793296, + 1792322, 1791396, 1790518, 1789684, 1788893, 1788142, 1787431, 1786756, 1786116, 1785509, 1784934, 1784388, 1783871, 1783381, + 1782917, 1828088, 1828443, 1828699, 1828859, 1828922, 1828886, 1828745, 1828490, 1828115, 1827613, 1826978, 1826208, 1825302, + 1824264, 1823103, 1821831, 1820463, 1819018, 1817516, 1815975, 1814415, 1812852, 1811302, 1809776, 1808285, 1806835, 1805432, + 1804079, 1802780, 1801535, 1800345, 1799208, 1798124, 1797092, 1796110, 1795175, 1794287, 1793443, 1792642, 1791881, 1791158, + 1790473, 1789822, 1789204, 1788618, 1788061, 1787534, 1787033, 1786558, 1830781, 1831150, 1831423, 1831603, 1831691, 1831682, + 1831573, 1831355, 1831023, 1830568, 1829986, 1829273, 1828428, 1827455, 1826359, 1825152, 1823848, 1822463, 1821016, 1819525, + 1818008, 1816483, 1814963, 1813462, 1811990, 1810555, 1809162, 1807816, 1806521, 1805276, 1804084, 1802944, 1801855, 1800816, + 1799826, 1798884, 1797987, 1797134, 1796322, 1795551, 1794818, 1794122, 1793460, 1792832, 1792235, 1791668, 1791130, 1790619, + 1790133, 1833406, 1833789, 1834079, 1834278, 1834388, 1834406, 1834327, 1834145, 1833852, 1833442, 1832910, 1832251, 1831465, + 1830553, 1829521, 1828378, 1827135, 1825810, 1824417, 1822976, 1821504, 1820017, 1818530, 1817056, 1815605, 1814186, 1812805, + 1811467, 1810177, 1808934, 1807742, 1806599, 1805506, 1804462, 1803466, 1802516, 1801611, 1800749, 1799929, 1799148, 1798406, + 1797699, 1797028, 1796389, 1795782, 1795205, 1794656, 1794135, 1793640, 1835982, 1836378, 1836683, 1836900, 1837031, 1837074, + 1837023, 1836873, 1836618, 1836251, 1835766, 1835159, 1834428, 1833575, 1832603, 1831521, 1830339, 1829071, 1827734, 1826343, + 1824915, 1823467, 1822014, 1820567, 1819139, 1817738, 1816370, 1815043, 1813758, 1812519, 1811327, 1810184, 1809088, 1808039, + 1807038, 1806081, 1805169, 1804299, 1803470, 1802680, 1801928, 1801213, 1800531, 1799883, 1799266, 1798679, 1798121, 1797589, + 1797084, 1838509, 1838916, 1839235, 1839469, 1839620, 1839686, 1839662, 1839543, 1839323, 1838996, 1838555, 1837997, 1837319, + 1836522, 1835608, 1834585, 1833462, 1832251, 1830967, 1829626, 1828244, 1826836, 1825416, 1823999, 1822595, 1821212, 1819860, + 1818543, 1817266, 1816032, 1814842, 1813698, 1812600, 1811548, 1810542, 1809580, 1808661, 1807783, 1806946, 1806148, 1805388, + 1804663, 1803972, 1803314, 1802688, 1802091, 1801523, 1800983, 1800468, 1840986, 1841405, 1841737, 1841987, 1842157, 1842244, + 1842245, 1842156, 1841969, 1841678, 1841280, 1840768, 1840140, 1839396, 1838538, 1837572, 1836505, 1835350, 1834119, 1832828, + 1831491, 1830123, 1828739, 1827352, 1825973, 1824611, 1823275, 1821970, 1820702, 1819473, 1818287, 1817144, 1816045, 1814991, + 1813980, 1813013, 1812088, 1811204, 1810360, 1809554, 1808785, 1808051, 1807352, 1806685, 1806050, 1805444, 1804867, 1804317, + 1803793, 1843415, 1843844, 1844189, 1844454, 1844641, 1844748, 1844773, 1844711, 1844555, 1844301, 1843941, 1843473, 1842893, + 1842200, 1841395, 1840484, 1839472, 1838371, 1837193, 1835950, 1834659, 1833332, 1831984, 1830628, 1829275, 1827935, 1826616, + 1825325, 1824067, 1822845, 1821663, 1820522, 1819424, 1818368, 1817354, 1816383, 1815452, 1814562, 1813711, 1812898, 1812121, + 1811380, 1810672, 1809997, 1809353, 1808738, 1808152, 1807593, 1807060, 1845795, 1846235, 1846591, 1846870, 1847073, 1847200, + 1847247, 1847211, 1847085, 1846863, 1846541, 1846115, 1845580, 1844935, 1844181, 1843322, 1842365, 1841316, 1840189, 1838995, + 1837749, 1836463, 1835152, 1833828, 1832502, 1831185, 1829885, 1828609, 1827362, 1826149, 1824972, 1823834, 1822737, 1821680, + 1820664, 1819689, 1818755, 1817859, 1817002, 1816182, 1815398, 1814649, 1813934, 1813250, 1812598, 1811975, 1811380, 1810812, + 1810271, 1848128, 1848576, 1848944, 1849236, 1849454, 1849599, 1849668, 1849656, 1849557, 1849368, 1849081, 1848694, 1848202, + 1847603, 1846899, 1846090, 1845184, 1844187, 1843110, 1841964, 1840763, 1839518, 1838244, 1836953, 1835655, 1834362, 1833082, + 1831822, 1830588, 1829384, 1828214, 1827081, 1825985, 1824929, 1823912, 1822934, 1821996, 1821096, 1820233, 1819407, 1818617, + 1817861, 1817138, 1816446, 1815786, 1815155, 1814552, 1813976, 1813426, 1850430, 1850887, 1851265, 1851569, 1851802, 1851964, + 1852052, 1852062, 1851990, 1851830, 1851577, 1851226, 1850775, 1850220, 1849562, 1848802, 1847945, 1846998, 1845970, 1844871, + 1843714, 1842511, 1841274, 1840016, 1838747, 1837479, 1836219, 1834976, 1833755, 1832562, 1831400, 1830271, 1829179, 1828123, + 1827106, 1826126, 1825185, 1824281, 1823413, 1822582, 1821785, 1821022, 1820292, 1819594, 1818925, 1818286, 1817676, 1817092, + 1816534, 1852685, 1853150, 1853537, 1853853, 1854099, 1854277, 1854384, 1854416, 1854368, 1854236, 1854015, 1853699, 1853286, + 1852773, 1852160, 1851447, 1850638, 1849739, 1848758, 1847706, 1846593, 1845430, 1844231, 1843006, 1841768, 1840525, 1839287, + 1838062, 1836856, 1835674, 1834520, 1833398, 1832310, 1831256, 1830239, 1829259, 1828315, 1827407, 1826536, 1825699, 1824897, + 1824128, 1823391, 1822686, 1822010, 1821364, 1820746, 1820154, 1819588, 1854892, 1855364, 1855761, 1856088, 1856347, 1856540, + 1856664, 1856717, 1856692, 1856587, 1856396, 1856114, 1855738, 1855264, 1854693, 1854025, 1853262, 1852411, 1851477, 1850470, + 1849400, 1848278, 1847116, 1845926, 1844718, 1843502, 1842287, 1841081, 1839890, 1838721, 1837577, 1836462, 1835379, 1834328, + 1833312, 1832332, 1831386, 1830476, 1829601, 1828760, 1827953, 1827178, 1826436, 1825724, 1825042, 1824388, 1823763, 1823164, + 1822591, 1857052, 1857531, 1857937, 1858273, 1858545, 1858752, 1858894, 1858965, 1858963, 1858883, 1858720, 1858470, 1858129, + 1857694, 1857164, 1856539, 1855821, 1855014, 1854126, 1853163, 1852136, 1851056, 1849932, 1848776, 1847598, 1846410, 1845218, + 1844033, 1842859, 1841703, 1840570, 1839463, 1838386, 1837340, 1836326, 1835346, 1834400, 1833488, 1832610, 1831765, 1830954, + 1830174, 1829426, 1828708, 1828020, 1827360, 1826728, 1826122, 1825542, 136533, 136533, 136533, 136533, 136533, 136533, + 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 135924, 125277, 108081, 91368, 77552, + 66660, 58112, 51334, 45876, 41412, 37706, 34587, 31931, 29644, 27657, 25914, 24375, 23005, 21780, + 20677, 19679, 18772, 17944, 17186, 16489, 15845, 15250, 14698, 14184, 13704, 13256, 12836, 12442, + 12071, 11721, 11392, 11080, 10784, 10504, 10238, 9986, 9745, 9516, 9297, 9088, 8888, 8697, + 8513, 8338, 8169, 8007, 7852, 7702, 7558, 7419, 7285, 7156, 7031, 6911, 6795, 6682, + 6574, 6468, 6366, 6267, 6172, 6079, 5989, 5901, 5816, 5733, 5653, 5575, 5499, 5425, + 5353, 5283, 5215, 5148, 5083, 5020, 4959 +]; +/// PMOS log-domain current table, corner mos_tt, IHP-Open-PDK 21133f21, L 0.45 um, 27 C, at the source-to-bulk voltage Vsb = 1 V (slice 4): the tag word (4294967295), then the 4753 words ix * 49 + iy of log2(Id / F) in 1/65536 octave over 2^-8 of a linear-table word (1.164 pA), then the 97 rv words; the format of TT_LG_P (deck psp103_idpa_vsb_tt.cir, blocks lam_p_4 and r_4). +pub const VSB_P4 : [4851]u32 = [ + 4294967295, 0, 40920, 19532, 16895, 18312, 20921, 24123, 27516, 30959, 34413, 37867, 41320, 44776, + 48236, 51704, 55180, 58665, 62162, 65670, 69189, 72719, 76261, 79813, 83376, 86947, 90528, 94119, + 97722, 101342, 104990, 108683, 112450, 116338, 120413, 125035, 129895, 135364, 141647, 148978, 157596, 167722, + 179518, 193062, 208325, 225175, 243400, 262733, 282891, 303605, 0, 40751, 19313, 17305, 19362, 22018, + 25132, 28445, 31809, 35182, 38555, 41928, 45303, 48685, 52074, 55473, 58884, 62307, 65743, 69193, + 72656, 76133, 79622, 83123, 86636, 90160, 93694, 97242, 100805, 104391, 108014, 111697, 115476, 119406, + 123796, 128381, 133483, 139294, 146034, 153943, 163256, 174169, 186805, 201191, 217246, 234793, 253589, 273354, + 293810, 0, 41775, 20674, 18762, 21280, 24247, 27255, 30454, 33709, 36972, 40236, 43499, 46767, + 50042, 53326, 56623, 59933, 63257, 66598, 69954, 73326, 76714, 80117, 83535, 86967, 90413, 93872, + 97345, 100834, 104343, 107884, 111473, 115139, 118928, 122907, 127429, 132194, 137567, 143754, 150988, 159510, + 169540, 181244, 194699, 209881, 226659, 244820, 264098, 284209, 0, 44465, 24079, 22210, 24699, 28147, + 31114, 34148, 37248, 40359, 43470, 46583, 49702, 52830, 55970, 59124, 62295, 65484, 68691, 71917, + 75162, 78426, 81709, 85011, 88330, 91665, 95017, 98386, 101771, 105178, 108612, 112087, 115625, 119263, + 123054, 127298, 131741, 136698, 142359, 148943, 156690, 165836, 176578, 189045, 203269, 219172, 236582, 255257, + 274919, 0, 49572, 30554, 28214, 30778, 34454, 37564, 40386, 43267, 46166, 49067, 51973, 54886, + 57811, 60751, 63709, 66687, 69686, 72707, 75751, 78818, 81908, 85021, 88157, 91314, 94493, 97691, + 100910, 104150, 107411, 110700, 114025, 117404, 120863, 124447, 128220, 132524, 137072, 142217, 148163, 155140, + 163388, 173132, 184542, 197706, 212607, 229124, 247050, 266123, 0, 58273, 41184, 38779, 40936, 44330, + 47637, 50264, 52852, 55466, 58087, 60714, 63352, 66005, 68676, 71369, 74085, 76827, 79594, 82388, + 85210, 88059, 90936, 93840, 96771, 99728, 102710, 105717, 108748, 111806, 114891, 118012, 121181, 124417, + 127754, 131245, 135169, 139291, 143912, 149211, 155405, 162730, 171422, 181687, 193665, 207404, 222846, 239831, + 258128, 0, 71867, 57099, 54831, 56267, 59226, 62425, 64957, 67193, 69451, 71722, 74001, 76293, + 78603, 80934, 83289, 85670, 88080, 90518, 92988, 95488, 98020, 100583, 103179, 105805, 108463, 111151, + 113869, 116616, 119393, 122202, 125047, 127936, 130883, 133915, 137070, 140407, 144233, 148299, 152924, 158304, + 164659, 172228, 181240, 191879, 204257, 218386, 234173, 251434, 30071, 91438, 79206, 77108, 77995, 80275, + 82961, 85383, 87285, 89141, 91015, 92899, 94797, 96712, 98649, 100610, 102598, 104616, 106663, 108743, + 110856, 113002, 115182, 117396, 119645, 121927, 124244, 126595, 128979, 131396, 133848, 136337, 138869, 141454, + 144109, 146863, 149760, 153037, 156504, 160417, 164941, 170274, 176643, 184282, 193409, 204192, 216718, 230974, + 246847, 77094, 117448, 107674, 105679, 106161, 107808, 109792, 111894, 113550, 115013, 116487, 117971, 119467, + 120978, 122508, 124060, 125637, 127240, 128872, 130534, 132227, 133952, 135709, 137501, 139326, 141185, 143079, + 145008, 146971, 148968, 151002, 153072, 155182, 157340, 159557, 161852, 164258, 166820, 169779, 172951, 176593, + 180872, 185988, 192162, 199625, 208584, 219197, 231537, 245582, 124482, 149534, 141864, 139927, 140077, 141099, + 142588, 144206, 145643, 146790, 147908, 149035, 150170, 151315, 152474, 153651, 154847, 156064, 157305, 158570, + 159862, 161181, 162528, 163904, 165310, 166746, 168214, 169713, 171244, 172806, 174402, 176032, 177698, 179404, + 181158, 182973, 184869, 186878, 189166, 191609, 194393, 197644, 201526, 206230, 211971, 218971, 227430, 237502, + 249262, 172098, 186683, 180624, 178720, 178593, 179262, 180312, 181461, 182625, 183564, 184403, 185245, 186090, + 186940, 187799, 188669, 189553, 190451, 191366, 192299, 193251, 194224, 195218, 196235, 197275, 198339, 199428, + 200543, 201683, 202850, 204043, 205265, 206517, 207800, 209120, 210485, 211906, 213405, 215011, 216876, 218892, + 221228, 224002, 227363, 231490, 236582, 242848, 250485, 259647, 219860, 227631, 222702, 220815, 220484, 220911, + 221617, 222477, 223357, 224143, 224795, 225429, 226063, 226698, 227336, 227980, 228631, 229291, 229962, 230644, + 231339, 232048, 232771, 233509, 234264, 235036, 235826, 236634, 237461, 238308, 239174, 240062, 240971, 241903, + 242862, 243851, 244878, 245955, 247100, 248404, 249804, 251405, 253288, 255555, 258336, 261790, 266094, 271440, + 278016, 267719, 271211, 267025, 265148, 264678, 264935, 265461, 266108, 266761, 267404, 267946, 268441, 268931, + 269419, 269907, 270396, 270888, 271384, 271885, 272393, 272908, 273431, 273964, 274505, 275058, 275621, 276195, + 276782, 277381, 277993, 278619, 279259, 279913, 280584, 281271, 281979, 282710, 283471, 284273, 285131, 286120, + 287190, 288428, 289899, 291688, 293903, 296676, 300159, 304520, 315646, 316517, 312799, 310926, 310368, 310513, + 310927, 311416, 311950, 312466, 312937, 313347, 313745, 314138, 314528, 314917, 315305, 315694, 316085, 316478, + 316876, 317277, 317683, 318094, 318511, 318935, 319365, 319802, 320247, 320701, 321162, 321633, 322113, 322602, + 323103, 323615, 324142, 324686, 325253, 325852, 326523, 327241, 328052, 328996, 330124, 331503, 333219, 335376, + 338098, 363622, 362917, 359484, 357613, 356999, 357074, 357415, 357831, 358260, 358701, 359091, 359475, 359815, + 360149, 360478, 360804, 361127, 361449, 361771, 362092, 362415, 362739, 363065, 363394, 363725, 364060, 364398, + 364740, 365086, 365437, 365792, 366153, 366519, 366891, 367269, 367654, 368048, 368451, 368867, 369300, 369757, + 370268, 370815, 371435, 372155, 373016, 374068, 375376, 377019, 412059, 410234, 406858, 404924, 404243, 404259, + 404547, 404915, 405292, 405665, 406024, 406358, 406679, 406976, 407268, 407555, 407839, 408120, 408399, 408677, + 408954, 409230, 409507, 409785, 410063, 410343, 410624, 410906, 411191, 411478, 411768, 412060, 412355, 412653, + 412955, 413260, 413570, 413885, 414207, 414538, 414881, 415253, 415643, 416071, 416554, 417111, 417773, 418575, + 419567, 467814, 462227, 456882, 453744, 452403, 452075, 452187, 452460, 452779, 453106, 453429, 453738, 454029, + 454313, 454582, 454846, 455106, 455362, 455615, 455866, 456116, 456364, 456611, 456858, 457104, 457350, 457597, + 457844, 458091, 458339, 458589, 458839, 459091, 459344, 459599, 459855, 460114, 460376, 460641, 460910, 461186, + 461470, 461775, 462094, 462441, 462828, 463269, 463786, 464406, 529840, 518640, 509746, 504343, 501670, 500603, + 500321, 500386, 500596, 500859, 501141, 501424, 501698, 501962, 502222, 502471, 502717, 502958, 503196, 503432, + 503665, 503896, 504126, 504354, 504581, 504807, 505033, 505259, 505484, 505709, 505934, 506159, 506385, 506611, + 506837, 507065, 507293, 507522, 507753, 507986, 508222, 508463, 508713, 508971, 509242, 509534, 509854, 510214, + 510628, 593803, 577155, 564459, 556428, 552050, 549928, 549018, 548720, 548722, 548868, 549080, 549322, 549571, + 549819, 550064, 550304, 550543, 550775, 551004, 551230, 551454, 551675, 551894, 552111, 552327, 552542, 552756, + 552968, 553180, 553392, 553602, 553813, 554023, 554233, 554443, 554653, 554863, 555073, 555284, 555496, 555709, + 555924, 556141, 556366, 556596, 556836, 557091, 557366, 557669, 657392, 636200, 620099, 609542, 603377, 600041, + 598330, 597518, 597199, 597145, 597234, 597399, 597603, 597823, 598049, 598277, 598504, 598730, 598952, 599174, + 599391, 599607, 599820, 600031, 600240, 600448, 600655, 600860, 601064, 601267, 601470, 601672, 601873, 602073, + 602273, 602473, 602673, 602872, 603071, 603270, 603470, 603670, 603872, 604075, 604284, 604496, 604715, 604944, + 605188, 719782, 694985, 676030, 663239, 655385, 650812, 648220, 646794, 646054, 645719, 645620, 645662, 645784, + 645952, 646145, 646351, 646563, 646778, 646994, 647208, 647421, 647632, 647841, 648050, 648255, 648459, 648662, + 648863, 649063, 649262, 649459, 649656, 649852, 650047, 650242, 650436, 650629, 650822, 651014, 651206, 651399, + 651591, 651783, 651976, 652171, 652368, 652568, 652773, 652986, 780811, 753183, 731886, 717183, 707813, 702067, + 698586, 696500, 695279, 694597, 694253, 694121, 694123, 694209, 694345, 694512, 694698, 694895, 695098, 695304, + 695510, 695717, 695922, 696127, 696330, 696532, 696732, 696931, 697129, 697325, 697520, 697714, 697908, 698100, + 698291, 698482, 698672, 698861, 699050, 699238, 699426, 699614, 699801, 699989, 700176, 700366, 700556, 700748, + 700944, 840531, 810678, 787466, 771147, 760448, 753630, 749299, 746551, 744822, 743754, 743122, 742777, 742622, + 742593, 742647, 742756, 742900, 743067, 743249, 743439, 743636, 743835, 744035, 744235, 744436, 744635, 744833, + 745031, 745227, 745422, 745616, 745809, 746001, 746192, 746382, 746572, 746760, 746948, 747135, 747321, 747507, + 747692, 747877, 748062, 748246, 748431, 748616, 748802, 748990, 899039, 867441, 842663, 824981, 813127, 805348, + 800230, 796845, 794607, 793138, 792193, 791605, 791265, 791095, 791042, 791071, 791156, 791280, 791430, 791597, + 791776, 791963, 792154, 792349, 792544, 792741, 792937, 793133, 793328, 793523, 793716, 793909, 794101, 794291, + 794481, 794670, 794858, 795046, 795232, 795418, 795603, 795788, 795972, 796155, 796338, 796521, 796704, 796887, + 797071, 956396, 923455, 897397, 878565, 865714, 857084, 851249, 847269, 844539, 842671, 841402, 840557, 840012, + 839680, 839502, 839434, 839444, 839510, 839616, 839750, 839905, 840073, 840252, 840436, 840625, 840817, 841010, + 841204, 841398, 841591, 841785, 841977, 842169, 842361, 842551, 842741, 842929, 843117, 843304, 843491, 843677, + 843862, 844046, 844230, 844413, 844596, 844779, 844961, 845143, 1012597, 978679, 951589, 931791, 918079, 908700, + 902222, 897694, 894503, 892248, 890660, 889552, 888792, 888288, 887971, 887791, 887713, 887710, 887762, 887854, + 887977, 888120, 888280, 888451, 888630, 888814, 889003, 889193, 889385, 889578, 889772, 889965, 890158, 890350, + 890542, 890733, 890923, 891113, 891302, 891490, 891677, 891864, 892050, 892235, 892420, 892604, 892788, 892971, + 893154, 1067536, 1033018, 1005126, 984521, 970072, 960041, 952992, 947968, 944351, 941733, 939838, 938471, 937497, + 936814, 936350, 936051, 935877, 935795, 935785, 935828, 935912, 936026, 936162, 936316, 936482, 936657, 936838, + 937025, 937215, 937406, 937600, 937794, 937988, 938183, 938377, 938570, 938763, 938956, 939148, 939339, 939529, + 939719, 939907, 940096, 940283, 940470, 940656, 940842, 941027, 1120979, 1086283, 1057825, 1036565, 1021494, 1010900, + 1003351, 997887, 993885, 990933, 988750, 987138, 985955, 985097, 984486, 984065, 983790, 983626, 983549, 983538, + 983578, 983658, 983768, 983901, 984052, 984216, 984390, 984572, 984759, 984950, 985143, 985339, 985536, 985733, + 985931, 986128, 986326, 986523, 986719, 986915, 987110, 987304, 987497, 987690, 987882, 988073, 988264, 988454, + 988643, 1172546, 1138179, 1109419, 1087657, 1072071, 1061002, 1053024, 1047176, 1042833, 1039582, 1037137, 1035298, 1033920, + 1032894, 1032142, 1031601, 1031225, 1030979, 1030833, 1030767, 1030762, 1030806, 1030888, 1030999, 1031134, 1031286, 1031452, + 1031629, 1031814, 1032005, 1032200, 1032398, 1032598, 1032800, 1033003, 1033206, 1033410, 1033613, 1033816, 1034018, 1034219, + 1034420, 1034620, 1034820, 1035018, 1035216, 1035413, 1035609, 1035804, 1221712, 1188274, 1159529, 1137427, 1121436, 1109977, + 1101639, 1095464, 1090827, 1087314, 1084637, 1082594, 1081038, 1079858, 1078974, 1078320, 1077849, 1077522, 1077310, 1077189, + 1077140, 1077148, 1077202, 1077292, 1077410, 1077551, 1077709, 1077882, 1078065, 1078256, 1078454, 1078656, 1078862, 1079070, + 1079279, 1079490, 1079701, 1079913, 1080124, 1080335, 1080545, 1080754, 1080963, 1081171, 1081378, 1081584, 1081789, 1081993, + 1082197, 1267894, 1236043, 1207688, 1185431, 1169142, 1157373, 1148741, 1142294, 1137408, 1133669, 1130790, 1128566, 1126851, + 1125533, 1124527, 1123769, 1123209, 1122806, 1122531, 1122357, 1122264, 1122238, 1122264, 1122332, 1122434, 1122564, 1122715, + 1122883, 1123065, 1123257, 1123458, 1123665, 1123876, 1124091, 1124309, 1124528, 1124748, 1124969, 1125190, 1125411, 1125631, + 1125850, 1126069, 1126287, 1126504, 1126719, 1126934, 1127148, 1127360, 1310556, 1280914, 1253385, 1231181, 1214702, 1202695, + 1193826, 1187153, 1182057, 1178124, 1175068, 1172686, 1170828, 1169383, 1168267, 1167412, 1166767, 1166293, 1165956, 1165730, + 1165595, 1165533, 1165530, 1165576, 1165661, 1165778, 1165920, 1166082, 1166262, 1166454, 1166656, 1166866, 1167083, 1167304, + 1167529, 1167756, 1167984, 1168214, 1168444, 1168674, 1168904, 1169133, 1169361, 1169589, 1169815, 1170040, 1170264, 1170487, + 1170709, 1349378, 1322416, 1296167, 1274250, 1257686, 1245501, 1236437, 1229573, 1224294, 1220189, 1216975, 1214447, 1212458, + 1210894, 1209672, 1208723, 1207996, 1207449, 1207049, 1206770, 1206589, 1206488, 1206453, 1206472, 1206536, 1206636, 1206765, + 1206918, 1207090, 1207278, 1207478, 1207688, 1207906, 1208130, 1208358, 1208590, 1208824, 1209060, 1209296, 1209533, 1209770, + 1210006, 1210242, 1210477, 1210711, 1210943, 1211174, 1211404, 1211633, 1384298, 1360258, 1335704, 1314328, 1297786, 1285472, + 1276243, 1269208, 1263762, 1259499, 1256135, 1253468, 1251351, 1249671, 1248342, 1247298, 1246486, 1245864, 1245397, 1245058, + 1244825, 1244679, 1244606, 1244592, 1244627, 1244703, 1244812, 1244949, 1245108, 1245285, 1245477, 1245681, 1245894, 1246115, + 1246342, 1246573, 1246808, 1247044, 1247283, 1247522, 1247761, 1248001, 1248240, 1248478, 1248715, 1248951, 1249186, 1249419, + 1249651, 1415523, 1394402, 1371856, 1351285, 1334877, 1322477, 1313103, 1305909, 1300303, 1295884, 1292373, 1289568, 1287322, + 1285522, 1284084, 1282940, 1282037, 1281332, 1280791, 1280385, 1280093, 1279894, 1279774, 1279718, 1279717, 1279761, 1279842, + 1279954, 1280092, 1280251, 1280427, 1280618, 1280820, 1281031, 1281249, 1281473, 1281702, 1281934, 1282168, 1282404, 1282641, + 1282878, 1283115, 1283352, 1283588, 1283823, 1284057, 1284290, 1284521, 1443402, 1425019, 1404648, 1385133, 1368989, 1356548, + 1347045, 1339698, 1333935, 1329362, 1325702, 1322757, 1320378, 1318455, 1316902, 1315652, 1314652, 1313857, 1313235, 1312755, + 1312395, 1312136, 1311960, 1311854, 1311808, 1311812, 1311857, 1311937, 1312046, 1312179, 1312332, 1312502, 1312685, 1312880, + 1313084, 1313295, 1313512, 1313733, 1313958, 1314185, 1314414, 1314644, 1314874, 1315105, 1315335, 1315565, 1315794, 1316022, + 1316249, 1468349, 1452420, 1434245, 1415996, 1400259, 1387834, 1378222, 1370729, 1364812, 1360085, 1356276, 1353188, 1350674, + 1348624, 1346952, 1345592, 1344488, 1343599, 1342889, 1342328, 1341894, 1341567, 1341329, 1341167, 1341069, 1341025, 1341027, + 1341067, 1341141, 1341241, 1341365, 1341508, 1341667, 1341840, 1342023, 1342215, 1342415, 1342621, 1342831, 1343045, 1343261, + 1343480, 1343700, 1343920, 1344141, 1344362, 1344583, 1344802, 1345021, 1490770, 1476979, 1460902, 1444066, 1428887, 1416550, + 1406856, 1399229, 1393161, 1388283, 1384325, 1381094, 1378444, 1376265, 1374472, 1372998, 1371788, 1370800, 1369998, 1369352, + 1368839, 1368439, 1368133, 1367909, 1367754, 1367658, 1367611, 1367608, 1367640, 1367703, 1367792, 1367903, 1368033, 1368178, + 1368337, 1368506, 1368685, 1368871, 1369063, 1369259, 1369460, 1369664, 1369869, 1370077, 1370285, 1370494, 1370704, 1370913, + 1371121, 1511028, 1499069, 1484917, 1469563, 1455088, 1442926, 1433188, 1425443, 1419234, 1414209, 1410106, 1406733, 1403948, + 1401641, 1399727, 1398138, 1396821, 1395732, 1394836, 1394102, 1393508, 1393031, 1392655, 1392366, 1392150, 1391997, 1391899, + 1391847, 1391834, 1391856, 1391907, 1391983, 1392080, 1392194, 1392325, 1392468, 1392622, 1392785, 1392956, 1393133, 1393314, + 1393501, 1393690, 1393882, 1394076, 1394271, 1394467, 1394663, 1394860, 1529439, 1519039, 1506606, 1492728, 1479082, 1467192, + 1457459, 1449619, 1443282, 1438117, 1433874, 1430365, 1427448, 1425014, 1422980, 1421277, 1419853, 1418663, 1417672, 1416850, + 1416173, 1415618, 1415170, 1414813, 1414534, 1414323, 1414170, 1414067, 1414008, 1413985, 1413995, 1414033, 1414095, 1414177, + 1414276, 1414391, 1414518, 1414656, 1414803, 1414958, 1415120, 1415287, 1415458, 1415632, 1415810, 1415989, 1416171, 1416353, + 1416536, 1546275, 1537196, 1526272, 1513808, 1501079, 1489562, 1479892, 1471986, 1465536, 1460243, 1455867, 1452226, 1449181, + 1446625, 1444473, 1442659, 1441129, 1439840, 1438755, 1437844, 1437083, 1436451, 1435930, 1435504, 1435161, 1434890, 1434681, + 1434526, 1434418, 1434350, 1434318, 1434316, 1434340, 1434387, 1434455, 1434539, 1434638, 1434749, 1434871, 1435003, 1435142, + 1435288, 1435440, 1435596, 1435756, 1435919, 1436085, 1436252, 1436421, 1561743, 1553786, 1544174, 1533023, 1521258, 1510210, + 1500671, 1492737, 1486195, 1480786, 1476286, 1472521, 1469354, 1466680, 1464415, 1462493, 1460860, 1459473, 1458296, 1457298, + 1456455, 1455746, 1455152, 1454658, 1454251, 1453920, 1453654, 1453446, 1453289, 1453174, 1453099, 1453056, 1453042, 1453054, + 1453088, 1453140, 1453210, 1453294, 1453390, 1453497, 1453614, 1453738, 1453869, 1454006, 1454148, 1454293, 1454443, 1454595, + 1454749, 1576028, 1569028, 1560551, 1550595, 1539801, 1529303, 1519965, 1512046, 1505437, 1499927, 1495315, 1491433, 1488151, + 1485364, 1482991, 1480965, 1479233, 1477751, 1476484, 1475401, 1474478, 1473693, 1473027, 1472465, 1471995, 1471604, 1471282, + 1471021, 1470813, 1470653, 1470533, 1470449, 1470397, 1470372, 1470372, 1470392, 1470432, 1470487, 1470557, 1470639, 1470732, + 1470834, 1470944, 1471061, 1471184, 1471312, 1471444, 1471580, 1471719, 1589285, 1583105, 1575608, 1566724, 1556875, 1546986, + 1537920, 1530062, 1523415, 1517822, 1513109, 1509121, 1505731, 1502838, 1500361, 1498235, 1496407, 1494834, 1493480, 1492315, + 1491313, 1490453, 1489717, 1489089, 1488556, 1488105, 1487728, 1487414, 1487157, 1486950, 1486786, 1486661, 1486569, 1486508, + 1486473, 1486461, 1486470, 1486497, 1486540, 1486596, 1486665, 1486744, 1486833, 1486929, 1487033, 1487143, 1487258, 1487377, + 1487500, 1601641, 1596166, 1589516, 1581585, 1572634, 1563388, 1554657, 1546912, 1540258, 1534604, 1529804, 1525718, 1522228, + 1519234, 1516659, 1514438, 1512519, 1510858, 1509420, 1508175, 1507097, 1506165, 1505360, 1504667, 1504072, 1503563, 1503131, + 1502765, 1502459, 1502205, 1501998, 1501831, 1501701, 1501603, 1501533, 1501489, 1501467, 1501465, 1501480, 1501511, 1501555, + 1501611, 1501678, 1501754, 1501838, 1501929, 1502027, 1502129, 1502237, 1613191, 1608326, 1602411, 1595324, 1587209, 1578620, + 1570276, 1562696, 1556071, 1550377, 1545506, 1541334, 1537752, 1534666, 1531998, 1529687, 1527681, 1525936, 1524418, 1523096, + 1521944, 1520942, 1520070, 1519314, 1518659, 1518093, 1517607, 1517190, 1516835, 1516536, 1516285, 1516078, 1515909, 1515774, + 1515670, 1515593, 1515541, 1515509, 1515497, 1515502, 1515521, 1515554, 1515599, 1515654, 1515719, 1515791, 1515871, 1515957, + 1516048, 1624030, 1619696, 1614422, 1608078, 1600732, 1592792, 1584876, 1577508, 1570950, 1565242, 1560316, 1556070, 1552405, + 1549233, 1546480, 1544084, 1541994, 1540170, 1538574, 1537178, 1535955, 1534885, 1533949, 1533132, 1532418, 1531797, 1531257, + 1530790, 1530388, 1530044, 1529750, 1529502, 1529295, 1529124, 1528986, 1528876, 1528793, 1528733, 1528693, 1528671, 1528666, + 1528676, 1528699, 1528733, 1528778, 1528831, 1528893, 1528962, 1529038, 1634230, 1630361, 1625645, 1619958, 1613312, 1606001, + 1598538, 1591425, 1584971, 1579276, 1574314, 1570007, 1566269, 1563019, 1560185, 1557710, 1555542, 1553642, 1551972, 1550505, + 1549214, 1548079, 1547081, 1546204, 1545433, 1544758, 1544167, 1543651, 1543202, 1542813, 1542478, 1542190, 1541945, 1541738, + 1541566, 1541425, 1541310, 1541221, 1541154, 1541107, 1541077, 1541063, 1541064, 1541077, 1541102, 1541137, 1541181, 1541233, + 1541292, 1643860, 1640399, 1636174, 1631066, 1625053, 1618341, 1611342, 1604519, 1598206, 1592552, 1587574, 1583220, 1579419, + 1576098, 1573191, 1570641, 1568400, 1566427, 1564687, 1563152, 1561796, 1560598, 1559540, 1558605, 1557779, 1557051, 1556410, + 1555846, 1555352, 1554920, 1554543, 1554216, 1553934, 1553692, 1553486, 1553312, 1553168, 1553050, 1552955, 1552882, 1552828, + 1552791, 1552769, 1552762, 1552766, 1552782, 1552808, 1552843, 1552886, 1652976, 1649875, 1646082, 1641486, 1636044, 1629893, + 1623359, 1616853, 1610714, 1605129, 1600155, 1595770, 1591917, 1588533, 1585559, 1582940, 1580630, 1578589, 1576783, 1575183, + 1573765, 1572506, 1571389, 1570399, 1569520, 1568740, 1568050, 1567440, 1566901, 1566426, 1566009, 1565643, 1565325, 1565048, + 1564808, 1564603, 1564429, 1564282, 1564161, 1564062, 1563983, 1563923, 1563879, 1563850, 1563835, 1563832, 1563840, 1563858, + 1563885, 1661611, 1658830, 1655419, 1651278, 1646350, 1640721, 1634644, 1628473, 1622537, 1617050, 1612103, 1607701, 1603808, + 1600372, 1597338, 1594656, 1592282, 1590177, 1588308, 1586646, 1585168, 1583852, 1582680, 1581635, 1580705, 1579876, 1579139, + 1578483, 1577901, 1577385, 1576928, 1576525, 1576170, 1575859, 1575587, 1575351, 1575147, 1574972, 1574824, 1574700, 1574597, + 1574513, 1574448, 1574398, 1574363, 1574341, 1574331, 1574332, 1574342, 1669825, 1667329, 1664258, 1660520, 1656053, 1650906, + 1645270, 1639444, 1633735, 1628371, 1623472, 1619071, 1615151, 1611671, 1608584, 1605844, 1603411, 1601246, 1599317, 1597598, + 1596062, 1594691, 1593465, 1592369, 1591389, 1590512, 1589729, 1589029, 1588405, 1587848, 1587353, 1586913, 1586522, 1586178, + 1585874, 1585607, 1585374, 1585171, 1584996, 1584846, 1584719, 1584613, 1584525, 1584455, 1584400, 1584359, 1584331, 1584314, + 1584308, 1677653, 1675411, 1672642, 1669264, 1665212, 1660507, 1655292, 1649812, 1644348, 1639131, 1634302, 1629919, 1625984, + 1622469, 1619337, 1616546, 1614058, 1611837, 1609853, 1608078, 1606488, 1605064, 1603786, 1602640, 1601612, 1600689, 1599861, + 1599118, 1598453, 1597857, 1597324, 1596847, 1596423, 1596045, 1595709, 1595412, 1595150, 1594919, 1594718, 1594543, 1594392, + 1594263, 1594154, 1594062, 1593988, 1593928, 1593882, 1593848, 1593826, 1685115, 1683101, 1680603, 1677547, 1673868, 1669568, + 1664750, 1659614, 1654409, 1649359, 1644620, 1640272, 1636336, 1632798, 1629628, 1626793, 1624255, 1621983, 1619946, 1618119, + 1616478, 1615003, 1613676, 1612483, 1611408, 1610441, 1609569, 1608785, 1608080, 1607446, 1606876, 1606364, 1605905, 1605495, + 1605128, 1604801, 1604511, 1604254, 1604026, 1603827, 1603652, 1603500, 1603369, 1603257, 1603163, 1603084, 1603020, 1602970, + 1602931, 1692248, 1690439, 1688184, 1685416, 1682073, 1678143, 1673698, 1668898, 1663958, 1659092, 1654463, 1650167, 1646243, + 1642692, 1639493, 1636619, 1634037, 1631718, 1629633, 1627757, 1626067, 1624544, 1623171, 1621931, 1620812, 1619801, 1618889, + 1618064, 1617320, 1616649, 1616043, 1615497, 1615005, 1614563, 1614166, 1613810, 1613491, 1613207, 1612954, 1612730, 1612532, + 1612358, 1612205, 1612073, 1611959, 1611862, 1611780, 1611712, 1611657, 1699066, 1697443, 1695406, 1692898, 1689858, 1686266, + 1682169, 1677693, 1673022, 1668353, 1663850, 1659623, 1655726, 1652173, 1648955, 1646049, 1643429, 1641067, 1638938, 1637016, + 1635281, 1633712, 1632294, 1631011, 1629849, 1628797, 1627845, 1626982, 1626200, 1625492, 1624851, 1624272, 1623748, 1623275, + 1622848, 1622464, 1622118, 1621807, 1621529, 1621281, 1621060, 1620864, 1620690, 1620538, 1620404, 1620289, 1620189, 1620104, + 1620033, 1705611, 1704156, 1702317, 1700042, 1697276, 1693991, 1690217, 1686051, 1681647, 1677184, 1672822, 1668679, 1664821, + 1661278, 1658048, 1655118, 1652465, 1650066, 1647895, 1645931, 1644152, 1642541, 1641080, 1639755, 1638553, 1637461, 1636469, + 1635569, 1634750, 1634007, 1633333, 1632720, 1632165, 1631661, 1631205, 1630793, 1630420, 1630084, 1629781, 1629509, 1629265, + 1629046, 1628852, 1628679, 1628527, 1628393, 1628275, 1628174, 1628086, 1711886, 1710584, 1708924, 1706861, 1704342, 1701338, + 1697864, 1693992, 1689851, 1685599, 1681390, 1677344, 1673541, 1670018, 1666787, 1663839, 1661160, 1658727, 1656519, 1654516, + 1652698, 1651046, 1649545, 1648180, 1646939, 1645809, 1644780, 1643843, 1642990, 1642212, 1641505, 1640861, 1640275, 1639741, + 1639257, 1638817, 1638418, 1638056, 1637729, 1637433, 1637167, 1636927, 1636712, 1636519, 1636347, 1636195, 1636060, 1635942, + 1635838, 1717922, 1716758, 1715261, 1713389, 1711095, 1708347, 1705149, 1701555, 1697670, 1693632, 1689584, 1685649, 1681911, + 1678420, 1675196, 1672239, 1669538, 1667078, 1664837, 1662799, 1660943, 1659254, 1657715, 1656312, 1655033, 1653866, 1652801, + 1651829, 1650942, 1650131, 1649392, 1648717, 1648100, 1647538, 1647026, 1646559, 1646134, 1645747, 1645396, 1645077, 1644789, + 1644527, 1644292, 1644079, 1643889, 1643718, 1643566, 1643431, 1643311, 1723727, 1722690, 1721340, 1719643, 1717553, 1715038, + 1712095, 1708763, 1705125, 1701301, 1697421, 1693606, 1689946, 1686497, 1683290, 1680331, 1677616, 1675133, 1672864, 1670793, + 1668904, 1667179, 1665604, 1664165, 1662850, 1661648, 1660549, 1659543, 1658623, 1657781, 1657010, 1656305, 1655660, 1655070, + 1654530, 1654037, 1653586, 1653175, 1652800, 1652459, 1652148, 1651866, 1651610, 1651378, 1651169, 1650980, 1650811, 1650659, + 1650524, 1729321, 1728399, 1727184, 1725646, 1723741, 1721440, 1718732, 1715644, 1712243, 1708630, 1704923, 1701237, 1697665, + 1694269, 1691087, 1688134, 1685411, 1682910, 1680617, 1678518, 1676597, 1674840, 1673231, 1671759, 1670410, 1669175, 1668042, + 1667004, 1666052, 1665179, 1664378, 1663644, 1662970, 1662352, 1661786, 1661267, 1660792, 1660357, 1659959, 1659595, 1659263, + 1658960, 1658684, 1658433, 1658205, 1657999, 1657812, 1657644, 1657493, 1734710, 1733894, 1732803, 1731409, 1729674, 1727568, + 1725077, 1722218, 1719043, 1715636, 1712104, 1708554, 1705078, 1701745, 1698598, 1695659, 1692935, 1690421, 1688109, 1685986, + 1684037, 1682250, 1680610, 1679106, 1677725, 1676458, 1675294, 1674224, 1673242, 1672339, 1671509, 1670746, 1670045, 1669401, + 1668808, 1668264, 1667765, 1667306, 1666886, 1666500, 1666147, 1665823, 1665528, 1665258, 1665012, 1664788, 1664584, 1664400, + 1664233, 1739923, 1739204, 1738225, 1736963, 1735383, 1733456, 1731164, 1728518, 1725557, 1722351, 1718994, 1715584, 1712212, + 1708950, 1705846, 1702929, 1700209, 1697689, 1695361, 1693217, 1691244, 1689429, 1687760, 1686226, 1684815, 1683517, 1682323, + 1681224, 1680212, 1679280, 1678422, 1677631, 1676903, 1676233, 1675615, 1675046, 1674523, 1674041, 1673598, 1673191, 1672817, + 1672473, 1672158, 1671870, 1671606, 1671364, 1671144, 1670943, 1670760, 1744943, 1744313, 1743439, 1742298, 1740861, 1739097, + 1736990, 1734542, 1731784, 1728772, 1725588, 1722323, 1719062, 1715879, 1712827, 1709938, 1707231, 1704709, 1702372, 1700210, + 1698216, 1696377, 1694682, 1693121, 1691681, 1690355, 1689132, 1688005, 1686965, 1686005, 1685120, 1684303, 1683549, 1682853, + 1682211, 1681619, 1681072, 1680568, 1680103, 1679675, 1679280, 1678917, 1678583, 1678276, 1677994, 1677736, 1677499, 1677282, + 1677084, 1749810, 1749262, 1748483, 1747453, 1746145, 1744532, 1742595, 1740332, 1737764, 1734939, 1731925, 1728804, 1725660, + 1722563, 1719569, 1716716, 1714026, 1711509, 1709166, 1706992, 1704980, 1703119, 1701401, 1699813, 1698348, 1696994, 1695744, + 1694589, 1693522, 1692536, 1691625, 1690782, 1690003, 1689282, 1688616, 1688000, 1687431, 1686905, 1686419, 1685970, 1685555, + 1685173, 1684820, 1684495, 1684195, 1683920, 1683666, 1683434, 1683221, 1754516, 1754043, 1753352, 1752425, 1751237, 1749762, + 1747981, 1745889, 1743501, 1740854, 1738007, 1735032, 1732006, 1729001, 1726073, 1723263, 1720597, 1718091, 1715747, 1713564, + 1711537, 1709658, 1707918, 1706308, 1704817, 1703439, 1702163, 1700982, 1699889, 1698878, 1697941, 1697073, 1696270, 1695525, + 1694836, 1694198, 1693606, 1693059, 1692552, 1692082, 1691648, 1691246, 1690875, 1690532, 1690215, 1689923, 1689654, 1689405, + 1689177, 1759066, 1758663, 1758053, 1757220, 1756142, 1754795, 1753159, 1751227, 1749008, 1746530, 1743844, 1741014, 1738111, + 1735202, 1732346, 1729585, 1726950, 1724459, 1722119, 1719933, 1717895, 1716001, 1714242, 1712611, 1711098, 1709696, 1708396, + 1707191, 1706073, 1705037, 1704076, 1703185, 1702358, 1701591, 1700879, 1700219, 1699606, 1699037, 1698510, 1698021, 1697568, + 1697147, 1696758, 1696397, 1696064, 1695755, 1695470, 1695206, 1694963, 1763486, 1763148, 1762613, 1761867, 1760890, 1759660, + 1758158, 1756374, 1754312, 1751996, 1749466, 1746779, 1743998, 1741190, 1738410, 1735704, 1733105, 1730635, 1728304, 1726117, + 1724072, 1722165, 1720391, 1718740, 1717207, 1715783, 1714460, 1713232, 1712091, 1711032, 1710048, 1709133, 1708284, 1707494, + 1706760, 1706078, 1705445, 1704856, 1704308, 1703800, 1703328, 1702889, 1702482, 1702104, 1701753, 1701429, 1701127, 1700849, + 1700591, 1767770, 1767491, 1767025, 1766360, 1765477, 1764355, 1762976, 1761330, 1759416, 1757253, 1754873, 1752325, 1749668, + 1746962, 1744263, 1741618, 1739061, 1736617, 1734300, 1732116, 1730068, 1728152, 1726364, 1724697, 1723146, 1721701, 1720358, + 1719108, 1717945, 1716863, 1715857, 1714920, 1714049, 1713238, 1712483, 1711780, 1711126, 1710517, 1709950, 1709423, 1708932, + 1708476, 1708051, 1707656, 1707290, 1706949, 1706632, 1706338, 1706066, 1771931, 1771708, 1771306, 1770715, 1769918, 1768896, + 1767632, 1766113, 1764338, 1762319, 1760083, 1757672, 1755137, 1752536, 1749921, 1747341, 1744831, 1742418, 1740119, 1737943, + 1735895, 1733973, 1732174, 1730493, 1728925, 1727462, 1726099, 1724829, 1723645, 1722542, 1721515, 1720557, 1719664, 1718832, + 1718057, 1717334, 1716660, 1716032, 1715446, 1714900, 1714392, 1713918, 1713476, 1713064, 1712681, 1712325, 1711993, 1711684, + 1711397, 1775973, 1775802, 1775459, 1774936, 1774219, 1773290, 1772132, 1770732, 1769087, 1767204, 1765105, 1762826, 1760412, + 1757917, 1755390, 1752878, 1750419, 1748042, 1745765, 1743602, 1741557, 1739632, 1737825, 1736133, 1734550, 1733071, 1731690, + 1730401, 1729198, 1728075, 1727027, 1726049, 1725136, 1724284, 1723489, 1722746, 1722053, 1721406, 1720802, 1720238, 1719712, + 1719221, 1718762, 1718334, 1717935, 1717563, 1717216, 1716893, 1716592, 1779899, 1779775, 1779487, 1779028, 1778386, 1777543, + 1776483, 1775194, 1773669, 1771915, 1769947, 1767795, 1765501, 1763111, 1760674, 1758234, 1755831, 1753493, 1751244, 1749097, + 1747059, 1745134, 1743323, 1741621, 1740026, 1738533, 1737136, 1735829, 1734608, 1733466, 1732399, 1731402, 1730470, 1729598, + 1728784, 1728023, 1727311, 1726646, 1726024, 1725442, 1724898, 1724390, 1723915, 1723472, 1723057, 1722670, 1722308, 1721971, + 1721656, 1783723, 1783643, 1783406, 1783007, 1782433, 1781670, 1780701, 1779514, 1778103, 1776469, 1774626, 1772597, 1770419, + 1768135, 1765788, 1763423, 1761079, 1758785, 1756567, 1754439, 1752412, 1750491, 1748677, 1746969, 1745364, 1743858, 1742446, + 1741123, 1739885, 1738726, 1737640, 1736625, 1735674, 1734784, 1733951, 1733172, 1732442, 1731759, 1731119, 1730521, 1729960, + 1729436, 1728945, 1728485, 1728055, 1727653, 1727277, 1726925, 1726597, 1787435, 1787396, 1787207, 1786863, 1786353, 1785664, + 1784780, 1783689, 1782384, 1780864, 1779139, 1777229, 1775164, 1772984, 1770729, 1768441, 1766159, 1763914, 1761730, 1759626, + 1757613, 1755699, 1753886, 1752173, 1750561, 1749044, 1747619, 1746282, 1745028, 1743852, 1742750, 1741717, 1740749, 1739842, + 1738991, 1738194, 1737447, 1736747, 1736090, 1735475, 1734898, 1734358, 1733851, 1733377, 1732932, 1732515, 1732125, 1731759, + 1731417, 1791049, 1791049, 1790904, 1790612, 1790161, 1789541, 1788736, 1787735, 1786529, 1785116, 1783503, 1781706, 1779751, + 1777673, 1775510, 1773301, 1771084, 1768890, 1766744, 1764668, 1762673, 1760768, 1758958, 1757245, 1755626, 1754101, 1752665, + 1751315, 1750047, 1748856, 1747738, 1746689, 1745704, 1744780, 1743912, 1743098, 1742335, 1741618, 1740945, 1740314, 1739721, + 1739165, 1738643, 1738153, 1737694, 1737263, 1736858, 1736479, 1736124, 1794582, 1794617, 1794514, 1794269, 1793873, 1793316, + 1792585, 1791667, 1790553, 1789241, 1787733, 1786045, 1784197, 1782219, 1780147, 1778018, 1775867, 1773726, 1771623, 1769576, + 1767602, 1765710, 1763906, 1762193, 1760571, 1759039, 1757594, 1756233, 1754951, 1753746, 1752613, 1751548, 1750548, 1749607, + 1748724, 1747894, 1747113, 1746380, 1745692, 1745044, 1744436, 1743865, 1743328, 1742824, 1742350, 1741905, 1741487, 1741094, + 1740725, 1798006, 1798075, 1798011, 1797810, 1797467, 1796970, 1796307, 1795467, 1794440, 1793222, 1791816, 1790230, 1788485, + 1786606, 1784625, 1782576, 1780494, 1778410, 1776351, 1774338, 1772388, 1770512, 1768717, 1767008, 1765385, 1763848, 1762395, + 1761024, 1759732, 1758514, 1757368, 1756289, 1755273, 1754318, 1753419, 1752573, 1751778, 1751029, 1750325, 1749663, 1749040, + 1748454, 1747902, 1747384, 1746896, 1746437, 1746006, 1745600, 1745219, 1801367, 1801467, 1801438, 1801279, 1800983, 1800541, + 1799942, 1799174, 1798228, 1797099, 1795787, 1794300, 1792653, 1790869, 1788977, 1787009, 1784996, 1782970, 1780958, 1778982, + 1777058, 1775201, 1773417, 1771713, 1770091, 1768551, 1767093, 1765714, 1764411, 1763182, 1762023, 1760930, 1759900, 1758930, + 1758016, 1757156, 1756345, 1755582, 1754863, 1754186, 1753548, 1752948, 1752382, 1751849, 1751348, 1750875, 1750431, 1750012, + 1749618, 1804636, 1804765, 1804770, 1804649, 1804399, 1804009, 1803469, 1802769, 1801899, 1800853, 1799631, 1798237, 1796685, + 1794994, 1793189, 1791301, 1789359, 1787393, 1785430, 1783493, 1781599, 1779763, 1777993, 1776298, 1774679, 1773138, 1771676, + 1770290, 1768979, 1767739, 1766568, 1765463, 1764421, 1763437, 1762509, 1761635, 1760810, 1760032, 1759299, 1758608, 1757956, + 1757341, 1756762, 1756216, 1755701, 1755215, 1754758, 1754326, 1753920, 1807830, 1807986, 1808022, 1807938, 1807729, 1807387, + 1806903, 1806266, 1805467, 1804500, 1803362, 1802057, 1800596, 1798994, 1797276, 1795466, 1793595, 1791691, 1789779, 1787883, + 1786021, 1784209, 1782456, 1780771, 1779157, 1777618, 1776153, 1774762, 1773444, 1772195, 1771014, 1769898, 1768843, 1767847, + 1766906, 1766018, 1765179, 1764388, 1763641, 1762936, 1762270, 1761642, 1761049, 1760490, 1759962, 1759463, 1758993, 1758549, + 1758131, 1810934, 1811115, 1811181, 1811131, 1810962, 1810666, 1810234, 1809656, 1808924, 1808031, 1806973, 1805753, 1804379, + 1802864, 1801229, 1799499, 1797699, 1795856, 1793998, 1792145, 1790318, 1788532, 1786799, 1785127, 1783521, 1781985, 1780520, + 1779126, 1777802, 1776546, 1775356, 1774230, 1773164, 1772156, 1771203, 1770302, 1769451, 1768646, 1767886, 1767168, 1766489, + 1765848, 1765242, 1764670, 1764129, 1763619, 1763136, 1762681, 1762250, 1813979, 1814185, 1814278, 1814259, 1814127, 1813873, + 1813490, 1812968, 1812298, 1811474, 1810492, 1809352, 1808060, 1806629, 1805076, 1803422, 1801693, 1799913, 1798109, 1796301, + 1794511, 1792753, 1791042, 1789384, 1787788, 1786257, 1784794, 1783398, 1782070, 1780807, 1779610, 1778474, 1777398, 1776379, + 1775414, 1774501, 1773638, 1772821, 1772048, 1771317, 1770625, 1769972, 1769353, 1768769, 1768216, 1767693, 1767198, 1766731, + 1766289, 1816952, 1817180, 1817299, 1817310, 1817212, 1816998, 1816660, 1816190, 1815579, 1814820, 1813909, 1812845, 1811633, + 1810282, 1808808, 1807230, 1805570, 1803854, 1802105, 1800344, 1798592, 1796866, 1795177, 1793537, 1791953, 1790429, 1788968, + 1787573, 1786242, 1784974, 1783770, 1782626, 1781541, 1780512, 1779536, 1778612, 1777737, 1776908, 1776123, 1775380, 1774676, + 1774010, 1773380, 1772783, 1772218, 1771683, 1771177, 1770698, 1770245, 1819869, 1820117, 1820260, 1820299, 1820233, 1820056, + 1819761, 1819339, 1818783, 1818085, 1817241, 1816249, 1815112, 1813838, 1812440, 1810936, 1809346, 1807693, 1805999, 1804286, + 1802574, 1800880, 1799217, 1797596, 1796025, 1794510, 1793055, 1791660, 1790328, 1789057, 1787847, 1786696, 1785602, 1784564, + 1783579, 1782644, 1781757, 1780917, 1780121, 1779366, 1778650, 1777972, 1777330, 1776721, 1776144, 1775598, 1775080, 1774590, + 1774125, 1822715, 1822983, 1823148, 1823213, 1823177, 1823035, 1822780, 1822404, 1821900, 1821259, 1820478, 1819554, 1818489, + 1817289, 1815965, 1814533, 1813011, 1811421, 1809783, 1808120, 1806450, 1804790, 1803154, 1801554, 1799999, 1798495, 1797046, + 1795654, 1794322, 1793049, 1791834, 1790678, 1789577, 1788530, 1787536, 1786591, 1785694, 1784843, 1784036, 1783270, 1782543, + 1781854, 1781200, 1780580, 1779992, 1779434, 1778905, 1778404, 1777929, 1825507, 1825792, 1825978, 1826068, 1826060, 1825950, + 1825733, 1825400, 1824944, 1824358, 1823636, 1822776, 1821780, 1820650, 1819398, 1818035, 1816581, 1815052, 1813471, 1811858, + 1810230, 1808606, 1807000, 1805423, 1803885, 1802393, 1800952, 1799565, 1798234, 1796960, 1795742, 1794581, 1793473, 1792419, + 1791416, 1790463, 1789556, 1788695, 1787877, 1787100, 1786363, 1785662, 1784998, 1784367, 1783768, 1783199, 1782659, 1782147, + 1781661, 1828228, 1828531, 1828737, 1828849, 1828868, 1828789, 1828607, 1828314, 1827904, 1827369, 1826704, 1825906, 1824974, + 1823912, 1822729, 1821435, 1820045, 1818579, 1817055, 1815491, 1813908, 1812321, 1810745, 1809193, 1807674, 1806197, 1804766, + 1803385, 1802057, 1800783, 1799564, 1798399, 1797286, 1796226, 1795215, 1794254, 1793338, 1792468, 1791640, 1790853, 1790105, + 1789395, 1788719, 1788078, 1787468, 1786889, 1786339, 1785816, 1785320, 1830896, 1831215, 1831440, 1831574, 1831618, 1831568, + 1831419, 1831164, 1830796, 1830310, 1829698, 1828957, 1828087, 1827090, 1825973, 1824745, 1823420, 1822014, 1820546, 1819034, + 1817495, 1815946, 1814403, 1812877, 1811379, 1809917, 1808498, 1807125, 1805801, 1804529, 1803309, 1802141, 1801025, 1799959, + 1798942, 1797972, 1797049, 1796169, 1795332, 1794536, 1793778, 1793058, 1792372, 1791720, 1791101, 1790511, 1789951, 1789418, + 1788912, 1833512, 1833846, 1834088, 1834243, 1834310, 1834287, 1834169, 1833950, 1833623, 1833181, 1832619, 1831934, 1831123, + 1830187, 1829133, 1827969, 1826707, 1825361, 1823949, 1822487, 1820994, 1819484, 1817974, 1816476, 1815000, 1813556, 1812149, + 1810785, 1809468, 1808199, 1806979, 1805810, 1804690, 1803619, 1802596, 1801620, 1800689, 1799802, 1798956, 1798151, 1797384, + 1796654, 1795958, 1795297, 1794667, 1794068, 1793498, 1792955, 1792439, 1836077, 1836424, 1836683, 1836856, 1836945, 1836948, + 1836859, 1836673, 1836384, 1835985, 1835471, 1834837, 1834082, 1833206, 1832213, 1831110, 1829908, 1828621, 1827264, 1825854, + 1824406, 1822937, 1821461, 1819992, 1818540, 1817114, 1815722, 1814369, 1813058, 1811793, 1810575, 1809405, 1808283, 1807209, + 1806181, 1805199, 1804261, 1803367, 1802513, 1801699, 1800923, 1800184, 1799479, 1798808, 1798169, 1797560, 1796981, 1796429, + 1795903, 1838590, 1838950, 1839224, 1839415, 1839525, 1839551, 1839490, 1839336, 1839083, 1838724, 1838255, 1837670, 1836968, + 1836148, 1835213, 1834170, 1833027, 1831798, 1830495, 1829135, 1827733, 1826305, 1824865, 1823426, 1821999, 1820593, 1819217, + 1817876, 1816574, 1815314, 1814099, 1812930, 1811807, 1810730, 1809698, 1808711, 1807767, 1806865, 1806004, 1805182, 1804398, + 1803650, 1802937, 1802257, 1801608, 1800990, 1800401, 1799840, 1799305, 1841051, 1841424, 1841713, 1841921, 1842050, 1842099, + 1842064, 1841939, 1841720, 1841399, 1840972, 1840434, 1839782, 1839016, 1838137, 1837151, 1836066, 1834893, 1833644, 1832334, + 1830978, 1829591, 1828188, 1826780, 1825379, 1823995, 1822636, 1821307, 1820015, 1818763, 1817552, 1816384, 1815261, 1814182, + 1813147, 1812155, 1811206, 1810298, 1809430, 1808601, 1807809, 1807053, 1806331, 1805643, 1804986, 1804359, 1803761, 1803191, + 1802647, 1843463, 1843847, 1844149, 1844373, 1844521, 1844591, 1844580, 1844484, 1844297, 1844012, 1843625, 1843131, 1842527, + 1841812, 1840987, 1840056, 1839026, 1837908, 1836712, 1835452, 1834142, 1832797, 1831430, 1830054, 1828681, 1827320, 1825979, + 1824665, 1823384, 1822139, 1820934, 1819769, 1818647, 1817567, 1816530, 1815535, 1814581, 1813667, 1812793, 1811957, 1811158, + 1810395, 1809665, 1808968, 1808303, 1807668, 1807061, 1806483, 1805930, 1845842, 1846237, 1846552, 1846790, 1846955, 1847045, + 1847057, 1846987, 1846829, 1846578, 1846229, 1845777, 1845218, 1844551, 1843777, 1842899, 1841923, 1840858, 1839713, 1838503, + 1837239, 1835935, 1834606, 1833263, 1831917, 1830580, 1829259, 1827961, 1826692, 1825456, 1824256, 1823096, 1821975, 1820895, + 1819856, 1818858, 1817900, 1816982, 1816102, 1815260, 1814454, 1813683, 1812946, 1812241, 1811568, 1810925, 1810310, 1809723, + 1809162, 1848171, 1848576, 1848903, 1849155, 1849336, 1849445, 1849479, 1849434, 1849304, 1849085, 1848772, 1848359, 1847843, + 1847223, 1846498, 1845671, 1844746, 1843733, 1842639, 1841476, 1840258, 1838996, 1837704, 1836395, 1835079, 1833766, 1832465, + 1831184, 1829928, 1828703, 1827511, 1826355, 1825237, 1824158, 1823118, 1822118, 1821157, 1820235, 1819350, 1818502, 1817690, + 1816912, 1816168, 1815456, 1814775, 1814124, 1813501, 1812906, 1812337, 1850450, 1850865, 1851203, 1851469, 1851665, 1851792, + 1851846, 1851824, 1851722, 1851533, 1851253, 1850878, 1850403, 1849827, 1849149, 1848371, 1847497, 1846533, 1845489, 1844374, + 1843201, 1841981, 1840728, 1839452, 1838166, 1836879, 1835600, 1834337, 1833096, 1831881, 1830698, 1829548, 1828434, 1827357, + 1826317, 1825316, 1824352, 1823427, 1822538, 1821685, 1820867, 1820083, 1819333, 1818614, 1817926, 1817267, 1816637, 1816034, + 1815457, 1852680, 1853103, 1853452, 1853731, 1853942, 1854085, 1854159, 1854160, 1854083, 1853923, 1853675, 1853336, 1852900, + 1852366, 1851733, 1851002, 1850176, 1849262, 1848266, 1847198, 1846069, 1844892, 1843676, 1842435, 1841180, 1839920, 1838664, + 1837420, 1836194, 1834992, 1833818, 1832675, 1831566, 1830492, 1829454, 1828452, 1827487, 1826558, 1825666, 1824809, 1823986, + 1823197, 1822440, 1821715, 1821020, 1820354, 1819717, 1819107, 1818523, 136533, 136533, 136533, 136533, 136533, 136533, + 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 135924, 125277, 108081, 91368, 77552, + 66660, 58112, 51334, 45876, 41412, 37706, 34587, 31931, 29644, 27657, 25914, 24375, 23005, 21780, + 20677, 19679, 18772, 17944, 17186, 16489, 15845, 15250, 14698, 14184, 13704, 13256, 12836, 12442, + 12071, 11721, 11392, 11080, 10784, 10504, 10238, 9986, 9745, 9516, 9297, 9088, 8888, 8697, + 8513, 8338, 8169, 8007, 7852, 7702, 7558, 7419, 7285, 7156, 7031, 6911, 6795, 6682, + 6574, 6468, 6366, 6267, 6172, 6079, 5989, 5901, 5816, 5733, 5653, 5575, 5499, 5425, + 5353, 5283, 5215, 5148, 5083, 5020, 4959 +]; +/// PMOS log-domain current table, corner mos_tt, IHP-Open-PDK 21133f21, L 0.45 um, 27 C, at the source-to-bulk voltage Vsb = 1.25 V (slice 5): the tag word (4294967295), then the 4753 words ix * 49 + iy of log2(Id / F) in 1/65536 octave over 2^-8 of a linear-table word (1.164 pA), then the 97 rv words; the format of TT_LG_P (deck psp103_idpa_vsb_tt.cir, blocks lam_p_5 and r_5). +pub const VSB_P5 : [4851]u32 = [ + 4294967295, 0, 59100, 35773, 32332, 33149, 35246, 37953, 40869, 43855, 46868, 49896, 52939, 55997, + 59073, 62167, 65281, 68416, 71572, 74750, 77949, 81170, 84411, 87673, 90953, 94253, 97570, 100906, + 104264, 107648, 111070, 114548, 118113, 121816, 125726, 130220, 134983, 140401, 146691, 154095, 162858, 173200, + 185274, 199141, 214750, 231945, 250492, 270110, 290509, 311414, 0, 58704, 34759, 31552, 32981, 35157, + 37821, 40699, 43647, 46620, 49606, 52605, 55620, 58651, 61701, 64771, 67862, 70975, 74111, 77269, + 80449, 83651, 86874, 90118, 93381, 96663, 99964, 103286, 106632, 110010, 113434, 116930, 120536, 124311, + 128578, 133068, 138118, 143930, 150734, 158779, 168303, 179494, 192464, 207218, 223649, 241558, 260682, 280730, + 301417, 0, 57458, 34232, 30935, 32883, 35401, 38027, 40859, 43761, 46686, 49624, 52573, 55536, + 58516, 61514, 64533, 67574, 70637, 73723, 76833, 79965, 83121, 86299, 89499, 92719, 95960, 99221, + 102502, 105806, 109138, 112509, 115938, 119457, 123113, 126981, 131432, 136157, 141540, 147798, 155174, 163916, + 174240, 186303, 200164, 215770, 232965, 251514, 271134, 291534, 0, 57392, 34846, 30892, 33021, 36100, + 38779, 41547, 44391, 47258, 50135, 53022, 55922, 58839, 61775, 64731, 67710, 70712, 73737, 76787, + 79862, 82960, 86083, 89228, 92396, 95585, 98796, 102027, 105281, 108561, 111874, 115236, 118671, 122218, + 125936, 130146, 134581, 139578, 145339, 152094, 160093, 169574, 180726, 193662, 208386, 224792, 242681, 261787, + 281820, 0, 58027, 35393, 31932, 33906, 37425, 40390, 43087, 45851, 48640, 51438, 54244, 57064, + 59899, 62754, 65630, 68528, 71451, 74399, 77372, 80371, 83396, 86446, 89521, 92619, 95741, 98886, + 102053, 105243, 108458, 111704, 114990, 118337, 121775, 125353, 129142, 133512, 138159, 143463, 149641, 156936, + 165596, 175841, 187825, 201612, 217150, 234285, 252781, 272355, 0, 59863, 38073, 35010, 36275, 39869, + 43286, 45976, 48626, 51307, 53997, 56696, 59406, 62132, 64878, 67646, 70437, 73254, 76097, 78967, + 81864, 84789, 87741, 90719, 93724, 96754, 99809, 102888, 105992, 109120, 112278, 115473, 118718, 122038, + 125472, 129077, 133169, 137487, 142365, 147999, 154623, 162485, 171822, 182829, 195620, 210206, 226484, 244256, + 263261, 0, 63637, 43021, 39657, 41073, 44386, 48074, 50933, 53439, 55967, 58508, 61056, 63617, + 66194, 68791, 71410, 74055, 76726, 79425, 82153, 84910, 87696, 90512, 93356, 96230, 99131, 102060, + 105016, 107998, 111007, 114045, 117117, 120234, 123413, 126686, 130098, 133720, 137910, 142376, 147489, 153461, + 160536, 168961, 178957, 190688, 204222, 219519, 236432, 254728, 0, 70357, 51367, 48253, 49702, 52227, + 55784, 58886, 61272, 63590, 65926, 68272, 70630, 73004, 75399, 77817, 80262, 82735, 85237, 87769, + 90333, 92928, 95555, 98214, 100904, 103625, 106377, 109158, 111968, 114808, 117679, 120583, 123528, 126528, + 129605, 132795, 136155, 139980, 144031, 148623, 153948, 160234, 167727, 176667, 187256, 199620, 213784, 229661, + 247068, 0, 81257, 64401, 61525, 62465, 64756, 67832, 70932, 73297, 75356, 77426, 79509, 81604, + 83716, 85848, 88004, 90187, 92399, 94642, 96916, 99223, 101563, 103937, 106345, 108786, 111262, 113770, + 116312, 118886, 121492, 124131, 126805, 129518, 132281, 135108, 138029, 141086, 144344, 148129, 152181, 156844, + 162320, 168846, 176667, 186012, 197058, 209898, 224516, 240790, 20603, 97576, 83268, 80622, 81319, 83322, + 85560, 88288, 90627, 92433, 94187, 95956, 97737, 99533, 101349, 103188, 105054, 106947, 108871, 110826, + 112813, 114835, 116890, 118981, 121106, 123267, 125463, 127694, 129960, 132260, 134595, 136966, 139376, 141831, + 144344, 146933, 149630, 152485, 155751, 159232, 163200, 167835, 173348, 179977, 187962, 197520, 208805, 221881, + 236705, 67923, 120175, 108557, 106125, 106518, 108163, 109736, 111880, 113984, 115607, 117031, 118463, 119907, + 121364, 122837, 124331, 125848, 127390, 128959, 130558, 132187, 133847, 135539, 137265, 139025, 140819, 142647, + 144510, 146408, 148341, 150308, 152312, 154354, 156438, 158571, 160767, 163049, 165450, 168025, 171035, 174283, + 178050, 182516, 187894, 194420, 202327, 211819, 223035, 236024, 115632, 149176, 140040, 137793, 137887, 138923, + 140359, 141816, 143494, 144943, 146088, 147202, 148325, 149458, 150604, 151764, 152943, 154142, 155363, 156608, + 157879, 159176, 160501, 161855, 163238, 164651, 166096, 167571, 169078, 170617, 172189, 173794, 175433, 177110, + 178828, 180597, 182432, 184355, 186402, 188759, 191291, 194203, 197635, 201767, 206804, 212974, 220501, 229583, + 240353, 163586, 183901, 176790, 174686, 174531, 175236, 176346, 177345, 178577, 179776, 180732, 181583, 182437, + 183297, 184163, 185040, 185929, 186832, 187751, 188687, 189643, 190619, 191616, 192635, 193677, 194743, 195834, + 196950, 198092, 199261, 200456, 201679, 202931, 204213, 205529, 206883, 208285, 209749, 211298, 212968, 214929, + 217062, 219556, 222544, 226190, 230688, 236252, 243096, 251411, 211696, 223180, 217553, 215550, 215211, 215665, + 216411, 217279, 218116, 219036, 219847, 220515, 221164, 221816, 222471, 223131, 223797, 224471, 225156, 225852, + 226561, 227283, 228019, 228771, 229540, 230325, 231128, 231949, 232790, 233650, 234530, 235432, 236354, 237300, + 238269, 239267, 240297, 241368, 242495, 243698, 245081, 246576, 248300, 250346, 252830, 255898, 259723, 264497, + 270421, 259910, 265749, 261129, 259191, 258727, 259007, 259571, 260208, 260870, 261559, 262225, 262783, 263292, + 263799, 264306, 264813, 265322, 265836, 266354, 266879, 267411, 267951, 268500, 269059, 269628, 270208, 270799, + 271403, 272020, 272649, 273292, 273950, 274622, 275310, 276015, 276737, 277481, 278251, 279055, 279904, 280859, + 281880, 283038, 284389, 286009, 287996, 290470, 293580, 297492, 308618, 310778, 306689, 304725, 304147, 304298, + 304733, 305248, 305797, 306309, 306844, 307329, 307752, 308164, 308572, 308979, 309385, 309792, 310201, 310612, + 311026, 311444, 311868, 312296, 312731, 313172, 313619, 314074, 314537, 315008, 315487, 315976, 316473, 316981, + 317499, 318029, 318572, 319130, 319707, 320311, 320950, 321673, 322450, 323336, 324376, 325630, 327175, 329108, + 331547, 364665, 361492, 355731, 352587, 351317, 351080, 351288, 351659, 352075, 352509, 352941, 353361, 353736, + 354087, 354434, 354777, 355118, 355457, 355796, 356135, 356474, 356815, 357158, 357504, 357852, 358203, 358558, + 358917, 359280, 359648, 360021, 360399, 360782, 361172, 361567, 361969, 362379, 362798, 363228, 363671, 364135, + 364643, 365179, 365775, 366455, 367253, 368215, 369398, 370878, 426995, 417263, 408133, 402736, 400115, 399110, + 398892, 399024, 399300, 399628, 399987, 400345, 400672, 401000, 401308, 401612, 401912, 402210, 402505, 402800, + 403093, 403387, 403680, 403974, 404269, 404565, 404862, 405161, 405462, 405766, 406072, 406381, 406692, 407007, + 407325, 407647, 407973, 408304, 408641, 408985, 409340, 409709, 410110, 410534, 411002, 411532, 412151, 412891, + 413795, 491277, 475527, 462701, 454683, 450343, 448266, 447401, 447149, 447199, 447390, 447650, 447947, 448237, + 448527, 448816, 449094, 449369, 449641, 449910, 450178, 450443, 450708, 450971, 451234, 451496, 451759, 452021, + 452284, 452548, 452812, 453077, 453344, 453612, 453881, 454152, 454425, 454699, 454977, 455257, 455541, 455830, + 456126, 456433, 456763, 457110, 457489, 457915, 458404, 458982, 555196, 534560, 518389, 507848, 501713, 498409, + 496732, 495955, 495669, 495650, 495772, 495973, 496212, 496465, 496722, 496982, 497238, 497493, 497746, 497997, + 498245, 498492, 498738, 498982, 499225, 499467, 499709, 499950, 500191, 500432, 500673, 500914, 501155, 501397, + 501640, 501883, 502127, 502372, 502618, 502867, 503117, 503371, 503630, 503901, 504180, 504475, 504794, 505146, + 505545, 617935, 593483, 574490, 561714, 553885, 549337, 546771, 545371, 544657, 544348, 544276, 544343, 544493, + 544688, 544905, 545135, 545373, 545612, 545851, 546089, 546326, 546562, 546796, 547029, 547261, 547491, 547720, + 547949, 548176, 548403, 548630, 548856, 549082, 549308, 549533, 549759, 549984, 550210, 550437, 550664, 550892, + 551121, 551353, 551588, 551832, 552081, 552342, 552620, 552922, 679344, 651920, 630599, 615907, 606557, 600831, + 597370, 595305, 594104, 593443, 593120, 593009, 593033, 593140, 593297, 593484, 593690, 593907, 594129, 594357, + 594583, 594810, 595036, 595261, 595485, 595708, 595930, 596151, 596370, 596589, 596807, 597025, 597241, 597458, + 597673, 597889, 598104, 598319, 598533, 598748, 598963, 599178, 599394, 599612, 599834, 600058, 600288, 600526, + 600776, 739494, 709735, 686498, 670185, 659500, 652696, 648381, 645649, 643936, 642885, 642270, 641941, 641804, + 641793, 641864, 641990, 642151, 642335, 642534, 642742, 642955, 643171, 643389, 643608, 643826, 644044, 644260, + 644476, 644691, 644905, 645118, 645330, 645542, 645752, 645962, 646172, 646381, 646589, 646797, 647005, 647212, + 647419, 647627, 647835, 648044, 648255, 648468, 648685, 648909, 798516, 766903, 742082, 724397, 712551, 704781, + 699673, 696299, 694073, 692616, 691684, 691109, 690782, 690627, 690589, 690632, 690731, 690869, 691033, 691215, + 691409, 691611, 691818, 692027, 692238, 692450, 692662, 692875, 693086, 693297, 693506, 693716, 693924, 694131, + 694338, 694544, 694750, 694955, 695159, 695362, 695566, 695769, 695971, 696174, 696377, 696580, 696785, 696991, + 697200, 856526, 823433, 797296, 778447, 765592, 756963, 751132, 747155, 744432, 742571, 741311, 740474, 739938, + 739617, 739450, 739392, 739414, 739491, 739609, 739755, 739922, 740103, 740293, 740491, 740692, 740897, 741104, + 741311, 741519, 741726, 741934, 742141, 742347, 742553, 742758, 742962, 743166, 743369, 743571, 743773, 743974, + 744174, 744375, 744575, 744774, 744974, 745174, 745374, 745576, 913604, 879337, 852105, 832264, 818534, 809144, + 802659, 798126, 794933, 792678, 791091, 789985, 789230, 788730, 788418, 788245, 788174, 788178, 788238, 788339, + 788470, 788623, 788792, 788973, 789161, 789356, 789555, 789756, 789959, 790164, 790368, 790573, 790778, 790982, + 791186, 791389, 791592, 791794, 791996, 792197, 792397, 792597, 792796, 792995, 793193, 793392, 793589, 793788, + 793986, 969776, 934609, 906471, 885783, 871293, 861232, 854159, 849117, 845485, 842856, 840952, 839579, 838600, + 837915, 837450, 837151, 836977, 836897, 836889, 836936, 837023, 837141, 837282, 837441, 837613, 837794, 837983, + 838176, 838373, 838573, 838774, 838976, 839179, 839383, 839586, 839788, 839991, 840193, 840395, 840596, 840797, + 840997, 841196, 841395, 841593, 841791, 841989, 842186, 842384, 1024995, 989199, 960328, 938921, 923773, 913121, + 905525, 900021, 895986, 893007, 890801, 889169, 887970, 887098, 886475, 886044, 885760, 885590, 885507, 885492, + 885529, 885607, 885715, 885848, 885998, 886163, 886338, 886522, 886711, 886905, 887102, 887301, 887502, 887704, + 887907, 888110, 888312, 888515, 888717, 888920, 889121, 889322, 889523, 889723, 889923, 890122, 890321, 890519, + 890717, 1079119, 1042998, 1013568, 991560, 975845, 964679, 956620, 950703, 946302, 943000, 940512, 938635, 937223, + 936168, 935390, 934826, 934430, 934165, 934003, 933922, 933904, 933936, 934008, 934111, 934237, 934383, 934543, + 934714, 934895, 935082, 935274, 935470, 935669, 935870, 936072, 936275, 936479, 936683, 936887, 937091, 937295, + 937498, 937701, 937903, 938105, 938307, 938508, 938708, 938908, 1131878, 1095805, 1066007, 1043515, 1027322, 1015713, + 1007251, 1000970, 996243, 992650, 989904, 987799, 986188, 984960, 984032, 983338, 982831, 982472, 982230, 982081, + 982007, 981992, 982025, 982096, 982197, 982321, 982465, 982624, 982795, 982975, 983162, 983355, 983552, 983752, + 983955, 984159, 984365, 984571, 984778, 984986, 985193, 985400, 985606, 985813, 986019, 986224, 986429, 986633, + 986837, 1182866, 1147308, 1117374, 1094523, 1077939, 1065959, 1057153, 1050559, 1045546, 1041696, 1038720, 1036410, 1034617, + 1033229, 1032160, 1031345, 1030732, 1030282, 1029962, 1029747, 1029618, 1029556, 1029550, 1029589, 1029664, 1029768, 1029895, + 1030041, 1030202, 1030376, 1030559, 1030749, 1030945, 1031146, 1031351, 1031558, 1031767, 1031977, 1032188, 1032400, 1032613, + 1032825, 1033037, 1033249, 1033460, 1033672, 1033882, 1034092, 1034302, 1231526, 1197055, 1167276, 1144208, 1127325, 1115045, + 1105957, 1099100, 1093845, 1089774, 1086597, 1084107, 1082152, 1080620, 1079425, 1078498, 1077788, 1077254, 1076861, 1076584, + 1076402, 1076296, 1076253, 1076261, 1076312, 1076396, 1076508, 1076642, 1076795, 1076962, 1077142, 1077331, 1077528, 1077731, + 1077938, 1078149, 1078363, 1078579, 1078796, 1079015, 1079234, 1079453, 1079672, 1079891, 1080110, 1080329, 1080547, 1080764, + 1080981, 1277244, 1244500, 1215237, 1192119, 1175030, 1162520, 1153206, 1146134, 1140678, 1136421, 1133072, 1130426, 1128330, + 1126672, 1125363, 1124336, 1123538, 1122927, 1122467, 1122133, 1121901, 1121754, 1121676, 1121656, 1121682, 1121748, 1121845, + 1121969, 1122114, 1122276, 1122453, 1122641, 1122839, 1123044, 1123256, 1123471, 1123691, 1123913, 1124137, 1124363, 1124590, + 1124817, 1125044, 1125272, 1125499, 1125726, 1125952, 1126178, 1126403, 1319460, 1289051, 1260727, 1237756, 1220557, 1207879, + 1198390, 1191144, 1185522, 1181107, 1177612, 1174830, 1172611, 1170840, 1169430, 1168312, 1167434, 1166751, 1166229, 1165840, + 1165561, 1165374, 1165262, 1165212, 1165215, 1165262, 1165344, 1165455, 1165591, 1165748, 1165921, 1166108, 1166305, 1166512, + 1166726, 1166946, 1167170, 1167398, 1167628, 1167860, 1168094, 1168328, 1168563, 1168798, 1169033, 1169268, 1169502, 1169735, + 1169968, 1357837, 1330223, 1303284, 1280685, 1263472, 1250679, 1241049, 1233658, 1227893, 1223341, 1219715, 1216811, 1214479, + 1212603, 1211098, 1209894, 1208937, 1208184, 1207600, 1207156, 1206829, 1206599, 1206450, 1206370, 1206346, 1206369, 1206433, + 1206529, 1206653, 1206799, 1206965, 1207146, 1207340, 1207545, 1207758, 1207978, 1208204, 1208434, 1208667, 1208903, 1209140, + 1209379, 1209619, 1209859, 1210099, 1210338, 1210577, 1210816, 1211054, 1392318, 1367725, 1342578, 1320600, 1303472, 1290604, + 1280856, 1273337, 1267441, 1262760, 1259011, 1255989, 1253546, 1251568, 1249967, 1248676, 1247639, 1246813, 1246163, 1245660, + 1245280, 1245003, 1244812, 1244694, 1244637, 1244632, 1244670, 1244745, 1244850, 1244981, 1245133, 1245303, 1245487, 1245684, + 1245891, 1246107, 1246328, 1246555, 1246787, 1247021, 1247258, 1247497, 1247736, 1247977, 1248218, 1248458, 1248699, 1248938, + 1249178, 1423104, 1401513, 1378463, 1357364, 1340430, 1327524, 1317674, 1310032, 1304008, 1299200, 1295327, 1292187, 1289631, + 1287547, 1285847, 1284464, 1283342, 1282438, 1281716, 1281147, 1280706, 1280374, 1280134, 1279971, 1279874, 1279833, 1279839, + 1279884, 1279963, 1280071, 1280202, 1280354, 1280523, 1280705, 1280899, 1281103, 1281315, 1281534, 1281757, 1281984, 1282215, + 1282448, 1282683, 1282919, 1283156, 1283393, 1283630, 1283866, 1284103, 1450553, 1431767, 1410971, 1390997, 1374381, 1361479, + 1351538, 1343776, 1337624, 1332687, 1328687, 1325425, 1322752, 1320558, 1318754, 1317272, 1316059, 1315070, 1314269, 1313628, + 1313120, 1312726, 1312429, 1312214, 1312070, 1311984, 1311950, 1311959, 1312005, 1312083, 1312187, 1312313, 1312459, 1312621, + 1312796, 1312983, 1313178, 1313382, 1313592, 1313807, 1314027, 1314249, 1314474, 1314701, 1314929, 1315158, 1315388, 1315617, + 1315846, 1475080, 1458801, 1440266, 1421625, 1405468, 1392624, 1382608, 1374730, 1368450, 1363382, 1359253, 1355866, 1353073, + 1350763, 1348851, 1347267, 1345958, 1344879, 1343994, 1343273, 1342692, 1342231, 1341871, 1341598, 1341399, 1341264, 1341184, + 1341151, 1341157, 1341199, 1341269, 1341365, 1341482, 1341618, 1341769, 1341933, 1342108, 1342292, 1342484, 1342682, 1342886, + 1343094, 1343305, 1343519, 1343735, 1343952, 1344170, 1344389, 1344608, 1497098, 1482999, 1466615, 1449447, 1433899, 1421181, + 1411115, 1403131, 1396725, 1391526, 1387267, 1383753, 1380838, 1378412, 1376388, 1374699, 1373290, 1372117, 1371144, 1370341, + 1369683, 1369149, 1368722, 1368386, 1368129, 1367940, 1367809, 1367728, 1367691, 1367692, 1367724, 1367785, 1367869, 1367974, + 1368097, 1368234, 1368385, 1368546, 1368716, 1368894, 1369079, 1369269, 1369463, 1369661, 1369861, 1370064, 1370268, 1370474, + 1370680, 1516982, 1504748, 1490331, 1474695, 1459900, 1447395, 1437314, 1429237, 1422712, 1417386, 1412998, 1409358, 1406321, + 1403777, 1401641, 1399846, 1398336, 1397068, 1396004, 1395117, 1394379, 1393770, 1393273, 1392871, 1392552, 1392305, 1392121, + 1391990, 1391906, 1391862, 1391854, 1391876, 1391925, 1391996, 1392088, 1392196, 1392318, 1392454, 1392600, 1392755, 1392918, + 1393087, 1393262, 1393442, 1393625, 1393811, 1394000, 1394191, 1394383, 1535036, 1524386, 1511721, 1497604, 1483683, 1471487, + 1461441, 1453292, 1446659, 1441212, 1436700, 1432937, 1429781, 1427122, 1424875, 1422974, 1421363, 1420000, 1418846, 1417873, + 1417055, 1416371, 1415802, 1415333, 1414951, 1414645, 1414405, 1414222, 1414089, 1413999, 1413948, 1413930, 1413941, 1413977, + 1414034, 1414111, 1414204, 1414312, 1414432, 1414562, 1414702, 1414850, 1415004, 1415164, 1415328, 1415497, 1415669, 1415843, + 1416020, 1551528, 1542222, 1531091, 1518422, 1505459, 1493673, 1483719, 1475529, 1468802, 1463243, 1458615, 1454734, 1451461, + 1448690, 1446335, 1444330, 1442621, 1441163, 1439921, 1438863, 1437965, 1437205, 1436564, 1436028, 1435583, 1435217, 1434920, + 1434684, 1434501, 1434365, 1434269, 1434209, 1434181, 1434180, 1434203, 1434247, 1434310, 1434388, 1434481, 1434586, 1434701, + 1434826, 1434958, 1435097, 1435242, 1435392, 1435546, 1435703, 1435864, 1566682, 1558516, 1548717, 1537388, 1525423, 1514142, + 1504346, 1496150, 1489350, 1483692, 1478953, 1474961, 1471577, 1468698, 1466239, 1464133, 1462328, 1460778, 1459448, 1458307, + 1457330, 1456495, 1455784, 1455180, 1454672, 1454246, 1453892, 1453603, 1453370, 1453186, 1453046, 1452944, 1452876, 1452837, + 1452825, 1452836, 1452867, 1452916, 1452980, 1453059, 1453149, 1453250, 1453359, 1453477, 1453602, 1453732, 1453868, 1454008, + 1454152, 1580680, 1573485, 1564835, 1554722, 1543757, 1533057, 1523490, 1515331, 1508481, 1502738, 1497900, 1493803, 1490315, + 1487333, 1484773, 1482571, 1480672, 1479034, 1477618, 1476396, 1475342, 1474433, 1473652, 1472983, 1472411, 1471926, 1471517, + 1471174, 1470891, 1470659, 1470474, 1470330, 1470222, 1470146, 1470098, 1470075, 1470074, 1470093, 1470129, 1470180, 1470245, + 1470321, 1470408, 1470504, 1470608, 1470719, 1470836, 1470958, 1471084, 1593660, 1587297, 1579641, 1570615, 1560619, 1550557, + 1541288, 1533213, 1526343, 1520532, 1515607, 1511414, 1507828, 1504748, 1502094, 1499799, 1497811, 1496087, 1494589, 1493288, + 1492159, 1491179, 1490330, 1489596, 1488963, 1488419, 1487955, 1487560, 1487227, 1486949, 1486719, 1486533, 1486385, 1486271, + 1486187, 1486130, 1486097, 1486086, 1486093, 1486117, 1486156, 1486208, 1486272, 1486346, 1486429, 1486520, 1486618, 1486722, + 1486832, 1605755, 1600109, 1593310, 1585250, 1576170, 1566776, 1557868, 1549927, 1543069, 1537210, 1532211, 1527932, 1524256, + 1521085, 1518340, 1515957, 1513884, 1512077, 1510500, 1509124, 1507922, 1506872, 1505957, 1505160, 1504467, 1503867, 1503348, + 1502901, 1502520, 1502195, 1501921, 1501693, 1501505, 1501354, 1501235, 1501144, 1501080, 1501038, 1501016, 1501013, 1501026, + 1501054, 1501094, 1501146, 1501208, 1501279, 1501358, 1501444, 1501536, 1617065, 1612038, 1605984, 1598775, 1590547, 1581830, + 1573333, 1565577, 1558766, 1552882, 1547824, 1543470, 1539711, 1536455, 1533626, 1531160, 1529005, 1527120, 1525467, 1524018, + 1522746, 1521630, 1520650, 1519792, 1519041, 1518385, 1517813, 1517316, 1516886, 1516516, 1516199, 1515930, 1515703, 1515515, + 1515360, 1515236, 1515140, 1515068, 1515018, 1514988, 1514975, 1514978, 1514995, 1515025, 1515066, 1515117, 1515177, 1515245, + 1515319, 1627681, 1623194, 1617786, 1611330, 1603881, 1595830, 1587781, 1580258, 1573530, 1567647, 1562545, 1558128, 1554295, + 1550962, 1548053, 1545509, 1543277, 1541317, 1539592, 1538072, 1536733, 1535552, 1534511, 1533594, 1532786, 1532075, 1531452, + 1530906, 1530429, 1530014, 1529655, 1529345, 1529080, 1528854, 1528665, 1528508, 1528380, 1528278, 1528200, 1528143, 1528104, + 1528083, 1528077, 1528084, 1528104, 1528135, 1528176, 1528226, 1528283, 1637678, 1633663, 1628821, 1623026, 1616285, 1608877, + 1601298, 1594049, 1587442, 1581585, 1576459, 1571990, 1568093, 1564689, 1561707, 1559089, 1556785, 1554754, 1552959, 1551373, + 1549969, 1548726, 1547625, 1546650, 1545787, 1545024, 1544351, 1543757, 1543234, 1542775, 1542374, 1542024, 1541721, 1541460, + 1541236, 1541047, 1540887, 1540756, 1540649, 1540565, 1540501, 1540455, 1540426, 1540412, 1540411, 1540422, 1540444, 1540475, + 1540516, 1647105, 1643505, 1639159, 1633949, 1627848, 1621049, 1613950, 1607008, 1600558, 1594757, 1589626, 1585120, 1581170, + 1577703, 1574654, 1571968, 1569596, 1567497, 1565638, 1563987, 1562522, 1561219, 1560061, 1559031, 1558115, 1557301, 1556579, + 1555938, 1555371, 1554870, 1554428, 1554039, 1553699, 1553403, 1553145, 1552923, 1552734, 1552573, 1552438, 1552328, 1552239, + 1552169, 1552117, 1552080, 1552059, 1552050, 1552053, 1552066, 1552089, 1656035, 1652801, 1648893, 1644199, 1638674, 1632444, + 1625823, 1619213, 1612952, 1607234, 1602119, 1597591, 1593597, 1590075, 1586967, 1584217, 1581782, 1579620, 1577698, 1575987, + 1574462, 1573102, 1571888, 1570805, 1569838, 1568975, 1568205, 1567519, 1566909, 1566366, 1565884, 1565457, 1565081, 1564750, + 1564459, 1564205, 1563985, 1563796, 1563634, 1563497, 1563383, 1563289, 1563214, 1563156, 1563113, 1563085, 1563069, 1563064, + 1563070, 1664512, 1661604, 1658081, 1653845, 1648837, 1643135, 1636981, 1630718, 1624674, 1619066, 1613989, 1609455, 1605429, + 1601861, 1598698, 1595891, 1593396, 1591175, 1589194, 1587425, 1585843, 1584429, 1583162, 1582027, 1581010, 1580100, 1579284, + 1578554, 1577901, 1577318, 1576797, 1576333, 1575921, 1575555, 1575232, 1574947, 1574698, 1574480, 1574290, 1574127, 1573988, + 1573871, 1573773, 1573694, 1573630, 1573582, 1573547, 1573525, 1573514, 1672566, 1669947, 1666768, 1662939, 1658396, 1653180, + 1647475, 1641568, 1635764, 1630291, 1625274, 1620750, 1616704, 1613099, 1609890, 1607032, 1604482, 1602205, 1600169, 1598345, + 1596710, 1595243, 1593925, 1592741, 1591677, 1590720, 1589860, 1589088, 1588394, 1587771, 1587212, 1586712, 1586265, 1585866, + 1585511, 1585196, 1584917, 1584671, 1584455, 1584266, 1584103, 1583962, 1583842, 1583741, 1583657, 1583589, 1583536, 1583496, + 1583467, 1680240, 1677880, 1675007, 1671541, 1667414, 1662645, 1657366, 1651816, 1646269, 1640955, 1636018, 1631521, 1627468, + 1623837, 1620588, 1617684, 1615085, 1612757, 1610668, 1608793, 1607107, 1605590, 1604224, 1602992, 1601882, 1600881, 1599978, + 1599164, 1598430, 1597769, 1597174, 1596638, 1596157, 1595726, 1595339, 1594994, 1594686, 1594412, 1594170, 1593956, 1593768, + 1593604, 1593462, 1593340, 1593236, 1593149, 1593077, 1593019, 1592974, 1687555, 1685428, 1682829, 1679687, 1675936, 1671575, + 1666699, 1661500, 1656221, 1651085, 1646249, 1641796, 1637751, 1634103, 1630824, 1627880, 1625236, 1622861, 1620725, 1618801, + 1617067, 1615502, 1614090, 1612813, 1611659, 1610615, 1609671, 1608817, 1608045, 1607346, 1606715, 1606145, 1605631, 1605168, + 1604751, 1604376, 1604040, 1603740, 1603472, 1603233, 1603021, 1602835, 1602671, 1602528, 1602404, 1602297, 1602207, 1602132, + 1602069, 1694558, 1692641, 1690288, 1687437, 1684023, 1680034, 1675534, 1670677, 1665672, 1660729, 1656012, 1651620, 1647595, + 1643941, 1640639, 1637662, 1634979, 1632561, 1630380, 1628410, 1626631, 1625021, 1623564, 1622244, 1621047, 1619962, 1618978, + 1618085, 1617275, 1616541, 1615875, 1615272, 1614725, 1614231, 1613784, 1613380, 1613017, 1612689, 1612395, 1612132, 1611897, + 1611688, 1611502, 1611339, 1611195, 1611069, 1610961, 1610868, 1610789, 1701257, 1699529, 1697398, 1694808, 1691699, 1688049, + 1683900, 1679372, 1674643, 1669905, 1665324, 1661009, 1657018, 1653368, 1650052, 1647049, 1644332, 1641876, 1639654, 1637642, + 1635820, 1634167, 1632668, 1631307, 1630069, 1628945, 1627922, 1626992, 1626146, 1625377, 1624677, 1624041, 1623463, 1622938, + 1622462, 1622030, 1621640, 1621286, 1620968, 1620680, 1620422, 1620191, 1619984, 1619800, 1619636, 1619492, 1619365, 1619255, + 1619159, 1707686, 1706128, 1704198, 1701844, 1699010, 1695669, 1691845, 1687631, 1683174, 1678650, 1674217, 1669994, 1666051, + 1662417, 1659095, 1656072, 1653328, 1650837, 1648578, 1646528, 1644665, 1642973, 1641433, 1640032, 1638756, 1637594, 1636534, + 1635568, 1634687, 1633883, 1633151, 1632483, 1631874, 1631320, 1630815, 1630356, 1629938, 1629559, 1629216, 1628905, 1628624, + 1628371, 1628143, 1627938, 1627755, 1627592, 1627448, 1627320, 1627208, 1713856, 1712454, 1710706, 1708565, 1705980, 1702920, + 1699397, 1695480, 1691291, 1686985, 1682712, 1678594, 1674711, 1671105, 1667787, 1664752, 1661985, 1659465, 1657173, 1655087, + 1653187, 1651457, 1649880, 1648441, 1647128, 1645929, 1644833, 1643832, 1642918, 1642081, 1641317, 1640618, 1639979, 1639396, + 1638863, 1638377, 1637934, 1637530, 1637162, 1636828, 1636525, 1636250, 1636001, 1635777, 1635574, 1635393, 1635231, 1635086, + 1634958, 1719790, 1718530, 1716946, 1714999, 1712640, 1709836, 1706591, 1702954, 1699025, 1694938, 1690833, 1686832, 1683022, + 1679453, 1676148, 1673109, 1670325, 1667782, 1665460, 1663341, 1661408, 1659642, 1658029, 1656555, 1655206, 1653972, 1652843, + 1651808, 1650861, 1649993, 1649197, 1648468, 1647801, 1647189, 1646629, 1646117, 1645648, 1645219, 1644828, 1644471, 1644146, + 1643849, 1643580, 1643336, 1643115, 1642915, 1642735, 1642574, 1642429, 1725497, 1724366, 1722933, 1721162, 1719008, 1716439, + 1713449, 1710076, 1706397, 1702528, 1698598, 1694724, 1690997, 1687477, 1684194, 1681158, 1678364, 1675801, 1673455, 1671308, + 1669343, 1667544, 1665898, 1664390, 1663008, 1661741, 1660578, 1659512, 1658533, 1657634, 1656809, 1656051, 1655355, 1654716, + 1654129, 1653591, 1653098, 1652645, 1652231, 1651851, 1651504, 1651187, 1650898, 1650634, 1650394, 1650177, 1649980, 1649801, + 1649641, 1731007, 1729995, 1728699, 1727087, 1725120, 1722764, 1720011, 1716883, 1713443, 1709789, 1706036, 1702297, 1698664, + 1695202, 1691950, 1688924, 1686126, 1683550, 1681182, 1679010, 1677016, 1675188, 1673510, 1671970, 1670556, 1669257, 1668063, + 1666966, 1665956, 1665027, 1664173, 1663387, 1662663, 1661998, 1661385, 1660822, 1660304, 1659828, 1659390, 1658989, 1658620, + 1658283, 1657973, 1657691, 1657432, 1657197, 1656982, 1656788, 1656611, 1736307, 1735403, 1734233, 1732768, 1730971, 1728812, + 1726276, 1723378, 1720166, 1716722, 1713148, 1709549, 1706019, 1702625, 1699413, 1696405, 1693611, 1691026, 1688643, 1686449, + 1684430, 1682575, 1680868, 1679299, 1677855, 1676526, 1675302, 1674175, 1673136, 1672179, 1671297, 1670483, 1669733, 1669042, + 1668404, 1667816, 1667275, 1666776, 1666316, 1665893, 1665504, 1665146, 1664818, 1664516, 1664240, 1663987, 1663755, 1663544, + 1663352, 1741436, 1740632, 1739576, 1738245, 1736604, 1734624, 1732288, 1729604, 1726607, 1723366, 1719971, 1716517, 1713096, + 1709779, 1706615, 1703633, 1700847, 1698260, 1695865, 1693653, 1691613, 1689732, 1687999, 1686402, 1684929, 1683572, 1682319, + 1681164, 1680097, 1679112, 1678203, 1677363, 1676587, 1675870, 1675208, 1674596, 1674032, 1673510, 1673029, 1672584, 1672175, + 1671797, 1671449, 1671129, 1670835, 1670564, 1670316, 1670089, 1669881, 1746390, 1745677, 1744727, 1743518, 1742020, 1740205, + 1738053, 1735568, 1732775, 1729730, 1726511, 1723205, 1719899, 1716666, 1713557, 1710609, 1707839, 1705254, 1702852, 1700626, + 1698567, 1696665, 1694908, 1693285, 1691786, 1690401, 1689122, 1687939, 1686846, 1685835, 1684899, 1684033, 1683233, 1682491, + 1681805, 1681170, 1680583, 1680039, 1679537, 1679072, 1678642, 1678245, 1677878, 1677540, 1677228, 1676940, 1676676, 1676433, + 1676209, 1751173, 1750545, 1749692, 1748597, 1747230, 1745566, 1743585, 1741284, 1738683, 1735826, 1732780, 1729623, 1726438, + 1723294, 1720249, 1717341, 1714594, 1712017, 1709612, 1707377, 1705303, 1703382, 1701603, 1699957, 1698434, 1697024, 1695719, + 1694511, 1693392, 1692355, 1691395, 1690505, 1689679, 1688915, 1688205, 1687548, 1686939, 1686374, 1685850, 1685365, 1684916, + 1684500, 1684115, 1683759, 1683429, 1683125, 1682844, 1682585, 1682347, 1755815, 1755264, 1754501, 1753509, 1752263, 1750737, + 1748913, 1746784, 1744364, 1741686, 1738808, 1735800, 1732737, 1729689, 1726714, 1723853, 1721133, 1718569, 1716167, 1713926, + 1711841, 1709903, 1708105, 1706438, 1704892, 1703458, 1702129, 1700897, 1699753, 1698692, 1697707, 1696793, 1695945, 1695157, + 1694425, 1693746, 1693115, 1692529, 1691985, 1691481, 1691012, 1690577, 1690174, 1689800, 1689454, 1689133, 1688836, 1688562, + 1688308, 1760307, 1759829, 1759148, 1758252, 1757117, 1755719, 1754040, 1752071, 1749819, 1747312, 1744597, 1741736, 1738798, + 1735851, 1732950, 1730142, 1727457, 1724912, 1722518, 1720275, 1718181, 1716231, 1714416, 1712730, 1711163, 1709708, 1708356, + 1707100, 1705933, 1704849, 1703841, 1702904, 1702033, 1701223, 1700470, 1699769, 1699117, 1698511, 1697948, 1697423, 1696936, + 1696483, 1696062, 1695671, 1695308, 1694971, 1694658, 1694368, 1694100, 1764667, 1764255, 1763651, 1762843, 1761810, 1760530, + 1758985, 1757164, 1755071, 1752725, 1750168, 1747451, 1744639, 1741795, 1738975, 1736225, 1733579, 1731059, 1728676, 1726436, + 1724337, 1722377, 1720548, 1718845, 1717259, 1715784, 1714411, 1713133, 1711945, 1710838, 1709808, 1708849, 1707956, 1707125, + 1706350, 1705629, 1704957, 1704331, 1703748, 1703205, 1702699, 1702228, 1701789, 1701381, 1701002, 1700649, 1700320, 1700015, + 1699732, 1768897, 1768547, 1768014, 1767287, 1766349, 1765178, 1763757, 1762073, 1760128, 1757936, 1755529, 1752954, 1750268, + 1747529, 1744793, 1742107, 1739506, 1737015, 1734649, 1732415, 1730315, 1728348, 1726508, 1724791, 1723188, 1721694, 1720302, + 1719004, 1717794, 1716666, 1715615, 1714635, 1713721, 1712869, 1712074, 1711333, 1710641, 1709996, 1709394, 1708832, 1708308, + 1707820, 1707364, 1706939, 1706543, 1706175, 1705831, 1705511, 1705214, 1773002, 1772709, 1772242, 1771591, 1770740, 1769670, + 1768363, 1766808, 1765001, 1762954, 1760692, 1758254, 1755692, 1753061, 1750413, 1747794, 1745243, 1742787, 1740441, 1738218, + 1736121, 1734150, 1732302, 1730572, 1728955, 1727444, 1726033, 1724717, 1723487, 1722340, 1721269, 1720268, 1719335, 1718462, + 1717648, 1716887, 1716176, 1715512, 1714892, 1714312, 1713771, 1713265, 1712792, 1712351, 1711940, 1711555, 1711197, 1710862, + 1710551, 1776997, 1776757, 1776350, 1775769, 1774999, 1774022, 1772822, 1771385, 1769708, 1767797, 1765673, 1763369, 1760930, + 1758406, 1755848, 1753301, 1750804, 1748386, 1746066, 1743857, 1741766, 1739794, 1737940, 1736200, 1734571, 1733045, 1731618, + 1730284, 1729036, 1727870, 1726779, 1725760, 1724806, 1723915, 1723081, 1722302, 1721572, 1720890, 1720251, 1719654, 1719096, + 1718573, 1718084, 1717627, 1717200, 1716800, 1716427, 1716078, 1715752, 1780871, 1780681, 1780331, 1779815, 1779120, 1778230, + 1777128, 1775802, 1774247, 1772464, 1770472, 1768296, 1765978, 1763562, 1761095, 1758624, 1756185, 1753810, 1751520, 1749330, + 1747248, 1745279, 1743422, 1741675, 1740035, 1738496, 1737054, 1735704, 1734439, 1733255, 1732147, 1731109, 1730138, 1729228, + 1728376, 1727578, 1726831, 1726131, 1725475, 1724861, 1724286, 1723747, 1723242, 1722769, 1722327, 1721912, 1721525, 1721162, + 1720822, 1784641, 1784496, 1784199, 1783744, 1783119, 1782309, 1781299, 1780077, 1778634, 1776973, 1775105, 1773054, 1770853, + 1768544, 1766170, 1763776, 1761399, 1759071, 1756814, 1754647, 1752578, 1750615, 1748757, 1747006, 1745357, 1743808, 1742353, + 1740988, 1739708, 1738507, 1737382, 1736327, 1735338, 1734410, 1733541, 1732726, 1731961, 1731244, 1730572, 1729941, 1729349, + 1728795, 1728274, 1727786, 1727329, 1726900, 1726498, 1726121, 1725768, 1788322, 1788220, 1787972, 1787572, 1787012, 1786277, + 1785352, 1784225, 1782888, 1781341, 1779591, 1777658, 1775572, 1773368, 1771088, 1768773, 1766460, 1764182, 1761963, 1759821, + 1757769, 1755814, 1753959, 1752205, 1750550, 1748991, 1747525, 1746147, 1744852, 1743636, 1742495, 1741423, 1740417, 1739473, + 1738586, 1737754, 1736973, 1736239, 1735550, 1734903, 1734296, 1733725, 1733190, 1732687, 1732215, 1731771, 1731355, 1730965, + 1730598, 1791888, 1791826, 1791624, 1791278, 1790778, 1790112, 1789267, 1788230, 1786993, 1785552, 1783915, 1782096, 1780120, + 1778021, 1775834, 1773600, 1771355, 1769130, 1766951, 1764839, 1762807, 1760864, 1759014, 1757261, 1755602, 1754036, 1752560, + 1751171, 1749863, 1748633, 1747477, 1746390, 1745369, 1744408, 1743506, 1742658, 1741860, 1741111, 1740406, 1739744, 1739121, + 1738535, 1737985, 1737468, 1736981, 1736524, 1736094, 1735690, 1735311, 1795385, 1795360, 1795200, 1794902, 1794458, 1793857, + 1793085, 1792132, 1790987, 1789647, 1788116, 1786405, 1784536, 1782538, 1780444, 1778291, 1776114, 1773945, 1771810, 1769730, + 1767721, 1765792, 1763951, 1762200, 1760539, 1758968, 1757484, 1756084, 1754764, 1753522, 1752352, 1751250, 1750213, 1749238, + 1748320, 1747456, 1746643, 1745878, 1745158, 1744480, 1743842, 1743242, 1742677, 1742145, 1741645, 1741174, 1740730, 1740313, + 1739921, 1798784, 1798794, 1798674, 1798422, 1798030, 1797489, 1796787, 1795911, 1794853, 1793607, 1792176, 1790569, 1788803, + 1786904, 1784902, 1782831, 1780724, 1778613, 1776525, 1774481, 1772497, 1770586, 1768756, 1767009, 1765349, 1763775, 1762284, + 1760876, 1759546, 1758292, 1757109, 1755994, 1754943, 1753953, 1753021, 1752142, 1751314, 1750534, 1749799, 1749107, 1748455, + 1747840, 1747261, 1746715, 1746201, 1745716, 1745260, 1744830, 1744425, 1802103, 1802145, 1802062, 1801852, 1801510, 1801025, + 1800387, 1799583, 1798606, 1797450, 1796114, 1794605, 1792938, 1791135, 1789223, 1787234, 1785198, 1783147, 1781108, 1779102, + 1777147, 1775257, 1773440, 1771701, 1770043, 1768467, 1766972, 1765557, 1764218, 1762954, 1761759, 1760632, 1759568, 1758564, + 1757618, 1756725, 1755883, 1755088, 1754339, 1753632, 1752966, 1752337, 1751744, 1751185, 1750658, 1750160, 1749691, 1749248, + 1748831, 1805327, 1805400, 1805352, 1805182, 1804886, 1804454, 1803875, 1803141, 1802240, 1801167, 1799921, 1798506, 1796934, + 1795225, 1793402, 1791493, 1789530, 1787541, 1785553, 1783588, 1781665, 1779798, 1777997, 1776268, 1774615, 1773040, 1771543, + 1770122, 1768776, 1767503, 1766298, 1765159, 1764083, 1763067, 1762107, 1761201, 1760346, 1759538, 1758775, 1758055, 1757375, + 1756733, 1756127, 1755554, 1755014, 1754504, 1754022, 1753567, 1753138, 1808488, 1808589, 1808574, 1808441, 1808187, 1807804, + 1807282, 1806611, 1805782, 1804787, 1803626, 1802300, 1800819, 1799199, 1797463, 1795635, 1793744, 1791818, 1789882, 1787961, + 1786072, 1784230, 1782447, 1780730, 1779084, 1777512, 1776014, 1774589, 1773238, 1771956, 1770742, 1769593, 1768506, 1767477, + 1766505, 1765586, 1764718, 1763897, 1763121, 1762387, 1761694, 1761039, 1760420, 1759835, 1759282, 1758759, 1758265, 1757798, + 1757357, 1811571, 1811700, 1811715, 1811617, 1811403, 1811066, 1810597, 1809985, 1809223, 1808302, 1807220, 1805979, 1804585, + 1803053, 1801400, 1799652, 1797833, 1795970, 1794089, 1792213, 1790360, 1788546, 1786784, 1785081, 1783445, 1781877, 1780380, + 1778953, 1777597, 1776309, 1775087, 1773928, 1772831, 1771792, 1770808, 1769877, 1768996, 1768162, 1767374, 1766628, 1765922, + 1765254, 1764622, 1764025, 1763459, 1762924, 1762418, 1761940, 1761487, 1814595, 1814748, 1814791, 1814726, 1814550, 1814256, + 1813835, 1813279, 1812579, 1811728, 1810721, 1809560, 1808249, 1806800, 1805230, 1803559, 1801811, 1800013, 1798187, 1796357, + 1794542, 1792759, 1791019, 1789333, 1787707, 1786146, 1784651, 1783224, 1781865, 1780571, 1779342, 1778175, 1777068, 1776019, + 1775024, 1774082, 1773189, 1772343, 1771543, 1770784, 1770066, 1769386, 1768742, 1768132, 1767555, 1767008, 1766490, 1766000, + 1765536, 1817544, 1817720, 1817790, 1817756, 1817615, 1817361, 1816986, 1816483, 1815841, 1815055, 1814120, 1813034, 1811803, + 1810434, 1808943, 1807349, 1805672, 1803938, 1802168, 1800387, 1798612, 1796860, 1795146, 1793478, 1791866, 1790313, 1788822, + 1787396, 1786035, 1784737, 1783502, 1782328, 1781213, 1780154, 1779150, 1778197, 1777293, 1776436, 1775624, 1774854, 1774124, + 1773432, 1772776, 1772155, 1771566, 1771007, 1770478, 1769977, 1769501, 1820434, 1820632, 1820728, 1820722, 1820614, 1820397, + 1820066, 1819611, 1819025, 1818300, 1817431, 1816418, 1815262, 1813970, 1812556, 1811036, 1809429, 1807759, 1806046, 1804314, + 1802580, 1800863, 1799175, 1797528, 1795930, 1794387, 1792903, 1791480, 1790118, 1788818, 1787578, 1786398, 1785275, 1784208, + 1783194, 1782231, 1781317, 1780449, 1779626, 1778845, 1778103, 1777400, 1776733, 1776100, 1775500, 1774930, 1774390, 1773877, + 1773391, 1823251, 1823470, 1823589, 1823610, 1823533, 1823352, 1823062, 1822653, 1822119, 1821452, 1820647, 1819701, 1818617, + 1817400, 1816060, 1814612, 1813075, 1811468, 1809813, 1808131, 1806440, 1804758, 1803099, 1801475, 1799894, 1798363, 1796887, + 1795468, 1794107, 1792806, 1791563, 1790378, 1789249, 1788174, 1787152, 1786180, 1785256, 1784378, 1783544, 1782752, 1782000, + 1781286, 1780608, 1779964, 1779353, 1778773, 1778222, 1777698, 1777202, 1826012, 1826250, 1826391, 1826438, 1826390, 1826242, + 1825990, 1825624, 1825139, 1824526, 1823781, 1822900, 1821884, 1820738, 1819470, 1818092, 1816622, 1815079, 1813481, 1811850, + 1810204, 1808559, 1806931, 1805330, 1803768, 1802251, 1800784, 1799371, 1798013, 1796711, 1795466, 1794277, 1793143, 1792061, + 1791031, 1790051, 1789118, 1788231, 1787388, 1786586, 1785823, 1785099, 1784410, 1783756, 1783134, 1782543, 1781981, 1781448, + 1780941, 1828717, 1828973, 1829135, 1829206, 1829185, 1829069, 1828852, 1828527, 1828088, 1827526, 1826837, 1826018, 1825067, + 1823988, 1822789, 1821480, 1820076, 1818595, 1817055, 1815475, 1813873, 1812267, 1810670, 1809096, 1807554, 1806052, 1804596, + 1803190, 1801836, 1800536, 1799290, 1798098, 1796959, 1795872, 1794836, 1793848, 1792907, 1792011, 1791158, 1790346, 1789574, + 1788839, 1788141, 1787476, 1786844, 1786243, 1785671, 1785127, 1784610, 1831368, 1831641, 1831822, 1831915, 1831920, 1831833, + 1831650, 1831363, 1830967, 1830454, 1829818, 1829056, 1828167, 1827153, 1826020, 1824777, 1823438, 1822018, 1820535, 1819007, + 1817451, 1815884, 1814321, 1812774, 1811254, 1809769, 1808326, 1806928, 1805580, 1804282, 1803036, 1801843, 1800700, 1799608, + 1798566, 1797571, 1796622, 1795718, 1794856, 1794036, 1793254, 1792510, 1791802, 1791127, 1790485, 1789874, 1789292, 1788739, + 1788212, 1833964, 1834253, 1834453, 1834567, 1834595, 1834536, 1834385, 1834134, 1833779, 1833311, 1832725, 1832018, 1831188, + 1830236, 1829166, 1827987, 1826711, 1825352, 1823925, 1822448, 1820939, 1819412, 1817883, 1816365, 1814869, 1813402, 1811973, + 1810586, 1809244, 1807950, 1806706, 1805511, 1804367, 1803271, 1802223, 1801222, 1800267, 1799355, 1798485, 1797656, 1796866, + 1796112, 1795395, 1794711, 1794059, 1793439, 1792848, 1792284, 1791748, 1836507, 1836810, 1837027, 1837161, 1837213, 1837180, + 1837058, 1836842, 1836524, 1836099, 1835561, 1834906, 1834132, 1833239, 1832230, 1831113, 1829898, 1828598, 1827227, 1825802, + 1824339, 1822853, 1821360, 1819872, 1818400, 1816954, 1815540, 1814164, 1812831, 1811542, 1810301, 1809106, 1807960, 1806862, + 1805810, 1804803, 1803842, 1802923, 1802046, 1801209, 1800410, 1799648, 1798922, 1798229, 1797568, 1796938, 1796338, 1795766, + 1795220, 1838996, 1839314, 1839547, 1839700, 1839773, 1839765, 1839671, 1839487, 1839205, 1838821, 1838328, 1837722, 1837001, + 1836164, 1835214, 1834157, 1833001, 1831758, 1830443, 1829069, 1827653, 1826209, 1824753, 1823296, 1821850, 1820425, 1819028, + 1817665, 1816341, 1815059, 1813821, 1812629, 1811482, 1810381, 1809326, 1808315, 1807348, 1806423, 1805539, 1804695, 1803889, + 1803119, 1802384, 1801682, 1801013, 1800374, 1799765, 1799184, 1798629, 1841451, 1841781, 1842030, 1842200, 1842293, 1842308, + 1842241, 1842086, 1841839, 1841492, 1841042, 1840483, 1839812, 1839028, 1838134, 1837134, 1836035, 1834849, 1833588, 1832265, + 1830895, 1829493, 1828074, 1826649, 1825230, 1823827, 1822449, 1821100, 1819786, 1818512, 1817279, 1816089, 1814943, 1813841, + 1812783, 1811768, 1810796, 1809866, 1808975, 1808124, 1807310, 1806532, 1805789, 1805080, 1804402, 1803755, 1803137, 1802547, + 1801984, 1843853, 1844196, 1844459, 1844646, 1844758, 1844794, 1844752, 1844626, 1844410, 1844100, 1843690, 1843175, 1842551, + 1841819, 1840978, 1840033, 1838991, 1837859, 1836651, 1835378, 1834055, 1832696, 1831314, 1829922, 1828531, 1827152, 1825793, + 1824459, 1823158, 1821892, 1820665, 1819478, 1818334, 1817232, 1816172, 1815154, 1814178, 1813243, 1812347, 1811489, 1810668, + 1809883, 1809133, 1808415, 1807730, 1807074, 1806448, 1805850, 1805278, 1846204, 1846559, 1846835, 1847037, 1847167, 1847225, + 1847206, 1847107, 1846922, 1846645, 1846273, 1845800, 1845222, 1844538, 1843749, 1842857, 1841868, 1840790, 1839634, 1838411, + 1837135, 1835818, 1834474, 1833116, 1831755, 1830400, 1829061, 1827745, 1826456, 1825200, 1823980, 1822799, 1821657, 1820555, + 1819495, 1818475, 1817496, 1816556, 1815655, 1814792, 1813965, 1813173, 1812416, 1811691, 1810997, 1810334, 1809700, 1809094, + 1808515, 1848502, 1848868, 1849158, 1849375, 1849522, 1849599, 1849603, 1849529, 1849373, 1849129, 1848793, 1848359, 1847825, + 1847188, 1846448, 1845607, 1844670, 1843645, 1842539, 1841365, 1840135, 1838861, 1837556, 1836233, 1834901, 1833573, 1832255, + 1830957, 1829682, 1828438, 1827226, 1826050, 1824912, 1823812, 1822752, 1821731, 1820749, 1819806, 1818901, 1818033, 1817200, + 1816402, 1815638, 1814907, 1814206, 1813536, 1812894, 1812281, 1811693, 136533, 136533, 136533, 136533, 136533, 136533, + 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 135924, 125277, 108081, 91368, 77552, + 66660, 58112, 51334, 45876, 41412, 37706, 34587, 31931, 29644, 27657, 25914, 24375, 23005, 21780, + 20677, 19679, 18772, 17944, 17186, 16489, 15845, 15250, 14698, 14184, 13704, 13256, 12836, 12442, + 12071, 11721, 11392, 11080, 10784, 10504, 10238, 9986, 9745, 9516, 9297, 9088, 8888, 8697, + 8513, 8338, 8169, 8007, 7852, 7702, 7558, 7419, 7285, 7156, 7031, 6911, 6795, 6682, + 6574, 6468, 6366, 6267, 6172, 6079, 5989, 5901, 5816, 5733, 5653, 5575, 5499, 5425, + 5353, 5283, 5215, 5148, 5083, 5020, 4959 +]; +/// PMOS log-domain current table, corner mos_tt, IHP-Open-PDK 21133f21, L 0.45 um, 27 C, at the source-to-bulk voltage Vsb = 1.5 V (slice 6): the tag word (4294967295), then the 4753 words ix * 49 + iy of log2(Id / F) in 1/65536 octave over 2^-8 of a linear-table word (1.164 pA), then the 97 rv words; the format of TT_LG_P (deck psp103_idpa_vsb_tt.cir, blocks lam_p_6 and r_6). +pub const VSB_P6 : [4851]u32 = [ + 4294967295, 0, 74815, 50744, 46622, 46948, 48635, 50943, 53472, 56083, 58732, 61406, 64103, 66823, + 69569, 72341, 75141, 77968, 80824, 83709, 86623, 89564, 92533, 95529, 98552, 101599, 104672, 107771, + 110898, 114059, 117266, 120539, 123910, 127432, 131387, 135542, 140203, 145558, 151835, 159284, 168156, 178668, + 190966, 205094, 220983, 238457, 257263, 277109, 297697, 318752, 0, 74104, 49548, 45648, 46514, 48277, + 50553, 53056, 55639, 58258, 60900, 63564, 66250, 68961, 71698, 74463, 77255, 80077, 82927, 85806, + 88714, 91651, 94615, 97606, 100623, 103666, 106735, 109831, 112958, 116125, 119346, 122649, 126074, 129685, + 133813, 138190, 143163, 148943, 155771, 163901, 173572, 184971, 198194, 213230, 229950, 248136, 267510, 287771, + 308632, 0, 73437, 48540, 44607, 45947, 48021, 50277, 52750, 55304, 57892, 60501, 63130, 65781, + 68456, 71156, 73883, 76639, 79424, 82237, 85081, 87953, 90855, 93785, 96743, 99728, 102739, 105776, + 108840, 111933, 115061, 118236, 121478, 124820, 128313, 132242, 136374, 141014, 146353, 152618, 160061, 168933, + 179452, 191762, 205907, 221815, 239308, 258133, 277995, 298597, 0, 72924, 48142, 43716, 45262, 47856, + 50180, 52616, 55139, 57693, 60267, 62859, 65471, 68107, 70767, 73455, 76170, 78915, 81689, 84493, + 87327, 90190, 93083, 96004, 98953, 101929, 104932, 107961, 111019, 114109, 117239, 120425, 123694, 127086, + 130666, 134764, 139114, 144064, 149824, 156637, 164757, 174424, 185824, 199053, 214098, 230830, 249028, 268413, + 288685, 0, 71840, 47988, 43203, 44696, 47737, 50354, 52761, 55244, 57761, 60295, 62845, 65414, + 68006, 70621, 73264, 75934, 78633, 81362, 84122, 86912, 89732, 92582, 95461, 98369, 101305, 104269, + 107260, 110278, 113327, 116411, 119544, 122745, 126047, 129502, 133393, 137489, 142096, 147404, 153642, 161061, + 169914, 180417, 192717, 206855, 222761, 240254, 259079, 278942, 0, 71673, 48316, 43597, 44586, 47799, + 50899, 53355, 55787, 58257, 60744, 63244, 65763, 68302, 70864, 73453, 76070, 78716, 81392, 84098, + 86836, 89604, 92403, 95233, 98092, 100980, 103897, 106841, 109813, 112815, 115850, 118926, 122060, 125278, + 128620, 132151, 136200, 140503, 145406, 151121, 157891, 165969, 175598, 186962, 200160, 215177, 231886, 250064, + 269433, 0, 72122, 48708, 44740, 45344, 48463, 51951, 54661, 57040, 59447, 61873, 64311, 66765, + 69238, 71735, 74257, 76807, 79386, 81996, 84636, 87308, 90012, 92747, 95513, 98311, 101138, 103995, + 106881, 109795, 112738, 115714, 118727, 121789, 124921, 128155, 131542, 135364, 139392, 143931, 149169, 155335, + 162682, 171460, 181890, 194118, 208188, 224031, 241468, 260244, 0, 73598, 50846, 47164, 47767, 50348, + 53929, 57042, 59428, 61749, 64092, 66447, 68816, 71203, 73613, 76048, 78510, 81002, 83524, 86078, + 88664, 91282, 93933, 96617, 99332, 102078, 104856, 107664, 110501, 113368, 116267, 119201, 122178, 125215, + 128335, 131581, 135016, 138962, 143163, 147960, 153563, 160213, 168166, 177663, 188893, 201957, 216846, 233436, + 251508, 0, 76717, 54962, 51059, 52122, 54267, 57653, 61029, 63582, 65795, 68022, 70263, 72516, + 74787, 77080, 79397, 81741, 84115, 86520, 88956, 91425, 93928, 96464, 99034, 101636, 104272, 106941, + 109641, 112372, 115135, 117929, 120757, 123626, 126545, 129536, 132629, 135875, 139545, 143422, 147800, 152867, + 158847, 165991, 174552, 184752, 196743, 210580, 226199, 243430, 0, 82367, 62074, 58381, 59447, 61476, + 64244, 67552, 70351, 72484, 74550, 76634, 78731, 80843, 82976, 85134, 87318, 89531, 91776, 94052, + 96362, 98706, 101084, 103497, 105945, 108427, 110943, 113493, 116076, 118691, 121340, 124023, 126745, 129512, + 132340, 135253, 138290, 141511, 145223, 149186, 153726, 159047, 165386, 172997, 182123, 192962, 205627, 220123, + 236341, 0, 91702, 73426, 69987, 71011, 72774, 75011, 77953, 80797, 82947, 84811, 86687, 88577, + 90481, 92405, 94352, 96324, 98326, 100358, 102422, 104519, 106650, 108816, 111018, 113255, 115528, 117836, + 120179, 122558, 124970, 127417, 129900, 132420, 134984, 137600, 140288, 143077, 146013, 149343, 152875, 156880, + 161534, 167055, 173686, 181680, 191266, 202612, 215795, 230778, 17447, 106005, 90254, 87115, 87574, 89424, + 91387, 93632, 96195, 98364, 100033, 101652, 103287, 104936, 106601, 108288, 109999, 111737, 113504, 115301, + 117130, 118993, 120889, 122821, 124787, 126790, 128828, 130902, 133011, 135156, 137337, 139554, 141808, 144103, + 146447, 148851, 151336, 153939, 156710, 159918, 163361, 167327, 172004, 177615, 184407, 192624, 202481, 214120, + 227586, 65009, 126349, 113396, 110577, 110794, 112320, 113912, 115593, 117666, 119661, 121193, 122535, 123886, + 125250, 126629, 128024, 129440, 130880, 132345, 133838, 135359, 136911, 138494, 140109, 141758, 143440, 145156, + 146906, 148691, 150511, 152366, 154256, 156183, 158148, 160157, 162216, 164343, 166560, 168905, 171578, 174432, + 177687, 181498, 186057, 191588, 198334, 206532, 216381, 228006, 112978, 153179, 142938, 140416, 140399, 141384, + 142799, 144154, 145612, 147239, 148634, 149736, 150807, 151890, 152983, 154089, 155210, 156351, 157511, 158694, + 159901, 161132, 162391, 163676, 164990, 166333, 167707, 169110, 170545, 172011, 173508, 175038, 176601, 178199, + 179834, 181511, 183242, 185040, 186933, 188960, 191317, 193865, 196823, 200341, 204609, 209845, 216283, 224151, + 233639, 161206, 186110, 178174, 175892, 175679, 176357, 177454, 178495, 179532, 180751, 181925, 182859, 183692, + 184529, 185373, 186224, 187086, 187961, 188850, 189755, 190678, 191620, 192582, 193564, 194569, 195597, 196649, + 197724, 198825, 199952, 201105, 202284, 203491, 204726, 205992, 207292, 208631, 210019, 211473, 213018, 214784, + 216681, 218858, 221425, 224525, 228336, 233060, 238919, 246131, 210023, 224341, 218039, 215867, 215472, 215902, + 216647, 217527, 218339, 219181, 220094, 220895, 221557, 222203, 222852, 223504, 224162, 224827, 225501, 226185, + 226881, 227589, 228311, 229048, 229800, 230568, 231353, 232156, 232977, 233817, 234676, 235556, 236456, 237377, + 238322, 239290, 240287, 241318, 242392, 243524, 244738, 246148, 247678, 249460, 251590, 254196, 257434, 261487, + 266557, 266239, 270609, 263450, 260189, 259049, 259000, 259416, 260049, 260660, 261268, 261952, 262615, 263172, + 263682, 264192, 264702, 265214, 265728, 266248, 266772, 267303, 267842, 268389, 268945, 269510, 270086, 270673, + 271272, 271882, 272506, 273142, 273792, 274457, 275136, 275830, 276542, 277271, 278023, 278802, 279616, 280478, + 281455, 282505, 283703, 285113, 286816, 288918, 291550, 294870, 328775, 323645, 313665, 308209, 305680, 304802, + 304721, 304995, 305440, 305897, 306387, 306912, 307394, 307819, 308235, 308650, 309064, 309478, 309894, 310311, + 310732, 311156, 311584, 312017, 312456, 312900, 313352, 313810, 314275, 314748, 315229, 315719, 316218, 316726, + 317244, 317773, 318313, 318867, 319436, 320026, 320643, 321300, 322046, 322852, 323777, 324870, 326198, 327843, + 329910, 393285, 380322, 366995, 358953, 354678, 352688, 351914, 351756, 351900, 352202, 352541, 352940, 353345, + 353715, 354069, 354421, 354772, 355121, 355470, 355819, 356169, 356520, 356872, 357226, 357583, 357943, 358306, + 358673, 359044, 359419, 359799, 360184, 360574, 360970, 361371, 361779, 362193, 362615, 363047, 363489, 363947, + 364425, 364952, 365510, 366133, 366848, 367692, 368715, 369981, 457449, 438499, 422042, 411496, 405410, 402166, + 400551, 399837, 399616, 399660, 399856, 400117, 400430, 400747, 401053, 401360, 401668, 401976, 402283, 402589, + 402894, 403199, 403504, 403810, 404116, 404423, 404732, 405042, 405354, 405668, 405984, 406303, 406625, 406950, + 407278, 407609, 407944, 408283, 408627, 408977, 409335, 409704, 410089, 410509, 410953, 411445, 412006, 412663, + 413453, 520448, 497021, 477868, 465098, 457306, 452802, 450280, 448924, 448256, 447991, 447963, 448081, 448279, + 448515, 448780, 449045, 449317, 449593, 449871, 450148, 450425, 450702, 450978, 451253, 451529, 451804, 452079, + 452355, 452631, 452908, 453186, 453464, 453744, 454026, 454308, 454593, 454879, 455168, 455459, 455753, 456051, + 456354, 456665, 456994, 457335, 457701, 458103, 458554, 459076, 582129, 555334, 533926, 519246, 509925, 504231, + 500803, 498771, 497604, 496975, 496685, 496607, 496666, 496807, 496996, 497217, 497450, 497695, 497946, 498201, + 498458, 498715, 498972, 499228, 499484, 499740, 499995, 500250, 500505, 500759, 501014, 501268, 501523, 501779, + 502034, 502291, 502548, 502806, 503065, 503325, 503587, 503852, 504121, 504395, 504681, 504977, 505290, 505629, + 506005, 642571, 613199, 589914, 573614, 562952, 556174, 551884, 549178, 547490, 546465, 545875, 545572, 545461, + 545476, 545574, 545724, 545908, 546117, 546339, 546570, 546806, 547046, 547288, 547531, 547774, 548017, 548259, + 548501, 548743, 548984, 549225, 549465, 549705, 549945, 550184, 550424, 550664, 550904, 551144, 551384, 551626, + 551868, 552112, 552358, 552611, 552868, 553133, 553412, 553708, 701915, 670531, 645680, 628006, 616178, 608428, + 603341, 599987, 597781, 596345, 595433, 594880, 594573, 594439, 594422, 594486, 594605, 594762, 594946, 595149, + 595362, 595584, 595810, 596040, 596272, 596504, 596737, 596970, 597203, 597436, 597668, 597899, 598130, 598361, + 598591, 598821, 599050, 599280, 599509, 599738, 599967, 600196, 600426, 600657, 600890, 601126, 601366, 601612, + 601867, 760297, 727314, 701149, 682305, 669464, 660850, 655034, 651074, 648367, 646522, 645279, 644459, 643940, + 643636, 643487, 643447, 643485, 643579, 643713, 643877, 644060, 644258, 644466, 644682, 644901, 645124, 645348, + 645573, 645799, 646025, 646251, 646477, 646702, 646927, 647152, 647376, 647599, 647822, 648045, 648267, 648489, + 648711, 648933, 649155, 649378, 649601, 649828, 650057, 650289, 817829, 783560, 756284, 736441, 722718, 713338, + 706863, 702341, 699159, 696917, 695343, 694251, 693509, 693023, 692725, 692567, 692510, 692529, 692603, 692719, + 692864, 693032, 693216, 693412, 693616, 693826, 694040, 694258, 694477, 694697, 694918, 695139, 695360, 695581, + 695801, 696021, 696241, 696461, 696679, 696898, 697116, 697334, 697551, 697769, 697986, 698203, 698422, 698641, + 698863, 874591, 839285, 811070, 790365, 775873, 765813, 758744, 753706, 750081, 747459, 745563, 744199, 743230, + 742555, 742100, 741812, 741650, 741582, 741586, 741644, 741744, 741874, 742028, 742200, 742384, 742579, 742781, + 742987, 743198, 743412, 743627, 743843, 744061, 744278, 744496, 744713, 744930, 745147, 745364, 745580, 745796, + 746011, 746226, 746441, 746656, 746870, 747084, 747299, 747515, 930618, 894491, 865482, 844034, 828869, 818207, + 810604, 805096, 801059, 798080, 795876, 794247, 793052, 792185, 791568, 791144, 790868, 790705, 790630, 790623, + 790669, 790756, 790874, 791016, 791177, 791352, 791538, 791732, 791933, 792138, 792346, 792557, 792770, 792984, + 793198, 793414, 793629, 793844, 794059, 794274, 794489, 794703, 794917, 795130, 795344, 795556, 795769, 795982, + 796195, 985900, 949157, 919487, 897399, 881645, 870450, 862368, 856434, 852019, 848707, 846210, 844327, 842912, + 841854, 841075, 840511, 840116, 839853, 839694, 839616, 839603, 839640, 839717, 839825, 839958, 840110, 840277, + 840455, 840643, 840838, 841038, 841243, 841450, 841660, 841872, 842084, 842298, 842511, 842725, 842940, 843154, + 843367, 843581, 843794, 844007, 844220, 844432, 844645, 844857, 1040349, 1003214, 973015, 950381, 934113, 922448, + 913941, 907622, 902863, 899243, 896475, 894352, 892725, 891484, 890544, 889841, 889327, 888961, 888714, 888562, + 888485, 888468, 888500, 888570, 888671, 888797, 888943, 889104, 889277, 889460, 889651, 889848, 890049, 890254, + 890462, 890672, 890884, 891096, 891310, 891524, 891738, 891952, 892166, 892380, 892593, 892807, 893020, 893233, + 893446, 1093795, 1056539, 1025952, 1002863, 986153, 974078, 965194, 958533, 953464, 949565, 946546, 944199, 942374, + 940958, 939864, 939026, 938394, 937926, 937591, 937363, 937221, 937148, 937133, 937163, 937231, 937328, 937450, + 937592, 937750, 937920, 938100, 938289, 938484, 938684, 938889, 939096, 939306, 939518, 939731, 939945, 940160, + 940375, 940591, 940806, 941021, 941237, 941452, 941667, 941881, 1145929, 1108902, 1078098, 1054650, 1037569, 1025144, + 1015935, 1008975, 1003632, 999483, 996239, 993689, 991682, 990103, 988864, 987900, 987155, 986589, 986168, 985865, + 985659, 985531, 985469, 985459, 985492, 985561, 985659, 985781, 985922, 986079, 986249, 986430, 986619, 986815, + 987016, 987222, 987431, 987643, 987857, 988072, 988289, 988506, 988724, 988942, 989161, 989379, 989598, 989816, + 990034, 1196309, 1159969, 1129165, 1105468, 1088090, 1075375, 1065893, 1058677, 1053098, 1048733, 1045289, 1042559, 1040389, + 1038663, 1037293, 1036211, 1035363, 1034705, 1034204, 1033831, 1033563, 1033383, 1033275, 1033226, 1033227, 1033268, 1033343, + 1033446, 1033572, 1033717, 1033877, 1034050, 1034234, 1034426, 1034626, 1034831, 1035040, 1035253, 1035469, 1035687, 1035907, + 1036128, 1036350, 1036573, 1036796, 1037019, 1037243, 1037466, 1037689, 1244342, 1209257, 1178736, 1154921, 1137328, 1124385, + 1114683, 1107259, 1101483, 1096935, 1093322, 1090437, 1088124, 1086270, 1084784, 1083598, 1082656, 1081916, 1081341, 1080904, + 1080581, 1080352, 1080202, 1080117, 1080088, 1080103, 1080157, 1080243, 1080355, 1080489, 1080641, 1080808, 1080988, 1081178, + 1081377, 1081582, 1081793, 1082009, 1082228, 1082451, 1082675, 1082901, 1083129, 1083357, 1083586, 1083816, 1084045, 1084275, + 1084504, 1289395, 1256195, 1226316, 1202544, 1184820, 1171712, 1161840, 1154250, 1148315, 1143615, 1139861, 1136844, 1134410, + 1132444, 1130857, 1129579, 1128555, 1127741, 1127101, 1126606, 1126231, 1125958, 1125770, 1125652, 1125594, 1125586, 1125621, + 1125690, 1125789, 1125913, 1126058, 1126220, 1126396, 1126585, 1126783, 1126990, 1127203, 1127422, 1127646, 1127872, 1128102, + 1128334, 1128567, 1128802, 1129038, 1129274, 1129510, 1129747, 1129983, 1330912, 1300189, 1271373, 1247835, 1230068, 1216850, + 1206851, 1199131, 1193067, 1188242, 1184368, 1181238, 1178698, 1176635, 1174958, 1173597, 1172499, 1171617, 1170917, 1170367, + 1169945, 1169630, 1169404, 1169255, 1169169, 1169138, 1169152, 1169205, 1169290, 1169403, 1169539, 1169695, 1169867, 1170053, + 1170250, 1170456, 1170670, 1170891, 1171117, 1171347, 1171581, 1171817, 1172055, 1172295, 1172536, 1172778, 1173020, 1173262, + 1173504, 1368565, 1340751, 1313439, 1290359, 1272640, 1259355, 1249260, 1241432, 1235258, 1230324, 1226344, 1223111, 1220476, + 1218321, 1216560, 1215121, 1213951, 1213003, 1212243, 1211640, 1211169, 1210810, 1210545, 1210361, 1210245, 1210187, 1210178, + 1210211, 1210279, 1210378, 1210501, 1210647, 1210811, 1210990, 1211181, 1211384, 1211596, 1211815, 1212040, 1212270, 1212504, + 1212741, 1212981, 1213223, 1213466, 1213710, 1213954, 1214199, 1214444, 1402326, 1377612, 1352201, 1329824, 1312247, 1298932, + 1288757, 1280833, 1274556, 1269519, 1265436, 1262105, 1259374, 1257129, 1255282, 1253764, 1252520, 1251504, 1250680, 1250018, + 1249494, 1249086, 1248778, 1248554, 1248402, 1248311, 1248273, 1248280, 1248325, 1248403, 1248509, 1248638, 1248788, 1248955, + 1249136, 1249329, 1249532, 1249744, 1249963, 1250188, 1250418, 1250651, 1250888, 1251127, 1251367, 1251609, 1251852, 1252096, + 1252339, 1432416, 1410751, 1387526, 1366110, 1348782, 1335470, 1325225, 1317207, 1310828, 1305685, 1301498, 1298064, 1295235, + 1292896, 1290959, 1289357, 1288033, 1286942, 1286049, 1285323, 1284739, 1284276, 1283917, 1283646, 1283451, 1283321, 1283248, + 1283221, 1283237, 1283287, 1283368, 1283475, 1283603, 1283751, 1283915, 1284093, 1284282, 1284481, 1284688, 1284902, 1285122, + 1285346, 1285574, 1285805, 1286038, 1286274, 1286510, 1286747, 1286985, 1459211, 1440373, 1419467, 1399254, 1382299, 1369029, + 1358723, 1350611, 1344126, 1338874, 1334578, 1331037, 1328104, 1325665, 1323634, 1321941, 1320531, 1319360, 1318391, 1317594, + 1316944, 1316419, 1316003, 1315678, 1315433, 1315257, 1315141, 1315075, 1315053, 1315070, 1315119, 1315197, 1315299, 1315422, + 1315563, 1315719, 1315888, 1316069, 1316259, 1316457, 1316661, 1316872, 1317086, 1317305, 1317527, 1317751, 1317976, 1318203, + 1318431, 1483143, 1466818, 1448217, 1429404, 1412963, 1399787, 1389434, 1381230, 1374638, 1369272, 1364863, 1361210, 1358168, + 1355625, 1353493, 1351705, 1350205, 1348948, 1347898, 1347025, 1346303, 1345711, 1345231, 1344847, 1344547, 1344319, 1344154, + 1344043, 1343980, 1343957, 1343970, 1344013, 1344083, 1344176, 1344289, 1344419, 1344564, 1344721, 1344890, 1345068, 1345253, + 1345445, 1345643, 1345845, 1346052, 1346261, 1346473, 1346686, 1346902, 1504612, 1490464, 1474038, 1456752, 1440975, 1427964, + 1417589, 1409301, 1402601, 1397123, 1392598, 1388832, 1385679, 1383029, 1380795, 1378908, 1377314, 1375969, 1374835, 1373882, + 1373084, 1372421, 1371874, 1371427, 1371068, 1370785, 1370567, 1370408, 1370298, 1370232, 1370204, 1370209, 1370244, 1370303, + 1370385, 1370485, 1370602, 1370734, 1370877, 1371032, 1371195, 1371366, 1371544, 1371728, 1371916, 1372108, 1372303, 1372501, + 1372702, 1523987, 1511699, 1497251, 1481540, 1466567, 1453808, 1443447, 1435087, 1428287, 1422697, 1418059, 1414179, 1410916, + 1408158, 1405820, 1403835, 1402146, 1400710, 1399490, 1398456, 1397581, 1396845, 1396229, 1395717, 1395296, 1394955, 1394683, + 1394472, 1394313, 1394202, 1394131, 1394096, 1394092, 1394115, 1394163, 1394231, 1394318, 1394421, 1394537, 1394666, 1394805, + 1394954, 1395110, 1395273, 1395441, 1395614, 1395792, 1395973, 1396156, 1541585, 1530875, 1518181, 1504017, 1489963, 1477553, + 1467254, 1458845, 1451955, 1446259, 1441510, 1437520, 1434147, 1431283, 1428843, 1426759, 1424976, 1423450, 1422144, 1421027, + 1420075, 1419265, 1418579, 1418001, 1417518, 1417117, 1416789, 1416525, 1416317, 1416158, 1416042, 1415965, 1415921, 1415907, + 1415919, 1415954, 1416009, 1416082, 1416170, 1416272, 1416386, 1416510, 1416643, 1416783, 1416931, 1417084, 1417243, 1417405, + 1417571, 1557667, 1548294, 1537132, 1524432, 1511373, 1499412, 1489234, 1480804, 1473838, 1468045, 1463191, 1459094, 1455616, + 1452649, 1450108, 1447927, 1446052, 1444437, 1443046, 1441849, 1440819, 1439936, 1439180, 1438536, 1437989, 1437529, 1437145, + 1436827, 1436568, 1436361, 1436200, 1436080, 1435996, 1435943, 1435919, 1435919, 1435942, 1435984, 1436043, 1436117, 1436204, + 1436303, 1436412, 1436530, 1436656, 1436788, 1436927, 1437071, 1437219, 1572438, 1564200, 1554366, 1543014, 1530983, 1519562, + 1509573, 1501159, 1494137, 1488259, 1483308, 1479111, 1475531, 1472465, 1469828, 1467553, 1465587, 1463886, 1462412, 1461136, + 1460031, 1459075, 1458250, 1457541, 1456932, 1456413, 1455973, 1455602, 1455292, 1455037, 1454831, 1454668, 1454543, 1454452, + 1454390, 1454356, 1454345, 1454356, 1454385, 1454431, 1454491, 1454564, 1454649, 1454744, 1454848, 1454960, 1455078, 1455203, + 1455333, 1586082, 1578812, 1570122, 1559989, 1548980, 1538172, 1528441, 1520087, 1513033, 1507084, 1502046, 1497755, 1494081, + 1490920, 1488190, 1485825, 1483773, 1481987, 1480433, 1479079, 1477900, 1476874, 1475983, 1475209, 1474539, 1473962, 1473466, + 1473042, 1472683, 1472380, 1472129, 1471923, 1471757, 1471627, 1471529, 1471460, 1471416, 1471395, 1471394, 1471411, 1471445, + 1471492, 1471553, 1471624, 1471706, 1471796, 1471895, 1472000, 1472111, 1598741, 1592300, 1584598, 1575552, 1565526, 1555383, + 1545979, 1537731, 1530674, 1524672, 1519558, 1515182, 1511419, 1508169, 1505351, 1502901, 1500764, 1498899, 1497267, 1495839, + 1494588, 1493494, 1492536, 1491700, 1490971, 1490336, 1489786, 1489311, 1488902, 1488553, 1488257, 1488008, 1487802, 1487634, + 1487499, 1487395, 1487319, 1487266, 1487236, 1487224, 1487231, 1487253, 1487288, 1487337, 1487396, 1487465, 1487543, 1487629, + 1487722, 1610541, 1604814, 1597966, 1589883, 1580781, 1571328, 1562310, 1554220, 1547192, 1541156, 1535980, 1531528, 1527683, + 1524350, 1521449, 1518917, 1516701, 1514758, 1513052, 1511552, 1510232, 1509071, 1508050, 1507153, 1506366, 1505676, 1505073, + 1504547, 1504090, 1503694, 1503354, 1503064, 1502818, 1502612, 1502441, 1502303, 1502193, 1502110, 1502050, 1502010, 1501990, + 1501986, 1501997, 1502022, 1502059, 1502107, 1502165, 1502232, 1502306, 1621584, 1616475, 1610368, 1603133, 1594886, 1586126, + 1577542, 1569659, 1562695, 1556649, 1551425, 1546907, 1542989, 1539578, 1536599, 1533990, 1531698, 1529681, 1527903, 1526334, + 1524948, 1523723, 1522641, 1521685, 1520841, 1520097, 1519442, 1518866, 1518362, 1517922, 1517539, 1517207, 1516922, 1516679, + 1516473, 1516300, 1516158, 1516044, 1515954, 1515887, 1515839, 1515810, 1515797, 1515799, 1515814, 1515841, 1515879, 1515926, + 1515982, 1631939, 1627370, 1621907, 1615420, 1607954, 1599873, 1591756, 1584127, 1577265, 1571233, 1565978, 1561407, 1557424, + 1553943, 1550892, 1548211, 1545848, 1543761, 1541915, 1540280, 1538830, 1537544, 1536403, 1535390, 1534491, 1533695, 1532990, + 1532366, 1531816, 1531332, 1530907, 1530536, 1530212, 1529932, 1529691, 1529485, 1529312, 1529167, 1529048, 1528953, 1528879, + 1528825, 1528788, 1528767, 1528760, 1528766, 1528783, 1528812, 1528849, 1641700, 1637602, 1632701, 1626874, 1620116, 1612684, + 1605054, 1597717, 1590993, 1585003, 1579735, 1575122, 1571083, 1567539, 1564422, 1561673, 1559242, 1557089, 1555179, 1553480, + 1551970, 1550624, 1549426, 1548358, 1547407, 1546560, 1545806, 1545136, 1544541, 1544014, 1543548, 1543137, 1542776, 1542460, + 1542184, 1541946, 1541741, 1541566, 1541419, 1541296, 1541196, 1541117, 1541056, 1541012, 1540984, 1540969, 1540967, 1540976, + 1540995, 1650923, 1647240, 1642833, 1637586, 1631466, 1624647, 1617509, 1610496, 1603945, 1598024, 1592763, 1588123, 1584037, + 1580438, 1577260, 1574448, 1571954, 1569738, 1567766, 1566008, 1564438, 1563036, 1561783, 1560662, 1559660, 1558763, 1557962, + 1557247, 1556608, 1556039, 1555533, 1555084, 1554686, 1554335, 1554026, 1553755, 1553519, 1553315, 1553139, 1552990, 1552864, + 1552760, 1552676, 1552609, 1552559, 1552523, 1552501, 1552492, 1552493, 1659650, 1656334, 1652363, 1647629, 1642083, 1635836, + 1629185, 1622518, 1616172, 1610348, 1605115, 1600462, 1596341, 1592694, 1589462, 1586593, 1584040, 1581766, 1579735, 1577920, + 1576294, 1574838, 1573532, 1572361, 1571309, 1570365, 1569519, 1568759, 1568078, 1567469, 1566924, 1566437, 1566003, 1565618, + 1565276, 1564973, 1564707, 1564474, 1564271, 1564095, 1563944, 1563815, 1563708, 1563619, 1563547, 1563491, 1563450, 1563421, + 1563405, 1667934, 1664944, 1661359, 1657080, 1652049, 1646331, 1640152, 1633845, 1627731, 1622030, 1616846, 1612197, 1608052, + 1604366, 1601086, 1598165, 1595559, 1593229, 1591144, 1589274, 1587596, 1586087, 1584731, 1583511, 1582412, 1581422, 1580531, + 1579729, 1579008, 1578359, 1577776, 1577253, 1576784, 1576364, 1575990, 1575657, 1575361, 1575099, 1574869, 1574667, 1574491, + 1574338, 1574208, 1574097, 1574004, 1573928, 1573867, 1573820, 1573786, 1675806, 1673106, 1669864, 1665991, 1661421, 1656190, + 1650465, 1644523, 1638661, 1633109, 1627996, 1623366, 1619211, 1615495, 1612175, 1609208, 1606552, 1604171, 1602034, 1600114, + 1598385, 1596828, 1595423, 1594156, 1593012, 1591978, 1591045, 1590202, 1589441, 1588753, 1588134, 1587575, 1587072, 1586620, + 1586215, 1585851, 1585526, 1585237, 1584979, 1584752, 1584551, 1584375, 1584222, 1584089, 1583976, 1583880, 1583800, 1583735, + 1583683, 1683318, 1680878, 1677942, 1674429, 1670274, 1665488, 1660193, 1654614, 1649019, 1643637, 1638616, 1634023, 1629869, + 1626133, 1622780, 1619772, 1617071, 1614643, 1612458, 1610489, 1608713, 1607108, 1605658, 1604345, 1603157, 1602081, 1601107, + 1600224, 1599424, 1598700, 1598044, 1597451, 1596915, 1596431, 1595994, 1595601, 1595248, 1594931, 1594647, 1594394, 1594169, + 1593970, 1593795, 1593641, 1593507, 1593391, 1593292, 1593209, 1593139, 1690484, 1688278, 1685616, 1682426, 1678644, 1674264, + 1669372, 1664151, 1658833, 1653639, 1648729, 1644190, 1640051, 1636305, 1632927, 1629884, 1627143, 1624673, 1622444, 1620430, + 1618608, 1616959, 1615464, 1614109, 1612879, 1611762, 1610748, 1609827, 1608990, 1608229, 1607539, 1606912, 1606344, 1605829, + 1605362, 1604940, 1604559, 1604215, 1603906, 1603628, 1603379, 1603157, 1602960, 1602785, 1602630, 1602495, 1602378, 1602276, + 1602190, 1697343, 1695347, 1692931, 1690031, 1686584, 1682574, 1678060, 1673184, 1668147, 1663156, 1658374, 1653905, 1649794, + 1646049, 1642654, 1639583, 1636808, 1634299, 1632028, 1629972, 1628108, 1626417, 1624880, 1623484, 1622213, 1621057, 1620005, + 1619046, 1618173, 1617378, 1616654, 1615995, 1615395, 1614849, 1614353, 1613902, 1613494, 1613124, 1612789, 1612487, 1612215, + 1611970, 1611751, 1611555, 1611381, 1611227, 1611091, 1610971, 1610868, 1703911, 1702106, 1699911, 1697272, 1694128, 1690455, + 1686291, 1681746, 1676991, 1672213, 1667575, 1663192, 1659123, 1655389, 1651986, 1648894, 1646089, 1643545, 1641238, 1639143, + 1637239, 1635507, 1633931, 1632495, 1631187, 1629993, 1628903, 1627909, 1627001, 1626172, 1625415, 1624724, 1624094, 1623518, + 1622994, 1622516, 1622081, 1621685, 1621325, 1620999, 1620704, 1620437, 1620197, 1619980, 1619786, 1619613, 1619459, 1619322, + 1619201, 1710213, 1708581, 1706587, 1704183, 1701312, 1697946, 1694107, 1689877, 1685399, 1680841, 1676360, 1672077, 1668063, + 1664352, 1660949, 1657842, 1655014, 1652440, 1650099, 1647968, 1646027, 1644258, 1642644, 1641171, 1639826, 1638596, 1637471, + 1636442, 1635501, 1634639, 1633850, 1633128, 1632468, 1631863, 1631311, 1630806, 1630345, 1629924, 1629540, 1629191, 1628873, + 1628584, 1628323, 1628086, 1627873, 1627680, 1627508, 1627354, 1627217, 1716263, 1714787, 1712976, 1710784, 1708161, 1705076, + 1701536, 1697604, 1693397, 1689062, 1684749, 1680578, 1676632, 1672955, 1669561, 1666448, 1663601, 1661003, 1658632, 1656468, + 1654493, 1652689, 1651040, 1649532, 1648151, 1646886, 1645728, 1644666, 1643692, 1642798, 1641979, 1641227, 1640538, 1639906, + 1639326, 1638794, 1638308, 1637862, 1637455, 1637082, 1636742, 1636432, 1636150, 1635894, 1635661, 1635450, 1635260, 1635089, + 1634935, 1722092, 1720760, 1719114, 1717115, 1714716, 1711886, 1708622, 1704970, 1701025, 1696914, 1692775, 1688727, 1684861, + 1681227, 1677852, 1674739, 1671881, 1669262, 1666865, 1664672, 1662665, 1660828, 1659146, 1657604, 1656190, 1654892, 1653700, + 1652606, 1651601, 1650677, 1649828, 1649047, 1648329, 1647669, 1647063, 1646506, 1645994, 1645524, 1645094, 1644699, 1644337, + 1644006, 1643703, 1643427, 1643175, 1642946, 1642739, 1642550, 1642380, 1727690, 1726489, 1724993, 1723171, 1720977, 1718379, + 1715370, 1711982, 1708288, 1704399, 1700439, 1696525, 1692748, 1689170, 1685822, 1682718, 1679854, 1677220, 1674801, 1672583, + 1670548, 1668681, 1666968, 1665394, 1663948, 1662619, 1661397, 1660272, 1659237, 1658283, 1657405, 1656597, 1655852, 1655165, + 1654533, 1653951, 1653415, 1652922, 1652469, 1652052, 1651669, 1651317, 1650995, 1650699, 1650429, 1650182, 1649957, 1649752, + 1649566, 1733099, 1732017, 1730659, 1728996, 1726988, 1724603, 1721829, 1718685, 1715232, 1711560, 1707782, 1704008, 1700331, + 1696817, 1693506, 1690417, 1687553, 1684909, 1682473, 1680233, 1678172, 1676278, 1674535, 1672932, 1671456, 1670097, 1668845, + 1667691, 1666626, 1665644, 1664738, 1663902, 1663131, 1662419, 1661761, 1661155, 1660595, 1660079, 1659603, 1659165, 1658761, + 1658389, 1658047, 1657732, 1657444, 1657179, 1656937, 1656715, 1656513, 1738314, 1737342, 1736111, 1734594, 1732756, 1730566, + 1728007, 1725093, 1721867, 1718407, 1714812, 1711183, 1707614, 1704173, 1700907, 1697840, 1694984, 1692335, 1689887, 1687628, + 1685545, 1683625, 1681856, 1680225, 1678721, 1677334, 1676053, 1674871, 1673778, 1672769, 1671836, 1670974, 1670177, 1669440, + 1668758, 1668128, 1667545, 1667006, 1666509, 1666049, 1665624, 1665232, 1664871, 1664538, 1664232, 1663949, 1663690, 1663452, + 1663234, 1743344, 1742472, 1741357, 1739975, 1738293, 1736281, 1733921, 1731220, 1728210, 1724955, 1721541, 1718062, 1714607, + 1711248, 1708035, 1704999, 1702156, 1699509, 1697052, 1694778, 1692677, 1690735, 1688942, 1687286, 1685755, 1684341, 1683034, + 1681824, 1680705, 1679670, 1678711, 1677824, 1677002, 1676240, 1675535, 1674882, 1674277, 1673716, 1673197, 1672717, 1672272, + 1671861, 1671481, 1671130, 1670805, 1670506, 1670230, 1669976, 1669743, 1748217, 1747439, 1746430, 1745171, 1743631, 1741782, + 1739606, 1737103, 1734296, 1731238, 1728002, 1724674, 1721339, 1718068, 1714916, 1711918, 1709094, 1706453, 1703992, 1701708, + 1699590, 1697629, 1695814, 1694134, 1692579, 1691140, 1689806, 1688572, 1687427, 1686366, 1685383, 1684471, 1683625, 1682840, + 1682111, 1681435, 1680808, 1680226, 1679686, 1679186, 1678722, 1678291, 1677893, 1677523, 1677182, 1676866, 1676573, 1676304, + 1676055, 1752929, 1752236, 1751325, 1750179, 1748770, 1747072, 1745065, 1742746, 1740130, 1737261, 1734199, 1731023, 1727811, + 1724635, 1721550, 1718596, 1715799, 1713169, 1710710, 1708419, 1706288, 1704311, 1702476, 1700775, 1699197, 1697734, 1696377, + 1695118, 1693949, 1692864, 1691857, 1690921, 1690051, 1689244, 1688493, 1687795, 1687147, 1686544, 1685984, 1685463, 1684980, + 1684531, 1684114, 1683727, 1683368, 1683036, 1682728, 1682442, 1682178, 1757495, 1756882, 1756061, 1755019, 1753731, 1752171, + 1750320, 1748171, 1745735, 1743045, 1740153, 1737128, 1734042, 1730965, 1727954, 1725051, 1722286, 1719673, 1717219, 1714925, + 1712786, 1710794, 1708943, 1707222, 1705624, 1704139, 1702759, 1701477, 1700285, 1699177, 1698146, 1697187, 1696296, 1695466, + 1694693, 1693974, 1693305, 1692682, 1692102, 1691562, 1691060, 1690593, 1690158, 1689754, 1689378, 1689029, 1688705, 1688404, + 1688125, 1761922, 1761381, 1760645, 1759699, 1758521, 1757088, 1755381, 1753391, 1751124, 1748604, 1745876, 1742999, 1740041, + 1737067, 1734135, 1731290, 1728562, 1725971, 1723528, 1721235, 1719090, 1717088, 1715222, 1713484, 1711867, 1710361, 1708960, + 1707656, 1706442, 1705312, 1704260, 1703279, 1702366, 1701514, 1700721, 1699981, 1699292, 1698649, 1698050, 1697491, 1696970, + 1696485, 1696033, 1695612, 1695220, 1694855, 1694515, 1694199, 1693905, 1766212, 1765739, 1765080, 1764223, 1763148, 1761833, + 1760259, 1758416, 1756307, 1753948, 1751378, 1748648, 1745818, 1742950, 1740102, 1737318, 1734634, 1732071, 1729643, 1727355, + 1725208, 1723198, 1721320, 1719567, 1717933, 1716409, 1714988, 1713664, 1712430, 1711278, 1710205, 1709203, 1708269, 1707397, + 1706583, 1705824, 1705115, 1704453, 1703835, 1703258, 1702719, 1702216, 1701747, 1701310, 1700901, 1700520, 1700165, 1699834, + 1699526, 1770384, 1769973, 1769386, 1768611, 1767630, 1766423, 1764973, 1763267, 1761304, 1759099, 1756680, 1754092, 1751389, + 1748630, 1745869, 1743152, 1740515, 1737985, 1735576, 1733298, 1731152, 1729138, 1727250, 1725485, 1723836, 1722295, 1720856, + 1719513, 1718259, 1717087, 1715994, 1714972, 1714018, 1713126, 1712292, 1711513, 1710785, 1710105, 1709468, 1708873, 1708317, + 1707797, 1707311, 1706857, 1706433, 1706037, 1705666, 1705321, 1704998, 1774426, 1774074, 1773553, 1772854, 1771961, 1770855, + 1769519, 1767941, 1766116, 1764055, 1761780, 1759331, 1756755, 1754105, 1751434, 1748788, 1746205, 1743712, 1741327, 1739062, + 1736921, 1734905, 1733012, 1731237, 1729574, 1728018, 1726563, 1725202, 1723930, 1722740, 1721627, 1720586, 1719613, 1718702, + 1717850, 1717052, 1716306, 1715607, 1714953, 1714340, 1713767, 1713231, 1712728, 1712258, 1711819, 1711407, 1711022, 1710662, + 1710326, 1778355, 1778058, 1777599, 1776970, 1776159, 1775146, 1773916, 1772456, 1770760, 1768835, 1766699, 1764383, 1761931, + 1759391, 1756813, 1754241, 1751715, 1749264, 1746908, 1744660, 1742528, 1740513, 1738616, 1736833, 1735160, 1733591, 1732121, + 1730744, 1729454, 1728247, 1727116, 1726057, 1725065, 1724136, 1723266, 1722450, 1721686, 1720970, 1720298, 1719669, 1719079, + 1718526, 1718008, 1717523, 1717068, 1716641, 1716242, 1715868, 1715518, 1782188, 1781941, 1781540, 1780977, 1780240, 1779314, + 1778182, 1776832, 1775257, 1773459, 1771454, 1769267, 1766936, 1764505, 1762021, 1759526, 1757061, 1754655, 1752331, 1750104, + 1747984, 1745974, 1744076, 1742288, 1740605, 1739025, 1737541, 1736150, 1734844, 1733620, 1732472, 1731396, 1730386, 1729440, + 1728552, 1727718, 1726937, 1726203, 1725515, 1724869, 1724263, 1723694, 1723160, 1722660, 1722190, 1721749, 1721335, 1720947, + 1720583, 1785900, 1785701, 1785353, 1784851, 1784185, 1783339, 1782299, 1781052, 1779589, 1777913, 1776032, 1773969, 1771757, + 1769434, 1767045, 1764630, 1762229, 1759873, 1757585, 1755383, 1753279, 1751277, 1749381, 1747589, 1745900, 1744311, 1742816, + 1741411, 1740091, 1738852, 1737688, 1736595, 1735570, 1734606, 1733701, 1732852, 1732053, 1731304, 1730599, 1729937, 1729316, + 1728731, 1728182, 1727667, 1727182, 1726727, 1726299, 1725898, 1725521, 1789535, 1789380, 1789081, 1788637, 1788035, 1787264, + 1786309, 1785156, 1783799, 1782235, 1780473, 1778528, 1776431, 1774214, 1771920, 1769586, 1767252, 1764948, 1762700, 1760526, + 1758440, 1756449, 1754557, 1752765, 1751071, 1749474, 1747969, 1746552, 1745219, 1743965, 1742787, 1741678, 1740636, 1739657, + 1738736, 1737870, 1737056, 1736290, 1735570, 1734892, 1734255, 1733655, 1733091, 1732561, 1732062, 1731593, 1731152, 1730737, + 1730346, 1793068, 1792953, 1792701, 1792310, 1791769, 1791067, 1790191, 1789128, 1787869, 1786412, 1784761, 1782930, 1780943, + 1778832, 1776631, 1774380, 1772115, 1769866, 1767661, 1765519, 1763455, 1761478, 1759593, 1757803, 1756107, 1754504, 1752991, + 1751563, 1750219, 1748952, 1747759, 1746637, 1745580, 1744585, 1743649, 1742767, 1741938, 1741156, 1740421, 1739728, 1739076, + 1738462, 1737884, 1737339, 1736826, 1736343, 1735888, 1735460, 1735057, 1796514, 1796437, 1796229, 1795887, 1795403, 1794766, + 1793963, 1792983, 1791816, 1790459, 1788914, 1787191, 1785311, 1783302, 1781195, 1779027, 1776832, 1774642, 1772482, 1770375, + 1768336, 1766376, 1764501, 1762715, 1761019, 1759412, 1757892, 1756456, 1755101, 1753822, 1752617, 1751480, 1750410, 1749400, + 1748449, 1747553, 1746709, 1745912, 1745162, 1744455, 1743788, 1743160, 1742567, 1742009, 1741482, 1740986, 1740518, 1740077, + 1739661, 1799859, 1799819, 1799652, 1799356, 1798925, 1798349, 1797615, 1796713, 1795633, 1794370, 1792925, 1791306, 1789529, + 1787620, 1785606, 1783521, 1781398, 1779268, 1777157, 1775088, 1773077, 1771136, 1769274, 1767495, 1765801, 1764193, 1762668, + 1761225, 1759861, 1758572, 1757355, 1756207, 1755123, 1754100, 1753135, 1752225, 1751366, 1750556, 1749792, 1749071, 1748390, + 1747748, 1747142, 1746570, 1746030, 1745521, 1745040, 1744587, 1744159, 1803137, 1803130, 1803001, 1802748, 1802367, 1801847, + 1801178, 1800348, 1799349, 1798174, 1796823, 1795302, 1793625, 1791812, 1789889, 1787887, 1785837, 1783768, 1781708, 1779679, + 1777699, 1775781, 1773934, 1772164, 1770474, 1768866, 1767338, 1765889, 1764517, 1763219, 1761992, 1760832, 1759735, 1758700, + 1757722, 1756798, 1755926, 1755102, 1754324, 1753589, 1752895, 1752239, 1751620, 1751035, 1750482, 1749960, 1749467, 1749001, + 1748561, 1806333, 1806358, 1806264, 1806052, 1805717, 1805250, 1804641, 1803879, 1802955, 1801864, 1800602, 1799175, 1797592, + 1795872, 1794039, 1792119, 1790142, 1788137, 1786130, 1784143, 1782196, 1780303, 1778474, 1776715, 1775032, 1773426, 1771897, + 1770444, 1769066, 1767759, 1766522, 1765352, 1764244, 1763197, 1762207, 1761270, 1760385, 1759548, 1758757, 1758009, 1757302, + 1756633, 1756001, 1755403, 1754838, 1754303, 1753798, 1753320, 1752868, 1809465, 1809518, 1809458, 1809284, 1808992, 1808574, + 1808021, 1807323, 1806470, 1805456, 1804278, 1802939, 1801447, 1799818, 1798071, 1796232, 1794328, 1792387, 1790434, 1788493, + 1786581, 1784715, 1782905, 1781161, 1779486, 1777883, 1776354, 1774899, 1773516, 1772203, 1770958, 1769777, 1768660, 1767601, + 1766599, 1765650, 1764753, 1763903, 1763099, 1762338, 1761618, 1760937, 1760292, 1759682, 1759104, 1758558, 1758040, 1757551, + 1757087, 1812517, 1812598, 1812569, 1812431, 1812179, 1811808, 1811307, 1810668, 1809882, 1808942, 1807843, 1806588, 1805183, + 1803641, 1801978, 1800219, 1798389, 1796512, 1794615, 1792720, 1790846, 1789010, 1787223, 1785494, 1783829, 1782233, 1780706, + 1779250, 1777863, 1776545, 1775292, 1774104, 1772976, 1771908, 1770895, 1769935, 1769025, 1768164, 1767348, 1766575, 1765843, + 1765149, 1764492, 1763870, 1763280, 1762722, 1762193, 1761692, 1761217, 1815508, 1815615, 1815615, 1815509, 1815296, 1814967, + 1814516, 1813933, 1813209, 1812337, 1811314, 1810139, 1808816, 1807357, 1805777, 1804096, 1802337, 1800526, 1798686, 1796839, + 1795004, 1793199, 1791437, 1789726, 1788074, 1786485, 1784962, 1783507, 1782118, 1780795, 1779536, 1778340, 1777205, 1776126, + 1775103, 1774133, 1773212, 1772339, 1771512, 1770727, 1769983, 1769277, 1768609, 1767975, 1767373, 1766803, 1766263, 1765750, + 1765264, 1818421, 1818552, 1818580, 1818506, 1818328, 1818041, 1817636, 1817105, 1816440, 1815633, 1814681, 1813581, 1812337, + 1810959, 1809458, 1807854, 1806167, 1804421, 1802638, 1800841, 1799048, 1797277, 1795540, 1793850, 1792212, 1790633, 1789116, + 1787663, 1786273, 1784948, 1783685, 1782482, 1781339, 1780252, 1779220, 1778239, 1777309, 1776425, 1775586, 1774791, 1774035, + 1773319, 1772639, 1771993, 1771381, 1770800, 1770248, 1769725, 1769228, 1821275, 1821428, 1821482, 1821438, 1821293, 1821044, + 1820682, 1820201, 1819591, 1818845, 1817960, 1816931, 1815763, 1814461, 1813038, 1811508, 1809892, 1808211, 1806486, 1804739, + 1802989, 1801253, 1799546, 1797877, 1796256, 1794688, 1793179, 1791729, 1790340, 1789013, 1787746, 1786539, 1785389, 1784295, + 1783254, 1782264, 1781324, 1780430, 1779581, 1778775, 1778009, 1777281, 1776590, 1775934, 1775310, 1774718, 1774156, 1773622, + 1773115, 1824070, 1824245, 1824323, 1824306, 1824193, 1823979, 1823658, 1823223, 1822665, 1821977, 1821154, 1820194, 1819097, + 1817869, 1816520, 1815063, 1813516, 1811899, 1810232, 1808537, 1806831, 1805132, 1803454, 1801809, 1800206, 1798652, 1797151, + 1795707, 1794321, 1792993, 1791724, 1790513, 1789357, 1788256, 1787207, 1786209, 1785260, 1784357, 1783498, 1782681, 1781905, + 1781167, 1780465, 1779798, 1779165, 1778562, 1777989, 1777445, 1776927, 1826806, 1827001, 1827102, 1827112, 1827028, 1826848, + 1826566, 1826173, 1825664, 1825030, 1824267, 1823371, 1822342, 1821185, 1819907, 1818521, 1817042, 1815488, 1813880, 1812236, + 1810576, 1808915, 1807269, 1805649, 1804066, 1802527, 1801037, 1799599, 1798217, 1796890, 1795620, 1794405, 1793245, 1792138, + 1791082, 1790077, 1789119, 1788207, 1787339, 1786512, 1785726, 1784978, 1784267, 1783589, 1782945, 1782333, 1781750, 1781195, + 1780668, 1829486, 1829700, 1829823, 1829856, 1829800, 1829652, 1829406, 1829054, 1828591, 1828008, 1827301, 1826466, 1825502, + 1824412, 1823203, 1821885, 1820472, 1818982, 1817431, 1815840, 1814225, 1812604, 1810991, 1809399, 1807837, 1806314, 1804836, + 1803407, 1802030, 1800705, 1799435, 1798218, 1797054, 1795942, 1794881, 1793868, 1792903, 1791982, 1791105, 1790270, 1789475, + 1788717, 1787996, 1787309, 1786655, 1786032, 1785439, 1784875, 1784338, 1832110, 1832341, 1832484, 1832540, 1832511, 1832393, + 1832180, 1831867, 1831447, 1830912, 1830258, 1829481, 1828578, 1827553, 1826410, 1825158, 1823810, 1822382, 1820889, 1819350, + 1817782, 1816201, 1814622, 1813059, 1811520, 1810016, 1808551, 1807132, 1805761, 1804440, 1803171, 1801953, 1800787, 1799671, + 1798604, 1797585, 1796613, 1795685, 1794800, 1793956, 1793152, 1792385, 1791654, 1790958, 1790295, 1789663, 1789060, 1788487, + 1787940, 1834677, 1834925, 1835087, 1835166, 1835161, 1835071, 1834890, 1834613, 1834234, 1833745, 1833141, 1832418, 1831574, + 1830610, 1829531, 1828343, 1827059, 1825691, 1824255, 1822768, 1821247, 1819708, 1818165, 1816631, 1815117, 1813632, 1812183, + 1810775, 1809412, 1808096, 1806829, 1805612, 1804444, 1803325, 1802254, 1801230, 1800251, 1799316, 1798424, 1797572, 1796759, + 1795984, 1795244, 1794539, 1793867, 1793226, 1792614, 1792031, 1791475, 1837207, 1837471, 1837651, 1837749, 1837768, 1837704, + 1837553, 1837311, 1836969, 1836523, 1835966, 1835295, 1834507, 1833601, 1832582, 1831456, 1830233, 1828924, 1827544, 1826110, + 1824636, 1823139, 1821632, 1820129, 1818641, 1817177, 1815744, 1814349, 1812994, 1811685, 1810421, 1809205, 1808036, 1806915, + 1805840, 1804811, 1803827, 1802885, 1801986, 1801127, 1800306, 1799522, 1798774, 1798061, 1797379, 1796729, 1796109, 1795517, + 1794952, 1839683, 1839962, 1840158, 1840276, 1840316, 1840277, 1840155, 1839944, 1839639, 1839233, 1838721, 1838099, 1837363, + 1836514, 1835553, 1834487, 1833322, 1832072, 1830747, 1829365, 1827938, 1826483, 1825014, 1823543, 1822082, 1820640, 1819225, + 1817843, 1816499, 1815197, 1813938, 1812724, 1811556, 1810433, 1809355, 1808323, 1807333, 1806386, 1805480, 1804614, 1803786, + 1802995, 1802239, 1801517, 1800827, 1800169, 1799540, 1798939, 1798366, 1842104, 1842397, 1842610, 1842746, 1842807, 1842791, + 1842696, 1842516, 1842244, 1841877, 1841407, 1840832, 1840146, 1839350, 1838446, 1837436, 1836330, 1835135, 1833866, 1832534, + 1831155, 1829743, 1828312, 1826874, 1825441, 1824023, 1822627, 1821260, 1819928, 1818634, 1817381, 1816170, 1815003, 1813880, + 1812801, 1811765, 1810772, 1809820, 1808908, 1808036, 1807201, 1806403, 1805639, 1804909, 1804212, 1803545, 1802908, 1802299, + 1801717, 1844472, 1844777, 1845005, 1845159, 1845240, 1845247, 1845177, 1845025, 1844787, 1844455, 1844026, 1843495, 1842857, + 1842112, 1841261, 1840307, 1839256, 1838117, 1836901, 1835621, 1834289, 1832920, 1831527, 1830124, 1828720, 1827326, 1825951, + 1824601, 1823282, 1821998, 1820751, 1819545, 1818381, 1817258, 1816178, 1815140, 1814144, 1813187, 1812271, 1811393, 1810552, + 1809747, 1808976, 1808239, 1807534, 1806860, 1806215, 1805598, 1805008, 136533, 136533, 136533, 136533, 136533, 136533, + 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 135924, 125277, 108081, 91368, 77552, + 66660, 58112, 51334, 45876, 41412, 37706, 34587, 31931, 29644, 27657, 25914, 24375, 23005, 21780, + 20677, 19679, 18772, 17944, 17186, 16489, 15845, 15250, 14698, 14184, 13704, 13256, 12836, 12442, + 12071, 11721, 11392, 11080, 10784, 10504, 10238, 9986, 9745, 9516, 9297, 9088, 8888, 8697, + 8513, 8338, 8169, 8007, 7852, 7702, 7558, 7419, 7285, 7156, 7031, 6911, 6795, 6682, + 6574, 6468, 6366, 6267, 6172, 6079, 5989, 5901, 5816, 5733, 5653, 5575, 5499, 5425, + 5353, 5283, 5215, 5148, 5083, 5020, 4959 +]; +/// NMOS drain current in pA at 1000 centres of the (Vgs, Vds, Vsb) grid's cells, point k = 1 .. 1000 at Vgs = (floor(96 frac(k a1)) + 1/2) * 15.625 mV, Vds = (floor(48 frac(k a2)) + 1/2) * 31.25 mV, Vsb = (floor(6 frac(k a3)) + 1/2) * 0.25 V (deck psp103_idpa_vsb_tt.cir, block cen_n; a1, a2, a3 are R3_A1, R3_A2, R3_A3). Vsb is halfway between two slices. +pub const VSB_CEN_N : [1000]u32 = [ + 211441885, 126760981, 2967941, 4336987, 270, 31433176, 141402417, 69441337, 2516501, 179418, 180, 43389369, 147434150, 26166014, + 2849157, 753, 258610723, 47069542, 81643532, 7763739, 41482, 431, 206988427, 70013198, 36232054, 5581718, 175, 304678187, + 145008359, 55412156, 29560373, 166793, 296, 225385781, 139834873, 29270666, 6155208, 759, 158160924, 163190685, 78938541, 25206109, + 402832, 342, 141347862, 156531212, 35496012, 4788552, 1977, 307352260, 155358751, 90305587, 33776924, 135856, 786, 227611996, + 124497462, 42860399, 7781562, 1309, 326486742, 228141551, 80200665, 33948222, 414125, 627, 250552110, 151396395, 38440712, 10755335, + 207817, 248748995, 248362026, 88690133, 33894498, 869630, 1763, 200006290, 7810568, 47597973, 7200389, 97415, 328548229, 202890093, + 16796961, 42216808, 669024, 344, 251231410, 151135920, 36864087, 10551205, 380351, 2, 239501991, 93100132, 26950114, 954398, + 1466, 96072867, 163007864, 89975446, 7836809, 395614, 8, 112379014, 106907298, 40046689, 473927, 3765, 306919846, 97653272, + 102911761, 14391290, 260193, 18, 239575460, 73060616, 48179162, 1463465, 1073, 346419534, 167095889, 85544545, 15859871, 714117, + 11, 251836349, 104750805, 42445832, 11359972, 3633, 218575644, 185792365, 98469770, 13403422, 1372686, 17, 196792356, 117545247, + 46790412, 9828611, 8702, 345408765, 147511929, 110528092, 18596750, 591853, 41, 263152068, 150483080, 54703433, 16014427, 6940, + 11199063, 181056474, 100759850, 5418870, 1327587, 30, 28735445, 179097566, 50763723, 8660600, 9383, 293693669, 54419070, 107536256, + 18036767, 704521, 83, 241068551, 70795167, 60559229, 14576412, 4273, 362224357, 178024575, 59759098, 23460961, 1930501, 3337, + 278227496, 181261191, 39524461, 19299723, 19454, 10, 201274827, 112407365, 19492483, 2334430, 10417, 148711472, 188435078, 59123458, + 16405276, 25008, 32, 139592476, 127191816, 55461238, 2049020, 23563, 266343604, 144030772, 68616157, 18323885, 15721, 77, + 205639370, 99722464, 64406374, 3968258, 7423, 292757166, 200746422, 55454015, 23278497, 54578, 59, 291390007, 123470722, 59217085, + 4695241, 20651, 228357282, 219230100, 67961248, 20937002, 8812, 74, 239763649, 20356992, 61782700, 3641948, 8768, 296850135, + 184197003, 22730691, 26995385, 2645773, 36, 296843394, 117686590, 29555056, 5996079, 41839, 85279840, 213232010, 72061527, 15830652, + 4414721, 149, 105722561, 134763100, 66383788, 4192543, 45158, 273311719, 103912193, 131511148, 26019508, 3314938, 179, 274679688, + 95737060, 77426959, 5816389, 28070, 312721991, 204141740, 99849321, 32202159, 3927964, 108, 309282920, 146091636, 58939296, 8584119, + 95610, 88, 225784543, 137408664, 28162031, 6022957, 386, 213559054, 152562027, 74473901, 6852416, 170449, 234, 176424727, + 152313752, 31739560, 4943484, 913, 295787382, 133520476, 85050674, 28426583, 128712, 503, 231418239, 131270860, 3217863, 7693976, + 348, 31333117, 159439215, 70727868, 8798623, 347750, 475, 43788711, 153135187, 34943426, 3725346, 1038, 274255240, 62747808, + 83141988, 32140448, 171390, 429, 213946617, 63909332, 38119970, 7106167, 801, 312675185, 216125099, 55725230, 39279495, 340803, + 271, 245981361, 146119209, 30566019, 10189942, 3515, 158925050, 244148504, 88566479, 27821275, 780568, 921, 144099468, 163489833, + 42160414, 8191125, 392031, 307627685, 165008761, 97602522, 37208169, 496943, 891, 236338383, 128024264, 50246878, 9842241, 302355, + 341137902, 232617044, 86059120, 44311517, 821497, 1119, 259716220, 169920633, 80037518, 13270482, 722045, 4, 254608043, 104109909, + 34546011, 1612621, 3303, 214028130, 7898743, 95056140, 11488786, 148656, 10, 218569618, 17409877, 42799888, 1193597, 1528, + 331202875, 157535498, 30365166, 13184510, 597316, 5, 260349194, 100419429, 27071272, 2427536, 2947, 96556642, 182142820, 94788553, + 9846736, 1244617, 17, 112922784, 115039043, 47208770, 8600495, 7640, 318849990, 100088796, 108239742, 15405551, 833064, 35, + 245674086, 82005549, 49342673, 13177188, 4856, 344989521, 175074067, 84894171, 20209481, 1155132, 21, 273182295, 173251319, 46905349, + 17211120, 7938, 215759868, 194597497, 114672356, 14501587, 2116501, 70, 196203057, 191548296, 58604586, 15195249, 19025, 343617661, + 161190679, 116998717, 19971715, 1561937, 9454, 264084632, 165743950, 67548248, 16237750, 14957, 8, 190077158, 106176553, 6490196, + 2093391, 8581, 29418856, 198162885, 56332775, 8617598, 42816, 26, 40372278, 124374298, 49143861, 1118141, 21165, 252191031, + 71060660, 66805504, 18838056, 9331, 68, 189577651, 61698354, 62763456, 2771430, 14272, 280075906, 186425090, 46742844, 19839063, + 44652, 42, 279060837, 119204516, 49103848, 4670444, 17565, 148042652, 208602423, 65550926, 16873756, 113083, 140, 167301469, + 134649977, 68392092, 2355162, 40962, 283490945, 147010693, 75626814, 23132936, 70291, 148, 280731911, 112478451, 69021905, 4492396, + 32423, 302563698, 201042159, 67137365, 31609063, 3235284, 114, 306139326, 131274946, 62587712, 6801602, 39415, 232776979, 219659667, + 81408909, 24377127, 640080, 328, 237532068, 20800170, 75372606, 4181508, 15206, 304689673, 195179766, 34867114, 31024140, 4221191, + 63, 302627524, 133637109, 30819462, 6767418, 75698, 2, 214516552, 131889663, 20684359, 4605393, 314, 109587663, 152774643, + 71563659, 4741297, 193115, 201, 103254289, 149370692, 30213817, 3360372, 813, 292899573, 88445252, 83162820, 9649038, 54917, + 458, 216717985, 102249383, 36950678, 5911179, 491, 316554190, 148653111, 69969505, 33260756, 187287, 373, 234789293, 142864855, + 32301380, 8502481, 880, 214954565, 165023272, 80629796, 30090041, 428686, 375, 180711187, 158214756, 41504971, 5227913, 2110, + 316098160, 185415988, 91704881, 37922431, 166492, 830, 238964323, 141697374, 3480721, 9567620, 1608, 10560387, 231933129, 84277539, + 10631061, 453495, 754, 45648696, 153734195, 39986188, 5374159, 227460, 278869971, 64668420, 98353519, 35145755, 212184, 1897, + 221298441, 63296034, 48548833, 9043931, 142214, 333999224, 234261785, 58696013, 43026149, 762302, 464, 254752298, 157871126, 63765613, + 12615661, 421894, 5, 250242059, 95524996, 36142049, 1450932, 1652, 151783084, 164979935, 92068721, 10231683, 869521, 8, + 165994246, 108302693, 41136088, 902899, 4013, 318730848, 128179843, 104200964, 15104075, 313113, 19, 252573185, 86093326, 48948968, + 2132786, 3043, 350001276, 177542480, 93876886, 16278778, 776302, 13, 262059875, 106686631, 44593342, 3603170, 4001, 275600390, + 8328059, 100182467, 14199505, 161071, 19, 222870365, 18415713, 54246354, 12238580, 1743, 352464408, 164464548, 29881960, 19307047, + 966670, 8, 267421022, 109685638, 29164872, 16473614, 8087, 95940234, 190148779, 105097637, 12198473, 1921559, 35, 117957258, + 188004936, 52294498, 13375426, 10161, 322493573, 107002990, 109030879, 18794597, 1209458, 92, 252543113, 120569388, 61551442, 15175772, + 6181, 366993763, 193471025, 84831899, 24033124, 2719747, 4051, 281465000, 192241057, 48353720, 19759267, 36207, 31, 203536376, + 115361599, 20911007, 3165138, 11393, 197648544, 197653424, 60444562, 17414398, 86095, 36, 166880325, 128611321, 56635198, 2324587, + 25166, 272524259, 169447291, 69551294, 23131135, 33985, 8, 209451500, 112268702, 4794098, 4274281, 8666, 29529270, 204023832, + 63954623, 9659047, 98590, 69, 50836564, 131685092, 61224957, 1741969, 22301, 253717389, 75077930, 69156243, 21808510, 42009, + 80, 264080543, 67401492, 71839478, 3967969, 21297, 301244749, 192593056, 47723909, 27622705, 2904917, 47, 300712815, 135914213, + 48766745, 6346010, 76068, 149709794, 215820317, 78548967, 19841123, 4600488, 167, 174802161, 142444389, 68380741, 4704152, 78963, + 285337890, 157883890, 139117936, 26831776, 3667965, 401, 285991131, 117768230, 78475903, 6180199, 56829, 317031558, 208709424, 120245992, + 32817489, 6042389, 236, 312326120, 148869926, 63215411, 8971464, 168732, 3, 227974703, 145816223, 29890009, 774314, 706, + 251214807, 7266298, 76195809, 7388847, 64763, 252, 197424543, 37417710, 32513785, 5318630, 284, 301333290, 141305476, 34805151, + 10881746, 150805, 165, 234848858, 136936476, 21332378, 8002363, 709, 108289549, 161681946, 85576740, 22146790, 382730, 862, + 104694629, 155156318, 36114115, 4431558, 1873, 292088895, 95696390, 89707228, 33112121, 222700, 751, 222959595, 112328144, 38867428, + 7502154, 1085, 330225809, 224599925, 74508747, 39980577, 383411, 548, 248716380, 161008923, 36937845, 10519205, 4077, 213751867, + 246659042, 95497947, 29813727, 844810, 1658, 188528698, 165244189, 46828806, 8972656, 413150, 316636230, 199026208, 98798620, 38092847, + 596436, 3680, 241423593, 146973395, 4040187, 10256885, 347725, 2, 237792633, 90781402, 10492627, 1398904, 1320, 45456198, + 172543210, 88077090, 5636245, 773582, 7, 64520181, 105771723, 45462435, 414021, 3571, 232404294, 64390723, 101868168, 12252850, + 221180, 16, 232785787, 58080385, 47566237, 1350553, 2066, 336034298, 163814611, 72491272, 16465819, 665350, 9, 264424148, + 103087210, 39516875, 2585584, 3345, 188594364, 184314673, 107859211, 11019090, 1319009, 31, 164619056, 116517818, 52297765, 9357706, + 8314, 338305994, 139484367, 109587101, 16161114, 972587, 38, 252515051, 98501126, 54309230, 13655990, 6053, 372420676, 178774696, + 98136598, 23130499, 1255503, 26, 275872690, 177148241, 49402452, 17600923, 18200, 267207978, 8283334, 116616651, 17415648, 240423, + 80, 222803214, 25424756, 59759656, 15950515, 3542 +]; +/// PMOS drain current in pA at 1000 centres of the (Vgs, Vds, Vsb) grid's cells, point k = 1 .. 1000 at Vgs = (floor(96 frac(k a1)) + 1/2) * 15.625 mV, Vds = (floor(48 frac(k a2)) + 1/2) * 31.25 mV, Vsb = (floor(6 frac(k a3)) + 1/2) * 0.25 V (deck psp103_idpa_vsb_tt.cir, block cen_p; a1, a2, a3 are R3_A1, R3_A2, R3_A3). Vsb is halfway between two slices. +pub const VSB_CEN_P : [1000]u32 = [ + 125491582, 80789705, 1397600, 440367, 5, 21571809, 69894048, 34619948, 331408, 2950, 12, 27589201, 90860433, 7790927, + 548759, 9, 172331543, 27004929, 39275186, 708771, 1413, 20, 127325987, 44461571, 11072018, 902997, 4, 201823193, + 75340963, 31018943, 12037434, 2475, 26, 129640183, 83902639, 10884260, 571092, 8, 105170929, 82621861, 37145815, 12168423, + 4264, 12, 86465406, 91447318, 10684730, 742429, 14, 208592885, 105977525, 41449608, 15235614, 2234, 23, 135605068, + 78420910, 12760456, 1134601, 15, 211633714, 154610685, 40673905, 12679923, 3885, 27, 146358653, 86421613, 13206499, 1629510, + 9020, 163744068, 165244695, 39889888, 15067694, 6717, 47, 118776584, 4985604, 15850213, 1010129, 11502, 217782799, 134059430, + 9413393, 17945436, 10509, 18, 146708811, 90324584, 23693382, 1484910, 23381, 1, 155582795, 44636497, 14286007, 6545, + 33, 59316901, 89327359, 52641513, 1667645, 10263, 3, 74962534, 49795140, 16432162, 10074, 58, 221399374, 58812821, + 58290514, 3148756, 15900, 7, 159791064, 36741581, 19192689, 17769, 27, 249479324, 95546988, 53273623, 2572742, 27032, + 2, 157674264, 48194046, 19334347, 2797887, 46, 154271105, 103688211, 53813712, 2906170, 45490, 4, 128295481, 53023749, + 18079876, 3207881, 81, 252439774, 84431880, 58969926, 3938421, 21063, 17, 170452154, 99211230, 20802805, 5260780, 118, + 7799338, 99816790, 58322869, 1606889, 35916, 3, 18678190, 114566195, 21542629, 4103997, 69, 205692248, 33103011, 55645382, + 3782906, 53034, 5, 153669778, 47933963, 24901102, 4442649, 102, 257122517, 98720598, 35484971, 4926756, 93191, 289, + 174746367, 120062443, 17820050, 5712369, 181, 1, 108751324, 61307207, 5167245, 52867, 486, 95837528, 114919364, 23817029, + 6063441, 113, 3, 81603761, 67401272, 28665716, 128458, 811, 165490326, 93103243, 27088766, 5110143, 170, 11, + 115360209, 54451104, 32345431, 216353, 309, 179091445, 127405471, 22405599, 6440031, 298, 3, 200751456, 64205340, 32851174, + 136634, 523, 144599093, 136426731, 26326585, 6997962, 203, 4, 168443841, 12299754, 29556878, 200683, 670, 186460831, + 114964279, 11526071, 8728234, 365903, 2, 209085864, 60725588, 17279568, 331507, 1377, 53784039, 129872358, 30295051, 5664822, + 574214, 4, 71579300, 67434072, 34074911, 439230, 661, 170172292, 66744338, 78291956, 8112220, 737523, 6, 188532507, + 54260247, 38412554, 324273, 1025, 192193631, 122685179, 64711123, 9887445, 431923, 3, 209971144, 77469632, 30029583, 520907, + 1764, 7, 132885203, 85214109, 10247762, 671572, 6, 145680660, 74952493, 35843096, 683275, 1561, 13, 109676155, + 92164876, 9451239, 875118, 14, 197344999, 71185534, 39954918, 11860131, 2437, 31, 140536471, 80255384, 1485624, 1302872, + 5, 21116556, 81703677, 33486546, 5016629, 4200, 28, 27398804, 90540553, 11955374, 675739, 9, 184841911, 43104509, + 38036026, 14919518, 6452, 14, 129036440, 41268540, 11029545, 1105851, 14, 202938275, 147933911, 29940203, 17571777, 3826, + 16, 144971943, 84727327, 10805464, 1601335, 25, 103954176, 163849218, 43067169, 12565239, 6623, 29, 86861406, 92381132, + 13825294, 1867815, 14916, 203722168, 113363442, 43673201, 15724125, 10315, 18, 138482771, 78207511, 16236855, 1452060, 23056, + 223807129, 152651102, 42570715, 18293973, 6442, 32, 149452445, 99652325, 47454094, 2041117, 38573, 2, 163908929, 49199669, + 14182216, 11200, 56, 129481955, 4931187, 54031298, 2396786, 12961, 4, 146300319, 9581378, 16909508, 17454, 79, + 238823397, 91676181, 19955321, 1938307, 26675, 1, 172242642, 47148467, 13490236, 30348, 45, 67946444, 102726303, 52801285, + 2109630, 44965, 3, 73649443, 52511725, 20454387, 3008430, 77, 231332923, 59111648, 58459534, 3080707, 68240, 6, + 159540351, 42973481, 18493994, 4212176, 116, 240646072, 97906126, 50927907, 4071368, 35428, 2, 174498129, 112475696, 20622148, + 5394420, 68, 148552730, 106277748, 64820719, 2912688, 60034, 4, 124814189, 121335437, 24548791, 5903674, 118, 243625383, + 94475336, 60122668, 3948271, 91161, 317, 166279274, 110941864, 27786830, 4623003, 178, 1, 102890525, 59208434, 2222404, + 52105, 480, 19228617, 129541926, 23259912, 3657139, 308, 2, 24320356, 66742740, 25574880, 75836, 802, 162421148, + 46624322, 26774663, 6474737, 165, 5, 107047923, 35680433, 32017295, 133522, 1235, 171541838, 119017580, 22607920, 5266551, + 293, 3, 192755226, 63059853, 28785489, 223099, 516, 93667017, 130091139, 25889348, 5608183, 510, 5, 115994243, + 69281204, 37060669, 122720, 872, 179630223, 92392381, 29313536, 7300550, 789, 9, 198109910, 63444606, 32809040, 208083, + 1358, 182324351, 122952889, 29138126, 10363209, 378508, 4, 213132407, 66604214, 32995040, 342184, 653, 145331524, 131777177, + 33858859, 7877208, 183302, 7, 161717562, 12314160, 37985592, 202717, 838, 188778932, 123328070, 23310491, 9736968, 786290, + 3, 206982174, 71450203, 17366029, 336087, 1737, 2, 126497688, 83170774, 8567896, 445832, 5, 74657629, 79234009, + 35173657, 442763, 2970, 12, 64750542, 91397134, 9250037, 584538, 10, 203438528, 49236755, 39583231, 1023208, 1441, + 22, 132177353, 63709987, 11165291, 916076, 10, 209779968, 76432698, 37421605, 13853580, 2496, 27, 135441507, 84927833, + 11471551, 1340650, 8, 143561694, 83049758, 37518205, 14447993, 4296, 13, 110273570, 91872074, 14099504, 760976, 16, + 214170865, 126662713, 41722148, 17332427, 2258, 29, 142509330, 87958524, 1586038, 1570025, 15, 7037882, 156264682, 41937583, + 6360194, 3918, 28, 28858741, 87075508, 13479101, 1515919, 9085, 184346952, 44578067, 47276825, 15336394, 6013, 48, + 131307147, 39581204, 15990756, 1413455, 13917, 220608189, 162465390, 30856562, 18082305, 10610, 19, 147913910, 93174579, 39532311, + 2004801, 23543, 2, 162480163, 45240438, 17707370, 11030, 34, 92773451, 89825088, 53254501, 2281142, 39281, 3, + 110781356, 50081578, 16628443, 17100, 60, 230420117, 75844354, 58587240, 3206353, 16072, 12, 168608308, 41422690, 19317180, + 29846, 86, 251169355, 101382767, 57359107, 2598929, 27224, 2, 164220988, 48619148, 19882685, 51607, 47, 196934852, + 5255940, 54234825, 2980851, 17963, 4, 145359322, 10302929, 23263053, 4100947, 65, 257307988, 93649749, 18779401, 3997527, + 34903, 2, 172320125, 53263967, 14130507, 5312930, 120, 66120279, 105097769, 59865946, 2681265, 59252, 3, 77570159, + 120308523, 21858341, 5511171, 70, 227889708, 64256317, 55979905, 3849856, 88724, 6, 160410605, 81215759, 25074000, 4510732, + 105, 259749315, 111141348, 48695289, 4977444, 150973, 292, 175923772, 127194422, 20186289, 5761764, 303, 2, 109344829, + 62123949, 5363433, 87231, 489, 127198987, 120613704, 24059340, 6254342, 524, 4, 96192935, 67720908, 28921101, 130540, + 819, 168450258, 109440965, 27248412, 7933317, 288, 1, 116633901, 60761973, 3056715, 219266, 311, 19039482, 128612308, + 27768525, 3943126, 501, 3, 35474294, 68593840, 33450857, 115579, 527, 160589542, 49662962, 26534438, 7125265, 765, + 5, 186606332, 39828107, 37836690, 203568, 1327, 188331206, 119319351, 22278261, 8807852, 371625, 3, 210910961, 74362201, + 26779837, 336080, 2274, 93533288, 130675054, 33290326, 6371583, 579324, 5, 121829796, 71677372, 34552532, 454220, 1098, + 177033952, 100604791, 83005536, 8218530, 759784, 10, 195886693, 64983048, 38623377, 328780, 1711, 193783089, 124514076, 77313288, + 9964780, 1146943, 5, 211159586, 78243624, 31384903, 528169, 2934, 2, 133500872, 90386309, 10574206, 202673, 9, + 172532959, 4261457, 36205258, 698689, 3770, 14, 122026810, 25216385, 9549043, 892022, 9, 200252563, 74109223, 20230763, + 1064497, 2460, 16, 141756389, 82787949, 8366952, 1317395, 7, 72232683, 82260533, 44053418, 11215999, 4240, 45, + 64547881, 91089427, 12143431, 724039, 13, 197352328, 54525808, 41331576, 15111736, 6585, 21, 133529061, 71212873, 11124354, + 1122932, 15, 221568597, 152856133, 38669352, 17691242, 3860, 27, 145817929, 98144406, 12923381, 1617752, 26, 139857639, + 164699177, 46647968, 13080063, 6690, 47, 116239957, 92818821, 15734310, 1937367, 14998, 209243967, 137235474, 43906204, 15876664, + 10430, 83, 140518645, 88333110, 1964303, 1471369, 23250, 1, 154916292, 44004664, 5868940, 18076, 33, 28276001, + 100441829, 52018109, 1425063, 38816, 3, 43305806, 49557405, 21394479, 9937, 57, 139790198, 39344769, 58043940, 2455506, + 15706, 5, 155650307, 32009231, 19092312, 17637, 84, 241541092, 94330425, 46024175, 3311111, 26884, 2, 173823464, + 47809759, 18522946, 30629, 45, 132727834, 103307154, 64331609, 2226057, 45267, 3, 106951423, 52815519, 22899055, 3140816, + 79, 247084207, 84208861, 58762468, 3138584, 69184, 10, 163206611, 49638540, 20739621, 4264531, 117, 270922404, 99129503, + 57251804, 5025708, 35710, 2, 175404324, 113922080, 21236850, 5436679, 203, 185826273, 5118591, 65330891, 3724758, 23228, + 4, 141543009, 17386805, 24759171, 6030365, 97 +]; + +; --- the accessors --------------------------------------------------------------------------------------------------------------- + +/// The table of device dev (DEV_N, DEV_P) at the source-to-bulk voltage k * 0.25 V, k = 0 .. 6: the slice 0 is t0, the existing 2-D table the caller passes (TT_LG_N or TT_LG_P, or a +/// table of its own), the slices 1 .. 6 are the tables of this file. Any other k, or a dev that is neither, is t0. +pub fn vsb_tab(dev: u32, t0: []const u32, k: u32) -> []const u32 { + if (dev == DEV_N) { + if (k == 1) { return &VSB_N1; } + if (k == 2) { return &VSB_N2; } + if (k == 3) { return &VSB_N3; } + if (k == 4) { return &VSB_N4; } + if (k == 5) { return &VSB_N5; } + if (k == 6) { return &VSB_N6; } + } + if (dev == DEV_P) { + if (k == 1) { return &VSB_P1; } + if (k == 2) { return &VSB_P2; } + if (k == 3) { return &VSB_P3; } + if (k == 4) { return &VSB_P4; } + if (k == 5) { return &VSB_P5; } + if (k == 6) { return &VSB_P6; } + } + return t0; +} + +/// Id(vg, vd) of device dev at the source-to-bulk voltage vsb (units of 2^-24 V, 0 .. 1.5 V), in IUNIT = 1.164 pA: the two slices around vsb, the log word blended between them +/// (`lg_fine_vsb`). t0 is the slice 0. At vsb = 0 this is `lg_fine(t0, vg, vd)` exactly, and at a slice's own voltage it is `lg_fine` of that slice. +pub fn vsb_fine(dev: u32, t0: []const u32, vg: u32, vd: u32, vsb: u32) -> u64 { + const j : u32 = lg_vsb_cell(vsb); + return lg_fine_vsb(vsb_tab(dev, t0, j), vsb_tab(dev, t0, j + 1), vg, vd, lg_vsb_frac(vsb)); +} + +/// The held-out currents of device dev in pA. +pub fn vsb_cen(dev: u32) -> []const u32 { + if (dev == DEV_P) { return &VSB_CEN_P; } + return &VSB_CEN_N; +} + +; --- the tests ----------------------------------------------------------------------------------------------------------------- +; Variables, not constants, carry the data of the asserts: an assert on a constant is folded by the compiler and counts as no assert at all. + +test the_vsb_slices_are_the_numbers_ngspice_printed_and_are_tables_of_the_format_the_2d_reader_reads { + // the twelve slices, N then P, and the two held-out sets: the pins see one changed number + var s : u64 = 0; + var k : u32 = 1; + while (k < 7) { + s = fold_arr(vsb_tab(DEV_N, &TT_LG_N, k), 4851, s); + k = k + 1; + } + k = 1; + while (k < 7) { + s = fold_arr(vsb_tab(DEV_P, &TT_LG_P, k), 4851, s); + k = k + 1; + } + assert_eq(s, PIN_VSB_LG); + var c : u64 = fold_arr(&VSB_CEN_N, 1000, 0); + c = fold_arr(&VSB_CEN_P, 1000, c); + assert_eq(c, PIN_VSB_CEN); + // a pin sees one changed number in a table of this size too: the slice 3 of the NMOS with one word one higher is another word of the fold + var t : [4851]u32 = [0] ** 4851; + var i : usize = 0; + while (i < 4851) { + t[i] = VSB_N3[i]; + i = i + 1; + } + assert_eq(fold_arr(&t, 4851, 0), fold_arr(&VSB_N3, 4851, 0)); + t[2000] = t[2000] + 1; + assert fold_arr(&t, 4851, 0) != fold_arr(&VSB_N3, 4851, 0); + // the layout of a table of the 2-D reader: the tag word, 4753 log words under 2^21, and the 97 rv words, which are the same in every slice and in the existing tables (rv is a + // function of Vgs only: the deck prints them for every slice and they are the same words) + var nslice : u32 = VSB_NSLICE; + var ncen : u32 = VSB_CEN_COUNT; + var step : u32 = VSB_STEP_MV; + assert_eq(nslice, 7); + assert_eq(ncen, 1000); + assert_eq(step * 6, 1500); + var same_rv : u32 = 0; + var tags : u32 = 0; + var under : u32 = 0; + k = 1; + while (k < 7) { + const tn : []const u32 = vsb_tab(DEV_N, &TT_LG_N, k); + const tp : []const u32 = vsb_tab(DEV_P, &TT_LG_P, k); + if (tn[0] == LG_TAG) { tags = tags + 1; } + if (tp[0] == LG_TAG) { tags = tags + 1; } + var r : usize = 0; + while (r < 97) { + if (tn[4754 + r] == TT_LG_N[4754 + r]) { same_rv = same_rv + 1; } + if (tp[4754 + r] == TT_LG_P[4754 + r]) { same_rv = same_rv + 1; } + r = r + 1; + } + i = 1; + while (i <= 4753) { + if (tn[i] < 2097152) { under = under + 1; } + if (tp[i] < 2097152) { under = under + 1; } + i = i + 1; + } + k = k + 1; + } + assert_eq(tags, 12); + assert_eq(same_rv, 12 * 97); + assert_eq(under, 12 * 4753); + // the held-out currents: all positive, the smallest 2 pA (NMOS) and 1 pA (PMOS, at a high Vsb), the largest 372 uA and 271 uA + var cmin_n : u32 = VSB_CEN_N[0]; + var cmax_n : u32 = VSB_CEN_N[0]; + var cmin_p : u32 = VSB_CEN_P[0]; + var cmax_p : u32 = VSB_CEN_P[0]; + i = 0; + while (i < 1000) { + if (VSB_CEN_N[i] < cmin_n) { cmin_n = VSB_CEN_N[i]; } + if (VSB_CEN_N[i] > cmax_n) { cmax_n = VSB_CEN_N[i]; } + if (VSB_CEN_P[i] < cmin_p) { cmin_p = VSB_CEN_P[i]; } + if (VSB_CEN_P[i] > cmax_p) { cmax_p = VSB_CEN_P[i]; } + i = i + 1; + } + assert_eq(cmin_n, 2); + assert_eq(cmin_p, 1); + assert_eq(cmax_n, 372420676); + assert_eq(cmax_p, 270922404); +} + +test the_current_of_both_devices_falls_with_the_source_to_bulk_voltage_at_every_node_above_a_quarter_volt_of_gate_drive_and_the_accessors_pick_the_right_slices { + // The body effect raises the threshold, so at one (Vgs, Vds) the current falls as Vsb grows: the log word of slice k + 1 is at most that of slice k at every node with Vgs at or + // above 0.25 V (ix >= 16), 81 * 49 nodes, six steps, both devices. Below it the PMOS off current is a floor and a junction leakage that rises with Vsb, and the table holds both + // (a rise of up to 18180 words, a factor 2^0.28, at Vgs under 0.125 V), so the test does not claim the whole table. + var viol : u32 = 0; + var checked : u32 = 0; + var dev : u32 = 0; + while (dev < 2) { + var t0 : []const u32 = &TT_LG_N; + if (dev == DEV_P) { t0 = &TT_LG_P; } + var k : u32 = 0; + while (k < 6) { + const a : []const u32 = vsb_tab(dev, t0, k); + const b : []const u32 = vsb_tab(dev, t0, k + 1); + var ix : usize = 16; + while (ix < 97) { + var iy : usize = 0; + while (iy < 49) { + if (b[1 + ix * 49 + iy] > a[1 + ix * 49 + iy]) { viol = viol + 1; } + checked = checked + 1; + iy = iy + 1; + } + ix = ix + 1; + } + k = k + 1; + } + dev = dev + 1; + } + assert_eq(checked, 2 * 6 * 81 * 49); + assert_eq(viol, 0); + // how large the body effect is, at Vgs = 0.25 V (ix = 16), Vds = 1.5 V (iy = 48), weak inversion: the NMOS word falls from 1228960 at Vsb = 0 to 801411 at 1.5 V, a factor + // 2^6.52 = 92 in the current, the PMOS from 940848 to 294870, a factor 2^9.85 = 922; in strong inversion (Vgs = 0.75 V, Vds = 1.5 V) a few percent per quarter volt + assert_eq(TT_LG_N[1 + 16 * 49 + 48], 1228960); + assert_eq(VSB_N6[1 + 16 * 49 + 48], 801411); + assert_eq(TT_LG_P[1 + 16 * 49 + 48], 940848); + assert_eq(VSB_P6[1 + 16 * 49 + 48], 294870); + assert_eq(TT_LG_N[1 + 48 * 49 + 48], 1704014); + assert_eq(VSB_N6[1 + 48 * 49 + 48], 1632007); + // the accessors: the slice 0 is the table the caller passes (word for word, it is that table), the others are this file's tables, k outside 0 .. 6 and a device that is neither are the slice 0 + var w0 : u32 = vsb_tab(DEV_N, &TT_LG_N, 0)[2000]; + var w1 : u32 = vsb_tab(DEV_N, &TT_LG_N, 1)[2000]; + var w6 : u32 = vsb_tab(DEV_N, &TT_LG_N, 6)[2000]; + var w9 : u32 = vsb_tab(DEV_N, &TT_LG_N, 9)[2000]; + var wp : u32 = vsb_tab(DEV_P, &TT_LG_P, 6)[2000]; + var wx : u32 = vsb_tab(7, &TT_LG_N, 3)[2000]; + assert_eq(w0, TT_LG_N[2000]); + assert_eq(w1, VSB_N1[2000]); + assert_eq(w6, VSB_N6[2000]); + assert_eq(w9, TT_LG_N[2000]); + assert_eq(wp, VSB_P6[2000]); + assert_eq(wx, TT_LG_N[2000]); + assert w1 < w0; + assert w6 < w1; + assert wp < VSB_N6[2000]; + var h0 : usize = vsb_cen(DEV_N).len; + assert_eq(h0, 1000); + assert_eq(vsb_cen(DEV_N)[0], VSB_CEN_N[0]); + assert_eq(vsb_cen(DEV_P)[999], VSB_CEN_P[999]); +} + +test the_read_at_zero_source_to_bulk_voltage_is_the_2d_read_bit_for_bit_and_at_a_slice_it_is_the_read_of_that_slice_and_between_two_slices_it_lies_between_them { + // FR-002. At Vsb = 0 the weight of the second slice is 0 and the read is the existing 2-D read of the table passed as the slice 0, to the word, at every point of a lattice of + // 70 x 40 points over (Vgs, Vds), both devices; at the voltage of a slice (k * 2^22 units) it is the 2-D read of that slice; above the supply it is the top slice. Between two slices the + // read of the current lies between the reads of the two (the log word is a blend, and the current is monotone in it). + var at_zero : u32 = 0; + var at_slice : u32 = 0; + var above : u32 = 0; + var between : u32 = 0; + var total : u32 = 0; + var dev : u32 = 0; + while (dev < 2) { + var t0 : []const u32 = &TT_LG_N; + if (dev == DEV_P) { t0 = &TT_LG_P; } + var vg : u32 = 20000; + while (vg < 25165824) { + var vd : u32 = 30000; + while (vd < 25165824) { + total = total + 1; + if (vsb_fine(dev, t0, vg, vd, 0) == lg_fine(t0, vg, vd)) { at_zero = at_zero + 1; } + var k : u32 = 1; + var ok : bool = true; + while (k < 7) { + if (vsb_fine(dev, t0, vg, vd, k << 22) != lg_fine(vsb_tab(dev, t0, k), vg, vd)) { ok = false; } + k = k + 1; + } + if (ok) { at_slice = at_slice + 1; } + if (vsb_fine(dev, t0, vg, vd, 25165824 + 77) == lg_fine(vsb_tab(dev, t0, 6), vg, vd)) { above = above + 1; } + // between slices 2 and 3 (0.5 V and 0.75 V) at 0.6 V: the current is not above the lower Vsb's and not below the higher's (the 0.25 V slices of one device fall with Vsb + // at the nodes above 0.25 V of gate drive; elsewhere the order may flip, so the check is made where Vgs is at least 0.3 V) + const lo : u64 = lg_fine(vsb_tab(dev, t0, 3), vg, vd); + const hi : u64 = lg_fine(vsb_tab(dev, t0, 2), vg, vd); + const mid : u64 = vsb_fine(dev, t0, vg, vd, 10066330); + if (vg < 5033165) { + between = between + 1; + } else { + if (mid >= lo and mid <= hi) { between = between + 1; } + } + vd = vd + 600011; + } + vg = vg + 360007; + } + dev = dev + 1; + } + assert total > 2000; + assert_eq(at_zero, total); + assert_eq(at_slice, total); + assert_eq(above, total); + assert_eq(between, total); + // NEGATIVE CONTROL: the slices of the wrong device (the PMOS table as the slice 0 of an NMOS read) are not the 2-D read, so a mix-up of the devices is seen at Vsb = 0 and between + assert vsb_fine(DEV_N, &TT_LG_P, 12000000, 3000000, 0) != lg_fine(&TT_LG_N, 12000000, 3000000); + assert vsb_fine(DEV_N, &TT_LG_N, 12000000, 3000000, 6291456) != vsb_fine(DEV_P, &TT_LG_P, 12000000, 3000000, 6291456); +} diff --git a/specs/analog/mos_table.t27 b/specs/analog/mos_table.t27 index 0793ffbf68..0ec25fc9e0 100644 --- a/specs/analog/mos_table.t27 +++ b/specs/analog/mos_table.t27 @@ -407,12 +407,51 @@ pub fn lg_lam(t: []const u32, vg: u32, vd: u32) -> u32 { return read_w(t, 1, vg, vd, LG_GBITS, LG_DBITS, LG_NG, LG_ND); } +/// The current in IUNIT from a log word lam and an rv word at the drain voltage dv (units of 2^-24 V): F * 2^(lam / 2^16), both rounded. The common tail of `lg_fine` (lam read from +/// one table) and `lg_fine_vsb` (lam blended from two slices along the source-to-bulk axis), so the two cannot drift apart. +pub fn lg_cur(lam: u32, rv: u64, dv: u32) -> u64 { + const x24 : u64 = (((dv as u64) * rv) + 2048) >> 12; + return (exp2_lam(lam) * vds_factor(x24) + 8388608) >> 24; +} + /// Id(vg, vd) of a log table in IUNIT = 2^-8 of a linear-table word (1.164 pA): F * 2^(lam / 2^16), both rounded. The largest, 402 uA, is 3.5e8 under 2^29. pub fn lg_fine(t: []const u32, vg: u32, vd: u32) -> u64 { const gv : u32 = lim(vg); const dv : u32 = lim(vd); - const x24 : u64 = (((dv as u64) * lg_rv(t, gv)) + 2048) >> 12; - return (exp2_lam(lg_lam(t, gv, dv)) * vds_factor(x24) + 8388608) >> 24; + return lg_cur(lg_lam(t, gv, dv), lg_rv(t, gv), dv); +} + +; --- the source-to-bulk axis (M3e, #11283): the log table read as a function of three voltages ------------------------------------------------------------------------------------- +; The 2-D tables have each bulk tied to its source, so they hold no body effect; a device whose bulk sits on a rail while its source moves (the transmission gate's two devices) is +; read at a source-to-bulk voltage Vsb > 0. The third axis is a stack of LG_NV + 1 = 7 log tables (the slices) at Vsb = k * 2^22 units = k * 0.25 V, k = 0 .. 6, each a legal log +; table of its own (tag word, 4753 log words, 97 rv words), the slice 0 being the 2-D table itself. The read of a point is the read of the two slices around its Vsb with the LOG +; WORD blended linearly between them (`blend1_w`, weights 2^22): the weak-inversion current is exponential in the threshold, and the threshold moves with Vsb nearly linearly over a +; slice, so the blend of the log word is the right one (a blend of the currents would be a chord of an exponential). At Vsb = 0 the weight of the second slice is 0 and the read is the +; 2-D read bit for bit (`blend1_w` with f = 0 returns d0: the rounding half is below the weight 2^22), a test. rv is a function of Vgs only, the same in every slice, and is read from +; the first slice of the pair. The slices of a device are the arguments, not a global, so that the tables of another corner or temperature can use the same read. +/// The Vsb axis: 2^22 units (0.25 V) per cell, 6 cells, 7 slices. +pub const LG_VBITS : u32 = 22; +pub const LG_NV : u32 = 6; + +/// The cell of a source-to-bulk voltage on the axis (0 .. 5): the top slice's voltage belongs to the last cell; a voltage above the supply is the supply. +pub fn lg_vsb_cell(vsb: u32) -> u32 { + return cell_w(lim(vsb), LG_VBITS, LG_NV); +} + +/// The position of a source-to-bulk voltage in its cell, 0 .. 2^22 (2^22 only at the top of the axis). +pub fn lg_vsb_frac(vsb: u32) -> u32 { + const v : u32 = lim(vsb); + return v - (cell_w(v, LG_VBITS, LG_NV) << LG_VBITS); +} + +/// Id(vg, vd) at a source-to-bulk voltage a fraction fz (0 .. 2^22) of the way from the slice ta to the slice tb: the log word of the two slices blended with weights 2^22, then the +/// same tail as `lg_fine`. fz = 0 is `lg_fine(ta, vg, vd)` exactly, fz = 2^22 is `lg_fine(tb, vg, vd)` exactly. +pub fn lg_fine_vsb(ta: []const u32, tb: []const u32, vg: u32, vd: u32, fz: u32) -> u64 { + const gv : u32 = lim(vg); + const dv : u32 = lim(vd); + const la : u64 = (lg_lam(ta, gv, dv)) as u64; + const lb : u64 = (lg_lam(tb, gv, dv)) as u64; + return lg_cur(blend1_w(la, lb, fz, LG_VBITS) as u32, lg_rv(ta, gv), dv); } /// Id(vg, vd) of a log table in table units (words of 298 pA), rounded half up: what the Newton step adds. @@ -1600,3 +1639,77 @@ test a_synthetic_log_table_gives_the_closed_form_value_and_slope { assert_eq(gds_log(&tabz, 12000000, 3000000), 0); assert lg_fine(&tabz, 12000000, 3000000) > 0; } + +test the_source_to_bulk_read_blends_the_log_word_between_two_slices_and_is_the_2d_read_at_the_ends { + // M3e (#11283). Two slices of one synthetic device: the log word of the first is L0 + 8192 ix, the second's is 65536 higher (a factor 2 in the current), rv = 50000 in both. So the + // current at a fraction fz of the way is F 2^(lam / 65536) with lam = L0 + vg / 32 + fz / 64 (fz in units of 2^-22 of a slice: 65536 / 2^22 = 1 / 64). + var ta : [4851]u32 = [0] ** 4851; + var tb : [4851]u32 = [0] ** 4851; + ta[0] = LG_TAG; + tb[0] = LG_TAG; + var ix : u32 = 0; + while (ix < 97) { + var iy : u32 = 0; + while (iy < 49) { + const at : usize = (1 + ix * 49 + iy) as usize; + ta[at] = 700000 + 8192 * ix; + tb[at] = 765536 + 8192 * ix; + iy = iy + 1; + } + ta[(4754 + ix) as usize] = 50000; + tb[(4754 + ix) as usize] = 50000; + ix = ix + 1; + } + var full : u32 = 4194304; + var half : u32 = 2097152; + var worst : f64 = 0.0; + var at_ends : u32 = 0; + var rising : u32 = 0; + var checked : u32 = 0; + var vg : u32 = 100000; + while (vg < VDD) { + var vd : u32 = 70000; + while (vd < VDD) { + // the two ends are the 2-D reads of the slices, exactly + if (lg_fine_vsb(&ta, &tb, vg, vd, 0) == lg_fine(&ta, vg, vd)) { at_ends = at_ends + 1; } + if (lg_fine_vsb(&ta, &tb, vg, vd, full) == lg_fine(&tb, vg, vd)) { at_ends = at_ends + 1; } + // the middle is the closed form: the rounding of an integer (half) and a part in 1e5 of the value + const x : f64 = (vd as f64) * 50000.0 / 68719476736.0; + const f : f64 = 1.0 - exp_f64(0.0 - x); + const lamh : f64 = 700000.0 + (vg as f64) / 32.0 + 32768.0; + const eh : f64 = exp_f64(lamh * 0.6931471805599453 / 65536.0); + worst = fmax64(worst, fabs64(((lg_fine_vsb(&ta, &tb, vg, vd, half)) as f64) - f * eh) - 0.00007 * f * eh); + // and the current rises with the fraction (the second slice is the higher) + if (lg_fine_vsb(&ta, &tb, vg, vd, half) > lg_fine_vsb(&ta, &tb, vg, vd, 1048576)) { rising = rising + 1; } + checked = checked + 1; + vd = vd + 1700003; + } + vg = vg + 1300007; + } + assert checked > 100; + assert_eq(at_ends, 2 * checked); + assert_eq(rising, checked); + assert worst < 1.01; + // NEGATIVE CONTROL: the slices in each other's places read the other end (the second slice is twice the first), so a swap is seen at both ends + assert lg_fine_vsb(&tb, &ta, 12000000, 3000000, 0) != lg_fine_vsb(&ta, &tb, 12000000, 3000000, 0); + assert lg_fine_vsb(&tb, &ta, 12000000, 3000000, 0) > lg_fine_vsb(&ta, &tb, 12000000, 3000000, 0); + // the cell and the position of a source-to-bulk voltage: 0.25 V = 2^22 units, the top of the axis is the end of the last cell, and a voltage above the supply is the supply + var v0 : u32 = 0; + var v1 : u32 = 4194303; + var v2 : u32 = 4194304; + var v3 : u32 = 10000000; + var top : u32 = VDD; + var over : u32 = VDD + 5; + assert_eq(lg_vsb_cell(v0), 0); + assert_eq(lg_vsb_frac(v0), 0); + assert_eq(lg_vsb_cell(v1), 0); + assert_eq(lg_vsb_frac(v1), 4194303); + assert_eq(lg_vsb_cell(v2), 1); + assert_eq(lg_vsb_frac(v2), 0); + assert_eq(lg_vsb_cell(v3), 2); + assert_eq(lg_vsb_frac(v3), 1611392); + assert_eq(lg_vsb_cell(top), 5); + assert_eq(lg_vsb_frac(top), 4194304); + assert_eq(lg_vsb_cell(over), 5); + assert_eq(lg_vsb_frac(over), 4194304); +}