Merge branch 'master' of github.com:ferrous-systems/embedded-trainings-2020 into edit-book

This commit is contained in:
Mirabellensaft 2020-07-15 14:25:43 +02:00
commit 0f0ed9647c
20 changed files with 2413 additions and 21 deletions

View file

@ -4,9 +4,7 @@ Pre-made applications for the nRF52840 Dongle.
These applications will be used in the beginner workshop.
## Getting familiar with the hardware
> TODO review for accessibility
## Hardware
### LEDs

View file

@ -0,0 +1,35 @@
#![deny(unused_must_use)]
#![no_main]
#![no_std]
use hal::{radio::{self, Channel}, led};
use panic_abort as _;
#[no_mangle]
fn main() -> ! {
let (mut rtx, mut rrx) = radio::claim(Channel::_21); // <- change this
let led = led::Green;
let task = async {
let mut packet = radio::Packet::new().await;
let mut on = true;
loop {
let crcres = rrx.read(&mut packet).await;
// togle LED on each new packet
if on {
led.on();
} else {
led.off();
}
on = !on;
if crcres.is_ok() {
packet.reverse();
rtx.write(&packet).await.ok();
}
}
};
executor::run!(task)
}

View file

@ -0,0 +1,259 @@
:1010000000C003207D160000C51D0000C51D0000A6
:10101000C51D0000C51D0000C51D0000000000002A
:10102000000000000000000000000000C51D0000DE
:10103000C51D000000000000C51D0000C51D00000A
:101040002517000029170000C51D00004D190000DC
:10105000C51D0000C51D0000C51D0000C51D000008
:10106000C51D0000C51D0000C51D00007D19000044
:10107000C51D0000C51D0000C51D0000C51D0000E8
:10108000C51D0000C51D0000C51D0000C51D0000D8
:10109000C51D0000C51D0000C51D0000C51D0000C8
:1010A000C51D0000C51D0000C51D0000C51D0000B8
:1010B000C51D0000C51D000000000000000000006C
:1010C000C51D0000C51D0000C51D0000C51D000098
:1010D000C51D0000C51D0000C51D0000C51D000088
:1010E000C51D0000C51D0000C51D0000000000005A
:1010F00000000000C51D000000000000C51D00002C
:041100000B010000DF
:1011040080B56F46017839B1032902D141780129AC
:1011140004D100F0A7FAFEDE002141700649012245
:101124000978C9B2002908BF032202704270B1FADB
:1011340081F0400980BD00BF06F0032080B56F46F2
:1011440098B0DFF8E4A40120DAE84F1F002940F04A
:101154005982CAE8410F0029F6D1C448052116ACCA
:101164004FF0000801264FF0030BC0F8FC1007A84D
:1011740000F12601029100F12501019100F1200105
:10118400049100F12C01069100F1280100F10C09F1
:10119400059100F1240100208DF830800994CDE9F7
:1011A40007440391C0B2DFE810F006000302030213
:1011B40022003B0009008DF834801DE09DF84400B6
:1011C400DFE810F0AC00F701F601B20007005500AB
:1011D4004F009DF84C00810700F0B080032840F0D8
:1011E400E8819DF84D00012840F0AA80E1E19DF8D6
:1011F4003400012800F0DD81DAF8040060B10168F0
:101204005AE8012F824204D14AE80112002AF3D19C
:1012140018E0BFF32F8FEFE703208DF8340040E18F
:101224009DF84000DFE810F03800C501C4013C001F
:10123400060016009DF84C00810723D0032800F017
:101244003E81B6E10221C1708DF831600A908DF8BB
:1012540034601BE09DF8540088B1032800F06781D6
:10126400A7E19DF84800012840F0EF80A1E19DF836
:10127400500048B1032840F09C81139D74E0DDE9DF
:10128400110152E1119819E1129D6CE08DF8408032
:10129400CDF8389007980D90ADF844800E980F90D3
:1012A4000598FFF72DFF10B18DF840B005E04FF41D
:1012B4008070ADF841000120FAE00021022082B2E2
:1012C400022A01D10420ECE0ADF82C004023ADF853
:1012D4002E109DF83110D84A002914BF53601360B2
:1012E400000481F001018DF83110CFD10A9911F871
:1012F400030F821E51FA82F0D2B2013152083AB180
:101304000B78013A057801F8015B00F80139F6E73A
:101314008DF84480CDF8389009980D90DDE90D01E1
:101324000F90ADF8488010910698FFF7E9FE08B1D8
:101334000320B3E0CDF84C800F9812908DF84D80C7
:101344009AF803000121C0B2022808BF0321022831
:101354008DF84C108DF84D1001D104209EE0039DB2
:101364008DF8508012951395002100208DF8586057
:10137400012905D0625C013106FA02F21043F7E755
:1013840008B1B14908609AF8010000F0030001288F
:101394007CD0A0BB02208AF8010000F0FFFCCDE95C
:1013A40016012046022100F055FBA849204600F012
:1013B4007DFB28689E4900680330C1F8F8009D4809
:1013C40001464FF48040C1F80003D1F8F80140F41D
:1013D4008010C1F8F8019AF80200C0B201280ED1B9
:1013E40094488AF802B0466000F0D8FCCDE91601B2
:1013F4002046022100F02EFB2046954944E000F0EF
:101404005BFCC5B2A5B3012D40D0022D40F0D480C1
:1014140088484FF000618AF80360C0F8FC12466205
:1014240000F0BCFCCDE916012046022100F012FBBD
:101434008849204600F03AFB20468DF8586000F0B9
:10144400ABFB8DF850608DF848809AF80300C0B269
:1014540001284FF0010008BF03208DF8480001D196
:1014640006201BE08DF8446010E700BF0C14004018
:1014740000F01CFC00F092FCCDE91601204602218C
:1014840000F0E8FA7449204600F010FB20468DF87D
:10149400586000F081FB8DF850B005208DF84400B1
:1014A40005208DF8300000F093FC9DF8300079E6BB
:1014B40000064AD004988DF84C80119012909AF846
:1014C4000100C0B210B102286AD098E000F0F4FB29
:1014D4005FFA80FBBBF1000F54D0BBF1010F5FD06A
:1014E400BBF1020F40F07780129851490068006800
:1014F4000330C1F8F8004F488AF80260066000F033
:101504004DFCCDE916012046022100F0A3FA4B4917
:10151400204600F0CBFA01994FF0030B02988DF8A6
:101524004C608DF8548012911190CDE913019AF812
:10153400020000F00300DFE800F06202111E052043
:101544008DF840008DF854B0B7E6394801688DF83D
:1015540040609DF8410080F00100B0E68AF8028006
:10156400139880F800803348D0F8F803149900F0F9
:101574000100087001E08AF802808DF854609DF83B
:10158400420095E700F092FB00F008FCCDE916015B
:101594002046022100F05EFA2949204600F086FA2E
:1015A40004204FF0030B8DF840008DF84CB084E616
:1015B400FEDE00F057F8FEDE00F0F0FB16ACCDE9DD
:1015C40016010021204600F045FA2449204600F087
:1015D4006DFA28460DE000F0E1FB16ACCDE91601EA
:1015E4000021204600F036FA1649204600F05EFA43
:1015F4005846214600F07CFB00F0B6FBFEDE00F00E
:1016040073FAFEDEBFF32F8F00F0C8FB07ACCDE901
:1016140007010021204600F01DFA0449204600F08D
:1016240045FA00F0CEFBFEDE08F003200D000000BA
:101634000C14004008100040080500500F00000082
:101644000E0000001000000080E100E01100000026
:101654001200000014000000130000001500000038
:1016640000F0B0BB80B56F4600F001F8FEDE80B537
:101674006F4600F08DFBFEDE80B56F461B481D4AA9
:10168400016841F0807101601948002141600168DE
:1016940011400131016018480121C0F810150160A2
:1016A40016488160016016481649091A21F00301A1
:1016B40000F032FC14481549091A21F003021449B8
:1016C40000F08AFB00F080FB12484FF48A51124C60
:1016D400124D01600161AC4202D201CC8047FAE7AD
:1016E400FFF7BEFFFFF72AFDFEDE00BFFCED00E0C2
:1016F400001000E0FEFFFF000800004000B00040C2
:1017040000F0032010F0032010F0032010F0032059
:10171400FC1F000008050050F01F0000FC1F000023
:1017240000F0F6B9F0B503AF2DE9C00B00F036FBBD
:101734006C46CDE900012046042100F08BF979497B
:10174400204600F0B3F9784A906B000605D00020DB
:101754009063D2F80402400406D41068000607D04F
:101764004FF0040810461BE091464FF002081AE0BF
:10177400104650F8481F090602D04FF000080FE049
:10178400104650F80C1F090602D04FF0010807E07C
:10179400104650F86C1F090600F0C0804FF0030893
:1017A40091460021016000F0F9FA6E460446CDE945
:1017B40000010D463046032100F04CF95B493046E8
:1017C40000F074F928880C22411C6FF31F30225456
:1017D40030462980564900F069F9DFE808F00372C1
:1017E4002B482100DDE9000100250A88531C6FF312
:1017F4001F3285540B8000F0D1FA6C46CDE900010C
:101804002046022100F026F94E49204600F04EF908
:101814004FF000600421C9F808024648457061E0B1
:10182400DDE9000104240A88531C6FF31F32845439
:101834000B8070E0DDE9000102240A883D4D531C51
:101844006FF31F3284540B806878000666D100F071
:10185400A5FA6C46CDE900012046022100F0FAF811
:101864003649204600F022F90120687053E0DDE992
:101874000012032013885C1C6FF31F33C8542D49D6
:1018840014804A78D2B2022A48D14FF48042C9F86F
:101894000422D9F8002122F48012C9F800214FF063
:1018A4000062C9F8082200224A70C87000F076FA73
:1018B4006C46CDE900012046022100F0CBF81E4918
:1018C40026E0DDE9000101240A88531C6FF31F326E
:1018D400845418480B804178C9B2012904D00229E4
:1018E4001CD10221C17016E08178C9B2012915D139
:1018F4000021C9F86C1041700221817000F04EFA89
:101904006C46CDE900012046022100F0A3F80C4901
:10191400204600F0CBF8BDE80C0BF0BD00F0E4F875
:10192400FEDE00BF020000000011004003000000C2
:101934000800000008F00320070000000500000074
:101944000600000004000000DCB504AF00F026FA35
:101954006C46CDE900012046042100F07BF80449DF
:10196400204600F0A3F8034800210160DCBD00BF5D
:101974000100000018310040DCB504AF2F480168B5
:10198400C90741D1C16BC90722D000212F4CC163C3
:101994002D490A88931C013204EA03332C4C23603A
:1019A4000A8091B20C22B1FBF2F202EB4202A1EBEB
:1019B400820103290CD8DFE801F00207020721495C
:1019C4004FF480724A6003E01E494FF480720A604B
:1019D400016CC9071FBF002101644FF40031C0F836
:1019E4000412416CC9071FBF002141644FF48021D8
:1019F400C0F80412816CC9071FBF002181644FF431
:101A04000021C0F80412DCBD00F0C8F96C46CDE931
:101A140000012046002100F01DF80949204600F08D
:101A240045F808484FF480510160402101604FF4AB
:101A34008071416000F0C5F9FEDE00BF04B10040D2
:101A4400000000000805005000F0032000F0FF0033
:101A540040B50040F0B503AF4DF804BD124A12681A
:101A6400D0E90034258892096E1C6FF31F3559554F
:101A740000232680D0E900100488661C42F080050B
:101A84006FF31F34B3EBD21F08BF02F07F05B3EB33
:101A9400D21F0D554FEAD21534462A460680ECD1A2
:101AA4005DF804BBF0BD00BF041000E0F0B503AF67
:101AB4004DF804BD8AB27F2A0AD3D0E9003441F03C
:101AC400800125886E1C6FF31F355955D109268076
:101AD400D0E9002003885C1C6FF31F33D1540480C9
:101AE4005DF804BBF0BDD4D4E0B502AF00F056F904
:101AF4006C46CDE9000120460021FFF7ABFF034906
:101B04002046FFF7D3FF00F05CF9FEDE0900000079
:101B1400DCB504AF00F042F96C46CDE90001204683
:101B24000421FFF797FF0D492046FFF7BFFF0C483C
:101B34000168090611D00021016000F02FF96C46FC
:101B4400CDE9000120460221FFF784FF0549204624
:101B5400FFF7ACFF044801210170DCBD0A0000005E
:101B6400000100400B00000006F0032007484FF47A
:101B7400803101604FF48051C0F83C124FF4807101
:101B840003480160034800F007B800BF04B30040F5
:101B94000C05005000110000D0B502AF0022012353
:101BA4000021012A05D0845C013203FA04F42143A4
:101BB400F7E709B101480160D0BD00BF00E100E0D2
:101BC400F0B503AF4DF804BD1E4C1F4D264604F579
:101BD400C670864212D06868014655E8010F8842F3
:101BE40004D145E80162002AF6D102E0BFF32F8F49
:101BF400F2E746F8841B00F0E9F8E8E713480F2100
:101C04000123416008210160114981608121C16083
:101C140010490A6863F302020A6040F202214FF499
:101C2400822281620C49C162002101630B49425046
:101C34000B490C4A42500C485DF804BBBDE8F04027
:101C4400FFF7AABF00C0032008F003200C150040D2
:101C5400080000066C16004021100100F4FCFFFF90
:101C6400F8FDFFFF0940040801110000BCB504AFF2
:101C74004FF080400125056000F090F86C46CDE9F6
:101C8400000120460221FFF7E5FE05492046FFF743
:101C94000DFF044805600448BDE8BC40FFF77CBF65
:101CA4000C0000000403004002110000014801215F
:101CB4000160704704100040BCB504AF0A480468D2
:101CC40000F06CF86D46CDE9000128460321FFF7CA
:101CD400C1FE06492846FFF7E9FE2046294600F0E2
:101CE40007F8204602B0B0BD5015004017000000B0
:101CF400F0B503AF4DF804BD0C460546D1E900012B
:101D04000C260A88531C6FF31F32865420460B801E
:101D14001449FFF7CBFE05F00F010820DFE801F0BE
:101D2400070D0F091521212121110B131600002085
:101D34000CE003200AE0062008E0012006E002206F
:101D440004E0052002E0072000E00420D4E90012AA
:101D540013885C1C6FF31F33C85414805DF804BBF4
:101D6400F0BDFEDE16000000E0B502AF00F016F88C
:101D74006C46CDE9000120460021FFF76BFE0349C4
:101D84002046FFF793FE00F01CF8FEDE180000006A
:101D940080B56F4600F015F8FEDED4D40649054838
:101DA4000968C9B20029054918BF00F5805018BF59
:101DB4000231704700D0032004ED00E002F003205C
:101DC400FFBEAABE62B6704772B6704740BF704786
:101DD40020BF704700F0A3B8042A38BFFFF7FABF4A
:101DE400B0B502AFA2F1040C012303EB9C0313F082
:101DF40003030ED08E4604465EF8045B012B44F8C0
:101E0400045B1FD1634620467146BCF10C0F04D21B
:101E140012E01346BCF10C0F0ED30D68103B0560A5
:101E2400032B4D6845608D688560CD6801F1100114
:101E3400C56000F11000F0D802F00302BDE8B04024
:101E4400FFF7C8BF4D68022B456007D1A2F1080314
:101E540008310830BCF10C0FDFD2EDE78B680C3190
:101E64008360A2F10C030C30BCF10C0FD5D2E3E774
:101E74000B4611461A4600F08FB81346D2B2042915
:101E840038BFFFF7F5BFD0B502AFA1F1040E42EAA7
:101E94000363012443EA024304EB9E0443EA02235E
:101EA40014F0030410D08446012C4CF8043B10D1E8
:101EB40074466046BEF10C0F1ED201F00301BDE86A
:101EC400D0406046FFF7D4BF0C46BEF10C0F13D2CE
:101ED400F3E7022C436007D10830A1F108048446DB
:101EE400BEF10C0F08D2E8E783600C30A1F10C04BA
:101EF4008446BEF10C0FE0D3C0E90033103CC0E9C6
:101F040002331030032CF7D8844601F00301BDE8F6
:101F1400D0406046FFF7ACBF0022FFF7AEBFF0B57C
:101F240003AF4DF8048DA2B3531E02F0030C032B30
:101F340014D20022BCF1000F2BD08B5CBCF1010F3A
:101F4400835426D0531CBCF1020FCE5CC65420D05F
:101F54000232895C81545DF8048BF0BDACEB020E57
:101F640001F10108441C6FF0030208EB0206A518F6
:101F74000432F378EB7033792B7173796B71B37925
:101F8400AB710EEB02030433EFD10432BCF1000F4A
:101F9400D3D15DF8048BF0BDD0B502AF12B3531E9C
:101FA40002F0030C032B01D200220FE0ACEB020E73
:101FB400421C6FF00303D4180433A17161712171C1
:101FC400E1700EEB03040434F5D11A1DBCF1000FCB
:101FD4001ABF8154BCF1010FD0BD0244BCF1020F01
:0A1FE400517000D1D0BD9170D0BD46
:0C1FF000711C0000C51B0000711B0000EC
:040000030000167D66
:00000001FF

View file

