From 4ed1fb6bacfd2f2f5ff401aebba3e37c1af0ad17 Mon Sep 17 00:00:00 2001 From: David Given Date: Fri, 10 Jan 2020 21:23:33 +0100 Subject: [PATCH 1/4] Document the extra index pulses. --- doc/faq.md | 5 +++++ doc/using.md | 10 ++++++++++ 2 files changed, 15 insertions(+) diff --git a/doc/faq.md b/doc/faq.md index c7a5c195..e7add173 100644 --- a/doc/faq.md +++ b/doc/faq.md @@ -84,6 +84,11 @@ contributed](Index_sensor_mod_FDD_1.1.pdf) on how to do this. I've never done it myself; if you try this and it works/doesn't work, as always, [get in touch](https://github.com/davidgiven/fluxengine/issues/new). +Another option is to fake the index signal to the drive completely. The +FluxEngine emits suitable pulses for a 300RPM drive on pin 3[0] and the +equivalent pulses for a 360RPM drive on pin 3[1]. Disclaimer: I have never used +these. + **Q.** Is this like Supercard Pro / KryoFlux / Catweasel / DiskFerret? Do you *support KryoFlux stream files? diff --git a/doc/using.md b/doc/using.md index e533854e..abea1acc 100644 --- a/doc/using.md +++ b/doc/using.md @@ -64,6 +64,16 @@ In order to do anything useful, you have to plug it in to a floppy disk drive (o 9. Profit! +## Bonus hardware features + +For advanced users, the board has a few extra signals which are useful for special purposes. + + - Pin 3[0] produces short pulses every 200ms. This is useful for spoofing + index signals to 300 RPM drives; for example, to read flippy disks. + + - Pin 3[1] is the same, but produces the pulses every 166ms; this works with + 360 RPM drives. + ## The programs I'm sorry to say that the client program is very badly documented --- it's From d77841c3b768f9aebaf3cd483d7f9edce483f2cd Mon Sep 17 00:00:00 2001 From: David Given Date: Sun, 12 Jan 2020 01:23:47 +0100 Subject: [PATCH 2/4] Add the ability to fake the index pulse source, allowing old drives to be used with FluxEngine. --- .../ARM_GCC_541/Release/FluxEngine.hex | 624 +++++++++--------- FluxEngine.cydsn/FluxEngine.cyprj | 84 ++- FluxEngine.cydsn/TopDesign/TopDesign.cysch | Bin 258195 -> 251368 bytes FluxEngine.cydsn/main.c | 36 +- doc/using.md | 17 + lib/flags.cc | 2 + lib/fluxsink/fluxsink.h | 4 + lib/fluxsink/hardwarefluxsink.cc | 9 +- lib/fluxsource/hardwarefluxsource.cc | 7 +- lib/usb.cc | 6 +- lib/usb.h | 2 +- lib/writer.cc | 2 +- protocol.h | 13 +- src/fe-rpm.cc | 3 +- src/fe-seek.cc | 3 +- 15 files changed, 471 insertions(+), 341 deletions(-) diff --git a/FluxEngine.cydsn/CortexM3/ARM_GCC_541/Release/FluxEngine.hex b/FluxEngine.cydsn/CortexM3/ARM_GCC_541/Release/FluxEngine.hex index fc16e161..127dcde5 100644 --- a/FluxEngine.cydsn/CortexM3/ARM_GCC_541/Release/FluxEngine.hex +++ b/FluxEngine.cydsn/CortexM3/ARM_GCC_541/Release/FluxEngine.hex @@ -1,245 +1,245 @@ -:4000000000800020110000003510000035100000064A08B5136843F020031360044B1A6803F53F5302331A6001F022F8E8460040FA46004010B5054C237833B9044B13B181 -:400040000448AFF300800123237010BD6881FF1F0000000098380000084B10B51BB108490848AFF300800848036803B910BD074B002BFBD0BDE81040184700BF0000000071 -:400080006C81FF1F98380000C880FF1F0000000072B6034A13680133136062B6704700BF8881FF1F0A4A0B4B516801310B40002BBEBF03F1FF3363F00F0301335360516800 -:4000C0009368994202BF024B01221A73704700BF8881FF1F0F0000800A4A0B4B916801310B40002BBEBF03F1FF3363F00F030133936091685368994202BF024B01221A7379 -:40010000704700BF8881FF1F0F000080024B012200205A7302F052B98881FF1F10B5C4B2204601F067F90128FAD110BD10B50446094B9A7B987382421CBF0022DA7310F0CE -:40014000010F14BF0220012002F064FE6008BDE8104002F059BE00BF8881FF1F70B5C4B220460E4601F04EF9314605460246204601F00AFA204601F03DF90128FAD02846D9 -:4001800070BD000038B50B4C257C55B9A07BFFF7CDFF012002F0A8F84FF47A7002F0BAFAE5732368636101232374BDE8384002F0EFBA00BF8881FF1F38B50446C5B22846A0 -:4001C00002F09EF8062002F0BBFA44F00200C0B202F096F8062002F0B3FA284602F090F8BDE83840062002F095BA10B5642402F081F820B10120BDE81040FFF7DDBF0120FF -:40020000FFF7DAFF013CF2D1F4E7000038B5044D0024285D013402F043FA102CF9D138BDA081FF1F08B502F05DFC002002F066FC02F078FC02F082FC80B208BD10B5044637 -:40024000012002F075F8642002F064FAFFF7EAFF2080002002F06CF8642002F05BFAFFF7E1FF608010BD08B502F068FD002002F071FD02F083FD02F08DFD80B208BD10B5A9 -:400280000446FFF7B2FF322002F044FAFFF7EBFF20800020FFF790FF322002F03BFAFFF7E2FF608010BD0FB400B593B014AB53F8042B402102A8019302F0D6FE02A802F0B4 -:4002C00084F802F08EF813B05DF804EB04B0704710B5044601780648FFF7E5FF0420FFF71DFF62782146BDE81040042001F0DAB8AA38000007B50023ADF804308DF80600B0 -:40030000032301A88DF80530FFF7E2FF03B05DF804FB0000F8B51D4C0646FFF733FFE37B03B156B91A48FFF7BEFFFFF75EFF01200023E073A36202F003FA3246A16A1548D8 -:40034000FFF7B1FF114D0027A36A9E4216D001F0D1FF00B1AF62A36A9E4205DD0020FFF72BFFAB6A013305E005DA0120FFF724FFAB6A013BAB6202F00BFAE5E7322002F041 -:40038000C9F9BDE8F8400448FFF78DBF8881FF1FB7380000BE380000DB3800002DE9F04F9BB062B602F05EFABE49042002F082FABD4801F0ABFFBD4802F04EFDBC4801F07F -:4003C000DFFF02F02FFC02F001FB002002F022FD01F0FAFF0221002000F0C2FFB54D0321084602F0B5F92E462C4602F0D1F92B7C73B16A692B689B1A41F28832934207D9C7 -:40040000002001F071FF002002F004FD00232B7400F0DEFF18B9A848FFF745FF04E000F0DDFF0028F7D109E000F0D2FF0028FBD0A248FFF738FF032001F0FAF8032000F031 -:40044000D9FF0128D1D1A07BFFF770FE9C490320FFF784FE94F82C109A48FFF724FF94F82C30023B122B00F2DF83DFE813F01300DD031C00DD032200DD033A00DD035E002E -:40048000DD039301DD031E03DD033D03DD034303DD034F0303238DF828308DF8293009238DF82A302EE394F82E00FFF733FF864B25E3FFF767FE00236373637B002BFCD06E -:4004C000002373733268637B002BFCD0336807218DF828109B1A04218DF82910ADF82A3010E30220FFF71AFE4FF000090DF1280A4FF480780027C8EB0903DA1907F80A2095 -:400500000137402FF9D10220FFF708FE3A465146022000F0C7FFB8F10108EBD109F10109B9F1400FE4D1694BBAE294F82E0001F0FFFEA06AFFF7EEFE02F002FD644BDFF8C2 -:4005400094811A78002742F004021A701A7842F001021A701A7802F0FE021A701A7802F0FE021A7002F0F0FC0220FFF7D7FD41F6FF734FF480420121022002F051FC84F807 -:400580006C0002F073F808F807000137102FF8D1DFF844A100270AF159081FFA88F90137102F14BF3A4600221AF8010F22440623127E402102F08EF84A4646F24F419AF862 -:4005C000000002F099F809F14009102F1FFA89F9E5D100237373637B002BFCD00027142239460AA8777302F00BFD40230D934FF0FF337760B36037737368DFF8E0903344B4 -:40060000197E96F86C00CDF8309001F0E7FF96F86C0001F0A5FF012196F86C0001F078FF636813B96B7B002BFAD0002794F82FA0A76094F80CB0BBF1000F6AD102F0A8F8EF -:400640006B7B43B1BAF1010A85F80DB003D160E02B7B002B5DD1A26863689A42F8D04FF0000BA3680AA808EB83135B440A93CBF140030B9300F0F8FA0B9B0137C3F1400304 -:400680009B440D9B5FFA8BFB9BBB022000F0B2FE012825D0637B002B3BD12B7B002BF4D037E000BF910000000D010000A5000000D90000008881FF1FE9380000FC38000085 -:4006C000B481FF1F063900009C3800009E3800009F640040A081FF1F9F81FF1FF885FF1F4022B849022000F0DDFE4023CDF830900D93BBF13F0FB4D9A268B34B0132134076 -:40070000002BBEBF03F1FF3363F00F030133A3608FE7042194F86C0001F06CFF94F86C0001F078FF0028F9D10AA800F0D1FA0220FFF7F4FC337B63B90D9A402A06D0C2F135 -:40074000400292B29F49022000F0ACFE0220FFF7E5FC0D9A32F0400203D11146022000F0A1FEFFF753FD237B33B19848FFF79BFD0220FFF7BFFD06E0954B09A81B88ADF8A6 -:400780002430FFF7A5FD627B3946237B9148FFF78AFD4CE29048FFF786FD276B17F03F0701D0032041E2012001F0C8FD95F82E0001F0BEFD02F0C4FB884BDFF824821A78B7 -:4007C00002F0FB021A701A7842F001021A701A7802F0FE021A701A7802F0FE021A7002F0B3FBA86AFFF796FD01214FF4804341F6FF72084601F0A8FD85F86C0001F036FF15 -:4008000008F807000137102FF8D1DFF8D891002709F159031FFA83F807930137102F14BF3A46002219F8010F22440523127E402101F050FF414646F24B5299F8000001F0DC -:400840005BFF08F14008102F1FFA88F8E5D10027BB46B946BA46336B4FF0FF389B09142239460AA877600593C6F80880377302F0C7FB402301200D9300F0DAFECDF81880AD -:400880006268514B01321340002BBCBF03F1FF3363F00F03A168B8BF01338B4200F0A480BAF1000F07D0237B002B40F0B0806B7B002B40F0AC800B9B002B34D1B9F1000FD0 -:4008C0000BD07F223F495A540133402BFAD10A910B9328E0BAF1000F06D1012000F08AFD01288046F6D107E0237B002B40F08F806B7B002BF1D08AE03249FFF72FFC81462E -:40090000304B0B9040460A9300F092FEB9F13F0F07F1010706DD059BDB1BD3F1000949EB030900E0C1460B9BDBB16368079A0AA802EB83120D9BC3F1400313440C9300F042 -:40094000D6F90D9B6BB96A681F4B01321340002BBEBF03F1FF3363F00F030133636040230D93A36801333FD16B680F2B3CD14FF00008C5F8088001F015FD85F80C80AB68D9 -:4009800095F86C002B44197E01F028FE95F86C0001F0E6FD012195F86C0001F0B9FD85F80D80637B002BFCD04FF00008012086F80D8001F003FD404601F0C0FCCDF81880BF -:4009C00015E000BFF885FF1F0F00008015390000A03800002F390000423900009B650040A081FF1F9F81FF1FBAF1000F05D0237B6BB96B7B5BB94FF0010AA368069A93423E -:400A00003FF43EAFAB680BF1010B069338E701F0CFFC012001F092FC002001F0CFFC042194F86C0001F0E6FD94F86C0001F0F2FD0028F9D196F86C0001F080FD737B327BCD -:400A40000293012303920193CDF800905B463A4605997B48FFF727FCB9F1000F16D1059BBB420ADD012000F0C5FC01288046F6D17449FFF773FB3F2803DC012000F0ECFD97 -:400A800004E0404600F0D4FD0137E8E7FFF7BEFB6D48FFF708FC237B0BB10220C5E06B4B1B8809A8ADF824302DE094F82E0001F03FFCA06AFFF72EFC6548FFF7F4FB0023B0 -:400AC0006373637B002BFCD0012001F077FC00237373637B002BFCD0002001F06FFC5D48FFF7E1FB5C4B0AE00020E073FFF712FC5A4B04E094F82E00FFF718FB584B1B885B -:400B0000ADF828300AA8FFF7E3FB90E0237C3BB1002001F0E9FB002002F07CF900232B7402F0FEF8002002F0A1F82A2701F0CCFF002001F06FFF3A4600210AA802F060FA3B -:400B400015238DF828308DF8297001F021FE002001F0CAFB002002F05DF9C82001F0DAFD0DEB0700FFF76AFB0DF13E00FFF787FB01F00EFE012002F04DF9322001F0CAFDD6 -:400B80000DF12E00FFF75AFB0DF14200FFF777FB012001F0A9FB4FF4967001F0BBFD01F0F7FD0DF13600FFF749FB0DF14A00FFF766FB002001F098FB4FF4967001F0AAFDF7 -:400BC00001F0E6FD022002F025F9322001F0A2FD0DF13200FFF732FB0DF14600FFF74FFB012001F081FB4FF4967001F093FD01F0CFFD0DF13A00FFF721FB0DF14E00FFF795 -:400C00003EFB002001F070FB4FF4967001F082FD01F0BEFD002002F0FDF80023E37302F001F801F0D3FE6DE70120FFF763FB032000F0FEFC0B48FFF736FBFFF7D6BB00BFD7 -:400C40004C390000F885FF1F7C390000A23800008B39000099390000A4380000A6380000A8380000A639000010B54268002A2ED0C368002B2BD00368048A591C01601B786C -:400C8000013A13F0800F817C42601DBF03F0010242EA84030231083114BF43F0020343EA0423817414BF03820382837C072BDCD9028A083B42FA03F38268511C8160137004 -:400CC000C368013BC360837C083B8374CDE710BD07B5827C42B102AA002102F8011D026001224260FFF7C0FF03B05DF804FB30B543686BB3C2685AB3827C072A0CD80468D7 -:400D000090F91050611C01602178013B41EA05210832018243608274827C018AA2F108042141CBB2090608D5C3F3801363F07F03023A03F08103827402E08474002BD7D00A -:400D40008268511C81601370C368013BC360CFE730BD00002DE9F04172B644F21A118E4B61221A70A3F5F06301221A8019244FF443729C709A80894A1B231370518044F633 -:400D80001F611371D1801372854A864B92E80300062283F8002283E80300522203F580731A70814B814A1B78814EDBB2137040F61802804B00251A8041F2512223F8022C4E -:400DC00033784FF4F07003F0010343EA450502F0AFF8013C05F003052ED0032DF0D1764B4FF480721A8007221A70744A002548211570917002221D705D7103F8032C042291 -:400E0000DA716F4A6F4C13786F4E43F00F03137012F8013C062743F0030302F8013C2378012243F0800323705B4B1A70674A137843F02003137000E0FEE707FB0563002163 -:400E40009A881868013502F0DBF8072DF5D16048604E002550F8041F05F1105303F1560221F0FF075733C9B20B4452005B0002329A4206D012F802EC12F801CC0EF807C0B6 -:400E8000F5E7B0420D44E5D1534A00231360936013619361514B524F1A68524BDFF890811A60514B1A68514B1A60514A137843F002031370137C43F0020313742378A2F57C -:400EC000863243F040032370413A137843F010031370484A484B07CA03C31A80474A2833106843F8250C127903F8212C444A07CA03C31A80434AE83B07CA03C31A80424A3D -:400F0000083307CA03C31A80404A414BA2F5616203CBC2F8100EC2F8141E1378042043F0080313703B4B02F5AA521B783D78DBB298F80060EDB203F007010C321B09117018 -:400F4000F6B2537045F003033B7046F0030388F80030314B48221A70304A402313703049937013729372082382F81F3220220A7048710A722B4A0A20137001F0E1FB2A4B13 -:400F800088F8006044223D70284D1A7094E80F0007C52B80BDE8F081004800408640004074100048004100400F010049A14600402542004022420040044000400640004077 -:400FC000A2430040A0430040AB390000E8460040FCFFFF47A8000048007600407C100048F84600402076004080100048287600400350014034100048C05100404010004889 -:40100000481000485410004860100048325100406C100048CF0100491D51004001590040235B0040585B004076580040B0430040F946004008B501F0B7FF03680C2B00D17C -:40104000FEE7FEE7084908B50B68084A1844821A802A01DC086005E001F0A6FF0C2303604FF0FF33184608BDCC80FF1F4887FF1F80B51148114B0025C0B1A3F1100192C974 -:4010800022460439161BB74204D051F8046F42F8046BF7E7114653F8046C8C1AA64202D041F8045BF9E701381033E5E701F082FFFFF774F9FEE700BF010000007C3B0000E7 -:4010C000124A134B10B51A60124A134C1368134843F4007313600023032B98BF54F823204FEA830188BF0E4A0133302B4250F3D10C4B1A780C4B1A700C4B084A1A60FFF7EE -:4011000029FEBDE8104001F0EDB900BF0004FA050CED00E014ED00E0000000000080FF1F35100000BC760040C080FF1F08ED00E0F8B501F005FF4B4A01271378022643F0B3 -:4011400001031370137C484C43F001031374474B02F5E3521F700B3203F8946C1378054603F07F031370002001F0EAFA2378404A03F0F90323701378384603F0DF031370B7 -:4011800023783B43237001F0DBFA282001F0D8FA384B30461A7802F07F021A701A7802F0BF021A7023783343237001F0C9FA2378314A43F0040323700023137053702F4A3E -:4011C000FF2199540133092BFBD1284601F0BCFE0721172001F0FCFA2949172001F0EAFA0721182001F0F4FA2649182001F0E2FA0721152001F0ECFA2349152001F0DAFA84 -:401200000721052001F0E4FA2049052001F0D2FA0721062001F0DCFA1D49062001F0CAFA0721084601F0D4FA1A49072001F0C2FA0721082001F0CCFA1749082001F0BAFA51 -:401240000021162001F0C4FA1449162001F0B2FA07210C2001F0BCFABDE8F84010490C2001F0A8BAA5430040944300409D60004012600040F8510040846000406D86FF1F9C -:40128000FF1A000039190000FD1A0000311A00005D1A00008D1A0000C51A0000051B0000791B0000214B224A10B5187000231370204A40201370204A0F2413701F4A13708C -:4012C0001F4A13701F4A13701F4A13701F4B4FF400021A604FF080721A604FF400121A6020221A601860802018604FF480701860174804704FF480001860164B1A70933BC9 -:4013000019B91A7802F0FE0202E01A7842F001021A70114B03221A70802203F8202C012001F006FE0D4B04221A7010BD8886FF1F8E86FF1F8C86FF1F8D86FF1F8986FF1F59 -:401340007886FF1F8B86FF1F0087FF1F00E100E09E6000409C600040286000401260004070B5074C054623780E461BB9FFF7E0FE0123237031462846BDE87040FFF792BF36 -:401380003886FF1F0A4A002313700A4A13700A4A13700A4A13700A4A13700A4A13700A4A13700A4B03221A70802203F8202C70478E86FF1F8C86FF1F8D86FF1F8986FF1FE9 -:4013C0007886FF1F8B86FF1F0087FF1F28600040014B1878704700BF8D86FF1F044B1A7802F0FF001AB118780022C0B21A7070478C86FF1F024A0C2303FB00204078704778 -:401400009486FF1F431E072B0CD8074A064B00010344805C5B7800F00F0043EA0020023880B2704700207047FC5F00401A4A38B50C2303FB00231B79090C13F0800F00F1B6 -:40144000FF35044619BF8AB24FF480438BB24FF48042032D18D8DFE805F002070C110021084601F01BF80DE00021084600F0FAFF08E00021084600F0D9FF03E00021084667 -:4014800000F0B8FF054B1855EDB2072D03D801F0EDF8034B185538BD9486FF1F6486FF1F6D86FF1F431E072B2DE9F0470446894615465CD82F4F0C2202FB0072D388DFF86E -:4014C000B8A09BB2C3F500739D424FF00C0303FB007388BFD588DB7884BFC5F50075ADB2254A43EA15230601B354B244EBB28AF80130224B1A5C9846FF2A01D1FFF796FF47 -:401500000C2303FB047200215170B9F1000F28D03DB31B4F385D01F011F811232946FE2218F8040001F0D6F806F5C04278321FFA89F118F8040001F0DFF8124D18F804105D -:40154000385D01F04BF80121385D00F0E1FF735D43F002037355735D03F0FD037355BDE8F08703FB04746379DBB28AF80230BDE8F08700BF9486FF1FFC5F00406D86FF1F52 -:401580006486FF1F706000402DE9F047044615468846002940D0431E072B3FD8FFF732FFA84203D22046FFF72DFF05461D4E335DFF2B03D141462046FFF738FFDFF868A0C5 -:4015C00027011AF8040000F0B9FF1223FE222946305D01F07FF807F5C0411FFA88F27831305D01F089F8DFF84490315D1AF8040000F0F4FF01211AF8040000F089FF17F823 -:40160000093043F0020307F8093017F8093003F0FD0307F8093002E00D4600E000252846BDE8F0876D86FF1F6486FF1F70600040431E072B0AD8064A0C2303FB002300226A -:401640005A705A79034BD2B200011A54704700BF9486FF1FFE5F0040431E072B9FBF024B000108221A547047FE5F004030B51A4A1A491B4D0878138803449BB21380194A5D -:4016800000231488D8B2A4B27CB1082B0CD050680078C0B2E85450680133013050601088013880B21080ECE718460B780E4C082B0E4A00D040B10E4D2B7883F080032B7028 -:4016C0000F232370022301E0022323701370094B1870087030BD00BF0487FF1F0087FF1F006000407C86FF1F7986FF1F8E86FF1F8A86FF1F0187FF1F074B02221A70074B61 -:4017000080221A70064B0F221A70064A00231370054A0120137070478E86FF1F8A86FF1F7986FF1F0087FF1F0187FF1F30B5164B16491B780A8803F00F03023BDBB21A4412 -:4017400092B20A80124C134A0020118889B279B173B15568215C013BC9B229705168DBB20131516011880130013989B21180ECE7094A1370094A137883F080031370084BC8 -:401780000B221A7030BD00BF296000400487FF1F006000407C86FF1F0187FF1F8A86FF1F7986FF1F064A06231370064A01201370054B80221A70054B00221A70704700BFC5 -:4017C0008E86FF1F7986FF1F8A86FF1F0187FF1F054B9A683AB19A68044910709A680988518000229A6070477C86FF1F0487FF1F08B5124B1A78D2B21A701B78DBB21A06C0 -:4018000002D50F4A137008BD0220FFF7E1FF0D4B1B7803F06003202B05D0402B06D043B900F012FC04E001F093FB01E000F046FD10B9034B03221A7008BD00BF2860004013 -:401840007986FF1F0060004008B5084A084B0120197813880B449BB21380064B00221A70FFF7B6FF044B03221A7008BD0487FF1F0087FF1F8E86FF1F7986FF1F08B50C4BB1 -:401880001B78DBB2042B07D0062B09D0022B0DD1BDE80840FFF7D8BFBDE80840FFF746BF0320FFF795FF034B03221A7008BD00BF8E86FF1F7986FF1F08B5054B00220120BE -:4018C0001A70FFF785FF034B03221A7008BD00BF8E86FF1F7986FF1F08B50A4B1A7832B11A78094942F080020A7000221A70074B002201201A70FFF76BFF054B03221A7051 -:4019000008BD00BF7886FF1F086000408E86FF1F7986FF1F074B1B78DBB2042B05D0062B05D0022B05D1FFF7A1BEFFF7C5BFFFF7D3BF70478E86FF1F38B51D4C2378DBB2D3 -:40194000DD0634D518060AD503F00F03012B2ED1FFF74EFF174B1B78190609D538BD5A0602D5FFF7D7FF03E09D0620D5FFF786FF23781B061BD4104B1A78104B1B7813434F -:401980000F4A13701278934211D10A4A0849154613782078DBB2000605D41378DBB20B700B7803F00F0328788342F1D138BD38BD286000407986FF1F8A86FF1F0187FF1F96 -:4019C00029600040054A00231380054A916819B191680B7092685380704700BF0487FF1F7C86FF1F0E4808B503889BB213B9FFF783FE13E00B4B02221A700B4B00221A7060 -:401A0000FFF7E0FF094AD1799379028843EA012392B2934238BF0380FFF728FE012008BD7C86FF1F8E86FF1F8A86FF1F00600040084B01221A700F3B9B7C074B1A7B02F05E -:401A40000302012A1EBFDA7B82F08002DA7301225A7370470B6000409486FF1F094B02221A700F3B93F82230074B1A7E02F00302012A1EBFDA7E82F08002DA7601225A7698 -:401A8000704700BF0B6000409486FF1F0B4B04221A700F3B93F83230094B93F8242002F00302012A1EBF93F8272082F0800283F82720012283F82520704700BF0B600040E2 -:401AC0009486FF1F0B4B08221A700F3B93F84230094B93F8302002F00302012A1EBF93F8332082F0800283F83320012283F83120704700BF0B6000409486FF1F7047FFF79A -:401B000041BC0000F0B5184B184E19780C27C9B201234FF0000C31B3CA0720D5144A4FEA031E7244947850782040C5070DD507FB03652C79240608D5147804F0FE04147076 -:401B40006D790C4CEDB204F80E50840706D507FB036425792D0658BF84F801C090700133DBB24908D7E7F0BD9F6000409486FF1F70600040FE5F004000F0ACBC70B50446D2 -:401B8000184B88B003AA03F11006154618685968083303C5B3422A46F7D11B782B70FCB12223237001AD03232846637000F08AFE002220461146AB5C08AC04EB131414F80B -:401BC000144C03F00F03847008AC234413F8143C0132082AC1700371417100F10400EAD108B070BDD53900002DE9F0431C4D01222E460C201F274FF0800E4FF0080C194B78 -:401C000000FB02581401234418705F70164998F805902144B9F1000F07D098F8044024064CBF887081F802C001E081F802E000FB0261CC880132E4B29C71CC88092AC4F3C5 -:401C40000724DC71CC88E4B21C71C988C1F307215971D4D1054BFF221A70BDE8F08300BF9486FF1F70600040FC5F00400A600040064B074A1B7802EBC30253681A7C82427E -:401C800086BF03EBC0035869002070478886FF1F383A00002DE9F84F424B1A78002A7ED01878414D0138C0B2FFF7E2FFA8463F4AC3681478007ADFF800C1E4B203EBC000E0 -:401CC0000C2600274FF0010E834268D01A78A24263D11CF80420597891425ED19A7893F8039002F07F0206FB02FA05EB0A01CF7093F802B009F0030981F804B093F803B004 -:401D000005F80AB0B3F804A0A1F808A093F902A0BAF1000F0BDAB9F1010F0CBF4FF007094FF00D0981F8059081F801E009E0B9F1010F0CBF4FF005094FF0090981F80590E4 -:401D40004F704FEA02191A4906FB0282494481F802E0B2F808A0CAF3072A81F800A0B2F808A05FFA8AFA81F801A0B2F806A011495FFA8AFA494481F806A0B2F80690C9F3AF -:401D8000072981F80790B2F806905FFA89F981F80490D288C2F307224A71083394E7BDE8F88F00BF8D86FF1F9486FF1F8986FF1FFC5F0040706000407A86FF1F08B5064BBA -:401DC00018780138C0B2FFF753FF20B143681B7900EBC300406908BD8D86FF1F00212DE9F84F0B464E4E0C2707FB01F401313219092933554FF000059370494CD370138184 -:401E0000937253705371EFD118B1464B1D70464B1D70464B1A78002A7FD0187801250138C0B2FFF725FFA8464368DFF8F8E0DB790C2713F0400F3E4B4FF0000C1A7814BFE0 -:401E400042F0010202F0FE021A70027AD20007FB0541C36803EB02094B4531D093F802A00AF07F06AE4229D10E89B3F804B0B6B25E4538BFA1F808B01E7893F801B01EF89F -:401E80000660B3451AD181F804A0DE780E7093F902A0DE78BAF1000F06F0030607DA012E0CBF07260D264E7181F8018006E0012E0CBF052609264E7181F801C00833CBE797 -:401EC0000135092DC3D1C1680A328B1C0A440C200833934209D013F8081C13F80A5C01F07F0100FB01418D72F2E7FFF767FF114B0121186000230C2000FB0142D380128980 -:401F0000013113449BB203F00102134409299BB2F2D1BDE8F84FFFF767BEBDE8F88F00BF9486FF1F7A86FF1F0287FF1F8D86FF1F8B86FF1F9086FF1F114B1B7903F07F0354 -:401F40005A1E072A19D80F490C2202FB031291781B0141F0010191700021D170517841F002015170127912F0800F074A1A4414BF8D2389239370FFF715BC0020704700BF5C -:401F8000006000409486FF1FFC5F004030B4194B1A7902F07F02531E072B27D8164B0C2404FB02339978154D01F0FE0199700021D97029461201505D114400F07F0050558B -:401FC0005A7802F0FD025A701A795B78120605D5012B01D18C7006E00D2303E0012B0CBF082309238B7030BCFFF7DCBB002030BC704700BF006000409486FF1FFC5F004052 -:4020000010B50D4B0D4C21791878C9B20138C0B2FFF72EFE43681B798B4201D2012909D8074A0848535CDBB24354A3780120DBB2535410BD002010BD8D86FF1F006000405F -:402040007A86FF1F0287FF1F38B58A4A8A4C13780021DBB221801806517840F18D800A2900F20581DFE811F05D00030103010301030103010B0003017E0003018200D378C3 -:402080007C49012B09D17D4B1A787D4B03EBC2035B685B686360122310E0CB78022B12D18878FFF7E5FD002800F0E180436863606368DA7863689B7843EA02232380BDE86B -:4020C0003840FFF78FBCCB78032B26D16D4B00228878D5B2854209D3664A91786A4AEE2908BF1346634A917881B106E0187801320028F1D018780344EAE764499278097CB9 -:40210000914203D16248FFF739FD614B1A78002A00F0AD801A78228018E0BDE8384000F017BF13F0030313D0022B40F0A0802380504B0C211B7903F07F02564B01FB0233E0 -:402140009A78554BD2B21A7000225A706360B6E702222280514A11784F4AC9B2117053706260ACE7012323804D4BEFE70123238013794C4A1344E9E701390A2977D8DFE8F4 -:4021800001F037764F76067676760A7620009378454ADBB25AE0937803F0FF0153B9404B1A7891425FD01970404B01201870FFF715FE58E0481EC0B2FFF75AFD0028EED120 -:4021C00055E0FFF71DFF002851D02A4A384913791279DBB2D2B20A70364A3249D25CCB5C9A4240D0314B01221A70FFF753FD3AE003F00303012B2BD009D3022B37D11D4B5A -:402200009B78002B33D1BDE83840FFF7BFBE194B9B78012B2BD1214A137803F0FD0315E003F00303012B13D008D3022B1FD1114B9B78E3B9BDE83840FFF77EBE0D4B9B788A -:40224000012B14D1154A137843F0020313700AE0084B1A795AB998781B791749DBB2CA5C22EA0002CA54BDE83840FFF79BBA002038BD00BF006000407C86FF1F8886FF1FBA -:40228000383A00009C3A0000243A00000F3B00002087FF1F9486FF1F3986FF1F8B86FF1F8D86FF1F7A86FF1F7886FF1F8C86FF1F8986FF1F0287FF1F8F86FF1F074B1A789F -:4022C000120609D55B78012B06D1054B054A5A6012781A80FFF786BB00207047006000407C86FF1FFC390000014B1870704700BF77650040014B1878704700BF69650040CC -:40230000014B1870704700BF78650040064A0123136002F688321268E0211064034A1170A2F540721360704780E100E000E400E0014B1870704700BF70640040014B187036 -:40234000704700BF7965004073B515461E460B4C05230022019200920A4601461846237000F064F932462946207800F01FF90221207800F009F9207802B070BDD080FF1F2E -:40238000064A0423136002F688321268E0219064034A1170A2F202321360704780E100E002E400E0014B04221A60704700E100E0014B04221A60704780E100E0014B18702F -:4023C000704700BF71640040704738B505460078012428B100F054FD285D0134E4B2F8E738BD08B50D2000F04BFDBDE808400A2000F046BDF7B516461F460B4C002303254D -:40240000019300930A4601462846257000F00EF93A463146207800F0C9F80221207800F0B3F8207803B0F0BDE080FF1FF7B516461F460B4C00230225019300930A4601460C -:402440002846257000F0F2F83A463146207800F0ADF82946207800F097F8207803B0F0BDE180FF1FF7B516461F460B4C00230125019300930A4601462846257000F0D6F8D2 -:402480003A463146207800F091F80221207800F07BF8207803B0F0BDE280FF1F73B515461E460B4C0023019300930A4601461846237000F0BBF832462946207800F076F8EE -:4024C0000221207800F060F8207802B070BD00BFE380FF1F024B1878C0F38010704700BF8F450040074A7F23802113705170064A013BDBB202F80839002BF9D1034A137087 -:40250000704700BFE480FF1FF87B00400078004017280FD8084B0001C25C11B142F0200201E002F0DF02C254C25C42F00102C25400207047012070471070004017280BD8C6 -:40254000064B0001C25C02F0FE02C254C25C02F0DF02C25400207047012070471070004017280DD8074900010B4603441A7942F004021A71435C43F00103435400207047C6 -:40258000012070471070004017280BD8064A0001835C490003F0F10301F00E011943815400207047012070471070004041F6FF73994208BF4FF400519A4208BF4FF400524A -:4025C00017289FBFC00000F1804000F5EC4081809ABFC280002001207047000017289FBF034B00011954002088BF0120704700BF1970004017289FBF054B00011A5C01F0A3 -:4026000007019DBF1143195400200120704700BF1470004017289FBF034B0001185C00F0070088BFFF20704714700040172810B51AD8C00001F07F0100F1804441EAC212E7 -:4026400004F5EC44D2B222709DF8082003F00F0343EA0213DBB263709DF80C30002003F00F03A370E07010BD012010BD10B500F067FC0A4A5378182B0AD91478013B5370BB -:40268000E30003F1804303F5F0431B78137000E0FF2400F059FC204610BD00BFE480FF1F030610B5044611D400F04AFC084AE300117803F1804303F5F043197053781470D8 -:4026C00001335370BDE8104000F03EBC10BD00BFE480FF1F30B504060CD411F4704509D1C40004F1804404F5F0442180A270E370284630BD012030BD03065FBFC00000F1A2 -:40270000804000F5F04081805ABFC280002001207047000038B50446084DB4F5004F05D9286800F005FCA4F50044F6E7034B58686043BDE8384000F0FBBB00BFEC80FF1F06 -:40274000024B1B7A584300F0F3BB00BFEC80FF1F0E4B00F003001A78490102F0FC02104318701A7801F0600142F080021A701A7802F07F021A701A7802F09F020A431A7055 -:402780001A7842F010021A70704700BF83430040014B01221A70704784430040044B00F00F021B6853F8220043F82210704700BF08ED00E0054A00F01F00126800F11003B2 -:4027C00052F8230042F82310704700BF08ED00E000F01F0000F16040490100F56440C9B2017070470F4B10B50F4900240F205C609C60DC601C615C61FFF7D0FF0B4A136801 -:4028000043F0040313600A4B4FF47A72DB68B3FBF2F3084A1360084B4FF400421C60C3F8E82010BD3C86FF1F9128000010E000E0EC80FF1F14E000E018E000E0024A136882 -:4028400043F002031360704710E000E008B5FFF7F5FF034A136843F00103136008BD00BF10E000E010B5054CA3691BB9FFF7BAFF0123A361BDE81040FFF7E8BF3C86FF1F7A -:40288000024B1868C0F30040704700BF10E000E038B5FFF7F5FF012808D1054D002455F8243003B198470134052CF8D138BD00BF4086FF1F024B03EB8003586859607047DA -:4028C0003C86FF1F134B144A1B78DBB20360127843EA0223114A0360127843EA0243104A0360127843EA026303600E4B0E4A1B78DBB24360127843EA02230C4A4360127814 -:4029000043EA02430A4A4360127843EA02634360704700BF0301004904010049EC460040020100490101004900010049050100490601004910B500F003FB204A044613787A -:402940000A2043F002031370137C43F00203137412F80A3C43F0010302F80A3C937943F00103937102F5AB52137843F003031370134B18221A7013F8012C42F0400203F812 -:40298000012C13F8012C02F0FC0203F8012CCE2203F8062CA3F597530222183B1A70094A137843F008031370FFF7CAFE064B10222046BDE810401A6000F0C6BAAB430040A7 -:4029C0000E5900402F5B004080E200E008B500F0B7FA0F4A137803F0FE031370A2F5AA521D3A137803F0FD031370137C03F0FD03137412F80A3C03F0FE0302F80A3C9379E7 -:402A000003F0FE039371BDE8084000F09DBA00BF08590040044A137803F03F0343EA8010C0B21070704700BF08590040082804D00A280CBF8223C22300E0422308380E4ACE -:402A4000C0B20428137098BF0C4B4FF0000298BF33F910100A4B88BF11461A8042F210734B4341F2883103F6C41393FBF1F305490B60054B1A8070470A590040E639000087 -:402A80000A87FF1F0C87FF1F1087FF1F08B5102000F0A6F907210420FFF79AFE07490420FFF788FE064A0C20137843F006031370FFF7BCFF034B00221A8008BD852B0000C5 -:402AC000095900400887FF1F10B5054C23781BB9FFF7DCFF01232370BDE81040FFF72ABF5886FF1F044B1A7802F0FB021A701A7842F001021A7070470859004010B5084B8F -:402B00001C7814F0010403D10028F9D0002404E02046FFF715FE024B1B78204610BD00BF09590040034A044B1B881088181A00B2704700BF1087FF1FA25B00400E4A138832 -:402B40001BB223B111880A2309B2594301E00B4B19680B4B1B88C01A42F2107300B203FB00F2022391FBF3F30028D8BF5B42134493FBF1F000B270470A87FF1F0C87FF1F31 -:402B80000887FF1F7047000010B500F0D9F9214A044613780A2043F001031370137C43F00103137412F80A3C43F0020302F80A3C937943F00203937102F5AA5218321378E1 -:402BC00043F003031370144B18221A7013F8012C42F0400203F8012C13F8012C02F0FC0203F8012CCE2203F8062CA3F597530222123B1A70094A137843F008031370FFF7A3 -:402C00009FFD074B08222046BDE810401A6000F09BB900BFAB43004006590040275B004080E200E008B500F08BF90F4A137803F0FE031370A2F5AA52153A137803F0FE03E6 -:402C40001370137C03F0FE03137412F80A3C03F0FD0302F80A3C937903F0FD039371BDE8084000F071B900BF00590040044A137803F03F0343EA8010C0B21070704700BFAF -:402C800000590040082804D00A280CBF8223C22300E0422308380E4AC0B20428137098BF0C4B4FF0000298BF33F910100A4B88BF11461A8042F210734B4341F2883103F6A9 -:402CC000C41393FBF1F305490B60054B1A80704702590040F03900001687FF1F1C87FF1F1487FF1F08B5102000F084F807210320FFF76EFD07490320FFF75CFD064A0C20F5 -:402D0000137843F006031370FFF7BCFF034B00221A8008BDDD2D0000015900401887FF1F10B5054C23781BB9FFF7DCFF01232370BDE81040FFF728BF5986FF1F044B1A78AB -:402D400002F0FB021A701A7842F001021A7070470059004010B5084B1C7814F0010403D10028F9D0002404E02046FFF7E9FC024B1B78204610BD00BF01590040034A044B6E -:402D80001B881088181A00B2704700BF1487FF1FA05B00400E4A13881BB223B111880A2309B2594301E00B4B19680B4B1B88C01A42F2107300B203FB00F2022391FBF3F35E -:402DC0000028D8BF5B42134493FBF1F000B270471687FF1F1C87FF1F1887FF1F70470000034A00F0F800137803431370704700BF02410040034A00F0F8001378034313704D -:402E0000704700BF06410040014B1870704700BF79640040014B1870704700BF7465004073B515461E460B4C04230022019200920A46014618462370FFF7F8FB32462946C7 -:402E40002078FFF7B3FB02212078FFF79DFB207802B070BDFC80FF1F074A0223136002F688321268E0215064044A11706FF440710A441360704700BF80E100E001E400E0D2 -:402E8000FEB5494652465B460EB40746244909688A46244A12682448022100F071F8030020480068C018204900F06AF8143883460121C9430C460125002600F041F88146D3 -:402EC00051460B7823400B705846013000F030F83800F04028400B78234003430B70584600F026F80136072EF2D9002001300138013001200B78234003430B705846043044 -:402F000000F016F8484600F01FF800BF00BF00BF0EBC894692469B46FEBD00BFAFF30080D480FF1FF880FF1F00C20100000000000230800803D000BF01380046FCD17047B9 -:402F4000EFF3108072B6704780F31088704700BF094A137803F00303012B0AD0022B09D113790C2103F07F02044B01FB02339B7A00E0137900207047006000409486FF1FBE -:402F8000002902D0B0FBF1F0704708B14FF0FF3000F008B80029F8D00246B0FBF1F000FB11217047704700BF014B1868704700BF6081FF1F0E4B70B51E460E4C0025E41A3D -:402FC000A410A54204D056F8253098470135F8E700F0BAFD084B094C1E46E41AA4100025A54204D056F8253098470135F8E770BD543B0000543B0000543B00005C3B00007E -:4030000003460244934202D003F8011BFAE7704730B5141E05469BB0184604DA8B232B604FF0FF301DE04FF40273ADF80C300CBF234604F1FF33029305934FF6FF730091B5 -:403040000491ADF80E3002461E9B6946284600F073F8431CBCBF8B232B6014B1009B00221A701BB030BD000007B5009313460A46014603480068FFF7CBFF03B05DF804FBCF -:403080006081FF1F2DE9F0478E6882469E420C46914698463ED88A8912F4906F3AD02568096902236F1A656905EB450595FBF3F57B1C43449D4238BF1D4653050FD52946B8 -:4030C00000F04AFB064698B13A46216900F0D2FAA38923F4906343F08003A38113E02A4600F098FB064670B92169504600F0E8FA0C23CAF80030A3894FF0FF3043F04003B2 -:40310000A381BDE8F08726613E44266046466561ED1BA560464528BF464649463246206800F0B3FAA36800209B1BA36023681E442660BDE8F08700002DE9F04F9DB003938C -:403140008B8980461C060D4616460DD50B695BB9402100F001FB2860286118B90C23C8F80030CDE040236B610023099320238DF82930DFF89CB130238DF82A3037463C46DB -:4031800014F8013B1BB9B7EB060910D003E0252BF9D02746F3E74B46324629464046FFF771FF013000F0A780099B4B4409933B78002B00F0A08000234FF0FF3204930793F2 -:4031C000059206938DF853301A930126052221784E4800F041FA671C049B38B14B4A3C46801A06FA00F018430490EFE7D90644BF20228DF853201A0744BF2B228DF853204C -:4032000022782A2A03D0079A00210A200BE0039A111D12680391002A10DA524243F00200079204900BE027463B780134303B092B03D800FB02320121F5E701B107923B782E -:403240002E2B1ED17B782A2B0AD1039B02371A1D1B680392002BB8BF4FF0FF33059310E0002319460593781C0A2407463A780130303A092A03D804FB01210123F5E703B1C9 -:40328000059103223978224800F0E6F940B14023CBEB000003FA00F0049B013718430490397806221B487E1C8DF8281000F0D4F988B1194B33B9039B073323F007030833A3 -:4032C000039314E003AB00932A46144B04A94046AFF3008007E003AB00932A460F4B04A9404600F093F8B0F1FF3F824603D0099B5344099342E7AB895B0601D4099801E0D9 -:403300004FF0FF301DB0BDE8F08F00BF233B0000293B00002D3B000000000000853000002DE9F04791461F460A698B6806469342B8BF1346C9F8003091F843200C46DDF8AC -:40334000208012B10133C9F800302368990642BFD9F800300233C9F80030256815F0060510D104F1190A07E00123524639463046C04701301AD00135E368D9F800209B1AFC -:403380009D42F1DB94F843302268003318BF012392060FD5E118302081F843005A1C94F845102244023382F8431003E04FF0FF30BDE8F08704F1430239463046C047013097 -:4033C000F4D02268D9F80050E36802F00602042A08BF5D1B2269A3680CBF25EAE57500259342C4BF9B1AED184FF000091A344D4509D00123224639463046C0470130D5D04C -:4034000009F10109F3E70020BDE8F0872DE9F04317460A7E85B06E2A984606460C460C9B01F1430E00F0AE8011D8632A22D009D8002A00F0BB80582A40F0CA8081F845207B -:40344000834955E0642A1ED0692A1CD0C0E0732A00F0B08009D86F2A2ED0702A40F0B8800A6842F020020A603EE0752A24D0782A3AD0ADE01A6801F14205111D1960136882 -:4034800084F84230A8E021681A6811F0800F02D0111D196008E011F0400F02F10401196002D0B2F9003000E01368002B3CDA2D225B4284F8432037E021681A6811F0800F13 -:4034C00002D0111D196007E011F0400F02F10401196001D0138800E01368227E5C496F2A14BF0A2208221BE078225A4984F845202268186812F0800F00F104051D6003D1DE -:40350000550601D5038800E00368D00744BF42F0200222601BB9226822F0200222601022002084F8430001E049490A226568002DA56008DB206820F0040020602BB9002D01 -:403540007DD175460CE0002B79D07546B3FBF2F002FB1033CB5C05F8013D03460028F5D1082A0BD12368DA0708D5236962689A42DEBF302305F8013C05F1FF35C5EB0E0320 -:4035800023612EE008681A6810F0800F496903D0101D1860136808E010F0400F02F104001860136801D0198000E0196000232361754616E01A68111D196015680021626886 -:4035C000284600F049F808B1401B6060636804E004F1420584F8422001232361002384F84330CDF800803B4603AA21463046FFF797FE013002D14FF0FF3026E023692A4686 -:4036000039463046C0470130F5D023689B0710D5002504F1190907E001234A4639463046C0470130E7D00135E368039A9B1A9D42F2DBE068039B9842B8BF184605E00B784F -:4036400004F1420584F842308AE705B0BDE8F083D5390000343B000010B5C9B202449042034605D01C7801308C42F8D1184610BD002010BD10B5431E0A44914204D011F857 -:40368000014B03F8014FF8E710BD884210B501EB020301D8421E0BE09842FBD28118D21AD34204D013F8014D01F8014DF8E710BD994204D011F8014B02F8014FF8E710BDC8 -:4036C00038B50546002944D051F8043C0C1F002BB8BFE41800F0D4F81E4A1368114613B96360146030E0A3420DD92268A018834201BF18685B681218226063600C6023E047 -:40370000A24203D813465A68002AF9D118681918A1420BD12168014458188242196013D110685268014419605A600DE002D90C232B6009E021686018824201BF1068526820 -:403740000918216062605C602846BDE8384000F098B838BD6086FF1F70B5CD1C25F0030508350C2D38BF0C25002D064601DBA94202D90C23336046E000F082F8234B1C683D -:403780001A462146A1B10B685B1B0ED40B2B03D90B60CC18CD501EE08C420BBF63684B681360636018BF0C4615E00C464968E9E7174C23681BB9304600F052F8206029460B -:4037C000304600F04DF8431C18D0C41C24F00304A0420DD12560304600F053F804F10B00231D20F00700C31A0ED05A42E25070BD211A304600F034F80130EBD10C2333605D -:40380000304600F03EF8002070BD00BF6086FF1F5C86FF1FF8B5074615460E4621B91146BDE8F840FFF798BF1AB9FFF749FF2846F8BD00F027F885420ED929463846FFF704 -:403840008BFF044650B131462A46FFF713FF31463846FFF735FF01E03046F8BD2046F8BD38B5064C0023054608462360FDF7EAFB431C02D1236803B12B6038BD4487FF1F0D -:403880007047704751F8040C0028BEBF091851F8043CC0180438704700000000050209020B020D020F02110213027265706C792030782530327800686F6D696E6700626584 -:4038C00067696E6E696E67207365656B2066726F6D20256420746F2025640066696E6973686564207365656B0057616974696E6720666F72205553422E2E2E005553422003 -:40390000726561647900636F6D6D616E642030782530327800756E64657272756E206166746572202564207061636B65747300636F756E743D256420693D256420643D254F -:403940006400636D645F777269746500703D25642063723D25642063773D256420663D256420773D256420696E6465783D256420756E64657272756E3D25640077726974AE -:40398000652066696E69736865640073746172742065726173696E670073746F702065726173696E670069646C65000051004010004051004030000000014000100014018C -:4039C00040000800400140000A004C0140000200500140200030313233343536373839414243444546000001000000040000001000010000000400000010000028000000C0 -:403A0000000104000100000000000000000157494E5553420000303030303100000000000000000012034D005300460054003100300030000100000001000000403A00005A -:403A4000010000000F3B0000000000000000000001000000583A000001000000E13A0000040000007A3A0000000000000000000000000000783A0000FF00000001024000A0 -:403A8000FF00000082024000FF00000003034000FF00000084034000FF00020304030904160346006C007500780045006E00670069006E0065002A0343006F0077006C0050 -:403AC000610072006B00200054006500630068006E006F006C006F0067006900650073000009022E0001010080320904000004FF0000010705010240000007058202400067 -:403B0000000705030340000A0705840340000A12010002FF0001080912006E0100020180014300232D302B2000686C4C00656667454647003031323334353637383961621F -:403B40006364656600000000F8B500BFF8BC08BC9E46704759000000C1100000F8B500BFF8BC08BC9E46704735000000803B0000C880FF1FA0000000E005000000000000B0 -:403B8000000000004887FF1FFF000000675000400C00000007000000FFFFFFFF7F8000003F0000000000007D00FA0000400000000090D003FF0000000000000000000000BC -:403BC000000000000000000000000000000000000000000000000000213B000000000000000000000000000000000000000000000000000000000000000000000000000069 -:403C00000000000000000000000000000000000000000000000000000081FF1F000000000000000000000000000000000000000000000000000000000000000000000000E5 -:403C40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044 +:4000000000800020110000006510000065100000064A08B5136843F020031360044B1A6803F53F5302331A6001F03AF8E8460040FA46004010B5054C237833B9044B13B109 +:400040000448AFF300800123237010BD6881FF1F00000000E0380000084B10B51BB108490848AFF300800848036803B910BD074B002BFBD0BDE81040184700BF0000000029 +:400080006C81FF1FE0380000C880FF1F000000000A4A0B4B116801310B40002BBEBF03F1FF3363F00F030133136011685368994202BF024B01221A72704700BF8881FF1FD4 +:4000C0000F0000800A4A0B4B516801310B40002BBEBF03F1FF3363F00F030133536051681368994202BF024B01221A72704700BF8881FF1F0F000080024B012200205A7223 +:4001000002F074B98881FF1F10B5C4B2204601F089F90128FAD110BD08B572B60F4B0F49DA680132DA601A690132C82A08BF00221A615A6918690132A72A08BF00224A6176 +:400140005B69002B0CBF02230023002814BF184643F0010002F0B2FE62B608BD8881FF1F10B504460D4B8278997E91421CBF00225A7702689A610279094B1A718378002B4C +:4001800014BF0220012002F05DFEE07802F054FE2079BDE8104002F08BBE00BF8881FF1FA081FF1F70B5C4B220460E4601F042F9314605460246204601F0FEF9204601F022 +:4001C00031F90128FAD0284670BD000038B50B4CA57F5DB904F11800FFF7C2FF012002F09BF84FF47A7002F0ADFA6577E36823620123A377BDE8384002F0E2BA8881FF1FDD +:4002000038B50446C5B2284602F092F8062002F0AFFA44F00200C0B202F08AF8062002F0A7FA284602F084F8BDE83840062002F089BA10B5642402F075F820B10120BDE8F9 +:400240001040FFF7DDBF0120FFF7DAFF013CF2D1F4E7000038B5044D0024285D013402F037FA102CF9D138BDAC81FF1F08B502F051FC002002F05AFC02F06CFC02F076FC2A +:4002800080B208BD10B50446012002F069F8642002F058FAFFF7EAFF2080002002F060F8642002F04FFAFFF7E1FF608010BD08B502F05CFD002002F065FD02F077FD02F0FD +:4002C00081FD80B208BD10B50446FFF7B2FF322002F038FAFFF7EBFF20800020FFF790FF322002F02FFAFFF7E2FF608010BD0FB400B593B014AB53F8042B402102A80193B4 +:4003000002F0D6FE02A802F078F802F082F813B05DF804EB04B0704710B5044601780648FFF7E5FF0420FFF7EFFE62782146BDE81040042001F0CEB8F238000007B500237C +:40034000ADF804308DF80600032301A88DF80530FFF7E2FF03B05DF804FB0000F8B51D4C0646FFF733FF637F03B156B91A48FFF7BEFFFFF75EFF012000236077636302F048 +:40038000F7F93246616B1548FFF7B1FF114D0027636B9E4216D001F0C5FF00B16F63636B9E4205DD0020FFF72BFF6B6B013305E005DA0120FFF724FF6B6B013B6B6302F00B +:4003C000FFF9E5E7322002F0BDF9BDE8F8400448FFF78DBF8881FF1FFF38000006390000233900002DE9F04F9BB062B602F052FABF49042002F076FABE4801F09FFFBE48BC +:4004000002F042FDBD4801F0D3FF02F023FC02F0F5FA002002F016FD01F0EEFF0221002000F0B6FFB64D0321084602F0A9F92E462C4602F0C5F9AB7F73B12A6AEB689B1A5D +:4004400041F28832934207D9002001F065FF002002F0F8FC0023AB7700F0D2FF18B9A948FFF745FF04E000F0D1FF0028F7D109E000F0C6FF0028FBD0A348FFF738FF0320FD +:4004800001F0EEF8032000F0CDFF0128D1D19F48FFF766FE9E490320FFF784FE94F838109C48FFF724FF94F83830023B122B00F2E483DFE813F01300E2031C00E20322007B +:4004C000E2033A00E2035E00E2039701E2032403E2034303E2034903E203540303238DF828308DF829300A238DF82A3033E394F83A00FFF733FF884B2AE3FFF767FE00232A +:400500006372637A002BFCD000237372F268637A002BFCD0F36807218DF828109B1A04218DF82910ADF82A3015E30220FFF7ECFD4FF000090DF1280A4FF480780027C8EB7F +:400540000903DA1907F80A200137402FF9D10220FFF7DAFD3A465146022000F0BBFFB8F10108EBD109F10109B9F1400FE4D16B4BC0E294F83A0001F0F3FE606BFFF7EEFE43 +:4005800002F002FD664BDFF89C811A78002742F004021A701A7842F001021A701A7802F0FE021A701A7802F0FE021A7002F0F0FC0220FFF7A9FD41F6FF734FF48042012151 +:4005C000022002F045FC84F8780002F067F808F807000137102FF8D1DFF84CA100270AF15D081FFA88F90137102F14BF3A4600221AF8010F2244062392F82420402102F077 +:4006000081F84A4646F24F419AF8000002F08CF809F14009102F1FFA89F9E4D100237372637A002BFCD00027142239460AA8777202F00AFD40230D934FF0FF3337607360E5 +:4006400037723368DFF8E490334493F8241096F87800CDF8309001F0D9FF96F8780001F097FF012196F8780001F06AFF236813B96B7A002BFAD0002794F83BA0676094F840 +:4006800008B0BBF1000F6CD102F09AF86B7A43B1BAF1010A85F809B003D162E02B7A002B5FD1626823689A42F8D04FF0000B63680AA808EB83135B440A93CBF140030B9309 +:4006C00000F0FCFA0B9B0137C3F140039B440D9B5FFA8BFB002B34D1022000F0A3FE012826D0637A002B3CD12B7A002BF4D038E019010000F900000091000000C5000000AD +:400700008881FF1F3139000044390000A081FF1FC081FF1F4E390000E4380000E63800009F640040AC81FF1FAB81FF1F0886FF1F4022B949022000F0CDFE4023CDF830909F +:400740000D93BBF13F0FB2D96268B44B01321340002BBEBF03F1FF3363F00F03013363608DE7042194F8780001F05CFF94F8780001F068FF0028F9D10AA800F0D3FA022013 +:40078000FFF7C2FC337A63B90D9A402A06D0C2F1400292B2A049022000F09CFE0220FFF7B3FC0D9A32F0400203D11146022000F091FEFFF74FFD237A33B19948FFF797FD3B +:4007C0000220FFF7BBFD06E0964B09A81B88ADF82430FFF7A1FD627A3946237A9248FFF786FD4DE29148FFF782FDE76B17F03F0701D0032042E2012001F0B8FD95F83A0074 +:4008000001F0AEFD02F0C0FB894BDFF828821A7802F0FB021A701A7842F001021A701A7802F0FE021A701A7802F0FE021A7002F0AFFB686BFFF792FD01214FF4804341F64F +:40084000FF72084601F098FD85F8780001F026FF08F807000137102FF8D1DFF8DC91002709F15D031FFA83F807930137102F14BF3A46002219F8010F2244052392F8242085 +:40088000402101F03FFF414646F2445299F8000001F04AFF08F14008102F1FFA88F8E4D10027BB46B946BA46F36B4FF0FF389B09142239460AA837600593C6F8048037729A +:4008C00002F0C2FB402301200D9300F0C9FECDF818802268514B01321340002BBCBF03F1FF3363F00F036168B8BF01338B4200F0A580BAF1000F07D0237A002B40F0B18024 +:400900006B7A002B40F0AD800B9B002B34D1B9F1000F0BD07F2240495A540133402BFAD10A910B9328E0BAF1000F06D1012000F079FD01288046F6D107E0237A002B40F0B0 +:4009400090806B7A002BF1D08BE03349FFF72AFC8146314B0B9040460A9300F081FEB9F13F0F07F1010706DD059BDB1BD3F1000949EB030900E0C1460B9BDBB12368079A60 +:400980000AA802EB83120D9BC3F1400313440C9300F0D7F90D9B6BB92A68204B01321340002BBEBF03F1FF3363F00F030133236040230D936368013340D12B680F2B3DD187 +:4009C0004FF00008C5F8048001F004FD85F808806B6895F878002B4493F8241001F016FE95F8780001F0D4FD012195F8780001F0A7FD85F80980637A002BFCD04FF00008C9 +:400A0000012086F8098001F0F1FC404601F0AEFCCDF8188015E000BF0886FF1F0F0000805D390000E8380000773900008A39000094650040AC81FF1FAB81FF1FBAF1000F92 +:400A400005D0237A6BB96B7A5BB94FF0010A6368069A93423FF43DAF6B680BF1010B069337E701F0BDFC012001F080FC002001F0BDFC042194F8780001F0D4FD94F87800BB +:400A800001F0E0FD0028F9D196F8780001F06EFD737A327A0293012303920193CDF800905B463A4605997A48FFF721FCB9F1000F16D1059BBB420ADD012000F0B3FC0128A3 +:400AC0008046F6D17349FFF76DFB3F2803DC012000F0DAFD04E0404600F0C2FD0137E8E7FFF7B8FB6C48FFF702FC237A0BB10220C4E06A4B1B8809A8ADF824302CE094F8F7 +:400B00003A0001F02DFC606BFFF728FC6448FFF7EEFB00236372637A002BFCD0012001F065FC00237372637A002BFCD0002001F05DFC5C48FFF7DBFB5B4B09E00020607776 +:400B4000FFF70CFC594B03E05948FFF709FB594B1B88ADF828300AA8FFF7DEFB90E0A37F3BB1002001F0D8FB002002F06BF90023AB7702F0EDF8002002F090F82A2701F0C0 +:400B8000BBFF002001F05EFF3A4600210AA802F05BFA15238DF828308DF8297001F010FE002001F0B9FB002002F04CF9C82001F0C9FD0DEB0700FFF765FB0DF13E00FFF7FF +:400BC00082FB01F0FDFD012002F03CF9322001F0B9FD0DF12E00FFF755FB0DF14200FFF772FB012001F098FB4FF4967001F0AAFD01F0E6FD0DF13600FFF744FB0DF14A002C +:400C0000FFF761FB002001F087FB4FF4967001F099FD01F0D5FD022002F014F9322001F091FD0DF13200FFF72DFB0DF14600FFF74AFB012001F070FB4FF4967001F082FD47 +:400C400001F0BEFD0DF13A00FFF71CFB0DF14E00FFF739FB002001F05FFB4FF4967001F071FD01F0ADFD002002F0ECF80023637701F0F0FF01F0C2FE6DE70120FFF75EFB17 +:400C8000032000F0EDFC0C48FFF731FBFFF7D1BB943900000886FF1FC4390000EA380000D3390000E1390000EC380000EE380000C081FF1FF0380000EE39000010B542681B +:400CC000002A2ED0C368002B2BD00368048A591C01601B78013A13F0800F817C42601DBF03F0010242EA84030231083114BF43F0020343EA0423817414BF03820382837C8C +:400D0000072BDCD9028A083B42FA03F38268511C81601370C368013BC360837C083B8374CDE710BD07B5827C42B102AA002102F8011D026001224260FFF7C0FF03B05DF856 +:400D400004FB30B543686BB3C2685AB3827C072A0CD8046890F91050611C01602178013B41EA05210832018243608274827C018AA2F108042141CBB2090608D5C3F3801391 +:400D800063F07F03023A03F08103827402E08474002BD7D08268511C81601370C368013BC360CFE730BD00002DE9F04172B6884B61221A70A3F5F06301221A801924854A1E +:400DC0009C7092E803008033062283F8002283E80300522203F580731A707F4B7F4A1B787F4EDBB2137040F618027E4B00251A8041F2512223F8022C33784FF4F07003F090 +:400E0000010343EA450502F0B7F8013C05F003052ED0032DF0D1744B4FF480721A8007221A70724A002548211570917002221D705D7103F8032C0422DA716D4A6D4C137847 +:400E40006D4E43F00103137012F8013C062743F0030302F8013C2378012243F0800323705B4B1A70654A137843F02003137000E0FEE707FB056300219A881868013502F0B5 +:400E8000E3F8072DF5D15E485E4E002550F8041F05F1105303F1560221F0FF075733C9B20B4452005B0002329A4206D012F802EC12F801CC0EF807C0F5E7B0420D44E5D167 +:400EC000514A002313609360136193614F4B504F1A68504BDFF888811A604F4B1A684F4B1A604F4A137843F002031370137C43F0020313742378A2F5863243F04003237066 +:400F0000413A137843F010031370464A464B07CA03C31A80454A2833106843F8250C127903F8212C424A07CA03C31A80414AE83B07CA03C31A80404A083307CA03C31A805D +:400F40003E4A3F4BA2F5616203CBC2F8100EC2F8141E1378042043F008031370394B02F5AA521B783D78DBB298F80060EDB203F007010C321B091170F6B2537045F00303A4 +:400F80003B7046F0030388F800302F4B48221A702E4A402313702E49937013729372082382F81F3220220A7048710A72294A0A20137001F0DDFB284B88F8006044223D7094 +:400FC000264D1A7094E80F0007C52B80BDE8F08100480040F01000480F010049A146004025420040224200400440004006400040A2430040A0430040F3390000E846004055 +:40100000FCFFFF47A800004800760040F8100048F846004020760040FC1000482876004003500140B0100048C0510040BC100048C4100048D0100048DC10004832510040B7 +:40104000E8100048CF0100491D51004001590040235B0040585B004076580040B0430040F946004008B501F0C3FF03680C2B00D1FEE7FEE7084908B50B68084A1844821AE6 +:40108000802A01DC086005E001F0B2FF0C2303604FF0FF33184608BDCC80FF1F5887FF1F80B51148114B0025C0B1A3F1100192C922460439161BB74204D051F8046F42F814 +:4010C000046BF7E7114653F8046C8C1AA64202D041F8045BF9E701381033E5E701F08EFFFFF780F9FEE700BF01000000C43B0000124A134B10B51A60124A134C1368134856 +:4011000043F4007313600023032B98BF54F823204FEA830188BF0E4A0133302B4250F3D10C4B1A780C4B1A700C4B084A1A60FFF73BFEBDE8104001F0EDB900BF0004FA05B0 +:401140000CED00E014ED00E0000000000080FF1F65100000BC760040C080FF1F08ED00E0F8B501F011FF4B4A01271378022643F001031370137C484C43F001031374474BB2 +:4011800002F5E3521F700B3203F8946C1378054603F07F031370002001F0EAFA2378404A03F0F90323701378384603F0DF03137023783B43237001F0DBFA282001F0D8FAF4 +:4011C000384B30461A7802F07F021A701A7802F0BF021A7023783343237001F0C9FA2378314A43F0040323700023137053702F4AFF2199540133092BFBD1284601F0C8FE15 +:401200000721172001F0FCFA2949172001F0EAFA0721182001F0F4FA2649182001F0E2FA0721152001F0ECFA2349152001F0DAFA0721052001F0E4FA2049052001F0D2FA36 +:401240000721062001F0DCFA1D49062001F0CAFA0721084601F0D4FA1A49072001F0C2FA0721082001F0CCFA1749082001F0BAFA0021162001F0C4FA1449162001F0B2FA42 +:4012800007210C2001F0BCFABDE8F84010490C2001F0A8BAA5430040944300409D60004012600040F8510040846000407D86FF1F2F1B0000691900002D1B0000611A0000F3 +:4012C0008D1A0000BD1A0000F51A0000351B0000A91B0000214B224A10B5187000231370204A40201370204A0F2413701F4A13701F4A13701F4A13701F4A13701F4B4FF4B8 +:4013000000021A604FF080721A604FF400121A6020221A601860802018604FF480701860174804704FF480001860164B1A70933B19B91A7802F0FE0202E01A7842F00102FA +:401340001A70114B03221A70802203F8202C012001F012FE0D4B04221A7010BD9886FF1F9E86FF1F9C86FF1F9D86FF1F9986FF1F8886FF1F9B86FF1F1087FF1F00E100E0DB +:401380009E6000409C600040286000401260004070B5074C054623780E461BB9FFF7E0FE0123237031462846BDE87040FFF792BF4886FF1F0A4A002313700A4A13700A4A96 +:4013C00013700A4A13700A4A13700A4A13700A4A13700A4B03221A70802203F8202C70479E86FF1F9C86FF1F9D86FF1F9986FF1F8886FF1F9B86FF1F1087FF1F2860004082 +:40140000014B1878704700BF9D86FF1F044B1A7802F0FF001AB118780022C0B21A7070479C86FF1F024A0C2303FB002040787047A486FF1F431E072B0CD8074A064B00016D +:401440000344805C5B7800F00F0043EA0020023880B2704700207047FC5F00401A4A38B50C2303FB00231B79090C13F0800F00F1FF35044619BF8AB24FF480438BB24FF4B0 +:401480008042032D18D8DFE805F002070C110021084601F01BF80DE00021084600F0FAFF08E00021084600F0D9FF03E00021084600F0B8FF054B1855EDB2072D03D801F03C +:4014C000EDF8034B185538BDA486FF1F7486FF1F7D86FF1F431E072B2DE9F0470446894615465CD82F4F0C2202FB0072D388DFF8B8A09BB2C3F500739D424FF00C0303FB06 +:40150000007388BFD588DB7884BFC5F50075ADB2254A43EA15230601B354B244EBB28AF80130224B1A5C9846FF2A01D1FFF796FF0C2303FB047200215170B9F1000F28D0CB +:401540003DB31B4F385D01F011F811232946FE2218F8040001F0D6F806F5C04278321FFA89F118F8040001F0DFF8124D18F80410385D01F04BF80121385D00F0E1FF735D33 +:4015800043F002037355735D03F0FD037355BDE8F08703FB04746379DBB28AF80230BDE8F08700BFA486FF1FFC5F00407D86FF1F7486FF1F706000402DE9F04704461546F8 +:4015C0008846002940D0431E072B3FD8FFF732FFA84203D22046FFF72DFF05461D4E335DFF2B03D141462046FFF738FFDFF868A027011AF8040000F0B9FF1223FE222946E5 +:40160000305D01F07FF807F5C0411FFA88F27831305D01F089F8DFF84490315D1AF8040000F0F4FF01211AF8040000F089FF17F8093043F0020307F8093017F8093003F0A8 +:40164000FD0307F8093002E00D4600E000252846BDE8F0877D86FF1F7486FF1F70600040431E072B0AD8064A0C2303FB002300225A705A79034BD2B200011A54704700BF9A +:40168000A486FF1FFE5F0040431E072B9FBF024B000108221A547047FE5F004030B51A4A1A491B4D0878138803449BB21380194A00231488D8B2A4B27CB1082B0CD05068CE +:4016C0000078C0B2E85450680133013050601088013880B21080ECE718460B780E4C082B0E4A00D040B10E4D2B7883F080032B700F232370022301E0022323701370094B21 +:401700001870087030BD00BF1487FF1F1087FF1F006000408C86FF1F8986FF1F9E86FF1F9A86FF1F1187FF1F074B02221A70074B80221A70064B0F221A70064A00231370DC +:40174000054A0120137070479E86FF1F9A86FF1F8986FF1F1087FF1F1187FF1F30B5164B16491B780A8803F00F03023BDBB21A4492B20A80124C134A0020118889B279B109 +:4017800073B15568215C013BC9B229705168DBB20131516011880130013989B21180ECE7094A1370094A137883F080031370084B0B221A7030BD00BF296000401487FF1F4A +:4017C000006000408C86FF1F1187FF1F9A86FF1F8986FF1F064A06231370064A01201370054B80221A70054B00221A70704700BF9E86FF1F8986FF1F9A86FF1F1187FF1FB7 +:40180000054B9A683AB19A68044910709A680988518000229A6070478C86FF1F1487FF1F08B5124B1A78D2B21A701B78DBB21A0602D50F4A137008BD0220FFF7E1FF0D4BBA +:401840001B7803F06003202B05D0402B06D043B900F012FC04E001F09FFB01E000F046FD10B9034B03221A7008BD00BF286000408986FF1F0060004008B5084A084B01203F +:40188000197813880B449BB21380064B00221A70FFF7B6FF044B03221A7008BD1487FF1F1087FF1F9E86FF1F8986FF1F08B50C4B1B78DBB2042B07D0062B09D0022B0DD136 +:4018C000BDE80840FFF7D8BFBDE80840FFF746BF0320FFF795FF034B03221A7008BD00BF9E86FF1F8986FF1F08B5054B002201201A70FFF785FF034B03221A7008BD00BF14 +:401900009E86FF1F8986FF1F08B50A4B1A7832B11A78094942F080020A7000221A70074B002201201A70FFF76BFF054B03221A7008BD00BF8886FF1F086000409E86FF1FDB +:401940008986FF1F074B1B78DBB2042B05D0062B05D0022B05D1FFF7A1BEFFF7C5BFFFF7D3BF70479E86FF1F38B51D4C2378DBB2DD0634D518060AD503F00F03012B2ED1D4 +:40198000FFF74EFF174B1B78190609D538BD5A0602D5FFF7D7FF03E09D0620D5FFF786FF23781B061BD4104B1A78104B1B7813430F4A13701278934211D10A4A084915460B +:4019C00013782078DBB2000605D41378DBB20B700B7803F00F0328788342F1D138BD38BD286000408986FF1F9A86FF1F1187FF1F29600040054A00231380054A916819B163 +:401A000091680B7092685380704700BF1487FF1F8C86FF1F0E4808B503889BB213B9FFF783FE13E00B4B02221A700B4B00221A70FFF7E0FF094AD1799379028843EA012386 +:401A400092B2934238BF0380FFF728FE012008BD8C86FF1F9E86FF1F9A86FF1F00600040084B01221A700F3B9B7C074B1A7B02F00302012A1EBFDA7B82F08002DA73012281 +:401A80005A7370470B600040A486FF1F094B02221A700F3B93F82230074B1A7E02F00302012A1EBFDA7E82F08002DA7601225A76704700BF0B600040A486FF1F0B4B042229 +:401AC0001A700F3B93F83230094B93F8242002F00302012A1EBF93F8272082F0800283F82720012283F82520704700BF0B600040A486FF1F0B4B08221A700F3B93F84230DE +:401B0000094B93F8302002F00302012A1EBF93F8332082F0800283F83320012283F83120704700BF0B600040A486FF1F7047FFF741BC0000F0B5184B184E19780C27C9B228 +:401B400001234FF0000C31B3CA0720D5144A4FEA031E7244947850782040C5070DD507FB03652C79240608D5147804F0FE0414706D790C4CEDB204F80E50840706D507FB41 +:401B8000036425792D0658BF84F801C090700133DBB24908D7E7F0BD9F600040A486FF1F70600040FE5F004000F0ACBC70B50446184B88B003AA03F1100615461868596833 +:401BC000083303C5B3422A46F7D11B782B70FCB12223237001AD03232846637000F08AFE002220461146AB5C08AC04EB131414F8144C03F00F03847008AC234413F8143CEA +:401C00000132082AC1700371417100F10400EAD108B070BD1D3A00002DE9F0431C4D01222E460C201F274FF0800E4FF0080C194B00FB02581401234418705F70164998F8A6 +:401C400005902144B9F1000F07D098F8044024064CBF887081F802C001E081F802E000FB0261CC880132E4B29C71CC88092AC4F30724DC71CC88E4B21C71C988C1F3072180 +:401C80005971D4D1054BFF221A70BDE8F08300BFA486FF1F70600040FC5F00400A600040064B074A1B7802EBC30253681A7C824286BF03EBC0035869002070479886FF1F80 +:401CC000803A00002DE9F84F424B1A78002A7ED01878414D0138C0B2FFF7E2FFA8463F4AC3681478007ADFF800C1E4B203EBC0000C2600274FF0010E834268D01A78A242F8 +:401D000063D11CF80420597891425ED19A7893F8039002F07F0206FB02FA05EB0A01CF7093F802B009F0030981F804B093F803B005F80AB0B3F804A0A1F808A093F902A068 +:401D4000BAF1000F0BDAB9F1010F0CBF4FF007094FF00D0981F8059081F801E009E0B9F1010F0CBF4FF005094FF0090981F805904F704FEA02191A4906FB0282494481F818 +:401D800002E0B2F808A0CAF3072A81F800A0B2F808A05FFA8AFA81F801A0B2F806A011495FFA8AFA494481F806A0B2F80690C9F3072981F80790B2F806905FFA89F981F89C +:401DC0000490D288C2F307224A71083394E7BDE8F88F00BF9D86FF1FA486FF1F9986FF1FFC5F0040706000408A86FF1F08B5064B18780138C0B2FFF753FF20B143681B797B +:401E000000EBC300406908BD9D86FF1F00212DE9F84F0B464E4E0C2707FB01F401313219092933554FF000059370494CD3701381937253705371EFD118B1464B1D70464B02 +:401E40001D70464B1A78002A7FD0187801250138C0B2FFF725FFA8464368DFF8F8E0DB790C2713F0400F3E4B4FF0000C1A7814BF42F0010202F0FE021A70027AD20007FB63 +:401E80000541C36803EB02094B4531D093F802A00AF07F06AE4229D10E89B3F804B0B6B25E4538BFA1F808B01E7893F801B01EF80660B3451AD181F804A0DE780E7093F99A +:401EC00002A0DE78BAF1000F06F0030607DA012E0CBF07260D264E7181F8018006E0012E0CBF052609264E7181F801C00833CBE70135092DC3D1C1680A328B1C0A440C2097 +:401F00000833934209D013F8081C13F80A5C01F07F0100FB01418D72F2E7FFF767FF114B0121186000230C2000FB0142D3801289013113449BB203F00102134409299BB223 +:401F4000F2D1BDE8F84FFFF767BEBDE8F88F00BFA486FF1F8A86FF1F1287FF1F9D86FF1F9B86FF1FA086FF1F114B1B7903F07F035A1E072A19D80F490C2202FB031291781B +:401F80001B0141F0010191700021D170517841F002015170127912F0800F074A1A4414BF8D2389239370FFF715BC0020704700BF00600040A486FF1FFC5F004030B4194B8C +:401FC0001A7902F07F02531E072B27D8164B0C2404FB02339978154D01F0FE0199700021D97029461201505D114400F07F0050555A7802F0FD025A701A795B78120605D521 +:40200000012B01D18C7006E00D2303E0012B0CBF082309238B7030BCFFF7DCBB002030BC704700BF00600040A486FF1FFC5F004010B50D4B0D4C21791878C9B20138C0B220 +:40204000FFF72EFE43681B798B4201D2012909D8074A0848535CDBB24354A3780120DBB2535410BD002010BD9D86FF1F006000408A86FF1F1287FF1F38B58A4A8A4C1378CE +:402080000021DBB221801806517840F18D800A2900F20581DFE811F05D00030103010301030103010B0003017E0003018200D3787C49012B09D17D4B1A787D4B03EBC203CA +:4020C0005B685B686360122310E0CB78022B12D18878FFF7E5FD002800F0E180436863606368DA7863689B7843EA02232380BDE83840FFF78FBCCB78032B26D16D4B0022D0 +:402100008878D5B2854209D3664A91786A4AEE2908BF1346634A917881B106E0187801320028F1D018780344EAE764499278097C914203D16248FFF739FD614B1A78002A8E +:4021400000F0AD801A78228018E0BDE8384000F023BF13F0030313D0022B40F0A0802380504B0C211B7903F07F02564B01FB02339A78554BD2B21A7000225A706360B6E76D +:4021800002222280514A11784F4AC9B2117053706260ACE7012323804D4BEFE70123238013794C4A1344E9E701390A2977D8DFE801F037764F76067676760A76200093784A +:4021C000454ADBB25AE0937803F0FF0153B9404B1A7891425FD01970404B01201870FFF715FE58E0481EC0B2FFF75AFD0028EED155E0FFF71DFF002851D02A4A3849137945 +:402200001279DBB2D2B20A70364A3249D25CCB5C9A4240D0314B01221A70FFF753FD3AE003F00303012B2BD009D3022B37D11D4B9B78002B33D1BDE83840FFF7BFBE194BF4 +:402240009B78012B2BD1214A137803F0FD0315E003F00303012B13D008D3022B1FD1114B9B78E3B9BDE83840FFF77EBE0D4B9B78012B14D1154A137843F0020313700AE0E0 +:40228000084B1A795AB998781B791749DBB2CA5C22EA0002CA54BDE83840FFF79BBA002038BD00BF006000408C86FF1F9886FF1F803A0000E43A00006C3A0000573B0000EA +:4022C0003087FF1FA486FF1F4986FF1F9B86FF1F9D86FF1F8A86FF1F8886FF1F9C86FF1F9986FF1F1287FF1F9F86FF1F074B1A78120609D55B78012B06D1054B054A5A607A +:4023000012781A80FFF786BB00207047006000408C86FF1F443A0000014B1870704700BF77650040014B1878704700BF68650040014B1870704700BF7A650040064A01237B +:40234000136002F688321268E0211064034A1170A2F540721360704780E100E000E400E0014B1870704700BF79650040014B1870704700BF7565004073B515461E460B4CF9 +:4023800005230022019200920A4601461846237000F064F932462946207800F01FF90221207800F009F9207802B070BDD080FF1F064A0423136002F688321268E0219064B5 +:4023C000034A1170A2F202321360704780E100E002E400E0014B04221A60704700E100E0014B04221A60704780E100E0014B1870704700BF7B650040704738B505460078FD +:40240000012428B100F060FD285D0134E4B2F8E738BD08B50D2000F057FDBDE808400A2000F052BDF7B516461F460B4C00230325019300930A4601462846257000F00EF922 +:402440003A463146207800F0C9F80221207800F0B3F8207803B0F0BDE080FF1FF7B516461F460B4C00230225019300930A4601462846257000F0F2F83A463146207800F028 +:40248000ADF82946207800F097F8207803B0F0BDE180FF1FF7B516461F460B4C00230125019300930A4601462846257000F0D6F83A463146207800F091F80221207800F03B +:4024C0007BF8207803B0F0BDE280FF1F73B515461E460B4C0023019300930A4601461846237000F0BBF832462946207800F076F80221207800F060F8207802B070BD00BF28 +:40250000E380FF1F024B1878C0F38010704700BF8F450040074A7F23802113705170064A013BDBB202F80839002BF9D1034A1370704700BFE480FF1FF87B0040007800401C +:4025400017280FD8084B0001C25C11B142F0200201E002F0DF02C254C25C42F00102C25400207047012070471070004017280BD8064B0001C25C02F0FE02C254C25C02F061 +:40258000DF02C25400207047012070471070004017280DD8074900010B4603441A7942F004021A71435C43F00103435400207047012070471070004017280BD8064A000103 +:4025C000835C490003F0F10301F00E011943815400207047012070471070004041F6FF73994208BF4FF400519A4208BF4FF4005217289FBFC00000F1804000F5EC408180E5 +:402600009ABFC280002001207047000017289FBF034B00011954002088BF0120704700BF1970004017289FBF054B00011A5C01F007019DBF1143195400200120704700BFB6 +:402640001470004017289FBF034B0001185C00F0070088BFFF20704714700040172810B51AD8C00001F07F0100F1804441EAC21204F5EC44D2B222709DF8082003F00F0382 +:4026800043EA0213DBB263709DF80C30002003F00F03A370E07010BD012010BD10B500F073FC0A4A5378182B0AD91478013B5370E30003F1804303F5F0431B78137000E0B5 +:4026C000FF2400F065FC204610BD00BFE480FF1F030610B5044611D400F056FC084AE300117803F1804303F5F04319705378147001335370BDE8104000F04ABC10BD00BFCD +:40270000E480FF1F30B504060CD411F4704509D1C40004F1804404F5F0442180A270E370284630BD012030BD03065FBFC00000F1804000F5F04081805ABFC2800020012041 +:402740007047000038B50446084DB4F5004F05D9286800F011FCA4F50044F6E7034B58686043BDE8384000F007BC00BFEC80FF1F024B1B7A584300F0FFBB00BFEC80FF1FBF +:402780000E4B00F003001A78490102F0FC02104318701A7801F0600142F080021A701A7802F07F021A701A7802F09F020A431A701A7842F010021A70704700BF834300409D +:4027C000014B01221A70704784430040044B00F00F021B6853F8220043F82210704700BF08ED00E0054A00F01F00126800F1100352F8230042F82310704700BF08ED00E029 +:4028000000F01F0000F16040490100F56440C9B2017070470F4B10B50F4900240F205C609C60DC601C615C61FFF7D0FF0B4A136843F0040313600A4B4FF47A72DB68B3FBC3 +:40284000F2F3084A1360084B4FF400421C60C3F8E82010BD4C86FF1FC128000010E000E0EC80FF1F14E000E018E000E0024A136843F002031360704710E000E008B5FFF73F +:40288000F5FF034A136843F00103136008BD00BF10E000E010B5054CA3691BB9FFF7BAFF0123A361BDE81040FFF7E8BF4C86FF1F024B1868C0F30040704700BF10E000E009 +:4028C00038B5FFF7F5FF012808D1054D002455F8243003B198470134052CF8D138BD00BF5086FF1F024B03EB80035868596070474C86FF1F134B144A1B78DBB203601278D7 +:4029000043EA0223114A0360127843EA0243104A0360127843EA026303600E4B0E4A1B78DBB24360127843EA02230C4A4360127843EA02430A4A4360127843EA0263436054 +:40294000704700BF0301004904010049EC460040020100490101004900010049050100490601004910B500F00FFB204A044613780A2043F002031370137C43F00203137423 +:4029800012F80A3C43F0010302F80A3C937943F00103937102F5AB52137843F003031370134B18221A7013F8012C42F0400203F8012C13F8012C02F0FC0203F8012CCE2298 +:4029C00003F8062CA3F597530222183B1A70094A137843F008031370FFF7CAFE064B10222046BDE810401A6000F0D2BAAB4300400E5900402F5B004080E200E008B500F068 +:402A0000C3FA0F4A137803F0FE031370A2F5AA521D3A137803F0FD031370137C03F0FD03137412F80A3C03F0FE0302F80A3C937903F0FE039371BDE8084000F0A9BA00BF03 +:402A400008590040044A137803F03F0343EA8010C0B21070704700BF08590040082804D00A280CBF8223C22300E0422308380E4AC0B20428137098BF0C4B4FF0000298BF12 +:402A800033F910100A4B88BF11461A8042F210734B4341F2883103F6C41393FBF1F305490B60054B1A8070470A5900402E3A00001A87FF1F1C87FF1F2087FF1F08B5102033 +:402AC00000F0A6F907210420FFF79AFE07490420FFF788FE064A0C20137843F006031370FFF7BCFF034B00221A8008BDB52B0000095900401887FF1F10B5054C23781BB973 +:402B0000FFF7DCFF01232370BDE81040FFF72ABF6886FF1F044B1A7802F0FB021A701A7842F001021A7070470859004010B5084B1C7814F0010403D10028F9D0002404E0A8 +:402B40002046FFF715FE024B1B78204610BD00BF09590040034A044B1B881088181A00B2704700BF2087FF1FA25B00400E4A13881BB223B111880A2309B2594301E00B4B57 +:402B800019680B4B1B88C01A42F2107300B203FB00F2022391FBF3F30028D8BF5B42134493FBF1F000B270471A87FF1F1C87FF1F1887FF1F7047000010B500F0E5F9214A54 +:402BC000044613780A2043F001031370137C43F00103137412F80A3C43F0020302F80A3C937943F00203937102F5AA521832137843F003031370144B18221A7013F8012CE0 +:402C000042F0400203F8012C13F8012C02F0FC0203F8012CCE2203F8062CA3F597530222123B1A70094A137843F008031370FFF79FFD074B08222046BDE810401A6000F09C +:402C4000A7B900BFAB43004006590040275B004080E200E008B500F097F90F4A137803F0FE031370A2F5AA52153A137803F0FE031370137C03F0FE03137412F80A3C03F09B +:402C8000FD0302F80A3C937903F0FD039371BDE8084000F07DB900BF00590040044A137803F03F0343EA8010C0B21070704700BF00590040082804D00A280CBF8223C2230F +:402CC00000E0422308380E4AC0B20428137098BF0C4B4FF0000298BF33F910100A4B88BF11461A8042F210734B4341F2883103F6C41393FBF1F305490B60054B1A807047EA +:402D000002590040383A00002687FF1F2C87FF1F2487FF1F08B5102000F084F807210320FFF76EFD07490320FFF75CFD064A0C20137843F006031370FFF7BCFF034B002273 +:402D40001A8008BD0D2E0000015900402887FF1F10B5054C23781BB9FFF7DCFF01232370BDE81040FFF728BF6986FF1F044B1A7802F0FB021A701A7842F001021A70704704 +:402D80000059004010B5084B1C7814F0010403D10028F9D0002404E02046FFF7E9FC024B1B78204610BD00BF01590040034A044B1B881088181A00B2704700BF2487FF1F51 +:402DC000A05B00400E4A13881BB223B111880A2309B2594301E00B4B19680B4B1B88C01A42F2107300B203FB00F2022391FBF3F30028D8BF5B42134493FBF1F000B27047E1 +:402E00002687FF1F2C87FF1F2887FF1F70470000034A00F0F800137803431370704700BF02410040034A00F0F800137803431370704700BF06410040014B1870704700BF20 +:402E400079640040014B1870704700BF7665004073B515461E460B4C04230022019200920A46014618462370FFF7F8FB324629462078FFF7B3FB02212078FFF79DFB2078AF +:402E800002B070BDFC80FF1F074A0223136002F688321268E0215064044A11706FF440710A441360704700BF80E100E001E400E0014B1870704700BF72640040014B18707B +:402EC000704700BF70640040FEB5494652465B460EB40746244909688A46244A12682448022100F071F8030020480068C018204900F06AF8143883460121C9430C4601251F +:402F0000002600F041F8814651460B7823400B705846013000F030F83800F04028400B78234003430B70584600F026F80136072EF2D9002001300138013001200B78234080 +:402F400003430B705846043000F016F8484600F01FF800BF00BF00BF0EBC894692469B46FEBD00BFAFF30080D480FF1FF880FF1F00C20100000000000230800803D000BFE9 +:402F800001380046FCD17047EFF3108072B6704780F31088704700BF094A137803F00303012B0AD0022B09D113790C2103F07F02044B01FB02339B7A00E013790020704753 +:402FC00000600040A486FF1F002902D0B0FBF1F0704708B14FF0FF3000F008B80029F8D00246B0FBF1F000FB11217047704700BF014B1868704700BF6081FF1F0E4B70B5F6 +:403000001E460E4C0025E41AA410A54204D056F8253098470135F8E700F0BAFD084B094C1E46E41AA4100025A54204D056F8253098470135F8E770BD9C3B00009C3B0000F2 +:403040009C3B0000A43B000003460244934202D003F8011BFAE7704730B5141E05469BB0184604DA8B232B604FF0FF301DE04FF40273ADF80C300CBF234604F1FF3302939F +:4030800005934FF6FF7300910491ADF80E3002461E9B6946284600F073F8431CBCBF8B232B6014B1009B00221A701BB030BD000007B5009313460A46014603480068FFF780 +:4030C000CBFF03B05DF804FB6081FF1F2DE9F0478E6882469E420C46914698463ED88A8912F4906F3AD02568096902236F1A656905EB450595FBF3F57B1C43449D4238BFB5 +:403100001D4653050FD5294600F04AFB064698B13A46216900F0D2FAA38923F4906343F08003A38113E02A4600F098FB064670B92169504600F0E8FA0C23CAF80030A38947 +:403140004FF0FF3043F04003A381BDE8F08726613E44266046466561ED1BA560464528BF464649463246206800F0B3FAA36800209B1BA36023681E442660BDE8F0870000A0 +:403180002DE9F04F9DB003938B8980461C060D4616460DD50B695BB9402100F001FB2860286118B90C23C8F80030CDE040236B610023099320238DF82930DFF89CB1302341 +:4031C0008DF82A3037463C4614F8013B1BB9B7EB060910D003E0252BF9D02746F3E74B46324629464046FFF771FF013000F0A780099B4B4409933B78002B00F0A080002375 +:403200004FF0FF3204930793059206938DF853301A930126052221784E4800F041FA671C049B38B14B4A3C46801A06FA00F018430490EFE7D90644BF20228DF853201A07B2 +:4032400044BF2B228DF8532022782A2A03D0079A00210A200BE0039A111D12680391002A10DA524243F00200079204900BE027463B780134303B092B03D800FB0232012180 +:40328000F5E701B107923B782E2B1ED17B782A2B0AD1039B02371A1D1B680392002BB8BF4FF0FF33059310E0002319460593781C0A2407463A780130303A092A03D804FB85 +:4032C00001210123F5E703B1059103223978224800F0E6F940B14023CBEB000003FA00F0049B013718430490397806221B487E1C8DF8281000F0D4F988B1194B33B9039B1F +:40330000073323F007030833039314E003AB00932A46144B04A94046AFF3008007E003AB00932A460F4B04A9404600F093F8B0F1FF3F824603D0099B5344099342E7AB89BE +:403340005B0601D4099801E04FF0FF301DB0BDE8F08F00BF6B3B0000713B0000753B000000000000CD3000002DE9F04791461F460A698B6806469342B8BF1346C9F80030A7 +:4033800091F843200C46DDF8208012B10133C9F800302368990642BFD9F800300233C9F80030256815F0060510D104F1190A07E00123524639463046C04701301AD001359A +:4033C000E368D9F800209B1A9D42F1DB94F843302268003318BF012392060FD5E118302081F843005A1C94F845102244023382F8431003E04FF0FF30BDE8F08704F1430293 +:4034000039463046C0470130F4D02268D9F80050E36802F00602042A08BF5D1B2269A3680CBF25EAE57500259342C4BF9B1AED184FF000091A344D4509D001232246394631 +:403440003046C0470130D5D009F10109F3E70020BDE8F0872DE9F04317460A7E85B06E2A984606460C460C9B01F1430E00F0AE8011D8632A22D009D8002A00F0BB80582A40 +:4034800040F0CA8081F84520834955E0642A1ED0692A1CD0C0E0732A00F0B08009D86F2A2ED0702A40F0B8800A6842F020020A603EE0752A24D0782A3AD0ADE01A6801F153 +:4034C0004205111D1960136884F84230A8E021681A6811F0800F02D0111D196008E011F0400F02F10401196002D0B2F9003000E01368002B3CDA2D225B4284F8432037E005 +:4035000021681A6811F0800F02D0111D196007E011F0400F02F10401196001D0138800E01368227E5C496F2A14BF0A2208221BE078225A4984F845202268186812F0800F4D +:4035400000F104051D6003D1550601D5038800E00368D00744BF42F0200222601BB9226822F0200222601022002084F8430001E049490A226568002DA56008DB206820F00B +:40358000040020602BB9002D7DD175460CE0002B79D07546B3FBF2F002FB1033CB5C05F8013D03460028F5D1082A0BD12368DA0708D5236962689A42DEBF302305F8013C36 +:4035C00005F1FF35C5EB0E0323612EE008681A6810F0800F496903D0101D1860136808E010F0400F02F104001860136801D0198000E0196000232361754616E01A68111D3C +:403600001960156800216268284600F049F808B1401B6060636804E004F1420584F8422001232361002384F84330CDF800803B4603AA21463046FFF797FE013002D14FF095 +:40364000FF3026E023692A4639463046C0470130F5D023689B0710D5002504F1190907E001234A4639463046C0470130E7D00135E368039A9B1A9D42F2DBE068039B98421B +:40368000B8BF184605E00B7804F1420584F842308AE705B0BDE8F0831D3A00007C3B000010B5C9B202449042034605D01C7801308C42F8D1184610BD002010BD10B5431E47 +:4036C0000A44914204D011F8014B03F8014FF8E710BD884210B501EB020301D8421E0BE09842FBD28118D21AD34204D013F8014D01F8014DF8E710BD994204D011F8014B80 +:4037000002F8014FF8E710BD38B50546002944D051F8043C0C1F002BB8BFE41800F0D4F81E4A1368114613B96360146030E0A3420DD92268A018834201BF18685B681218C4 +:40374000226063600C6023E0A24203D813465A68002AF9D118681918A1420BD12168014458188242196013D110685268014419605A600DE002D90C232B6009E021686018E2 +:40378000824201BF106852680918216062605C602846BDE8384000F098B838BD7086FF1F70B5CD1C25F0030508350C2D38BF0C25002D064601DBA94202D90C23336046E093 +:4037C00000F082F8234B1C681A462146A1B10B685B1B0ED40B2B03D90B60CC18CD501EE08C420BBF63684B681360636018BF0C4615E00C464968E9E7174C23681BB9304698 +:4038000000F052F820602946304600F04DF8431C18D0C41C24F00304A0420DD12560304600F053F804F10B00231D20F00700C31A0ED05A42E25070BD211A304600F034F8A2 +:403840000130EBD10C233360304600F03EF8002070BD00BF7086FF1F6C86FF1FF8B5074615460E4621B91146BDE8F840FFF798BF1AB9FFF749FF2846F8BD00F027F88542BF +:403880000ED929463846FFF78BFF044650B131462A46FFF713FF31463846FFF735FF01E03046F8BD2046F8BD38B5064C0023054608462360FDF7DEFB431C02D1236803B178 +:4038C0002B6038BD5487FF1F7047704751F8040C0028BEBF091851F8043CC0180438704700000000050209020B020D020F02110213027265706C79203078253032780068AC +:403900006F6D696E6700626567696E6E696E67207365656B2066726F6D20256420746F2025640066696E6973686564207365656B0057616974696E6720666F722055534275 +:403940002E2E2E0055534220726561647900636F6D6D616E642030782530327800756E64657272756E206166746572202564207061636B65747300636F756E743D25642090 +:40398000693D256420643D256400636D645F777269746500703D25642063723D25642063773D256420663D256420773D256420696E6465783D256420756E64657272756EE5 +:4039C0003D25640077726974652066696E69736865640073746172742065726173696E670073746F702065726173696E670069646C65000051004010004051004030000026 +:403A0000000140001000140140000800400140000A004C01400002005001402000303132333435363738394142434445460000010000000400000010000100000004000051 +:403A40000010000028000000000104000100000000000000000157494E5553420000303030303100000000000000000012034D00530046005400310030003000010000005D +:403A800001000000883A000001000000573B0000000000000000000001000000A03A000001000000293B000004000000C23A0000000000000000000000000000C03A000076 +:403AC000FF00000001024000FF00000082024000FF00000003034000FF00000084034000FF00020304030904160346006C007500780045006E00670069006E0065002A0363 +:403B000043006F0077006C00610072006B00200054006500630068006E006F006C006F0067006900650073000009022E0001010080320904000004FF000001070501024061 +:403B40000000070582024000000705030340000A0705840340000A12010002FF0001080912006E0100020180014300232D302B2000686C4C00656667454647003031323319 +:403B800034353637383961626364656600000000F8B500BFF8BC08BC9E46704759000000F1100000F8B500BFF8BC08BC9E46704735000000C83B0000C880FF1FA0000000D3 +:403BC000F005000000000000000000005887FF1FFF000000675000400C00000007000000FFFFFFFF7F8000003F0000000000007D00FA0000400000000090D003FF00000077 +:403C00000000000000000000000000000000000000000000000000000000000000000000693B000000000000000000000000000000000000000000000000000000000000E0 +:403C400000000000000000000000000000000000000000000000000000000000000000000081FF1F00000000000000000000000000000000000000000000000000000000A5 :403C80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004 :403CC00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000C4 :403D00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083 @@ -4098,74 +4098,74 @@ :40FF80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041 :40FFC0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 :0200000480007A -:400000000145004008520040015B0040016400400165004045000140380101404F020140550301404404014051050140490601404D0701404308014055090140400A014093 -:40004000520B0140450C0140540D0140490E0140360F0140411401405515014056160140551701404818014057190140461A0140591B01400B400140114101400E4201409D -:400080000E430140044401400B45014009460140104701401048014012490140154C0140074D014008500140045101407E0208410904108018031902600361197C40272154 -:4000C0003301270A020103070404060B091F0A010E011140120215041601171019021A011B181C031E0C1F1821042201230826012720280929182A042D182E012F01313FF9 -:400100003207334034083E043F045608580459045B045C995D905F0181018202860388028C04900293019402970298029B019C03A002A402A704A801AC02B403B507B60450 -:40014000B920BE50D804D904DB04DC90DF0100A002A005200761082009080A410D200E020F5010A41140130214811510162019081A081E081F8021052202263027042804BC -:4001800029012B112D0830823228350136203708382039023E013F02584061406540670268026F01820289408F80C0FFC2FFC4FFCA4FCCEFCE85D608D808E001E604023F09 -:4001C0000302043F07010A200B010C010D0111011202143F19011A101E3F22082304243F25012A3F2B012E043507363F37073BA03E40580459045C905F018001820886D3F2 -:400200008C108E4290129280950C9610980A99039A059B089D019F0EA013A220A4F2A604A811A90EAAE2AB01B008B107B308B407B6F0B902BA20BE01BF05C034C9FFCAFF06 -:40024000CBFFD004D601D804D904DA04DB04DC09DD09DF01E080E240E440E56400020220030204080522060208080A440DA00F501044130814911608172019411A071B022A -:400280001F80210525D02701280429102C102D102F8030403140322436113D823E083F1041055C205E10685069406A106B107020710C73028110828084508D048E4892088D -:4002C000930294209550964197549B049CA59D259E209F6AA224A340A470A528A689A710AB40AD04AE10B040B304B504C0FDC2FEC4FECAE4CCAECEF0D003E00BE284E80842 -:40030000EA04EC08EE06010A0431050D06C20DD00E101222151018011A081C0A1E051F502033224023052480250126332CF22DA02E043008313033C034F035033607370C01 -:400340003A803E01580459095C995F01827F843F87028A208B108C018D118E40903F91019602970499119A109E3FA208A320A43FA511AA3FAD19AE04B040B23FB307B5303A -:40038000B708BB20BE05D804D904DC90DF0103220408052206020A490D200F5110421220149116081720188019101A411B201E801F08204221012204230424082550261851 -:4003C000272028202A402B402E082F8132443410360538403B063DA846024740792081108A108C40920293029428951096409754984099019A809B159C919D329E229F6877 -:40040000A224A342A401A521A611A710AA10AB02AC28AE80B201B302B540C0F5C2FBC4FDCADBCCEACE7BDE04E405E807EC01EE0A000101020310040105320602080109335C -:400440000B040C010F32111F1201134014011533170C180119321C011D321E022001213225012601273829322A012C012D022F603170330F36033E403F05580459045F0191 -:400480008001814084018707891F8A018D048F109118930195029604971898019B189E019F40A104A308A602A720A801A918AD80AE01B207B53FB7C0BA08D804D904DC9984 -:4004C000DF01010802080340040805200601078008500A200D200E820F1010211120148216201720181019081A101F80200C2240250529112A402B102C102D012E90324100 -:40050000331436A938A439023D603E083F0188128A848C1090A891029202930195109680975099119A809B359C919D229E62A110A258A310A525A601A780A812AB19AC21C1 -:40054000AD10B208B308C0FEC2F7C4F7CAFFCCFFCEFFE201E401E684EA07EE010018011D020106180707080409010A100B080C1F0D1D1040111D151D160718181B1D1D0154 -:400580001E201F302002211D221824C0271D291D2C042D0C2E082F223080323F3440353C364037033E503F50580459045C095F018101850189018F029203930495019901E6 -:4005C0009C019D01A301A901AF01B401B507B602B920BE10D608D804D904DB04DC99DD90DF0104080640070508010A020E620F081440160117081A021B201D401E601F9055 -:40060000200822202510270229012B0A2D402E202F603088322234863620382039403A0A3D083E103F8659085B50600861046280654067026801834088048C8090099218F0 -:400640009310946495049780984199829A619B0D9C089D459E0A9F02A104A209A305A48FA690A770A908AA41AC01AF08B221B310B420C0F0C2F9C4B0CAFDCCFFCEFFD60EC5 -:40068000D80EE010E221E684E820EC8200010108050809080F021308150819011D08230F250F280229032B0C2D043201330F34023E143F04580459045B045F0181498201A8 -:4006C0008549860189018A018D408E018F3090019302940195489710980199019E019F01A201A349A601A704AA01AB01AD48AE01AF20B307B540B601B738BB08BE40D60825 -:40070000D804D904DB04DC90DD90DF0100020480052206100C400E400F181004141015A119101B081D801E022208254C271829402A202B502C0A2E012F1030883101332004 -:400740003540371A38203A0A3B803C083D803F2259105B405CA064056C016D406E406F01808083048B018D048F44908991A19218931094469544985099A29A519C09A580BF -:40078000A691A704A8CAAA01AC01AD12B014B120B248B310B502C0F8C2F0C4F2CAFFCCFFCEFFD63CD830E080E410E860EC80EE0201030201031C050C060107030A010B0ACA -:4007C0000D030E010F101201160118011E012201230F260127202801290F2E012F05313F34013B023E10580459045C905F018034810283048402871089028E028F02900482 -:4008000091019308950A96019705980299039D109E28A102A614A703A903AF20B030B307B403B530B60CB708BB08BF40D608D80BD904DB04DC99DD90DF01000401800380CE -:4008400005220610070208080A880B010C480D020F081304141415011602174019401A881B821F1020022148230627402A012B252C462F1030013168382239803B043D409F -:400880003E223F084C0C588063037A80800182108302850186108C108D208E209460954496089710984099809C089E33A320A402A582A619A704A902AB10AC40AF20B2040D -:4008C000B480C0FDC2FFC4F4CAFFCC0FCEFFD608D808DE01E010E280E440E818EA80EC20EE0201040308070709040B100D1F0E02131815181601170118021F2021022318E4 -:400900002918353F3603580459045C995F01818082078518880489048A108B108C1F8D1F9320945895189681970198989A409B409E209F18A0C2A102A218A318A540A6187D -:40094000AB07AC04AD04AE08AF08B2C0B3C0B53FB63FB780BE04BF40C203C5E0C802C9FFCAFFCBFFCF83D804D904DA04DB04DC99DD09DF01018004A108080A080E020F1820 -:400980001440161119801C011D081E01230424022520271028402B042C462E043182320834803609371038A039403A013B043D403E203F0A4404452846044D025C405D045D -:4009C0005E2166066705800183018B01C0D1C2E6C4B0CAF5CCFBCEFFD040D6F0D8F0E0C00001062009050A3F0B0A0D0A0E100F0512021604183F1C3F1F03223F243F2A3FC6 -:400A00002E083101323F33083502370439AA3E043F555608580459045B045D905F01800F8301860F8703880889038D038E08900893029408950399039A019C049F08A103BD -:400A4000A202A403A60CA703A808A903AC08AF04B00FB303B50FBE01BF04D804D904DC90DF01002A03020408052006020740088009100B500C400E080F501051120815014F -:400A80001608178418201F01229123202408250826202C102D012F0932403668370539903C403D203F0959806240699080808218840585208622872088018A018B908C4032 -:400AC0008D208E048F0291019280934194289710985099809B419C819D209E629F80A010A110A248A30CA401A528A6A0A702A980AC02B340C0FFC2FFC4FFCAF0CCF8CEFCC5 -:400B0000D608D808E228E404E60BEA0E0003010602080506060208060B040C060D400F06111112011326140715561721180119061A061B781D7F1E01200623012401260CF1 -:400B40002702280629072A012B082E062F01360F377F3E403F40580459045F0180018102863F89018A208E10903F95019604987F9E08A101A23FA43FA640AA7FAE02B102EC -:400B8000B23FB301B440BB0CBE14BF01C064C720C820C9FFCAFFCBFFCD20CEF0D110D804D904DA04DB04DC90DD09DF01E108E240E340E480E640E7400002012803020508A5 -:400BC00006080742088109100B180C520E201050120813401549172019101A201F8020202105220426402B802C402D082F06310834023628374038223C203D413E08410176 -:400C000049105001660167406A80820183488501868088108A088C058F0291409301950196289750985299089B219C819D209E6B9FC0A110A218A304A520A621A820AC4071 -:400C4000AD12B004B540B704C0FFC2FFC4FFCAF1CCF2CEF5D001D204E208E661EA01EC40EE08012C0228030204800505083409050A080C3F0D130F20120713051438150576 -:400C800016011808190F1A101B101D051E40200221052238251029052C042D082E302F02307F3280353F3E043F105608580459045B045C095D905F018102850289088B0152 -:400CC0008D028E0490019102950296029806991C9B039D10A102A702A902AD03AF04B001B11FB406BE01BF01D80BD904DB04DC09DF01018004080502070508090A080D0298 -:400D00000E020F181440160118041A401C401D021F042202261028842B212C082E022F2231043221338035013624374038013A203B843D603E095A405F40640169406B02CA -:400D40006C046D807A8083128744880489088A018C068D0490019218933694649540978098C899829A219B0D9C069D099E0AA2A9A3A5A48AA602A75AA910AF80B104B7304D -:400D8000C0F1C2FEC490CAFFCCFFCEFFD618D810DE01E050E220E488E660E820EA40EC4002080301060307010803092E0B410C030D7F1003110E13701602170819211A038B -:400DC0001B4E1C031D0E200323022601270E2A042B042D0F2F10360F377F3F40580459045C095F0183038401858089808D80918094019580993D9BC09D80A1A9A530A90CC9 -:400E0000AB40AD56B3FFB601BA80BF04C003C7CEC830C9FFCAFFCBFFD004D601D804D904DA04DB04DC09DD09DF01E2C0000201500320072008100A120B800E20110112088F -:400E4000130418021A021B401D801E011F402002272028842B212D502E202F5030103184322134863620380839403A203B023D013E103F864708540255086C946D206E0A04 -:400E80006F4A741C7503760A770182018502870A88108B018C11914092109326942096039780988699049A209B089D019E0A9F40A238A321A48EA518A604A74AAC80AD400F -:400EC000AF40B004B108C02FC22FC40ECAFFCCFFCEFFD040E240E404E6E0EA24EE021B011F083388350836803B408380C630CCF0CE10E62031083280358037023B043C400C -:400F00008080890890409D08A840AE80AF41CCF0CE60E220EE6053045610830297049DA0A080A508A680A920AF02D460E480EC80EE408010810882808980970C9DA09E1000 -:400F40009F02A080A508A680E280E480E62014408C20C404E0025F028B0192019820A404AC04AE01B040D601E201EA011B01920198209C109F02A404A701AC10C6080910EC -:400F80000A200C14811082108804920198209C10A404A604AF02B604C20FE601EA0220102608270287048B048F029410970C9D209E109F02A080A608B608C8E0E6101920F8 -:400FC0005480570271087404850888049D20A080A302AE10C640D440D620DC80DE20E240EA40052008080C020E081C085380572058205E0187208F8092019820A404A604D3 -:40100000C001C20DC601D407D601E00270018001A802AD20B008DC01EA01010109010B010D010F0111011B011D0100FF01AB020211050000BF0000A09F001F000000000078 -:4010400000000000100000004000000000000000C0000000FF0000B8470047000001000080000000800080000000000000030300030000002700180127001801000400000D -:40108000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002B -:4010C00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F0 +:400000000145004008520040015B00400164004001650040450001403A01014048020140530301404504014057050140500601404E070140460801405B0901404C0A014076 +:400040005F0B0140570C0140550D0140460E01403C0F0140441401405B1501404716014054170140541801405C190140461A0140601B01400E4001400E410140094201406E +:400080000C430140054401400445014007460140114701400A48014010490140174C0140084D014008500140045101407E02080209441080180219016013611A7C40272152 +:4000C0003C01290A0207030507400804090F0A100F0A141815031601171019401A201C041D0C1E081F032018232024022618270F281F29032B1C2D802E18303F33C0353FA3 +:400100003B20580459045B045C995F0180208108840188108C0190109302950A96019704980C9A029B019C08A101A202A40AA604AA10AB04AD0CAE04AF02B430B50FB60F0E +:40014000D608D80BD904DB04DC99DD90DF01012204080550064009940B010D020E240F021098120217A519021D701F80210422282320261028102A422B182E902F803088C8 +:4001800031103610370538A039083B013F025E406640680269206A106B017F40821083808502864289808B01C0FAC2F7C4FFCABFCCEECE8FD610D810DE80E009E206E408D2 +:4001C000E60401080401050C07020A0112021401150A17041A011B011C01210F26012A042B042C012F0232073407350F3A285804590B5B045C995F0180068318860287203B +:4002000088068A018B078C068D048F08911F920694079540980699029B189C039D189E08A140A201A401A504A60CA710A918AA01AB01AC01AD40AE06B00FB140B33FB54083 +:40024000BB33BE01D608D804D904DB04DC90DD90DF0100100110028103200414080D09400B090C040F851101120A13081548172019011C041E081F0820A0231824082520DD +:4002800029092B062C022D082E102F9030A031063610370439803A063B103E043F02598063026F057F4080408202868487018F0C9120921094889644978099809D209E80F6 +:4002C0009F04A002A210A380A488A590A711A810A906AE02B120B220B308B608C06FC2FFC4EFCABFCC6FCECFD608D808DE80E002E201E606EA05EE0802020408050A0705B7 +:40030000080309020A0C0E010F02120814081502170419011A0F1B081C08200824082703280429012B022C0F2D03320F350737083B203E043F40580459045C905F018210A4 +:400340008308862087208A3F8B028D018E089001913F9602973F9A049B109C3F9F04A03FA33FA53FA63FAA3FAB3FAC3FAD3FB23FB33FBE04BF04D608D804D904DB04DD9016 +:40038000DF01000801100291055106100A040B590E030F541181120813041551170819081D04200621C02720281429802B102C402D402E082F08300831203540360937109D +:4003C000380439803B203C083D013F5049104A085F80668082408380848488018A048D908E049120932095D99640978C99229B0D9C099D049E059F20A042A120A204A309CE +:40040000A408A5D2A68AA772A820A902AC80AF01B050B120B310B704C0FFC2FFC4FFCAFECCF6CEFED610D810E24DEA09EC08EE0401010407050109010A070C060D010E01E6 +:400440000F02120113011407150119011A021C041F01200721012405250126022A082B012D012F02300F3303340F3A223F04580459045C095F0182C984098540880989C0D4 +:400480008A808C098D048F0890FC920293079408951F964398C999029B189CCD9D189E10A0C9A318A4C9A720A8CDA904AA30AB10AC04AD18AEE1AF01B0C0B13FB23CB34013 +:4004C000B403B580BE15BF04D804D904DC90DF0100810328051407010A650B020C020D100E200F02115812821440172418201B121D101F11200421042209272029A22A04C0 +:400500002D112E082F013098320135043752381439803C083E403F117C087F108002838086108A1A8E0891A09204955996039755981099A29A849B059C499D419E099F10E7 +:40054000A0CBA204A309A404A540A68AA762AB10AC08AD0AAF40B201C0EFC2FFC47FCAFFCCFFCEFEE60AEA0FEC08EE01000701080501060809010A420C070D011101121082 +:400580001501162118C61A211B011C071F0420A522422302248425012B012C072D0130E03108321F34E0370739803E013F015608580459045B045C995D905F0180028218D2 +:4005C000830586078A208D08901892019504961898049A109C1F9D02A004A208A418B104B23FB301B502B708BF51D608D804D904DB04DC99DD90DF01010803440502060402 +:400600000712081009400A400B100D080E020F84128013081420168219081A101E201F25208621032207244027032D802E042F483244340835603702380139803D183F41BF +:4006400048044A0858405C80600362406701698080048502872088018A018B018C808E018F84901A912C92409334948095419633978A983199419A849B0C9C029E519F4169 +:40068000A148A280A454A624A780AB40AD40AE40AF01B302C0FEC2FFC4BCCAF0CCFACEF9D618D818E004E4C0E622E820EA05000201030402050308020B080D030E0210020D +:4006C000130314021503180819031A011C101F03201C22032302240326042701280229032C022F04310F330F350F361F3E40580459045C905F0180F282048301840A860528 +:40070000870188138AE08B018D018ED390139101922095019A129B019F01A001A208A301A412A680A701A812AA40AB01AF01B0F0B207B408B501BA08BE10BF10D804D904F6 +:40074000DB04DC09DF0100800120021003A004820504070808010A210B080E44104411401220132014101518164019401C401D051E44201021102202232024082704288493 +:400780002B212C822E2430403211330835113748382039023B883DA63F10444047016C016D806F02840485018708880889108AA28B088D018F059020910C932494C0957116 +:4007C0009636970898A199309AA49B089C4A9D019E019F46A082A119A414A540A624A702A840AB80AC20AF08B005B340B440C0FFC25FC47FCAFFCCFFCEFFE080E245E67024 +:40080000EA60ECA000040203060108010A040C030E0411011202130E150E16011701190C1A011D031E011F08220126012A012E0134073508370739803E103F50402149FFC2 +:400840004AFF4BFF50045601580459045A045B045D095F0160806240644065648101820183088406853187C2887F8D0A8E018F0592049406972298569A219C409D809E0606 +:400880009F33A011A133A226A340A407A608A806AA78AB10ADF2AE02AF04B108B27FB308B5F0B707BB80BE04BF05D804D904DC90DF010028010102010448074808010A2285 +:4008C0000B080C880E040F4010401140122013101504160A170118201F10200421442206234825A0280829012B0232043340350136103748380639A03B103D023E0245A070 +:400900006C066D266F817488751076288110820287048C808D208E8090029488951C961497409A049C0E9D019E0A9F4FA108A210A488A540A604A801A921AF20B080B101A6 +:40094000B340B620C0FFC2FFC4FFCA0DCCFACE0BD030E010E410E602E820ECC00002023803070504071009040A400B080D020E070F181034111F12081404163017201838E7 +:400980001A011C3F1F18211822282301240826102918367F373F580459045C995F0180058102820A8601880B8A048B018C0C8E03920196019A019E01A103A201A601AA0119 +:4009C000AE01B202B401B60CB703BE50C201C60EC804C9FFCAFFCBFFCF83D804D90BDA04DB04DC99DD09DF0101800344048805110708080809600A020B400C880D010E0490 +:400A00001040130814401504160A170119801D801E201F202301240329112F40308032013304388039183B013E21458057405D805E185F026484650867017C0282048340AD +:400A40008408850886018908C0FBC2FFC4FCCA85CC0BCEAFD010D6F0D8F0DE80E420E684013F0208063F07020A3F0B100C3F0D01103F13081602173F1A101B201D3F1E3FE1 +:400A8000203F233F253F26042A202B3F2C012F04323F373F3E043F404003450E47C0482149FF4AFF4BFF50045601580459045A045B045D095F0162C082028A048E0190010F +:400AC00095019601970298019C01AA01AC01AD02AF01B102B407B501B922BA20BF11D804D904DB04DC09DF010101020A032004200542084009080A880D840E48100813455F +:400B00001510160118201D101E081F2021402488284829442C0231803259370439203A093B404010411043104A2051016203681C69016A2A6B126D806E406F027001714CBB +:400B40007208735580418302840485408A818B068D198E208F10901091189408958396409755984899029B049D419E089F12A002A180A20AA414A540A680A722A914AA01A0 +:400B8000B109B340B404B604C0DFC2FFC4CFCA1FCC4FCE0FD002E214E40FEA05EE020102050209020E030F06100211021201150117041902200421022401250226022B0300 +:400BC0002D033104320434023503360138A03E543F11580459045B045F018037814883208430860C87018A628B018C378F04901391019248954896119710983799019C374E +:400C00009D409F30A037A349A637A702A837A949AD49AE37B00FB340B507B670B738BB20BE41D804D904DB04DC90DF010080028003280701080809800A640B020C0210600B +:400C4000112012021680170419021B401D181F802010211022542404274028412A102B102D112E082F023254330236083712398A3B103C083F51640167026B016C026F040C +:400C80008110881089108C04911892049302941095019660975598409A909D419E099F52A060A20EA318A404A544A680A7E0A821A904AC41AD10B001B110B310B410C08F69 +:400CC000C21FC43FCAFFCCEFCEFFE080E210E404EA03EE290008030106020A080C080F021101120F1403160C18081C0F1F0120012408270428082C04300F310739023E0196 +:400D0000580459045B045C905F0182028303848F850386108A088B088D108E0192049304940E9503982E9AC19B019C7F9D03A021A103A2CEA601A702A80EA903AA70AE0E87 +:400D4000AF03B10FB27FB30FB480B510BE14BF10C026C602C804C9FFCAFFCBFFCD20CEF0D110D804D904DA04DB04DC90DD09DF01E108E240E340E480E640E7400010022159 +:400D8000038005AE08010A210B080D020E271090124A130314081502162518241F022008210A22082480274028202A422B042F1030203184330235013740382039823B08AE +:400DC0003D803F024004480451405C406A807A087B04886089018A108D518F10905A912E93289480955196A497C0980199019A019B0A9C489DA09E109F40A040A1C0A2329F +:400E0000A301A410A504A60DA74CA902AB02AD02AE12B180B220B301B710C0FFC2FFC4FFCA4FCC9FCE9FD004D204D610E080E4A4E8A0EC40013D03C0050C074009800D80F7 +:400E400011801580180219801C021F0321302580280129A92D563202340135FF3A083E103F105608580459045B045C095D905F01803E8113832085058640883089058C0426 +:400E80008D108E30900191059408952C9620970299059A0E9C089D089E109F02A10FA310A630A705A830A905AA02AD05B001B47EB73FBE01BF40D804D904DB04DC09DF0169 +:400EC000048A070809600C020D040E080F0210081504171019181A201B041E081F0121202540282029802A012B042C802D202E802F20302131883410350A374039603B09B6 +:400F00003C803E2758805E805F20600268086A406C0278027A4082408368841085128740881089A88A058B408C808D448EA48F80908A912C93099550962597C298219A019D +:400F40009B389C109D1A9E26A0E0A188A301A410A504A604A788A908AA08AB01B1A0B320B420B740C0F0C2F3C462CAFFCCFFCEFFD638D808E060E280E4F0E860ECE4EE029E +:400F80001B011F0831103308350836803B4081088340C630CCF0CE10E220E6203010320137143A083F80860197409D10A340AE80AF01CCF0CE60E640518057208D109740C9 +:400FC0009C109D109E089F14D46082408320841097409C109E08A580A720AB14E220E660EAA0150880408904C404E6015D0284809440D60118408140824094409C809D02DB +:40100000C60808800B200F818201871089028C109580964097019C809D02A740AB41C20FE001E20826808A808D80924097409A109E08A580B210C82056105A4079807F02B2 +:40104000814083028E0892409A109E08AF40D4C0DC80DE20E2A0EE40041008020D400E401F10538056805820620181028E808F809410958096409A01C001C20DC601D4077D +:40108000D802E002E40875028C0298029902A820AF10DE04E208010109010B010D010F0111011B011D0100FF01AB020211050000BF0000A09F001F00000000000000000097 +:4010C000100000004000000000000000C0000000FF0000B8470047000001000080000000800080000000000000030300030000002700180127001801000400000005000088 :4011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000AF :40114000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006F :40118000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002F @@ -4615,12 +4615,12 @@ :0200000490105A :04000000BC90ACAF55 :0200000490303A -:020000006B692A +:02000000BE0A36 :0200000490402A :4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000C0 :400040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080 :400080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040 :4000C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 :0200000490501A -:0C00000000012E16106900002E317BD28A +:0C00000000012E16106900002E31CE7396 :00000001FF \ No newline at end of file diff --git a/FluxEngine.cydsn/FluxEngine.cyprj b/FluxEngine.cydsn/FluxEngine.cyprj index f9c0fe3b..55fb8d05 100644 --- a/FluxEngine.cydsn/FluxEngine.cyprj +++ b/FluxEngine.cydsn/FluxEngine.cyprj @@ -2555,20 +2555,20 @@ - + - + - + @@ -2614,20 +2614,20 @@ - + - + - + @@ -2640,20 +2640,20 @@ - + - + - + @@ -2696,6 +2696,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/FluxEngine.cydsn/TopDesign/TopDesign.cysch b/FluxEngine.cydsn/TopDesign/TopDesign.cysch index d43c2b81450b02f62c7167ca16d55cea7884263a..1cd7c9ef6cbaa3b2e6c4ff233d2a7fe84d83de89 100644 GIT binary patch literal 251368 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 aOW)|};6S9o`J%(B{!|G(FIyZOi2nh4Ii5QJ literal 258195 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 diff --git a/FluxEngine.cydsn/main.c b/FluxEngine.cydsn/main.c index 03a7d4d5..852f0112 100644 --- a/FluxEngine.cydsn/main.c +++ b/FluxEngine.cydsn/main.c @@ -17,14 +17,14 @@ #define STEP_TOWARDS0 1 #define STEP_AWAYFROM0 0 -static volatile uint32_t clock = 0; +static volatile uint32_t clock = 0; /* ms */ static volatile bool index_irq = false; static bool motor_on = false; static uint32_t motor_on_time = 0; static bool homed = false; static int current_track = 0; -static uint8_t current_drive_flags = 0; +static struct set_drive_frame current_drive_flags; #define BUFFER_COUNT 16 #define BUFFER_SIZE 64 @@ -45,6 +45,21 @@ static void system_timer_cb(void) { CyGlobalIntDisable; clock++; + + static int counter300rpm = 0; + counter300rpm++; + if (counter300rpm == 200) + counter300rpm = 0; + + static int counter360rpm = 0; + counter360rpm++; + if (counter360rpm == 167) + counter360rpm = 0; + + FAKE_INDEX_GENERATOR_REG_Write( + ((counter300rpm == 0) ? 1 : 0) + | ((counter360rpm == 0) ? 2 : 0)); + CyGlobalIntEnable; } @@ -85,21 +100,22 @@ static void print(const char* msg, ...) UART_PutCRLF(); } -static void set_drive_flags(uint8_t flags) +static void set_drive_flags(struct set_drive_frame* flags) { - if (current_drive_flags != flags) + if (current_drive_flags.drive != flags->drive) homed = false; - current_drive_flags = flags; - DRIVESELECT_REG_Write((flags & 1) ? 2 : 1); /* select drive 1 or 0 */ - DENSITY_REG_Write(flags >> 1); /* density bit */ + current_drive_flags = *flags; + DRIVESELECT_REG_Write(flags->drive ? 2 : 1); /* select drive 1 or 0 */ + DENSITY_REG_Write(flags->high_density); /* density bit */ + INDEX_REG_Write(flags->index_mode); } static void start_motor(void) { if (!motor_on) { - set_drive_flags(current_drive_flags); + set_drive_flags(¤t_drive_flags); MOTOR_REG_Write(1); CyDelay(1000); homed = false; @@ -635,7 +651,7 @@ static void cmd_erase(struct erase_frame* f) static void cmd_set_drive(struct set_drive_frame* f) { - set_drive_flags(f->drive_flags); + set_drive_flags(f); DECLARE_REPLY_FRAME(struct any_frame, F_FRAME_SET_DRIVE_REPLY); send_reply((struct any_frame*) &r); @@ -824,7 +840,7 @@ int main(void) if (USBFS_GetEPState(FLUXENGINE_CMD_OUT_EP_NUM) == USBFS_OUT_BUFFER_FULL) { - set_drive_flags(current_drive_flags); + set_drive_flags(¤t_drive_flags); handle_command(); USBFS_EnableOutEP(FLUXENGINE_CMD_OUT_EP_NUM); print("idle"); diff --git a/doc/using.md b/doc/using.md index abea1acc..5beb44f7 100644 --- a/doc/using.md +++ b/doc/using.md @@ -186,6 +186,23 @@ case, and reading the disk label is much more reliable. [Lots more information on high density vs double density disks can be found here.](http://www.retrotechnology.com/herbs_stuff/guzis.html) +### Other important flags + +These flags apply to many operations and are useful for modifying the overall +behaviour. + + - `--revolutions=X`: when reading, spin the disk X times. Many formats + require `--revolutions=2` (which should happen automatically); or you can + increase the number to sample more data. + + - `--index-source=X`, `--write-index-source=X`: set the source of index + pulses when reading or writing respectively. This is for use with drives + which don't produce index pulse data. Use 0 to get index pulses from the + drive, 1 to fake 300RPM pulses, or 2 to fake 360RPM pulses. Note this has + no effect on the _drive_, so it doesn't help with flippy disks, but is + useful for using very old drives with FluxEngine itself. If you use this + option, then any index marks in the sampled flux are, of course, garbage. + ### The commands The FluxEngine client software is a largely undocumented set of small tools. diff --git a/lib/flags.cc b/lib/flags.cc index adb41547..95eb8460 100644 --- a/lib/flags.cc +++ b/lib/flags.cc @@ -157,6 +157,8 @@ Flag::Flag(const std::vector& names, const std::string helptext): _names(names), _helptext(helptext) { + if (!currentFlagGroup) + Error() << "no flag group defined for " << *names.begin(); _group.addFlag(this); } diff --git a/lib/fluxsink/fluxsink.h b/lib/fluxsink/fluxsink.h index ea45109f..b09c86fa 100644 --- a/lib/fluxsink/fluxsink.h +++ b/lib/fluxsink/fluxsink.h @@ -1,6 +1,10 @@ #ifndef FLUXSINK_H #define FLUXSINK_H +#include "flags.h" + +extern FlagGroup hardwareFluxSinkFlags; + class Fluxmap; class FluxSpec; diff --git a/lib/fluxsink/hardwarefluxsink.cc b/lib/fluxsink/hardwarefluxsink.cc index 4ec2f6ca..ff5d69b8 100644 --- a/lib/fluxsink/hardwarefluxsink.cc +++ b/lib/fluxsink/hardwarefluxsink.cc @@ -4,8 +4,15 @@ #include "usb.h" #include "fluxsink/fluxsink.h" +FlagGroup hardwareFluxSinkFlags; + static bool high_density = false; +static IntFlag indexMode( + { "--write-index-mode" }, + "index pulse source (0=drive, 1=300 RPM fake source, 2=360 RPM fake source", + 0); + void setHardwareFluxSinkDensity(bool high_density) { ::high_density = high_density; @@ -26,7 +33,7 @@ class HardwareFluxSink : public FluxSink public: void writeFlux(int track, int side, Fluxmap& fluxmap) { - usbSetDrive(_drive, high_density); + usbSetDrive(_drive, high_density, indexMode); usbSeek(track); Bytes crunched = fluxmap.rawBytes().crunch(); diff --git a/lib/fluxsource/hardwarefluxsource.cc b/lib/fluxsource/hardwarefluxsource.cc index 061525bc..5420e184 100644 --- a/lib/fluxsource/hardwarefluxsource.cc +++ b/lib/fluxsource/hardwarefluxsource.cc @@ -11,6 +11,11 @@ static IntFlag revolutions( "read this many revolutions of the disk", 1); +static IntFlag indexMode( + { "--index-mode" }, + "index pulse source (0=drive, 1=300 RPM fake source, 2=360 RPM fake source", + 0); + static bool high_density = false; void setHardwareFluxSourceDensity(bool high_density) @@ -33,7 +38,7 @@ class HardwareFluxSource : public FluxSource public: std::unique_ptr readFlux(int track, int side) { - usbSetDrive(_drive, high_density); + usbSetDrive(_drive, high_density, indexMode); usbSeek(track); Bytes crunched = usbRead(side, revolutions); auto fluxmap = std::make_unique(); diff --git a/lib/usb.cc b/lib/usb.cc index b1f0aac2..608f9bb3 100644 --- a/lib/usb.cc +++ b/lib/usb.cc @@ -253,13 +253,15 @@ void usbErase(int side) await_reply(F_FRAME_ERASE_REPLY); } -void usbSetDrive(int drive, bool high_density) +void usbSetDrive(int drive, bool high_density, int index_mode) { usb_init(); struct set_drive_frame f = { { .type = F_FRAME_SET_DRIVE_CMD, .size = sizeof(f) }, - .drive_flags = (uint8_t)((drive ? DRIVE_1 : DRIVE_0) | (high_density ? DRIVE_HD : DRIVE_DD)), + .drive = drive, + .high_density = high_density, + .index_mode = index_mode }; usb_cmd_send(&f, f.f.size); await_reply(F_FRAME_SET_DRIVE_REPLY); diff --git a/lib/usb.h b/lib/usb.h index a39001e9..16941bb2 100644 --- a/lib/usb.h +++ b/lib/usb.h @@ -12,7 +12,7 @@ extern void usbTestBulkTransport(); extern Bytes usbRead(int side, int revolutions); extern void usbWrite(int side, const Bytes& bytes); extern void usbErase(int side); -extern void usbSetDrive(int drive, bool high_density); +extern void usbSetDrive(int drive, bool high_density, int index_mode); extern void usbMeasureVoltages(struct voltages_frame* voltages); #endif diff --git a/lib/writer.cc b/lib/writer.cc index 269682a0..06fc2f26 100644 --- a/lib/writer.cc +++ b/lib/writer.cc @@ -15,7 +15,7 @@ #include "sector.h" #include "sectorset.h" -FlagGroup writerFlags { &hardwareFluxSourceFlags }; +FlagGroup writerFlags { &hardwareFluxSourceFlags, &hardwareFluxSinkFlags }; static DataSpecFlag dest( { "--dest", "-d" }, diff --git a/protocol.h b/protocol.h index 522a2e57..7e301799 100644 --- a/protocol.h +++ b/protocol.h @@ -3,7 +3,7 @@ enum { - FLUXENGINE_VERSION = 9, + FLUXENGINE_VERSION = 10, FLUXENGINE_VID = 0x1209, FLUXENGINE_PID = 0x6e00, @@ -75,6 +75,13 @@ enum F_ERROR_INTERNAL, }; +enum +{ + F_INDEX_REAL, + F_INDEX_300, + F_INDEX_360 +}; + enum { F_OP_PULSE = 0x80, @@ -145,7 +152,9 @@ struct erase_frame struct set_drive_frame { struct frame_header f; - uint8_t drive_flags; + uint8_t drive; + uint8_t high_density; + uint8_t index_mode; }; struct voltages diff --git a/src/fe-rpm.cc b/src/fe-rpm.cc index e49cd67e..35862af2 100644 --- a/src/fe-rpm.cc +++ b/src/fe-rpm.cc @@ -2,6 +2,7 @@ #include "flags.h" #include "usb.h" #include "dataspec.h" +#include "protocol.h" static FlagGroup flags; @@ -15,7 +16,7 @@ int mainRpm(int argc, const char* argv[]) flags.parseFlags(argc, argv); FluxSpec spec(source); - usbSetDrive(spec.drive, false); + usbSetDrive(spec.drive, false, F_INDEX_REAL); nanoseconds_t period = usbGetRotationalPeriod(); std::cout << "Rotational period is " << period/1000 << " ms (" << 60e6/period << " rpm)" << std::endl; diff --git a/src/fe-seek.cc b/src/fe-seek.cc index 3193e201..5cdadb5f 100644 --- a/src/fe-seek.cc +++ b/src/fe-seek.cc @@ -1,6 +1,7 @@ #include "globals.h" #include "flags.h" #include "usb.h" +#include "protocol.h" static FlagGroup flags; @@ -18,7 +19,7 @@ int mainSeek(int argc, const char* argv[]) { flags.parseFlags(argc, argv); - usbSetDrive(drive, false); + usbSetDrive(drive, false, F_INDEX_REAL); usbSeek(track); return 0; } From b0c675c589ae5d24451a01f5e227ea74b2250993 Mon Sep 17 00:00:00 2001 From: David Given Date: Sun, 12 Jan 2020 01:34:12 +0100 Subject: [PATCH 3/4] Improved error messages when using fe-rpm and it doesn't work. --- .../ARM_GCC_541/Release/FluxEngine.hex | 484 +++++++++--------- FluxEngine.cydsn/main.c | 26 +- src/fe-rpm.cc | 11 +- 3 files changed, 272 insertions(+), 249 deletions(-) diff --git a/FluxEngine.cydsn/CortexM3/ARM_GCC_541/Release/FluxEngine.hex b/FluxEngine.cydsn/CortexM3/ARM_GCC_541/Release/FluxEngine.hex index 127dcde5..660f5acf 100644 --- a/FluxEngine.cydsn/CortexM3/ARM_GCC_541/Release/FluxEngine.hex +++ b/FluxEngine.cydsn/CortexM3/ARM_GCC_541/Release/FluxEngine.hex @@ -1,245 +1,245 @@ -:4000000000800020110000006510000065100000064A08B5136843F020031360044B1A6803F53F5302331A6001F03AF8E8460040FA46004010B5054C237833B9044B13B109 -:400040000448AFF300800123237010BD6881FF1F00000000E0380000084B10B51BB108490848AFF300800848036803B910BD074B002BFBD0BDE81040184700BF0000000029 -:400080006C81FF1FE0380000C880FF1F000000000A4A0B4B116801310B40002BBEBF03F1FF3363F00F030133136011685368994202BF024B01221A72704700BF8881FF1FD4 +:4000000000800020110000007910000079100000064A08B5136843F020031360044B1A6803F53F5302331A6001F044F8E8460040FA46004010B5054C237833B9044B13B1D7 +:400040000448AFF300800123237010BD6881FF1F00000000F8380000084B10B51BB108490848AFF300800848036803B910BD074B002BFBD0BDE81040184700BF0000000011 +:400080006C81FF1FF8380000C880FF1F000000000A4A0B4B116801310B40002BBEBF03F1FF3363F00F030133136011685368994202BF024B01221A72704700BF8881FF1FBC :4000C0000F0000800A4A0B4B516801310B40002BBEBF03F1FF3363F00F030133536051681368994202BF024B01221A72704700BF8881FF1F0F000080024B012200205A7223 -:4001000002F074B98881FF1F10B5C4B2204601F089F90128FAD110BD08B572B60F4B0F49DA680132DA601A690132C82A08BF00221A615A6918690132A72A08BF00224A6176 -:400140005B69002B0CBF02230023002814BF184643F0010002F0B2FE62B608BD8881FF1F10B504460D4B8278997E91421CBF00225A7702689A610279094B1A718378002B4C -:4001800014BF0220012002F05DFEE07802F054FE2079BDE8104002F08BBE00BF8881FF1FA081FF1F70B5C4B220460E4601F042F9314605460246204601F0FEF9204601F022 -:4001C00031F90128FAD0284670BD000038B50B4CA57F5DB904F11800FFF7C2FF012002F09BF84FF47A7002F0ADFA6577E36823620123A377BDE8384002F0E2BA8881FF1FDD -:4002000038B50446C5B2284602F092F8062002F0AFFA44F00200C0B202F08AF8062002F0A7FA284602F084F8BDE83840062002F089BA10B5642402F075F820B10120BDE8F9 -:400240001040FFF7DDBF0120FFF7DAFF013CF2D1F4E7000038B5044D0024285D013402F037FA102CF9D138BDAC81FF1F08B502F051FC002002F05AFC02F06CFC02F076FC2A -:4002800080B208BD10B50446012002F069F8642002F058FAFFF7EAFF2080002002F060F8642002F04FFAFFF7E1FF608010BD08B502F05CFD002002F065FD02F077FD02F0FD -:4002C00081FD80B208BD10B50446FFF7B2FF322002F038FAFFF7EBFF20800020FFF790FF322002F02FFAFFF7E2FF608010BD0FB400B593B014AB53F8042B402102A80193B4 -:4003000002F0D6FE02A802F078F802F082F813B05DF804EB04B0704710B5044601780648FFF7E5FF0420FFF7EFFE62782146BDE81040042001F0CEB8F238000007B500237C +:4001000002F07EB98881FF1F10B5C4B2204601F093F90128FAD110BD08B572B60F4B0F49DA680132DA601A690132C82A08BF00221A615A6918690132A72A08BF00224A6162 +:400140005B69002B0CBF02230023002814BF184643F0010002F0BCFE62B608BD8881FF1F10B504460D4B8278997E91421CBF00225A7702689A610279094B1A718378002B42 +:4001800014BF0220012002F067FEE07802F05EFE2079BDE8104002F095BE00BF8881FF1FA081FF1F70B5C4B220460E4601F04CF9314605460246204601F008FA204601F0EF +:4001C0003BF90128FAD0284670BD000038B50B4CA57F5DB904F11800FFF7C2FF012002F0A5F84FF47A7002F0B7FA6577E36823620123A377BDE8384002F0ECBA8881FF1FB5 +:4002000038B50446C5B2284602F09CF8062002F0B9FA44F00200C0B202F094F8062002F0B1FA284602F08EF8BDE83840062002F093BA10B5642402F07FF820B10120BDE8B3 +:400240001040FFF7DDBF0120FFF7DAFF013CF2D1F4E7000038B5044D0024285D013402F041FA102CF9D138BDAC81FF1F08B502F05BFC002002F064FC02F076FC02F080FCF8 +:4002800080B208BD10B50446012002F073F8642002F062FAFFF7EAFF2080002002F06AF8642002F059FAFFF7E1FF608010BD08B502F066FD002002F06FFD02F081FD02F0B7 +:4002C0008BFD80B208BD10B50446FFF7B2FF322002F042FAFFF7EBFF20800020FFF790FF322002F039FAFFF7E2FF608010BD0FB400B593B014AB53F8042B402102A8019396 +:4003000002F0E2FE02A802F082F802F08CF813B05DF804EB04B0704710B5044601780648FFF7E5FF0420FFF7EFFE62782146BDE81040042001F0D8B80A39000007B5002339 :40034000ADF804308DF80600032301A88DF80530FFF7E2FF03B05DF804FB0000F8B51D4C0646FFF733FF637F03B156B91A48FFF7BEFFFFF75EFF012000236077636302F048 -:40038000F7F93246616B1548FFF7B1FF114D0027636B9E4216D001F0C5FF00B16F63636B9E4205DD0020FFF72BFF6B6B013305E005DA0120FFF724FF6B6B013B6B6302F00B -:4003C000FFF9E5E7322002F0BDF9BDE8F8400448FFF78DBF8881FF1FFF38000006390000233900002DE9F04F9BB062B602F052FABF49042002F076FABE4801F09FFFBE48BC -:4004000002F042FDBD4801F0D3FF02F023FC02F0F5FA002002F016FD01F0EEFF0221002000F0B6FFB64D0321084602F0A9F92E462C4602F0C5F9AB7F73B12A6AEB689B1A5D -:4004400041F28832934207D9002001F065FF002002F0F8FC0023AB7700F0D2FF18B9A948FFF745FF04E000F0D1FF0028F7D109E000F0C6FF0028FBD0A348FFF738FF0320FD -:4004800001F0EEF8032000F0CDFF0128D1D19F48FFF766FE9E490320FFF784FE94F838109C48FFF724FF94F83830023B122B00F2E483DFE813F01300E2031C00E20322007B -:4004C000E2033A00E2035E00E2039701E2032403E2034303E2034903E203540303238DF828308DF829300A238DF82A3033E394F83A00FFF733FF884B2AE3FFF767FE00232A -:400500006372637A002BFCD000237372F268637A002BFCD0F36807218DF828109B1A04218DF82910ADF82A3015E30220FFF7ECFD4FF000090DF1280A4FF480780027C8EB7F -:400540000903DA1907F80A200137402FF9D10220FFF7DAFD3A465146022000F0BBFFB8F10108EBD109F10109B9F1400FE4D16B4BC0E294F83A0001F0F3FE606BFFF7EEFE43 -:4005800002F002FD664BDFF89C811A78002742F004021A701A7842F001021A701A7802F0FE021A701A7802F0FE021A7002F0F0FC0220FFF7A9FD41F6FF734FF48042012151 -:4005C000022002F045FC84F8780002F067F808F807000137102FF8D1DFF84CA100270AF15D081FFA88F90137102F14BF3A4600221AF8010F2244062392F82420402102F077 -:4006000081F84A4646F24F419AF8000002F08CF809F14009102F1FFA89F9E4D100237372637A002BFCD00027142239460AA8777202F00AFD40230D934FF0FF3337607360E5 -:4006400037723368DFF8E490334493F8241096F87800CDF8309001F0D9FF96F8780001F097FF012196F8780001F06AFF236813B96B7A002BFAD0002794F83BA0676094F840 -:4006800008B0BBF1000F6CD102F09AF86B7A43B1BAF1010A85F809B003D162E02B7A002B5FD1626823689A42F8D04FF0000B63680AA808EB83135B440A93CBF140030B9309 -:4006C00000F0FCFA0B9B0137C3F140039B440D9B5FFA8BFB002B34D1022000F0A3FE012826D0637A002B3CD12B7A002BF4D038E019010000F900000091000000C5000000AD -:400700008881FF1F3139000044390000A081FF1FC081FF1F4E390000E4380000E63800009F640040AC81FF1FAB81FF1F0886FF1F4022B949022000F0CDFE4023CDF830909F -:400740000D93BBF13F0FB2D96268B44B01321340002BBEBF03F1FF3363F00F03013363608DE7042194F8780001F05CFF94F8780001F068FF0028F9D10AA800F0D3FA022013 -:40078000FFF7C2FC337A63B90D9A402A06D0C2F1400292B2A049022000F09CFE0220FFF7B3FC0D9A32F0400203D11146022000F091FEFFF74FFD237A33B19948FFF797FD3B -:4007C0000220FFF7BBFD06E0964B09A81B88ADF82430FFF7A1FD627A3946237A9248FFF786FD4DE29148FFF782FDE76B17F03F0701D0032042E2012001F0B8FD95F83A0074 -:4008000001F0AEFD02F0C0FB894BDFF828821A7802F0FB021A701A7842F001021A701A7802F0FE021A701A7802F0FE021A7002F0AFFB686BFFF792FD01214FF4804341F64F -:40084000FF72084601F098FD85F8780001F026FF08F807000137102FF8D1DFF8DC91002709F15D031FFA83F807930137102F14BF3A46002219F8010F2244052392F8242085 -:40088000402101F03FFF414646F2445299F8000001F04AFF08F14008102F1FFA88F8E4D10027BB46B946BA46F36B4FF0FF389B09142239460AA837600593C6F8048037729A -:4008C00002F0C2FB402301200D9300F0C9FECDF818802268514B01321340002BBCBF03F1FF3363F00F036168B8BF01338B4200F0A580BAF1000F07D0237A002B40F0B18024 -:400900006B7A002B40F0AD800B9B002B34D1B9F1000F0BD07F2240495A540133402BFAD10A910B9328E0BAF1000F06D1012000F079FD01288046F6D107E0237A002B40F0B0 -:4009400090806B7A002BF1D08BE03349FFF72AFC8146314B0B9040460A9300F081FEB9F13F0F07F1010706DD059BDB1BD3F1000949EB030900E0C1460B9BDBB12368079A60 -:400980000AA802EB83120D9BC3F1400313440C9300F0D7F90D9B6BB92A68204B01321340002BBEBF03F1FF3363F00F030133236040230D936368013340D12B680F2B3DD187 -:4009C0004FF00008C5F8048001F004FD85F808806B6895F878002B4493F8241001F016FE95F8780001F0D4FD012195F8780001F0A7FD85F80980637A002BFCD04FF00008C9 -:400A0000012086F8098001F0F1FC404601F0AEFCCDF8188015E000BF0886FF1F0F0000805D390000E8380000773900008A39000094650040AC81FF1FAB81FF1FBAF1000F92 -:400A400005D0237A6BB96B7A5BB94FF0010A6368069A93423FF43DAF6B680BF1010B069337E701F0BDFC012001F080FC002001F0BDFC042194F8780001F0D4FD94F87800BB -:400A800001F0E0FD0028F9D196F8780001F06EFD737A327A0293012303920193CDF800905B463A4605997A48FFF721FCB9F1000F16D1059BBB420ADD012000F0B3FC0128A3 -:400AC0008046F6D17349FFF76DFB3F2803DC012000F0DAFD04E0404600F0C2FD0137E8E7FFF7B8FB6C48FFF702FC237A0BB10220C4E06A4B1B8809A8ADF824302CE094F8F7 -:400B00003A0001F02DFC606BFFF728FC6448FFF7EEFB00236372637A002BFCD0012001F065FC00237372637A002BFCD0002001F05DFC5C48FFF7DBFB5B4B09E00020607776 -:400B4000FFF70CFC594B03E05948FFF709FB594B1B88ADF828300AA8FFF7DEFB90E0A37F3BB1002001F0D8FB002002F06BF90023AB7702F0EDF8002002F090F82A2701F0C0 -:400B8000BBFF002001F05EFF3A4600210AA802F05BFA15238DF828308DF8297001F010FE002001F0B9FB002002F04CF9C82001F0C9FD0DEB0700FFF765FB0DF13E00FFF7FF -:400BC00082FB01F0FDFD012002F03CF9322001F0B9FD0DF12E00FFF755FB0DF14200FFF772FB012001F098FB4FF4967001F0AAFD01F0E6FD0DF13600FFF744FB0DF14A002C -:400C0000FFF761FB002001F087FB4FF4967001F099FD01F0D5FD022002F014F9322001F091FD0DF13200FFF72DFB0DF14600FFF74AFB012001F070FB4FF4967001F082FD47 -:400C400001F0BEFD0DF13A00FFF71CFB0DF14E00FFF739FB002001F05FFB4FF4967001F071FD01F0ADFD002002F0ECF80023637701F0F0FF01F0C2FE6DE70120FFF75EFB17 -:400C8000032000F0EDFC0C48FFF731FBFFF7D1BB943900000886FF1FC4390000EA380000D3390000E1390000EC380000EE380000C081FF1FF0380000EE39000010B542681B -:400CC000002A2ED0C368002B2BD00368048A591C01601B78013A13F0800F817C42601DBF03F0010242EA84030231083114BF43F0020343EA0423817414BF03820382837C8C -:400D0000072BDCD9028A083B42FA03F38268511C81601370C368013BC360837C083B8374CDE710BD07B5827C42B102AA002102F8011D026001224260FFF7C0FF03B05DF856 -:400D400004FB30B543686BB3C2685AB3827C072A0CD8046890F91050611C01602178013B41EA05210832018243608274827C018AA2F108042141CBB2090608D5C3F3801391 -:400D800063F07F03023A03F08103827402E08474002BD7D08268511C81601370C368013BC360CFE730BD00002DE9F04172B6884B61221A70A3F5F06301221A801924854A1E -:400DC0009C7092E803008033062283F8002283E80300522203F580731A707F4B7F4A1B787F4EDBB2137040F618027E4B00251A8041F2512223F8022C33784FF4F07003F090 -:400E0000010343EA450502F0B7F8013C05F003052ED0032DF0D1744B4FF480721A8007221A70724A002548211570917002221D705D7103F8032C0422DA716D4A6D4C137847 -:400E40006D4E43F00103137012F8013C062743F0030302F8013C2378012243F0800323705B4B1A70654A137843F02003137000E0FEE707FB056300219A881868013502F0B5 -:400E8000E3F8072DF5D15E485E4E002550F8041F05F1105303F1560221F0FF075733C9B20B4452005B0002329A4206D012F802EC12F801CC0EF807C0F5E7B0420D44E5D167 -:400EC000514A002313609360136193614F4B504F1A68504BDFF888811A604F4B1A684F4B1A604F4A137843F002031370137C43F0020313742378A2F5863243F04003237066 -:400F0000413A137843F010031370464A464B07CA03C31A80454A2833106843F8250C127903F8212C424A07CA03C31A80414AE83B07CA03C31A80404A083307CA03C31A805D -:400F40003E4A3F4BA2F5616203CBC2F8100EC2F8141E1378042043F008031370394B02F5AA521B783D78DBB298F80060EDB203F007010C321B091170F6B2537045F00303A4 -:400F80003B7046F0030388F800302F4B48221A702E4A402313702E49937013729372082382F81F3220220A7048710A72294A0A20137001F0DDFB284B88F8006044223D7094 -:400FC000264D1A7094E80F0007C52B80BDE8F08100480040F01000480F010049A146004025420040224200400440004006400040A2430040A0430040F3390000E846004055 -:40100000FCFFFF47A800004800760040F8100048F846004020760040FC1000482876004003500140B0100048C0510040BC100048C4100048D0100048DC10004832510040B7 -:40104000E8100048CF0100491D51004001590040235B0040585B004076580040B0430040F946004008B501F0C3FF03680C2B00D1FEE7FEE7084908B50B68084A1844821AE6 -:40108000802A01DC086005E001F0B2FF0C2303604FF0FF33184608BDCC80FF1F5887FF1F80B51148114B0025C0B1A3F1100192C922460439161BB74204D051F8046F42F814 -:4010C000046BF7E7114653F8046C8C1AA64202D041F8045BF9E701381033E5E701F08EFFFFF780F9FEE700BF01000000C43B0000124A134B10B51A60124A134C1368134856 -:4011000043F4007313600023032B98BF54F823204FEA830188BF0E4A0133302B4250F3D10C4B1A780C4B1A700C4B084A1A60FFF73BFEBDE8104001F0EDB900BF0004FA05B0 -:401140000CED00E014ED00E0000000000080FF1F65100000BC760040C080FF1F08ED00E0F8B501F011FF4B4A01271378022643F001031370137C484C43F001031374474BB2 -:4011800002F5E3521F700B3203F8946C1378054603F07F031370002001F0EAFA2378404A03F0F90323701378384603F0DF03137023783B43237001F0DBFA282001F0D8FAF4 -:4011C000384B30461A7802F07F021A701A7802F0BF021A7023783343237001F0C9FA2378314A43F0040323700023137053702F4AFF2199540133092BFBD1284601F0C8FE15 -:401200000721172001F0FCFA2949172001F0EAFA0721182001F0F4FA2649182001F0E2FA0721152001F0ECFA2349152001F0DAFA0721052001F0E4FA2049052001F0D2FA36 -:401240000721062001F0DCFA1D49062001F0CAFA0721084601F0D4FA1A49072001F0C2FA0721082001F0CCFA1749082001F0BAFA0021162001F0C4FA1449162001F0B2FA42 -:4012800007210C2001F0BCFABDE8F84010490C2001F0A8BAA5430040944300409D60004012600040F8510040846000407D86FF1F2F1B0000691900002D1B0000611A0000F3 -:4012C0008D1A0000BD1A0000F51A0000351B0000A91B0000214B224A10B5187000231370204A40201370204A0F2413701F4A13701F4A13701F4A13701F4A13701F4B4FF4B8 -:4013000000021A604FF080721A604FF400121A6020221A601860802018604FF480701860174804704FF480001860164B1A70933B19B91A7802F0FE0202E01A7842F00102FA -:401340001A70114B03221A70802203F8202C012001F012FE0D4B04221A7010BD9886FF1F9E86FF1F9C86FF1F9D86FF1F9986FF1F8886FF1F9B86FF1F1087FF1F00E100E0DB -:401380009E6000409C600040286000401260004070B5074C054623780E461BB9FFF7E0FE0123237031462846BDE87040FFF792BF4886FF1F0A4A002313700A4A13700A4A96 -:4013C00013700A4A13700A4A13700A4A13700A4A13700A4B03221A70802203F8202C70479E86FF1F9C86FF1F9D86FF1F9986FF1F8886FF1F9B86FF1F1087FF1F2860004082 -:40140000014B1878704700BF9D86FF1F044B1A7802F0FF001AB118780022C0B21A7070479C86FF1F024A0C2303FB002040787047A486FF1F431E072B0CD8074A064B00016D -:401440000344805C5B7800F00F0043EA0020023880B2704700207047FC5F00401A4A38B50C2303FB00231B79090C13F0800F00F1FF35044619BF8AB24FF480438BB24FF4B0 -:401480008042032D18D8DFE805F002070C110021084601F01BF80DE00021084600F0FAFF08E00021084600F0D9FF03E00021084600F0B8FF054B1855EDB2072D03D801F03C -:4014C000EDF8034B185538BDA486FF1F7486FF1F7D86FF1F431E072B2DE9F0470446894615465CD82F4F0C2202FB0072D388DFF8B8A09BB2C3F500739D424FF00C0303FB06 -:40150000007388BFD588DB7884BFC5F50075ADB2254A43EA15230601B354B244EBB28AF80130224B1A5C9846FF2A01D1FFF796FF0C2303FB047200215170B9F1000F28D0CB -:401540003DB31B4F385D01F011F811232946FE2218F8040001F0D6F806F5C04278321FFA89F118F8040001F0DFF8124D18F80410385D01F04BF80121385D00F0E1FF735D33 -:4015800043F002037355735D03F0FD037355BDE8F08703FB04746379DBB28AF80230BDE8F08700BFA486FF1FFC5F00407D86FF1F7486FF1F706000402DE9F04704461546F8 -:4015C0008846002940D0431E072B3FD8FFF732FFA84203D22046FFF72DFF05461D4E335DFF2B03D141462046FFF738FFDFF868A027011AF8040000F0B9FF1223FE222946E5 -:40160000305D01F07FF807F5C0411FFA88F27831305D01F089F8DFF84490315D1AF8040000F0F4FF01211AF8040000F089FF17F8093043F0020307F8093017F8093003F0A8 -:40164000FD0307F8093002E00D4600E000252846BDE8F0877D86FF1F7486FF1F70600040431E072B0AD8064A0C2303FB002300225A705A79034BD2B200011A54704700BF9A -:40168000A486FF1FFE5F0040431E072B9FBF024B000108221A547047FE5F004030B51A4A1A491B4D0878138803449BB21380194A00231488D8B2A4B27CB1082B0CD05068CE -:4016C0000078C0B2E85450680133013050601088013880B21080ECE718460B780E4C082B0E4A00D040B10E4D2B7883F080032B700F232370022301E0022323701370094B21 -:401700001870087030BD00BF1487FF1F1087FF1F006000408C86FF1F8986FF1F9E86FF1F9A86FF1F1187FF1F074B02221A70074B80221A70064B0F221A70064A00231370DC -:40174000054A0120137070479E86FF1F9A86FF1F8986FF1F1087FF1F1187FF1F30B5164B16491B780A8803F00F03023BDBB21A4492B20A80124C134A0020118889B279B109 -:4017800073B15568215C013BC9B229705168DBB20131516011880130013989B21180ECE7094A1370094A137883F080031370084B0B221A7030BD00BF296000401487FF1F4A -:4017C000006000408C86FF1F1187FF1F9A86FF1F8986FF1F064A06231370064A01201370054B80221A70054B00221A70704700BF9E86FF1F8986FF1F9A86FF1F1187FF1FB7 -:40180000054B9A683AB19A68044910709A680988518000229A6070478C86FF1F1487FF1F08B5124B1A78D2B21A701B78DBB21A0602D50F4A137008BD0220FFF7E1FF0D4BBA -:401840001B7803F06003202B05D0402B06D043B900F012FC04E001F09FFB01E000F046FD10B9034B03221A7008BD00BF286000408986FF1F0060004008B5084A084B01203F -:40188000197813880B449BB21380064B00221A70FFF7B6FF044B03221A7008BD1487FF1F1087FF1F9E86FF1F8986FF1F08B50C4B1B78DBB2042B07D0062B09D0022B0DD136 -:4018C000BDE80840FFF7D8BFBDE80840FFF746BF0320FFF795FF034B03221A7008BD00BF9E86FF1F8986FF1F08B5054B002201201A70FFF785FF034B03221A7008BD00BF14 -:401900009E86FF1F8986FF1F08B50A4B1A7832B11A78094942F080020A7000221A70074B002201201A70FFF76BFF054B03221A7008BD00BF8886FF1F086000409E86FF1FDB -:401940008986FF1F074B1B78DBB2042B05D0062B05D0022B05D1FFF7A1BEFFF7C5BFFFF7D3BF70479E86FF1F38B51D4C2378DBB2DD0634D518060AD503F00F03012B2ED1D4 -:40198000FFF74EFF174B1B78190609D538BD5A0602D5FFF7D7FF03E09D0620D5FFF786FF23781B061BD4104B1A78104B1B7813430F4A13701278934211D10A4A084915460B -:4019C00013782078DBB2000605D41378DBB20B700B7803F00F0328788342F1D138BD38BD286000408986FF1F9A86FF1F1187FF1F29600040054A00231380054A916819B163 -:401A000091680B7092685380704700BF1487FF1F8C86FF1F0E4808B503889BB213B9FFF783FE13E00B4B02221A700B4B00221A70FFF7E0FF094AD1799379028843EA012386 -:401A400092B2934238BF0380FFF728FE012008BD8C86FF1F9E86FF1F9A86FF1F00600040084B01221A700F3B9B7C074B1A7B02F00302012A1EBFDA7B82F08002DA73012281 -:401A80005A7370470B600040A486FF1F094B02221A700F3B93F82230074B1A7E02F00302012A1EBFDA7E82F08002DA7601225A76704700BF0B600040A486FF1F0B4B042229 -:401AC0001A700F3B93F83230094B93F8242002F00302012A1EBF93F8272082F0800283F82720012283F82520704700BF0B600040A486FF1F0B4B08221A700F3B93F84230DE -:401B0000094B93F8302002F00302012A1EBF93F8332082F0800283F83320012283F83120704700BF0B600040A486FF1F7047FFF741BC0000F0B5184B184E19780C27C9B228 -:401B400001234FF0000C31B3CA0720D5144A4FEA031E7244947850782040C5070DD507FB03652C79240608D5147804F0FE0414706D790C4CEDB204F80E50840706D507FB41 -:401B8000036425792D0658BF84F801C090700133DBB24908D7E7F0BD9F600040A486FF1F70600040FE5F004000F0ACBC70B50446184B88B003AA03F1100615461868596833 -:401BC000083303C5B3422A46F7D11B782B70FCB12223237001AD03232846637000F08AFE002220461146AB5C08AC04EB131414F8144C03F00F03847008AC234413F8143CEA -:401C00000132082AC1700371417100F10400EAD108B070BD1D3A00002DE9F0431C4D01222E460C201F274FF0800E4FF0080C194B00FB02581401234418705F70164998F8A6 -:401C400005902144B9F1000F07D098F8044024064CBF887081F802C001E081F802E000FB0261CC880132E4B29C71CC88092AC4F30724DC71CC88E4B21C71C988C1F3072180 -:401C80005971D4D1054BFF221A70BDE8F08300BFA486FF1F70600040FC5F00400A600040064B074A1B7802EBC30253681A7C824286BF03EBC0035869002070479886FF1F80 -:401CC000803A00002DE9F84F424B1A78002A7ED01878414D0138C0B2FFF7E2FFA8463F4AC3681478007ADFF800C1E4B203EBC0000C2600274FF0010E834268D01A78A242F8 -:401D000063D11CF80420597891425ED19A7893F8039002F07F0206FB02FA05EB0A01CF7093F802B009F0030981F804B093F803B005F80AB0B3F804A0A1F808A093F902A068 -:401D4000BAF1000F0BDAB9F1010F0CBF4FF007094FF00D0981F8059081F801E009E0B9F1010F0CBF4FF005094FF0090981F805904F704FEA02191A4906FB0282494481F818 -:401D800002E0B2F808A0CAF3072A81F800A0B2F808A05FFA8AFA81F801A0B2F806A011495FFA8AFA494481F806A0B2F80690C9F3072981F80790B2F806905FFA89F981F89C -:401DC0000490D288C2F307224A71083394E7BDE8F88F00BF9D86FF1FA486FF1F9986FF1FFC5F0040706000408A86FF1F08B5064B18780138C0B2FFF753FF20B143681B797B -:401E000000EBC300406908BD9D86FF1F00212DE9F84F0B464E4E0C2707FB01F401313219092933554FF000059370494CD3701381937253705371EFD118B1464B1D70464B02 -:401E40001D70464B1A78002A7FD0187801250138C0B2FFF725FFA8464368DFF8F8E0DB790C2713F0400F3E4B4FF0000C1A7814BF42F0010202F0FE021A70027AD20007FB63 -:401E80000541C36803EB02094B4531D093F802A00AF07F06AE4229D10E89B3F804B0B6B25E4538BFA1F808B01E7893F801B01EF80660B3451AD181F804A0DE780E7093F99A -:401EC00002A0DE78BAF1000F06F0030607DA012E0CBF07260D264E7181F8018006E0012E0CBF052609264E7181F801C00833CBE70135092DC3D1C1680A328B1C0A440C2097 -:401F00000833934209D013F8081C13F80A5C01F07F0100FB01418D72F2E7FFF767FF114B0121186000230C2000FB0142D3801289013113449BB203F00102134409299BB223 -:401F4000F2D1BDE8F84FFFF767BEBDE8F88F00BFA486FF1F8A86FF1F1287FF1F9D86FF1F9B86FF1FA086FF1F114B1B7903F07F035A1E072A19D80F490C2202FB031291781B -:401F80001B0141F0010191700021D170517841F002015170127912F0800F074A1A4414BF8D2389239370FFF715BC0020704700BF00600040A486FF1FFC5F004030B4194B8C -:401FC0001A7902F07F02531E072B27D8164B0C2404FB02339978154D01F0FE0199700021D97029461201505D114400F07F0050555A7802F0FD025A701A795B78120605D521 -:40200000012B01D18C7006E00D2303E0012B0CBF082309238B7030BCFFF7DCBB002030BC704700BF00600040A486FF1FFC5F004010B50D4B0D4C21791878C9B20138C0B220 -:40204000FFF72EFE43681B798B4201D2012909D8074A0848535CDBB24354A3780120DBB2535410BD002010BD9D86FF1F006000408A86FF1F1287FF1F38B58A4A8A4C1378CE -:402080000021DBB221801806517840F18D800A2900F20581DFE811F05D00030103010301030103010B0003017E0003018200D3787C49012B09D17D4B1A787D4B03EBC203CA -:4020C0005B685B686360122310E0CB78022B12D18878FFF7E5FD002800F0E180436863606368DA7863689B7843EA02232380BDE83840FFF78FBCCB78032B26D16D4B0022D0 -:402100008878D5B2854209D3664A91786A4AEE2908BF1346634A917881B106E0187801320028F1D018780344EAE764499278097C914203D16248FFF739FD614B1A78002A8E -:4021400000F0AD801A78228018E0BDE8384000F023BF13F0030313D0022B40F0A0802380504B0C211B7903F07F02564B01FB02339A78554BD2B21A7000225A706360B6E76D -:4021800002222280514A11784F4AC9B2117053706260ACE7012323804D4BEFE70123238013794C4A1344E9E701390A2977D8DFE801F037764F76067676760A76200093784A -:4021C000454ADBB25AE0937803F0FF0153B9404B1A7891425FD01970404B01201870FFF715FE58E0481EC0B2FFF75AFD0028EED155E0FFF71DFF002851D02A4A3849137945 -:402200001279DBB2D2B20A70364A3249D25CCB5C9A4240D0314B01221A70FFF753FD3AE003F00303012B2BD009D3022B37D11D4B9B78002B33D1BDE83840FFF7BFBE194BF4 -:402240009B78012B2BD1214A137803F0FD0315E003F00303012B13D008D3022B1FD1114B9B78E3B9BDE83840FFF77EBE0D4B9B78012B14D1154A137843F0020313700AE0E0 -:40228000084B1A795AB998781B791749DBB2CA5C22EA0002CA54BDE83840FFF79BBA002038BD00BF006000408C86FF1F9886FF1F803A0000E43A00006C3A0000573B0000EA -:4022C0003087FF1FA486FF1F4986FF1F9B86FF1F9D86FF1F8A86FF1F8886FF1F9C86FF1F9986FF1F1287FF1F9F86FF1F074B1A78120609D55B78012B06D1054B054A5A607A -:4023000012781A80FFF786BB00207047006000408C86FF1F443A0000014B1870704700BF77650040014B1878704700BF68650040014B1870704700BF7A650040064A01237B -:40234000136002F688321268E0211064034A1170A2F540721360704780E100E000E400E0014B1870704700BF79650040014B1870704700BF7565004073B515461E460B4CF9 -:4023800005230022019200920A4601461846237000F064F932462946207800F01FF90221207800F009F9207802B070BDD080FF1F064A0423136002F688321268E0219064B5 -:4023C000034A1170A2F202321360704780E100E002E400E0014B04221A60704700E100E0014B04221A60704780E100E0014B1870704700BF7B650040704738B505460078FD -:40240000012428B100F060FD285D0134E4B2F8E738BD08B50D2000F057FDBDE808400A2000F052BDF7B516461F460B4C00230325019300930A4601462846257000F00EF922 -:402440003A463146207800F0C9F80221207800F0B3F8207803B0F0BDE080FF1FF7B516461F460B4C00230225019300930A4601462846257000F0F2F83A463146207800F028 -:40248000ADF82946207800F097F8207803B0F0BDE180FF1FF7B516461F460B4C00230125019300930A4601462846257000F0D6F83A463146207800F091F80221207800F03B -:4024C0007BF8207803B0F0BDE280FF1F73B515461E460B4C0023019300930A4601461846237000F0BBF832462946207800F076F80221207800F060F8207802B070BD00BF28 -:40250000E380FF1F024B1878C0F38010704700BF8F450040074A7F23802113705170064A013BDBB202F80839002BF9D1034A1370704700BFE480FF1FF87B0040007800401C -:4025400017280FD8084B0001C25C11B142F0200201E002F0DF02C254C25C42F00102C25400207047012070471070004017280BD8064B0001C25C02F0FE02C254C25C02F061 -:40258000DF02C25400207047012070471070004017280DD8074900010B4603441A7942F004021A71435C43F00103435400207047012070471070004017280BD8064A000103 -:4025C000835C490003F0F10301F00E011943815400207047012070471070004041F6FF73994208BF4FF400519A4208BF4FF4005217289FBFC00000F1804000F5EC408180E5 -:402600009ABFC280002001207047000017289FBF034B00011954002088BF0120704700BF1970004017289FBF054B00011A5C01F007019DBF1143195400200120704700BFB6 -:402640001470004017289FBF034B0001185C00F0070088BFFF20704714700040172810B51AD8C00001F07F0100F1804441EAC21204F5EC44D2B222709DF8082003F00F0382 -:4026800043EA0213DBB263709DF80C30002003F00F03A370E07010BD012010BD10B500F073FC0A4A5378182B0AD91478013B5370E30003F1804303F5F0431B78137000E0B5 -:4026C000FF2400F065FC204610BD00BFE480FF1F030610B5044611D400F056FC084AE300117803F1804303F5F04319705378147001335370BDE8104000F04ABC10BD00BFCD -:40270000E480FF1F30B504060CD411F4704509D1C40004F1804404F5F0442180A270E370284630BD012030BD03065FBFC00000F1804000F5F04081805ABFC2800020012041 -:402740007047000038B50446084DB4F5004F05D9286800F011FCA4F50044F6E7034B58686043BDE8384000F007BC00BFEC80FF1F024B1B7A584300F0FFBB00BFEC80FF1FBF -:402780000E4B00F003001A78490102F0FC02104318701A7801F0600142F080021A701A7802F07F021A701A7802F09F020A431A701A7842F010021A70704700BF834300409D -:4027C000014B01221A70704784430040044B00F00F021B6853F8220043F82210704700BF08ED00E0054A00F01F00126800F1100352F8230042F82310704700BF08ED00E029 -:4028000000F01F0000F16040490100F56440C9B2017070470F4B10B50F4900240F205C609C60DC601C615C61FFF7D0FF0B4A136843F0040313600A4B4FF47A72DB68B3FBC3 -:40284000F2F3084A1360084B4FF400421C60C3F8E82010BD4C86FF1FC128000010E000E0EC80FF1F14E000E018E000E0024A136843F002031360704710E000E008B5FFF73F -:40288000F5FF034A136843F00103136008BD00BF10E000E010B5054CA3691BB9FFF7BAFF0123A361BDE81040FFF7E8BF4C86FF1F024B1868C0F30040704700BF10E000E009 -:4028C00038B5FFF7F5FF012808D1054D002455F8243003B198470134052CF8D138BD00BF5086FF1F024B03EB80035868596070474C86FF1F134B144A1B78DBB203601278D7 -:4029000043EA0223114A0360127843EA0243104A0360127843EA026303600E4B0E4A1B78DBB24360127843EA02230C4A4360127843EA02430A4A4360127843EA0263436054 -:40294000704700BF0301004904010049EC460040020100490101004900010049050100490601004910B500F00FFB204A044613780A2043F002031370137C43F00203137423 -:4029800012F80A3C43F0010302F80A3C937943F00103937102F5AB52137843F003031370134B18221A7013F8012C42F0400203F8012C13F8012C02F0FC0203F8012CCE2298 -:4029C00003F8062CA3F597530222183B1A70094A137843F008031370FFF7CAFE064B10222046BDE810401A6000F0D2BAAB4300400E5900402F5B004080E200E008B500F068 -:402A0000C3FA0F4A137803F0FE031370A2F5AA521D3A137803F0FD031370137C03F0FD03137412F80A3C03F0FE0302F80A3C937903F0FE039371BDE8084000F0A9BA00BF03 -:402A400008590040044A137803F03F0343EA8010C0B21070704700BF08590040082804D00A280CBF8223C22300E0422308380E4AC0B20428137098BF0C4B4FF0000298BF12 -:402A800033F910100A4B88BF11461A8042F210734B4341F2883103F6C41393FBF1F305490B60054B1A8070470A5900402E3A00001A87FF1F1C87FF1F2087FF1F08B5102033 -:402AC00000F0A6F907210420FFF79AFE07490420FFF788FE064A0C20137843F006031370FFF7BCFF034B00221A8008BDB52B0000095900401887FF1F10B5054C23781BB973 -:402B0000FFF7DCFF01232370BDE81040FFF72ABF6886FF1F044B1A7802F0FB021A701A7842F001021A7070470859004010B5084B1C7814F0010403D10028F9D0002404E0A8 -:402B40002046FFF715FE024B1B78204610BD00BF09590040034A044B1B881088181A00B2704700BF2087FF1FA25B00400E4A13881BB223B111880A2309B2594301E00B4B57 -:402B800019680B4B1B88C01A42F2107300B203FB00F2022391FBF3F30028D8BF5B42134493FBF1F000B270471A87FF1F1C87FF1F1887FF1F7047000010B500F0E5F9214A54 -:402BC000044613780A2043F001031370137C43F00103137412F80A3C43F0020302F80A3C937943F00203937102F5AA521832137843F003031370144B18221A7013F8012CE0 -:402C000042F0400203F8012C13F8012C02F0FC0203F8012CCE2203F8062CA3F597530222123B1A70094A137843F008031370FFF79FFD074B08222046BDE810401A6000F09C -:402C4000A7B900BFAB43004006590040275B004080E200E008B500F097F90F4A137803F0FE031370A2F5AA52153A137803F0FE031370137C03F0FE03137412F80A3C03F09B -:402C8000FD0302F80A3C937903F0FD039371BDE8084000F07DB900BF00590040044A137803F03F0343EA8010C0B21070704700BF00590040082804D00A280CBF8223C2230F -:402CC00000E0422308380E4AC0B20428137098BF0C4B4FF0000298BF33F910100A4B88BF11461A8042F210734B4341F2883103F6C41393FBF1F305490B60054B1A807047EA -:402D000002590040383A00002687FF1F2C87FF1F2487FF1F08B5102000F084F807210320FFF76EFD07490320FFF75CFD064A0C20137843F006031370FFF7BCFF034B002273 -:402D40001A8008BD0D2E0000015900402887FF1F10B5054C23781BB9FFF7DCFF01232370BDE81040FFF728BF6986FF1F044B1A7802F0FB021A701A7842F001021A70704704 -:402D80000059004010B5084B1C7814F0010403D10028F9D0002404E02046FFF7E9FC024B1B78204610BD00BF01590040034A044B1B881088181A00B2704700BF2487FF1F51 -:402DC000A05B00400E4A13881BB223B111880A2309B2594301E00B4B19680B4B1B88C01A42F2107300B203FB00F2022391FBF3F30028D8BF5B42134493FBF1F000B27047E1 -:402E00002687FF1F2C87FF1F2887FF1F70470000034A00F0F800137803431370704700BF02410040034A00F0F800137803431370704700BF06410040014B1870704700BF20 -:402E400079640040014B1870704700BF7665004073B515461E460B4C04230022019200920A46014618462370FFF7F8FB324629462078FFF7B3FB02212078FFF79DFB2078AF -:402E800002B070BDFC80FF1F074A0223136002F688321268E0215064044A11706FF440710A441360704700BF80E100E001E400E0014B1870704700BF72640040014B18707B -:402EC000704700BF70640040FEB5494652465B460EB40746244909688A46244A12682448022100F071F8030020480068C018204900F06AF8143883460121C9430C4601251F -:402F0000002600F041F8814651460B7823400B705846013000F030F83800F04028400B78234003430B70584600F026F80136072EF2D9002001300138013001200B78234080 -:402F400003430B705846043000F016F8484600F01FF800BF00BF00BF0EBC894692469B46FEBD00BFAFF30080D480FF1FF880FF1F00C20100000000000230800803D000BFE9 -:402F800001380046FCD17047EFF3108072B6704780F31088704700BF094A137803F00303012B0AD0022B09D113790C2103F07F02044B01FB02339B7A00E013790020704753 -:402FC00000600040A486FF1F002902D0B0FBF1F0704708B14FF0FF3000F008B80029F8D00246B0FBF1F000FB11217047704700BF014B1868704700BF6081FF1F0E4B70B5F6 -:403000001E460E4C0025E41AA410A54204D056F8253098470135F8E700F0BAFD084B094C1E46E41AA4100025A54204D056F8253098470135F8E770BD9C3B00009C3B0000F2 -:403040009C3B0000A43B000003460244934202D003F8011BFAE7704730B5141E05469BB0184604DA8B232B604FF0FF301DE04FF40273ADF80C300CBF234604F1FF3302939F -:4030800005934FF6FF7300910491ADF80E3002461E9B6946284600F073F8431CBCBF8B232B6014B1009B00221A701BB030BD000007B5009313460A46014603480068FFF780 -:4030C000CBFF03B05DF804FB6081FF1F2DE9F0478E6882469E420C46914698463ED88A8912F4906F3AD02568096902236F1A656905EB450595FBF3F57B1C43449D4238BFB5 -:403100001D4653050FD5294600F04AFB064698B13A46216900F0D2FAA38923F4906343F08003A38113E02A4600F098FB064670B92169504600F0E8FA0C23CAF80030A38947 -:403140004FF0FF3043F04003A381BDE8F08726613E44266046466561ED1BA560464528BF464649463246206800F0B3FAA36800209B1BA36023681E442660BDE8F0870000A0 -:403180002DE9F04F9DB003938B8980461C060D4616460DD50B695BB9402100F001FB2860286118B90C23C8F80030CDE040236B610023099320238DF82930DFF89CB1302341 -:4031C0008DF82A3037463C4614F8013B1BB9B7EB060910D003E0252BF9D02746F3E74B46324629464046FFF771FF013000F0A780099B4B4409933B78002B00F0A080002375 -:403200004FF0FF3204930793059206938DF853301A930126052221784E4800F041FA671C049B38B14B4A3C46801A06FA00F018430490EFE7D90644BF20228DF853201A07B2 -:4032400044BF2B228DF8532022782A2A03D0079A00210A200BE0039A111D12680391002A10DA524243F00200079204900BE027463B780134303B092B03D800FB0232012180 -:40328000F5E701B107923B782E2B1ED17B782A2B0AD1039B02371A1D1B680392002BB8BF4FF0FF33059310E0002319460593781C0A2407463A780130303A092A03D804FB85 -:4032C00001210123F5E703B1059103223978224800F0E6F940B14023CBEB000003FA00F0049B013718430490397806221B487E1C8DF8281000F0D4F988B1194B33B9039B1F -:40330000073323F007030833039314E003AB00932A46144B04A94046AFF3008007E003AB00932A460F4B04A9404600F093F8B0F1FF3F824603D0099B5344099342E7AB89BE -:403340005B0601D4099801E04FF0FF301DB0BDE8F08F00BF6B3B0000713B0000753B000000000000CD3000002DE9F04791461F460A698B6806469342B8BF1346C9F80030A7 -:4033800091F843200C46DDF8208012B10133C9F800302368990642BFD9F800300233C9F80030256815F0060510D104F1190A07E00123524639463046C04701301AD001359A -:4033C000E368D9F800209B1A9D42F1DB94F843302268003318BF012392060FD5E118302081F843005A1C94F845102244023382F8431003E04FF0FF30BDE8F08704F1430293 -:4034000039463046C0470130F4D02268D9F80050E36802F00602042A08BF5D1B2269A3680CBF25EAE57500259342C4BF9B1AED184FF000091A344D4509D001232246394631 -:403440003046C0470130D5D009F10109F3E70020BDE8F0872DE9F04317460A7E85B06E2A984606460C460C9B01F1430E00F0AE8011D8632A22D009D8002A00F0BB80582A40 -:4034800040F0CA8081F84520834955E0642A1ED0692A1CD0C0E0732A00F0B08009D86F2A2ED0702A40F0B8800A6842F020020A603EE0752A24D0782A3AD0ADE01A6801F153 -:4034C0004205111D1960136884F84230A8E021681A6811F0800F02D0111D196008E011F0400F02F10401196002D0B2F9003000E01368002B3CDA2D225B4284F8432037E005 -:4035000021681A6811F0800F02D0111D196007E011F0400F02F10401196001D0138800E01368227E5C496F2A14BF0A2208221BE078225A4984F845202268186812F0800F4D -:4035400000F104051D6003D1550601D5038800E00368D00744BF42F0200222601BB9226822F0200222601022002084F8430001E049490A226568002DA56008DB206820F00B -:40358000040020602BB9002D7DD175460CE0002B79D07546B3FBF2F002FB1033CB5C05F8013D03460028F5D1082A0BD12368DA0708D5236962689A42DEBF302305F8013C36 -:4035C00005F1FF35C5EB0E0323612EE008681A6810F0800F496903D0101D1860136808E010F0400F02F104001860136801D0198000E0196000232361754616E01A68111D3C -:403600001960156800216268284600F049F808B1401B6060636804E004F1420584F8422001232361002384F84330CDF800803B4603AA21463046FFF797FE013002D14FF095 -:40364000FF3026E023692A4639463046C0470130F5D023689B0710D5002504F1190907E001234A4639463046C0470130E7D00135E368039A9B1A9D42F2DBE068039B98421B -:40368000B8BF184605E00B7804F1420584F842308AE705B0BDE8F0831D3A00007C3B000010B5C9B202449042034605D01C7801308C42F8D1184610BD002010BD10B5431E47 -:4036C0000A44914204D011F8014B03F8014FF8E710BD884210B501EB020301D8421E0BE09842FBD28118D21AD34204D013F8014D01F8014DF8E710BD994204D011F8014B80 -:4037000002F8014FF8E710BD38B50546002944D051F8043C0C1F002BB8BFE41800F0D4F81E4A1368114613B96360146030E0A3420DD92268A018834201BF18685B681218C4 -:40374000226063600C6023E0A24203D813465A68002AF9D118681918A1420BD12168014458188242196013D110685268014419605A600DE002D90C232B6009E021686018E2 -:40378000824201BF106852680918216062605C602846BDE8384000F098B838BD7086FF1F70B5CD1C25F0030508350C2D38BF0C25002D064601DBA94202D90C23336046E093 -:4037C00000F082F8234B1C681A462146A1B10B685B1B0ED40B2B03D90B60CC18CD501EE08C420BBF63684B681360636018BF0C4615E00C464968E9E7174C23681BB9304698 -:4038000000F052F820602946304600F04DF8431C18D0C41C24F00304A0420DD12560304600F053F804F10B00231D20F00700C31A0ED05A42E25070BD211A304600F034F8A2 -:403840000130EBD10C233360304600F03EF8002070BD00BF7086FF1F6C86FF1FF8B5074615460E4621B91146BDE8F840FFF798BF1AB9FFF749FF2846F8BD00F027F88542BF -:403880000ED929463846FFF78BFF044650B131462A46FFF713FF31463846FFF735FF01E03046F8BD2046F8BD38B5064C0023054608462360FDF7DEFB431C02D1236803B178 -:4038C0002B6038BD5487FF1F7047704751F8040C0028BEBF091851F8043CC0180438704700000000050209020B020D020F02110213027265706C79203078253032780068AC -:403900006F6D696E6700626567696E6E696E67207365656B2066726F6D20256420746F2025640066696E6973686564207365656B0057616974696E6720666F722055534275 -:403940002E2E2E0055534220726561647900636F6D6D616E642030782530327800756E64657272756E206166746572202564207061636B65747300636F756E743D25642090 -:40398000693D256420643D256400636D645F777269746500703D25642063723D25642063773D256420663D256420773D256420696E6465783D256420756E64657272756EE5 -:4039C0003D25640077726974652066696E69736865640073746172742065726173696E670073746F702065726173696E670069646C65000051004010004051004030000026 -:403A0000000140001000140140000800400140000A004C01400002005001402000303132333435363738394142434445460000010000000400000010000100000004000051 -:403A40000010000028000000000104000100000000000000000157494E5553420000303030303100000000000000000012034D00530046005400310030003000010000005D -:403A800001000000883A000001000000573B0000000000000000000001000000A03A000001000000293B000004000000C23A0000000000000000000000000000C03A000076 -:403AC000FF00000001024000FF00000082024000FF00000003034000FF00000084034000FF00020304030904160346006C007500780045006E00670069006E0065002A0363 -:403B000043006F0077006C00610072006B00200054006500630068006E006F006C006F0067006900650073000009022E0001010080320904000004FF000001070501024061 -:403B40000000070582024000000705030340000A0705840340000A12010002FF0001080912006E0100020180014300232D302B2000686C4C00656667454647003031323319 -:403B800034353637383961626364656600000000F8B500BFF8BC08BC9E46704759000000F1100000F8B500BFF8BC08BC9E46704735000000C83B0000C880FF1FA0000000D3 -:403BC000F005000000000000000000005887FF1FFF000000675000400C00000007000000FFFFFFFF7F8000003F0000000000007D00FA0000400000000090D003FF00000077 -:403C00000000000000000000000000000000000000000000000000000000000000000000693B000000000000000000000000000000000000000000000000000000000000E0 -:403C400000000000000000000000000000000000000000000000000000000000000000000081FF1F00000000000000000000000000000000000000000000000000000000A5 +:4003800001FA3246616B1548FFF7B1FF114D0027636B9E4216D001F0CFFF00B16F63636B9E4205DD0020FFF72BFF6B6B013305E005DA0120FFF724FF6B6B013B6B6302F0F6 +:4003C00009FAE5E7322002F0C7F9BDE8F8400448FFF78DBF8881FF1F173900001E3900003B3900002DE9F04F9BB062B602F05CFAAF49042002F080FAAE4801F0A9FFAE4870 +:4004000002F04CFDAD4801F0DDFF02F02DFC02F0FFFA002002F020FD01F0F8FF0221002000F0C0FFA64D0321084602F0B3F92E462C4602F0CFF9AB7F73B12A6AEB689B1A23 +:4004400041F28832934207D9002001F06FFF002002F002FD0023AB7700F0DCFF18B99948FFF745FF04E000F0DBFF0028F7D109E000F0D0FF0028FBD09348FFF738FF0320EA +:4004800001F0F8F8032000F0D7FF0128D1D18F48FFF766FE8E490320FFF784FE94F838108C48FFF724FF94F83830023B122B00F2EE83DFE813F01300EC031C00EC03220079 +:4004C000EC034400EC036800EC039F01EC032E03EC034D03EC035303EC035E0303238DF828308DF829300A238DF82A303DE394F83A00FFF733FF784B34E3FFF767FE00239C +:400500006372E068627A02F0FF0132B9EB681B1AB3F57A7FF6DD0B4608E03BB100227272F168627A12B9EB685B1AFAE707228DF8282004228DF82920ADF82A3015E3022012 +:40054000FFF7E2FD4FF000090DF1280A4FF480780027C8EB0903DA1907F80A200137402FF9D10220FFF7D0FD3A465146022000F0BBFFB8F10108EBD109F10109B9F1400F4D +:40058000E4D1564BC0E294F83A0001F0F3FE606BFFF7E4FE02F004FD514BDFF848811A78002742F004021A701A7842F001021A701A7802F0FE021A701A7802F0FE021A70E1 +:4005C00002F0F2FC0220FFF79FFD41F6FF734FF480420121022002F045FC84F8780002F067F808F807000137102FF8D1DFF8F8A000270AF15D081FFA88F90137102F14BFDC +:400600003A4600221AF8010F2244062392F82420402102F081F84A4646F24F419AF8000002F08CF809F14009102F1FFA89F9E4D100237372637A002BFCD0002714223946E3 +:400640000AA8777202F00CFD40230D934FF0FF333760736037723368DFF89090334493F8241096F87800CDF8309001F0D9FF96F8780001F097FF012196F8780001F06AFF32 +:40068000236813B96B7A002BFAD0002794F83BA0676094F808B0BBF1000F6AD102F09AF86B7A43B3BAF1010A85F809B023D160E019010000F900000091000000C500000092 +:4006C0008881FF1F493900005C390000A081FF1FC081FF1F66390000FC380000FE3800009F640040AC81FF1FAB81FF1F0886FF1F2B7A002B3DD1626823689A42F8D04FF07B +:40070000000B63680AA808EB83135B440A93CBF140030B9300F0DCFA0B9B0137C3F140039B440D9B5FFA8BFB9BB9022000F084FE012805D0637AE3B92B7A002BF5D018E0E2 +:400740004022BA49022000F0CFFE4023CDF830900D93BBF13F0FD4D96268B54B01321340002BBEBF03F1FF3363F00F03013363608FE7042194F8780001F05EFF94F878009B +:4007800001F06AFF0028F9D10AA800F0D5FA0220FFF7BAFC337A63B90D9A402A06D0C2F1400292B2A149022000F09EFE0220FFF7ABFC0D9A32F0400203D11146022000F026 +:4007C00093FEFFF747FD237A33B19A48FFF78FFD0220FFF7B3FD06E0974B09A81B88ADF82430FFF799FD627A3946237A9348FFF77EFD4FE29248FFF77AFDE76B17F03F0785 +:4008000001D0032044E2012001F0BAFD95F83A0001F0B0FD02F0C4FB8A4BDFF82C821A7802F0FB021A701A7842F001021A701A7802F0FE021A701A7802F0FE021A7002F0FB +:40084000B3FB686BFFF78AFD01214FF4804341F6FF72084601F09AFD85F8780001F028FF08F807000137102FF8D1DFF8E091002709F15D031FFA83F807930137102F14BF3F +:400880003A46002219F8010F2244052392F82420402101F041FF414646F2445299F8000001F04CFF08F14008102F1FFA88F8E4D10027BB46B946BA46F36B4FF0FF389B09F8 +:4008C000142239460AA837600593C6F80480377202F0C6FB402301200D9300F0CBFECDF8188001F077FF2268514B01321340002BBCBF03F1FF3363F00F036168B8BF0133D2 +:400900008B4200F0A580BAF1000F07D0237A002B40F0B1806B7A002B40F0AD800B9B002B34D1B9F1000F0BD07F2240495A540133402BFAD10A910B9328E0BAF1000F06D130 +:40094000012000F079FD01288046F6D107E0237A002B40F090806B7A002BF1D08BE03349FFF720FC8146314B0B9040460A9300F081FEB9F13F0F07F1010706DD059BDB1BA0 +:40098000D3F1000949EB030900E0C1460B9BDBB12368079A0AA802EB83120D9BC3F1400313440C9300F0D7F90D9B6BB92A68204B01321340002BBEBF03F1FF3363F00F03DA +:4009C0000133236040230D936368013340D12B680F2B3DD14FF00008C5F8048001F004FD85F808806B6895F878002B4493F8241001F016FE95F8780001F0D4FD012195F852 +:400A0000780001F0A7FD85F80980637A002BFCD04FF00008012086F8098001F0F1FC404601F0AEFCCDF8188015E000BF0886FF1F0F00008075390000003900008F39000066 +:400A4000A239000094650040AC81FF1FAB81FF1FBAF1000F05D0237A6BB96B7A5BB94FF0010A6368069A93423FF43BAF6B680BF1010B069335E701F0BDFC012001F080FC15 +:400A8000002001F0BDFC042194F8780001F0D4FD94F8780001F0E0FD0028F9D196F8780001F06EFD737A327A0293012303920193CDF800905B463A4605997A48FFF717FC01 +:400AC000B9F1000F16D1059BBB420ADD012000F0B3FC01288046F6D17349FFF763FB3F2803DC012000F0DAFD04E0404600F0C2FD0137E8E7FFF7AEFB6C48FFF7F8FB237A25 +:400B00000BB10220C4E06A4B1B8809A8ADF824302CE094F83A0001F02DFC606BFFF71EFC6448FFF7E4FB00236372637A002BFCD0012001F065FC00237372637A002BFCD0CE +:400B4000002001F05DFC5C48FFF7D1FB5B4B09E000206077FFF702FC594B03E05948FFF7FFFA594B1B88ADF828300AA8FFF7D4FB90E0A37F3BB1002001F0D8FB002002F0E5 +:400B80006BF90023AB7702F0EDF8002002F090F82A2701F0BBFF002001F05EFF3A4600210AA802F05DFA15238DF828308DF8297001F010FE002001F0B9FB002002F04CF9C7 +:400BC000C82001F0C9FD0DEB0700FFF75BFB0DF13E00FFF778FB01F0FDFD012002F03CF9322001F0B9FD0DF12E00FFF74BFB0DF14200FFF768FB012001F098FB4FF496704B +:400C000001F0AAFD01F0E6FD0DF13600FFF73AFB0DF14A00FFF757FB002001F087FB4FF4967001F099FD01F0D5FD022002F014F9322001F091FD0DF13200FFF723FB0DF1FF +:400C40004600FFF740FB012001F070FB4FF4967001F082FD01F0BEFD0DF13A00FFF712FB0DF14E00FFF72FFB002001F05FFB4FF4967001F071FD01F0ADFD002002F0ECF8D0 +:400C80000023637701F0F0FF01F0C2FE6DE70120FFF754FB032000F0EDFC0C48FFF727FBFFF7C7BBAC3900000886FF1FDC39000002390000EB390000F93900000439000098 +:400CC00006390000C081FF1F08390000063A000010B54268002A2ED0C368002B2BD00368048A591C01601B78013A13F0800F817C42601DBF03F0010242EA8403023108312E +:400D000014BF43F0020343EA0423817414BF03820382837C072BDCD9028A083B42FA03F38268511C81601370C368013BC360837C083B8374CDE710BD07B5827C42B102AA43 +:400D4000002102F8011D026001224260FFF7C0FF03B05DF804FB30B543686BB3C2685AB3827C072A0CD8046890F91050611C01602178013B41EA05210832018243608274B0 +:400D8000827C018AA2F108042141CBB2090608D5C3F3801363F07F03023A03F08103827402E08474002BD7D08268511C81601370C368013BC360CFE730BD00002DE9F0419E +:400DC00072B6884B61221A70A3F5F06301221A801924854A9C7092E803008033062283F8002283E80300522203F580731A707F4B7F4A1B787F4EDBB2137040F618027E4BC3 +:400E000000251A8041F2512223F8022C33784FF4F07003F0010343EA450502F0B9F8013C05F003052ED0032DF0D1744B4FF480721A8007221A70724A00254821157091706B +:400E400002221D705D7103F8032C0422DA716D4A6D4C13786D4E43F00103137012F8013C062743F0030302F8013C2378012243F0800323705B4B1A70654A137843F020033D +:400E8000137000E0FEE707FB056300219A881868013502F0E5F8072DF5D15E485E4E002550F8041F05F1105303F1560221F0FF075733C9B20B4452005B0002329A4206D039 +:400EC00012F802EC12F801CC0EF807C0F5E7B0420D44E5D1514A002313609360136193614F4B504F1A68504BDFF888811A604F4B1A684F4B1A604F4A137843F00203137036 +:400F0000137C43F0020313742378A2F5863243F040032370413A137843F010031370464A464B07CA03C31A80454A2833106843F8250C127903F8212C424A07CA03C31A80F1 +:400F4000414AE83B07CA03C31A80404A083307CA03C31A803E4A3F4BA2F5616203CBC2F8100EC2F8141E1378042043F008031370394B02F5AA521B783D78DBB298F80060F2 +:400F8000EDB203F007010C321B091170F6B2537045F003033B7046F0030388F800302F4B48221A702E4A402313702E49937013729372082382F81F3220220A7048710A72C0 +:400FC000294A0A20137001F0DDFB284B88F8006044223D70264D1A7094E80F0007C52B80BDE8F08100480040F01000480F010049A14600402542004022420040044000406E +:4010000006400040A2430040A04300400B3A0000E8460040FCFFFF47A800004800760040F8100048F846004020760040FC1000482876004003500140B0100048C051004085 +:40104000BC100048C4100048D0100048DC10004832510040E8100048CF0100491D51004001590040235B0040585B004076580040B0430040F946004008B501F0C5FF036832 +:401080000C2B00D1FEE7FEE7084908B50B68084A1844821A802A01DC086005E001F0B4FF0C2303604FF0FF33184608BDCC80FF1F5887FF1F80B51148114B0025C0B1A3F17A +:4010C000100192C922460439161BB74204D051F8046F42F8046BF7E7114653F8046C8C1AA64202D041F8045BF9E701381033E5E701F090FFFFF776F9FEE700BF01000000E2 +:40110000DC3B0000124A134B10B51A60124A134C1368134843F4007313600023032B98BF54F823204FEA830188BF0E4A0133302B4250F3D10C4B1A780C4B1A700C4B084A06 +:401140001A60FFF73BFEBDE8104001F0EDB900BF0004FA050CED00E014ED00E0000000000080FF1F79100000BC760040C080FF1F08ED00E0F8B501F013FF4B4A01271378FA +:40118000022643F001031370137C484C43F001031374474B02F5E3521F700B3203F8946C1378054603F07F031370002001F0EAFA2378404A03F0F90323701378384603F081 +:4011C000DF03137023783B43237001F0DBFA282001F0D8FA384B30461A7802F07F021A701A7802F0BF021A7023783343237001F0C9FA2378314A43F00403237000231370D5 +:4012000053702F4AFF2199540133092BFBD1284601F0CAFE0721172001F0FCFA2949172001F0EAFA0721182001F0F4FA2649182001F0E2FA0721152001F0ECFA23491520BE +:4012400001F0DAFA0721052001F0E4FA2049052001F0D2FA0721062001F0DCFA1D49062001F0CAFA0721084601F0D4FA1A49072001F0C2FA0721082001F0CCFA17490820F1 +:4012800001F0BAFA0021162001F0C4FA1449162001F0B2FA07210C2001F0BCFABDE8F84010490C2001F0A8BAA5430040944300409D60004012600040F851004084600040C8 +:4012C0007D86FF1F431B00007D190000411B0000751A0000A11A0000D11A0000091B0000491B0000BD1B0000214B224A10B5187000231370204A40201370204A0F241370B0 +:401300001F4A13701F4A13701F4A13701F4A13701F4B4FF400021A604FF080721A604FF400121A6020221A601860802018604FF480701860174804704FF480001860164BF4 +:401340001A70933B19B91A7802F0FE0202E01A7842F001021A70114B03221A70802203F8202C012001F014FE0D4B04221A7010BD9886FF1F9E86FF1F9C86FF1F9D86FF1FA0 +:401380009986FF1F8886FF1F9B86FF1F1087FF1F00E100E09E6000409C600040286000401260004070B5074C054623780E461BB9FFF7E0FE0123237031462846BDE87040D0 +:4013C000FFF792BF4886FF1F0A4A002313700A4A13700A4A13700A4A13700A4A13700A4A13700A4A13700A4B03221A70802203F8202C70479E86FF1F9C86FF1F9D86FF1F4F +:401400009986FF1F8886FF1F9B86FF1F1087FF1F28600040014B1878704700BF9D86FF1F044B1A7802F0FF001AB118780022C0B21A7070479C86FF1F024A0C2303FB002019 +:4014400040787047A486FF1F431E072B0CD8074A064B00010344805C5B7800F00F0043EA0020023880B2704700207047FC5F00401A4A38B50C2303FB00231B79090C13F077 +:40148000800F00F1FF35044619BF8AB24FF480438BB24FF48042032D18D8DFE805F002070C110021084601F01BF80DE00021084600F0FAFF08E00021084600F0D9FF03E016 +:4014C0000021084600F0B8FF054B1855EDB2072D03D801F0EDF8034B185538BDA486FF1F7486FF1F7D86FF1F431E072B2DE9F0470446894615465CD82F4F0C2202FB0072C1 +:40150000D388DFF8B8A09BB2C3F500739D424FF00C0303FB007388BFD588DB7884BFC5F50075ADB2254A43EA15230601B354B244EBB28AF80130224B1A5C9846FF2A01D15F +:40154000FFF796FF0C2303FB047200215170B9F1000F28D03DB31B4F385D01F011F811232946FE2218F8040001F0D6F806F5C04278321FFA89F118F8040001F0DFF8124DB6 +:4015800018F80410385D01F04BF80121385D00F0E1FF735D43F002037355735D03F0FD037355BDE8F08703FB04746379DBB28AF80230BDE8F08700BFA486FF1FFC5F0040EF +:4015C0007D86FF1F7486FF1F706000402DE9F047044615468846002940D0431E072B3FD8FFF732FFA84203D22046FFF72DFF05461D4E335DFF2B03D141462046FFF738FF33 +:40160000DFF868A027011AF8040000F0B9FF1223FE222946305D01F07FF807F5C0411FFA88F27831305D01F089F8DFF84490315D1AF8040000F0F4FF01211AF8040000F09A +:4016400089FF17F8093043F0020307F8093017F8093003F0FD0307F8093002E00D4600E000252846BDE8F0877D86FF1F7486FF1F70600040431E072B0AD8064A0C2303FBB8 +:40168000002300225A705A79034BD2B200011A54704700BFA486FF1FFE5F0040431E072B9FBF024B000108221A547047FE5F004030B51A4A1A491B4D0878138803449BB2BE +:4016C0001380194A00231488D8B2A4B27CB1082B0CD050680078C0B2E85450680133013050601088013880B21080ECE718460B780E4C082B0E4A00D040B10E4D2B7883F010 +:4017000080032B700F232370022301E0022323701370094B1870087030BD00BF1487FF1F1087FF1F006000408C86FF1F8986FF1F9E86FF1F9A86FF1F1187FF1F074B02226E +:401740001A70074B80221A70064B0F221A70064A00231370054A0120137070479E86FF1F9A86FF1F8986FF1F1087FF1F1187FF1F30B5164B16491B780A8803F00F03023B91 +:40178000DBB21A4492B20A80124C134A0020118889B279B173B15568215C013BC9B229705168DBB20131516011880130013989B21180ECE7094A1370094A137883F0800373 +:4017C0001370084B0B221A7030BD00BF296000401487FF1F006000408C86FF1F1187FF1F9A86FF1F8986FF1F064A06231370064A01201370054B80221A70054B00221A70D5 +:40180000704700BF9E86FF1F8986FF1F9A86FF1F1187FF1F054B9A683AB19A68044910709A680988518000229A6070478C86FF1F1487FF1F08B5124B1A78D2B21A701B7856 +:40184000DBB21A0602D50F4A137008BD0220FFF7E1FF0D4B1B7803F06003202B05D0402B06D043B900F012FC04E001F0A1FB01E000F046FD10B9034B03221A7008BD00BFE0 +:40188000286000408986FF1F0060004008B5084A084B0120197813880B449BB21380064B00221A70FFF7B6FF044B03221A7008BD1487FF1F1087FF1F9E86FF1F8986FF1F6D +:4018C00008B50C4B1B78DBB2042B07D0062B09D0022B0DD1BDE80840FFF7D8BFBDE80840FFF746BF0320FFF795FF034B03221A7008BD00BF9E86FF1F8986FF1F08B5054B8D +:40190000002201201A70FFF785FF034B03221A7008BD00BF9E86FF1F8986FF1F08B50A4B1A7832B11A78094942F080020A7000221A70074B002201201A70FFF76BFF054B5C +:4019400003221A7008BD00BF8886FF1F086000409E86FF1F8986FF1F074B1B78DBB2042B05D0062B05D0022B05D1FFF7A1BEFFF7C5BFFFF7D3BF70479E86FF1F38B51D4CCC +:401980002378DBB2DD0634D518060AD503F00F03012B2ED1FFF74EFF174B1B78190609D538BD5A0602D5FFF7D7FF03E09D0620D5FFF786FF23781B061BD4104B1A78104BD0 +:4019C0001B7813430F4A13701278934211D10A4A0849154613782078DBB2000605D41378DBB20B700B7803F00F0328788342F1D138BD38BD286000408986FF1F9A86FF1FF3 +:401A00001187FF1F29600040054A00231380054A916819B191680B7092685380704700BF1487FF1F8C86FF1F0E4808B503889BB213B9FFF783FE13E00B4B02221A700B4BF5 +:401A400000221A70FFF7E0FF094AD1799379028843EA012392B2934238BF0380FFF728FE012008BD8C86FF1F9E86FF1F9A86FF1F00600040084B01221A700F3B9B7C074BC9 +:401A80001A7B02F00302012A1EBFDA7B82F08002DA7301225A7370470B600040A486FF1F094B02221A700F3B93F82230074B1A7E02F00302012A1EBFDA7E82F08002DA76B4 +:401AC00001225A76704700BF0B600040A486FF1F0B4B04221A700F3B93F83230094B93F8242002F00302012A1EBF93F8272082F0800283F82720012283F82520704700BF4A +:401B00000B600040A486FF1F0B4B08221A700F3B93F84230094B93F8302002F00302012A1EBF93F8332082F0800283F83320012283F83120704700BF0B600040A486FF1F3B +:401B40007047FFF741BC0000F0B5184B184E19780C27C9B201234FF0000C31B3CA0720D5144A4FEA031E7244947850782040C5070DD507FB03652C79240608D5147804F00F +:401B8000FE0414706D790C4CEDB204F80E50840706D507FB036425792D0658BF84F801C090700133DBB24908D7E7F0BD9F600040A486FF1F70600040FE5F004000F0ACBC6B +:401BC00070B50446184B88B003AA03F11006154618685968083303C5B3422A46F7D11B782B70FCB12223237001AD03232846637000F08AFE002220461146AB5C08AC04EB8F +:401C0000131414F8144C03F00F03847008AC234413F8143C0132082AC1700371417100F10400EAD108B070BD353A00002DE9F0431C4D01222E460C201F274FF0800E4FF01B +:401C4000080C194B00FB02581401234418705F70164998F805902144B9F1000F07D098F8044024064CBF887081F802C001E081F802E000FB0261CC880132E4B29C71CC88F7 +:401C8000092AC4F30724DC71CC88E4B21C71C988C1F307215971D4D1054BFF221A70BDE8F08300BFA486FF1F70600040FC5F00400A600040064B074A1B7802EBC30253689E +:401CC0001A7C824286BF03EBC0035869002070479886FF1F983A00002DE9F84F424B1A78002A7ED01878414D0138C0B2FFF7E2FFA8463F4AC3681478007ADFF800C1E4B284 +:401D000003EBC0000C2600274FF0010E834268D01A78A24263D11CF80420597891425ED19A7893F8039002F07F0206FB02FA05EB0A01CF7093F802B009F0030981F804B053 +:401D400093F803B005F80AB0B3F804A0A1F808A093F902A0BAF1000F0BDAB9F1010F0CBF4FF007094FF00D0981F8059081F801E009E0B9F1010F0CBF4FF005094FF0090974 +:401D800081F805904F704FEA02191A4906FB0282494481F802E0B2F808A0CAF3072A81F800A0B2F808A05FFA8AFA81F801A0B2F806A011495FFA8AFA494481F806A0B2F8B3 +:401DC0000690C9F3072981F80790B2F806905FFA89F981F80490D288C2F307224A71083394E7BDE8F88F00BF9D86FF1FA486FF1F9986FF1FFC5F0040706000408A86FF1FF6 +:401E000008B5064B18780138C0B2FFF753FF20B143681B7900EBC300406908BD9D86FF1F00212DE9F84F0B464E4E0C2707FB01F401313219092933554FF000059370494CFC +:401E4000D3701381937253705371EFD118B1464B1D70464B1D70464B1A78002A7FD0187801250138C0B2FFF725FFA8464368DFF8F8E0DB790C2713F0400F3E4B4FF0000C2E +:401E80001A7814BF42F0010202F0FE021A70027AD20007FB0541C36803EB02094B4531D093F802A00AF07F06AE4229D10E89B3F804B0B6B25E4538BFA1F808B01E7893F8C1 +:401EC00001B01EF80660B3451AD181F804A0DE780E7093F902A0DE78BAF1000F06F0030607DA012E0CBF07260D264E7181F8018006E0012E0CBF052609264E7181F801C07D +:401F00000833CBE70135092DC3D1C1680A328B1C0A440C200833934209D013F8081C13F80A5C01F07F0100FB01418D72F2E7FFF767FF114B0121186000230C2000FB014240 +:401F4000D3801289013113449BB203F00102134409299BB2F2D1BDE8F84FFFF767BEBDE8F88F00BFA486FF1F8A86FF1F1287FF1F9D86FF1F9B86FF1FA086FF1F114B1B793B +:401F800003F07F035A1E072A19D80F490C2202FB031291781B0141F0010191700021D170517841F002015170127912F0800F074A1A4414BF8D2389239370FFF715BC00201D +:401FC000704700BF00600040A486FF1FFC5F004030B4194B1A7902F07F02531E072B27D8164B0C2404FB02339978154D01F0FE0199700021D97029461201505D114400F0E9 +:402000007F0050555A7802F0FD025A701A795B78120605D5012B01D18C7006E00D2303E0012B0CBF082309238B7030BCFFF7DCBB002030BC704700BF00600040A486FF1F78 +:40204000FC5F004010B50D4B0D4C21791878C9B20138C0B2FFF72EFE43681B798B4201D2012909D8074A0848535CDBB24354A3780120DBB2535410BD002010BD9D86FF1F14 +:40208000006000408A86FF1F1287FF1F38B58A4A8A4C13780021DBB221801806517840F18D800A2900F20581DFE811F05D00030103010301030103010B0003017E00030190 +:4020C0008200D3787C49012B09D17D4B1A787D4B03EBC2035B685B686360122310E0CB78022B12D18878FFF7E5FD002800F0E180436863606368DA7863689B7843EA0223A6 +:402100002380BDE83840FFF78FBCCB78032B26D16D4B00228878D5B2854209D3664A91786A4AEE2908BF1346634A917881B106E0187801320028F1D018780344EAE76449BF +:402140009278097C914203D16248FFF739FD614B1A78002A00F0AD801A78228018E0BDE8384000F025BF13F0030313D0022B40F0A0802380504B0C211B7903F07F02564B34 +:4021800001FB02339A78554BD2B21A7000225A706360B6E702222280514A11784F4AC9B2117053706260ACE7012323804D4BEFE70123238013794C4A1344E9E701390A2999 +:4021C00077D8DFE801F037764F76067676760A7620009378454ADBB25AE0937803F0FF0153B9404B1A7891425FD01970404B01201870FFF715FE58E0481EC0B2FFF75AFDB1 +:402200000028EED155E0FFF71DFF002851D02A4A384913791279DBB2D2B20A70364A3249D25CCB5C9A4240D0314B01221A70FFF753FD3AE003F00303012B2BD009D3022BA2 +:4022400037D11D4B9B78002B33D1BDE83840FFF7BFBE194B9B78012B2BD1214A137803F0FD0315E003F00303012B13D008D3022B1FD1114B9B78E3B9BDE83840FFF77EBE45 +:402280000D4B9B78012B14D1154A137843F0020313700AE0084B1A795AB998781B791749DBB2CA5C22EA0002CA54BDE83840FFF79BBA002038BD00BF006000408C86FF1F2B +:4022C0009886FF1F983A0000FC3A0000843A00006F3B00003087FF1FA486FF1F4986FF1F9B86FF1F9D86FF1F8A86FF1F8886FF1F9C86FF1F9986FF1F1287FF1F9F86FF1FD7 +:40230000074B1A78120609D55B78012B06D1054B054A5A6012781A80FFF786BB00207047006000408C86FF1F5C3A0000014B1870704700BF77650040014B1878704700BF44 +:4023400068650040014B1870704700BF7A650040064A0123136002F688321268E0211064034A1170A2F540721360704780E100E000E400E0014B1870704700BF79650040B1 +:40238000014B1870704700BF7565004073B515461E460B4C05230022019200920A4601461846237000F064F932462946207800F01FF90221207800F009F9207802B070BD8C +:4023C000D080FF1F064A0423136002F688321268E0219064034A1170A2F202321360704780E100E002E400E0014B04221A60704700E100E0014B04221A60704780E100E055 +:40240000014B1870704700BF7B650040704738B505460078012428B100F062FD285D0134E4B2F8E738BD08B50D2000F059FDBDE808400A2000F054BDF7B516461F460B4C4E +:4024400000230325019300930A4601462846257000F00EF93A463146207800F0C9F80221207800F0B3F8207803B0F0BDE080FF1FF7B516461F460B4C002302250193009318 +:402480000A4601462846257000F0F2F83A463146207800F0ADF82946207800F097F8207803B0F0BDE180FF1FF7B516461F460B4C00230125019300930A46014628462570B9 +:4024C00000F0D6F83A463146207800F091F80221207800F07BF8207803B0F0BDE280FF1F73B515461E460B4C0023019300930A4601461846237000F0BBF83246294620784E +:4025000000F076F80221207800F060F8207802B070BD00BFE380FF1F024B1878C0F38010704700BF8F450040074A7F23802113705170064A013BDBB202F80839002BF9D1B8 +:40254000034A1370704700BFE480FF1FF87B00400078004017280FD8084B0001C25C11B142F0200201E002F0DF02C254C25C42F00102C254002070470120704710700040D8 +:4025800017280BD8064B0001C25C02F0FE02C254C25C02F0DF02C25400207047012070471070004017280DD8074900010B4603441A7942F004021A71435C43F0010343543B +:4025C00000207047012070471070004017280BD8064A0001835C490003F0F10301F00E011943815400207047012070471070004041F6FF73994208BF4FF400519A4208BFC8 +:402600004FF4005217289FBFC00000F1804000F5EC4081809ABFC280002001207047000017289FBF034B00011954002088BF0120704700BF1970004017289FBF054B000134 +:402640001A5C01F007019DBF1143195400200120704700BF1470004017289FBF034B0001185C00F0070088BFFF20704714700040172810B51AD8C00001F07F0100F180443F +:4026800041EAC21204F5EC44D2B222709DF8082003F00F0343EA0213DBB263709DF80C30002003F00F03A370E07010BD012010BD10B500F075FC0A4A5378182B0AD914786D +:4026C000013B5370E30003F1804303F5F0431B78137000E0FF2400F067FC204610BD00BFE480FF1F030610B5044611D400F058FC084AE300117803F1804303F5F0431970CC +:402700005378147001335370BDE8104000F04CBC10BD00BFE480FF1F30B504060CD411F4704509D1C40004F1804404F5F0442180A270E370284630BD012030BD03065FBFB5 +:40274000C00000F1804000F5F04081805ABFC280002001207047000038B50446084DB4F5004F05D9286800F013FCA4F50044F6E7034B58686043BDE8384000F009BC00BF82 +:40278000EC80FF1F024B1B7A584300F001BC00BFEC80FF1F0E4B00F003001A78490102F0FC02104318701A7801F0600142F080021A701A7802F07F021A701A7802F09F0253 +:4027C0000A431A701A7842F010021A70704700BF83430040014B01221A70704784430040044B00F00F021B6853F8220043F82210704700BF08ED00E0054A00F01F0012689F +:4028000000F1100352F8230042F82310704700BF08ED00E000F01F0000F16040490100F56440C9B2017070470F4B10B50F4900240F205C609C60DC601C615C61FFF7D0FF8C +:402840000B4A136843F0040313600A4B4FF47A72DB68B3FBF2F3084A1360084B4FF400421C60C3F8E82010BD4C86FF1FD528000010E000E0EC80FF1F14E000E018E000E0E5 +:40288000024A136843F002031360704710E000E008B5FFF7F5FF034A136843F00103136008BD00BF10E000E010B5054CA3691BB9FFF7BAFF0123A361BDE81040FFF7E8BF53 +:4028C0004C86FF1F024B1868C0F30040704700BF10E000E038B5FFF7F5FF012808D1054D002455F8243003B198470134052CF8D138BD00BF5086FF1F024B03EB800358680A +:40290000596070474C86FF1F134B144A1B78DBB20360127843EA0223114A0360127843EA0243104A0360127843EA026303600E4B0E4A1B78DBB24360127843EA02230C4A80 +:402940004360127843EA02430A4A4360127843EA02634360704700BF0301004904010049EC460040020100490101004900010049050100490601004910B500F011FB204AD4 +:40298000044613780A2043F002031370137C43F00203137412F80A3C43F0010302F80A3C937943F00103937102F5AB52137843F003031370134B18221A7013F8012C42F03A +:4029C000400203F8012C13F8012C02F0FC0203F8012CCE2203F8062CA3F597530222183B1A70094A137843F008031370FFF7CAFE064B10222046BDE810401A6000F0D4BA4A +:402A0000AB4300400E5900402F5B004080E200E008B500F0C5FA0F4A137803F0FE031370A2F5AA521D3A137803F0FD031370137C03F0FD03137412F80A3C03F0FE0302F8BC +:402A40000A3C937903F0FE039371BDE8084000F0ABBA00BF08590040044A137803F03F0343EA8010C0B21070704700BF08590040082804D00A280CBF8223C22300E04223C6 +:402A800008380E4AC0B20428137098BF0C4B4FF0000298BF33F910100A4B88BF11461A8042F210734B4341F2883103F6C41393FBF1F305490B60054B1A8070470A590040CE +:402AC000463A00001A87FF1F1C87FF1F2087FF1F08B5102000F0A6F907210420FFF79AFE07490420FFF788FE064A0C20137843F006031370FFF7BCFF034B00221A8008BD85 +:402B0000C92B0000095900401887FF1F10B5054C23781BB9FFF7DCFF01232370BDE81040FFF72ABF6886FF1F044B1A7802F0FB021A701A7842F001021A7070470859004052 +:402B400010B5084B1C7814F0010403D10028F9D0002404E02046FFF715FE024B1B78204610BD00BF09590040034A044B1B881088181A00B2704700BF2087FF1FA25B0040BD +:402B80000E4A13881BB223B111880A2309B2594301E00B4B19680B4B1B88C01A42F2107300B203FB00F2022391FBF3F30028D8BF5B42134493FBF1F000B270471A87FF1F9F +:402BC0001C87FF1F1887FF1F7047000010B500F0E7F9214A044613780A2043F001031370137C43F00103137412F80A3C43F0020302F80A3C937943F00203937102F5AA5297 +:402C00001832137843F003031370144B18221A7013F8012C42F0400203F8012C13F8012C02F0FC0203F8012CCE2203F8062CA3F597530222123B1A70094A137843F0080306 +:402C40001370FFF79FFD074B08222046BDE810401A6000F0A9B900BFAB43004006590040275B004080E200E008B500F099F90F4A137803F0FE031370A2F5AA52153A137805 +:402C800003F0FE031370137C03F0FE03137412F80A3C03F0FD0302F80A3C937903F0FD039371BDE8084000F07FB900BF00590040044A137803F03F0343EA8010C0B21070E3 +:402CC000704700BF00590040082804D00A280CBF8223C22300E0422308380E4AC0B20428137098BF0C4B4FF0000298BF33F910100A4B88BF11461A8042F210734B4341F2A5 +:402D0000883103F6C41393FBF1F305490B60054B1A80704702590040503A00002687FF1F2C87FF1F2487FF1F08B5102000F084F807210320FFF76EFD07490320FFF75CFDED +:402D4000064A0C20137843F006031370FFF7BCFF034B00221A8008BD212E0000015900402887FF1F10B5054C23781BB9FFF7DCFF01232370BDE81040FFF728BF6986FF1F6B +:402D8000044B1A7802F0FB021A701A7842F001021A7070470059004010B5084B1C7814F0010403D10028F9D0002404E02046FFF7E9FC024B1B78204610BD00BF01590040E9 +:402DC000034A044B1B881088181A00B2704700BF2487FF1FA05B00400E4A13881BB223B111880A2309B2594301E00B4B19680B4B1B88C01A42F2107300B203FB00F20223E4 +:402E000091FBF3F30028D8BF5B42134493FBF1F000B270472687FF1F2C87FF1F2887FF1F70470000034A00F0F800137803431370704700BF02410040034A00F0F800137833 +:402E400003431370704700BF06410040014B1870704700BF79640040014B1870704700BF7665004073B515461E460B4C04230022019200920A46014618462370FFF7F8FBA3 +:402E8000324629462078FFF7B3FB02212078FFF79DFB207802B070BDFC80FF1F074A0223136002F688321268E0215064044A11706FF440710A441360704700BF80E100E070 +:402EC00001E400E0014B1870704700BF72640040014B1870704700BF7064004000000000FEB5494652465B460EB40746244909688A46244A12682448022100F071F8030044 +:402F000020480068C018204900F06AF8143883460121C9430C460125002600F041F8814651460B7823400B705846013000F030F83800F04028400B78234003430B70584669 +:402F400000F026F80136072EF2D9002001300138013001200B78234003430B705846043000F016F8484600F01FF800BF00BF00BF0EBC894692469B46FEBD00BFAFF30080F9 +:402F8000D480FF1FF880FF1F00C20100000000000230800803D000BF01380046FCD17047EFF3108072B6704780F31088704700BF094A137803F00303012B0AD0022B09D141 +:402FC00013790C2103F07F02044B01FB02339B7A00E013790020704700600040A486FF1F002902D0B0FBF1F0704708B14FF0FF3000F008B80029F8D00246B0FBF1F000FB0F +:4030000011217047704700BF014B1868704700BF6081FF1F0E4B70B51E460E4C0025E41AA410A54204D056F8253098470135F8E700F0BAFD084B094C1E46E41AA410002501 +:40304000A54204D056F8253098470135F8E770BDB43B0000B43B0000B43B0000BC3B000003460244934202D003F8011BFAE7704730B5141E05469BB0184604DA8B232B6006 +:403080004FF0FF301DE04FF40273ADF80C300CBF234604F1FF33029305934FF6FF7300910491ADF80E3002461E9B6946284600F073F8431CBCBF8B232B6014B1009B0022B6 +:4030C0001A701BB030BD000007B5009313460A46014603480068FFF7CBFF03B05DF804FB6081FF1F2DE9F0478E6882469E420C46914698463ED88A8912F4906F3AD025681F +:40310000096902236F1A656905EB450595FBF3F57B1C43449D4238BF1D4653050FD5294600F04AFB064698B13A46216900F0D2FAA38923F4906343F08003A38113E02A46EA +:4031400000F098FB064670B92169504600F0E8FA0C23CAF80030A3894FF0FF3043F04003A381BDE8F08726613E44266046466561ED1BA560464528BF464649463246206879 +:4031800000F0B3FAA36800209B1BA36023681E442660BDE8F08700002DE9F04F9DB003938B8980461C060D4616460DD50B695BB9402100F001FB2860286118B90C23C8F894 +:4031C0000030CDE040236B610023099320238DF82930DFF89CB130238DF82A3037463C4614F8013B1BB9B7EB060910D003E0252BF9D02746F3E74B46324629464046FFF7AA +:4032000071FF013000F0A780099B4B4409933B78002B00F0A08000234FF0FF3204930793059206938DF853301A930126052221784E4800F041FA671C049B38B14B4A3C46A6 +:40324000801A06FA00F018430490EFE7D90644BF20228DF853201A0744BF2B228DF8532022782A2A03D0079A00210A200BE0039A111D12680391002A10DA524243F002002C +:40328000079204900BE027463B780134303B092B03D800FB02320121F5E701B107923B782E2B1ED17B782A2B0AD1039B02371A1D1B680392002BB8BF4FF0FF33059310E0D0 +:4032C000002319460593781C0A2407463A780130303A092A03D804FB01210123F5E703B1059103223978224800F0E6F940B14023CBEB000003FA00F0049B01371843049013 +:40330000397806221B487E1C8DF8281000F0D4F988B1194B33B9039B073323F007030833039314E003AB00932A46144B04A94046AFF3008007E003AB00932A460F4B04A9F6 +:40334000404600F093F8B0F1FF3F824603D0099B5344099342E7AB895B0601D4099801E04FF0FF301DB0BDE8F08F00BF833B0000893B00008D3B000000000000E530000069 +:403380002DE9F04791461F460A698B6806469342B8BF1346C9F8003091F843200C46DDF8208012B10133C9F800302368990642BFD9F800300233C9F80030256815F00605B2 +:4033C00010D104F1190A07E00123524639463046C04701301AD00135E368D9F800209B1A9D42F1DB94F843302268003318BF012392060FD5E118302081F843005A1C94F80E +:4034000045102244023382F8431003E04FF0FF30BDE8F08704F1430239463046C0470130F4D02268D9F80050E36802F00602042A08BF5D1B2269A3680CBF25EAE5750025EB +:403440009342C4BF9B1AED184FF000091A344D4509D00123224639463046C0470130D5D009F10109F3E70020BDE8F0872DE9F04317460A7E85B06E2A984606460C460C9BA3 +:4034800001F1430E00F0AE8011D8632A22D009D8002A00F0BB80582A40F0CA8081F84520834955E0642A1ED0692A1CD0C0E0732A00F0B08009D86F2A2ED0702A40F0B88060 +:4034C0000A6842F020020A603EE0752A24D0782A3AD0ADE01A6801F14205111D1960136884F84230A8E021681A6811F0800F02D0111D196008E011F0400F02F104011960A2 +:4035000002D0B2F9003000E01368002B3CDA2D225B4284F8432037E021681A6811F0800F02D0111D196007E011F0400F02F10401196001D0138800E01368227E5C496F2AFF +:4035400014BF0A2208221BE078225A4984F845202268186812F0800F00F104051D6003D1550601D5038800E00368D00744BF42F0200222601BB9226822F020022260102226 +:40358000002084F8430001E049490A226568002DA56008DB206820F0040020602BB9002D7DD175460CE0002B79D07546B3FBF2F002FB1033CB5C05F8013D03460028F5D1F1 +:4035C000082A0BD12368DA0708D5236962689A42DEBF302305F8013C05F1FF35C5EB0E0323612EE008681A6810F0800F496903D0101D1860136808E010F0400F02F1040047 +:403600001860136801D0198000E0196000232361754616E01A68111D1960156800216268284600F049F808B1401B6060636804E004F1420584F8422001232361002384F868 +:403640004330CDF800803B4603AA21463046FFF797FE013002D14FF0FF3026E023692A4639463046C0470130F5D023689B0710D5002504F1190907E001234A4639463046B8 +:40368000C0470130E7D00135E368039A9B1A9D42F2DBE068039B9842B8BF184605E00B7804F1420584F842308AE705B0BDE8F083353A0000943B000010B5C9B202449042A1 +:4036C000034605D01C7801308C42F8D1184610BD002010BD10B5431E0A44914204D011F8014B03F8014FF8E710BD884210B501EB020301D8421E0BE09842FBD28118D21A01 +:40370000D34204D013F8014D01F8014DF8E710BD994204D011F8014B02F8014FF8E710BD38B50546002944D051F8043C0C1F002BB8BFE41800F0D4F81E4A1368114613B9D1 +:403740006360146030E0A3420DD92268A018834201BF18685B681218226063600C6023E0A24203D813465A68002AF9D118681918A1420BD12168014458188242196013D1B2 +:4037800010685268014419605A600DE002D90C232B6009E021686018824201BF106852680918216062605C602846BDE8384000F098B838BD7086FF1F70B5CD1C25F003051E +:4037C00008350C2D38BF0C25002D064601DBA94202D90C23336046E000F082F8234B1C681A462146A1B10B685B1B0ED40B2B03D90B60CC18CD501EE08C420BBF63684B6856 +:403800001360636018BF0C4615E00C464968E9E7174C23681BB9304600F052F820602946304600F04DF8431C18D0C41C24F00304A0420DD12560304600F053F804F10B001D +:40384000231D20F00700C31A0ED05A42E25070BD211A304600F034F80130EBD10C233360304600F03EF8002070BD00BF7086FF1F6C86FF1FF8B5074615460E4621B9114619 +:40388000BDE8F840FFF798BF1AB9FFF749FF2846F8BD00F027F885420ED929463846FFF78BFF044650B131462A46FFF713FF31463846FFF735FF01E03046F8BD2046F8BD00 +:4038C00038B5064C0023054608462360FDF7DCFB431C02D1236803B12B6038BD5487FF1F7047704751F8040C0028BEBF091851F8043CC018043870470000000005020902A2 +:403900000B020D020F02110213027265706C792030782530327800686F6D696E6700626567696E6E696E67207365656B2066726F6D20256420746F2025640066696E697302 +:40394000686564207365656B0057616974696E6720666F72205553422E2E2E0055534220726561647900636F6D6D616E642030782530327800756E64657272756E20616661 +:40398000746572202564207061636B65747300636F756E743D256420693D256420643D256400636D645F777269746500703D25642063723D25642063773D256420663D2529 +:4039C0006420773D256420696E6465783D256420756E64657272756E3D25640077726974652066696E69736865640073746172742065726173696E670073746F7020657226 +:403A00006173696E670069646C650000510040100040510040300000000140001000140140000800400140000A004C0140000200500140200030313233343536373839416D +:403A40004243444546000001000000040000001000010000000400000010000028000000000104000100000000000000000157494E555342000030303030310000000000D0 +:403A80000000000012034D005300460054003100300030000100000001000000A03A0000010000006F3B0000000000000000000001000000B83A000001000000413B00002F +:403AC00004000000DA3A0000000000000000000000000000D83A0000FF00000001024000FF00000082024000FF00000003034000FF00000084034000FF0002030403090474 +:403B0000160346006C007500780045006E00670069006E0065002A0343006F0077006C00610072006B00200054006500630068006E006F006C006F00670069006500730073 +:403B40000009022E0001010080320904000004FF00000107050102400000070582024000000705030340000A0705840340000A12010002FF0001080912006E0100020180C5 +:403B8000014300232D302B2000686C4C00656667454647003031323334353637383961626364656600000000F8B500BFF8BC08BC9E4670475900000005110000F8B500BF16 +:403BC000F8BC08BC9E46704735000000E03B0000C880FF1FA0000000F005000000000000000000005887FF1FFF000000675000400C00000007000000FFFFFFFF7F80000066 +:403C00003F0000000000007D00FA0000400000000090D003FF0000000000000000000000000000000000000000000000000000000000000000000000813B00000000000070 +:403C400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000081FF1F00000000A5 :403C80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004 :403CC00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000C4 :403D00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083 @@ -4615,12 +4615,12 @@ :0200000490105A :04000000BC90ACAF55 :0200000490303A -:02000000BE0A36 +:02000000C51623 :0200000490402A :4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000C0 :400040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080 :400080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040 :4000C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 :0200000490501A -:0C00000000012E16106900002E31CE7396 +:0C00000000012E16106900002E31D57F83 :00000001FF \ No newline at end of file diff --git a/FluxEngine.cydsn/main.c b/FluxEngine.cydsn/main.c index 852f0112..c1c63828 100644 --- a/FluxEngine.cydsn/main.c +++ b/FluxEngine.cydsn/main.c @@ -252,17 +252,29 @@ static void cmd_measure_speed(struct any_frame* f) { start_motor(); - index_irq = false; - while (!index_irq) - ; index_irq = false; int start_clock = clock; + int elapsed = 0; while (!index_irq) - ; - int end_clock = clock; + { + elapsed = clock - start_clock; + if (elapsed > 1000) + { + elapsed = 0; + break; + } + } + + if (elapsed != 0) + { + index_irq = false; + start_clock = clock; + while (!index_irq) + elapsed = clock - start_clock; + } DECLARE_REPLY_FRAME(struct speed_frame, F_FRAME_MEASURE_SPEED_REPLY); - r.period_ms = end_clock - start_clock; + r.period_ms = elapsed; send_reply((struct any_frame*) &r); } @@ -495,6 +507,8 @@ static void cmd_write(struct write_frame* f) int old_reading_from_td = -1; for (;;) { + CyWdtClear(); + /* Read data from USB into the buffers. */ if (NEXT_BUFFER(dma_writing_to_td) != dma_reading_from_td) diff --git a/src/fe-rpm.cc b/src/fe-rpm.cc index 35862af2..0b12d473 100644 --- a/src/fe-rpm.cc +++ b/src/fe-rpm.cc @@ -18,7 +18,16 @@ int mainRpm(int argc, const char* argv[]) FluxSpec spec(source); usbSetDrive(spec.drive, false, F_INDEX_REAL); nanoseconds_t period = usbGetRotationalPeriod(); - std::cout << "Rotational period is " << period/1000 << " ms (" << 60e6/period << " rpm)" << std::endl; + if (period != 0) + std::cout << "Rotational period is " << period/1000 << " ms (" << 60e6/period << " rpm)" << std::endl; + else + { + std::cout << "No index pulses detected from the disk. Common causes of this are:\n" + " - no drive is connected\n" + " - the drive doesn't have an index sensor (e.g. BBC Micro drives)\n" + " - the disk has no index holes (e.g. reversed flippy disks)\n" + " - (most common) no disk is inserted in the drive!\n"; + } return 0; } From 86c4e959cafc5d9856b2eb242a104aee0ed96f12 Mon Sep 17 00:00:00 2001 From: David Given Date: Sun, 12 Jan 2020 01:38:19 +0100 Subject: [PATCH 4/4] Mac error fix. --- lib/usb.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/usb.cc b/lib/usb.cc index 608f9bb3..440ac6b6 100644 --- a/lib/usb.cc +++ b/lib/usb.cc @@ -259,9 +259,9 @@ void usbSetDrive(int drive, bool high_density, int index_mode) struct set_drive_frame f = { { .type = F_FRAME_SET_DRIVE_CMD, .size = sizeof(f) }, - .drive = drive, + .drive = (uint8_t) drive, .high_density = high_density, - .index_mode = index_mode + .index_mode = (uint8_t) index_mode }; usb_cmd_send(&f, f.f.size); await_reply(F_FRAME_SET_DRIVE_REPLY);