diff options
author | rik <rik@FreeBSD.org> | 2004-05-05 16:11:45 +0000 |
---|---|---|
committer | rik <rik@FreeBSD.org> | 2004-05-05 16:11:45 +0000 |
commit | 64d28cde3b98a1afec06c11c02c920f57612046e (patch) | |
tree | 26933727628399b9ea155e49e7784d577dbe4ae3 /sys | |
parent | f083d4582071fd10cac285f8bfcbd2d75cd87d3d (diff) | |
download | FreeBSD-src-64d28cde3b98a1afec06c11c02c920f57612046e.zip FreeBSD-src-64d28cde3b98a1afec06c11c02c920f57612046e.tar.gz |
Add support for Cronyx Tau-PCI adapters.
Note: cpddk.c is in obfuscated form (discussed with core@).
As always, driver will be connected to the build a bit
later after some extra testings.
Diffstat (limited to 'sys')
-rw-r--r-- | sys/dev/cp/cpddk.c | 5823 | ||||
-rw-r--r-- | sys/dev/cp/cpddk.h | 362 | ||||
-rw-r--r-- | sys/dev/cp/if_cp.c | 2784 | ||||
-rw-r--r-- | sys/dev/cp/ng_cp.h | 31 |
4 files changed, 9000 insertions, 0 deletions
diff --git a/sys/dev/cp/cpddk.c b/sys/dev/cp/cpddk.c new file mode 100644 index 0000000..9b4ae9e --- /dev/null +++ b/sys/dev/cp/cpddk.c @@ -0,0 +1,5823 @@ +/* + * Low-level subroutines for Cronyx Tau-PCI adapter. + * + * Copyright (C) 1999-2003 Cronyx Engineering. + * Author: Serge Vakulenko, <vak@cronyx.ru> + * + * Copyright (C) 2000-2004 Cronyx Engineering. + * Author: Roman Kurakin, <rik@cronyx.ru> + * + * This software is distributed with NO WARRANTIES, not even the implied + * warranties for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + * Authors grant any other persons or organisations a permission to use, + * modify and redistribute this software in source and binary forms, + * as long as this message is kept with the software, all derivative + * works or modified versions. + * + * $Cronyx: cpddk.c,v 1.13.4.30 2003/12/15 08:57:28 rik Exp $ + */ + +#include <sys/cdefs.h> +__FBSDID("$FreeBSD$"); + +#include <dev/cx/machdep.h> + +#define CPDDK_COBF_SAFE +#include <dev/cp/cpddk.h> + +#pragma pack(4) +typedef struct{unsigned long l48;unsigned long l109;unsigned long l121 +;unsigned long l102;unsigned long l100;unsigned long l97;unsigned long +l119;unsigned long l110;unsigned long l114;unsigned long l112; +unsigned long l120;unsigned long l98;}l186;typedef struct{unsigned +char j[32];unsigned char l41[32];}l71;typedef struct{unsigned long z; +unsigned long l96;unsigned long p;unsigned long t;unsigned long l909; +}l125;typedef struct{l125 l39[4];l125 l33[64];unsigned char l624[4][ +1664];unsigned char l745[64][1664];}l212;typedef struct{unsigned long +l138[4][128];unsigned long l101[4][128];unsigned long l95[128];}l170; +typedef struct l176{unsigned char*x;volatile unsigned long*l127, * +l133, *l83;volatile unsigned long*l129, *l94, *l159, *l79, *l126, * +l149;unsigned char l69,l82,l63,l42,l51,l59,l35;unsigned char r; +unsigned char f;struct l605*d;unsigned char l193;unsigned char l216; +unsigned long w;unsigned char l157;unsigned char l145;unsigned char +l164;unsigned char l178;unsigned char l54;unsigned char l150;unsigned +char l60;unsigned char l128;unsigned long j;unsigned char l187; +unsigned char l46;unsigned char l53;unsigned char l58;unsigned char +l31;unsigned char l180;unsigned char u;l71 q;unsigned char l87; +unsigned char l122;unsigned char l165;unsigned char l168;unsigned char +l174;unsigned char l144;unsigned char l130;unsigned long l72;unsigned +char l32;unsigned long l34;unsigned long l44;unsigned long l38; +unsigned char l40;unsigned char l26;unsigned char l37;unsigned long +l629;unsigned long l617;ulong64 l563;ulong64 l598;unsigned long l621; +unsigned long l298;unsigned long l240;unsigned long l197;unsigned long +l579;unsigned long l551;unsigned short t;unsigned long l146;unsigned +long l56;unsigned long l107;unsigned long l103;l186 o;l186 l29;l186 +l108[48];unsigned long l106;unsigned long l158;unsigned long l619; +unsigned long l141;unsigned long l625;unsigned long l185[48];unsigned +long*l138;unsigned long*l101;int l593,l118;unsigned char*l147[4];l125 + *l39;unsigned long l189[4];unsigned long l152[4];int l47;int l45; +unsigned char*l136[64];l125*l33;unsigned long l208[64];unsigned long +l61[64];int l30;void*l81[4];void*l534;unsigned char l908;void( *l160)( +struct l176*a,void*l81,int z);void( *l171)(struct l176*a,unsigned char + *p,int z);void( *l62)(struct l176*a,int l910);}e;typedef struct l605 +{unsigned char*g;unsigned char r;unsigned char f;unsigned long l80; +char l43[16];e k[4];unsigned char l28;unsigned char l179;unsigned char +l132;unsigned char l115;unsigned char l70;unsigned char l85;unsigned +long l565;unsigned long*l95;int l111;unsigned char l577;unsigned char + *l73;void*l534;}s; +#pragma pack() +extern unsigned short cp_vendor_id;extern unsigned short cp_device_id +;unsigned short cp_init(s*b,int r,unsigned char*g);void cp_reset(s*b, +l170*l67,unsigned long l74);void cp_hard_reset(s*b);unsigned long +cp_regio(e*a,int l203,int y,unsigned long n);void cp_register_transmit +(e*a,void( *l86)(e* ,void* ,int));void cp_register_receive(e*a,void( * +l86)(e* ,unsigned char* ,int));void cp_register_error(e*a,void( *l86)( +e* ,int));void cp_start_chan(e*a,int l188,int l206,l212*l52,unsigned +long l74);void cp_stop_chan(e*a);void cp_start_e1(e*a);void cp_stop_e1 +(e*a);int cp_transmit_space(e*a);int cp_send_packet(e*a,unsigned char + *p,int z,void*l81);int cp_interrupt(s*b);int cp_interrupt_poll(s*b, +int l217);void cp_handle_interrupt(s*b);void cp_enable_interrupt(s*b, +int m);void cp_g703_timer(e*a);void cp_e1_timer(e*a);void cp_e3_timer +(e*a);void cp_led(s*b,int m);void cp_set_dtr(e*a,int m);void +cp_set_rts(e*a,int m);int cp_get_dsr(e*a);int cp_get_cd(e*a);int +cp_get_cts(e*a);int cp_get_txcerr(e*a);int cp_get_rxcerr(e*a);void +cp_set_baud(e*a,int w);void cp_set_dpll(e*a,int m);void cp_set_nrzi(e + *a,int m);void cp_set_invtxc(e*a,int m);void cp_set_invrxc(e*a,int m +);void cp_set_lloop(e*a,int m);int cp_get_rloop(e*a);int cp_get_lq(e* +a);int cp_get_cable(e*a);void cp_set_gsyn(e*a,int l75);void cp_set_ts +(e*a,unsigned long j);void cp_set_dir(e*a,int u);void cp_set_mux(s*b, +int m);void l195(s*b,int m);void cp_set_dxc(e*a,l71*l911);void +cp_set_higain(e*a,int m);void cp_set_use16(e*a,int m);void cp_set_crc4 +(e*a,int m);void cp_set_phony(e*a,int m);void cp_set_unfram(e*a,int m +);void cp_set_scrambler(e*a,int m);void cp_set_monitor(e*a,int m); +void cp_set_rloop(e*a,int m);void cp_set_ber(e*a,int m);void +cp_set_cablen(e*a,int m);void cp_set_losais(e*a,int m);static void +l190(e*a);static void l140(long l199,long w,int*l50,int*l55);static +void l183(e*a);static void l209(e*a);static void l181(e*a,l71*l156); +static void l167(s*b);unsigned short cp_vendor_id=4362;unsigned short +cp_device_id=8450;static const unsigned char l518[]={79,231,255,255, +98,255,57,0,0,213,255,255,255,255,255,255,255,255,255,255,255,255,255 +,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,192,9,52,1,38,64,6,154,0,0,19,0,0,25,96,6,76, +128,140,134,85,6,200,0,0,25,96,2,100,128,97,144,1,0,15,12,48,1,50,0,0 +,178,76,70,19,112,2,76,128,9,48,137,38,208,4,64,22,152,104,2,100,128, +12,52,1,56,252,0,0,21,160,2,84,0,0,11,80,1,42,128,10,80,0,0,26,64,5, +180,0,0,10,96,1,44,64,5,176,0,0,45,192,2,0,15,18,160,2,88,0,0,21,192, +2,42,64,5,168,0,0,21,160,3,84,128,10,160,2,52,64,5,176,0,0,22,160,2, +80,252,0,11,64,0,5,2,0,31,64,0,21,152,249,0,74,152,255,0,4,128,0,5,64 +,1,0,3,128,2,16,128,2,0,1,8,0,1,40,0,19,4,0,1,80,0,7,4,0,4,64,0,1,2,0 +,3,96,254,0,4,32,2,0,4,68,0,5,10,64,2,8,0,1,8,0,12,64,0,8,144,0,1,16, +0,6,16,1,0,3,64,0,7,8,254,0,2,128,2,0,0,8,0,13,64,1,0,26,80,0,8,4,134 +,32,2,4,130,16,0,1,64,0,2,20,32,208,248,0,3,4,0,0,64,0,14,2,0,26,128, +0,8,16,0,0,2,0,0,64,16,0,8,32,252,0,2,128,5,240,32,0,13,192,130,0,26, +176,0,11,224,0,0,4,16,0,0,24,0,3,48,0,0,240,254,0,2,128,2,208,8,0,13, +64,1,0,26,80,0,8,48,18,70,18,132,18,0,1,8,0,4,32,0,0,254,0,3,131,0,0, +8,1,0,12,128,1,0,26,96,68,0,7,32,17,68,16,2,10,8,0,1,128,0,2,144,0,0, +72,249,0,3,4,240,0,14,64,2,2,0,25,128,0,8,28,128,3,52,64,4,0,1,24,0,3 +,44,8,64,253,0,3,4,0,15,128,2,0,26,128,0,8,48,16,6,4,0,0,10,0,1,96,0, +3,48,0,1,249,0,3,34,193,32,0,14,145,0,26,64,36,0,7,48,0,0,38,192,8,3, +0,1,96,17,0,2,48,10,192,253,0,2,128,0,1,8,0,10,16,40,10,64,0,6,2,0,16 +,4,32,0,0,16,0,6,160,1,1,128,16,8,128,10,0,1,96,2,0,2,132,32,160,252, +0,5,64,0,12,16,0,7,16,0,16,16,0,9,128,1,0,1,2,0,1,16,0,2,32,0,2,16,0, +0,208,254,0,2,128,5,240,32,0,10,176,32,22,192,130,0,4,60,8,0,19,176,0 +,6,128,128,0,2,242,32,22,8,0,0,112,0,5,32,254,8,0,1,128,2,208,4,0,11, +4,10,64,1,0,4,180,0,17,176,16,0,0,80,0,7,9,0,1,38,208,2,10,1,0,0,104, +8,0,2,48,16,146,255,0,3,131,0,0,8,1,0,9,16,2,140,144,1,0,5,66,0,16,32 +,16,0,0,96,68,0,7,2,0,0,4,0,0,68,12,3,0,0,8,17,0,2,32,2,48,248,0,3,4, +240,0,11,48,128,18,64,2,2,0,3,60,0,17,28,0,1,128,0,6,224,1,0,0,128,3, +241,0,0,16,0,1,120,0,3,28,32,32,255,4,0,2,4,0,0,32,0,11,32,16,128,2,0 +,23,48,0,1,128,0,7,128,0,1,6,2,64,20,0,1,96,64,0,2,48,32,121,252,0,3, +2,193,2,0,10,80,2,8,4,129,0,4,176,8,0,16,176,64,0,0,64,32,0,6,5,0,1,7 +,192,0,0,8,4,0,0,96,1,0,2,48,1,248,248,0,1,4,129,0,1,64,0,10,208,2,3, +64,2,8,0,4,2,0,16,4,2,0,0,16,0,6,160,9,0,0,128,128,0,0,4,2,0,1,96,2, +33,32,4,165,0,0,24,253,0,1,16,16,0,13,192,0,2,1,2,32,0,3,16,0,16,16, +16,0,8,128,129,0,1,2,192,64,0,2,96,32,4,132,0,1,16,128,248,0,2,128,5, +48,0,11,192,128,22,192,2,0,4,60,8,0,19,176,0,6,128,0,3,224,64,22,8,0, +0,112,64,12,8,0,0,32,0,0,104,250,4,0,1,133,2,16,0,11,192,8,10,64,1,64 +,132,0,2,52,1,0,16,48,34,0,0,80,0,7,5,1,0,0,70,212,2,10,1,0,0,8,4,140 +,128,129,0,0,4,122,254,12,0,1,6,131,192,40,0,10,192,8,141,144,162,0,0 +,64,0,3,66,0,16,32,2,0,0,96,68,0,7,2,0,0,68,209,32,12,3,0,0,104,20,72 +,0,0,5,16,1,200,248,0,1,12,0,0,4,240,0,11,112,0,0,18,64,2,56,0,3,60,0 +,17,28,8,0,0,128,0,6,224,1,0,0,128,3,48,0,0,16,0,1,120,0,0,15,232,0,0 +,61,32,112,255,8,0,1,32,4,192,0,11,192,0,0,16,0,0,2,32,64,0,21,48,8,0 +,0,128,0,7,128,0,1,6,193,128,20,0,3,12,136,1,0,1,201,249,0,1,136,0,0, +18,193,0,11,192,32,72,4,2,32,0,3,48,10,0,16,56,1,0,0,64,34,0,6,5,0,1, +39,192,8,72,4,0,0,96,130,78,128,145,144,32,232,251,0,1,4,132,0,1,8,0, +4,140,4,0,3,208,0,0,2,0,1,104,0,4,2,0,16,4,65,0,0,16,0,0,26,33,0,3, +160,49,0,0,128,64,0,0,128,2,0,2,64,129,4,0,0,164,0,0,40,254,0,1,16,0, +2,64,0,10,192,0,3,96,64,0,3,16,0,16,16,0,3,24,0,4,128,1,0,2,2,0,5,4,0 +,2,16,248,254,0,2,160,5,240,0,5,15,0,4,192,0,0,22,0,1,96,0,3,12,0,20, +176,0,0,24,4,0,3,128,128,0,2,240,0,0,22,8,0,0,120,16,12,4,0,0,32,16, +208,250,8,0,0,128,128,2,208,4,1,0,3,129,16,0,3,192,0,0,10,0,2,128,0,2 +,4,0,17,48,33,0,0,80,0,0,136,0,5,1,0,1,16,210,34,10,1,0,0,104,0,0,140 +,0,2,1,211,253,0,2,34,131,0,0,8,1,0,10,8,140,16,0,0,96,1,0,3,66,0,16, +160,8,0,0,96,68,16,0,6,2,0,0,32,4,68,12,3,0,1,128,8,16,0,0,16,1,33, +251,0,1,12,0,0,4,240,0,5,14,0,4,48,32,18,0,1,120,16,0,2,12,0,17,28,0, +1,128,0,0,14,8,0,3,224,1,0,0,128,1,240,0,0,16,0,1,120,0,0,15,0,1,60, +32,240,255,4,0,2,4,0,12,192,0,0,16,0,1,32,64,0,2,48,8,0,16,48,8,0,0, +128,0,0,16,0,5,128,0,1,4,0,1,20,0,3,12,0,3,105,249,0,2,4,66,193,36,0, +4,12,0,4,192,64,8,5,0,0,96,4,0,2,48,0,17,56,0,1,64,40,8,2,0,4,5,0,1, +38,196,32,8,5,0,0,96,18,14,8,0,0,16,18,64,253,0,1,52,128,132,192,64,0 +,10,208,0,0,2,64,139,8,132,0,3,2,0,16,4,34,0,0,144,68,0,4,137,168,17, +1,128,32,2,128,18,67,2,2,64,45,16,0,0,132,32,136,255,0,1,48,0,0,2,192 +,0,11,192,0,2,3,0,5,16,0,19,64,0,6,128,1,0,1,2,0,1,8,0,3,12,0,1,16,0, +0,240,249,0,2,128,5,224,0,13,22,192,1,0,0,32,0,2,60,32,0,17,16,0,0, +176,0,5,12,128,128,0,2,240,32,22,8,2,120,0,0,8,0,3,72,248,4,0,1,128,2 +,16,16,0,12,10,64,2,2,4,0,2,52,2,0,17,2,0,0,80,0,5,8,1,17,0,1,16,212, +4,10,1,64,104,16,68,4,0,0,48,16,2,252,4,0,0,48,2,5,208,0,0,1,0,10,8, +140,16,147,96,16,0,3,66,0,17,4,0,0,160,0,5,32,0,1,2,0,1,8,68,20,0,0, +17,2,128,44,8,0,0,32,17,224,251,0,1,60,16,4,240,0,11,48,32,18,192,3, +56,0,3,60,0,17,12,0,1,128,0,5,7,232,1,0,0,128,1,240,0,0,16,192,3,120, +0,0,15,0,1,28,0,0,120,253,4,0,0,48,0,0,4,0,0,128,0,12,16,4,3,64,0,22, +32,16,0,0,128,0,6,8,128,0,2,4,0,0,20,0,3,12,0,1,48,16,41,254,0,1,48, +33,4,192,4,0,11,64,8,1,10,36,10,0,2,48,8,0,16,176,0,1,128,0,5,36,0,0, +5,0,1,17,192,40,16,0,0,33,97,20,0,0,1,0,0,48,0,0,232,250,0,2,128,64,1 +,8,0,0,64,0,8,64,0,0,147,80,96,8,0,4,16,0,16,4,32,0,0,16,32,0,4,137, +40,4,2,128,16,0,0,4,130,68,2,2,2,0,2,132,64,176,248,0,5,64,0,10,128,0 +,0,8,0,1,96,64,0,2,48,0,17,16,0,9,128,0,2,2,4,64,0,3,32,0,2,16,0,0, +176,250,0,4,240,32,0,10,176,0,0,22,192,0,5,8,0,27,8,4,0,3,52,0,0,14,0 +,0,2,24,0,5,176,250,8,0,2,64,209,0,11,80,68,10,64,16,4,34,0,2,52,66,0 +,16,176,16,0,1,40,0,4,64,128,17,1,0,0,16,16,0,1,5,16,10,0,3,48,64,226 +,253,0,3,128,0,0,8,1,0,0,16,1,0,6,96,0,0,20,0,1,96,1,0,2,52,33,0,16, +160,0,2,68,0,4,36,8,17,0,1,64,196,2,2,0,0,17,98,34,0,2,32,2,120,251,0 +,2,128,1,240,0,1,192,0,8,128,0,0,18,192,0,0,58,32,0,2,12,0,17,28,32,0 +,0,48,0,5,15,224,64,0,0,128,1,240,32,4,196,3,120,0,3,28,8,16,251,4,0, +3,1,64,0,1,3,0,7,160,0,0,16,0,6,48,0,17,48,0,2,32,0,5,128,65,0,2,192, +0,0,2,0,1,98,0,3,48,8,113,249,0,3,68,192,0,2,19,2,0,6,64,0,0,16,0,0, +34,34,68,0,21,48,18,0,0,128,8,0,4,132,196,17,0,1,32,200,0,0,82,4,1,96 +,0,3,56,2,40,254,0,2,128,0,0,192,64,26,0,11,3,65,11,9,0,1,128,129,0,0 +,16,0,16,4,32,0,2,128,80,8,2,0,0,1,32,32,0,0,128,32,2,128,2,65,32,1,2 +,0,2,4,4,120,249,0,4,193,0,0,24,0,11,8,4,3,0,0,64,0,2,48,0,17,16,0,3, +24,0,0,1,0,1,12,136,0,2,2,0,2,4,3,0,0,32,0,2,16,0,0,56,253,0,2,128,3, +224,0,1,16,0,8,176,0,1,4,3,98,0,1,224,129,56,0,22,28,8,0,2,8,0,4,240, +0,1,4,2,26,0,5,224,252,8,0,3,17,20,24,0,9,80,68,0,0,1,33,0,0,34,0,0, +32,0,0,180,16,0,16,176,16,0,2,26,0,0,3,1,0,0,44,144,9,1,0,0,70,210,36 +,0,0,1,11,8,0,3,48,33,58,248,0,2,128,0,0,209,32,24,33,0,8,96,0,0,128, +0,0,11,66,65,0,2,52,8,0,16,32,0,3,26,1,34,1,0,0,44,0,0,5,0,1,20,2,68, +128,0,0,3,97,4,0,2,32,0,0,224,254,0,3,1,240,0,0,6,0,9,128,0,0,6,196,3 +,24,0,1,224,1,12,0,17,28,16,0,2,6,200,1,0,1,11,228,64,0,0,128,3,240,0 +,0,6,196,2,120,16,0,2,28,16,88,248,4,0,1,128,0,2,24,16,0,8,160,0,2,3, +64,0,3,48,16,0,16,48,0,3,24,8,3,0,1,12,128,1,0,1,6,0,0,32,0,1,3,96,0, +3,48,32,73,252,0,2,128,20,193,0,0,1,1,0,8,64,0,0,68,4,83,96,8,0,0,128 +,1,176,0,17,48,4,0,2,152,0,0,67,0,1,14,196,81,0,1,70,200,8,80,132,3, +97,0,3,56,2,192,248,0,2,128,0,0,2,64,0,2,8,0,6,128,0,0,131,68,0,0,72, +130,1,0,2,16,0,16,4,32,0,0,16,0,0,130,32,0,2,37,36,16,0,0,128,32,2,4, +90,68,17,4,64,137,1,0,0,4,34,248,252,0,3,4,0,12,64,0,0,8,0,25,16,0,2, +32,8,0,5,128,0,1,2,0,0,64,0,4,4,0,3,24,250,0,3,1,48,0,4,32,0,5,176,0, +2,128,96,16,0,2,12,0,20,112,0,0,14,0,3,12,4,0,3,48,0,0,30,4,3,120,16, +8,8,0,2,112,253,8,0,1,128,68,18,0,4,4,0,5,80,68,64,4,11,64,1,76,8,0,0 +,4,0,17,176,16,0,1,32,128,2,0,4,136,0,1,70,18,0,0,146,0,0,8,106,1,44, +0,2,65,114,255,0,2,128,66,200,36,0,3,64,0,5,96,0,0,64,4,144,96,2,140, +16,0,0,176,8,0,16,32,2,0,0,16,8,18,5,0,2,68,2,16,2,0,0,4,192,0,1,2, +145,0,0,128,8,4,0,1,65,184,255,0,3,1,240,0,3,24,0,6,128,0,0,6,192,0,0 +,120,16,15,0,1,60,0,17,28,32,0,0,32,64,6,0,3,11,96,0,1,128,3,242,32,6 +,192,2,120,0,0,15,0,1,12,0,0,24,249,4,0,1,128,2,192,0,11,96,0,2,3,96, +16,12,4,0,0,48,0,17,48,16,0,0,16,0,1,16,0,2,12,2,1,0,1,6,192,0,0,8,16 +,131,0,0,16,12,0,1,32,16,129,255,0,2,128,0,0,192,0,3,96,34,0,5,128,0, +1,5,11,100,0,0,140,0,1,48,0,17,48,0,1,144,34,82,0,3,44,128,1,1,0,0, +134,192,0,0,80,0,0,11,96,4,14,4,0,0,176,0,0,208,251,0,3,16,8,0,44,8,0 +,13,1,0,7,16,255,32,0,0,4,0,1,16,0,0,2,64,0,0,8,0,0,1,32,0,0,4,128,0, +2,2,64,0,0,8,0,0,1,32,0,0,4,0,15,32,0,0,4,128,0,1,128,0,0,64,0,0,8,0, +0,1,32,0,0,4,128,0,0,16,0,1,80,0,0,8,0,0,1,32,0,0,4,0,0,184,252,0,65, +16,0,7,136,255,36,0,0,4,0,0,64,18,0,0,2,64,0,0,8,0,0,1,32,0,0,4,128,0 +,0,16,16,2,64,0,0,8,0,0,1,32,0,0,4,0,15,32,0,0,4,128,0,1,72,66,80,0,0 +,8,0,0,1,32,0,0,4,128,0,0,16,0,1,64,0,0,8,0,0,1,32,0,0,4,0,0,51,249, +12,0,2,16,2,0,5,32,0,5,8,0,30,4,5,0,12,9,0,7,1,251,32,0,0,4,0,3,2,64, +0,0,8,0,1,36,0,0,4,128,0,1,64,0,2,8,0,0,1,0,18,32,0,0,4,128,0,3,64,0, +0,8,0,0,1,32,0,0,4,128,0,3,64,0,2,1,32,0,0,4,0,0,204,254,8,0,73,144, +255,32,0,0,4,0,0,32,18,68,2,64,0,0,8,0,1,33,0,0,4,128,0,0,16,128,130, +72,16,9,0,0,1,32,136,4,17,0,14,32,0,0,4,128,0,1,68,2,64,0,0,8,0,0,1, +32,0,0,4,128,0,0,16,68,128,72,0,0,8,34,1,32,0,0,4,0,0,248,254,0,4,16, +0,61,8,0,0,1,0,3,24,255,0,28,4,0,27,4,0,15,216,251,0,11,1,0,8,64,0,0, +16,0,2,16,0,24,64,0,2,128,0,0,4,0,0,128,4,0,0,4,0,5,32,0,0,4,40,251,2 +,0,3,16,0,16,8,32,0,2,32,0,32,2,128,0,5,8,0,1,64,0,0,80,250,0,3,2,0, +53,2,0,1,8,0,1,2,0,8,24,253,0,7,2,0,0,1,0,10,64,0,0,8,0,21,128,0,2,1, +0,11,17,0,2,128,0,3,128,0,0,233,250,0,1,16,0,1,32,128,0,4,1,0,2,32,2, +0,1,8,4,0,22,32,0,1,32,0,0,64,32,2,0,7,8,0,0,16,0,0,8,0,2,64,4,2,0,2, +144,249,0,1,4,0,0,2,65,0,1,16,0,3,8,0,0,4,128,0,45,65,0,10,88,253,0,1 +,12,128,0,0,52,64,0,0,16,0,0,192,0,0,2,8,0,0,4,144,1,0,1,4,8,0,22,64, +5,0,0,16,0,0,32,64,4,0,1,192,0,4,16,0,0,52,20,4,0,1,64,33,66,5,0,2, +112,250,0,2,8,134,192,0,2,65,0,1,12,0,2,4,20,192,128,192,0,0,130,0,0, +8,8,0,0,1,0,17,4,0,0,4,0,0,81,32,2,0,0,1,64,0,5,160,0,0,4,24,64,4,96, +0,0,64,2,0,1,10,56,249,0,2,32,1,16,0,1,64,0,2,4,0,4,16,0,2,128,0,26, +68,32,0,1,2,0,9,8,0,1,8,0,1,8,0,1,8,160,249,2,0,2,2,65,0,3,2,0,0,8,0, +2,32,4,64,0,1,64,0,1,64,1,32,0,20,32,0,5,8,0,6,4,0,0,2,0,1,16,0,5,72, +253,0,1,4,4,0,0,8,0,16,8,0,26,64,0,1,4,0,4,1,0,4,136,0,2,2,0,0,2,64,0 +,0,96,250,0,7,16,0,14,64,0,27,16,0,2,8,0,16,208,255,0,10,1,0,7,1,0,1, +2,9,0,21,136,0,4,2,0,3,64,0,3,2,0,6,12,0,1,24,168,249,0,9,160,0,0,2,0 +,7,64,0,0,64,0,27,2,0,8,1,1,0,10,208,248,0,5,2,0,61,8,0,0,1,0,2,160, +253,0,1,4,0,43,32,0,3,1,0,13,64,0,6,152,248,0,21,1,0,34,16,0,3,64,0, +10,200,255,2,0,5,64,0,17,64,0,41,8,2,0,1,32,128,88,253,0,22,4,0,32,2, +0,8,8,0,2,16,0,0,8,0,0,248,252,0,23,128,0,21,4,0,19,1,0,1,1,0,2,88, +255,0,1,32,0,56,32,0,0,4,0,11,248,253,0,2,128,0,1,128,0,11,128,0,5,8, +0,1,32,0,34,2,0,7,64,48,249,0,74,152,255,0,46,64,0,4,128,0,2,2,64,0,2 +,8,0,11,240,253,0,63,2,0,3,1,0,4,136,252,0,74,152,255,0,17,16,0,28,8, +0,9,64,0,1,1,0,11,144,251,0,4,4,0,46,4,0,10,8,0,8,24,255,0,21,128,0, +27,1,0,4,1,0,7,64,0,5,4,0,0,208,251,0,2,16,0,14,32,0,2,32,0,1,4,0,35, +32,0,0,1,0,7,128,80,255,0,5,1,0,13,64,0,5,64,0,17,32,0,10,1,0,11,1,0, +1,136,249,0,4,32,0,12,16,0,31,4,2,0,4,2,0,1,20,8,0,1,128,0,0,36,0,6, +251,0,18,64,0,26,64,0,11,2,0,1,8,0,9,64,240,249,0,3,8,0,0,1,0,12,32,0 +,0,4,0,3,2,64,0,35,32,0,8,96,252,0,4,1,0,13,4,0,4,128,0,1,8,0,19,4,32 +,2,128,0,0,1,0,0,1,8,0,0,4,128,0,1,128,0,3,64,0,0,64,0,2,176,253,0,0, +32,0,0,8,0,1,32,8,16,0,8,1,128,0,0,4,0,0,66,64,0,0,8,0,0,17,0,15,64,0 +,7,1,0,6,4,0,1,8,128,0,7,160,252,0,1,1,32,160,130,150,2,16,0,8,4,128, +4,16,0,0,10,74,0,0,72,0,0,165,16,0,14,32,0,3,2,84,4,192,0,0,1,0,0,6,4 +,0,0,8,128,1,128,66,2,64,1,0,0,32,0,0,64,0,2,200,248,0,0,1,32,132,0,0 +,1,88,1,4,66,96,0,3,32,4,32,0,1,128,2,163,0,0,8,4,1,32,32,80,0,14,128 +,0,1,8,64,139,0,0,28,4,160,34,0,2,32,0,1,64,17,1,20,16,133,64,0,0,4,0 +,2,32,24,250,0,4,1,0,1,16,0,0,8,0,9,128,128,0,1,4,0,18,32,0,1,4,0,0,4 +,0,0,4,2,128,16,0,6,1,0,2,1,1,0,0,4,0,3,24,255,0,0,1,4,4,0,1,64,0,1, +130,32,0,3,4,32,0,3,8,1,0,0,32,0,0,8,0,0,9,0,20,64,0,0,2,0,5,64,0,4,8 +,0,1,32,0,5,152,252,16,0,56,1,0,14,32,204,248,16,0,10,8,0,60,4,132, +251,0,4,32,0,19,64,0,0,8,0,22,4,0,5,128,0,6,64,0,4,16,0,0,200,248,0, +12,16,0,6,2,0,24,16,0,4,32,0,8,2,0,1,2,0,7,168,255,0,3,4,0,13,128,0, +29,128,0,5,16,0,8,6,0,1,16,0,3,24,252,0,46,8,64,0,8,34,4,8,128,0,7,4, +0,1,12,8,48,255,0,1,64,0,15,1,0,27,80,0,2,2,0,5,4,0,1,18,1,0,5,32,0,1 +,128,0,0,144,250,0,18,1,0,8,64,0,17,24,0,2,32,0,4,128,192,16,0,3,4,0, +0,128,0,3,64,16,16,40,252,0,3,1,0,0,128,0,39,16,0,8,8,0,10,64,0,0,2,0 +,0,32,0,0,80,253,0,1,128,0,19,128,1,0,24,64,0,8,1,0,0,128,64,0,0,64,0 +,0,8,0,1,16,0,3,200,254,0,22,1,0,22,4,0,3,32,64,0,2,4,32,0,1,128,0,0, +128,0,1,2,0,0,64,0,5,32,249,0,8,1,0,12,1,0,0,4,0,30,32,0,5,64,0,8,32, +248,252,0,1,4,129,16,208,64,2,0,1,8,0,0,141,36,8,53,146,6,208,72,0,2, +104,0,1,160,145,0,29,160,33,52,65,0,5,72,2,9,1,0,0,52,32,232,255,0,2, +8,0,0,193,0,5,12,128,0,0,48,0,0,6,192,0,3,96,0,1,128,1,0,31,48,0,6,32 +,64,4,0,1,48,0,1,253,0,1,28,0,3,22,0,1,88,0,0,12,72,0,0,48,160,7,128, +0,3,120,0,1,128,1,0,29,128,1,48,0,6,96,0,0,8,8,0,0,16,0,0,208,255,0,1 +,132,32,0,0,129,72,10,0,1,40,0,0,76,160,16,50,129,6,64,66,0,2,104,0,1 +,128,133,0,29,128,1,50,4,0,5,96,66,44,0,1,32,18,192,249,0,1,128,16,32 +,193,66,12,0,1,48,0,0,8,32,145,32,1,6,192,130,0,2,96,0,2,9,0,30,68,32 +,0,6,64,2,136,4,0,1,1,208,249,0,1,12,128,1,240,0,0,18,0,1,72,0,0,7, +104,0,0,28,32,7,240,0,3,112,0,1,224,128,0,29,96,1,28,32,0,5,24,32,15, +0,1,60,32,120,251,0,4,192,0,0,16,0,1,64,0,0,12,4,1,48,160,6,192,0,3, +96,0,1,128,1,0,29,128,1,48,16,0,5,96,32,12,4,0,2,232,248,0,1,4,17,68, +65,4,9,0,1,32,0,0,64,0,1,128,128,6,0,0,20,0,2,96,0,3,1,0,29,145,128,0 +,6,64,2,142,0,1,32,32,64,254,0,1,148,128,68,0,1,2,0,1,8,0,1,32,32,0,0 +,128,6,0,1,130,8,0,2,137,16,0,0,4,18,0,6,34,0,6,17,0,1,128,0,8,32,8,2 +,0,8,5,168,1,52,4,24,249,0,2,16,2,1,0,6,128,0,2,6,0,6,12,0,1,16,0,7, +12,0,6,6,0,24,128,1,48,0,0,40,248,0,1,56,136,3,0,1,22,0,1,88,0,1,64,0 +,1,128,7,0,1,6,4,0,2,2,0,1,32,0,7,12,0,6,6,0,3,1,0,18,12,128,1,16,16, +152,250,8,0,0,20,128,4,0,1,10,0,1,40,0,1,160,0,0,1,128,6,0,1,130,0,3, +9,4,0,0,144,16,0,6,10,0,6,5,0,12,72,0,9,128,132,1,160,0,0,203,251,0,1 +,4,16,4,0,1,12,0,1,48,0,1,32,5,0,1,6,0,2,1,0,2,77,0,1,128,16,0,6,10,0 +,6,5,0,2,16,1,0,7,72,0,9,36,128,9,2,1,89,249,0,1,44,128,2,0,1,18,0,1, +72,0,1,96,128,0,1,7,0,1,6,16,0,2,7,4,0,0,12,0,18,128,1,0,7,224,0,10, +11,226,1,60,32,64,251,4,0,0,32,16,2,0,1,16,0,1,64,0,2,1,0,1,6,0,6,4,4 +,0,1,32,0,18,6,1,0,6,128,0,10,12,2,0,0,1,0,0,9,250,0,1,176,0,0,4,0,1, +8,0,1,32,0,5,6,0,1,144,8,0,2,32,0,1,16,2,0,18,32,0,7,128,69,0,9,140,0 +,0,4,32,32,208,254,176,1,20,130,0,0,80,2,2,0,1,8,0,0,5,33,9,1,0,4,64, +0,0,1,0,33,160,33,0,9,137,0,1,52,6,40,249,128,1,0,0,32,0,0,192,64,0, +14,1,0,34,128,1,0,10,8,0,0,48,0,0,88,248,224,1,56,136,5,0,1,22,0,1,88 +,0,0,12,68,1,0,54,8,0,1,16,16,56,254,172,1,20,130,2,192,16,10,0,1,40, +0,0,32,32,16,2,0,5,11,1,0,33,128,1,2,0,9,4,0,0,32,0,0,234,255,132,1,4 +,1,3,192,66,12,0,1,48,0,0,36,40,0,0,2,0,5,8,1,0,33,128,64,0,9,4,0,2,1 +,48,253,192,1,44,160,4,240,0,0,18,0,1,72,0,0,11,224,0,6,192,0,22,2,0, +11,224,1,0,9,15,4,0,0,60,32,208,251,132,1,32,16,4,192,128,16,0,1,64,0 +,0,12,4,0,7,1,0,21,8,0,11,128,0,0,1,0,9,8,0,2,217,252,128,1,176,0,0,2 +,64,8,8,0,1,32,0,0,140,128,0,7,32,1,0,20,8,0,12,8,0,9,132,0,1,32,32, +96,251,0,1,4,130,0,2,2,0,1,72,0,0,141,160,16,4,1,0,5,72,68,0,19,1,0, +11,32,0,0,52,2,0,7,41,0,1,52,0,0,88,249,0,1,32,32,0,5,32,0,0,8,4,64,0 +,0,32,0,27,4,0,13,32,16,0,7,4,4,0,2,128,252,0,1,40,128,5,0,1,22,0,1, +88,0,0,15,96,0,0,48,32,0,5,96,0,20,1,0,12,64,60,16,0,7,12,0,1,48,0,0, +152,248,8,0,0,52,146,2,0,1,10,0,1,40,0,0,140,40,128,176,0,7,34,0,19,1 +,0,13,48,1,0,7,76,16,0,0,48,16,226,249,0,1,20,66,3,0,1,12,0,1,48,0,0, +133,2,8,2,34,0,5,96,20,0,19,16,0,12,64,148,8,0,7,8,4,0,0,48,8,48,252, +0,1,12,128,4,0,1,18,0,1,72,0,0,15,96,0,0,12,0,6,56,0,20,1,0,11,96,0,0 +,60,0,8,3,0,1,60,0,0,96,253,4,0,0,48,16,4,0,1,16,0,1,32,0,0,12,0,1,33 +,16,0,5,96,64,0,19,8,0,12,64,48,0,8,12,2,0,0,48,16,97,254,0,1,144,0,0 +,2,0,1,8,0,1,64,0,0,12,48,16,48,2,0,5,96,4,0,32,128,5,52,17,0,7,32,0, +1,48,1,232,251,0,1,4,128,0,2,2,0,3,13,32,0,0,4,1,0,2,66,0,1,40,12,0, +19,4,0,1,128,0,3,64,19,72,129,0,1,4,1,0,1,208,0,0,82,0,3,137,0,1,4,2, +56,251,0,11,12,0,0,64,0,0,16,0,3,8,0,22,4,0,7,2,1,0,1,128,1,0,2,192,0 +,1,8,0,3,8,0,0,16,16,232,249,0,2,128,5,0,1,22,0,3,15,96,0,0,48,0,6,96 +,32,0,24,1,0,3,64,0,1,224,1,0,2,192,0,0,16,0,3,8,8,0,1,16,224,248,4,0 +,0,48,133,2,0,1,10,0,3,13,32,128,48,32,0,2,128,16,0,14,128,0,6,8,0,7, +8,1,68,0,0,128,41,0,2,192,0,1,17,0,5,48,1,217,252,12,0,2,3,0,1,12,0,3 +,12,0,0,8,2,65,0,3,3,0,0,32,2,0,12,2,0,9,16,1,0,2,1,32,32,0,0,160,9,0 +,2,192,2,73,0,3,4,0,1,32,0,0,11,253,0,1,60,160,4,0,1,18,0,3,14,96,1, +12,0,3,6,0,1,88,64,0,22,128,7,0,2,64,3,120,0,1,96,0,0,1,0,1,240,0,0, +30,16,0,2,15,4,0,0,28,8,240,249,8,0,0,48,0,0,4,0,1,16,0,3,12,0,1,33,0 +,4,8,0,0,96,32,0,11,192,0,11,1,0,6,128,1,0,12,48,0,0,130,255,0,1,48, +16,2,0,1,8,0,3,12,32,16,48,10,0,2,144,0,1,96,4,0,12,1,0,9,32,0,4,32, +128,0,0,128,137,0,3,132,8,32,0,2,4,16,0,0,184,64,136,254,0,1,132,128, +0,2,2,64,3,0,1,69,32,0,0,4,1,0,2,130,0,1,96,4,1,2,0,9,64,0,10,34,8,0, +0,26,33,0,0,72,129,13,160,0,0,48,0,3,82,64,0,2,13,8,0,0,4,65,88,253,0 +,2,8,0,4,3,0,1,8,130,128,0,0,32,0,3,8,0,1,32,0,11,64,0,10,4,0,1,24,0, +1,1,0,0,12,0,0,1,48,16,0,3,8,0,2,12,0,1,16,0,0,16,252,0,1,12,128,5,0, +1,22,192,3,0,1,12,64,128,48,32,0,5,112,64,3,0,11,4,0,8,128,5,0,1,24,0 +,0,3,64,0,1,96,1,56,16,0,2,16,0,0,3,0,1,4,0,3,208,254,4,0,0,132,160,2 +,0,1,10,64,3,0,1,76,176,4,176,0,3,128,2,0,0,104,1,65,4,0,9,64,0,9,128 +,34,8,0,0,8,33,2,1,65,0,0,176,132,132,0,4,8,3,0,1,136,4,0,0,48,33,194 +,253,12,0,0,128,16,3,0,1,12,0,0,3,0,1,36,32,17,2,34,0,3,16,0,0,8,128, +32,4,0,10,2,0,9,3,0,1,24,0,1,32,32,12,192,0,0,54,64,0,2,72,0,0,96,0,1 +,32,16,0,0,32,2,152,251,0,1,12,128,4,0,1,18,128,3,0,1,15,104,0,0,12,0 +,3,6,0,1,120,0,0,11,0,22,4,0,1,22,16,0,0,120,0,0,3,40,1,60,0,3,30,208 +,0,2,15,0,1,28,8,120,249,8,0,2,4,0,1,16,0,0,3,0,1,12,0,0,1,48,32,0,5, +96,0,13,1,0,9,5,0,1,16,8,1,0,0,64,12,72,65,0,5,16,0,3,4,0,0,48,0,0, +137,254,0,1,36,17,2,0,1,8,0,0,3,0,1,12,1,0,0,16,2,0,2,16,32,0,0,104, +132,33,4,0,10,1,0,9,2,0,1,80,0,0,3,32,1,64,128,4,48,33,0,2,8,1,8,2,0, +0,40,0,1,184,8,192,255,0,1,4,128,0,2,2,64,9,4,0,0,128,48,68,4,1,0,0, +208,0,0,2,81,33,73,4,129,0,22,32,216,66,0,1,32,12,0,0,141,36,0,3,80,4 +,66,16,0,2,69,160,8,4,34,32,250,0,15,16,0,0,192,0,3,96,64,0,0,2,0,10, +2,0,10,192,0,3,96,64,12,0,5,128,24,0,4,8,0,0,1,0,0,160,250,0,2,128,5, +0,1,22,0,0,3,0,1,14,104,0,0,48,0,1,240,0,2,3,88,64,7,0,21,128,5,64,64 +,0,1,3,64,0,0,4,100,1,0,2,64,0,0,16,0,3,4,128,0,2,240,250,8,0,0,48, +133,2,0,1,10,0,0,32,1,0,0,1,32,4,49,32,0,0,208,0,0,64,32,0,0,2,4,65,4 +,0,17,4,0,1,128,34,136,0,2,10,100,36,136,160,132,0,2,128,130,24,33,0, +2,40,8,5,129,32,234,253,0,3,3,0,1,12,0,0,17,0,1,1,0,0,132,0,0,65,0,0, +192,0,0,128,32,17,104,17,32,4,0,21,3,0,0,2,0,2,96,36,64,192,0,0,2,0,2 +,66,24,8,0,3,8,32,0,0,17,64,253,0,1,60,160,4,0,1,18,192,2,2,0,0,3,100 +,1,12,0,1,224,0,0,6,192,2,58,0,0,3,0,22,4,240,64,0,2,88,0,0,15,40,1,0 +,2,240,0,0,22,0,3,15,224,1,12,0,0,112,254,4,0,0,48,32,4,0,1,16,0,0,3, +1,0,3,48,8,0,0,192,0,1,8,3,1,32,0,23,5,0,0,128,0,1,1,96,32,0,0,64,65, +0,2,192,64,24,8,0,2,12,128,129,32,32,145,253,0,1,48,0,0,2,0,1,8,0,0, +35,0,1,141,36,136,144,0,1,192,0,0,80,0,0,35,32,1,33,4,0,21,2,128,4,0, +1,3,112,4,8,136,0,3,224,0,0,28,1,0,2,142,196,5,48,2,136,252,0,1,4,130 +,0,2,2,64,35,0,1,45,36,4,52,6,0,2,130,4,0,0,104,36,33,160,1,0,20,36,8 +,0,2,67,40,33,37,34,1,22,1,0,0,208,4,11,2,0,2,77,176,129,52,65,88,254 +,0,2,8,0,4,3,2,0,0,12,0,0,64,48,0,6,96,0,0,8,136,1,0,20,2,0,3,2,0,2, +128,0,0,32,8,0,0,192,0,5,12,128,1,32,0,0,56,254,0,1,12,128,5,0,1,22,0 +,0,3,1,0,0,12,224,0,0,48,0,4,4,0,0,96,0,0,10,232,1,0,16,3,0,1,128,5,0 +,3,3,96,0,0,4,96,1,48,32,0,0,192,64,24,8,0,2,8,128,1,48,0,0,208,254,8 +,0,0,4,132,2,0,1,10,0,3,64,33,128,128,64,0,6,8,141,160,1,0,1,4,0,5,16 +,2,0,5,8,0,1,128,34,8,0,2,18,4,34,40,168,0,0,48,2,0,0,192,4,64,0,3,4, +129,33,32,33,42,252,0,1,128,16,3,0,1,12,0,0,9,0,1,36,0,0,8,146,0,4,1, +0,0,32,1,37,144,1,0,1,2,0,5,16,1,0,5,8,0,2,3,0,3,1,32,17,128,68,5,144 +,0,1,128,2,73,4,0,2,44,8,9,18,64,0,0,250,0,1,12,128,4,0,1,18,192,2,1, +0,0,11,100,0,0,44,16,0,2,6,8,0,0,88,32,3,192,1,0,1,7,0,5,144,3,0,5,8, +0,2,4,0,3,3,88,0,0,15,32,129,60,32,0,0,112,0,0,22,0,3,15,224,0,0,60,0 +,0,152,248,4,0,2,4,0,1,16,0,1,1,0,3,1,16,0,3,4,0,1,32,12,132,1,0,0, +128,5,0,5,208,2,0,5,8,0,2,3,0,3,1,96,16,12,4,1,48,0,1,192,0,0,24,4,0, +2,12,128,1,49,0,0,121,248,0,1,36,17,2,0,1,8,128,18,0,1,10,40,16,40,1, +0,2,80,0,1,80,2,36,128,1,0,1,4,0,5,8,2,0,5,4,0,2,4,0,3,3,96,4,142,0,0 +,1,176,16,0,1,132,24,1,0,2,64,1,4,48,17,144,249,0,1,8,0,8,2,64,0,2, +128,0,4,16,0,0,2,0,3,4,0,6,2,0,35,144,254,32,0,1,128,0,0,16,0,0,2,64, +0,0,8,0,3,4,0,1,16,0,0,2,64,0,3,32,0,0,4,0,7,2,0,6,33,0,0,4,128,0,0, +16,0,0,2,64,0,0,8,0,0,1,32,0,1,128,0,0,16,0,0,2,64,0,0,8,0,0,1,32,0,0 +,4,0,0,48,250,0,74,152,255,40,0,0,4,128,0,0,16,0,0,2,64,0,0,8,0,0,1, +32,0,0,4,128,64,20,0,0,2,64,0,0,8,0,0,1,32,0,0,4,0,15,32,0,0,4,128,0, +0,16,0,0,2,64,0,0,8,0,0,1,32,0,0,4,192,0,0,16,0,0,2,64,0,0,8,0,0,1,32 +,0,0,4,0,0,163,248,0,0,8,8,0,0,1,0,1,4,0,0,96,16,0,0,128,80,0,4,8,4,0 +,2,4,2,0,0,128,0,20,32,0,9,8,0,13,1,251,0,1,5,0,1,16,0,6,32,0,0,4,0,1 +,4,64,0,0,64,0,1,32,1,0,1,4,0,15,32,0,0,4,0,1,20,0,0,2,64,0,0,8,0,0,1 +,0,2,128,0,0,16,0,0,2,64,0,0,8,0,0,1,32,0,0,4,0,0,136,252,4,0,0,1,0,5 +,128,0,13,16,0,1,128,0,21,2,0,7,128,0,14,97,250,32,16,4,128,0,0,16,0, +0,2,64,0,0,8,0,0,33,34,0,0,4,128,0,0,24,136,2,64,0,0,8,4,1,32,16,4,0, +15,32,0,0,4,0,0,64,16,0,0,2,64,0,0,8,0,0,1,32,16,4,128,0,0,16,0,0,2, +64,0,0,8,0,0,1,32,0,0,4,0,0,176,253,0,15,16,0,9,128,0,27,8,0,7,4,0,8, +200,254,0,17,16,0,29,2,0,4,16,32,0,0,128,0,4,64,0,0,2,0,2,19,1,0,2, +240,250,0,8,128,0,2,1,0,6,32,128,0,0,16,0,33,64,1,0,13,48,251,0,2,32, +0,4,1,0,1,4,0,0,1,0,6,1,160,0,28,96,0,5,2,0,11,64,4,80,249,0,22,128,0 +,50,16,255,0,12,4,0,1,4,0,20,1,0,1,4,0,18,16,0,10,128,0,0,208,254,128 +,0,3,65,32,8,4,1,34,16,0,0,128,0,1,16,0,0,1,32,0,36,1,0,2,8,0,0,4,0,2 +,2,0,2,2,0,0,1,0,1,255,0,0,64,0,2,32,0,0,4,16,0,5,17,0,3,8,64,0,34,2, +0,12,4,0,2,120,255,64,64,17,0,1,50,64,6,152,0,0,17,48,0,0,64,0,0,21, +21,0,0,2,64,2,64,80,0,1,24,0,30,3,0,1,160,21,0,0,2,0,1,128,0,1,16,0,0 +,12,128,0,1,88,255,128,8,52,80,0,0,129,0,1,4,74,32,16,2,2,0,0,208,1,0 +,1,4,64,2,16,32,8,20,10,0,1,80,0,17,4,130,5,32,16,4,0,0,32,0,1,128,0, +0,132,13,130,0,0,32,0,1,1,32,0,0,4,2,96,33,8,8,255,0,0,1,32,0,1,4,0,1 +,4,0,0,32,16,0,0,8,0,0,16,0,6,32,0,0,4,8,0,20,128,0,0,4,128,0,0,16,0, +0,8,0,1,64,0,1,32,4,0,0,64,0,0,128,0,0,64,0,0,4,4,64,0,0,160,0,0,248, +8,0,0,16,0,1,16,0,1,64,0,0,2,0,9,16,0,1,64,0,22,32,0,0,1,0,0,16,0,7, +16,0,0,4,0,8,17,0,0,160,253,0,74,152,255,0,74,152,255,0,1,32,16,0,0, +160,0,1,128,0,3,4,0,0,8,0,1,1,0,0,34,128,2,16,0,31,16,32,0,7,4,0,0,64 +,0,5,80,250,0,13,32,3,0,3,8,0,36,36,0,1,4,0,6,32,32,0,3,8,254,0,8,2,0 +,1,2,0,1,4,0,2,16,0,39,16,0,8,8,1,0,0,32,0,0,96,248,0,12,32,0,60,184, +253,0,14,32,0,10,1,0,26,64,0,2,32,0,4,1,0,1,16,0,5,248,249,0,49,8,0, +23,24,255,0,1,20,0,1,64,0,5,32,128,0,0,128,0,3,16,8,1,32,0,0,4,16,0,0 +,16,0,20,1,0,3,2,0,12,16,0,0,4,0,2,40,254,0,1,128,0,2,16,0,10,128,0,0 +,2,8,0,1,1,16,1,1,0,0,4,0,34,16,0,6,16,0,0,248,254,0,54,4,0,18,152, +251,0,17,2,0,8,8,0,30,64,0,13,112,253,0,1,64,0,9,8,0,9,32,16,0,12,4,0 +,1,16,0,11,16,0,18,36,251,8,0,21,16,0,0,8,0,23,32,0,3,128,0,1,8,0,3, +32,0,8,8,0,0,48,252,0,50,2,8,0,12,64,0,2,4,0,3,112,249,0,0,32,64,8,0, +7,32,0,0,66,0,4,32,0,32,4,0,3,1,0,5,4,0,7,160,255,0,25,64,0,10,4,0,1, +16,0,17,8,0,11,8,0,0,88,250,0,14,128,64,0,57,88,251,0,15,8,0,21,1,0,1 +,4,0,10,4,0,4,4,0,1,32,0,5,1,32,0,2,96,249,0,23,128,0,12,8,0,1,32,0, +12,32,0,8,8,32,0,2,4,0,1,2,0,0,24,249,0,4,16,0,8,1,0,2,32,0,4,8,0,31, +4,4,0,3,32,0,5,2,64,0,0,16,32,250,0,1,36,16,0,0,128,0,2,2,0,1,8,8,0,0 +,32,0,3,64,0,1,64,0,1,130,0,0,32,0,25,2,0,18,72,255,0,7,64,0,2,1,0,5, +1,0,20,32,0,17,64,0,9,8,0,0,64,160,128,255,0,12,2,0,22,64,0,2,2,0,17, +32,8,0,4,128,0,1,8,0,3,208,249,0,1,8,0,0,2,0,0,32,8,4,0,1,16,0,1,64,8 +,0,0,2,4,0,1,64,0,6,32,0,18,2,20,64,0,4,4,128,128,0,2,1,0,3,8,0,2,1,0 +,1,152,249,0,4,2,64,0,0,16,1,2,0,1,128,128,0,3,128,0,0,2,1,0,0,32,4,2 +,0,0,8,0,15,32,0,11,8,0,0,8,0,1,2,0,0,16,0,8,72,249,0,0,48,8,0,0,15,4 +,192,52,88,0,0,2,32,40,32,192,169,8,1,2,128,0,0,211,0,0,64,65,41,10,0 +,0,4,16,0,12,8,0,0,32,0,0,96,0,0,1,34,64,0,1,128,32,0,0,2,72,192,4,0, +1,71,0,0,10,0,1,16,0,0,4,192,64,0,1,176,251,32,3,36,36,2,0,0,4,8,4, +130,0,0,2,1,35,101,4,86,22,1,0,0,16,0,0,128,8,0,0,70,149,32,16,4,0,12 +,32,0,1,64,16,8,16,17,1,0,0,4,64,64,0,0,12,22,16,33,0,0,32,128,0,0,8, +2,66,0,2,128,8,32,0,0,96,249,0,3,2,0,1,8,4,128,0,2,8,64,0,0,128,0,0,4 +,0,3,1,0,0,4,128,0,0,4,0,13,32,0,2,5,32,0,0,2,0,1,4,0,2,4,2,0,5,4,0,4 +,32,0,2,184,251,64,0,0,16,8,0,4,1,0,2,130,32,0,0,8,4,0,1,2,0,4,2,0,0, +1,4,0,24,17,0,0,2,0,1,16,0,1,128,0,1,144,128,0,4,8,0,0,240,252,16,0,4 +,128,0,67,76,251,0,17,4,0,23,8,0,16,32,0,12,112,249,0,1,8,0,8,8,0,0,2 +,0,4,64,0,32,2,0,14,2,0,2,64,16,255,8,0,10,2,0,1,8,0,1,32,0,6,64,0,28 +,64,0,0,2,0,4,32,0,0,16,0,3,10,64,0,1,106,255,16,0,14,4,0,6,8,0,13,16 +,0,2,16,0,21,2,0,3,16,32,0,1,128,249,0,7,128,0,6,128,0,3,128,0,3,8,0, +10,128,0,2,2,0,6,128,0,5,2,0,15,64,24,251,0,0,64,0,7,5,0,0,20,2,0,1, +64,0,5,1,0,40,8,0,3,32,192,0,0,144,0,0,232,251,0,11,1,0,43,4,0,2,64,0 +,2,3,0,4,48,0,0,4,16,184,248,0,2,8,0,15,12,0,28,4,0,7,1,0,15,255,0,12 +,64,0,5,16,48,0,1,8,0,27,24,2,0,3,2,1,0,12,8,240,248,0,13,128,0,7,8, +64,0,24,64,0,3,32,128,0,0,2,0,1,32,0,0,64,0,0,32,0,3,16,0,1,4,8,136, +254,0,11,16,0,1,16,0,5,2,0,32,16,0,17,152,252,0,7,64,1,0,4,52,18,0,1, +8,0,2,104,130,0,2,52,64,0,17,128,6,0,9,4,2,0,12,176,250,0,8,2,0,4,48, +0,2,64,0,2,96,0,3,16,0,19,6,0,9,48,16,0,12,248,249,0,7,192,2,0,4,44,0 +,1,240,64,0,2,120,64,0,2,56,16,0,18,6,0,9,48,0,13,160,250,0,7,64,1,0, +4,48,32,0,0,208,2,0,2,32,2,0,2,20,0,19,16,2,0,8,48,34,0,12,88,254,0,7 +,128,17,2,0,3,52,10,0,1,68,0,2,104,17,0,2,36,34,0,18,22,8,0,8,48,6,0, +12,136,248,0,8,2,0,4,60,0,1,240,0,3,112,0,3,60,0,18,128,7,0,9,28,0,13 +,80,250,0,8,2,0,4,48,0,6,64,32,0,2,32,0,19,6,0,9,48,32,0,12,152,255,0 +,7,64,145,0,4,148,16,0,0,192,34,0,2,96,4,0,2,48,0,19,70,8,0,8,24,0,13 +,144,252,0,7,64,0,2,65,0,1,180,32,0,1,8,74,32,8,73,36,37,164,5,0,19, +128,16,0,4,104,0,3,52,1,0,7,77,176,1,0,1,136,249,0,11,4,4,0,0,48,0,2, +64,0,2,32,0,1,128,1,1,0,19,2,1,0,3,96,0,3,48,32,0,7,12,128,1,0,1,64, +250,0,7,192,2,0,1,8,0,1,48,8,0,0,240,0,0,24,192,0,0,88,0,0,12,224,1,0 +,20,4,2,0,3,96,0,3,16,0,8,15,0,3,120,251,8,0,6,64,1,0,1,4,4,0,0,48,1, +0,0,208,40,64,72,0,0,40,0,0,64,132,40,0,20,18,0,4,96,0,3,48,33,0,7, +132,4,0,2,234,251,0,7,128,17,2,0,0,76,0,1,48,2,0,1,68,136,32,147,64,0 +,0,36,160,5,0,20,6,1,0,4,66,0,2,16,32,0,7,77,128,1,0,1,240,253,0,8,2, +0,1,15,2,0,0,60,16,0,0,240,0,0,22,192,3,48,0,0,11,200,129,0,19,128,7, +0,4,24,0,3,60,0,8,15,226,129,0,1,56,248,4,0,7,2,0,1,12,8,0,5,24,0,0,3 +,64,0,0,12,36,1,1,0,19,6,4,0,3,96,32,0,2,16,16,0,7,8,128,1,0,1,65,254 +,0,7,64,129,0,1,44,0,1,16,34,0,0,192,66,28,8,3,32,0,0,76,160,1,0,20, +22,0,4,96,1,0,2,32,2,0,7,141,136,129,0,1,16,252,0,7,64,0,5,52,33,0,1, +128,138,0,0,8,0,2,160,1,20,2,0,17,128,6,0,1,2,64,8,2,12,0,0,32,0,3, +144,66,0,4,1,4,0,2,48,253,0,14,32,0,3,16,4,0,0,1,0,1,128,1,48,32,0,18 +,6,0,1,8,8,1,96,0,1,128,128,0,2,64,0,10,248,251,0,7,192,2,0,5,16,0,0, +48,0,0,8,208,131,0,2,96,0,0,24,0,25,112,0,6,176,0,5,12,0,3,152,255,12 +,0,6,64,1,0,5,2,0,0,16,0,0,64,64,19,0,2,32,0,0,52,34,0,21,24,32,11, +105,10,0,0,128,1,2,0,1,80,0,5,12,8,0,2,58,254,4,0,6,128,17,2,0,3,16,0 +,1,192,32,136,8,16,1,0,2,128,52,0,19,198,0,1,144,4,18,104,0,2,9,0,2, +128,0,6,8,0,2,72,251,0,8,2,0,4,52,0,1,240,0,0,22,192,3,0,2,64,0,0,40, +32,0,17,128,7,0,1,14,192,1,25,32,0,0,224,64,0,2,96,0,5,3,0,3,48,248,4 +,0,7,2,0,7,192,0,0,8,0,0,128,0,2,160,65,48,0,19,6,0,1,24,4,3,98,32,0, +0,128,65,0,2,128,0,5,8,0,3,209,254,0,7,64,137,0,7,192,0,0,144,2,3,0,2 +,160,5,36,0,19,6,4,0,0,152,0,0,19,96,0,1,128,5,0,2,64,0,5,12,2,0,2, +176,253,16,0,3,16,2,1,64,0,2,77,16,0,1,6,0,1,8,26,0,0,8,8,32,0,0,32, +48,52,0,18,128,6,2,0,0,26,66,0,0,104,4,0,0,160,33,52,0,4,64,0,0,104,0 +,0,32,0,3,184,248,0,4,64,0,5,12,0,5,64,24,0,1,1,0,24,2,0,1,24,0,0,1, +97,32,0,0,128,1,48,0,5,1,97,0,0,12,4,0,2,24,254,0,7,192,2,0,1,12,0,1, +48,32,0,0,240,0,0,24,208,3,96,64,0,0,96,1,13,16,0,18,6,2,0,0,8,0,1, +121,32,0,0,128,0,10,14,0,3,192,252,12,0,3,192,20,0,0,64,1,0,1,12,4,0, +0,32,1,0,0,208,36,0,0,64,139,96,0,1,128,5,4,1,0,18,6,0,1,80,16,3,32,1 +,0,1,5,177,64,0,4,3,100,33,77,1,0,2,226,252,4,0,3,128,40,0,0,128,17,2 +,0,0,72,2,0,4,68,152,0,0,16,1,2,0,0,32,72,48,0,19,4,4,0,0,64,8,18,104 +,1,0,1,4,50,1,0,4,162,96,132,13,16,0,2,208,248,0,4,112,0,2,2,0,1,3,0, +4,240,0,0,30,200,3,24,32,0,0,64,0,0,60,8,0,17,128,7,0,1,30,192,1,121, +16,0,0,224,1,12,32,0,3,192,1,24,0,0,3,0,3,224,248,4,0,3,192,64,0,1,2, +0,1,8,8,0,0,16,0,2,32,24,0,0,128,64,0,1,160,1,48,0,19,4,2,0,1,16,3,66 +,64,0,2,49,0,5,131,96,64,12,0,3,1,255,0,4,224,2,0,0,64,161,0,1,132,0, +1,48,0,1,192,4,24,16,11,96,18,0,0,160,16,6,17,0,18,23,0,1,144,0,0,19, +104,4,0,1,9,0,0,33,0,4,19,0,0,4,76,8,0,2,56,250,0,3,22,18,2,0,0,64,18 +,2,0,0,13,1,0,1,16,0,1,8,26,0,0,8,41,1,0,0,160,136,52,0,18,128,38,8,0 +,0,26,67,98,104,0,1,160,5,53,0,6,104,0,0,41,0,3,240,248,0,3,6,0,0,64, +0,1,1,0,1,4,0,5,64,24,16,3,96,64,0,2,48,0,19,2,0,1,8,0,0,1,96,0,1,128 +,0,0,48,0,6,96,0,0,4,4,0,2,168,248,0,2,128,7,192,128,0,0,192,2,0,1,12 +,4,0,0,48,0,1,240,32,16,128,0,0,26,0,1,192,128,12,0,19,6,2,0,0,24,0,1 +,96,64,0,0,128,1,0,14,112,253,8,0,1,128,6,192,4,0,0,64,1,0,1,140,0,1, +160,32,0,0,208,2,128,96,16,40,16,0,0,32,0,0,4,0,19,22,0,1,136,2,9,98, +1,0,0,128,40,176,64,0,5,96,33,36,8,0,2,42,250,0,3,192,0,0,72,0,0,128, +2,0,1,8,8,0,4,68,24,64,163,64,36,0,0,32,4,0,20,36,2,0,1,1,19,96,64,0, +1,8,48,66,0,5,96,2,44,2,0,2,48,252,0,2,128,1,48,0,2,2,0,1,15,0,4,240, +0,0,26,192,0,0,24,0,1,64,65,8,8,0,17,128,3,0,1,6,208,131,24,0,1,96, +128,12,0,6,24,32,15,0,3,160,251,4,0,3,128,32,0,1,2,0,1,8,0,1,16,0,6, +96,16,0,0,32,0,0,48,0,19,6,0,1,16,0,0,3,96,0,2,1,48,32,0,5,96,0,0,12, +8,0,2,49,253,0,4,192,4,0,0,64,2,0,1,14,4,0,0,48,0,1,192,130,8,0,0,64, +64,0,1,32,1,52,17,0,18,22,8,0,0,88,16,80,96,64,0,0,128,5,1,2,0,6,66, +32,0,3,96,254,16,0,10,141,160,1,48,194,2,4,8,16,3,8,9,8,0,0,160,17,4, +4,0,17,128,66,212,0,0,26,81,3,10,128,0,0,160,17,5,144,198,0,1,138,16, +0,0,8,33,129,8,0,2,56,248,0,11,4,136,1,32,0,2,64,0,2,64,0,1,128,0,0, +49,0,20,64,128,24,0,0,3,0,2,128,1,16,0,0,6,0,1,24,0,1,32,0,0,4,0,3,80 +,248,0,11,12,128,1,48,0,0,6,240,0,0,24,128,3,16,64,0,0,192,1,48,0,19, +6,192,0,0,8,8,1,0,2,128,128,48,0,0,2,0,1,6,8,0,0,96,16,0,4,248,251,12 +,0,10,12,132,1,32,66,64,210,0,0,88,80,8,73,1,0,0,160,144,48,66,0,18, +160,192,0,0,17,1,34,1,20,0,1,17,48,10,36,2,0,0,74,0,1,96,4,12,16,0,2, +162,248,4,0,10,136,4,4,17,0,0,18,192,68,0,0,64,0,0,44,16,0,0,32,1,176 +,0,19,34,128,0,0,64,8,8,1,1,0,1,4,34,2,16,2,0,0,16,8,0,0,64,4,72,0,3, +152,254,0,11,7,96,0,0,48,128,5,244,0,0,8,192,0,0,16,0,1,192,129,28,32 +,0,17,128,5,242,64,30,192,3,56,64,0,0,224,1,60,160,7,0,1,6,0,1,120,64 +,7,4,0,2,216,252,4,0,10,12,128,129,16,0,0,6,194,32,24,0,1,32,0,1,32,1 +,48,32,0,18,6,0,0,128,0,0,16,0,0,1,0,3,49,16,0,0,2,0,0,24,4,0,0,96,0, +0,12,0,3,217,252,0,11,12,129,5,48,0,0,38,192,0,0,24,0,0,35,2,0,1,160, +1,24,1,0,18,23,193,8,144,0,0,34,96,128,0,1,9,184,0,0,68,0,1,144,0,1, +112,10,44,16,0,2,152,250,0,4,208,0,1,64,162,40,68,13,0,1,48,64,0,0, +192,128,16,8,8,105,4,0,0,32,0,0,54,65,0,16,52,129,2,0,1,2,64,98,8,129 +,141,40,4,5,18,0,2,26,72,19,8,36,45,4,0,2,232,254,0,4,192,0,2,1,0,1, +12,4,0,0,48,0,1,192,0,3,32,32,0,2,48,0,17,16,16,4,1,0,0,8,8,1,32,0,0, +4,128,0,0,16,0,3,8,0,0,1,33,0,0,12,0,3,208,254,0,4,192,0,1,192,1,96, +32,4,0,1,56,0,1,32,0,0,24,192,0,0,112,32,0,2,16,32,0,16,48,0,0,2,0,6, +12,0,1,48,8,0,2,24,0,0,3,96,0,0,4,0,3,176,254,8,0,3,192,0,1,64,2,0,0, +4,40,8,0,0,4,33,0,0,208,8,153,66,0,0,40,1,0,1,64,48,2,0,16,16,4,0,0,2 +,0,0,24,32,9,98,33,4,129,145,48,2,0,2,24,9,81,96,20,72,4,0,2,11,255,0 +,5,132,0,1,2,32,1,64,8,0,0,52,0,1,208,2,0,1,139,72,0,2,8,17,34,0,16, +128,32,66,2,0,0,144,0,0,139,64,4,128,16,137,32,64,0,2,80,4,8,66,128, +64,8,0,2,33,253,0,4,48,0,1,64,1,88,64,15,0,1,60,16,0,0,240,128,8,192, +3,112,64,0,0,224,0,0,60,0,17,12,128,5,0,1,14,196,3,56,16,3,224,0,0,60 +,0,3,30,192,0,0,120,0,0,15,0,3,8,249,4,0,3,192,0,2,1,96,32,0,0,8,0,3, +192,0,0,24,0,0,3,64,0,2,128,16,0,17,32,0,0,2,2,0,0,24,4,3,96,0,0,8, +128,1,49,0,5,2,96,0,5,241,253,0,4,192,68,0,1,2,96,2,42,0,1,48,18,0,1, +64,24,0,0,3,96,0,1,128,5,32,10,0,16,48,17,36,0,1,88,0,0,32,114,128,76 +,132,1,56,17,0,2,24,32,11,114,65,10,1,0,2,24,255,160,32,0,2,208,0,1, +64,2,0,1,77,4,0,0,52,4,0,1,128,16,33,8,104,0,1,160,1,52,0,15,160,5,1, +128,38,0,1,2,67,98,8,68,0,0,32,0,0,180,0,3,130,72,16,104,2,141,4,0,2, +168,250,0,4,192,0,2,1,0,1,12,0,1,48,0,1,192,0,3,97,0,3,48,0,15,128,0, +2,6,2,0,0,8,0,0,1,0,2,128,128,48,16,0,2,16,0,0,1,97,64,12,0,3,216,255 +,128,129,0,2,192,128,0,0,192,2,0,1,4,0,1,48,0,1,32,0,0,16,192,3,24,0, +1,224,65,12,0,15,128,1,0,1,6,2,0,3,96,0,3,48,0,3,4,0,1,98,0,0,4,0,3, +96,251,4,4,0,2,192,2,0,0,64,1,0,1,8,1,0,0,48,9,0,0,208,128,0,0,80,35, +9,0,1,160,9,4,0,15,128,32,0,1,22,0,1,24,16,9,98,36,0,0,128,1,50,66,0, +2,18,16,11,96,34,40,16,0,2,18,251,140,4,0,2,192,4,0,0,128,1,0,1,128,4 +,0,0,176,64,0,0,208,2,0,1,16,1,36,0,1,16,2,0,16,8,0,1,36,0,1,144,8,11 +,0,0,34,0,1,73,32,1,0,2,74,0,0,18,65,130,64,0,3,8,253,96,1,1,0,1,48, +64,0,0,64,2,0,1,15,0,1,60,0,1,48,64,8,192,3,16,0,1,192,1,8,16,0,14,96 +,128,0,0,128,1,1,0,0,14,192,131,24,0,1,224,0,0,28,16,0,2,4,208,1,56,0 +,0,15,8,0,2,64,253,136,129,0,2,192,128,0,1,1,0,2,8,0,0,32,16,0,0,192, +0,2,128,96,0,3,48,0,16,1,0,1,4,4,0,0,24,16,3,64,16,0,0,128,65,48,0,3, +8,0,0,3,98,64,0,0,8,0,2,177,252,128,9,0,2,192,0,2,2,0,1,72,0,1,176,0, +3,8,0,0,35,96,130,0,0,128,17,181,8,0,14,128,137,0,1,66,0,1,24,0,0,16, +98,4,0,0,128,1,128,32,0,4,3,0,0,1,72,0,3,120,252,0,26,4,2,0,45,216, +249,32,0,0,4,128,0,0,16,0,0,2,0,1,8,0,0,1,32,0,1,128,0,0,16,0,0,2,64, +0,0,8,0,0,1,0,18,32,0,0,4,128,0,0,16,0,0,2,64,0,2,1,32,0,0,4,128,0,0, +16,0,0,2,64,0,0,8,0,1,32,0,0,4,0,0,80,248,0,15,32,0,9,128,0,42,4,0,2, +120,253,36,0,0,4,128,0,0,16,0,0,2,64,0,0,9,0,0,1,32,0,0,4,128,0,0,16, +0,0,2,64,0,0,8,0,0,1,0,1,4,64,0,14,32,0,0,4,128,0,0,16,0,0,2,64,0,0,8 +,132,1,32,0,0,4,128,0,0,16,0,0,2,64,0,0,8,0,0,129,32,0,0,4,0,0,9,253, +12,0,7,16,4,0,3,8,0,7,129,0,1,8,128,64,0,24,16,0,7,2,65,32,0,2,2,0,3, +75,252,32,0,0,4,0,1,16,0,0,2,64,0,0,8,0,0,1,32,0,1,128,0,2,2,0,3,1,0, +0,64,4,0,15,32,0,0,4,128,0,0,16,0,0,2,64,0,2,1,32,0,0,4,128,0,3,64,0, +0,8,0,1,32,0,0,4,0,0,112,248,8,0,22,64,0,3,32,0,44,242,255,32,0,0,4, +128,0,0,18,0,0,2,64,0,0,9,0,0,1,32,0,0,4,128,0,0,16,132,2,64,0,0,1,1, +1,0,0,128,128,0,15,32,0,0,4,128,0,0,16,0,0,2,64,0,0,8,0,0,1,32,0,0,4, +128,0,1,128,0,0,80,0,0,8,0,0,1,32,0,0,4,0,0,144,253,0,26,128,0,17,1,0 +,11,1,0,14,8,254,0,14,32,16,0,36,2,0,4,16,0,4,4,0,7,216,248,0,2,128,0 +,7,8,0,4,64,64,32,0,2,8,0,0,32,0,21,4,0,24,24,255,0,15,8,0,10,132,0, +25,9,16,0,17,144,251,0,11,16,4,0,6,8,0,0,16,0,24,1,0,14,8,0,3,2,0,4, +249,0,11,1,0,2,32,0,2,2,16,0,1,128,0,1,1,0,0,4,0,19,8,16,0,8,4,0,6,8, +0,0,16,0,2,208,248,0,4,32,0,8,16,0,0,1,64,0,2,128,0,0,16,8,128,0,1,8, +0,15,1,0,4,16,0,9,20,0,5,4,0,1,4,8,128,249,0,1,1,128,0,2,8,16,128,0, +17,17,0,30,4,0,1,64,0,3,16,0,1,4,0,2,80,251,0,0,3,1,128,0,0,32,0,0,2, +16,0,0,2,0,2,40,8,0,0,1,32,0,2,80,1,32,2,64,0,0,5,16,0,14,64,3,0,4,84 +,0,3,4,0,1,4,5,0,0,50,0,3,8,0,0,2,8,0,0,8,16,88,252,0,3,14,0,1,114,3, +64,0,1,12,2,8,0,0,92,4,64,32,0,1,145,32,168,8,10,69,128,0,15,128,0,0, +32,8,128,11,0,0,8,4,2,64,0,0,160,1,0,0,32,34,0,0,1,0,0,34,0,1,208,0,1 +,11,0,0,32,1,160,255,0,3,1,0,6,1,2,0,1,8,0,0,128,32,0,1,129,32,0,1,2, +64,0,16,32,0,1,32,0,0,1,0,0,2,16,0,8,4,0,6,2,0,2,184,251,12,0,2,2,0,1 +,8,4,0,0,2,0,0,8,0,2,32,4,0,5,64,1,32,0,19,4,0,1,4,0,2,2,8,0,1,2,0,0, +4,0,6,64,0,1,2,0,0,32,0,0,216,248,0,4,128,16,0,4,32,0,7,2,0,0,64,128, +0,2,2,64,0,18,24,0,5,9,0,2,4,0,3,1,32,0,2,32,0,3,216,248,0,27,2,64,0, +20,128,0,8,32,0,6,64,0,4,120,251,0,14,4,0,3,2,0,1,2,0,36,32,0,6,64,0, +0,2,0,2,152,249,16,0,13,128,0,2,32,0,2,8,0,36,16,0,3,16,0,1,32,0,0,4, +0,2,140,248,2,0,10,1,0,2,16,4,0,1,16,0,4,64,0,25,8,2,64,0,3,8,0,1,64, +0,0,4,0,1,32,0,0,8,0,2,128,16,252,0,4,48,16,0,4,2,1,0,1,64,0,2,16,0,1 +,32,0,2,4,0,19,128,130,0,4,96,8,0,0,8,0,8,64,0,1,9,0,2,216,252,8,0,13 +,32,0,10,1,0,31,32,0,13,162,252,2,0,3,128,0,13,64,0,1,16,0,24,4,0,0, +64,0,3,1,0,2,8,0,6,16,0,4,128,224,253,0,26,32,0,17,32,0,6,64,0,3,32, +128,8,0,2,16,0,1,64,0,5,208,250,0,9,4,0,6,64,0,0,1,0,0,1,0,0,32,0,1, +32,1,0,25,16,0,9,2,0,2,1,0,3,248,249,72,0,8,16,0,5,1,0,6,2,0,21,4,0, +17,64,0,0,16,0,4,192,252,0,14,8,0,35,32,128,0,4,2,32,0,5,4,0,6,56,249 +,0,14,16,0,35,8,0,0,1,0,6,2,0,11,48,254,4,0,10,16,0,11,16,0,1,8,0,16, +2,64,0,8,16,0,1,64,8,8,0,11,8,252,0,3,2,0,13,2,0,1,1,0,28,2,0,5,4,0, +14,216,252,0,26,2,0,28,32,0,11,32,0,3,184,255,0,74,152,255,0,74,152, +255,0,14,128,0,4,16,0,5,1,40,0,19,2,0,3,8,64,0,17,32,248,0,14,16,0,34 +,1,0,16,128,0,4,24,254,0,3,8,64,0,2,4,0,5,8,0,4,132,0,2,128,2,0,0,4,0 +,21,64,0,0,128,0,4,64,0,9,1,0,2,168,253,0,8,64,0,2,16,0,4,64,0,0,32,0 +,31,1,0,0,64,0,4,2,0,11,152,255,0,52,64,0,20,152,251,0,27,64,0,24,128 +,0,14,8,2,0,2,240,251,0,3,1,32,0,0,8,0,1,16,0,3,16,8,0,0,1,0,1,4,0,24 +,1,0,12,160,0,8,8,0,2,112,250,16,0,4,64,16,16,128,0,4,1,0,2,128,0,1, +128,64,0,0,8,136,0,0,8,0,19,1,0,4,32,0,1,8,0,9,8,0,4,224,249,0,0,48, +16,0,0,1,32,128,86,16,80,18,0,0,4,0,1,9,16,2,2,128,0,0,8,128,10,0,0,1 +,40,40,4,8,0,14,128,128,2,128,0,1,20,80,0,0,129,8,0,0,40,8,0,0,160,16 +,1,0,0,20,8,0,2,74,4,4,0,2,120,252,0,0,1,128,8,2,64,17,104,0,3,132,10 +,1,0,0,9,176,164,0,1,4,128,69,160,156,162,96,9,80,0,12,32,0,0,32,196, +0,0,8,128,0,0,132,36,4,64,64,8,0,1,48,161,0,2,4,18,0,2,74,4,0,0,64,48 +,8,64,250,0,2,16,1,64,0,0,8,0,3,2,4,0,1,32,0,3,8,128,0,1,8,130,128,0, +14,64,0,2,1,32,0,3,2,0,15,1,0,1,5,32,240,252,32,0,4,16,0,5,32,0,3,17, +0,3,8,0,0,4,0,0,64,0,21,2,0,3,17,16,0,1,32,8,0,3,4,0,2,32,0,2,8,0,0, +152,251,0,12,1,32,0,33,128,0,13,64,0,0,8,0,2,1,0,3,216,249,0,25,192,0 +,1,8,0,34,8,0,8,16,251,8,0,14,36,0,4,10,0,3,64,0,18,32,0,0,2,0,16,2,0 +,6,90,251,0,0,64,0,8,16,0,2,4,0,1,129,0,6,2,0,1,32,0,22,64,4,0,19,104 +,253,4,0,14,64,0,10,128,16,0,29,2,0,7,8,0,4,184,252,0,5,2,0,3,1,0,11, +1,0,23,1,0,1,64,16,0,4,4,1,0,5,8,2,0,0,6,0,4,255,128,0,4,2,0,7,8,0,0, +16,0,1,4,0,1,32,1,0,24,8,0,2,8,32,32,0,13,20,0,2,136,254,48,0,4,1,0,2 +,32,0,0,4,2,0,5,8,0,4,32,0,24,10,4,0,3,160,64,128,0,4,64,129,8,16,16, +0,0,2,0,1,208,254,0,14,64,0,2,1,0,0,64,0,1,64,0,2,8,0,31,16,0,6,32,0, +4,96,255,0,15,4,0,3,8,2,0,0,16,0,35,64,0,5,128,0,5,72,253,0,6,1,0,4, +128,0,6,32,0,0,128,0,0,4,0,18,32,0,0,4,128,0,5,128,128,1,0,1,16,192,0 +,7,4,8,2,0,1,176,249,0,14,64,0,4,4,0,4,64,0,0,16,0,18,16,0,4,128,128, +0,17,72,251,0,6,10,1,0,2,64,8,0,2,32,0,28,180,128,2,0,9,52,0,0,20,16, +132,0,4,129,1,0,0,4,17,160,251,0,7,4,0,2,12,0,4,2,0,28,8,4,0,9,48,32, +0,0,68,0,10,168,251,0,6,8,0,3,15,0,2,128,1,0,28,60,128,5,1,0,8,48,0,0 +,4,192,128,0,7,28,32,0,0,249,0,6,144,32,0,2,140,16,0,1,128,0,29,36, +137,34,0,9,48,16,0,0,196,4,0,4,136,16,0,0,128,0,0,128,250,0,6,64,0,3, +77,0,3,22,0,29,17,19,0,9,48,17,0,0,128,8,0,5,8,0,0,4,33,8,250,0,6,6,4 +,0,2,3,8,0,1,128,7,1,0,27,12,128,4,2,0,8,28,0,0,2,240,128,0,4,7,0,1, +12,0,0,96,248,0,7,16,0,2,12,0,3,6,0,28,16,0,0,5,0,9,48,0,1,192,128,0, +4,4,8,0,1,32,200,248,0,6,64,0,3,140,4,0,2,6,0,28,32,4,34,1,0,8,48,8,2 +,224,0,5,4,0,1,36,1,72,255,0,4,16,32,152,0,1,8,0,0,77,16,0,2,32,0,7, +160,5,0,0,1,0,6,40,0,6,20,0,0,52,128,0,7,13,0,1,4,138,20,20,72,0,4,65 +,0,3,88,252,0,6,24,8,0,7,6,2,0,7,129,0,0,16,0,6,12,0,6,6,0,0,48,0,14, +64,0,6,8,0,2,120,253,0,6,6,8,0,1,64,12,0,3,1,0,7,128,1,12,0,7,12,0,6, +6,0,1,128,5,1,0,5,15,4,0,0,44,8,4,192,32,0,9,16,254,8,0,4,4,25,1,0,1, +2,76,4,0,1,128,22,2,0,6,128,17,5,0,7,10,0,6,5,0,1,128,34,0,6,129,0,2, +1,0,0,194,2,0,4,128,4,0,2,195,248,0,5,34,90,8,0,1,1,32,0,2,128,70,0,7 +,128,133,48,9,0,6,10,0,6,5,0,0,48,18,19,0,6,140,0,1,132,16,18,128,2,1 +,0,3,76,2,0,2,201,255,0,4,48,0,0,30,0,1,24,64,11,2,0,1,128,1,2,0,6, +224,1,60,0,17,60,128,4,2,0,5,15,2,0,0,12,128,7,242,0,5,7,0,3,64,254,4 +,0,4,32,24,0,3,12,0,3,6,0,7,128,129,48,0,17,48,0,0,5,0,7,2,0,1,8,0,0, +196,64,0,4,8,8,0,2,49,249,0,4,64,0,0,64,32,0,0,96,10,40,8,0,11,192,1, +48,0,17,48,9,2,1,0,5,140,0,1,148,0,0,66,224,8,0,4,132,0,3,64,253,0,4, +80,0,0,130,4,0,2,5,0,3,32,16,0,6,32,1,48,1,0,16,4,138,20,0,7,32,0,0, +54,0,0,22,216,130,26,0,3,13,1,0,0,4,1,176,255,0,4,128,0,0,16,0,3,8,0, +4,2,0,6,128,129,48,16,0,6,4,0,6,2,0,2,2,2,0,8,48,0,0,6,192,0,0,24,0,3 +,12,0,2,16,152,255,0,4,176,0,0,6,8,0,2,11,0,2,128,1,0,0,32,0,6,1,60,0 +,7,8,0,6,4,0,0,28,136,5,0,7,128,129,0,1,1,192,0,5,12,0,1,12,0,0,248, +253,4,0,3,80,136,146,0,3,5,8,0,1,128,0,8,128,132,52,0,17,128,128,2,0, +7,128,9,0,0,128,166,192,68,24,8,0,2,128,8,0,0,4,33,34,254,12,0,3,96,0 +,0,72,0,3,38,0,3,70,4,34,0,6,145,0,0,17,0,6,18,0,6,9,0,0,4,0,0,5,1,0, +7,48,0,0,130,6,128,0,0,153,0,3,12,0,1,128,0,0,224,252,0,4,144,0,0,4,4 +,0,2,9,4,0,1,128,7,240,0,6,224,0,0,12,0,17,12,160,4,0,7,96,0,0,12,136 +,7,114,0,0,6,16,0,2,15,2,0,0,12,16,120,251,8,0,3,160,0,0,26,0,3,10,0, +3,6,0,0,32,0,6,1,0,8,4,0,6,2,0,1,8,4,0,7,128,1,0,0,16,6,194,64,24,0,3 +,4,0,3,137,254,0,4,64,0,0,24,32,0,2,36,2,0,2,6,0,0,4,0,5,128,16,1,0,7 +,16,0,6,8,0,0,36,2,4,0,7,128,80,0,3,4,128,16,0,2,76,8,0,0,32,9,136, +253,0,4,144,0,0,2,0,3,1,0,2,128,32,1,0,3,8,2,0,2,4,0,7,2,0,6,1,0,0,20 +,0,1,192,132,0,2,104,0,1,160,33,0,0,128,134,16,64,0,4,1,1,0,0,36,1, +224,255,0,4,64,0,16,96,64,0,11,10,0,6,5,0,0,32,0,1,192,0,3,96,0,1,128 +,1,0,1,6,192,0,5,12,0,2,32,216,252,0,4,176,0,5,11,0,3,2,4,0,3,96,64,0 +,3,16,0,16,44,0,1,240,0,3,120,0,1,96,1,0,0,128,7,130,0,8,8,32,152,248 +,8,0,3,80,136,128,32,0,2,5,8,0,2,32,0,4,96,4,0,3,2,0,16,20,5,0,0,208, +0,3,104,0,1,128,129,0,1,2,192,4,1,0,4,1,0,0,4,0,0,138,248,0,4,96,0,0, +128,32,0,2,38,0,4,8,0,3,64,68,0,2,48,10,0,6,4,0,6,2,0,0,24,66,0,1,34, +0,2,96,0,1,160,73,0,0,128,22,192,2,0,4,44,0,1,4,18,112,249,0,4,144,0, +0,30,0,3,9,4,0,1,128,1,0,4,24,0,3,60,0,7,2,0,6,1,0,0,32,0,1,48,0,3, +112,0,1,224,1,0,0,128,7,177,64,0,4,7,4,0,0,28,0,0,232,254,4,0,3,96,0, +0,24,16,0,2,10,0,4,1,0,3,64,0,3,48,32,0,6,16,0,6,8,0,0,40,0,6,96,0,1, +128,1,0,1,4,192,64,0,9,121,251,0,4,128,0,0,88,0,3,132,2,0,2,16,0,4,32 +,65,0,2,128,0,0,1,0,5,136,0,6,4,0,0,16,10,0,5,96,0,1,160,16,2,128,70, +232,2,0,4,4,16,0,0,132,64,72,252,0,2,128,128,0,0,4,66,4,0,2,41,0,2, +128,64,17,0,9,1,2,0,5,2,1,0,5,1,0,0,4,0,1,144,8,0,4,64,136,1,52,128,0 +,0,88,136,0,4,73,16,0,0,180,0,0,16,254,0,3,6,0,0,64,0,4,4,4,0,13,48, +16,0,6,32,0,6,16,0,3,192,64,0,5,128,1,49,0,11,48,8,216,255,0,3,4,48,0 +,0,14,4,0,2,11,0,5,32,0,7,8,144,4,0,5,66,2,0,5,1,0,0,44,0,1,160,128,0 +,4,3,66,128,48,0,0,6,194,64,0,4,12,0,1,28,0,0,168,255,8,0,2,66,18,0,5 +,5,0,3,64,4,0,8,52,2,0,6,4,0,6,2,0,0,20,5,0,0,208,4,0,4,44,160,9,48,0 +,0,22,0,0,8,0,4,136,2,0,0,164,32,187,249,0,3,20,200,32,2,3,0,2,138,0, +3,64,0,0,34,0,7,180,0,0,1,0,5,144,0,6,8,0,0,24,66,0,0,208,4,0,4,65, +176,1,0,0,2,192,64,40,0,4,44,0,1,48,9,9,253,0,2,128,3,240,0,0,6,0,3,9 +,8,0,1,128,5,50,0,8,12,8,4,0,6,2,0,7,32,0,1,112,32,0,4,3,224,129,12, +136,1,176,0,5,15,2,0,0,60,0,0,222,252,4,0,2,4,192,0,1,4,0,2,8,0,4,192 +,32,0,7,48,128,0,6,64,0,8,40,8,0,0,192,0,5,12,130,1,48,16,4,192,32,0, +4,12,2,0,0,48,16,72,251,0,3,2,212,0,0,144,0,3,8,0,4,1,4,0,8,128,2,0,5 +,64,1,0,7,16,2,0,0,80,0,5,1,0,0,8,50,0,0,70,193,4,0,4,76,0,1,32,1,64, +252,0,4,192,4,10,64,3,0,1,1,0,1,52,132,0,0,65,4,10,64,34,0,2,32,128,4 +,0,17,4,128,2,80,66,2,0,3,41,162,9,16,134,20,212,0,1,64,16,0,1,129,0, +1,4,0,0,32,249,0,5,64,16,0,0,3,1,0,3,48,0,1,128,64,16,0,0,3,1,0,1,128 +,1,0,20,4,192,0,5,4,128,129,32,0,1,192,0,3,2,0,0,4,8,0,2,152,251,0,4, +224,64,22,0,0,3,2,0,4,32,2,176,64,22,132,2,2,0,2,1,60,0,0,1,0,5,128,0 +,8,44,128,5,0,0,64,0,4,7,0,0,1,44,32,4,0,2,128,2,2,0,0,7,4,0,2,56,250 +,4,0,3,16,0,0,10,0,0,1,0,1,128,2,0,0,48,1,32,81,0,0,138,64,19,0,2,128 +,136,52,128,0,6,64,0,8,20,133,162,64,8,0,4,9,0,0,4,22,0,0,64,196,64,0 +,0,64,0,2,128,0,1,176,8,186,250,12,0,3,16,0,0,12,1,35,0,1,32,0,1,32,6 +,64,100,0,0,12,64,131,0,3,9,48,4,4,0,6,2,0,7,24,66,3,192,64,0,0,3,0,2 +,8,128,1,24,0,0,18,192,8,1,64,0,0,2,0,0,9,4,0,1,9,168,250,0,4,240,64, +16,200,2,2,0,0,3,2,0,0,28,128,1,128,0,0,18,192,1,0,2,224,0,0,57,0,0,2 +,0,6,1,0,7,32,128,4,240,0,0,6,0,3,4,160,1,32,128,7,50,0,1,192,0,2,2,0 +,1,12,0,0,8,251,8,0,5,16,4,2,1,0,1,2,0,0,32,0,1,160,0,0,20,0,0,3,0,3, +1,48,136,0,6,64,0,8,40,8,5,192,0,0,24,0,3,4,0,1,40,0,1,192,0,3,1,0,3, +48,16,73,254,0,4,208,0,0,72,0,0,10,0,1,140,0,1,8,32,16,65,0,0,8,64,1, +0,2,128,132,176,0,0,8,0,6,4,0,7,144,0,0,2,224,0,0,153,8,0,2,8,128,0,0 +,16,0,0,2,8,136,0,1,33,0,1,72,4,0,0,48,1,152,253,176,1,0,3,4,2,0,3,77 +,16,0,0,180,0,0,32,0,0,4,18,64,139,0,4,20,136,0,6,64,0,6,32,0,0,36, +194,4,208,4,0,4,9,0,0,5,0,0,134,16,146,8,0,0,64,0,2,77,32,0,0,4,0,0, +144,251,128,1,0,3,64,0,4,12,0,1,48,16,0,0,2,64,8,0,0,3,0,6,1,0,5,128, +0,8,16,0,0,2,192,128,0,4,4,0,0,128,0,1,6,0,0,64,0,4,12,8,0,2,32,252,0 +,4,48,0,0,22,0,6,16,128,1,176,64,22,4,1,2,0,3,28,0,0,4,0,6,2,0,6,128, +44,128,5,192,0,5,11,128,1,45,32,4,128,0,2,3,2,0,0,12,130,129,0,1,96, +251,12,0,3,16,0,0,10,0,3,76,4,0,0,32,193,0,0,80,0,0,138,0,0,16,0,4,4, +4,0,6,12,0,6,137,17,20,133,162,192,4,1,0,3,5,128,5,20,0,0,38,8,16,0,4 +,36,0,0,16,0,1,67,255,4,32,0,2,192,34,12,1,0,2,68,2,0,0,48,18,6,97,0, +0,12,0,0,16,0,5,66,0,14,128,1,42,0,0,3,64,64,0,4,6,0,1,24,0,0,6,66,4, +1,0,0,96,0,1,40,132,17,1,0,0,49,251,96,0,3,240,0,0,16,8,0,2,15,0,1,12 +,128,7,128,0,0,18,192,0,0,2,0,3,40,0,15,224,1,32,128,4,176,0,5,8,128, +0,0,32,128,5,240,0,1,192,0,2,7,224,1,12,8,112,249,4,0,3,192,0,0,16,4, +0,2,4,0,1,16,16,6,160,0,0,12,0,1,1,0,3,52,0,15,128,1,40,0,0,3,0,6,4, +128,1,40,0,0,6,0,4,1,0,0,8,4,128,48,0,0,9,250,0,0,136,0,2,208,0,0,8,0 +,3,64,16,0,0,8,2,6,64,0,0,16,0,0,34,0,4,48,10,0,14,128,33,32,0,0,4, +192,8,1,0,3,8,128,1,16,0,0,39,68,130,0,1,8,0,1,4,128,5,176,16,224,252 +,16,0,0,36,66,0,1,4,18,8,0,2,129,8,0,0,4,2,32,128,4,26,0,0,35,0,4,132 +,0,17,4,129,22,208,36,0,0,64,0,4,133,32,134,66,148,8,0,0,64,18,0,1,1, +1,0,0,20,1,200,255,0,1,16,0,2,64,8,0,6,48,16,6,66,64,24,0,0,3,2,0,4,8 +,0,6,2,0,6,1,0,1,8,6,196,0,8,16,0,2,64,0,2,2,0,3,32,8,16,252,0,1,48,0 +,1,48,0,0,22,0,6,48,16,1,178,64,24,192,3,0,13,8,0,6,4,0,1,8,6,64,128, +0,1,3,1,0,1,128,1,44,32,6,130,0,2,130,0,1,12,0,3,72,251,12,0,0,48,34, +0,0,16,0,0,10,0,4,2,0,0,48,129,38,80,0,0,24,64,3,0,5,8,4,0,5,16,2,0,5 +,8,0,2,34,4,4,0,1,8,0,2,128,1,21,0,0,64,0,0,132,0,1,8,0,2,1,0,1,16, +170,253,4,0,0,160,32,0,0,192,0,0,13,0,6,16,162,6,96,0,0,24,16,0,6,17, +2,0,5,16,1,0,5,8,0,0,128,8,22,1,72,0,1,99,0,4,24,0,0,66,64,4,1,0,0,16 +,1,0,0,40,8,0,0,128,64,48,248,0,1,12,0,1,240,0,0,8,0,3,7,2,0,0,12,128 +,1,129,0,0,30,192,0,0,1,0,3,12,0,0,7,0,5,144,3,0,5,8,0,0,12,128,7,48, +0,1,192,0,3,128,0,0,32,128,5,241,0,1,192,0,2,3,0,1,60,0,0,32,254,4,0, +0,48,0,1,192,0,0,8,0,3,4,2,0,0,16,0,0,6,96,0,9,136,5,0,5,208,2,0,5,8, +0,1,8,6,1,0,2,3,0,2,128,1,24,0,0,6,1,0,2,2,0,1,8,0,3,97,253,0,1,32,17 +,0,0,208,0,0,8,0,3,12,0,1,160,32,0,0,128,0,1,8,0,5,32,2,4,0,5,8,2,0,5 +,4,0,0,32,2,6,128,128,0,1,83,0,2,128,1,32,0,0,22,64,72,0,1,33,4,0,0, +76,16,0,1,34,96,253,0,6,128,0,20,65,4,0,6,2,0,20,8,0,13,232,255,32,0, +0,4,128,0,2,2,68,0,0,8,0,0,1,32,0,0,4,128,0,0,16,0,0,2,0,1,8,0,0,1,32 +,0,0,4,0,7,8,0,6,36,0,1,128,0,2,2,64,0,0,8,0,6,16,0,0,2,64,0,0,8,0,0, +1,32,0,2,104,248,0,59,1,0,1,4,0,9,32,200,248,36,0,0,4,128,0,0,16,2,1, +64,0,0,8,0,0,1,32,0,0,4,128,0,0,16,0,0,2,64,64,8,0,0,1,32,0,17,32,0,0 +,132,160,0,0,16,130,2,64,0,0,8,0,0,65,36,0,0,4,128,32,16,0,0,2,64,0,0 +,8,0,0,1,32,0,0,4,0,0,225,255,12,0,17,8,1,128,0,6,1,0,17,2,0,0,32,0,4 +,68,130,64,0,1,18,1,0,6,32,16,0,2,75,250,32,0,0,4,128,0,3,68,0,0,8,0, +1,32,0,0,4,0,6,8,0,0,1,32,0,1,8,0,14,32,0,1,8,0,2,2,64,0,3,2,0,3,16,0 +,0,2,0,1,8,0,1,32,0,2,72,248,8,0,66,2,0,5,146,253,32,0,0,4,128,0,0,16 +,16,128,72,0,0,8,0,0,33,48,0,0,4,128,32,2,68,130,72,0,0,8,0,0,1,32,0, +1,17,0,14,32,0,1,145,32,18,0,0,2,64,0,0,8,65,0,0,32,0,0,4,145,0,0,16, +0,0,2,64,0,0,8,0,0,32,40,0,0,4,17,48,253,0,61,1,0,11,136,255,0,61,128 +,0,11,16,255,0,14,128,0,34,32,0,7,64,0,1,2,0,6,8,0,0,32,0,0,248,255,0 +,1,64,0,1,32,0,0,8,0,2,16,0,0,16,0,1,8,0,6,16,0,2,16,0,26,1,0,0,32,0, +1,128,0,1,16,0,1,8,0,2,16,0,0,128,4,96,250,0,2,8,0,10,8,0,6,1,0,35,1, +0,1,4,160,0,4,8,0,3,120,248,0,9,8,0,33,128,0,0,64,0,0,8,0,9,64,0,0,4, +1,0,8,64,0,0,12,250,0,6,8,64,0,1,16,1,0,2,32,2,0,4,2,0,20,32,0,2,2,1, +0,0,16,0,1,18,0,0,1,0,1,16,32,0,0,20,32,0,0,64,0,1,64,0,1,64,0,0,32,0 +,0,254,32,0,0,4,128,0,0,64,0,6,1,0,1,128,0,3,64,0,25,8,0,9,64,0,2,64, +0,10,120,254,32,3,4,128,0,0,144,2,84,128,0,1,32,66,9,0,1,144,21,0,2, +64,0,0,1,0,4,5,0,14,64,0,0,16,37,1,2,0,0,4,0,1,17,0,0,2,0,1,9,16,0,0, +50,64,0,0,128,0,1,32,0,1,128,0,0,16,240,251,0,2,136,8,128,32,8,4,2, +160,2,68,0,2,12,150,68,0,2,2,8,0,0,8,0,0,81,0,0,9,0,17,8,130,65,0,1,4 +,1,32,0,1,42,88,16,34,2,65,154,0,1,160,0,2,10,72,52,0,1,254,8,0,1,32, +0,1,32,2,4,0,0,32,0,0,1,0,2,16,2,16,0,7,64,0,0,32,0,17,160,0,0,33,0,1 +,16,2,32,0,1,2,64,4,0,0,4,68,0,2,128,0,2,2,32,32,128,144,250,0,4,16,0 +,1,64,0,6,32,4,4,0,1,64,0,2,1,32,0,21,128,0,13,32,0,7,16,0,0,192,252, +0,61,128,0,0,1,32,0,4,16,0,2,16,253,0,2,32,0,3,32,0,9,128,0,8,64,0,32 +,128,128,0,9,56,249,0,16,24,0,31,32,0,11,1,2,1,0,4,1,0,0,64,4,8,251,0 +,14,8,0,33,34,0,8,2,0,1,8,0,1,8,0,2,9,4,0,0,16,0,0,72,255,0,57,64,0,2 +,2,32,0,2,8,0,6,80,251,0,16,4,0,56,216,255,0,49,64,0,2,1,0,11,1,0,2, +128,0,3,251,2,0,61,32,0,6,1,0,0,8,128,136,253,0,7,32,0,0,1,0,1,10,0,3 +,1,0,9,4,0,14,32,0,0,4,0,3,2,0,5,2,16,0,2,16,0,0,4,0,2,32,2,0,0,128,0 +,0,72,250,32,0,6,16,8,0,1,32,0,14,4,32,0,19,1,0,5,4,0,3,1,0,0,64,0,8, +128,24,248,0,23,16,0,1,64,0,29,32,128,0,0,128,0,12,104,253,0,74,152, +255,0,72,8,0,0,16,255,0,2,128,0,54,1,0,14,8,255,0,6,8,0,7,16,0,10,4,0 +,36,64,0,3,4,0,3,250,0,5,1,0,19,1,0,32,16,0,2,1,0,7,16,152,255,0,3,4, +0,15,64,0,7,8,0,1,32,0,3,4,0,1,16,0,32,176,250,0,32,8,0,13,8,0,1,32,0 +,3,16,0,17,154,252,0,6,1,0,4,16,0,5,64,0,0,8,0,7,65,0,1,4,64,0,1,128, +32,0,1,2,32,8,0,5,2,0,10,16,0,10,88,252,0,6,32,0,8,8,0,0,1,32,0,6,64, +128,0,0,1,0,0,2,4,0,1,64,128,0,1,1,2,0,8,1,0,3,16,0,4,2,0,10,24,248,0 +,2,4,0,0,16,0,0,4,0,3,8,0,1,64,32,0,4,128,0,2,128,0,30,128,0,7,128,0, +5,8,176,252,0,0,2,0,12,16,0,0,16,0,28,8,0,2,16,0,0,64,0,5,8,0,8,54,0, +2,8,160,253,0,30,16,0,2,16,0,2,8,0,2,8,0,17,16,8,0,5,2,0,4,252,0,21,4 +,0,24,32,0,8,16,4,0,14,232,250,0,1,5,0,0,4,4,32,2,0,1,2,0,0,2,0,0,1,0 +,0,32,1,0,0,32,0,0,64,0,2,1,128,64,0,0,32,0,16,16,8,0,0,4,64,0,1,128, +0,1,4,0,0,64,0,0,128,0,0,4,0,3,8,8,2,128,0,1,8,0,0,253,4,0,0,8,0,1,64 +,0,12,128,0,0,16,0,0,2,32,0,2,8,16,0,19,1,0,1,64,0,0,64,16,0,3,8,0,0, +32,0,0,8,0,3,8,0,1,1,0,0,26,252,0,0,128,12,0,0,1,18,64,4,0,1,1,0,0,2, +64,0,1,16,1,0,0,212,80,144,10,194,64,2,64,128,4,56,0,3,16,0,11,8,16, +20,6,64,0,0,64,0,0,9,64,42,0,0,168,0,0,32,161,18,0,0,2,0,1,80,33,3,64 +,5,1,16,8,255,64,67,16,38,2,96,161,8,132,135,0,0,16,13,137,0,1,88,1,0 +,0,40,16,18,64,0,1,8,129,28,33,9,0,2,8,0,6,12,2,32,0,0,128,114,0,0,82 +,36,37,16,56,4,16,64,10,4,2,32,16,8,4,192,56,72,128,131,2,69,0,0,32, +87,0,0,6,80,251,0,1,9,0,0,1,32,32,2,144,128,0,0,64,4,64,0,1,16,0,1,32 +,0,5,32,0,1,16,0,2,16,0,6,8,2,64,0,0,128,64,0,2,1,0,0,2,2,0,2,1,2,0,0 +,8,32,0,0,32,32,2,64,128,0,3,64,0,2,248,128,0,1,4,0,4,1,0,1,1,8,0,5,2 +,4,128,0,1,8,8,0,0,4,0,11,8,0,3,128,0,0,128,0,1,32,8,0,1,8,64,0,1,64, +0,0,128,0,0,16,128,0,1,1,0,2,128,0,1,8,128,250,16,0,18,32,0,0,4,0,6, +16,0,1,64,0,3,8,0,1,32,0,8,1,0,22,12,254,0,30,8,0,1,32,0,3,4,0,1,16,0 +,4,128,0,2,32,0,18,4,0,1,128,255,4,0,3,2,0,0,32,2,1,0,0,1,0,38,192,0, +6,1,0,9,4,0,2,64,57,249,0,14,36,0,5,1,0,2,64,2,0,18,4,16,0,10,128,0,1 +,4,0,2,1,4,0,1,136,0,3,249,16,0,28,1,0,1,4,0,2,128,0,2,2,0,20,64,0,10 +,176,250,0,12,2,0,17,64,0,2,64,0,2,32,0,2,32,0,16,16,0,0,34,0,5,2,0,2 +,248,248,0,4,128,128,16,0,8,4,128,0,8,32,0,30,4,0,13,32,248,4,0,11,1, +0,43,1,128,0,1,2,64,0,10,48,251,8,0,3,8,0,0,2,16,0,3,4,0,3,4,0,6,64,0 +,19,1,0,10,32,2,0,1,128,64,0,4,1,0,3,160,253,0,8,4,0,1,24,0,1,128,0,1 +,32,0,4,9,0,21,16,0,0,4,0,9,16,0,2,1,0,7,32,0,0,72,252,0,5,32,0,7,4,0 +,0,1,0,34,64,0,7,8,0,11,104,255,0,34,128,0,6,64,0,5,64,128,0,6,2,0,1, +8,0,11,112,255,0,9,8,0,0,140,2,0,30,160,17,0,4,2,64,19,72,0,4,65,0,3, +64,3,0,0,128,0,5,254,0,11,12,0,31,128,65,0,6,128,32,16,0,17,176,253,0 +,11,15,0,31,128,65,0,7,58,0,3,12,0,5,131,120,64,0,4,24,252,0,10,65,13 +,0,31,128,17,0,5,8,16,72,0,3,4,0,5,8,104,2,0,4,112,250,0,44,128,81,0, +6,33,66,0,3,176,0,5,16,4,1,0,4,200,252,0,9,120,32,3,2,0,30,224,1,0,4, +6,200,2,40,0,3,60,8,0,3,192,3,120,64,0,4,192,248,0,44,128,65,0,7,33,0 +,3,48,0,7,16,0,4,88,249,0,10,8,0,33,5,0,4,24,9,32,64,0,3,48,0,6,98,2, +0,4,64,251,0,6,2,0,4,32,128,52,18,0,7,140,0,10,40,0,6,180,133,52,0,6, +8,0,3,132,0,3,1,0,2,129,0,4,8,249,0,14,48,0,9,8,0,9,12,0,6,134,1,48,0 +,12,8,0,12,200,255,0,7,4,0,5,48,0,8,14,8,0,9,12,0,6,102,1,12,0,6,88,0 +,3,16,16,0,0,240,0,3,24,0,6,255,8,0,5,128,0,5,32,48,4,0,7,13,0,10,10, +0,6,133,81,4,0,6,40,0,3,128,0,1,208,34,0,2,8,0,5,18,255,0,6,128,0,5,9 +,32,10,0,7,65,2,0,9,10,0,6,165,129,0,0,10,0,5,48,0,4,33,0,1,2,0,2,96, +17,0,4,128,249,0,6,30,8,0,3,96,128,60,0,8,15,0,18,192,1,8,0,6,72,0,3, +12,0,1,240,128,0,2,120,0,5,32,251,4,0,13,48,0,8,12,4,0,17,160,1,48,0, +6,64,0,4,32,0,1,32,0,2,96,0,5,209,254,0,7,2,0,4,8,49,33,0,7,76,0,18, +160,68,52,18,0,5,32,0,3,128,0,1,192,4,0,2,96,0,6,252,32,0,14,128,32,8 +,0,6,32,68,0,16,160,0,3,16,0,3,8,0,4,65,0,2,67,4,11,2,128,0,2,176,32, +176,253,0,36,4,0,6,2,1,0,12,48,0,5,3,0,4,48,0,0,184,248,0,16,2,4,0,7, +128,0,8,8,0,6,100,1,0,2,192,0,3,88,0,3,8,0,1,240,0,1,192,0,0,120,0,3, +60,0,0,128,255,8,4,1,0,13,66,0,7,128,8,0,8,16,0,6,168,0,3,192,64,0,2, +40,0,3,4,34,0,0,208,40,0,0,5,3,106,18,0,2,52,0,0,50,249,0,0,8,0,14,70 +,4,0,25,192,16,0,3,128,0,2,48,0,3,180,16,0,1,2,0,0,68,19,2,1,0,3,2, +176,253,96,128,0,13,128,7,0,7,96,0,0,1,0,7,4,0,6,2,1,1,0,1,240,0,3,72 +,0,3,12,0,1,240,128,6,192,3,120,64,0,2,12,32,160,250,4,0,15,4,0,18,16 +,0,6,8,1,0,7,64,0,7,32,0,0,4,3,0,6,177,251,128,33,0,14,20,2,0,7,32,0, +16,128,68,0,2,192,0,0,1,0,1,32,0,4,64,0,0,192,8,8,1,32,100,16,0,4,248 +,249,0,1,52,128,0,8,128,1,4,0,8,129,0,10,18,0,6,41,0,0,52,128,0,5,8,0 +,3,4,0,3,65,80,136,0,0,128,0,2,128,32,96,250,0,4,4,0,7,128,0,10,4,0, +26,3,1,0,4,8,0,12,168,253,0,2,16,0,8,224,1,1,0,8,8,8,0,9,4,0,6,98,1, +12,128,7,0,2,128,0,0,88,0,4,8,0,0,240,0,0,6,0,1,120,0,3,12,0,0,168, +254,8,0,1,1,128,0,7,32,16,0,0,33,0,7,64,0,18,160,0,0,4,193,6,0,2,64,3 +,44,0,3,128,0,1,208,0,0,2,0,0,8,106,17,0,2,4,0,0,26,253,0,2,6,130,0,9 +,48,10,0,7,12,2,0,9,34,0,6,209,16,48,10,22,0,2,64,11,48,0,4,10,0,0, +192,2,152,4,16,1,1,0,2,48,10,160,249,0,1,12,128,1,0,7,224,1,12,0,8,15 +,0,10,4,0,6,2,1,61,0,0,7,4,0,1,192,0,0,74,0,3,44,0,1,240,128,30,192,0 +,0,120,64,0,2,60,0,0,88,255,4,0,3,2,0,30,4,0,6,2,1,48,0,0,6,0,3,3,64, +0,4,8,0,0,192,32,24,0,2,16,0,2,48,0,0,113,255,0,2,33,32,0,7,128,1,0,0 +,4,0,7,132,4,0,2,1,0,5,136,0,6,132,80,4,18,70,1,0,3,32,0,4,2,0,0,192, +0,0,24,0,0,17,97,1,0,2,48,0,0,184,249,0,4,16,64,0,8,128,0,7,1,8,0,0,4 +,0,0,2,0,5,2,1,0,5,33,0,0,52,128,2,0,4,8,0,0,1,0,1,48,65,0,2,64,80,0, +0,1,128,0,2,132,0,0,176,255,0,29,4,0,5,2,2,0,5,1,0,0,48,0,0,4,0,9,48, +0,2,128,0,8,8,80,255,0,24,12,2,0,1,8,0,6,16,0,6,104,1,12,128,5,0,4,88 +,0,1,4,0,0,56,16,0,0,48,0,0,6,0,0,131,120,0,5,160,250,8,0,4,16,0,9,64 +,2,0,5,44,0,1,128,0,0,1,0,5,132,0,6,162,0,0,4,128,34,4,0,3,40,0,0,44, +0,1,4,0,1,16,0,0,2,0,0,10,104,20,0,3,10,97,251,0,5,4,0,9,22,0,6,36,16 +,0,1,8,4,0,5,32,2,0,5,208,16,0,0,1,3,0,4,48,0,1,1,0,0,52,10,0,0,192, +32,24,4,160,0,0,1,0,3,2,75,251,0,4,48,64,0,8,128,1,4,0,5,3,0,1,12,0, +16,1,9,144,4,0,4,72,0,0,15,0,1,60,0,1,240,0,0,30,192,0,0,120,64,0,2, +12,32,88,253,4,0,16,4,0,5,4,0,2,136,4,0,5,64,2,0,6,65,48,8,5,0,4,64,0 +,0,12,0,4,192,0,0,24,0,7,8,18,251,0,4,64,132,0,9,16,0,6,128,2,0,0,48, +0,15,128,16,52,1,2,0,4,32,0,0,12,4,0,0,48,4,0,0,192,0,0,24,0,0,136,96 +,66,0,2,32,0,0,88,253,32,0,0,4,8,0,0,16,0,0,2,64,0,0,8,0,6,208,0,0, +130,80,67,8,0,0,13,160,1,20,0,0,1,0,5,128,0,6,32,0,1,128,4,0,4,8,0,0, +1,0,2,65,0,2,65,80,1,4,129,0,2,4,2,64,253,0,7,16,0,8,192,0,0,24,0,0,3 +,0,1,12,136,1,32,0,19,2,0,14,24,0,1,96,0,4,32,232,252,0,5,128,0,12,24 +,0,2,32,4,128,1,44,128,8,0,5,64,4,0,5,96,1,0,0,128,5,0,4,88,0,1,4,0,0 +,12,0,1,240,0,0,4,192,1,16,0,3,44,0,0,160,254,8,128,0,0,18,0,1,4,0,0, +2,32,1,32,0,6,20,152,32,3,2,2,140,144,145,20,0,0,1,0,5,128,0,6,160,0, +1,128,34,4,0,3,40,0,0,44,0,1,4,0,1,208,32,90,96,160,8,128,0,2,48,66, +137,254,0,1,130,0,2,4,1,0,0,8,0,0,2,0,5,192,4,136,0,0,34,4,129,44,128 +,5,26,18,1,0,5,128,0,6,192,16,0,1,3,0,4,48,0,1,16,0,0,48,0,2,2,154,0, +0,8,104,0,3,4,2,67,253,224,1,12,32,0,0,48,0,0,22,200,3,26,32,0,5,240, +128,6,200,1,120,0,0,7,228,1,32,0,0,2,0,6,1,0,6,1,1,128,4,0,4,72,0,0, +15,0,1,60,8,0,0,240,128,6,132,2,25,64,0,2,8,16,224,254,4,0,0,16,32,0, +3,8,0,0,2,0,7,32,8,0,0,2,2,0,0,12,128,1,33,136,0,6,64,0,7,65,0,1,3,0, +4,64,0,0,12,0,1,48,0,3,24,0,0,3,0,4,52,0,0,106,251,0,0,32,128,0,1,192 +,130,128,0,0,8,96,8,0,5,192,0,0,80,144,0,1,66,130,8,4,144,128,0,6,64, +0,6,128,4,0,1,4,0,4,32,0,0,76,4,0,0,48,0,1,192,0,0,1,0,0,147,0,0,36,0 +,2,20,18,208,249,0,9,8,0,0,1,4,0,0,4,128,34,148,2,11,72,0,0,106,0,0, +13,160,69,4,0,0,4,0,6,2,0,5,32,17,4,66,0,5,8,0,0,1,128,1,0,0,65,0,2, +64,80,16,0,0,129,1,0,1,128,32,152,255,0,10,64,0,4,4,192,0,0,24,0,1,96 +,0,0,12,8,1,0,1,1,0,5,128,0,6,128,0,0,1,0,9,128,1,1,0,1,192,128,0,1,2 +,1,0,3,48,0,0,232,248,0,17,128,64,8,8,0,0,97,0,0,12,128,129,44,0,0,8, +0,6,4,0,5,96,1,8,32,0,5,88,0,1,228,1,12,0,1,32,0,0,6,192,0,0,24,0,0, +12,4,0,0,8,0,0,216,249,8,0,9,8,64,4,0,2,70,200,8,24,1,32,96,0,0,136, +144,9,20,0,7,12,0,6,169,0,0,36,0,6,40,0,0,44,160,1,4,0,1,208,66,2,64, +82,8,0,0,32,0,1,52,32,41,254,0,11,128,4,0,0,48,0,0,68,196,66,88,0,0,3 +,100,4,8,128,1,24,18,0,14,64,1,4,32,0,5,48,0,0,32,0,0,16,176,8,0,0, +208,36,88,4,161,96,16,76,0,1,180,0,0,67,253,0,9,56,32,3,0,1,60,144,3, +112,0,0,22,200,1,120,32,15,228,1,33,0,16,1,12,0,6,72,0,0,15,100,0,0, +61,0,1,48,0,0,30,128,0,0,120,0,0,3,8,0,0,12,8,104,248,4,0,9,32,0,0,8, +0,1,16,6,0,4,1,0,1,128,1,32,8,0,15,1,16,0,6,64,0,0,12,0,1,48,0,1,192, +0,0,24,64,3,96,0,0,12,0,1,48,0,0,170,250,0,10,2,8,0,2,1,16,34,128,132 +,130,0,1,64,12,129,33,16,0,16,1,0,0,17,0,5,32,0,0,140,4,0,0,48,0,3,24 +,0,0,11,97,0,0,44,4,0,2,136,251,48,0,0,4,128,2,18,0,0,2,64,3,0,1,1,36 +,0,0,52,65,0,0,16,2,2,65,3,9,0,0,37,164,17,164,0,15,160,1,36,0,1,16,0 +,0,2,64,0,0,73,0,1,160,1,52,192,0,2,64,80,136,96,129,0,0,160,1,52,0,0 +,136,249,0,3,4,0,9,48,0,1,192,64,0,0,16,1,0,2,128,129,16,16,0,6,10,0, +6,133,1,48,32,0,5,32,0,3,48,0,1,192,128,0,9,144,248,128,1,0,0,16,6, +192,128,0,4,3,0,0,128,48,0,1,192,0,1,8,3,0,0,32,15,132,1,44,0,15,128, +1,57,0,1,192,64,24,200,0,0,88,0,3,48,0,0,6,34,0,0,6,192,3,113,0,3,60, +8,208,251,12,128,0,0,1,38,194,0,3,1,0,0,65,132,5,48,4,0,0,192,16,24,0 +,0,9,98,1,132,128,5,21,0,0,4,0,5,16,2,0,5,136,5,52,64,0,1,2,64,64,16, +41,0,2,136,176,32,16,208,136,2,0,0,18,8,8,0,1,4,54,1,66,248,4,0,0,2,6 +,34,0,0,8,0,0,8,16,0,1,128,4,8,32,10,0,0,128,4,0,0,33,18,0,0,12,129, +128,1,24,0,0,2,0,5,16,1,0,5,8,16,52,4,0,0,192,0,0,89,0,0,32,49,0,2,48 +,48,0,0,134,208,8,25,80,96,8,4,0,1,16,129,0,0,232,254,96,0,0,12,128,1 +,242,64,6,192,0,0,1,0,0,3,224,1,61,0,1,48,64,6,192,3,121,0,0,11,226, +129,16,0,0,7,0,5,144,3,0,5,104,0,0,25,0,1,48,0,0,6,200,0,0,72,0,1,96, +0,0,60,144,1,48,0,0,30,192,0,0,120,16,0,0,224,1,56,32,200,254,4,0,0, +48,0,0,6,0,0,64,24,0,4,136,1,49,0,1,128,0,0,16,4,0,0,96,32,8,136,1,16 +,128,5,0,5,208,2,0,5,136,1,48,32,0,0,192,0,0,24,0,1,32,0,3,48,0,0,6, +192,0,0,24,0,0,1,0,2,128,129,0,0,16,241,249,0,0,32,0,0,33,16,196,2, +152,16,64,0,1,8,128,1,48,33,0,0,64,130,64,0,0,64,96,0,0,141,128,32,16 +,0,0,4,0,5,8,2,0,5,4,72,52,0,1,192,68,24,9,10,65,0,2,16,145,64,6,2,0, +0,24,64,35,98,0,1,128,5,176,0,0,248,255,0,29,4,0,6,2,0,6,4,2,0,18,128 +,0,4,128,64,216,251,32,0,0,4,128,0,0,16,0,0,2,64,0,0,8,0,0,1,32,0,0,4 +,128,0,0,16,0,0,2,64,0,0,8,0,1,32,0,0,4,0,7,8,0,6,4,0,1,128,0,0,16,0, +0,2,64,0,0,8,0,0,1,32,0,0,4,128,0,0,16,0,0,2,0,1,8,0,0,1,32,0,2,112, +254,0,47,32,0,18,2,0,4,32,152,253,40,0,0,4,128,0,0,16,0,0,2,64,0,0,8, +0,0,1,32,0,0,4,128,0,0,16,0,0,2,64,0,0,8,0,0,33,40,0,0,4,0,16,144,4, +128,0,0,16,0,0,2,64,0,0,8,0,0,1,32,0,0,4,128,0,0,16,0,0,2,0,1,8,0,0,1 +,32,0,2,89,249,0,24,2,0,2,2,0,17,2,32,2,0,15,16,0,4,128,8,51,255,32,0 +,0,4,128,0,0,16,0,0,2,64,0,0,8,0,3,4,128,0,0,16,0,0,2,64,0,0,8,0,1,32 +,0,1,16,0,16,5,32,0,0,16,0,0,2,0,3,1,0,2,128,0,5,2,0,0,1,32,0,3,254,4 +,0,27,16,0,15,128,0,0,16,0,0,2,0,7,128,0,0,16,0,1,64,0,0,8,0,0,1,32,0 +,3,16,34,252,32,0,0,4,128,0,0,16,0,0,2,64,0,0,8,0,0,33,40,4,5,128,0,0 +,16,0,0,2,64,0,0,8,0,0,1,32,0,0,128,0,15,32,16,0,1,16,16,0,0,2,64,64, +8,65,1,32,4,4,130,0,0,16,2,66,0,0,8,8,1,1,32,0,1,2,64,255,0,24,8,0,1, +16,0,19,2,0,7,128,0,3,64,0,0,8,0,0,1,32,0,5,200,255,0,44,128,0,13,16, +0,11,16,0,0,24,254,0,0,2,0,6,4,128,0,7,64,0,0,72,0,0,1,0,3,2,0,21,1, +16,0,3,8,0,2,4,0,1,128,64,0,2,64,0,4,136,255,0,2,8,0,0,1,0,2,128,0,7, +1,32,0,0,4,128,0,25,2,0,4,2,0,2,2,0,6,8,0,6,208,248,0,1,8,0,0,1,32,0, +0,4,0,1,16,0,1,64,0,0,8,0,4,128,0,0,16,0,1,68,0,33,8,0,12,8,248,0,14, +8,0,58,144,255,64,0,6,80,0,0,16,32,0,0,4,0,1,8,0,2,2,16,0,0,1,0,20,64 +,0,8,64,16,0,0,2,0,0,32,4,0,0,4,64,8,0,0,129,0,6,200,255,0,12,2,0,1,4 +,0,36,128,32,0,18,56,251,64,0,6,136,80,16,32,64,13,0,1,56,2,0,1,4,8,0 +,0,1,0,1,128,0,17,64,5,0,0,8,0,0,64,0,2,128,58,48,0,0,4,0,0,24,16,0,0 +,2,64,4,128,10,1,0,5,80,248,192,2,32,162,0,0,1,0,0,8,0,0,144,0,1,21,0 +,0,1,4,37,0,0,1,0,1,2,0,1,172,8,0,0,1,0,16,32,80,4,1,130,1,32,44,4,6, +64,0,0,64,2,0,0,16,8,2,128,0,2,1,0,4,48,0,0,56,255,32,0,3,4,0,0,16,0, +1,2,0,0,4,0,4,2,0,26,64,0,1,2,2,128,2,16,0,3,4,0,0,16,8,4,0,2,128,0,5 +,16,128,168,250,0,1,4,0,9,128,0,1,32,0,3,16,0,1,16,1,32,0,21,128,0,3, +1,32,0,6,128,0,8,8,0,0,192,253,0,46,2,16,0,24,64,168,251,0,60,32,0,12 +,184,253,0,26,2,0,16,128,0,5,32,0,3,16,0,3,8,0,2,64,0,5,16,0,0,216, +254,16,0,2,8,0,10,64,0,2,4,128,1,0,1,32,0,20,8,0,5,128,0,11,4,0,0,64, +0,4,164,248,2,0,10,2,0,39,128,0,14,128,0,3,128,24,255,0,27,32,0,29, +128,0,3,64,0,0,64,0,7,48,249,8,0,11,128,0,8,32,0,0,4,0,23,64,0,0,8,0, +0,8,0,1,4,0,0,64,0,1,2,0,2,2,64,0,1,4,128,0,1,4,242,253,0,5,2,0,4,32, +0,0,4,0,35,1,32,0,0,2,0,1,16,0,2,64,0,7,8,0,2,128,186,250,0,2,4,0,4, +64,0,6,128,0,6,2,0,0,32,0,18,128,32,0,16,32,128,64,0,3,96,0,0,208,251 +,0,13,32,0,1,4,0,9,8,0,17,64,0,18,1,0,6,80,248,32,0,0,37,128,0,0,16,0 +,0,2,64,2,72,0,1,32,0,0,4,0,0,4,16,0,1,16,0,1,128,0,0,32,1,0,32,64,0, +12,112,253,0,22,2,0,32,1,0,2,128,0,12,160,254,0,13,64,0,3,32,0,5,2,0, +43,2,0,2,184,249,0,59,8,0,13,144,255,0,4,64,0,11,64,0,38,32,0,8,8,1,0 +,4,104,248,0,17,128,0,2,8,0,22,128,0,0,16,0,17,128,0,6,128,255,0,29,8 +,0,1,32,0,3,4,0,1,16,0,10,64,0,20,240,250,0,11,2,2,64,0,7,16,0,1,2,0, +5,8,0,18,128,0,1,16,0,17,24,251,0,5,1,0,15,130,0,19,8,0,5,2,0,22,128, +252,0,0,64,0,0,16,0,0,2,64,1,8,0,1,48,0,1,128,0,0,16,0,6,32,0,0,16, +192,0,2,8,0,1,32,0,3,4,0,1,16,0,17,8,0,12,32,255,0,21,8,0,0,32,0,19, +64,0,12,128,16,0,2,32,0,2,3,0,4,16,248,252,0,16,128,64,0,0,8,0,39,4,0 +,1,32,0,1,66,0,0,16,0,3,8,32,255,0,24,16,0,4,20,0,0,8,16,16,0,2,10,0, +0,4,8,8,0,30,104,249,4,0,10,16,0,0,2,0,1,16,0,10,128,0,1,64,2,0,1,64, +64,0,1,32,1,0,1,32,0,8,4,0,19,48,252,0,4,1,0,10,2,1,0,3,1,0,20,128,0, +1,8,0,0,1,128,0,4,2,128,0,0,1,0,3,8,0,1,32,0,4,8,136,255,4,128,0,8,64 +,0,10,64,0,0,4,0,0,64,0,5,2,0,8,8,0,1,32,0,6,32,0,0,4,2,0,0,16,0,5, +128,0,4,16,0,0,120,250,0,1,161,8,0,0,67,0,2,80,224,64,0,1,3,0,1,3,3,0 +,0,8,0,1,9,16,1,128,0,0,17,0,4,4,0,5,2,0,1,16,192,64,4,16,0,0,3,64,0, +1,1,72,1,3,72,128,4,8,20,0,1,84,0,1,18,0,0,40,2,5,4,16,160,249,0,0, +208,146,9,41,65,50,18,64,82,37,176,2,128,1,32,0,0,64,4,0,3,5,162,161, +1,8,160,0,3,24,4,64,32,0,3,4,2,32,0,0,128,132,22,214,8,75,0,0,34,0,0, +8,72,168,25,1,0,0,136,128,16,160,32,72,106,162,64,0,0,81,128,87,128,8 +,232,252,0,0,64,8,32,128,128,128,0,2,16,16,0,0,64,0,18,16,8,128,16,0, +3,8,1,16,0,0,128,0,0,8,0,1,17,0,12,32,16,0,0,128,0,2,128,64,0,0,16,88 +,252,0,5,32,8,0,0,130,0,2,128,0,0,16,0,9,2,0,0,4,0,3,8,0,13,16,0,5,32 +,16,4,2,0,3,16,0,1,8,2,32,0,1,64,0,2,200,248,0,25,16,0,32,4,0,13,216, +250,0,5,32,0,17,4,5,0,3,1,0,1,4,0,2,128,0,2,2,0,10,8,0,16,4,0,1,8,248 +,0,0,1,0,2,128,0,0,16,0,5,1,0,4,4,0,24,32,0,18,128,0,5,2,0,0,240,255, +0,17,24,0,0,2,66,0,24,4,32,0,18,4,0,4,64,224,249,0,5,2,0,17,32,0,1,64 +,0,0,1,2,0,0,4,8,0,1,128,0,0,1,0,0,2,4,0,3,32,0,26,60,255,0,31,2,0,2, +2,0,2,1,0,2,1,0,29,136,252,0,60,32,0,12,184,253,0,2,128,0,2,32,0,1, +128,0,3,64,0,10,2,0,21,2,0,8,64,0,13,48,255,0,3,4,0,12,128,0,0,17,0,0 +,2,0,22,129,0,28,249,0,46,128,0,1,1,0,11,128,128,0,3,32,0,2,128,0,0, +160,255,0,22,8,0,0,1,0,24,128,0,5,8,0,7,2,0,6,16,252,0,19,16,16,0,2, +24,0,24,128,16,0,0,1,0,1,8,0,16,152,255,160,16,0,1,70,2,0,0,24,8,11,4 +,20,0,4,22,24,0,0,26,64,3,0,38,22,8,0,6,160,0,0,4,1,64,255,128,128,0, +17,24,0,0,3,0,48,1,16,8,16,253,96,1,0,0,128,7,0,1,30,208,3,24,0,4,128 +,7,48,0,0,30,192,3,0,37,128,7,2,0,6,96,1,0,0,8,96,254,160,0,1,128,160 +,0,1,2,64,8,9,0,4,128,160,16,0,0,26,64,3,0,37,128,0,8,160,0,2,224,248 +,64,1,0,8,2,0,5,192,64,0,0,32,8,4,0,46,192,16,130,8,128,252,0,0,1,1,0 +,0,7,0,1,28,128,3,16,32,0,4,7,240,0,0,4,128,0,39,7,0,8,1,12,0,0,16, +249,0,0,1,0,7,96,0,6,192,0,52,1,0,0,8,168,249,128,132,0,1,6,0,1,24,0, +0,3,96,8,0,4,6,208,0,42,6,0,7,128,132,8,2,104,253,32,16,48,6,0,0,192, +68,0,4,140,161,80,48,6,0,3,80,17,0,4,4,16,0,6,34,0,6,17,0,0,48,34,0,0 +,192,24,88,32,0,7,70,4,0,2,3,0,2,32,0,0,4,10,56,252,0,0,128,48,0,10,1 +,0,4,24,0,0,130,0,4,48,0,7,12,0,6,6,0,21,1,0,3,16,0,0,208,255,96,1,60 +,0,1,240,0,5,15,128,65,60,32,0,2,4,0,1,1,0,3,48,0,7,12,0,6,6,0,0,60,0 +,1,240,0,0,30,0,7,128,7,0,2,192,3,0,2,96,1,0,0,8,248,249,168,0,0,52,0 +,1,16,68,0,4,65,144,17,4,2,0,2,26,16,3,0,4,48,64,0,6,10,0,6,5,0,0,4,5 +,0,0,16,136,2,2,0,6,128,32,8,0,1,64,16,4,0,1,160,0,1,2,18,249,64,1,48 +,0,10,16,1,0,3,26,0,0,10,1,0,3,176,16,0,6,10,0,6,5,0,24,192,16,2,8,8, +253,0,0,1,57,0,1,224,0,5,14,96,1,56,0,3,4,208,1,0,4,44,0,17,56,0,1, +224,0,0,28,0,8,7,0,2,128,3,0,3,1,12,0,0,96,250,4,1,48,0,10,1,0,4,26,0 +,0,131,0,4,48,8,0,41,1,0,0,8,81,248,128,32,52,0,1,192,0,5,12,128,17, +49,0,3,2,0,6,48,0,17,48,0,1,192,0,0,24,0,8,6,0,3,3,0,2,128,32,128,0,0 +,64,248,48,16,48,6,70,2,0,0,24,8,0,2,44,16,0,0,180,128,0,0,208,72,0,0 +,64,3,0,1,140,1,0,17,128,145,0,9,12,4,0,0,48,0,1,16,34,0,0,64,131,0,2 +,32,0,2,112,251,0,0,128,48,0,11,32,32,0,0,128,0,2,3,0,1,12,0,34,16,0, +4,3,0,6,136,251,96,1,60,128,7,0,1,30,0,3,15,0,1,48,0,0,6,242,0,1,192, +3,0,1,15,0,18,224,1,0,9,15,0,1,60,0,5,131,0,2,96,1,0,1,104,250,172,0, +0,52,128,32,2,0,0,2,16,0,2,65,16,0,0,48,5,6,192,130,0,0,64,3,0,1,13,0 +,18,32,8,2,0,8,65,1,0,0,4,5,0,1,130,0,1,35,0,2,160,0,2,186,250,68,1, +48,0,11,48,18,64,80,36,0,1,32,0,1,12,0,38,1,0,0,19,1,0,1,192,16,2,0,0 +,232,250,0,0,1,57,0,0,7,0,1,28,0,3,14,0,1,60,128,7,242,0,1,128,0,0,1, +0,0,14,0,18,192,1,0,9,14,0,1,56,0,1,48,0,1,192,0,4,1,0,1,64,255,4,129 +,48,0,11,48,0,1,196,128,0,4,12,0,36,64,128,0,1,2,0,3,129,0,1,41,251, +128,0,0,48,0,0,6,0,1,24,0,3,12,0,1,184,16,70,208,0,5,12,0,18,128,1,0, +9,12,0,1,48,0,1,192,8,0,0,128,81,0,2,128,0,2,176,255,32,16,0,4,26,0,0 +,35,1,0,3,36,66,0,0,208,68,18,1,19,8,0,0,12,144,9,0,8,8,0,6,132,145,0 +,1,6,2,0,2,3,97,68,0,2,48,0,3,26,64,136,0,1,13,32,0,0,20,0,0,128,250, +0,0,128,0,4,24,0,6,48,0,1,128,0,0,8,4,0,0,1,0,2,128,0,8,10,0,6,5,0,14 +,16,0,4,3,0,1,12,0,1,32,0,0,136,249,96,1,0,4,30,192,3,0,4,32,0,1,192, +128,0,0,136,3,96,64,15,224,1,0,16,224,1,0,0,128,7,0,2,192,3,121,0,3, +60,0,4,8,2,0,2,100,1,44,0,0,64,251,168,0,5,26,64,16,4,0,3,144,32,0,0, +192,4,152,64,16,100,2,33,36,136,0,8,2,0,6,33,8,1,128,32,8,0,1,64,32,8 +,68,0,2,4,33,0,2,128,0,0,129,0,1,44,160,0,0,20,0,0,185,248,64,1,0,4, +24,0,6,160,0,1,192,2,8,64,64,0,0,65,0,11,16,0,6,8,0,19,16,19,1,0,0,76 +,192,16,26,33,19,253,0,0,1,1,0,3,30,128,3,0,4,28,16,0,0,240,32,22,136 +,3,120,0,0,14,192,1,0,8,4,0,6,200,1,0,1,7,0,2,128,3,112,0,3,56,0,3,6, +192,3,0,1,3,4,1,36,0,0,160,250,4,1,1,0,3,24,0,6,32,0,1,192,0,0,24,68, +0,0,96,16,1,32,0,9,4,0,6,1,0,20,3,0,1,12,0,0,129,32,0,0,42,248,128,0, +5,26,0,0,3,0,4,16,5,0,0,192,128,64,64,3,96,1,13,128,1,0,8,16,0,6,136, +1,0,1,6,0,3,3,96,0,3,48,0,4,9,83,0,1,64,136,16,16,10,112,255,32,16,0, +4,24,8,0,1,20,0,0,128,5,0,2,192,72,128,64,32,73,0,12,2,0,6,129,145,0, +0,128,0,7,140,1,0,0,48,0,5,3,0,2,32,0,0,4,0,0,40,255,0,0,128,0,11,128 +,0,4,24,8,0,1,64,0,35,16,0,5,1,0,5,208,255,96,1,0,4,30,0,1,24,0,1,224 +,1,0,2,224,128,4,8,1,64,0,12,10,0,6,229,1,0,1,6,0,6,15,0,1,60,0,4,192 +,3,0,2,96,1,44,0,0,96,250,164,0,5,130,8,0,0,8,0,1,32,40,0,2,208,8,26, +1,161,0,0,36,0,11,18,0,6,41,40,0,1,134,0,6,65,16,0,0,132,16,0,3,64,32 +,2,0,1,160,0,0,20,0,0,154,250,76,1,0,8,2,0,5,16,130,26,0,0,11,97,1,0, +24,4,0,19,192,16,26,33,208,248,0,0,1,1,0,3,28,0,1,16,32,0,0,192,1,0,2 +,224,0,0,4,208,3,120,32,0,19,192,1,0,0,128,7,0,6,14,0,1,56,0,4,128,3, +0,3,1,36,0,0,40,252,8,129,0,7,96,0,6,192,64,26,0,0,130,0,6,2,0,6,1,0, +32,1,32,8,65,255,128,16,0,4,24,0,1,96,132,0,0,128,1,0,2,192,2,2,0,0,2 +,32,129,0,3,128,2,0,5,64,1,0,5,128,1,0,1,6,2,0,5,12,0,1,48,0,5,3,0,2, +128,8,17,2,192,252,32,16,0,2,192,68,0,1,19,1,0,1,128,49,0,2,144,8,27, +0,1,104,4,0,0,128,1,4,6,0,14,128,145,0,12,52,9,0,1,24,2,0,0,3,0,1,1, +32,0,0,4,0,0,80,249,0,0,128,0,10,128,1,0,2,192,0,0,24,0,1,96,64,0,0, +128,1,1,128,0,6,64,0,21,48,0,1,192,0,3,1,0,5,56,252,96,1,0,2,240,0,1, +192,3,0,2,224,1,0,2,128,64,30,0,1,96,16,0,0,224,1,48,0,0,4,0,6,2,0,5, +224,1,0,12,48,0,1,32,64,24,192,3,2,0,1,96,1,44,0,0,32,253,168,0,3,16, +20,0,0,64,16,1,0,1,160,1,0,2,192,8,26,0,2,4,0,0,160,1,32,17,4,0,6,2,0 +,5,32,16,1,0,11,48,10,0,0,208,0,0,88,96,0,2,44,168,0,0,20,0,0,18,249, +64,1,0,10,128,1,0,2,192,0,1,2,0,0,96,32,0,0,128,1,0,0,129,0,6,64,0,21 +,48,17,0,0,208,68,0,0,16,0,2,44,192,16,26,33,88,252,0,0,1,1,0,1,224,0 +,1,128,3,0,2,192,1,0,2,112,64,4,0,1,120,0,1,192,1,12,16,4,0,5,34,2,0, +5,196,1,0,12,12,0,1,32,0,0,30,128,3,0,1,3,4,1,36,0,0,184,255,4,1,0,10 +,160,1,0,3,128,0,2,32,0,1,128,1,0,0,128,0,6,64,0,6,1,0,13,32,0,1,192, +0,5,12,0,0,1,32,8,97,248,128,136,0,2,192,0,2,3,0,2,160,1,0,2,32,4,0,2 +,96,130,0,0,128,1,0,0,66,0,14,128,1,0,12,24,34,0,2,24,2,3,0,2,144,16, +145,0,0,184,255,32,16,0,1,22,8,0,3,8,130,76,0,0,4,48,6,0,0,16,8,0,0, +16,19,72,66,0,2,20,132,2,0,5,70,1,0,5,162,73,0,2,208,0,8,4,8,0,0,16, +32,2,64,0,0,96,32,0,0,32,0,0,4,0,0,200,254,0,0,128,0,10,132,129,0,3, +128,24,0,1,97,0,3,32,128,4,0,5,96,2,0,5,128,1,0,2,192,0,8,48,0,13,8, +249,96,1,0,0,128,7,2,0,3,120,0,0,15,64,128,60,32,0,1,64,4,192,3,64,32 +,0,2,48,32,0,6,2,0,6,137,1,0,12,32,0,3,24,0,0,3,120,0,1,96,1,44,0,0, +152,255,168,0,1,128,64,0,4,64,8,65,176,9,4,0,1,192,0,0,26,66,16,97,4, +0,2,32,1,0,6,20,0,6,128,81,0,3,130,0,7,144,8,0,1,136,24,8,3,8,68,0,0, +160,0,0,20,0,0,178,251,64,1,0,7,8,16,0,0,160,1,2,0,2,4,27,17,0,0,96, +68,0,2,128,64,0,14,8,129,0,2,192,132,0,7,48,17,0,1,8,1,16,32,0,2,192, +16,26,33,32,251,0,0,1,1,0,0,7,0,4,16,0,0,14,64,0,0,56,0,1,48,0,0,4, +128,3,56,0,3,12,0,15,224,0,3,48,0,8,60,0,1,48,0,0,30,192,0,0,113,0,2, +1,36,0,0,216,248,4,1,0,7,32,0,0,1,128,1,0,2,128,0,0,26,64,0,1,64,0,19 +,128,129,0,2,192,0,8,48,0,1,64,64,0,0,8,0,0,2,0,2,1,32,8,105,251,128, +40,0,1,6,0,4,104,36,12,0,1,48,0,2,4,3,64,3,16,2,0,2,48,33,0,14,64,16, +0,3,8,1,0,6,48,34,0,0,192,4,88,0,0,16,96,0,1,128,40,16,0,0,184,249,32 +,17,4,0,1,192,68,0,2,40,8,0,4,198,208,0,0,146,4,16,8,4,13,32,0,0,176, +0,15,32,5,0,9,140,129,1,48,0,2,2,1,0,0,3,0,2,32,1,36,33,8,251,128,128 +,0,15,192,0,0,8,0,0,3,1,64,0,3,32,0,6,8,0,6,132,64,0,12,1,16,0,5,1,0, +1,128,0,0,16,0,0,128,255,96,1,0,2,240,0,3,48,64,0,3,128,7,192,0,1,136 +,3,97,0,0,12,4,0,0,60,0,16,64,0,9,15,224,1,60,16,0,0,32,0,1,192,3,0,2 +,96,1,44,0,0,96,250,168,0,3,16,128,0,2,8,1,0,3,128,16,194,20,152,64, +35,0,0,128,76,0,0,40,4,32,4,0,5,16,2,0,5,136,5,0,9,65,33,0,0,5,0,1,16 +,0,1,64,64,0,2,160,0,0,20,0,0,170,248,64,1,0,0,1,0,5,8,2,0,6,2,9,65, +35,2,12,128,128,5,0,1,2,0,5,16,1,0,5,136,129,0,15,16,68,0,5,192,16,42 +,0,0,248,250,0,0,1,13,16,0,0,224,0,3,80,64,0,4,7,48,0,0,22,136,0,0,24 +,0,0,3,228,129,56,0,0,7,0,5,144,3,0,5,232,1,0,9,14,224,1,56,0,1,32,0, +1,128,3,0,3,1,36,0,0,64,253,4,1,48,0,14,192,0,0,24,80,3,0,0,32,12,8, +128,0,0,128,5,0,5,208,2,0,5,136,129,0,23,128,0,0,32,0,0,249,253,0,0,1 +,49,66,0,0,192,0,3,72,0,5,6,0,0,40,64,64,19,34,0,0,76,128,9,48,0,0,4, +0,5,8,2,0,5,132,17,0,9,12,128,1,48,0,5,3,0,3,9,34,0,0,24,253,0,11,128 +,16,8,2,0,4,33,32,4,0,0,32,16,16,2,0,0,4,0,6,2,0,35,168,250,32,0,0,4, +128,0,0,16,0,1,64,0,2,1,0,1,4,128,0,5,8,0,1,32,0,0,4,0,7,2,0,6,33,0,0 +,4,128,0,0,16,0,0,2,64,0,0,8,0,0,1,32,0,0,4,128,0,0,16,0,0,2,64,0,0,8 +,0,0,1,32,0,0,4,0,0,80,253,0,10,64,0,62,152,251,40,0,0,4,144,0,0,16,0 +,0,130,66,0,0,8,1,0,2,5,128,0,0,16,64,64,8,8,9,0,0,128,4,0,0,4,0,15, +32,0,0,4,128,0,0,16,0,0,2,64,0,0,8,0,0,1,32,0,0,4,128,0,0,16,0,0,2,64 +,0,0,8,0,0,1,32,0,0,4,0,0,113,255,0,0,4,130,0,0,64,0,0,2,64,32,32,0,0 +,129,128,0,0,4,130,64,64,0,0,2,0,0,5,128,0,1,64,16,0,0,130,0,16,16,0, +0,2,64,0,0,8,0,0,1,32,0,0,4,128,0,2,2,64,0,0,8,0,1,32,0,0,4,0,1,16,0, +1,219,253,0,2,16,0,0,4,64,0,2,2,0,1,8,0,3,4,64,0,2,8,0,0,1,0,2,16,0, +16,1,32,0,0,4,128,0,0,16,0,0,2,64,0,0,8,0,1,32,0,0,4,128,2,0,1,2,64,1 +,0,1,1,0,0,208,252,4,128,0,20,1,0,50,226,249,0,0,8,128,32,64,2,72,0,0 +,9,32,1,33,32,4,144,0,0,18,64,2,72,2,66,32,8,0,0,64,36,132,0,0,18,0, +15,144,0,0,18,64,2,72,0,0,9,32,1,36,128,36,144,0,0,18,64,2,72,2,0,0, +32,1,36,1,0,0,136,4,17,168,255,0,3,4,128,0,0,16,0,0,2,0,3,1,32,0,0,4, +128,0,3,8,0,0,8,0,1,32,0,3,2,0,11,1,32,0,0,4,128,0,0,16,0,0,2,64,0,0, +8,0,0,1,32,0,0,4,128,0,0,18,0,0,2,64,0,5,248,255,0,9,64,0,0,8,0,6,16, +0,0,2,64,0,2,1,0,3,16,0,6,8,0,2,8,0,24,8,0,3,64,252,0,1,64,0,7,8,0,5, +64,64,35,0,1,16,160,32,0,1,128,64,0,44,160,250,0,3,1,0,2,128,0,9,16,0 +,1,1,0,52,254,0,31,16,0,2,16,0,2,8,0,2,8,0,29,128,254,0,6,2,0,9,16,0, +0,8,0,4,32,0,0,4,0,21,16,0,20,64,0,0,88,255,128,64,4,8,0,0,32,0,2,65, +0,0,64,0,2,16,32,0,2,8,0,0,64,32,0,4,16,0,24,8,64,0,5,1,0,10,40,252,0 +,0,1,0,4,4,0,8,2,0,0,32,0,5,32,0,20,16,0,0,16,0,23,136,251,104,128,8, +16,20,32,24,130,130,90,1,48,40,0,1,8,152,0,1,128,212,2,138,17,0,0,40, +32,48,0,0,16,0,17,32,0,0,16,0,3,16,32,40,0,3,160,130,2,0,1,10,0,3,40, +160,5,8,254,160,85,16,15,70,85,1,16,64,105,2,0,0,4,8,0,0,16,45,16,16, +25,64,80,138,32,17,33,34,17,1,0,18,160,64,4,0,0,42,20,0,0,40,0,5,4,4, +0,0,16,4,0,0,136,0,3,129,34,208,250,0,0,65,32,4,1,65,0,2,1,0,1,1,0,1, +4,4,0,4,128,16,32,0,0,1,0,24,4,4,0,0,32,0,9,16,0,7,145,255,128,0,1, +136,0,2,16,0,0,128,0,5,8,0,1,32,0,1,1,0,2,128,0,34,4,0,1,8,0,8,224, +253,0,1,2,0,1,2,0,1,32,0,0,1,128,1,4,0,0,6,192,0,0,34,0,6,24,0,18,128 +,0,0,16,0,0,2,64,0,0,8,0,0,1,32,0,0,4,0,1,16,0,0,18,64,8,0,1,1,32,0,1 +,128,0,2,248,0,74,152,255,0,6,4,0,5,64,0,3,1,0,0,2,0,0,66,0,2,1,0,19, +128,0,15,32,0,8,8,251,0,2,8,0,5,8,0,6,32,0,9,16,0,40,4,0,2,120,254,0, +74,152,255,0,59,64,0,5,4,0,6,216,251,0,66,4,0,6,152,251,0,22,1,0,49, +128,0,0,255,0,10,16,0,6,128,0,1,4,4,0,39,128,0,1,8,0,1,12,0,3,216,254 +,0,13,4,32,0,3,34,0,2,64,16,0,2,32,0,44,136,254,0,74,152,255,0,32,4,0 +,6,2,0,8,32,0,10,32,0,10,248,251,0,74,152,255,0,51,1,0,21,152,254,0,9 +,8,0,16,4,0,45,16,251,0,0,128,0,14,128,0,0,32,0,8,8,0,44,184,253,0,29 +,8,0,1,32,0,3,4,0,1,16,0,6,1,16,0,1,128,0,2,3,0,9,16,0,5,72,252,0,0,4 +,0,1,2,0,11,1,0,1,64,0,0,8,0,17,4,0,11,1,0,7,64,0,2,8,0,2,128,0,2,16, +252,0,0,128,0,3,64,0,0,8,0,0,2,0,1,8,0,0,1,0,0,8,0,0,16,0,4,16,0,2,16 +,0,0,128,0,2,128,0,0,1,0,0,64,0,1,4,64,0,2,1,0,0,16,4,0,6,8,128,0,2,4 +,0,0,64,0,1,2,0,3,1,0,0,168,252,224,1,0,0,128,0,0,16,0,0,64,0,0,2,0,2 +,32,0,0,128,140,4,0,0,128,0,0,72,0,10,2,0,1,16,1,0,6,32,128,4,0,8,1,0 +,1,44,16,1,0,7,96,129,0,1,8,255,0,0,2,4,0,6,64,0,1,96,0,5,64,0,0,1,0, +1,1,0,37,32,0,9,216,249,0,4,64,0,11,64,0,1,128,0,0,32,0,4,64,0,33,16, +0,9,72,252,32,0,26,1,0,13,8,0,7,2,0,12,64,0,3,32,0,2,112,254,0,14,8,0 +,8,8,0,20,128,0,7,1,0,4,16,0,7,2,0,2,160,254,2,0,0,16,128,0,0,20,0,3, +64,0,0,8,0,2,160,0,0,4,64,0,2,16,0,4,4,0,19,64,0,3,64,0,0,2,0,6,4,0,1 +,16,0,5,120,249,0,1,32,32,0,4,64,8,0,3,32,0,1,32,0,5,2,32,0,22,1,0,13 +,16,0,0,129,0,6,104,253,0,0,64,172,32,3,34,0,0,128,2,0,0,58,10,42,0,0 +,64,20,16,1,18,84,128,2,90,80,1,25,32,0,1,21,0,2,2,16,16,128,0,3,1,8, +0,0,64,0,4,164,2,0,2,16,0,0,66,1,0,0,16,0,0,20,0,1,6,64,1,82,1,0,4,64 +,251,0,0,96,160,162,12,0,0,128,8,17,130,8,8,0,0,128,65,32,210,4,80, +128,18,4,163,64,16,4,128,1,36,33,0,2,8,0,0,64,0,5,2,40,0,3,82,0,0,1, +32,0,2,176,16,8,2,0,0,128,32,16,144,128,0,1,112,0,0,20,0,0,32,0,0,69, +34,200,251,0,1,1,0,3,4,0,1,2,0,1,64,64,0,2,32,0,1,4,129,0,0,64,4,128, +0,5,8,0,0,64,0,5,2,32,0,4,128,0,0,128,0,2,8,64,0,0,8,0,9,16,0,4,248, +248,0,0,64,16,0,0,4,0,2,64,0,1,64,0,0,32,0,0,8,0,0,1,0,1,4,128,0,0,16 +,0,1,64,0,0,16,0,27,1,0,4,64,0,2,128,0,6,104,249,0,27,16,0,12,2,0,2, +64,0,1,8,0,0,32,0,3,16,0,9,128,0,0,16,0,1,64,0,1,24,249,2,2,0,1,8,128 +,1,32,0,0,4,0,2,8,0,3,128,0,0,1,16,4,2,1,0,1,130,33,0,2,32,0,2,32,0,2 +,16,0,2,16,0,13,128,0,13,128,64,254,64,0,0,32,0,1,8,0,6,16,0,3,8,0,1, +16,0,22,64,0,14,8,0,3,32,0,7,184,252,2,0,0,32,0,5,1,0,4,2,0,6,16,40,0 +,0,16,0,36,32,0,0,64,0,6,132,8,254,0,9,4,0,7,2,0,3,1,2,64,0,0,8,0,1, +64,0,2,64,0,2,32,0,2,32,0,8,32,0,8,8,0,0,5,0,8,24,254,0,13,1,0,59,136 +,255,0,74,152,255,0,44,64,0,24,8,0,0,1,0,0,88,254,0,11,8,0,0,128,0,4, +20,0,0,2,0,0,64,0,37,32,0,10,56,252,0,2,64,0,6,128,0,2,4,32,0,1,2,0,7 +,64,0,15,128,0,13,16,0,2,128,0,1,1,0,3,2,0,1,200,252,0,20,8,0,1,8,0,4 +,16,0,1,64,0,3,8,0,1,32,0,32,72,253,0,18,1,0,54,152,254,8,0,2,2,0,6,1 +,0,1,128,8,16,1,32,2,0,0,128,8,0,4,8,0,16,128,0,1,68,2,72,0,1,10,0,0, +33,0,0,64,0,2,16,0,1,64,8,0,0,16,0,0,32,0,2,226,251,0,16,4,0,6,9,0,0, +65,32,0,17,164,0,0,4,128,0,0,16,0,0,2,0,9,4,0,0,8,0,6,152,248,0,56,32 +,0,16,184,255,0,14,64,0,0,8,0,0,1,32,0,0,4,128,0,0,16,0,0,2,0,18,128, +0,18,4,0,6,104,255,0,0,21,160,2,184,128,10,80,1,42,64,5,176,0,0,45, +128,2,80,0,0,10,64,1,40,0,0,5,160,0,0,20,192,2,0,15,22,128,2,88,0,0, +11,224,2,44,128,5,160,0,0,22,160,2,88,0,0,11,208,1,40,128,11,176,0,0, +22,160,2,112,248,160,9,52,1,146,213,4,154,64,19,104,2,100,160,97,149, +129,50,96,6,202,64,25,40,3,102,160,12,144,1,0,14,128,12,148,1,50,64,6 +,72,22,25,32,3,101,128,12,52,1,50,64,6,154,68,25,32,57,100,128,12,52, +1,160,252,255,255,0};static const unsigned char l557[]={79,231,255, +255,98,255,57,0,0,213,255,255,255,255,255,255,255,255,255,255,255,255 +,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,160,9,56,1,38,64,6,154,0,0,19,0,0,25,96,6 +,76,128,140,134,85,6,200,0,0,25,96,2,100,128,97,144,1,0,15,12,48,1,50 +,0,0,178,74,198,19,104,2,76,128,9,48,9,39,208,4,64,22,152,96,2,100, +128,12,56,1,152,255,0,0,21,160,2,84,0,0,11,80,1,42,128,10,80,0,0,26, +64,5,180,0,0,10,96,1,44,64,5,176,0,0,45,192,2,0,15,18,160,2,88,0,0,21 +,192,2,42,64,5,168,0,0,21,160,3,84,128,10,160,2,52,64,5,176,0,0,22, +160,2,80,252,0,11,64,0,5,2,0,31,64,0,21,152,249,0,74,152,255,0,4,128, +0,5,64,1,0,3,128,2,16,128,2,0,1,8,0,1,40,0,19,4,2,0,0,84,0,7,4,0,4,64 +,0,6,64,248,0,5,3,0,5,2,0,3,32,0,1,2,0,2,40,0,12,64,0,8,16,0,1,64,0,6 +,16,1,0,3,64,0,3,1,0,2,80,250,160,17,1,128,70,0,1,90,16,0,0,104,4,141 +,0,1,20,0,1,208,2,0,0,64,35,0,1,45,36,72,4,0,17,4,128,2,0,12,144,136, +152,64,0,0,8,129,64,0,1,180,16,224,254,0,0,1,0,1,4,2,0,0,16,0,1,64,32 +,8,4,0,0,32,0,1,192,64,0,1,2,1,0,0,12,0,22,4,0,12,192,0,1,8,0,3,4,0,0 +,48,0,0,96,252,128,1,0,1,6,4,0,0,24,16,0,0,96,64,12,8,0,0,44,0,1,128, +0,2,3,2,0,0,7,2,64,0,0,16,0,17,136,5,1,0,11,192,64,30,8,0,0,32,0,0,3, +0,1,48,0,0,8,253,128,1,2,0,0,32,0,1,128,0,2,2,64,0,1,20,18,0,0,64,132 +,0,1,16,0,1,73,0,0,8,0,0,2,0,17,130,34,0,12,192,8,2,0,0,16,68,66,1,0, +1,48,66,64,248,128,1,0,1,34,1,0,0,136,4,0,0,32,18,68,2,0,0,24,32,0,0, +192,8,1,0,0,145,0,1,12,0,0,80,0,0,8,0,16,128,8,3,0,12,192,4,0,1,16,1, +8,12,2,0,0,48,32,24,254,224,129,0,0,128,5,0,1,22,0,1,88,0,0,11,0,1,36 +,0,1,48,0,1,192,2,0,1,15,98,0,0,60,0,17,12,128,4,4,0,11,240,64,30,192 +,0,0,120,0,0,15,0,1,60,0,0,160,252,128,1,0,2,1,0,1,4,0,1,16,0,0,2,0,0 +,40,0,1,128,0,2,128,0,1,12,4,64,0,19,8,5,0,12,192,0,3,34,0,0,12,0,1, +48,0,0,48,249,128,145,0,12,16,9,0,0,32,2,1,0,3,136,0,0,5,0,0,18,0,16, +48,0,0,34,1,0,11,192,20,24,0,0,11,96,68,12,0,1,16,4,104,251,0,2,128, +32,8,0,0,2,64,0,0,40,8,5,1,0,0,4,0,1,208,130,0,0,64,64,8,0,1,32,0,0, +20,0,7,34,0,6,17,0,0,52,132,0,0,16,0,3,8,16,0,3,128,64,8,0,0,128,64,3 +,8,128,32,0,3,76,255,0,7,8,0,8,192,0,8,32,0,7,12,0,6,6,0,0,48,0,13,2, +0,2,8,3,32,0,1,4,0,2,120,253,0,3,2,0,1,8,200,0,0,32,0,0,4,0,1,44,0,1, +128,0,2,1,2,0,3,44,0,7,12,0,6,6,0,0,48,144,5,1,32,0,3,64,0,7,6,0,3,15 +,0,3,184,251,8,0,2,20,2,0,0,16,65,0,0,64,17,40,2,0,0,20,18,0,0,64,130 +,0,1,10,0,0,17,0,0,128,5,21,4,0,6,10,0,6,5,0,0,48,129,34,0,11,134,0,1 +,2,0,1,96,8,77,2,0,2,163,254,0,4,8,0,1,32,163,96,0,0,12,0,1,24,32,0,0 +,192,4,0,3,18,0,1,8,24,9,0,6,10,0,6,5,0,0,32,0,0,3,0,0,34,0,3,20,0,4, +68,0,1,24,0,1,66,0,1,4,0,2,65,252,0,2,128,7,0,1,30,192,3,120,16,15,2, +0,0,36,0,1,48,64,0,0,192,3,26,0,1,96,64,36,0,17,60,136,4,52,0,3,24,0, +4,128,3,2,0,0,30,196,0,0,56,32,15,0,3,104,255,4,0,2,2,0,1,8,0,0,3,96, +0,0,12,0,1,40,0,1,128,0,2,1,0,2,128,1,40,0,17,48,16,5,192,32,0,3,16,0 +,4,6,2,0,0,24,0,1,96,0,5,185,253,0,3,70,2,0,0,24,73,3,96,20,140,2,0,0 +,16,8,0,1,68,0,1,19,97,20,0,0,128,33,16,8,0,16,48,2,2,1,4,0,2,64,1,0, +4,7,0,1,24,0,0,80,112,32,12,8,0,2,32,254,32,4,0,0,128,16,4,32,2,17,0, +0,8,12,65,32,0,0,36,32,0,0,208,0,0,147,64,32,40,0,0,5,160,1,4,0,16,4, +4,136,4,208,0,0,138,64,3,40,0,0,13,160,128,52,194,0,2,2,0,1,8,129,32, +160,129,4,0,0,160,252,128,1,1,0,9,4,0,0,16,0,1,192,0,1,16,0,0,66,0,0, +8,128,1,0,17,128,0,1,2,196,0,1,16,3,64,0,0,12,0,1,32,0,0,2,2,0,3,32,0 +,1,132,1,0,1,248,250,0,1,1,0,0,2,48,0,0,8,0,1,32,0,0,4,0,1,44,0,1,128 +,0,0,24,4,1,88,0,0,11,130,1,44,0,15,96,0,0,12,128,5,192,0,0,8,4,3,88, +0,0,12,128,1,48,0,1,2,0,5,15,2,65,48,0,0,80,253,4,16,0,1,20,20,0,0, +144,2,0,0,64,130,72,16,144,20,0,1,64,128,16,0,0,18,44,0,0,5,128,1,20, +4,0,14,32,0,0,132,144,2,192,0,0,144,0,0,3,40,0,0,12,128,17,33,16,22,0 +,4,96,66,77,128,1,48,0,0,218,249,140,145,0,2,192,128,0,3,32,32,0,0,8, +41,1,0,0,192,8,153,4,16,52,66,134,1,132,24,9,0,15,4,0,1,5,1,4,152,32, +96,48,68,0,0,144,32,16,64,132,0,1,64,16,0,0,64,68,0,0,132,1,1,1,160, +249,224,0,1,128,7,244,0,0,30,16,0,0,120,0,0,15,104,0,0,36,16,0,0,48,0 +,0,30,192,3,64,0,0,8,96,0,0,36,0,15,100,0,0,13,136,4,48,128,30,192,0, +0,64,0,0,3,96,1,60,128,3,0,1,6,0,1,56,0,0,15,224,1,12,16,216,255,8,0, +2,2,192,0,0,8,0,1,32,64,4,0,1,33,0,1,128,0,0,24,4,1,64,0,0,10,128,1, +40,0,15,128,65,0,1,4,0,1,24,8,0,0,64,0,0,12,132,65,48,0,0,6,0,1,24,8, +0,0,96,0,1,128,1,0,1,161,252,128,8,2,0,0,22,200,0,0,88,32,0,0,96,4, +140,136,1,32,0,1,32,2,153,0,0,35,33,17,36,130,81,144,8,0,14,133,17, +160,64,4,0,1,24,1,0,0,32,17,140,128,9,176,32,38,4,0,0,152,0,1,96,128, +12,130,1,2,32,152,253,32,0,0,52,144,130,0,1,74,0,1,8,129,33,144,1,132 +,128,70,212,128,0,0,64,9,8,0,0,1,160,5,36,9,0,15,4,4,0,1,208,64,26,64 +,0,0,8,0,0,5,160,133,52,0,1,16,0,3,104,64,32,32,0,0,52,66,56,253,0,7, +8,0,5,1,32,6,192,0,3,1,0,1,128,1,17,0,15,2,128,0,2,192,0,0,24,0,3,8, +128,1,0,3,64,0,2,96,0,1,4,0,0,32,0,0,24,250,0,1,48,16,2,0,1,8,0,1,32, +0,0,4,224,1,48,16,4,128,64,0,1,1,88,0,0,11,226,0,0,44,0,15,226,65,0,2 +,192,0,2,128,88,0,0,11,128,1,48,0,1,64,0,5,15,2,128,48,0,0,168,253,8, +4,50,2,4,1,0,0,16,4,0,0,64,68,72,40,132,0,0,2,2,68,2,0,1,138,40,0,0,5 +,32,73,20,0,15,160,5,0,2,64,130,0,2,40,0,0,5,128,132,176,16,0,0,128, +130,0,2,32,132,13,0,0,8,0,0,5,163,253,0,0,32,128,0,0,6,0,1,24,0,2,130 +,128,1,0,0,160,0,0,22,200,4,0,1,3,48,66,134,129,9,40,6,0,14,16,4,0,2, +128,36,0,0,8,136,48,68,6,132,137,176,0,2,72,0,2,96,65,0,0,4,16,176,64 +,9,249,96,0,0,44,144,7,1,0,0,30,4,0,0,120,0,0,15,192,1,12,136,1,48,64 +,0,0,192,131,64,0,0,8,224,65,36,0,15,240,1,13,8,0,0,112,0,0,6,192,0,0 +,64,0,0,8,96,1,60,8,0,0,240,0,3,120,0,0,15,96,0,0,61,0,0,128,253,4, +128,48,16,6,0,1,24,0,1,32,0,0,4,32,0,0,32,0,0,4,128,0,2,3,64,0,0,10, +128,1,32,0,17,48,8,0,0,128,0,2,131,64,0,0,8,0,0,1,48,32,0,0,64,0,3,64 +,0,3,49,16,209,253,128,17,32,0,0,22,1,0,0,88,4,0,0,96,66,140,176,1,48 +,33,17,4,68,0,1,131,32,20,132,2,33,32,0,15,129,69,48,1,0,0,64,20,64, +16,16,32,20,132,2,17,50,1,0,0,192,136,0,2,112,8,44,130,17,48,0,0,72, +253,0,1,36,129,22,16,2,154,8,0,0,104,132,141,16,0,0,4,145,6,16,16,2, +64,3,12,0,0,1,160,0,0,4,0,15,16,8,20,128,2,16,0,0,26,67,3,8,0,0,1,160 +,17,52,194,0,0,82,0,0,1,64,3,104,36,32,32,8,0,1,32,253,0,2,32,6,2,64, +24,0,1,96,0,0,12,0,3,6,66,0,2,3,0,3,1,0,16,16,128,32,0,0,4,0,1,24,0,0 +,3,0,2,128,1,33,0,0,2,128,0,2,3,96,0,1,4,64,0,1,64,250,0,3,4,48,128, +16,0,1,64,64,8,8,0,1,16,4,0,3,2,88,0,0,11,98,1,48,0,15,97,0,0,44,160, +5,0,1,16,0,1,88,0,0,11,0,0,128,48,0,1,64,0,2,3,0,0,16,15,4,0,2,80,253 +,4,0,1,18,66,24,8,136,8,0,0,32,1,36,0,1,32,0,0,66,2,130,0,1,1,42,0,0, +5,160,64,48,0,8,1,0,5,32,0,0,20,130,162,0,1,88,32,0,0,40,0,0,5,128,5, +0,0,33,22,132,0,2,3,32,0,0,45,0,0,40,0,1,145,249,4,0,1,8,198,0,0,24, +24,3,0,0,96,66,76,0,2,2,198,0,0,4,65,4,99,48,66,134,193,4,0,0,1,0,14, +136,69,24,8,3,0,0,2,24,8,19,48,68,6,132,4,49,65,68,64,0,3,98,2,0,0,4, +8,0,1,3,255,0,1,28,128,1,48,0,0,6,0,1,24,0,0,3,8,0,0,28,136,1,48,0,0, +6,192,0,0,64,0,0,8,0,0,65,12,16,0,6,64,1,0,5,224,1,36,128,4,48,64,30, +192,3,66,0,0,8,224,1,60,128,3,178,0,1,192,0,0,120,32,15,96,0,0,1,0,0, +232,253,4,0,1,16,4,0,1,16,0,1,64,32,8,0,1,16,0,0,4,0,0,64,24,8,2,64, +16,10,66,65,0,0,16,0,14,128,1,40,8,5,192,128,24,0,0,3,64,16,8,130,0,0 +,48,0,0,6,66,0,2,3,64,0,1,2,0,2,58,253,0,1,16,1,1,136,64,4,32,0,0,16, +2,34,8,0,0,16,5,64,36,2,152,128,0,0,36,4,132,128,16,0,0,2,0,6,128,0,6 +,128,1,16,2,2,192,0,0,88,8,67,32,4,132,0,0,8,49,34,7,128,0,2,83,112, +130,44,0,0,145,0,1,48,254,0,1,132,128,22,212,0,0,26,81,0,0,104,36,141 +,164,128,4,128,70,20,2,66,80,67,8,0,0,137,33,0,9,128,0,7,8,4,128,4,64 +,2,26,0,0,9,8,0,0,1,32,16,52,194,32,4,2,27,64,0,0,8,0,0,32,32,8,6,33, +96,251,0,2,32,6,192,0,0,24,0,1,96,0,0,12,0,3,6,64,128,0,1,3,0,1,4,0, +10,128,0,7,128,0,1,2,128,32,0,1,130,0,4,33,0,0,2,0,1,24,8,0,0,32,64,0 +,0,4,0,2,56,251,0,3,4,240,0,0,16,192,0,0,64,32,8,228,0,2,4,0,0,64,0,1 +,2,90,0,0,11,98,1,0,9,2,0,5,96,0,0,44,160,5,176,32,24,192,2,88,0,0,11 +,0,0,128,48,0,1,48,0,0,24,16,0,2,15,96,0,0,12,0,0,240,251,8,0,1,10,18 +,212,0,0,136,66,0,0,32,1,36,32,40,0,1,2,4,2,16,17,9,40,0,0,5,160,64,0 +,9,4,0,5,32,0,0,20,130,162,80,8,0,0,66,1,44,0,0,5,128,8,0,0,32,22,24, +0,0,24,0,1,96,129,13,36,0,0,182,32,251,253,0,2,9,22,194,0,0,88,8,11, +98,130,140,1,132,0,0,9,38,4,24,0,0,3,11,49,66,10,192,4,0,16,128,81,24 +,8,3,96,0,0,152,128,1,48,68,6,4,8,176,64,132,192,128,24,8,16,64,1,0,0 +,4,136,144,0,0,81,251,0,1,28,128,1,224,0,0,6,192,3,24,0,0,3,64,1,12, +128,1,48,0,0,14,192,0,0,64,0,0,8,0,0,65,0,8,64,0,6,224,1,36,128,4,128 +,0,0,30,4,2,64,0,0,8,96,64,60,128,3,240,0,0,30,192,0,0,57,32,15,96,0, +0,44,16,176,255,4,0,0,16,8,4,194,0,0,16,8,3,64,0,0,8,128,1,48,0,0,4,2 +,0,0,8,8,2,65,16,10,64,65,0,9,4,0,5,128,1,40,8,3,160,0,1,132,2,64,16, +8,130,1,49,32,6,192,0,1,16,3,98,0,2,64,48,8,129,252,0,1,48,0,1,208,0, +2,3,0,0,66,128,144,129,176,32,33,0,0,8,9,0,1,32,1,8,128,4,0,9,4,0,5, +128,1,144,0,0,4,64,0,0,152,0,0,1,32,1,36,0,0,8,48,2,38,196,0,0,72,0,0 +,3,96,64,140,2,1,160,0,0,88,252,176,5,54,144,22,0,1,154,72,3,104,2,13 +,4,0,0,4,128,6,208,68,2,72,3,76,66,1,32,0,9,64,0,7,8,36,8,0,1,2,2,0,0 +,8,72,68,1,160,17,52,194,64,20,0,0,26,64,0,0,104,0,0,64,32,8,5,0,0,64 +,253,128,1,48,0,0,6,2,0,0,24,0,0,3,96,32,12,0,3,6,194,0,0,24,0,0,3,32 +,0,21,128,16,0,2,32,0,1,128,32,0,3,33,0,0,2,0,1,24,0,1,96,0,1,132,0,0 +,16,16,120,254,128,1,0,0,16,4,0,1,16,192,3,64,0,0,8,0,3,4,128,128,0,0 +,16,2,88,0,1,100,1,0,9,2,0,5,96,0,0,44,0,1,176,32,0,0,192,2,88,0,0,11 +,128,128,48,0,1,192,0,3,96,32,3,0,2,32,208,254,140,41,48,2,66,8,0,0, +136,72,3,32,65,68,4,0,1,9,66,66,0,0,64,0,0,1,42,0,0,44,160,64,0,16,36 +,0,0,20,0,1,80,8,0,0,64,1,44,0,0,5,0,0,4,0,0,18,6,196,0,3,96,2,1,0,1, +1,0,0,81,254,4,9,16,64,6,0,1,88,0,0,3,96,66,76,0,1,128,0,0,38,200,8, +89,0,0,11,80,0,1,192,4,0,16,128,129,40,33,0,0,96,0,0,128,128,1,80,0,0 +,6,132,9,48,0,0,68,0,0,130,24,1,0,0,96,1,140,0,0,8,0,0,16,131,249,96, +0,0,61,128,1,2,0,0,6,144,3,24,0,0,3,8,0,0,12,136,1,48,0,0,14,200,0,0, +66,0,0,3,2,65,0,16,224,1,36,0,1,128,0,0,6,4,2,64,0,0,8,224,129,60,144 +,3,50,0,0,30,208,128,24,64,15,100,128,12,0,0,8,254,4,128,16,32,4,2,0, +0,16,8,3,64,32,8,0,3,4,128,0,2,2,65,0,0,12,68,65,0,16,128,1,32,0,1, +160,0,0,24,128,2,64,0,0,8,130,1,48,16,6,2,0,0,24,0,0,3,0,0,32,12,0,3, +114,254,0,0,17,0,0,1,33,0,1,132,0,0,3,16,2,34,8,0,0,48,8,32,36,2,9, +137,16,64,0,0,140,128,0,17,128,1,32,0,1,64,0,0,24,8,1,64,0,0,4,0,0,9, +178,0,0,7,0,0,64,24,17,19,2,4,12,64,40,8,65,128,254,0,1,52,145,22,20, +136,26,81,3,104,0,0,77,40,0,0,36,146,0,0,208,132,2,72,67,8,4,33,32,5, +4,0,16,4,4,128,6,132,2,2,0,0,10,8,0,0,9,36,4,52,194,0,0,24,0,0,10,66, +3,72,1,64,32,16,4,34,168,254,0,1,48,0,0,6,0,1,24,0,0,3,96,32,12,128,1 +,0,2,192,0,2,3,0,0,16,0,0,130,64,0,16,2,128,0,1,6,64,32,0,0,16,129,0, +1,4,0,0,128,32,0,0,2,0,1,16,0,2,64,0,0,132,0,0,17,0,0,240,254,0,1,16, +0,0,4,48,128,16,0,0,3,64,0,0,8,0,1,48,160,1,128,0,0,24,16,2,2,64,0,0, +98,1,0,16,232,65,48,0,0,2,176,32,6,192,2,0,1,11,0,0,64,48,32,0,0,48,0 +,0,8,0,0,131,64,64,3,0,3,64,255,8,0,0,176,32,18,20,8,136,2,16,34,64,4 +,8,144,160,128,0,0,64,20,64,0,0,9,0,0,4,32,160,64,0,0,8,4,0,5,16,2,0, +5,168,1,48,0,0,38,88,8,26,66,1,4,17,5,0,3,70,18,0,0,16,0,1,32,4,1,0,0 +,40,0,0,65,122,253,0,1,32,0,0,70,0,0,24,24,1,139,96,130,140,1,8,177,8 +,70,200,4,80,8,11,4,20,64,66,1,0,0,1,2,0,5,16,1,0,5,8,4,0,0,16,38,97, +0,0,136,128,1,0,0,18,10,0,0,68,48,6,132,192,34,8,0,0,35,32,33,140,2,8 +,0,1,120,255,0,1,60,160,1,180,0,0,6,208,3,24,0,0,3,96,0,0,60,128,7,48 +,64,6,192,0,0,24,0,0,3,0,0,1,12,8,7,0,5,144,3,0,5,232,1,13,128,7,128, +0,0,22,4,2,24,0,0,8,224,0,0,60,128,3,240,0,0,22,192,131,120,0,0,15,96 +,0,0,13,32,112,248,4,0,0,32,0,0,4,4,0,0,16,16,0,0,66,0,0,8,0,1,49,0,0 +,6,128,0,0,16,0,0,2,2,16,0,0,64,1,0,0,128,5,0,5,208,2,0,5,8,0,2,6,97, +0,0,24,132,1,0,1,8,128,64,48,0,0,6,192,0,0,8,0,1,96,0,0,12,0,2,16,81, +250,0,1,32,16,64,0,0,64,0,0,1,16,0,0,66,128,144,1,48,10,6,0,0,68,152, +2,32,64,1,136,2,1,176,8,4,0,5,8,2,0,5,132,81,0,0,5,22,128,0,0,144,0,0 +,2,96,20,8,128,17,48,5,38,212,0,0,16,0,0,35,98,18,12,0,0,144,0,0,1, +232,248,0,7,128,0,4,16,2,0,13,4,0,6,2,0,35,20,252,32,0,0,4,128,0,2,2, +64,0,0,8,0,0,1,0,1,4,128,0,0,16,0,0,2,64,0,0,8,0,0,1,32,0,0,4,0,7,2,0 +,6,33,0,0,4,128,0,0,16,0,0,2,64,0,0,8,0,0,1,32,0,0,4,128,0,2,2,64,0,0 +,8,0,0,1,32,0,0,4,0,0,184,255,0,74,152,255,36,0,0,4,128,0,0,16,0,0,3, +64,0,0,8,0,0,1,0,0,32,4,128,0,0,16,0,0,2,64,0,0,8,0,0,1,32,0,0,4,0,15 +,32,0,0,4,128,0,0,16,0,0,2,64,0,0,8,0,0,1,32,0,0,4,128,0,0,16,0,0,3, +64,0,0,8,0,0,1,32,0,0,4,0,0,219,249,12,0,3,32,36,0,1,32,4,0,5,1,0,5,8 +,0,0,1,4,0,22,16,0,1,16,0,0,12,32,0,4,32,0,10,9,252,32,0,0,4,128,0,2, +2,0,1,8,0,0,1,0,0,128,0,0,128,0,0,16,0,0,2,64,0,4,128,0,26,2,0,1,34,0 +,0,4,128,0,3,64,0,0,8,0,5,56,250,8,0,14,16,0,9,128,0,21,2,0,3,1,32,0, +8,4,0,6,16,96,248,32,0,0,4,128,0,0,16,0,0,2,64,32,9,0,0,1,0,0,8,6,129 +,0,0,16,0,0,2,64,0,1,32,64,8,16,4,5,0,14,32,8,5,160,64,16,132,2,80,32 +,0,0,4,64,40,0,0,4,128,0,0,16,0,0,130,64,0,0,8,0,0,65,40,8,5,2,52,249 +,0,0,64,0,44,8,0,5,128,0,6,8,0,9,128,0,0,80,251,0,1,8,0,49,4,0,13,128 +,8,0,4,216,255,0,8,64,0,2,32,0,0,33,0,2,64,0,2,1,0,36,16,0,1,32,0,3, +16,4,0,3,184,255,0,4,9,16,32,0,10,98,0,26,32,0,1,2,0,0,16,0,4,128,0,3 +,32,0,0,64,0,0,1,9,0,3,2,0,0,148,249,0,1,32,0,35,1,0,1,4,0,16,16,0,12 +,64,216,252,0,59,64,0,6,32,0,4,4,137,252,128,64,0,2,64,128,0,0,16,0,0 +,2,0,3,4,8,0,5,32,0,0,4,128,0,0,9,32,0,16,4,0,0,2,0,0,32,0,2,64,0,5,4 +,1,0,1,132,0,0,8,0,0,4,2,0,0,16,8,144,251,0,2,32,4,16,0,0,2,0,3,2,0,4 +,65,0,0,2,0,2,16,1,0,1,16,0,17,17,0,1,1,0,1,8,2,32,0,1,128,0,4,32,0,0 +,80,128,0,2,40,0,1,32,152,248,64,168,0,0,160,0,0,48,64,2,8,0,0,1,0,0, +1,0,1,8,16,0,0,20,0,0,2,0,1,16,64,3,64,168,14,16,0,16,13,0,0,1,4,64,0 +,0,80,0,0,24,0,1,32,0,2,1,2,128,0,0,216,0,0,18,0,0,2,44,0,0,8,48,224, +255,128,65,0,1,132,0,1,16,4,128,0,0,8,0,0,129,0,1,6,36,0,1,8,0,0,35, +162,2,36,128,254,144,8,0,14,160,82,0,2,16,36,8,2,163,98,64,8,0,0,3,0, +0,128,40,0,0,36,152,5,53,66,88,40,0,0,1,48,14,232,249,32,0,0,1,0,4,16 +,128,0,2,128,0,5,16,64,0,0,32,0,0,8,128,64,8,16,0,14,128,64,0,3,32,16 +,64,0,0,10,0,7,16,2,4,1,0,0,8,0,2,4,32,168,253,128,0,2,2,4,0,0,8,0,2, +16,0,0,2,0,1,8,2,0,3,1,0,4,1,0,23,16,1,32,0,0,4,128,0,5,4,0,1,8,64,1, +32,0,0,16,8,84,254,0,3,8,2,0,1,10,0,0,128,32,16,4,0,7,4,4,0,35,68,0,1 +,8,0,10,192,249,0,3,128,4,0,1,18,0,0,128,64,0,0,9,0,7,64,2,0,0,4,0,26 +,8,0,7,128,4,0,0,4,0,8,24,255,0,12,64,2,0,4,2,0,23,64,0,12,32,0,0,32, +0,4,72,0,3,4,4,0,0,48,255,64,0,4,2,0,2,1,0,1,32,0,32,4,0,11,128,0,1, +66,0,4,64,0,0,128,0,2,176,252,0,3,4,4,0,0,16,16,0,0,8,64,8,8,0,3,2,0, +2,2,0,2,128,0,24,4,0,9,2,0,3,8,64,16,0,3,152,248,0,1,1,128,8,0,1,80,4 +,0,0,8,16,17,0,5,144,0,1,130,4,0,35,32,0,1,1,0,7,32,0,1,88,248,0,0,1, +0,14,4,128,0,19,8,0,2,8,0,17,4,0,1,4,8,0,7,208,254,0,3,4,0,0,128,8,0, +9,192,0,7,64,0,21,16,0,12,128,0,0,64,0,5,200,0,0,152,254,0,5,1,0,8,4, +0,2,12,4,0,5,4,0,20,4,0,6,8,128,32,0,2,16,0,2,128,0,5,240,251,0,6,2,0 +,5,32,0,2,16,0,30,128,0,10,1,0,9,36,0,0,48,249,0,20,2,0,37,1,64,0,5, +34,0,5,200,250,0,59,4,16,0,6,128,0,4,72,250,2,0,73,184,253,0,3,1,0,1, +4,0,1,16,0,0,2,0,6,16,128,0,5,4,0,31,64,8,0,0,1,0,9,232,249,0,4,16,0, +45,2,0,4,128,0,11,4,0,2,208,252,0,23,8,0,30,1,0,1,1,0,14,144,255,0,2, +8,0,21,32,0,25,4,0,13,16,0,5,208,252,0,9,2,0,49,32,0,11,96,184,249,0, +4,8,0,1,32,0,1,128,0,0,16,0,3,1,0,19,34,0,1,8,32,0,24,128,0,1,64,0,1, +120,253,0,12,16,0,7,4,0,2,4,0,18,128,0,1,2,0,0,64,0,5,4,0,0,2,128,0,6 +,1,0,0,4,128,16,0,0,104,254,0,1,1,0,9,2,1,0,2,8,0,29,16,32,32,32,0,1, +8,0,1,64,68,0,5,4,128,0,4,16,16,80,248,0,4,128,0,7,130,0,7,8,0,3,16,0 +,18,128,0,7,4,0,5,2,0,1,8,0,0,16,0,4,52,252,0,1,64,0,15,2,0,17,128,0, +29,8,0,1,1,0,1,8,248,0,10,40,0,4,128,2,0,0,4,64,0,19,8,0,7,32,0,6,128 +,0,4,32,0,4,32,0,1,128,152,255,0,2,32,0,0,16,0,4,64,0,0,40,0,3,132,0, +0,2,0,1,32,16,0,0,130,0,0,16,0,17,16,0,1,17,32,8,2,1,8,8,0,0,64,0,0,1 +,0,1,4,128,8,0,4,2,0,0,16,0,0,112,254,8,0,0,8,0,2,32,2,0,9,64,0,4,64, +0,3,16,0,14,128,0,0,1,8,4,0,2,16,128,32,16,4,130,0,0,4,8,2,0,0,32,2, +132,128,8,0,1,8,0,0,1,128,172,251,128,3,4,16,0,0,32,148,2,0,2,32,0,0, +68,0,0,160,5,160,50,0,0,4,0,1,80,97,4,68,40,8,32,0,12,16,0,0,32,0,0,9 +,160,160,34,64,12,152,0,0,26,96,1,104,128,4,160,160,2,212,6,80,80,10, +0,1,12,40,9,0,0,40,252,0,0,48,32,0,0,66,129,16,8,64,0,0,32,0,0,12,128 +,65,8,1,166,1,0,2,1,64,80,36,2,72,128,8,0,12,64,0,0,128,68,128,12,132 +,0,0,4,0,0,18,14,192,24,4,1,52,32,132,24,64,24,210,7,241,32,0,0,12,1, +32,0,0,8,152,253,0,3,1,1,0,0,2,0,1,8,0,0,8,32,64,0,1,2,4,0,1,128,0,1, +16,8,2,64,0,0,16,0,14,32,0,0,1,32,0,6,64,8,0,4,16,0,1,16,1,33,0,0,8,0 +,2,8,48,248,0,0,64,4,0,1,64,128,0,4,1,128,0,2,1,1,0,3,8,0,18,32,0,3,8 +,4,2,0,1,16,1,32,16,0,0,2,64,16,32,0,1,32,8,4,128,0,1,1,4,64,0,1,96, +249,16,0,1,160,0,2,2,0,2,8,0,0,1,0,6,64,0,16,16,128,0,1,16,128,0,15, +136,0,6,32,0,4,140,249,2,0,1,16,0,8,2,0,0,1,0,1,1,0,5,1,0,26,32,0,19, +144,32,253,0,1,2,0,11,136,0,3,16,0,6,32,0,18,64,0,3,96,0,13,64,0,5,80 +,254,40,0,1,8,0,9,5,8,0,1,4,0,26,1,0,3,2,0,5,32,0,3,16,0,0,2,0,1,16,0 +,0,8,0,1,1,0,0,58,248,2,0,0,128,0,0,128,0,4,16,0,1,128,0,2,1,0,0,16,0 +,21,2,0,2,1,0,17,16,0,3,8,0,0,128,8,0,0,128,255,0,0,32,16,0,11,16,0,3 +,2,0,5,1,0,46,152,253,0,3,18,0,1,72,0,0,2,32,17,36,0,5,128,0,1,9,2,0, +0,1,0,21,16,0,3,8,0,5,128,0,0,2,0,1,1,0,7,32,176,255,8,0,0,32,0,1,2,0 +,1,8,0,3,4,0,8,1,0,1,128,0,12,128,0,2,128,0,8,1,32,0,7,32,0,3,32,0,4, +24,248,0,1,8,0,5,8,0,1,1,0,2,128,0,0,80,0,2,64,128,0,32,2,0,0,1,0,2, +128,128,0,0,2,2,0,0,1,2,64,0,0,32,0,0,56,253,128,64,0,8,128,0,2,4,24, +0,0,8,0,0,1,0,24,64,16,4,0,2,8,0,1,2,0,17,8,24,253,0,3,1,0,0,2,4,0,1, +64,0,0,2,0,6,1,128,0,2,4,0,35,1,4,3,0,9,24,253,0,0,6,0,14,24,0,0,1,0, +22,16,0,16,12,16,0,4,64,0,5,128,249,32,1,0,8,4,0,0,160,1,0,2,8,0,5,1, +32,0,0,4,66,0,14,32,0,0,21,0,1,16,0,0,130,72,35,1,0,1,32,0,0,36,144, +198,80,68,0,0,64,11,0,6,104,251,128,64,0,5,8,0,1,64,0,0,128,1,0,30,1, +32,0,5,2,0,6,6,128,0,2,3,1,0,5,16,253,224,0,5,6,0,1,24,0,4,128,7,2,0, +5,3,0,1,48,0,15,128,65,44,0,1,48,0,0,24,0,0,3,1,0,1,96,0,0,32,32,6, +192,0,2,2,0,6,224,251,32,1,0,4,2,0,1,8,0,4,128,70,0,6,1,0,1,32,4,0,14 +,128,1,20,0,1,16,0,0,64,32,32,0,2,32,0,0,16,1,38,132,64,0,1,1,4,0,5,8 +,252,0,0,1,0,4,152,8,0,0,96,20,0,1,80,0,1,16,2,0,5,140,2,8,2,1,0,14, +128,5,153,16,0,0,192,8,16,4,161,0,2,128,17,144,0,0,20,0,0,36,0,1,3,0, +6,48,253,160,0,5,30,0,1,120,0,1,96,0,1,128,7,0,6,15,96,0,0,12,8,0,14, +224,1,32,0,1,224,32,6,192,2,0,2,224,65,60,136,3,50,0,1,192,0,0,2,0,5, +96,253,128,0,5,24,0,1,96,0,2,64,0,2,1,0,5,12,128,129,0,16,128,1,32,32 +,0,0,192,0,0,16,0,4,128,1,48,0,0,6,2,0,2,2,0,6,48,254,32,1,0,4,24,0,1 +,96,0,2,8,0,1,22,0,6,12,128,5,0,0,66,0,14,128,65,16,0,1,192,0,0,24,17 +,136,0,2,128,1,48,8,65,192,68,0,0,128,8,2,0,5,128,249,32,0,1,128,64,1 +,0,0,130,8,0,1,4,0,0,32,0,2,64,0,1,2,64,128,0,2,160,16,4,0,7,48,0,6, +184,145,4,0,1,16,0,0,130,72,0,0,106,128,77,8,136,4,130,38,216,0,0,2, +64,19,104,36,129,168,1,52,66,244,253,0,10,64,0,5,4,0,7,1,1,0,7,12,0,6 +,6,1,0,4,24,0,0,2,96,0,0,12,0,2,16,6,192,0,2,3,66,0,0,8,128,1,32,0,0, +16,248,96,1,0,0,128,1,0,1,8,0,1,24,0,1,96,0,1,128,1,0,1,6,0,0,129,0,2 +,128,0,0,1,0,7,12,0,6,134,129,44,0,1,48,0,2,131,96,0,0,8,100,0,0,16,0 +,0,6,192,0,0,6,0,0,2,97,0,0,12,130,65,48,16,104,254,168,0,1,128,0,0,4 +,0,0,64,4,0,0,8,0,1,32,0,1,128,0,2,2,0,4,128,1,0,0,64,0,6,10,0,6,5,16 +,20,0,1,16,0,0,64,32,35,32,64,68,32,0,0,32,33,6,196,72,2,0,0,9,0,0, +132,12,128,5,0,0,2,51,251,192,0,6,2,0,0,96,0,1,128,81,0,1,38,0,1,24,2 +,8,0,2,128,0,0,130,0,7,10,0,6,133,72,152,16,0,0,192,36,88,4,35,100,1, +12,144,1,1,0,0,68,200,24,88,4,11,34,20,76,128,73,16,0,0,49,253,32,1,0 +,0,128,1,4,0,0,6,0,1,120,32,0,0,224,1,0,0,128,7,1,0,0,30,192,128,0,2, +224,1,60,16,0,14,96,1,32,0,1,224,0,0,14,192,3,88,64,3,224,1,60,144,3, +240,0,0,30,192,0,0,88,0,0,15,226,1,44,16,72,253,4,1,0,7,96,0,1,128,1, +0,1,6,0,1,24,0,0,128,0,2,128,1,48,0,17,32,0,1,192,0,2,3,64,64,8,132,1 +,16,0,0,6,192,0,0,24,0,0,2,0,0,32,12,136,1,0,0,8,25,249,160,0,1,128,4 +,2,0,0,128,4,0,0,96,0,1,160,1,0,1,6,0,1,24,0,0,8,0,2,128,9,49,4,0,6, +16,0,6,8,68,144,16,0,0,192,0,0,8,9,147,64,1,34,160,1,48,65,16,8,130, +26,0,0,64,0,0,4,76,0,0,80,0,0,2,240,249,48,0,1,128,32,17,0,3,2,4,13,0 +,1,52,0,0,64,0,1,130,8,0,0,8,0,1,160,4,4,0,15,160,49,4,128,22,212,0,0 +,26,64,11,104,34,77,32,8,53,128,68,82,68,0,2,8,64,0,0,160,9,20,0,0, +152,251,0,7,8,0,1,64,12,0,1,48,0,1,4,0,3,1,0,2,128,0,8,2,0,6,129,1,0, +1,6,192,0,0,24,0,0,3,97,0,0,12,132,0,0,48,0,1,128,0,3,64,0,1,128,1,33 +,32,40,250,96,1,0,0,128,1,0,1,6,192,0,0,24,0,0,12,0,1,48,128,1,0,2, +192,0,0,24,0,1,128,129,0,0,8,0,6,16,0,6,8,1,44,0,0,6,48,0,0,24,0,0,2, +0,1,8,0,1,48,0,0,6,192,0,3,96,0,1,128,1,0,1,176,251,172,0,1,128,0,0,4 +,0,0,2,64,0,0,8,0,0,12,0,1,48,128,0,3,73,0,0,8,130,0,0,128,17,128,0, +15,128,136,20,0,0,38,20,0,0,24,0,0,9,98,130,132,136,1,2,5,68,132,64,0 +,2,96,128,0,0,128,65,0,0,16,18,248,196,0,4,4,25,0,0,19,96,4,64,2,0,1, +2,134,0,1,24,32,3,0,0,1,0,0,128,32,0,0,8,0,6,8,0,6,132,17,154,16,0,0, +4,0,0,24,8,99,32,33,12,0,0,5,48,34,16,2,40,0,2,96,2,0,0,128,65,16,33, +208,253,32,1,0,0,128,5,52,0,0,30,196,3,122,16,3,0,1,12,160,7,0,1,30, +192,3,26,32,0,0,96,1,12,0,15,96,0,0,32,128,3,32,32,30,192,0,0,120,0,0 +,3,232,0,0,61,128,1,48,0,3,120,16,0,0,224,1,60,0,0,240,249,4,1,0,2, +192,0,0,24,0,0,3,96,0,0,12,0,3,6,0,1,24,16,3,0,0,16,0,0,128,1,0,0,8,0 +,6,18,0,6,9,1,33,32,2,192,32,0,1,2,34,0,0,8,128,1,0,1,2,4,128,0,2,96, +0,2,65,0,0,16,129,251,160,0,1,128,0,0,194,66,24,64,3,96,0,0,76,1,0,2, +6,0,1,72,0,0,3,104,2,0,0,128,145,48,0,7,8,0,6,68,16,16,2,38,200,0,1, +130,32,0,0,10,0,0,196,9,129,64,68,192,0,3,96,16,0,0,128,1,48,0,0,64, +254,32,1,0,5,64,8,0,0,128,1,0,3,64,0,1,154,64,8,8,0,0,13,0,1,132,0,7, +2,0,6,161,5,4,128,6,208,0,0,18,65,11,10,34,129,32,8,52,18,0,0,208,8, +66,80,32,40,68,133,164,0,0,4,32,184,251,128,0,4,64,0,0,8,0,0,1,0,6,4, +0,0,24,8,0,0,1,0,0,12,0,1,32,8,0,6,2,0,6,129,129,0,5,16,3,0,2,136,128 +,32,0,1,192,32,8,0,1,65,0,0,8,0,0,1,32,0,0,96,248,96,1,0,2,48,0,0,6,0 +,1,120,16,0,0,2,0,1,128,1,0,1,16,0,0,1,24,16,0,2,12,0,7,8,0,6,4,129, +44,0,0,6,48,0,0,24,0,0,2,0,1,4,8,128,48,16,0,0,192,0,2,1,0,1,12,96,1, +48,8,48,255,172,0,3,16,0,0,2,0,1,106,4,0,3,128,0,2,8,16,0,0,12,1,0,2, +36,32,0,6,12,0,6,134,4,20,0,0,22,18,130,16,4,81,32,33,40,128,5,0,0,2, +0,0,192,0,0,25,32,10,4,32,40,168,0,0,48,0,0,114,250,196,0,3,192,8,88, +0,0,163,0,0,33,32,2,0,2,22,0,1,152,32,8,1,16,128,4,0,0,16,1,0,14,128, +5,152,16,22,200,2,24,32,11,1,4,128,8,1,16,10,0,0,192,132,80,0,1,32,1, +64,194,0,0,177,0,0,160,254,32,1,0,2,240,128,30,196,3,120,0,0,3,0,2, +128,7,1,0,0,6,192,0,0,24,0,0,3,0,1,8,8,0,6,34,0,6,113,0,0,33,128,7, +240,64,30,192,0,0,24,16,15,224,128,44,0,1,240,0,0,14,208,3,121,32,3,0 +,0,1,60,8,96,250,132,0,3,192,0,0,24,0,0,131,0,1,12,2,0,2,6,0,1,16,16, +0,5,52,16,2,0,6,1,0,6,1,32,0,0,6,192,0,0,24,0,0,2,96,64,4,132,1,0,0,8 +,0,0,192,0,0,24,0,0,1,0,0,16,0,0,4,1,48,0,0,97,253,32,1,0,2,192,0,0, +24,0,0,9,96,17,64,0,3,6,0,1,68,0,0,128,104,64,128,16,0,0,176,128,0,6, +64,0,7,16,17,64,6,8,36,152,4,32,2,4,12,128,1,1,2,0,0,128,4,157,16,83, +96,4,140,128,80,48,8,240,249,32,64,128,160,0,3,64,3,0,0,128,1,0,4,8, +16,90,0,1,8,20,0,2,52,0,0,4,0,5,18,2,0,5,169,49,4,128,0,0,16,0,0,2,64 +,11,104,34,45,168,1,52,65,0,0,208,64,130,96,16,108,33,13,36,0,0,180,0 +,0,88,250,0,5,64,0,0,8,3,0,9,24,16,0,0,1,0,3,48,0,7,32,0,6,136,1,0,6, +3,1,0,0,12,128,1,48,0,1,192,0,0,8,0,1,96,0,0,12,0,1,48,16,216,251,224 +,0,0,13,128,1,48,0,0,6,192,3,120,16,0,0,2,0,1,128,7,49,0,0,16,192,0,0 +,56,16,0,2,48,0,0,1,0,5,128,0,6,1,1,44,128,1,48,0,1,4,2,32,0,0,8,224, +1,32,0,1,128,0,2,1,64,0,0,8,100,1,32,0,0,112,255,36,16,4,128,0,0,16,0 +,0,2,64,3,104,1,0,3,128,38,16,0,0,8,81,0,0,8,2,0,2,48,0,7,16,0,6,136, +136,20,128,0,0,16,0,2,9,2,130,4,168,1,16,64,0,0,64,130,24,9,34,33,64, +36,160,0,0,16,4,73,254,12,8,48,1,22,194,4,152,0,0,3,0,0,33,32,2,0,2, +16,194,128,88,32,131,0,0,36,0,3,130,4,0,5,66,2,0,5,129,17,152,16,134, +192,2,64,4,19,100,0,0,12,144,1,48,6,0,0,192,8,16,0,0,32,98,66,140,208 +,0,0,49,64,163,250,96,64,60,160,7,240,32,30,132,3,120,0,0,15,0,2,128, +7,240,0,0,6,192,3,24,0,3,12,32,2,0,6,1,0,5,96,0,0,33,128,7,224,32,6, +192,0,0,120,64,3,192,1,12,0,1,48,128,14,200,3,24,0,0,3,0,0,1,12,0,0, +128,255,8,0,0,48,0,0,6,192,0,0,24,0,0,3,0,0,16,0,0,2,0,3,192,0,0,16,0 +,0,3,0,5,128,0,6,64,0,7,1,32,16,6,192,0,1,4,2,97,0,0,8,132,1,32,0,1, +128,128,24,0,0,1,66,0,0,8,8,65,32,16,98,253,32,64,52,0,0,6,192,0,0,24 +,0,0,3,96,0,0,64,0,3,22,209,0,0,128,16,3,8,132,0,3,128,0,6,64,0,6,64, +8,18,2,6,192,0,0,152,128,16,64,32,34,128,1,136,16,0,0,32,2,24,16,19, +16,65,34,128,16,136,0,0,72,249,16,0,0,52,128,0,0,208,0,1,64,0,1,128,4 +,32,0,0,4,0,0,64,208,0,0,26,9,0,0,8,0,1,32,0,0,20,0,0,2,0,6,1,0,5,160 +,5,4,128,6,208,0,0,10,64,11,10,0,0,13,32,0,0,182,144,32,208,4,128,72, +19,104,0,0,13,33,0,0,52,1,248,253,0,1,48,0,4,8,0,2,8,4,0,3,196,0,0,24 +,0,1,1,0,3,32,0,0,3,0,5,128,1,0,5,128,129,0,2,192,0,0,16,0,0,3,0,1,12 +,132,0,0,48,0,1,194,128,0,1,3,97,32,12,0,1,48,32,56,249,0,1,60,128,1, +240,32,6,192,0,0,120,0,0,11,224,1,12,128,1,240,0,0,8,208,0,0,24,0,1, +96,0,0,44,0,16,129,44,0,0,6,52,0,0,22,0,0,2,0,1,8,0,0,128,32,0,0,2, +128,0,0,6,0,0,2,64,0,0,8,96,1,32,0,0,248,255,12,0,0,52,128,0,0,208,2, +2,64,0,0,104,0,0,69,161,1,4,128,0,0,208,0,0,24,65,0,0,8,0,1,32,0,0,20 +,128,8,0,5,64,4,0,5,128,4,20,0,0,6,16,0,0,74,4,81,0,1,36,144,9,16,34, +20,68,20,2,0,0,33,36,129,132,168,0,0,144,32,74,249,4,0,0,48,0,0,6,0,0 +,66,152,4,11,96,33,6,128,17,48,10,70,192,0,0,8,1,11,96,65,0,0,128,1, +24,9,0,14,128,1,152,16,38,2,2,12,8,11,4,20,76,0,0,5,176,0,1,192,2,25, +16,3,96,65,44,208,0,0,177,64,176,252,0,1,56,128,7,226,0,0,30,192,131, +120,0,0,8,192,1,61,128,7,225,0,0,30,200,131,120,0,1,224,129,32,0,15, +96,0,0,33,128,7,32,64,18,192,0,0,24,0,0,3,232,0,0,13,160,7,50,0,0,30, +192,0,0,26,0,0,3,0,0,1,12,0,0,40,253,4,0,0,48,0,0,6,0,1,24,0,0,3,96,0 +,0,10,128,65,48,0,0,6,192,0,0,8,0,0,3,96,0,1,128,1,32,136,4,0,5,64,2, +0,6,1,32,0,0,6,192,0,0,20,4,2,96,32,8,128,1,32,0,0,2,128,0,0,24,0,0,2 +,64,0,0,8,0,0,65,32,32,193,255,0,1,48,0,0,6,192,0,0,25,0,0,3,96,18,4, +160,5,52,0,0,6,192,0,0,20,2,3,96,0,1,160,1,144,0,0,4,0,6,2,0,6,128,16 +,17,6,194,36,72,0,0,32,97,4,128,196,9,1,18,166,0,0,8,25,128,8,2,8,64, +132,4,0,1,216,252,16,0,0,52,128,0,2,2,68,8,2,4,0,0,32,81,52,0,1,24,0, +0,18,9,0,0,8,0,0,128,16,48,4,128,0,6,64,0,6,160,49,4,128,38,16,0,0,2, +64,11,8,128,1,32,16,52,193,0,0,210,128,2,72,35,104,128,13,36,0,0,52, +16,88,255,0,1,48,0,2,64,0,3,64,0,0,132,0,0,48,0,3,8,0,1,1,0,5,4,0,6,2 +,0,5,128,1,0,1,4,1,0,2,3,1,0,1,132,128,48,0,1,192,0,0,8,0,0,3,97,0,0, +12,0,1,48,0,0,232,249,0,2,128,1,48,0,1,4,0,0,24,0,0,11,224,0,0,60,128 +,7,0,1,24,192,0,0,24,0,0,3,96,0,0,44,128,0,6,64,0,7,1,44,0,0,6,50,0,0 +,22,0,0,2,0,1,4,0,1,32,0,0,2,128,0,2,2,64,32,8,100,1,32,0,0,248,254, +12,0,1,128,0,0,16,0,0,64,0,0,8,10,0,0,69,33,1,52,128,38,1,0,0,152,72, +0,0,8,0,0,1,32,0,0,20,0,7,20,0,6,130,136,20,0,0,68,16,0,0,74,4,9,66, +64,40,144,17,17,64,36,72,16,24,2,9,36,2,36,160,0,0,16,66,49,252,4,0,1 +,32,38,194,36,128,0,0,131,96,1,6,0,0,1,48,0,0,16,194,72,88,0,0,139,96 +,66,12,136,5,26,9,0,14,144,9,154,16,18,192,32,12,8,35,0,0,2,32,0,0,1, +48,2,64,196,8,80,0,0,11,98,66,140,193,0,0,49,64,115,254,0,1,12,128,7, +240,0,0,6,196,3,120,16,8,160,0,0,56,128,7,240,0,0,14,196,3,120,0,0,15 +,224,1,32,0,15,96,0,0,32,128,7,228,0,0,18,192,0,0,58,32,15,232,128,12 +,160,7,48,128,14,208,0,0,24,0,0,3,0,0,1,12,0,0,8,255,4,0,2,6,192,0,1, +4,3,97,0,0,10,128,0,0,48,0,3,24,0,0,3,96,0,0,12,128,1,32,8,0,15,129, +32,0,0,6,194,0,0,20,4,2,32,32,4,128,1,32,32,2,132,128,24,0,0,2,64,0,0 +,8,0,0,65,32,16,122,255,0,2,32,6,192,0,0,8,1,17,96,0,0,4,0,0,1,48,0,0 +,6,1,8,73,8,3,96,0,0,13,128,1,16,0,15,64,8,16,34,38,192,0,0,8,128,16, +36,2,76,129,1,9,2,38,32,2,156,16,64,16,65,130,132,0,0,136,0,0,248,255 +,32,0,0,4,128,16,17,8,0,0,64,3,0,0,128,8,32,1,132,16,0,0,24,0,0,26,1, +0,0,104,0,0,13,0,1,36,2,0,14,160,5,36,128,22,16,0,0,18,72,11,10,4,73, +164,33,180,16,0,0,208,2,2,65,2,105,0,0,13,33,1,53,1,136,250,0,5,128,0 +,0,8,3,0,1,4,132,0,5,24,4,0,0,97,0,0,12,0,1,16,32,0,14,128,129,16,0,0 +,4,2,0,0,8,0,0,3,0,0,64,0,0,128,1,48,0,1,192,64,8,8,0,0,96,64,12,128, +0,0,48,16,232,255,96,0,0,12,128,3,0,1,6,0,0,3,120,0,0,11,96,1,48,128, +7,49,0,0,8,200,0,2,15,0,1,44,0,7,4,0,6,2,129,44,0,0,6,49,0,0,22,0,0,2 +,0,0,16,8,128,0,0,32,0,1,128,64,0,1,130,64,0,0,8,96,1,32,0,0,160,248, +40,0,0,4,128,0,0,4,40,2,0,0,67,104,20,69,161,0,0,48,145,6,16,0,0,128, +64,0,2,13,0,1,20,0,0,4,0,5,16,2,0,5,136,4,20,0,0,20,16,0,0,10,0,0,81, +0,0,4,132,2,133,16,34,0,0,64,2,88,32,33,32,68,132,168,0,0,16,32,10, +251,128,1,48,9,0,1,36,88,4,11,4,33,6,192,0,0,16,1,16,194,36,64,4,163, +0,0,33,12,0,1,24,0,0,2,0,5,16,1,0,5,136,5,154,16,18,192,34,84,0,0,3,0 +,0,2,132,1,8,48,0,1,192,2,17,0,0,17,98,65,140,64,1,176,64,64,252,224, +1,61,128,1,180,0,0,30,192,3,120,0,0,8,32,1,12,144,7,240,0,0,6,192,3, +24,0,0,14,0,1,16,0,0,7,0,5,144,3,0,5,104,0,0,32,128,7,228,0,0,18,196, +0,0,58,16,15,224,129,12,32,0,0,48,0,0,14,200,3,24,0,0,3,8,1,12,0,0,16 +,251,132,1,48,0,2,32,24,0,0,3,0,1,6,128,0,0,48,0,1,192,0,2,3,0,1,12,0 +,1,16,128,5,0,5,208,2,0,5,8,1,16,0,0,6,194,0,0,16,0,0,2,32,0,0,12,2, +128,32,0,1,128,0,0,24,0,0,3,64,0,0,8,0,0,1,32,32,137,248,128,1,48,128 +,0,0,2,0,0,24,0,0,16,98,16,8,0,0,1,48,4,70,193,0,0,16,5,3,0,0,32,12,0 +,1,16,0,0,4,0,5,8,2,0,5,4,144,32,32,6,192,0,0,16,0,1,97,17,12,64,5,0, +0,16,0,1,8,25,16,163,0,0,8,0,0,4,1,0,1,104,252,80,0,0,8,0,0,1,0,2,128 +,0,5,8,0,1,32,0,3,16,0,0,2,0,2,2,4,0,6,2,0,18,64,0,15,232,253,0,4,16, +0,0,2,0,1,8,0,0,1,0,1,4,128,0,2,2,64,0,5,4,8,0,6,16,0,6,40,0,0,4,128, +0,0,16,0,0,2,64,0,0,8,0,0,1,0,1,4,128,0,0,16,0,1,64,0,0,8,0,0,1,32,0, +0,4,0,0,80,249,0,74,152,255,44,0,0,4,128,0,0,16,0,0,2,64,0,0,8,0,0,1, +32,136,4,128,0,0,16,0,0,2,64,0,0,8,0,0,1,32,0,0,2,0,15,32,0,0,4,128,0 +,0,16,0,0,2,64,0,0,8,0,0,1,32,0,0,4,128,0,0,16,0,0,2,69,0,0,8,0,0,1, +32,0,0,4,0,0,187,251,68,0,0,128,32,1,0,0,2,0,2,2,0,0,32,0,0,8,1,34,0, +1,16,0,2,16,0,0,128,16,0,19,128,0,2,136,0,6,136,0,4,4,0,5,48,0,1,241, +251,32,0,1,128,0,1,32,0,5,36,0,8,8,0,4,8,0,14,32,0,1,32,0,3,64,0,0,8, +0,0,1,0,1,4,128,0,0,16,0,1,64,0,0,8,0,0,1,0,1,4,0,0,56,253,4,0,1,16,0 +,1,128,0,0,16,0,1,64,0,0,8,0,1,16,0,5,2,0,1,4,0,0,1,0,20,2,0,1,16,0,4 +,64,0,14,129,250,32,0,0,4,130,0,1,4,130,64,32,9,2,64,0,0,136,4,129,32 +,18,68,2,96,16,8,0,0,129,32,8,0,0,17,0,14,32,0,1,132,16,0,0,72,130,64 +,0,0,8,0,0,1,32,4,4,128,0,0,16,0,0,2,64,0,0,8,0,0,1,32,136,4,0,0,80, +251,0,8,8,0,4,8,0,29,4,0,6,8,0,13,1,0,2,128,0,0,136,250,0,26,2,0,20, +16,0,8,64,0,5,4,0,2,32,0,3,200,254,0,1,128,0,10,128,0,0,16,0,9,128,0, +17,1,0,1,1,0,3,66,0,5,64,0,1,32,32,0,0,4,0,1,16,0,1,32,0,0,56,255,4, +32,0,4,1,0,9,32,0,3,80,0,0,2,128,0,0,2,64,0,15,32,0,6,64,0,3,32,36,0, +0,4,0,3,2,32,0,3,96,0,0,112,251,0,5,2,64,0,2,1,32,0,8,8,0,3,4,0,3,1,0 +,5,128,0,11,66,0,1,32,0,6,1,0,6,32,0,2,224,250,0,13,2,0,1,8,0,2,2,0,5 +,64,0,6,2,0,6,1,0,10,56,0,4,2,0,8,2,0,1,232,250,0,11,4,0,1,16,0,6,1, +16,0,1,64,0,18,8,8,2,16,0,1,16,0,5,4,8,2,1,0,2,128,0,1,1,40,0,1,32, +112,253,0,2,32,2,0,10,4,0,0,32,64,2,0,1,32,0,0,4,128,0,0,4,8,0,22,8,0 +,0,8,0,0,2,128,64,8,128,0,4,1,0,0,32,0,4,240,248,0,2,160,20,0,3,128,0 +,1,2,0,0,64,8,38,0,0,16,128,2,0,1,9,48,1,32,192,4,32,0,15,64,24,16,1, +32,0,1,24,0,0,8,0,0,1,32,64,13,144,1,2,0,1,64,0,0,33,64,2,68,0,1,16, +48,254,32,193,86,10,128,138,16,40,0,0,16,160,0,0,8,0,0,193,2,4,2,128, +16,44,0,0,2,64,2,166,1,32,16,1,0,15,80,16,8,14,1,0,0,16,2,128,69,0,1, +2,32,48,8,178,16,136,0,0,18,136,32,92,4,128,1,4,82,64,252,0,0,64,16,8 +,0,2,8,0,1,32,0,2,64,0,0,128,0,2,2,0,3,4,0,1,16,0,16,64,16,144,0,0,4, +0,3,1,0,1,2,0,0,4,144,0,5,9,64,1,128,0,2,208,251,132,0,3,33,128,0,4,1 +,32,0,1,32,0,0,128,64,0,0,64,0,0,8,0,1,2,32,0,20,2,0,1,8,16,0,0,16,0, +2,128,16,0,1,4,0,1,4,0,1,32,0,0,32,0,2,188,248,0,2,4,0,5,1,0,8,2,8,0, +0,32,0,22,2,0,0,8,0,4,4,0,9,160,0,0,4,0,0,32,4,0,1,16,216,255,0,4,2,0 +,2,2,0,16,128,0,19,8,0,0,2,2,0,9,128,0,11,152,255,0,45,128,0,1,16,0,2 +,32,0,0,1,64,2,64,0,0,16,16,1,0,1,2,0,1,16,0,0,1,0,0,4,0,1,144,250,0, +13,32,0,10,32,0,19,2,0,6,6,0,0,32,0,0,2,0,1,16,0,1,32,0,0,8,4,0,0,1,0 +,2,64,112,255,0,8,64,0,17,1,0,20,4,0,6,4,0,4,64,0,3,32,0,4,248,254,0, +17,16,0,29,4,0,7,2,0,0,64,0,0,8,64,0,0,8,16,68,0,1,2,8,0,1,16,88,250, +0,10,64,0,2,32,0,1,4,0,0,16,2,0,22,32,0,5,4,0,1,128,0,1,16,0,4,2,17,0 +,2,128,0,0,16,0,2,112,251,0,14,64,0,3,10,0,9,128,0,2,128,0,2,64,0,2, +64,0,12,4,0,16,184,255,0,2,16,8,0,2,128,0,11,16,0,0,128,0,1,32,0,1,16 +,0,14,128,96,1,0,5,128,2,0,2,1,33,0,0,4,84,0,2,128,0,0,64,0,3,8,216, +253,0,5,1,32,0,3,16,0,6,1,24,4,0,0,128,0,0,16,0,0,1,0,1,64,0,2,64,0,2 +,32,0,2,32,0,1,3,0,1,1,0,7,1,0,1,4,0,0,130,2,0,9,208,253,0,74,220,251 +,0,14,128,0,8,4,0,5,32,0,2,32,0,2,16,0,2,16,0,23,1,0,4,56,248,8,0,8,4 +,0,9,32,0,26,2,0,10,32,2,0,11,176,251,0,18,1,0,36,1,0,2,128,0,3,64,0, +7,192,255,0,3,2,2,0,8,4,0,7,32,0,21,4,0,11,128,0,13,24,249,0,19,16,0, +32,128,0,8,32,0,2,64,0,4,4,120,248,0,19,32,0,35,1,0,16,136,252,0,47, +128,0,13,8,0,10,16,255,0,7,64,0,20,16,1,0,0,64,4,0,2,136,0,1,32,2,0,4 +,16,0,10,8,0,13,248,254,0,46,16,4,0,10,128,0,13,88,250,16,0,4,64,0,14 +,1,0,2,128,0,0,4,0,16,2,0,5,20,4,64,0,0,16,2,130,64,0,4,72,0,0,8,0,0, +4,0,2,64,48,251,0,0,128,0,1,2,0,4,128,0,9,32,0,6,32,0,20,32,0,0,64,0, +6,32,0,0,16,129,0,3,32,4,0,3,128,252,0,14,16,0,10,1,0,20,128,0,12,8,0 +,7,64,0,1,216,254,8,0,4,128,0,19,4,0,16,128,0,0,32,0,0,2,0,3,1,0,2, +128,0,0,16,0,5,128,0,0,144,0,2,16,0,0,80,251,128,0,5,8,4,0,2,4,0,2,16 +,0,0,65,32,0,1,128,0,2,128,0,1,8,0,15,128,16,8,0,0,4,0,1,16,2,2,16,1, +2,0,0,4,160,0,2,16,0,1,10,0,1,64,0,2,72,248,26,64,4,32,0,0,64,64,0,0, +128,0,0,8,0,1,32,0,1,8,1,32,0,1,128,0,0,16,16,2,64,0,0,8,0,25,1,0,0,4 +,0,0,64,8,0,1,2,0,0,16,8,0,0,1,0,1,8,0,0,1,128,56,251,64,0,0,5,32,0,0 +,16,128,4,72,0,0,8,0,0,2,32,0,1,176,0,0,50,64,0,0,64,1,9,80,1,96,0,0, +4,16,0,15,128,8,16,20,2,0,0,128,138,0,0,3,32,3,4,0,0,13,16,1,4,20,6, +16,0,0,19,0,1,72,0,0,1,0,0,184,250,0,0,4,24,12,128,64,98,137,0,0,130, +2,0,0,40,0,0,33,48,9,76,129,4,16,2,10,64,8,4,128,0,1,1,0,4,16,0,6,72, +0,1,113,16,0,0,3,64,33,0,0,4,160,200,10,96,128,0,1,12,130,0,0,60,34,5 +,96,0,1,4,129,96,112,14,80,251,0,1,8,8,0,0,64,32,8,0,0,128,0,4,16,8,0 +,0,1,0,5,4,32,0,18,64,16,128,0,0,64,128,0,0,16,128,0,2,128,0,1,160,0, +1,32,0,0,4,0,2,1,128,64,16,8,104,248,0,2,32,128,0,2,128,0,2,2,32,0,0, +9,0,0,2,16,0,0,4,80,0,0,16,32,0,17,16,0,0,32,128,0,7,64,32,0,3,16,0,0 +,2,128,0,1,128,0,2,4,128,8,16,32,250,0,8,2,0,45,8,4,0,3,16,2,0,2,8,0, +4,16,0,0,192,251,0,43,128,0,1,64,32,0,9,128,0,5,8,0,7,176,251,0,19,4, +0,2,64,0,21,16,0,6,16,0,1,8,0,1,136,0,0,128,128,0,1,64,0,0,8,0,0,2,0, +1,32,96,249,2,0,15,2,0,1,32,0,0,2,1,0,25,128,0,0,8,0,1,32,0,12,64,0,3 +,128,96,255,0,4,64,0,3,32,0,5,2,0,9,16,0,0,1,0,1,5,0,2,129,0,1,128,2, +0,1,128,0,2,8,0,0,128,0,0,16,0,21,240,252,0,3,8,0,26,64,0,2,64,0,2,32 +,0,2,32,0,11,2,32,0,15,112,251,0,20,4,0,8,16,0,3,1,0,1,8,0,2,128,0,5, +8,0,2,1,0,2,128,64,0,6,1,0,0,16,2,0,3,80,253,0,4,128,0,2,128,1,0,0,8, +0,6,4,4,0,1,8,0,1,1,32,0,16,192,128,0,6,65,0,1,4,0,1,88,1,1,0,9,8,120 +,248,0,10,32,0,5,2,0,4,8,0,2,2,0,4,16,0,17,72,0,1,32,8,1,0,0,4,0,1,32 +,16,0,0,2,0,0,32,0,1,1,0,0,4,0,0,104,250,0,6,10,0,3,1,0,2,128,0,5,2,0 +,7,16,0,6,8,0,2,8,0,1,1,0,8,16,0,0,1,1,0,1,4,16,1,32,0,0,131,8,16,0,1 +,136,0,0,96,248,2,0,1,8,0,4,128,0,8,2,0,4,32,0,8,16,0,6,8,0,0,64,0,6, +128,0,4,4,0,3,1,68,0,0,2,128,0,0,8,0,1,72,128,16,255,0,1,16,0,22,8,0, +6,2,0,9,64,0,3,5,0,1,128,2,8,0,3,8,0,6,16,0,1,2,0,1,32,0,0,253,0,1,4, +6,0,3,81,0,0,8,33,0,5,16,8,2,65,35,1,0,0,1,36,132,0,0,32,0,22,64,3,40 +,4,1,0,2,128,0,0,80,2,26,0,6,4,2,120,248,0,18,64,0,0,8,3,0,30,3,64,16 +,0,4,6,192,64,24,0,7,16,192,250,0,6,6,192,0,0,32,0,6,64,64,8,0,0,3,1, +0,3,60,0,23,192,0,0,32,0,0,3,0,3,6,52,0,0,24,0,7,32,16,253,0,2,10,0,2 +,2,64,0,1,33,0,6,2,64,8,17,0,1,128,16,0,0,54,10,0,22,64,0,0,64,32,1,0 +,3,70,80,32,128,2,0,6,2,232,252,0,2,4,0,2,24,2,35,0,0,65,0,8,2,18,0,1 +,76,128,17,0,0,2,0,23,32,34,0,0,140,0,3,6,129,0,0,88,32,0,5,48,1,136, +254,0,1,12,0,3,30,128,131,24,0,6,48,64,6,192,129,0,1,15,226,65,60,32, +0,22,128,0,0,120,32,14,8,0,1,128,1,48,128,30,0,6,60,8,24,255,0,2,8,0, +2,24,0,0,3,32,64,0,5,64,0,0,8,0,0,2,2,0,0,12,128,1,0,0,8,0,23,131,32, +0,0,12,0,4,192,32,0,7,48,0,0,96,248,0,1,16,1,0,2,24,0,0,3,64,0,6,128, +128,16,9,1,0,1,68,129,16,178,0,24,19,64,33,13,0,3,64,130,0,1,33,0,5, +16,5,248,255,0,1,4,193,18,0,2,80,0,0,104,2,0,5,16,72,0,0,64,0,0,8,0,0 +,1,36,4,0,0,34,0,17,128,0,0,16,2,0,0,64,0,0,40,18,1,32,136,4,161,6, +144,0,1,64,0,0,104,0,3,4,2,128,253,0,3,4,1,0,3,96,64,0,15,1,0,21,64,0 +,2,64,0,5,6,64,128,0,2,96,0,4,16,192,251,0,2,8,2,0,1,6,192,0,0,32,0,6 +,64,64,0,1,128,24,0,1,4,0,0,12,0,19,6,0,0,128,0,0,192,0,0,32,0,0,3,0, +0,128,32,128,1,176,0,1,192,0,0,96,0,3,16,16,176,249,8,0,2,4,2,0,0,2, +64,0,0,96,36,0,6,2,0,2,8,0,0,32,0,0,136,4,0,19,6,0,0,8,0,0,64,0,0,64, +10,1,0,0,9,0,0,132,0,0,80,0,1,64,0,0,96,129,0,3,2,105,248,0,1,128,8,2 +,2,0,1,1,131,32,18,0,6,130,0,1,136,96,4,76,130,17,176,0,19,38,196,2,0 +,1,3,32,65,12,128,5,176,0,0,32,132,0,2,3,96,1,0,3,4,195,253,0,1,44, +128,7,0,1,6,144,3,120,0,6,48,0,1,192,0,0,120,64,15,224,129,60,8,0,17, +128,7,240,32,0,0,128,131,120,0,0,14,226,129,60,16,1,96,0,1,128,3,26, +32,0,2,12,0,0,224,252,4,0,1,8,2,0,1,24,4,3,32,0,6,64,0,2,131,96,0,0, +12,128,1,48,0,19,6,194,0,2,3,32,64,12,128,1,48,32,6,129,0,2,3,0,0,32, +0,2,16,32,106,248,0,2,2,20,2,0,0,152,0,0,3,80,130,0,5,128,72,0,1,16, +96,0,0,68,129,40,48,0,19,70,64,20,0,1,3,64,2,13,128,32,16,1,6,64,0,2, +3,0,0,1,0,2,32,2,120,252,0,1,4,128,2,17,0,1,80,3,72,2,0,2,4,17,0,0, +208,64,0,2,8,0,0,13,32,136,0,0,34,0,14,160,1,22,18,0,0,16,128,26,69,3 +,40,2,1,32,136,52,193,36,20,0,1,64,3,108,0,0,77,0,1,132,16,160,251,0, +2,32,4,0,3,3,32,64,0,2,1,0,8,12,0,19,1,32,0,3,16,0,1,64,16,0,2,48,0,0 +,2,0,3,3,96,0,0,12,8,0,2,120,253,0,3,2,48,0,0,30,196,0,0,96,64,0,0,96 +,0,1,32,0,0,192,32,0,2,24,0,0,12,0,1,12,0,15,128,1,28,0,2,64,24,196,0 +,0,34,0,0,3,0,1,16,144,5,48,0,2,1,96,0,0,8,0,1,16,16,56,248,4,0,1,8, +164,16,0,0,26,64,0,0,96,2,0,0,32,0,4,2,0,2,8,0,0,140,8,0,0,6,0,15,128 +,145,36,0,3,152,64,8,64,32,1,0,0,9,49,130,2,16,0,2,2,97,68,68,4,0,1,2 +,10,254,12,0,1,66,34,200,136,0,0,1,0,0,100,0,1,128,73,48,1,0,0,64,2,0 +,2,96,128,44,144,9,48,1,0,14,128,1,16,0,1,192,4,152,4,35,34,66,76,130 +,33,16,64,4,192,8,0,2,96,1,12,8,0,0,128,32,192,252,0,1,12,128,7,224,0 +,0,30,144,0,0,56,32,0,0,224,1,60,8,0,0,240,128,0,2,112,0,0,15,224,1, +61,8,0,14,224,129,44,0,1,240,32,30,192,3,120,0,0,14,224,1,60,0,0,3, +224,32,0,0,192,3,25,32,3,0,1,12,0,0,152,250,8,0,2,2,196,0,2,3,96,16,0 +,0,128,1,48,32,0,1,128,0,2,96,0,0,12,128,1,48,0,15,128,1,16,0,1,192,0 +,0,24,4,131,32,0,0,12,128,129,16,0,0,4,192,0,4,32,8,0,1,16,0,0,137, +255,0,1,16,9,36,192,0,0,24,4,147,32,1,0,0,128,1,144,0,1,192,4,0,2,104 +,0,1,129,16,50,0,15,128,17,33,0,1,64,128,88,0,0,16,64,33,13,128,4,168 +,32,2,192,0,1,128,34,1,4,66,8,0,0,32,66,192,248,32,0,1,144,16,16,0,1, +80,3,8,1,13,8,0,0,132,0,1,16,8,0,0,64,0,0,8,0,0,13,160,17,50,34,0,14, +32,0,0,148,0,1,208,0,0,2,64,0,0,40,17,13,160,1,36,193,0,0,16,0,0,26, +64,99,8,1,77,160,1,4,16,8,248,0,4,2,0,4,32,8,0,1,1,16,0,1,64,0,4,12, +128,1,0,18,33,16,0,0,192,0,3,64,0,0,12,128,1,16,0,3,24,0,0,3,0,0,32, +12,132,0,0,1,0,0,136,253,0,1,12,0,1,48,0,0,30,196,0,0,32,0,0,12,98,0, +3,192,0,3,24,0,0,12,0,0,1,60,0,16,129,28,0,1,192,64,24,192,0,0,32,0,0 +,3,128,1,48,160,1,48,0,0,24,0,0,3,0,0,64,8,128,129,0,0,16,16,254,12,0 +,0,4,0,0,16,20,0,0,90,64,16,1,65,12,32,0,1,18,0,0,192,66,0,2,8,0,0, +140,136,136,4,33,0,15,4,36,0,1,192,4,24,64,0,0,64,10,1,128,129,48,128 +,0,0,16,0,0,24,8,83,64,4,68,144,1,0,1,74,255,4,0,0,48,8,38,193,2,0,0, +1,3,4,129,32,128,5,48,9,0,0,64,8,0,1,64,96,18,44,144,33,0,16,128,33, +16,0,1,192,2,153,16,35,32,36,64,136,137,176,64,22,192,2,24,3,34,98, +130,140,4,17,178,8,144,249,96,0,0,61,128,7,224,32,30,208,3,24,0,0,15, +228,65,60,0,1,48,128,0,0,192,0,0,112,0,0,15,96,0,0,60,0,15,224,1,44,0 +,1,240,0,0,30,128,131,120,0,0,2,96,0,0,28,0,0,7,225,32,6,192,1,120,0, +0,3,224,1,60,0,0,64,248,132,1,49,0,0,6,192,0,2,3,0,1,12,130,1,48,0,1, +192,0,2,3,96,0,0,12,0,0,1,0,16,128,1,17,0,1,192,0,0,24,0,0,3,32,64,12 +,0,1,49,8,6,192,0,1,8,3,97,0,0,8,4,0,0,49,0,0,233,253,128,1,48,0,0,34 +,194,0,0,88,4,144,96,132,76,128,1,16,5,0,0,192,34,0,1,3,105,0,0,64,80 +,16,50,0,15,128,4,32,0,2,68,24,8,3,64,2,13,2,16,16,1,6,192,0,0,64,128 +,32,32,8,64,128,17,16,32,112,255,32,132,0,0,144,0,0,212,66,0,0,80,0,0 +,104,2,45,16,0,0,4,160,2,16,66,0,0,64,3,8,0,0,13,160,49,0,0,32,0,16, +20,33,0,0,16,68,66,64,3,8,0,0,1,160,1,0,0,128,2,210,0,1,64,19,12,1,0, +0,32,8,4,17,48,253,0,4,192,0,3,64,16,12,0,1,1,0,0,4,0,3,3,0,1,12,128, +1,0,18,32,0,4,16,3,0,2,128,1,0,2,192,0,2,3,0,0,32,0,1,128,0,1,16,254, +0,1,12,0,1,4,0,0,30,192,0,0,96,16,8,96,0,1,128,5,65,0,2,3,24,0,0,12,0 +,0,1,60,8,0,16,28,0,2,64,8,192,0,2,3,0,3,6,52,0,2,3,1,0,3,16,0,0,136, +252,4,4,6,0,0,16,192,68,154,68,0,0,96,2,4,33,0,1,194,2,0,0,136,0,1,3, +8,0,0,140,136,144,52,1,0,16,36,0,2,2,0,0,69,0,1,68,1,128,17,1,0,0,2, +16,0,2,3,64,66,0,1,8,2,34,129,251,140,9,176,8,70,129,132,0,0,1,11,96, +34,76,128,81,48,8,3,0,0,2,1,0,0,96,96,20,44,144,129,0,0,2,0,16,16,0,1 +,192,8,0,0,2,128,0,0,2,76,128,9,0,1,192,0,3,34,100,8,0,1,8,128,64,67, +253,224,129,60,128,7,112,0,0,30,144,131,120,0,0,3,232,1,60,128,4,48,0 +,1,192,0,0,112,0,0,15,96,0,0,60,32,0,16,44,0,1,240,32,6,128,0,0,120, +32,14,226,129,0,0,128,1,32,128,0,0,192,1,120,0,1,96,0,0,13,0,0,32,252 +,136,1,49,0,0,6,128,64,0,1,3,96,0,0,8,128,1,48,0,0,5,0,4,96,0,0,12,0, +0,1,0,0,32,0,16,16,0,1,192,0,0,8,0,0,3,0,1,12,0,0,128,0,1,4,192,0,2,3 +,96,0,1,128,0,2,170,250,128,4,48,0,0,2,36,8,24,5,3,96,18,66,136,1,16, +32,2,192,132,0,2,104,0,0,64,8,0,0,177,0,17,32,0,1,64,8,145,8,163,0,0, +8,13,0,0,16,0,1,35,193,40,0,1,8,36,32,0,0,128,81,48,17,40,248,16,0,1, +144,66,208,130,0,0,81,3,8,33,141,48,4,52,162,4,16,0,0,2,0,0,145,104,0 +,0,129,160,9,1,32,0,16,52,128,64,210,66,66,72,0,0,8,0,0,1,160,1,53, +128,68,16,0,0,2,64,3,105,64,141,160,1,54,0,0,192,249,0,3,4,193,0,2,3, +0,1,12,0,0,64,48,0,0,2,0,3,2,96,0,1,132,1,0,18,48,0,1,192,0,6,128,1, +48,0,0,2,4,0,2,1,96,0,0,12,132,1,48,0,0,16,251,0,1,12,0,0,2,130,0,0,6 +,192,0,1,64,8,136,64,32,128,5,1,0,0,24,192,2,24,0,1,128,0,0,60,0,17, +48,0,0,4,130,128,8,192,0,2,3,0,3,6,48,0,0,6,0,0,3,2,0,0,4,128,0,0,48, +0,0,216,255,12,0,0,4,0,0,20,64,8,3,64,0,2,4,0,0,16,16,146,2,0,0,136, +24,64,161,8,0,1,136,5,182,8,0,16,48,0,0,16,64,8,0,0,69,0,1,68,1,128, +80,0,0,33,38,24,0,0,2,0,0,35,32,16,40,4,133,48,34,186,253,4,0,0,48,10 +,66,196,72,24,0,1,96,12,140,4,64,48,4,3,0,1,24,137,1,0,0,1,140,128,0, +1,2,0,17,10,134,192,16,64,16,147,0,0,129,140,130,5,49,1,38,192,36,24, +32,162,96,68,0,2,176,64,160,251,0,1,60,128,7,48,0,0,30,132,128,120,0, +0,3,96,0,0,12,128,4,240,128,30,0,0,2,16,16,15,226,1,61,32,0,16,12,128 +,7,48,0,0,6,128,3,120,0,0,14,224,1,12,160,1,226,0,0,30,192,3,120,0,0, +15,228,129,60,0,0,72,255,4,0,0,48,0,0,2,130,0,0,24,0,0,131,96,64,8,4, +64,32,32,3,0,1,24,144,2,96,0,0,12,128,0,0,1,8,0,18,6,128,0,0,8,0,0,3, +0,1,12,0,0,1,48,16,6,192,0,0,24,0,1,66,0,3,48,0,0,249,255,0,1,48,0,0, +68,0,0,72,24,0,0,3,32,1,64,0,1,136,0,0,4,0,0,16,24,1,1,104,20,68,68,9 +,48,0,19,130,32,8,17,32,3,0,0,8,12,192,1,129,0,0,166,192,0,0,24,0,0, +19,112,65,138,72,5,2,17,112,255,160,1,0,0,144,6,208,0,1,81,0,0,8,0,0, +1,0,1,52,193,6,16,64,0,1,144,104,0,0,129,32,9,1,32,0,14,128,17,53,137 +,66,208,72,130,64,0,0,40,1,1,160,145,0,0,128,0,0,16,0,0,130,80,9,106, +36,141,161,49,52,9,208,255,0,3,6,192,128,0,5,4,0,0,49,0,0,6,0,2,16,0, +0,96,0,1,132,0,19,48,0,0,4,194,0,1,4,0,0,64,16,0,0,128,1,0,6,3,96,0,0 +,12,128,1,32,0,0,136,250,128,1,12,0,0,6,0,1,6,192,0,0,24,0,0,4,96,0,0 +,32,0,0,6,64,64,6,192,2,24,0,1,128,1,60,0,15,224,129,48,160,3,128,0,0 +,8,192,0,0,32,32,3,0,0,64,0,0,128,1,48,0,0,16,200,0,2,12,128,1,48,8, +56,253,4,0,0,5,0,0,134,192,2,3,64,0,0,8,0,0,136,36,0,0,16,65,6,0,0,2, +2,64,161,8,0,0,128,132,133,52,8,0,14,32,0,0,48,128,4,64,68,0,0,81,0,0 +,64,1,1,128,16,0,0,128,0,0,16,0,1,65,1,34,17,76,129,41,48,1,187,248, +140,33,48,65,22,136,132,88,4,147,96,18,128,132,65,176,64,22,0,0,16,24 +,145,1,0,0,4,12,128,5,0,0,2,0,16,32,2,2,192,2,65,32,139,32,130,12,130 +,1,0,1,38,192,32,88,0,0,2,97,2,8,16,129,48,2,41,253,224,1,60,128,7, +112,0,0,30,128,3,120,0,0,15,224,1,12,128,7,50,0,0,30,0,0,2,16,16,15, +226,64,60,32,0,14,224,1,28,144,5,48,0,0,6,128,3,120,0,0,14,224,129,0, +1,7,225,0,0,30,200,0,0,120,32,7,224,0,0,60,8,56,250,8,0,0,48,0,0,6, +128,64,24,0,0,3,96,0,0,4,132,1,32,0,1,64,0,0,24,128,2,96,0,0,12,128,1 +,0,0,8,0,16,48,0,0,2,128,0,2,3,32,32,12,0,0,1,1,0,0,6,192,0,0,24,0,0, +3,64,32,12,132,129,48,0,0,25,248,128,33,48,0,0,64,34,8,24,0,0,3,96,0, +0,76,128,1,0,0,32,64,130,130,24,0,0,1,104,17,68,132,72,48,2,0,14,128, +1,8,17,4,0,0,128,24,9,3,64,4,12,192,1,0,1,6,192,0,0,8,2,130,112,2,130 +,64,16,176,8,240,249,48,0,1,144,0,0,208,24,0,0,81,0,0,8,1,65,8,0,0,52 +,128,64,208,36,0,1,146,104,0,0,1,164,145,0,0,34,0,14,32,9,165,128,6, +208,4,130,64,0,0,40,0,0,1,32,4,6,146,2,16,0,1,64,8,8,4,77,176,9,6,16, +112,251,0,4,192,0,4,32,0,2,49,0,1,130,0,2,1,0,2,128,1,0,16,128,0,0,16 +,8,6,192,128,0,0,4,0,0,64,16,0,0,128,0,2,6,2,0,3,33,64,12,128,1,0,1, +128,249,128,1,12,0,1,128,0,0,6,192,0,0,32,32,4,96,0,0,48,0,0,2,196,32 +,0,0,192,2,24,0,1,136,0,0,13,0,15,96,1,0,2,68,128,8,200,0,0,32,32,3,0 +,2,128,1,48,0,5,12,128,1,16,16,176,249,140,1,4,0,0,64,68,4,3,64,0,1,2 +,8,40,0,0,48,4,20,192,0,1,64,161,8,8,32,0,0,4,4,0,15,160,0,0,48,10,32 +,0,0,2,128,64,0,0,64,1,1,128,17,2,145,18,17,0,3,97,34,12,136,1,1,2, +162,254,132,137,48,4,0,0,200,72,24,5,139,0,0,4,0,0,128,49,176,64,64, +196,0,1,128,1,96,4,44,0,0,68,48,2,0,15,1,48,2,38,2,24,0,0,1,163,32,4, +140,16,17,48,1,36,196,34,0,1,8,65,2,72,0,0,5,0,0,2,56,255,224,1,60, +128,7,48,0,0,30,128,3,24,64,15,232,1,60,128,7,240,32,0,1,2,120,16,15, +98,0,0,60,8,0,14,192,0,0,60,144,1,48,0,0,6,144,3,120,64,14,224,64,60, +144,1,224,0,1,192,0,0,56,16,7,228,0,0,13,32,136,254,132,1,48,0,1,128, +0,0,24,0,0,3,0,1,4,128,1,48,0,0,2,192,0,1,128,1,96,0,0,12,0,1,48,0,16 +,1,48,0,0,6,0,0,32,0,1,3,32,32,12,128,1,48,32,6,192,0,2,129,96,16,12, +128,1,16,16,17,253,128,17,49,0,0,128,0,0,72,24,0,0,3,96,128,140,136,1 +,0,0,65,70,196,32,0,1,2,8,17,68,1,81,48,0,15,160,0,0,48,17,16,132,2, +24,2,3,64,4,12,128,69,144,0,0,68,196,0,2,11,96,4,32,16,128,32,0,0,184 +,253,0,74,152,255,32,0,0,4,128,0,0,16,0,0,2,64,0,0,8,0,0,1,32,0,0,4, +128,0,0,16,0,0,2,64,0,2,1,32,0,0,4,0,17,4,128,0,0,16,0,0,2,64,0,0,8,0 +,1,32,0,0,4,128,0,0,16,0,0,2,64,0,0,8,0,0,1,32,0,0,4,0,0,40,254,0,46, +1,0,26,136,255,36,0,0,4,128,0,0,16,0,0,2,64,0,0,8,0,0,1,32,0,0,4,128, +0,0,16,0,0,2,64,0,0,8,34,1,32,0,0,4,0,15,32,8,4,128,0,0,16,0,0,2,64,0 +,0,8,0,0,129,40,0,0,4,128,0,0,16,0,0,2,64,0,0,8,0,0,1,32,0,0,4,0,0,73 +,248,12,0,4,2,0,1,32,2,0,10,32,2,68,0,20,4,0,6,8,0,1,128,8,0,2,16,0,0 +,136,0,1,8,0,6,235,251,32,0,1,128,0,1,128,0,4,1,0,1,4,0,1,16,0,5,1,32 +,0,19,1,0,1,16,0,0,2,0,1,10,0,1,32,0,0,4,0,1,4,0,3,10,0,0,1,32,0,0,4, +0,0,224,253,8,0,8,1,0,12,64,0,20,128,0,7,1,0,1,4,0,3,2,0,10,218,251, +32,0,0,132,144,0,1,72,66,8,0,0,8,10,1,32,132,4,128,32,18,0,0,130,72,8 +,1,2,1,32,0,0,132,16,0,15,8,4,161,32,20,0,0,2,0,0,32,8,0,1,32,0,0,4,0 +,2,4,3,9,32,10,0,0,1,32,0,0,4,0,0,232,252,0,4,1,0,12,32,0,3,32,0,0,2, +0,25,4,0,1,16,0,16,8,104,252,0,10,16,2,0,13,128,0,28,2,0,3,1,0,6,2,0, +3,8,252,32,0,10,32,0,7,64,4,0,0,64,0,1,64,0,22,32,0,5,32,0,0,36,0,5,1 +,8,0,5,56,252,0,1,4,0,42,32,32,0,9,9,0,1,12,0,2,10,2,0,0,1,8,0,2,16,0 +,0,112,249,0,9,80,0,6,32,0,5,2,0,25,4,0,5,1,0,0,8,4,0,0,128,0,7,8,0,0 +,176,252,128,128,0,0,128,0,8,4,0,6,2,0,32,8,0,10,3,32,0,0,4,132,32,0, +1,208,252,0,2,128,0,0,64,0,1,8,0,5,17,0,4,4,0,0,1,0,1,4,0,1,8,0,19,32 +,32,0,1,1,0,1,4,0,1,16,32,0,0,1,32,0,6,128,0,0,8,120,248,0,2,32,0,16, +16,128,0,0,64,0,20,128,0,5,8,0,0,8,0,3,1,128,0,0,16,0,1,64,0,3,40,0,0 +,32,32,8,252,0,0,5,0,0,32,1,32,0,1,8,0,3,2,128,8,0,4,24,0,0,3,64,0,0, +4,0,1,16,0,16,1,0,1,32,64,0,0,147,0,0,8,0,0,2,0,1,9,144,0,0,18,64,208 +,66,0,2,40,40,128,4,48,224,253,128,5,16,8,0,0,192,18,56,0,0,128,0,1, +65,128,0,1,132,12,0,1,8,0,0,128,2,16,0,1,64,16,0,15,32,0,0,16,90,0,0, +64,36,0,0,2,99,0,5,32,162,0,0,4,68,2,0,0,64,8,8,0,0,65,0,1,152,253, +136,0,0,16,16,0,0,64,0,0,8,0,1,2,0,1,128,0,5,4,0,1,1,64,0,2,5,0,17,4, +8,0,0,32,128,0,1,2,0,6,4,0,8,128,0,1,184,253,0,0,1,0,2,32,128,16,0,7, +32,4,0,34,16,130,0,7,4,0,1,2,0,0,8,64,1,32,0,2,104,249,0,12,4,0,4,64, +0,5,4,0,41,32,0,2,2,0,0,184,253,0,3,4,8,32,1,0,0,8,0,0,64,0,0,1,0,0, +32,64,0,0,128,0,4,1,0,0,16,0,18,64,0,2,128,16,0,1,128,64,8,32,0,2,16, +0,0,1,2,0,1,128,192,0,2,2,0,0,4,152,255,0,16,132,0,2,128,0,1,1,0,21, +64,0,16,16,0,8,192,251,32,0,8,32,0,5,16,0,2,64,0,27,1,0,21,1,0,0,200, +253,0,3,20,20,128,0,7,128,32,0,1,2,0,4,1,8,1,0,17,33,1,0,2,2,16,0,1, +64,33,0,0,64,128,128,0,4,128,0,2,8,8,64,0,1,168,249,0,4,1,0,4,128,16, +8,0,12,2,1,0,22,32,16,0,0,128,0,11,2,16,0,1,64,0,1,224,255,0,0,32,2,0 +,1,2,0,4,40,0,0,16,0,1,20,8,128,16,0,6,128,0,22,64,0,0,10,0,5,2,4,0,4 +,2,0,5,20,40,255,8,0,2,2,0,9,16,0,1,16,0,5,1,128,0,0,2,16,0,15,128,8, +0,0,1,64,0,0,1,0,1,32,0,1,128,128,0,3,64,0,3,32,0,1,128,0,0,128,88, +253,0,1,8,0,7,64,0,5,1,0,30,16,0,23,8,251,0,9,128,0,2,128,0,4,64,8,0, +24,128,0,26,152,251,0,64,8,0,1,32,0,5,24,253,0,2,16,0,22,32,0,24,2,0, +4,32,0,14,136,253,0,4,8,0,4,128,0,3,64,0,2,1,0,4,80,0,21,16,0,1,1,32, +0,5,16,0,1,4,0,1,32,0,6,64,160,252,0,1,32,0,2,1,0,6,1,0,34,32,0,3,16, +0,9,64,0,2,1,32,0,0,8,0,0,64,252,0,0,128,0,4,64,8,0,18,128,16,0,27,4, +0,8,1,0,5,72,254,0,2,64,0,2,64,0,3,8,0,3,8,0,1,32,0,6,128,0,17,64,0, +11,128,0,13,152,253,0,0,64,0,8,16,0,46,64,0,1,1,0,5,16,0,4,216,254,0, +67,4,0,1,16,0,0,2,0,0,216,252,0,2,128,0,2,1,0,6,4,0,1,16,0,7,32,0,19, +128,8,32,16,0,2,8,128,0,7,2,0,8,80,248,4,0,15,4,0,26,64,2,0,0,4,0,1,1 +,0,5,64,0,2,128,0,4,16,0,0,16,0,1,64,0,0,16,252,0,0,1,4,0,7,1,0,0,32, +0,12,2,0,16,64,0,16,1,0,2,8,0,6,16,255,0,2,32,0,0,32,0,0,2,128,0,0,64 +,0,8,16,0,0,8,0,21,32,0,1,144,2,2,0,2,8,0,2,32,0,0,16,0,1,128,0,3,8,0 +,5,80,250,128,0,2,2,0,4,32,0,14,128,0,0,2,0,22,40,0,1,32,0,2,34,0,4, +32,0,1,4,128,0,0,16,2,16,0,0,232,255,16,0,16,32,0,40,8,0,4,32,0,1,1,0 +,4,144,254,0,4,2,0,1,4,0,0,32,32,0,0,8,0,1,8,0,0,129,0,3,9,0,0,4,2,0, +0,16,0,17,16,0,3,16,0,0,2,0,0,8,0,5,1,64,0,0,16,128,0,2,128,0,1,128, +84,248,16,1,8,32,0,0,64,0,15,128,0,24,128,0,0,2,32,0,0,16,0,3,4,0,0,8 +,0,3,4,0,1,8,8,0,0,8,0,0,1,0,0,224,254,32,0,0,4,32,160,18,0,1,8,0,0, +16,42,0,0,4,0,1,16,160,162,2,0,2,19,0,0,2,4,0,0,8,0,16,5,8,128,0,0, +132,129,4,144,0,0,32,32,0,0,8,0,0,4,0,0,160,2,64,82,8,0,0,9,64,0,0,72 +,0,0,1,0,0,168,250,128,64,120,14,162,4,0,1,2,64,0,0,10,8,0,1,16,37,0, +0,20,2,0,0,4,240,32,0,0,68,2,33,144,0,16,209,130,128,2,26,72,17,4,0,0 +,16,0,1,2,0,0,1,88,130,0,3,17,0,0,64,12,9,4,81,0,0,224,254,128,0,0,33 +,8,1,0,9,32,0,4,16,128,32,0,0,4,2,0,0,16,0,17,1,0,0,2,0,2,16,0,3,2,0, +1,136,0,4,1,0,1,2,0,1,16,0,0,136,248,0,1,4,32,128,0,2,16,64,0,0,8,2,0 +,2,16,0,5,1,0,1,32,128,0,16,32,0,5,2,0,9,4,0,5,1,4,0,2,176,248,16,0,2 +,128,0,0,16,0,18,33,0,24,2,0,2,8,0,13,4,129,0,1,148,250,0,4,64,0,47,1 +,0,6,16,0,2,128,0,7,8,251,16,0,3,128,0,3,8,0,15,4,0,34,2,0,1,64,0,0, +66,0,0,17,32,0,0,1,0,0,220,250,0,5,18,0,15,128,0,34,3,32,0,3,16,0,2, +128,0,4,176,252,0,11,2,0,4,64,0,25,128,0,2,2,0,3,64,0,2,128,0,7,64, +128,0,0,2,0,3,248,249,0,60,128,0,12,144,255,0,4,64,0,18,4,0,19,64,0, +13,64,0,8,2,0,2,184,255,0,3,8,0,0,64,0,7,4,0,2,97,6,128,0,2,16,36,0, +22,16,0,0,2,0,17,64,0,0,4,0,0,192,252,0,9,2,0,11,8,0,4,4,0,28,4,0,0, +160,0,3,16,4,0,0,1,0,4,48,250,0,0,4,0,4,16,0,1,8,0,10,2,0,2,64,0,0,32 +,0,16,4,0,8,128,0,2,66,0,5,4,0,1,8,0,0,1,0,0,64,80,249,0,3,9,0,6,9,2, +0,0,32,0,2,1,48,0,3,24,0,19,4,0,2,64,0,3,128,0,1,2,0,7,128,16,0,0,32, +64,0,0,64,0,0,208,255,0,3,16,0,3,4,0,0,1,32,0,1,128,0,10,65,0,20,128, +0,2,4,0,4,4,0,0,64,8,0,3,72,0,6,40,251,32,72,164,16,0,2,26,0,4,32,8,0 +,2,80,0,5,1,0,1,4,0,15,160,8,4,0,1,192,128,0,13,8,0,3,32,1,36,0,0,152 +,252,0,4,2,0,0,24,0,5,128,0,2,128,0,5,12,0,19,64,0,2,192,0,19,128,64, +16,8,48,251,0,0,64,0,0,128,7,1,0,0,24,0,9,176,128,0,5,2,0,17,224,0,0, +48,16,0,0,240,0,13,30,16,0,3,224,0,0,28,0,0,208,251,0,0,8,0,0,144,70, +0,1,24,0,5,64,0,2,80,8,0,8,8,0,14,32,0,0,49,1,0,0,208,0,13,26,1,0,3, +32,1,36,0,0,40,250,0,0,80,128,8,16,0,2,9,0,4,16,2,0,1,96,36,0,4,64,2, +0,1,1,0,15,128,128,0,2,40,0,12,64,0,5,1,32,0,0,64,253,96,0,0,28,128,7 +,2,0,0,6,0,4,224,0,3,144,0,5,3,0,1,12,8,0,14,64,1,60,16,0,0,48,0,13, +30,16,0,3,128,0,0,20,0,0,144,251,0,0,64,0,0,16,0,8,128,64,0,2,160,0,6 +,2,0,17,160,1,0,23,128,0,0,16,0,0,120,255,0,0,5,16,1,6,1,0,6,128,5,0, +2,64,36,0,4,44,0,1,176,8,0,14,128,69,48,4,0,15,24,5,0,4,1,32,0,0,208, +254,32,0,0,128,64,0,3,64,1,104,4,1,160,1,0,2,16,0,0,2,17,0,2,65,0,1, +20,0,7,48,0,6,24,0,3,192,2,0,2,8,0,0,64,160,1,0,0,144,70,82,64,0,0,72 +,66,104,0,0,13,32,1,4,0,0,168,248,0,4,2,0,2,2,96,32,0,2,1,0,9,2,128, +32,0,7,12,0,6,6,0,3,192,128,0,5,2,0,2,6,128,0,3,96,0,0,12,128,0,2,104 +,252,0,0,64,12,128,7,1,0,1,192,2,32,0,1,128,1,0,2,176,128,6,16,0,3, +226,65,44,0,7,12,0,6,6,0,3,240,0,3,96,0,0,3,0,1,60,0,1,113,0,0,30,0,0 +,2,96,0,0,15,96,1,44,0,0,120,255,8,8,4,128,22,0,2,64,1,96,10,0,0,128, +41,0,2,80,8,26,1,0,3,160,17,20,0,7,10,0,6,5,0,3,208,0,4,34,1,0,0,128, +180,8,2,144,0,0,154,4,16,98,0,0,13,160,0,0,20,0,0,43,249,0,0,68,48,18 +,16,0,2,128,65,96,17,64,8,4,0,2,96,36,136,0,3,32,2,4,152,0,7,10,0,6,5 +,0,4,40,0,2,96,64,12,0,0,48,128,0,0,22,68,0,0,64,0,0,16,0,0,64,12,192 +,0,0,24,0,0,161,250,96,0,0,60,128,7,2,0,1,64,2,120,0,0,3,96,65,0,2, +144,0,0,22,4,0,2,3,224,129,32,16,0,19,48,0,3,24,0,0,15,228,1,60,160,7 +,176,0,0,30,208,0,0,26,0,0,14,0,0,1,36,0,0,168,249,4,64,48,0,5,2,96, +16,12,136,129,0,2,160,0,0,24,0,4,2,0,0,32,0,25,96,64,12,128,1,0,0,8,4 +,64,0,1,4,3,0,1,12,128,0,0,32,0,0,97,248,128,1,48,0,0,22,1,0,2,129,96 +,0,0,44,0,0,9,0,2,64,32,16,4,0,2,136,128,69,16,8,0,24,96,0,0,12,128, +137,176,0,0,135,128,0,0,24,1,163,0,1,12,0,0,1,16,0,0,120,253,160,1,0, +5,64,0,0,8,0,1,160,0,0,4,0,1,144,36,154,80,3,0,1,1,0,1,4,0,7,8,0,6, +164,1,176,128,6,16,0,0,26,0,0,32,8,0,0,128,33,0,1,144,22,16,0,1,72,0, +0,8,18,1,32,0,0,4,0,0,112,249,128,1,0,2,2,0,7,1,0,2,64,0,0,24,0,0,3,1 +,0,2,128,0,8,32,0,6,18,0,1,32,6,0,1,24,0,1,2,0,5,6,4,0,3,66,0,5,208, +249,0,2,128,7,1,0,1,192,2,0,2,96,1,0,2,176,0,0,16,0,0,130,0,2,226,65, +44,0,7,2,0,6,128,1,60,16,6,48,0,0,24,196,0,0,96,0,0,3,0,1,60,8,0,0,1, +0,0,30,0,0,131,24,64,3,0,1,44,0,0,8,252,4,0,1,128,38,0,2,64,1,0,2,160 +,16,1,0,1,80,0,0,24,9,3,0,2,160,1,20,0,7,8,0,6,4,72,4,0,0,6,16,0,1,65 +,0,1,34,1,128,137,52,1,34,0,0,72,26,4,3,72,2,1,0,0,64,20,0,0,202,248, +140,1,2,0,0,16,0,2,128,65,0,0,17,0,0,192,4,129,16,0,0,160,132,24,16, +11,0,1,64,2,4,152,0,16,48,0,1,192,192,36,24,1,3,96,34,12,0,0,16,129,0 +,0,6,0,0,4,65,0,0,33,32,1,140,0,1,24,0,0,200,248,224,1,0,0,128,7,2,0, +1,64,2,24,0,1,32,1,12,0,1,144,0,0,30,192,3,1,0,0,3,224,129,32,16,0,14 +,96,0,0,60,128,1,240,0,0,30,208,3,25,0,0,15,228,1,60,160,7,50,0,0,30, +208,0,0,18,16,15,98,0,0,37,0,0,40,254,136,1,1,0,5,2,96,16,0,0,64,1,48 +,32,0,0,128,0,0,24,0,0,3,0,2,2,0,0,32,0,7,4,0,6,2,0,0,1,0,0,6,194,0,2 +,3,96,0,0,12,128,1,0,0,8,4,0,2,4,1,104,32,12,0,1,32,0,0,9,252,128,9,0 +,1,166,0,3,137,96,0,1,128,68,176,0,1,128,0,0,24,16,3,4,0,0,44,128,81, +144,8,0,14,128,5,48,0,0,38,208,0,1,81,3,96,66,12,128,1,49,2,23,194,68 +,88,0,0,128,96,2,13,128,73,16,0,0,24,254,160,65,0,2,80,0,0,154,72,0,0 +,104,17,0,0,32,0,1,128,6,16,0,0,26,64,147,0,1,5,0,1,4,0,7,4,0,6,34,4, +177,128,6,0,1,18,73,8,8,0,0,1,32,0,1,132,16,82,8,0,0,66,0,0,8,0,0,1, +32,0,0,4,0,0,8,254,128,1,0,2,130,0,0,24,0,1,96,0,5,6,0,1,24,0,0,3,0,1 +,8,0,0,128,0,8,8,0,6,4,0,1,32,0,5,1,0,5,2,128,128,0,9,224,254,128,65, +0,0,128,7,176,32,8,192,2,96,16,0,0,96,1,0,1,6,0,2,192,1,0,1,11,96,0,0 +,44,0,7,2,0,6,1,64,60,128,7,0,1,16,0,6,12,0,1,112,0,0,6,0,0,3,0,1,12, +128,1,44,0,0,32,253,136,5,0,0,128,6,82,0,0,24,73,1,96,0,1,160,16,1,0, +0,6,0,0,36,0,0,64,18,2,0,0,133,48,0,0,20,0,7,4,0,6,2,8,4,194,70,1,0,0 +,136,2,8,98,34,32,4,0,0,4,0,0,70,146,0,0,2,0,0,16,1,34,0,0,4,8,21,0,0 +,177,255,0,0,1,2,0,0,16,96,0,0,24,128,65,96,66,0,0,192,4,1,0,1,4,8,0, +0,16,19,0,1,38,0,0,4,152,0,7,8,0,6,4,80,0,1,64,1,0,0,72,0,0,16,2,34, +12,0,1,48,9,68,72,0,0,152,4,99,0,1,140,1,4,26,0,0,19,249,96,0,1,128,7 +,146,0,0,30,80,2,88,0,1,32,1,0,0,128,1,48,32,6,192,131,0,1,8,100,128, +32,16,0,6,32,0,6,112,0,0,60,0,0,7,0,1,30,196,0,0,120,0,0,3,104,0,0,60 +,128,3,176,0,0,30,192,0,0,24,64,15,96,0,0,36,0,0,16,254,4,64,0,2,160, +0,0,24,16,2,96,0,1,64,1,0,5,4,3,0,1,10,128,65,32,0,0,2,0,6,1,0,6,64,0 +,4,24,0,1,96,0,3,48,0,0,6,64,0,0,24,0,0,3,96,0,3,32,0,0,178,254,0,0,1 +,0,1,38,65,0,0,24,0,0,161,96,33,0,0,128,80,0,2,192,34,64,0,0,138,0,1, +132,130,9,16,10,8,0,6,4,0,5,128,4,48,0,0,6,8,0,0,24,2,34,100,66,0,0,4 +,0,0,48,0,0,38,132,0,0,24,0,0,11,2,32,76,4,136,16,0,0,168,248,160,0,2 +,32,152,0,1,64,0,0,104,0,0,1,32,5,133,128,0,0,16,0,0,2,64,0,0,41,64,1 +,0,0,8,6,128,0,6,82,0,6,41,0,0,176,128,32,192,8,154,80,0,2,1,0,2,132, +22,82,128,0,0,66,3,8,0,0,1,0,1,4,0,0,148,254,0,0,1,0,2,64,0,3,96,0,1, +128,0,1,16,0,5,64,0,5,2,0,5,36,1,0,5,10,0,1,32,0,0,193,128,16,0,8,6, +128,0,10,16,250,96,1,0,0,128,1,176,32,0,0,192,2,96,0,0,3,96,1,12,0,1, +193,0,1,200,0,0,32,0,0,11,96,0,0,44,0,15,224,1,60,32,6,240,0,0,24,0,0 +,128,0,1,12,0,1,12,0,0,4,112,0,0,6,0,2,16,0,2,44,0,0,80,249,168,40,0, +0,128,0,0,80,0,1,64,1,96,0,0,1,160,0,0,132,32,0,0,192,0,0,88,64,0,0, +68,0,0,133,48,0,0,20,0,7,16,0,6,168,1,4,1,36,212,0,0,24,32,11,0,1,128 +,16,0,0,4,0,0,66,146,0,0,2,0,0,8,1,1,64,8,0,0,20,0,0,67,254,192,8,0,1 +,70,96,0,1,128,65,96,65,12,64,9,0,0,16,16,1,0,0,64,4,16,34,0,0,38,128 +,49,152,0,0,1,0,5,130,0,6,129,137,0,1,64,2,40,152,0,0,64,0,1,12,1,0,0 +,176,8,70,68,0,0,88,4,8,1,16,0,0,8,0,0,24,0,0,9,252,0,0,129,0,0,128,7 +,146,0,1,64,2,120,0,0,15,36,1,13,128,1,48,128,6,192,0,0,88,0,0,8,228, +1,32,16,0,14,192,1,60,128,1,48,0,0,30,200,3,0,1,3,0,1,60,128,1,176,0, +0,30,192,3,24,0,0,3,0,1,36,0,0,4,249,68,65,0,1,6,96,0,2,130,0,0,32,12 +,0,0,1,0,1,6,1,128,24,0,0,128,32,0,0,10,130,1,32,8,1,0,5,128,0,6,128, +65,0,4,24,8,3,2,0,0,12,8,0,0,48,0,0,4,64,0,0,24,0,0,3,0,0,16,0,0,8,0, +0,32,0,0,112,249,128,16,0,1,6,128,0,2,33,0,1,12,0,0,1,32,66,32,0,1,88 +,4,2,64,0,0,132,128,1,16,2,2,0,6,1,0,5,128,17,48,0,0,16,1,0,0,88,0,0, +35,0,1,140,0,1,48,0,0,33,136,0,0,24,0,0,19,97,0,0,12,0,1,16,0,0,248, +250,32,0,0,52,4,32,8,0,0,26,64,66,40,0,0,33,164,1,4,0,0,34,16,36,90, +72,0,0,104,0,0,1,0,1,164,128,0,6,64,0,7,4,2,132,0,0,192,24,26,0,0,19, +8,0,1,32,4,0,0,132,198,208,0,1,66,3,40,0,0,1,160,1,4,0,0,180,253,0,1, +48,0,5,1,64,0,1,128,1,1,0,0,4,1,0,0,24,0,1,96,0,2,128,16,16,1,0,5,128 +,0,11,192,0,0,24,0,0,131,0,3,128,0,1,6,192,0,2,3,64,0,5,16,254,96,1, +16,128,1,0,1,24,192,2,88,16,3,0,1,12,128,5,48,0,0,14,0,0,128,0,1,11, +224,1,44,0,0,2,0,6,1,0,5,96,0,0,12,0,1,240,0,0,24,196,3,0,2,96,0,0,12 +,0,0,4,192,0,0,6,0,0,3,88,0,3,44,0,0,72,249,164,40,48,146,0,2,64,72,1 +,40,4,33,136,41,4,128,34,18,136,18,17,35,0,1,133,176,33,20,0,0,8,0,6, +4,0,5,32,0,0,4,0,0,32,212,0,1,65,3,96,34,0,0,32,4,5,0,0,18,194,0,0,2, +0,0,3,40,0,2,8,21,0,0,219,249,204,8,32,1,38,1,0,0,88,136,2,48,0,1,132 +,72,48,34,3,0,0,4,88,4,16,0,0,1,38,0,0,4,40,0,15,128,81,176,32,32,4, +40,88,0,0,136,0,0,64,0,1,8,177,0,0,38,0,0,40,152,8,16,49,4,128,0,0,4, +26,0,0,209,251,0,0,129,60,160,7,0,1,30,64,2,72,0,0,3,224,1,60,0,0,4, +48,32,30,192,128,24,32,8,228,129,32,0,15,224,1,60,128,7,48,0,0,30,200 +,0,0,120,0,1,96,0,0,60,144,1,52,0,0,30,192,0,0,64,16,3,100,0,0,36,0,0 +,66,248,72,65,32,0,0,6,0,2,16,2,80,0,1,128,128,48,0,0,5,0,1,24,0,0,3, +0,0,32,10,2,0,0,32,128,4,0,5,64,2,0,5,128,1,48,0,0,6,0,4,96,64,0,2,48 +,0,0,4,4,0,0,24,0,0,3,64,16,12,0,1,32,0,0,104,248,128,4,160,32,6,0,1, +152,0,0,2,32,0,0,8,8,0,0,48,0,0,2,128,72,80,4,139,0,0,1,36,128,65,32, +0,0,9,0,5,128,4,0,5,128,1,52,0,0,70,1,0,0,128,16,0,0,96,0,2,1,49,0,0, +32,0,1,24,0,0,35,33,1,44,4,136,16,0,0,252,249,32,0,0,148,16,32,216,0, +0,2,64,32,72,0,0,13,32,0,0,52,0,0,32,16,0,0,26,64,32,106,0,0,41,0,0,8 +,54,0,16,4,6,161,6,208,0,0,18,73,8,8,0,0,1,160,9,0,0,144,6,208,24,0,0 +,72,35,10,0,0,1,0,1,4,0,0,4,251,0,4,192,0,2,129,32,0,0,12,0,1,48,16,0 +,0,1,0,0,24,0,0,1,96,0,0,4,4,0,0,48,0,0,4,0,6,2,0,7,48,0,0,6,192,64,0 +,2,1,0,1,128,129,0,1,6,192,0,2,3,0,6,176,250,96,1,48,128,1,192,0,2, +128,88,16,0,2,32,144,5,0,4,96,0,0,11,96,0,0,48,128,0,6,64,0,6,96,0,0, +32,0,0,6,192,128,16,196,0,0,96,0,0,12,128,0,0,60,0,0,6,192,0,0,30,0,0 +,1,90,0,3,44,0,0,16,249,164,40,16,132,0,0,192,0,2,32,40,4,0,1,68,16, +128,34,2,0,2,32,100,0,0,133,48,0,0,48,0,7,20,0,6,34,0,0,16,10,70,193, +2,136,64,8,2,34,128,144,9,53,8,22,200,32,90,4,19,40,0,0,32,4,0,0,20,0 +,0,99,249,204,8,0,1,6,193,2,64,0,0,16,48,0,0,44,0,0,8,48,4,3,0,0,4,88 +,4,32,1,1,10,128,73,0,0,4,0,14,144,65,176,64,32,194,4,72,4,16,98,36, +140,136,5,129,0,0,70,128,8,64,0,0,19,50,4,0,0,2,0,0,24,0,0,1,255,0,0, +129,12,144,7,240,64,6,208,128,72,0,0,15,100,64,12,0,0,4,48,32,30,192, +0,0,24,32,8,224,1,12,0,15,224,1,60,128,1,176,128,30,192,0,0,24,0,0,3, +224,1,60,160,1,114,64,30,208,1,64,16,15,0,1,36,0,0,96,255,72,65,32,16 +,6,0,0,64,24,0,1,48,0,0,12,0,0,64,32,0,0,5,192,32,24,0,1,98,32,10,128 +,1,48,0,15,128,1,48,16,6,132,0,0,24,8,0,0,96,0,0,12,128,1,0,2,196,0,1 +,8,3,64,16,0,2,32,0,0,201,254,128,0,0,24,2,6,0,1,24,144,136,64,0,0,76 +,144,17,8,4,2,192,8,24,132,16,96,1,8,128,1,48,16,0,14,128,1,184,0,1, +32,4,153,0,0,34,100,36,12,136,41,176,16,64,32,66,24,129,16,36,0,1,4,0 +,0,16,0,0,144,255,32,9,36,65,32,88,16,0,0,64,144,8,0,0,13,160,8,5,33, +36,144,136,26,64,16,12,36,1,0,0,8,6,0,16,4,182,128,0,0,80,16,2,97,0,0 +,8,0,0,32,160,1,0,0,144,6,208,2,0,0,66,35,74,64,13,32,0,0,36,0,0,88, +255,128,128,16,0,1,128,0,2,1,0,1,12,0,1,48,0,0,2,193,0,0,24,0,0,1,0,5 +,8,0,16,48,8,0,0,128,0,6,136,1,0,1,6,192,64,0,1,3,32,0,3,16,0,0,224, +253,96,1,48,160,1,64,0,3,96,0,0,12,128,0,0,1,128,5,192,0,0,24,0,1,26, +0,0,3,96,0,9,16,0,6,104,0,0,48,8,0,0,194,64,8,208,0,2,3,0,1,60,0,0,6, +194,0,0,6,0,0,3,90,0,0,15,128,1,44,0,0,248,254,164,40,48,130,0,0,128, +0,2,136,96,0,0,12,0,0,9,16,193,34,194,40,24,0,0,16,104,34,1,32,0,0, +128,16,4,0,5,16,2,0,5,40,0,0,48,2,32,0,0,8,16,65,0,0,96,34,1,0,1,52,0 +,0,38,64,64,2,0,0,18,40,0,0,33,2,64,20,0,0,50,250,76,1,48,2,22,65,0,2 +,136,0,0,17,64,128,1,48,2,3,192,0,1,16,16,32,17,140,144,81,128,8,2,0, +5,16,1,0,5,136,5,177,64,38,196,4,0,0,17,11,0,0,36,12,0,0,136,176,0,0, +70,64,36,152,0,0,34,48,0,0,12,130,133,24,0,0,112,248,0,0,1,12,144,7, +176,0,1,192,0,0,24,0,0,3,228,65,60,32,4,240,128,6,192,0,0,90,0,0,15, +224,1,12,0,0,7,0,5,144,3,0,5,232,1,12,128,7,240,128,30,192,131,120,0, +0,15,100,0,0,60,160,1,242,0,0,30,196,3,33,0,0,15,224,1,36,0,0,8,254, +72,1,48,32,6,64,0,4,16,12,132,1,32,0,0,3,192,0,0,24,4,0,0,97,16,12, +128,1,0,0,136,5,0,5,208,2,0,5,136,1,32,16,0,0,192,0,0,8,0,0,3,96,0,0, +12,0,1,49,0,1,2,0,0,24,0,1,32,0,1,2,0,0,16,0,0,161,254,0,0,1,176,0,0, +6,128,0,2,160,0,1,140,128,133,16,33,4,192,20,88,0,1,64,2,13,128,1,32, +2,4,0,5,8,2,0,5,132,1,144,0,0,134,192,64,152,32,3,96,36,12,0,0,8,48, +10,64,192,40,24,0,0,3,36,0,0,45,128,137,32,0,0,144,254,0,29,4,0,6,2,0 +,6,8,1,0,4,128,0,14,66,2,0,3,136,251,32,0,0,4,128,0,0,16,0,0,2,64,0,0 +,8,0,0,1,32,0,0,4,128,0,0,16,0,0,2,64,0,0,8,0,1,32,0,0,4,0,7,16,0,6, +40,0,1,128,0,2,2,0,1,8,0,0,1,32,0,0,4,128,0,0,16,0,0,2,64,0,0,8,0,1, +32,0,0,4,0,0,192,251,0,74,152,255,36,0,0,4,128,0,0,16,0,0,2,64,0,0,8, +0,0,1,32,0,0,4,128,0,0,16,0,0,2,64,0,0,8,0,0,129,40,0,0,4,0,17,4,193, +0,0,16,66,2,64,0,0,8,0,0,1,32,0,0,4,128,0,0,16,0,0,2,64,0,2,1,32,0,0, +4,0,0,209,249,12,4,0,15,8,0,6,4,0,1,10,0,15,4,0,2,33,0,5,2,0,10,1,0,0 +,66,0,2,11,253,0,0,64,0,4,2,0,37,64,0,4,2,0,1,8,0,4,128,0,3,64,0,1,32 +,0,2,1,0,0,120,254,8,128,0,2,2,32,0,2,1,32,0,1,128,0,2,2,0,3,1,16,0,1 +,128,0,0,16,0,44,146,253,0,0,4,4,193,16,16,4,2,64,8,8,1,129,40,4,4, +162,16,16,66,66,72,8,8,4,0,0,36,4,128,0,16,40,4,34,160,16,0,0,2,64,32 +,10,0,0,1,32,16,5,193,0,0,16,132,130,96,0,1,10,129,8,0,0,132,16,152, +249,0,74,152,255,0,19,64,0,53,152,251,0,1,1,0,3,16,0,3,8,0,2,4,0,0,4, +0,2,8,32,0,26,2,0,2,64,0,2,32,0,2,129,0,10,168,249,0,7,4,0,5,1,0,5,8, +4,0,26,32,0,0,2,0,1,33,0,0,2,0,2,4,0,0,1,1,64,0,8,255,0,11,4,4,0,17,1 +,0,2,1,0,1,128,0,2,128,0,13,4,129,0,2,4,0,2,2,0,6,136,252,0,7,8,0,5, +32,64,0,1,64,0,5,8,0,26,2,4,0,2,1,0,1,2,0,3,128,0,6,228,253,64,64,0,0 +,136,0,0,68,0,0,2,16,0,0,32,0,1,8,0,0,17,0,8,1,0,0,32,16,0,16,64,0,4, +2,0,8,4,0,0,32,8,64,0,2,4,128,64,16,8,112,254,32,0,1,32,0,3,4,0,3,2,0 +,6,16,0,1,64,4,0,0,128,0,22,32,0,2,32,0,3,16,0,1,64,0,10,88,251,96, +128,0,0,48,1,34,0,0,132,26,0,0,80,1,40,12,128,8,0,1,128,22,0,0,16,80, +0,0,64,67,1,128,169,0,16,168,0,0,5,0,0,128,130,4,0,1,8,0,0,40,0,1,164 +,0,0,1,16,64,4,128,0,1,12,2,64,168,168,21,192,254,128,64,0,0,32,132, +144,2,24,4,0,1,20,96,128,32,0,0,8,128,0,0,128,10,4,145,0,2,2,32,20,40 +,0,15,1,0,0,8,0,1,48,8,0,0,128,40,8,4,1,0,0,129,42,2,65,4,72,0,2,16, +172,9,65,37,168,128,249,128,64,0,4,8,16,0,1,16,0,0,128,0,1,32,0,2,2, +16,1,2,0,1,2,0,0,16,8,0,17,32,0,1,128,8,0,1,65,0,0,4,0,2,32,1,20,0,0, +2,0,2,64,1,0,0,64,0,0,8,176,255,0,3,1,66,0,0,16,0,6,1,0,1,4,0,8,1,0, +15,32,0,4,32,0,3,16,0,0,2,0,10,4,130,0,0,16,128,200,249,0,33,8,0,6,4, +0,1,32,0,1,128,0,25,240,251,0,14,128,0,14,8,0,1,32,0,3,4,0,1,8,0,19,2 +,0,10,216,251,0,3,8,0,14,64,4,0,24,128,0,1,16,0,5,17,0,0,2,0,3,1,0,2, +128,0,0,16,0,3,96,255,0,4,56,0,3,16,0,0,8,0,1,64,0,1,16,0,3,1,0,3,2,0 +,20,2,0,0,64,0,0,4,0,1,16,32,0,15,80,253,0,63,2,0,9,152,253,0,6,4,0, +36,128,0,2,1,0,1,2,0,4,128,0,15,16,248,0,2,64,0,9,64,0,31,2,0,4,8,0, +20,120,251,0,30,64,0,2,64,0,2,32,0,2,32,0,30,216,253,0,1,40,4,0,9,1,0 +,8,1,0,26,16,0,8,12,0,0,64,0,7,2,0,0,200,255,0,1,68,0,3,8,0,1,64,0,0, +4,32,129,0,1,8,0,0,16,0,2,16,0,24,16,16,0,0,4,0,9,4,0,10,40,249,0,1, +16,0,9,2,0,1,8,0,8,2,0,3,16,0,2,16,0,2,8,0,2,8,0,1,128,0,0,8,0,4,128, +0,3,64,0,6,4,0,2,2,0,3,252,0,13,32,4,0,29,32,0,1,128,128,0,1,64,0,0, +48,0,0,1,0,3,128,0,4,2,0,3,32,0,0,208,255,0,2,32,0,43,32,0,11,32,0,3, +80,0,7,232,253,0,3,4,0,1,16,0,18,1,32,0,15,32,0,1,192,2,0,6,8,0,4,128 +,0,2,2,8,0,0,8,0,3,216,249,0,1,4,0,16,8,0,30,2,0,21,88,253,0,2,8,0,16 +,2,6,192,0,23,4,0,3,8,0,13,128,0,5,112,251,0,14,4,0,30,4,0,13,1,0,11, +136,251,0,2,64,0,42,8,0,26,88,255,0,7,8,0,1,8,0,0,8,0,1,32,0,12,16,0, +1,64,0,3,8,0,1,32,0,8,1,0,10,32,0,2,8,0,1,32,0,3,120,252,0,4,128,0,40 +,32,0,10,128,0,6,1,0,6,220,248,0,0,1,0,0,8,0,11,16,0,4,128,0,2,32,0, +24,4,0,9,16,0,10,186,251,0,7,64,0,3,64,0,1,16,0,3,128,0,29,16,0,4,4,0 +,4,64,8,0,2,32,0,1,128,0,1,56,255,0,1,64,0,6,128,0,0,2,0,1,8,0,11,64, +0,1,128,0,2,128,0,2,64,0,2,64,0,2,8,0,4,16,0,7,128,8,0,10,120,248,0, +11,16,0,15,128,0,2,2,0,2,64,0,2,1,0,11,64,0,2,1,32,0,14,48,250,0,4, +129,0,0,8,0,4,128,0,1,128,0,0,66,0,0,8,0,1,2,16,0,0,34,0,1,8,0,14,128 +,0,0,4,0,0,2,18,0,4,8,0,2,16,8,0,0,4,16,0,2,8,0,0,4,8,0,0,4,0,0,80, +249,0,1,16,0,1,4,128,0,14,1,0,3,128,0,5,4,16,0,5,1,64,8,0,0,64,0,0,8, +0,6,16,4,0,12,130,0,0,16,8,26,253,0,1,164,0,0,160,38,128,4,0,0,6,192, +10,40,64,64,16,0,0,1,98,0,0,4,64,80,1,42,0,0,68,0,0,97,21,0,3,4,64,0, +5,2,32,16,64,40,9,32,1,34,0,0,80,0,0,80,0,0,96,1,0,0,5,8,16,0,0,2,64, +208,2,0,0,16,0,0,66,45,5,12,32,160,248,0,1,32,132,42,1,40,64,4,34,34, +170,10,136,9,0,0,208,8,64,33,0,1,93,32,0,0,205,2,65,16,40,0,2,8,4,64, +32,0,3,4,2,32,0,1,116,0,0,1,0,0,65,49,100,5,160,48,66,129,129,0,1,1, +194,68,17,136,0,1,2,0,0,5,0,0,4,165,36,32,255,0,3,130,0,0,32,0,0,4,0, +0,32,0,1,64,0,3,64,32,0,1,1,32,0,0,8,2,64,16,8,0,2,16,2,128,16,0,3,8, +2,8,0,1,64,0,2,65,64,0,0,4,128,16,0,1,128,0,2,1,64,0,0,8,0,3,4,0,3,48 +,254,0,1,4,32,0,3,64,0,1,16,2,128,0,7,128,0,1,1,32,0,18,128,0,3,32,0, +5,2,0,3,1,128,0,7,16,8,120,249,16,0,46,64,0,6,1,0,9,1,2,0,1,128,0,2, +52,250,34,0,23,8,0,17,128,0,11,32,0,0,4,0,6,64,0,5,128,48,249,2,4,0,4 +,72,0,4,1,36,16,0,0,16,128,0,0,16,128,0,23,32,0,0,4,1,0,0,64,8,0,1,1, +0,5,2,0,10,128,32,248,0,2,132,0,10,8,0,9,16,0,22,64,0,10,8,1,0,3,64,8 +,0,4,200,251,2,0,11,64,0,47,16,0,10,128,52,252,0,30,32,64,0,1,32,64,0 +,1,16,32,0,1,16,32,0,22,1,0,1,4,0,2,136,250,0,30,4,0,1,16,0,3,2,0,1,8 +,0,15,4,0,8,1,0,4,240,249,0,1,8,0,9,2,0,1,12,0,13,4,0,1,16,0,3,2,0,0, +32,0,5,8,0,4,128,0,3,64,0,6,8,0,1,32,0,3,128,250,128,0,2,2,0,3,1,32,0 +,1,128,0,2,2,0,0,32,0,0,8,1,0,1,18,128,0,0,16,0,15,64,0,4,32,0,8,128, +0,4,128,16,0,5,192,254,0,1,16,0,0,8,0,1,64,0,1,8,8,0,0,1,0,3,128,2,16 +,0,0,64,2,0,2,2,4,0,17,4,0,2,1,0,0,16,0,0,128,0,1,16,2,36,8,17,0,1,2, +6,4,0,1,16,0,0,2,0,1,120,255,0,46,16,0,2,144,0,0,4,0,3,32,0,0,8,0,3,4 +,0,1,1,0,0,1,0,3,48,253,0,33,2,0,14,4,0,23,216,253,0,1,53,128,6,0,3,8 +,8,0,1,8,0,0,4,8,0,2,64,32,0,0,8,1,1,129,49,52,0,20,208,40,130,64,0,0 +,8,0,5,128,0,2,1,0,0,8,0,2,16,0,1,152,254,0,1,48,0,0,6,0,3,128,0,12, +64,16,0,2,48,0,20,192,0,0,8,4,0,11,16,0,5,1,16,104,249,224,1,12,0,0,6 +,2,0,1,192,0,2,15,0,1,16,8,0,2,6,0,1,24,32,0,0,228,129,0,0,16,0,19, +192,0,1,4,0,1,16,0,3,128,7,0,1,6,0,2,16,0,0,96,0,0,60,8,144,248,160, +69,4,0,0,6,0,2,64,0,1,36,13,2,0,5,2,0,1,72,0,1,32,8,176,0,20,192,40,0 +,1,80,0,5,128,6,1,0,0,2,0,2,1,0,0,32,0,0,52,2,24,253,0,0,132,0,0,16, +70,0,3,35,4,1,32,4,0,1,9,0,2,24,0,1,32,0,0,128,0,1,48,18,0,19,192,34, +64,4,3,0,0,17,0,4,32,8,0,0,88,4,0,1,16,0,0,128,137,0,0,6,240,248,224, +1,8,128,7,4,0,1,192,3,120,64,15,0,1,12,0,3,30,16,0,0,16,16,11,232,1, +60,0,20,240,0,0,6,192,0,0,121,0,4,128,7,0,1,30,0,1,24,0,1,224,1,60,0, +0,64,254,0,0,64,48,0,5,3,0,2,2,0,1,8,0,2,24,0,1,104,32,0,2,48,0,20, +192,32,0,0,4,0,0,1,16,0,5,1,0,0,24,0,2,16,0,0,128,1,0,1,128,248,128,1 +,48,8,166,0,3,3,0,0,66,140,0,1,128,0,3,24,0,1,96,1,0,0,132,1,176,64,0 +,19,128,8,4,1,32,0,0,2,0,4,6,0,1,24,0,1,96,0,1,128,1,48,8,72,251,0,0, +48,4,128,6,0,7,8,0,0,128,64,0,0,16,0,0,64,32,0,0,104,0,0,1,0,23,80,0, +0,2,5,0,0,104,0,5,128,0,2,1,0,0,8,0,2,16,0,1,32,253,0,3,6,0,17,96,0, +25,128,0,0,8,0,1,96,0,9,16,0,0,64,16,0,0,4,0,0,1,16,184,253,96,0,0,12 +,0,8,15,0,1,12,0,2,32,6,0,1,96,0,25,176,0,1,4,0,0,96,0,4,128,7,0,1,6, +0,1,24,32,15,98,0,0,60,0,0,72,250,40,0,0,4,0,8,45,2,0,0,4,0,3,2,0,1, +96,0,0,76,1,0,22,80,0,1,1,0,0,96,0,4,128,22,1,0,0,2,0,1,72,1,13,32,0, +0,52,10,129,253,128,65,176,0,0,16,0,6,32,4,0,0,48,8,0,1,34,24,0,2,36, +64,4,0,22,96,8,1,4,0,7,32,8,0,0,24,0,1,32,4,128,129,1,0,0,6,203,253, +224,1,56,136,1,2,0,5,15,0,1,60,0,1,48,0,0,30,4,0,0,24,0,0,3,0,23,128, +0,0,6,0,1,24,16,0,3,128,7,0,1,30,4,0,0,16,16,15,224,65,60,0,0,112,253 +,132,1,48,0,9,2,0,0,48,0,1,192,32,24,0,28,128,0,1,4,0,0,96,32,0,5,1,0 +,0,24,0,1,104,0,1,128,1,0,0,8,138,249,128,1,48,0,1,2,0,5,44,0,1,48,0, +2,4,24,0,3,32,16,0,22,64,32,64,0,1,96,4,0,4,70,0,1,24,0,1,96,33,76, +129,1,48,0,0,32,249,0,1,5,128,0,1,2,27,64,3,0,2,168,1,0,4,130,0,1,8,0 +,0,1,0,19,16,0,1,64,16,0,3,8,0,5,128,0,0,8,130,72,1,104,0,2,16,0,0,1, +224,248,0,8,3,0,2,128,1,0,5,4,0,24,1,0,1,4,0,12,128,0,1,2,96,0,1,4,0, +0,1,16,232,252,224,1,12,0,0,6,48,0,0,30,0,0,3,0,1,15,128,1,0,5,4,0,1, +16,0,0,4,0,17,96,0,1,128,1,176,0,4,32,0,3,128,7,48,0,1,196,130,96,0,0 +,15,98,0,0,12,0,0,232,249,164,81,4,0,0,64,24,0,0,90,4,3,0,1,13,128,1, +0,4,128,0,2,1,0,19,32,0,1,128,0,0,80,0,4,4,0,3,128,22,24,0,0,64,64,17 +,96,0,0,141,32,0,0,4,0,0,186,253,12,132,48,1,0,0,192,8,129,4,8,0,1,44 +,4,128,0,4,64,4,0,1,16,128,0,18,128,1,0,1,70,96,8,1,0,1,96,130,0,4,32 +,200,2,0,0,128,1,0,0,33,128,129,17,48,1,120,248,224,1,56,136,1,241,0, +0,28,192,0,0,1,0,0,15,96,0,5,6,0,1,24,0,0,3,8,0,17,224,129,0,0,128,7, +130,0,3,120,0,4,128,7,240,64,6,68,2,24,0,0,15,224,65,60,8,248,253,8, +64,48,0,1,194,0,0,2,4,0,2,12,130,1,0,5,4,0,1,16,0,19,128,1,0,1,6,128, +0,11,193,0,1,128,2,0,2,128,1,48,0,0,217,251,128,9,48,0,0,32,192,0,0, +24,0,3,76,128,1,2,0,3,8,0,1,96,0,0,12,4,0,17,128,1,0,1,6,64,34,0,2,96 +,18,0,4,22,192,0,0,8,4,1,0,1,12,130,1,48,0,0,120,250,0,1,37,144,0,1,2 +,91,4,0,0,104,0,0,64,164,0,1,128,0,2,64,96,0,0,8,68,0,0,160,1,0,17,16 +,20,16,0,0,16,0,0,10,0,1,8,0,0,13,0,3,128,0,0,8,0,0,65,2,8,4,0,1,16,0 +,0,1,220,255,0,1,16,0,3,24,0,5,1,0,10,128,1,0,18,33,0,3,16,0,3,12,0,5 +,128,0,0,16,1,0,0,32,0,0,4,0,0,1,16,184,248,224,129,44,0,1,48,0,0,24, +0,2,16,3,96,1,0,0,128,1,0,1,6,0,1,96,0,1,128,1,0,16,96,0,0,28,0,1,176 +,0,0,22,0,2,16,12,0,2,128,7,48,0,0,6,192,130,96,64,15,98,0,0,12,0,0, +120,252,168,17,20,0,0,64,24,0,0,24,8,0,1,4,1,160,0,1,128,0,2,2,0,0,80 +,64,32,0,0,128,1,0,16,32,0,0,36,0,1,80,0,0,10,0,3,12,0,2,128,38,17,0, +0,2,64,17,64,2,45,32,0,0,4,0,0,3,255,0,0,132,32,0,1,196,2,88,32,0,1, +34,140,208,0,2,38,2,0,0,24,4,0,4,68,0,16,128,5,16,0,1,96,8,77,0,2,17, +128,0,3,32,200,2,24,129,1,0,0,4,128,129,5,48,9,169,250,224,1,24,128,7 +,240,32,30,0,1,24,0,0,15,0,0,129,0,0,128,7,0,1,30,192,0,0,25,16,0,0, +96,0,17,224,65,44,0,1,128,0,0,18,8,0,0,24,0,0,3,8,0,1,128,7,240,32,30 +,68,2,24,16,15,224,65,60,0,0,128,253,4,0,0,32,0,1,194,0,0,24,16,0,2, +12,0,0,1,0,1,6,0,1,24,0,0,3,0,21,128,1,16,0,1,128,0,0,16,0,1,96,16,0, +5,193,0,0,24,128,1,0,2,128,1,48,0,0,65,255,128,65,16,0,0,32,192,0,0, +16,1,0,1,10,12,128,80,0,1,6,0,1,24,0,0,16,2,34,0,19,128,1,36,0,1,64, +40,8,5,0,1,2,0,4,38,192,0,0,24,0,0,2,0,0,36,44,130,1,48,0,0,176,249,0 +,0,48,4,0,2,2,27,64,3,8,0,0,64,36,0,0,128,192,6,16,0,0,2,97,33,8,0,2, +8,4,0,15,32,80,4,0,1,16,0,0,2,64,3,104,0,0,1,0,0,16,4,0,0,64,0,0,8,0, +0,65,0,0,8,0,0,64,0,0,32,0,0,1,88,253,0,6,24,0,0,3,0,7,2,0,2,2,1,0,2, +64,0,31,1,0,1,4,128,0,0,16,0,3,4,0,1,16,72,249,96,0,0,12,0,1,48,0,0, +24,0,3,3,96,1,12,0,2,32,0,2,2,0,1,224,1,0,16,128,64,0,2,176,0,0,22,0, +0,3,96,32,0,0,96,0,1,128,1,48,0,0,6,0,2,64,3,224,65,12,0,1,248,44,0,0 +,4,0,1,16,0,0,88,4,0,2,1,160,0,0,4,0,0,32,4,0,0,128,16,8,0,0,32,0,0, +32,40,0,0,18,0,15,4,0,2,80,0,0,10,0,0,35,1,1,0,0,160,145,0,0,133,0,0, +16,0,0,2,0,2,2,1,160,5,4,0,0,193,251,132,17,50,0,1,192,4,0,1,16,97,0, +0,76,192,0,0,48,4,34,0,0,34,0,1,33,2,1,0,1,136,48,0,16,4,0,0,65,0,0, +96,8,77,0,0,19,1,0,0,32,0,0,136,0,0,32,70,193,4,152,0,0,8,0,0,130,44, +2,8,178,8,43,252,224,1,56,8,0,0,240,32,6,200,0,0,120,64,15,2,129,60, +128,7,242,0,0,6,196,3,120,32,0,0,64,0,0,12,32,0,14,96,64,12,0,1,128,0 +,0,18,200,3,24,16,3,68,0,0,12,128,7,240,32,30,196,128,120,0,0,15,224, +1,60,0,0,88,250,132,1,48,0,1,192,0,0,24,0,3,12,0,0,65,48,0,0,2,0,0,32 +,0,2,96,64,0,21,48,0,1,128,32,16,4,3,0,0,32,12,32,0,0,48,0,0,6,192,0, +0,24,0,0,3,96,0,0,12,0,1,48,0,0,74,252,128,1,48,0,1,192,0,1,5,16,2,65 +,12,128,16,48,0,0,4,4,4,8,4,3,98,0,1,32,4,2,5,0,15,80,48,34,0,0,64,8, +8,1,83,96,4,140,36,40,128,16,6,192,0,0,24,0,0,163,96,32,12,128,65,48, +0,0,112,251,0,1,5,0,1,16,32,26,64,0,2,64,36,0,0,128,192,34,68,2,65,96 +,0,0,40,0,0,129,161,8,4,0,16,16,0,0,128,6,144,8,3,0,1,32,4,1,160,1,4, +0,0,64,80,2,0,0,1,0,0,40,0,0,64,0,0,32,0,0,1,56,255,0,6,24,0,8,4,128, +0,3,64,0,0,12,128,129,0,18,1,0,0,6,64,0,3,64,64,0,5,4,128,0,0,16,0,0, +64,0,1,4,0,1,16,24,252,224,1,12,0,2,32,24,4,0,2,3,96,1,12,0,1,176,0,0 +,6,0,0,3,89,0,1,128,1,12,0,15,96,0,3,176,0,0,22,0,1,88,32,0,0,224,65, +0,0,128,1,112,32,6,0,1,88,0,0,3,224,65,12,0,0,184,251,168,73,4,0,3,24 +,0,0,8,4,0,0,1,160,0,0,4,0,0,32,82,0,0,3,0,0,3,40,0,0,64,129,41,4,0, +15,32,0,3,80,0,0,10,0,1,40,4,128,168,5,0,0,128,0,0,16,4,2,0,1,40,0,0, +1,160,1,4,0,0,113,254,0,0,132,48,9,0,1,4,152,32,8,1,0,0,76,194,0,0,48 +,9,194,96,0,0,24,1,0,0,50,4,140,128,1,48,17,0,14,128,9,0,2,162,0,0,76 +,0,1,48,0,0,32,0,0,4,0,0,65,38,1,4,153,8,0,0,48,1,76,0,0,8,50,66,67, +255,224,1,56,0,1,48,64,30,192,3,0,1,15,0,0,129,60,128,7,128,0,0,30, +196,3,64,16,11,98,128,60,0,15,224,65,0,0,128,1,128,0,0,18,8,0,0,64,0, +0,3,200,129,12,128,7,160,0,0,30,0,1,64,16,15,232,1,60,0,0,64,255,4,64 +,48,0,2,128,24,0,1,1,0,0,12,0,0,65,48,0,1,160,0,0,24,0,0,131,64,16,4, +128,1,48,0,15,128,1,0,2,130,0,0,16,4,0,0,80,0,1,4,0,0,48,0,0,6,192,64 +,24,0,1,64,16,12,0,1,48,0,0,138,249,128,17,48,0,1,64,4,0,0,16,0,2,12, +128,4,48,0,0,6,68,0,0,24,0,0,35,32,1,8,200,9,49,0,15,128,1,0,1,16,128 +,0,0,72,0,1,32,0,0,140,128,5,49,18,6,192,0,0,24,0,1,32,1,12,128,69,48 +,0,0,64,249,16,48,20,66,0,0,16,8,3,0,1,8,0,1,40,0,0,128,192,66,0,0,2, +65,96,11,10,0,0,1,32,33,4,0,16,16,176,144,0,0,208,0,0,2,64,131,0,0,4, +1,32,0,1,2,64,16,2,2,0,1,8,0,0,64,0,0,32,0,1,160,253,0,1,48,0,13,4,2, +0,2,3,0,2,128,1,48,0,17,1,0,1,192,0,2,3,0,0,64,0,3,32,0,0,4,64,0,0,8, +0,3,4,0,1,16,144,255,96,0,0,12,0,3,30,0,2,16,15,96,1,12,0,0,6,178,0,0 +,6,0,0,2,89,0,2,1,48,16,0,14,96,0,0,60,160,7,192,0,0,22,0,0,3,88,32,0 +,2,12,128,1,0,2,4,0,0,88,0,0,3,224,1,12,0,0,48,252,44,0,0,20,10,0,1, +34,26,0,2,2,77,162,0,0,4,0,0,6,80,0,0,3,0,0,1,40,0,1,128,5,50,1,0,14, +32,0,0,4,129,6,192,130,10,0,0,35,44,4,64,8,0,0,4,133,0,1,34,128,0,1, +40,0,0,1,160,1,4,0,0,161,253,132,73,32,16,0,1,4,88,0,2,1,32,196,0,0, +176,8,2,104,0,0,88,4,19,49,4,44,144,137,48,2,0,14,128,69,0,1,6,194,8, +76,0,0,3,50,0,0,64,4,4,2,32,6,1,4,128,0,1,48,1,76,130,9,2,6,83,254, +232,1,12,0,1,176,32,28,8,0,0,120,64,15,0,0,129,60,128,7,128,0,0,30, +192,0,0,64,16,15,224,1,12,32,0,14,224,1,60,0,0,7,240,32,18,200,3,64,0 +,0,3,96,0,0,8,128,7,176,32,6,4,0,0,64,16,15,224,1,12,0,0,200,250,128, +1,48,8,0,1,32,24,4,0,4,65,48,0,0,6,161,0,0,24,0,0,2,66,16,0,0,128,1,1 +,32,0,14,128,1,0,1,6,193,0,0,16,4,3,80,0,0,12,128,1,0,1,6,0,0,32,0,0, +4,0,0,64,16,12,128,1,48,0,0,90,250,144,1,32,1,0,1,8,24,0,2,66,140,130 +,0,0,48,0,0,70,64,0,0,24,128,32,32,0,0,64,129,8,0,0,1,0,14,128,1,48,0 +,0,6,0,0,34,8,0,0,81,32,0,0,64,129,17,177,16,6,0,0,8,8,1,0,0,32,0,0, +12,128,81,176,8,152,255,0,0,48,4,128,0,0,80,136,2,64,0,0,8,8,64,36,1, +128,192,0,0,128,2,65,96,16,72,36,129,164,73,52,0,16,16,4,128,0,0,208, +0,0,82,0,0,32,64,4,13,32,0,0,52,10,64,16,34,0,0,65,3,72,33,0,1,32,0,1 +,160,250,0,12,128,128,0,2,64,0,2,3,34,0,1,128,1,0,18,1,0,1,192,0,0,8, +8,0,0,34,64,12,0,1,48,0,1,4,0,1,16,3,32,0,1,4,0,1,16,56,255,96,0,0,12 +,0,1,114,32,0,1,3,0,0,32,3,96,1,12,0,0,6,178,0,0,6,0,0,3,88,0,1,128,1 +,48,0,15,96,0,0,12,0,1,192,0,0,22,192,0,0,88,32,12,0,1,48,128,1,0,0, +32,6,0,0,3,88,0,0,15,224,65,60,8,24,249,36,0,0,4,0,0,32,16,2,0,0,32,3 +,0,1,1,160,0,0,4,0,0,6,80,0,0,3,0,0,83,40,0,1,132,17,2,16,0,14,32,0,0 +,4,0,0,64,194,64,10,64,80,40,4,12,0,1,48,194,0,2,2,0,0,3,40,0,0,141, +168,17,180,0,0,18,254,140,81,176,8,0,1,66,24,0,0,32,33,4,44,66,1,48, +10,64,100,0,0,24,5,18,48,0,0,128,128,1,1,0,15,128,81,48,17,0,1,8,21,0 +,1,48,0,0,44,136,5,49,32,38,2,4,152,4,11,48,0,0,128,1,8,2,6,120,253, +224,1,56,128,1,162,0,0,30,208,0,0,24,64,15,0,0,1,60,128,7,128,0,0,30, +192,0,0,33,0,0,3,232,1,12,16,0,14,224,1,60,128,1,52,0,0,18,128,3,65,0 +,0,15,224,1,60,128,7,48,64,30,192,3,33,0,0,15,224,1,60,0,0,240,251, +136,1,48,0,1,194,0,1,8,0,2,12,0,0,1,48,0,0,6,97,0,0,24,0,0,2,32,0,0,8 +,130,1,0,16,128,1,48,0,1,194,0,0,16,0,1,49,0,1,128,1,48,0,0,6,0,1,24, +0,1,32,0,5,33,251,128,1,48,0,0,70,192,20,152,0,0,8,4,32,12,0,0,1,48,0 +,0,22,128,0,0,24,0,0,1,34,0,1,128,40,48,64,0,14,128,1,48,0,0,70,0,0, +36,16,0,0,32,64,0,0,32,144,1,16,5,6,64,16,24,0,0,8,36,0,0,140,130,73, +48,9,224,249,0,7,4,0,14,18,0,33,16,1,0,7,18,0,4,200,255,32,0,0,4,128, +0,0,16,0,0,2,64,0,0,8,0,0,1,32,0,0,4,128,0,0,16,0,0,2,64,0,0,8,0,0,1, +0,1,4,0,15,32,0,1,128,0,0,16,0,0,2,64,0,0,8,0,0,1,0,1,4,128,0,0,16,0, +0,2,64,0,0,8,0,0,1,32,0,0,4,0,0,248,255,0,74,152,255,40,0,0,4,128,0,0 +,16,0,1,64,0,0,8,0,0,1,32,0,0,4,128,0,0,16,0,0,2,64,0,2,1,32,0,0,6,0, +15,32,0,0,4,144,0,0,16,0,0,2,64,0,0,8,0,0,1,0,0,8,6,128,0,0,16,0,0,2, +64,0,2,1,32,0,0,4,0,0,17,254,0,2,34,0,1,2,0,0,2,0,4,132,0,3,2,0,3,2,0 +,1,16,1,0,19,64,2,8,0,1,32,2,130,0,1,8,2,34,0,1,132,0,3,2,0,4,27,255, +0,2,128,0,1,64,0,2,8,0,7,64,0,0,64,0,1,16,1,0,24,128,0,4,1,0,10,16,0, +4,64,251,4,0,0,1,0,2,128,0,0,16,0,0,2,0,1,8,0,0,1,32,0,1,128,0,0,16,0 +,1,64,0,25,64,0,18,4,0,1,16,138,248,32,4,0,0,133,0,1,2,64,64,8,8,0,0, +33,32,4,132,128,16,2,2,66,64,0,1,1,1,0,0,128,132,16,0,14,32,0,0,134, +16,0,0,24,4,130,8,0,0,4,128,1,0,1,2,192,0,0,8,0,0,3,96,16,1,128,65,32 +,0,0,6,1,32,255,0,3,16,0,21,4,0,25,8,0,4,129,0,13,80,251,0,27,1,0,25, +2,0,4,32,0,12,184,254,32,0,5,1,0,7,64,0,2,1,32,0,23,128,0,2,34,0,4,32 +,0,6,64,0,0,8,0,0,64,0,5,168,250,0,3,4,0,1,16,0,0,2,0,1,4,8,0,32,1,0, +1,4,0,4,64,0,2,1,0,1,4,128,0,0,16,0,1,64,0,2,1,0,0,56,252,0,3,1,0,19, +1,0,48,152,255,0,9,8,0,9,64,0,2,1,32,0,0,4,0,23,64,0,2,1,32,0,0,4,0, +13,32,251,0,2,8,2,1,32,0,0,4,1,16,0,1,128,0,1,8,0,31,2,0,4,32,0,1,2,0 +,2,4,0,0,128,0,1,1,0,2,2,0,2,57,255,0,5,128,0,7,1,0,8,4,2,0,37,2,0,8, +8,250,0,2,16,3,3,192,0,0,136,0,0,16,16,0,0,64,0,0,1,16,0,0,64,0,5,5,8 +,40,0,0,8,0,18,1,64,0,0,128,2,0,0,208,0,1,4,0,2,1,0,0,64,3,128,1,0,1, +64,5,0,2,200,248,0,2,129,0,1,20,136,0,0,160,8,0,1,160,32,0,0,8,64,1,2 +,8,128,160,0,0,180,21,0,0,1,0,16,128,0,0,4,128,74,10,0,0,128,64,4,32, +16,68,0,3,1,128,64,34,0,0,160,0,1,64,0,3,64,255,0,6,2,0,0,128,0,2,128 +,0,1,8,0,0,1,0,0,8,0,0,128,0,0,16,4,0,18,64,0,2,1,0,4,32,32,4,0,8,128 +,0,6,56,253,0,5,128,0,7,1,0,9,128,0,35,128,0,10,17,255,0,54,1,0,2,128 +,0,0,16,0,13,255,0,1,128,0,23,4,0,25,8,0,3,4,128,0,13,152,251,0,4,128 +,2,0,14,64,0,2,32,0,21,1,0,7,4,0,15,112,254,16,0,8,32,0,3,4,0,0,8,0,5 +,1,4,128,0,18,2,0,12,2,128,0,1,32,32,0,4,32,0,2,188,250,2,0,8,64,0,37 +,4,0,6,8,0,1,32,0,12,128,88,253,0,74,152,255,16,0,73,204,251,0,73,128 +,16,255,0,3,8,0,16,2,0,25,2,0,8,32,0,7,32,0,5,16,255,0,5,128,0,13,8, +64,144,0,50,216,250,0,74,152,255,0,16,4,0,9,32,0,17,32,0,26,248,255,0 +,57,16,0,8,4,0,5,200,254,0,51,16,0,21,136,254,0,27,128,16,0,20,64,0,2 +,32,0,12,1,1,0,1,4,0,0,224,248,0,4,128,0,1,40,0,8,128,0,3,64,0,50,16, +249,0,1,8,0,6,128,0,10,4,0,1,16,64,0,0,8,0,17,8,0,26,8,254,0,2,128,0, +0,8,0,21,2,0,18,64,0,5,4,0,4,64,0,12,152,253,0,7,8,0,3,128,0,13,16,0, +17,128,8,0,8,3,64,0,14,128,249,0,3,3,0,3,1,16,32,0,4,128,2,0,3,1,0,0, +2,0,0,128,0,0,16,0,18,2,0,3,1,0,1,4,128,0,7,2,0,6,248,250,0,4,2,0,0,4 +,0,1,4,32,0,0,64,0,2,12,2,0,3,1,0,1,4,0,1,64,0,16,64,0,14,18,0,5,2,0, +0,128,8,0,0,112,251,0,4,16,0,0,2,128,0,18,72,0,22,32,0,9,128,0,2,4,0, +1,1,128,0,2,240,255,0,8,1,0,16,1,32,0,24,2,0,3,1,0,14,136,255,0,57,4, +0,15,152,251,64,0,0,16,0,1,64,0,1,68,0,0,2,0,0,4,136,0,4,32,0,0,4,0,0 +,10,0,20,32,64,8,0,0,2,0,0,32,0,2,16,16,0,6,64,0,0,4,0,0,32,0,1,4,0,0 +,16,128,212,255,8,0,7,128,16,0,0,2,0,1,8,0,7,32,0,26,4,0,21,8,248,64, +0,0,8,0,1,160,2,0,0,136,0,0,11,0,0,3,196,0,0,4,0,2,64,0,0,8,10,17,64, +0,0,128,40,16,0,15,64,128,24,8,1,129,66,10,0,0,134,16,44,40,130,64,0, +0,5,0,1,64,48,12,0,0,16,0,1,4,0,0,8,0,0,8,249,0,0,129,18,8,10,1,2,42, +21,192,96,16,153,170,192,98,128,0,1,72,1,17,0,1,164,6,0,0,141,146,4,0 +,2,8,4,0,6,2,32,0,0,128,0,0,4,0,0,32,65,70,65,4,0,1,68,2,0,0,65,8,32, +128,1,32,136,0,0,160,0,0,1,6,0,1,144,0,0,24,249,0,1,4,32,2,4,0,0,8,4, +0,0,10,8,0,0,136,64,0,9,4,0,1,16,0,3,16,2,0,6,1,64,0,0,128,0,3,68,0,1 +,8,0,4,64,0,2,1,32,8,0,0,128,0,1,2,0,1,16,0,0,64,249,32,0,8,33,0,0,4, +0,1,16,0,9,32,0,1,8,0,27,128,0,3,4,0,11,254,16,0,20,8,0,51,68,251,2,0 +,8,1,16,0,4,16,0,31,2,0,6,2,0,14,128,16,254,16,36,0,3,16,32,2,64,0,1, +32,1,32,0,0,132,0,1,16,0,0,2,0,1,8,0,21,16,0,2,1,0,10,136,0,3,128,0,5 +,188,251,128,0,0,5,0,4,16,0,0,2,0,3,1,0,0,1,0,0,128,0,0,144,8,0,5,32, +0,20,128,0,6,1,0,2,8,0,0,1,0,1,64,0,3,2,0,0,208,249,12,0,24,16,0,0,2, +0,30,2,0,13,150,252,8,0,15,2,0,9,16,0,17,16,0,8,8,0,1,32,0,13,136,255 +,0,74,152,255,0,3,8,0,16,4,0,3,2,0,25,4,0,19,112,253,128,0,3,64,0,1, +32,0,2,4,0,8,128,160,0,3,64,0,19,8,0,19,8,2,0,0,32,0,0,152,249,0,2,32 +,0,1,2,32,2,0,4,2,0,33,1,0,0,32,0,2,32,0,2,64,0,1,2,32,0,0,8,0,3,16,0 +,1,64,32,104,255,0,17,4,0,7,2,0,46,248,249,0,21,1,0,32,128,0,6,16,0,3 +,128,0,4,128,255,0,1,48,146,36,16,0,0,24,65,9,106,34,0,2,48,18,0,2,2, +0,0,11,1,0,0,1,160,5,181,0,22,26,0,1,104,132,0,0,32,132,0,0,128,0,0, +16,0,0,10,0,1,8,0,0,1,0,3,64,253,0,3,6,2,0,1,8,1,0,15,128,1,48,32,0, +21,24,0,1,96,0,8,16,0,8,120,254,0,1,60,32,4,0,1,30,192,2,96,64,0,2,60 +,0,4,192,3,0,1,12,0,0,1,32,16,0,24,64,64,0,0,128,1,1,0,1,192,128,22,0 +,8,200,250,0,1,4,2,166,0,0,20,2,80,1,64,4,0,2,4,34,0,2,88,72,64,0,1, +128,144,16,18,1,0,24,32,0,2,8,0,3,4,10,0,8,232,254,0,3,38,200,4,0,0, +128,34,66,0,9,16,0,2,12,128,133,176,16,0,21,128,0,1,96,34,0,1,65,0,1, +128,192,66,12,9,0,0,96,18,64,2,0,2,24,251,0,1,56,128,3,240,64,28,0,0, +2,120,64,0,2,56,0,3,30,128,3,0,1,15,104,0,0,12,0,22,6,4,0,0,24,0,1,96 +,0,1,128,1,48,0,0,18,0,1,120,0,0,3,0,3,248,255,0,4,2,64,0,1,2,96,0,8, +24,0,4,2,1,32,0,23,4,0,0,64,0,2,1,0,1,6,194,128,16,0,2,16,12,2,0,2,8, +250,0,1,48,0,0,16,192,0,0,24,0,0,1,100,20,0,2,48,0,3,24,33,3,0,1,12,0 +,0,32,0,0,4,0,25,8,0,0,128,145,0,1,22,192,2,136,4,0,1,2,12,0,3,144, +253,32,0,0,48,192,16,196,8,24,65,8,10,0,1,32,0,0,176,144,2,192,24,2,0 +,1,72,64,133,32,0,0,52,1,0,6,34,0,6,17,0,0,180,8,0,2,2,0,4,32,5,0,1, +70,0,1,2,0,1,8,0,1,32,0,2,200,252,0,5,64,0,0,8,0,7,4,0,7,4,0,0,32,8,0 +,6,12,0,6,6,0,0,48,0,10,128,0,2,2,0,10,184,254,96,0,0,60,0,0,2,240,0, +0,30,192,2,96,32,0,1,64,60,160,5,240,0,0,24,0,1,64,0,1,130,1,48,0,7, +12,0,6,6,0,0,48,8,0,8,128,1,0,0,128,7,0,1,22,0,1,96,0,1,128,1,0,1,96, +254,40,0,0,4,64,4,24,68,130,96,1,0,2,128,5,4,130,2,16,4,1,2,0,1,66,32 +,0,0,32,176,8,0,6,10,0,6,5,0,0,48,1,0,9,81,0,0,128,32,2,0,0,10,0,1,96 +,0,1,128,1,0,1,57,254,128,81,0,1,192,0,2,128,34,98,0,2,16,0,1,195,0,1 +,24,0,1,96,2,12,128,1,0,0,65,0,6,10,0,6,5,0,0,160,32,0,2,128,0,4,128, +1,0,4,12,9,0,1,18,0,1,80,0,1,27,253,224,1,56,128,7,224,0,0,28,0,0,2, +24,64,0,0,224,129,56,128,4,224,0,0,6,16,0,0,120,32,11,98,0,0,61,0,17, +28,0,3,6,4,0,3,224,1,1,0,0,7,0,1,18,0,1,24,0,1,96,0,2,72,250,132,1,0, +1,2,17,0,2,2,96,0,1,128,1,0,1,4,0,1,24,0,3,12,130,1,49,8,0,16,48,0,3, +24,4,0,3,128,1,0,4,16,0,2,16,0,1,64,0,1,226,250,160,1,48,0,0,22,208,0 +,0,24,0,0,9,97,132,0,0,128,5,50,0,0,2,193,0,0,152,4,0,0,32,64,0,0,128 +,17,176,0,17,8,65,0,2,24,0,4,128,73,0,1,6,0,1,8,4,0,1,2,0,1,8,0,1,208 +,252,128,1,2,0,3,24,65,8,74,1,13,32,68,52,128,0,0,192,24,2,64,3,8,0,0 +,13,0,1,132,0,17,36,138,6,0,2,64,131,0,1,12,32,0,0,20,0,0,38,192,0,0, +3,64,18,2,0,1,32,0,0,48,16,168,251,0,7,8,0,1,32,12,0,1,48,0,12,32,0, +16,16,0,0,6,0,3,3,0,2,4,0,0,32,0,1,4,0,10,48,255,224,129,0,4,30,192,2 +,96,32,12,0,0,64,0,0,128,5,240,0,0,24,0,0,3,96,32,12,0,1,16,16,0,17,8 +,0,0,4,0,2,131,0,1,15,0,0,64,44,128,7,240,64,22,0,0,3,1,0,3,60,0,0,16 +,254,44,16,0,4,130,72,1,64,2,12,0,0,17,176,192,2,16,136,24,0,0,3,97,0 +,0,64,16,0,0,32,1,0,16,48,2,70,0,3,11,0,1,129,8,4,20,128,32,18,8,10,0 +,0,34,0,4,4,34,138,250,4,0,6,128,34,2,8,44,0,0,9,48,0,0,195,0,1,64,4, +35,1,129,32,2,0,1,18,0,16,176,32,70,1,0,2,3,4,0,2,64,152,0,3,12,9,16, +0,3,80,0,1,168,250,192,1,0,4,28,0,0,2,24,0,0,15,228,64,60,144,4,224,0 +,0,6,192,3,120,0,0,3,0,1,60,0,7,12,0,6,6,0,0,60,128,7,0,2,192,0,2,14, +96,0,0,32,32,7,224,0,0,18,192,0,0,1,0,1,96,0,0,56,0,0,192,248,36,0,7, +2,33,0,1,132,1,48,32,4,0,2,4,3,96,16,12,0,1,16,0,17,48,0,0,6,1,0,2,2, +0,3,64,32,0,3,16,0,0,129,0,2,128,65,0,1,169,251,128,1,0,4,24,0,0,1,64 +,18,64,128,0,0,49,1,18,193,0,2,35,98,4,76,1,0,0,48,17,0,6,2,0,6,1,0,0 +,48,65,38,0,2,128,9,4,0,0,12,128,1,144,8,6,192,0,0,72,4,2,0,2,128,9, +48,0,0,168,254,32,1,48,146,32,16,0,1,64,8,42,1,1,32,0,0,48,146,0,0, +192,24,2,64,0,0,96,128,69,162,49,52,16,0,6,16,0,6,136,1,0,0,128,0,0, +16,0,0,24,72,160,8,0,0,140,36,132,4,0,1,16,0,0,2,0,3,1,160,1,48,16,16 +,249,128,128,0,2,2,0,4,64,0,13,128,1,32,0,17,1,0,5,3,0,2,128,1,0,10, +128,1,0,1,40,250,0,0,1,60,0,0,2,0,0,32,0,0,192,2,0,0,16,3,128,65,60, +128,5,240,0,1,16,0,0,122,0,1,128,1,49,0,7,16,0,6,232,1,0,1,6,192,0,0, +30,0,0,130,0,1,15,0,1,45,0,3,22,0,6,60,0,0,160,252,136,0,0,4,64,68,8, +0,1,64,1,0,0,4,1,0,0,16,4,160,2,16,68,88,0,0,3,8,128,32,130,17,176,32 +,0,6,16,0,6,40,136,0,1,6,192,66,2,17,33,96,33,1,8,8,20,0,1,192,64,10, +0,6,4,33,209,249,0,0,1,0,1,192,0,0,34,0,0,128,34,66,17,76,136,1,0,1, +195,0,1,128,4,16,2,0,0,136,0,0,136,48,33,0,6,2,0,6,1,0,2,64,1,130,0,1 +,3,4,0,1,128,69,152,0,1,192,4,12,9,0,2,76,2,80,0,1,123,249,224,0,0,56 +,128,7,240,0,2,2,120,0,0,15,96,0,0,57,128,4,224,0,0,30,192,3,112,0,0, +15,98,1,60,0,7,32,0,6,196,1,0,0,128,1,240,0,0,28,192,3,120,32,14,224, +0,0,32,32,0,0,48,64,18,0,3,15,96,0,0,56,0,0,128,248,4,1,0,1,2,1,32,0, +1,2,65,32,12,128,1,0,1,4,0,1,24,0,0,3,0,1,8,2,1,48,0,7,2,0,6,1,0,3,1, +64,0,1,3,96,0,2,128,32,0,1,192,128,16,0,4,2,64,0,1,162,252,128,0,0,48 +,0,0,22,0,0,4,0,1,33,32,0,0,13,128,17,50,0,0,66,193,0,0,152,16,19,98, +0,0,4,128,9,177,64,0,14,128,1,0,1,32,192,0,0,24,0,0,11,100,32,12,128, +16,16,10,0,2,8,5,0,4,8,48,0,0,160,253,144,133,176,144,64,16,0,0,26,64 +,8,10,0,0,5,128,133,48,146,0,0,80,8,2,64,3,104,65,44,164,1,52,0,7,32, +0,6,144,17,50,145,6,16,0,0,2,0,0,3,9,0,0,140,36,0,0,5,0,0,70,2,0,0,18 +,73,3,98,4,140,36,0,0,48,16,104,250,0,4,4,0,5,8,0,5,32,0,1,3,0,2,128, +129,48,0,15,2,0,2,6,0,14,8,0,0,3,0,0,32,0,4,88,251,224,129,60,0,0,2,4 +,32,24,208,2,0,0,32,11,224,1,60,128,5,0,0,32,0,0,192,3,96,0,0,15,0,0, +129,48,0,7,8,0,6,232,1,60,0,0,6,192,0,1,192,3,0,1,15,8,0,0,44,128,7,0 +,1,22,0,0,3,122,0,0,15,0,1,60,16,200,248,44,16,4,4,4,0,1,88,64,1,96,1 +,37,34,136,4,193,2,0,0,4,88,72,3,96,66,1,136,0,1,33,3,0,5,132,1,0,5, +42,0,0,5,17,6,192,72,0,0,64,0,0,98,33,1,0,0,133,20,128,32,8,0,0,10,0, +0,11,8,68,129,8,0,0,4,0,0,194,254,4,0,2,192,0,0,34,64,128,34,2,4,6,0, +3,195,128,40,0,0,16,3,32,2,0,0,128,17,176,32,0,6,16,0,10,22,0,0,130, +152,0,5,80,152,0,3,20,0,0,32,4,0,1,128,81,0,1,40,248,200,1,56,128,7, +48,0,0,30,8,2,120,32,9,192,1,56,128,4,240,0,0,30,192,3,120,64,14,96,0 +,0,61,128,0,6,64,0,6,224,1,56,128,7,242,0,0,30,132,3,120,32,14,224,0, +0,32,32,7,0,1,18,192,2,112,0,0,14,224,1,56,0,0,160,252,32,0,2,2,193, +32,0,0,8,2,96,0,0,10,0,3,4,129,0,0,24,0,0,3,96,0,2,129,0,0,8,4,0,6,2, +0,13,4,0,0,96,0,1,128,0,0,32,8,0,2,16,0,0,2,0,3,64,0,1,25,251,144,1, +48,0,0,22,0,0,4,24,0,0,17,98,129,4,128,1,48,0,0,66,64,40,88,96,3,96, +10,12,64,8,0,16,128,1,48,0,0,16,200,8,1,0,0,3,96,10,12,128,32,16,2,6, +0,1,16,0,0,19,98,0,0,12,0,0,8,48,0,1,255,48,0,0,48,192,36,66,64,152, +64,8,10,33,9,128,133,48,146,196,16,0,0,10,64,67,40,4,44,36,33,4,33,4, +0,6,2,0,5,128,49,48,145,0,0,16,0,0,2,0,0,3,9,0,1,160,0,0,4,0,0,198, +192,8,3,64,0,0,104,0,0,13,0,1,48,16,208,249,0,4,128,0,1,16,0,2,4,0,3, +2,0,1,16,0,0,3,64,16,0,0,128,0,2,4,0,6,2,0,19,1,0,2,192,0,0,8,4,0,0, +97,0,0,12,0,4,254,96,0,0,60,32,6,180,0,0,30,200,2,0,0,32,11,224,1,60, +144,5,192,0,0,22,4,1,98,32,15,128,1,16,128,0,6,64,0,6,224,1,61,0,1, +193,0,0,24,192,3,0,0,64,0,0,96,1,45,128,7,240,0,2,1,0,4,60,32,136,248 +,44,0,0,4,2,36,80,136,2,65,1,64,0,0,37,34,16,5,130,2,0,0,40,138,0,0,8 +,96,0,0,129,136,5,161,64,2,0,6,1,0,5,32,16,4,34,32,192,128,24,64,16, +97,2,0,0,160,4,20,128,16,210,0,1,5,2,2,0,3,4,0,0,18,252,132,17,0,1,16 +,96,0,1,128,34,66,4,6,0,3,5,192,0,0,12,0,0,16,32,12,0,1,9,0,0,194,0,6 +,64,0,10,192,0,0,130,128,0,2,2,0,0,192,32,152,0,1,192,0,0,64,0,0,32,1 +,18,64,2,0,2,248,248,224,65,56,128,1,132,0,0,28,0,0,2,56,16,9,192,1, +56,128,4,48,128,18,192,0,0,121,0,0,14,96,128,60,0,7,20,0,6,208,1,56, +128,7,240,0,0,6,132,3,120,16,0,0,32,1,32,32,7,224,0,0,6,196,3,24,0,0, +3,0,1,56,0,0,8,251,132,1,0,1,2,161,0,2,2,96,0,0,6,0,3,4,192,0,0,20,0, +1,96,64,0,0,128,1,17,16,8,0,6,4,0,10,1,128,0,0,4,0,0,96,32,0,0,64,65, +32,8,0,0,208,0,2,1,0,0,16,0,0,2,0,2,25,251,160,1,48,0,0,4,64,0,0,24,0 +,0,17,33,64,8,128,1,48,0,0,4,192,8,9,0,0,18,100,4,12,0,1,48,2,0,6,12, +0,6,136,1,48,0,1,192,4,0,1,3,96,1,0,0,128,4,144,0,0,6,192,0,0,4,4,139 +,0,0,2,0,2,48,0,0,208,249,144,17,176,144,134,0,0,64,152,64,8,106,34, +13,128,133,0,0,128,64,80,2,18,0,0,11,100,4,44,164,1,52,1,2,0,6,1,0,5, +128,1,50,145,2,16,0,0,24,8,3,9,0,0,1,48,0,0,164,0,1,192,0,0,130,64,1, +9,0,0,140,132,9,180,8,16,252,0,0,128,0,5,16,0,0,96,0,5,2,1,32,8,0,2, +32,0,0,128,1,48,16,1,0,5,144,0,10,4,0,9,16,32,0,1,128,8,4,2,0,4,49,0, +0,40,250,224,1,60,0,0,6,178,0,0,30,192,2,96,0,1,224,1,0,2,1,0,0,22, +196,3,120,32,15,0,3,2,0,5,2,1,0,5,228,1,60,128,5,193,128,30,192,3,98, +32,4,96,1,45,0,1,240,0,2,3,2,0,0,15,224,1,48,0,0,208,248,44,0,0,6,64, +4,80,136,130,72,1,96,20,32,40,8,2,0,0,64,0,0,128,138,64,0,0,10,4,65,4 +,0,0,48,65,0,6,2,0,6,32,136,4,160,66,192,0,0,130,96,0,1,4,136,164,4, +20,0,1,16,136,0,0,4,18,0,1,65,48,8,50,10,17,255,4,0,2,4,96,0,1,128,34 +,2,0,0,32,0,3,32,128,34,12,0,5,4,32,66,0,6,32,0,6,2,0,2,3,0,0,130,0,2 +,96,33,0,0,193,32,40,0,3,128,4,3,0,0,18,0,2,48,64,27,250,192,1,56,128 +,7,132,0,0,28,0,0,2,88,32,3,196,1,0,0,128,1,241,0,0,18,128,3,112,0,0, +14,96,128,28,0,15,192,1,56,128,4,240,0,0,28,128,3,24,0,0,15,32,1,32,0 +,1,224,0,0,6,192,2,26,0,0,14,192,1,12,0,0,176,255,4,0,2,6,164,0,2,2, +64,0,6,128,0,0,12,0,6,32,16,0,18,5,0,4,96,16,4,72,65,32,0,5,3,98,16,0 +,2,32,0,0,250,249,128,1,48,0,0,70,64,0,0,24,0,0,33,98,66,128,132,1,0, +1,17,65,40,16,0,0,3,96,0,0,12,0,0,16,9,2,0,14,128,1,48,0,0,2,192,2,25 +,0,0,3,96,4,44,128,0,0,32,0,1,192,0,0,64,4,11,96,2,12,128,1,152,64, +184,252,160,9,48,146,0,0,128,64,152,64,10,10,0,0,1,160,80,0,0,128,32, +17,0,0,26,64,3,105,33,45,144,9,52,2,0,14,128,145,48,145,4,16,0,0,26,0 +,0,3,97,0,0,41,32,33,4,0,0,6,0,1,2,64,10,100,4,1,128,9,4,9,176,251, +128,1,1,0,1,66,0,1,16,1,0,6,2,0,1,24,0,0,3,96,0,0,12,0,0,128,48,32,0, +6,4,0,6,2,0,2,2,0,1,24,4,0,1,64,0,0,130,0,3,4,0,4,32,0,2,49,0,1,254,0 +,1,61,0,0,2,178,0,0,30,192,2,96,32,3,0,6,24,0,0,3,0,2,232,1,32,32,0,6 +,8,0,6,228,1,60,128,5,193,0,1,196,3,120,0,0,8,104,1,48,160,7,4,0,0,24 +,0,0,2,121,0,0,12,224,1,32,0,0,48,252,136,9,4,4,36,80,136,130,96,1,0, +0,4,1,0,0,64,0,1,16,193,34,24,0,0,19,97,34,140,32,8,18,0,0,4,0,5,16,2 +,0,5,40,136,4,161,66,192,132,88,64,64,8,130,68,160,0,0,48,130,0,2,24, +0,0,9,8,130,12,32,0,0,145,8,2,250,0,0,5,1,0,0,192,96,0,1,128,34,98,0, +0,140,4,5,0,1,16,1,8,88,0,0,144,64,68,40,8,0,0,48,18,2,0,5,16,1,0,5,8 +,0,2,3,0,0,130,80,16,0,2,4,68,5,129,0,4,1,65,0,1,64,2,0,0,48,64,144, +254,224,0,0,56,128,7,128,0,0,28,0,0,2,24,64,15,224,65,0,0,128,1,240, +64,30,200,1,56,0,0,7,192,1,12,0,0,7,0,5,144,3,0,5,200,1,56,128,4,240, +0,0,14,128,3,112,0,0,15,32,1,60,16,7,0,1,6,200,3,112,0,0,3,192,1,60,0 +,0,64,253,4,1,0,1,2,97,0,2,2,96,0,0,12,0,0,65,0,2,192,0,1,8,2,64,0,0, +8,8,0,0,32,128,5,0,5,208,2,0,5,8,0,2,3,0,1,16,16,0,2,12,2,1,0,5,16, +131,0,2,2,0,0,48,0,0,201,250,64,4,50,0,0,22,128,0,0,24,0,0,18,100,20, +13,128,16,0,1,64,193,2,129,0,0,137,16,20,66,128,1,0,0,17,4,0,5,8,2,0, +5,132,1,48,0,0,4,192,68,132,0,0,3,96,0,0,12,0,0,1,48,33,6,0,1,128,0,0 +,11,96,0,1,128,1,176,64,152,253,16,16,1,0,2,8,1,0,21,4,0,6,2,0,24,8,0 +,9,104,251,0,1,4,128,0,2,2,64,0,0,8,0,1,32,0,0,4,128,0,0,16,0,0,2,0,1 +,8,0,0,1,32,0,0,4,0,7,2,0,6,33,0,0,4,128,0,0,16,0,0,2,64,0,0,8,0,0,1, +32,0,0,4,128,0,0,16,64,2,64,0,0,8,0,0,1,32,0,0,4,0,0,184,248,0,12,4,0 +,8,1,0,50,136,251,12,16,6,128,0,1,72,2,64,0,0,8,0,0,129,32,0,0,4,128, +0,0,16,0,0,2,64,16,8,0,0,1,32,0,0,4,0,15,32,0,0,4,128,0,0,16,0,0,2,64 +,0,0,8,0,0,1,32,0,0,4,128,0,0,16,0,0,2,64,0,0,8,0,0,1,32,0,0,4,0,0,9, +251,4,4,0,0,34,0,1,68,0,0,17,8,0,3,16,1,34,0,1,136,0,1,8,0,0,1,128,8, +16,2,0,16,4,128,0,3,64,0,0,8,0,0,1,32,0,2,65,16,0,0,2,0,3,1,32,0,0,4, +128,0,0,139,249,0,0,128,0,0,128,0,5,10,0,11,2,64,0,2,4,0,17,1,32,0,0, +16,0,1,16,0,0,2,64,0,0,8,0,3,4,128,0,0,64,0,1,64,0,0,8,0,0,1,32,136, +248,4,0,11,8,0,6,16,0,27,2,0,7,128,0,14,202,249,0,0,144,0,0,146,0,1,4 +,1,9,64,8,0,0,33,0,0,144,0,0,146,0,0,2,72,130,0,0,8,1,36,128,4,132,4, +0,16,144,0,0,146,32,16,0,1,9,32,1,36,32,36,8,4,5,64,2,72,66,72,0,1,36 +,128,4,144,0,0,18,24,255,0,0,5,32,0,0,2,128,0,0,16,0,3,8,0,0,1,32,64, +0,0,128,0,0,2,0,1,64,0,0,40,160,0,0,20,0,16,1,32,0,3,80,0,0,2,72,1,0, +4,4,128,2,0,1,8,64,0,0,8,0,0,1,32,0,0,176,251,0,2,128,0,5,32,0,10,2,0 +,3,1,0,26,32,0,0,8,0,2,80,0,12,80,249,0,1,1,32,0,3,64,0,0,16,0,1,128, +0,7,3,0,25,1,128,64,0,5,65,0,15,56,253,2,0,9,8,0,38,66,0,4,1,0,7,128, +0,7,200,254,0,19,64,128,0,8,128,0,3,32,0,1,64,0,34,112,251,0,4,16,0, +19,32,0,2,1,2,0,0,4,8,0,1,128,0,0,1,0,0,2,4,0,0,8,0,9,128,0,18,176, +254,0,0,128,32,136,0,1,32,0,0,8,128,32,64,0,0,4,0,1,8,0,3,4,0,26,2,0, +2,2,0,3,128,0,1,8,2,1,32,0,1,1,0,2,1,128,8,16,120,250,0,8,1,0,4,1,0,8 +,4,0,0,128,0,19,16,0,3,4,0,5,8,0,9,130,0,1,8,104,251,128,128,8,21,1, +128,90,208,74,0,0,17,32,0,0,4,0,0,161,16,0,2,208,10,0,0,64,1,1,0,1, +161,0,17,16,32,1,0,1,80,28,0,0,64,1,0,0,64,0,0,164,21,21,130,86,0,0, +128,1,0,1,64,45,133,8,53,24,251,128,1,48,4,13,10,146,50,16,64,34,0,0, +4,0,0,64,16,32,0,2,130,80,131,168,16,36,0,0,32,133,4,0,16,128,32,3, +128,0,0,64,18,0,0,168,1,0,2,4,129,8,4,32,0,0,6,0,0,200,72,25,33,65,16 +,9,96,249,130,0,0,4,0,6,8,0,0,4,0,1,17,0,5,2,33,64,1,0,22,2,0,4,32,0, +7,16,0,0,16,0,4,128,8,16,217,248,34,0,0,16,136,0,1,32,8,0,0,128,0,11, +1,0,3,64,0,0,8,0,19,64,0,1,4,0,11,2,0,0,32,16,4,132,0,2,64,253,0,17, +16,0,4,80,0,0,16,0,1,64,0,14,32,0,8,32,0,4,128,0,0,64,128,0,2,1,0,5, +136,248,0,0,4,128,0,1,6,0,0,64,0,0,128,0,0,32,0,1,132,128,0,2,66,0,0, +8,128,1,16,32,5,128,2,4,0,15,64,0,0,8,0,0,32,0,1,4,128,0,0,16,0,0,2,0 +,3,1,32,0,0,64,4,1,16,0,0,2,64,0,0,8,16,249,0,2,128,0,2,32,2,0,1,128, +0,2,2,0,3,1,32,0,0,128,8,0,0,72,0,31,32,0,5,128,2,0,7,251,0,0,2,0,1,2 +,65,0,3,16,0,10,4,0,3,2,0,0,16,0,27,32,128,0,0,4,0,12,16,251,0,3,4,2, +0,22,16,0,44,184,250,0,3,9,8,0,22,8,0,25,64,0,17,16,250,0,26,128,32,4 +,0,26,8,0,16,112,253,0,73,128,16,255,128,0,0,16,0,1,32,0,8,16,0,5,128 +,0,1,4,0,0,1,0,19,128,0,3,128,0,3,128,0,2,2,0,1,64,0,1,4,0,3,8,0,0, +248,253,0,1,2,0,8,4,0,8,64,0,51,184,255,0,74,152,255,0,74,152,255,0,5 +,128,0,3,32,2,0,0,128,0,3,64,4,0,3,16,0,23,8,0,3,128,0,18,40,250,0,22 +,128,0,1,128,0,22,128,0,0,1,0,6,4,8,0,12,216,250,0,3,16,0,53,4,0,14, +200,254,0,8,8,64,16,0,11,8,0,23,128,0,8,1,0,14,192,250,0,9,128,0,2,2, +0,3,1,0,54,176,254,128,0,5,8,0,0,1,0,1,2,0,1,16,0,6,32,0,0,1,0,0,64,0 +,2,4,0,1,16,0,3,2,0,0,32,8,0,10,8,8,0,0,32,0,3,16,64,0,10,40,251,0,1, +2,0,2,32,0,0,8,0,0,2,0,3,1,16,0,1,128,0,1,64,1,0,1,4,0,0,1,0,12,8,0,2 +,128,0,0,16,0,1,16,0,0,16,0,0,1,64,0,0,4,0,7,1,0,0,64,0,0,8,128,0,1, +64,249,0,2,4,0,2,16,128,0,0,1,0,0,8,0,2,4,0,2,16,0,13,64,16,0,8,32,0, +0,16,4,0,4,64,0,3,32,0,11,8,16,128,249,16,2,0,3,1,0,0,4,0,0,32,0,3, +128,0,5,4,4,32,0,21,1,4,0,2,4,0,1,4,0,1,32,0,14,64,104,248,0,23,32,0, +1,4,8,64,0,16,1,0,8,18,0,3,1,0,0,128,0,1,1,0,6,72,252,2,32,4,0,17,66, +0,3,1,0,7,128,0,5,4,72,0,8,66,0,2,2,0,16,168,251,8,0,7,2,0,11,8,0,0,1 +,0,4,8,65,0,0,32,4,0,1,1,132,32,0,1,2,32,0,17,4,0,11,232,252,0,4,128, +0,1,4,0,3,2,0,0,16,8,0,0,20,0,2,128,0,1,8,0,0,32,0,18,8,32,0,0,132,0, +3,2,0,0,8,40,0,1,4,0,8,64,128,0,1,112,249,24,64,16,0,1,1,0,2,129,0,1, +4,0,3,1,33,0,4,64,2,64,0,1,8,0,5,32,0,11,2,64,32,4,4,0,12,1,32,0,1,2, +64,0,1,192,249,0,1,165,5,0,0,164,21,80,72,90,66,1,65,5,0,0,8,144,20, +54,0,0,80,0,0,80,69,65,67,33,168,2,32,0,2,2,16,16,160,0,3,1,8,8,64,0, +0,40,8,144,20,50,128,130,18,0,0,65,1,42,70,0,0,160,21,20,0,0,20,0,0, +64,81,72,1,64,73,168,161,0,0,144,254,32,32,20,40,6,64,0,0,24,84,192, +42,0,0,4,10,0,0,176,92,32,1,0,0,80,84,130,73,8,69,32,193,0,0,34,0,4, +64,0,4,4,0,2,32,64,1,42,0,0,133,48,2,18,2,64,80,41,0,0,3,80,168,144, +84,133,8,80,8,0,1,73,21,0,0,16,8,104,253,0,1,16,8,1,32,0,0,4,2,64,32, +0,0,4,1,0,0,32,32,0,0,4,0,1,4,128,0,1,8,0,1,1,0,5,64,0,4,4,0,3,64,0,0 +,8,0,0,1,128,0,3,8,0,2,16,4,0,0,64,0,0,4,0,6,8,16,144,248,0,0,64,0,1, +2,0,1,8,0,0,128,0,4,8,4,0,2,4,128,0,0,16,64,0,0,128,0,22,64,32,0,0, +132,0,0,16,0,0,2,128,0,3,1,0,5,4,2,0,2,48,254,0,3,128,0,10,8,0,6,128, +0,1,32,0,22,2,0,5,2,0,5,32,0,8,152,253,2,1,0,3,129,32,0,0,4,0,3,2,0,3 +,1,0,4,16,0,1,17,0,11,16,0,3,2,64,0,5,4,0,2,128,0,2,8,0,10,128,40,248 +,4,0,11,1,0,1,128,0,5,2,1,0,1,64,0,33,8,1,0,3,128,0,2,64,0,1,233,251, +0,4,32,0,0,4,0,2,128,0,0,2,0,0,66,0,3,1,160,0,0,16,0,1,80,0,0,64,32,0 +,14,64,0,0,16,0,15,2,0,2,2,0,0,2,0,3,224,250,0,7,16,128,0,3,64,0,0,32 +,0,1,32,0,5,2,0,6,32,0,12,8,0,2,1,4,0,8,4,32,0,3,16,0,0,2,0,0,1,8,162 +,252,0,12,1,0,6,64,0,52,216,254,0,0,64,0,20,32,0,7,2,0,2,2,0,2,1,0,2, +1,0,29,200,250,0,1,1,32,0,5,2,0,12,64,0,7,64,0,16,1,0,20,128,0,0,176, +252,0,8,64,0,6,8,0,29,32,0,5,2,0,2,1,0,13,32,104,255,0,1,8,0,0,128,0, +4,136,0,3,8,0,10,32,0,17,128,0,8,32,0,3,128,0,0,2,64,20,0,8,152,250,0 +,3,1,0,17,8,0,3,8,32,0,26,32,8,0,4,17,0,1,64,0,6,104,248,0,3,16,0,17, +8,0,3,128,0,26,1,0,9,64,0,6,80,250,8,0,9,17,0,1,4,133,0,0,2,0,0,32,64 +,68,8,0,2,8,0,0,1,8,0,16,16,128,0,0,64,0,0,72,0,1,32,0,0,4,0,0,64,0,4 +,16,0,0,1,0,0,16,0,1,64,0,1,194,249,0,9,64,0,2,5,128,0,0,20,128,2,80, +0,0,8,72,1,40,0,0,4,32,0,17,160,0,0,4,128,0,0,20,2,0,0,64,0,0,8,0,5, +32,0,0,2,10,0,6,232,249,0,14,64,0,0,8,0,0,1,32,0,0,4,128,0,0,16,0,0,2 +,0,46,224,251,0,13,4,0,31,128,0,8,16,0,8,4,0,6,64,251,0,0,21,160,2, +180,128,10,80,1,42,128,5,168,0,0,44,128,2,80,0,0,10,64,1,40,0,0,5,160 +,0,0,20,192,2,0,15,22,128,2,88,0,0,11,224,1,42,128,5,160,0,0,22,160,2 +,88,0,0,11,208,1,40,128,11,176,0,0,22,160,2,232,254,128,9,48,1,134, +213,4,154,0,0,19,32,3,77,160,100,148,1,51,96,6,202,192,25,40,3,102, +192,12,144,1,0,14,128,12,152,1,50,64,6,200,68,19,32,3,100,128,12,56,1 +,50,64,6,152,4,25,32,57,100,128,12,48,1,16,249,255,255,0};static const +unsigned char l435[]={79,231,255,255,98,255,57,0,0,213,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,160,9 +,52,1,38,64,6,156,0,0,19,0,0,25,96,10,76,128,12,135,83,6,200,0,0,25, +96,2,100,128,97,144,1,0,15,12,48,1,50,0,0,178,76,70,19,104,2,76,128,9 +,48,9,50,224,4,192,0,0,152,104,2,100,128,12,52,1,176,254,0,0,21,160,2 +,84,0,0,11,80,1,42,128,10,80,0,0,26,64,5,180,0,0,10,96,1,44,64,5,176, +0,0,45,192,2,0,15,18,160,2,88,0,0,21,192,2,42,64,5,168,0,0,21,160,3, +88,128,10,32,1,52,64,5,176,0,0,22,160,2,40,255,0,11,64,0,5,2,0,31,64, +0,21,152,249,0,74,152,255,0,4,128,0,5,64,1,0,3,128,2,16,0,0,2,0,1,8,0 +,1,40,0,19,4,0,1,80,0,7,4,4,0,6,2,0,3,224,250,0,5,18,0,4,68,0,5,16,64 +,2,10,0,1,40,0,12,64,0,8,80,0,1,32,0,6,16,1,4,0,3,17,0,6,200,248,0,2, +16,0,3,64,160,0,1,1,16,0,3,208,8,0,2,96,2,141,1,0,43,160,0,2,72,248,0 +,18,32,0,2,96,64,12,0,45,128,0,1,240,255,0,1,60,8,0,4,128,0,7,240,0,3 +,112,0,0,12,2,0,43,128,129,0,1,144,254,0,1,52,0,5,32,0,1,64,8,0,3,144 +,36,0,2,8,34,68,0,45,8,0,1,72,248,0,2,64,0,5,4,0,0,140,0,6,1,0,1,104, +129,72,0,44,128,64,0,1,16,252,0,1,60,0,4,192,0,2,7,2,0,3,48,0,3,120,0 +,0,7,4,0,43,96,1,0,1,64,250,0,8,128,0,1,8,0,4,64,0,5,8,4,0,43,128,65, +0,1,64,254,0,1,48,17,0,4,10,0,1,4,1,0,3,128,132,0,2,96,130,68,0,44, +128,1,0,2,251,0,2,16,0,0,80,0,1,64,1,0,1,73,4,0,3,16,40,0,3,2,0,0,32, +0,0,4,1,0,6,40,0,6,20,0,0,52,128,2,0,10,128,16,1,0,10,104,251,0,4,128 +,0,2,2,0,13,64,0,2,16,8,0,6,12,0,6,6,0,0,48,0,0,4,0,24,8,249,0,1,60, +32,0,0,176,32,0,0,192,2,0,1,12,2,0,3,112,32,0,2,24,0,4,8,0,6,12,0,6,6 +,0,0,48,128,5,1,0,10,5,0,11,72,248,8,0,0,52,1,0,0,80,4,0,0,64,1,0,1, +40,0,5,2,0,2,8,0,12,10,0,6,5,0,0,48,128,34,0,10,128,160,0,11,226,255, +0,2,64,0,0,96,128,0,0,128,1,4,0,0,140,2,0,3,16,64,0,2,96,0,2,8,128,8, +0,6,10,0,6,5,0,1,9,3,0,10,128,0,0,2,0,10,48,255,0,1,60,0,1,144,0,2,2, +0,1,15,0,4,32,0,3,120,16,0,0,96,64,12,0,17,12,128,4,0,10,128,1,0,11, +168,249,4,0,3,160,0,2,2,0,1,12,2,0,3,16,32,0,2,96,0,1,128,1,1,8,0,16, +48,16,5,0,12,1,0,10,1,255,0,1,48,9,0,0,64,32,0,1,129,0,1,140,0,4,144, +8,0,2,96,0,1,128,9,8,2,0,16,48,1,2,0,10,128,2,0,11,224,251,0,2,1,0,0, +16,0,1,64,0,2,65,0,4,208,0,4,32,0,0,32,0,0,4,10,0,16,52,130,4,0,2,64, +0,13,104,0,5,232,251,0,2,32,0,7,4,8,0,3,192,0,8,16,0,7,4,0,6,2,0,0,48 +,16,2,0,17,96,0,5,144,251,0,1,12,0,1,176,32,0,0,192,2,0,12,120,16,0,1 +,64,0,0,8,0,6,4,0,6,2,0,0,48,128,5,1,0,2,3,0,19,136,254,4,0,0,4,0,1, +80,4,0,0,64,1,0,1,32,8,0,8,104,4,0,0,128,9,0,0,2,0,6,12,0,6,6,0,0,48, +133,34,0,3,80,0,12,96,128,0,4,250,252,12,0,0,48,10,0,0,96,128,0,0,128 +,1,4,0,0,32,4,0,3,192,132,0,3,128,0,1,68,0,0,8,0,16,48,64,3,0,3,8,2,0 +,11,96,4,0,5,253,0,1,60,0,1,144,0,2,2,0,1,3,0,4,240,0,3,120,0,1,96,0, +0,12,0,7,12,0,6,6,0,0,28,128,4,0,2,192,0,13,24,32,0,4,184,251,8,0,0, +48,0,1,160,0,2,2,0,2,8,0,3,192,0,6,128,1,0,0,8,0,16,48,8,3,0,17,96,0, +5,113,250,0,1,48,0,1,64,34,0,1,137,0,1,130,0,4,192,36,0,2,96,10,0,0, +128,1,129,0,7,10,0,6,5,0,0,48,2,4,0,3,32,2,0,12,34,0,4,32,249,0,2,16, +0,0,144,128,152,64,0,2,33,0,1,148,0,1,80,0,2,35,1,32,0,0,32,4,20,0,17 +,52,0,1,192,72,0,7,36,193,20,1,0,3,8,66,0,4,248,248,0,4,64,0,1,8,0,2, +4,8,0,1,32,0,0,128,0,2,3,0,4,33,0,7,32,0,6,16,0,0,48,0,1,192,0,16,32, +0,5,232,250,0,1,60,8,0,0,176,0,0,30,200,2,0,2,8,0,0,24,0,1,176,0,1, +192,3,120,0,1,224,128,44,0,20,240,0,8,32,32,1,0,4,96,0,5,48,249,8,0,0 +,52,1,0,0,80,0,0,2,64,1,0,1,128,0,1,4,33,0,0,80,8,1,64,3,104,18,0,1,4 +,20,0,7,18,0,6,9,0,3,208,0,9,129,160,0,4,96,17,0,4,107,254,0,2,64,0,0 +,160,32,0,0,128,1,4,0,0,64,16,0,0,132,0,1,96,24,0,1,16,4,128,0,0,32, +16,25,16,0,17,9,0,1,4,1,0,6,144,192,64,8,0,3,64,4,0,4,1,251,0,1,60,0, +1,144,0,0,28,0,0,2,0,1,3,0,1,44,16,0,0,128,0,1,192,0,0,120,0,1,96,0,0 +,36,0,17,12,0,1,48,0,8,60,128,3,0,4,120,64,0,4,128,251,4,0,1,8,0,0, +128,0,2,2,0,2,4,0,3,160,0,4,16,0,2,33,0,7,8,0,6,4,0,1,16,0,11,16,0,0, +1,0,3,96,64,0,4,97,253,0,1,176,0,1,128,0,0,24,0,0,161,0,1,32,0,1,32,0 +,1,64,40,0,2,96,0,1,32,5,16,10,0,17,1,0,10,16,128,0,5,112,0,5,176,248 +,0,1,48,1,0,3,64,0,2,1,0,1,52,0,1,16,0,1,64,10,4,2,0,2,4,128,4,0,5,72 +,2,0,5,4,0,0,4,10,0,0,144,2,1,0,1,72,130,73,16,0,1,128,20,1,0,0,82,96 +,10,12,1,9,16,0,2,16,254,0,2,32,0,8,4,0,7,3,96,64,0,4,3,0,5,162,1,0,5 +,17,0,3,192,0,16,32,32,4,0,3,88,254,0,1,56,0,4,192,2,0,1,12,0,1,12,0, +1,176,0,1,128,2,112,0,3,44,0,17,44,8,0,0,160,0,3,64,32,8,8,0,2,4,0,1, +16,8,2,97,16,12,0,3,104,254,4,0,0,4,4,0,3,64,1,0,1,32,4,0,0,4,16,0,0, +80,8,1,64,11,106,32,0,2,20,0,0,3,0,5,148,1,0,5,10,0,1,1,0,0,208,0,0,1 +,0,2,2,64,0,3,64,1,0,0,64,0,0,8,96,0,0,44,16,0,2,210,248,4,0,0,4,8,0, +3,128,1,4,0,0,8,1,0,0,48,1,0,0,96,24,0,0,64,19,104,1,0,2,24,16,0,16,4 +,33,0,0,208,4,0,2,32,65,4,1,0,2,64,1,0,0,72,0,0,17,66,34,72,4,0,2,112 +,250,0,1,60,0,5,2,0,1,3,0,1,60,8,0,0,128,0,1,192,129,24,32,0,2,36,128 +,2,0,5,64,1,0,7,12,0,1,112,32,0,2,120,0,0,15,0,2,128,1,0,1,30,208,3, +120,0,0,3,0,3,64,248,4,0,7,130,0,1,8,4,0,0,48,0,1,160,32,0,1,3,96,64, +0,2,32,8,0,17,8,0,0,192,0,6,4,0,2,4,0,4,96,32,12,4,0,2,25,251,0,1,48, +0,5,33,0,1,44,0,1,4,4,0,0,64,8,0,0,64,1,96,1,0,2,16,2,8,0,6,4,0,7,148 +,0,1,80,0,3,32,33,4,0,3,18,8,0,0,136,8,9,114,2,72,0,3,176,255,0,2,16, +0,0,80,0,1,64,2,4,0,0,1,0,1,52,0,1,16,0,0,10,64,35,4,32,0,0,160,65,4, +0,17,16,1,0,0,208,24,2,0,1,72,130,73,16,0,1,128,20,145,8,82,96,10,108 +,128,0,4,192,249,0,4,128,0,2,1,0,1,12,4,0,0,48,0,3,16,0,0,3,0,2,128,1 +,0,0,128,4,0,5,64,2,0,7,32,32,0,0,192,0,10,2,64,64,0,2,96,0,5,192,249 +,0,1,12,0,1,176,128,0,0,192,2,0,4,12,0,1,176,0,0,22,4,1,122,0,1,224,0 +,0,44,0,17,44,0,1,64,64,24,0,1,64,32,12,4,0,1,128,3,192,128,16,8,2,66 +,0,5,104,251,8,0,0,4,0,1,80,0,1,64,1,0,1,32,4,0,0,4,0,1,80,8,139,0,0, +10,104,129,0,0,32,133,20,0,17,20,18,0,0,128,2,0,0,17,0,1,1,40,0,2,128 +,4,192,2,128,0,0,16,32,132,0,4,26,255,0,2,64,0,0,96,0,1,128,2,0,1,12, +8,0,1,1,0,0,96,24,12,0,0,16,2,128,0,0,128,69,24,16,2,0,6,1,0,7,24,0,2 +,132,24,3,0,0,32,65,32,0,3,4,128,0,0,72,0,0,17,98,33,0,4,176,248,0,1, +12,0,1,144,0,2,2,0,1,7,0,1,8,8,0,0,128,0,0,18,192,3,120,0,1,224,1,36, +0,17,32,0,1,240,0,0,6,0,1,120,0,0,7,8,0,2,2,48,128,30,208,3,120,0,5, +120,249,4,0,0,48,8,0,0,160,0,2,2,0,4,48,0,1,160,32,20,0,4,128,1,32,8, +2,0,6,1,0,7,40,0,3,24,0,8,2,192,0,3,96,0,5,105,254,0,1,48,2,0,0,64,0, +2,2,0,1,4,8,0,0,52,4,0,0,64,2,8,128,82,96,20,0,1,1,145,128,8,0,5,64,4 +,0,7,16,0,1,160,20,88,8,0,0,32,34,68,1,0,2,4,128,72,72,8,1,2,66,0,4, +168,250,0,1,48,1,0,0,144,0,1,64,32,0,1,13,0,1,4,4,0,0,144,24,18,64,3, +2,32,140,4,0,0,4,0,18,1,0,0,208,2,0,0,64,0,0,8,12,129,33,9,2,128,4,0, +1,2,66,64,104,0,1,32,17,54,0,0,152,250,0,2,32,0,0,64,0,2,128,0,1,12,4 +,0,0,48,0,1,64,0,0,8,0,0,3,0,1,12,0,3,5,0,5,128,2,0,8,32,0,0,192,128, +0,2,96,0,0,12,0,3,2,0,1,24,0,0,3,96,0,3,48,0,0,224,248,0,1,56,0,1,176 +,128,0,0,192,1,0,1,12,0,1,48,0,1,176,0,0,22,4,1,121,0,0,2,0,1,44,0,17 +,44,0,1,64,0,2,3,64,0,0,8,0,0,129,0,0,128,5,0,1,16,8,2,1,0,2,1,1,0,0, +40,251,8,0,0,52,5,0,0,80,0,2,136,0,1,64,16,0,0,48,65,0,0,80,8,139,0,0 +,18,104,16,77,16,0,0,20,0,17,20,18,0,0,128,68,0,2,98,68,140,8,4,0,0, +128,2,0,1,24,0,0,3,96,128,0,1,8,48,66,90,250,0,1,4,32,0,0,96,0,1,64, +128,0,1,12,2,0,0,48,17,0,0,160,0,0,12,0,0,32,0,0,128,13,0,1,24,16,0,6 +,6,0,6,3,0,0,24,0,2,8,0,1,3,98,68,44,136,4,2,0,0,3,0,1,24,17,11,98,12 +,0,0,128,16,48,64,24,251,0,1,60,0,1,144,0,1,128,0,2,15,0,1,28,0,1,128 +,0,0,18,192,3,121,0,0,15,8,0,0,36,0,17,32,0,1,240,64,0,0,192,3,88,0,0 +,11,224,1,0,1,4,0,1,22,192,2,24,0,1,224,129,12,0,0,184,249,4,0,0,48, +16,0,0,96,0,1,64,0,2,4,0,1,48,32,0,0,160,0,0,12,0,1,2,0,0,12,8,0,0,32 +,8,0,16,40,0,2,128,0,2,96,0,0,12,0,3,2,0,1,24,0,0,3,96,0,2,128,48,0,0 +,89,252,0,1,48,0,1,128,0,1,64,162,0,1,44,16,0,0,24,2,0,0,128,0,0,16,0 +,0,2,96,8,32,0,1,16,0,17,16,0,1,128,0,2,35,114,64,142,132,144,0,1,4,0 +,1,28,144,35,1,129,0,0,128,0,0,128,64,248,254,0,2,1,0,0,208,0,1,64,0, +0,9,0,0,33,0,1,52,64,0,0,16,4,26,64,147,0,0,2,65,32,136,36,16,0,16,32 +,129,6,208,36,0,0,64,3,40,34,69,4,0,1,128,66,0,1,10,65,33,72,0,1,32, +17,2,0,1,251,0,2,32,0,0,192,64,0,1,2,0,2,4,0,0,48,0,2,32,24,0,0,3,0,0 +,64,4,8,0,0,16,0,7,4,0,6,2,0,0,16,32,6,192,0,10,4,1,0,1,8,0,0,33,64,0 +,4,144,254,0,1,12,0,1,192,0,1,128,0,3,4,0,0,16,0,2,32,24,0,0,1,24,0,0 +,7,104,0,0,44,0,7,16,0,6,8,0,0,44,0,0,6,64,0,3,96,0,0,12,0,6,24,16,3, +66,32,0,1,129,0,1,176,255,8,0,0,4,0,1,64,2,1,64,34,97,128,136,0,1,176 +,64,0,2,24,0,0,8,10,0,0,64,32,128,20,0,0,4,0,5,16,2,0,5,8,0,0,20,18,6 +,0,1,1,0,0,80,0,0,128,0,0,16,0,2,64,8,0,0,64,0,1,96,1,0,1,4,0,1,162, +254,0,1,48,1,0,0,192,34,0,0,64,1,98,128,32,8,0,0,144,0,2,34,88,0,1,96 +,18,137,2,0,0,41,0,0,2,0,5,16,1,0,5,8,0,0,24,0,0,22,0,0,4,0,1,8,34,17 +,36,2,0,2,64,1,0,0,136,4,145,64,65,0,0,128,16,0,1,112,251,0,1,60,16,0 +,0,240,0,1,128,0,0,120,0,0,7,0,1,60,16,0,0,48,0,0,30,208,0,0,122,0,0, +3,96,0,0,36,0,0,7,0,5,144,3,0,5,8,0,0,32,128,7,52,64,0,0,192,0,0,88,0 +,0,11,0,2,128,7,0,1,22,192,2,120,0,1,224,129,0,1,208,250,4,0,0,48,0,1 +,192,32,0,0,64,1,96,0,0,4,0,1,16,8,0,1,32,0,1,128,96,0,3,32,128,5,0,5 +,208,2,0,5,8,0,0,24,0,2,32,0,2,96,16,12,2,0,3,1,0,0,24,4,131,96,0,5, +57,253,0,1,48,0,1,192,0,1,64,0,0,96,66,132,16,0,0,32,2,0,0,128,8,64, +32,10,96,0,0,73,4,81,32,0,0,4,0,5,8,2,0,5,4,0,0,32,0,0,16,136,2,0,1, +32,98,4,140,0,3,16,0,1,88,0,0,11,112,36,0,0,128,144,0,1,192,250,0,8, +16,4,0,7,136,0,9,4,0,6,2,0,35,104,255,32,0,0,4,128,0,0,16,0,0,2,0,1,8 +,0,0,1,32,0,1,128,0,2,2,0,1,8,0,3,4,0,7,8,0,6,36,0,1,128,0,2,2,64,0,0 +,8,0,0,1,32,0,0,4,0,1,16,0,0,2,64,0,0,8,0,0,1,32,0,0,4,0,0,8,249,0,74 +,152,255,36,0,0,4,128,0,0,16,0,0,2,0,0,32,9,0,0,1,32,0,0,4,146,0,1, +128,2,64,0,0,10,0,0,129,48,40,4,0,15,32,0,0,4,194,0,0,16,128,2,64,0,0 +,8,0,0,1,32,0,0,4,128,160,16,0,0,2,64,0,0,8,0,0,1,32,0,0,4,0,0,171, +255,12,0,5,128,8,32,4,0,4,65,0,1,2,0,27,16,0,12,128,0,11,177,249,32,0 +,1,128,0,5,8,0,0,1,32,0,0,4,128,0,1,32,0,24,32,0,5,2,64,0,0,8,0,0,1, +32,0,0,4,0,1,16,0,0,2,64,0,0,8,0,0,1,32,0,0,4,0,0,192,252,8,0,4,64,0, +2,1,0,7,64,0,0,8,0,1,32,0,1,128,0,0,16,0,17,16,0,0,2,0,23,8,251,32,0, +0,4,192,0,0,16,0,0,2,2,0,0,8,0,0,1,32,0,1,160,0,2,2,64,8,9,0,0,33,48, +0,0,4,0,15,32,0,0,4,128,0,0,16,66,2,64,0,0,8,0,0,1,32,0,0,4,0,0,16,18 +,0,0,2,64,0,0,8,0,0,1,32,0,0,4,0,0,60,251,0,17,16,0,7,2,0,18,64,0,26, +168,249,0,1,8,0,61,4,128,0,7,216,255,0,6,18,0,0,8,0,2,1,0,12,32,0,21, +16,0,23,160,252,0,5,1,0,5,3,0,8,8,0,26,1,0,2,32,0,0,4,0,10,9,0,1,2,0, +1,64,249,0,22,1,0,26,64,0,13,32,0,0,4,0,5,168,255,0,25,16,0,20,64,0, +25,201,255,0,1,16,128,0,0,64,128,0,1,129,0,2,8,128,8,0,1,1,0,3,32,64, +0,0,128,0,20,128,0,5,8,0,4,144,0,5,2,0,0,4,0,3,232,253,0,10,64,4,2,0, +2,4,4,128,0,0,64,0,0,10,0,20,128,0,0,1,0,5,1,0,10,8,0,7,184,248,0,1,8 +,0,0,1,32,64,0,0,128,10,1,74,1,12,128,8,128,160,6,128,0,0,64,0,0,26, +42,64,65,0,17,32,0,0,1,0,0,1,0,2,64,0,0,16,0,4,16,1,0,2,16,0,0,1,0,0, +2,0,3,48,254,130,2,0,0,8,14,1,32,8,64,129,2,2,0,0,3,0,0,32,8,32,64, +128,16,2,0,1,16,0,1,33,16,4,0,15,7,0,0,4,0,0,5,136,8,0,0,129,64,0,1, +128,0,0,8,0,0,132,5,0,4,16,32,0,1,32,8,200,255,128,0,1,8,2,4,32,8,0,0 +,129,0,2,8,0,1,32,0,0,16,0,4,16,0,2,4,0,20,1,0,0,2,0,0,2,2,0,1,64,0,3 +,1,0,4,64,0,3,32,224,255,2,0,1,128,0,8,4,0,0,16,0,3,2,16,0,3,128,64,0 +,0,8,0,14,128,0,1,8,0,5,64,0,5,2,4,0,8,4,0,0,248,253,0,12,8,0,1,32,0, +7,9,0,9,32,0,6,16,0,1,32,0,13,1,8,0,3,8,0,1,8,0,1,32,128,253,0,10,32, +0,3,16,0,1,64,0,2,64,0,1,128,0,19,4,0,19,64,0,6,248,0,11,32,2,0,9,128 +,0,0,128,0,0,8,0,23,4,128,0,7,128,16,0,9,104,252,0,10,64,17,4,0,5,5,0 +,5,64,0,27,128,0,0,16,0,8,128,0,5,152,255,0,21,8,0,24,8,0,25,24,255,0 +,74,152,255,0,21,4,0,27,1,0,2,32,0,1,1,0,5,8,0,0,64,0,0,8,0,1,2,0,1, +64,255,0,20,128,0,2,2,0,0,4,0,46,88,249,0,1,36,0,8,1,0,4,32,0,36,24,0 +,0,2,0,15,104,255,0,9,4,0,0,4,0,1,32,72,0,1,2,0,2,128,0,23,4,0,0,32,0 +,3,64,0,8,16,0,8,184,250,0,26,128,0,46,24,255,0,21,64,0,2,4,0,23,16,0 +,3,1,0,5,12,0,0,64,0,0,64,0,6,144,255,0,2,32,0,5,2,64,0,6,128,0,3,64, +0,6,32,0,1,16,0,3,16,0,1,8,0,3,32,0,25,72,251,0,74,152,255,0,22,8,0,0 +,32,0,30,32,0,1,128,0,5,8,0,3,4,0,1,80,249,0,11,8,0,2,4,0,12,128,0,2, +2,0,2,64,0,2,1,0,8,16,0,12,4,0,7,80,249,0,53,64,0,19,216,255,0,6,8,0, +24,2,0,40,48,253,0,20,32,0,0,4,0,7,16,0,2,16,0,2,8,0,2,8,0,4,8,0,0,1, +0,21,96,255,0,20,4,128,0,7,32,0,2,32,0,2,16,0,0,1,0,0,16,0,5,1,128,0, +7,2,64,0,11,64,16,248,0,2,8,0,1,2,0,7,64,0,7,16,0,1,4,0,39,32,32,2,0, +3,128,249,0,5,2,0,5,16,0,12,1,0,20,1,0,13,64,0,9,248,248,0,12,4,0,7, +64,0,1,2,0,6,1,0,2,1,0,1,128,0,2,128,0,1,8,0,17,2,0,7,232,255,0,18,16 +,0,5,32,0,25,64,0,0,128,0,4,128,0,2,32,0,0,8,32,0,4,128,136,248,0,6,2 +,16,129,0,4,16,0,0,2,33,0,0,8,128,128,0,2,32,0,19,4,0,2,128,2,0,1,8,0 +,1,32,0,1,32,2,4,64,2,16,0,2,2,2,0,1,32,120,252,0,0,64,16,0,1,16,128, +0,2,2,0,1,8,0,4,128,0,2,1,16,0,3,8,0,14,32,0,5,8,8,0,11,128,0,3,8,0,0 +,1,128,248,248,0,1,165,0,0,20,16,128,4,136,90,3,0,1,8,0,0,8,0,0,1,34, +128,52,128,0,0,67,75,0,0,64,0,1,32,0,4,32,0,6,16,0,0,32,3,8,8,160,0,0 +,64,6,16,0,0,48,0,0,4,64,0,1,16,21,2,64,84,72,1,0,1,2,12,0,0,17,16, +168,251,0,0,72,0,1,16,0,0,144,16,128,193,98,16,0,3,40,58,64,32,16,82, +64,32,17,9,0,2,9,0,3,4,0,5,4,0,3,32,16,4,162,32,0,0,64,70,0,3,1,0,1, +210,132,148,33,0,1,2,96,0,0,4,0,0,1,0,1,224,248,0,1,1,0,4,64,128,32, +64,0,3,32,2,16,32,0,2,32,16,0,3,32,0,3,2,0,5,8,0,4,4,128,0,3,2,0,9,32 +,0,2,32,0,0,1,0,3,72,254,0,5,32,2,0,1,10,0,8,2,4,0,0,1,0,0,8,0,20,1, +32,0,0,4,0,1,4,0,3,1,0,2,2,68,0,2,2,8,0,1,32,0,2,88,254,0,18,64,0,10, +4,1,0,0,16,0,0,1,0,1,130,0,1,8,128,0,9,8,0,12,1,0,5,112,253,2,0,19,64 +,0,0,2,0,25,16,0,4,64,3,8,0,0,8,0,9,64,0,1,128,224,255,0,1,136,0,8,4, +0,1,4,0,6,144,0,1,8,0,27,8,0,0,13,128,0,7,3,64,0,1,128,0,2,200,252,4, +0,5,4,0,6,4,0,8,16,0,48,153,251,2,0,7,2,0,4,32,0,9,16,0,22,64,0,4,32, +0,1,1,0,4,32,8,4,0,3,1,0,0,128,56,255,0,21,2,0,7,64,0,2,64,0,2,32,0,2 +,32,0,5,128,0,6,2,0,2,4,0,3,128,0,6,24,253,0,6,1,0,4,16,0,1,80,0,12,2 +,0,1,8,0,3,1,0,1,4,0,26,128,0,0,16,0,1,64,32,253,0,1,4,0,61,2,64,0,2, +4,0,3,184,251,0,7,128,0,14,8,0,0,3,0,22,128,0,3,17,0,7,1,4,0,1,128,64 +,0,4,56,254,0,1,64,0,6,2,0,3,16,0,6,1,0,44,224,0,2,1,0,0,120,248,0,20 +,128,0,29,2,0,6,2,64,0,5,16,0,1,64,0,2,120,254,0,2,32,0,0,32,0,1,128, +0,8,32,0,2,8,20,0,1,64,0,0,8,0,0,8,0,1,32,0,3,4,0,1,16,0,4,8,0,2,34,1 +,0,21,184,250,0,1,4,160,70,0,5,64,0,3,128,22,0,31,208,0,3,8,65,0,0, +160,0,0,4,0,3,24,2,0,0,104,34,9,0,1,4,0,0,128,253,0,1,16,0,0,6,2,0,10 +,6,2,0,30,192,64,0,6,1,0,4,24,0,1,96,0,0,4,8,0,2,32,253,0,3,2,0,4,16, +0,5,6,2,0,30,192,0,3,88,64,0,0,96,1,0,0,8,0,2,30,0,3,8,4,0,2,72,252,0 +,1,48,4,4,8,0,3,8,0,5,66,0,31,192,4,1,0,1,96,0,1,160,0,5,26,0,1,96,33 +,44,0,2,17,88,252,0,1,160,8,64,0,4,8,20,0,4,22,0,31,128,136,0,2,8,130 +,0,0,192,16,129,8,0,2,64,16,0,0,32,1,136,8,0,1,6,224,250,0,1,28,128,7 +,4,0,3,24,0,4,128,5,4,0,30,112,0,3,24,0,2,1,12,0,3,6,0,1,120,64,15,0, +1,60,0,0,72,249,0,1,48,8,0,12,4,0,31,192,0,3,96,0,2,1,48,8,0,5,32,0,0 +,12,8,0,0,48,0,0,168,251,0,1,56,0,0,20,8,0,10,36,8,0,31,8,1,0,1,32,8, +0,0,128,72,0,0,1,0,6,36,46,0,1,48,66,56,250,0,1,4,128,70,0,2,1,0,1,4, +0,4,64,0,2,64,32,1,0,23,128,22,8,0,3,8,16,0,0,32,0,5,2,0,1,104,1,5,1, +0,0,48,4,80,254,0,1,16,32,6,2,0,1,8,0,1,32,0,4,6,4,0,2,1,0,25,2,0,17, +96,32,0,2,48,0,0,40,248,0,2,16,2,0,1,30,0,1,120,0,4,128,7,4,0,29,6,2, +0,4,32,0,0,96,1,0,5,16,0,0,96,0,0,12,4,0,0,12,32,208,255,8,0,0,48,0,0 +,4,8,0,0,90,4,0,0,104,132,0,4,22,0,3,11,4,0,24,18,0,7,160,0,5,64,0,1, +32,129,64,0,1,176,0,0,227,249,0,1,32,8,32,8,0,0,64,0,2,1,0,3,128,6,4, +0,2,34,4,0,24,64,8,0,4,2,0,0,192,16,1,0,3,88,0,1,96,33,68,0,1,52,0,0, +65,251,0,1,28,128,7,0,1,30,16,0,0,120,64,0,3,128,1,0,2,192,1,0,24,128 +,1,0,4,24,16,0,1,1,0,4,30,4,0,0,88,0,0,11,4,0,0,60,32,56,250,4,0,0,48 +,8,0,3,4,0,7,6,0,3,3,0,25,4,4,0,7,1,0,4,24,0,1,64,0,0,12,0,1,48,0,0, +137,252,0,1,56,2,68,2,0,0,24,0,1,96,18,0,4,38,1,0,2,3,1,0,24,6,0,4,32 +,17,0,0,128,64,0,5,8,0,0,64,32,44,8,0,1,16,216,250,0,1,4,128,22,0,2,1 +,0,1,4,0,3,128,22,4,0,1,64,0,0,2,0,23,128,128,0,1,26,2,0,1,8,0,0,32,0 +,0,4,0,3,10,5,0,0,104,34,0,2,4,1,224,253,0,2,16,6,4,0,1,8,0,1,32,0,4, +6,0,3,1,0,25,2,0,1,8,0,19,32,8,0,0,250,0,3,2,4,0,0,30,0,1,120,0,40,24 +,8,0,0,24,0,1,96,1,0,0,8,0,2,14,4,0,0,96,0,3,12,0,0,232,253,4,0,0,128 +,16,20,0,1,26,5,0,0,104,16,0,4,22,2,0,2,67,0,25,70,8,0,0,72,0,1,8,0,1 +,160,0,5,66,0,1,96,33,0,2,36,18,234,252,12,0,1,65,32,8,0,0,64,0,2,1,0 +,4,34,8,0,2,138,0,25,36,0,1,128,32,0,0,96,2,0,0,192,16,129,8,0,2,64,0 +,6,144,0,0,248,255,0,1,12,128,7,0,1,30,16,0,0,120,64,0,3,128,7,0,2, +192,1,0,24,128,3,2,0,0,6,0,1,120,16,0,1,1,60,0,3,20,16,0,0,88,32,0,2, +8,8,200,255,8,0,0,32,16,0,3,4,0,1,16,0,4,2,0,3,131,0,25,6,2,0,0,16,16 +,0,0,96,0,2,1,0,0,8,0,2,26,0,1,96,0,3,52,0,0,161,254,0,1,48,2,68,2,0, +0,24,1,0,0,96,0,5,128,0,2,128,3,0,25,70,0,1,24,0,1,104,0,1,128,68,0,0 +,1,0,2,24,4,0,0,64,128,0,2,176,32,56,250,16,0,1,128,0,0,20,0,1,1,0,1, +64,0,4,64,0,1,154,72,0,5,180,16,0,17,128,16,8,0,0,130,0,2,8,0,0,32,0, +3,208,0,1,2,0,1,8,0,1,32,132,8,232,254,0,3,2,0,2,8,0,8,4,0,0,24,0,0,1 +,2,0,3,48,0,19,2,0,1,8,16,0,0,96,0,6,192,0,0,24,0,8,96,254,0,5,32,30, +0,1,112,0,4,128,1,0,1,16,8,0,0,1,0,3,16,32,0,22,8,0,0,16,0,1,96,1,0,2 +,240,0,0,4,16,0,0,24,0,1,96,0,0,28,8,152,248,12,0,2,38,2,0,0,26,0,1,8 +,32,0,3,128,0,2,64,0,0,35,0,4,160,0,19,6,8,0,0,152,0,1,104,36,0,0,160 +,0,3,208,0,0,90,0,1,8,0,1,32,0,2,130,253,4,0,2,68,1,34,88,0,1,8,1,0,4 +,38,1,0,0,24,0,0,130,0,5,2,0,18,36,0,1,80,0,1,104,1,0,0,192,16,1,0,1, +192,0,0,26,0,1,96,0,1,128,69,4,1,40,251,0,2,128,3,48,0,0,30,16,0,0,24 +,32,0,3,128,7,0,1,26,192,1,0,4,60,32,0,17,128,3,2,0,0,14,4,0,0,24,32, +0,1,1,0,2,224,0,0,6,4,0,0,120,64,0,0,224,1,12,32,72,251,4,0,2,6,0,0, +32,24,4,0,1,32,0,4,6,0,3,3,0,25,6,2,0,0,24,4,0,0,96,0,2,1,0,2,192,0,0 +,24,0,1,96,0,1,128,1,0,0,8,129,251,0,3,23,193,4,152,0,1,96,1,0,4,6,0, +1,8,128,131,0,4,160,64,0,18,70,0,1,88,0,1,8,0,1,128,80,0,2,192,0,3,96 +,0,1,128,1,32,1,128,252,16,0,0,4,144,0,0,208,130,0,0,16,0,1,4,0,4,64, +0,1,16,65,0,5,52,17,0,17,128,4,0,1,24,73,19,105,0,1,32,17,1,0,4,2,0,0 +,8,129,0,1,32,20,2,0,0,250,0,1,16,0,0,2,4,0,4,32,0,5,4,0,1,16,0,0,1,0 +,3,48,0,19,2,4,0,0,24,0,0,2,0,2,128,0,14,8,216,248,0,4,194,0,0,6,0,1, +120,0,4,128,1,0,1,24,0,6,16,0,22,4,16,0,0,120,16,0,0,96,1,0,4,6,0,4, +96,0,0,16,0,0,184,248,12,0,0,48,34,6,192,66,2,0,1,104,17,0,3,128,0,2, +152,16,8,1,0,3,32,18,0,18,18,4,0,0,26,1,0,0,105,4,0,0,160,0,5,2,0,2, +17,0,0,32,0,0,32,17,17,249,4,0,0,32,66,4,1,34,24,5,0,1,1,0,4,70,0,3, +32,0,5,2,0,18,38,0,1,26,0,0,1,0,0,128,0,0,64,1,0,4,152,0,2,16,0,0,128 +,81,128,0,0,139,251,0,1,28,128,3,176,0,0,30,0,1,120,64,0,3,128,7,2,0, +0,8,192,0,0,2,0,3,60,32,0,17,128,7,1,0,0,30,80,3,112,0,2,1,0,4,30,4,0 +,0,56,0,1,224,1,12,8,88,249,4,0,0,48,0,0,6,192,0,0,24,0,8,6,0,1,24,0, +0,2,0,25,6,4,0,0,24,0,5,1,0,4,24,0,1,32,0,1,128,1,0,1,218,255,0,1,48, +16,7,129,0,0,25,0,1,96,20,0,4,6,0,1,24,0,0,35,2,0,3,160,64,0,18,32,0, +2,32,0,0,104,65,0,1,1,0,4,24,0,1,96,18,0,0,128,1,0,0,66,160,248,0,1,4 +,144,16,80,0,1,1,0,1,4,0,3,128,32,2,0,0,80,80,32,1,0,0,41,2,0,0,4,66, +0,14,160,33,0,0,128,16,8,0,0,2,2,32,0,0,8,13,0,1,16,129,2,0,1,2,0,1,8 +,2,0,0,128,33,20,0,0,176,253,0,1,16,0,1,130,0,1,8,0,1,32,0,9,1,0,1,4, +0,1,16,0,15,128,0,2,2,0,1,8,0,1,2,0,0,12,0,1,32,32,4,0,2,8,0,1,16,0,2 +,32,0,0,152,252,0,4,176,128,30,0,1,120,16,0,7,24,0,3,7,0,2,16,0,14, +128,1,0,6,3,24,32,0,2,44,128,5,0,1,8,0,2,64,0,0,192,1,44,0,0,152,252, +4,0,0,48,34,32,81,4,26,4,0,0,104,4,0,4,64,2,0,0,152,32,11,4,0,0,9,0,1 +,48,1,0,14,128,16,1,0,0,6,8,0,0,24,33,82,96,4,0,2,20,133,130,0,2,9,0, +1,2,0,0,32,16,22,0,0,130,255,12,0,0,32,1,32,96,8,64,0,2,1,0,4,64,0,3, +2,1,0,0,8,0,1,32,1,0,15,4,0,1,20,4,0,0,80,16,0,0,8,1,64,16,0,0,24,0,0 +,19,4,0,0,64,0,2,68,0,0,32,72,152,16,104,255,0,1,28,144,1,148,64,30, +16,0,0,120,64,0,3,128,3,1,0,0,8,192,1,0,1,5,0,1,28,8,0,14,96,0,0,1, +128,3,0,1,14,0,1,24,16,3,0,1,32,128,4,0,1,6,4,0,0,88,0,1,224,1,32,0,0 +,240,249,8,0,0,48,0,0,4,160,32,0,0,8,0,7,2,0,1,24,0,0,3,0,1,4,0,1,48, +8,0,15,1,0,1,6,0,1,24,0,0,1,96,0,3,40,0,0,5,1,0,1,8,0,1,16,0,2,32,8, +129,252,0,1,48,5,166,64,2,24,1,0,0,96,33,0,4,22,1,0,0,24,0,0,83,0,1,8 +,0,1,48,0,15,128,1,2,0,0,6,2,0,0,24,8,3,8,68,128,4,0,0,16,0,0,18,0,1, +128,0,4,128,1,144,0,0,248,254,0,1,4,144,38,18,0,1,16,0,1,64,0,3,128, +64,0,1,16,67,32,1,0,0,9,0,1,52,2,0,17,128,32,0,1,90,0,0,8,106,0,4,129 +,0,2,2,64,11,4,8,69,4,32,4,0,0,136,251,0,1,16,0,0,6,0,1,24,0,9,2,0,2, +1,0,1,4,0,1,48,16,0,18,2,4,0,0,24,16,0,6,32,0,3,4,1,96,0,5,168,255,0, +3,2,178,128,28,0,1,24,0,6,1,0,0,16,0,3,11,0,1,16,32,0,19,2,0,0,24,4,3 +,120,0,3,44,128,5,0,2,4,3,16,64,4,96,0,0,44,0,0,144,249,8,0,0,48,34, +36,80,4,154,8,0,0,8,0,5,64,0,2,33,11,4,0,0,5,0,1,32,1,0,18,38,0,1,152 +,0,0,10,12,32,0,2,20,133,130,0,2,1,33,106,4,8,48,0,0,20,0,0,42,255,0, +1,160,32,32,104,8,154,8,0,0,96,2,0,4,32,0,3,10,2,0,0,6,0,2,2,0,18,68, +0,1,24,1,0,0,96,20,0,2,24,0,0,19,4,0,0,64,16,16,105,68,0,0,129,9,152, +16,64,255,0,1,28,128,7,144,64,6,0,1,120,16,0,3,128,5,1,0,0,8,192,1,0, +1,9,0,1,60,32,0,17,128,3,1,0,0,30,16,0,0,120,0,3,32,128,4,0,1,6,192,0 +,0,24,0,0,15,224,129,32,0,0,216,253,4,0,0,48,0,1,160,32,24,0,1,96,0,6 +,1,0,2,3,0,1,4,0,22,6,1,0,0,16,0,0,1,0,0,16,0,2,40,0,0,5,1,0,2,2,96,0 +,0,12,132,1,32,8,1,255,0,1,176,32,68,66,0,0,24,16,0,0,96,0,5,32,0,1,8 +,0,0,11,2,0,0,8,0,1,160,64,0,18,22,0,1,24,2,3,96,1,0,2,16,0,0,2,0,1, +16,5,3,4,0,0,78,128,1,16,0,0,168,255,0,1,4,144,22,146,8,24,16,0,1,64, +0,2,52,65,64,192,128,0,0,64,32,1,0,0,13,0,1,36,0,17,20,145,4,0,1,26,0 +,0,99,0,0,8,0,2,32,129,20,20,0,0,2,0,2,8,13,32,8,36,1,104,248,0,1,16, +0,0,6,64,64,24,0,6,48,0,0,6,196,0,2,1,0,1,12,0,1,16,32,0,18,2,4,0,0, +24,8,2,0,4,16,32,2,0,4,96,0,0,12,4,64,16,16,248,254,0,3,2,180,0,0,4,0 +,1,24,0,3,48,0,0,1,240,0,8,48,0,17,16,0,3,22,8,3,24,0,3,44,128,5,0,0, +64,30,0,1,120,32,8,128,64,44,0,0,200,252,8,0,0,48,34,4,80,0,0,26,2,0, +0,8,0,3,48,133,70,212,0,2,11,4,0,3,48,17,0,16,32,18,18,4,0,0,24,1,18, +12,0,3,20,133,2,0,0,2,26,0,1,96,4,68,16,4,20,0,0,122,254,0,1,32,34,32 +,168,128,154,4,0,0,96,0,3,48,130,38,0,0,130,0,1,34,2,0,0,32,2,0,0,32, +1,0,16,128,0,0,22,0,1,154,4,1,96,36,0,2,24,0,0,197,0,0,2,152,32,0,0, +104,2,44,4,80,24,0,0,240,253,0,1,28,128,7,144,0,0,30,0,1,120,16,0,2, +60,144,1,49,0,1,192,1,0,1,3,0,1,12,32,0,16,60,160,7,1,0,0,30,0,0,3, +120,0,3,32,128,4,48,128,28,0,1,24,16,15,96,0,0,16,0,0,144,254,4,0,0, +48,16,0,0,128,0,0,24,0,1,96,0,4,16,6,0,3,3,1,0,1,2,0,0,48,8,0,16,48, +32,6,0,1,24,0,0,1,96,0,3,24,0,0,4,0,0,64,24,4,0,0,96,0,0,12,0,0,64,16 +,0,0,145,254,0,1,176,0,0,68,130,0,1,8,0,0,96,0,3,144,0,5,11,0,5,2,0, +16,184,0,1,4,0,0,10,33,3,104,0,3,32,0,0,4,192,4,152,0,1,96,16,64,8,16 +,16,0,0,80,249,0,65,3,0,7,168,252,32,0,0,4,128,0,0,16,0,0,2,64,0,0,8, +0,0,1,32,0,0,4,128,0,0,16,0,0,2,64,0,0,8,0,0,1,32,0,0,4,0,15,32,0,0,4 +,128,0,0,16,0,1,64,0,2,1,32,0,0,4,128,0,0,16,0,0,2,64,0,0,8,0,0,1,32, +0,0,4,8,144,253,0,52,16,0,1,32,0,17,152,252,44,0,0,4,128,0,0,16,0,0,2 +,64,0,0,8,0,0,1,32,0,0,4,128,0,0,16,0,0,2,64,0,0,8,0,0,1,32,0,0,4,0, +15,32,0,0,4,128,0,0,16,0,0,130,64,0,0,8,2,1,32,0,0,4,128,0,0,16,0,1, +64,0,0,8,0,0,1,32,0,2,235,252,4,0,57,48,0,0,6,0,1,4,0,0,1,0,6,9,73, +250,32,0,0,4,128,0,3,64,0,2,1,32,0,0,4,0,3,2,64,0,0,8,0,0,1,32,0,0,4, +0,15,32,0,0,4,128,0,0,16,0,1,64,0,1,16,1,0,5,128,0,0,68,0,2,1,0,3,16, +251,4,0,4,64,0,0,8,0,1,32,0,5,2,64,0,5,4,0,31,128,0,0,16,0,1,128,0,3, +32,0,1,128,0,0,16,25,254,32,0,0,4,128,0,0,16,4,130,64,0,0,8,2,1,32,0, +0,4,128,16,16,4,2,64,0,0,8,0,0,65,32,0,0,4,0,15,32,0,0,4,128,0,0,16,0 +,0,66,72,0,1,129,1,32,8,0,0,129,16,20,4,64,96,0,0,8,2,1,32,8,0,0,1, +216,248,0,1,128,0,0,16,0,13,16,0,0,8,8,0,31,1,8,0,8,2,0,6,4,112,252,0 +,74,152,255,0,1,8,0,6,32,0,3,16,0,1,1,0,3,4,0,27,64,0,8,128,0,0,2,16, +0,8,176,251,0,6,32,0,12,128,0,22,32,0,1,128,0,2,2,0,15,33,0,4,168,254 +,0,6,2,0,46,64,0,1,32,0,5,32,0,6,64,0,0,184,253,0,20,32,0,33,1,0,17, +168,255,0,2,160,0,0,64,0,1,128,0,3,64,0,11,8,0,19,9,0,1,4,0,4,16,0,0, +130,0,1,8,0,2,8,64,0,3,130,0,0,16,0,0,88,253,0,2,8,0,0,16,0,7,128,0,7 +,8,0,1,64,0,32,16,0,3,8,0,1,2,0,0,2,0,3,40,248,2,0,1,48,1,48,0,1,128, +0,1,16,0,0,64,0,0,1,0,0,192,0,1,8,0,1,8,0,0,24,36,0,18,128,8,0,1,2,0, +4,32,40,196,0,0,4,24,0,2,6,128,0,0,194,0,0,1,196,0,0,8,0,0,24,250,0,2 +,8,4,64,2,0,1,128,72,0,1,2,0,1,8,0,0,129,0,0,72,0,0,128,0,3,64,0,19,8 +,0,2,16,0,0,64,32,0,0,96,32,65,80,0,0,128,65,0,0,8,0,1,32,0,1,1,68, +180,12,224,251,8,0,1,32,0,0,64,0,3,1,0,1,8,0,1,32,0,0,1,0,0,8,0,1,2,0 +,2,128,0,19,32,0,5,8,0,2,64,16,0,1,66,0,0,8,0,1,64,0,3,17,136,104,251 +,4,0,1,128,0,5,32,0,6,128,0,32,8,0,0,64,0,2,128,0,3,4,0,6,4,0,0,32,32 +,24,253,0,54,8,0,3,4,0,3,2,0,6,4,0,0,112,255,0,1,4,0,0,2,0,15,64,0,5, +16,0,19,2,0,19,1,0,3,136,255,0,2,8,0,1,16,0,9,144,2,0,30,8,0,3,128,0, +0,8,0,9,4,0,3,32,0,0,200,254,0,46,16,0,4,8,0,3,16,0,0,4,0,4,32,0,2,4, +0,1,64,0,0,40,251,0,1,64,4,136,0,16,68,0,4,128,0,16,64,0,0,4,128,0,2, +2,0,12,128,0,6,48,255,0,1,8,0,0,1,0,16,1,0,4,64,0,20,1,0,23,72,251,0, +15,128,0,34,2,0,21,144,253,16,0,57,4,0,14,200,255,0,1,4,0,13,8,0,2,64 +,0,27,2,0,3,2,0,18,56,253,0,3,8,0,11,2,0,31,4,0,0,44,0,2,128,0,9,1,0, +6,80,248,0,54,4,0,18,152,251,4,0,68,32,0,3,248,249,0,4,32,0,0,4,0,1, +16,0,6,32,0,5,2,0,28,16,0,1,64,0,0,8,0,4,32,0,0,16,0,1,64,0,0,8,0,0, +28,254,0,2,64,4,0,62,64,0,5,216,255,0,62,64,0,3,32,0,5,216,253,0,1,64 +,0,1,128,0,10,4,0,3,4,0,22,64,0,2,8,0,1,32,0,20,144,249,0,19,2,0,25, +32,0,4,64,0,20,184,249,0,15,64,0,53,8,0,1,192,208,255,0,4,2,0,11,4,0, +9,24,0,22,8,0,20,248,250,0,74,152,255,0,4,1,1,32,8,0,0,128,0,3,64,0, +44,128,0,0,32,32,0,4,4,0,3,120,250,0,2,128,0,0,8,0,3,64,0,41,80,0,0, +48,0,7,32,0,2,128,16,0,2,2,0,0,80,253,0,4,8,0,13,8,0,1,1,0,3,8,68,0, +18,1,1,0,0,4,4,0,1,64,0,10,128,0,2,1,0,1,136,251,0,1,144,0,0,16,0,2,4 +,0,1,16,0,9,8,0,5,32,0,18,16,0,1,64,0,12,4,0,6,8,88,253,0,1,1,0,1,65, +128,0,2,8,0,0,4,64,0,32,1,0,0,129,0,5,32,0,0,34,0,1,32,1,0,0,32,0,1,1 +,0,0,64,0,0,64,0,0,4,0,0,248,249,66,0,0,8,0,4,16,0,0,2,0,1,8,32,0,0, +16,0,5,17,32,0,3,16,0,17,8,0,0,65,0,5,4,0,1,8,0,2,128,8,128,0,3,4,0,0 +,1,128,64,252,32,128,4,0,1,34,64,8,16,0,0,18,0,0,2,72,0,0,1,32,0,0, +128,34,0,2,10,64,0,3,32,0,15,128,0,0,32,1,22,0,2,128,0,0,32,1,68,0,0, +4,16,1,0,0,192,2,192,0,0,64,33,4,72,0,0,9,8,88,254,0,3,32,192,0,0,8,4 +,129,0,0,160,32,0,0,3,0,0,4,10,64,158,0,0,4,0,2,2,1,0,0,16,12,0,16,16 +,5,0,0,1,26,2,0,0,102,64,28,248,10,0,0,96,0,0,2,17,44,72,0,0,141,96, +24,17,130,0,0,16,1,192,250,0,4,64,0,0,8,4,2,1,0,5,2,16,0,1,8,0,5,16,8 +,0,16,16,0,1,4,0,4,32,0,0,2,0,2,2,2,32,4,0,0,1,33,16,0,0,132,0,0,8,0, +0,184,251,0,4,16,0,6,128,0,1,32,0,1,64,0,5,2,0,1,16,0,17,16,0,1,32,0, +1,129,8,16,4,0,1,16,0,6,16,8,0,4,160,252,16,0,19,2,0,28,128,0,1,64,0, +15,8,0,2,172,249,2,0,1,32,0,0,4,0,16,2,0,22,1,0,19,2,0,4,128,64,253,0 +,3,4,0,0,2,0,53,8,0,2,4,0,1,64,129,0,4,224,252,8,0,4,128,8,0,9,9,0,33 +,4,0,0,72,16,0,7,2,0,1,8,64,0,0,32,0,0,4,16,202,254,0,1,16,0,0,2,0,1, +64,0,2,1,0,6,2,0,1,1,0,4,16,0,19,2,0,1,8,0,2,128,0,13,1,0,2,200,248,0 +,28,16,0,19,2,1,17,0,16,16,0,3,168,254,0,16,2,0,55,8,56,255,0,1,32,0, +11,4,0,3,8,0,32,1,0,7,1,0,4,8,0,4,80,249,0,16,4,0,2,16,0,26,16,0,3,4, +0,0,16,0,12,8,0,1,16,0,1,250,0,2,16,0,0,2,0,4,128,0,10,1,0,28,2,0,10, +32,0,1,32,0,1,6,0,2,112,255,0,1,32,0,0,1,0,15,128,128,0,4,96,0,19,12, +0,1,32,0,16,2,0,3,216,254,2,0,1,8,0,0,1,0,14,8,130,0,24,8,0,1,2,0,22, +136,253,0,2,128,6,16,36,0,4,128,0,4,208,16,0,7,52,0,18,128,6,0,6,33,0 +,6,26,0,3,32,8,0,2,184,254,0,3,6,128,0,5,12,8,0,3,192,0,8,16,32,0,26, +4,2,0,15,64,248,0,3,6,50,128,0,4,2,0,4,240,128,0,7,56,32,0,17,128,7,0 +,6,8,0,6,6,0,3,15,0,3,56,249,0,3,64,144,0,5,141,4,0,3,64,2,0,7,148,0, +18,128,38,1,0,5,68,1,0,5,130,2,0,2,77,8,0,2,160,254,0,3,6,66,0,5,77,8 +,0,3,208,4,0,7,36,1,0,18,64,2,0,5,44,2,0,5,24,5,0,2,128,4,0,2,88,252, +0,2,128,7,32,32,0,4,3,0,4,240,32,0,7,56,32,0,18,7,0,6,15,0,6,30,0,3, +15,0,3,112,252,0,3,6,208,64,0,4,12,0,4,128,128,0,7,32,0,27,12,0,6,24, +0,4,2,0,2,88,255,0,3,6,196,0,11,208,8,0,7,48,0,19,6,2,0,5,140,4,0,5,2 +,8,0,2,140,0,3,120,252,0,2,128,64,4,0,1,64,136,0,1,128,0,7,1,0,3,160, +1,52,0,17,20,128,32,0,1,154,32,0,1,65,0,7,26,64,0,0,4,0,0,32,8,0,2, +200,255,0,3,2,0,7,8,0,5,24,16,0,3,128,1,48,0,17,32,0,1,2,0,0,24,0,11, +24,0,8,16,252,0,3,4,0,6,3,0,6,4,0,4,128,1,12,0,17,44,128,5,0,1,30,8,0 +,0,120,16,0,7,6,0,0,3,0,1,15,0,3,176,255,8,0,2,18,1,0,2,160,0,1,1,0,6 +,26,32,0,3,128,17,6,0,17,20,0,0,6,4,0,0,136,0,1,104,2,0,7,2,0,0,3,1,0 +,0,77,2,0,2,154,250,0,3,22,1,0,2,144,0,1,12,0,6,26,0,4,128,5,2,2,0,16 +,24,132,0,0,1,0,0,26,5,0,11,5,32,2,0,0,128,4,0,2,152,251,0,2,128,7,0, +2,192,0,2,15,2,0,5,6,8,0,3,96,0,0,8,32,0,16,32,0,0,1,0,1,28,0,1,120, +64,0,7,4,192,0,2,15,0,3,96,255,4,0,2,6,0,3,128,0,1,12,0,6,24,0,4,128, +1,49,0,17,32,128,6,2,0,0,16,0,2,16,0,7,24,0,0,2,0,2,2,0,2,57,253,0,3, +70,2,0,2,17,0,1,12,0,12,128,9,48,9,0,16,16,136,18,0,1,24,32,0,0,96,1, +0,7,26,8,163,0,1,44,0,3,216,251,0,2,128,6,0,2,64,160,104,0,0,65,8,0,5 +,24,1,0,3,160,1,4,18,0,16,4,0,3,2,16,0,1,1,13,0,4,208,24,66,0,3,32,8, +0,2,96,253,0,3,6,0,4,96,0,8,24,16,0,3,128,1,0,23,16,0,2,32,12,0,4,192 +,0,1,16,0,7,120,248,0,9,98,0,8,6,0,4,128,1,0,18,44,0,3,4,0,1,24,0,6, +176,0,0,16,16,0,2,15,0,3,112,251,8,0,7,16,96,0,1,2,0,5,24,9,0,3,128, +17,2,10,0,16,20,0,3,82,8,0,0,8,0,6,192,4,129,0,3,13,2,0,2,154,253,0,3 +,192,0,4,1,2,64,0,6,154,4,0,3,128,5,130,64,0,16,24,4,0,2,10,1,0,0,96, +17,76,0,4,208,36,24,4,0,2,128,4,0,2,80,251,0,2,128,1,0,2,192,0,0,24, +32,3,4,0,5,30,0,4,96,0,0,28,0,17,32,0,3,4,16,0,0,120,0,0,15,8,0,3,240 +,0,0,30,0,3,15,0,3,208,253,4,0,3,4,0,3,96,0,8,24,16,0,3,128,1,0,0,32, +0,16,32,0,3,8,0,1,96,0,0,12,4,0,3,192,64,0,5,2,0,2,225,254,0,3,32,0,3 +,129,96,33,72,2,0,5,64,0,4,128,5,49,1,0,16,144,8,0,5,96,0,0,12,0,4,80 +,0,0,136,8,0,2,76,0,3,216,250,16,0,1,128,2,16,0,2,32,0,1,1,0,2,128,22 +,0,0,4,0,5,32,0,0,52,0,17,4,128,64,1,0,0,138,0,2,65,13,160,1,0,2,208, +0,0,2,67,35,104,0,0,32,0,4,254,0,4,2,0,3,2,0,5,4,196,128,0,5,128,128, +48,32,0,21,24,16,0,2,12,128,1,0,2,192,0,0,16,0,0,3,98,0,1,4,0,2,32, +248,0,3,6,0,2,192,0,3,2,0,3,226,64,0,7,60,0,17,44,0,0,1,1,0,0,6,0,1, +120,0,0,12,8,128,0,2,192,0,0,4,208,3,1,0,0,3,0,3,8,248,12,0,3,8,16,0, +0,64,0,7,64,208,2,0,5,128,1,18,16,0,16,20,128,20,0,1,74,16,0,0,104,16 +,128,128,17,0,2,192,132,18,1,33,96,128,1,0,3,10,253,4,0,2,34,4,66,0,1 +,131,0,1,32,2,0,2,2,208,72,0,6,33,52,2,0,16,24,132,16,4,0,0,144,16,0, +2,76,132,49,0,3,16,138,72,11,96,12,76,2,0,2,16,253,0,2,128,5,240,0,1, +192,3,0,1,3,0,2,128,6,48,0,6,224,0,0,56,8,0,16,32,0,0,1,0,1,6,0,1,120 +,64,15,96,0,3,48,0,0,4,128,3,26,0,0,15,0,3,200,254,4,0,2,6,196,0,2,3, +0,1,12,2,0,3,192,0,6,128,1,32,16,0,16,32,128,2,0,1,24,0,3,12,128,1,0, +2,192,32,8,0,0,2,96,0,0,12,0,3,161,248,0,3,7,192,132,0,1,3,0,1,64,0,4 +,192,66,0,5,192,9,177,0,17,16,138,32,4,0,0,80,4,0,0,96,130,12,8,4,2,0 +,2,2,2,0,0,3,4,129,12,0,3,64,250,0,2,128,2,16,0,2,35,0,1,1,0,3,32,4,0 +,1,65,0,3,32,8,181,0,17,4,0,1,192,2,2,32,0,1,1,13,160,1,0,2,192,66,2, +33,0,0,104,0,0,32,0,3,144,255,0,3,4,1,0,3,2,0,9,16,0,5,48,32,0,19,192 +,64,0,2,96,32,12,128,1,0,2,192,0,0,24,0,1,96,0,0,12,4,0,2,216,255,0,3 +,2,0,0,32,0,0,128,3,2,0,1,2,0,2,6,0,1,6,192,3,0,2,128,129,32,16,0,16, +44,0,1,240,0,0,24,16,0,0,16,0,2,128,0,2,32,0,0,24,8,0,2,2,0,3,24,248, +8,0,2,64,8,2,0,0,64,8,0,6,4,2,0,0,2,64,3,0,2,128,17,0,18,20,0,1,208,0 +,0,88,0,1,104,10,0,0,128,17,0,2,208,128,88,0,1,96,128,141,4,0,2,138, +255,0,3,18,4,32,0,0,64,8,0,1,32,2,0,5,88,4,11,0,3,16,48,0,17,24,4,0,1 +,4,0,0,17,0,0,104,1,140,128,133,0,2,208,130,88,32,0,0,96,33,45,2,0,2, +24,254,0,2,128,5,48,0,1,192,3,1,0,0,15,0,6,30,128,3,1,0,1,96,128,52,0 +,17,32,0,1,48,64,6,0,1,24,16,15,100,0,3,240,0,0,14,0,1,24,0,0,3,0,3, +72,251,4,0,2,2,0,0,32,0,5,2,0,2,2,0,1,24,0,0,131,0,3,1,0,18,32,8,0,2, +16,0,1,96,0,0,12,128,1,1,0,1,192,0,0,24,0,1,96,0,0,12,0,3,161,250,0,3 +,36,200,0,2,3,0,1,64,0,3,6,0,1,24,0,0,35,0,2,128,69,16,0,17,16,2,0,2, +24,4,0,2,76,8,4,0,3,136,76,8,0,1,34,0,4,248,250,16,0,1,128,38,84,0,2, +32,0,1,132,0,3,64,4,0,1,1,0,3,160,1,32,33,0,16,36,132,2,0,1,26,64,3,0 +,0,1,77,34,8,1,0,1,208,2,90,8,0,0,8,66,32,0,3,88,251,0,3,6,128,0,3,2, +0,0,8,8,0,6,16,0,3,128,1,0,18,16,0,0,4,0,1,24,0,0,3,96,32,12,128,0,3, +192,32,24,0,1,32,0,1,4,0,2,176,252,0,3,6,176,0,1,192,0,2,11,0,3,6,0,1 +,6,0,4,128,1,48,0,17,44,128,5,4,0,0,6,0,1,16,0,0,12,128,65,0,2,192,0, +0,8,16,0,0,96,16,3,0,3,8,250,12,0,2,22,81,0,1,64,0,2,5,4,0,2,20,8,0,0 +,2,0,4,128,1,48,33,0,16,20,128,34,0,1,2,0,0,35,108,8,76,129,17,0,2, +192,8,89,0,1,96,4,1,0,3,98,255,4,0,2,68,97,132,0,1,19,0,1,6,0,6,24,1, +0,4,132,0,18,40,0,0,3,0,1,128,16,11,105,128,8,4,17,1,0,1,192,128,136, +0,1,64,68,12,2,0,2,232,252,0,2,128,1,128,0,1,192,131,0,1,8,0,6,30,4,0 +,3,96,0,0,16,0,17,32,128,4,0,1,4,192,0,0,24,0,0,3,224,1,0,2,240,0,0, +30,8,0,0,120,0,0,15,0,3,216,248,4,0,2,4,130,32,0,1,3,0,1,10,0,3,2,0,1 +,24,0,4,128,1,49,0,17,32,0,0,5,0,1,24,4,3,98,0,0,8,132,1,0,2,192,0,0, +8,0,1,96,0,0,12,0,3,1,250,0,3,18,64,2,0,1,3,0,1,4,0,3,6,0,1,24,0,4, +128,5,48,0,17,32,0,0,2,0,1,152,0,0,8,0,1,36,192,17,1,0,1,128,72,144,4 +,0,0,112,32,12,0,3,72,249,0,2,128,6,24,0,1,64,17,4,0,0,128,0,3,134,16 +,66,2,16,0,0,104,0,1,32,0,0,32,34,0,17,128,4,0,1,10,16,0,1,65,5,32,4, +0,2,80,68,18,65,3,12,1,32,168,4,0,1,224,249,0,3,2,0,7,8,0,2,4,0,7,128 +,128,0,20,2,0,7,132,128,0,4,24,16,1,32,32,0,1,128,0,1,232,249,0,3,6, +180,0,1,192,1,0,1,11,0,3,6,0,1,8,4,0,0,96,0,3,48,0,18,128,5,4,0,0,12, +0,1,120,0,0,12,128,1,0,2,64,0,0,28,0,0,3,96,0,0,15,128,0,3,252,8,0,2, +22,80,0,1,64,136,0,1,5,4,0,2,68,8,36,0,0,1,0,1,8,0,0,128,1,50,65,0,17 +,128,34,0,1,66,8,0,0,104,0,1,144,81,0,2,128,0,0,27,2,3,97,20,45,2,1,2 +,0,0,235,254,0,3,20,104,132,0,1,32,1,0,0,6,0,3,2,0,0,24,0,0,1,0,1,65, +0,1,69,0,20,3,0,1,66,4,0,0,96,0,0,68,2,9,2,0,2,8,154,0,0,34,66,34,128 +,4,16,0,1,89,250,0,2,128,7,128,0,1,128,2,0,1,8,0,3,6,112,0,0,6,4,0,0, +120,0,1,224,0,0,16,0,18,128,4,0,1,20,0,1,120,64,11,224,1,0,2,240,64, +14,200,3,120,0,0,15,224,129,0,1,184,249,4,0,2,4,128,32,0,1,3,0,1,10,0 +,3,2,0,0,128,0,0,4,0,3,128,1,49,0,19,3,0,4,96,16,12,128,1,0,2,192,0,0 +,24,16,2,96,64,0,0,136,1,1,0,0,129,253,0,3,23,65,0,2,35,1,0,0,4,0,3,6 +,192,0,0,64,0,2,36,0,0,192,1,48,0,19,4,0,1,16,0,1,96,4,46,194,1,2,0,1 +,224,66,24,129,83,112,1,12,192,1,0,1,64,251,128,17,0,0,128,70,144,136 +,0,1,32,0,1,136,0,6,2,0,3,13,32,8,33,4,0,17,128,6,0,1,10,3,0,1,65,69, +160,129,0,0,128,20,208,0,0,10,81,35,104,32,32,160,1,52,0,0,88,254,128 +,1,1,0,0,2,68,0,3,2,0,0,4,8,0,6,16,0,2,12,0,22,6,0,1,24,0,3,8,130,1,0 +,1,2,194,64,0,1,1,98,0,0,12,132,129,48,0,0,208,248,224,1,0,1,6,176,0, +1,192,0,2,11,0,6,24,0,3,12,128,1,32,0,18,128,1,0,1,12,0,1,120,16,4, +128,1,0,0,128,5,192,128,30,8,3,96,0,0,2,136,1,0,1,56,250,164,1,0,1,22 +,81,0,1,64,0,2,5,4,0,5,16,2,0,2,12,128,145,0,0,66,0,17,128,0,2,26,9,0 +,0,104,0,0,128,144,137,0,0,128,2,192,0,0,136,0,0,83,96,132,141,128,9, +2,0,0,10,251,12,8,0,1,68,96,0,2,147,0,1,6,0,6,64,0,3,64,0,0,16,0,20, +16,0,1,90,8,0,2,36,0,0,9,0,1,4,128,4,130,0,0,34,68,36,141,8,145,128, +16,208,251,96,128,0,0,128,3,66,0,1,192,3,0,1,8,0,6,6,8,0,2,3,100,128, +16,0,19,1,2,0,0,20,0,1,120,64,11,232,128,0,1,3,112,128,20,196,1,56,0, +0,3,224,0,0,12,0,0,200,255,8,0,2,6,66,0,2,3,0,1,6,0,11,12,0,0,1,0,19, +128,6,0,1,24,0,3,4,128,1,0,1,4,192,0,0,16,0,0,3,97,0,0,12,128,1,0,0, +32,169,252,0,3,38,64,0,2,3,0,1,8,0,6,64,4,0,2,140,136,65,16,0,18,128, +70,1,0,0,16,0,1,96,17,72,16,0,0,1,0,0,2,0,0,128,26,17,35,0,0,10,0,1, +40,128,0,0,80,255,0,5,4,0,41,192,0,24,144,255,32,0,0,4,128,0,0,16,32, +2,64,0,0,8,0,0,1,32,0,0,4,128,0,2,2,64,0,0,8,0,0,1,32,0,0,4,0,15,32,0 +,0,4,0,1,16,0,0,2,64,0,0,8,0,0,1,32,0,0,4,128,0,3,64,0,0,8,0,0,1,32,0 +,0,4,0,0,24,255,0,18,128,0,29,1,0,14,16,0,7,144,255,36,0,0,4,128,0,2, +2,64,0,0,8,0,0,1,32,0,0,4,128,0,0,16,4,2,64,0,0,8,0,0,1,32,0,0,4,0,15 +,32,0,0,4,0,0,16,16,0,0,2,64,0,0,8,0,0,1,32,0,0,4,128,0,0,16,130,2,65 +,0,0,8,0,0,1,32,0,0,4,0,0,65,253,12,0,4,2,0,1,8,1,0,0,32,4,0,7,16,4,0 +,4,6,0,17,2,64,0,2,9,0,7,192,0,2,9,96,0,6,219,251,0,1,4,128,0,1,64,2, +0,1,8,0,1,32,0,0,4,128,0,5,8,0,0,1,32,0,17,32,0,1,32,0,0,1,0,1,64,0,2 +,1,32,0,0,4,0,3,2,0,1,8,0,1,32,0,0,4,0,0,184,253,8,0,61,4,0,10,242, +249,32,4,5,128,0,1,130,2,0,0,8,10,0,0,32,40,0,0,4,128,0,0,16,2,67,16, +8,10,0,0,1,32,0,1,64,0,14,32,0,0,132,32,16,20,130,64,72,0,0,8,65,1,32 +,0,0,4,0,0,32,16,2,129,16,8,9,0,0,33,40,0,0,4,0,0,160,250,0,28,64,0, +44,152,251,0,16,128,0,10,4,0,37,16,0,1,64,0,2,80,250,0,11,16,0,4,8,0, +32,8,0,2,8,0,7,16,0,4,1,0,2,152,254,0,9,4,0,7,2,0,6,4,0,24,2,0,4,32,0 +,1,4,32,0,0,8,0,2,8,0,0,4,0,2,80,255,0,4,2,0,21,4,0,18,128,128,0,7,4, +0,1,128,0,3,64,0,0,1,0,5,104,255,0,4,4,64,0,13,8,0,5,1,64,0,21,4,32,0 +,3,8,0,4,64,4,0,2,64,0,4,88,248,0,4,1,0,5,4,2,0,3,66,0,5,8,8,64,0,18, +16,128,0,0,4,32,0,1,128,0,1,4,2,0,1,32,0,4,1,0,2,32,0,2,224,253,0,16, +4,0,0,32,0,0,64,0,3,128,0,22,32,0,3,8,0,9,8,0,0,2,0,5,144,255,4,0,2, +160,130,2,0,4,2,4,0,1,128,0,0,34,148,0,0,64,80,0,0,12,2,36,128,0,18, +24,0,0,1,18,64,0,1,10,9,0,0,2,4,0,1,16,20,0,1,80,144,10,2,0,1,64,0,0, +2,0,0,216,254,0,3,36,4,2,0,3,20,137,3,0,3,192,18,0,1,176,2,0,2,45,4,0 +,17,24,168,2,129,37,0,1,185,5,0,0,32,0,1,32,0,0,156,0,2,2,73,224,16,0 +,1,192,32,4,64,249,0,10,16,0,0,2,0,3,64,0,2,128,0,23,16,8,2,2,64,0,1, +2,2,0,10,1,32,64,0,1,128,0,1,88,252,0,2,128,0,7,4,4,0,3,16,64,0,5,128 +,0,0,1,0,20,64,0,8,8,0,0,2,4,0,1,4,128,64,0,3,32,32,128,250,0,2,128,0 +,14,2,0,37,32,0,6,32,0,0,8,0,5,152,255,0,25,128,0,29,4,0,0,1,0,6,1,64 +,0,5,64,254,0,0,128,0,7,1,0,1,4,0,5,64,8,0,29,64,8,64,8,0,2,32,0,3, +128,0,0,2,0,2,8,0,2,4,112,250,0,3,128,0,14,16,16,2,0,23,4,0,14,80,0,0 +,64,0,1,128,0,2,1,0,1,8,249,0,3,128,0,20,2,4,0,24,2,0,3,2,64,0,3,1,0, +9,208,252,0,5,2,0,10,8,0,51,1,0,2,160,253,0,3,8,0,21,2,0,46,48,253,0, +3,8,32,0,1,128,0,17,2,0,20,1,0,2,16,0,1,32,16,128,0,8,2,0,0,2,0,3,128 +,255,0,51,16,0,2,64,0,1,1,0,1,16,0,0,32,0,9,184,249,0,3,16,0,46,16,0, +11,1,0,0,2,0,6,136,253,0,3,2,0,20,128,0,0,16,0,27,4,0,5,16,0,9,80,249 +,0,17,32,16,0,54,168,254,0,74,152,255,0,8,2,0,44,8,0,8,16,0,8,48,252, +0,8,8,0,37,16,0,14,2,0,0,8,0,7,136,253,0,12,1,0,35,2,0,23,184,254,0,8 +,64,0,7,16,0,55,200,255,0,63,128,0,7,1,0,0,144,254,0,4,68,0,2,1,0,1,4 +,0,3,8,0,10,32,0,18,2,0,2,16,1,0,2,200,0,5,8,0,1,50,0,3,16,0,0,104, +248,0,4,8,16,0,9,2,1,0,8,2,8,0,19,128,0,3,68,0,1,16,0,5,32,0,3,8,0,3, +232,255,16,0,7,2,0,8,32,0,44,66,0,8,168,251,0,22,4,0,28,4,0,2,1,0,0,4 +,0,5,72,128,0,0,1,0,4,152,255,0,0,1,0,9,8,0,4,64,16,16,0,1,64,0,2,32, +0,0,4,0,18,4,128,0,17,8,0,4,32,254,0,27,8,0,27,2,0,1,2,0,6,32,0,2,4,0 +,1,80,249,0,0,1,16,0,3,8,128,0,10,8,0,7,8,0,15,64,8,0,1,1,128,0,12,8, +64,0,0,32,0,0,2,0,3,8,251,80,0,0,8,0,1,16,128,0,1,128,0,2,66,32,0,5,4 +,0,0,1,32,0,16,4,0,6,2,0,0,2,8,0,2,4,0,1,8,0,4,128,0,3,4,0,0,9,0,0, +152,253,96,0,0,12,0,1,16,128,4,128,80,194,0,1,40,0,0,1,0,1,64,0,0,4, +16,0,0,2,64,0,1,5,0,0,16,0,11,2,0,2,168,8,0,1,6,64,10,16,0,0,192,12,1 +,0,1,4,0,1,128,22,132,194,0,0,16,10,2,8,5,5,0,0,128,253,0,1,128,0,1, +128,0,0,64,5,64,64,0,1,128,0,4,32,136,4,64,160,0,0,136,2,1,0,0,8,0,2, +16,0,0,128,0,9,72,0,0,88,36,5,40,16,4,6,2,160,17,0,1,1,4,2,64,0,0,88, +2,32,197,75,4,0,0,64,48,0,0,216,250,0,7,4,0,4,1,0,3,16,8,8,0,0,32,0,1 +,2,0,1,16,0,16,1,8,0,0,1,32,0,0,2,0,7,2,16,0,0,8,0,3,1,0,1,17,0,0,216 +,252,0,4,16,0,3,10,0,11,1,0,0,1,0,0,1,0,4,16,0,0,32,0,11,128,0,2,8,0, +0,1,0,5,16,0,2,4,8,0,0,32,8,0,2,8,0,0,192,252,0,3,4,0,4,64,0,13,8,0, +30,8,0,4,64,0,0,4,4,0,5,1,0,0,24,250,0,9,64,0,6,128,0,40,1,0,1,128,2, +0,9,200,248,0,27,128,16,0,21,2,4,0,4,128,0,2,128,64,0,9,152,248,0,26, +128,0,0,32,0,34,2,6,0,7,88,251,6,0,18,1,2,0,1,8,0,2,64,0,20,2,0,5,16, +0,6,1,0,1,128,0,2,2,0,0,128,128,253,0,3,2,0,10,128,16,0,8,32,132,0,28 +,1,0,4,33,0,6,2,0,1,184,248,0,3,16,0,43,8,0,9,2,0,1,16,0,4,128,0,4, +176,252,0,0,64,0,3,32,0,1,128,0,2,2,0,6,4,128,0,24,8,0,0,1,32,0,3,16, +0,10,8,0,1,34,0,2,168,254,0,4,16,0,1,128,0,10,2,0,1,8,0,4,8,0,26,2,0, +6,32,0,8,16,254,0,4,128,0,13,32,0,4,32,0,21,4,0,8,2,0,5,16,0,1,128,32 +,0,3,128,249,0,3,1,8,0,20,1,2,0,19,16,0,1,4,0,13,4,0,6,24,252,0,17,16 +,0,7,64,0,0,16,0,21,64,0,4,6,0,7,8,0,7,252,0,2,128,64,0,1,2,0,1,8,0,1 +,32,0,11,32,8,2,0,17,4,33,0,5,104,130,0,0,160,5,132,64,0,2,26,73,35,0 +,2,160,145,52,18,240,250,0,4,1,0,7,129,0,10,128,0,19,16,0,6,32,0,1, +128,1,17,0,3,24,0,0,2,1,0,1,128,1,48,0,0,152,252,0,6,22,0,1,88,0,1,64 +,1,0,10,64,128,0,18,48,0,6,96,0,1,128,1,0,4,24,192,3,1,0,1,128,1,32,0 +,0,16,249,0,3,160,0,1,10,0,1,40,0,1,160,5,2,0,9,160,0,19,48,18,0,5,32 +,68,0,0,128,9,50,18,0,2,152,32,3,0,2,128,9,17,65,48,254,0,3,32,8,0,0, +12,0,1,48,0,1,160,8,2,0,9,32,17,2,0,17,32,2,0,9,129,128,0,3,144,64, +161,0,3,5,178,16,184,252,0,2,128,1,0,1,18,0,1,72,0,1,96,0,11,96,0,19, +60,32,0,5,24,32,0,0,224,0,0,12,32,0,2,14,200,3,0,2,224,0,0,60,0,0,192 +,251,0,4,2,0,0,16,0,1,64,0,1,128,1,0,11,1,0,18,48,0,6,64,0,1,128,1,16 +,0,3,24,0,0,3,2,0,1,128,1,48,0,0,160,252,0,3,68,0,1,8,0,1,32,0,1,128, +8,1,0,30,56,16,0,5,96,33,0,1,136,0,0,16,0,3,66,35,0,3,40,0,0,33,104, +251,0,2,128,16,0,1,2,0,1,8,0,4,128,38,0,2,64,18,1,0,1,160,8,0,8,34,0, +6,17,0,0,4,16,0,4,35,12,64,0,0,160,16,0,5,64,19,12,132,65,2,0,0,20,2, +232,248,0,4,4,0,10,6,4,0,7,64,0,8,12,0,6,6,0,0,16,0,5,3,32,0,2,128,0, +6,1,32,0,4,16,200,251,0,6,22,0,1,88,0,5,2,0,3,3,0,2,96,0,0,1,0,7,12,0 +,6,6,0,0,48,16,0,3,128,0,1,32,0,0,128,1,1,0,5,3,1,64,3,0,1,48,32,104, +250,8,0,2,16,8,0,0,10,0,1,40,0,5,4,8,0,2,8,1,0,1,32,8,0,8,10,0,6,5,0, +0,48,0,4,64,83,96,4,0,9,9,96,4,33,16,0,0,128,0,0,179,251,0,3,64,2,0,0 +,12,0,1,48,0,5,64,4,0,2,139,0,3,144,0,8,10,0,6,5,0,0,32,17,0,3,64,19, +65,17,0,0,128,16,0,6,96,64,17,0,2,16,2,241,250,0,2,128,1,0,1,18,0,1, +72,0,4,128,7,0,2,192,1,0,2,96,0,19,60,0,4,192,3,56,0,1,96,1,1,0,4,192 +,0,0,56,0,0,11,8,0,0,44,32,56,250,4,0,5,16,0,1,64,0,10,3,0,23,48,32,0 +,4,3,97,64,0,0,128,1,0,6,2,98,16,0,2,48,0,0,241,248,0,3,68,2,0,0,8,0, +1,32,0,5,132,0,3,83,0,2,32,16,2,0,17,56,1,0,3,64,16,112,4,0,0,128,1,2 +,0,5,11,96,0,0,65,16,0,0,48,64,168,254,0,2,128,16,1,0,0,2,0,1,8,0,1, +32,8,0,2,208,16,0,5,32,0,19,52,64,0,3,64,9,8,33,0,0,160,1,0,5,64,16,4 +,0,0,33,2,0,0,4,16,88,252,0,13,64,0,2,192,0,7,64,0,18,48,0,6,34,0,1, +128,1,0,6,1,0,6,32,249,0,4,1,0,0,22,0,1,88,0,1,96,0,3,64,64,0,5,224,0 +,0,1,0,17,48,0,5,3,2,32,0,0,224,1,0,9,3,0,1,48,0,0,208,254,4,0,2,64,0 +,1,10,0,1,40,0,1,32,0,0,1,0,1,128,4,0,5,32,8,0,18,48,66,0,4,16,96,0,1 +,160,1,0,6,67,0,1,33,8,0,0,48,17,202,251,12,0,3,1,0,0,12,0,1,48,0,7, +66,0,6,144,0,18,160,64,0,4,9,64,20,0,0,128,1,0,6,2,1,0,4,65,96,250,0, +2,128,1,0,1,18,0,1,72,0,1,96,0,0,1,0,1,240,0,6,96,0,17,1,0,0,28,0,4, +192,2,57,0,1,192,1,0,5,192,1,0,1,3,8,0,0,12,0,0,16,254,8,0,3,1,0,0,16 +,0,1,64,0,3,1,0,2,128,0,24,8,0,0,48,0,5,3,98,16,0,0,128,1,0,6,3,0,4, +32,8,57,254,0,3,4,0,1,8,0,1,32,0,1,32,5,0,2,128,0,6,32,16,2,0,15,6,0, +1,5,0,4,11,112,4,0,0,128,1,0,6,83,0,1,73,16,0,0,176,0,0,80,253,160,1, +0,0,128,16,0,1,2,0,1,8,0,1,160,0,3,208,16,26,1,0,3,32,9,2,0,19,70,0,1 +,10,66,3,8,128,0,0,160,1,20,4,0,3,64,16,12,8,0,2,52,0,0,120,252,128,1 +,0,2,1,0,7,128,0,2,192,0,0,24,8,0,22,8,0,2,6,2,0,2,3,0,2,128,1,1,0,5, +1,96,0,3,48,32,232,253,224,1,0,0,128,1,0,1,22,0,1,88,0,1,192,65,0,2, +64,64,8,16,0,3,64,129,0,16,1,0,2,7,0,1,24,192,3,0,2,96,129,48,16,0,5, +64,64,0,2,60,16,120,249,168,1,0,0,128,32,1,0,0,10,0,1,40,0,1,160,16,0 +,2,128,4,16,0,4,32,0,20,128,160,0,2,73,3,0,0,18,0,0,128,5,0,0,1,0,4, +67,96,0,3,144,0,0,2,255,128,1,0,4,12,0,1,48,0,1,32,0,0,2,0,2,24,64,8, +0,3,32,0,17,4,0,1,128,38,2,0,0,8,1,3,0,0,68,0,0,160,81,144,0,5,2,98, +130,0,2,52,10,160,255,192,1,0,0,128,1,4,0,0,18,0,1,72,0,1,96,1,0,2, +240,0,0,30,0,4,224,128,0,16,4,0,1,128,7,0,1,22,144,3,24,0,1,224,1,44, +16,0,3,192,1,88,0,3,60,0,0,32,254,132,1,0,4,16,0,1,64,0,2,1,0,3,64,0, +29,2,0,0,24,0,0,3,64,0,1,128,1,48,32,0,4,3,96,0,3,32,0,0,169,249,128, +1,0,1,36,8,0,0,8,0,1,32,0,1,128,9,1,0,1,128,0,0,16,2,0,3,128,0,17,4,0 +,2,6,0,1,152,16,3,96,8,0,0,128,16,177,0,5,11,114,36,0,2,48,34,192,254 +,0,1,52,128,36,1,0,0,2,0,1,8,0,1,32,0,3,144,0,3,4,0,1,32,4,1,0,17,36, +129,68,24,0,1,64,35,10,1,0,0,32,128,0,0,128,2,16,24,0,0,64,32,44,4,1, +161,129,4,1,56,251,0,1,48,0,0,2,0,12,64,128,0,1,3,0,2,128,0,17,2,0,1, +32,0,4,2,32,64,0,4,6,66,0,2,1,0,0,32,8,0,0,1,0,0,16,224,248,0,1,60, +128,3,0,1,22,0,1,88,0,9,128,3,0,2,64,0,17,2,0,0,32,0,0,4,192,0,1,192, +3,0,0,32,0,0,128,1,0,2,128,0,3,98,64,10,128,1,48,0,0,88,249,8,0,0,52, +128,4,0,1,10,0,1,40,0,1,128,5,1,0,1,64,130,0,0,64,19,1,0,1,160,4,1,0, +7,64,0,9,4,128,192,0,2,3,97,2,0,0,128,137,0,1,22,66,68,0,1,35,0,0,2, +13,132,17,49,4,91,251,0,1,48,0,0,4,0,1,12,0,1,48,0,2,128,0,2,192,4,0, +0,64,11,2,0,1,32,49,0,9,2,0,5,5,0,0,144,16,34,4,130,0,0,64,33,64,1,0, +1,8,2,0,0,22,0,0,2,0,1,34,32,128,69,136,1,130,64,201,248,0,1,56,128,2 +,0,1,18,0,1,72,0,1,224,1,0,2,240,32,0,0,192,0,3,96,0,9,128,1,0,7,60, +128,7,48,0,1,192,131,56,32,0,0,96,0,1,128,7,52,128,0,0,192,129,88,0,0 +,3,224,1,12,0,0,174,250,4,0,0,48,0,0,2,0,1,16,0,1,64,0,1,128,129,0,2, +192,0,2,3,1,0,2,1,0,25,3,96,0,1,128,65,0,1,6,0,3,3,96,0,0,12,128,129, +32,0,0,64,254,0,1,48,0,0,4,0,1,8,0,1,32,0,1,128,5,0,3,72,0,1,3,0,14,2 +,0,7,16,17,34,2,68,0,1,3,100,68,0,0,128,4,0,1,18,72,2,1,0,0,163,96,65 +,68,200,1,176,8,56,255,16,0,1,128,0,2,2,64,35,8,0,1,32,0,0,52,64,0,0, +16,128,26,64,34,0,2,32,64,0,18,4,132,20,0,2,64,11,9,1,0,0,32,4,2,0,1, +80,8,10,65,2,104,33,5,33,1,5,34,208,249,0,8,3,1,0,2,64,48,0,1,64,0,0, +24,0,0,3,1,0,22,48,0,0,6,2,0,2,2,32,64,0,6,64,0,0,8,1,98,0,1,128,1,0, +1,152,248,0,2,128,5,0,1,22,0,0,1,90,0,1,224,128,0,4,30,192,2,0,2,96,0 +,0,1,0,8,1,0,7,32,128,1,0,3,3,1,32,0,0,128,1,0,2,192,128,24,0,1,32,64 +,14,2,129,48,0,0,184,253,12,0,1,128,2,0,1,10,0,0,18,40,0,1,32,16,48, +17,0,0,192,64,26,0,0,80,0,2,32,8,0,9,1,0,7,176,64,4,4,0,2,2,96,2,0,0, +128,41,0,5,32,17,65,1,5,128,8,48,5,170,250,4,0,2,3,0,1,12,0,0,32,50,0 +,3,32,6,0,0,128,2,24,64,147,0,3,144,0,18,48,162,38,0,3,1,64,2,0,1,8,1 +,0,1,64,2,8,1,11,0,0,12,33,8,145,0,0,33,200,255,0,2,128,4,0,1,18,192, +3,72,0,1,96,0,0,29,0,1,112,32,28,192,1,0,2,96,1,0,9,1,0,7,44,128,3,1, +0,1,192,3,57,32,0,0,96,0,3,176,64,22,208,131,120,0,0,11,224,0,0,12,0, +0,112,253,4,0,2,4,0,1,16,0,1,64,0,3,33,32,0,0,192,0,0,24,0,25,48,32,2 +,0,3,3,96,0,1,128,1,0,2,192,128,24,0,0,3,0,0,32,8,0,0,1,32,0,0,113, +252,0,3,2,0,1,8,0,0,66,32,0,1,32,4,8,2,0,0,224,8,25,64,9,2,0,1,32,16, +2,0,7,128,0,8,184,128,16,4,0,2,19,98,10,0,0,128,80,0,2,192,2,152,16,8 +,68,0,0,76,136,16,49,10,80,248,0,2,128,0,2,2,0,1,72,0,1,32,64,180,0,1 +,16,2,1,0,4,32,72,52,0,7,128,0,8,20,130,68,8,0,1,64,3,8,1,0,1,144,0,0 +,128,66,0,3,19,106,4,1,0,1,48,32,152,253,0,9,32,0,3,48,16,0,0,64,0,8, +48,0,18,16,0,5,32,64,0,0,128,1,0,2,2,0,3,96,32,0,2,48,0,0,240,254,0,2 +,128,5,0,1,22,0,1,88,0,1,96,128,16,0,2,64,0,5,224,0,0,60,0,7,64,1,0,7 +,48,32,4,2,0,2,3,2,32,0,0,192,1,0,1,6,0,2,128,3,32,64,0,2,56,0,0,120, +253,4,0,1,128,2,0,1,10,0,1,40,0,1,32,16,32,64,0,0,192,8,0,5,32,4,54,0 +,15,8,0,1,1,32,0,3,3,96,2,0,0,160,9,1,0,1,8,0,1,64,3,66,2,12,16,0,0,4 +,5,67,255,12,0,2,3,0,1,12,0,1,48,0,3,48,1,0,0,128,130,0,6,4,48,0,15,1 +,0,0,16,9,34,4,0,2,139,64,65,0,0,160,5,1,0,0,34,1,0,1,64,16,1,12,0,0, +4,0,0,52,17,1,251,0,2,128,4,0,1,18,0,1,72,0,1,96,1,13,16,0,0,112,0,6, +96,0,0,57,0,17,44,128,7,0,2,192,3,56,0,1,96,0,1,128,5,0,2,192,3,120,0 +,0,15,0,1,60,0,0,56,249,8,0,2,4,0,1,16,0,1,32,0,3,17,16,0,0,192,0,8, +49,0,17,48,8,0,0,4,0,2,3,96,0,1,128,129,0,1,6,4,0,2,3,0,0,32,12,0,2, +32,81,252,0,3,2,0,1,8,0,1,64,0,1,32,4,136,0,1,224,0,0,1,0,4,32,4,48,0 +,17,48,1,34,0,3,3,97,32,0,0,160,5,0,1,22,0,3,35,66,0,0,12,8,0,0,52,0, +0,120,255,0,2,128,0,0,208,4,2,0,1,8,33,1,164,16,4,2,0,0,16,0,0,1,0,1, +104,0,0,1,32,16,0,16,32,8,37,129,2,16,16,0,0,64,145,104,65,45,48,8,0, +0,128,70,8,0,1,64,1,104,64,77,0,1,52,0,0,112,255,0,4,192,128,0,5,128, +129,48,16,0,5,96,0,1,128,0,0,1,0,15,129,0,1,32,4,196,0,2,2,96,0,0,12, +0,0,128,0,1,6,0,3,130,96,0,0,12,4,0,0,48,0,0,192,255,0,2,128,5,64,0,0 +,22,0,4,192,0,0,49,0,6,120,0,1,72,0,17,16,128,32,0,0,6,128,64,0,1,3, +96,0,1,128,1,0,1,6,0,3,3,98,0,0,12,4,0,0,60,0,0,200,248,8,0,1,128,2, +128,0,0,11,0,2,34,0,0,161,17,48,32,0,1,66,0,2,104,0,0,64,160,144,0,1, +4,0,5,16,2,0,5,136,9,128,32,22,66,0,2,35,1,32,8,132,33,0,2,2,0,2,3,0, +0,32,128,0,1,52,0,0,114,255,0,3,3,0,0,128,12,0,2,1,64,168,17,18,1,0,5 +,96,0,0,64,36,1,2,0,0,2,0,5,16,1,0,5,8,1,145,16,16,130,4,0,1,1,32,132 +,44,0,0,136,0,1,2,0,3,1,32,0,0,4,0,1,48,0,0,128,254,0,2,128,4,240,0,0 +,18,0,1,24,16,3,96,1,12,32,0,0,48,64,0,2,112,0,0,3,96,0,2,7,0,5,144,3 +,0,5,232,0,0,60,128,5,112,128,0,0,192,3,89,0,0,15,104,0,1,128,5,2,0,1 +,192,3,89,32,11,4,0,0,56,0,0,184,251,4,0,2,4,0,0,64,16,0,4,136,1,16, +16,0,0,128,32,0,2,96,0,2,1,0,0,128,5,0,5,208,2,0,5,136,1,0,1,4,129,64 +,0,1,3,0,1,12,128,65,0,6,3,0,4,48,0,0,25,253,0,3,2,128,0,0,8,0,1,64, +16,72,0,0,1,32,2,0,0,192,8,0,2,96,0,0,12,8,0,2,4,0,5,8,2,0,5,132,129, +144,16,22,64,4,0,1,67,80,129,68,129,16,0,1,165,0,3,19,82,129,74,1,0,0 +,48,0,0,40,252,0,29,4,0,6,2,0,35,248,251,32,0,0,4,128,0,0,16,0,0,2,64 +,0,0,8,0,0,1,0,1,4,128,0,0,16,0,0,2,0,1,8,0,0,1,0,1,4,0,7,2,0,6,33,0, +0,4,0,1,16,0,0,2,0,1,8,0,0,1,0,1,4,128,0,0,16,0,0,2,0,1,8,0,1,32,0,2, +8,255,0,74,152,255,36,0,0,4,128,0,0,16,0,0,2,64,0,0,8,0,0,1,32,132,4, +128,0,0,16,0,0,2,64,32,10,0,0,1,32,132,4,0,15,32,0,0,4,128,64,20,0,0, +2,64,8,12,0,0,1,32,132,4,128,0,0,16,0,0,2,64,32,9,0,0,33,36,0,0,132, +16,89,253,12,8,1,4,0,15,64,32,0,1,12,0,3,17,0,23,32,4,0,2,144,0,13,32 +,235,250,0,4,16,0,1,64,0,2,1,32,0,0,4,128,0,0,16,0,5,1,32,0,17,32,0,0 +,4,0,1,16,0,0,2,0,1,8,0,0,1,0,1,4,128,0,0,16,0,0,2,0,1,8,0,0,1,32,0,2 +,240,251,8,0,27,16,0,44,178,252,32,144,4,193,16,18,0,0,66,96,0,0,8, +129,1,32,132,4,128,0,0,16,0,0,2,73,8,12,36,1,32,132,4,0,15,32,0,0,4, +128,16,24,0,0,2,64,136,8,0,0,1,32,64,4,128,0,0,16,0,0,2,64,8,9,0,0,33 +,36,0,0,4,8,224,254,0,12,128,0,0,2,0,2,2,0,18,128,0,2,128,0,4,2,0,2, +128,0,1,1,0,0,64,0,3,8,0,0,1,0,6,136,0,0,120,249,0,20,128,1,0,25,1,0, +3,8,0,19,16,255,0,4,8,0,8,32,0,2,16,0,6,128,0,25,2,0,19,136,252,0,4,8 +,0,12,128,0,7,2,0,18,4,0,5,1,0,8,4,0,0,8,0,2,64,0,0,8,0,0,16,252,0,59 +,1,0,4,16,0,6,32,152,252,0,58,64,0,10,1,128,0,1,76,255,0,1,16,0,3,8,4 +,1,0,0,16,4,8,0,4,32,0,1,1,0,24,8,0,7,1,40,0,3,4,0,3,64,0,1,32,0,2,88 +,248,0,1,4,0,1,4,0,4,32,0,0,128,64,0,1,4,0,2,64,0,0,8,32,0,0,128,64,0 +,25,1,0,1,8,0,7,4,0,0,2,0,0,4,0,3,128,248,0,1,12,0,1,4,0,0,4,136,0,0, +192,96,42,36,45,161,128,0,1,64,0,0,192,0,0,8,64,0,0,32,5,1,0,18,16,0, +0,128,2,0,0,64,0,2,67,69,0,1,5,0,0,2,0,0,128,18,0,0,18,0,0,41,64,0,2, +144,251,128,0,0,160,128,0,0,128,0,1,20,10,64,0,0,36,0,1,128,0,2,4,0,0 +,6,72,32,0,1,128,97,1,0,17,16,0,0,2,1,2,48,0,0,9,5,0,0,64,34,1,52,6, +128,0,0,48,128,0,1,32,24,8,137,2,0,0,132,72,253,32,0,6,4,0,2,1,0,7,8, +0,0,8,0,1,32,0,0,1,0,17,8,128,0,0,2,0,2,2,0,2,8,0,0,32,0,2,128,0,2,32 +,64,0,0,128,0,2,8,253,0,1,32,0,1,16,0,1,128,0,0,8,0,9,16,128,0,2,128, +64,0,23,8,0,4,32,0,0,16,8,0,0,4,128,0,3,16,1,2,0,1,160,136,249,0,13, +128,0,7,64,0,3,2,0,17,8,0,1,1,0,19,16,0,2,128,248,0,15,32,0,0,16,0,8, +9,0,22,2,0,1,8,0,3,4,0,4,64,0,2,4,0,3,168,254,0,27,1,0,33,16,0,10,136 +,254,0,12,1,0,38,8,0,2,1,0,1,1,0,4,8,0,6,32,16,252,0,5,32,0,1,8,0,7,1 +,0,25,64,4,128,0,5,8,16,16,0,4,8,0,1,32,0,0,8,0,0,1,0,3,4,40,249,0,17 +,64,32,0,30,1,0,0,128,4,16,0,1,64,0,6,128,4,0,6,240,249,0,5,2,0,10,16 +,0,33,8,0,4,128,0,5,8,0,0,8,0,4,16,40,252,2,0,44,32,0,8,16,0,4,4,0,5, +128,0,4,88,254,0,3,4,0,6,2,0,1,16,32,0,29,16,0,0,16,0,8,1,0,4,16,64, +128,0,4,32,0,0,224,248,0,4,1,0,15,2,0,23,32,0,1,16,0,3,128,128,0,10,4 +,0,5,72,254,0,18,1,0,6,1,0,20,8,0,0,32,0,1,4,0,4,32,0,5,4,0,3,64,0,2, +255,0,13,32,0,12,16,0,17,128,0,6,32,0,18,32,254,0,12,64,0,4,128,0,1,4 +,2,0,22,4,128,0,0,2,0,4,64,0,12,2,4,0,2,80,249,0,1,4,0,9,128,0,0,2,0, +2,1,0,50,2,0,2,208,252,0,7,64,0,6,128,0,2,2,0,53,176,251,0,14,64,4,0, +1,2,0,33,2,0,0,8,0,2,32,0,1,128,0,4,16,0,4,200,251,0,49,32,16,0,18,64 +,0,2,136,249,0,37,1,0,0,16,4,0,1,16,0,29,250,253,0,15,16,0,7,32,4,0, +20,8,0,25,224,252,0,13,64,0,43,32,0,10,8,0,1,4,88,249,0,14,64,0,30,32 +,16,0,4,64,8,0,1,128,0,1,4,128,0,0,16,0,2,4,0,3,17,0,0,192,248,0,2, +128,1,0,9,16,0,3,1,0,3,4,64,0,21,4,0,24,24,250,16,0,16,128,0,36,8,0,9 +,64,0,0,8,0,4,192,251,0,0,32,0,17,64,0,25,80,0,0,8,0,4,2,0,2,4,0,3,2, +0,1,64,2,72,0,4,88,248,8,64,4,0,3,8,4,0,0,1,0,0,4,2,0,10,4,128,64,0, +16,64,0,0,16,0,2,128,2,0,1,8,64,2,32,0,1,32,0,0,4,0,0,2,4,0,2,2,0,2, +136,144,255,16,0,0,8,128,0,0,16,0,1,16,0,0,34,16,0,0,136,0,0,1,8,0,0, +128,0,2,128,0,0,32,0,3,8,0,16,1,0,1,4,32,0,1,1,0,1,1,0,3,2,0,3,1,64,0 +,3,33,0,0,202,251,0,0,128,12,128,0,0,16,0,0,4,24,0,0,203,64,2,44,5,1, +37,0,0,16,0,2,80,2,64,2,64,176,0,0,37,0,11,8,0,1,64,0,0,9,0,0,20,5, +192,132,66,0,0,16,32,3,64,0,1,144,0,0,2,20,4,72,10,8,0,0,66,1,40,165, +21,128,254,0,0,8,32,0,0,10,64,16,24,4,193,64,0,0,100,64,0,0,16,85,0,0 +,1,128,0,0,4,0,0,146,0,0,32,64,4,0,0,39,0,10,4,2,0,1,128,0,0,128,8, +130,17,0,0,136,4,130,8,0,0,4,34,0,0,16,42,4,64,17,128,18,131,8,0,0,1, +137,2,32,0,0,112,252,0,3,2,32,0,0,8,132,128,0,1,4,0,1,4,0,1,4,0,1,4,0 +,18,8,2,0,1,64,0,1,8,2,1,0,0,4,2,0,0,2,0,0,4,8,0,0,4,4,0,0,64,0,1,128 +,128,0,2,128,0,2,72,253,0,1,8,0,2,64,2,0,1,10,0,4,32,0,11,8,0,19,2,0, +2,1,0,6,2,0,0,32,0,0,4,1,0,2,8,0,0,4,0,0,128,255,16,0,18,1,32,0,15,8, +24,0,2,24,0,9,1,32,0,18,204,249,18,0,3,2,128,0,6,128,0,2,4,0,2,128,0, +3,64,0,8,128,4,0,1,18,1,0,6,1,0,3,64,0,1,2,0,1,8,0,0,5,32,0,0,16,0,3, +4,0,1,128,196,252,0,11,32,0,4,64,0,0,8,0,4,32,0,30,32,0,5,2,0,1,65,64 +,0,0,1,0,0,4,64,56,251,0,3,2,0,3,8,0,4,33,0,0,16,0,8,2,0,20,128,2,0,6 +,128,0,0,2,0,12,64,128,249,0,2,32,0,3,32,0,1,128,0,1,2,0,4,48,0,0,128 +,12,0,23,4,0,0,8,0,1,64,0,0,132,0,2,2,0,3,1,0,1,1,32,0,4,128,184,248, +0,3,4,0,8,3,0,3,64,0,6,1,0,18,12,0,7,64,0,0,32,1,0,1,8,0,0,1,0,1,2, +137,0,0,24,32,0,0,36,0,0,40,254,0,0,1,0,2,4,0,7,32,0,0,8,0,9,32,0,15, +128,0,21,2,0,2,8,0,2,120,254,0,21,4,0,24,128,0,3,64,0,4,2,0,12,64,0,0 +,120,251,0,9,32,0,0,1,0,1,1,0,10,4,0,19,32,1,0,5,128,16,16,64,64,64,0 +,6,128,16,0,0,4,0,0,8,0,0,252,0,9,128,0,6,128,0,1,64,0,25,72,0,0,36,0 +,4,1,0,1,128,0,0,128,0,7,1,0,2,16,200,253,0,8,4,0,4,4,0,1,32,0,2,64,0 +,17,32,0,3,2,64,64,0,2,16,0,1,64,0,2,32,10,0,4,128,0,0,128,0,0,8,0,1, +66,0,1,252,0,4,32,0,11,32,0,29,2,0,3,129,0,11,129,16,1,0,2,144,0,0,40 +,254,0,1,20,0,4,64,3,0,7,16,68,0,2,104,4,0,19,32,1,4,0,14,192,8,1,64, +99,0,6,96,255,0,1,32,0,5,3,0,12,96,64,0,19,128,64,0,15,192,0,2,1,0,5, +16,232,252,0,1,44,0,14,48,32,0,2,96,32,0,19,224,0,16,224,0,1,128,3,0, +4,60,8,208,253,0,1,20,0,14,16,0,3,96,0,20,32,1,0,0,64,0,13,16,72,0,0, +64,33,2,0,3,52,2,32,249,0,1,24,17,0,4,35,0,8,8,0,2,64,20,0,20,1,128, +32,0,13,208,34,0,0,64,34,2,0,4,2,232,253,0,1,32,0,4,192,131,0,7,48, +128,0,2,120,0,20,160,0,0,12,0,14,240,0,1,192,3,0,4,60,32,240,251,0,1, +32,0,5,3,0,8,32,0,2,96,0,20,128,0,1,16,0,17,2,0,6,24,248,0,1,16,9,0,4 +,35,1,0,6,128,2,0,2,96,66,0,20,1,48,0,14,192,128,0,0,64,3,0,4,176,8, +64,249,160,145,4,0,4,64,35,12,4,1,0,6,66,16,0,5,4,0,7,40,0,6,52,0,3, +80,0,2,131,0,7,192,8,1,0,6,48,66,184,250,128,0,7,3,0,0,64,0,24,12,0,6 +,6,0,3,128,0,2,3,0,17,48,0,0,72,250,192,1,44,0,4,192,1,0,0,32,12,8,0, +5,8,0,7,32,0,6,12,0,6,102,1,0,2,176,0,1,192,3,0,7,224,0,8,56,0,0,160, +249,168,128,20,0,4,64,138,0,1,64,0,6,72,8,0,6,1,0,6,10,0,6,165,0,3,80 +,0,1,64,3,0,7,208,20,0,7,4,33,178,248,32,17,24,17,0,4,35,64,132,0,0, +16,0,5,88,0,7,4,0,6,10,0,6,197,0,3,96,24,0,1,32,0,7,16,2,1,0,6,52,8, +240,248,192,1,33,0,4,192,131,24,0,0,3,0,6,30,16,0,5,60,0,15,32,1,0,2, +144,0,1,192,128,0,7,240,0,8,60,0,0,120,252,4,1,32,0,5,3,0,2,4,0,5,16, +8,0,6,16,0,15,1,0,2,128,0,11,192,128,0,8,16,177,254,128,1,16,8,0,4,10 +,1,66,0,7,80,0,23,128,0,3,64,32,0,10,192,0,8,176,0,0,64,250,160,133,4 +,0,4,64,144,0,7,208,40,0,2,8,0,20,32,0,3,16,0,5,1,0,1,4,0,4,64,16,1,0 +,5,40,249,128,1,0,15,192,0,38,4,0,4,64,0,1,3,0,5,16,152,252,128,65,44 +,0,5,128,0,7,192,64,0,16,18,0,6,105,1,0,2,176,0,11,240,0,8,60,8,176, +251,136,8,20,0,5,16,0,7,192,8,0,3,66,0,11,18,0,6,169,0,3,80,0,5,40,16 +,0,1,16,0,0,208,36,0,1,16,1,0,3,52,1,146,249,0,0,1,25,17,0,4,160,0,7, +192,36,0,2,96,20,0,19,192,0,3,96,24,0,4,128,2,0,1,66,0,1,8,0,1,3,2,0, +4,2,136,251,224,0,0,32,0,4,192,0,8,112,0,3,24,0,12,34,0,6,49,1,0,2, +144,0,5,7,0,1,60,0,1,240,128,0,0,192,1,0,4,60,32,0,0,254,4,1,32,0,5, +128,0,7,192,0,4,32,0,20,1,0,2,128,0,5,4,0,2,16,0,1,128,0,8,8,249,253, +128,16,145,8,0,4,10,0,7,192,68,0,16,8,0,6,132,0,3,64,34,0,4,4,16,0,3, +192,4,0,1,9,1,0,3,48,0,0,64,252,160,1,4,0,4,64,0,3,32,0,5,10,1,0,2,1, +32,80,0,16,32,0,3,16,0,1,64,16,0,1,141,4,0,5,2,64,16,1,0,5,48,255,128 +,1,0,17,16,16,0,14,32,0,6,16,0,8,1,0,0,12,0,5,64,0,8,16,48,253,96,0,0 +,44,0,10,64,0,4,24,0,4,8,0,9,2,0,6,97,1,0,2,176,0,1,192,0,0,2,0,0,12, +0,4,48,0,2,3,0,4,60,0,0,136,255,40,0,0,20,0,5,3,4,0,8,152,16,0,2,64,0 +,0,144,0,8,2,0,6,161,0,3,80,0,1,64,16,0,1,4,4,0,3,16,0,2,16,1,0,3,52, +34,202,248,0,0,4,25,17,0,4,32,0,3,68,0,4,136,0,3,64,0,0,136,0,8,8,0,6 +,196,0,3,96,24,0,2,1,0,0,44,0,5,8,64,0,0,18,4,0,4,2,40,251,64,0,0,32, +0,4,192,128,0,2,96,0,5,6,16,0,2,3,100,0,9,8,0,6,36,1,0,2,144,0,1,192, +0,2,15,4,0,3,48,128,6,208,0,5,60,32,32,252,132,1,32,0,5,3,0,2,128,65, +0,4,24,16,0,3,132,0,9,2,0,6,1,1,0,2,128,0,3,2,0,0,12,8,0,3,192,0,0,24 +,8,2,0,6,41,248,128,5,18,10,0,4,11,1,0,2,8,0,4,128,0,3,12,0,0,8,2,0,7 +,8,0,6,132,0,3,64,40,0,1,34,0,1,76,0,4,192,32,152,0,0,19,2,0,3,48,9, +176,249,32,5,37,17,0,2,130,64,1,0,7,16,0,9,128,4,0,5,66,2,0,5,33,0,3, +16,0,5,77,4,0,0,4,0,4,64,10,4,0,1,32,0,0,48,66,184,254,128,0,0,16,0,3 +,24,8,2,0,26,36,0,6,18,0,10,12,0,2,32,0,1,64,0,9,24,251,96,1,44,0,3, +24,192,2,0,19,1,0,5,128,0,6,96,1,0,2,176,0,5,12,0,2,16,0,0,240,32,0,1 +,3,0,4,56,0,0,200,255,168,0,0,20,0,3,152,96,161,0,18,128,8,0,5,80,4,0 +,5,168,0,3,80,0,5,128,4,0,3,208,2,0,1,138,0,4,52,33,137,248,0,0,1,40, +0,3,136,128,33,0,8,34,0,24,192,0,3,96,24,0,4,44,0,2,4,0,1,8,0,1,35,1, +0,2,16,4,1,59,253,192,0,0,32,0,3,6,16,2,1,0,6,48,0,10,2,0,6,1,0,5,32, +1,0,2,144,0,5,15,2,0,0,44,0,1,240,128,0,0,192,3,0,2,96,0,0,61,32,64, +251,4,1,32,0,3,8,144,130,0,7,192,0,26,1,0,2,128,32,0,4,4,0,8,3,0,2, +128,1,48,16,218,252,128,0,0,32,0,3,144,0,0,33,0,7,192,128,0,8,128,4,0 +,5,64,2,0,5,128,0,3,64,8,0,4,12,4,0,1,32,0,0,192,34,0,1,163,0,2,128,9 +,177,0,0,208,249,32,128,0,0,128,0,0,16,0,0,130,96,0,3,128,8,4,128,6, +16,128,0,0,64,3,4,0,0,1,0,18,32,0,1,128,0,0,144,24,2,0,1,8,0,0,5,32,0 +,3,192,8,1,64,131,8,0,4,66,248,255,0,0,1,0,2,4,0,0,24,0,5,1,1,0,0,6,0 +,3,3,0,5,128,0,6,64,0,11,68,0,5,8,0,16,160,253,64,0,3,2,0,0,24,192,2, +0,2,96,1,1,32,0,0,116,64,0,9,2,0,6,1,0,5,96,1,0,2,178,0,5,11,0,1,1,0, +1,240,128,0,0,192,131,96,64,0,2,12,0,0,208,254,40,33,0,3,128,152,80, +161,0,2,160,8,0,0,1,64,0,3,11,1,0,0,128,4,0,2,2,0,6,1,0,5,160,0,3,80, +0,0,152,2,0,1,32,133,130,1,0,2,16,8,0,0,64,10,0,4,4,0,0,225,249,160,8 +,0,1,130,0,0,72,144,128,33,0,2,192,0,1,1,70,20,66,0,1,10,2,0,0,64,4,0 +,1,128,0,6,64,0,6,192,0,2,128,160,0,0,24,1,0,1,68,134,0,1,2,0,5,32,96 +,65,0,2,48,2,19,250,64,64,0,0,128,1,240,0,0,6,16,2,1,0,2,1,60,144,7, +48,0,1,192,1,0,1,15,0,3,2,0,6,1,0,5,32,1,0,0,128,3,144,0,0,30,16,0,0, +24,0,0,9,232,1,0,2,240,0,1,192,0,0,26,0,3,60,8,144,253,132,0,5,16,144 +,130,0,2,64,1,0,0,16,0,0,1,0,2,2,2,0,4,128,0,6,64,0,7,1,0,2,128,0,0, +24,0,3,10,130,1,1,0,5,1,96,32,0,2,48,0,0,218,252,0,4,4,132,136,0,0,9, +0,2,128,0,2,6,144,72,0,0,128,0,2,64,16,0,2,9,0,5,128,4,0,5,128,0,3, +132,0,0,88,16,0,0,96,129,36,128,5,0,2,192,0,2,10,98,0,3,48,0,0,40,251 +,160,0,0,4,0,1,16,0,0,26,64,0,0,104,0,0,13,0,0,8,52,128,132,16,64,0,0 +,64,8,9,0,1,32,0,0,4,0,15,32,0,0,4,128,0,0,16,8,0,4,1,32,0,4,8,1,64,8 +,9,4,0,4,48,250,128,1,1,8,0,2,24,0,3,12,0,1,1,0,0,6,64,0,10,4,0,6,2,0 +,10,64,32,0,16,64,0,3,16,224,251,96,64,28,0,2,128,24,192,2,0,2,96,1,1 +,32,4,2,0,25,96,1,48,32,0,0,4,32,0,4,11,0,1,1,0,1,48,0,2,128,0,0,64,0 +,2,60,0,0,32,253,168,16,0,0,8,0,1,4,152,96,161,0,0,64,0,0,160,8,0,0,1 +,22,0,0,20,0,1,16,1,0,3,1,18,0,14,160,0,2,6,0,0,8,0,4,133,130,1,0,2, +16,0,2,8,0,0,4,0,2,52,8,169,253,0,0,5,5,2,0,1,8,25,144,33,0,0,36,0,0, +192,0,1,1,70,0,3,19,98,8,0,1,144,48,17,0,6,6,0,6,195,0,0,48,64,192,0, +0,4,0,4,134,0,0,136,0,2,192,0,2,147,0,0,132,0,3,2,123,248,96,0,0,8,16 +,0,0,48,0,0,30,0,0,2,25,0,0,3,4,1,12,144,3,52,128,0,0,192,1,120,0,1, +96,0,0,12,0,15,32,1,12,128,7,48,32,0,4,9,232,1,0,2,240,32,0,0,192,1, +24,0,3,60,32,56,254,132,1,4,0,2,64,24,136,130,0,2,72,1,0,0,16,0,8,128 +,1,0,17,1,48,32,6,2,0,5,10,130,1,0,2,192,0,2,2,0,6,234,249,0,0,65,164 +,8,0,0,192,0,1,1,1,0,0,66,0,0,128,0,2,17,34,2,1,128,0,0,1,130,0,1,8,1 +,65,0,14,128,0,0,176,0,0,38,32,34,0,4,4,128,1,2,0,1,192,0,2,33,33,66, +0,2,176,16,104,255,48,16,6,138,6,0,2,64,34,0,1,65,0,0,9,0,0,128,0,0, +16,16,74,64,35,104,33,0,0,160,17,0,16,32,1,0,2,16,36,130,80,16,0,1, +137,32,0,0,180,192,38,4,0,0,2,64,32,4,0,0,1,32,0,1,66,24,254,128,0,2, +6,0,3,1,1,0,1,132,0,0,1,0,0,6,68,0,0,16,8,1,98,0,1,128,129,0,16,128,0 +,3,64,0,3,1,0,0,4,8,0,0,48,0,0,4,0,0,64,0,9,56,250,224,0,0,1,0,0,6,0, +2,192,2,0,1,3,100,1,1,0,0,6,2,0,1,16,3,97,32,0,0,128,1,1,0,7,4,0,6,98 +,1,0,7,2,0,0,11,0,1,49,0,0,6,240,0,1,208,1,2,0,0,12,136,1,13,0,0,72, +254,12,16,0,0,10,6,0,2,64,161,0,1,65,160,8,0,1,6,0,0,2,89,0,0,33,96,0 +,1,128,9,0,1,4,0,5,16,2,0,5,168,0,4,34,136,32,16,0,1,5,128,1,48,16,6, +212,2,25,0,0,32,0,4,4,0,0,162,249,36,69,0,0,17,0,3,128,2,0,1,64,192,0 +,2,36,0,0,8,81,0,0,18,64,20,0,0,128,33,0,1,2,0,5,16,1,0,5,200,0,4,34, +0,2,1,0,0,74,0,0,4,48,4,6,0,0,8,0,0,96,0,2,76,132,1,50,9,240,254,64,0 +,0,12,128,1,2,0,2,2,0,1,3,8,1,0,0,128,1,52,0,0,14,208,3,122,0,1,224,1 +,0,1,7,0,5,144,3,0,5,40,1,0,2,48,0,0,6,208,0,2,9,226,1,61,128,7,244, +128,30,192,128,0,1,3,96,0,0,60,0,0,240,248,4,0,1,8,6,0,2,128,2,0,2, +192,0,2,4,4,0,0,24,8,0,0,98,0,1,128,129,0,0,128,5,0,5,208,2,0,5,136,0 +,6,8,0,0,2,0,0,8,128,129,48,16,6,2,0,0,24,16,0,2,12,128,1,49,0,0,113, +255,0,0,41,32,2,70,4,0,2,2,0,1,40,8,1,0,1,34,0,0,132,64,0,0,16,96,66, +0,0,128,0,2,4,0,5,8,2,0,5,4,1,0,3,40,0,1,34,0,1,8,128,1,16,0,0,6,192, +40,24,65,82,0,1,12,144,17,48,0,0,104,250,0,2,34,0,25,4,0,6,2,0,35,248 +,249,32,0,1,128,0,0,16,0,0,2,64,0,0,8,0,0,1,32,0,0,4,128,0,2,2,64,0,0 +,8,0,0,1,32,0,0,4,0,7,8,0,6,36,0,0,4,128,0,0,16,0,0,2,64,0,0,8,0,0,1, +32,0,0,4,128,0,0,16,0,0,2,0,1,8,0,0,1,32,0,0,4,0,0,64,251,0,74,152, +255,40,0,1,192,0,0,16,0,0,2,64,0,0,8,0,0,1,32,0,0,4,128,0,0,16,8,3,64 +,0,0,8,0,0,1,32,0,0,4,0,15,32,0,0,4,128,0,0,16,0,0,2,64,0,0,8,0,0,1, +32,0,0,4,128,0,0,16,0,0,2,64,0,0,9,0,0,1,32,0,0,4,0,0,9,254,0,0,16,1, +18,0,9,16,1,0,58,139,255,0,2,128,0,0,16,0,0,2,0,0,128,8,0,3,4,128,0,2 +,2,64,0,0,8,0,0,1,32,0,0,4,0,17,4,128,0,2,2,0,1,8,0,1,32,0,0,4,128,0, +2,2,0,1,8,0,0,1,32,0,2,56,248,4,0,1,16,0,5,1,0,2,128,0,3,128,0,30,64, +0,5,4,0,4,64,0,2,1,0,4,16,122,249,0,0,32,0,0,129,0,0,16,0,0,2,0,0,16, +8,0,0,1,40,8,4,128,0,0,16,8,2,64,0,0,8,0,0,1,32,0,0,4,0,15,32,0,0,5, +128,0,0,16,4,2,64,0,0,10,0,0,65,32,0,0,4,128,0,0,16,4,2,64,16,8,0,0,1 +,32,0,0,4,1,72,251,0,18,64,0,37,4,0,7,4,0,6,216,251,0,74,152,255,0,17 +,32,0,0,8,0,0,12,0,40,2,0,9,176,249,0,17,16,0,1,8,64,0,40,16,0,9,208, +250,0,11,8,4,0,8,32,0,21,128,0,6,2,1,0,12,8,0,4,176,250,0,19,1,0,37, +64,0,6,8,0,7,251,0,1,16,8,0,5,16,0,0,1,2,0,0,16,0,0,4,1,0,8,1,0,15, +128,64,0,27,16,248,0,10,64,2,0,1,4,0,0,2,0,28,16,136,0,2,16,0,9,128,0 +,10,192,253,128,0,0,24,24,0,5,16,64,3,6,0,0,12,128,1,2,0,2,10,0,3,128 +,0,16,192,168,20,160,0,2,2,0,6,16,0,1,17,0,2,128,0,6,64,250,160,67,0, +0,88,0,0,64,0,2,128,0,1,68,8,0,0,128,0,0,48,64,0,1,40,8,168,0,0,149, +180,209,2,0,16,192,130,0,1,1,32,50,0,0,193,5,0,5,96,10,0,0,16,0,2,16, +0,1,64,48,80,40,255,64,64,0,0,8,0,0,16,0,2,128,0,1,2,0,4,16,0,3,32,0, +0,4,128,64,0,17,64,0,2,2,64,0,1,130,0,13,64,0,2,17,0,0,56,248,128,0, +24,64,0,24,8,0,1,1,0,8,8,0,6,4,0,0,16,254,0,0,2,0,54,16,0,2,64,0,12, +200,249,0,8,2,0,8,64,0,47,1,0,5,232,249,0,0,64,0,2,1,0,13,1,0,5,2,0, +28,32,0,16,216,249,16,0,6,32,0,0,2,0,0,32,0,0,4,0,31,128,32,16,0,8,4, +1,0,3,64,0,2,1,32,8,4,0,1,180,248,0,74,152,255,0,74,152,255,16,0,73, +204,251,0,12,2,0,39,64,0,10,2,0,4,32,0,1,250,253,0,0,32,0,14,2,0,3,1, +2,0,23,4,0,9,32,0,6,128,0,6,240,250,0,0,4,136,0,0,8,0,6,16,0,3,128,0, +0,1,0,26,8,0,8,8,64,0,7,2,16,0,5,72,253,0,0,4,0,5,16,0,3,8,4,32,0,8,8 +,0,0,1,32,0,45,200,249,64,0,55,2,0,16,248,253,0,17,64,0,12,32,0,2,32, +0,2,16,0,2,16,0,29,232,253,0,16,4,0,3,2,0,51,216,253,0,0,128,0,72,144 +,255,0,17,2,0,2,8,0,33,16,0,8,4,0,4,32,0,1,251,0,12,2,0,20,16,0,6,8,0 +,4,1,0,2,128,0,20,152,253,0,17,32,0,13,2,0,33,4,0,5,216,253,128,0,3,2 +,66,0,3,32,0,8,8,0,0,1,64,0,1,132,128,0,20,18,0,1,16,0,2,8,0,1,64,16, +0,0,2,0,2,1,0,0,32,0,1,128,0,1,48,249,0,1,1,0,0,1,34,64,0,0,8,0,0,16, +32,2,0,1,8,0,0,1,0,4,16,32,2,64,128,8,0,11,1,0,6,1,2,0,0,4,8,0,5,8,16 +,1,2,0,3,2,40,0,1,128,0,1,120,252,36,0,5,64,0,5,64,0,1,16,0,1,64,0,41 +,128,0,0,5,0,0,2,0,4,16,0,0,120,253,0,0,128,0,19,1,0,1,4,128,0,0,16,0 +,36,128,0,7,136,251,0,1,8,0,4,128,0,3,64,0,3,128,2,0,29,32,0,4,128,2, +0,4,32,0,1,128,8,0,4,8,0,0,88,249,0,17,64,16,0,0,4,0,7,1,0,0,130,4,0, +1,130,128,0,1,65,2,0,1,65,0,10,1,0,17,184,252,32,0,0,16,0,0,129,0,4, +16,0,10,1,0,4,8,0,22,4,0,4,34,0,1,32,2,0,0,32,0,4,2,64,0,0,4,128,160, +249,4,64,0,4,8,16,1,32,0,7,32,4,0,4,128,0,7,128,0,10,16,0,0,2,64,0,5, +4,128,0,0,16,0,5,1,8,0,4,32,152,255,64,69,9,0,0,1,130,2,130,82,80,24, +0,3,16,0,2,128,2,128,0,2,4,32,5,24,0,3,4,0,0,64,0,4,2,0,2,128,0,0,20, +128,0,0,16,0,0,4,0,3,1,100,0,0,4,21,1,128,66,8,64,0,0,8,0,0,2,66,64,8 +,32,104,252,0,0,143,214,82,2,10,96,49,0,0,81,0,0,1,130,150,144,2,12,0 +,0,5,64,5,4,9,37,188,32,128,4,128,0,3,8,0,6,4,2,32,0,0,32,164,230,86, +4,4,0,0,4,4,2,64,168,8,1,33,136,0,0,20,192,2,64,128,72,141,0,0,200,55 +,8,100,8,208,255,0,1,8,0,0,2,0,0,64,0,0,64,0,3,68,0,1,16,0,0,4,0,1,72 +,0,0,64,32,0,0,32,0,5,16,0,6,8,1,64,0,8,4,0,8,64,0,6,4,0,1,8,32,255, +128,0,5,8,0,0,128,0,5,32,0,6,16,0,20,64,16,136,0,3,128,0,0,16,16,4,66 +,64,0,1,1,32,0,2,128,0,1,2,2,0,0,16,0,0,120,253,16,0,7,2,0,19,1,16,0, +0,5,0,1,16,129,0,0,8,128,2,0,1,136,0,9,128,0,9,16,0,5,1,0,0,148,252,2 +,32,0,14,16,0,11,4,64,0,0,16,0,0,64,0,1,2,32,0,0,8,0,0,32,0,7,2,4,0, +11,4,192,0,5,128,232,250,2,0,0,66,0,8,32,0,1,128,0,4,2,0,2,32,0,31,16 +,0,6,64,0,0,4,0,4,128,160,248,0,2,32,0,15,16,0,53,184,254,0,11,2,0,40 +,8,0,18,128,124,249,0,52,2,0,7,128,16,0,10,32,255,0,7,4,0,8,1,0,1,4, +128,0,8,16,0,6,8,0,11,8,0,9,64,0,2,1,0,4,16,216,254,32,0,0,16,0,2,128 +,0,3,64,0,24,1,0,5,128,0,15,32,0,3,64,0,1,64,0,4,144,249,64,0,5,16,0, +0,4,0,7,2,0,6,8,0,0,1,32,0,43,8,168,251,0,6,8,0,7,128,0,4,4,0,33,4,0, +5,129,0,1,1,0,4,64,48,16,248,0,21,64,0,0,32,0,22,160,0,10,1,0,13,72, +250,0,2,128,0,14,128,0,2,8,0,1,32,0,0,4,0,18,128,0,8,136,0,0,4,0,2,2, +0,4,4,0,3,208,251,160,0,0,6,0,5,3,100,128,0,4,38,0,10,10,0,14,32,136, +0,2,208,0,5,5,0,4,192,128,0,9,240,252,128,0,7,3,96,0,6,2,0,30,192,0,5 +,8,0,16,232,252,96,1,48,32,0,3,192,3,120,0,4,128,7,0,9,12,0,15,128,65 +,0,3,128,0,4,11,0,4,240,128,0,9,232,255,160,0,0,48,2,0,3,64,3,104,0,4 +,128,160,0,9,4,0,15,128,1,0,3,4,0,4,5,0,4,16,2,0,9,192,251,64,145,128 +,0,5,3,96,0,17,65,0,14,128,16,0,2,192,2,0,4,70,8,0,15,152,255,0,0,1, +60,32,0,3,128,3,112,0,5,7,0,9,8,0,15,96,0,0,1,0,1,48,32,0,4,8,0,4,224 +,0,10,240,250,0,0,1,1,0,5,3,96,0,4,128,0,10,48,0,15,128,0,0,1,0,1,192 +,0,5,8,8,0,15,120,252,128,4,48,34,0,4,3,96,0,5,6,0,9,48,34,0,15,4,0,3 +,130,0,4,36,0,4,192,0,10,56,252,32,0,0,2,0,9,32,0,0,176,64,0,4,35,4,4 +,0,11,34,0,6,17,0,10,1,0,2,128,2,193,128,0,2,96,0,1,128,73,52,9,216, +253,0,22,96,64,0,11,12,0,6,6,0,15,4,0,5,32,0,2,48,0,0,96,248,96,1,0, +11,128,60,0,4,192,3,16,32,0,11,12,0,6,6,0,10,11,0,4,240,64,0,2,120,0, +1,224,1,48,8,32,254,168,0,12,8,4,5,0,3,64,0,0,106,4,0,11,10,0,6,5,0, +10,5,0,3,22,18,0,3,8,10,0,0,32,40,48,0,0,26,252,64,145,0,10,128,5,0,7 +,104,0,12,10,0,6,5,0,10,70,8,0,2,68,2,0,8,176,16,48,252,0,0,1,0,10, +224,129,56,0,4,128,3,16,64,0,31,8,0,2,128,3,224,0,3,112,0,1,192,1,12, +0,0,80,252,4,1,0,20,104,0,32,8,0,3,6,0,9,32,16,1,254,128,132,0,10,128 +,9,50,0,5,3,8,0,32,36,4,0,2,16,193,0,3,96,0,1,128,1,24,2,136,252,48,0 +,0,2,128,22,200,2,1,0,1,96,0,0,13,0,4,208,0,2,3,72,4,0,0,164,9,22,16, +0,19,192,8,1,0,1,96,0,0,1,0,3,6,192,128,0,1,3,1,0,3,132,8,24,255,0,3, +2,0,5,64,12,0,9,34,16,0,1,1,32,0,26,32,0,5,4,0,8,48,0,0,160,249,96,1, +0,1,6,240,0,3,120,0,0,15,0,4,192,0,1,192,3,0,1,14,128,1,48,0,20,240, +128,0,2,120,0,0,11,0,2,128,7,240,0,1,192,3,2,0,3,32,8,208,250,172,0,2 +,70,17,128,0,2,8,10,13,0,4,192,4,1,64,80,96,68,129,136,41,160,16,0,19 +,16,8,0,2,8,10,5,0,2,128,160,16,132,0,0,64,0,5,16,1,138,252,68,145,0, +1,20,2,0,12,2,0,2,32,0,0,129,136,1,2,17,0,26,70,8,0,13,176,16,32,249, +0,0,1,0,0,128,7,224,0,3,112,0,0,2,4,0,3,48,128,0,0,128,3,88,32,3,224, +1,12,0,20,224,0,3,112,0,0,8,0,3,7,224,0,1,128,3,0,4,60,0,0,144,253,4, +1,1,0,1,1,0,3,8,0,6,192,0,3,96,16,0,0,128,129,0,0,32,0,26,8,4,0,13,48 +,16,177,248,128,16,0,1,22,192,0,3,104,0,6,192,66,0,1,3,0,0,4,12,208,5 +,48,0,20,192,0,3,96,0,0,4,0,3,6,192,0,2,3,0,4,48,2,192,251,32,0,0,2,0 +,0,70,200,66,0,4,13,128,9,0,4,154,0,2,4,13,32,1,0,0,10,0,6,4,0,6,2,0, +10,1,0,4,208,0,0,2,0,0,3,1,0,0,76,8,0,2,184,249,0,11,12,0,0,128,0,4, +16,8,0,0,96,64,12,132,1,1,0,7,18,0,6,9,0,16,192,32,0,4,12,0,3,32,252, +96,1,0,0,128,7,240,0,5,15,224,1,1,0,3,30,0,1,16,32,12,2,1,12,0,27,11, +0,4,192,0,0,24,192,3,1,0,0,15,0,3,48,249,168,0,1,128,128,16,20,0,4,13 +,32,4,0,4,24,17,0,0,104,1,128,128,16,6,0,7,4,0,6,2,0,10,5,0,4,192,34, +88,96,32,0,1,13,0,3,153,252,64,145,0,9,32,0,6,74,8,0,0,104,132,140,4, +133,0,0,65,0,6,8,0,6,4,0,10,70,8,0,3,192,66,64,0,3,12,0,3,83,251,0,0, +1,0,1,7,224,0,5,2,196,1,0,4,30,0,1,16,0,0,15,224,0,0,8,0,7,4,0,6,2,0, +10,8,0,4,48,0,0,30,144,3,0,1,14,0,3,224,254,4,1,0,2,16,0,6,32,0,5,24, +0,1,104,0,0,4,8,1,48,0,7,8,0,6,4,0,10,8,0,4,128,64,0,4,12,0,3,242,254 +,128,0,0,2,0,0,6,192,0,6,128,1,0,4,152,16,0,0,8,0,0,140,128,40,48,17, +0,6,8,0,6,4,0,10,4,16,0,3,96,8,24,33,3,0,1,12,0,3,120,252,32,0,0,50, +192,6,0,1,24,9,0,2,41,2,0,0,48,66,22,8,0,0,26,1,0,0,104,0,0,9,0,1,4, +64,0,18,38,20,34,0,4,1,0,2,128,16,16,8,2,0,0,3,1,0,1,32,0,0,48,0,0,40 +,253,0,1,48,0,0,6,0,6,4,0,6,16,16,0,0,96,0,1,8,0,0,48,0,7,16,0,24,194 +,32,0,8,32,168,249,96,1,60,0,1,4,0,0,30,0,6,60,160,7,0,1,24,0,1,120,0 +,0,8,0,1,48,0,7,2,0,6,9,0,1,128,7,0,6,11,0,3,2,129,32,24,200,3,0,4,60 +,0,0,184,248,164,0,0,52,0,3,130,2,0,2,140,8,0,0,132,128,160,0,1,152, +32,0,0,104,0,0,128,4,0,0,48,4,0,6,16,0,6,10,0,1,128,0,0,4,36,0,4,5,0, +3,34,64,4,24,64,80,0,4,132,16,146,251,76,145,48,0,0,22,1,0,5,4,4,0,5, +152,0,2,32,44,0,1,48,2,0,20,8,0,4,70,8,0,2,70,194,66,64,0,5,16,2,0,0, +40,251,0,0,1,56,128,1,0,1,28,0,3,11,0,1,56,0,0,7,0,1,30,4,0,0,16,0,0, +15,4,0,0,44,32,0,17,128,7,48,128,0,4,8,0,2,128,7,240,0,0,30,144,3,0,2 +,96,0,0,56,0,0,248,254,8,129,48,0,0,6,0,6,12,0,6,24,0,4,4,0,0,48,0,0, +1,0,5,128,0,11,64,32,0,4,8,4,0,2,4,192,64,0,5,128,1,0,1,89,248,128,16 +,52,0,0,16,4,0,0,24,0,3,32,2,0,0,48,0,0,6,0,1,152,8,0,2,132,0,1,176, +136,4,0,5,64,2,0,9,6,192,0,5,132,0,3,20,193,8,24,32,3,0,2,128,1,49,0, +0,176,254,32,0,0,2,0,0,70,8,0,9,128,6,0,1,10,8,0,0,104,0,0,1,0,1,148, +0,21,8,1,0,3,1,128,5,2,0,1,80,136,2,0,0,3,1,0,1,128,73,48,0,0,96,252, +0,11,12,8,0,2,6,0,1,24,0,1,96,0,4,32,1,0,5,128,0,11,192,0,11,192,0,9, +32,232,249,96,1,0,0,128,7,4,0,5,2,0,2,128,7,0,1,8,0,1,120,0,0,12,0,1, +24,32,2,0,6,1,0,10,32,0,5,11,224,1,0,4,24,192,3,0,2,224,1,60,0,0,96, +252,168,0,1,128,64,0,6,77,1,0,1,128,6,0,1,24,16,0,0,104,0,0,76,16,0,0 +,4,2,1,0,5,128,0,11,208,64,0,4,5,32,0,0,1,0,1,64,136,152,80,0,0,2,0,1 +,32,132,4,64,146,250,64,145,0,9,77,4,0,2,6,0,1,88,32,0,1,4,128,0,1,4, +0,0,2,0,6,1,0,10,208,2,0,4,70,8,0,3,192,2,65,0,8,176,254,0,0,1,0,1,7, +0,6,2,0,2,128,7,0,1,22,0,1,16,32,15,4,0,0,40,32,2,0,6,1,0,10,32,64,0, +4,8,192,1,0,2,240,0,0,30,144,3,0,2,192,1,56,0,0,96,252,4,1,0,9,13,0,3 +,6,0,6,12,0,10,18,0,6,2,0,3,192,0,5,8,0,4,192,0,1,8,0,7,1,255,128,40, +0,1,6,0,6,1,0,2,128,6,0,1,132,32,0,2,140,2,0,0,36,0,0,4,0,5,16,2,0,5, +1,0,10,68,129,1,0,2,224,130,88,0,0,3,0,2,128,1,48,0,0,24,255,32,0,0,2 +,0,0,64,8,0,0,24,64,0,3,128,145,0,2,144,2,3,0,1,72,18,12,4,0,0,4,128, +0,6,66,0,6,164,133,4,0,1,208,64,88,32,0,2,1,128,5,2,0,1,208,0,1,64,11 +,0,1,13,128,73,48,0,0,224,249,0,3,6,0,2,16,0,2,12,8,0,3,192,0,1,8,0,0 +,96,0,4,16,3,0,5,128,1,0,5,138,1,0,2,64,0,11,192,64,0,1,131,0,5,32, +152,250,96,1,0,1,1,0,1,30,0,0,3,1,0,0,14,228,1,0,2,128,0,3,64,0,0,15, +0,1,60,0,7,16,0,6,128,0,0,48,0,1,192,32,30,0,3,11,224,1,0,2,192,0,2,3 +,0,2,224,1,60,0,0,240,253,168,0,1,128,38,2,0,0,2,16,19,0,1,45,32,0,0, +1,0,1,192,128,24,9,0,0,96,64,33,8,0,0,32,34,0,14,128,133,48,34,0,0, +192,4,130,2,0,2,5,32,40,0,2,192,40,0,1,163,0,2,40,8,6,5,74,254,64,145 +,0,0,128,22,0,3,32,4,0,0,141,16,0,3,192,0,1,9,0,0,96,66,0,2,132,8,0,6 +,6,0,6,136,5,130,0,1,128,2,1,0,3,70,8,0,3,64,2,1,0,0,10,0,2,8,0,2,240 +,255,0,0,1,0,1,1,2,0,0,28,192,3,0,1,2,192,1,0,2,112,64,6,0,1,56,0,0, +15,0,1,8,0,15,224,0,0,60,32,0,0,240,0,0,28,0,3,8,192,1,0,2,176,0,1, +192,1,1,0,0,15,192,1,56,0,0,184,254,4,1,1,0,0,6,0,6,13,8,0,5,16,16,0, +5,16,0,15,128,1,1,0,8,8,8,0,7,3,1,0,0,12,0,3,129,254,128,0,5,24,0,0,3 +,2,0,0,45,128,1,0,2,32,4,65,0,1,16,130,12,0,1,52,66,0,14,64,0,0,48,5, +0,0,192,34,24,0,3,4,128,1,0,2,192,66,0,0,128,8,0,1,140,136,1,48,0,0, +160,251,32,1,50,192,64,193,66,152,0,0,11,96,36,12,0,1,48,66,0,0,16,2, +26,0,0,11,9,1,45,32,144,4,1,0,14,160,133,48,194,6,192,8,25,97,0,2,9,0 +,1,48,66,6,192,128,0,0,64,138,96,0,1,128,73,48,0,0,96,250,128,0,0,48, +0,4,16,0,0,2,0,1,8,0,4,64,24,0,2,32,0,0,130,1,0,0,32,0,6,12,0,6,134,1 +,0,9,4,0,4,4,0,2,1,0,0,32,0,3,32,128,249,96,1,60,0,1,241,0,0,30,192,3 +,120,0,0,15,0,1,60,0,3,24,192,3,96,0,1,2,1,48,0,15,128,1,60,32,0,0, +240,0,0,30,0,3,11,0,1,60,0,0,7,244,0,2,128,120,0,1,224,1,61,0,0,96, +255,168,0,0,52,0,0,64,16,128,2,80,8,9,10,1,8,0,0,4,5,0,0,192,72,152, +66,80,0,0,8,0,0,128,8,33,17,4,0,5,16,2,0,5,8,133,4,0,0,32,24,16,2,16, +19,1,0,0,5,0,1,132,144,16,16,20,0,1,35,8,64,0,0,32,0,0,4,32,42,254,64 +,145,48,0,1,2,0,12,4,129,8,0,1,8,4,8,33,0,0,1,2,0,5,16,1,0,5,8,1,2,0, +0,16,0,3,19,0,1,70,8,0,1,128,64,4,0,2,11,0,6,136,248,0,0,1,56,128,1, +224,0,0,28,128,3,112,0,0,14,0,1,56,0,1,48,0,0,6,128,3,24,0,0,11,224,0 +,0,12,16,7,0,5,144,3,0,5,232,1,56,128,1,228,0,0,28,192,0,0,1,0,0,8,0, +1,56,0,0,7,224,0,1,192,3,113,0,1,192,1,56,0,0,240,254,4,1,48,0,0,2,16 +,0,0,2,64,0,0,8,0,0,1,0,4,128,64,24,68,0,1,64,0,1,1,0,0,128,5,0,5,208 +,2,0,5,8,0,7,3,2,0,0,4,0,8,3,1,0,5,137,250,0,0,1,49,0,0,22,193,0,0,24 +,64,3,104,0,0,13,0,1,48,0,2,2,0,0,1,3,32,1,0,0,132,16,2,66,4,0,5,8,2, +0,5,132,33,48,0,0,64,194,0,0,24,0,0,32,0,1,8,8,0,0,48,0,0,6,192,0,2, +11,96,0,1,128,1,48,0,0,184,248,0,5,68,128,8,32,1,12,128,8,136,0,1,32, +2,0,2,16,1,68,0,4,4,0,6,2,0,35,176,251,32,0,0,4,128,0,0,16,0,0,2,0,4, +32,0,0,4,0,1,16,0,0,2,64,0,2,1,32,0,9,2,0,6,33,0,0,4,128,0,0,16,0,0,2 +,64,0,0,8,0,0,1,32,0,0,4,128,0,0,16,0,0,2,64,0,0,8,0,0,1,32,0,0,4,0,0 +,152,253,0,17,2,0,9,32,0,44,184,255,40,0,0,4,146,0,0,16,0,0,2,0,0,32, +1,36,129,36,0,0,4,128,32,16,0,0,2,64,0,0,8,36,1,32,0,0,4,2,0,14,32,0, +0,4,128,0,0,16,0,0,2,64,0,0,8,0,0,1,32,0,0,4,128,0,0,16,0,0,2,64,0,0, +8,0,0,1,32,0,0,4,0,0,153,249,0,0,48,128,64,64,2,72,0,0,3,8,4,129,128, +2,48,0,0,18,0,4,32,1,2,0,3,18,0,17,6,0,1,72,0,0,3,0,1,12,128,1,48,0,0 +,6,32,2,24,0,1,96,0,0,12,0,1,48,0,0,6,227,253,0,7,64,0,8,17,0,4,16,0, +0,32,0,17,32,0,6,64,0,10,2,0,4,4,0,2,200,252,4,0,1,32,0,8,4,0,6,16,0, +1,32,0,49,234,253,0,0,144,128,0,0,64,2,72,0,0,9,16,1,33,33,0,0,132,0, +0,18,16,18,0,0,130,0,0,32,9,1,129,48,0,1,18,0,14,32,0,1,146,64,2,72,0 +,0,73,0,1,36,0,0,4,144,0,0,146,64,2,72,2,0,0,32,1,36,129,4,144,0,0,18 +,208,250,0,3,4,128,0,0,16,0,0,2,64,0,0,8,0,1,32,0,3,1,0,0,2,64,0,3,32 +,0,17,32,0,0,4,128,0,0,16,0,0,2,64,0,2,1,32,0,0,4,128,0,2,2,64,0,0,8, +0,0,1,32,0,0,200,252,0,13,1,0,1,4,0,4,8,0,0,8,0,1,2,0,17,4,0,26,128, +253,0,6,1,0,5,1,0,0,64,4,136,0,0,16,0,2,8,8,128,0,23,1,1,0,21,24,251, +0,8,132,0,12,128,0,1,1,0,36,1,0,9,192,250,32,0,5,2,0,1,8,0,1,96,0,2,1 +,0,9,8,0,14,16,0,1,4,0,3,2,32,0,0,8,0,0,1,32,0,0,6,0,1,16,0,1,64,0,0, +8,0,1,32,0,0,4,0,0,128,249,0,3,1,32,0,1,128,0,5,8,0,3,2,128,0,3,16,0, +0,8,0,2,16,0,2,16,0,2,8,0,8,32,0,23,168,254,0,4,4,0,0,16,4,0,1,16,0,0 +,8,0,1,8,132,64,0,0,2,0,0,2,0,1,4,4,0,17,32,32,0,5,64,0,3,4,0,0,4,0,3 +,2,0,9,255,32,0,1,8,0,6,64,0,13,64,0,19,4,0,26,240,255,32,0,1,32,20,2 +,24,4,8,0,1,96,40,4,0,0,160,16,1,34,0,0,4,128,10,64,1,66,37,40,0,16, +64,168,4,0,0,180,0,2,128,0,0,64,1,104,5,0,0,8,0,3,4,0,8,184,248,192, +65,80,134,18,80,0,0,128,4,0,2,130,21,0,0,128,33,0,0,144,1,2,41,0,0,96 +,0,0,68,194,74,0,0,10,0,15,64,0,1,48,0,0,16,0,1,130,136,0,1,8,0,2,128 +,0,0,136,16,0,2,64,1,0,1,33,8,56,252,2,65,16,0,0,1,64,0,1,8,0,13,32,0 +,0,1,40,0,0,1,8,0,16,1,0,6,2,0,17,8,249,255,136,0,1,8,0,8,1,0,3,64,0, +3,8,0,26,128,0,1,2,0,7,1,0,0,8,0,6,4,0,0,232,249,0,64,8,0,8,24,255,0, +24,32,0,24,32,0,22,152,253,0,0,1,1,0,0,1,0,2,4,0,2,4,0,7,4,0,0,160,0, +21,32,0,23,2,0,2,64,255,0,3,8,0,17,32,0,2,128,0,35,2,0,0,8,0,7,152, +255,0,2,4,0,10,1,0,2,128,8,16,0,1,64,0,0,8,0,1,32,0,19,36,0,23,208, +250,0,53,4,0,14,16,0,3,200,250,0,74,152,255,0,2,4,0,69,128,80,251,0,2 +,32,0,0,72,0,3,2,64,0,0,2,0,4,64,0,0,8,1,16,48,0,40,32,0,7,96,251,8,0 +,3,1,0,18,2,2,0,0,128,0,25,128,0,8,4,0,1,128,0,5,104,253,0,50,64,0,22 +,216,255,0,29,1,0,1,4,0,2,128,0,2,2,0,32,224,250,0,30,16,0,2,16,0,2,8 +,0,2,8,0,6,2,0,22,40,253,0,17,128,0,3,64,0,3,32,0,34,32,0,9,24,251,0, +3,2,0,4,1,0,33,128,0,16,64,0,2,1,0,4,16,0,0,72,252,0,3,16,0,14,32,0,3 +,16,0,2,16,0,23,64,0,2,1,0,15,216,253,0,7,128,0,3,1,0,47,128,0,11,152 +,254,96,0,3,80,0,0,8,0,1,8,0,0,32,128,0,1,128,2,0,3,1,0,0,1,0,18,1,0, +6,2,0,1,8,0,0,1,0,2,128,2,0,2,64,0,3,32,0,0,4,0,0,8,255,0,0,160,0,3, +64,0,0,8,0,3,4,160,0,0,4,0,5,1,0,11,34,0,4,4,0,6,2,0,1,8,0,3,5,128,0, +3,16,1,0,1,1,32,0,2,1,16,176,253,128,36,0,0,8,128,0,1,2,0,1,2,0,0,4,0 +,1,4,0,2,32,0,0,64,0,1,32,0,7,2,0,1,64,0,9,128,8,0,0,1,16,0,4,38,32,0 +,0,32,0,0,16,48,64,0,0,4,9,8,0,2,4,0,1,160,249,0,25,2,0,1,8,0,26,16,0 +,16,40,255,0,11,24,0,6,8,0,3,4,0,1,16,4,0,14,128,1,0,0,32,0,1,128,0,0 +,16,0,6,32,1,192,0,2,2,0,4,16,0,0,144,251,0,2,128,0,15,64,0,6,1,0,2, +16,0,2,16,0,2,8,0,2,8,0,4,16,0,20,128,0,1,128,250,0,0,1,0,25,64,0,5, +64,0,6,40,0,12,8,0,14,32,0,0,88,254,128,0,0,16,8,1,128,0,1,2,64,0,1,4 +,0,1,4,0,8,1,0,0,128,0,12,8,0,18,4,1,128,0,9,16,104,251,0,0,64,0,4,8, +0,12,128,0,2,2,0,0,1,0,18,16,0,1,64,0,14,4,0,4,128,0,2,249,64,5,169, +16,21,160,22,130,10,0,0,1,0,0,66,1,40,8,0,1,128,2,0,0,64,0,0,64,1,3, +32,168,16,0,3,2,16,16,0,4,9,8,8,0,2,4,0,0,160,16,20,80,0,2,16,40,0,0, +5,0,0,21,161,32,0,1,16,10,64,1,4,128,0,0,161,16,160,251,128,34,144, +136,8,17,55,90,64,32,42,0,0,1,150,40,36,34,4,149,1,26,80,0,0,64,176,9 +,40,9,4,32,0,2,8,4,64,32,0,3,4,0,0,96,16,192,66,32,136,72,75,2,12,0,0 +,1,136,10,8,9,1,4,129,64,4,0,1,2,66,0,0,1,32,1,0,0,129,0,0,152,248, +128,0,0,4,32,0,0,4,64,4,0,1,16,0,1,72,0,3,1,0,0,16,0,2,64,0,7,8,4,64, +32,0,3,4,0,0,32,16,32,0,0,1,32,128,32,0,0,16,0,0,1,0,19,160,255,0,0, +64,0,3,128,8,0,6,9,0,0,1,32,0,0,4,0,1,16,0,0,4,64,0,15,16,0,2,4,0,7, +64,1,65,0,6,4,2,2,0,1,8,0,2,88,252,0,20,32,0,2,32,0,20,2,0,21,32,0,3, +152,255,0,1,1,0,0,4,0,3,2,0,1,1,8,0,5,1,0,2,72,0,15,8,0,3,4,0,2,128,0 +,6,8,0,6,32,0,4,1,0,0,32,216,255,16,0,1,64,0,5,4,128,0,5,64,0,0,4,0,1 +,8,0,3,4,0,34,2,0,9,132,249,0,4,4,0,0,4,0,1,16,0,1,64,0,1,32,0,5,2,0, +1,4,0,21,128,0,11,4,0,7,1,0,1,16,144,253,0,24,18,0,3,4,0,1,16,0,3,2,0 +,1,8,0,32,120,248,0,30,64,0,0,64,0,4,32,0,3,8,0,29,56,251,0,31,1,0,2, +1,0,1,128,0,2,128,0,21,128,0,7,144,254,0,12,4,0,6,8,0,3,8,0,35,2,0,8, +1,0,0,48,248,0,2,8,0,16,2,0,25,8,0,21,4,0,2,248,253,0,7,8,0,0,64,32,0 +,10,1,0,1,96,0,1,72,0,44,200,251,0,1,32,0,8,2,0,15,16,0,14,32,128,1,0 +,15,32,0,9,160,252,0,18,1,4,0,44,16,0,7,200,254,0,3,2,0,6,4,0,1,128,8 +,16,17,0,1,4,128,8,0,1,2,0,0,17,0,17,128,32,0,0,65,2,8,0,1,10,1,33,0, +0,64,0,2,16,0,0,128,64,8,0,0,16,0,0,32,0,2,208,254,0,16,4,0,6,8,0,0,1 +,32,0,17,160,0,0,4,128,0,0,16,0,0,2,0,1,32,0,6,4,0,0,8,0,6,184,249,0, +14,64,0,0,8,0,0,1,32,0,0,4,128,0,0,16,0,0,2,0,38,8,0,6,104,251,0,46, +128,0,8,16,0,17,255,0,0,21,160,2,184,128,10,80,1,42,64,5,176,0,0,45, +128,2,80,0,0,10,64,1,40,0,0,5,160,0,0,20,192,2,0,15,22,128,2,88,0,0, +11,224,2,44,128,5,160,0,0,22,160,2,88,0,0,11,208,1,40,128,11,176,0,0, +22,160,2,112,248,192,9,52,1,146,211,4,154,64,19,104,2,100,160,225,148 +,129,50,80,6,202,128,25,40,3,102,160,12,144,1,0,14,128,12,152,1,50,64 +,6,72,22,25,32,3,102,128,12,56,1,50,64,6,154,68,25,32,89,100,128,12, +52,1,16,250,255,255,0};static const unsigned char l655[]={79,231,255, +255,98,255,57,0,0,213,255,255,255,255,255,255,255,255,255,255,255,255 +,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,160,9,52,1,38,64,6,154,0,0,19,0,0,25,96,6 +,76,128,140,134,85,6,200,0,0,25,96,2,100,128,97,144,1,0,15,12,48,1,50 +,0,0,178,74,70,19,104,2,76,128,9,48,9,50,224,4,192,0,0,152,96,2,100, +128,12,56,1,72,248,0,0,21,160,2,84,0,0,11,80,1,42,128,10,80,0,0,26,64 +,5,180,0,0,10,96,1,44,64,5,176,0,0,45,192,2,0,15,18,160,2,88,0,0,21, +192,2,42,64,5,168,0,0,21,160,3,88,128,10,32,1,52,64,5,176,0,0,22,160, +2,40,255,0,11,64,0,5,2,0,31,64,0,21,152,249,0,74,152,255,0,4,128,0,5, +64,1,0,3,160,2,16,128,2,0,1,8,0,1,40,0,19,4,0,1,80,0,7,4,4,0,4,2,0,5, +96,248,0,5,18,0,5,8,0,5,64,2,0,2,8,0,12,64,0,8,128,0,1,68,0,6,16,1,20 +,0,6,160,0,3,248,249,0,0,4,1,0,0,16,4,0,0,66,32,0,2,128,0,0,16,53,0,2 +,128,0,5,160,5,20,16,0,14,32,48,180,64,0,0,16,4,2,0,3,133,161,0,3,208 +,8,0,0,64,3,0,1,1,32,0,2,128,248,0,12,4,0,0,48,0,9,128,129,16,0,21,64 +,0,4,8,0,0,1,0,2,192,64,0,1,3,0,6,120,252,224,65,0,0,128,1,0,1,24,0,3 +,3,96,0,0,48,0,1,240,32,0,5,128,1,44,0,17,16,32,0,0,64,0,5,4,96,1,0,2 +,192,128,0,1,3,0,1,3,96,0,2,120,251,160,1,0,0,128,0,2,144,2,0,2,1,32, +0,0,48,0,1,208,0,6,128,4,21,0,16,80,128,0,1,128,64,0,4,12,164,0,3,192 +,8,0,1,3,0,1,1,32,0,2,176,251,0,6,128,4,0,2,12,129,17,0,0,32,0,1,2,1, +0,5,9,40,33,0,15,136,48,0,2,132,0,0,5,0,2,36,208,0,3,192,4,0,1,16,0,1 +,140,128,81,0,1,160,252,224,129,0,0,128,1,2,0,0,6,0,3,15,224,65,12,0, +1,240,0,6,224,64,32,0,15,96,0,0,60,16,0,0,240,0,0,6,0,3,15,0,0,1,1,0, +1,240,64,0,0,192,0,0,2,0,0,14,194,1,0,1,160,255,0,0,128,0,1,6,0,6,12, +128,1,48,0,10,1,33,32,0,14,128,64,48,8,0,0,64,128,24,16,0,2,12,0,0,1, +0,2,192,0,2,3,1,0,0,12,128,1,0,1,136,252,128,9,0,1,70,1,0,0,128,8,0,2 +,12,128,1,48,33,0,0,192,32,0,5,128,8,16,0,15,128,1,160,0,1,192,2,152, +0,3,44,136,72,0,2,64,128,0,1,11,0,1,12,128,1,0,1,240,250,0,0,4,1,0,0, +16,4,0,0,2,0,3,128,0,0,16,5,137,6,0,0,136,0,7,4,16,0,6,34,0,6,17,0,0, +4,128,0,0,16,0,0,10,64,0,0,104,0,1,32,0,0,132,192,0,2,2,64,1,8,1,1,32 +,0,0,4,0,0,244,249,0,12,4,0,2,6,0,18,12,0,6,6,0,4,128,16,0,1,96,0,10, +2,32,32,0,4,192,254,224,65,0,0,128,7,1,0,5,3,96,0,1,8,6,48,0,8,44,0,7 +,12,0,6,6,0,1,8,6,128,64,22,4,0,0,96,0,1,96,1,48,160,1,0,1,6,192,2,0, +0,32,3,96,0,0,48,0,0,88,251,168,9,0,0,128,70,0,1,64,32,0,2,1,32,0,1,1 +,6,16,0,8,20,0,7,10,0,6,5,0,0,128,0,0,70,2,8,138,0,1,96,0,1,160,0,0, +128,128,0,2,2,64,1,0,0,2,1,32,0,0,48,33,67,252,0,6,64,0,3,12,128,5,0, +0,10,16,192,132,0,7,40,33,0,6,10,0,6,5,0,1,10,16,192,4,13,16,0,0,96, +65,0,0,192,0,0,32,64,70,1,0,0,24,133,33,0,0,4,12,130,1,128,0,0,161, +248,224,129,0,0,128,7,2,0,0,30,8,0,2,15,226,65,12,128,1,244,0,8,32,0, +17,12,128,7,242,0,0,18,192,0,0,120,0,2,1,13,128,7,0,1,30,0,0,2,25,64, +14,192,65,60,16,104,249,4,0,5,24,0,3,12,128,1,0,0,8,0,0,192,0,8,32,0, +18,8,0,0,192,0,0,20,0,2,64,0,1,1,32,0,0,6,0,1,24,0,0,2,0,1,12,128,1,0 +,1,57,254,128,73,0,1,38,1,0,0,152,2,0,2,12,128,1,160,0,1,192,0,8,144, +64,0,16,48,1,6,68,68,8,4,0,1,4,0,0,128,64,48,132,6,0,1,24,0,0,129,16, +130,12,128,1,48,4,184,255,0,0,4,53,0,0,16,4,0,0,2,0,0,32,8,8,128,0,0, +16,5,0,0,64,0,0,136,2,0,4,160,1,4,16,0,16,52,2,0,0,208,128,2,0,3,1,32 +,0,0,132,64,0,0,80,2,1,64,0,0,8,32,13,160,1,4,0,0,48,248,0,1,48,0,6,1 +,0,1,4,0,3,1,0,6,128,1,0,18,48,16,0,0,192,0,8,48,0,1,128,0,3,32,0,0, +12,128,1,0,1,40,249,224,65,0,0,128,7,1,0,1,196,0,0,32,0,0,3,96,0,1, +136,1,48,0,6,128,1,44,0,17,16,16,0,1,32,22,4,0,3,96,1,0,0,32,0,0,64,0 +,1,192,2,0,1,3,96,0,0,48,16,0,0,254,164,5,0,0,128,22,0,1,64,64,0,1,8, +1,32,0,1,129,0,0,16,0,0,88,8,0,3,128,1,20,0,17,176,0,1,64,0,0,138,0,4 +,160,0,0,128,0,1,128,0,1,64,1,0,0,130,1,32,0,0,48,0,0,210,252,12,0,1, +32,0,3,4,35,2,20,140,128,5,128,8,38,196,8,64,0,5,32,40,33,0,16,48,0,1 +,192,0,0,13,16,0,2,128,196,0,0,48,1,0,0,64,0,1,128,33,0,0,66,0,0,1,0, +0,128,0,0,232,254,224,129,12,128,7,2,0,0,6,192,3,24,0,0,15,226,129,12 +,128,7,240,32,30,16,0,3,96,0,0,32,0,7,4,0,8,60,16,0,0,240,0,0,18,0,3, +3,0,0,1,29,16,0,0,176,0,2,2,25,0,0,2,64,0,0,61,16,32,255,8,0,6,4,3,0, +0,32,12,128,1,0,0,8,6,192,0,0,24,0,6,32,16,0,6,16,0,6,8,0,0,48,0,1, +128,0,0,20,0,3,12,0,0,1,0,2,64,0,2,2,0,1,12,128,1,0,1,161,253,128,65, +0,0,33,6,1,0,0,24,0,0,3,0,0,4,12,128,1,48,0,0,6,192,0,0,24,33,0,5,16, +0,7,4,0,6,2,0,0,48,66,0,0,224,0,0,73,4,0,2,76,136,68,144,32,0,0,128,0 +,2,137,0,0,64,76,130,65,48,16,136,254,128,17,0,0,2,64,0,1,26,0,0,32, +104,2,128,0,1,5,128,6,0,0,136,2,0,0,11,0,1,73,48,0,0,4,16,0,6,8,0,6, +164,1,180,64,0,0,208,136,18,16,0,3,32,0,0,132,160,0,3,64,0,2,1,32,0,0 +,4,0,0,56,251,0,0,128,0,0,16,0,0,2,0,0,24,0,1,97,64,0,0,4,0,0,48,0,0, +6,0,4,2,0,0,4,0,10,10,0,6,133,1,48,0,1,192,0,0,8,0,21,112,252,224,1, +12,128,1,0,1,24,192,0,0,32,32,3,224,65,0,0,8,0,0,48,0,0,24,192,3,2,0, +0,8,0,1,44,0,16,128,0,0,32,0,1,32,22,0,4,96,1,0,0,32,0,3,192,2,0,1,3, +96,0,0,48,0,1,248,40,8,5,128,0,2,24,64,0,0,96,1,1,160,17,0,0,1,0,0,16 +,0,0,24,64,0,2,4,0,1,20,0,7,4,0,6,2,4,176,0,1,64,2,10,0,4,160,0,0,32, +1,6,2,0,1,64,1,0,1,1,32,0,0,48,17,243,248,0,1,48,10,38,1,0,1,8,131,32 +,2,44,0,0,4,130,8,16,192,2,64,4,0,2,8,0,0,4,41,33,0,6,16,0,6,136,17, +16,8,0,0,192,64,20,4,0,3,192,0,1,4,32,1,0,1,128,33,0,1,44,128,5,128,0 +,0,201,248,224,1,60,128,7,0,1,6,192,3,120,32,15,226,1,12,128,1,244,32 +,6,128,3,0,1,7,96,0,0,32,0,7,32,0,6,98,128,60,0,1,240,0,0,18,0,5,1,29 +,128,7,0,3,2,1,0,0,14,194,65,60,16,176,250,4,0,0,48,0,0,6,0,3,3,32,0, +0,12,0,2,8,0,0,194,0,1,4,0,2,8,128,1,32,16,0,6,2,0,6,136,1,16,0,1,128 +,0,0,16,0,5,1,16,0,0,6,0,3,2,0,1,12,128,1,0,0,32,233,248,128,1,48,0,0 +,6,0,3,3,80,66,12,128,65,48,0,0,32,192,0,1,64,3,0,1,4,128,145,16,2,0, +15,16,2,32,0,0,224,16,16,0,4,128,80,16,64,38,8,0,2,161,0,1,12,128,1, +48,2,0,0,252,0,0,4,1,0,0,64,208,0,0,66,0,0,32,72,2,128,0,1,21,0,2,136 +,26,64,0,0,104,0,0,13,32,0,0,4,16,0,6,6,0,6,35,8,180,32,0,0,16,8,26,2 +,0,0,104,4,13,32,1,4,128,0,3,64,0,2,1,32,0,2,104,250,0,4,194,0,0,16,4 +,0,0,33,64,0,0,4,0,0,32,0,3,24,0,3,12,0,10,2,0,6,1,0,0,49,0,1,64,64, +24,0,1,96,32,12,128,0,0,1,0,13,128,248,224,1,0,0,128,1,192,0,0,6,200, +0,0,96,0,0,3,224,65,44,0,1,48,0,0,24,0,0,3,98,0,2,64,44,0,7,8,0,6,4,0 +,0,48,16,0,2,24,0,1,96,0,0,12,96,1,0,5,192,2,0,1,3,96,0,2,152,253,164 +,81,0,0,128,0,0,192,0,0,146,64,0,0,96,32,1,160,5,20,4,0,0,16,0,0,24,0 +,0,19,0,0,32,0,2,20,0,0,1,0,5,128,0,6,128,132,16,2,0,0,192,72,24,8,0, +0,96,65,12,160,0,2,22,2,0,1,64,1,0,1,1,32,0,2,185,250,4,0,2,22,193, +130,136,4,11,96,4,76,0,0,4,26,0,1,192,4,88,0,0,96,96,65,12,8,68,40,33 +,2,0,5,10,1,0,5,5,128,48,10,0,0,128,2,24,16,0,2,44,64,1,0,0,1,16,0,2, +128,33,0,1,76,128,9,0,1,147,254,224,129,0,0,128,7,240,0,0,4,192,131, +56,64,15,226,1,32,8,0,0,240,32,30,200,3,120,0,0,15,96,0,0,32,0,0,2,0, +6,1,0,5,96,0,0,44,0,1,112,128,30,0,1,56,64,15,4,1,12,136,7,4,0,2,2,1, +0,0,14,194,65,0,1,64,248,4,0,2,6,0,0,128,26,16,3,96,0,0,12,0,1,40,8,0 +,0,192,0,1,16,3,2,0,0,12,128,65,32,0,15,128,1,32,32,0,0,192,0,1,4,0,0 +,32,0,1,8,1,48,0,0,6,2,0,2,130,0,1,12,128,1,0,1,98,248,128,69,0,1,6,0 +,0,8,24,0,0,3,32,130,12,128,73,16,2,0,0,192,0,1,1,35,96,10,76,1,8,16, +161,2,0,5,64,1,0,6,128,32,2,0,0,192,32,8,0,1,96,129,128,0,0,1,176,64, +22,0,3,33,0,1,12,128,1,0,1,128,250,0,0,16,0,0,2,64,80,0,0,10,0,0,32,8 +,0,0,128,0,1,5,128,6,0,0,128,10,64,0,0,104,4,1,128,4,4,16,0,14,32,0,0 +,21,128,0,0,208,0,1,64,0,5,36,160,6,0,2,64,34,0,1,13,32,0,2,40,249,0, +0,128,0,0,16,0,0,130,0,0,16,0,1,1,0,1,4,0,5,16,0,1,97,32,0,1,65,0,1,1 +,0,5,128,0,8,32,0,1,192,0,10,6,0,3,1,1,0,5,184,251,96,0,0,12,128,1, +176,32,22,192,0,0,120,0,0,3,224,1,44,0,0,6,240,0,0,22,196,0,0,64,0,0, +12,100,1,44,0,0,4,0,6,2,0,7,44,0,0,6,194,0,2,3,0,4,48,0,4,192,2,0,1,3 +,96,0,2,152,252,40,0,0,4,128,0,0,80,8,10,64,0,0,104,0,0,1,160,9,21,4, +70,216,0,0,10,65,3,97,36,140,160,80,20,0,0,1,0,5,130,0,6,4,8,149,8,38 +,192,2,1,0,0,67,0,4,160,8,0,3,64,1,0,1,33,36,0,2,67,250,128,9,176,0,0 +,6,97,0,0,140,0,0,147,96,1,76,2,4,26,0,0,16,192,2,13,0,0,9,98,64,0,0, +192,0,0,40,33,4,0,5,32,2,0,6,72,24,0,0,16,192,0,2,8,0,4,48,9,64,1,0,1 +,128,2,0,1,12,129,73,0,1,9,252,224,65,60,144,7,144,0,0,16,196,3,112, +64,15,224,1,32,136,7,242,0,0,18,192,2,120,0,0,15,4,1,32,0,15,224,0,0, +36,160,7,50,64,0,0,192,3,1,0,3,60,128,1,0,3,2,0,1,15,192,1,0,1,72,253 +,132,1,48,0,0,6,160,0,0,16,4,3,96,16,12,0,0,64,40,8,0,0,196,32,20,0,0 +,131,96,0,0,12,66,1,32,128,1,0,5,192,0,6,128,0,0,41,8,0,10,48,0,1,1,0 +,2,2,0,1,12,128,1,0,1,161,249,128,1,48,0,0,6,64,0,0,72,0,0,3,96,1,12, +128,9,144,0,0,38,192,8,8,0,0,10,96,130,12,128,0,0,16,160,0,6,64,0,6, +134,1,144,0,0,166,0,0,136,0,1,11,2,0,3,48,8,32,0,3,2,0,1,64,130,1,0,1 +,56,251,16,16,0,0,2,16,148,0,0,2,64,128,40,1,129,0,1,5,0,2,128,18,64, +19,12,0,0,77,16,4,4,16,2,0,5,18,1,0,5,160,145,4,0,1,208,0,0,2,0,1,8,0 +,1,160,1,165,128,68,17,0,0,2,64,128,0,1,13,32,1,0,2,252,0,0,128,0,0, +16,0,0,64,0,4,32,0,0,2,0,5,8,0,0,3,0,3,64,0,8,20,0,6,138,0,3,192,0,6, +128,1,0,0,16,2,0,0,128,0,4,12,128,0,0,1,0,0,80,255,96,0,0,12,128,7, +177,32,22,0,0,128,56,0,0,4,224,1,44,0,1,240,32,22,4,2,2,0,0,12,96,1, +44,128,2,0,5,64,1,0,5,128,1,44,0,1,192,0,3,96,0,1,128,65,48,128,3,48, +0,0,6,0,3,3,96,1,0,1,152,254,44,0,0,4,128,38,80,8,10,0,0,8,8,17,64, +162,81,20,4,0,0,208,4,10,1,17,96,68,44,176,80,20,0,7,8,0,6,129,133, +148,8,0,0,192,66,64,4,0,0,96,0,1,128,9,32,144,4,16,4,3,0,1,1,0,0,1, +160,0,2,41,253,132,65,176,8,0,0,96,0,0,140,0,0,8,0,0,68,64,8,4,26,0,2 +,2,13,0,0,3,4,16,36,192,0,0,40,33,0,14,16,5,26,0,1,192,0,1,1,0,0,96,1 +,0,0,128,73,128,8,4,0,0,72,152,0,0,136,0,3,1,0,1,155,255,224,1,60,128 +,7,146,0,0,16,196,128,80,0,0,3,224,1,32,8,0,0,240,0,0,18,192,0,0,24,0 +,0,15,8,1,32,0,15,224,1,36,32,0,0,48,64,6,4,0,0,120,32,0,0,224,1,12, +128,2,48,0,0,30,200,0,2,2,194,0,3,252,132,1,48,0,1,96,0,0,16,4,128, +104,16,0,2,40,8,0,2,12,0,0,2,96,16,12,64,1,32,0,17,40,8,0,1,64,0,2,96 +,32,0,1,1,16,32,2,0,1,24,0,0,128,0,1,12,2,1,0,1,18,252,128,1,48,0,0, +22,129,0,0,8,0,0,33,96,2,64,129,69,16,0,1,192,34,16,128,8,100,1,12, +132,0,0,16,5,0,14,128,129,16,0,3,24,5,0,0,96,1,0,0,128,81,32,2,4,128, +16,24,0,0,34,0,1,140,128,0,2,168,255,0,0,16,132,8,64,16,0,0,18,8,32,8 +,0,0,33,0,0,16,37,128,18,8,128,2,64,0,0,105,2,69,0,0,5,36,16,0,14,160 +,4,36,128,36,146,0,0,26,64,0,3,160,1,4,128,4,0,1,2,64,0,0,8,0,0,1,160 +,4,0,1,208,252,0,0,128,0,2,2,0,0,8,0,1,1,0,1,2,0,0,16,8,4,0,3,3,96,64 +,8,132,64,16,0,16,128,16,32,6,0,0,64,24,0,4,128,1,0,1,2,0,7,128,129,0 +,1,96,255,96,0,0,16,128,1,0,1,22,192,0,3,96,0,0,44,0,0,6,244,32,24,16 +,3,56,32,12,100,1,44,0,7,8,0,6,132,1,44,0,0,6,128,0,0,24,0,4,128,1,12 +,128,5,0,1,24,0,1,96,0,0,3,96,64,0,1,8,250,40,0,1,138,0,2,10,64,0,2, +128,34,0,0,20,4,38,208,2,64,0,0,3,74,4,140,160,80,20,0,0,4,0,5,16,2,0 +,5,136,41,20,0,0,6,66,128,24,0,0,3,1,0,1,128,69,4,128,2,0,1,24,16,128 +,96,0,0,1,160,0,2,98,255,128,69,128,0,0,22,2,34,12,0,0,139,0,1,64,130 +,1,40,0,0,66,2,2,25,32,18,96,16,68,192,0,0,40,33,2,0,5,16,1,0,5,136,0 +,0,170,0,0,6,64,16,24,16,8,4,0,1,128,17,48,17,3,0,1,64,0,0,16,0,1,140 +,2,1,0,1,200,252,224,1,12,144,7,48,0,0,8,192,3,24,32,11,224,65,32,128 +,7,240,0,0,6,192,0,0,121,0,0,15,8,1,32,0,0,7,0,5,144,3,0,5,104,1,36, +136,7,242,0,0,30,192,3,0,2,224,65,60,128,4,0,1,30,200,128,24,32,14,96 +,0,0,1,0,0,80,254,132,1,0,0,8,6,192,32,8,0,0,3,96,16,0,0,130,1,40,0,0 +,6,4,0,0,24,0,0,2,96,16,12,200,0,0,32,144,5,0,5,208,2,0,5,136,65,32,0 +,0,6,192,0,2,3,0,2,128,1,48,0,0,2,0,2,16,0,1,32,12,128,65,0,1,169,254 +,128,1,0,1,6,192,0,0,8,0,0,3,96,0,0,32,128,1,32,0,0,6,192,40,88,4,1, +68,1,140,0,0,1,160,0,0,4,0,5,8,2,0,5,132,5,32,0,0,22,200,36,0,0,2,19, +4,0,2,72,48,0,0,4,0,1,24,0,0,139,0,0,4,12,0,0,5,0,1,72,253,0,7,1,0,1, +2,0,17,4,0,6,2,0,35,140,255,32,0,0,4,128,0,0,16,0,0,2,68,0,0,8,64,1, +32,0,0,4,128,0,0,16,0,0,2,0,1,8,0,0,1,32,0,0,4,0,7,2,0,6,33,0,0,4,128 +,0,0,16,0,0,2,64,0,0,8,0,0,1,32,0,0,4,0,1,16,0,0,2,64,0,0,8,0,0,1,32, +0,0,4,0,0,128,248,0,22,1,0,50,136,255,36,0,0,4,128,0,0,16,0,1,64,0,2, +1,32,0,0,4,128,0,0,16,0,0,2,64,32,8,0,0,1,32,0,0,4,0,15,32,0,0,4,128, +0,0,16,0,0,2,64,0,0,8,0,0,1,32,0,0,4,128,16,20,0,0,2,64,0,0,8,0,0,1, +32,0,0,4,0,0,3,253,12,0,9,16,0,3,34,0,4,16,0,4,1,66,0,28,48,0,9,128,0 +,0,16,0,1,141,248,0,7,4,0,13,2,0,0,1,0,18,32,0,1,128,0,0,16,0,1,64,0, +0,8,0,0,1,0,2,128,0,4,128,8,0,1,8,0,0,5,0,0,192,255,8,0,25,128,0,0,32 +,0,30,8,0,12,152,253,32,132,132,160,16,18,66,64,80,8,2,128,33,40,4, +129,144,0,0,24,130,66,80,8,9,33,1,32,8,0,0,1,0,14,32,0,0,132,144,0,0, +16,0,0,66,80,0,0,8,0,0,1,32,4,133,128,16,20,34,2,32,8,9,0,0,128,4,136 +,4,0,0,248,248,0,21,4,128,64,0,4,8,0,2,8,0,2,4,0,15,4,128,0,0,16,0,2, +2,0,0,128,0,1,4,16,0,5,32,251,0,0,2,0,1,8,0,20,2,0,14,4,0,6,128,0,2, +128,0,19,120,249,0,17,8,0,6,16,0,0,128,0,19,4,0,15,8,0,1,64,0,4,208, +250,0,6,32,0,1,128,0,0,1,1,0,2,128,0,3,129,2,0,48,64,16,64,249,0,9,64 +,0,19,2,0,6,1,0,1,4,0,7,32,2,0,4,32,0,15,136,252,0,33,32,0,15,2,0,7, +16,0,13,204,251,130,0,4,128,0,0,64,0,5,16,0,1,17,128,0,24,64,64,0,2, +64,0,0,8,4,0,1,16,2,4,0,0,16,0,1,64,32,16,0,4,1,0,2,57,253,0,1,4,128, +0,0,4,64,2,16,0,0,2,0,1,8,0,0,1,0,10,64,16,0,18,4,0,7,4,0,1,4,0,0,2,0 +,3,129,0,2,130,0,2,80,251,64,0,0,4,128,0,0,4,192,2,144,0,0,2,12,0,0,8 +,0,0,9,0,1,34,64,0,7,5,5,0,14,64,128,160,32,0,0,32,0,0,4,8,0,1,32,3,6 +,0,0,172,133,20,32,64,4,99,90,2,0,1,44,0,2,232,253,0,0,5,48,0,0,4,0,1 +,16,2,1,8,0,1,2,32,16,12,38,139,40,16,0,0,65,224,0,1,2,3,16,36,0,14, +128,90,212,0,0,130,0,1,8,4,64,2,2,68,2,0,0,196,35,144,4,2,0,0,93,145, +0,1,64,0,0,116,32,0,0,72,249,0,1,16,0,5,1,0,2,8,0,0,16,8,2,1,32,0,1,1 +,32,0,1,1,0,0,8,0,15,128,64,16,0,0,4,0,1,8,4,0,2,2,4,0,6,4,1,2,0,2, +128,0,1,216,253,2,1,32,128,0,2,16,16,0,5,1,32,4,128,0,0,8,0,1,18,0,1, +128,0,1,8,0,19,1,0,2,128,0,7,1,0,7,64,16,0,0,177,253,0,22,4,0,1,64,0, +17,128,0,3,18,1,0,22,104,251,0,0,1,0,1,4,128,0,8,32,0,5,2,64,0,22,32, +128,0,17,2,0,6,176,252,0,10,64,0,34,1,0,1,8,80,0,12,1,0,8,72,251,0,13 +,128,0,1,16,0,27,128,0,2,16,32,0,8,4,0,12,56,251,0,21,128,64,0,7,32,0 +,2,32,0,2,16,0,2,16,0,5,128,0,10,16,0,6,4,128,0,1,240,249,0,28,32,8,0 +,1,32,0,3,4,0,1,16,0,32,240,252,0,46,16,0,14,128,0,2,128,0,6,16,254,0 +,0,128,0,42,64,0,4,64,0,11,16,0,6,128,0,2,254,0,1,64,0,5,4,0,1,16,0,8 +,64,0,0,8,0,1,32,0,19,4,8,0,9,36,36,0,12,40,253,0,8,8,0,11,4,32,0,4,4 +,0,21,1,0,2,32,2,0,0,128,4,0,1,32,0,3,64,0,5,24,248,0,10,16,0,1,4,0,3 +,2,0,29,128,0,0,64,0,21,16,248,0,6,16,0,18,1,0,17,1,0,2,32,0,3,64,0,3 +,32,0,13,248,248,0,51,1,0,21,152,254,0,30,16,0,2,16,0,2,8,0,2,8,0,0, +128,0,0,2,0,26,168,255,0,3,2,0,23,16,0,44,152,252,0,1,32,0,10,5,0,3,2 +,0,6,64,0,17,4,0,3,1,0,22,152,250,0,56,1,0,16,136,254,0,10,16,0,5,1,0 +,2,8,0,4,16,0,11,4,0,1,1,0,5,128,0,22,192,254,0,5,16,0,13,128,0,6,64, +0,11,16,0,12,8,0,15,64,0,0,216,255,8,0,1,8,0,3,4,128,0,0,64,0,0,2,64, +0,1,4,4,32,16,4,0,5,12,16,0,2,64,0,0,32,64,0,11,4,0,2,4,2,0,1,8,0,0, +64,0,1,4,1,0,0,16,0,6,32,0,0,168,249,0,7,32,0,7,16,0,3,10,0,1,16,0,1, +8,0,15,64,68,0,0,80,0,4,4,128,0,0,16,0,1,128,64,8,0,5,32,0,4,224,255, +0,9,72,0,13,4,0,20,16,0,12,32,0,7,8,0,0,1,8,0,0,96,253,0,20,18,0,5,16 +,0,25,2,0,6,4,1,16,0,8,248,250,0,6,2,0,32,2,0,4,64,64,10,0,1,2,0,2,16 +,0,0,2,0,8,160,0,2,2,0,0,4,152,250,0,0,64,0,1,2,0,3,1,0,1,4,0,1,16,0, +0,4,32,32,0,0,8,0,0,32,16,0,0,2,64,0,19,136,0,5,32,8,0,0,4,64,16,0,5, +128,0,1,1,0,1,16,0,0,128,254,0,1,4,0,1,64,0,1,64,0,2,1,0,0,128,8,0,6, +2,0,1,64,0,0,17,8,0,13,16,0,7,4,0,7,2,0,1,16,0,0,1,0,6,152,251,0,0, +128,4,0,0,1,16,0,1,192,0,2,3,0,1,13,0,0,1,96,64,0,0,12,1,18,32,0,0,36 +,128,165,37,0,2,4,0,0,32,192,0,3,2,0,0,16,112,0,2,16,1,0,1,128,18,0,0 +,80,33,0,0,6,168,168,128,0,2,82,64,80,1,0,0,2,0,1,8,0,0,56,251,128,98 +,0,0,14,10,193,144,0,0,4,135,32,72,132,3,1,128,10,4,192,6,148,18,66, +96,164,10,0,0,49,37,4,0,4,128,16,0,3,8,0,0,64,8,160,64,0,1,129,64,0,0 +,50,0,0,64,0,1,18,2,0,0,16,10,144,4,0,0,64,21,8,32,0,0,4,1,0,0,128,0, +0,184,254,128,32,0,0,8,2,34,0,1,16,2,66,0,0,4,2,0,1,8,0,0,16,0,3,32,0 +,20,32,0,0,1,0,1,64,0,6,8,0,0,16,8,0,3,4,0,0,32,0,0,2,0,3,200,252,0,0 +,128,0,0,4,0,0,16,32,0,1,1,0,0,16,0,0,72,0,2,1,32,0,0,4,132,128,16,0, +0,2,32,64,16,4,0,4,64,32,0,3,4,0,0,32,16,0,4,1,0,0,8,0,0,128,0,7,1,0, +6,2,0,2,232,252,0,20,64,0,10,16,0,1,1,0,3,8,0,0,128,0,30,80,254,0,21, +64,8,0,0,17,32,0,2,5,0,1,16,0,2,128,2,0,1,8,0,2,32,0,28,128,252,0,6,4 +,0,1,136,0,5,1,0,6,32,0,0,5,0,16,32,0,0,2,0,3,32,0,21,88,254,0,2,16,0 +,5,32,0,3,128,16,0,3,32,0,3,1,0,20,20,0,8,4,0,4,64,0,3,8,0,4,16,248,2 +,0,8,32,0,12,16,0,20,2,64,0,4,64,0,0,32,0,2,4,64,0,5,1,0,1,8,0,3,32, +254,0,60,8,0,2,64,16,0,8,251,0,22,2,0,6,64,0,1,32,64,0,2,32,0,2,32,0, +29,128,80,255,0,10,32,0,15,128,0,45,144,253,64,34,128,0,0,136,0,5,32, +0,2,132,0,7,1,8,0,23,32,2,0,22,204,252,0,17,8,16,0,2,4,0,1,16,0,22,64 +,16,0,17,1,0,3,208,250,0,14,2,0,3,1,0,1,1,0,1,2,0,21,1,0,13,64,0,7,4, +0,0,216,252,0,5,16,64,0,2,1,0,4,1,0,2,2,0,33,8,0,0,1,0,15,104,248,160 +,4,0,2,16,0,0,2,64,3,0,1,1,0,0,48,164,144,6,16,0,0,64,0,1,8,36,0,1,48 +,0,16,160,1,52,138,6,0,9,52,128,70,16,0,0,26,64,8,4,0,0,65,0,1,4,6,8, +254,0,0,129,0,6,3,0,6,6,0,0,128,0,0,4,0,0,96,0,20,128,1,32,0,0,6,0,9, +48,0,0,6,4,0,0,24,0,4,4,0,0,16,0,0,200,254,128,0,3,240,0,0,6,0,0,131, +0,2,96,0,0,48,128,7,192,0,0,6,0,1,64,16,0,0,96,0,17,96,0,0,48,16,6,1, +0,8,60,0,0,6,48,0,2,1,0,1,4,0,3,240,253,0,0,1,0,2,208,0,0,2,0,0,11,0, +2,32,0,0,32,136,6,192,20,2,0,1,32,1,0,0,32,0,17,32,0,0,176,0,0,16,0,9 +,52,0,0,6,18,0,1,32,34,1,0,0,72,16,0,0,48,18,120,255,128,0,3,192,132, +152,8,32,4,0,0,128,128,5,49,1,6,64,68,24,2,0,0,96,0,1,128,145,0,17,48 +,48,9,134,0,9,48,0,0,4,192,36,88,16,8,0,1,64,0,1,32,16,152,253,96,1,0 +,2,224,0,0,30,192,0,2,3,226,1,60,32,7,48,0,0,30,0,1,120,32,0,0,224,1, +0,16,64,0,0,60,128,7,0,9,56,128,3,228,0,0,6,192,3,2,0,0,15,8,0,0,28,0 +,0,88,250,128,0,3,192,0,0,24,0,0,3,0,1,12,132,1,48,0,0,6,192,0,0,24,0 +,1,96,0,1,128,1,0,16,128,65,48,8,0,0,1,0,8,48,0,0,6,196,0,0,24,0,0,1, +1,0,0,4,0,1,48,16,72,251,0,0,1,0,2,192,36,24,0,0,8,1,0,0,140,128,1, +176,8,6,192,136,24,0,1,112,68,0,0,128,1,0,16,128,1,176,0,11,48,0,0,65 +,192,0,0,64,16,35,0,1,76,1,0,0,56,0,0,136,249,0,11,13,0,0,48,4,193,0, +0,208,0,0,2,0,1,104,16,0,1,48,0,8,48,0,6,56,0,1,128,4,0,1,2,0,1,8,68, +0,0,32,4,5,128,38,24,0,1,64,11,2,0,0,65,36,0,0,4,64,52,250,0,11,12,0, +1,48,0,1,192,0,3,96,0,12,12,0,6,6,0,3,2,0,10,6,0,3,2,0,4,16,0,0,152, +252,0,11,12,96,0,3,192,0,0,6,0,1,96,16,0,0,96,0,9,12,0,6,102,0,2,4,0, +1,6,0,1,32,0,1,128,0,0,12,0,0,6,50,0,2,3,0,1,4,128,1,0,0,32,0,0,253,8 +,0,10,12,32,0,1,65,128,192,68,2,0,1,96,0,1,32,0,9,10,0,6,37,0,2,18,1, +0,0,2,0,1,64,33,0,1,128,4,0,0,6,16,0,2,139,0,1,40,8,128,176,0,0,163, +253,0,11,128,130,1,176,8,0,0,193,2,152,4,0,0,96,0,1,128,1,0,8,10,0,6, +133,1,0,1,2,0,1,88,16,0,1,1,0,1,4,176,16,36,194,0,3,2,0,0,64,128,129, +160,0,0,169,251,0,11,3,224,65,28,128,1,240,64,30,0,1,24,32,0,0,224,65 +,0,16,192,65,0,0,128,7,1,0,0,30,0,1,120,64,0,0,96,128,60,128,3,224,32 +,0,0,192,3,0,1,15,104,0,0,28,16,240,249,4,0,10,12,128,1,0,0,16,0,0, +194,0,0,24,0,1,64,0,1,128,1,0,16,128,1,0,1,6,1,0,0,24,0,1,32,0,1,128, +128,48,0,0,6,192,0,2,3,0,1,4,128,1,49,0,0,225,249,0,11,76,136,1,16,0, +0,38,0,0,64,26,0,1,32,68,0,0,128,1,0,16,128,1,0,1,70,0,1,26,0,1,96,66 +,0,1,1,48,0,0,64,194,0,2,163,0,1,76,129,9,176,32,136,254,0,2,128,6,0, +1,2,64,0,0,8,0,0,132,4,48,4,193,0,0,208,2,2,64,8,2,0,0,13,0,0,48,52, +18,0,6,18,0,6,41,0,0,4,128,32,0,1,18,8,0,0,8,2,13,32,16,52,0,1,208,0, +0,82,96,8,4,0,5,72,248,0,3,6,0,6,8,0,4,192,128,0,4,12,0,1,48,0,7,16,0 +,6,8,0,1,16,0,0,2,0,3,1,64,12,0,1,49,0,13,160,255,0,3,6,0,5,32,11,96, +0,0,48,0,1,128,64,0,4,12,96,0,0,48,0,15,96,0,0,16,32,2,0,1,24,208,0,0 +,32,32,12,128,0,0,48,0,1,48,64,24,16,1,0,6,104,252,4,0,2,38,2,0,2,32, +4,4,69,40,0,1,65,0,0,64,8,0,0,2,160,0,1,12,32,0,0,48,5,0,6,18,0,6,41, +0,0,32,1,132,0,1,16,65,0,0,64,1,0,0,16,128,0,0,64,0,0,16,8,80,0,0,34, +1,0,5,90,250,12,0,2,70,8,0,0,128,0,0,8,4,2,6,128,17,32,8,0,0,194,2,1, +17,144,0,1,64,132,17,32,9,0,14,128,17,0,0,65,16,0,2,1,67,0,0,12,76,4, +16,49,2,0,0,192,4,128,32,96,0,6,96,254,0,2,128,7,0,1,6,208,3,24,64,8, +224,65,12,128,1,48,0,0,6,192,1,0,1,3,224,65,28,0,7,20,0,6,202,65,60, +128,7,4,0,0,6,200,3,120,0,0,15,96,0,0,60,8,0,0,240,64,6,192,3,0,6,72, +249,8,0,2,6,0,1,24,0,0,131,0,0,64,10,128,1,32,0,0,6,128,128,24,8,129, +0,2,128,1,48,8,0,14,128,1,16,0,0,2,2,0,0,8,0,0,3,32,0,1,130,0,1,8,0,0 +,192,0,0,8,0,0,1,0,6,1,254,0,3,128,0,1,152,8,11,96,4,4,128,1,48,18, +134,32,0,0,128,0,0,11,0,2,128,1,136,0,7,8,0,6,132,1,176,16,70,0,1,144 +,8,3,96,36,32,0,0,17,1,0,2,40,144,2,11,1,0,5,144,254,32,0,0,4,128,128 +,208,0,0,2,64,8,41,0,0,128,4,48,4,0,0,64,208,66,2,64,3,0,1,1,0,0,4,36 +,8,0,6,2,0,6,161,1,4,146,6,16,0,1,64,11,10,64,65,32,16,4,0,1,16,0,0, +26,80,8,9,130,1,32,0,0,4,32,16,248,0,8,2,64,0,6,193,0,3,1,0,3,17,0,7, +36,0,6,146,1,0,1,6,0,3,3,0,2,8,128,0,4,16,0,6,16,0,0,152,248,128,1,0, +0,8,0,0,192,32,0,0,192,0,0,90,16,11,96,0,1,136,1,128,0,2,3,0,2,226,65 +,0,0,8,0,14,96,0,0,16,32,6,49,0,5,4,132,0,0,12,0,1,48,0,0,24,0,0,1,34 +,0,0,12,128,1,0,1,8,254,140,1,128,0,0,64,2,4,0,0,64,10,40,2,69,40,0,0 +,128,128,0,0,64,64,0,0,2,19,4,0,0,128,160,17,48,0,15,32,0,0,32,0,0,16 +,16,0,2,19,4,68,40,0,0,8,5,0,1,16,0,0,152,16,2,64,68,0,0,4,128,48,33, +202,249,4,16,1,8,22,1,8,1,17,17,48,0,0,6,128,5,0,0,8,134,192,2,24,17, +16,1,0,0,128,2,128,48,9,0,6,6,0,6,3,80,0,0,1,22,192,36,0,1,18,96,17, +64,8,16,50,0,1,192,8,88,8,32,0,0,32,140,144,5,32,16,64,253,96,0,0,12, +128,7,48,0,0,6,128,128,72,0,0,8,224,65,12,128,7,48,64,6,192,2,0,1,3, +224,1,60,0,7,4,0,6,66,0,0,60,144,7,242,0,1,192,1,121,0,0,15,96,0,0,60 +,8,0,0,224,32,30,192,3,122,0,0,3,96,128,28,0,0,128,254,4,0,1,8,6,0,0, +64,24,80,3,80,0,0,10,128,1,0,0,8,6,128,0,1,8,3,2,0,1,2,0,0,48,136,4,0 +,5,80,2,0,5,136,1,16,0,1,196,0,2,2,97,32,4,8,0,0,48,0,1,192,0,0,24,16 +,1,32,32,12,128,129,48,16,9,255,0,0,40,48,0,0,18,200,0,0,88,0,0,147, +32,0,0,4,128,1,48,128,6,0,0,128,128,0,0,2,0,1,44,128,65,176,0,0,4,0,5 +,20,2,0,5,138,69,48,5,64,208,0,1,128,8,32,4,44,128,145,52,0,1,192,0,0 +,24,0,0,3,100,0,0,76,132,1,56,0,0,120,255,160,9,52,128,0,0,20,8,0,0, +64,0,0,72,0,0,136,4,4,4,64,70,16,64,152,64,66,8,0,0,5,0,0,4,36,9,0,14 +,32,0,0,132,160,0,0,200,0,0,2,64,35,108,0,0,1,164,9,4,134,0,0,208,0,0 +,26,64,8,12,0,3,132,16,88,250,128,129,48,0,2,128,0,2,32,0,0,4,0,1,1,0 +,0,6,1,0,0,24,4,0,2,8,0,1,17,128,4,0,5,64,2,0,10,192,64,0,1,3,96,0,2, +65,16,0,0,2,196,0,0,24,0,2,32,0,2,16,0,0,232,255,128,0,0,49,0,6,89,16 +,11,224,1,0,0,144,7,0,0,64,30,0,1,24,0,0,11,224,65,28,0,7,10,0,6,101, +0,0,16,0,0,2,244,0,0,6,0,0,2,96,0,0,4,128,129,0,0,32,0,0,50,0,0,24,0, +0,1,32,0,4,32,64,253,132,17,48,0,0,16,2,66,0,2,40,2,69,168,1,160,128, +6,0,0,2,26,0,0,8,9,0,0,5,160,1,36,0,0,5,0,5,130,2,0,5,33,0,1,65,20, +208,0,0,2,0,0,65,96,34,40,132,9,48,0,0,70,16,0,0,24,0,0,34,65,65,0,2, +48,0,0,89,251,140,17,129,32,38,192,2,0,1,11,52,0,0,6,128,129,0,0,10, +32,194,8,128,8,160,96,32,38,0,0,128,32,0,7,8,0,6,132,9,128,64,0,0,2, +68,24,33,35,96,132,128,136,17,32,16,4,2,4,128,0,0,16,0,0,8,0,2,160,0, +0,179,250,224,1,12,128,7,241,128,0,0,192,3,72,0,0,8,224,1,28,128,1, +240,32,6,192,1,120,0,0,8,226,1,16,0,0,2,0,6,1,0,5,192,65,12,128,7,48, +0,0,30,192,0,0,121,0,0,15,224,65,28,128,3,32,32,6,208,3,122,0,3,28,16 +,64,248,136,1,0,1,6,194,64,0,2,49,0,0,6,128,1,16,32,0,0,192,0,3,96,0, +0,8,2,0,0,16,128,0,6,64,0,6,128,1,16,32,2,2,0,0,24,0,0,2,97,0,0,4,128 +,1,48,32,6,196,32,0,1,1,32,32,0,2,48,0,0,210,253,128,41,0,1,66,64,8,0 +,1,19,64,0,0,8,128,81,16,129,0,0,64,128,0,1,17,97,0,0,132,128,69,32,0 +,0,9,0,5,128,4,0,5,128,1,32,0,0,6,0,1,24,0,2,130,76,132,69,56,1,39, +192,2,0,1,83,96,4,0,2,176,32,120,253,176,0,0,20,128,0,0,210,2,1,64,3, +104,2,13,0,0,4,20,128,0,0,16,16,128,64,3,96,68,1,0,0,4,36,0,15,32,0,0 +,4,130,198,208,2,1,64,19,8,8,45,164,9,4,129,32,16,0,0,2,64,8,1,4,1,32 +,0,0,4,0,0,88,253,0,0,1,32,0,1,192,0,3,96,16,0,2,33,0,4,4,3,1,0,3,17, +0,18,32,4,192,0,2,3,2,0,0,12,128,1,17,32,2,4,0,4,64,0,4,200,251,96,65 +,44,0,1,64,0,1,192,131,96,16,15,226,65,44,128,1,0,0,64,6,0,1,120,64, +11,224,1,44,128,1,0,5,192,0,6,96,0,0,16,0,0,6,64,64,0,3,32,0,1,129,0, +2,50,0,0,24,0,0,1,26,0,1,128,1,12,0,0,64,252,172,16,20,0,0,16,196,136 +,0,0,64,11,96,4,45,160,17,20,145,0,1,8,2,0,0,19,12,4,5,160,81,20,0,0, +1,0,5,128,0,6,32,0,1,65,70,194,4,0,1,35,4,0,0,140,136,0,0,176,32,22, +16,0,0,24,0,0,2,8,0,0,64,8,128,4,0,0,154,251,196,8,24,9,22,64,136,0,2 +,96,1,32,16,128,152,32,38,192,36,24,2,17,2,0,0,38,0,0,128,24,0,0,4,0, +6,2,0,5,128,73,0,0,17,6,72,8,1,0,0,18,96,20,72,128,5,32,2,20,192,32, +88,32,16,98,132,128,136,49,48,8,40,252,32,65,32,128,7,241,0,1,128,131 +,88,16,14,224,1,36,128,7,241,0,0,30,192,3,120,0,0,8,226,1,32,0,0,5,0, +5,128,2,0,5,192,1,12,128,7,240,0,1,192,1,121,0,0,7,100,128,28,144,3, +226,0,0,30,192,3,120,0,0,15,96,0,0,60,0,0,240,252,68,65,32,8,6,64,64, +0,2,97,0,0,1,0,1,40,8,6,192,0,0,24,0,0,1,0,1,8,2,0,0,16,0,15,128,1,16 +,0,0,6,68,0,2,2,97,0,0,8,0,0,1,49,16,6,192,0,0,24,16,1,96,0,1,132,1, +48,0,0,185,251,128,4,144,0,0,2,164,2,0,1,35,96,33,76,129,69,144,0,0,6 +,64,2,25,0,0,32,97,0,0,36,128,73,32,0,15,128,1,160,32,22,160,66,0,0, +128,8,32,129,66,65,0,0,48,0,0,22,196,0,0,88,0,0,19,97,0,0,64,128,137, +52,0,0,112,251,48,0,0,4,128,22,144,2,19,66,136,0,1,1,0,0,4,4,128,0,0, +16,128,88,64,3,100,68,73,4,4,148,144,2,0,5,64,1,0,5,32,0,0,4,192,22, +148,2,3,64,19,9,32,13,164,9,182,128,22,210,0,1,64,18,108,1,0,0,32,0,2 +,24,252,0,3,6,66,0,8,1,0,3,24,4,3,0,1,4,0,1,33,128,0,6,64,0,10,6,64,0 +,2,3,0,1,12,128,1,48,32,6,192,0,3,64,32,0,4,112,250,96,65,44,0,0,4, +192,0,0,24,0,0,3,0,2,224,65,44,128,1,0,1,30,0,0,1,122,0,0,11,224,1,28 +,0,0,2,0,6,1,0,5,96,0,0,16,0,0,4,192,128,24,0,0,2,0,1,8,0,0,1,32,0,0, +4,48,0,2,2,96,64,0,0,128,1,0,1,232,255,172,16,20,0,0,66,194,16,16,9, +34,4,0,0,128,162,5,20,145,0,1,130,26,0,0,11,8,65,5,160,41,36,0,7,10,0 +,6,32,0,1,33,34,200,8,128,2,9,2,132,36,132,144,16,34,66,20,0,2,145,96 +,0,2,128,0,1,225,249,196,8,24,9,22,200,4,0,0,9,16,0,1,32,0,0,128,152, +32,6,192,34,128,8,2,2,0,0,6,0,0,128,16,0,15,130,69,0,0,66,70,200,8,0, +1,35,96,18,140,128,17,50,33,70,8,4,0,1,33,96,0,1,128,5,1,0,0,163,254, +32,65,32,128,1,112,64,6,192,128,0,1,15,226,1,36,128,7,241,0,0,6,192,3 +,120,0,0,4,224,1,44,0,15,192,1,12,128,1,112,128,6,208,0,0,121,0,0,3, +100,0,0,12,128,1,32,64,0,0,192,131,120,64,0,0,96,0,2,192,250,68,65,32 +,8,4,194,32,8,0,0,128,0,2,2,0,0,40,8,6,192,128,0,1,2,0,1,4,0,0,64,16, +0,15,128,1,0,1,4,192,0,1,8,2,97,0,0,8,4,129,32,0,0,4,192,0,2,3,96,32, +0,0,128,1,0,1,106,255,128,0,0,16,0,0,65,64,8,16,2,16,0,1,128,128,65, +16,128,6,64,0,2,34,98,0,0,4,128,9,36,0,15,128,1,48,16,1,68,8,1,0,1,32 +,64,0,1,16,8,17,33,194,40,0,1,3,97,1,0,0,128,145,0,1,208,249,32,9,164 +,160,22,80,4,27,64,3,104,0,0,1,0,0,4,164,160,6,16,0,0,27,65,65,96,68, +1,0,0,48,20,6,0,14,160,1,52,129,38,208,4,2,64,0,0,72,64,137,161,5,54, +162,38,18,0,1,64,18,12,130,33,36,0,1,1,152,249,128,64,16,0,0,6,4,0,0, +24,0,0,3,96,0,3,17,0,3,24,4,0,5,32,0,7,12,0,6,6,0,0,32,32,6,194,32,0, +5,128,1,48,0,0,6,0,10,32,56,254,96,1,44,0,0,4,112,0,2,3,96,0,1,224,65 +,44,128,7,193,128,8,0,0,1,121,0,0,3,96,0,0,28,0,15,96,0,0,49,0,0,4,64 +,128,24,192,0,0,64,0,0,8,130,0,0,32,0,0,4,48,0,2,130,32,0,0,4,128,1, +12,0,0,184,250,168,0,0,20,0,0,130,16,68,0,1,3,96,0,0,128,162,1,20,128 +,0,0,192,4,64,8,10,8,132,1,32,0,0,36,0,0,4,0,5,16,2,0,5,40,8,176,8, +130,0,0,2,0,0,73,0,0,32,16,132,0,0,9,18,4,34,20,0,2,33,64,68,8,8,8,5, +0,0,50,250,64,73,24,0,0,70,8,64,64,0,1,97,65,32,0,0,128,40,0,0,6,65,2 +,64,8,11,0,1,140,144,5,16,0,0,2,0,5,16,1,0,5,136,49,128,64,38,8,34, +152,0,0,11,32,4,36,0,0,8,50,65,198,192,40,0,1,1,0,0,66,128,129,9,48, +66,168,252,32,1,16,128,1,160,0,0,6,200,0,0,120,0,0,3,226,1,36,144,7, +48,128,6,192,131,120,0,0,15,224,65,44,0,0,7,0,5,144,3,0,5,232,1,60, +128,1,48,0,0,30,208,131,120,32,15,226,1,12,128,1,224,0,1,192,3,122,0, +0,15,224,1,61,0,0,56,254,4,1,16,0,0,4,208,0,2,3,1,0,0,12,2,0,0,32,0,1 +,192,0,2,3,0,1,12,128,1,16,128,5,0,5,208,2,0,5,136,65,48,0,0,4,4,0,1, +8,3,96,0,0,12,0,0,128,32,0,0,4,196,0,2,131,32,64,4,4,0,0,48,0,0,57, +249,0,0,1,16,0,1,196,40,64,32,3,0,0,132,128,128,73,32,128,22,193,36, +80,32,3,97,0,0,13,128,1,36,0,0,4,0,5,8,2,0,5,4,0,0,48,10,0,0,128,4,25 +,64,3,96,17,140,66,5,128,16,0,0,192,0,2,11,96,1,12,128,129,48,0,0,64, +250,16,0,4,2,1,0,0,8,0,19,4,0,6,2,0,35,192,248,32,0,0,4,128,0,0,16,0, +0,2,64,128,8,0,0,1,34,0,0,4,0,1,16,0,1,64,0,0,8,0,1,32,0,9,16,0,6,40, +0,0,4,128,0,5,8,0,0,1,32,0,0,4,128,0,0,16,0,0,2,64,0,0,8,0,0,1,32,0,2 +,40,250,0,20,16,0,3,8,0,1,32,0,20,128,0,2,2,0,18,136,255,44,0,0,4,128 +,0,2,2,0,1,8,0,1,32,0,0,4,128,64,18,0,0,130,64,0,0,8,0,0,65,32,0,0,4, +0,15,32,0,0,4,128,0,0,16,4,2,72,16,8,0,0,1,32,0,0,4,146,0,0,16,0,0,2, +64,0,0,8,0,0,1,32,0,0,4,9,75,249,4,0,1,66,0,1,4,0,1,144,0,1,64,4,0,3, +1,0,5,128,4,0,1,34,0,15,16,2,0,12,2,0,1,8,1,0,8,233,248,0,2,128,0,1, +32,0,10,16,0,1,64,0,24,4,128,0,5,8,0,0,1,32,0,1,160,0,2,2,64,0,2,1,32 +,0,2,88,253,4,0,6,16,0,6,32,0,0,4,0,4,64,0,0,8,0,27,2,0,4,8,0,11,32, +225,253,32,72,0,0,144,0,1,132,130,0,1,9,128,0,0,48,128,4,130,32,16,0, +0,2,73,0,0,8,2,128,32,128,0,0,18,0,15,40,4,128,0,0,16,72,2,97,32,8,0, +0,1,32,0,0,4,130,0,1,64,2,64,0,0,8,36,1,32,0,0,4,2,184,254,0,0,1,0,4, +16,0,0,1,0,35,4,0,14,4,0,2,4,0,7,152,254,0,15,128,0,2,2,0,0,2,0,7,2,0 +,1,8,0,3,1,0,1,4,0,9,64,0,15,16,0,3,120,255,0,7,128,0,38,8,0,2,1,0,6, +1,0,4,32,64,0,3,5,0,1,56,254,0,4,32,144,17,128,1,0,15,64,0,20,16,128, +0,8,128,0,11,2,0,1,48,250,0,4,64,32,0,47,128,0,18,176,251,0,22,16,0, +28,34,0,7,128,0,2,32,0,7,16,252,4,64,0,1,1,130,32,2,0,0,128,0,4,4,136 +,0,0,64,16,0,5,64,0,0,33,0,17,8,0,2,32,16,0,4,4,0,0,1,0,3,8,0,0,1,0,1 +,1,36,0,0,33,0,0,36,255,0,0,128,0,0,128,0,0,4,0,3,10,0,1,4,0,0,1,32,0 +,5,16,0,0,1,32,0,0,16,0,27,2,64,0,0,16,0,1,64,0,9,32,200,253,0,0,192, +1,128,1,166,85,132,2,0,0,75,1,0,0,8,0,0,9,53,1,32,64,0,0,4,0,0,8,16,1 +,96,128,12,0,17,8,5,0,1,64,4,0,3,1,36,128,4,0,1,16,0,0,84,128,0,2,106 +,69,168,8,32,112,255,32,0,0,32,4,6,0,1,10,66,161,104,12,0,0,84,67,48, +4,2,193,32,0,2,136,0,2,64,32,0,19,3,0,0,20,0,0,4,227,32,0,0,4,2,0,0,4 +,0,0,128,1,0,1,68,13,0,0,68,40,0,0,41,4,4,0,0,249,0,3,4,0,1,16,0,0, +129,16,0,3,33,0,0,132,32,128,0,7,1,0,18,128,0,3,4,129,32,0,0,2,4,0,2, +128,0,2,2,1,0,6,32,252,4,0,0,16,144,0,3,16,0,0,32,16,0,0,32,0,0,4,32, +0,0,16,0,8,4,0,21,128,0,1,2,1,0,6,2,0,5,4,128,64,0,0,32,52,251,0,2, +128,4,0,13,1,0,10,2,0,1,8,0,3,1,0,1,4,0,3,192,128,128,0,2,64,64,0,9, +64,0,0,2,0,2,8,0,0,132,4,72,255,0,23,16,0,5,4,0,1,16,0,3,2,0,1,8,0,3, +64,0,16,2,4,0,7,208,248,0,4,32,0,0,2,0,4,64,0,1,12,0,3,32,0,3,64,0,26 +,1,64,0,1,65,0,0,2,128,8,0,2,64,128,0,0,8,0,0,2,0,2,168,249,0,6,4,0,2 +,64,0,3,4,0,7,4,1,0,0,4,0,15,32,0,0,4,0,0,1,8,0,5,33,0,2,64,0,4,4,16, +0,0,2,0,3,24,248,0,6,64,0,8,16,0,1,64,0,2,1,32,0,1,16,0,21,2,0,1,8,0, +12,4,0,5,144,254,0,3,8,0,13,1,0,26,1,0,0,8,0,4,128,0,7,128,0,0,8,0,6, +16,128,255,0,3,16,0,12,64,2,0,33,128,0,0,1,1,128,0,2,2,0,5,16,0,4,112 +,253,0,0,4,0,4,64,0,13,8,0,25,16,0,3,1,0,4,32,0,0,18,0,3,2,128,0,0,4, +0,3,216,248,0,2,4,0,3,32,64,0,9,8,0,29,64,0,10,128,0,5,16,0,0,2,0,1, +232,250,0,5,1,2,0,3,6,0,7,64,0,1,9,0,24,1,0,0,4,0,2,16,0,9,128,8,0,2, +1,0,1,56,255,0,49,4,0,3,2,64,2,0,0,1,0,13,32,232,249,0,14,64,0,0,2,0, +1,8,0,28,64,0,4,1,0,2,128,0,7,65,0,3,32,184,248,0,6,1,0,1,4,0,40,4,0, +21,152,254,0,8,2,0,20,16,0,2,16,0,2,8,0,2,8,0,21,16,0,7,56,253,0,14, +128,0,11,4,0,31,16,0,6,32,0,4,40,250,0,10,8,0,0,4,64,0,6,64,0,3,64,0, +39,1,0,5,8,251,0,44,32,0,2,4,0,19,8,0,1,32,0,0,16,249,2,0,2,2,64,0,12 +,2,0,3,128,0,21,16,0,4,8,0,0,34,0,0,4,0,0,4,0,2,8,0,10,144,252,0,5,64 +,0,3,8,0,6,128,0,14,64,0,11,16,1,0,0,16,32,0,1,8,0,2,128,0,2,1,0,3,16 +,0,0,1,0,3,96,249,8,0,11,8,0,5,80,0,6,128,0,19,2,0,1,2,0,1,4,160,0,2, +2,0,5,1,32,128,32,0,3,24,255,0,1,64,0,4,2,4,0,3,2,0,0,32,0,4,2,2,0,2, +2,0,38,12,0,5,8,240,249,32,0,4,64,0,2,34,0,10,1,0,7,128,0,2,128,0,2, +64,0,2,64,0,5,128,144,0,0,16,0,16,64,0,2,64,255,16,0,6,4,0,20,1,128,0 +,0,4,0,0,128,0,0,128,0,0,64,0,0,2,0,0,64,0,5,2,0,1,2,0,5,4,0,3,8,0,0, +1,1,0,0,4,0,1,16,0,0,240,254,0,3,4,128,34,0,24,16,0,2,16,0,2,8,0,2,8, +0,1,8,0,6,80,0,0,8,64,0,0,64,0,0,8,0,4,64,0,5,80,253,128,0,0,17,0,1, +33,0,0,8,0,0,1,8,0,1,72,0,1,32,0,1,32,8,0,2,64,0,0,4,128,0,16,32,0,7, +2,16,0,0,1,4,64,8,0,1,32,0,1,64,0,0,32,8,0,0,2,0,0,1,0,0,128,248,2,0, +1,32,0,5,18,0,1,32,0,0,4,136,0,0,1,64,0,0,128,0,2,1,8,64,0,15,8,32,0, +0,4,0,3,8,8,1,0,1,2,0,7,4,128,0,0,16,0,0,128,0,0,16,136,104,250,64, +128,8,32,2,34,0,0,4,128,0,0,26,0,1,100,0,0,4,176,20,4,192,4,64,1,0,0, +42,1,12,192,1,0,5,16,0,6,8,16,96,0,0,4,0,3,2,208,0,0,16,0,0,3,4,128,8 +,64,2,32,0,0,136,146,128,18,96,0,0,36,128,4,32,232,253,0,0,96,128,8, +192,234,16,72,2,233,208,24,28,150,33,0,0,4,21,80,4,56,6,10,0,0,16,1, +129,41,0,0,36,0,2,16,0,0,128,16,0,3,8,0,0,64,8,128,65,16,0,0,6,81,0,0 +,50,0,0,14,45,0,0,5,129,64,32,16,128,16,17,64,64,144,16,28,76,0,0,80, +160,9,32,255,0,0,64,0,0,16,0,0,64,0,0,16,64,0,0,1,32,4,130,0,3,64,0,0 +,16,4,0,1,64,0,0,128,0,17,128,128,16,0,0,4,36,0,3,16,0,0,2,128,64,0,6 +,64,0,0,16,4,0,0,64,0,0,16,184,251,0,1,1,0,0,128,16,64,0,0,8,128,8,16 +,2,32,0,0,1,32,2,0,1,8,8,2,0,2,40,64,0,0,8,0,2,4,0,0,32,64,0,3,2,0,0, +16,32,64,0,2,1,0,1,4,0,0,1,0,2,4,0,0,8,0,1,2,64,0,3,8,1,0,1,4,0,0,144 +,250,16,0,28,16,0,1,64,0,3,8,0,1,32,0,4,16,0,5,4,0,1,16,0,5,1,0,5,96, +64,0,1,12,251,2,0,3,5,0,11,128,0,3,128,0,22,128,96,4,0,3,128,0,0,64,0 +,2,1,0,0,1,2,0,0,64,0,0,8,0,0,16,0,0,2,0,0,128,128,144,250,2,0,11,32, +32,32,0,5,9,0,2,32,0,22,32,128,0,7,16,0,1,2,0,1,2,0,6,128,40,252,0,9, +4,0,0,1,0,12,8,0,0,8,0,18,128,0,0,4,0,0,1,0,6,8,4,0,0,69,0,3,2,0,4,8, +248,250,0,4,8,0,9,128,0,1,32,3,0,10,16,0,2,16,0,2,8,0,2,8,0,1,32,64,0 +,4,2,0,0,128,8,0,0,2,8,0,0,1,0,9,8,0,0,72,252,0,2,128,0,13,16,0,15,64 +,0,6,32,0,10,8,0,2,1,0,7,4,0,1,4,128,0,1,48,249,0,3,1,2,0,10,4,32,64, +16,0,6,32,0,13,8,0,5,128,0,3,48,48,4,2,64,32,8,0,5,96,0,2,32,0,1,64, +253,0,14,8,0,2,32,0,9,16,0,1,64,0,3,8,0,1,32,0,4,32,8,0,3,128,64,0,1, +18,128,0,1,8,0,3,64,0,1,32,1,0,2,4,48,254,0,4,128,0,4,16,0,2,16,0,5, +196,16,0,23,36,0,9,32,192,0,0,16,0,7,4,0,2,168,248,0,0,33,0,0,32,0,2, +32,0,1,64,0,4,64,0,0,64,0,2,4,0,1,2,32,0,23,1,0,1,4,0,2,9,0,1,32,4,0, +3,64,0,0,8,0,2,40,0,0,160,250,0,4,16,0,6,16,0,2,1,0,1,4,0,2,16,0,26, +16,4,0,15,2,0,2,128,16,252,0,6,8,0,2,128,0,6,64,0,31,32,0,17,8,0,2, +120,249,0,4,16,0,3,104,0,3,4,0,1,80,2,0,0,81,0,0,4,65,128,1,0,19,52, +132,0,2,26,65,0,0,72,2,37,16,0,0,52,32,0,0,208,2,90,96,3,0,1,1,161,17 +,52,34,96,251,0,9,96,0,6,128,32,0,26,32,0,0,6,0,1,16,8,0,0,96,32,12,0 +,1,48,0,1,192,64,24,0,0,3,0,2,128,129,48,0,0,248,250,0,5,32,0,2,24,0, +3,48,0,1,64,0,0,6,0,1,122,0,0,3,0,20,48,32,6,2,0,0,24,208,0,0,64,64,3 +,0,1,32,16,0,0,128,128,16,16,3,0,1,4,0,0,129,32,0,0,232,252,0,9,8,0,3 +,48,0,1,128,130,2,0,1,104,16,1,0,20,128,0,0,6,0,1,64,64,0,0,96,1,5,2, +0,0,16,2,0,0,64,0,0,136,0,0,11,4,0,1,136,8,144,16,120,252,0,5,34,0,3, +64,0,2,176,32,0,0,64,2,25,1,11,1,2,44,0,20,16,34,70,0,1,136,0,0,163, +96,12,72,8,0,0,48,0,1,192,8,152,16,67,0,1,64,132,137,48,17,248,251,0, +4,48,0,3,16,0,3,60,0,1,240,0,0,30,208,3,120,64,15,2,0,19,44,128,1,2,0 +,0,22,132,3,56,0,0,3,0,1,12,32,0,0,48,64,6,192,0,2,3,96,0,0,12,0,0, +104,255,0,4,192,32,0,2,96,0,3,48,0,1,64,0,0,24,0,0,3,1,16,12,0,21,8,0 +,0,4,0,1,4,3,0,0,64,12,2,0,0,32,0,1,128,64,16,16,0,0,2,0,0,4,0,0,1,33 +,32,184,251,0,5,4,0,2,96,17,0,2,48,18,0,0,128,8,25,0,0,33,96,4,12,0, +22,64,0,1,64,0,0,3,0,0,4,72,0,1,8,18,0,0,32,8,0,1,32,0,1,136,16,4,128 +,0,0,152,252,0,2,2,0,0,16,0,3,8,0,3,132,0,1,80,4,0,0,81,3,0,0,65,129, +160,65,52,0,17,52,132,22,8,0,1,64,3,0,1,73,40,16,180,64,0,0,208,4,0,0 +,64,8,104,0,0,13,176,9,52,2,160,253,0,2,32,0,11,32,0,0,128,32,0,1,3,0 +,2,136,1,48,0,17,32,0,0,6,0,3,3,0,1,4,0,0,128,48,0,1,192,128,0,2,97,0 +,0,12,128,129,32,16,176,253,0,1,12,0,2,32,0,2,24,0,3,16,0,1,64,0,0,6, +0,0,3,120,0,1,130,1,48,0,17,48,32,2,2,0,1,192,0,2,11,0,1,32,0,1,128,0 +,2,2,98,0,0,8,0,0,1,48,32,64,250,8,0,0,4,0,6,8,0,4,9,0,0,128,128,2,0, +0,11,106,17,64,128,5,50,0,17,128,0,0,20,0,2,64,0,2,5,0,0,9,17,64,0,0, +64,130,0,2,96,36,36,136,8,1,1,233,253,0,1,48,6,0,1,34,0,2,96,0,3,128, +64,0,0,64,2,24,0,0,11,0,0,2,128,130,9,130,0,17,144,0,1,8,0,2,8,0,1,8, +128,9,50,34,0,0,192,8,1,0,0,35,100,8,140,136,17,146,0,0,179,250,0,1, +60,0,1,240,0,3,112,16,0,2,12,0,1,240,64,30,196,3,121,64,3,224,1,12,16 +,0,16,44,136,7,0,2,128,0,0,1,0,0,6,224,1,12,0,1,48,0,1,192,3,24,0,0,3 +,96,0,0,44,8,48,252,4,0,0,48,0,2,32,0,2,96,0,3,16,0,1,64,128,24,0,0,3 +,0,0,16,0,0,130,1,48,0,18,8,0,0,4,0,2,3,0,1,8,128,129,32,16,0,0,128,0 +,2,3,0,0,64,8,0,0,1,0,1,114,252,0,1,48,0,2,4,0,2,96,0,3,32,33,0,0,128 +,0,0,24,0,1,100,0,0,36,0,0,137,48,32,0,17,2,5,0,3,147,0,1,4,128,16, +128,0,2,68,0,1,17,1,1,34,68,0,0,1,33,24,251,0,2,130,0,4,96,8,0,1,32, +32,52,162,6,80,32,0,0,81,64,0,0,65,128,161,17,21,1,0,14,32,0,0,52,192 +,70,208,0,1,64,0,0,104,8,1,32,16,132,0,3,26,16,0,0,8,8,141,160,145,52 +,64,8,252,0,2,32,0,10,48,0,0,6,128,0,9,16,0,16,48,0,0,6,196,0,3,64,0, +2,128,16,16,0,2,24,0,3,12,132,1,48,0,0,136,253,0,1,12,0,0,6,0,2,192,0 +,0,24,0,3,32,0,0,6,64,0,0,6,0,1,120,0,0,3,128,129,28,8,0,14,128,1,32, +0,0,6,192,0,1,192,0,0,96,64,3,0,2,16,0,2,16,0,3,8,0,0,1,32,0,0,208, +251,4,0,0,4,0,0,6,0,2,64,0,0,8,0,2,128,16,33,22,132,20,2,0,0,16,106,0 +,0,1,0,0,5,4,1,0,14,128,1,16,32,166,192,136,0,0,64,0,1,2,1,0,0,133,48 +,1,0,2,72,32,0,0,64,33,132,132,4,17,64,186,254,12,0,0,48,2,0,4,11,100 +,2,0,0,128,73,176,64,70,72,8,24,1,19,96,2,44,2,33,0,0,1,0,14,128,9,48 +,66,196,192,8,1,0,0,35,32,18,140,128,17,34,2,0,2,24,1,0,0,96,4,44,132 +,1,48,18,152,249,0,1,60,136,1,2,0,1,192,3,112,16,0,0,224,1,12,128,7, +240,64,30,196,131,120,64,15,224,1,40,32,0,14,224,1,13,128,3,240,0,1, +128,131,88,0,0,14,226,1,28,32,0,2,6,8,0,0,120,32,3,96,128,12,0,0,160, +250,8,0,0,48,0,1,4,0,2,3,96,0,1,128,129,32,16,6,68,0,0,24,0,0,3,96,16 +,12,128,129,52,0,15,128,1,32,0,0,6,196,0,2,3,0,0,16,12,128,1,48,16,0, +2,16,0,1,96,0,0,8,0,0,1,33,0,0,209,248,0,1,48,0,0,32,0,3,3,96,0,1,128 +,16,8,2,0,0,128,4,25,0,0,9,100,2,12,128,17,48,10,0,14,128,5,10,4,65,0 +,0,72,0,1,3,0,1,12,128,0,0,57,0,3,4,33,0,0,32,64,128,8,0,0,8,32,128, +253,32,0,0,4,6,0,0,16,132,0,0,4,96,8,0,0,1,160,1,52,130,0,0,88,36,64, +80,16,4,68,128,1,0,0,52,0,15,32,16,52,130,38,24,2,154,80,0,2,1,160,1, +4,129,34,17,0,0,26,73,96,8,8,0,0,160,129,52,6,40,255,0,4,128,0,6,128, +1,48,16,0,0,128,0,26,128,48,16,6,0,0,128,24,0,4,128,1,16,32,4,0,0,128 +,24,0,0,1,0,2,128,1,48,0,0,224,250,0,4,48,0,0,6,192,0,0,24,0,0,3,128, +1,32,0,1,66,0,0,30,4,0,0,24,0,0,3,0,1,48,0,15,128,0,0,32,16,6,0,0,64, +16,192,0,2,3,128,1,0,1,2,128,0,0,16,0,5,1,32,0,1,250,12,0,0,1,8,0,0, +144,36,2,64,0,0,8,0,0,1,128,17,17,64,16,128,130,26,0,0,16,9,0,0,1,0,1 +,128,8,0,15,68,16,0,0,70,4,2,136,66,0,2,1,128,145,176,32,4,2,4,137,16 +,35,65,66,0,0,128,128,16,17,2,251,132,145,128,0,1,64,4,88,0,0,11,96, +17,12,128,17,178,0,0,22,65,4,128,0,0,35,96,1,12,0,1,128,0,16,4,176,0, +0,36,192,34,152,0,0,11,0,1,44,128,17,160,32,18,194,4,89,8,34,96,68,0, +0,128,17,178,0,0,96,249,224,1,44,8,0,0,32,32,30,200,131,112,0,0,15, +232,1,12,144,7,240,64,30,208,131,120,32,15,2,0,0,12,16,0,14,96,128,12 +,160,3,242,0,0,6,136,131,0,1,14,98,128,28,128,7,240,0,0,6,192,1,122,0 +,1,96,0,0,12,32,160,255,4,0,1,8,0,0,208,0,0,24,0,0,3,96,0,0,12,128,1, +32,0,0,6,66,0,2,3,96,0,0,12,0,18,128,0,0,33,0,0,6,192,0,0,16,0,0,3,0, +1,12,0,1,49,0,0,2,192,64,16,0,0,3,97,32,0,1,1,32,0,0,137,248,128,133, +0,2,192,136,24,0,0,3,96,0,0,12,0,0,32,0,0,32,66,128,8,153,4,1,98,0,0, +12,0,1,48,32,0,15,9,0,0,18,16,66,2,5,2,3,0,1,12,0,0,4,48,5,164,64,4,0 +,0,137,3,32,4,0,0,64,0,0,1,18,168,248,160,65,20,0,1,208,0,2,96,104,0, +0,141,168,1,4,192,0,0,80,34,64,80,35,1,68,33,16,0,0,4,17,0,14,32,16, +52,192,6,196,130,26,97,0,0,104,12,13,160,1,4,129,18,1,0,0,90,80,0,0, +108,36,13,176,9,52,33,112,255,128,1,32,0,1,192,0,5,12,128,1,0,2,128,0 +,2,3,0,23,49,0,0,6,0,1,24,0,1,96,0,0,12,128,1,16,16,4,0,1,24,0,0,1,96 +,0,0,12,128,1,49,0,0,24,249,128,129,44,8,0,3,192,0,0,24,0,0,12,132,1, +16,0,1,64,0,0,30,8,1,24,0,3,48,0,15,128,0,0,32,0,0,4,242,0,0,16,192,0 +,0,64,0,0,3,0,3,2,2,0,0,16,0,3,8,0,0,129,32,0,0,104,248,132,5,20,1,0, +3,64,0,0,8,66,140,128,17,1,9,16,132,20,90,0,0,35,9,0,0,128,2,0,0,160, +8,0,15,68,16,32,66,16,16,8,97,0,0,32,36,1,128,5,50,33,36,0,1,8,2,11, +34,16,36,136,4,16,5,121,254,140,5,26,0,2,4,0,1,19,96,64,0,0,130,17,2, +17,64,68,132,128,0,0,17,98,2,32,0,2,64,0,15,16,49,0,0,38,0,1,24,17,19 +,96,129,64,136,9,33,2,34,8,0,0,88,32,10,98,128,44,144,1,48,34,203,250 +,224,1,36,0,1,48,32,0,0,192,131,120,0,0,11,224,1,12,128,7,240,0,0,30, +208,3,120,16,3,2,0,0,12,0,15,96,0,0,12,144,1,242,0,0,6,128,131,24,0,0 +,2,224,1,28,160,7,0,1,6,192,1,120,0,0,3,96,128,12,0,0,24,251,136,1,40 +,0,5,3,96,0,0,8,128,1,16,32,0,0,64,0,1,4,1,98,0,20,128,0,0,32,16,4,0, +1,16,0,0,3,64,32,12,0,1,48,16,2,0,1,16,16,3,64,0,0,8,8,1,33,0,0,114, +249,0,0,1,18,0,2,36,0,1,3,0,0,17,44,16,144,32,0,0,32,130,4,153,128,18 +,96,0,0,68,2,0,1,8,0,15,33,8,1,129,192,0,0,128,32,3,16,4,140,2,128,56 +,0,0,132,0,1,132,0,0,35,114,129,66,0,1,136,16,144,252,176,1,36,128,16 +,66,24,2,0,0,96,8,0,0,133,32,4,4,128,64,16,0,0,64,80,34,1,65,128,1,0, +0,4,0,15,32,4,52,130,22,20,16,154,80,1,106,128,1,160,1,133,144,0,0, +208,2,27,97,0,0,105,66,141,160,5,54,16,224,250,0,1,16,0,1,128,0,5,8,4 +,0,0,1,8,0,0,2,0,2,1,0,22,64,48,16,6,0,1,24,0,0,3,96,0,1,128,1,16,0,1 +,192,0,0,24,0,0,1,96,0,0,12,132,1,48,0,0,16,253,224,65,44,8,2,176,0,0 +,6,192,0,0,24,0,0,7,0,1,16,16,0,2,30,4,3,120,0,0,3,0,1,60,0,15,128,0, +0,32,16,4,0,1,16,192,128,64,64,3,0,2,32,0,0,64,64,16,0,3,8,128,0,0,32 +,0,0,120,252,172,5,20,1,68,88,128,2,64,0,0,8,0,0,9,0,0,4,2,1,32,4,136 +,26,1,35,106,18,1,0,1,52,0,16,40,16,0,0,2,8,8,137,66,17,32,0,0,1,128, +80,48,0,0,16,132,2,72,16,3,33,8,132,4,9,18,66,226,251,4,80,24,0,0,64, +100,0,0,152,0,0,147,96,20,4,128,5,0,0,2,6,1,24,128,0,0,131,0,0,2,140, +2,0,0,48,64,0,15,136,48,1,70,196,2,24,0,0,10,96,132,76,130,1,162,32, +32,0,0,4,24,0,0,34,96,32,12,0,0,144,176,16,232,254,192,1,36,128,7,128 +,0,0,30,208,3,112,0,0,11,224,65,12,160,7,240,0,0,30,208,1,120,64,15,0 +,1,56,0,15,96,0,0,12,160,1,240,32,6,200,0,0,25,0,0,14,224,1,28,128,7, +242,128,6,208,1,122,0,0,3,232,1,12,0,0,112,253,4,0,0,24,0,0,2,160,0,0 +,24,0,0,3,96,0,0,4,128,1,0,1,6,0,3,3,0,1,12,0,1,48,8,0,15,128,32,0,0, +4,192,64,16,8,131,64,0,0,12,0,0,1,49,0,3,16,8,3,65,64,8,4,0,0,32,0,0, +97,250,128,17,33,0,0,70,66,0,0,26,0,0,3,96,0,0,9,128,132,48,16,18,2, +68,88,4,145,96,20,12,0,1,176,0,15,128,9,0,0,66,32,72,8,132,0,0,34,0,0 +,34,12,192,1,48,5,16,162,130,0,0,128,3,112,2,0,0,64,5,1,34,160,251, +160,1,0,0,2,0,1,24,0,1,96,104,0,1,32,32,52,136,134,80,0,0,64,80,3,1, +68,128,1,0,0,4,0,15,32,4,52,160,2,18,132,26,97,0,0,104,32,1,160,145, +52,160,34,208,8,0,0,64,16,12,1,0,0,160,49,180,0,0,104,250,128,1,0,0, +32,0,5,96,0,3,32,0,1,128,32,0,1,3,0,22,64,48,0,3,24,0,1,96,0,1,128,1, +48,0,0,4,193,128,0,1,1,32,64,0,0,128,1,48,16,56,248,128,65,12,0,1,176 +,0,1,192,0,0,24,0,2,128,48,8,6,65,0,0,30,4,1,26,0,0,3,0,18,128,0,0,32 +,16,6,128,0,0,16,192,0,0,64,0,0,3,0,0,64,32,16,2,192,0,3,1,32,0,0,128 +,1,32,32,168,249,132,5,4,0,1,80,128,0,0,64,0,0,8,0,2,8,176,0,0,64,128 +,128,90,0,0,8,8,0,0,1,0,1,128,8,0,15,4,145,0,0,18,4,128,8,97,0,0,32, +32,1,128,16,16,2,4,196,20,0,1,11,96,1,0,0,128,41,16,0,0,171,251,12,4, +177,0,1,96,0,2,139,0,0,1,0,0,128,9,48,2,34,64,64,128,0,0,144,96,18,12 +,2,0,0,128,32,0,15,16,50,0,1,192,8,88,8,131,96,129,44,130,129,48,16, +34,128,2,0,1,10,66,1,0,1,9,48,18,17,250,96,0,0,60,8,0,0,128,0,1,192,3 +,16,16,0,0,224,65,60,136,7,244,0,0,30,208,0,0,120,0,0,15,0,1,60,0,15, +96,0,0,12,144,1,244,64,6,128,3,24,0,0,14,224,1,12,128,7,116,64,0,0, +192,1,56,16,0,0,224,128,12,0,0,200,249,136,65,48,0,1,160,0,2,3,96,16, +0,0,128,129,48,8,0,0,66,128,0,2,96,0,0,12,0,1,48,16,0,16,32,16,4,192, +64,16,0,0,3,64,32,12,0,0,1,32,0,0,2,196,128,0,1,3,96,0,1,128,1,33,0,0 +,177,253,0,0,16,48,0,1,64,0,2,3,96,2,0,0,128,16,48,2,38,128,0,0,24,4, +66,96,0,0,12,0,1,48,2,0,14,128,9,10,1,35,65,4,0,0,17,3,16,4,12,192,33 +,136,16,4,32,8,0,1,35,98,20,0,0,64,16,8,32,40,251,176,1,52,128,66,130 +,24,26,64,136,8,0,0,1,32,4,4,128,128,16,0,1,81,32,0,0,68,128,161,1, +132,0,15,160,81,180,192,68,16,0,0,27,81,10,104,2,1,32,132,180,192,6, +208,72,2,2,0,0,104,2,45,164,9,54,1,216,254,128,1,48,0,0,4,64,0,0,24,0 +,6,1,8,0,5,1,0,1,128,1,0,0,8,0,15,1,48,0,0,2,4,0,0,24,0,0,1,97,64,0,0 +,128,0,0,48,0,0,6,196,0,3,96,64,12,128,1,48,32,0,0,249,128,1,48,128,3 +,176,0,0,24,0,0,129,24,0,1,4,0,0,17,0,3,6,0,1,26,0,0,3,128,1,0,16,128 +,65,32,16,6,0,2,192,2,64,32,3,0,1,32,0,1,194,128,8,8,0,3,128,1,33,16, +40,249,140,17,49,128,4,80,128,24,0,0,32,8,0,0,32,0,0,8,0,0,34,64,4, +136,2,0,1,8,0,0,1,128,33,0,0,4,0,14,128,5,16,2,166,0,0,132,152,80,1, +32,1,1,128,17,17,64,22,192,4,0,0,1,0,0,96,132,140,136,9,144,0,0,18, +252,132,49,48,16,2,96,0,0,64,8,8,96,4,32,128,81,128,0,0,22,0,0,8,89,0 +,0,11,96,20,140,128,5,1,2,0,14,128,9,48,1,38,196,4,80,32,2,96,132,140 +,2,5,176,0,0,4,128,136,0,0,1,0,0,64,0,0,8,0,0,1,48,0,0,72,249,224,1, +60,128,5,128,0,0,6,192,128,112,16,15,232,1,12,144,7,241,0,0,30,196, +131,120,0,0,15,232,1,12,16,0,14,224,65,12,160,1,240,32,14,128,1,24,0, +0,14,224,64,12,160,3,114,0,0,6,16,0,0,56,32,7,228,0,0,13,16,0,0,254, +132,1,0,0,32,2,96,0,3,96,0,1,128,1,0,1,6,0,1,24,0,0,3,97,0,0,12,128,1 +,0,0,16,0,14,128,65,32,0,0,6,192,128,16,0,0,2,64,0,0,12,128,1,32,0,0, +4,192,0,0,8,0,1,64,0,0,8,128,1,32,0,0,9,248,0,0,4,1,2,4,128,0,2,160, +96,0,0,64,132,132,48,64,2,4,68,24,0,0,33,96,0,0,12,0,0,8,145,0,15,128 +,17,0,0,66,38,66,0,0,132,32,1,0,0,34,12,128,65,0,0,34,1,8,72,16,17,0, +0,16,128,2,16,132,0,0,4,96,250,0,5,68,0,20,128,32,0,44,144,249,32,0,0 +,4,128,0,0,16,0,1,64,0,0,8,0,1,32,0,0,4,128,0,0,16,0,0,2,64,0,0,8,0,0 +,1,32,0,0,4,0,15,32,0,0,4,128,0,0,16,0,0,2,64,0,0,8,0,0,1,32,0,0,4, +128,0,0,16,0,0,2,64,0,0,8,0,0,1,32,0,0,4,0,0,136,252,0,74,152,255,36, +0,0,4,128,0,2,2,96,0,0,8,0,0,33,36,0,0,4,128,0,0,16,0,0,2,64,0,0,8,0, +0,1,32,0,17,32,0,0,4,128,0,0,16,0,0,2,64,0,0,8,0,0,1,32,0,0,4,128,0,0 +,16,0,0,2,64,0,0,8,0,0,1,32,0,0,4,0,0,233,249,12,8,0,3,130,0,3,4,0,16 +,1,0,23,32,0,1,128,0,16,59,250,0,0,64,0,8,64,0,0,32,0,0,4,128,0,0,16, +0,1,64,0,3,32,0,1,8,0,14,32,0,0,4,128,0,2,2,0,1,10,0,1,40,0,0,4,128,0 +,0,16,0,0,2,64,0,0,8,0,0,1,32,0,0,4,0,0,24,250,8,0,27,32,0,24,2,0,18, +178,253,0,0,128,4,144,16,2,64,2,72,0,0,1,34,129,36,0,0,4,128,0,0,16,0 +,0,2,72,0,0,8,32,1,36,0,1,2,0,14,32,0,0,4,128,0,0,16,66,2,0,0,32,8,0, +1,33,0,0,4,128,0,0,16,0,0,2,64,0,0,8,0,0,1,32,0,0,4,0,0,96,250,160,0, +12,66,96,8,0,1,33,0,1,2,0,3,32,0,18,16,0,2,32,0,1,8,128,0,2,1,0,2,128 +,0,0,2,2,4,64,0,2,2,0,1,96,251,0,17,1,0,2,4,0,22,64,64,0,0,6,0,1,34,2 +,0,5,24,0,1,1,0,1,128,0,4,1,4,4,16,248,0,6,8,0,1,4,1,0,9,128,0,2,176, +0,1,32,0,18,10,0,12,64,0,3,8,0,3,9,0,0,64,249,0,3,16,0,1,16,0,42,16,0 +,0,16,2,0,3,1,0,5,16,2,64,0,4,16,168,251,0,14,8,0,5,4,0,22,64,0,0,32, +0,9,2,0,1,1,0,7,8,0,2,64,255,0,12,32,0,1,128,0,0,16,2,0,6,128,0,16,32 +,0,2,136,17,0,7,32,0,1,16,0,0,16,2,0,0,64,0,1,1,0,0,32,0,1,192,249,0, +3,2,0,0,16,0,0,2,1,0,4,16,4,0,4,1,0,4,1,0,15,32,0,0,9,32,0,8,2,0,0,8, +16,0,4,128,0,2,32,0,0,16,0,0,56,248,32,0,3,20,0,0,2,0,1,2,0,0,1,4,0,0 +,9,32,0,3,64,0,0,16,0,0,1,32,0,20,8,0,8,128,0,4,64,0,7,32,0,0,240,252 +,32,0,2,3,21,64,2,136,0,0,2,0,0,1,8,0,0,13,48,0,0,128,2,0,0,192,0,0,8 +,0,0,1,160,128,2,6,0,14,64,128,8,48,0,2,128,2,0,3,36,0,0,104,21,0,1, +148,80,0,0,6,1,0,1,82,48,12,0,0,224,252,128,2,32,4,100,193,16,0,0,2,8 +,0,1,4,128,0,0,32,4,132,0,0,130,0,1,10,96,20,4,0,0,128,1,8,0,14,128, +64,16,32,128,0,3,1,0,1,128,8,4,16,8,0,0,16,16,34,0,0,1,2,0,1,12,64, +129,4,8,253,136,0,3,65,0,5,4,0,0,1,0,7,8,16,4,0,2,16,0,14,32,0,0,9,0, +5,2,0,4,8,16,0,3,64,0,4,128,0,0,128,0,0,249,0,1,4,160,0,0,16,128,0,0, +16,0,5,4,32,4,2,0,1,128,0,0,16,0,25,1,0,12,128,0,8,8,224,250,0,12,32, +4,0,2,144,0,26,4,5,128,0,2,2,0,1,8,0,3,32,0,3,64,64,0,1,1,32,0,0,1,0, +0,32,112,255,0,16,16,0,29,8,16,0,1,64,0,2,1,0,9,128,0,5,8,88,251,0,0, +2,64,0,2,1,32,0,0,4,0,1,8,0,6,32,2,0,0,128,8,16,0,23,8,0,5,1,0,6,1,0, +3,8,0,1,2,0,0,88,252,16,0,27,4,0,16,8,0,4,8,0,8,4,0,4,64,0,0,8,0,2,12 +,255,0,10,32,0,2,2,0,3,1,0,26,4,0,3,2,0,0,1,1,0,0,4,0,0,1,0,4,32,0,1, +192,0,0,16,0,0,128,0,0,32,254,16,0,14,16,8,0,0,1,0,1,128,1,0,36,16,0, +4,4,0,3,128,0,1,212,254,0,17,1,0,28,8,0,1,1,8,0,1,32,0,9,4,1,128,16,0 +,0,128,0,2,104,248,0,58,128,1,0,2,64,0,2,2,32,0,3,128,200,250,0,20, +192,0,5,32,0,17,64,64,128,0,10,64,0,7,16,0,3,96,252,0,0,1,0,3,16,0,20 +,32,0,17,16,0,1,4,0,8,2,32,0,2,1,0,2,1,0,1,2,64,0,0,136,250,0,5,16,0, +8,4,0,0,32,0,9,4,0,16,32,16,0,0,148,0,1,16,0,1,64,0,1,32,8,0,0,4,0,4, +2,8,0,2,32,0,0,112,253,64,64,0,12,128,0,4,128,8,0,35,4,0,3,2,0,4,32,2 +,0,0,128,0,0,88,251,0,46,2,0,0,1,0,9,2,0,6,4,0,5,216,252,0,47,128,0, +12,4,16,0,6,32,0,2,72,253,0,0,128,0,1,16,0,0,64,0,4,4,0,7,8,0,3,4,0,0 +,4,16,0,42,4,0,0,200,251,0,12,2,0,35,2,0,1,32,0,11,4,0,4,4,0,0,64,184 +,251,0,13,1,0,33,4,0,1,48,0,1,64,0,10,2,0,4,64,0,0,184,250,0,14,16,32 +,2,0,0,128,0,1,1,2,0,21,4,4,32,0,0,8,2,0,2,8,0,6,32,0,8,2,32,200,250, +0,3,2,0,6,16,0,2,32,0,0,4,64,0,2,2,0,21,128,0,3,128,0,0,36,0,1,16,0,5 +,2,0,7,64,0,1,32,254,0,3,1,0,42,64,1,0,1,1,0,4,65,0,2,8,8,0,3,132,136 +,16,16,0,2,64,251,4,96,0,1,4,0,16,1,0,4,64,0,21,64,0,6,128,0,0,132,0, +2,8,0,0,64,0,0,32,0,0,4,0,2,152,252,0,3,12,0,4,128,0,0,24,0,6,64,0,2, +1,0,2,16,0,26,64,0,6,128,0,1,8,0,6,128,251,16,0,0,2,0,9,64,0,30,96,0, +0,8,0,1,64,0,0,4,0,1,16,136,0,0,32,0,0,16,0,0,2,0,0,1,32,128,0,0,32,0 +,1,64,160,0,0,20,96,252,0,11,32,0,4,128,16,0,6,6,2,0,25,32,0,3,32,0,1 +,192,0,0,68,32,0,2,10,64,0,0,32,0,0,64,248,128,0,1,8,0,1,32,8,0,0,1,0 +,0,16,0,2,16,8,0,0,64,0,2,1,0,0,16,0,0,34,0,0,16,0,17,1,0,0,2,1,0,2,2 +,16,8,1,0,0,128,0,7,2,0,4,128,148,249,4,0,0,5,0,0,128,16,128,2,0,0, +128,8,0,1,2,0,0,4,0,2,64,0,0,128,0,2,1,8,0,1,32,0,14,32,0,12,64,0,8,8 +,0,4,32,253,64,0,0,5,21,0,0,84,192,6,128,80,10,32,0,0,8,3,12,16,20,32 +,128,0,0,192,0,1,32,1,76,64,8,32,0,14,32,128,160,0,0,21,130,34,0,0, +128,0,0,16,32,2,0,0,168,161,0,0,2,0,1,128,2,0,0,1,74,64,1,0,0,160,5, +184,250,0,0,64,0,0,44,0,0,138,18,64,4,153,64,68,13,160,96,0,0,5,2,128 +,0,0,8,0,0,2,32,2,64,129,72,0,0,8,0,16,128,0,0,2,33,32,16,0,1,5,0,0,4 +,0,0,8,33,0,0,132,64,128,16,0,1,10,0,0,9,128,64,1,0,0,120,250,0,0,64, +0,0,8,0,3,16,1,2,0,0,4,64,0,0,1,0,0,4,0,1,8,0,1,8,0,1,32,32,0,0,8,0, +17,128,0,0,4,64,0,4,8,0,4,128,0,6,32,128,0,1,184,248,0,2,16,0,0,16, +128,0,2,8,0,0,2,0,1,1,32,0,0,128,0,2,2,0,2,8,0,24,8,0,6,8,0,0,2,2,0,0 +,8,0,3,2,0,3,144,253,16,0,73,204,251,18,0,13,33,0,1,6,0,2,2,0,23,1,0, +2,128,0,7,128,0,1,2,0,1,8,0,1,16,0,0,4,64,0,0,128,28,254,0,1,8,16,0,0 +,16,0,1,68,0,9,128,8,0,0,64,0,1,1,0,23,2,16,0,5,16,0,4,64,16,0,0,128, +0,2,32,0,2,232,249,0,4,64,0,4,32,0,41,64,128,0,3,4,0,2,1,0,9,144,252, +8,0,14,64,0,5,4,0,27,1,0,7,16,0,5,1,0,5,144,251,0,7,16,0,4,1,0,1,4,0, +1,1,64,0,23,1,0,8,8,0,3,128,0,3,66,0,0,8,0,1,128,0,0,16,0,0,104,252,0 +,15,16,3,2,0,3,1,0,3,2,0,17,128,0,0,16,32,0,6,128,64,128,8,0,0,33,32, +0,0,8,0,2,4,2,0,0,16,8,184,255,0,12,128,0,8,4,0,20,128,0,3,64,64,0,8, +8,0,1,32,0,4,4,0,3,184,253,0,1,4,0,2,32,0,5,16,0,6,4,8,0,0,16,0,2,16, +8,0,27,64,4,0,3,128,0,2,16,0,5,168,254,0,4,8,0,5,4,4,0,7,64,64,0,1, +160,0,19,128,0,1,128,0,6,128,0,5,8,0,1,48,0,5,24,254,0,16,8,0,27,2,0, +2,1,0,10,8,0,0,2,0,6,4,0,1,200,251,0,1,1,4,0,9,64,0,0,8,0,1,32,0,30, +32,0,20,9,0,0,200,252,0,6,2,0,1,2,0,1,32,0,8,8,0,1,32,0,19,52,2,0,0, +208,0,0,130,0,1,8,0,0,9,0,2,128,2,16,136,0,0,64,3,104,0,0,33,32,0,0,1 +,0,0,16,253,0,46,32,32,0,0,192,128,0,0,8,0,2,4,2,0,2,4,0,3,3,96,0,1,4 +,0,2,112,250,0,7,192,3,0,2,128,1,0,8,32,0,0,96,0,19,48,8,0,0,128,64,8 +,0,2,32,7,0,2,128,5,64,64,0,0,192,3,96,32,4,128,0,0,1,0,0,16,252,0,7, +69,163,0,2,128,1,0,8,2,0,0,32,32,0,19,2,0,0,64,2,16,2,0,0,96,4,9,0,2, +128,2,128,0,1,64,3,96,4,72,1,5,0,1,104,250,0,6,64,4,16,1,0,2,72,0,8,2 +,0,1,8,2,0,17,176,8,0,0,192,0,4,36,8,0,3,35,2,24,0,1,3,96,8,128,1,16, +1,0,0,232,254,0,6,6,192,3,0,2,96,0,8,24,64,0,0,96,0,19,60,0,1,48,64, +30,8,0,0,120,0,0,5,0,3,4,240,0,1,128,3,24,0,0,15,224,1,0,1,16,248,0,7 +,4,0,4,64,0,11,128,0,18,48,8,0,0,128,0,0,8,0,1,96,0,0,4,0,3,4,64,0,2, +3,0,1,4,128,0,2,248,253,0,6,24,1,11,1,0,11,96,129,0,0,128,9,0,18,48,0 +,1,32,130,88,16,0,0,96,66,8,0,3,34,193,72,0,1,3,0,0,68,12,144,9,2,0,0 +,56,249,32,0,0,20,0,3,26,0,1,106,0,1,160,1,0,1,32,20,2,0,2,8,0,3,52,0 +,7,48,0,6,24,0,0,4,193,0,0,208,24,26,16,0,0,8,0,0,1,32,4,4,194,0,2,74 +,0,1,104,64,65,168,1,4,0,0,40,252,0,1,32,0,3,24,0,1,96,0,1,128,1,0,3, +128,0,7,48,0,7,12,0,6,6,0,3,192,0,0,24,0,5,128,0,4,16,16,0,0,96,0,2, +129,0,1,176,248,128,1,44,0,3,24,192,131,120,0,4,128,1,112,64,0,16,12, +0,6,6,0,0,16,128,1,128,0,0,16,0,2,32,11,96,0,0,16,128,5,0,1,24,0,2,16 +,4,128,129,0,1,192,249,8,128,20,0,3,24,64,35,104,0,4,128,0,0,16,4,0, +16,10,0,6,5,0,0,32,161,0,0,64,66,136,16,0,0,96,4,5,32,16,33,132,2,0,1 +,16,8,0,0,32,1,72,16,16,0,0,18,179,249,128,133,24,34,0,2,128,16,16,97 +,0,2,72,0,1,22,0,1,1,0,2,20,0,2,48,66,0,6,10,0,6,5,0,1,64,38,192,4,88 +,0,2,132,6,0,1,130,64,35,2,0,0,128,16,0,0,96,128,128,136,132,0,0,65, +113,248,96,0,0,36,0,3,6,192,3,112,0,1,96,0,1,128,7,49,0,3,24,0,3,60,0 +,17,60,128,7,49,128,6,16,0,0,120,0,0,9,96,0,0,60,0,0,4,0,1,6,0,1,120, +0,0,15,96,1,12,0,0,232,253,132,1,33,0,3,24,0,1,96,0,2,64,0,1,6,0,4,96 +,0,3,48,32,0,16,16,0,0,6,128,0,0,16,0,1,96,64,8,0,1,16,0,0,4,0,4,64,0 +,0,4,0,0,64,0,0,32,17,251,128,17,16,8,0,2,24,9,147,96,0,5,6,0,0,136,0 +,2,96,8,0,2,48,0,17,48,192,6,0,0,8,133,8,0,0,96,4,4,0,0,1,50,17,2,1,0 +,0,24,33,0,0,112,32,140,4,16,48,0,0,96,254,32,0,0,5,128,38,16,0,0,2,0 +,1,2,0,1,32,0,0,48,9,32,4,0,3,104,32,13,32,0,0,4,9,0,6,18,0,6,169,1,4 +,6,0,0,208,2,26,73,16,105,0,0,1,160,137,4,192,0,0,208,0,0,130,72,65, +104,12,69,160,32,52,0,0,176,248,0,3,6,4,0,1,4,0,5,48,0,6,96,0,0,12,0, +19,129,0,2,128,128,24,0,4,128,1,0,4,16,0,0,2,96,0,1,8,0,2,32,254,128, +65,44,0,0,6,1,0,1,200,131,0,2,96,0,0,60,128,1,0,4,96,0,0,15,96,0,1,8, +0,6,8,0,6,132,1,16,32,0,0,192,0,0,16,192,0,2,11,128,1,16,128,5,192,64 +,24,0,0,3,0,1,4,128,0,0,48,8,16,251,132,17,20,0,0,38,192,40,0,0,65,11 +,0,2,32,0,0,52,128,0,5,96,68,13,32,8,2,1,0,16,34,1,0,0,192,68,8,81,64 +,0,0,36,5,128,137,160,160,2,192,8,24,9,2,33,18,72,2,1,178,0,0,178,251 +,140,4,24,34,36,0,0,34,0,0,4,16,1,0,1,128,5,128,0,0,38,0,4,64,132,12, +0,0,4,0,0,10,0,6,16,0,6,136,136,128,0,1,192,4,153,16,8,2,64,6,128,17, +0,0,34,35,194,128,24,1,16,96,32,76,128,17,48,66,0,0,251,96,128,36,128 +,3,50,0,0,6,192,3,0,2,224,129,12,136,7,1,0,3,24,0,0,14,96,128,12,0,7, +8,0,6,100,1,60,32,0,0,240,0,0,6,192,0,0,120,0,0,9,96,1,61,0,0,4,240,0 +,0,30,196,0,0,122,0,0,15,226,65,60,0,0,248,249,136,0,0,32,0,0,6,192, +32,0,0,4,0,3,128,1,0,1,6,0,6,12,0,2,8,0,6,2,0,6,1,64,16,0,1,192,0,0, +16,0,1,98,32,8,0,0,1,17,0,0,4,192,0,0,24,8,0,0,65,0,0,12,128,1,48,0,0 +,17,253,0,0,80,144,8,33,196,8,16,0,0,131,0,2,128,1,0,1,6,0,4,64,129, +12,128,17,162,0,7,8,0,6,4,0,0,48,18,0,0,192,136,64,32,34,96,4,4,64,4, +48,33,18,193,68,152,0,0,11,112,66,12,130,73,176,16,16,254,32,81,4,128 +,6,16,24,10,0,0,16,2,0,0,1,32,4,0,1,32,20,0,0,2,64,0,0,40,65,0,2,52,0 +,7,2,0,6,33,33,20,128,6,208,72,2,96,3,0,1,1,160,72,20,132,0,0,208,0,0 +,26,65,8,8,33,13,160,9,53,0,0,248,254,0,3,6,4,0,0,16,0,5,64,0,12,48,0 +,7,4,0,6,2,0,0,32,16,6,192,0,2,2,1,0,2,1,0,4,16,16,2,34,0,0,8,4,1,0,1 +,152,250,0,0,1,45,0,0,6,48,128,22,192,0,3,98,0,1,128,1,0,0,128,6,192, +0,0,96,0,3,48,0,7,4,0,6,2,129,48,128,7,128,0,0,8,16,3,0,1,11,128,65, +16,128,5,0,1,24,0,0,3,0,1,12,132,1,0,1,144,250,8,8,20,0,0,66,18,8,10, +64,0,3,32,16,2,128,0,1,4,2,64,0,0,32,17,0,2,48,0,7,2,0,6,129,0,0,32, +144,6,64,2,17,0,1,4,0,0,5,0,1,32,136,2,0,0,20,64,4,11,97,132,128,0,0, +32,0,0,4,113,255,0,0,32,24,34,66,1,4,141,8,147,0,1,32,2,72,0,1,70,0,0 +,72,152,0,0,163,0,0,4,0,2,128,16,0,6,32,0,6,144,8,2,18,6,192,0,0,128, +16,161,0,1,6,128,17,48,33,35,2,130,88,32,131,64,36,132,130,5,128,32, +131,251,96,0,0,36,128,7,48,0,0,16,192,3,0,1,3,96,1,0,0,128,7,50,0,0, +30,208,3,24,16,0,2,12,0,7,16,0,6,232,1,12,0,0,7,48,64,30,192,2,0,1,9, +224,1,61,0,0,4,48,0,0,30,192,3,56,0,0,11,224,65,60,0,0,232,250,132,1, +32,0,1,1,32,16,0,0,3,0,1,12,2,64,0,1,6,0,1,24,0,0,3,64,32,0,2,48,128, +4,0,5,64,2,0,5,128,1,1,32,6,128,0,0,8,0,0,128,0,1,8,128,129,48,0,0,4, +0,1,24,4,3,98,64,0,0,130,65,48,16,202,251,128,65,16,10,22,128,0,0,8,5 +,3,0,1,64,32,0,2,6,192,72,26,0,0,3,48,0,3,48,64,0,14,128,9,48,2,6,32, +130,88,32,32,0,1,4,128,1,176,8,66,1,64,24,0,0,35,96,0,0,128,128,1,48, +2,216,253,160,9,4,0,1,208,68,2,0,0,16,2,0,0,13,32,73,4,17,0,0,20,0,0, +26,0,1,72,8,0,0,8,4,20,0,0,2,0,5,6,1,0,5,3,0,0,4,145,38,208,128,10,66 +,19,0,1,1,160,9,2,145,36,210,0,0,26,65,65,104,0,0,13,161,17,4,2,124, +254,128,129,0,2,192,0,5,12,128,0,5,24,0,1,32,0,2,64,32,0,16,128,32,0, +0,6,196,0,2,3,1,0,1,128,1,0,1,2,192,0,0,16,16,2,64,32,12,128,129,0,0, +8,16,255,128,0,0,44,0,1,128,32,22,192,0,2,12,224,0,1,128,1,48,0,0,30, +0,1,96,64,3,96,0,0,44,32,4,0,5,10,2,0,5,101,0,0,48,32,2,128,128,8,0,0 +,2,0,1,11,128,129,12,128,5,240,0,0,24,0,1,96,0,0,8,0,0,1,12,16,104, +254,136,17,22,0,1,192,0,0,10,64,0,2,12,32,1,0,0,132,0,0,16,0,0,26,0,1 +,96,0,0,1,32,0,0,148,0,0,2,0,5,4,1,0,5,34,0,0,48,0,0,38,68,2,144,4,9, +4,0,0,5,128,9,4,128,2,208,0,0,144,8,0,0,1,128,36,132,4,6,0,0,115,249, +128,49,24,34,0,0,192,8,140,8,139,0,1,32,4,1,128,32,32,194,40,24,0,1, +96,2,44,132,133,24,129,0,6,96,0,6,144,17,48,1,38,200,4,24,1,67,0,1,6, +128,1,48,2,5,192,0,0,8,2,33,32,20,12,128,1,0,0,2,17,251,224,0,0,36,0, +1,240,128,16,192,3,0,1,3,160,0,0,12,128,1,240,0,0,28,0,1,24,32,15,224 +,1,32,8,2,0,6,1,0,5,224,129,60,136,7,48,128,30,200,0,2,9,96,0,0,61,16 +,4,224,0,0,30,192,3,90,0,0,3,104,0,0,13,32,88,250,132,1,32,8,0,0,192, +128,16,4,3,0,2,128,0,1,32,6,192,0,0,24,0,1,96,0,0,12,128,1,40,136,0,6 +,64,0,6,128,1,48,0,0,6,128,0,0,24,0,0,2,0,1,8,0,0,1,48,0,0,4,192,0,0, +24,0,1,1,0,0,8,8,1,0,0,32,80,253,64,8,18,2,0,0,192,8,8,1,3,0,2,32,1, +32,0,0,6,209,0,0,24,0,1,96,33,13,128,1,16,2,1,0,5,128,0,6,128,1,176, +64,6,4,8,25,133,16,4,0,0,4,192,4,50,0,0,4,208,0,0,24,8,19,0,0,64,66, +64,144,36,2,148,251,176,9,36,162,66,212,4,2,0,0,16,10,34,68,34,0,0,4, +17,0,0,4,0,0,2,64,0,0,8,0,0,13,0,1,4,0,0,1,0,5,128,0,6,32,0,0,20,132, +0,0,144,16,26,65,35,9,0,0,1,32,132,52,2,0,0,16,0,0,26,64,8,104,0,0,77 +,168,1,5,16,156,254,128,129,16,0,0,4,192,32,0,4,8,0,10,16,12,0,0,64,0 +,0,128,0,6,64,0,13,16,16,3,0,2,128,1,32,32,0,4,2,98,0,0,12,128,1,0,1, +168,255,128,1,44,128,3,112,0,0,22,192,0,0,24,32,11,96,1,12,128,7,0,1, +6,192,0,0,24,32,0,0,96,0,0,44,32,8,0,6,4,0,5,96,0,0,16,128,1,128,0,0, +24,0,0,2,0,0,32,11,0,0,1,48,32,0,2,24,0,0,3,98,0,0,8,0,0,1,13,0,0,152 +,250,12,17,22,128,4,144,132,10,64,0,0,8,0,0,133,164,0,0,4,132,22,1,0, +0,2,64,0,0,104,4,0,0,32,0,0,148,0,0,4,0,6,2,0,5,32,0,0,32,136,0,0,64, +64,0,0,32,1,98,4,5,128,4,1,1,0,2,24,17,3,96,33,68,144,4,132,64,163, +249,4,145,40,0,0,2,192,34,140,8,99,0,0,65,6,192,0,0,128,32,32,2,0,0, +24,1,11,32,20,32,128,133,24,1,0,14,128,73,176,32,22,66,40,152,4,35,2, +8,6,128,1,48,1,0,0,192,130,152,4,11,96,8,140,128,17,128,0,0,121,249, +224,1,36,128,5,240,0,0,16,192,3,24,0,0,8,32,1,12,128,7,0,1,30,200,3, +90,0,0,3,232,1,32,8,0,14,224,1,60,128,7,240,0,0,30,192,0,0,120,0,0,9, +224,1,61,8,0,0,240,0,0,30,192,131,24,0,0,3,104,0,0,13,32,10,249,4,0,0 +,32,0,0,2,192,32,16,4,3,0,0,64,10,0,0,1,0,0,32,0,0,1,0,0,24,0,0,3,96, +16,0,0,128,1,40,136,1,0,5,192,0,6,128,1,48,0,0,6,192,128,24,4,2,96,64 +,8,128,1,48,8,0,0,192,0,0,24,0,0,3,0,0,64,8,4,129,0,1,8,248,128,1,34, +0,0,4,128,8,72,0,0,3,72,0,0,4,160,0,0,32,0,0,70,0,1,26,0,0,3,64,1,128 +,136,1,144,0,15,160,1,176,8,6,192,0,0,24,0,0,16,98,1,4,128,5,50,0,1, +192,0,0,24,32,67,0,0,1,0,2,32,34,52,254,160,17,5,130,66,18,66,2,0,1, +10,0,0,64,34,0,0,52,0,1,4,32,2,64,3,104,0,0,13,0,1,4,128,2,0,5,64,1,0 +,5,160,1,52,128,0,0,208,0,0,90,64,11,8,0,0,1,160,49,180,128,0,0,16,2, +26,73,8,104,0,0,13,161,17,4,0,0,84,249,128,1,16,8,4,64,0,8,48,16,0,4, +3,96,0,0,12,0,3,2,0,6,1,0,5,128,1,49,32,0,0,192,0,0,24,8,3,2,0,1,128, +1,48,16,0,1,128,24,0,0,2,98,64,12,128,129,16,32,200,249,128,129,0,0, +136,3,0,0,128,22,192,3,0,1,11,96,1,32,160,7,48,0,0,6,192,3,0,4,44,32, +0,15,1,32,128,1,192,0,0,16,8,2,0,0,32,11,128,1,32,16,0,0,48,0,0,16,0, +0,3,66,0,0,8,0,0,1,0,1,152,255,132,17,0,0,130,4,0,1,10,64,67,0,1,133, +164,0,0,16,129,70,17,0,0,2,64,3,0,4,148,0,7,10,0,6,128,16,17,194,0,1, +34,136,0,0,1,97,4,5,128,145,16,1,32,17,66,72,8,11,32,32,36,132,4,2,16 +,155,250,12,9,2,1,2,0,0,16,140,8,16,1,130,6,192,0,0,48,4,32,194,66, +152,4,3,0,0,33,12,0,1,24,1,0,14,132,5,50,16,6,194,8,88,0,0,67,0,0,128 +,6,128,1,48,0,0,16,0,1,25,17,147,96,1,140,128,129,0,0,64,41,250,224,0 +,0,12,136,5,48,0,0,16,192,3,24,0,0,8,32,1,12,128,7,240,0,0,30,128,3, +24,0,0,15,4,0,0,32,8,0,14,96,0,0,12,128,7,240,128,6,208,0,0,120,0,0,9 +,96,0,0,13,144,1,177,0,0,6,192,3,24,64,3,100,0,0,12,0,0,8,251,136,1,0 +,1,2,0,1,16,4,0,0,96,0,0,10,0,0,1,32,0,1,193,0,0,24,0,0,3,0,1,12,4,0, +0,40,8,0,15,1,32,0,0,6,0,1,16,0,0,2,96,0,0,8,0,0,1,32,0,3,16,0,0,3,64 +,0,0,8,0,0,1,0,1,105,250,64,144,136,8,4,32,66,8,0,0,139,96,8,4,160,0, +0,8,16,22,192,0,0,26,64,3,0,0,128,76,0,1,16,0,15,64,144,136,144,6,0,0 +,4,133,136,16,100,32,4,192,4,138,64,6,1,0,0,5,2,11,20,36,34,72,132,8, +5,88,255,32,1,4,137,194,16,136,146,8,16,10,0,0,72,34,1,132,0,1,20,136 +,2,64,0,0,104,0,0,1,1,0,0,36,1,0,14,160,49,52,134,6,208,0,0,154,96,19 +,12,0,0,9,32,16,52,129,6,16,0,0,90,80,65,104,130,77,168,1,5,2,216,250 +,128,128,16,0,0,4,64,0,0,8,0,3,4,128,0,0,48,16,0,10,16,8,0,6,8,0,6, +132,1,48,0,0,6,192,0,0,24,0,0,3,0,1,4,128,129,48,32,6,0,1,24,0,0,2,96 +,0,0,12,128,1,16,16,40,250,0,2,128,3,0,1,22,192,0,2,11,96,1,0,0,144,7 +,112,0,0,6,192,0,0,96,32,3,0,1,44,32,0,15,1,32,32,6,192,0,0,16,8,2,0, +0,32,11,0,0,1,32,16,6,0,1,16,0,1,64,32,8,0,0,1,1,0,0,32,253,132,1,129 +,136,4,0,0,66,10,64,0,2,133,164,0,0,16,129,6,18,66,2,64,0,1,4,33,16,0 +,0,148,0,0,4,0,5,16,2,0,5,136,132,16,1,6,0,0,34,72,0,0,33,98,4,5,128, +40,144,0,0,6,0,1,136,32,0,0,33,1,68,144,4,0,0,5,138,248,140,9,130,8,2 +,0,0,2,20,0,0,19,0,1,6,192,0,0,48,66,32,2,0,0,89,8,35,97,20,32,0,1,40 +,0,0,2,0,5,16,1,0,5,136,1,178,16,16,196,68,152,16,35,2,12,6,128,1,48, +34,0,0,192,130,88,8,33,100,66,44,132,5,0,1,240,250,224,1,12,128,5,48, +128,16,192,131,24,64,8,32,1,60,128,7,48,0,0,30,192,3,120,0,0,11,8,0,0 +,32,0,0,7,0,5,144,3,0,5,104,0,0,12,128,1,240,0,0,6,192,0,0,120,0,0,9, +224,1,13,128,1,244,0,0,6,192,3,24,0,0,3,96,0,0,13,16,56,249,136,1,0,1 +,2,0,1,16,0,0,3,96,32,6,128,0,0,32,0,1,1,0,0,24,0,0,3,0,0,16,0,2,40, +128,5,0,5,208,2,0,5,8,129,32,0,3,16,0,0,2,96,64,4,128,1,32,0,0,6,196, +0,0,16,0,1,65,0,0,8,0,0,1,0,1,193,250,128,145,0,0,10,4,0,0,20,16,0,0, +3,96,2,8,32,1,144,64,6,0,0,136,24,64,3,96,1,129,8,0,0,32,0,0,4,0,5,8, +2,0,5,4,4,0,0,34,0,1,72,64,32,16,98,0,0,8,128,5,2,33,70,192,0,0,128, +16,35,0,0,129,128,16,16,1,65,104,252,0,29,4,0,6,2,0,35,248,251,32,0,0 +,4,128,0,0,16,0,0,2,64,0,2,1,0,1,4,128,0,2,2,0,1,8,0,1,32,0,0,4,0,7, +16,0,6,8,0,0,4,128,0,0,16,0,0,2,64,0,0,8,0,0,1,32,0,0,4,128,0,2,2,64, +0,0,8,0,0,1,32,0,2,72,249,0,63,128,0,8,16,144,254,36,0,0,4,128,0,0,16 +,0,0,2,64,0,0,8,32,1,32,144,4,128,0,0,16,20,2,73,8,9,0,0,129,36,0,0,4 +,0,15,32,0,0,5,128,64,18,0,0,2,64,0,0,8,0,0,1,32,0,0,4,128,0,0,16,8,2 +,64,0,0,8,0,0,1,32,0,0,132,0,0,105,249,12,0,6,1,0,1,8,128,16,0,6,16,0 +,2,64,4,0,1,2,0,18,32,2,0,11,1,4,0,9,195,250,32,0,6,4,0,3,32,0,6,64,0 +,0,1,0,4,8,0,16,4,0,1,16,0,0,2,0,1,8,0,7,128,2,0,1,9,0,0,1,32,0,2,120 +,253,8,0,14,32,0,1,128,0,26,1,0,6,1,0,1,4,0,0,1,0,2,32,0,2,2,0,4,32, +154,251,32,0,0,4,192,160,16,0,0,1,96,0,0,12,36,65,40,144,4,130,0,0,24 +,8,2,97,32,9,66,1,48,144,0,0,33,0,14,32,16,4,128,16,18,0,0,2,64,8,8,0 +,0,33,32,16,4,18,0,0,18,2,2,64,16,8,0,0,1,32,0,0,4,1,160,252,0,1,1,0, +3,16,0,14,64,0,29,4,0,9,4,66,0,0,128,0,0,16,0,3,96,253,0,30,2,0,1,8,0 +,3,1,0,1,4,0,7,3,0,3,64,0,1,64,0,7,64,0,1,1,0,2,96,255,0,0,128,0,13, +64,0,2,32,0,6,1,4,0,14,32,128,4,0,1,16,16,0,2,128,0,9,176,8,0,2,8,32, +32,0,0,88,251,0,0,4,0,3,64,0,8,32,0,5,64,0,31,33,0,3,4,0,2,4,0,3,1,0, +1,132,64,160,250,0,9,16,0,3,12,0,8,2,0,4,2,0,1,8,0,3,1,0,1,4,0,3,64,0 +,1,1,0,1,64,0,5,128,0,3,32,0,0,4,4,16,0,4,216,249,0,9,16,0,43,1,0,4, +16,130,0,9,8,0,0,184,254,0,1,1,0,1,64,0,1,80,0,0,64,32,0,0,2,0,4,128, +2,0,1,32,0,3,16,0,15,128,0,3,1,128,2,0,3,4,2,0,0,4,32,0,0,65,128,2, +128,0,1,64,4,34,32,0,1,120,252,0,2,4,2,4,0,0,2,0,0,1,2,0,0,1,132,64, +16,32,0,5,16,64,0,0,128,64,4,32,0,19,16,0,1,16,0,0,32,16,0,6,32,0,0, +72,128,0,1,8,8,0,2,96,253,0,0,131,0,0,160,0,0,36,0,0,2,200,0,0,18,32, +1,44,0,0,5,32,0,1,64,4,0,1,24,64,0,0,32,0,0,13,32,0,14,64,40,0,2,18, +64,84,16,0,0,8,64,106,5,5,8,16,2,170,194,4,208,0,0,2,32,3,76,128,162, +0,0,160,251,128,0,1,34,4,0,0,16,24,0,0,169,160,0,0,68,34,100,160,4, +192,149,0,0,8,0,0,1,72,17,0,0,1,64,0,16,128,8,0,0,4,170,128,32,72,2, +65,64,8,9,11,64,16,0,0,28,67,42,18,4,3,0,0,24,72,194,224,48,4,240,252 +,32,0,5,2,128,128,32,0,0,1,4,128,0,2,4,0,0,8,0,0,1,0,0,16,0,1,128,0, +16,128,0,2,2,0,0,64,2,0,0,1,0,2,2,64,4,0,1,17,32,0,0,136,0,1,64,0,0, +40,0,0,5,0,0,160,248,0,2,128,0,1,128,8,0,5,64,4,32,0,0,65,0,3,32,0,1, +4,0,20,32,0,0,17,0,1,4,0,0,65,16,4,8,0,2,2,0,1,2,0,0,1,0,0,8,1,0,0,32 +,16,136,168,254,0,45,65,0,0,32,128,0,1,66,0,0,2,0,4,4,0,1,16,0,5,33,0 +,0,1,0,1,240,248,0,9,32,0,3,16,0,31,8,0,2,64,0,0,1,0,4,2,8,0,4,64,0,1 +,32,0,0,4,0,1,120,248,0,9,128,0,39,2,0,2,2,0,4,64,0,2,16,0,0,192,0,2, +128,4,0,0,32,112,248,0,0,2,128,32,0,1,128,1,16,0,0,2,128,0,0,4,0,1,4, +0,0,4,0,4,32,1,0,2,16,0,14,128,128,0,0,16,0,0,8,64,0,11,16,0,8,16,16, +251,0,19,64,4,0,2,32,0,20,2,0,6,4,0,1,32,0,4,2,0,3,96,0,4,152,249,0, +10,1,0,2,128,0,5,4,0,23,64,0,4,8,64,0,0,8,0,1,1,0,5,4,0,0,32,0,1,4, +128,0,0,4,152,249,0,47,64,0,1,32,0,1,128,0,3,128,0,7,32,0,0,4,0,2,4, +176,249,32,0,2,16,0,26,1,0,1,32,1,0,1,128,0,2,144,0,28,1,128,184,253, +0,5,64,0,4,8,0,9,32,0,3,16,0,17,128,4,0,0,2,0,6,64,1,0,7,8,0,2,2,64,0 +,0,152,250,128,0,2,1,0,3,64,0,0,32,0,4,128,0,3,128,0,22,1,1,4,2,160,0 +,3,2,0,3,16,0,1,32,0,0,2,16,0,1,65,4,128,0,1,32,216,252,0,0,2,0,21,8, +0,7,1,0,2,1,0,1,128,0,2,128,0,1,40,0,3,4,16,1,0,1,4,0,0,64,8,32,0,1,1 +,0,3,8,8,64,0,0,17,0,0,104,252,0,1,1,0,11,4,0,1,128,0,1,32,0,4,1,0,26 +,40,0,1,128,0,3,128,0,0,64,0,6,16,0,0,72,253,0,4,64,0,11,32,0,6,80,0, +3,16,0,2,16,0,2,8,0,2,8,0,5,64,0,22,64,108,250,0,21,2,0,1,4,0,18,64,0 +,0,16,64,0,13,64,0,0,8,64,130,0,5,128,152,250,0,4,16,0,3,8,0,36,16,0, +3,8,0,3,128,0,1,16,0,3,8,0,7,144,255,0,5,16,0,6,1,32,0,32,4,0,13,32,0 +,6,32,0,1,184,249,0,51,16,0,9,128,16,0,9,24,255,0,1,2,0,6,8,0,6,32,0, +11,32,0,4,1,0,0,16,0,3,128,0,2,32,0,8,64,0,1,32,0,8,8,0,2,104,250,16, +0,1,128,0,10,64,0,18,64,0,10,1,0,6,1,0,14,4,128,0,1,254,252,0,2,128,0 +,1,32,0,38,2,0,2,2,0,0,1,4,4,4,0,6,18,1,32,0,0,4,128,144,16,16,2,0,2, +251,0,14,128,0,0,8,0,5,16,0,0,32,0,21,3,128,0,0,32,0,6,2,0,9,32,0,0, +128,0,0,8,252,0,8,2,0,4,2,0,2,2,0,2,24,0,0,16,0,1,2,0,17,8,0,5,8,0,4, +128,0,14,255,0,0,5,0,15,128,162,0,5,2,0,3,128,0,2,128,0,2,64,0,2,64,0 +,0,128,0,13,1,0,2,128,2,0,7,8,168,255,0,25,2,0,1,128,0,2,2,0,2,64,0,2 +,1,0,4,32,0,3,20,128,0,4,128,33,0,2,128,0,4,2,64,1,0,0,8,248,248,0,1, +16,0,0,128,0,1,16,0,0,1,32,0,1,65,0,4,128,8,0,0,128,0,0,16,0,0,2,64, +16,0,3,4,0,0,32,0,8,32,0,1,128,0,0,16,0,0,4,80,0,0,32,8,0,2,4,8,0,0, +65,32,0,0,16,0,0,1,0,1,8,0,0,4,32,104,253,0,7,4,128,16,0,3,4,8,0,1,32 +,0,4,1,8,0,0,1,0,14,32,0,2,16,2,0,0,128,0,4,4,2,0,0,1,128,0,3,2,1,0,0 +,32,0,3,8,44,248,0,1,8,0,1,2,0,0,4,144,0,0,26,0,0,64,69,40,20,32,0,1, +212,4,0,0,10,1,32,105,13,128,9,0,3,16,0,0,128,0,7,16,64,0,1,166,161, +32,128,4,136,0,0,16,32,105,9,0,0,9,144,162,162,66,0,0,88,0,0,1,64,0,0 +,4,0,0,168,48,144,255,0,0,64,16,0,0,64,129,0,0,20,4,113,74,16,68,32, +177,34,5,6,160,0,1,128,152,32,2,72,131,130,34,12,0,3,4,64,48,0,3,8,2, +96,24,0,1,1,136,134,64,16,0,0,20,128,32,8,9,11,0,1,168,72,65,144,0,0, +44,192,32,8,20,0,0,80,0,0,32,128,253,0,0,32,4,0,1,1,0,1,16,1,0,0,64,2 +,0,3,2,0,3,128,32,0,1,130,0,1,8,0,3,4,128,64,0,4,2,64,8,0,2,144,0,0, +64,0,1,16,0,0,34,0,1,2,0,1,32,0,0,17,0,1,8,128,64,0,0,4,0,0,64,0,1,32 +,255,0,4,16,0,0,8,0,0,128,8,0,1,128,128,4,16,4,64,0,5,4,8,0,0,8,4,0,5 +,64,0,3,2,0,0,16,32,0,3,2,1,32,0,3,16,4,2,0,4,32,0,2,2,64,0,4,192,251 +,160,0,8,64,0,39,64,0,2,8,0,16,8,0,0,56,251,0,0,32,0,15,16,0,31,32,0, +0,16,128,0,13,32,0,0,2,0,2,8,252,0,4,1,0,2,8,0,1,4,0,3,16,0,4,24,128, +0,5,32,0,2,32,0,2,16,0,2,16,0,1,4,0,3,1,0,11,32,0,0,4,0,0,65,0,1,2,0, +2,160,253,0,12,8,0,9,64,0,2,128,32,0,16,6,0,3,34,2,0,5,4,0,5,9,16,8,0 +,0,32,0,0,64,0,0,184,255,2,0,9,8,0,3,4,0,0,64,0,5,4,128,0,2,16,0,1,64 +,0,3,8,0,1,32,0,3,2,0,3,128,0,1,64,0,0,8,0,2,64,0,11,4,16,100,252,0,4 +,130,0,19,8,0,17,32,0,3,16,0,13,16,0,1,8,0,0,8,0,3,152,255,0,13,1,0,4 +,16,0,0,2,0,1,8,0,0,1,0,14,128,0,2,16,8,4,0,1,8,32,0,1,64,0,2,48,8,0, +2,8,0,2,128,0,1,64,0,1,96,254,0,4,16,0,12,16,0,25,32,0,2,64,0,1,96,0, +4,32,64,0,4,8,0,4,64,32,0,0,128,255,0,7,64,0,10,8,0,31,4,0,7,8,0,3,1, +16,1,0,4,200,250,0,4,64,0,0,8,2,1,0,4,64,0,0,2,0,0,32,0,0,128,0,0,32, +1,0,4,2,0,1,8,0,3,1,0,1,4,0,4,128,0,17,34,0,0,2,0,5,32,251,0,3,4,0,46 +,1,0,1,64,1,0,1,34,0,12,2,0,0,232,254,64,1,0,3,2,0,47,16,0,1,32,2,0,3 +,2,0,9,232,253,0,6,2,0,2,2,0,7,26,64,0,4,8,132,0,17,20,128,0,0,16,40, +0,4,5,0,1,4,128,32,209,0,1,3,0,1,32,128,1,0,0,20,0,0,112,252,0,10,32, +0,7,24,0,5,128,0,0,16,0,16,32,0,8,8,0,4,192,0,8,32,0,0,112,253,0,9,24 +,0,8,24,0,0,128,0,2,96,0,19,44,0,2,32,0,4,11,0,4,1,0,0,6,0,1,24,0,0,3 +,0,1,44,0,0,8,253,0,6,64,32,0,0,8,0,8,24,0,0,16,0,2,32,0,0,32,64,0,16 +,20,0,2,2,0,4,5,0,1,128,32,32,0,1,2,0,1,8,0,0,1,0,1,20,18,224,254,0,7 +,8,0,0,96,33,0,9,8,2,0,1,128,73,0,0,10,0,16,24,66,0,1,36,0,4,6,2,0,1, +1,64,1,130,88,4,0,0,96,4,44,0,1,24,1,232,251,0,6,6,0,1,120,0,8,6,200, +0,3,224,1,28,0,17,32,128,1,180,0,5,9,0,1,60,144,1,48,0,0,30,0,1,120, +16,15,2,0,0,36,32,32,253,0,9,96,0,14,128,1,16,16,0,16,32,0,0,6,0,6,8, +0,4,1,32,24,0,1,96,0,0,12,0,1,40,0,0,232,254,0,6,152,2,0,0,96,0,10,19 +,2,0,1,128,1,16,0,17,16,9,70,4,34,0,4,68,2,0,1,65,20,0,1,24,0,1,96,0, +0,12,0,1,16,9,96,250,0,1,4,0,7,2,0,2,4,128,0,1,2,130,72,0,0,4,1,77,16 +,0,0,4,34,0,16,4,0,1,16,32,2,65,19,0,1,1,32,0,1,128,0,0,208,68,0,2,1, +32,128,1,0,0,4,0,0,56,253,0,10,32,0,6,64,0,3,32,0,27,16,3,1,0,6,192,0 +,1,8,0,8,250,0,9,24,0,4,8,0,0,49,0,0,24,0,1,24,0,3,48,0,17,44,0,1,64, +0,1,4,1,0,1,11,0,4,129,0,0,30,192,0,0,24,0,0,3,0,1,44,0,0,168,252,8,0 +,1,4,0,5,8,0,3,128,0,1,16,4,145,32,8,12,130,64,8,0,0,128,16,0,16,20,0 +,2,128,0,0,1,3,1,0,0,5,0,1,1,0,0,32,192,2,91,68,0,0,8,0,0,1,0,1,20,18 +,33,251,0,9,96,0,4,8,16,1,4,128,4,33,4,65,4,1,0,0,32,8,0,16,24,66,0,1 +,2,0,0,5,2,0,1,6,130,17,1,0,0,16,193,130,128,0,0,11,96,1,12,0,1,24,1, +11,250,0,1,12,32,0,5,120,16,0,2,12,128,7,32,64,6,192,0,0,112,0,0,15,0 +,1,12,0,17,32,0,1,48,128,6,192,3,1,0,0,9,224,1,0,0,128,1,240,0,0,30, +200,131,120,16,15,2,0,0,36,32,248,253,4,0,0,48,0,6,96,0,4,8,0,0,1,0,1 +,8,0,1,32,4,0,1,32,0,17,32,0,2,64,0,1,2,0,1,8,0,4,193,0,1,4,3,96,0,0, +12,0,1,40,0,0,210,253,0,2,65,0,5,96,0,3,48,0,0,32,208,68,128,0,0,80,0 +,0,4,8,16,0,0,48,33,0,16,16,8,0,1,4,8,5,10,1,0,0,4,130,81,0,1,6,192, +136,88,0,0,3,96,0,0,12,0,1,16,8,96,251,0,1,128,128,6,80,0,0,26,64,8,4 +,2,1,32,68,52,128,0,2,2,64,0,0,40,4,13,0,1,4,34,0,14,32,8,4,0,2,8,27, +64,1,105,0,0,1,160,1,0,0,128,6,17,16,0,2,1,32,128,161,0,0,36,1,96,254 +,0,2,16,6,128,0,4,32,0,2,48,0,6,96,64,12,0,1,48,0,16,64,0,7,96,0,5,6, +0,2,8,0,4,1,16,32,128,250,0,1,60,0,1,176,0,3,24,0,0,3,0,0,64,0,2,1,0, +3,96,0,1,8,0,18,64,44,0,1,48,0,0,24,4,1,96,0,0,11,224,1,0,1,6,49,0,0, +30,192,0,0,24,0,0,3,96,129,44,0,0,88,251,4,0,0,4,65,0,0,80,0,0,64,16, +80,8,0,0,1,0,0,16,48,18,0,2,128,32,128,96,130,44,0,1,128,16,0,15,16, +20,0,1,16,0,0,64,0,0,34,100,0,0,5,160,69,0,1,22,16,136,26,69,0,0,8,0, +0,1,160,0,0,20,0,0,226,253,12,0,3,96,8,1,0,0,32,100,4,76,0,0,8,49,2, +16,1,0,1,17,8,98,65,12,16,0,0,176,8,0,15,80,24,66,0,0,192,36,64,0,0, +131,0,0,68,6,2,8,0,1,68,0,0,132,128,0,0,35,98,2,76,192,0,0,40,1,184, +251,0,1,8,144,1,132,0,0,6,200,0,0,120,16,14,98,0,0,60,144,1,0,1,30, +192,0,0,24,0,0,15,0,1,28,0,15,96,0,0,32,0,1,240,0,0,6,208,3,24,0,0,9, +192,129,0,0,128,1,52,0,0,30,200,3,120,16,15,34,1,36,16,48,252,8,0,1, +32,0,0,128,0,2,130,96,0,0,12,0,0,64,48,0,0,6,1,0,0,24,8,0,0,96,32,12, +8,0,18,64,32,0,1,192,0,2,3,0,1,8,32,0,0,1,0,1,1,0,2,3,96,0,0,12,64,1, +32,0,0,41,253,0,1,128,0,0,16,72,34,0,0,16,0,0,96,0,0,12,128,8,48,34, +32,0,1,24,1,19,114,4,76,0,1,16,65,0,14,128,4,144,8,0,0,192,0,0,24,16, +83,0,1,36,130,9,0,1,4,128,2,153,4,3,96,0,0,12,128,0,0,32,0,0,40,253, +32,0,0,4,128,2,18,0,4,2,1,32,4,4,128,194,192,136,2,64,0,0,72,128,1,32 +,32,36,66,0,15,16,6,128,2,16,0,0,1,97,35,2,132,1,32,0,0,52,128,6,16, +64,0,1,8,1,32,128,33,1,4,34,124,252,0,3,4,0,5,32,0,1,128,0,1,4,0,4,96 +,0,24,4,0,3,3,0,4,48,0,0,6,0,2,8,0,3,128,0,2,176,248,0,2,128,3,176,0, +3,24,0,0,3,0,1,48,0,1,240,0,1,4,128,64,0,1,8,64,48,0,15,96,0,0,44,128 +,5,0,1,6,0,1,24,0,0,11,0,0,64,48,0,1,48,64,30,192,131,24,0,0,3,96,129 +,48,0,0,136,249,8,0,1,128,4,80,0,3,8,0,0,1,0,0,8,50,0,0,32,18,64,64,0 +,0,16,96,34,64,0,1,160,8,0,14,32,0,0,20,128,66,2,36,2,0,0,35,9,0,0,5, +0,1,48,16,0,0,208,8,26,96,19,8,0,0,1,160,0,1,66,11,254,128,1,0,0,1,2, +96,8,1,0,1,96,1,44,2,32,0,0,2,34,2,0,1,4,8,98,32,128,4,68,48,6,0,14, +128,73,24,66,3,0,0,8,24,5,1,96,32,6,2,68,0,0,66,70,64,0,0,128,0,0,16, +97,1,140,196,0,0,160,0,0,121,249,224,1,13,144,5,128,0,3,120,16,14,96, +0,0,12,144,7,240,0,0,6,192,3,120,0,0,15,96,0,0,60,0,15,224,1,32,128,4 +,48,32,30,192,3,122,0,0,9,224,1,12,128,7,180,32,30,200,3,120,32,15,32 +,1,12,32,0,0,249,4,0,0,48,32,2,128,0,3,96,0,0,12,0,7,4,0,0,96,0,2,64, +48,0,15,128,1,32,0,0,5,0,1,24,0,0,1,96,0,0,8,0,0,64,48,16,6,196,0,1,4 +,0,0,96,0,0,12,192,0,0,32,0,0,185,249,0,0,4,50,0,0,4,64,40,0,2,96,0,0 +,12,128,68,0,0,34,6,200,0,0,24,0,0,16,34,36,64,144,16,48,8,0,14,128,1 +,16,10,2,64,20,24,0,0,16,100,0,0,132,2,8,0,0,2,6,128,40,152,0,0,3,98, +0,0,12,0,0,1,48,17,72,248,32,0,1,128,6,16,0,0,128,64,0,0,8,4,1,0,0,8, +4,128,0,0,208,0,0,130,0,5,8,4,0,16,16,38,194,4,0,0,8,1,97,2,9,0,0,9, +34,0,0,52,128,2,16,0,1,3,8,1,33,0,0,160,9,4,34,40,254,0,3,6,0,2,8,0,1 +,16,12,0,0,128,0,2,192,0,0,16,4,0,4,128,0,18,16,0,0,2,0,6,4,0,1,48,0, +0,4,0,7,132,65,48,0,0,64,252,0,3,6,176,0,0,6,0,1,32,0,0,12,100,0,2,6, +196,0,0,6,0,4,96,0,1,8,0,14,96,0,0,44,128,5,48,0,0,6,0,2,16,11,0,0,64 +,48,128,5,2,0,0,6,192,3,24,0,0,15,130,1,0,1,88,248,12,8,2,0,0,6,80,0, +0,2,0,0,16,4,18,76,32,0,1,34,38,192,2,147,8,0,3,32,0,0,128,0,15,32,0, +0,20,128,66,18,0,0,2,0,0,32,2,0,0,5,0,1,48,128,34,192,34,2,64,131,8,0 +,0,45,128,69,0,0,66,185,255,4,4,1,0,0,16,96,8,153,16,16,0,0,66,12,130 +,65,0,0,2,0,0,194,8,137,4,0,3,128,69,0,0,8,0,14,128,69,40,0,0,3,192, +34,24,1,32,0,0,17,10,0,0,68,0,0,6,35,2,40,24,1,16,1,34,64,0,0,1,48,4, +43,252,96,0,1,128,1,130,0,0,30,192,0,0,25,0,0,3,224,1,60,136,7,240,0, +0,4,0,4,224,1,12,0,15,224,1,32,128,4,240,0,0,30,208,129,24,0,0,9,96,0 +,0,12,0,0,4,48,0,0,30,208,3,24,0,0,15,228,1,29,0,0,240,249,132,1,0,2, +128,32,24,0,0,3,2,32,0,0,128,1,0,1,6,0,1,26,0,4,128,1,0,0,8,0,14,128, +1,32,0,0,3,192,0,0,24,0,1,98,16,8,128,65,0,1,5,193,0,0,24,0,1,96,0,1, +128,1,0,1,194,249,0,0,8,1,0,1,64,8,24,0,0,8,0,0,1,0,0,136,1,0,0,16,70 +,193,20,24,9,0,3,128,1,48,0,15,128,1,32,0,0,4,192,0,0,24,0,0,1,0,0,2, +8,0,0,8,0,1,66,192,32,24,0,0,163,96,18,44,130,41,16,16,192,255,32,0,0 +,128,0,1,16,0,0,2,64,0,1,2,1,0,0,8,20,0,0,34,16,0,0,10,64,0,4,8,20,0, +16,16,54,10,0,1,8,11,65,35,34,1,1,128,16,54,128,0,0,208,0,1,3,8,1,33, +0,0,32,0,0,4,65,232,248,0,2,16,0,6,32,0,1,128,32,0,0,4,2,0,0,16,0,5, +128,32,0,17,48,0,4,4,0,0,64,16,4,2,1,48,0,9,4,0,2,192,252,0,1,12,0,1, +176,0,0,24,0,1,24,0,0,3,96,0,0,44,128,5,48,0,0,22,0,4,96,0,0,44,0,15, +96,0,0,48,0,1,48,0,0,14,0,0,3,88,0,1,96,1,48,128,5,194,64,6,192,3,122 +,0,0,15,130,1,0,0,16,192,255,8,8,54,4,0,0,80,0,0,64,16,19,12,0,0,1,32 +,0,0,148,136,162,16,0,0,10,0,0,128,0,2,32,0,0,148,32,0,14,32,0,0,176, +8,0,0,16,0,0,130,32,35,41,33,128,162,0,0,49,128,34,0,0,8,2,64,3,104, +16,77,128,1,32,0,0,1,250,0,0,4,1,0,1,96,8,1,0,1,96,2,140,130,73,24,1, +3,192,72,12,0,0,8,2,0,1,128,81,24,0,15,128,81,48,9,0,0,192,40,128,0,0 +,16,50,0,0,32,192,0,1,65,35,194,0,0,152,4,16,1,34,64,0,0,4,128,16,67, +251,96,0,0,8,32,0,0,128,0,0,6,200,0,0,121,16,14,224,1,36,8,4,240,0,0, +16,196,3,0,2,224,1,36,16,0,14,224,1,60,0,1,240,0,0,20,200,2,64,0,0,3, +2,1,12,0,0,4,240,32,30,192,3,120,0,0,15,100,64,28,0,0,200,252,4,0,3, +128,32,0,2,98,0,0,12,128,1,40,8,5,192,0,0,16,4,0,3,128,1,40,8,0,14, +128,1,48,0,1,192,0,0,26,0,0,3,80,0,1,64,1,48,0,0,5,1,0,0,24,0,0,128,0 +,0,16,0,2,16,16,250,248,128,9,1,65,0,0,64,2,0,0,16,8,96,0,0,12,128,1, +144,0,0,2,192,0,0,72,0,0,16,2,0,1,128,1,144,0,15,128,1,32,10,0,0,192, +0,0,88,4,66,40,0,0,2,130,0,0,48,32,18,192,40,24,0,0,3,96,4,76,2,80,16 +,2,192,255,48,0,1,128,6,144,8,25,96,0,0,8,1,13,0,0,8,4,0,0,32,16,0,0, +2,0,1,8,0,0,13,0,0,8,4,0,16,16,54,0,0,64,8,8,1,97,35,1,1,65,0,0,16,6, +128,0,0,208,2,0,1,8,1,33,0,0,160,1,4,0,0,112,253,0,4,64,0,4,16,12,0,0 +,128,0,2,2,0,5,12,0,0,128,0,18,48,0,5,3,0,0,16,4,2,0,3,192,32,0,0,8,0 +,3,132,1,0,1,48,252,0,3,6,176,0,0,30,0,3,3,96,0,0,44,128,5,48,0,0,22, +0,1,24,0,1,96,0,0,44,0,15,96,0,0,48,160,1,48,0,0,6,0,0,3,88,0,1,96,1, +0,0,160,5,114,0,0,30,192,3,120,0,0,15,130,1,0,1,112,248,12,32,0,1,134 +,80,0,0,2,17,0,1,20,1,32,0,0,148,136,162,16,0,0,10,0,1,8,0,1,32,0,0, +148,32,0,14,32,0,0,48,129,0,0,16,0,0,2,0,0,11,42,33,0,0,162,0,0,1,130 +,34,144,132,26,68,139,104,17,141,128,1,0,1,89,249,132,1,0,1,6,160,0,2 +,11,2,17,0,0,132,69,24,1,3,192,72,12,0,1,96,16,128,129,33,24,0,15,128 +,1,50,0,0,22,192,32,152,4,11,52,0,0,64,194,0,0,128,0,0,35,194,40,128, +0,0,16,1,34,64,0,0,4,129,8,107,252,104,0,0,1,128,7,132,0,0,30,192,3, +88,0,0,2,224,1,36,8,4,240,0,0,16,4,0,0,112,0,0,3,224,1,36,16,0,14,224 +,1,60,136,7,244,0,0,30,192,3,64,0,0,3,0,0,1,12,16,4,240,0,0,30,200,3, +120,0,0,15,100,0,0,12,0,0,136,252,0,3,6,128,0,4,16,12,128,1,40,8,5, +192,0,0,16,4,0,0,96,0,1,128,1,40,8,0,14,128,1,48,0,0,6,192,0,0,24,0,0 +,3,80,0,1,64,1,0,1,5,193,0,1,4,128,0,0,16,0,0,128,1,48,32,114,248,16, +8,2,0,0,38,136,0,0,26,0,0,16,4,2,140,132,1,16,0,0,2,192,0,0,8,0,1,104 +,0,0,64,132,1,16,0,15,128,1,0,0,8,6,192,0,0,24,0,0,1,42,0,0,32,130,0, +0,48,33,2,128,32,24,1,35,96,1,140,130,1,49,0,0,56,255,32,0,0,36,144,6 +,0,1,10,66,8,0,0,2,5,8,8,36,1,36,0,1,18,64,0,0,12,0,0,1,160,5,36,0,16 +,16,6,128,130,0,0,8,3,64,32,64,1,65,0,0,17,182,160,36,18,0,1,3,0,0,1, +33,0,0,32,0,0,36,18,144,253,0,1,16,0,0,6,0,1,16,0,0,3,1,32,12,0,0,128 +,16,8,2,2,0,0,8,8,0,3,128,1,17,16,0,18,4,0,4,33,16,0,0,136,0,0,48,0,0 +,2,0,7,4,0,2,16,249,0,1,44,0,0,6,0,2,4,0,0,24,0,0,3,96,0,0,44,128,5,0 +,1,22,0,1,24,0,0,12,128,1,45,0,15,96,0,0,12,0,0,2,48,0,0,30,0,0,128, +88,0,1,100,1,48,128,5,2,0,0,6,192,0,0,120,0,0,15,0,1,48,8,248,249,4,8 +,22,0,0,6,0,1,64,0,0,16,12,0,0,69,40,0,0,20,128,162,0,1,10,0,0,8,12,0 +,0,12,128,17,20,0,15,32,0,0,4,0,0,4,16,0,0,26,0,0,8,40,33,128,160,0,0 +,177,160,34,0,1,2,64,0,0,104,20,13,0,1,32,2,10,255,140,5,33,0,0,128,0 +,1,8,9,139,96,17,8,132,9,169,0,0,3,0,1,12,0,0,32,100,0,1,144,5,170,0, +15,128,9,48,18,2,192,8,24,3,144,48,0,0,64,192,0,0,48,1,5,0,1,24,0,0, +35,0,0,34,76,0,0,4,48,10,56,249,96,0,0,24,128,1,0,1,30,192,2,120,0,0, +3,224,1,36,8,4,0,1,8,192,2,112,64,3,224,1,36,32,0,14,224,65,60,128,5, +240,128,28,192,1,64,0,0,3,4,1,60,16,4,48,32,30,196,131,120,0,0,15,100 +,64,60,0,1,250,8,0,0,32,0,4,8,1,96,0,0,12,128,1,32,0,0,3,0,1,8,0,1,96 +,0,1,136,1,32,0,15,128,1,48,0,0,2,192,0,0,24,4,1,48,0,1,192,0,0,48,0, +0,5,192,0,0,24,0,0,3,0,0,16,12,128,1,48,0,0,33,253,0,0,8,21,0,3,152,0 +,0,2,100,0,0,40,130,1,32,0,0,4,0,1,8,0,0,80,104,0,0,64,128,8,34,0,15, +128,1,52,0,0,4,192,0,0,152,0,0,163,72,0,0,40,16,1,16,65,4,192,0,0,25, +0,0,3,96,0,0,12,130,81,48,10,104,248,0,19,64,0,31,16,0,4,16,0,14,152, +251,32,0,1,128,0,0,16,0,1,64,0,0,8,0,0,1,32,0,0,4,128,0,2,2,68,0,2,1, +32,0,0,4,0,15,32,0,1,128,0,0,16,0,0,2,64,0,2,1,32,64,4,128,0,0,16,0,0 +,2,64,0,0,8,0,0,1,32,0,0,4,0,0,192,253,0,2,16,0,19,32,0,22,32,0,25, +136,255,40,0,0,132,128,0,0,16,0,0,2,96,0,0,8,0,0,1,32,0,0,4,128,0,0, +16,16,0,0,64,0,0,8,1,1,32,0,0,4,0,15,32,0,0,132,128,0,0,16,0,1,64,0,0 +,8,32,1,0,1,4,128,0,0,16,0,0,2,64,0,0,8,0,0,1,32,0,0,4,0,0,129,254,0, +2,1,0,1,4,0,4,64,0,3,16,8,4,0,0,1,0,1,2,0,22,34,0,2,64,0,2,4,0,1,16,1 +,0,0,32,0,11,147,251,32,0,1,32,0,1,64,0,0,64,0,3,8,0,4,128,0,0,68,0,1 +,64,1,0,26,68,0,1,64,0,2,4,0,1,1,0,10,8,251,4,0,1,16,0,8,4,0,4,128,0, +54,226,253,32,0,1,130,16,20,132,130,80,0,0,8,66,32,32,8,5,33,32,4,2,0 +,0,80,0,1,8,1,32,8,5,32,0,14,32,0,0,5,160,0,0,20,2,65,96,0,0,8,129,33 +,4,4,6,0,0,16,18,66,66,96,8,9,32,1,40,132,132,16,120,254,0,51,64,0,21 +,216,251,0,19,64,0,37,4,0,14,216,251,0,1,32,0,3,4,0,9,16,0,3,8,0,24,4 +,0,2,16,0,8,32,0,10,40,252,0,1,16,0,0,4,0,4,2,0,4,128,0,0,4,128,0,2,2 +,0,1,40,0,1,8,0,19,16,0,3,1,0,4,16,0,12,232,255,0,53,128,0,5,4,0,12, +24,251,0,8,2,0,64,184,253,64,0,0,1,0,0,2,0,0,128,0,2,2,0,7,128,0,2,32 +,0,0,4,0,0,64,0,0,8,0,19,1,0,6,1,0,3,33,32,0,5,128,64,16,0,0,88,250, +128,0,0,16,0,4,4,0,5,1,0,33,1,0,0,4,0,4,128,0,3,128,0,5,1,0,3,208,250 +,96,128,20,6,21,64,64,0,0,20,1,1,0,3,17,0,0,2,0,0,84,0,1,138,48,0,0,2 +,0,0,128,160,16,0,14,128,0,1,8,0,0,6,0,0,82,0,4,36,0,1,5,0,0,50,64,0, +4,1,192,128,8,0,0,192,254,128,150,130,0,0,1,16,0,0,8,4,33,37,16,0,2, +136,4,0,0,80,52,0,0,64,0,0,2,8,9,10,0,0,132,0,15,160,215,2,138,4,64,0 +,0,72,0,1,32,0,1,128,0,0,32,0,0,128,64,76,1,0,4,32,89,0,1,56,252,128, +0,5,2,80,0,0,8,64,0,5,32,128,0,5,8,0,17,64,128,0,0,8,0,0,64,0,0,8,0,1 +,32,0,1,128,0,3,64,0,7,64,0,0,128,80,250,0,15,32,0,1,32,0,3,16,4,0,18 +,128,0,2,2,0,9,16,0,1,2,0,6,64,0,2,56,255,0,19,16,8,0,3,8,0,1,48,0,15 +,128,0,0,16,0,0,2,0,0,17,32,0,1,128,0,1,1,2,0,3,16,32,0,2,8,4,0,2,104 +,252,0,28,16,0,17,32,0,11,32,0,12,152,252,0,2,4,0,4,64,0,2,4,0,38,64, +0,0,2,0,1,16,0,15,136,248,0,1,128,0,4,16,0,4,32,0,3,1,0,2,128,0,3,128 +,0,24,64,0,1,4,0,2,4,0,0,64,64,0,1,1,32,0,5,144,250,18,0,17,16,0,27,4 +,0,24,128,52,252,0,74,152,255,0,8,2,0,7,128,0,3,64,0,3,2,0,25,4,0,3, +32,0,13,24,255,0,7,4,0,17,32,0,25,128,0,5,8,0,12,240,255,0,1,18,8,0,0 +,8,0,1,16,0,2,4,2,0,4,32,0,1,64,32,16,0,21,1,0,2,64,0,1,4,0,19,16,249 +,0,2,128,0,14,2,0,34,4,1,0,4,16,0,9,8,0,0,145,249,0,7,32,0,0,4,0,4, +128,0,2,1,0,1,4,0,35,64,0,13,128,249,0,17,32,0,0,8,0,5,64,0,18,8,0,26 +,248,255,0,17,8,0,33,128,0,20,24,255,0,27,32,0,23,128,2,0,4,32,0,13, +48,255,0,27,4,0,26,32,0,5,2,0,2,1,32,0,2,128,0,1,56,248,0,12,4,0,9,32 +,0,27,4,8,64,0,4,64,0,10,128,0,0,248,251,0,1,8,0,0,1,0,2,4,0,2,2,0,61 +,120,252,8,0,5,2,64,0,8,16,0,1,64,0,52,192,249,0,1,1,32,0,0,132,0,1,8 +,0,0,2,0,3,32,0,2,129,0,2,2,64,0,2,1,0,25,1,0,4,32,0,12,136,254,0,0, +128,0,0,16,0,0,2,0,16,33,0,1,4,0,0,64,0,35,32,0,3,16,0,3,160,250,0,11 +,8,0,3,16,0,4,16,0,29,2,0,6,1,0,0,48,0,6,32,0,1,176,254,0,1,64,0,1,1, +192,36,8,4,0,0,32,0,0,32,128,0,0,16,0,0,2,0,7,128,0,18,1,0,1,5,160,0, +0,16,0,1,64,0,2,17,0,5,8,0,2,64,0,1,64,216,254,0,25,1,0,37,2,0,3,1,0, +1,16,0,0,184,255,0,46,128,0,24,80,8,192,250,32,0,3,1,0,1,4,0,0,32,0,1 +,128,0,1,8,0,1,32,0,2,8,0,0,2,0,0,64,8,16,0,18,2,2,64,0,5,1,0,0,16,8, +1,66,32,0,1,1,32,0,0,4,128,0,0,8,0,0,204,252,8,0,3,64,0,8,16,0,4,4,0, +2,4,0,19,64,8,0,1,1,0,7,64,0,1,4,0,11,80,251,64,45,160,0,0,20,82,32, +80,8,81,16,0,0,64,65,0,0,4,24,0,0,65,96,0,0,20,0,0,16,0,0,3,0,0,128, +24,16,0,15,64,5,0,0,1,6,64,8,0,0,6,0,0,12,0,0,4,0,0,9,144,1,34,64,48, +128,0,0,16,0,0,2,64,64,8,0,0,200,251,0,0,96,145,32,2,64,80,1,172,9,37 +,0,0,20,0,0,3,0,0,4,6,0,0,32,34,0,1,37,0,0,136,2,72,128,0,3,16,0,10, +128,88,4,128,2,0,1,72,2,0,2,20,130,48,8,0,1,96,32,0,0,5,41,66,1,32, +162,64,4,0,0,160,250,0,0,64,16,0,0,2,128,0,1,68,0,0,16,0,0,4,0,3,4,0, +0,32,0,2,8,0,1,2,128,0,16,128,64,0,1,2,0,1,8,0,3,4,34,0,3,64,32,0,0,4 +,1,0,2,136,64,0,1,64,254,0,1,1,0,2,32,0,5,128,0,1,136,0,7,4,0,6,4,0, +18,4,0,4,64,0,7,8,0,5,160,251,16,0,13,64,0,0,1,0,54,64,0,0,220,255,2, +0,72,128,48,253,32,32,4,128,0,7,32,0,10,40,0,21,128,0,1,1,0,5,8,0,0,4 +,0,4,1,128,0,0,17,0,4,8,128,252,8,0,12,1,0,1,2,0,6,1,0,27,4,0,7,16, +128,0,2,64,0,0,2,0,3,218,254,12,0,56,2,0,14,128,62,255,0,19,32,0,3,16 +,0,46,4,0,0,136,248,0,19,4,0,3,1,0,25,2,0,6,4,0,13,152,248,0,74,152, +255,0,6,16,0,1,96,0,2,1,1,8,4,0,8,1,0,21,32,0,1,8,0,0,144,0,2,128,0,0 +,16,0,3,8,0,0,128,0,3,32,0,0,144,248,0,1,32,0,4,2,0,1,8,0,4,8,128,0,3 +,64,0,0,2,16,0,1,32,0,17,128,0,0,2,0,1,64,0,2,8,0,3,6,128,16,0,0,16,2 +,0,2,32,129,32,0,0,192,254,0,20,16,0,2,32,0,24,128,0,22,40,253,0,27,8 +,0,45,16,255,0,1,52,128,0,0,16,4,0,1,19,96,36,13,128,17,4,128,0,0,16, +24,152,0,4,32,0,0,4,0,15,128,9,176,0,1,80,0,0,10,0,0,32,2,0,0,140,164 +,16,1,0,0,70,82,0,0,130,72,0,0,96,68,140,136,145,0,1,176,252,0,1,48,0 +,1,64,32,0,2,1,0,0,12,0,1,1,0,4,16,0,23,128,0,0,16,0,0,128,0,0,16,0,9 +,128,0,10,240,253,0,3,6,0,0,32,0,0,192,3,121,0,1,224,1,0,4,30,16,0,4, +128,48,32,0,14,224,1,60,32,0,0,176,0,0,22,192,0,2,15,128,1,0,0,128,7, +180,0,0,6,16,128,120,0,0,15,224,129,0,1,80,248,0,1,48,66,6,0,2,64,0,0 +,8,34,0,0,32,4,2,0,2,40,2,0,5,8,0,0,2,0,14,32,0,0,6,2,0,0,80,0,0,10, +64,0,2,65,132,137,0,0,128,0,0,80,0,0,130,0,0,16,8,34,1,48,4,0,1,56, +253,0,1,48,18,0,0,1,34,0,4,64,2,0,1,9,0,0,8,36,0,5,128,5,176,0,20,96, +16,12,8,64,0,2,128,72,0,2,96,4,0,0,1,136,0,6,152,252,0,1,60,128,1,48, +0,1,128,3,112,0,0,3,192,1,12,128,1,112,0,0,28,0,4,224,129,12,32,0,14, +192,1,60,0,1,128,0,0,16,192,0,2,14,96,1,0,1,7,144,64,6,208,0,0,112,0, +0,14,192,1,0,2,254,0,1,48,32,0,0,1,32,0,5,2,0,0,48,8,6,64,32,0,7,49,8 +,0,19,128,0,0,16,16,3,0,2,128,1,0,2,128,0,1,4,128,0,6,248,249,0,1,48, +1,0,0,32,8,0,1,3,96,0,0,32,128,1,176,0,0,22,196,2,24,0,4,128,9,48,0, +15,128,1,48,0,1,64,36,8,0,0,163,0,1,12,128,1,2,128,6,64,36,16,0,0,3, +96,0,0,12,128,1,0,1,8,254,128,133,20,0,1,16,40,2,0,0,11,96,8,0,0,128, +1,0,0,128,6,0,2,64,129,0,4,48,1,0,6,34,0,6,145,33,0,0,34,0,0,16,0,0,2 +,0,0,32,98,68,0,2,4,128,0,0,16,0,0,2,64,0,0,96,68,0,0,32,0,3,248,0,1, +32,0,1,64,0,3,2,0,3,1,0,0,6,0,10,16,0,6,12,0,6,6,0,16,1,0,2,3,0,6,16, +251,224,129,44,0,2,32,0,0,196,3,120,0,1,224,1,0,0,128,7,0,3,128,0,4, +60,16,0,6,12,0,6,230,1,61,0,1,176,0,0,22,192,131,120,32,0,3,32,0,0, +176,0,1,16,128,120,32,0,0,128,1,0,1,16,254,40,0,0,20,0,2,8,88,64,16,9 +,34,0,0,32,4,2,128,6,0,3,32,0,4,4,0,7,10,0,6,37,0,0,52,9,0,0,80,0,0, +10,64,3,8,0,3,48,1,32,88,0,0,64,0,0,16,8,4,0,1,128,0,1,41,252,0,1,24, +4,0,1,32,0,0,2,0,7,6,0,3,18,0,13,10,0,6,5,0,1,4,0,0,96,16,12,8,64,0,4 +,48,1,16,96,4,64,0,0,136,0,2,128,1,2,0,0,147,248,224,1,32,0,1,48,0,0, +30,128,3,112,0,1,192,1,0,0,128,7,0,2,192,131,0,4,56,0,15,192,1,60,0,1 +,128,0,0,16,192,3,112,0,3,12,144,1,145,64,6,208,0,0,112,0,1,96,0,2,24 +,250,4,0,0,32,0,2,32,24,72,0,7,6,0,3,130,0,24,8,0,0,128,0,0,16,0,6,48 +,16,2,129,0,2,128,0,2,128,1,0,1,58,252,128,1,16,8,0,1,2,88,0,0,3,96,0 +,1,128,1,0,1,6,0,3,9,0,4,48,0,15,128,1,48,2,0,0,64,32,72,32,147,96,0, +4,2,70,64,32,24,2,3,96,0,1,128,145,0,1,88,251,0,1,4,128,6,0,1,66,4,19 +,96,36,1,128,17,0,0,128,0,2,24,65,0,0,96,36,1,128,137,48,1,0,14,128, +133,0,0,34,0,0,16,0,0,2,0,0,32,2,0,1,32,0,1,128,6,20,0,0,26,64,3,96, +36,76,160,48,0,1,152,251,0,3,6,0,4,1,0,3,1,0,4,8,0,6,16,0,31,6,0,1,24 +,4,3,0,2,4,1,0,1,112,255,0,1,44,0,4,196,3,120,64,0,0,224,1,1,0,3,30,8 +,3,120,32,0,0,224,1,60,32,0,14,224,1,60,8,0,0,176,0,0,22,192,131,0,6, +6,176,0,0,14,0,1,120,0,0,15,128,1,0,1,112,249,12,0,0,20,0,3,16,64,8, +12,0,1,32,16,0,4,2,0,0,32,9,1,0,0,32,136,4,0,15,32,136,52,1,0,0,80,0, +0,10,64,11,0,2,128,133,0,1,18,82,0,0,146,2,0,0,8,10,33,16,9,1,0,0,210 +,253,4,0,0,24,4,0,0,1,0,0,144,0,3,64,2,0,7,11,0,2,2,0,20,4,0,0,96,16, +12,8,64,0,4,1,0,0,4,97,4,88,0,0,11,2,0,1,128,1,2,0,0,112,249,0,1,32, +128,1,0,1,14,132,3,112,0,0,3,192,1,0,0,128,1,2,0,0,28,192,3,114,0,0,3 +,192,1,56,0,15,196,1,60,0,1,128,0,0,16,192,3,0,2,224,1,0,0,128,3,144, +64,30,196,3,112,0,0,14,96,1,0,1,64,249,4,0,0,32,0,1,1,0,0,24,0,3,12,2 +,0,2,6,0,3,128,0,1,12,0,23,128,0,0,16,16,0,3,128,1,0,1,4,128,0,0,24,0 +,0,3,0,2,128,65,0,1,241,248,0,1,144,8,0,2,8,8,3,96,0,0,44,128,1,0,1,6 +,2,0,0,24,0,0,11,96,0,0,140,130,1,48,0,15,137,1,48,16,0,0,64,34,8,1, +131,0,2,128,41,0,1,34,66,34,16,5,19,97,0,0,12,128,9,0,1,96,254,32,0,0 +,4,128,0,0,80,0,0,2,0,0,19,96,36,0,0,128,17,5,128,0,0,208,136,154,72, +33,96,36,140,168,9,50,1,0,14,128,33,0,0,162,6,16,0,0,2,0,0,32,8,0,0,1 +,160,72,52,128,6,16,0,0,90,80,144,0,1,140,40,0,0,20,0,0,56,253,0,4, +128,0,3,1,0,8,24,0,1,1,0,1,128,1,0,0,16,0,14,1,0,2,6,0,4,1,0,2,1,48,0 +,3,24,0,6,32,0,0,136,250,0,1,44,0,1,176,0,0,24,196,3,121,32,0,0,224,1 +,0,0,128,1,64,0,0,24,0,0,128,120,32,15,4,1,61,0,15,232,129,60,8,6,176 +,0,0,22,192,0,2,12,128,0,0,48,0,0,6,180,0,0,16,4,128,0,1,15,128,1,44, +8,136,253,8,0,0,20,0,1,80,0,1,64,32,8,4,0,0,32,136,0,0,128,0,1,68,24, +2,0,0,8,4,33,128,8,4,17,0,14,32,0,0,52,0,0,6,80,0,0,10,64,0,1,132,12, +0,0,1,48,0,0,16,80,0,0,24,0,0,16,0,1,33,16,8,21,1,57,248,0,1,24,4,6, +97,2,88,0,6,48,9,70,194,72,64,8,11,0,2,128,33,0,16,9,0,1,4,22,96,16, +12,8,163,0,0,32,32,136,0,2,70,97,4,88,8,160,0,2,128,1,26,10,59,254,96 +,128,32,128,7,144,64,6,144,3,112,0,1,192,1,60,128,7,240,0,0,22,192, +130,112,0,0,14,96,0,0,56,0,15,194,1,60,128,7,130,0,0,16,192,3,24,0,0, +3,96,1,12,144,7,144,64,30,192,0,2,14,96,0,0,36,0,0,64,252,132,1,32,0, +1,129,0,0,24,0,7,8,6,192,0,0,16,0,0,131,0,3,1,0,16,8,0,3,128,0,0,16,8 +,3,0,2,128,0,3,129,0,0,24,16,128,0,2,128,65,40,0,0,26,249,128,5,17,10 +,0,0,64,40,24,9,3,96,0,1,128,1,128,128,6,128,128,152,32,8,96,0,0,12, +64,128,48,0,15,136,1,176,8,64,72,40,8,1,3,96,8,0,0,1,1,0,1,22,64,40, +152,0,0,10,0,1,12,128,9,16,10,168,255,176,1,4,128,0,0,16,0,0,152,0,3, +76,0,1,48,1,0,0,16,136,18,80,3,96,128,13,32,129,4,0,15,1,0,1,162,6, +144,16,2,0,0,32,96,68,77,32,0,0,4,128,38,148,4,2,65,1,96,68,0,0,160,4 +,4,0,0,72,248,128,1,0,5,16,0,3,8,0,1,32,0,7,12,128,0,17,16,0,2,6,64,0 +,3,1,0,0,8,8,0,2,2,64,64,0,0,4,2,0,4,1,0,0,64,249,128,1,44,0,1,176,0, +0,30,8,0,2,15,8,0,0,60,32,0,1,128,16,0,0,3,121,64,0,0,128,1,48,0,15,1 +,0,0,60,8,6,176,0,0,22,192,0,0,120,32,12,0,2,8,6,180,0,1,192,2,120,64 +,0,2,44,8,216,252,140,1,20,0,1,80,0,0,2,0,3,1,0,1,4,0,1,64,4,64,32,8, +8,0,1,128,33,0,0,10,0,7,1,0,7,180,0,0,6,80,0,0,10,64,0,0,8,4,40,144,9 +,1,0,0,38,80,0,1,81,1,12,4,0,2,21,1,202,254,132,5,25,4,0,0,97,2,0,11, +40,152,0,0,160,0,2,2,9,176,0,15,5,0,1,4,16,162,0,0,12,8,11,0,1,132,1, +68,128,8,36,168,0,0,64,160,9,0,3,17,24,10,216,255,232,1,32,128,1,144, +64,28,0,3,14,0,1,56,0,1,48,0,0,30,200,0,0,112,0,0,3,96,128,12,32,0,6, +64,2,0,7,60,128,1,128,0,0,16,192,3,113,0,0,15,224,1,12,128,7,144,0,0, +6,0,0,2,113,0,1,224,65,36,0,0,184,253,0,1,32,8,6,129,32,0,10,192,0,1, +8,3,0,2,128,1,48,0,19,6,128,0,0,16,0,0,3,0,1,12,128,1,48,8,0,0,128,0, +1,128,130,0,3,1,40,8,41,250,16,16,18,2,6,64,8,24,0,3,12,0,1,48,0,2,8, +137,0,0,83,96,0,0,128,2,0,0,50,64,0,16,48,10,38,130,0,0,136,16,3,96,0 +,0,140,132,9,2,1,70,132,0,0,144,16,33,96,0,1,128,128,16,2,136,248,176 +,0,0,36,4,0,0,16,0,0,152,64,163,96,33,76,128,1,50,129,6,208,136,24,0, +0,3,96,128,1,160,1,132,0,7,64,1,0,5,128,133,128,128,2,0,1,2,0,0,32,0, +1,77,48,0,0,16,129,32,18,0,0,2,64,0,0,96,68,0,0,160,1,36,10,120,254,0 +,0,1,16,0,4,16,0,3,8,0,1,32,0,0,192,0,1,16,0,0,2,0,4,8,0,17,16,4,0,4, +1,0,0,8,0,1,32,8,0,0,64,32,0,5,128,1,17,0,0,24,250,96,65,44,0,1,176,0 +,0,30,16,3,122,0,0,15,228,1,60,16,6,0,1,30,208,3,120,32,12,0,1,1,0,7, +64,2,0,5,224,1,13,128,5,0,1,22,192,0,2,12,8,0,0,44,128,1,4,0,1,192,2, +120,0,1,128,65,44,0,0,56,254,172,16,20,0,1,80,0,0,2,0,0,34,8,34,33,32 +,136,132,0,0,22,200,68,2,65,16,9,1,12,0,0,8,32,10,0,6,128,0,6,32,0,0, +4,128,66,1,0,0,10,64,0,2,72,128,133,148,160,22,0,0,40,152,68,1,12,10, +0,0,128,9,20,0,0,130,248,196,0,0,40,0,1,96,2,0,1,2,4,0,5,38,66,0,6,2, +64,32,9,0,7,2,0,7,48,0,0,3,0,1,12,8,147,0,1,132,1,0,0,25,0,0,66,1,2, +64,128,9,0,3,8,42,8,16,248,32,1,32,0,1,144,64,28,192,3,112,0,0,14,192 +,1,56,128,7,240,128,28,128,3,112,0,0,3,96,0,0,28,0,8,2,0,5,192,1,60, +136,4,0,1,16,192,3,0,1,15,224,1,32,128,5,48,32,6,4,2,113,0,1,96,1,36, +0,0,24,252,68,1,32,0,1,128,32,0,1,3,0,6,6,64,0,8,48,0,7,64,0,6,5,0,0, +48,0,0,5,0,1,16,0,0,3,0,1,12,132,1,40,0,0,6,1,0,0,24,128,130,0,3,1,32 +,0,0,1,253,160,0,0,32,0,1,64,2,24,0,0,67,96,0,0,12,128,1,48,0,0,70,2, +4,25,0,0,3,96,0,0,128,2,132,16,16,0,7,4,0,5,128,1,48,0,0,2,0,1,136,8, +3,0,1,76,128,129,16,0,0,20,32,32,24,5,9,96,0,1,128,9,34,0,0,8,255,48, +1,0,1,38,18,0,0,152,0,0,19,0,1,1,128,9,4,128,0,0,208,0,0,90,16,3,96, +36,1,160,1,20,2,0,6,64,0,8,128,128,4,0,1,2,0,0,32,96,33,12,33,129,0,0 +,129,6,16,4,2,67,0,0,96,2,12,32,0,0,4,0,0,24,254,128,0,6,16,0,0,2,0,3 +,1,0,1,192,64,24,0,1,2,0,1,128,1,0,0,8,0,17,16,2,0,4,1,0,1,128,1,0,0, +8,6,64,32,8,0,2,32,0,0,8,0,2,144,248,96,65,0,0,128,7,178,0,0,30,192,3 +,0,2,224,1,48,0,1,192,0,0,8,192,3,122,64,0,3,8,0,6,64,1,0,7,12,128,5, +0,1,22,192,0,0,120,32,15,136,129,44,0,4,192,2,120,0,0,15,4,0,0,48,0,0 +,216,249,172,16,0,0,128,16,80,0,0,130,72,0,0,4,0,1,32,136,48,0,1,64, +16,64,72,0,0,8,0,4,1,0,16,4,128,66,1,0,0,10,64,0,0,8,0,0,1,128,5,148, +32,0,1,32,64,80,1,12,34,129,128,5,49,0,0,129,254,196,0,3,96,2,0,4,76, +2,0,1,9,0,0,200,64,0,0,33,0,2,12,2,4,160,8,0,16,176,8,3,0,1,12,8,139, +0,2,128,145,24,0,0,16,2,36,0,0,128,9,0,3,32,0,0,18,195,255,32,1,0,1,7 +,144,64,28,128,3,0,1,15,192,1,12,128,1,176,0,0,6,128,3,112,0,0,15,96, +128,60,0,17,60,128,4,0,1,16,192,3,112,0,0,14,224,1,32,128,1,48,0,0,6, +16,2,113,0,0,14,224,1,12,0,0,184,253,196,0,3,128,32,0,5,2,0,1,8,6,128 +,0,8,32,0,17,48,0,0,3,0,1,16,0,0,3,0,2,128,65,40,0,4,128,130,0,2,128, +129,0,0,16,90,253,32,1,0,1,6,64,0,0,24,0,0,3,0,1,32,128,1,128,0,0,6, +130,2,81,16,3,96,0,0,128,2,4,17,10,0,16,48,0,0,4,0,1,136,2,3,96,0,0, +12,128,17,16,0,0,32,2,34,4,17,1,96,0,0,12,128,17,0,0,1,80,254,128,9, +176,16,38,146,2,138,68,0,0,96,129,1,0,1,52,128,6,18,0,2,3,96,128,140, +136,9,4,0,15,128,133,128,128,0,0,208,0,0,18,0,0,32,98,2,1,32,0,0,32, +129,0,2,66,64,10,0,1,12,160,0,0,52,65,24,255,0,0,128,48,0,1,64,64,0,7 +,48,0,0,6,0,4,2,0,2,128,0,16,8,0,1,16,0,0,192,0,0,8,0,2,32,0,2,16,8,0 +,2,8,16,1,1,0,1,8,64,48,0,0,208,252,224,1,61,128,7,180,0,2,131,120,0, +0,12,0,3,6,48,0,1,192,3,121,32,15,224,129,0,16,224,129,12,0,1,192,0,0 +,22,192,131,120,64,0,0,128,129,44,0,4,192,2,0,1,15,0,0,64,16,32,192, +249,40,0,0,52,128,0,0,80,0,1,4,0,0,8,128,12,0,3,70,24,0,1,64,0,0,8,4, +65,33,4,176,8,4,0,5,16,2,0,5,40,16,4,0,1,192,0,0,10,64,35,8,4,0,1,16, +148,32,0,3,81,1,4,0,0,1,16,0,0,48,2,58,254,0,1,48,0,1,160,0,0,80,0,0, +3,4,0,0,64,2,0,1,9,64,192,68,0,8,4,2,0,5,16,1,0,5,8,0,0,48,10,16,1, +132,12,8,64,0,1,32,132,1,26,0,0,64,1,0,0,64,160,2,0,3,73,48,18,8,254, +192,1,56,0,0,7,144,0,0,30,196,0,0,112,0,0,3,0,1,12,128,3,241,0,1,128, +3,112,0,0,14,192,1,60,0,0,7,0,5,144,3,0,5,200,1,60,128,1,48,0,0,16, +192,3,112,0,0,3,96,0,0,32,128,1,0,1,6,0,0,2,0,1,14,224,1,60,0,0,80, +255,4,0,0,52,0,1,128,0,0,16,4,3,8,0,1,2,0,1,8,4,193,0,6,32,0,0,48,144 +,5,0,5,208,2,0,5,8,0,0,48,0,0,6,193,0,0,8,8,0,2,12,132,1,24,0,0,6,0,2 +,128,2,0,3,1,48,16,113,248,128,1,52,0,0,6,128,0,0,8,0,0,67,96,0,0,32, +0,1,128,0,0,18,192,0,2,3,96,0,0,12,128,1,176,0,0,4,0,5,8,2,0,5,132,1, +48,0,0,6,192,8,81,0,0,139,96,0,0,140,128,69,32,0,0,166,0,1,128,16,2,0 +,1,12,128,128,48,1,96,250,16,0,1,6,0,4,32,0,0,2,0,14,8,0,1,4,0,6,2,0, +35,128,253,0,2,128,0,0,16,0,0,2,64,0,0,9,64,1,32,0,0,4,0,1,16,0,0,2, +64,0,0,8,0,0,1,32,0,0,5,0,7,2,0,6,33,0,0,4,128,0,0,16,0,0,2,64,0,0,8, +0,0,1,32,0,0,4,0,1,16,0,0,2,64,0,0,8,0,0,1,32,0,0,4,0,0,232,248,0,74, +152,255,44,128,4,146,0,0,16,0,0,2,64,0,0,8,0,0,1,32,0,0,4,128,64,20,0 +,0,2,64,0,0,8,0,0,1,32,0,0,4,0,15,32,0,0,4,128,0,0,16,0,0,2,64,0,0,8, +0,0,1,32,0,0,4,128,64,18,0,0,2,64,0,0,8,0,0,1,32,0,0,4,0,0,153,254,4, +16,2,65,64,8,0,1,33,32,0,0,4,128,16,16,2,66,0,3,1,32,4,132,128,16,16, +0,0,2,0,15,16,0,3,32,0,0,1,0,1,132,128,16,0,0,128,32,64,8,0,2,8,0,0, +132,128,0,0,16,2,0,0,195,252,0,8,128,0,0,64,0,8,16,0,5,1,32,0,16,1,0, +4,16,0,3,32,0,7,128,0,2,8,0,2,176,251,4,0,4,64,0,10,2,0,55,154,251,0, +0,132,4,16,64,18,4,64,8,8,1,36,128,4,144,0,0,146,32,16,136,0,0,9,8,1, +36,128,4,132,128,16,0,15,132,4,145,128,0,0,68,0,0,96,16,1,33,32,36,0, +0,4,4,128,16,68,130,8,64,0,0,33,32,4,132,4,17,176,253,0,1,32,0,0,4,0, +1,8,0,1,64,0,0,8,0,0,1,32,0,2,2,16,0,0,1,64,0,0,8,0,1,16,0,30,32,0,0, +20,0,11,144,251,0,0,1,0,0,64,0,2,16,0,0,2,0,3,128,0,5,8,2,1,0,2,1,32, +0,16,1,0,7,64,0,0,8,0,0,4,0,7,64,0,0,8,132,1,0,1,16,252,0,9,32,128,0, +1,64,0,0,8,0,0,8,0,0,4,32,0,1,64,0,1,2,0,34,4,0,0,2,4,0,7,144,251,0,3 +,2,0,3,192,8,0,11,16,0,1,128,0,0,1,0,18,4,0,8,16,0,1,128,128,0,11,136 +,248,0,16,1,0,0,192,0,5,64,0,15,64,0,30,128,251,0,55,128,0,8,8,0,7,24 +,255,0,1,4,0,0,4,0,2,64,0,9,32,0,0,16,2,10,0,2,64,0,0,16,0,15,64,0,2, +64,32,0,0,4,0,1,16,0,2,16,4,4,0,1,8,4,0,0,32,0,3,8,0,0,48,253,0,2,8,0 +,6,32,0,1,64,0,0,8,0,0,1,0,6,128,0,18,128,0,4,4,0,4,2,0,2,1,0,4,1,0,0 +,4,0,3,136,250,0,0,69,8,32,181,0,0,56,80,128,80,64,65,40,2,40,19,37,0 +,0,4,84,80,136,10,49,0,0,40,48,173,96,16,0,14,128,168,1,0,1,160,86,82 +,8,0,1,32,0,0,8,40,8,144,1,0,0,32,4,8,0,0,18,10,105,1,0,0,10,6,24,255 +,0,0,77,36,161,0,1,136,64,147,65,64,81,145,52,129,133,34,162,64,45,0, +0,128,141,2,1,168,46,8,72,0,15,64,128,2,8,0,0,144,96,11,4,1,32,2,72,0 +,1,128,8,2,0,0,4,184,5,1,0,0,64,1,64,129,32,34,64,248,2,0,0,1,0,4,64, +0,1,16,0,4,2,64,32,0,0,64,64,0,2,2,0,20,8,0,1,32,16,4,2,32,0,4,8,2,0, +1,8,68,0,7,137,250,130,0,0,32,0,4,4,0,0,34,0,1,64,0,3,2,0,5,1,0,23,64 +,0,5,4,0,6,4,0,5,1,16,0,0,56,248,0,4,32,0,32,1,0,1,4,0,1,128,0,8,32,0 +,18,104,250,0,72,2,0,0,152,253,0,1,64,0,14,4,0,26,1,0,7,64,0,4,4,0,4, +64,0,1,8,0,0,2,0,1,112,248,0,0,66,0,14,8,65,2,0,28,8,0,6,2,0,0,128,0, +1,11,0,1,2,4,0,0,16,0,1,64,128,0,1,120,249,0,8,4,0,0,48,0,8,8,0,4,192 +,0,0,16,0,15,128,0,5,8,0,2,32,0,12,4,0,2,248,249,0,1,1,0,1,4,0,1,16,0 +,3,8,0,0,1,32,0,5,2,64,0,0,8,0,13,32,0,13,64,0,0,8,0,3,4,0,4,64,0,2,1 +,0,0,24,254,0,1,4,0,53,1,0,1,128,0,13,72,254,0,25,32,0,46,128,16,253, +0,19,32,0,26,128,0,7,14,144,0,0,4,128,0,3,72,0,7,104,254,0,9,16,0,2,4 +,0,9,32,0,0,64,0,18,64,0,2,17,0,0,16,4,0,6,4,0,0,1,32,0,5,64,64,4,232 +,251,0,39,1,0,2,1,0,29,136,254,0,16,1,0,20,1,0,1,4,0,16,1,0,13,200, +251,0,6,32,0,9,1,32,0,1,4,0,4,64,0,29,2,0,11,128,0,1,104,254,2,0,73, +184,253,0,1,128,0,61,64,0,8,16,251,0,18,1,0,8,4,0,16,128,0,5,10,0,19, +120,252,0,6,16,0,13,2,0,2,32,0,30,1,0,12,1,0,1,152,254,2,0,5,2,0,0,1, +0,9,64,64,0,0,32,0,3,4,32,0,14,128,0,5,8,0,1,32,0,0,32,32,0,2,16,0,6, +4,32,0,2,192,249,0,0,32,0,7,4,0,3,2,0,36,32,0,8,1,0,6,16,0,2,136,249, +0,3,16,0,1,64,128,0,0,32,1,32,0,0,32,128,0,3,17,2,8,0,0,1,1,0,1,128,0 +,16,4,0,1,4,0,1,3,10,0,1,8,0,1,1,0,7,40,8,0,3,64,200,252,0,0,2,0,14,4 +,0,1,8,0,5,5,0,18,64,0,0,2,0,7,2,0,2,130,0,1,8,2,0,8,254,0,1,4,0,13,2 +,0,28,4,0,1,16,0,1,64,0,4,2,64,8,0,0,8,0,2,4,0,6,88,254,16,0,2,2,0,4, +2,0,0,4,0,1,16,0,1,32,0,1,16,0,0,32,0,0,4,128,0,24,8,0,1,16,0,3,1,0,9 +,128,0,0,1,0,0,96,252,72,0,5,4,4,0,10,4,128,128,0,4,8,8,0,14,64,0,8, +16,1,0,11,1,32,0,3,32,249,0,0,33,16,136,0,4,65,0,5,32,0,5,32,8,0,23,2 +,0,10,8,0,1,32,0,0,4,0,5,16,0,0,176,249,10,0,0,32,32,4,0,1,8,0,1,32,0 +,3,8,0,0,2,32,0,1,16,0,3,64,0,8,64,0,13,32,0,3,16,0,0,130,0,5,4,0,7,8 +,136,254,64,173,174,176,1,0,1,82,128,0,0,233,0,0,104,1,0,0,166,208,0, +0,16,0,1,20,80,80,43,104,33,5,0,0,6,0,5,32,0,6,64,0,0,3,0,0,64,1,0,0, +148,137,2,10,0,0,64,40,40,0,1,16,0,1,64,2,8,6,0,0,16,40,0,1,8,32,88, +251,0,0,200,133,89,0,0,145,1,72,109,137,136,1,100,0,0,161,37,178,4,64 +,0,0,24,0,0,242,72,64,8,41,37,0,0,34,0,14,32,0,0,17,16,130,68,65,8,18 +,139,80,12,132,40,0,1,4,130,0,0,36,0,0,6,0,1,64,130,8,128,2,12,96,253 +,0,0,32,0,0,32,0,0,4,0,0,4,16,1,2,0,0,1,0,4,64,0,0,2,0,0,128,0,23,16, +0,0,2,64,0,0,4,0,0,1,1,0,0,4,0,3,2,0,0,32,0,0,4,0,6,16,160,250,0,4,32 +,0,6,64,64,16,0,0,1,0,1,4,128,0,0,18,0,0,2,130,64,0,21,1,0,1,136,0,0, +32,16,0,3,16,0,0,2,0,1,2,0,6,8,120,252,0,51,4,0,14,64,0,5,152,255,2,0 +,5,32,0,0,4,128,0,2,2,0,2,32,0,2,4,0,3,2,64,0,15,32,2,0,4,32,0,3,17, +64,0,0,16,0,6,128,0,3,8,128,104,252,132,1,16,0,4,64,2,0,9,66,0,6,32,0 +,29,4,0,14,41,250,0,20,16,0,34,4,0,6,8,0,0,2,2,0,5,104,249,0,12,2,0,0 +,1,0,20,128,66,0,1,2,1,0,11,8,0,18,58,251,0,18,64,8,0,18,128,0,0,2,0, +0,128,0,12,128,0,15,240,249,0,19,1,0,44,32,0,3,32,0,2,168,253,0,0,4,8 +,0,6,2,64,0,34,1,0,3,64,0,17,8,0,2,200,249,0,7,4,128,0,3,128,0,1,8,16 +,0,1,6,0,31,4,0,2,64,0,3,128,0,8,8,0,0,40,249,0,17,8,0,1,4,0,5,2,0,17 +,32,0,26,208,251,0,74,152,255,0,1,2,0,1,128,0,31,4,0,1,16,0,7,8,0,23, +240,254,0,13,68,132,0,1,20,2,64,80,8,0,0,17,36,0,2,8,0,16,16,0,1,64,0 +,0,8,0,1,32,0,0,4,0,0,64,0,3,32,0,1,1,0,0,64,0,1,64,0,1,248,254,0,9, +96,0,2,5,128,0,0,20,128,2,80,0,0,8,64,1,40,128,4,32,0,17,160,0,0,6, +128,0,0,20,2,0,0,64,0,0,40,0,6,4,2,2,0,6,8,251,0,14,128,0,0,16,0,0,2, +64,0,0,8,0,0,1,32,0,0,4,0,28,16,0,16,240,255,0,13,4,0,31,128,0,18,4,0 +,6,80,251,0,0,21,160,2,180,128,10,80,1,42,128,5,168,0,0,44,128,2,80,0 +,0,10,64,1,40,0,0,5,160,0,0,20,192,2,0,15,22,128,2,88,0,0,11,224,1,42 +,128,5,160,0,0,22,160,2,88,0,0,11,208,1,40,128,11,176,0,0,22,160,2, +232,254,128,9,48,1,134,215,4,154,0,0,19,32,3,77,192,100,152,129,50, +112,6,202,64,25,40,3,101,192,12,144,1,0,14,128,12,152,1,50,64,6,200, +68,19,32,3,100,128,12,52,1,50,64,6,152,4,25,32,121,100,128,12,48,1, +152,252,255,255,0};typedef struct{const unsigned char*l90;unsigned +char l124;unsigned char l153;}l161;static unsigned short l671(l161* +l36,const unsigned char*l90){unsigned short z;z= *l90++;z|= *l90++<<8 +;l36->l90=l90;l36->l124=0;l36->l153=0;return z;}static unsigned char +l283(l161*l36){{if(!(l36->l153>0))goto l634;{--l36->l153;return l36-> +l124;}l634:;}l36->l124= *l36->l90++;{if(!(l36->l124==0))goto l623;l36 +->l153= *l36->l90++;l623:;}return l36->l124;}static char l512(s*b, +const unsigned char*l319){unsigned short l175;unsigned char n,p;l161 +l36; * (volatile unsigned short* )((b)->g+1028)=36; * (volatile +unsigned short* )((b)->g+1024)=39; * (volatile unsigned short* )((b)-> +g+1028)=(p=4);{n=0;l620:if(!(n<255))goto l612;goto l608;l616:++n;goto +l620;l608:outb(128,0);goto l616;l612:;} * (volatile unsigned short* )( +(b)->g+1028)=(p&=~4);{n=0;l607:if(!(n<2*3))goto l596;goto l264;l600: +++n;goto l607;l264:outb(128,0);goto l600;l596:;}{if(!(( * (volatile +unsigned short* )((b)->g+1028)&8)))goto l262;{; * (volatile unsigned +short* )((b)->g+1028)=(p|=4);return 0;}l262:;} * (volatile unsigned +short* )((b)->g+1028)=(p|=4);{n=0;l260:if(!(n<5*3))goto l255;goto l241 +;l259:++n;goto l260;l241:{ * (volatile unsigned short* )((b)->g+1028)= +(p|=4);outb(128,0);}goto l259;l255:;}l175=l671(&l36,l319);{;l239:if(! +(l175>0))goto l236;goto l243;l238:--l175;goto l239;l243:{n=l283(&l36); +{if(!(( * (volatile unsigned short* )((b)->g+1028)&8)==0))goto l790;{ +;goto l214;}l790:;}{if(!(( * (volatile unsigned short* )((b)->g+1028)& +16)))goto l782;{{n=0;l756:if(!(n<50))goto l742;goto l730;l726:++n; +goto l756;l730:( * (volatile unsigned short* )((b)->g+1028)=(p|2), * ( +volatile unsigned short* )((b)->g+1028)=p);goto l726;l742:;}{if(!(( * +(volatile unsigned short* )((b)->g+1028)&8)==0))goto l723;{;goto l214 +;}l723:;};return 1;}l782:;}{{if(!(n&1))goto l712;p|=1;goto l708;l712: +;p&=~1;l708:;} * (volatile unsigned short* )((b)->g+1028)=p;( * ( +volatile unsigned short* )((b)->g+1028)=(p|2), * (volatile unsigned +short* )((b)->g+1028)=p);};{{if(!(n&2))goto l703;p|=1;goto l653;l703: +;p&=~1;l653:;} * (volatile unsigned short* )((b)->g+1028)=p;( * ( +volatile unsigned short* )((b)->g+1028)=(p|2), * (volatile unsigned +short* )((b)->g+1028)=p);};{{if(!(n&4))goto l648;p|=1;goto l647;l648: +;p&=~1;l647:;} * (volatile unsigned short* )((b)->g+1028)=p;( * ( +volatile unsigned short* )((b)->g+1028)=(p|2), * (volatile unsigned +short* )((b)->g+1028)=p);};{{if(!(n&8))goto l643;p|=1;goto l633;l643: +;p&=~1;l633:;} * (volatile unsigned short* )((b)->g+1028)=p;( * ( +volatile unsigned short* )((b)->g+1028)=(p|2), * (volatile unsigned +short* )((b)->g+1028)=p);};{{if(!(n&16))goto l637;p|=1;goto l635;l637 +:;p&=~1;l635:;} * (volatile unsigned short* )((b)->g+1028)=p;( * ( +volatile unsigned short* )((b)->g+1028)=(p|2), * (volatile unsigned +short* )((b)->g+1028)=p);};{{if(!(n&32))goto l622;p|=1;goto l632;l622 +:;p&=~1;l632:;} * (volatile unsigned short* )((b)->g+1028)=p;( * ( +volatile unsigned short* )((b)->g+1028)=(p|2), * (volatile unsigned +short* )((b)->g+1028)=p);};{{if(!(n&64))goto l626;p|=1;goto l595;l626 +:;p&=~1;l595:;} * (volatile unsigned short* )((b)->g+1028)=p;( * ( +volatile unsigned short* )((b)->g+1028)=(p|2), * (volatile unsigned +short* )((b)->g+1028)=p);};{{if(!(n&128))goto l592;p|=1;goto l591; +l592:;p&=~1;l591:;} * (volatile unsigned short* )((b)->g+1028)=p;( * ( +volatile unsigned short* )((b)->g+1028)=(p|2), * (volatile unsigned +short* )((b)->g+1028)=p);};}goto l238;l236:;};l214:;return 0;}static +unsigned char v(s*b,unsigned char y){unsigned short l89=y|65280|b-> +l70;unsigned char n; * (volatile unsigned short* )((b)->g+1024)=255; * +(volatile unsigned short* )((b)->g+1028)=l89; * (volatile unsigned +short* )((b)->g+1024)=255; * (volatile unsigned short* )((b)->g+1028)= +l89^128; * (volatile unsigned short* )((b)->g+1024)=255;n= * ( +volatile unsigned short* )((b)->g+1028)>>8; * (volatile unsigned short + * )((b)->g+1028)=l89; * (volatile unsigned short* )((b)->g+1024)=b-> +l70;return n;}static void l(s*b,unsigned char y,unsigned char n){ +unsigned short l89=y|n<<8|b->l70; * (volatile unsigned short* )((b)-> +g+1024)=65535; * (volatile unsigned short* )((b)->g+1028)=l89; * ( +volatile unsigned short* )((b)->g+1024)=65535; * (volatile unsigned +short* )((b)->g+1028)=l89^64; * (volatile unsigned short* )((b)->g+ +1024)=65535; * (volatile unsigned short* )((b)->g+1028)=l89; * ( +volatile unsigned short* )((b)->g+1024)=b->l70;}static unsigned char +l57(e*a,unsigned char y){l(a->d,a->l51,y);return v(a->d,a->d->l85);} +static void i(e*a,unsigned char y,unsigned char n){l(a->d,a->l51,y);l +(a->d,a->d->l85,n);}static unsigned char l92(e*a,unsigned char y, +unsigned char l213){unsigned char n;l(a->d,a->l51,y);l(a->d,a->d->l85 +,l213);l(a->d,a->l51,y);n=v(a->d,a->d->l85)&l213;l(a->d,a->l51,y);l(a +->d,a->d->l85,n);return n;}static void l166(s*b,unsigned char n, +unsigned char l27){int c;l(b,40,l27);{c=0;l590:if(!(c<8))goto l578; +goto l587;l589:++c;goto l590;l587:{{if(!((n>>c)&1))goto l586;{l(b,40, +l27|4);l(b,40,l27|4);l(b,40,l27|4);l(b,40,l27|4);l(b,40,l27|4|8);l(b, +40,l27|4|8);l(b,40,l27|4|8);l(b,40,l27|4|8);}goto l585;l586:;{l(b,40, +l27);l(b,40,l27);l(b,40,l27);l(b,40,l27);l(b,40,l27|8);l(b,40,l27|8); +l(b,40,l27|8);l(b,40,l27|8);}l585:;}}goto l589;l578:;}l(b,40,l27);} +static void l104(e*a,unsigned char y,unsigned char n){unsigned char +l27=16<<a->r;l(a->d,40,0);l166(a->d,(y<<1)|0,l27);l166(a->d,n,l27);l( +a->d,40,0);}static unsigned char l610(e*a,unsigned char y){unsigned +char l27=16<<a->r;unsigned char n=0;int c;l(a->d,40,0);l166(a->d,(y<< +1)|1,l27);{c=0;l584:if(!(c<8))goto l555;goto l554;l556:++c;goto l584; +l554:{l(a->d,40,l27|8);{if(!(v(a->d,a->l42)&128))goto l552;n|=1<<c; +l552:;}l(a->d,40,l27);}goto l556;l555:;}l(a->d,40,0);return n;} +unsigned long cp_regio(e*a,int l203,int y,unsigned long n){switch( +l203){case 0:n=v(a->d,(unsigned char)y);break;case 1:n=l57(a,( +unsigned char)y);break;case 2:n=l92(a,(unsigned char)y,255);break; +case 3:n=l610(a,16);break;case 4:n=v(a->d,(unsigned char)y);l(a->d,( +unsigned char)y,(unsigned char)n);break;case 9:l(a->d,(unsigned char)y +,(unsigned char)n);n=v(a->d,(unsigned char)y);break;case 5:l(a->d,( +unsigned char)y,(unsigned char)n);break;case 6:l104(a,16,(unsigned +char)n);break;case 7: * (unsigned long* )(a->x+y)=n;n= * (unsigned +long* )(a->x+y);break;case 8:i(a,(unsigned char)y,(unsigned char)n);n +=l57(a,(unsigned char)y);break;}return n;}static unsigned short l527( +s*b){int c;unsigned short n;unsigned short l223; * (volatile unsigned +short* )((b)->g+1024)=255;{c=255;l550:if(!(c>=0))goto l547;goto l545; +l537:c--;goto l550;l545:{ * (volatile unsigned short* )((b)->g+1028)= +c|32; * (volatile unsigned short* )((b)->g+1024)=255;n=( * (volatile +unsigned short* )((b)->g+1028))>>8;l223=((c&(~32))|((~(c<<1))&32));{ +if(!(n!=l223))goto l542;{ * (volatile unsigned short* )((b)->g+1028)= +32; * (volatile unsigned short* )((b)->g+1024)=b->l70; * (volatile +unsigned short* )((b)->g+1028)=b->l70;return(c|(n<<8));}l542:;}}goto +l537;l547:;} * (volatile unsigned short* )((b)->g+1024)=b->l70; * ( +volatile unsigned short* )((b)->g+1028)=b->l70;return 0;}unsigned +short cp_init(s*b,int r,unsigned char*g){unsigned char l49;e*a;b->g=g +;b->r=(unsigned char)r;b->l28=0;b->l179=0; * (volatile unsigned long* +)((b)->g+8)=262144; * (volatile unsigned short* )((b)->g+1032)=65535; + * (volatile unsigned short* )((b)->g+1028)=65535; * (volatile +unsigned short* )((b)->g+1024)=65535;b->l132=4;b->l115=0;b->l70=192;b +->l85=38;l49=v(b,0);{if(!((l49^128)!=v(b,0)))goto l539;{unsigned short +l191;const unsigned char*l73=0;{if(!((l49&56)!=40))goto l486;{switch( +l49>>5){case 2:l73=l435;break;case 3:l73=l518;break;case 6:l73=l655; +break;case 7:l73=l557;break;default:return 65535;}{if(!(b->l73))goto +l466;l73=b->l73;l466:;}{if(!(l73==0))goto l463;return 65535;l463:;} +l512(b,l73);b->l577=l49>>5;{if(!((l191=l527(b))))goto l414;return l191 +;l414:;}b->l70=224;b->l85=30;l49=v(b,0);}l486:;}}l539:;}switch(l49&56 +){default:b->f=0;strcpy(b->l43,"\x55\x6e\x6b\x6e\x6f\x77\x6e");break; +case 56:{if(!(l49&64))goto l368;{b->f=6;strcpy(b->l43,"\x54\x61\x75" +"\x2d\x50\x43\x49\x34");}goto l367;l368:;{b->f=1;strcpy(b->l43,"\x54" +"\x61\x75\x2d\x50\x43\x49");}l367:;}break;case 8:{if(!(l49&64))goto +l365;{b->f=10;strcpy(b->l43,"\x54\x61\x75\x2d\x50\x43\x49\x34\x2d\x45" +"\x31\x2f\x58");}goto l363;l365:;{b->f=5;strcpy(b->l43,"\x54\x61\x75" +"\x2d\x50\x43\x49\x2d\x45\x31");}l363:;}break;case 16:{if(!(l49&64))goto +l371;{b->f=7;strcpy(b->l43,"\x54\x61\x75\x2d\x50\x43\x49\x34\x2d\x47" +"\x37\x30\x33\x2f\x58");}goto l372;l371:;{b->f=4;strcpy(b->l43,"\x54" +"\x61\x75\x2d\x50\x43\x49\x2d\x47\x37\x30\x33");}l372:;}break;case 24 +:{if(!(l49&64))goto l393;{b->f=10;strcpy(b->l43,"\x54\x61\x75\x2d\x50" +"\x43\x49\x34\x2d\x32\x45\x31\x2f\x58");}goto l338;l393:;{b->f=9; +strcpy(b->l43,"\x54\x61\x75\x2d\x50\x43\x49\x2d\x32\x45\x31");}l338:; +}break;case 32:b->f=11;strcpy(b->l43,"\x54\x61\x75\x2d\x50\x43\x49" +"\x2d\x34\x45\x31");break;case 40:b->f=2;strcpy(b->l43,"\x54\x61\x75" +"\x2d\x50\x43\x49\x2d\x45\x33");break;case 48:b->f=3;strcpy(b->l43,"" +"\x54\x61\x75\x2d\x50\x43\x49\x2d\x48\x53\x53\x49");break;}{if(!(b->f +==2))goto l395;{switch(l49&6){default:break;case 6:b->k->f=4;b->l80= +34368000;break;case 4:strcpy(b->l43,"\x54\x61\x75\x2d\x50\x43\x49\x2d" +"\x54\x33");b->k->f=7;b->l80=44736000;break;case 2:strcpy(b->l43,"" +"\x54\x61\x75\x2d\x50\x43\x49\x2d\x53\x54\x53\x2d\x31");b->k->f=8;b-> +l80=51840000;break;}}goto l396;l395:;{switch(l49&6){default:break; +case 6:b->l80=32768000;break;case 4:b->l80=16384000;break;}}l396:;}{a +=b->k;l397:if(!(a<b->k+4))goto l399;goto l400;l333:++a;goto l397;l400 +:{a->d=b;l190(a);}goto l333;l399:;}return 0;}static void l68(e*a){ +unsigned char l76=1;{if(!(a->f!=4&&a->f!=7&&a->f!=8))goto l401;return +;l401:;}{if(!(a->l60))goto l330;l76|=2;l330:;}{if(!(a->l168))goto l424 +;l76|=8;l424:;}{if(!(a->l165))goto l425;l76|=48;goto l426;l425:;{if(! +(a->l87))goto l427;{switch(a->f){case 4:l76|=16;break;case 7:l76|=32; +break;case 8:default:break;}}l427:;}l426:;}{if(!(a->l150))goto l428; +l76|=128;goto l430;l428:;{if(!(a->l54))goto l431;l76|=64;l431:;}l430: +;}{if(!(a->l180))goto l432;l76|=4;l432:;}l(a->d,8,l76);}static void +l190(e*a){a->r=a-a->d->k;a->w=0;a->l157=0;a->l145=0;a->l164=0;a->l178 +=0;a->l54=0;a->l150=0;a->l60=0;a->l128=0;a->j=~1;a->l187=0;a->l46=0;a +->l53=0;a->u=a->r;a->l32=0;a->l40=0;a->l26=0;a->l37=0;a->l87=0;a-> +l165=0;a->l168=0;a->l122=1;switch(a->d->f){default:a->f=0;break;case 6 +:a->f=1;break;case 11:a->f=3;break;case 8:a->f=2;break;case 10:a->f=a +->r<2?3:1;break;case 9:a->f=a->r<2?3:6;break;case 7:a->f=a->r<2?2:1; +break;case 1:a->f=a->r<2?1:0;break;case 5:a->f=a->r<2?3:0;break;case 4 +:a->f=a->r<2?2:0;break;case 2:a->f=a->r==0?a->f:0;break;case 3:a->f=a +->r==0?5:0;break;}{if(!(a->f==6))goto l433;a->j=0;l433:;}a->x=a->d->g ++a->r*128+256;switch(a->r){case 0:a->l127=(unsigned long* )(a->d->g+ +20);a->l133=(unsigned long* )(a->d->g+36);a->l83=(unsigned long* )(a +->d->g+80);a->l129=(unsigned long* )(a->d->g+84);a->l94=(unsigned long + * )(a->d->g+152);a->l159=(unsigned long* )(a->d->g+200);a->l79=( +unsigned long* )(a->d->g+88);a->l126=(unsigned long* )(a->d->g+176);a +->l149=(unsigned long* )(a->d->g+224);a->l69=4;a->l82=4;a->l63=32;a-> +l42=36;a->l51=32;a->l59=12;break;case 1:a->l127=(unsigned long* )(a-> +d->g+24);a->l133=(unsigned long* )(a->d->g+40);a->l83=(unsigned long* +)(a->d->g+92);a->l129=(unsigned long* )(a->d->g+96);a->l94=(unsigned +long* )(a->d->g+156);a->l159=(unsigned long* )(a->d->g+204);a->l79=( +unsigned long* )(a->d->g+100);a->l126=(unsigned long* )(a->d->g+180); +a->l149=(unsigned long* )(a->d->g+228);a->l69=5;a->l82=5;a->l63=34;a +->l42=38;a->l51=34;a->l59=14;break;case 2:a->l127=(unsigned long* )(a +->d->g+28);a->l133=(unsigned long* )(a->d->g+44);a->l83=(unsigned long + * )(a->d->g+104);a->l129=(unsigned long* )(a->d->g+108);a->l94=( +unsigned long* )(a->d->g+160);a->l159=(unsigned long* )(a->d->g+208); +a->l79=(unsigned long* )(a->d->g+112);a->l126=(unsigned long* )(a->d +->g+184);a->l149=(unsigned long* )(a->d->g+232);a->l69=6;a->l82=6;a-> +l63=48;a->l42=52;a->l51=48;a->l59=13;break;case 3:a->l127=(unsigned +long* )(a->d->g+32);a->l133=(unsigned long* )(a->d->g+48);a->l83=( +unsigned long* )(a->d->g+116);a->l129=(unsigned long* )(a->d->g+120); +a->l94=(unsigned long* )(a->d->g+164);a->l159=(unsigned long* )(a->d +->g+212);a->l79=(unsigned long* )(a->d->g+124);a->l126=(unsigned long + * )(a->d->g+188);a->l149=(unsigned long* )(a->d->g+236);a->l69=7;a-> +l82=7;a->l63=50;a->l42=54;a->l51=50;a->l59=15;break;}{if(!(a->d->l85 +==30))goto l434;{a->l37=1;switch(a->r){case 0:a->l63=16;a->l35=20;a-> +l51=24;break;case 1:a->l63=18;a->l35=21;a->l51=26;break;case 2:a->l63 +=17;a->l35=22;a->l51=25;break;case 3:a->l63=19;a->l35=23;a->l51=27; +break;}}l434:;}l68(a);}static void l151(e*a){unsigned char l143;{if(! +(!a->l35))goto l455;return;l455:;}{if(!(a->d->k[a->u].l31))goto l277; +l143=a->r;goto l457;l277:;l143=a->u;l457:;}{if(!(!a->l31&&!a->l58))goto +l458;l143|=4;l458:;}l(a->d,a->l35,l143);}void cp_hard_reset(s*b){l(b, +0,128);}static void l735(e*a){int c;i(a,172,1);{c=0;l459:if(!(c<=255))goto +l461;goto l270;l267:c++;goto l459;l270:{{if(!(c!=172))goto l469;i(a, +192,0);l469:;}}goto l267;l461:;}i(a,172,0);{c=0;l269:if(!(c<=255))goto +l820;goto l821;l818:c++;goto l269;l821:{{if(!(c!=172))goto l410;i(a, +192,0);l410:;}}goto l818;l820:;}}void cp_reset(s*b,l170*l67,unsigned +long l74){e*a;{if(!(!b->g))goto l823;return;l823:;}{if(!(l67))goto +l824;memset(l67,0,sizeof(l170));l824:;} * (volatile unsigned long* )( +(b)->g+8)=262144; * (volatile unsigned short* )((b)->g+1032)=65535; * +(volatile unsigned short* )((b)->g+1028)=65535; * (volatile unsigned +short* )((b)->g+1024)=65535; * (volatile unsigned long* )((b)->g+768)= +4194304;l(b,0,b->l132&~4);cp_led(b,0); * (volatile unsigned long* )(( +b)->g+12)=(128/32-1)<<28|(128/32-1)<<24|(128/32-1)<<20|(128/32-1)<<16 +|(128/32-1)<<12|(128/32-1)<<8|(128/32-1)<<4|(128/32-1); * (volatile +unsigned long* )((b)->g+16)=(128/32-1)<<16; * (volatile unsigned long + * )((b)->g+68)=1108361216; * (volatile unsigned long* )((b)->g+72)= +3740719104UL; * (volatile unsigned long* )((b)->g+52)=404232216; * ( +volatile unsigned long* )((b)->g+76)=7;cp_set_mux(b,b->l28);{if(!(l67 +))goto l825;{b->l95=l67->l95; * (volatile unsigned long* )((b)->g+64)= +l74+((char* )b->l95-(char* )l67);}l825:;}b->l111=0;{a=b->k;l412:if(!( +a<b->k+4))goto l827;goto l849;l829:++a;goto l412;l849:{{if(!(a->f==2))goto +l850;l183(a);goto l851;l850:;{if(!(a->f==3))goto l852;l209(a);l852:;} +l851:;}l151(a);a->l34=0; * (volatile unsigned long* )((a)->x+8)=a-> +l34;a->l38=0; * (volatile unsigned long* )((a)->x+16)=a->l38;a->l144= +1; * (volatile unsigned long* )((a)->x+84)=a->l72=~0; * (volatile +unsigned long* )((a)->x+28)=520552703; * (volatile unsigned long* )(( +a)->x+32)=520552703;{if(!(l67))goto l853;{a->l138=l67->l138[a->r];a-> +l101=l67->l101[a->r];( * (a)->l127)=l74+((char* )a->l138-(char* )l67); +( * (a)->l133)=l74+((char* )a->l101-(char* )l67);;}l853:;}a->l593=0;a +->l118=0;( * (a)->l83)=0;( * (a)->l79)=0;}goto l829;l827:;} * ( +volatile unsigned long* )((b)->g+0)=4279239169UL;{a=b->k;l854:if(!(a< +b->k+4))goto l856;goto l857;l220:++a;goto l854;l857:{{if(!(a->f!=3||! +a->l37||l57(a,15)!=163))goto l858;goto l220;l858:;}l735(a);}goto l220 +;l856:;}}void cp_stop_chan(e*a){unsigned long l177=0;unsigned long l93 +=0;int c;{if(!(!a->f))goto l879;return;l879:;}outb(128,0);a->l34&=~ +2147483648UL; * (volatile unsigned long* )((a)->x+8)=a->l34;{c=0;l880 +:if(!(c<200))goto l882;goto l883;l884:c++;goto l880;l883:outb(128,0); +goto l884;l882:;}{if(!(a->l38&134217728))goto l885;{;a->l38&=~ +134217728; * (volatile unsigned long* )((a)->x+16)=a->l38;l177|= +4194304;l93|=65536;}l885:;}outb(128,0);{if(!(( * (a)->l79)!=0))goto +l442;{;{c=0;l887:if(!(c<4))goto l888;goto l452;l444:++c;goto l887; +l452: * (volatile unsigned long* )&a->l39[c].z=2147483648UL| +1073741824;goto l444;l888:;}l177|=2097152;l93|=16777216;}l442:;}outb( +128,0); * (volatile unsigned long* )((a)->x+0)=l93;outb(128,0);( * (a +)->l83)=l177;outb(128,0); * (volatile unsigned long* )((a->d)->g+0)= +513;outb(128,0);a->l72=~0;}void cp_start_chan(e*a,int l188,int l206, +l212*l52,unsigned long l74){int c;unsigned long l93=0;{if(!(!a->f))goto +l907;return;l907:;}{if(!(l52))goto l583;{;a->l33=l52->l33;a->l39=l52 +->l39;{c=0;l650:if(!(c<64))goto l354;goto l353;l454:++c;goto l650; +l353:a->l61[c]=l74+((char* )(a->l33+c)-(char* )l52);goto l454;l354:;} +{c=0;l582:if(!(c<4))goto l529;goto l462;l290:++c;goto l582;l462:a-> +l152[c]=l74+((char* )(a->l39+c)-(char* )l52);goto l290;l529:;};{c=0; +l336:if(!(c<64))goto l328;goto l320;l257:++c;goto l336;l320: * ( +volatile unsigned long* )&a->l33[c].l96=a->l61[(c+1)%64];goto l257; +l328:;}{c=0;l305:if(!(c<4))goto l273;goto l234;l288:++c;goto l305; +l234: * (volatile unsigned long* )&a->l39[c].l96=a->l152[(c+1)%4]; +goto l288;l273:;}}l583:;}{if(!(a->d->f==2))goto l905;{a->l34|=12; * ( +volatile unsigned long* )((a)->x+8)=a->l34;a->l44=2097152;}l905:;}a-> +l44|=574914560; * (volatile unsigned long* )((a)->x+12)=a->l44; +cp_set_phony(a,a->l58); * (volatile unsigned long* )((a)->x+64)=32768 +|(1664/32-1);{if(!(a->f==2))goto l544;l183(a);l544:;}a->l34|= +2147483648UL; * (volatile unsigned long* )((a)->x+8)=a->l34; +cp_set_nrzi(a,a->l145);cp_set_dir(a,a->u);cp_set_baud(a,a->w); +cp_set_dtr(a,0);cp_set_rts(a,0);( * (a)->l79)=0;{c=0;l511:if(!(c<64))goto +l460;goto l335;l327:++c;goto l511;l335:{{if(!(l52))goto l351;{a->l136 +[c]=l52->l745[c];a->l208[c]=l74+((char* )a->l136[c]-(char* )l52); * ( +volatile unsigned long* )&a->l33[c].z=1664<<16; * (volatile unsigned +long* )&a->l33[c].p=a->l208[c];}l351:;} * (volatile unsigned long* )& +a->l33[c].t=0;}goto l327;l460:;}{c=0;l265:if(!(c<4))goto l304;goto +l297;l312:++c;goto l265;l297:{{if(!(l52))goto l792;{a->l147[c]=l52-> +l624[c];a->l189[c]=l74+((char* )a->l147[c]-(char* )l52); * (volatile +unsigned long* )&a->l39[c].z=2147483648UL|1073741824; * (volatile +unsigned long* )&a->l39[c].p=a->l189[c];}l792:;} * (volatile unsigned +long* )&a->l39[c].t=0;a->l81[c]=0;}goto l312;l304:;}{if(!(l52))goto +l746;;l746:;}a->l30=0;a->l47=0;a->l45=a->l47; * (volatile unsigned +long* )&a->l33[64-1].l96=a->l61[64-1];{if(!(l188))goto l714;{{if(!(!a +->l144))goto l694;{a->l72&=~65536;}goto l674;l694:;{a->l72&=~65536; * +(volatile unsigned long* )((a)->x+84)=a->l72;}l674:;}l93|=16777216;} +l714:;}{if(!(l206))goto l660;{a->l38|=134217728; * (volatile unsigned +long* )((a)->x+16)=a->l38;{if(!(!a->l144))goto l588;{a->l72&=~2;}goto +l649;l588:;{a->l72&=~2; * (volatile unsigned long* )((a)->x+84)=a-> +l72;}l649:;}l93|=65536;{if(!(a->f==2))goto l638;l(a->d,a->l42,255); +l638:;};( * (a)->l129)=a->l61[a->l30];( * (a)->l83)=1048576; * ( +volatile unsigned long* )((a->d)->g+0)=513;}l660:;} * (volatile +unsigned long* )((a)->x+0)=l93;}void cp_stop_e1(e*a){{if(!(a->f!=3||a +->l130==0))goto l627;return;l627:;}a->l130=0;i(a,23,0);}void +cp_start_e1(e*a){{if(!(a->f!=3||a->l130==1))goto l526;return;l526:;}a +->l130=1;i(a,23,16);}void cp_set_dtr(e*a,int m){a->l193=(m!=0);{if(!( +a->l193))goto l519;a->l32|=1;goto l495;l519:;a->l32&=~1;l495:;}l(a->d +,a->l69,a->l32);}void cp_set_rts(e*a,int m){a->l216=(m!=0);{if(!(a-> +l216))goto l487;a->l44|=1048576;goto l456;l487:;a->l44&=~1048576;l456 +:;} * (volatile unsigned long* )((a)->x+12)=a->l44;}int cp_get_dsr(e* +a){{if(!(a->f!=1))goto l364;return 0;l364:;}return(v(a->d,a->l82)&1)!= +0;}int cp_get_cd(e*a){{if(!(a->f==0))goto l361;return 0;l361:;}{if(!( +a->d->f==2))goto l357;return(v(a->d,9)&2)==0;l357:;}{if(!(a->f==6))goto +l350;{ * (volatile unsigned long* )((a->d->k+a->u)->x+4);return( * ( +volatile unsigned long* )((a->d->k+a->u)->x+4)&2097152)==0;}goto l346 +;l350:;{ * (volatile unsigned long* )((a)->x+4);return( * (volatile +unsigned long* )((a)->x+4)&2097152)==0;}l346:;}}int cp_get_cts(e*a){{ +if(!(a->f!=1))goto l318;return 0;l318:;}return(v(a->d,a->l82)&8)!=0;} +int cp_get_txcerr(e*a){{if(!(a->f!=1))goto l315;return 0;l315:;} +return(v(a->d,a->l82)&16)!=0;}int cp_get_rxcerr(e*a){{if(!(a->f!=1))goto +l311;return 0;l311:;}return(v(a->d,a->l82)&32)!=0;}void cp_set_baud(e + *a,int w){int l55,l50;{if(!(a->f==2||((a->f==3)&&a->l31)))goto l308; +{int l91=(w+32000)/64000*64;{if(!(a->l58))goto l303;l91=2048;l303:;}a +->l40&=~7;{if(!(!l91||l91>1024))goto l300;{a->l40|=0;a->w=2048000;} +goto l296;l300:;{if(!(l91>512))goto l293;{a->l40|=2;a->w=1024000;} +goto l286;l293:;{if(!(l91>256))goto l276;{a->l40|=3;a->w=512000;}goto +l235;l276:;{if(!(l91>128))goto l232;{a->l40|=4;a->w=256000;}goto l231 +;l232:;{if(!(l91>64))goto l229;{a->l40|=5;a->w=128000;}goto l228;l229 +:;{a->l40|=6;a->w=64000;}l228:;}l231:;}l235:;}l286:;}l296:;}l(a->d,a +->l63,a->l40);}goto l896;l308:;{if(!((a->f==3||a->f==6)&&!a->l58))goto +l876;{unsigned long l543=a->j;int c;a->w=0;{c=0;l842:if(!(c<32))goto +l791;goto l532;l819:++c;goto l842;l532:{if(!((l543>>c)&1))goto l530;a +->w+=64000;l530:;}goto l819;l791:;}}goto l525;l876:;{if(!(a->f==3&&a +->l58))goto l523;{a->w=2048000;}goto l522;l523:;a->w=w;l522:;}l525:;} +l896:;}a->l34&=~55;{if(!(a->f==4||a->f==7||a->f==8))goto l520;{a->w=a +->d->l80;a->l34|=12;l50=l55=0;}goto l517;l520:;{if(!(!a->w||a->f!=1))goto +l510;{a->l157=0;{if(!(a->f==1))goto l515;a->l54=0;l515:;}l50=l55=0;a +->l32|=4;}goto l494;l510:;{if(!(a->l157))goto l379;{a->l34|=54;l140(a +->d->l80/16,a->w,&l50,&l55);a->l32&=~4;}goto l380;l379:;{if(!(a->l54))goto +l381;{a->l34|=55;l140(a->d->l80,a->w,&l50,&l55);a->l32&=~4;}goto l348 +;l381:;{a->l34|=48;l140(a->d->l80,a->w,&l50,&l55);a->l32&=~4;}l348:;} +l380:;}l494:;}l517:;}l(a->d,a->l69,a->l32&~4); * (volatile unsigned +long* )((a)->x+8)=a->l34; * (volatile unsigned long* )((a)->x+44)=l50 +<<8|l55;l(a->d,a->l69,a->l32);{if(!(a->f==1&&a->l54))goto l383;a->l44 +|=256;goto l384;l383:;a->l44&=~256;l384:;} * (volatile unsigned long* +)((a)->x+12)=a->l44;}void cp_set_dpll(e*a,int m){{if(!(a->f!=1))goto +l385;return;l385:;}a->l157=m&&(a->w!=0);cp_set_baud(a,a->w);}static +void l182(e*a){unsigned char l116=0;{if(!(a->l31))goto l386;{l116|=1| +64;}goto l344;l386:;{if(!(a->d->l28&&a->l35))goto l389;{l116|=0;{if(! +(!a->l46))goto l323;l116|=32;l323:;}}goto l411;l389:;{l116|=1|8;{if(! +(!a->l46))goto l322;l116|=32;l322:;}}l411:;}l344:;}i(a,18,l116);} +static void l192(e*a){unsigned char l204=0;{if(!(!a->l31&&a->l53))goto +l413;l204|=2;l413:;}i(a,19,l204);}static void l162(e*a){unsigned char +l44=64|4;{if(!(!a->l31))goto l317;{l44|=16;{if(!(a->l53))goto l415; +l44|=1;l415:;}{if(!(a->l46))goto l416;l44|=8;l416:;}}l317:;}i(a,20, +l44);}static void l226(e*a){unsigned char l38=64;{if(!(!a->l31))goto +l417;{l38|=8;l38|=16;}l417:;}{if(!(a->l54&&!a->l37))goto l314;l38|=1; +l314:;}i(a,26,l38);}static void l219(e*a){unsigned char l215=2;{if(!( +a->d->l179&&a->l46))goto l419;{l215|=4|64;}l419:;}i(a,27,l215);} +static void l196(e*a){unsigned char l154;{if(!(a->l31))goto l441;l154 +=2;goto l292;l441:;{if(!(a->d->l28))goto l443;l154=32;goto l291;l443: +;l154=0;l291:;}l292:;}i(a,16,l154);}static void l602(e*a){unsigned +char l169;{if(!(a->d->l28||a->l37))goto l445;l169=4|2;goto l446;l445: +;l169=4;l446:;}i(a,17,l169);}static void l224(e*a){unsigned char l113 +;l113=0;{if(!(a->l187))goto l447;l113|=16;l447:;}{if(!(a->l54))goto +l448;l113|=8;l448:;}{if(!(v(a->d,8)>>a->r&16))goto l449;l113|=96;goto +l450;l449:;l113|=64;l450:;}i(a,24,l113);}static int l198(e*a,int l84){ +s*b=a->d;e*h;int j;{h=b->k;l472:if(!(h<b->k+4))goto l474;goto l475; +l473:++h;goto l472;l475:{j=1;l476:if(!(j<32))goto l254;goto l479;l477 +:++j;goto l476;l479:{if(!(h->q.j[j]==l84&&h->q.l41[j]==a->r))goto l480 +;return 1;l480:;}goto l477;l254:;}goto l473;l474:;}return 0;}static +int l628(e*a,int l84){return(a->q.j[l84]!=0);}static int l614(e*a,int +l84){s*b=a->d;e*h;int j;{h=b->k;l481:if(!(h<b->k+4))goto l503;goto +l504;l502:++h;goto l481;l504:{j=1;l505:if(!(j<32))goto l507;goto l508 +;l506:++j;goto l505;l508:{if(!(h->q.j[j]==l84&&h->q.l41[j]==a->r))goto +l509;{h->q.j[j]=0;return 1;}l509:;}goto l506;l507:;}goto l502;l503:;} +return 0;}static int l698(e*a,int l84){{if(!(a->q.j[l84]))goto l886;{ +a->q.j[l84]=0;return 1;}goto l881;l886:;return 0;l881:;}}static void +l148(e*a){s*b=a->d;e*h;unsigned long l65;int c;{if(!(a->l31))goto l786 +;{l65=0;}goto l784;l786:;{if(!(a->l35))goto l778;{l65=~1;{h=b->k;l776 +:if(!(h<b->k+4))goto l750;goto l749;l758:++h;goto l776;l749:{if(!((h +->f==3||h->f==6)&&h->u==a->r))goto l729;l65&=~h->j;l729:;}goto l758; +l750:;}{if(!(b->l28))goto l738;{c=1;l734:if(!(c<32))goto l722;goto +l718;l724:++c;goto l734;l718:{if(!((l65>>c&1)&&l198(a,c)))goto l710; +l65&=~(1<<c);l710:;}goto l724;l722:;}l738:;}}goto l709;l778:;{if(!(b +->l28))goto l706;{l65=a->r?(b->k[0].j|b->k[1].j):0;}goto l702;l706:; +l65=~a->j;l702:;}l709:;}l784:;}i(a,38,(unsigned char)(l65&254));i(a, +38+1,(unsigned char)(l65>>8));i(a,38+2,(unsigned char)(l65>>16));i(a, +38+3,(unsigned char)(l65>>24));;}void cp_set_monitor(e*a,int m){{if(! +((a->f!=3||!a->l37)&&(a->f==0||a->d->f!=2)))goto l695;return;l695:;}a +->l180=(m!=0);{if(!(a->d->f==2))goto l696;l68(a);goto l688;l696:;i(a, +172,m?112:0);l688:;}}void cp_set_dir(e*a,int u){s*b=a->d;e*h;int c;{ +if(!(a->f!=3&&a->f!=6))goto l683;{a->u=a->r;l151(a);return;}l683:;}{ +if(!(a->l31))goto l681;u=a->r;l681:;}{if(!(!a->l35))goto l680;u=(a->r +==1)?(b->l28?0:1):a->r;l680:;}{if(!((a->d->k+2)->f==3))goto l669;u&=3 +;goto l668;l669:;u&=1;l668:;}a->u=u;{h=b->k;l666:if(!(h<b->k+4))goto +l663;goto l661;l665:++h;goto l666;l661:{if(!((h->f==3||h->f==6)&&h!=a +&&h->u==a->u))goto l658;a->j&=~h->j;l658:;}goto l665;l663:;}{if(!(a-> +l35))goto l654;{{if(!(b->l28))goto l652;{c=1;l646:if(!(c<32))goto l645 +;goto l644;l640:++c;goto l646;l644:{if(!((a->j>>c&1)&&(l198(a,c)|| +l628(a,c))))goto l642;a->j&=~(1<<c);l642:;}goto l640;l645:;}l652:;} +l151(a);}l654:;}cp_set_ts(a,a->j);}void cp_set_unfram(e*a,int m){e*h; +{if(!(a->f!=3))goto l641;return;l641:;}{if(!(!a->l35))goto l636;a-> +l31=0;goto l639;l636:;a->l31=m!=0;l639:;}{if(!(a->l31))goto l727;a-> +l26|=32;goto l470;l727:;a->l26&=~32;l470:;}l(a->d,a->l59,a->l26);{if( +!(a->l31))goto l464;{cp_set_dir(a,a->r);{h=a->d->k;l731:if(!(h<a->d-> +k+4))goto l732;goto l733;l369:++h;goto l731;l733:{if(!((h->f==3||h->f +==6)&&h->u==a->r&&h!=a))goto l737;cp_set_dir(h,h->r);l737:;}goto l369 +;l732:;}}goto l736;l464:;{{h=a->d->k;l739:if(!(h<a->d->k+4))goto l753 +;goto l754;l752:++h;goto l739;l754:l151(h);goto l752;l753:;}}l736:;} +l182(a);l192(a);l162(a);l226(a);l219(a);l196(a);l148(a);cp_set_baud(a +,a->w);{if(!(a->l31))goto l755;cp_set_gsyn(a,a->l60);l755:;}}void +cp_set_lloop(e*a,int m){{if(!((a->f==1&&a->w==0)||a->f==6))goto l377; +return;l377:;}a->l54=(m!=0);{if(!(a->f==3))goto l757;{{if(!(a->l54))goto +l759;{a->l26|=16;{if(!(a->l37))goto l760;i(a,168,64);l760:;}}goto l761 +;l759:;{a->l26&=~16;{if(!(a->l37))goto l762;i(a,168,0);l762:;}}l761:; +}l(a->d,a->l59,a->l26);l226(a);l224(a);}goto l773;l757:;{if(!(a->f==2 +))goto l774;{unsigned char l200=1|4;{if(!(a->l54))goto l775;l200|=64; +l775:;}l104(a,16,l200);}goto l387;l774:;{if(!(a->d->f==2))goto l777;{ +l68(a);}goto l388;l777:;cp_set_baud(a,a->w);l388:;}l387:;}l773:;}} +void cp_set_nrzi(e*a,int m){{if(!(a->f!=1))goto l779;return;l779:;}a +->l145=m?1:0;{if(!(a->l145))goto l780;a->l34|=2097152;goto l781;l780: +;a->l34&=~2097152;l781:;} * (volatile unsigned long* )((a)->x+8)=a-> +l34;}void cp_set_invtxc(e*a,int m){{if(!(a->f!=1))goto l390;return; +l390:;}a->l164=m?1:0;{if(!(a->l164))goto l795;a->l32|=2;goto l796; +l795:;a->l32&=~2;l796:;}l(a->d,a->l69,a->l32);}void cp_set_invrxc(e*a +,int m){{if(!(a->f!=1))goto l797;return;l797:;}a->l178=m?1:0;{if(!(a +->l178))goto l398;a->l32|=8;goto l799;l398:;a->l32&=~8;l799:;}l(a->d, +a->l69,a->l32);}int cp_get_rloop(e*a){{if(!(a->f==2))goto l800;return +(v(a->d,a->l42)&16)!=0;l800:;}{if(!(a->f!=0&&a->d->f==2))goto l801; +return a->l150;l801:;}return 0;}int cp_get_cable(e*a){{if(!(a->f==1))goto +l802;switch(v(a->d,a->l82)&70){case 0:return 3;case 2:return 2;case 4 +:return 1;case 6:return 0;case 10:return 4;default:return 9;}goto l803 +;l802:;{if(!(a->f==3))goto l804;return(v(a->d,8)>>a->r&16)?11:10;goto +l816;l804:;{if(!(a->f==4))goto l817;return 10;goto l828;l817:;return 0 +;l828:;}l816:;}l803:;}}void cp_set_rloop(e*a,int m){{if(!(a->f==0||a +->d->f!=2))goto l834;return;l834:;}a->l150=m;l68(a);}void cp_set_ber( +e*a,int m){{if(!(a->f==0||a->d->f!=2))goto l835;return;l835:;}a->l165 +=m;l68(a);}void cp_set_losais(e*a,int m){{if(!(a->f==0||a->d->f!=2))goto +l836;return;l836:;}a->l122=m;{if(!(a->l122==0&&a->l87))goto l832;a-> +l87=0;l832:;}l68(a);}void cp_set_cablen(e*a,int m){{if(!(a->f==0||a-> +f==4||a->d->f!=2))goto l833;return;l833:;}a->l168=m;l68(a);}void +cp_led(s*b,int m){{if(!(m))goto l839;b->l132|=16;goto l840;l839:;b-> +l132&=~16;l840:;}l(b,0,b->l132);}int cp_get_lq(e*a){unsigned char l78 +,l66,l64;static int l117[]={0,95,195,285};int c;{if(!(a->f!=2))goto +l847;return 0;l847:;}l78=v(a->d,a->l42)&12;l66=v(a->d,a->l42)&12;{c=1 +;l848:if(!(c<20))goto l429;goto l861;l859:++c;goto l848;l861:l66=v(a +->d,a->l42)&12;goto l859;l429:;}l64=v(a->d,a->l42)&12;{c=1;l862:if(!( +c<20))goto l864;goto l865;l863:++c;goto l862;l865:l64=v(a->d,a->l42)& +12;goto l863;l864:;}{if(!(l78<=l66&&l66<=l64))goto l871;return l117[ +l66>>2];l871:;}{if(!(l66<=l64&&l64<=l78))goto l877;return l117[l64>>2 +];l877:;}{if(!(l64<=l78&&l78<=l66))goto l438;return l117[l78>>2];l438 +:;}{if(!(l78<=l64&&l64<=l66))goto l889;return l117[l64>>2];l889:;}{if +(!(l64<=l66&&l66<=l78))goto l895;return l117[l66>>2];l895:;}return +l117[l78>>2];}static void l140(long l199,long w,int*l50,int*l55){{ * +l50=0;l891:if(!(1))goto l893;goto l894;l892:++ *l50;goto l891;l894:{ * +l55=(((2*l199/w)>> *l50)+1)/2-1;{if(!( *l55<0|| *l50>15))goto l899;{ * +l50=0; *l55=0;return;}l899:;}{if(!( *l55<=63))goto l903;return;l903:; +}}goto l892;l893:;}}static void l183(e*a){{if(!(a->f!=2))goto l904; +return;l904:;}cp_set_gsyn(a,a->l60);cp_set_scrambler(a,a->l128);l104( +a,16,(32|64));l104(a,16,1|4);l104(a,17,0);l104(a,20,96);cp_set_lloop( +a,a->l54);}static void l209(e*a){int c;a->l26&=~128;l(a->d,a->l59,a-> +l26);cp_set_gsyn(a,a->l60);cp_set_unfram(a,a->l31);cp_set_phony(a,a-> +l58);cp_set_lloop(a,a->l54);cp_set_monitor(a,a->l180);a->l130=0;i(a, +22,0);i(a,23,0);i(a,21,0);i(a,25,0);i(a,32,155);i(a,33,223);i(a,42, +255);{if(!(a->l37))goto l581;{i(a,170,0);i(a,29,0);i(a,172,0);i(a,160 +,0);i(a,161,0);i(a,162,0);i(a,163,0);i(a,164,0);i(a,165,0);i(a,166,0); +i(a,167,0);i(a,28,0);i(a,80,0);i(a,81,0);i(a,82,0);i(a,83,0);i(a,84,0 +);i(a,85,0);i(a,86,0);i(a,87,0);i(a,176,0);i(a,177,0);i(a,178,0);i(a, +179,0);i(a,180,0);i(a,181,0);i(a,182,0);i(a,183,0);i(a,184,0);i(a,185 +,0);i(a,186,0);i(a,187,0);i(a,9,0);i(a,10,0);i(a,11,0);i(a,12,0);i(a, +13,0);i(a,14,0);i(a,173,0);i(a,174,0);i(a,175,0);i(a,188,0);i(a,189,0 +);i(a,190,0);i(a,191,0);l(a->d,11,255);}l581:;}i(a,64,11);{c=1;l528: +if(!(c<16))goto l651;goto l289;l352:++c;goto l528;l289:i(a,(unsigned +char)(64+c),255);goto l352;l651:;}{if(!(a->l37))goto l258;{i(a,170, +128);i(a,170,0);}goto l906;l258:;{i(a,27,2|8);i(a,27,2);}l906:;}{if(! +(a->l37))goto l716;{i(a,29,2|1);i(a,29,0);}goto l321;l716:;{i(a,27,2| +16);i(a,27,2);}l321:;}l92(a,6,255);l92(a,7,255);l92(a,8,255);a->l26|= +128;l(a->d,a->l59,a->l26);}void cp_set_mux(s*b,int l173){e*a;int l561 +=(l173&&!b->l28);{if(!(b->f!=5&&b->f!=10&&b->f!=11&&b->f!=9))goto l569 +;return;l569:;};switch(l173){case 0:case 2:b->l28=l173;break;default: +b->l28=1;}{if(!(!b->l28))goto l559;l195(b,0);l559:;}{if(!(b->l28))goto +l630;b->l115|=1;goto l798;l630:;b->l115&=~1;l798:;}l(b,8,b->l115);{if +(!(!b->k->l35))goto l715;{cp_set_dir(b->k+1,b->k[1].u);}l715:;}{a=b-> +k;l678:if(!(a<b->k+4))goto l580;goto l609;l631:++a;goto l678;l609:{if +(!(a->f==3))goto l594;{l182(a);l196(a);l602(a);cp_set_ts(a,a->j);} +goto l568;l594:;{if(!(a->f==6))goto l558;{cp_set_ts(a,a->j);}l558:;} +l568:;}goto l631;l580:;}{if(!(l561))goto l272;{{if(!(b->l28!=2))goto +l230;l167(b);l230:;}cp_set_ts(b->k,b->k->j);}l272:;}{if(!(b->l28))goto +l256;cp_set_gsyn(b->k,b->k->l60);l256:;}}void cp_set_dxc(e*a,l71*l156 +){l181(a,l156);}static void l181(e*a,l71*l156){s*b=a->d;e*h;int c;{if +(!(a->f!=3||!a->l35))goto l287;return;l287:;}{if(!(!b->l28))goto l280 +;memset(&a->q,0,sizeof(a->q));goto l237;l280:;memcpy(&a->q,l156, +sizeof(a->q));l237:;}a->q.j[0]=0;{if(!(!a->l46))goto l233;a->q.j[16]= +0;l233:;}{c=1;l900:if(!(c<32))goto l247;goto l249;l246:++c;goto l900; +l249:{if(!(a->q.j[c]&=31))goto l250;{{if(!((b->k+2)->f!=3))goto l251; +a->q.l41[c]&=1;goto l252;l251:;a->q.l41[c]&=3;l252:;}{h=b->k;l253:if( +!(h<b->k+4))goto l135;goto l890;l222:++h;goto l253;l890:{{if(!(h->f!= +3))goto l691;goto l222;l691:;}{if(!(h->r==a->q.l41[c]&&a->q.j[c]==16 +&&!h->l46))goto l690;{a->q.j[c]=0;goto l135;}l690:;}{if(!((h->u==a->q +.l41[c]&&((h->j>>a->q.j[c])&1))||(h->u==a->r&&((h->j>>c)&1))))goto +l686;{a->q.j[c]=0;goto l135;}l686:;}{if(!(h->r==a->r))goto l682;goto +l135;l682:;}}goto l222;l135:;}}l250:;}goto l246;l247:;}l(b,8,b->l115& +~1);l(b,28,a->r<<5);l(b,31,139);{c=1;l670:if(!(c<32))goto l664;goto +l662;l667:++c;goto l670;l662:l(b,31,(!a->q.j[c])?141:(a->q.l41[c]<<5)| +a->q.j[c]);goto l667;l664:;}l(b,8,b->l115);{c=0;l659:if(!(c<4))goto +l618;goto l615;l207:c++;goto l659;l615:{{if(!((b->k+c)->f!=3))goto +l613;goto l207;l613:;}l148(b->k+c);}goto l207;l618:;}}void cp_set_ts( +e*a,unsigned long j){s*b=a->d;e*h;int c;{if(!(a->f!=3&&a->f!=6))goto +l611;return;l611:;}a->j=j&4294967294UL;{if(!(b->k[a->u].l31||b->k[a-> +u].f!=3))goto l606;a->j=0;l606:;}{if(!(!b->k[a->u].l46))goto l604;a-> +j&=~(1<<16);l604:;}{h=b->k;l603:if(!(h<b->k+4))goto l601;goto l599; +l597:++h;goto l603;l599:{if(!((h->f==3||h->f==6)&&h->r!=a->r&&h->u==a +->u))goto l575;a->j&=~h->j;l575:;}goto l597;l601:;}{if(!(b->l28&&b->k +->l35))goto l574;{c=1;l573:if(!(c<32))goto l571;goto l570;l572:++c; +goto l573;l570:{if(!((a->j>>c&1)))goto l567;{l614(b->k+a->u,c);l698(b +->k+a->u,c);}l567:;}goto l572;l571:;}l574:;}{if(!((a->j&65534)==0&&a +->l31!=0))goto l566;a->l32|=16;goto l564;l566:;a->l32&=~16;l564:;}l(a +->d,a->l69,a->l32);;{if(!(a->l37))goto l562;{int c;int j;{if(!(a->l31 +))goto l536;j=4294967295UL;goto l535;l536:;j=a->j;l535:;}l(a->d,9,a-> +r<<6);{c=1;l376:if(!(c<32))goto l378;goto l493;l496:++c;goto l376; +l493:{{l373:if(!(v(a->d,0)&1))goto l359;{outb(128,0);}goto l373;l359: +;}l(a->d,10,(unsigned char)(j>>c&1));}goto l496;l378:;}{l375:if(!(v(a +->d,0)&1))goto l341;{outb(128,0);}goto l375;l341:;}l(a->d,10,( +unsigned char)j&1);{c=1;l340:if(!(c<32))goto l407;goto l342;l326:++c; +goto l340;l342:{{l409:if(!(v(a->d,0)&1))goto l403;{outb(128,0);}goto +l409;l403:;}l(a->d,10,(unsigned char)(j>>c&1));}goto l326;l407:;}{ +l488:if(!(v(a->d,0)&1))goto l405;{outb(128,0);}goto l488;l405:;}l(a-> +d,10,(unsigned char)j&1);}l562:;}{if(!(a->f==3))goto l421;{i(a,34,( +unsigned char)(a->j&254));i(a,34+1,(unsigned char)(a->j>>8));i(a,34+2 +,(unsigned char)(a->j>>16));i(a,34+3,(unsigned char)(a->j>>24));i(a, +43,(unsigned char)(a->j&254));i(a,43+1,(unsigned char)(a->j>>8));i(a, +43+2,(unsigned char)(a->j>>16));i(a,43+3,(unsigned char)(a->j>>24));} +l421:;}{if(!(!a->l35))goto l422;{l148(b->k+0);l148(b->k+1);}goto l408 +;l422:;{{if(!(b->l28!=2))goto l278;l167(b);l278:;}{h=b->k;l465:if(!(h +<b->k+4))goto l440;goto l423;l439:h++;goto l465;l423:l181(h,&h->q); +goto l439;l440:;}}l408:;}cp_set_baud(a,a->w);}static void l167(s*b){e + *a;unsigned long j[4]={0,0,0,0},l139[2]={0,0};l71 q[4];int c;{if(!(! +b->l28||!b->k->l35))goto l492;return;l492:;}{a=b->k;l436:if(!(a<b->k+ +4))goto l453;goto l467;l225:a++;goto l436;l467:{{if(!(a->f!=3&&a->f!= +6))goto l468;goto l225;l468:;}j[a->u]|=a->j;{if(!(!a->l46))goto l451; +j[a->r]|=(1<<16);l451:;}}goto l225;l453:;}l139[0]=~(j[0]|j[1]);l139[1 +]=~(j[2]|j[3]);{c=1;l263:if(!(c<32))goto l489;goto l490;l471:c++;goto +l263;l490:{{if(!((l139[0]>>c)&1))goto l482;{q[0].j[c]=(unsigned char)c +;q[1].j[c]=(unsigned char)c;q[0].l41[c]=1;q[1].l41[c]=0;}goto l483; +l482:;{q[0].j[c]=0;q[1].j[c]=0;q[0].l41[c]=0;q[1].l41[c]=0;}l483:;}{ +if(!((l139[1]>>c)&1))goto l484;{q[2].j[c]=(unsigned char)c;q[3].j[c]= +(unsigned char)c;q[2].l41[c]=3;q[3].l41[c]=2;}goto l485;l484:;{q[2].j +[c]=0;q[3].j[c]=0;q[2].l41[c]=0;q[3].l41[c]=0;}l485:;}}goto l471;l489 +:;}memcpy(&b->k[0].q,q+0,sizeof(l71));memcpy(&b->k[1].q,q+1,sizeof( +l71));memcpy(&b->k[2].q,q+2,sizeof(l71));memcpy(&b->k[3].q,q+3,sizeof +(l71));}void cp_set_higain(e*a,int m){{if(!(a->f!=3))goto l248;return +;l248:;}a->l187=(m!=0);l224(a);}void cp_set_use16(e*a,int m){e*h;{if( +!(a->f!=3))goto l242;return;l242:;}a->l46=(m!=0);l162(a);l182(a);{h=a +->d->k;l500:if(!(h<a->d->k+4))goto l830;goto l491;l501:++h;goto l500; +l491:{if(!(h->u==a->r))goto l497;cp_set_ts(h,h->j);l497:;}goto l501; +l830:;}}void l195(s*b,int m){e*h;{if(!(!b->k->l35))goto l806;return; +l806:;}b->l179=(m&&b->l28)?1:0;{h=b->k;l499:if(!(h<b->k+4))goto l860; +goto l878;l221:++h;goto l499;l878:{{if(!(h->f!=3))goto l831;goto l221 +;l831:;}cp_set_use16(h,m?m:h->l46);l219(h);}goto l221;l860:;}}void +cp_set_phony(e*a,int m){{if(!(a->f==3))goto l868;a->l58=(m!=0);l868:; +}{if(!(a->l58))goto l826;a->u=a->r;l826:;}cp_set_dir(a,a->u);a->l38|= +1310728;{if(!(a->l58))goto l822;{a->l26|=64;a->l38|=4194305;}goto l855 +;l822:;{a->l26&=~64;a->l38&=~4194305;}l855:;} * (volatile unsigned +long* )((a)->x+16)=a->l38;{if(!(a->f==3))goto l814;{l(a->d,a->l59,a-> +l26);cp_set_baud(a,a->w);cp_set_scrambler(a,a->l128);}l814:;}}void +cp_set_crc4(e*a,int m){{if(!(a->f!=3))goto l807;return;l807:;}a->l53= +(m!=0);l162(a);l192(a);}void cp_set_scrambler(e*a,int m){{if(!(a->f!= +2&&!(a->f==3&&a->l37)))goto l672;return;l672:;}{if(!(a->l37&&(a->l58 +||!a->l31)))goto l673;m=0;l673:;}a->l128=(m!=0);{if(!(a->l128))goto +l553;a->l40|=16;goto l675;l553:;a->l40&=~16;l675:;}l(a->d,a->l63,a-> +l40);}void cp_set_gsyn(e*a,int l75){switch(a->f){case 3:{unsigned char +l26=0;e*h;s*b=a->d;{if(!(a->l31&&l75!=0))goto l676;l75=1;l676:;} +switch(l75){default:l75=0;l26=0;break;case 1:l75=2+a->r;l26=1+a->r; +break;case 2:l26=1;break;case 3:l26=2;break;case 4:l26=3;{if(!(b->k[2 +].f!=3))goto l677;return;l677:;}break;case 5:l26=4;{if(!(b->k[3].f!=3 +))goto l549;return;l549:;}break;}{h=b->k;l679:if(!(h<b->k+4))goto l548 +;goto l546;l210:h++;goto l679;l546:{{if(!(h->f!=3||(!b->l28&&h!=a)))goto +l684;goto l210;l684:;}l(b,h->l59,h->l26&~128);h->l26&=~7;h->l26|=l26; +h->l60=(unsigned char)l75;l(b,h->l59,h->l26);}goto l210;l548:;}}break +;case 2:{if(!(l75))goto l685;{a->l60=1;a->l40|=8;}goto l541;l685:;{a +->l60=0;a->l40&=~8;}l541:;}l(a->d,a->l63,a->l40);break;case 4:case 7: +case 8:{if(!(l75))goto l687;a->l60=1;goto l540;l687:;a->l60=0;l540:;} +l68(a);break;}}void cp_register_transmit(e*a,void( *l86)(e* ,void* , +int)){a->l160=l86;}void cp_register_receive(e*a,void( *l86)(e* , +unsigned char* ,int)){a->l171=l86;}void cp_register_error(e*a,void( * +l86)(e* ,int)){a->l62=l86;}static void l202(e*a){unsigned char l77, +l137;unsigned l48,l142,l53,l172,l105,l123;++a->l56;{if(!(!a->l146&&a +->l56<=1))goto l689;return;l689:;}a->t=0;l77=l92(a,6,255);l123=0;{if( +!(l77&2))goto l538;a->t|=64;l538:;}{if(!(l77&8))goto l692;a->t|=8; +l692:;}l48=(((short)(l57(a,0))<<8)|(l57(a,1)));l142=0;l53=0;l172=0;{ +if(!(!a->l31))goto l693;{l137=l57(a,30);{if(!(!a->l46&&(l77&128)))goto +l533;a->t|=256;l533:;}{if(!(!a->l46&&(l77&64)))goto l531;a->t|=512; +l531:;}{if(!(l77&4))goto l699;a->t|=2;l699:;}{if(!(l137&4))goto l700; +{a->t|=32;++l123;}l700:;}{if(!((!a->l46&&(l137&2))||(a->l53&&(l137&1))))goto +l701;{a->t|=1024;++l123;}l701:;}l142=(((short)(l57(a,2))<<4&4032)|( +l57(a,4))>>2);l53=(((short)(l57(a,2))<<8&768)|(l57(a,3)));l172=((( +short)(l57(a,4))<<8&768)|(l57(a,5)));{if(!((a->d->l28||a->l37)&&(l77& +16)))goto l524;++a->o.l120;l524:;}}l693:;}{if(!(a->t&64))goto l704;a +->t=64;goto l705;l704:;{if(!(a->t&8))goto l521;a->t=8;goto l707;l521: +;{if(!(a->t&32))goto l711;a->t=32;goto l516;l711:;{if(!(a->t&1024))goto +l713;a->t&=~(512|256);l713:;}l516:;}l707:;}l705:;}{if(!(!a->t))goto +l514;a->t=1;l514:;}a->o.l48+=l48;a->o.l109+=l142;{if(!(a->l53))goto +l717;{a->o.l121+=l53;a->o.l102+=l172;}l717:;}l105=l142;{if(!(a->l53))goto +l513;l105+=l53;l513:;}{if(!(l77&(8|2)))goto l719;++a->o.l100;goto l498 +;l719:;{{if(!(l48))goto l721;++a->o.l97;l721:;}{if(!(l105||l123||((a +->d->l28||a->l37)&&(l77&16))))goto l720;++a->o.l119;l720:;}{if(!(l123 +))goto l725;++a->o.l112;l725:;}{if(!(l48>=2048||l105>=832))goto l478; +++a->o.l114;goto l370;l478:;{{if(!(l105>1))goto l366;++a->o.l110;l366 +:;}++a->l107;a->l103+=l48+l105;}l370:;}}l498:;}{if(!(a->l56%60==0))goto +l744;{{if(!(a->l103>a->l107*2048/1000))goto l740;++a->o.l98;l740:;}a +->l107=0;a->l103=0;}l744:;}{if(!(a->l56>15*60))goto l741;{int c;{c=47 +;l747:if(!(c>0))goto l748;goto l374;l743:--c;goto l747;l374:a->l108[c +]=a->l108[c-1];goto l743;l748:;}a->l108[0]=a->o;a->l29.l48+=a->o.l48; +a->l29.l109+=a->o.l109;a->l29.l121+=a->o.l121;a->l29.l102+=a->o.l102; +a->l29.l100+=a->o.l100;a->l29.l97+=a->o.l97;a->l29.l119+=a->o.l119;a +->l29.l110+=a->o.l110;a->l29.l114+=a->o.l114;a->l29.l112+=a->o.l112;a +->l29.l120+=a->o.l120;a->l29.l98+=a->o.l98;a->o.l48=0;a->o.l109=0;a-> +o.l121=0;a->o.l102=0;a->o.l100=0;a->o.l97=0;a->o.l119=0;a->o.l110=0;a +->o.l114=0;a->o.l112=0;a->o.l120=0;a->o.l98=0;a->l146+=a->l56;a->l56= +0;}l741:;}}void cp_g703_timer(e*a){unsigned char l88;int l155;++a-> +l56;{if(!(!a->l146&&a->l56<=1))goto l751;return;l751:;}a->t=0;l88=v(a +->d,a->l42);l(a->d,a->l42,l88);l155=cp_get_cd(a);{if(!(l88&1))goto +l767;++a->o.l48;l767:;}{if(!(!l155))goto l763;a->t|=64;l763:;}{if(!( +l88&2))goto l764;a->t|=4096;l764:;}{if(!(l88&16))goto l765;a->t|=2048 +;l765:;}{if(!(!a->t))goto l382;a->t=1;l382:;}{if(!(!l155||(l88&16)))goto +l770;++a->o.l100;goto l768;l770:;{{if(!(l88&1))goto l769;++a->o.l97; +l769:;}++a->l107;{if(!(l155&&(l88&1)))goto l771;++a->l103;l771:;}} +l768:;}{if(!(a->l56/60==0))goto l772;{{if(!(a->l103*2>a->l107))goto +l783;++a->o.l98;l783:;}a->l107=0;a->l103=0;}l772:;}{if(!(a->l56>15*60 +))goto l391;{int c;{c=47;l785:if(!(c>0))goto l787;goto l788;l392:--c; +goto l785;l788:a->l108[c]=a->l108[c-1];goto l392;l787:;}a->l108[0]=a +->o;a->l29.l48+=a->o.l48;a->l29.l109+=a->o.l109;a->l29.l121+=a->o. +l121;a->l29.l102+=a->o.l102;a->l29.l100+=a->o.l100;a->l29.l97+=a->o. +l97;a->l29.l119+=a->o.l119;a->l29.l110+=a->o.l110;a->l29.l114+=a->o. +l114;a->l29.l112+=a->o.l112;a->l29.l120+=a->o.l120;a->l29.l98+=a->o. +l98;memset(&a->o,0,sizeof(a->o));a->l146+=a->l56;a->l56=0;}l391:;}} +void cp_e1_timer(e*a){{if(!(a->f==3&&(l92(a,7,255)&16)))goto l789;{; +l202(a);}l789:;}}void cp_e3_timer(e*a){unsigned char l184;unsigned +long l131;{if(!(a->d->f!=2))goto l394;return;l394:;}l(a->d,11,0);l131 +=v(a->d,11);l131|=v(a->d,12)<<8;l131|=v(a->d,13)<<16;l184=v(a->d,9);{ +if(!(l131>1024))goto l793;a->l174|=2;goto l794;l793:;a->l174&=(~2); +l794:;}l(a->d,9,a->l174|1);{if(!(l184&2))goto l805;{{if(!(a->l122&&(a +->l106&2)!=0&&!a->l87))goto l402;{a->l87=1;l68(a);}l402:;}a->l106=2;} +goto l812;l805:;{{if(!(a->l122&&(a->l106&2)==0&&a->l87))goto l808;{a +->l87=0;l68(a);}l808:;}a->l106=0;}l812:;}{if(!(l184&1))goto l809;a-> +l106|=4;l809:;}{if(!(!(a->l106&2)))goto l404;a->l141+=l131;l404:;}a-> +l158++;{if(!(a->l158>5*60*15))goto l811;{int c;{c=47;l813:if(!(c>0))goto +l406;goto l837;l420:c--;goto l813;l837:a->l185[c]=a->l185[c-1];goto +l420;l406:;}a->l185[0]=a->l141;a->l625+=a->l141;a->l619+=a->l158/5;a +->l141=0;a->l158=0;}l811:;}}static void l576(e*a){int z=(( * ( +volatile unsigned long* )&a->l33[a->l30].t)>>16&8191);unsigned char +l134;{if(!(z>0))goto l418;l134=a->l136[a->l30][--z];goto l846;l418:; +l134=0;l846:;};{if(!(l134&64))goto l874;{++a->l197;{if(!(a->l62))goto +l841;a->l62(a,4);l841:;}}goto l437;l874:;{if(!(!(l134&128)))goto l843 +;{++a->l579;{if(!(a->l62))goto l844;a->l62(a,1);l844:;}}goto l845; +l843:;{if(!(!a->l58&&!(l134&32)))goto l867;{++a->l551;{if(!(a->l62))goto +l875;a->l62(a,2);l875:;}}goto l869;l867:;{a->l563+=z;++a->l621;{if(!( +a->l171))goto l870;a->l171(a,a->l136[a->l30],z);l870:;}}l869:;}l845:; +}l437:;} * (volatile unsigned long* )&a->l33[a->l30].t=0; * (volatile +unsigned long* )&a->l33[a->l30].l96=a->l61[a->l30]; * (volatile +unsigned long* )&a->l33[(a->l30+64-1)%64].l96=a->l61[a->l30];a->l30= +++a->l30%64;}static void l766(e*a){int l201=0;int l194=0;{if(!(!a-> +l33))goto l902;return;l902:;}++a->l629;{if(!( * (volatile unsigned +long* )&a->l33[(a->l30+64-1)%64].t&1073741824))goto l872;l201++;l872: +;}{l873:if(!(( * (volatile unsigned long* )&a->l33[a->l30].t& +1073741824)&&( * (volatile unsigned long* )&a->l61[a->l30]!= * ( +volatile unsigned long* )((a)->l94))))goto l897;{l576(a);l194++;}goto +l873;l897:;}{if(!(l201))goto l898;{{if(!(l194<64-1))goto l362;{{l360: +if(!(( * (volatile unsigned long* )&a->l61[a->l30]!= * (volatile +unsigned long* )((a)->l94))))goto l358;{ * (volatile unsigned long* )& +a->l33[a->l30].t=0; * (volatile unsigned long* )&a->l33[a->l30].l96=a +->l61[a->l30]; * (volatile unsigned long* )&a->l33[(a->l30+64-1)%64]. +l96=a->l61[a->l30];a->l30=++a->l30%64;}goto l360;l358:;}}l362:;}++a-> +l197;{if(!(a->l62))goto l356;a->l62(a,5);l356:;}}l898:;}}static void +l728(e*a){int z=(( * (volatile unsigned long* )&a->l39[a->l47].z)>>16 +&8191);void*l81=a->l81[a->l47];;a->l47=++a->l47%4;{if(!(a->l47!=a-> +l45))goto l355;{int l657=(( * (a)->l126)-a->l152[0])/sizeof(l125);{if +(!(l657==(a->l47+4-1)%4))goto l349;{; * (volatile unsigned long* )((a +->d)->g+0)=1024<<a->r;outb(128,0);}l349:;}}l355:;}{if(!(z>0))goto l347 +;{a->l598+=z;++a->l298;{if(!(a->l160))goto l345;a->l160(a,l81,z);l345 +:;}}l347:;}}static void l261(e*a){unsigned long l99;int l218=0;++a-> +l617;{l163:if(!((l99= * (volatile unsigned long* )&a->l101[a->l118])!= +0))goto l343;{ * (volatile unsigned long* )&a->l101[a->l118]=0;a-> +l118=++a->l118%128;{if(!(!(l99&1073741824)))goto l339;{;goto l163;} +l339:;}{if(!(l99&33554432))goto l337;{;{if(!(l99&65536))goto l334;++ +l218;l334:;}goto l163;}l337:;};{if(!(a->l47!=a->l45&&( * (volatile +unsigned long* )&a->l39[a->l47].t&1073741824)))goto l332;l728(a);l332 +:;}}goto l163;l343:;}{if(!(l218))goto l331;{ * (volatile unsigned long + * )((a)->x+0)=16777216;++a->l240;{if(!(a->l62))goto l329;a->l62(a,3); +l329:;}}l331:;}}static void l901(s*b){unsigned long l99;e*a;{l227:if( +!((l99= * (volatile unsigned long* )&b->l95[b->l111])!=0))goto l325;{ + * (volatile unsigned long* )&b->l95[b->l111]=0;b->l111=++b->l111%128 +;{if(!((l99&3489660928UL)!=3489660928UL))goto l324;{;goto l227;}l324: +;}{a=b->k;l316:if(!(a<b->k+4))goto l310;goto l309;l313:++a;goto l316; +l309:{if(!(a->f==3&&(l92(a,7,255)&16)))goto l307;{;l202(a);}l307:;} +goto l313;l310:;}}goto l227;l325:;}}void cp_handle_interrupt(s*b){e*a +;++b->l565;{if(!( * (volatile unsigned long* )&b->l95[b->l111]))goto +l306;l901(b);l306:;}{a=b->k;l302:if(!(a<b->k+4))goto l299;goto l295; +l301:++a;goto l302;l295:{{if(!(~(a->l72)))goto l294;{{if(!( * ( +volatile unsigned long* )&a->l101[a->l118]))goto l285;l261(a);l285:;} +{if(!( * (volatile unsigned long* )&a->l61[a->l30]!= * (volatile +unsigned long* )((a)->l94)))goto l284;l766(a);l284:;}}l294:;}}goto +l301;l299:;}}int cp_interrupt(s*b){int l211=0;{l282:if(!( +cp_interrupt_poll(b,1)!=0))goto l281;{{if(!(++l211>1000))goto l279; +return-1;l279:;}cp_handle_interrupt(b);}goto l282;l281:;}return l211; +}int cp_interrupt_poll(s*b,int l217){unsigned long l205= * (volatile +unsigned long* )((b)->g+4);;{if(!(!l205))goto l275;return 0;l275:;}{ +if(!(l217))goto l274; * (volatile unsigned long* )((b)->g+4)=l205; +l274:;}return 1;}void cp_enable_interrupt(s*b,int m){e*a;{a=b->k;l268 +:if(!(a<b->k+4))goto l271;goto l244;l266:++a;goto l268;l244:{if(!(a-> +f))goto l245;{ * (volatile unsigned long* )((a)->x+84)=m?a->l72:~0;a +->l144=m?1:0;}l245:;}goto l266;l271:;}}int cp_transmit_space(e*a){ +return(4+a->l47-a->l45-1)%4;}int cp_send_packet(e*a,unsigned char*p, +int z,void*l81){{if(!(!cp_transmit_space(a)))goto l810;return-1;l810: +;}{if(!(z<=0||z>1664-1))goto l866;return-2;l866:;}a->l81[a->l45]=l81; +{if(!(p!=a->l147[a->l45]))goto l838;memcpy(a->l147[a->l45],p,z);l838: +;} * (volatile unsigned long* )&a->l39[a->l45].t=0;outb(128,0); * ( +volatile unsigned long* )&a->l39[a->l45].z=2147483648UL|1073741824|z +<<16;{if(!(a->l58))goto l560; * (volatile unsigned long* )&a->l39[a-> +l45].z|=536870912;l560:;}outb(128,0); * (volatile unsigned long* )&a +->l39[(a->l45+4-1)%4].z&=~1073741824;outb(128,0);;{if(!(( * (a)->l79)== +0))goto l815;{;( * (a)->l79)=a->l152[a->l47];outb(128,0);( * (a)->l83 +)=524288;outb(128,0); * (volatile unsigned long* )((a->d)->g+0)=513;} +goto l656;l815:;{if(!(a->l47==a->l45))goto l697;{; * (volatile +unsigned long* )((a->d)->g+0)=1024<<a->r;}l697:;}l656:;}outb(128,0);a +->l45=(a->l45+1)%4;return 0;} diff --git a/sys/dev/cp/cpddk.h b/sys/dev/cp/cpddk.h new file mode 100644 index 0000000..4bf245e --- /dev/null +++ b/sys/dev/cp/cpddk.h @@ -0,0 +1,362 @@ +/* + * Cronyx Tau-PCI DDK definitions. + * + * Copyright (C) 1999-2003 Cronyx Engineering. + * Author: Serge Vakulenko, <vak@cronyx.ru> + * + * Copyright (C) 2000-2004 Cronyx Engineering. + * Author: Roman Kurakin, <rik@cronyx.ru> + * + * This software is distributed with NO WARRANTIES, not even the implied + * warranties for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + * Authors grant any other persons or organisations a permission to use, + * modify and redistribute this software in source and binary forms, + * as long as this message is kept with the software, all derivative + * works or modified versions. + * + * $Cronyx: cpddk.h,v 1.8.4.14 2004/01/13 13:35:27 rik Exp $ + * $FreeBSD$ + */ + +#define NBRD 6 /* the maximum number of installed boards */ +#define NCHAN 4 /* the number of channels on the board */ +#define NRBUF 64 /* the number of receive buffers per channel, + min 2 */ +#define NTBUF 4 /* the number of transmit buffers per channel */ +#define BUFSZ 1664 /* i/o buffer size (26*64, min 1601) */ +#define QSZ 128 /* intr queue size (multiple of 32, min 32) */ + +#ifndef CPDDK_COBF_SAFE +#pragma pack(4) + +typedef struct { + unsigned long bpv; /* bipolar violations */ + unsigned long fse; /* frame sync errors */ + unsigned long crce; /* CRC errors */ + unsigned long rcrce; /* remote CRC errors (E-bit) */ + unsigned long uas; /* unavailable seconds */ + unsigned long les; /* line errored seconds */ + unsigned long es; /* errored seconds */ + unsigned long bes; /* bursty errored seconds */ + unsigned long ses; /* severely errored seconds */ + unsigned long oofs; /* out of frame seconds */ + unsigned long css; /* controlled slip seconds */ + unsigned long dm; /* degraded minutes */ +} cp_gstat_t; + +typedef struct { /* cross-connector parameters */ + unsigned char ts [32]; /* timeslot number */ + unsigned char link [32]; /* E1 link number */ +} cp_dxc_t; + +typedef struct { + unsigned long len; /* data buffer length, fe, hold, hi */ +#define DESC_FE 0x80000000 +#define DESC_HOLD 0x40000000 +#define DESC_HI 0x20000000 +#define DESC_LEN(v) ((v) >> 16 & 0x1fff) + + unsigned long next; /* next descriptor pointer */ + unsigned long data; /* pointer to data buffer */ + unsigned long status; /* complete, receive abort, fe, len */ +#define DESC_RA 0x00000200 +#define DESC_C 0x40000000 + + unsigned long fe; /* pointer to frame end descriptor */ +} cp_desc_t; + +typedef struct { + cp_desc_t tdesc [NTBUF]; /* transmit buffer descriptors */ + cp_desc_t rdesc [NRBUF]; /* receive buffer descriptors */ + unsigned char tbuffer [NTBUF] [BUFSZ]; /* transmit buffers */ + unsigned char rbuffer [NRBUF] [BUFSZ]; /* receive buffers */ +} cp_buf_t; + +typedef struct { + unsigned long iqrx [NCHAN] [QSZ]; /* rx intr queue */ + unsigned long iqtx [NCHAN] [QSZ]; /* tx intr queue */ + unsigned long iqlx [QSZ]; /* LBI intr queue */ +} cp_qbuf_t; + +typedef struct _cp_chan_t { + unsigned char *regs; /* base addr of channel registers */ + volatile unsigned long *RXBAR, *TXBAR, *CFG; + volatile unsigned long *BRDA, *FRDA, *LRDA, *BTDA, *FTDA, *LTDA; + unsigned char CCR, CSR, GMD, GLS, E1CS, E1CR, E1EPS; + + unsigned char num; /* channel number, 0..1 */ + unsigned char type; /* channel type */ +#define T_NONE 0 /* no channel */ +#define T_SERIAL 1 /* V.35/RS */ +#define T_G703 2 /* G.703 */ +#define T_E1 3 /* E1 */ +#define T_E3 4 /* E3 */ +#define T_HSSI 5 /* HSSI */ +#define T_DATA 6 /* no physical interface */ +#define T_T3 7 /* T3 */ +#define T_STS1 8 /* STS1 */ + + struct _cp_board_t *board; /* board pointer */ + + unsigned char dtr; /* DTR signal value */ + unsigned char rts; /* RTS signal value */ + unsigned long baud; /* data rate, bps */ + unsigned char dpll; /* dpll mode */ + unsigned char nrzi; /* nrzi mode */ + unsigned char invtxc; /* invert tx clock */ + unsigned char invrxc; /* invert rx clock */ + unsigned char lloop; /* local loopback mode */ + unsigned char rloop; /* remote loopback mode */ + unsigned char gsyn; /* G.703 clock mode */ +#define GSYN_INT 0 /* internal transmit clock source */ +#define GSYN_RCV 1 /* transmit clock source = receive */ +#define GSYN_RCV0 2 /* tclk = rclk from channel 0 */ +#define GSYN_RCV1 3 /* ...from channel 1 */ +#define GSYN_RCV2 4 /* ...from channel 2 */ +#define GSYN_RCV3 5 /* ...from channel 3 */ + + unsigned char scrambler; /* G.703 scrambler enable */ + + unsigned long ts; /* E1 timeslot mask */ + unsigned char higain; /* E1 high gain mode */ + unsigned char use16; /* E1 use ts 16 */ + unsigned char crc4; /* E1 enable CRC4 */ + unsigned char phony; /* E1 phony mode */ + unsigned char unfram; /* E1 unframed mode */ + unsigned char monitor; /* E1 monitoring mode */ + unsigned char dir; /* E1 direction mode */ + cp_dxc_t dxc; /* E1 cross-connect params */ + + unsigned char ais; /* E3 AIS */ + unsigned char losais; /* E3 AIS on LOS*/ + unsigned char ber; /* E3 BER */ + unsigned char cablen; /* E3 cable length */ + unsigned char e3cr1; /* e3cr1 clone */ + + unsigned char scc_ien; /* SCC Interrupts enabled */ + unsigned char ds_ien; /* DS Interrupts enabled */ + + unsigned long imr; + unsigned char ccr; /* CCR image */ + unsigned long ccr0; /* CCR0 clone */ + unsigned long ccr1; /* CCR1 clone */ + unsigned long ccr2; /* CCR2 clone */ + unsigned char gmd; /* G.703 MDi register image */ + unsigned char e1cr; /* E1 CR register image */ + unsigned char ds21x54; /* new tranceiver flag */ + + unsigned long rintr; /* receive interrupts */ + unsigned long tintr; /* transmit interrupts */ + ulong64 ibytes; /* input bytes */ + ulong64 obytes; /* output bytes */ + unsigned long ipkts; /* input packets */ + unsigned long opkts; /* output packets */ + unsigned long underrun; /* output underrun errors */ + unsigned long overrun; /* input overrun errors */ + unsigned long frame; /* input frame errors */ + unsigned long crc; /* input crc errors */ + + unsigned short status; /* E1/G.703 line status bit mask */ +#define ESTS_NOALARM 0x0001 /* no alarm present */ +#define ESTS_FARLOF 0x0002 /* receiving far loss of framing */ +#define ESTS_AIS 0x0008 /* receiving all ones */ +#define ESTS_LOF 0x0020 /* loss of framing */ +#define ESTS_LOS 0x0040 /* loss of signal */ +#define ESTS_AIS16 0x0100 /* receiving all ones in timeslot 16 */ +#define ESTS_FARLOMF 0x0200 /* receiving alarm in timeslot 16 */ +#define ESTS_LOMF 0x0400 /* loss of multiframe sync */ +#define ESTS_TSTREQ 0x0800 /* test code detected */ +#define ESTS_TSTERR 0x1000 /* test error */ + + unsigned long totsec; /* total seconds elapsed */ + unsigned long cursec; /* current seconds elapsed */ + unsigned long degsec; /* degraded seconds */ + unsigned long degerr; /* errors during degraded seconds */ + cp_gstat_t currnt; /* current 15-min interval data */ + cp_gstat_t total; /* total statistics data */ + cp_gstat_t interval [48]; /* 12 hour period data */ + unsigned long e3status; /* E3 status */ +#define E3STS_LOS 0x00000002 /* Lost of synchronization */ +#define E3STS_TXE 0x00000004 /* Transmit error */ + unsigned long e3csec_5; /* 1/5 of second counter */ + unsigned long e3tsec; /* total seconds coounter */ + unsigned long e3ccv; /* E3 current 15-min cv errors */ + unsigned long e3tcv; /* E3 total cv errors */ + unsigned long e3icv[48]; /* E3 12 hour period cv errors */ + + unsigned long *iqrx; /* rx intr queue */ + unsigned long *iqtx; /* tx intr queue */ + int irn, itn; + + unsigned char *tbuf [NTBUF]; /* transmit buffers */ + cp_desc_t *tdesc; /* transmit buffer descriptors */ + unsigned long tphys [NTBUF]; /* transmit buffer phys address */ + unsigned long tdphys [NTBUF]; /* transmit descr phys addresses */ + int tn; /* first active transmit buffer */ + int te; /* first empty transmit buffer */ + + unsigned char *rbuf [NRBUF]; /* receive buffers */ + cp_desc_t *rdesc; /* receive buffer descriptors */ + unsigned long rphys [NRBUF]; /* receive buffer phys address */ + unsigned long rdphys [NRBUF]; /* receive descr phys addresses */ + int rn; /* first active receive buffer */ + + void *tag [NTBUF]; /* system dependent data per buffer */ + void *sys; /* system dependent data per channel */ + unsigned char debug; /* debug level, 0..2 */ + + void (*transmit) (struct _cp_chan_t *c, void *tag, int len); + void (*receive) (struct _cp_chan_t *c, unsigned char *data, int len); + void (*error) (struct _cp_chan_t *c, int reason); +#define CP_FRAME 1 +#define CP_CRC 2 +#define CP_UNDERRUN 3 +#define CP_OVERRUN 4 +#define CP_OVERFLOW 5 +} cp_chan_t; + +typedef struct _cp_board_t { + unsigned char *base; /* base address of adapter registers */ + unsigned char num; /* board number, 0..5 */ + unsigned char type; /* board type Tau/TauE1/TauG703 */ +#define B_TAUPCI 1 /* 2 channels V.35/RS */ +#define B_TAUPCI_E3 2 /* 1 channel E3 */ +#define B_TAUPCI_HSSI 3 /* 1 channel HSSI */ +#define B_TAUPCI_G703 4 /* 2 channels G703 */ +#define B_TAUPCI_E1 5 /* 2 channels E1 */ +#define B_TAUPCI4 6 /* 4 channels V.35/RS */ +#define B_TAUPCI4_G703 7 /* 2 channels G.703 + 2 channels V.35/RS */ +#define B_TAUPCI4_4G703 8 /* 4 channels G.703 */ +#define B_TAUPCI_2E1 9 /* 2 channels E1, 4 data ports */ +#define B_TAUPCI4_E1 10 /* 2 channels E1 + 2 channels V.35/RS */ +#define B_TAUPCI4_4E1 11 /* 4 channels E1 */ + + unsigned long osc; /* oscillator frequency */ + char name[16]; /* board version name */ + cp_chan_t chan[NCHAN]; /* channel structures */ + unsigned char mux; /* E1 mux mode */ + unsigned char dxc_cas; /* CAS cross-connection */ + unsigned char bcr; /* BCR image */ + unsigned char e1cfg; /* E1 CFG register image */ + unsigned char gpidle; /* idle bits of gp port */ + unsigned char E1DATA; + unsigned long intr; /* interrupt counter */ + unsigned long *iqlx; /* LBI intr queue */ + int iln; + unsigned char fw_type; /* firmware type */ +#define FW_TAUPCI_NONE 0 +#define FW_TAUPCI_2E1_B 2 +#define FW_TAUPCI_2E1_A 3 +#define FW_TAUPCI_4E1_B 6 +#define FW_TAUPCI_4E1_A 7 + unsigned char *firmware; /* external firmware */ + void *sys; +} cp_board_t; + +#pragma pack() + +/* PCI device identifiers. */ +extern unsigned short cp_vendor_id; +extern unsigned short cp_device_id; + +/* Initialization. */ +unsigned short cp_init (cp_board_t *b, int num, unsigned char *base); +void cp_reset (cp_board_t *b, cp_qbuf_t *buf, unsigned long phys); +void cp_hard_reset (cp_board_t *b); +unsigned long cp_regio (cp_chan_t *c, int op, int reg, unsigned long val); +#define REGIO_INB 0 +#define REGIO_IN 1 +#define REGIO_INS 2 +#define REGIO_INX 3 +#define REGIO_INB_OUTB 4 +#define REGIO_OUTB 5 +#define REGIO_OUTX 6 +#define REGIO_R_W 7 +#define REGIO_OUT_IN 8 +#define REGIO_OUTB_INB 9 + +/* Callback registration. */ +void cp_register_transmit (cp_chan_t *c, void (*func) (cp_chan_t*, void*, int)); +void cp_register_receive (cp_chan_t *c, void (*func) (cp_chan_t*, + unsigned char*, int)); +void cp_register_error (cp_chan_t *c, void (*func) (cp_chan_t*, int)); + +/* Data transmittion. */ +void cp_start_chan (cp_chan_t *c, int tx, int rx, cp_buf_t *cb, unsigned long phys); +void cp_stop_chan (cp_chan_t *c); +void cp_start_e1 (cp_chan_t *c); +void cp_stop_e1 (cp_chan_t *c); +int cp_transmit_space (cp_chan_t *c); +int cp_send_packet (cp_chan_t *c, unsigned char *data, int len, void *tag); + +/* Interrupt control. */ +int cp_interrupt (cp_board_t *b); +int cp_interrupt_poll (cp_board_t *b, int ack); +void cp_handle_interrupt (cp_board_t *b); +void cp_enable_interrupt (cp_board_t *b, int on); + +/* G.703 timer. */ +void cp_g703_timer (cp_chan_t *c); + +/* E1 timer. */ +void cp_e1_timer (cp_chan_t *c); + +/* E3 timer. */ +void cp_e3_timer (cp_chan_t *c); + +/* LED control. */ +void cp_led (cp_board_t *b, int on); + +/* Modem signals. */ +void cp_set_dtr (cp_chan_t *c, int on); +void cp_set_rts (cp_chan_t *c, int on); +int cp_get_dsr (cp_chan_t *c); +int cp_get_cd (cp_chan_t *c); +int cp_get_cts (cp_chan_t *c); +int cp_get_txcerr (cp_chan_t *c); +int cp_get_rxcerr (cp_chan_t *c); + +/* HDLC parameters. */ +void cp_set_baud (cp_chan_t *c, int baud); +void cp_set_dpll (cp_chan_t *c, int on); +void cp_set_nrzi (cp_chan_t *c, int on); +void cp_set_invtxc (cp_chan_t *c, int on); +void cp_set_invrxc (cp_chan_t *c, int on); +void cp_set_lloop (cp_chan_t *c, int on); + +/* Channel status, cable type. */ +int cp_get_rloop (cp_chan_t *c); +int cp_get_lq (cp_chan_t *c); +int cp_get_cable (cp_chan_t *c); +#define CABLE_RS232 0 +#define CABLE_V35 1 +#define CABLE_RS530 2 +#define CABLE_X21 3 +#define CABLE_RS485 4 +#define CABLE_NOT_ATTACHED 9 +#define CABLE_COAX 10 +#define CABLE_TP 11 + +/* E1/G.703 parameters. */ +void cp_set_gsyn (cp_chan_t *c, int syn); +void cp_set_ts (cp_chan_t *c, unsigned long ts); +void cp_set_dir (cp_chan_t *c, int dir); +void cp_set_mux (cp_board_t *b, int on); +void cp_dxc_cas_enable (cp_board_t *b, int on); +void cp_set_dxc (cp_chan_t *c, cp_dxc_t *param); +void cp_set_higain (cp_chan_t *c, int on); +void cp_set_use16 (cp_chan_t *c, int on); +void cp_set_crc4 (cp_chan_t *c, int on); +void cp_set_phony (cp_chan_t *c, int on); +void cp_set_unfram (cp_chan_t *c, int on); +void cp_set_scrambler (cp_chan_t *c, int on); +void cp_set_monitor (cp_chan_t *c, int on); + +/* E3 parameters. */ +void cp_set_rloop (cp_chan_t *c, int on); +void cp_set_ber (cp_chan_t *c, int on); +void cp_set_cablen (cp_chan_t *c, int on); +void cp_set_losais (cp_chan_t *c, int on); + +#endif /* CPDDK_COBF_SAFE */ diff --git a/sys/dev/cp/if_cp.c b/sys/dev/cp/if_cp.c new file mode 100644 index 0000000..0cd3708 --- /dev/null +++ b/sys/dev/cp/if_cp.c @@ -0,0 +1,2784 @@ +/* + * Cronyx-Tau-PCI adapter driver for FreeBSD. + * Supports PPP/HDLC, Cisco/HDLC and FrameRelay protocol in synchronous mode, + * and asyncronous channels with full modem control. + * Keepalive protocol implemented in both Cisco and PPP modes. + * + * Copyright (C) 1999-2004 Cronyx Engineering. + * Author: Kurakin Roman, <rik@cronyx.ru> + * + * Copyright (C) 1999-2002 Cronyx Engineering. + * Author: Serge Vakulenko, <vak@cronyx.ru> + * + * This software is distributed with NO WARRANTIES, not even the implied + * warranties for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + * Authors grant any other persons or organisations a permission to use, + * modify and redistribute this software in source and binary forms, + * as long as this message is kept with the software, all derivative + * works or modified versions. + * + * $Cronyx: if_cp.c,v 1.1.2.32 2004/02/26 17:56:39 rik Exp $ + */ + +#include <sys/cdefs.h> +__FBSDID("$FreeBSD$"); + +#include <sys/param.h> + +#if __FreeBSD_version >= 500000 +# define NPCI 1 +#else +# include "pci.h" +#endif + +#if NPCI > 0 + +#include <sys/ucred.h> +#include <sys/proc.h> +#include <sys/systm.h> +#include <sys/mbuf.h> +#include <sys/kernel.h> +#include <sys/conf.h> +#include <sys/malloc.h> +#include <sys/socket.h> +#include <sys/sockio.h> +#include <sys/tty.h> +#if __FreeBSD_version >= 400000 +# include <sys/bus.h> +#endif +#include <vm/vm.h> +#include <vm/pmap.h> +#include <net/if.h> +#if __FreeBSD_version > 501000 +# include <dev/pci/pcivar.h> +# include <dev/pci/pcireg.h> +#else +# include <pci/pcivar.h> +# include <pci/pcireg.h> +#endif +#include <machine/bus.h> +#include <sys/rman.h> +#include "opt_ng_cronyx.h" +#ifdef NETGRAPH_CRONYX +# include "opt_netgraph.h" +# ifndef NETGRAPH +# error #option NETGRAPH missed from configuration +# endif +# include <netgraph/ng_message.h> +# include <netgraph/netgraph.h> +# if __FreeBSD_version >= 500000 +# include <dev/cp/ng_cp.h> +# else +# include <netgraph/ng_cp.h> +# endif +#else +# include <net/if_sppp.h> +# define PP_CISCO IFF_LINK2 +# if __FreeBSD_version < 400000 +# include <bpfilter.h> +# if NBPFILTER > 0 +# include <net/bpf.h> +# endif +# else +# if __FreeBSD_version < 500000 +# include <bpf.h> +# endif +# include <net/bpf.h> +# define NBPFILTER NBPF +#endif +#endif +#if __FreeBSD_version >= 500000 +#include <dev/cx/machdep.h> +#include <dev/cp/cpddk.h> +#else +#include <i386/isa/cronyx/machdep.h> +#include <pci/cpddk.h> +#endif +#include <machine/cserial.h> +#include <machine/resource.h> +#include <machine/pmap.h> + +/* If we don't have Cronyx's sppp version, we don't have fr support via sppp */ +#ifndef PP_FR +#define PP_FR 0 +#endif + +#define CP_DEBUG(d,s) ({if (d->chan->debug) {\ + printf ("%s: ", d->name); printf s;}}) +#define CP_DEBUG2(d,s) ({if (d->chan->debug>1) {\ + printf ("%s: ", d->name); printf s;}}) + +#define CDEV_MAJOR 134 + +#if __FreeBSD_version >= 400000 +static int cp_probe __P((device_t)); +static int cp_attach __P((device_t)); +static int cp_detach __P((device_t)); + +static device_method_t cp_methods[] = { + /* Device interface */ + DEVMETHOD(device_probe, cp_probe), + DEVMETHOD(device_attach, cp_attach), + DEVMETHOD(device_detach, cp_detach), + + {0, 0} +}; + +typedef struct _bdrv_t { + cp_board_t *board; + struct resource *cp_res; + struct resource *cp_irq; + void *cp_intrhand; +} bdrv_t; + +static driver_t cp_driver = { + "cp", + cp_methods, + sizeof(bdrv_t), +}; + +static devclass_t cp_devclass; +#endif + +typedef struct _drv_t { + char name [8]; + cp_chan_t *chan; + cp_board_t *board; + cp_buf_t buf; + int running; +#ifdef NETGRAPH + char nodename [NG_NODELEN+1]; + hook_p hook; + hook_p debug_hook; + node_p node; + struct ifqueue queue; + struct ifqueue hi_queue; + short timeout; + struct callout_handle timeout_handle; +#else + struct sppp pp; +#endif +#if __FreeBSD_version >= 400000 + dev_t devt; +#endif +} drv_t; + +static void cp_receive (cp_chan_t *c, unsigned char *data, int len); +static void cp_transmit (cp_chan_t *c, void *attachment, int len); +static void cp_error (cp_chan_t *c, int data); +static void cp_up (drv_t *d); +static void cp_start (drv_t *d); +static void cp_down (drv_t *d); +static void cp_watchdog (drv_t *d); +#ifdef NETGRAPH +extern struct ng_type typestruct; +#else +static void cp_ifstart (struct ifnet *ifp); +static void cp_tlf (struct sppp *sp); +static void cp_tls (struct sppp *sp); +static void cp_ifwatchdog (struct ifnet *ifp); +static int cp_sioctl (struct ifnet *ifp, u_long cmd, caddr_t data); +static void cp_initialize (void *softc); +#endif + +static cp_board_t *adapter [NBRD]; +static drv_t *channel [NBRD*NCHAN]; +static cp_qbuf_t *queue [NBRD]; +static struct callout_handle led_timo [NBRD]; +static struct callout_handle timeout_handle; + +static int cp_destroy = 0; + +/* + * Print the mbuf chain, for debug purposes only. + */ +static void printmbuf (struct mbuf *m) +{ + printf ("mbuf:"); + for (; m; m=m->m_next) { + if (m->m_flags & M_PKTHDR) + printf (" HDR %d:", m->m_pkthdr.len); + if (m->m_flags & M_EXT) + printf (" EXT:"); + printf (" %d", m->m_len); + } + printf ("\n"); +} + +/* + * Make an mbuf from data. + */ +static struct mbuf *makembuf (void *buf, unsigned len) +{ + struct mbuf *m; + + MGETHDR (m, M_DONTWAIT, MT_DATA); + if (! m) + return 0; + MCLGET (m, M_DONTWAIT); + if (! (m->m_flags & M_EXT)) { + m_freem (m); + return 0; + } + m->m_pkthdr.len = m->m_len = len; + bcopy (buf, mtod (m, caddr_t), len); + return m; +} + +#if __FreeBSD_version < 400000 +static const char *cp_probe (pcici_t tag, pcidi_t type) +{ + if (tag->vendor == cp_vendor_id && tag->device == cp_device_id) + return "Cronyx-Tau-PCI serial adapter"; + return 0; +} +#else +static int cp_probe (device_t dev) +{ + if ((pci_get_vendor (dev) == cp_vendor_id) && + (pci_get_device (dev) == cp_device_id)) { + device_set_desc (dev, "Cronyx-Tau-PCI serial adapter"); + return 0; + } + return ENXIO; +} +#endif + +static void cp_timeout (void *arg) +{ + drv_t *d; + int s, i; + + for (i=0; i<NBRD*NCHAN; ++i) { + s = splimp (); + if (cp_destroy) { + splx (s); + return; + } + d = channel[i]; + if (!d) { + splx (s); + continue; + } + switch (d->chan->type) { + case T_G703: + cp_g703_timer (d->chan); + break; + case T_E1: + cp_e1_timer (d->chan); + break; + case T_E3: + case T_T3: + case T_STS1: + cp_e3_timer (d->chan); + break; + default: + break; + } + splx (s); + } + s = splimp (); + if (!cp_destroy) + timeout_handle = timeout (cp_timeout, 0, hz); + splx (s); +} + +static void cp_led_off (void *arg) +{ + cp_board_t *b = arg; + int s = splimp (); + if (cp_destroy) { + splx (s); + return; + } + cp_led (b, 0); + led_timo[b->num].callout = 0; + splx (s); +} + +static void cp_intr (void *arg) +{ +#if __FreeBSD_version < 400000 + cp_board_t *b = arg; +#else + bdrv_t *bd = arg; + cp_board_t *b = bd->board; +#endif + int s = splimp (); + if (cp_destroy) { + splx (s); + return; + } + /* Turn LED on. */ + cp_led (b, 1); + + cp_interrupt (b); + + /* Turn LED off 50 msec later. */ + if (!led_timo[b->num].callout) + led_timo[b->num] = timeout (cp_led_off, b, hz/20); + splx (s); +} + +extern struct cdevsw cp_cdevsw; + +/* + * Called if the probe succeeded. + */ +#if __FreeBSD_version < 400000 +static void cp_attach (pcici_t tag, int unit) +{ + vm_offset_t pbase; +#else +static int cp_attach (device_t dev) +{ + bdrv_t *bd = device_get_softc (dev); + int unit = device_get_unit (dev); + int rid, error; +#endif + vm_offset_t vbase; + cp_board_t *b; + cp_chan_t *c; + drv_t *d; + unsigned short res; + int s = splimp (); + + b = malloc (sizeof(cp_board_t), M_DEVBUF, M_WAITOK); + if (!b) { + printf ("cp%d: couldn't allocate memory\n", unit); +#if __FreeBSD_version < 400000 + splx (s); + return; +#else + splx (s); + return (ENXIO); +#endif + } + adapter[unit] = b; + bzero (b, sizeof(cp_board_t)); + +#if __FreeBSD_version < 400000 + if (! pci_map_mem (tag, PCIR_MAPS, &vbase, &pbase)) { + printf ("cp%d: cannot map memory\n", unit); + free (b, M_DEVBUF); + splx (s); + return; + } +#else + bd->board = b; + b->sys = bd; + rid = PCIR_MAPS; + bd->cp_res = bus_alloc_resource (dev, SYS_RES_MEMORY, &rid, + 0, ~0, 1, RF_ACTIVE); + if (! bd->cp_res) { + printf ("cp%d: cannot map memory\n", unit); + free (b, M_DEVBUF); + splx (s); + return (ENXIO); + } + vbase = (vm_offset_t) rman_get_virtual (bd->cp_res); +#endif + + res = cp_init (b, unit, (u_char*) vbase); + if (res) { + printf ("cp%d: can't init, error code:%x\n", unit, res); +#if __FreeBSD_version >= 400000 + bus_release_resource (dev, SYS_RES_MEMORY, PCIR_MAPS, bd->cp_res); +#endif + free (b, M_DEVBUF); + splx (s); +#if __FreeBSD_version >= 400000 + return (ENXIO); +#else + return; +#endif + } + queue[unit] = contigmalloc (sizeof(cp_qbuf_t), M_DEVBUF, M_WAITOK, + 0x100000, 0xffffffff, 16, 0); + if (queue[unit] == NULL) { + printf ("cp%d: allocate memory for qbuf_t\n", unit); + free (b, M_DEVBUF); + splx (s); +#if __FreeBSD_version >= 400000 + return (ENXIO); +#else + return; +#endif + } + cp_reset (b, queue[unit], vtophys (queue[unit])); + +#if __FreeBSD_version < 400000 + if (! pci_map_int (tag, cp_intr, b, &net_imask)) + printf ("cp%d: cannot map interrupt\n", unit); +#else + rid = 0; + bd->cp_irq = bus_alloc_resource (dev, SYS_RES_IRQ, &rid, 0, ~0, 1, + RF_SHAREABLE | RF_ACTIVE); + if (! bd->cp_irq) { + printf ("cp%d: cannot map interrupt\n", unit); + bus_release_resource (dev, SYS_RES_MEMORY, + PCIR_MAPS, bd->cp_res); + free (b, M_DEVBUF); + splx (s); + return (ENXIO); + } + error = bus_setup_intr (dev, bd->cp_irq, INTR_TYPE_NET, cp_intr, bd, + &bd->cp_intrhand); + if (error) { + printf ("cp%d: cannot set up irq\n", unit); + bus_release_resource (dev, SYS_RES_MEMORY, + PCIR_MAPS, bd->cp_res); + bus_release_resource (dev, SYS_RES_IRQ, 0, bd->cp_irq); + free (b, M_DEVBUF); + splx (s); + return (ENXIO); + } +#endif + printf ("cp%d: %s, clock %ld MHz\n", unit, b->name, b->osc / 1000000); + + for (c=b->chan; c<b->chan+NCHAN; ++c) { + if (! c->type) + continue; + d = contigmalloc (sizeof(drv_t), M_DEVBUF, M_WAITOK, + 0x100000, 0xffffffff, 16, 0); + if (d == NULL) { + printf ("cp%d-%d: cannot allocate memory for drv_t\n", + unit, c->num); + } + channel [b->num*NCHAN + c->num] = d; + bzero (d, sizeof(drv_t)); + sprintf (d->name, "cp%d.%d", b->num, c->num); + d->board = b; + d->chan = c; + c->sys = d; +#ifdef NETGRAPH + if (ng_make_node_common (&typestruct, &d->node) != 0) { + printf ("%s: cannot make common node\n", d->name); + d->node = NULL; + continue; + } +#if __FreeBSD_version >= 500000 + NG_NODE_SET_PRIVATE (d->node, d); +#else + d->node->private = d; +#endif + sprintf (d->nodename, "%s%d", NG_CP_NODE_TYPE, + c->board->num*NCHAN + c->num); + if (ng_name_node (d->node, d->nodename)) { + printf ("%s: cannot name node\n", d->nodename); +#if __FreeBSD_version >= 500000 + NG_NODE_UNREF (d->node); +#else + ng_rmnode (d->node); + ng_unref (d->node); +#endif + continue; + } + d->queue.ifq_maxlen = IFQ_MAXLEN; + d->hi_queue.ifq_maxlen = IFQ_MAXLEN; +#if __FreeBSD_version >= 500000 + mtx_init (&d->queue.ifq_mtx, "cp_queue", NULL, MTX_DEF); + mtx_init (&d->hi_queue.ifq_mtx, "cp_queue_hi", NULL, MTX_DEF); +#endif +#else /*NETGRAPH*/ + d->pp.pp_if.if_softc = d; +#if __FreeBSD_version > 501000 + if_initname (&d->pp.pp_if, "cp", b->num * NCHAN + c->num); +#else + d->pp.pp_if.if_unit = b->num * NCHAN + c->num; + d->pp.pp_if.if_name = "cp"; +#endif + d->pp.pp_if.if_mtu = PP_MTU; + d->pp.pp_if.if_flags = IFF_POINTOPOINT | IFF_MULTICAST; + d->pp.pp_if.if_ioctl = cp_sioctl; + d->pp.pp_if.if_start = cp_ifstart; + d->pp.pp_if.if_watchdog = cp_ifwatchdog; + d->pp.pp_if.if_init = cp_initialize; + sppp_attach (&d->pp.pp_if); + if_attach (&d->pp.pp_if); + d->pp.pp_tlf = cp_tlf; + d->pp.pp_tls = cp_tls; +#if __FreeBSD_version >= 400000 || NBPFILTER > 0 + /* If BPF is in the kernel, call the attach for it. + * The header size of PPP or Cisco/HDLC is 4 bytes. */ + bpfattach (&d->pp.pp_if, DLT_PPP, 4); +#endif +#endif /*NETGRAPH*/ + cp_start_e1 (c); + cp_start_chan (c, 1, 1, &d->buf, vtophys (&d->buf)); + + /* Register callback functions. */ + cp_register_transmit (c, &cp_transmit); + cp_register_receive (c, &cp_receive); + cp_register_error (c, &cp_error); +#if __FreeBSD_version >= 400000 + d->devt = make_dev (&cp_cdevsw, b->num*NCHAN+c->num, UID_ROOT, + GID_WHEEL, 0600, "cp%d", b->num*NCHAN+c->num); +#endif + } + splx (s); +#if __FreeBSD_version >= 400000 + return 0; +#endif +} + +#if __FreeBSD_version >= 400000 +static int cp_detach (device_t dev) +{ + bdrv_t *bd = device_get_softc (dev); + cp_board_t *b = bd->board; + cp_chan_t *c; + int s = splimp (); + + /* Check if the device is busy (open). */ + for (c=b->chan; c<b->chan+NCHAN; ++c) { + drv_t *d = (drv_t*) c->sys; + + if (! d || ! d->chan->type) + continue; + if (d->running) { + splx (s); + return EBUSY; + } + } + + /* Ok, we can unload driver */ + /* At first we should stop all channels */ + for (c=b->chan; c<b->chan+NCHAN; ++c) { + drv_t *d = (drv_t*) c->sys; + + if (! d || ! d->chan->type) + continue; + + cp_stop_chan (c); + cp_stop_e1 (c); + cp_set_dtr (d->chan, 0); + cp_set_rts (d->chan, 0); + } + + /* Reset the adapter. */ + cp_destroy = 1; + cp_interrupt_poll (b, 1); + cp_led_off (b); + cp_reset (b, 0 ,0); + if (led_timo[b->num].callout) + untimeout (cp_led_off, b, led_timo[b->num]); + + for (c=b->chan; c<b->chan+NCHAN; ++c) { + drv_t *d = (drv_t*) c->sys; + + if (! d || ! d->chan->type) + continue; +#ifndef NETGRAPH +#if __FreeBSD_version >= 410000 && NBPFILTER > 0 + /* Detach from the packet filter list of interfaces. */ + bpfdetach (&d->pp.pp_if); +#endif + /* Detach from the sync PPP list. */ + sppp_detach (&d->pp.pp_if); + + /* Detach from the system list of interfaces. */ + if_detach (&d->pp.pp_if); +#else +#if __FreeBSD_version >= 500000 + if (d->node) { + ng_rmnode_self (d->node); + NG_NODE_UNREF (d->node); + d->node = NULL; + } + mtx_destroy (&d->queue.ifq_mtx); + mtx_destroy (&d->hi_queue.ifq_mtx); +#else + ng_rmnode (d->node); + d->node = 0; +#endif +#endif + destroy_dev (d->devt); + } + + /* Disable the interrupt request. */ + bus_teardown_intr (dev, bd->cp_irq, bd->cp_intrhand); + bus_deactivate_resource (dev, SYS_RES_IRQ, 0, bd->cp_irq); + bus_release_resource (dev, SYS_RES_IRQ, 0, bd->cp_irq); + bus_release_resource (dev, SYS_RES_MEMORY, PCIR_MAPS, bd->cp_res); + cp_led_off (b); + if (led_timo[b->num].callout) + untimeout (cp_led_off, b, led_timo[b->num]); + splx (s); + + s = splimp (); + for (c=b->chan; c<b->chan+NCHAN; ++c) { + drv_t *d = (drv_t*) c->sys; + + if (! d || ! d->chan->type) + continue; + channel [b->num*NCHAN + c->num] = 0; + /* Deallocate buffers. */ +#if __FreeBSD_version < 400000 + free (d, M_DEVBUF); +#else + contigfree (d, sizeof (*d), M_DEVBUF); +#endif + } + adapter [b->num] = 0; +#if __FreeBSD_version < 400000 + free (queue[b->num], M_DEVBUF); +#else + contigfree (queue[b->num], sizeof (cp_qbuf_t), M_DEVBUF); +#endif + free (b, M_DEVBUF); + splx (s); + return 0; +} +#endif + +#if __FreeBSD_version < 400000 +static u_long cp_count; +static struct pci_device cp_driver = {"cp", cp_probe, cp_attach, &cp_count, 0}; +DATA_SET (pcidevice_set, cp_driver); +#endif + +#ifndef NETGRAPH +static void cp_ifstart (struct ifnet *ifp) +{ + drv_t *d = ifp->if_softc; + + cp_start (d); +} + +static void cp_ifwatchdog (struct ifnet *ifp) +{ + drv_t *d = ifp->if_softc; + + cp_watchdog (d); +} + +static void cp_tlf (struct sppp *sp) +{ + drv_t *d = sp->pp_if.if_softc; + + CP_DEBUG2 (d, ("cp_tlf\n")); +/* cp_set_dtr (d->chan, 0);*/ +/* cp_set_rts (d->chan, 0);*/ + sp->pp_down (sp); +} + +static void cp_tls (struct sppp *sp) +{ + drv_t *d = sp->pp_if.if_softc; + + CP_DEBUG2 (d, ("cp_tls\n")); + sp->pp_up (sp); +} + +/* + * Process an ioctl request. + */ +static int cp_sioctl (struct ifnet *ifp, u_long cmd, caddr_t data) +{ + drv_t *d = ifp->if_softc; + int error, s, was_up, should_be_up; + + was_up = (ifp->if_flags & IFF_RUNNING) != 0; + error = sppp_ioctl (ifp, cmd, data); + + if (error) + return error; + + if (! (ifp->if_flags & IFF_DEBUG)) + d->chan->debug = 0; + else if (! d->chan->debug) + d->chan->debug = 1; + + switch (cmd) { + default: CP_DEBUG2 (d, ("ioctl 0x%lx\n", cmd)); return 0; + case SIOCADDMULTI: CP_DEBUG2 (d, ("ioctl SIOCADDMULTI\n")); return 0; + case SIOCDELMULTI: CP_DEBUG2 (d, ("ioctl SIOCDELMULTI\n")); return 0; + case SIOCSIFFLAGS: CP_DEBUG2 (d, ("ioctl SIOCSIFFLAGS\n")); break; + case SIOCSIFADDR: CP_DEBUG2 (d, ("ioctl SIOCSIFADDR\n")); break; + } + + /* We get here only in case of SIFFLAGS or SIFADDR. */ + s = splimp (); + should_be_up = (ifp->if_flags & IFF_RUNNING) != 0; + if (! was_up && should_be_up) { + /* Interface goes up -- start it. */ + cp_up (d); + cp_start (d); + } else if (was_up && ! should_be_up) { + /* Interface is going down -- stop it. */ +/* if ((d->pp.pp_flags & PP_FR) || (ifp->if_flags & PP_CISCO))*/ + cp_down (d); + } + CP_DEBUG (d, ("ioctl 0x%lx p4\n", cmd)); + splx (s); + return 0; +} + +/* + * Initialization of interface. + * It seems to be never called by upper level? + */ +static void cp_initialize (void *softc) +{ + drv_t *d = softc; + + CP_DEBUG (d, ("cp_initialize\n")); +} +#endif /*NETGRAPH*/ + +/* + * Stop the interface. Called on splimp(). + */ +static void cp_down (drv_t *d) +{ + CP_DEBUG (d, ("cp_down\n")); + /* Interface is going down -- stop it. */ + cp_set_dtr (d->chan, 0); + cp_set_rts (d->chan, 0); + + d->running = 0; +} + +/* + * Start the interface. Called on splimp(). + */ +static void cp_up (drv_t *d) +{ + CP_DEBUG (d, ("cp_up\n")); + cp_set_dtr (d->chan, 1); + cp_set_rts (d->chan, 1); + d->running = 1; +} + +/* + * Start output on the interface. Get another datagram to send + * off of the interface queue, and copy it to the interface + * before starting the output. + */ +static void cp_send (drv_t *d) +{ + struct mbuf *m; + u_short len; + + CP_DEBUG2 (d, ("cp_send, tn=%d te=%d\n", d->chan->tn, d->chan->te)); + + /* No output if the interface is down. */ + if (! d->running) + return; + + /* No output if the modem is off. */ + if (! (d->chan->lloop || d->chan->type != T_SERIAL || + cp_get_dsr (d->chan))) + return; + + while (cp_transmit_space (d->chan)) { + /* Get the packet to send. */ +#ifdef NETGRAPH + IF_DEQUEUE (&d->hi_queue, m); + if (! m) + IF_DEQUEUE (&d->queue, m); +#else + m = sppp_dequeue (&d->pp.pp_if); +#endif + if (! m) + return; +#if (__FreeBSD_version >= 400000 || NBPFILTER > 0) && !defined (NETGRAPH) + if (d->pp.pp_if.if_bpf) +#if __FreeBSD_version >= 500000 + BPF_MTAP (&d->pp.pp_if, m); +#else + bpf_mtap (&d->pp.pp_if, m); +#endif +#endif + len = m->m_pkthdr.len; + if (len >= BUFSZ) + printf ("%s: too long packet: %d bytes: ", + d->name, len); + else if (! m->m_next) + cp_send_packet (d->chan, (u_char*) mtod (m, caddr_t), len, 0); + else { + u_char *buf = d->chan->tbuf[d->chan->te]; + m_copydata (m, 0, len, buf); + cp_send_packet (d->chan, buf, len, 0); + } + m_freem (m); + /* Set up transmit timeout, if the transmit ring is not empty.*/ +#ifdef NETGRAPH + d->timeout = 10; +#else + d->pp.pp_if.if_timer = 10; +#endif + } +#ifndef NETGRAPH + d->pp.pp_if.if_flags |= IFF_OACTIVE; +#endif +} + +/* + * Start output on the interface. + * Always called on splimp(). + */ +static void cp_start (drv_t *d) +{ + if (d->running) { + if (! d->chan->dtr) + cp_set_dtr (d->chan, 1); + if (! d->chan->rts) + cp_set_rts (d->chan, 1); + cp_send (d); + } +} + +/* + * Handle transmit timeouts. + * Recover after lost transmit interrupts. + * Always called on splimp(). + */ +static void cp_watchdog (drv_t *d) +{ + CP_DEBUG (d, ("device timeout\n")); + if (d->running) { + int s = splimp (); + + cp_stop_chan (d->chan); + cp_stop_e1 (d->chan); + cp_start_e1 (d->chan); + cp_start_chan (d->chan, 1, 1, 0, 0); + cp_set_dtr (d->chan, 1); + cp_set_rts (d->chan, 1); + cp_start (d); + splx (s); + } +} + +static void cp_transmit (cp_chan_t *c, void *attachment, int len) +{ + drv_t *d = c->sys; + +#ifdef NETGRAPH + d->timeout = 0; +#else + ++d->pp.pp_if.if_opackets; + d->pp.pp_if.if_flags &= ~IFF_OACTIVE; + d->pp.pp_if.if_timer = 0; +#endif + cp_start (d); +} + +static void cp_receive (cp_chan_t *c, unsigned char *data, int len) +{ + drv_t *d = c->sys; + struct mbuf *m; +#if __FreeBSD_version >= 500000 && defined NETGRAPH + int error; +#endif + + if (! d->running) + return; + + m = makembuf (data, len); + if (! m) { + CP_DEBUG (d, ("no memory for packet\n")); +#ifndef NETGRAPH + ++d->pp.pp_if.if_iqdrops; +#endif + return; + } + if (c->debug > 1) + printmbuf (m); +#ifdef NETGRAPH + m->m_pkthdr.rcvif = 0; +#if __FreeBSD_version >= 500000 + NG_SEND_DATA_ONLY (error, d->hook, m); +#else + ng_queue_data (d->hook, m, 0); +#endif +#else + ++d->pp.pp_if.if_ipackets; + m->m_pkthdr.rcvif = &d->pp.pp_if; +#if __FreeBSD_version >= 400000 || NBPFILTER > 0 + /* Check if there's a BPF listener on this interface. + * If so, hand off the raw packet to bpf. */ + if (d->pp.pp_if.if_bpf) +#if __FreeBSD_version >= 500000 + BPF_TAP (&d->pp.pp_if, data, len); +#else + bpf_tap (&d->pp.pp_if, data, len); +#endif +#endif + sppp_input (&d->pp.pp_if, m); +#endif +} + +static void cp_error (cp_chan_t *c, int data) +{ + drv_t *d = c->sys; + + switch (data) { + case CP_FRAME: + CP_DEBUG (d, ("frame error\n")); +#ifndef NETGRAPH + ++d->pp.pp_if.if_ierrors; +#endif + break; + case CP_CRC: + CP_DEBUG (d, ("crc error\n")); +#ifndef NETGRAPH + ++d->pp.pp_if.if_ierrors; +#endif + break; + case CP_OVERRUN: + CP_DEBUG (d, ("overrun error\n")); +#ifndef NETGRAPH + ++d->pp.pp_if.if_collisions; + ++d->pp.pp_if.if_ierrors; +#endif + break; + case CP_OVERFLOW: + CP_DEBUG (d, ("overflow error\n")); +#ifndef NETGRAPH + ++d->pp.pp_if.if_ierrors; +#endif + break; + case CP_UNDERRUN: + CP_DEBUG (d, ("underrun error\n")); +#ifdef NETGRAPH + d->timeout = 0; +#else + ++d->pp.pp_if.if_oerrors; + d->pp.pp_if.if_flags &= ~IFF_OACTIVE; + d->pp.pp_if.if_timer = 0; +#endif + cp_start (d); + break; + default: + CP_DEBUG (d, ("error #%d\n", data)); + break; + } +} + +/* + * You also need read, write, open, close routines. + * This should get you started + */ +#if __FreeBSD_version < 500000 +static int cp_open (dev_t dev, int oflags, int devtype, struct proc *p) +#else +static int cp_open (dev_t dev, int oflags, int devtype, struct thread *td) +#endif +{ + int unit = minor (dev); + drv_t *d; + + if (unit >= NBRD*NCHAN || ! (d = channel[unit])) + return ENXIO; + CP_DEBUG2 (d, ("cp_open\n")); + return 0; +} + +/* + * Only called on the LAST close. + */ +#if __FreeBSD_version < 500000 +static int cp_close (dev_t dev, int fflag, int devtype, struct proc *p) +#else +static int cp_close (dev_t dev, int fflag, int devtype, struct thread *td) +#endif +{ + drv_t *d = channel [minor (dev)]; + + CP_DEBUG2 (d, ("cp_close\n")); + return 0; +} + +static int cp_modem_status (cp_chan_t *c) +{ + drv_t *d = c->sys; + int status, s; + + status = d->running ? TIOCM_LE : 0; + s = splimp (); + if (cp_get_cd (c)) status |= TIOCM_CD; + if (cp_get_cts (c)) status |= TIOCM_CTS; + if (cp_get_dsr (c)) status |= TIOCM_DSR; + if (c->dtr) status |= TIOCM_DTR; + if (c->rts) status |= TIOCM_RTS; + splx (s); + return status; +} + +#if __FreeBSD_version < 500000 +static int cp_ioctl (dev_t dev, u_long cmd, caddr_t data, int flag, struct proc *p) +#else +static int cp_ioctl (dev_t dev, u_long cmd, caddr_t data, int flag, struct thread *td) +#endif +{ + drv_t *d = channel [minor (dev)]; + cp_chan_t *c = d->chan; + struct serial_statistics *st; + struct e1_statistics *opte1; + struct e3_statistics *opte3; + int error, s; + char mask[16]; + + switch (cmd) { + case SERIAL_GETREGISTERED: + CP_DEBUG2 (d, ("ioctl: getregistered\n")); + bzero (mask, sizeof(mask)); + for (s=0; s<NBRD*NCHAN; ++s) + if (channel [s]) + mask [s/8] |= 1 << (s & 7); + bcopy (mask, data, sizeof (mask)); + return 0; + +#ifndef NETGRAPH + case SERIAL_GETPROTO: + CP_DEBUG2 (d, ("ioctl: getproto\n")); + strcpy ((char*)data, (d->pp.pp_flags & PP_FR) ? "fr" : + (d->pp.pp_if.if_flags & PP_CISCO) ? "cisco" : "ppp"); + return 0; + + case SERIAL_SETPROTO: + CP_DEBUG2 (d, ("ioctl: setproto\n")); + /* Only for superuser! */ +#if __FreeBSD_version < 400000 + error = suser (p->p_ucred, &p->p_acflag); +#elif __FreeBSD_version < 500000 + error = suser (p); +#else /* __FreeBSD_version >= 500000 */ + error = suser (td); +#endif /* __FreeBSD_version >= 500000 */ + if (error) + return error; + if (d->pp.pp_if.if_flags & IFF_RUNNING) + return EBUSY; + if (! strcmp ("cisco", (char*)data)) { + d->pp.pp_flags &= ~(PP_FR); + d->pp.pp_flags |= PP_KEEPALIVE; + d->pp.pp_if.if_flags |= PP_CISCO; + } else if (! strcmp ("fr", (char*)data) && !PP_FR) { + d->pp.pp_if.if_flags &= ~(PP_CISCO); + d->pp.pp_flags |= PP_FR | PP_KEEPALIVE; + } else if (! strcmp ("ppp", (char*)data)) { + d->pp.pp_flags &= ~PP_FR; + d->pp.pp_flags &= ~PP_KEEPALIVE; + d->pp.pp_if.if_flags &= ~(PP_CISCO); + } else + return EINVAL; + return 0; + + case SERIAL_GETKEEPALIVE: + CP_DEBUG2 (d, ("ioctl: getkeepalive\n")); + if ((d->pp.pp_flags & PP_FR) || + (d->pp.pp_if.if_flags & PP_CISCO)) + return EINVAL; + *(int*)data = (d->pp.pp_flags & PP_KEEPALIVE) ? 1 : 0; + return 0; + + case SERIAL_SETKEEPALIVE: + CP_DEBUG2 (d, ("ioctl: setkeepalive\n")); + /* Only for superuser! */ +#if __FreeBSD_version < 400000 + error = suser (p->p_ucred, &p->p_acflag); +#elif __FreeBSD_version < 500000 + error = suser (p); +#else + error = suser (td); +#endif + if (error) + return error; + if ((d->pp.pp_flags & PP_FR) || + (d->pp.pp_if.if_flags & PP_CISCO)) + return EINVAL; + s = splimp (); + if (*(int*)data) + d->pp.pp_flags |= PP_KEEPALIVE; + else + d->pp.pp_flags &= ~PP_KEEPALIVE; + splx (s); + return 0; +#endif /*NETGRAPH*/ + + case SERIAL_GETMODE: + CP_DEBUG2 (d, ("ioctl: getmode\n")); + *(int*)data = SERIAL_HDLC; + return 0; + + case SERIAL_SETMODE: + /* Only for superuser! */ +#if __FreeBSD_version < 400000 + error = suser (p->p_ucred, &p->p_acflag); +#elif __FreeBSD_version < 500000 + error = suser (p); +#else + error = suser (td); +#endif + if (error) + return error; + if (*(int*)data != SERIAL_HDLC) + return EINVAL; + return 0; + + case SERIAL_GETCFG: + CP_DEBUG2 (d, ("ioctl: getcfg\n")); + if (c->type != T_E1 || c->unfram) + return EINVAL; + *(char*)data = c->board->mux ? 'c' : 'a'; + return 0; + + case SERIAL_SETCFG: + CP_DEBUG2 (d, ("ioctl: setcfg\n")); +#if __FreeBSD_version < 400000 + error = suser (p->p_ucred, &p->p_acflag); +#elif __FreeBSD_version < 500000 + error = suser (p); +#else + error = suser (td); +#endif + if (error) + return error; + if (c->type != T_E1) + return EINVAL; + s = splimp (); + cp_set_mux (c->board, *((char*)data) == 'c'); + splx (s); + return 0; + + case SERIAL_GETSTAT: + CP_DEBUG2 (d, ("ioctl: getstat\n")); + st = (struct serial_statistics*) data; + st->rintr = c->rintr; + st->tintr = c->tintr; + st->mintr = 0; + st->ibytes = c->ibytes; + st->ipkts = c->ipkts; + st->obytes = c->obytes; + st->opkts = c->opkts; + st->ierrs = c->overrun + c->frame + c->crc; + st->oerrs = c->underrun; + return 0; + + case SERIAL_GETESTAT: + CP_DEBUG2 (d, ("ioctl: getestat\n")); + if (c->type != T_E1 && c->type != T_G703) + return EINVAL; + opte1 = (struct e1_statistics*) data; + opte1->status = c->status; + opte1->cursec = c->cursec; + opte1->totsec = c->totsec + c->cursec; + + opte1->currnt.bpv = c->currnt.bpv; + opte1->currnt.fse = c->currnt.fse; + opte1->currnt.crce = c->currnt.crce; + opte1->currnt.rcrce = c->currnt.rcrce; + opte1->currnt.uas = c->currnt.uas; + opte1->currnt.les = c->currnt.les; + opte1->currnt.es = c->currnt.es; + opte1->currnt.bes = c->currnt.bes; + opte1->currnt.ses = c->currnt.ses; + opte1->currnt.oofs = c->currnt.oofs; + opte1->currnt.css = c->currnt.css; + opte1->currnt.dm = c->currnt.dm; + + opte1->total.bpv = c->total.bpv + c->currnt.bpv; + opte1->total.fse = c->total.fse + c->currnt.fse; + opte1->total.crce = c->total.crce + c->currnt.crce; + opte1->total.rcrce = c->total.rcrce + c->currnt.rcrce; + opte1->total.uas = c->total.uas + c->currnt.uas; + opte1->total.les = c->total.les + c->currnt.les; + opte1->total.es = c->total.es + c->currnt.es; + opte1->total.bes = c->total.bes + c->currnt.bes; + opte1->total.ses = c->total.ses + c->currnt.ses; + opte1->total.oofs = c->total.oofs + c->currnt.oofs; + opte1->total.css = c->total.css + c->currnt.css; + opte1->total.dm = c->total.dm + c->currnt.dm; + for (s=0; s<48; ++s) { + opte1->interval[s].bpv = c->interval[s].bpv; + opte1->interval[s].fse = c->interval[s].fse; + opte1->interval[s].crce = c->interval[s].crce; + opte1->interval[s].rcrce = c->interval[s].rcrce; + opte1->interval[s].uas = c->interval[s].uas; + opte1->interval[s].les = c->interval[s].les; + opte1->interval[s].es = c->interval[s].es; + opte1->interval[s].bes = c->interval[s].bes; + opte1->interval[s].ses = c->interval[s].ses; + opte1->interval[s].oofs = c->interval[s].oofs; + opte1->interval[s].css = c->interval[s].css; + opte1->interval[s].dm = c->interval[s].dm; + } + return 0; + + case SERIAL_GETE3STAT: + CP_DEBUG2 (d, ("ioctl: gete3stat\n")); + if (c->type != T_E3 && c->type != T_T3 && c->type != T_STS1) + return EINVAL; + opte3 = (struct e3_statistics*) data; + + opte3->status = c->e3status; + opte3->cursec = (c->e3csec_5 * 2 + 1) / 10; + opte3->totsec = c->e3tsec + opte3->cursec; + + opte3->ccv = c->e3ccv; + opte3->tcv = c->e3tcv + opte3->ccv; + + for (s = 0; s < 48; ++s) { + opte3->icv[s] = c->e3icv[s]; + } + return 0; + + case SERIAL_CLRSTAT: + CP_DEBUG2 (d, ("ioctl: clrstat\n")); + /* Only for superuser! */ +#if __FreeBSD_version < 400000 + error = suser (p->p_ucred, &p->p_acflag); +#elif __FreeBSD_version < 500000 + error = suser (p); +#else + error = suser (td); +#endif + if (error) + return error; + c->rintr = 0; + c->tintr = 0; + c->ibytes = 0; + c->obytes = 0; + c->ipkts = 0; + c->opkts = 0; + c->overrun = 0; + c->frame = 0; + c->crc = 0; + c->underrun = 0; + bzero (&c->currnt, sizeof (c->currnt)); + bzero (&c->total, sizeof (c->total)); + bzero (c->interval, sizeof (c->interval)); + c->e3ccv = 0; + c->e3tcv = 0; + bzero (c->e3icv, sizeof (c->e3icv)); + return 0; + + case SERIAL_GETBAUD: + CP_DEBUG2 (d, ("ioctl: getbaud\n")); + *(long*)data = c->baud; + return 0; + + case SERIAL_SETBAUD: + CP_DEBUG2 (d, ("ioctl: setbaud\n")); + /* Only for superuser! */ +#if __FreeBSD_version < 400000 + error = suser (p->p_ucred, &p->p_acflag); +#elif __FreeBSD_version < 500000 + error = suser (p); +#else + error = suser (td); +#endif + if (error) + return error; + s = splimp (); + cp_set_baud (c, *(long*)data); + splx (s); + return 0; + + case SERIAL_GETLOOP: + CP_DEBUG2 (d, ("ioctl: getloop\n")); + *(int*)data = c->lloop; + return 0; + + case SERIAL_SETLOOP: + CP_DEBUG2 (d, ("ioctl: setloop\n")); + /* Only for superuser! */ +#if __FreeBSD_version < 400000 + error = suser (p->p_ucred, &p->p_acflag); +#elif __FreeBSD_version < 500000 + error = suser (p); +#else + error = suser (td); +#endif + if (error) + return error; + s = splimp (); + cp_set_lloop (c, *(int*)data); + splx (s); + return 0; + + case SERIAL_GETDPLL: + CP_DEBUG2 (d, ("ioctl: getdpll\n")); + if (c->type != T_SERIAL) + return EINVAL; + *(int*)data = c->dpll; + return 0; + + case SERIAL_SETDPLL: + CP_DEBUG2 (d, ("ioctl: setdpll\n")); + /* Only for superuser! */ +#if __FreeBSD_version < 400000 + error = suser (p->p_ucred, &p->p_acflag); +#elif __FreeBSD_version < 500000 + error = suser (p); +#else + error = suser (td); +#endif + if (error) + return error; + if (c->type != T_SERIAL) + return EINVAL; + s = splimp (); + cp_set_dpll (c, *(int*)data); + splx (s); + return 0; + + case SERIAL_GETNRZI: + CP_DEBUG2 (d, ("ioctl: getnrzi\n")); + if (c->type != T_SERIAL) + return EINVAL; + *(int*)data = c->nrzi; + return 0; + + case SERIAL_SETNRZI: + CP_DEBUG2 (d, ("ioctl: setnrzi\n")); + /* Only for superuser! */ +#if __FreeBSD_version < 400000 + error = suser (p->p_ucred, &p->p_acflag); +#elif __FreeBSD_version < 500000 + error = suser (p); +#else + error = suser (td); +#endif + if (error) + return error; + if (c->type != T_SERIAL) + return EINVAL; + s = splimp (); + cp_set_nrzi (c, *(int*)data); + splx (s); + return 0; + + case SERIAL_GETDEBUG: + CP_DEBUG2 (d, ("ioctl: getdebug\n")); + *(int*)data = d->chan->debug; + return 0; + + case SERIAL_SETDEBUG: + CP_DEBUG2 (d, ("ioctl: setdebug\n")); + /* Only for superuser! */ +#if __FreeBSD_version < 400000 + error = suser (p->p_ucred, &p->p_acflag); +#elif __FreeBSD_version < 500000 + error = suser (p); +#else + error = suser (td); +#endif + if (error) + return error; + d->chan->debug = *(int*)data; +#ifndef NETGRAPH + if (d->chan->debug) + d->pp.pp_if.if_flags |= IFF_DEBUG; + else + d->pp.pp_if.if_flags &= ~IFF_DEBUG; +#endif + return 0; + + case SERIAL_GETHIGAIN: + CP_DEBUG2 (d, ("ioctl: gethigain\n")); + if (c->type != T_E1) + return EINVAL; + *(int*)data = c->higain; + return 0; + + case SERIAL_SETHIGAIN: + CP_DEBUG2 (d, ("ioctl: sethigain\n")); + /* Only for superuser! */ +#if __FreeBSD_version < 400000 + error = suser (p->p_ucred, &p->p_acflag); +#elif __FreeBSD_version < 500000 + error = suser (p); +#else + error = suser (td); +#endif + if (error) + return error; + if (c->type != T_E1) + return EINVAL; + s = splimp (); + cp_set_higain (c, *(int*)data); + splx (s); + return 0; + + case SERIAL_GETPHONY: + CP_DEBUG2 (d, ("ioctl: getphony\n")); + if (c->type != T_E1) + return EINVAL; + *(int*)data = c->phony; + return 0; + + case SERIAL_SETPHONY: + CP_DEBUG2 (d, ("ioctl: setphony\n")); + /* Only for superuser! */ +#if __FreeBSD_version < 400000 + error = suser (p->p_ucred, &p->p_acflag); +#elif __FreeBSD_version < 500000 + error = suser (p); +#else + error = suser (td); +#endif + if (error) + return error; + if (c->type != T_E1) + return EINVAL; + s = splimp (); + cp_set_phony (c, *(int*)data); + splx (s); + return 0; + + case SERIAL_GETUNFRAM: + CP_DEBUG2 (d, ("ioctl: getunfram\n")); + if (c->type != T_E1) + return EINVAL; + *(int*)data = c->unfram; + return 0; + + case SERIAL_SETUNFRAM: + CP_DEBUG2 (d, ("ioctl: setunfram\n")); + /* Only for superuser! */ +#if __FreeBSD_version < 400000 + error = suser (p->p_ucred, &p->p_acflag); +#elif __FreeBSD_version < 500000 + error = suser (p); +#else + error = suser (td); +#endif + if (error) + return error; + if (c->type != T_E1) + return EINVAL; + s = splimp (); + cp_set_unfram (c, *(int*)data); + splx (s); + return 0; + + case SERIAL_GETSCRAMBLER: + CP_DEBUG2 (d, ("ioctl: getscrambler\n")); + if (c->type != T_G703 && !c->unfram) + return EINVAL; + *(int*)data = c->scrambler; + return 0; + + case SERIAL_SETSCRAMBLER: + CP_DEBUG2 (d, ("ioctl: setscrambler\n")); + /* Only for superuser! */ +#if __FreeBSD_version < 400000 + error = suser (p->p_ucred, &p->p_acflag); +#elif __FreeBSD_version < 500000 + error = suser (p); +#else + error = suser (td); +#endif + if (error) + return error; + if (c->type != T_G703 && !c->unfram) + return EINVAL; + s = splimp (); + cp_set_scrambler (c, *(int*)data); + splx (s); + return 0; + + case SERIAL_GETMONITOR: + CP_DEBUG2 (d, ("ioctl: getmonitor\n")); + if (c->type != T_E1 && + c->type != T_E3 && + c->type != T_T3 && + c->type != T_STS1) + return EINVAL; + *(int*)data = c->monitor; + return 0; + + case SERIAL_SETMONITOR: + CP_DEBUG2 (d, ("ioctl: setmonitor\n")); + /* Only for superuser! */ +#if __FreeBSD_version < 400000 + error = suser (p->p_ucred, &p->p_acflag); +#elif __FreeBSD_version < 500000 + error = suser (p); +#else + error = suser (td); +#endif + if (error) + return error; + if (c->type != T_E1) + return EINVAL; + s = splimp (); + cp_set_monitor (c, *(int*)data); + splx (s); + return 0; + + case SERIAL_GETUSE16: + CP_DEBUG2 (d, ("ioctl: getuse16\n")); + if (c->type != T_E1 || c->unfram) + return EINVAL; + *(int*)data = c->use16; + return 0; + + case SERIAL_SETUSE16: + CP_DEBUG2 (d, ("ioctl: setuse16\n")); + /* Only for superuser! */ +#if __FreeBSD_version < 400000 + error = suser (p->p_ucred, &p->p_acflag); +#elif __FreeBSD_version < 500000 + error = suser (p); +#else + error = suser (td); +#endif + if (error) + return error; + if (c->type != T_E1) + return EINVAL; + s = splimp (); + cp_set_use16 (c, *(int*)data); + splx (s); + return 0; + + case SERIAL_GETCRC4: + CP_DEBUG2 (d, ("ioctl: getcrc4\n")); + if (c->type != T_E1 || c->unfram) + return EINVAL; + *(int*)data = c->crc4; + return 0; + + case SERIAL_SETCRC4: + CP_DEBUG2 (d, ("ioctl: setcrc4\n")); + /* Only for superuser! */ +#if __FreeBSD_version < 400000 + error = suser (p->p_ucred, &p->p_acflag); +#elif __FreeBSD_version < 500000 + error = suser (p); +#else + error = suser (td); +#endif + if (error) + return error; + if (c->type != T_E1) + return EINVAL; + s = splimp (); + cp_set_crc4 (c, *(int*)data); + splx (s); + return 0; + + case SERIAL_GETCLK: + CP_DEBUG2 (d, ("ioctl: getclk\n")); + if (c->type != T_E1 && + c->type != T_G703 && + c->type != T_E3 && + c->type != T_T3 && + c->type != T_STS1) + return EINVAL; + switch (c->gsyn) { + default: *(int*)data = E1CLK_INTERNAL; break; + case GSYN_RCV: *(int*)data = E1CLK_RECEIVE; break; + case GSYN_RCV0: *(int*)data = E1CLK_RECEIVE_CHAN0; break; + case GSYN_RCV1: *(int*)data = E1CLK_RECEIVE_CHAN1; break; + case GSYN_RCV2: *(int*)data = E1CLK_RECEIVE_CHAN2; break; + case GSYN_RCV3: *(int*)data = E1CLK_RECEIVE_CHAN3; break; + } + return 0; + + case SERIAL_SETCLK: + CP_DEBUG2 (d, ("ioctl: setclk\n")); + /* Only for superuser! */ +#if __FreeBSD_version < 400000 + error = suser (p->p_ucred, &p->p_acflag); +#elif __FreeBSD_version < 500000 + error = suser (p); +#else + error = suser (td); +#endif + if (error) + return error; + if (c->type != T_E1 && + c->type != T_G703 && + c->type != T_E3 && + c->type != T_T3 && + c->type != T_STS1) + return EINVAL; + s = splimp (); + switch (*(int*)data) { + default: cp_set_gsyn (c, GSYN_INT); break; + case E1CLK_RECEIVE: cp_set_gsyn (c, GSYN_RCV); break; + case E1CLK_RECEIVE_CHAN0: cp_set_gsyn (c, GSYN_RCV0); break; + case E1CLK_RECEIVE_CHAN1: cp_set_gsyn (c, GSYN_RCV1); break; + case E1CLK_RECEIVE_CHAN2: cp_set_gsyn (c, GSYN_RCV2); break; + case E1CLK_RECEIVE_CHAN3: cp_set_gsyn (c, GSYN_RCV3); break; + } + splx (s); + return 0; + + case SERIAL_GETTIMESLOTS: + CP_DEBUG2 (d, ("ioctl: gettimeslots\n")); + if ((c->type != T_E1 || c->unfram) && c->type != T_DATA) + return EINVAL; + *(u_long*)data = c->ts; + return 0; + + case SERIAL_SETTIMESLOTS: + CP_DEBUG2 (d, ("ioctl: settimeslots\n")); + /* Only for superuser! */ +#if __FreeBSD_version < 400000 + error = suser (p->p_ucred, &p->p_acflag); +#elif __FreeBSD_version < 500000 + error = suser (p); +#else + error = suser (td); +#endif + if (error) + return error; + if ((c->type != T_E1 || c->unfram) && c->type != T_DATA) + return EINVAL; + s = splimp (); + cp_set_ts (c, *(u_long*)data); + splx (s); + return 0; + + case SERIAL_GETINVCLK: + CP_DEBUG2 (d, ("ioctl: getinvclk\n")); +#if 1 + return EINVAL; +#else + if (c->type != T_SERIAL) + return EINVAL; + *(int*)data = c->invtxc; + return 0; +#endif + + case SERIAL_SETINVCLK: + CP_DEBUG2 (d, ("ioctl: setinvclk\n")); + /* Only for superuser! */ +#if __FreeBSD_version < 400000 + error = suser (p->p_ucred, &p->p_acflag); +#elif __FreeBSD_version < 500000 + error = suser (p); +#else + error = suser (td); +#endif + if (error) + return error; + if (c->type != T_SERIAL) + return EINVAL; + s = splimp (); + cp_set_invtxc (c, *(int*)data); + cp_set_invrxc (c, *(int*)data); + splx (s); + return 0; + + case SERIAL_GETINVTCLK: + CP_DEBUG2 (d, ("ioctl: getinvtclk\n")); + if (c->type != T_SERIAL) + return EINVAL; + *(int*)data = c->invtxc; + return 0; + + case SERIAL_SETINVTCLK: + CP_DEBUG2 (d, ("ioctl: setinvtclk\n")); + /* Only for superuser! */ +#if __FreeBSD_version < 400000 + error = suser (p->p_ucred, &p->p_acflag); +#elif __FreeBSD_version < 500000 + error = suser (p); +#else + error = suser (td); +#endif + if (error) + return error; + if (c->type != T_SERIAL) + return EINVAL; + s = splimp (); + cp_set_invtxc (c, *(int*)data); + splx (s); + return 0; + + case SERIAL_GETINVRCLK: + CP_DEBUG2 (d, ("ioctl: getinvrclk\n")); + if (c->type != T_SERIAL) + return EINVAL; + *(int*)data = c->invrxc; + return 0; + + case SERIAL_SETINVRCLK: + CP_DEBUG2 (d, ("ioctl: setinvrclk\n")); + /* Only for superuser! */ +#if __FreeBSD_version < 400000 + error = suser (p->p_ucred, &p->p_acflag); +#elif __FreeBSD_version < 500000 + error = suser (p); +#else + error = suser (td); +#endif + if (error) + return error; + if (c->type != T_SERIAL) + return EINVAL; + s = splimp (); + cp_set_invrxc (c, *(int*)data); + splx (s); + return 0; + + case SERIAL_GETLEVEL: + CP_DEBUG2 (d, ("ioctl: getlevel\n")); + if (c->type != T_G703) + return EINVAL; + s = splimp (); + *(int*)data = cp_get_lq (c); + splx (s); + return 0; + +#if 0 + case SERIAL_RESET: + CP_DEBUG2 (d, ("ioctl: reset\n")); + /* Only for superuser! */ +#if __FreeBSD_version < 400000 + error = suser (p->p_ucred, &p->p_acflag); +#elif __FreeBSD_version < 500000 + error = suser (p); +#else + error = suser (td); +#endif + if (error) + return error; + s = splimp (); + cp_reset (c->board, 0, 0); + splx (s); + return 0; + + case SERIAL_HARDRESET: + CP_DEBUG2 (d, ("ioctl: hardreset\n")); + /* Only for superuser! */ +#if __FreeBSD_version < 400000 + error = suser (p->p_ucred, &p->p_acflag); +#elif __FreeBSD_version < 500000 + error = suser (p); +#else + error = suser (td); +#endif + if (error) + return error; + s = splimp (); + /* hard_reset (c->board); */ + splx (s); + return 0; +#endif + + case SERIAL_GETCABLE: + CP_DEBUG2 (d, ("ioctl: getcable\n")); + if (c->type != T_SERIAL) + return EINVAL; + s = splimp (); + *(int*)data = cp_get_cable (c); + splx (s); + return 0; + + case SERIAL_GETDIR: + CP_DEBUG2 (d, ("ioctl: getdir\n")); + if (c->type != T_E1 && c->type != T_DATA) + return EINVAL; + *(int*)data = c->dir; + return 0; + + case SERIAL_SETDIR: + CP_DEBUG2 (d, ("ioctl: setdir\n")); + /* Only for superuser! */ +#if __FreeBSD_version < 400000 + error = suser (p->p_ucred, &p->p_acflag); +#elif __FreeBSD_version < 500000 + error = suser (p); +#else + error = suser (td); +#endif + if (error) + return error; + s = splimp (); + cp_set_dir (c, *(int*)data); + splx (s); + return 0; + + case SERIAL_GETRLOOP: + CP_DEBUG2 (d, ("ioctl: getrloop\n")); + if (c->type != T_G703 && + c->type != T_E3 && + c->type != T_T3 && + c->type != T_STS1) + return EINVAL; + *(int*)data = cp_get_rloop (c); + return 0; + + case SERIAL_SETRLOOP: + CP_DEBUG2 (d, ("ioctl: setloop\n")); + if (c->type != T_E3 && c->type != T_T3 && c->type != T_STS1) + return EINVAL; + /* Only for superuser! */ +#if __FreeBSD_version < 400000 + error = suser (p->p_ucred, &p->p_acflag); +#elif __FreeBSD_version < 500000 + error = suser (p); +#else + error = suser (td); +#endif + if (error) + return error; + s = splimp (); + cp_set_rloop (c, *(int*)data); + splx (s); + return 0; + + case SERIAL_GETCABLEN: + CP_DEBUG2 (d, ("ioctl: getcablen\n")); + if (c->type != T_T3 && c->type != T_STS1) + return EINVAL; + *(int*)data = c->cablen; + return 0; + + case SERIAL_SETCABLEN: + CP_DEBUG2 (d, ("ioctl: setloop\n")); + if (c->type != T_T3 && c->type != T_STS1) + return EINVAL; + /* Only for superuser! */ +#if __FreeBSD_version < 400000 + error = suser (p->p_ucred, &p->p_acflag); +#elif __FreeBSD_version < 500000 + error = suser (p); +#else + error = suser (td); +#endif + if (error) + return error; + s = splimp (); + cp_set_cablen (c, *(int*)data); + splx (s); + return 0; + + case TIOCSDTR: /* Set DTR */ + s = splimp (); + cp_set_dtr (c, 1); + splx (s); + return 0; + + case TIOCCDTR: /* Clear DTR */ + s = splimp (); + cp_set_dtr (c, 0); + splx (s); + return 0; + + case TIOCMSET: /* Set DTR/RTS */ + s = splimp (); + cp_set_dtr (c, (*(int*)data & TIOCM_DTR) ? 1 : 0); + cp_set_rts (c, (*(int*)data & TIOCM_RTS) ? 1 : 0); + splx (s); + return 0; + + case TIOCMBIS: /* Add DTR/RTS */ + s = splimp (); + if (*(int*)data & TIOCM_DTR) cp_set_dtr (c, 1); + if (*(int*)data & TIOCM_RTS) cp_set_rts (c, 1); + splx (s); + return 0; + + case TIOCMBIC: /* Clear DTR/RTS */ + s = splimp (); + if (*(int*)data & TIOCM_DTR) cp_set_dtr (c, 0); + if (*(int*)data & TIOCM_RTS) cp_set_rts (c, 0); + splx (s); + return 0; + + case TIOCMGET: /* Get modem status */ + *(int*)data = cp_modem_status (c); + return 0; + } + return ENOTTY; +} + +#if __FreeBSD_version < 400000 +static struct cdevsw cp_cdevsw = { + cp_open, cp_close, noread, nowrite, + cp_ioctl, nullstop, nullreset, nodevtotty, + seltrue, nommap, NULL, "cp", + NULL, -1 + }; +#elif __FreeBSD_version < 500000 +static struct cdevsw cp_cdevsw = { + cp_open, cp_close, noread, nowrite, + cp_ioctl, nopoll, nommap, nostrategy, + "cp", CDEV_MAJOR, nodump, nopsize, + D_NAGGED, -1 + }; +#elif __FreeBSD_version == 500000 +static struct cdevsw cp_cdevsw = { + cp_open, cp_close, noread, nowrite, + cp_ioctl, nopoll, nommap, nostrategy, + "cp", CDEV_MAJOR, nodump, nopsize, + D_NAGGED, + }; +#elif __FreeBSD_version <= 501000 +static struct cdevsw cp_cdevsw = { + .d_open = cp_open, + .d_close = cp_close, + .d_read = noread, + .d_write = nowrite, + .d_ioctl = cp_ioctl, + .d_poll = nopoll, + .d_mmap = nommap, + .d_strategy = nostrategy, + .d_name = "cp", + .d_maj = CDEV_MAJOR, + .d_dump = nodump, + .d_flags = D_NAGGED, +}; +#elif __FreeBSD_version < 502103 +static struct cdevsw cp_cdevsw = { + .d_open = cp_open, + .d_close = cp_close, + .d_ioctl = cp_ioctl, + .d_name = "cp", + .d_maj = CDEV_MAJOR, + .d_flags = D_NAGGED, +}; +#else /* __FreeBSD_version >= 502103 */ +static struct cdevsw cp_cdevsw = { + .d_version = D_VERSION, + .d_open = cp_open, + .d_close = cp_close, + .d_ioctl = cp_ioctl, + .d_name = "cp", + .d_maj = CDEV_MAJOR, + .d_flags = D_NEEDGIANT, +}; +#endif + +#ifdef NETGRAPH +#if __FreeBSD_version >= 500000 +static int ng_cp_constructor (node_p node) +{ + drv_t *d = NG_NODE_PRIVATE (node); +#else +static int ng_cp_constructor (node_p *node) +{ + drv_t *d = (*node)->private; +#endif + CP_DEBUG (d, ("Constructor\n")); + return EINVAL; +} + +static int ng_cp_newhook (node_p node, hook_p hook, const char *name) +{ + int s; +#if __FreeBSD_version >= 500000 + drv_t *d = NG_NODE_PRIVATE (node); +#else + drv_t *d = node->private; +#endif + + CP_DEBUG (d, ("Newhook\n")); + /* Attach debug hook */ + if (strcmp (name, NG_CP_HOOK_DEBUG) == 0) { +#if __FreeBSD_version >= 500000 + NG_HOOK_SET_PRIVATE (hook, NULL); +#else + hook->private = 0; +#endif + d->debug_hook = hook; + return 0; + } + + /* Check for raw hook */ + if (strcmp (name, NG_CP_HOOK_RAW) != 0) + return EINVAL; + +#if __FreeBSD_version >= 500000 + NG_HOOK_SET_PRIVATE (hook, d); +#else + hook->private = d; +#endif + d->hook = hook; + s = splimp (); + cp_up (d); + splx (s); + return 0; +} + +static char *format_timeslots (u_long s) +{ + static char buf [100]; + char *p = buf; + int i; + + for (i=1; i<32; ++i) + if ((s >> i) & 1) { + int prev = (i > 1) & (s >> (i-1)); + int next = (i < 31) & (s >> (i+1)); + + if (prev) { + if (next) + continue; + *p++ = '-'; + } else if (p > buf) + *p++ = ','; + + if (i >= 10) + *p++ = '0' + i / 10; + *p++ = '0' + i % 10; + } + *p = 0; + return buf; +} + +static int print_modems (char *s, cp_chan_t *c, int need_header) +{ + int status = cp_modem_status (c); + int length = 0; + + if (need_header) + length += sprintf (s + length, " LE DTR DSR RTS CTS CD\n"); + length += sprintf (s + length, "%4s %4s %4s %4s %4s %4s\n", + status & TIOCM_LE ? "On" : "-", + status & TIOCM_DTR ? "On" : "-", + status & TIOCM_DSR ? "On" : "-", + status & TIOCM_RTS ? "On" : "-", + status & TIOCM_CTS ? "On" : "-", + status & TIOCM_CD ? "On" : "-"); + return length; +} + +static int print_stats (char *s, cp_chan_t *c, int need_header) +{ + int length = 0; + + if (need_header) + length += sprintf (s + length, " Rintr Tintr Mintr Ibytes Ipkts Ierrs Obytes Opkts Oerrs\n"); + length += sprintf (s + length, "%7ld %7ld %7ld %8lu %7ld %7ld %8lu %7ld %7ld\n", + c->rintr, c->tintr, 0l, (unsigned long) c->ibytes, + c->ipkts, c->overrun + c->frame + c->crc, + (unsigned long) c->obytes, c->opkts, c->underrun); + return length; +} + +static char *format_e1_status (u_char status) +{ + static char buf [80]; + + if (status & E1_NOALARM) + return "Ok"; + buf[0] = 0; + if (status & E1_LOS) strcat (buf, ",LOS"); + if (status & E1_AIS) strcat (buf, ",AIS"); + if (status & E1_LOF) strcat (buf, ",LOF"); + if (status & E1_LOMF) strcat (buf, ",LOMF"); + if (status & E1_FARLOF) strcat (buf, ",FARLOF"); + if (status & E1_AIS16) strcat (buf, ",AIS16"); + if (status & E1_FARLOMF) strcat (buf, ",FARLOMF"); + if (status & E1_TSTREQ) strcat (buf, ",TSTREQ"); + if (status & E1_TSTERR) strcat (buf, ",TSTERR"); + if (buf[0] == ',') + return buf+1; + return "Unknown"; +} + +static int print_frac (char *s, int leftalign, u_long numerator, u_long divider) +{ + int n, length = 0; + + if (numerator < 1 || divider < 1) { + length += sprintf (s+length, leftalign ? "/- " : " -"); + return length; + } + n = (int) (0.5 + 1000.0 * numerator / divider); + if (n < 1000) { + length += sprintf (s+length, leftalign ? "/.%-3d" : " .%03d", n); + return length; + } + *(s + length) = leftalign ? '/' : ' '; + length ++; + + if (n >= 1000000) n = (n+500) / 1000 * 1000; + else if (n >= 100000) n = (n+50) / 100 * 100; + else if (n >= 10000) n = (n+5) / 10 * 10; + + switch (n) { + case 1000: length += printf (s+length, ".999"); return length; + case 10000: n = 9990; break; + case 100000: n = 99900; break; + case 1000000: n = 999000; break; + } + if (n < 10000) length += sprintf (s+length, "%d.%d", n/1000, n/10%100); + else if (n < 100000) length += sprintf (s+length, "%d.%d", n/1000, n/100%10); + else if (n < 1000000) length += sprintf (s+length, "%d.", n/1000); + else length += sprintf (s+length, "%d", n/1000); + + return length; +} + +static int print_e1_stats (char *s, cp_chan_t *c) +{ + struct e1_counters total; + u_long totsec; + int length = 0; + + totsec = c->totsec + c->cursec; + total.bpv = c->total.bpv + c->currnt.bpv; + total.fse = c->total.fse + c->currnt.fse; + total.crce = c->total.crce + c->currnt.crce; + total.rcrce = c->total.rcrce + c->currnt.rcrce; + total.uas = c->total.uas + c->currnt.uas; + total.les = c->total.les + c->currnt.les; + total.es = c->total.es + c->currnt.es; + total.bes = c->total.bes + c->currnt.bes; + total.ses = c->total.ses + c->currnt.ses; + total.oofs = c->total.oofs + c->currnt.oofs; + total.css = c->total.css + c->currnt.css; + total.dm = c->total.dm + c->currnt.dm; + + length += sprintf (s + length, " Unav/Degr Bpv/Fsyn CRC/RCRC Err/Lerr Sev/Bur Oof/Slp Status\n"); + + /* Unavailable seconds, degraded minutes */ + length += print_frac (s + length, 0, c->currnt.uas, c->cursec); + length += print_frac (s + length, 1, 60 * c->currnt.dm, c->cursec); + + /* Bipolar violations, frame sync errors */ + length += print_frac (s + length, 0, c->currnt.bpv, c->cursec); + length += print_frac (s + length, 1, c->currnt.fse, c->cursec); + + /* CRC errors, remote CRC errors (E-bit) */ + length += print_frac (s + length, 0, c->currnt.crce, c->cursec); + length += print_frac (s + length, 1, c->currnt.rcrce, c->cursec); + + /* Errored seconds, line errored seconds */ + length += print_frac (s + length, 0, c->currnt.es, c->cursec); + length += print_frac (s + length, 1, c->currnt.les, c->cursec); + + /* Severely errored seconds, burst errored seconds */ + length += print_frac (s + length, 0, c->currnt.ses, c->cursec); + length += print_frac (s + length, 1, c->currnt.bes, c->cursec); + + /* Out of frame seconds, controlled slip seconds */ + length += print_frac (s + length, 0, c->currnt.oofs, c->cursec); + length += print_frac (s + length, 1, c->currnt.css, c->cursec); + + length += sprintf (s + length, " %s\n", format_e1_status (c->status)); + + /* Print total statistics. */ + length += print_frac (s + length, 0, total.uas, totsec); + length += print_frac (s + length, 1, 60 * total.dm, totsec); + + length += print_frac (s + length, 0, total.bpv, totsec); + length += print_frac (s + length, 1, total.fse, totsec); + + length += print_frac (s + length, 0, total.crce, totsec); + length += print_frac (s + length, 1, total.rcrce, totsec); + + length += print_frac (s + length, 0, total.es, totsec); + length += print_frac (s + length, 1, total.les, totsec); + + length += print_frac (s + length, 0, total.ses, totsec); + length += print_frac (s + length, 1, total.bes, totsec); + + length += print_frac (s + length, 0, total.oofs, totsec); + length += print_frac (s + length, 1, total.css, totsec); + + length += sprintf (s + length, " -- Total\n"); + return length; +} + +static int print_chan (char *s, cp_chan_t *c) +{ + drv_t *d = c->sys; + int length = 0; + + length += sprintf (s + length, "cp%d", c->board->num * NCHAN + c->num); + if (d->chan->debug) + length += sprintf (s + length, " debug=%d", d->chan->debug); + + if (c->board->mux) { + length += sprintf (s + length, " cfg=C"); + } else { + length += sprintf (s + length, " cfg=A"); + } + + if (c->baud) + length += sprintf (s + length, " %ld", c->baud); + else + length += sprintf (s + length, " extclock"); + + if (c->type == T_E1 || c->type == T_G703) + switch (c->gsyn) { + case GSYN_INT : length += sprintf (s + length, " syn=int"); break; + case GSYN_RCV : length += sprintf (s + length, " syn=rcv"); break; + case GSYN_RCV0 : length += sprintf (s + length, " syn=rcv0"); break; + case GSYN_RCV1 : length += sprintf (s + length, " syn=rcv1"); break; + case GSYN_RCV2 : length += sprintf (s + length, " syn=rcv2"); break; + case GSYN_RCV3 : length += sprintf (s + length, " syn=rcv3"); break; + } + if (c->type == T_SERIAL) { + length += sprintf (s + length, " dpll=%s", c->dpll ? "on" : "off"); + length += sprintf (s + length, " nrzi=%s", c->nrzi ? "on" : "off"); + length += sprintf (s + length, " invclk=%s", c->invtxc ? "on" : "off"); + } + if (c->type == T_E1) + length += sprintf (s + length, " higain=%s", c->higain ? "on" : "off"); + + length += sprintf (s + length, " loop=%s", c->lloop ? "on" : "off"); + + if (c->type == T_E1) + length += sprintf (s + length, " ts=%s", format_timeslots (c->ts)); + if (c->type == T_G703) { + int lq, x; + + x = splimp (); + lq = cp_get_lq (c); + splx (x); + length += sprintf (s + length, " (level=-%.1fdB)", lq / 10.0); + } + length += sprintf (s + length, "\n"); + return length; +} + +#if __FreeBSD_version >= 500000 +static int ng_cp_rcvmsg (node_p node, item_p item, hook_p lasthook) +{ + drv_t *d = NG_NODE_PRIVATE (node); + struct ng_mesg *msg; +#else +static int ng_cp_rcvmsg (node_p node, struct ng_mesg *msg, + const char *retaddr, struct ng_mesg **rptr) +{ + drv_t *d = node->private; +#endif + struct ng_mesg *resp = NULL; + int error = 0; + + CP_DEBUG (d, ("Rcvmsg\n")); +#if __FreeBSD_version >= 500000 + NGI_GET_MSG (item, msg); +#endif + switch (msg->header.typecookie) { + default: + error = EINVAL; + break; + + case NGM_CP_COOKIE: + printf ("Not implemented yet\n"); + error = EINVAL; + break; + + case NGM_GENERIC_COOKIE: + switch (msg->header.cmd) { + default: + error = EINVAL; + break; + + case NGM_TEXT_STATUS: { + char *s; + int l = 0; + int dl = sizeof (struct ng_mesg) + 730; + +#if __FreeBSD_version >= 500000 + NG_MKRESPONSE (resp, msg, dl, M_NOWAIT); + if (! resp) { + error = ENOMEM; + break; + } +#else + MALLOC (resp, struct ng_mesg *, dl, + M_NETGRAPH, M_NOWAIT); + if (! resp) { + error = ENOMEM; + break; + } + bzero (resp, dl); +#endif + s = (resp)->data; + if (d) { + l += print_chan (s + l, d->chan); + l += print_stats (s + l, d->chan, 1); + l += print_modems (s + l, d->chan, 1); + l += print_e1_stats (s + l, d->chan); + } else + l += sprintf (s + l, "Error: node not connect to channel"); +#if __FreeBSD_version < 500000 + (resp)->header.version = NG_VERSION; + (resp)->header.arglen = strlen (s) + 1; + (resp)->header.token = msg->header.token; + (resp)->header.typecookie = NGM_CP_COOKIE; + (resp)->header.cmd = msg->header.cmd; +#endif + strncpy ((resp)->header.cmdstr, "status", NG_CMDSTRLEN); + } + break; + } + break; + } +#if __FreeBSD_version >= 500000 + NG_RESPOND_MSG (error, node, item, resp); + NG_FREE_MSG (msg); +#else + *rptr = resp; + FREE (msg, M_NETGRAPH); +#endif + return error; +} + +#if __FreeBSD_version >= 500000 +static int ng_cp_rcvdata (hook_p hook, item_p item) +{ + drv_t *d = NG_NODE_PRIVATE (NG_HOOK_NODE(hook)); + struct mbuf *m; + meta_p meta; +#else +static int ng_cp_rcvdata (hook_p hook, struct mbuf *m, meta_p meta) +{ + drv_t *d = hook->node->private; +#endif + struct ifqueue *q; + int s; + + CP_DEBUG2 (d, ("Rcvdata\n")); +#if __FreeBSD_version >= 500000 + NGI_GET_M (item, m); + NGI_GET_META (item, meta); + NG_FREE_ITEM (item); + if (! NG_HOOK_PRIVATE (hook) || ! d) { + NG_FREE_M (m); + NG_FREE_META (meta); +#else + if (! hook->private || ! d) { + NG_FREE_DATA (m,meta); +#endif + return ENETDOWN; + } + q = (meta && meta->priority > 0) ? &d->hi_queue : &d->queue; + s = splimp (); +#if __FreeBSD_version >= 500000 + IF_LOCK (q); + if (_IF_QFULL (q)) { + _IF_DROP (q); + IF_UNLOCK (q); + splx (s); + NG_FREE_M (m); + NG_FREE_META (meta); + return ENOBUFS; + } + _IF_ENQUEUE (q, m); + IF_UNLOCK (q); +#else + if (IF_QFULL (q)) { + IF_DROP (q); + splx (s); + NG_FREE_DATA (m, meta); + return ENOBUFS; + } + IF_ENQUEUE (q, m); +#endif + cp_start (d); + splx (s); + return 0; +} + +static int ng_cp_rmnode (node_p node) +{ +#if __FreeBSD_version >= 500000 + drv_t *d = NG_NODE_PRIVATE (node); + + CP_DEBUG (d, ("Rmnode\n")); + if (d && d->running) { + int s = splimp (); + cp_down (d); + splx (s); + } +#ifdef KLD_MODULE + if (node->nd_flags & NG_REALLY_DIE) { + NG_NODE_SET_PRIVATE (node, NULL); + NG_NODE_UNREF (node); + } + node->nd_flags &= ~NG_INVALID; +#endif +#else /* __FreeBSD_version < 500000 */ + drv_t *d = node->private; + + if (d && d->running) { + int s = splimp (); + cp_down (d); + splx (s); + } + + node->flags |= NG_INVALID; + ng_cutlinks (node); +#ifdef KLD_MODULE +#if __FreeBSD_version >= 400000 + /* We do so because of pci module problem, see also comment in + cp_unload. Not in 4.x. */ + ng_unname (node); + ng_unref (node); +#else + node->flags &= ~NG_INVALID; +#endif +#endif +#endif + return 0; +} + +static void ng_cp_watchdog (void *arg) +{ + drv_t *d = arg; + + if (d) { + if (d->timeout == 1) + cp_watchdog (d); + if (d->timeout) + d->timeout--; + d->timeout_handle = timeout (ng_cp_watchdog, d, hz); + } +} + +static int ng_cp_connect (hook_p hook) +{ +#if __FreeBSD_version >= 500000 + drv_t *d = NG_NODE_PRIVATE (NG_HOOK_NODE (hook)); +#else + drv_t *d = hook->node->private; +#endif + + if (d) { + CP_DEBUG (d, ("Connect\n")); + d->timeout_handle = timeout (ng_cp_watchdog, d, hz); + } + + return 0; +} + +static int ng_cp_disconnect (hook_p hook) +{ +#if __FreeBSD_version >= 500000 + drv_t *d = NG_NODE_PRIVATE (NG_HOOK_NODE (hook)); +#else + drv_t *d = hook->node->private; +#endif + + if (d) { + CP_DEBUG (d, ("Disconnect\n")); +#if __FreeBSD_version >= 500000 + if (NG_HOOK_PRIVATE (hook)) +#else + if (hook->private) +#endif + { + int s = splimp (); + cp_down (d); + splx (s); + } + untimeout (ng_cp_watchdog, d, d->timeout_handle); + } + return 0; +} +#endif + +#if __FreeBSD_version < 400000 + +#ifdef KLD_MODULE +extern STAILQ_HEAD(devlist, pci_devinfo) pci_devq; + +static +struct pci_devinfo *pci_device_find (u_int16_t device, u_int16_t vendor, int unit) +{ + pcicfgregs *cfg; + struct pci_devinfo *dinfo; + int u=0,i; + + for (dinfo = STAILQ_FIRST (&pci_devq), i=0; + dinfo && (i < pci_numdevs); + dinfo = STAILQ_NEXT (dinfo, pci_links), i++) { + cfg = &dinfo->cfg; + if ((device == cfg->device) && (vendor == cfg->vendor)) { + if (u == unit) + return dinfo; + u++; + } + } + return 0; +} + +/* + * Function called when loading the driver. + */ +static int cp_load (void) +{ + int i, s; + pcicfgregs *cfg; + struct pci_devinfo *dinfo; + + s = splimp (); + for (i=0; i<NBRD; ++i) { + dinfo = pci_device_find (cp_device_id, cp_vendor_id, i); + if (! dinfo) + break; + + cfg = &dinfo->cfg; + cp_attach (cfg, i); + dinfo->device = &cp_driver; + strncpy (dinfo->conf.pd_name, cp_driver.pd_name, + sizeof(dinfo->conf.pd_name)); + dinfo->conf.pd_name[sizeof(dinfo->conf.pd_name) - 1] = 0; + dinfo->conf.pd_unit = i; + } + splx (s); + if (! i) { + /* Deactivate the timeout routine. */ + untimeout (cp_timeout, 0, timeout_handle); + return ENXIO; + } + return 0; +} + +/* + * Function called when unloading the driver. + */ +static int cp_unload (void) +{ +#if 1 + /* Currently pci loadable module not fully supported, so we just + return EBUSY. Do not forget to correct ng_cp_rmnode then probelm + would be solved. */ + return EBUSY; +#else + int i, s; + + /* Check if the device is busy (open). */ + for (i=0; i<NBRD*NCHAN; ++i) { + drv_t *d = channel[i]; + + if (d && d->chan->type && d->running) + return EBUSY; + } + + s = splimp (); + + /* Deactivate the timeout routine. */ + untimeout (cp_timeout, 0, timeout_handle); + + /* OK to unload the driver, unregister the interrupt first. */ + for (i=0; i<NBRD; ++i) { + cp_board_t *b = adapter [i]; + + if (!b || ! b->type) + continue; + + cp_reset (b, 0 ,0); +/* pci_unmap_int (tag, cp_intr, b, &net_imask);*/ + /* Here should be something like pci_unmap_mem ()*/ + } + + for (i=0; i<NBRD; i++) + if (led_timo[i].callout) + untimeout (cp_led_off, adapter + i, led_timo[i]); + + /* Detach the interfaces, free buffer memory. */ + for (i=0; i<NBRD*NCHAN; ++i) { + drv_t *d = channel[i]; + + if (! d) + continue; +#ifndef NETGRAPH +#if __FreeBSD_version >= 400000 || NBPFILTER > 0 + /* Detach from the packet filter list of interfaces. */ + { + struct bpf_if *q, **b = &bpf_iflist; + + while ((q = *b)) { + if (q->bif_ifp == d->pp.pp_if) { + *b = q->bif_next; + free (q, M_DEVBUF); + } + b = &(q->bif_next); + } + } +#endif + /* Detach from the sync PPP list. */ + sppp_detach (&d->pp.pp_if); + + /* Detach from the system list of interfaces. */ + { + struct ifaddr *ifa; + TAILQ_FOREACH (ifa, &d->pp.pp_if.if_addrhead, ifa_link) { + TAILQ_REMOVE (&d->pp.pp_if.if_addrhead, ifa, ifa_link); + free (ifa, M_IFADDR); + } + TAILQ_REMOVE (&ifnet, &d->pp.pp_if, if_link); + } +#endif + /* Deallocate buffers. */ +/* free (d, M_DEVBUF);*/ + } + + for (i=0; i<NBRD; ++i) { + cp_board_t *b = adapter + i; + + if (b && b->type) + free (b, M_DEVBUF); + } + splx (s); + return 0; +#endif +} +#endif +#endif + +#if __FreeBSD_version < 400000 +#ifdef KLD_MODULE +static int cp_modevent (module_t mod, int type, void *unused) +{ + dev_t dev; + + switch (type) { + case MOD_LOAD: + dev = makedev (CDEV_MAJOR, 0); + cdevsw_add (&dev, &cp_cdevsw, 0); + timeout_handle = timeout (cp_timeout, 0, hz*5); + return cp_load (); + case MOD_UNLOAD: + return cp_unload (); + case MOD_SHUTDOWN: + break; + } + return 0; +} +#endif /* KLD_MODULE */ + +#else /* __FreeBSD_version >= 400000 */ +static int cp_modevent (module_t mod, int type, void *unused) +{ + dev_t dev; + static int load_count = 0; + struct cdevsw *cdsw; + +#if __FreeBSD_version >= 502103 + dev = udev2dev (makeudev(CDEV_MAJOR, 0)); +#else + dev = makedev (CDEV_MAJOR, 0); +#endif + switch (type) { + case MOD_LOAD: + if (dev != NODEV && + (cdsw = devsw (dev)) && + cdsw->d_maj == CDEV_MAJOR) { + printf ("Tau-PCI driver is already in system\n"); + return (ENXIO); + } +#if __FreeBSD_version >= 500000 && defined NETGRAPH + if (ng_newtype (&typestruct)) + printf ("Failed to register ng_cp\n"); +#endif + ++load_count; +#if __FreeBSD_version <= 500000 + cdevsw_add (&cp_cdevsw); +#endif + timeout_handle = timeout (cp_timeout, 0, hz*5); + break; + case MOD_UNLOAD: + if (load_count == 1) { + printf ("Removing device entry for Tau-PCI\n"); +#if __FreeBSD_version <= 500000 + cdevsw_remove (&cp_cdevsw); +#endif +#if __FreeBSD_version >= 500000 && defined NETGRAPH + ng_rmtype (&typestruct); +#endif + } + untimeout (cp_timeout, 0, timeout_handle); + --load_count; + break; + case MOD_SHUTDOWN: + break; + } + return 0; +} +#endif /* __FreeBSD_version < 400000 */ + +#ifdef NETGRAPH +static struct ng_type typestruct = { +#if __FreeBSD_version >= 500000 + NG_ABI_VERSION, +#else + NG_VERSION, +#endif + NG_CP_NODE_TYPE, +#if __FreeBSD_version < 500000 && (defined KLD_MODULE) + cp_modevent, +#else + NULL, +#endif + ng_cp_constructor, + ng_cp_rcvmsg, + ng_cp_rmnode, + ng_cp_newhook, + NULL, + ng_cp_connect, + ng_cp_rcvdata, +#if __FreeBSD_version < 500000 + NULL, +#endif + ng_cp_disconnect, + NULL +}; +#if __FreeBSD_version < 400000 +NETGRAPH_INIT_ORDERED (cp, &typestruct, SI_SUB_DRIVERS,\ + SI_ORDER_MIDDLE + CDEV_MAJOR); +#endif +#endif /*NETGRAPH*/ + +#if __FreeBSD_version >= 500000 +#ifdef NETGRAPH +MODULE_DEPEND (ng_cp, netgraph, NG_ABI_VERSION, NG_ABI_VERSION, NG_ABI_VERSION); +#else +MODULE_DEPEND (cp, sppp, 1, 1, 1); +#endif +#ifdef KLD_MODULE +DRIVER_MODULE (cpmod, pci, cp_driver, cp_devclass, cp_modevent, NULL); +#else +DRIVER_MODULE (cp, pci, cp_driver, cp_devclass, cp_modevent, NULL); +#endif +#elif __FreeBSD_version >= 400000 +#ifdef NETGRAPH +DRIVER_MODULE (cp, pci, cp_driver, cp_devclass, ng_mod_event, &typestruct); +#else +DRIVER_MODULE (cp, pci, cp_driver, cp_devclass, cp_modevent, NULL); +#endif +#else /* __FreeBSD_version < 400000 */ +#ifdef KLD_MODULE +#ifndef NETGRAPH +static moduledata_t cpmod = { "cp", cp_modevent, NULL}; +DECLARE_MODULE (cp, cpmod, SI_SUB_DRIVERS, SI_ORDER_MIDDLE + CDEV_MAJOR); +#endif +#else /* KLD_MODULE */ + +/* + * Now for some driver initialisation. + * Occurs ONCE during boot (very early). + * This is if we are NOT a loadable module. + */ +static void cp_drvinit (void *unused) +{ + dev_t dev; + + dev = makedev (CDEV_MAJOR, 0); + cdevsw_add (&dev, &cp_cdevsw, 0); + + /* Activate the timeout routine. */ + timeout_handle = timeout (cp_timeout, 0, hz); +#ifdef NETGRAPH +#if 0 + /* Register our node type in netgraph */ + if (ng_newtype (&typestruct)) + printf ("Failed to register ng_cp\n"); +#endif +#endif +} + +SYSINIT (cpdev, SI_SUB_DRIVERS, SI_ORDER_MIDDLE+CDEV_MAJOR, cp_drvinit, 0) +#endif /* KLD_MODULE */ +#endif /* __FreeBSD_version < 400000 */ +#endif /* NPCI */ diff --git a/sys/dev/cp/ng_cp.h b/sys/dev/cp/ng_cp.h new file mode 100644 index 0000000..0dd6561 --- /dev/null +++ b/sys/dev/cp/ng_cp.h @@ -0,0 +1,31 @@ +/* + * Defines for Cronyx-Tau-PCI adapter driver. + * + * Copyright (C) 1999-2004 Cronyx Engineering. + * Author: Kurakin Roman, <rik@cronyx.ru> + * + * This software is distributed with NO WARRANTIES, not even the implied + * warranties for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + * Authors grant any other persons or organisations a permission to use, + * modify and redistribute this software in source and binary forms, + * as long as this message is kept with the software, all derivative + * works or modified versions. + * + * $Cronyx: ng_cp.h,v 1.1.2.4 2004/01/27 14:39:11 rik Exp $ + * $FreeBSD$ + */ + +#ifdef NETGRAPH + +#ifndef _CP_NETGRAPH_H_ +#define _CP_NETGRAPH_H_ + +#define NG_CP_NODE_TYPE "cp" +#define NGM_CP_COOKIE 941049562 +#define NG_CP_HOOK_RAW "rawdata" +#define NG_CP_HOOK_DEBUG "debug" + +#endif /* _CP_NETGRAPH_H_ */ + +#endif /* NETGRAPH */ |