@ -0,0 +1,259 @@
:1010000000C003207D160000C51D0000C51D0000A6
:10101000C51D0000C51D0000C51D0000000000002A
:10102000000000000000000000000000C51D0000DE
:10103000C51D000000000000C51D0000C51D00000A
:101040002517000029170000C51D00004D190000DC
:10105000C51D0000C51D0000C51D0000C51D000008
:10106000C51D0000C51D0000C51D00007D19000044
:10107000C51D0000C51D0000C51D0000C51D0000E8
:10108000C51D0000C51D0000C51D0000C51D0000D8
:10109000C51D0000C51D0000C51D0000C51D0000C8
:1010A000C51D0000C51D0000C51D0000C51D0000B8
:1010B000C51D0000C51D000000000000000000006C
:1010C000C51D0000C51D0000C51D0000C51D000098
:1010D000C51D0000C51D0000C51D0000C51D000088
:1010E000C51D0000C51D0000C51D0000000000005A
:1010F00000000000C51D000000000000C51D00002C
:041100000B010000DF
:1011040080B56F46017839B1032902D141780129AC
:1011140004D100F0A7FAFEDE002141700649012245
:101124000978C9B2002908BF032202704270B1FADB
:1011340081F0400980BD00BF06F0032080B56F46F2
:1011440098B0DFF8E4A40120DAE84F1F002940F04A
:101154005982CAE8410F0029F6D1C4491E2016ACB1
:101164004FF0000801264FF0030BC1F8FC0007A85C
:1011740000F12601029100F12501019100F1200105
:10118400049100F12C01069100F1280100F10C09F1
:10119400059100F1240100208DF830800994CDE9F7
:1011A40007440391C0B2DFE810F006000302030213
:1011B40022003B0009008DF834801DE09DF84400B6
:1011C400DFE810F0AC00F701F601B20007005500AB
:1011D4004F009DF84C00810700F0B080032840F0D8
:1011E400E8819DF84D00012840F0AA80E1E19DF8D6
:1011F4003400012800F0DD81DAF8040060B10168F0
:101204005AE8012F824204D14AE80112002AF3D19C
:1012140018E0BFF32F8FEFE703208DF8340040E18F
:101224009DF84000DFE810F03800C501C4013C001F
:10123400060016009DF84C00810723D0032800F017
:101244003E81B6E10221C1708DF831600A908DF8BB
:1012540034601BE09DF8540088B1032800F06781D6
:10126400A7E19DF84800012840F0EF80A1E19DF836
:10127400500048B1032840F09C81139D74E0DDE9DF
:10128400110152E1119819E1129D6CE08DF8408032
:10129400CDF8389007980D90ADF844800E980F90D3
:1012A4000598FFF72DFF10B18DF840B005E04FF41D
:1012B4008070ADF841000120FAE00021022082B2E2
:1012C400022A01D10420ECE0ADF82C004023ADF853
:1012D4002E109DF83110D84A002914BF53601360B2
:1012E400000481F001018DF83110CFD10A9911F871
:1012F400030F821E51FA82F0D2B2013152083AB180
:101304000B78013A057801F8015B00F80139F6E73A
:101314008DF84480CDF8389009980D90DDE90D01E1
:101324000F90ADF8488010910698FFF7E9FE08B1D8
:101334000320B3E0CDF84C800F9812908DF84D80C7
:101344009AF803000121C0B2022808BF0321022831
:101354008DF84C108DF84D1001D104209EE0039DB2
:101364008DF8508012951395002100208DF8586057
:10137400012905D0625C013106FA02F21043F7E755
:1013840008B1B14908609AF8010000F0030001288F
:101394007CD0A0BB02208AF8010000F0FFFCCDE95C
:1013A40016012046022100F055FBA849204600F012
:1013B4007DFB28689E4900680330C1F8F8009D4809
:1013C40001464FF48040C1F80003D1F8F80140F41D
:1013D4008010C1F8F8019AF80200C0B201280ED1B9
:1013E40094488AF802B0466000F0D8FCCDE91601B2
:1013F4002046022100F02EFB2046954944E000F0EF
:101404005BFCC5B2A5B3012D40D0022D40F0D480C1
:1014140088484FF000618AF80360C0F8FC12466205
:1014240000F0BCFCCDE916012046022100F012FBBD
:101434008849204600F03AFB20468DF8586000F0B9
:10144400ABFB8DF850608DF848809AF80300C0B269
:1014540001284FF0010008BF03208DF8480001D196
:1014640006201BE08DF8446010E700BF0C14004018
:1014740000F01CFC00F092FCCDE91601204602218C
:1014840000F0E8FA7449204600F010FB20468DF87D
:10149400586000F081FB8DF850B005208DF84400B1
:1014A40005208DF8300000F093FC9DF8300079E6BB
:1014B40000064AD004988DF84C80119012909AF846
:1014C4000100C0B210B102286AD098E000F0F4FB29
:1014D4005FFA80FBBBF1000F54D0BBF1010F5FD06A
:1014E400BBF1020F40F07780129851490068006800
:1014F4000330C1F8F8004F488AF80260066000F033
:101504004DFCCDE916012046022100F0A3FA4B4917
:10151400204600F0CBFA01994FF0030B02988DF8A6
:101524004C608DF8548012911190CDE913019AF812
:10153400020000F00300DFE800F06202111E052043
:101544008DF840008DF854B0B7E6394801688DF83D
:1015540040609DF8410080F00100B0E68AF8028006
:10156400139880F800803348D0F8F803149900F0F9
:101574000100087001E08AF802808DF854609DF83B
:10158400420095E700F092FB00F008FCCDE916015B
:101594002046022100F05EFA2949204600F086FA2E
:1015A40004204FF0030B8DF840008DF84CB084E616
:1015B400FEDE00F057F8FEDE00F0F0FB16ACCDE9DD
:1015C40016010021204600F045FA2449204600F087
:1015D4006DFA28460DE000F0E1FB16ACCDE91601EA
:1015E4000021204600F036FA1649204600F05EFA43
:1015F4005846214600F07CFB00F0B6FBFEDE00F00E
:1016040073FAFEDEBFF32F8F00F0C8FB07ACCDE901
:1016140007010021204600F01DFA0449204600F08D
:1016240045FA00F0CEFBFEDE08F003200D000000BA
:101634000C14004008100040080500500F00000082
:101644000E0000001000000080E100E01100000026
:101654001200000014000000130000001500000038
:1016640000F0B0BB80B56F4600F001F8FEDE80B537
:101674006F4600F08DFBFEDE80B56F461B481D4AA9
:10168400016841F0807101601948002141600168DE
:1016940011400131016018480121C0F810150160A2
:1016A40016488160016016481649091A21F00301A1
:1016B40000F032FC14481549091A21F003021449B8
:1016C40000F08AFB00F080FB12484FF48A51124C60
:1016D400124D01600161AC4202D201CC8047FAE7AD
:1016E400FFF7BEFFFFF72AFDFEDE00BFFCED00E0C2
:1016F400001000E0FEFFFF000800004000B00040C2
:1017040000F0032010F0032010F0032010F0032059
:10171400FC1F000008050050F01F0000FC1F000023
:1017240000F0F6B9F0B503AF2DE9C00B00F036FBBD
:101734006C46CDE900012046042100F08BF979497B
:10174400204600F0B3F9784A906B000605D00020DB
:101754009063D2F80402400406D41068000607D04F
:101764004FF0040810461BE091464FF002081AE0BF
:10177400104650F8481F090602D04FF000080FE049
:10178400104650F80C1F090602D04FF0010807E07C
:10179400104650F86C1F090600F0C0804FF0030893
:1017A40091460021016000F0F9FA6E460446CDE945
:1017B40000010D463046032100F04CF95B493046E8
:1017C40000F074F928880C22411C6FF31F30225456
:1017D40030462980564900F069F9DFE808F00372C1
:1017E4002B482100DDE9000100250A88531C6FF312
:1017F4001F3285540B8000F0D1FA6C46CDE900010C
:101804002046022100F026F94E49204600F04EF908
:101814004FF000600421C9F808024648457061E0B1
:10182400DDE9000104240A88531C6FF31F32845439
:101834000B8070E0DDE9000102240A883D4D531C51
:101844006FF31F3284540B806878000666D100F071
:10185400A5FA6C46CDE900012046022100F0FAF811
:101864003649204600F022F90120687053E0DDE992
:101874000012032013885C1C6FF31F33C8542D49D6
:1018840014804A78D2B2022A48D14FF48042C9F86F
:101894000422D9F8002122F48012C9F800214FF063
:1018A4000062C9F8082200224A70C87000F076FA73
:1018B4006C46CDE900012046022100F0CBF81E4918
:1018C40026E0DDE9000101240A88531C6FF31F326E
:1018D400845418480B804178C9B2012904D00229E4
:1018E4001CD10221C17016E08178C9B2012915D139
:1018F4000021C9F86C1041700221817000F04EFA89
:101904006C46CDE900012046022100F0A3F80C4901
:10191400204600F0CBF8BDE80C0BF0BD00F0E4F875
:10192400FEDE00BF020000000011004003000000C2
:101934000800000008F00320070000000500000074
:101944000600000004000000DCB504AF00F026FA35
:101954006C46CDE900012046042100F07BF80449DF
:10196400204600F0A3F8034800210160DCBD00BF5D
:101974000100000018310040DCB504AF2F480168B5
:10198400C90741D1C16BC90722D000212F4CC163C3
:101994002D490A88931C013204EA03332C4C23603A
:1019A4000A8091B20C22B1FBF2F202EB4202A1EBEB
:1019B400820103290CD8DFE801F00207020721495C
:1019C4004FF480724A6003E01E494FF480720A604B
:1019D400016CC9071FBF002101644FF40031C0F836
:1019E4000412416CC9071FBF002141644FF48021D8
:1019F400C0F80412816CC9071FBF002181644FF431
:101A04000021C0F80412DCBD00F0C8F96C46CDE931
:101A140000012046002100F01DF80949204600F08D
:101A240045F808484FF480510160402101604FF4AB
:101A34008071416000F0C5F9FEDE00BF04B10040D2
:101A4400000000000805005000F0032000F0FF0033
:101A540040B50040F0B503AF4DF804BD124A12681A
:101A6400D0E90034258892096E1C6FF31F3559554F
:101A740000232680D0E900100488661C42F080050B
:101A84006FF31F34B3EBD21F08BF02F07F05B3EB33
:101A9400D21F0D554FEAD21534462A460680ECD1A2
:101AA4005DF804BBF0BD00BF041000E0F0B503AF67
:101AB4004DF804BD8AB27F2A0AD3D0E9003441F03C
:101AC400800125886E1C6FF31F355955D109268076
:101AD400D0E9002003885C1C6FF31F33D1540480C9
:101AE4005DF804BBF0BDD4D4E0B502AF00F056F904
:101AF4006C46CDE9000120460021FFF7ABFF034906
:101B04002046FFF7D3FF00F05CF9FEDE0900000079
:101B1400DCB504AF00F042F96C46CDE90001204683
:101B24000421FFF797FF0D492046FFF7BFFF0C483C
:101B34000168090611D00021016000F02FF96C46FC
:101B4400CDE9000120460221FFF784FF0549204624
:101B5400FFF7ACFF044801210170DCBD0A0000005E
:101B6400000100400B00000006F0032007484FF47A
:101B7400803101604FF48051C0F83C124FF4807101
:101B840003480160034800F007B800BF04B30040F5
:101B94000C05005000110000D0B502AF0022012353
:101BA4000021012A05D0845C013203FA04F42143A4
:101BB400F7E709B101480160D0BD00BF00E100E0D2
:101BC400F0B503AF4DF804BD1E4C1F4D264604F579
:101BD400C670864212D06868014655E8010F8842F3
:101BE40004D145E80162002AF6D102E0BFF32F8F49
:101BF400F2E746F8841B00F0E9F8E8E713480F2100
:101C04000123416008210160114981608121C16083
:101C140010490A6863F302020A6040F202214FF499
:101C2400822281620C49C162002101630B49425046
:101C34000B490C4A42500C485DF804BBBDE8F04027
:101C4400FFF7AABF00C0032008F003200C150040D2
:101C5400080000066C16004021100100F4FCFFFF90
:101C6400F8FDFFFF0940040801110000BCB504AFF2
:101C74004FF080400125056000F090F86C46CDE9F6
:101C8400000120460221FFF7E5FE05492046FFF743
:101C94000DFF044805600448BDE8BC40FFF77CBF65
:101CA4000C0000000403004002110000014801215F
:101CB4000160704704100040BCB504AF0A480468D2
:101CC40000F06CF86D46CDE9000128460321FFF7CA
:101CD400C1FE06492846FFF7E9FE2046294600F0E2
:101CE40007F8204602B0B0BD5015004017000000B0
:101CF400F0B503AF4DF804BD0C460546D1E900012B
:101D04000C260A88531C6FF31F32865420460B801E
:101D14001449FFF7CBFE05F00F010820DFE801F0BE
:101D2400070D0F091521212121110B131600002085
:101D34000CE003200AE0062008E0012006E002206F
:101D440004E0052002E0072000E00420D4E90012AA
:101D540013885C1C6FF31F33C85414805DF804BBF4
:101D6400F0BDFEDE16000000E0B502AF00F016F88C
:101D74006C46CDE9000120460021FFF76BFE0349C4
:101D84002046FFF793FE00F01CF8FEDE180000006A
:101D940080B56F4600F015F8FEDED4D40649054838
:101DA4000968C9B20029054918BF00F5805018BF59
:101DB4000231704700D0032004ED00E002F003205C
:101DC400FFBEAABE62B6704772B6704740BF704786
:101DD40020BF704700F0A3B8042A38BFFFF7FABF4A
:101DE400B0B502AFA2F1040C012303EB9C0313F082
:101DF40003030ED08E4604465EF8045B012B44F8C0
:101E0400045B1FD1634620467146BCF10C0F04D21B
:101E140012E01346BCF10C0F0ED30D68103B0560A5
:101E2400032B4D6845608D688560CD6801F1100114
:101E3400C56000F11000F0D802F00302BDE8B04024
:101E4400FFF7C8BF4D68022B456007D1A2F1080314
:101E540008310830BCF10C0FDFD2EDE78B680C3190
:101E64008360A2F10C030C30BCF10C0FD5D2E3E774
:101E74000B4611461A4600F08FB81346D2B2042915
:101E840038BFFFF7F5BFD0B502AFA1F1040E42EAA7
:101E94000363012443EA024304EB9E0443EA02235E
:101EA40014F0030410D08446012C4CF8043B10D1E8
:101EB40074466046BEF10C0F1ED201F00301BDE86A
:101EC400D0406046FFF7D4BF0C46BEF10C0F13D2CE
:101ED400F3E7022C436007D10830A1F108048446DB
:101EE400BEF10C0F08D2E8E783600C30A1F10C04BA
:101EF4008446BEF10C0FE0D3C0E90033103CC0E9C6
:101F040002331030032CF7D8844601F00301BDE8F6
:101F1400D0406046FFF7ACBF0022FFF7AEBFF0B57C
:101F240003AF4DF8048DA2B3531E02F0030C032B30
:101F340014D20022BCF1000F2BD08B5CBCF1010F3A
:101F4400835426D0531CBCF1020FCE5CC65420D05F
:101F54000232895C81545DF8048BF0BDACEB020E57
:101F640001F10108441C6FF0030208EB0206A518F6
:101F74000432F378EB7033792B7173796B71B37925
:101F8400AB710EEB02030433EFD10432BCF1000F4A
:101F9400D3D15DF8048BF0BDD0B502AF12B3531E9C
:101FA40002F0030C032B01D200220FE0ACEB020E73
:101FB400421C6FF00303D4180433A17161712171C1
:101FC400E1700EEB03040434F5D11A1DBCF1000FCB
:101FD4001ABF8154BCF1010FD0BD0244BCF1020F01
:0A1FE400517000D1D0BD9170D0BD46
:0C1FF000711C0000C51B0000711B0000EC
:040000030000167D66
:00000001FF

View file

