2, add D-flip-flop & NOT gate with delay to support 'C-style for loop' in electronic graph.
CFILES += ses_steps.c
CFILES += ses_step_battery.c
CFILES += ses_step_dc_input.c
+CFILES += ses_step_ac_input.c
+
CFILES += ses_step_dc_diode.c
CFILES += ses_step_dc_npn.c
CFILES += ses_step_dc_pnp.c
#CFILES += ttl_or.c
#CFILES += ttl_nor.c
#CFILES += ttl_not.c
+#CFILES += ttl_not_delay.c
#CFILES += ttl_xor.c
#CFILES += ttl_add.c
+#CFILES += ttl_adc.c
#CFILES += ttl_if.c
+#CFILES += ttl_d_flip_flop.c
#CFILES += ttl_mla.c
#CFILES += ttl_mla_test.c
#CFILES += ttl_if_test.c
#CFILES += ttl_nor_test.c
#CFILES += ttl_xor_test.c
#CFILES += ttl_add_test.c
+#CFILES += ttl_adc_test.c
+#CFILES += ttl_ck_test.c
#CFILES += add.c
#CFILES += jk_gate.c
#CFILES += jk_gate2.c
-#CFILES += ttl_nand_delay.c
-#CFILES += ttl_nand_gate.c
-#CFILES += ttl_nand_gate2.c
#CFILES += rs_gate.c
-CFILES += d_gate.c
+#CFILES += ttl_dff_test.c
+CFILES += for_test.c
#CFILES += add_gate.c
#CFILES += adc_gate.c
+#CFILES += op_amp_741.c
+#CFILES += op_amp_test.c
CFILES += ../scf_eda_pack.c
CFILES += ../pack/scf_pack.c
--- /dev/null
+#include<stdio.h>
+#include<stdlib.h>
+#include<string.h>
+#include"ses_core.h"
+
+int main(int argc, char* argv[])
+{
+ ScfEcomponent* B;
+ ScfEcomponent* R;
+ ScfEcomponent* C;
+ ScfEcomponent* T;
+ ScfEcomponent* IF;
+
+ ScfEcomponent* IF2;
+ ScfEcomponent* NOT;
+
+ ScfEcomponent* DFF;
+ ScfEcomponent* AND;
+ ScfEcomponent* CLK;
+
+ ScfEfunction* f;
+ ScfEboard* b;
+
+ b = scf_eboard__alloc();
+ f = scf_efunction__alloc("for_test");
+
+ EDA_INST_ADD_COMPONENT(f, B, SCF_EDA_Battery);
+ EDA_INST_ADD_COMPONENT(f, R, SCF_EDA_Resistor);
+ EDA_INST_ADD_COMPONENT(f, C, SCF_EDA_Capacitor);
+ EDA_INST_ADD_COMPONENT(f, T, SCF_EDA_NPN);
+ EDA_INST_ADD_COMPONENT(f, IF, SCF_EDA_IF);
+
+ EDA_INST_ADD_COMPONENT(f, DFF, SCF_EDA_DFF);
+ EDA_INST_ADD_COMPONENT(f, AND, SCF_EDA_AND);
+ EDA_INST_ADD_COMPONENT(f, CLK, SCF_EDA_NOT);
+
+ EDA_INST_ADD_COMPONENT(f, IF2, SCF_EDA_IF);
+ EDA_INST_ADD_COMPONENT(f, NOT, SCF_EDA_NOT);
+
+ B->pins[SCF_EDA_Battery_NEG]->flags = SCF_EDA_PIN_NEG;
+ B->pins[SCF_EDA_Battery_POS]->flags = SCF_EDA_PIN_POS;
+
+ EDA_PIN_ADD_PIN(R, 1, B, SCF_EDA_Battery_POS);
+ EDA_PIN_ADD_PIN(IF, SCF_EDA_IF_POS, B, SCF_EDA_Battery_POS);
+ EDA_PIN_ADD_PIN(DFF, SCF_EDA_DFF_POS, B, SCF_EDA_Battery_POS);
+ EDA_PIN_ADD_PIN(AND, SCF_EDA_AND_POS, B, SCF_EDA_Battery_POS);
+ EDA_PIN_ADD_PIN(CLK, SCF_EDA_NOT_POS, B, SCF_EDA_Battery_POS);
+
+ EDA_PIN_ADD_PIN(IF2, SCF_EDA_IF_POS, B, SCF_EDA_Battery_POS);
+ EDA_PIN_ADD_PIN(NOT, SCF_EDA_NOT_POS, B, SCF_EDA_Battery_POS);
+
+ EDA_PIN_ADD_PIN(C, 0, B, SCF_EDA_Battery_NEG);
+ EDA_PIN_ADD_PIN(T, SCF_EDA_NPN_E, B, SCF_EDA_Battery_NEG);
+ EDA_PIN_ADD_PIN(IF, SCF_EDA_IF_NEG, B, SCF_EDA_Battery_NEG);
+ EDA_PIN_ADD_PIN(DFF, SCF_EDA_DFF_NEG, B, SCF_EDA_Battery_NEG);
+ EDA_PIN_ADD_PIN(AND, SCF_EDA_AND_NEG, B, SCF_EDA_Battery_NEG);
+ EDA_PIN_ADD_PIN(CLK, SCF_EDA_NOT_NEG, B, SCF_EDA_Battery_NEG);
+
+ EDA_PIN_ADD_PIN(IF2, SCF_EDA_IF_NEG, B, SCF_EDA_Battery_NEG);
+ EDA_PIN_ADD_PIN(NOT, SCF_EDA_NOT_NEG, B, SCF_EDA_Battery_NEG);
+
+ EDA_PIN_ADD_PIN(CLK, SCF_EDA_NOT_IN, AND, SCF_EDA_AND_IN0);
+ EDA_PIN_ADD_PIN(CLK, SCF_EDA_NOT_OUT, AND, SCF_EDA_AND_IN1);
+ EDA_PIN_ADD_PIN(AND, SCF_EDA_AND_OUT, DFF, SCF_EDA_DFF_CK);
+
+ EDA_PIN_ADD_PIN(R, 0, C, 1);
+ EDA_PIN_ADD_PIN(C, 1, T, SCF_EDA_NPN_B);
+ EDA_PIN_ADD_PIN(IF, SCF_EDA_IF_COND, T, SCF_EDA_NPN_C);
+ EDA_PIN_ADD_PIN(IF, SCF_EDA_IF_OUT, DFF, SCF_EDA_DFF_IN);
+ EDA_PIN_ADD_PIN(IF, SCF_EDA_IF_FALSE, IF2, SCF_EDA_IF_OUT);
+
+ EDA_PIN_ADD_PIN(DFF, SCF_EDA_DFF_OUT, IF2, SCF_EDA_IF_COND);
+ EDA_PIN_ADD_PIN(DFF, SCF_EDA_DFF_OUT, IF2, SCF_EDA_IF_TRUE);
+ EDA_PIN_ADD_PIN(DFF, SCF_EDA_DFF_OUT, NOT, SCF_EDA_NOT_IN);
+ EDA_PIN_ADD_PIN(NOT, SCF_EDA_NOT_OUT, IF2, SCF_EDA_IF_FALSE);
+
+
+ IF->pins [SCF_EDA_IF_TRUE]->flags = SCF_EDA_PIN_IN | SCF_EDA_PIN_IN0;
+ CLK->pins[SCF_EDA_NOT_IN ]->flags = SCF_EDA_PIN_IN;
+ DFF->pins[SCF_EDA_DFF_OUT]->flags = SCF_EDA_PIN_OUT;
+
+ R->r = 1600;
+ C->uf = 4e-4;
+
+ CLK->model = SCF_EDA_TTL_DELAY;
+
+ scf_eboard__add_function(b, f);
+
+ long len = 0;
+ uint8_t* buf = NULL;
+
+ ScfEboard_pack(b, &buf, &len);
+ ScfEboard_free(b);
+ b = NULL;
+
+ FILE* fp = fopen("./for_test.cpk", "wb");
+ if (!fp)
+ return -EINVAL;
+
+ fwrite(buf, len, 1, fp);
+ fclose(fp);
+ return 0;
+}
--- /dev/null
+#include<stdio.h>
+#include<stdlib.h>
+#include<string.h>
+#include"ses_core.h"
+
+int main(int argc, char* argv[])
+{
+ ScfEcomponent* ADD0;
+ ScfEcomponent* ADD1;
+ ScfEcomponent* OR;
+
+ ScfEfunction* f = scf_efunction__alloc("ttl_adc");
+
+ EDA_INST_ADD_COMPONENT(f, ADD0, SCF_EDA_ADD);
+ EDA_INST_ADD_COMPONENT(f, ADD1, SCF_EDA_ADD);
+ EDA_INST_ADD_COMPONENT(f, OR, SCF_EDA_OR);
+
+ EDA_PIN_ADD_PIN(ADD0, SCF_EDA_ADD_POS, ADD1, SCF_EDA_ADD_POS);
+ EDA_PIN_ADD_PIN(ADD0, SCF_EDA_ADD_POS, OR, SCF_EDA_OR_POS);
+ EDA_PIN_ADD_PIN(ADD0, SCF_EDA_ADD_NEG, ADD1, SCF_EDA_ADD_NEG);
+ EDA_PIN_ADD_PIN(ADD0, SCF_EDA_ADD_NEG, OR, SCF_EDA_OR_NEG);
+
+ EDA_PIN_ADD_PIN(ADD0, SCF_EDA_ADD_OUT, ADD1, SCF_EDA_ADD_IN0);
+ EDA_PIN_ADD_PIN(ADD0, SCF_EDA_ADD_CF, OR, SCF_EDA_OR_IN0);
+ EDA_PIN_ADD_PIN(ADD1, SCF_EDA_ADD_CF, OR, SCF_EDA_OR_IN1);
+
+ ADD0->pins[SCF_EDA_ADD_POS]->flags = SCF_EDA_PIN_POS;
+ ADD0->pins[SCF_EDA_ADD_NEG]->flags = SCF_EDA_PIN_NEG;
+
+ ADD0->pins[SCF_EDA_ADD_IN0]->flags = SCF_EDA_PIN_IN;
+ ADD0->pins[SCF_EDA_ADD_IN1]->flags = SCF_EDA_PIN_IN | SCF_EDA_PIN_IN0;
+ ADD1->pins[SCF_EDA_ADD_IN1]->flags = SCF_EDA_PIN_IN;
+ ADD1->pins[SCF_EDA_ADD_OUT]->flags = SCF_EDA_PIN_OUT;
+ OR ->pins[SCF_EDA_ADD_OUT]->flags = SCF_EDA_PIN_CF;
+
+ ADD0->pins[SCF_EDA_ADD_POS]->ic_lid = SCF_EDA_ADC_POS;
+ ADD0->pins[SCF_EDA_ADD_NEG]->ic_lid = SCF_EDA_ADC_NEG;
+
+ ADD0->pins[SCF_EDA_ADD_IN0]->ic_lid = SCF_EDA_ADC_CI;
+ ADD0->pins[SCF_EDA_ADD_IN1]->ic_lid = SCF_EDA_ADC_IN0;
+ ADD1->pins[SCF_EDA_ADD_IN1]->ic_lid = SCF_EDA_ADC_IN1;
+ ADD1->pins[SCF_EDA_ADD_OUT]->ic_lid = SCF_EDA_ADC_OUT;
+ OR ->pins[SCF_EDA_OR_OUT ]->ic_lid = SCF_EDA_ADC_CF;
+
+ int ret = ses_layout_function(f, 100);
+ if (ret < 0)
+ return ret;
+
+ ses_draw(f, "ttl_adc.png", f->x, f->y, f->w, f->h, 0, -1);
+
+ long len = 0;
+ uint8_t* buf = NULL;
+
+ ScfEfunction_pack(f, &buf, &len);
+ ScfEfunction_free(f);
+ f = NULL;
+
+ FILE* fp = fopen("./ttl_adc.cpk", "wb");
+ if (!fp)
+ return -EINVAL;
+
+ fwrite(buf, len, 1, fp);
+ fclose(fp);
+ return 0;
+}
--- /dev/null
+#include<stdio.h>
+#include<stdlib.h>
+#include<string.h>
+#include"ses_core.h"
+
+int main(int argc, char* argv[])
+{
+ ScfEcomponent* B;
+ ScfEcomponent* ADC;
+
+ ScfEboard* b = scf_eboard__alloc();
+ ScfEfunction* f = scf_efunction__alloc("adc_test");
+
+ EDA_INST_ADD_COMPONENT(f, B, SCF_EDA_Battery);
+ EDA_INST_ADD_COMPONENT(f, ADC, SCF_EDA_ADC);
+
+ B->pins[SCF_EDA_Battery_POS]->flags = SCF_EDA_PIN_POS;
+ B->pins[SCF_EDA_Battery_NEG]->flags = SCF_EDA_PIN_NEG;
+
+ EDA_PIN_ADD_PIN(B, SCF_EDA_Battery_POS, ADC, SCF_EDA_ADC_POS);
+ EDA_PIN_ADD_PIN(B, SCF_EDA_Battery_NEG, ADC, SCF_EDA_ADC_NEG);
+
+ ADC->pins[SCF_EDA_ADC_CI ]->flags = SCF_EDA_PIN_IN;
+ ADC->pins[SCF_EDA_ADC_IN0]->flags = SCF_EDA_PIN_IN | SCF_EDA_PIN_IN0;
+ ADC->pins[SCF_EDA_ADC_IN1]->flags = SCF_EDA_PIN_IN;
+ ADC->pins[SCF_EDA_ADC_OUT]->flags = SCF_EDA_PIN_OUT;
+ ADC->pins[SCF_EDA_ADC_CF]->flags = SCF_EDA_PIN_CF;
+
+ scf_eboard__add_function(b, f);
+
+ long len = 0;
+ uint8_t* buf = NULL;
+
+ ScfEboard_pack(b, &buf, &len);
+ ScfEboard_free(b);
+ b = NULL;
+
+ FILE* fp = fopen("./adc_test.cpk", "wb");
+ if (!fp)
+ return -EINVAL;
+
+ fwrite(buf, len, 1, fp);
+ fclose(fp);
+ return 0;
+}
--- /dev/null
+#include<stdio.h>
+#include<stdlib.h>
+#include<string.h>
+#include"ses_core.h"
+
+int main(int argc, char* argv[])
+{
+ ScfEcomponent* B;
+
+ ScfEcomponent* AND;
+ ScfEcomponent* CLK;
+
+ ScfEfunction* f;
+ ScfEboard* b;
+
+ b = scf_eboard__alloc();
+ f = scf_efunction__alloc("ck_test");
+
+ EDA_INST_ADD_COMPONENT(f, B, SCF_EDA_Battery);
+ EDA_INST_ADD_COMPONENT(f, AND, SCF_EDA_AND);
+ EDA_INST_ADD_COMPONENT(f, CLK, SCF_EDA_NOT);
+
+ B->pins[SCF_EDA_Battery_NEG]->flags = SCF_EDA_PIN_NEG;
+ B->pins[SCF_EDA_Battery_POS]->flags = SCF_EDA_PIN_POS;
+
+ EDA_PIN_ADD_PIN(AND, SCF_EDA_AND_POS, B, SCF_EDA_Battery_POS);
+ EDA_PIN_ADD_PIN(CLK, SCF_EDA_NOT_POS, B, SCF_EDA_Battery_POS);
+
+ EDA_PIN_ADD_PIN(AND, SCF_EDA_AND_NEG, B, SCF_EDA_Battery_NEG);
+ EDA_PIN_ADD_PIN(CLK, SCF_EDA_NOT_NEG, B, SCF_EDA_Battery_NEG);
+
+ EDA_PIN_ADD_PIN(CLK, SCF_EDA_NOT_IN, AND, SCF_EDA_AND_IN0);
+ EDA_PIN_ADD_PIN(CLK, SCF_EDA_NOT_OUT, AND, SCF_EDA_AND_IN1);
+
+ CLK->pins[SCF_EDA_NOT_IN ]->flags = SCF_EDA_PIN_IN | SCF_EDA_PIN_IN0;
+ AND->pins[SCF_EDA_AND_OUT]->flags = SCF_EDA_PIN_OUT;
+
+ CLK->model = SCF_EDA_TTL_DELAY;
+
+ scf_eboard__add_function(b, f);
+
+ long len = 0;
+ uint8_t* buf = NULL;
+
+ ScfEboard_pack(b, &buf, &len);
+ ScfEboard_free(b);
+ b = NULL;
+
+ FILE* fp = fopen("./ck_test.cpk", "wb");
+ if (!fp)
+ return -EINVAL;
+
+ fwrite(buf, len, 1, fp);
+ fclose(fp);
+ return 0;
+}
--- /dev/null
+#include<stdio.h>
+#include<stdlib.h>
+#include<string.h>
+#include"ses_core.h"
+
+int main(int argc, char* argv[])
+{
+ ScfEcomponent* NAND0;
+ ScfEcomponent* NAND1;
+ ScfEcomponent* NAND2;
+ ScfEcomponent* NAND3;
+ ScfEcomponent* NAND4;
+
+ ScfEfunction* f = scf_efunction__alloc("ttl_dff.cpk");
+
+ EDA_INST_ADD_COMPONENT(f, NAND0, SCF_EDA_NAND);
+ EDA_INST_ADD_COMPONENT(f, NAND1, SCF_EDA_NAND);
+ EDA_INST_ADD_COMPONENT(f, NAND2, SCF_EDA_NAND);
+ EDA_INST_ADD_COMPONENT(f, NAND3, SCF_EDA_NAND);
+ EDA_INST_ADD_COMPONENT(f, NAND4, SCF_EDA_NAND);
+
+ EDA_PIN_ADD_PIN(NAND0, SCF_EDA_NAND_POS, NAND1, SCF_EDA_NAND_POS);
+ EDA_PIN_ADD_PIN(NAND0, SCF_EDA_NAND_POS, NAND2, SCF_EDA_NAND_POS);
+ EDA_PIN_ADD_PIN(NAND0, SCF_EDA_NAND_POS, NAND3, SCF_EDA_NAND_POS);
+ EDA_PIN_ADD_PIN(NAND0, SCF_EDA_NAND_POS, NAND4, SCF_EDA_NAND_POS);
+
+ EDA_PIN_ADD_PIN(NAND0, SCF_EDA_NAND_NEG, NAND1, SCF_EDA_NAND_NEG);
+ EDA_PIN_ADD_PIN(NAND0, SCF_EDA_NAND_NEG, NAND2, SCF_EDA_NAND_NEG);
+ EDA_PIN_ADD_PIN(NAND0, SCF_EDA_NAND_NEG, NAND3, SCF_EDA_NAND_NEG);
+ EDA_PIN_ADD_PIN(NAND0, SCF_EDA_NAND_NEG, NAND4, SCF_EDA_NAND_NEG);
+
+ EDA_PIN_ADD_PIN(NAND2, SCF_EDA_NAND_OUT, NAND3, SCF_EDA_NAND_IN1);
+ EDA_PIN_ADD_PIN(NAND3, SCF_EDA_NAND_OUT, NAND2, SCF_EDA_NAND_IN1);
+
+ EDA_PIN_ADD_PIN(NAND0, SCF_EDA_NAND_OUT, NAND2, SCF_EDA_NAND_IN0);
+ EDA_PIN_ADD_PIN(NAND1, SCF_EDA_NAND_OUT, NAND3, SCF_EDA_NAND_IN0);
+
+ EDA_PIN_ADD_PIN(NAND0, SCF_EDA_NAND_IN1, NAND1, SCF_EDA_NAND_IN1);
+
+ EDA_PIN_ADD_PIN(NAND4, SCF_EDA_NAND_IN0, NAND4, SCF_EDA_NAND_IN1);
+ EDA_PIN_ADD_PIN(NAND4, SCF_EDA_NAND_IN0, NAND0, SCF_EDA_NAND_IN0);
+ EDA_PIN_ADD_PIN(NAND4, SCF_EDA_NAND_OUT, NAND1, SCF_EDA_NAND_IN0);
+
+ NAND0->pins[SCF_EDA_NAND_POS]->flags = SCF_EDA_PIN_POS;
+ NAND0->pins[SCF_EDA_NAND_NEG]->flags = SCF_EDA_PIN_NEG;
+
+ NAND0->pins[SCF_EDA_NAND_POS]->ic_lid = SCF_EDA_DFF_POS;
+ NAND0->pins[SCF_EDA_NAND_NEG]->ic_lid = SCF_EDA_DFF_NEG;
+
+ NAND4->pins[SCF_EDA_NAND_IN0]->flags = SCF_EDA_PIN_IN | SCF_EDA_PIN_IN0;
+ NAND0->pins[SCF_EDA_NAND_IN1]->flags = SCF_EDA_PIN_IN;
+ NAND2->pins[SCF_EDA_NAND_OUT]->flags = SCF_EDA_PIN_OUT;
+ NAND3->pins[SCF_EDA_NAND_OUT]->flags = SCF_EDA_PIN_CF;
+
+ NAND4->pins[SCF_EDA_NAND_IN0]->ic_lid = SCF_EDA_DFF_IN;
+ NAND0->pins[SCF_EDA_NAND_IN1]->ic_lid = SCF_EDA_DFF_CK;
+ NAND2->pins[SCF_EDA_NAND_OUT]->ic_lid = SCF_EDA_DFF_OUT;
+
+ int ret = ses_layout_function(f, 100);
+ if (ret < 0)
+ return ret;
+
+ ses_draw(f, "ttl_dff.png", f->x, f->y, f->w, f->h, 0, -1);
+
+ long len = 0;
+ uint8_t* buf = NULL;
+
+ ScfEfunction_pack(f, &buf, &len);
+ ScfEfunction_free(f);
+ f = NULL;
+
+ FILE* fp = fopen("./ttl_dff.cpk", "wb");
+ if (!fp)
+ return -EINVAL;
+
+ fwrite(buf, len, 1, fp);
+ fclose(fp);
+ return 0;
+}
--- /dev/null
+#include<stdio.h>
+#include<stdlib.h>
+#include<string.h>
+#include"ses_core.h"
+
+int main(int argc, char* argv[])
+{
+ ScfEcomponent* B;
+
+ ScfEcomponent* DFF;
+ ScfEcomponent* AND;
+ ScfEcomponent* CLK;
+
+ ScfEfunction* f;
+ ScfEboard* b;
+
+ b = scf_eboard__alloc();
+ f = scf_efunction__alloc("dff_test");
+
+ EDA_INST_ADD_COMPONENT(f, B, SCF_EDA_Battery);
+ EDA_INST_ADD_COMPONENT(f, DFF, SCF_EDA_DFF);
+ EDA_INST_ADD_COMPONENT(f, AND, SCF_EDA_AND);
+ EDA_INST_ADD_COMPONENT(f, CLK, SCF_EDA_NAND);
+
+ B->pins[SCF_EDA_Battery_NEG]->flags = SCF_EDA_PIN_NEG;
+ B->pins[SCF_EDA_Battery_POS]->flags = SCF_EDA_PIN_POS;
+
+ EDA_PIN_ADD_PIN(DFF, SCF_EDA_DFF_POS, B, SCF_EDA_Battery_POS);
+ EDA_PIN_ADD_PIN(AND, SCF_EDA_AND_POS, B, SCF_EDA_Battery_POS);
+ EDA_PIN_ADD_PIN(CLK, SCF_EDA_NAND_POS, B, SCF_EDA_Battery_POS);
+
+ EDA_PIN_ADD_PIN(DFF, SCF_EDA_DFF_NEG, B, SCF_EDA_Battery_NEG);
+ EDA_PIN_ADD_PIN(AND, SCF_EDA_AND_NEG, B, SCF_EDA_Battery_NEG);
+ EDA_PIN_ADD_PIN(CLK, SCF_EDA_NAND_NEG, B, SCF_EDA_Battery_NEG);
+
+ EDA_PIN_ADD_PIN(CLK, SCF_EDA_NAND_IN0, CLK, SCF_EDA_NAND_IN1);
+ EDA_PIN_ADD_PIN(CLK, SCF_EDA_NAND_IN0, AND, SCF_EDA_AND_IN0);
+ EDA_PIN_ADD_PIN(CLK, SCF_EDA_NAND_OUT, AND, SCF_EDA_AND_IN1);
+ EDA_PIN_ADD_PIN(AND, SCF_EDA_AND_OUT, DFF, SCF_EDA_DFF_CK);
+
+ DFF->pins[SCF_EDA_DFF_IN ]->flags = SCF_EDA_PIN_IN | SCF_EDA_PIN_IN0;
+ CLK->pins[SCF_EDA_NAND_IN0]->flags = SCF_EDA_PIN_IN;
+ DFF->pins[SCF_EDA_DFF_OUT ]->flags = SCF_EDA_PIN_OUT;
+
+ CLK->model = SCF_EDA_TTL_DELAY;
+
+ scf_eboard__add_function(b, f);
+
+ long len = 0;
+ uint8_t* buf = NULL;
+
+ ScfEboard_pack(b, &buf, &len);
+ ScfEboard_free(b);
+ b = NULL;
+
+ FILE* fp = fopen("./dff_test.cpk", "wb");
+ if (!fp)
+ return -EINVAL;
+
+ fwrite(buf, len, 1, fp);
+ fclose(fp);
+ return 0;
+}
--- /dev/null
+#include<stdio.h>
+#include<stdlib.h>
+#include<string.h>
+#include"ses_core.h"
+
+int main(int argc, char* argv[])
+{
+ ScfEcomponent* NAND0;
+ ScfEcomponent* NAND1;
+ ScfEcomponent* NAND2;
+
+ ScfEfunction* f = scf_efunction__alloc("ttl_not_delay.cpk");
+
+ EDA_INST_ADD_COMPONENT(f, NAND0, SCF_EDA_NAND);
+ EDA_INST_ADD_COMPONENT(f, NAND1, SCF_EDA_NAND);
+ EDA_INST_ADD_COMPONENT(f, NAND2, SCF_EDA_NAND);
+
+ EDA_PIN_ADD_PIN(NAND0, SCF_EDA_NAND_POS, NAND1, SCF_EDA_NAND_POS);
+ EDA_PIN_ADD_PIN(NAND0, SCF_EDA_NAND_POS, NAND2, SCF_EDA_NAND_POS);
+
+ EDA_PIN_ADD_PIN(NAND0, SCF_EDA_NAND_NEG, NAND1, SCF_EDA_NAND_NEG);
+ EDA_PIN_ADD_PIN(NAND0, SCF_EDA_NAND_NEG, NAND2, SCF_EDA_NAND_NEG);
+
+ EDA_PIN_ADD_PIN(NAND0, SCF_EDA_NAND_IN0, NAND0, SCF_EDA_NAND_IN1);
+ EDA_PIN_ADD_PIN(NAND1, SCF_EDA_NAND_IN0, NAND1, SCF_EDA_NAND_IN1);
+ EDA_PIN_ADD_PIN(NAND2, SCF_EDA_NAND_IN0, NAND2, SCF_EDA_NAND_IN1);
+
+ EDA_PIN_ADD_PIN(NAND0, SCF_EDA_NAND_OUT, NAND1, SCF_EDA_NAND_IN0);
+ EDA_PIN_ADD_PIN(NAND1, SCF_EDA_NAND_OUT, NAND2, SCF_EDA_NAND_IN0);
+
+ NAND0->pins[SCF_EDA_NAND_POS]->flags = SCF_EDA_PIN_POS;
+ NAND0->pins[SCF_EDA_NAND_NEG]->flags = SCF_EDA_PIN_NEG;
+
+ NAND0->pins[SCF_EDA_NAND_POS]->ic_lid = SCF_EDA_NOT_POS;
+ NAND0->pins[SCF_EDA_NAND_NEG]->ic_lid = SCF_EDA_NOT_NEG;
+
+ NAND0->pins[SCF_EDA_NAND_IN0]->flags = SCF_EDA_PIN_IN | SCF_EDA_PIN_IN0;
+ NAND2->pins[SCF_EDA_NAND_OUT]->flags = SCF_EDA_PIN_OUT;
+
+ NAND0->pins[SCF_EDA_NAND_IN0]->ic_lid = SCF_EDA_NOT_IN;
+ NAND2->pins[SCF_EDA_NAND_OUT]->ic_lid = SCF_EDA_NOT_OUT;
+
+ int ret = ses_layout_function(f, 100);
+ if (ret < 0)
+ return ret;
+
+ ses_draw(f, "ttl_not_delay.png", f->x, f->y, f->w, f->h, 0, -1);
+
+ long len = 0;
+ uint8_t* buf = NULL;
+
+ ScfEfunction_pack(f, &buf, &len);
+ ScfEfunction_free(f);
+ f = NULL;
+
+ FILE* fp = fopen("./ttl_not_delay.cpk", "wb");
+ if (!fp)
+ return -EINVAL;
+
+ fwrite(buf, len, 1, fp);
+ fclose(fp);
+ return 0;
+}
#include<string.h>
#include"ses_core.h"
-char* component_types[SCF_EDA_Components_NB] =
-{
- "None",
- "Battery",
- "Resistor",
- "Capacitor",
- "Inductor",
- "Diode",
- "NPN",
- "PNP",
-};
-
static void print_board(ScfEboard* b)
{
ScfEcomponent* c;
f = b->functions[i];
printf("f: %s\n", f->name);
- ses_steps_analyse(f, 100LL, 25);
+ ses_steps_analyse(f, 100LL, 1);
}
ScfEboard_free(b);
SCF_EDA_IF_NB,
SCF_EDA_MLA_NB,
+ SCF_EDA_ADC_NB,
+
+ SCF_EDA_DFF_NB,
+
+ SCF_EDA_Signal_NB,
+
+ SCF_EDA_OP_AMP_NB,
};
static int __diode_path_off(ScfEpin* p0, ScfEpin* p1, int flags)
return 1;
}
+static int __ttl_adc_path_off(ScfEpin* p0, ScfEpin* p1, int flags)
+{
+ if (SCF_EDA_ADC_NEG == p0->id)
+ return 1;
+ if (flags && (SCF_EDA_ADC_CI <= p0->id && p0->id <= SCF_EDA_ADC_IN1))
+ return 1;
+
+ if (SCF_EDA_ADC_POS == p0->id) {
+ if (p1 && (SCF_EDA_ADC_CI <= p1->id && p1->id <= SCF_EDA_ADC_IN1))
+ return 1;
+ } else {
+ if (p1) {
+ if (!flags
+ && (SCF_EDA_ADC_CI <= p0->id && p0->id <= SCF_EDA_ADC_IN1)
+ && (SCF_EDA_ADC_OUT == p1->id && p1->id <= SCF_EDA_ADC_CF))
+ return 0;
+
+ if (SCF_EDA_ADC_NEG != p1->id)
+ return 1;
+ }
+ }
+ return 0;
+}
+
+static int __ttl_adc_shared(ScfEpin* p, int flags)
+{
+ if (!flags) {
+ if (SCF_EDA_ADC_OUT == p->id && p->id <= SCF_EDA_ADC_CF)
+ return 0;
+ }
+ return 1;
+}
+
+static int __741_op_amp_path_off(ScfEpin* p0, ScfEpin* p1, int flags)
+{
+ if (SCF_EDA_OP_AMP_NEG == p0->id)
+ return 1;
+
+ if (SCF_EDA_OP_AMP_POS == p0->id) {
+ if (p1 && (SCF_EDA_OP_AMP_IN == p1->id || SCF_EDA_OP_AMP_INVERT == p1->id))
+ return 1;
+ } else {
+ if (p1) {
+ if (!flags
+ && (SCF_EDA_OP_AMP_IN == p0->id || SCF_EDA_OP_AMP_INVERT == p0->id)
+ && SCF_EDA_OP_AMP_OUT == p1->id)
+ return 0;
+
+ if (SCF_EDA_OP_AMP_NEG != p1->id)
+ return 1;
+ }
+ }
+ return 0;
+}
+
+static int __741_op_amp_shared(ScfEpin* p, int flags)
+{
+ if (!flags) {
+ if (SCF_EDA_OP_AMP_OUT == p->id)
+ return 0;
+ }
+ return 1;
+}
+
static ScfEops __diode_ops =
{
__diode_path_off,
__ttl_mla_shared,
};
+static ScfEops __ttl_adc_ops =
+{
+ __ttl_adc_path_off,
+ __ttl_adc_shared,
+};
+
+static ScfEops __741_op_amp_ops =
+{
+ __741_op_amp_path_off,
+ __741_op_amp_shared,
+};
+
static ScfEdata component_datas[] =
{
{SCF_EDA_None, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL},
{SCF_EDA_Battery, 0, 0, 0, 0, 1e-9, 1e9, 0, 0, NULL, NULL, NULL},
+ {SCF_EDA_Signal, 0, 0, 0, 0, 1e-9, 1e9, 0, 0, NULL, NULL, NULL},
{SCF_EDA_Resistor, 0, 0, 0, 0, 1e4, 0, 0, 0, NULL, NULL, NULL},
{SCF_EDA_Capacitor, 0, 0, 0, 0, 10, 0.1, 0, 0, NULL, NULL, NULL},
{SCF_EDA_OR, 0, 0, 0, 0, 0, 0, 0, 0, &__ttl_gate_ops, "./cpk/ttl_or.cpk", NULL},
{SCF_EDA_NOR, 0, 0, 0, 0, 0, 0, 0, 0, &__ttl_gate_ops, "./cpk/ttl_nor.cpk", NULL},
{SCF_EDA_XOR, 0, 0, 0, 0, 0, 0, 0, 0, &__ttl_gate_ops, "./cpk/ttl_xor.cpk", NULL},
+ {SCF_EDA_DFF, 0, 0, 0, 0, 0, 0, 0, 0, &__ttl_gate_ops, "./cpk/ttl_dff.cpk", NULL},
+
{SCF_EDA_ADD, 0, 0, 0, 0, 0, 0, 0, 0, &__ttl_add_ops, "./cpk/ttl_add.cpk", NULL},
+ {SCF_EDA_ADC, 0, 0, 0, 0, 0, 0, 0, 0, &__ttl_adc_ops, "./cpk/ttl_adc.cpk", NULL},
{SCF_EDA_NAND4, 0, 0, 0, 0, 0, 0, 0, 0, &__ttl_nand4_ops, "./cpk/ttl_nand4.cpk", NULL},
{SCF_EDA_AND2_OR, 0, 0, 0, 0, 0, 0, 0, 0, &__ttl_and2_or_ops, "./cpk/ttl_and2_or.cpk", NULL},
{SCF_EDA_IF, 0, 0, 0, 0, 0, 0, 0, 0, &__ttl_if_ops, "./cpk/ttl_if.cpk", NULL},
{SCF_EDA_MLA, 0, 0, 0, 0, 0, 0, 0, 0, &__ttl_mla_ops, "./cpk/ttl_mla.cpk", NULL},
+
+ {SCF_EDA_NOT, SCF_EDA_TTL_DELAY, 0, 0, 0, 0, 0, 0, 0, &__ttl_not_ops, "./cpk/ttl_not_delay.cpk", NULL},
+
+ {SCF_EDA_OP_AMP, 0, 0, 0, 0, 0, 0, 0, 0, &__741_op_amp_ops, "./cpk/op_amp_741.cpk", NULL},
};
static ScfEdata pin_datas[] =
ec->n_cids--;
p = realloc(ec->cids, sizeof(uint64_t) * ec->n_cids);
- if (p)
- ec->cids = p;
+ if (!p && ec->n_cids)
+ return -ENOMEM;
+
+ ec->cids = p;
return 0;
}
}
el->n_lines--;
p = realloc(el->lines, sizeof(ScfLine*) * el->n_lines);
- if (p)
- el->lines = p;
+ if (!p && el->n_lines > 0)
+ return -ENOMEM;
+
+ el->lines = p;
return 0;
}
}
el->n_pins -= 2;
p = realloc(el->pins, sizeof(uint64_t) * el->n_pins);
- if (p)
- el->pins = p;
+ if (!p && el->n_pins > 0)
+ return -EINVAL;
+
+ el->pins = p;
return 0;
}
}
el->n_conns--;
p = realloc(el->conns, sizeof(ScfEconn*) * el->n_conns);
- if (p)
- el->conns = p;
+ if (!p && el->n_conns > 0)
+ return -EINVAL;
+
+ el->conns = p;
return 0;
}
}
pin->n_tos -= 2;
p = realloc(pin->tos, sizeof(uint64_t) * pin->n_tos);
- if (p)
- pin->tos = p;
+ if (!p && pin->n_tos > 0)
+ return -ENOMEM;
+
+ pin->tos = p;
return 0;
}
}
c->n_pins--;
p = realloc(c->pins, sizeof(ScfEpin*) * c->n_pins);
- if (p)
- c->pins = p;
+ if (!p && c->n_pins > 0)
+ return -ENOMEM;
+
+ c->pins = p;
return 0;
}
}
return 0;
}
+static int __efunction__del_component(ScfEfunction* f, ScfEcomponent* c)
+{
+ ScfEcomponent* c2;
+ ScfEline* el;
+ ScfEpin* p;
+
+ long i;
+ long j;
+ long k;
+
+ for (i = 0; i < f->n_elines; i++) {
+ el = f->elines[i];
+
+ for (j = 0; j + 1 < el->n_pins; ) {
+
+ if (el->pins[j] == c->id)
+ assert(0 == scf_eline__del_pin(el, c->id, el->pins[j + 1]));
+ else {
+ if (el->pins[j] > c->id)
+ el->pins[j]--;
+
+ j += 2;
+ }
+ }
+ }
+
+ for (i = 0; i < f->n_components; i++) {
+ c2 = f->components[i];
+
+ if (c2 == c)
+ continue;
+
+ if (c2->id > c->id)
+ c2->id--;
+
+ for (j = 0; j < c2->n_pins; j++) {
+ p = c2->pins[j];
+
+ for (k = 0; k + 1 < p->n_tos; ) {
+
+ if (p->tos[k] == c->id)
+ assert(0 == scf_epin__del_component(p, c->id, p->tos[k + 1]));
+ else {
+ if (p->tos[k] > c->id)
+ p->tos[k]--;
+
+ k += 2;
+ }
+ }
+
+ if (p->cid > c->id)
+ p->cid--;
+ }
+ }
+}
+
int scf_efunction__del_component(ScfEfunction* f, ScfEcomponent* c)
{
if (!f || !c)
return -EINVAL;
- size_t i;
- size_t j;
- void* p;
+ void* p;
+ long i;
+ long j;
for (i = 0; i < f->n_components; i++) {
if (f->components[i] == c) {
+ __efunction__del_component(f, c);
for (j = i + 1; j < f->n_components; j++)
f->components[j - 1] = f->components[j];
f->n_components--;
p = realloc(f->components, sizeof(ScfEcomponent*) * f->n_components);
- if (p)
- f->components = p;
+ if (!p && f->n_components > 0)
+ return -EINVAL;
+
+ f->components = p;
return 0;
}
}
f->n_elines--;
p = realloc(f->elines, sizeof(ScfEline*) * f->n_elines);
- if (p)
- f->elines = p;
+ if (!p && f->n_elines > 0)
+ return -ENOMEM;
+
+ f->elines = p;
return 0;
}
}
b->n_functions--;
p = realloc(b->functions, sizeof(ScfEfunction*) * b->n_functions);
- if (p)
- b->functions = p;
+ if (!p && b->n_functions > 0)
+ return -ENOMEM;
+
+ b->functions = p;
return 0;
}
}
qsort(p->tos, p->n_tos / 2, sizeof(uint64_t) * 2, epin_cmp);
- for (k = 0; k < p->n_tos; k += 2) {
+ for (k = 0; k + 1 < p->n_tos; k += 2) {
if (p->tos[k] == c->id)
scf_logw("c%ldp%ld connect to its own pin %ld\n", c->id, p->id, p->tos[k + 1]);
}
SCF_EDA_IF,
SCF_EDA_MLA,
+ SCF_EDA_ADC,
+
+ SCF_EDA_DFF, // D flip flop
+
+ SCF_EDA_Signal,
+
+ SCF_EDA_OP_AMP,
+
SCF_EDA_Components_NB,
};
#define SCF_EDA_PIN_CF 16
#define SCF_EDA_PIN_BORDER 32
#define SCF_EDA_PIN_SHIFT 64
-#define SCF_EDA_PIN_IN0 128
-#define SCF_EDA_PIN_DIV0 256
-#define SCF_EDA_PIN_KEY 512
+#define SCF_EDA_PIN_IN0 128
+#define SCF_EDA_PIN_DIV0 256
+#define SCF_EDA_PIN_KEY 512
+#define SCF_EDA_PIN_DELAY 1024
+#define SCF_EDA_PIN_CK 2048
+#define SCF_EDA_PIN_GND 4096
#define SCF_EDA_V_INIT -10001001.0
#define SCF_EDA_V_MIN -10000000.0
SCF_EDA_Battery_NB,
};
+#define SCF_EDA_Signal_SIN 0
+#define SCF_EDA_Signal_DC 1
+enum {
+ SCF_EDA_Signal_NEG,
+ SCF_EDA_Signal_POS,
+ SCF_EDA_Signal_NB,
+};
+
enum {
SCF_EDA_Diode_NEG,
SCF_EDA_Diode_POS,
SCF_EDA_PNP_NB = SCF_EDA_NPN_NB,
};
+#define SCF_EDA_TTL_DELAY 1
enum {
SCF_EDA_NOT_NEG,
SCF_EDA_NOT_POS,
SCF_EDA_XOR_NB,
};
+enum {
+ SCF_EDA_OP_AMP_NEG = SCF_EDA_NAND_NEG,
+ SCF_EDA_OP_AMP_POS = SCF_EDA_NAND_POS,
+
+ SCF_EDA_OP_AMP_IN = SCF_EDA_NAND_IN0,
+ SCF_EDA_OP_AMP_INVERT = SCF_EDA_NAND_IN1,
+ SCF_EDA_OP_AMP_OUT = SCF_EDA_NAND_OUT,
+
+ SCF_EDA_OP_AMP_NB,
+};
+
+enum {
+ SCF_EDA_DFF_NEG = SCF_EDA_NAND_NEG,
+ SCF_EDA_DFF_POS = SCF_EDA_NAND_POS,
+
+ SCF_EDA_DFF_IN = SCF_EDA_NAND_IN0,
+ SCF_EDA_DFF_CK = SCF_EDA_NAND_IN1,
+ SCF_EDA_DFF_OUT = SCF_EDA_NAND_OUT,
+
+ SCF_EDA_DFF_NB,
+};
+
enum {
SCF_EDA_ADD_NEG = SCF_EDA_NAND_NEG,
SCF_EDA_ADD_POS = SCF_EDA_NAND_POS,
SCF_EDA_ADD_NB,
};
+enum {
+ SCF_EDA_ADC_NEG,
+ SCF_EDA_ADC_POS,
+
+ SCF_EDA_ADC_CI,
+ SCF_EDA_ADC_IN0,
+ SCF_EDA_ADC_IN1,
+ SCF_EDA_ADC_OUT,
+ SCF_EDA_ADC_CF,
+
+ SCF_EDA_ADC_NB,
+};
+
enum {
SCF_EDA_NAND4_NEG,
SCF_EDA_NAND4_POS,
#define EDA_PIN_ADD_PIN_EF(_ef, _p0, _p1) \
EDA_PIN_ADD_PIN((_ef)->components[(_p0)->cid], (_p0)->id, (_ef)->components[(_p1)->cid], (_p1)->id)
+
+static char* component_types[SCF_EDA_Components_NB] =
+{
+ "None",
+ "Battery",
+
+ "Resistor",
+ "Capacitor",
+ "Inductor",
+
+ "Diode",
+ "NPN",
+ "PNP",
+
+ "NAND",
+ "NOR",
+ "NOT",
+
+ "AND",
+ "OR",
+ "XOR",
+
+ "ADD",
+
+ "NAND4",
+ "AND2_OR",
+ "IF",
+ "MLA",
+};
#endif
typedef struct ses_path_s ses_path_t;
typedef struct ses_edge_s ses_edge_t;
typedef struct ses_node_s ses_node_t;
+typedef struct ses_group_s ses_group_t;
typedef struct ses_ctx_s ses_ctx_t;
{
scf_vector_t* edges;
- double v;
- double a;
- double a0;
-
ScfEline* el;
-
int index;
- int vip_i;
- ses_path_t* path;
+};
+
+struct ses_group_s
+{
+ scf_vector_t* nodes;
+ scf_vector_t* edges;
};
struct ses_ctx_s
};
-void ses_eline_print(ScfEline* el);
-void ses_pin_print(ScfEpin* p);
-void ses_IC_print(ScfEcomponent* c);
+void ses_eline_print(ScfEline* el);
+void ses_pin_print(ScfEpin* p);
+void ses_IC_print(ScfEcomponent* c);
+
+ses_path_t* ses_path_alloc();
+void ses_path_free (ses_path_t* path);
+void ses_path_print(ses_path_t* path);
+ses_path_t* ses_path_ref (ses_path_t* src);
+int ses_path_xchg (ses_path_t* path0, int k0, ses_path_t* path1, int k1);
-ses_path_t* ses_path_alloc();
-void ses_path_free (ses_path_t* path);
-void ses_path_print(ses_path_t* path);
-ses_path_t* ses_path_ref (ses_path_t* src);
-int ses_path_xchg (ses_path_t* path0, int k0, ses_path_t* path1, int k1);
+int ses_path_add (ScfEfunction* f, ses_path_t* path, ses_path_t* child);
-int ses_path_add (ScfEfunction* f, ses_path_t* path, ses_path_t* child);
+int ses_path_is_child(ScfEfunction* f, ses_path_t* parent, ses_path_t* child);
+ses_path_t* ses_path_find_child(ses_path_t* path, int m, int n);
+ses_path_t* ses_path_find_bridge(ses_path_t* path, int m, int n);
+void ses_path_sort_childs(ses_path_t* path);
-int ses_path_is_child(ScfEfunction* f, ses_path_t* parent, ses_path_t* child);
-ses_path_t* ses_path_find_child(ses_path_t* path, int m, int n);
-ses_path_t* ses_path_find_bridge(ses_path_t* path, int m, int n);
-void ses_path_sort_childs(ses_path_t* path);
+ses_edge_t* ses_edge_alloc(ses_path_t* path, int first, int last);
+void ses_edge_free (ses_edge_t* edge);
+void ses_edge_print(ses_edge_t* edge);
-ses_edge_t* ses_edge_alloc(ses_path_t* path, int first, int last);
-void ses_edge_free (ses_edge_t* edge);
-void ses_edge_print(ses_edge_t* edge);
+ses_node_t* ses_node_alloc();
+void ses_node_free (ses_node_t* node);
+void ses_node_print(ses_node_t* node);
-ses_node_t* ses_node_alloc();
-void ses_node_free (ses_node_t* node);
-void ses_node_print(ses_node_t* node);
+void ses_nodes_free (scf_vector_t* nodes);
+void ses_nodes_print(scf_vector_t* nodes);
+void ses_paths_print(scf_vector_t* paths);
-void ses_nodes_free (scf_vector_t* nodes);
-void ses_nodes_print(scf_vector_t* nodes);
-void ses_paths_print(scf_vector_t* paths);
+ses_group_t* ses_group_alloc();
+void ses_group_free (ses_group_t* group);
-ses_ctx_t* ses_ctx_alloc();
-void ses_ctx_free (ses_ctx_t* ctx);
+ses_ctx_t* ses_ctx_alloc();
+void ses_ctx_free (ses_ctx_t* ctx);
void ses_components_print(ScfEfunction* f);
void ses_elines_print (ScfEfunction* f);
int __ses_path_va_branch(ScfEfunction* f, ses_path_t* path, int m, int n, double pr, int* changed, int64_t ps, int64_t count);
-int __ses_nodes_path (ScfEfunction* f, ses_path_t* path, int vip_m, int vip_n, scf_vector_t** pnodes, scf_vector_t** pedges);
-int __ses_nodes_path_solve(ScfEfunction* f, ses_path_t* path, int vip_m, int vip_n, int* changed, int64_t ps, int64_t count);
+int __ses_nodes_paths (ScfEfunction* f, scf_vector_t* paths, scf_vector_t** pnodes, scf_vector_t** pedges);
+int __ses_nodes_paths_solve(ScfEfunction* f, scf_vector_t* paths, int* changed, int64_t ps, int64_t count);
int __ses_path_jr(ScfEfunction* f, ses_path_t* path);
void __ses_path_pr(ScfEfunction* f, ses_path_t* path, int i, int j, ses_path_t* child, double* r);
#define SES_LINE_POS(p) (ses_top_pline(p)->flags & SCF_EDA_PIN_POS)
#define SES_LINE_NEG(p) (ses_top_pline(p)->flags & SCF_EDA_PIN_NEG)
+static inline ScfEline* ses_find_line_by_flag(ScfEfunction* f, uint64_t flag)
+{
+ ScfEline* el;
+ long i;
+
+ for (i = 0; i < f->n_elines; i++) {
+ el = f->elines[i];
+
+ if (el->flags & flag)
+ return el;
+ }
+ return NULL;
+}
+
static inline int ses_same_line_in_path(ScfEpin* p, ses_path_t* path)
{
ScfEline* el = ses_top_pline(p);
else if (SCF_EDA_PIN_CF & el->flags)
SHOW_COLOR(cr, 0.8, 0, 0.8);
+
+ else if (SCF_EDA_PIN_GND & el->flags)
+ SHOW_COLOR(cr, 0.0, 0, 0.5);
else
SHOW_COLOR(cr, 1, 0.5, 0.1);
cairo_show_text(cr, text);
cairo_stroke(cr);
}
+
+ if (el->flags & SCF_EDA_PIN_GND) {
+ cairo_move_to(cr, l->x0, l->y0);
+ cairo_line_to(cr, l->x0, l->y0 + 8);
+ cairo_move_to(cr, l->x0 - 6, l->y0 + 8);
+ cairo_line_to(cr, l->x0 + 6, l->y0 + 8);
+ cairo_move_to(cr, l->x0 - 4, l->y0 + 12);
+ cairo_line_to(cr, l->x0 + 4, l->y0 + 12);
+ cairo_move_to(cr, l->x0 - 2, l->y0 + 16);
+ cairo_line_to(cr, l->x0 + 2, l->y0 + 16);
+ cairo_stroke(cr);
+ }
}
cairo_set_line_width(cr, 3);
case SCF_EDA_AND:
case SCF_EDA_AND2_OR:
case SCF_EDA_ADD:
+ case SCF_EDA_ADC:
case SCF_EDA_IF:
case SCF_EDA_MLA:
+ case SCF_EDA_DFF:
+ case SCF_EDA_OP_AMP:
k = 2;
break;
default:
if (SCF_EDA_NAND4 != c->type
&& SCF_EDA_IF != c->type
&& SCF_EDA_ADD != c->type
+ && SCF_EDA_ADC != c->type
&& SCF_EDA_MLA != c->type
&& SCF_EDA_AND2_OR != c->type)
continue;
- j = LAYOUT_P0(c);
- p = c->pins[j];
-
- int n = __ses_find_eline_index(f, p->lid);
+ int n;
int k;
+ for (j = LAYOUT_P0(c); j < c->n_pins; j++) {
+ p = c->pins[j];
+
+ n = __ses_find_eline_index(f, p->lid);
+
+ if (!(f->elines[n]->flags & SCF_EDA_PIN_POS))
+ break;
+ }
+ assert(j < c->n_pins);
f->elines[n]->flags |= SCF_EDA_PIN_KEY;
k = __ses_find_eline_index(f, p->lid);
+ if (f->elines[k]->flags & SCF_EDA_PIN_POS)
+ continue;
+
f->elines[k]->flags |= SCF_EDA_PIN_KEY;
n = eline_mov_before(f, n, k);
case SCF_EDA_OR:
case SCF_EDA_NOR:
case SCF_EDA_XOR:
+ case SCF_EDA_DFF:
+ case SCF_EDA_OP_AMP:
__set_xy_by_pins(c, SCF_EDA_NAND_IN0, SCF_EDA_NAND_OUT);
c->pins[SCF_EDA_NAND_POS]->x = c->x;
c->pins[SCF_EDA_ADD_NEG]->x = c->x;
if (0 == n) {
- c->pins[SCF_EDA_ADD_IN0]->x = c->x - d / 4;
+ c->pins[SCF_EDA_ADD_IN0]->x = c->x - d * 3 / 4;
c->pins[SCF_EDA_ADD_IN1]->x = c->x + d / 4;
c->pins[SCF_EDA_ADD_OUT]->x = c->x + d * 3 / 4;
- c->pins[SCF_EDA_ADD_CF ]->x = c->x - d * 3 / 4;
+ c->pins[SCF_EDA_ADD_CF ]->x = c->x - d / 4;
} else {
- c->pins[SCF_EDA_ADD_IN0]->x = c->x + d / 4;
+ c->pins[SCF_EDA_ADD_IN0]->x = c->x + d * 3 / 4;
c->pins[SCF_EDA_ADD_IN1]->x = c->x - d / 4;
c->pins[SCF_EDA_ADD_OUT]->x = c->x - d * 3 / 4;
- c->pins[SCF_EDA_ADD_CF ]->x = c->x + d * 3 / 4;
+ c->pins[SCF_EDA_ADD_CF ]->x = c->x + d / 4;
+ }
+ break;
+
+ case SCF_EDA_ADC:
+ c->x = c->pins[SCF_EDA_ADC_CF]->x;
+ c->y = c->pins[SCF_EDA_ADC_CF]->y + d / 2;
+
+ c->pins[SCF_EDA_ADC_POS]->x = c->x;
+ c->pins[SCF_EDA_ADC_NEG]->x = c->x;
+
+ if (0 == n) {
+ c->pins[SCF_EDA_ADC_CI ]->x = c->x - d * 3 / 4;
+ c->pins[SCF_EDA_ADC_IN0]->x = c->x - d / 4;
+ c->pins[SCF_EDA_ADC_IN1]->x = c->x + d / 4;
+
+ c->pins[SCF_EDA_ADC_OUT]->x = c->x + d * 3 / 4;
+ c->pins[SCF_EDA_ADC_CF ]->x = c->x - d / 4;
+ } else {
+ c->pins[SCF_EDA_ADC_CI ]->x = c->x + d * 3 / 4;
+ c->pins[SCF_EDA_ADC_IN0]->x = c->x + d / 4;
+ c->pins[SCF_EDA_ADC_IN1]->x = c->x - d / 4;
+
+ c->pins[SCF_EDA_ADC_OUT]->x = c->x - d * 3 / 4;
+ c->pins[SCF_EDA_ADC_CF ]->x = c->x + d / 4;
}
break;
default:
|| SCF_EDA_NAND4 == c->type || SCF_EDA_NAND4 == c2->type
|| SCF_EDA_AND == c->type || SCF_EDA_AND == c2->type
|| SCF_EDA_ADD == c->type || SCF_EDA_ADD == c2->type
+ || SCF_EDA_ADC == c->type || SCF_EDA_ADC == c2->type
|| SCF_EDA_OR == c->type || SCF_EDA_OR == c2->type
|| SCF_EDA_XOR == c->type || SCF_EDA_XOR == c2->type
+ || SCF_EDA_DFF == c->type || SCF_EDA_DFF == c2->type
|| SCF_EDA_NOR == c->type || SCF_EDA_NOR == c2->type
|| SCF_EDA_IF == c->type || SCF_EDA_IF == c2->type
|| SCF_EDA_MLA == c->type || SCF_EDA_MLA == c2->type
+ || SCF_EDA_OP_AMP == c->type || SCF_EDA_OP_AMP == c2->type
|| SCF_EDA_AND2_OR == c->type || SCF_EDA_AND2_OR == c2->type)
c->x = c2->x + d * 2;
else
|| SCF_EDA_NAND4 == c->type || SCF_EDA_NAND4 == mt
|| SCF_EDA_AND == c->type || SCF_EDA_AND == mt
|| SCF_EDA_ADD == c->type || SCF_EDA_ADD == mt
+ || SCF_EDA_ADC == c->type || SCF_EDA_ADC == mt
|| SCF_EDA_OR == c->type || SCF_EDA_OR == mt
|| SCF_EDA_XOR == c->type || SCF_EDA_XOR == mt
+ || SCF_EDA_DFF == c->type || SCF_EDA_DFF == mt
|| SCF_EDA_NOR == c->type || SCF_EDA_NOR == mt
|| SCF_EDA_IF == c->type || SCF_EDA_IF == mt
|| SCF_EDA_MLA == c->type || SCF_EDA_MLA == mt
+ || SCF_EDA_OP_AMP == c->type || SCF_EDA_OP_AMP == mt
|| SCF_EDA_AND2_OR == c->type || SCF_EDA_AND2_OR == mt)
c->x = max + d * 2;
else
case SCF_EDA_AND:
case SCF_EDA_AND2_OR:
case SCF_EDA_ADD:
+ case SCF_EDA_ADC:
case SCF_EDA_OR:
case SCF_EDA_XOR:
+ case SCF_EDA_DFF:
case SCF_EDA_NOR:
case SCF_EDA_IF:
case SCF_EDA_MLA:
+ case SCF_EDA_OP_AMP:
c2 = c3;
d2 = d * 2;
break;
case SCF_EDA_AND:
case SCF_EDA_AND2_OR:
case SCF_EDA_ADD:
+ case SCF_EDA_ADC:
case SCF_EDA_OR:
case SCF_EDA_XOR:
+ case SCF_EDA_DFF:
case SCF_EDA_NOR:
case SCF_EDA_IF:
case SCF_EDA_MLA:
+ case SCF_EDA_OP_AMP:
c->x = c2->x + d * 2;
break;
default:
d2 = d * 7 / 8;
break;
+ case SCF_EDA_OP_AMP:
case SCF_EDA_NAND:
case SCF_EDA_NOR:
case SCF_EDA_XOR:
+ case SCF_EDA_DFF:
case SCF_EDA_OR:
case SCF_EDA_AND:
pb = c->pins[SCF_EDA_NAND_OUT];
if (pc->x < c->x) {
pc->x = c->x - d2;
pe->x = c->x + d2;
+
+ if (SCF_EDA_DFF == c->type) {
+ if (SCF_EDA_DFF_IN == pc->id)
+ pb->x = c->x - 8;
+ else
+ pb->x = c->x + 8;
+ }
} else {
pc->x = c->x + d2;
pe->x = c->x - d2;
+
+ if (SCF_EDA_DFF == c->type) {
+ if (SCF_EDA_DFF_IN == pc->id)
+ pb->x = c->x + 8;
+ else
+ pb->x = c->x - 8;
+ }
}
}
}
return NULL;
}
-int __ses_nodes_path2(ScfEfunction* f, ses_path_t* path, int vip_m, int vip_n, scf_vector_t* nodes, scf_vector_t* edges)
+static int __ses_edges_path(ses_path_t* path, int vip_m, int vip_n, scf_vector_t* edges)
{
- ses_path_t* child;
- ses_path_t* bridge;
- ses_path_t* conn;
-
ses_edge_t* edge = NULL;
ses_edge_t* edge2 = NULL;
- ses_node_t* prev = NULL;
- ses_node_t* node = NULL;
ScfEcomponent* c;
ScfEcomponent* c2;
int j = vip_n;
int k;
- path->vflag = 1;
-
- if (path->connections) {
- for (k = 0; k < path->connections->size; k++) {
- conn = path->connections->data[k];
-
- scf_logd("path: %d, conn: %d, vflag: %d\n", path->index, conn->index, conn->vflag);
- if (conn->vflag)
- continue;
-
- ret = __ses_nodes_path2(f, conn, 0, conn->pins->size - 1, nodes, edges);
- if (ret < 0)
- return ret;
- }
- }
-
- if (path->childs) {
- for (k = 0; k < path->childs->size; k++) {
- child = path->childs->data[k];
-
- if (child->vflag)
- continue;
-
- ret = __ses_nodes_path2(f, child, 0, child->pins->size - 1, nodes, edges);
- if (ret < 0)
- return ret;
- }
- }
-
- if (path->bridges) {
- for (k = 0; k < path->bridges->size; k++) {
- bridge = path->bridges->data[k];
-
- if (bridge->vflag)
- continue;
-
- ret = __ses_nodes_path2(f, bridge, 0, bridge->pins->size - 1, nodes, edges);
- if (ret < 0)
- return ret;
- }
- }
-
- scf_logd("path: %d, vflag: %d, vip_m: %d, vip_n: %d\n", path->index, path->vflag, vip_m, vip_n);
+ scf_logd("path: %d, vip_m: %d, vip_n: %d\n", path->index, vip_m, vip_n);
+ int node_flag = 0;
int bflag = 0;
+
for (i = vip_n - 1; i >= vip_m; i -= 2) {
p = path->pins->data[i];
case SCF_EDA_Capacitor:
case SCF_EDA_Inductor:
- if (!node) {
- node = ses_node_alloc();
- if (!node)
- return -ENOMEM;
- }
+ node_flag = 1;
break;
default:
if (i - 1 >= vip_m) {
p2 = path->pins->data[i - 1];
c2 = p2->c;
- if (SCF_EDA_Diode == c2->type && !node) {
- node = ses_node_alloc();
- if (!node)
- return -ENOMEM;
- }
+ switch (c2->type) {
+ case SCF_EDA_Diode:
+ case SCF_EDA_Capacitor:
+ case SCF_EDA_Inductor:
+ node_flag = 1;
+ break;
+ default:
+ break;
+ };
}
break;
};
- if (path->childs) {
- for (k = 0; k < path->childs->size; k++) {
- child = path->childs->data[k];
-
- if (child->parent_p0 == i) {
-#define EDGE_ADD_UNIQUE(_path, _m) \
- if (!node) { \
- node = ses_node_alloc(); \
- if (!node) \
- return -ENOMEM; \
- } \
- edge = ses_edges_find_edge(edges, _path, _m); \
- if (edge) { \
- ret = scf_vector_add(node->edges, edge); \
- if (ret < 0) { \
- ses_node_free(node); \
- return ret; \
- } \
- } else { \
- scf_loge("\n"); \
- ses_node_free(node); \
- return -EINVAL; \
- }
-
- EDGE_ADD_UNIQUE(child, 0);
- edge->node1 = node;
-
- } else if (child->parent_p1 == i - 1) {
-
- EDGE_ADD_UNIQUE(child, child->pins->size - 1);
- edge->node0 = node;
- }
- }
- }
-
- if (path->bridges) {
- for (k = 0; k < path->bridges->size; k++) {
- bridge = path->bridges->data[k];
-
- if (bridge->parent_p0 == i) {
-
- EDGE_ADD_UNIQUE(bridge, 0);
- edge->node1 = node;
-
- } else if (bridge->parent_p1 == i - 1) {
-
- EDGE_ADD_UNIQUE(bridge, bridge->pins->size - 1);
- edge->node0 = node;
- }
- }
- }
-
- if (path->connections) {
- for (k = 0; k < path->connections->size; k++) {
- conn = path->connections->data[k];
-
- scf_logd("path: %d, conn: %d, i: %d, parent_p0: %d, parent_p1: %d\n",
- path->index, conn->index, i, conn->parent_p0, conn->parent_p1);
-
- if (path == conn->conn0 && conn->parent_p0 == i) {
-
- EDGE_ADD_UNIQUE(conn, 0);
- edge->node1 = node;
-
- } else if (path == conn->conn1 && conn->parent_p1 == i - 1) {
-
- EDGE_ADD_UNIQUE(conn, conn->pins->size - 1);
- edge->node0 = node;
- }
- }
- }
-
- if (!node) {
+ if (!node_flag) {
if (i > vip_m)
continue;
- node = ses_node_alloc();
- if (!node)
- return -ENOMEM;
+ node_flag = 1;
}
- ret = scf_vector_add(nodes, node);
- if (ret < 0) {
- ses_node_free(node);
- return ret;
- }
-
- p = path->pins->data[i];
-
- node->vip_i = i;
- node->path = path;
- node->el = ses_top_pline(p);
-
edge = ses_edge_alloc(path, i, j);
if (!edge)
return -ENOMEM;
}
edge->index = edges->size - 1;
- edge->node1 = node;
edge->bflag = bflag;
bflag = 0;
- ret = scf_vector_add(node->edges, edge);
- if (ret < 0)
- return ret;
-
- if (prev) {
- ret = scf_vector_add(prev->edges, edge);
- if (ret < 0)
- return ret;
- edge->node0 = prev;
- }
-
if (edge2) {
if (edge ->bflag) {
edge2->edge_b = edge;
edge2 = NULL;
}
- prev = node;
- node = NULL;
+ node_flag = 0;
j = i - 1;
}
return 0;
}
-static void __ses_path_clear_vflag(ses_path_t* path)
+static int __ses_get_node(ses_node_t** pnode, scf_vector_t* nodes, ScfEline* el)
{
- ses_path_t* child;
- int k;
-
- path->vflag = 0;
+ ses_node_t* node;
+ int i;
- if (path->connections) {
- for (k = 0; k < path->connections->size; k++) {
- child = path->connections->data[k];
+ for (i = 0; i < nodes->size; i++) {
+ node = nodes->data[i];
- __ses_path_clear_vflag(child);
+ if (el == node->el) {
+ *pnode = node;
+ return 0;
}
}
- if (path->childs) {
- for (k = 0; k < path->childs->size; k++) {
- child = path->childs->data[k];
+ node = ses_node_alloc();
+ if (!node)
+ return -ENOMEM;
+ node->index = nodes->size;
+ node->el = el;
- __ses_path_clear_vflag(child);
- }
+ int ret = scf_vector_add(nodes, node);
+ if (ret < 0) {
+ ses_node_free(node);
+ return ret;
}
- if (path->bridges) {
- for (k = 0; k < path->bridges->size; k++) {
- child = path->bridges->data[k];
-
- __ses_path_clear_vflag(child);
- }
- }
+ *pnode = node;
+ return 0;
}
-int __ses_nodes_path(ScfEfunction* f, ses_path_t* path, int vip_m, int vip_n, scf_vector_t** pnodes, scf_vector_t** pedges)
+static int __ses_nodes_edges(scf_vector_t* nodes, scf_vector_t* edges)
{
- scf_vector_t* nodes;
- scf_vector_t* edges;
- ses_node_t* node;
- ses_edge_t* edge;
+ ses_edge_t* edge;
+ ScfEline* lm;
+ ScfEline* ln;
+ ScfEpin* pm;
+ ScfEpin* pn;
int i;
- int j;
-
- nodes = scf_vector_alloc();
- if (!nodes)
- return -ENOMEM;
-
- edges = scf_vector_alloc();
- if (!edges) {
- scf_vector_free(nodes);
- return -ENOMEM;
- }
-
- __ses_path_clear_vflag(path);
- int ret = __ses_nodes_path2(f, path, vip_m, vip_n, nodes, edges);
- if (ret < 0)
- goto error;
+ for (i = 0; i < edges->size; i++) {
+ edge = edges->data[i];
- ScfEcomponent* B = f->components[0];
- ScfEpin* Bp = B->pins[SCF_EDA_Battery_POS];
- ScfEpin* Bn = B->pins[SCF_EDA_Battery_NEG];
- ScfEline* LP = ses_top_pline(Bp);
- ScfEline* LN = ses_top_pline(Bn);
- ScfEline* el;
- ScfEpin* p;
+ pm = edge->path->pins->data[edge->vip_m];
+ pn = edge->path->pins->data[edge->vip_n];
- for (i = 0; i < nodes->size; ) {
- node = nodes->data[i];
+ lm = ses_top_pline(pm);
+ ln = ses_top_pline(pn);
- for (j = node->edges->size - 1; j >= 0; j--) {
- edge = node->edges->data[j];
-
- if (node->el == LP) {
- assert(0 == scf_vector_del(node->edges, edge));
+ if (!lm->vconst) {
+ int ret = __ses_get_node(&edge->node1, nodes, lm);
+ if (ret < 0)
+ return ret;
- if (edge->node0 == node)
- edge->node0 = NULL;
- if (edge->node1 == node)
- edge->node1 = NULL;
- } else {
- if (edge->node0 != node && edge->node1 != node)
- assert(0 == scf_vector_del(node->edges, edge));
- }
+ ret = scf_vector_add(edge->node1->edges, edge);
+ if (ret < 0)
+ return ret;
}
- if (node->edges->size <= 0) {
- assert(0 == scf_vector_del(nodes, node));
+ if (!ln->vconst) {
+ int ret = __ses_get_node(&edge->node0, nodes, ln);
+ if (ret < 0)
+ return ret;
- ses_node_free(node);
- node = NULL;
- } else {
- node->index = i;
- i++;
+ ret = scf_vector_add(edge->node0->edges, edge);
+ if (ret < 0)
+ return ret;
}
}
- for (j = 0; j < edges->size; j++) {
- edge = edges->data[j];
-
- p = edge->path->pins->data[edge->vip_n];
- el = ses_top_pline(p);
-
- if (edge->node0 || el == LN)
- continue;
-
- for (i = 0; i < nodes->size; i++) {
- node = nodes->data[i];
-
- if (el == node->el) {
- edge->node0 = node;
+ return 0;
+}
- ret = scf_vector_add(node->edges, edge);
- if (ret < 0)
- goto error;
- break;
- }
- }
+int __ses_nodes_paths(ScfEfunction* f, scf_vector_t* paths, scf_vector_t** pnodes, scf_vector_t** pedges)
+{
+ scf_vector_t* nodes;
+ scf_vector_t* edges;
+ ses_path_t* path;
- if (i >= nodes->size) {
- node = ses_node_alloc();
- if (!node) {
- ret = -ENOMEM;
- goto error;
- }
- node->index = nodes->size;
+ int ret;
+ int i;
- ret = scf_vector_add(nodes, node);
- if (ret < 0) {
- ses_node_free(node);
- goto error;
- }
+ nodes = scf_vector_alloc();
+ if (!nodes)
+ return -ENOMEM;
- node->vip_i = edge->vip_n;
- node->path = edge->path;
- node->el = el;
+ edges = scf_vector_alloc();
+ if (!edges) {
+ scf_vector_free(nodes);
+ return -ENOMEM;
+ }
- edge->node0 = node;
+ for (i = 0; i < paths->size; i++) {
+ path = paths->data[i];
- ret = scf_vector_add(node->edges, edge);
- if (ret < 0)
- goto error;
- }
+ ret = __ses_edges_path(path, 0, path->pins->size - 1, edges);
+ if (ret < 0)
+ goto error;
}
+ ret = __ses_nodes_edges(nodes, edges);
+ if (ret < 0)
+ goto error;
+
*pnodes = nodes;
*pedges = edges;
return 0;
{
ses_node_t* node;
ses_edge_t* edge;
-
- ScfEcomponent* B = f->components[0];
- ScfEpin* Bp = B->pins[SCF_EDA_Battery_POS];
- ScfEpin* Bn = B->pins[SCF_EDA_Battery_NEG];
ScfEpin* p0;
ScfEpin* p1;
__ses_path_lc(f, edge->path, edge->vip_m, edge->vip_n, &cv, &lv, &uf, &uh, &la);
+ __ses_path_jr(f, edge->path);
+
p0 = edge->path->pins->data[edge->vip_m];
p1 = edge->path->pins->data[edge->vip_n];
else
A[(n + edge->index) * N + n + edge->index] = -r - uh * 1000000.0 / ps;
- if (edge->node0 && edge->node0->el != ses_top_pline(Bn))
+ if (edge->node0 && !edge->node0->el->vconst)
A[(n + edge->index) * N + edge->node0->index] = -1;
else
- b[n + edge->index] += Bn->v;
+ b[n + edge->index] += ses_top_pline(p1)->v;
- if (edge->node1 && edge->node1->el != ses_top_pline(Bp))
+ if (edge->node1 && !edge->node1->el->vconst)
A[(n + edge->index) * N + edge->node1->index] = 1;
else
- b[n + edge->index] -= Bp->v;
+ b[n + edge->index] -= ses_top_pline(p0)->v;
}
}
ScfEcomponent* c;
ScfEcomponent* B = f->components[0];
ScfEpin* Bp = B->pins[SCF_EDA_Battery_POS];
- ScfEpin* Bn = B->pins[SCF_EDA_Battery_NEG];
ScfEpin* p0;
ScfEpin* p1;
+ ScfEpin* p;
int n = N - edges->size;
int k = 0;
double Vb;
double Ve;
- if (edge->node1 && edge->node1->el != ses_top_pline(Bp))
+ if (edge->node1 && !edge->node1->el->vconst)
Vb = X[edge->node1->index];
else
- Vb = Bp->v;
+ Vb = ses_top_pline(p0)->v;
- if (edge->node0 && edge->node0->el != ses_top_pline(Bn))
+ if (edge->node0 && !edge->node0->el->vconst)
Ve = X[edge->node0->index];
else
- Ve = Bn->v;
+ Ve = ses_top_pline(p1)->v;
if (edge->bflag) {
double dV = Vb - Ve;
double Ib = X[n + edge->edge_b->index];
double Vc = Vb;
- if (edge->edge_b->node1 && edge->edge_b->node1->el != ses_top_pline(Bp))
+ if (edge->edge_b->node1 && !edge->edge_b->node1->el->vconst)
Vb = X[edge->edge_b->node1->index];
- else
- Vb = Bp->v;
+ else {
+ p = edge->edge_b->path->pins->data[edge->edge_b->vip_m];
+ Vb = ses_top_pline(p)->v;
+ }
double dI = Ib * edge->hfe - Ic;
double V = SCF_EDA_V_NPN_ON;
return k;
}
-static int __ses_nodes_path_solve2(ScfEfunction* f, ses_path_t* path, int vip_m, int vip_n, scf_vector_t* nodes, scf_vector_t* edges, int* changed, int64_t ps, int64_t count)
+static int __ses_nodes_solve(ScfEfunction* f, scf_vector_t* nodes, scf_vector_t* edges, int* changed, int64_t ps, int64_t count)
{
ses_node_t* node;
ses_edge_t* edge;
ScfEcomponent* c;
- ScfEcomponent* B = f->components[0];
- ScfEpin* Bp = B->pins[SCF_EDA_Battery_POS];
- ScfEpin* Bn = B->pins[SCF_EDA_Battery_NEG];
- ScfEpin* pm = path->pins->data[vip_m];
- ScfEpin* pn = path->pins->data[vip_n];
ScfEpin* p0;
ScfEpin* p1;
ScfEline* el;
int n = nodes->size;
int N = n + m;
- pm->v = ses_top_pline(pm)->v;
- pn->v = ses_top_pline(pn)->v;
-
- scf_logi("c%ldp%ld->v: %lg, c%ldp%ld->v: %lg, n: %d, m: %d, N: %d\n", pm->cid, pm->id, pm->v, pn->cid, pn->id, pn->v, n, m, N);
-
double* A = calloc(N * N + N + N + (N + N + N * N + N * N), sizeof(double));
if (!A)
return -ENOMEM;
double* V = S + N;
double* U = V + N * N;
- __ses_path_jr(f, path);
-
__ses_nodes_set_Ab(f, nodes, edges, ps, A, b, N);
gsl_matrix_view _A = gsl_matrix_view_array(U, N, N);
for (i = 0; i < n; i++) {
node = nodes->data[i];
el = node->el;
- el->v = X[i];
+
+ if (!el->vconst)
+ el->v = X[i];
}
if (n_offs > 0) {
// ses_AbX_print(A, b, X, N);
- ScfEline* LP = ses_top_pline(Bp);
- ScfEline* LN = ses_top_pline(Bn);
-
for (j = 0; j < edges->size; j++) {
edge = edges->data[j];
el = ses_top_pline(p0);
p0->v = el->v;
- if (el != LP && el != LN)
- ses_line_set_v(c->pf->elines[p0->lid], p0->v);
+ if (!el->vconst)
+ ses_line_set_v(p0->c->pf->elines[p0->lid], p0->v);
el = ses_top_pline(p1);
p1->v = el->v;
- if (el != LP && el != LN)
- ses_line_set_v(c->pf->elines[p1->lid], p1->v);
+ if (!el->vconst)
+ ses_line_set_v(p1->c->pf->elines[p1->lid], p1->v);
edge->a = X[n + edge->index];
#if 1
return ret;
}
-int __ses_nodes_path_solve(ScfEfunction* f, ses_path_t* path, int vip_m, int vip_n, int* changed, int64_t ps, int64_t count)
+static int __ses_nodes_split(scf_vector_t* groups, scf_vector_t* nodes, scf_vector_t* edges)
+{
+ ses_group_t* g;
+ ses_node_t* node;
+ ses_edge_t* edge;
+
+ while (nodes->size > 0) {
+ node = nodes->data[0];
+
+ g = ses_group_alloc();
+ if (!g)
+ return -ENOMEM;
+
+ int ret = scf_vector_add(g->nodes, node);
+ if (ret < 0) {
+ ses_group_free(g);
+ return ret;
+ }
+ node->index = 0;
+
+ assert(0 == scf_vector_del(nodes, node));
+
+ int i;
+ int j;
+ for (i = 0; i < g->nodes->size; i++) {
+ node = g->nodes->data[i];
+
+ for (j = 0; j < node->edges->size; j++) {
+ edge = node->edges->data[j];
+
+ if (edge->node1 && !scf_vector_find(g->nodes, edge->node1)) {
+ edge->node1->index = g->nodes->size;
+
+ ret = scf_vector_add(g->nodes, edge->node1);
+ if (ret < 0) {
+ ses_group_free(g);
+ return ret;
+ }
+
+ assert(0 == scf_vector_del(nodes, edge->node1));
+ }
+
+ if (edge->node0 && !scf_vector_find(g->nodes, edge->node0)) {
+ edge->node0->index = g->nodes->size;
+
+ ret = scf_vector_add_unique(g->nodes, edge->node0);
+ if (ret < 0) {
+ ses_group_free(g);
+ return ret;
+ }
+
+ assert(0 == scf_vector_del(nodes, edge->node0));
+ }
+
+ if (!scf_vector_find(g->edges, edge)) {
+ edge->index = g->edges->size;
+
+ ret = scf_vector_add(g->edges, edge);
+ if (ret < 0) {
+ ses_group_free(g);
+ return ret;
+ }
+
+ assert(0 == scf_vector_del(edges, edge));
+ }
+ }
+ }
+
+ ret = scf_vector_add(groups, g);
+ if (ret < 0) {
+ ses_group_free(g);
+ return ret;
+ }
+ }
+
+ assert(0 == nodes->size);
+ assert(0 == edges->size);
+ return 0;
+}
+
+int __ses_nodes_paths_solve(ScfEfunction* f, scf_vector_t* paths, int* changed, int64_t ps, int64_t count)
{
scf_vector_t* nodes = NULL;
scf_vector_t* edges = NULL;
+ scf_vector_t* groups;
+ ses_group_t* g;
+
+ int ret;
+ int i;
- int ret = __ses_nodes_path(f, path, vip_m, vip_n, &nodes, &edges);
+ groups = scf_vector_alloc();
+ if (!groups)
+ return -ENOMEM;
+
+ ret = __ses_nodes_paths(f, paths, &nodes, &edges);
if (ret < 0)
- return ret;
- ses_nodes_print(nodes);
+ goto error;
- ret = __ses_nodes_path_solve2(f, path, vip_m, vip_n, nodes, edges, changed, ps, count);
+ ret = __ses_nodes_split(groups, nodes, edges);
+ if (ret < 0)
+ goto error;
+
+ for (i = 0; i < groups->size; i++) {
+ g = groups->data[i];
+
+ scf_logi("i: %d\n", i);
+ ses_nodes_print(g->nodes);
+
+ ret = __ses_nodes_solve(f, g->nodes, g->edges, changed, ps, count);
+ if (ret < 0)
+ goto error;
+ }
+
+error:
+ scf_vector_clear(nodes, (void (*)(void*) )ses_node_free);
+ scf_vector_clear(edges, (void (*)(void*) )ses_edge_free);
+ scf_vector_clear(groups, (void (*)(void*) )ses_group_free);
- scf_vector_clear(nodes, (void (*)(void*) )ses_node_free);
- scf_vector_clear(edges, (void (*)(void*) )ses_edge_free);
scf_vector_free(nodes);
scf_vector_free(edges);
+ scf_vector_free(groups);
return ret;
}
--- /dev/null
+#include"ses_core.h"
+
+static int _ac_input_handler(ScfEfunction* f, int64_t ps, int64_t count, ses_ctx_t* ctx)
+{
+ ScfEcomponent* c;
+ ScfEline* el0;
+ ScfEline* el1;
+ ScfEpin* p0;
+ ScfEpin* p1;
+
+ long i;
+
+ for (i = 0; i < f->n_components; i++) {
+ c = f->components[i];
+
+ if (SCF_EDA_Signal != c->type)
+ continue;
+
+ c->v = 0.01 * sin(ps * count);
+
+ p0 = c->pins[SCF_EDA_Signal_POS];
+ p1 = c->pins[SCF_EDA_Signal_NEG];
+ el0 = f->elines[p0->lid];
+ el1 = f->elines[p1->lid];
+
+ if (!el0->vconst) {
+ if (!el1->vconst) {
+ el0->v = c->v / 2;
+ el1->v = -c->v / 2;
+ el0->vconst = 1;
+ el1->vconst = 1;
+ } else {
+ el0->v = el1->v + c->v;
+ el0->vconst = 1;
+ }
+ } else if (!el1->vconst) {
+ el1->v = el0->v - c->v;
+ el1->vconst = 1;
+ } else {
+ scf_loge("\n");
+ return -EINVAL;
+ }
+ }
+
+ return 0;
+}
+
+ses_step_t ses_step_ac_input =
+{
+ .name = "ac_input",
+
+ .handler = _ac_input_handler,
+};
static int _battery_handler(ScfEfunction* f, int64_t ps, int64_t count, ses_ctx_t* ctx)
{
- ScfEcomponent* c;
- ScfEline* el;
- ScfEpin* p;
-
- c = f->components[0];
- c->v = 5;
-
- p = c->pins[SCF_EDA_Battery_POS];
- p->v = 5;
- el = f->elines[p->lid];
- el->v = 5;
- el->vconst = 1;
-
- p = c->pins[SCF_EDA_Battery_NEG];
- p ->v = 0;
- el = f->elines[p->lid];
- el->v = 0;
- el->vconst = 1;
+ ScfEcomponent* c;
+ ScfEline* el;
+ ScfEline* LP;
+ ScfEline* LN;
+ ScfEpin* Bp;
+ ScfEpin* Bn;
+
+ long i;
+ for (i = 0; i < f->n_elines; i++) {
+ el = f->elines[i];
+ el->vconst = 0;
+ }
+
+ for (i = 0; i < f->n_components; i++) {
+ c = f->components[i];
+
+ if (SCF_EDA_Battery != c->type)
+ continue;
+ c->v = 5;
+
+ Bp = c->pins[SCF_EDA_Battery_POS];
+ Bn = c->pins[SCF_EDA_Battery_NEG];
+
+ LP = f->elines[Bp->lid];
+ LN = f->elines[Bn->lid];
+
+ if (!LP->vconst) {
+ if (!LN->vconst) {
+ Bp->v = c->v;
+ Bn->v = 0;
+
+ ses_line_set_v(LP, Bp->v);
+ ses_line_set_v(LN, 0);
+
+ LP->vconst = 1;
+ LN->vconst = 1;
+ } else {
+ Bp->v = LN->v + c->v;
+
+ ses_line_set_v(LP, Bp->v);
+
+ LP->vconst = 1;
+ }
+
+ } else if (!LN->vconst) {
+ Bn->v = LP->v - c->v;
+
+ ses_line_set_v(LN, Bn->v);
+
+ LN->vconst = 1;
+
+ } else if (LP->v - LN->v != c->v) {
+ scf_loge("Battery '%lgV' connected between line '%lgV' and '%lgV', diff: %lgV\n",
+ c->v, LP->v, LN->v, LP->v - LN->v);
+ return -EINVAL;
+ }
+ }
return 0;
}
} else if (i < IC->n_pins) {
p = IC->pins[i];
parent = IC->pf->elines[p->lid];
-
- el->vconst = parent->vconst;
continue;
}
-
- el->vconst = 0;
}
for (i = 0; i < f->n_components; i++) {
}
}
-static int __dc_diode_status(ScfEfunction* root, ScfEfunction* f, ScfEpin* Bp, ScfEpin* Bn, ScfEline* LP, ScfEline* LN)
+static int __dc_diode_status(ScfEfunction* root, ScfEfunction* f, ScfEline* LP, ScfEline* LN)
{
ScfEcomponent* c;
ScfEpin* pb;
c = f->components[i];
if (c->f) {
- int ret = __dc_diode_status(root, c->f, Bp, Bn, LP, LN);
+ int ret = __dc_diode_status(root, c->f, LP, LN);
if (ret < 0)
return ret;
pe->v = le->v;
pb->v = le->v + SCF_EDA_V_Diode_ON;
- if (pb->v > Bp->v)
+ if (pb->v > LP->v)
c->status = SCF_EDA_Status_OFF;
else
c->status = SCF_EDA_Status_ON;
pb->v = lb->v;
pe->v = lb->v - SCF_EDA_V_Diode_ON;
- if (lb->v == Bp->v)
- le->vconst = 1;
-
- if (pe->v < Bn->v - 0.01)
+ if (pe->v < LN->v - 0.01)
c->status = SCF_EDA_Status_OFF;
else
c->status = SCF_EDA_Status_ON;
pb->v = le->v + SCF_EDA_V_Diode_ON;
pe->v = le->v;
- if (pb->v > Bp->v + 0.01)
+ if (pb->v > LP->v + 0.01)
c->status = SCF_EDA_Status_OFF;
else
c->status = SCF_EDA_Status_ON;
static int _dc_diode_handler(ScfEfunction* f, int64_t ps, int64_t count, ses_ctx_t* ctx)
{
- ScfEcomponent* B = f->components[0];
- ScfEpin* Bp = B->pins[SCF_EDA_Battery_POS];
- ScfEpin* Bn = B->pins[SCF_EDA_Battery_NEG];
- ScfEline* LP = ses_top_pline(Bp);
- ScfEline* LN = ses_top_pline(Bn);
+ ScfEline* LP = ses_find_line_by_flag(f, SCF_EDA_PIN_POS);
+ ScfEline* LN = ses_find_line_by_flag(f, SCF_EDA_PIN_NEG);
__dc_dfs_init(f, NULL);
- return __dc_diode_status(f, f, Bp, Bn, LP, LN);
+ return __dc_diode_status(f, f, LP, LN);
}
ses_step_t ses_step_dc_diode =
long j;
int k;
- int x[] = {1, 1, 1, 0, 1};
+ int x[] = {0, 0, 0, 0, 0};
int y[] = {0, 1, 0, 1, 0};
B = f->components[0];
continue;
if (SCF_EDA_PIN_IN0 & el->flags)
- k = x[el->io_lid];
+ k = x[(count / 800) & 0x1];
else
- k = y[el->io_lid];
- scf_logi("el->io_lid: %ld, k: %d\n", el->io_lid, k);
+ k = y[(count / 400) & 0x1];
el2 = f->elines[B->pins[k]->lid];
el->v = el2->v;
el->vconst = 1;
+ scf_logi("el->io_lid: %ld, k: %d, v: %lg\n", el->io_lid, k, el->v);
+
for (j = 0; j + 1 < el->n_pins; j += 2) {
c = f->components[el->pins[j]];
#include"ses_core.h"
-static int __dc_npn_status(ScfEfunction* root, ScfEfunction* f, ScfEpin* Bp, ScfEpin* Bn, ScfEline* LP, ScfEline* LN)
+static int __dc_npn_status(ScfEfunction* root, ScfEfunction* f, ScfEline* LP, ScfEline* LN)
{
ScfEcomponent* c;
ScfEpin* pb;
c = f->components[i];
if (c->f) {
- int ret = __dc_npn_status(root, c->f, Bp, Bn, LP, LN);
+ int ret = __dc_npn_status(root, c->f, LP, LN);
if (ret < 0)
return ret;
pe->v = le->v;
pb->v = le->v + SCF_EDA_V_NPN_ON;
- if (pb->v > Bp->v)
+ if (pb->v > LP->v)
c->status = SCF_EDA_Status_OFF;
else
c->status = SCF_EDA_Status_ON;
pb->v = lb->v;
pe->v = lb->v - SCF_EDA_V_NPN_ON;
- if (pe->v < Bn->v - 0.01)
+ if (pe->v < LN->v - 0.01)
c->status = SCF_EDA_Status_OFF;
else
c->status = SCF_EDA_Status_ON;
pb->v = le->v + SCF_EDA_V_NPN_ON;
pb->v = lb->v;
- if (pb->v > Bp->v + 0.01)
+ if (pb->v > LP->v + 0.01)
c->status = SCF_EDA_Status_OFF;
else
c->status = SCF_EDA_Status_ON;
static int _dc_npn_handler(ScfEfunction* f, int64_t ps, int64_t count, ses_ctx_t* ctx)
{
- ScfEcomponent* B = f->components[0];
- ScfEpin* Bp = B->pins[SCF_EDA_Battery_POS];
- ScfEpin* Bn = B->pins[SCF_EDA_Battery_NEG];
- ScfEline* LP = ses_top_pline(Bp);
- ScfEline* LN = ses_top_pline(Bn);
+ ScfEline* LP = ses_find_line_by_flag(f, SCF_EDA_PIN_POS);
+ ScfEline* LN = ses_find_line_by_flag(f, SCF_EDA_PIN_NEG);
- return __dc_npn_status(f, f, Bp, Bn, LP, LN);
+ return __dc_npn_status(f, f, LP, LN);
}
ses_step_t ses_step_dc_npn =
#include"ses_core.h"
-static int __dc_pnp_status(ScfEfunction* root, ScfEfunction* f, ScfEpin* Bp, ScfEpin* Bn, ScfEline* LP, ScfEline* LN)
+static int __dc_pnp_status(ScfEfunction* root, ScfEfunction* f, ScfEline* LP, ScfEline* LN)
{
ScfEcomponent* c;
ScfEpin* pb;
c = f->components[i];
if (c->f) {
- int ret = __dc_pnp_status(root, c->f, Bp, Bn, LP, LN);
+ int ret = __dc_pnp_status(root, c->f, LP, LN);
if (ret < 0)
return ret;
pe->v = le->v;
pb->v = le->v - SCF_EDA_V_PNP_ON;
- if (pb->v < Bn->v)
+ if (pb->v < LN->v)
c->status = SCF_EDA_Status_OFF;
else
c->status = SCF_EDA_Status_ON;
pb->v = lb->v;
pe->v = lb->v + SCF_EDA_V_PNP_ON;
- if (pe->v > Bp->v + 0.01)
+ if (pe->v > LP->v + 0.01)
c->status = SCF_EDA_Status_OFF;
else
c->status = SCF_EDA_Status_ON;
pb->v = le->v - SCF_EDA_V_PNP_ON;
pe->v = le->v;
- if (pb->v < Bn->v - 0.01)
+ if (pb->v < LN->v - 0.01)
c->status = SCF_EDA_Status_OFF;
else
c->status = SCF_EDA_Status_ON;
static int _dc_pnp_handler(ScfEfunction* f, int64_t ps, int64_t count, ses_ctx_t* ctx)
{
- ScfEcomponent* B = f->components[0];
- ScfEpin* Bp = B->pins[SCF_EDA_Battery_POS];
- ScfEpin* Bn = B->pins[SCF_EDA_Battery_NEG];
- ScfEline* LP = ses_top_pline(Bp);
- ScfEline* LN = ses_top_pline(Bn);
+ ScfEline* LP = ses_find_line_by_flag(f, SCF_EDA_PIN_POS);
+ ScfEline* LN = ses_find_line_by_flag(f, SCF_EDA_PIN_NEG);
- return __dc_pnp_status(f, f, Bp, Bn, LP, LN);
+ return __dc_pnp_status(f, f, LP, LN);
}
ses_step_t ses_step_dc_pnp =
cairo_move_to(cr, c->x + 10, c->y + 8);
break;
+ case SCF_EDA_OP_AMP:
case SCF_EDA_NAND:
case SCF_EDA_NAND4:
case SCF_EDA_NOR:
cairo_move_to(cr, c->x + 6, c->y + 30);
break;
+ case SCF_EDA_ADC:
case SCF_EDA_ADD:
+ case SCF_EDA_DFF:
n = snprintf(text, sizeof(text) - 1, "%ld", c->id);
cairo_move_to(cr, c->x + 18, c->y);
cairo_move_to(cr, c->x + 6, c->y - 18);
break;
+
+ case SCF_EDA_Signal:
+ n = snprintf(text, sizeof(text) - 1, "%ld", c->id);
+
+ cairo_move_to(cr, c->x + 12, c->y - 12);
+ break;
default:
n = snprintf(text, sizeof(text) - 1, "%ld", c->id);
cairo_move_to(cr, c->x - 10 - n * 10, c->y - 12);
cairo_stroke(cr);
break;
+#define DRAW_GATE_PIN(_p, _x, _y0, _y1) \
+ do { \
+ cairo_move_to(cr, c->x + (_x), c->y + (_y0)); \
+ cairo_line_to(cr, c->x + (_x), c->y + (_y1)); \
+ cairo_line_to(cr, (_p)->x, c->y + (_y1)); \
+ cairo_line_to(cr, (_p)->x, (_p)->y); \
+ cairo_stroke(cr); \
+ } while (0)
+
+#define DRAW_TEXT(_x, _y, _size, _text) \
+ do { \
+ cairo_set_font_size(cr, _size); \
+ cairo_move_to(cr, _x, _y); \
+ cairo_show_text(cr, _text); \
+ cairo_stroke(cr); \
+ } while (0)
+
+ case SCF_EDA_OP_AMP:
+ p = c->pins[SCF_EDA_OP_AMP_OUT];
+ p0 = c->pins[SCF_EDA_OP_AMP_IN];
+ p1 = c->pins[SCF_EDA_OP_AMP_INVERT];
+
+ if (p->y < c->y) {
+ cairo_move_to(cr, p->x, p->y);
+ cairo_line_to(cr, c->x, c->y - 32);
+ cairo_line_to(cr, c->x - 16, c->y);
+ cairo_line_to(cr, c->x + 16, c->y);
+ cairo_line_to(cr, c->x, c->y - 32);
+ cairo_stroke(cr);
+
+ if (p0->x < p1->x) {
+ DRAW_GATE_PIN(p0, -6, 0, 8);
+ DRAW_GATE_PIN(p1, 6, 0, 8);
+
+ DRAW_TEXT(c->x - 9, c->y - 2, 12, "+");
+ DRAW_TEXT(c->x + 4, c->y - 2, 12, "-");
+ } else {
+ DRAW_GATE_PIN(p0, 6, 0, 8);
+ DRAW_GATE_PIN(p1, -6, 0, 8);
+
+ DRAW_TEXT(c->x + 4, c->y - 2, 12, "+");
+ DRAW_TEXT(c->x - 9, c->y - 2, 12, "-");
+ }
+ } else {
+ cairo_move_to(cr, p->x, p->y);
+ cairo_line_to(cr, c->x, c->y + 32);
+ cairo_line_to(cr, c->x - 16, c->y);
+ cairo_line_to(cr, c->x + 16, c->y);
+ cairo_line_to(cr, c->x, c->y + 32);
+ cairo_stroke(cr);
+
+ if (p0->x < p1->x) {
+ DRAW_GATE_PIN(p0, -6, 0, -8);
+ DRAW_GATE_PIN(p1, 6, 0, -8);
+
+ DRAW_TEXT(c->x - 9, c->y + 2, 12, "+");
+ DRAW_TEXT(c->x + 4, c->y + 2, 12, "-");
+ } else {
+ DRAW_GATE_PIN(p0, 6, 0, -8);
+ DRAW_GATE_PIN(p1, -6, 0, -8);
+
+ DRAW_TEXT(c->x + 4, c->y + 2, 12, "+");
+ DRAW_TEXT(c->x - 9, c->y + 2, 12, "-");
+ }
+ }
+ break;
+
case SCF_EDA_AND:
case SCF_EDA_NAND:
p = c->pins[SCF_EDA_NAND_OUT];
if (p0->x > p1->x)
SCF_XCHG(p0, p1);
-#define DRAW_GATE_PIN(_p, _x, _y0, _y1) \
- do { \
- cairo_move_to(cr, c->x + (_x), c->y + (_y0)); \
- cairo_line_to(cr, c->x + (_x), c->y + (_y1)); \
- cairo_line_to(cr, (_p)->x, c->y + (_y1)); \
- cairo_line_to(cr, (_p)->x, (_p)->y); \
- cairo_stroke(cr); \
- } while (0)
-
if (c->y < p->y) {
if (p0 == c->pins[SCF_EDA_NAND_IN1]) {
DRAW_GATE_PIN(p1, 5, -6, -12);
}
}
-#define DRAW_TEXT(_x, _y, _size, _text) \
- do { \
- cairo_set_font_size(cr, _size); \
- cairo_move_to(cr, _x, _y); \
- cairo_show_text(cr, _text); \
- cairo_stroke(cr); \
- } while (0)
-
if (p0->x < c->x) {
DRAW_GATE_PIN(p0, -23, 22, 28);
DRAW_GATE_PIN(p1, -17, 22, 32);
cairo_stroke(cr);
break;
+ case SCF_EDA_DFF:
+ cairo_rectangle(cr, c->x - 16, c->y - 12, 32, 24);
+ cairo_stroke(cr);
+
+ p0 = c->pins[SCF_EDA_DFF_IN];
+ p1 = c->pins[SCF_EDA_DFF_CK];
+ p = c->pins[SCF_EDA_DFF_OUT];
+
+ if (p->y < c->y) {
+ if (p0->x < p1->x) {
+ DRAW_GATE_PIN(p, -8, -12, -28);
+ DRAW_GATE_PIN(p0, -8, 12, 20);
+ DRAW_GATE_PIN(p1, 8, 12, 20);
+
+ DRAW_TEXT(c->x - 12, c->y + 9, 12, "D");
+
+ cairo_arc(cr, c->x + 8, c->y - 16, 3, 0, 2 * M_PI);
+ cairo_stroke(cr);
+#define DRAW_GATE_CK(_dx, _dy0, _dy1) \
+ do { \
+ cairo_move_to(cr, c->x + (_dx) - 4, c->y + (_dy0)); \
+ cairo_line_to(cr, c->x + (_dx), c->y + (_dy1)); \
+ cairo_line_to(cr, c->x + (_dx) + 4, c->y + (_dy0)); \
+ cairo_stroke(cr); \
+ } while (0)
+
+ DRAW_GATE_CK(8, 12, 5);
+ } else {
+ DRAW_GATE_PIN(p, 8, -12, -28);
+ DRAW_GATE_PIN(p0, 8, 12, 20);
+ DRAW_GATE_PIN(p1, -8, 12, 20);
+
+ DRAW_TEXT(c->x + 4, c->y + 9, 12, "D");
+
+ cairo_arc(cr, c->x - 8, c->y - 16, 3, 0, 2 * M_PI);
+ cairo_stroke(cr);
+
+ DRAW_GATE_CK(-8, 12, 5);
+ }
+ } else {
+ if (p0->x < p1->x) {
+ DRAW_GATE_PIN(p, -8, 12, 28);
+ DRAW_GATE_PIN(p0, -8, -12, -20);
+ DRAW_GATE_PIN(p1, 8, -12, -20);
+
+ DRAW_TEXT(c->x - 12, c->y, 12, "D");
+
+ cairo_arc(cr, c->x + 8, c->y + 16, 3, 0, 2 * M_PI);
+ cairo_stroke(cr);
+
+ DRAW_GATE_CK(8, -12, -5);
+ } else {
+ DRAW_GATE_PIN(p, 8, 12, 28);
+ DRAW_GATE_PIN(p0, 8, -12, -20);
+ DRAW_GATE_PIN(p1, -8, -12, -20);
+
+ DRAW_TEXT(c->x + 4, c->y, 12, "D");
+
+ cairo_arc(cr, c->x - 8, c->y + 16, 3, 0, 2 * M_PI);
+ cairo_stroke(cr);
+
+ DRAW_GATE_CK(-8, -12, -5);
+ }
+ }
+ break;
+
case SCF_EDA_ADD:
cairo_rectangle(cr, c->x - 16, c->y - 14, 32, 28);
cairo_stroke(cr);
DRAW_GATE_PIN(p1, 8, 14, 22);
DRAW_GATE_PIN(p0, -8, 14, 22);
- DRAW_TEXT(c->x - 12, c->y - 2, 12, "C0");
- DRAW_TEXT(c->x - 1, c->y - 2, 12, "Σ");
+ DRAW_TEXT(c->x - 14, c->y - 2, 12, "C0");
+ DRAW_TEXT(c->x + 5, c->y - 2, 12, "Σ");
+ }
+ break;
+
+ case SCF_EDA_ADC:
+ cairo_rectangle(cr, c->x - 16, c->y - 14, 32, 28);
+ cairo_stroke(cr);
+
+ pc = c->pins[SCF_EDA_ADC_CF];
+ p = c->pins[SCF_EDA_ADC_OUT];
+ p2 = c->pins[SCF_EDA_ADC_IN1];
+ p1 = c->pins[SCF_EDA_ADC_IN0];
+ p0 = c->pins[SCF_EDA_ADC_CI];
+
+ if (c->x < pc->x) {
+ DRAW_GATE_PIN(pc, 8, -14, -22);
+ DRAW_GATE_PIN(p, -8, -14, -22);
+ DRAW_GATE_PIN(p2, -8, 14, 22);
+ DRAW_GATE_PIN(p1, 0, 14, 28);
+ DRAW_GATE_PIN(p0, 8, 14, 22);
+
+ DRAW_TEXT(c->x - 1, c->y + 12, 12, "CI");
+ DRAW_TEXT(c->x - 1, c->y - 2, 12, "C0");
+ DRAW_TEXT(c->x - 12, c->y - 2, 12, "Σ");
+ } else {
+ DRAW_GATE_PIN(pc, -8, -14, -22);
+ DRAW_GATE_PIN(p, 8, -14, -22);
+ DRAW_GATE_PIN(p2, 8, 14, 22);
+ DRAW_GATE_PIN(p1, 0, 14, 28);
+ DRAW_GATE_PIN(p0, -8, 14, 22);
+
+ DRAW_TEXT(c->x - 14, c->y + 12, 12, "CI");
+ DRAW_TEXT(c->x - 14, c->y - 2, 12, "C0");
+ DRAW_TEXT(c->x + 5, c->y - 2, 12, "Σ");
}
break;
}
cairo_stroke(cr);
break;
+
+ case SCF_EDA_Signal:
+ p0 = c->pins[SCF_EDA_Signal_POS];
+ p1 = c->pins[SCF_EDA_Signal_NEG];
+
+ if (p0->y > p1->y) {
+ SHOW_COLOR(cr, 0.0, 0.0, 0.8);
+ DRAW_TEXT(c->x + 2, c->y - 16, 18, "-");
+
+ SHOW_COLOR(cr, 0.8, 0.0, 0.0);
+ DRAW_TEXT(c->x + 2, c->y + 24, 18, "+");
+
+ SCF_XCHG(p0, p1);
+ } else {
+ SHOW_COLOR(cr, 0.8, 0.0, 0.0);
+ DRAW_TEXT(c->x + 2, c->y - 16, 18, "+");
+
+ SHOW_COLOR(cr, 0.0, 0.0, 0.8);
+ DRAW_TEXT(c->x + 2, c->y + 24, 18, "-");
+ }
+ SHOW_COLOR(cr, 0.6, 0.6, 0.0);
+
+ cairo_arc(cr, c->x, c->y, 14, 0, 2 * M_PI);
+ cairo_stroke(cr);
+
+ cairo_move_to(cr, c->x, c->y - 14);
+ cairo_line_to(cr, p0->x, p0->y);
+ cairo_move_to(cr, c->x, c->y + 14);
+ cairo_line_to(cr, p1->x, p1->y);
+ cairo_stroke(cr);
+
+ if (SCF_EDA_Signal_DC != c->type) {
+ cairo_arc(cr, c->x - 4, c->y, 4, -M_PI, 0);
+ cairo_stroke(cr);
+
+ cairo_arc(cr, c->x + 4, c->y, 4, 0, M_PI);
+ cairo_stroke(cr);
+ }
+ break;
default:
break;
};
else if (SCF_EDA_PIN_CF & el->flags)
SHOW_COLOR(cr, 0.8, 0, 0.8);
+
+ else if (SCF_EDA_PIN_GND & el->flags)
+ SHOW_COLOR(cr, 0.0, 0, 0.5);
else
SHOW_COLOR(cr, 1, 0.5, 0.1);
cairo_show_text(cr, text);
cairo_stroke(cr);
}
+
+ if (el->flags & SCF_EDA_PIN_GND) {
+ cairo_move_to(cr, l->x0, l->y0);
+ cairo_line_to(cr, l->x0, l->y0 + 8);
+ cairo_move_to(cr, l->x0 - 6, l->y0 + 8);
+ cairo_line_to(cr, l->x0 + 6, l->y0 + 8);
+ cairo_move_to(cr, l->x0 - 4, l->y0 + 12);
+ cairo_line_to(cr, l->x0 + 4, l->y0 + 12);
+ cairo_move_to(cr, l->x0 - 2, l->y0 + 16);
+ cairo_line_to(cr, l->x0 + 2, l->y0 + 16);
+ cairo_stroke(cr);
+ }
}
cairo_set_line_width(cr, 3);
fp = fopen("v.txt", "w");
if (fp)
- fprintf(fp, "%ld, %lg\n", i, f->elines[4]->v);
+ fprintf(fp, "%ld, %lg, %lg, %lg\n", i, f->elines[2]->v, f->elines[9]->v, f->elines[8]->v);
#endif
- ses_draw(f, file, f->x, f->y, f->w, f->h, ps, count);
+ int j = count % 400;
- __draw_IC(f, ps, count, i);
+ if (j > 396 || j < 20) {
+ ses_draw(f, file, f->x, f->y, f->w, f->h, ps, count);
+
+// __draw_IC(f, ps, count, i);
+ }
i++;
}
static int __ses_dfs_add_ppath(scf_vector_t* paths, ses_path_t** ppath)
{
- ScfEpin* p;
- int j;
+ ses_path_t* tmp;
+ ScfEpin* p;
+ ScfEpin* p1;
+ int j;
+ int k;
if (*ppath) {
if ((*ppath)->pins->size > 0) {
p->pflag = 1;
p->path = (uintptr_t)*ppath;
}
+
+ p1 = (*ppath)->pins->data[(*ppath)->pins->size - 1];
+
+ for (j = 0; j < (*ppath)->pins->size; j++) {
+ p = (*ppath)->pins->data[j];
+
+ if (p1 != p && ses_same_line(p1, p)) {
+ tmp = ses_path_alloc();
+ if (!tmp)
+ return -ENOMEM;
+
+ assert((*ppath)->pins->size > 2);
+
+ p = (*ppath)->pins->data[(*ppath)->pins->size - 2];
+
+ if (scf_vector_add(tmp->pins, p) < 0) {
+ ses_path_free(tmp);
+ return -ENOMEM;
+ }
+
+ if (scf_vector_add(tmp->pins, p1) < 0) {
+ ses_path_free(tmp);
+ return -ENOMEM;
+ }
+
+ if (scf_vector_add(paths, tmp) < 0) {
+ ses_path_free(tmp);
+ return -ENOMEM;
+ }
+
+ (*ppath)->pins->size -= 2;
+ break;
+ }
+ }
} else
ses_path_free(*ppath);
*ppath = NULL;
c = rc->pf->components[el->pins[j]];
p = c->pins [el->pins[j + 1]];
- if (SCF_EDA_Battery == c->type)
+ if (SCF_EDA_Battery == c->type || SCF_EDA_Signal == c->type)
continue;
if (p->pflag) {
int i;
if (parent->childs) {
-
for (i = 0; i < parent->childs->size; ) {
child = parent->childs->data[i];
}
if (parent->bridges) {
-
for (i = 0; i < parent->bridges->size; ) {
child = parent->bridges->data[i];
int k;
int m;
- for (i = 0; i < paths->size; ) {
+ for (i = 0; i < paths->size; i++) {
path0 = paths->data[i];
p0 = path0->pins->data[0];
p1 = path0->pins->data[path0->pins->size - 1];
- if (!SES_LINE_NEG(p1)) {
- i++;
+ if (!SES_LINE_NEG(p1))
continue;
- }
- if (SES_LINE_POS(p0)) {
- i++;
+ if (SES_LINE_POS(p0))
continue;
- }
for (j = 0; j < paths->size; j++) {
path1 = paths->data[j];
for (m = 0; m < path0->pins->size; m += 2) {
__p0 = path0->pins->data[m];
- if (ses_same_line(__p3, __p0))
- goto xchg;
- }
- }
- }
-
- i++;
- continue;
-xchg:
+ if (!ses_same_line(__p3, __p0))
+ continue;
#if 1
- scf_logi("\033[36mconnect path: \033[0m");
- ses_pin_print(p2);
- ses_pin_print(__p3);
- printf("(%d)--", path1->pins->size);
- ses_pin_print(__p0);
- ses_pin_print(p1);
- printf("(%d)\n", path0->pins->size);
+ scf_logi("\033[36mconnect path: \033[0m");
+ ses_pin_print(p2);
+ ses_pin_print(__p3);
+ printf("(%d)--", path1->pins->size);
+ ses_pin_print(__p0);
+ ses_pin_print(p1);
+ printf("(%d)\n", path0->pins->size);
#endif
- int ret = __topo_path_xchg(f, paths, path0, m, path1, k + 1);
- if (ret < 0)
- return ret;
+ int ret = __topo_path_xchg(f, paths, path0, m, path1, k + 1);
+ if (ret < 0)
+ return ret;
- if (path0->pins->size <= 0) {
- if (scf_vector_del(paths, path0) < 0)
- return -1;
+ if (path0->pins->size <= 0) {
+ assert(0 == scf_vector_del(paths, path0));
- ses_path_free(path0);
- path0 = NULL;
+ ses_path_free(path0);
+ path0 = NULL;
+ }
+ return 0;
+ }
+ }
}
-
- if (path0)
- i++;
}
return 0;
c = el->pf->components[el->pins[i]];
p = c->pins [el->pins[i + 1]];
- if (SCF_EDA_Battery == c->type)
+ if (SCF_EDA_Battery == c->type || SCF_EDA_Signal == c->type)
continue;
if (p->vflag)
return 0;
}
-static int _topo_bridge_connections(ScfEfunction* f, scf_vector_t* paths)
-{
- return __topo_bridge_connections(f, paths, 0);
-}
-
static int _topo_paths_mov_top(ScfEfunction* f, scf_vector_t* paths, ses_path_t* parent, ses_path_t* child)
{
ses_path_t* path;
return 0;
}
-int __ses_topo_layers(ScfEfunction* f, scf_vector_t* paths)
+int __ses_topo_layers(ScfEfunction* f, scf_vector_t* paths, int layout_flag)
{
ses_path_t* path;
_topo_key_components(paths);
+ if (!layout_flag) {
+ ret = __topo_bridge_connections(f, paths, 1);
+ if (ret < 0)
+ return ret;
+ }
+
ret = _topo_path_neg(f, paths);
if (ret < 0)
return ret;
// ses_paths_print(paths, f);
- return __ses_topo_layers(f, paths);
+ return __ses_topo_layers(f, paths, 1);
}
static int _topo_paths_lc(ScfEfunction* root, ScfEfunction* f, scf_vector_t* paths)
if (ret < 0)
return ret;
- ret = _topo_paths_lc(f, f, ctx->paths);
- if (ret < 0)
- return ret;
// scf_logi("\n");
// ses_paths_print(ctx->paths);
// scf_logi("\n\n");
- ret = __ses_topo_layers(f, ctx->paths);
+ el = f->elines[B->pins[SCF_EDA_Battery_NEG]->lid];
+
+ if (el->flags & SCF_EDA_PIN_GND) {
+ ret = _topo_paths(el, ctx->paths, 1);
+ if (ret < 0)
+ return ret;
+ }
+
+ ret = _topo_paths_lc(f, f, ctx->paths);
+ if (ret < 0)
+ return ret;
+#if 0
+ ret = __ses_topo_layers(f, ctx->paths, 0);
if (ret < 0)
return ret;
- ret = _topo_bridge_connections(f, ctx->paths);
+ ret = __topo_bridge_connections(f, ctx->paths, 0);
if (ret < 0)
return ret;
ret = _topo_path_leaf(f, ctx->paths);
if (ret < 0)
return ret;
-
+#endif
ses_paths_print(ctx->paths);
return 0;
}
return 0;
ScfEcomponent* c;
- ScfEcomponent* B = f->components[0];
- ScfEpin* Bp = B->pins[SCF_EDA_Battery_POS];
- ScfEpin* Bn = B->pins[SCF_EDA_Battery_NEG];
- ScfEline* LP = ses_top_pline(Bp);
- ScfEline* LN = ses_top_pline(Bn);
-
ScfEpin* p0 = path->pins->data[m];
ScfEpin* p1 = path->pins->data[n];
ScfEline* el;
p->a = a;
- if (el != LP && el != LN) {
+ if (!el->vconst) {
el->v = p->v;
ses_line_set_v(c->pf->elines[p->lid], p->v);
}
#include"ses_core.h"
-int __ses_path_va_nodes(ScfEfunction* f, ses_path_t* path, int* changed, scf_vector_t* paths, int64_t ps, int64_t count)
-{
- if (!path)
- return -EINVAL;
-
- if (path->pins->size < 2) {
- scf_loge("\n");
- return -EINVAL;
- }
-
- ScfEpin* p0 = path->pins->data[0];
- ScfEpin* p1 = path->pins->data[path->pins->size - 1];
-
- double _sr0 = p0->sr;
- double _pr0 = p0->pr;
- double _sr1 = p1->sr;
- double _pr1 = p1->pr;
-
- p0->sr = 0;
- p0->pr = 0;
- p1->sr = path->sr;
- p1->pr = path->pr;
-
- scf_logi("---------------\n");
-
- int ret = __ses_nodes_path_solve(f, path, 0, path->pins->size - 1, changed, ps, count);
- if (ret < 0) {
- scf_loge("\n");
- return ret;
- }
- scf_logi("---------------\n\n");
-
- p0->sr = _sr0;
- p0->pr = _pr0;
- p1->sr = _sr1;
- p1->pr = _pr1;
- return 0;
-}
-
-static int ses_path_va_nodes(ScfEfunction* f, ses_path_t* path, int* changed, scf_vector_t* paths, int64_t ps, int64_t count)
-{
- return __ses_path_va_nodes(f, path, changed, paths, ps, count);
-}
-
static int _va_nodes_handler(ScfEfunction* f, int64_t ps, int64_t count, ses_ctx_t* ctx)
{
- ses_path_t* path;
-
int changed = 0;
- int i;
-
- for (i = 0; i < ctx->paths->size; i++) {
- path = ctx->paths->data[i];
- scf_logi("i: %d, path->index: %d\n", i, path->index);
-
- int ret = ses_path_va_nodes(f, path, &changed, ctx->paths, ps, count);
- if (ret < 0)
- return ret;
- }
+ int ret = __ses_nodes_paths_solve(f, ctx->paths, &changed, ps, count);
+ if (ret < 0)
+ return ret;
ctx->changed += changed;
return 0;
extern ses_step_t ses_step_battery;
extern ses_step_t ses_step_dc_input;
+extern ses_step_t ses_step_ac_input;
extern ses_step_t ses_step_dc_diode;
extern ses_step_t ses_step_dc_npn;
&ses_step_battery,
&ses_step_dc_input,
+// &ses_step_ac_input,
};
static ses_step_t* ses_steps_1[] =
}
}
-void __ses_pn_dr(ScfEcomponent* c, ScfEpin* pb, ScfEpin* pe)
+ses_group_t* ses_group_alloc()
{
- double v = pb->v - pe->v;
- double r;
+ ses_group_t* g = calloc(1, sizeof(ses_group_t));
+ if (!g)
+ return NULL;
- if (v >= SCF_EDA_V_Diode_ON) {
+ g->nodes = scf_vector_alloc();
+ if (!g->nodes) {
+ free(g);
+ return NULL;
+ }
- ses_ui_r(&r, NULL, v, 0, pb->a, 0);
- pe->dr = r - pe->r;
+ g->edges = scf_vector_alloc();
+ if (!g->edges) {
+ scf_vector_free(g->nodes);
+ free(g);
+ return NULL;
+ }
- } else if (v > SCF_EDA_V_Diode_OFF)
- pe->dr = pb->r * (SCF_EDA_V_Diode_ON - SCF_EDA_V_Diode_OFF) / (v - SCF_EDA_V_Diode_OFF + 0.001);
+ return g;
}
-void __ses_npn_dr(ScfEcomponent* c, ScfEpin* pb, ScfEpin* pe)
+void ses_group_free(ses_group_t* g)
{
- double v = pb->v - pe->v;
- double r;
-
- if (v >= SCF_EDA_V_NPN_ON) {
+ if (g) {
+ scf_vector_clear(g->nodes, ( void (*)(void*) )ses_node_free);
+ scf_vector_free(g->nodes);
- ses_ui_r(&r, NULL, v, 0, pb->a, 0);
- pb->dr = r - pb->r;
+ scf_vector_clear(g->edges, ( void (*)(void*) )ses_edge_free);
+ scf_vector_free(g->edges);
- } else if (v > SCF_EDA_V_NPN_OFF)
- pb->dr = pb->r * (SCF_EDA_V_NPN_ON - SCF_EDA_V_NPN_OFF) / (v - SCF_EDA_V_NPN_OFF + 0.001);
+ free(g);
+ }
}
void ses_eline_print(ScfEline* el)
-CFILES += main.c
+#CFILES += main.c
#CFILES += test.c
#CFILES += fft.c
#CFILES += dct.c
#CFILES += pnp.c
#CFILES += colpitts.c
#CFILES += astable_multivibrator.c
+CFILES += two_battery.c
+#CFILES += draw_timing.c
+
CFILES += ../scf_eda_pack.c
CFILES += ../pack/scf_pack.c
--- /dev/null
+#include <stdio.h>
+#include <cairo/cairo.h>
+
+#define N 6400
+
+#define W 1280
+#define H 720
+
+#define PX 0.16
+
+int main()
+{
+ FILE* fp = fopen("v.txt", "r");
+
+ cairo_surface_t* surface;
+ cairo_t* cr;
+
+ surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, W, H);
+ cr = cairo_create(surface);
+
+ cairo_set_line_width(cr, 2);
+ cairo_set_source_rgb(cr, 1, 1, 1);
+ cairo_rectangle (cr, 0, 0, W, H);
+ cairo_fill(cr);
+ cairo_stroke(cr);
+
+ cairo_select_font_face(cr, "Calibri", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL);
+ cairo_set_font_size(cr, 20);
+ cairo_set_source_rgb(cr, 0, 0, 0);
+
+ double in0 = 0.0;
+ double in = 0.0;
+ double time0 = 0.0;
+ double time = 0.0;
+ double out0 = 0.0;
+ double out = 0.0;
+
+ int i;
+ int j;
+
+ for (i = 0; i < N; i++) {
+ fscanf(fp, "%d, %lg, %lg, %lg", &j, &in, &time, &out);
+
+ if (i > 10 && i < N) {
+ printf("i: %d, in: %lg, time: %lg, out: %lg\n", i, in, time, out);
+
+ cairo_move_to(cr, 40 + PX * (i - 1), 200 - 20 * in0);
+ cairo_line_to(cr, 40 + PX * i, 200 - 20 * in);
+ cairo_stroke(cr);
+
+ cairo_move_to(cr, 40 + PX * (i - 1), 400 - 20 * time0);
+ cairo_line_to(cr, 40 + PX * i, 400 - 20 * time);
+ cairo_stroke(cr);
+
+ cairo_move_to(cr, 40 + PX * (i - 1), 600 - 20 * out0);
+ cairo_line_to(cr, 40 + PX * i, 600 - 20 * out);
+ cairo_stroke(cr);
+ }
+
+ in0 = in;
+ time0 = time;
+ out0 = out;
+ }
+
+ cairo_surface_write_to_png(surface, "timing.png");
+
+ cairo_destroy(cr);
+ cairo_surface_destroy(surface);
+ surface = NULL;
+ cr = NULL;
+
+ fclose(fp);
+ return 0;
+}
--- /dev/null
+#include<stdio.h>
+#include<stdlib.h>
+#include<string.h>
+#include"ses_core.h"
+
+int main(int argc, char* argv[])
+{
+ ScfEcomponent* B0;
+ ScfEcomponent* B1;
+ ScfEcomponent* R0;
+ ScfEcomponent* R1;
+ ScfEcomponent* D0;
+ ScfEcomponent* D1;
+ ScfEcomponent* T0;
+ ScfEcomponent* T1;
+
+ ScfEcomponent* C;
+ ScfEcomponent* S;
+ ScfEcomponent* RL;
+
+ ScfEboard* b = scf_eboard__alloc();
+ ScfEfunction* f = scf_efunction__alloc("two_battery");
+
+ EDA_INST_ADD_COMPONENT(f, B0, SCF_EDA_Battery);
+ EDA_INST_ADD_COMPONENT(f, B1, SCF_EDA_Battery);
+ EDA_INST_ADD_COMPONENT(f, R0, SCF_EDA_Resistor);
+ EDA_INST_ADD_COMPONENT(f, R1, SCF_EDA_Resistor);
+ EDA_INST_ADD_COMPONENT(f, D0, SCF_EDA_Diode);
+ EDA_INST_ADD_COMPONENT(f, D1, SCF_EDA_Diode);
+ EDA_INST_ADD_COMPONENT(f, T0, SCF_EDA_NPN);
+ EDA_INST_ADD_COMPONENT(f, T1, SCF_EDA_PNP);
+
+ EDA_INST_ADD_COMPONENT(f, C, SCF_EDA_Capacitor);
+ EDA_INST_ADD_COMPONENT(f, S, SCF_EDA_Signal);
+ EDA_INST_ADD_COMPONENT(f, RL, SCF_EDA_Resistor);
+
+ B0->pins[SCF_EDA_Battery_POS]->flags = SCF_EDA_PIN_POS;
+// B0->pins[SCF_EDA_Battery_NEG]->flags = SCF_EDA_PIN_NEG;
+// B1->pins[SCF_EDA_Battery_POS]->flags = SCF_EDA_PIN_POS;
+ B1->pins[SCF_EDA_Battery_NEG]->flags = SCF_EDA_PIN_NEG;
+
+ EDA_PIN_ADD_PIN(B0, SCF_EDA_Battery_POS, R0, 1);
+ EDA_PIN_ADD_PIN(R0, 0, D0, SCF_EDA_Diode_POS);
+ EDA_PIN_ADD_PIN(D0, SCF_EDA_Diode_NEG, D1, SCF_EDA_Diode_POS);
+ EDA_PIN_ADD_PIN(D1, SCF_EDA_Diode_NEG, R1, 1);
+ EDA_PIN_ADD_PIN(R1, 0, B1, SCF_EDA_Battery_NEG);
+
+ EDA_PIN_ADD_PIN(B0, SCF_EDA_Battery_POS, T0, SCF_EDA_NPN_C);
+ EDA_PIN_ADD_PIN(T0, SCF_EDA_NPN_E, T1, SCF_EDA_PNP_E);
+ EDA_PIN_ADD_PIN(T1, SCF_EDA_PNP_C, B1, SCF_EDA_Battery_NEG);
+
+ EDA_PIN_ADD_PIN(T0, SCF_EDA_NPN_B, D0, SCF_EDA_Diode_POS);
+ EDA_PIN_ADD_PIN(T1, SCF_EDA_PNP_B, D1, SCF_EDA_Diode_NEG);
+
+ EDA_PIN_ADD_PIN(B0, SCF_EDA_Battery_NEG, B1, SCF_EDA_Battery_POS);
+ EDA_PIN_ADD_PIN(C, 0, D0, SCF_EDA_Diode_NEG);
+
+ EDA_PIN_ADD_PIN(T0, SCF_EDA_NPN_E, RL, 1);
+ EDA_PIN_ADD_PIN(B0, SCF_EDA_Battery_NEG, RL, 0);
+
+ EDA_PIN_ADD_PIN(S, SCF_EDA_Signal_NEG, B0, SCF_EDA_Battery_NEG);
+ EDA_PIN_ADD_PIN(S, SCF_EDA_Signal_POS, C, 1);
+
+ C ->pins[1]->flags = SCF_EDA_PIN_IN | SCF_EDA_PIN_IN0;
+ T0->pins[SCF_EDA_NPN_E]->flags = SCF_EDA_PIN_OUT;
+
+ R0->r = 1000;
+ R1->r = 1000;
+ RL->r = 10;
+
+ scf_eboard__add_function(b, f);
+
+ long len = 0;
+ uint8_t* buf = NULL;
+
+ ScfEboard_pack(b, &buf, &len);
+ ScfEboard_free(b);
+ b = NULL;
+
+ FILE* fp = fopen("./two_battery.cpk", "wb");
+ if (!fp)
+ return -EINVAL;
+
+ fwrite(buf, len, 1, fp);
+ fclose(fp);
+ return 0;
+}
-0, 0.00281274
-1, -0.00253098
-2, -0.75151
-3, -1.2427
-4, -1.68784
-5, -2.09123
-6, -2.451
-7, -2.78236
-8, -3.08264
-9, -3.35477
-10, -3.60137
-11, -3.64628
-12, -3.64764
-13, -3.64901
-14, -3.65038
-15, -3.65176
-16, -3.65314
-17, -3.65453
-18, -3.65593
-19, -3.65733
-20, -3.65874
-21, -3.66015
-22, -3.66156
-23, -3.66298
-24, -3.6644
-25, -3.66583
-26, -3.66726
-27, -3.66869
-28, -3.67012
-29, -3.67156
-30, -3.673
-31, -3.67444
-32, -3.67588
-33, -3.67733
-34, -3.67878
-35, -3.68023
-36, -3.68168
-37, -3.68314
-38, -3.6846
-39, -3.68605
-40, -3.68751
-41, -3.68898
-42, -3.69044
-43, -3.6919
-44, -3.69337
-45, -3.69484
-46, -3.6963
-47, -3.69777
-48, -3.69924
-49, -3.70072
-50, -3.70081
-51, -3.70231
-52, -3.70381
-53, -3.7053
-54, -3.70721
-55, -3.70874
-56, -3.71028
-57, -3.71183
-58, -3.7134
-59, -3.71497
-60, -3.71657
-61, -3.71819
-62, -3.71985
-63, -3.72158
-64, -3.72339
-65, -3.72537
-66, -3.72763
-67, -3.73049
-68, -3.72714
-69, -2.43478
-70, -1.63811
-71, -0.916781
-72, -0.263657
-73, 0.327712
-74, 0.863167
-75, 1.34799
-76, 1.78698
-77, 2.17853
-78, 2.53848
-79, 2.86439
-80, 3.15948
-81, 3.42666
-82, 3.53226
-83, 3.53359
-84, 3.53491
-85, 3.53625
-86, 3.53759
-87, 3.53893
-88, 3.54028
-89, 3.54164
-90, 3.543
-91, 3.54436
-92, 3.54573
-93, 3.5471
-94, 3.54848
-95, 3.54985
-96, 3.55123
-97, 3.55262
-98, 3.554
-99, 3.55539
-100, 3.55678
-101, 3.55818
-102, 3.55957
-103, 3.56097
-104, 3.56237
-105, 3.56377
-106, 3.56518
-107, 3.56658
-108, 3.56799
-109, 3.5694
-110, 3.57081
-111, 3.57222
-112, 3.57364
-113, 3.57505
-114, 3.57647
-115, 3.57788
-116, 3.5793
-117, 3.58072
-118, 3.58214
-119, 3.58356
-120, 3.58363
-121, 3.58508
-122, 3.58653
-123, 3.58797
-124, 3.5899
-125, 3.59139
-126, 3.5929
-127, 3.59441
-128, 3.59593
-129, 3.59748
-130, 3.59906
-131, 3.60068
-132, 3.60236
-133, 3.60414
-134, 3.6061
-135, 3.60838
-136, 3.61135
-137, 3.60814
-138, 2.1705
-139, 1.40535
-140, 0.711938
-141, 0.0835447
-142, -0.485934
-143, -1.00202
-144, -1.46972
-145, -1.89358
-146, -2.27185
-147, -2.62
-148, -2.93551
-149, -3.22143
-150, -3.48054
-151, -3.50793
-152, -3.50925
-153, -3.51057
-154, -3.5119
-155, -3.51324
-156, -3.51458
-157, -3.51593
-158, -3.51728
-159, -3.51864
-160, -3.52
-161, -3.52136
-162, -3.52273
-163, -3.5241
-164, -3.52547
-165, -3.52685
-166, -3.52822
-167, -3.52961
-168, -3.53099
-169, -3.53238
-170, -3.53377
-171, -3.53516
-172, -3.53655
-173, -3.53794
-174, -3.53934
-175, -3.54074
-176, -3.54214
-177, -3.54354
-178, -3.54494
-179, -3.54635
-180, -3.54776
-181, -3.54916
-182, -3.55057
-183, -3.55198
-184, -3.55339
-185, -3.55481
-186, -3.55622
-187, -3.55763
-188, -3.55905
-189, -3.55913
-190, -3.56057
-191, -3.56201
-192, -3.56391
-193, -3.56539
-194, -3.56688
-195, -3.56839
-196, -3.5699
-197, -3.57144
-198, -3.573
-199, -3.5746
-200, -3.57625
-201, -3.578
-202, -3.57989
-203, -3.58205
-204, -3.58476
-205, -3.58108
-206, -2.4668
-207, -1.66711
-208, -0.943034
-209, -0.287428
-210, 0.306188
-211, 0.843678
-212, 1.33035
-213, 1.771
-214, 2.16408
-215, 2.5254
-216, 2.85254
-217, 3.14875
-218, 3.41695
-219, 3.54482
-220, 3.54614
-221, 3.54748
-222, 3.54881
-223, 3.55016
-224, 3.5515
-225, 3.55286
-226, 3.55422
-227, 3.55558
-228, 3.55695
-229, 3.55832
-230, 3.55969
-231, 3.56107
-232, 3.56245
-233, 3.56384
-234, 3.56523
-235, 3.56662
-236, 3.56801
-237, 3.56941
-238, 3.57081
-239, 3.57221
-240, 3.57361
-241, 3.57501
-242, 3.57642
-243, 3.57783
-244, 3.57924
-245, 3.58065
-246, 3.58206
-247, 3.58348
-248, 3.5849
-249, 3.58631
-250, 3.58773
-251, 3.58915
-252, 3.59058
-253, 3.592
-254, 3.59342
-255, 3.59485
-256, 3.59627
-257, 3.59634
-258, 3.59779
-259, 3.59924
-260, 3.6007
-261, 3.60261
-262, 3.60411
-263, 3.60561
-264, 3.60712
-265, 3.60865
-266, 3.61019
-267, 3.61176
-268, 3.61337
-269, 3.61503
-270, 3.61677
-271, 3.61865
-272, 3.62079
-273, 3.62342
-274, 3.62725
-275, 2.51163
-276, 1.71449
-277, 0.992093
-278, 0.337433
-279, -0.255849
-280, -0.793508
-281, -1.28076
-282, -1.72233
-283, -2.12249
-284, -2.4793
-285, -2.808
-286, -3.10588
-287, -3.37583
-288, -3.62046
-289, -3.50525
-290, -3.50657
-291, -3.5079
-292, -3.50923
-293, -3.51057
-294, -3.51191
-295, -3.51326
-296, -3.51462
-297, -3.51597
-298, -3.51733
-299, -3.5187
-300, -3.52007
-301, -3.52144
-302, -3.52281
-303, -3.52419
-304, -3.52557
-305, -3.52695
-306, -3.52833
-307, -3.52972
-308, -3.53111
-309, -3.5325
-310, -3.53389
-311, -3.53528
-312, -3.53668
-313, -3.53808
-314, -3.53948
-315, -3.54088
-316, -3.54228
-317, -3.54369
-318, -3.54509
-319, -3.5465
-320, -3.54791
-321, -3.54932
-322, -3.55073
-323, -3.55214
-324, -3.55355
-325, -3.55497
-326, -3.55504
-327, -3.55648
-328, -3.55791
-329, -3.55935
-330, -3.56128
-331, -3.56277
-332, -3.56427
-333, -3.56578
-334, -3.5673
-335, -3.56885
-336, -3.57044
-337, -3.57207
-338, -3.57378
-339, -3.57561
-340, -3.57767
-341, -3.58015
-342, -3.5836
-343, -2.6326
-344, -1.89433
-345, -1.14877
-346, -0.473714
-347, 0.137516
-348, 0.690954
-349, 1.19206
-350, 1.64579
-351, 2.05069
-352, 2.42273
-353, 2.75958
-354, 3.06458
-355, 3.34074
-356, 3.59078
-357, 3.57454
-358, 3.57588
-359, 3.57723
-360, 3.57858
-361, 3.57993
-362, 3.58129
-363, 3.58266
-364, 3.58403
-365, 3.58541
-366, 3.58679
-367, 3.58817
-368, 3.58956
-369, 3.59095
-370, 3.59234
-371, 3.59374
-372, 3.59514
-373, 3.59654
-374, 3.59795
-375, 3.59936
-376, 3.60077
-377, 3.60218
-378, 3.6036
-379, 3.60501
-380, 3.60643
-381, 3.60785
-382, 3.60927
-383, 3.6107
-384, 3.61212
-385, 3.61355
-386, 3.61498
-387, 3.61641
-388, 3.61784
-389, 3.61928
-390, 3.62071
-391, 3.62214
-392, 3.62358
-393, 3.62502
-394, 3.62646
-395, 3.62654
-396, 3.628
-397, 3.62947
-398, 3.63093
-399, 3.63286
-400, 3.63437
-401, 3.63588
-402, 3.63741
-403, 3.63895
-404, 3.6405
-405, 3.64209
-406, 3.64371
-407, 3.64539
-408, 3.64716
-409, 3.64907
-410, 3.65125
-411, 3.65397
-412, 3.65803
-413, 2.45749
-414, 1.66542
-415, 0.94763
-416, 0.297138
-417, -0.292366
-418, -0.826602
-419, -1.31075
-420, -1.74951
-421, -2.14124
-422, -2.50164
-423, -2.82825
-424, -3.12423
-425, -3.39245
-426, -3.49584
-427, -3.49715
-428, -3.49847
-429, -3.4998
-430, -3.50113
-431, -3.50247
-432, -3.50381
-433, -3.50515
-434, -3.50651
-435, -3.50786
-436, -3.50922
-437, -3.51058
-438, -3.51194
-439, -3.51331
-440, -3.51468
-441, -3.51606
-442, -3.51743
-443, -3.51881
-444, -3.52019
-445, -3.52158
-446, -3.52296
-447, -3.52435
-448, -3.52574
-449, -3.52713
-450, -3.52853
-451, -3.52992
-452, -3.53132
-453, -3.53272
-454, -3.53412
-455, -3.53552
-456, -3.53692
-457, -3.53832
-458, -3.53973
-459, -3.54114
-460, -3.54254
-461, -3.54395
-462, -3.54536
-463, -3.54677
-464, -3.54685
-465, -3.54828
-466, -3.54971
-467, -3.55161
-468, -3.55309
-469, -3.55458
-470, -3.55607
-471, -3.55758
-472, -3.55911
-473, -3.56067
-474, -3.56226
-475, -3.5639
-476, -3.56564
-477, -3.56751
-478, -3.56965
-479, -3.57231
-480, -3.57622
-481, -2.45211
-482, -1.6538
-483, -0.930987
-484, -0.27652
-485, 0.316064
-486, 0.85262
-487, 1.33845
-488, 1.77833
-489, 2.17071
-490, 2.5314
-491, 2.85798
-492, 3.15367
-493, 3.4214
-494, 3.66381
-495, 3.57627
-496, 3.57761
-497, 3.57896
-498, 3.58031
-499, 3.58167
-500, 3.58303
-501, 3.5844
-502, 3.58578
-503, 3.58715
-504, 3.58853
-505, 3.58992
-506, 3.59131
-507, 3.5927
-508, 3.5941
-509, 3.59549
-510, 3.5969
-511, 3.5983
-512, 3.59971
-513, 3.60112
-514, 3.60253
-515, 3.60394
-516, 3.60536
-517, 3.60678
-518, 3.6082
-519, 3.60962
-520, 3.61104
-521, 3.61247
-522, 3.61389
-523, 3.61532
-524, 3.61675
-525, 3.61818
-526, 3.61961
-527, 3.62105
-528, 3.62248
-529, 3.62392
-530, 3.62536
-531, 3.62679
-532, 3.62823
-533, 3.62832
-534, 3.62979
-535, 3.63125
-536, 3.63272
-537, 3.63465
-538, 3.63616
-539, 3.63768
-540, 3.63921
-541, 3.64075
-542, 3.64232
-543, 3.64391
-544, 3.64555
-545, 3.64724
-546, 3.64904
-547, 3.65101
-548, 3.65328
-549, 3.65622
-550, 3.65297
-551, 2.21035
-552, 1.44146
-553, 0.744668
-554, 0.113205
-555, -0.459054
-556, -0.977662
-557, -1.44765
-558, -1.87357
-559, -2.25369
-560, -2.60354
-561, -2.9206
-562, -3.20792
-563, -3.4683
-564, -3.52299
-565, -3.52431
-566, -3.52564
-567, -3.52698
-568, -3.52832
-569, -3.52967
-570, -3.53102
-571, -3.53237
-572, -3.53374
-573, -3.5351
-574, -3.53647
-575, -3.53784
-576, -3.53922
-577, -3.54059
-578, -3.54198
-579, -3.54336
-580, -3.54475
-581, -3.54614
-582, -3.54753
-583, -3.54892
-584, -3.55032
-585, -3.55172
-586, -3.55312
-587, -3.55452
-588, -3.55592
-589, -3.55733
-590, -3.55874
-591, -3.56015
-592, -3.56156
-593, -3.56297
-594, -3.56438
-595, -3.5658
-596, -3.56721
-597, -3.56863
-598, -3.57005
-599, -3.57147
-600, -3.57289
-601, -3.57431
-602, -3.57439
-603, -3.57583
-604, -3.57728
-605, -3.57917
-606, -3.58066
-607, -3.58215
-608, -3.58366
-609, -3.58518
-610, -3.58671
-611, -3.58827
-612, -3.58986
-613, -3.5915
-614, -3.59321
-615, -3.59505
-616, -3.59711
-617, -3.59959
-618, -3.60302
-619, -2.64977
-620, -1.91121
-621, -1.16405
-622, -0.487545
-623, 0.124992
-624, 0.679614
-625, 1.1818
-626, 1.6365
-627, 2.0482
-628, 2.41506
-629, 2.75264
-630, 3.0583
-631, 3.33505
-632, 3.58563
-633, 3.56879
-634, 3.57013
-635, 3.57147
-636, 3.57282
-637, 3.57417
-638, 3.57553
-639, 3.5769
-640, 3.57827
-641, 3.57964
-642, 3.58102
-643, 3.5824
-644, 3.58379
-645, 3.58517
-646, 3.58657
-647, 3.58796
-648, 3.58936
-649, 3.59076
-650, 3.59216
-651, 3.59357
-652, 3.59498
-653, 3.59639
-654, 3.5978
-655, 3.59922
-656, 3.60063
-657, 3.60205
-658, 3.60347
-659, 3.60489
-660, 3.60632
-661, 3.60774
-662, 3.60917
-663, 3.6106
-664, 3.61203
-665, 3.61346
-666, 3.61489
-667, 3.61632
-668, 3.61776
-669, 3.61919
-670, 3.62063
-671, 3.62071
-672, 3.62217
-673, 3.62363
-674, 3.62509
-675, 3.62702
-676, 3.62853
-677, 3.63004
-678, 3.63157
-679, 3.63311
-680, 3.63466
-681, 3.63625
-682, 3.63787
-683, 3.63956
-684, 3.64133
-685, 3.64326
-686, 3.64548
-687, 3.64829
-688, 3.64481
-689, 2.36907
-690, 1.5853
-691, 0.875018
-692, 0.231334
-693, -0.352001
-694, -0.880645
-695, -1.35973
-696, -1.79389
-697, -2.18147
-698, -2.53809
-699, -2.86128
-700, -3.15417
-701, -3.41959
-702, -3.49767
-703, -3.49898
-704, -3.5003
-705, -3.50163
-706, -3.50296
-707, -3.5043
-708, -3.50564
-709, -3.50699
-710, -3.50834
-711, -3.5097
-712, -3.51106
-713, -3.51242
-714, -3.51379
-715, -3.51515
-716, -3.51653
-717, -3.5179
-718, -3.51928
-719, -3.52066
-720, -3.52204
-721, -3.52342
-722, -3.52481
-723, -3.5262
-724, -3.52759
-725, -3.52898
-726, -3.53038
-727, -3.53177
-728, -3.53317
-729, -3.53457
-730, -3.53597
-731, -3.53737
-732, -3.53878
-733, -3.54018
-734, -3.54159
-735, -3.54299
-736, -3.5444
-737, -3.54581
-738, -3.54722
-739, -3.54863
-740, -3.54871
-741, -3.55014
-742, -3.55158
-743, -3.55348
-744, -3.55496
-745, -3.55645
-746, -3.55794
-747, -3.55946
-748, -3.56099
-749, -3.56254
-750, -3.56414
-751, -3.56579
-752, -3.56753
-753, -3.56942
-754, -3.57159
-755, -3.57429
-756, -3.57062
-757, -2.45714
-758, -1.65836
-759, -0.935114
-760, -0.280257
-761, 0.312681
-762, 0.849557
-763, 1.33567
-764, 1.77582
-765, 2.16844
-766, 2.52934
-767, 2.85611
-768, 3.15199
-769, 3.41988
-770, 3.54797
-771, 3.5493
-772, 3.55063
-773, 3.55197
-774, 3.55331
-775, 3.55466
-776, 3.55602
-777, 3.55738
-778, 3.55874
-779, 3.56011
-780, 3.56148
-781, 3.56286
-782, 3.56424
-783, 3.56562
-784, 3.56701
-785, 3.56839
-786, 3.56979
-787, 3.57118
-788, 3.57258
-789, 3.57398
-790, 3.57538
-791, 3.57678
-792, 3.57819
-793, 3.5796
-794, 3.58101
-795, 3.58242
-796, 3.58383
-797, 3.58525
-798, 3.58666
-799, 3.58808
-800, 3.5895
-801, 3.59092
-802, 3.59234
-803, 3.59376
-804, 3.59519
-805, 3.59661
-806, 3.59804
-807, 3.59947
-808, 3.6009
-809, 3.60099
-810, 3.60244
-811, 3.6039
-812, 3.60581
-813, 3.60731
-814, 3.60881
-815, 3.61032
-816, 3.61185
-817, 3.61339
-818, 3.61496
-819, 3.61657
-820, 3.61822
-821, 3.61996
-822, 3.62184
-823, 3.62395
-824, 3.62655
-825, 3.63028
-826, 2.51214
-827, 1.71495
-828, 0.992513
-829, 0.337813
-830, -0.255504
-831, -0.793196
-832, -1.28048
-833, -1.72207
-834, -2.12226
-835, -2.47909
-836, -2.80781
-837, -3.1057
-838, -3.37567
-839, -3.62031
-840, -3.53144
-841, -3.53277
-842, -3.5341
-843, -3.53545
-844, -3.53679
-845, -3.53814
-846, -3.5395
-847, -3.54086
-848, -3.54223
-849, -3.5436
-850, -3.54497
-851, -3.54635
-852, -3.54773
-853, -3.54911
-854, -3.5505
-855, -3.55189
-856, -3.55328
-857, -3.55467
-858, -3.55607
-859, -3.55747
-860, -3.55887
-861, -3.56027
-862, -3.56167
-863, -3.56308
-864, -3.56449
-865, -3.5659
-866, -3.56731
-867, -3.56872
-868, -3.57014
-869, -3.57155
-870, -3.57297
-871, -3.57439
-872, -3.57581
-873, -3.57723
-874, -3.57865
-875, -3.58007
-876, -3.5815
-877, -3.58157
-878, -3.58302
-879, -3.58446
-880, -3.58591
-881, -3.58783
-882, -3.58932
-883, -3.59082
-884, -3.59233
-885, -3.59386
-886, -3.59541
-887, -3.59698
-888, -3.5986
-889, -3.60027
-890, -3.60203
-891, -3.60396
-892, -3.60617
-893, -3.60897
-894, -3.60546
-895, -2.40634
-896, -1.61236
-897, -0.893468
-898, -0.242549
-899, 0.346824
-900, 0.880472
-901, 1.36366
-902, 1.80117
-903, 2.19136
-904, 2.55009
-905, 2.8749
-906, 3.169
-907, 3.43528
-908, 3.5386
-909, 3.53992
-910, 3.54125
-911, 3.54259
-912, 3.54393
-913, 3.54528
-914, 3.54663
-915, 3.54798
-916, 3.54935
-917, 3.55071
-918, 3.55208
-919, 3.55345
-920, 3.55483
-921, 3.55621
-922, 3.55759
-923, 3.55898
-924, 3.56037
-925, 3.56176
-926, 3.56315
-927, 3.56455
-928, 3.56595
-929, 3.56735
-930, 3.56875
-931, 3.57015
-932, 3.57156
-933, 3.57297
-934, 3.57438
-935, 3.57579
-936, 3.5772
-937, 3.57862
-938, 3.58003
-939, 3.58145
-940, 3.58287
-941, 3.58429
-942, 3.58571
-943, 3.58713
-944, 3.58855
-945, 3.58998
-946, 3.59005
-947, 3.5915
-948, 3.59295
-949, 3.59439
-950, 3.59632
-951, 3.59781
-952, 3.59931
-953, 3.60083
-954, 3.60235
-955, 3.6039
-956, 3.60547
-957, 3.60709
-958, 3.60876
-959, 3.61053
-960, 3.61245
-961, 3.61467
-962, 3.61749
-963, 3.61401
-964, 2.25464
-965, 1.4816
-966, 0.781039
-967, 0.146166
-968, -0.429183
-969, -0.950592
-970, -1.42312
-971, -1.85134
-972, -2.23357
-973, -2.58531
-974, -2.90407
-975, -3.19294
-976, -3.45472
-977, -3.53284
-978, -3.53417
-979, -3.5355
-980, -3.53684
-981, -3.53818
-982, -3.53953
-983, -3.54089
-984, -3.54225
-985, -3.54361
-986, -3.54498
-987, -3.54635
-988, -3.54772
-989, -3.5491
-990, -3.55048
-991, -3.55187
-992, -3.55326
-993, -3.55465
-994, -3.55604
-995, -3.55743
-996, -3.55883
-997, -3.56023
-998, -3.56163
-999, -3.56304
-1000, -3.56444
-1001, -3.56585
-1002, -3.56726
-1003, -3.56867
-1004, -3.57009
-1005, -3.5715
-1006, -3.57292
-1007, -3.57433
-1008, -3.57575
-1009, -3.57717
-1010, -3.57859
-1011, -3.58001
-1012, -3.58144
-1013, -3.58286
-1014, -3.58429
-1015, -3.58436
-1016, -3.58581
-1017, -3.58726
-1018, -3.58871
-1019, -3.59063
-1020, -3.59213
-1021, -3.59364
-1022, -3.59515
-1023, -3.59669
-1024, -3.59824
-1025, -3.59982
-1026, -3.60145
-1027, -3.60314
-1028, -3.60494
-1029, -3.60692
-1030, -3.60923
-1031, -3.61227
-1032, -3.60907
-1033, -2.15934
-1034, -1.38872
-1035, -0.690968
-1036, -0.0591962
-1037, 0.51284
-1038, 1.03079
-1039, 1.49977
-1040, 1.9244
-1041, 2.30296
-1042, 2.65114
-1043, 2.96639
-1044, 3.25184
-1045, 3.51028
-1046, 3.56518
-1047, 3.56651
-1048, 3.56785
-1049, 3.56919
-1050, 3.57054
-1051, 3.5719
-1052, 3.57326
-1053, 3.57463
-1054, 3.576
-1055, 3.57738
-1056, 3.57876
-1057, 3.58014
-1058, 3.58153
-1059, 3.58292
-1060, 3.58431
-1061, 3.58571
-1062, 3.5871
-1063, 3.58851
-1064, 3.58991
-1065, 3.59132
-1066, 3.59272
-1067, 3.59414
-1068, 3.59555
-1069, 3.59696
-1070, 3.59838
-1071, 3.5998
-1072, 3.60122
-1073, 3.60264
-1074, 3.60406
-1075, 3.60549
-1076, 3.60691
-1077, 3.60834
-1078, 3.60977
-1079, 3.6112
-1080, 3.61263
-1081, 3.61407
-1082, 3.6155
-1083, 3.61693
-1084, 3.61701
-1085, 3.61847
-1086, 3.61993
-1087, 3.62139
-1088, 3.62331
-1089, 3.62481
-1090, 3.62632
-1091, 3.62784
-1092, 3.62937
-1093, 3.63093
-1094, 3.6325
-1095, 3.63411
-1096, 3.63578
-1097, 3.63753
-1098, 3.63941
-1099, 3.64154
-1100, 3.64415
-1101, 3.64791
-1102, 2.52973
-1103, 1.73089
-1104, 1.00695
-1105, 0.3509
-1106, -0.243644
-1107, -0.782447
-1108, -1.27074
-1109, -1.71325
-1110, -2.11426
-1111, -2.47185
-1112, -2.80125
-1113, -3.09976
-1114, -3.37028
-1115, -3.61543
-1116, -3.527
-1117, -3.52832
-1118, -3.52966
-1119, -3.531
-1120, -3.53234
-1121, -3.5337
-1122, -3.53505
-1123, -3.53641
-1124, -3.53778
-1125, -3.53914
-1126, -3.54052
-1127, -3.54189
-1128, -3.54327
-1129, -3.54465
-1130, -3.54603
-1131, -3.54742
-1132, -3.54881
-1133, -3.5502
-1134, -3.5516
-1135, -3.55299
-1136, -3.55439
-1137, -3.55579
-1138, -3.5572
-1139, -3.5586
-1140, -3.56001
-1141, -3.56142
-1142, -3.56283
-1143, -3.56424
-1144, -3.56565
-1145, -3.56706
-1146, -3.56848
-1147, -3.5699
-1148, -3.57132
-1149, -3.57273
-1150, -3.57415
-1151, -3.57558
-1152, -3.577
-1153, -3.57707
-1154, -3.57851
-1155, -3.57996
-1156, -3.58141
-1157, -3.58332
-1158, -3.58482
-1159, -3.58632
-1160, -3.58783
-1161, -3.58936
-1162, -3.5909
-1163, -3.59248
-1164, -3.5941
-1165, -3.59577
-1166, -3.59755
-1167, -3.59949
-1168, -3.60174
-1169, -3.60463
-1170, -3.60126
-1171, -2.31885
-1172, -1.53315
-1173, -0.82174
-1174, -0.177603
-1175, 0.405629
-1176, 0.933717
-1177, 1.41187
-1178, 1.84482
-1179, 2.23089
-1180, 2.58588
-1181, 2.90731
-1182, 3.19834
-1183, 3.46184
-1184, 3.53995
-1185, 3.54127
-1186, 3.54261
-1187, 3.54394
-1188, 3.54529
-1189, 3.54663
-1190, 3.54799
-1191, 3.54934
-1192, 3.55071
-1193, 3.55207
-1194, 3.55344
-1195, 3.55482
-1196, 3.5562
-1197, 3.55758
-1198, 3.55896
-1199, 3.56035
-1200, 3.56174
-1201, 3.56313
-1202, 3.56452
-1203, 3.56592
-1204, 3.56732
-1205, 3.56872
-1206, 3.57012
-1207, 3.57153
-1208, 3.57293
-1209, 3.57434
-1210, 3.57575
-1211, 3.57716
-1212, 3.57858
-1213, 3.57999
-1214, 3.58141
-1215, 3.58283
-1216, 3.58425
-1217, 3.58567
-1218, 3.58709
-1219, 3.58851
-1220, 3.58993
-1221, 3.59136
-1222, 3.59143
-1223, 3.59288
-1224, 3.59433
-1225, 3.59578
-1226, 3.59771
-1227, 3.5992
-1228, 3.6007
-1229, 3.60222
-1230, 3.60375
-1231, 3.6053
-1232, 3.60687
-1233, 3.60849
-1234, 3.61017
-1235, 3.61195
-1236, 3.61389
-1237, 3.61613
-1238, 3.61902
-1239, 3.61566
-1240, 2.2594
-1241, 1.48591
-1242, 0.784951
-1243, 0.149711
-1244, -0.42597
-1245, -0.94768
-1246, -1.42048
-1247, -1.84895
-1248, -2.2314
-1249, -2.58335
-1250, -2.90229
-1251, -3.19133
-1252, -3.45327
-1253, -3.50602
-1254, -3.50733
-1255, -3.50866
-1256, -3.50999
-1257, -3.51133
-1258, -3.51267
-1259, -3.51401
-1260, -3.51536
-1261, -3.51672
-1262, -3.51808
-1263, -3.51944
-1264, -3.52081
-1265, -3.52217
-1266, -3.52355
-1267, -3.52492
-1268, -3.5263
-1269, -3.52768
-1270, -3.52906
-1271, -3.53045
-1272, -3.53184
-1273, -3.53323
-1274, -3.53462
-1275, -3.53601
-1276, -3.53741
-1277, -3.53881
-1278, -3.54021
-1279, -3.54161
-1280, -3.54301
-1281, -3.54441
-1282, -3.54582
-1283, -3.54723
-1284, -3.54863
-1285, -3.55004
-1286, -3.55145
-1287, -3.55286
-1288, -3.55428
-1289, -3.55569
-1290, -3.5571
-1291, -3.55718
-1292, -3.55862
-1293, -3.56006
-1294, -3.56196
-1295, -3.56344
-1296, -3.56493
-1297, -3.56643
-1298, -3.56795
-1299, -3.56948
-1300, -3.57104
-1301, -3.57264
-1302, -3.57429
-1303, -3.57603
-1304, -3.57791
-1305, -3.58005
-1306, -3.58271
-1307, -3.58664
-1308, -2.46239
-1309, -1.66311
-1310, -0.939418
-1311, -0.284154
-1312, 0.309153
-1313, 0.846362
-1314, 1.33278
-1315, 1.7732
-1316, 2.16607
-1317, 2.5272
-1318, 2.85417
-1319, 3.15023
-1320, 3.41828
-1321, 3.66099
-1322, 3.57362
-1323, 3.57495
-1324, 3.5763
-1325, 3.57765
-1326, 3.57901
-1327, 3.58037
-1328, 3.58174
-1329, 3.58311
-1330, 3.58449
-1331, 3.58587
-1332, 3.58725
-1333, 3.58864
-1334, 3.59003
-1335, 3.59143
-1336, 3.59282
-1337, 3.59422
-1338, 3.59563
-1339, 3.59703
-1340, 3.59844
-1341, 3.59985
-1342, 3.60126
-1343, 3.60268
-1344, 3.6041
-1345, 3.60552
-1346, 3.60694
-1347, 3.60836
-1348, 3.60978
-1349, 3.61121
-1350, 3.61264
-1351, 3.61406
-1352, 3.61549
-1353, 3.61693
-1354, 3.61836
-1355, 3.61979
-1356, 3.62123
-1357, 3.62266
-1358, 3.6241
-1359, 3.62554
-1360, 3.62563
-1361, 3.62709
-1362, 3.62856
-1363, 3.63046
-1364, 3.63196
-1365, 3.63347
-1366, 3.63498
-1367, 3.63651
-1368, 3.63806
-1369, 3.63962
-1370, 3.64122
-1371, 3.64285
-1372, 3.64455
-1373, 3.64636
-1374, 3.64833
-1375, 3.65064
-1376, 3.65363
-1377, 3.65048
-1378, 2.21046
-1379, 1.44156
-1380, 0.744754
-1381, 0.113283
-1382, -0.458983
-1383, -0.977598
-1384, -1.44759
-1385, -1.87352
-1386, -2.25364
-1387, -2.6035
-1388, -2.92056
-1389, -3.20788
-1390, -3.46826
-1391, -3.49667
-1392, -3.49799
-1393, -3.49931
-1394, -3.50064
-1395, -3.50197
-1396, -3.50331
-1397, -3.50466
-1398, -3.506
-1399, -3.50736
-1400, -3.50871
-1401, -3.51007
-1402, -3.51143
-1403, -3.5128
-1404, -3.51417
-1405, -3.51554
-1406, -3.51692
-1407, -3.51829
-1408, -3.51967
-1409, -3.52106
-1410, -3.52244
-1411, -3.52383
-1412, -3.52522
-1413, -3.52661
-1414, -3.528
-1415, -3.52939
-1416, -3.53079
-1417, -3.53219
-1418, -3.53358
-1419, -3.53499
-1420, -3.53639
-1421, -3.53779
-1422, -3.53919
-1423, -3.5406
-1424, -3.54201
-1425, -3.54341
-1426, -3.54482
-1427, -3.54623
-1428, -3.54764
-1429, -3.54773
-1430, -3.54916
-1431, -3.5506
-1432, -3.5525
-1433, -3.55398
-1434, -3.55547
-1435, -3.55697
-1436, -3.55849
-1437, -3.56002
-1438, -3.56159
-1439, -3.56319
-1440, -3.56486
-1441, -3.56663
-1442, -3.56857
-1443, -3.57082
-1444, -3.57373
-1445, -3.57038
-1446, -2.20434
-1447, -1.42946
-1448, -0.727862
-1449, -0.0926017
-1450, 0.482593
-1451, 1.0034
-1452, 1.47497
-1453, 1.90195
-1454, 2.28266
-1455, 2.63276
-1456, 2.94975
-1457, 3.23677
-1458, 3.49664
-1459, 3.57501
-1460, 3.57635
-1461, 3.57769
-1462, 3.57904
-1463, 3.58039
-1464, 3.58175
-1465, 3.58311
-1466, 3.58448
-1467, 3.58586
-1468, 3.58724
-1469, 3.58862
-1470, 3.59
-1471, 3.59139
-1472, 3.59279
-1473, 3.59418
-1474, 3.59558
-1475, 3.59699
-1476, 3.59839
-1477, 3.5998
-1478, 3.60121
-1479, 3.60262
-1480, 3.60403
-1481, 3.60545
-1482, 3.60687
-1483, 3.60829
-1484, 3.60971
-1485, 3.61113
-1486, 3.61256
-1487, 3.61399
-1488, 3.61542
-1489, 3.61685
-1490, 3.61828
-1491, 3.61971
-1492, 3.62114
-1493, 3.62258
-1494, 3.62402
-1495, 3.62545
-1496, 3.62689
-1497, 3.62833
-1498, 3.62843
-1499, 3.62989
+0, 0, 0, -38.5887
+1, 0, 0, 4.93339
+2, 0, 0, 0.0160904
+3, 0, 0, 0.00161377
+4, 0, 0, 0.00322125
+5, 0, 0, 0.00322125
+6, 0, 0, 0.00322125
+7, 0, 0, 0.00322125
+8, 0, 0, 0.00322125
+9, 0, 0, 0.00322125
+10, 0, 0, 0.00322125
+11, 0, 0, 0.00322125
+12, 0, 0, 0.00322125
+13, 0, 0, 0.00322125
+14, 0, 0, 0.00322125
+15, 0, 0, 0.00322125
+16, 0, 0, 0.00322125
+17, 0, 0, 0.00322125
+18, 0, 0, 0.00322125
+19, 0, 0, 0.00322125
+20, 0, 0, 0.00322125
+21, 0, 0, 0.00322125
+22, 0, 0, 0.00322125
+23, 0, 0, 0.00322125
+24, 0, 0, 0.00322125
+25, 0, 0, 0.00322125
+26, 0, 0, 0.00322125
+27, 0, 0, 0.00322125
+28, 0, 0, 0.00322125
+29, 0, 0, 0.00322125
+30, 0, 0, 0.00322125
+31, 0, 0, 0.00322125
+32, 0, 0, 0.00322125
+33, 0, 0, 0.00322125
+34, 0, 0, 0.00322125
+35, 0, 0, 0.00322125
+36, 0, 0, 0.00322125
+37, 0, 0, 0.00322125
+38, 0, 0, 0.00322125
+39, 0, 0, 0.00322125
+40, 0, 0, 0.00322125
+41, 0, 0, 0.00322125
+42, 0, 0, 0.00322125
+43, 0, 0, 0.00322125
+44, 0, 0, 0.00322125
+45, 0, 0, 0.00322125
+46, 0, 0, 0.00322125
+47, 0, 0, 0.00322125
+48, 0, 0, 0.00322125
+49, 0, 0, 0.00322125
+50, 0, 0, 0.00322125
+51, 0, 0, 0.00322125
+52, 0, 0, 0.00322125
+53, 0, 0, 0.00322125
+54, 0, 0, 0.00322125
+55, 0, 0, 0.00322125
+56, 0, 0, 0.00322125
+57, 0, 0, 0.00322125
+58, 0, 0, 0.00322125
+59, 0, 0, 0.00322125
+60, 0, 0, 0.00322125
+61, 0, 0, 0.00322125
+62, 0, 0, 0.00322125
+63, 0, 0, 0.00322125
+64, 0, 0, 0.00322125
+65, 0, 0, 0.00322125
+66, 0, 0, 0.00322125
+67, 0, 0, 0.00322125
+68, 0, 0, 0.00322125
+69, 0, 0, 0.00322125
+70, 0, 0, 0.00322125
+71, 0, 0, 0.00322125
+72, 0, 0, 0.00322125
+73, 0, 0, 0.00322125
+74, 0, 0, 0.00322125
+75, 0, 0, 0.00322125
+76, 0, 0, 0.00322125
+77, 0, 0, 0.00322125
+78, 0, 0, 0.00322125
+79, 0, 0, 0.00322125
+80, 0, 0, 0.00322125
+81, 0, 0, 0.00322125
+82, 0, 0, 0.00322125
+83, 0, 0, 0.00322125
+84, 0, 0, 0.00322125
+85, 0, 0, 0.00322125
+86, 0, 0, 0.00322125
+87, 0, 0, 0.00322125
+88, 0, 0, 0.00322125
+89, 0, 0, 0.00322125
+90, 0, 0, 0.00322125
+91, 0, 0, 0.00322125
+92, 0, 0, 0.00322125
+93, 0, 0, 0.00322125
+94, 0, 0, 0.00322125
+95, 0, 0, 0.00322125
+96, 0, 0, 0.00322125
+97, 0, 0, 0.00322125
+98, 0, 0, 0.00322125
+99, 0, 0, 0.00322125
+100, 0, 0, 0.00322125
+101, 0, 0, 0.00322125
+102, 0, 0, 0.00322125
+103, 0, 0, 0.00322125
+104, 0, 0, 0.00322125
+105, 0, 0, 0.00322125
+106, 0, 0, 0.00322125
+107, 0, 0, 0.00322125
+108, 0, 0, 0.00322125
+109, 0, 0, 0.00322125
+110, 0, 0, 0.00322125
+111, 0, 0, 0.00322125
+112, 0, 0, 0.00322125
+113, 0, 0, 0.00322125
+114, 0, 0, 0.00322125
+115, 0, 0, 0.00322125
+116, 0, 0, 0.00322125
+117, 0, 0, 0.00322125
+118, 0, 0, 0.00322125
+119, 0, 0, 0.00322125
+120, 0, 0, 0.00322125
+121, 0, 0, 0.00322125
+122, 0, 0, 0.00322125
+123, 0, 0, 0.00322125
+124, 0, 0, 0.00322125
+125, 0, 0, 0.00322125
+126, 0, 0, 0.00322125
+127, 0, 0, 0.00322125
+128, 0, 0, 0.00322125
+129, 0, 0, 0.00322125
+130, 0, 0, 0.00322125
+131, 0, 0, 0.00322125
+132, 0, 0, 0.00322125
+133, 0, 0, 0.00322125
+134, 0, 0, 0.00322125
+135, 0, 0, 0.00322125
+136, 0, 0, 0.00322125
+137, 0, 0, 0.00322125
+138, 0, 0, 0.00322125
+139, 0, 0, 0.00322125
+140, 0, 0, 0.00322125
+141, 0, 0, 0.00322125
+142, 0, 0, 0.00322125
+143, 0, 0, 0.00322125
+144, 0, 0, 0.00322125
+145, 0, 0, 0.00322125
+146, 0, 0, 0.00322125
+147, 0, 0, 0.00322125
+148, 0, 0, 0.00322125
+149, 0, 0, 0.00322125
+150, 0, 0, 0.00322125
+151, 0, 0, 0.00322125
+152, 0, 0, 0.00322125
+153, 0, 0, 0.00322125
+154, 0, 0, 0.00322125
+155, 0, 0, 0.00322125
+156, 0, 0, 0.00322125
+157, 0, 0, 0.00322125
+158, 0, 0, 0.00322125
+159, 0, 0, 0.00322125
+160, 0, 0, 0.00322125
+161, 0, 0, 0.00322125
+162, 0, 0, 0.00322125
+163, 0, 0, 0.00322125
+164, 0, 0, 0.00322125
+165, 0, 0, 0.00322125
+166, 0, 0, 0.00322125
+167, 0, 0, 0.00322125
+168, 0, 0, 0.00322125
+169, 0, 0, 0.00322125
+170, 0, 0, 0.00322125
+171, 0, 0, 0.00322125
+172, 0, 0, 0.00322125
+173, 0, 0, 0.00322125
+174, 0, 0, 0.00322125
+175, 0, 0, 0.00322125
+176, 0, 0, 0.00322125
+177, 0, 0, 0.00322125
+178, 0, 0, 0.00322125
+179, 0, 0, 0.00322125
+180, 0, 0, 0.00322125
+181, 0, 0, 0.00322125
+182, 0, 0, 0.00322125
+183, 0, 0, 0.00322125
+184, 0, 0, 0.00322125
+185, 0, 0, 0.00322125
+186, 0, 0, 0.00322125
+187, 0, 0, 0.00322125
+188, 0, 0, 0.00322125
+189, 0, 0, 0.00322125
+190, 0, 0, 0.00322125
+191, 0, 0, 0.00322125
+192, 0, 0, 0.00322125
+193, 0, 0, 0.00322125
+194, 0, 0, 0.00322125
+195, 0, 0, 0.00322125
+196, 0, 0, 0.00322125
+197, 0, 0, 0.00322125
+198, 0, 0, 0.00322125
+199, 0, 0, 0.00322125
+200, 0, 0, 0.00322125
+201, 0, 0, 0.00322125
+202, 0, 0, 0.00322125
+203, 0, 0, 0.00322125
+204, 0, 0, 0.00322125
+205, 0, 0, 0.00322125
+206, 0, 0, 0.00322125
+207, 0, 0, 0.00322125
+208, 0, 0, 0.00322125
+209, 0, 0, 0.00322125
+210, 0, 0, 0.00322125
+211, 0, 0, 0.00322125
+212, 0, 0, 0.00322125
+213, 0, 0, 0.00322125
+214, 0, 0, 0.00322125
+215, 0, 0, 0.00322125
+216, 0, 0, 0.00322125
+217, 0, 0, 0.00322125
+218, 0, 0, 0.00322125
+219, 0, 0, 0.00322125
+220, 0, 0, 0.00322125
+221, 0, 0, 0.00322125
+222, 0, 0, 0.00322125
+223, 0, 0, 0.00322125
+224, 0, 0, 0.00322125
+225, 0, 0, 0.00322125
+226, 0, 0, 0.00322125
+227, 0, 0, 0.00322125
+228, 0, 0, 0.00322125
+229, 0, 0, 0.00322125
+230, 0, 0, 0.00322125
+231, 0, 0, 0.00322125
+232, 0, 0, 0.00322125
+233, 0, 0, 0.00322125
+234, 0, 0, 0.00322125
+235, 0, 0, 0.00322125
+236, 0, 0, 0.00322125
+237, 0, 0, 0.00322125
+238, 0, 0, 0.00322125
+239, 0, 0, 0.00322125
+240, 0, 0, 0.00322125
+241, 0, 0, 0.00322125
+242, 0, 0, 0.00322125
+243, 0, 0, 0.00322125
+244, 0, 0, 0.00322125
+245, 0, 0, 0.00322125
+246, 0, 0, 0.00322125
+247, 0, 0, 0.00322125
+248, 0, 0, 0.00322125
+249, 0, 0, 0.00322125
+250, 0, 0, 0.00322125
+251, 0, 0, 0.00322125
+252, 0, 0, 0.00322125
+253, 0, 0, 0.00322125
+254, 0, 0, 0.00322125
+255, 0, 0, 0.00322125
+256, 0, 0, 0.00322125
+257, 0, 0, 0.00322125
+258, 0, 0, 0.00322125
+259, 0, 0, 0.00322125
+260, 0, 0, 0.00322125
+261, 0, 0, 0.00322125
+262, 0, 0, 0.00322125
+263, 0, 0, 0.00322125
+264, 0, 0, 0.00322125
+265, 0, 0, 0.00322125
+266, 0, 0, 0.00322125
+267, 0, 0, 0.00322125
+268, 0, 0, 0.00322125
+269, 0, 0, 0.00322125
+270, 0, 0, 0.00322125
+271, 0, 0, 0.00322125
+272, 0, 0, 0.00322125
+273, 0, 0, 0.00322125
+274, 0, 0, 0.00322125
+275, 0, 0, 0.00322125
+276, 0, 0, 0.00322125
+277, 0, 0, 0.00322125
+278, 0, 0, 0.00322125
+279, 0, 0, 0.00322125
+280, 0, 0, 0.00322125
+281, 0, 0, 0.00322125
+282, 0, 0, 0.00322125
+283, 0, 0, 0.00322125
+284, 0, 0, 0.00322125
+285, 0, 0, 0.00322125
+286, 0, 0, 0.00322125
+287, 0, 0, 0.00322125
+288, 0, 0, 0.00322125
+289, 0, 0, 0.00322125
+290, 0, 0, 0.00322125
+291, 0, 0, 0.00322125
+292, 0, 0, 0.00322125
+293, 0, 0, 0.00322125
+294, 0, 0, 0.00322125
+295, 0, 0, 0.00322125
+296, 0, 0, 0.00322125
+297, 0, 0, 0.00322125
+298, 0, 0, 0.00322125
+299, 0, 0, 0.00322125
+300, 0, 0, 0.00322125
+301, 0, 0, 0.00322125
+302, 0, 0, 0.00322125
+303, 0, 0, 0.00322125
+304, 0, 0, 0.00322125
+305, 0, 0, 0.00322125
+306, 0, 0, 0.00322125
+307, 0, 0, 0.00322125
+308, 0, 0, 0.00322125
+309, 0, 0, 0.00322125
+310, 0, 0, 0.00322125
+311, 0, 0, 0.00322125
+312, 0, 0, 0.00322125
+313, 0, 0, 0.00322125
+314, 0, 0, 0.00322125
+315, 0, 0, 0.00322125
+316, 0, 0, 0.00322125
+317, 0, 0, 0.00322125
+318, 0, 0, 0.00322125
+319, 0, 0, 0.00322125
+320, 0, 0, 0.00322125
+321, 0, 0, 0.00322125
+322, 0, 0, 0.00322125
+323, 0, 0, 0.00322125
+324, 0, 0, 0.00322125
+325, 0, 0, 0.00322125
+326, 0, 0, 0.00322125
+327, 0, 0, 0.00322125
+328, 0, 0, 0.00322125
+329, 0, 0, 0.00322125
+330, 0, 0, 0.00322125
+331, 0, 0, 0.00322125
+332, 0, 0, 0.00322125
+333, 0, 0, 0.00322125
+334, 0, 0, 0.00322125
+335, 0, 0, 0.00322125
+336, 0, 0, 0.00322125
+337, 0, 0, 0.00322125
+338, 0, 0, 0.00322125
+339, 0, 0, 0.00322125
+340, 0, 0, 0.00322125
+341, 0, 0, 0.00322125
+342, 0, 0, 0.00322125
+343, 0, 0, 0.00322125
+344, 0, 0, 0.00322125
+345, 0, 0, 0.00322125
+346, 0, 0, 0.00322125
+347, 0, 0, 0.00322125
+348, 0, 0, 0.00322125
+349, 0, 0, 0.00322125
+350, 0, 0, 0.00322125
+351, 0, 0, 0.00322125
+352, 0, 0, 0.00322125
+353, 0, 0, 0.00322125
+354, 0, 0, 0.00322125
+355, 0, 0, 0.00322125
+356, 0, 0, 0.00322125
+357, 0, 0, 0.00322125
+358, 0, 0, 0.00322125
+359, 0, 0, 0.00322125
+360, 0, 0, 0.00322125
+361, 0, 0, 0.00322125
+362, 0, 0, 0.00322125
+363, 0, 0, 0.00322125
+364, 0, 0, 0.00322125
+365, 0, 0, 0.00322125
+366, 0, 0, 0.00322125
+367, 0, 0, 0.00322125
+368, 0, 0, 0.00322125
+369, 0, 0, 0.00322125
+370, 0, 0, 0.00322125
+371, 0, 0, 0.00322125
+372, 0, 0, 0.00322125
+373, 0, 0, 0.00322125
+374, 0, 0, 0.00322125
+375, 0, 0, 0.00322125
+376, 0, 0, 0.00322125
+377, 0, 0, 0.00322125
+378, 0, 0, 0.00322125
+379, 0, 0, 0.00322125
+380, 0, 0, 0.00322125
+381, 0, 0, 0.00322125
+382, 0, 0, 0.00322125
+383, 0, 0, 0.00322125
+384, 0, 0, 0.00322125
+385, 0, 0, 0.00322125
+386, 0, 0, 0.00322125
+387, 0, 0, 0.00322125
+388, 0, 0, 0.00322125
+389, 0, 0, 0.00322125
+390, 0, 0, 0.00322125
+391, 0, 0, 0.00322125
+392, 0, 0, 0.00322125
+393, 0, 0, 0.00322125
+394, 0, 0, 0.00322125
+395, 0, 0, 0.00322125
+396, 0, 0, 0.00322125
+397, 0, 0, 0.00322125
+398, 0, 0, 0.00322125
+399, 0, 0, 0.00322125
+400, 0, 5, 0.00322125
+401, 0, 5, 0.00322125
+402, 0, 5, 0.00322125
+403, 0, 5, 0.0031559
+404, 0, 5, 0.00322125
+405, 0, 5, 0.0031559
+406, 0, 5, 0.00322125
+407, 0, 5, 0.00322125
+408, 0, 5, 0.0017137
+409, 0, 5, 0.00161377
+410, 0, 5, 0.00161377
+411, 0, 5, 0.00315082
+412, 0, 5, 0.00322125
+413, 0, 5, 0.00322125
+414, 0, 5, 0.00322125
+415, 0, 5, 0.00322125
+416, 0, 5, 0.00322125
+417, 0, 5, 0.00322125
+418, 0, 5, 0.00322125
+419, 0, 5, 0.00322125
+420, 0, 5, 0.00322125
+421, 0, 5, 0.00322125
+422, 0, 5, 0.00322125
+423, 0, 5, 0.00322125
+424, 0, 5, 0.00322125
+425, 0, 5, 0.00322125
+426, 0, 5, 0.00322125
+427, 0, 5, 0.00322125
+428, 0, 5, 0.00322125
+429, 0, 5, 0.00322125
+430, 0, 5, 0.00322125
+431, 0, 5, 0.00322125
+432, 0, 5, 0.00322125
+433, 0, 5, 0.00322125
+434, 0, 5, 0.00322125
+435, 0, 5, 0.00322125
+436, 0, 5, 0.00322125
+437, 0, 5, 0.00322125
+438, 0, 5, 0.00322125
+439, 0, 5, 0.00322125
+440, 0, 5, 0.00322125
+441, 0, 5, 0.00322125
+442, 0, 5, 0.00322125
+443, 0, 5, 0.00322125
+444, 0, 5, 0.00322125
+445, 0, 5, 0.00322125
+446, 0, 5, 0.00322125
+447, 0, 5, 0.00322125
+448, 0, 5, 0.00322125
+449, 0, 5, 0.00322125
+450, 0, 5, 0.00322125
+451, 0, 5, 0.00322125
+452, 0, 5, 0.00322125
+453, 0, 5, 0.00322125
+454, 0, 5, 0.00322125
+455, 0, 5, 0.00322125
+456, 0, 5, 0.00322125
+457, 0, 5, 0.00322125
+458, 0, 5, 0.00322125
+459, 0, 5, 0.00322125
+460, 0, 5, 0.00322125
+461, 0, 5, 0.00322125
+462, 0, 5, 0.00322125
+463, 0, 5, 0.00322125
+464, 0, 5, 0.00322125
+465, 0, 5, 0.00322125
+466, 0, 5, 0.00322125
+467, 0, 5, 0.00322125
+468, 0, 5, 0.00322125
+469, 0, 5, 0.00322125
+470, 0, 5, 0.00322125
+471, 0, 5, 0.00322125
+472, 0, 5, 0.00322125
+473, 0, 5, 0.00322125
+474, 0, 5, 0.00322125
+475, 0, 5, 0.00322125
+476, 0, 5, 0.00322125
+477, 0, 5, 0.00322125
+478, 0, 5, 0.00322125
+479, 0, 5, 0.00322125
+480, 0, 5, 0.00322125
+481, 0, 5, 0.00322125
+482, 0, 5, 0.00322125
+483, 0, 5, 0.00322125
+484, 0, 5, 0.00322125
+485, 0, 5, 0.00322125
+486, 0, 5, 0.00322125
+487, 0, 5, 0.00322125
+488, 0, 5, 0.00322125
+489, 0, 5, 0.00322125
+490, 0, 5, 0.00322125
+491, 0, 5, 0.00322125
+492, 0, 5, 0.00322125
+493, 0, 5, 0.00322125
+494, 0, 5, 0.00322125
+495, 0, 5, 0.00322125
+496, 0, 5, 0.00322125
+497, 0, 5, 0.00322125
+498, 0, 5, 0.00322125
+499, 0, 5, 0.00322125
+500, 0, 5, 0.00322125
+501, 0, 5, 0.00322125
+502, 0, 5, 0.00322125
+503, 0, 5, 0.00322125
+504, 0, 5, 0.00322125
+505, 0, 5, 0.00322125
+506, 0, 5, 0.00322125
+507, 0, 5, 0.00322125
+508, 0, 5, 0.00322125
+509, 0, 5, 0.00322125
+510, 0, 5, 0.00322125
+511, 0, 5, 0.00322125
+512, 0, 5, 0.00322125
+513, 0, 5, 0.00322125
+514, 0, 5, 0.00322125
+515, 0, 5, 0.00322125
+516, 0, 5, 0.00322125
+517, 0, 5, 0.00322125
+518, 0, 5, 0.00322125
+519, 0, 5, 0.00322125
+520, 0, 5, 0.00322125
+521, 0, 5, 0.00322125
+522, 0, 5, 0.00322125
+523, 0, 5, 0.00322125
+524, 0, 5, 0.00322125
+525, 0, 5, 0.00322125
+526, 0, 5, 0.00322125
+527, 0, 5, 0.00322125
+528, 0, 5, 0.00322125
+529, 0, 5, 0.00322125
+530, 0, 5, 0.00322125
+531, 0, 5, 0.00322125
+532, 0, 5, 0.00322125
+533, 0, 5, 0.00322125
+534, 0, 5, 0.00322125
+535, 0, 5, 0.00322125
+536, 0, 5, 0.00322125
+537, 0, 5, 0.00322125
+538, 0, 5, 0.00322125
+539, 0, 5, 0.00322125
+540, 0, 5, 0.00322125
+541, 0, 5, 0.00322125
+542, 0, 5, 0.00322125
+543, 0, 5, 0.00322125
+544, 0, 5, 0.00322125
+545, 0, 5, 0.00322125
+546, 0, 5, 0.00322125
+547, 0, 5, 0.00322125
+548, 0, 5, 0.00322125
+549, 0, 5, 0.00322125
+550, 0, 5, 0.00322125
+551, 0, 5, 0.00322125
+552, 0, 5, 0.00322125
+553, 0, 5, 0.00322125
+554, 0, 5, 0.00322125
+555, 0, 5, 0.00322125
+556, 0, 5, 0.00322125
+557, 0, 5, 0.00322125
+558, 0, 5, 0.00322125
+559, 0, 5, 0.00322125
+560, 0, 5, 0.00322125
+561, 0, 5, 0.00322125
+562, 0, 5, 0.00322125
+563, 0, 5, 0.00322125
+564, 0, 5, 0.00322125
+565, 0, 5, 0.00322125
+566, 0, 5, 0.00322125
+567, 0, 5, 0.00322125
+568, 0, 5, 0.00322125
+569, 0, 5, 0.00322125
+570, 0, 5, 0.00322125
+571, 0, 5, 0.00322125
+572, 0, 5, 0.00322125
+573, 0, 5, 0.00322125
+574, 0, 5, 0.00322125
+575, 0, 5, 0.00322125
+576, 0, 5, 0.00322125
+577, 0, 5, 0.00322125
+578, 0, 5, 0.00322125
+579, 0, 5, 0.00322125
+580, 0, 5, 0.00322125
+581, 0, 5, 0.00322125
+582, 0, 5, 0.00322125
+583, 0, 5, 0.00322125
+584, 0, 5, 0.00322125
+585, 0, 5, 0.00322125
+586, 0, 5, 0.00322125
+587, 0, 5, 0.00322125
+588, 0, 5, 0.00322125
+589, 0, 5, 0.00322125
+590, 0, 5, 0.00322125
+591, 0, 5, 0.00322125
+592, 0, 5, 0.00322125
+593, 0, 5, 0.00322125
+594, 0, 5, 0.00322125
+595, 0, 5, 0.00322125
+596, 0, 5, 0.00322125
+597, 0, 5, 0.00322125
+598, 0, 5, 0.00322125
+599, 0, 5, 0.00322125
+600, 0, 5, 0.00322125
+601, 0, 5, 0.00322125
+602, 0, 5, 0.00322125
+603, 0, 5, 0.00322125
+604, 0, 5, 0.00322125
+605, 0, 5, 0.00322125
+606, 0, 5, 0.00322125
+607, 0, 5, 0.00322125
+608, 0, 5, 0.00322125
+609, 0, 5, 0.00322125
+610, 0, 5, 0.00322125
+611, 0, 5, 0.00322125
+612, 0, 5, 0.00322125
+613, 0, 5, 0.00322125
+614, 0, 5, 0.00322125
+615, 0, 5, 0.00322125
+616, 0, 5, 0.00322125
+617, 0, 5, 0.00322125
+618, 0, 5, 0.00322125
+619, 0, 5, 0.00322125
+620, 0, 5, 0.00322125
+621, 0, 5, 0.00322125
+622, 0, 5, 0.00322125
+623, 0, 5, 0.00322125
+624, 0, 5, 0.00322125
+625, 0, 5, 0.00322125
+626, 0, 5, 0.00322125
+627, 0, 5, 0.00322125
+628, 0, 5, 0.00322125
+629, 0, 5, 0.00322125
+630, 0, 5, 0.00322125
+631, 0, 5, 0.00322125
+632, 0, 5, 0.00322125
+633, 0, 5, 0.00322125
+634, 0, 5, 0.00322125
+635, 0, 5, 0.00322125
+636, 0, 5, 0.00322125
+637, 0, 5, 0.00322125
+638, 0, 5, 0.00322125
+639, 0, 5, 0.00322125
+640, 0, 5, 0.00322125
+641, 0, 5, 0.00322125
+642, 0, 5, 0.00322125
+643, 0, 5, 0.00322125
+644, 0, 5, 0.00322125
+645, 0, 5, 0.00322125
+646, 0, 5, 0.00322125
+647, 0, 5, 0.00322125
+648, 0, 5, 0.00322125
+649, 0, 5, 0.00322125
+650, 0, 5, 0.00322125
+651, 0, 5, 0.00322125
+652, 0, 5, 0.00322125
+653, 0, 5, 0.00322125
+654, 0, 5, 0.00322125
+655, 0, 5, 0.00322125
+656, 0, 5, 0.00322125
+657, 0, 5, 0.00322125
+658, 0, 5, 0.00322125
+659, 0, 5, 0.00322125
+660, 0, 5, 0.00322125
+661, 0, 5, 0.00322125
+662, 0, 5, 0.00322125
+663, 0, 5, 0.00322125
+664, 0, 5, 0.00322125
+665, 0, 5, 0.00322125
+666, 0, 5, 0.00322125
+667, 0, 5, 0.00322125
+668, 0, 5, 0.00322125
+669, 0, 5, 0.00322125
+670, 0, 5, 0.00322125
+671, 0, 5, 0.00322125
+672, 0, 5, 0.00322125
+673, 0, 5, 0.00322125
+674, 0, 5, 0.00322125
+675, 0, 5, 0.00322125
+676, 0, 5, 0.00322125
+677, 0, 5, 0.00322125
+678, 0, 5, 0.00322125
+679, 0, 5, 0.00322125
+680, 0, 5, 0.00322125
+681, 0, 5, 0.00322125
+682, 0, 5, 0.00322125
+683, 0, 5, 0.00322125
+684, 0, 5, 0.00322125
+685, 0, 5, 0.00322125
+686, 0, 5, 0.00322125
+687, 0, 5, 0.00322125
+688, 0, 5, 0.00322125
+689, 0, 5, 0.00322125
+690, 0, 5, 0.00322125
+691, 0, 5, 0.00322125
+692, 0, 5, 0.00322125
+693, 0, 5, 0.00322125
+694, 0, 5, 0.00322125
+695, 0, 5, 0.00322125
+696, 0, 5, 0.00322125
+697, 0, 5, 0.00322125
+698, 0, 5, 0.00322125
+699, 0, 5, 0.00322125
+700, 0, 5, 0.00322125
+701, 0, 5, 0.00322125
+702, 0, 5, 0.00322125
+703, 0, 5, 0.00322125
+704, 0, 5, 0.00322125
+705, 0, 5, 0.00322125
+706, 0, 5, 0.00322125
+707, 0, 5, 0.00322125
+708, 0, 5, 0.00322125
+709, 0, 5, 0.00322125
+710, 0, 5, 0.00322125
+711, 0, 5, 0.00322125
+712, 0, 5, 0.00322125
+713, 0, 5, 0.00322125
+714, 0, 5, 0.00322125
+715, 0, 5, 0.00322125
+716, 0, 5, 0.00322125
+717, 0, 5, 0.00322125
+718, 0, 5, 0.00322125
+719, 0, 5, 0.00322125
+720, 0, 5, 0.00322125
+721, 0, 5, 0.00322125
+722, 0, 5, 0.00322125
+723, 0, 5, 0.00322125
+724, 0, 5, 0.00322125
+725, 0, 5, 0.00322125
+726, 0, 5, 0.00322125
+727, 0, 5, 0.00322125
+728, 0, 5, 0.00322125
+729, 0, 5, 0.00322125
+730, 0, 5, 0.00322125
+731, 0, 5, 0.00322125
+732, 0, 5, 0.00322125
+733, 0, 5, 0.00322125
+734, 0, 5, 0.00322125
+735, 0, 5, 0.00322125
+736, 0, 5, 0.00322125
+737, 0, 5, 0.00322125
+738, 0, 5, 0.00322125
+739, 0, 5, 0.00322125
+740, 0, 5, 0.00322125
+741, 0, 5, 0.00322125
+742, 0, 5, 0.00322125
+743, 0, 5, 0.00322125
+744, 0, 5, 0.00322125
+745, 0, 5, 0.00322125
+746, 0, 5, 0.00322125
+747, 0, 5, 0.00322125
+748, 0, 5, 0.00322125
+749, 0, 5, 0.00322125
+750, 0, 5, 0.00322125
+751, 0, 5, 0.00322125
+752, 0, 5, 0.00322125
+753, 0, 5, 0.00322125
+754, 0, 5, 0.00322125
+755, 0, 5, 0.00322125
+756, 0, 5, 0.00322125
+757, 0, 5, 0.00322125
+758, 0, 5, 0.00322125
+759, 0, 5, 0.00322125
+760, 0, 5, 0.00322125
+761, 0, 5, 0.00322125
+762, 0, 5, 0.00322125
+763, 0, 5, 0.00322125
+764, 0, 5, 0.00322125
+765, 0, 5, 0.00322125
+766, 0, 5, 0.00322125
+767, 0, 5, 0.00322125
+768, 0, 5, 0.00322125
+769, 0, 5, 0.00322125
+770, 0, 5, 0.00322125
+771, 0, 5, 0.00322125
+772, 0, 5, 0.00322125
+773, 0, 5, 0.00322125
+774, 0, 5, 0.00322125
+775, 0, 5, 0.00322125
+776, 0, 5, 0.00322125
+777, 0, 5, 0.00322125
+778, 0, 5, 0.00322125
+779, 0, 5, 0.00322125
+780, 0, 5, 0.00322125
+781, 0, 5, 0.00322125
+782, 0, 5, 0.00322125
+783, 0, 5, 0.00322125
+784, 0, 5, 0.00322125
+785, 0, 5, 0.00322125
+786, 0, 5, 0.00322125
+787, 0, 5, 0.00322125
+788, 0, 5, 0.00322125
+789, 0, 5, 0.00322125
+790, 0, 5, 0.00322125
+791, 0, 5, 0.00322125
+792, 0, 5, 0.00322125
+793, 0, 5, 0.00322125
+794, 0, 5, 0.00322125
+795, 0, 5, 0.00322125
+796, 0, 5, 0.00322125
+797, 0, 5, 0.00322125
+798, 0, 5, 0.00322125
+799, 0, 5, 0.00322125
+800, 5, 0, 0.00322125
+801, 5, 0, 0.00322125
+802, 5, 0, 0.00322125
+803, 5, 0, 0.00322125
+804, 5, 0, 0.00322125
+805, 5, 0, 0.00322125
+806, 5, 0, 0.00322125
+807, 5, 0, 0.00322125
+808, 5, 0, 0.00322125
+809, 5, 0, 0.00322125
+810, 5, 0, 0.00322125
+811, 5, 0, 0.00322125
+812, 5, 0, 0.00322125
+813, 5, 0, 0.00322125
+814, 5, 0, 0.00322125
+815, 5, 0, 0.00322125
+816, 5, 0, 0.00322125
+817, 5, 0, 0.00322125
+818, 5, 0, 0.00322125
+819, 5, 0, 0.00322125
+820, 5, 0, 0.00322125
+821, 5, 0, 0.00322125
+822, 5, 0, 0.00322125
+823, 5, 0, 0.0031559
+824, 5, 0, 0.00322125
+825, 5, 0, 0.00322125
+826, 5, 0, 0.00322125
+827, 5, 0, 0.00322125
+828, 5, 0, 0.00322125
+829, 5, 0, 0.00322125
+830, 5, 0, 0.00322125
+831, 5, 0, 0.00322125
+832, 5, 0, 0.00322125
+833, 5, 0, 0.00322125
+834, 5, 0, 0.00322125
+835, 5, 0, 0.00322125
+836, 5, 0, 0.00322125
+837, 5, 0, 0.00322125
+838, 5, 0, 0.00322125
+839, 5, 0, 0.00322125
+840, 5, 0, 0.00322125
+841, 5, 0, 0.00322125
+842, 5, 0, 0.00322125
+843, 5, 0, 0.00322125
+844, 5, 0, 0.00322125
+845, 5, 0, 0.00322125
+846, 5, 0, 0.00322125
+847, 5, 0, 0.00322125
+848, 5, 0, 0.00322125
+849, 5, 0, 0.00322125
+850, 5, 0, 0.00322125
+851, 5, 0, 0.00322125
+852, 5, 0, 0.00322125
+853, 5, 0, 0.00322125
+854, 5, 0, 0.00322125
+855, 5, 0, 0.00322125
+856, 5, 0, 0.00322125
+857, 5, 0, 0.00322125
+858, 5, 0, 0.00322125
+859, 5, 0, 0.00322125
+860, 5, 0, 0.00322125
+861, 5, 0, 0.00322125
+862, 5, 0, 0.00322125
+863, 5, 0, 0.00322125
+864, 5, 0, 0.00322125
+865, 5, 0, 0.00322125
+866, 5, 0, 0.00322125
+867, 5, 0, 0.00322125
+868, 5, 0, 0.00322125
+869, 5, 0, 0.00322125
+870, 5, 0, 0.00322125
+871, 5, 0, 0.00322125
+872, 5, 0, 0.00322125
+873, 5, 0, 0.00322125
+874, 5, 0, 0.00322125
+875, 5, 0, 0.00322125
+876, 5, 0, 0.00322125
+877, 5, 0, 0.00322125
+878, 5, 0, 0.00322125
+879, 5, 0, 0.00322125
+880, 5, 0, 0.00322125
+881, 5, 0, 0.00322125
+882, 5, 0, 0.00322125
+883, 5, 0, 0.00322125
+884, 5, 0, 0.00322125
+885, 5, 0, 0.00322125
+886, 5, 0, 0.00322125
+887, 5, 0, 0.00322125
+888, 5, 0, 0.00322125
+889, 5, 0, 0.00322125
+890, 5, 0, 0.00322125
+891, 5, 0, 0.00322125
+892, 5, 0, 0.00322125
+893, 5, 0, 0.00322125
+894, 5, 0, 0.00322125
+895, 5, 0, 0.00322125
+896, 5, 0, 0.00322125
+897, 5, 0, 0.00322125
+898, 5, 0, 0.00322125
+899, 5, 0, 0.00322125
+900, 5, 0, 0.00322125
+901, 5, 0, 0.00322125
+902, 5, 0, 0.00322125
+903, 5, 0, 0.00322125
+904, 5, 0, 0.00322125
+905, 5, 0, 0.00322125
+906, 5, 0, 0.00322125
+907, 5, 0, 0.00322125
+908, 5, 0, 0.00322125
+909, 5, 0, 0.00322125
+910, 5, 0, 0.00322125
+911, 5, 0, 0.00322125
+912, 5, 0, 0.00322125
+913, 5, 0, 0.00322125
+914, 5, 0, 0.00322125
+915, 5, 0, 0.00322125
+916, 5, 0, 0.00322125
+917, 5, 0, 0.00322125
+918, 5, 0, 0.00322125
+919, 5, 0, 0.00322125
+920, 5, 0, 0.00322125
+921, 5, 0, 0.00322125
+922, 5, 0, 0.00322125
+923, 5, 0, 0.00322125
+924, 5, 0, 0.00322125
+925, 5, 0, 0.00322125
+926, 5, 0, 0.00322125
+927, 5, 0, 0.00322125
+928, 5, 0, 0.00322125
+929, 5, 0, 0.00322125
+930, 5, 0, 0.00322125
+931, 5, 0, 0.00322125
+932, 5, 0, 0.00322125
+933, 5, 0, 0.00322125
+934, 5, 0, 0.00322125
+935, 5, 0, 0.00322125
+936, 5, 0, 0.00322125
+937, 5, 0, 0.00322125
+938, 5, 0, 0.00322125
+939, 5, 0, 0.00322125
+940, 5, 0, 0.00322125
+941, 5, 0, 0.00322125
+942, 5, 0, 0.00322125
+943, 5, 0, 0.00322125
+944, 5, 0, 0.00322125
+945, 5, 0, 0.00322125
+946, 5, 0, 0.00322125
+947, 5, 0, 0.00322125
+948, 5, 0, 0.00322125
+949, 5, 0, 0.00322125
+950, 5, 0, 0.00322125
+951, 5, 0, 0.00322125
+952, 5, 0, 0.00322125
+953, 5, 0, 0.00322125
+954, 5, 0, 0.00322125
+955, 5, 0, 0.00322125
+956, 5, 0, 0.00322125
+957, 5, 0, 0.00322125
+958, 5, 0, 0.00322125
+959, 5, 0, 0.00322125
+960, 5, 0, 0.00322125
+961, 5, 0, 0.00322125
+962, 5, 0, 0.00322125
+963, 5, 0, 0.00322125
+964, 5, 0, 0.00322125
+965, 5, 0, 0.00322125
+966, 5, 0, 0.00322125
+967, 5, 0, 0.00322125
+968, 5, 0, 0.00322125
+969, 5, 0, 0.00322125
+970, 5, 0, 0.00322125
+971, 5, 0, 0.00322125
+972, 5, 0, 0.00322125
+973, 5, 0, 0.00322125
+974, 5, 0, 0.00322125
+975, 5, 0, 0.00322125
+976, 5, 0, 0.00322125
+977, 5, 0, 0.00322125
+978, 5, 0, 0.00322125
+979, 5, 0, 0.00322125
+980, 5, 0, 0.00322125
+981, 5, 0, 0.00322125
+982, 5, 0, 0.00322125
+983, 5, 0, 0.00322125
+984, 5, 0, 0.00322125
+985, 5, 0, 0.00322125
+986, 5, 0, 0.00322125
+987, 5, 0, 0.00322125
+988, 5, 0, 0.00322125
+989, 5, 0, 0.00322125
+990, 5, 0, 0.00322125
+991, 5, 0, 0.00322125
+992, 5, 0, 0.00322125
+993, 5, 0, 0.00322125
+994, 5, 0, 0.00322125
+995, 5, 0, 0.00322125
+996, 5, 0, 0.00322125
+997, 5, 0, 0.00322125
+998, 5, 0, 0.00322125
+999, 5, 0, 0.00322125
+1000, 5, 0, 0.00322125
+1001, 5, 0, 0.00322125
+1002, 5, 0, 0.00322125
+1003, 5, 0, 0.00322125
+1004, 5, 0, 0.00322125
+1005, 5, 0, 0.00322125
+1006, 5, 0, 0.00322125
+1007, 5, 0, 0.00322125
+1008, 5, 0, 0.00322125
+1009, 5, 0, 0.00322125
+1010, 5, 0, 0.00322125
+1011, 5, 0, 0.00322125
+1012, 5, 0, 0.00322125
+1013, 5, 0, 0.00322125
+1014, 5, 0, 0.00322125
+1015, 5, 0, 0.00322125
+1016, 5, 0, 0.00322125
+1017, 5, 0, 0.00322125
+1018, 5, 0, 0.00322125
+1019, 5, 0, 0.00322125
+1020, 5, 0, 0.00322125
+1021, 5, 0, 0.00322125
+1022, 5, 0, 0.00322125
+1023, 5, 0, 0.00322125
+1024, 5, 0, 0.00322125
+1025, 5, 0, 0.00322125
+1026, 5, 0, 0.00322125
+1027, 5, 0, 0.00322125
+1028, 5, 0, 0.00322125
+1029, 5, 0, 0.00322125
+1030, 5, 0, 0.00322125
+1031, 5, 0, 0.00322125
+1032, 5, 0, 0.00322125
+1033, 5, 0, 0.00322125
+1034, 5, 0, 0.00322125
+1035, 5, 0, 0.00322125
+1036, 5, 0, 0.00322125
+1037, 5, 0, 0.00322125
+1038, 5, 0, 0.00322125
+1039, 5, 0, 0.00322125
+1040, 5, 0, 0.00322125
+1041, 5, 0, 0.00322125
+1042, 5, 0, 0.00322125
+1043, 5, 0, 0.00322125
+1044, 5, 0, 0.00322125
+1045, 5, 0, 0.00322125
+1046, 5, 0, 0.00322125
+1047, 5, 0, 0.00322125
+1048, 5, 0, 0.00322125
+1049, 5, 0, 0.00322125
+1050, 5, 0, 0.00322125
+1051, 5, 0, 0.00322125
+1052, 5, 0, 0.00322125
+1053, 5, 0, 0.00322125
+1054, 5, 0, 0.00322125
+1055, 5, 0, 0.00322125
+1056, 5, 0, 0.00322125
+1057, 5, 0, 0.00322125
+1058, 5, 0, 0.00322125
+1059, 5, 0, 0.00322125
+1060, 5, 0, 0.00322125
+1061, 5, 0, 0.00322125
+1062, 5, 0, 0.00322125
+1063, 5, 0, 0.00322125
+1064, 5, 0, 0.00322125
+1065, 5, 0, 0.00322125
+1066, 5, 0, 0.00322125
+1067, 5, 0, 0.00322125
+1068, 5, 0, 0.00322125
+1069, 5, 0, 0.00322125
+1070, 5, 0, 0.00322125
+1071, 5, 0, 0.00322125
+1072, 5, 0, 0.00322125
+1073, 5, 0, 0.00322125
+1074, 5, 0, 0.00322125
+1075, 5, 0, 0.00322125
+1076, 5, 0, 0.00322125
+1077, 5, 0, 0.00322125
+1078, 5, 0, 0.00322125
+1079, 5, 0, 0.00322125
+1080, 5, 0, 0.00322125
+1081, 5, 0, 0.00322125
+1082, 5, 0, 0.00322125
+1083, 5, 0, 0.00322125
+1084, 5, 0, 0.00322125
+1085, 5, 0, 0.00322125
+1086, 5, 0, 0.00322125
+1087, 5, 0, 0.00322125
+1088, 5, 0, 0.00322125
+1089, 5, 0, 0.00322125
+1090, 5, 0, 0.00322125
+1091, 5, 0, 0.00322125
+1092, 5, 0, 0.00322125
+1093, 5, 0, 0.00322125
+1094, 5, 0, 0.00322125
+1095, 5, 0, 0.00322125
+1096, 5, 0, 0.00322125
+1097, 5, 0, 0.00322125
+1098, 5, 0, 0.00322125
+1099, 5, 0, 0.00322125
+1100, 5, 0, 0.00322125
+1101, 5, 0, 0.00322125
+1102, 5, 0, 0.00322125
+1103, 5, 0, 0.00322125
+1104, 5, 0, 0.00322125
+1105, 5, 0, 0.00322125
+1106, 5, 0, 0.00322125
+1107, 5, 0, 0.00322125
+1108, 5, 0, 0.00322125
+1109, 5, 0, 0.00322125
+1110, 5, 0, 0.00322125
+1111, 5, 0, 0.00322125
+1112, 5, 0, 0.00322125
+1113, 5, 0, 0.00322125
+1114, 5, 0, 0.00322125
+1115, 5, 0, 0.00322125
+1116, 5, 0, 0.00322125
+1117, 5, 0, 0.00322125
+1118, 5, 0, 0.00322125
+1119, 5, 0, 0.00322125
+1120, 5, 0, 0.00322125
+1121, 5, 0, 0.00322125
+1122, 5, 0, 0.00322125
+1123, 5, 0, 0.00322125
+1124, 5, 0, 0.00322125
+1125, 5, 0, 0.00322125
+1126, 5, 0, 0.00322125
+1127, 5, 0, 0.00322125
+1128, 5, 0, 0.00322125
+1129, 5, 0, 0.00322125
+1130, 5, 0, 0.00322125
+1131, 5, 0, 0.00322125
+1132, 5, 0, 0.00322125
+1133, 5, 0, 0.00322125
+1134, 5, 0, 0.00322125
+1135, 5, 0, 0.00322125
+1136, 5, 0, 0.00322125
+1137, 5, 0, 0.00322125
+1138, 5, 0, 0.00322125
+1139, 5, 0, 0.00322125
+1140, 5, 0, 0.00322125
+1141, 5, 0, 0.00322125
+1142, 5, 0, 0.00322125
+1143, 5, 0, 0.00322125
+1144, 5, 0, 0.00322125
+1145, 5, 0, 0.00322125
+1146, 5, 0, 0.00322125
+1147, 5, 0, 0.00322125
+1148, 5, 0, 0.00322125
+1149, 5, 0, 0.00322125
+1150, 5, 0, 0.00322125
+1151, 5, 0, 0.00322125
+1152, 5, 0, 0.00322125
+1153, 5, 0, 0.00322125
+1154, 5, 0, 0.00322125
+1155, 5, 0, 0.00322125
+1156, 5, 0, 0.00322125
+1157, 5, 0, 0.00322125
+1158, 5, 0, 0.00322125
+1159, 5, 0, 0.00322125
+1160, 5, 0, 0.00322125
+1161, 5, 0, 0.00322125
+1162, 5, 0, 0.00322125
+1163, 5, 0, 0.00322125
+1164, 5, 0, 0.00322125
+1165, 5, 0, 0.00322125
+1166, 5, 0, 0.00322125
+1167, 5, 0, 0.00322125
+1168, 5, 0, 0.00322125
+1169, 5, 0, 0.00322125
+1170, 5, 0, 0.00322125
+1171, 5, 0, 0.00322125
+1172, 5, 0, 0.00322125
+1173, 5, 0, 0.00322125
+1174, 5, 0, 0.00322125
+1175, 5, 0, 0.00322125
+1176, 5, 0, 0.00322125
+1177, 5, 0, 0.00322125
+1178, 5, 0, 0.00322125
+1179, 5, 0, 0.00322125
+1180, 5, 0, 0.00322125
+1181, 5, 0, 0.00322125
+1182, 5, 0, 0.00322125
+1183, 5, 0, 0.00322125
+1184, 5, 0, 0.00322125
+1185, 5, 0, 0.00322125
+1186, 5, 0, 0.00322125
+1187, 5, 0, 0.00322125
+1188, 5, 0, 0.00322125
+1189, 5, 0, 0.00322125
+1190, 5, 0, 0.00322125
+1191, 5, 0, 0.00322125
+1192, 5, 0, 0.00322125
+1193, 5, 0, 0.00322125
+1194, 5, 0, 0.00322125
+1195, 5, 0, 0.00322125
+1196, 5, 0, 0.00322125
+1197, 5, 0, 0.00322125
+1198, 5, 0, 0.00322125
+1199, 5, 0, 0.00322125
+1200, 5, 5, 0.00322125
+1201, 5, 5, 0.00322125
+1202, 5, 5, 0.00322125
+1203, 5, 5, 0.0031559
+1204, 5, 5, 0.00322125
+1205, 5, 5, 0.0031559
+1206, 5, 5, 0.0031559
+1207, 5, 5, 0.0031559
+1208, 5, 5, 0.0031559
+1209, 5, 5, 0.00322125
+1210, 5, 5, 5
+1211, 5, 5, 5
+1212, 5, 5, 5
+1213, 5, 5, 5
+1214, 5, 5, 5
+1215, 5, 5, 5
+1216, 5, 5, 5
+1217, 5, 5, 5
+1218, 5, 5, 5
+1219, 5, 5, 5
+1220, 5, 5, 5
+1221, 5, 5, 5
+1222, 5, 5, 5
+1223, 5, 5, 5
+1224, 5, 5, 5
+1225, 5, 5, 5
+1226, 5, 5, 5
+1227, 5, 5, 5
+1228, 5, 5, 5
+1229, 5, 5, 5
+1230, 5, 5, 5
+1231, 5, 5, 5
+1232, 5, 5, 5
+1233, 5, 5, 5
+1234, 5, 5, 5
+1235, 5, 5, 5
+1236, 5, 5, 5
+1237, 5, 5, 5
+1238, 5, 5, 5
+1239, 5, 5, 5
+1240, 5, 5, 5
+1241, 5, 5, 5
+1242, 5, 5, 5
+1243, 5, 5, 5
+1244, 5, 5, 5
+1245, 5, 5, 5
+1246, 5, 5, 5
+1247, 5, 5, 5
+1248, 5, 5, 5
+1249, 5, 5, 5
+1250, 5, 5, 5
+1251, 5, 5, 5
+1252, 5, 5, 5
+1253, 5, 5, 5
+1254, 5, 5, 5
+1255, 5, 5, 5
+1256, 5, 5, 5
+1257, 5, 5, 5
+1258, 5, 5, 5
+1259, 5, 5, 5
+1260, 5, 5, 5
+1261, 5, 5, 5
+1262, 5, 5, 5
+1263, 5, 5, 5
+1264, 5, 5, 5
+1265, 5, 5, 5
+1266, 5, 5, 5
+1267, 5, 5, 5
+1268, 5, 5, 5
+1269, 5, 5, 5
+1270, 5, 5, 5
+1271, 5, 5, 5
+1272, 5, 5, 5
+1273, 5, 5, 5
+1274, 5, 5, 5
+1275, 5, 5, 5
+1276, 5, 5, 5
+1277, 5, 5, 5
+1278, 5, 5, 5
+1279, 5, 5, 5
+1280, 5, 5, 5
+1281, 5, 5, 5
+1282, 5, 5, 5
+1283, 5, 5, 5
+1284, 5, 5, 5
+1285, 5, 5, 5
+1286, 5, 5, 5
+1287, 5, 5, 5
+1288, 5, 5, 5
+1289, 5, 5, 5
+1290, 5, 5, 5
+1291, 5, 5, 5
+1292, 5, 5, 5
+1293, 5, 5, 5
+1294, 5, 5, 5
+1295, 5, 5, 5
+1296, 5, 5, 5
+1297, 5, 5, 5
+1298, 5, 5, 5
+1299, 5, 5, 5
+1300, 5, 5, 5
+1301, 5, 5, 5
+1302, 5, 5, 5
+1303, 5, 5, 5
+1304, 5, 5, 5
+1305, 5, 5, 5
+1306, 5, 5, 5
+1307, 5, 5, 5
+1308, 5, 5, 5
+1309, 5, 5, 5
+1310, 5, 5, 5
+1311, 5, 5, 5
+1312, 5, 5, 5
+1313, 5, 5, 5
+1314, 5, 5, 5
+1315, 5, 5, 5
+1316, 5, 5, 5
+1317, 5, 5, 5
+1318, 5, 5, 5
+1319, 5, 5, 5
+1320, 5, 5, 5
+1321, 5, 5, 5
+1322, 5, 5, 5
+1323, 5, 5, 5
+1324, 5, 5, 5
+1325, 5, 5, 5
+1326, 5, 5, 5
+1327, 5, 5, 5
+1328, 5, 5, 5
+1329, 5, 5, 5
+1330, 5, 5, 5
+1331, 5, 5, 5
+1332, 5, 5, 5
+1333, 5, 5, 5
+1334, 5, 5, 5
+1335, 5, 5, 5
+1336, 5, 5, 5
+1337, 5, 5, 5
+1338, 5, 5, 5
+1339, 5, 5, 5
+1340, 5, 5, 5
+1341, 5, 5, 5
+1342, 5, 5, 5
+1343, 5, 5, 5
+1344, 5, 5, 5
+1345, 5, 5, 5
+1346, 5, 5, 5
+1347, 5, 5, 5
+1348, 5, 5, 5
+1349, 5, 5, 5
+1350, 5, 5, 5
+1351, 5, 5, 5
+1352, 5, 5, 5
+1353, 5, 5, 5
+1354, 5, 5, 5
+1355, 5, 5, 5
+1356, 5, 5, 5
+1357, 5, 5, 5
+1358, 5, 5, 5
+1359, 5, 5, 5
+1360, 5, 5, 5
+1361, 5, 5, 5
+1362, 5, 5, 5
+1363, 5, 5, 5
+1364, 5, 5, 5
+1365, 5, 5, 5
+1366, 5, 5, 5
+1367, 5, 5, 5
+1368, 5, 5, 5
+1369, 5, 5, 5
+1370, 5, 5, 5
+1371, 5, 5, 5
+1372, 5, 5, 5
+1373, 5, 5, 5
+1374, 5, 5, 5
+1375, 5, 5, 5
+1376, 5, 5, 5
+1377, 5, 5, 5
+1378, 5, 5, 5
+1379, 5, 5, 5
+1380, 5, 5, 5
+1381, 5, 5, 5
+1382, 5, 5, 5
+1383, 5, 5, 5
+1384, 5, 5, 5
+1385, 5, 5, 5
+1386, 5, 5, 5
+1387, 5, 5, 5
+1388, 5, 5, 5
+1389, 5, 5, 5
+1390, 5, 5, 5
+1391, 5, 5, 5
+1392, 5, 5, 5
+1393, 5, 5, 5
+1394, 5, 5, 5
+1395, 5, 5, 5
+1396, 5, 5, 5
+1397, 5, 5, 5
+1398, 5, 5, 5
+1399, 5, 5, 5
+1400, 5, 5, 5
+1401, 5, 5, 5
+1402, 5, 5, 5
+1403, 5, 5, 5
+1404, 5, 5, 5
+1405, 5, 5, 5
+1406, 5, 5, 5
+1407, 5, 5, 5
+1408, 5, 5, 5
+1409, 5, 5, 5
+1410, 5, 5, 5
+1411, 5, 5, 5
+1412, 5, 5, 5
+1413, 5, 5, 5
+1414, 5, 5, 5
+1415, 5, 5, 5
+1416, 5, 5, 5
+1417, 5, 5, 5
+1418, 5, 5, 5
+1419, 5, 5, 5
+1420, 5, 5, 5
+1421, 5, 5, 5
+1422, 5, 5, 5
+1423, 5, 5, 5
+1424, 5, 5, 5
+1425, 5, 5, 5
+1426, 5, 5, 5
+1427, 5, 5, 5
+1428, 5, 5, 5
+1429, 5, 5, 5
+1430, 5, 5, 5
+1431, 5, 5, 5
+1432, 5, 5, 5
+1433, 5, 5, 5
+1434, 5, 5, 5
+1435, 5, 5, 5
+1436, 5, 5, 5
+1437, 5, 5, 5
+1438, 5, 5, 5
+1439, 5, 5, 5
+1440, 5, 5, 5
+1441, 5, 5, 5
+1442, 5, 5, 5
+1443, 5, 5, 5
+1444, 5, 5, 5
+1445, 5, 5, 5
+1446, 5, 5, 5
+1447, 5, 5, 5
+1448, 5, 5, 5
+1449, 5, 5, 5
+1450, 5, 5, 5
+1451, 5, 5, 5
+1452, 5, 5, 5
+1453, 5, 5, 5
+1454, 5, 5, 5
+1455, 5, 5, 5
+1456, 5, 5, 5
+1457, 5, 5, 5
+1458, 5, 5, 5
+1459, 5, 5, 5
+1460, 5, 5, 5
+1461, 5, 5, 5
+1462, 5, 5, 5
+1463, 5, 5, 5
+1464, 5, 5, 5
+1465, 5, 5, 5
+1466, 5, 5, 5
+1467, 5, 5, 5
+1468, 5, 5, 5
+1469, 5, 5, 5
+1470, 5, 5, 5
+1471, 5, 5, 5
+1472, 5, 5, 5
+1473, 5, 5, 5
+1474, 5, 5, 5
+1475, 5, 5, 5
+1476, 5, 5, 5
+1477, 5, 5, 5
+1478, 5, 5, 5
+1479, 5, 5, 5
+1480, 5, 5, 5
+1481, 5, 5, 5
+1482, 5, 5, 5
+1483, 5, 5, 5
+1484, 5, 5, 5
+1485, 5, 5, 5
+1486, 5, 5, 5
+1487, 5, 5, 5
+1488, 5, 5, 5
+1489, 5, 5, 5
+1490, 5, 5, 5
+1491, 5, 5, 5
+1492, 5, 5, 5
+1493, 5, 5, 5
+1494, 5, 5, 5
+1495, 5, 5, 5
+1496, 5, 5, 5
+1497, 5, 5, 5
+1498, 5, 5, 5
+1499, 5, 5, 5
+1500, 5, 5, 5
+1501, 5, 5, 5
+1502, 5, 5, 5
+1503, 5, 5, 5
+1504, 5, 5, 5
+1505, 5, 5, 5
+1506, 5, 5, 5
+1507, 5, 5, 5
+1508, 5, 5, 5
+1509, 5, 5, 5
+1510, 5, 5, 5
+1511, 5, 5, 5
+1512, 5, 5, 5
+1513, 5, 5, 5
+1514, 5, 5, 5
+1515, 5, 5, 5
+1516, 5, 5, 5
+1517, 5, 5, 5
+1518, 5, 5, 5
+1519, 5, 5, 5
+1520, 5, 5, 5
+1521, 5, 5, 5
+1522, 5, 5, 5
+1523, 5, 5, 5
+1524, 5, 5, 5
+1525, 5, 5, 5
+1526, 5, 5, 5
+1527, 5, 5, 5
+1528, 5, 5, 5
+1529, 5, 5, 5
+1530, 5, 5, 5
+1531, 5, 5, 5
+1532, 5, 5, 5
+1533, 5, 5, 5
+1534, 5, 5, 5
+1535, 5, 5, 5
+1536, 5, 5, 5
+1537, 5, 5, 5
+1538, 5, 5, 5
+1539, 5, 5, 5
+1540, 5, 5, 5
+1541, 5, 5, 5
+1542, 5, 5, 5
+1543, 5, 5, 5
+1544, 5, 5, 5
+1545, 5, 5, 5
+1546, 5, 5, 5
+1547, 5, 5, 5
+1548, 5, 5, 5
+1549, 5, 5, 5
+1550, 5, 5, 5
+1551, 5, 5, 5
+1552, 5, 5, 5
+1553, 5, 5, 5
+1554, 5, 5, 5
+1555, 5, 5, 5
+1556, 5, 5, 5
+1557, 5, 5, 5
+1558, 5, 5, 5
+1559, 5, 5, 5
+1560, 5, 5, 5
+1561, 5, 5, 5
+1562, 5, 5, 5
+1563, 5, 5, 5
+1564, 5, 5, 5
+1565, 5, 5, 5
+1566, 5, 5, 5
+1567, 5, 5, 5
+1568, 5, 5, 5
+1569, 5, 5, 5
+1570, 5, 5, 5
+1571, 5, 5, 5
+1572, 5, 5, 5
+1573, 5, 5, 5
+1574, 5, 5, 5
+1575, 5, 5, 5
+1576, 5, 5, 5
+1577, 5, 5, 5
+1578, 5, 5, 5
+1579, 5, 5, 5
+1580, 5, 5, 5
+1581, 5, 5, 5
+1582, 5, 5, 5
+1583, 5, 5, 5
+1584, 5, 5, 5
+1585, 5, 5, 5
+1586, 5, 5, 5
+1587, 5, 5, 5
+1588, 5, 5, 5
+1589, 5, 5, 5
+1590, 5, 5, 5
+1591, 5, 5, 5
+1592, 5, 5, 5
+1593, 5, 5, 5
+1594, 5, 5, 5
+1595, 5, 5, 5
+1596, 5, 5, 5
+1597, 5, 5, 5
+1598, 5, 5, 5
+1599, 5, 5, 5
+1600, 0, 0, 5
+1601, 0, 0, 5
+1602, 0, 0, 5
+1603, 0, 0, 5
+1604, 0, 0, 5
+1605, 0, 0, 5
+1606, 0, 0, 5
+1607, 0, 0, 5
+1608, 0, 0, 5
+1609, 0, 0, 5
+1610, 0, 0, 5
+1611, 0, 0, 5
+1612, 0, 0, 5
+1613, 0, 0, 5
+1614, 0, 0, 5
+1615, 0, 0, 5
+1616, 0, 0, 5
+1617, 0, 0, 5
+1618, 0, 0, 5
+1619, 0, 0, 5
+1620, 0, 0, 5
+1621, 0, 0, 5
+1622, 0, 0, 5
+1623, 0, 0, 5
+1624, 0, 0, 5
+1625, 0, 0, 5
+1626, 0, 0, 5
+1627, 0, 0, 5
+1628, 0, 0, 5
+1629, 0, 0, 5
+1630, 0, 0, 5
+1631, 0, 0, 5
+1632, 0, 0, 5
+1633, 0, 0, 5
+1634, 0, 0, 5
+1635, 0, 0, 5
+1636, 0, 0, 5
+1637, 0, 0, 5
+1638, 0, 0, 5
+1639, 0, 0, 5
+1640, 0, 0, 5
+1641, 0, 0, 5
+1642, 0, 0, 5
+1643, 0, 0, 5
+1644, 0, 0, 5
+1645, 0, 0, 5
+1646, 0, 0, 5
+1647, 0, 0, 5
+1648, 0, 0, 5
+1649, 0, 0, 5
+1650, 0, 0, 5
+1651, 0, 0, 5
+1652, 0, 0, 5
+1653, 0, 0, 5
+1654, 0, 0, 5
+1655, 0, 0, 5
+1656, 0, 0, 5
+1657, 0, 0, 5
+1658, 0, 0, 5
+1659, 0, 0, 5
+1660, 0, 0, 5
+1661, 0, 0, 5
+1662, 0, 0, 5
+1663, 0, 0, 5
+1664, 0, 0, 5
+1665, 0, 0, 5
+1666, 0, 0, 5
+1667, 0, 0, 5
+1668, 0, 0, 5
+1669, 0, 0, 5
+1670, 0, 0, 5
+1671, 0, 0, 5
+1672, 0, 0, 5
+1673, 0, 0, 5
+1674, 0, 0, 5
+1675, 0, 0, 5
+1676, 0, 0, 5
+1677, 0, 0, 5
+1678, 0, 0, 5
+1679, 0, 0, 5
+1680, 0, 0, 5
+1681, 0, 0, 5
+1682, 0, 0, 5
+1683, 0, 0, 5
+1684, 0, 0, 5
+1685, 0, 0, 5
+1686, 0, 0, 5
+1687, 0, 0, 5
+1688, 0, 0, 5
+1689, 0, 0, 5
+1690, 0, 0, 5
+1691, 0, 0, 5
+1692, 0, 0, 5
+1693, 0, 0, 5
+1694, 0, 0, 5
+1695, 0, 0, 5
+1696, 0, 0, 5
+1697, 0, 0, 5
+1698, 0, 0, 5
+1699, 0, 0, 5
+1700, 0, 0, 5
+1701, 0, 0, 5
+1702, 0, 0, 5
+1703, 0, 0, 5
+1704, 0, 0, 5
+1705, 0, 0, 5
+1706, 0, 0, 5
+1707, 0, 0, 5
+1708, 0, 0, 5
+1709, 0, 0, 5
+1710, 0, 0, 5
+1711, 0, 0, 5
+1712, 0, 0, 5
+1713, 0, 0, 5
+1714, 0, 0, 5
+1715, 0, 0, 5
+1716, 0, 0, 5
+1717, 0, 0, 5
+1718, 0, 0, 5
+1719, 0, 0, 5
+1720, 0, 0, 5
+1721, 0, 0, 5
+1722, 0, 0, 5
+1723, 0, 0, 5
+1724, 0, 0, 5
+1725, 0, 0, 5
+1726, 0, 0, 5
+1727, 0, 0, 5
+1728, 0, 0, 5
+1729, 0, 0, 5
+1730, 0, 0, 5
+1731, 0, 0, 5
+1732, 0, 0, 5
+1733, 0, 0, 5
+1734, 0, 0, 5
+1735, 0, 0, 5
+1736, 0, 0, 5
+1737, 0, 0, 5
+1738, 0, 0, 5
+1739, 0, 0, 5
+1740, 0, 0, 5
+1741, 0, 0, 5
+1742, 0, 0, 5
+1743, 0, 0, 5
+1744, 0, 0, 5
+1745, 0, 0, 5
+1746, 0, 0, 5
+1747, 0, 0, 5
+1748, 0, 0, 5
+1749, 0, 0, 5
+1750, 0, 0, 5
+1751, 0, 0, 5
+1752, 0, 0, 5
+1753, 0, 0, 5
+1754, 0, 0, 5
+1755, 0, 0, 5
+1756, 0, 0, 5
+1757, 0, 0, 5
+1758, 0, 0, 5
+1759, 0, 0, 5
+1760, 0, 0, 5
+1761, 0, 0, 5
+1762, 0, 0, 5
+1763, 0, 0, 5
+1764, 0, 0, 5
+1765, 0, 0, 5
+1766, 0, 0, 5
+1767, 0, 0, 5
+1768, 0, 0, 5
+1769, 0, 0, 5
+1770, 0, 0, 5
+1771, 0, 0, 5
+1772, 0, 0, 5
+1773, 0, 0, 5
+1774, 0, 0, 5
+1775, 0, 0, 5
+1776, 0, 0, 5
+1777, 0, 0, 5
+1778, 0, 0, 5
+1779, 0, 0, 5
+1780, 0, 0, 5
+1781, 0, 0, 5
+1782, 0, 0, 5
+1783, 0, 0, 5
+1784, 0, 0, 5
+1785, 0, 0, 5
+1786, 0, 0, 5
+1787, 0, 0, 5
+1788, 0, 0, 5
+1789, 0, 0, 5
+1790, 0, 0, 5
+1791, 0, 0, 5
+1792, 0, 0, 5
+1793, 0, 0, 5
+1794, 0, 0, 5
+1795, 0, 0, 5
+1796, 0, 0, 5
+1797, 0, 0, 5
+1798, 0, 0, 5
+1799, 0, 0, 5
+1800, 0, 0, 5
+1801, 0, 0, 5
+1802, 0, 0, 5
+1803, 0, 0, 5
+1804, 0, 0, 5
+1805, 0, 0, 5
+1806, 0, 0, 5
+1807, 0, 0, 5
+1808, 0, 0, 5
+1809, 0, 0, 5
+1810, 0, 0, 5
+1811, 0, 0, 5
+1812, 0, 0, 5
+1813, 0, 0, 5
+1814, 0, 0, 5
+1815, 0, 0, 5
+1816, 0, 0, 5
+1817, 0, 0, 5
+1818, 0, 0, 5
+1819, 0, 0, 5
+1820, 0, 0, 5
+1821, 0, 0, 5
+1822, 0, 0, 5
+1823, 0, 0, 5
+1824, 0, 0, 5
+1825, 0, 0, 5
+1826, 0, 0, 5
+1827, 0, 0, 5
+1828, 0, 0, 5
+1829, 0, 0, 5
+1830, 0, 0, 5
+1831, 0, 0, 5
+1832, 0, 0, 5
+1833, 0, 0, 5
+1834, 0, 0, 5
+1835, 0, 0, 5
+1836, 0, 0, 5
+1837, 0, 0, 5
+1838, 0, 0, 5
+1839, 0, 0, 5
+1840, 0, 0, 5
+1841, 0, 0, 5
+1842, 0, 0, 5
+1843, 0, 0, 5
+1844, 0, 0, 5
+1845, 0, 0, 5
+1846, 0, 0, 5
+1847, 0, 0, 5
+1848, 0, 0, 5
+1849, 0, 0, 5
+1850, 0, 0, 5
+1851, 0, 0, 5
+1852, 0, 0, 5
+1853, 0, 0, 5
+1854, 0, 0, 5
+1855, 0, 0, 5
+1856, 0, 0, 5
+1857, 0, 0, 5
+1858, 0, 0, 5
+1859, 0, 0, 5
+1860, 0, 0, 5
+1861, 0, 0, 5
+1862, 0, 0, 5
+1863, 0, 0, 5
+1864, 0, 0, 5
+1865, 0, 0, 5
+1866, 0, 0, 5
+1867, 0, 0, 5
+1868, 0, 0, 5
+1869, 0, 0, 5
+1870, 0, 0, 5
+1871, 0, 0, 5
+1872, 0, 0, 5
+1873, 0, 0, 5
+1874, 0, 0, 5
+1875, 0, 0, 5
+1876, 0, 0, 5
+1877, 0, 0, 5
+1878, 0, 0, 5
+1879, 0, 0, 5
+1880, 0, 0, 5
+1881, 0, 0, 5
+1882, 0, 0, 5
+1883, 0, 0, 5
+1884, 0, 0, 5
+1885, 0, 0, 5
+1886, 0, 0, 5
+1887, 0, 0, 5
+1888, 0, 0, 5
+1889, 0, 0, 5
+1890, 0, 0, 5
+1891, 0, 0, 5
+1892, 0, 0, 5
+1893, 0, 0, 5
+1894, 0, 0, 5
+1895, 0, 0, 5
+1896, 0, 0, 5
+1897, 0, 0, 5
+1898, 0, 0, 5
+1899, 0, 0, 5
+1900, 0, 0, 5
+1901, 0, 0, 5
+1902, 0, 0, 5
+1903, 0, 0, 5
+1904, 0, 0, 5
+1905, 0, 0, 5
+1906, 0, 0, 5
+1907, 0, 0, 5
+1908, 0, 0, 5
+1909, 0, 0, 5
+1910, 0, 0, 5
+1911, 0, 0, 5
+1912, 0, 0, 5
+1913, 0, 0, 5
+1914, 0, 0, 5
+1915, 0, 0, 5
+1916, 0, 0, 5
+1917, 0, 0, 5
+1918, 0, 0, 5
+1919, 0, 0, 5
+1920, 0, 0, 5
+1921, 0, 0, 5
+1922, 0, 0, 5
+1923, 0, 0, 5
+1924, 0, 0, 5
+1925, 0, 0, 5
+1926, 0, 0, 5
+1927, 0, 0, 5
+1928, 0, 0, 5
+1929, 0, 0, 5
+1930, 0, 0, 5
+1931, 0, 0, 5
+1932, 0, 0, 5
+1933, 0, 0, 5
+1934, 0, 0, 5
+1935, 0, 0, 5
+1936, 0, 0, 5
+1937, 0, 0, 5
+1938, 0, 0, 5
+1939, 0, 0, 5
+1940, 0, 0, 5
+1941, 0, 0, 5
+1942, 0, 0, 5
+1943, 0, 0, 5
+1944, 0, 0, 5
+1945, 0, 0, 5
+1946, 0, 0, 5
+1947, 0, 0, 5
+1948, 0, 0, 5
+1949, 0, 0, 5
+1950, 0, 0, 5
+1951, 0, 0, 5
+1952, 0, 0, 5
+1953, 0, 0, 5
+1954, 0, 0, 5
+1955, 0, 0, 5
+1956, 0, 0, 5
+1957, 0, 0, 5
+1958, 0, 0, 5
+1959, 0, 0, 5
+1960, 0, 0, 5
+1961, 0, 0, 5
+1962, 0, 0, 5
+1963, 0, 0, 5
+1964, 0, 0, 5
+1965, 0, 0, 5
+1966, 0, 0, 5
+1967, 0, 0, 5
+1968, 0, 0, 5
+1969, 0, 0, 5
+1970, 0, 0, 5
+1971, 0, 0, 5
+1972, 0, 0, 5
+1973, 0, 0, 5
+1974, 0, 0, 5
+1975, 0, 0, 5
+1976, 0, 0, 5
+1977, 0, 0, 5
+1978, 0, 0, 5
+1979, 0, 0, 5
+1980, 0, 0, 5
+1981, 0, 0, 5
+1982, 0, 0, 5
+1983, 0, 0, 5
+1984, 0, 0, 5
+1985, 0, 0, 5
+1986, 0, 0, 5
+1987, 0, 0, 5
+1988, 0, 0, 5
+1989, 0, 0, 5
+1990, 0, 0, 5
+1991, 0, 0, 5
+1992, 0, 0, 5
+1993, 0, 0, 5
+1994, 0, 0, 5
+1995, 0, 0, 5
+1996, 0, 0, 5
+1997, 0, 0, 5
+1998, 0, 0, 5
+1999, 0, 0, 5
+2000, 0, 5, 5
+2001, 0, 5, 5
+2002, 0, 5, 5
+2003, 0, 5, 5
+2004, 0, 5, 5
+2005, 0, 5, 5
+2006, 0, 5, 5
+2007, 0, 5, 5
+2008, 0, 5, 5
+2009, 0, 5, 5
+2010, 0, 5, 5
+2011, 0, 5, 5
+2012, 0, 5, 5
+2013, 0, 5, 0
+2014, 0, 5, 0
+2015, 0, 5, 0
+2016, 0, 5, 0.0031559
+2017, 0, 5, 0.0031559
+2018, 0, 5, 0.00322125
+2019, 0, 5, 0.0031559
+2020, 0, 5, 0.00322125
+2021, 0, 5, 0.00322125
+2022, 0, 5, 0.00322125
+2023, 0, 5, 0.00322125
+2024, 0, 5, 0.00322125
+2025, 0, 5, 0.00322125
+2026, 0, 5, 0.00322125
+2027, 0, 5, 0.00322125
+2028, 0, 5, 0.00322125
+2029, 0, 5, 0.00322125
+2030, 0, 5, 0.00322125
+2031, 0, 5, 0.00322125
+2032, 0, 5, 0.00322125
+2033, 0, 5, 0.00322125
+2034, 0, 5, 0.00322125
+2035, 0, 5, 0.00322125
+2036, 0, 5, 0.00322125
+2037, 0, 5, 0.00322125
+2038, 0, 5, 0.00322125
+2039, 0, 5, 0.00322125
+2040, 0, 5, 0.00322125
+2041, 0, 5, 0.00322125
+2042, 0, 5, 0.00322125
+2043, 0, 5, 0.00322125
+2044, 0, 5, 0.00322125
+2045, 0, 5, 0.00322125
+2046, 0, 5, 0.00322125
+2047, 0, 5, 0.00322125
+2048, 0, 5, 0.00322125
+2049, 0, 5, 0.00322125
+2050, 0, 5, 0.00322125
+2051, 0, 5, 0.00322125
+2052, 0, 5, 0.00322125
+2053, 0, 5, 0.00322125
+2054, 0, 5, 0.00322125
+2055, 0, 5, 0.00322125
+2056, 0, 5, 0.00322125
+2057, 0, 5, 0.00322125
+2058, 0, 5, 0.00322125
+2059, 0, 5, 0.00322125
+2060, 0, 5, 0.00322125
+2061, 0, 5, 0.00322125
+2062, 0, 5, 0.00322125
+2063, 0, 5, 0.00322125
+2064, 0, 5, 0.00322125
+2065, 0, 5, 0.00322125
+2066, 0, 5, 0.00322125
+2067, 0, 5, 0.00322125
+2068, 0, 5, 0.00322125
+2069, 0, 5, 0.00322125
+2070, 0, 5, 0.00322125
+2071, 0, 5, 0.00322125
+2072, 0, 5, 0.00322125
+2073, 0, 5, 0.00322125
+2074, 0, 5, 0.00322125
+2075, 0, 5, 0.00322125
+2076, 0, 5, 0.00322125
+2077, 0, 5, 0.00322125
+2078, 0, 5, 0.00322125
+2079, 0, 5, 0.00322125
+2080, 0, 5, 0.00322125
+2081, 0, 5, 0.00322125
+2082, 0, 5, 0.00322125
+2083, 0, 5, 0.00322125
+2084, 0, 5, 0.00322125
+2085, 0, 5, 0.00322125
+2086, 0, 5, 0.00322125
+2087, 0, 5, 0.00322125
+2088, 0, 5, 0.00322125
+2089, 0, 5, 0.00322125
+2090, 0, 5, 0.00322125
+2091, 0, 5, 0.00322125
+2092, 0, 5, 0.00322125
+2093, 0, 5, 0.00322125
+2094, 0, 5, 0.00322125
+2095, 0, 5, 0.00322125
+2096, 0, 5, 0.00322125
+2097, 0, 5, 0.00322125
+2098, 0, 5, 0.00322125
+2099, 0, 5, 0.00322125
+2100, 0, 5, 0.00322125
+2101, 0, 5, 0.00322125
+2102, 0, 5, 0.00322125
+2103, 0, 5, 0.00322125
+2104, 0, 5, 0.00322125
+2105, 0, 5, 0.00322125
+2106, 0, 5, 0.00322125
+2107, 0, 5, 0.00322125
+2108, 0, 5, 0.00322125
+2109, 0, 5, 0.00322125
+2110, 0, 5, 0.00322125
+2111, 0, 5, 0.00322125
+2112, 0, 5, 0.00322125
+2113, 0, 5, 0.00322125
+2114, 0, 5, 0.00322125
+2115, 0, 5, 0.00322125
+2116, 0, 5, 0.00322125
+2117, 0, 5, 0.00322125
+2118, 0, 5, 0.00322125
+2119, 0, 5, 0.00322125
+2120, 0, 5, 0.00322125
+2121, 0, 5, 0.00322125
+2122, 0, 5, 0.00322125
+2123, 0, 5, 0.00322125
+2124, 0, 5, 0.00322125
+2125, 0, 5, 0.00322125
+2126, 0, 5, 0.00322125
+2127, 0, 5, 0.00322125
+2128, 0, 5, 0.00322125
+2129, 0, 5, 0.00322125
+2130, 0, 5, 0.00322125
+2131, 0, 5, 0.00322125
+2132, 0, 5, 0.00322125
+2133, 0, 5, 0.00322125
+2134, 0, 5, 0.00322125
+2135, 0, 5, 0.00322125
+2136, 0, 5, 0.00322125
+2137, 0, 5, 0.00322125
+2138, 0, 5, 0.00322125
+2139, 0, 5, 0.00322125
+2140, 0, 5, 0.00322125
+2141, 0, 5, 0.00322125
+2142, 0, 5, 0.00322125
+2143, 0, 5, 0.00322125
+2144, 0, 5, 0.00322125
+2145, 0, 5, 0.00322125
+2146, 0, 5, 0.00322125
+2147, 0, 5, 0.00322125
+2148, 0, 5, 0.00322125
+2149, 0, 5, 0.00322125
+2150, 0, 5, 0.00322125
+2151, 0, 5, 0.00322125
+2152, 0, 5, 0.00322125
+2153, 0, 5, 0.00322125
+2154, 0, 5, 0.00322125
+2155, 0, 5, 0.00322125
+2156, 0, 5, 0.00322125
+2157, 0, 5, 0.00322125
+2158, 0, 5, 0.00322125
+2159, 0, 5, 0.00322125
+2160, 0, 5, 0.00322125
+2161, 0, 5, 0.00322125
+2162, 0, 5, 0.00322125
+2163, 0, 5, 0.00322125
+2164, 0, 5, 0.00322125
+2165, 0, 5, 0.00322125
+2166, 0, 5, 0.00322125
+2167, 0, 5, 0.00322125
+2168, 0, 5, 0.00322125
+2169, 0, 5, 0.00322125
+2170, 0, 5, 0.00322125
+2171, 0, 5, 0.00322125
+2172, 0, 5, 0.00322125
+2173, 0, 5, 0.00322125
+2174, 0, 5, 0.00322125
+2175, 0, 5, 0.00322125
+2176, 0, 5, 0.00322125
+2177, 0, 5, 0.00322125
+2178, 0, 5, 0.00322125
+2179, 0, 5, 0.00322125
+2180, 0, 5, 0.00322125
+2181, 0, 5, 0.00322125
+2182, 0, 5, 0.00322125
+2183, 0, 5, 0.00322125
+2184, 0, 5, 0.00322125
+2185, 0, 5, 0.00322125
+2186, 0, 5, 0.00322125
+2187, 0, 5, 0.00322125
+2188, 0, 5, 0.00322125
+2189, 0, 5, 0.00322125
+2190, 0, 5, 0.00322125
+2191, 0, 5, 0.00322125
+2192, 0, 5, 0.00322125
+2193, 0, 5, 0.00322125
+2194, 0, 5, 0.00322125
+2195, 0, 5, 0.00322125
+2196, 0, 5, 0.00322125
+2197, 0, 5, 0.00322125
+2198, 0, 5, 0.00322125
+2199, 0, 5, 0.00322125
+2200, 0, 5, 0.00322125
+2201, 0, 5, 0.00322125
+2202, 0, 5, 0.00322125
+2203, 0, 5, 0.00322125
+2204, 0, 5, 0.00322125
+2205, 0, 5, 0.00322125
+2206, 0, 5, 0.00322125
+2207, 0, 5, 0.00322125
+2208, 0, 5, 0.00322125
+2209, 0, 5, 0.00322125
+2210, 0, 5, 0.00322125
+2211, 0, 5, 0.00322125
+2212, 0, 5, 0.00322125
+2213, 0, 5, 0.00322125
+2214, 0, 5, 0.00322125
+2215, 0, 5, 0.00322125
+2216, 0, 5, 0.00322125
+2217, 0, 5, 0.00322125
+2218, 0, 5, 0.00322125
+2219, 0, 5, 0.00322125
+2220, 0, 5, 0.00322125
+2221, 0, 5, 0.00322125
+2222, 0, 5, 0.00322125
+2223, 0, 5, 0.00322125
+2224, 0, 5, 0.00322125
+2225, 0, 5, 0.00322125
+2226, 0, 5, 0.00322125
+2227, 0, 5, 0.00322125
+2228, 0, 5, 0.00322125
+2229, 0, 5, 0.00322125
+2230, 0, 5, 0.00322125
+2231, 0, 5, 0.00322125
+2232, 0, 5, 0.00322125
+2233, 0, 5, 0.00322125
+2234, 0, 5, 0.00322125
+2235, 0, 5, 0.00322125
+2236, 0, 5, 0.00322125
+2237, 0, 5, 0.00322125
+2238, 0, 5, 0.00322125
+2239, 0, 5, 0.00322125
+2240, 0, 5, 0.00322125
+2241, 0, 5, 0.00322125
+2242, 0, 5, 0.00322125
+2243, 0, 5, 0.00322125
+2244, 0, 5, 0.00322125
+2245, 0, 5, 0.00322125
+2246, 0, 5, 0.00322125
+2247, 0, 5, 0.00322125
+2248, 0, 5, 0.00322125
+2249, 0, 5, 0.00322125
+2250, 0, 5, 0.00322125
+2251, 0, 5, 0.00322125
+2252, 0, 5, 0.00322125
+2253, 0, 5, 0.00322125
+2254, 0, 5, 0.00322125
+2255, 0, 5, 0.00322125
+2256, 0, 5, 0.00322125
+2257, 0, 5, 0.00322125
+2258, 0, 5, 0.00322125
+2259, 0, 5, 0.00322125
+2260, 0, 5, 0.00322125
+2261, 0, 5, 0.00322125
+2262, 0, 5, 0.00322125
+2263, 0, 5, 0.00322125
+2264, 0, 5, 0.00322125
+2265, 0, 5, 0.00322125
+2266, 0, 5, 0.00322125
+2267, 0, 5, 0.00322125
+2268, 0, 5, 0.00322125
+2269, 0, 5, 0.00322125
+2270, 0, 5, 0.00322125
+2271, 0, 5, 0.00322125
+2272, 0, 5, 0.00322125
+2273, 0, 5, 0.00322125
+2274, 0, 5, 0.00322125
+2275, 0, 5, 0.00322125
+2276, 0, 5, 0.00322125
+2277, 0, 5, 0.00322125
+2278, 0, 5, 0.00322125
+2279, 0, 5, 0.00322125
+2280, 0, 5, 0.00322125
+2281, 0, 5, 0.00322125
+2282, 0, 5, 0.00322125
+2283, 0, 5, 0.00322125
+2284, 0, 5, 0.00322125
+2285, 0, 5, 0.00322125
+2286, 0, 5, 0.00322125
+2287, 0, 5, 0.00322125
+2288, 0, 5, 0.00322125
+2289, 0, 5, 0.00322125
+2290, 0, 5, 0.00322125
+2291, 0, 5, 0.00322125
+2292, 0, 5, 0.00322125
+2293, 0, 5, 0.00322125
+2294, 0, 5, 0.00322125
+2295, 0, 5, 0.00322125
+2296, 0, 5, 0.00322125
+2297, 0, 5, 0.00322125
+2298, 0, 5, 0.00322125
+2299, 0, 5, 0.00322125
+2300, 0, 5, 0.00322125
+2301, 0, 5, 0.00322125
+2302, 0, 5, 0.00322125
+2303, 0, 5, 0.00322125
+2304, 0, 5, 0.00322125
+2305, 0, 5, 0.00322125
+2306, 0, 5, 0.00322125
+2307, 0, 5, 0.00322125
+2308, 0, 5, 0.00322125
+2309, 0, 5, 0.00322125
+2310, 0, 5, 0.00322125
+2311, 0, 5, 0.00322125
+2312, 0, 5, 0.00322125
+2313, 0, 5, 0.00322125
+2314, 0, 5, 0.00322125
+2315, 0, 5, 0.00322125
+2316, 0, 5, 0.00322125
+2317, 0, 5, 0.00322125
+2318, 0, 5, 0.00322125
+2319, 0, 5, 0.00322125
+2320, 0, 5, 0.00322125
+2321, 0, 5, 0.00322125
+2322, 0, 5, 0.00322125
+2323, 0, 5, 0.00322125
+2324, 0, 5, 0.00322125
+2325, 0, 5, 0.00322125
+2326, 0, 5, 0.00322125
+2327, 0, 5, 0.00322125
+2328, 0, 5, 0.00322125
+2329, 0, 5, 0.00322125
+2330, 0, 5, 0.00322125
+2331, 0, 5, 0.00322125
+2332, 0, 5, 0.00322125
+2333, 0, 5, 0.00322125
+2334, 0, 5, 0.00322125
+2335, 0, 5, 0.00322125
+2336, 0, 5, 0.00322125
+2337, 0, 5, 0.00322125
+2338, 0, 5, 0.00322125
+2339, 0, 5, 0.00322125
+2340, 0, 5, 0.00322125
+2341, 0, 5, 0.00322125
+2342, 0, 5, 0.00322125
+2343, 0, 5, 0.00322125
+2344, 0, 5, 0.00322125
+2345, 0, 5, 0.00322125
+2346, 0, 5, 0.00322125
+2347, 0, 5, 0.00322125
+2348, 0, 5, 0.00322125
+2349, 0, 5, 0.00322125
+2350, 0, 5, 0.00322125
+2351, 0, 5, 0.00322125
+2352, 0, 5, 0.00322125
+2353, 0, 5, 0.00322125
+2354, 0, 5, 0.00322125
+2355, 0, 5, 0.00322125
+2356, 0, 5, 0.00322125
+2357, 0, 5, 0.00322125
+2358, 0, 5, 0.00322125
+2359, 0, 5, 0.00322125
+2360, 0, 5, 0.00322125
+2361, 0, 5, 0.00322125
+2362, 0, 5, 0.00322125
+2363, 0, 5, 0.00322125
+2364, 0, 5, 0.00322125
+2365, 0, 5, 0.00322125
+2366, 0, 5, 0.00322125
+2367, 0, 5, 0.00322125
+2368, 0, 5, 0.00322125
+2369, 0, 5, 0.00322125
+2370, 0, 5, 0.00322125
+2371, 0, 5, 0.00322125
+2372, 0, 5, 0.00322125
+2373, 0, 5, 0.00322125
+2374, 0, 5, 0.00322125
+2375, 0, 5, 0.00322125
+2376, 0, 5, 0.00322125
+2377, 0, 5, 0.00322125
+2378, 0, 5, 0.00322125
+2379, 0, 5, 0.00322125
+2380, 0, 5, 0.00322125
+2381, 0, 5, 0.00322125
+2382, 0, 5, 0.00322125
+2383, 0, 5, 0.00322125
+2384, 0, 5, 0.00322125
+2385, 0, 5, 0.00322125
+2386, 0, 5, 0.00322125
+2387, 0, 5, 0.00322125
+2388, 0, 5, 0.00322125
+2389, 0, 5, 0.00322125
+2390, 0, 5, 0.00322125
+2391, 0, 5, 0.00322125
+2392, 0, 5, 0.00322125
+2393, 0, 5, 0.00322125
+2394, 0, 5, 0.00322125
+2395, 0, 5, 0.00322125
+2396, 0, 5, 0.00322125
+2397, 0, 5, 0.00322125
+2398, 0, 5, 0.00322125
+2399, 0, 5, 0.00322125
+2400, 5, 0, 0.00322125
+2401, 5, 0, 0.00322125
+2402, 5, 0, 0.00322125
+2403, 5, 0, 0.00322125
+2404, 5, 0, 0.00322125
+2405, 5, 0, 0.00322125
+2406, 5, 0, 0.00322125
+2407, 5, 0, 0.00322125
+2408, 5, 0, 0.00322125
+2409, 5, 0, 0.00322125
+2410, 5, 0, 0.00322125
+2411, 5, 0, 0.00322125
+2412, 5, 0, 0.00322125
+2413, 5, 0, 0.00322125
+2414, 5, 0, 0.00322125
+2415, 5, 0, 0.00322125
+2416, 5, 0, 0.00322125
+2417, 5, 0, 0.00322125
+2418, 5, 0, 0.00322125
+2419, 5, 0, 0.00322125
+2420, 5, 0, 0.00322125
+2421, 5, 0, 0.00322125
+2422, 5, 0, 0.00322125
+2423, 5, 0, 0.0031559
+2424, 5, 0, 0.00322125
+2425, 5, 0, 0.00322125
+2426, 5, 0, 0.00322125
+2427, 5, 0, 0.00322125
+2428, 5, 0, 0.00322125
+2429, 5, 0, 0.00322125
+2430, 5, 0, 0.00322125
+2431, 5, 0, 0.00322125
+2432, 5, 0, 0.00322125
+2433, 5, 0, 0.00322125
+2434, 5, 0, 0.00322125
+2435, 5, 0, 0.00322125
+2436, 5, 0, 0.00322125
+2437, 5, 0, 0.00322125
+2438, 5, 0, 0.00322125
+2439, 5, 0, 0.00322125
+2440, 5, 0, 0.00322125
+2441, 5, 0, 0.00322125
+2442, 5, 0, 0.00322125
+2443, 5, 0, 0.00322125
+2444, 5, 0, 0.00322125
+2445, 5, 0, 0.00322125
+2446, 5, 0, 0.00322125
+2447, 5, 0, 0.00322125
+2448, 5, 0, 0.00322125
+2449, 5, 0, 0.00322125
+2450, 5, 0, 0.00322125
+2451, 5, 0, 0.00322125
+2452, 5, 0, 0.00322125
+2453, 5, 0, 0.00322125
+2454, 5, 0, 0.00322125
+2455, 5, 0, 0.00322125
+2456, 5, 0, 0.00322125
+2457, 5, 0, 0.00322125
+2458, 5, 0, 0.00322125
+2459, 5, 0, 0.00322125
+2460, 5, 0, 0.00322125
+2461, 5, 0, 0.00322125
+2462, 5, 0, 0.00322125
+2463, 5, 0, 0.00322125
+2464, 5, 0, 0.00322125
+2465, 5, 0, 0.00322125
+2466, 5, 0, 0.00322125
+2467, 5, 0, 0.00322125
+2468, 5, 0, 0.00322125
+2469, 5, 0, 0.00322125
+2470, 5, 0, 0.00322125
+2471, 5, 0, 0.00322125
+2472, 5, 0, 0.00322125
+2473, 5, 0, 0.00322125
+2474, 5, 0, 0.00322125
+2475, 5, 0, 0.00322125
+2476, 5, 0, 0.00322125
+2477, 5, 0, 0.00322125
+2478, 5, 0, 0.00322125
+2479, 5, 0, 0.00322125
+2480, 5, 0, 0.00322125
+2481, 5, 0, 0.00322125
+2482, 5, 0, 0.00322125
+2483, 5, 0, 0.00322125
+2484, 5, 0, 0.00322125
+2485, 5, 0, 0.00322125
+2486, 5, 0, 0.00322125
+2487, 5, 0, 0.00322125
+2488, 5, 0, 0.00322125
+2489, 5, 0, 0.00322125
+2490, 5, 0, 0.00322125
+2491, 5, 0, 0.00322125
+2492, 5, 0, 0.00322125
+2493, 5, 0, 0.00322125
+2494, 5, 0, 0.00322125
+2495, 5, 0, 0.00322125
+2496, 5, 0, 0.00322125
+2497, 5, 0, 0.00322125
+2498, 5, 0, 0.00322125
+2499, 5, 0, 0.00322125
+2500, 5, 0, 0.00322125
+2501, 5, 0, 0.00322125
+2502, 5, 0, 0.00322125
+2503, 5, 0, 0.00322125
+2504, 5, 0, 0.00322125
+2505, 5, 0, 0.00322125
+2506, 5, 0, 0.00322125
+2507, 5, 0, 0.00322125
+2508, 5, 0, 0.00322125
+2509, 5, 0, 0.00322125
+2510, 5, 0, 0.00322125
+2511, 5, 0, 0.00322125
+2512, 5, 0, 0.00322125
+2513, 5, 0, 0.00322125
+2514, 5, 0, 0.00322125
+2515, 5, 0, 0.00322125
+2516, 5, 0, 0.00322125
+2517, 5, 0, 0.00322125
+2518, 5, 0, 0.00322125
+2519, 5, 0, 0.00322125
+2520, 5, 0, 0.00322125
+2521, 5, 0, 0.00322125
+2522, 5, 0, 0.00322125
+2523, 5, 0, 0.00322125
+2524, 5, 0, 0.00322125
+2525, 5, 0, 0.00322125
+2526, 5, 0, 0.00322125
+2527, 5, 0, 0.00322125
+2528, 5, 0, 0.00322125
+2529, 5, 0, 0.00322125
+2530, 5, 0, 0.00322125
+2531, 5, 0, 0.00322125
+2532, 5, 0, 0.00322125
+2533, 5, 0, 0.00322125
+2534, 5, 0, 0.00322125
+2535, 5, 0, 0.00322125
+2536, 5, 0, 0.00322125
+2537, 5, 0, 0.00322125
+2538, 5, 0, 0.00322125
+2539, 5, 0, 0.00322125
+2540, 5, 0, 0.00322125
+2541, 5, 0, 0.00322125
+2542, 5, 0, 0.00322125
+2543, 5, 0, 0.00322125
+2544, 5, 0, 0.00322125
+2545, 5, 0, 0.00322125
+2546, 5, 0, 0.00322125
+2547, 5, 0, 0.00322125
+2548, 5, 0, 0.00322125
+2549, 5, 0, 0.00322125
+2550, 5, 0, 0.00322125
+2551, 5, 0, 0.00322125
+2552, 5, 0, 0.00322125
+2553, 5, 0, 0.00322125
+2554, 5, 0, 0.00322125
+2555, 5, 0, 0.00322125
+2556, 5, 0, 0.00322125
+2557, 5, 0, 0.00322125
+2558, 5, 0, 0.00322125
+2559, 5, 0, 0.00322125
+2560, 5, 0, 0.00322125
+2561, 5, 0, 0.00322125
+2562, 5, 0, 0.00322125
+2563, 5, 0, 0.00322125
+2564, 5, 0, 0.00322125
+2565, 5, 0, 0.00322125
+2566, 5, 0, 0.00322125
+2567, 5, 0, 0.00322125
+2568, 5, 0, 0.00322125
+2569, 5, 0, 0.00322125
+2570, 5, 0, 0.00322125
+2571, 5, 0, 0.00322125
+2572, 5, 0, 0.00322125
+2573, 5, 0, 0.00322125
+2574, 5, 0, 0.00322125
+2575, 5, 0, 0.00322125
+2576, 5, 0, 0.00322125
+2577, 5, 0, 0.00322125
+2578, 5, 0, 0.00322125
+2579, 5, 0, 0.00322125
+2580, 5, 0, 0.00322125
+2581, 5, 0, 0.00322125
+2582, 5, 0, 0.00322125
+2583, 5, 0, 0.00322125
+2584, 5, 0, 0.00322125
+2585, 5, 0, 0.00322125
+2586, 5, 0, 0.00322125
+2587, 5, 0, 0.00322125
+2588, 5, 0, 0.00322125
+2589, 5, 0, 0.00322125
+2590, 5, 0, 0.00322125
+2591, 5, 0, 0.00322125
+2592, 5, 0, 0.00322125
+2593, 5, 0, 0.00322125
+2594, 5, 0, 0.00322125
+2595, 5, 0, 0.00322125
+2596, 5, 0, 0.00322125
+2597, 5, 0, 0.00322125
+2598, 5, 0, 0.00322125
+2599, 5, 0, 0.00322125
+2600, 5, 0, 0.00322125
+2601, 5, 0, 0.00322125
+2602, 5, 0, 0.00322125
+2603, 5, 0, 0.00322125
+2604, 5, 0, 0.00322125
+2605, 5, 0, 0.00322125
+2606, 5, 0, 0.00322125
+2607, 5, 0, 0.00322125
+2608, 5, 0, 0.00322125
+2609, 5, 0, 0.00322125
+2610, 5, 0, 0.00322125
+2611, 5, 0, 0.00322125
+2612, 5, 0, 0.00322125
+2613, 5, 0, 0.00322125
+2614, 5, 0, 0.00322125
+2615, 5, 0, 0.00322125
+2616, 5, 0, 0.00322125
+2617, 5, 0, 0.00322125
+2618, 5, 0, 0.00322125
+2619, 5, 0, 0.00322125
+2620, 5, 0, 0.00322125
+2621, 5, 0, 0.00322125
+2622, 5, 0, 0.00322125
+2623, 5, 0, 0.00322125
+2624, 5, 0, 0.00322125
+2625, 5, 0, 0.00322125
+2626, 5, 0, 0.00322125
+2627, 5, 0, 0.00322125
+2628, 5, 0, 0.00322125
+2629, 5, 0, 0.00322125
+2630, 5, 0, 0.00322125
+2631, 5, 0, 0.00322125
+2632, 5, 0, 0.00322125
+2633, 5, 0, 0.00322125
+2634, 5, 0, 0.00322125
+2635, 5, 0, 0.00322125
+2636, 5, 0, 0.00322125
+2637, 5, 0, 0.00322125
+2638, 5, 0, 0.00322125
+2639, 5, 0, 0.00322125
+2640, 5, 0, 0.00322125
+2641, 5, 0, 0.00322125
+2642, 5, 0, 0.00322125
+2643, 5, 0, 0.00322125
+2644, 5, 0, 0.00322125
+2645, 5, 0, 0.00322125
+2646, 5, 0, 0.00322125
+2647, 5, 0, 0.00322125
+2648, 5, 0, 0.00322125
+2649, 5, 0, 0.00322125
+2650, 5, 0, 0.00322125
+2651, 5, 0, 0.00322125
+2652, 5, 0, 0.00322125
+2653, 5, 0, 0.00322125
+2654, 5, 0, 0.00322125
+2655, 5, 0, 0.00322125
+2656, 5, 0, 0.00322125
+2657, 5, 0, 0.00322125
+2658, 5, 0, 0.00322125
+2659, 5, 0, 0.00322125
+2660, 5, 0, 0.00322125
+2661, 5, 0, 0.00322125
+2662, 5, 0, 0.00322125
+2663, 5, 0, 0.00322125
+2664, 5, 0, 0.00322125
+2665, 5, 0, 0.00322125
+2666, 5, 0, 0.00322125
+2667, 5, 0, 0.00322125
+2668, 5, 0, 0.00322125
+2669, 5, 0, 0.00322125
+2670, 5, 0, 0.00322125
+2671, 5, 0, 0.00322125
+2672, 5, 0, 0.00322125
+2673, 5, 0, 0.00322125
+2674, 5, 0, 0.00322125
+2675, 5, 0, 0.00322125
+2676, 5, 0, 0.00322125
+2677, 5, 0, 0.00322125
+2678, 5, 0, 0.00322125
+2679, 5, 0, 0.00322125
+2680, 5, 0, 0.00322125
+2681, 5, 0, 0.00322125
+2682, 5, 0, 0.00322125
+2683, 5, 0, 0.00322125
+2684, 5, 0, 0.00322125
+2685, 5, 0, 0.00322125
+2686, 5, 0, 0.00322125
+2687, 5, 0, 0.00322125
+2688, 5, 0, 0.00322125
+2689, 5, 0, 0.00322125
+2690, 5, 0, 0.00322125
+2691, 5, 0, 0.00322125
+2692, 5, 0, 0.00322125
+2693, 5, 0, 0.00322125
+2694, 5, 0, 0.00322125
+2695, 5, 0, 0.00322125
+2696, 5, 0, 0.00322125
+2697, 5, 0, 0.00322125
+2698, 5, 0, 0.00322125
+2699, 5, 0, 0.00322125
+2700, 5, 0, 0.00322125
+2701, 5, 0, 0.00322125
+2702, 5, 0, 0.00322125
+2703, 5, 0, 0.00322125
+2704, 5, 0, 0.00322125
+2705, 5, 0, 0.00322125
+2706, 5, 0, 0.00322125
+2707, 5, 0, 0.00322125
+2708, 5, 0, 0.00322125
+2709, 5, 0, 0.00322125
+2710, 5, 0, 0.00322125
+2711, 5, 0, 0.00322125
+2712, 5, 0, 0.00322125
+2713, 5, 0, 0.00322125
+2714, 5, 0, 0.00322125
+2715, 5, 0, 0.00322125
+2716, 5, 0, 0.00322125
+2717, 5, 0, 0.00322125
+2718, 5, 0, 0.00322125
+2719, 5, 0, 0.00322125
+2720, 5, 0, 0.00322125
+2721, 5, 0, 0.00322125
+2722, 5, 0, 0.00322125
+2723, 5, 0, 0.00322125
+2724, 5, 0, 0.00322125
+2725, 5, 0, 0.00322125
+2726, 5, 0, 0.00322125
+2727, 5, 0, 0.00322125
+2728, 5, 0, 0.00322125
+2729, 5, 0, 0.00322125
+2730, 5, 0, 0.00322125
+2731, 5, 0, 0.00322125
+2732, 5, 0, 0.00322125
+2733, 5, 0, 0.00322125
+2734, 5, 0, 0.00322125
+2735, 5, 0, 0.00322125
+2736, 5, 0, 0.00322125
+2737, 5, 0, 0.00322125
+2738, 5, 0, 0.00322125
+2739, 5, 0, 0.00322125
+2740, 5, 0, 0.00322125
+2741, 5, 0, 0.00322125
+2742, 5, 0, 0.00322125
+2743, 5, 0, 0.00322125
+2744, 5, 0, 0.00322125
+2745, 5, 0, 0.00322125
+2746, 5, 0, 0.00322125
+2747, 5, 0, 0.00322125
+2748, 5, 0, 0.00322125
+2749, 5, 0, 0.00322125
+2750, 5, 0, 0.00322125
+2751, 5, 0, 0.00322125
+2752, 5, 0, 0.00322125
+2753, 5, 0, 0.00322125
+2754, 5, 0, 0.00322125
+2755, 5, 0, 0.00322125
+2756, 5, 0, 0.00322125
+2757, 5, 0, 0.00322125
+2758, 5, 0, 0.00322125
+2759, 5, 0, 0.00322125
+2760, 5, 0, 0.00322125
+2761, 5, 0, 0.00322125
+2762, 5, 0, 0.00322125
+2763, 5, 0, 0.00322125
+2764, 5, 0, 0.00322125
+2765, 5, 0, 0.00322125
+2766, 5, 0, 0.00322125
+2767, 5, 0, 0.00322125
+2768, 5, 0, 0.00322125
+2769, 5, 0, 0.00322125
+2770, 5, 0, 0.00322125
+2771, 5, 0, 0.00322125
+2772, 5, 0, 0.00322125
+2773, 5, 0, 0.00322125
+2774, 5, 0, 0.00322125
+2775, 5, 0, 0.00322125
+2776, 5, 0, 0.00322125
+2777, 5, 0, 0.00322125
+2778, 5, 0, 0.00322125
+2779, 5, 0, 0.00322125
+2780, 5, 0, 0.00322125
+2781, 5, 0, 0.00322125
+2782, 5, 0, 0.00322125
+2783, 5, 0, 0.00322125
+2784, 5, 0, 0.00322125
+2785, 5, 0, 0.00322125
+2786, 5, 0, 0.00322125
+2787, 5, 0, 0.00322125
+2788, 5, 0, 0.00322125
+2789, 5, 0, 0.00322125
+2790, 5, 0, 0.00322125
+2791, 5, 0, 0.00322125
+2792, 5, 0, 0.00322125
+2793, 5, 0, 0.00322125
+2794, 5, 0, 0.00322125
+2795, 5, 0, 0.00322125
+2796, 5, 0, 0.00322125
+2797, 5, 0, 0.00322125
+2798, 5, 0, 0.00322125
+2799, 5, 0, 0.00322125
+2800, 5, 5, 0.00322125
+2801, 5, 5, 0.00322125
+2802, 5, 5, 0.00322125
+2803, 5, 5, 0.0031559
+2804, 5, 5, 0.00322125
+2805, 5, 5, 0.0031559
+2806, 5, 5, 0.0031559
+2807, 5, 5, 0.0031559
+2808, 5, 5, 0.0031559
+2809, 5, 5, 0.00322125
+2810, 5, 5, 5
+2811, 5, 5, 5
+2812, 5, 5, 5
+2813, 5, 5, 5
+2814, 5, 5, 5
+2815, 5, 5, 5
+2816, 5, 5, 5
+2817, 5, 5, 5
+2818, 5, 5, 5
+2819, 5, 5, 5
+2820, 5, 5, 5
+2821, 5, 5, 5
+2822, 5, 5, 5
+2823, 5, 5, 5
+2824, 5, 5, 5
+2825, 5, 5, 5
+2826, 5, 5, 5
+2827, 5, 5, 5
+2828, 5, 5, 5
+2829, 5, 5, 5
+2830, 5, 5, 5
+2831, 5, 5, 5
+2832, 5, 5, 5
+2833, 5, 5, 5
+2834, 5, 5, 5
+2835, 5, 5, 5
+2836, 5, 5, 5
+2837, 5, 5, 5
+2838, 5, 5, 5
+2839, 5, 5, 5
+2840, 5, 5, 5
+2841, 5, 5, 5
+2842, 5, 5, 5
+2843, 5, 5, 5
+2844, 5, 5, 5
+2845, 5, 5, 5
+2846, 5, 5, 5
+2847, 5, 5, 5
+2848, 5, 5, 5
+2849, 5, 5, 5
+2850, 5, 5, 5
+2851, 5, 5, 5
+2852, 5, 5, 5
+2853, 5, 5, 5
+2854, 5, 5, 5
+2855, 5, 5, 5
+2856, 5, 5, 5
+2857, 5, 5, 5
+2858, 5, 5, 5
+2859, 5, 5, 5
+2860, 5, 5, 5
+2861, 5, 5, 5
+2862, 5, 5, 5
+2863, 5, 5, 5
+2864, 5, 5, 5
+2865, 5, 5, 5
+2866, 5, 5, 5
+2867, 5, 5, 5
+2868, 5, 5, 5
+2869, 5, 5, 5
+2870, 5, 5, 5
+2871, 5, 5, 5
+2872, 5, 5, 5
+2873, 5, 5, 5
+2874, 5, 5, 5
+2875, 5, 5, 5
+2876, 5, 5, 5
+2877, 5, 5, 5
+2878, 5, 5, 5
+2879, 5, 5, 5
+2880, 5, 5, 5
+2881, 5, 5, 5
+2882, 5, 5, 5
+2883, 5, 5, 5
+2884, 5, 5, 5
+2885, 5, 5, 5
+2886, 5, 5, 5
+2887, 5, 5, 5
+2888, 5, 5, 5
+2889, 5, 5, 5
+2890, 5, 5, 5
+2891, 5, 5, 5
+2892, 5, 5, 5
+2893, 5, 5, 5
+2894, 5, 5, 5
+2895, 5, 5, 5
+2896, 5, 5, 5
+2897, 5, 5, 5
+2898, 5, 5, 5
+2899, 5, 5, 5
+2900, 5, 5, 5
+2901, 5, 5, 5
+2902, 5, 5, 5
+2903, 5, 5, 5
+2904, 5, 5, 5
+2905, 5, 5, 5
+2906, 5, 5, 5
+2907, 5, 5, 5
+2908, 5, 5, 5
+2909, 5, 5, 5
+2910, 5, 5, 5
+2911, 5, 5, 5
+2912, 5, 5, 5
+2913, 5, 5, 5
+2914, 5, 5, 5
+2915, 5, 5, 5
+2916, 5, 5, 5
+2917, 5, 5, 5
+2918, 5, 5, 5
+2919, 5, 5, 5
+2920, 5, 5, 5
+2921, 5, 5, 5
+2922, 5, 5, 5
+2923, 5, 5, 5
+2924, 5, 5, 5
+2925, 5, 5, 5
+2926, 5, 5, 5
+2927, 5, 5, 5
+2928, 5, 5, 5
+2929, 5, 5, 5
+2930, 5, 5, 5
+2931, 5, 5, 5
+2932, 5, 5, 5
+2933, 5, 5, 5
+2934, 5, 5, 5
+2935, 5, 5, 5
+2936, 5, 5, 5
+2937, 5, 5, 5
+2938, 5, 5, 5
+2939, 5, 5, 5
+2940, 5, 5, 5
+2941, 5, 5, 5
+2942, 5, 5, 5
+2943, 5, 5, 5
+2944, 5, 5, 5
+2945, 5, 5, 5
+2946, 5, 5, 5
+2947, 5, 5, 5
+2948, 5, 5, 5
+2949, 5, 5, 5
+2950, 5, 5, 5
+2951, 5, 5, 5
+2952, 5, 5, 5
+2953, 5, 5, 5
+2954, 5, 5, 5
+2955, 5, 5, 5
+2956, 5, 5, 5
+2957, 5, 5, 5
+2958, 5, 5, 5
+2959, 5, 5, 5
+2960, 5, 5, 5
+2961, 5, 5, 5
+2962, 5, 5, 5
+2963, 5, 5, 5
+2964, 5, 5, 5
+2965, 5, 5, 5
+2966, 5, 5, 5
+2967, 5, 5, 5
+2968, 5, 5, 5
+2969, 5, 5, 5
+2970, 5, 5, 5
+2971, 5, 5, 5
+2972, 5, 5, 5
+2973, 5, 5, 5
+2974, 5, 5, 5
+2975, 5, 5, 5
+2976, 5, 5, 5
+2977, 5, 5, 5
+2978, 5, 5, 5
+2979, 5, 5, 5
+2980, 5, 5, 5
+2981, 5, 5, 5
+2982, 5, 5, 5
+2983, 5, 5, 5
+2984, 5, 5, 5
+2985, 5, 5, 5
+2986, 5, 5, 5
+2987, 5, 5, 5
+2988, 5, 5, 5
+2989, 5, 5, 5
+2990, 5, 5, 5
+2991, 5, 5, 5
+2992, 5, 5, 5
+2993, 5, 5, 5
+2994, 5, 5, 5
+2995, 5, 5, 5
+2996, 5, 5, 5
+2997, 5, 5, 5
+2998, 5, 5, 5
+2999, 5, 5, 5
+3000, 5, 5, 5
+3001, 5, 5, 5
+3002, 5, 5, 5
+3003, 5, 5, 5
+3004, 5, 5, 5
+3005, 5, 5, 5
+3006, 5, 5, 5
+3007, 5, 5, 5
+3008, 5, 5, 5
+3009, 5, 5, 5
+3010, 5, 5, 5
+3011, 5, 5, 5
+3012, 5, 5, 5
+3013, 5, 5, 5
+3014, 5, 5, 5
+3015, 5, 5, 5
+3016, 5, 5, 5
+3017, 5, 5, 5
+3018, 5, 5, 5
+3019, 5, 5, 5
+3020, 5, 5, 5
+3021, 5, 5, 5
+3022, 5, 5, 5
+3023, 5, 5, 5
+3024, 5, 5, 5
+3025, 5, 5, 5
+3026, 5, 5, 5
+3027, 5, 5, 5
+3028, 5, 5, 5
+3029, 5, 5, 5
+3030, 5, 5, 5
+3031, 5, 5, 5
+3032, 5, 5, 5
+3033, 5, 5, 5
+3034, 5, 5, 5
+3035, 5, 5, 5
+3036, 5, 5, 5
+3037, 5, 5, 5
+3038, 5, 5, 5
+3039, 5, 5, 5
+3040, 5, 5, 5
+3041, 5, 5, 5
+3042, 5, 5, 5
+3043, 5, 5, 5
+3044, 5, 5, 5
+3045, 5, 5, 5
+3046, 5, 5, 5
+3047, 5, 5, 5
+3048, 5, 5, 5
+3049, 5, 5, 5
+3050, 5, 5, 5
+3051, 5, 5, 5
+3052, 5, 5, 5
+3053, 5, 5, 5
+3054, 5, 5, 5
+3055, 5, 5, 5
+3056, 5, 5, 5
+3057, 5, 5, 5
+3058, 5, 5, 5
+3059, 5, 5, 5
+3060, 5, 5, 5
+3061, 5, 5, 5
+3062, 5, 5, 5
+3063, 5, 5, 5
+3064, 5, 5, 5
+3065, 5, 5, 5
+3066, 5, 5, 5
+3067, 5, 5, 5
+3068, 5, 5, 5
+3069, 5, 5, 5
+3070, 5, 5, 5
+3071, 5, 5, 5
+3072, 5, 5, 5
+3073, 5, 5, 5
+3074, 5, 5, 5
+3075, 5, 5, 5
+3076, 5, 5, 5
+3077, 5, 5, 5
+3078, 5, 5, 5
+3079, 5, 5, 5
+3080, 5, 5, 5
+3081, 5, 5, 5
+3082, 5, 5, 5
+3083, 5, 5, 5
+3084, 5, 5, 5
+3085, 5, 5, 5
+3086, 5, 5, 5
+3087, 5, 5, 5
+3088, 5, 5, 5
+3089, 5, 5, 5
+3090, 5, 5, 5
+3091, 5, 5, 5
+3092, 5, 5, 5
+3093, 5, 5, 5
+3094, 5, 5, 5
+3095, 5, 5, 5
+3096, 5, 5, 5
+3097, 5, 5, 5
+3098, 5, 5, 5
+3099, 5, 5, 5
+3100, 5, 5, 5
+3101, 5, 5, 5
+3102, 5, 5, 5
+3103, 5, 5, 5
+3104, 5, 5, 5
+3105, 5, 5, 5
+3106, 5, 5, 5
+3107, 5, 5, 5
+3108, 5, 5, 5
+3109, 5, 5, 5
+3110, 5, 5, 5
+3111, 5, 5, 5
+3112, 5, 5, 5
+3113, 5, 5, 5
+3114, 5, 5, 5
+3115, 5, 5, 5
+3116, 5, 5, 5
+3117, 5, 5, 5
+3118, 5, 5, 5
+3119, 5, 5, 5
+3120, 5, 5, 5
+3121, 5, 5, 5
+3122, 5, 5, 5
+3123, 5, 5, 5
+3124, 5, 5, 5
+3125, 5, 5, 5
+3126, 5, 5, 5
+3127, 5, 5, 5
+3128, 5, 5, 5
+3129, 5, 5, 5
+3130, 5, 5, 5
+3131, 5, 5, 5
+3132, 5, 5, 5
+3133, 5, 5, 5
+3134, 5, 5, 5
+3135, 5, 5, 5
+3136, 5, 5, 5
+3137, 5, 5, 5
+3138, 5, 5, 5
+3139, 5, 5, 5
+3140, 5, 5, 5
+3141, 5, 5, 5
+3142, 5, 5, 5
+3143, 5, 5, 5
+3144, 5, 5, 5
+3145, 5, 5, 5
+3146, 5, 5, 5
+3147, 5, 5, 5
+3148, 5, 5, 5
+3149, 5, 5, 5
+3150, 5, 5, 5
+3151, 5, 5, 5
+3152, 5, 5, 5
+3153, 5, 5, 5
+3154, 5, 5, 5
+3155, 5, 5, 5
+3156, 5, 5, 5
+3157, 5, 5, 5
+3158, 5, 5, 5
+3159, 5, 5, 5
+3160, 5, 5, 5
+3161, 5, 5, 5
+3162, 5, 5, 5
+3163, 5, 5, 5
+3164, 5, 5, 5
+3165, 5, 5, 5
+3166, 5, 5, 5
+3167, 5, 5, 5
+3168, 5, 5, 5
+3169, 5, 5, 5
+3170, 5, 5, 5
+3171, 5, 5, 5
+3172, 5, 5, 5
+3173, 5, 5, 5
+3174, 5, 5, 5
+3175, 5, 5, 5
+3176, 5, 5, 5
+3177, 5, 5, 5
+3178, 5, 5, 5
+3179, 5, 5, 5
+3180, 5, 5, 5
+3181, 5, 5, 5
+3182, 5, 5, 5
+3183, 5, 5, 5
+3184, 5, 5, 5
+3185, 5, 5, 5
+3186, 5, 5, 5
+3187, 5, 5, 5
+3188, 5, 5, 5
+3189, 5, 5, 5
+3190, 5, 5, 5
+3191, 5, 5, 5
+3192, 5, 5, 5
+3193, 5, 5, 5
+3194, 5, 5, 5
+3195, 5, 5, 5
+3196, 5, 5, 5
+3197, 5, 5, 5
+3198, 5, 5, 5
+3199, 5, 5, 5
+3200, 0, 0, 5
+3201, 0, 0, 5
+3202, 0, 0, 5
+3203, 0, 0, 5
+3204, 0, 0, 5
+3205, 0, 0, 5
+3206, 0, 0, 5
+3207, 0, 0, 5
+3208, 0, 0, 5
+3209, 0, 0, 5
+3210, 0, 0, 5
+3211, 0, 0, 5
+3212, 0, 0, 5
+3213, 0, 0, 5
+3214, 0, 0, 5
+3215, 0, 0, 5
+3216, 0, 0, 5
+3217, 0, 0, 5
+3218, 0, 0, 5
+3219, 0, 0, 5
+3220, 0, 0, 5
+3221, 0, 0, 5
+3222, 0, 0, 5
+3223, 0, 0, 5
+3224, 0, 0, 5
+3225, 0, 0, 5
+3226, 0, 0, 5
+3227, 0, 0, 5
+3228, 0, 0, 5
+3229, 0, 0, 5
+3230, 0, 0, 5
+3231, 0, 0, 5
+3232, 0, 0, 5
+3233, 0, 0, 5
+3234, 0, 0, 5
+3235, 0, 0, 5
+3236, 0, 0, 5
+3237, 0, 0, 5
+3238, 0, 0, 5
+3239, 0, 0, 5
+3240, 0, 0, 5
+3241, 0, 0, 5
+3242, 0, 0, 5
+3243, 0, 0, 5
+3244, 0, 0, 5
+3245, 0, 0, 5
+3246, 0, 0, 5
+3247, 0, 0, 5
+3248, 0, 0, 5
+3249, 0, 0, 5
+3250, 0, 0, 5
+3251, 0, 0, 5
+3252, 0, 0, 5
+3253, 0, 0, 5
+3254, 0, 0, 5
+3255, 0, 0, 5
+3256, 0, 0, 5
+3257, 0, 0, 5
+3258, 0, 0, 5
+3259, 0, 0, 5
+3260, 0, 0, 5
+3261, 0, 0, 5
+3262, 0, 0, 5
+3263, 0, 0, 5
+3264, 0, 0, 5
+3265, 0, 0, 5
+3266, 0, 0, 5
+3267, 0, 0, 5
+3268, 0, 0, 5
+3269, 0, 0, 5
+3270, 0, 0, 5
+3271, 0, 0, 5
+3272, 0, 0, 5
+3273, 0, 0, 5
+3274, 0, 0, 5
+3275, 0, 0, 5
+3276, 0, 0, 5
+3277, 0, 0, 5
+3278, 0, 0, 5
+3279, 0, 0, 5
+3280, 0, 0, 5
+3281, 0, 0, 5
+3282, 0, 0, 5
+3283, 0, 0, 5
+3284, 0, 0, 5
+3285, 0, 0, 5
+3286, 0, 0, 5
+3287, 0, 0, 5
+3288, 0, 0, 5
+3289, 0, 0, 5
+3290, 0, 0, 5
+3291, 0, 0, 5
+3292, 0, 0, 5
+3293, 0, 0, 5
+3294, 0, 0, 5
+3295, 0, 0, 5
+3296, 0, 0, 5
+3297, 0, 0, 5
+3298, 0, 0, 5
+3299, 0, 0, 5
+3300, 0, 0, 5
+3301, 0, 0, 5
+3302, 0, 0, 5
+3303, 0, 0, 5
+3304, 0, 0, 5
+3305, 0, 0, 5
+3306, 0, 0, 5
+3307, 0, 0, 5
+3308, 0, 0, 5
+3309, 0, 0, 5
+3310, 0, 0, 5
+3311, 0, 0, 5
+3312, 0, 0, 5
+3313, 0, 0, 5
+3314, 0, 0, 5
+3315, 0, 0, 5
+3316, 0, 0, 5
+3317, 0, 0, 5
+3318, 0, 0, 5
+3319, 0, 0, 5
+3320, 0, 0, 5
+3321, 0, 0, 5
+3322, 0, 0, 5
+3323, 0, 0, 5
+3324, 0, 0, 5
+3325, 0, 0, 5
+3326, 0, 0, 5
+3327, 0, 0, 5
+3328, 0, 0, 5
+3329, 0, 0, 5
+3330, 0, 0, 5
+3331, 0, 0, 5
+3332, 0, 0, 5
+3333, 0, 0, 5
+3334, 0, 0, 5
+3335, 0, 0, 5
+3336, 0, 0, 5
+3337, 0, 0, 5
+3338, 0, 0, 5
+3339, 0, 0, 5
+3340, 0, 0, 5
+3341, 0, 0, 5
+3342, 0, 0, 5
+3343, 0, 0, 5
+3344, 0, 0, 5
+3345, 0, 0, 5
+3346, 0, 0, 5
+3347, 0, 0, 5
+3348, 0, 0, 5
+3349, 0, 0, 5
+3350, 0, 0, 5
+3351, 0, 0, 5
+3352, 0, 0, 5
+3353, 0, 0, 5
+3354, 0, 0, 5
+3355, 0, 0, 5
+3356, 0, 0, 5
+3357, 0, 0, 5
+3358, 0, 0, 5
+3359, 0, 0, 5
+3360, 0, 0, 5
+3361, 0, 0, 5
+3362, 0, 0, 5
+3363, 0, 0, 5
+3364, 0, 0, 5
+3365, 0, 0, 5
+3366, 0, 0, 5
+3367, 0, 0, 5
+3368, 0, 0, 5
+3369, 0, 0, 5
+3370, 0, 0, 5
+3371, 0, 0, 5
+3372, 0, 0, 5
+3373, 0, 0, 5
+3374, 0, 0, 5
+3375, 0, 0, 5
+3376, 0, 0, 5
+3377, 0, 0, 5
+3378, 0, 0, 5
+3379, 0, 0, 5
+3380, 0, 0, 5
+3381, 0, 0, 5
+3382, 0, 0, 5
+3383, 0, 0, 5
+3384, 0, 0, 5
+3385, 0, 0, 5
+3386, 0, 0, 5
+3387, 0, 0, 5
+3388, 0, 0, 5
+3389, 0, 0, 5
+3390, 0, 0, 5
+3391, 0, 0, 5
+3392, 0, 0, 5
+3393, 0, 0, 5
+3394, 0, 0, 5
+3395, 0, 0, 5
+3396, 0, 0, 5
+3397, 0, 0, 5
+3398, 0, 0, 5
+3399, 0, 0, 5
+3400, 0, 0, 5
+3401, 0, 0, 5
+3402, 0, 0, 5
+3403, 0, 0, 5
+3404, 0, 0, 5
+3405, 0, 0, 5
+3406, 0, 0, 5
+3407, 0, 0, 5
+3408, 0, 0, 5
+3409, 0, 0, 5
+3410, 0, 0, 5
+3411, 0, 0, 5
+3412, 0, 0, 5
+3413, 0, 0, 5
+3414, 0, 0, 5
+3415, 0, 0, 5
+3416, 0, 0, 5
+3417, 0, 0, 5
+3418, 0, 0, 5
+3419, 0, 0, 5
+3420, 0, 0, 5
+3421, 0, 0, 5
+3422, 0, 0, 5
+3423, 0, 0, 5
+3424, 0, 0, 5
+3425, 0, 0, 5
+3426, 0, 0, 5
+3427, 0, 0, 5
+3428, 0, 0, 5
+3429, 0, 0, 5
+3430, 0, 0, 5
+3431, 0, 0, 5
+3432, 0, 0, 5
+3433, 0, 0, 5
+3434, 0, 0, 5
+3435, 0, 0, 5
+3436, 0, 0, 5
+3437, 0, 0, 5
+3438, 0, 0, 5
+3439, 0, 0, 5
+3440, 0, 0, 5
+3441, 0, 0, 5
+3442, 0, 0, 5
+3443, 0, 0, 5
+3444, 0, 0, 5
+3445, 0, 0, 5
+3446, 0, 0, 5
+3447, 0, 0, 5
+3448, 0, 0, 5
+3449, 0, 0, 5
+3450, 0, 0, 5
+3451, 0, 0, 5
+3452, 0, 0, 5
+3453, 0, 0, 5
+3454, 0, 0, 5
+3455, 0, 0, 5
+3456, 0, 0, 5
+3457, 0, 0, 5
+3458, 0, 0, 5
+3459, 0, 0, 5
+3460, 0, 0, 5
+3461, 0, 0, 5
+3462, 0, 0, 5
+3463, 0, 0, 5
+3464, 0, 0, 5
+3465, 0, 0, 5
+3466, 0, 0, 5
+3467, 0, 0, 5
+3468, 0, 0, 5
+3469, 0, 0, 5
+3470, 0, 0, 5
+3471, 0, 0, 5
+3472, 0, 0, 5
+3473, 0, 0, 5
+3474, 0, 0, 5
+3475, 0, 0, 5
+3476, 0, 0, 5
+3477, 0, 0, 5
+3478, 0, 0, 5
+3479, 0, 0, 5
+3480, 0, 0, 5
+3481, 0, 0, 5
+3482, 0, 0, 5
+3483, 0, 0, 5
+3484, 0, 0, 5
+3485, 0, 0, 5
+3486, 0, 0, 5
+3487, 0, 0, 5
+3488, 0, 0, 5
+3489, 0, 0, 5
+3490, 0, 0, 5
+3491, 0, 0, 5
+3492, 0, 0, 5
+3493, 0, 0, 5
+3494, 0, 0, 5
+3495, 0, 0, 5
+3496, 0, 0, 5
+3497, 0, 0, 5
+3498, 0, 0, 5
+3499, 0, 0, 5
+3500, 0, 0, 5
+3501, 0, 0, 5
+3502, 0, 0, 5
+3503, 0, 0, 5
+3504, 0, 0, 5
+3505, 0, 0, 5
+3506, 0, 0, 5
+3507, 0, 0, 5
+3508, 0, 0, 5
+3509, 0, 0, 5
+3510, 0, 0, 5
+3511, 0, 0, 5
+3512, 0, 0, 5
+3513, 0, 0, 5
+3514, 0, 0, 5
+3515, 0, 0, 5
+3516, 0, 0, 5
+3517, 0, 0, 5
+3518, 0, 0, 5
+3519, 0, 0, 5
+3520, 0, 0, 5
+3521, 0, 0, 5
+3522, 0, 0, 5
+3523, 0, 0, 5
+3524, 0, 0, 5
+3525, 0, 0, 5
+3526, 0, 0, 5
+3527, 0, 0, 5
+3528, 0, 0, 5
+3529, 0, 0, 5
+3530, 0, 0, 5
+3531, 0, 0, 5
+3532, 0, 0, 5
+3533, 0, 0, 5
+3534, 0, 0, 5
+3535, 0, 0, 5
+3536, 0, 0, 5
+3537, 0, 0, 5
+3538, 0, 0, 5
+3539, 0, 0, 5
+3540, 0, 0, 5
+3541, 0, 0, 5
+3542, 0, 0, 5
+3543, 0, 0, 5
+3544, 0, 0, 5
+3545, 0, 0, 5
+3546, 0, 0, 5
+3547, 0, 0, 5
+3548, 0, 0, 5
+3549, 0, 0, 5
+3550, 0, 0, 5
+3551, 0, 0, 5
+3552, 0, 0, 5
+3553, 0, 0, 5
+3554, 0, 0, 5
+3555, 0, 0, 5
+3556, 0, 0, 5
+3557, 0, 0, 5
+3558, 0, 0, 5
+3559, 0, 0, 5
+3560, 0, 0, 5
+3561, 0, 0, 5
+3562, 0, 0, 5
+3563, 0, 0, 5
+3564, 0, 0, 5
+3565, 0, 0, 5
+3566, 0, 0, 5
+3567, 0, 0, 5
+3568, 0, 0, 5
+3569, 0, 0, 5
+3570, 0, 0, 5
+3571, 0, 0, 5
+3572, 0, 0, 5
+3573, 0, 0, 5
+3574, 0, 0, 5
+3575, 0, 0, 5
+3576, 0, 0, 5
+3577, 0, 0, 5
+3578, 0, 0, 5
+3579, 0, 0, 5
+3580, 0, 0, 5
+3581, 0, 0, 5
+3582, 0, 0, 5
+3583, 0, 0, 5
+3584, 0, 0, 5
+3585, 0, 0, 5
+3586, 0, 0, 5
+3587, 0, 0, 5
+3588, 0, 0, 5
+3589, 0, 0, 5
+3590, 0, 0, 5
+3591, 0, 0, 5
+3592, 0, 0, 5
+3593, 0, 0, 5
+3594, 0, 0, 5
+3595, 0, 0, 5
+3596, 0, 0, 5
+3597, 0, 0, 5
+3598, 0, 0, 5
+3599, 0, 0, 5
+3600, 0, 5, 5
+3601, 0, 5, 5
+3602, 0, 5, 5
+3603, 0, 5, 5
+3604, 0, 5, 5
+3605, 0, 5, 5
+3606, 0, 5, 5
+3607, 0, 5, 5
+3608, 0, 5, 5
+3609, 0, 5, 5
+3610, 0, 5, 5
+3611, 0, 5, 5
+3612, 0, 5, 5
+3613, 0, 5, 0
+3614, 0, 5, 0
+3615, 0, 5, 0
+3616, 0, 5, 0.0031559
+3617, 0, 5, 0.0031559
+3618, 0, 5, 0.00322125
+3619, 0, 5, 0.0031559
+3620, 0, 5, 0.00322125
+3621, 0, 5, 0.00322125
+3622, 0, 5, 0.00322125
+3623, 0, 5, 0.00322125
+3624, 0, 5, 0.00322125
+3625, 0, 5, 0.00322125
+3626, 0, 5, 0.00322125
+3627, 0, 5, 0.00322125
+3628, 0, 5, 0.00322125
+3629, 0, 5, 0.00322125
+3630, 0, 5, 0.00322125
+3631, 0, 5, 0.00322125
+3632, 0, 5, 0.00322125
+3633, 0, 5, 0.00322125
+3634, 0, 5, 0.00322125
+3635, 0, 5, 0.00322125
+3636, 0, 5, 0.00322125
+3637, 0, 5, 0.00322125
+3638, 0, 5, 0.00322125
+3639, 0, 5, 0.00322125
+3640, 0, 5, 0.00322125
+3641, 0, 5, 0.00322125
+3642, 0, 5, 0.00322125
+3643, 0, 5, 0.00322125
+3644, 0, 5, 0.00322125
+3645, 0, 5, 0.00322125
+3646, 0, 5, 0.00322125
+3647, 0, 5, 0.00322125
+3648, 0, 5, 0.00322125
+3649, 0, 5, 0.00322125
+3650, 0, 5, 0.00322125
+3651, 0, 5, 0.00322125
+3652, 0, 5, 0.00322125
+3653, 0, 5, 0.00322125
+3654, 0, 5, 0.00322125
+3655, 0, 5, 0.00322125
+3656, 0, 5, 0.00322125
+3657, 0, 5, 0.00322125
+3658, 0, 5, 0.00322125
+3659, 0, 5, 0.00322125
+3660, 0, 5, 0.00322125
+3661, 0, 5, 0.00322125
+3662, 0, 5, 0.00322125
+3663, 0, 5, 0.00322125
+3664, 0, 5, 0.00322125
+3665, 0, 5, 0.00322125
+3666, 0, 5, 0.00322125
+3667, 0, 5, 0.00322125
+3668, 0, 5, 0.00322125
+3669, 0, 5, 0.00322125
+3670, 0, 5, 0.00322125
+3671, 0, 5, 0.00322125
+3672, 0, 5, 0.00322125
+3673, 0, 5, 0.00322125
+3674, 0, 5, 0.00322125
+3675, 0, 5, 0.00322125
+3676, 0, 5, 0.00322125
+3677, 0, 5, 0.00322125
+3678, 0, 5, 0.00322125
+3679, 0, 5, 0.00322125
+3680, 0, 5, 0.00322125
+3681, 0, 5, 0.00322125
+3682, 0, 5, 0.00322125
+3683, 0, 5, 0.00322125
+3684, 0, 5, 0.00322125
+3685, 0, 5, 0.00322125
+3686, 0, 5, 0.00322125
+3687, 0, 5, 0.00322125
+3688, 0, 5, 0.00322125
+3689, 0, 5, 0.00322125
+3690, 0, 5, 0.00322125
+3691, 0, 5, 0.00322125
+3692, 0, 5, 0.00322125
+3693, 0, 5, 0.00322125
+3694, 0, 5, 0.00322125
+3695, 0, 5, 0.00322125
+3696, 0, 5, 0.00322125
+3697, 0, 5, 0.00322125
+3698, 0, 5, 0.00322125
+3699, 0, 5, 0.00322125
+3700, 0, 5, 0.00322125
+3701, 0, 5, 0.00322125
+3702, 0, 5, 0.00322125
+3703, 0, 5, 0.00322125
+3704, 0, 5, 0.00322125
+3705, 0, 5, 0.00322125
+3706, 0, 5, 0.00322125
+3707, 0, 5, 0.00322125
+3708, 0, 5, 0.00322125
+3709, 0, 5, 0.00322125
+3710, 0, 5, 0.00322125
+3711, 0, 5, 0.00322125
+3712, 0, 5, 0.00322125
+3713, 0, 5, 0.00322125
+3714, 0, 5, 0.00322125
+3715, 0, 5, 0.00322125
+3716, 0, 5, 0.00322125
+3717, 0, 5, 0.00322125
+3718, 0, 5, 0.00322125
+3719, 0, 5, 0.00322125
+3720, 0, 5, 0.00322125
+3721, 0, 5, 0.00322125
+3722, 0, 5, 0.00322125
+3723, 0, 5, 0.00322125
+3724, 0, 5, 0.00322125
+3725, 0, 5, 0.00322125
+3726, 0, 5, 0.00322125
+3727, 0, 5, 0.00322125
+3728, 0, 5, 0.00322125
+3729, 0, 5, 0.00322125
+3730, 0, 5, 0.00322125
+3731, 0, 5, 0.00322125
+3732, 0, 5, 0.00322125
+3733, 0, 5, 0.00322125
+3734, 0, 5, 0.00322125
+3735, 0, 5, 0.00322125
+3736, 0, 5, 0.00322125
+3737, 0, 5, 0.00322125
+3738, 0, 5, 0.00322125
+3739, 0, 5, 0.00322125
+3740, 0, 5, 0.00322125
+3741, 0, 5, 0.00322125
+3742, 0, 5, 0.00322125
+3743, 0, 5, 0.00322125
+3744, 0, 5, 0.00322125
+3745, 0, 5, 0.00322125
+3746, 0, 5, 0.00322125
+3747, 0, 5, 0.00322125
+3748, 0, 5, 0.00322125
+3749, 0, 5, 0.00322125
+3750, 0, 5, 0.00322125
+3751, 0, 5, 0.00322125
+3752, 0, 5, 0.00322125
+3753, 0, 5, 0.00322125
+3754, 0, 5, 0.00322125
+3755, 0, 5, 0.00322125
+3756, 0, 5, 0.00322125
+3757, 0, 5, 0.00322125
+3758, 0, 5, 0.00322125
+3759, 0, 5, 0.00322125
+3760, 0, 5, 0.00322125
+3761, 0, 5, 0.00322125
+3762, 0, 5, 0.00322125
+3763, 0, 5, 0.00322125
+3764, 0, 5, 0.00322125
+3765, 0, 5, 0.00322125
+3766, 0, 5, 0.00322125
+3767, 0, 5, 0.00322125
+3768, 0, 5, 0.00322125
+3769, 0, 5, 0.00322125
+3770, 0, 5, 0.00322125
+3771, 0, 5, 0.00322125
+3772, 0, 5, 0.00322125
+3773, 0, 5, 0.00322125
+3774, 0, 5, 0.00322125
+3775, 0, 5, 0.00322125
+3776, 0, 5, 0.00322125
+3777, 0, 5, 0.00322125
+3778, 0, 5, 0.00322125
+3779, 0, 5, 0.00322125
+3780, 0, 5, 0.00322125
+3781, 0, 5, 0.00322125
+3782, 0, 5, 0.00322125
+3783, 0, 5, 0.00322125
+3784, 0, 5, 0.00322125
+3785, 0, 5, 0.00322125
+3786, 0, 5, 0.00322125
+3787, 0, 5, 0.00322125
+3788, 0, 5, 0.00322125
+3789, 0, 5, 0.00322125
+3790, 0, 5, 0.00322125
+3791, 0, 5, 0.00322125
+3792, 0, 5, 0.00322125
+3793, 0, 5, 0.00322125
+3794, 0, 5, 0.00322125
+3795, 0, 5, 0.00322125
+3796, 0, 5, 0.00322125
+3797, 0, 5, 0.00322125
+3798, 0, 5, 0.00322125
+3799, 0, 5, 0.00322125
+3800, 0, 5, 0.00322125
+3801, 0, 5, 0.00322125
+3802, 0, 5, 0.00322125
+3803, 0, 5, 0.00322125
+3804, 0, 5, 0.00322125
+3805, 0, 5, 0.00322125
+3806, 0, 5, 0.00322125
+3807, 0, 5, 0.00322125
+3808, 0, 5, 0.00322125
+3809, 0, 5, 0.00322125
+3810, 0, 5, 0.00322125
+3811, 0, 5, 0.00322125
+3812, 0, 5, 0.00322125
+3813, 0, 5, 0.00322125
+3814, 0, 5, 0.00322125
+3815, 0, 5, 0.00322125
+3816, 0, 5, 0.00322125
+3817, 0, 5, 0.00322125
+3818, 0, 5, 0.00322125
+3819, 0, 5, 0.00322125
+3820, 0, 5, 0.00322125
+3821, 0, 5, 0.00322125
+3822, 0, 5, 0.00322125
+3823, 0, 5, 0.00322125
+3824, 0, 5, 0.00322125
+3825, 0, 5, 0.00322125
+3826, 0, 5, 0.00322125
+3827, 0, 5, 0.00322125
+3828, 0, 5, 0.00322125
+3829, 0, 5, 0.00322125
+3830, 0, 5, 0.00322125
+3831, 0, 5, 0.00322125
+3832, 0, 5, 0.00322125
+3833, 0, 5, 0.00322125
+3834, 0, 5, 0.00322125
+3835, 0, 5, 0.00322125
+3836, 0, 5, 0.00322125
+3837, 0, 5, 0.00322125
+3838, 0, 5, 0.00322125
+3839, 0, 5, 0.00322125
+3840, 0, 5, 0.00322125
+3841, 0, 5, 0.00322125
+3842, 0, 5, 0.00322125
+3843, 0, 5, 0.00322125
+3844, 0, 5, 0.00322125
+3845, 0, 5, 0.00322125
+3846, 0, 5, 0.00322125
+3847, 0, 5, 0.00322125
+3848, 0, 5, 0.00322125
+3849, 0, 5, 0.00322125
+3850, 0, 5, 0.00322125
+3851, 0, 5, 0.00322125
+3852, 0, 5, 0.00322125
+3853, 0, 5, 0.00322125
+3854, 0, 5, 0.00322125
+3855, 0, 5, 0.00322125
+3856, 0, 5, 0.00322125
+3857, 0, 5, 0.00322125
+3858, 0, 5, 0.00322125
+3859, 0, 5, 0.00322125
+3860, 0, 5, 0.00322125
+3861, 0, 5, 0.00322125
+3862, 0, 5, 0.00322125
+3863, 0, 5, 0.00322125
+3864, 0, 5, 0.00322125
+3865, 0, 5, 0.00322125
+3866, 0, 5, 0.00322125
+3867, 0, 5, 0.00322125
+3868, 0, 5, 0.00322125
+3869, 0, 5, 0.00322125
+3870, 0, 5, 0.00322125
+3871, 0, 5, 0.00322125
+3872, 0, 5, 0.00322125
+3873, 0, 5, 0.00322125
+3874, 0, 5, 0.00322125
+3875, 0, 5, 0.00322125
+3876, 0, 5, 0.00322125
+3877, 0, 5, 0.00322125
+3878, 0, 5, 0.00322125
+3879, 0, 5, 0.00322125
+3880, 0, 5, 0.00322125
+3881, 0, 5, 0.00322125
+3882, 0, 5, 0.00322125
+3883, 0, 5, 0.00322125
+3884, 0, 5, 0.00322125
+3885, 0, 5, 0.00322125
+3886, 0, 5, 0.00322125
+3887, 0, 5, 0.00322125
+3888, 0, 5, 0.00322125
+3889, 0, 5, 0.00322125
+3890, 0, 5, 0.00322125
+3891, 0, 5, 0.00322125
+3892, 0, 5, 0.00322125
+3893, 0, 5, 0.00322125
+3894, 0, 5, 0.00322125
+3895, 0, 5, 0.00322125
+3896, 0, 5, 0.00322125
+3897, 0, 5, 0.00322125
+3898, 0, 5, 0.00322125
+3899, 0, 5, 0.00322125
+3900, 0, 5, 0.00322125
+3901, 0, 5, 0.00322125
+3902, 0, 5, 0.00322125
+3903, 0, 5, 0.00322125
+3904, 0, 5, 0.00322125
+3905, 0, 5, 0.00322125
+3906, 0, 5, 0.00322125
+3907, 0, 5, 0.00322125
+3908, 0, 5, 0.00322125
+3909, 0, 5, 0.00322125
+3910, 0, 5, 0.00322125
+3911, 0, 5, 0.00322125
+3912, 0, 5, 0.00322125
+3913, 0, 5, 0.00322125
+3914, 0, 5, 0.00322125
+3915, 0, 5, 0.00322125
+3916, 0, 5, 0.00322125
+3917, 0, 5, 0.00322125
+3918, 0, 5, 0.00322125
+3919, 0, 5, 0.00322125
+3920, 0, 5, 0.00322125
+3921, 0, 5, 0.00322125
+3922, 0, 5, 0.00322125
+3923, 0, 5, 0.00322125
+3924, 0, 5, 0.00322125
+3925, 0, 5, 0.00322125
+3926, 0, 5, 0.00322125
+3927, 0, 5, 0.00322125
+3928, 0, 5, 0.00322125
+3929, 0, 5, 0.00322125
+3930, 0, 5, 0.00322125
+3931, 0, 5, 0.00322125
+3932, 0, 5, 0.00322125
+3933, 0, 5, 0.00322125
+3934, 0, 5, 0.00322125
+3935, 0, 5, 0.00322125
+3936, 0, 5, 0.00322125
+3937, 0, 5, 0.00322125
+3938, 0, 5, 0.00322125
+3939, 0, 5, 0.00322125
+3940, 0, 5, 0.00322125
+3941, 0, 5, 0.00322125
+3942, 0, 5, 0.00322125
+3943, 0, 5, 0.00322125
+3944, 0, 5, 0.00322125
+3945, 0, 5, 0.00322125
+3946, 0, 5, 0.00322125
+3947, 0, 5, 0.00322125
+3948, 0, 5, 0.00322125
+3949, 0, 5, 0.00322125
+3950, 0, 5, 0.00322125
+3951, 0, 5, 0.00322125
+3952, 0, 5, 0.00322125
+3953, 0, 5, 0.00322125
+3954, 0, 5, 0.00322125
+3955, 0, 5, 0.00322125
+3956, 0, 5, 0.00322125
+3957, 0, 5, 0.00322125
+3958, 0, 5, 0.00322125
+3959, 0, 5, 0.00322125
+3960, 0, 5, 0.00322125
+3961, 0, 5, 0.00322125
+3962, 0, 5, 0.00322125
+3963, 0, 5, 0.00322125
+3964, 0, 5, 0.00322125
+3965, 0, 5, 0.00322125
+3966, 0, 5, 0.00322125
+3967, 0, 5, 0.00322125
+3968, 0, 5, 0.00322125
+3969, 0, 5, 0.00322125
+3970, 0, 5, 0.00322125
+3971, 0, 5, 0.00322125
+3972, 0, 5, 0.00322125
+3973, 0, 5, 0.00322125
+3974, 0, 5, 0.00322125
+3975, 0, 5, 0.00322125
+3976, 0, 5, 0.00322125
+3977, 0, 5, 0.00322125
+3978, 0, 5, 0.00322125
+3979, 0, 5, 0.00322125
+3980, 0, 5, 0.00322125
+3981, 0, 5, 0.00322125
+3982, 0, 5, 0.00322125
+3983, 0, 5, 0.00322125
+3984, 0, 5, 0.00322125
+3985, 0, 5, 0.00322125
+3986, 0, 5, 0.00322125
+3987, 0, 5, 0.00322125
+3988, 0, 5, 0.00322125
+3989, 0, 5, 0.00322125
+3990, 0, 5, 0.00322125
+3991, 0, 5, 0.00322125
+3992, 0, 5, 0.00322125
+3993, 0, 5, 0.00322125
+3994, 0, 5, 0.00322125
+3995, 0, 5, 0.00322125
+3996, 0, 5, 0.00322125
+3997, 0, 5, 0.00322125
+3998, 0, 5, 0.00322125
+3999, 0, 5, 0.00322125
+4000, 5, 0, 0.00322125
+4001, 5, 0, 0.00322125
+4002, 5, 0, 0.00322125
+4003, 5, 0, 0.00322125
+4004, 5, 0, 0.00322125
+4005, 5, 0, 0.00322125
+4006, 5, 0, 0.00322125
+4007, 5, 0, 0.00322125
+4008, 5, 0, 0.00322125
+4009, 5, 0, 0.00322125
+4010, 5, 0, 0.00322125
+4011, 5, 0, 0.00322125
+4012, 5, 0, 0.00322125
+4013, 5, 0, 0.00322125
+4014, 5, 0, 0.00322125
+4015, 5, 0, 0.00322125
+4016, 5, 0, 0.00322125
+4017, 5, 0, 0.00322125
+4018, 5, 0, 0.00322125
+4019, 5, 0, 0.00322125
+4020, 5, 0, 0.00322125
+4021, 5, 0, 0.00322125
+4022, 5, 0, 0.00322125
+4023, 5, 0, 0.0031559
+4024, 5, 0, 0.00322125
+4025, 5, 0, 0.00322125
+4026, 5, 0, 0.00322125
+4027, 5, 0, 0.00322125
+4028, 5, 0, 0.00322125
+4029, 5, 0, 0.00322125
+4030, 5, 0, 0.00322125
+4031, 5, 0, 0.00322125
+4032, 5, 0, 0.00322125
+4033, 5, 0, 0.00322125
+4034, 5, 0, 0.00322125
+4035, 5, 0, 0.00322125
+4036, 5, 0, 0.00322125
+4037, 5, 0, 0.00322125
+4038, 5, 0, 0.00322125
+4039, 5, 0, 0.00322125
+4040, 5, 0, 0.00322125
+4041, 5, 0, 0.00322125
+4042, 5, 0, 0.00322125
+4043, 5, 0, 0.00322125
+4044, 5, 0, 0.00322125
+4045, 5, 0, 0.00322125
+4046, 5, 0, 0.00322125
+4047, 5, 0, 0.00322125
+4048, 5, 0, 0.00322125
+4049, 5, 0, 0.00322125
+4050, 5, 0, 0.00322125
+4051, 5, 0, 0.00322125
+4052, 5, 0, 0.00322125
+4053, 5, 0, 0.00322125
+4054, 5, 0, 0.00322125
+4055, 5, 0, 0.00322125
+4056, 5, 0, 0.00322125
+4057, 5, 0, 0.00322125
+4058, 5, 0, 0.00322125
+4059, 5, 0, 0.00322125
+4060, 5, 0, 0.00322125
+4061, 5, 0, 0.00322125
+4062, 5, 0, 0.00322125
+4063, 5, 0, 0.00322125
+4064, 5, 0, 0.00322125
+4065, 5, 0, 0.00322125
+4066, 5, 0, 0.00322125
+4067, 5, 0, 0.00322125
+4068, 5, 0, 0.00322125
+4069, 5, 0, 0.00322125
+4070, 5, 0, 0.00322125
+4071, 5, 0, 0.00322125
+4072, 5, 0, 0.00322125
+4073, 5, 0, 0.00322125
+4074, 5, 0, 0.00322125
+4075, 5, 0, 0.00322125
+4076, 5, 0, 0.00322125
+4077, 5, 0, 0.00322125
+4078, 5, 0, 0.00322125
+4079, 5, 0, 0.00322125
+4080, 5, 0, 0.00322125
+4081, 5, 0, 0.00322125
+4082, 5, 0, 0.00322125
+4083, 5, 0, 0.00322125
+4084, 5, 0, 0.00322125
+4085, 5, 0, 0.00322125
+4086, 5, 0, 0.00322125
+4087, 5, 0, 0.00322125
+4088, 5, 0, 0.00322125
+4089, 5, 0, 0.00322125
+4090, 5, 0, 0.00322125
+4091, 5, 0, 0.00322125
+4092, 5, 0, 0.00322125
+4093, 5, 0, 0.00322125
+4094, 5, 0, 0.00322125
+4095, 5, 0, 0.00322125
+4096, 5, 0, 0.00322125
+4097, 5, 0, 0.00322125
+4098, 5, 0, 0.00322125
+4099, 5, 0, 0.00322125
+4100, 5, 0, 0.00322125
+4101, 5, 0, 0.00322125
+4102, 5, 0, 0.00322125
+4103, 5, 0, 0.00322125
+4104, 5, 0, 0.00322125
+4105, 5, 0, 0.00322125
+4106, 5, 0, 0.00322125
+4107, 5, 0, 0.00322125
+4108, 5, 0, 0.00322125
+4109, 5, 0, 0.00322125
+4110, 5, 0, 0.00322125
+4111, 5, 0, 0.00322125
+4112, 5, 0, 0.00322125
+4113, 5, 0, 0.00322125
+4114, 5, 0, 0.00322125
+4115, 5, 0, 0.00322125
+4116, 5, 0, 0.00322125
+4117, 5, 0, 0.00322125
+4118, 5, 0, 0.00322125
+4119, 5, 0, 0.00322125
+4120, 5, 0, 0.00322125
+4121, 5, 0, 0.00322125
+4122, 5, 0, 0.00322125
+4123, 5, 0, 0.00322125
+4124, 5, 0, 0.00322125
+4125, 5, 0, 0.00322125
+4126, 5, 0, 0.00322125
+4127, 5, 0, 0.00322125
+4128, 5, 0, 0.00322125
+4129, 5, 0, 0.00322125
+4130, 5, 0, 0.00322125
+4131, 5, 0, 0.00322125
+4132, 5, 0, 0.00322125
+4133, 5, 0, 0.00322125
+4134, 5, 0, 0.00322125
+4135, 5, 0, 0.00322125
+4136, 5, 0, 0.00322125
+4137, 5, 0, 0.00322125
+4138, 5, 0, 0.00322125
+4139, 5, 0, 0.00322125
+4140, 5, 0, 0.00322125
+4141, 5, 0, 0.00322125
+4142, 5, 0, 0.00322125
+4143, 5, 0, 0.00322125
+4144, 5, 0, 0.00322125
+4145, 5, 0, 0.00322125
+4146, 5, 0, 0.00322125
+4147, 5, 0, 0.00322125
+4148, 5, 0, 0.00322125
+4149, 5, 0, 0.00322125
+4150, 5, 0, 0.00322125
+4151, 5, 0, 0.00322125
+4152, 5, 0, 0.00322125
+4153, 5, 0, 0.00322125
+4154, 5, 0, 0.00322125
+4155, 5, 0, 0.00322125
+4156, 5, 0, 0.00322125
+4157, 5, 0, 0.00322125
+4158, 5, 0, 0.00322125
+4159, 5, 0, 0.00322125
+4160, 5, 0, 0.00322125
+4161, 5, 0, 0.00322125
+4162, 5, 0, 0.00322125
+4163, 5, 0, 0.00322125
+4164, 5, 0, 0.00322125
+4165, 5, 0, 0.00322125
+4166, 5, 0, 0.00322125
+4167, 5, 0, 0.00322125
+4168, 5, 0, 0.00322125
+4169, 5, 0, 0.00322125
+4170, 5, 0, 0.00322125
+4171, 5, 0, 0.00322125
+4172, 5, 0, 0.00322125
+4173, 5, 0, 0.00322125
+4174, 5, 0, 0.00322125
+4175, 5, 0, 0.00322125
+4176, 5, 0, 0.00322125
+4177, 5, 0, 0.00322125
+4178, 5, 0, 0.00322125
+4179, 5, 0, 0.00322125
+4180, 5, 0, 0.00322125
+4181, 5, 0, 0.00322125
+4182, 5, 0, 0.00322125
+4183, 5, 0, 0.00322125
+4184, 5, 0, 0.00322125
+4185, 5, 0, 0.00322125
+4186, 5, 0, 0.00322125
+4187, 5, 0, 0.00322125
+4188, 5, 0, 0.00322125
+4189, 5, 0, 0.00322125
+4190, 5, 0, 0.00322125
+4191, 5, 0, 0.00322125
+4192, 5, 0, 0.00322125
+4193, 5, 0, 0.00322125
+4194, 5, 0, 0.00322125
+4195, 5, 0, 0.00322125
+4196, 5, 0, 0.00322125
+4197, 5, 0, 0.00322125
+4198, 5, 0, 0.00322125
+4199, 5, 0, 0.00322125
+4200, 5, 0, 0.00322125
+4201, 5, 0, 0.00322125
+4202, 5, 0, 0.00322125
+4203, 5, 0, 0.00322125
+4204, 5, 0, 0.00322125
+4205, 5, 0, 0.00322125
+4206, 5, 0, 0.00322125
+4207, 5, 0, 0.00322125
+4208, 5, 0, 0.00322125
+4209, 5, 0, 0.00322125
+4210, 5, 0, 0.00322125
+4211, 5, 0, 0.00322125
+4212, 5, 0, 0.00322125
+4213, 5, 0, 0.00322125
+4214, 5, 0, 0.00322125
+4215, 5, 0, 0.00322125
+4216, 5, 0, 0.00322125
+4217, 5, 0, 0.00322125
+4218, 5, 0, 0.00322125
+4219, 5, 0, 0.00322125
+4220, 5, 0, 0.00322125
+4221, 5, 0, 0.00322125
+4222, 5, 0, 0.00322125
+4223, 5, 0, 0.00322125
+4224, 5, 0, 0.00322125
+4225, 5, 0, 0.00322125
+4226, 5, 0, 0.00322125
+4227, 5, 0, 0.00322125
+4228, 5, 0, 0.00322125
+4229, 5, 0, 0.00322125
+4230, 5, 0, 0.00322125
+4231, 5, 0, 0.00322125
+4232, 5, 0, 0.00322125
+4233, 5, 0, 0.00322125
+4234, 5, 0, 0.00322125
+4235, 5, 0, 0.00322125
+4236, 5, 0, 0.00322125
+4237, 5, 0, 0.00322125
+4238, 5, 0, 0.00322125
+4239, 5, 0, 0.00322125
+4240, 5, 0, 0.00322125
+4241, 5, 0, 0.00322125
+4242, 5, 0, 0.00322125
+4243, 5, 0, 0.00322125
+4244, 5, 0, 0.00322125
+4245, 5, 0, 0.00322125
+4246, 5, 0, 0.00322125
+4247, 5, 0, 0.00322125
+4248, 5, 0, 0.00322125
+4249, 5, 0, 0.00322125
+4250, 5, 0, 0.00322125
+4251, 5, 0, 0.00322125
+4252, 5, 0, 0.00322125
+4253, 5, 0, 0.00322125
+4254, 5, 0, 0.00322125
+4255, 5, 0, 0.00322125
+4256, 5, 0, 0.00322125
+4257, 5, 0, 0.00322125
+4258, 5, 0, 0.00322125
+4259, 5, 0, 0.00322125
+4260, 5, 0, 0.00322125
+4261, 5, 0, 0.00322125
+4262, 5, 0, 0.00322125
+4263, 5, 0, 0.00322125
+4264, 5, 0, 0.00322125
+4265, 5, 0, 0.00322125
+4266, 5, 0, 0.00322125
+4267, 5, 0, 0.00322125
+4268, 5, 0, 0.00322125
+4269, 5, 0, 0.00322125
+4270, 5, 0, 0.00322125
+4271, 5, 0, 0.00322125
+4272, 5, 0, 0.00322125
+4273, 5, 0, 0.00322125
+4274, 5, 0, 0.00322125
+4275, 5, 0, 0.00322125
+4276, 5, 0, 0.00322125
+4277, 5, 0, 0.00322125
+4278, 5, 0, 0.00322125
+4279, 5, 0, 0.00322125
+4280, 5, 0, 0.00322125
+4281, 5, 0, 0.00322125
+4282, 5, 0, 0.00322125
+4283, 5, 0, 0.00322125
+4284, 5, 0, 0.00322125
+4285, 5, 0, 0.00322125
+4286, 5, 0, 0.00322125
+4287, 5, 0, 0.00322125
+4288, 5, 0, 0.00322125
+4289, 5, 0, 0.00322125
+4290, 5, 0, 0.00322125
+4291, 5, 0, 0.00322125
+4292, 5, 0, 0.00322125
+4293, 5, 0, 0.00322125
+4294, 5, 0, 0.00322125
+4295, 5, 0, 0.00322125
+4296, 5, 0, 0.00322125
+4297, 5, 0, 0.00322125
+4298, 5, 0, 0.00322125
+4299, 5, 0, 0.00322125
+4300, 5, 0, 0.00322125
+4301, 5, 0, 0.00322125
+4302, 5, 0, 0.00322125
+4303, 5, 0, 0.00322125
+4304, 5, 0, 0.00322125
+4305, 5, 0, 0.00322125
+4306, 5, 0, 0.00322125
+4307, 5, 0, 0.00322125
+4308, 5, 0, 0.00322125
+4309, 5, 0, 0.00322125
+4310, 5, 0, 0.00322125
+4311, 5, 0, 0.00322125
+4312, 5, 0, 0.00322125
+4313, 5, 0, 0.00322125
+4314, 5, 0, 0.00322125
+4315, 5, 0, 0.00322125
+4316, 5, 0, 0.00322125
+4317, 5, 0, 0.00322125
+4318, 5, 0, 0.00322125
+4319, 5, 0, 0.00322125
+4320, 5, 0, 0.00322125
+4321, 5, 0, 0.00322125
+4322, 5, 0, 0.00322125
+4323, 5, 0, 0.00322125
+4324, 5, 0, 0.00322125
+4325, 5, 0, 0.00322125
+4326, 5, 0, 0.00322125
+4327, 5, 0, 0.00322125
+4328, 5, 0, 0.00322125
+4329, 5, 0, 0.00322125
+4330, 5, 0, 0.00322125
+4331, 5, 0, 0.00322125
+4332, 5, 0, 0.00322125
+4333, 5, 0, 0.00322125
+4334, 5, 0, 0.00322125
+4335, 5, 0, 0.00322125
+4336, 5, 0, 0.00322125
+4337, 5, 0, 0.00322125
+4338, 5, 0, 0.00322125
+4339, 5, 0, 0.00322125
+4340, 5, 0, 0.00322125
+4341, 5, 0, 0.00322125
+4342, 5, 0, 0.00322125
+4343, 5, 0, 0.00322125
+4344, 5, 0, 0.00322125
+4345, 5, 0, 0.00322125
+4346, 5, 0, 0.00322125
+4347, 5, 0, 0.00322125
+4348, 5, 0, 0.00322125
+4349, 5, 0, 0.00322125
+4350, 5, 0, 0.00322125
+4351, 5, 0, 0.00322125
+4352, 5, 0, 0.00322125
+4353, 5, 0, 0.00322125
+4354, 5, 0, 0.00322125
+4355, 5, 0, 0.00322125
+4356, 5, 0, 0.00322125
+4357, 5, 0, 0.00322125
+4358, 5, 0, 0.00322125
+4359, 5, 0, 0.00322125
+4360, 5, 0, 0.00322125
+4361, 5, 0, 0.00322125
+4362, 5, 0, 0.00322125
+4363, 5, 0, 0.00322125
+4364, 5, 0, 0.00322125
+4365, 5, 0, 0.00322125
+4366, 5, 0, 0.00322125
+4367, 5, 0, 0.00322125
+4368, 5, 0, 0.00322125
+4369, 5, 0, 0.00322125
+4370, 5, 0, 0.00322125
+4371, 5, 0, 0.00322125
+4372, 5, 0, 0.00322125
+4373, 5, 0, 0.00322125
+4374, 5, 0, 0.00322125
+4375, 5, 0, 0.00322125
+4376, 5, 0, 0.00322125
+4377, 5, 0, 0.00322125
+4378, 5, 0, 0.00322125
+4379, 5, 0, 0.00322125
+4380, 5, 0, 0.00322125
+4381, 5, 0, 0.00322125
+4382, 5, 0, 0.00322125
+4383, 5, 0, 0.00322125
+4384, 5, 0, 0.00322125
+4385, 5, 0, 0.00322125
+4386, 5, 0, 0.00322125
+4387, 5, 0, 0.00322125
+4388, 5, 0, 0.00322125
+4389, 5, 0, 0.00322125
+4390, 5, 0, 0.00322125
+4391, 5, 0, 0.00322125
+4392, 5, 0, 0.00322125
+4393, 5, 0, 0.00322125
+4394, 5, 0, 0.00322125
+4395, 5, 0, 0.00322125
+4396, 5, 0, 0.00322125
+4397, 5, 0, 0.00322125
+4398, 5, 0, 0.00322125
+4399, 5, 0, 0.00322125
+4400, 5, 5, 0.00322125
+4401, 5, 5, 0.00322125
+4402, 5, 5, 0.00322125
+4403, 5, 5, 0.0031559
+4404, 5, 5, 0.00322125
+4405, 5, 5, 0.0031559
+4406, 5, 5, 0.0031559
+4407, 5, 5, 0.0031559
+4408, 5, 5, 0.0031559
+4409, 5, 5, 0.00322125
+4410, 5, 5, 5
+4411, 5, 5, 5
+4412, 5, 5, 5
+4413, 5, 5, 5
+4414, 5, 5, 5
+4415, 5, 5, 5
+4416, 5, 5, 5
+4417, 5, 5, 5
+4418, 5, 5, 5
+4419, 5, 5, 5
+4420, 5, 5, 5
+4421, 5, 5, 5
+4422, 5, 5, 5
+4423, 5, 5, 5
+4424, 5, 5, 5
+4425, 5, 5, 5
+4426, 5, 5, 5
+4427, 5, 5, 5
+4428, 5, 5, 5
+4429, 5, 5, 5
+4430, 5, 5, 5
+4431, 5, 5, 5
+4432, 5, 5, 5
+4433, 5, 5, 5
+4434, 5, 5, 5
+4435, 5, 5, 5
+4436, 5, 5, 5
+4437, 5, 5, 5
+4438, 5, 5, 5
+4439, 5, 5, 5
+4440, 5, 5, 5
+4441, 5, 5, 5
+4442, 5, 5, 5
+4443, 5, 5, 5
+4444, 5, 5, 5
+4445, 5, 5, 5
+4446, 5, 5, 5
+4447, 5, 5, 5
+4448, 5, 5, 5
+4449, 5, 5, 5
+4450, 5, 5, 5
+4451, 5, 5, 5
+4452, 5, 5, 5
+4453, 5, 5, 5
+4454, 5, 5, 5
+4455, 5, 5, 5
+4456, 5, 5, 5
+4457, 5, 5, 5
+4458, 5, 5, 5
+4459, 5, 5, 5
+4460, 5, 5, 5
+4461, 5, 5, 5
+4462, 5, 5, 5
+4463, 5, 5, 5
+4464, 5, 5, 5
+4465, 5, 5, 5
+4466, 5, 5, 5
+4467, 5, 5, 5
+4468, 5, 5, 5
+4469, 5, 5, 5
+4470, 5, 5, 5
+4471, 5, 5, 5
+4472, 5, 5, 5
+4473, 5, 5, 5
+4474, 5, 5, 5
+4475, 5, 5, 5
+4476, 5, 5, 5
+4477, 5, 5, 5
+4478, 5, 5, 5
+4479, 5, 5, 5
+4480, 5, 5, 5
+4481, 5, 5, 5
+4482, 5, 5, 5
+4483, 5, 5, 5
+4484, 5, 5, 5
+4485, 5, 5, 5
+4486, 5, 5, 5
+4487, 5, 5, 5
+4488, 5, 5, 5
+4489, 5, 5, 5
+4490, 5, 5, 5
+4491, 5, 5, 5
+4492, 5, 5, 5
+4493, 5, 5, 5
+4494, 5, 5, 5
+4495, 5, 5, 5
+4496, 5, 5, 5
+4497, 5, 5, 5
+4498, 5, 5, 5
+4499, 5, 5, 5
+4500, 5, 5, 5
+4501, 5, 5, 5
+4502, 5, 5, 5
+4503, 5, 5, 5
+4504, 5, 5, 5
+4505, 5, 5, 5
+4506, 5, 5, 5
+4507, 5, 5, 5
+4508, 5, 5, 5
+4509, 5, 5, 5
+4510, 5, 5, 5
+4511, 5, 5, 5
+4512, 5, 5, 5
+4513, 5, 5, 5
+4514, 5, 5, 5
+4515, 5, 5, 5
+4516, 5, 5, 5
+4517, 5, 5, 5
+4518, 5, 5, 5
+4519, 5, 5, 5
+4520, 5, 5, 5
+4521, 5, 5, 5
+4522, 5, 5, 5
+4523, 5, 5, 5
+4524, 5, 5, 5
+4525, 5, 5, 5
+4526, 5, 5, 5
+4527, 5, 5, 5
+4528, 5, 5, 5
+4529, 5, 5, 5
+4530, 5, 5, 5
+4531, 5, 5, 5
+4532, 5, 5, 5
+4533, 5, 5, 5
+4534, 5, 5, 5
+4535, 5, 5, 5
+4536, 5, 5, 5
+4537, 5, 5, 5
+4538, 5, 5, 5
+4539, 5, 5, 5
+4540, 5, 5, 5
+4541, 5, 5, 5
+4542, 5, 5, 5
+4543, 5, 5, 5
+4544, 5, 5, 5
+4545, 5, 5, 5
+4546, 5, 5, 5
+4547, 5, 5, 5
+4548, 5, 5, 5
+4549, 5, 5, 5
+4550, 5, 5, 5
+4551, 5, 5, 5
+4552, 5, 5, 5
+4553, 5, 5, 5
+4554, 5, 5, 5
+4555, 5, 5, 5
+4556, 5, 5, 5
+4557, 5, 5, 5
+4558, 5, 5, 5
+4559, 5, 5, 5
+4560, 5, 5, 5
+4561, 5, 5, 5
+4562, 5, 5, 5
+4563, 5, 5, 5
+4564, 5, 5, 5
+4565, 5, 5, 5
+4566, 5, 5, 5
+4567, 5, 5, 5
+4568, 5, 5, 5
+4569, 5, 5, 5
+4570, 5, 5, 5
+4571, 5, 5, 5
+4572, 5, 5, 5
+4573, 5, 5, 5
+4574, 5, 5, 5
+4575, 5, 5, 5
+4576, 5, 5, 5
+4577, 5, 5, 5
+4578, 5, 5, 5
+4579, 5, 5, 5
+4580, 5, 5, 5
+4581, 5, 5, 5
+4582, 5, 5, 5
+4583, 5, 5, 5
+4584, 5, 5, 5
+4585, 5, 5, 5
+4586, 5, 5, 5
+4587, 5, 5, 5
+4588, 5, 5, 5
+4589, 5, 5, 5
+4590, 5, 5, 5
+4591, 5, 5, 5
+4592, 5, 5, 5
+4593, 5, 5, 5
+4594, 5, 5, 5
+4595, 5, 5, 5
+4596, 5, 5, 5
+4597, 5, 5, 5
+4598, 5, 5, 5
+4599, 5, 5, 5
+4600, 5, 5, 5
+4601, 5, 5, 5
+4602, 5, 5, 5
+4603, 5, 5, 5
+4604, 5, 5, 5
+4605, 5, 5, 5
+4606, 5, 5, 5
+4607, 5, 5, 5
+4608, 5, 5, 5
+4609, 5, 5, 5
+4610, 5, 5, 5
+4611, 5, 5, 5
+4612, 5, 5, 5
+4613, 5, 5, 5
+4614, 5, 5, 5
+4615, 5, 5, 5
+4616, 5, 5, 5
+4617, 5, 5, 5
+4618, 5, 5, 5
+4619, 5, 5, 5
+4620, 5, 5, 5
+4621, 5, 5, 5
+4622, 5, 5, 5
+4623, 5, 5, 5
+4624, 5, 5, 5
+4625, 5, 5, 5
+4626, 5, 5, 5
+4627, 5, 5, 5
+4628, 5, 5, 5
+4629, 5, 5, 5
+4630, 5, 5, 5
+4631, 5, 5, 5
+4632, 5, 5, 5
+4633, 5, 5, 5
+4634, 5, 5, 5
+4635, 5, 5, 5
+4636, 5, 5, 5
+4637, 5, 5, 5
+4638, 5, 5, 5
+4639, 5, 5, 5
+4640, 5, 5, 5
+4641, 5, 5, 5
+4642, 5, 5, 5
+4643, 5, 5, 5
+4644, 5, 5, 5
+4645, 5, 5, 5
+4646, 5, 5, 5
+4647, 5, 5, 5
+4648, 5, 5, 5
+4649, 5, 5, 5
+4650, 5, 5, 5
+4651, 5, 5, 5
+4652, 5, 5, 5
+4653, 5, 5, 5
+4654, 5, 5, 5
+4655, 5, 5, 5
+4656, 5, 5, 5
+4657, 5, 5, 5
+4658, 5, 5, 5
+4659, 5, 5, 5
+4660, 5, 5, 5
+4661, 5, 5, 5
+4662, 5, 5, 5
+4663, 5, 5, 5
+4664, 5, 5, 5
+4665, 5, 5, 5
+4666, 5, 5, 5
+4667, 5, 5, 5
+4668, 5, 5, 5
+4669, 5, 5, 5
+4670, 5, 5, 5
+4671, 5, 5, 5
+4672, 5, 5, 5
+4673, 5, 5, 5
+4674, 5, 5, 5
+4675, 5, 5, 5
+4676, 5, 5, 5
+4677, 5, 5, 5
+4678, 5, 5, 5
+4679, 5, 5, 5
+4680, 5, 5, 5
+4681, 5, 5, 5
+4682, 5, 5, 5
+4683, 5, 5, 5
+4684, 5, 5, 5
+4685, 5, 5, 5
+4686, 5, 5, 5
+4687, 5, 5, 5
+4688, 5, 5, 5
+4689, 5, 5, 5
+4690, 5, 5, 5
+4691, 5, 5, 5
+4692, 5, 5, 5
+4693, 5, 5, 5
+4694, 5, 5, 5
+4695, 5, 5, 5
+4696, 5, 5, 5
+4697, 5, 5, 5
+4698, 5, 5, 5
+4699, 5, 5, 5
+4700, 5, 5, 5
+4701, 5, 5, 5
+4702, 5, 5, 5
+4703, 5, 5, 5
+4704, 5, 5, 5
+4705, 5, 5, 5
+4706, 5, 5, 5
+4707, 5, 5, 5
+4708, 5, 5, 5
+4709, 5, 5, 5
+4710, 5, 5, 5
+4711, 5, 5, 5
+4712, 5, 5, 5
+4713, 5, 5, 5
+4714, 5, 5, 5
+4715, 5, 5, 5
+4716, 5, 5, 5
+4717, 5, 5, 5
+4718, 5, 5, 5
+4719, 5, 5, 5
+4720, 5, 5, 5
+4721, 5, 5, 5
+4722, 5, 5, 5
+4723, 5, 5, 5
+4724, 5, 5, 5
+4725, 5, 5, 5
+4726, 5, 5, 5
+4727, 5, 5, 5
+4728, 5, 5, 5
+4729, 5, 5, 5
+4730, 5, 5, 5
+4731, 5, 5, 5
+4732, 5, 5, 5
+4733, 5, 5, 5
+4734, 5, 5, 5
+4735, 5, 5, 5
+4736, 5, 5, 5
+4737, 5, 5, 5
+4738, 5, 5, 5
+4739, 5, 5, 5
+4740, 5, 5, 5
+4741, 5, 5, 5
+4742, 5, 5, 5
+4743, 5, 5, 5
+4744, 5, 5, 5
+4745, 5, 5, 5
+4746, 5, 5, 5
+4747, 5, 5, 5
+4748, 5, 5, 5
+4749, 5, 5, 5
+4750, 5, 5, 5
+4751, 5, 5, 5
+4752, 5, 5, 5
+4753, 5, 5, 5
+4754, 5, 5, 5
+4755, 5, 5, 5
+4756, 5, 5, 5
+4757, 5, 5, 5
+4758, 5, 5, 5
+4759, 5, 5, 5
+4760, 5, 5, 5
+4761, 5, 5, 5
+4762, 5, 5, 5
+4763, 5, 5, 5
+4764, 5, 5, 5
+4765, 5, 5, 5
+4766, 5, 5, 5
+4767, 5, 5, 5
+4768, 5, 5, 5
+4769, 5, 5, 5
+4770, 5, 5, 5
+4771, 5, 5, 5
+4772, 5, 5, 5
+4773, 5, 5, 5
+4774, 5, 5, 5
+4775, 5, 5, 5
+4776, 5, 5, 5
+4777, 5, 5, 5
+4778, 5, 5, 5
+4779, 5, 5, 5
+4780, 5, 5, 5
+4781, 5, 5, 5
+4782, 5, 5, 5
+4783, 5, 5, 5
+4784, 5, 5, 5
+4785, 5, 5, 5
+4786, 5, 5, 5
+4787, 5, 5, 5
+4788, 5, 5, 5
+4789, 5, 5, 5
+4790, 5, 5, 5
+4791, 5, 5, 5
+4792, 5, 5, 5
+4793, 5, 5, 5
+4794, 5, 5, 5
+4795, 5, 5, 5
+4796, 5, 5, 5
+4797, 5, 5, 5
+4798, 5, 5, 5
+4799, 5, 5, 5
+4800, 0, 0, 5
+4801, 0, 0, 5
+4802, 0, 0, 5
+4803, 0, 0, 5
+4804, 0, 0, 5
+4805, 0, 0, 5
+4806, 0, 0, 5
+4807, 0, 0, 5
+4808, 0, 0, 5
+4809, 0, 0, 5
+4810, 0, 0, 5
+4811, 0, 0, 5
+4812, 0, 0, 5
+4813, 0, 0, 5
+4814, 0, 0, 5
+4815, 0, 0, 5
+4816, 0, 0, 5
+4817, 0, 0, 5
+4818, 0, 0, 5
+4819, 0, 0, 5
+4820, 0, 0, 5
+4821, 0, 0, 5
+4822, 0, 0, 5
+4823, 0, 0, 5
+4824, 0, 0, 5
+4825, 0, 0, 5
+4826, 0, 0, 5
+4827, 0, 0, 5
+4828, 0, 0, 5
+4829, 0, 0, 5
+4830, 0, 0, 5
+4831, 0, 0, 5
+4832, 0, 0, 5
+4833, 0, 0, 5
+4834, 0, 0, 5
+4835, 0, 0, 5
+4836, 0, 0, 5
+4837, 0, 0, 5
+4838, 0, 0, 5
+4839, 0, 0, 5
+4840, 0, 0, 5
+4841, 0, 0, 5
+4842, 0, 0, 5
+4843, 0, 0, 5
+4844, 0, 0, 5
+4845, 0, 0, 5
+4846, 0, 0, 5
+4847, 0, 0, 5
+4848, 0, 0, 5
+4849, 0, 0, 5
+4850, 0, 0, 5
+4851, 0, 0, 5
+4852, 0, 0, 5
+4853, 0, 0, 5
+4854, 0, 0, 5
+4855, 0, 0, 5
+4856, 0, 0, 5
+4857, 0, 0, 5
+4858, 0, 0, 5
+4859, 0, 0, 5
+4860, 0, 0, 5
+4861, 0, 0, 5
+4862, 0, 0, 5
+4863, 0, 0, 5
+4864, 0, 0, 5
+4865, 0, 0, 5
+4866, 0, 0, 5
+4867, 0, 0, 5
+4868, 0, 0, 5
+4869, 0, 0, 5
+4870, 0, 0, 5
+4871, 0, 0, 5
+4872, 0, 0, 5
+4873, 0, 0, 5
+4874, 0, 0, 5
+4875, 0, 0, 5
+4876, 0, 0, 5
+4877, 0, 0, 5
+4878, 0, 0, 5
+4879, 0, 0, 5
+4880, 0, 0, 5
+4881, 0, 0, 5
+4882, 0, 0, 5
+4883, 0, 0, 5
+4884, 0, 0, 5
+4885, 0, 0, 5
+4886, 0, 0, 5
+4887, 0, 0, 5
+4888, 0, 0, 5
+4889, 0, 0, 5
+4890, 0, 0, 5
+4891, 0, 0, 5
+4892, 0, 0, 5
+4893, 0, 0, 5
+4894, 0, 0, 5
+4895, 0, 0, 5
+4896, 0, 0, 5
+4897, 0, 0, 5
+4898, 0, 0, 5
+4899, 0, 0, 5
+4900, 0, 0, 5
+4901, 0, 0, 5
+4902, 0, 0, 5
+4903, 0, 0, 5
+4904, 0, 0, 5
+4905, 0, 0, 5
+4906, 0, 0, 5
+4907, 0, 0, 5
+4908, 0, 0, 5
+4909, 0, 0, 5
+4910, 0, 0, 5
+4911, 0, 0, 5
+4912, 0, 0, 5
+4913, 0, 0, 5
+4914, 0, 0, 5
+4915, 0, 0, 5
+4916, 0, 0, 5
+4917, 0, 0, 5
+4918, 0, 0, 5
+4919, 0, 0, 5
+4920, 0, 0, 5
+4921, 0, 0, 5
+4922, 0, 0, 5
+4923, 0, 0, 5
+4924, 0, 0, 5
+4925, 0, 0, 5
+4926, 0, 0, 5
+4927, 0, 0, 5
+4928, 0, 0, 5
+4929, 0, 0, 5
+4930, 0, 0, 5
+4931, 0, 0, 5
+4932, 0, 0, 5
+4933, 0, 0, 5
+4934, 0, 0, 5
+4935, 0, 0, 5
+4936, 0, 0, 5
+4937, 0, 0, 5
+4938, 0, 0, 5
+4939, 0, 0, 5
+4940, 0, 0, 5
+4941, 0, 0, 5
+4942, 0, 0, 5
+4943, 0, 0, 5
+4944, 0, 0, 5
+4945, 0, 0, 5
+4946, 0, 0, 5
+4947, 0, 0, 5
+4948, 0, 0, 5
+4949, 0, 0, 5
+4950, 0, 0, 5
+4951, 0, 0, 5
+4952, 0, 0, 5
+4953, 0, 0, 5
+4954, 0, 0, 5
+4955, 0, 0, 5
+4956, 0, 0, 5
+4957, 0, 0, 5
+4958, 0, 0, 5
+4959, 0, 0, 5
+4960, 0, 0, 5
+4961, 0, 0, 5
+4962, 0, 0, 5
+4963, 0, 0, 5
+4964, 0, 0, 5
+4965, 0, 0, 5
+4966, 0, 0, 5
+4967, 0, 0, 5
+4968, 0, 0, 5
+4969, 0, 0, 5
+4970, 0, 0, 5
+4971, 0, 0, 5
+4972, 0, 0, 5
+4973, 0, 0, 5
+4974, 0, 0, 5
+4975, 0, 0, 5
+4976, 0, 0, 5
+4977, 0, 0, 5
+4978, 0, 0, 5
+4979, 0, 0, 5
+4980, 0, 0, 5
+4981, 0, 0, 5
+4982, 0, 0, 5
+4983, 0, 0, 5
+4984, 0, 0, 5
+4985, 0, 0, 5
+4986, 0, 0, 5
+4987, 0, 0, 5
+4988, 0, 0, 5
+4989, 0, 0, 5
+4990, 0, 0, 5
+4991, 0, 0, 5
+4992, 0, 0, 5
+4993, 0, 0, 5
+4994, 0, 0, 5
+4995, 0, 0, 5
+4996, 0, 0, 5
+4997, 0, 0, 5
+4998, 0, 0, 5
+4999, 0, 0, 5
+5000, 0, 0, 5
+5001, 0, 0, 5
+5002, 0, 0, 5
+5003, 0, 0, 5
+5004, 0, 0, 5
+5005, 0, 0, 5
+5006, 0, 0, 5
+5007, 0, 0, 5
+5008, 0, 0, 5
+5009, 0, 0, 5
+5010, 0, 0, 5
+5011, 0, 0, 5
+5012, 0, 0, 5
+5013, 0, 0, 5
+5014, 0, 0, 5
+5015, 0, 0, 5
+5016, 0, 0, 5
+5017, 0, 0, 5
+5018, 0, 0, 5
+5019, 0, 0, 5
+5020, 0, 0, 5
+5021, 0, 0, 5
+5022, 0, 0, 5
+5023, 0, 0, 5
+5024, 0, 0, 5
+5025, 0, 0, 5
+5026, 0, 0, 5
+5027, 0, 0, 5
+5028, 0, 0, 5
+5029, 0, 0, 5
+5030, 0, 0, 5
+5031, 0, 0, 5
+5032, 0, 0, 5
+5033, 0, 0, 5
+5034, 0, 0, 5
+5035, 0, 0, 5
+5036, 0, 0, 5
+5037, 0, 0, 5
+5038, 0, 0, 5
+5039, 0, 0, 5
+5040, 0, 0, 5
+5041, 0, 0, 5
+5042, 0, 0, 5
+5043, 0, 0, 5
+5044, 0, 0, 5
+5045, 0, 0, 5
+5046, 0, 0, 5
+5047, 0, 0, 5
+5048, 0, 0, 5
+5049, 0, 0, 5
+5050, 0, 0, 5
+5051, 0, 0, 5
+5052, 0, 0, 5
+5053, 0, 0, 5
+5054, 0, 0, 5
+5055, 0, 0, 5
+5056, 0, 0, 5
+5057, 0, 0, 5
+5058, 0, 0, 5
+5059, 0, 0, 5
+5060, 0, 0, 5
+5061, 0, 0, 5
+5062, 0, 0, 5
+5063, 0, 0, 5
+5064, 0, 0, 5
+5065, 0, 0, 5
+5066, 0, 0, 5
+5067, 0, 0, 5
+5068, 0, 0, 5
+5069, 0, 0, 5
+5070, 0, 0, 5
+5071, 0, 0, 5
+5072, 0, 0, 5
+5073, 0, 0, 5
+5074, 0, 0, 5
+5075, 0, 0, 5
+5076, 0, 0, 5
+5077, 0, 0, 5
+5078, 0, 0, 5
+5079, 0, 0, 5
+5080, 0, 0, 5
+5081, 0, 0, 5
+5082, 0, 0, 5
+5083, 0, 0, 5
+5084, 0, 0, 5
+5085, 0, 0, 5
+5086, 0, 0, 5
+5087, 0, 0, 5
+5088, 0, 0, 5
+5089, 0, 0, 5
+5090, 0, 0, 5
+5091, 0, 0, 5
+5092, 0, 0, 5
+5093, 0, 0, 5
+5094, 0, 0, 5
+5095, 0, 0, 5
+5096, 0, 0, 5
+5097, 0, 0, 5
+5098, 0, 0, 5
+5099, 0, 0, 5
+5100, 0, 0, 5
+5101, 0, 0, 5
+5102, 0, 0, 5
+5103, 0, 0, 5
+5104, 0, 0, 5
+5105, 0, 0, 5
+5106, 0, 0, 5
+5107, 0, 0, 5
+5108, 0, 0, 5
+5109, 0, 0, 5
+5110, 0, 0, 5
+5111, 0, 0, 5
+5112, 0, 0, 5
+5113, 0, 0, 5
+5114, 0, 0, 5
+5115, 0, 0, 5
+5116, 0, 0, 5
+5117, 0, 0, 5
+5118, 0, 0, 5
+5119, 0, 0, 5
+5120, 0, 0, 5
+5121, 0, 0, 5
+5122, 0, 0, 5
+5123, 0, 0, 5
+5124, 0, 0, 5
+5125, 0, 0, 5
+5126, 0, 0, 5
+5127, 0, 0, 5
+5128, 0, 0, 5
+5129, 0, 0, 5
+5130, 0, 0, 5
+5131, 0, 0, 5
+5132, 0, 0, 5
+5133, 0, 0, 5
+5134, 0, 0, 5
+5135, 0, 0, 5
+5136, 0, 0, 5
+5137, 0, 0, 5
+5138, 0, 0, 5
+5139, 0, 0, 5
+5140, 0, 0, 5
+5141, 0, 0, 5
+5142, 0, 0, 5
+5143, 0, 0, 5
+5144, 0, 0, 5
+5145, 0, 0, 5
+5146, 0, 0, 5
+5147, 0, 0, 5
+5148, 0, 0, 5
+5149, 0, 0, 5
+5150, 0, 0, 5
+5151, 0, 0, 5
+5152, 0, 0, 5
+5153, 0, 0, 5
+5154, 0, 0, 5
+5155, 0, 0, 5
+5156, 0, 0, 5
+5157, 0, 0, 5
+5158, 0, 0, 5
+5159, 0, 0, 5
+5160, 0, 0, 5
+5161, 0, 0, 5
+5162, 0, 0, 5
+5163, 0, 0, 5
+5164, 0, 0, 5
+5165, 0, 0, 5
+5166, 0, 0, 5
+5167, 0, 0, 5
+5168, 0, 0, 5
+5169, 0, 0, 5
+5170, 0, 0, 5
+5171, 0, 0, 5
+5172, 0, 0, 5
+5173, 0, 0, 5
+5174, 0, 0, 5
+5175, 0, 0, 5
+5176, 0, 0, 5
+5177, 0, 0, 5
+5178, 0, 0, 5
+5179, 0, 0, 5
+5180, 0, 0, 5
+5181, 0, 0, 5
+5182, 0, 0, 5
+5183, 0, 0, 5
+5184, 0, 0, 5
+5185, 0, 0, 5
+5186, 0, 0, 5
+5187, 0, 0, 5
+5188, 0, 0, 5
+5189, 0, 0, 5
+5190, 0, 0, 5
+5191, 0, 0, 5
+5192, 0, 0, 5
+5193, 0, 0, 5
+5194, 0, 0, 5
+5195, 0, 0, 5
+5196, 0, 0, 5
+5197, 0, 0, 5
+5198, 0, 0, 5
+5199, 0, 0, 5
+5200, 0, 5, 5
+5201, 0, 5, 5
+5202, 0, 5, 5
+5203, 0, 5, 5
+5204, 0, 5, 5
+5205, 0, 5, 5
+5206, 0, 5, 5
+5207, 0, 5, 5
+5208, 0, 5, 5
+5209, 0, 5, 5
+5210, 0, 5, 5
+5211, 0, 5, 5
+5212, 0, 5, 5
+5213, 0, 5, 0
+5214, 0, 5, 0
+5215, 0, 5, 0
+5216, 0, 5, 0.0031559
+5217, 0, 5, 0.0031559
+5218, 0, 5, 0.00322125
+5219, 0, 5, 0.0031559
+5220, 0, 5, 0.00322125
+5221, 0, 5, 0.00322125
+5222, 0, 5, 0.00322125
+5223, 0, 5, 0.00322125
+5224, 0, 5, 0.00322125
+5225, 0, 5, 0.00322125
+5226, 0, 5, 0.00322125
+5227, 0, 5, 0.00322125
+5228, 0, 5, 0.00322125
+5229, 0, 5, 0.00322125
+5230, 0, 5, 0.00322125
+5231, 0, 5, 0.00322125
+5232, 0, 5, 0.00322125
+5233, 0, 5, 0.00322125
+5234, 0, 5, 0.00322125
+5235, 0, 5, 0.00322125
+5236, 0, 5, 0.00322125
+5237, 0, 5, 0.00322125
+5238, 0, 5, 0.00322125
+5239, 0, 5, 0.00322125
+5240, 0, 5, 0.00322125
+5241, 0, 5, 0.00322125
+5242, 0, 5, 0.00322125
+5243, 0, 5, 0.00322125
+5244, 0, 5, 0.00322125
+5245, 0, 5, 0.00322125
+5246, 0, 5, 0.00322125
+5247, 0, 5, 0.00322125
+5248, 0, 5, 0.00322125
+5249, 0, 5, 0.00322125
+5250, 0, 5, 0.00322125
+5251, 0, 5, 0.00322125
+5252, 0, 5, 0.00322125
+5253, 0, 5, 0.00322125
+5254, 0, 5, 0.00322125
+5255, 0, 5, 0.00322125
+5256, 0, 5, 0.00322125
+5257, 0, 5, 0.00322125
+5258, 0, 5, 0.00322125
+5259, 0, 5, 0.00322125
+5260, 0, 5, 0.00322125
+5261, 0, 5, 0.00322125
+5262, 0, 5, 0.00322125
+5263, 0, 5, 0.00322125
+5264, 0, 5, 0.00322125
+5265, 0, 5, 0.00322125
+5266, 0, 5, 0.00322125
+5267, 0, 5, 0.00322125
+5268, 0, 5, 0.00322125
+5269, 0, 5, 0.00322125
+5270, 0, 5, 0.00322125
+5271, 0, 5, 0.00322125
+5272, 0, 5, 0.00322125
+5273, 0, 5, 0.00322125
+5274, 0, 5, 0.00322125
+5275, 0, 5, 0.00322125
+5276, 0, 5, 0.00322125
+5277, 0, 5, 0.00322125
+5278, 0, 5, 0.00322125
+5279, 0, 5, 0.00322125
+5280, 0, 5, 0.00322125
+5281, 0, 5, 0.00322125
+5282, 0, 5, 0.00322125
+5283, 0, 5, 0.00322125
+5284, 0, 5, 0.00322125
+5285, 0, 5, 0.00322125
+5286, 0, 5, 0.00322125
+5287, 0, 5, 0.00322125
+5288, 0, 5, 0.00322125
+5289, 0, 5, 0.00322125
+5290, 0, 5, 0.00322125
+5291, 0, 5, 0.00322125
+5292, 0, 5, 0.00322125
+5293, 0, 5, 0.00322125
+5294, 0, 5, 0.00322125
+5295, 0, 5, 0.00322125
+5296, 0, 5, 0.00322125
+5297, 0, 5, 0.00322125
+5298, 0, 5, 0.00322125
+5299, 0, 5, 0.00322125
+5300, 0, 5, 0.00322125
+5301, 0, 5, 0.00322125
+5302, 0, 5, 0.00322125
+5303, 0, 5, 0.00322125
+5304, 0, 5, 0.00322125
+5305, 0, 5, 0.00322125
+5306, 0, 5, 0.00322125
+5307, 0, 5, 0.00322125
+5308, 0, 5, 0.00322125
+5309, 0, 5, 0.00322125
+5310, 0, 5, 0.00322125
+5311, 0, 5, 0.00322125
+5312, 0, 5, 0.00322125
+5313, 0, 5, 0.00322125
+5314, 0, 5, 0.00322125
+5315, 0, 5, 0.00322125
+5316, 0, 5, 0.00322125
+5317, 0, 5, 0.00322125
+5318, 0, 5, 0.00322125
+5319, 0, 5, 0.00322125
+5320, 0, 5, 0.00322125
+5321, 0, 5, 0.00322125
+5322, 0, 5, 0.00322125
+5323, 0, 5, 0.00322125
+5324, 0, 5, 0.00322125
+5325, 0, 5, 0.00322125
+5326, 0, 5, 0.00322125
+5327, 0, 5, 0.00322125
+5328, 0, 5, 0.00322125
+5329, 0, 5, 0.00322125
+5330, 0, 5, 0.00322125
+5331, 0, 5, 0.00322125
+5332, 0, 5, 0.00322125
+5333, 0, 5, 0.00322125
+5334, 0, 5, 0.00322125
+5335, 0, 5, 0.00322125
+5336, 0, 5, 0.00322125
+5337, 0, 5, 0.00322125
+5338, 0, 5, 0.00322125
+5339, 0, 5, 0.00322125
+5340, 0, 5, 0.00322125
+5341, 0, 5, 0.00322125
+5342, 0, 5, 0.00322125
+5343, 0, 5, 0.00322125
+5344, 0, 5, 0.00322125
+5345, 0, 5, 0.00322125
+5346, 0, 5, 0.00322125
+5347, 0, 5, 0.00322125
+5348, 0, 5, 0.00322125
+5349, 0, 5, 0.00322125
+5350, 0, 5, 0.00322125
+5351, 0, 5, 0.00322125
+5352, 0, 5, 0.00322125
+5353, 0, 5, 0.00322125
+5354, 0, 5, 0.00322125
+5355, 0, 5, 0.00322125
+5356, 0, 5, 0.00322125
+5357, 0, 5, 0.00322125
+5358, 0, 5, 0.00322125
+5359, 0, 5, 0.00322125
+5360, 0, 5, 0.00322125
+5361, 0, 5, 0.00322125
+5362, 0, 5, 0.00322125
+5363, 0, 5, 0.00322125
+5364, 0, 5, 0.00322125
+5365, 0, 5, 0.00322125
+5366, 0, 5, 0.00322125
+5367, 0, 5, 0.00322125
+5368, 0, 5, 0.00322125
+5369, 0, 5, 0.00322125
+5370, 0, 5, 0.00322125
+5371, 0, 5, 0.00322125
+5372, 0, 5, 0.00322125
+5373, 0, 5, 0.00322125
+5374, 0, 5, 0.00322125
+5375, 0, 5, 0.00322125
+5376, 0, 5, 0.00322125
+5377, 0, 5, 0.00322125
+5378, 0, 5, 0.00322125
+5379, 0, 5, 0.00322125
+5380, 0, 5, 0.00322125
+5381, 0, 5, 0.00322125
+5382, 0, 5, 0.00322125
+5383, 0, 5, 0.00322125
+5384, 0, 5, 0.00322125
+5385, 0, 5, 0.00322125
+5386, 0, 5, 0.00322125
+5387, 0, 5, 0.00322125
+5388, 0, 5, 0.00322125
+5389, 0, 5, 0.00322125
+5390, 0, 5, 0.00322125
+5391, 0, 5, 0.00322125
+5392, 0, 5, 0.00322125
+5393, 0, 5, 0.00322125
+5394, 0, 5, 0.00322125
+5395, 0, 5, 0.00322125
+5396, 0, 5, 0.00322125
+5397, 0, 5, 0.00322125
+5398, 0, 5, 0.00322125
+5399, 0, 5, 0.00322125
+5400, 0, 5, 0.00322125
+5401, 0, 5, 0.00322125
+5402, 0, 5, 0.00322125
+5403, 0, 5, 0.00322125
+5404, 0, 5, 0.00322125
+5405, 0, 5, 0.00322125
+5406, 0, 5, 0.00322125
+5407, 0, 5, 0.00322125
+5408, 0, 5, 0.00322125
+5409, 0, 5, 0.00322125
+5410, 0, 5, 0.00322125
+5411, 0, 5, 0.00322125
+5412, 0, 5, 0.00322125
+5413, 0, 5, 0.00322125
+5414, 0, 5, 0.00322125
+5415, 0, 5, 0.00322125
+5416, 0, 5, 0.00322125
+5417, 0, 5, 0.00322125
+5418, 0, 5, 0.00322125
+5419, 0, 5, 0.00322125
+5420, 0, 5, 0.00322125
+5421, 0, 5, 0.00322125
+5422, 0, 5, 0.00322125
+5423, 0, 5, 0.00322125
+5424, 0, 5, 0.00322125
+5425, 0, 5, 0.00322125
+5426, 0, 5, 0.00322125
+5427, 0, 5, 0.00322125
+5428, 0, 5, 0.00322125
+5429, 0, 5, 0.00322125
+5430, 0, 5, 0.00322125
+5431, 0, 5, 0.00322125
+5432, 0, 5, 0.00322125
+5433, 0, 5, 0.00322125
+5434, 0, 5, 0.00322125
+5435, 0, 5, 0.00322125
+5436, 0, 5, 0.00322125
+5437, 0, 5, 0.00322125
+5438, 0, 5, 0.00322125
+5439, 0, 5, 0.00322125
+5440, 0, 5, 0.00322125
+5441, 0, 5, 0.00322125
+5442, 0, 5, 0.00322125
+5443, 0, 5, 0.00322125
+5444, 0, 5, 0.00322125
+5445, 0, 5, 0.00322125
+5446, 0, 5, 0.00322125
+5447, 0, 5, 0.00322125
+5448, 0, 5, 0.00322125
+5449, 0, 5, 0.00322125
+5450, 0, 5, 0.00322125
+5451, 0, 5, 0.00322125
+5452, 0, 5, 0.00322125
+5453, 0, 5, 0.00322125
+5454, 0, 5, 0.00322125
+5455, 0, 5, 0.00322125
+5456, 0, 5, 0.00322125
+5457, 0, 5, 0.00322125
+5458, 0, 5, 0.00322125
+5459, 0, 5, 0.00322125
+5460, 0, 5, 0.00322125
+5461, 0, 5, 0.00322125
+5462, 0, 5, 0.00322125
+5463, 0, 5, 0.00322125
+5464, 0, 5, 0.00322125
+5465, 0, 5, 0.00322125
+5466, 0, 5, 0.00322125
+5467, 0, 5, 0.00322125
+5468, 0, 5, 0.00322125
+5469, 0, 5, 0.00322125
+5470, 0, 5, 0.00322125
+5471, 0, 5, 0.00322125
+5472, 0, 5, 0.00322125
+5473, 0, 5, 0.00322125
+5474, 0, 5, 0.00322125
+5475, 0, 5, 0.00322125
+5476, 0, 5, 0.00322125
+5477, 0, 5, 0.00322125
+5478, 0, 5, 0.00322125
+5479, 0, 5, 0.00322125
+5480, 0, 5, 0.00322125
+5481, 0, 5, 0.00322125
+5482, 0, 5, 0.00322125
+5483, 0, 5, 0.00322125
+5484, 0, 5, 0.00322125
+5485, 0, 5, 0.00322125
+5486, 0, 5, 0.00322125
+5487, 0, 5, 0.00322125
+5488, 0, 5, 0.00322125
+5489, 0, 5, 0.00322125
+5490, 0, 5, 0.00322125
+5491, 0, 5, 0.00322125
+5492, 0, 5, 0.00322125
+5493, 0, 5, 0.00322125
+5494, 0, 5, 0.00322125
+5495, 0, 5, 0.00322125
+5496, 0, 5, 0.00322125
+5497, 0, 5, 0.00322125
+5498, 0, 5, 0.00322125
+5499, 0, 5, 0.00322125
+5500, 0, 5, 0.00322125
+5501, 0, 5, 0.00322125
+5502, 0, 5, 0.00322125
+5503, 0, 5, 0.00322125
+5504, 0, 5, 0.00322125
+5505, 0, 5, 0.00322125
+5506, 0, 5, 0.00322125
+5507, 0, 5, 0.00322125
+5508, 0, 5, 0.00322125
+5509, 0, 5, 0.00322125
+5510, 0, 5, 0.00322125
+5511, 0, 5, 0.00322125
+5512, 0, 5, 0.00322125
+5513, 0, 5, 0.00322125
+5514, 0, 5, 0.00322125
+5515, 0, 5, 0.00322125
+5516, 0, 5, 0.00322125
+5517, 0, 5, 0.00322125
+5518, 0, 5, 0.00322125
+5519, 0, 5, 0.00322125
+5520, 0, 5, 0.00322125
+5521, 0, 5, 0.00322125
+5522, 0, 5, 0.00322125
+5523, 0, 5, 0.00322125
+5524, 0, 5, 0.00322125
+5525, 0, 5, 0.00322125
+5526, 0, 5, 0.00322125
+5527, 0, 5, 0.00322125
+5528, 0, 5, 0.00322125
+5529, 0, 5, 0.00322125
+5530, 0, 5, 0.00322125
+5531, 0, 5, 0.00322125
+5532, 0, 5, 0.00322125
+5533, 0, 5, 0.00322125
+5534, 0, 5, 0.00322125
+5535, 0, 5, 0.00322125
+5536, 0, 5, 0.00322125
+5537, 0, 5, 0.00322125
+5538, 0, 5, 0.00322125
+5539, 0, 5, 0.00322125
+5540, 0, 5, 0.00322125
+5541, 0, 5, 0.00322125
+5542, 0, 5, 0.00322125
+5543, 0, 5, 0.00322125
+5544, 0, 5, 0.00322125
+5545, 0, 5, 0.00322125
+5546, 0, 5, 0.00322125
+5547, 0, 5, 0.00322125
+5548, 0, 5, 0.00322125
+5549, 0, 5, 0.00322125
+5550, 0, 5, 0.00322125
+5551, 0, 5, 0.00322125
+5552, 0, 5, 0.00322125
+5553, 0, 5, 0.00322125
+5554, 0, 5, 0.00322125
+5555, 0, 5, 0.00322125
+5556, 0, 5, 0.00322125
+5557, 0, 5, 0.00322125
+5558, 0, 5, 0.00322125
+5559, 0, 5, 0.00322125
+5560, 0, 5, 0.00322125
+5561, 0, 5, 0.00322125
+5562, 0, 5, 0.00322125
+5563, 0, 5, 0.00322125
+5564, 0, 5, 0.00322125
+5565, 0, 5, 0.00322125
+5566, 0, 5, 0.00322125
+5567, 0, 5, 0.00322125
+5568, 0, 5, 0.00322125
+5569, 0, 5, 0.00322125
+5570, 0, 5, 0.00322125
+5571, 0, 5, 0.00322125
+5572, 0, 5, 0.00322125
+5573, 0, 5, 0.00322125
+5574, 0, 5, 0.00322125
+5575, 0, 5, 0.00322125
+5576, 0, 5, 0.00322125
+5577, 0, 5, 0.00322125
+5578, 0, 5, 0.00322125
+5579, 0, 5, 0.00322125
+5580, 0, 5, 0.00322125
+5581, 0, 5, 0.00322125
+5582, 0, 5, 0.00322125
+5583, 0, 5, 0.00322125
+5584, 0, 5, 0.00322125
+5585, 0, 5, 0.00322125
+5586, 0, 5, 0.00322125
+5587, 0, 5, 0.00322125
+5588, 0, 5, 0.00322125
+5589, 0, 5, 0.00322125
+5590, 0, 5, 0.00322125
+5591, 0, 5, 0.00322125
+5592, 0, 5, 0.00322125
+5593, 0, 5, 0.00322125
+5594, 0, 5, 0.00322125
+5595, 0, 5, 0.00322125
+5596, 0, 5, 0.00322125
+5597, 0, 5, 0.00322125
+5598, 0, 5, 0.00322125
+5599, 0, 5, 0.00322125
+5600, 5, 0, 0.00322125
+5601, 5, 0, 0.00322125
+5602, 5, 0, 0.00322125
+5603, 5, 0, 0.00322125
+5604, 5, 0, 0.00322125
+5605, 5, 0, 0.00322125
+5606, 5, 0, 0.00322125
+5607, 5, 0, 0.00322125
+5608, 5, 0, 0.00322125
+5609, 5, 0, 0.00322125
+5610, 5, 0, 0.00322125
+5611, 5, 0, 0.00322125
+5612, 5, 0, 0.00322125
+5613, 5, 0, 0.00322125
+5614, 5, 0, 0.00322125
+5615, 5, 0, 0.00322125
+5616, 5, 0, 0.00322125
+5617, 5, 0, 0.00322125
+5618, 5, 0, 0.00322125
+5619, 5, 0, 0.00322125
+5620, 5, 0, 0.00322125
+5621, 5, 0, 0.00322125
+5622, 5, 0, 0.00322125
+5623, 5, 0, 0.0031559
+5624, 5, 0, 0.00322125
+5625, 5, 0, 0.00322125
+5626, 5, 0, 0.00322125
+5627, 5, 0, 0.00322125
+5628, 5, 0, 0.00322125
+5629, 5, 0, 0.00322125
+5630, 5, 0, 0.00322125
+5631, 5, 0, 0.00322125
+5632, 5, 0, 0.00322125
+5633, 5, 0, 0.00322125
+5634, 5, 0, 0.00322125
+5635, 5, 0, 0.00322125
+5636, 5, 0, 0.00322125
+5637, 5, 0, 0.00322125
+5638, 5, 0, 0.00322125
+5639, 5, 0, 0.00322125
+5640, 5, 0, 0.00322125
+5641, 5, 0, 0.00322125
+5642, 5, 0, 0.00322125
+5643, 5, 0, 0.00322125
+5644, 5, 0, 0.00322125
+5645, 5, 0, 0.00322125
+5646, 5, 0, 0.00322125
+5647, 5, 0, 0.00322125
+5648, 5, 0, 0.00322125
+5649, 5, 0, 0.00322125
+5650, 5, 0, 0.00322125
+5651, 5, 0, 0.00322125
+5652, 5, 0, 0.00322125
+5653, 5, 0, 0.00322125
+5654, 5, 0, 0.00322125
+5655, 5, 0, 0.00322125
+5656, 5, 0, 0.00322125
+5657, 5, 0, 0.00322125
+5658, 5, 0, 0.00322125
+5659, 5, 0, 0.00322125
+5660, 5, 0, 0.00322125
+5661, 5, 0, 0.00322125
+5662, 5, 0, 0.00322125
+5663, 5, 0, 0.00322125
+5664, 5, 0, 0.00322125
+5665, 5, 0, 0.00322125
+5666, 5, 0, 0.00322125
+5667, 5, 0, 0.00322125
+5668, 5, 0, 0.00322125
+5669, 5, 0, 0.00322125
+5670, 5, 0, 0.00322125
+5671, 5, 0, 0.00322125
+5672, 5, 0, 0.00322125
+5673, 5, 0, 0.00322125
+5674, 5, 0, 0.00322125
+5675, 5, 0, 0.00322125
+5676, 5, 0, 0.00322125
+5677, 5, 0, 0.00322125
+5678, 5, 0, 0.00322125
+5679, 5, 0, 0.00322125
+5680, 5, 0, 0.00322125
+5681, 5, 0, 0.00322125
+5682, 5, 0, 0.00322125
+5683, 5, 0, 0.00322125
+5684, 5, 0, 0.00322125
+5685, 5, 0, 0.00322125
+5686, 5, 0, 0.00322125
+5687, 5, 0, 0.00322125
+5688, 5, 0, 0.00322125
+5689, 5, 0, 0.00322125
+5690, 5, 0, 0.00322125
+5691, 5, 0, 0.00322125
+5692, 5, 0, 0.00322125
+5693, 5, 0, 0.00322125
+5694, 5, 0, 0.00322125
+5695, 5, 0, 0.00322125
+5696, 5, 0, 0.00322125
+5697, 5, 0, 0.00322125
+5698, 5, 0, 0.00322125
+5699, 5, 0, 0.00322125
+5700, 5, 0, 0.00322125
+5701, 5, 0, 0.00322125
+5702, 5, 0, 0.00322125
+5703, 5, 0, 0.00322125
+5704, 5, 0, 0.00322125
+5705, 5, 0, 0.00322125
+5706, 5, 0, 0.00322125
+5707, 5, 0, 0.00322125
+5708, 5, 0, 0.00322125
+5709, 5, 0, 0.00322125
+5710, 5, 0, 0.00322125
+5711, 5, 0, 0.00322125
+5712, 5, 0, 0.00322125
+5713, 5, 0, 0.00322125
+5714, 5, 0, 0.00322125
+5715, 5, 0, 0.00322125
+5716, 5, 0, 0.00322125
+5717, 5, 0, 0.00322125
+5718, 5, 0, 0.00322125
+5719, 5, 0, 0.00322125
+5720, 5, 0, 0.00322125
+5721, 5, 0, 0.00322125
+5722, 5, 0, 0.00322125
+5723, 5, 0, 0.00322125
+5724, 5, 0, 0.00322125
+5725, 5, 0, 0.00322125
+5726, 5, 0, 0.00322125
+5727, 5, 0, 0.00322125
+5728, 5, 0, 0.00322125
+5729, 5, 0, 0.00322125
+5730, 5, 0, 0.00322125
+5731, 5, 0, 0.00322125
+5732, 5, 0, 0.00322125
+5733, 5, 0, 0.00322125
+5734, 5, 0, 0.00322125
+5735, 5, 0, 0.00322125
+5736, 5, 0, 0.00322125
+5737, 5, 0, 0.00322125
+5738, 5, 0, 0.00322125
+5739, 5, 0, 0.00322125
+5740, 5, 0, 0.00322125
+5741, 5, 0, 0.00322125
+5742, 5, 0, 0.00322125
+5743, 5, 0, 0.00322125
+5744, 5, 0, 0.00322125
+5745, 5, 0, 0.00322125
+5746, 5, 0, 0.00322125
+5747, 5, 0, 0.00322125
+5748, 5, 0, 0.00322125
+5749, 5, 0, 0.00322125
+5750, 5, 0, 0.00322125
+5751, 5, 0, 0.00322125
+5752, 5, 0, 0.00322125
+5753, 5, 0, 0.00322125
+5754, 5, 0, 0.00322125
+5755, 5, 0, 0.00322125
+5756, 5, 0, 0.00322125
+5757, 5, 0, 0.00322125
+5758, 5, 0, 0.00322125
+5759, 5, 0, 0.00322125
+5760, 5, 0, 0.00322125
+5761, 5, 0, 0.00322125
+5762, 5, 0, 0.00322125
+5763, 5, 0, 0.00322125
+5764, 5, 0, 0.00322125
+5765, 5, 0, 0.00322125
+5766, 5, 0, 0.00322125
+5767, 5, 0, 0.00322125
+5768, 5, 0, 0.00322125
+5769, 5, 0, 0.00322125
+5770, 5, 0, 0.00322125
+5771, 5, 0, 0.00322125
+5772, 5, 0, 0.00322125
+5773, 5, 0, 0.00322125
+5774, 5, 0, 0.00322125
+5775, 5, 0, 0.00322125
+5776, 5, 0, 0.00322125
+5777, 5, 0, 0.00322125
+5778, 5, 0, 0.00322125
+5779, 5, 0, 0.00322125
+5780, 5, 0, 0.00322125
+5781, 5, 0, 0.00322125
+5782, 5, 0, 0.00322125
+5783, 5, 0, 0.00322125
+5784, 5, 0, 0.00322125
+5785, 5, 0, 0.00322125
+5786, 5, 0, 0.00322125
+5787, 5, 0, 0.00322125
+5788, 5, 0, 0.00322125
+5789, 5, 0, 0.00322125
+5790, 5, 0, 0.00322125
+5791, 5, 0, 0.00322125
+5792, 5, 0, 0.00322125
+5793, 5, 0, 0.00322125
+5794, 5, 0, 0.00322125
+5795, 5, 0, 0.00322125
+5796, 5, 0, 0.00322125
+5797, 5, 0, 0.00322125
+5798, 5, 0, 0.00322125
+5799, 5, 0, 0.00322125
+5800, 5, 0, 0.00322125
+5801, 5, 0, 0.00322125
+5802, 5, 0, 0.00322125
+5803, 5, 0, 0.00322125
+5804, 5, 0, 0.00322125
+5805, 5, 0, 0.00322125
+5806, 5, 0, 0.00322125
+5807, 5, 0, 0.00322125
+5808, 5, 0, 0.00322125
+5809, 5, 0, 0.00322125
+5810, 5, 0, 0.00322125
+5811, 5, 0, 0.00322125
+5812, 5, 0, 0.00322125
+5813, 5, 0, 0.00322125
+5814, 5, 0, 0.00322125
+5815, 5, 0, 0.00322125
+5816, 5, 0, 0.00322125
+5817, 5, 0, 0.00322125
+5818, 5, 0, 0.00322125
+5819, 5, 0, 0.00322125
+5820, 5, 0, 0.00322125
+5821, 5, 0, 0.00322125
+5822, 5, 0, 0.00322125
+5823, 5, 0, 0.00322125
+5824, 5, 0, 0.00322125
+5825, 5, 0, 0.00322125
+5826, 5, 0, 0.00322125
+5827, 5, 0, 0.00322125
+5828, 5, 0, 0.00322125
+5829, 5, 0, 0.00322125
+5830, 5, 0, 0.00322125
+5831, 5, 0, 0.00322125
+5832, 5, 0, 0.00322125
+5833, 5, 0, 0.00322125
+5834, 5, 0, 0.00322125
+5835, 5, 0, 0.00322125
+5836, 5, 0, 0.00322125
+5837, 5, 0, 0.00322125
+5838, 5, 0, 0.00322125
+5839, 5, 0, 0.00322125
+5840, 5, 0, 0.00322125
+5841, 5, 0, 0.00322125
+5842, 5, 0, 0.00322125
+5843, 5, 0, 0.00322125
+5844, 5, 0, 0.00322125
+5845, 5, 0, 0.00322125
+5846, 5, 0, 0.00322125
+5847, 5, 0, 0.00322125
+5848, 5, 0, 0.00322125
+5849, 5, 0, 0.00322125
+5850, 5, 0, 0.00322125
+5851, 5, 0, 0.00322125
+5852, 5, 0, 0.00322125
+5853, 5, 0, 0.00322125
+5854, 5, 0, 0.00322125
+5855, 5, 0, 0.00322125
+5856, 5, 0, 0.00322125
+5857, 5, 0, 0.00322125
+5858, 5, 0, 0.00322125
+5859, 5, 0, 0.00322125
+5860, 5, 0, 0.00322125
+5861, 5, 0, 0.00322125
+5862, 5, 0, 0.00322125
+5863, 5, 0, 0.00322125
+5864, 5, 0, 0.00322125
+5865, 5, 0, 0.00322125
+5866, 5, 0, 0.00322125
+5867, 5, 0, 0.00322125
+5868, 5, 0, 0.00322125
+5869, 5, 0, 0.00322125
+5870, 5, 0, 0.00322125
+5871, 5, 0, 0.00322125
+5872, 5, 0, 0.00322125
+5873, 5, 0, 0.00322125
+5874, 5, 0, 0.00322125
+5875, 5, 0, 0.00322125
+5876, 5, 0, 0.00322125
+5877, 5, 0, 0.00322125
+5878, 5, 0, 0.00322125
+5879, 5, 0, 0.00322125
+5880, 5, 0, 0.00322125
+5881, 5, 0, 0.00322125
+5882, 5, 0, 0.00322125
+5883, 5, 0, 0.00322125
+5884, 5, 0, 0.00322125
+5885, 5, 0, 0.00322125
+5886, 5, 0, 0.00322125
+5887, 5, 0, 0.00322125
+5888, 5, 0, 0.00322125
+5889, 5, 0, 0.00322125
+5890, 5, 0, 0.00322125
+5891, 5, 0, 0.00322125
+5892, 5, 0, 0.00322125
+5893, 5, 0, 0.00322125
+5894, 5, 0, 0.00322125
+5895, 5, 0, 0.00322125
+5896, 5, 0, 0.00322125
+5897, 5, 0, 0.00322125
+5898, 5, 0, 0.00322125
+5899, 5, 0, 0.00322125
+5900, 5, 0, 0.00322125
+5901, 5, 0, 0.00322125
+5902, 5, 0, 0.00322125
+5903, 5, 0, 0.00322125
+5904, 5, 0, 0.00322125
+5905, 5, 0, 0.00322125
+5906, 5, 0, 0.00322125
+5907, 5, 0, 0.00322125
+5908, 5, 0, 0.00322125
+5909, 5, 0, 0.00322125
+5910, 5, 0, 0.00322125
+5911, 5, 0, 0.00322125
+5912, 5, 0, 0.00322125
+5913, 5, 0, 0.00322125
+5914, 5, 0, 0.00322125
+5915, 5, 0, 0.00322125
+5916, 5, 0, 0.00322125
+5917, 5, 0, 0.00322125
+5918, 5, 0, 0.00322125
+5919, 5, 0, 0.00322125
+5920, 5, 0, 0.00322125
+5921, 5, 0, 0.00322125
+5922, 5, 0, 0.00322125
+5923, 5, 0, 0.00322125
+5924, 5, 0, 0.00322125
+5925, 5, 0, 0.00322125
+5926, 5, 0, 0.00322125
+5927, 5, 0, 0.00322125
+5928, 5, 0, 0.00322125
+5929, 5, 0, 0.00322125
+5930, 5, 0, 0.00322125
+5931, 5, 0, 0.00322125
+5932, 5, 0, 0.00322125
+5933, 5, 0, 0.00322125
+5934, 5, 0, 0.00322125
+5935, 5, 0, 0.00322125
+5936, 5, 0, 0.00322125
+5937, 5, 0, 0.00322125
+5938, 5, 0, 0.00322125
+5939, 5, 0, 0.00322125
+5940, 5, 0, 0.00322125
+5941, 5, 0, 0.00322125
+5942, 5, 0, 0.00322125
+5943, 5, 0, 0.00322125
+5944, 5, 0, 0.00322125
+5945, 5, 0, 0.00322125
+5946, 5, 0, 0.00322125
+5947, 5, 0, 0.00322125
+5948, 5, 0, 0.00322125
+5949, 5, 0, 0.00322125
+5950, 5, 0, 0.00322125
+5951, 5, 0, 0.00322125
+5952, 5, 0, 0.00322125
+5953, 5, 0, 0.00322125
+5954, 5, 0, 0.00322125
+5955, 5, 0, 0.00322125
+5956, 5, 0, 0.00322125
+5957, 5, 0, 0.00322125
+5958, 5, 0, 0.00322125
+5959, 5, 0, 0.00322125
+5960, 5, 0, 0.00322125
+5961, 5, 0, 0.00322125
+5962, 5, 0, 0.00322125
+5963, 5, 0, 0.00322125
+5964, 5, 0, 0.00322125
+5965, 5, 0, 0.00322125
+5966, 5, 0, 0.00322125
+5967, 5, 0, 0.00322125
+5968, 5, 0, 0.00322125
+5969, 5, 0, 0.00322125
+5970, 5, 0, 0.00322125
+5971, 5, 0, 0.00322125
+5972, 5, 0, 0.00322125
+5973, 5, 0, 0.00322125
+5974, 5, 0, 0.00322125
+5975, 5, 0, 0.00322125
+5976, 5, 0, 0.00322125
+5977, 5, 0, 0.00322125
+5978, 5, 0, 0.00322125
+5979, 5, 0, 0.00322125
+5980, 5, 0, 0.00322125
+5981, 5, 0, 0.00322125
+5982, 5, 0, 0.00322125
+5983, 5, 0, 0.00322125
+5984, 5, 0, 0.00322125
+5985, 5, 0, 0.00322125
+5986, 5, 0, 0.00322125
+5987, 5, 0, 0.00322125
+5988, 5, 0, 0.00322125
+5989, 5, 0, 0.00322125
+5990, 5, 0, 0.00322125
+5991, 5, 0, 0.00322125
+5992, 5, 0, 0.00322125
+5993, 5, 0, 0.00322125
+5994, 5, 0, 0.00322125
+5995, 5, 0, 0.00322125
+5996, 5, 0, 0.00322125
+5997, 5, 0, 0.00322125
+5998, 5, 0, 0.00322125
+5999, 5, 0, 0.00322125
+6000, 5, 5, 0.00322125
+6001, 5, 5, 0.00322125
+6002, 5, 5, 0.00322125
+6003, 5, 5, 0.0031559
+6004, 5, 5, 0.00322125
+6005, 5, 5, 0.0031559
+6006, 5, 5, 0.0031559
+6007, 5, 5, 0.0031559
+6008, 5, 5, 0.0031559
+6009, 5, 5, 0.00322125
+6010, 5, 5, 5
+6011, 5, 5, 5
+6012, 5, 5, 5
+6013, 5, 5, 5
+6014, 5, 5, 5
+6015, 5, 5, 5
+6016, 5, 5, 5
+6017, 5, 5, 5
+6018, 5, 5, 5
+6019, 5, 5, 5
+6020, 5, 5, 5
+6021, 5, 5, 5
+6022, 5, 5, 5
+6023, 5, 5, 5
+6024, 5, 5, 5
+6025, 5, 5, 5
+6026, 5, 5, 5
+6027, 5, 5, 5
+6028, 5, 5, 5
+6029, 5, 5, 5
+6030, 5, 5, 5
+6031, 5, 5, 5
+6032, 5, 5, 5
+6033, 5, 5, 5
+6034, 5, 5, 5
+6035, 5, 5, 5
+6036, 5, 5, 5
+6037, 5, 5, 5
+6038, 5, 5, 5
+6039, 5, 5, 5
+6040, 5, 5, 5
+6041, 5, 5, 5
+6042, 5, 5, 5
+6043, 5, 5, 5
+6044, 5, 5, 5
+6045, 5, 5, 5
+6046, 5, 5, 5
+6047, 5, 5, 5
+6048, 5, 5, 5
+6049, 5, 5, 5
+6050, 5, 5, 5
+6051, 5, 5, 5
+6052, 5, 5, 5
+6053, 5, 5, 5
+6054, 5, 5, 5
+6055, 5, 5, 5
+6056, 5, 5, 5
+6057, 5, 5, 5
+6058, 5, 5, 5
+6059, 5, 5, 5
+6060, 5, 5, 5
+6061, 5, 5, 5
+6062, 5, 5, 5
+6063, 5, 5, 5
+6064, 5, 5, 5
+6065, 5, 5, 5
+6066, 5, 5, 5
+6067, 5, 5, 5
+6068, 5, 5, 5
+6069, 5, 5, 5
+6070, 5, 5, 5
+6071, 5, 5, 5
+6072, 5, 5, 5
+6073, 5, 5, 5
+6074, 5, 5, 5
+6075, 5, 5, 5
+6076, 5, 5, 5
+6077, 5, 5, 5
+6078, 5, 5, 5
+6079, 5, 5, 5
+6080, 5, 5, 5
+6081, 5, 5, 5
+6082, 5, 5, 5
+6083, 5, 5, 5
+6084, 5, 5, 5
+6085, 5, 5, 5
+6086, 5, 5, 5
+6087, 5, 5, 5
+6088, 5, 5, 5
+6089, 5, 5, 5
+6090, 5, 5, 5
+6091, 5, 5, 5
+6092, 5, 5, 5
+6093, 5, 5, 5
+6094, 5, 5, 5
+6095, 5, 5, 5
+6096, 5, 5, 5
+6097, 5, 5, 5
+6098, 5, 5, 5
+6099, 5, 5, 5
+6100, 5, 5, 5
+6101, 5, 5, 5
+6102, 5, 5, 5
+6103, 5, 5, 5
+6104, 5, 5, 5
+6105, 5, 5, 5
+6106, 5, 5, 5
+6107, 5, 5, 5
+6108, 5, 5, 5
+6109, 5, 5, 5
+6110, 5, 5, 5
+6111, 5, 5, 5
+6112, 5, 5, 5
+6113, 5, 5, 5
+6114, 5, 5, 5
+6115, 5, 5, 5
+6116, 5, 5, 5
+6117, 5, 5, 5
+6118, 5, 5, 5
+6119, 5, 5, 5
+6120, 5, 5, 5
+6121, 5, 5, 5
+6122, 5, 5, 5
+6123, 5, 5, 5
+6124, 5, 5, 5
+6125, 5, 5, 5
+6126, 5, 5, 5
+6127, 5, 5, 5
+6128, 5, 5, 5
+6129, 5, 5, 5
+6130, 5, 5, 5
+6131, 5, 5, 5
+6132, 5, 5, 5
+6133, 5, 5, 5
+6134, 5, 5, 5
+6135, 5, 5, 5
+6136, 5, 5, 5
+6137, 5, 5, 5
+6138, 5, 5, 5
+6139, 5, 5, 5
+6140, 5, 5, 5
+6141, 5, 5, 5
+6142, 5, 5, 5
+6143, 5, 5, 5
+6144, 5, 5, 5
+6145, 5, 5, 5
+6146, 5, 5, 5
+6147, 5, 5, 5
+6148, 5, 5, 5
+6149, 5, 5, 5
+6150, 5, 5, 5
+6151, 5, 5, 5
+6152, 5, 5, 5
+6153, 5, 5, 5
+6154, 5, 5, 5
+6155, 5, 5, 5
+6156, 5, 5, 5
+6157, 5, 5, 5
+6158, 5, 5, 5
+6159, 5, 5, 5
+6160, 5, 5, 5
+6161, 5, 5, 5
+6162, 5, 5, 5
+6163, 5, 5, 5
+6164, 5, 5, 5
+6165, 5, 5, 5
+6166, 5, 5, 5
+6167, 5, 5, 5
+6168, 5, 5, 5
+6169, 5, 5, 5
+6170, 5, 5, 5
+6171, 5, 5, 5
+6172, 5, 5, 5
+6173, 5, 5, 5
+6174, 5, 5, 5
+6175, 5, 5, 5
+6176, 5, 5, 5
+6177, 5, 5, 5
+6178, 5, 5, 5
+6179, 5, 5, 5
+6180, 5, 5, 5
+6181, 5, 5, 5
+6182, 5, 5, 5
+6183, 5, 5, 5
+6184, 5, 5, 5
+6185, 5, 5, 5
+6186, 5, 5, 5
+6187, 5, 5, 5
+6188, 5, 5, 5
+6189, 5, 5, 5
+6190, 5, 5, 5
+6191, 5, 5, 5
+6192, 5, 5, 5
+6193, 5, 5, 5
+6194, 5, 5, 5
+6195, 5, 5, 5
+6196, 5, 5, 5
+6197, 5, 5, 5
+6198, 5, 5, 5
+6199, 5, 5, 5
+6200, 5, 5, 5
+6201, 5, 5, 5
+6202, 5, 5, 5
+6203, 5, 5, 5
+6204, 5, 5, 5
+6205, 5, 5, 5
+6206, 5, 5, 5
+6207, 5, 5, 5
+6208, 5, 5, 5
+6209, 5, 5, 5
+6210, 5, 5, 5
+6211, 5, 5, 5
+6212, 5, 5, 5
+6213, 5, 5, 5
+6214, 5, 5, 5
+6215, 5, 5, 5
+6216, 5, 5, 5
+6217, 5, 5, 5
+6218, 5, 5, 5
+6219, 5, 5, 5
+6220, 5, 5, 5
+6221, 5, 5, 5
+6222, 5, 5, 5
+6223, 5, 5, 5
+6224, 5, 5, 5
+6225, 5, 5, 5
+6226, 5, 5, 5
+6227, 5, 5, 5
+6228, 5, 5, 5
+6229, 5, 5, 5
+6230, 5, 5, 5
+6231, 5, 5, 5
+6232, 5, 5, 5
+6233, 5, 5, 5
+6234, 5, 5, 5
+6235, 5, 5, 5
+6236, 5, 5, 5
+6237, 5, 5, 5
+6238, 5, 5, 5
+6239, 5, 5, 5
+6240, 5, 5, 5
+6241, 5, 5, 5
+6242, 5, 5, 5
+6243, 5, 5, 5
+6244, 5, 5, 5
+6245, 5, 5, 5
+6246, 5, 5, 5
+6247, 5, 5, 5
+6248, 5, 5, 5
+6249, 5, 5, 5
+6250, 5, 5, 5
+6251, 5, 5, 5
+6252, 5, 5, 5
+6253, 5, 5, 5
+6254, 5, 5, 5
+6255, 5, 5, 5
+6256, 5, 5, 5
+6257, 5, 5, 5
+6258, 5, 5, 5
+6259, 5, 5, 5
+6260, 5, 5, 5
+6261, 5, 5, 5
+6262, 5, 5, 5
+6263, 5, 5, 5
+6264, 5, 5, 5
+6265, 5, 5, 5
+6266, 5, 5, 5
+6267, 5, 5, 5
+6268, 5, 5, 5
+6269, 5, 5, 5
+6270, 5, 5, 5
+6271, 5, 5, 5
+6272, 5, 5, 5
+6273, 5, 5, 5
+6274, 5, 5, 5
+6275, 5, 5, 5
+6276, 5, 5, 5
+6277, 5, 5, 5
+6278, 5, 5, 5
+6279, 5, 5, 5
+6280, 5, 5, 5
+6281, 5, 5, 5
+6282, 5, 5, 5
+6283, 5, 5, 5
+6284, 5, 5, 5
+6285, 5, 5, 5
+6286, 5, 5, 5
+6287, 5, 5, 5
+6288, 5, 5, 5
+6289, 5, 5, 5
+6290, 5, 5, 5
+6291, 5, 5, 5
+6292, 5, 5, 5
+6293, 5, 5, 5
+6294, 5, 5, 5
+6295, 5, 5, 5
+6296, 5, 5, 5
+6297, 5, 5, 5
+6298, 5, 5, 5
+6299, 5, 5, 5
+6300, 5, 5, 5
+6301, 5, 5, 5
+6302, 5, 5, 5
+6303, 5, 5, 5
+6304, 5, 5, 5
+6305, 5, 5, 5
+6306, 5, 5, 5
+6307, 5, 5, 5
+6308, 5, 5, 5
+6309, 5, 5, 5
+6310, 5, 5, 5
+6311, 5, 5, 5
+6312, 5, 5, 5
+6313, 5, 5, 5
+6314, 5, 5, 5
+6315, 5, 5, 5
+6316, 5, 5, 5
+6317, 5, 5, 5
+6318, 5, 5, 5
+6319, 5, 5, 5
+6320, 5, 5, 5
+6321, 5, 5, 5
+6322, 5, 5, 5
+6323, 5, 5, 5
+6324, 5, 5, 5
+6325, 5, 5, 5
+6326, 5, 5, 5
+6327, 5, 5, 5
+6328, 5, 5, 5
+6329, 5, 5, 5
+6330, 5, 5, 5
+6331, 5, 5, 5
+6332, 5, 5, 5
+6333, 5, 5, 5
+6334, 5, 5, 5
+6335, 5, 5, 5
+6336, 5, 5, 5
+6337, 5, 5, 5
+6338, 5, 5, 5
+6339, 5, 5, 5
+6340, 5, 5, 5
+6341, 5, 5, 5
+6342, 5, 5, 5
+6343, 5, 5, 5
+6344, 5, 5, 5
+6345, 5, 5, 5
+6346, 5, 5, 5
+6347, 5, 5, 5
+6348, 5, 5, 5
+6349, 5, 5, 5
+6350, 5, 5, 5
+6351, 5, 5, 5
+6352, 5, 5, 5
+6353, 5, 5, 5
+6354, 5, 5, 5
+6355, 5, 5, 5
+6356, 5, 5, 5
+6357, 5, 5, 5
+6358, 5, 5, 5
+6359, 5, 5, 5
+6360, 5, 5, 5
+6361, 5, 5, 5
+6362, 5, 5, 5
+6363, 5, 5, 5
+6364, 5, 5, 5
+6365, 5, 5, 5
+6366, 5, 5, 5
+6367, 5, 5, 5
+6368, 5, 5, 5
+6369, 5, 5, 5
+6370, 5, 5, 5
+6371, 5, 5, 5
+6372, 5, 5, 5
+6373, 5, 5, 5
+6374, 5, 5, 5
+6375, 5, 5, 5
+6376, 5, 5, 5
+6377, 5, 5, 5
+6378, 5, 5, 5
+6379, 5, 5, 5
+6380, 5, 5, 5
+6381, 5, 5, 5
+6382, 5, 5, 5
+6383, 5, 5, 5
+6384, 5, 5, 5
+6385, 5, 5, 5
+6386, 5, 5, 5
+6387, 5, 5, 5
+6388, 5, 5, 5
+6389, 5, 5, 5
+6390, 5, 5, 5
+6391, 5, 5, 5
+6392, 5, 5, 5
+6393, 5, 5, 5
+6394, 5, 5, 5
+6395, 5, 5, 5
+6396, 5, 5, 5
+6397, 5, 5, 5
+6398, 5, 5, 5
+6399, 5, 5, 5