From f4755d2201734514ecfb72a1e82fba0b06506efe Mon Sep 17 00:00:00 2001 From: Martin Date: Mon, 28 Feb 2022 17:09:08 +0100 Subject: [PATCH] upversion to FW0210, new sample rate 128 kS/s (ID: 113) Signed-off-by: Martin --- CHANGELOG | 1 + PyHT6022/Firmware/DDS120/dds120-firmware.hex | 47 +++++++++--------- .../Firmware/DSO6021/dso6021-firmware.hex | 47 +++++++++--------- PyHT6022/Firmware/DSO6022BE/descriptor.inc | 2 +- .../Firmware/DSO6022BE/dso6022be-firmware.hex | 47 +++++++++--------- PyHT6022/Firmware/DSO6022BE/scope6022.inc | 1 + PyHT6022/Firmware/DSO6022BE/waveforms.inc | 9 ++++ .../Firmware/DSO6022BE/waveforms/gpif_113.inc | 9 ++++ .../Firmware/DSO6022BE/waveforms/gpif_113.wvf | 17 +++++++ .../DSO6022BE/waveforms/waveforms.inc | 9 ++++ .../Firmware/DSO6022BL/dso6022bl-firmware.hex | 47 +++++++++--------- README.md | 13 ++--- examples/capture_6022.py | 11 ++-- examples/plot_from_capture_6022.py | 23 ++++++--- examples/test.jpg | Bin 0 -> 96457 bytes setup.py | 2 +- 16 files changed, 172 insertions(+), 113 deletions(-) create mode 100644 PyHT6022/Firmware/DSO6022BE/waveforms/gpif_113.inc create mode 100644 PyHT6022/Firmware/DSO6022BE/waveforms/gpif_113.wvf create mode 100644 examples/test.jpg diff --git a/CHANGELOG b/CHANGELOG index e6e8bc4..b48b7c2 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,4 @@ +2022-02-08: more tool programs in examples [6c9d2d7] 2022-02-05: Merge branch 'main' of github.com:Ho-Ro/Hantek6022API fix last commit [078dffd] 2022-02-05: fix github workflow [0966f8b] 2022-02-05: fix github workflow [5a50a99] diff --git a/PyHT6022/Firmware/DDS120/dds120-firmware.hex b/PyHT6022/Firmware/DDS120/dds120-firmware.hex index 69da3f9..718a2aa 100644 --- a/PyHT6022/Firmware/DDS120/dds120-firmware.hex +++ b/PyHT6022/Firmware/DDS120/dds120-firmware.hex @@ -39,8 +39,8 @@ :2003E300E6E27401F08D828C838EF01216EE90E625F074012DFAE43CFB8E078A828B838F9B :20040300F01216EE90E624F02290E61274D8F090E614E4F090E6D204F08D828C838EF0121B :2004230016EE90E621F00DBD00010C8D828C838EF01216EEFF90E62074075FF08D828C8328 -:200443008EF01216EEC423541F90E64004F0020294AF827E00EE75F005A4FCADF024B7F555 -:2004630082ED341AF583E493FBB5070280080EBE16E375820022EC24B7FCED341AFD8C82A5 +:200443008EF01216EEC423541F90E64004F0020294AF827E00EE75F005A4FCADF024D7F535 +:2004630082ED341AF583E493FBB5070280080EBE17E375820022EC24D7FCED341AFD8C8284 :200483008D83A3A3A3A3E49390E601F08C828D83A3E493FDA3E493FEA3E493FF75AF0775D9 :2004A3009DE4759E007C208C031CEB60168D828E838FF01216EEFBA3AD82AE8390E67CEB6D :2004C300F080E47F608F061FEE600790E67CE4F080F375820122E582FF70087B64FCFDFED6 @@ -101,26 +101,27 @@ :20187700C8C8C70000000000020000010000000050555555000000000000000000000000A8 :20189700FAFAF90000000000020000010000000050555555000000000000000000000000F2 :2018B7009695000000000000020001000000000050555500000000000000000000000000E9 -:2018D7000201000000000000020001000000000050555500000000000000000000000000F1 -:2018F7004B4A0000000000000200010000000000505555000000000000000000000000003F -:20191700252500000000000002000100000000005055550000000000000000000000000069 -:201937000100000000000000020100000000000050550000000000000000000000000000E7 -:201957001E1D00000000000002000100000000005055550000000000000000000000000038 -:20197700010100000000000002000100000000005055550000000000000000000000000051 -:20199700070700000000000002000100000000005055550000000000000000000000000025 -:2019B700010000000000000002010000000000005055000000000000000000000000000067 -:2019D7000504000000000000020001000000000050555500000000000000000000000000EA -:2019F70080000000000000000300000000000000000000000000000000000000000000004D -:201A17000605000000000000020001000000000050555500000000000000000000000000A7 -:201A370080000000000000000300000000000000000000000000000000000000000000000C -:201A570003020000000000000200010000000000505555000000000000000000000000006D -:201A770002020000000000000200010000000000505555000000000000000000000000004E -:201A970003020000000000000200010000000000505555000000000000000000000000002D -:201AB70030371A80EA1EF71980AA18B71980CA10771980CA0F3719808A0CD71880CA0A17E1 -:201AD70018808A08971A80CA06771A808A05571A808A04171A80CA03D719808A02971980FB -:201AF7008A01F717808A965719808A8C1719808A78F718808A6EB718808A6A971880CA69B2 -:0E1B17007718808A685718808A663718808A87 -:203D000012010002FFFFFF40B50420010902010203010A060002000000400100090289007E +:2018D700BBBB0000000000000200010000000000505555000000000000000000000000007E +:2018F7000201000000000000020001000000000050555500000000000000000000000000D1 +:201917004B4A0000000000000200010000000000505555000000000000000000000000001E +:20193700252500000000000002000100000000005055550000000000000000000000000049 +:201957000100000000000000020100000000000050550000000000000000000000000000C7 +:201977001E1D00000000000002000100000000005055550000000000000000000000000018 +:20199700010100000000000002000100000000005055550000000000000000000000000031 +:2019B700070700000000000002000100000000005055550000000000000000000000000005 +:2019D700010000000000000002010000000000005055000000000000000000000000000047 +:2019F7000504000000000000020001000000000050555500000000000000000000000000CA +:201A170080000000000000000300000000000000000000000000000000000000000000002C +:201A3700060500000000000002000100000000005055550000000000000000000000000087 +:201A57008000000000000000030000000000000000000000000000000000000000000000EC +:201A770003020000000000000200010000000000505555000000000000000000000000004D +:201A970002020000000000000200010000000000505555000000000000000000000000002E +:201AB70003020000000000000200010000000000505555000000000000000000000000000D +:201AD70030571A80EA1E171A80AA18D71980CA10971980CA0F5719808A0CF71880CA0A1700 +:201AF70018808A08B71A80CA06971A808A05771A808A04371A80CA03F719808A02B719801B +:201B17008A01F717808A967719808A8C3719808A781719808A71D71880CA6EB718808A6AE8 +:131B3700971880CA697718808A685718808A663718808A00 +:203D000012010002FFFFFF40B50420011002010203010A0600020000004001000902890077 :203D200001010080FA0904000001FF000000070586020002000904000101FF000100070549 :203D400082010014010904000201FF00010007058201000C010904000301FF000100070502 :203D600082010004010904000401FF000100070582010004020904000501FF0001000705F5 @@ -210,7 +211,7 @@ :201413000490E6B3ECF090E6B4EDF02290E6A0E0FF43070190E6A0EFF0227E127F3D90E66E :20143300B3EFF090E6B47412F02290E6B3E517F090E6B4E516F02290E6A0E0FF4307019029 :05145300E6A0EFF0220D -:200066007900E94400601B7A00901B25780175923CE493F2A308B800020592D9F4DAF275E0 +:200066007900E94400601B7A00901B4A780175923CE493F2A308B800020592D9F4DAF275BB :0200860092FFE7 :12145800AA82AB83A2F73392D1F5826002D2F7ACF02299 :1B146A0020F71130F6138883A88220F509F6A8837583002280FEF280F5F02281 diff --git a/PyHT6022/Firmware/DSO6021/dso6021-firmware.hex b/PyHT6022/Firmware/DSO6021/dso6021-firmware.hex index b27cd45..b0b3c7a 100644 --- a/PyHT6022/Firmware/DSO6021/dso6021-firmware.hex +++ b/PyHT6022/Firmware/DSO6021/dso6021-firmware.hex @@ -36,8 +36,8 @@ :20038300FB8E078A828B838FF012166F90E624F02290E61274D8F090E614E4F090E6D20480 :2003A300F08D828C838EF012166F90E621F00DBD00010C8D828C838EF012166FFF90E620F1 :2003C30074075FF08D828C838EF012166FC423541F90E64004F002021EAF827E00EE75F0F5 -:2003E30005A4FCADF02438F582ED341AF583E493FBB5070280080EBE16E375820022EC248C -:2004030038FCED341AFD8C828D83A3A3A3A3E49390E601F08C828D83A3E493FDA3E493FE98 +:2003E30005A4FCADF02458F582ED341AF583E493FBB5070280080EBE17E375820022EC246B +:2004030058FCED341AFD8C828D83A3A3A3A3E49390E601F08C828D83A3E493FDA3E493FE78 :20042300A3E493FF75AF07759DE4759E007C208C031CEB60168D828E838FF012166FFBA3F0 :20044300AD82AE8390E67CEBF080E47F608F061FEE600790E67CE4F080F375820122E58266 :20046300FF70087B64FCFDFE0204EEEF249B401D8F4C754D00754E00754F009003E8E4F5B5 @@ -97,26 +97,27 @@ :2017F800C8C8C7000000000002000001000000005055555500000000000000000000000028 :20181800FAFAF9000000000002000001000000005055555500000000000000000000000071 :20183800969500000000000002000100000000005055550000000000000000000000000068 -:20185800020100000000000002000100000000005055550000000000000000000000000070 -:201878004B4A000000000000020001000000000050555500000000000000000000000000BE -:201898002525000000000000020001000000000050555500000000000000000000000000E9 -:2018B800010000000000000002010000000000005055000000000000000000000000000067 -:2018D8001E1D000000000000020001000000000050555500000000000000000000000000B8 -:2018F8000101000000000000020001000000000050555500000000000000000000000000D1 -:201918000707000000000000020001000000000050555500000000000000000000000000A4 -:201938000100000000000000020100000000000050550000000000000000000000000000E6 -:20195800050400000000000002000100000000005055550000000000000000000000000069 -:201978008000000000000000030000000000000000000000000000000000000000000000CC -:20199800060500000000000002000100000000005055550000000000000000000000000027 -:2019B80080000000000000000300000000000000000000000000000000000000000000008C -:2019D8000302000000000000020001000000000050555500000000000000000000000000ED -:2019F8000202000000000000020001000000000050555500000000000000000000000000CE -:201A18000302000000000000020001000000000050555500000000000000000000000000AC -:201A380030B81980EA1E781980AA18381980CA10F81880CA0FB818808A0C581880CA0A98DC -:201A580017808A08181A80CA06F819808A05D819808A04981980CA035819808A0218198078 -:201A78008A017817808A96D818808A8C9818808A787818808A6E3818808A6A181880CA692D -:0E1A9800F817808A68D817808A66B817808A87 -:203D000012010002FFFFFF40B50421600902010203010A060002000000400100090289001E +:20185800BBBB000000000000020001000000000050555500000000000000000000000000FD +:20187800020100000000000002000100000000005055550000000000000000000000000050 +:201898004B4A0000000000000200010000000000505555000000000000000000000000009E +:2018B8002525000000000000020001000000000050555500000000000000000000000000C9 +:2018D800010000000000000002010000000000005055000000000000000000000000000047 +:2018F8001E1D00000000000002000100000000005055550000000000000000000000000098 +:201918000101000000000000020001000000000050555500000000000000000000000000B0 +:20193800070700000000000002000100000000005055550000000000000000000000000084 +:201958000100000000000000020100000000000050550000000000000000000000000000C6 +:20197800050400000000000002000100000000005055550000000000000000000000000049 +:201998008000000000000000030000000000000000000000000000000000000000000000AC +:2019B800060500000000000002000100000000005055550000000000000000000000000007 +:2019D80080000000000000000300000000000000000000000000000000000000000000006C +:2019F8000302000000000000020001000000000050555500000000000000000000000000CD +:201A18000202000000000000020001000000000050555500000000000000000000000000AD +:201A380003020000000000000200010000000000505555000000000000000000000000008C +:201A580030D81980EA1E981980AA18581980CA10181980CA0FD818808A0C781880CA0A98FB +:201A780017808A08381A80CA06181A808A05F819808A04B81980CA037819808A0238198097 +:201A98008A017817808A96F818808A8CB818808A789818808A71581880CA6E3818808A6A65 +:131AB800181880CA69F817808A68D817808A66B817808A7F +:203D000012010002FFFFFF40B50421601002010203010A0600020000004001000902890017 :203D200001010080FA0904000001FF000000070586020002000904000101FF000100070549 :203D400082010014010904000201FF00010007058201000C010904000301FF000100070502 :203D600082010004010904000401FF000100070582010004020904000501FF0001000705F5 @@ -206,7 +207,7 @@ :201394000490E6B3ECF090E6B4EDF02290E6A0E0FF43070190E6A0EFF0227E127F3D90E6EE :2013B400B3EFF090E6B47412F02290E6B3E517F090E6B4E516F02290E6A0E0FF43070190A9 :0513D400E6A0EFF0228D -:200066007900E94400601B7A00901AA6780175923CE493F2A308B800020592D9F4DAF27560 +:200066007900E94400601B7A00901ACB780175923CE493F2A308B800020592D9F4DAF2753B :0200860092FFE7 :1213D900AA82AB83A2F73392D1F5826002D2F7ACF02219 :1B13EB0020F71130F6138883A88220F509F6A8837583002280FEF280F5F02201 diff --git a/PyHT6022/Firmware/DSO6022BE/descriptor.inc b/PyHT6022/Firmware/DSO6022BE/descriptor.inc index 5600a1e..2efc413 100644 --- a/PyHT6022/Firmware/DSO6022BE/descriptor.inc +++ b/PyHT6022/Firmware/DSO6022BE/descriptor.inc @@ -37,7 +37,7 @@ ;; ; Firmware version and USB power requirement -VER = 0x0902 ; FW version 0x0209 +VER = 0x1002 ; FW version 0x0210 POWER = 500/2 ; Max 500 mA (1=2mA) diff --git a/PyHT6022/Firmware/DSO6022BE/dso6022be-firmware.hex b/PyHT6022/Firmware/DSO6022BE/dso6022be-firmware.hex index 613fe9d..465f74d 100644 --- a/PyHT6022/Firmware/DSO6022BE/dso6022be-firmware.hex +++ b/PyHT6022/Firmware/DSO6022BE/dso6022be-firmware.hex @@ -37,8 +37,8 @@ :2003A300F074012DFAE43CFB8E078A828B838FF01216A390E624F02290E61274D8F090E6B4 :2003C30014E4F090E6D204F08D828C838EF01216A390E621F00DBD00010C8D828C838EF095 :2003E3001216A3FF90E62074075FF08D828C838EF01216A3C423541F90E64004F00202451C -:20040300AF827E00EE75F005A4FCADF0246CF582ED341AF583E493FBB5070280080EBE1641 -:20042300E375820022EC246CFCED341AFD8C828D83A3A3A3A3E49390E601F08C828D83A3C4 +:20040300AF827E00EE75F005A4FCADF0248CF582ED341AF583E493FBB5070280080EBE1720 +:20042300E375820022EC248CFCED341AFD8C828D83A3A3A3A3E49390E601F08C828D83A3A4 :20044300E493FDA3E493FEA3E493FF75AF07759DE4759E007C208C031CEB60168D828E83F8 :200463008FF01216A3FBA3AD82AE8390E67CEBF080E47F608F061FEE600790E67CE4F080D2 :20048300F375820122E582FF70087B64FCFDFE020515EF249B401D8F4C754D00754E00759C @@ -98,26 +98,27 @@ :20182C00C8C8C70000000000020000010000000050555555000000000000000000000000F3 :20184C00FAFAF900000000000200000100000000505555550000000000000000000000003D :20186C00969500000000000002000100000000005055550000000000000000000000000034 -:20188C0002010000000000000200010000000000505555000000000000000000000000003C -:2018AC004B4A0000000000000200010000000000505555000000000000000000000000008A -:2018CC002525000000000000020001000000000050555500000000000000000000000000B5 -:2018EC00010000000000000002010000000000005055000000000000000000000000000033 -:20190C001E1D00000000000002000100000000005055550000000000000000000000000083 -:20192C0001010000000000000200010000000000505555000000000000000000000000009C -:20194C00070700000000000002000100000000005055550000000000000000000000000070 -:20196C000100000000000000020100000000000050550000000000000000000000000000B2 -:20198C00050400000000000002000100000000005055550000000000000000000000000035 -:2019AC00800000000000000003000000000000000000000000000000000000000000000098 -:2019CC000605000000000000020001000000000050555500000000000000000000000000F3 -:2019EC00800000000000000003000000000000000000000000000000000000000000000058 -:201A0C000302000000000000020001000000000050555500000000000000000000000000B8 -:201A2C00020200000000000002000100000000005055550000000000000000000000000099 -:201A4C00030200000000000002000100000000005055550000000000000000000000000078 -:201A6C0030EC1980EA1EAC1980AA186C1980CA102C1980CA0FEC18808A0C8C1880CA0ACC3B -:201A8C0017808A084C1A80CA062C1A808A050C1A808A04CC1980CA038C19808A024C19800A -:201AAC008A01AC17808A960C19808A8CCC18808A78AC18808A6E6C18808A6A4C1880CA69C0 -:0E1ACC002C18808A680C18808A66EC17808AB5 -:203D000012010002FFFFFF40B50422600902010203010A060002000000400100090289001D +:20188C00BBBB000000000000020001000000000050555500000000000000000000000000C9 +:2018AC0002010000000000000200010000000000505555000000000000000000000000001C +:2018CC004B4A0000000000000200010000000000505555000000000000000000000000006A +:2018EC00252500000000000002000100000000005055550000000000000000000000000095 +:20190C00010000000000000002010000000000005055000000000000000000000000000012 +:20192C001E1D00000000000002000100000000005055550000000000000000000000000063 +:20194C0001010000000000000200010000000000505555000000000000000000000000007C +:20196C00070700000000000002000100000000005055550000000000000000000000000050 +:20198C00010000000000000002010000000000005055000000000000000000000000000092 +:2019AC00050400000000000002000100000000005055550000000000000000000000000015 +:2019CC00800000000000000003000000000000000000000000000000000000000000000078 +:2019EC000605000000000000020001000000000050555500000000000000000000000000D3 +:201A0C00800000000000000003000000000000000000000000000000000000000000000037 +:201A2C00030200000000000002000100000000005055550000000000000000000000000098 +:201A4C00020200000000000002000100000000005055550000000000000000000000000079 +:201A6C00030200000000000002000100000000005055550000000000000000000000000058 +:201A8C00300C1A80EA1ECC1980AA188C1980CA104C1980CA0F0C19808A0CAC1880CA0ACC59 +:201AAC0017808A086C1A80CA064C1A808A052C1A808A04EC1980CA03AC19808A026C19802A +:201ACC008A01AC17808A962C19808A8CEC18808A78CC18808A718C1880CA6E6C18808A6AF8 +:131AEC004C1880CA692C18808A680C18808A66EC17808A79 +:203D000012010002FFFFFF40B50422601002010203010A0600020000004001000902890016 :203D200001010080FA0904000001FF000000070586020002000904000101FF000100070549 :203D400082010014010904000201FF00010007058201000C010904000301FF000100070502 :203D600082010004010904000401FF000100070582010004020904000501FF0001000705F5 @@ -207,7 +208,7 @@ :2013C8000490E6B3ECF090E6B4EDF02290E6A0E0FF43070190E6A0EFF0227E127F3D90E6BA :2013E800B3EFF090E6B47412F02290E6B3E517F090E6B4E516F02290E6A0E0FF4307019075 :05140800E6A0EFF02258 -:200066007900E94400601B7A00901ADA780175923CE493F2A308B800020592D9F4DAF2752C +:200066007900E94400601B7A00901AFF780175923CE493F2A308B800020592D9F4DAF27507 :0200860092FFE7 :12140D00AA82AB83A2F73392D1F5826002D2F7ACF022E4 :1B141F0020F71130F6138883A88220F509F6A8837583002280FEF280F5F022CC diff --git a/PyHT6022/Firmware/DSO6022BE/scope6022.inc b/PyHT6022/Firmware/DSO6022BE/scope6022.inc index 7063170..32ed1a7 100644 --- a/PyHT6022/Firmware/DSO6022BE/scope6022.inc +++ b/PyHT6022/Firmware/DSO6022BE/scope6022.inc @@ -218,6 +218,7 @@ static const struct samplerate_info samplerates[] = { {150, waveform_150, ifconfig_150}, // 500 kS/s {140, waveform_140, ifconfig_140}, // 400 kS/s {120, waveform_120, ifconfig_120}, // 200 kS/s + {113, waveform_113, ifconfig_113}, // 128 kS/s {110, waveform_110, ifconfig_110}, // 100 kS/s {106, waveform_106, ifconfig_106}, // 64 kS/s {105, waveform_105, ifconfig_105}, // 50 kS/s diff --git a/PyHT6022/Firmware/DSO6022BE/waveforms.inc b/PyHT6022/Firmware/DSO6022BE/waveforms.inc index 753bf6f..4f28745 100644 --- a/PyHT6022/Firmware/DSO6022BE/waveforms.inc +++ b/PyHT6022/Firmware/DSO6022BE/waveforms.inc @@ -61,6 +61,15 @@ static const unsigned char waveform_110[ 32 ] = { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, }; +#define ifconfig_113 0xca + +static const unsigned char waveform_113[ 32 ] = { + 0xBB,0xBB,0x00,0x00,0x00,0x00,0x00,0x00, + 0x02,0x00,0x01,0x00,0x00,0x00,0x00,0x00, + 0x50,0x55,0x55,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +}; + #define ifconfig_12 0xca static const unsigned char waveform_12[ 32 ] = { diff --git a/PyHT6022/Firmware/DSO6022BE/waveforms/gpif_113.inc b/PyHT6022/Firmware/DSO6022BE/waveforms/gpif_113.inc new file mode 100644 index 0000000..7ed4c17 --- /dev/null +++ b/PyHT6022/Firmware/DSO6022BE/waveforms/gpif_113.inc @@ -0,0 +1,9 @@ +#define ifconfig_113 0xca + +static const unsigned char waveform_113[ 32 ] = { + 0xBB,0xBB,0x00,0x00,0x00,0x00,0x00,0x00, + 0x02,0x00,0x01,0x00,0x00,0x00,0x00,0x00, + 0x50,0x55,0x55,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +}; + diff --git a/PyHT6022/Firmware/DSO6022BE/waveforms/gpif_113.wvf b/PyHT6022/Firmware/DSO6022BE/waveforms/gpif_113.wvf new file mode 100644 index 0000000..72ed522 --- /dev/null +++ b/PyHT6022/Firmware/DSO6022BE/waveforms/gpif_113.wvf @@ -0,0 +1,17 @@ +; waveform source file for gpif_compiler +; +; Comment header +; + .WAVEFORM 113 ; 128 kS/s = 48M / 375 + + .TRICTL 1 ; Assume TRICTL=1 + + .IFCLKSRC 1 ; feed internal 30/48 MHz to the GPIF + .3048MHZ 1 ; 48 MHz + .IFCLKOE 0 ; IFCLK tri-state, CTL0 CTL2 drives the ADC + + D 187 OE0 OE2 ; 187 cycles, CTL0 CTL2 low + Z 187 CTL0 CTL2 OE0 OE2 ; 187 cycles, CTL0 CTL2 high + J RDY0 AND RDY0 $0 $0 CTL0 CTL2 OE0 OE2 ; 1 cycle, jp 0 + +; End diff --git a/PyHT6022/Firmware/DSO6022BE/waveforms/waveforms.inc b/PyHT6022/Firmware/DSO6022BE/waveforms/waveforms.inc index 753bf6f..4f28745 100644 --- a/PyHT6022/Firmware/DSO6022BE/waveforms/waveforms.inc +++ b/PyHT6022/Firmware/DSO6022BE/waveforms/waveforms.inc @@ -61,6 +61,15 @@ static const unsigned char waveform_110[ 32 ] = { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, }; +#define ifconfig_113 0xca + +static const unsigned char waveform_113[ 32 ] = { + 0xBB,0xBB,0x00,0x00,0x00,0x00,0x00,0x00, + 0x02,0x00,0x01,0x00,0x00,0x00,0x00,0x00, + 0x50,0x55,0x55,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +}; + #define ifconfig_12 0xca static const unsigned char waveform_12[ 32 ] = { diff --git a/PyHT6022/Firmware/DSO6022BL/dso6022bl-firmware.hex b/PyHT6022/Firmware/DSO6022BL/dso6022bl-firmware.hex index 6462b77..fc022d0 100644 --- a/PyHT6022/Firmware/DSO6022BL/dso6022bl-firmware.hex +++ b/PyHT6022/Firmware/DSO6022BL/dso6022bl-firmware.hex @@ -37,8 +37,8 @@ :2003A300E625F074012DFAE43CFB8E078A828B838FF01216A890E624F02290E61274D8F01A :2003C30090E614E4F090E6D204F08D828C838EF01216A890E621F00DBD00010C8D828C8398 :2003E3008EF01216A8FF90E62074075FF08D828C838EF01216A8C423541F90E64004F002DB -:200403000245AF827E00EE75F005A4FCADF02471F582ED341AF583E493FBB5070280080EC9 -:20042300BE16E375820022EC2471FCED341AFD8C828D83A3A3A3A3E49390E601F08C828D11 +:200403000245AF827E00EE75F005A4FCADF02491F582ED341AF583E493FBB5070280080EA9 +:20042300BE17E375820022EC2491FCED341AFD8C828D83A3A3A3A3E49390E601F08C828DF0 :2004430083A3E493FDA3E493FEA3E493FF75AF07759DE4759E007C208C031CEB60168D82E3 :200463008E838FF01216A8FBA3AD82AE8390E67CEBF080E47F608F061FEE600790E67CE42C :20048300F080F375820122E582FF70087B64FCFDFE020517EF249B401D8F4C754D00754E9F @@ -99,26 +99,27 @@ :20183100C8C8C70000000000020000010000000050555555000000000000000000000000EE :20185100FAFAF9000000000002000001000000005055555500000000000000000000000038 :2018710096950000000000000200010000000000505555000000000000000000000000002F -:20189100020100000000000002000100000000005055550000000000000000000000000037 -:2018B1004B4A00000000000002000100000000005055550000000000000000000000000085 -:2018D1002525000000000000020001000000000050555500000000000000000000000000B0 -:2018F10001000000000000000201000000000000505500000000000000000000000000002E -:201911001E1D0000000000000200010000000000505555000000000000000000000000007E -:20193100010100000000000002000100000000005055550000000000000000000000000097 -:2019510007070000000000000200010000000000505555000000000000000000000000006B -:201971000100000000000000020100000000000050550000000000000000000000000000AD -:20199100050400000000000002000100000000005055550000000000000000000000000030 -:2019B100800000000000000003000000000000000000000000000000000000000000000093 -:2019D1000605000000000000020001000000000050555500000000000000000000000000EE -:2019F100800000000000000003000000000000000000000000000000000000000000000053 -:201A11000302000000000000020001000000000050555500000000000000000000000000B3 -:201A3100020200000000000002000100000000005055550000000000000000000000000094 -:201A5100030200000000000002000100000000005055550000000000000000000000000073 -:201A710030F11980EA1EB11980AA18711980CA10311980CA0FF118808A0C911880CA0AD113 -:201A910017808A08511A80CA06311A808A05111A808A04D11980CA039119808A02511980E7 -:201AB1008A01B117808A961119808A8CD118808A78B118808A6E7118808A6A511880CA699D -:0E1AD1003118808A681118808A66F117808AA1 -:203D000012010002FFFFFF40B5042A600902010203010A0600020000004001000902890015 +:20189100BBBB000000000000020001000000000050555500000000000000000000000000C4 +:2018B100020100000000000002000100000000005055550000000000000000000000000017 +:2018D1004B4A00000000000002000100000000005055550000000000000000000000000065 +:2018F100252500000000000002000100000000005055550000000000000000000000000090 +:2019110001000000000000000201000000000000505500000000000000000000000000000D +:201931001E1D0000000000000200010000000000505555000000000000000000000000005E +:20195100010100000000000002000100000000005055550000000000000000000000000077 +:2019710007070000000000000200010000000000505555000000000000000000000000004B +:2019910001000000000000000201000000000000505500000000000000000000000000008D +:2019B100050400000000000002000100000000005055550000000000000000000000000010 +:2019D100800000000000000003000000000000000000000000000000000000000000000073 +:2019F1000605000000000000020001000000000050555500000000000000000000000000CE +:201A1100800000000000000003000000000000000000000000000000000000000000000032 +:201A3100030200000000000002000100000000005055550000000000000000000000000093 +:201A5100020200000000000002000100000000005055550000000000000000000000000074 +:201A7100030200000000000002000100000000005055550000000000000000000000000053 +:201A910030111A80EA1ED11980AA18911980CA10511980CA0F1119808A0CB11880CA0AD131 +:201AB10017808A08711A80CA06511A808A05311A808A04F11980CA03B119808A0271198007 +:201AD1008A01B117808A963119808A8CF118808A78D118808A71911880CA6E7118808A6AD5 +:131AF100511880CA693118808A681118808A66F117808A60 +:203D000012010002FFFFFF40B5042A601002010203010A060002000000400100090289000E :203D200001010080FA0904000001FF000000070586020002000904000101FF000100070549 :203D400082010014010904000201FF00010007058201000C010904000301FF000100070502 :203D600082010004010904000401FF000100070582010004020904000501FF0001000705F5 @@ -208,7 +209,7 @@ :2013CD000490E6B3ECF090E6B4EDF02290E6A0E0FF43070190E6A0EFF0227E127F3D90E6B5 :2013ED00B3EFF090E6B47412F02290E6B3E517F090E6B4E516F02290E6A0E0FF4307019070 :05140D00E6A0EFF02253 -:200066007900E94400601B7A00901ADF780175923CE493F2A308B800020592D9F4DAF27527 +:200066007900E94400601B7A00901B04780175923CE493F2A308B800020592D9F4DAF27501 :0200860092FFE7 :12141200AA82AB83A2F73392D1F5826002D2F7ACF022DF :1B14240020F71130F6138883A88220F509F6A8837583002280FEF280F5F022C7 diff --git a/README.md b/README.md index e611654..7eae92f 100644 --- a/README.md +++ b/README.md @@ -213,17 +213,18 @@ It writes the captured data into stdout or an outfile and calculates DC, AC and The program `plot_from_capture_6022.py` takes the captured data (either from stdin -or from a file named as 1st command line argument) and presents them as seen on top of this page. +or from a file from command line argument) and presents them as seen on top of this page. - usage: plot_from_capture_6022.py [-h] [-i INFILE] [-o OUTFILE] [-c CHANNELS] [-s] + usage: plot_from_capture_6022.py [-h] [-i INFILE] [-c CHANNELS] [-s [MAX_FREQ]] optional arguments: - -h, --help show this help message and exit - -i INFILE, --infile INFILE + -h, --help show this help message and exit + -i INFILE, --infile INFILE read the data from INFILE - -c CHANNELS, --channels CHANNELS + -c CHANNELS, --channels CHANNELS show one (CH1) or two (CH1, CH2) channels, default: 2) - -s, --spectrum display the spectrum of the samples + -s [MAX_FREQ], --spectrum [MAX_FREQ] + display the spectrum of the samples, optional up to MAX_FREQ ## Other neat things you can do diff --git a/examples/capture_6022.py b/examples/capture_6022.py index 99cca21..2e515d2 100755 --- a/examples/capture_6022.py +++ b/examples/capture_6022.py @@ -12,7 +12,7 @@ downsample 256 x DOWNSAMPLE -o OUTFILE, --outfile OUTFILE write the data into OUTFILE - -r RATE, --rate RATE sample rate in kS/s (20, 50, 64, 100, default: 20) + -r RATE, --rate RATE sample rate in kS/s (20, 50, 64, 100, 128, default: 20) -t TIME, --time TIME capture time in seconds (default: 1.0) -x CH1, --ch1 CH1 gain of channel 1 (1, 2, 5, 10, default: 1) -y CH2, --ch2 CH2 gain of channel 2 (1, 2, 5, 10, default: 1) @@ -35,7 +35,7 @@ ap.add_argument( "-o", "--outfile", type = argparse.FileType("w"), help="write the data into OUTFILE" ) ap.add_argument( "-r", "--rate", type = int, default = 20, - help="sample rate in kS/s (20, 50, 64, 100, default: 20)" ) + help="sample rate in kS/s (20, 50, 64, 100, 128, default: 20)" ) ap.add_argument( "-t", "--time", type = float, default = 1, help="capture time in seconds (default: 1.0)" ) ap.add_argument( "-x", "--ch1", type = int, default = 1, @@ -58,7 +58,7 @@ ch2gain = options.ch2 outfile = options.outfile or sys.stdout -valid_sample_rates = ( 20, 50, 64, 100 ) +valid_sample_rates = ( 20, 50, 64, 100, 128 ) valid_gains = ( 1, 2, 5, 10 ) argerror = False @@ -96,10 +96,7 @@ scope.set_num_channels( channels ) # calculate and set the sample rate ID from real sample rate value -if sample_rate < 1e6: - sample_id = int( 100 + sample_rate / 10e3 ) -else: - sample_id = int( sample_rate / 1e6 ) +sample_id = int( round( 100 + sample_rate / 10e3 ) ) scope.set_sample_rate( sample_id ) # set the gain for CH1 and CH2 diff --git a/examples/plot_from_capture_6022.py b/examples/plot_from_capture_6022.py index f72b731..3d7b9e5 100755 --- a/examples/plot_from_capture_6022.py +++ b/examples/plot_from_capture_6022.py @@ -20,9 +20,14 @@ help="read the data from INFILE" ) ap.add_argument( "-c", "--channels", type = int, default = 2, help="show one (CH1) or two (CH1, CH2) channels, default: 2)" ) -ap.add_argument( "-s", "--spectrum", action = 'store_true', default = False, - help="display the spectrum of the samples" ) - +ap.add_argument( "-s", '--spectrum', + dest = 'max_freq', + const = -1, + default = 0, + action = 'store', + nargs = '?', + type = int, + help = "display the spectrum of the samples, optional up to MAX_FREQ" ) options = ap.parse_args() infile = options.infile or sys.stdin @@ -48,15 +53,19 @@ if options.channels == 2: # Stack plots in two rows, one or two columns, sync their time and frequency axes - if options.spectrum: + if options.max_freq: fig, ( (v1, sp1), (v2, sp2) ) = plt.subplots( 2, 2, sharex = 'col' ) # Channel 1 spectrum sp1.set_title( 'Spectrum 1' ) sp1.magnitude_spectrum( ch1, fs, scale = 'dB', color = 'C1' ) + if options.max_freq > 0: + sp1.axes.set_xlim( [ 0, options.max_freq ] ) sp1.grid( True ) # Channel 2 spectrum sp2.set_title( 'Spectrum 2' ) sp2.magnitude_spectrum( ch2, fs, scale = 'dB', color = 'C0' ) + if options.max_freq > 0: + sp1.axes.set_xlim( [ 0, options.max_freq ] ) sp2.grid( True ) else: @@ -75,11 +84,13 @@ else: # Plot in one rows, one or two columns - if options.spectrum: + if options.max_freq: fig, ( v1, sp1 ) = plt.subplots( 1, 2 ) # Channel 1 spectrum sp1.set_title( 'Spectrum 1' ) sp1.magnitude_spectrum( ch1, fs, scale = 'dB', color = 'C1' ) + if options.max_freq > 0: + sp1.axes.set_xlim( [ 0, options.max_freq ] ) sp1.grid( True ) else: fig, v1 = plt.subplots( 1 ) @@ -92,6 +103,6 @@ fig.tight_layout() - +# fig.savefig('test.jpg') # And display everything plt.show() diff --git a/examples/test.jpg b/examples/test.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a804a504f87ed0d70734855ac818b4bd65061a25 GIT binary patch literal 96457 zcmdSBc|4T=*FQc8p_&jXGL@~eRY*mql8`j15MnCHGNF>F##}{qnUEA^DqFIZwQQ3; zB-ytZGh@k?8Oyks?fdfn+~50m|307h{r%nd{rLUy`%RDQ!Zp|OI_Gs>=RBY1oGX4W ze;Bdx)JgM`2mt{B#5M2_!5=^vBLu;p0s^ah!PUbt& zB?W{e1^BfH6apb2{MYaV5dZcO5ENP?EFubqApuS(+6aa(Bm@R63`Pvj4glXH)<_CV z?bvrrMB3_#=+0Z4_CJbwyH@G=rz)9qZ470dtG5Hi#AW3+Z`rD%sz}mhx~%VqT-UzUrMWMYU}D7zBM+rcXW1j_w@GlQ)%>((XsL06O+uj`GrN+ z61=>!DwhC4=pSN%{XYczC%GhnT!O1}Ai64-fS@1Pge2Dp@7O0Ib<9fi$}Q=g`yZ{{ zbUfzmrz$ZeopTJCtGC<4WtDZQD$G^U{*vs!CRpJANV0zy?EjLhAF)nI08E~cBm#}# za^6MkLj0e%S~!%cPHnA5iw*iO(a6LF%sMxlqw<5e+QZogY@QFl5}ZHX6du>0d{$&o zW}J-VBXGn%3tGdYB2olO0`1-!TB*Wl4b^n{!bFCZqv;m%1KYGVx2489M25Mz4V#!; zzkV07C)NznrIStgU0P0dww?=tMA?( zxb~o~fLFw>H-dj{>L{Kp>LHqn<|Bfw_z1BdM6koK(5w=U61M*q;&bQmXwV5d;4-V<8?>u~9Gxb?e z;MzAELjHY(|9hnW)t_@*ebx{+vWOH;W~Av7`{$_vJyDhY8hiv*s+h@pt(w6K99V;P zv5Ts_KAUj;*Lc+RisKK(cfAAK2PZ`)Dzw}orG|zQ$93B$lWuPwptvuY>+YvUyv}`` zb>)$$=zFCigyX+Ye1V}W-CG2Ih|xlMLfGM7X7Te5ZVfUZYf7Kl-#@VX@|#AD?Dr1~ z1Y%8u%~&O+CuY625x(6@AO0<+5RHt@c1D%M9Ma z-io(ol4g$KXhbp2+0Js*Z~#QT$*_J>6hg#hy3Ml8r}L}`{T*K!)ynQ^v4={`Y!066 zLRn3a8D~)IhhRCHXpoU6uM65zxzmCv{nefrw7AWo-f2&vYsZ~|-o!(^I-I+!xAVGM z86zJDgSf4McDFO$F+-=-7{q$A7;imCp$l(9JGjsqsHn|&`8|kgRCA5Tkva~yC?Px{N`633T8Y^Zo zoTGjAV}bdfZ0%WJT$bm_*(;*04|WTLnOPsZhG3zk(Kylok`)Pa*@`fVbrWv$W;7gw zml@|BnW0aR93>n3Y}Qo+&8?Ha`nezWuVE%N?mSmp7j8EaaW0~0f{&0v4--*>mAgG4 zDGghCPu=VWe|_3enqMXi>_0D<<0xDl`oTl)Y_^}AiG9}}XZO46jZ$Ymp86WT)A#zx z*>W*HVhs%IFqY~mLYxQh;H28QA-n*L^BX3Ln)*KQYIAa5lI@nA)%<-?AogY=URn2~ zaRiR>tB)gLrEC!FQ$}L{4d*X|U+j zZ0Sm@zR~aheD0#%a~V?shi02KBsU^Wbf%2GmoP{YG?L@oTwZ%WwT_truD&QTcqtL!*5h zAK03G)SqPAy}g^T5w|rrjhcm%2z%Z==D^jWTfX$Nrn&lF^m2TvRBs%t{889UbWEI& zsB%Div_2uPEq7sG=EZ?;WYAc)}}@jaP5> z@z<=pHetsEji24e((-ML-rDy&n203zPt9hV+fK= zO&_wpEdDLHY47%p7e>Sv)Jd=kC8!W3jk_QEmDJx#cdc$k!bJPht|Ca#U#QN;%597_ zW~|xSJ>lnkOD{ap=H52X>%scpzJExKb0Vej8uR9d+g;+5lYnW_Iu>RQx2r#R07V!XMX%i+wew^o zZScaL57DbAVORi*!TZ9tIe1st^B#kbsNo~FmS174Oio^OG_)GFn@;J>2{g;KIZ#pj z<+1vsPbDWBa0)U9mA;`blVCNGVDJR?$8tu`L&#$`GI>8^rUPq<4CVy9pOEge8ys>f znrZokz1rcKCT-Y$>deHJed>smC`16tWYbxJ|L%6FqyZJ0m{3OvOx_DyrNE_AHA@6F zM)BL!{;BTm%l$VJ4zwRH**6?ixu4pg6t565iPLUSl+I_)1}+kXJPs$PxOnHd`^icV zxve~Yo^VsStY&z9SdDojr^ zA z_e-VOx4(XRIu!Q-n7A@Wj43#4+<|uU9+04y)S<=vA^XCv8yo?8tK3EN)L)MFO$82m zls=8^Un(z-o_MNKJD0V8_vPNa!yV+|7bF>@o!~AfA@{s~QwO+&X+S+dq8Bq>=LK=F zjOO|Svh%oN*?xt)OCMXjb!|^2TUTFEiQPPY{8G(!+pAv{jcG_&13M#~&1*p+I9qbz zXZ|`3WJwN0M~ZWf!jZ$RAqhjf*=q=L$^Ke@7Ftxh1kj05$y;C-M)5!$1!=Sse-z&R9#(yjbJ8xgFu|lU!a-tl zu3;vj`KD?~h+&Okg!wfULNOU=(t*&#B>ZqfaFfb~aWu53174#7$47)FYckTwD#aD= zu-{bV^uzB~ar(53+HQ?!H!J(xo2`(K@`UACa*Q$3u=WrA>&uHTN?OC?+>yeyOq%d-#ghDvRom+}z}NO-qVR^H^+ zhLAryIu|NX)Z$0Dj0w5|=q>KodNQEjYyMMCTJZ@>w+P z{v|3OF%v^eN_rwaycDU8-$K@0{JHy~DSou6DLm%|Oc~QJX?;eE0}D z23_~=)gXL7%uDil$Ll4@<87%kNX!FGp(>*TOvl$_Nmm4pZB_j}O)vdC_fy!|$FS}u z^6dJXJO!YxqxkKNylE~|lx5n+N4W73k;YV0V!3{{+b6tXl1+Q+Cq}1ze9a|{R+74V z{lqqV^AlI^WjwL55#F%ry=Wr-3>?EI5Pm>{MiO`&9L{#Z(6;%|NcH59!)jr7*UHyPjwpga63fY$54Hp`(cunLBx~y6Hpobxni1YP2v8 zD^PAuJ7RmBE%Qak!=|({&fELe_$D2#-dr!atDjF&VpBiF4B-jfXr3gY9b4c*Xyzj% z)4R``6ca5y)ot5-weu$vUB*Zn=j|vCmv-_d$97+iHo07OJ5^@SsbuM4h$C%GrBspo zBbr%FJs?O%kTx3au!9wssxjH{Qmt&lZlk1IzMeiGt32J;oP9A;EN>Y91oK+mEZ;!n zEb=j4k_}WsK+1gnIPSf|ZHO+4?n`I0dR$KSEm*SBHh ze7CiGts>=6Xtn2!@w%w3rYo&q(Nch4@DY6tJaLO*be}7|VdemN6GxBfLnVjlWf}Vp zH?QA`*)Z9Enk8aVbigf}b-V8V(P(OV{8kksAAH};b})rDyw;mgm7#7PtQz6pP;dG* z(PT8Zr8wJH0yA^>f#q#YkG<{OgvRZ^s^9lMzP|Hl&6S2Uc${SeKVS;6QW>H%-q}-! zzdI?zK2)xcX`4ol*G`8m!(D_%R>h(VD@^NA-<{`!*w{jg&b1VNYgcRS$Lp zPYZAKlXITR9uJ-^)RvssOR@W9?brr|2r~mmnUJ+2mB2>^D*aB>4yjZi z{2WqXjKzQj!9o=yYjF?cCDeT*DxaudkUvi&Go0JUA8f~{ZsFkboJ)oU4FH6+yTTvrD{InDjHVxBC^-P9koV# z7~V6HOj7*;r#;<8mfntxp6H?@vYtj$wwue(u>V+vjP^0}>2#^0#FX~+?4PkwEcR#bE^bVXPAYP3aCi26FKR#BAM+GyO*}1IBVh-~cLC8cwwkf304ZtogZ3!w$L9!#*vmpSu|nUsl$?YmZo- zH-$q%SdfGl*(P{ThF=vbnvW3Wpr}v?dSf<6C#}yvWtf+dLva){Je1*? zocFI@>woc)hEIKHSh*g!!}Xtf0mxJ6V$@eLsJO_qKnkikj8h+(DNYXPFh!|qfx4|5Etq59rnX*>p-+_!Sh$M@8fr*h`4VRl zJa&FPHI)YF9 z=nJ>2`>ZcqIq(d7wl(+t?-%=thsi+oGfK~`7VOT{@r1mF*RX^NGFF^qKVX0tU&tDBJ*tJ@)BZg;*+{J&y~0D z!!8`hU{Bw?*W%}N1WsaNsSSaP7)Ad`>QX47CbiGp_s(|a>FLpp*Md=3x2U}t32?tW zpPhvYOx8x)oqDC+q7@nMIK;NY{Wf&Myd1vuwAwb6e(vrl(f0dvj_03+MZ+GR43Q&4 z;t@?*5Fb(N-3=}0q&G4;c;Y|8fZEr;WuspS-U7ayn$1VdJ6LN%-juL}?iflRp;2*9 zqF9QQv7yzk{KJw@zeZl#Xu3UOff$V4TB(9}gKs%AwX0D`U73!egQI&j$HT|XZLblf zMXatL-4RnNrB2eMT_Wn&K3KQS_fTI`)6%G=>f))1L)sPcV}=H=M=uexz}yYNGRv z_wSWs_j%4qM<3M?%{%>zF+S5u5AdtEHx2Yf^|hY=`A4t03YYNzOoN9CDogE@Y_J(+2Wa;?nGdJ!3+ap|;?O~Mi?f8h_3lK0F&PguVC-(m*hZiS`W}kdKKHofyln6G_Xy8dTM+2cswlcU% zJn=1bjHEkrN>QHs9B-OwciQ1w#Ygsuk4-WWvDwAFhJi+JA|}7j|4LDNwIeF~&A8vD z*}EyYGUWwZ+eOm@4l!e2%GETssp(0mc4a43#1A<14YVa<8QIV*r)!iO*C*{TF&i^8NGohR)@aXVmN-NMK3n zc?t9Fg9|Fx`cl605d~dpGsPoQ@5rM$Y>%6A$>5fO1@``Q48xUk0QFUbO-S&&$0EV5 zme+2~DVJE5K~#-#KhmoaXK&+VJ@VhHe!g`xVSta2)2P(*$2HiKz7C#0-lkE=PEsGR zv>9^aFmEXzZ5%5^yi1L|L9jm3pz<{@6J2a{kdJ6HVvu<<2`Em`r7vnyqnD1IE8lzD zvn}?_WRIoeDgCaxO1F&kPtOw_7hMexy&Tc~jggJDKJW2^<=$6s({FB9lp7me+ULLY zw-#&qw?~~G0HEB@N3imLR_gm_E@DDUNf96_;8sGO-x-v*(3W}CxVtyfXItgcu1w;K zYoU#Z7~*AEpKT3TNf&LsZFMQS%B?WK!ZdJq?sU0HHU_8Ks8bZkjUjr$llv0qZ=X5* zO{b}{{#DwUlvi(3^qNNK4?g!#WVm{Ir*s&%{rIeQq;dBHkC>>5_b0v1`dOVTdX{%R zv9$7e7cMjCZ@u(?;=6A#L+Kf{#6Tkv5=}IcC;vOPuS)mq@?j|4HP&6xbnS-^H@+Gs zkJvuJU*diN5M7-t=%oD!a>Yvdd$G2w#@Uy5q$e6&R5BR3Zl_u8?D5pxP!MC4IMwQ3 zrbPYSdGSLsN2#@O)35&SZU@K0_A-kf4XWnVFNdH#-V&H!uf7}_X^*(?H2Xk3eLATJ zm!x=zLFULLRS_h*IG3Rtn1^!cKKmO>t7|mmPWSniIl6XsHh-y}ghQyRZ8E zJGS8KpIlP?QD6=sH&oa_V{WZ=oa%f4b}dm6)O`jq)O8iSVO$=fPrhP zcfDtW4a$h9?Xt=+*i{nXaK>D##9jaQ%c{qX1*ZvG{+EuZ?XLb~?rX(8vZgrRO5%PFb zxL_D5I+=X1hlhf1UYwAX8XR0U+WpyeUwvAb6>CS_qpul(Kk~C{L=9~eKg1t&G+(f> z^{ec*L?6HP(#Z8;U5!N8Um?lSaWFooqQ4|_?7!o5&gFB-l{+SFZcZNdn~tMpMLr07 zZl)G!kYFwuVjUk`ycX0IhJ&197@>5imh>bUkq;AxXG86!E@E}F6#Rx%lMh*?#H3tq z(g;(?{Ed-mNw}qDl0-WaB31foder5?TzZ_xgrk;A$(=i63WxqfQ1Tq?Khx4zhW_$O z?QfT+-2uX1{>TxgpZ$kF5@w4exc{3!nw=l{{FgtXd&j&Q8TUID{Qwn(E(#^`*1;)f z7}v8HR(h{7=L;TWJwR{pm>)bCF7JLFb?tml$B{#I*02gQia4XsP zd&RSyrKsAOQE)rZq264YD-#)LS2Zk9kl9$@IY0d__u3q6b0)v7&S@g8#WgL@({Ep9 z%vfjsDDk!G`-%&%v%8kPiYixb+}heui-va*zhe8g5|Cr};dcZzG=t2pST^xl@ zGezt9h%J^GT3<4s7#!~?9F&^B(CKTDr#Z5>zqhwWucbMR?srAOv*>KW<#j!8Z5v1> z5D_oWHY8B61>_kkCdDE21nmCK-?e^7u?ugPIjTD&WZNli{=5m7`6++UC8ByoIKJt< ztJvo)N4KL+c1`D8fp^m_9HE-Tk8#uXPd*&RGrzT2NH^@vjzLraS`8$JKMs6Ev$mo? zidGWrwJ`O2=_I|{PauXIp^x%fcEqf?t5?P)G8=diNRTLH#C_%?MkYVV{J#4BWYL!0 z$IW#+O5GJ$<4RGh{20lW~>R+TmFo=@= zIG%XR8;=#mXV4AwLy+_E^dMeW{wtu^HV$|ivOj?e=aoTThSx!MU+d<>l)u%ppOayG z<=%`4Lxqy$gN*4|{jgNo98`#_l>(`6>2ZOOzu%L$Ap%ZjhlYbX_y}hXfbQ>ts1Qf_ z4|@6VL&FDuH)Fo zpJe|+j67^xznP=$(Vq})XrKWxV%&GwAlJ2Sk=l0rm(sPN14lhmqizcza&IFJVqqIJ z!v)OZtAmdtPSLqzt1?t1lY-jdUiZEZd-M}AVsOHdgQq-o| z*#q*kpX@DejffE=QYF3TShKxspVv82ww;uJUR`-4kWpO$7E2y}4(b6n67zu7>V4pB zU|M|+q15Qq{~`718w7p<+Khgj+3@xa@cH_inI6zC88E-6(S^vd@)u6@D=MM2Sjz2)Swt{3ggVc%KuygQ#3owX99| zVXxF^M{UpH=p73B;?oyTM<_^{9nu@JI;vnB23>FM>!~BlEKrDw>agf=4yNI-E>1Cq ze#E%CIL@PcmriiV3|;4h$Qi+plL5FQkdj<(W`PP#Ts$`yJw2>D%RO4I;wU%MuaB3n zH}Jr&xOS?)=7y0+Mj;%LeQ>=2A8}S&%+`YKlRFz!3w0bh%SVjLoy}7UlbKVn=OZ$# z(F-B>`y`6*1w#vSsFiaDUu5gg)|C%#tVPFnaDp&pq~$ z1G5jEM7^=16QO*BigPY+G8>SB3=k}f2c1aR)BsuiqX!_a;{;$tFe<;<>8o(!H+NUqt(r95gwal+n}=Jl71!mk;= zKs4ysay>2{HlHVSkT#eu5!M`q<_`B*v+eL?Nh2hhd%;X}T;4YH2_F%odL5jvg<5eG z>aXG>zD;Rj7bUd0J3md^4|ukD%eQwM^AXXBb5QU4yS#5hNYp|TsI-nuFHTk}dsc2E zdt2!@RTN=xg2y^%S`d-Uk;dr^}6-PVgq8ggbcY zkp;^R5z7EbGzwTk9ly0XVBQB!`G_-s2fmLQMGvQx`=4pyBg)cGL30^tw(X1a zXwIfk;+i_Or919Kp0#e`%GJsYVQ|@V1710myijgFznQYEycfI32BS^ALX_r4^4u%c z8@aPl_C37z6lza1+Xrug8e$a3LZ_|Rn>gK+P1kr!^_t$x$4nm*umf2QboP*Bd+Suh zGQNy=;)^;MOE@&KIcQ=YxvbzS!Fvk~ER9;j;*1Y(Ra+{zOh#z~KgGr6-e6VAXQBmSV>76;je{@{$4AD{{4qDg0&`Ac+ORVLwLP;*t8 z%S%)4V`~m$d^eRf$QJ1(t)xjJIT_+_8KGm`Lf)Q|r8|ymp^-0oJ~f(UEb&k1#Zy0_ zQA2BV5TrjtVtSIx(%giACd}VuRmuS~%zFy#+Mb@86W)rR`bA#c6E+)$)t+f%Fv%5E z%L{~;xh1R*p5y}8XmdW|trG(pQO&iWnKrX;aSnLT`r~X-@EGm`H`~E`x`Pf@(Ydal zz^bknL>AkTpy&)<$~n!fF*_8z8(5vmdE4QwGqB8X(E{UnB6`l|@GyFqq(Eq1IS%=q z>onzAHai6~H1Fc27`IpaZ84~2&29H)InuMlz6=cJ&(zj1U=q*Tu>~Jt*>1>F;v@V3QJPjnuiSo1rxed} zUgb@LOI!us18Ib5{VNA5Z*xl^;P9?Nz~KR#JgY6+(^j;o_C5GNxcI-^J)Xh_(Ydja z@QuQ{2~rd*kKp{ur+G<$vY?j_Y4^$Veu%H4oU>@zv%<4sm7AEz={UMWD-kVTnCZol z%WNKlXRDv5@Qz>tj`!UcJY34y$7|ikE(ygSOZ6`}`iW^8Ix9XqI}m zsn;+n5UGcusRBeVW?IAbt8vhW+t&8- z#OXez1B{tRZ2p~{5U!H&^X^;wSCjSIb{za6j(?q^?Y`yUblTmVyTt5c- zMO*5hrFGwYrc7-evSQtic>d?W8P@5=Q@h?(eqG)Rn&E`v;7Bkh&?9KtEdeMup{v_g zjVZ@F$wvqR7tyB8OVZBD{(8^co2v0HRX$`e4*JsGC6*~v47$t#4EruRF=iVzh zb(%~oI=(I&X5dCZpv7yCW-Sl{H_#a*t{q%z5ANBP3oYtLIG;V;OdVC_;vKfhU2noVOJJazGmd{xbssFbZmlUdczy69WI z@5k92w76S3>gJut+^T>AK?z)**-Og&VDf^J_wWq9a#g-of*o^~unhHS=RlY7`GY>Y3uDOq_B1IfV z*ONjHo7T>Vbem}w;cnB0u1cJkoRNR4l)G)SYo*Sk_KI~R-FmM3=*!sRo%_blo%)%z zrhS|^SJ;0(2zIdX($on$(7YG2v3q`L_BbZKuB_=($Q3L)d82oC)3$6g9h+cwzS^w*xaJ{XvdiA~#@`cUEfg5uZHRe8h<(z8j(Um?hD< zH=Ai?uBp|LR@}biy~B-r!|Dy3cO({Y8Trz*R<7=)pQ1nQ zv78`JK4K~m`n@yb{{)(ZWoRhIS?&HHy6ChoTi-v96%LxR4D2{3iWz>PMMoagcH36! zSxS29PRSqAN{hL6pl7{C)TjN~IF!aoJ5#+Wf+$msqv|Bl#=)|*3m}h)yGtb3dHrRl z8y;-^%U<=dCB4dwidh!h-4aghDDE<$Wd;oks@l=-_{zHj`Lx)d6M&co?y7g*Me9O zeyQkn{uy90GTz*i>37;~f80hf+QG#Uq0WrVyLfFz|B9QeGas>C6!KCI1PZ4Jb+iV z*)*RzTk|D>`xv0j_FHQE7!Ss{?~PEv=?fO4m-oLbCG}HAnXT2Le8h)%545hwC}AC* zQl$MT6eO0LbpX7*Y-`PS!dGg+$N7lG3mT?lc}^R2cqg_1SN%Q>fSX;(V@RH9A9&h( zS1@&x$zN#oeN<1&3f*NQfJUGuaz$oEy#+ zr$y;Au1ev(x{hAnrx|cYiDz+1pBvNz=Hi9V*eltj5$F}KFE80D9P&n^y&2pK zxS-{CZEW*-_A$H+1}jM+HTAi1pZUWtnc+u_wwpl*>rjP$E$ow=O_-Hv57)UO`(+nC zLU|jgJzH%A8XpNT;3HybDPZLHKm?OMgobykp^z^Dc6xILn#)SH?U0!_rur?+~iGY&fXcCs+R}Y>nia@9gqzLtS1j9ah1gVGp0}Jq~T9N zvv|jDA}>7U>nf6_&||o>!V?VuNvE)Oj@R%J8-IbiPTiAhypL_ez_8|-v8!;r7)-}b zTBQS6YcU&60YuG5jBg$9paT$j?^WIkh@2%>$blYG(AL|~gZjf@Zoe%K@_tT{hee}p zd#d_hfU%gXKjxO-gH2Na-11ICa-wjRFt3a!1os8tl`@e4ZB^ipS9-pJdLpnZmOhO& zWiIzHTqtX~?I2O?z-;fot=YjYWu>C$ z+^5=j8?;&<8_8fX>wAfugj4fSuLQ9VR$Bt4Nh0T^$8>5=@+g*tbl@X=qfaG{+{@rT zwgPMZAych|4FSRYsDGjRlz+uiE3*J`3k&@WT_SA$h2p&0Ss`Q!MnR{c*fI+w?ygSt zvJmLW3#j)5s9Q$3BBdY+Fv`meuqem;muAX9f=->S1gPy-5A@0-|KiFgd9TQxl;uO% zJ{0eV5EwXMp+q4v>=;{Q)dz8a@1;B8_+cV29t$bgcr3zDl{mPS+swPW&+{ z8<^GPN~+|yrUc9y{rkQZvELB4_`rIt>94!pqr^lL)@w&QMO>+F^C8+)t5ggz7SK%r(Mh23O#?I*YKM;Y2PYWL_8 zm@uA1TP4Z^y@8`fmw2u0FY;iUC{JqFj=0m|*`$`}`C4^V^Q7-j1Y?wMIsYcY%EgZu z7%Gmz%1N+Z-ibpL^ZhSE zTI$S~UyKO-NnCyVK>cAC83zdeQMkmLA?nCY!wb03%f3h%V1*swrurjJu9w9>*cHCJ zuDtQ6*bfs2xPWcO`$0kcSx5rC*NPmu;V+9*K_bD(Nc?&C^vaZ7+cyu(N$q&~$YuGw z+L&UYK))@R(GoC~3DZvi#uWyQ2=7sm>Jx}#TST`n?5yxsNd@o=Gc2k@H#GuH_E|y0xU9# zdGQw(L5Gp&^kF$(eK@qx7vSh}8>)caY3^RpiB7tFV)x~lT4cN9ae7BsXUXn^&dVR17OG_L};GORK z!}N9Qq2Zl_maNT9pb+in=s;6DCl$6hRGUDhgjdRwoA7G%mh+a;=s)$!Qo9vv%bX{i z2AotFO1#~~{sP)kp!{eA%Tvd$06Tl{qofW*xrVGR_yOIjJ>;ddoMscZ@LK;o^N#J0 z`Y-6&xpfW5e%(nvVpwJqdQaY{&j4sPTZtQ6ec@+=Ej@!1gO!7NivmE#TCp??-KoY7 zTDH|@cJR#dBFWSCl^}1AbUcBYl;&1(-V1bEnIJZSO=iA?BSYs|Vc6ziO^Y#Id5K!M z--*iuJaJ$ZyE3?`fJZ%s3jp?)(-l~d1tehm0JJhpT3MSpxn7%htQf@FD)fTn`JaEa zT3^zi(PRqMk;RRK{4;3Yf!>B{?hoF$YeQNo^qh0JBTAUUu+Y--(&w8;;+g}0Ssthp z`o3?C_D1JDetJZvbbaL}*c12~M>vvRmJww9Q};oRg;I~Bc z$0)IDC_Tb$c!1@_Y@IQu8<4_Dj8l|eKM+I<&J<*xR{ji+=T5c5vi+POk{(CXTcI^u zL>|LA?WtLUqAMhFcfrnM~kz)Hf&+cY)K+mfT#SVYzp zM?EW%YEnEV6`M(RQx-=sG4P(^IA&`D^pRLgc?1>oOi$!;PBP_cNeJA~rozHD-wM^L zJB`|fWl8>j{-Dm67oQhz+$kctMR_@Y&e7*lt-6o2W! zW6@!T&hISrL)+V%bUb}VdmS(3{PH_5B$a*Jn1VZOOSL>h1_^p{ZB$g;*Vt%UM`^ zjyt@MiX=LT#!;7^EJB+u_L}=B%%C3|;xd2By?r_&;Fo^s80b7XYhF|qB8EF zk4>y5NJXtRs10tUb=Q)ct$G}jJ8Zs{G4&Rv=6;tx4jPTUE;M!&sgUV%$mX&;p%y!L zn_SeueI){d?|Zq&S)aK134S$*%HkCOf0|^|oUY%=i=)|c4M@D$Rtwd;EsR-SvN6c+ z8KYe>k9o3P1O%*p?sJ#niF^zdC+ZtiSNhmY?2(vw_`wT`5pM*3ijNS4@%tHLX>4=O z)ehHA->!&yw&_KClr+Uu$*br#zESpa`+Uc}g9_`!7g2q_C4?59FnV#%MIz^6d;_l) zr9Y#`EaLh)ZYS6fv8t~pz^Z`BOXofvnw)@y1j5U&tNLIulPS&FbL zbr53RE$;L#+UBdgHTO;M4UT1ix1#LWQ6sZ-Ytc@6a)#clk)UIxNSkekc`<5P4A%(Y zhZov)4M-%FuENEHJf~B?EI?MjCxVYi-aPkiw&o>~3%y;wiZq0e4X;OD;HH=F&bWld zNhnYRHMOs~86NYK4&OR+%=*r={idywyVoLj;L^BRMqB*-OnP{-Iq506AIspRjDaRE zJSJeD_2uPV*Iv9Bh~9Ry=FqUy5GRjYCDetq^C^Q9DePmT752>^IZt7cRwRz3Cx zGv_Zz>+)19V@)J(Jig)gqR_PS?V5!{GCz6Ekaj&PDiid*X1mUZ5c@Zdvr^!l$)(YS zkhh?iH4hpKrv|ScH$0;8xsoY7 z`0ZPlZt8??_P%iW(cfn0PFkBSv9Uo$k`LS{Y-}y39?6MLBxP{%wnV7vWRG8s0Tm$X z9Dvc9iiubg_t3jZUVT%7&kYn zDz`Ax>i(qUz73_F$q^5TtL^zI_`$jAibB)23dj70FS`ED)PzuFZV4VkUF!60TSE{j zc&Ut)rievudAPkvb$$!fr*U*z{S7zd3&ZvaicOK$3*sY)rluhv(L7(9!lrESMDk8Y zEZ-pW%zwpzvHS*5M-P+U0H)^{phrI1+&wX^gnrVxa)Y;c{hzrSzT57eOsZeGq@l&Z z1l%mMH;$FHdm*xLdB1_AV^4kFV&L^5fn+Vh6j3LROc_3!#z)ZvDIuizl zN(%Kw^^@o#@kS}R**5BL);gi2v8GDi`M3SP6^O>g)X&|G77>+c!y9>07?^?ce8h!* zE5J2!%-Lwb+==z$e1vyR%G{^eFK=dpsT3wq%h{~gIySXTQ5efhKf9N(i?g3GnlJ+~ zN=zcHdQR(?dKJ3dGsNKMGA(YNY_z}1B%V!mecR&2>qd!lbl&lPDDLg@)I)DH{OH!c zU$Zr0b}Z@@u{`#)b?B!x=XrZM&t>g`n8Y`?=0XD|4@w3Z}MiS$1=1&qP#dKca-Pc``ZcO_=Xy9lvhvFhyMT`Yt^ zfB6z?2k^#&&~RZ-LVt9bd`7tMW>z1ZxH7o6;OVM!Yt5|3;Co8&8jj?3h6gJX*8^wv zP0Y!ey@ts+vy3jIanC{{K28xft#f%ROhD~!Dn0;;M6Ymxr}25k%3?Ivq_C#iIfwPO z`Av^gQ%gjQX%Faoy^G_&CjFQfq{Bj}|oz+l|c7OC1gum~shnp?4Z(66#7H zK7F1HZ@h&068dd#>eKzT0-wj_t(M8dZ|~m+>2j)WC?By$L;a^Nw5(;c10)8q=791& zIbL?qnGWXVFFN=_;gtpBGBmA-deth(&EcVbJ4tijgY;mIu|;LKN(}FahgJTh(f0DP zqsWJxi?^ljIUXCve|6omrAlwn5DE2V|jJze@3jwo+!Khe2(f9BLZE@$(TOvgFk>X_dGZ ztwV)b7q5Q)@>r!X?(^NVB{tur)XdktE~#&^;E7AW@vt8cPUXfMNpt)ds#)(XRg>I! z>fT5X+2=XC{d2r#v^{fYyw~B12tVWM%F}0eh|wXIV?MXQrOQ*E7FvY~#;(PSX7rzW zjzV&_WwzvaNHtM>M@r2!W^S~ZU*B7|ZnRPK$LWn<6{$IvSq^UC)ngHo@F3@IyIy=+ zOIzTfbn#P4-z2|#I3PZr+_T|s@m>O`76z{}cV|%d0cb0`uokQm-CuY zqe3%2c~dCH8SOwtK}I=2i@E+!LJl6s>?(RCh!X72{`n)W;;V`KVrKWo;+Sh@k&!RO zPlhQ6IiU(}flTRBLMMsQUsHqagBb5P>RciyJrLtYL1&Lr$wgiV8~wT=o<-Ja?c+F| zoE^@4OV|lj9fF3F$#UiH@A2mFC-z$W7N%)fk^AHRTry2Nc*SyNX8O_b(C7DZ`pxA% z9z9nc7U(b2j>HytPtP#tX3fd)6a!i1q(?gXS?Bk8|B~wN#JGv}Sg}~4Tk_i2ACeU zxdhFv_n!?a(vBdYxW$IfS44vrv}aHoVWXOJ$!+Dv`)fu4qIBJmAMotC*R8@gLY+Nr zT{I^HJ|bLnhB9pF@CP_SSpQsy4tI7(We2fGZ|;{ByC|?0Qr(%ryHJ7RHabthu1iFD z<7LJodd|X{kND+xM3n6ex@M$jB>?=g1Jn0S7rKE5Ki>s_ZY6as^s-24(<=2ogq|US z_9{#{NYDklfQ7uhjr$2Si-j)*uePGCW(KxS?RtaMV2))mgE>~iW91BVsB;Y7WJl3O zj-`Q^GOx8<_+rw&kDeO0g>EAnl%q-i@@TvXz=q_nWR|W42(ZnQQ=o42FG@lUpg{i< z$sd%+#hZz|W4ZYeh!H;GpPIj&aO}(e9kd^h*m~gATPFtLk-NK5qNZwcN3D~YCUc+tCs9Vf|Kw@jFN|PV@7K5qcr!{%{=A(IqO!h8qgZofWSA2-LMrx-sDUhZ~*ygboUa1en_Ye%ozy@ZN4> z=+Nf+HX@w0YP)Ih1OSk>brhB+7Wy5U`wqD%#vA5c5NHBLjQ_it6aU%1d+baQ|FuCX zkp5X{+;}UjZj{9g!NMx!8F|I5VQ52*2Sup-f|hCtQ+MvL8q4wr?fvTD-)QJes!y)` z&l4q-y4Fx1jtzY8JuKcqlMCbQKJq&}hhsujUnuU>aEZPUuN*#Nu7uu?XxwRdd&jjq zcdnmr2fSRnWE#wm@aaH0dqXo%+;ezY_r|b?El5X%VFI`7?bb+3olz zmE(p{pOs^x-GqMr@Ba+t?^=~IW*(PSDx9eNh8~`zPzg@KY(nPs10N-Xk+;|7S>AqoSz#J-8 z5tzlLgz52lLOW_Jg_m;wA}7bGG_UUnpyNg&Xu!3JoDlVRZqhyOTY?^%d-||HCnvGe zD6T>awFnaKr!u;`+S3DowU%87qUANSJ@LD}XWjaH!HoqAL0G;%z~1E#08dAh5-5x9 z%x;Z@v}bY{QGjEg?g8ya;y<}%pamm|4!%C~9Ehj-Hun;)*t9me2vj7(JA!O~eD-Sx zC5f&h|BJadkB74T--l^aDUw3OlqH3zWGTZWWeu%_mK92Ws%GMYa z*Hjp;J3ZxRg_Vxs3(OJ4gE?%9!1QDAXQI^swJzng6?fD6vEaQ9?jJ)H_#(Iof=uGE z9zBkp%DkBw^?o_0ip=^gaa=e^>>D(*!r$__mBqD2az^v10T!(d35^ZvRuBf1$BD49 zY<8o#NYFh)(1A%vWu*UTUk&1R$^;)}tI`wHZ-ItyT!nl`g+M8_Go|F3F zcF;EzD9^`$0l0?cS$fn#XHKwli9FeC&6%df;y7GiDlQJVO$c^1sD>| zVCgr;UVs)2<^GZ=?Kg(H?NBRsaoNzK#dT<92a0W83<^UbQHl#;tD~GOd2ri_))K@g z9b!Sz_lC*}@hmU%b_(tC_%GVbWyFf?5Q3F6wSQsgpeskBz|HC?;1lJiA5s=Asiav1 zKX@i5Wxw4;jm3hL;pat&trm`a%n+Ug=rtP6qzJ5d0{D?7%F_zwH8;6wm3UwPl=C;? zeqO_erO5zdPP+%kxnOzPEt#{E_aklrd;Af2P_+GvKl#^=c4kT6~2A4tV-!e|2+D65BnndD5CgEc5c+$0i3Nr*MYl}SW7LW_@f9txla#i8g^ z@|{Gb{DmjPqi8fAg`f3kW!`eF(d`eHO%61*pI?a4;(=dhf*~+^=ZCBF`L$6HEJdxD zI3U&(mKXXaC)hbeRTLZfd-GyZdTRZwFXm58$M`04LqP!AYM4JL=v7 zjv5PJrdA`of(G)bXJ~pJZosJw=wMExR(4$hugLsJf6#~C3q?Weq35dPhz@n6k#NpC za}9i0bn!@2IJxUW31V%lODpO2cP)NrFn>gy!RShvf50NG)3|<+yYxyos!m|1xx=Tm zZw9x=f5QS$twbfVNCe2FVIfMUS__j7Y?FtD#x~&v+ zu!}MEz92Tqz>!omtb;V5uASDSOZ#6eEen4$pre)Ld%X3c^0sT9F8kc2O*#!8zL~xJ zT@y4%&xyOz#YR_SiQJ|mvcPx6Hw<}(aGXZmn>F_?AFv$BcVGOH>B@f^Vs%K$?m@qn z0+=Zoz}rQedBNprP%By#bsN`D-R;bosn-&t;i7}~Sva2jHNB4QopbphcJ0XfMr&2- zK7Tz8S(_rDjmNH&3ht&yrSqNS}`!g<4No)Od>cLuzw*M0i&C=iebbxfLYe)T>c z_*N#rr|=V|w^QWq!w~iK$EQBy0$#Q}3QYg+_LqOj*a>gtC;o5^0Li@(LlW@vTqWl#%6oyh?#%~wM(f&s4kuAr}C zzW_xIcQfnnX|nu3)m8s7tN|pF&L6G@9i|ahly*M0rJ^h|*F;09FRxD5l(oG;Vg-CX zb3FYjcxvZd4vOWtKd% z$`z}}Vy0WLew{gw@_L7J%{Lv@V?_z!8K)gd>z-x#MW0czh{dCp(9ezxuwQ=fC%#>K z{E;BcCf?5%W_VZ9U1I|Bu__;@*7H7z>*zgLvX(4&%*G)Ub*Y48Vpl=dKK-NuS_|ooGb-MW>HC*DvHyUw<3^>{N7k6YHHTBdP`FlJ^vn%@9fGx|fdpaI; z7HZy4_hm<$Q`Qg9ynoC-4}C%!MM~y|nm7Ip$1@@kmZf#CFY7o)#Nc{f_FAb>1 z1~tA96iM;yr+6V~Dr15eNq9{fCLk80png-%SJPrWbzYBIwGk z3>!LsN3Y_U%+BID1xO!dFD^K;t&)~qhb|GWLxlFD!tCjjkC2+D3!DTmp1OEve-cwn zItlTsd3VJv{lXVtaD3k~cb}60CAh8OG_%TF@WIF+MXU)8--rX<=N51vt+IYd`o{v6 z8_@Qm7H)Z7sW0xkZhb;bENIlJ=@*Csu1}(Un@wp(Qcdjr%|Ql4R|5hU5US7w1$#UKa?ND=z9rqlDx%eZrgg~d~f-CbB3*-VJnKqnG^d7e=Yr4j0 zQg}8dx5hk8?o)CdE`26VlJnJCj$&|+sZ!am?aup_o-ug3?4#YYx+3!L@#=WM$?NXxU41(h#Y2Ks{EhBfM7 zS=iI%sk?zAp~`3gUIb%4B0m55!H`IYck|nndsQL(%dGH80g>5pI}{~`j@eNT>fi8T zpFD>E)CP!y6D)1IUZYZfa)T&kwt5uex1q57iUJ7y&a3NEzoxzsx6?}Q9C2~gbv*F$ zioL}3qTTUtq}A=vX6$UN1J&5HCW-coB}@KzPBe*J@u~3eQYIy5bL(f@FLx)^*RB*M z)xN_0Lq+F{FTJ`z3k+E&zC$fWz9;iJ5|Yf(gUOuu?}LQ{r!qO}9LGj>63dqwfan{j zDf7Yeuyg_rT5j2y>_a|_iMuSka5R3(3UPy{|8slaXk(gG2|PgeVGN9zRr;)INtP&E z)wti4=#JRlKR$oMKr`rk-B7hKLmLS45Fz~RbB7V>`ECr`HKID!0a{Nz9zM=Zh^o`* z7+El7_q-2GI&7H_&49%J@|lGw&T0BVN-3o_(8Mj&a#m2=AzwlD)ZopR4?LYuUCwLP zF3%ZiZMu{uH#t{23hi};ZK^iSG+QN? zjvr?i2k{~ntl$V}EJDSN!33!gDu$nZvKXp8rOgxNeafNa zQ{ncvt?}XCKI?w{{qW>(<3Qf@{IW>lb^ zuLil$pzPyN-;s}X93seS2Ak5b+vsMW?U{O0c^fa_0aE+EL_`86#czryY z^9m%ZUH5+zkAdL5McIYb+eg}3Ww5F2F-FwsK?$|+F)yphwNG6fvt@nrE%I#oC{ECc zRE&E(>#DT}6T(nmzFBKMaO>vw@dKz+k&20hE0+UvJ2|Jy+Mh_syP58$AXv%%lPEi& z89WIeg1SjN*z(hIP_v5>rv~H**~jq8rX2l#JVO99Qe0lb_boIANfpAAbbl%Z+_ASz zBgt;bN_!&&*{=)oZN{%Bbl+Fd)XyB1jbZ8eG0j=x)v4fxZYuA|-~JO#ltWXeEG}5E#-Bd;w&cazWgf;54i_M=byraBXQ4*~< z9&vBhinmEYz5~=6L4M|o+Ktt5RjM)FTU+Gl>)hGwoxT6u9rsUjm9m=&TzKb6lLg=ov8K!4K%5=lWoTbc?e<%jy97J12)2Iw39Zx_w$s5jF&aox>PC zfD}dGVCasKtGJfPj0d2DYWY2d86QmT$F?rM-F8VV_((@LEA`W`Xfh*+j*rMgIU=IT z3{YHM8OTxe)|CHV8WOOFk>z@e>#x;Kw|3CGhFVG#C|iJKV|X}kYtXd#wT_0|yKp!NEFl05C~=i6{;A8B@k@u)skvIJSB%YVn?2yTn`~UF{?38uT8d1Q< zwootBi`rP_Oyj)uoLm(Z&Nnt*Jfb{tYa^ugFCVF1sEIDFS--mORPa|xg;YR7@K>4P zf5EZ2I98y1f4#gr-v;8F3A&CGeN5DT36Wb+uXWPG!Diw%&})t6>^G};AUtv|oT)q~ zq=hk^+cWeasB3(-y)~9u%u=7I%#&|QJ8BwpcAUyONEbAa4fm>dx$(J+^|iJgs}ujA zY@~e834=AULk~?`*G07X8P@)TLi!MjisFv;dwQT_~0_BG~m0T zY1iA(w0A=*o9M2AVgRFj-M}b|!mRzgmua|QtTnBD^hhc_n(Fo_=TKky=R3a!jd7;T#2u@miWdyt-HPs?J3a~I_c@H9J^#xF^h~5(hv2|p0ft1 zum2YIHcjaZz7HUjIvg)1x!y*CTw0lmih%gNkGm>;TwW{rWIY_;ex=yTR&4spHVfXD z$nm4XE!ZV|Aubr{GEC~vq|TA&b}-NX2Hw5pxtMFU<~CAYEScfRWldq-jtdptmUp!e zlGRL4cN$B)>-@T;Jg0yCgWS7e{_LY4`g`*n-Z-xM&u0{;2FN?fzOu4xMurL)seYxJ z`H69j2pF9l-lV^OiNMmtF|?K&!)C=I_s9-}QV z=s$u)ok%=ECtxMh-V!k=qHJBYoSM3}!dCIV@u|!y^RuXCQmSUlH}MOeM$+G4BZcO9 z;*ky{sB3KHVwVsVS(;stGerV}szvYC5{E6(;l(UPdeyp}uxMD})|CMl&t~TlZ;>9! zQvLK7&CX_L3}U}MdBp$eUjcApCsd=#(So}e@7Rwxe4Gx{-o1yZ2obDCXQ`(5@Dsg* z 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 E2NVTpvj6}9 literal 0 HcmV?d00001 diff --git a/setup.py b/setup.py index ab6c3be..61e51fd 100644 --- a/setup.py +++ b/setup.py @@ -1,4 +1,4 @@ -__version__ = '2.9.1' +__version__ = '2.10' from setuptools import setup