@ -0,0 +1,259 @@
:1010000000C003207D160000C51D0000C51D0000A6
:10101000C51D0000C51D0000C51D0000000000002A
:10102000000000000000000000000000C51D0000DE
:10103000C51D000000000000C51D0000C51D00000A
:101040002517000029170000C51D00004D190000DC
:10105000C51D0000C51D0000C51D0000C51D000008
:10106000C51D0000C51D0000C51D00007D19000044
:10107000C51D0000C51D0000C51D0000C51D0000E8
:10108000C51D0000C51D0000C51D0000C51D0000D8
:10109000C51D0000C51D0000C51D0000C51D0000C8
:1010A000C51D0000C51D0000C51D0000C51D0000B8
:1010B000C51D0000C51D000000000000000000006C
:1010C000C51D0000C51D0000C51D0000C51D000098
:1010D000C51D0000C51D0000C51D0000C51D000088
:1010E000C51D0000C51D0000C51D0000000000005A
:1010F00000000000C51D000000000000C51D00002C
:041100000B010000DF
:1011040080B56F46017839B1032902D141780129AC
:1011140004D100F0A7FAFEDE002141700649012245
:101124000978C9B2002908BF032202704270B1FADB
:1011340081F0400980BD00BF06F0032080B56F46F2
:1011440098B0DFF8E4A40120DAE84F1F002940F04A
:101154005982CAE8410F0029F6D1C449372016AC98
:101164004FF0000801264FF0030BC1F8FC0007A85C
:1011740000F12601029100F12501019100F1200105
:10118400049100F12C01069100F1280100F10C09F1
:10119400059100F1240100208DF830800994CDE9F7
:1011A40007440391C0B2DFE810F006000302030213
:1011B40022003B0009008DF834801DE09DF84400B6
:1011C400DFE810F0AC00F701F601B20007005500AB
:1011D4004F009DF84C00810700F0B080032840F0D8
:1011E400E8819DF84D00012840F0AA80E1E19DF8D6
:1011F4003400012800F0DD81DAF8040060B10168F0
:101204005AE8012F824204D14AE80112002AF3D19C
:1012140018E0BFF32F8FEFE703208DF8340040E18F
:101224009DF84000DFE810F03800C501C4013C001F
:10123400060016009DF84C00810723D0032800F017
:101244003E81B6E10221C1708DF831600A908DF8BB
:1012540034601BE09DF8540088B1032800F06781D6
:10126400A7E19DF84800012840F0EF80A1E19DF836
:10127400500048B1032840F09C81139D74E0DDE9DF
:10128400110152E1119819E1129D6CE08DF8408032
:10129400CDF8389007980D90ADF844800E980F90D3
:1012A4000598FFF72DFF10B18DF840B005E04FF41D
:1012B4008070ADF841000120FAE00021022082B2E2
:1012C400022A01D10420ECE0ADF82C004023ADF853
:1012D4002E109DF83110D84A002914BF53601360B2
:1012E400000481F001018DF83110CFD10A9911F871
:1012F400030F821E51FA82F0D2B2013152083AB180
:101304000B78013A057801F8015B00F80139F6E73A
:101314008DF84480CDF8389009980D90DDE90D01E1
:101324000F90ADF8488010910698FFF7E9FE08B1D8
:101334000320B3E0CDF84C800F9812908DF84D80C7
:101344009AF803000121C0B2022808BF0321022831
:101354008DF84C108DF84D1001D104209EE0039DB2
:101364008DF8508012951395002100208DF8586057
:10137400012905D0625C013106FA02F21043F7E755
:1013840008B1B14908609AF8010000F0030001288F
:101394007CD0A0BB02208AF8010000F0FFFCCDE95C
:1013A40016012046022100F055FBA849204600F012
:1013B4007DFB28689E4900680330C1F8F8009D4809
:1013C40001464FF48040C1F80003D1F8F80140F41D
:1013D4008010C1F8F8019AF80200C0B201280ED1B9
:1013E40094488AF802B0466000F0D8FCCDE91601B2
:1013F4002046022100F02EFB2046954944E000F0EF
:101404005BFCC5B2A5B3012D40D0022D40F0D480C1
:1014140088484FF000618AF80360C0F8FC12466205
:1014240000F0BCFCCDE916012046022100F012FBBD
:101434008849204600F03AFB20468DF8586000F0B9
:10144400ABFB8DF850608DF848809AF80300C0B269
:1014540001284FF0010008BF03208DF8480001D196
:1014640006201BE08DF8446010E700BF0C14004018
:1014740000F01CFC00F092FCCDE91601204602218C
:1014840000F0E8FA7449204600F010FB20468DF87D
:10149400586000F081FB8DF850B005208DF84400B1
:1014A40005208DF8300000F093FC9DF8300079E6BB
:1014B40000064AD004988DF84C80119012909AF846
:1014C4000100C0B210B102286AD098E000F0F4FB29
:1014D4005FFA80FBBBF1000F54D0BBF1010F5FD06A
:1014E400BBF1020F40F07780129851490068006800
:1014F4000330C1F8F8004F488AF80260066000F033
:101504004DFCCDE916012046022100F0A3FA4B4917
:10151400204600F0CBFA01994FF0030B02988DF8A6
:101524004C608DF8548012911190CDE913019AF812
:10153400020000F00300DFE800F06202111E052043
:101544008DF840008DF854B0B7E6394801688DF83D
:1015540040609DF8410080F00100B0E68AF8028006
:10156400139880F800803348D0F8F803149900F0F9
:101574000100087001E08AF802808DF854609DF83B
:10158400420095E700F092FB00F008FCCDE916015B
:101594002046022100F05EFA2949204600F086FA2E
:1015A40004204FF0030B8DF840008DF84CB084E616
:1015B400FEDE00F057F8FEDE00F0F0FB16ACCDE9DD
:1015C40016010021204600F045FA2449204600F087
:1015D4006DFA28460DE000F0E1FB16ACCDE91601EA
:1015E4000021204600F036FA1649204600F05EFA43
:1015F4005846214600F07CFB00F0B6FBFEDE00F00E
:1016040073FAFEDEBFF32F8F00F0C8FB07ACCDE901
:1016140007010021204600F01DFA0449204600F08D
:1016240045FA00F0CEFBFEDE08F003200D000000BA
:101634000C14004008100040080500500F00000082
:101644000E0000001000000080E100E01100000026
:101654001200000014000000130000001500000038
:1016640000F0B0BB80B56F4600F001F8FEDE80B537
:101674006F4600F08DFBFEDE80B56F461B481D4AA9
:10168400016841F0807101601948002141600168DE
:1016940011400131016018480121C0F810150160A2
:1016A40016488160016016481649091A21F00301A1
:1016B40000F032FC14481549091A21F003021449B8
:1016C40000F08AFB00F080FB12484FF48A51124C60
:1016D400124D01600161AC4202D201CC8047FAE7AD
:1016E400FFF7BEFFFFF72AFDFEDE00BFFCED00E0C2
:1016F400001000E0FEFFFF000800004000B00040C2
:1017040000F0032010F0032010F0032010F0032059
:10171400FC1F000008050050F01F0000FC1F000023
:1017240000F0F6B9F0B503AF2DE9C00B00F036FBBD
:101734006C46CDE900012046042100F08BF979497B
:10174400204600F0B3F9784A906B000605D00020DB
:101754009063D2F80402400406D41068000607D04F
:101764004FF0040810461BE091464FF002081AE0BF
:10177400104650F8481F090602D04FF000080FE049
:10178400104650F80C1F090602D04FF0010807E07C
:10179400104650F86C1F090600F0C0804FF0030893
:1017A40091460021016000F0F9FA6E460446CDE945
:1017B40000010D463046032100F04CF95B493046E8
:1017C40000F074F928880C22411C6FF31F30225456
:1017D40030462980564900F069F9DFE808F00372C1
:1017E4002B482100DDE9000100250A88531C6FF312
:1017F4001F3285540B8000F0D1FA6C46CDE900010C
:101804002046022100F026F94E49204600F04EF908
:101814004FF000600421C9F808024648457061E0B1
:10182400DDE9000104240A88531C6FF31F32845439
:101834000B8070E0DDE9000102240A883D4D531C51
:101844006FF31F3284540B806878000666D100F071
:10185400A5FA6C46CDE900012046022100F0FAF811
:101864003649204600F022F90120687053E0DDE992
:101874000012032013885C1C6FF31F33C8542D49D6
:1018840014804A78D2B2022A48D14FF48042C9F86F
:101894000422D9F8002122F48012C9F800214FF063
:1018A4000062C9F8082200224A70C87000F076FA73
:1018B4006C46CDE900012046022100F0CBF81E4918
:1018C40026E0DDE9000101240A88531C6FF31F326E
:1018D400845418480B804178C9B2012904D00229E4
:1018E4001CD10221C17016E08178C9B2012915D139
:1018F4000021C9F86C1041700221817000F04EFA89
:101904006C46CDE900012046022100F0A3F80C4901
:10191400204600F0CBF8BDE80C0BF0BD00F0E4F875
:10192400FEDE00BF020000000011004003000000C2
:101934000800000008F00320070000000500000074
:101944000600000004000000DCB504AF00F026FA35
:101954006C46CDE900012046042100F07BF80449DF
:10196400204600F0A3F8034800210160DCBD00BF5D
:101974000100000018310040DCB504AF2F480168B5
:10198400C90741D1C16BC90722D000212F4CC163C3
:101994002D490A88931C013204EA03332C4C23603A
:1019A4000A8091B20C22B1FBF2F202EB4202A1EBEB
:1019B400820103290CD8DFE801F00207020721495C
:1019C4004FF480724A6003E01E494FF480720A604B
:1019D400016CC9071FBF002101644FF40031C0F836
:1019E4000412416CC9071FBF002141644FF48021D8
:1019F400C0F80412816CC9071FBF002181644FF431
:101A04000021C0F80412DCBD00F0C8F96C46CDE931
:101A140000012046002100F01DF80949204600F08D
:101A240045F808484FF480510160402101604FF4AB
:101A34008071416000F0C5F9FEDE00BF04B10040D2
:101A4400000000000805005000F0032000F0FF0033
:101A540040B50040F0B503AF4DF804BD124A12681A
:101A6400D0E90034258892096E1C6FF31F3559554F
:101A740000232680D0E900100488661C42F080050B
:101A84006FF31F34B3EBD21F08BF02F07F05B3EB33
:101A9400D21F0D554FEAD21534462A460680ECD1A2
:101AA4005DF804BBF0BD00BF041000E0F0B503AF67
:101AB4004DF804BD8AB27F2A0AD3D0E9003441F03C
:101AC400800125886E1C6FF31F355955D109268076
:101AD400D0E9002003885C1C6FF31F33D1540480C9
:101AE4005DF804BBF0BDD4D4E0B502AF00F056F904
:101AF4006C46CDE9000120460021FFF7ABFF034906
:101B04002046FFF7D3FF00F05CF9FEDE0900000079
:101B1400DCB504AF00F042F96C46CDE90001204683
:101B24000421FFF797FF0D492046FFF7BFFF0C483C
:101B34000168090611D00021016000F02FF96C46FC
:101B4400CDE9000120460221FFF784FF0549204624
:101B5400FFF7ACFF044801210170DCBD0A0000005E
:101B6400000100400B00000006F0032007484FF47A
:101B7400803101604FF48051C0F83C124FF4807101
:101B840003480160034800F007B800BF04B30040F5
:101B94000C05005000110000D0B502AF0022012353
:101BA4000021012A05D0845C013203FA04F42143A4
:101BB400F7E709B101480160D0BD00BF00E100E0D2
:101BC400F0B503AF4DF804BD1E4C1F4D264604F579
:101BD400C670864212D06868014655E8010F8842F3
:101BE40004D145E80162002AF6D102E0BFF32F8F49
:101BF400F2E746F8841B00F0E9F8E8E713480F2100
:101C04000123416008210160114981608121C16083
:101C140010490A6863F302020A6040F202214FF499
:101C2400822281620C49C162002101630B49425046
:101C34000B490C4A42500C485DF804BBBDE8F04027
:101C4400FFF7AABF00C0032008F003200C150040D2
:101C5400080000066C16004021100100F4FCFFFF90
:101C6400F8FDFFFF0940040801110000BCB504AFF2
:101C74004FF080400125056000F090F86C46CDE9F6
:101C8400000120460221FFF7E5FE05492046FFF743
:101C94000DFF044805600448BDE8BC40FFF77CBF65
:101CA4000C0000000403004002110000014801215F
:101CB4000160704704100040BCB504AF0A480468D2
:101CC40000F06CF86D46CDE9000128460321FFF7CA
:101CD400C1FE06492846FFF7E9FE2046294600F0E2
:101CE40007F8204602B0B0BD5015004017000000B0
:101CF400F0B503AF4DF804BD0C460546D1E900012B
:101D04000C260A88531C6FF31F32865420460B801E
:101D14001449FFF7CBFE05F00F010820DFE801F0BE
:101D2400070D0F091521212121110B131600002085
:101D34000CE003200AE0062008E0012006E002206F
:101D440004E0052002E0072000E00420D4E90012AA
:101D540013885C1C6FF31F33C85414805DF804BBF4
:101D6400F0BDFEDE16000000E0B502AF00F016F88C
:101D74006C46CDE9000120460021FFF76BFE0349C4
:101D84002046FFF793FE00F01CF8FEDE180000006A
:101D940080B56F4600F015F8FEDED4D40649054838
:101DA4000968C9B20029054918BF00F5805018BF59
:101DB4000231704700D0032004ED00E002F003205C
:101DC400FFBEAABE62B6704772B6704740BF704786
:101DD40020BF704700F0A3B8042A38BFFFF7FABF4A
:101DE400B0B502AFA2F1040C012303EB9C0313F082
:101DF40003030ED08E4604465EF8045B012B44F8C0
:101E0400045B1FD1634620467146BCF10C0F04D21B
:101E140012E01346BCF10C0F0ED30D68103B0560A5
:101E2400032B4D6845608D688560CD6801F1100114
:101E3400C56000F11000F0D802F00302BDE8B04024
:101E4400FFF7C8BF4D68022B456007D1A2F1080314
:101E540008310830BCF10C0FDFD2EDE78B680C3190
:101E64008360A2F10C030C30BCF10C0FD5D2E3E774
:101E74000B4611461A4600F08FB81346D2B2042915
:101E840038BFFFF7F5BFD0B502AFA1F1040E42EAA7
:101E94000363012443EA024304EB9E0443EA02235E
:101EA40014F0030410D08446012C4CF8043B10D1E8
:101EB40074466046BEF10C0F1ED201F00301BDE86A
:101EC400D0406046FFF7D4BF0C46BEF10C0F13D2CE
:101ED400F3E7022C436007D10830A1F108048446DB
:101EE400BEF10C0F08D2E8E783600C30A1F10C04BA
:101EF4008446BEF10C0FE0D3C0E90033103CC0E9C6
:101F040002331030032CF7D8844601F00301BDE8F6
:101F1400D0406046FFF7ACBF0022FFF7AEBFF0B57C
:101F240003AF4DF8048DA2B3531E02F0030C032B30
:101F340014D20022BCF1000F2BD08B5CBCF1010F3A
:101F4400835426D0531CBCF1020FCE5CC65420D05F
:101F54000232895C81545DF8048BF0BDACEB020E57
:101F640001F10108441C6FF0030208EB0206A518F6
:101F74000432F378EB7033792B7173796B71B37925
:101F8400AB710EEB02030433EFD10432BCF1000F4A
:101F9400D3D15DF8048BF0BDD0B502AF12B3531E9C
:101FA40002F0030C032B01D200220FE0ACEB020E73
:101FB400421C6FF00303D4180433A17161712171C1
:101FC400E1700EEB03040434F5D11A1DBCF1000FCB
:101FD4001ABF8154BCF1010FD0BD0244BCF1020F01
:0A1FE400517000D1D0BD9170D0BD46
:0C1FF000711C0000C51B0000711B0000EC
:040000030000167D66
:00000001FF

View file

@ -0,0 +1,259 @@
:1010000000C003207D160000C51D0000C51D0000A6
:10101000C51D0000C51D0000C51D0000000000002A
:10102000000000000000000000000000C51D0000DE
:10103000C51D000000000000C51D0000C51D00000A
:101040002517000029170000C51D00004D190000DC
:10105000C51D0000C51D0000C51D0000C51D000008
:10106000C51D0000C51D0000C51D00007D19000044
:10107000C51D0000C51D0000C51D0000C51D0000E8
:10108000C51D0000C51D0000C51D0000C51D0000D8
:10109000C51D0000C51D0000C51D0000C51D0000C8
:1010A000C51D0000C51D0000C51D0000C51D0000B8
:1010B000C51D0000C51D000000000000000000006C
:1010C000C51D0000C51D0000C51D0000C51D000098
:1010D000C51D0000C51D0000C51D0000C51D000088
:1010E000C51D0000C51D0000C51D0000000000005A
:1010F00000000000C51D000000000000C51D00002C
:041100000B010000DF
:1011040080B56F46017839B1032902D141780129AC
:1011140004D100F0A7FAFEDE002141700649012245
:101124000978C9B2002908BF032202704270B1FADB
:1011340081F0400980BD00BF06F0032080B56F46F2
:1011440098B0DFF8E4A40120DAE84F1F002940F04A
:101154005982CAE8410F0029F6D1C449502016AC7F
:101164004FF0000801264FF0030BC1F8FC0007A85C
:1011740000F12601029100F12501019100F1200105
:10118400049100F12C01069100F1280100F10C09F1
:10119400059100F1240100208DF830800994CDE9F7
:1011A40007440391C0B2DFE810F006000302030213
:1011B40022003B0009008DF834801DE09DF84400B6
:1011C400DFE810F0AC00F701F601B20007005500AB
:1011D4004F009DF84C00810700F0B080032840F0D8
:1011E400E8819DF84D00012840F0AA80E1E19DF8D6
:1011F4003400012800F0DD81DAF8040060B10168F0
:101204005AE8012F824204D14AE80112002AF3D19C
:1012140018E0BFF32F8FEFE703208DF8340040E18F
:101224009DF84000DFE810F03800C501C4013C001F
:10123400060016009DF84C00810723D0032800F017
:101244003E81B6E10221C1708DF831600A908DF8BB
:1012540034601BE09DF8540088B1032800F06781D6
:10126400A7E19DF84800012840F0EF80A1E19DF836
:10127400500048B1032840F09C81139D74E0DDE9DF
:10128400110152E1119819E1129D6CE08DF8408032
:10129400CDF8389007980D90ADF844800E980F90D3
:1012A4000598FFF72DFF10B18DF840B005E04FF41D
:1012B4008070ADF841000120FAE00021022082B2E2
:1012C400022A01D10420ECE0ADF82C004023ADF853
:1012D4002E109DF83110D84A002914BF53601360B2
:1012E400000481F001018DF83110CFD10A9911F871
:1012F400030F821E51FA82F0D2B2013152083AB180
:101304000B78013A057801F8015B00F80139F6E73A
:101314008DF84480CDF8389009980D90DDE90D01E1
:101324000F90ADF8488010910698FFF7E9FE08B1D8
:101334000320B3E0CDF84C800F9812908DF84D80C7
:101344009AF803000121C0B2022808BF0321022831
:101354008DF84C108DF84D1001D104209EE0039DB2
:101364008DF8508012951395002100208DF8586057
:10137400012905D0625C013106FA02F21043F7E755
:1013840008B1B14908609AF8010000F0030001288F
:101394007CD0A0BB02208AF8010000F0FFFCCDE95C
:1013A40016012046022100F055FBA849204600F012
:1013B4007DFB28689E4900680330C1F8F8009D4809
:1013C40001464FF48040C1F80003D1F8F80140F41D
:1013D4008010C1F8F8019AF80200C0B201280ED1B9
:1013E40094488AF802B0466000F0D8FCCDE91601B2
:1013F4002046022100F02EFB2046954944E000F0EF
:101404005BFCC5B2A5B3012D40D0022D40F0D480C1
:1014140088484FF000618AF80360C0F8FC12466205
:1014240000F0BCFCCDE916012046022100F012FBBD
:101434008849204600F03AFB20468DF8586000F0B9
:10144400ABFB8DF850608DF848809AF80300C0B269
:1014540001284FF0010008BF03208DF8480001D196
:1014640006201BE08DF8446010E700BF0C14004018
:1014740000F01CFC00F092FCCDE91601204602218C
:1014840000F0E8FA7449204600F010FB20468DF87D
:10149400586000F081FB8DF850B005208DF84400B1
:1014A40005208DF8300000F093FC9DF8300079E6BB
:1014B40000064AD004988DF84C80119012909AF846
:1014C4000100C0B210B102286AD098E000F0F4FB29
:1014D4005FFA80FBBBF1000F54D0BBF1010F5FD06A
:1014E400BBF1020F40F07780129851490068006800
:1014F4000330C1F8F8004F488AF80260066000F033
:101504004DFCCDE916012046022100F0A3FA4B4917
:10151400204600F0CBFA01994FF0030B02988DF8A6
:101524004C608DF8548012911190CDE913019AF812
:10153400020000F00300DFE800F06202111E052043
:101544008DF840008DF854B0B7E6394801688DF83D
:1015540040609DF8410080F00100B0E68AF8028006
:10156400139880F800803348D0F8F803149900F0F9
:101574000100087001E08AF802808DF854609DF83B
:10158400420095E700F092FB00F008FCCDE916015B
:101594002046022100F05EFA2949204600F086FA2E
:1015A40004204FF0030B8DF840008DF84CB084E616
:1015B400FEDE00F057F8FEDE00F0F0FB16ACCDE9DD
:1015C40016010021204600F045FA2449204600F087
:1015D4006DFA28460DE000F0E1FB16ACCDE91601EA
:1015E4000021204600F036FA1649204600F05EFA43
:1015F4005846214600F07CFB00F0B6FBFEDE00F00E
:1016040073FAFEDEBFF32F8F00F0C8FB07ACCDE901
:1016140007010021204600F01DFA0449204600F08D
:1016240045FA00F0CEFBFEDE08F003200D000000BA
:101634000C14004008100040080500500F00000082
:101644000E0000001000000080E100E01100000026
:101654001200000014000000130000001500000038
:1016640000F0B0BB80B56F4600F001F8FEDE80B537
:101674006F4600F08DFBFEDE80B56F461B481D4AA9
:10168400016841F0807101601948002141600168DE
:1016940011400131016018480121C0F810150160A2
:1016A40016488160016016481649091A21F00301A1
:1016B40000F032FC14481549091A21F003021449B8
:1016C40000F08AFB00F080FB12484FF48A51124C60
:1016D400124D01600161AC4202D201CC8047FAE7AD
:1016E400FFF7BEFFFFF72AFDFEDE00BFFCED00E0C2
:1016F400001000E0FEFFFF000800004000B00040C2
:1017040000F0032010F0032010F0032010F0032059
:10171400FC1F000008050050F01F0000FC1F000023
:1017240000F0F6B9F0B503AF2DE9C00B00F036FBBD
:101734006C46CDE900012046042100F08BF979497B
:10174400204600F0B3F9784A906B000605D00020DB
:101754009063D2F80402400406D41068000607D04F
:101764004FF0040810461BE091464FF002081AE0BF
:10177400104650F8481F090602D04FF000080FE049
:10178400104650F80C1F090602D04FF0010807E07C
:10179400104650F86C1F090600F0C0804FF0030893
:1017A40091460021016000F0F9FA6E460446CDE945
:1017B40000010D463046032100F04CF95B493046E8
:1017C40000F074F928880C22411C6FF31F30225456
:1017D40030462980564900F069F9DFE808F00372C1
:1017E4002B482100DDE9000100250A88531C6FF312
:1017F4001F3285540B8000F0D1FA6C46CDE900010C
:101804002046022100F026F94E49204600F04EF908
:101814004FF000600421C9F808024648457061E0B1
:10182400DDE9000104240A88531C6FF31F32845439
:101834000B8070E0DDE9000102240A883D4D531C51
:101844006FF31F3284540B806878000666D100F071
:10185400A5FA6C46CDE900012046022100F0FAF811
:101864003649204600F022F90120687053E0DDE992
:101874000012032013885C1C6FF31F33C8542D49D6
:1018840014804A78D2B2022A48D14FF48042C9F86F
:101894000422D9F8002122F48012C9F800214FF063
:1018A4000062C9F8082200224A70C87000F076FA73
:1018B4006C46CDE900012046022100F0CBF81E4918
:1018C40026E0DDE9000101240A88531C6FF31F326E
:1018D400845418480B804178C9B2012904D00229E4
:1018E4001CD10221C17016E08178C9B2012915D139
:1018F4000021C9F86C1041700221817000F04EFA89
:101904006C46CDE900012046022100F0A3F80C4901
:10191400204600F0CBF8BDE80C0BF0BD00F0E4F875
:10192400FEDE00BF020000000011004003000000C2
:101934000800000008F00320070000000500000074
:101944000600000004000000DCB504AF00F026FA35
:101954006C46CDE900012046042100F07BF80449DF
:10196400204600F0A3F8034800210160DCBD00BF5D
:101974000100000018310040DCB504AF2F480168B5
:10198400C90741D1C16BC90722D000212F4CC163C3
:101994002D490A88931C013204EA03332C4C23603A
:1019A4000A8091B20C22B1FBF2F202EB4202A1EBEB
:1019B400820103290CD8DFE801F00207020721495C
:1019C4004FF480724A6003E01E494FF480720A604B
:1019D400016CC9071FBF002101644FF40031C0F836
:1019E4000412416CC9071FBF002141644FF48021D8
:1019F400C0F80412816CC9071FBF002181644FF431
:101A04000021C0F80412DCBD00F0C8F96C46CDE931
:101A140000012046002100F01DF80949204600F08D
:101A240045F808484FF480510160402101604FF4AB
:101A34008071416000F0C5F9FEDE00BF04B10040D2
:101A4400000000000805005000F0032000F0FF0033
:101A540040B50040F0B503AF4DF804BD124A12681A
:101A6400D0E90034258892096E1C6FF31F3559554F
:101A740000232680D0E900100488661C42F080050B
:101A84006FF31F34B3EBD21F08BF02F07F05B3EB33
:101A9400D21F0D554FEAD21534462A460680ECD1A2
:101AA4005DF804BBF0BD00BF041000E0F0B503AF67
:101AB4004DF804BD8AB27F2A0AD3D0E9003441F03C
:101AC400800125886E1C6FF31F355955D109268076
:101AD400D0E9002003885C1C6FF31F33D1540480C9
:101AE4005DF804BBF0BDD4D4E0B502AF00F056F904
:101AF4006C46CDE9000120460021FFF7ABFF034906
:101B04002046FFF7D3FF00F05CF9FEDE0900000079
:101B1400DCB504AF00F042F96C46CDE90001204683
:101B24000421FFF797FF0D492046FFF7BFFF0C483C
:101B34000168090611D00021016000F02FF96C46FC
:101B4400CDE9000120460221FFF784FF0549204624
:101B5400FFF7ACFF044801210170DCBD0A0000005E
:101B6400000100400B00000006F0032007484FF47A
:101B7400803101604FF48051C0F83C124FF4807101
:101B840003480160034800F007B800BF04B30040F5
:101B94000C05005000110000D0B502AF0022012353
:101BA4000021012A05D0845C013203FA04F42143A4
:101BB400F7E709B101480160D0BD00BF00E100E0D2
:101BC400F0B503AF4DF804BD1E4C1F4D264604F579
:101BD400C670864212D06868014655E8010F8842F3
:101BE40004D145E80162002AF6D102E0BFF32F8F49
:101BF400F2E746F8841B00F0E9F8E8E713480F2100
:101C04000123416008210160114981608121C16083
:101C140010490A6863F302020A6040F202214FF499
:101C2400822281620C49C162002101630B49425046
:101C34000B490C4A42500C485DF804BBBDE8F04027
:101C4400FFF7AABF00C0032008F003200C150040D2
:101C5400080000066C16004021100100F4FCFFFF90
:101C6400F8FDFFFF0940040801110000BCB504AFF2
:101C74004FF080400125056000F090F86C46CDE9F6
:101C8400000120460221FFF7E5FE05492046FFF743
:101C94000DFF044805600448BDE8BC40FFF77CBF65
:101CA4000C0000000403004002110000014801215F
:101CB4000160704704100040BCB504AF0A480468D2
:101CC40000F06CF86D46CDE9000128460321FFF7CA
:101CD400C1FE06492846FFF7E9FE2046294600F0E2
:101CE40007F8204602B0B0BD5015004017000000B0
:101CF400F0B503AF4DF804BD0C460546D1E900012B
:101D04000C260A88531C6FF31F32865420460B801E
:101D14001449FFF7CBFE05F00F010820DFE801F0BE
:101D2400070D0F091521212121110B131600002085
:101D34000CE003200AE0062008E0012006E002206F
:101D440004E0052002E0072000E00420D4E90012AA
:101D540013885C1C6FF31F33C85414805DF804BBF4
:101D6400F0BDFEDE16000000E0B502AF00F016F88C
:101D74006C46CDE9000120460021FFF76BFE0349C4
:101D84002046FFF793FE00F01CF8FEDE180000006A
:101D940080B56F4600F015F8FEDED4D40649054838
:101DA4000968C9B20029054918BF00F5805018BF59
:101DB4000231704700D0032004ED00E002F003205C
:101DC400FFBEAABE62B6704772B6704740BF704786
:101DD40020BF704700F0A3B8042A38BFFFF7FABF4A
:101DE400B0B502AFA2F1040C012303EB9C0313F082
:101DF40003030ED08E4604465EF8045B012B44F8C0
:101E0400045B1FD1634620467146BCF10C0F04D21B
:101E140012E01346BCF10C0F0ED30D68103B0560A5
:101E2400032B4D6845608D688560CD6801F1100114
:101E3400C56000F11000F0D802F00302BDE8B04024
:101E4400FFF7C8BF4D68022B456007D1A2F1080314
:101E540008310830BCF10C0FDFD2EDE78B680C3190
:101E64008360A2F10C030C30BCF10C0FD5D2E3E774
:101E74000B4611461A4600F08FB81346D2B2042915
:101E840038BFFFF7F5BFD0B502AFA1F1040E42EAA7
:101E94000363012443EA024304EB9E0443EA02235E
:101EA40014F0030410D08446012C4CF8043B10D1E8
:101EB40074466046BEF10C0F1ED201F00301BDE86A
:101EC400D0406046FFF7D4BF0C46BEF10C0F13D2CE
:101ED400F3E7022C436007D10830A1F108048446DB
:101EE400BEF10C0F08D2E8E783600C30A1F10C04BA
:101EF4008446BEF10C0FE0D3C0E90033103CC0E9C6
:101F040002331030032CF7D8844601F00301BDE8F6
:101F1400D0406046FFF7ACBF0022FFF7AEBFF0B57C
:101F240003AF4DF8048DA2B3531E02F0030C032B30
:101F340014D20022BCF1000F2BD08B5CBCF1010F3A
:101F4400835426D0531CBCF1020FCE5CC65420D05F
:101F54000232895C81545DF8048BF0BDACEB020E57
:101F640001F10108441C6FF0030208EB0206A518F6
:101F74000432F378EB7033792B7173796B71B37925
:101F8400AB710EEB02030433EFD10432BCF1000F4A
:101F9400D3D15DF8048BF0BDD0B502AF12B3531E9C
:101FA40002F0030C032B01D200220FE0ACEB020E73
:101FB400421C6FF00303D4180433A17161712171C1
:101FC400E1700EEB03040434F5D11A1DBCF1000FCB
:101FD4001ABF8154BCF1010FD0BD0244BCF1020F01
:0A1FE400517000D1D0BD9170D0BD46
:0C1FF000711C0000C51B0000711B0000EC
:040000030000167D66
:00000001FF

View file

@ -0,0 +1,78 @@
#![deny(unused_must_use)]
#![no_main]
#![no_std]
use hal::{
led,
radio::{self, Channel, Packet},
};
use heapless::{consts, LinearMap};
use panic_abort as _;
static FROM: &[u8] = &[
// <redacted>
];
static TO: &[u8] = &[
// <redacted>
];
// store the secret rather than the plaintext -- otherwise `strings $elf` will reveal the answer
static SECRET: &[u8] = b"<redacted>";
#[no_mangle]
fn main() -> ! {
let (mut rtx, mut rrx) = radio::claim(Channel::_26);
let led = led::Green;
let mut dict = LinearMap::<_, _, consts::U128>::new();
for (&from, &to) in FROM.iter().zip(TO.iter()) {
dict.insert(from, to).ok();
}
let task = async {
let mut packet = Packet::new().await;
let mut on = true;
loop {
let crcres = rrx.read(&mut packet).await;
// toggle LED on each new packet
if on {
led.on();
} else {
led.off();
}
on = !on;
if crcres.is_ok() {
if packet.is_empty() {
packet.copy_from_slice(SECRET);
} else if packet.len() == 1 {
let p = packet[0];
let c = dict.get(&p).unwrap_or(&p);
packet.copy_from_slice(&[*c]);
} else {
// encrypt
for slot in packet.iter_mut() {
if let Some(c) = dict.get(slot) {
*slot = *c;
}
}
let matches = &packet[..] == SECRET;
packet.copy_from_slice(if matches {
led::Blue.on();
b"correct"
} else {
led::Blue.off();
b"incorrect"
});
}
rtx.write(&packet).await.ok();
}
}
};
executor::run!(task)
}

View file

@ -0,0 +1,301 @@
:1010000000C00320B5180000FD1F0000FD1F0000F8
:10101000FD1F0000FD1F0000FD1F0000000000007C
:10102000000000000000000000000000FD1F0000A4
:10103000FD1F000000000000FD1F0000FD1F00005C
:101040005D19000061190000FD1F0000851B0000F4
:10105000FD1F0000FD1F0000FD1F0000FD1F000020
:10106000FD1F0000FD1F0000FD1F0000B51B00005C
:10107000FD1F0000FD1F0000FD1F0000FD1F000000
:10108000FD1F0000FD1F0000FD1F0000FD1F0000F0
:10109000FD1F0000FD1F0000FD1F0000FD1F0000E0
:1010A000FD1F0000FD1F0000FD1F0000FD1F0000D0
:1010B000FD1F0000FD1F00000000000000000000F8
:1010C000FD1F0000FD1F0000FD1F0000FD1F0000B0
:1010D000FD1F0000FD1F0000FD1F0000FD1F0000A0
:1010E000FD1F0000FD1F0000FD1F000000000000AC
:1010F00000000000FD1F000000000000FD1F0000B8
:10110000525B5D4D446657777E636A21313A3B649A
:1011100073622E347156424A5C3C7B2225292A4C4C
:10112000494758362327375E4041515F6972793EFF
:101130007C28657D596F356E7024763F336C383D61
:10114000264E5A482B672F453020756168743253FC
:101150007A2C552D50784B544F4643606B6D394770
:101160005C75783322576E53516C2C7348204F6A4C
:1011700049313F723D2F215468715D246F746B7B40
:101180005B2D3B25645E61632A2339267D36504200
:1011900052585A692755655F402E4A663556416D4B
:1011A000293C767037774D384460624B434C3A287F
:1011B0007C32453E2B464E7A3059347E67790000AA
:1011C0004E4B62657E6A4422277D445F627D4326E2
:1011D00051265F624326653744266544434B584495
:1011E0007A2B264F262858445B3527496235446EB2
:1011F000277D7E6A4B275F2C636F72726563740074
:0C120000696E636F72726563740B01000D
:10120C0004C8C9B252003AB110F8023B023A8B4200
:10121C00F9D1411E023801E00020002100B9002163
:10122C000846704780B56F46017839B1032902D161
:10123C004178012904D100F02DFBFEDE0021417024
:10124C00064901220978C9B2002908BF032202709D
:10125C004270B1FA81F0400980BD00BF06F0032056
:10126C0080B56F46DAB0DFF8DC850120D8E84F1F77
:10127C00002940F0D482C8E8410F0029F6D1C749B3
:10128C000DF11C0CDFF8C8E50520DFF8C8950CF152
:10129C00040AC1F8FC00002107915F2920D0079EA9
:1012AC0052461EF8015019F80100013173003BB190
:1012BC0012F8024B023B8442F9D1531E023A01E070
:1012CC00002200230AB11D70E7E77F2EE5D80AF84B
:1012DC0016000AEB46004570079801300790DCE7D2
:1012EC0048A8AE4C00F12A01019100F129010091AE
:1012FC0000F12401039100F13001059100F12C0162
:10130C00049100F1280110300DF5B07B00260690F9
:10131C004FF0010A4FF0030900208DF83861CDE938
:10132C004ACBCDE948BB0291C0B2DFE810F0060011
:10133C004E024E0222003B0009008DF83C611DE07C
:10134C009DF84C01DFE810F0F70042024102FD006D
:10135C00070055004F009DF85401810700F0FA80FA
:10136C00032840F033829DF85501012840F0F480A9
:10137C002CE29DF83C01012800F02882D8F80400EA
:10138C0060B1016858E8012F824204D148E801128B
:10139C00002AF3D118E0BFF32F8FEFE703208DF86D
:1013AC003C018EE19DF84801DFE810F03800100296
:1013BC000F023C00060016009DF85401810723D053
:1013CC00032800F08C8101E20221C1708DF839A153
:1013DC004C908DF83CA11BE09DF85C0188B1032872
:1013EC0000F0B481F2E19DF85001012840F04081F9
:1013FC00ECE19DF8580148B1032840F0E781559D78
:10140C00BEE0DDE953019FE1539867E1549DB6E0DE
:10141C0006988DF84861509048984F90ADF84C6103
:10142C00509851900498FFF7FDFE10B18DF848913B
:10143C0005E04FF48070ADF84901012048E100212E
:10144C00022082B2022A01D104203AE1ADF8340123
:10145C004023ADF836119DF83911514A002914BFBB
:10146C0053601360000481F001018DF83911CFD164
:10147C004C98C17803290BD0022919D13A21382272
:10148C00C1704C98DFF8E413043000F058FE4CE0C7
:10149C0001794A988DF86011FFF7B2FE002808BF59
:1014AC0058464C99007881F803904C9908713CE0AF
:1014BC00061D881EC5B25DB134464A9814F8011B4E
:1014CC00FFF79EFE08B100783070013D2646F2E72A
:1014DC004C9CE0783A280AD1DFF89013201D884202
:1014EC0012D0DFF88813382200F0F2FD60B1DB482F
:1014FC004FF48051092201600B20E0704C98DC49BC
:10150C00043000F01CFE0EE0D4484FF480514160D2
:10151C000920E070D7484C9A01460068D1F80310B6
:10152C00C2F807105060C94C002606988DF84C6123
:10153C0050904B984F90DDE94F015190ADF85061B0
:10154C0052910598FFF76EFE08B10320B6E0559650
:10155C00519854908DF8556198F803000121C0B250
:10156C00022808BF032102288DF854118DF855115B
:10157C0001D10420A2E0029D8DF858615495559537
:10158C00002100208DF860A101290BD01BF801204F
:10159C0001310AFA02F21043F6E700BF0C140040C6
:1015AC000805005008B1B449086098F8010000F033
:1015BC00030001287AD0A0BB022088F8010000F0BB
:1015CC0005FDCDE958015846022100F05BFBAB4903
:1015DC00584600F083FB286800680330C4F8F80014
:1015EC009D4801464FF48040C1F80003D1F8F80142
:1015FC0040F48010C1F8F80198F80200C0B201283C
:10160C000FD1954888F80290C0F804A000F0DEFCD9
:10161C00CDE958015846022100F034FB5846984950
:10162C0042E000F061FCC5B295B3012D3ED0022D15
:10163C0040F0CF8088484FF0006188F803A0C0F8D4
:10164C00FC12C0F824A000F0C1FCCDE958015846AA
:10165C00022100F017FB8B49584600F03FFB58461F
:10166C008DF860A100F0B0FB8DF858A18DF8506199
:10167C0098F80300C0B201284FF0010008BF032006
:10168C008DF8500101D1062018E08DF84CA1BFE671
:10169C0000F024FC00F09AFCCDE9580158460221D8
:1016AC0000F0F0FA7849584600F018FB58468DF8CF
:1016BC0060A100F089FB8DF8589105208DF84C0144
:1016CC0005208DF8380100F09BFC9DF838012BE6C5
:1016DC00000649D003988DF854615390549098F8B3
:1016EC000100C0B210B1022867D095E000F0FCFBFD
:1016FC005FFA80F9B9F1000F51D0B9F1010F5CD04C
:10170C00B9F1020F74D15498006800680330C4F822
:10171C00F800514888F802A0C0F800A000F056FC70
:10172C00CDE958015846022100F0ACFA4C49584614
:10173C0000F0D4FA00994FF0030901988DF854A1E8
:10174C008DF85C6154915390CDE9550198F80200E5
:10175C0000F00300DFE800F06002101C05208DF89B
:10176C0048018DF85C916AE621688DF848A19DF8D6
:10177C00490180F0010064E688F802605598067013
:10178C003548D0F8F803569900F00100087001E0D4
:10179C0088F802608DF85CA19DF84A0198E700F08A
:1017AC009DFB00F013FCCDE958015846022100F0D6
:1017BC0069FA2C49584600F091FA04204FF00309BD
:1017CC008DF848018DF8549139E6FEDE00F062F890
:1017DC00FEDE00F0FBFB58ACCDE9580100212046A1
:1017EC0000F050FA2949204600F078FA28460DE01E
:1017FC0000F0ECFB58ACCDE958010021204600F07C
:10180C0041FA1949204600F069FA4846214600F091
:10181C0087FB00F0C1FBFEDE00F07EFAFEDEBFF3BC
:10182C002F8F00F0D3FB07ACCDE907010021204638
:10183C0000F028FA0449204600F050FA00F0D9FBD9
:10184C00FEDE00BF08F003200D0000000C14004069
:10185C005F11000000110000081000400805005046
:10186C000F0000000E00000010000000C01100006E
:10187C0000120000F811000080E100E011000000EF
:10188C0012000000140000001300000015000000FE
:10189C0000F0B0BB80B56F4600F001F8FEDE80B5FD
:1018AC006F4600F08DFBFEDE80B56F461B481D4A6F
:1018BC00016841F0807101601948002141600168A4
:1018CC0011400131016018480121C0F81015016068
:1018DC0016488160016016481649091A21F0030167
:1018EC0000F0CFFC14481549091A21F003021449E1
:1018FC0000F027FC00F080FB12484FF48A51124C88
:10190C00124D01600161AC4202D201CC8047FAE772
:10191C00FFF7BEFFFFF7A4FCFEDE00BFFCED00E00E
:10192C00001000E0FEFFFF000800004000B0004087
:10193C0000F0032010F0032010F0032010F003201F
:10194C00A02200000805005094220000A0220000F4
:10195C0000F0F6B9F0B503AF2DE9C00B00F036FB83
:10196C006C46CDE900012046042100F08BF9794941
:10197C00204600F0B3F9784A906B000605D00020A1
:10198C009063D2F80402400406D41068000607D015
:10199C004FF0040810461BE091464FF002081AE085
:1019AC00104650F8481F090602D04FF000080FE00F
:1019BC00104650F80C1F090602D04FF0010807E042
:1019CC00104650F86C1F090600F0C0804FF0030859
:1019DC0091460021016000F0F9FA6E460446CDE90B
:1019EC0000010D463046032100F04CF95B493046AE
:1019FC0000F074F928880C22411C6FF31F3022541C
:101A0C0030462980564900F069F9DFE808F0037286
:101A1C002B482100DDE9000100250A88531C6FF3D7
:101A2C001F3285540B8000F0D1FA6C46CDE90001D1
:101A3C002046022100F026F94E49204600F04EF9CE
:101A4C004FF000600421C9F808024648457061E077
:101A5C00DDE9000104240A88531C6FF31F328454FF
:101A6C000B8070E0DDE9000102240A883D4D531C17
:101A7C006FF31F3284540B806878000666D100F037
:101A8C00A5FA6C46CDE900012046022100F0FAF8D7
:101A9C003649204600F022F90120687053E0DDE958
:101AAC000012032013885C1C6FF31F33C8542D499C
:101ABC0014804A78D2B2022A48D14FF48042C9F835
:101ACC000422D9F8002122F48012C9F800214FF029
:101ADC000062C9F8082200224A70C87000F076FA39
:101AEC006C46CDE900012046022100F0CBF81E49DE
:101AFC0026E0DDE9000101240A88531C6FF31F3234
:101B0C00845418480B804178C9B2012904D00229A9
:101B1C001CD10221C17016E08178C9B2012915D1FE
:101B2C000021C9F86C1041700221817000F04EFA4E
:101B3C006C46CDE900012046022100F0A3F80C49C7
:101B4C00204600F0CBF8BDE80C0BF0BD00F0E4F83B
:101B5C00FEDE00BF02000000001100400300000088
:101B6C000800000008F0032007000000050000003A
:101B7C000600000004000000DCB504AF00F026FAFB
:101B8C006C46CDE900012046042100F07BF80449A5
:101B9C00204600F0A3F8034800210160DCBD00BF23
:101BAC000100000018310040DCB504AF2F4801687B
:101BBC00C90741D1C16BC90722D000212F4CC16389
:101BCC002D490A88931C013204EA03332C4C236000
:101BDC000A8091B20C22B1FBF2F202EB4202A1EBB1
:101BEC00820103290CD8DFE801F002070207214922
:101BFC004FF480724A6003E01E494FF480720A6011
:101C0C00016CC9071FBF002101644FF40031C0F8FB
:101C1C000412416CC9071FBF002141644FF480219D
:101C2C00C0F80412816CC9071FBF002181644FF4F6
:101C3C000021C0F80412DCBD00F0C8F96C46CDE9F7
:101C4C0000012046002100F01DF80949204600F053
:101C5C0045F808484FF480510160402101604FF471
:101C6C008071416000F0C5F9FEDE00BF04B1004098
:101C7C00000000000805005000F0032000F0FF00F9
:101C8C0040B50040F0B503AF4DF804BD124A1268E0
:101C9C00D0E90034258892096E1C6FF31F35595515
:101CAC0000232680D0E900100488661C42F08005D1
:101CBC006FF31F34B3EBD21F08BF02F07F05B3EBF9
:101CCC00D21F0D554FEAD21534462A460680ECD168
:101CDC005DF804BBF0BD00BF041000E0F0B503AF2D
:101CEC004DF804BD8AB27F2A0AD3D0E9003441F002
:101CFC00800125886E1C6FF31F355955D10926803C
:101D0C00D0E9002003885C1C6FF31F33D15404808E
:101D1C005DF804BBF0BDD4D4E0B502AF00F056F9C9
:101D2C006C46CDE9000120460021FFF7ABFF0349CB
:101D3C002046FFF7D3FF00F05CF9FEDE090000003F
:101D4C00DCB504AF00F042F96C46CDE90001204649
:101D5C000421FFF797FF0D492046FFF7BFFF0C4802
:101D6C000168090611D00021016000F02FF96C46C2
:101D7C00CDE9000120460221FFF784FF05492046EA
:101D8C00FFF7ACFF044801210170DCBD0A00000024
:101D9C00000100400B00000006F0032007484FF440
:101DAC00803101604FF48051C0F83C124FF48071C7
:101DBC0003480160034800F007B800BF04B30040BB
:101DCC000C05005009120000D0B502AF002201230F
:101DDC000021012A05D0845C013203FA04F421436A
:101DEC00F7E709B101480160D0BD00BF00E100E098
:101DFC00F0B503AF4DF804BD1E4C1F4D264604F53F
:101E0C00C670864212D06868014655E8010F8842B8
:101E1C0004D145E80162002AF6D102E0BFF32F8F0E
:101E2C00F2E746F8841B00F0E9F8E8E713480F21C5
:101E3C000123416008210160114981608121C16049
:101E4C0010490A6863F302020A6040F202214FF45F
:101E5C00822281620C49C162002101630B4942500C
:101E6C000B490C4A42500C485DF804BBBDE8F040ED
:101E7C00FFF7AABF00C0032008F003200C15004098
:101E8C00080000066C16004021100100F4FCFFFF56
:101E9C00F8FDFFFF094004080A120000BCB504AFAE
:101EAC004FF080400125056000F090F86C46CDE9BC
:101EBC00000120460221FFF7E5FE05492046FFF709
:101ECC000DFF044805600448BDE8BC40FFF77CBF2B
:101EDC000C000000040300400B120000014801211B
:101EEC000160704704100040BCB504AF0A48046898
:101EFC0000F06CF86D46CDE9000128460321FFF790
:101F0C00C1FE06492846FFF7E9FE2046294600F0A7
:101F1C0007F8204602B0B0BD501500401700000075
:101F2C00F0B503AF4DF804BD0C460546D1E90001F0
:101F3C000C260A88531C6FF31F32865420460B80E4
:101F4C001449FFF7CBFE05F00F010820DFE801F084
:101F5C00070D0F091521212121110B13160000204B
:101F6C000CE003200AE0062008E0012006E0022035
:101F7C0004E0052002E0072000E00420D4E9001270
:101F8C0013885C1C6FF31F33C85414805DF804BBBA
:101F9C00F0BDFEDE16000000E0B502AF00F016F852
:101FAC006C46CDE9000120460021FFF76BFE03498A
:101FBC002046FFF793FE00F01CF8FEDE1800000030
:101FCC0080B56F4600F015F8FEDED4D406490548FE
:101FDC000968C9B20029054918BF00F5805018BF1F
:101FEC000231704700D0032004ED00E002F0032022
:101FFC00FFBEAABE62B6704772B6704740BF70474C
:10200C0020BF7047F0B503AF4DF8048DA2B3531E3B
:10201C0002F0030C032B14D20022BCF1000F2BD0C6
:10202C008B5CBCF1010F835426D0531CBCF1020F06
:10203C00CE5CC65420D00232895C81545DF8048B8E
:10204C00F0BDACEB020E01F10108441C6FF0030271
:10205C0008EB0206A5180432F378EB7033792B7178
:10206C0073796B71B379AB710EEB02030433EFD15F
:10207C000432BCF1000FD3D15DF8048BF0BDD0B5A8
:10208C0002AF12B3531E02F0030C032B01D2002239
:10209C000FE0ACEB020E421C6FF00303D4180433B8
:1020AC00A17161712171E1700EEB03040434F5D15F
:1020BC001A1DBCF1000F1ABF8154BCF1010FD0BD29
:1020CC000244BCF1020F517000D1D0BD9170D0BD53
:1020DC00F0B503AF2DE9000B4AB3A2F1010EC2F12A
:1020EC00000C0023CC5CC55CA54224D19E451ED0BF
:1020FC0001EB030800EB030998F8014099F8015033
:10210C00A54218D10CEB0306B41C10D098F8024071
:10211C0099F80250A5420ED1F41C08D098F803404F
:10212C0099F80350A54206D104339A42DAD1002023
:10213C00BDE8000BF0BD281BBDE8000BF0BDFFF7A0
:10214C0061BF042A38BFFFF7FABFB0B502AFA2F1E6
:10215C00040C012303EB9C0313F003030ED08E46F7
:10216C0004465EF8045B012B44F8045B1FD1634604
:10217C0020467146BCF10C0F04D212E01346BCF1A0
:10218C000C0F0ED30D68103B0560032B4D6845609A
:10219C008D688560CD6801F11001C56000F11000FB
:1021AC00F0D802F00302BDE8B040FFF7C8BF4D689D
:1021BC00022B456007D1A2F1080308310830BCF1AD
:1021CC000C0FDFD2EDE78B680C318360A2F10C03AE
:1021DC000C30BCF10C0FD5D2E3E70B4611461A4676
:1021EC00FFF74DBF1346D2B2042938BFFFF7F5BF36
:1021FC00D0B502AFA1F1040E42EA0363012443EA15
:10220C00024304EB9E0443EA022314F0030410D0AF
:10221C008446012C4CF8043B10D174466046BEF148
:10222C000C0F1ED201F00301BDE8D0406046FFF751
:10223C00D4BF0C46BEF10C0F13D2F3E7022C436053
:10224C0007D10830A1F108048446BEF10C0F08D266
:10225C00E8E783600C30A1F10C048446BEF10C0F4E
:10226C00E0D3C0E90033103CC0E902331030032C3A
:10227C00F7D8844601F00301BDE8D0406046FFF773
:08228C00ACBF0022FFF7AEBF5A
:0C229400A91E0000FD1D0000A91D000097
:04000003000018B52C
:00000001FF

View file

@ -0,0 +1,301 @@
:1010000000C00320B5180000FD1F0000FD1F0000F8
:10101000FD1F0000FD1F0000FD1F0000000000007C
:10102000000000000000000000000000FD1F0000A4
:10103000FD1F000000000000FD1F0000FD1F00005C
:101040005D19000061190000FD1F0000851B0000F4
:10105000FD1F0000FD1F0000FD1F0000FD1F000020
:10106000FD1F0000FD1F0000FD1F0000B51B00005C
:10107000FD1F0000FD1F0000FD1F0000FD1F000000
:10108000FD1F0000FD1F0000FD1F0000FD1F0000F0
:10109000FD1F0000FD1F0000FD1F0000FD1F0000E0
:1010A000FD1F0000FD1F0000FD1F0000FD1F0000D0
:1010B000FD1F0000FD1F00000000000000000000F8
:1010C000FD1F0000FD1F0000FD1F0000FD1F0000B0
:1010D000FD1F0000FD1F0000FD1F0000FD1F0000A0
:1010E000FD1F0000FD1F0000FD1F000000000000AC
:1010F00000000000FD1F000000000000FD1F0000B8
:10110000525B5D4D446657777E636A21313A3B649A
:1011100073622E347156424A5C3C7B2225292A4C4C
:10112000494758362327375E4041515F6972793EFF
:101130007C28657D596F356E7024763F336C383D61
:10114000264E5A482B672F453020756168743253FC
:101150007A2C552D50784B544F4643606B6D394770
:101160005C75783322576E53516C2C7348204F6A4C
:1011700049313F723D2F215468715D246F746B7B40
:101180005B2D3B25645E61632A2339267D36504200
:1011900052585A692755655F402E4A663556416D4B
:1011A000293C767037774D384460624B434C3A287F
:1011B0007C32453E2B464E7A3059347E67790000AA
:1011C0004E4B62657E6A4422277D445F627D4326E2
:1011D00051265F624326653744266544434B584495
:1011E0007A2B264F262858445B3527496235446EB2
:1011F000277D7E6A4B275F2C636F72726563740074
:0C120000696E636F72726563740B01000D
:10120C0004C8C9B252003AB110F8023B023A8B4200
:10121C00F9D1411E023801E00020002100B9002163
:10122C000846704780B56F46017839B1032902D161
:10123C004178012904D100F02DFBFEDE0021417024
:10124C00064901220978C9B2002908BF032202709D
:10125C004270B1FA81F0400980BD00BF06F0032056
:10126C0080B56F46DAB0DFF8DC850120D8E84F1F77
:10127C00002940F0D482C8E8410F0029F6D1C749B3
:10128C000DF11C0CDFF8C8E51E20DFF8C8950CF139
:10129C00040AC1F8FC00002107915F2920D0079EA9
:1012AC0052461EF8015019F80100013173003BB190
:1012BC0012F8024B023B8442F9D1531E023A01E070
:1012CC00002200230AB11D70E7E77F2EE5D80AF84B
:1012DC0016000AEB46004570079801300790DCE7D2
:1012EC0048A8AE4C00F12A01019100F129010091AE
:1012FC0000F12401039100F13001059100F12C0162
:10130C00049100F1280110300DF5B07B00260690F9
:10131C004FF0010A4FF0030900208DF83861CDE938
:10132C004ACBCDE948BB0291C0B2DFE810F0060011
:10133C004E024E0222003B0009008DF83C611DE07C
:10134C009DF84C01DFE810F0F70042024102FD006D
:10135C00070055004F009DF85401810700F0FA80FA
:10136C00032840F033829DF85501012840F0F480A9
:10137C002CE29DF83C01012800F02882D8F80400EA
:10138C0060B1016858E8012F824204D148E801128B
:10139C00002AF3D118E0BFF32F8FEFE703208DF86D
:1013AC003C018EE19DF84801DFE810F03800100296
:1013BC000F023C00060016009DF85401810723D053
:1013CC00032800F08C8101E20221C1708DF839A153
:1013DC004C908DF83CA11BE09DF85C0188B1032872
:1013EC0000F0B481F2E19DF85001012840F04081F9
:1013FC00ECE19DF8580148B1032840F0E781559D78
:10140C00BEE0DDE953019FE1539867E1549DB6E0DE
:10141C0006988DF84861509048984F90ADF84C6103
:10142C00509851900498FFF7FDFE10B18DF848913B
:10143C0005E04FF48070ADF84901012048E100212E
:10144C00022082B2022A01D104203AE1ADF8340123
:10145C004023ADF836119DF83911514A002914BFBB
:10146C0053601360000481F001018DF83911CFD164
:10147C004C98C17803290BD0022919D13A21382272
:10148C00C1704C98DFF8E413043000F058FE4CE0C7
:10149C0001794A988DF86011FFF7B2FE002808BF59
:1014AC0058464C99007881F803904C9908713CE0AF
:1014BC00061D881EC5B25DB134464A9814F8011B4E
:1014CC00FFF79EFE08B100783070013D2646F2E72A
:1014DC004C9CE0783A280AD1DFF89013201D884202
:1014EC0012D0DFF88813382200F0F2FD60B1DB482F
:1014FC004FF48051092201600B20E0704C98DC49BC
:10150C00043000F01CFE0EE0D4484FF480514160D2
:10151C000920E070D7484C9A01460068D1F80310B6
:10152C00C2F807105060C94C002606988DF84C6123
:10153C0050904B984F90DDE94F015190ADF85061B0
:10154C0052910598FFF76EFE08B10320B6E0559650
:10155C00519854908DF8556198F803000121C0B250
:10156C00022808BF032102288DF854118DF855115B
:10157C0001D10420A2E0029D8DF858615495559537
:10158C00002100208DF860A101290BD01BF801204F
:10159C0001310AFA02F21043F6E700BF0C140040C6
:1015AC000805005008B1B449086098F8010000F033
:1015BC00030001287AD0A0BB022088F8010000F0BB
:1015CC0005FDCDE958015846022100F05BFBAB4903
:1015DC00584600F083FB286800680330C4F8F80014
:1015EC009D4801464FF48040C1F80003D1F8F80142
:1015FC0040F48010C1F8F80198F80200C0B201283C
:10160C000FD1954888F80290C0F804A000F0DEFCD9
:10161C00CDE958015846022100F034FB5846984950
:10162C0042E000F061FCC5B295B3012D3ED0022D15
:10163C0040F0CF8088484FF0006188F803A0C0F8D4
:10164C00FC12C0F824A000F0C1FCCDE958015846AA
:10165C00022100F017FB8B49584600F03FFB58461F
:10166C008DF860A100F0B0FB8DF858A18DF8506199
:10167C0098F80300C0B201284FF0010008BF032006
:10168C008DF8500101D1062018E08DF84CA1BFE671
:10169C0000F024FC00F09AFCCDE9580158460221D8
:1016AC0000F0F0FA7849584600F018FB58468DF8CF
:1016BC0060A100F089FB8DF8589105208DF84C0144
:1016CC0005208DF8380100F09BFC9DF838012BE6C5
:1016DC00000649D003988DF854615390549098F8B3
:1016EC000100C0B210B1022867D095E000F0FCFBFD
:1016FC005FFA80F9B9F1000F51D0B9F1010F5CD04C
:10170C00B9F1020F74D15498006800680330C4F822
:10171C00F800514888F802A0C0F800A000F056FC70
:10172C00CDE958015846022100F0ACFA4C49584614
:10173C0000F0D4FA00994FF0030901988DF854A1E8
:10174C008DF85C6154915390CDE9550198F80200E5
:10175C0000F00300DFE800F06002101C05208DF89B
:10176C0048018DF85C916AE621688DF848A19DF8D6
:10177C00490180F0010064E688F802605598067013
:10178C003548D0F8F803569900F00100087001E0D4
:10179C0088F802608DF85CA19DF84A0198E700F08A
:1017AC009DFB00F013FCCDE958015846022100F0D6
:1017BC0069FA2C49584600F091FA04204FF00309BD
:1017CC008DF848018DF8549139E6FEDE00F062F890
:1017DC00FEDE00F0FBFB58ACCDE9580100212046A1
:1017EC0000F050FA2949204600F078FA28460DE01E
:1017FC0000F0ECFB58ACCDE958010021204600F07C
:10180C0041FA1949204600F069FA4846214600F091
:10181C0087FB00F0C1FBFEDE00F07EFAFEDEBFF3BC
:10182C002F8F00F0D3FB07ACCDE907010021204638
:10183C0000F028FA0449204600F050FA00F0D9FBD9
:10184C00FEDE00BF08F003200D0000000C14004069
:10185C005F11000000110000081000400805005046
:10186C000F0000000E00000010000000C01100006E
:10187C0000120000F811000080E100E011000000EF
:10188C0012000000140000001300000015000000FE
:10189C0000F0B0BB80B56F4600F001F8FEDE80B5FD
:1018AC006F4600F08DFBFEDE80B56F461B481D4A6F
:1018BC00016841F0807101601948002141600168A4
:1018CC0011400131016018480121C0F81015016068
:1018DC0016488160016016481649091A21F0030167
:1018EC0000F0CFFC14481549091A21F003021449E1
:1018FC0000F027FC00F080FB12484FF48A51124C88
:10190C00124D01600161AC4202D201CC8047FAE772
:10191C00FFF7BEFFFFF7A4FCFEDE00BFFCED00E00E
:10192C00001000E0FEFFFF000800004000B0004087
:10193C0000F0032010F0032010F0032010F003201F
:10194C00A02200000805005094220000A0220000F4
:10195C0000F0F6B9F0B503AF2DE9C00B00F036FB83
:10196C006C46CDE900012046042100F08BF9794941
:10197C00204600F0B3F9784A906B000605D00020A1
:10198C009063D2F80402400406D41068000607D015
:10199C004FF0040810461BE091464FF002081AE085
:1019AC00104650F8481F090602D04FF000080FE00F
:1019BC00104650F80C1F090602D04FF0010807E042
:1019CC00104650F86C1F090600F0C0804FF0030859
:1019DC0091460021016000F0F9FA6E460446CDE90B
:1019EC0000010D463046032100F04CF95B493046AE
:1019FC0000F074F928880C22411C6FF31F3022541C
:101A0C0030462980564900F069F9DFE808F0037286
:101A1C002B482100DDE9000100250A88531C6FF3D7
:101A2C001F3285540B8000F0D1FA6C46CDE90001D1
:101A3C002046022100F026F94E49204600F04EF9CE
:101A4C004FF000600421C9F808024648457061E077
:101A5C00DDE9000104240A88531C6FF31F328454FF
:101A6C000B8070E0DDE9000102240A883D4D531C17
:101A7C006FF31F3284540B806878000666D100F037
:101A8C00A5FA6C46CDE900012046022100F0FAF8D7
:101A9C003649204600F022F90120687053E0DDE958
:101AAC000012032013885C1C6FF31F33C8542D499C
:101ABC0014804A78D2B2022A48D14FF48042C9F835
:101ACC000422D9F8002122F48012C9F800214FF029
:101ADC000062C9F8082200224A70C87000F076FA39
:101AEC006C46CDE900012046022100F0CBF81E49DE
:101AFC0026E0DDE9000101240A88531C6FF31F3234
:101B0C00845418480B804178C9B2012904D00229A9
:101B1C001CD10221C17016E08178C9B2012915D1FE
:101B2C000021C9F86C1041700221817000F04EFA4E
:101B3C006C46CDE900012046022100F0A3F80C49C7
:101B4C00204600F0CBF8BDE80C0BF0BD00F0E4F83B
:101B5C00FEDE00BF02000000001100400300000088
:101B6C000800000008F0032007000000050000003A
:101B7C000600000004000000DCB504AF00F026FAFB
:101B8C006C46CDE900012046042100F07BF80449A5
:101B9C00204600F0A3F8034800210160DCBD00BF23
:101BAC000100000018310040DCB504AF2F4801687B
:101BBC00C90741D1C16BC90722D000212F4CC16389
:101BCC002D490A88931C013204EA03332C4C236000
:101BDC000A8091B20C22B1FBF2F202EB4202A1EBB1
:101BEC00820103290CD8DFE801F002070207214922
:101BFC004FF480724A6003E01E494FF480720A6011
:101C0C00016CC9071FBF002101644FF40031C0F8FB
:101C1C000412416CC9071FBF002141644FF480219D
:101C2C00C0F80412816CC9071FBF002181644FF4F6
:101C3C000021C0F80412DCBD00F0C8F96C46CDE9F7
:101C4C0000012046002100F01DF80949204600F053
:101C5C0045F808484FF480510160402101604FF471
:101C6C008071416000F0C5F9FEDE00BF04B1004098
:101C7C00000000000805005000F0032000F0FF00F9
:101C8C0040B50040F0B503AF4DF804BD124A1268E0
:101C9C00D0E90034258892096E1C6FF31F35595515
:101CAC0000232680D0E900100488661C42F08005D1
:101CBC006FF31F34B3EBD21F08BF02F07F05B3EBF9
:101CCC00D21F0D554FEAD21534462A460680ECD168
:101CDC005DF804BBF0BD00BF041000E0F0B503AF2D
:101CEC004DF804BD8AB27F2A0AD3D0E9003441F002
:101CFC00800125886E1C6FF31F355955D10926803C
:101D0C00D0E9002003885C1C6FF31F33D15404808E
:101D1C005DF804BBF0BDD4D4E0B502AF00F056F9C9
:101D2C006C46CDE9000120460021FFF7ABFF0349CB
:101D3C002046FFF7D3FF00F05CF9FEDE090000003F
:101D4C00DCB504AF00F042F96C46CDE90001204649
:101D5C000421FFF797FF0D492046FFF7BFFF0C4802
:101D6C000168090611D00021016000F02FF96C46C2
:101D7C00CDE9000120460221FFF784FF05492046EA
:101D8C00FFF7ACFF044801210170DCBD0A00000024
:101D9C00000100400B00000006F0032007484FF440
:101DAC00803101604FF48051C0F83C124FF48071C7
:101DBC0003480160034800F007B800BF04B30040BB
:101DCC000C05005009120000D0B502AF002201230F
:101DDC000021012A05D0845C013203FA04F421436A
:101DEC00F7E709B101480160D0BD00BF00E100E098
:101DFC00F0B503AF4DF804BD1E4C1F4D264604F53F
:101E0C00C670864212D06868014655E8010F8842B8
:101E1C0004D145E80162002AF6D102E0BFF32F8F0E
:101E2C00F2E746F8841B00F0E9F8E8E713480F21C5
:101E3C000123416008210160114981608121C16049
:101E4C0010490A6863F302020A6040F202214FF45F
:101E5C00822281620C49C162002101630B4942500C
:101E6C000B490C4A42500C485DF804BBBDE8F040ED
:101E7C00FFF7AABF00C0032008F003200C15004098
:101E8C00080000066C16004021100100F4FCFFFF56
:101E9C00F8FDFFFF094004080A120000BCB504AFAE
:101EAC004FF080400125056000F090F86C46CDE9BC
:101EBC00000120460221FFF7E5FE05492046FFF709
:101ECC000DFF044805600448BDE8BC40FFF77CBF2B
:101EDC000C000000040300400B120000014801211B
:101EEC000160704704100040BCB504AF0A48046898
:101EFC0000F06CF86D46CDE9000128460321FFF790
:101F0C00C1FE06492846FFF7E9FE2046294600F0A7
:101F1C0007F8204602B0B0BD501500401700000075
:101F2C00F0B503AF4DF804BD0C460546D1E90001F0
:101F3C000C260A88531C6FF31F32865420460B80E4
:101F4C001449FFF7CBFE05F00F010820DFE801F084
:101F5C00070D0F091521212121110B13160000204B
:101F6C000CE003200AE0062008E0012006E0022035
:101F7C0004E0052002E0072000E00420D4E9001270
:101F8C0013885C1C6FF31F33C85414805DF804BBBA
:101F9C00F0BDFEDE16000000E0B502AF00F016F852
:101FAC006C46CDE9000120460021FFF76BFE03498A
:101FBC002046FFF793FE00F01CF8FEDE1800000030
:101FCC0080B56F4600F015F8FEDED4D406490548FE
:101FDC000968C9B20029054918BF00F5805018BF1F
:101FEC000231704700D0032004ED00E002F0032022
:101FFC00FFBEAABE62B6704772B6704740BF70474C
:10200C0020BF7047F0B503AF4DF8048DA2B3531E3B
:10201C0002F0030C032B14D20022BCF1000F2BD0C6
:10202C008B5CBCF1010F835426D0531CBCF1020F06
:10203C00CE5CC65420D00232895C81545DF8048B8E
:10204C00F0BDACEB020E01F10108441C6FF0030271
:10205C0008EB0206A5180432F378EB7033792B7178
:10206C0073796B71B379AB710EEB02030433EFD15F
:10207C000432BCF1000FD3D15DF8048BF0BDD0B5A8
:10208C0002AF12B3531E02F0030C032B01D2002239
:10209C000FE0ACEB020E421C6FF00303D4180433B8
:1020AC00A17161712171E1700EEB03040434F5D15F
:1020BC001A1DBCF1000F1ABF8154BCF1010FD0BD29
:1020CC000244BCF1020F517000D1D0BD9170D0BD53
:1020DC00F0B503AF2DE9000B4AB3A2F1010EC2F12A
:1020EC00000C0023CC5CC55CA54224D19E451ED0BF
:1020FC0001EB030800EB030998F8014099F8015033
:10210C00A54218D10CEB0306B41C10D098F8024071
:10211C0099F80250A5420ED1F41C08D098F803404F
:10212C0099F80350A54206D104339A42DAD1002023
:10213C00BDE8000BF0BD281BBDE8000BF0BDFFF7A0
:10214C0061BF042A38BFFFF7FABFB0B502AFA2F1E6
:10215C00040C012303EB9C0313F003030ED08E46F7
:10216C0004465EF8045B012B44F8045B1FD1634604
:10217C0020467146BCF10C0F04D212E01346BCF1A0
:10218C000C0F0ED30D68103B0560032B4D6845609A
:10219C008D688560CD6801F11001C56000F11000FB
:1021AC00F0D802F00302BDE8B040FFF7C8BF4D689D
:1021BC00022B456007D1A2F1080308310830BCF1AD
:1021CC000C0FDFD2EDE78B680C318360A2F10C03AE
:1021DC000C30BCF10C0FD5D2E3E70B4611461A4676
:1021EC00FFF74DBF1346D2B2042938BFFFF7F5BF36
:1021FC00D0B502AFA1F1040E42EA0363012443EA15
:10220C00024304EB9E0443EA022314F0030410D0AF
:10221C008446012C4CF8043B10D174466046BEF148
:10222C000C0F1ED201F00301BDE8D0406046FFF751
:10223C00D4BF0C46BEF10C0F13D2F3E7022C436053
:10224C0007D10830A1F108048446BEF10C0F08D266
:10225C00E8E783600C30A1F10C048446BEF10C0F4E
:10226C00E0D3C0E90033103CC0E902331030032C3A
:10227C00F7D8844601F00301BDE8D0406046FFF773
:08228C00ACBF0022FFF7AEBF5A
:0C229400A91E0000FD1D0000A91D000097
:04000003000018B52C
:00000001FF

View file

@ -0,0 +1,301 @@
:1010000000C00320B5180000FD1F0000FD1F0000F8
:10101000FD1F0000FD1F0000FD1F0000000000007C
:10102000000000000000000000000000FD1F0000A4
:10103000FD1F000000000000FD1F0000FD1F00005C
:101040005D19000061190000FD1F0000851B0000F4
:10105000FD1F0000FD1F0000FD1F0000FD1F000020
:10106000FD1F0000FD1F0000FD1F0000B51B00005C
:10107000FD1F0000FD1F0000FD1F0000FD1F000000
:10108000FD1F0000FD1F0000FD1F0000FD1F0000F0
:10109000FD1F0000FD1F0000FD1F0000FD1F0000E0
:1010A000FD1F0000FD1F0000FD1F0000FD1F0000D0
:1010B000FD1F0000FD1F00000000000000000000F8
:1010C000FD1F0000FD1F0000FD1F0000FD1F0000B0
:1010D000FD1F0000FD1F0000FD1F0000FD1F0000A0
:1010E000FD1F0000FD1F0000FD1F000000000000AC
:1010F00000000000FD1F000000000000FD1F0000B8
:10110000525B5D4D446657777E636A21313A3B649A
:1011100073622E347156424A5C3C7B2225292A4C4C
:10112000494758362327375E4041515F6972793EFF
:101130007C28657D596F356E7024763F336C383D61
:10114000264E5A482B672F453020756168743253FC
:101150007A2C552D50784B544F4643606B6D394770
:101160005C75783322576E53516C2C7348204F6A4C
:1011700049313F723D2F215468715D246F746B7B40
:101180005B2D3B25645E61632A2339267D36504200
:1011900052585A692755655F402E4A663556416D4B
:1011A000293C767037774D384460624B434C3A287F
:1011B0007C32453E2B464E7A3059347E67790000AA
:1011C0004E4B62657E6A4422277D445F627D4326E2
:1011D00051265F624326653744266544434B584495
:1011E0007A2B264F262858445B3527496235446EB2
:1011F000277D7E6A4B275F2C636F72726563740074
:0C120000696E636F72726563740B01000D
:10120C0004C8C9B252003AB110F8023B023A8B4200
:10121C00F9D1411E023801E00020002100B9002163
:10122C000846704780B56F46017839B1032902D161
:10123C004178012904D100F02DFBFEDE0021417024
:10124C00064901220978C9B2002908BF032202709D
:10125C004270B1FA81F0400980BD00BF06F0032056
:10126C0080B56F46DAB0DFF8DC850120D8E84F1F77
:10127C00002940F0D482C8E8410F0029F6D1C749B3
:10128C000DF11C0CDFF8C8E53720DFF8C8950CF120
:10129C00040AC1F8FC00002107915F2920D0079EA9
:1012AC0052461EF8015019F80100013173003BB190
:1012BC0012F8024B023B8442F9D1531E023A01E070
:1012CC00002200230AB11D70E7E77F2EE5D80AF84B
:1012DC0016000AEB46004570079801300790DCE7D2
:1012EC0048A8AE4C00F12A01019100F129010091AE
:1012FC0000F12401039100F13001059100F12C0162
:10130C00049100F1280110300DF5B07B00260690F9
:10131C004FF0010A4FF0030900208DF83861CDE938
:10132C004ACBCDE948BB0291C0B2DFE810F0060011
:10133C004E024E0222003B0009008DF83C611DE07C
:10134C009DF84C01DFE810F0F70042024102FD006D
:10135C00070055004F009DF85401810700F0FA80FA
:10136C00032840F033829DF85501012840F0F480A9
:10137C002CE29DF83C01012800F02882D8F80400EA
:10138C0060B1016858E8012F824204D148E801128B
:10139C00002AF3D118E0BFF32F8FEFE703208DF86D
:1013AC003C018EE19DF84801DFE810F03800100296
:1013BC000F023C00060016009DF85401810723D053
:1013CC00032800F08C8101E20221C1708DF839A153
:1013DC004C908DF83CA11BE09DF85C0188B1032872
:1013EC0000F0B481F2E19DF85001012840F04081F9
:1013FC00ECE19DF8580148B1032840F0E781559D78
:10140C00BEE0DDE953019FE1539867E1549DB6E0DE
:10141C0006988DF84861509048984F90ADF84C6103
:10142C00509851900498FFF7FDFE10B18DF848913B
:10143C0005E04FF48070ADF84901012048E100212E
:10144C00022082B2022A01D104203AE1ADF8340123
:10145C004023ADF836119DF83911514A002914BFBB
:10146C0053601360000481F001018DF83911CFD164
:10147C004C98C17803290BD0022919D13A21382272
:10148C00C1704C98DFF8E413043000F058FE4CE0C7
:10149C0001794A988DF86011FFF7B2FE002808BF59
:1014AC0058464C99007881F803904C9908713CE0AF
:1014BC00061D881EC5B25DB134464A9814F8011B4E
:1014CC00FFF79EFE08B100783070013D2646F2E72A
:1014DC004C9CE0783A280AD1DFF89013201D884202
:1014EC0012D0DFF88813382200F0F2FD60B1DB482F
:1014FC004FF48051092201600B20E0704C98DC49BC
:10150C00043000F01CFE0EE0D4484FF480514160D2
:10151C000920E070D7484C9A01460068D1F80310B6
:10152C00C2F807105060C94C002606988DF84C6123
:10153C0050904B984F90DDE94F015190ADF85061B0
:10154C0052910598FFF76EFE08B10320B6E0559650
:10155C00519854908DF8556198F803000121C0B250
:10156C00022808BF032102288DF854118DF855115B
:10157C0001D10420A2E0029D8DF858615495559537
:10158C00002100208DF860A101290BD01BF801204F
:10159C0001310AFA02F21043F6E700BF0C140040C6
:1015AC000805005008B1B449086098F8010000F033
:1015BC00030001287AD0A0BB022088F8010000F0BB
:1015CC0005FDCDE958015846022100F05BFBAB4903
:1015DC00584600F083FB286800680330C4F8F80014
:1015EC009D4801464FF48040C1F80003D1F8F80142
:1015FC0040F48010C1F8F80198F80200C0B201283C
:10160C000FD1954888F80290C0F804A000F0DEFCD9
:10161C00CDE958015846022100F034FB5846984950
:10162C0042E000F061FCC5B295B3012D3ED0022D15
:10163C0040F0CF8088484FF0006188F803A0C0F8D4
:10164C00FC12C0F824A000F0C1FCCDE958015846AA
:10165C00022100F017FB8B49584600F03FFB58461F
:10166C008DF860A100F0B0FB8DF858A18DF8506199
:10167C0098F80300C0B201284FF0010008BF032006
:10168C008DF8500101D1062018E08DF84CA1BFE671
:10169C0000F024FC00F09AFCCDE9580158460221D8
:1016AC0000F0F0FA7849584600F018FB58468DF8CF
:1016BC0060A100F089FB8DF8589105208DF84C0144
:1016CC0005208DF8380100F09BFC9DF838012BE6C5
:1016DC00000649D003988DF854615390549098F8B3
:1016EC000100C0B210B1022867D095E000F0FCFBFD
:1016FC005FFA80F9B9F1000F51D0B9F1010F5CD04C
:10170C00B9F1020F74D15498006800680330C4F822
:10171C00F800514888F802A0C0F800A000F056FC70
:10172C00CDE958015846022100F0ACFA4C49584614
:10173C0000F0D4FA00994FF0030901988DF854A1E8
:10174C008DF85C6154915390CDE9550198F80200E5
:10175C0000F00300DFE800F06002101C05208DF89B
:10176C0048018DF85C916AE621688DF848A19DF8D6
:10177C00490180F0010064E688F802605598067013
:10178C003548D0F8F803569900F00100087001E0D4
:10179C0088F802608DF85CA19DF84A0198E700F08A
:1017AC009DFB00F013FCCDE958015846022100F0D6
:1017BC0069FA2C49584600F091FA04204FF00309BD
:1017CC008DF848018DF8549139E6FEDE00F062F890
:1017DC00FEDE00F0FBFB58ACCDE9580100212046A1
:1017EC0000F050FA2949204600F078FA28460DE01E
:1017FC0000F0ECFB58ACCDE958010021204600F07C
:10180C0041FA1949204600F069FA4846214600F091
:10181C0087FB00F0C1FBFEDE00F07EFAFEDEBFF3BC
:10182C002F8F00F0D3FB07ACCDE907010021204638
:10183C0000F028FA0449204600F050FA00F0D9FBD9
:10184C00FEDE00BF08F003200D0000000C14004069
:10185C005F11000000110000081000400805005046
:10186C000F0000000E00000010000000C01100006E
:10187C0000120000F811000080E100E011000000EF
:10188C0012000000140000001300000015000000FE
:10189C0000F0B0BB80B56F4600F001F8FEDE80B5FD
:1018AC006F4600F08DFBFEDE80B56F461B481D4A6F
:1018BC00016841F0807101601948002141600168A4
:1018CC0011400131016018480121C0F81015016068
:1018DC0016488160016016481649091A21F0030167
:1018EC0000F0CFFC14481549091A21F003021449E1
:1018FC0000F027FC00F080FB12484FF48A51124C88
:10190C00124D01600161AC4202D201CC8047FAE772
:10191C00FFF7BEFFFFF7A4FCFEDE00BFFCED00E00E
:10192C00001000E0FEFFFF000800004000B0004087
:10193C0000F0032010F0032010F0032010F003201F
:10194C00A02200000805005094220000A0220000F4
:10195C0000F0F6B9F0B503AF2DE9C00B00F036FB83
:10196C006C46CDE900012046042100F08BF9794941
:10197C00204600F0B3F9784A906B000605D00020A1
:10198C009063D2F80402400406D41068000607D015
:10199C004FF0040810461BE091464FF002081AE085
:1019AC00104650F8481F090602D04FF000080FE00F
:1019BC00104650F80C1F090602D04FF0010807E042
:1019CC00104650F86C1F090600F0C0804FF0030859
:1019DC0091460021016000F0F9FA6E460446CDE90B
:1019EC0000010D463046032100F04CF95B493046AE
:1019FC0000F074F928880C22411C6FF31F3022541C
:101A0C0030462980564900F069F9DFE808F0037286
:101A1C002B482100DDE9000100250A88531C6FF3D7
:101A2C001F3285540B8000F0D1FA6C46CDE90001D1
:101A3C002046022100F026F94E49204600F04EF9CE
:101A4C004FF000600421C9F808024648457061E077
:101A5C00DDE9000104240A88531C6FF31F328454FF
:101A6C000B8070E0DDE9000102240A883D4D531C17
:101A7C006FF31F3284540B806878000666D100F037
:101A8C00A5FA6C46CDE900012046022100F0FAF8D7
:101A9C003649204600F022F90120687053E0DDE958
:101AAC000012032013885C1C6FF31F33C8542D499C
:101ABC0014804A78D2B2022A48D14FF48042C9F835
:101ACC000422D9F8002122F48012C9F800214FF029
:101ADC000062C9F8082200224A70C87000F076FA39
:101AEC006C46CDE900012046022100F0CBF81E49DE
:101AFC0026E0DDE9000101240A88531C6FF31F3234
:101B0C00845418480B804178C9B2012904D00229A9
:101B1C001CD10221C17016E08178C9B2012915D1FE
:101B2C000021C9F86C1041700221817000F04EFA4E
:101B3C006C46CDE900012046022100F0A3F80C49C7
:101B4C00204600F0CBF8BDE80C0BF0BD00F0E4F83B
:101B5C00FEDE00BF02000000001100400300000088
:101B6C000800000008F0032007000000050000003A
:101B7C000600000004000000DCB504AF00F026FAFB
:101B8C006C46CDE900012046042100F07BF80449A5
:101B9C00204600F0A3F8034800210160DCBD00BF23
:101BAC000100000018310040DCB504AF2F4801687B
:101BBC00C90741D1C16BC90722D000212F4CC16389
:101BCC002D490A88931C013204EA03332C4C236000
:101BDC000A8091B20C22B1FBF2F202EB4202A1EBB1
:101BEC00820103290CD8DFE801F002070207214922
:101BFC004FF480724A6003E01E494FF480720A6011
:101C0C00016CC9071FBF002101644FF40031C0F8FB
:101C1C000412416CC9071FBF002141644FF480219D
:101C2C00C0F80412816CC9071FBF002181644FF4F6
:101C3C000021C0F80412DCBD00F0C8F96C46CDE9F7
:101C4C0000012046002100F01DF80949204600F053
:101C5C0045F808484FF480510160402101604FF471
:101C6C008071416000F0C5F9FEDE00BF04B1004098
:101C7C00000000000805005000F0032000F0FF00F9
:101C8C0040B50040F0B503AF4DF804BD124A1268E0
:101C9C00D0E90034258892096E1C6FF31F35595515
:101CAC0000232680D0E900100488661C42F08005D1
:101CBC006FF31F34B3EBD21F08BF02F07F05B3EBF9
:101CCC00D21F0D554FEAD21534462A460680ECD168
:101CDC005DF804BBF0BD00BF041000E0F0B503AF2D
:101CEC004DF804BD8AB27F2A0AD3D0E9003441F002
:101CFC00800125886E1C6FF31F355955D10926803C
:101D0C00D0E9002003885C1C6FF31F33D15404808E
:101D1C005DF804BBF0BDD4D4E0B502AF00F056F9C9
:101D2C006C46CDE9000120460021FFF7ABFF0349CB
:101D3C002046FFF7D3FF00F05CF9FEDE090000003F
:101D4C00DCB504AF00F042F96C46CDE90001204649
:101D5C000421FFF797FF0D492046FFF7BFFF0C4802
:101D6C000168090611D00021016000F02FF96C46C2
:101D7C00CDE9000120460221FFF784FF05492046EA
:101D8C00FFF7ACFF044801210170DCBD0A00000024
:101D9C00000100400B00000006F0032007484FF440
:101DAC00803101604FF48051C0F83C124FF48071C7
:101DBC0003480160034800F007B800BF04B30040BB
:101DCC000C05005009120000D0B502AF002201230F
:101DDC000021012A05D0845C013203FA04F421436A
:101DEC00F7E709B101480160D0BD00BF00E100E098
:101DFC00F0B503AF4DF804BD1E4C1F4D264604F53F
:101E0C00C670864212D06868014655E8010F8842B8
:101E1C0004D145E80162002AF6D102E0BFF32F8F0E
:101E2C00F2E746F8841B00F0E9F8E8E713480F21C5
:101E3C000123416008210160114981608121C16049
:101E4C0010490A6863F302020A6040F202214FF45F
:101E5C00822281620C49C162002101630B4942500C
:101E6C000B490C4A42500C485DF804BBBDE8F040ED
:101E7C00FFF7AABF00C0032008F003200C15004098
:101E8C00080000066C16004021100100F4FCFFFF56
:101E9C00F8FDFFFF094004080A120000BCB504AFAE
:101EAC004FF080400125056000F090F86C46CDE9BC
:101EBC00000120460221FFF7E5FE05492046FFF709
:101ECC000DFF044805600448BDE8BC40FFF77CBF2B
:101EDC000C000000040300400B120000014801211B
:101EEC000160704704100040BCB504AF0A48046898
:101EFC0000F06CF86D46CDE9000128460321FFF790
:101F0C00C1FE06492846FFF7E9FE2046294600F0A7
:101F1C0007F8204602B0B0BD501500401700000075
:101F2C00F0B503AF4DF804BD0C460546D1E90001F0
:101F3C000C260A88531C6FF31F32865420460B80E4
:101F4C001449FFF7CBFE05F00F010820DFE801F084
:101F5C00070D0F091521212121110B13160000204B
:101F6C000CE003200AE0062008E0012006E0022035
:101F7C0004E0052002E0072000E00420D4E9001270
:101F8C0013885C1C6FF31F33C85414805DF804BBBA
:101F9C00F0BDFEDE16000000E0B502AF00F016F852
:101FAC006C46CDE9000120460021FFF76BFE03498A
:101FBC002046FFF793FE00F01CF8FEDE1800000030
:101FCC0080B56F4600F015F8FEDED4D406490548FE
:101FDC000968C9B20029054918BF00F5805018BF1F
:101FEC000231704700D0032004ED00E002F0032022
:101FFC00FFBEAABE62B6704772B6704740BF70474C
:10200C0020BF7047F0B503AF4DF8048DA2B3531E3B
:10201C0002F0030C032B14D20022BCF1000F2BD0C6
:10202C008B5CBCF1010F835426D0531CBCF1020F06
:10203C00CE5CC65420D00232895C81545DF8048B8E
:10204C00F0BDACEB020E01F10108441C6FF0030271
:10205C0008EB0206A5180432F378EB7033792B7178
:10206C0073796B71B379AB710EEB02030433EFD15F
:10207C000432BCF1000FD3D15DF8048BF0BDD0B5A8
:10208C0002AF12B3531E02F0030C032B01D2002239
:10209C000FE0ACEB020E421C6FF00303D4180433B8
:1020AC00A17161712171E1700EEB03040434F5D15F
:1020BC001A1DBCF1000F1ABF8154BCF1010FD0BD29
:1020CC000244BCF1020F517000D1D0BD9170D0BD53
:1020DC00F0B503AF2DE9000B4AB3A2F1010EC2F12A
:1020EC00000C0023CC5CC55CA54224D19E451ED0BF
:1020FC0001EB030800EB030998F8014099F8015033
:10210C00A54218D10CEB0306B41C10D098F8024071
:10211C0099F80250A5420ED1F41C08D098F803404F
:10212C0099F80350A54206D104339A42DAD1002023
:10213C00BDE8000BF0BD281BBDE8000BF0BDFFF7A0
:10214C0061BF042A38BFFFF7FABFB0B502AFA2F1E6
:10215C00040C012303EB9C0313F003030ED08E46F7
:10216C0004465EF8045B012B44F8045B1FD1634604
:10217C0020467146BCF10C0F04D212E01346BCF1A0
:10218C000C0F0ED30D68103B0560032B4D6845609A
:10219C008D688560CD6801F11001C56000F11000FB
:1021AC00F0D802F00302BDE8B040FFF7C8BF4D689D
:1021BC00022B456007D1A2F1080308310830BCF1AD
:1021CC000C0FDFD2EDE78B680C318360A2F10C03AE
:1021DC000C30BCF10C0FD5D2E3E70B4611461A4676
:1021EC00FFF74DBF1346D2B2042938BFFFF7F5BF36
:1021FC00D0B502AFA1F1040E42EA0363012443EA15
:10220C00024304EB9E0443EA022314F0030410D0AF
:10221C008446012C4CF8043B10D174466046BEF148
:10222C000C0F1ED201F00301BDE8D0406046FFF751
:10223C00D4BF0C46BEF10C0F13D2F3E7022C436053
:10224C0007D10830A1F108048446BEF10C0F08D266
:10225C00E8E783600C30A1F10C048446BEF10C0F4E
:10226C00E0D3C0E90033103CC0E902331030032C3A
:10227C00F7D8844601F00301BDE8D0406046FFF773
:08228C00ACBF0022FFF7AEBF5A
:0C229400A91E0000FD1D0000A91D000097
:04000003000018B52C
:00000001FF

View file

@ -0,0 +1,301 @@
:1010000000C00320B5180000FD1F0000FD1F0000F8
:10101000FD1F0000FD1F0000FD1F0000000000007C
:10102000000000000000000000000000FD1F0000A4
:10103000FD1F000000000000FD1F0000FD1F00005C
:101040005D19000061190000FD1F0000851B0000F4
:10105000FD1F0000FD1F0000FD1F0000FD1F000020
:10106000FD1F0000FD1F0000FD1F0000B51B00005C
:10107000FD1F0000FD1F0000FD1F0000FD1F000000
:10108000FD1F0000FD1F0000FD1F0000FD1F0000F0
:10109000FD1F0000FD1F0000FD1F0000FD1F0000E0
:1010A000FD1F0000FD1F0000FD1F0000FD1F0000D0
:1010B000FD1F0000FD1F00000000000000000000F8
:1010C000FD1F0000FD1F0000FD1F0000FD1F0000B0
:1010D000FD1F0000FD1F0000FD1F0000FD1F0000A0
:1010E000FD1F0000FD1F0000FD1F000000000000AC
:1010F00000000000FD1F000000000000FD1F0000B8
:10110000525B5D4D446657777E636A21313A3B649A
:1011100073622E347156424A5C3C7B2225292A4C4C
:10112000494758362327375E4041515F6972793EFF
:101130007C28657D596F356E7024763F336C383D61
:10114000264E5A482B672F453020756168743253FC
:101150007A2C552D50784B544F4643606B6D394770
:101160005C75783322576E53516C2C7348204F6A4C
:1011700049313F723D2F215468715D246F746B7B40
:101180005B2D3B25645E61632A2339267D36504200
:1011900052585A692755655F402E4A663556416D4B
:1011A000293C767037774D384460624B434C3A287F
:1011B0007C32453E2B464E7A3059347E67790000AA
:1011C0004E4B62657E6A4422277D445F627D4326E2
:1011D00051265F624326653744266544434B584495
:1011E0007A2B264F262858445B3527496235446EB2
:1011F000277D7E6A4B275F2C636F72726563740074
:0C120000696E636F72726563740B01000D
:10120C0004C8C9B252003AB110F8023B023A8B4200
:10121C00F9D1411E023801E00020002100B9002163
:10122C000846704780B56F46017839B1032902D161
:10123C004178012904D100F02DFBFEDE0021417024
:10124C00064901220978C9B2002908BF032202709D
:10125C004270B1FA81F0400980BD00BF06F0032056
:10126C0080B56F46DAB0DFF8DC850120D8E84F1F77
:10127C00002940F0D482C8E8410F0029F6D1C749B3
:10128C000DF11C0CDFF8C8E55020DFF8C8950CF107
:10129C00040AC1F8FC00002107915F2920D0079EA9
:1012AC0052461EF8015019F80100013173003BB190
:1012BC0012F8024B023B8442F9D1531E023A01E070
:1012CC00002200230AB11D70E7E77F2EE5D80AF84B
:1012DC0016000AEB46004570079801300790DCE7D2
:1012EC0048A8AE4C00F12A01019100F129010091AE
:1012FC0000F12401039100F13001059100F12C0162
:10130C00049100F1280110300DF5B07B00260690F9
:10131C004FF0010A4FF0030900208DF83861CDE938
:10132C004ACBCDE948BB0291C0B2DFE810F0060011
:10133C004E024E0222003B0009008DF83C611DE07C
:10134C009DF84C01DFE810F0F70042024102FD006D
:10135C00070055004F009DF85401810700F0FA80FA
:10136C00032840F033829DF85501012840F0F480A9
:10137C002CE29DF83C01012800F02882D8F80400EA
:10138C0060B1016858E8012F824204D148E801128B
:10139C00002AF3D118E0BFF32F8FEFE703208DF86D
:1013AC003C018EE19DF84801DFE810F03800100296
:1013BC000F023C00060016009DF85401810723D053
:1013CC00032800F08C8101E20221C1708DF839A153
:1013DC004C908DF83CA11BE09DF85C0188B1032872
:1013EC0000F0B481F2E19DF85001012840F04081F9
:1013FC00ECE19DF8580148B1032840F0E781559D78
:10140C00BEE0DDE953019FE1539867E1549DB6E0DE
:10141C0006988DF84861509048984F90ADF84C6103
:10142C00509851900498FFF7FDFE10B18DF848913B
:10143C0005E04FF48070ADF84901012048E100212E
:10144C00022082B2022A01D104203AE1ADF8340123
:10145C004023ADF836119DF83911514A002914BFBB
:10146C0053601360000481F001018DF83911CFD164
:10147C004C98C17803290BD0022919D13A21382272
:10148C00C1704C98DFF8E413043000F058FE4CE0C7
:10149C0001794A988DF86011FFF7B2FE002808BF59
:1014AC0058464C99007881F803904C9908713CE0AF
:1014BC00061D881EC5B25DB134464A9814F8011B4E
:1014CC00FFF79EFE08B100783070013D2646F2E72A
:1014DC004C9CE0783A280AD1DFF89013201D884202
:1014EC0012D0DFF88813382200F0F2FD60B1DB482F
:1014FC004FF48051092201600B20E0704C98DC49BC
:10150C00043000F01CFE0EE0D4484FF480514160D2
:10151C000920E070D7484C9A01460068D1F80310B6
:10152C00C2F807105060C94C002606988DF84C6123
:10153C0050904B984F90DDE94F015190ADF85061B0
:10154C0052910598FFF76EFE08B10320B6E0559650
:10155C00519854908DF8556198F803000121C0B250
:10156C00022808BF032102288DF854118DF855115B
:10157C0001D10420A2E0029D8DF858615495559537
:10158C00002100208DF860A101290BD01BF801204F
:10159C0001310AFA02F21043F6E700BF0C140040C6
:1015AC000805005008B1B449086098F8010000F033
:1015BC00030001287AD0A0BB022088F8010000F0BB
:1015CC0005FDCDE958015846022100F05BFBAB4903
:1015DC00584600F083FB286800680330C4F8F80014
:1015EC009D4801464FF48040C1F80003D1F8F80142
:1015FC0040F48010C1F8F80198F80200C0B201283C
:10160C000FD1954888F80290C0F804A000F0DEFCD9
:10161C00CDE958015846022100F034FB5846984950
:10162C0042E000F061FCC5B295B3012D3ED0022D15
:10163C0040F0CF8088484FF0006188F803A0C0F8D4
:10164C00FC12C0F824A000F0C1FCCDE958015846AA
:10165C00022100F017FB8B49584600F03FFB58461F
:10166C008DF860A100F0B0FB8DF858A18DF8506199
:10167C0098F80300C0B201284FF0010008BF032006
:10168C008DF8500101D1062018E08DF84CA1BFE671
:10169C0000F024FC00F09AFCCDE9580158460221D8
:1016AC0000F0F0FA7849584600F018FB58468DF8CF
:1016BC0060A100F089FB8DF8589105208DF84C0144
:1016CC0005208DF8380100F09BFC9DF838012BE6C5
:1016DC00000649D003988DF854615390549098F8B3
:1016EC000100C0B210B1022867D095E000F0FCFBFD
:1016FC005FFA80F9B9F1000F51D0B9F1010F5CD04C
:10170C00B9F1020F74D15498006800680330C4F822
:10171C00F800514888F802A0C0F800A000F056FC70
:10172C00CDE958015846022100F0ACFA4C49584614
:10173C0000F0D4FA00994FF0030901988DF854A1E8
:10174C008DF85C6154915390CDE9550198F80200E5
:10175C0000F00300DFE800F06002101C05208DF89B
:10176C0048018DF85C916AE621688DF848A19DF8D6
:10177C00490180F0010064E688F802605598067013
:10178C003548D0F8F803569900F00100087001E0D4
:10179C0088F802608DF85CA19DF84A0198E700F08A
:1017AC009DFB00F013FCCDE958015846022100F0D6
:1017BC0069FA2C49584600F091FA04204FF00309BD
:1017CC008DF848018DF8549139E6FEDE00F062F890
:1017DC00FEDE00F0FBFB58ACCDE9580100212046A1
:1017EC0000F050FA2949204600F078FA28460DE01E
:1017FC0000F0ECFB58ACCDE958010021204600F07C
:10180C0041FA1949204600F069FA4846214600F091
:10181C0087FB00F0C1FBFEDE00F07EFAFEDEBFF3BC
:10182C002F8F00F0D3FB07ACCDE907010021204638
:10183C0000F028FA0449204600F050FA00F0D9FBD9
:10184C00FEDE00BF08F003200D0000000C14004069
:10185C005F11000000110000081000400805005046
:10186C000F0000000E00000010000000C01100006E
:10187C0000120000F811000080E100E011000000EF
:10188C0012000000140000001300000015000000FE
:10189C0000F0B0BB80B56F4600F001F8FEDE80B5FD
:1018AC006F4600F08DFBFEDE80B56F461B481D4A6F
:1018BC00016841F0807101601948002141600168A4
:1018CC0011400131016018480121C0F81015016068
:1018DC0016488160016016481649091A21F0030167
:1018EC0000F0CFFC14481549091A21F003021449E1
:1018FC0000F027FC00F080FB12484FF48A51124C88
:10190C00124D01600161AC4202D201CC8047FAE772
:10191C00FFF7BEFFFFF7A4FCFEDE00BFFCED00E00E
:10192C00001000E0FEFFFF000800004000B0004087
:10193C0000F0032010F0032010F0032010F003201F
:10194C00A02200000805005094220000A0220000F4
:10195C0000F0F6B9F0B503AF2DE9C00B00F036FB83
:10196C006C46CDE900012046042100F08BF9794941
:10197C00204600F0B3F9784A906B000605D00020A1
:10198C009063D2F80402400406D41068000607D015
:10199C004FF0040810461BE091464FF002081AE085
:1019AC00104650F8481F090602D04FF000080FE00F
:1019BC00104650F80C1F090602D04FF0010807E042
:1019CC00104650F86C1F090600F0C0804FF0030859
:1019DC0091460021016000F0F9FA6E460446CDE90B
:1019EC0000010D463046032100F04CF95B493046AE
:1019FC0000F074F928880C22411C6FF31F3022541C
:101A0C0030462980564900F069F9DFE808F0037286
:101A1C002B482100DDE9000100250A88531C6FF3D7
:101A2C001F3285540B8000F0D1FA6C46CDE90001D1
:101A3C002046022100F026F94E49204600F04EF9CE
:101A4C004FF000600421C9F808024648457061E077
:101A5C00DDE9000104240A88531C6FF31F328454FF
:101A6C000B8070E0DDE9000102240A883D4D531C17
:101A7C006FF31F3284540B806878000666D100F037
:101A8C00A5FA6C46CDE900012046022100F0FAF8D7
:101A9C003649204600F022F90120687053E0DDE958
:101AAC000012032013885C1C6FF31F33C8542D499C
:101ABC0014804A78D2B2022A48D14FF48042C9F835
:101ACC000422D9F8002122F48012C9F800214FF029
:101ADC000062C9F8082200224A70C87000F076FA39
:101AEC006C46CDE900012046022100F0CBF81E49DE
:101AFC0026E0DDE9000101240A88531C6FF31F3234
:101B0C00845418480B804178C9B2012904D00229A9
:101B1C001CD10221C17016E08178C9B2012915D1FE
:101B2C000021C9F86C1041700221817000F04EFA4E
:101B3C006C46CDE900012046022100F0A3F80C49C7
:101B4C00204600F0CBF8BDE80C0BF0BD00F0E4F83B
:101B5C00FEDE00BF02000000001100400300000088
:101B6C000800000008F0032007000000050000003A
:101B7C000600000004000000DCB504AF00F026FAFB
:101B8C006C46CDE900012046042100F07BF80449A5
:101B9C00204600F0A3F8034800210160DCBD00BF23
:101BAC000100000018310040DCB504AF2F4801687B
:101BBC00C90741D1C16BC90722D000212F4CC16389
:101BCC002D490A88931C013204EA03332C4C236000
:101BDC000A8091B20C22B1FBF2F202EB4202A1EBB1
:101BEC00820103290CD8DFE801F002070207214922
:101BFC004FF480724A6003E01E494FF480720A6011
:101C0C00016CC9071FBF002101644FF40031C0F8FB
:101C1C000412416CC9071FBF002141644FF480219D
:101C2C00C0F80412816CC9071FBF002181644FF4F6
:101C3C000021C0F80412DCBD00F0C8F96C46CDE9F7
:101C4C0000012046002100F01DF80949204600F053
:101C5C0045F808484FF480510160402101604FF471
:101C6C008071416000F0C5F9FEDE00BF04B1004098
:101C7C00000000000805005000F0032000F0FF00F9
:101C8C0040B50040F0B503AF4DF804BD124A1268E0
:101C9C00D0E90034258892096E1C6FF31F35595515
:101CAC0000232680D0E900100488661C42F08005D1
:101CBC006FF31F34B3EBD21F08BF02F07F05B3EBF9
:101CCC00D21F0D554FEAD21534462A460680ECD168
:101CDC005DF804BBF0BD00BF041000E0F0B503AF2D
:101CEC004DF804BD8AB27F2A0AD3D0E9003441F002
:101CFC00800125886E1C6FF31F355955D10926803C
:101D0C00D0E9002003885C1C6FF31F33D15404808E
:101D1C005DF804BBF0BDD4D4E0B502AF00F056F9C9
:101D2C006C46CDE9000120460021FFF7ABFF0349CB
:101D3C002046FFF7D3FF00F05CF9FEDE090000003F
:101D4C00DCB504AF00F042F96C46CDE90001204649
:101D5C000421FFF797FF0D492046FFF7BFFF0C4802
:101D6C000168090611D00021016000F02FF96C46C2
:101D7C00CDE9000120460221FFF784FF05492046EA
:101D8C00FFF7ACFF044801210170DCBD0A00000024
:101D9C00000100400B00000006F0032007484FF440
:101DAC00803101604FF48051C0F83C124FF48071C7
:101DBC0003480160034800F007B800BF04B30040BB
:101DCC000C05005009120000D0B502AF002201230F
:101DDC000021012A05D0845C013203FA04F421436A
:101DEC00F7E709B101480160D0BD00BF00E100E098
:101DFC00F0B503AF4DF804BD1E4C1F4D264604F53F
:101E0C00C670864212D06868014655E8010F8842B8
:101E1C0004D145E80162002AF6D102E0BFF32F8F0E
:101E2C00F2E746F8841B00F0E9F8E8E713480F21C5
:101E3C000123416008210160114981608121C16049
:101E4C0010490A6863F302020A6040F202214FF45F
:101E5C00822281620C49C162002101630B4942500C
:101E6C000B490C4A42500C485DF804BBBDE8F040ED
:101E7C00FFF7AABF00C0032008F003200C15004098
:101E8C00080000066C16004021100100F4FCFFFF56
:101E9C00F8FDFFFF094004080A120000BCB504AFAE
:101EAC004FF080400125056000F090F86C46CDE9BC
:101EBC00000120460221FFF7E5FE05492046FFF709
:101ECC000DFF044805600448BDE8BC40FFF77CBF2B
:101EDC000C000000040300400B120000014801211B
:101EEC000160704704100040BCB504AF0A48046898
:101EFC0000F06CF86D46CDE9000128460321FFF790
:101F0C00C1FE06492846FFF7E9FE2046294600F0A7
:101F1C0007F8204602B0B0BD501500401700000075
:101F2C00F0B503AF4DF804BD0C460546D1E90001F0
:101F3C000C260A88531C6FF31F32865420460B80E4
:101F4C001449FFF7CBFE05F00F010820DFE801F084
:101F5C00070D0F091521212121110B13160000204B
:101F6C000CE003200AE0062008E0012006E0022035
:101F7C0004E0052002E0072000E00420D4E9001270
:101F8C0013885C1C6FF31F33C85414805DF804BBBA
:101F9C00F0BDFEDE16000000E0B502AF00F016F852
:101FAC006C46CDE9000120460021FFF76BFE03498A
:101FBC002046FFF793FE00F01CF8FEDE1800000030
:101FCC0080B56F4600F015F8FEDED4D406490548FE
:101FDC000968C9B20029054918BF00F5805018BF1F
:101FEC000231704700D0032004ED00E002F0032022
:101FFC00FFBEAABE62B6704772B6704740BF70474C
:10200C0020BF7047F0B503AF4DF8048DA2B3531E3B
:10201C0002F0030C032B14D20022BCF1000F2BD0C6
:10202C008B5CBCF1010F835426D0531CBCF1020F06
:10203C00CE5CC65420D00232895C81545DF8048B8E
:10204C00F0BDACEB020E01F10108441C6FF0030271
:10205C0008EB0206A5180432F378EB7033792B7178
:10206C0073796B71B379AB710EEB02030433EFD15F
:10207C000432BCF1000FD3D15DF8048BF0BDD0B5A8
:10208C0002AF12B3531E02F0030C032B01D2002239
:10209C000FE0ACEB020E421C6FF00303D4180433B8
:1020AC00A17161712171E1700EEB03040434F5D15F
:1020BC001A1DBCF1000F1ABF8154BCF1010FD0BD29
:1020CC000244BCF1020F517000D1D0BD9170D0BD53
:1020DC00F0B503AF2DE9000B4AB3A2F1010EC2F12A
:1020EC00000C0023CC5CC55CA54224D19E451ED0BF
:1020FC0001EB030800EB030998F8014099F8015033
:10210C00A54218D10CEB0306B41C10D098F8024071
:10211C0099F80250A5420ED1F41C08D098F803404F
:10212C0099F80350A54206D104339A42DAD1002023
:10213C00BDE8000BF0BD281BBDE8000BF0BDFFF7A0
:10214C0061BF042A38BFFFF7FABFB0B502AFA2F1E6
:10215C00040C012303EB9C0313F003030ED08E46F7
:10216C0004465EF8045B012B44F8045B1FD1634604
:10217C0020467146BCF10C0F04D212E01346BCF1A0
:10218C000C0F0ED30D68103B0560032B4D6845609A
:10219C008D688560CD6801F11001C56000F11000FB
:1021AC00F0D802F00302BDE8B040FFF7C8BF4D689D
:1021BC00022B456007D1A2F1080308310830BCF1AD
:1021CC000C0FDFD2EDE78B680C318360A2F10C03AE
:1021DC000C30BCF10C0FD5D2E3E70B4611461A4676
:1021EC00FFF74DBF1346D2B2042938BFFFF7F5BF36
:1021FC00D0B502AFA1F1040E42EA0363012443EA15
:10220C00024304EB9E0443EA022314F0030410D0AF
:10221C008446012C4CF8043B10D174466046BEF148
:10222C000C0F1ED201F00301BDE8D0406046FFF751
:10223C00D4BF0C46BEF10C0F13D2F3E7022C436053
:10224C0007D10830A1F108048446BEF10C0F08D266
:10225C00E8E783600C30A1F10C048446BEF10C0F4E
:10226C00E0D3C0E90033103CC0E902331030032C3A
:10227C00F7D8844601F00301BDE8D0406046FFF773
:08228C00ACBF0022FFF7AEBF5A
:0C229400A91E0000FD1D0000A91D000097
:04000003000018B52C
:00000001FF

View file

@ -57,4 +57,5 @@
- [`cargo-flash` is not working](./troubleshoot-cargo-flash.md)
- [Rust analyzer is not working](./troubleshoot-rust-analyzer.md)
- [`cargo-build` fails to link](./troubleshoot-cargo-build.md)
- [`dongle-flash` is not working](./troubleshoot-dongle-flash.md)
- [`dongle-flash` is not working](./troubleshoot-dongle-flash.md)
- [Dongle USB functionality is not working](./troubleshoot-usb-dongle.md)

View file

@ -5,7 +5,7 @@ Next, we'll look into the radio API exposed by the `dk` HAL. But before that we'
From this section on, we'll use the nRF52840 Dongle in addition to the nRF52840 DK. We'll run some pre-compiled programs on the Dongle and write programs for the DK that will interact with the Dongle over a radio link.
**💬 How to find the buttons on the Dongle:**
Put the Dongle in front of you, so that the side with the parts mounted on faces up. Rotate it, so that the narrower part of the board, the surface USB connector, faces away from you.
Put the Dongle in front of you, so that the side with the parts mounted on faces up. Rotate it, so that the narrower part of the board, the surface USB connector, faces away from you.
The Dongle has two buttons. They are next to each other in the lower left corner of the Dongle. The reset button (RESET) is mounted sideways, it's square shaped button faces you. Further away from you is the round-ish user button (SW1), which faces up.
✅ Install the `dongle-flash` tool by running the following command from the `tools/dongle-flash` directory.
@ -18,11 +18,11 @@ The Dongle does not contain an on-board debugger, like the DK, so we cannot use
When put in bootloader mode the Dongle will run a bootloader program instead of the last application that was flashed into it. This bootloader program will make the Dongle show up as a USB CDC ACM device (AKA Serial over USB device) that accepts new application images over this interface. We'll use the `nrfutil` tool to communicate with the bootloader-mode Dongle and flash new images into it.
✅ Connect the Dongle to your computer. Put the Dongle in bootloader mode by pressing its *reset* button.
✅ Connect the Dongle to your computer. Put the Dongle in bootloader mode by pressing its *reset* button.
When the Dongle is in bootloader mode its red LED will oscillate in intensity. The Dongle will also appear as a USB CDC ACM device with vendor ID `0x1915` and product ID `0x521f`.
You can also use the tool `usb-list`, a minimal cross-platform version of the `lsusb` tool, to check out the status of the Dongle.
You can also use the tool `usb-list`, a minimal cross-platform version of the `lsusb` tool, to check out the status of the Dongle.
✅ Run `cargo run` from `tools/usb-list` to list all USB devices; the Dongle will be highlighted in the output, along with a note if in bootloader mode.
@ -53,7 +53,7 @@ Device programmed.
After the device has been programmed it will automatically reset and start running the new application.
The `loopback` application will *blink* the red LED in a heartbeat fashion: two fast blinks (LED on then off) followed by two periods of silence (LED off). The application will also make the Dongle enumerate itself as a CDC ACM device.
The `loopback` application will *blink* the red LED in a heartbeat fashion: two fast blinks (LED on then off) followed by two periods of silence (LED off). The application will also make the Dongle enumerate itself as a CDC ACM device.
✅ Run `usb-list` tool from the `tools/usb-list` directory to see the newly enumerated Dongle in the output:
@ -62,7 +62,7 @@ $ cargo run
Bus 001 Device 020: ID 2020:0309 <- nRF52840 Dongle (loopback.hex)
```
The `loopback` app will log messages over the USB interface. To display these messages on the host we have provided a cross-platform tool: `serial-term`.
The `loopback` app will log messages over the USB interface. To display these messages on the host we have provided a cross-platform tool: `serial-term`.
✅ Install it by running the following command from the `tools/serial-term` directory.
@ -79,7 +79,13 @@ deviceid=588c06af0877c8f2 channel=20 TxPower=+8dBm app=loopback.hex
This line is printed by the `loopback` app on boot. It contains the device ID of the dongle, a 64-bit unique identifier (so everyone will see a different number); the radio channel that the device will use to communicate; and the transmission power of the radio in dBm.
At this point you should *not* get more output from `serial-term`.
If you don't get any output from `serial-term` check [the USB dongle troubleshooting section][usb-issues].
[usb-issues]: /troubleshoot-usb-dongle.html
## Interference
At this point you should *not* get more output from `serial-term`.
❗If you get "received N bytes" lines in output like this:

View file

@ -48,7 +48,7 @@ We will not need to deal with endpoint descriptors in this workshop but they are
So how should we respond to the host? As our only goal is to be enumerated we'll respond with the minimum amount of information possible.
**First, check the request:**
Configuration descriptors are requested by *index*, not by their configuration value. Since we reported a single configuration in our device descriptor the index in the request must be zero. Any other value should be rejected by stalling the endpoint (see section [Dealing with unknown requests: Stalling the endpoint](#dealing-with-unknown-requests-stalling-the-endpoint) for more information).
Configuration descriptors are requested by *index*, not by their configuration value. Since we reported a single configuration in our device descriptor the index in the request must be zero. Any other value should be rejected by stalling the endpoint (see section [Dealing with unknown requests: Stalling the endpoint](./unknown-requests.md#dealing-with-unknown-requests-stalling-the-endpoint) for more information).
**Next, create and send a response:**
The response should consist of the configuration descriptor, followed by interface descriptors and then by (optional) endpoint descriptors. We'll include a minimal single interface descriptor in the response. Since endpoints are optional we will include none.

View file

@ -51,7 +51,7 @@ $ ls /dev/tty.usbmodem*
## nRF52840 Development Kit (DK)
Connect one end of a micro USB cable to the USB connector *J2* of the board and the other end to your PC.
Connect one end of a micro USB cable to the USB connector *J2* of the board and the other end to your PC.
💬 These directions assume you are holding the board "horizontally" with components (switches, buttons and pins) facing up. In this position, rotate the board, so that its concave shaped short side faces right. You'll find one USB connector (J2) on the left edge, another USB connector (J3) on the bottom edge and 4 buttons on the bottom right corner.
@ -108,5 +108,8 @@ $ ls /dev/tty.usbmodem*
The board has several switches to configure its behavior. The out of the box configuration is the one we want. If the above instructions didn't work for you, check the position of the on-board switches:
- Switch SW8, located on the bottom edge left corner, is set to the ON position; this is the left position of the two possible positions.
- Switch SW9, located on the surface of the board, to the right of USB connector (J2), is set to the VDD position; this is the center position of the three possible positions.
- Switch SW6, on the top edge right corner, is set to the DEFAULT position; this is the right position of the two possible positions (nRF = DEFAULT). Note that this switch is protected by Kapton tape.
- Switch SW7, which is slightly up and to the right of the center of the board, is set to the Def. position; this is the right position of the two possible positions (TRACE = Def.)
- Switch SW8, on the bottom edge left corner, is set to the ON position; this is the left position of the two possible positions (Power = ON)
- Switch SW9, to the right the left edge USB connector (J2), is set to the VDD position; this is the center position of the three possible positions (nRF power source = VDD)
- Switch SW10, on the bottom edge right corner and to the right of the SW6 switch, is set to the OFF position; this is the left position of the two possible positions (VEXT -> nRF = OFF). Note that this switch is protected by Kapton tape.

View file

@ -55,7 +55,7 @@ You can find traces for other OSes in these files (they are in the `advanced` fo
- `macos-enumeration.txt`
- `win-enumeration.txt`
At this point you can double check that the enumeration works by running the [`usb-list` tool](#listing-usb-devices) while `usb-4.rs` is running.
At this point you can double check that the enumeration works by running the [`usb-list` tool](./listing-usb-devices.md) while `usb-4.rs` is running.
``` console
Bus 001 Device 013: ID 1366:1015 <- J-Link on the nRF52840 Development Kit

View file

@ -7,6 +7,8 @@ Your task in this section is to decrypt the [substitution cipher] encrypted *ASC
✅ Flash the `puzzle.hex` program on the Dongle. Follow the instructions from the "nRF52840 Dongle" section but flash the `puzzle.hex` program instead of the `loopback.hex` one -- don't forget to put the Dongle in bootloader mode before invoking `dongle-flash`.
> Note: If you experienced USB issues with `loopback.hex` you use the `puzzle-nousb*.hex` variants.
Like in the previous sections the Dongle will listen for radio packets -- this time over *channel 25* -- while also logging messages over a USB/serial interface.
✅ Open the `beginner/apps` folder in VS Code; then open the `src/bin/radio-puzzle.rs` file. Run the program.
@ -20,4 +22,4 @@ The Dongle will respond differently depending on the length of the incoming pack
- On one-byte sized packets it will respond with the *direct* mapping from a *plaintext* letter (single `u8` value) -- the letter contained in the packet -- to the *ciphertext* letter (`u8` value).
- On packets of any other length the Dongle will respond with the string `correct` if it received the decrypted string, otherwise it will respond with the `incorrect` string.
The Dongle will always respond with packets that are valid UTF-8 so you can use `str::from_utf8` on the response packets.
The Dongle will always respond with packets that are valid UTF-8 so you can use `str::from_utf8` on the response packets.

View file

@ -2,8 +2,8 @@
After responding to the `GET_DESCRIPTOR Device` request the host will start sending different requests. The parser in `common/usb` will need to be updated to handle these requests:
1. `GET_DESCRIPTOR Configuration`, see section [Handling GET_DESCRIPTOR Configuration Requests](#handling-get_descriptor-configuration-requests)
2. `SET_CONFIGURATION`, see section [SET_CONFIGURATION](#set_configuration) of this course material
1. `GET_DESCRIPTOR Configuration`, see the section on [Handling GET_DESCRIPTOR Configuration Requests](./get-descriptor-config.md#handling-get_descriptor-configuration-requests)
2. `SET_CONFIGURATION`, see the section on [SET_CONFIGURATION](./getting-device-configured.md#set_configuration) of this course material
The starter `common/usb` code contains unit tests for these other requests as well as extra `Request` variants for these requests. All of them have been commented out using a `#[cfg(TODO)]` attribute which you can remove once you need any new variant or new unit test.

View file

@ -0,0 +1,29 @@
# Dongle USB functionality is not working
> NOTE: this section only applies to the Beginner workshop
If you don't get any output from `serial-term` it could just have been that first line got lost when re-enumerating the device from bootloader mode to the loopback application. Run these *two* commands:
``` console
$ change-channel 20
requested channel change to channel 20
$ change-channel 20
requested channel change to channel 20
```
You should get *two* lines of output in `serial-term`
``` console
$ serial-term
now listening on channel 20
now listening on channel 20
```
If that's the case you are good to go, return to the ["Interference"] section.
["Interference"]: /dongle.html#interference
If you only get one line of output then your OS may be losing some serial data -- we have seen this behavior on some macOS machines. You will still be able to work through the exercises but will miss log data every now and then. Return to the ["Interference"] section.
If you don't get *any* output from `serial-term` and/or the `change-channel` command fails then the Dongle's USB functionality is not working correctly. In this case you should flash one of the `loopback-nousb*` programs (repeat the procedure: put the device in bootloader mode; then run `dongle-flash`). These programs have no USB functionality but you will be able to use them to do the exercises. There are four `.hex` files available; pick one of them and flash it but take note of the number in the file name; this is the radio channel the Dongle will listen to. The Dongle will toggle the state of its green LED when it receives a packet. Return to the ["Interference"] section.

View file

@ -8,6 +8,6 @@ Start tracking and updating the device state to move your request handling forwa
1. **Update the handling of the `USBRESET` event:** Instead of ignoring it, we now want it to change the state of the USB device. See section 9.1 USB Device States of the USB specification for details on what to do.
2. **Update the handling of `SET_ADDRESS` requests:** See the section on [Handling SET_ADDRESS Requests](#handling-set_address-requests) of this tutorial for details.
2. **Update the handling of `SET_ADDRESS` requests:** See the section on [Handling SET_ADDRESS Requests](./set-address.md#handling-set_address-requests) of this tutorial for details.
3. **Implement the handling of `GET_DESCRIPTOR Configuration` requests:** See the section on [Handling GET_DESCRIPTOR Configuration Requests](#handling-get_descriptor-configuration-requests) of this tutorial for details.
3. **Implement the handling of `GET_DESCRIPTOR Configuration` requests:** See the section on [Handling GET_DESCRIPTOR Configuration Requests](./get-descriptor-config.md#handling-get_descriptor-configuration-requests) of this tutorial for details.