diff --git a/README.md b/README.md index a8f1f70..eb7a663 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,48 @@ # 1. Overview # +T12 焊台控制器功能介绍 T12 Quick Heating Soldering Station featuring -- Temperature measurement of the tip -- Temperature control via rotary encoder -- Boost mode by short pressing rotary encoder switch -- Setup menu by long pressing rotary encoder switch -- Handle movement detection (by checking ball switch) -- Iron unconnected detection (by idenfying invalid temperature readings) -- Time driven sleep/power off mode if iron is unused (movement detection) -- Measurement of input voltage, Vcc and ATmega's internal temperature -- Information display on OLED -- Buzzer -- Calibrating and managing different soldering tips -- Storing user settings into the EEPROM + - 烙铁头温度实时监测 + - Temperature measurement of the tip + - PID温度控制 + - Direct or PID control of the heater + - 可以通过编码器进行控制温度 + - Temperature control via rotary encoder + - 短按编码器进入短时升温模式 + - Boost mode by short pressing rotary encoder switch + - 长按编码器进入主菜单 + - Setup menu by long pressing rotary encoder switch + - 手柄震动检测(需要手柄含有震动传感器) + - Handle movement detection (by checking ball switch) + - 手柄连接检测(通过判断烙铁头温度是否能够被读取来实现) + - Iron unconnected detection (by idenfying invalid temperature readings) + - 定时器设定 - 随眠,关机时间 + - Time driven sleep/power off mode if iron is unused (movement detection) + - 可以测量主控芯片电压以及温度 + - Measurement of input voltage, Vcc and ATmega's internal temperature + - 在OLED上实现信息显示 + - Information display on OLED + - 支持无源蜂鸣器 + - Buzzer + - 允许设置不同烙铁头的温度校准值 + - Calibrating and managing different soldering tips + - 设置被保存在EEPROM,掉电不丢失 + - Storing user settings into the EEPROM + - 允许热插拔烙铁头,并弹出烙铁头配置选择菜单 + - Tip change detection + - 芯片过热以及低电压报警 + - Chip overheating and low voltage alarm + - 更好的实时温度条以及实时功率条 + - Better real-time temperature bar and real-time power bar + - 拥有过渡动画 + - Have transition animation + - 内置屏幕保护程序 + - Built in screen saver + - 屏幕翻转设置 + - Screen flip settings + - 内置英文、中文、日文语言包 + - Built in English, Chinese and Japanese language pack + - 开机密码设置 + - Set System Password Project Video: https://youtu.be/I9ATDxvQ1Bc @@ -49,6 +80,17 @@ LHW-createskyblue created an awesome upgrade to the user interface which can be Video from LHW-createskyblue (UI-v1.6L): https://b23.tv/LiOe54 +# v1.7+ Program: createskyblue & UI: lihaoyun6 + +- Screen saver + 屏幕保护程序 +- English, Chinese and Japanese language pack + 英文、中文、日文语言包 +- System Password + 开机密码设置 +- Better numerical input experience + 更好的数值输入体验 + ![](https://image.lceda.cn/pullimage/dD94Lz6baKfVFCMcqzb7acjT7sRY7NwJ7NaJmOt9.gif) ![](https://image.lceda.cn/pullimage/zIsCozlXO0gjzfxcF4wCfAmhQwTKoQBLKd5zZtRd.gif) ![](https://image.lceda.cn/pullimage/cfhvmAOQPhwq7iCPhLvNDeRbOcbccIucCHhU2Abj.gif) diff --git a/img/J3F}W4XX_3]NT2K_JGCY}(J.jpg b/img/J3F}W4XX_3]NT2K_JGCY}(J.jpg new file mode 100644 index 0000000..c9ba577 Binary files /dev/null and b/img/J3F}W4XX_3]NT2K_JGCY}(J.jpg differ diff --git a/img/PixeSymbol2字符映射表.png b/img/PixeSymbol2字符映射表.png new file mode 100644 index 0000000..8ffe36a Binary files /dev/null and b/img/PixeSymbol2字符映射表.png differ diff --git a/img/PixeSymbol3.ttf b/img/PixeSymbol3.ttf new file mode 100644 index 0000000..c678226 Binary files /dev/null and b/img/PixeSymbol3.ttf differ diff --git a/img/PixeSymbol3字符映射表.png b/img/PixeSymbol3字符映射表.png new file mode 100644 index 0000000..83efead Binary files /dev/null and b/img/PixeSymbol3字符映射表.png differ diff --git a/img/PixeSymbol字符映射表.png b/img/PixeSymbol字符映射表.png new file mode 100644 index 0000000..37a466e Binary files /dev/null and b/img/PixeSymbol字符映射表.png differ diff --git a/img/QRCode.png b/img/QRCode.png new file mode 100644 index 0000000..4bb2963 Binary files /dev/null and b/img/QRCode.png differ diff --git a/img/README.txt b/img/README.txt new file mode 100644 index 0000000..220dcbd --- /dev/null +++ b/img/README.txt @@ -0,0 +1,2 @@ +感谢 千年板蓝根(github: lihaoyun6) 提供的字体文件以及相关素材!!! +Thanks for the font files and related materials provided by 千年板蓝根 (GitHub: lihaoyun6)!!! \ No newline at end of file diff --git a/img/StartTFBitMa.bat b/img/StartTFBitMa.bat new file mode 100644 index 0000000..6a8dd8f --- /dev/null +++ b/img/StartTFBitMa.bat @@ -0,0 +1,6 @@ +@echo off +for %%s in (\*.png) do ( +echo %%s +java -jar compressor2.0.jar %%s -anp %%s >>bitmaps.h +) +pause \ No newline at end of file diff --git a/img/c1.png b/img/c1.png new file mode 100644 index 0000000..a614140 Binary files /dev/null and b/img/c1.png differ diff --git a/img/c2.png b/img/c2.png new file mode 100644 index 0000000..9aa492d Binary files /dev/null and b/img/c2.png differ diff --git a/img/c3.png b/img/c3.png new file mode 100644 index 0000000..a4638d2 Binary files /dev/null and b/img/c3.png differ diff --git a/img/c4.png b/img/c4.png new file mode 100644 index 0000000..1ec230d Binary files /dev/null and b/img/c4.png differ diff --git a/img/c5.png b/img/c5.png new file mode 100644 index 0000000..bb84ee7 Binary files /dev/null and b/img/c5.png differ diff --git a/img/c6.png b/img/c6.png new file mode 100644 index 0000000..ee78382 Binary files /dev/null and b/img/c6.png differ diff --git a/img/c7.png b/img/c7.png new file mode 100644 index 0000000..542149f Binary files /dev/null and b/img/c7.png differ diff --git a/img/compressor2.0.jar b/img/compressor2.0.jar new file mode 100644 index 0000000..dbcb013 Binary files /dev/null and b/img/compressor2.0.jar differ diff --git a/img/cskyb.ttf b/img/cskyb.ttf new file mode 100644 index 0000000..05d6454 Binary files /dev/null and b/img/cskyb.ttf differ diff --git a/img/休眠.png b/img/休眠.png new file mode 100644 index 0000000..a4638d2 Binary files /dev/null and b/img/休眠.png differ diff --git a/img/停机32x32.png b/img/停机32x32.png new file mode 100644 index 0000000..8d4801c Binary files /dev/null and b/img/停机32x32.png differ diff --git a/img/升温32x32.png b/img/升温32x32.png new file mode 100644 index 0000000..f9b03c6 Binary files /dev/null and b/img/升温32x32.png differ diff --git a/img/发热丝-弃.png b/img/发热丝-弃.png new file mode 100644 index 0000000..1ae36fa Binary files /dev/null and b/img/发热丝-弃.png differ diff --git a/img/指示针.png b/img/指示针.png new file mode 100644 index 0000000..284d447 Binary files /dev/null and b/img/指示针.png differ diff --git a/img/提升32x32.png b/img/提升32x32.png new file mode 100644 index 0000000..1ec230d Binary files /dev/null and b/img/提升32x32.png differ diff --git a/img/文本/1c2b226f69824af9aa3f833b5657472f.png b/img/文本/1c2b226f69824af9aa3f833b5657472f.png new file mode 100644 index 0000000..cdc0fb1 Binary files /dev/null and b/img/文本/1c2b226f69824af9aa3f833b5657472f.png differ diff --git a/img/文本/1c47fb9e685f45129e9a0bd788073f85.png b/img/文本/1c47fb9e685f45129e9a0bd788073f85.png new file mode 100644 index 0000000..88b03cf Binary files /dev/null and b/img/文本/1c47fb9e685f45129e9a0bd788073f85.png differ diff --git a/img/文本/2b1ac022109547a3ad26463a966eaafd.png b/img/文本/2b1ac022109547a3ad26463a966eaafd.png new file mode 100644 index 0000000..ab463fc Binary files /dev/null and b/img/文本/2b1ac022109547a3ad26463a966eaafd.png differ diff --git a/img/文本/2d13975230304450b896d12ef1f30974.png b/img/文本/2d13975230304450b896d12ef1f30974.png new file mode 100644 index 0000000..87ab51c Binary files /dev/null and b/img/文本/2d13975230304450b896d12ef1f30974.png differ diff --git a/img/文本/3361b6347e4c4db286bbb28eaae7e7bf.png b/img/文本/3361b6347e4c4db286bbb28eaae7e7bf.png new file mode 100644 index 0000000..522a7ca Binary files /dev/null and b/img/文本/3361b6347e4c4db286bbb28eaae7e7bf.png differ diff --git a/img/文本/3b4506abd0cf4f25aff2518eb2ee802a.png b/img/文本/3b4506abd0cf4f25aff2518eb2ee802a.png new file mode 100644 index 0000000..f33d57b Binary files /dev/null and b/img/文本/3b4506abd0cf4f25aff2518eb2ee802a.png differ diff --git a/img/文本/3f46faa482134fb59e76c11cc3f1187c.png b/img/文本/3f46faa482134fb59e76c11cc3f1187c.png new file mode 100644 index 0000000..d03ad8c Binary files /dev/null and b/img/文本/3f46faa482134fb59e76c11cc3f1187c.png differ diff --git a/img/文本/5a09ec8b59a44a4f8780296919ff40e5.png b/img/文本/5a09ec8b59a44a4f8780296919ff40e5.png new file mode 100644 index 0000000..49bcbb3 Binary files /dev/null and b/img/文本/5a09ec8b59a44a4f8780296919ff40e5.png differ diff --git a/img/文本/5aa5f332b70446cfa0476c5fee61292b.png b/img/文本/5aa5f332b70446cfa0476c5fee61292b.png new file mode 100644 index 0000000..d9d3221 Binary files /dev/null and b/img/文本/5aa5f332b70446cfa0476c5fee61292b.png differ diff --git a/img/文本/6883a277558b454c99ff5245da91bfb0.png b/img/文本/6883a277558b454c99ff5245da91bfb0.png new file mode 100644 index 0000000..ed2db77 Binary files /dev/null and b/img/文本/6883a277558b454c99ff5245da91bfb0.png differ diff --git a/img/文本/7404477b844e489280d052d1e4e870ef.png b/img/文本/7404477b844e489280d052d1e4e870ef.png new file mode 100644 index 0000000..7c3bd77 Binary files /dev/null and b/img/文本/7404477b844e489280d052d1e4e870ef.png differ diff --git a/img/文本/83ae37ba984944d3a6fee379b97b292d.png b/img/文本/83ae37ba984944d3a6fee379b97b292d.png new file mode 100644 index 0000000..b830d41 Binary files /dev/null and b/img/文本/83ae37ba984944d3a6fee379b97b292d.png differ diff --git a/img/文本/LANG_JP.png b/img/文本/LANG_JP.png new file mode 100644 index 0000000..866f67a Binary files /dev/null and b/img/文本/LANG_JP.png differ diff --git a/img/文本/S1.png b/img/文本/S1.png new file mode 100644 index 0000000..7a607c2 Binary files /dev/null and b/img/文本/S1.png differ diff --git a/img/文本/S2.png b/img/文本/S2.png new file mode 100644 index 0000000..dd689f7 Binary files /dev/null and b/img/文本/S2.png differ diff --git a/img/文本/S3.png b/img/文本/S3.png new file mode 100644 index 0000000..3e374ad Binary files /dev/null and b/img/文本/S3.png differ diff --git a/img/文本/S4.png b/img/文本/S4.png new file mode 100644 index 0000000..6287297 Binary files /dev/null and b/img/文本/S4.png differ diff --git a/img/文本/S5.png b/img/文本/S5.png new file mode 100644 index 0000000..a045bf8 Binary files /dev/null and b/img/文本/S5.png differ diff --git a/img/文本/S6.png b/img/文本/S6.png new file mode 100644 index 0000000..5e5297f Binary files /dev/null and b/img/文本/S6.png differ diff --git a/img/文本/S7.png b/img/文本/S7.png new file mode 100644 index 0000000..d0cf92a Binary files /dev/null and b/img/文本/S7.png differ diff --git a/img/文本/a90d55fdee8a445fac813c1d66c3e0af.png b/img/文本/a90d55fdee8a445fac813c1d66c3e0af.png new file mode 100644 index 0000000..64a0194 Binary files /dev/null and b/img/文本/a90d55fdee8a445fac813c1d66c3e0af.png differ diff --git a/img/文本/c79e38015ee448e6aa6a22374df7d7c8.png b/img/文本/c79e38015ee448e6aa6a22374df7d7c8.png new file mode 100644 index 0000000..14b522d Binary files /dev/null and b/img/文本/c79e38015ee448e6aa6a22374df7d7c8.png differ diff --git a/img/文本/ca6c0d10f1314b0c90ec6e813416d25f.png b/img/文本/ca6c0d10f1314b0c90ec6e813416d25f.png new file mode 100644 index 0000000..c64e913 Binary files /dev/null and b/img/文本/ca6c0d10f1314b0c90ec6e813416d25f.png differ diff --git a/img/文本/chip.png b/img/文本/chip.png new file mode 100644 index 0000000..a602969 Binary files /dev/null and b/img/文本/chip.png differ diff --git a/img/文本/e0f110a84d9a4846a3e2923dbd837e2b.png b/img/文本/e0f110a84d9a4846a3e2923dbd837e2b.png new file mode 100644 index 0000000..3ad937f Binary files /dev/null and b/img/文本/e0f110a84d9a4846a3e2923dbd837e2b.png differ diff --git a/img/文本/ef82ea0e6822432d8d4ce799e0243289.png b/img/文本/ef82ea0e6822432d8d4ce799e0243289.png new file mode 100644 index 0000000..bdbd78e Binary files /dev/null and b/img/文本/ef82ea0e6822432d8d4ce799e0243289.png differ diff --git a/img/文本/off.png b/img/文本/off.png new file mode 100644 index 0000000..6b7d11b Binary files /dev/null and b/img/文本/off.png differ diff --git a/img/文本/on.png b/img/文本/on.png new file mode 100644 index 0000000..5f6a5a1 Binary files /dev/null and b/img/文本/on.png differ diff --git a/img/文本/pid.png b/img/文本/pid.png new file mode 100644 index 0000000..337b0d7 Binary files /dev/null and b/img/文本/pid.png differ diff --git a/img/文本/probe.png b/img/文本/probe.png new file mode 100644 index 0000000..f0861f6 Binary files /dev/null and b/img/文本/probe.png differ diff --git a/img/文本/t0-0.png b/img/文本/t0-0.png new file mode 100644 index 0000000..d3c140e Binary files /dev/null and b/img/文本/t0-0.png differ diff --git a/img/文本/t0-1.png b/img/文本/t0-1.png new file mode 100644 index 0000000..7d7fc6e Binary files /dev/null and b/img/文本/t0-1.png differ diff --git a/img/文本/t0-2.png b/img/文本/t0-2.png new file mode 100644 index 0000000..6453da4 Binary files /dev/null and b/img/文本/t0-2.png differ diff --git a/img/文本/t0-3.png b/img/文本/t0-3.png new file mode 100644 index 0000000..7287de5 Binary files /dev/null and b/img/文本/t0-3.png differ diff --git a/img/文本/t0-4.png b/img/文本/t0-4.png new file mode 100644 index 0000000..1bce7f6 Binary files /dev/null and b/img/文本/t0-4.png differ diff --git a/img/文本/t0-5.png b/img/文本/t0-5.png new file mode 100644 index 0000000..9e87887 Binary files /dev/null and b/img/文本/t0-5.png differ diff --git a/img/文本/t0-6.png b/img/文本/t0-6.png new file mode 100644 index 0000000..ff52e88 Binary files /dev/null and b/img/文本/t0-6.png differ diff --git a/img/文本/t0-7.png b/img/文本/t0-7.png new file mode 100644 index 0000000..ddbdc05 Binary files /dev/null and b/img/文本/t0-7.png differ diff --git a/img/文本/t0.png b/img/文本/t0.png new file mode 100644 index 0000000..b1f6719 Binary files /dev/null and b/img/文本/t0.png differ diff --git a/img/文本/temp.png b/img/文本/temp.png new file mode 100644 index 0000000..f701078 Binary files /dev/null and b/img/文本/temp.png differ diff --git a/img/文本/vol.png b/img/文本/vol.png new file mode 100644 index 0000000..1eb16fe Binary files /dev/null and b/img/文本/vol.png differ diff --git a/img/文本/保存.png b/img/文本/保存.png new file mode 100644 index 0000000..0568eb1 Binary files /dev/null and b/img/文本/保存.png differ diff --git a/img/文本/密码.png b/img/文本/密码.png new file mode 100644 index 0000000..e4363f5 Binary files /dev/null and b/img/文本/密码.png differ diff --git a/img/文本/翻转.png b/img/文本/翻转.png new file mode 100644 index 0000000..4f3f328 Binary files /dev/null and b/img/文本/翻转.png differ diff --git a/img/文本/首页.png b/img/文本/首页.png new file mode 100644 index 0000000..0c1c69c Binary files /dev/null and b/img/文本/首页.png differ diff --git a/img/无.png b/img/无.png new file mode 100644 index 0000000..03ff12e Binary files /dev/null and b/img/无.png differ diff --git a/img/标签.png b/img/标签.png new file mode 100644 index 0000000..842ae6a Binary files /dev/null and b/img/标签.png differ diff --git a/img/正常32x32.png b/img/正常32x32.png new file mode 100644 index 0000000..3820e42 Binary files /dev/null and b/img/正常32x32.png differ diff --git a/img/温度计.png b/img/温度计.png new file mode 100644 index 0000000..da4edbf Binary files /dev/null and b/img/温度计.png differ diff --git a/img/维持32x32.png b/img/维持32x32.png new file mode 100644 index 0000000..d046352 Binary files /dev/null and b/img/维持32x32.png differ diff --git a/img/芯片16x16.png b/img/芯片16x16.png new file mode 100644 index 0000000..0f83e44 Binary files /dev/null and b/img/芯片16x16.png differ diff --git a/img/设置/Lang_CN.png b/img/设置/Lang_CN.png new file mode 100644 index 0000000..ba079fd Binary files /dev/null and b/img/设置/Lang_CN.png differ diff --git a/img/设置/Lang_EN.png b/img/设置/Lang_EN.png new file mode 100644 index 0000000..5818ff3 Binary files /dev/null and b/img/设置/Lang_EN.png differ diff --git a/img/设置/Lang_JP.png b/img/设置/Lang_JP.png new file mode 100644 index 0000000..0983ff4 Binary files /dev/null and b/img/设置/Lang_JP.png differ diff --git a/img/设置/Set0.png b/img/设置/Set0.png new file mode 100644 index 0000000..89214ae Binary files /dev/null and b/img/设置/Set0.png differ diff --git a/img/设置/Set1.png b/img/设置/Set1.png new file mode 100644 index 0000000..d02e3c7 Binary files /dev/null and b/img/设置/Set1.png differ diff --git a/img/设置/Set10.png b/img/设置/Set10.png new file mode 100644 index 0000000..ec38faf Binary files /dev/null and b/img/设置/Set10.png differ diff --git a/img/设置/Set11.png b/img/设置/Set11.png new file mode 100644 index 0000000..715f945 Binary files /dev/null and b/img/设置/Set11.png differ diff --git a/img/设置/Set12.png b/img/设置/Set12.png new file mode 100644 index 0000000..1b463da Binary files /dev/null and b/img/设置/Set12.png differ diff --git a/img/设置/Set13.png b/img/设置/Set13.png new file mode 100644 index 0000000..9aa492d Binary files /dev/null and b/img/设置/Set13.png differ diff --git a/img/设置/Set14.png b/img/设置/Set14.png new file mode 100644 index 0000000..eef78d9 Binary files /dev/null and b/img/设置/Set14.png differ diff --git a/img/设置/Set15.png b/img/设置/Set15.png new file mode 100644 index 0000000..7756b34 Binary files /dev/null and b/img/设置/Set15.png differ diff --git a/img/设置/Set16.png b/img/设置/Set16.png new file mode 100644 index 0000000..58e269d Binary files /dev/null and b/img/设置/Set16.png differ diff --git a/img/设置/Set17.png b/img/设置/Set17.png new file mode 100644 index 0000000..7fa00c0 Binary files /dev/null and b/img/设置/Set17.png differ diff --git a/img/设置/Set18.png b/img/设置/Set18.png new file mode 100644 index 0000000..a968cec Binary files /dev/null and b/img/设置/Set18.png differ diff --git a/img/设置/Set2.png b/img/设置/Set2.png new file mode 100644 index 0000000..5327a42 Binary files /dev/null and b/img/设置/Set2.png differ diff --git a/img/设置/Set3.png b/img/设置/Set3.png new file mode 100644 index 0000000..970c26b Binary files /dev/null and b/img/设置/Set3.png differ diff --git a/img/设置/Set4.png b/img/设置/Set4.png new file mode 100644 index 0000000..a8214ca Binary files /dev/null and b/img/设置/Set4.png differ diff --git a/img/设置/Set4F.png b/img/设置/Set4F.png new file mode 100644 index 0000000..710a5dd Binary files /dev/null and b/img/设置/Set4F.png differ diff --git a/img/设置/Set4FF.png b/img/设置/Set4FF.png new file mode 100644 index 0000000..af5062c Binary files /dev/null and b/img/设置/Set4FF.png differ diff --git a/img/设置/Set5.png b/img/设置/Set5.png new file mode 100644 index 0000000..5a6d7a5 Binary files /dev/null and b/img/设置/Set5.png differ diff --git a/img/设置/Set5_1.png b/img/设置/Set5_1.png new file mode 100644 index 0000000..200b292 Binary files /dev/null and b/img/设置/Set5_1.png differ diff --git a/img/设置/Set6.png b/img/设置/Set6.png new file mode 100644 index 0000000..1b8b15a Binary files /dev/null and b/img/设置/Set6.png differ diff --git a/img/设置/Set7.png b/img/设置/Set7.png new file mode 100644 index 0000000..bb84ee7 Binary files /dev/null and b/img/设置/Set7.png differ diff --git a/img/设置/Set8.png b/img/设置/Set8.png new file mode 100644 index 0000000..1251da6 Binary files /dev/null and b/img/设置/Set8.png differ diff --git a/img/设置/Set9.png b/img/设置/Set9.png new file mode 100644 index 0000000..ad1ca15 Binary files /dev/null and b/img/设置/Set9.png differ diff --git a/img/设置/Set_LANG.png b/img/设置/Set_LANG.png new file mode 100644 index 0000000..b0bedc8 Binary files /dev/null and b/img/设置/Set_LANG.png differ diff --git a/img/设置/c_NO.png b/img/设置/c_NO.png new file mode 100644 index 0000000..99c4112 Binary files /dev/null and b/img/设置/c_NO.png differ diff --git a/img/设置/save.png b/img/设置/save.png new file mode 100644 index 0000000..895d09a Binary files /dev/null and b/img/设置/save.png differ diff --git a/img/设置16x16.png b/img/设置16x16.png new file mode 100644 index 0000000..83e8118 Binary files /dev/null and b/img/设置16x16.png differ diff --git a/img/错误32x32.png b/img/错误32x32.png new file mode 100644 index 0000000..fd15b11 Binary files /dev/null and b/img/错误32x32.png differ diff --git a/img/闪电16x16.png b/img/闪电16x16.png new file mode 100644 index 0000000..62af17f Binary files /dev/null and b/img/闪电16x16.png differ diff --git a/software/binaries/1.7+/T12.ino.standard.hex b/software/binaries/1.7+/T12.ino.standard.hex new file mode 100644 index 0000000..cfd0546 --- /dev/null +++ b/software/binaries/1.7+/T12.ino.standard.hex @@ -0,0 +1,1895 @@ +:100000000C943F120C9467120C9467120C943F28C6 +:100010000C9467120C9467120C9467120C9467127C +:100020000C9467120C9467120C9467120C9467126C +:100030000C9467120C9467120C9467120C9467125C +:100040000C94F5270C9467120C94C3270C949D27ED +:100050000C9467120C9416290C9467120C94671276 +:100060000C9467120C94671207634236B79BD8A7AB +:100070001A39685618AEBAAB558C1D3CB7CC5763CD +:10008000BD6DEDFD753EF6177231BF000000803F7B +:1000900005A84CCDB2D44EB93836A9020C50B9914E +:1000A0008688083CA6AAAA2ABE000000803F080055 +:1000B0000000BE922449123EABAAAA2ABECDCCCCE7 +:1000C0004C3E00000080BEABAAAAAA3E0000000081 +:1000D000BF000000803F0000000000084178D3BB53 +:1000E0004387D1133D190E3CC3BD4282AD2B3E6800 +:1000F000EC8276BED98FE1A93E4C80EFFFBE01C4F1 +:10010000FF7F3F0000000000800400003FF0383017 +:1001100033103F90381033902790261030903FF0E6 +:1001200000008004800400003FF03DF020103BF010 +:100130003B7030302B502AD031B03FF000008004AB +:10014000800400003FF038703030231027902010DA +:100150002010279027903FF00000800480040000CA +:100160003FF03CF03CF020102490249020103CF014 +:100170003CF03FF000008004800400003FF037B006 +:1001800023103030387038703030231037B03FF0E3 +:1001900000008004FCF4F860E044C08CC11CC22C58 +:1001A000C44CC88CD10CA204C4048FFC187CBCFCC9 +:1001B0008000BFF81FF8B0281FF8B4081FF8B10876 +:1001C0001FF8B048BFF8B288BFF880008000BFF8C1 +:1001D0001FF8B0081808B9E819B8B8381838B9B80D +:1001E000B9F8B0F8BFF8800015543FF815503FF04B +:1001F0001550387010203104138C22A817FC2AA83F +:100200000000000015543FFC15543FFC15543C04FD +:1002100014043CFC14543CFC005400A800000000F2 +:10022000800400003FF03CF034B0249024902790EC +:100230002310303038703FF000008004FF7CFE7CDB +:10024000FCECE8DCC84C984C882408200000000036 +:10025000000000008004E01CF3FCE7FCCE0C8E1CC8 +:100260009F9C1F3C1F0C0E0C0FFC87F881E4C00CF8 +:10027000E01CF87C000458085808580840087FF82B +:1002800060185FE85B685FE85B681CE85FE8000097 +:10029000800400003FF03CF03CF03CF020102010C7 +:1002A0003CF03CF03CF03FF000008004F87CF7BCF0 +:1002B00000007FF80000BFF4AB54AB54AB54AB5418 +:1002C000AB54AB54BFF4C00CF03CCE0CBF04B30431 +:1002D00073007F007E007C007C007C60BC64BE04F8 +:1002E000CF0CF03C81DC559C29045500299055D059 +:1002F00003FCFF002E00267002508270E600EE0420 +:10030000800C001C3FF43FE03FC4378C2318303092 +:1003100038703CF03FF03FF000008004058074B876 +:1003200057A876B80580F97C4694AAA8F97C068877 +:1003300074A8578C75740698F03CCE4CBC34B81435 +:10034000188010804230607860F844C08004B8841F +:10035000CFCCF03CE01CC00C8FC49FE49FE49FE432 +:1003600000000300030003000780078003008004EF +:10037000F87CE01CC00CCFCCCFCCCFCCCFCCCFCC3A +:10038000CFCCCFCCC84CCFCCC00CE01CFCFCF87C54 +:10039000E01CC00CC00CC00CC00CC00CC00C800415 +:1003A0008004FFFCF87CFCFC8004000020001000AE +:1003B00008001000270000000000000000000000FE +:1003C00000008004C3FC18001800C3FCFFFCFF0CF5 +:1003D00000600060FF0CFFFCF0FC06000600F0FC73 +:1003E0008FC4102020104CC89FE43DF03DF01DE06C +:1003F0003EF03F709FE48CC400003030F87CF33C4A +:10040000F4BCF6BCF4BCF6BCF4BCE49CC84CD02CE8 +:10041000D02CC84CE79CF03C882408203830383079 +:10042000383038303830383039303BB03FF03FF07A +:1004300000008004F21415F0CADFB8CCF0D699E8B9 +:10044000AEA4DFEEE8F21D1E08F21C08F21A1B082B +:10045000F0714601F046464A01F219F051F218F0E7 +:100460005A8DF0C0DAEEAEF0C8B8A5F1302924F00C +:10047000B599E1A4BDF21415F0CBEEAEBDF218F0C3 +:100480005A8DF21617F21415F0CBEEAEBDF2161718 +:10049000F0BCCA9EE0BDF21415F21213F21011F274 +:1004A0000C0DF094F20E0FF0A2D8DFCBE1EEACDC35 +:1004B000E8F20AF08CF20BF04A8DF209F08DF09719 +:1004C000C59BBDF20708F21F20F2040506F097DE77 +:1004D000EED5F0CBABEEF0AEA4DFEEE8F0A8E8BDD1 +:1004E000E2EEE0F0B499D3EEF200010203F0CCDFCB +:1004F000B0B8BD5361766500466C6970004D6169A6 +:100500006E2053637265656E004A5000454E00438D +:100510004E00594553004E4F004F4E004F46460087 +:10052000496E666F73004269670050494400446930 +:1005300072656374005361766500426F6F73740077 +:100540004F666600536C65657000536176650042C6 +:100550006F6F737400536C656570004465666175F8 +:100560006C740053617665004164640044656C6599 +:1005700074650052656E616D650043616C696272FD +:10058000617465004368616E6765005265747572D9 +:100590006E0041626F7574004C616E67004C6F6352 +:1005A0006B004C4F5720566F6C0042757A7A65721B +:1005B0000053637265656E00436F6E74726F6C00FA +:1005C00054696D65720054656D7000546970000067 +:1005D000000000000F1DC20800054442080003840B +:1005E0005FBF000FE44410000115451000054CC921 +:1005F0007F8009244F900007C4C11000054D413F82 +:1006000000055443810007C44D0200054441140015 +:10061000055541080007C8810400000000000000E3 +:100620000000000001083FFE001FFF8100000040A5 +:1006300002000007FE0FF800040208080004020888 +:10064000880007FE08880004020888000402088861 +:100650000007FE0888000402094800040202300076 +:1006600007FE040C00040218040000000000000053 +:100670000000000007FE13FE000402084000040210 +:10068000084000040201FC0004023884000402084F +:10069000840007FE0FFF000402080000040209FEA8 +:1006A00000040209020004020B020004020D020011 +:1006B00007FE09FE00040201020000000000000025 +:1006C0000000000001100080001FFF80800001106A +:1006D0003FFF00004004080007FC04080004440435 +:1006E0001000044402100004440220001FFF812077 +:1006F00000004000C00000A001300001100208000E +:10070000060C0C07001803B00200000000000000F7 +:1007100000000000004000800000400080000FFF4B +:100720003FFF000841040800084104080008410494 +:10073000100008410210000FFF02200008410120B4 +:1007400000004000C00000400130000040020800EE +:1007500000400C07000040300200000000000000D4 +:10076000000000001FDF10200002120C20000224F5 +:10077000042000047F8020000424B820000FA488F7 +:10078000500014BF88500004A488500004A4884876 +:100790000004BF88880004A48A880007A48C840011 +:1007A0000444890700008186020000000000000068 +:1007B000000000000FF00491000440025200047F8A +:1007C000905400045088FF0007D084810004510039 +:1007D0008100044901FF0007CA028100044404812A +:1007E00000044A1CFF0007EA0481000C5104810048 +:1007F0000061C4850000408082000000000000000D +:100800000000000007FF802000008407FF00008434 +:10081000040100008404010000840401000FFFC7EC +:10082000FF0000840400000084040000008405FF31 +:100830000000840501000104090100010409010010 +:10084000020411FF00040401010000000000000088 +:1008500000000000008204FF00004402010007FFC6 +:100860009021000010102100001017FD0000101052 +:1008700021000FFFD06100001010A10000281121FD +:100880000000281221000044142100008210A10061 +:100890000301D045000C00900200000000000000A1 +:1008A00000000000084410FE00042810920005FF1C +:1008B00022920000103C920000100892001CFE10D2 +:1008C0009200041020FE0004103E920005FF80926A +:1008D00000041000920005100E92000610309200E5 +:1008E000041000FE00001000820000000000000064 +:1008F0000000000007DF8840000A24104000114279 +:1009000010FE00040022820002FF3D020008010ADE +:10091000420009F9103200090920120009F93E02CB +:1009200000090900020009090E020009F93022003D +:100930000805001400080200080000000000000084 +:10094000000000000FC3F1E0000FE3F1F8000C70AD +:10095000C19E000C30C186000C30C183000C30C138 +:1009600083000C60C183000C60C183000FC0C18391 +:10097000000FC0C186000C00C186000C00C19800A9 +:100980000C03F1F8000C03F1E0000000000000008F +:100990000000000000200820000FFF09FC000020DC +:1009A00008000000203E880003FE08500002020BF1 +:1009B000FE0003FE0C4000020218400003FE2BFE66 +:1009C00000020208480003FE0888000202085000E6 +:1009D00002022830001FFF91CC000000000000013F +:1009E00004047C0000880444000FFF3F4400002002 +:1009F00004440000200C440000200E44001FFF951A +:100A000044000020144400005024440000500444DA +:100A100000008804450001040485000603850300E6 +:100A200018010400000000000000000000000000A9 +:100A300000000000047E21FC0004421104001F7E1F +:100A4000090400044221FC000542110400067E1145 +:100A500004000C0005FC0015FF880000040813FECC +:100A6000000448325200044F12520004481252004F +:100A700014A8125200091F97FF0000000000000098 +:100A80000000000002103DFC0002102504000410CC +:100A900025040005FFBDFC000C102520000C3825A6 +:100AA0002000143825FE0004543D20000454251075 +:100AB0000004922510000511A5090006113D45000E +:100AC0000410258300041001010000000000000054 +:100AD000000000001FC8102000124A0C20001AC994 +:100AE00004200017480020001FFFB820000208085B +:100AF00050001FC8085000020808500003C80848EA +:100B0000001E1408880001540A880015220C840075 +:100B10001443890700008106020000000000000263 +:100B2000FE01000002823FFF00048202000004FE7A +:100B30000200000C1004FC00141004080005FF8CD7 +:100B400010000410141000043825FF0004340410B1 +:100B50000004520410000491841000051004500099 +:100B6000041004200000000000000000000000004D +:100B70000000000002030010001FDC3EFE00089091 +:100B8000021200051004FF001FDF84120002120C85 +:100B9000FE001FD2021000021222FE000A92141060 +:100BA000000A5214100012220DFF00022208100049 +:100BB0000A42141000040223FF000000000000009D +:100BC000000000000F78BC20000948A45000094A2A +:100BD000A85000094AA88800094AB104001FFEAACB +:100BE000FB00094AA42000094AA42000094AA7FEE4 +:100BF00000094AB420000948A924000B48A2220099 +:100C0000088AA4A200111920400000000000000082 +:100C1000000000000020008000005001FC0000885F +:100C2000010400010403080006FB0490000800C052 +:100C3000600007DF018000045106000004511BFE24 +:100C400000045102020007D9020200045602020009 +:100C5000001003FE0000100202000000000000006F +:100C6000000000000208209000027F9890001F8082 +:100C700009FF00022201100006218B100007628D7F +:100C8000FE000AA20910000A14111000121431FE0D +:100C900000020811100002141110000222111000AD +:100CA000024391FF000281110000000000000000DB +:100CB00000000000100700000008F83FFE0004805C +:100CC000200200008020020000BE23E2001C8222DD +:100CD000220004A42222000494222200048822225A +:100CE00000049423E20005222002000542200200B5 +:100CF0000A003FFE0011FFA00200000000000000FB +:100D00000000000000820FFE00004400400007FFCA +:100D10008040000010004000001000400000101F44 +:100D2000FF800FFFC040000010004000002800407E +:100D30000000280040000044004000008200400005 +:100D40000301C140000C0080800000000000000989 +:100D5000FF00400004203FFF00042000000000FED0 +:100D60000000001C420FFC00044200000007FF804E +:100D7000000004000FFC0004FF00000004810000DC +:100D80000005810FFC00068108040004FF08040030 +:100D900000810FFC000000000000000000000000C7 +:100DA0000000000000401F7E001FFF840200108032 +:100DB0008442000A4A0442000A3108420012C50F68 +:100DC00042000304197F001DF829010000400901B9 +:100DD00000084209FD00084209010008420F010015 +:100DE0000FFE0905000002000200000000000000E4 +:100DF0000000000001000FFE00010008200003FFBA +:100E00000820000201082000042208200008200B0E +:100E1000FE00102008200000500828000050082480 +:100E20000000880822000088102000010410200023 +:100E30000203A7FF000C01000000000000000000FA +:100E40000000000000400080001FFF9FFC000040E9 +:100E50000410000FFF02200000003FFF000FFE0003 +:100E6000000008420FF80008420808000FFE0808BA +:100E70000008020FF8000800080800080008080031 +:100E800008000FF800100008080000000000000033 +:100E90000000000007FE0FF800040200000004023A +:100EA00000000007FE00000004023FFE00040200F4 +:100EB000800007FE008000009004900008910C88DC +:100EC00000069310860002942082000090008000AB +:100ED00000900280001FFF81000000000000000061 +:100EE00000000000041012020005FF9FD200050060 +:100EF0009212001E28A2120004443FF20004820253 +:100F0000120006000212000CFE1FD2001410125232 +:100F10000004101242000410134200041012820058 +:100F200015FF820A00080002040000000000000013 +:100F300000000000002000000000203E04001FFF11 +:100F4000A204001000A2FF0000012204000FFE22F4 +:100F5000040000403E4400004022240004402224BB +:100F600000047C22040004402204000A403E0400E5 +:100F7000094022240010FF80140000000008000037 +:100F80000000000010FE08200008820BFF00048211 +:100F90000A010010FE3C51000882088800088209FE +:100FA000040002FE0C0000040019FC0009FF2820C8 +:100FB0000019290820000929082000092908200013 +:100FC00009292BFF000BFF9000000000000000002B +:100FD000000000001F7F90F80001080888000A1038 +:100FE000088800047F0107001FC13A000005490975 +:100FF000FC000449088400044908880004490848A2 +:1010000000044908500004490A200004160C580046 +:10101000142189870008C086020000000000001F1C +:10102000E03FF07038601860186018FFFCFCFCFCB2 +:10103000FCFCFCF87CF87CFCFC7FF81E1033382D9F +:101040007C25382D3825382D386D80DEC0BF40BF57 +:1010500040DEC061803F007FF0FFE0C008C01CC0E0 +:1010600038C870DCE4CFCCC78CC30CC00CC00CFFFC +:10107000FC7FF8000006000C0018F838F0303070E3 +:1010800060707878F878003C023F0C1FF80FF0038E +:10109000C000007FF8FFFCC00CC30CCB4CDB6CDB4A +:1010A0006CD86CDCECCFCCC78CC00CFFFC7FF80399 +:1010B0000007800FC00CC01CE01CE03CF03CF07F3F +:1010C000F87FF8FCFCFCFCFFFC7FF811408200215B +:1010D000208FE023FC82004A23E200FE209FF013D1 +:1010E000F880802220C0804221BFF0FBFA88800275 +:1010F000208480022084801A208080E3FE82800287 +:101100000101000F421FC078411040084090400884 +:10111000421FC008411040FFFD104008405FC0085A +:1011200040800008413FE008432520104125201061 +:101130004125202041252040417FF07FF848800252 +:101140000049000201FFF00201001002027F20228C +:1011500000410023F07F00220008002200FF8022CF +:101160000088802200888022008A8022008900FF77 +:10117000FC080023F21FC022111040FBF090402217 +:10118000121FC02A11104033F1104060005FC0AF41 +:10119000FC800020413FE0224325202279252022A7 +:1011A000412520A541252048FD7FF01083DFC01098 +:1011B000825040208250402FFFDFC0608252006189 +:1011C000C25200A1C25FE022A3D20022A251002499 +:1011D000925100288E5090308BD45020825830206D +:1011E000801010104047C017FC44402003F44023F7 +:1011F000F844406208C440A3F8E440200154402F62 +:10120000FD44402806444023F844402040445020F8 +:10121000404850214050302080400020921FC03D67 +:10122000F990402090904040901FC07BFF0000A0AC +:10123000013FE021F90200FD09020021097FF021B0 +:10124000F90500210945002909888031F91070212C +:1012500008202025004300202070F8754077557540 +:101260007740403E4A5E2B5E4A6B627F352F357F6A +:101270007C5B5E247B0E3A047E017E4A5E69063A00 +:101280002F3F6B7E46403F41497F494102626B6B75 +:101290006B62026A6B147D577D10413F55553D5777 +:1012A00051213F2D7F2A122E0A775A505A770A2051 +:1012B00024137D5553707A2A7B021A437A4A525E70 +:1012C0002B5E424A415F353F555F417D14577D0E8D +:1012D000407F7F1B54167D1654493A407E57567600 +:1012E000423F427E7E427E047E51377D3750127AE5 +:1012F0001752761E127F557F145D7F557F557F7F75 +:10130000553D577F55377817457F7F2B7B287B2BA3 +:101310007F1E12127F12121E7F416B7F6B517F5214 +:101320005A573A575A52007F494949497F22122A4F +:101330007F2A1222166A5E735662160937315F15CC +:101340005F7500000000002F000300033F123F16EE +:101350003F1A120824323D2A020100003E41413E5C +:10136000000A070A083E084020000808080020007C +:101370001008041C2A1C243E20322A24222A141875 +:10138000143E2E2A121C2A12023A06142A14242A67 +:101390001C002400402400081422141414221408F1 +:1013A00002290612291E3E093E3F251A1E21213F11 +:1013B000211E3F25213F05011E21393F083F213FC6 +:1013C0002110201F3F043B3F20203F063F3F013EAE +:1013D0001E211E3F09061E215E3F093622251901E6 +:1013E0003F013F203F3F100F3F183F330C33033C7A +:1013F00003312D23007F41153E15417F000201027C +:1014000040404000010218243C3F241818242418AE +:10141000243F182C2C043F0548543C3F0438003D21 +:1014200000403D003F0834013F003C1C383C04387C +:101430001824187C241818247C3C0804283C140424 +:101440003E243C203C3C100C3C303C2418244C50A6 +:101450003C24342C083641007F004136080101014C +:101460001028101F010120203E1020000008002538 +:10147000150F241C0C103804180C3828382828188C +:101480003C083C18283820242C3C2C2C1C04080830 +:10149000211D07083C0306231E223E22120A3F326A +:1014A0000F3E0A3F0A24130E271E0222223E271255 +:1014B0000F2525102119273F222E21160F241B0E40 +:1014C000251F0526261E251D053F0408241F042070 +:1014D0002222251927123B1620100F3C013E1F2403 +:1014E0002421110F0C031C1A3F1A091927222A2A3A +:1014F000382730320C13053F25023F0E213F2025AF +:10150000253F25251D07201F3C3F203F20103E2260 +:101510003E23110F212118010001020502000000E5 +:1015200000000000002040000000000000205020CB +:10153000000000000050300000000000006060006B +:101540000000000000000018180000000000003635 +:1015500036000000000000563600000000000201C6 +:1015600051090906000000005F00000000000000B3 +:10157000007F41410041417F000000000000000069 +:101580003F010101004040407E0000000000003F9C +:10159000213D05070070505E427E00000000000003 +:1015A000007F63410041637F0000000000080808DD +:1015B0007F08080800080808080808080044444490 +:1015C0005F444444004122140814224100080808E2 +:1015D0002A080808001414141414141400143414E1 +:1015E0001C141614000808141414222200222214B9 +:1015F00014140808000205023C42422400002B2C6F +:10160000782C2B000000242A7A2F2A1200001C625A +:10161000322E23140020545E254142200042251220 +:10162000082452210020623E633E230200205649D6 +:1016300055225840000022147F142200001C225919 +:10164000554D120C0000004A555529000004643C19 +:10165000173C64040004643C1F3C6404001C2241E9 +:101660004141221C001C3E7F7F7F3E1C001C225DEE +:10167000555D221C000814224122140800081C3E5B +:101680007F3E1C08007F41414141417F007F7F7FB9 +:101690007F7F7F7F0040704C434C70400040707CE7 +:1016A0007F7C704000010719611907010001071FC5 +:1016B0007F1F07010049221449142249000505052E +:1016C0007D05050500080808082A1C0800081C2AD2 +:1016D00008080808000004027F020400000010202F +:1016E0007F20100000003E414141413E0000004289 +:1016F0007F400000000062515149494600002241EC +:10170000494949360000302824227F2000002F4517 +:101710004545453900003E4949494932000001012B +:101720006119050300003649494949360000264938 +:101730004949493E000020547E3414600020527F05 +:101740002A1A4A3000003C4020041800001E2040A5 +:10175000200204180000104A4A2A10000000084520 +:10176000454525180000482A3A4A40000000442513 +:10177000153D45400000247E145024000022527F75 +:101780000A484A340044344F443804180044344F63 +:101790004439041900002A5A4B4E5A0800002A5AAC +:1017A0004B4E5B080000081414224100000008148E +:1017B00014224504003F0004443F0404003F000499 +:1017C000443F0405000020524242424000002052A3 +:1017D000424342410000245444475C040000245426 +:1017E00044475C050000003F404040200000003FAF +:1017F000404140210002020A563F02020002020A52 +:10180000563F02030004043F44545F440004043F75 +:1018100044545F45000008093D4B49080000080991 +:101820003D4B490A00423A072254444400423A07D9 +:1018300022554445000002124E4B4A32000002126B +:101840004E4B4A3300001010484830000004040298 +:101850002222221C000404022223221D0000020274 +:101860001A254341000002021A2543450000205773 +:1018700048484444000020574849444500120A277C +:1018800052503A24007F00205242424000304E38ED +:10189000540F64780024147F0422523C0018241250 +:1018A0004E422418007F002454543F44007F0024FB +:1018B00054543F45007F002454563D4600023A47A9 +:1018C00040413E0400023A4740413E0500023A478B +:1018D00040433D06004030404D32106000403040F3 +:1018E0004D321161004030404D3215620008040253 +:1018F0000408101000080402040910110008040272 +:10190000040A1512007F006A6A7E2A4A007F006A74 +:101910006A7F2A4B007F006A6A7E2D4A00006A6A4D +:101920006A7F2A4A0030291D4B483C1000122A7F4A +:101930004240422400304E38540F443800000A3EE2 +:101940004B4A4A300000080E384614080004071CB1 +:1019500062030A0400001C483E241800001E0452C2 +:101960003F12120C00002050503E48000000205052 +:10197000503F244400001C51494A483000000F42A7 +:1019800041211E00000010696D4B49300024147F76 +:1019900004023E40000010494D4B49300000281819 +:1019A0007E0844380024147F0442423C003049251C +:1019B0001F245438004028255735284000100A2E8F +:1019C0005B724A480040300C334040200000044421 +:1019D0003C140C00000001413D09050300002020DB +:1019E0001078040000001010087C02010000184864 +:1019F0004C281800000006424322120E0000404806 +:101A000078484000002022223E2222200000282880 +:101A1000587C0800002222124A7F02020000422263 +:101A20001F02427E000042221F02427F000012126B +:101A30001F721210000012121F72131000000844CF +:101A40004322120E000008444322120F00080742EE +:101A5000221E020200080742221F02030000424227 +:101A60004242427E000042424243427F0002024F15 +:101A700042221F020002024F42231E030000454A79 +:101A80004020100C0000454A4021100D0040422229 +:101A9000221A264000404222221B26410004043F15 +:101AA0004444544C0004043F4445544D0000014656 +:101AB0004020100F000001464020110F0000084494 +:101AC0004B2A120E000008444B2A120F00080A4A43 +:101AD0003E09090800080A4A3E09080900001840A2 +:101AE0005820180000020C424C20100E00020C423C +:101AF0004C21100D000405453D0505040004054575 +:101B00003D0504050000007F080810000000007F6C +:101B100008091001000444241F04040400202222A8 +:101B200022222220004041251519270000202212E0 +:101B30007B06122000404020100807000040300EB5 +:101B400000020C700040300E00020D710040300E9B +:101B500000020D7200003F484848444400003F48DE +:101B60004849444500003F48484A45460000024273 +:101B70004222120E000002424223120F00000242D3 +:101B80004222150E00080402040810200008040276 +:101B90000409102100080402040A15220024144438 +:101BA0007F041424002414447F05142500241444C5 +:101BB0007F0615220002021222520A060000212589 +:101BC000294A42000040704C4350204000404424C9 +:101BD00014083700000008093F4949480000101C5C +:101BE000680818000004040F74020A060000404848 +:101BF0004878400000202222223E2020000000449D +:101C000054547C000000424A4A4A4A7E000004457F +:101C10004525150C00000F4040201F000040201EED +:101C2000007F20100000007F4020100800007E424E +:101C30004242427E00000C4444241C000000064244 +:101C40004222120E0010121E12127F1200202222B7 +:101C50003A262220000001454525150F000041428B +:101C60004020100C000006424322120F00004828BA +:101C70001C4878000000100C4838080000080404D4 +:101C800008101008000800000800000800040808F8 +:101C900008080808000808080808080808060505D4 +:101CA0000706040903030504090A080303030603DE +:101CB00005030305050306040405050405040403E0 +:101CC00004090503CB05C605C005B805B105AA057D +:101CD000A2059D05980592058B0584057A05730577 +:101CE0006C05680563055B0555054F054A05440508 +:101CF00040053A0535052E052A05260520051C0553 +:101D00001905160512050F050C050905FD04F80453 +:101D1000F3043E0053656C656374205469700000E1 +:101D2000000000003E5B4F5B3E3E6B4F6B3E1C3E37 +:101D30007C3E1C183C7E3C181C577D571C1C5E7F4B +:101D40005E1C00183C1800FFE7C3E7FF00182418CA +:101D500000FFE7DBE7FF30483A060E2629792926FF +:101D6000407F050507407F05253F5A3CE73C5A7FE9 +:101D70003E1C1C08081C1C3E7F14227F22145F5F3F +:101D8000005F5F06097F017F006689956A60606079 +:101D9000606094A2FFA29408047E040810207E20B4 +:101DA0001008082A1C08081C2A08081E1010101009 +:101DB0000C1E0C1E0C30383E3830060E3E0E06004F +:101DC0000000000000005F00000007000700147F13 +:101DD000147F14242A7F2A1223130864623649567A +:101DE00020500008070300001C2241000041221C73 +:101DF000002A1C7F1C2A08083E080800807030005A +:101E00000808080808000060600020100804023E6E +:101E10005149453E00427F400072494949462141AF +:101E2000494D331814127F1027454545393C4A491E +:101E3000493141211109073649494936464949295D +:101E40001E0000140000004034000000081422416D +:101E50001414141414004122140802015909063EF6 +:101E6000415D594E7C1211127C7F494949363E41F1 +:101E70004141227F4141413E7F494949417F090912 +:101E800009013E414151737F0808087F00417F41AD +:101E9000002040413F017F081422417F40404040E4 +:101EA0007F021C027F7F0408107F3E4141413E7F3C +:101EB000090909063E4151215E7F09192946264933 +:101EC00049493203017F01033F4040403F1F20400A +:101ED000201F3F4038403F63140814630304780414 +:101EE000036159494D43007F4141410204081020DC +:101EF000004141417F040201020440404040400053 +:101F00000307080020545478407F2844443838445C +:101F1000444428384444287F385454541800087ED8 +:101F2000090218A4A49C787F0804047800447D402A +:101F3000002040403D007F1028440000417F4000C9 +:101F40007C047804787C080404783844444438FCE1 +:101F50001824241818242418FC7C08040408485465 +:101F600054542404043F44243C4040207C1C204022 +:101F7000201C3C4030403C44281028444C90909019 +:101F80007C4464544C440008364100000077000053 +:101F9000004136080002010204023C2623263C1EB2 +:101FA000A1A161123A4040207A3854545559215524 +:101FB0005579412154547841215554784020545545 +:101FC00079400C1E52721239555555593954545492 +:101FD0005939555454580000457C410002457D4212 +:101FE0000001457C40F0292429F0F0282528F07CC8 +:101FF000545545002054547C547C0A097F49324989 +:102000004949323248484832324A4848303A4141D8 +:10201000217A3A42402078009DA0A07D3944444472 +:10202000393D4040403D3C24FF2424487E494366DE +:102030002B2FFC2F2BFF0929F620C0887E090320B7 +:10204000545479410000447D413048484A32384078 +:1020500040227A007A0A0A727D0D19317D262929DB +:102060002F28262929292630484D402038080808DD +:102070000808080808382F10C8ACBA2F102834FAFE +:1020800000007B000008142A142222142A14089548 +:1020900000220095AA005500AAAA55AA55AA000038 +:1020A00000FF00101010FF00141414FF001010FFA8 +:1020B00000FF1010F010F0141414FC001414F700BA +:1020C000FF0000FF00FF1414F404FC141417101F89 +:1020D00010101F101F1414141F00101010F0000017 +:1020E00000001F101010101F10101010F010000032 +:1020F00000FF101010101010101010FF1000000042 +:10210000FF140000FF00FF00001F10170000FC0478 +:10211000F414141710171414F404F40000FF00F75B +:1021200014141414141414F700F7141414171410BE +:10213000101F101F141414F4141010F010F00000ED +:102140001F101F0000001F14000000FC140000F00E +:1021500010F01010FF10FF141414FF141010101FB3 +:1021600000000000F010FFFFFFFFFFF0F0F0F0F0C4 +:10217000FFFFFF0000000000FFFF0F0F0F0F0F38E1 +:10218000444438447C2A2A3E147E02020606027E1B +:10219000027E0263554941633844443C04407E203A +:1021A0001E2006027E020299A5E7A5991C2A492A4B +:1021B0001C4C7201724C304A4D4D303048784830DA +:1021C000BC625A463D3E494949007E0101017E2AD2 +:1021D0002A2A2A2A44445F444440514A4440404405 +:1021E0004A51400000FF0103E080FF000008086B37 +:1021F0006B083612362436060F090F060000181831 +:102200000000001010003040FF0101001F01011EFE +:1022100000191D1712003C3C3C3C0000000000006F +:10222000000000240027002A0000000000250028EC +:10223000002B0000000000230026002900040404F5 +:10224000040404040402020202020203030303035F +:10225000030102040810204080010204081020013C +:10226000020408102000000008000201000003041E +:10227000070000000000000000AED5F0A83FD3002A +:10228000408D14A1C8DA1281CFD9F1DB40A4A6AFEA +:10229000200021007F220007506C65617365207764 +:1022A000616974004144433A200074656D703A20BE +:1022B00000536574206D65617375726564005374B5 +:1022C00065703A2000FFFFFFFFFFFF8003867080EC +:1022D000038003867080039FF3E1309FF39FF3E157 +:1022E000309FF3983301CC9833983301CC983398CE +:1022F0003387C098339833E1C098339833E1C0985E +:10230000339FF398C09FF39FF398C09FF3800366B9 +:10231000CC8003800366CC8003FFFF010CFFFFFF2E +:10232000FF01001FFF810061301F3F873CE6FC87F3 +:1023300033873CE6FC87F3F8039E0F1F03F8039EE8 +:102340000F1F03E13CFE0C07CFE13CFE0C07CF99C9 +:10235000033E3086C3E6CF380F9EF3E6CF380F9E9C +:10236000F39E0327CC81039E0327CC8103E0FFE18A +:102370000CE6CFE0FFE10CE6CF9803060000FF98E3 +:1023800003060000FFFFFF1EF0F80380036630998C +:10239000C38003663099C39FF3010CF8FF9FF301DC +:1023A0000CF8FF9833393C01CF9833393C01CF9872 +:1023B00033FF0C793F98333ECCE0F398333ECCE0CA +:1023C000F39FF33E0098CF9FF33E0098CF80033EEB +:1023D00030E7C380033E30E7C3FFFFFFFFFFFFFF8F +:1023E000FFFFFFFFFF3030300076312E372B0056D5 +:1023F00000560043000FE01FC01FC03F803FF87F22 +:10240000F07FE007C007800F000E001C00180010CE +:102410000014A03FF07FF8E01C6E18EC1C681860F8 +:1024200018E01C6058E01C7FF83FF014A0455252A1 +:102430004F5200484F4C44004845415400574F52BA +:102440004B5900424F4F535400534C454550004F99 +:1024500046460000003BEC7BEE63E663E663E66322 +:10246000E663E663E663666226600660067FFE3F1B +:10247000FC000001020408102040800017291124EC +:102480001FBECFEFD8E0DEBFCDBF12E0A0E0B1E0CD +:10249000E6E8F4E702C005900D92A23CB107D9F737 +:1024A00028E0A2ECB2E001C01D92A131B207E1F731 +:1024B00012E1CFE3D2E104C02197FE010E94223A4B +:1024C000CE33D107C9F70E94CC290C94413A0C9421 +:1024D00000004F925F926F927F928F929F92AF9285 +:1024E000BF92CF92DF92EF92FF920F931F93CF9301 +:1024F000DF9300D000D0CDB7DEB74B015C012901DE +:102500003A016701780120E030E0A9010E946235BC +:1025100087FDA6C020E030E0A901C301B2010E94FE +:10252000623587FD9DC020E030E0A901C801B601F9 +:102530000E94623587FD94C081E02091DB073091D5 +:10254000DC072130310509F080E08093FC078092A0 +:10255000C1079092C207A092C307B092C4074092ED +:10256000C5075092C6076092C7077092C807C0920D +:10257000C907D092CA07E092CB07F092CC076091CE +:10258000EF077091F0078091F1079091F2070E9498 +:10259000673520E030E04AE754E40E946C376983F5 +:1025A0007A838B839C838092CD079092CE07A092F2 +:1025B000CF07B092D0079B01AC01C301B2010E94CA +:1025C000C8352B013C014092D1075092D20760924E +:1025D000D3077092D40729813A814B815C81C7016E +:1025E000B6010E946C376B017C01C092D507D09276 +:1025F000D607E092D707F092D8078091D90790913B +:10260000DA07019769F5A501940160E070E0CB015C +:102610000E94FF366093CD077093CE078093CF075B +:102620009093D007A301920160E070E0CB010E947B +:10263000FF366093D1077093D2078093D3079093AE +:10264000D407A701960160E070E0CB010E94FF363D +:102650006093D5077093D6078093D7079093D807D8 +:102660000F900F900F900F90DF91CF911F910F91CE +:10267000FF90EF90DF90CF90BF90AF909F908F90A2 +:102680007F906F905F904F90089580389105B0F4DF +:102690006034710598F4E3E7F4E290E1969FD0018D +:1026A000A0781124A80F6770E60FF11D9491A85E21 +:1026B000BC4F442321F08C91982B9C9308959095C6 +:1026C0008C919823FACFDF92EF92FF920F931F9392 +:1026D000CF93DF937C01D22E8B01040F111DEB01F0 +:1026E00077FF02C0D0E0C0E0C8010134110514F04A +:1026F00080E490E0C817D9073CF44D2DBE01C70116 +:102700000E9445132196F0CFDF91CF911F910F9139 +:10271000FF90EF90DF900895CF92DF92EF92FF92BB +:102720000F931F93CF93DF936B01122FEC017C016A +:10273000E40EF11CCE15DF0544F4202F412FB60125 +:10274000CE010E9463132196F5CFDF91CF911F91A7 +:102750000F91FF90EF90DF90CF9008952F923F92CE +:102760004F925F926F927F928F929F92AF92BF92A1 +:10277000CF92DF92EF92FF920F931F93CF93DF934D +:1027800000D01F92CDB7DEB7C22ED12C9601280FF4 +:10279000391F37FD4FC0803891050CF04BC0E982DE +:1027A0004A017B013C01402E512C160127E0220EEC +:1027B000311C93E0359427949A95E1F78B01B12C65 +:1027C000A12C1B821A82EA81FB8183E0F595E795B3 +:1027D0008A95E1F7EA0DFB1DE80DF91DE4918A8168 +:1027E0009B818770992720E830E002C035952795B6 +:1027F0008A95E2F7C901F0E0E223F923EF2B41F0DB +:102800004981B8018A819B81860D971D0E944513DD +:102810008A819B8101969B838A838C159D059CF2FE +:10282000A20CB31C0F5F1F4FC8018E199F0984159E +:1028300095053CF20F900F900F90DF91CF911F9173 +:102840000F91FF90EF90DF90CF90BF90AF909F904F +:102850008F907F906F905F904F903F902F90089552 +:102860000F931F93CF93DF93EC018B0140E0019610 +:102870000E94451340E0B801CE0101970E94451324 +:10288000B8016F5F7F4F40E0CE010E944513B80151 +:102890006150710940E0CE010E94451340E0B8014B +:1028A000CE01DF91CF911F910F910C94451380E0E1 +:1028B000E8E1F3E081118FEF00248193819381930C +:1028C00081930394D1F7EDEFF7E01786168615860E +:1028D000148608956F927F928F929F92AF92BF92CB +:1028E000CF92DF92EF92FF920F931F93CF93DF93DC +:1028F000803891050CF057C0603471050CF053C05E +:102900007B0137E0E322FF2433E0759567953A9524 +:10291000E1F7DB01B695BA2FAA27B795A7955D0118 +:10292000C0E8AC0EB11CA80EB91EA80FB91FA85E56 +:10293000BC4F00E810E0081B190B90E080E0E8E0D5 +:10294000F0E04F018E189F0830E0FA01E80FF91F00 +:10295000C4917D906D01D1E0CD1AD1080E2C01C03B +:10296000CC0F0A94EAF77C2AE6017882E114F1049C +:1029700099F06730710581F0E491EC01CA0DDB1D1F +:10298000C85EDC4FF0E0082C02C0F595E7950A948C +:10299000E2F7F881EF2BE8830196821793071CF486 +:1029A0000817190791F6DF91CF911F910F91FF90B2 +:1029B000EF90DF90CF90BF90AF909F908F907F90DF +:1029C0006F900895AF92BF92CF92DF92EF92FF92F5 +:1029D0000F931F93CF93DF936C017B018B01040F47 +:1029E000151FEB015E01AE18BF08C017D10759F0E3 +:1029F0006991D601ED91FC910190F081E02DC60125 +:102A00000995892B79F7C501DF91CF911F910F911E +:102A1000FF90EF90DF90CF90BF90AF900895FC01B2 +:102A2000538D448D252F30E0842F90E0821B930B33 +:102A3000541710F0CF96089501970895FC01918DD9 +:102A4000828D981761F0A28DAE0FBF2FB11D5D96DC +:102A50008C91928D9F5F9F73928F90E008958FEF7E +:102A60009FEF0895FC01918D828D981731F0828D32 +:102A7000E80FF11D858D90E008958FEF9FEF089589 +:102A8000FC01918D228D892F90E0805C9F4F821BED +:102A900091098F739927089588E197E00E94401566 +:102AA00021E0892B09F420E0822F089580E090E056 +:102AB000892B29F00E944C1581110C940000089577 +:102AC000FC01A48DA80FB92FB11DA35ABF4F2C91A3 +:102AD000848D90E001968F739927848FA689B7899A +:102AE0002C93A089B1898C91837080648C93938D91 +:102AF000848D981306C00288F389E02D80818F7D34 +:102B000080830895EF92FF920F931F93CF93DF93EB +:102B1000EC0181E0888F9B8D8C8D98131AC0E88919 +:102B2000F989808185FF15C09FB7F894EE89FF89E8 +:102B30006083E889F98980818370806480839FBF86 +:102B400081E090E0DF91CF911F910F91FF90EF9086 +:102B50000895F62E0B8D10E00F5F1F4F0F73112796 +:102B6000E02E8C8D8E110CC00FB607FCFACFE889D1 +:102B7000F989808185FFF5CFCE010E946015F1CFE4 +:102B8000EB8DEC0FFD2FF11DE35AFF4FF0829FB745 +:102B9000F8940B8FEA89FB8980818062CFCFCF9335 +:102BA000DF93EC01888D8823B9F0AA89BB89E88975 +:102BB000F9898C9185FD03C0808186FD0DC00FB61B +:102BC00007FCF7CF8C9185FFF2CF808185FFEDCF99 +:102BD000CE010E946015E9CFDF91CF910895833037 +:102BE00081F028F4813099F08230A9F0089587307F +:102BF000A9F08830C9F08430B1F4809180008F7DD5 +:102C000003C0809180008F7780938000089584B501 +:102C10008F7784BD089584B58F7DFBCF8091B00000 +:102C20008F778093B00008958091B0008F7DF9CFA9 +:102C3000CF93DF93282F30E0F901EB59FD4D8491BC +:102C4000F901EF5AFD4DD491F901E35CFD4DC491BA +:102C5000CC23A1F081110E94EF15EC2FF0E0EE0FD4 +:102C6000FF1FED5CFD4DA591B491EC91ED2381E04A +:102C700090E009F480E0DF91CF91089580E090E04A +:102C8000FACF1F93CF93DF93282F30E0F901EB5950 +:102C9000FD4D8491F901EF5AFD4DD491F901E35CAA +:102CA000FD4DC491CC23A9F0162F81110E94EF1580 +:102CB000EC2FF0E0EE0FFF1FE75DFD4DA591B49105 +:102CC0008FB7F894EC91111108C0D095DE23DC93F6 +:102CD0008FBFDF91CF911F910895DE2BF8CFCF9357 +:102CE000DF9390E0FC01EF5AFD4D2491835C9D4DF4 +:102CF000FC0184918823C9F090E0880F991FFC01A2 +:102D0000E15EFD4DA591B491FC01E75DFD4DC591DE +:102D1000D49161110DC09FB7F8948C9120958223B6 +:102D20008C938881282328839FBFDF91CF910895BA +:102D3000623051F49FB7F8943C91822F80958323A1 +:102D40008C93E8812E2BEFCF8FB7F894EC912E2B3C +:102D50002C938FBFEACF1F93CF93DF93182FEB01F4 +:102D600061E00E946F16209739F460E0812FDF91B7 +:102D7000CF911F910C944116CF3FD10511F461E022 +:102D8000F5CFE12FF0E0EB59FD4DE491E33031F167 +:102D900040F4E130B1F0E230E1F0C038D1057CF729 +:102DA000E4CFE73029F1E83059F1E430B1F7809110 +:102DB0008000806280938000D0938B00C0938A0053 +:102DC00004C084B5806884BDC7BDDF91CF911F91D9 +:102DD000089584B5806284BDC8BDF7CF809180001E +:102DE000806880938000D0938900C0938800EDCFE5 +:102DF0008091B00080688093B000C093B300E5CFAD +:102E00008091B00080628093B000C093B400DDCFA9 +:102E10003FB7F8948091DC029091DD02A091DE0230 +:102E2000B091DF0226B5A89B05C02F3F19F001968F +:102E3000A11DB11D3FBFBA2FA92F982F8827BC0114 +:102E4000CD01620F711D811D911D42E0660F771F3C +:102E5000881F991F4A95D1F708958F929F92AF923C +:102E6000BF92CF92DF92EF92FF924B015C010E94E2 +:102E700008176B017C010E9408176C197D098E09E7 +:102E80009F09683E734081059105A8F321E0821AED +:102E90009108A108B10888EEC80E83E0D81EE11C95 +:102EA000F11C81149104A104B10429F7FF90EF9063 +:102EB000DF90CF90BF90AF909F908F9008952FB7E5 +:102EC000F8946091D8027091D9028091DA029091C1 +:102ED000DB022FBF089584E98093BC008091BC0081 +:102EE00084FDFCCF08958093BB0084E88093BC00F0 +:102EF0008091BC0087FFFCCF089584EA8093BC00DA +:102F00008091BC0087FFFCCF88E70C9473170E9468 +:102F10007D1780E48093BB0084E88093BC00E8E1E7 +:102F2000F3E09091BC0097FFFCCF91919093BB0090 +:102F30008093BC0097E0E831F90799F78091BC00D5 +:102F400087FFFCCF0C946B17CF93C82F0E947D177F +:102F500080E00E9473178C2F0E947317CF910C94FE +:102F60006B17480F592F511D4138510514F040E897 +:102F700050E0481BFB0177FD379633E0F595E79568 +:102F80003A95E1F7F695FE2FEE27F795E795E80FCE +:102F9000F91FE85EFC4F6770772781E090E001C081 +:102FA000880F6A95EAF7382F213041F4415078F0C4 +:102FB0008191DF011197832B8C93F8CF809541503D +:102FC00030F09191DF01119798239C93F8CF0895E9 +:102FD000CF92DF92EF92FF920F93CF93DF936C012A +:102FE0007B01C42FD22F202F0E94B117B7016D0F84 +:102FF000711D61507109603471052CF4202F4C2F24 +:10300000C6010E94B117202F4D2FB701C6010E94A3 +:103010006313C6018C0F911D202F4D2FB70101970F +:10302000DF91CF910F91FF90EF90DF90CF900C94B4 +:1030300063132F923F924F925F926F927F928F9283 +:103040009F92AF92BF92CF92DF92EF92FF920F9337 +:103050001F93CF93DF93CDB7DEB72A970FB6F894BF +:10306000DEBF0FBECDBF9A8389836A3061F5DC0174 +:1030700052968C91B8E08B9F90011124E981FA81DE +:1030800086859785820F931F978786871586148676 +:1030900081E090E02A960FB6F894DEBF0FBECDBF58 +:1030A000DF91CF911F910F91FF90EF90DF90CF9024 +:1030B000BF90AF909F908F907F906F905F904F9058 +:1030C0003F902F9008956D3019F329813A813A8706 +:1030D0002987D9011C96AD90BC90B0E8AB16B1041D +:1030E0000CF07BC0F901C684D784F0E4CF16D1047C +:1030F0000CF073C0D90152966C90529745E095013F +:10310000649E200D311D1124121613060CF065C0AB +:10311000262C312C910153E0220F331F5A95E1F7F1 +:103120002C0D3D1D121613060CF057C05196BC9184 +:10313000BB83E985FA85F089FC83649FB001112483 +:103140009B01215E324E3A832983712CE981FA81F9 +:103150008491F5E07F1201C080E0460138E0532EF3 +:10316000282F30E03E832D834C8080FF4B80411020 +:1031700004C03B818C813817E1F010E000E00615B7 +:10318000C0F4D501A00FB11FB887AF83F12CE12C9B +:10319000E61460F4B701680D791D442D8F81988580 +:1031A0000E944513BFEFEB1AFB0AF2CF0F5F1F4FD0 +:1031B000E6CF8D819E81959587955A94820C931CBC +:1031C0005110CECF7394E981FA813196FA83E98365 +:1031D000A20CB31CF6E07F12B9CFA985BA8552962E +:1031E0002C915297422F50E01C968D919C91B6E005 +:1031F0002B9F800D911D1124E985FA859587848781 +:103200002389222309F444CF6AEF64039001659F68 +:10321000300D112420583F4F281739070CF038CFB4 +:10322000DF010190F081E02D0190F081E02D6AE056 +:10323000CD0109952DCF0F931F93CF93DF938C0171 +:10324000D0E0C0E0F801EC0FFD1F6491662341F06F +:103250008DEF97E00E941918892B11F02196F2CF7B +:10326000CE01DF91CF911F910F910895682F8DEFBF +:1032700097E00C941918089590E080E008958091EB +:103280007A00806980937A008EE480937C0061E00C +:1032900070E080E090E00E942D1783B7817F82600C +:1032A00083BF80E130E020E093B7916093BF8895C1 +:1032B00093B79E7F93BF90917A0096FDFCCF40918B +:1032C000780050917900240F351F815069F7809163 +:1032D0007A008F7780937A0084E0369527958A95D7 +:1032E000E1F750E040E064EB7BE281E190E00E9496 +:1032F0009C36C901089580917A00806980937A0094 +:1033000088EC80937C006AE070E080E090E00E94AE +:103310002D1783B7817F826083BF80E270E060E019 +:1033200093B7916093BF889593B79E7F93BF909119 +:103330007A0096FDFCCF2091780030917900620FE1 +:10334000731F815069F780917A008F7780937A009C +:10335000769567957695679562527A4090E080E021 +:103360000E94673526EF38E24CE151E40E946C3749 +:10337000089590917A00906990937A008E508064BD +:1033800080937C0083B7817F826083BF20E290E0DE +:1033900080E033B7316033BF889533B73E7F33BFAA +:1033A00030917A0036FDFCCF409178005091790041 +:1033B000840F951F215069F720917A002F77209371 +:1033C0007A0025E0969587952A95E1F708958FE094 +:1033D0000E94B919A091E302B091E4029C010E94FD +:1033E000F0360E94693528E539E743E353E40E944B +:1033F0006C370E94E537CB0108958091EC02882359 +:1034000069F086E00E941816892B41F06AE070E0AE +:1034100080E090E00E942D171092EC0208956F92C8 +:103420007F928F929F92AF92BF92CF92DF92EF9254 +:10343000FF920F93CF93DF937C01C62F01E020E32F +:1034400040E370E060E00E948C13570123E0A20E7D +:10345000B11C00E02AE24AE263E070E0C5010E948C +:103460008C1370E060E0C7010E94301467013FE2F6 +:10347000C30ED11C70E060E0C6010E9430146FE200 +:1034800070E0C7010E9430146FE270E0C6010E9434 +:103490003014EC2FF0E0EE0FFF1FE157FE4F80805D +:1034A000918053E0E52EF12CD12CC12C60E8662EE2 +:1034B000712CD0E0C0E0FE0133E0F595E7953A9538 +:1034C000E1F7EC0DFD1DE80DF91DE491CE018770CB +:1034D0009927930102C0359527958A95E2F7C9018E +:1034E000F0E0E223F923EF2B69F0CE01880F991F5A +:1034F0008C0F9D1F01E023E043E0B7018A0D9B1D67 +:103500000E948C132196CE30D105A9F632E0C30E6D +:10351000D11C83E0E80EF11C2DE2E216F10449F61D +:10352000DF91CF910F91FF90EF90DF90CF90BF9000 +:10353000AF909F908F907F906F9008950F931F93FF +:10354000CF9380914D01882399F0CFEF0FEE11E0DA +:1035500061E085E00E944116C8010197F1F760E043 +:1035600085E00E944116C8010197F1F7C15081F72B +:10357000CF911F910F9108952F923F924F925F929A +:103580006F927F928F929F92AF92BF92CF92DF9273 +:10359000EF92FF920F931F93CF93DF9310E000E021 +:1035A000D0E0C0E03EE3E32EF12C40ECC42ED12C61 +:1035B000AA24A394B12C60E2662E712C70E4272E0D +:1035C000312C4C2E86E00E94181621E0892B09F040 +:1035D00020E02093EC02F0921703E0921603D092C1 +:1035E0001503C0921403B0921303A092120382E851 +:1035F00090E09093110380931003809110039091B9 +:10360000110395958795582E9FE1591243C0F0926A +:103610001703E0921603D0921503C0921403B092E0 +:103620001303A0921203EEEBF0E0F0931103E0938A +:1036300010039FE5592E0E94571482E080930F08D3 +:1036400010930A0800930908E0E3F0E0F0930C08F7 +:10365000E0930B088EE50E94361910920A0810922A +:10366000090870920C0860920B08912C812C84142C +:1036700038F580910A03F40196E0989FE00DF11D62 +:103680001124E15BFE4F80810E943619EFEF8E1A04 +:103690009E0AEDCFF0E65F12CECFF0921703E092D4 +:1036A0001603D0921503C0921403B0921303A09294 +:1036B0001203309211032092100380E2582EBBCFE8 +:1036C00010930A080093090870920C0860920B0886 +:1036D000852D0E9436190E94FD190E94871786E0E9 +:1036E0000E941816892B09F088CF8091EC02811175 +:1036F00084CF80900A03F6E08F9E40011124C4011C +:10370000815B9E4F4C01FC01EC0FFD1F50820E941B +:103710009E1A6AE070E080E090E00E942D172196EA +:10372000005F1F4FC530D10509F04BCFF401158262 +:10373000DF91CF911F910F91FF90EF90DF90CF908D +:10374000BF90AF909F908F907F906F905F904F90C1 +:103750003F902F9008953F924F925F926F927F9289 +:103760008F929F92AF92BF92CF92DF92EF92FF9291 +:103770000F931F93CF93DF93CDB7DEB72E970FB67E +:10378000F894DEBF0FBECDBF80910D03882309F4EE +:10379000A5C11092B5071092B6071092B707109204 +:1037A000B8078090B5079090B607A090B707B09083 +:1037B000B807C090FE02D090FF02E0900003F090A6 +:1037C0000103A7019601C501B4010E94FF362B0138 +:1037D0003C0120E030E0A9010E94143818160CF0DA +:1037E000A0C1C301B2010E94E5378091480188233E +:1037F00009F4B8C1C092BD07D092BE07E092BF07DE +:10380000F092C007E12CF12C00EA10E420E030E057 +:1038100040E450E46E31710540F0E12CF12C00E8F9 +:103820001FE320E030E040E05FE360E070E080E331 +:1038300091E40E9469128091FB07882309F42AC150 +:103840000E945F176D837E838F8398878091E30743 +:103850009091E407A091E507B091E6074D815E8164 +:103860006F817885481B590B6A0B7B0B8091EF07A2 +:103870009091F007A091F107B091F207481759070E +:103880006A077B0708F406C1E091DD07F091DE07C7 +:1038900080819181A281B38189839A83AB83BC8328 +:1038A000E091E107F091E2079C01AD016081718137 +:1038B000828193810E94FF364B015C012091EB07CE +:1038C0003091EC074091ED075091EE0769817A81C4 +:1038D0008B819C810E94FF366B017C012091D10776 +:1038E0003091D2074091D3075091D407C501B4015C +:1038F0000E94C8352091E7073091E8074091E90719 +:103900005091EA070E9400372B013C014092E707E3 +:103910005092E8076092E9077092EA073090FC073E +:1039200031101AC02091CD073091CE074091CF07BA +:103930005091D007C701B6010E94C8359B01AC0168 +:10394000C301B2010E94FF366093E7077093E80756 +:103950008093E9079093EA074090E7075090E807C3 +:103960006090E9077090EA071091F7079091F807C7 +:103970009E87A091F907AD870091FA07212F392F73 +:103980004A2F502FC301B2010E94143818160CF0B0 +:10399000CCC0812F9E85AD85B02F8093E707909393 +:1039A000E807A093E907B093EA07332009F4D6C0EB +:1039B0002091CD073091CE074091CF075091D0078D +:1039C000C501B4010E94C8354B015C012091D507A7 +:1039D0003091D6074091D7075091D807C701B6015B +:1039E0000E94C8359B01AC016091E7077091E80720 +:1039F0008091E9079091EA070E94FF36A5019401A2 +:103A00000E9400376B017C019B01AC01612F7E8518 +:103A10008D85902F0E94623587FD18C01091F307A5 +:103A20009091F4079E87A091F507AD870091F60766 +:103A3000212F392F4A2F502FB601C7010E9462351E +:103A400087FD04C01C2DDE86ED860F2DE091DF077B +:103A5000F091E007812F9E85AD85B02F8083918303 +:103A6000A283B38389819A81AB81BC818093EB0768 +:103A70009093EC07A093ED07B093EE078D819E81A4 +:103A8000AF81B8858093E3079093E407A093E5079F +:103A9000B093E6076091B9077091BA078091BB07B0 +:103AA0009091BC070E94DE3789E02E960FB6F894FD +:103AB000DEBF0FBECDBFDF91CF911F910F91FF9061 +:103AC000EF90DF90CF90BF90AF909F908F907F90BE +:103AD0006F905F904F903F900C94AB1680910C03C9 +:103AE000609144017091450181110EC08091FC02EA +:103AF0009091FD0220910B03BC01222329F06091DB +:103B00004301680F792F711D90E080E00E946735B6 +:103B10006093B5077093B6078093B7079093B80783 +:103B200040CEC301B20190585ECE8091F3079091D0 +:103B3000F407A091F507B091F60789879A87AB87BC +:103B4000BC879C01AD01C301B2010E94623587FFB1 +:103B50002CCF89859A85AB85BC851FCF812C912C74 +:103B6000540134CF20E030E040E05FE3C701B6010C +:103B70000E9400379B01AC01C501B4010E941438BA +:103B800018164CF41092B9071092BA071092BB079E +:103B90001092BC077FCF80E090E0AFE7B3E4809362 +:103BA000B9079093BA07A093BB07B093BC0772CF35 +:103BB0004F925F926F927F928F929F92AF92BF923D +:103BC000CF92DF92EF92FF92CF93DF938090E50246 +:103BD0009090E602A090E702B090E802C0910A033C +:103BE000D0E0C501B4010E94DE376B017C0120E00A +:103BF00030E048E453E4C501B4010E94623593E02B +:103C0000CC0FDD1F9A95E1F7CE5FDE4F87FF31C005 +:103C10002881398150E040E025513109410951099D +:103C2000C701B6010E94FE3928EC30E040E050E0C8 +:103C30000E949C36CA01B9016B5E7F4F8F4F9F4F28 +:103C40000E9469356093FE027093FF028093000327 +:103C500090930103DF91CF91FF90EF90DF90CF9091 +:103C6000BF90AF909F908F907F906F905F904F909C +:103C700008954A805B80712C612C20E030E04CE894 +:103C800053E4C501B4010E94623587FF1FC08880DC +:103C90009980B12CA12CA7019601285C310941091A +:103CA0005109C301B201681979098A099B090E9467 +:103CB000FE3920E530E040E050E00E949C36CA0129 +:103CC000B901680D791D8A1D9B1DBACF2C813D81DC +:103CD00050E040E02419350946095709C701B601EB +:103CE00068517140810991090E94FE3920E530E058 +:103CF00040E050E00E949C36CA01B901640D751D78 +:103D0000861D971D9DCFFC0101900020E9F731979A +:103D1000AF01481B590BBC018DEF97E00C94E214E6 +:103D20008F929F92AF92BF920F931F93CF93DF9387 +:103D3000CDB7DEB7A1970FB6F894DEBF0FBECDBFEB +:103D400019A2423008F44AE08E010F5D1F4F842E05 +:103D5000912CB12CA12CA50194010E94CE36E62F06 +:103D6000B901CA01EA30F4F4E05DD801EE938D01A7 +:103D7000232B242B252B79F790E080E0109719F066 +:103D8000CD010E94831EA1960FB6F894DEBF0FBE30 +:103D9000CDBFDF91CF911F910F91BF90AF909F90BA +:103DA0008F900895E95CE1CFCF92DF92EF92FF927E +:103DB000CF93DF9397FF19C06B017C018DE20E94C6 +:103DC0003619EC0166277727CB016C197D098E091E +:103DD0009F094AE00E94901E8C0F9D1FDF91CF919A +:103DE000FF90EF90DF90CF9008954AE0DF91CF9160 +:103DF000FF90EF90DF90CF900C94901E4F925F92C7 +:103E00006F927F928F929F92AF92BF92CF92DF92EA +:103E1000EF92FF920F931F93CF936B017C01742E4F +:103E2000AC019B010E947138882399F083EB92E0EA +:103E3000CF911F910F91FF90EF90DF90CF90BF90A7 +:103E4000AF909F908F907F906F905F904F900C9469 +:103E5000831E46015701E894B7F82FEF3FEF4FE775 +:103E60005FE7C501B4010E94713881110DC02FEFC9 +:103E70003FEF4FE75FE7C501B4010E9462351816B6 +:103E80001CF487EB92E0D4CF2FEF3FEF4FE75FE4D6 +:103E9000C701B6010E94143818161CF48BEB92E08F +:103EA000C7CF2FEF3FEF4FE75FECC701B6010E948E +:103EB000623587FDF3CF20E030E0A901C701B601EC +:103EC0000E94623510E000E087FF08C08DE20E948A +:103ED00036198C01F7FAF094F7F8F094C0E060E03E +:103EE00070E080E09FE37C1641F020E030E040E2AB +:103EF00051E40E946C37CF5FF6CFA70196010E9474 +:103F000000372B013C010E94E5374B015C014AE080 +:103F10000E94901E7C01E00EF11ECC23B1F1C50180 +:103F2000B4010E9467359B01AC01C301B2010E943C +:103F3000FF364B015C018EE20E943619E80EF91E35 +:103F4000C15018F120E030E040E251E4C501B40175 +:103F50000E94C8352B013C010E94E5374B01B12C72 +:103F6000A12C4AE0C501B4010E94901EE80EF91E82 +:103F7000C501B4010E9467359B01AC01C301B201C8 +:103F80000E94FF364B015C01DBCFC701CF911F912F +:103F90000F91FF90EF90DF90CF90BF90AF909F90E8 +:103FA0008F907F906F905F904F900895CF92DF92A7 +:103FB000EF92FF920F931F93CF93DF93C82F81E06F +:103FC000DC2FD827D0930E08C0930D0880930F08DC +:103FD0000C2F2EE046E661E370E081E090E00E9465 +:103FE000E81720910E0330910F03253F81E0380739 +:103FF000B8F4A4E6B0E00E94F03624EF31E040E0EF +:1040000050E00E949C36BA01A9014E5F5F4F6F4F8E +:104010007F4F2EE061E370E081E090E00E948C131E +:104020006091B5077091B6078091B7079091B80776 +:104030000E94DE379B01AC01A4E6B0E00E94BB36D3 +:1040400034EFC32EDD24D394E12CF12CA70196018B +:104050000E949C36DA01C9010296A11DB11D02978A +:104060000C2F2DE043E062E370E00E948C1360911E +:10407000B5077091B6078091B7079091B8070E9475 +:10408000DE379B01AC01A4E6B0E00E94BB36A7017D +:1040900096010E949C36DA01C9010296A11DB11D4C +:1040A000039724E045E06CE370E00E948C1360917C +:1040B000B5077091B6078091B7079091B8070E9435 +:1040C000DE379B01AC01A4E6B0E00E94BB36A7013D +:1040D00096010E949C3689019A010E5F1F4F2F4F57 +:1040E0003F4F0150110941E3E42EF12C4D2FB70150 +:1040F000C8010E9445138FEFE81AF80A8DE3E8160D +:10410000F104A1F76091B5077091B6078091B707E8 +:104110009091B8070E94DE379B01AC01A4E6B0E0A5 +:104120000E94BB3624EF31E040E050E00E949C3614 +:10413000DA01C9010296A11DB11D0397ED2E04E01D +:1041400025E047E552E16BE370E00E94AE130C2FCF +:104150002EE047E161E370E088E690E00E94E81716 +:104160006091B9077091BA078091BB079091BC0725 +:104170000E94DE379B01AC012F5F310941095109D3 +:10418000A7E1B0E00E94BB36CC24C394DD24DA94CE +:10419000ED2CFD2CA70196010E949C36422F2EE0AB +:1041A00061E370E088E690E00E948C13C0930E08F3 +:1041B000D0930D0882E090E090930A08809309085C +:1041C00007E310E010930C0800930B086091B5070B +:1041D0007091B6078091B7079091B80740E00E94B0 +:1041E000FE1E88EF0E94361985E592E10E941B1998 +:1041F00089E690E090930A088093090810930C08D0 +:1042000000930B086091B9077091BA078091BB07C2 +:104210009091BC070E94DE379B01AC012F5F3109F2 +:1042200041095109A4E6B0E00E94BB36A7019601FE +:104230000E949C36CA01B9010E94D41E83E592E116 +:104240000E941B19D0930E08C0930D08DF91CF91E7 +:104250001F910F91FF90EF90DF90CF9008956F9294 +:104260007F928F929F92AF92BF92CF92DF92EF9206 +:10427000FF920F931F93CF93DF93B0900A0377249D +:104280007394B11001C0712C809142018150990B3F +:104290001092170310921603880F991F909315031D +:1042A0008093140381E090E09093130380931203B2 +:1042B0008B2D90E0880F991F90931103809310032A +:1042C00086E00E94181621E0892B09F020E0209357 +:1042D000EC02FF24F39472E0972EE6E08E2EFCE0D1 +:1042E000CF2ED12C0E945714C0911003D0911103EE +:1042F000D595C795EC2E8E011127C801870D911D0C +:1043000077FC9A958B199109712C97FD06C0833023 +:10431000910514F082E090E0782EF0920E08109251 +:104320000D0890920F0810920A0810920908109236 +:104330000C0810920B0884E19DE10E941B19109259 +:104340000E08F0920D0810920A0810920908A72C86 +:10435000072C000CBB08C501019654E0880F991F7B +:104360005A95E1F790930C0880930B0882E19DE148 +:104370000E941B196C2E671890E080E098012A19A2 +:104380003B095901209142018C010F5F1F4F6216BA +:10439000D0F4D0920A08C0920908980144E0220F94 +:1043A000331F4A95E1F730930C0820930B088A0DD0 +:1043B0009B1D889E9001899E300D1124C901815B4F +:1043C0009E4F0E94831EC801639403301105D1F6ED +:1043D0000E94FD190E94871786E00E941816892BFB +:1043E000B9F48091EC02811113C00E949E1AE092F0 +:1043F0000A03DF91CF911F910F91FF90EF90DF9013 +:10440000CF90BF90AF909F908F907F906F900895C6 +:10441000BC2E68CF0E943C3A1F93CF93DF93EC01F0 +:10442000162F0E948636181739F0612FCE01DF91C2 +:10443000CF911F910C948E36DF91CF911F910895EB +:10444000AF92BF92CF92DF92EF92FF920F931F93A2 +:10445000CF93DF936091470182E090E00E940C22AD +:104460006091460183E090E00E940C22609145013A +:1044700084E090E00E940C226091440185E090E08D +:104480000E940C226091430186E090E00E940C2281 +:1044900060914B0187E090E00E940C2260914A01FC +:1044A00088E090E00E940C226091490189E090E050 +:1044B0000E940C2260917F018AE090E00E940C2211 +:1044C000609148018BE090E00E940C2260914D01C8 +:1044D0008CE090E00E940C2260910A038DE090E055 +:1044E0000E940C22609142018EE090E00E940C221A +:1044F00060914E018FE090E00E940C226091E902F1 +:1045000080E190E00E940C226091070381E190E03D +:104510000E940C226091EB0282E190E00E940C224A +:104520006091EA0283E190E00E940C2284E1E82E8F +:10453000F12C10E006E0809142011817B8F5109FA9 +:1045400060011124D0E0C0E0FE01EC0DFD1DE15B37 +:10455000FE4F6081C7018C0F9D1F0E940C22219687 +:10456000C630D10589F7670186E0C80ED11C88E006 +:10457000189FE0011124CE5FDE4F8EE0E80EF11CA3 +:1045800069812296C6010E940C22560182E0A80E83 +:10459000B11CFE0132976081C60101960E940C2277 +:1045A0006501AE14BF0461F71F5FC5CFDF91CF91E6 +:1045B0001F910F91FF90EF90DF90CF90BF90AF9041 +:1045C00008958F929F92AF92BF92CF92DF92EF9217 +:1045D000FF92CF936FEF70E089E00E94AB168BEAF9 +:1045E00094E00197F1F78EE00E94B9197C018AE00E +:1045F0000E9418169091C202981729F091E09093AA +:1046000002038093C202809101019FEF980F909363 +:104610000101811106C00E94E7199093090380935C +:1046200008036091B9077091BA078091BB07909118 +:10463000BC070E94DE3789E00E94AB168090E5023D +:104640009090E602A090E702B090E802B70190E0F7 +:1046500080E00E946735A50194010E94FF362DEC91 +:104660003CEC4CE45DE30E94C835A50194010E9436 +:1046700000376093E5027093E6028093E70290931F +:10468000E8020E94D81D60910E0370910F0390E024 +:1046900080E00E9467356B017C012091B507309165 +:1046A000B6074091B7075091B8070E946235811153 +:1046B000B6C02091FE023091FF024091000350915C +:1046C0000103C701B6010E94FF366B017C0120E0A7 +:1046D00030E0A9010E94143818160CF096C020E0B2 +:1046E00030E040EA50E4C701B6010E9414381816C1 +:1046F0000CF495C06091FC027091FD0290E080E0A6 +:104700000E9467352091FE023091FF024091000324 +:10471000509101030E94FF366B017C0120E030E0E4 +:10472000A9010E94143818160CF088C0C701B60100 +:104730000E94E5376530710508F084C080918001E2 +:10474000811105C080914C0181110E949E1A81E067 +:104750008093800110924C0180910E0390910F0381 +:10476000853F21E0920710F0109200012091000196 +:10477000211141C0843F9140F0F56FEF70E089E076 +:104780000E94AB160E949E1AC1E0C09300010E94D5 +:104790002F210E942022C09302038EE00E94B919AB +:1047A000BC0190E080E00E9467356093E502709361 +:1047B000E6028093E7029093E8021092F60280915D +:1047C000FC029091FD022CE231E03093170320931C +:1047D000160320E233E030931503209314032AE0FC +:1047E00030E03093130320931203880F991F9093A6 +:1047F000110380931003CF91FF90EF90DF90CF9043 +:10480000BF90AF909F908F90089520E030E040EAF5 +:1048100050ECC701B6010E94623587FF6BCF6091F3 +:10482000FE027091FF0280910003909101030E94AB +:10483000E53770930F0360930E035CCFC701B60199 +:10484000905876CF1092800187CF0C9486362F92A5 +:104850003F924F925F926F927F928F929F92AF9210 +:10486000BF92CF92DF92EF92FF920F931F93CF935D +:10487000DF938C0186E080930F0881E080930E081F +:1048800010920D086091D5027091D602072E000C8F +:10489000880B990B0E9469352B013C014FECC42E0B +:1048A00042E0D42E7601C2E0D0E05AE0A52EB12C31 +:1048B000BE010D2E000C880B990B0E9469359B01DF +:1048C000AC0160E070E080E291E40E9419389B0145 +:1048D000AC01C301B2010E946C370E94DE37CB01EC +:1048E000B5010E940E3AF701819391937F012197C0 +:1048F000F8F61093D6020093D502C3ECD2E094E010 +:10490000E92EF12C22E0822E912C3AE0232E312C3C +:10491000B401092C000C880B990B0E9469359B018E +:10492000AC0160E070E080E291E40E9419382B0154 +:104930003C016091D5027091D602072E000C880BC5 +:10494000990B0E946935A30192010E946C370E9465 +:10495000DE37CB01B1010E940E3AF6012081318190 +:10496000821B930BF2E3F89FB001F99F700D1124A5 +:10497000072E000C880B990B0E946935288139811C +:104980004A815B810E9400372B013C0120E030E02E +:10499000A9010E94623581117CC0488259826A82D5 +:1049A0007B8201E022E346E270E060E0C701049709 +:1049B0000E948C138EECA82EBB24BA940FEF1FEF2D +:1049C000288139814A815B8160E070E080E890E471 +:1049D0000E94FF362B013C01B5010B2C000C880B0B +:1049E000990B0E9469359B01AC01C301B2010E9481 +:1049F00000370E94DE37F0920A08E09209087093AF +:104A00000C0860930B08F60160817181600F711FC3 +:104A1000072E000C880B990B0E94D41E0F5F1F4FAE +:104A2000F2E3AF0EB11C0230110551F6249621E0DD +:104A3000821A910882E0C80ED11CECE2EE0EF11C45 +:104A4000F8E8EF16F10409F063CF00E022E040E857 +:104A500070E060E090E080E00E948C1320E140E88C +:104A600060E370E090E080E00E948C13DF91CF91D2 +:104A70001F910F91FF90EF90DF90CF90BF90AF907C +:104A80009F908F907F906F905F904F903F902F906E +:104A90000895C301B20190582DEC3CEC4CE45FE367 +:104AA0000E94C835A30192010E9400376883798370 +:104AB0008A839B8376CF4F925F926F927F928F9281 +:104AC0009F92AF92BF92CF92DF92EF92FF920F939D +:104AD0001F93CF93DF93CDB7DEB72B970FB6F89424 +:104AE000DEBF0FBECDBF90914E01E82FF0E09F01D9 +:104AF000220F331F911126C0F901E55DFD4F408162 +:104B00005181EE24E39400E124E260E370E080E36D +:104B100090E00E94AE132B960FB6F894DEBF0FBE46 +:104B2000CDBFDF91CF911F910F91FF90EF90DF905C +:104B3000CF90BF90AF909F908F907F906F905F903D +:104B40004F900895923009F079C0E356F34E4490A7 +:104B5000F901E352FE4FA080B180F12CE12C04E377 +:104B600010E393E0592E27E0622EE414A0F6F5013D +:104B7000EE0DFF1D449180E1840F833008F45CC08A +:104B800081EF7816D1F082EF7816C1F1403F90F4B2 +:104B9000193710F0085F10E088E0489FA001112449 +:104BA000435E5A4E602F70E028E0812F90E00E9413 +:104BB0006A14185F80EF782E1DC04E39D8F41D3767 +:104BC00010F0085F10E0C02ED12C812E912C459D55 +:104BD000A00111244D5B5C4E23E0B601C4010E948C +:104BE0006A1421E042E453E1B601C40103960E9435 +:104BF0006A141C5F8FEFE81AF80AB7CF4132D0F77A +:104C0000193710F0085F10E0C02ED12C812E912CA6 +:104C1000469DA0011124455A5D4E27E0B601C4010E +:104C20000E946A1421E042E453E1B601C4010796F0 +:104C30000E946A14185FDECF742EDCCF80E390E010 +:104C400090930A088093090884E390E090930C08FD +:104C500080930B0881E080930F08F901EC53F34E29 +:104C600065917491CE0101960E945B35CE0101964B +:104C70000E94831E50CFCF93C82F86E00E94181643 +:104C800021E0892B09F020E02093EC020E945714C8 +:104C90008091100390911103959587950E94272488 +:104CA0008C2F0E945B250E9487170E94FD1986E0C9 +:104CB0000E941816892B51F78091EC028111E6CFE2 +:104CC0000E949E1A8091D5029091D602CF910895AC +:104CD000109217031092160328E037E03093150363 +:104CE0002093140324E630E030931303209312033F +:104CF000880F991F909311038093100387E00E94FF +:104D00003B269C01220F331F309317032093160379 +:104D1000865A9F4F880F991F909315038093140311 +:104D20008AE090E090931303809312033093110371 +:104D30002093100387E00E943B269C01220F331F23 +:104D400030931703209316030996880F991F9093A9 +:104D500015038093140381E090E0909313038093F4 +:104D60001203309311032093100387E00C943B2629 +:104D70002F923F924F925F926F927F928F929F926B +:104D8000AF92BF92CF92DF92EF92FF920F931F9359 +:104D9000CF93DF93182FE091ED02F0E0EB57FE4F39 +:104DA00080818150990B1092170310921603880F7F +:104DB000991F909315038093140381E090E09093E2 +:104DC000130380931203812F90E0880F991F909313 +:104DD00011038093100386E00E94181621E0892BAE +:104DE00009F020E02093EC0210920E0881E08093FD +:104DF0000D0838E3632EE0901003F0901103F59452 +:104E0000E794AE2C6701DD249601211B3109629ED7 +:104E1000C001639E900D1124C80FD91F209709F17E +:104E2000662777276C1B7D0B072E000C880B990BD0 +:104E30000E9469352AE939E949E15FE30E94C835F2 +:104E40001B012C01BE01DD0F880B990B0E946935F7 +:104E50009B01AC01C201B1010E9400370E94DE3704 +:104E6000EB010E9457148601025011094E0185E0A2 +:104E7000B82E93E0792E7A0CC090ED02D12C17FD5C +:104E800020C0F601EB57FE4F808180171106C9F054 +:104E9000C4F0E5E8F1E070E060E0CF0185589140B2 +:104EA0008C159D0534F48191680F711DF6CF1E2D70 +:104EB000A2CF872D8B19680FC401885491090E94D5 +:104EC0000F1ABA940F5F1F4F88E3880E911CB11020 +:104ED000D3CFE5E8F1E090E080E09F012558314034 +:104EE0002C153D0524F42191820F911DF6CF8E0DD6 +:104EF0000E945B250E9487170E94FD1986E00E9490 +:104F00001816892BA1F68091EC028111D0CF0E9456 +:104F10009E1A8A2DDF91CF911F910F91FF90EF90F4 +:104F2000DF90CF90BF90AF909F908F907F906F90C9 +:104F30005F904F903F902F9008951F920F920FB661 +:104F40000F9211242F933F934F935F936F937F930F +:104F50008F939F93AF93BF93EF93FF9388E197E075 +:104F60000E946015FF91EF91BF91AF919F918F913A +:104F70007F916F915F914F913F912F910F900FBE55 +:104F80000F901F9018951F920F920FB60F92112439 +:104F90002F938F939F93EF93FF93E0912807F091C6 +:104FA00029078081E0912E07F0912F0782FD1BC019 +:104FB0009081809131078F5F8F7320913207821724 +:104FC00041F0E0913107F0E0E85EF84F958F809373 +:104FD0003107FF91EF919F918F912F910F900FBE0D +:104FE0000F901F9018958081F4CF1F920F920FB6EB +:104FF0000F9211242F933F938F939F93AF93BF935F +:105000008091D8029091D902A091DA02B091DB028E +:105010003091D70223E0230F2D3758F50196A11DBB +:10502000B11D2093D7028093D8029093D902A09308 +:10503000DA02B093DB028091DC029091DD02A09154 +:10504000DE02B091DF020196A11DB11D8093DC024A +:105050009093DD02A093DE02B093DF02BF91AF9187 +:105060009F918F913F912F910F900FBE0F901F90A6 +:10507000189526E8230F0296A11DB11DD2CF1F92CD +:105080000F920FB60F9211242F933F934F935F937C +:105090006F937F938F939F93EF93FF9383B181706F +:1050A00029B19091E202981709F49DC030E0220FD7 +:1050B000232F221F330B922F8093E2024091E102B3 +:1050C000241709F490C02093E1022091120330913B +:1050D0001303981719F03195219531094091100368 +:1050E000509111036091160370911703240F351F1F +:1050F000261737070CF48BC020911203309113034D +:10510000981719F03195219531094091100350916C +:1051100011036091140370911503240F351F62175A +:1051200073070CF46FC0409112035091130398174A +:1051300019F05195419551092091100330911103B7 +:10514000240F351F309311032093100341E098136F +:1051500040E02091E002421709F440C02091120380 +:1051600030911303981719F0319521953109609109 +:10517000100370911103E0911603F0911703260FAD +:10518000371F2E173F070CF44CC0209112033091AB +:105190001303981719F03195219531096091100387 +:1051A00070911103E0911403F0911503260F371F3E +:1051B000E217F3078CF12091120330911303981733 +:1051C00019F03195219531098091100390911103C7 +:1051D000820F931F90931103809310034093E0027A +:1051E00081E080930203FF91EF919F918F917F91D6 +:1051F0006F915F914F913F912F910F900FBE0F9044 +:105200001F90189520911403309115039BCF209186 +:1052100016033091170396CF8091140390911503D4 +:10522000D9CF8091160390911703D4CF18950F937F +:105230001F93CF93DF93E8E1F7E01382128288EEA9 +:1052400093E0A0E0B0E084839583A683B78389E9E7 +:1052500092E09183808385EC90E09587848784EC4D +:1052600090E09787868780EC90E0918B808B81EC33 +:1052700090E0938B828B82EC90E0958B848B86EC14 +:1052800090E0978B868B118E128E138E148EEDEF1D +:10529000F7E0138212821682178280E180871582DE +:1052A000148212868BEA92E091838083158614869D +:1052B0001786168681E0808B118A828B138AC1EC57 +:1052C000D7E029EB37E03F8F2E8F2DEB37E03D8F76 +:1052D0002C8F25EB37E039A328A31AAE1AAA1BAAF4 +:1052E0001CAA1DAA40E050E06FE773E44EAB5FAB31 +:1052F00068AF79AF44E650E060E070E04EA75FA78A +:1053000068AB79AB21E030E0398F288F3B8F2A8F53 +:105310008BAF80E090E0A0E3B1E488839983AA8317 +:10532000BB8380E090E0A0E0BFE38C839D83AE83ED +:10533000BF8380E090E0A0E8BFE388879987AA87D1 +:10534000BB8780E090E0A0E3B1EC8C879D87AE87BF +:10535000BF878DEC9CECACE4BDEB888B998BAA8B62 +:10536000BB8B80E090E0A0E2B1EC8C8B9D8BAE8B90 +:10537000BF8B0E945F170EA51FA528A939A9601B26 +:10538000710B820B930B6AA37BA38CA39DA3DF916C +:10539000CF911F910F910895CF93DF93CDB7DEB7D3 +:1053A0002C970FB6F894DEBF0FBECDBF789484B5AE +:1053B000826084BD84B5816084BD85B5826085BD11 +:1053C00085B5816085BD80916E00816080936E009F +:1053D0001092810080918100826080938100809191 +:1053E0008100816080938100809180008160809342 +:1053F00080008091B10084608093B1008091B00002 +:1054000081608093B00080917A00846080937A00FC +:1054100080917A00826080937A0080917A00816026 +:1054200080937A0080917A00806880937A0010924D +:10543000C1001092B90088E48093B8000E947D17E3 +:1054400080E00E94731709E712E2F80184910E943C +:1054500073170F5F1F4FF2E208391F07B1F70E9461 +:105460006B1711E01093B8000E94871781E28093B8 +:10547000050860E08EE00E946F1660E08FE00E94F9 +:105480006F1661E085E00E946F1661E089E00E947E +:105490006F1662E087E00E946F1662E088E00E946B +:1054A0006F1662E086E00E946F1662E08AE00E945A +:1054B0006F166FEF70E089E00E94AB1660E085E048 +:1054C0000E94411680917A00876080937A008091D3 +:1054D0007A00886080937A00789410936B00109320 +:1054E00068001BBB90E080E00E942524182F81E01B +:1054F00090E00E942524912F8F31984009F0C9C077 +:1055000082E090E00E942524182F83E090E00E9422 +:105510002524912F909347018093460184E090E0E9 +:105520000E942524182F85E090E00E942524912FC9 +:10553000909345018093440186E090E00E942524E9 +:105540008093430187E090E00E94252480934B01E3 +:1055500088E090E00E94252480934A0189E090E051 +:105560000E942524809349018AE090E00E9425242E +:1055700080937F018BE090E00E94252491E08111CF +:1055800001C090E0909348018CE090E00E942524B7 +:1055900091E0811101C090E090934D018DE090E089 +:1055A0000E94252480930A038EE090E00E94252427 +:1055B000282E809342018FE090E00E942524809362 +:1055C0004E0180E190E00E94252491E0811101C00C +:1055D00090E09093E90281E190E00E94252480937D +:1055E000070382E190E00E942524182F83E190E0D8 +:1055F0000E942524912F9093EB028093EA0252E0BF +:10560000852E51E0952E6FE4A62E61E0B62E74E152 +:10561000E72EF12C312C231409F447C010E000E0F0 +:10562000C701800F911F0E942524F501E00FF11F93 +:1056300080830F5F1F4F0630110591F7670136E039 +:10564000C30ED11C4EE0E40EF11C3401C6010E94D1 +:105650002524082F10E0102F0027D3010D931C9351 +:105660002601B2E04B0E511CC60101960E94252472 +:10567000082BF301019311933F0162014E145F0463 +:1056800029F73394F8E08F0E911C26E0A20EB11C8E +:10569000C2CF68E090E080E00E940C226FE181E0E0 +:1056A00090E00E940C220E9420221091E90280ECDE +:1056B000111101C088EC0E94A41780EA111101C0E9 +:1056C00081EA0E94A4171092030380E280930403EE +:1056D00080E48093050380E6809306038091EA02CC +:1056E0009091EB02892B19F10E94571467E088E230 +:1056F00090E00E940F1A87E00E945B250E948717A6 +:1057000068EE73E080E090E00E942D170E949E1AE0 +:105710000E949E1A0E949E1A90E080E00E946826D5 +:105720002091EA023091EB0282179307E9F60E947A +:105730003F199093E4028093E3020E94E71990934B +:1057400009038093080300914601109147011093CB +:10575000FD020093FC028EE00E94B919BC0190E0AA +:1057600080E00E9467356093E5027093E6028093C3 +:10577000E7029093E8020E947B190E94D81D20E066 +:1057800030E040EA51E46091FE027091FF028091A6 +:105790000003909101030E9400376B017C01B80166 +:1057A00090E080E00E9467359B01AC01C701B60123 +:1057B0000E94623587FF05C070E060E089E00E94CA +:1057C000AB161092F3071092F4071092F50710929F +:1057D000F607412C512C3FE7632E33E4732E4092A1 +:1057E000F7075092F8076092F9077092FA07A090B5 +:1057F000DF07B090E0078091FB07D501CD90DD90E9 +:10580000ED90FC90882311F40C948A34A30192014A +:10581000C701B6010E941438181634F5F50140820C +:105820005182628273828090E7079090E807A0908F +:10583000E907B090EA07C090F707D090F807E0902A +:10584000F907F090FA07A7019601C501B4010E947B +:1058500014381816CCF4C092E707D092E807E0920B +:10586000E907F092EA0720C020E030E0A901C70173 +:10587000B6010E94623587FFD6CFD5011D921D92D9 +:105880001D921C921397CFCFC090F307D090F407CE +:10589000E090F507F090F607A7019601C501B40165 +:1058A0000E94623587FDD7CF81E08093FB0783B1EB +:1058B00081708093E20289B190E0880F892F881F60 +:1058C000990B8093E1022091E2029091E10281E044 +:1058D000291380E08093E0028CE291E0909317031B +:1058E0008093160380E293E0909315038093140352 +:1058F0008AE090E09093130380931203000F111F2E +:1059000010931103009310030E945F176093F80235 +:105910007093F9028093FA029093FB020E949E1A00 +:105920000E949E1A2090100330901103F101F5950A +:10593000E795FA87E987F093FD02E093FC0286E0A1 +:105940000E941816482E8111A0C08091F60288236B +:1059500009F49BC00E949E1A0E945F176B017C0194 +:10596000C092F202D092F302E092F402F092F502B9 +:1059700086E00E941816892B59F40E945F176C1953 +:105980007D098E099F09643F71408105910580F36F +:105990000E945F176C197D098E099F09643F714051 +:1059A0008105910508F46DC46FEF70E089E00E94F5 +:1059B000AB160E949E1A512CAAE06A2E712C1092EE +:1059C000ED02852D0E94B826582E39E0381708F4CC +:1059D00039C0E82FF0E0E151F34D0C94223A0B2D41 +:1059E000B82F32309E30AC30DD30EB300C31173117 +:1059F000213120E030E0A901C701B6010E946235E3 +:105A000087FF52CF1092E7071092E8071092E9073C +:105A10001092EA0749CFF6E0FF2E81E08093ED0275 +:105A2000852D0E94B826582E42E0841709F439C209 +:105A3000481708F4E9C0882309F413C151E0851719 +:105A400009F412C10E94202281E080930203E985BB +:105A5000FA85F093FD02E093FC028CE291E09093D2 +:105A600017038093160380E293E0909315038093CD +:105A700014038AE090E09093130380931203C10112 +:105A80008E7F90931103809310034092F6028091D1 +:105A90000B03882309F1109149011123E9F00E94B9 +:105AA0005F17C090EE02D090EF02E090F002F0900D +:105AB000F1026C197D098E099F0928EE33E040E060 +:105AC00050E00E94CE36211738F010920B030E944E +:105AD0009E1A81E080934C01809102038823F1F1AA +:105AE00080910C03882351F120E030E040EA51E43A +:105AF0006091FE027091FF0280910003909101037A +:105B00000E9400376B017C016091FC027091FD02E4 +:105B100090E080E00E9467359B01AC01C701B601AF +:105B20000E94623587FF05C070E060E089E00E9456 +:105B3000AB160E949E1A81E080934C0110920203E2 +:105B400010920C0310920D030E945F176093F802ED +:105B50007093F9028093FA029093FB020E945F1700 +:105B60000091F8021091F9022091FA023091FB02A3 +:105B7000601B710B820B930B20E63AEE40E050E085 +:105B80000E94CE36122F2093F70280910C038111D0 +:105B90000BC080914B01882339F0281728F081E051 +:105BA00080930C030E949E1A80910D0381110BC0FB +:105BB00080914A01882339F0181728F081E08093FA +:105BC0000D030E949E1A0E94E1220E94AB1B0E94BC +:105BD0005F1780910608F62FF81B8F2F909107080A +:105BE000992309F464C3F09308081092070880E031 +:105BF00090E0892B09F496CE0E944C15882309F475 +:105C000091CE0E9400008ECE63E0861709F44CC14D +:105C100084E0581217CF80914201883008F0FDCE01 +:105C200091E0980F9093420180930A030E94BC1A5E +:105C3000E0910A03B8E0EB9FF0011124EE5FFE4F04 +:105C400028ED30E03183208344E351E053834283E5 +:105C500086E891E095838483AEE1B0E0B783A683C4 +:105C6000DCCE0E942F21D9CE8E010F5F1F4F612CF9 +:105C7000712C4301639478EEC72E73E0D72EAA24CB +:105C8000A394B12CEE24E394E0910A0394E0E99FFD +:105C9000F0011124C3010197E80FF91FEE0FFF1F58 +:105CA000EE5FFE4F808191819093FD028093FC0214 +:105CB000A8ECB0E0B0931703A0931603D09215039D +:105CC000C0921403B0921303A0921203880F991F7D +:105CD0009093110380931003E0924C0186E00E94A0 +:105CE000181621E0892B09F020E02093EC020E9495 +:105CF0005714B2E0B0930F080E94E1220E94AB1B40 +:105D000010920A081092090810920C0810920B08C1 +:105D10008EEB92E20E941B19C401B3010E94D41EB3 +:105D20008FEB92E00E94831E8091800110920A08FE +:105D300010920908882309F48CC0E0E1F0E0F093A8 +:105D40000C08E0930B0881EB92E20E941B19109261 +:105D50000A081092090820E230E030930C082093E2 +:105D60000B088AEA92E20E941B196091100370915D +:105D7000110375956795072E000C880B990B0E94EF +:105D8000D41E0E94FD190E94871786E00E941816F3 +:105D9000892B09F0ACCF8091EC028111A8CF8091C2 +:105DA00010039091110395958795D8018D939D933C +:105DB0008D010E949E1A6AE070E080E090E00E94EF +:105DC0002D17BFEF6B1A7B0A8B0A9B0AE4E06E1655 +:105DD00071048104910409F057CF6FEF70E089E0FE +:105DE0000E94AB168BEA94E00197F1F70E947B19B1 +:105DF0000E94E5373B0178876F83A980BA800B81C9 +:105E00001C81C5014E968017910708F006CECD8003 +:105E1000DE80C8014E968C159D0508F0FECD87E00A +:105E20008093ED0280E00E94B826882309F4F5CD26 +:105E3000E0910A0328E0E29FF0011124EE5FFE4F9B +:105E4000B182A08213830283D582C4827782668264 +:105E5000E4CD40E150E050930C0840930B0884EAF5 +:105E600092E20E941B196091E5027091E602809116 +:105E7000E7029091E8020E94E53790E080E04AE076 +:105E80000E94901E10920A081092090880E290E089 +:105E900090930C0880930B0888E992E20E941B19EA +:105EA00070CF0E94BC1AB9CD87E08093ED0280913B +:105EB0004201813009F4B1CD80E00E94B8268823E8 +:105EC00009F4ABCD80910A0390914201492F4150D2 +:105ED000550B9A018417150639F4815080930A03F3 +:105EE00091509093420199CDE82FF0E0E217F3072B +:105EF000BCF78F9D8001112450E040E06F016FEFEF +:105F0000C61AD60AB801640F751F615B7E4FDB01AC +:105F10001696EC901697EC924F5F5F4F4630510506 +:105F200089F7D60113E0AA0FBB1F1A95E1F7AE5F00 +:105F3000BE4F4D915C91119703E0EE0FFF1F0A9544 +:105F4000E1F7EE5FFE4F5183408312964D915C91D5 +:105F500013975383428314964D915C911597558303 +:105F6000448316964D915C91578346838F5FBCCFD7 +:105F700082E08093ED0210E0E8E2CE2ED12CFCE22C +:105F8000AF2EBB24B394A0E28A2EA3E09A2EB4E1F4 +:105F9000EB2EF12C812F0E94B826182F813029F189 +:105FA00030F0823009F441C00E94202208CD809157 +:105FB000460190914701B0921703A0921603909268 +:105FC0001503809214037092130360921203880FDA +:105FD000991F909311038093100381E10E943B2647 +:105FE0009093470180934601D5CF809144019091D1 +:105FF0004501D0921703C0921603E0E9F1E0F09357 +:106000001503E09314037092130360921203880F38 +:10601000991F909311038093100382E10E943B2605 +:106020009093450180934401B5CF8091430190E066 +:10603000F0921703E092160328EC30E0309315033A +:10604000209314037092130360921203880F991F18 +:10605000909311038093100383E10E943B26809369 +:10606000430198CF83E08093ED02F12C01E010E032 +:106070008F2D0E94B826F82E31E0831709F43FC017 +:10608000831700F142E084138FCF8091490190E0A3 +:10609000109217031092160348E651E0509315032F +:1060A000409314037092130360921203880F991F98 +:1060B000909311038093100387E10E943B26809305 +:1060C0004901D6CF80914B0190E0109217031092B6 +:1060D0001603ACE3B0E0B0931503A0931403109340 +:1060E000130300931203880F991F90931103809359 +:1060F000100385E10E943B2680934B01B9CF80912C +:106100004A0190E01092170310921603E8E7F0E0BE +:10611000F0931503E093140325E030E0309313036C +:1061200020931203880F991F9093110380931003FB +:1061300086E10E943B2680934A019ACF84E08093B7 +:10614000ED02809148010E94B82691E0811101C0C2 +:1061500090E09093480133CC10E0A9E0EA2EB5E03E +:10616000DB2EE092ED02812F0E94B826182F8823A3 +:1061700021F08130E1F000E009C0D092ED02809181 +:106180007F010E94B82680937F0101E0F090E90230 +:1061900080ECF11001C088EC0E94A41780EAF11095 +:1061A00001C081EA0E94A4170111DBCFFDCE8091CE +:1061B000E90281278093E902E8CF86E08093ED022F +:1061C00080914D010E94B82691E0811101C090E0BC +:1061D00090934D01F4CB8091070390E01092170348 +:1061E00010921603A4EFB1E0B0931503A09314032B +:1061F00021E030E03093130320931203880F991F9E +:10620000909311038093100386E00E943B268093B5 +:1062100007030E949E1AD3CB8091EA029091EB0271 +:106220000E9468269093EB028093EA02F2CF88E006 +:106230008093ED0280914E010E94B82680934E011A +:10624000BECB0E945714EE24E39400E320E345EC18 +:1062500052E270E060E088E290E00E94AE130E949B +:10626000871764E670E080E090E00E942D1786E0DA +:106270000E941816892BD9F78091EC028111F7CF73 +:10628000C8CF80910B0391E0892780930B0388236B +:1062900051F00E945F176093EE027093EF028093BB +:1062A000F0029093F10281E080930203EECB909193 +:1062B0000508F91748F48F5F891708F098CC81E03A +:1062C00083BF889513BE93CC81E0809307086093C9 +:1062D00006088091010890910208019690930208A7 +:1062E00080930108A0900E03B0900F0325EFA21633 +:1062F00021E0B20608F023C180910D03882309F440 +:10630000FCC06FEF70E089E00E94AB160E9457144A +:1063100003E013E072E0872E912CA12CB12CE3E076 +:106320004E2E512C612C712C0E940335A501940135 +:106330000E949C36AB01BC014150510961097109B1 +:10634000D8018C91682F640F613808F04BC06C93B2 +:10635000312C0E940335C32CD12CF12CE12CA3014C +:1063600092010E949C366D5F7F4F8F4F9F4FA70118 +:1063700096012617370748075907C4F5D801EC904E +:10638000F12C0E94033524E130E040E050E00E940F +:106390009C366A507109810991096E0D7F1D603428 +:1063A000710530F421E040E890E080E00E94B117F0 +:1063B000F801E080F12C0E94033524E130E040E058 +:1063C00050E00E949C36DC01CB010A97A109B1097B +:1063D0008E0D9F1D21E040E470E060E00E94631399 +:1063E0003394B7CF6058F8016083B2CF0F5F1F4F6F +:1063F000F3E007301F0709F097CF0E945F170E9454 +:10640000673520E030E04AE755E40E946C370E948F +:1064100069386B017C0120E030E040E853E40E94E1 +:10642000C83520E030E040E853E40E9400372B01FB +:106430003C0110E000E0B801012E000C880B990B24 +:106440000E946935A30192010E94623587FF25C031 +:106450000E9403354B015C010E94033569877A87EE +:106460008B879C87C501B40120E430E040E050E018 +:106470000E949C364B0169857A858B859C8520E836 +:1064800030E040E050E00E949C36CB0141E0B40196 +:106490000E9445130F5F1F4FCECF80914D0188237F +:1064A00049F10E94033520E130E040E050E00E94D5 +:1064B0009C3668507109810991090E9469354B0128 +:1064C0005C0120E030E040E852E4C701B6010E94E0 +:1064D000C83520E030E040E852E40E9400379B01DC +:1064E000AC01C501B4010E9400370E94DE3785E08F +:1064F0000E94AB160E9487177ACB80910C0312E0A2 +:1065000081111EC080910B0313E0811119C080918D +:10651000800114E0811114C020E030E044E353E432 +:106520006091B9077091BA078091BB079091BC0741 +:106530000E94623515E087FD03C016E001C010E03F +:1065400080917F01882309F481C10E94571401E0E2 +:1065500020E440E870E060E090E080E00E948C136E +:1065600081E080930F0880930E0810920D08E12CB3 +:1065700000E120E143E554E270E060E090E080E07B +:106580000E94AE1383E190E090930A08809309087B +:1065900084E090E090930C0880930B0880910A03AC +:1065A00026E0829FC0011124815B9E4F0E94831EC2 +:1065B00085E390E090930A088093090881E090E0D9 +:1065C00090930C0880930B0882E080930F08C12EF3 +:1065D000D12C80914E01CC0CDD1C8111EAC0F6015A +:1065E000E957FD4F408151810EE02CE161E070E000 +:1065F00080E590E00E94AE13F601E758FD4F408120 +:106600005181E12C0EE02EE061E070E081E790E046 +:106610000E94AE1381E080930F080E947B1920E056 +:1066200030E040EA52E40E94143818160CF4E0C03E +:10663000E12C0EE02EE041E154E262E170E082E004 +:1066400090E00E94AE13609108037091090390E0FE +:1066500080E00E94673520E030E048EC52E40E9480 +:106660006C376B017C016091070370E090E080E083 +:106670000E9469359B01AC01C701B6010E946235D9 +:1066800087FDCAC0E12C0EE02EE045EF53E262E246 +:1066900070E082E090E00E94AE1303E110E01093FE +:1066A0000A080093090840E150E050930C08409319 +:1066B0000B080E947B1941E00E94FE1E88EF0E9499 +:1066C000361983EF93E20E941B1910930A08009376 +:1066D000090888E190E090930C0880930B080E94D1 +:1066E0003F19BC0190E080E00E94673520E030E077 +:1066F0004AE754E40E946C3742E00E94FE1E81EF9C +:1067000093E20E941B1910930A080093090880E283 +:1067100090E090930C0880930B08609108037091AF +:10672000090390E080E00E94673520E030E04AE70E +:1067300054E40E946C3741E00E94FE1E8FEE93E20B +:106740000E941B1910930A080093090888E290E040 +:1067500090930C0880930B0889EE93E20E941B191A +:1067600089E390E090930A088093090882E190E021 +:1067700090930C0880930B0884E080930F0860913D +:106780000E0370910F03653F91E0790708F458C03C +:1067900085EE93E20E941B1900E020E248E460E1EC +:1067A00070E087E390E00E94E81780E00E94D61F27 +:1067B000A1CE83E494E21330C1F058F48FE494E264 +:1067C000113099F089E494E2123079F08DE294E28C +:1067D0000CC088E394E2153041F08DE394E215306B +:1067E00020F083E394E2163089F70E941B1904CF4E +:1067F0000E945F1752E0660F771F881F991F5A95F6 +:10680000D1F728EE33E040E050E00E94CE3620FF82 +:106810000FCF0E949E1A17CF0E945F1742E0660FAB +:10682000771F881F991F4A95D1F728EE33E040E083 +:1068300050E00E94CE3620FF25CF0E949E1A2DCF19 +:1068400090E080E04AE00E94901EA6CF0E9457147C +:106850000E947B1920E030E040EA52E40E941438A4 +:10686000181694F40E945F1732E0660F771F881F96 +:10687000991F3A95D1F728EE33E040E050E00E94AE +:10688000CE3620FD0E949E1A609108037091090384 +:1068900090E080E00E94673520E030E048EC52E470 +:1068A0000E946C376B017C016091070370E090E0FF +:1068B00080E00E9469359B01AC01C701B6010E94CE +:1068C000623587FF12C00E945F1722E0660F771FB4 +:1068D000881F991F2A95D1F728EE33E040E050E059 +:1068E0000E94CE3620FD0E949E1A87EE93E0A5EF0F +:1068F000AA16A1E0BA0608F4C5010E94272400E008 +:1069000023E040E860E370E090E080E00E948C13B8 +:1069100081E04CCFC092E707D092E807E092E90708 +:10692000F092EA07E091DD07F091DE078081918126 +:10693000A281B3818093EB079093EC07A093ED07BE +:10694000B093EE0720E030E04FE753E4C701B60113 +:106950000E94143818160CF04CC84092E707509269 +:10696000E8076092E9077092EA070C94542C8F9222 +:106970009F92AF92BF92CF92DF92EF92FF92CF930E +:10698000DF93EC01688179818A819B8161157105B2 +:106990008105910521F464E279ED8BE597E02DE125 +:1069A00033EF41E050E00E949C3649015A019B01BF +:1069B000AC01A7EAB1E40E94BB366B017C01ACEEEE +:1069C000B4EFA50194010E94C936C60ED71EE81E79 +:1069D000F91EF7FE06C081E0C81AD108E10880E878 +:1069E000F80AC882D982EA82FB82C701B6019F7782 +:1069F000DF91CF91FF90EF90DF90CF90BF90AF905D +:106A00009F908F9008958F929F92AF92BF92CF9256 +:106A1000DF92EF92FF9260918101709182018091EB +:106A2000830190918401611571058105910521F41F +:106A300064E279ED8BE597E02DE133EF41E050E042 +:106A40000E949C3649015A019B01AC01A7EAB1E4BE +:106A50000E94BB366B017C01ACEEB4EFA501940142 +:106A60000E94C936C60ED71EE81EF91EF7FE06C0E4 +:106A700081E0C81AD108E10880E8F80AC0928101D3 +:106A8000D0928201E0928301F0928401C701B601A5 +:106A90009F77FF90EF90DF90CF90BF90AF909F9047 +:106AA0008F90089560938101709382018093830198 +:106AB000909384010895FB01DC0105900D92002064 +:106AC000E1F708950E94A43508F481E00895E89460 +:106AD00009C097FB3EF490958095709561957F4F26 +:106AE0008F4F9F4F9923A9F0F92F96E9BB279395D4 +:106AF000F695879577956795B795F111F8CFFAF4E4 +:106B0000BB0F11F460FF1BC06F5F7F4F8F4F9F4F14 +:106B100016C0882311F096E911C0772321F09EE872 +:106B2000872F762F05C0662371F096E8862F70E0D8 +:106B300060E02AF09A95660F771F881FDAF7880FB2 +:106B40009695879597F90895990F0008550FAA0B08 +:106B5000E0E8FEEF16161706E807F907C0F0121670 +:106B60001306E407F50798F0621B730B840B950B73 +:106B700039F40A2661F0232B242B252B21F40895C8 +:106B80000A2609F4A140A6958FEF811D811D089565 +:106B90000E94DB350C944C360E943E3638F00E9441 +:106BA000453620F0952311F00C9435360C943B3685 +:106BB00011240C9480360E945D3670F3959FC1F3CA +:106BC000950F50E0551F629FF001729FBB27F00D9B +:106BD000B11D639FAA27F00DB11DAA1F649F6627F0 +:106BE000B00DA11D661F829F2227B00DA11D621F3F +:106BF000739FB00DA11D621F839FA00D611D221FF9 +:106C0000749F3327A00D611D231F849F600D211DDC +:106C1000822F762F6A2F11249F5750409AF0F1F05F +:106C200088234AF0EE0FFF1FBB1F661F771F881FC8 +:106C300091505040A9F79E3F510580F00C94353695 +:106C40000C9480365F3FE4F3983ED4F386957795B5 +:106C50006795B795F795E7959F5FC1F7FE2B880F6E +:106C6000911D9695879597F9089597F99F6780E804 +:106C700070E060E008959FEF80EC089500240A948E +:106C80001616170618060906089500240A94121607 +:106C90001306140605060895092E0394000C11F43A +:106CA000882352F0BB0F40F4BF2B11F460FF04C0E7 +:106CB0006F5F7F4F8F4F9F4F089557FD9058440F40 +:106CC000551F59F05F3F71F04795880F97FB991F4B +:106CD00061F09F3F79F08795089512161306140608 +:106CE000551FF2CF4695F1DF08C016161706180695 +:106CF000991FF1CF86957105610508940895E89470 +:106D0000BB2766277727CB0197F90895F999FECF1E +:106D100092BD81BDF89A992780B50895262FF999DB +:106D2000FECF1FBA92BD81BD20BD0FB6F894FA9A6E +:106D3000F99A0FBE01960895052E97FB1EF4009454 +:106D40000E94B33657FD07D00E94CE3607FC03D011 +:106D50004EF40C94B33650954095309521953F4FA5 +:106D60004F4F5F4F089590958095709561957F4F37 +:106D70008F4F9F4F08950E94F036A59F900DB49FAE +:106D8000900DA49F800D911D11240895B7FF0C94C0 +:106D9000BB360E94BB36821B930B0895A1E21A2ECC +:106DA000AA1BBB1BFD010DC0AA1FBB1FEE1FFF1FAF +:106DB000A217B307E407F50720F0A21BB30BE40BFF +:106DC000F50B661F771F881F991F1A9469F7609546 +:106DD0007095809590959B01AC01BD01CF01089500 +:106DE000A29FB001B39FC001A39F700D811D11240C +:106DF000911DB29F700D811D1124911D0895505851 +:106E0000BB27AA270E9417370C944C360E943E36A7 +:106E100038F00E94453620F039F49F3F19F426F4EB +:106E20000C943B360EF4E095E7FB0C943536E92FD5 +:106E30000E945D3658F3BA176207730784079507F7 +:106E400020F079F4A6F50C947F360EF4E0950B2E25 +:106E5000BA2FA02D0B01B90190010C01CA01A001AC +:106E60001124FF27591B99F0593F50F4503E68F107 +:106E70001A16F040A22F232F342F4427585FF3CF48 +:106E8000469537952795A795F0405395C9F77EF419 +:106E90001F16BA0B620B730B840BBAF09150A1F062 +:106EA000FF0FBB1F661F771F881FC2F70EC0BA0FE8 +:106EB000621F731F841F48F4879577956795B79570 +:106EC000F7959E3F08F0B0CF9395880F08F099276B +:106ED000EE0F9795879508950E9480370C944C3655 +:106EE0000E94453658F00E943E3640F029F45F3F3C +:106EF00029F00C94353651110C9480360C943B36A5 +:106F00000E945D3668F39923B1F3552391F3951BE5 +:106F1000550BBB27AA2762177307840738F09F5FBA +:106F20005F4F220F331F441FAA1FA9F335D00E2E27 +:106F30003AF0E0E832D091505040E695001CCAF794 +:106F40002BD0FE2F29D0660F771F881FBB1F261757 +:106F500037074807AB07B0E809F0BB0B802DBF012E +:106F6000FF2793585F4F3AF09E3F510578F00C94FD +:106F700035360C9480365F3FE4F3983ED4F3869523 +:106F800077956795B795F7959F5FC9F7880F911D1E +:106F90009695879597F90895E1E0660F771F881F0A +:106FA000BB1F621773078407BA0720F0621B730BBD +:106FB000840BBA0BEE1F88F7E09508950E94E53721 +:106FC0006894B1110C94803608950E94653688F05B +:106FD0009F5798F0B92F9927B751B0F0E1F0660F9D +:106FE000771F881F991F1AF0BA95C9F714C0B130DE +:106FF00091F00E947F36B1E008950C947F36672FA0 +:10700000782F8827B85F39F0B93FCCF3869577950C +:107010006795B395D9F73EF49095809570956195F5 +:107020007F4F8F4F9F4F08950E94A43508F48FEF34 +:107030000895FA01EE0FFF1F309621053105A1F1E9 +:107040006115710561F48038BFE39B0749F16894CD +:107050009038810561F08038BFEF9B0741F099239C +:107060004AF5FF3FE1053105210519F1E89408943F +:10707000E795D901AA2329F4AB2FBE2FF85FD0F3EF +:1070800010C0FF5F70F4A695E0F7F73950F019F0E3 +:10709000FF3A38F49F779F930DD00F9007FC9058DC +:1070A000089546F00C943B3660E070E080E89FE382 +:1070B00008954FE79F775F934F933F932F930E94DD +:1070C00060392F913F914F915F910E94C8350C9488 +:1070D0007E389F930E94D9380F9007FCEE5F0C9486 +:1070E00002390E94A435880B990B089529F416F0F3 +:1070F0000C9435360C947F360C943B360E946536E2 +:10710000A8F39638A0F707F80F92E8942BE33AEA31 +:1071100048EB5FE70E94DE350F920F920F924DB75A +:107120005EB70F920E94A839E8E6F0E00E94B038FE +:107130004F915F91EF91FF91E595EE1FFF1F49F091 +:10714000FE57E0684427EE0F441FFA95E1F741959A +:10715000550B0E9422390F9007FE0C9416390895A2 +:10716000DF93CF931F930F93FF92EF92DF927B01F8 +:107170008C01689406C0DA2EEF010E94DB35FE0117 +:10718000E894A5912591359145915591A6F3EF018C +:107190000E941737FE019701A801DA9469F7DF9082 +:1071A000EF90FF900F911F91CF91DF9108950C9474 +:1071B0003B360E946536D8F3E894E0E0BB279F5742 +:1071C000F0F02AED3FE049EC06C0EE0FBB0F661F62 +:1071D000771F881F28F0B23A62077307840728F0E8 +:1071E000B25A620B730B840BE3959A9572F7803851 +:1071F00030F49A95BB0F661F771F881FD2F790480F +:107200000C94DE39EF93E0FF07C0A2EA2AED3FE0DD +:1072100049EC5FEB0E9417370E944C360F900394A5 +:1072200001FC9058E0E9F0E00C94EA399B01AC01D4 +:1072300060E070E080E89FE30C946C370C94353686 +:107240000C94DC390E946536D8F39923C9F3940F66 +:10725000511DA3F39150504094F059F0882332F01F +:10726000660F771F881F91505040C1F79E3F510510 +:107270002CF7880F911D9695879597F908955F3F94 +:10728000ACF0983E9CF0BB27869577956795B795AF +:1072900008F4B1609395C1F7BB0F58F711F460FF84 +:1072A000E8CF6F5F7F4F8F4F9F4FE3CF0C948036B7 +:1072B00016F00C94DC390C943B3668940C943536FB +:1072C0000E946536A8F39923C1F3AEF3DF93CF9301 +:1072D0001F930F93FF92C92FDD2788232AF0219750 +:1072E000660F771F881FDAF720E030E040E85FEB99 +:1072F0009FE3883920F0803E38F021968F770E94F6 +:107300000037EEEAF0E004C00E940037EBEDF0E059 +:107310000E94B0388B01BE01EC01FB2E6F57710942 +:107320007595771F880B990B0E94693528E132E724 +:1073300041E35FE30E94DB35AF2D9801AE01FF9082 +:107340000F911F91CF91DF910E9417370C944C360B +:10735000FA01DC01AA0FBB1F9B01AC01BF5728F447 +:10736000222733274427507820C0B75190F4AB2F01 +:107370000024469537952795011CA395D2F300204C +:1073800071F0220F331F441FB395DAF30ED00C9423 +:10739000FF3661307105A0E88A07B94630F49B01D9 +:1073A000AC016627772788279078309621F02083D4 +:1073B00031834283538308959F3F31F0915020F4ED +:1073C000879577956795B795880F911D96958795C1 +:1073D00097F908959F938F937F936F93FF93EF9304 +:1073E0009B01AC010E94C835EF91FF910E94B0381B +:1073F0002F913F914F915F910C94C835DB018F9392 +:107400009F930E94BB36BF91AF91A29F800D911DAB +:10741000A39F900DB29F900D1124089597FB072E06 +:1074200016F4009407D077FD09D00E94283A07FC93 +:1074300005D03EF4909581959F4F08957095619584 +:107440007F4F0895EE0FFF1F0590F491E02D0994F2 +:10745000AA1BBB1B51E107C0AA1FBB1FA617B7077A +:1074600010F0A61BB70B881F991F5A95A9F7809596 +:107470009095BC01CD01089581E090E0F8940C94C2 +:06748000413AF894FFCF31 +:1074860001FFD800340186011E0000000000000044 +:1074960000000000000000000000000000000000E6 +:1074A60000000000000000000000000000000000D6 +:1074B60000000000000000000000000000000000C6 +:1074C6000000013C9600400101280F050101014220 +:1074D60043312E35000000000000000000000000CF +:1074E6000000000000000000000000000000000096 +:1074F6000000000000000000000000000000000185 +:1075060001010000000B0604040202020203031834 +:1075160004FC03E003C403A8038C0370035403387C +:10752600031C030003E402C8021804AC02900274B0 +:1075360002180458023C027402580220023C0274EB +:10754600020402E801CC01B00194018C0378010029 +:10755600035C0140012401A80308017402ED04E85C +:1075660004E304DC04D604D204C904C604C304BE7E +:1075760004BA04B104A7049F049C049904960490D9 +:10758600048D048804850482047D04780475046FE0 +:10759600046B04670462045D045904540450044CEB +:1075A60004490445043C0437043404CF0F7F0F2FED +:1075B6000FDF0E8F0E3F0EEF0D9F0D4F0DFF0CAF21 +:1075C6000CCF0F5F0C0F0CBF0B6F0B1F0BCF0A7F7F +:1075D6000A2F0A1F0B7F0ADF092F0A1F0B8F093F8D +:1075E60009EF089F084F08FF07AF075F070F07BFA0 +:1075F600066F061F06CF051F0BAF1093107310F50D +:107606002357103B101F101B12E311AB1173113BD4 +:10761600110311CB10000000008215E2140F15CFE4 +:107626001540151E153215000000001918E2143C0D +:10763600193B196E616E00696E66006F7666002FE3 +:0276460033000F +:00000001FF diff --git a/software/binaries/1.7+/T12.ino.with_bootloader.standard.hex b/software/binaries/1.7+/T12.ino.with_bootloader.standard.hex new file mode 100644 index 0000000..4c59f17 --- /dev/null +++ b/software/binaries/1.7+/T12.ino.with_bootloader.standard.hex @@ -0,0 +1,1928 @@ +:020000040000FA +:100000000C943F120C9467120C9467120C943F28C6 +:100010000C9467120C9467120C9467120C9467127C +:100020000C9467120C9467120C9467120C9467126C +:100030000C9467120C9467120C9467120C9467125C +:100040000C94F5270C9467120C94C3270C949D27ED +:100050000C9467120C9416290C9467120C94671276 +:100060000C9467120C94671207634236B79BD8A7AB +:100070001A39685618AEBAAB558C1D3CB7CC5763CD +:10008000BD6DEDFD753EF6177231BF000000803F7B +:1000900005A84CCDB2D44EB93836A9020C50B9914E +:1000A0008688083CA6AAAA2ABE000000803F080055 +:1000B0000000BE922449123EABAAAA2ABECDCCCCE7 +:1000C0004C3E00000080BEABAAAAAA3E0000000081 +:1000D000BF000000803F0000000000084178D3BB53 +:1000E0004387D1133D190E3CC3BD4282AD2B3E6800 +:1000F000EC8276BED98FE1A93E4C80EFFFBE01C4F1 +:10010000FF7F3F0000000000800400003FF0383017 +:1001100033103F90381033902790261030903FF0E6 +:1001200000008004800400003FF03DF020103BF010 +:100130003B7030302B502AD031B03FF000008004AB +:10014000800400003FF038703030231027902010DA +:100150002010279027903FF00000800480040000CA +:100160003FF03CF03CF020102490249020103CF014 +:100170003CF03FF000008004800400003FF037B006 +:1001800023103030387038703030231037B03FF0E3 +:1001900000008004FCF4F860E044C08CC11CC22C58 +:1001A000C44CC88CD10CA204C4048FFC187CBCFCC9 +:1001B0008000BFF81FF8B0281FF8B4081FF8B10876 +:1001C0001FF8B048BFF8B288BFF880008000BFF8C1 +:1001D0001FF8B0081808B9E819B8B8381838B9B80D +:1001E000B9F8B0F8BFF8800015543FF815503FF04B +:1001F0001550387010203104138C22A817FC2AA83F +:100200000000000015543FFC15543FFC15543C04FD +:1002100014043CFC14543CFC005400A800000000F2 +:10022000800400003FF03CF034B0249024902790EC +:100230002310303038703FF000008004FF7CFE7CDB +:10024000FCECE8DCC84C984C882408200000000036 +:10025000000000008004E01CF3FCE7FCCE0C8E1CC8 +:100260009F9C1F3C1F0C0E0C0FFC87F881E4C00CF8 +:10027000E01CF87C000458085808580840087FF82B +:1002800060185FE85B685FE85B681CE85FE8000097 +:10029000800400003FF03CF03CF03CF020102010C7 +:1002A0003CF03CF03CF03FF000008004F87CF7BCF0 +:1002B00000007FF80000BFF4AB54AB54AB54AB5418 +:1002C000AB54AB54BFF4C00CF03CCE0CBF04B30431 +:1002D00073007F007E007C007C007C60BC64BE04F8 +:1002E000CF0CF03C81DC559C29045500299055D059 +:1002F00003FCFF002E00267002508270E600EE0420 +:10030000800C001C3FF43FE03FC4378C2318303092 +:1003100038703CF03FF03FF000008004058074B876 +:1003200057A876B80580F97C4694AAA8F97C068877 +:1003300074A8578C75740698F03CCE4CBC34B81435 +:10034000188010804230607860F844C08004B8841F +:10035000CFCCF03CE01CC00C8FC49FE49FE49FE432 +:1003600000000300030003000780078003008004EF +:10037000F87CE01CC00CCFCCCFCCCFCCCFCCCFCC3A +:10038000CFCCCFCCC84CCFCCC00CE01CFCFCF87C54 +:10039000E01CC00CC00CC00CC00CC00CC00C800415 +:1003A0008004FFFCF87CFCFC8004000020001000AE +:1003B00008001000270000000000000000000000FE +:1003C00000008004C3FC18001800C3FCFFFCFF0CF5 +:1003D00000600060FF0CFFFCF0FC06000600F0FC73 +:1003E0008FC4102020104CC89FE43DF03DF01DE06C +:1003F0003EF03F709FE48CC400003030F87CF33C4A +:10040000F4BCF6BCF4BCF6BCF4BCE49CC84CD02CE8 +:10041000D02CC84CE79CF03C882408203830383079 +:10042000383038303830383039303BB03FF03FF07A +:1004300000008004F21415F0CADFB8CCF0D699E8B9 +:10044000AEA4DFEEE8F21D1E08F21C08F21A1B082B +:10045000F0714601F046464A01F219F051F218F0E7 +:100460005A8DF0C0DAEEAEF0C8B8A5F1302924F00C +:10047000B599E1A4BDF21415F0CBEEAEBDF218F0C3 +:100480005A8DF21617F21415F0CBEEAEBDF2161718 +:10049000F0BCCA9EE0BDF21415F21213F21011F274 +:1004A0000C0DF094F20E0FF0A2D8DFCBE1EEACDC35 +:1004B000E8F20AF08CF20BF04A8DF209F08DF09719 +:1004C000C59BBDF20708F21F20F2040506F097DE77 +:1004D000EED5F0CBABEEF0AEA4DFEEE8F0A8E8BDD1 +:1004E000E2EEE0F0B499D3EEF200010203F0CCDFCB +:1004F000B0B8BD5361766500466C6970004D6169A6 +:100500006E2053637265656E004A5000454E00438D +:100510004E00594553004E4F004F4E004F46460087 +:10052000496E666F73004269670050494400446930 +:1005300072656374005361766500426F6F73740077 +:100540004F666600536C65657000536176650042C6 +:100550006F6F737400536C656570004465666175F8 +:100560006C740053617665004164640044656C6599 +:1005700074650052656E616D650043616C696272FD +:10058000617465004368616E6765005265747572D9 +:100590006E0041626F7574004C616E67004C6F6352 +:1005A0006B004C4F5720566F6C0042757A7A65721B +:1005B0000053637265656E00436F6E74726F6C00FA +:1005C00054696D65720054656D7000546970000067 +:1005D000000000000F1DC20800054442080003840B +:1005E0005FBF000FE44410000115451000054CC921 +:1005F0007F8009244F900007C4C11000054D413F82 +:1006000000055443810007C44D0200054441140015 +:10061000055541080007C8810400000000000000E3 +:100620000000000001083FFE001FFF8100000040A5 +:1006300002000007FE0FF800040208080004020888 +:10064000880007FE08880004020888000402088861 +:100650000007FE0888000402094800040202300076 +:1006600007FE040C00040218040000000000000053 +:100670000000000007FE13FE000402084000040210 +:10068000084000040201FC0004023884000402084F +:10069000840007FE0FFF000402080000040209FEA8 +:1006A00000040209020004020B020004020D020011 +:1006B00007FE09FE00040201020000000000000025 +:1006C0000000000001100080001FFF80800001106A +:1006D0003FFF00004004080007FC04080004440435 +:1006E0001000044402100004440220001FFF812077 +:1006F00000004000C00000A001300001100208000E +:10070000060C0C07001803B00200000000000000F7 +:1007100000000000004000800000400080000FFF4B +:100720003FFF000841040800084104080008410494 +:10073000100008410210000FFF02200008410120B4 +:1007400000004000C00000400130000040020800EE +:1007500000400C07000040300200000000000000D4 +:10076000000000001FDF10200002120C20000224F5 +:10077000042000047F8020000424B820000FA488F7 +:10078000500014BF88500004A488500004A4884876 +:100790000004BF88880004A48A880007A48C840011 +:1007A0000444890700008186020000000000000068 +:1007B000000000000FF00491000440025200047F8A +:1007C000905400045088FF0007D084810004510039 +:1007D0008100044901FF0007CA028100044404812A +:1007E00000044A1CFF0007EA0481000C5104810048 +:1007F0000061C4850000408082000000000000000D +:100800000000000007FF802000008407FF00008434 +:10081000040100008404010000840401000FFFC7EC +:10082000FF0000840400000084040000008405FF31 +:100830000000840501000104090100010409010010 +:10084000020411FF00040401010000000000000088 +:1008500000000000008204FF00004402010007FFC6 +:100860009021000010102100001017FD0000101052 +:1008700021000FFFD06100001010A10000281121FD +:100880000000281221000044142100008210A10061 +:100890000301D045000C00900200000000000000A1 +:1008A00000000000084410FE00042810920005FF1C +:1008B00022920000103C920000100892001CFE10D2 +:1008C0009200041020FE0004103E920005FF80926A +:1008D00000041000920005100E92000610309200E5 +:1008E000041000FE00001000820000000000000064 +:1008F0000000000007DF8840000A24104000114279 +:1009000010FE00040022820002FF3D020008010ADE +:10091000420009F9103200090920120009F93E02CB +:1009200000090900020009090E020009F93022003D +:100930000805001400080200080000000000000084 +:10094000000000000FC3F1E0000FE3F1F8000C70AD +:10095000C19E000C30C186000C30C183000C30C138 +:1009600083000C60C183000C60C183000FC0C18391 +:10097000000FC0C186000C00C186000C00C19800A9 +:100980000C03F1F8000C03F1E0000000000000008F +:100990000000000000200820000FFF09FC000020DC +:1009A00008000000203E880003FE08500002020BF1 +:1009B000FE0003FE0C4000020218400003FE2BFE66 +:1009C00000020208480003FE0888000202085000E6 +:1009D00002022830001FFF91CC000000000000013F +:1009E00004047C0000880444000FFF3F4400002002 +:1009F00004440000200C440000200E44001FFF951A +:100A000044000020144400005024440000500444DA +:100A100000008804450001040485000603850300E6 +:100A200018010400000000000000000000000000A9 +:100A300000000000047E21FC0004421104001F7E1F +:100A4000090400044221FC000542110400067E1145 +:100A500004000C0005FC0015FF880000040813FECC +:100A6000000448325200044F12520004481252004F +:100A700014A8125200091F97FF0000000000000098 +:100A80000000000002103DFC0002102504000410CC +:100A900025040005FFBDFC000C102520000C3825A6 +:100AA0002000143825FE0004543D20000454251075 +:100AB0000004922510000511A5090006113D45000E +:100AC0000410258300041001010000000000000054 +:100AD000000000001FC8102000124A0C20001AC994 +:100AE00004200017480020001FFFB820000208085B +:100AF00050001FC8085000020808500003C80848EA +:100B0000001E1408880001540A880015220C840075 +:100B10001443890700008106020000000000000263 +:100B2000FE01000002823FFF00048202000004FE7A +:100B30000200000C1004FC00141004080005FF8CD7 +:100B400010000410141000043825FF0004340410B1 +:100B50000004520410000491841000051004500099 +:100B6000041004200000000000000000000000004D +:100B70000000000002030010001FDC3EFE00089091 +:100B8000021200051004FF001FDF84120002120C85 +:100B9000FE001FD2021000021222FE000A92141060 +:100BA000000A5214100012220DFF00022208100049 +:100BB0000A42141000040223FF000000000000009D +:100BC000000000000F78BC20000948A45000094A2A +:100BD000A85000094AA88800094AB104001FFEAACB +:100BE000FB00094AA42000094AA42000094AA7FEE4 +:100BF00000094AB420000948A924000B48A2220099 +:100C0000088AA4A200111920400000000000000082 +:100C1000000000000020008000005001FC0000885F +:100C2000010400010403080006FB0490000800C052 +:100C3000600007DF018000045106000004511BFE24 +:100C400000045102020007D9020200045602020009 +:100C5000001003FE0000100202000000000000006F +:100C6000000000000208209000027F9890001F8082 +:100C700009FF00022201100006218B100007628D7F +:100C8000FE000AA20910000A14111000121431FE0D +:100C900000020811100002141110000222111000AD +:100CA000024391FF000281110000000000000000DB +:100CB00000000000100700000008F83FFE0004805C +:100CC000200200008020020000BE23E2001C8222DD +:100CD000220004A42222000494222200048822225A +:100CE00000049423E20005222002000542200200B5 +:100CF0000A003FFE0011FFA00200000000000000FB +:100D00000000000000820FFE00004400400007FFCA +:100D10008040000010004000001000400000101F44 +:100D2000FF800FFFC040000010004000002800407E +:100D30000000280040000044004000008200400005 +:100D40000301C140000C0080800000000000000989 +:100D5000FF00400004203FFF00042000000000FED0 +:100D60000000001C420FFC00044200000007FF804E +:100D7000000004000FFC0004FF00000004810000DC +:100D80000005810FFC00068108040004FF08040030 +:100D900000810FFC000000000000000000000000C7 +:100DA0000000000000401F7E001FFF840200108032 +:100DB0008442000A4A0442000A3108420012C50F68 +:100DC00042000304197F001DF829010000400901B9 +:100DD00000084209FD00084209010008420F010015 +:100DE0000FFE0905000002000200000000000000E4 +:100DF0000000000001000FFE00010008200003FFBA +:100E00000820000201082000042208200008200B0E +:100E1000FE00102008200000500828000050082480 +:100E20000000880822000088102000010410200023 +:100E30000203A7FF000C01000000000000000000FA +:100E40000000000000400080001FFF9FFC000040E9 +:100E50000410000FFF02200000003FFF000FFE0003 +:100E6000000008420FF80008420808000FFE0808BA +:100E70000008020FF8000800080800080008080031 +:100E800008000FF800100008080000000000000033 +:100E90000000000007FE0FF800040200000004023A +:100EA00000000007FE00000004023FFE00040200F4 +:100EB000800007FE008000009004900008910C88DC +:100EC00000069310860002942082000090008000AB +:100ED00000900280001FFF81000000000000000061 +:100EE00000000000041012020005FF9FD200050060 +:100EF0009212001E28A2120004443FF20004820253 +:100F0000120006000212000CFE1FD2001410125232 +:100F10000004101242000410134200041012820058 +:100F200015FF820A00080002040000000000000013 +:100F300000000000002000000000203E04001FFF11 +:100F4000A204001000A2FF0000012204000FFE22F4 +:100F5000040000403E4400004022240004402224BB +:100F600000047C22040004402204000A403E0400E5 +:100F7000094022240010FF80140000000008000037 +:100F80000000000010FE08200008820BFF00048211 +:100F90000A010010FE3C51000882088800088209FE +:100FA000040002FE0C0000040019FC0009FF2820C8 +:100FB0000019290820000929082000092908200013 +:100FC00009292BFF000BFF9000000000000000002B +:100FD000000000001F7F90F80001080888000A1038 +:100FE000088800047F0107001FC13A000005490975 +:100FF000FC000449088400044908880004490848A2 +:1010000000044908500004490A200004160C580046 +:10101000142189870008C086020000000000001F1C +:10102000E03FF07038601860186018FFFCFCFCFCB2 +:10103000FCFCFCF87CF87CFCFC7FF81E1033382D9F +:101040007C25382D3825382D386D80DEC0BF40BF57 +:1010500040DEC061803F007FF0FFE0C008C01CC0E0 +:1010600038C870DCE4CFCCC78CC30CC00CC00CFFFC +:10107000FC7FF8000006000C0018F838F0303070E3 +:1010800060707878F878003C023F0C1FF80FF0038E +:10109000C000007FF8FFFCC00CC30CCB4CDB6CDB4A +:1010A0006CD86CDCECCFCCC78CC00CFFFC7FF80399 +:1010B0000007800FC00CC01CE01CE03CF03CF07F3F +:1010C000F87FF8FCFCFCFCFFFC7FF811408200215B +:1010D000208FE023FC82004A23E200FE209FF013D1 +:1010E000F880802220C0804221BFF0FBFA88800275 +:1010F000208480022084801A208080E3FE82800287 +:101100000101000F421FC078411040084090400884 +:10111000421FC008411040FFFD104008405FC0085A +:1011200040800008413FE008432520104125201061 +:101130004125202041252040417FF07FF848800252 +:101140000049000201FFF00201001002027F20228C +:1011500000410023F07F00220008002200FF8022CF +:101160000088802200888022008A8022008900FF77 +:10117000FC080023F21FC022111040FBF090402217 +:10118000121FC02A11104033F1104060005FC0AF41 +:10119000FC800020413FE0224325202279252022A7 +:1011A000412520A541252048FD7FF01083DFC01098 +:1011B000825040208250402FFFDFC0608252006189 +:1011C000C25200A1C25FE022A3D20022A251002499 +:1011D000925100288E5090308BD45020825830206D +:1011E000801010104047C017FC44402003F44023F7 +:1011F000F844406208C440A3F8E440200154402F62 +:10120000FD44402806444023F844402040445020F8 +:10121000404850214050302080400020921FC03D67 +:10122000F990402090904040901FC07BFF0000A0AC +:10123000013FE021F90200FD09020021097FF021B0 +:10124000F90500210945002909888031F91070212C +:1012500008202025004300202070F8754077557540 +:101260007740403E4A5E2B5E4A6B627F352F357F6A +:101270007C5B5E247B0E3A047E017E4A5E69063A00 +:101280002F3F6B7E46403F41497F494102626B6B75 +:101290006B62026A6B147D577D10413F55553D5777 +:1012A00051213F2D7F2A122E0A775A505A770A2051 +:1012B00024137D5553707A2A7B021A437A4A525E70 +:1012C0002B5E424A415F353F555F417D14577D0E8D +:1012D000407F7F1B54167D1654493A407E57567600 +:1012E000423F427E7E427E047E51377D3750127AE5 +:1012F0001752761E127F557F145D7F557F557F7F75 +:10130000553D577F55377817457F7F2B7B287B2BA3 +:101310007F1E12127F12121E7F416B7F6B517F5214 +:101320005A573A575A52007F494949497F22122A4F +:101330007F2A1222166A5E735662160937315F15CC +:101340005F7500000000002F000300033F123F16EE +:101350003F1A120824323D2A020100003E41413E5C +:10136000000A070A083E084020000808080020007C +:101370001008041C2A1C243E20322A24222A141875 +:10138000143E2E2A121C2A12023A06142A14242A67 +:101390001C002400402400081422141414221408F1 +:1013A00002290612291E3E093E3F251A1E21213F11 +:1013B000211E3F25213F05011E21393F083F213FC6 +:1013C0002110201F3F043B3F20203F063F3F013EAE +:1013D0001E211E3F09061E215E3F093622251901E6 +:1013E0003F013F203F3F100F3F183F330C33033C7A +:1013F00003312D23007F41153E15417F000201027C +:1014000040404000010218243C3F241818242418AE +:10141000243F182C2C043F0548543C3F0438003D21 +:1014200000403D003F0834013F003C1C383C04387C +:101430001824187C241818247C3C0804283C140424 +:101440003E243C203C3C100C3C303C2418244C50A6 +:101450003C24342C083641007F004136080101014C +:101460001028101F010120203E1020000008002538 +:10147000150F241C0C103804180C3828382828188C +:101480003C083C18283820242C3C2C2C1C04080830 +:10149000211D07083C0306231E223E22120A3F326A +:1014A0000F3E0A3F0A24130E271E0222223E271255 +:1014B0000F2525102119273F222E21160F241B0E40 +:1014C000251F0526261E251D053F0408241F042070 +:1014D0002222251927123B1620100F3C013E1F2403 +:1014E0002421110F0C031C1A3F1A091927222A2A3A +:1014F000382730320C13053F25023F0E213F2025AF +:10150000253F25251D07201F3C3F203F20103E2260 +:101510003E23110F212118010001020502000000E5 +:1015200000000000002040000000000000205020CB +:10153000000000000050300000000000006060006B +:101540000000000000000018180000000000003635 +:1015500036000000000000563600000000000201C6 +:1015600051090906000000005F00000000000000B3 +:10157000007F41410041417F000000000000000069 +:101580003F010101004040407E0000000000003F9C +:10159000213D05070070505E427E00000000000003 +:1015A000007F63410041637F0000000000080808DD +:1015B0007F08080800080808080808080044444490 +:1015C0005F444444004122140814224100080808E2 +:1015D0002A080808001414141414141400143414E1 +:1015E0001C141614000808141414222200222214B9 +:1015F00014140808000205023C42422400002B2C6F +:10160000782C2B000000242A7A2F2A1200001C625A +:10161000322E23140020545E254142200042251220 +:10162000082452210020623E633E230200205649D6 +:1016300055225840000022147F142200001C225919 +:10164000554D120C0000004A555529000004643C19 +:10165000173C64040004643C1F3C6404001C2241E9 +:101660004141221C001C3E7F7F7F3E1C001C225DEE +:10167000555D221C000814224122140800081C3E5B +:101680007F3E1C08007F41414141417F007F7F7FB9 +:101690007F7F7F7F0040704C434C70400040707CE7 +:1016A0007F7C704000010719611907010001071FC5 +:1016B0007F1F07010049221449142249000505052E +:1016C0007D05050500080808082A1C0800081C2AD2 +:1016D00008080808000004027F020400000010202F +:1016E0007F20100000003E414141413E0000004289 +:1016F0007F400000000062515149494600002241EC +:10170000494949360000302824227F2000002F4517 +:101710004545453900003E4949494932000001012B +:101720006119050300003649494949360000264938 +:101730004949493E000020547E3414600020527F05 +:101740002A1A4A3000003C4020041800001E2040A5 +:10175000200204180000104A4A2A10000000084520 +:10176000454525180000482A3A4A40000000442513 +:10177000153D45400000247E145024000022527F75 +:101780000A484A340044344F443804180044344F63 +:101790004439041900002A5A4B4E5A0800002A5AAC +:1017A0004B4E5B080000081414224100000008148E +:1017B00014224504003F0004443F0404003F000499 +:1017C000443F0405000020524242424000002052A3 +:1017D000424342410000245444475C040000245426 +:1017E00044475C050000003F404040200000003FAF +:1017F000404140210002020A563F02020002020A52 +:10180000563F02030004043F44545F440004043F75 +:1018100044545F45000008093D4B49080000080991 +:101820003D4B490A00423A072254444400423A07D9 +:1018300022554445000002124E4B4A32000002126B +:101840004E4B4A3300001010484830000004040298 +:101850002222221C000404022223221D0000020274 +:101860001A254341000002021A2543450000205773 +:1018700048484444000020574849444500120A277C +:1018800052503A24007F00205242424000304E38ED +:10189000540F64780024147F0422523C0018241250 +:1018A0004E422418007F002454543F44007F0024FB +:1018B00054543F45007F002454563D4600023A47A9 +:1018C00040413E0400023A4740413E0500023A478B +:1018D00040433D06004030404D32106000403040F3 +:1018E0004D321161004030404D3215620008040253 +:1018F0000408101000080402040910110008040272 +:10190000040A1512007F006A6A7E2A4A007F006A74 +:101910006A7F2A4B007F006A6A7E2D4A00006A6A4D +:101920006A7F2A4A0030291D4B483C1000122A7F4A +:101930004240422400304E38540F443800000A3EE2 +:101940004B4A4A300000080E384614080004071CB1 +:1019500062030A0400001C483E241800001E0452C2 +:101960003F12120C00002050503E48000000205052 +:10197000503F244400001C51494A483000000F42A7 +:1019800041211E00000010696D4B49300024147F76 +:1019900004023E40000010494D4B49300000281819 +:1019A0007E0844380024147F0442423C003049251C +:1019B0001F245438004028255735284000100A2E8F +:1019C0005B724A480040300C334040200000044421 +:1019D0003C140C00000001413D09050300002020DB +:1019E0001078040000001010087C02010000184864 +:1019F0004C281800000006424322120E0000404806 +:101A000078484000002022223E2222200000282880 +:101A1000587C0800002222124A7F02020000422263 +:101A20001F02427E000042221F02427F000012126B +:101A30001F721210000012121F72131000000844CF +:101A40004322120E000008444322120F00080742EE +:101A5000221E020200080742221F02030000424227 +:101A60004242427E000042424243427F0002024F15 +:101A700042221F020002024F42231E030000454A79 +:101A80004020100C0000454A4021100D0040422229 +:101A9000221A264000404222221B26410004043F15 +:101AA0004444544C0004043F4445544D0000014656 +:101AB0004020100F000001464020110F0000084494 +:101AC0004B2A120E000008444B2A120F00080A4A43 +:101AD0003E09090800080A4A3E09080900001840A2 +:101AE0005820180000020C424C20100E00020C423C +:101AF0004C21100D000405453D0505040004054575 +:101B00003D0504050000007F080810000000007F6C +:101B100008091001000444241F04040400202222A8 +:101B200022222220004041251519270000202212E0 +:101B30007B06122000404020100807000040300EB5 +:101B400000020C700040300E00020D710040300E9B +:101B500000020D7200003F484848444400003F48DE +:101B60004849444500003F48484A45460000024273 +:101B70004222120E000002424223120F00000242D3 +:101B80004222150E00080402040810200008040276 +:101B90000409102100080402040A15220024144438 +:101BA0007F041424002414447F05142500241444C5 +:101BB0007F0615220002021222520A060000212589 +:101BC000294A42000040704C4350204000404424C9 +:101BD00014083700000008093F4949480000101C5C +:101BE000680818000004040F74020A060000404848 +:101BF0004878400000202222223E2020000000449D +:101C000054547C000000424A4A4A4A7E000004457F +:101C10004525150C00000F4040201F000040201EED +:101C2000007F20100000007F4020100800007E424E +:101C30004242427E00000C4444241C000000064244 +:101C40004222120E0010121E12127F1200202222B7 +:101C50003A262220000001454525150F000041428B +:101C60004020100C000006424322120F00004828BA +:101C70001C4878000000100C4838080000080404D4 +:101C800008101008000800000800000800040808F8 +:101C900008080808000808080808080808060505D4 +:101CA0000706040903030504090A080303030603DE +:101CB00005030305050306040405050405040403E0 +:101CC00004090503CB05C605C005B805B105AA057D +:101CD000A2059D05980592058B0584057A05730577 +:101CE0006C05680563055B0555054F054A05440508 +:101CF00040053A0535052E052A05260520051C0553 +:101D00001905160512050F050C050905FD04F80453 +:101D1000F3043E0053656C656374205469700000E1 +:101D2000000000003E5B4F5B3E3E6B4F6B3E1C3E37 +:101D30007C3E1C183C7E3C181C577D571C1C5E7F4B +:101D40005E1C00183C1800FFE7C3E7FF00182418CA +:101D500000FFE7DBE7FF30483A060E2629792926FF +:101D6000407F050507407F05253F5A3CE73C5A7FE9 +:101D70003E1C1C08081C1C3E7F14227F22145F5F3F +:101D8000005F5F06097F017F006689956A60606079 +:101D9000606094A2FFA29408047E040810207E20B4 +:101DA0001008082A1C08081C2A08081E1010101009 +:101DB0000C1E0C1E0C30383E3830060E3E0E06004F +:101DC0000000000000005F00000007000700147F13 +:101DD000147F14242A7F2A1223130864623649567A +:101DE00020500008070300001C2241000041221C73 +:101DF000002A1C7F1C2A08083E080800807030005A +:101E00000808080808000060600020100804023E6E +:101E10005149453E00427F400072494949462141AF +:101E2000494D331814127F1027454545393C4A491E +:101E3000493141211109073649494936464949295D +:101E40001E0000140000004034000000081422416D +:101E50001414141414004122140802015909063EF6 +:101E6000415D594E7C1211127C7F494949363E41F1 +:101E70004141227F4141413E7F494949417F090912 +:101E800009013E414151737F0808087F00417F41AD +:101E9000002040413F017F081422417F40404040E4 +:101EA0007F021C027F7F0408107F3E4141413E7F3C +:101EB000090909063E4151215E7F09192946264933 +:101EC00049493203017F01033F4040403F1F20400A +:101ED000201F3F4038403F63140814630304780414 +:101EE000036159494D43007F4141410204081020DC +:101EF000004141417F040201020440404040400053 +:101F00000307080020545478407F2844443838445C +:101F1000444428384444287F385454541800087ED8 +:101F2000090218A4A49C787F0804047800447D402A +:101F3000002040403D007F1028440000417F4000C9 +:101F40007C047804787C080404783844444438FCE1 +:101F50001824241818242418FC7C08040408485465 +:101F600054542404043F44243C4040207C1C204022 +:101F7000201C3C4030403C44281028444C90909019 +:101F80007C4464544C440008364100000077000053 +:101F9000004136080002010204023C2623263C1EB2 +:101FA000A1A161123A4040207A3854545559215524 +:101FB0005579412154547841215554784020545545 +:101FC00079400C1E52721239555555593954545492 +:101FD0005939555454580000457C410002457D4212 +:101FE0000001457C40F0292429F0F0282528F07CC8 +:101FF000545545002054547C547C0A097F49324989 +:102000004949323248484832324A4848303A4141D8 +:10201000217A3A42402078009DA0A07D3944444472 +:10202000393D4040403D3C24FF2424487E494366DE +:102030002B2FFC2F2BFF0929F620C0887E090320B7 +:10204000545479410000447D413048484A32384078 +:1020500040227A007A0A0A727D0D19317D262929DB +:102060002F28262929292630484D402038080808DD +:102070000808080808382F10C8ACBA2F102834FAFE +:1020800000007B000008142A142222142A14089548 +:1020900000220095AA005500AAAA55AA55AA000038 +:1020A00000FF00101010FF00141414FF001010FFA8 +:1020B00000FF1010F010F0141414FC001414F700BA +:1020C000FF0000FF00FF1414F404FC141417101F89 +:1020D00010101F101F1414141F00101010F0000017 +:1020E00000001F101010101F10101010F010000032 +:1020F00000FF101010101010101010FF1000000042 +:10210000FF140000FF00FF00001F10170000FC0478 +:10211000F414141710171414F404F40000FF00F75B +:1021200014141414141414F700F7141414171410BE +:10213000101F101F141414F4141010F010F00000ED +:102140001F101F0000001F14000000FC140000F00E +:1021500010F01010FF10FF141414FF141010101FB3 +:1021600000000000F010FFFFFFFFFFF0F0F0F0F0C4 +:10217000FFFFFF0000000000FFFF0F0F0F0F0F38E1 +:10218000444438447C2A2A3E147E02020606027E1B +:10219000027E0263554941633844443C04407E203A +:1021A0001E2006027E020299A5E7A5991C2A492A4B +:1021B0001C4C7201724C304A4D4D303048784830DA +:1021C000BC625A463D3E494949007E0101017E2AD2 +:1021D0002A2A2A2A44445F444440514A4440404405 +:1021E0004A51400000FF0103E080FF000008086B37 +:1021F0006B083612362436060F090F060000181831 +:102200000000001010003040FF0101001F01011EFE +:1022100000191D1712003C3C3C3C0000000000006F +:10222000000000240027002A0000000000250028EC +:10223000002B0000000000230026002900040404F5 +:10224000040404040402020202020203030303035F +:10225000030102040810204080010204081020013C +:10226000020408102000000008000201000003041E +:10227000070000000000000000AED5F0A83FD3002A +:10228000408D14A1C8DA1281CFD9F1DB40A4A6AFEA +:10229000200021007F220007506C65617365207764 +:1022A000616974004144433A200074656D703A20BE +:1022B00000536574206D65617375726564005374B5 +:1022C00065703A2000FFFFFFFFFFFF8003867080EC +:1022D000038003867080039FF3E1309FF39FF3E157 +:1022E000309FF3983301CC9833983301CC983398CE +:1022F0003387C098339833E1C098339833E1C0985E +:10230000339FF398C09FF39FF398C09FF3800366B9 +:10231000CC8003800366CC8003FFFF010CFFFFFF2E +:10232000FF01001FFF810061301F3F873CE6FC87F3 +:1023300033873CE6FC87F3F8039E0F1F03F8039EE8 +:102340000F1F03E13CFE0C07CFE13CFE0C07CF99C9 +:10235000033E3086C3E6CF380F9EF3E6CF380F9E9C +:10236000F39E0327CC81039E0327CC8103E0FFE18A +:102370000CE6CFE0FFE10CE6CF9803060000FF98E3 +:1023800003060000FFFFFF1EF0F80380036630998C +:10239000C38003663099C39FF3010CF8FF9FF301DC +:1023A0000CF8FF9833393C01CF9833393C01CF9872 +:1023B00033FF0C793F98333ECCE0F398333ECCE0CA +:1023C000F39FF33E0098CF9FF33E0098CF80033EEB +:1023D00030E7C380033E30E7C3FFFFFFFFFFFFFF8F +:1023E000FFFFFFFFFF3030300076312E372B0056D5 +:1023F00000560043000FE01FC01FC03F803FF87F22 +:10240000F07FE007C007800F000E001C00180010CE +:102410000014A03FF07FF8E01C6E18EC1C681860F8 +:1024200018E01C6058E01C7FF83FF014A0455252A1 +:102430004F5200484F4C44004845415400574F52BA +:102440004B5900424F4F535400534C454550004F99 +:1024500046460000003BEC7BEE63E663E663E66322 +:10246000E663E663E663666226600660067FFE3F1B +:10247000FC000001020408102040800017291124EC +:102480001FBECFEFD8E0DEBFCDBF12E0A0E0B1E0CD +:10249000E6E8F4E702C005900D92A23CB107D9F737 +:1024A00028E0A2ECB2E001C01D92A131B207E1F731 +:1024B00012E1CFE3D2E104C02197FE010E94223A4B +:1024C000CE33D107C9F70E94CC290C94413A0C9421 +:1024D00000004F925F926F927F928F929F92AF9285 +:1024E000BF92CF92DF92EF92FF920F931F93CF9301 +:1024F000DF9300D000D0CDB7DEB74B015C012901DE +:102500003A016701780120E030E0A9010E946235BC +:1025100087FDA6C020E030E0A901C301B2010E94FE +:10252000623587FD9DC020E030E0A901C801B601F9 +:102530000E94623587FD94C081E02091DB073091D5 +:10254000DC072130310509F080E08093FC078092A0 +:10255000C1079092C207A092C307B092C4074092ED +:10256000C5075092C6076092C7077092C807C0920D +:10257000C907D092CA07E092CB07F092CC076091CE +:10258000EF077091F0078091F1079091F2070E9498 +:10259000673520E030E04AE754E40E946C376983F5 +:1025A0007A838B839C838092CD079092CE07A092F2 +:1025B000CF07B092D0079B01AC01C301B2010E94CA +:1025C000C8352B013C014092D1075092D20760924E +:1025D000D3077092D40729813A814B815C81C7016E +:1025E000B6010E946C376B017C01C092D507D09276 +:1025F000D607E092D707F092D8078091D90790913B +:10260000DA07019769F5A501940160E070E0CB015C +:102610000E94FF366093CD077093CE078093CF075B +:102620009093D007A301920160E070E0CB010E947B +:10263000FF366093D1077093D2078093D3079093AE +:10264000D407A701960160E070E0CB010E94FF363D +:102650006093D5077093D6078093D7079093D807D8 +:102660000F900F900F900F90DF91CF911F910F91CE +:10267000FF90EF90DF90CF90BF90AF909F908F90A2 +:102680007F906F905F904F90089580389105B0F4DF +:102690006034710598F4E3E7F4E290E1969FD0018D +:1026A000A0781124A80F6770E60FF11D9491A85E21 +:1026B000BC4F442321F08C91982B9C9308959095C6 +:1026C0008C919823FACFDF92EF92FF920F931F9392 +:1026D000CF93DF937C01D22E8B01040F111DEB01F0 +:1026E00077FF02C0D0E0C0E0C8010134110514F04A +:1026F00080E490E0C817D9073CF44D2DBE01C70116 +:102700000E9445132196F0CFDF91CF911F910F9139 +:10271000FF90EF90DF900895CF92DF92EF92FF92BB +:102720000F931F93CF93DF936B01122FEC017C016A +:10273000E40EF11CCE15DF0544F4202F412FB60125 +:10274000CE010E9463132196F5CFDF91CF911F91A7 +:102750000F91FF90EF90DF90CF9008952F923F92CE +:102760004F925F926F927F928F929F92AF92BF92A1 +:10277000CF92DF92EF92FF920F931F93CF93DF934D +:1027800000D01F92CDB7DEB7C22ED12C9601280FF4 +:10279000391F37FD4FC0803891050CF04BC0E982DE +:1027A0004A017B013C01402E512C160127E0220EEC +:1027B000311C93E0359427949A95E1F78B01B12C65 +:1027C000A12C1B821A82EA81FB8183E0F595E795B3 +:1027D0008A95E1F7EA0DFB1DE80DF91DE4918A8168 +:1027E0009B818770992720E830E002C035952795B6 +:1027F0008A95E2F7C901F0E0E223F923EF2B41F0DB +:102800004981B8018A819B81860D971D0E944513DD +:102810008A819B8101969B838A838C159D059CF2FE +:10282000A20CB31C0F5F1F4FC8018E199F0984159E +:1028300095053CF20F900F900F90DF91CF911F9173 +:102840000F91FF90EF90DF90CF90BF90AF909F904F +:102850008F907F906F905F904F903F902F90089552 +:102860000F931F93CF93DF93EC018B0140E0019610 +:102870000E94451340E0B801CE0101970E94451324 +:10288000B8016F5F7F4F40E0CE010E944513B80151 +:102890006150710940E0CE010E94451340E0B8014B +:1028A000CE01DF91CF911F910F910C94451380E0E1 +:1028B000E8E1F3E081118FEF00248193819381930C +:1028C00081930394D1F7EDEFF7E01786168615860E +:1028D000148608956F927F928F929F92AF92BF92CB +:1028E000CF92DF92EF92FF920F931F93CF93DF93DC +:1028F000803891050CF057C0603471050CF053C05E +:102900007B0137E0E322FF2433E0759567953A9524 +:10291000E1F7DB01B695BA2FAA27B795A7955D0118 +:10292000C0E8AC0EB11CA80EB91EA80FB91FA85E56 +:10293000BC4F00E810E0081B190B90E080E0E8E0D5 +:10294000F0E04F018E189F0830E0FA01E80FF91F00 +:10295000C4917D906D01D1E0CD1AD1080E2C01C03B +:10296000CC0F0A94EAF77C2AE6017882E114F1049C +:1029700099F06730710581F0E491EC01CA0DDB1D1F +:10298000C85EDC4FF0E0082C02C0F595E7950A948C +:10299000E2F7F881EF2BE8830196821793071CF486 +:1029A0000817190791F6DF91CF911F910F91FF90B2 +:1029B000EF90DF90CF90BF90AF909F908F907F90DF +:1029C0006F900895AF92BF92CF92DF92EF92FF92F5 +:1029D0000F931F93CF93DF936C017B018B01040F47 +:1029E000151FEB015E01AE18BF08C017D10759F0E3 +:1029F0006991D601ED91FC910190F081E02DC60125 +:102A00000995892B79F7C501DF91CF911F910F911E +:102A1000FF90EF90DF90CF90BF90AF900895FC01B2 +:102A2000538D448D252F30E0842F90E0821B930B33 +:102A3000541710F0CF96089501970895FC01918DD9 +:102A4000828D981761F0A28DAE0FBF2FB11D5D96DC +:102A50008C91928D9F5F9F73928F90E008958FEF7E +:102A60009FEF0895FC01918D828D981731F0828D32 +:102A7000E80FF11D858D90E008958FEF9FEF089589 +:102A8000FC01918D228D892F90E0805C9F4F821BED +:102A900091098F739927089588E197E00E94401566 +:102AA00021E0892B09F420E0822F089580E090E056 +:102AB000892B29F00E944C1581110C940000089577 +:102AC000FC01A48DA80FB92FB11DA35ABF4F2C91A3 +:102AD000848D90E001968F739927848FA689B7899A +:102AE0002C93A089B1898C91837080648C93938D91 +:102AF000848D981306C00288F389E02D80818F7D34 +:102B000080830895EF92FF920F931F93CF93DF93EB +:102B1000EC0181E0888F9B8D8C8D98131AC0E88919 +:102B2000F989808185FF15C09FB7F894EE89FF89E8 +:102B30006083E889F98980818370806480839FBF86 +:102B400081E090E0DF91CF911F910F91FF90EF9086 +:102B50000895F62E0B8D10E00F5F1F4F0F73112796 +:102B6000E02E8C8D8E110CC00FB607FCFACFE889D1 +:102B7000F989808185FFF5CFCE010E946015F1CFE4 +:102B8000EB8DEC0FFD2FF11DE35AFF4FF0829FB745 +:102B9000F8940B8FEA89FB8980818062CFCFCF9335 +:102BA000DF93EC01888D8823B9F0AA89BB89E88975 +:102BB000F9898C9185FD03C0808186FD0DC00FB61B +:102BC00007FCF7CF8C9185FFF2CF808185FFEDCF99 +:102BD000CE010E946015E9CFDF91CF910895833037 +:102BE00081F028F4813099F08230A9F0089587307F +:102BF000A9F08830C9F08430B1F4809180008F7DD5 +:102C000003C0809180008F7780938000089584B501 +:102C10008F7784BD089584B58F7DFBCF8091B00000 +:102C20008F778093B00008958091B0008F7DF9CFA9 +:102C3000CF93DF93282F30E0F901EB59FD4D8491BC +:102C4000F901EF5AFD4DD491F901E35CFD4DC491BA +:102C5000CC23A1F081110E94EF15EC2FF0E0EE0FD4 +:102C6000FF1FED5CFD4DA591B491EC91ED2381E04A +:102C700090E009F480E0DF91CF91089580E090E04A +:102C8000FACF1F93CF93DF93282F30E0F901EB5950 +:102C9000FD4D8491F901EF5AFD4DD491F901E35CAA +:102CA000FD4DC491CC23A9F0162F81110E94EF1580 +:102CB000EC2FF0E0EE0FFF1FE75DFD4DA591B49105 +:102CC0008FB7F894EC91111108C0D095DE23DC93F6 +:102CD0008FBFDF91CF911F910895DE2BF8CFCF9357 +:102CE000DF9390E0FC01EF5AFD4D2491835C9D4DF4 +:102CF000FC0184918823C9F090E0880F991FFC01A2 +:102D0000E15EFD4DA591B491FC01E75DFD4DC591DE +:102D1000D49161110DC09FB7F8948C9120958223B6 +:102D20008C938881282328839FBFDF91CF910895BA +:102D3000623051F49FB7F8943C91822F80958323A1 +:102D40008C93E8812E2BEFCF8FB7F894EC912E2B3C +:102D50002C938FBFEACF1F93CF93DF93182FEB01F4 +:102D600061E00E946F16209739F460E0812FDF91B7 +:102D7000CF911F910C944116CF3FD10511F461E022 +:102D8000F5CFE12FF0E0EB59FD4DE491E33031F167 +:102D900040F4E130B1F0E230E1F0C038D1057CF729 +:102DA000E4CFE73029F1E83059F1E430B1F7809110 +:102DB0008000806280938000D0938B00C0938A0053 +:102DC00004C084B5806884BDC7BDDF91CF911F91D9 +:102DD000089584B5806284BDC8BDF7CF809180001E +:102DE000806880938000D0938900C0938800EDCFE5 +:102DF0008091B00080688093B000C093B300E5CFAD +:102E00008091B00080628093B000C093B400DDCFA9 +:102E10003FB7F8948091DC029091DD02A091DE0230 +:102E2000B091DF0226B5A89B05C02F3F19F001968F +:102E3000A11DB11D3FBFBA2FA92F982F8827BC0114 +:102E4000CD01620F711D811D911D42E0660F771F3C +:102E5000881F991F4A95D1F708958F929F92AF923C +:102E6000BF92CF92DF92EF92FF924B015C010E94E2 +:102E700008176B017C010E9408176C197D098E09E7 +:102E80009F09683E734081059105A8F321E0821AED +:102E90009108A108B10888EEC80E83E0D81EE11C95 +:102EA000F11C81149104A104B10429F7FF90EF9063 +:102EB000DF90CF90BF90AF909F908F9008952FB7E5 +:102EC000F8946091D8027091D9028091DA029091C1 +:102ED000DB022FBF089584E98093BC008091BC0081 +:102EE00084FDFCCF08958093BB0084E88093BC00F0 +:102EF0008091BC0087FFFCCF089584EA8093BC00DA +:102F00008091BC0087FFFCCF88E70C9473170E9468 +:102F10007D1780E48093BB0084E88093BC00E8E1E7 +:102F2000F3E09091BC0097FFFCCF91919093BB0090 +:102F30008093BC0097E0E831F90799F78091BC00D5 +:102F400087FFFCCF0C946B17CF93C82F0E947D177F +:102F500080E00E9473178C2F0E947317CF910C94FE +:102F60006B17480F592F511D4138510514F040E897 +:102F700050E0481BFB0177FD379633E0F595E79568 +:102F80003A95E1F7F695FE2FEE27F795E795E80FCE +:102F9000F91FE85EFC4F6770772781E090E001C081 +:102FA000880F6A95EAF7382F213041F4415078F0C4 +:102FB0008191DF011197832B8C93F8CF809541503D +:102FC00030F09191DF01119798239C93F8CF0895E9 +:102FD000CF92DF92EF92FF920F93CF93DF936C012A +:102FE0007B01C42FD22F202F0E94B117B7016D0F84 +:102FF000711D61507109603471052CF4202F4C2F24 +:10300000C6010E94B117202F4D2FB701C6010E94A3 +:103010006313C6018C0F911D202F4D2FB70101970F +:10302000DF91CF910F91FF90EF90DF90CF900C94B4 +:1030300063132F923F924F925F926F927F928F9283 +:103040009F92AF92BF92CF92DF92EF92FF920F9337 +:103050001F93CF93DF93CDB7DEB72A970FB6F894BF +:10306000DEBF0FBECDBF9A8389836A3061F5DC0174 +:1030700052968C91B8E08B9F90011124E981FA81DE +:1030800086859785820F931F978786871586148676 +:1030900081E090E02A960FB6F894DEBF0FBECDBF58 +:1030A000DF91CF911F910F91FF90EF90DF90CF9024 +:1030B000BF90AF909F908F907F906F905F904F9058 +:1030C0003F902F9008956D3019F329813A813A8706 +:1030D0002987D9011C96AD90BC90B0E8AB16B1041D +:1030E0000CF07BC0F901C684D784F0E4CF16D1047C +:1030F0000CF073C0D90152966C90529745E095013F +:10310000649E200D311D1124121613060CF065C0AB +:10311000262C312C910153E0220F331F5A95E1F7F1 +:103120002C0D3D1D121613060CF057C05196BC9184 +:10313000BB83E985FA85F089FC83649FB001112483 +:103140009B01215E324E3A832983712CE981FA81F9 +:103150008491F5E07F1201C080E0460138E0532EF3 +:10316000282F30E03E832D834C8080FF4B80411020 +:1031700004C03B818C813817E1F010E000E00615B7 +:10318000C0F4D501A00FB11FB887AF83F12CE12C9B +:10319000E61460F4B701680D791D442D8F81988580 +:1031A0000E944513BFEFEB1AFB0AF2CF0F5F1F4FD0 +:1031B000E6CF8D819E81959587955A94820C931CBC +:1031C0005110CECF7394E981FA813196FA83E98365 +:1031D000A20CB31CF6E07F12B9CFA985BA8552962E +:1031E0002C915297422F50E01C968D919C91B6E005 +:1031F0002B9F800D911D1124E985FA859587848781 +:103200002389222309F444CF6AEF64039001659F68 +:10321000300D112420583F4F281739070CF038CFB4 +:10322000DF010190F081E02D0190F081E02D6AE056 +:10323000CD0109952DCF0F931F93CF93DF938C0171 +:10324000D0E0C0E0F801EC0FFD1F6491662341F06F +:103250008DEF97E00E941918892B11F02196F2CF7B +:10326000CE01DF91CF911F910F910895682F8DEFBF +:1032700097E00C941918089590E080E008958091EB +:103280007A00806980937A008EE480937C0061E00C +:1032900070E080E090E00E942D1783B7817F82600C +:1032A00083BF80E130E020E093B7916093BF8895C1 +:1032B00093B79E7F93BF90917A0096FDFCCF40918B +:1032C000780050917900240F351F815069F7809163 +:1032D0007A008F7780937A0084E0369527958A95D7 +:1032E000E1F750E040E064EB7BE281E190E00E9496 +:1032F0009C36C901089580917A00806980937A0094 +:1033000088EC80937C006AE070E080E090E00E94AE +:103310002D1783B7817F826083BF80E270E060E019 +:1033200093B7916093BF889593B79E7F93BF909119 +:103330007A0096FDFCCF2091780030917900620FE1 +:10334000731F815069F780917A008F7780937A009C +:10335000769567957695679562527A4090E080E021 +:103360000E94673526EF38E24CE151E40E946C3749 +:10337000089590917A00906990937A008E508064BD +:1033800080937C0083B7817F826083BF20E290E0DE +:1033900080E033B7316033BF889533B73E7F33BFAA +:1033A00030917A0036FDFCCF409178005091790041 +:1033B000840F951F215069F720917A002F77209371 +:1033C0007A0025E0969587952A95E1F708958FE094 +:1033D0000E94B919A091E302B091E4029C010E94FD +:1033E000F0360E94693528E539E743E353E40E944B +:1033F0006C370E94E537CB0108958091EC02882359 +:1034000069F086E00E941816892B41F06AE070E0AE +:1034100080E090E00E942D171092EC0208956F92C8 +:103420007F928F929F92AF92BF92CF92DF92EF9254 +:10343000FF920F93CF93DF937C01C62F01E020E32F +:1034400040E370E060E00E948C13570123E0A20E7D +:10345000B11C00E02AE24AE263E070E0C5010E948C +:103460008C1370E060E0C7010E94301467013FE2F6 +:10347000C30ED11C70E060E0C6010E9430146FE200 +:1034800070E0C7010E9430146FE270E0C6010E9434 +:103490003014EC2FF0E0EE0FFF1FE157FE4F80805D +:1034A000918053E0E52EF12CD12CC12C60E8662EE2 +:1034B000712CD0E0C0E0FE0133E0F595E7953A9538 +:1034C000E1F7EC0DFD1DE80DF91DE491CE018770CB +:1034D0009927930102C0359527958A95E2F7C9018E +:1034E000F0E0E223F923EF2B69F0CE01880F991F5A +:1034F0008C0F9D1F01E023E043E0B7018A0D9B1D67 +:103500000E948C132196CE30D105A9F632E0C30E6D +:10351000D11C83E0E80EF11C2DE2E216F10449F61D +:10352000DF91CF910F91FF90EF90DF90CF90BF9000 +:10353000AF909F908F907F906F9008950F931F93FF +:10354000CF9380914D01882399F0CFEF0FEE11E0DA +:1035500061E085E00E944116C8010197F1F760E043 +:1035600085E00E944116C8010197F1F7C15081F72B +:10357000CF911F910F9108952F923F924F925F929A +:103580006F927F928F929F92AF92BF92CF92DF9273 +:10359000EF92FF920F931F93CF93DF9310E000E021 +:1035A000D0E0C0E03EE3E32EF12C40ECC42ED12C61 +:1035B000AA24A394B12C60E2662E712C70E4272E0D +:1035C000312C4C2E86E00E94181621E0892B09F040 +:1035D00020E02093EC02F0921703E0921603D092C1 +:1035E0001503C0921403B0921303A092120382E851 +:1035F00090E09093110380931003809110039091B9 +:10360000110395958795582E9FE1591243C0F0926A +:103610001703E0921603D0921503C0921403B092E0 +:103620001303A0921203EEEBF0E0F0931103E0938A +:1036300010039FE5592E0E94571482E080930F08D3 +:1036400010930A0800930908E0E3F0E0F0930C08F7 +:10365000E0930B088EE50E94361910920A0810922A +:10366000090870920C0860920B08912C812C84142C +:1036700038F580910A03F40196E0989FE00DF11D62 +:103680001124E15BFE4F80810E943619EFEF8E1A04 +:103690009E0AEDCFF0E65F12CECFF0921703E092D4 +:1036A0001603D0921503C0921403B0921303A09294 +:1036B0001203309211032092100380E2582EBBCFE8 +:1036C00010930A080093090870920C0860920B0886 +:1036D000852D0E9436190E94FD190E94871786E0E9 +:1036E0000E941816892B09F088CF8091EC02811175 +:1036F00084CF80900A03F6E08F9E40011124C4011C +:10370000815B9E4F4C01FC01EC0FFD1F50820E941B +:103710009E1A6AE070E080E090E00E942D172196EA +:10372000005F1F4FC530D10509F04BCFF401158262 +:10373000DF91CF911F910F91FF90EF90DF90CF908D +:10374000BF90AF909F908F907F906F905F904F90C1 +:103750003F902F9008953F924F925F926F927F9289 +:103760008F929F92AF92BF92CF92DF92EF92FF9291 +:103770000F931F93CF93DF93CDB7DEB72E970FB67E +:10378000F894DEBF0FBECDBF80910D03882309F4EE +:10379000A5C11092B5071092B6071092B707109204 +:1037A000B8078090B5079090B607A090B707B09083 +:1037B000B807C090FE02D090FF02E0900003F090A6 +:1037C0000103A7019601C501B4010E94FF362B0138 +:1037D0003C0120E030E0A9010E94143818160CF0DA +:1037E000A0C1C301B2010E94E5378091480188233E +:1037F00009F4B8C1C092BD07D092BE07E092BF07DE +:10380000F092C007E12CF12C00EA10E420E030E057 +:1038100040E450E46E31710540F0E12CF12C00E8F9 +:103820001FE320E030E040E05FE360E070E080E331 +:1038300091E40E9469128091FB07882309F42AC150 +:103840000E945F176D837E838F8398878091E30743 +:103850009091E407A091E507B091E6074D815E8164 +:103860006F817885481B590B6A0B7B0B8091EF07A2 +:103870009091F007A091F107B091F207481759070E +:103880006A077B0708F406C1E091DD07F091DE07C7 +:1038900080819181A281B38189839A83AB83BC8328 +:1038A000E091E107F091E2079C01AD016081718137 +:1038B000828193810E94FF364B015C012091EB07CE +:1038C0003091EC074091ED075091EE0769817A81C4 +:1038D0008B819C810E94FF366B017C012091D10776 +:1038E0003091D2074091D3075091D407C501B4015C +:1038F0000E94C8352091E7073091E8074091E90719 +:103900005091EA070E9400372B013C014092E707E3 +:103910005092E8076092E9077092EA073090FC073E +:1039200031101AC02091CD073091CE074091CF07BA +:103930005091D007C701B6010E94C8359B01AC0168 +:10394000C301B2010E94FF366093E7077093E80756 +:103950008093E9079093EA074090E7075090E807C3 +:103960006090E9077090EA071091F7079091F807C7 +:103970009E87A091F907AD870091FA07212F392F73 +:103980004A2F502FC301B2010E94143818160CF0B0 +:10399000CCC0812F9E85AD85B02F8093E707909393 +:1039A000E807A093E907B093EA07332009F4D6C0EB +:1039B0002091CD073091CE074091CF075091D0078D +:1039C000C501B4010E94C8354B015C012091D507A7 +:1039D0003091D6074091D7075091D807C701B6015B +:1039E0000E94C8359B01AC016091E7077091E80720 +:1039F0008091E9079091EA070E94FF36A5019401A2 +:103A00000E9400376B017C019B01AC01612F7E8518 +:103A10008D85902F0E94623587FD18C01091F307A5 +:103A20009091F4079E87A091F507AD870091F60766 +:103A3000212F392F4A2F502FB601C7010E9462351E +:103A400087FD04C01C2DDE86ED860F2DE091DF077B +:103A5000F091E007812F9E85AD85B02F8083918303 +:103A6000A283B38389819A81AB81BC818093EB0768 +:103A70009093EC07A093ED07B093EE078D819E81A4 +:103A8000AF81B8858093E3079093E407A093E5079F +:103A9000B093E6076091B9077091BA078091BB07B0 +:103AA0009091BC070E94DE3789E02E960FB6F894FD +:103AB000DEBF0FBECDBFDF91CF911F910F91FF9061 +:103AC000EF90DF90CF90BF90AF909F908F907F90BE +:103AD0006F905F904F903F900C94AB1680910C03C9 +:103AE000609144017091450181110EC08091FC02EA +:103AF0009091FD0220910B03BC01222329F06091DB +:103B00004301680F792F711D90E080E00E946735B6 +:103B10006093B5077093B6078093B7079093B80783 +:103B200040CEC301B20190585ECE8091F3079091D0 +:103B3000F407A091F507B091F60789879A87AB87BC +:103B4000BC879C01AD01C301B2010E94623587FFB1 +:103B50002CCF89859A85AB85BC851FCF812C912C74 +:103B6000540134CF20E030E040E05FE3C701B6010C +:103B70000E9400379B01AC01C501B4010E941438BA +:103B800018164CF41092B9071092BA071092BB079E +:103B90001092BC077FCF80E090E0AFE7B3E4809362 +:103BA000B9079093BA07A093BB07B093BC0772CF35 +:103BB0004F925F926F927F928F929F92AF92BF923D +:103BC000CF92DF92EF92FF92CF93DF938090E50246 +:103BD0009090E602A090E702B090E802C0910A033C +:103BE000D0E0C501B4010E94DE376B017C0120E00A +:103BF00030E048E453E4C501B4010E94623593E02B +:103C0000CC0FDD1F9A95E1F7CE5FDE4F87FF31C005 +:103C10002881398150E040E025513109410951099D +:103C2000C701B6010E94FE3928EC30E040E050E0C8 +:103C30000E949C36CA01B9016B5E7F4F8F4F9F4F28 +:103C40000E9469356093FE027093FF028093000327 +:103C500090930103DF91CF91FF90EF90DF90CF9091 +:103C6000BF90AF909F908F907F906F905F904F909C +:103C700008954A805B80712C612C20E030E04CE894 +:103C800053E4C501B4010E94623587FF1FC08880DC +:103C90009980B12CA12CA7019601285C310941091A +:103CA0005109C301B201681979098A099B090E9467 +:103CB000FE3920E530E040E050E00E949C36CA0129 +:103CC000B901680D791D8A1D9B1DBACF2C813D81DC +:103CD00050E040E02419350946095709C701B601EB +:103CE00068517140810991090E94FE3920E530E058 +:103CF00040E050E00E949C36CA01B901640D751D78 +:103D0000861D971D9DCFFC0101900020E9F731979A +:103D1000AF01481B590BBC018DEF97E00C94E214E6 +:103D20008F929F92AF92BF920F931F93CF93DF9387 +:103D3000CDB7DEB7A1970FB6F894DEBF0FBECDBFEB +:103D400019A2423008F44AE08E010F5D1F4F842E05 +:103D5000912CB12CA12CA50194010E94CE36E62F06 +:103D6000B901CA01EA30F4F4E05DD801EE938D01A7 +:103D7000232B242B252B79F790E080E0109719F066 +:103D8000CD010E94831EA1960FB6F894DEBF0FBE30 +:103D9000CDBFDF91CF911F910F91BF90AF909F90BA +:103DA0008F900895E95CE1CFCF92DF92EF92FF927E +:103DB000CF93DF9397FF19C06B017C018DE20E94C6 +:103DC0003619EC0166277727CB016C197D098E091E +:103DD0009F094AE00E94901E8C0F9D1FDF91CF919A +:103DE000FF90EF90DF90CF9008954AE0DF91CF9160 +:103DF000FF90EF90DF90CF900C94901E4F925F92C7 +:103E00006F927F928F929F92AF92BF92CF92DF92EA +:103E1000EF92FF920F931F93CF936B017C01742E4F +:103E2000AC019B010E947138882399F083EB92E0EA +:103E3000CF911F910F91FF90EF90DF90CF90BF90A7 +:103E4000AF909F908F907F906F905F904F900C9469 +:103E5000831E46015701E894B7F82FEF3FEF4FE775 +:103E60005FE7C501B4010E94713881110DC02FEFC9 +:103E70003FEF4FE75FE7C501B4010E9462351816B6 +:103E80001CF487EB92E0D4CF2FEF3FEF4FE75FE4D6 +:103E9000C701B6010E94143818161CF48BEB92E08F +:103EA000C7CF2FEF3FEF4FE75FECC701B6010E948E +:103EB000623587FDF3CF20E030E0A901C701B601EC +:103EC0000E94623510E000E087FF08C08DE20E948A +:103ED00036198C01F7FAF094F7F8F094C0E060E03E +:103EE00070E080E09FE37C1641F020E030E040E2AB +:103EF00051E40E946C37CF5FF6CFA70196010E9474 +:103F000000372B013C010E94E5374B015C014AE080 +:103F10000E94901E7C01E00EF11ECC23B1F1C50180 +:103F2000B4010E9467359B01AC01C301B2010E943C +:103F3000FF364B015C018EE20E943619E80EF91E35 +:103F4000C15018F120E030E040E251E4C501B40175 +:103F50000E94C8352B013C010E94E5374B01B12C72 +:103F6000A12C4AE0C501B4010E94901EE80EF91E82 +:103F7000C501B4010E9467359B01AC01C301B201C8 +:103F80000E94FF364B015C01DBCFC701CF911F912F +:103F90000F91FF90EF90DF90CF90BF90AF909F90E8 +:103FA0008F907F906F905F904F900895CF92DF92A7 +:103FB000EF92FF920F931F93CF93DF93C82F81E06F +:103FC000DC2FD827D0930E08C0930D0880930F08DC +:103FD0000C2F2EE046E661E370E081E090E00E9465 +:103FE000E81720910E0330910F03253F81E0380739 +:103FF000B8F4A4E6B0E00E94F03624EF31E040E0EF +:1040000050E00E949C36BA01A9014E5F5F4F6F4F8E +:104010007F4F2EE061E370E081E090E00E948C131E +:104020006091B5077091B6078091B7079091B80776 +:104030000E94DE379B01AC01A4E6B0E00E94BB36D3 +:1040400034EFC32EDD24D394E12CF12CA70196018B +:104050000E949C36DA01C9010296A11DB11D02978A +:104060000C2F2DE043E062E370E00E948C1360911E +:10407000B5077091B6078091B7079091B8070E9475 +:10408000DE379B01AC01A4E6B0E00E94BB36A7017D +:1040900096010E949C36DA01C9010296A11DB11D4C +:1040A000039724E045E06CE370E00E948C1360917C +:1040B000B5077091B6078091B7079091B8070E9435 +:1040C000DE379B01AC01A4E6B0E00E94BB36A7013D +:1040D00096010E949C3689019A010E5F1F4F2F4F57 +:1040E0003F4F0150110941E3E42EF12C4D2FB70150 +:1040F000C8010E9445138FEFE81AF80A8DE3E8160D +:10410000F104A1F76091B5077091B6078091B707E8 +:104110009091B8070E94DE379B01AC01A4E6B0E0A5 +:104120000E94BB3624EF31E040E050E00E949C3614 +:10413000DA01C9010296A11DB11D0397ED2E04E01D +:1041400025E047E552E16BE370E00E94AE130C2FCF +:104150002EE047E161E370E088E690E00E94E81716 +:104160006091B9077091BA078091BB079091BC0725 +:104170000E94DE379B01AC012F5F310941095109D3 +:10418000A7E1B0E00E94BB36CC24C394DD24DA94CE +:10419000ED2CFD2CA70196010E949C36422F2EE0AB +:1041A00061E370E088E690E00E948C13C0930E08F3 +:1041B000D0930D0882E090E090930A08809309085C +:1041C00007E310E010930C0800930B086091B5070B +:1041D0007091B6078091B7079091B80740E00E94B0 +:1041E000FE1E88EF0E94361985E592E10E941B1998 +:1041F00089E690E090930A088093090810930C08D0 +:1042000000930B086091B9077091BA078091BB07C2 +:104210009091BC070E94DE379B01AC012F5F3109F2 +:1042200041095109A4E6B0E00E94BB36A7019601FE +:104230000E949C36CA01B9010E94D41E83E592E116 +:104240000E941B19D0930E08C0930D08DF91CF91E7 +:104250001F910F91FF90EF90DF90CF9008956F9294 +:104260007F928F929F92AF92BF92CF92DF92EF9206 +:10427000FF920F931F93CF93DF93B0900A0377249D +:104280007394B11001C0712C809142018150990B3F +:104290001092170310921603880F991F909315031D +:1042A0008093140381E090E09093130380931203B2 +:1042B0008B2D90E0880F991F90931103809310032A +:1042C00086E00E94181621E0892B09F020E0209357 +:1042D000EC02FF24F39472E0972EE6E08E2EFCE0D1 +:1042E000CF2ED12C0E945714C0911003D0911103EE +:1042F000D595C795EC2E8E011127C801870D911D0C +:1043000077FC9A958B199109712C97FD06C0833023 +:10431000910514F082E090E0782EF0920E08109251 +:104320000D0890920F0810920A0810920908109236 +:104330000C0810920B0884E19DE10E941B19109259 +:104340000E08F0920D0810920A0810920908A72C86 +:10435000072C000CBB08C501019654E0880F991F7B +:104360005A95E1F790930C0880930B0882E19DE148 +:104370000E941B196C2E671890E080E098012A19A2 +:104380003B095901209142018C010F5F1F4F6216BA +:10439000D0F4D0920A08C0920908980144E0220F94 +:1043A000331F4A95E1F730930C0820930B088A0DD0 +:1043B0009B1D889E9001899E300D1124C901815B4F +:1043C0009E4F0E94831EC801639403301105D1F6ED +:1043D0000E94FD190E94871786E00E941816892BFB +:1043E000B9F48091EC02811113C00E949E1AE092F0 +:1043F0000A03DF91CF911F910F91FF90EF90DF9013 +:10440000CF90BF90AF909F908F907F906F900895C6 +:10441000BC2E68CF0E943C3A1F93CF93DF93EC01F0 +:10442000162F0E948636181739F0612FCE01DF91C2 +:10443000CF911F910C948E36DF91CF911F910895EB +:10444000AF92BF92CF92DF92EF92FF920F931F93A2 +:10445000CF93DF936091470182E090E00E940C22AD +:104460006091460183E090E00E940C22609145013A +:1044700084E090E00E940C226091440185E090E08D +:104480000E940C226091430186E090E00E940C2281 +:1044900060914B0187E090E00E940C2260914A01FC +:1044A00088E090E00E940C226091490189E090E050 +:1044B0000E940C2260917F018AE090E00E940C2211 +:1044C000609148018BE090E00E940C2260914D01C8 +:1044D0008CE090E00E940C2260910A038DE090E055 +:1044E0000E940C22609142018EE090E00E940C221A +:1044F00060914E018FE090E00E940C226091E902F1 +:1045000080E190E00E940C226091070381E190E03D +:104510000E940C226091EB0282E190E00E940C224A +:104520006091EA0283E190E00E940C2284E1E82E8F +:10453000F12C10E006E0809142011817B8F5109FA9 +:1045400060011124D0E0C0E0FE01EC0DFD1DE15B37 +:10455000FE4F6081C7018C0F9D1F0E940C22219687 +:10456000C630D10589F7670186E0C80ED11C88E006 +:10457000189FE0011124CE5FDE4F8EE0E80EF11CA3 +:1045800069812296C6010E940C22560182E0A80E83 +:10459000B11CFE0132976081C60101960E940C2277 +:1045A0006501AE14BF0461F71F5FC5CFDF91CF91E6 +:1045B0001F910F91FF90EF90DF90CF90BF90AF9041 +:1045C00008958F929F92AF92BF92CF92DF92EF9217 +:1045D000FF92CF936FEF70E089E00E94AB168BEAF9 +:1045E00094E00197F1F78EE00E94B9197C018AE00E +:1045F0000E9418169091C202981729F091E09093AA +:1046000002038093C202809101019FEF980F909363 +:104610000101811106C00E94E7199093090380935C +:1046200008036091B9077091BA078091BB07909118 +:10463000BC070E94DE3789E00E94AB168090E5023D +:104640009090E602A090E702B090E802B70190E0F7 +:1046500080E00E946735A50194010E94FF362DEC91 +:104660003CEC4CE45DE30E94C835A50194010E9436 +:1046700000376093E5027093E6028093E70290931F +:10468000E8020E94D81D60910E0370910F0390E024 +:1046900080E00E9467356B017C012091B507309165 +:1046A000B6074091B7075091B8070E946235811153 +:1046B000B6C02091FE023091FF024091000350915C +:1046C0000103C701B6010E94FF366B017C0120E0A7 +:1046D00030E0A9010E94143818160CF096C020E0B2 +:1046E00030E040EA50E4C701B6010E9414381816C1 +:1046F0000CF495C06091FC027091FD0290E080E0A6 +:104700000E9467352091FE023091FF024091000324 +:10471000509101030E94FF366B017C0120E030E0E4 +:10472000A9010E94143818160CF088C0C701B60100 +:104730000E94E5376530710508F084C080918001E2 +:10474000811105C080914C0181110E949E1A81E067 +:104750008093800110924C0180910E0390910F0381 +:10476000853F21E0920710F0109200012091000196 +:10477000211141C0843F9140F0F56FEF70E089E076 +:104780000E94AB160E949E1AC1E0C09300010E94D5 +:104790002F210E942022C09302038EE00E94B919AB +:1047A000BC0190E080E00E9467356093E502709361 +:1047B000E6028093E7029093E8021092F60280915D +:1047C000FC029091FD022CE231E03093170320931C +:1047D000160320E233E030931503209314032AE0FC +:1047E00030E03093130320931203880F991F9093A6 +:1047F000110380931003CF91FF90EF90DF90CF9043 +:10480000BF90AF909F908F90089520E030E040EAF5 +:1048100050ECC701B6010E94623587FF6BCF6091F3 +:10482000FE027091FF0280910003909101030E94AB +:10483000E53770930F0360930E035CCFC701B60199 +:10484000905876CF1092800187CF0C9486362F92A5 +:104850003F924F925F926F927F928F929F92AF9210 +:10486000BF92CF92DF92EF92FF920F931F93CF935D +:10487000DF938C0186E080930F0881E080930E081F +:1048800010920D086091D5027091D602072E000C8F +:10489000880B990B0E9469352B013C014FECC42E0B +:1048A00042E0D42E7601C2E0D0E05AE0A52EB12C31 +:1048B000BE010D2E000C880B990B0E9469359B01DF +:1048C000AC0160E070E080E291E40E9419389B0145 +:1048D000AC01C301B2010E946C370E94DE37CB01EC +:1048E000B5010E940E3AF701819391937F012197C0 +:1048F000F8F61093D6020093D502C3ECD2E094E010 +:10490000E92EF12C22E0822E912C3AE0232E312C3C +:10491000B401092C000C880B990B0E9469359B018E +:10492000AC0160E070E080E291E40E9419382B0154 +:104930003C016091D5027091D602072E000C880BC5 +:10494000990B0E946935A30192010E946C370E9465 +:10495000DE37CB01B1010E940E3AF6012081318190 +:10496000821B930BF2E3F89FB001F99F700D1124A5 +:10497000072E000C880B990B0E946935288139811C +:104980004A815B810E9400372B013C0120E030E02E +:10499000A9010E94623581117CC0488259826A82D5 +:1049A0007B8201E022E346E270E060E0C701049709 +:1049B0000E948C138EECA82EBB24BA940FEF1FEF2D +:1049C000288139814A815B8160E070E080E890E471 +:1049D0000E94FF362B013C01B5010B2C000C880B0B +:1049E000990B0E9469359B01AC01C301B2010E9481 +:1049F00000370E94DE37F0920A08E09209087093AF +:104A00000C0860930B08F60160817181600F711FC3 +:104A1000072E000C880B990B0E94D41E0F5F1F4FAE +:104A2000F2E3AF0EB11C0230110551F6249621E0DD +:104A3000821A910882E0C80ED11CECE2EE0EF11C45 +:104A4000F8E8EF16F10409F063CF00E022E040E857 +:104A500070E060E090E080E00E948C1320E140E88C +:104A600060E370E090E080E00E948C13DF91CF91D2 +:104A70001F910F91FF90EF90DF90CF90BF90AF907C +:104A80009F908F907F906F905F904F903F902F906E +:104A90000895C301B20190582DEC3CEC4CE45FE367 +:104AA0000E94C835A30192010E9400376883798370 +:104AB0008A839B8376CF4F925F926F927F928F9281 +:104AC0009F92AF92BF92CF92DF92EF92FF920F939D +:104AD0001F93CF93DF93CDB7DEB72B970FB6F89424 +:104AE000DEBF0FBECDBF90914E01E82FF0E09F01D9 +:104AF000220F331F911126C0F901E55DFD4F408162 +:104B00005181EE24E39400E124E260E370E080E36D +:104B100090E00E94AE132B960FB6F894DEBF0FBE46 +:104B2000CDBFDF91CF911F910F91FF90EF90DF905C +:104B3000CF90BF90AF909F908F907F906F905F903D +:104B40004F900895923009F079C0E356F34E4490A7 +:104B5000F901E352FE4FA080B180F12CE12C04E377 +:104B600010E393E0592E27E0622EE414A0F6F5013D +:104B7000EE0DFF1D449180E1840F833008F45CC08A +:104B800081EF7816D1F082EF7816C1F1403F90F4B2 +:104B9000193710F0085F10E088E0489FA001112449 +:104BA000435E5A4E602F70E028E0812F90E00E9413 +:104BB0006A14185F80EF782E1DC04E39D8F41D3767 +:104BC00010F0085F10E0C02ED12C812E912C459D55 +:104BD000A00111244D5B5C4E23E0B601C4010E948C +:104BE0006A1421E042E453E1B601C40103960E9435 +:104BF0006A141C5F8FEFE81AF80AB7CF4132D0F77A +:104C0000193710F0085F10E0C02ED12C812E912CA6 +:104C1000469DA0011124455A5D4E27E0B601C4010E +:104C20000E946A1421E042E453E1B601C4010796F0 +:104C30000E946A14185FDECF742EDCCF80E390E010 +:104C400090930A088093090884E390E090930C08FD +:104C500080930B0881E080930F08F901EC53F34E29 +:104C600065917491CE0101960E945B35CE0101964B +:104C70000E94831E50CFCF93C82F86E00E94181643 +:104C800021E0892B09F020E02093EC020E945714C8 +:104C90008091100390911103959587950E94272488 +:104CA0008C2F0E945B250E9487170E94FD1986E0C9 +:104CB0000E941816892B51F78091EC028111E6CFE2 +:104CC0000E949E1A8091D5029091D602CF910895AC +:104CD000109217031092160328E037E03093150363 +:104CE0002093140324E630E030931303209312033F +:104CF000880F991F909311038093100387E00E94FF +:104D00003B269C01220F331F309317032093160379 +:104D1000865A9F4F880F991F909315038093140311 +:104D20008AE090E090931303809312033093110371 +:104D30002093100387E00E943B269C01220F331F23 +:104D400030931703209316030996880F991F9093A9 +:104D500015038093140381E090E0909313038093F4 +:104D60001203309311032093100387E00C943B2629 +:104D70002F923F924F925F926F927F928F929F926B +:104D8000AF92BF92CF92DF92EF92FF920F931F9359 +:104D9000CF93DF93182FE091ED02F0E0EB57FE4F39 +:104DA00080818150990B1092170310921603880F7F +:104DB000991F909315038093140381E090E09093E2 +:104DC000130380931203812F90E0880F991F909313 +:104DD00011038093100386E00E94181621E0892BAE +:104DE00009F020E02093EC0210920E0881E08093FD +:104DF0000D0838E3632EE0901003F0901103F59452 +:104E0000E794AE2C6701DD249601211B3109629ED7 +:104E1000C001639E900D1124C80FD91F209709F17E +:104E2000662777276C1B7D0B072E000C880B990BD0 +:104E30000E9469352AE939E949E15FE30E94C835F2 +:104E40001B012C01BE01DD0F880B990B0E946935F7 +:104E50009B01AC01C201B1010E9400370E94DE3704 +:104E6000EB010E9457148601025011094E0185E0A2 +:104E7000B82E93E0792E7A0CC090ED02D12C17FD5C +:104E800020C0F601EB57FE4F808180171106C9F054 +:104E9000C4F0E5E8F1E070E060E0CF0185589140B2 +:104EA0008C159D0534F48191680F711DF6CF1E2D70 +:104EB000A2CF872D8B19680FC401885491090E94D5 +:104EC0000F1ABA940F5F1F4F88E3880E911CB11020 +:104ED000D3CFE5E8F1E090E080E09F012558314034 +:104EE0002C153D0524F42191820F911DF6CF8E0DD6 +:104EF0000E945B250E9487170E94FD1986E00E9490 +:104F00001816892BA1F68091EC028111D0CF0E9456 +:104F10009E1A8A2DDF91CF911F910F91FF90EF90F4 +:104F2000DF90CF90BF90AF909F908F907F906F90C9 +:104F30005F904F903F902F9008951F920F920FB661 +:104F40000F9211242F933F934F935F936F937F930F +:104F50008F939F93AF93BF93EF93FF9388E197E075 +:104F60000E946015FF91EF91BF91AF919F918F913A +:104F70007F916F915F914F913F912F910F900FBE55 +:104F80000F901F9018951F920F920FB60F92112439 +:104F90002F938F939F93EF93FF93E0912807F091C6 +:104FA00029078081E0912E07F0912F0782FD1BC019 +:104FB0009081809131078F5F8F7320913207821724 +:104FC00041F0E0913107F0E0E85EF84F958F809373 +:104FD0003107FF91EF919F918F912F910F900FBE0D +:104FE0000F901F9018958081F4CF1F920F920FB6EB +:104FF0000F9211242F933F938F939F93AF93BF935F +:105000008091D8029091D902A091DA02B091DB028E +:105010003091D70223E0230F2D3758F50196A11DBB +:10502000B11D2093D7028093D8029093D902A09308 +:10503000DA02B093DB028091DC029091DD02A09154 +:10504000DE02B091DF020196A11DB11D8093DC024A +:105050009093DD02A093DE02B093DF02BF91AF9187 +:105060009F918F913F912F910F900FBE0F901F90A6 +:10507000189526E8230F0296A11DB11DD2CF1F92CD +:105080000F920FB60F9211242F933F934F935F937C +:105090006F937F938F939F93EF93FF9383B181706F +:1050A00029B19091E202981709F49DC030E0220FD7 +:1050B000232F221F330B922F8093E2024091E102B3 +:1050C000241709F490C02093E1022091120330913B +:1050D0001303981719F03195219531094091100368 +:1050E000509111036091160370911703240F351F1F +:1050F000261737070CF48BC020911203309113034D +:10510000981719F03195219531094091100350916C +:1051100011036091140370911503240F351F62175A +:1051200073070CF46FC0409112035091130398174A +:1051300019F05195419551092091100330911103B7 +:10514000240F351F309311032093100341E098136F +:1051500040E02091E002421709F440C02091120380 +:1051600030911303981719F0319521953109609109 +:10517000100370911103E0911603F0911703260FAD +:10518000371F2E173F070CF44CC0209112033091AB +:105190001303981719F03195219531096091100387 +:1051A00070911103E0911403F0911503260F371F3E +:1051B000E217F3078CF12091120330911303981733 +:1051C00019F03195219531098091100390911103C7 +:1051D000820F931F90931103809310034093E0027A +:1051E00081E080930203FF91EF919F918F917F91D6 +:1051F0006F915F914F913F912F910F900FBE0F9044 +:105200001F90189520911403309115039BCF209186 +:1052100016033091170396CF8091140390911503D4 +:10522000D9CF8091160390911703D4CF18950F937F +:105230001F93CF93DF93E8E1F7E01382128288EEA9 +:1052400093E0A0E0B0E084839583A683B78389E9E7 +:1052500092E09183808385EC90E09587848784EC4D +:1052600090E09787868780EC90E0918B808B81EC33 +:1052700090E0938B828B82EC90E0958B848B86EC14 +:1052800090E0978B868B118E128E138E148EEDEF1D +:10529000F7E0138212821682178280E180871582DE +:1052A000148212868BEA92E091838083158614869D +:1052B0001786168681E0808B118A828B138AC1EC57 +:1052C000D7E029EB37E03F8F2E8F2DEB37E03D8F76 +:1052D0002C8F25EB37E039A328A31AAE1AAA1BAAF4 +:1052E0001CAA1DAA40E050E06FE773E44EAB5FAB31 +:1052F00068AF79AF44E650E060E070E04EA75FA78A +:1053000068AB79AB21E030E0398F288F3B8F2A8F53 +:105310008BAF80E090E0A0E3B1E488839983AA8317 +:10532000BB8380E090E0A0E0BFE38C839D83AE83ED +:10533000BF8380E090E0A0E8BFE388879987AA87D1 +:10534000BB8780E090E0A0E3B1EC8C879D87AE87BF +:10535000BF878DEC9CECACE4BDEB888B998BAA8B62 +:10536000BB8B80E090E0A0E2B1EC8C8B9D8BAE8B90 +:10537000BF8B0E945F170EA51FA528A939A9601B26 +:10538000710B820B930B6AA37BA38CA39DA3DF916C +:10539000CF911F910F910895CF93DF93CDB7DEB7D3 +:1053A0002C970FB6F894DEBF0FBECDBF789484B5AE +:1053B000826084BD84B5816084BD85B5826085BD11 +:1053C00085B5816085BD80916E00816080936E009F +:1053D0001092810080918100826080938100809191 +:1053E0008100816080938100809180008160809342 +:1053F00080008091B10084608093B1008091B00002 +:1054000081608093B00080917A00846080937A00FC +:1054100080917A00826080937A0080917A00816026 +:1054200080937A0080917A00806880937A0010924D +:10543000C1001092B90088E48093B8000E947D17E3 +:1054400080E00E94731709E712E2F80184910E943C +:1054500073170F5F1F4FF2E208391F07B1F70E9461 +:105460006B1711E01093B8000E94871781E28093B8 +:10547000050860E08EE00E946F1660E08FE00E94F9 +:105480006F1661E085E00E946F1661E089E00E947E +:105490006F1662E087E00E946F1662E088E00E946B +:1054A0006F1662E086E00E946F1662E08AE00E945A +:1054B0006F166FEF70E089E00E94AB1660E085E048 +:1054C0000E94411680917A00876080937A008091D3 +:1054D0007A00886080937A00789410936B00109320 +:1054E00068001BBB90E080E00E942524182F81E01B +:1054F00090E00E942524912F8F31984009F0C9C077 +:1055000082E090E00E942524182F83E090E00E9422 +:105510002524912F909347018093460184E090E0E9 +:105520000E942524182F85E090E00E942524912FC9 +:10553000909345018093440186E090E00E942524E9 +:105540008093430187E090E00E94252480934B01E3 +:1055500088E090E00E94252480934A0189E090E051 +:105560000E942524809349018AE090E00E9425242E +:1055700080937F018BE090E00E94252491E08111CF +:1055800001C090E0909348018CE090E00E942524B7 +:1055900091E0811101C090E090934D018DE090E089 +:1055A0000E94252480930A038EE090E00E94252427 +:1055B000282E809342018FE090E00E942524809362 +:1055C0004E0180E190E00E94252491E0811101C00C +:1055D00090E09093E90281E190E00E94252480937D +:1055E000070382E190E00E942524182F83E190E0D8 +:1055F0000E942524912F9093EB028093EA0252E0BF +:10560000852E51E0952E6FE4A62E61E0B62E74E152 +:10561000E72EF12C312C231409F447C010E000E0F0 +:10562000C701800F911F0E942524F501E00FF11F93 +:1056300080830F5F1F4F0630110591F7670136E039 +:10564000C30ED11C4EE0E40EF11C3401C6010E94D1 +:105650002524082F10E0102F0027D3010D931C9351 +:105660002601B2E04B0E511CC60101960E94252472 +:10567000082BF301019311933F0162014E145F0463 +:1056800029F73394F8E08F0E911C26E0A20EB11C8E +:10569000C2CF68E090E080E00E940C226FE181E0E0 +:1056A00090E00E940C220E9420221091E90280ECDE +:1056B000111101C088EC0E94A41780EA111101C0E9 +:1056C00081EA0E94A4171092030380E280930403EE +:1056D00080E48093050380E6809306038091EA02CC +:1056E0009091EB02892B19F10E94571467E088E230 +:1056F00090E00E940F1A87E00E945B250E948717A6 +:1057000068EE73E080E090E00E942D170E949E1AE0 +:105710000E949E1A0E949E1A90E080E00E946826D5 +:105720002091EA023091EB0282179307E9F60E947A +:105730003F199093E4028093E3020E94E71990934B +:1057400009038093080300914601109147011093CB +:10575000FD020093FC028EE00E94B919BC0190E0AA +:1057600080E00E9467356093E5027093E6028093C3 +:10577000E7029093E8020E947B190E94D81D20E066 +:1057800030E040EA51E46091FE027091FF028091A6 +:105790000003909101030E9400376B017C01B80166 +:1057A00090E080E00E9467359B01AC01C701B60123 +:1057B0000E94623587FF05C070E060E089E00E94CA +:1057C000AB161092F3071092F4071092F50710929F +:1057D000F607412C512C3FE7632E33E4732E4092A1 +:1057E000F7075092F8076092F9077092FA07A090B5 +:1057F000DF07B090E0078091FB07D501CD90DD90E9 +:10580000ED90FC90882311F40C948A34A30192014A +:10581000C701B6010E941438181634F5F50140820C +:105820005182628273828090E7079090E807A0908F +:10583000E907B090EA07C090F707D090F807E0902A +:10584000F907F090FA07A7019601C501B4010E947B +:1058500014381816CCF4C092E707D092E807E0920B +:10586000E907F092EA0720C020E030E0A901C70173 +:10587000B6010E94623587FFD6CFD5011D921D92D9 +:105880001D921C921397CFCFC090F307D090F407CE +:10589000E090F507F090F607A7019601C501B40165 +:1058A0000E94623587FDD7CF81E08093FB0783B1EB +:1058B00081708093E20289B190E0880F892F881F60 +:1058C000990B8093E1022091E2029091E10281E044 +:1058D000291380E08093E0028CE291E0909317031B +:1058E0008093160380E293E0909315038093140352 +:1058F0008AE090E09093130380931203000F111F2E +:1059000010931103009310030E945F176093F80235 +:105910007093F9028093FA029093FB020E949E1A00 +:105920000E949E1A2090100330901103F101F5950A +:10593000E795FA87E987F093FD02E093FC0286E0A1 +:105940000E941816482E8111A0C08091F60288236B +:1059500009F49BC00E949E1A0E945F176B017C0194 +:10596000C092F202D092F302E092F402F092F502B9 +:1059700086E00E941816892B59F40E945F176C1953 +:105980007D098E099F09643F71408105910580F36F +:105990000E945F176C197D098E099F09643F714051 +:1059A0008105910508F46DC46FEF70E089E00E94F5 +:1059B000AB160E949E1A512CAAE06A2E712C1092EE +:1059C000ED02852D0E94B826582E39E0381708F4CC +:1059D00039C0E82FF0E0E151F34D0C94223A0B2D41 +:1059E000B82F32309E30AC30DD30EB300C31173117 +:1059F000213120E030E0A901C701B6010E946235E3 +:105A000087FF52CF1092E7071092E8071092E9073C +:105A10001092EA0749CFF6E0FF2E81E08093ED0275 +:105A2000852D0E94B826582E42E0841709F439C209 +:105A3000481708F4E9C0882309F413C151E0851719 +:105A400009F412C10E94202281E080930203E985BB +:105A5000FA85F093FD02E093FC028CE291E09093D2 +:105A600017038093160380E293E0909315038093CD +:105A700014038AE090E09093130380931203C10112 +:105A80008E7F90931103809310034092F6028091D1 +:105A90000B03882309F1109149011123E9F00E94B9 +:105AA0005F17C090EE02D090EF02E090F002F0900D +:105AB000F1026C197D098E099F0928EE33E040E060 +:105AC00050E00E94CE36211738F010920B030E944E +:105AD0009E1A81E080934C01809102038823F1F1AA +:105AE00080910C03882351F120E030E040EA51E43A +:105AF0006091FE027091FF0280910003909101037A +:105B00000E9400376B017C016091FC027091FD02E4 +:105B100090E080E00E9467359B01AC01C701B601AF +:105B20000E94623587FF05C070E060E089E00E9456 +:105B3000AB160E949E1A81E080934C0110920203E2 +:105B400010920C0310920D030E945F176093F802ED +:105B50007093F9028093FA029093FB020E945F1700 +:105B60000091F8021091F9022091FA023091FB02A3 +:105B7000601B710B820B930B20E63AEE40E050E085 +:105B80000E94CE36122F2093F70280910C038111D0 +:105B90000BC080914B01882339F0281728F081E051 +:105BA00080930C030E949E1A80910D0381110BC0FB +:105BB00080914A01882339F0181728F081E08093FA +:105BC0000D030E949E1A0E94E1220E94AB1B0E94BC +:105BD0005F1780910608F62FF81B8F2F909107080A +:105BE000992309F464C3F09308081092070880E031 +:105BF00090E0892B09F496CE0E944C15882309F475 +:105C000091CE0E9400008ECE63E0861709F44CC14D +:105C100084E0581217CF80914201883008F0FDCE01 +:105C200091E0980F9093420180930A030E94BC1A5E +:105C3000E0910A03B8E0EB9FF0011124EE5FFE4F04 +:105C400028ED30E03183208344E351E053834283E5 +:105C500086E891E095838483AEE1B0E0B783A683C4 +:105C6000DCCE0E942F21D9CE8E010F5F1F4F612CF9 +:105C7000712C4301639478EEC72E73E0D72EAA24CB +:105C8000A394B12CEE24E394E0910A0394E0E99FFD +:105C9000F0011124C3010197E80FF91FEE0FFF1F58 +:105CA000EE5FFE4F808191819093FD028093FC0214 +:105CB000A8ECB0E0B0931703A0931603D09215039D +:105CC000C0921403B0921303A0921203880F991F7D +:105CD0009093110380931003E0924C0186E00E94A0 +:105CE000181621E0892B09F020E02093EC020E9495 +:105CF0005714B2E0B0930F080E94E1220E94AB1B40 +:105D000010920A081092090810920C0810920B08C1 +:105D10008EEB92E20E941B19C401B3010E94D41EB3 +:105D20008FEB92E00E94831E8091800110920A08FE +:105D300010920908882309F48CC0E0E1F0E0F093A8 +:105D40000C08E0930B0881EB92E20E941B19109261 +:105D50000A081092090820E230E030930C082093E2 +:105D60000B088AEA92E20E941B196091100370915D +:105D7000110375956795072E000C880B990B0E94EF +:105D8000D41E0E94FD190E94871786E00E941816F3 +:105D9000892B09F0ACCF8091EC028111A8CF8091C2 +:105DA00010039091110395958795D8018D939D933C +:105DB0008D010E949E1A6AE070E080E090E00E94EF +:105DC0002D17BFEF6B1A7B0A8B0A9B0AE4E06E1655 +:105DD00071048104910409F057CF6FEF70E089E0FE +:105DE0000E94AB168BEA94E00197F1F70E947B19B1 +:105DF0000E94E5373B0178876F83A980BA800B81C9 +:105E00001C81C5014E968017910708F006CECD8003 +:105E1000DE80C8014E968C159D0508F0FECD87E00A +:105E20008093ED0280E00E94B826882309F4F5CD26 +:105E3000E0910A0328E0E29FF0011124EE5FFE4F9B +:105E4000B182A08213830283D582C4827782668264 +:105E5000E4CD40E150E050930C0840930B0884EAF5 +:105E600092E20E941B196091E5027091E602809116 +:105E7000E7029091E8020E94E53790E080E04AE076 +:105E80000E94901E10920A081092090880E290E089 +:105E900090930C0880930B0888E992E20E941B19EA +:105EA00070CF0E94BC1AB9CD87E08093ED0280913B +:105EB0004201813009F4B1CD80E00E94B8268823E8 +:105EC00009F4ABCD80910A0390914201492F4150D2 +:105ED000550B9A018417150639F4815080930A03F3 +:105EE00091509093420199CDE82FF0E0E217F3072B +:105EF000BCF78F9D8001112450E040E06F016FEFEF +:105F0000C61AD60AB801640F751F615B7E4FDB01AC +:105F10001696EC901697EC924F5F5F4F4630510506 +:105F200089F7D60113E0AA0FBB1F1A95E1F7AE5F00 +:105F3000BE4F4D915C91119703E0EE0FFF1F0A9544 +:105F4000E1F7EE5FFE4F5183408312964D915C91D5 +:105F500013975383428314964D915C911597558303 +:105F6000448316964D915C91578346838F5FBCCFD7 +:105F700082E08093ED0210E0E8E2CE2ED12CFCE22C +:105F8000AF2EBB24B394A0E28A2EA3E09A2EB4E1F4 +:105F9000EB2EF12C812F0E94B826182F813029F189 +:105FA00030F0823009F441C00E94202208CD809157 +:105FB000460190914701B0921703A0921603909268 +:105FC0001503809214037092130360921203880FDA +:105FD000991F909311038093100381E10E943B2647 +:105FE0009093470180934601D5CF809144019091D1 +:105FF0004501D0921703C0921603E0E9F1E0F09357 +:106000001503E09314037092130360921203880F38 +:10601000991F909311038093100382E10E943B2605 +:106020009093450180934401B5CF8091430190E066 +:10603000F0921703E092160328EC30E0309315033A +:10604000209314037092130360921203880F991F18 +:10605000909311038093100383E10E943B26809369 +:10606000430198CF83E08093ED02F12C01E010E032 +:106070008F2D0E94B826F82E31E0831709F43FC017 +:10608000831700F142E084138FCF8091490190E0A3 +:10609000109217031092160348E651E0509315032F +:1060A000409314037092130360921203880F991F98 +:1060B000909311038093100387E10E943B26809305 +:1060C0004901D6CF80914B0190E0109217031092B6 +:1060D0001603ACE3B0E0B0931503A0931403109340 +:1060E000130300931203880F991F90931103809359 +:1060F000100385E10E943B2680934B01B9CF80912C +:106100004A0190E01092170310921603E8E7F0E0BE +:10611000F0931503E093140325E030E0309313036C +:1061200020931203880F991F9093110380931003FB +:1061300086E10E943B2680934A019ACF84E08093B7 +:10614000ED02809148010E94B82691E0811101C0C2 +:1061500090E09093480133CC10E0A9E0EA2EB5E03E +:10616000DB2EE092ED02812F0E94B826182F8823A3 +:1061700021F08130E1F000E009C0D092ED02809181 +:106180007F010E94B82680937F0101E0F090E90230 +:1061900080ECF11001C088EC0E94A41780EAF11095 +:1061A00001C081EA0E94A4170111DBCFFDCE8091CE +:1061B000E90281278093E902E8CF86E08093ED022F +:1061C00080914D010E94B82691E0811101C090E0BC +:1061D00090934D01F4CB8091070390E01092170348 +:1061E00010921603A4EFB1E0B0931503A09314032B +:1061F00021E030E03093130320931203880F991F9E +:10620000909311038093100386E00E943B268093B5 +:1062100007030E949E1AD3CB8091EA029091EB0271 +:106220000E9468269093EB028093EA02F2CF88E006 +:106230008093ED0280914E010E94B82680934E011A +:10624000BECB0E945714EE24E39400E320E345EC18 +:1062500052E270E060E088E290E00E94AE130E949B +:10626000871764E670E080E090E00E942D1786E0DA +:106270000E941816892BD9F78091EC028111F7CF73 +:10628000C8CF80910B0391E0892780930B0388236B +:1062900051F00E945F176093EE027093EF028093BB +:1062A000F0029093F10281E080930203EECB909193 +:1062B0000508F91748F48F5F891708F098CC81E03A +:1062C00083BF889513BE93CC81E0809307086093C9 +:1062D00006088091010890910208019690930208A7 +:1062E00080930108A0900E03B0900F0325EFA21633 +:1062F00021E0B20608F023C180910D03882309F440 +:10630000FCC06FEF70E089E00E94AB160E9457144A +:1063100003E013E072E0872E912CA12CB12CE3E076 +:106320004E2E512C612C712C0E940335A501940135 +:106330000E949C36AB01BC014150510961097109B1 +:10634000D8018C91682F640F613808F04BC06C93B2 +:10635000312C0E940335C32CD12CF12CE12CA3014C +:1063600092010E949C366D5F7F4F8F4F9F4FA70118 +:1063700096012617370748075907C4F5D801EC904E +:10638000F12C0E94033524E130E040E050E00E940F +:106390009C366A507109810991096E0D7F1D603428 +:1063A000710530F421E040E890E080E00E94B117F0 +:1063B000F801E080F12C0E94033524E130E040E058 +:1063C00050E00E949C36DC01CB010A97A109B1097B +:1063D0008E0D9F1D21E040E470E060E00E94631399 +:1063E0003394B7CF6058F8016083B2CF0F5F1F4F6F +:1063F000F3E007301F0709F097CF0E945F170E9454 +:10640000673520E030E04AE755E40E946C370E948F +:1064100069386B017C0120E030E040E853E40E94E1 +:10642000C83520E030E040E853E40E9400372B01FB +:106430003C0110E000E0B801012E000C880B990B24 +:106440000E946935A30192010E94623587FF25C031 +:106450000E9403354B015C010E94033569877A87EE +:106460008B879C87C501B40120E430E040E050E018 +:106470000E949C364B0169857A858B859C8520E836 +:1064800030E040E050E00E949C36CB0141E0B40196 +:106490000E9445130F5F1F4FCECF80914D0188237F +:1064A00049F10E94033520E130E040E050E00E94D5 +:1064B0009C3668507109810991090E9469354B0128 +:1064C0005C0120E030E040E852E4C701B6010E94E0 +:1064D000C83520E030E040E852E40E9400379B01DC +:1064E000AC01C501B4010E9400370E94DE3785E08F +:1064F0000E94AB160E9487177ACB80910C0312E0A2 +:1065000081111EC080910B0313E0811119C080918D +:10651000800114E0811114C020E030E044E353E432 +:106520006091B9077091BA078091BB079091BC0741 +:106530000E94623515E087FD03C016E001C010E03F +:1065400080917F01882309F481C10E94571401E0E2 +:1065500020E440E870E060E090E080E00E948C136E +:1065600081E080930F0880930E0810920D08E12CB3 +:1065700000E120E143E554E270E060E090E080E07B +:106580000E94AE1383E190E090930A08809309087B +:1065900084E090E090930C0880930B0880910A03AC +:1065A00026E0829FC0011124815B9E4F0E94831EC2 +:1065B00085E390E090930A088093090881E090E0D9 +:1065C00090930C0880930B0882E080930F08C12EF3 +:1065D000D12C80914E01CC0CDD1C8111EAC0F6015A +:1065E000E957FD4F408151810EE02CE161E070E000 +:1065F00080E590E00E94AE13F601E758FD4F408120 +:106600005181E12C0EE02EE061E070E081E790E046 +:106610000E94AE1381E080930F080E947B1920E056 +:1066200030E040EA52E40E94143818160CF4E0C03E +:10663000E12C0EE02EE041E154E262E170E082E004 +:1066400090E00E94AE13609108037091090390E0FE +:1066500080E00E94673520E030E048EC52E40E9480 +:106660006C376B017C016091070370E090E080E083 +:106670000E9469359B01AC01C701B6010E946235D9 +:1066800087FDCAC0E12C0EE02EE045EF53E262E246 +:1066900070E082E090E00E94AE1303E110E01093FE +:1066A0000A080093090840E150E050930C08409319 +:1066B0000B080E947B1941E00E94FE1E88EF0E9499 +:1066C000361983EF93E20E941B1910930A08009376 +:1066D000090888E190E090930C0880930B080E94D1 +:1066E0003F19BC0190E080E00E94673520E030E077 +:1066F0004AE754E40E946C3742E00E94FE1E81EF9C +:1067000093E20E941B1910930A080093090880E283 +:1067100090E090930C0880930B08609108037091AF +:10672000090390E080E00E94673520E030E04AE70E +:1067300054E40E946C3741E00E94FE1E8FEE93E20B +:106740000E941B1910930A080093090888E290E040 +:1067500090930C0880930B0889EE93E20E941B191A +:1067600089E390E090930A088093090882E190E021 +:1067700090930C0880930B0884E080930F0860913D +:106780000E0370910F03653F91E0790708F458C03C +:1067900085EE93E20E941B1900E020E248E460E1EC +:1067A00070E087E390E00E94E81780E00E94D61F27 +:1067B000A1CE83E494E21330C1F058F48FE494E264 +:1067C000113099F089E494E2123079F08DE294E28C +:1067D0000CC088E394E2153041F08DE394E215306B +:1067E00020F083E394E2163089F70E941B1904CF4E +:1067F0000E945F1752E0660F771F881F991F5A95F6 +:10680000D1F728EE33E040E050E00E94CE3620FF82 +:106810000FCF0E949E1A17CF0E945F1742E0660FAB +:10682000771F881F991F4A95D1F728EE33E040E083 +:1068300050E00E94CE3620FF25CF0E949E1A2DCF19 +:1068400090E080E04AE00E94901EA6CF0E9457147C +:106850000E947B1920E030E040EA52E40E941438A4 +:10686000181694F40E945F1732E0660F771F881F96 +:10687000991F3A95D1F728EE33E040E050E00E94AE +:10688000CE3620FD0E949E1A609108037091090384 +:1068900090E080E00E94673520E030E048EC52E470 +:1068A0000E946C376B017C016091070370E090E0FF +:1068B00080E00E9469359B01AC01C701B6010E94CE +:1068C000623587FF12C00E945F1722E0660F771FB4 +:1068D000881F991F2A95D1F728EE33E040E050E059 +:1068E0000E94CE3620FD0E949E1A87EE93E0A5EF0F +:1068F000AA16A1E0BA0608F4C5010E94272400E008 +:1069000023E040E860E370E090E080E00E948C13B8 +:1069100081E04CCFC092E707D092E807E092E90708 +:10692000F092EA07E091DD07F091DE078081918126 +:10693000A281B3818093EB079093EC07A093ED07BE +:10694000B093EE0720E030E04FE753E4C701B60113 +:106950000E94143818160CF04CC84092E707509269 +:10696000E8076092E9077092EA070C94542C8F9222 +:106970009F92AF92BF92CF92DF92EF92FF92CF930E +:10698000DF93EC01688179818A819B8161157105B2 +:106990008105910521F464E279ED8BE597E02DE125 +:1069A00033EF41E050E00E949C3649015A019B01BF +:1069B000AC01A7EAB1E40E94BB366B017C01ACEEEE +:1069C000B4EFA50194010E94C936C60ED71EE81E79 +:1069D000F91EF7FE06C081E0C81AD108E10880E878 +:1069E000F80AC882D982EA82FB82C701B6019F7782 +:1069F000DF91CF91FF90EF90DF90CF90BF90AF905D +:106A00009F908F9008958F929F92AF92BF92CF9256 +:106A1000DF92EF92FF9260918101709182018091EB +:106A2000830190918401611571058105910521F41F +:106A300064E279ED8BE597E02DE133EF41E050E042 +:106A40000E949C3649015A019B01AC01A7EAB1E4BE +:106A50000E94BB366B017C01ACEEB4EFA501940142 +:106A60000E94C936C60ED71EE81EF91EF7FE06C0E4 +:106A700081E0C81AD108E10880E8F80AC0928101D3 +:106A8000D0928201E0928301F0928401C701B601A5 +:106A90009F77FF90EF90DF90CF90BF90AF909F9047 +:106AA0008F90089560938101709382018093830198 +:106AB000909384010895FB01DC0105900D92002064 +:106AC000E1F708950E94A43508F481E00895E89460 +:106AD00009C097FB3EF490958095709561957F4F26 +:106AE0008F4F9F4F9923A9F0F92F96E9BB279395D4 +:106AF000F695879577956795B795F111F8CFFAF4E4 +:106B0000BB0F11F460FF1BC06F5F7F4F8F4F9F4F14 +:106B100016C0882311F096E911C0772321F09EE872 +:106B2000872F762F05C0662371F096E8862F70E0D8 +:106B300060E02AF09A95660F771F881FDAF7880FB2 +:106B40009695879597F90895990F0008550FAA0B08 +:106B5000E0E8FEEF16161706E807F907C0F0121670 +:106B60001306E407F50798F0621B730B840B950B73 +:106B700039F40A2661F0232B242B252B21F40895C8 +:106B80000A2609F4A140A6958FEF811D811D089565 +:106B90000E94DB350C944C360E943E3638F00E9441 +:106BA000453620F0952311F00C9435360C943B3685 +:106BB00011240C9480360E945D3670F3959FC1F3CA +:106BC000950F50E0551F629FF001729FBB27F00D9B +:106BD000B11D639FAA27F00DB11DAA1F649F6627F0 +:106BE000B00DA11D661F829F2227B00DA11D621F3F +:106BF000739FB00DA11D621F839FA00D611D221FF9 +:106C0000749F3327A00D611D231F849F600D211DDC +:106C1000822F762F6A2F11249F5750409AF0F1F05F +:106C200088234AF0EE0FFF1FBB1F661F771F881FC8 +:106C300091505040A9F79E3F510580F00C94353695 +:106C40000C9480365F3FE4F3983ED4F386957795B5 +:106C50006795B795F795E7959F5FC1F7FE2B880F6E +:106C6000911D9695879597F9089597F99F6780E804 +:106C700070E060E008959FEF80EC089500240A948E +:106C80001616170618060906089500240A94121607 +:106C90001306140605060895092E0394000C11F43A +:106CA000882352F0BB0F40F4BF2B11F460FF04C0E7 +:106CB0006F5F7F4F8F4F9F4F089557FD9058440F40 +:106CC000551F59F05F3F71F04795880F97FB991F4B +:106CD00061F09F3F79F08795089512161306140608 +:106CE000551FF2CF4695F1DF08C016161706180695 +:106CF000991FF1CF86957105610508940895E89470 +:106D0000BB2766277727CB0197F90895F999FECF1E +:106D100092BD81BDF89A992780B50895262FF999DB +:106D2000FECF1FBA92BD81BD20BD0FB6F894FA9A6E +:106D3000F99A0FBE01960895052E97FB1EF4009454 +:106D40000E94B33657FD07D00E94CE3607FC03D011 +:106D50004EF40C94B33650954095309521953F4FA5 +:106D60004F4F5F4F089590958095709561957F4F37 +:106D70008F4F9F4F08950E94F036A59F900DB49FAE +:106D8000900DA49F800D911D11240895B7FF0C94C0 +:106D9000BB360E94BB36821B930B0895A1E21A2ECC +:106DA000AA1BBB1BFD010DC0AA1FBB1FEE1FFF1FAF +:106DB000A217B307E407F50720F0A21BB30BE40BFF +:106DC000F50B661F771F881F991F1A9469F7609546 +:106DD0007095809590959B01AC01BD01CF01089500 +:106DE000A29FB001B39FC001A39F700D811D11240C +:106DF000911DB29F700D811D1124911D0895505851 +:106E0000BB27AA270E9417370C944C360E943E36A7 +:106E100038F00E94453620F039F49F3F19F426F4EB +:106E20000C943B360EF4E095E7FB0C943536E92FD5 +:106E30000E945D3658F3BA176207730784079507F7 +:106E400020F079F4A6F50C947F360EF4E0950B2E25 +:106E5000BA2FA02D0B01B90190010C01CA01A001AC +:106E60001124FF27591B99F0593F50F4503E68F107 +:106E70001A16F040A22F232F342F4427585FF3CF48 +:106E8000469537952795A795F0405395C9F77EF419 +:106E90001F16BA0B620B730B840BBAF09150A1F062 +:106EA000FF0FBB1F661F771F881FC2F70EC0BA0FE8 +:106EB000621F731F841F48F4879577956795B79570 +:106EC000F7959E3F08F0B0CF9395880F08F099276B +:106ED000EE0F9795879508950E9480370C944C3655 +:106EE0000E94453658F00E943E3640F029F45F3F3C +:106EF00029F00C94353651110C9480360C943B36A5 +:106F00000E945D3668F39923B1F3552391F3951BE5 +:106F1000550BBB27AA2762177307840738F09F5FBA +:106F20005F4F220F331F441FAA1FA9F335D00E2E27 +:106F30003AF0E0E832D091505040E695001CCAF794 +:106F40002BD0FE2F29D0660F771F881FBB1F261757 +:106F500037074807AB07B0E809F0BB0B802DBF012E +:106F6000FF2793585F4F3AF09E3F510578F00C94FD +:106F700035360C9480365F3FE4F3983ED4F3869523 +:106F800077956795B795F7959F5FC9F7880F911D1E +:106F90009695879597F90895E1E0660F771F881F0A +:106FA000BB1F621773078407BA0720F0621B730BBD +:106FB000840BBA0BEE1F88F7E09508950E94E53721 +:106FC0006894B1110C94803608950E94653688F05B +:106FD0009F5798F0B92F9927B751B0F0E1F0660F9D +:106FE000771F881F991F1AF0BA95C9F714C0B130DE +:106FF00091F00E947F36B1E008950C947F36672FA0 +:10700000782F8827B85F39F0B93FCCF3869577950C +:107010006795B395D9F73EF49095809570956195F5 +:107020007F4F8F4F9F4F08950E94A43508F48FEF34 +:107030000895FA01EE0FFF1F309621053105A1F1E9 +:107040006115710561F48038BFE39B0749F16894CD +:107050009038810561F08038BFEF9B0741F099239C +:107060004AF5FF3FE1053105210519F1E89408943F +:10707000E795D901AA2329F4AB2FBE2FF85FD0F3EF +:1070800010C0FF5F70F4A695E0F7F73950F019F0E3 +:10709000FF3A38F49F779F930DD00F9007FC9058DC +:1070A000089546F00C943B3660E070E080E89FE382 +:1070B00008954FE79F775F934F933F932F930E94DD +:1070C00060392F913F914F915F910E94C8350C9488 +:1070D0007E389F930E94D9380F9007FCEE5F0C9486 +:1070E00002390E94A435880B990B089529F416F0F3 +:1070F0000C9435360C947F360C943B360E946536E2 +:10710000A8F39638A0F707F80F92E8942BE33AEA31 +:1071100048EB5FE70E94DE350F920F920F924DB75A +:107120005EB70F920E94A839E8E6F0E00E94B038FE +:107130004F915F91EF91FF91E595EE1FFF1F49F091 +:10714000FE57E0684427EE0F441FFA95E1F741959A +:10715000550B0E9422390F9007FE0C9416390895A2 +:10716000DF93CF931F930F93FF92EF92DF927B01F8 +:107170008C01689406C0DA2EEF010E94DB35FE0117 +:10718000E894A5912591359145915591A6F3EF018C +:107190000E941737FE019701A801DA9469F7DF9082 +:1071A000EF90FF900F911F91CF91DF9108950C9474 +:1071B0003B360E946536D8F3E894E0E0BB279F5742 +:1071C000F0F02AED3FE049EC06C0EE0FBB0F661F62 +:1071D000771F881F28F0B23A62077307840728F0E8 +:1071E000B25A620B730B840BE3959A9572F7803851 +:1071F00030F49A95BB0F661F771F881FD2F790480F +:107200000C94DE39EF93E0FF07C0A2EA2AED3FE0DD +:1072100049EC5FEB0E9417370E944C360F900394A5 +:1072200001FC9058E0E9F0E00C94EA399B01AC01D4 +:1072300060E070E080E89FE30C946C370C94353686 +:107240000C94DC390E946536D8F39923C9F3940F66 +:10725000511DA3F39150504094F059F0882332F01F +:10726000660F771F881F91505040C1F79E3F510510 +:107270002CF7880F911D9695879597F908955F3F94 +:10728000ACF0983E9CF0BB27869577956795B795AF +:1072900008F4B1609395C1F7BB0F58F711F460FF84 +:1072A000E8CF6F5F7F4F8F4F9F4FE3CF0C948036B7 +:1072B00016F00C94DC390C943B3668940C943536FB +:1072C0000E946536A8F39923C1F3AEF3DF93CF9301 +:1072D0001F930F93FF92C92FDD2788232AF0219750 +:1072E000660F771F881FDAF720E030E040E85FEB99 +:1072F0009FE3883920F0803E38F021968F770E94F6 +:107300000037EEEAF0E004C00E940037EBEDF0E059 +:107310000E94B0388B01BE01EC01FB2E6F57710942 +:107320007595771F880B990B0E94693528E132E724 +:1073300041E35FE30E94DB35AF2D9801AE01FF9082 +:107340000F911F91CF91DF910E9417370C944C360B +:10735000FA01DC01AA0FBB1F9B01AC01BF5728F447 +:10736000222733274427507820C0B75190F4AB2F01 +:107370000024469537952795011CA395D2F300204C +:1073800071F0220F331F441FB395DAF30ED00C9423 +:10739000FF3661307105A0E88A07B94630F49B01D9 +:1073A000AC016627772788279078309621F02083D4 +:1073B00031834283538308959F3F31F0915020F4ED +:1073C000879577956795B795880F911D96958795C1 +:1073D00097F908959F938F937F936F93FF93EF9304 +:1073E0009B01AC010E94C835EF91FF910E94B0381B +:1073F0002F913F914F915F910C94C835DB018F9392 +:107400009F930E94BB36BF91AF91A29F800D911DAB +:10741000A39F900DB29F900D1124089597FB072E06 +:1074200016F4009407D077FD09D00E94283A07FC93 +:1074300005D03EF4909581959F4F08957095619584 +:107440007F4F0895EE0FFF1F0590F491E02D0994F2 +:10745000AA1BBB1B51E107C0AA1FBB1FA617B7077A +:1074600010F0A61BB70B881F991F5A95A9F7809596 +:107470009095BC01CD01089581E090E0F8940C94C2 +:10748000413AF894FFCF01FFD800340186011E0075 +:1074900000000000000000000000000000000000EC +:1074A00000000000000000000000000000000000DC +:1074B00000000000000000000000000000000000CC +:1074C0000000000000000000013C9600400101287F +:1074D0000F050101014243312E350000000000007C +:1074E000000000000000000000000000000000009C +:1074F000000000000000000000000000000000008C +:1075000000000000000101010000000B060404025D +:1075100002020203031804FC03E003C403A8038C63 +:10752000037003540338031C030003E402C8021869 +:1075300004AC0290027402180458023C027402580F +:107540000220023C0274020402E801CC01B0019462 +:10755000018C03780100035C0140012401A80308A9 +:10756000017402ED04E804E304DC04D604D204C987 +:1075700004C604C304BE04BA04B104A7049F049C57 +:10758000049904960490048D048804850482047D83 +:1075900004780475046F046B04670462045D045985 +:1075A00004540450044C04490445043C0437043496 +:1075B00004CF0F7F0F2F0FDF0E8F0E3F0EEF0D9FAB +:1075C0000D4F0DFF0CAF0CCF0F5F0C0F0CBF0B6FEF +:1075D0000B1F0BCF0A7F0A2F0A1F0B7F0ADF092F11 +:1075E0000A1F0B8F093F09EF089F084F08FF07AFDD +:1075F000075F070F07BF066F061F06CF051F0BAFFC +:107600001093107310F52357103B101F101B12E33B +:1076100011AB1173113B110311CB1000000000825C +:1076200015E2140F15CF1540151E15321500000078 +:10763000001918E2143C193B196E616E00696E6600 +:08764000006F7666002F330095 +:107E0000112484B714BE81FFF0D085E080938100F7 +:107E100082E08093C00088E18093C10086E0809377 +:107E2000C20080E18093C4008EE0C9D0259A86E02C +:107E300020E33CEF91E0309385002093840096BBD3 +:107E4000B09BFECF1D9AA8958150A9F7CC24DD24C4 +:107E500088248394B5E0AB2EA1E19A2EF3E0BF2EE7 +:107E6000A2D0813461F49FD0082FAFD0023811F036 +:107E7000013811F484E001C083E08DD089C08234E0 +:107E800011F484E103C0853419F485E0A6D080C0E4 +:107E9000853579F488D0E82EFF2485D0082F10E0AE +:107EA000102F00270E291F29000F111F8ED06801E7 +:107EB0006FC0863521F484E090D080E0DECF843638 +:107EC00009F040C070D06FD0082F6DD080E0C81688 +:107ED00080E7D80618F4F601B7BEE895C0E0D1E017 +:107EE00062D089930C17E1F7F0E0CF16F0E7DF06D8 +:107EF00018F0F601B7BEE89568D007B600FCFDCFD4 +:107F0000A601A0E0B1E02C9130E011968C91119780 +:107F100090E0982F8827822B932B1296FA010C0160 +:107F200087BEE89511244E5F5F4FF1E0A038BF0790 +:107F300051F7F601A7BEE89507B600FCFDCF97BE46 +:107F4000E89526C08437B1F42ED02DD0F82E2BD052 +:107F50003CD0F601EF2C8F010F5F1F4F84911BD097 +:107F6000EA94F801C1F70894C11CD11CFA94CF0C13 +:107F7000D11C0EC0853739F428D08EE10CD085E9AC +:107F80000AD08FE07ACF813511F488E018D01DD067 +:107F900080E101D065CF982F8091C00085FFFCCF94 +:107FA0009093C60008958091C00087FFFCCF809118 +:107FB000C00084FD01C0A8958091C6000895E0E648 +:107FC000F0E098E1908380830895EDDF803219F02E +:107FD00088E0F5DFFFCF84E1DECF1F93182FE3DFCA +:107FE0001150E9F7F2DF1F91089580E0E8DFEE27F6 +:047FF000FF270994CA +:027FFE00040479 +:00000001FF diff --git a/software/binaries/1.7t1/T12.ino.standard.hex b/software/binaries/1.7t1/T12.ino.standard.hex new file mode 100644 index 0000000..bb92c1f --- /dev/null +++ b/software/binaries/1.7t1/T12.ino.standard.hex @@ -0,0 +1,1592 @@ +:100000000C94330B0C945B0B0C945B0B0C942F2017 +:100010000C945B0B0C945B0B0C945B0B0C945B0BC8 +:100020000C945B0B0C945B0B0C945B0B0C945B0BB8 +:100030000C945B0B0C945B0B0C945B0B0C945B0BA8 +:100040000C94E51F0C945B0B0C94B31F0C948D1F48 +:100050000C945B0B0C9406210C945B0B0C945B0BC7 +:100060000C945B0B0C945B0B5361766500466C69DA +:1000700070004D61696E2053637265656E004F4B71 +:10008000004E4F00454E00434E00594553004E4F21 +:10009000004F4E004F464600496E666F730042693E +:1000A0006700504944004469726563740053617687 +:1000B0006500426F6F7374004F666600536C656530 +:1000C00070005361766500426F6F737400536C6506 +:1000D00065700044656661756C74005361766500F7 +:1000E0004164640044656C6574650052656E616DC1 +:1000F000650043616C696272617465004368616E9A +:1001000067650052657475726E004C616E67004CD5 +:100110004F5720566F6C0042757A7A6572005363B0 +:100120007265656E00436F6E74726F6C0054696D1A +:1001300065720054656D7000546970000000000025 +:10014000000F1DC20800054442080003845FBF0081 +:100150000FE44410000115451000054CC97F8009CB +:10016000244F900007C4C11000054D413F000554C5 +:1001700043810007C44D0200054441140005554168 +:10018000080007C881040000000000000000000013 +:100190000001083FFE001FFF810000004002000038 +:1001A00007FE0FF800040208080004020888000790 +:1001B000FE0888000402088800040208880007FE80 +:1001C0000888000402094800040202300007FE0407 +:1001D0000C000402180400000000000000000000F1 +:1001E0000001100080001FFF80800001103FFF0011 +:1001F000004004080007FC04080004440410000444 +:100200004402100004440220001FFF81200000402F +:1002100000C00000A00130000110020800060C0C14 +:1002200007001803B00200000000000000000000FA +:1002300000004000800000400080000FFF3FFF00F2 +:10024000084104080008410408000841041000089F +:10025000410210000FFF0220000841012000004071 +:1002600000C0000040013000004002080000400CC7 +:100270000700004030020000000000000000000005 +:10028000001FDF10200002120C20000224042000B6 +:10029000047F8020000424B820000FA4885000149C +:1002A000BF88500004A488500004A488480004BFFC +:1002B00088880004A48A880007A48C8400044489E8 +:1002C000070000818602000000000000000000001E +:1002D000000FF00491000440025200047F9054008B +:1002E000045088FF0007D08481000451008100047D +:1002F0004901FF0007CA0281000444048100044A46 +:100300001CFF0007EA0481000C510481000061C455 +:100310008500004080820000000000000000000016 +:100320000007FF802000008407FF00008404010014 +:10033000008404010000840401000FFFC7FF0000D7 +:10034000840400000084040000008405FF00008491 +:100350000501000104090100010409010002041162 +:10036000FF00040401010000000000000000000084 +:1003700000008204FF00004402010007FF902100FA +:100380000010102100001017FD0000101021000FB8 +:10039000FFD06100001010A10000281121000028EA +:1003A0001221000044142100008210A1000301D09A +:1003B00045000C009002000000000000000000005A +:1003C00000084410FE00042810920005FF2292004D +:1003D00000103C920000100892001CFE10920004D5 +:1003E0001020FE0004103E920005FF8092000410D1 +:1003F00000920005100E92000610309200041000CA +:10040000FE0000100082000000000000000000005C +:100410000007DF8840000A24104000114210FE004F +:10042000040022820002FF3D020008010A42000986 +:10043000F9103200090920120009F93E02000909E9 +:1004400000020009090E020009F930220008050027 +:100450001400080200080000000000000000000076 +:10046000000FC3F1E0000FE3F1F8000C70C19E0033 +:100470000C30C186000C30C183000C30C183000CED +:1004800060C183000C60C183000FC0C183000FC036 +:10049000C186000C00C186000C00C198000C03F15D +:1004A000F8000C03F1E00000000000000000000074 +:1004B0000000200820000FFF09FC000020080000B9 +:1004C00000203E880003FE08500002020BFE0003DD +:1004D000FE0C4000020218400003FE2BFE00020248 +:1004E00008480003FE0888000202085000020228A3 +:1004F00030001FFF91CC0000000000000104047CCC +:100500000000880444000FFF3F4400002004440022 +:1005100000200C440000200E44001FFF9544000002 +:10052000201444000050244400005004440000887B +:100530000445000104048500060385030018010436 +:1005400000000000000000000000000000000000AB +:1005500000047E21FC0004421104001F7E090400F7 +:10056000044221FC000542110400067E1104000C27 +:100570000005FC0015FF880000040813FE00044875 +:10058000325200044F125200044812520014A812B2 +:100590005200091F97FF000000000000000000004B +:1005A0000002103DFC000210250400041025040088 +:1005B00005FFBDFC000C102520000C382520001480 +:1005C0003825FE0004543D200004542510000492F8 +:1005D0002510000511A5090006113D450004102550 +:1005E0008300041001010000000000000000000072 +:1005F000001FC8102000124A0C20001AC904200055 +:1006000017480020001FFFB8200002080850001FF4 +:10061000C8085000020808500003C80848001E140B +:1006200008880001540A880015220C8400144389AC +:1006300007000081060200000000000002FE010029 +:100640000002823FFF00048202000004FE0200005C +:100650000C1004FC00141004080005FF8C100004AA +:1006600010141000043825FF000434041000045254 +:1006700004100004918410000510045000041004BC +:10068000200000000000000000000000000000004A +:100690000002030010001FDC3EFE00089002120062 +:1006A000051004FF001FDF84120002120CFE001F61 +:1006B000D2021000021222FE000A921410000A5206 +:1006C00014100012220DFF0002220810000A42142A +:1006D0001000040223FF00000000000000000000E2 +:1006E000000F78BC20000948A45000094AA8500017 +:1006F000094AA88800094AB104001FFEAAFB0009A4 +:100700004AA42000094AA42000094AA7FE00094A79 +:10071000B420000948A924000B48A22200088AA49A +:10072000A20011192040000000000000000000009D +:10073000000020008000005001FC0000880104003F +:10074000010403080006FB0490000800C0600007D5 +:10075000DF018000045106000004511BFE0004511B +:1007600002020007D9020200045602020000100330 +:10077000FE00001002020000000000000000000067 +:10078000000208209000027F9890001F8009FF005F +:10079000022201100006218B100007628DFE000A64 +:1007A000A20910000A14111000121431FE000208F0 +:1007B00011100002141110000222111000024391C6 +:1007C000FF00028111000000000000000000000096 +:1007D00000100700000008F83FFE0004802002001F +:1007E000008020020000BE23E2001C8222220004BE +:1007F000A4222200049422220004882222000494CD +:1008000023E200052220020005422002000A003FE8 +:10081000FE0011FFA00200000000000009FF0040E0 +:100820000004203FFF00042000000000FE00000044 +:100830001C420FFC00044200000007FF800000047F +:10084000000FFC0004FF000000048100000005818F +:100850000FFC00068108040004FF08040000810F5B +:10086000FC0000000000000000000000000000008C +:100870000001000FFE00010008200003FF08200017 +:100880000201082000042208200008200BFE0010AE +:10089000200820000050082800005008240000888C +:1008A000082200008810200001041020000203A785 +:1008B000FF000C010000000000000000000000002C +:1008C0000000400080001FFF9FFC0000400410005B +:1008D0000FFF02200000003FFF000FFE0000000895 +:1008E000420FF80008420808000FFE08080008023E +:1008F0000FF8000800080800080008080008000FAA +:10090000F8001000080800000000000000000000CF +:100910000007FE0FF80004020000000402000000BF +:1009200007FE00000004023FFE00040200800007F2 +:10093000FE008000009004900008910C880006934F +:100940001086000294208200009000800000900237 +:1009500080001FFF81000000000000000000000078 +:1009600000041012020005FF9FD200050092120041 +:100970001E28A2120004443FF20004820212000664 +:10098000000212000CFE1FD20014101252000410BC +:100990001242000410134200041012820015FF825C +:1009A0000A0008000204000000000000000000002F +:1009B00000002000000000203E04001FFFA20400F1 +:1009C0001000A2FF0000012204000FFE220400001C +:1009D000403E440000402224000440222400047CC5 +:1009E00022040004402204000A403E040009402280 +:1009F000240010FF80140000000008000000000028 +:100A00000010FE08200008820BFF0004820A01008B +:100A100010FE3C5100088208880008820904000288 +:100A2000FE0C0000040019FC0009FF282000192911 +:100A30000820000929082000092908200009292B7D +:100A4000FF000BFF9000000000000000000000000D +:100A5000001F7F90F80001080888000A100888002D +:100A6000047F0107001FC13A0000054909FC00048A +:100A700049088400044908880004490848000449DA +:100A800008500004490A200004160C58001421895B +:100A9000870008C0860200000000000080040000FB +:100AA0003FF02430219027902730207027F023300A +:100AB00030703FF000008004800400003FF03830C8 +:100AC00033103F90381033902790261030903FF02D +:100AD00000008004800400003FF0387030302310A4 +:100AE000279020102010279027903FF000008004CE +:100AF000800400003FF03CF03CF020102490249053 +:100B000020103CF03CF03FF0000080048004000026 +:100B10003FF037B023103030387038703030231049 +:100B200037B03FF000008004FCF4F860E044C08C73 +:100B3000C11CC22CC44CC88CD10CA204C4048FFCB0 +:100B4000187CBCFC8000BFF81FF8B0281FF8B40860 +:100B50001FF8B1081FF8B048BFF8B288BFF880008E +:100B60008000BFF81FF8B0081808B9E819B8B838FD +:100B70001838B9B8B9F8B0F8BFF8800015543FF884 +:100B800015503FF01550387010203104138C22A8F6 +:100B900017FC2AA80000000015543FFC15543FFC28 +:100BA00015543C0414043CFC14543CFC005400A8B0 +:100BB00000000000800400003FF03CF034B02490BE +:100BC000249027902310303038703FF000008004CC +:100BD000FF7CFE7CFCECE8DCC84C984C88240820A8 +:100BE00000000000000000008004E01CF3FCE7FCB3 +:100BF000CE0C8E1C9F9C1F3C1F0C0E0C0FFC87F80C +:100C000081E4C00CE01CF87C00045808580858081F +:100C100040087FF860185FE85B685FE85B681CE885 +:100C20005FE80000800400003FF03CF03CF03CF046 +:100C3000201020103CF03CF03CF03FF0000080041D +:100C4000F87CF7BC00007FF80000BFF4AB54AB5455 +:100C5000AB54AB54AB54AB54BFF4C00CF03CCE0C13 +:100C6000BF04B30473007F007E007C007C007C60C6 +:100C7000BC64BE04CF0CF03C81DC559C29045500BB +:100C8000299055D003FCFF002E0026700250827080 +:100C9000E600EE04800C001C3FF43FE03FC4378CBC +:100CA0002318303038703CF03FF03FF000008004F3 +:100CB000F03CCE4CBC34B8141880108042306078C0 +:100CC00060F844C08004B884CFCCF03CF87CE01CD1 +:100CD000C00CCFCCCFCCCFCCCFCCCFCCCFCCCFCC0B +:100CE000C84CCFCCC00CE01CFCFCF87CE01CC00C59 +:100CF000C00CC00CC00CC00CC00C80048004FFFCF5 +:100D0000F87CFCFC800400002000100008001000AB +:100D10002700000000000000000000000000800428 +:100D2000C3FC18001800C3FCFFFCFF0C006000604F +:100D3000FF0CFFFCF0FC06000600F0FC8FC4102046 +:100D400020104CC89FE43DF03DF01DE03EF03F70A8 +:100D50009FE48CC400003030F87CF33CF4BCF6BC5B +:100D6000F4BCF6BCF4BCE49CC84CD02CD02CC84CD1 +:100D7000E79CF03C88240820383038303830383050 +:100D80003830383039303BB03FF03FF0000080045D +:100D90001FE03FF07038601860186018FFFCFCFC22 +:100DA000FCFCFCFCF87CF87CFCFC7FF81E10333863 +:100DB0002D7C25382D3825382D386D80DEC0BF407C +:100DC000BF40DEC061803F007FF0FFE0C008C01C74 +:100DD000C038C870DCE4CFCCC78CC30CC00CC00CCE +:100DE000FFFC7FF8000006000C0018F838F03030E7 +:100DF0007060707878F878003C023F0C1FF80FF0B4 +:100E000003C000007FF8FFFCC00CC30CCB4CDB6CB4 +:100E1000DB6CD86CDCECCFCCC78CC00CFFFC7FF853 +:100E2000030007800FC00CC01CE01CE03CF03CF04D +:100E30007FF87FF8FCFCFCFCFFFC7FF8114082008F +:100E400021208FE023FC82004A23E200FE209FF055 +:100E500013F880802220C0804221BFF0FBFA8880F6 +:100E600002208480022084801A208080E3FE828019 +:100E7000020101000F421FC078411040084090401D +:100E800008421FC008411040FFFD104008405FC0ED +:100E90000840800008413FE00843252010412520FC +:100EA000104125202041252040417FF07FF84880D7 +:100EB000020049000201FFF00201001002027F203F +:100EC0002200410023F07F00220008002200FF8062 +:100ED000220088802200888022008A8022008900E7 +:100EE000FFFC080023F21FC022111040FBF09040CD +:100EF00022121FC02A11104033F1104060005FC061 +:100F0000AFFC800020413FE02243252022792520AC +:100F100022412520A541252048FD7FF01083DFC018 +:100F200010825040208250402FFFDFC0608252006C +:100F300061C25200A1C25FE022A3D20022A25100EE +:100F400024925100288E5090308BD45020825830FB +:100F500020801010104047C017FC44402003F4408C +:100F600023F844406208C440A3F8E4402001544000 +:100F70002FFD44402806444023F84440204044507C +:100F800020404850214050302080400020921FC017 +:100F90003DF990402090904040901FC07BFF0000A2 +:100FA000A0013FE021F90200FD09020021097FF0C4 +:100FB00021F90500210945002909888031F91070BF +:100FC0002108202025004300202070F8380133013B +:100FD0002D0125011E0117010F010A010301FC006B +:100FE000F200EB00E400E000DB00D300CD00C7001E +:100FF000C200BC00B800B200AD00A600A2009E0076 +:101000009800940091008E008A008700840081007F +:101010007E0072006D0068003E0053656C6563746D +:10102000205469700000000000003E5B4F5B3E3EB4 +:101030006B4F6B3E1C3E7C3E1C183C7E3C181C5784 +:101040007D571C1C5E7F5E1C00183C1800FFE7C328 +:10105000E7FF0018241800FFE7DBE7FF30483A06F7 +:101060000E2629792926407F050507407F05253F63 +:101070005A3CE73C5A7F3E1C1C08081C1C3E7F144F +:10108000227F22145F5F005F5F06097F017F006699 +:1010900089956A606060606094A2FFA29408047EF3 +:1010A000040810207E201008082A1C08081C2A08A2 +:1010B000081E101010100C1E0C1E0C30383E38305C +:1010C000060E3E0E06000000000000005F0000005B +:1010D00007000700147F147F14242A7F2A12231389 +:1010E00008646236495620500008070300001C229D +:1010F00041000041221C002A1C7F1C2A08083E08CF +:1011000008008070300008080808080000606000CF +:1011100020100804023E5149453E00427F400072C3 +:10112000494949462141494D331814127F1027453A +:101130004545393C4A494931412111090736494958 +:101140004936464949291E00001400000040340079 +:10115000000008142241141414141400412214082D +:1011600002015909063E415D594E7C1211127C7FE5 +:10117000494949363E414141227F4141413E7F49F3 +:101180004949417F090909013E414151737F0808DE +:10119000087F00417F41002040413F017F08142229 +:1011A000417F404040407F021C027F7F0408107F47 +:1011B0003E4141413E7F090909063E4151215E7F82 +:1011C00009192946264949493203017F01033F4055 +:1011D00040403F1F2040201F3F4038403F631408DD +:1011E000146303047804036159494D43007F41416E +:1011F000410204081020004141417F040201020421 +:101200004040404040000307080020545478407F8D +:10121000284444383844444428384444287F3854C7 +:1012200054541800087E090218A4A49C787F08046E +:10123000047800447D40002040403D007F10284459 +:101240000000417F40007C047804787C0804047826 +:101250003844444438FC1824241818242418FC7CEE +:1012600008040408485454542404043F44243C40D3 +:1012700040207C1C2040201C3C4030403C44281036 +:1012800028444C9090907C4464544C44000836416F +:10129000000000770000004136080002010204024D +:1012A0003C2623263C1EA1A161123A4040207A38F8 +:1012B000545455592155557941215454784121555B +:1012C00054784020545579400C1E527212395555AD +:1012D0005559395454545939555454580000457C83 +:1012E000410002457D420001457C40F0292429F05F +:1012F000F0282528F07C545545002054547C547C1B +:101300000A097F4932494949323248484832324A0B +:101310004848303A4141217A3A42402078009DA025 +:10132000A07D39444444393D4040403D3C24FF24A5 +:1013300024487E4943662B2FFC2F2BFF0929F620DA +:10134000C0887E090320545479410000447D413017 +:1013500048484A32384040227A007A0A0A727D0DA3 +:1013600019317D2629292F28262929292630484D5B +:101370004020380808080808080808382F10C8ACAA +:10138000BA2F102834FA00007B000008142A142217 +:1013900022142A14089500220095AA005500AAAA32 +:1013A00055AA55AA000000FF00101010FF001414E9 +:1013B00014FF001010FF00FF1010F010F0141414B0 +:1013C000FC001414F700FF0000FF00FF1414F404E5 +:1013D000FC141417101F10101F101F1414141F00DA +:1013E000101010F0000000001F101010101F10103F +:1013F0001010F010000000FF10101010101010104E +:1014000010FF10000000FF140000FF00FF00001F8D +:1014100010170000FC04F414141710171414F4042B +:10142000F40000FF00F714141414141414F700F758 +:10143000141414171410101F101F141414F4141083 +:1014400010F010F000001F101F0000001F1400001B +:1014500000FC140000F010F01010FF10FF14141422 +:10146000FF141010101F00000000F010FFFFFFFF1E +:10147000FFF0F0F0F0F0FFFFFF0000000000FFFFC2 +:101480000F0F0F0F0F38444438447C2A2A3E147E35 +:1014900002020606027E027E026355494163384419 +:1014A000443C04407E201E2006027E020299A5E7ED +:1014B000A5991C2A492A1C4C7201724C304A4D4D88 +:1014C000303048784830BC625A463D3E4949490070 +:1014D0007E0101017E2A2A2A2A2A44445F4444408C +:1014E000514A444040444A51400000FF0103E0801B +:1014F000FF000008086B6B083612362436060F0909 +:101500000F06000018180000001010003040FF0106 +:1015100001001F01011E00191D1712003C3C3C3C3C +:10152000000000000000000000240027002A000046 +:10153000000000250028002B0000000000230026EA +:101540000029000404040404040404020202020248 +:101550000203030303030301020408102040800177 +:101560000204081020010204081020AED5F0A83FA4 +:10157000D300408D14A1C8DA1281CFD9F1DB40A489 +:10158000A6AF200021007F220007506C65617365C3 +:101590002077616974004144433A200074656D709E +:1015A0003A2000536574206D65617375726564003F +:1015B000537465703A20003030300076312E377425 +:1015C00031005600560043000FE01FC01FC03F808F +:1015D0003FF87FF07FE007C007800F000E001C007F +:1015E0001800100014A03FF07FF8E01C6E18EC1CEF +:1015F00068186018E01C6058E01C7FF83FF014A0E9 +:101600004552524F5200484F4C4400484541540007 +:10161000574F524B5900424F4F535400534C45457E +:1016200050004F46460000003BEC7BEE63E663E66D +:1016300063E663E663E663E6636662266006600669 +:101640007FFE3FFC000001020408102040800000E3 +:101650000008000201000003040700000000000071 +:10166000000007216C2B11241FBECFEFD8E0DEBF96 +:10167000CDBF12E0A0E0B1E0E4EEF1E602C00590DB +:101680000D92A237B107D9F727E0A2E7B2E001C077 +:101690001D92A53CB207E1F71BE0C2E3DBE004C00A +:1016A0002197FE010E94E82EC133D107C9F70E949D +:1016B000CB210C94E5300C9400004F925F926F9216 +:1016C0007F928F929F92AF92BF92CF92DF92EF92D2 +:1016D000FF920F931F93CF93DF9300D000D0CDB72D +:1016E000DEB74B015C0129013A016701780120E076 +:1016F00030E0A9010E94ED2B87FDA6C020E030E07C +:10170000A901C301B2010E94ED2B87FD9DC020E01D +:1017100030E0A901C801B6010E94ED2B87FD94C0FD +:1017200081E020918507309186072130310509F04D +:1017300080E08093A60780926B0790926C07A0923E +:101740006D07B0926E0740926F07509270076092DB +:10175000710770927207C0927307D0927407E0927B +:101760007507F09276076091990770919A078091BA +:101770009B0790919C070E94F22B20E030E04AE703 +:1017800054E40E94262E69837A838B839C83809203 +:10179000770790927807A0927907B0927A079B0119 +:1017A000AC01C301B2010E94532C2B013C014092B9 +:1017B0007B0750927C0760927D0770927E0729819B +:1017C0003A814B815C81C701B6010E94262E6B01D4 +:1017D0007C01C0927F07D0928007E0928107F0924F +:1017E00082078091830790918407019769F5A5018D +:1017F000940160E070E0CB010E94B92D60937707FF +:10180000709378078093790790937A07A3019201E8 +:1018100060E070E0CB010E94B92D60937B0770936C +:101820007C0780937D0790937E07A701960160E077 +:1018300070E0CB010E94B92D60937F077093800701 +:1018400080938107909382070F900F900F900F90D5 +:10185000DF91CF911F910F91FF90EF90DF90CF908C +:10186000BF90AF909F908F907F906F905F904F90C0 +:10187000089580389105B0F46034710598F4E6E479 +:10188000F6E190E1969FD001A0781124A80F67702F +:10189000E60FF11D9491AE53BD4F442321F08C917E +:1018A000982B9C93089590958C919823FACFDF9272 +:1018B000EF92FF920F931F93CF93DF937C01D22E71 +:1018C0008B01040F111DEB0177FF02C0D0E0C0E0D7 +:1018D000C8010134110514F080E490E0C817D9075D +:1018E0003CF44D2DBE01C7010E94390C2196F0CF6A +:1018F000DF91CF911F910F91FF90EF90DF900895AE +:10190000CF92DF92EF92FF920F931F93CF93DF93CB +:101910006B01122FEC017C01E40EF11CCE15DF05EA +:1019200044F4202F412FB601CE010E94570C21967E +:10193000F5CFDF91CF911F910F91FF90EF90DF9046 +:10194000CF9008952F923F924F925F926F927F9225 +:101950008F929F92AF92BF92CF92DF92EF92FF92BF +:101960000F931F93CF93DF9300D01F92CDB7DEB7B5 +:10197000C22ED12C9601280F391F37FD4FC0803859 +:1019800091050CF04BC0E9824A017B013C01402EDD +:10199000512C160127E0220E311C93E03594279438 +:1019A0009A95E1F78B01B12CA12C1B821A82EA8156 +:1019B000FB8183E0F595E7958A95E1F7EA0DFB1D3C +:1019C000E80DF91DE4918A819B818770992720E8B1 +:1019D00030E002C0359527958A95E2F7C901F0E01D +:1019E000E223F923EF2B41F04981B8018A819B81E1 +:1019F000860D971D0E94390C8A819B8101969B83DD +:101A00008A838C159D059CF2A20CB31C0F5F1F4F9F +:101A1000C8018E199F09841595053CF20F900F900F +:101A20000F90DF91CF911F910F91FF90EF90DF907A +:101A3000CF90BF90AF909F908F907F906F905F906E +:101A40004F903F902F9008950F931F93CF93DF9364 +:101A5000EC018B0140E001960E94390C40E0B80196 +:101A6000CE0101970E94390CB8016F5F7F4F40E0B3 +:101A7000CE010E94390CB8016150710940E0CE01DD +:101A80000E94390C40E0B801CE01DF91CF911F9147 +:101A90000F910C94390C80E0E2ECF2E081118FEFB1 +:101AA000002481938193819381930394D1F70895C6 +:101AB0000895AF92BF92CF92DF92EF92FF920F9371 +:101AC0001F93CF93DF936C017B018B01040F151FD4 +:101AD000EB015E01AE18BF08C017D10759F069913C +:101AE000D601ED91FC910190F081E02DC6010995A0 +:101AF000892B79F7C501DF91CF911F910F91FF904D +:101B0000EF90DF90CF90BF90AF900895FC01538D80 +:101B1000448D252F30E0842F90E0821B930B5417C7 +:101B200010F0CF96089501970895FC01918D828D54 +:101B3000981761F0A28DAE0FBF2FB11D5D968C91ED +:101B4000928D9F5F9F73928F90E008958FEF9FEF2C +:101B50000895FC01918D828D981731F0828DE80FE8 +:101B6000F11D858D90E008958FEF9FEF0895FC01A2 +:101B7000918D228D892F90E0805C9F4F821B91096F +:101B80008F739927089582EC96E00E94B70D21E0AB +:101B9000892B09F420E0822F089580E090E0892BC2 +:101BA00029F00E94C30D81110C9400000895FC01DE +:101BB000A48DA80FB92FB11DA35ABF4F2C91848DAE +:101BC00090E001968F739927848FA689B7892C930B +:101BD000A089B1898C91837080648C93938D848D5E +:101BE000981306C00288F389E02D80818F7D808361 +:101BF0000895EF92FF920F931F93CF93DF93EC0121 +:101C000081E0888F9B8D8C8D98131AC0E889F989A3 +:101C1000808185FF15C09FB7F894EE89FF896083A6 +:101C2000E889F98980818370806480839FBF81E027 +:101C300090E0DF91CF911F910F91FF90EF90089569 +:101C4000F62E0B8D10E00F5F1F4F0F731127E02E44 +:101C50008C8D8E110CC00FB607FCFACFE889F9897C +:101C6000808185FFF5CFCE010E94D70DF1CFEB8D9E +:101C7000EC0FFD2FF11DE35AFF4FF0829FB7F89450 +:101C80000B8FEA89FB8980818062CFCFCF93DF936E +:101C9000EC01888D8823B9F0AA89BB89E889F98984 +:101CA0008C9185FD03C0808186FD0DC00FB607FCB9 +:101CB000F7CF8C9185FFF2CF808185FFEDCFCE01EC +:101CC0000E94D70DE9CFDF91CF910895833081F045 +:101CD00028F4813099F08230A9F008958730A9F076 +:101CE0008830C9F08430B1F4809180008F7D03C0CA +:101CF000809180008F7780938000089584B58F77DE +:101D000084BD089584B58F7DFBCF8091B0008F771F +:101D10008093B00008958091B0008F7DF9CFCF936C +:101D2000DF93282F30E0F901E25BF94E8491F9014D +:101D3000E95AFA4ED491F901ED5BFA4EC491CC23E5 +:101D4000A1F081110E94660EEC2FF0E0EE0FFF1F54 +:101D5000E75CFA4EA591B491EC91ED2381E090E01F +:101D600009F480E0DF91CF91089580E090E0FACF10 +:101D70001F93CF93DF93282F30E0F901E25BF94EF8 +:101D80008491F901E95AFA4ED491F901ED5BFA4ECA +:101D9000C491CC23A9F0162F81110E94660EEC2F5E +:101DA000F0E0EE0FFF1FE15DFA4EA591B4918FB701 +:101DB000F894EC91111108C0D095DE23DC938FBF0D +:101DC000DF91CF911F910895DE2BF8CFCF93DF9352 +:101DD00090E0FC01E95AFA4E24918D5B9A4EFC0189 +:101DE00084918823C9F090E0880F991FFC01EB5D76 +:101DF000FA4EA591B491FC01E15DFA4EC591D491E2 +:101E000061110DC09FB7F8948C91209582238C931B +:101E10008881282328839FBFDF91CF910895623066 +:101E200051F49FB7F8943C91822F809583238C9333 +:101E3000E8812E2BEFCF8FB7F894EC912E2B2C93BB +:101E40008FBFEACFCF93DF93EC0161E089E00E947E +:101E5000E60E209731F460E089E0DF91CF910C9499 +:101E6000B80ECF3FD10511F461E0F6CFE7E5F6E11A +:101E7000E491E33029F140F4E130B1F0E230D9F0FF +:101E8000C038D1058CF7E7CFE73021F1E83051F1C8 +:101E9000E430B1F780918000806280938000D0931D +:101EA0008B00C0938A0004C084B5806884BDC7BD20 +:101EB000DF91CF91089584B5806284BDC8BDF8CF0D +:101EC00080918000806880938000D0938900C093C7 +:101ED0008800EECF8091B00080688093B000C093FE +:101EE000B300E6CF8091B00080628093B000C093D1 +:101EF000B400DECF3FB7F89480918B0290918C02B2 +:101F0000A0918D02B0918E0226B5A89B05C02F3FEF +:101F100019F00196A11DB11D3FBFBA2FA92F982F0F +:101F20008827BC01CD01620F711D811D911D42E00A +:101F3000660F771F881F991F4A95D1F708958F92D2 +:101F40009F92AF92BF92CF92DF92EF92FF924B019E +:101F50005C010E947A0F6B017C010E947A0F6C1960 +:101F60007D098E099F09683E734081059105A8F39C +:101F700021E0821A9108A108B10888EEC80E83E01A +:101F8000D81EE11CF11C81149104A104B10429F7AD +:101F9000FF90EF90DF90CF90BF90AF909F908F9089 +:101FA00008952FB7F894609187027091880280910C +:101FB000890290918A022FBF089584E98093BC0022 +:101FC0008091BC0084FDFCCF08958093BB0084E821 +:101FD0008093BC008091BC0087FFFCCF089584EA09 +:101FE0008093BC008091BC0087FFFCCF88E70C94F5 +:101FF000E50F0E94EF0F80E48093BB0084E880939C +:10200000BC00E2ECF2E09091BC0097FFFCCF919114 +:102010009093BB008093BC0096E0E23CF90799F7EF +:102020008091BC0087FFFCCF0C94DD0FCF93C82FAD +:102030000E94EF0F80E00E94E50F8C2F0E94E50FB9 +:10204000CF910C94DD0F480F592F511D4138510588 +:1020500014F040E850E0481BFB0177FD379633E071 +:10206000F595E7953A95E1F7F695FE2FEE27F7956A +:10207000E795E80FF91FEE53FD4F6770772781E072 +:1020800090E001C0880F6A95EAF7382F213041F4BB +:10209000415078F08191DF011197832B8C93F8CF19 +:1020A0008095415030F09191DF01119798239C93D6 +:1020B000F8CF0895CF92DF92EF92FF920F93CF93D4 +:1020C000DF936C017B01C42FD22F202F0E9423109D +:1020D000B7016D0F711D61507109603471052CF4E9 +:1020E000202F4C2FC6010E942310202F4D2FB70107 +:1020F000C6010E94570CC6018C0F911D202F4D2F39 +:10210000B7010197DF91CF910F91FF90EF90DF9092 +:10211000CF900C94570C2F923F924F925F926F92F8 +:102120007F928F929F92AF92BF92CF92DF92EF9267 +:10213000FF920F931F93CF93DF93CDB7DEB72A970C +:102140000FB6F894DEBF0FBECDBF9A8389836A3085 +:1021500061F5DC0152968C91B8E08B9F90011124BF +:10216000E981FA8186859785820F931F97878687F5 +:102170001586148681E090E02A960FB6F894DEBFAB +:102180000FBECDBFDF91CF911F910F91FF90EF90C8 +:10219000DF90CF90BF90AF909F908F907F906F9087 +:1021A0005F904F903F902F9008956D3019F32981E3 +:1021B0003A813A872987D9011C96AD90BC90B0E846 +:1021C000AB16B1040CF07BC0F901C684D784F0E4EF +:1021D000CF16D1040CF073C0D90152966C9052976F +:1021E00045E09501649E200D311D11241216130641 +:1021F0000CF065C0262C312C910153E0220F331FC7 +:102200005A95E1F72C0D3D1D121613060CF057C020 +:102210005196BC91BB83E985FA85F089FC83649F64 +:10222000B00111249B012B5D3F4E3A832983712C11 +:10223000E981FA818491F5E07F1201C080E04601D6 +:1022400038E0532E282F30E03E832D834C8080FFD2 +:102250004B80411004C03B818C813817E1F010E0C5 +:1022600000E00615C0F4D501A00FB11FB887AF83F9 +:10227000F12CE12CE61460F4B701680D791D442DB2 +:102280008F8198850E94390CBFEFEB1AFB0AF2CFC1 +:102290000F5F1F4FE6CF8D819E81959587955A944C +:1022A000820C931C5110CECF7394E981FA81319640 +:1022B000FA83E983A20CB31CF6E07F12B9CFA9859B +:1022C000BA8552962C915297422F50E01C968D91D0 +:1022D0009C91B6E02B9F800D911D1124E985FA8514 +:1022E000958784872389222309F444CF6AEF640306 +:1022F0009001659F300D112420583F4F2817390752 +:102300000CF038CFDF010190F081E02D0190F081D9 +:10231000E02D6AE0CD0109952DCF0F931F93CF9348 +:10232000DF938C01D0E0C0E0F801EC0FFD1F649159 +:10233000662341F08DEA97E00E948B10892B11F003 +:102340002196F2CFCE01DF91CF911F910F91089589 +:10235000682F8DEA97E00C948B1090E080E0089550 +:1023600080917A00806980937A008EE480937C006B +:1023700061E070E080E090E00E949F0F83B7817F72 +:10238000826083BF80E130E020E093B7916093BF2B +:10239000889593B79E7F93BF90917A0096FDFCCF6E +:1023A0004091780050917900240F351F815069F7D2 +:1023B00080917A008F7780937A0084E03695279514 +:1023C0008A95E1F750E040E064EB7BE281E190E048 +:1023D0000E94272DC901089588EC80937C0080918C +:1023E0007A00806880937A0065E070E080E090E099 +:1023F0000E949F0F80917A00806480937A00809180 +:102400007A0086FDFCCF60917800709179006A5463 +:10241000714090E080E00E94F22B26EF38E24CE918 +:102420005FE30E94262E089590917A009069909320 +:102430007A008E50806480937C0083B7817F8260B5 +:1024400083BF20E290E080E033B7316033BF8895EE +:1024500033B73E7F33BF30917A0036FDFCCF4091D9 +:10246000780050917900840F951F215069F72091D1 +:102470007A002F7720937A0025E0969587952A9504 +:10248000E1F708958FE00E941412A0919202B0919A +:1024900093029C010E94AA2D0E94F42B28E539E7A3 +:1024A00043E353E40E94262E0E949F2ECB01089501 +:1024B0002091A00230E0EEE1F2E090E080E0AF0198 +:1024C0004E5152404217530724F44191840F911DFD +:1024D000F6CF089580919802882369F086E00E94E3 +:1024E0008F0E892B41F06AE070E080E090E00E945E +:1024F0009F0F1092980208950F931F93CF9380918E +:102500004801882399F0CFEF0FEE11E061E085E0FC +:102510000E94B80EC8010197F1F760E085E00E94C3 +:10252000B80EC8010197F1F7C15081F7CF911F9103 +:102530000F9108952F923F924F925F926F927F92E8 +:102540008F929F92AF92BF92CF92DF92EF92FF92C3 +:102550000F931F93CF93DF9310E000E0D0E0C0E033 +:102560003EE3E32EF12C40ECC42ED12CAA24A394FC +:10257000B12C60E2662E712C70E4272E312C4C2E8B +:1025800086E00E948F0E21E0892B09F020E0209345 +:102590009802F0929F02E0929E02D0929D02C09219 +:1025A0009C02B0929B02A0929A0282E890E09093E3 +:1025B000AB028093AA028091AA029091AB029595FA +:1025C0008795582E9FE1591243C0F0929F02E092E6 +:1025D0009E02D0929D02C0929C02B0929B02A09259 +:1025E0009A02EEEBF0E0F093AB02E093AA029FE5D3 +:1025F000592E0E944B0D82E08093BF071093BA07BB +:102600000093B907E0E3F0E0F093BC07E093BB0769 +:102610008EE50E94A8111092BA071092B907709225 +:10262000BC076092BB07912C812C841438F58091F3 +:10263000C102F40196E0989FE00DF11D1124E15BC9 +:10264000FE4F80810E94A811EFEF8E1A9E0AEDCFF7 +:10265000F0E65F12CECFF0929F02E0929E02D092FF +:102660009D02C0929C02B0929B02A0929A0230926C +:10267000AB022092AA0280E2582EBBCF1093BA0779 +:102680000093B9077092BC076092BB07852D0E942A +:10269000A8110E946A120E94F90F86E00E948F0E14 +:1026A000892B09F088CF80919802811184CF809086 +:1026B000C102F6E08F9E40011124C401815B9E4F50 +:1026C0004C01FC01EC0FFD1F50820E947C126AE05D +:1026D00070E080E090E00E949F0F2196005F1F4F06 +:1026E000C530D10509F04BCFF4011582DF91CF91B0 +:1026F0001F910F91FF90EF90DF90CF90BF90AF9020 +:102700009F908F907F906F905F904F903F902F9011 +:1027100008953F924F925F926F927F928F929F9215 +:10272000AF92BF92CF92DF92EF92FF920F931F93DF +:10273000CF93DF93CDB7DEB72E970FB6F894DEBFF9 +:102740000FBECDBF8091BE02882309F4A5C11092AF +:102750005F071092600710926107109262078090E5 +:102760005F0790906007A0906107B0906207C090EB +:10277000B302D090B402E090B502F090B602A70187 +:102780009601C501B4010E94B92D2B013C0120E046 +:1027900030E0A9010E94CE2E18160CF0A0C1C30192 +:1027A000B2010E949F2E80914901882309F4B8C18B +:1027B000C0926707D0926807E0926907F0926A07B3 +:1027C000E12CF12C00EA10E420E030E040E450E499 +:1027D0006E31710540F0E12CF12C00E81FE320E0A0 +:1027E00030E040E05FE360E070E080E391E40E946D +:1027F0005D0B8091A507882309F42AC10E94D10F9F +:102800006D837E838F83988780918D0790918E074B +:10281000A0918F07B09190074D815E816F8178857F +:10282000481B590B6A0B7B0B8091990790919A0773 +:10283000A0919B07B0919C07481759076A077B072F +:1028400008F406C1E0918707F091880780819181A3 +:10285000A281B38189839A83AB83BC83E0918B0788 +:10286000F0918C079C01AD0160817181828193811F +:102870000E94B92D4B015C0120919507309196077C +:10288000409197075091980769817A818B819C814B +:102890000E94B92D6B017C0120917B0730917C0750 +:1028A00040917D0750917E07C501B4010E94532CD1 +:1028B000209191073091920740919307509194078E +:1028C0000E94BA2D2B013C01409291075092920731 +:1028D00060929307709294073090A60731101AC047 +:1028E00020917707309178074091790750917A07C6 +:1028F000C701B6010E94532C9B01AC01C301B20178 +:102900000E94B92D6093910770939207809393076B +:10291000909394074090910750909207609093078E +:10292000709094071091A1079091A2079E87A091A3 +:10293000A307AD870091A407212F392F4A2F502FCD +:10294000C301B2010E94CE2E18160CF0CCC0812F0C +:102950009E85AD85B02F8093910790939207A093A9 +:102960009307B0939407332009F4D6C020917707DA +:10297000309178074091790750917A07C501B401E9 +:102980000E94532C4B015C0120917F0730918007FE +:102990004091810750918207C701B6010E94532CD4 +:1029A0009B01AC0160919107709192078091930710 +:1029B000909194070E94B92DA50194010E94BA2D0F +:1029C0006B017C019B01AC01612F7E858D85902F71 +:1029D0000E94ED2B87FD18C010919D0790919E07D6 +:1029E0009E87A0919F07AD870091A007212F392FC7 +:1029F0004A2F502FB601C7010E94ED2B87FD04C05E +:102A00001C2DDE86ED860F2DE0918907F0918A0757 +:102A1000812F9E85AD85B02F80839183A283B38360 +:102A200089819A81AB81BC818093950790939607A9 +:102A3000A0939707B09398078D819E81AF81B88549 +:102A400080938D0790938E07A0938F07B093900784 +:102A500060916307709164078091650790916607A4 +:102A60000E94982ECB012E960FB6F894DEBF0FBEB3 +:102A7000CDBFDF91CF911F910F91FF90EF90DF902D +:102A8000CF90BF90AF909F908F907F906F905F900E +:102A90004F903F900C94220F8091BD0260914401B1 +:102AA0007091450181110EC08091B1029091B202E6 +:102AB0002091BC02BC01222329F060914301680FE0 +:102AC000792F711D90E080E00E94F22B60935F07E8 +:102AD00070936007809361079093620740CEC301B3 +:102AE000B20190585ECE80919D0790919E07A09173 +:102AF0009F07B091A00789879A87AB87BC879C0105 +:102B0000AD01C301B2010E94ED2B87FF2CCF898557 +:102B10009A85AB85BC851FCF812C912C540134CF75 +:102B200020E030E040E05FE3C701B6010E94BA2D2B +:102B30009B01AC01C501B4010E94CE2E18164CF4C5 +:102B4000109263071092640710926507109266074F +:102B50007FCF80E090E0AFE7B3E48093630790938A +:102B60006407A0936507B093660772CF4F925F9298 +:102B70006F927F928F929F92AF92BF92CF92DF928D +:102B8000EF92FF92CF93DF93809094029090950202 +:102B9000A0909602B0909702C091C102D0E0C5010A +:102BA000B4010E94982E6B017C0120E030E048E4E3 +:102BB00053E4C501B4010E94ED2B93E0CC0FDD1F5F +:102BC0009A95E1F7CE5FDE4F87FF31C028813981CA +:102BD00050E040E02551310941095109C701B601D2 +:102BE0000E94D82E28EC30E040E050E00E94272DD3 +:102BF000CA01B9016B5E7F4F8F4F9F4F0E94F42B2C +:102C00006093B3027093B4028093B5029093B602BE +:102C1000DF91CF91FF90EF90DF90CF90BF90AF907A +:102C20009F908F907F906F905F904F9008954A8013 +:102C30005B80712C612C20E030E04CE853E4C5014E +:102C4000B4010E94ED2B87FF1FC088809980B12CB2 +:102C5000A12CA7019601285C310941095109C30142 +:102C6000B201681979098A099B090E94D82E20E5CA +:102C700030E040E050E00E94272DCA01B901680D04 +:102C8000791D8A1D9B1DBACF2C813D8150E040E00B +:102C90002419350946095709C701B6016851714021 +:102CA000810991090E94D82E20E530E040E050E0F3 +:102CB0000E94272DCA01B901640D751D861D971D3F +:102CC0009DCFFC0101900020E9F73197AF01481B2F +:102CD000590BBC018DEA97E00C94590D8F929F928D +:102CE000AF92BF920F931F93CF93DF93CDB7DEB711 +:102CF000A1970FB6F894DEBF0FBECDBF19A2423028 +:102D000008F44AE08E010F5D1F4F842E912CB12CE8 +:102D1000A12CA50194010E94882DE62FB901CA01BA +:102D2000EA30F4F4E05DD801EE938D01232B242BDF +:102D3000252B79F790E080E0109719F0CD010E94E3 +:102D40006116A1960FB6F894DEBF0FBECDBFDF911E +:102D5000CF911F910F91BF90AF909F908F9008954A +:102D6000E95CE1CFCF92DF92EF92FF92CF93DF93B6 +:102D700097FF19C06B017C018DE20E94A811EC0144 +:102D800066277727CB016C197D098E099F094AE0D8 +:102D90000E946E168C0F9D1FDF91CF91FF90EF90D8 +:102DA000DF90CF9008954AE0DF91CF91FF90EF90B0 +:102DB000DF90CF900C946E164F925F926F927F923D +:102DC0008F929F92AF92BF92CF92DF92EF92FF923B +:102DD0000F931F93CF936B017C01742EAC019B0169 +:102DE0000E94D32E882399F083E692E0CF911F9121 +:102DF0000F91FF90EF90DF90CF90BF90AF909F909A +:102E00008F907F906F905F904F900C946116460169 +:102E10005701E894B7F82FEF3FEF4FE75FE7C501A1 +:102E2000B4010E94D32E81110DC02FEF3FEF4FE769 +:102E30005FE7C501B4010E94ED2B18161CF487E66C +:102E400092E0D4CF2FEF3FEF4FE75FE4C701B60129 +:102E50000E94CE2E18161CF48BE692E0C7CF2FEFFF +:102E60003FEF4FE75FECC701B6010E94ED2B87FDF6 +:102E7000F3CF20E030E0A901C701B6010E94ED2B9D +:102E800010E000E087FF08C08DE20E94A8118C01CD +:102E9000F7FAF094F7F8F094C0E060E070E080E0BA +:102EA0009FE37C1641F020E030E040E251E40E94D4 +:102EB000262ECF5FF6CFA70196010E94BA2D2B01D7 +:102EC0003C010E949F2E4B015C014AE00E946E165D +:102ED0007C01E00EF11ECC23B1F1C501B4010E94CA +:102EE000F22B9B01AC01C301B2010E94B92D4B0131 +:102EF0005C018EE20E94A811E80EF91EC15018F183 +:102F000020E030E040E251E4C501B4010E94532CBE +:102F10002B013C010E949F2E4B01B12CA12C4AE0B9 +:102F2000C501B4010E946E16E80EF91EC501B40178 +:102F30000E94F22B9B01AC01C301B2010E94B92D8A +:102F40004B015C01DBCFC701CF911F910F91FF9027 +:102F5000EF90DF90CF90BF90AF909F908F907F9039 +:102F60006F905F904F900895CF92DF92EF92FF9213 +:102F70000F931F93CF93DF93C82F81E0DC2FD827C7 +:102F8000D093BE07C093BD078093BF070C2F2EE0E0 +:102F900046E661E370E081E090E00E945A102091E3 +:102FA000BF023091C002253F81E03807B8F4A4E6A3 +:102FB000B0E00E94AA2D24EF31E040E050E00E94F2 +:102FC000272DBA01A9014E5F5F4F6F4F7F4F2EE053 +:102FD00061E370E081E090E00E94800C60915F0707 +:102FE0007091600780916107909162070E94982E0E +:102FF0009B01AC01A4E6B0E00E94462D34EFC32E45 +:10300000DD24D394E12CF12CA70196010E94272DF9 +:10301000DA01C9010296A11DB11D02970C2F2DE006 +:1030200043E062E370E00E94800C60915F07709162 +:10303000600780916107909162070E94982E9B0122 +:10304000AC01A4E6B0E00E94462DA70196010E94C3 +:10305000272DDA01C9010296A11DB11D039724E0B5 +:1030600045E06CE370E00E94800C60915F07709116 +:10307000600780916107909162070E94982E9B01E2 +:10308000AC01A4E6B0E00E94462DA70196010E9483 +:10309000272D89019A010E5F1F4F2F4F3F4F01507F +:1030A000110941E3E42EF12C4D2FB701C8010E9414 +:1030B000390C8FEFE81AF80A8DE3E816F104A1F74E +:1030C00060915F077091600780916107909162073E +:1030D0000E94982E9B01AC01A4E6B0E00E94462D10 +:1030E00024EF31E040E050E00E94272DDA01C901D1 +:1030F0000296A11DB11D0397ED2E04E025E048ECDA +:103100005FE06BE370E00E94A20C0C2F2EE047E121 +:1031100061E370E088E690E00E945A1060916307D6 +:103120007091640780916507909166070E94982EC0 +:103130009B01AC012F5F310941095109A7E1B0E0C2 +:103140000E94462DCC24C394DD24DA94ED2CFD2C72 +:10315000A70196010E94272D422F2EE061E370E027 +:1031600088E690E00E94800CC093BE07D093BD0714 +:1031700082E090E09093BA078093B90707E310E0EC +:103180001093BC070093BB0760915F0770916007C5 +:10319000809161079091620740E00E94DC1688EF01 +:1031A0000E94A81186EC9FE00E948D1189E690E0B4 +:1031B0009093BA078093B9071093BC070093BB079D +:1031C000609163077091640780916507909166072D +:1031D0000E94982E9B01AC012F5F310941095109D2 +:1031E000A4E6B0E00E94462DA70196010E94272D7B +:1031F000CA01B9010E94B21684EC9FE00E948D11B1 +:10320000D093BE07C093BD07DF91CF911F910F915F +:10321000FF90EF90DF90CF9008956F927F928F9202 +:103220009F92AF92BF92CF92DF92EF92FF920F9355 +:103230001F93CF93DF93B090C10277247394B110A2 +:1032400001C0712C809142018150990B10929F0214 +:1032500010929E02880F991F90939D0280939C026A +:1032600081E090E090939B0280939A028B2D90E0F6 +:10327000880F991F9093AB028093AA0286E00E9468 +:103280008F0E21E0892B09F020E020939802FF2483 +:10329000F39472E0972EE6E08E2EFCE0CF2ED12C38 +:1032A0000E944B0D1092BC071092BB071092BA07F8 +:1032B0001092B907C091AA02D091AB02D595C795DB +:1032C000EC2E8E011127C801870D911D77FC9A9570 +:1032D0008B199109712C97FD06C08330910514F06C +:1032E00082E090E0782EF092BE071092BD07909297 +:1032F000BF078AE190E10E948D111092BE07F09203 +:10330000BD071092BA071092B907A72C072C000C22 +:10331000BB08C501019654E0880F991F5A95E1F743 +:103320009093BC078093BB0788E190E10E948D11C8 +:103330006C2E671890E080E098012A193B0959012A +:10334000209142018C010F5F1F4F6216D0F4D09282 +:10335000BA07C092B907980144E0220F331F4A957B +:10336000E1F73093BC072093BB078A0D9B1D889E15 +:103370009001899E300D1124C901815B9E4F0E94EE +:103380006116C801639403301105D1F60E946A12D8 +:103390000E94F90F86E00E948F0E892BB9F480916C +:1033A0009802811113C00E947C12E092C102DF9149 +:1033B000CF911F910F91FF90EF90DF90CF90BF9032 +:1033C000AF909F908F907F906F900895BC2E68CFA4 +:1033D0000E94D030EF92FF920F931F93CF93DF9311 +:1033E000EC017B018A0188819981009729F02A816B +:1033F0003B812417350788F4B8016F5F7F4F0E9427 +:103400001330009791F0998388831B830A832C8162 +:103410003D81232B11F4FC0110821D830C83B70125 +:10342000888199810E94DE300CC088819981009743 +:1034300011F00E948A2F198218821D821C821B8221 +:103440001A82CE01DF91CF911F910F91FF90EF90E3 +:1034500008951F93CF93DF93EC01162F0E94112D37 +:10346000181739F0612FCE01DF91CF911F910C9485 +:10347000192DDF91CF911F910895AF92BF92CF92F6 +:10348000DF92EF92FF920F931F93CF93DF936091A0 +:10349000470182E090E00E94291A6091460183E092 +:1034A00090E00E94291A6091450184E090E00E941A +:1034B000291A6091440185E090E00E94291A6091E8 +:1034C000430186E090E00E94291A60914C0187E058 +:1034D00090E00E94291A60914B0188E090E00E94E0 +:1034E000291A60914A0189E090E00E94291A6091AE +:1034F0007F018AE090E00E94291A609149018BE0E7 +:1035000090E00E94291A609148018CE090E00E94AE +:10351000291A6091C1028DE090E00E94291A609101 +:1035200042018EE090E00E94291A6091BB028FE078 +:1035300090E00E94291A6091990280E190E00E9437 +:10354000291A6091B80281E190E00E94291A82E173 +:10355000E82EF12C10E006E0809142011817B8F532 +:10356000109F60011124D0E0C0E0FE01EC0DFD1DB4 +:10357000E15BFE4F6081C7018C0F9D1F0E94291ADD +:103580002196C630D10589F7670186E0C80ED11CA7 +:1035900088E0189FE0011124CE5FDE4F8EE0E80E38 +:1035A000F11C69812296C6010E94291A560182E007 +:1035B000A80EB11CFE0132976081C60101960E94DF +:1035C000291A6501AE14BF0461F71F5FC5CFDF91F3 +:1035D000CF911F910F91FF90EF90DF90CF90BF9010 +:1035E000AF9008958F929F92AF92BF92CF92DF9249 +:1035F000EF92FF92CF938FEF90E00E94220F8BEA21 +:1036000094E00197F1F78EE00E9414127C018AE0A9 +:103610000E948F0E90917202981729F091E090937A +:10362000B70280937202809101019FEF980F9093EF +:103630000101811106C00E9442129093BA02809348 +:10364000B90260916307709164078091650790915A +:1036500066070E94982ECB010E94220F8090940250 +:1036600090909502A0909602B0909702B70190E0DA +:1036700080E00E94F22BA50194010E94B92D2DEC4F +:103680003CEC4CE45DE30E94532CA50194010E94A4 +:10369000BA2D609394027093950280939602909352 +:1036A00097020E94B6156091BF027091C00290E02F +:1036B00080E00E94F22B6B017C0120915F0730912A +:1036C000600740916107509162070E94ED2B8111C4 +:1036D000B5C02091B3023091B4024091B50250912F +:1036E000B602C701B6010E94B92D6B017C0120E032 +:1036F00030E0A9010E94CE2E18160CF095C020E0F3 +:1037000030E040EA50E4C701B6010E94CE2E181600 +:103710000CF494C06091B1027091B20290E080E02C +:103720000E94F22B2091B3023091B4024091B50275 +:103730005091B6020E94B92D6B017C0120E030E06F +:10374000A9010E94CE2E18160CF087C0C701B60141 +:103750000E949F2E6530710508F083C080914E0154 +:10376000811105C080914D0181110E947C1281E080 +:1037700080934E0110924D018091BF029091C00242 +:10378000853F21E0920710F0109200012091000186 +:10379000211140C0843F9140E8F58FEF90E00E94F6 +:1037A000220F0E947C12C1E0C09300010E940D19FB +:1037B0000E943D1AC093B7028EE00E941412BC0111 +:1037C00090E080E00E94F22B609394027093950247 +:1037D00080939602909397021092A9028091B10271 +:1037E0009091B20224E630E030939F0220939E0233 +:1037F00020E233E030939D0220939C022AE030E0E7 +:1038000030939B0220939A02880F991F9093AB02EA +:103810008093AA02CF91FF90EF90DF90CF90BF905E +:10382000AF909F908F90089520E030E040EA50ECF8 +:10383000C701B6010E94ED2B87FF6CCF6091B302E8 +:103840007091B4028091B5029091B6020E949F2EB1 +:103850007093C0026093BF025DCFC701B60190585C +:1038600077CF10924E0188CF0C94112D2F923F925A +:103870004F925F926F927F928F929F92AF92BF9280 +:10388000CF92DF92EF92FF920F931F93CF93DF932C +:10389000CDB7DEB768970FB6F894DEBF0FBECDBFC9 +:1038A00026E02093BF0721E02093BE071092BD07BA +:1038B0000091AB071091AC076091A7077091A80722 +:1038C00030E8232E32E0332EF10130E020E02017E3 +:1038D000310730F4DB01A20FB31F6115710521F42C +:1038E00010927302A3E7B2E04C9150E041935193E0 +:1038F0002F5F3F4F2330310551F71C8A1B8A1E8AE8 +:103900001D8A188E1F8A4AE08E010F5F1F4FB80173 +:103910000E94A32BF80101900020E9F73197AF0135 +:10392000401B510BB801CE0143960E94EA198091C9 +:10393000A7079091A807009709F4E8C06B897C89D4 +:103940006115710509F4E0C04091A9075091AA07DB +:103950002F89388D4217530708F4D6C00E94DE30F5 +:103960008F89988D9093AC078093AB07188E1F8A30 +:103970008B899C89009711F00E948A2F94E7E92E89 +:1039800092E0F92E24E0A22EB12CD12CC12C8091F2 +:10399000AB079091AC07C816D90638F4E091A70799 +:1039A000F091A807309709F0C8C010927302E3E7BE +:1039B000F2E0808190E0F10120813181821B930B44 +:1039C000F2E3F89FB001F99F700D1124072E000C4F +:1039D000880B990B0E94F42BF701208131814281E1 +:1039E00053810E94BA2D2B013C0120E030E0A90157 +:1039F0000E94ED2B8111A4C0F701408251826282A6 +:103A0000738201E022E346E270E060E0C5010497C2 +:103A10000E94800C8EEC882E99249A940FEF1FEF51 +:103A2000F701208131814281538160E070E080E8BC +:103A300090E40E94B92D2B013C01B401092C000C2B +:103A4000880B990B0E94F42B9B01AC01C301B201BE +:103A50000E94BA2D0E94982EB092BA07A092B90780 +:103A60007093BC076093BB07F10160817181600FA7 +:103A7000711F60537109072E000C880B990B0E946F +:103A8000B2160F5F1F4FF2E38F0E911C023011052B +:103A900039F62FEFC21AD20A84E0E80EF11CECE2EC +:103AA000AE0EB11CF2E02F0E311C23E0C216D10481 +:103AB00009F06DCF00E022E040E870E060E090E0C7 +:103AC00080E00E94800C2DE040E863E370E090E02D +:103AD00080E00E94800C68960FB6F894DEBF0FBE9F +:103AE000CDBFDF91CF911F910F91FF90EF90DF90AD +:103AF000CF90BF90AF909F908F907F906F905F908E +:103B00004F903F902F9008950E948A2F8B899C8917 +:103B10009093A8078093A7078D899E899093AA0701 +:103B20008093A9078F89988D9093AC078093AB07FA +:103B30001C8A1B8A1E8A1D8A19CFEC0DFD1D39CFE8 +:103B4000C301B20190582DEC3CEC4CE45FE30E94C1 +:103B5000532CA30192010E94BA2DF7016083718357 +:103B6000828393834ECF86E00E948F0E21E0892BC3 +:103B700009F020E0209398020E944B0D1092BC07A0 +:103B80001092BB071092BA071092B9078091AA024F +:103B90009091AB02959587950E94361C0E94F90F73 +:103BA0000E946A1286E00E948F0E892B29F780916D +:103BB00098028111E1CF0E947C128091A707909119 +:103BC000A807009721F00E94752BCB01089560E0B3 +:103BD00070E0CB01FACF2F923F924F925F926F929B +:103BE0007F928F929F92AF92BF92CF92DF92EF928D +:103BF000FF920F931F93CF93DF93CDB7DEB76397F9 +:103C00000FB6F894DEBF0FBECDBFB82EE091A00274 +:103C1000F0E0E25EFD4F80818150990B10929F028F +:103C200010929E02880F991F90939D0280939C0290 +:103C300081E090E090939B0280939A028B2D90E01C +:103C4000880F991F9093AB028093AA0286E00E948E +:103C50008F0E21E0892B09F020E02093980210922A +:103C6000BE0781E08093BD078091AA029091AB02CC +:103C70009C01359527953D872C871C857901FF246C +:103C800097012B19310948E3429FC001439F900DD2 +:103C90001124C80ED91EC114D10409F16627772753 +:103CA0006C197D09072E000C880B990B0E94F42BD0 +:103CB00020E030E040E05FE30E94532C4B015C01C8 +:103CC000B601DD0C880B990B0E94F42B9B01AC0113 +:103CD000C501B4010E94BA2D0E94982E6B010E946A +:103CE0004B0D1092BC071092BB071092BA071092AE +:103CF000B907370182E0681A7108560198E4A91AD9 +:103D0000B108F7013396FB8BEA8B77FC92C0E09108 +:103D1000A002F0E0E25EFD4F80818615170409F0F5 +:103D20000CF487C001E020E340E370E060E0C501EF +:103D30000E94800C95012D5F3F4F398B288B00E04E +:103D40002AE24AE263E070E0888999890E94800C47 +:103D500070E060E0C5010E94240D70E060E0450164 +:103D60003FE2830E911CC4010E94240D6FE270E0BB +:103D7000C5010E94240D6FE270E0C4010E94240D71 +:103D80000E945812E82FC50141968E38910508F01F +:103D900050C0E60DF72DF11DEE0FFF1FEE52FE4F46 +:103DA000808191819F878E8753E0452E512C312C45 +:103DB000212C912C812CF40133E0F595E7953A956F +:103DC000E1F7E20DF31D2E853F85E20FF31FE4912D +:103DD000C4018770992720E830E002C03595279507 +:103DE0008A95E2F7C901F0E0E223F923EF2B79F09D +:103DF000C401880F991F880D991D01E023E043E05D +:103E0000B201E889F9898E0F9F1F0E94800CFFEF95 +:103E10008F1A9F0A2EE08216910469F632E0230E73 +:103E2000311C43E0440E511C8DE24816510409F048 +:103E3000C0CF9FEF691A790AE8E3AE0EB11C2A8958 +:103E40003B892615370509F060CF8091BB028111AF +:103E500040C00E945812F701E80FF11DEE0FFF1F3E +:103E6000EA57FE4F40815181EE24E39400E124E2C1 +:103E700060E370E080E390E00E94A20C0E94F90FE2 +:103E80000E946A1286E00E948F0E892B01F58091B4 +:103E9000980281111CC00E947C12812F63960FB67C +:103EA000F894DEBF0FBECDBFDF91CF911F910F9170 +:103EB000FF90EF90DF90CF90BF90AF909F908F904A +:103EC0007F906F905F904F903F902F900895BC84AB +:103ED000CBCE80E390E09093BA078093B907E1E3FB +:103EE000F0E0F093BC07E093BB0781E08093BF074D +:103EF0000E945812FC858F0FE82FF0E0EE0FFF1F95 +:103F0000E453F04F65917491CE0101960E949C2B71 +:103F1000CE0101960E946116B1CF1F920F920FB68B +:103F20000F9211242F933F934F935F936F937F933F +:103F30008F939F93AF93BF93EF93FF9382EC96E0A1 +:103F40000E94D70DFF91EF91BF91AF919F918F91FB +:103F50007F916F915F914F913F912F910F900FBE85 +:103F60000F901F9018951F920F920FB60F92112469 +:103F70002F938F939F93EF93FF93E091D206F0914D +:103F8000D3068081E091D806F091D90682FD1BC04E +:103F900090818091DB068F5F8F732091DC06821702 +:103FA00041F0E091DB06F0E0EE53F94F958F8093FE +:103FB000DB06FF91EF919F918F912F910F900FBE94 +:103FC0000F901F9018958081F4CF1F920F920FB61B +:103FD0000F9211242F933F938F939F93AF93BF938F +:103FE0008091870290918802A0918902B0918A0203 +:103FF0003091860223E0230F2D3758F50196A11D3D +:10400000B11D209386028093870290938802A0932B +:104010008902B0938A0280918B0290918C02A091C8 +:104020008D02B0918E020196A11DB11D80938B026D +:1040300090938C02A0938D02B0938E02BF91AF91AA +:104040009F918F913F912F910F900FBE0F901F90D6 +:10405000189526E8230F0296A11DB11DD2CF1F92FD +:104060000F920FB60F9211242F933F934F935F93AC +:104070006F937F938F939F93EF93FF9383B181709F +:1040800029B190919102981709F49DC030E0220F58 +:10409000232F221F330B922F809391024091900285 +:1040A000241709F490C02093900220919A02309135 +:1040B0009B02981719F03195219531094091AA0278 +:1040C0005091AB0260919E0270919F02240F351FA8 +:1040D000261737070CF48BC020919A0230919B026F +:1040E000981719F03195219531094091AA02509104 +:1040F000AB0260919C0270919D02240F351F6217E4 +:1041000073070CF46FC040919A0250919B0298176C +:1041100019F05195419551092091AA023091AB02B5 +:10412000240F351F3093AB022093AA0241E098136D +:1041300040E020918F02421709F440C020919A027A +:1041400030919B02981719F03195219531096091B2 +:10415000AA027091AB02E0919E02F0919F02260F9D +:10416000371F2E173F070CF44CC020919A02309154 +:104170009B02981719F03195219531096091AA0297 +:104180007091AB02E0919C02F0919D02260F371FC7 +:10419000E217F3078CF120919A0230919B02981755 +:1041A00019F03195219531098091AA029091AB02C5 +:1041B000820F931F9093AB028093AA0240938F02C9 +:1041C00081E08093B702FF91EF919F918F917F9152 +:1041D0006F915F914F913F912F910F900FBE0F9074 +:1041E0001F90189520919C0230919D029BCF2091A9 +:1041F0009E0230919F0296CF80919C0290919D02E9 +:10420000D9CF80919E0290919F02D4CF18950F93A1 +:104210001F93CF93DF93E2ECF6E01382128288EED5 +:1042200093E0A0E0B0E084839583A683B78389E41C +:1042300092E09183808385EC90E09587848784EC7D +:1042400090E09787868780EC90E0918B808B81EC63 +:1042500090E0938B828B82EC90E0958B848B86EC44 +:1042600090E0978B868B118E128E138E148EEDEA52 +:10427000F7E0138212821682178280E1808715820E +:10428000148212868BE592E09183808315861486D2 +:104290001786168611E0108B118A128B138AE7EAB3 +:1042A000F7E011821082138212821582148250E08C +:1042B00040E061E772E0CF010E94EA19CBE6D7E067 +:1042C00083E697E09F8F8E8F87E697E09D8F8C8F98 +:1042D0008FE597E099A388A31AAE1AAA1BAA1CAA75 +:1042E0001DAA80E090E0AFE7B3E48EAB9FABA8AF30 +:1042F000B9AF84E690E0A0E0B0E08EA79FA7A8AB9E +:10430000B9AB81E090E0998F888F9B8F8A8F1BAF2C +:1043100080E090E0A0E3B1E488839983AA83BB8323 +:1043200080E090E0A0E0BFE38C839D83AE83BF83F9 +:1043300080E090E0A0E8BFE388879987AA87BB87E1 +:1043400080E090E0A0E3B1EC8C879D87AE87BF87CB +:104350008DEC9CECACE4BDEB888B998BAA8BBB8B72 +:1043600080E090E0A0E2B1EC8C8B9D8BAE8BBF8B9C +:104370000E94D10F0EA51FA528A939A9601B710B9A +:10438000820B930B6AA37BA38CA39DA3DF91CF9198 +:104390001F910F910895CF93DF93CDB7DEB72B9781 +:1043A0000FB6F894DEBF0FBECDBF789484B582609F +:1043B00084BD84B5816084BD85B5826085BD85B5C9 +:1043C000816085BD80916E00816080936E00109247 +:1043D00081008091810082608093810080918100C2 +:1043E0008160809381008091800081608093800053 +:1043F0008091B10084608093B1008091B0008160B1 +:104400008093B00080917A00846080937A008091DC +:104410007A00826080937A0080917A008160809334 +:104420007A0080917A00806880937A001092C100AF +:104430001092B90088E48093B8000E94EF0F80E0EA +:104440000E94E50F0BE615E18AE8E82E85E1F82EDB +:10445000F80184910E94E50F0F5F1F4FE016F106EF +:10446000B9F70E94DD0F11E01093B8000E94F90F18 +:1044700081E28093B50760E08EE00E94E60E60E086 +:104480008FE00E94E60E61E085E00E94E60E61E0AA +:1044900089E00E94E60E62E087E00E94E60E62E09C +:1044A00088E00E94E60E62E086E00E94E60E62E08E +:1044B0008AE00E94E60E8FEF90E00E94220F60E0FB +:1044C00085E00E94B80E80917A00876080937A0020 +:1044D00080917A00886080937A00789410936B00C2 +:1044E000109368001BBB90E080E00E94341C182FE2 +:1044F00081E090E00E94341C912F8F3F984009F09A +:10450000BBC082E090E00E94341C182F83E090E052 +:104510000E94341C912F909347018093460184E0C0 +:1045200090E00E94341C182F85E090E00E94341C1B +:10453000912F909345018093440186E090E00E9482 +:10454000341C8093430187E090E00E94341C8093E8 +:104550004C0188E090E00E94341C80934B0189E07C +:1045600090E00E94341C80934A018AE090E00E940F +:10457000341C80937F018BE090E00E94341C91E01A +:10458000811101C090E0909349018CE090E00E947D +:10459000341C91E0811101C090E0909348018DE0BE +:1045A00090E00E94341C8093C1028EE090E00E9453 +:1045B000341C282E809342018FE090E00E94341C2E +:1045C0008093BB0280E190E00E94341C91E0811155 +:1045D00001C090E09093990281E190E00E94341C28 +:1045E0008093B802B2E08B2EB1E09B2E1FE4A12E87 +:1045F00011E0B12E02E1E02EF12C312C231409F44C +:1046000047C010E000E0C701800F911F0E94341CDA +:10461000F501E00FF11F80830F5F1F4F063011057A +:1046200091F7670126E0C20ED11C3EE0E30EF11CBB +:104630003401C6010E94341C082F10E0102F0027FF +:10464000F301118300832601F2E04F0E511CC601D5 +:1046500001960E94341C082BF301019311933F0132 +:1046600062014E145F0429F73394F8E08F0E911C19 +:1046700026E0A20EB11CC2CF68E090E080E00E946C +:10468000291A6FEF81E090E00E94291A0E943D1ADA +:104690001091990280EC111101C088EC0E94161053 +:1046A00080EA111101C081EA0E9416100E94B01127 +:1046B00090939302809392020E9442129093BA02C6 +:1046C0008093B90200914601109147011093B20204 +:1046D0000093B1028EE00E941412BC0190E080E0D1 +:1046E0000E94F22B6093940270939502809396023D +:1046F000909397020E94EC110E94B61520E030E0E2 +:1047000040EA51E46091B3027091B4028091B50225 +:104710009091B6020E94BA2D6B017C01B80190E025 +:1047200080E00E94F22B9B01AC01C701B6010E9400 +:10473000ED2B87FF04C090E080E00E94220F1092D2 +:104740009D0710929E0710929F071092A007412C80 +:10475000512CFFE76F2EF3E47F2E4092A107509279 +:10476000A2076092A3077092A407A0908907B09057 +:104770008A078091A507F501C080D180E280F3808F +:10478000882309F47DC7A3019201C701B6010E94E5 +:10479000CE2E181634F5F501408251826282738262 +:1047A0008090910790909207A0909307B090940703 +:1047B000C090A107D090A207E090A307F090A407B3 +:1047C000A7019601C501B4010E94CE2E1816C4F4AB +:1047D000C0929107D0929207E0929307F0929407CB +:1047E0001FC020E030E0A901C701B6010E94ED2BF7 +:1047F00087FFD6CFF5011082118212821382D0CFAB +:10480000C0909D07D0909E07E0909F07F090A00772 +:10481000A7019601C501B4010E94ED2B87FDD8CFF9 +:1048200081E08093A50783B181708093910289B163 +:1048300090E0880F892F881F990B80939002209118 +:1048400091029091900281E0291380E080938F0281 +:1048500084E690E090939F0280939E0280E293E032 +:1048600090939D0280939C028AE090E090939B023B +:1048700080939A02000F111F1093AB020093AA02BB +:104880000E94D10F6093AD027093AE028093AF028D +:104890009093B0020E947C120E947C122090AA0287 +:1048A0003090AB029101359527953A87298730934F +:1048B000B2022093B10286E00E948F0E8B87811195 +:1048C0009EC08091A902882309F499C00E947C129D +:1048D0000E94D10F6B017C01C092A502D092A6026A +:1048E000E092A702F092A80286E00E948F0E892B28 +:1048F00059F40E94D10F6C197D098E099F09643FFC +:1049000071408105910580F30E94D10F6C197D09DA +:104910008E099F09643F71408105910508F448C4E0 +:104920008FEF90E00E94220F0E947C12512C5AE0DF +:10493000652E712C1092A002852D0E94EB1D582E21 +:10494000F7E0F81708F438C0E82FF0E0E655FB4D23 +:104950000C94E82EC4247627F02758286628A0282F +:10496000B828AE2820E030E0A901C701B6010E94B6 +:10497000ED2B87FF55CF109291071092920710925E +:104980009307109294074CCF4EE1642E712C81E076 +:104990008093A002852D0E94EB1D582E22E08217E5 +:1049A00009F43EC2281708F4E9C0882309F411C1AC +:1049B00031E0831709F410C10E943D1A81E0809311 +:1049C000B70229853A853093B2022093B10284E67A +:1049D00090E090939F0280939E0280E293E09093F8 +:1049E0009D0280939C028AE090E090939B028093CA +:1049F0009A02C1018E7F9093AB028093AA023B85FD +:104A00003093A9028091BC02882309F110914A01D8 +:104A10001123E9F00E94D10FC090A102D090A20210 +:104A2000E090A302F090A4026C197D098E099F0901 +:104A300028EE33E040E050E00E94882D211738F046 +:104A40001092BC020E947C1281E080934D01809103 +:104A5000B7028823E9F18091BD02882349F120E063 +:104A600030E040EA51E46091B3027091B402809169 +:104A7000B5029091B6020E94BA2D6B017C01609143 +:104A8000B1027091B20290E080E00E94F22B9B0193 +:104A9000AC01C701B6010E94ED2B87FF04C090E076 +:104AA00080E00E94220F0E947C1281E080934D01E1 +:104AB0001092B7021092BD021092BE020E94D10F56 +:104AC0006093AD027093AE028093AF029093B002F8 +:104AD0000E94D10F0091AD021091AE022091AF0261 +:104AE0003091B002601B710B820B930B20E63AEE03 +:104AF00040E050E00E94882D122F2093AC0280915C +:104B0000BD0281110BC080914C01882339F0281718 +:104B100028F081E08093BD020E947C128091BE0249 +:104B200081110BC080914B01882339F0181728F0B0 +:104B300081E08093BE020E947C120E94F21A0E94C1 +:104B400089130E94D10F8091B607962F981B892F49 +:104B50009091B707992309F441C38093B807109245 +:104B6000B70780E090E0892B09F498CE0E94C30D2E +:104B7000882309F493CE0E94000090CE83E058165B +:104B800009F451C194E0591217CF80914201883045 +:104B900008F0FDCE91E0980F909342018093C102FE +:104BA0000E949A12E091C10228E0E29FF0011124D4 +:104BB000EE5FFE4F88ED90E09183808324E331E047 +:104BC0003383228386E891E09583848377826682AB +:104BD000DECE0E940D19DBCE8E010F5F1F4F812CA0 +:104BE000912C5401839498EEE92E93E0F92ECC2475 +:104BF000C394D12C32E0432EE091C10224E0E29F25 +:104C0000F0011124C4010197E80FF91FEE0FFF1FF7 +:104C1000EE5FFE4F808191819093B2028093B1024A +:104C2000E8ECF0E0F0939F02E0939E02F0929D0288 +:104C3000E0929C02D0929B02C0929A02880F991F28 +:104C40009093AB028093AA02F1E0F0934D0186E0CD +:104C50000E948F0E21E0892B09F020E0209398021A +:104C60000E944B0D1092BC071092BB071092BA071E +:104C70001092B9074092BF070E94F21A0E9489134E +:104C80001092BA071092B9071092BC071092BB0796 +:104C900080EB95E10E948D11C501B4010E94B2160E +:104CA0008FE692E00E94611680914E011092BA0741 +:104CB0001092B907882309F48BC020E130E03093CB +:104CC000BC072093BB0783EA95E10E948D111092E7 +:104CD000BA071092B90780E290E09093BC078093E6 +:104CE000BB078CE995E10E948D116091AA02709139 +:104CF000AB0275956795072E000C880B990B0E94E7 +:104D0000B2160E946A120E94F90F86E00E948F0E6E +:104D1000892B09F0A5CF809198028111A1CF8091B4 +:104D2000AA029091AB0295958795F8018193919392 +:104D30008F010E947C126AE070E080E090E00E94A7 +:104D40009F0FFFEF8F1A9F0AAF0ABF0A24E0821657 +:104D50009104A104B10409F04FCF8FEF90E00E94BD +:104D6000220F8BEA94E00197F1F70E94EC110E9468 +:104D70009F2E4B0178876F83C980DA800B811C815D +:104D8000C6014E968017910708F001CEED80FE8097 +:104D9000C8014E968E159F0508F0F9CD87E08093E7 +:104DA000A00280E00E94EB1D882309F4F0CDE09181 +:104DB000C10238E0E39FF0011124EE5FFE4FD18283 +:104DC000C08213830283F582E48297828682DFCDDC +:104DD000E0E1F0E0F093BC07E093BB0786E995E1E2 +:104DE0000E948D11609194027091950280919602BB +:104DF000909197020E949F2E90E080E04AE00E94EE +:104E00006E161092BA071092B90720E230E0309384 +:104E1000BC072093BB078AE895E10E948D1171CFF2 +:104E20000E949A12B4CD87E08093A0028091420143 +:104E3000813009F4ACCD80E00E94EB1D882309F499 +:104E4000A6CD1091C10200914201802F8150990B93 +:104E5000BC011817190639F411501093C102015002 +:104E60000093420194CD812F90E086179707BCF7FD +:104E7000E6E01E9FD001112450E040E09C012F5F2E +:104E80003F4FFA01EA0FFB1FE15BFE4FF680F08215 +:104E90004F5F5F4F46305105A1F7B3E0220F331F3C +:104EA000BA95E1F7F901EE5FFE4F2081318143E0D1 +:104EB000880F991F4A95E1F7DC01AE5FBE4F11964E +:104EC0003C932E938281938113969C938E93129799 +:104ED0008481958115969C938E93149786819781F2 +:104EE00017969C938E9316971F5FBDCF82E0809399 +:104EF000A002412C70E9C72EDD24D394E4E6AE2E47 +:104F0000B12CF0E28F2EF3E09F2EA4E1EA2EF12CDB +:104F100008EC10E0842D0E94EB1D482E91E08917CB +:104F200031F1891738F0E2E08E1709F43FC00E9492 +:104F30003D1A00CD8091460190914701B0929F02A9 +:104F4000A0929E0290929D0280929C0270929B027F +:104F500060929A02880F991F9093AB028093AA02E5 +:104F60000E94B31D9093470180934601D3CF809157 +:104F700044019091450128E230E030939F02209354 +:104F80009E02D0929D02C0929C0270929B026092FF +:104F90009A02880F991F9093AB028093AA020E94F5 +:104FA000B31D9093450180934401B4CF8091430198 +:104FB00090E0F0929F02E0929E0210939D02009377 +:104FC0009C0270929B0260929A02880F991F9093A4 +:104FD000AB028093AA020E94B31D809343019ACF33 +:104FE00083E08093A002F12C01E010E08F2D0E945D +:104FF000EB1DF82E31E08317E9F18317F8F082E01A +:10500000F81295CF80914A0190E010929F02109281 +:105010009E0228E631E030939D0220939C0270921C +:105020009B0260929A02880F991F9093AB02809323 +:10503000AA020E94B31D80934A01D8CF80914C01EF +:1050400090E010929F0210929E02ECE3F0E0F09349 +:105050009D02E0939C0210939B0200939A02880F9A +:10506000991F9093AB028093AA020E94B31D809374 +:105070004C01BCCF80914B0190E010929F021092A6 +:105080009E0228E730E030939D0220939C02E5E0E9 +:10509000F0E0F0939B02E0939A02880F991F90939F +:1050A000AB028093AA020E94B31D80934B019ECF56 +:1050B00084E08093A002809149010E94EB1D91E061 +:1050C000811101C090E09093490134CC10E0EAE0F6 +:1050D000EE2EF5E0DF2EA9E0CA2EE092A002812F8D +:1050E0000E94EB1D182F882321F08130E1F000E0B1 +:1050F00009C0D092A00280917F010E94EB1D809395 +:105100007F0101E0F090990280ECF11001C088EC81 +:105110000E94161080EAF11001C081EA0E94161068 +:105120000111DBCF04CFC092A002809199020E94AE +:10513000EB1D91E0811101C090E090939902E1CFC5 +:1051400086E08093A002809148010E94EB1D91E0CF +:10515000811101C090E090934801ECCB88E08093EE +:10516000A0028091BB020E94EB1D8093BB02E2CBA8 +:105170008091B80290E010929F0210929E02E4EF9C +:10518000F1E0F0939D02E0939C0221E030E0309347 +:105190009B0220939A02880F991F9093AB028093F1 +:1051A000AA020E94B31D8093B8020E947C12C2CB57 +:1051B0008091BC0291E089278093BC02882351F042 +:1051C0000E94D10F6093A1027093A2028093A30268 +:1051D0009093A40281E08093B70211CC9091B5071F +:1051E000891748F48F5F891708F0BBCC81E083BF33 +:1051F000889513BEB6CC11E01093B7076093B6073D +:105200008091B1079091B20701969093B207809375 +:10521000B10780917F01882309F4C4C10E944B0D1E +:105220001092BC071092BB071092BA071092B907F0 +:1052300001E020E440E870E060E090E080E00E945F +:10524000800C1093BF071093BE071092BD07E12C8E +:1052500000E120E146E256E170E060E090E080E0AD +:105260000E94A20C83E190E09093BA078093B90763 +:1052700084E090E09093BC078093BB078091C102CB +:10528000E6E08E9FC0011124815B9E4F0E94611653 +:105290008091BF029091C002853F914008F02DC1DE +:1052A0008091BE0281112BC18091BD02811129C163 +:1052B0008091BC02811127C180914E01811125C1CD +:1052C00020E030E044E353E46091630770916407A9 +:1052D00080916507909166070E94ED2B87FF17C1AB +:1052E00085E025E330E03093BA072093B90721E049 +:1052F00030E03093BC072093BB0792E09093BF0748 +:10530000C82ED12C9091BB02CC0CDD1C911101C197 +:10531000F601E95CFD4F40815181E12C0EE02CE16A +:1053200061E070E080E590E00E94A20CF601E75D8C +:10533000FD4F40815181E12C0EE02EE061E070E0F4 +:1053400081E790E00E94A20C81E08093BF070E9459 +:10535000EC1120E030E040EA52E40E94CE2E181614 +:105360000CF0FAC00E94D10F52E0660F771F881F21 +:10537000991F5A95D1F728EE33E040E050E00E94A3 +:10538000882D20FFE9C00E947C126091B9027091C3 +:10539000BA0290E080E00E94F22B20E030E048EC7E +:1053A00052E40E94262E6B017C016091B80270E0ED +:1053B00090E080E00E94F42B9B01AC01C701B60194 +:1053C0000E94ED2B87FDD4C0E12C0EE02EE048ECCE +:1053D00055E162E270E082E090E00E94A20C03E1FD +:1053E00010E01093BA070093B90720E130E0309342 +:1053F000BC072093BB070E94EC1141E00E94DC1621 +:1054000088EF0E94A81186EC95E10E948D111093FF +:10541000BA070093B90788E190E09093BC078093A6 +:10542000BB070E94B011BC0190E080E00E94F22B0B +:1054300020E030E04AE754E40E94262E42E00E9439 +:10544000DC1684EC95E10E948D111093BA0700934D +:10545000B90780E290E09093BC078093BB0760910E +:10546000B9027091BA0290E080E00E94F22B20E035 +:1054700030E04AE754E40E94262E41E00E94DC1608 +:1054800082EC95E10E948D111093BA070093B90741 +:1054900088E290E09093BC078093BB078BEB95E18B +:1054A0000E948D1189E390E09093BA078093B90729 +:1054B00082E190E09093BC078093BB0784E08093E7 +:1054C000BF076091BF027091C002653F91E079070C +:1054D00008F462C087EB95E10E948D1100E020E2A4 +:1054E00048E460E170E087E390E00E945A1080E0B9 +:1054F0000E94B4170E94F90F34CB80E0F2CE81E015 +:10550000F0CE82E0EECE83E0ECCE84E0EACE86E020 +:10551000E8CE8330C1F038F4813069F0823081F018 +:1055200080E096E10AC08530A1F080F08630C1F7B6 +:1055300086E096E102C082E296E10E948D11F6CEED +:105540008CE196E1FACF86E196E1F7CF80E196E132 +:10555000F4CF8BE096E1F1CFE12C0EE02EE044EEAB +:1055600055E162E170E082E090E00E94A20C0DCF74 +:105570000E94D10F42E0660F771F881F991F4A953E +:10558000D1F728EE33E040E050E00E94882D20FF64 +:105590001BCF0E947C1223CF90E080E04AE00E9463 +:1055A0006E169CCF0E944B0D1092BC071092BB0749 +:1055B0001092BA071092B9070E94EC1120E030E077 +:1055C00040EA52E40E94CE2E181694F40E94D10FA5 +:1055D00032E0660F771F881F991F3A95D1F728EEA2 +:1055E00033E040E050E00E94882D20FD0E947C12B4 +:1055F0006091B9027091BA0290E080E00E94F22BB3 +:1056000020E030E048EC52E40E94262E6B017C0141 +:105610006091B80270E090E080E00E94F42B9B0162 +:10562000AC01C701B6010E94ED2B87FF12C00E949A +:10563000D10F22E0660F771F881F991F2A95D1F797 +:1056400028EE33E040E050E00E94882D20FD0E94CB +:105650007C128091BF029091C002853FE1E09E07DD +:1056600010F087EE93E00E94361C00E023E040E853 +:1056700060E370E090E080E00E94800C81E038CF31 +:10568000C0929107D0929207E0929307F09294070C +:10569000E0918707F091880780819181A281B38191 +:1056A0008093950790939607A0939707B0939807D8 +:1056B00020E030E04FE753E4C701B6010E94CE2E50 +:1056C00018160CF04FC940929107509292076092C1 +:1056D000930770929407A4C88091A7079091A80798 +:1056E000009711F00C948A2F08951F93FC019927BD +:1056F0008827BC01E89411911032E9F3193010F0B9 +:105700001E30C8F31B3251F01D3249F4689406C0B4 +:105710000E94AE2B610F711D811D911D11911053BF +:105720001A30B0F33EF490958095709561957F4F57 +:105730008F4F9F4F1F910895FB01DC0105900D9243 +:105740000020E1F70895BB274A3031F4992322F471 +:10575000BDE2909581959F4F0C94C42B592F482FF3 +:10576000372F262F660F771F881F991F660F771F09 +:10577000881F991F620F731F841F951F660F771F65 +:10578000881F991F0895BB27FB015527AA27880F5B +:10579000991FAA1FA41710F0A41B83955051B9F7A5 +:1057A000A05DAA3308F0A95DA193009779F7B11124 +:1057B000B1931192CB010C94DD2BDC01FC01672F1E +:1057C00071917723E1F7329704C07C916D937083D8 +:1057D0006291AE17BF07C8F308950E942F2C08F4FA +:1057E00081E00895E89409C097FB3EF49095809578 +:1057F000709561957F4F8F4F9F4F9923A9F0F92F97 +:1058000096E9BB279395F695879577956795B79514 +:10581000F111F8CFFAF4BB0F11F460FF1BC06F5FFA +:105820007F4F8F4F9F4F16C0882311F096E911C00C +:10583000772321F09EE8872F762F05C0662371F02D +:1058400096E8862F70E060E02AF09A95660F771F41 +:10585000881FDAF7880F9695879597F90895990F1D +:105860000008550FAA0BE0E8FEEF16161706E8072A +:10587000F907C0F012161306E407F50798F0621B4B +:10588000730B840B950B39F40A2661F0232B242B20 +:10589000252B21F408950A2609F4A140A6958FEF3F +:1058A000811D811D08950E94662C0C94D72C0E94A6 +:1058B000C92C38F00E94D02C20F0952311F00C94C4 +:1058C000C02C0C94C62C11240C940B2D0E94E82C97 +:1058D00070F3959FC1F3950F50E0551F629FF00143 +:1058E000729FBB27F00DB11D639FAA27F00DB11D5C +:1058F000AA1F649F6627B00DA11D661F829F2227E5 +:10590000B00DA11D621F739FB00DA11D621F839F6B +:10591000A00D611D221F749F3327A00D611D231F41 +:10592000849F600D211D822F762F6A2F11249F578F +:1059300050409AF0F1F088234AF0EE0FFF1FBB1F92 +:10594000661F771F881F91505040A9F79E3F510551 +:1059500080F00C94C02C0C940B2D5F3FE4F3983E28 +:10596000D4F3869577956795B795F795E7959F5FFB +:10597000C1F7FE2B880F911D9695879597F908958D +:1059800097F99F6780E870E060E008959FEF80ECF2 +:10599000089500240A941616170618060906089595 +:1059A00000240A9412161306140605060895092EFB +:1059B0000394000C11F4882352F0BB0F40F4BF2B6A +:1059C00011F460FF04C06F5F7F4F8F4F9F4F0895AA +:1059D00057FD9058440F551F59F05F3F71F04795A0 +:1059E000880F97FB991F61F09F3F79F08795089585 +:1059F000121613061406551FF2CF4695F1DF08C0A4 +:105A0000161617061806991FF1CF869571056105C0 +:105A100008940895E894BB2766277727CB0197F968 +:105A20000895F999FECF92BD81BDF89A992780B566 +:105A30000895262FF999FECF1FBA92BD81BD20BDD2 +:105A40000FB6F894FA9AF99A0FBE01960895052EAA +:105A500097FB1EF400940E943E2D57FD07D00E9434 +:105A6000882D07FC03D04EF40C943E2D50954095A4 +:105A7000309521953F4F4F4F5F4F089590958095FA +:105A8000709561957F4F8F4F9F4F08950E94AA2D6B +:105A9000A59F900DB49F900DA49F800D911D112482 +:105AA00008952F923F924F925F926F927F928F92C2 +:105AB0009F92AF92BF92CF92DF92EF92FF920F939D +:105AC0001F93CF93DF93CDB7DEB7CA1BDB0B0FB6A7 +:105AD000F894DEBF0FBECDBF09942A883988488864 +:105AE0005F846E847D848C849B84AA84B984C884FA +:105AF000DF80EE80FD800C811B81AA81B981CE0FF1 +:105B0000D11D0FB6F894DEBF0FBECDBFED010895D5 +:105B1000A1E21A2EAA1BBB1BFD010DC0AA1FBB1FB1 +:105B2000EE1FFF1FA217B307E407F50720F0A21B23 +:105B3000B30BE40BF50B661F771F881F991F1A9490 +:105B400069F760957095809590959B01AC01BD01BA +:105B5000CF010895A29FB001B39FC001A39F700D14 +:105B6000811D1124911DB29F700D811D1124911D65 +:105B700008955058BB27AA270E94D12D0C94D72CEA +:105B80000E94C92C38F00E94D02C20F039F49F3F9D +:105B900019F426F40C94C62C0EF4E095E7FB0C9453 +:105BA000C02CE92F0E94E82C58F3BA17620773073C +:105BB0008407950720F079F4A6F50C940A2D0EF4CD +:105BC000E0950B2EBA2FA02D0B01B90190010C010D +:105BD000CA01A0011124FF27591B99F0593F50F425 +:105BE000503E68F11A16F040A22F232F342F44277D +:105BF000585FF3CF469537952795A795F040539575 +:105C0000C9F77EF41F16BA0B620B730B840BBAF044 +:105C10009150A1F0FF0FBB1F661F771F881FC2F7AF +:105C20000EC0BA0F621F731F841F48F487957795C3 +:105C30006795B795F7959E3F08F0B0CF9395880F7D +:105C400008F09927EE0F9795879508950E943A2EB0 +:105C50000C94D72C0E94D02C58F00E94C92C40F0F4 +:105C600029F45F3F29F00C94C02C51110C940B2D9A +:105C70000C94C62C0E94E82C68F39923B1F35523A9 +:105C800091F3951B550BBB27AA276217730784074F +:105C900038F09F5F5F4F220F331F441FAA1FA9F3E5 +:105CA00035D00E2E3AF0E0E832D091505040E695D3 +:105CB000001CCAF72BD0FE2F29D0660F771F881F34 +:105CC000BB1F261737074807AB07B0E809F0BB0B27 +:105CD000802DBF01FF2793585F4F3AF09E3F51053B +:105CE00078F00C94C02C0C940B2D5F3FE4F3983E9D +:105CF000D4F3869577956795B795F7959F5FC9F724 +:105D0000880F911D9695879597F90895E1E0660FA4 +:105D1000771F881FBB1F621773078407BA0720F01D +:105D2000621B730B840BBA0BEE1F88F7E095089586 +:105D30000E949F2E6894B1110C940B2D08950E941F +:105D4000F02C88F09F5798F0B92F9927B751B0F0F1 +:105D5000E1F0660F771F881F991F1AF0BA95C9F7EF +:105D600014C0B13091F00E940A2DB1E008950C9456 +:105D70000A2D672F782F8827B85F39F0B93FCCF309 +:105D8000869577956795B395D9F73EF4909580956C +:105D9000709561957F4F8F4F9F4F08950E942F2CD4 +:105DA00008F48FEF08950E942F2C880B990B08950B +:105DB000DB018F939F930E94462DBF91AF91A29FCD +:105DC000800D911DA39F900DB29F900D11240895F9 +:105DD000EE0FFF1F0590F491E02D09940F931F9390 +:105DE000CF93DF938230910510F482E090E0E09150 +:105DF000C307F091C40730E020E0B0E0A0E03097A6 +:105E000099F42115310509F44AC0281B390B2430B7 +:105E10003105D8F58A819B816115710589F1FB01F6 +:105E200093838283FE0111C04081518102811381DD +:105E300048175907E0F04817590799F4109761F08F +:105E400012960C93129713961C933296CF01DF9102 +:105E5000CF911F910F9108950093C3071093C4072A +:105E6000F4CF2115310551F04217530738F0A9013D +:105E7000DB019A01BD01DF01F801C1CFEF01F9CFCC +:105E80009093C4078093C307CDCFFE01E20FF31FA9 +:105E9000819391932250310939832883D7CF209160 +:105EA000C1073091C207232B41F420918201309128 +:105EB00083013093C2072093C10720918001309164 +:105EC00081012115310541F42DB73EB74091840180 +:105ED00050918501241B350BE091C107F091C20759 +:105EE000E217F307A0F42E1B3F0B2817390778F0B1 +:105EF000AC014E5F5F4F2417350748F04E0F5F1F10 +:105F00005093C2074093C107819391939FCFF0E0D4 +:105F1000E0E09CCFCF93DF930097E9F0FC0132974C +:105F200013821282A091C307B091C407ED0130E043 +:105F300020E01097A1F420813181820F931F2091DE +:105F4000C1073091C2072817390709F061C0F093E3 +:105F5000C207E093C107DF91CF910895EA01CE1700 +:105F6000DF07E8F54A815B819E0141155105B1F7D4 +:105F7000E901FB83EA8349915991C40FD51FEC17BE +:105F8000FD0761F4808191810296840F951FE901DC +:105F900099838883828193819B838A83F0E0E0E008 +:105FA00012968D919C9113970097B9F52D913C9184 +:105FB0001197CD010296820F931F2091C107309156 +:105FC000C2072817390739F6309751F51092C407E0 +:105FD0001092C307B093C207A093C107BCCFD3836D +:105FE000C28340815181840F951FC817D90761F47E +:105FF0004E5F5F4F88819981480F591F51834083BD +:106000008A819B81938382832115310509F0B0CF6A +:10601000F093C407E093C3079ECFFD01DC01C0CF1E +:1060200013821282D7CFB0E0A0E0E9E1F0E30C9454 +:10603000532D8C01009751F4CB010E94EE2E8C0160 +:10604000C801CDB7DEB7E0E10C946F2DFC01E60F7F +:10605000F71F9C0122503109E217F30708F49DC095 +:10606000D901CD91DC911197C617D70798F0C530AB +:10607000D10530F3CE0104978617970708F3C61BA6 +:10608000D70B2297C193D1936D937C93CF010E943C +:106090008A2FD6CF5B01AC1ABD0A4C018C0E9D1E17 +:1060A000A091C307B091C407512C412CF12CE12CD5 +:1060B000109731F58091C1079091C2078815990515 +:1060C00009F05CC04616570608F058C08091800160 +:1060D00090918101009741F48DB79EB74091840162 +:1060E00050918501841B950BE817F90708F055C0FE +:1060F000F093C207E093C107F90171836083A0CFD9 +:106100008D919C91119712966C90129713967C909A +:106110001397A815B90559F56C0142E0C40ED11CBE +:10612000CA14DB0420F1AC014A195B09DA011296AA +:10613000159780F06282738251834083D9016D93F9 +:106140007C93E114F10471F0D7011396FC93EE9364 +:10615000129776CF22968C0F9D1FF9019183808331 +:10616000F301EFCFF093C407E093C30769CF48165C +:10617000590608F42C017D01D3019ACFCB010E946E +:10618000EE2E7C01009749F0AE01B8010E94D53097 +:10619000C8010E948A2F870153CF10E000E050CF42 +:1061A00081E090E0F8940C94E530FB01DC0102C042 +:1061B00001900D9241505040D8F70895FB01DC0149 +:1061C00001900D920020E1F708951BE0C2E3DBE0AF +:1061D00004C0FE010E94E82E2196C333D107C9F7FF +:0461E000F894FFCF61 +:1061E40001FFD800340186011E00000000000000F9 +:1061F400000000000000000000000000000000009B +:10620400000000000000000000000000000000008A +:10621400000000000000000000000000000000007A +:106224000000013C960040010101280F05010142D4 +:1062340043312E3500000000000000000000000083 +:10624400000000000000000000000000000000004A +:106254000000000000000000000000000000000139 +:106264000000C50780004C0AFC09AC095C090C0954 +:10627400BC086C081C08CC074C0A7C072C07DC06FD +:106284008C063C06EC059C054C053C069C05FC0470 +:106294004C053C06AC045C040C04BC036C031C03FA +:1062A400CC027C022C02DC01CC027C028C013C017D +:1062B4003C06740D580D3C0D200D040DE80CCC0C5F +:1062C400B00C940C780C5C0C740D400C240C080C71 +:1062D400740DEC0BD00B080CEC0BB40BD00B080CAE +:1062E400980B7C0B600B440B280BE80C0C0B940CE8 +:1062F400F00AD40AB80A9C0A040DB80A080C090664 +:10630400040402020202020203200E040EE40DC879 +:1063140015C80DAC0D900D8C0F540F1C0FE40EAC72 +:106324000E740E3C0E00000000F90D590D860D464A +:106334000EB70D950DA90D000000008B10590DAD81 +:1063440011580D6E616E00696E66006F7666002FDF +:02635400330014 +:00000001FF diff --git a/software/binaries/1.7t1/T12.ino.with_bootloader.standard.hex b/software/binaries/1.7t1/T12.ino.with_bootloader.standard.hex new file mode 100644 index 0000000..15f7f07 --- /dev/null +++ b/software/binaries/1.7t1/T12.ino.with_bootloader.standard.hex @@ -0,0 +1,1625 @@ +:020000040000FA +:100000000C94330B0C945B0B0C945B0B0C942F2017 +:100010000C945B0B0C945B0B0C945B0B0C945B0BC8 +:100020000C945B0B0C945B0B0C945B0B0C945B0BB8 +:100030000C945B0B0C945B0B0C945B0B0C945B0BA8 +:100040000C94E51F0C945B0B0C94B31F0C948D1F48 +:100050000C945B0B0C9406210C945B0B0C945B0BC7 +:100060000C945B0B0C945B0B5361766500466C69DA +:1000700070004D61696E2053637265656E004F4B71 +:10008000004E4F00454E00434E00594553004E4F21 +:10009000004F4E004F464600496E666F730042693E +:1000A0006700504944004469726563740053617687 +:1000B0006500426F6F7374004F666600536C656530 +:1000C00070005361766500426F6F737400536C6506 +:1000D00065700044656661756C74005361766500F7 +:1000E0004164640044656C6574650052656E616DC1 +:1000F000650043616C696272617465004368616E9A +:1001000067650052657475726E004C616E67004CD5 +:100110004F5720566F6C0042757A7A6572005363B0 +:100120007265656E00436F6E74726F6C0054696D1A +:1001300065720054656D7000546970000000000025 +:10014000000F1DC20800054442080003845FBF0081 +:100150000FE44410000115451000054CC97F8009CB +:10016000244F900007C4C11000054D413F000554C5 +:1001700043810007C44D0200054441140005554168 +:10018000080007C881040000000000000000000013 +:100190000001083FFE001FFF810000004002000038 +:1001A00007FE0FF800040208080004020888000790 +:1001B000FE0888000402088800040208880007FE80 +:1001C0000888000402094800040202300007FE0407 +:1001D0000C000402180400000000000000000000F1 +:1001E0000001100080001FFF80800001103FFF0011 +:1001F000004004080007FC04080004440410000444 +:100200004402100004440220001FFF81200000402F +:1002100000C00000A00130000110020800060C0C14 +:1002200007001803B00200000000000000000000FA +:1002300000004000800000400080000FFF3FFF00F2 +:10024000084104080008410408000841041000089F +:10025000410210000FFF0220000841012000004071 +:1002600000C0000040013000004002080000400CC7 +:100270000700004030020000000000000000000005 +:10028000001FDF10200002120C20000224042000B6 +:10029000047F8020000424B820000FA4885000149C +:1002A000BF88500004A488500004A488480004BFFC +:1002B00088880004A48A880007A48C8400044489E8 +:1002C000070000818602000000000000000000001E +:1002D000000FF00491000440025200047F9054008B +:1002E000045088FF0007D08481000451008100047D +:1002F0004901FF0007CA0281000444048100044A46 +:100300001CFF0007EA0481000C510481000061C455 +:100310008500004080820000000000000000000016 +:100320000007FF802000008407FF00008404010014 +:10033000008404010000840401000FFFC7FF0000D7 +:10034000840400000084040000008405FF00008491 +:100350000501000104090100010409010002041162 +:10036000FF00040401010000000000000000000084 +:1003700000008204FF00004402010007FF902100FA +:100380000010102100001017FD0000101021000FB8 +:10039000FFD06100001010A10000281121000028EA +:1003A0001221000044142100008210A1000301D09A +:1003B00045000C009002000000000000000000005A +:1003C00000084410FE00042810920005FF2292004D +:1003D00000103C920000100892001CFE10920004D5 +:1003E0001020FE0004103E920005FF8092000410D1 +:1003F00000920005100E92000610309200041000CA +:10040000FE0000100082000000000000000000005C +:100410000007DF8840000A24104000114210FE004F +:10042000040022820002FF3D020008010A42000986 +:10043000F9103200090920120009F93E02000909E9 +:1004400000020009090E020009F930220008050027 +:100450001400080200080000000000000000000076 +:10046000000FC3F1E0000FE3F1F8000C70C19E0033 +:100470000C30C186000C30C183000C30C183000CED +:1004800060C183000C60C183000FC0C183000FC036 +:10049000C186000C00C186000C00C198000C03F15D +:1004A000F8000C03F1E00000000000000000000074 +:1004B0000000200820000FFF09FC000020080000B9 +:1004C00000203E880003FE08500002020BFE0003DD +:1004D000FE0C4000020218400003FE2BFE00020248 +:1004E00008480003FE0888000202085000020228A3 +:1004F00030001FFF91CC0000000000000104047CCC +:100500000000880444000FFF3F4400002004440022 +:1005100000200C440000200E44001FFF9544000002 +:10052000201444000050244400005004440000887B +:100530000445000104048500060385030018010436 +:1005400000000000000000000000000000000000AB +:1005500000047E21FC0004421104001F7E090400F7 +:10056000044221FC000542110400067E1104000C27 +:100570000005FC0015FF880000040813FE00044875 +:10058000325200044F125200044812520014A812B2 +:100590005200091F97FF000000000000000000004B +:1005A0000002103DFC000210250400041025040088 +:1005B00005FFBDFC000C102520000C382520001480 +:1005C0003825FE0004543D200004542510000492F8 +:1005D0002510000511A5090006113D450004102550 +:1005E0008300041001010000000000000000000072 +:1005F000001FC8102000124A0C20001AC904200055 +:1006000017480020001FFFB8200002080850001FF4 +:10061000C8085000020808500003C80848001E140B +:1006200008880001540A880015220C8400144389AC +:1006300007000081060200000000000002FE010029 +:100640000002823FFF00048202000004FE0200005C +:100650000C1004FC00141004080005FF8C100004AA +:1006600010141000043825FF000434041000045254 +:1006700004100004918410000510045000041004BC +:10068000200000000000000000000000000000004A +:100690000002030010001FDC3EFE00089002120062 +:1006A000051004FF001FDF84120002120CFE001F61 +:1006B000D2021000021222FE000A921410000A5206 +:1006C00014100012220DFF0002220810000A42142A +:1006D0001000040223FF00000000000000000000E2 +:1006E000000F78BC20000948A45000094AA8500017 +:1006F000094AA88800094AB104001FFEAAFB0009A4 +:100700004AA42000094AA42000094AA7FE00094A79 +:10071000B420000948A924000B48A22200088AA49A +:10072000A20011192040000000000000000000009D +:10073000000020008000005001FC0000880104003F +:10074000010403080006FB0490000800C0600007D5 +:10075000DF018000045106000004511BFE0004511B +:1007600002020007D9020200045602020000100330 +:10077000FE00001002020000000000000000000067 +:10078000000208209000027F9890001F8009FF005F +:10079000022201100006218B100007628DFE000A64 +:1007A000A20910000A14111000121431FE000208F0 +:1007B00011100002141110000222111000024391C6 +:1007C000FF00028111000000000000000000000096 +:1007D00000100700000008F83FFE0004802002001F +:1007E000008020020000BE23E2001C8222220004BE +:1007F000A4222200049422220004882222000494CD +:1008000023E200052220020005422002000A003FE8 +:10081000FE0011FFA00200000000000009FF0040E0 +:100820000004203FFF00042000000000FE00000044 +:100830001C420FFC00044200000007FF800000047F +:10084000000FFC0004FF000000048100000005818F +:100850000FFC00068108040004FF08040000810F5B +:10086000FC0000000000000000000000000000008C +:100870000001000FFE00010008200003FF08200017 +:100880000201082000042208200008200BFE0010AE +:10089000200820000050082800005008240000888C +:1008A000082200008810200001041020000203A785 +:1008B000FF000C010000000000000000000000002C +:1008C0000000400080001FFF9FFC0000400410005B +:1008D0000FFF02200000003FFF000FFE0000000895 +:1008E000420FF80008420808000FFE08080008023E +:1008F0000FF8000800080800080008080008000FAA +:10090000F8001000080800000000000000000000CF +:100910000007FE0FF80004020000000402000000BF +:1009200007FE00000004023FFE00040200800007F2 +:10093000FE008000009004900008910C880006934F +:100940001086000294208200009000800000900237 +:1009500080001FFF81000000000000000000000078 +:1009600000041012020005FF9FD200050092120041 +:100970001E28A2120004443FF20004820212000664 +:10098000000212000CFE1FD20014101252000410BC +:100990001242000410134200041012820015FF825C +:1009A0000A0008000204000000000000000000002F +:1009B00000002000000000203E04001FFFA20400F1 +:1009C0001000A2FF0000012204000FFE220400001C +:1009D000403E440000402224000440222400047CC5 +:1009E00022040004402204000A403E040009402280 +:1009F000240010FF80140000000008000000000028 +:100A00000010FE08200008820BFF0004820A01008B +:100A100010FE3C5100088208880008820904000288 +:100A2000FE0C0000040019FC0009FF282000192911 +:100A30000820000929082000092908200009292B7D +:100A4000FF000BFF9000000000000000000000000D +:100A5000001F7F90F80001080888000A100888002D +:100A6000047F0107001FC13A0000054909FC00048A +:100A700049088400044908880004490848000449DA +:100A800008500004490A200004160C58001421895B +:100A9000870008C0860200000000000080040000FB +:100AA0003FF02430219027902730207027F023300A +:100AB00030703FF000008004800400003FF03830C8 +:100AC00033103F90381033902790261030903FF02D +:100AD00000008004800400003FF0387030302310A4 +:100AE000279020102010279027903FF000008004CE +:100AF000800400003FF03CF03CF020102490249053 +:100B000020103CF03CF03FF0000080048004000026 +:100B10003FF037B023103030387038703030231049 +:100B200037B03FF000008004FCF4F860E044C08C73 +:100B3000C11CC22CC44CC88CD10CA204C4048FFCB0 +:100B4000187CBCFC8000BFF81FF8B0281FF8B40860 +:100B50001FF8B1081FF8B048BFF8B288BFF880008E +:100B60008000BFF81FF8B0081808B9E819B8B838FD +:100B70001838B9B8B9F8B0F8BFF8800015543FF884 +:100B800015503FF01550387010203104138C22A8F6 +:100B900017FC2AA80000000015543FFC15543FFC28 +:100BA00015543C0414043CFC14543CFC005400A8B0 +:100BB00000000000800400003FF03CF034B02490BE +:100BC000249027902310303038703FF000008004CC +:100BD000FF7CFE7CFCECE8DCC84C984C88240820A8 +:100BE00000000000000000008004E01CF3FCE7FCB3 +:100BF000CE0C8E1C9F9C1F3C1F0C0E0C0FFC87F80C +:100C000081E4C00CE01CF87C00045808580858081F +:100C100040087FF860185FE85B685FE85B681CE885 +:100C20005FE80000800400003FF03CF03CF03CF046 +:100C3000201020103CF03CF03CF03FF0000080041D +:100C4000F87CF7BC00007FF80000BFF4AB54AB5455 +:100C5000AB54AB54AB54AB54BFF4C00CF03CCE0C13 +:100C6000BF04B30473007F007E007C007C007C60C6 +:100C7000BC64BE04CF0CF03C81DC559C29045500BB +:100C8000299055D003FCFF002E0026700250827080 +:100C9000E600EE04800C001C3FF43FE03FC4378CBC +:100CA0002318303038703CF03FF03FF000008004F3 +:100CB000F03CCE4CBC34B8141880108042306078C0 +:100CC00060F844C08004B884CFCCF03CF87CE01CD1 +:100CD000C00CCFCCCFCCCFCCCFCCCFCCCFCCCFCC0B +:100CE000C84CCFCCC00CE01CFCFCF87CE01CC00C59 +:100CF000C00CC00CC00CC00CC00C80048004FFFCF5 +:100D0000F87CFCFC800400002000100008001000AB +:100D10002700000000000000000000000000800428 +:100D2000C3FC18001800C3FCFFFCFF0C006000604F +:100D3000FF0CFFFCF0FC06000600F0FC8FC4102046 +:100D400020104CC89FE43DF03DF01DE03EF03F70A8 +:100D50009FE48CC400003030F87CF33CF4BCF6BC5B +:100D6000F4BCF6BCF4BCE49CC84CD02CD02CC84CD1 +:100D7000E79CF03C88240820383038303830383050 +:100D80003830383039303BB03FF03FF0000080045D +:100D90001FE03FF07038601860186018FFFCFCFC22 +:100DA000FCFCFCFCF87CF87CFCFC7FF81E10333863 +:100DB0002D7C25382D3825382D386D80DEC0BF407C +:100DC000BF40DEC061803F007FF0FFE0C008C01C74 +:100DD000C038C870DCE4CFCCC78CC30CC00CC00CCE +:100DE000FFFC7FF8000006000C0018F838F03030E7 +:100DF0007060707878F878003C023F0C1FF80FF0B4 +:100E000003C000007FF8FFFCC00CC30CCB4CDB6CB4 +:100E1000DB6CD86CDCECCFCCC78CC00CFFFC7FF853 +:100E2000030007800FC00CC01CE01CE03CF03CF04D +:100E30007FF87FF8FCFCFCFCFFFC7FF8114082008F +:100E400021208FE023FC82004A23E200FE209FF055 +:100E500013F880802220C0804221BFF0FBFA8880F6 +:100E600002208480022084801A208080E3FE828019 +:100E7000020101000F421FC078411040084090401D +:100E800008421FC008411040FFFD104008405FC0ED +:100E90000840800008413FE00843252010412520FC +:100EA000104125202041252040417FF07FF84880D7 +:100EB000020049000201FFF00201001002027F203F +:100EC0002200410023F07F00220008002200FF8062 +:100ED000220088802200888022008A8022008900E7 +:100EE000FFFC080023F21FC022111040FBF09040CD +:100EF00022121FC02A11104033F1104060005FC061 +:100F0000AFFC800020413FE02243252022792520AC +:100F100022412520A541252048FD7FF01083DFC018 +:100F200010825040208250402FFFDFC0608252006C +:100F300061C25200A1C25FE022A3D20022A25100EE +:100F400024925100288E5090308BD45020825830FB +:100F500020801010104047C017FC44402003F4408C +:100F600023F844406208C440A3F8E4402001544000 +:100F70002FFD44402806444023F84440204044507C +:100F800020404850214050302080400020921FC017 +:100F90003DF990402090904040901FC07BFF0000A2 +:100FA000A0013FE021F90200FD09020021097FF0C4 +:100FB00021F90500210945002909888031F91070BF +:100FC0002108202025004300202070F8380133013B +:100FD0002D0125011E0117010F010A010301FC006B +:100FE000F200EB00E400E000DB00D300CD00C7001E +:100FF000C200BC00B800B200AD00A600A2009E0076 +:101000009800940091008E008A008700840081007F +:101010007E0072006D0068003E0053656C6563746D +:10102000205469700000000000003E5B4F5B3E3EB4 +:101030006B4F6B3E1C3E7C3E1C183C7E3C181C5784 +:101040007D571C1C5E7F5E1C00183C1800FFE7C328 +:10105000E7FF0018241800FFE7DBE7FF30483A06F7 +:101060000E2629792926407F050507407F05253F63 +:101070005A3CE73C5A7F3E1C1C08081C1C3E7F144F +:10108000227F22145F5F005F5F06097F017F006699 +:1010900089956A606060606094A2FFA29408047EF3 +:1010A000040810207E201008082A1C08081C2A08A2 +:1010B000081E101010100C1E0C1E0C30383E38305C +:1010C000060E3E0E06000000000000005F0000005B +:1010D00007000700147F147F14242A7F2A12231389 +:1010E00008646236495620500008070300001C229D +:1010F00041000041221C002A1C7F1C2A08083E08CF +:1011000008008070300008080808080000606000CF +:1011100020100804023E5149453E00427F400072C3 +:10112000494949462141494D331814127F1027453A +:101130004545393C4A494931412111090736494958 +:101140004936464949291E00001400000040340079 +:10115000000008142241141414141400412214082D +:1011600002015909063E415D594E7C1211127C7FE5 +:10117000494949363E414141227F4141413E7F49F3 +:101180004949417F090909013E414151737F0808DE +:10119000087F00417F41002040413F017F08142229 +:1011A000417F404040407F021C027F7F0408107F47 +:1011B0003E4141413E7F090909063E4151215E7F82 +:1011C00009192946264949493203017F01033F4055 +:1011D00040403F1F2040201F3F4038403F631408DD +:1011E000146303047804036159494D43007F41416E +:1011F000410204081020004141417F040201020421 +:101200004040404040000307080020545478407F8D +:10121000284444383844444428384444287F3854C7 +:1012200054541800087E090218A4A49C787F08046E +:10123000047800447D40002040403D007F10284459 +:101240000000417F40007C047804787C0804047826 +:101250003844444438FC1824241818242418FC7CEE +:1012600008040408485454542404043F44243C40D3 +:1012700040207C1C2040201C3C4030403C44281036 +:1012800028444C9090907C4464544C44000836416F +:10129000000000770000004136080002010204024D +:1012A0003C2623263C1EA1A161123A4040207A38F8 +:1012B000545455592155557941215454784121555B +:1012C00054784020545579400C1E527212395555AD +:1012D0005559395454545939555454580000457C83 +:1012E000410002457D420001457C40F0292429F05F +:1012F000F0282528F07C545545002054547C547C1B +:101300000A097F4932494949323248484832324A0B +:101310004848303A4141217A3A42402078009DA025 +:10132000A07D39444444393D4040403D3C24FF24A5 +:1013300024487E4943662B2FFC2F2BFF0929F620DA +:10134000C0887E090320545479410000447D413017 +:1013500048484A32384040227A007A0A0A727D0DA3 +:1013600019317D2629292F28262929292630484D5B +:101370004020380808080808080808382F10C8ACAA +:10138000BA2F102834FA00007B000008142A142217 +:1013900022142A14089500220095AA005500AAAA32 +:1013A00055AA55AA000000FF00101010FF001414E9 +:1013B00014FF001010FF00FF1010F010F0141414B0 +:1013C000FC001414F700FF0000FF00FF1414F404E5 +:1013D000FC141417101F10101F101F1414141F00DA +:1013E000101010F0000000001F101010101F10103F +:1013F0001010F010000000FF10101010101010104E +:1014000010FF10000000FF140000FF00FF00001F8D +:1014100010170000FC04F414141710171414F4042B +:10142000F40000FF00F714141414141414F700F758 +:10143000141414171410101F101F141414F4141083 +:1014400010F010F000001F101F0000001F1400001B +:1014500000FC140000F010F01010FF10FF14141422 +:10146000FF141010101F00000000F010FFFFFFFF1E +:10147000FFF0F0F0F0F0FFFFFF0000000000FFFFC2 +:101480000F0F0F0F0F38444438447C2A2A3E147E35 +:1014900002020606027E027E026355494163384419 +:1014A000443C04407E201E2006027E020299A5E7ED +:1014B000A5991C2A492A1C4C7201724C304A4D4D88 +:1014C000303048784830BC625A463D3E4949490070 +:1014D0007E0101017E2A2A2A2A2A44445F4444408C +:1014E000514A444040444A51400000FF0103E0801B +:1014F000FF000008086B6B083612362436060F0909 +:101500000F06000018180000001010003040FF0106 +:1015100001001F01011E00191D1712003C3C3C3C3C +:10152000000000000000000000240027002A000046 +:10153000000000250028002B0000000000230026EA +:101540000029000404040404040404020202020248 +:101550000203030303030301020408102040800177 +:101560000204081020010204081020AED5F0A83FA4 +:10157000D300408D14A1C8DA1281CFD9F1DB40A489 +:10158000A6AF200021007F220007506C65617365C3 +:101590002077616974004144433A200074656D709E +:1015A0003A2000536574206D65617375726564003F +:1015B000537465703A20003030300076312E377425 +:1015C00031005600560043000FE01FC01FC03F808F +:1015D0003FF87FF07FE007C007800F000E001C007F +:1015E0001800100014A03FF07FF8E01C6E18EC1CEF +:1015F00068186018E01C6058E01C7FF83FF014A0E9 +:101600004552524F5200484F4C4400484541540007 +:10161000574F524B5900424F4F535400534C45457E +:1016200050004F46460000003BEC7BEE63E663E66D +:1016300063E663E663E663E6636662266006600669 +:101640007FFE3FFC000001020408102040800000E3 +:101650000008000201000003040700000000000071 +:10166000000007216C2B11241FBECFEFD8E0DEBF96 +:10167000CDBF12E0A0E0B1E0E4EEF1E602C00590DB +:101680000D92A237B107D9F727E0A2E7B2E001C077 +:101690001D92A53CB207E1F71BE0C2E3DBE004C00A +:1016A0002197FE010E94E82EC133D107C9F70E949D +:1016B000CB210C94E5300C9400004F925F926F9216 +:1016C0007F928F929F92AF92BF92CF92DF92EF92D2 +:1016D000FF920F931F93CF93DF9300D000D0CDB72D +:1016E000DEB74B015C0129013A016701780120E076 +:1016F00030E0A9010E94ED2B87FDA6C020E030E07C +:10170000A901C301B2010E94ED2B87FD9DC020E01D +:1017100030E0A901C801B6010E94ED2B87FD94C0FD +:1017200081E020918507309186072130310509F04D +:1017300080E08093A60780926B0790926C07A0923E +:101740006D07B0926E0740926F07509270076092DB +:10175000710770927207C0927307D0927407E0927B +:101760007507F09276076091990770919A078091BA +:101770009B0790919C070E94F22B20E030E04AE703 +:1017800054E40E94262E69837A838B839C83809203 +:10179000770790927807A0927907B0927A079B0119 +:1017A000AC01C301B2010E94532C2B013C014092B9 +:1017B0007B0750927C0760927D0770927E0729819B +:1017C0003A814B815C81C701B6010E94262E6B01D4 +:1017D0007C01C0927F07D0928007E0928107F0924F +:1017E00082078091830790918407019769F5A5018D +:1017F000940160E070E0CB010E94B92D60937707FF +:10180000709378078093790790937A07A3019201E8 +:1018100060E070E0CB010E94B92D60937B0770936C +:101820007C0780937D0790937E07A701960160E077 +:1018300070E0CB010E94B92D60937F077093800701 +:1018400080938107909382070F900F900F900F90D5 +:10185000DF91CF911F910F91FF90EF90DF90CF908C +:10186000BF90AF909F908F907F906F905F904F90C0 +:10187000089580389105B0F46034710598F4E6E479 +:10188000F6E190E1969FD001A0781124A80F67702F +:10189000E60FF11D9491AE53BD4F442321F08C917E +:1018A000982B9C93089590958C919823FACFDF9272 +:1018B000EF92FF920F931F93CF93DF937C01D22E71 +:1018C0008B01040F111DEB0177FF02C0D0E0C0E0D7 +:1018D000C8010134110514F080E490E0C817D9075D +:1018E0003CF44D2DBE01C7010E94390C2196F0CF6A +:1018F000DF91CF911F910F91FF90EF90DF900895AE +:10190000CF92DF92EF92FF920F931F93CF93DF93CB +:101910006B01122FEC017C01E40EF11CCE15DF05EA +:1019200044F4202F412FB601CE010E94570C21967E +:10193000F5CFDF91CF911F910F91FF90EF90DF9046 +:10194000CF9008952F923F924F925F926F927F9225 +:101950008F929F92AF92BF92CF92DF92EF92FF92BF +:101960000F931F93CF93DF9300D01F92CDB7DEB7B5 +:10197000C22ED12C9601280F391F37FD4FC0803859 +:1019800091050CF04BC0E9824A017B013C01402EDD +:10199000512C160127E0220E311C93E03594279438 +:1019A0009A95E1F78B01B12CA12C1B821A82EA8156 +:1019B000FB8183E0F595E7958A95E1F7EA0DFB1D3C +:1019C000E80DF91DE4918A819B818770992720E8B1 +:1019D00030E002C0359527958A95E2F7C901F0E01D +:1019E000E223F923EF2B41F04981B8018A819B81E1 +:1019F000860D971D0E94390C8A819B8101969B83DD +:101A00008A838C159D059CF2A20CB31C0F5F1F4F9F +:101A1000C8018E199F09841595053CF20F900F900F +:101A20000F90DF91CF911F910F91FF90EF90DF907A +:101A3000CF90BF90AF909F908F907F906F905F906E +:101A40004F903F902F9008950F931F93CF93DF9364 +:101A5000EC018B0140E001960E94390C40E0B80196 +:101A6000CE0101970E94390CB8016F5F7F4F40E0B3 +:101A7000CE010E94390CB8016150710940E0CE01DD +:101A80000E94390C40E0B801CE01DF91CF911F9147 +:101A90000F910C94390C80E0E2ECF2E081118FEFB1 +:101AA000002481938193819381930394D1F70895C6 +:101AB0000895AF92BF92CF92DF92EF92FF920F9371 +:101AC0001F93CF93DF936C017B018B01040F151FD4 +:101AD000EB015E01AE18BF08C017D10759F069913C +:101AE000D601ED91FC910190F081E02DC6010995A0 +:101AF000892B79F7C501DF91CF911F910F91FF904D +:101B0000EF90DF90CF90BF90AF900895FC01538D80 +:101B1000448D252F30E0842F90E0821B930B5417C7 +:101B200010F0CF96089501970895FC01918D828D54 +:101B3000981761F0A28DAE0FBF2FB11D5D968C91ED +:101B4000928D9F5F9F73928F90E008958FEF9FEF2C +:101B50000895FC01918D828D981731F0828DE80FE8 +:101B6000F11D858D90E008958FEF9FEF0895FC01A2 +:101B7000918D228D892F90E0805C9F4F821B91096F +:101B80008F739927089582EC96E00E94B70D21E0AB +:101B9000892B09F420E0822F089580E090E0892BC2 +:101BA00029F00E94C30D81110C9400000895FC01DE +:101BB000A48DA80FB92FB11DA35ABF4F2C91848DAE +:101BC00090E001968F739927848FA689B7892C930B +:101BD000A089B1898C91837080648C93938D848D5E +:101BE000981306C00288F389E02D80818F7D808361 +:101BF0000895EF92FF920F931F93CF93DF93EC0121 +:101C000081E0888F9B8D8C8D98131AC0E889F989A3 +:101C1000808185FF15C09FB7F894EE89FF896083A6 +:101C2000E889F98980818370806480839FBF81E027 +:101C300090E0DF91CF911F910F91FF90EF90089569 +:101C4000F62E0B8D10E00F5F1F4F0F731127E02E44 +:101C50008C8D8E110CC00FB607FCFACFE889F9897C +:101C6000808185FFF5CFCE010E94D70DF1CFEB8D9E +:101C7000EC0FFD2FF11DE35AFF4FF0829FB7F89450 +:101C80000B8FEA89FB8980818062CFCFCF93DF936E +:101C9000EC01888D8823B9F0AA89BB89E889F98984 +:101CA0008C9185FD03C0808186FD0DC00FB607FCB9 +:101CB000F7CF8C9185FFF2CF808185FFEDCFCE01EC +:101CC0000E94D70DE9CFDF91CF910895833081F045 +:101CD00028F4813099F08230A9F008958730A9F076 +:101CE0008830C9F08430B1F4809180008F7D03C0CA +:101CF000809180008F7780938000089584B58F77DE +:101D000084BD089584B58F7DFBCF8091B0008F771F +:101D10008093B00008958091B0008F7DF9CFCF936C +:101D2000DF93282F30E0F901E25BF94E8491F9014D +:101D3000E95AFA4ED491F901ED5BFA4EC491CC23E5 +:101D4000A1F081110E94660EEC2FF0E0EE0FFF1F54 +:101D5000E75CFA4EA591B491EC91ED2381E090E01F +:101D600009F480E0DF91CF91089580E090E0FACF10 +:101D70001F93CF93DF93282F30E0F901E25BF94EF8 +:101D80008491F901E95AFA4ED491F901ED5BFA4ECA +:101D9000C491CC23A9F0162F81110E94660EEC2F5E +:101DA000F0E0EE0FFF1FE15DFA4EA591B4918FB701 +:101DB000F894EC91111108C0D095DE23DC938FBF0D +:101DC000DF91CF911F910895DE2BF8CFCF93DF9352 +:101DD00090E0FC01E95AFA4E24918D5B9A4EFC0189 +:101DE00084918823C9F090E0880F991FFC01EB5D76 +:101DF000FA4EA591B491FC01E15DFA4EC591D491E2 +:101E000061110DC09FB7F8948C91209582238C931B +:101E10008881282328839FBFDF91CF910895623066 +:101E200051F49FB7F8943C91822F809583238C9333 +:101E3000E8812E2BEFCF8FB7F894EC912E2B2C93BB +:101E40008FBFEACFCF93DF93EC0161E089E00E947E +:101E5000E60E209731F460E089E0DF91CF910C9499 +:101E6000B80ECF3FD10511F461E0F6CFE7E5F6E11A +:101E7000E491E33029F140F4E130B1F0E230D9F0FF +:101E8000C038D1058CF7E7CFE73021F1E83051F1C8 +:101E9000E430B1F780918000806280938000D0931D +:101EA0008B00C0938A0004C084B5806884BDC7BD20 +:101EB000DF91CF91089584B5806284BDC8BDF8CF0D +:101EC00080918000806880938000D0938900C093C7 +:101ED0008800EECF8091B00080688093B000C093FE +:101EE000B300E6CF8091B00080628093B000C093D1 +:101EF000B400DECF3FB7F89480918B0290918C02B2 +:101F0000A0918D02B0918E0226B5A89B05C02F3FEF +:101F100019F00196A11DB11D3FBFBA2FA92F982F0F +:101F20008827BC01CD01620F711D811D911D42E00A +:101F3000660F771F881F991F4A95D1F708958F92D2 +:101F40009F92AF92BF92CF92DF92EF92FF924B019E +:101F50005C010E947A0F6B017C010E947A0F6C1960 +:101F60007D098E099F09683E734081059105A8F39C +:101F700021E0821A9108A108B10888EEC80E83E01A +:101F8000D81EE11CF11C81149104A104B10429F7AD +:101F9000FF90EF90DF90CF90BF90AF909F908F9089 +:101FA00008952FB7F894609187027091880280910C +:101FB000890290918A022FBF089584E98093BC0022 +:101FC0008091BC0084FDFCCF08958093BB0084E821 +:101FD0008093BC008091BC0087FFFCCF089584EA09 +:101FE0008093BC008091BC0087FFFCCF88E70C94F5 +:101FF000E50F0E94EF0F80E48093BB0084E880939C +:10200000BC00E2ECF2E09091BC0097FFFCCF919114 +:102010009093BB008093BC0096E0E23CF90799F7EF +:102020008091BC0087FFFCCF0C94DD0FCF93C82FAD +:102030000E94EF0F80E00E94E50F8C2F0E94E50FB9 +:10204000CF910C94DD0F480F592F511D4138510588 +:1020500014F040E850E0481BFB0177FD379633E071 +:10206000F595E7953A95E1F7F695FE2FEE27F7956A +:10207000E795E80FF91FEE53FD4F6770772781E072 +:1020800090E001C0880F6A95EAF7382F213041F4BB +:10209000415078F08191DF011197832B8C93F8CF19 +:1020A0008095415030F09191DF01119798239C93D6 +:1020B000F8CF0895CF92DF92EF92FF920F93CF93D4 +:1020C000DF936C017B01C42FD22F202F0E9423109D +:1020D000B7016D0F711D61507109603471052CF4E9 +:1020E000202F4C2FC6010E942310202F4D2FB70107 +:1020F000C6010E94570CC6018C0F911D202F4D2F39 +:10210000B7010197DF91CF910F91FF90EF90DF9092 +:10211000CF900C94570C2F923F924F925F926F92F8 +:102120007F928F929F92AF92BF92CF92DF92EF9267 +:10213000FF920F931F93CF93DF93CDB7DEB72A970C +:102140000FB6F894DEBF0FBECDBF9A8389836A3085 +:1021500061F5DC0152968C91B8E08B9F90011124BF +:10216000E981FA8186859785820F931F97878687F5 +:102170001586148681E090E02A960FB6F894DEBFAB +:102180000FBECDBFDF91CF911F910F91FF90EF90C8 +:10219000DF90CF90BF90AF909F908F907F906F9087 +:1021A0005F904F903F902F9008956D3019F32981E3 +:1021B0003A813A872987D9011C96AD90BC90B0E846 +:1021C000AB16B1040CF07BC0F901C684D784F0E4EF +:1021D000CF16D1040CF073C0D90152966C9052976F +:1021E00045E09501649E200D311D11241216130641 +:1021F0000CF065C0262C312C910153E0220F331FC7 +:102200005A95E1F72C0D3D1D121613060CF057C020 +:102210005196BC91BB83E985FA85F089FC83649F64 +:10222000B00111249B012B5D3F4E3A832983712C11 +:10223000E981FA818491F5E07F1201C080E04601D6 +:1022400038E0532E282F30E03E832D834C8080FFD2 +:102250004B80411004C03B818C813817E1F010E0C5 +:1022600000E00615C0F4D501A00FB11FB887AF83F9 +:10227000F12CE12CE61460F4B701680D791D442DB2 +:102280008F8198850E94390CBFEFEB1AFB0AF2CFC1 +:102290000F5F1F4FE6CF8D819E81959587955A944C +:1022A000820C931C5110CECF7394E981FA81319640 +:1022B000FA83E983A20CB31CF6E07F12B9CFA9859B +:1022C000BA8552962C915297422F50E01C968D91D0 +:1022D0009C91B6E02B9F800D911D1124E985FA8514 +:1022E000958784872389222309F444CF6AEF640306 +:1022F0009001659F300D112420583F4F2817390752 +:102300000CF038CFDF010190F081E02D0190F081D9 +:10231000E02D6AE0CD0109952DCF0F931F93CF9348 +:10232000DF938C01D0E0C0E0F801EC0FFD1F649159 +:10233000662341F08DEA97E00E948B10892B11F003 +:102340002196F2CFCE01DF91CF911F910F91089589 +:10235000682F8DEA97E00C948B1090E080E0089550 +:1023600080917A00806980937A008EE480937C006B +:1023700061E070E080E090E00E949F0F83B7817F72 +:10238000826083BF80E130E020E093B7916093BF2B +:10239000889593B79E7F93BF90917A0096FDFCCF6E +:1023A0004091780050917900240F351F815069F7D2 +:1023B00080917A008F7780937A0084E03695279514 +:1023C0008A95E1F750E040E064EB7BE281E190E048 +:1023D0000E94272DC901089588EC80937C0080918C +:1023E0007A00806880937A0065E070E080E090E099 +:1023F0000E949F0F80917A00806480937A00809180 +:102400007A0086FDFCCF60917800709179006A5463 +:10241000714090E080E00E94F22B26EF38E24CE918 +:102420005FE30E94262E089590917A009069909320 +:102430007A008E50806480937C0083B7817F8260B5 +:1024400083BF20E290E080E033B7316033BF8895EE +:1024500033B73E7F33BF30917A0036FDFCCF4091D9 +:10246000780050917900840F951F215069F72091D1 +:102470007A002F7720937A0025E0969587952A9504 +:10248000E1F708958FE00E941412A0919202B0919A +:1024900093029C010E94AA2D0E94F42B28E539E7A3 +:1024A00043E353E40E94262E0E949F2ECB01089501 +:1024B0002091A00230E0EEE1F2E090E080E0AF0198 +:1024C0004E5152404217530724F44191840F911DFD +:1024D000F6CF089580919802882369F086E00E94E3 +:1024E0008F0E892B41F06AE070E080E090E00E945E +:1024F0009F0F1092980208950F931F93CF9380918E +:102500004801882399F0CFEF0FEE11E061E085E0FC +:102510000E94B80EC8010197F1F760E085E00E94C3 +:10252000B80EC8010197F1F7C15081F7CF911F9103 +:102530000F9108952F923F924F925F926F927F92E8 +:102540008F929F92AF92BF92CF92DF92EF92FF92C3 +:102550000F931F93CF93DF9310E000E0D0E0C0E033 +:102560003EE3E32EF12C40ECC42ED12CAA24A394FC +:10257000B12C60E2662E712C70E4272E312C4C2E8B +:1025800086E00E948F0E21E0892B09F020E0209345 +:102590009802F0929F02E0929E02D0929D02C09219 +:1025A0009C02B0929B02A0929A0282E890E09093E3 +:1025B000AB028093AA028091AA029091AB029595FA +:1025C0008795582E9FE1591243C0F0929F02E092E6 +:1025D0009E02D0929D02C0929C02B0929B02A09259 +:1025E0009A02EEEBF0E0F093AB02E093AA029FE5D3 +:1025F000592E0E944B0D82E08093BF071093BA07BB +:102600000093B907E0E3F0E0F093BC07E093BB0769 +:102610008EE50E94A8111092BA071092B907709225 +:10262000BC076092BB07912C812C841438F58091F3 +:10263000C102F40196E0989FE00DF11D1124E15BC9 +:10264000FE4F80810E94A811EFEF8E1A9E0AEDCFF7 +:10265000F0E65F12CECFF0929F02E0929E02D092FF +:102660009D02C0929C02B0929B02A0929A0230926C +:10267000AB022092AA0280E2582EBBCF1093BA0779 +:102680000093B9077092BC076092BB07852D0E942A +:10269000A8110E946A120E94F90F86E00E948F0E14 +:1026A000892B09F088CF80919802811184CF809086 +:1026B000C102F6E08F9E40011124C401815B9E4F50 +:1026C0004C01FC01EC0FFD1F50820E947C126AE05D +:1026D00070E080E090E00E949F0F2196005F1F4F06 +:1026E000C530D10509F04BCFF4011582DF91CF91B0 +:1026F0001F910F91FF90EF90DF90CF90BF90AF9020 +:102700009F908F907F906F905F904F903F902F9011 +:1027100008953F924F925F926F927F928F929F9215 +:10272000AF92BF92CF92DF92EF92FF920F931F93DF +:10273000CF93DF93CDB7DEB72E970FB6F894DEBFF9 +:102740000FBECDBF8091BE02882309F4A5C11092AF +:102750005F071092600710926107109262078090E5 +:102760005F0790906007A0906107B0906207C090EB +:10277000B302D090B402E090B502F090B602A70187 +:102780009601C501B4010E94B92D2B013C0120E046 +:1027900030E0A9010E94CE2E18160CF0A0C1C30192 +:1027A000B2010E949F2E80914901882309F4B8C18B +:1027B000C0926707D0926807E0926907F0926A07B3 +:1027C000E12CF12C00EA10E420E030E040E450E499 +:1027D0006E31710540F0E12CF12C00E81FE320E0A0 +:1027E00030E040E05FE360E070E080E391E40E946D +:1027F0005D0B8091A507882309F42AC10E94D10F9F +:102800006D837E838F83988780918D0790918E074B +:10281000A0918F07B09190074D815E816F8178857F +:10282000481B590B6A0B7B0B8091990790919A0773 +:10283000A0919B07B0919C07481759076A077B072F +:1028400008F406C1E0918707F091880780819181A3 +:10285000A281B38189839A83AB83BC83E0918B0788 +:10286000F0918C079C01AD0160817181828193811F +:102870000E94B92D4B015C0120919507309196077C +:10288000409197075091980769817A818B819C814B +:102890000E94B92D6B017C0120917B0730917C0750 +:1028A00040917D0750917E07C501B4010E94532CD1 +:1028B000209191073091920740919307509194078E +:1028C0000E94BA2D2B013C01409291075092920731 +:1028D00060929307709294073090A60731101AC047 +:1028E00020917707309178074091790750917A07C6 +:1028F000C701B6010E94532C9B01AC01C301B20178 +:102900000E94B92D6093910770939207809393076B +:10291000909394074090910750909207609093078E +:10292000709094071091A1079091A2079E87A091A3 +:10293000A307AD870091A407212F392F4A2F502FCD +:10294000C301B2010E94CE2E18160CF0CCC0812F0C +:102950009E85AD85B02F8093910790939207A093A9 +:102960009307B0939407332009F4D6C020917707DA +:10297000309178074091790750917A07C501B401E9 +:102980000E94532C4B015C0120917F0730918007FE +:102990004091810750918207C701B6010E94532CD4 +:1029A0009B01AC0160919107709192078091930710 +:1029B000909194070E94B92DA50194010E94BA2D0F +:1029C0006B017C019B01AC01612F7E858D85902F71 +:1029D0000E94ED2B87FD18C010919D0790919E07D6 +:1029E0009E87A0919F07AD870091A007212F392FC7 +:1029F0004A2F502FB601C7010E94ED2B87FD04C05E +:102A00001C2DDE86ED860F2DE0918907F0918A0757 +:102A1000812F9E85AD85B02F80839183A283B38360 +:102A200089819A81AB81BC818093950790939607A9 +:102A3000A0939707B09398078D819E81AF81B88549 +:102A400080938D0790938E07A0938F07B093900784 +:102A500060916307709164078091650790916607A4 +:102A60000E94982ECB012E960FB6F894DEBF0FBEB3 +:102A7000CDBFDF91CF911F910F91FF90EF90DF902D +:102A8000CF90BF90AF909F908F907F906F905F900E +:102A90004F903F900C94220F8091BD0260914401B1 +:102AA0007091450181110EC08091B1029091B202E6 +:102AB0002091BC02BC01222329F060914301680FE0 +:102AC000792F711D90E080E00E94F22B60935F07E8 +:102AD00070936007809361079093620740CEC301B3 +:102AE000B20190585ECE80919D0790919E07A09173 +:102AF0009F07B091A00789879A87AB87BC879C0105 +:102B0000AD01C301B2010E94ED2B87FF2CCF898557 +:102B10009A85AB85BC851FCF812C912C540134CF75 +:102B200020E030E040E05FE3C701B6010E94BA2D2B +:102B30009B01AC01C501B4010E94CE2E18164CF4C5 +:102B4000109263071092640710926507109266074F +:102B50007FCF80E090E0AFE7B3E48093630790938A +:102B60006407A0936507B093660772CF4F925F9298 +:102B70006F927F928F929F92AF92BF92CF92DF928D +:102B8000EF92FF92CF93DF93809094029090950202 +:102B9000A0909602B0909702C091C102D0E0C5010A +:102BA000B4010E94982E6B017C0120E030E048E4E3 +:102BB00053E4C501B4010E94ED2B93E0CC0FDD1F5F +:102BC0009A95E1F7CE5FDE4F87FF31C028813981CA +:102BD00050E040E02551310941095109C701B601D2 +:102BE0000E94D82E28EC30E040E050E00E94272DD3 +:102BF000CA01B9016B5E7F4F8F4F9F4F0E94F42B2C +:102C00006093B3027093B4028093B5029093B602BE +:102C1000DF91CF91FF90EF90DF90CF90BF90AF907A +:102C20009F908F907F906F905F904F9008954A8013 +:102C30005B80712C612C20E030E04CE853E4C5014E +:102C4000B4010E94ED2B87FF1FC088809980B12CB2 +:102C5000A12CA7019601285C310941095109C30142 +:102C6000B201681979098A099B090E94D82E20E5CA +:102C700030E040E050E00E94272DCA01B901680D04 +:102C8000791D8A1D9B1DBACF2C813D8150E040E00B +:102C90002419350946095709C701B6016851714021 +:102CA000810991090E94D82E20E530E040E050E0F3 +:102CB0000E94272DCA01B901640D751D861D971D3F +:102CC0009DCFFC0101900020E9F73197AF01481B2F +:102CD000590BBC018DEA97E00C94590D8F929F928D +:102CE000AF92BF920F931F93CF93DF93CDB7DEB711 +:102CF000A1970FB6F894DEBF0FBECDBF19A2423028 +:102D000008F44AE08E010F5D1F4F842E912CB12CE8 +:102D1000A12CA50194010E94882DE62FB901CA01BA +:102D2000EA30F4F4E05DD801EE938D01232B242BDF +:102D3000252B79F790E080E0109719F0CD010E94E3 +:102D40006116A1960FB6F894DEBF0FBECDBFDF911E +:102D5000CF911F910F91BF90AF909F908F9008954A +:102D6000E95CE1CFCF92DF92EF92FF92CF93DF93B6 +:102D700097FF19C06B017C018DE20E94A811EC0144 +:102D800066277727CB016C197D098E099F094AE0D8 +:102D90000E946E168C0F9D1FDF91CF91FF90EF90D8 +:102DA000DF90CF9008954AE0DF91CF91FF90EF90B0 +:102DB000DF90CF900C946E164F925F926F927F923D +:102DC0008F929F92AF92BF92CF92DF92EF92FF923B +:102DD0000F931F93CF936B017C01742EAC019B0169 +:102DE0000E94D32E882399F083E692E0CF911F9121 +:102DF0000F91FF90EF90DF90CF90BF90AF909F909A +:102E00008F907F906F905F904F900C946116460169 +:102E10005701E894B7F82FEF3FEF4FE75FE7C501A1 +:102E2000B4010E94D32E81110DC02FEF3FEF4FE769 +:102E30005FE7C501B4010E94ED2B18161CF487E66C +:102E400092E0D4CF2FEF3FEF4FE75FE4C701B60129 +:102E50000E94CE2E18161CF48BE692E0C7CF2FEFFF +:102E60003FEF4FE75FECC701B6010E94ED2B87FDF6 +:102E7000F3CF20E030E0A901C701B6010E94ED2B9D +:102E800010E000E087FF08C08DE20E94A8118C01CD +:102E9000F7FAF094F7F8F094C0E060E070E080E0BA +:102EA0009FE37C1641F020E030E040E251E40E94D4 +:102EB000262ECF5FF6CFA70196010E94BA2D2B01D7 +:102EC0003C010E949F2E4B015C014AE00E946E165D +:102ED0007C01E00EF11ECC23B1F1C501B4010E94CA +:102EE000F22B9B01AC01C301B2010E94B92D4B0131 +:102EF0005C018EE20E94A811E80EF91EC15018F183 +:102F000020E030E040E251E4C501B4010E94532CBE +:102F10002B013C010E949F2E4B01B12CA12C4AE0B9 +:102F2000C501B4010E946E16E80EF91EC501B40178 +:102F30000E94F22B9B01AC01C301B2010E94B92D8A +:102F40004B015C01DBCFC701CF911F910F91FF9027 +:102F5000EF90DF90CF90BF90AF909F908F907F9039 +:102F60006F905F904F900895CF92DF92EF92FF9213 +:102F70000F931F93CF93DF93C82F81E0DC2FD827C7 +:102F8000D093BE07C093BD078093BF070C2F2EE0E0 +:102F900046E661E370E081E090E00E945A102091E3 +:102FA000BF023091C002253F81E03807B8F4A4E6A3 +:102FB000B0E00E94AA2D24EF31E040E050E00E94F2 +:102FC000272DBA01A9014E5F5F4F6F4F7F4F2EE053 +:102FD00061E370E081E090E00E94800C60915F0707 +:102FE0007091600780916107909162070E94982E0E +:102FF0009B01AC01A4E6B0E00E94462D34EFC32E45 +:10300000DD24D394E12CF12CA70196010E94272DF9 +:10301000DA01C9010296A11DB11D02970C2F2DE006 +:1030200043E062E370E00E94800C60915F07709162 +:10303000600780916107909162070E94982E9B0122 +:10304000AC01A4E6B0E00E94462DA70196010E94C3 +:10305000272DDA01C9010296A11DB11D039724E0B5 +:1030600045E06CE370E00E94800C60915F07709116 +:10307000600780916107909162070E94982E9B01E2 +:10308000AC01A4E6B0E00E94462DA70196010E9483 +:10309000272D89019A010E5F1F4F2F4F3F4F01507F +:1030A000110941E3E42EF12C4D2FB701C8010E9414 +:1030B000390C8FEFE81AF80A8DE3E816F104A1F74E +:1030C00060915F077091600780916107909162073E +:1030D0000E94982E9B01AC01A4E6B0E00E94462D10 +:1030E00024EF31E040E050E00E94272DDA01C901D1 +:1030F0000296A11DB11D0397ED2E04E025E048ECDA +:103100005FE06BE370E00E94A20C0C2F2EE047E121 +:1031100061E370E088E690E00E945A1060916307D6 +:103120007091640780916507909166070E94982EC0 +:103130009B01AC012F5F310941095109A7E1B0E0C2 +:103140000E94462DCC24C394DD24DA94ED2CFD2C72 +:10315000A70196010E94272D422F2EE061E370E027 +:1031600088E690E00E94800CC093BE07D093BD0714 +:1031700082E090E09093BA078093B90707E310E0EC +:103180001093BC070093BB0760915F0770916007C5 +:10319000809161079091620740E00E94DC1688EF01 +:1031A0000E94A81186EC9FE00E948D1189E690E0B4 +:1031B0009093BA078093B9071093BC070093BB079D +:1031C000609163077091640780916507909166072D +:1031D0000E94982E9B01AC012F5F310941095109D2 +:1031E000A4E6B0E00E94462DA70196010E94272D7B +:1031F000CA01B9010E94B21684EC9FE00E948D11B1 +:10320000D093BE07C093BD07DF91CF911F910F915F +:10321000FF90EF90DF90CF9008956F927F928F9202 +:103220009F92AF92BF92CF92DF92EF92FF920F9355 +:103230001F93CF93DF93B090C10277247394B110A2 +:1032400001C0712C809142018150990B10929F0214 +:1032500010929E02880F991F90939D0280939C026A +:1032600081E090E090939B0280939A028B2D90E0F6 +:10327000880F991F9093AB028093AA0286E00E9468 +:103280008F0E21E0892B09F020E020939802FF2483 +:10329000F39472E0972EE6E08E2EFCE0CF2ED12C38 +:1032A0000E944B0D1092BC071092BB071092BA07F8 +:1032B0001092B907C091AA02D091AB02D595C795DB +:1032C000EC2E8E011127C801870D911D77FC9A9570 +:1032D0008B199109712C97FD06C08330910514F06C +:1032E00082E090E0782EF092BE071092BD07909297 +:1032F000BF078AE190E10E948D111092BE07F09203 +:10330000BD071092BA071092B907A72C072C000C22 +:10331000BB08C501019654E0880F991F5A95E1F743 +:103320009093BC078093BB0788E190E10E948D11C8 +:103330006C2E671890E080E098012A193B0959012A +:10334000209142018C010F5F1F4F6216D0F4D09282 +:10335000BA07C092B907980144E0220F331F4A957B +:10336000E1F73093BC072093BB078A0D9B1D889E15 +:103370009001899E300D1124C901815B9E4F0E94EE +:103380006116C801639403301105D1F60E946A12D8 +:103390000E94F90F86E00E948F0E892BB9F480916C +:1033A0009802811113C00E947C12E092C102DF9149 +:1033B000CF911F910F91FF90EF90DF90CF90BF9032 +:1033C000AF909F908F907F906F900895BC2E68CFA4 +:1033D0000E94D030EF92FF920F931F93CF93DF9311 +:1033E000EC017B018A0188819981009729F02A816B +:1033F0003B812417350788F4B8016F5F7F4F0E9427 +:103400001330009791F0998388831B830A832C8162 +:103410003D81232B11F4FC0110821D830C83B70125 +:10342000888199810E94DE300CC088819981009743 +:1034300011F00E948A2F198218821D821C821B8221 +:103440001A82CE01DF91CF911F910F91FF90EF90E3 +:1034500008951F93CF93DF93EC01162F0E94112D37 +:10346000181739F0612FCE01DF91CF911F910C9485 +:10347000192DDF91CF911F910895AF92BF92CF92F6 +:10348000DF92EF92FF920F931F93CF93DF936091A0 +:10349000470182E090E00E94291A6091460183E092 +:1034A00090E00E94291A6091450184E090E00E941A +:1034B000291A6091440185E090E00E94291A6091E8 +:1034C000430186E090E00E94291A60914C0187E058 +:1034D00090E00E94291A60914B0188E090E00E94E0 +:1034E000291A60914A0189E090E00E94291A6091AE +:1034F0007F018AE090E00E94291A609149018BE0E7 +:1035000090E00E94291A609148018CE090E00E94AE +:10351000291A6091C1028DE090E00E94291A609101 +:1035200042018EE090E00E94291A6091BB028FE078 +:1035300090E00E94291A6091990280E190E00E9437 +:10354000291A6091B80281E190E00E94291A82E173 +:10355000E82EF12C10E006E0809142011817B8F532 +:10356000109F60011124D0E0C0E0FE01EC0DFD1DB4 +:10357000E15BFE4F6081C7018C0F9D1F0E94291ADD +:103580002196C630D10589F7670186E0C80ED11CA7 +:1035900088E0189FE0011124CE5FDE4F8EE0E80E38 +:1035A000F11C69812296C6010E94291A560182E007 +:1035B000A80EB11CFE0132976081C60101960E94DF +:1035C000291A6501AE14BF0461F71F5FC5CFDF91F3 +:1035D000CF911F910F91FF90EF90DF90CF90BF9010 +:1035E000AF9008958F929F92AF92BF92CF92DF9249 +:1035F000EF92FF92CF938FEF90E00E94220F8BEA21 +:1036000094E00197F1F78EE00E9414127C018AE0A9 +:103610000E948F0E90917202981729F091E090937A +:10362000B70280937202809101019FEF980F9093EF +:103630000101811106C00E9442129093BA02809348 +:10364000B90260916307709164078091650790915A +:1036500066070E94982ECB010E94220F8090940250 +:1036600090909502A0909602B0909702B70190E0DA +:1036700080E00E94F22BA50194010E94B92D2DEC4F +:103680003CEC4CE45DE30E94532CA50194010E94A4 +:10369000BA2D609394027093950280939602909352 +:1036A00097020E94B6156091BF027091C00290E02F +:1036B00080E00E94F22B6B017C0120915F0730912A +:1036C000600740916107509162070E94ED2B8111C4 +:1036D000B5C02091B3023091B4024091B50250912F +:1036E000B602C701B6010E94B92D6B017C0120E032 +:1036F00030E0A9010E94CE2E18160CF095C020E0F3 +:1037000030E040EA50E4C701B6010E94CE2E181600 +:103710000CF494C06091B1027091B20290E080E02C +:103720000E94F22B2091B3023091B4024091B50275 +:103730005091B6020E94B92D6B017C0120E030E06F +:10374000A9010E94CE2E18160CF087C0C701B60141 +:103750000E949F2E6530710508F083C080914E0154 +:10376000811105C080914D0181110E947C1281E080 +:1037700080934E0110924D018091BF029091C00242 +:10378000853F21E0920710F0109200012091000186 +:10379000211140C0843F9140E8F58FEF90E00E94F6 +:1037A000220F0E947C12C1E0C09300010E940D19FB +:1037B0000E943D1AC093B7028EE00E941412BC0111 +:1037C00090E080E00E94F22B609394027093950247 +:1037D00080939602909397021092A9028091B10271 +:1037E0009091B20224E630E030939F0220939E0233 +:1037F00020E233E030939D0220939C022AE030E0E7 +:1038000030939B0220939A02880F991F9093AB02EA +:103810008093AA02CF91FF90EF90DF90CF90BF905E +:10382000AF909F908F90089520E030E040EA50ECF8 +:10383000C701B6010E94ED2B87FF6CCF6091B302E8 +:103840007091B4028091B5029091B6020E949F2EB1 +:103850007093C0026093BF025DCFC701B60190585C +:1038600077CF10924E0188CF0C94112D2F923F925A +:103870004F925F926F927F928F929F92AF92BF9280 +:10388000CF92DF92EF92FF920F931F93CF93DF932C +:10389000CDB7DEB768970FB6F894DEBF0FBECDBFC9 +:1038A00026E02093BF0721E02093BE071092BD07BA +:1038B0000091AB071091AC076091A7077091A80722 +:1038C00030E8232E32E0332EF10130E020E02017E3 +:1038D000310730F4DB01A20FB31F6115710521F42C +:1038E00010927302A3E7B2E04C9150E041935193E0 +:1038F0002F5F3F4F2330310551F71C8A1B8A1E8AE8 +:103900001D8A188E1F8A4AE08E010F5F1F4FB80173 +:103910000E94A32BF80101900020E9F73197AF0135 +:10392000401B510BB801CE0143960E94EA198091C9 +:10393000A7079091A807009709F4E8C06B897C89D4 +:103940006115710509F4E0C04091A9075091AA07DB +:103950002F89388D4217530708F4D6C00E94DE30F5 +:103960008F89988D9093AC078093AB07188E1F8A30 +:103970008B899C89009711F00E948A2F94E7E92E89 +:1039800092E0F92E24E0A22EB12CD12CC12C8091F2 +:10399000AB079091AC07C816D90638F4E091A70799 +:1039A000F091A807309709F0C8C010927302E3E7BE +:1039B000F2E0808190E0F10120813181821B930B44 +:1039C000F2E3F89FB001F99F700D1124072E000C4F +:1039D000880B990B0E94F42BF701208131814281E1 +:1039E00053810E94BA2D2B013C0120E030E0A90157 +:1039F0000E94ED2B8111A4C0F701408251826282A6 +:103A0000738201E022E346E270E060E0C5010497C2 +:103A10000E94800C8EEC882E99249A940FEF1FEF51 +:103A2000F701208131814281538160E070E080E8BC +:103A300090E40E94B92D2B013C01B401092C000C2B +:103A4000880B990B0E94F42B9B01AC01C301B201BE +:103A50000E94BA2D0E94982EB092BA07A092B90780 +:103A60007093BC076093BB07F10160817181600FA7 +:103A7000711F60537109072E000C880B990B0E946F +:103A8000B2160F5F1F4FF2E38F0E911C023011052B +:103A900039F62FEFC21AD20A84E0E80EF11CECE2EC +:103AA000AE0EB11CF2E02F0E311C23E0C216D10481 +:103AB00009F06DCF00E022E040E870E060E090E0C7 +:103AC00080E00E94800C2DE040E863E370E090E02D +:103AD00080E00E94800C68960FB6F894DEBF0FBE9F +:103AE000CDBFDF91CF911F910F91FF90EF90DF90AD +:103AF000CF90BF90AF909F908F907F906F905F908E +:103B00004F903F902F9008950E948A2F8B899C8917 +:103B10009093A8078093A7078D899E899093AA0701 +:103B20008093A9078F89988D9093AC078093AB07FA +:103B30001C8A1B8A1E8A1D8A19CFEC0DFD1D39CFE8 +:103B4000C301B20190582DEC3CEC4CE45FE30E94C1 +:103B5000532CA30192010E94BA2DF7016083718357 +:103B6000828393834ECF86E00E948F0E21E0892BC3 +:103B700009F020E0209398020E944B0D1092BC07A0 +:103B80001092BB071092BA071092B9078091AA024F +:103B90009091AB02959587950E94361C0E94F90F73 +:103BA0000E946A1286E00E948F0E892B29F780916D +:103BB00098028111E1CF0E947C128091A707909119 +:103BC000A807009721F00E94752BCB01089560E0B3 +:103BD00070E0CB01FACF2F923F924F925F926F929B +:103BE0007F928F929F92AF92BF92CF92DF92EF928D +:103BF000FF920F931F93CF93DF93CDB7DEB76397F9 +:103C00000FB6F894DEBF0FBECDBFB82EE091A00274 +:103C1000F0E0E25EFD4F80818150990B10929F028F +:103C200010929E02880F991F90939D0280939C0290 +:103C300081E090E090939B0280939A028B2D90E01C +:103C4000880F991F9093AB028093AA0286E00E948E +:103C50008F0E21E0892B09F020E02093980210922A +:103C6000BE0781E08093BD078091AA029091AB02CC +:103C70009C01359527953D872C871C857901FF246C +:103C800097012B19310948E3429FC001439F900DD2 +:103C90001124C80ED91EC114D10409F16627772753 +:103CA0006C197D09072E000C880B990B0E94F42BD0 +:103CB00020E030E040E05FE30E94532C4B015C01C8 +:103CC000B601DD0C880B990B0E94F42B9B01AC0113 +:103CD000C501B4010E94BA2D0E94982E6B010E946A +:103CE0004B0D1092BC071092BB071092BA071092AE +:103CF000B907370182E0681A7108560198E4A91AD9 +:103D0000B108F7013396FB8BEA8B77FC92C0E09108 +:103D1000A002F0E0E25EFD4F80818615170409F0F5 +:103D20000CF487C001E020E340E370E060E0C501EF +:103D30000E94800C95012D5F3F4F398B288B00E04E +:103D40002AE24AE263E070E0888999890E94800C47 +:103D500070E060E0C5010E94240D70E060E0450164 +:103D60003FE2830E911CC4010E94240D6FE270E0BB +:103D7000C5010E94240D6FE270E0C4010E94240D71 +:103D80000E945812E82FC50141968E38910508F01F +:103D900050C0E60DF72DF11DEE0FFF1FEE52FE4F46 +:103DA000808191819F878E8753E0452E512C312C45 +:103DB000212C912C812CF40133E0F595E7953A956F +:103DC000E1F7E20DF31D2E853F85E20FF31FE4912D +:103DD000C4018770992720E830E002C03595279507 +:103DE0008A95E2F7C901F0E0E223F923EF2B79F09D +:103DF000C401880F991F880D991D01E023E043E05D +:103E0000B201E889F9898E0F9F1F0E94800CFFEF95 +:103E10008F1A9F0A2EE08216910469F632E0230E73 +:103E2000311C43E0440E511C8DE24816510409F048 +:103E3000C0CF9FEF691A790AE8E3AE0EB11C2A8958 +:103E40003B892615370509F060CF8091BB028111AF +:103E500040C00E945812F701E80FF11DEE0FFF1F3E +:103E6000EA57FE4F40815181EE24E39400E124E2C1 +:103E700060E370E080E390E00E94A20C0E94F90FE2 +:103E80000E946A1286E00E948F0E892B01F58091B4 +:103E9000980281111CC00E947C12812F63960FB67C +:103EA000F894DEBF0FBECDBFDF91CF911F910F9170 +:103EB000FF90EF90DF90CF90BF90AF909F908F904A +:103EC0007F906F905F904F903F902F900895BC84AB +:103ED000CBCE80E390E09093BA078093B907E1E3FB +:103EE000F0E0F093BC07E093BB0781E08093BF074D +:103EF0000E945812FC858F0FE82FF0E0EE0FFF1F95 +:103F0000E453F04F65917491CE0101960E949C2B71 +:103F1000CE0101960E946116B1CF1F920F920FB68B +:103F20000F9211242F933F934F935F936F937F933F +:103F30008F939F93AF93BF93EF93FF9382EC96E0A1 +:103F40000E94D70DFF91EF91BF91AF919F918F91FB +:103F50007F916F915F914F913F912F910F900FBE85 +:103F60000F901F9018951F920F920FB60F92112469 +:103F70002F938F939F93EF93FF93E091D206F0914D +:103F8000D3068081E091D806F091D90682FD1BC04E +:103F900090818091DB068F5F8F732091DC06821702 +:103FA00041F0E091DB06F0E0EE53F94F958F8093FE +:103FB000DB06FF91EF919F918F912F910F900FBE94 +:103FC0000F901F9018958081F4CF1F920F920FB61B +:103FD0000F9211242F933F938F939F93AF93BF938F +:103FE0008091870290918802A0918902B0918A0203 +:103FF0003091860223E0230F2D3758F50196A11D3D +:10400000B11D209386028093870290938802A0932B +:104010008902B0938A0280918B0290918C02A091C8 +:104020008D02B0918E020196A11DB11D80938B026D +:1040300090938C02A0938D02B0938E02BF91AF91AA +:104040009F918F913F912F910F900FBE0F901F90D6 +:10405000189526E8230F0296A11DB11DD2CF1F92FD +:104060000F920FB60F9211242F933F934F935F93AC +:104070006F937F938F939F93EF93FF9383B181709F +:1040800029B190919102981709F49DC030E0220F58 +:10409000232F221F330B922F809391024091900285 +:1040A000241709F490C02093900220919A02309135 +:1040B0009B02981719F03195219531094091AA0278 +:1040C0005091AB0260919E0270919F02240F351FA8 +:1040D000261737070CF48BC020919A0230919B026F +:1040E000981719F03195219531094091AA02509104 +:1040F000AB0260919C0270919D02240F351F6217E4 +:1041000073070CF46FC040919A0250919B0298176C +:1041100019F05195419551092091AA023091AB02B5 +:10412000240F351F3093AB022093AA0241E098136D +:1041300040E020918F02421709F440C020919A027A +:1041400030919B02981719F03195219531096091B2 +:10415000AA027091AB02E0919E02F0919F02260F9D +:10416000371F2E173F070CF44CC020919A02309154 +:104170009B02981719F03195219531096091AA0297 +:104180007091AB02E0919C02F0919D02260F371FC7 +:10419000E217F3078CF120919A0230919B02981755 +:1041A00019F03195219531098091AA029091AB02C5 +:1041B000820F931F9093AB028093AA0240938F02C9 +:1041C00081E08093B702FF91EF919F918F917F9152 +:1041D0006F915F914F913F912F910F900FBE0F9074 +:1041E0001F90189520919C0230919D029BCF2091A9 +:1041F0009E0230919F0296CF80919C0290919D02E9 +:10420000D9CF80919E0290919F02D4CF18950F93A1 +:104210001F93CF93DF93E2ECF6E01382128288EED5 +:1042200093E0A0E0B0E084839583A683B78389E41C +:1042300092E09183808385EC90E09587848784EC7D +:1042400090E09787868780EC90E0918B808B81EC63 +:1042500090E0938B828B82EC90E0958B848B86EC44 +:1042600090E0978B868B118E128E138E148EEDEA52 +:10427000F7E0138212821682178280E1808715820E +:10428000148212868BE592E09183808315861486D2 +:104290001786168611E0108B118A128B138AE7EAB3 +:1042A000F7E011821082138212821582148250E08C +:1042B00040E061E772E0CF010E94EA19CBE6D7E067 +:1042C00083E697E09F8F8E8F87E697E09D8F8C8F98 +:1042D0008FE597E099A388A31AAE1AAA1BAA1CAA75 +:1042E0001DAA80E090E0AFE7B3E48EAB9FABA8AF30 +:1042F000B9AF84E690E0A0E0B0E08EA79FA7A8AB9E +:10430000B9AB81E090E0998F888F9B8F8A8F1BAF2C +:1043100080E090E0A0E3B1E488839983AA83BB8323 +:1043200080E090E0A0E0BFE38C839D83AE83BF83F9 +:1043300080E090E0A0E8BFE388879987AA87BB87E1 +:1043400080E090E0A0E3B1EC8C879D87AE87BF87CB +:104350008DEC9CECACE4BDEB888B998BAA8BBB8B72 +:1043600080E090E0A0E2B1EC8C8B9D8BAE8BBF8B9C +:104370000E94D10F0EA51FA528A939A9601B710B9A +:10438000820B930B6AA37BA38CA39DA3DF91CF9198 +:104390001F910F910895CF93DF93CDB7DEB72B9781 +:1043A0000FB6F894DEBF0FBECDBF789484B582609F +:1043B00084BD84B5816084BD85B5826085BD85B5C9 +:1043C000816085BD80916E00816080936E00109247 +:1043D00081008091810082608093810080918100C2 +:1043E0008160809381008091800081608093800053 +:1043F0008091B10084608093B1008091B0008160B1 +:104400008093B00080917A00846080937A008091DC +:104410007A00826080937A0080917A008160809334 +:104420007A0080917A00806880937A001092C100AF +:104430001092B90088E48093B8000E94EF0F80E0EA +:104440000E94E50F0BE615E18AE8E82E85E1F82EDB +:10445000F80184910E94E50F0F5F1F4FE016F106EF +:10446000B9F70E94DD0F11E01093B8000E94F90F18 +:1044700081E28093B50760E08EE00E94E60E60E086 +:104480008FE00E94E60E61E085E00E94E60E61E0AA +:1044900089E00E94E60E62E087E00E94E60E62E09C +:1044A00088E00E94E60E62E086E00E94E60E62E08E +:1044B0008AE00E94E60E8FEF90E00E94220F60E0FB +:1044C00085E00E94B80E80917A00876080937A0020 +:1044D00080917A00886080937A00789410936B00C2 +:1044E000109368001BBB90E080E00E94341C182FE2 +:1044F00081E090E00E94341C912F8F3F984009F09A +:10450000BBC082E090E00E94341C182F83E090E052 +:104510000E94341C912F909347018093460184E0C0 +:1045200090E00E94341C182F85E090E00E94341C1B +:10453000912F909345018093440186E090E00E9482 +:10454000341C8093430187E090E00E94341C8093E8 +:104550004C0188E090E00E94341C80934B0189E07C +:1045600090E00E94341C80934A018AE090E00E940F +:10457000341C80937F018BE090E00E94341C91E01A +:10458000811101C090E0909349018CE090E00E947D +:10459000341C91E0811101C090E0909348018DE0BE +:1045A00090E00E94341C8093C1028EE090E00E9453 +:1045B000341C282E809342018FE090E00E94341C2E +:1045C0008093BB0280E190E00E94341C91E0811155 +:1045D00001C090E09093990281E190E00E94341C28 +:1045E0008093B802B2E08B2EB1E09B2E1FE4A12E87 +:1045F00011E0B12E02E1E02EF12C312C231409F44C +:1046000047C010E000E0C701800F911F0E94341CDA +:10461000F501E00FF11F80830F5F1F4F063011057A +:1046200091F7670126E0C20ED11C3EE0E30EF11CBB +:104630003401C6010E94341C082F10E0102F0027FF +:10464000F301118300832601F2E04F0E511CC601D5 +:1046500001960E94341C082BF301019311933F0132 +:1046600062014E145F0429F73394F8E08F0E911C19 +:1046700026E0A20EB11CC2CF68E090E080E00E946C +:10468000291A6FEF81E090E00E94291A0E943D1ADA +:104690001091990280EC111101C088EC0E94161053 +:1046A00080EA111101C081EA0E9416100E94B01127 +:1046B00090939302809392020E9442129093BA02C6 +:1046C0008093B90200914601109147011093B20204 +:1046D0000093B1028EE00E941412BC0190E080E0D1 +:1046E0000E94F22B6093940270939502809396023D +:1046F000909397020E94EC110E94B61520E030E0E2 +:1047000040EA51E46091B3027091B4028091B50225 +:104710009091B6020E94BA2D6B017C01B80190E025 +:1047200080E00E94F22B9B01AC01C701B6010E9400 +:10473000ED2B87FF04C090E080E00E94220F1092D2 +:104740009D0710929E0710929F071092A007412C80 +:10475000512CFFE76F2EF3E47F2E4092A107509279 +:10476000A2076092A3077092A407A0908907B09057 +:104770008A078091A507F501C080D180E280F3808F +:10478000882309F47DC7A3019201C701B6010E94E5 +:10479000CE2E181634F5F501408251826282738262 +:1047A0008090910790909207A0909307B090940703 +:1047B000C090A107D090A207E090A307F090A407B3 +:1047C000A7019601C501B4010E94CE2E1816C4F4AB +:1047D000C0929107D0929207E0929307F0929407CB +:1047E0001FC020E030E0A901C701B6010E94ED2BF7 +:1047F00087FFD6CFF5011082118212821382D0CFAB +:10480000C0909D07D0909E07E0909F07F090A00772 +:10481000A7019601C501B4010E94ED2B87FDD8CFF9 +:1048200081E08093A50783B181708093910289B163 +:1048300090E0880F892F881F990B80939002209118 +:1048400091029091900281E0291380E080938F0281 +:1048500084E690E090939F0280939E0280E293E032 +:1048600090939D0280939C028AE090E090939B023B +:1048700080939A02000F111F1093AB020093AA02BB +:104880000E94D10F6093AD027093AE028093AF028D +:104890009093B0020E947C120E947C122090AA0287 +:1048A0003090AB029101359527953A87298730934F +:1048B000B2022093B10286E00E948F0E8B87811195 +:1048C0009EC08091A902882309F499C00E947C129D +:1048D0000E94D10F6B017C01C092A502D092A6026A +:1048E000E092A702F092A80286E00E948F0E892B28 +:1048F00059F40E94D10F6C197D098E099F09643FFC +:1049000071408105910580F30E94D10F6C197D09DA +:104910008E099F09643F71408105910508F448C4E0 +:104920008FEF90E00E94220F0E947C12512C5AE0DF +:10493000652E712C1092A002852D0E94EB1D582E21 +:10494000F7E0F81708F438C0E82FF0E0E655FB4D23 +:104950000C94E82EC4247627F02758286628A0282F +:10496000B828AE2820E030E0A901C701B6010E94B6 +:10497000ED2B87FF55CF109291071092920710925E +:104980009307109294074CCF4EE1642E712C81E076 +:104990008093A002852D0E94EB1D582E22E08217E5 +:1049A00009F43EC2281708F4E9C0882309F411C1AC +:1049B00031E0831709F410C10E943D1A81E0809311 +:1049C000B70229853A853093B2022093B10284E67A +:1049D00090E090939F0280939E0280E293E09093F8 +:1049E0009D0280939C028AE090E090939B028093CA +:1049F0009A02C1018E7F9093AB028093AA023B85FD +:104A00003093A9028091BC02882309F110914A01D8 +:104A10001123E9F00E94D10FC090A102D090A20210 +:104A2000E090A302F090A4026C197D098E099F0901 +:104A300028EE33E040E050E00E94882D211738F046 +:104A40001092BC020E947C1281E080934D01809103 +:104A5000B7028823E9F18091BD02882349F120E063 +:104A600030E040EA51E46091B3027091B402809169 +:104A7000B5029091B6020E94BA2D6B017C01609143 +:104A8000B1027091B20290E080E00E94F22B9B0193 +:104A9000AC01C701B6010E94ED2B87FF04C090E076 +:104AA00080E00E94220F0E947C1281E080934D01E1 +:104AB0001092B7021092BD021092BE020E94D10F56 +:104AC0006093AD027093AE028093AF029093B002F8 +:104AD0000E94D10F0091AD021091AE022091AF0261 +:104AE0003091B002601B710B820B930B20E63AEE03 +:104AF00040E050E00E94882D122F2093AC0280915C +:104B0000BD0281110BC080914C01882339F0281718 +:104B100028F081E08093BD020E947C128091BE0249 +:104B200081110BC080914B01882339F0181728F0B0 +:104B300081E08093BE020E947C120E94F21A0E94C1 +:104B400089130E94D10F8091B607962F981B892F49 +:104B50009091B707992309F441C38093B807109245 +:104B6000B70780E090E0892B09F498CE0E94C30D2E +:104B7000882309F493CE0E94000090CE83E058165B +:104B800009F451C194E0591217CF80914201883045 +:104B900008F0FDCE91E0980F909342018093C102FE +:104BA0000E949A12E091C10228E0E29FF0011124D4 +:104BB000EE5FFE4F88ED90E09183808324E331E047 +:104BC0003383228386E891E09583848377826682AB +:104BD000DECE0E940D19DBCE8E010F5F1F4F812CA0 +:104BE000912C5401839498EEE92E93E0F92ECC2475 +:104BF000C394D12C32E0432EE091C10224E0E29F25 +:104C0000F0011124C4010197E80FF91FEE0FFF1FF7 +:104C1000EE5FFE4F808191819093B2028093B1024A +:104C2000E8ECF0E0F0939F02E0939E02F0929D0288 +:104C3000E0929C02D0929B02C0929A02880F991F28 +:104C40009093AB028093AA02F1E0F0934D0186E0CD +:104C50000E948F0E21E0892B09F020E0209398021A +:104C60000E944B0D1092BC071092BB071092BA071E +:104C70001092B9074092BF070E94F21A0E9489134E +:104C80001092BA071092B9071092BC071092BB0796 +:104C900080EB95E10E948D11C501B4010E94B2160E +:104CA0008FE692E00E94611680914E011092BA0741 +:104CB0001092B907882309F48BC020E130E03093CB +:104CC000BC072093BB0783EA95E10E948D111092E7 +:104CD000BA071092B90780E290E09093BC078093E6 +:104CE000BB078CE995E10E948D116091AA02709139 +:104CF000AB0275956795072E000C880B990B0E94E7 +:104D0000B2160E946A120E94F90F86E00E948F0E6E +:104D1000892B09F0A5CF809198028111A1CF8091B4 +:104D2000AA029091AB0295958795F8018193919392 +:104D30008F010E947C126AE070E080E090E00E94A7 +:104D40009F0FFFEF8F1A9F0AAF0ABF0A24E0821657 +:104D50009104A104B10409F04FCF8FEF90E00E94BD +:104D6000220F8BEA94E00197F1F70E94EC110E9468 +:104D70009F2E4B0178876F83C980DA800B811C815D +:104D8000C6014E968017910708F001CEED80FE8097 +:104D9000C8014E968E159F0508F0F9CD87E08093E7 +:104DA000A00280E00E94EB1D882309F4F0CDE09181 +:104DB000C10238E0E39FF0011124EE5FFE4FD18283 +:104DC000C08213830283F582E48297828682DFCDDC +:104DD000E0E1F0E0F093BC07E093BB0786E995E1E2 +:104DE0000E948D11609194027091950280919602BB +:104DF000909197020E949F2E90E080E04AE00E94EE +:104E00006E161092BA071092B90720E230E0309384 +:104E1000BC072093BB078AE895E10E948D1171CFF2 +:104E20000E949A12B4CD87E08093A0028091420143 +:104E3000813009F4ACCD80E00E94EB1D882309F499 +:104E4000A6CD1091C10200914201802F8150990B93 +:104E5000BC011817190639F411501093C102015002 +:104E60000093420194CD812F90E086179707BCF7FD +:104E7000E6E01E9FD001112450E040E09C012F5F2E +:104E80003F4FFA01EA0FFB1FE15BFE4FF680F08215 +:104E90004F5F5F4F46305105A1F7B3E0220F331F3C +:104EA000BA95E1F7F901EE5FFE4F2081318143E0D1 +:104EB000880F991F4A95E1F7DC01AE5FBE4F11964E +:104EC0003C932E938281938113969C938E93129799 +:104ED0008481958115969C938E93149786819781F2 +:104EE00017969C938E9316971F5FBDCF82E0809399 +:104EF000A002412C70E9C72EDD24D394E4E6AE2E47 +:104F0000B12CF0E28F2EF3E09F2EA4E1EA2EF12CDB +:104F100008EC10E0842D0E94EB1D482E91E08917CB +:104F200031F1891738F0E2E08E1709F43FC00E9492 +:104F30003D1A00CD8091460190914701B0929F02A9 +:104F4000A0929E0290929D0280929C0270929B027F +:104F500060929A02880F991F9093AB028093AA02E5 +:104F60000E94B31D9093470180934601D3CF809157 +:104F700044019091450128E230E030939F02209354 +:104F80009E02D0929D02C0929C0270929B026092FF +:104F90009A02880F991F9093AB028093AA020E94F5 +:104FA000B31D9093450180934401B4CF8091430198 +:104FB00090E0F0929F02E0929E0210939D02009377 +:104FC0009C0270929B0260929A02880F991F9093A4 +:104FD000AB028093AA020E94B31D809343019ACF33 +:104FE00083E08093A002F12C01E010E08F2D0E945D +:104FF000EB1DF82E31E08317E9F18317F8F082E01A +:10500000F81295CF80914A0190E010929F02109281 +:105010009E0228E631E030939D0220939C0270921C +:105020009B0260929A02880F991F9093AB02809323 +:10503000AA020E94B31D80934A01D8CF80914C01EF +:1050400090E010929F0210929E02ECE3F0E0F09349 +:105050009D02E0939C0210939B0200939A02880F9A +:10506000991F9093AB028093AA020E94B31D809374 +:105070004C01BCCF80914B0190E010929F021092A6 +:105080009E0228E730E030939D0220939C02E5E0E9 +:10509000F0E0F0939B02E0939A02880F991F90939F +:1050A000AB028093AA020E94B31D80934B019ECF56 +:1050B00084E08093A002809149010E94EB1D91E061 +:1050C000811101C090E09093490134CC10E0EAE0F6 +:1050D000EE2EF5E0DF2EA9E0CA2EE092A002812F8D +:1050E0000E94EB1D182F882321F08130E1F000E0B1 +:1050F00009C0D092A00280917F010E94EB1D809395 +:105100007F0101E0F090990280ECF11001C088EC81 +:105110000E94161080EAF11001C081EA0E94161068 +:105120000111DBCF04CFC092A002809199020E94AE +:10513000EB1D91E0811101C090E090939902E1CFC5 +:1051400086E08093A002809148010E94EB1D91E0CF +:10515000811101C090E090934801ECCB88E08093EE +:10516000A0028091BB020E94EB1D8093BB02E2CBA8 +:105170008091B80290E010929F0210929E02E4EF9C +:10518000F1E0F0939D02E0939C0221E030E0309347 +:105190009B0220939A02880F991F9093AB028093F1 +:1051A000AA020E94B31D8093B8020E947C12C2CB57 +:1051B0008091BC0291E089278093BC02882351F042 +:1051C0000E94D10F6093A1027093A2028093A30268 +:1051D0009093A40281E08093B70211CC9091B5071F +:1051E000891748F48F5F891708F0BBCC81E083BF33 +:1051F000889513BEB6CC11E01093B7076093B6073D +:105200008091B1079091B20701969093B207809375 +:10521000B10780917F01882309F4C4C10E944B0D1E +:105220001092BC071092BB071092BA071092B907F0 +:1052300001E020E440E870E060E090E080E00E945F +:10524000800C1093BF071093BE071092BD07E12C8E +:1052500000E120E146E256E170E060E090E080E0AD +:105260000E94A20C83E190E09093BA078093B90763 +:1052700084E090E09093BC078093BB078091C102CB +:10528000E6E08E9FC0011124815B9E4F0E94611653 +:105290008091BF029091C002853F914008F02DC1DE +:1052A0008091BE0281112BC18091BD02811129C163 +:1052B0008091BC02811127C180914E01811125C1CD +:1052C00020E030E044E353E46091630770916407A9 +:1052D00080916507909166070E94ED2B87FF17C1AB +:1052E00085E025E330E03093BA072093B90721E049 +:1052F00030E03093BC072093BB0792E09093BF0748 +:10530000C82ED12C9091BB02CC0CDD1C911101C197 +:10531000F601E95CFD4F40815181E12C0EE02CE16A +:1053200061E070E080E590E00E94A20CF601E75D8C +:10533000FD4F40815181E12C0EE02EE061E070E0F4 +:1053400081E790E00E94A20C81E08093BF070E9459 +:10535000EC1120E030E040EA52E40E94CE2E181614 +:105360000CF0FAC00E94D10F52E0660F771F881F21 +:10537000991F5A95D1F728EE33E040E050E00E94A3 +:10538000882D20FFE9C00E947C126091B9027091C3 +:10539000BA0290E080E00E94F22B20E030E048EC7E +:1053A00052E40E94262E6B017C016091B80270E0ED +:1053B00090E080E00E94F42B9B01AC01C701B60194 +:1053C0000E94ED2B87FDD4C0E12C0EE02EE048ECCE +:1053D00055E162E270E082E090E00E94A20C03E1FD +:1053E00010E01093BA070093B90720E130E0309342 +:1053F000BC072093BB070E94EC1141E00E94DC1621 +:1054000088EF0E94A81186EC95E10E948D111093FF +:10541000BA070093B90788E190E09093BC078093A6 +:10542000BB070E94B011BC0190E080E00E94F22B0B +:1054300020E030E04AE754E40E94262E42E00E9439 +:10544000DC1684EC95E10E948D111093BA0700934D +:10545000B90780E290E09093BC078093BB0760910E +:10546000B9027091BA0290E080E00E94F22B20E035 +:1054700030E04AE754E40E94262E41E00E94DC1608 +:1054800082EC95E10E948D111093BA070093B90741 +:1054900088E290E09093BC078093BB078BEB95E18B +:1054A0000E948D1189E390E09093BA078093B90729 +:1054B00082E190E09093BC078093BB0784E08093E7 +:1054C000BF076091BF027091C002653F91E079070C +:1054D00008F462C087EB95E10E948D1100E020E2A4 +:1054E00048E460E170E087E390E00E945A1080E0B9 +:1054F0000E94B4170E94F90F34CB80E0F2CE81E015 +:10550000F0CE82E0EECE83E0ECCE84E0EACE86E020 +:10551000E8CE8330C1F038F4813069F0823081F018 +:1055200080E096E10AC08530A1F080F08630C1F7B6 +:1055300086E096E102C082E296E10E948D11F6CEED +:105540008CE196E1FACF86E196E1F7CF80E196E132 +:10555000F4CF8BE096E1F1CFE12C0EE02EE044EEAB +:1055600055E162E170E082E090E00E94A20C0DCF74 +:105570000E94D10F42E0660F771F881F991F4A953E +:10558000D1F728EE33E040E050E00E94882D20FF64 +:105590001BCF0E947C1223CF90E080E04AE00E9463 +:1055A0006E169CCF0E944B0D1092BC071092BB0749 +:1055B0001092BA071092B9070E94EC1120E030E077 +:1055C00040EA52E40E94CE2E181694F40E94D10FA5 +:1055D00032E0660F771F881F991F3A95D1F728EEA2 +:1055E00033E040E050E00E94882D20FD0E947C12B4 +:1055F0006091B9027091BA0290E080E00E94F22BB3 +:1056000020E030E048EC52E40E94262E6B017C0141 +:105610006091B80270E090E080E00E94F42B9B0162 +:10562000AC01C701B6010E94ED2B87FF12C00E949A +:10563000D10F22E0660F771F881F991F2A95D1F797 +:1056400028EE33E040E050E00E94882D20FD0E94CB +:105650007C128091BF029091C002853FE1E09E07DD +:1056600010F087EE93E00E94361C00E023E040E853 +:1056700060E370E090E080E00E94800C81E038CF31 +:10568000C0929107D0929207E0929307F09294070C +:10569000E0918707F091880780819181A281B38191 +:1056A0008093950790939607A0939707B0939807D8 +:1056B00020E030E04FE753E4C701B6010E94CE2E50 +:1056C00018160CF04FC940929107509292076092C1 +:1056D000930770929407A4C88091A7079091A80798 +:1056E000009711F00C948A2F08951F93FC019927BD +:1056F0008827BC01E89411911032E9F3193010F0B9 +:105700001E30C8F31B3251F01D3249F4689406C0B4 +:105710000E94AE2B610F711D811D911D11911053BF +:105720001A30B0F33EF490958095709561957F4F57 +:105730008F4F9F4F1F910895FB01DC0105900D9243 +:105740000020E1F70895BB274A3031F4992322F471 +:10575000BDE2909581959F4F0C94C42B592F482FF3 +:10576000372F262F660F771F881F991F660F771F09 +:10577000881F991F620F731F841F951F660F771F65 +:10578000881F991F0895BB27FB015527AA27880F5B +:10579000991FAA1FA41710F0A41B83955051B9F7A5 +:1057A000A05DAA3308F0A95DA193009779F7B11124 +:1057B000B1931192CB010C94DD2BDC01FC01672F1E +:1057C00071917723E1F7329704C07C916D937083D8 +:1057D0006291AE17BF07C8F308950E942F2C08F4FA +:1057E00081E00895E89409C097FB3EF49095809578 +:1057F000709561957F4F8F4F9F4F9923A9F0F92F97 +:1058000096E9BB279395F695879577956795B79514 +:10581000F111F8CFFAF4BB0F11F460FF1BC06F5FFA +:105820007F4F8F4F9F4F16C0882311F096E911C00C +:10583000772321F09EE8872F762F05C0662371F02D +:1058400096E8862F70E060E02AF09A95660F771F41 +:10585000881FDAF7880F9695879597F90895990F1D +:105860000008550FAA0BE0E8FEEF16161706E8072A +:10587000F907C0F012161306E407F50798F0621B4B +:10588000730B840B950B39F40A2661F0232B242B20 +:10589000252B21F408950A2609F4A140A6958FEF3F +:1058A000811D811D08950E94662C0C94D72C0E94A6 +:1058B000C92C38F00E94D02C20F0952311F00C94C4 +:1058C000C02C0C94C62C11240C940B2D0E94E82C97 +:1058D00070F3959FC1F3950F50E0551F629FF00143 +:1058E000729FBB27F00DB11D639FAA27F00DB11D5C +:1058F000AA1F649F6627B00DA11D661F829F2227E5 +:10590000B00DA11D621F739FB00DA11D621F839F6B +:10591000A00D611D221F749F3327A00D611D231F41 +:10592000849F600D211D822F762F6A2F11249F578F +:1059300050409AF0F1F088234AF0EE0FFF1FBB1F92 +:10594000661F771F881F91505040A9F79E3F510551 +:1059500080F00C94C02C0C940B2D5F3FE4F3983E28 +:10596000D4F3869577956795B795F795E7959F5FFB +:10597000C1F7FE2B880F911D9695879597F908958D +:1059800097F99F6780E870E060E008959FEF80ECF2 +:10599000089500240A941616170618060906089595 +:1059A00000240A9412161306140605060895092EFB +:1059B0000394000C11F4882352F0BB0F40F4BF2B6A +:1059C00011F460FF04C06F5F7F4F8F4F9F4F0895AA +:1059D00057FD9058440F551F59F05F3F71F04795A0 +:1059E000880F97FB991F61F09F3F79F08795089585 +:1059F000121613061406551FF2CF4695F1DF08C0A4 +:105A0000161617061806991FF1CF869571056105C0 +:105A100008940895E894BB2766277727CB0197F968 +:105A20000895F999FECF92BD81BDF89A992780B566 +:105A30000895262FF999FECF1FBA92BD81BD20BDD2 +:105A40000FB6F894FA9AF99A0FBE01960895052EAA +:105A500097FB1EF400940E943E2D57FD07D00E9434 +:105A6000882D07FC03D04EF40C943E2D50954095A4 +:105A7000309521953F4F4F4F5F4F089590958095FA +:105A8000709561957F4F8F4F9F4F08950E94AA2D6B +:105A9000A59F900DB49F900DA49F800D911D112482 +:105AA00008952F923F924F925F926F927F928F92C2 +:105AB0009F92AF92BF92CF92DF92EF92FF920F939D +:105AC0001F93CF93DF93CDB7DEB7CA1BDB0B0FB6A7 +:105AD000F894DEBF0FBECDBF09942A883988488864 +:105AE0005F846E847D848C849B84AA84B984C884FA +:105AF000DF80EE80FD800C811B81AA81B981CE0FF1 +:105B0000D11D0FB6F894DEBF0FBECDBFED010895D5 +:105B1000A1E21A2EAA1BBB1BFD010DC0AA1FBB1FB1 +:105B2000EE1FFF1FA217B307E407F50720F0A21B23 +:105B3000B30BE40BF50B661F771F881F991F1A9490 +:105B400069F760957095809590959B01AC01BD01BA +:105B5000CF010895A29FB001B39FC001A39F700D14 +:105B6000811D1124911DB29F700D811D1124911D65 +:105B700008955058BB27AA270E94D12D0C94D72CEA +:105B80000E94C92C38F00E94D02C20F039F49F3F9D +:105B900019F426F40C94C62C0EF4E095E7FB0C9453 +:105BA000C02CE92F0E94E82C58F3BA17620773073C +:105BB0008407950720F079F4A6F50C940A2D0EF4CD +:105BC000E0950B2EBA2FA02D0B01B90190010C010D +:105BD000CA01A0011124FF27591B99F0593F50F425 +:105BE000503E68F11A16F040A22F232F342F44277D +:105BF000585FF3CF469537952795A795F040539575 +:105C0000C9F77EF41F16BA0B620B730B840BBAF044 +:105C10009150A1F0FF0FBB1F661F771F881FC2F7AF +:105C20000EC0BA0F621F731F841F48F487957795C3 +:105C30006795B795F7959E3F08F0B0CF9395880F7D +:105C400008F09927EE0F9795879508950E943A2EB0 +:105C50000C94D72C0E94D02C58F00E94C92C40F0F4 +:105C600029F45F3F29F00C94C02C51110C940B2D9A +:105C70000C94C62C0E94E82C68F39923B1F35523A9 +:105C800091F3951B550BBB27AA276217730784074F +:105C900038F09F5F5F4F220F331F441FAA1FA9F3E5 +:105CA00035D00E2E3AF0E0E832D091505040E695D3 +:105CB000001CCAF72BD0FE2F29D0660F771F881F34 +:105CC000BB1F261737074807AB07B0E809F0BB0B27 +:105CD000802DBF01FF2793585F4F3AF09E3F51053B +:105CE00078F00C94C02C0C940B2D5F3FE4F3983E9D +:105CF000D4F3869577956795B795F7959F5FC9F724 +:105D0000880F911D9695879597F90895E1E0660FA4 +:105D1000771F881FBB1F621773078407BA0720F01D +:105D2000621B730B840BBA0BEE1F88F7E095089586 +:105D30000E949F2E6894B1110C940B2D08950E941F +:105D4000F02C88F09F5798F0B92F9927B751B0F0F1 +:105D5000E1F0660F771F881F991F1AF0BA95C9F7EF +:105D600014C0B13091F00E940A2DB1E008950C9456 +:105D70000A2D672F782F8827B85F39F0B93FCCF309 +:105D8000869577956795B395D9F73EF4909580956C +:105D9000709561957F4F8F4F9F4F08950E942F2CD4 +:105DA00008F48FEF08950E942F2C880B990B08950B +:105DB000DB018F939F930E94462DBF91AF91A29FCD +:105DC000800D911DA39F900DB29F900D11240895F9 +:105DD000EE0FFF1F0590F491E02D09940F931F9390 +:105DE000CF93DF938230910510F482E090E0E09150 +:105DF000C307F091C40730E020E0B0E0A0E03097A6 +:105E000099F42115310509F44AC0281B390B2430B7 +:105E10003105D8F58A819B816115710589F1FB01F6 +:105E200093838283FE0111C04081518102811381DD +:105E300048175907E0F04817590799F4109761F08F +:105E400012960C93129713961C933296CF01DF9102 +:105E5000CF911F910F9108950093C3071093C4072A +:105E6000F4CF2115310551F04217530738F0A9013D +:105E7000DB019A01BD01DF01F801C1CFEF01F9CFCC +:105E80009093C4078093C307CDCFFE01E20FF31FA9 +:105E9000819391932250310939832883D7CF209160 +:105EA000C1073091C207232B41F420918201309128 +:105EB00083013093C2072093C10720918001309164 +:105EC00081012115310541F42DB73EB74091840180 +:105ED00050918501241B350BE091C107F091C20759 +:105EE000E217F307A0F42E1B3F0B2817390778F0B1 +:105EF000AC014E5F5F4F2417350748F04E0F5F1F10 +:105F00005093C2074093C107819391939FCFF0E0D4 +:105F1000E0E09CCFCF93DF930097E9F0FC0132974C +:105F200013821282A091C307B091C407ED0130E043 +:105F300020E01097A1F420813181820F931F2091DE +:105F4000C1073091C2072817390709F061C0F093E3 +:105F5000C207E093C107DF91CF910895EA01CE1700 +:105F6000DF07E8F54A815B819E0141155105B1F7D4 +:105F7000E901FB83EA8349915991C40FD51FEC17BE +:105F8000FD0761F4808191810296840F951FE901DC +:105F900099838883828193819B838A83F0E0E0E008 +:105FA00012968D919C9113970097B9F52D913C9184 +:105FB0001197CD010296820F931F2091C107309156 +:105FC000C2072817390739F6309751F51092C407E0 +:105FD0001092C307B093C207A093C107BCCFD3836D +:105FE000C28340815181840F951FC817D90761F47E +:105FF0004E5F5F4F88819981480F591F51834083BD +:106000008A819B81938382832115310509F0B0CF6A +:10601000F093C407E093C3079ECFFD01DC01C0CF1E +:1060200013821282D7CFB0E0A0E0E9E1F0E30C9454 +:10603000532D8C01009751F4CB010E94EE2E8C0160 +:10604000C801CDB7DEB7E0E10C946F2DFC01E60F7F +:10605000F71F9C0122503109E217F30708F49DC095 +:10606000D901CD91DC911197C617D70798F0C530AB +:10607000D10530F3CE0104978617970708F3C61BA6 +:10608000D70B2297C193D1936D937C93CF010E943C +:106090008A2FD6CF5B01AC1ABD0A4C018C0E9D1E17 +:1060A000A091C307B091C407512C412CF12CE12CD5 +:1060B000109731F58091C1079091C2078815990515 +:1060C00009F05CC04616570608F058C08091800160 +:1060D00090918101009741F48DB79EB74091840162 +:1060E00050918501841B950BE817F90708F055C0FE +:1060F000F093C207E093C107F90171836083A0CFD9 +:106100008D919C91119712966C90129713967C909A +:106110001397A815B90559F56C0142E0C40ED11CBE +:10612000CA14DB0420F1AC014A195B09DA011296AA +:10613000159780F06282738251834083D9016D93F9 +:106140007C93E114F10471F0D7011396FC93EE9364 +:10615000129776CF22968C0F9D1FF9019183808331 +:10616000F301EFCFF093C407E093C30769CF48165C +:10617000590608F42C017D01D3019ACFCB010E946E +:10618000EE2E7C01009749F0AE01B8010E94D53097 +:10619000C8010E948A2F870153CF10E000E050CF42 +:1061A00081E090E0F8940C94E530FB01DC0102C042 +:1061B00001900D9241505040D8F70895FB01DC0149 +:1061C00001900D920020E1F708951BE0C2E3DBE0AF +:1061D00004C0FE010E94E82E2196C333D107C9F7FF +:1061E000F894FFCF01FFD800340186011E000000A3 +:1061F000000000000000000000000000000000009F +:10620000000000000000000000000000000000008E +:10621000000000000000000000000000000000007E +:10622000000000000000013C960040010101280F21 +:106230000501014243312E3500000000000000003E +:10624000000000000000000000000000000000004E +:10625000000000000000000000000000000000003E +:10626000000000010000C50780004C0AFC09AC09D1 +:106270005C090C09BC086C081C08CC074C0A7C079C +:106280002C07DC068C063C06EC059C054C053C0600 +:106290009C05FC044C053C06AC045C040C04BC03EB +:1062A0006C031C03CC027C022C02DC01CC027C02BD +:1062B0008C013C013C06740D580D3C0D200D040D65 +:1062C000E80CCC0CB00C940C780C5C0C740D400CED +:1062D000240C080C740DEC0BD00B080CEC0BB40B5D +:1062E000D00B080C980B7C0B600B440B280BE80CB4 +:1062F0000C0B940CF00AD40AB80A9C0A040DB80AD4 +:10630000080C0906040402020202020203200E0421 +:106310000EE40DC815C80DAC0D900D8C0F540F1C5C +:106320000FE40EAC0E740E3C0E00000000F90D5987 +:106330000D860D460EB70D950DA90D000000008BC2 +:1063400010590DAD11580D6E616E00696E66006FCB +:066350007666002F330009 +:107E0000112484B714BE81FFF0D085E080938100F7 +:107E100082E08093C00088E18093C10086E0809377 +:107E2000C20080E18093C4008EE0C9D0259A86E02C +:107E300020E33CEF91E0309385002093840096BBD3 +:107E4000B09BFECF1D9AA8958150A9F7CC24DD24C4 +:107E500088248394B5E0AB2EA1E19A2EF3E0BF2EE7 +:107E6000A2D0813461F49FD0082FAFD0023811F036 +:107E7000013811F484E001C083E08DD089C08234E0 +:107E800011F484E103C0853419F485E0A6D080C0E4 +:107E9000853579F488D0E82EFF2485D0082F10E0AE +:107EA000102F00270E291F29000F111F8ED06801E7 +:107EB0006FC0863521F484E090D080E0DECF843638 +:107EC00009F040C070D06FD0082F6DD080E0C81688 +:107ED00080E7D80618F4F601B7BEE895C0E0D1E017 +:107EE00062D089930C17E1F7F0E0CF16F0E7DF06D8 +:107EF00018F0F601B7BEE89568D007B600FCFDCFD4 +:107F0000A601A0E0B1E02C9130E011968C91119780 +:107F100090E0982F8827822B932B1296FA010C0160 +:107F200087BEE89511244E5F5F4FF1E0A038BF0790 +:107F300051F7F601A7BEE89507B600FCFDCF97BE46 +:107F4000E89526C08437B1F42ED02DD0F82E2BD052 +:107F50003CD0F601EF2C8F010F5F1F4F84911BD097 +:107F6000EA94F801C1F70894C11CD11CFA94CF0C13 +:107F7000D11C0EC0853739F428D08EE10CD085E9AC +:107F80000AD08FE07ACF813511F488E018D01DD067 +:107F900080E101D065CF982F8091C00085FFFCCF94 +:107FA0009093C60008958091C00087FFFCCF809118 +:107FB000C00084FD01C0A8958091C6000895E0E648 +:107FC000F0E098E1908380830895EDDF803219F02E +:107FD00088E0F5DFFFCF84E1DECF1F93182FE3DFCA +:107FE0001150E9F7F2DF1F91089580E0E8DFEE27F6 +:047FF000FF270994CA +:027FFE00040479 +:00000001FF diff --git a/software/binaries/1.7t2/T12.ino.standard.hex b/software/binaries/1.7t2/T12.ino.standard.hex new file mode 100644 index 0000000..726a63b --- /dev/null +++ b/software/binaries/1.7t2/T12.ino.standard.hex @@ -0,0 +1,1591 @@ +:100000000C94330B0C945B0B0C945B0B0C9428201E +:100010000C945B0B0C945B0B0C945B0B0C945B0BC8 +:100020000C945B0B0C945B0B0C945B0B0C945B0BB8 +:100030000C945B0B0C945B0B0C945B0B0C945B0BA8 +:100040000C94DE1F0C945B0B0C94AC1F0C94861F5D +:100050000C945B0B0C94FF200C945B0B0C945B0BCF +:100060000C945B0B0C945B0B5361766500466C69DA +:1000700070004D61696E2053637265656E004F4B71 +:10008000004E4F00454E00434E00594553004E4F21 +:10009000004F4E004F464600496E666F730042693E +:1000A0006700504944004469726563740053617687 +:1000B0006500426F6F7374004F666600536C656530 +:1000C00070005361766500426F6F737400536C6506 +:1000D00065700044656661756C74005361766500F7 +:1000E0004164640044656C6574650052656E616DC1 +:1000F000650043616C696272617465004368616E9A +:1001000067650052657475726E004C616E67004CD5 +:100110004F5720566F6C0042757A7A6572005363B0 +:100120007265656E00436F6E74726F6C0054696D1A +:1001300065720054656D7000546970000000000025 +:10014000000F1DC20800054442080003845FBF0081 +:100150000FE44410000115451000054CC97F8009CB +:10016000244F900007C4C11000054D413F000554C5 +:1001700043810007C44D0200054441140005554168 +:10018000080007C881040000000000000000000013 +:100190000001083FFE001FFF810000004002000038 +:1001A00007FE0FF800040208080004020888000790 +:1001B000FE0888000402088800040208880007FE80 +:1001C0000888000402094800040202300007FE0407 +:1001D0000C000402180400000000000000000000F1 +:1001E0000001100080001FFF80800001103FFF0011 +:1001F000004004080007FC04080004440410000444 +:100200004402100004440220001FFF81200000402F +:1002100000C00000A00130000110020800060C0C14 +:1002200007001803B00200000000000000000000FA +:1002300000004000800000400080000FFF3FFF00F2 +:10024000084104080008410408000841041000089F +:10025000410210000FFF0220000841012000004071 +:1002600000C0000040013000004002080000400CC7 +:100270000700004030020000000000000000000005 +:10028000001FDF10200002120C20000224042000B6 +:10029000047F8020000424B820000FA4885000149C +:1002A000BF88500004A488500004A488480004BFFC +:1002B00088880004A48A880007A48C8400044489E8 +:1002C000070000818602000000000000000000001E +:1002D000000FF00491000440025200047F9054008B +:1002E000045088FF0007D08481000451008100047D +:1002F0004901FF0007CA0281000444048100044A46 +:100300001CFF0007EA0481000C510481000061C455 +:100310008500004080820000000000000000000016 +:100320000007FF802000008407FF00008404010014 +:10033000008404010000840401000FFFC7FF0000D7 +:10034000840400000084040000008405FF00008491 +:100350000501000104090100010409010002041162 +:10036000FF00040401010000000000000000000084 +:1003700000008204FF00004402010007FF902100FA +:100380000010102100001017FD0000101021000FB8 +:10039000FFD06100001010A10000281121000028EA +:1003A0001221000044142100008210A1000301D09A +:1003B00045000C009002000000000000000000005A +:1003C00000084410FE00042810920005FF2292004D +:1003D00000103C920000100892001CFE10920004D5 +:1003E0001020FE0004103E920005FF8092000410D1 +:1003F00000920005100E92000610309200041000CA +:10040000FE0000100082000000000000000000005C +:100410000007DF8840000A24104000114210FE004F +:10042000040022820002FF3D020008010A42000986 +:10043000F9103200090920120009F93E02000909E9 +:1004400000020009090E020009F930220008050027 +:100450001400080200080000000000000000000076 +:10046000000FC3F1E0000FE3F1F8000C70C19E0033 +:100470000C30C186000C30C183000C30C183000CED +:1004800060C183000C60C183000FC0C183000FC036 +:10049000C186000C00C186000C00C198000C03F15D +:1004A000F8000C03F1E00000000000000000000074 +:1004B0000000200820000FFF09FC000020080000B9 +:1004C00000203E880003FE08500002020BFE0003DD +:1004D000FE0C4000020218400003FE2BFE00020248 +:1004E00008480003FE0888000202085000020228A3 +:1004F00030001FFF91CC0000000000000104047CCC +:100500000000880444000FFF3F4400002004440022 +:1005100000200C440000200E44001FFF9544000002 +:10052000201444000050244400005004440000887B +:100530000445000104048500060385030018010436 +:1005400000000000000000000000000000000000AB +:1005500000047E21FC0004421104001F7E090400F7 +:10056000044221FC000542110400067E1104000C27 +:100570000005FC0015FF880000040813FE00044875 +:10058000325200044F125200044812520014A812B2 +:100590005200091F97FF000000000000000000004B +:1005A0000002103DFC000210250400041025040088 +:1005B00005FFBDFC000C102520000C382520001480 +:1005C0003825FE0004543D200004542510000492F8 +:1005D0002510000511A5090006113D450004102550 +:1005E0008300041001010000000000000000000072 +:1005F000001FC8102000124A0C20001AC904200055 +:1006000017480020001FFFB8200002080850001FF4 +:10061000C8085000020808500003C80848001E140B +:1006200008880001540A880015220C8400144389AC +:1006300007000081060200000000000002FE010029 +:100640000002823FFF00048202000004FE0200005C +:100650000C1004FC00141004080005FF8C100004AA +:1006600010141000043825FF000434041000045254 +:1006700004100004918410000510045000041004BC +:10068000200000000000000000000000000000004A +:100690000002030010001FDC3EFE00089002120062 +:1006A000051004FF001FDF84120002120CFE001F61 +:1006B000D2021000021222FE000A921410000A5206 +:1006C00014100012220DFF0002220810000A42142A +:1006D0001000040223FF00000000000000000000E2 +:1006E000000F78BC20000948A45000094AA8500017 +:1006F000094AA88800094AB104001FFEAAFB0009A4 +:100700004AA42000094AA42000094AA7FE00094A79 +:10071000B420000948A924000B48A22200088AA49A +:10072000A20011192040000000000000000000009D +:10073000000020008000005001FC0000880104003F +:10074000010403080006FB0490000800C0600007D5 +:10075000DF018000045106000004511BFE0004511B +:1007600002020007D9020200045602020000100330 +:10077000FE00001002020000000000000000000067 +:10078000000208209000027F9890001F8009FF005F +:10079000022201100006218B100007628DFE000A64 +:1007A000A20910000A14111000121431FE000208F0 +:1007B00011100002141110000222111000024391C6 +:1007C000FF00028111000000000000000000000096 +:1007D00000100700000008F83FFE0004802002001F +:1007E000008020020000BE23E2001C8222220004BE +:1007F000A4222200049422220004882222000494CD +:1008000023E200052220020005422002000A003FE8 +:10081000FE0011FFA00200000000000009FF0040E0 +:100820000004203FFF00042000000000FE00000044 +:100830001C420FFC00044200000007FF800000047F +:10084000000FFC0004FF000000048100000005818F +:100850000FFC00068108040004FF08040000810F5B +:10086000FC0000000000000000000000000000008C +:100870000001000FFE00010008200003FF08200017 +:100880000201082000042208200008200BFE0010AE +:10089000200820000050082800005008240000888C +:1008A000082200008810200001041020000203A785 +:1008B000FF000C010000000000000000000000002C +:1008C0000000400080001FFF9FFC0000400410005B +:1008D0000FFF02200000003FFF000FFE0000000895 +:1008E000420FF80008420808000FFE08080008023E +:1008F0000FF8000800080800080008080008000FAA +:10090000F8001000080800000000000000000000CF +:100910000007FE0FF80004020000000402000000BF +:1009200007FE00000004023FFE00040200800007F2 +:10093000FE008000009004900008910C880006934F +:100940001086000294208200009000800000900237 +:1009500080001FFF81000000000000000000000078 +:1009600000041012020005FF9FD200050092120041 +:100970001E28A2120004443FF20004820212000664 +:10098000000212000CFE1FD20014101252000410BC +:100990001242000410134200041012820015FF825C +:1009A0000A0008000204000000000000000000002F +:1009B00000002000000000203E04001FFFA20400F1 +:1009C0001000A2FF0000012204000FFE220400001C +:1009D000403E440000402224000440222400047CC5 +:1009E00022040004402204000A403E040009402280 +:1009F000240010FF80140000000008000000000028 +:100A00000010FE08200008820BFF0004820A01008B +:100A100010FE3C5100088208880008820904000288 +:100A2000FE0C0000040019FC0009FF282000192911 +:100A30000820000929082000092908200009292B7D +:100A4000FF000BFF9000000000000000000000000D +:100A5000001F7F90F80001080888000A100888002D +:100A6000047F0107001FC13A0000054909FC00048A +:100A700049088400044908880004490848000449DA +:100A800008500004490A200004160C58001421895B +:100A9000870008C0860200000000000080040000FB +:100AA0003FF02430219027902730207027F023300A +:100AB00030703FF000008004800400003FF03830C8 +:100AC00033103F90381033902790261030903FF02D +:100AD00000008004800400003FF0387030302310A4 +:100AE000279020102010279027903FF000008004CE +:100AF000800400003FF03CF03CF020102490249053 +:100B000020103CF03CF03FF0000080048004000026 +:100B10003FF037B023103030387038703030231049 +:100B200037B03FF000008004FCF4F860E044C08C73 +:100B3000C11CC22CC44CC88CD10CA204C4048FFCB0 +:100B4000187CBCFC8000BFF81FF8B0281FF8B40860 +:100B50001FF8B1081FF8B048BFF8B288BFF880008E +:100B60008000BFF81FF8B0081808B9E819B8B838FD +:100B70001838B9B8B9F8B0F8BFF8800015543FF884 +:100B800015503FF01550387010203104138C22A8F6 +:100B900017FC2AA80000000015543FFC15543FFC28 +:100BA00015543C0414043CFC14543CFC005400A8B0 +:100BB00000000000800400003FF03CF034B02490BE +:100BC000249027902310303038703FF000008004CC +:100BD000FF7CFE7CFCECE8DCC84C984C88240820A8 +:100BE00000000000000000008004E01CF3FCE7FCB3 +:100BF000CE0C8E1C9F9C1F3C1F0C0E0C0FFC87F80C +:100C000081E4C00CE01CF87C00045808580858081F +:100C100040087FF860185FE85B685FE85B681CE885 +:100C20005FE80000800400003FF03CF03CF03CF046 +:100C3000201020103CF03CF03CF03FF0000080041D +:100C4000F87CF7BC00007FF80000BFF4AB54AB5455 +:100C5000AB54AB54AB54AB54BFF4C00CF03CCE0C13 +:100C6000BF04B30473007F007E007C007C007C60C6 +:100C7000BC64BE04CF0CF03C81DC559C29045500BB +:100C8000299055D003FCFF002E0026700250827080 +:100C9000E600EE04800C001C3FF43FE03FC4378CBC +:100CA0002318303038703CF03FF03FF000008004F3 +:100CB000F03CCE4CBC34B8141880108042306078C0 +:100CC00060F844C08004B884CFCCF03CF87CE01CD1 +:100CD000C00CCFCCCFCCCFCCCFCCCFCCCFCCCFCC0B +:100CE000C84CCFCCC00CE01CFCFCF87CE01CC00C59 +:100CF000C00CC00CC00CC00CC00C80048004FFFCF5 +:100D0000F87CFCFC800400002000100008001000AB +:100D10002700000000000000000000000000800428 +:100D2000C3FC18001800C3FCFFFCFF0C006000604F +:100D3000FF0CFFFCF0FC06000600F0FC8FC4102046 +:100D400020104CC89FE43DF03DF01DE03EF03F70A8 +:100D50009FE48CC400003030F87CF33CF4BCF6BC5B +:100D6000F4BCF6BCF4BCE49CC84CD02CD02CC84CD1 +:100D7000E79CF03C88240820383038303830383050 +:100D80003830383039303BB03FF03FF0000080045D +:100D90001FE03FF07038601860186018FFFCFCFC22 +:100DA000FCFCFCFCF87CF87CFCFC7FF81E10333863 +:100DB0002D7C25382D3825382D386D80DEC0BF407C +:100DC000BF40DEC061803F007FF0FFE0C008C01C74 +:100DD000C038C870DCE4CFCCC78CC30CC00CC00CCE +:100DE000FFFC7FF8000006000C0018F838F03030E7 +:100DF0007060707878F878003C023F0C1FF80FF0B4 +:100E000003C000007FF8FFFCC00CC30CCB4CDB6CB4 +:100E1000DB6CD86CDCECCFCCC78CC00CFFFC7FF853 +:100E2000030007800FC00CC01CE01CE03CF03CF04D +:100E30007FF87FF8FCFCFCFCFFFC7FF8114082008F +:100E400021208FE023FC82004A23E200FE209FF055 +:100E500013F880802220C0804221BFF0FBFA8880F6 +:100E600002208480022084801A208080E3FE828019 +:100E7000020101000F421FC078411040084090401D +:100E800008421FC008411040FFFD104008405FC0ED +:100E90000840800008413FE00843252010412520FC +:100EA000104125202041252040417FF07FF84880D7 +:100EB000020049000201FFF00201001002027F203F +:100EC0002200410023F07F00220008002200FF8062 +:100ED000220088802200888022008A8022008900E7 +:100EE000FFFC080023F21FC022111040FBF09040CD +:100EF00022121FC02A11104033F1104060005FC061 +:100F0000AFFC800020413FE02243252022792520AC +:100F100022412520A541252048FD7FF01083DFC018 +:100F200010825040208250402FFFDFC0608252006C +:100F300061C25200A1C25FE022A3D20022A25100EE +:100F400024925100288E5090308BD45020825830FB +:100F500020801010104047C017FC44402003F4408C +:100F600023F844406208C440A3F8E4402001544000 +:100F70002FFD44402806444023F84440204044507C +:100F800020404850214050302080400020921FC017 +:100F90003DF990402090904040901FC07BFF0000A2 +:100FA000A0013FE021F90200FD09020021097FF0C4 +:100FB00021F90500210945002909888031F91070BF +:100FC0002108202025004300202070F8380133013B +:100FD0002D0125011E0117010F010A010301FC006B +:100FE000F200EB00E400E000DB00D300CD00C7001E +:100FF000C200BC00B800B200AD00A600A2009E0076 +:101000009800940091008E008A008700840081007F +:101010007E0072006D0068003E0053656C6563746D +:10102000205469700000000000003E5B4F5B3E3EB4 +:101030006B4F6B3E1C3E7C3E1C183C7E3C181C5784 +:101040007D571C1C5E7F5E1C00183C1800FFE7C328 +:10105000E7FF0018241800FFE7DBE7FF30483A06F7 +:101060000E2629792926407F050507407F05253F63 +:101070005A3CE73C5A7F3E1C1C08081C1C3E7F144F +:10108000227F22145F5F005F5F06097F017F006699 +:1010900089956A606060606094A2FFA29408047EF3 +:1010A000040810207E201008082A1C08081C2A08A2 +:1010B000081E101010100C1E0C1E0C30383E38305C +:1010C000060E3E0E06000000000000005F0000005B +:1010D00007000700147F147F14242A7F2A12231389 +:1010E00008646236495620500008070300001C229D +:1010F00041000041221C002A1C7F1C2A08083E08CF +:1011000008008070300008080808080000606000CF +:1011100020100804023E5149453E00427F400072C3 +:10112000494949462141494D331814127F1027453A +:101130004545393C4A494931412111090736494958 +:101140004936464949291E00001400000040340079 +:10115000000008142241141414141400412214082D +:1011600002015909063E415D594E7C1211127C7FE5 +:10117000494949363E414141227F4141413E7F49F3 +:101180004949417F090909013E414151737F0808DE +:10119000087F00417F41002040413F017F08142229 +:1011A000417F404040407F021C027F7F0408107F47 +:1011B0003E4141413E7F090909063E4151215E7F82 +:1011C00009192946264949493203017F01033F4055 +:1011D00040403F1F2040201F3F4038403F631408DD +:1011E000146303047804036159494D43007F41416E +:1011F000410204081020004141417F040201020421 +:101200004040404040000307080020545478407F8D +:10121000284444383844444428384444287F3854C7 +:1012200054541800087E090218A4A49C787F08046E +:10123000047800447D40002040403D007F10284459 +:101240000000417F40007C047804787C0804047826 +:101250003844444438FC1824241818242418FC7CEE +:1012600008040408485454542404043F44243C40D3 +:1012700040207C1C2040201C3C4030403C44281036 +:1012800028444C9090907C4464544C44000836416F +:10129000000000770000004136080002010204024D +:1012A0003C2623263C1EA1A161123A4040207A38F8 +:1012B000545455592155557941215454784121555B +:1012C00054784020545579400C1E527212395555AD +:1012D0005559395454545939555454580000457C83 +:1012E000410002457D420001457C40F0292429F05F +:1012F000F0282528F07C545545002054547C547C1B +:101300000A097F4932494949323248484832324A0B +:101310004848303A4141217A3A42402078009DA025 +:10132000A07D39444444393D4040403D3C24FF24A5 +:1013300024487E4943662B2FFC2F2BFF0929F620DA +:10134000C0887E090320545479410000447D413017 +:1013500048484A32384040227A007A0A0A727D0DA3 +:1013600019317D2629292F28262929292630484D5B +:101370004020380808080808080808382F10C8ACAA +:10138000BA2F102834FA00007B000008142A142217 +:1013900022142A14089500220095AA005500AAAA32 +:1013A00055AA55AA000000FF00101010FF001414E9 +:1013B00014FF001010FF00FF1010F010F0141414B0 +:1013C000FC001414F700FF0000FF00FF1414F404E5 +:1013D000FC141417101F10101F101F1414141F00DA +:1013E000101010F0000000001F101010101F10103F +:1013F0001010F010000000FF10101010101010104E +:1014000010FF10000000FF140000FF00FF00001F8D +:1014100010170000FC04F414141710171414F4042B +:10142000F40000FF00F714141414141414F700F758 +:10143000141414171410101F101F141414F4141083 +:1014400010F010F000001F101F0000001F1400001B +:1014500000FC140000F010F01010FF10FF14141422 +:10146000FF141010101F00000000F010FFFFFFFF1E +:10147000FFF0F0F0F0F0FFFFFF0000000000FFFFC2 +:101480000F0F0F0F0F38444438447C2A2A3E147E35 +:1014900002020606027E027E026355494163384419 +:1014A000443C04407E201E2006027E020299A5E7ED +:1014B000A5991C2A492A1C4C7201724C304A4D4D88 +:1014C000303048784830BC625A463D3E4949490070 +:1014D0007E0101017E2A2A2A2A2A44445F4444408C +:1014E000514A444040444A51400000FF0103E0801B +:1014F000FF000008086B6B083612362436060F0909 +:101500000F06000018180000001010003040FF0106 +:1015100001001F01011E00191D1712003C3C3C3C3C +:10152000000000000000000000240027002A000046 +:10153000000000250028002B0000000000230026EA +:101540000029000404040404040404020202020248 +:101550000203030303030301020408102040800177 +:101560000204081020010204081020AED5F0A83FA4 +:10157000D300408D14A1C8DA1281CFD9F1DB40A489 +:10158000A6AF200021007F220007506C65617365C3 +:101590002077616974004144433A200074656D709E +:1015A0003A2000536574206D65617375726564003F +:1015B000537465703A20003030300076312E377425 +:1015C00032005600560043000FE01FC01FC03F808E +:1015D0003FF87FF07FE007C007800F000E001C007F +:1015E0001800100014A03FF07FF8E01C6E18EC1CEF +:1015F00068186018E01C6058E01C7FF83FF014A0E9 +:101600004552524F5200484F4C4400484541540007 +:10161000574F524B5900424F4F535400534C45457E +:1016200050004F46460000003BEC7BEE63E663E66D +:1016300063E663E663E663E6636662266006600669 +:101640007FFE3FFC000001020408102040800000E3 +:101650000008000201000003040700000000000071 +:1016600000000021652B11241FBECFEFD8E0DEBFA4 +:10167000CDBF12E0A0E0B1E0E6EDF1E602C00590DA +:101680000D92A237B107D9F727E0A2E7B2E001C077 +:101690001D92A53CB207E1F71BE0C2E3DBE004C00A +:1016A0002197FE010E94E12EC133D107C9F70E94A4 +:1016B000C4210C94DE300C9400004F925F926F9224 +:1016C0007F928F929F92AF92BF92CF92DF92EF92D2 +:1016D000FF920F931F93CF93DF9300D000D0CDB72D +:1016E000DEB74B015C0129013A016701780120E076 +:1016F00030E0A9010E94E62B87FDA6C020E030E083 +:10170000A901C301B2010E94E62B87FD9DC020E024 +:1017100030E0A901C801B6010E94E62B87FD94C004 +:1017200081E020918507309186072130310509F04D +:1017300080E08093A60780926B0790926C07A0923E +:101740006D07B0926E0740926F07509270076092DB +:10175000710770927207C0927307D0927407E0927B +:101760007507F09276076091990770919A078091BA +:101770009B0790919C070E94EB2B20E030E04AE70A +:1017800054E40E941F2E69837A838B839C8380920A +:10179000770790927807A0927907B0927A079B0119 +:1017A000AC01C301B2010E944C2C2B013C014092C0 +:1017B0007B0750927C0760927D0770927E0729819B +:1017C0003A814B815C81C701B6010E941F2E6B01DB +:1017D0007C01C0927F07D0928007E0928107F0924F +:1017E00082078091830790918407019769F5A5018D +:1017F000940160E070E0CB010E94B22D6093770706 +:10180000709378078093790790937A07A3019201E8 +:1018100060E070E0CB010E94B22D60937B07709373 +:101820007C0780937D0790937E07A701960160E077 +:1018300070E0CB010E94B22D60937F077093800708 +:1018400080938107909382070F900F900F900F90D5 +:10185000DF91CF911F910F91FF90EF90DF90CF908C +:10186000BF90AF909F908F907F906F905F904F90C0 +:10187000089580389105B0F46034710598F4E6E479 +:10188000F6E190E1969FD001A0781124A80F67702F +:10189000E60FF11D9491AE53BD4F442321F08C917E +:1018A000982B9C93089590958C919823FACFDF9272 +:1018B000EF92FF920F931F93CF93DF937C01D22E71 +:1018C0008B01040F111DEB0177FF02C0D0E0C0E0D7 +:1018D000C8010134110514F080E490E0C817D9075D +:1018E0003CF44D2DBE01C7010E94390C2196F0CF6A +:1018F000DF91CF911F910F91FF90EF90DF900895AE +:10190000CF92DF92EF92FF920F931F93CF93DF93CB +:101910006B01122FEC017C01E40EF11CCE15DF05EA +:1019200044F4202F412FB601CE010E94570C21967E +:10193000F5CFDF91CF911F910F91FF90EF90DF9046 +:10194000CF9008952F923F924F925F926F927F9225 +:101950008F929F92AF92BF92CF92DF92EF92FF92BF +:101960000F931F93CF93DF9300D01F92CDB7DEB7B5 +:10197000C22ED12C9601280F391F37FD4FC0803859 +:1019800091050CF04BC0E9824A017B013C01402EDD +:10199000512C160127E0220E311C93E03594279438 +:1019A0009A95E1F78B01B12CA12C1B821A82EA8156 +:1019B000FB8183E0F595E7958A95E1F7EA0DFB1D3C +:1019C000E80DF91DE4918A819B818770992720E8B1 +:1019D00030E002C0359527958A95E2F7C901F0E01D +:1019E000E223F923EF2B41F04981B8018A819B81E1 +:1019F000860D971D0E94390C8A819B8101969B83DD +:101A00008A838C159D059CF2A20CB31C0F5F1F4F9F +:101A1000C8018E199F09841595053CF20F900F900F +:101A20000F90DF91CF911F910F91FF90EF90DF907A +:101A3000CF90BF90AF909F908F907F906F905F906E +:101A40004F903F902F9008950F931F93CF93DF9364 +:101A5000EC018B0140E001960E94390C40E0B80196 +:101A6000CE0101970E94390CB8016F5F7F4F40E0B3 +:101A7000CE010E94390CB8016150710940E0CE01DD +:101A80000E94390C40E0B801CE01DF91CF911F9147 +:101A90000F910C94390C80E0E2ECF2E081118FEFB1 +:101AA000002481938193819381930394D1F70895C6 +:101AB0000895AF92BF92CF92DF92EF92FF920F9371 +:101AC0001F93CF93DF936C017B018B01040F151FD4 +:101AD000EB015E01AE18BF08C017D10759F069913C +:101AE000D601ED91FC910190F081E02DC6010995A0 +:101AF000892B79F7C501DF91CF911F910F91FF904D +:101B0000EF90DF90CF90BF90AF900895FC01538D80 +:101B1000448D252F30E0842F90E0821B930B5417C7 +:101B200010F0CF96089501970895FC01918D828D54 +:101B3000981761F0A28DAE0FBF2FB11D5D968C91ED +:101B4000928D9F5F9F73928F90E008958FEF9FEF2C +:101B50000895FC01918D828D981731F0828DE80FE8 +:101B6000F11D858D90E008958FEF9FEF0895FC01A2 +:101B7000918D228D892F90E0805C9F4F821B91096F +:101B80008F739927089582EC96E00E94B70D21E0AB +:101B9000892B09F420E0822F089580E090E0892BC2 +:101BA00029F00E94C30D81110C9400000895FC01DE +:101BB000A48DA80FB92FB11DA35ABF4F2C91848DAE +:101BC00090E001968F739927848FA689B7892C930B +:101BD000A089B1898C91837080648C93938D848D5E +:101BE000981306C00288F389E02D80818F7D808361 +:101BF0000895EF92FF920F931F93CF93DF93EC0121 +:101C000081E0888F9B8D8C8D98131AC0E889F989A3 +:101C1000808185FF15C09FB7F894EE89FF896083A6 +:101C2000E889F98980818370806480839FBF81E027 +:101C300090E0DF91CF911F910F91FF90EF90089569 +:101C4000F62E0B8D10E00F5F1F4F0F731127E02E44 +:101C50008C8D8E110CC00FB607FCFACFE889F9897C +:101C6000808185FFF5CFCE010E94D70DF1CFEB8D9E +:101C7000EC0FFD2FF11DE35AFF4FF0829FB7F89450 +:101C80000B8FEA89FB8980818062CFCFCF93DF936E +:101C9000EC01888D8823B9F0AA89BB89E889F98984 +:101CA0008C9185FD03C0808186FD0DC00FB607FCB9 +:101CB000F7CF8C9185FFF2CF808185FFEDCFCE01EC +:101CC0000E94D70DE9CFDF91CF910895833081F045 +:101CD00028F4813099F08230A9F008958730A9F076 +:101CE0008830C9F08430B1F4809180008F7D03C0CA +:101CF000809180008F7780938000089584B58F77DE +:101D000084BD089584B58F7DFBCF8091B0008F771F +:101D10008093B00008958091B0008F7DF9CFCF936C +:101D2000DF93282F30E0F901E25BF94E8491F9014D +:101D3000E95AFA4ED491F901ED5BFA4EC491CC23E5 +:101D4000A1F081110E94660EEC2FF0E0EE0FFF1F54 +:101D5000E75CFA4EA591B491EC91ED2381E090E01F +:101D600009F480E0DF91CF91089580E090E0FACF10 +:101D70001F93CF93DF93282F30E0F901E25BF94EF8 +:101D80008491F901E95AFA4ED491F901ED5BFA4ECA +:101D9000C491CC23A9F0162F81110E94660EEC2F5E +:101DA000F0E0EE0FFF1FE15DFA4EA591B4918FB701 +:101DB000F894EC91111108C0D095DE23DC938FBF0D +:101DC000DF91CF911F910895DE2BF8CFCF93DF9352 +:101DD00090E0FC01E95AFA4E24918D5B9A4EFC0189 +:101DE00084918823C9F090E0880F991FFC01EB5D76 +:101DF000FA4EA591B491FC01E15DFA4EC591D491E2 +:101E000061110DC09FB7F8948C91209582238C931B +:101E10008881282328839FBFDF91CF910895623066 +:101E200051F49FB7F8943C91822F809583238C9333 +:101E3000E8812E2BEFCF8FB7F894EC912E2B2C93BB +:101E40008FBFEACFCF93DF93EC0161E089E00E947E +:101E5000E60E209731F460E089E0DF91CF910C9499 +:101E6000B80ECF3FD10511F461E0F6CFE7E5F6E11A +:101E7000E491E33029F140F4E130B1F0E230D9F0FF +:101E8000C038D1058CF7E7CFE73021F1E83051F1C8 +:101E9000E430B1F780918000806280938000D0931D +:101EA0008B00C0938A0004C084B5806884BDC7BD20 +:101EB000DF91CF91089584B5806284BDC8BDF8CF0D +:101EC00080918000806880938000D0938900C093C7 +:101ED0008800EECF8091B00080688093B000C093FE +:101EE000B300E6CF8091B00080628093B000C093D1 +:101EF000B400DECF3FB7F89480918B0290918C02B2 +:101F0000A0918D02B0918E0226B5A89B05C02F3FEF +:101F100019F00196A11DB11D3FBFBA2FA92F982F0F +:101F20008827BC01CD01620F711D811D911D42E00A +:101F3000660F771F881F991F4A95D1F708958F92D2 +:101F40009F92AF92BF92CF92DF92EF92FF924B019E +:101F50005C010E947A0F6B017C010E947A0F6C1960 +:101F60007D098E099F09683E734081059105A8F39C +:101F700021E0821A9108A108B10888EEC80E83E01A +:101F8000D81EE11CF11C81149104A104B10429F7AD +:101F9000FF90EF90DF90CF90BF90AF909F908F9089 +:101FA00008952FB7F894609187027091880280910C +:101FB000890290918A022FBF089584E98093BC0022 +:101FC0008091BC0084FDFCCF08958093BB0084E821 +:101FD0008093BC008091BC0087FFFCCF089584EA09 +:101FE0008093BC008091BC0087FFFCCF88E70C94F5 +:101FF000E50F0E94EF0F80E48093BB0084E880939C +:10200000BC00E2ECF2E09091BC0097FFFCCF919114 +:102010009093BB008093BC0096E0E23CF90799F7EF +:102020008091BC0087FFFCCF0C94DD0FCF93C82FAD +:102030000E94EF0F80E00E94E50F8C2F0E94E50FB9 +:10204000CF910C94DD0F480F592F511D4138510588 +:1020500014F040E850E0481BFB0177FD379633E071 +:10206000F595E7953A95E1F7F695FE2FEE27F7956A +:10207000E795E80FF91FEE53FD4F6770772781E072 +:1020800090E001C0880F6A95EAF7382F213041F4BB +:10209000415078F08191DF011197832B8C93F8CF19 +:1020A0008095415030F09191DF01119798239C93D6 +:1020B000F8CF0895CF92DF92EF92FF920F93CF93D4 +:1020C000DF936C017B01C42FD22F202F0E9423109D +:1020D000B7016D0F711D61507109603471052CF4E9 +:1020E000202F4C2FC6010E942310202F4D2FB70107 +:1020F000C6010E94570CC6018C0F911D202F4D2F39 +:10210000B7010197DF91CF910F91FF90EF90DF9092 +:10211000CF900C94570C2F923F924F925F926F92F8 +:102120007F928F929F92AF92BF92CF92DF92EF9267 +:10213000FF920F931F93CF93DF93CDB7DEB72A970C +:102140000FB6F894DEBF0FBECDBF9A8389836A3085 +:1021500061F5DC0152968C91B8E08B9F90011124BF +:10216000E981FA8186859785820F931F97878687F5 +:102170001586148681E090E02A960FB6F894DEBFAB +:102180000FBECDBFDF91CF911F910F91FF90EF90C8 +:10219000DF90CF90BF90AF909F908F907F906F9087 +:1021A0005F904F903F902F9008956D3019F32981E3 +:1021B0003A813A872987D9011C96AD90BC90B0E846 +:1021C000AB16B1040CF07BC0F901C684D784F0E4EF +:1021D000CF16D1040CF073C0D90152966C9052976F +:1021E00045E09501649E200D311D11241216130641 +:1021F0000CF065C0262C312C910153E0220F331FC7 +:102200005A95E1F72C0D3D1D121613060CF057C020 +:102210005196BC91BB83E985FA85F089FC83649F64 +:10222000B00111249B012B5D3F4E3A832983712C11 +:10223000E981FA818491F5E07F1201C080E04601D6 +:1022400038E0532E282F30E03E832D834C8080FFD2 +:102250004B80411004C03B818C813817E1F010E0C5 +:1022600000E00615C0F4D501A00FB11FB887AF83F9 +:10227000F12CE12CE61460F4B701680D791D442DB2 +:102280008F8198850E94390CBFEFEB1AFB0AF2CFC1 +:102290000F5F1F4FE6CF8D819E81959587955A944C +:1022A000820C931C5110CECF7394E981FA81319640 +:1022B000FA83E983A20CB31CF6E07F12B9CFA9859B +:1022C000BA8552962C915297422F50E01C968D91D0 +:1022D0009C91B6E02B9F800D911D1124E985FA8514 +:1022E000958784872389222309F444CF6AEF640306 +:1022F0009001659F300D112420583F4F2817390752 +:102300000CF038CFDF010190F081E02D0190F081D9 +:10231000E02D6AE0CD0109952DCF0F931F93CF9348 +:10232000DF938C01D0E0C0E0F801EC0FFD1F649159 +:10233000662341F08DEA97E00E948B10892B11F003 +:102340002196F2CFCE01DF91CF911F910F91089589 +:10235000682F8DEA97E00C948B1090E080E0089550 +:1023600080917A00806980937A008EE480937C006B +:1023700061E070E080E090E00E949F0F83B7817F72 +:10238000826083BF80E130E020E093B7916093BF2B +:10239000889593B79E7F93BF90917A0096FDFCCF6E +:1023A0004091780050917900240F351F815069F7D2 +:1023B00080917A008F7780937A0084E03695279514 +:1023C0008A95E1F750E040E064EB7BE281E190E048 +:1023D0000E94202DC901089588EC80937C00809193 +:1023E0007A00806880937A0065E070E080E090E099 +:1023F0000E949F0F80917A00806480937A00809180 +:102400007A0086FDFCCF60917800709179006A5463 +:10241000714090E080E00E94EB2B26EF38E24CE91F +:102420005FE30E941F2E089590917A009069909327 +:102430007A008E50806480937C0083B7817F8260B5 +:1024400083BF20E290E080E033B7316033BF8895EE +:1024500033B73E7F33BF30917A0036FDFCCF4091D9 +:10246000780050917900840F951F215069F72091D1 +:102470007A002F7720937A0025E0969587952A9504 +:10248000E1F708958FE00E941412A0919202B0919A +:1024900093029C010E94A32D0E94ED2B28E539E7B1 +:1024A00043E353E40E941F2E0E94982ECB0108950F +:1024B0002091A00230E0EEE1F2E090E080E0AF0198 +:1024C0004E5152404217530724F44191840F911DFD +:1024D000F6CF089580919802882369F086E00E94E3 +:1024E0008F0E892B41F06AE070E080E090E00E945E +:1024F0009F0F1092980208950F931F93CF9380918E +:102500004801882399F0CFEF0FEE11E061E085E0FC +:102510000E94B80EC8010197F1F760E085E00E94C3 +:10252000B80EC8010197F1F7C15081F7CF911F9103 +:102530000F9108952F923F924F925F926F927F92E8 +:102540008F929F92AF92BF92CF92DF92EF92FF92C3 +:102550000F931F93CF93DF9310E000E0D0E0C0E033 +:102560003EE3E32EF12C40ECC42ED12CAA24A394FC +:10257000B12C60E2662E712C70E4272E312C4C2E8B +:1025800086E00E948F0E21E0892B09F020E0209345 +:102590009802F0929F02E0929E02D0929D02C09219 +:1025A0009C02B0929B02A0929A0282E890E09093E3 +:1025B000AB028093AA028091AA029091AB029595FA +:1025C0008795582E9FE1591243C0F0929F02E092E6 +:1025D0009E02D0929D02C0929C02B0929B02A09259 +:1025E0009A02EEEBF0E0F093AB02E093AA029FE5D3 +:1025F000592E0E944B0D82E08093BF071093BA07BB +:102600000093B907E0E3F0E0F093BC07E093BB0769 +:102610008EE50E94A8111092BA071092B907709225 +:10262000BC076092BB07912C812C841438F58091F3 +:10263000C102F40196E0989FE00DF11D1124E15BC9 +:10264000FE4F80810E94A811EFEF8E1A9E0AEDCFF7 +:10265000F0E65F12CECFF0929F02E0929E02D092FF +:102660009D02C0929C02B0929B02A0929A0230926C +:10267000AB022092AA0280E2582EBBCF1093BA0779 +:102680000093B9077092BC076092BB07852D0E942A +:10269000A8110E946A120E94F90F86E00E948F0E14 +:1026A000892B09F088CF80919802811184CF809086 +:1026B000C102F6E08F9E40011124C401815B9E4F50 +:1026C0004C01FC01EC0FFD1F50820E947C126AE05D +:1026D00070E080E090E00E949F0F2196005F1F4F06 +:1026E000C530D10509F04BCFF4011582DF91CF91B0 +:1026F0001F910F91FF90EF90DF90CF90BF90AF9020 +:102700009F908F907F906F905F904F903F902F9011 +:1027100008953F924F925F926F927F928F929F9215 +:10272000AF92BF92CF92DF92EF92FF920F931F93DF +:10273000CF93DF93CDB7DEB72E970FB6F894DEBFF9 +:102740000FBECDBF8091BE02882309F4A5C11092AF +:102750005F071092600710926107109262078090E5 +:102760005F0790906007A0906107B0906207C090EB +:10277000B302D090B402E090B502F090B602A70187 +:102780009601C501B4010E94B22D2B013C0120E04D +:1027900030E0A9010E94C72E18160CF0A0C1C30199 +:1027A000B2010E94982E80914901882309F4B8C192 +:1027B000C0926707D0926807E0926907F0926A07B3 +:1027C000E12CF12C00EA10E420E030E040E450E499 +:1027D0006E31710540F0E12CF12C00E81FE320E0A0 +:1027E00030E040E05FE360E070E080E391E40E946D +:1027F0005D0B8091A507882309F42AC10E94D10F9F +:102800006D837E838F83988780918D0790918E074B +:10281000A0918F07B09190074D815E816F8178857F +:10282000481B590B6A0B7B0B8091990790919A0773 +:10283000A0919B07B0919C07481759076A077B072F +:1028400008F406C1E0918707F091880780819181A3 +:10285000A281B38189839A83AB83BC83E0918B0788 +:10286000F0918C079C01AD0160817181828193811F +:102870000E94B22D4B015C01209195073091960783 +:10288000409197075091980769817A818B819C814B +:102890000E94B22D6B017C0120917B0730917C0757 +:1028A00040917D0750917E07C501B4010E944C2CD8 +:1028B000209191073091920740919307509194078E +:1028C0000E94B32D2B013C01409291075092920738 +:1028D00060929307709294073090A60731101AC047 +:1028E00020917707309178074091790750917A07C6 +:1028F000C701B6010E944C2C9B01AC01C301B2017F +:102900000E94B22D60939107709392078093930772 +:10291000909394074090910750909207609093078E +:10292000709094071091A1079091A2079E87A091A3 +:10293000A307AD870091A407212F392F4A2F502FCD +:10294000C301B2010E94C72E18160CF0CCC0812F13 +:102950009E85AD85B02F8093910790939207A093A9 +:102960009307B0939407332009F4D6C020917707DA +:10297000309178074091790750917A07C501B401E9 +:102980000E944C2C4B015C0120917F073091800705 +:102990004091810750918207C701B6010E944C2CDB +:1029A0009B01AC0160919107709192078091930710 +:1029B000909194070E94B22DA50194010E94B32D1D +:1029C0006B017C019B01AC01612F7E858D85902F71 +:1029D0000E94E62B87FD18C010919D0790919E07DD +:1029E0009E87A0919F07AD870091A007212F392FC7 +:1029F0004A2F502FB601C7010E94E62B87FD04C065 +:102A00001C2DDE86ED860F2DE0918907F0918A0757 +:102A1000812F9E85AD85B02F80839183A283B38360 +:102A200089819A81AB81BC818093950790939607A9 +:102A3000A0939707B09398078D819E81AF81B88549 +:102A400080938D0790938E07A0938F07B093900784 +:102A500060916307709164078091650790916607A4 +:102A60000E94912ECB012E960FB6F894DEBF0FBEBA +:102A7000CDBFDF91CF911F910F91FF90EF90DF902D +:102A8000CF90BF90AF909F908F907F906F905F900E +:102A90004F903F900C94220F8091BD0260914401B1 +:102AA0007091450181110EC08091B1029091B202E6 +:102AB0002091BC02BC01222329F060914301680FE0 +:102AC000792F711D90E080E00E94EB2B60935F07EF +:102AD00070936007809361079093620740CEC301B3 +:102AE000B20190585ECE80919D0790919E07A09173 +:102AF0009F07B091A00789879A87AB87BC879C0105 +:102B0000AD01C301B2010E94E62B87FF2CCF89855E +:102B10009A85AB85BC851FCF812C912C540134CF75 +:102B200020E030E040E05FE3C701B6010E94B32D32 +:102B30009B01AC01C501B4010E94C72E18164CF4CC +:102B4000109263071092640710926507109266074F +:102B50007FCF80E090E0AFE7B3E48093630790938A +:102B60006407A0936507B093660772CF4F925F9298 +:102B70006F927F928F929F92AF92BF92CF92DF928D +:102B8000EF92FF92CF93DF93809094029090950202 +:102B9000A0909602B0909702C091C102D0E0C5010A +:102BA000B4010E94912E6B017C0120E030E048E4EA +:102BB00053E4C501B4010E94E62B93E0CC0FDD1F66 +:102BC0009A95E1F7CE5FDE4F87FF31C028813981CA +:102BD00050E040E02551310941095109C701B601D2 +:102BE0000E94D12E28EC30E040E050E00E94202DE1 +:102BF000CA01B9016B5E7F4F8F4F9F4F0E94ED2B33 +:102C00006093B3027093B4028093B5029093B602BE +:102C1000DF91CF91FF90EF90DF90CF90BF90AF907A +:102C20009F908F907F906F905F904F9008954A8013 +:102C30005B80712C612C20E030E04CE853E4C5014E +:102C4000B4010E94E62B87FF1FC088809980B12CB9 +:102C5000A12CA7019601285C310941095109C30142 +:102C6000B201681979098A099B090E94D12E20E5D1 +:102C700030E040E050E00E94202DCA01B901680D0B +:102C8000791D8A1D9B1DBACF2C813D8150E040E00B +:102C90002419350946095709C701B6016851714021 +:102CA000810991090E94D12E20E530E040E050E0FA +:102CB0000E94202DCA01B901640D751D861D971D46 +:102CC0009DCFFC0101900020E9F73197AF01481B2F +:102CD000590BBC018DEA97E00C94590D8F929F928D +:102CE000AF92BF920F931F93CF93DF93CDB7DEB711 +:102CF000A1970FB6F894DEBF0FBECDBF19A2423028 +:102D000008F44AE08E010F5D1F4F842E912CB12CE8 +:102D1000A12CA50194010E94812DE62FB901CA01C1 +:102D2000EA30F4F4E05DD801EE938D01232B242BDF +:102D3000252B79F790E080E0109719F0CD010E94E3 +:102D40006116A1960FB6F894DEBF0FBECDBFDF911E +:102D5000CF911F910F91BF90AF909F908F9008954A +:102D6000E95CE1CFCF92DF92EF92FF92CF93DF93B6 +:102D700097FF19C06B017C018DE20E94A811EC0144 +:102D800066277727CB016C197D098E099F094AE0D8 +:102D90000E946E168C0F9D1FDF91CF91FF90EF90D8 +:102DA000DF90CF9008954AE0DF91CF91FF90EF90B0 +:102DB000DF90CF900C946E164F925F926F927F923D +:102DC0008F929F92AF92BF92CF92DF92EF92FF923B +:102DD0000F931F93CF936B017C01742EAC019B0169 +:102DE0000E94CC2E882399F083E692E0CF911F9128 +:102DF0000F91FF90EF90DF90CF90BF90AF909F909A +:102E00008F907F906F905F904F900C946116460169 +:102E10005701E894B7F82FEF3FEF4FE75FE7C501A1 +:102E2000B4010E94CC2E81110DC02FEF3FEF4FE770 +:102E30005FE7C501B4010E94E62B18161CF487E673 +:102E400092E0D4CF2FEF3FEF4FE75FE4C701B60129 +:102E50000E94C72E18161CF48BE692E0C7CF2FEF06 +:102E60003FEF4FE75FECC701B6010E94E62B87FDFD +:102E7000F3CF20E030E0A901C701B6010E94E62BA4 +:102E800010E000E087FF08C08DE20E94A8118C01CD +:102E9000F7FAF094F7F8F094C0E060E070E080E0BA +:102EA0009FE37C1641F020E030E040E251E40E94D4 +:102EB0001F2ECF5FF6CFA70196010E94B32D2B01E5 +:102EC0003C010E94982E4B015C014AE00E946E1664 +:102ED0007C01E00EF11ECC23B1F1C501B4010E94CA +:102EE000EB2B9B01AC01C301B2010E94B22D4B013F +:102EF0005C018EE20E94A811E80EF91EC15018F183 +:102F000020E030E040E251E4C501B4010E944C2CC5 +:102F10002B013C010E94982E4B01B12CA12C4AE0C0 +:102F2000C501B4010E946E16E80EF91EC501B40178 +:102F30000E94EB2B9B01AC01C301B2010E94B22D98 +:102F40004B015C01DBCFC701CF911F910F91FF9027 +:102F5000EF90DF90CF90BF90AF909F908F907F9039 +:102F60006F905F904F900895CF92DF92EF92FF9213 +:102F70000F931F93CF93DF93C82F81E0DC2FD827C7 +:102F8000D093BE07C093BD078093BF070C2F2EE0E0 +:102F900046E661E370E081E090E00E945A102091E3 +:102FA000BF023091C002253F81E03807B8F4A4E6A3 +:102FB000B0E00E94A32D24EF31E040E050E00E94F9 +:102FC000202DBA01A9014E5F5F4F6F4F7F4F2EE05A +:102FD00061E370E081E090E00E94800C60915F0707 +:102FE0007091600780916107909162070E94912E15 +:102FF0009B01AC01A4E6B0E00E943F2D34EFC32E4C +:10300000DD24D394E12CF12CA70196010E94202D00 +:10301000DA01C9010296A11DB11D02970C2F2DE006 +:1030200043E062E370E00E94800C60915F07709162 +:10303000600780916107909162070E94912E9B0129 +:10304000AC01A4E6B0E00E943F2DA70196010E94CA +:10305000202DDA01C9010296A11DB11D039724E0BC +:1030600045E06CE370E00E94800C60915F07709116 +:10307000600780916107909162070E94912E9B01E9 +:10308000AC01A4E6B0E00E943F2DA70196010E948A +:10309000202D89019A010E5F1F4F2F4F3F4F015086 +:1030A000110941E3E42EF12C4D2FB701C8010E9414 +:1030B000390C8FEFE81AF80A8DE3E816F104A1F74E +:1030C00060915F077091600780916107909162073E +:1030D0000E94912E9B01AC01A4E6B0E00E943F2D1E +:1030E00024EF31E040E050E00E94202DDA01C901D8 +:1030F0000296A11DB11D0397ED2E04E025E048ECDA +:103100005FE06BE370E00E94A20C0C2F2EE047E121 +:1031100061E370E088E690E00E945A1060916307D6 +:103120007091640780916507909166070E94912EC7 +:103130009B01AC012F5F310941095109A7E1B0E0C2 +:103140000E943F2DCC24C394DD24DA94ED2CFD2C79 +:10315000A70196010E94202D422F2EE061E370E02E +:1031600088E690E00E94800CC093BE07D093BD0714 +:1031700082E090E09093BA078093B90707E310E0EC +:103180001093BC070093BB0760915F0770916007C5 +:10319000809161079091620740E00E94DC1688EF01 +:1031A0000E94A81186EC9FE00E948D1189E690E0B4 +:1031B0009093BA078093B9071093BC070093BB079D +:1031C000609163077091640780916507909166072D +:1031D0000E94912E9B01AC012F5F310941095109D9 +:1031E000A4E6B0E00E943F2DA70196010E94202D89 +:1031F000CA01B9010E94B21684EC9FE00E948D11B1 +:10320000D093BE07C093BD07DF91CF911F910F915F +:10321000FF90EF90DF90CF9008956F927F928F9202 +:103220009F92AF92BF92CF92DF92EF92FF920F9355 +:103230001F93CF93DF93B090C10277247394B110A2 +:1032400001C0712C809142018150990B10929F0214 +:1032500010929E02880F991F90939D0280939C026A +:1032600081E090E090939B0280939A028B2D90E0F6 +:10327000880F991F9093AB028093AA0286E00E9468 +:103280008F0E21E0892B09F020E020939802FF2483 +:10329000F39472E0972EE6E08E2EFCE0CF2ED12C38 +:1032A0000E944B0D1092BC071092BB071092BA07F8 +:1032B0001092B907C091AA02D091AB02D595C795DB +:1032C000EC2E8E011127C801870D911D77FC9A9570 +:1032D0008B199109712C97FD06C08330910514F06C +:1032E00082E090E0782EF092BE071092BD07909297 +:1032F000BF078AE190E10E948D111092BE07F09203 +:10330000BD071092BA071092B907A72C072C000C22 +:10331000BB08C501019654E0880F991F5A95E1F743 +:103320009093BC078093BB0788E190E10E948D11C8 +:103330006C2E671890E080E098012A193B0959012A +:10334000209142018C010F5F1F4F6216D0F4D09282 +:10335000BA07C092B907980144E0220F331F4A957B +:10336000E1F73093BC072093BB078A0D9B1D889E15 +:103370009001899E300D1124C901815B9E4F0E94EE +:103380006116C801639403301105D1F60E946A12D8 +:103390000E94F90F86E00E948F0E892BB9F480916C +:1033A0009802811113C00E947C12E092C102DF9149 +:1033B000CF911F910F91FF90EF90DF90CF90BF9032 +:1033C000AF909F908F907F906F900895BC2E68CFA4 +:1033D0000E94C930EF92FF920F931F93CF93DF9318 +:1033E000EC017B018A0188819981009729F02A816B +:1033F0003B812417350788F4B8016F5F7F4F0E9427 +:103400000C30009791F0998388831B830A832C8169 +:103410003D81232B11F4FC0110821D830C83B70125 +:10342000888199810E94D7300CC08881998100974A +:1034300011F00E94832F198218821D821C821B8228 +:103440001A82CE01DF91CF911F910F91FF90EF90E3 +:1034500008951F93CF93DF93EC01162F0E940A2D3E +:10346000181739F0612FCE01DF91CF911F910C9485 +:10347000122DDF91CF911F910895AF92BF92CF92FD +:10348000DF92EF92FF920F931F93CF93DF936091A0 +:10349000470182E090E00E94291A6091460183E092 +:1034A00090E00E94291A6091450184E090E00E941A +:1034B000291A6091440185E090E00E94291A6091E8 +:1034C000430186E090E00E94291A60914C0187E058 +:1034D00090E00E94291A60914B0188E090E00E94E0 +:1034E000291A60914A0189E090E00E94291A6091AE +:1034F0007F018AE090E00E94291A609149018BE0E7 +:1035000090E00E94291A609148018CE090E00E94AE +:10351000291A6091C1028DE090E00E94291A609101 +:1035200042018EE090E00E94291A6091BB028FE078 +:1035300090E00E94291A6091990280E190E00E9437 +:10354000291A6091B80281E190E00E94291A82E173 +:10355000E82EF12C10E006E0809142011817B8F532 +:10356000109F60011124D0E0C0E0FE01EC0DFD1DB4 +:10357000E15BFE4F6081C7018C0F9D1F0E94291ADD +:103580002196C630D10589F7670186E0C80ED11CA7 +:1035900088E0189FE0011124CE5FDE4F8EE0E80E38 +:1035A000F11C69812296C6010E94291A560182E007 +:1035B000A80EB11CFE0132976081C60101960E94DF +:1035C000291A6501AE14BF0461F71F5FC5CFDF91F3 +:1035D000CF911F910F91FF90EF90DF90CF90BF9010 +:1035E000AF9008958F929F92AF92BF92CF92DF9249 +:1035F000EF92FF92CF938FEF90E00E94220F8BEA21 +:1036000094E00197F1F78EE00E9414127C018AE0A9 +:103610000E948F0E90917202981729F091E090937A +:10362000B70280937202809101019FEF980F9093EF +:103630000101811106C00E9442129093BA02809348 +:10364000B90260916307709164078091650790915A +:1036500066070E94912ECB010E94220F8090940257 +:1036600090909502A0909602B0909702B70190E0DA +:1036700080E00E94EB2BA50194010E94B22D2DEC5D +:103680003CEC4CE45DE30E944C2CA50194010E94AB +:10369000B32D609394027093950280939602909359 +:1036A00097020E94B6156091BF027091C00290E02F +:1036B00080E00E94EB2B6B017C0120915F07309131 +:1036C000600740916107509162070E94E62B8111CB +:1036D000B5C02091B3023091B4024091B50250912F +:1036E000B602C701B6010E94B22D6B017C0120E039 +:1036F00030E0A9010E94C72E18160CF095C020E0FA +:1037000030E040EA50E4C701B6010E94C72E181607 +:103710000CF494C06091B1027091B20290E080E02C +:103720000E94EB2B2091B3023091B4024091B5027C +:103730005091B6020E94B22D6B017C0120E030E076 +:10374000A9010E94C72E18160CF087C0C701B60148 +:103750000E94982E6530710508F083C080914E015B +:10376000811105C080914D0181110E947C1281E080 +:1037700080934E0110924D018091BF029091C00242 +:10378000853F21E0920710F0109200012091000186 +:10379000211140C0843F9140E8F58FEF90E00E94F6 +:1037A000220F0E947C12C1E0C09300010E940D19FB +:1037B0000E943D1AC093B7028EE00E941412BC0111 +:1037C00090E080E00E94EB2B60939402709395024E +:1037D00080939602909397021092A9028091B10271 +:1037E0009091B20224E630E030939F0220939E0233 +:1037F00020E233E030939D0220939C022AE030E0E7 +:1038000030939B0220939A02880F991F9093AB02EA +:103810008093AA02CF91FF90EF90DF90CF90BF905E +:10382000AF909F908F90089520E030E040EA50ECF8 +:10383000C701B6010E94E62B87FF6CCF6091B302EF +:103840007091B4028091B5029091B6020E94982EB8 +:103850007093C0026093BF025DCFC701B60190585C +:1038600077CF10924E0188CF0C940A2D2F923F9261 +:103870004F925F926F927F928F929F92AF92BF9280 +:10388000CF92DF92EF92FF920F931F93CF93DF932C +:10389000CDB7DEB768970FB6F894DEBF0FBECDBFC9 +:1038A00026E02093BF0721E02093BE071092BD07BA +:1038B0000091AB071091AC076091A7077091A80722 +:1038C00030E8232E32E0332EF10130E020E02017E3 +:1038D000310730F4DB01A20FB31F6115710521F42C +:1038E00010927302A3E7B2E04C9150E041935193E0 +:1038F0002F5F3F4F2330310551F71C8A1B8A1E8AE8 +:103900001D8A188E1F8A4AE08E010F5F1F4FB80173 +:103910000E949C2BF80101900020E9F73197AF013C +:10392000401B510BB801CE0143960E94EA198091C9 +:10393000A7079091A807009709F4E8C06B897C89D4 +:103940006115710509F4E0C04091A9075091AA07DB +:103950002F89388D4217530708F4D6C00E94D730FC +:103960008F89988D9093AC078093AB07188E1F8A30 +:103970008B899C89009711F00E94832F94E7E92E90 +:1039800092E0F92E24E0A22EB12CD12CC12C8091F2 +:10399000AB079091AC07C816D90638F4E091A70799 +:1039A000F091A807309709F0C8C010927302E3E7BE +:1039B000F2E0808190E0F10120813181821B930B44 +:1039C000F2E3F89FB001F99F700D1124072E000C4F +:1039D000880B990B0E94ED2BF701208131814281E8 +:1039E00053810E94B32D2B013C0120E030E0A9015E +:1039F0000E94E62B8111A4C0F701408251826282AD +:103A0000738201E022E346E270E060E0C5010497C2 +:103A10000E94800C8EEC882E99249A940FEF1FEF51 +:103A2000F701208131814281538160E070E080E8BC +:103A300090E40E94B22D2B013C01B401092C000C32 +:103A4000880B990B0E94ED2B9B01AC01C301B201C5 +:103A50000E94B32D0E94912EB092BA07A092B9078E +:103A60007093BC076093BB07F10160817181600FA7 +:103A7000711F60537109072E000C880B990B0E946F +:103A8000B2160F5F1F4FF2E38F0E911C023011052B +:103A900039F62FEFC21AD20A84E0E80EF11CECE2EC +:103AA000AE0EB11CF2E02F0E311C23E0C216D10481 +:103AB00009F06DCF00E022E040E870E060E090E0C7 +:103AC00080E00E94800C2DE040E863E370E090E02D +:103AD00080E00E94800C68960FB6F894DEBF0FBE9F +:103AE000CDBFDF91CF911F910F91FF90EF90DF90AD +:103AF000CF90BF90AF909F908F907F906F905F908E +:103B00004F903F902F9008950E94832F8B899C891E +:103B10009093A8078093A7078D899E899093AA0701 +:103B20008093A9078F89988D9093AC078093AB07FA +:103B30001C8A1B8A1E8A1D8A19CFEC0DFD1D39CFE8 +:103B4000C301B20190582DEC3CEC4CE45FE30E94C1 +:103B50004C2CA30192010E94B32DF7016083718365 +:103B6000828393834ECF86E00E948F0E21E0892BC3 +:103B700009F020E0209398020E944B0D1092BC07A0 +:103B80001092BB071092BA071092B9078091AA024F +:103B90009091AB02959587950E94361C0E94F90F73 +:103BA0000E946A1286E00E948F0E892B29F780916D +:103BB00098028111E1CF0E947C128091A707909119 +:103BC000A807009721F00E946E2BCB01089560E0BA +:103BD00070E0CB01FACF2F923F924F925F926F929B +:103BE0007F928F929F92AF92BF92CF92DF92EF928D +:103BF000FF920F931F93CF93DF93CDB7DEB76397F9 +:103C00000FB6F894DEBF0FBECDBFB82EE091A00274 +:103C1000F0E0E25EFD4F80818150990B10929F028F +:103C200010929E02880F991F90939D0280939C0290 +:103C300081E090E090939B0280939A028B2D90E01C +:103C4000880F991F9093AB028093AA0286E00E948E +:103C50008F0E21E0892B09F020E02093980210922A +:103C6000BE0781E08093BD078091AA029091AB02CC +:103C70009C01359527953D872C871C857901FF246C +:103C800097012B19310948E3429FC001439F900DD2 +:103C90001124C80ED91EC114D10409F16627772753 +:103CA0006C197D09072E000C880B990B0E94ED2BD7 +:103CB00020E030E040E05FE30E944C2C4B015C01CF +:103CC000B601DD0C880B990B0E94ED2B9B01AC011A +:103CD000C501B4010E94B32D0E94912E6B010E9478 +:103CE0004B0D1092BC071092BB071092BA071092AE +:103CF000B907370182E0681A7108560198E4A91AD9 +:103D0000B108F7013396FB8BEA8B77FC8BC0E0910F +:103D1000A002F0E0E25EFD4F80818615170409F0F5 +:103D20000CF480C001E020E340E370E060E0C501F6 +:103D30000E94800C95012D5F3F4F398B288B00E04E +:103D40002AE24AE263E070E0888999890E94800C47 +:103D500070E060E0C5010E94240D70E060E0450164 +:103D60003FE2830E911CC4010E94240D6FE270E0BB +:103D7000C5010E94240D6FE270E0C4010E94240D71 +:103D80000E945812F301E80FF11DEE0FFF1FEE52D3 +:103D9000FE4F808191819F878E8753E0452E512C65 +:103DA000312C212C912C812CF40133E0F595E795F1 +:103DB0003A95E1F7E20DF31D2E853F85E20FF31FE3 +:103DC000E491C4018770992720E830E002C035955E +:103DD00027958A95E2F7C901F0E0E223F923EF2B5A +:103DE00079F0C401880F991F880D991D01E023E027 +:103DF00043E0B201E889F9898E0F9F1F0E94800C71 +:103E0000FFEF8F1A9F0A2EE08216910469F632E0C6 +:103E1000230E311C43E0440E511C8DE24816510420 +:103E200009F0C0CF9FEF691A790AE8E3AE0EB11C22 +:103E30002A893B892615370509F067CF8091BB0297 +:103E4000811140C00E945812F701E80FF11DEE0FDA +:103E5000FF1FEA57FE4F40815181EE24E39400E1B9 +:103E600024E260E370E080E390E00E94A20C0E94F4 +:103E7000F90F0E946A1286E00E948F0E892B01F5CD +:103E80008091980281111CC00E947C12812F639640 +:103E90000FB6F894DEBF0FBECDBFDF91CF911F915B +:103EA0000F91FF90EF90DF90CF90BF90AF909F90D9 +:103EB0008F907F906F905F904F903F902F900895DC +:103EC000BC84D2CE80E390E09093BA078093B90788 +:103ED000E1E3F0E0F093BC07E093BB0781E080935F +:103EE000BF070E945812FC858F0FE82FF0E0EE0FFD +:103EF000FF1FE453F04F65917491CE0101960E942B +:103F0000952BCE0101960E946116B1CF1F920F92A0 +:103F10000FB60F9211242F933F934F935F936F939C +:103F20007F938F939F93AF93BF93EF93FF9382EC15 +:103F300096E00E94D70DFF91EF91BF91AF919F91B5 +:103F40008F917F916F915F914F913F912F910F9042 +:103F50000FBE0F901F9018951F920F920FB60F92E1 +:103F600011242F938F939F93EF93FF93E091D206A9 +:103F7000F091D3068081E091D806F091D90682FDB8 +:103F80001BC090818091DB068F5F8F732091DC06D0 +:103F9000821741F0E091DB06F0E0EE53F94F958F88 +:103FA0008093DB06FF91EF919F918F912F910F905E +:103FB0000FBE0F901F9018958081F4CF1F920F9223 +:103FC0000FB60F9211242F933F938F939F93AF932C +:103FD000BF938091870290918802A0918902B0914D +:103FE0008A023091860223E0230F2D3758F501967F +:103FF000A11DB11D209386028093870290938802B1 +:10400000A0938902B0938A0280918B0290918C02D6 +:10401000A0918D02B0918E020196A11DB11D8093D9 +:104020008B0290938C02A0938D02B0938E02BF916D +:10403000AF919F918F913F912F910F900FBE0F9055 +:104040001F90189526E8230F0296A11DB11DD2CF0F +:104050001F920F920FB60F9211242F933F934F93FD +:104060005F936F937F938F939F93EF93FF9383B1AE +:10407000817029B190919102981709F49DC030E0A8 +:10408000220F232F221F330B922F809391024091F6 +:104090009002241709F490C02093900220919A0274 +:1040A00030919B02981719F0319521953109409173 +:1040B000AA025091AB0260919E0270919F02240F60 +:1040C000351F261737070CF48BC020919A023091C8 +:1040D0009B02981719F03195219531094091AA0258 +:1040E0005091AB0260919C0270919D02240F351F8C +:1040F000621773070CF46FC040919A0250919B02B3 +:10410000981719F05195419551092091AA023091C3 +:10411000AB02240F351F3093AB022093AA0241E07B +:10412000981340E020918F02421709F440C020917B +:104130009A0230919B02981719F031952195310917 +:104140006091AA027091AB02E0919E02F0919F02F1 +:10415000260F371F2E173F070CF44CC020919A02F0 +:1041600030919B02981719F0319521953109609192 +:10417000AA027091AB02E0919C02F0919D02260F81 +:10418000371FE217F3078CF120919A0230919B02BE +:10419000981719F03195219531098091AA029091D3 +:1041A000AB02820F931F9093AB028093AA024093BD +:1041B0008F0281E08093B702FF91EF919F918F91E1 +:1041C0007F916F915F914F913F912F910F900FBE13 +:1041D0000F901F90189520919C0230919D029BCFCB +:1041E00020919E0230919F0296CF80919C029091E7 +:1041F0009D02D9CF80919E0290919F02D4CF1895B5 +:104200000F931F93CF93DF93E2ECF6E013821282B9 +:1042100088EE93E0A0E0B0E084839583A683B78323 +:1042200089E492E09183808385EC90E09587848790 +:1042300084EC90E09787868780EC90E0918B808B70 +:1042400081EC90E0938B828B82EC90E0958B848B59 +:1042500086EC90E0978B868B118E128E138E148EC7 +:10426000EDEAF7E0138212821682178280E18087DE +:104270001582148212868BE592E0918380831586E5 +:1042800014861786168611E0108B118A128B138AFA +:10429000E7EAF7E0118210821382128215821482FB +:1042A00050E040E061E772E0CF010E94EA19CBE6FE +:1042B000D7E083E697E09F8F8E8F87E697E09D8F0C +:1042C0008C8F8FE597E099A388A31AAE1AAA1BAA30 +:1042D0001CAA1DAA80E090E0AFE7B3E48EAB9FABD1 +:1042E000A8AFB9AF84E690E0A0E0B0E08EA79FA7AA +:1042F000A8ABB9AB81E090E0998F888F9B8F8A8FB4 +:104300001BAF80E090E0A0E3B1E488839983AA83A7 +:10431000BB8380E090E0A0E0BFE38C839D83AE830D +:10432000BF8380E090E0A0E8BFE388879987AA87F1 +:10433000BB8780E090E0A0E3B1EC8C879D87AE87DF +:10434000BF878DEC9CECACE4BDEB888B998BAA8B82 +:10435000BB8B80E090E0A0E2B1EC8C8B9D8BAE8BB0 +:10436000BF8B0E94D10F0EA51FA528A939A9601BDC +:10437000710B820B930B6AA37BA38CA39DA3DF918C +:10438000CF911F910F910895CF93DF93CDB7DEB7F3 +:104390002B970FB6F894DEBF0FBECDBF789484B5CF +:1043A000826084BD84B5816084BD85B5826085BD31 +:1043B00085B5816085BD80916E00816080936E00BF +:1043C00010928100809181008260809381008091B1 +:1043D0008100816080938100809180008160809362 +:1043E00080008091B10084608093B1008091B00022 +:1043F00081608093B00080917A00846080937A001D +:1044000080917A00826080937A0080917A00816046 +:1044100080937A0080917A00806880937A0010926D +:10442000C1001092B90088E48093B8000E94EF0F99 +:1044300080E00E94E50F0BE615E18AE8E82E85E1B1 +:10444000F82EF80184910E94E50F0F5F1F4FE016D0 +:10445000F106B9F70E94DD0F11E01093B8000E9439 +:10446000F90F81E28093B50760E08EE00E94E60ECE +:1044700060E08FE00E94E60E61E085E00E94E60EBB +:1044800061E089E00E94E60E62E087E00E94E60EAD +:1044900062E088E00E94E60E62E086E00E94E60E9E +:1044A00062E08AE00E94E60E8FEF90E00E94220F09 +:1044B00060E085E00E94B80E80917A00876080936A +:1044C0007A0080917A00886080937A0078941093C3 +:1044D0006B00109368001BBB90E080E00E94341CCE +:1044E000182F81E090E00E94341C912F8F3F98405C +:1044F00009F0BBC082E090E00E94341C182F83E0DA +:1045000090E00E94341C912F9093470180934601C4 +:1045100084E090E00E94341C182F85E090E00E9417 +:10452000341C912F909345018093440186E090E0E4 +:104530000E94341C8093430187E090E00E94341C69 +:1045400080934C0188E090E00E94341C80934B01E2 +:1045500089E090E00E94341C80934A018AE090E058 +:104560000E94341C80937F018BE090E00E94341CF9 +:1045700091E0811101C090E0909349018CE090E0BE +:104580000E94341C91E0811101C090E09093480199 +:104590008DE090E00E94341C8093C1028EE090E098 +:1045A0000E94341C282E809342018FE090E00E94EC +:1045B000341C8093BB0280E190E00E94341C91E0A7 +:1045C000811101C090E09093990281E190E00E94F6 +:1045D000341C8093B802B2E08B2EB1E09B2E1FE416 +:1045E000A12E11E0B12E02E1E02EF12C312C23148A +:1045F00009F447C010E000E0C701800F911F0E943E +:10460000341CF501E00FF11F80830F5F1F4F063050 +:10461000110591F7670126E0C20ED11C3EE0E30EC2 +:10462000F11C3401C6010E94341C082F10E0102F29 +:104630000027F301118300832601F2E04F0E511C85 +:10464000C60101960E94341C082BF30101931193BB +:104650003F0162014E145F0429F73394F8E08F0E96 +:10466000911C26E0A20EB11CC2CF68E090E080E071 +:104670000E94291A6FEF81E090E00E94291A0E949F +:104680003D1A1091990280EC111101C088EC0E9432 +:10469000161080EA111101C081EA0E9416100E94D2 +:1046A000B01190939302809392020E9442129093D1 +:1046B000BA028093B902009146011091470110930C +:1046C000B2020093B1028EE00E941412BC0190E08D +:1046D00080E00E94EB2B609394027093950280938C +:1046E0009602909397020E94EC110E94B61520E06A +:1046F00030E040EA51E46091B3027091B4028091DD +:10470000B5029091B6020E94B32D6B017C01B801F5 +:1047100090E080E00E94EB2B9B01AC01C701B60149 +:104720000E94E62B87FF04C090E080E00E94220FE9 +:1047300010929D0710929E0710929F071092A0075B +:10474000412C512CFFE76F2EF3E47F2E4092A107FE +:104750005092A2076092A3077092A407A0908907C5 +:10476000B0908A078091A507F501C080D180E280D2 +:10477000F380882309F47DC7A3019201C701B60124 +:104780000E94C72E181634F5F501408251826282CC +:1047900073828090910790909207A0909307B090B9 +:1047A0009407C090A107D090A207E090A307F090D3 +:1047B000A407A7019601C501B4010E94C72E1816CF +:1047C000C4F4C0929107D0929207E0929307F092BE +:1047D00094071FC020E030E0A901C701B6010E9484 +:1047E000E62B87FFD6CFF501108211821282138249 +:1047F000D0CFC0909D07D0909E07E0909F07F0908B +:10480000A007A7019601C501B4010E94E62B87FD10 +:10481000D8CF81E08093A50783B181708093910206 +:1048200089B190E0880F892F881F990B809390029F +:10483000209191029091900281E0291380E0809371 +:104840008F0284E690E090939F0280939E0280E224 +:1048500093E090939D0280939C028AE090E0909375 +:104860009B0280939A02000F111F1093AB020093DA +:10487000AA020E94D10F6093AD027093AE028093A2 +:10488000AF029093B0020E947C120E947C12209092 +:10489000AA023090AB029101359527953A87298776 +:1048A0003093B2022093B10286E00E948F0E8B8774 +:1048B00081119EC08091A902882309F499C00E94A9 +:1048C0007C120E94D10F6B017C01C092A502D09294 +:1048D000A602E092A702F092A80286E00E948F0E44 +:1048E000892B59F40E94D10F6C197D098E099F09FB +:1048F000643F71408105910580F30E94D10F6C19CE +:104900007D098E099F09643F71408105910508F476 +:1049100048C48FEF90E00E94220F0E947C12512C1D +:104920005AE0652E712C1092A002852D0E94EB1D7D +:10493000582EF7E0F81708F438C0E82FF0E0ED55EE +:10494000FB4D0C94E12EBD246F27E92751285F28E9 +:104950009928B128A72820E030E0A901C701B601B5 +:104960000E94E62B87FF55CF109291071092920775 +:1049700010929307109294074CCF4EE1642E712C45 +:1049800081E08093A002852D0E94EB1D582E22E02D +:10499000821709F43EC2281708F4E9C0882309F4F5 +:1049A00011C131E0831709F410C10E943D1A81E062 +:1049B0008093B70229853A853093B2022093B102E1 +:1049C00084E690E090939F0280939E0280E293E0C1 +:1049D00090939D0280939C028AE090E090939B02CA +:1049E00080939A02C1018E7F9093AB028093AA02BA +:1049F0003B853093A9028091BC02882309F1109174 +:104A00004A011123E9F00E94D10FC090A102D09079 +:104A1000A202E090A302F090A4026C197D098E0915 +:104A20009F0928EE33E040E050E00E94812D2117DD +:104A300038F01092BC020E947C1281E080934D01FC +:104A40008091B7028823E9F18091BD02882349F162 +:104A500020E030E040EA51E46091B3027091B4028A +:104A60008091B5029091B6020E94B32D6B017C013A +:104A70006091B1027091B20290E080E00E94EB2B55 +:104A80009B01AC01C701B6010E94E62B87FF04C061 +:104A900090E080E00E94220F0E947C1281E08093CF +:104AA0004D011092B7021092BD021092BE020E94F8 +:104AB000D10F6093AD027093AE028093AF029093DA +:104AC000B0020E94D10F0091AD021091AE02209170 +:104AD000AF023091B002601B710B820B930B20E68A +:104AE0003AEE40E050E00E94812D122F2093AC025C +:104AF0008091BD0281110BC080914C01882339F057 +:104B0000281728F081E08093BD020E947C128091DA +:104B1000BE0281110BC080914B01882339F0181718 +:104B200028F081E08093BE020E947C120E94F21A5B +:104B30000E9489130E94D10F8091B607962F981B6F +:104B4000892F9091B707992309F441C38093B8073F +:104B50001092B70780E090E0892B09F498CE0E946C +:104B6000C30D882309F493CE0E94000090CE83E009 +:104B7000581609F451C194E0591217CF809142019F +:104B8000883008F0FDCE91E0980F90934201809319 +:104B9000C1020E949A12E091C10228E0E29FF00156 +:104BA0001124EE5FFE4F88ED90E09183808324E333 +:104BB00031E03383228386E891E095838483778292 +:104BC0006682DECE0E940D19DBCE8E010F5F1F4F75 +:104BD000812C912C5401839498EEE92E93E0F92EC8 +:104BE000CC24C394D12C32E0432EE091C10224E0C6 +:104BF000E29FF0011124C4010197E80FF91FEE0FA5 +:104C0000FF1FEE5FFE4F808191819093B2028093EF +:104C1000B102E8ECF0E0F0939F02E0939E02F09284 +:104C20009D02E0929C02D0929B02C0929A02880F51 +:104C3000991F9093AB028093AA02F1E0F0934D018B +:104C400086E00E948F0E21E0892B09F020E020935E +:104C500098020E944B0D1092BC071092BB07109255 +:104C6000BA071092B9074092BF070E94F21A0E9439 +:104C700089131092BA071092B9071092BC071092CC +:104C8000BB0780EB95E10E948D11C501B4010E9424 +:104C9000B2168FE692E00E94611680914E0110924A +:104CA000BA071092B907882309F48BC020E130E0DD +:104CB0003093BC072093BB0783EA95E10E948D11D6 +:104CC0001092BA071092B90780E290E09093BC0767 +:104CD0008093BB078CE995E10E948D116091AA0237 +:104CE0007091AB0275956795072E000C880B990B98 +:104CF0000E94B2160E946A120E94F90F86E00E947A +:104D00008F0E892B09F0A5CF809198028111A1CF38 +:104D10008091AA029091AB0295958795F8018193B5 +:104D200091938F010E947C126AE070E080E090E035 +:104D30000E949F0FFFEF8F1A9F0AAF0ABF0A24E05D +:104D400082169104A104B10409F04FCF8FEF90E0D7 +:104D50000E94220F8BEA94E00197F1F70E94EC1178 +:104D60000E94982E4B0178876F83C980DA800B816F +:104D70001C81C6014E968017910708F001CEED8088 +:104D8000FE80C8014E968E159F0508F0F9CD87E08C +:104D90008093A00280E00E94EB1D882309F4F0CDEF +:104DA000E091C10238E0E39FF0011124EE5FFE4F75 +:104DB000D182C08213830283F582E4829782868245 +:104DC000DFCDE0E1F0E0F093BC07E093BB0786E9BC +:104DD00095E10E948D1160919402709195028091ED +:104DE0009602909197020E94982E90E080E04AE00F +:104DF0000E946E161092BA071092B90720E230E0B6 +:104E00003093BC072093BB078AE895E10E948D117F +:104E100071CF0E949A12B4CD87E08093A002809156 +:104E20004201813009F4ACCD80E00E94EB1D882363 +:104E300009F4A6CD1091C10200914201802F81504A +:104E4000990BBC011817190639F411501093C102BF +:104E500001500093420194CD812F90E0861797076F +:104E6000BCF7E6E01E9FD001112450E040E09C0119 +:104E70002F5F3F4FFA01EA0FFB1FE15BFE4FF68009 +:104E8000F0824F5F5F4F46305105A1F7B3E0220F2C +:104E9000331FBA95E1F7F901EE5FFE4F20813181B2 +:104EA00043E0880F991F4A95E1F7DC01AE5FBE4FE2 +:104EB00011963C932E938281938113969C938E93AB +:104EC00012978481958115969C938E931497868171 +:104ED000978117969C938E9316971F5FBDCF82E0A4 +:104EE0008093A002412C70E9C72EDD24D394E4E620 +:104EF000AE2EB12CF0E28F2EF3E09F2EA4E1EA2E2D +:104F0000F12C08EC10E0842D0E94EB1D482E91E05E +:104F1000891731F1891738F0E2E08E1709F43FC0A4 +:104F20000E943D1A00CD8091460190914701B092B8 +:104F30009F02A0929E0290929D0280929C0270928B +:104F40009B0260929A02880F991F9093AB02809304 +:104F5000AA020E94B31D9093470180934601D3CFCC +:104F6000809144019091450128E230E030939F0206 +:104F700020939E02D0929D02C0929C0270929B024E +:104F800060929A02880F991F9093AB028093AA02B5 +:104F90000E94B31D9093450180934401B4CF80914A +:104FA000430190E0F0929F02E0929E0210939D02D6 +:104FB00000939C0270929B0260929A02880F991F44 +:104FC0009093AB028093AA020E94B31D8093430189 +:104FD0009ACF83E08093A002F12C01E010E08F2DA6 +:104FE0000E94EB1DF82E31E08317E9F18317F8F0EA +:104FF00082E0F81295CF80914A0190E010929F02D2 +:1050000010929E0228E631E030939D0220939C028C +:1050100070929B0260929A02880F991F9093AB0244 +:105020008093AA020E94B31D80934A01D8CF809139 +:105030004C0190E010929F0210929E02ECE3F0E08F +:10504000F0939D02E0939C0210939B0200939A02BE +:10505000880F991F9093AB028093AA020E94B31D00 +:1050600080934C01BCCF80914B0190E010929F0245 +:1050700010929E0228E730E030939D0220939C021C +:10508000E5E0F0E0F0939B02E0939A02880F991F0D +:105090009093AB028093AA020E94B31D80934B01B0 +:1050A0009ECF84E08093A002809149010E94EB1D75 +:1050B00091E0811101C090E09093490134CC10E05F +:1050C000EAE0EE2EF5E0DF2EA9E0CA2EE092A00283 +:1050D000812F0E94EB1D182F882321F08130E1F0F1 +:1050E00000E009C0D092A00280917F010E94EB1DD8 +:1050F00080937F0101E0F090990280ECF11001C0F3 +:1051000088EC0E94161080EAF11001C081EA0E942A +:1051100016100111DBCF04CFC092A002809199023A +:105120000E94EB1D91E0811101C090E090939902E3 +:10513000E1CF86E08093A002809148010E94EB1DA0 +:1051400091E0811101C090E090934801ECCB88E0A0 +:105150008093A0028091BB020E94EB1D8093BB0252 +:10516000E2CB8091B80290E010929F0210929E02D2 +:10517000E4EFF1E0F0939D02E0939C0221E030E047 +:1051800030939B0220939A02880F991F9093AB0251 +:105190008093AA020E94B31D8093B8020E947C12E1 +:1051A000C2CB8091BC0291E089278093BC02882306 +:1051B00051F00E94D10F6093A1027093A2028093DC +:1051C000A3029093A40281E08093B70211CC909146 +:1051D000B507891748F48F5F891708F0BBCC81E0C9 +:1051E00083BF889513BEB6CC11E01093B7076093C8 +:1051F000B6078091B1079091B20701969093B207DC +:105200008093B10780917F01882309F4C4C10E9473 +:105210004B0D1092BC071092BB071092BA07109268 +:10522000B90701E020E440E870E060E090E080E051 +:105230000E94800C1093BF071093BE071092BD0709 +:10524000E12C00E120E146E256E170E060E090E010 +:1052500080E00E94A20C83E190E09093BA078093D3 +:10526000B90784E090E09093BC078093BB078091DE +:10527000C102E6E08E9FC0011124815B9E4F0E9417 +:1052800061168091BF029091C002853F914008F065 +:105290002DC18091BE0281112BC18091BD0281116F +:1052A00029C18091BC02811127C180914E018111D9 +:1052B00025C120E030E044E353E46091630770913E +:1052C000640780916507909166070E94E62B87FF2F +:1052D00017C185E025E330E03093BA072093B90782 +:1052E00021E030E03093BC072093BB0792E090931D +:1052F000BF07C82ED12C9091BB02CC0CDD1C9111A4 +:1053000001C1F601E95CFD4F40815181E12C0EE0C5 +:105310002CE161E070E080E590E00E94A20CF601D3 +:10532000E75DFD4F40815181E12C0EE02EE061E010 +:1053300070E081E790E00E94A20C81E08093BF07BB +:105340000E94EC1120E030E040EA52E40E94C72EB7 +:1053500018160CF0FAC00E94D10F52E0660F771FAA +:10536000881F991F5A95D1F728EE33E040E050E0AE +:105370000E94812D20FFE9C00E947C126091B90239 +:105380007091BA0290E080E00E94EB2B20E030E0C8 +:1053900048EC52E40E941F2E6B017C016091B80220 +:1053A00070E090E080E00E94ED2B9B01AC01C70112 +:1053B000B6010E94E62B87FDD4C0E12C0EE02EE062 +:1053C00048EC55E162E270E082E090E00E94A20CBD +:1053D00003E110E01093BA070093B90720E130E031 +:1053E0003093BC072093BB070E94EC1141E00E9460 +:1053F000DC1688EF0E94A81186EC95E10E948D11C1 +:105400001093BA070093B90788E190E09093BC0726 +:105410008093BB070E94B011BC0190E080E00E9425 +:10542000EB2B20E030E04AE754E40E941F2E42E0DC +:105430000E94DC1684EC95E10E948D111093BA074E +:105440000093B90780E290E09093BC078093BB077C +:105450006091B9027091BA0290E080E00E94EB2B5B +:1054600020E030E04AE754E40E941F2E41E00E9411 +:10547000DC1682EC95E10E948D111093BA0700931F +:10548000B90788E290E09093BC078093BB078BEB51 +:1054900095E10E948D1189E390E09093BA07809383 +:1054A000B90782E190E09093BC078093BB0784E04A +:1054B0008093BF076091BF027091C002653F91E089 +:1054C000790708F462C087EB95E10E948D1100E036 +:1054D00020E248E460E170E087E390E00E945A1027 +:1054E00080E00E94B4170E94F90F34CB80E0F2CE26 +:1054F00081E0F0CE82E0EECE83E0ECCE84E0EACE36 +:1055000086E0E8CE8330C1F038F4813069F0823033 +:1055100081F080E096E10AC08530A1F080F086300D +:10552000C1F786E096E102C082E296E10E948D1109 +:10553000F6CE8CE196E1FACF86E196E1F7CF80E1F5 +:1055400096E1F4CF8BE096E1F1CFE12C0EE02EE076 +:1055500044EE55E162E170E082E090E00E94A20C2E +:105560000DCF0E94D10F42E0660F771F881F991F51 +:105570004A95D1F728EE33E040E050E00E94812DBB +:1055800020FF1BCF0E947C1223CF90E080E04AE0F6 +:105590000E946E169CCF0E944B0D1092BC07109279 +:1055A000BB071092BA071092B9070E94EC1120E0D5 +:1055B00030E040EA52E40E94C72E181694F40E948C +:1055C000D10F32E0660F771F881F991F3A95D1F7E8 +:1055D00028EE33E040E050E00E94812D20FD0E9443 +:1055E0007C126091B9027091BA0290E080E00E9452 +:1055F000EB2B20E030E048EC52E40E941F2E6B01C0 +:105600007C016091B80270E090E080E00E94ED2B98 +:105610009B01AC01C701B6010E94E62B87FF12C0B7 +:105620000E94D10F22E0660F771F881F991F2A95CD +:10563000D1F728EE33E040E050E00E94812D20FDBC +:105640000E947C128091BF029091C002853FE1E0F0 +:105650009E0710F087EE93E00E94361C00E023E0E6 +:1056600040E860E370E090E080E00E94800C81E020 +:1056700038CFC0929107D0929207E0929307F092B0 +:105680009407E0918707F091880780819181A2813A +:10569000B3818093950790939607A0939707B09353 +:1056A000980720E030E04FE753E4C701B6010E94BD +:1056B000C72E18160CF04FC94092910750929207CE +:1056C0006092930770929407A4C88091A707909165 +:1056D000A807009711F00C94832F08951F93FC01E5 +:1056E00099278827BC01E89411911032E9F3193009 +:1056F00010F01E30C8F31B3251F01D3249F468948B +:1057000006C00E94A72B610F711D811D911D119173 +:1057100010531A30B0F33EF49095809570956195D2 +:105720007F4F8F4F9F4F1F910895FB01DC01059024 +:105730000D920020E1F70895BB274A3031F49923F8 +:1057400022F4BDE2909581959F4F0C94BD2B592F6B +:10575000482F372F262F660F771F881F991F660F38 +:10576000771F881F991F620F731F841F951F660F75 +:10577000771F881F991F0895BB27FB015527AA276C +:10578000880F991FAA1FA41710F0A41B83955051CE +:10579000B9F7A05DAA3308F0A95DA193009779F746 +:1057A000B111B1931192CB010C94D62BDC01FC0109 +:1057B000672F71917723E1F7329704C07C916D9345 +:1057C00070836291AE17BF07C8F308950E94282C1A +:1057D00008F481E00895E89409C097FB3EF49095A1 +:1057E0008095709561957F4F8F4F9F4F9923A9F0BA +:1057F000F92F96E9BB279395F69587957795679549 +:10580000B795F111F8CFFAF4BB0F11F460FF1BC08C +:105810006F5F7F4F8F4F9F4F16C0882311F096E91F +:1058200011C0772321F09EE8872F762F05C06623CD +:1058300071F096E8862F70E060E02AF09A95660F86 +:10584000771F881FDAF7880F9695879597F908953F +:10585000990F0008550FAA0BE0E8FEEF1616170681 +:10586000E807F907C0F012161306E407F50798F0E9 +:10587000621B730B840B950B39F40A2661F0232B02 +:10588000242B252B21F408950A2609F4A140A6957E +:105890008FEF811D811D08950E945F2C0C94D02CE8 +:1058A0000E94C22C38F00E94C92C20F0952311F0E0 +:1058B0000C94B92C0C94BF2C11240C94042D0E9430 +:1058C000E12C70F3959FC1F3950F50E0551F629F37 +:1058D000F001729FBB27F00DB11D639FAA27F00D49 +:1058E000B11DAA1F649F6627B00DA11D661F829F70 +:1058F0002227B00DA11D621F739FB00DA11D621F55 +:10590000839FA00D611D221F749F3327A00D611D71 +:10591000231F849F600D211D822F762F6A2F112453 +:105920009F5750409AF0F1F088234AF0EE0FFF1F86 +:10593000BB1F661F771F881F91505040A9F79E3FDD +:10594000510580F00C94B92C0C94042D5F3FE4F3C6 +:10595000983ED4F3869577956795B795F795E79533 +:105960009F5FC1F7FE2B880F911D9695879597F93C +:10597000089597F99F6780E870E060E008959FEFD1 +:1059800080EC089500240A941616170618060906D6 +:10599000089500240A9412161306140605060895A5 +:1059A000092E0394000C11F4882352F0BB0F40F42D +:1059B000BF2B11F460FF04C06F5F7F4F8F4F9F4F6D +:1059C000089557FD9058440F551F59F05F3F71F0EF +:1059D0004795880F97FB991F61F09F3F79F0879556 +:1059E0000895121613061406551FF2CF4695F1DFDF +:1059F00008C0161617061806991FF1CF869571056F +:105A0000610508940895E894BB2766277727CB01A2 +:105A100097F90895F999FECF92BD81BDF89A99271B +:105A200080B50895262FF999FECF1FBA92BD81BD8A +:105A300020BD0FB6F894FA9AF99A0FBE0196089510 +:105A4000052E97FB1EF400940E94372D57FD07D0BA +:105A50000E94812D07FC03D04EF40C94372D5095F5 +:105A60004095309521953F4F4F4F5F4F089590954A +:105A70008095709561957F4F8F4F9F4F08950E943D +:105A8000A32DA59F900DB49F900DA49F800D911DF7 +:105A9000112408952F923F924F925F926F927F92BE +:105AA0008F929F92AF92BF92CF92DF92EF92FF922E +:105AB0000F931F93CF93DF93CDB7DEB7CA1BDB0BDA +:105AC0000FB6F894DEBF0FBECDBF09942A8839887F +:105AD00048885F846E847D848C849B84AA84B98486 +:105AE000C884DF80EE80FD800C811B81AA81B98192 +:105AF000CE0FD11D0FB6F894DEBF0FBECDBFED01A6 +:105B00000895A1E21A2EAA1BBB1BFD010DC0AA1FFE +:105B1000BB1FEE1FFF1FA217B307E407F50720F016 +:105B2000A21BB30BE40BF50B661F771F881F991F91 +:105B30001A9469F760957095809590959B01AC01DA +:105B4000BD01CF010895A29FB001B39FC001A39FE3 +:105B5000700D811D1124911DB29F700D811D1124A6 +:105B6000911D08955058BB27AA270E94CA2D0C9456 +:105B7000D02C0E94C22C38F00E94C92C20F039F49D +:105B80009F3F19F426F40C94BF2C0EF4E095E7FB2C +:105B90000C94B92CE92F0E94E12C58F3BA17620734 +:105BA00073078407950720F079F4A6F50C94032D6C +:105BB0000EF4E0950B2EBA2FA02D0B01B901900128 +:105BC0000C01CA01A0011124FF27591B99F0593F6C +:105BD00050F4503E68F11A16F040A22F232F342FB4 +:105BE0004427585FF3CF469537952795A795F04002 +:105BF0005395C9F77EF41F16BA0B620B730B840B17 +:105C0000BAF09150A1F0FF0FBB1F661F771F881FCE +:105C1000C2F70EC0BA0F621F731F841F48F4879526 +:105C200077956795B795F7959E3F08F0B0CF939518 +:105C3000880F08F09927EE0F9795879508950E9491 +:105C4000332E0C94D02C0E94C92C58F00E94C22CE8 +:105C500040F029F45F3F29F00C94B92C51110C94B9 +:105C6000042D0C94BF2C0E94E12C68F39923B1F30E +:105C7000552391F3951B550BBB27AA276217730772 +:105C8000840738F09F5F5F4F220F331F441FAA1F06 +:105C9000A9F335D00E2E3AF0E0E832D091505040C2 +:105CA000E695001CCAF72BD0FE2F29D0660F771F70 +:105CB000881FBB1F261737074807AB07B0E809F056 +:105CC000BB0B802DBF01FF2793585F4F3AF09E3FDB +:105CD000510578F00C94B92C0C94042D5F3FE4F33B +:105CE000983ED4F3869577956795B795F7959F5F1E +:105CF000C9F7880F911D9695879597F90895E1E06A +:105D0000660F771F881FBB1F621773078407BA07C8 +:105D100020F0621B730B840BBA0BEE1F88F7E09523 +:105D200008950E94982E6894B1110C94042D089542 +:105D30000E94E92C88F09F5798F0B92F9927B75106 +:105D4000B0F0E1F0660F771F881F991F1AF0BA951F +:105D5000C9F714C0B13091F00E94032DB1E008954D +:105D60000C94032D672F782F8827B85F39F0B93F3F +:105D7000CCF3869577956795B395D9F73EF49095D2 +:105D80008095709561957F4F8F4F9F4F08950E942A +:105D9000282C08F48FEF08950E94282C880B990B6B +:105DA0000895DB018F939F930E943F2DBF91AF9188 +:105DB000A29F800D911DA39F900DB29F900D112465 +:105DC0000895EE0FFF1F0590F491E02D09940F93B5 +:105DD0001F93CF93DF938230910510F482E090E01F +:105DE000E091C307F091C40730E020E0B0E0A0E00C +:105DF000309799F42115310509F44AC0281B390B55 +:105E000024303105D8F58A819B816115710589F1AE +:105E1000FB0193838283FE0111C040815181028185 +:105E2000138148175907E0F04817590799F410975C +:105E300061F012960C93129713961C933296CF0131 +:105E4000DF91CF911F910F9108950093C307109395 +:105E5000C407F4CF2115310551F04217530738F02C +:105E6000A901DB019A01BD01DF01F801C1CFEF01FA +:105E7000F9CF9093C4078093C307CDCFFE01E20F03 +:105E8000F31F819391932250310939832883D7CF0F +:105E90002091C1073091C207232B41F42091820148 +:105EA000309183013093C2072093C1072091800174 +:105EB000309181012115310541F42DB73EB7409154 +:105EC000840150918501241B350BE091C107F091AD +:105ED000C207E217F307A0F42E1B3F0B2817390760 +:105EE00078F0AC014E5F5F4F2417350748F04E0F36 +:105EF0005F1F5093C2074093C107819391939FCF37 +:105F0000F0E0E0E09CCFCF93DF930097E9F0FC0155 +:105F1000329713821282A091C307B091C407ED019A +:105F200030E020E01097A1F420813181820F931F8F +:105F30002091C1073091C2072817390709F061C0C5 +:105F4000F093C207E093C107DF91CF910895EA0172 +:105F5000CE17DF07E8F54A815B819E0141155105A7 +:105F6000B1F7E901FB83EA8349915991C40FD51F29 +:105F7000EC17FD0761F4808191810296840F951FD3 +:105F8000E90199838883828193819B838A83F0E0EE +:105F9000E0E012968D919C9113970097B9F52D91A1 +:105FA0003C911197CD010296820F931F2091C1075A +:105FB0003091C2072817390739F6309751F51092FA +:105FC000C4071092C307B093C207A093C107BCCF08 +:105FD000D383C28340815181840F951FC817D9078D +:105FE00061F44E5F5F4F88819981480F591F51833B +:105FF00040838A819B81938382832115310509F037 +:10600000B0CFF093C407E093C3079ECFFD01DC013E +:10601000C0CF13821282D7CFB0E0A0E0E2E1F0E37C +:106020000C944C2D8C01009751F4CB010E94E72E6B +:106030008C01C801CDB7DEB7E0E10C94682DFC01FE +:10604000E60FF71F9C0122503109E217F30708F40D +:106050009DC0D901CD91DC911197C617D70798F053 +:10606000C530D10530F3CE0104978617970708F3A2 +:10607000C61BD70B2297C193D1936D937C93CF010D +:106080000E94832FD6CF5B01AC1ABD0A4C018C0E47 +:106090009D1EA091C307B091C407512C412CF12C37 +:1060A000E12C109731F58091C1079091C2078815B6 +:1060B000990509F05CC04616570608F058C0809153 +:1060C000800190918101009741F48DB79EB7409176 +:1060D000840150918501841B950BE817F90708F09E +:1060E00055C0F093C207E093C107F9017183608343 +:1060F000A0CF8D919C91119712966C901297139648 +:106100007C901397A815B90559F56C0142E0C40EAF +:10611000D11CCA14DB0420F1AC014A195B09DA0175 +:106120001296159780F06282738251834083D90161 +:106130006D937C93E114F10471F0D7011396FC93F5 +:10614000EE93129776CF22968C0F9D1FF9019183C3 +:106150008083F301EFCFF093C407E093C30769CFC7 +:106160004816590608F42C017D01D3019ACFCB01C2 +:106170000E94E72E7C01009749F0AE01B8010E9411 +:10618000CE30C8010E94832F870153CF10E000E07A +:1061900050CF81E090E0F8940C94DE30FB01DC01FC +:1061A00002C001900D9241505040D8F70895FB0174 +:1061B000DC0101900D920020E1F708951BE0C2E39D +:1061C000DBE004C0FE010E94E12E2196C333D1071B +:0661D000C9F7F894FFCFAF +:1061D60001FFD800340186011E0000000000000007 +:1061E60000000000000000000000000000000000A9 +:1061F6000000000000000000000000000000000099 +:106206000000000000000000000000000000000088 +:106216000000013C960040010101280F05010142E2 +:1062260043312E3500000000000000000000000091 +:106236000000000000000000000000000000000058 +:106246000000000000000000000000000000000147 +:106256000000C50780004C0AFC09AC095C090C0962 +:10626600BC086C081C08CC074C0A7C072C07DC060B +:106276008C063C06EC059C054C053C069C05FC047E +:106286004C053C06AC045C040C04BC036C031C0308 +:10629600CC027C022C02DC01CC027C028C013C018B +:1062A6003C06740D580D3C0D200D040DE80CCC0C6D +:1062B600B00C940C780C5C0C740D400C240C080C7F +:1062C600740DEC0BD00B080CEC0BB40BD00B080CBC +:1062D600980B7C0B600B440B280BE80C0C0B940CF6 +:1062E600F00AD40AB80A9C0A040DB80A080C090672 +:1062F600040402020202020203200E040EE40DC888 +:1063060015C80DAC0D900D8C0F540F1C0FE40EAC80 +:106316000E740E3C0E00000000F90D590D860D4658 +:106326000EB70D950DA90D000000008B10590DAD8F +:1063360011580D6E616E00696E66006F7666002FED +:02634600330022 +:00000001FF diff --git a/software/binaries/1.7t2/T12.ino.with_bootloader.standard.hex b/software/binaries/1.7t2/T12.ino.with_bootloader.standard.hex new file mode 100644 index 0000000..62091fe --- /dev/null +++ b/software/binaries/1.7t2/T12.ino.with_bootloader.standard.hex @@ -0,0 +1,1624 @@ +:020000040000FA +:100000000C94330B0C945B0B0C945B0B0C9428201E +:100010000C945B0B0C945B0B0C945B0B0C945B0BC8 +:100020000C945B0B0C945B0B0C945B0B0C945B0BB8 +:100030000C945B0B0C945B0B0C945B0B0C945B0BA8 +:100040000C94DE1F0C945B0B0C94AC1F0C94861F5D +:100050000C945B0B0C94FF200C945B0B0C945B0BCF +:100060000C945B0B0C945B0B5361766500466C69DA +:1000700070004D61696E2053637265656E004F4B71 +:10008000004E4F00454E00434E00594553004E4F21 +:10009000004F4E004F464600496E666F730042693E +:1000A0006700504944004469726563740053617687 +:1000B0006500426F6F7374004F666600536C656530 +:1000C00070005361766500426F6F737400536C6506 +:1000D00065700044656661756C74005361766500F7 +:1000E0004164640044656C6574650052656E616DC1 +:1000F000650043616C696272617465004368616E9A +:1001000067650052657475726E004C616E67004CD5 +:100110004F5720566F6C0042757A7A6572005363B0 +:100120007265656E00436F6E74726F6C0054696D1A +:1001300065720054656D7000546970000000000025 +:10014000000F1DC20800054442080003845FBF0081 +:100150000FE44410000115451000054CC97F8009CB +:10016000244F900007C4C11000054D413F000554C5 +:1001700043810007C44D0200054441140005554168 +:10018000080007C881040000000000000000000013 +:100190000001083FFE001FFF810000004002000038 +:1001A00007FE0FF800040208080004020888000790 +:1001B000FE0888000402088800040208880007FE80 +:1001C0000888000402094800040202300007FE0407 +:1001D0000C000402180400000000000000000000F1 +:1001E0000001100080001FFF80800001103FFF0011 +:1001F000004004080007FC04080004440410000444 +:100200004402100004440220001FFF81200000402F +:1002100000C00000A00130000110020800060C0C14 +:1002200007001803B00200000000000000000000FA +:1002300000004000800000400080000FFF3FFF00F2 +:10024000084104080008410408000841041000089F +:10025000410210000FFF0220000841012000004071 +:1002600000C0000040013000004002080000400CC7 +:100270000700004030020000000000000000000005 +:10028000001FDF10200002120C20000224042000B6 +:10029000047F8020000424B820000FA4885000149C +:1002A000BF88500004A488500004A488480004BFFC +:1002B00088880004A48A880007A48C8400044489E8 +:1002C000070000818602000000000000000000001E +:1002D000000FF00491000440025200047F9054008B +:1002E000045088FF0007D08481000451008100047D +:1002F0004901FF0007CA0281000444048100044A46 +:100300001CFF0007EA0481000C510481000061C455 +:100310008500004080820000000000000000000016 +:100320000007FF802000008407FF00008404010014 +:10033000008404010000840401000FFFC7FF0000D7 +:10034000840400000084040000008405FF00008491 +:100350000501000104090100010409010002041162 +:10036000FF00040401010000000000000000000084 +:1003700000008204FF00004402010007FF902100FA +:100380000010102100001017FD0000101021000FB8 +:10039000FFD06100001010A10000281121000028EA +:1003A0001221000044142100008210A1000301D09A +:1003B00045000C009002000000000000000000005A +:1003C00000084410FE00042810920005FF2292004D +:1003D00000103C920000100892001CFE10920004D5 +:1003E0001020FE0004103E920005FF8092000410D1 +:1003F00000920005100E92000610309200041000CA +:10040000FE0000100082000000000000000000005C +:100410000007DF8840000A24104000114210FE004F +:10042000040022820002FF3D020008010A42000986 +:10043000F9103200090920120009F93E02000909E9 +:1004400000020009090E020009F930220008050027 +:100450001400080200080000000000000000000076 +:10046000000FC3F1E0000FE3F1F8000C70C19E0033 +:100470000C30C186000C30C183000C30C183000CED +:1004800060C183000C60C183000FC0C183000FC036 +:10049000C186000C00C186000C00C198000C03F15D +:1004A000F8000C03F1E00000000000000000000074 +:1004B0000000200820000FFF09FC000020080000B9 +:1004C00000203E880003FE08500002020BFE0003DD +:1004D000FE0C4000020218400003FE2BFE00020248 +:1004E00008480003FE0888000202085000020228A3 +:1004F00030001FFF91CC0000000000000104047CCC +:100500000000880444000FFF3F4400002004440022 +:1005100000200C440000200E44001FFF9544000002 +:10052000201444000050244400005004440000887B +:100530000445000104048500060385030018010436 +:1005400000000000000000000000000000000000AB +:1005500000047E21FC0004421104001F7E090400F7 +:10056000044221FC000542110400067E1104000C27 +:100570000005FC0015FF880000040813FE00044875 +:10058000325200044F125200044812520014A812B2 +:100590005200091F97FF000000000000000000004B +:1005A0000002103DFC000210250400041025040088 +:1005B00005FFBDFC000C102520000C382520001480 +:1005C0003825FE0004543D200004542510000492F8 +:1005D0002510000511A5090006113D450004102550 +:1005E0008300041001010000000000000000000072 +:1005F000001FC8102000124A0C20001AC904200055 +:1006000017480020001FFFB8200002080850001FF4 +:10061000C8085000020808500003C80848001E140B +:1006200008880001540A880015220C8400144389AC +:1006300007000081060200000000000002FE010029 +:100640000002823FFF00048202000004FE0200005C +:100650000C1004FC00141004080005FF8C100004AA +:1006600010141000043825FF000434041000045254 +:1006700004100004918410000510045000041004BC +:10068000200000000000000000000000000000004A +:100690000002030010001FDC3EFE00089002120062 +:1006A000051004FF001FDF84120002120CFE001F61 +:1006B000D2021000021222FE000A921410000A5206 +:1006C00014100012220DFF0002220810000A42142A +:1006D0001000040223FF00000000000000000000E2 +:1006E000000F78BC20000948A45000094AA8500017 +:1006F000094AA88800094AB104001FFEAAFB0009A4 +:100700004AA42000094AA42000094AA7FE00094A79 +:10071000B420000948A924000B48A22200088AA49A +:10072000A20011192040000000000000000000009D +:10073000000020008000005001FC0000880104003F +:10074000010403080006FB0490000800C0600007D5 +:10075000DF018000045106000004511BFE0004511B +:1007600002020007D9020200045602020000100330 +:10077000FE00001002020000000000000000000067 +:10078000000208209000027F9890001F8009FF005F +:10079000022201100006218B100007628DFE000A64 +:1007A000A20910000A14111000121431FE000208F0 +:1007B00011100002141110000222111000024391C6 +:1007C000FF00028111000000000000000000000096 +:1007D00000100700000008F83FFE0004802002001F +:1007E000008020020000BE23E2001C8222220004BE +:1007F000A4222200049422220004882222000494CD +:1008000023E200052220020005422002000A003FE8 +:10081000FE0011FFA00200000000000009FF0040E0 +:100820000004203FFF00042000000000FE00000044 +:100830001C420FFC00044200000007FF800000047F +:10084000000FFC0004FF000000048100000005818F +:100850000FFC00068108040004FF08040000810F5B +:10086000FC0000000000000000000000000000008C +:100870000001000FFE00010008200003FF08200017 +:100880000201082000042208200008200BFE0010AE +:10089000200820000050082800005008240000888C +:1008A000082200008810200001041020000203A785 +:1008B000FF000C010000000000000000000000002C +:1008C0000000400080001FFF9FFC0000400410005B +:1008D0000FFF02200000003FFF000FFE0000000895 +:1008E000420FF80008420808000FFE08080008023E +:1008F0000FF8000800080800080008080008000FAA +:10090000F8001000080800000000000000000000CF +:100910000007FE0FF80004020000000402000000BF +:1009200007FE00000004023FFE00040200800007F2 +:10093000FE008000009004900008910C880006934F +:100940001086000294208200009000800000900237 +:1009500080001FFF81000000000000000000000078 +:1009600000041012020005FF9FD200050092120041 +:100970001E28A2120004443FF20004820212000664 +:10098000000212000CFE1FD20014101252000410BC +:100990001242000410134200041012820015FF825C +:1009A0000A0008000204000000000000000000002F +:1009B00000002000000000203E04001FFFA20400F1 +:1009C0001000A2FF0000012204000FFE220400001C +:1009D000403E440000402224000440222400047CC5 +:1009E00022040004402204000A403E040009402280 +:1009F000240010FF80140000000008000000000028 +:100A00000010FE08200008820BFF0004820A01008B +:100A100010FE3C5100088208880008820904000288 +:100A2000FE0C0000040019FC0009FF282000192911 +:100A30000820000929082000092908200009292B7D +:100A4000FF000BFF9000000000000000000000000D +:100A5000001F7F90F80001080888000A100888002D +:100A6000047F0107001FC13A0000054909FC00048A +:100A700049088400044908880004490848000449DA +:100A800008500004490A200004160C58001421895B +:100A9000870008C0860200000000000080040000FB +:100AA0003FF02430219027902730207027F023300A +:100AB00030703FF000008004800400003FF03830C8 +:100AC00033103F90381033902790261030903FF02D +:100AD00000008004800400003FF0387030302310A4 +:100AE000279020102010279027903FF000008004CE +:100AF000800400003FF03CF03CF020102490249053 +:100B000020103CF03CF03FF0000080048004000026 +:100B10003FF037B023103030387038703030231049 +:100B200037B03FF000008004FCF4F860E044C08C73 +:100B3000C11CC22CC44CC88CD10CA204C4048FFCB0 +:100B4000187CBCFC8000BFF81FF8B0281FF8B40860 +:100B50001FF8B1081FF8B048BFF8B288BFF880008E +:100B60008000BFF81FF8B0081808B9E819B8B838FD +:100B70001838B9B8B9F8B0F8BFF8800015543FF884 +:100B800015503FF01550387010203104138C22A8F6 +:100B900017FC2AA80000000015543FFC15543FFC28 +:100BA00015543C0414043CFC14543CFC005400A8B0 +:100BB00000000000800400003FF03CF034B02490BE +:100BC000249027902310303038703FF000008004CC +:100BD000FF7CFE7CFCECE8DCC84C984C88240820A8 +:100BE00000000000000000008004E01CF3FCE7FCB3 +:100BF000CE0C8E1C9F9C1F3C1F0C0E0C0FFC87F80C +:100C000081E4C00CE01CF87C00045808580858081F +:100C100040087FF860185FE85B685FE85B681CE885 +:100C20005FE80000800400003FF03CF03CF03CF046 +:100C3000201020103CF03CF03CF03FF0000080041D +:100C4000F87CF7BC00007FF80000BFF4AB54AB5455 +:100C5000AB54AB54AB54AB54BFF4C00CF03CCE0C13 +:100C6000BF04B30473007F007E007C007C007C60C6 +:100C7000BC64BE04CF0CF03C81DC559C29045500BB +:100C8000299055D003FCFF002E0026700250827080 +:100C9000E600EE04800C001C3FF43FE03FC4378CBC +:100CA0002318303038703CF03FF03FF000008004F3 +:100CB000F03CCE4CBC34B8141880108042306078C0 +:100CC00060F844C08004B884CFCCF03CF87CE01CD1 +:100CD000C00CCFCCCFCCCFCCCFCCCFCCCFCCCFCC0B +:100CE000C84CCFCCC00CE01CFCFCF87CE01CC00C59 +:100CF000C00CC00CC00CC00CC00C80048004FFFCF5 +:100D0000F87CFCFC800400002000100008001000AB +:100D10002700000000000000000000000000800428 +:100D2000C3FC18001800C3FCFFFCFF0C006000604F +:100D3000FF0CFFFCF0FC06000600F0FC8FC4102046 +:100D400020104CC89FE43DF03DF01DE03EF03F70A8 +:100D50009FE48CC400003030F87CF33CF4BCF6BC5B +:100D6000F4BCF6BCF4BCE49CC84CD02CD02CC84CD1 +:100D7000E79CF03C88240820383038303830383050 +:100D80003830383039303BB03FF03FF0000080045D +:100D90001FE03FF07038601860186018FFFCFCFC22 +:100DA000FCFCFCFCF87CF87CFCFC7FF81E10333863 +:100DB0002D7C25382D3825382D386D80DEC0BF407C +:100DC000BF40DEC061803F007FF0FFE0C008C01C74 +:100DD000C038C870DCE4CFCCC78CC30CC00CC00CCE +:100DE000FFFC7FF8000006000C0018F838F03030E7 +:100DF0007060707878F878003C023F0C1FF80FF0B4 +:100E000003C000007FF8FFFCC00CC30CCB4CDB6CB4 +:100E1000DB6CD86CDCECCFCCC78CC00CFFFC7FF853 +:100E2000030007800FC00CC01CE01CE03CF03CF04D +:100E30007FF87FF8FCFCFCFCFFFC7FF8114082008F +:100E400021208FE023FC82004A23E200FE209FF055 +:100E500013F880802220C0804221BFF0FBFA8880F6 +:100E600002208480022084801A208080E3FE828019 +:100E7000020101000F421FC078411040084090401D +:100E800008421FC008411040FFFD104008405FC0ED +:100E90000840800008413FE00843252010412520FC +:100EA000104125202041252040417FF07FF84880D7 +:100EB000020049000201FFF00201001002027F203F +:100EC0002200410023F07F00220008002200FF8062 +:100ED000220088802200888022008A8022008900E7 +:100EE000FFFC080023F21FC022111040FBF09040CD +:100EF00022121FC02A11104033F1104060005FC061 +:100F0000AFFC800020413FE02243252022792520AC +:100F100022412520A541252048FD7FF01083DFC018 +:100F200010825040208250402FFFDFC0608252006C +:100F300061C25200A1C25FE022A3D20022A25100EE +:100F400024925100288E5090308BD45020825830FB +:100F500020801010104047C017FC44402003F4408C +:100F600023F844406208C440A3F8E4402001544000 +:100F70002FFD44402806444023F84440204044507C +:100F800020404850214050302080400020921FC017 +:100F90003DF990402090904040901FC07BFF0000A2 +:100FA000A0013FE021F90200FD09020021097FF0C4 +:100FB00021F90500210945002909888031F91070BF +:100FC0002108202025004300202070F8380133013B +:100FD0002D0125011E0117010F010A010301FC006B +:100FE000F200EB00E400E000DB00D300CD00C7001E +:100FF000C200BC00B800B200AD00A600A2009E0076 +:101000009800940091008E008A008700840081007F +:101010007E0072006D0068003E0053656C6563746D +:10102000205469700000000000003E5B4F5B3E3EB4 +:101030006B4F6B3E1C3E7C3E1C183C7E3C181C5784 +:101040007D571C1C5E7F5E1C00183C1800FFE7C328 +:10105000E7FF0018241800FFE7DBE7FF30483A06F7 +:101060000E2629792926407F050507407F05253F63 +:101070005A3CE73C5A7F3E1C1C08081C1C3E7F144F +:10108000227F22145F5F005F5F06097F017F006699 +:1010900089956A606060606094A2FFA29408047EF3 +:1010A000040810207E201008082A1C08081C2A08A2 +:1010B000081E101010100C1E0C1E0C30383E38305C +:1010C000060E3E0E06000000000000005F0000005B +:1010D00007000700147F147F14242A7F2A12231389 +:1010E00008646236495620500008070300001C229D +:1010F00041000041221C002A1C7F1C2A08083E08CF +:1011000008008070300008080808080000606000CF +:1011100020100804023E5149453E00427F400072C3 +:10112000494949462141494D331814127F1027453A +:101130004545393C4A494931412111090736494958 +:101140004936464949291E00001400000040340079 +:10115000000008142241141414141400412214082D +:1011600002015909063E415D594E7C1211127C7FE5 +:10117000494949363E414141227F4141413E7F49F3 +:101180004949417F090909013E414151737F0808DE +:10119000087F00417F41002040413F017F08142229 +:1011A000417F404040407F021C027F7F0408107F47 +:1011B0003E4141413E7F090909063E4151215E7F82 +:1011C00009192946264949493203017F01033F4055 +:1011D00040403F1F2040201F3F4038403F631408DD +:1011E000146303047804036159494D43007F41416E +:1011F000410204081020004141417F040201020421 +:101200004040404040000307080020545478407F8D +:10121000284444383844444428384444287F3854C7 +:1012200054541800087E090218A4A49C787F08046E +:10123000047800447D40002040403D007F10284459 +:101240000000417F40007C047804787C0804047826 +:101250003844444438FC1824241818242418FC7CEE +:1012600008040408485454542404043F44243C40D3 +:1012700040207C1C2040201C3C4030403C44281036 +:1012800028444C9090907C4464544C44000836416F +:10129000000000770000004136080002010204024D +:1012A0003C2623263C1EA1A161123A4040207A38F8 +:1012B000545455592155557941215454784121555B +:1012C00054784020545579400C1E527212395555AD +:1012D0005559395454545939555454580000457C83 +:1012E000410002457D420001457C40F0292429F05F +:1012F000F0282528F07C545545002054547C547C1B +:101300000A097F4932494949323248484832324A0B +:101310004848303A4141217A3A42402078009DA025 +:10132000A07D39444444393D4040403D3C24FF24A5 +:1013300024487E4943662B2FFC2F2BFF0929F620DA +:10134000C0887E090320545479410000447D413017 +:1013500048484A32384040227A007A0A0A727D0DA3 +:1013600019317D2629292F28262929292630484D5B +:101370004020380808080808080808382F10C8ACAA +:10138000BA2F102834FA00007B000008142A142217 +:1013900022142A14089500220095AA005500AAAA32 +:1013A00055AA55AA000000FF00101010FF001414E9 +:1013B00014FF001010FF00FF1010F010F0141414B0 +:1013C000FC001414F700FF0000FF00FF1414F404E5 +:1013D000FC141417101F10101F101F1414141F00DA +:1013E000101010F0000000001F101010101F10103F +:1013F0001010F010000000FF10101010101010104E +:1014000010FF10000000FF140000FF00FF00001F8D +:1014100010170000FC04F414141710171414F4042B +:10142000F40000FF00F714141414141414F700F758 +:10143000141414171410101F101F141414F4141083 +:1014400010F010F000001F101F0000001F1400001B +:1014500000FC140000F010F01010FF10FF14141422 +:10146000FF141010101F00000000F010FFFFFFFF1E +:10147000FFF0F0F0F0F0FFFFFF0000000000FFFFC2 +:101480000F0F0F0F0F38444438447C2A2A3E147E35 +:1014900002020606027E027E026355494163384419 +:1014A000443C04407E201E2006027E020299A5E7ED +:1014B000A5991C2A492A1C4C7201724C304A4D4D88 +:1014C000303048784830BC625A463D3E4949490070 +:1014D0007E0101017E2A2A2A2A2A44445F4444408C +:1014E000514A444040444A51400000FF0103E0801B +:1014F000FF000008086B6B083612362436060F0909 +:101500000F06000018180000001010003040FF0106 +:1015100001001F01011E00191D1712003C3C3C3C3C +:10152000000000000000000000240027002A000046 +:10153000000000250028002B0000000000230026EA +:101540000029000404040404040404020202020248 +:101550000203030303030301020408102040800177 +:101560000204081020010204081020AED5F0A83FA4 +:10157000D300408D14A1C8DA1281CFD9F1DB40A489 +:10158000A6AF200021007F220007506C65617365C3 +:101590002077616974004144433A200074656D709E +:1015A0003A2000536574206D65617375726564003F +:1015B000537465703A20003030300076312E377425 +:1015C00032005600560043000FE01FC01FC03F808E +:1015D0003FF87FF07FE007C007800F000E001C007F +:1015E0001800100014A03FF07FF8E01C6E18EC1CEF +:1015F00068186018E01C6058E01C7FF83FF014A0E9 +:101600004552524F5200484F4C4400484541540007 +:10161000574F524B5900424F4F535400534C45457E +:1016200050004F46460000003BEC7BEE63E663E66D +:1016300063E663E663E663E6636662266006600669 +:101640007FFE3FFC000001020408102040800000E3 +:101650000008000201000003040700000000000071 +:1016600000000021652B11241FBECFEFD8E0DEBFA4 +:10167000CDBF12E0A0E0B1E0E6EDF1E602C00590DA +:101680000D92A237B107D9F727E0A2E7B2E001C077 +:101690001D92A53CB207E1F71BE0C2E3DBE004C00A +:1016A0002197FE010E94E12EC133D107C9F70E94A4 +:1016B000C4210C94DE300C9400004F925F926F9224 +:1016C0007F928F929F92AF92BF92CF92DF92EF92D2 +:1016D000FF920F931F93CF93DF9300D000D0CDB72D +:1016E000DEB74B015C0129013A016701780120E076 +:1016F00030E0A9010E94E62B87FDA6C020E030E083 +:10170000A901C301B2010E94E62B87FD9DC020E024 +:1017100030E0A901C801B6010E94E62B87FD94C004 +:1017200081E020918507309186072130310509F04D +:1017300080E08093A60780926B0790926C07A0923E +:101740006D07B0926E0740926F07509270076092DB +:10175000710770927207C0927307D0927407E0927B +:101760007507F09276076091990770919A078091BA +:101770009B0790919C070E94EB2B20E030E04AE70A +:1017800054E40E941F2E69837A838B839C8380920A +:10179000770790927807A0927907B0927A079B0119 +:1017A000AC01C301B2010E944C2C2B013C014092C0 +:1017B0007B0750927C0760927D0770927E0729819B +:1017C0003A814B815C81C701B6010E941F2E6B01DB +:1017D0007C01C0927F07D0928007E0928107F0924F +:1017E00082078091830790918407019769F5A5018D +:1017F000940160E070E0CB010E94B22D6093770706 +:10180000709378078093790790937A07A3019201E8 +:1018100060E070E0CB010E94B22D60937B07709373 +:101820007C0780937D0790937E07A701960160E077 +:1018300070E0CB010E94B22D60937F077093800708 +:1018400080938107909382070F900F900F900F90D5 +:10185000DF91CF911F910F91FF90EF90DF90CF908C +:10186000BF90AF909F908F907F906F905F904F90C0 +:10187000089580389105B0F46034710598F4E6E479 +:10188000F6E190E1969FD001A0781124A80F67702F +:10189000E60FF11D9491AE53BD4F442321F08C917E +:1018A000982B9C93089590958C919823FACFDF9272 +:1018B000EF92FF920F931F93CF93DF937C01D22E71 +:1018C0008B01040F111DEB0177FF02C0D0E0C0E0D7 +:1018D000C8010134110514F080E490E0C817D9075D +:1018E0003CF44D2DBE01C7010E94390C2196F0CF6A +:1018F000DF91CF911F910F91FF90EF90DF900895AE +:10190000CF92DF92EF92FF920F931F93CF93DF93CB +:101910006B01122FEC017C01E40EF11CCE15DF05EA +:1019200044F4202F412FB601CE010E94570C21967E +:10193000F5CFDF91CF911F910F91FF90EF90DF9046 +:10194000CF9008952F923F924F925F926F927F9225 +:101950008F929F92AF92BF92CF92DF92EF92FF92BF +:101960000F931F93CF93DF9300D01F92CDB7DEB7B5 +:10197000C22ED12C9601280F391F37FD4FC0803859 +:1019800091050CF04BC0E9824A017B013C01402EDD +:10199000512C160127E0220E311C93E03594279438 +:1019A0009A95E1F78B01B12CA12C1B821A82EA8156 +:1019B000FB8183E0F595E7958A95E1F7EA0DFB1D3C +:1019C000E80DF91DE4918A819B818770992720E8B1 +:1019D00030E002C0359527958A95E2F7C901F0E01D +:1019E000E223F923EF2B41F04981B8018A819B81E1 +:1019F000860D971D0E94390C8A819B8101969B83DD +:101A00008A838C159D059CF2A20CB31C0F5F1F4F9F +:101A1000C8018E199F09841595053CF20F900F900F +:101A20000F90DF91CF911F910F91FF90EF90DF907A +:101A3000CF90BF90AF909F908F907F906F905F906E +:101A40004F903F902F9008950F931F93CF93DF9364 +:101A5000EC018B0140E001960E94390C40E0B80196 +:101A6000CE0101970E94390CB8016F5F7F4F40E0B3 +:101A7000CE010E94390CB8016150710940E0CE01DD +:101A80000E94390C40E0B801CE01DF91CF911F9147 +:101A90000F910C94390C80E0E2ECF2E081118FEFB1 +:101AA000002481938193819381930394D1F70895C6 +:101AB0000895AF92BF92CF92DF92EF92FF920F9371 +:101AC0001F93CF93DF936C017B018B01040F151FD4 +:101AD000EB015E01AE18BF08C017D10759F069913C +:101AE000D601ED91FC910190F081E02DC6010995A0 +:101AF000892B79F7C501DF91CF911F910F91FF904D +:101B0000EF90DF90CF90BF90AF900895FC01538D80 +:101B1000448D252F30E0842F90E0821B930B5417C7 +:101B200010F0CF96089501970895FC01918D828D54 +:101B3000981761F0A28DAE0FBF2FB11D5D968C91ED +:101B4000928D9F5F9F73928F90E008958FEF9FEF2C +:101B50000895FC01918D828D981731F0828DE80FE8 +:101B6000F11D858D90E008958FEF9FEF0895FC01A2 +:101B7000918D228D892F90E0805C9F4F821B91096F +:101B80008F739927089582EC96E00E94B70D21E0AB +:101B9000892B09F420E0822F089580E090E0892BC2 +:101BA00029F00E94C30D81110C9400000895FC01DE +:101BB000A48DA80FB92FB11DA35ABF4F2C91848DAE +:101BC00090E001968F739927848FA689B7892C930B +:101BD000A089B1898C91837080648C93938D848D5E +:101BE000981306C00288F389E02D80818F7D808361 +:101BF0000895EF92FF920F931F93CF93DF93EC0121 +:101C000081E0888F9B8D8C8D98131AC0E889F989A3 +:101C1000808185FF15C09FB7F894EE89FF896083A6 +:101C2000E889F98980818370806480839FBF81E027 +:101C300090E0DF91CF911F910F91FF90EF90089569 +:101C4000F62E0B8D10E00F5F1F4F0F731127E02E44 +:101C50008C8D8E110CC00FB607FCFACFE889F9897C +:101C6000808185FFF5CFCE010E94D70DF1CFEB8D9E +:101C7000EC0FFD2FF11DE35AFF4FF0829FB7F89450 +:101C80000B8FEA89FB8980818062CFCFCF93DF936E +:101C9000EC01888D8823B9F0AA89BB89E889F98984 +:101CA0008C9185FD03C0808186FD0DC00FB607FCB9 +:101CB000F7CF8C9185FFF2CF808185FFEDCFCE01EC +:101CC0000E94D70DE9CFDF91CF910895833081F045 +:101CD00028F4813099F08230A9F008958730A9F076 +:101CE0008830C9F08430B1F4809180008F7D03C0CA +:101CF000809180008F7780938000089584B58F77DE +:101D000084BD089584B58F7DFBCF8091B0008F771F +:101D10008093B00008958091B0008F7DF9CFCF936C +:101D2000DF93282F30E0F901E25BF94E8491F9014D +:101D3000E95AFA4ED491F901ED5BFA4EC491CC23E5 +:101D4000A1F081110E94660EEC2FF0E0EE0FFF1F54 +:101D5000E75CFA4EA591B491EC91ED2381E090E01F +:101D600009F480E0DF91CF91089580E090E0FACF10 +:101D70001F93CF93DF93282F30E0F901E25BF94EF8 +:101D80008491F901E95AFA4ED491F901ED5BFA4ECA +:101D9000C491CC23A9F0162F81110E94660EEC2F5E +:101DA000F0E0EE0FFF1FE15DFA4EA591B4918FB701 +:101DB000F894EC91111108C0D095DE23DC938FBF0D +:101DC000DF91CF911F910895DE2BF8CFCF93DF9352 +:101DD00090E0FC01E95AFA4E24918D5B9A4EFC0189 +:101DE00084918823C9F090E0880F991FFC01EB5D76 +:101DF000FA4EA591B491FC01E15DFA4EC591D491E2 +:101E000061110DC09FB7F8948C91209582238C931B +:101E10008881282328839FBFDF91CF910895623066 +:101E200051F49FB7F8943C91822F809583238C9333 +:101E3000E8812E2BEFCF8FB7F894EC912E2B2C93BB +:101E40008FBFEACFCF93DF93EC0161E089E00E947E +:101E5000E60E209731F460E089E0DF91CF910C9499 +:101E6000B80ECF3FD10511F461E0F6CFE7E5F6E11A +:101E7000E491E33029F140F4E130B1F0E230D9F0FF +:101E8000C038D1058CF7E7CFE73021F1E83051F1C8 +:101E9000E430B1F780918000806280938000D0931D +:101EA0008B00C0938A0004C084B5806884BDC7BD20 +:101EB000DF91CF91089584B5806284BDC8BDF8CF0D +:101EC00080918000806880938000D0938900C093C7 +:101ED0008800EECF8091B00080688093B000C093FE +:101EE000B300E6CF8091B00080628093B000C093D1 +:101EF000B400DECF3FB7F89480918B0290918C02B2 +:101F0000A0918D02B0918E0226B5A89B05C02F3FEF +:101F100019F00196A11DB11D3FBFBA2FA92F982F0F +:101F20008827BC01CD01620F711D811D911D42E00A +:101F3000660F771F881F991F4A95D1F708958F92D2 +:101F40009F92AF92BF92CF92DF92EF92FF924B019E +:101F50005C010E947A0F6B017C010E947A0F6C1960 +:101F60007D098E099F09683E734081059105A8F39C +:101F700021E0821A9108A108B10888EEC80E83E01A +:101F8000D81EE11CF11C81149104A104B10429F7AD +:101F9000FF90EF90DF90CF90BF90AF909F908F9089 +:101FA00008952FB7F894609187027091880280910C +:101FB000890290918A022FBF089584E98093BC0022 +:101FC0008091BC0084FDFCCF08958093BB0084E821 +:101FD0008093BC008091BC0087FFFCCF089584EA09 +:101FE0008093BC008091BC0087FFFCCF88E70C94F5 +:101FF000E50F0E94EF0F80E48093BB0084E880939C +:10200000BC00E2ECF2E09091BC0097FFFCCF919114 +:102010009093BB008093BC0096E0E23CF90799F7EF +:102020008091BC0087FFFCCF0C94DD0FCF93C82FAD +:102030000E94EF0F80E00E94E50F8C2F0E94E50FB9 +:10204000CF910C94DD0F480F592F511D4138510588 +:1020500014F040E850E0481BFB0177FD379633E071 +:10206000F595E7953A95E1F7F695FE2FEE27F7956A +:10207000E795E80FF91FEE53FD4F6770772781E072 +:1020800090E001C0880F6A95EAF7382F213041F4BB +:10209000415078F08191DF011197832B8C93F8CF19 +:1020A0008095415030F09191DF01119798239C93D6 +:1020B000F8CF0895CF92DF92EF92FF920F93CF93D4 +:1020C000DF936C017B01C42FD22F202F0E9423109D +:1020D000B7016D0F711D61507109603471052CF4E9 +:1020E000202F4C2FC6010E942310202F4D2FB70107 +:1020F000C6010E94570CC6018C0F911D202F4D2F39 +:10210000B7010197DF91CF910F91FF90EF90DF9092 +:10211000CF900C94570C2F923F924F925F926F92F8 +:102120007F928F929F92AF92BF92CF92DF92EF9267 +:10213000FF920F931F93CF93DF93CDB7DEB72A970C +:102140000FB6F894DEBF0FBECDBF9A8389836A3085 +:1021500061F5DC0152968C91B8E08B9F90011124BF +:10216000E981FA8186859785820F931F97878687F5 +:102170001586148681E090E02A960FB6F894DEBFAB +:102180000FBECDBFDF91CF911F910F91FF90EF90C8 +:10219000DF90CF90BF90AF909F908F907F906F9087 +:1021A0005F904F903F902F9008956D3019F32981E3 +:1021B0003A813A872987D9011C96AD90BC90B0E846 +:1021C000AB16B1040CF07BC0F901C684D784F0E4EF +:1021D000CF16D1040CF073C0D90152966C9052976F +:1021E00045E09501649E200D311D11241216130641 +:1021F0000CF065C0262C312C910153E0220F331FC7 +:102200005A95E1F72C0D3D1D121613060CF057C020 +:102210005196BC91BB83E985FA85F089FC83649F64 +:10222000B00111249B012B5D3F4E3A832983712C11 +:10223000E981FA818491F5E07F1201C080E04601D6 +:1022400038E0532E282F30E03E832D834C8080FFD2 +:102250004B80411004C03B818C813817E1F010E0C5 +:1022600000E00615C0F4D501A00FB11FB887AF83F9 +:10227000F12CE12CE61460F4B701680D791D442DB2 +:102280008F8198850E94390CBFEFEB1AFB0AF2CFC1 +:102290000F5F1F4FE6CF8D819E81959587955A944C +:1022A000820C931C5110CECF7394E981FA81319640 +:1022B000FA83E983A20CB31CF6E07F12B9CFA9859B +:1022C000BA8552962C915297422F50E01C968D91D0 +:1022D0009C91B6E02B9F800D911D1124E985FA8514 +:1022E000958784872389222309F444CF6AEF640306 +:1022F0009001659F300D112420583F4F2817390752 +:102300000CF038CFDF010190F081E02D0190F081D9 +:10231000E02D6AE0CD0109952DCF0F931F93CF9348 +:10232000DF938C01D0E0C0E0F801EC0FFD1F649159 +:10233000662341F08DEA97E00E948B10892B11F003 +:102340002196F2CFCE01DF91CF911F910F91089589 +:10235000682F8DEA97E00C948B1090E080E0089550 +:1023600080917A00806980937A008EE480937C006B +:1023700061E070E080E090E00E949F0F83B7817F72 +:10238000826083BF80E130E020E093B7916093BF2B +:10239000889593B79E7F93BF90917A0096FDFCCF6E +:1023A0004091780050917900240F351F815069F7D2 +:1023B00080917A008F7780937A0084E03695279514 +:1023C0008A95E1F750E040E064EB7BE281E190E048 +:1023D0000E94202DC901089588EC80937C00809193 +:1023E0007A00806880937A0065E070E080E090E099 +:1023F0000E949F0F80917A00806480937A00809180 +:102400007A0086FDFCCF60917800709179006A5463 +:10241000714090E080E00E94EB2B26EF38E24CE91F +:102420005FE30E941F2E089590917A009069909327 +:102430007A008E50806480937C0083B7817F8260B5 +:1024400083BF20E290E080E033B7316033BF8895EE +:1024500033B73E7F33BF30917A0036FDFCCF4091D9 +:10246000780050917900840F951F215069F72091D1 +:102470007A002F7720937A0025E0969587952A9504 +:10248000E1F708958FE00E941412A0919202B0919A +:1024900093029C010E94A32D0E94ED2B28E539E7B1 +:1024A00043E353E40E941F2E0E94982ECB0108950F +:1024B0002091A00230E0EEE1F2E090E080E0AF0198 +:1024C0004E5152404217530724F44191840F911DFD +:1024D000F6CF089580919802882369F086E00E94E3 +:1024E0008F0E892B41F06AE070E080E090E00E945E +:1024F0009F0F1092980208950F931F93CF9380918E +:102500004801882399F0CFEF0FEE11E061E085E0FC +:102510000E94B80EC8010197F1F760E085E00E94C3 +:10252000B80EC8010197F1F7C15081F7CF911F9103 +:102530000F9108952F923F924F925F926F927F92E8 +:102540008F929F92AF92BF92CF92DF92EF92FF92C3 +:102550000F931F93CF93DF9310E000E0D0E0C0E033 +:102560003EE3E32EF12C40ECC42ED12CAA24A394FC +:10257000B12C60E2662E712C70E4272E312C4C2E8B +:1025800086E00E948F0E21E0892B09F020E0209345 +:102590009802F0929F02E0929E02D0929D02C09219 +:1025A0009C02B0929B02A0929A0282E890E09093E3 +:1025B000AB028093AA028091AA029091AB029595FA +:1025C0008795582E9FE1591243C0F0929F02E092E6 +:1025D0009E02D0929D02C0929C02B0929B02A09259 +:1025E0009A02EEEBF0E0F093AB02E093AA029FE5D3 +:1025F000592E0E944B0D82E08093BF071093BA07BB +:102600000093B907E0E3F0E0F093BC07E093BB0769 +:102610008EE50E94A8111092BA071092B907709225 +:10262000BC076092BB07912C812C841438F58091F3 +:10263000C102F40196E0989FE00DF11D1124E15BC9 +:10264000FE4F80810E94A811EFEF8E1A9E0AEDCFF7 +:10265000F0E65F12CECFF0929F02E0929E02D092FF +:102660009D02C0929C02B0929B02A0929A0230926C +:10267000AB022092AA0280E2582EBBCF1093BA0779 +:102680000093B9077092BC076092BB07852D0E942A +:10269000A8110E946A120E94F90F86E00E948F0E14 +:1026A000892B09F088CF80919802811184CF809086 +:1026B000C102F6E08F9E40011124C401815B9E4F50 +:1026C0004C01FC01EC0FFD1F50820E947C126AE05D +:1026D00070E080E090E00E949F0F2196005F1F4F06 +:1026E000C530D10509F04BCFF4011582DF91CF91B0 +:1026F0001F910F91FF90EF90DF90CF90BF90AF9020 +:102700009F908F907F906F905F904F903F902F9011 +:1027100008953F924F925F926F927F928F929F9215 +:10272000AF92BF92CF92DF92EF92FF920F931F93DF +:10273000CF93DF93CDB7DEB72E970FB6F894DEBFF9 +:102740000FBECDBF8091BE02882309F4A5C11092AF +:102750005F071092600710926107109262078090E5 +:102760005F0790906007A0906107B0906207C090EB +:10277000B302D090B402E090B502F090B602A70187 +:102780009601C501B4010E94B22D2B013C0120E04D +:1027900030E0A9010E94C72E18160CF0A0C1C30199 +:1027A000B2010E94982E80914901882309F4B8C192 +:1027B000C0926707D0926807E0926907F0926A07B3 +:1027C000E12CF12C00EA10E420E030E040E450E499 +:1027D0006E31710540F0E12CF12C00E81FE320E0A0 +:1027E00030E040E05FE360E070E080E391E40E946D +:1027F0005D0B8091A507882309F42AC10E94D10F9F +:102800006D837E838F83988780918D0790918E074B +:10281000A0918F07B09190074D815E816F8178857F +:10282000481B590B6A0B7B0B8091990790919A0773 +:10283000A0919B07B0919C07481759076A077B072F +:1028400008F406C1E0918707F091880780819181A3 +:10285000A281B38189839A83AB83BC83E0918B0788 +:10286000F0918C079C01AD0160817181828193811F +:102870000E94B22D4B015C01209195073091960783 +:10288000409197075091980769817A818B819C814B +:102890000E94B22D6B017C0120917B0730917C0757 +:1028A00040917D0750917E07C501B4010E944C2CD8 +:1028B000209191073091920740919307509194078E +:1028C0000E94B32D2B013C01409291075092920738 +:1028D00060929307709294073090A60731101AC047 +:1028E00020917707309178074091790750917A07C6 +:1028F000C701B6010E944C2C9B01AC01C301B2017F +:102900000E94B22D60939107709392078093930772 +:10291000909394074090910750909207609093078E +:10292000709094071091A1079091A2079E87A091A3 +:10293000A307AD870091A407212F392F4A2F502FCD +:10294000C301B2010E94C72E18160CF0CCC0812F13 +:102950009E85AD85B02F8093910790939207A093A9 +:102960009307B0939407332009F4D6C020917707DA +:10297000309178074091790750917A07C501B401E9 +:102980000E944C2C4B015C0120917F073091800705 +:102990004091810750918207C701B6010E944C2CDB +:1029A0009B01AC0160919107709192078091930710 +:1029B000909194070E94B22DA50194010E94B32D1D +:1029C0006B017C019B01AC01612F7E858D85902F71 +:1029D0000E94E62B87FD18C010919D0790919E07DD +:1029E0009E87A0919F07AD870091A007212F392FC7 +:1029F0004A2F502FB601C7010E94E62B87FD04C065 +:102A00001C2DDE86ED860F2DE0918907F0918A0757 +:102A1000812F9E85AD85B02F80839183A283B38360 +:102A200089819A81AB81BC818093950790939607A9 +:102A3000A0939707B09398078D819E81AF81B88549 +:102A400080938D0790938E07A0938F07B093900784 +:102A500060916307709164078091650790916607A4 +:102A60000E94912ECB012E960FB6F894DEBF0FBEBA +:102A7000CDBFDF91CF911F910F91FF90EF90DF902D +:102A8000CF90BF90AF909F908F907F906F905F900E +:102A90004F903F900C94220F8091BD0260914401B1 +:102AA0007091450181110EC08091B1029091B202E6 +:102AB0002091BC02BC01222329F060914301680FE0 +:102AC000792F711D90E080E00E94EB2B60935F07EF +:102AD00070936007809361079093620740CEC301B3 +:102AE000B20190585ECE80919D0790919E07A09173 +:102AF0009F07B091A00789879A87AB87BC879C0105 +:102B0000AD01C301B2010E94E62B87FF2CCF89855E +:102B10009A85AB85BC851FCF812C912C540134CF75 +:102B200020E030E040E05FE3C701B6010E94B32D32 +:102B30009B01AC01C501B4010E94C72E18164CF4CC +:102B4000109263071092640710926507109266074F +:102B50007FCF80E090E0AFE7B3E48093630790938A +:102B60006407A0936507B093660772CF4F925F9298 +:102B70006F927F928F929F92AF92BF92CF92DF928D +:102B8000EF92FF92CF93DF93809094029090950202 +:102B9000A0909602B0909702C091C102D0E0C5010A +:102BA000B4010E94912E6B017C0120E030E048E4EA +:102BB00053E4C501B4010E94E62B93E0CC0FDD1F66 +:102BC0009A95E1F7CE5FDE4F87FF31C028813981CA +:102BD00050E040E02551310941095109C701B601D2 +:102BE0000E94D12E28EC30E040E050E00E94202DE1 +:102BF000CA01B9016B5E7F4F8F4F9F4F0E94ED2B33 +:102C00006093B3027093B4028093B5029093B602BE +:102C1000DF91CF91FF90EF90DF90CF90BF90AF907A +:102C20009F908F907F906F905F904F9008954A8013 +:102C30005B80712C612C20E030E04CE853E4C5014E +:102C4000B4010E94E62B87FF1FC088809980B12CB9 +:102C5000A12CA7019601285C310941095109C30142 +:102C6000B201681979098A099B090E94D12E20E5D1 +:102C700030E040E050E00E94202DCA01B901680D0B +:102C8000791D8A1D9B1DBACF2C813D8150E040E00B +:102C90002419350946095709C701B6016851714021 +:102CA000810991090E94D12E20E530E040E050E0FA +:102CB0000E94202DCA01B901640D751D861D971D46 +:102CC0009DCFFC0101900020E9F73197AF01481B2F +:102CD000590BBC018DEA97E00C94590D8F929F928D +:102CE000AF92BF920F931F93CF93DF93CDB7DEB711 +:102CF000A1970FB6F894DEBF0FBECDBF19A2423028 +:102D000008F44AE08E010F5D1F4F842E912CB12CE8 +:102D1000A12CA50194010E94812DE62FB901CA01C1 +:102D2000EA30F4F4E05DD801EE938D01232B242BDF +:102D3000252B79F790E080E0109719F0CD010E94E3 +:102D40006116A1960FB6F894DEBF0FBECDBFDF911E +:102D5000CF911F910F91BF90AF909F908F9008954A +:102D6000E95CE1CFCF92DF92EF92FF92CF93DF93B6 +:102D700097FF19C06B017C018DE20E94A811EC0144 +:102D800066277727CB016C197D098E099F094AE0D8 +:102D90000E946E168C0F9D1FDF91CF91FF90EF90D8 +:102DA000DF90CF9008954AE0DF91CF91FF90EF90B0 +:102DB000DF90CF900C946E164F925F926F927F923D +:102DC0008F929F92AF92BF92CF92DF92EF92FF923B +:102DD0000F931F93CF936B017C01742EAC019B0169 +:102DE0000E94CC2E882399F083E692E0CF911F9128 +:102DF0000F91FF90EF90DF90CF90BF90AF909F909A +:102E00008F907F906F905F904F900C946116460169 +:102E10005701E894B7F82FEF3FEF4FE75FE7C501A1 +:102E2000B4010E94CC2E81110DC02FEF3FEF4FE770 +:102E30005FE7C501B4010E94E62B18161CF487E673 +:102E400092E0D4CF2FEF3FEF4FE75FE4C701B60129 +:102E50000E94C72E18161CF48BE692E0C7CF2FEF06 +:102E60003FEF4FE75FECC701B6010E94E62B87FDFD +:102E7000F3CF20E030E0A901C701B6010E94E62BA4 +:102E800010E000E087FF08C08DE20E94A8118C01CD +:102E9000F7FAF094F7F8F094C0E060E070E080E0BA +:102EA0009FE37C1641F020E030E040E251E40E94D4 +:102EB0001F2ECF5FF6CFA70196010E94B32D2B01E5 +:102EC0003C010E94982E4B015C014AE00E946E1664 +:102ED0007C01E00EF11ECC23B1F1C501B4010E94CA +:102EE000EB2B9B01AC01C301B2010E94B22D4B013F +:102EF0005C018EE20E94A811E80EF91EC15018F183 +:102F000020E030E040E251E4C501B4010E944C2CC5 +:102F10002B013C010E94982E4B01B12CA12C4AE0C0 +:102F2000C501B4010E946E16E80EF91EC501B40178 +:102F30000E94EB2B9B01AC01C301B2010E94B22D98 +:102F40004B015C01DBCFC701CF911F910F91FF9027 +:102F5000EF90DF90CF90BF90AF909F908F907F9039 +:102F60006F905F904F900895CF92DF92EF92FF9213 +:102F70000F931F93CF93DF93C82F81E0DC2FD827C7 +:102F8000D093BE07C093BD078093BF070C2F2EE0E0 +:102F900046E661E370E081E090E00E945A102091E3 +:102FA000BF023091C002253F81E03807B8F4A4E6A3 +:102FB000B0E00E94A32D24EF31E040E050E00E94F9 +:102FC000202DBA01A9014E5F5F4F6F4F7F4F2EE05A +:102FD00061E370E081E090E00E94800C60915F0707 +:102FE0007091600780916107909162070E94912E15 +:102FF0009B01AC01A4E6B0E00E943F2D34EFC32E4C +:10300000DD24D394E12CF12CA70196010E94202D00 +:10301000DA01C9010296A11DB11D02970C2F2DE006 +:1030200043E062E370E00E94800C60915F07709162 +:10303000600780916107909162070E94912E9B0129 +:10304000AC01A4E6B0E00E943F2DA70196010E94CA +:10305000202DDA01C9010296A11DB11D039724E0BC +:1030600045E06CE370E00E94800C60915F07709116 +:10307000600780916107909162070E94912E9B01E9 +:10308000AC01A4E6B0E00E943F2DA70196010E948A +:10309000202D89019A010E5F1F4F2F4F3F4F015086 +:1030A000110941E3E42EF12C4D2FB701C8010E9414 +:1030B000390C8FEFE81AF80A8DE3E816F104A1F74E +:1030C00060915F077091600780916107909162073E +:1030D0000E94912E9B01AC01A4E6B0E00E943F2D1E +:1030E00024EF31E040E050E00E94202DDA01C901D8 +:1030F0000296A11DB11D0397ED2E04E025E048ECDA +:103100005FE06BE370E00E94A20C0C2F2EE047E121 +:1031100061E370E088E690E00E945A1060916307D6 +:103120007091640780916507909166070E94912EC7 +:103130009B01AC012F5F310941095109A7E1B0E0C2 +:103140000E943F2DCC24C394DD24DA94ED2CFD2C79 +:10315000A70196010E94202D422F2EE061E370E02E +:1031600088E690E00E94800CC093BE07D093BD0714 +:1031700082E090E09093BA078093B90707E310E0EC +:103180001093BC070093BB0760915F0770916007C5 +:10319000809161079091620740E00E94DC1688EF01 +:1031A0000E94A81186EC9FE00E948D1189E690E0B4 +:1031B0009093BA078093B9071093BC070093BB079D +:1031C000609163077091640780916507909166072D +:1031D0000E94912E9B01AC012F5F310941095109D9 +:1031E000A4E6B0E00E943F2DA70196010E94202D89 +:1031F000CA01B9010E94B21684EC9FE00E948D11B1 +:10320000D093BE07C093BD07DF91CF911F910F915F +:10321000FF90EF90DF90CF9008956F927F928F9202 +:103220009F92AF92BF92CF92DF92EF92FF920F9355 +:103230001F93CF93DF93B090C10277247394B110A2 +:1032400001C0712C809142018150990B10929F0214 +:1032500010929E02880F991F90939D0280939C026A +:1032600081E090E090939B0280939A028B2D90E0F6 +:10327000880F991F9093AB028093AA0286E00E9468 +:103280008F0E21E0892B09F020E020939802FF2483 +:10329000F39472E0972EE6E08E2EFCE0CF2ED12C38 +:1032A0000E944B0D1092BC071092BB071092BA07F8 +:1032B0001092B907C091AA02D091AB02D595C795DB +:1032C000EC2E8E011127C801870D911D77FC9A9570 +:1032D0008B199109712C97FD06C08330910514F06C +:1032E00082E090E0782EF092BE071092BD07909297 +:1032F000BF078AE190E10E948D111092BE07F09203 +:10330000BD071092BA071092B907A72C072C000C22 +:10331000BB08C501019654E0880F991F5A95E1F743 +:103320009093BC078093BB0788E190E10E948D11C8 +:103330006C2E671890E080E098012A193B0959012A +:10334000209142018C010F5F1F4F6216D0F4D09282 +:10335000BA07C092B907980144E0220F331F4A957B +:10336000E1F73093BC072093BB078A0D9B1D889E15 +:103370009001899E300D1124C901815B9E4F0E94EE +:103380006116C801639403301105D1F60E946A12D8 +:103390000E94F90F86E00E948F0E892BB9F480916C +:1033A0009802811113C00E947C12E092C102DF9149 +:1033B000CF911F910F91FF90EF90DF90CF90BF9032 +:1033C000AF909F908F907F906F900895BC2E68CFA4 +:1033D0000E94C930EF92FF920F931F93CF93DF9318 +:1033E000EC017B018A0188819981009729F02A816B +:1033F0003B812417350788F4B8016F5F7F4F0E9427 +:103400000C30009791F0998388831B830A832C8169 +:103410003D81232B11F4FC0110821D830C83B70125 +:10342000888199810E94D7300CC08881998100974A +:1034300011F00E94832F198218821D821C821B8228 +:103440001A82CE01DF91CF911F910F91FF90EF90E3 +:1034500008951F93CF93DF93EC01162F0E940A2D3E +:10346000181739F0612FCE01DF91CF911F910C9485 +:10347000122DDF91CF911F910895AF92BF92CF92FD +:10348000DF92EF92FF920F931F93CF93DF936091A0 +:10349000470182E090E00E94291A6091460183E092 +:1034A00090E00E94291A6091450184E090E00E941A +:1034B000291A6091440185E090E00E94291A6091E8 +:1034C000430186E090E00E94291A60914C0187E058 +:1034D00090E00E94291A60914B0188E090E00E94E0 +:1034E000291A60914A0189E090E00E94291A6091AE +:1034F0007F018AE090E00E94291A609149018BE0E7 +:1035000090E00E94291A609148018CE090E00E94AE +:10351000291A6091C1028DE090E00E94291A609101 +:1035200042018EE090E00E94291A6091BB028FE078 +:1035300090E00E94291A6091990280E190E00E9437 +:10354000291A6091B80281E190E00E94291A82E173 +:10355000E82EF12C10E006E0809142011817B8F532 +:10356000109F60011124D0E0C0E0FE01EC0DFD1DB4 +:10357000E15BFE4F6081C7018C0F9D1F0E94291ADD +:103580002196C630D10589F7670186E0C80ED11CA7 +:1035900088E0189FE0011124CE5FDE4F8EE0E80E38 +:1035A000F11C69812296C6010E94291A560182E007 +:1035B000A80EB11CFE0132976081C60101960E94DF +:1035C000291A6501AE14BF0461F71F5FC5CFDF91F3 +:1035D000CF911F910F91FF90EF90DF90CF90BF9010 +:1035E000AF9008958F929F92AF92BF92CF92DF9249 +:1035F000EF92FF92CF938FEF90E00E94220F8BEA21 +:1036000094E00197F1F78EE00E9414127C018AE0A9 +:103610000E948F0E90917202981729F091E090937A +:10362000B70280937202809101019FEF980F9093EF +:103630000101811106C00E9442129093BA02809348 +:10364000B90260916307709164078091650790915A +:1036500066070E94912ECB010E94220F8090940257 +:1036600090909502A0909602B0909702B70190E0DA +:1036700080E00E94EB2BA50194010E94B22D2DEC5D +:103680003CEC4CE45DE30E944C2CA50194010E94AB +:10369000B32D609394027093950280939602909359 +:1036A00097020E94B6156091BF027091C00290E02F +:1036B00080E00E94EB2B6B017C0120915F07309131 +:1036C000600740916107509162070E94E62B8111CB +:1036D000B5C02091B3023091B4024091B50250912F +:1036E000B602C701B6010E94B22D6B017C0120E039 +:1036F00030E0A9010E94C72E18160CF095C020E0FA +:1037000030E040EA50E4C701B6010E94C72E181607 +:103710000CF494C06091B1027091B20290E080E02C +:103720000E94EB2B2091B3023091B4024091B5027C +:103730005091B6020E94B22D6B017C0120E030E076 +:10374000A9010E94C72E18160CF087C0C701B60148 +:103750000E94982E6530710508F083C080914E015B +:10376000811105C080914D0181110E947C1281E080 +:1037700080934E0110924D018091BF029091C00242 +:10378000853F21E0920710F0109200012091000186 +:10379000211140C0843F9140E8F58FEF90E00E94F6 +:1037A000220F0E947C12C1E0C09300010E940D19FB +:1037B0000E943D1AC093B7028EE00E941412BC0111 +:1037C00090E080E00E94EB2B60939402709395024E +:1037D00080939602909397021092A9028091B10271 +:1037E0009091B20224E630E030939F0220939E0233 +:1037F00020E233E030939D0220939C022AE030E0E7 +:1038000030939B0220939A02880F991F9093AB02EA +:103810008093AA02CF91FF90EF90DF90CF90BF905E +:10382000AF909F908F90089520E030E040EA50ECF8 +:10383000C701B6010E94E62B87FF6CCF6091B302EF +:103840007091B4028091B5029091B6020E94982EB8 +:103850007093C0026093BF025DCFC701B60190585C +:1038600077CF10924E0188CF0C940A2D2F923F9261 +:103870004F925F926F927F928F929F92AF92BF9280 +:10388000CF92DF92EF92FF920F931F93CF93DF932C +:10389000CDB7DEB768970FB6F894DEBF0FBECDBFC9 +:1038A00026E02093BF0721E02093BE071092BD07BA +:1038B0000091AB071091AC076091A7077091A80722 +:1038C00030E8232E32E0332EF10130E020E02017E3 +:1038D000310730F4DB01A20FB31F6115710521F42C +:1038E00010927302A3E7B2E04C9150E041935193E0 +:1038F0002F5F3F4F2330310551F71C8A1B8A1E8AE8 +:103900001D8A188E1F8A4AE08E010F5F1F4FB80173 +:103910000E949C2BF80101900020E9F73197AF013C +:10392000401B510BB801CE0143960E94EA198091C9 +:10393000A7079091A807009709F4E8C06B897C89D4 +:103940006115710509F4E0C04091A9075091AA07DB +:103950002F89388D4217530708F4D6C00E94D730FC +:103960008F89988D9093AC078093AB07188E1F8A30 +:103970008B899C89009711F00E94832F94E7E92E90 +:1039800092E0F92E24E0A22EB12CD12CC12C8091F2 +:10399000AB079091AC07C816D90638F4E091A70799 +:1039A000F091A807309709F0C8C010927302E3E7BE +:1039B000F2E0808190E0F10120813181821B930B44 +:1039C000F2E3F89FB001F99F700D1124072E000C4F +:1039D000880B990B0E94ED2BF701208131814281E8 +:1039E00053810E94B32D2B013C0120E030E0A9015E +:1039F0000E94E62B8111A4C0F701408251826282AD +:103A0000738201E022E346E270E060E0C5010497C2 +:103A10000E94800C8EEC882E99249A940FEF1FEF51 +:103A2000F701208131814281538160E070E080E8BC +:103A300090E40E94B22D2B013C01B401092C000C32 +:103A4000880B990B0E94ED2B9B01AC01C301B201C5 +:103A50000E94B32D0E94912EB092BA07A092B9078E +:103A60007093BC076093BB07F10160817181600FA7 +:103A7000711F60537109072E000C880B990B0E946F +:103A8000B2160F5F1F4FF2E38F0E911C023011052B +:103A900039F62FEFC21AD20A84E0E80EF11CECE2EC +:103AA000AE0EB11CF2E02F0E311C23E0C216D10481 +:103AB00009F06DCF00E022E040E870E060E090E0C7 +:103AC00080E00E94800C2DE040E863E370E090E02D +:103AD00080E00E94800C68960FB6F894DEBF0FBE9F +:103AE000CDBFDF91CF911F910F91FF90EF90DF90AD +:103AF000CF90BF90AF909F908F907F906F905F908E +:103B00004F903F902F9008950E94832F8B899C891E +:103B10009093A8078093A7078D899E899093AA0701 +:103B20008093A9078F89988D9093AC078093AB07FA +:103B30001C8A1B8A1E8A1D8A19CFEC0DFD1D39CFE8 +:103B4000C301B20190582DEC3CEC4CE45FE30E94C1 +:103B50004C2CA30192010E94B32DF7016083718365 +:103B6000828393834ECF86E00E948F0E21E0892BC3 +:103B700009F020E0209398020E944B0D1092BC07A0 +:103B80001092BB071092BA071092B9078091AA024F +:103B90009091AB02959587950E94361C0E94F90F73 +:103BA0000E946A1286E00E948F0E892B29F780916D +:103BB00098028111E1CF0E947C128091A707909119 +:103BC000A807009721F00E946E2BCB01089560E0BA +:103BD00070E0CB01FACF2F923F924F925F926F929B +:103BE0007F928F929F92AF92BF92CF92DF92EF928D +:103BF000FF920F931F93CF93DF93CDB7DEB76397F9 +:103C00000FB6F894DEBF0FBECDBFB82EE091A00274 +:103C1000F0E0E25EFD4F80818150990B10929F028F +:103C200010929E02880F991F90939D0280939C0290 +:103C300081E090E090939B0280939A028B2D90E01C +:103C4000880F991F9093AB028093AA0286E00E948E +:103C50008F0E21E0892B09F020E02093980210922A +:103C6000BE0781E08093BD078091AA029091AB02CC +:103C70009C01359527953D872C871C857901FF246C +:103C800097012B19310948E3429FC001439F900DD2 +:103C90001124C80ED91EC114D10409F16627772753 +:103CA0006C197D09072E000C880B990B0E94ED2BD7 +:103CB00020E030E040E05FE30E944C2C4B015C01CF +:103CC000B601DD0C880B990B0E94ED2B9B01AC011A +:103CD000C501B4010E94B32D0E94912E6B010E9478 +:103CE0004B0D1092BC071092BB071092BA071092AE +:103CF000B907370182E0681A7108560198E4A91AD9 +:103D0000B108F7013396FB8BEA8B77FC8BC0E0910F +:103D1000A002F0E0E25EFD4F80818615170409F0F5 +:103D20000CF480C001E020E340E370E060E0C501F6 +:103D30000E94800C95012D5F3F4F398B288B00E04E +:103D40002AE24AE263E070E0888999890E94800C47 +:103D500070E060E0C5010E94240D70E060E0450164 +:103D60003FE2830E911CC4010E94240D6FE270E0BB +:103D7000C5010E94240D6FE270E0C4010E94240D71 +:103D80000E945812F301E80FF11DEE0FFF1FEE52D3 +:103D9000FE4F808191819F878E8753E0452E512C65 +:103DA000312C212C912C812CF40133E0F595E795F1 +:103DB0003A95E1F7E20DF31D2E853F85E20FF31FE3 +:103DC000E491C4018770992720E830E002C035955E +:103DD00027958A95E2F7C901F0E0E223F923EF2B5A +:103DE00079F0C401880F991F880D991D01E023E027 +:103DF00043E0B201E889F9898E0F9F1F0E94800C71 +:103E0000FFEF8F1A9F0A2EE08216910469F632E0C6 +:103E1000230E311C43E0440E511C8DE24816510420 +:103E200009F0C0CF9FEF691A790AE8E3AE0EB11C22 +:103E30002A893B892615370509F067CF8091BB0297 +:103E4000811140C00E945812F701E80FF11DEE0FDA +:103E5000FF1FEA57FE4F40815181EE24E39400E1B9 +:103E600024E260E370E080E390E00E94A20C0E94F4 +:103E7000F90F0E946A1286E00E948F0E892B01F5CD +:103E80008091980281111CC00E947C12812F639640 +:103E90000FB6F894DEBF0FBECDBFDF91CF911F915B +:103EA0000F91FF90EF90DF90CF90BF90AF909F90D9 +:103EB0008F907F906F905F904F903F902F900895DC +:103EC000BC84D2CE80E390E09093BA078093B90788 +:103ED000E1E3F0E0F093BC07E093BB0781E080935F +:103EE000BF070E945812FC858F0FE82FF0E0EE0FFD +:103EF000FF1FE453F04F65917491CE0101960E942B +:103F0000952BCE0101960E946116B1CF1F920F92A0 +:103F10000FB60F9211242F933F934F935F936F939C +:103F20007F938F939F93AF93BF93EF93FF9382EC15 +:103F300096E00E94D70DFF91EF91BF91AF919F91B5 +:103F40008F917F916F915F914F913F912F910F9042 +:103F50000FBE0F901F9018951F920F920FB60F92E1 +:103F600011242F938F939F93EF93FF93E091D206A9 +:103F7000F091D3068081E091D806F091D90682FDB8 +:103F80001BC090818091DB068F5F8F732091DC06D0 +:103F9000821741F0E091DB06F0E0EE53F94F958F88 +:103FA0008093DB06FF91EF919F918F912F910F905E +:103FB0000FBE0F901F9018958081F4CF1F920F9223 +:103FC0000FB60F9211242F933F938F939F93AF932C +:103FD000BF938091870290918802A0918902B0914D +:103FE0008A023091860223E0230F2D3758F501967F +:103FF000A11DB11D209386028093870290938802B1 +:10400000A0938902B0938A0280918B0290918C02D6 +:10401000A0918D02B0918E020196A11DB11D8093D9 +:104020008B0290938C02A0938D02B0938E02BF916D +:10403000AF919F918F913F912F910F900FBE0F9055 +:104040001F90189526E8230F0296A11DB11DD2CF0F +:104050001F920F920FB60F9211242F933F934F93FD +:104060005F936F937F938F939F93EF93FF9383B1AE +:10407000817029B190919102981709F49DC030E0A8 +:10408000220F232F221F330B922F809391024091F6 +:104090009002241709F490C02093900220919A0274 +:1040A00030919B02981719F0319521953109409173 +:1040B000AA025091AB0260919E0270919F02240F60 +:1040C000351F261737070CF48BC020919A023091C8 +:1040D0009B02981719F03195219531094091AA0258 +:1040E0005091AB0260919C0270919D02240F351F8C +:1040F000621773070CF46FC040919A0250919B02B3 +:10410000981719F05195419551092091AA023091C3 +:10411000AB02240F351F3093AB022093AA0241E07B +:10412000981340E020918F02421709F440C020917B +:104130009A0230919B02981719F031952195310917 +:104140006091AA027091AB02E0919E02F0919F02F1 +:10415000260F371F2E173F070CF44CC020919A02F0 +:1041600030919B02981719F0319521953109609192 +:10417000AA027091AB02E0919C02F0919D02260F81 +:10418000371FE217F3078CF120919A0230919B02BE +:10419000981719F03195219531098091AA029091D3 +:1041A000AB02820F931F9093AB028093AA024093BD +:1041B0008F0281E08093B702FF91EF919F918F91E1 +:1041C0007F916F915F914F913F912F910F900FBE13 +:1041D0000F901F90189520919C0230919D029BCFCB +:1041E00020919E0230919F0296CF80919C029091E7 +:1041F0009D02D9CF80919E0290919F02D4CF1895B5 +:104200000F931F93CF93DF93E2ECF6E013821282B9 +:1042100088EE93E0A0E0B0E084839583A683B78323 +:1042200089E492E09183808385EC90E09587848790 +:1042300084EC90E09787868780EC90E0918B808B70 +:1042400081EC90E0938B828B82EC90E0958B848B59 +:1042500086EC90E0978B868B118E128E138E148EC7 +:10426000EDEAF7E0138212821682178280E18087DE +:104270001582148212868BE592E0918380831586E5 +:1042800014861786168611E0108B118A128B138AFA +:10429000E7EAF7E0118210821382128215821482FB +:1042A00050E040E061E772E0CF010E94EA19CBE6FE +:1042B000D7E083E697E09F8F8E8F87E697E09D8F0C +:1042C0008C8F8FE597E099A388A31AAE1AAA1BAA30 +:1042D0001CAA1DAA80E090E0AFE7B3E48EAB9FABD1 +:1042E000A8AFB9AF84E690E0A0E0B0E08EA79FA7AA +:1042F000A8ABB9AB81E090E0998F888F9B8F8A8FB4 +:104300001BAF80E090E0A0E3B1E488839983AA83A7 +:10431000BB8380E090E0A0E0BFE38C839D83AE830D +:10432000BF8380E090E0A0E8BFE388879987AA87F1 +:10433000BB8780E090E0A0E3B1EC8C879D87AE87DF +:10434000BF878DEC9CECACE4BDEB888B998BAA8B82 +:10435000BB8B80E090E0A0E2B1EC8C8B9D8BAE8BB0 +:10436000BF8B0E94D10F0EA51FA528A939A9601BDC +:10437000710B820B930B6AA37BA38CA39DA3DF918C +:10438000CF911F910F910895CF93DF93CDB7DEB7F3 +:104390002B970FB6F894DEBF0FBECDBF789484B5CF +:1043A000826084BD84B5816084BD85B5826085BD31 +:1043B00085B5816085BD80916E00816080936E00BF +:1043C00010928100809181008260809381008091B1 +:1043D0008100816080938100809180008160809362 +:1043E00080008091B10084608093B1008091B00022 +:1043F00081608093B00080917A00846080937A001D +:1044000080917A00826080937A0080917A00816046 +:1044100080937A0080917A00806880937A0010926D +:10442000C1001092B90088E48093B8000E94EF0F99 +:1044300080E00E94E50F0BE615E18AE8E82E85E1B1 +:10444000F82EF80184910E94E50F0F5F1F4FE016D0 +:10445000F106B9F70E94DD0F11E01093B8000E9439 +:10446000F90F81E28093B50760E08EE00E94E60ECE +:1044700060E08FE00E94E60E61E085E00E94E60EBB +:1044800061E089E00E94E60E62E087E00E94E60EAD +:1044900062E088E00E94E60E62E086E00E94E60E9E +:1044A00062E08AE00E94E60E8FEF90E00E94220F09 +:1044B00060E085E00E94B80E80917A00876080936A +:1044C0007A0080917A00886080937A0078941093C3 +:1044D0006B00109368001BBB90E080E00E94341CCE +:1044E000182F81E090E00E94341C912F8F3F98405C +:1044F00009F0BBC082E090E00E94341C182F83E0DA +:1045000090E00E94341C912F9093470180934601C4 +:1045100084E090E00E94341C182F85E090E00E9417 +:10452000341C912F909345018093440186E090E0E4 +:104530000E94341C8093430187E090E00E94341C69 +:1045400080934C0188E090E00E94341C80934B01E2 +:1045500089E090E00E94341C80934A018AE090E058 +:104560000E94341C80937F018BE090E00E94341CF9 +:1045700091E0811101C090E0909349018CE090E0BE +:104580000E94341C91E0811101C090E09093480199 +:104590008DE090E00E94341C8093C1028EE090E098 +:1045A0000E94341C282E809342018FE090E00E94EC +:1045B000341C8093BB0280E190E00E94341C91E0A7 +:1045C000811101C090E09093990281E190E00E94F6 +:1045D000341C8093B802B2E08B2EB1E09B2E1FE416 +:1045E000A12E11E0B12E02E1E02EF12C312C23148A +:1045F00009F447C010E000E0C701800F911F0E943E +:10460000341CF501E00FF11F80830F5F1F4F063050 +:10461000110591F7670126E0C20ED11C3EE0E30EC2 +:10462000F11C3401C6010E94341C082F10E0102F29 +:104630000027F301118300832601F2E04F0E511C85 +:10464000C60101960E94341C082BF30101931193BB +:104650003F0162014E145F0429F73394F8E08F0E96 +:10466000911C26E0A20EB11CC2CF68E090E080E071 +:104670000E94291A6FEF81E090E00E94291A0E949F +:104680003D1A1091990280EC111101C088EC0E9432 +:10469000161080EA111101C081EA0E9416100E94D2 +:1046A000B01190939302809392020E9442129093D1 +:1046B000BA028093B902009146011091470110930C +:1046C000B2020093B1028EE00E941412BC0190E08D +:1046D00080E00E94EB2B609394027093950280938C +:1046E0009602909397020E94EC110E94B61520E06A +:1046F00030E040EA51E46091B3027091B4028091DD +:10470000B5029091B6020E94B32D6B017C01B801F5 +:1047100090E080E00E94EB2B9B01AC01C701B60149 +:104720000E94E62B87FF04C090E080E00E94220FE9 +:1047300010929D0710929E0710929F071092A0075B +:10474000412C512CFFE76F2EF3E47F2E4092A107FE +:104750005092A2076092A3077092A407A0908907C5 +:10476000B0908A078091A507F501C080D180E280D2 +:10477000F380882309F47DC7A3019201C701B60124 +:104780000E94C72E181634F5F501408251826282CC +:1047900073828090910790909207A0909307B090B9 +:1047A0009407C090A107D090A207E090A307F090D3 +:1047B000A407A7019601C501B4010E94C72E1816CF +:1047C000C4F4C0929107D0929207E0929307F092BE +:1047D00094071FC020E030E0A901C701B6010E9484 +:1047E000E62B87FFD6CFF501108211821282138249 +:1047F000D0CFC0909D07D0909E07E0909F07F0908B +:10480000A007A7019601C501B4010E94E62B87FD10 +:10481000D8CF81E08093A50783B181708093910206 +:1048200089B190E0880F892F881F990B809390029F +:10483000209191029091900281E0291380E0809371 +:104840008F0284E690E090939F0280939E0280E224 +:1048500093E090939D0280939C028AE090E0909375 +:104860009B0280939A02000F111F1093AB020093DA +:10487000AA020E94D10F6093AD027093AE028093A2 +:10488000AF029093B0020E947C120E947C12209092 +:10489000AA023090AB029101359527953A87298776 +:1048A0003093B2022093B10286E00E948F0E8B8774 +:1048B00081119EC08091A902882309F499C00E94A9 +:1048C0007C120E94D10F6B017C01C092A502D09294 +:1048D000A602E092A702F092A80286E00E948F0E44 +:1048E000892B59F40E94D10F6C197D098E099F09FB +:1048F000643F71408105910580F30E94D10F6C19CE +:104900007D098E099F09643F71408105910508F476 +:1049100048C48FEF90E00E94220F0E947C12512C1D +:104920005AE0652E712C1092A002852D0E94EB1D7D +:10493000582EF7E0F81708F438C0E82FF0E0ED55EE +:10494000FB4D0C94E12EBD246F27E92751285F28E9 +:104950009928B128A72820E030E0A901C701B601B5 +:104960000E94E62B87FF55CF109291071092920775 +:1049700010929307109294074CCF4EE1642E712C45 +:1049800081E08093A002852D0E94EB1D582E22E02D +:10499000821709F43EC2281708F4E9C0882309F4F5 +:1049A00011C131E0831709F410C10E943D1A81E062 +:1049B0008093B70229853A853093B2022093B102E1 +:1049C00084E690E090939F0280939E0280E293E0C1 +:1049D00090939D0280939C028AE090E090939B02CA +:1049E00080939A02C1018E7F9093AB028093AA02BA +:1049F0003B853093A9028091BC02882309F1109174 +:104A00004A011123E9F00E94D10FC090A102D09079 +:104A1000A202E090A302F090A4026C197D098E0915 +:104A20009F0928EE33E040E050E00E94812D2117DD +:104A300038F01092BC020E947C1281E080934D01FC +:104A40008091B7028823E9F18091BD02882349F162 +:104A500020E030E040EA51E46091B3027091B4028A +:104A60008091B5029091B6020E94B32D6B017C013A +:104A70006091B1027091B20290E080E00E94EB2B55 +:104A80009B01AC01C701B6010E94E62B87FF04C061 +:104A900090E080E00E94220F0E947C1281E08093CF +:104AA0004D011092B7021092BD021092BE020E94F8 +:104AB000D10F6093AD027093AE028093AF029093DA +:104AC000B0020E94D10F0091AD021091AE02209170 +:104AD000AF023091B002601B710B820B930B20E68A +:104AE0003AEE40E050E00E94812D122F2093AC025C +:104AF0008091BD0281110BC080914C01882339F057 +:104B0000281728F081E08093BD020E947C128091DA +:104B1000BE0281110BC080914B01882339F0181718 +:104B200028F081E08093BE020E947C120E94F21A5B +:104B30000E9489130E94D10F8091B607962F981B6F +:104B4000892F9091B707992309F441C38093B8073F +:104B50001092B70780E090E0892B09F498CE0E946C +:104B6000C30D882309F493CE0E94000090CE83E009 +:104B7000581609F451C194E0591217CF809142019F +:104B8000883008F0FDCE91E0980F90934201809319 +:104B9000C1020E949A12E091C10228E0E29FF00156 +:104BA0001124EE5FFE4F88ED90E09183808324E333 +:104BB00031E03383228386E891E095838483778292 +:104BC0006682DECE0E940D19DBCE8E010F5F1F4F75 +:104BD000812C912C5401839498EEE92E93E0F92EC8 +:104BE000CC24C394D12C32E0432EE091C10224E0C6 +:104BF000E29FF0011124C4010197E80FF91FEE0FA5 +:104C0000FF1FEE5FFE4F808191819093B2028093EF +:104C1000B102E8ECF0E0F0939F02E0939E02F09284 +:104C20009D02E0929C02D0929B02C0929A02880F51 +:104C3000991F9093AB028093AA02F1E0F0934D018B +:104C400086E00E948F0E21E0892B09F020E020935E +:104C500098020E944B0D1092BC071092BB07109255 +:104C6000BA071092B9074092BF070E94F21A0E9439 +:104C700089131092BA071092B9071092BC071092CC +:104C8000BB0780EB95E10E948D11C501B4010E9424 +:104C9000B2168FE692E00E94611680914E0110924A +:104CA000BA071092B907882309F48BC020E130E0DD +:104CB0003093BC072093BB0783EA95E10E948D11D6 +:104CC0001092BA071092B90780E290E09093BC0767 +:104CD0008093BB078CE995E10E948D116091AA0237 +:104CE0007091AB0275956795072E000C880B990B98 +:104CF0000E94B2160E946A120E94F90F86E00E947A +:104D00008F0E892B09F0A5CF809198028111A1CF38 +:104D10008091AA029091AB0295958795F8018193B5 +:104D200091938F010E947C126AE070E080E090E035 +:104D30000E949F0FFFEF8F1A9F0AAF0ABF0A24E05D +:104D400082169104A104B10409F04FCF8FEF90E0D7 +:104D50000E94220F8BEA94E00197F1F70E94EC1178 +:104D60000E94982E4B0178876F83C980DA800B816F +:104D70001C81C6014E968017910708F001CEED8088 +:104D8000FE80C8014E968E159F0508F0F9CD87E08C +:104D90008093A00280E00E94EB1D882309F4F0CDEF +:104DA000E091C10238E0E39FF0011124EE5FFE4F75 +:104DB000D182C08213830283F582E4829782868245 +:104DC000DFCDE0E1F0E0F093BC07E093BB0786E9BC +:104DD00095E10E948D1160919402709195028091ED +:104DE0009602909197020E94982E90E080E04AE00F +:104DF0000E946E161092BA071092B90720E230E0B6 +:104E00003093BC072093BB078AE895E10E948D117F +:104E100071CF0E949A12B4CD87E08093A002809156 +:104E20004201813009F4ACCD80E00E94EB1D882363 +:104E300009F4A6CD1091C10200914201802F81504A +:104E4000990BBC011817190639F411501093C102BF +:104E500001500093420194CD812F90E0861797076F +:104E6000BCF7E6E01E9FD001112450E040E09C0119 +:104E70002F5F3F4FFA01EA0FFB1FE15BFE4FF68009 +:104E8000F0824F5F5F4F46305105A1F7B3E0220F2C +:104E9000331FBA95E1F7F901EE5FFE4F20813181B2 +:104EA00043E0880F991F4A95E1F7DC01AE5FBE4FE2 +:104EB00011963C932E938281938113969C938E93AB +:104EC00012978481958115969C938E931497868171 +:104ED000978117969C938E9316971F5FBDCF82E0A4 +:104EE0008093A002412C70E9C72EDD24D394E4E620 +:104EF000AE2EB12CF0E28F2EF3E09F2EA4E1EA2E2D +:104F0000F12C08EC10E0842D0E94EB1D482E91E05E +:104F1000891731F1891738F0E2E08E1709F43FC0A4 +:104F20000E943D1A00CD8091460190914701B092B8 +:104F30009F02A0929E0290929D0280929C0270928B +:104F40009B0260929A02880F991F9093AB02809304 +:104F5000AA020E94B31D9093470180934601D3CFCC +:104F6000809144019091450128E230E030939F0206 +:104F700020939E02D0929D02C0929C0270929B024E +:104F800060929A02880F991F9093AB028093AA02B5 +:104F90000E94B31D9093450180934401B4CF80914A +:104FA000430190E0F0929F02E0929E0210939D02D6 +:104FB00000939C0270929B0260929A02880F991F44 +:104FC0009093AB028093AA020E94B31D8093430189 +:104FD0009ACF83E08093A002F12C01E010E08F2DA6 +:104FE0000E94EB1DF82E31E08317E9F18317F8F0EA +:104FF00082E0F81295CF80914A0190E010929F02D2 +:1050000010929E0228E631E030939D0220939C028C +:1050100070929B0260929A02880F991F9093AB0244 +:105020008093AA020E94B31D80934A01D8CF809139 +:105030004C0190E010929F0210929E02ECE3F0E08F +:10504000F0939D02E0939C0210939B0200939A02BE +:10505000880F991F9093AB028093AA020E94B31D00 +:1050600080934C01BCCF80914B0190E010929F0245 +:1050700010929E0228E730E030939D0220939C021C +:10508000E5E0F0E0F0939B02E0939A02880F991F0D +:105090009093AB028093AA020E94B31D80934B01B0 +:1050A0009ECF84E08093A002809149010E94EB1D75 +:1050B00091E0811101C090E09093490134CC10E05F +:1050C000EAE0EE2EF5E0DF2EA9E0CA2EE092A00283 +:1050D000812F0E94EB1D182F882321F08130E1F0F1 +:1050E00000E009C0D092A00280917F010E94EB1DD8 +:1050F00080937F0101E0F090990280ECF11001C0F3 +:1051000088EC0E94161080EAF11001C081EA0E942A +:1051100016100111DBCF04CFC092A002809199023A +:105120000E94EB1D91E0811101C090E090939902E3 +:10513000E1CF86E08093A002809148010E94EB1DA0 +:1051400091E0811101C090E090934801ECCB88E0A0 +:105150008093A0028091BB020E94EB1D8093BB0252 +:10516000E2CB8091B80290E010929F0210929E02D2 +:10517000E4EFF1E0F0939D02E0939C0221E030E047 +:1051800030939B0220939A02880F991F9093AB0251 +:105190008093AA020E94B31D8093B8020E947C12E1 +:1051A000C2CB8091BC0291E089278093BC02882306 +:1051B00051F00E94D10F6093A1027093A2028093DC +:1051C000A3029093A40281E08093B70211CC909146 +:1051D000B507891748F48F5F891708F0BBCC81E0C9 +:1051E00083BF889513BEB6CC11E01093B7076093C8 +:1051F000B6078091B1079091B20701969093B207DC +:105200008093B10780917F01882309F4C4C10E9473 +:105210004B0D1092BC071092BB071092BA07109268 +:10522000B90701E020E440E870E060E090E080E051 +:105230000E94800C1093BF071093BE071092BD0709 +:10524000E12C00E120E146E256E170E060E090E010 +:1052500080E00E94A20C83E190E09093BA078093D3 +:10526000B90784E090E09093BC078093BB078091DE +:10527000C102E6E08E9FC0011124815B9E4F0E9417 +:1052800061168091BF029091C002853F914008F065 +:105290002DC18091BE0281112BC18091BD0281116F +:1052A00029C18091BC02811127C180914E018111D9 +:1052B00025C120E030E044E353E46091630770913E +:1052C000640780916507909166070E94E62B87FF2F +:1052D00017C185E025E330E03093BA072093B90782 +:1052E00021E030E03093BC072093BB0792E090931D +:1052F000BF07C82ED12C9091BB02CC0CDD1C9111A4 +:1053000001C1F601E95CFD4F40815181E12C0EE0C5 +:105310002CE161E070E080E590E00E94A20CF601D3 +:10532000E75DFD4F40815181E12C0EE02EE061E010 +:1053300070E081E790E00E94A20C81E08093BF07BB +:105340000E94EC1120E030E040EA52E40E94C72EB7 +:1053500018160CF0FAC00E94D10F52E0660F771FAA +:10536000881F991F5A95D1F728EE33E040E050E0AE +:105370000E94812D20FFE9C00E947C126091B90239 +:105380007091BA0290E080E00E94EB2B20E030E0C8 +:1053900048EC52E40E941F2E6B017C016091B80220 +:1053A00070E090E080E00E94ED2B9B01AC01C70112 +:1053B000B6010E94E62B87FDD4C0E12C0EE02EE062 +:1053C00048EC55E162E270E082E090E00E94A20CBD +:1053D00003E110E01093BA070093B90720E130E031 +:1053E0003093BC072093BB070E94EC1141E00E9460 +:1053F000DC1688EF0E94A81186EC95E10E948D11C1 +:105400001093BA070093B90788E190E09093BC0726 +:105410008093BB070E94B011BC0190E080E00E9425 +:10542000EB2B20E030E04AE754E40E941F2E42E0DC +:105430000E94DC1684EC95E10E948D111093BA074E +:105440000093B90780E290E09093BC078093BB077C +:105450006091B9027091BA0290E080E00E94EB2B5B +:1054600020E030E04AE754E40E941F2E41E00E9411 +:10547000DC1682EC95E10E948D111093BA0700931F +:10548000B90788E290E09093BC078093BB078BEB51 +:1054900095E10E948D1189E390E09093BA07809383 +:1054A000B90782E190E09093BC078093BB0784E04A +:1054B0008093BF076091BF027091C002653F91E089 +:1054C000790708F462C087EB95E10E948D1100E036 +:1054D00020E248E460E170E087E390E00E945A1027 +:1054E00080E00E94B4170E94F90F34CB80E0F2CE26 +:1054F00081E0F0CE82E0EECE83E0ECCE84E0EACE36 +:1055000086E0E8CE8330C1F038F4813069F0823033 +:1055100081F080E096E10AC08530A1F080F086300D +:10552000C1F786E096E102C082E296E10E948D1109 +:10553000F6CE8CE196E1FACF86E196E1F7CF80E1F5 +:1055400096E1F4CF8BE096E1F1CFE12C0EE02EE076 +:1055500044EE55E162E170E082E090E00E94A20C2E +:105560000DCF0E94D10F42E0660F771F881F991F51 +:105570004A95D1F728EE33E040E050E00E94812DBB +:1055800020FF1BCF0E947C1223CF90E080E04AE0F6 +:105590000E946E169CCF0E944B0D1092BC07109279 +:1055A000BB071092BA071092B9070E94EC1120E0D5 +:1055B00030E040EA52E40E94C72E181694F40E948C +:1055C000D10F32E0660F771F881F991F3A95D1F7E8 +:1055D00028EE33E040E050E00E94812D20FD0E9443 +:1055E0007C126091B9027091BA0290E080E00E9452 +:1055F000EB2B20E030E048EC52E40E941F2E6B01C0 +:105600007C016091B80270E090E080E00E94ED2B98 +:105610009B01AC01C701B6010E94E62B87FF12C0B7 +:105620000E94D10F22E0660F771F881F991F2A95CD +:10563000D1F728EE33E040E050E00E94812D20FDBC +:105640000E947C128091BF029091C002853FE1E0F0 +:105650009E0710F087EE93E00E94361C00E023E0E6 +:1056600040E860E370E090E080E00E94800C81E020 +:1056700038CFC0929107D0929207E0929307F092B0 +:105680009407E0918707F091880780819181A2813A +:10569000B3818093950790939607A0939707B09353 +:1056A000980720E030E04FE753E4C701B6010E94BD +:1056B000C72E18160CF04FC94092910750929207CE +:1056C0006092930770929407A4C88091A707909165 +:1056D000A807009711F00C94832F08951F93FC01E5 +:1056E00099278827BC01E89411911032E9F3193009 +:1056F00010F01E30C8F31B3251F01D3249F468948B +:1057000006C00E94A72B610F711D811D911D119173 +:1057100010531A30B0F33EF49095809570956195D2 +:105720007F4F8F4F9F4F1F910895FB01DC01059024 +:105730000D920020E1F70895BB274A3031F49923F8 +:1057400022F4BDE2909581959F4F0C94BD2B592F6B +:10575000482F372F262F660F771F881F991F660F38 +:10576000771F881F991F620F731F841F951F660F75 +:10577000771F881F991F0895BB27FB015527AA276C +:10578000880F991FAA1FA41710F0A41B83955051CE +:10579000B9F7A05DAA3308F0A95DA193009779F746 +:1057A000B111B1931192CB010C94D62BDC01FC0109 +:1057B000672F71917723E1F7329704C07C916D9345 +:1057C00070836291AE17BF07C8F308950E94282C1A +:1057D00008F481E00895E89409C097FB3EF49095A1 +:1057E0008095709561957F4F8F4F9F4F9923A9F0BA +:1057F000F92F96E9BB279395F69587957795679549 +:10580000B795F111F8CFFAF4BB0F11F460FF1BC08C +:105810006F5F7F4F8F4F9F4F16C0882311F096E91F +:1058200011C0772321F09EE8872F762F05C06623CD +:1058300071F096E8862F70E060E02AF09A95660F86 +:10584000771F881FDAF7880F9695879597F908953F +:10585000990F0008550FAA0BE0E8FEEF1616170681 +:10586000E807F907C0F012161306E407F50798F0E9 +:10587000621B730B840B950B39F40A2661F0232B02 +:10588000242B252B21F408950A2609F4A140A6957E +:105890008FEF811D811D08950E945F2C0C94D02CE8 +:1058A0000E94C22C38F00E94C92C20F0952311F0E0 +:1058B0000C94B92C0C94BF2C11240C94042D0E9430 +:1058C000E12C70F3959FC1F3950F50E0551F629F37 +:1058D000F001729FBB27F00DB11D639FAA27F00D49 +:1058E000B11DAA1F649F6627B00DA11D661F829F70 +:1058F0002227B00DA11D621F739FB00DA11D621F55 +:10590000839FA00D611D221F749F3327A00D611D71 +:10591000231F849F600D211D822F762F6A2F112453 +:105920009F5750409AF0F1F088234AF0EE0FFF1F86 +:10593000BB1F661F771F881F91505040A9F79E3FDD +:10594000510580F00C94B92C0C94042D5F3FE4F3C6 +:10595000983ED4F3869577956795B795F795E79533 +:105960009F5FC1F7FE2B880F911D9695879597F93C +:10597000089597F99F6780E870E060E008959FEFD1 +:1059800080EC089500240A941616170618060906D6 +:10599000089500240A9412161306140605060895A5 +:1059A000092E0394000C11F4882352F0BB0F40F42D +:1059B000BF2B11F460FF04C06F5F7F4F8F4F9F4F6D +:1059C000089557FD9058440F551F59F05F3F71F0EF +:1059D0004795880F97FB991F61F09F3F79F0879556 +:1059E0000895121613061406551FF2CF4695F1DFDF +:1059F00008C0161617061806991FF1CF869571056F +:105A0000610508940895E894BB2766277727CB01A2 +:105A100097F90895F999FECF92BD81BDF89A99271B +:105A200080B50895262FF999FECF1FBA92BD81BD8A +:105A300020BD0FB6F894FA9AF99A0FBE0196089510 +:105A4000052E97FB1EF400940E94372D57FD07D0BA +:105A50000E94812D07FC03D04EF40C94372D5095F5 +:105A60004095309521953F4F4F4F5F4F089590954A +:105A70008095709561957F4F8F4F9F4F08950E943D +:105A8000A32DA59F900DB49F900DA49F800D911DF7 +:105A9000112408952F923F924F925F926F927F92BE +:105AA0008F929F92AF92BF92CF92DF92EF92FF922E +:105AB0000F931F93CF93DF93CDB7DEB7CA1BDB0BDA +:105AC0000FB6F894DEBF0FBECDBF09942A8839887F +:105AD00048885F846E847D848C849B84AA84B98486 +:105AE000C884DF80EE80FD800C811B81AA81B98192 +:105AF000CE0FD11D0FB6F894DEBF0FBECDBFED01A6 +:105B00000895A1E21A2EAA1BBB1BFD010DC0AA1FFE +:105B1000BB1FEE1FFF1FA217B307E407F50720F016 +:105B2000A21BB30BE40BF50B661F771F881F991F91 +:105B30001A9469F760957095809590959B01AC01DA +:105B4000BD01CF010895A29FB001B39FC001A39FE3 +:105B5000700D811D1124911DB29F700D811D1124A6 +:105B6000911D08955058BB27AA270E94CA2D0C9456 +:105B7000D02C0E94C22C38F00E94C92C20F039F49D +:105B80009F3F19F426F40C94BF2C0EF4E095E7FB2C +:105B90000C94B92CE92F0E94E12C58F3BA17620734 +:105BA00073078407950720F079F4A6F50C94032D6C +:105BB0000EF4E0950B2EBA2FA02D0B01B901900128 +:105BC0000C01CA01A0011124FF27591B99F0593F6C +:105BD00050F4503E68F11A16F040A22F232F342FB4 +:105BE0004427585FF3CF469537952795A795F04002 +:105BF0005395C9F77EF41F16BA0B620B730B840B17 +:105C0000BAF09150A1F0FF0FBB1F661F771F881FCE +:105C1000C2F70EC0BA0F621F731F841F48F4879526 +:105C200077956795B795F7959E3F08F0B0CF939518 +:105C3000880F08F09927EE0F9795879508950E9491 +:105C4000332E0C94D02C0E94C92C58F00E94C22CE8 +:105C500040F029F45F3F29F00C94B92C51110C94B9 +:105C6000042D0C94BF2C0E94E12C68F39923B1F30E +:105C7000552391F3951B550BBB27AA276217730772 +:105C8000840738F09F5F5F4F220F331F441FAA1F06 +:105C9000A9F335D00E2E3AF0E0E832D091505040C2 +:105CA000E695001CCAF72BD0FE2F29D0660F771F70 +:105CB000881FBB1F261737074807AB07B0E809F056 +:105CC000BB0B802DBF01FF2793585F4F3AF09E3FDB +:105CD000510578F00C94B92C0C94042D5F3FE4F33B +:105CE000983ED4F3869577956795B795F7959F5F1E +:105CF000C9F7880F911D9695879597F90895E1E06A +:105D0000660F771F881FBB1F621773078407BA07C8 +:105D100020F0621B730B840BBA0BEE1F88F7E09523 +:105D200008950E94982E6894B1110C94042D089542 +:105D30000E94E92C88F09F5798F0B92F9927B75106 +:105D4000B0F0E1F0660F771F881F991F1AF0BA951F +:105D5000C9F714C0B13091F00E94032DB1E008954D +:105D60000C94032D672F782F8827B85F39F0B93F3F +:105D7000CCF3869577956795B395D9F73EF49095D2 +:105D80008095709561957F4F8F4F9F4F08950E942A +:105D9000282C08F48FEF08950E94282C880B990B6B +:105DA0000895DB018F939F930E943F2DBF91AF9188 +:105DB000A29F800D911DA39F900DB29F900D112465 +:105DC0000895EE0FFF1F0590F491E02D09940F93B5 +:105DD0001F93CF93DF938230910510F482E090E01F +:105DE000E091C307F091C40730E020E0B0E0A0E00C +:105DF000309799F42115310509F44AC0281B390B55 +:105E000024303105D8F58A819B816115710589F1AE +:105E1000FB0193838283FE0111C040815181028185 +:105E2000138148175907E0F04817590799F410975C +:105E300061F012960C93129713961C933296CF0131 +:105E4000DF91CF911F910F9108950093C307109395 +:105E5000C407F4CF2115310551F04217530738F02C +:105E6000A901DB019A01BD01DF01F801C1CFEF01FA +:105E7000F9CF9093C4078093C307CDCFFE01E20F03 +:105E8000F31F819391932250310939832883D7CF0F +:105E90002091C1073091C207232B41F42091820148 +:105EA000309183013093C2072093C1072091800174 +:105EB000309181012115310541F42DB73EB7409154 +:105EC000840150918501241B350BE091C107F091AD +:105ED000C207E217F307A0F42E1B3F0B2817390760 +:105EE00078F0AC014E5F5F4F2417350748F04E0F36 +:105EF0005F1F5093C2074093C107819391939FCF37 +:105F0000F0E0E0E09CCFCF93DF930097E9F0FC0155 +:105F1000329713821282A091C307B091C407ED019A +:105F200030E020E01097A1F420813181820F931F8F +:105F30002091C1073091C2072817390709F061C0C5 +:105F4000F093C207E093C107DF91CF910895EA0172 +:105F5000CE17DF07E8F54A815B819E0141155105A7 +:105F6000B1F7E901FB83EA8349915991C40FD51F29 +:105F7000EC17FD0761F4808191810296840F951FD3 +:105F8000E90199838883828193819B838A83F0E0EE +:105F9000E0E012968D919C9113970097B9F52D91A1 +:105FA0003C911197CD010296820F931F2091C1075A +:105FB0003091C2072817390739F6309751F51092FA +:105FC000C4071092C307B093C207A093C107BCCF08 +:105FD000D383C28340815181840F951FC817D9078D +:105FE00061F44E5F5F4F88819981480F591F51833B +:105FF00040838A819B81938382832115310509F037 +:10600000B0CFF093C407E093C3079ECFFD01DC013E +:10601000C0CF13821282D7CFB0E0A0E0E2E1F0E37C +:106020000C944C2D8C01009751F4CB010E94E72E6B +:106030008C01C801CDB7DEB7E0E10C94682DFC01FE +:10604000E60FF71F9C0122503109E217F30708F40D +:106050009DC0D901CD91DC911197C617D70798F053 +:10606000C530D10530F3CE0104978617970708F3A2 +:10607000C61BD70B2297C193D1936D937C93CF010D +:106080000E94832FD6CF5B01AC1ABD0A4C018C0E47 +:106090009D1EA091C307B091C407512C412CF12C37 +:1060A000E12C109731F58091C1079091C2078815B6 +:1060B000990509F05CC04616570608F058C0809153 +:1060C000800190918101009741F48DB79EB7409176 +:1060D000840150918501841B950BE817F90708F09E +:1060E00055C0F093C207E093C107F9017183608343 +:1060F000A0CF8D919C91119712966C901297139648 +:106100007C901397A815B90559F56C0142E0C40EAF +:10611000D11CCA14DB0420F1AC014A195B09DA0175 +:106120001296159780F06282738251834083D90161 +:106130006D937C93E114F10471F0D7011396FC93F5 +:10614000EE93129776CF22968C0F9D1FF9019183C3 +:106150008083F301EFCFF093C407E093C30769CFC7 +:106160004816590608F42C017D01D3019ACFCB01C2 +:106170000E94E72E7C01009749F0AE01B8010E9411 +:10618000CE30C8010E94832F870153CF10E000E07A +:1061900050CF81E090E0F8940C94DE30FB01DC01FC +:1061A00002C001900D9241505040D8F70895FB0174 +:1061B000DC0101900D920020E1F708951BE0C2E39D +:1061C000DBE004C0FE010E94E12E2196C333D1071B +:1061D000C9F7F894FFCF01FFD800340186011E00F3 +:1061E00000000000000000000000000000000000AF +:1061F000000000000000000000000000000000009F +:10620000000000000000000000000000000000008E +:106210000000000000000000013C96004001010168 +:10622000280F0501014243312E3500000000000017 +:10623000000000000000000000000000000000005E +:10624000000000000000000000000000000000004E +:106250000000000000010000C50780004C0AFC0996 +:10626000AC095C090C09BC086C081C08CC074C0A7A +:106270007C072C07DC068C063C06EC059C054C05CF +:106280003C069C05FC044C053C06AC045C040C0478 +:10629000BC036C031C03CC027C022C02DC01CC028C +:1062A0007C028C013C013C06740D580D3C0D200D08 +:1062B000040DE80CCC0CB00C940C780C5C0C740D38 +:1062C000400C240C080C740DEC0BD00B080CEC0BE0 +:1062D000B40BD00B080C980B7C0B600B440B280BF9 +:1062E000E80C0C0B940CF00AD40AB80A9C0A040DB2 +:1062F000B80A080C09060404020202020202032082 +:106300000E040EE40DC815C80DAC0D900D8C0F5485 +:106310000F1C0FE40EAC0E740E3C0E00000000F9D2 +:106320000D590D860D460EB70D950DA90D000000F7 +:10633000008B10590DAD11580D6E616E00696E66BF +:08634000006F7666002F3300A8 +:107E0000112484B714BE81FFF0D085E080938100F7 +:107E100082E08093C00088E18093C10086E0809377 +:107E2000C20080E18093C4008EE0C9D0259A86E02C +:107E300020E33CEF91E0309385002093840096BBD3 +:107E4000B09BFECF1D9AA8958150A9F7CC24DD24C4 +:107E500088248394B5E0AB2EA1E19A2EF3E0BF2EE7 +:107E6000A2D0813461F49FD0082FAFD0023811F036 +:107E7000013811F484E001C083E08DD089C08234E0 +:107E800011F484E103C0853419F485E0A6D080C0E4 +:107E9000853579F488D0E82EFF2485D0082F10E0AE +:107EA000102F00270E291F29000F111F8ED06801E7 +:107EB0006FC0863521F484E090D080E0DECF843638 +:107EC00009F040C070D06FD0082F6DD080E0C81688 +:107ED00080E7D80618F4F601B7BEE895C0E0D1E017 +:107EE00062D089930C17E1F7F0E0CF16F0E7DF06D8 +:107EF00018F0F601B7BEE89568D007B600FCFDCFD4 +:107F0000A601A0E0B1E02C9130E011968C91119780 +:107F100090E0982F8827822B932B1296FA010C0160 +:107F200087BEE89511244E5F5F4FF1E0A038BF0790 +:107F300051F7F601A7BEE89507B600FCFDCF97BE46 +:107F4000E89526C08437B1F42ED02DD0F82E2BD052 +:107F50003CD0F601EF2C8F010F5F1F4F84911BD097 +:107F6000EA94F801C1F70894C11CD11CFA94CF0C13 +:107F7000D11C0EC0853739F428D08EE10CD085E9AC +:107F80000AD08FE07ACF813511F488E018D01DD067 +:107F900080E101D065CF982F8091C00085FFFCCF94 +:107FA0009093C60008958091C00087FFFCCF809118 +:107FB000C00084FD01C0A8958091C6000895E0E648 +:107FC000F0E098E1908380830895EDDF803219F02E +:107FD00088E0F5DFFFCF84E1DECF1F93182FE3DFCA +:107FE0001150E9F7F2DF1F91089580E0E8DFEE27F6 +:047FF000FF270994CA +:027FFE00040479 +:00000001FF diff --git a/software/binaries/1.7t3/T12.ino.standard.hex b/software/binaries/1.7t3/T12.ino.standard.hex new file mode 100644 index 0000000..133f067 --- /dev/null +++ b/software/binaries/1.7t3/T12.ino.standard.hex @@ -0,0 +1,1793 @@ +:100000000C9406120C942E120C942E120C945F2752 +:100010000C942E120C942E120C942E120C942E1260 +:100020000C942E120C942E120C942E120C942E1250 +:100030000C942E120C942E120C942E120C942E1240 +:100040000C9415270C942E120C94E3260C94BD26C8 +:100050000C942E120C9436280C942E120C942E1202 +:100060000C942E120C942E1207634236B79BD8A71D +:100070001A39685618AEBAAB558C1D3CB7CC5763CD +:10008000BD6DEDFD753EF6177231BF000000803F7B +:1000900008000000BE922449123EABAAAA2ABECD97 +:1000A000CCCC4C3E00000080BEABAAAAAA3E000009 +:1000B0000000BF000000803F000000000008417801 +:1000C000D3BB4387D1133D190E3CC3BD4282AD2B38 +:1000D0003E68EC8276BED98FE1A93E4C80EFFFBE30 +:1000E00001C4FF7F3F0000000000536176650046B9 +:1000F0006C6970004D61696E2053637265656E00B6 +:100100004F4B004E4F004A5000454E00434E0059A1 +:100110004553004E4F004F4E004F464600496E6615 +:100120006F73004269670050494400446972656317 +:1001300074005361766500426F6F7374004F66669A +:1001400000536C656570005361766500426F6F7394 +:100150007400536C6565700044656661756C74006D +:1001600053617665004164640044656C65746500A4 +:1001700052656E616D650043616C696272617465A0 +:10018000004368616E67650052657475726E004168 +:10019000626F7574004C616E67004C4F5720566F4C +:1001A0006C0042757A7A65720053637265656E0001 +:1001B000436F6E74726F6C0054696D6572005465A4 +:1001C0006D700054697000F21415F0CADFB8CCF0FD +:1001D000D699E8AEA4DFEEE8F0714601F046464A53 +:1001E00001F21D1E08F21C08F21A1B08F0714601EC +:1001F000F046464A01F219F051F218F05A8DF0C05B +:10020000DAEEAEF0C8B8A5F1302924F0B599E1A432 +:10021000BDF21415F0CBEEAEBDF218F05A8DF21609 +:1002200017F21415F0CBEEAEBDF21617F0BCCA9E55 +:10023000E0BDF21415F21213F21011F20C0DF0944D +:10024000F20E0FF0A2D8DFCBE1EEACDCE8F20AF060 +:100250008CF20BF04A8DF209F08DF097C59BBDF240 +:100260000708F2040506F097DEEED5F0CBABEEF012 +:10027000AEA4DFEEE8F0A8E8BDE2EEE0F0B499D37A +:10028000EEF200010203F0CCDFB0B8BD00000000C8 +:10029000000F1DC20800054442080003845FBF0030 +:1002A0000FE44410000115451000054CC97F80097A +:1002B000244F900007C4C11000054D413F00055474 +:1002C00043810007C44D0200054441140005554117 +:1002D000080007C8810400000000000000000000C2 +:1002E0000001083FFE001FFF8100000040020000E7 +:1002F00007FE0FF80004020808000402088800073F +:10030000FE0888000402088800040208880007FE2E +:100310000888000402094800040202300007FE04B5 +:100320000C0004021804000000000000000000009F +:100330000007FE13FE00040208400004020840000B +:10034000040201FC0004023884000402088400074F +:10035000FE0FFF000402080000040209FE00040270 +:1003600009020004020B020004020D020007FE094C +:10037000FE00040201020000000000000000000076 +:100380000001100080001FFF80800001103FFF006F +:10039000004004080007FC040800044404100004A2 +:1003A0004402100004440220001FFF81200000408E +:1003B00000C00000A00130000110020800060C0C73 +:1003C00007001803B0020000000000000000000059 +:1003D00000004000800000400080000FFF3FFF0051 +:1003E00008410408000841040800084104100008FE +:1003F000410210000FFF02200008410120000040D0 +:1004000000C0000040013000004002080000400C25 +:100410000700004030020000000000000000000063 +:10042000001FDF10200002120C2000022404200014 +:10043000047F8020000424B820000FA488500014FA +:10044000BF88500004A488500004A488480004BF5A +:1004500088880004A48A880007A48C840004448946 +:10046000070000818602000000000000000000007C +:10047000000FF00491000440025200047F905400E9 +:10048000045088FF0007D0848100045100810004DB +:100490004901FF0007CA0281000444048100044AA4 +:1004A0001CFF0007EA0481000C510481000061C4B4 +:1004B0008500004080820000000000000000000075 +:1004C0000007FF802000008407FF00008404010073 +:1004D000008404010000840401000FFFC7FF000036 +:1004E000840400000084040000008405FF000084F0 +:1004F00005010001040901000104090100020411C1 +:10050000FF000404010100000000000000000000E2 +:1005100000008204FF00004402010007FF90210058 +:100520000010102100001017FD0000101021000F16 +:10053000FFD06100001010A1000028112100002848 +:100540001221000044142100008210A1000301D0F8 +:1005500045000C00900200000000000000000000B8 +:1005600000084410FE00042810920005FF229200AB +:1005700000103C920000100892001CFE1092000433 +:100580001020FE0004103E920005FF80920004102F +:1005900000920005100E9200061030920004100028 +:1005A000FE000010008200000000000000000000BB +:1005B0000007DF8840000A24104000114210FE00AE +:1005C000040022820002FF3D020008010A420009E5 +:1005D000F9103200090920120009F93E0200090948 +:1005E00000020009090E020009F930220008050086 +:1005F00014000802000800000000000000000000D5 +:10060000000FC3F1E0000FE3F1F8000C70C19E0091 +:100610000C30C186000C30C183000C30C183000C4B +:1006200060C183000C60C183000FC0C183000FC094 +:10063000C186000C00C186000C00C198000C03F1BB +:10064000F8000C03F1E000000000000000000000D2 +:100650000000200820000FFF09FC00002008000017 +:1006600000203E880003FE08500002020BFE00033B +:10067000FE0C4000020218400003FE2BFE000202A6 +:1006800008480003FE088800020208500002022801 +:1006900030001FFF91CC0000000000000104047C2A +:1006A0000000880444000FFF3F4400002004440081 +:1006B00000200C440000200E44001FFF9544000061 +:1006C00020144400005024440000500444000088DA +:1006D0000445000104048500060385030018010495 +:1006E000000000000000000000000000000000000A +:1006F00000047E21FC0004421104001F7E09040056 +:10070000044221FC000542110400067E1104000C85 +:100710000005FC0015FF880000040813FE000448D3 +:10072000325200044F125200044812520014A81210 +:100730005200091F97FF00000000000000000000A9 +:100740000002103DFC0002102504000410250400E6 +:1007500005FFBDFC000C102520000C3825200014DE +:100760003825FE0004543D20000454251000049256 +:100770002510000511A5090006113D4500041025AE +:1007800083000410010100000000000000000000D0 +:10079000001FC8102000124A0C20001AC9042000B3 +:1007A00017480020001FFFB8200002080850001F53 +:1007B000C8085000020808500003C80848001E146A +:1007C00008880001540A880015220C84001443890B +:1007D00007000081060200000000000002FE010088 +:1007E0000002823FFF00048202000004FE020000BB +:1007F0000C1004FC00141004080005FF8C10000409 +:1008000010141000043825FF0004340410000452B2 +:10081000041000049184100005100450000410041A +:1008200020000000000000000000000000000000A8 +:100830000002030010001FDC3EFE000890021200C0 +:10084000051004FF001FDF84120002120CFE001FBF +:10085000D2021000021222FE000A921410000A5264 +:1008600014100012220DFF0002220810000A421488 +:100870001000040223FF0000000000000000000040 +:10088000000F78BC20000948A45000094AA8500075 +:10089000094AA88800094AB104001FFEAAFB000902 +:1008A0004AA42000094AA42000094AA7FE00094AD8 +:1008B000B420000948A924000B48A22200088AA4F9 +:1008C000A2001119204000000000000000000000FC +:1008D000000020008000005001FC0000880104009E +:1008E000010403080006FB0490000800C060000734 +:1008F000DF018000045106000004511BFE0004517A +:1009000002020007D902020004560202000010038E +:10091000FE000010020200000000000000000000C5 +:10092000000208209000027F9890001F8009FF00BD +:10093000022201100006218B100007628DFE000AC2 +:10094000A20910000A14111000121431FE0002084E +:100950001110000214111000022211100002439124 +:10096000FF000281110000000000000000000000F4 +:1009700000100700000008F83FFE0004802002007D +:10098000008020020000BE23E2001C82222200041C +:10099000A42222000494222200048822220004942B +:1009A00023E200052220020005422002000A003F47 +:1009B000FE0011FFA0020000000000000000000087 +:1009C0000000820FFE00004400400007FF8040004E +:1009D0000010004000001000400000101FFF800FBA +:1009E000FFC0400000100040000028004000002828 +:1009F000004000004400400000820040000301C1AC +:100A000040000C00808000000000000009FF004052 +:100A10000004203FFF00042000000000FE00000052 +:100A20001C420FFC00044200000007FF800000048D +:100A3000000FFC0004FF000000048100000005819D +:100A40000FFC00068108040004FF08040000810F69 +:100A5000FC0000000000000000000000000000009A +:100A60000001000FFE00010008200003FF08200025 +:100A70000201082000042208200008200BFE0010BC +:100A8000200820000050082800005008240000889A +:100A9000082200008810200001041020000203A793 +:100AA000FF000C010000000000000000000000003A +:100AB0000000400080001FFF9FFC00004004100069 +:100AC0000FFF02200000003FFF000FFE00000008A3 +:100AD000420FF80008420808000FFE08080008024C +:100AE0000FF8000800080800080008080008000FB8 +:100AF000F8001000080800000000000000000000DE +:100B00000007FE0FF80004020000000402000000CD +:100B100007FE00000004023FFE0004020080000700 +:100B2000FE008000009004900008910C880006935D +:100B30001086000294208200009000800000900245 +:100B400080001FFF81000000000000000000000086 +:100B500000041012020005FF9FD20005009212004F +:100B60001E28A2120004443FF20004820212000672 +:100B7000000212000CFE1FD20014101252000410CA +:100B80001242000410134200041012820015FF826A +:100B90000A0008000204000000000000000000003D +:100BA00000002000000000203E04001FFFA20400FF +:100BB0001000A2FF0000012204000FFE220400002A +:100BC000403E440000402224000440222400047CD3 +:100BD00022040004402204000A403E04000940228E +:100BE000240010FF80140000000008000000000036 +:100BF0000010FE08200008820BFF0004820A01009A +:100C000010FE3C5100088208880008820904000296 +:100C1000FE0C0000040019FC0009FF28200019291F +:100C20000820000929082000092908200009292B8B +:100C3000FF000BFF9000000000000000000000001B +:100C4000001F7F90F80001080888000A100888003B +:100C5000047F0107001FC13A0000054909FC000498 +:100C600049088400044908880004490848000449E8 +:100C700008500004490A200004160C580014218969 +:100C8000870008C086020000000000008004000009 +:100C90003FF02430219027902730207027F0233018 +:100CA00030703FF000008004800400003FF03830D6 +:100CB00033103F90381033902790261030903FF03B +:100CC00000008004800400003FF03DF020103BF065 +:100CD0003B7030302B502AD031B03FF00000800400 +:100CE000800400003FF0387030302310279020102F +:100CF0002010279027903FF000008004800400001F +:100D00003FF03CF03CF020102490249020103CF068 +:100D10003CF03FF000008004800400003FF037B05A +:100D200023103030387038703030231037B03FF037 +:100D300000008004FCF4F860E044C08CC11CC22CAC +:100D4000C44CC88CD10CA204C4048FFC187CBCFC1D +:100D50008000BFF81FF8B0281FF8B4081FF8B108CA +:100D60001FF8B048BFF8B288BFF880008000BFF815 +:100D70001FF8B0081808B9E819B8B8381838B9B861 +:100D8000B9F8B0F8BFF8800015543FF815503FF09F +:100D90001550387010203104138C22A817FC2AA893 +:100DA0000000000015543FFC15543FFC15543C0452 +:100DB00014043CFC14543CFC005400A80000000047 +:100DC000800400003FF03CF034B024902490279041 +:100DD0002310303038703FF000008004FF7CFE7C30 +:100DE000FCECE8DCC84C984C88240820000000008B +:100DF000000000008004E01CF3FCE7FCCE0C8E1C1D +:100E00009F9C1F3C1F0C0E0C0FFC87F881E4C00C4C +:100E1000E01CF87C000458085808580840087FF87F +:100E200060185FE85B685FE85B681CE85FE80000EB +:100E3000800400003FF03CF03CF03CF0201020101B +:100E40003CF03CF03CF03FF000008004F87CF7BC44 +:100E500000007FF80000BFF4AB54AB54AB54AB546C +:100E6000AB54AB54BFF4C00CF03CCE0CBF04B30485 +:100E700073007F007E007C007C007C60BC64BE044C +:100E8000CF0CF03C81DC559C29045500299055D0AD +:100E900003FCFF002E00267002508270E600EE0474 +:100EA000800C001C3FF43FE03FC4378C23183030E7 +:100EB00038703CF03FF03FF000008004058074B8CB +:100EC00057A876B80580F97C4694AAA8F97C0688CC +:100ED00074A8578C75740698F03CCE4CBC34B8148A +:100EE000188010804230607860F844C08004B88474 +:100EF000CFCCF03CF87CE01CC00CCFCCCFCCCFCC1E +:100F0000CFCCCFCCCFCCCFCCC84CCFCCC00CE01CFE +:100F1000FCFCF87CE01CC00CC00CC00CC00CC00C6D +:100F2000C00C80048004FFFCF87CFCFC8004000002 +:100F30002000100008001000270000000000000042 +:100F40000000000000008004C3FC18001800C3FC6F +:100F5000FFFCFF0C00600060FF0CFFFCF0FC0600D3 +:100F60000600F0FC8FC4102020104CC89FE43DF018 +:100F70003DF01DE03EF03F709FE48CC40000303037 +:100F8000F87CF33CF4BCF6BCF4BCF6BCF4BCE49CCA +:100F9000C84CD02CD02CC84CE79CF03C88240820AE +:100FA00038303830383038303830383039303BB07D +:100FB0003FF03FF0000080041FE03FF07038601801 +:100FC00060186018FFFCFCFCFCFCFCFCF87CF87C66 +:100FD000FCFC7FF81E1033382D7C25382D38253841 +:100FE0002D386D80DEC0BF40BF40DEC061803F0055 +:100FF0007FF0FFE0C008C01CC038C870DCE4CFCC74 +:10100000C78CC30CC00CC00CFFFC7FF800000600AE +:101010000C0018F838F030307060707878F878008C +:101020003C023F0C1FF80FF003C000007FF8FFFCEC +:10103000C00CC30CCB4CDB6CDB6CD86CDCECCFCCC9 +:10104000C78CC00CFFFC7FF8030007800FC00CC0EA +:101050001CE01CE03CF03CF07FF87FF8FCFCFCFC62 +:10106000FFFC7FF81140820021208FE023FC8200EA +:101070004A23E200FE209FF013F880802220C080E7 +:101080004221BFF0FBFA8880022084800220848005 +:101090001A208080E3FE8280020101000F421FC0FF +:1010A000784110400840904008421FC0084110405D +:1010B000FFFD104008405FC00840800008413FE04D +:1010C00008432520104125201041252020412520BE +:1010D00040417FF07FF84880020049000201FFF0A4 +:1010E0000201001002027F202200410023F07F0055 +:1010F000220008002200FF802200888022008880D1 +:1011000022008A8022008900FFFC080023F21FC011 +:1011100022111040FBF0904022121FC02A111040F3 +:1011200033F1104060005FC0AFFC800020413FE021 +:10113000224325202279252022412520A541252052 +:1011400048FD7FF01083DFC0108250402082504065 +:101150002FFFDFC06082520061C25200A1C25FE077 +:1011600022A3D20022A2510024925100288E509036 +:10117000308BD4502082583020801010104047C04F +:1011800017FC44402003F44023F844406208C44064 +:10119000A3F8E440200154402FFD44402806444079 +:1011A00023F84440204044502040485021405030D3 +:1011B0002080400020921FC03DF990402090904038 +:1011C00040901FC07BFF0000A0013FE021F902001A +:1011D000FD09020021097FF021F9050021094500E0 +:1011E0002909888031F9107021082020250043004A +:1011F000202070F875407755757740403E4A5E2B49 +:101200005E4A6B627F352F357F7C5B5E247B0E3AB6 +:10121000047E017E4A5E69063A2F3F6B7E46403F60 +:1012200041497F494102626B6B6B62026A6B147DBC +:10123000577D10413F55553D5751213F2D7F2A1273 +:101240002E0A775A505A770A2024137D5553707A04 +:101250002A7B021A437A4A525E2B5E424A415F352C +:101260003F555F417D14577D0E407F7F1B54167D97 +:101270001654493A407E575676423F427E7E427E21 +:10128000047E51377D3750127A1752761E127F55E1 +:101290007F145D7F557F557F7F553D577F5537784C +:1012A00017457F7F2B7B287B2B7F1E12127F12120C +:1012B0001E7F416B7F6B517F525A573A575A5200EB +:1012C0007F494949497F22122A7F2A1222000000C1 +:1012D00000002F000300033F123F163F1A1208249C +:1012E000323D2A020100003E41413E000A070A0841 +:1012F0003E084020000808080020001008041C2AAE +:101300001C243E20322A24222A1418143E2E2A128B +:101310001C2A12023A06142A14242A1C0024004013 +:101320002400081422141414221408022906122975 +:101330001E3E093E3F251A1E21213F211E3F252129 +:101340003F05011E21393F083F213F2110201F3F4B +:10135000043B3F20203F063F3F013E1E211E3F0928 +:10136000061E215E3F0936222519013F013F203F1D +:101370003F100F3F183F330C33033C03312D230044 +:101380007F41153E15417F000201024040400001AF +:101390000218243C3F241818242418243F182C2C0D +:1013A000043F0548543C3F0438003D00403D003FA9 +:1013B0000834013F003C1C383C04381824187C24B5 +:1013C0001818247C3C0804283C14043E243C203C8F +:1013D0003C100C3C303C2418244C503C24342C0849 +:1013E0003641007F004136080101011028101F011D +:1013F0000120203E10200000080025150F241C0CA1 +:10140000103804180C3828382828183C083C1828AC +:101410003820242C3C2C2C1C040808211D07083CD7 +:101420000306231E223E22120A3F320F3E0A3F0AC3 +:1014300024130E271E0222223E27120F25251021DB +:1014400019273F222E21160F241B0E251F052626A5 +:101450001E251D053F0408241F04202222251927CC +:10146000123B1620100F3C013E1F242421110F0CAB +:10147000031C1A3F1A091927222A2A382730320C4E +:1014800013053F25023F0E213F2025253F25251D21 +:1014900007201F3C3F203F20103E223E23110F21FA +:1014A00021180100010205020000000000000000F8 +:1014B000204000000000000020502000000000003C +:1014C00050300000000000006060000000000000DC +:1014D0000000181800000000000036360000000070 +:1014E0000000563600000000000201510909060004 +:1014F0000000005F00000000000000007F4141008C +:1015000041417F00000000000000003F0101010098 +:101510004040407E0000000000003F213D050700E4 +:1015200070505E427E000000000000007F634100BA +:1015300041637F00000000000808087F08080800D9 +:1015400008080808080808004444445F444444006C +:1015500041221408142241000808082A080808003B +:1015600014141414141414001434141C1416140039 +:10157000080814141422220022221414140808004B +:101580000205023C42422400002B2C782C2B000048 +:1015900000242A7A2F2A1200001C62322E23140003 +:1015A00020545E2541422000422512082452210089 +:1015B00020623E633E2302002056495522584000D7 +:1015C0000022147F142200001C2259554D120C00D9 +:1015D00000004A555529000004643C173C6404008F +:1015E00004643C1F3C6404001C22414141221C0055 +:1015F0001C3E7F7F7F3E1C001C225D555D221C002F +:101600000814224122140800081C3E7F3E1C0800DA +:101610007F41414141417F007F7F7F7F7F7F7F000E +:1016200040704C434C70400040707C7F7C704000A8 +:10163000010719611907010001071F7F1F0701003A +:1016400049221449142249000505057D05050500B8 +:10165000080808082A1C0800081C2A0808080800AE +:101660000004027F020400000010207F2010000010 +:10167000003E414141413E000000427F40000000E9 +:10168000006251514949460000224149494936000A +:1016900000302824227F2000002F45454545390091 +:1016A000003E494949493200000101611905030022 +:1016B00000364949494936000026494949493E0012 +:1016C0000020547E3414600020527F2A1A4A3000D1 +:1016D000003C4020041800001E2040200204180096 +:1016E00000104A4A2A100000000845454525180008 +:1016F00000482A3A4A400000004425153D45400074 +:1017000000247E145024000022527F0A484A3400EC +:1017100044344F443804180044344F443904190009 +:10172000002A5A4B4E5A0800002A5A4B4E5B0800BA +:10173000000814142241000000081414224504007B +:101740003F0004443F0404003F0004443F040500FC +:101750000020524242424000002052424342410097 +:1017600000245444475C040000245444475C0500B2 +:1017700000003F404040200000003F404140210029 +:1017800002020A563F02020002020A563F0203000A +:1017900004043F44545F440004043F44545F450044 +:1017A0000008093D4B4908000008093D4B490A0063 +:1017B000423A072254444400423A07225544450025 +:1017C0000002124E4B4A32000002124E4B4A3300C6 +:1017D00000101048483000000404022222221C009D +:1017E0000404022223221D000002021A25434100A4 +:1017F0000002021A2543450000205748484444008F +:101800000020574849444500120A2752503A240004 +:101810007F00205242424000304E38540F6478001E +:1018200024147F0422523C001824124E4224180033 +:101830007F002454543F44007F002454543F45000B +:101840007F002454563D4600023A4740413E040082 +:10185000023A4740413E0500023A4740433D0600F8 +:101860004030404D321060004030404D3211610038 +:101870004030404D32156200080402040810100088 +:101880000804020409101100080402040A151200D9 +:101890007F006A6A7E2A4A007F006A6A7F2A4B00BC +:1018A0007F006A6A7E2D4A00006A6A6A7F2A4A00BF +:1018B00030291D4B483C1000122A7F424042240030 +:1018C000304E38540F443800000A3E4B4A4A30002C +:1018D00000080E384614080004071C62030A0400BE +:1018E000001C483E241800001E04523F12120C0037 +:1018F000002050503E480000002050503F2444003B +:10190000001C51494A483000000F4241211E00008E +:101910000010696D4B49300024147F04023E4000E2 +:101920000010494D4B4930000028187E084438000B +:1019300024147F0442423C003049251F24543800BF +:101940004028255735284000100A2E5B724A48006F +:1019500040300C33404020000004443C140C000094 +:101960000001413D0905030000202010780400001B +:10197000001010087C0201000018484C28180000D4 +:101980000006424322120E00004048784840000002 +:101990002022223E22222000002828587C08000015 +:1019A0002222124A7F0202000042221F02427E00CF +:1019B0000042221F02427F000012121F721210000A +:1019C0000012121F721310000008444322120E006E +:1019D0000008444322120F00080742221E020200A0 +:1019E000080742221F0203000042424242427E0098 +:1019F0000042424243427F0002024F42221F020045 +:101A000002024F42231E030000454A4020100C00F2 +:101A100000454A4021100D00404222221A26400073 +:101A2000404222221B26410004043F4444544C00FF +:101A300004043F4445544D000001464020100F006F +:101A40000001464020110F000008444B2A120E00EE +:101A50000008444B2A120F00080A4A3E09090800F0 +:101A6000080A4A3E090809000018405820180000DA +:101A7000020C424C20100E00020C424C21100D00B2 +:101A80000405453D050504000405453D0504050024 +:101A900000007F080810000000007F080910010006 +:101AA0000444241F040404002022222222222000B5 +:101AB00040412515192700002022127B0612200024 +:101AC000404020100807000040300E00020C70005B +:101AD00040300E00020D710040300E00020D720009 +:101AE000003F484848444400003F484849444500B6 +:101AF000003F48484A4546000002424222120E007A +:101B00000002424223120F000002424222150E0040 +:101B1000080402040810200008040204091021002F +:101B2000080402040A1522002414447F041424002B +:101B30002414447F051425002414447F0615220034 +:101B400002021222520A0600002125294A42000000 +:101B500040704C435020400040442414083700009B +:101B60000008093F4949480000101C680818000097 +:101B700004040F74020A0600004048487840000040 +:101B8000202222223E20200000004454547C0000E9 +:101B900000424A4A4A4A7E000004454525150C0089 +:101BA000000F4040201F000040201E007F2010003A +:101BB00000007F4020100800007E424242427E002A +:101BC000000C4444241C00000006424222120E0075 +:101BD00010121E12127F12002022223A262220000A +:101BE0000001454525150F000041424020100C0022 +:101BF0000006424322120F000048281C48780000CB +:101C000000100C48380800000804040810100800F0 +:101C10000800000800000800040808080808080078 +:101C20000808080808080808C301BE01B801B00187 +:101C3000A901A2019A0195018F0188018101770113 +:101C40007001690165016001580152014C014701B1 +:101C500041013D01370132012B01270123011D0103 +:101C60001901160113010F010C01090106010301FD +:101C70000001F400EF00EA00060505070604090369 +:101C80000504090A08030303060305030305050306 +:101C900006040405050405040403040504090503FA +:101CA0003E0053656C656374205469700000000049 +:101CB00000003E5B4F5B3E3E6B4F6B3E1C3E7C3EEE +:101CC0001C183C7E3C181C577D571C1C5E7F5E1CFC +:101CD00000183C1800FFE7C3E7FF0018241800FFB6 +:101CE000E7DBE7FF30483A060E2629792926407FB0 +:101CF000050507407F05253F5A3CE73C5A7F3E1CBF +:101D00001C08081C1C3E7F14227F22145F5F005FAA +:101D10005F06097F017F006689956A606060606088 +:101D200094A2FFA29408047E040810207E201008CC +:101D3000082A1C08081C2A08081E101010100C1E67 +:101D40000C1E0C30383E3830060E3E0E06000000E9 +:101D5000000000005F00000007000700147F147FF0 +:101D600014242A7F2A12231308646236495620500D +:101D70000008070300001C2241000041221C002A29 +:101D80001C7F1C2A08083E080800807030000808E4 +:101D9000080808000060600020100804023E514955 +:101DA000453E00427F400072494949462141494D24 +:101DB000331814127F1027454545393C4A494931AB +:101DC00041211109073649494936464949291E002A +:101DD00000140000004034000000081422411414D4 +:101DE000141414004122140802015909063E415DF1 +:101DF000594E7C1211127C7F494949363E4141417E +:101E0000227F4141413E7F494949417F09090901FA +:101E10003E414151737F0808087F00417F41002007 +:101E200040413F017F081422417F404040407F02F3 +:101E30001C027F7F0408107F3E4141413E7F09091B +:101E400009063E4151215E7F091929462649494923 +:101E50003203017F01033F4040403F1F2040201FCD +:101E60003F4038403F63140814630304780403615F +:101E700059494D43007F414141020408102000416F +:101E800041417F04020102044040404040000307FA +:101E9000080020545478407F28444438384444444F +:101EA00028384444287F385454541800087E0902C6 +:101EB00018A4A49C787F0804047800447D40002086 +:101EC00040403D007F1028440000417F40007C04DA +:101ED0007804787C080404783844444438FC182496 +:101EE000241818242418FC7C08040408485454546A +:101EF0002404043F44243C4040207C1C2040201CFF +:101F00003C4030403C44281028444C9090907C4405 +:101F100064544C4400083641000000770000004142 +:101F200036080002010204023C2623263C1EA1A121 +:101F300061123A4040207A38545455592155557908 +:101F400041215454784121555478402054557940CA +:101F50000C1E527212395555555939545454593929 +:101F6000555454580000457C410002457D42000113 +:101F7000457C40F0292429F0F0282528F07C545590 +:101F800045002054547C547C0A097F493249494910 +:101F9000323248484832324A4848303A4141217A40 +:101FA0003A42402078009DA0A07D39444444393D08 +:101FB0004040403D3C24FF2424487E4943662B2F6B +:101FC000FC2F2BFF0929F620C0887E0903205454DA +:101FD00079410000447D413048484A32384040222F +:101FE0007A007A0A0A727D0D19317D2629292F2857 +:101FF000262929292630484D402038080808080895 +:10200000080808382F10C8ACBA2F102834FA00007E +:102010007B000008142A142222142A140895002296 +:102020000095AA005500AAAA55AA55AA000000FFCB +:1020300000101010FF00141414FF001010FF00FF18 +:102040001010F010F0141414FC001414F700FF002A +:1020500000FF00FF1414F404FC141417101F1010D8 +:102060001F101F1414141F00101010F000000000A7 +:102070001F101010101F10101010F010000000FFA3 +:10208000101010101010101010FF10000000FF149E +:102090000000FF00FF00001F10170000FC04F414F4 +:1020A000141710171414F404F40000FF00F71414AC +:1020B0001414141414F700F7141414171410101F28 +:1020C000101F141414F4141010F010F000001F105E +:1020D0001F0000001F14000000FC140000F010F0AE +:1020E0001010FF10FF141414FF141010101F000024 +:1020F0000000F010FFFFFFFFFFF0F0F0F0F0FFFF37 +:10210000FF0000000000FFFF0F0F0F0F0F384444C7 +:1021100038447C2A2A3E147E02020606027E027E93 +:102120000263554941633844443C04407E201E20EC +:1021300006027E020299A5E7A5991C2A492A1C4C91 +:102140007201724C304A4D4D303048784830BC6294 +:102150005A463D3E494949007E0101017E2A2A2A0C +:102160002A2A44445F444440514A444040444A512E +:10217000400000FF0103E080FF000008086B6B08CF +:102180003612362436060F090F0600001818000014 +:10219000001010003040FF0101001F01011E001956 +:1021A0001D1712003C3C3C3C0000000000000000F9 +:1021B00000240027002A0000000000250028002B32 +:1021C0000000000000230026002900040404040489 +:1021D00004040402020202020203030303030301D4 +:1021E00002040810204080010204081020010204AB +:1021F000081020AED5F0A83FD300408D14A1C8DA56 +:102200001281CFD9F1DB40A4A6AF200021007F22AC +:102210000007506C65617365207761697400414403 +:10222000433A200074656D703A2000536574206D48 +:102230006561737572656400537465703A2000FFC0 +:10224000FFFFFFFFFF80038670800380038670809E +:10225000039FF3E1309FF39FF3E1309FF398330145 +:10226000CC9833983301CC9833983387C0983398FF +:1022700033E1C098339833E1C098339FF398C09FFF +:10228000F39FF398C09FF3800366CC8003800366BE +:10229000CC8003FFFF010CFFFFFFFF01001FFF8148 +:1022A0000061301F3F873CE6FC8733873CE6FC87B4 +:1022B000F3F8039E0F1F03F8039E0F1F03E13CFE7C +:1022C0000C07CFE13CFE0C07CF99033E3086C3E6F6 +:1022D000CF380F9EF3E6CF380F9EF39E0327CC81B5 +:1022E000039E0327CC8103E0FFE10CE6CFE0FFE192 +:1022F0000CE6CF9803060000FF9803060000FFFFDE +:10230000FF1EF0F8038003663099C380036630999E +:10231000C39FF3010CF8FF9FF3010CF8FF983339CA +:102320003C01CF9833393C01CF9833FF0C793F986B +:10233000333ECCE0F398333ECCE0F39FF33E00987D +:10234000CF9FF33E0098CF80033E30E7C380033E2B +:1023500030E7C3FFFFFFFFFFFFFFFFFFFFFFFF307F +:1023600030300076312E377433005600560043006B +:102370000FE01FC01FC03F803FF87FF07FE007C025 +:1023800007800F000E001C001800100014A03FF082 +:102390007FF8E01C6E18EC1C68186018E01C605890 +:1023A000E01C7FF83FF014A04552524F5200484FB6 +:1023B0004C44004845415400574F524B5900424F3E +:1023C0004F535400534C454550004F4646000000C3 +:1023D0003BEC7BEE63E663E663E663E663E663E6B7 +:1023E00063666226600660067FFE3FFC0000010215 +:1023F00004081020408000000008000201000003D3 +:1024000004070000000000000000372811241FBE50 +:10241000CFEFD8E0DEBFCDBF12E0A0E0B1E0ECE24C +:10242000FEE602C005900D92A63CB107D9F728E060 +:10243000A6ECB2E001C01D92AF30B207E1F712E1A5 +:10244000C6E0D2E104C02197FE010E94F536C530F6 +:10245000D107C9F70E94EC280C9414370C940000A3 +:102460004F925F926F927F928F929F92AF92BF92A4 +:10247000CF92DF92EF92FF920F931F93CF93DF9350 +:1024800000D000D0CDB7DEB74B015C0129013A0185 +:102490006701780120E030E0A9010E94983287FDB1 +:1024A000A6C020E030E0A901C301B2010E94983229 +:1024B00087FD9DC020E030E0A901C801B6010E945F +:1024C000983287FD94C081E02091D9073091DA07D6 +:1024D0002130310509F080E08093FA078092BF0730 +:1024E0009092C007A092C107B092C2074092C30762 +:1024F0005092C4076092C5077092C607C092C70782 +:10250000D092C807E092C907F092CA076091ED0720 +:102510007091EE078091EF079091F0070E949D3235 +:1025200020E030E04AE754E40E949A3469837A83D9 +:102530008B839C838092CB079092CC07A092CD078F +:10254000B092CE079B01AC01C301B2010E94FE32E2 +:102550002B013C014092CF075092D0076092D107E7 +:102560007092D20729813A814B815C81C701B60103 +:102570000E949A346B017C01C092D307D092D40799 +:10258000E092D507F092D6078091D7079091D807AF +:10259000019769F5A501940160E070E0CB010E940C +:1025A0002D346093CB077093CC078093CD07909325 +:1025B000CE07A301920160E070E0CB010E942D34B0 +:1025C0006093CF077093D0078093D1079093D20781 +:1025D000A701960160E070E0CB010E942D3460936A +:1025E000D3077093D4078093D5079093D6070F90A5 +:1025F0000F900F900F90DF91CF911F910F91FF904F +:10260000EF90DF90CF90BF90AF909F908F907F9092 +:102610006F905F904F90089580389105B0F46034CA +:10262000710598F4EEEEF3E290E1969FD001A07868 +:102630001124A80F6770E60FF11D9491AA5EBC4F9C +:10264000442321F08C91982B9C93089590958C9124 +:102650009823FACFDF92EF92FF920F931F93CF93BD +:10266000DF937C01D22E8B01040F111DEB0177FF4C +:1026700002C0D0E0C0E0C8010134110514F080E4CC +:1026800090E0C817D9073CF44D2DBE01C7010E9448 +:102690000C132196F0CFDF91CF911F910F91FF90F6 +:1026A000EF90DF900895CF92DF92EF92FF920F9319 +:1026B0001F93CF93DF936B01122FEC017C01E40E8B +:1026C000F11CCE15DF0544F4202F412FB601CE01B9 +:1026D0000E942A132196F5CFDF91CF911F910F9180 +:1026E000FF90EF90DF90CF9008952F923F924F92FE +:1026F0005F926F927F928F929F92AF92BF92CF9292 +:10270000DF92EF92FF920F931F93CF93DF9300D04E +:102710001F92CDB7DEB7C22ED12C9601280F391FDC +:1027200037FD4FC0803891050CF04BC0E9824A015B +:102730007B013C01402E512C160127E0220E311C5A +:1027400093E0359427949A95E1F78B01B12CA12C55 +:102750001B821A82EA81FB8183E0F595E7958A95D1 +:10276000E1F7EA0DFB1DE80DF91DE4918A819B81DB +:102770008770992720E830E002C0359527958A9523 +:10278000E2F7C901F0E0E223F923EF2B41F04981A0 +:10279000B8018A819B81860D971D0E940C138A8146 +:1027A0009B8101969B838A838C159D059CF2A20CCC +:1027B000B31C0F5F1F4FC8018E199F098415950523 +:1027C0003CF20F900F900F90DF91CF911F910F91DE +:1027D000FF90EF90DF90CF90BF90AF909F908F9041 +:1027E0007F906F905F904F903F902F9008950F9340 +:1027F0001F93CF93DF93EC018B0140E001960E9481 +:102800000C1340E0B801CE0101970E940C13B801EF +:102810006F5F7F4F40E0CE010E940C13B801615002 +:10282000710940E0CE010E940C1340E0B801CE01D6 +:10283000DF91CF911F910F910C940C1380E0E6E192 +:10284000F3E081118FEF0024819381938193819331 +:102850000394D1F7EBEFF7E01786168615861486FA +:1028600008956F927F928F929F92AF92BF92CF9274 +:10287000DF92EF92FF920F931F93CF93DF938038F5 +:1028800091050CF057C0603471050CF053C07B010A +:1028900037E0E322FF2433E0759567953A95E1F739 +:1028A000DB01B695BA2FAA27B795A7955D01C0E8B9 +:1028B000AC0EB11CA80EB91EA80FB91FAA5EBC4F62 +:1028C00000E810E0081B190B90E080E0E8E0F0E081 +:1028D0004F018E189F0830E0FA01E80FF91FC491EC +:1028E0007D906D01D1E0CD1AD1080E2C01C0CC0F26 +:1028F0000A94EAF77C2AE6017882E114F10499F05F +:102900006730710581F0E491EC01CA0DDB1DCA5EF0 +:10291000DC4FF0E0082C02C0F595E7950A94E2F749 +:10292000F881EF2BE8830196821793071CF40817B0 +:10293000190791F6DF91CF911F910F91FF90EF90C2 +:10294000DF90CF90BF90AF909F908F907F906F90CF +:102950000895AF92BF92CF92DF92EF92FF920F93C2 +:102960001F93CF93DF936C017B018B01040F151F25 +:10297000EB015E01AE18BF08C017D10759F069918D +:10298000D601ED91FC910190F081E02DC6010995F1 +:10299000892B79F7C501DF91CF911F910F91FF909E +:1029A000EF90DF90CF90BF90AF900895FC01538DD2 +:1029B000448D252F30E0842F90E0821B930B541719 +:1029C00010F0CF96089501970895FC01918D828DA6 +:1029D000981761F0A28DAE0FBF2FB11D5D968C913F +:1029E000928D9F5F9F73928F90E008958FEF9FEF7E +:1029F0000895FC01918D828D981731F0828DE80F3A +:102A0000F11D858D90E008958FEF9FEF0895FC01F3 +:102A1000918D228D892F90E0805C9F4F821B9109C0 +:102A20008F739927089586E197E00E94071521E0AA +:102A3000892B09F420E0822F089580E090E0892B13 +:102A400029F00E94131581110C9400000895FC01D7 +:102A5000A48DA80FB92FB11DA35ABF4F2C91848DFF +:102A600090E001968F739927848FA689B7892C935C +:102A7000A089B1898C91837080648C93938D848DAF +:102A8000981306C00288F389E02D80818F7D8083B2 +:102A90000895EF92FF920F931F93CF93DF93EC0172 +:102AA00081E0888F9B8D8C8D98131AC0E889F989F5 +:102AB000808185FF15C09FB7F894EE89FF896083F8 +:102AC000E889F98980818370806480839FBF81E079 +:102AD00090E0DF91CF911F910F91FF90EF900895BB +:102AE000F62E0B8D10E00F5F1F4F0F731127E02E96 +:102AF0008C8D8E110CC00FB607FCFACFE889F989CE +:102B0000808185FFF5CFCE010E942715F1CFEB8D97 +:102B1000EC0FFD2FF11DE35AFF4FF0829FB7F894A1 +:102B20000B8FEA89FB8980818062CFCFCF93DF93BF +:102B3000EC01888D8823B9F0AA89BB89E889F989D5 +:102B40008C9185FD03C0808186FD0DC00FB607FC0A +:102B5000F7CF8C9185FFF2CF808185FFEDCFCE013D +:102B60000E942715E9CFDF91CF910895833081F03E +:102B700028F4813099F08230A9F008958730A9F0C7 +:102B80008830C9F08430B1F4809180008F7D03C01B +:102B9000809180008F7780938000089584B58F772F +:102BA00084BD089584B58F7DFBCF8091B0008F7771 +:102BB0008093B00008958091B0008F7DF9CFCF93BE +:102BC000DF93282F30E0F901EA50FC4D8491F901A0 +:102BD000E152FE4DD491F901E553FE4DC491CC2351 +:102BE000A1F081110E94B615EC2FF0E0EE0FFF1F4F +:102BF000EF53FE4DA591B491EC91ED2381E090E06F +:102C000009F480E0DF91CF91089580E090E0FACF61 +:102C10001F93CF93DF93282F30E0F901EA50FC4D4A +:102C20008491F901E152FE4DD491F901E553FE4D35 +:102C3000C491CC23A9F0162F81110E94B615EC2F58 +:102C4000F0E0EE0FFF1FE954FE4DA591B4918FB750 +:102C5000F894EC91111108C0D095DE23DC938FBF5E +:102C6000DF91CF911F910895DE2BF8CFCF93DF93A3 +:102C700090E0FC01E152FE4D249185539E4DFC01F4 +:102C800084918823C9F090E0880F991FFC01E355D7 +:102C9000FE4DA591B491FC01E954FE4DC591D4912E +:102CA00061110DC09FB7F8948C91209582238C936D +:102CB0008881282328839FBFDF91CF9108956230B8 +:102CC00051F49FB7F8943C91822F809583238C9385 +:102CD000E8812E2BEFCF8FB7F894EC912E2B2C930D +:102CE0008FBFEACFCF93DF93EC0161E089E00E94D0 +:102CF0003616209731F460E089E0DF91CF910C9493 +:102D00000816CF3FD10511F461E0F6CFEFEFF3E203 +:102D1000E491E33029F140F4E130B1F0E230D9F050 +:102D2000C038D1058CF7E7CFE73021F1E83051F119 +:102D3000E430B1F780918000806280938000D0936E +:102D40008B00C0938A0004C084B5806884BDC7BD71 +:102D5000DF91CF91089584B5806284BDC8BDF8CF5E +:102D600080918000806880938000D0938900C09318 +:102D70008800EECF8091B00080688093B000C0934F +:102D8000B300E6CF8091B00080628093B000C09322 +:102D9000B400DECF3FB7F8948091E0029091E10259 +:102DA000A091E202B091E30226B5A89B05C02F3F97 +:102DB00019F00196A11DB11D3FBFBA2FA92F982F61 +:102DC0008827BC01CD01620F711D811D911D42E05C +:102DD000660F771F881F991F4A95D1F708958F9224 +:102DE0009F92AF92BF92CF92DF92EF92FF924B01F0 +:102DF0005C010E94CA166B017C010E94CA166C1904 +:102E00007D098E099F09683E734081059105A8F3ED +:102E100021E0821A9108A108B10888EEC80E83E06B +:102E2000D81EE11CF11C81149104A104B10429F7FE +:102E3000FF90EF90DF90CF90BF90AF909F908F90DA +:102E400008952FB7F8946091DC027091DD028091B3 +:102E5000DE029091DF022FBF089584E98093BC00C9 +:102E60008091BC0084FDFCCF08958093BB0084E872 +:102E70008093BC008091BC0087FFFCCF089584EA5A +:102E80008093BC008091BC0087FFFCCF88E70C9446 +:102E900035170E943F1780E48093BB0084E880933D +:102EA000BC00E6E1F3E09091BC0097FFFCCF91916C +:102EB0009093BB008093BC0097E0E631F90799F747 +:102EC0008091BC0087FFFCCF0C942D17CF93C82FA7 +:102ED0000E943F1780E00E9435178C2F0E94351703 +:102EE000CF910C942D17480F592F511D4138510582 +:102EF00014F040E850E0481BFB0177FD379633E0C3 +:102F0000F595E7953A95E1F7F695FE2FEE27F795BB +:102F1000E795E80FF91FEA5EFC4F6770772781E0BD +:102F200090E001C0880F6A95EAF7382F213041F40C +:102F3000415078F08191DF011197832B8C93F8CF6A +:102F40008095415030F09191DF01119798239C9327 +:102F5000F8CF0895CF92DF92EF92FF920F93CF9325 +:102F6000DF936C017B01C42FD22F202F0E94731797 +:102F7000B7016D0F711D61507109603471052CF43A +:102F8000202F4C2FC6010E947317202F4D2FB70101 +:102F9000C6010E942A13C6018C0F911D202F4D2FB0 +:102FA000B7010197DF91CF910F91FF90EF90DF90E4 +:102FB000CF900C942A132F923F924F925F926F9270 +:102FC0007F928F929F92AF92BF92CF92DF92EF92B9 +:102FD000FF920F931F93CF93DF93CDB7DEB72A975E +:102FE0000FB6F894DEBF0FBECDBF9A8389836A30D7 +:102FF00061F5DC0152968C91B8E08B9F9001112411 +:10300000E981FA8186859785820F931F9787868746 +:103010001586148681E090E02A960FB6F894DEBFFC +:103020000FBECDBFDF91CF911F910F91FF90EF9019 +:10303000DF90CF90BF90AF909F908F907F906F90D8 +:103040005F904F903F902F9008956D3019F3298134 +:103050003A813A872987D9011C96AD90BC90B0E897 +:10306000AB16B1040CF07BC0F901C684D784F0E440 +:10307000CF16D1040CF073C0D90152966C905297C0 +:1030800045E09501649E200D311D11241216130692 +:103090000CF065C0262C312C910153E0220F331F18 +:1030A0005A95E1F72C0D3D1D121613060CF057C072 +:1030B0005196BC91BB83E985FA85F089FC83649FB6 +:1030C000B00111249B012355334E3A832983712C7F +:1030D000E981FA818491F5E07F1201C080E0460128 +:1030E00038E0532E282F30E03E832D834C8080FF24 +:1030F0004B80411004C03B818C813817E1F010E017 +:1031000000E00615C0F4D501A00FB11FB887AF834A +:10311000F12CE12CE61460F4B701680D791D442D03 +:103120008F8198850E940C13BFEFEB1AFB0AF2CF38 +:103130000F5F1F4FE6CF8D819E81959587955A949D +:10314000820C931C5110CECF7394E981FA81319691 +:10315000FA83E983A20CB31CF6E07F12B9CFA985EC +:10316000BA8552962C915297422F50E01C968D9121 +:103170009C91B6E02B9F800D911D1124E985FA8565 +:10318000958784872389222309F444CF6AEF640357 +:103190009001659F300D112420583F4F28173907A3 +:1031A0000CF038CFDF010190F081E02D0190F0812B +:1031B000E02D6AE0CD0109952DCF0F931F93CF939A +:1031C000DF938C01D0E0C0E0F801EC0FFD1F6491AB +:1031D000662341F08BEF97E00E94DB17892B11F0FB +:1031E0002196F2CFCE01DF91CF911F910F910895DB +:1031F000682F8BEF97E00C94DB17089590E080E048 +:10320000089580917A00806980937A008EE480939B +:103210007C0061E070E080E090E00E94EF1683B7F0 +:10322000817F826083BF80E130E020E093B79160CE +:1032300093BF889593B79E7F93BF90917A0096FD38 +:10324000FCCF4091780050917900240F351F8150B8 +:1032500069F780917A008F7780937A0084E03695C1 +:1032600027958A95E1F750E040E064EB7BE281E14D +:1032700090E00E94D233C901089588EC80937C00CD +:1032800080917A00806880937A0065E070E080E049 +:1032900090E00E94EF1680917A00806480937A001B +:1032A00080917A0086FDFCCF609178007091790062 +:1032B0006A54714090E080E00E949D3226EF38E22F +:1032C0004CE95FE30E949A34089590917A009069E6 +:1032D00090937A008E50806480937C0083B7817FC6 +:1032E000826083BF20E290E080E033B7316033BF7B +:1032F000889533B73E7F33BF30917A0036FDFCCFDF +:103300004091780050917900840F951F215069F702 +:1033100020917A002F7720937A0025E09695879563 +:103320002A95E1F708958FE00E946519A091E702C0 +:10333000B091E8029C010E941E340E949F3228E551 +:1033400039E743E353E40E949A340E941335CB01DA +:1033500008952091F50230E0E1E7F2E090E080E0AE +:10336000AF01415752404217530724F44191840F53 +:10337000911DF6CF08958091EE02882369F086E0D2 +:103380000E94DF15892B41F06AE070E080E090E058 +:103390000E94EF161092EE0208950F931F93CF93A1 +:1033A00080914801882399F0CFEF0FEE11E061E0A2 +:1033B00085E00E940816C8010197F1F760E085E0FA +:1033C0000E940816C8010197F1F7C15081F7CF910B +:1033D0001F910F9108952F923F924F925F926F929B +:1033E0007F928F929F92AF92BF92CF92DF92EF9295 +:1033F000FF920F931F93CF93DF9310E000E0D0E094 +:10340000C0E03EE3E32EF12C40ECC42ED12CAA24E4 +:10341000A394B12C60E2662E712C70E4272E312C1F +:103420004C2E86E00E94DF1521E0892B09F020E078 +:103430002093EE02F092F402E092F302D092F202B4 +:10344000C092F102B092F002A092EF0282E890E006 +:10345000909300038093FF028091FF0290910003FC +:1034600095958795582E9FE1591243C0F092F4022A +:10347000E092F302D092F202C092F102B092F00216 +:10348000A092EF02EEEBF0E0F0930003E093FF0276 +:103490009FE5592E0E941E1482E080930D08109320 +:1034A000080800930708E0E3F0E0F0930A08E093CF +:1034B00009088EE50E94F818109208081092070873 +:1034C00070920A0860920908912C812C841438F5B6 +:1034D00080911503F40196E0989FE00DF11D1124F1 +:1034E000E05BFE4F80810E94F818EFEF8E1A9E0A73 +:1034F000EDCFF0E65F12CECFF092F402E092F3024D +:10350000D092F202C092F102B092F002A092EF02C9 +:10351000309200032092FF0280E2582EBBCF10931E +:1035200008080093070870920A0860920908852D20 +:103530000E94F8180E94BB190E94491786E00E9459 +:10354000DF15892B09F088CF8091EE02811184CF9D +:1035500080901503F6E08F9E40011124C401805B2A +:103560009E4F4C01FC01EC0FFD1F50820E94CD19B3 +:103570006AE070E080E090E00E94EF162196005F24 +:103580001F4FC530D10509F04BCFF4011582DF91F3 +:10359000CF911F910F91FF90EF90DF90CF90BF9050 +:1035A000AF909F908F907F906F905F904F903F90E3 +:1035B0002F9008953F924F925F926F927F928F92D9 +:1035C0009F92AF92BF92CF92DF92EF92FF920F93B2 +:1035D0001F93CF93DF93CDB7DEB72E970FB6F89436 +:1035E000DEBF0FBECDBF80911203882309F4A5C1B1 +:1035F0001092B3071092B4071092B5071092B60755 +:103600008090B3079090B407A090B507B090B6072C +:10361000C0900803D0900903E0900A03F0900B03D8 +:10362000A7019601C501B4010E942D342B013C0174 +:1036300020E030E0A9010E94423518160CF0A0C12C +:10364000C301B2010E94133580914901882309F416 +:10365000B8C1C092BB07D092BC07E092BD07F09200 +:10366000BE07E12CF12C00EA10E420E030E040E459 +:1036700050E46E31710540F0E12CF12C00E81FE3BD +:1036800020E030E040E05FE360E070E080E391E460 +:103690000E9430128091F907882309F42AC10E9400 +:1036A00021176D837E838F8398878091E1079091A6 +:1036B000E207A091E307B091E4074D815E816F813D +:1036C0007885481B590B6A0B7B0B8091ED07909115 +:1036D000EE07A091EF07B091F007481759076A0766 +:1036E0007B0708F406C1E091DB07F091DC078081DD +:1036F0009181A281B38189839A83AB83BC83E0915A +:10370000DF07F091E0079C01AD016081718182814A +:1037100093810E942D344B015C012091E907309187 +:10372000EA074091EB075091EC0769817A818B8120 +:103730009C810E942D346B017C012091CF07309138 +:10374000D0074091D1075091D207C501B4010E9422 +:10375000FE322091E5073091E6074091E70750914E +:10376000E8070E942E342B013C014092E50750925D +:10377000E6076092E7077092E8073090FA07311089 +:103780001AC02091CB073091CC074091CD075091C2 +:10379000CE07C701B6010E94FE329B01AC01C301F6 +:1037A000B2010E942D346093E5077093E607809381 +:1037B000E7079093E8074090E5075090E607609090 +:1037C000E7077090E8071091F5079091F6079E873C +:1037D000A091F707AD870091F807212F392F4A2FC5 +:1037E000502FC301B2010E94423518160CF0CCC014 +:1037F000812F9E85AD85B02F8093E5079093E607D6 +:10380000A093E707B093E807332009F4D6C02091CE +:10381000CB073091CC074091CD075091CE07C50121 +:10382000B4010E94FE324B015C012091D30730911C +:10383000D4074091D5075091D607C701B6010E9421 +:10384000FE329B01AC016091E5077091E607809123 +:10385000E7079091E8070E942D34A50194010E948A +:103860002E346B017C019B01AC01612F7E858D851F +:10387000902F0E94983287FD18C01091F107909107 +:10388000F2079E87A091F307AD870091F407212FDF +:10389000392F4A2F502FB601C7010E94983287FD59 +:1038A00004C01C2DDE86ED860F2DE091DD07F09122 +:1038B000DE07812F9E85AD85B02F80839183A28303 +:1038C000B38389819A81AB81BC818093E90790930E +:1038D000EA07A093EB07B093EC078D819E81AF813F +:1038E000B8858093E1079093E207A093E307B09334 +:1038F000E4076091B7077091B8078091B90790917C +:10390000BA070E940C35CB012E960FB6F894DEBF95 +:103910000FBECDBFDF91CF911F910F91FF90EF9020 +:10392000DF90CF90BF90AF909F908F907F906F90DF +:103930005F904F903F900C947216809111036091AC +:1039400044017091450181110EC080910603909150 +:10395000070320911003BC01222329F06091430149 +:10396000680F792F711D90E080E00E949D32609376 +:10397000B3077093B4078093B5079093B60740CE12 +:10398000C301B20190585ECE8091F1079091F20789 +:10399000A091F307B091F40789879A87AB87BC871A +:1039A0009C01AD01C301B2010E94983287FF2CCF68 +:1039B00089859A85AB85BC851FCF812C912C5401BC +:1039C00034CF20E030E040E05FE3C701B6010E9461 +:1039D0002E349B01AC01C501B4010E94423518167A +:1039E0004CF41092B7071092B8071092B9071092D2 +:1039F000BA077FCF80E090E0AFE7B3E48093B707EA +:103A00009093B807A093B907B093BA0772CF4F92BB +:103A10005F926F927F928F929F92AF92BF92CF925E +:103A2000DF92EF92FF92CF93DF938090E902909024 +:103A3000EA02A090EB02B090EC02C0911503D0E036 +:103A4000C501B4010E940C356B017C0120E030E01F +:103A500048E453E4C501B4010E94983293E0CC0FCE +:103A6000DD1F9A95E1F7CE5FDE4F87FF31C02881D9 +:103A7000398150E040E02551310941095109C70120 +:103A8000B6010E94D13628EC30E040E050E00E94C0 +:103A9000D233CA01B9016B5E7F4F8F4F9F4F0E9497 +:103AA0009F32609308037093090380930A039093F5 +:103AB0000B03DF91CF91FF90EF90DF90CF90BF90FD +:103AC000AF909F908F907F906F905F904F900895F0 +:103AD0004A805B80712C612C20E030E04CE853E49C +:103AE000C501B4010E94983287FF1FC08880998069 +:103AF000B12CA12CA7019601285C3109410951097B +:103B0000C301B201681979098A099B090E94D1365B +:103B100020E530E040E050E00E94D233CA01B90114 +:103B2000680D791D8A1D9B1DBACF2C813D8150E007 +:103B300040E02419350946095709C701B601685103 +:103B40007140810991090E94D13620E530E040E0C2 +:103B500050E00E94D233CA01B901640D751D861D63 +:103B6000971D9DCFFC0101900020E9F73197AF012F +:103B7000481B590BBC018BEF97E00C94A9148F9252 +:103B80009F92AF92BF920F931F93CF93DF93CDB7C6 +:103B9000DEB7A1970FB6F894DEBF0FBECDBF19A256 +:103BA000423008F44AE08E010F5D1F4F842E912CA5 +:103BB000B12CA12CA50194010E94FC33E62FB90180 +:103BC000CA01EA30F4F4E05DD801EE938D01232BB5 +:103BD000242B252B79F790E080E0109719F0CD0188 +:103BE0000E94B21DA1960FB6F894DEBF0FBECDBFE6 +:103BF000DF91CF911F910F91BF90AF909F908F90C9 +:103C00000895E95CE1CFCF92DF92EF92FF92CF93DC +:103C1000DF9397FF19C06B017C018DE20E94F818B9 +:103C2000EC0166277727CB016C197D098E099F0966 +:103C30004AE00E94BF1D8C0F9D1FDF91CF91FF9026 +:103C4000EF90DF90CF9008954AE0DF91CF91FF9001 +:103C5000EF90DF90CF900C94BF1D4F925F926F92C8 +:103C60007F928F929F92AF92BF92CF92DF92EF920C +:103C7000FF920F931F93CF936B017C01742EAC01C5 +:103C80009B010E949735882399F086EB92E0CF91B3 +:103C90001F910F91FF90EF90DF90CF90BF90AF906A +:103CA0009F908F907F906F905F904F900C94B21D7B +:103CB00046015701E894B7F82FEF3FEF4FE75FE772 +:103CC000C501B4010E94973581110DC02FEF3FEF60 +:103CD0004FE75FE7C501B4010E94983218161CF443 +:103CE0008AEB92E0D4CF2FEF3FEF4FE75FE4C701BD +:103CF000B6010E94423518161CF48EEB92E0C7CF35 +:103D00002FEF3FEF4FE75FECC701B6010E949832FB +:103D100087FDF3CF20E030E0A901C701B6010E9482 +:103D2000983210E000E087FF08C08DE20E94F8188A +:103D30008C01F7FAF094F7F8F094C0E060E070E0DE +:103D400080E09FE37C1641F020E030E040E251E467 +:103D50000E949A34CF5FF6CFA70196010E942E34BD +:103D60002B013C010E9413354B015C014AE00E948B +:103D7000BF1D7C01E00EF11ECC23B1F1C501B401E1 +:103D80000E949D329B01AC01C301B2010E942D34FF +:103D90004B015C018EE20E94F818E80EF91EC1503A +:103DA00018F120E030E040E251E4C501B4010E9486 +:103DB000FE322B013C010E9413354B01B12CA12C8A +:103DC0004AE0C501B4010E94BF1DE80EF91EC501FD +:103DD000B4010E949D329B01AC01C301B2010E945B +:103DE0002D344B015C01DBCFC701CF911F910F91A7 +:103DF000FF90EF90DF90CF90BF90AF909F908F900B +:103E00007F906F905F904F900895CF92DF92EF92E6 +:103E1000FF920F931F93CF93DF93C82F81E0DC2F86 +:103E2000D827D0930C08C0930B0880930D080C2F53 +:103E30002EE046E661E370E081E090E00E94AA1780 +:103E40002091130330911403253F81E03807B8F423 +:103E5000A4E6B0E00E941E3424EF31E040E050E0E0 +:103E60000E94D233BA01A9014E5F5F4F6F4F7F4F5F +:103E70002EE061E370E081E090E00E9453136091D6 +:103E8000B3077091B4078091B5079091B6070E946F +:103E90000C359B01AC01A4E6B0E00E94F13334EF95 +:103EA000C32EDD24D394E12CF12CA70196010E94AE +:103EB000D233DA01C9010296A11DB11D02970C2F60 +:103EC0002DE043E062E370E00E9453136091B3077A +:103ED0007091B4078091B5079091B6070E940C3598 +:103EE0009B01AC01A4E6B0E00E94F133A70196016A +:103EF0000E94D233DA01C9010296A11DB11D0397B8 +:103F000024E045E06CE370E00E9453136091B30736 +:103F10007091B4078091B5079091B6070E940C3557 +:103F20009B01AC01A4E6B0E00E94F133A701960129 +:103F30000E94D23389019A010E5F1F4F2F4F3F4FCE +:103F40000150110941E3E42EF12C4D2FB701C801B6 +:103F50000E940C138FEFE81AF80A8DE3E816F104BB +:103F6000A1F76091B3077091B4078091B507909164 +:103F7000B6070E940C359B01AC01A4E6B0E00E949C +:103F8000F13324EF31E040E050E00E94D233DA0117 +:103F9000C9010296A11DB11D0397ED2E04E025E095 +:103FA00040EF51E16BE370E00E9475130C2F2EE09F +:103FB00047E161E370E088E690E00E94AA17609113 +:103FC000B7077091B8078091B9079091BA070E941E +:103FD0000C359B01AC012F5F310941095109A7E163 +:103FE000B0E00E94F133CC24C394DD24DA94ED2CAC +:103FF000FD2CA70196010E94D233422F2EE061E3EF +:1040000070E088E690E00E945313C0930C08D093B0 +:104010000B0882E090E0909308088093070807E37C +:1040200010E010930A08009309086091B30770919B +:10403000B4078091B5079091B60740E00E942D1E0D +:1040400088EF0E94F8188EEE91E10E94DD1889E653 +:1040500090E0909308088093070810930A08009353 +:1040600009086091B7077091B8078091B9079091DE +:10407000BA070E940C359B01AC012F5F3109410941 +:104080005109A4E6B0E00E94F133A70196010E9415 +:10409000D233CA01B9010E94031E8CEE91E10E9445 +:1040A000DD18D0930C08C0930B08DF91CF911F91BE +:1040B0000F91FF90EF90DF90CF9008956F927F92D5 +:1040C0008F929F92AF92BF92CF92DF92EF92FF9228 +:1040D0000F931F93CF93DF93B090150377247394BE +:1040E000B11001C0712C809142018150990B109246 +:1040F000F4021092F302880F991F9093F2028093BA +:10410000F10281E090E09093F0028093EF028B2D1A +:1041100090E0880F991F909300038093FF0286E040 +:104120000E94DF1521E0892B09F020E02093EE02A8 +:10413000FF24F39472E0972EE6E08E2EFCE0CF2E63 +:10414000D12C0E941E14C091FF02D0910003D5957E +:10415000C795EC2E8E011127C801870D911D77FCA4 +:104160009A958B199109712C97FD06C083309105A2 +:1041700014F082E090E0782EF0920C0810920B0878 +:1041800090920D08109208081092070810920A08E1 +:104190001092090882EA9CE10E94DD1810920C0836 +:1041A000F0920B081092080810920708A72C072C11 +:1041B000000CBB08C501019654E0880F991F5A9561 +:1041C000E1F790930A088093090880EA9CE10E9435 +:1041D000DD186C2E671890E080E098012A193B09E1 +:1041E0005901209142018C010F5F1F4F6216D0F4DC +:1041F000D0920808C0920708980144E0220F331FAC +:104200004A95E1F730930A08209309088A0D9B1D0F +:10421000889E9001899E300D1124C901805B9E4FBC +:104220000E94B21DC801639403301105D1F60E94AB +:10423000BB190E94491786E00E94DF15892BB9F44B +:104240008091EE02811113C00E94CD19E0921503F6 +:10425000DF91CF911F910F91FF90EF90DF90CF9062 +:10426000BF90AF909F908F907F906F900895BC2EDD +:1042700068CF0E940F371F93CF93DF93EC01162F67 +:104280000E94BC33181739F0612FCE01DF91CF9116 +:104290001F910C94C433DF91CF911F910895AF9279 +:1042A000BF92CF92DF92EF92FF920F931F93CF9323 +:1042B000DF936091470182E090E00E943B21609192 +:1042C000460183E090E00E943B216091450184E03B +:1042D00090E00E943B216091440185E090E00E94C3 +:1042E0003B216091430186E090E00E943B21609178 +:1042F0004C0187E090E00E943B2160914B0188E0F7 +:1043000090E00E943B2160914A0189E090E00E9488 +:104310003B21609180018AE090E00E943B21609106 +:1043200049018BE090E00E943B21609148018CE0C4 +:1043300090E00E943B21609115038DE090E00E9487 +:104340003B21609142018EE090E00E943B21609110 +:104350004E018FE090E00E943B216091ED0280E1F0 +:1043600090E00E943B2160910D0381E190E00E946A +:104370003B2182E1E82EF12C10E006E08091420121 +:104380001817B8F5109F60011124D0E0C0E0FE01BD +:10439000EC0DFD1DE05BFE4F6081C7018C0F9D1F82 +:1043A0000E943B212196C630D10589F7670186E03E +:1043B000C80ED11C88E0189FE0011124CE5FDE4FAB +:1043C0008EE0E80EF11C69812296C6010E943B2115 +:1043D000560182E0A80EB11CFE0132976081C60131 +:1043E00001960E943B216501AE14BF0461F71F5F77 +:1043F000C5CFDF91CF911F910F91FF90EF90DF908C +:10440000CF90BF90AF9008958F929F92AF92BF923E +:10441000CF92DF92EF92FF92CF938FEF90E00E94C6 +:1044200072168BEA94E00197F1F78EE00E9465190D +:104430007C018AE00E94DF159091C602981729F04E +:1044400091E090930C038093C602809101019FEF4D +:10445000980F90930101811106C00E9493199093C7 +:104460000F0380930E036091B7077091B807809196 +:10447000B9079091BA070E940C35CB010E947216C1 +:104480008090E9029090EA02A090EB02B090EC02DA +:10449000B70190E080E00E949D32A50194010E9446 +:1044A0002D342DEC3CEC4CE45DE30E94FE32A50182 +:1044B00094010E942E346093E9027093EA02809383 +:1044C000EB029093EC020E94071D60911303709120 +:1044D000140390E080E00E949D326B017C012091EA +:1044E000B3073091B4074091B5075091B6070E94C9 +:1044F00098328111B5C02091080330910903409191 +:104500000A0350910B03C701B6010E942D346B01C1 +:104510007C0120E030E0A9010E94423518160CF021 +:1045200095C020E030E040EA50E4C701B6010E94A7 +:10453000423518160CF494C060910603709107037D +:1045400090E080E00E949D322091080330910903A1 +:1045500040910A0350910B030E942D346B017C01A2 +:1045600020E030E0A9010E94423518160CF087C007 +:10457000C701B6010E9413356530710508F083C08C +:1045800080914F01811105C080914D0181110E94E0 +:10459000CD1981E080934F0110924D01809113035A +:1045A00090911403853F21E0920710F010920001D2 +:1045B00020910001211140C0843F9140E8F58FEF28 +:1045C00090E00E9472160E94CD19C1E0C0930001D4 +:1045D0000E945E200E944F21C0930C038EE00E9437 +:1045E0006519BC0190E080E00E949D326093E90271 +:1045F0007093EA028093EB029093EC021092FE0219 +:1046000080910603909107032CE231E03093F4028D +:104610002093F30220E233E03093F2022093F10280 +:104620002AE030E03093F0022093EF02880F991FC8 +:10463000909300038093FF02CF91FF90EF90DF9063 +:10464000CF90BF90AF909F908F90089520E030E082 +:1046500040EA50ECC701B6010E94983287FF6CCF48 +:10466000609108037091090380910A0390910B03F4 +:104670000E94133570931403609313035DCFC70139 +:10468000B601905877CF10924F0188CF0C94BC336D +:104690002F923F924F925F926F927F928F929F9252 +:1046A000AF92BF92CF92DF92EF92FF920F931F9340 +:1046B000CF93DF938C0186E080930D0881E0809397 +:1046C0000C0810920B086091D9027091DA02072E43 +:1046D000000C880B990B0E949F322B013C0143ED8B +:1046E000C42E42E0D42E7601C2E0D0E05AE0A52EDE +:1046F000B12CBE010D2E000C880B990B0E949F322D +:104700009B01AC0160E070E080E291E40E944735DB +:104710009B01AC01C301B2010E949A340E940C3586 +:10472000CB01B5010E94E136F701819391937F019E +:104730002197F8F61093DA020093D902C7ECD2E081 +:1047400094E0E92EF12C22E0822E912C3AE0232EE7 +:10475000312CB401092C000C880B990B0E949F325C +:104760009B01AC0160E070E080E291E40E9447357B +:104770002B013C016091D9027091DA02072E000CE6 +:10478000880B990B0E949F32A30192010E949A34D8 +:104790000E940C35CB01B1010E94E136F601208167 +:1047A0003181821B930BF2E3F89FB001F99F700DEA +:1047B0001124072E000C880B990B0E949F32288130 +:1047C00039814A815B810E942E342B013C0120E01B +:1047D00030E0A9010E94983281117CC04882598240 +:1047E0006A827B8201E022E346E270E060E0C7017A +:1047F00004970E9453138EECA82EBB24BA940FEF9B +:104800001FEF288139814A815B8160E070E080E898 +:1048100090E40E942D342B013C01B5010B2C000CBF +:10482000880B990B0E949F329B01AC01C301B2011E +:104830000E942E340E940C35F0920808E09207087E +:1048400070930A0860930908F60160817181600F16 +:10485000711F072E000C880B990B0E94031E0F5F1F +:104860001F4FF2E3AF0EB11C0230110551F6249632 +:1048700021E0821A910882E0C80ED11CECE2EE0E13 +:10488000F11CF8E8EF16F10409F063CF00E022E034 +:1048900040E870E060E090E080E00E9453132DE07B +:1048A00040E863E370E090E080E00E945313DF9102 +:1048B000CF911F910F91FF90EF90DF90CF90BF901D +:1048C000AF909F908F907F906F905F904F903F90B0 +:1048D0002F900895C301B20190582DEC3CEC4CE4AC +:1048E0005FE30E94FE32A30192010E942E3468838E +:1048F00079838A839B8376CF86E00E94DF1521E04F +:10490000892B09F020E02093EE020E941E14809172 +:10491000FF0290910003959587950E9448230E947D +:1049200049170E94BB1986E00E94DF15892B69F7A1 +:104930008091EE028111E9CF0E94CD198091D902B8 +:104940009091DA0208952F923F924F925F926F9268 +:104950007F928F929F92AF92BF92CF92DF92EF920F +:10496000FF920F931F93CF93DF93CDB7DEB7659779 +:104970000FB6F894DEBF0FBECDBF182FE091F50241 +:10498000F0E0EF58FD4F80818150990B1092F402B6 +:104990001092F302880F991F9093F2028093F10214 +:1049A00081E090E09093F0028093EF02812F90E0FD +:1049B000880F991F909300038093FF0286E00E9466 +:1049C000DF1521E0892B09F020E02093EE02109200 +:1049D0000C0881E080930B088091FF029091000306 +:1049E0009C01359527953D872C873C853D8B6C84B4 +:1049F0007D8477249301211B310948E3429FC00144 +:104A0000439F900D1124280E391E2114310409F101 +:104A10006627772762197309072E000C880B990BFC +:104A20000E949F322AE939E949E15FE30E94FE32A0 +:104A30004B015C01B101330C880B990B0E949F3232 +:104A40009B01AC01C501B4010E942E340E940C35BB +:104A50001B010E941E14430182E0881A9108610123 +:104A600098E4C91AD108F3013396FC8BEB8B97FCC1 +:104A70008AC0E091F502F0E0EF58FD4F8081881583 +:104A8000190409F00CF47FC001E020E340E370E07A +:104A900060E0C6010E94531396012D5F3F4F3A8B91 +:104AA000298B00E02AE24AE263E070E089899A8972 +:104AB0000E94531370E060E0C6010E94F71370E09B +:104AC00060E08601015D1F4FC8010E94F7136FE28D +:104AD00070E0C6010E94F7136FE270E0C8010E9407 +:104AE000F7130E94A919F401E80FF11DEE0FFF1F43 +:104AF000EF5DFD4F80819181988B8F8773E0E72E6A +:104B0000F12C512C412CB12CA12CF50153E0F59541 +:104B1000E7955A95E1F7E40DF51D2F853889E20FE9 +:104B2000F31FE491C5018770992720E830E002C0A7 +:104B3000359527958A95E2F7C901F0E0E223F9233C +:104B4000EF2B79F0C501880F991F8A0D9B1D01E09D +:104B500023E043E0B701E989FA898E0F9F1F0E9485 +:104B60005313FFEFAF1ABF0A2EE0A216B10469F685 +:104B700032E0430E511C43E0E40EF11C8DE2E816D6 +:104B8000F10409F0C0CF9FEF891A990AE8E3CE0E2D +:104B9000D11C2B893C898216930609F068CF80913D +:104BA0004E01811140C00E94A919F301E80FF11DC7 +:104BB000EE0FFF1FEF52FE4F40815181EE24E39430 +:104BC00000E124E260E370E080E390E00E9475136E +:104BD0000E9449170E94BB1986E00E94DF15892BAD +:104BE00001F58091EE0281111CC00E94CD198D89C2 +:104BF00065960FB6F894DEBF0FBECDBFDF91CF91A3 +:104C00001F910F91FF90EF90DF90CF90BF90AF90EA +:104C10009F908F907F906F905F904F903F902F90DC +:104C200008951C85D9CE823009F083C00E94A9194D +:104C3000860D972D911DFC01E858F34EE490880FE6 +:104C4000991FFC01EF57FE4F80809180D12CC12C21 +:104C500004E310E3CE1408F0BBCFF401EC0DFD1D0E +:104C6000449180E1840F833008F45EC03E85313F7B +:104C7000E9F0323FD1F1403F08F058C0193710F049 +:104C8000085F10E088E0489FA001112448555B4E62 +:104C9000602F70E028E0812F90E00E943114185FAF +:104CA00090EF9E873FEFC31AD30AD4CF4E39D0F787 +:104CB0001D3710F0085F10E0A02EB12C612E712C72 +:104CC000E3E04E9FA001112442535D4E23E0B50165 +:104CD000C3010E94311421E04DEC52E1B501C30142 +:104CE00003960E9431141C5FDDCF4F31D8F619377F +:104CF00010F0085F10E0A02EB12C612E712CF7E0AF +:104D00004F9FA00111244C505E4E27E0B501C30116 +:104D10000E94311421E04DEC52E1B501C301079628 +:104D20000E943114185FBECF4E87BCCF20EF2E8774 +:104D3000B9CF80E390E09093080880930708E1E3FF +:104D4000F0E0F0930A08E093090881E080930D08F1 +:104D50000E94A919FC858F0FE82FF0E0EE0FFF1FCE +:104D6000E85DF34E65917491CE0101960E949132F7 +:104D7000CE0101960E94B21D2BCF1F920F920FB64B +:104D80000F9211242F933F934F935F936F937F93D1 +:104D90008F939F93AF93BF93EF93FF9386E197E039 +:104DA0000E942715FF91EF91BF91AF919F918F9135 +:104DB0007F916F915F914F913F912F910F900FBE17 +:104DC0000F901F9018951F920F920FB60F921124FB +:104DD0002F938F939F93EF93FF93E0912607F0918A +:104DE00027078081E0912C07F0912D0782FD1BC0E1 +:104DF000908180912F078F5F8F73209130078217EA +:104E000041F0E0912F07F0E0EA5EF84F958F809334 +:104E10002F07FF91EF919F918F912F910F900FBED0 +:104E20000F901F9018958081F4CF1F920F920FB6AC +:104E30000F9211242F933F938F939F93AF93BF9320 +:104E40008091DC029091DD02A091DE02B091DF0240 +:104E50003091DB0223E0230F2D3758F50196A11D79 +:104E6000B11D2093DB028093DC029093DD02A093BE +:104E7000DE02B093DF028091E0029091E102A09106 +:104E8000E202B091E3020196A11DB11D8093E00200 +:104E90009093E102A093E202B093E302BF91AF913D +:104EA0009F918F913F912F910F900FBE0F901F9068 +:104EB000189526E8230F0296A11DB11DD2CF1F928F +:104EC0000F920FB60F9211242F933F934F935F933E +:104ED0006F937F938F939F93EF93FF9383B1817031 +:104EE00029B19091E602981709F49DC030E0220F95 +:104EF000232F221F330B922F8093E6024091E5026D +:104F0000241709F490C02093E5022091EF0230911C +:104F1000F002981719F03195219531094091FF025F +:104F2000509100036091F3027091F402240F351F39 +:104F3000261737070CF48BC02091EF023091F00256 +:104F4000981719F03195219531094091FF02509140 +:104F500000036091F1027091F202240F351F621775 +:104F600073070CF46FC04091EF025091F002981754 +:104F700019F05195419551092091FF02309100039C +:104F8000240F351F309300032093FF0241E0981354 +:104F900040E02091E402421709F440C02091EF0262 +:104FA0003091F002981719F03195219531096091EF +:104FB000FF0270910003E091F302F091F402260FDA +:104FC000371F2E173F070CF44CC02091EF02309191 +:104FD000F002981719F03195219531096091FF027F +:104FE00070910003E091F102F091F202260F371F59 +:104FF000E217F3078CF12091EF023091F00298173D +:1050000019F03195219531098091FF0290910003AB +:10501000820F931F909300038093FF024093E4025A +:1050200081E080930C03FF91EF919F918F917F918D +:105030006F915F914F913F912F910F900FBE0F9005 +:105040001F9018952091F1023091F2029BCF209190 +:10505000F3023091F40296CF8091F1029091F20226 +:10506000D9CF8091F3029091F402D4CF18950F9389 +:105070001F93CF93DF93E6E1F7E01382128288EE6D +:1050800093E0A0E0B0E084839583A683B7838CE9A6 +:1050900092E09183808385EC90E09587848784EC0F +:1050A00090E09787868780EC90E0918B808B81ECF5 +:1050B00090E0938B828B82EC90E0958B848B86ECD6 +:1050C00090E0978B868B118E128E138E148EEBEFE1 +:1050D000F7E0138212821682178280E180871582A0 +:1050E000148212868EEA92E091838083158614865C +:1050F0001786168681E0808B118A828B138ACFEB0C +:10510000D7E027EB37E03F8F2E8F2BEB37E03D8F3B +:105110002C8F23EB37E039A328A31AAE1AAA1BAAB7 +:105120001CAA1DAA40E050E06FE773E44EAB5FABF2 +:1051300068AF79AF44E650E060E070E04EA75FA74B +:1051400068AB79AB21E030E0398F288F3B8F2A8F15 +:105150008BAF80E090E0A0E3B1E488839983AA83D9 +:10516000BB8380E090E0A0E0BFE38C839D83AE83AF +:10517000BF8380E090E0A0E8BFE388879987AA8793 +:10518000BB8780E090E0A0E3B1EC8C879D87AE8781 +:10519000BF878DEC9CECACE4BDEB888B998BAA8B24 +:1051A000BB8B80E090E0A0E2B1EC8C8B9D8BAE8B52 +:1051B000BF8B0E9421170EA51FA528A939A9601B26 +:1051C000710B820B930B6AA37BA38CA39DA3DF912E +:1051D000CF911F910F910895CF93DF93CDB7DEB795 +:1051E0002A970FB6F894DEBF0FBECDBF789484B572 +:1051F000826084BD84B5816084BD85B5826085BDD3 +:1052000085B5816085BD80916E00816080936E0060 +:105210001092810080918100826080938100809152 +:105220008100816080938100809180008160809303 +:1052300080008091B10084608093B1008091B000C3 +:1052400081608093B00080917A00846080937A00BE +:1052500080917A00826080937A0080917A008160E8 +:1052600080937A0080917A00806880937A0010920F +:10527000C1001092B90088E48093B8000E943F17E3 +:1052800080E00E94351703EF11E282E1E82E82E20E +:10529000F82EF80184910E9435170F5F1F4FE0161A +:1052A000F106B9F70E942D1711E01093B8000E9483 +:1052B000491781E28093030860E08EE00E94361671 +:1052C00060E08FE00E94361661E085E00E943616AD +:1052D00061E089E00E94361662E087E00E9436169F +:1052E00062E088E00E94361662E086E00E94361690 +:1052F00062E08AE00E9436168FEF90E00E947216FC +:1053000060E085E00E94081680917A0087608093B3 +:105310007A0080917A00886080937A007894109364 +:105320006B00109368001BBB90E080E00E94462356 +:10533000182F81E090E00E944623912F8F3F9840E4 +:1053400009F0BBC082E090E00E944623182F83E062 +:1053500090E00E944623912F90934701809346014D +:1053600084E090E00E944623182F85E090E00E94A0 +:105370004623912F909345018093440186E090E06D +:105380000E9446238093430187E090E00E944623D9 +:1053900080934C0188E090E00E94462380934B016B +:1053A00089E090E00E94462380934A018AE090E0E1 +:1053B0000E944623809380018BE090E00E94462368 +:1053C00091E0811101C090E0909349018CE090E060 +:1053D0000E94462391E0811101C090E09093480122 +:1053E0008DE090E00E944623809315038EE090E0CC +:1053F0000E944623282E809342018FE090E00E9475 +:10540000462380934E0180E190E00E94462391E084 +:10541000811101C090E09093ED0281E190E00E9443 +:10542000462380930D03A2E08A2EA1E09A2EB0E5D8 +:10543000AB2EB1E0BB2E12E1E12EF12C312C231466 +:1054400009F447C010E000E0C701800F911F0E94DF +:105450004623F501E00FF11F80830F5F1F4F0630D9 +:10546000110591F7670126E0C20ED11C3EE0E30E64 +:10547000F11C3401C6010E944623082F10E0102FB2 +:105480000027F301118300832601F2E04F0E511C27 +:10549000C60101960E944623082BF3010193119344 +:1054A0003F0162014E145F0429F73394F8E08F0E38 +:1054B000911C26E0A20EB11CC2CF68E090E080E013 +:1054C0000E943B216FEF81E090E00E943B210E940F +:1054D0004F211091ED0280EC111101C088EC0E9467 +:1054E000661780EA111101C081EA0E9466170E94C6 +:1054F00001199093E8028093E7020E949319909318 +:105500000F0380930E030091460110914701109301 +:105510000703009306038EE00E946519BC0190E02A +:1055200080E00E949D326093E9027093EA028093CA +:10553000EB029093EC020E943D190E94071D20E0AF +:1055400030E040EA51E460910803709109038091D2 +:105550000A0390910B030E942E346B017C01B80169 +:1055600090E080E00E949D329B01AC01C701B60132 +:105570000E94983287FF04C090E080E00E9472167B +:105580001092F1071092F2071092F3071092F407AD +:10559000412C512CEFE76E2EE3E47E2E4092F5076E +:1055A0005092F6076092F7077092F807A090DD0717 +:1055B000B090DE078091F907F501C080D180E280CC +:1055C000F380882309F481C7A3019201C701B601C2 +:1055D0000E944235181634F5F501408251826282EC +:1055E00073828090E5079090E607A090E707B0905F +:1055F000E807C090F507D090F607E090F707F09025 +:10560000F807A7019601C501B4010E94423518169A +:10561000C4F4C092E507D092E607E092E707F09263 +:10562000E8071FC020E030E0A901C701B6010E94D1 +:10563000983287FFD6CFF501108211821282138231 +:10564000D0CFC090F107D090F207E090F307F09030 +:10565000F407A7019601C501B4010E94983287FDA5 +:10566000D8CF81E08093F90783B181708093E602FF +:1056700089B190E0880F892F881F990B8093E502EC +:105680002091E6029091E50281E0291380E0809369 +:10569000E4028CE291E09093F4028093F30280E2C2 +:1056A00093E09093F2028093F1028AE090E090936D +:1056B000F0028093EF02000F111F1093000300937C +:1056C000FF020E94211760930203709303038093EB +:1056D0000403909305030E94CD190E94CD192090D8 +:1056E000FF02309000039101359527953A8729876D +:1056F000309307032093060386E00E94DF15482EAF +:1057000081119FC08091FE02882309F49AC00E94F3 +:10571000CD190E9421176B017C01C092FA02D09230 +:10572000FB02E092FC02F092FD0286E00E94DF158F +:10573000892B59F40E9421176C197D098E099F0944 +:10574000643F71408105910580F30E9421176C1917 +:105750007D098E099F09643F71408105910508F418 +:105760005CC48FEF90E00E9472160E94CD19512CFC +:105770004AE0642E712C1092F502852D0E94A3241C +:10578000582EF8E0F81708F439C0E82FF0E0E55398 +:10579000F44D0C94F536E62B8E2E052F6D2F7B2FB6 +:1057A000B52FC32FE32FED2F20E030E0A901C70173 +:1057B000B6010E94983287FF54CF1092E5071092ED +:1057C000E6071092E7071092E8074BCF3EE1632E01 +:1057D000712C81E08093F502852D0E94A324582E20 +:1057E00022E0821709F434C2281708F4E8C088239D +:1057F00009F410C131E0831709F40FC10E944F2151 +:1058000081E080930C0329853A8530930703209328 +:1058100006038CE291E09093F4028093F30280E21D +:1058200093E09093F2028093F1028AE090E09093EB +:10583000F0028093EF02C1018E7F9093000380936A +:10584000FF024092FE0280911003882309F110911B +:105850004A011123E9F00E942117C090F602D0906E +:10586000F702E090F802F090F9026C197D098E09B8 +:105870009F0928EE33E040E050E00E94FC332117FE +:1058800038F0109210030E94CD1981E080934D01F1 +:1058900080910C038823E9F180911103882349F159 +:1058A00020E030E040EA51E4609108037091090380 +:1058B00080910A0390910B030E942E346B017C01AE +:1058C000609106037091070390E080E00E949D3292 +:1058D0009B01AC01C701B6010E94983287FF04C04A +:1058E00090E080E00E9472160E94CD1981E08093C2 +:1058F0004D0110920C0310921103109212030E949A +:105900002117609302037093030380930403909321 +:1059100005030E94211700910203109103032091B7 +:10592000040330910503601B710B820B930B20E67F +:105930003AEE40E050E00E94FC33122F2093010326 +:105940008091110381110BC080914C01882339F0A3 +:10595000281728F081E0809311030E94CD198091CF +:10596000120381110BC080914B01882339F0181765 +:1059700028F081E0809312030E94CD190E94042236 +:105980000E94DA1A0E94211780910408362F381BD2 +:10599000832F90910508992309F455C33093060885 +:1059A0001092050880E090E0892B09F498CE0E94BF +:1059B0001315882309F493CE0E94000090CE83E053 +:1059C000581609F448C194E0591218CF8091420149 +:1059D000883008F0FECE91E0980F909342018093BA +:1059E00015030E94EB19E091150328E0E29FF001F6 +:1059F0001124EE5FFE4F88ED90E09183808324E3D5 +:105A000031E03383228386E891E095838483778233 +:105A10006682DFCE0E945E20DCCE8E010F5F1F4FBC +:105A2000812C912C5401839498EEE92E93E0F92E69 +:105A3000CC24C394D12CE091150324E0E29FF00123 +:105A40001124C4010197E80FF91FEE0FFF1FEE5F4D +:105A5000FE4F808191819093070380930603E8ECC9 +:105A6000F0E0F093F402E093F302F092F202E0929D +:105A7000F102D092F002C092EF02880F991F90932A +:105A800000038093FF02F1E0F0934D0186E00E9455 +:105A9000DF1521E0892B09F020E02093EE020E941F +:105AA0001E1422E020930D080E9404220E94DA1A9C +:105AB000109208081092070810920A08109209081C +:105AC00088E392E20E94DD18C501B4010E94031E22 +:105AD00082EC92E00E94B21D80914F011092080862 +:105AE00010920708882309F48BC080E190E090931E +:105AF0000A08809309088BE292E20E94DD18109256 +:105B0000080810920708E0E2F0E0F0930A08E0933A +:105B1000090884E292E20E94DD186091FF02709110 +:105B2000000375956795072E000C880B990B0E9452 +:105B3000031E0E94BB190E94491786E00E94DF15D0 +:105B4000892B09F0ACCF8091EE028111A8CF809112 +:105B5000FF029091000395958795F80181939193A9 +:105B60008F010E94CD196AE070E080E090E00E9411 +:105B7000EF16FFEF8F1A9F0AAF0ABF0A24E08216C2 +:105B80009104A104B10409F056CF8FEF90E00E9478 +:105B900072168BEA94E00197F1F70E943D190E947A +:105BA00013354B0178876F83C980DA800B811C81A4 +:105BB000C6014E968017910708F00BCEED80FE804F +:105BC000C8014E968E159F0508F003CE87E080939E +:105BD000F50280E00E94A324882309F4FACDE09125 +:105BE000150338E0E39FF0011124EE5FFE4FD182F0 +:105BF000C08213830283F582E48297828682E9CD94 +:105C000020E130E030930A08209309088EE192E207 +:105C10000E94DD186091E9027091EA028091EB0226 +:105C20009091EC020E94133590E080E04AE00E94DF +:105C3000BF1D109208081092070880E290E0909330 +:105C40000A088093090882E192E20E94DD1871CF70 +:105C50000E94EB19BECD87E08093F502809142014E +:105C6000813009F4B6CD80E00E94A324882309F492 +:105C7000B0CD1091150300914201802F8150990BF6 +:105C8000BC011817190639F411501093150301506F +:105C9000009342019ECD812F90E086179707BCF7B5 +:105CA000E6E01E9FD001112450E040E09C012F5FF0 +:105CB0003F4FFA01EA0FFB1FE05BFE4FF680F082D8 +:105CC0004F5F5F4F46305105A1F7B3E0220F331FFE +:105CD000BA95E1F7F901EE5FFE4F2081318143E093 +:105CE000880F991F4A95E1F7DC01AE5FBE4F119610 +:105CF0003C932E938281938113969C938E9312975B +:105D00008481958115969C938E93149786819781B3 +:105D100017969C938E9316971F5FBDCF82E080935A +:105D2000F50210E078E2C72ED12CECE2AE2EBB24B7 +:105D3000B394F0E28F2EF3E09F2EA4E1EA2EF12C33 +:105D4000812F0E94A324182F813021F130F082305E +:105D500009F43FC00E944F210ECD809146019091E1 +:105D60004701B092F402A092F3029092F202809264 +:105D7000F1027092F0026092EF02880F991F9093E7 +:105D800000038093FF020E947C249093470180933C +:105D90004601D6CF8091440190914501D092F40202 +:105DA000C092F302E0E9F1E0F093F202E093F10235 +:105DB0007092F0026092EF02880F991F9093000397 +:105DC0008093FF020E947C249093450180934401BC +:105DD000B7CF8091430190E0F092F402E092F30299 +:105DE00028EC30E03093F2022093F1027092F0023E +:105DF0006092EF02880F991F909300038093FF0237 +:105E00000E947C24809343019BCF83E08093F50222 +:105E1000F12C01E010E08F2D0E94A324F82E31E038 +:105E20008317E9F18317F8F082E0F81293CF80919D +:105E30004A0190E01092F4021092F30228E631E059 +:105E40003093F2022093F1027092F0026092EF021E +:105E5000880F991F909300038093FF020E947C2477 +:105E600080934A01D8CF80914C0190E01092F402C7 +:105E70001092F302ECE3F0E0F093F202E093F1020F +:105E80001093F0020093EF02880F991F9093000384 +:105E90008093FF020E947C2480934C01BCCF8091B0 +:105EA0004B0190E01092F4021092F30228E730E0E8 +:105EB0003093F2022093F102E5E0F0E0F093F0027B +:105EC000E093EF02880F991F909300038093FF02E5 +:105ED0000E947C2480934B019ECF84E08093F50246 +:105EE000809149010E94A32491E0811101C090E0BA +:105EF0009093490140CC10E0EAE0EE2EF5E0DF2E71 +:105F0000A9E0CA2EE092F502812F0E94A324182F47 +:105F1000882321F08130E1F000E009C0D092F50241 +:105F2000809180010E94A3248093800101E0F09081 +:105F3000ED0280ECF11001C088EC0E94661780EA47 +:105F4000F11001C081EA0E9466170111DBCF02CF78 +:105F5000C092F5028091ED020E94A32491E081118C +:105F600001C090E09093ED02E1CF86E08093F502CE +:105F7000809148010E94A32491E0811101C090E02A +:105F800090934801F8CB80910D0390E01092F402B9 +:105F90001092F302E4EFF1E0F093F202E093F102E9 +:105FA00021E030E03093F0022093EF02880F991F38 +:105FB000909300038093FF020E947C2480930D0342 +:105FC0000E94CD19D8CB88E08093F50280914E01D4 +:105FD0000E94A32480934E01CECB0E941E14EE2477 +:105FE000E39400E320E34FE352E270E060E088E2F4 +:105FF00090E00E9475130E94491764E670E080E00B +:1060000090E00E94EF1686E00E94DF15892BD9F7F9 +:106010008091EE028111F7CFD3CF8091100391E0F0 +:10602000892780931003882351F00E9421176093E1 +:10603000F6027093F7028093F8029093F90281E0E0 +:1060400080930C03FECB90910308391748F48F5FBF +:10605000891708F0A7CC81E083BF889513BEA2CC36 +:1060600011E010930508609304088091FF07909158 +:1060700000080196909300088093FF0780918001AB +:10608000882309F4BCC10E941E1401E020E440E80A +:1060900070E060E090E080E00E94531310930D08E0 +:1060A00010930C0810920B08E12C00E120E14EEC5B +:1060B00053E270E060E090E080E00E94751383E1BD +:1060C00090E0909308088093070884E090E0909314 +:1060D0000A088093090880911503E6E08E9FC001AD +:1060E0001124805B9E4F0E94B21D809113039091FA +:1060F0001403853F914008F02DC180911203811156 +:106100002BC180911103811129C18091100381114C +:1061100027C180914F01811125C120E030E044E387 +:1061200053E46091B7077091B8078091B9079091D7 +:10613000BA070E94983287FF17C185E025E330E057 +:10614000309308082093070821E030E030930A08D4 +:106150002093090892E090930D08C82ED12C9091BD +:106160004E01CC0CDD1C911101C1F601E657FD4F2B +:1061700040815181E12C0EE02CE161E070E080E58E +:1061800090E00E947513F601E458FD4F4081518163 +:10619000E12C0EE02EE061E070E081E790E00E94EB +:1061A000751381E080930D080E943D1920E030E0D6 +:1061B00040EA52E40E94423518160CF0FAC00E94E0 +:1061C000211752E0660F771F881F991F5A95D1F744 +:1061D00028EE33E040E050E00E94FC3320FFE9C0AD +:1061E0000E94CD1960910E0370910F0390E080E042 +:1061F0000E949D3220E030E048EC52E40E949A3444 +:106200006B017C0160910D0370E090E080E00E94E2 +:106210009F329B01AC01C701B6010E94983287FDF5 +:10622000D4C0E12C0EE02EE040E753E262E270E0E1 +:1062300082E090E00E94751303E110E010930808DB +:106240000093070820E130E030930A082093090802 +:106250000E943D1941E00E942D1E88EF0E94F8180F +:106260008EE693E20E94DD18109308080093070859 +:1062700088E190E090930A08809309080E94011930 +:10628000BC0190E080E00E949D3220E030E04AE7CF +:1062900054E40E949A3442E00E942D1E8CE693E260 +:1062A0000E94DD18109308080093070880E290E030 +:1062B00090930A088093090860910E0370910F0370 +:1062C00090E080E00E949D3220E030E04AE754E414 +:1062D0000E949A3441E00E942D1E8AE693E20E94B9 +:1062E000DD18109308080093070888E290E0909367 +:1062F0000A088093090883E693E20E94DD1889E387 +:1063000090E0909308088093070882E190E09093D2 +:106310000A088093090884E080930D0860911303B4 +:1063200070911403653F91E0790708F462C08FE52E +:1063300093E20E94DD1800E020E248E460E170E0B2 +:1063400087E390E00E94AA1780E00E94051F0E9448 +:10635000491728CB80E0F2CE81E0F0CE82E0EECE8D +:1063600083E0ECCE84E0EACE86E0E8CE8330C1F074 +:1063700038F4813069F0823081F088EA93E20AC013 +:106380008530A1F080F08630C1F78EEA93E202C03A +:106390008AEC93E20E94DD18F6CE84EC93E2FACF09 +:1063A0008EEB93E2F7CF88EB93E2F4CF83EB93E2AB +:1063B000F1CFE12C0EE02EE04CE853E262E170E018 +:1063C00082E090E00E9475130DCF0E94211742E0F9 +:1063D000660F771F881F991F4A95D1F728EE33E083 +:1063E00040E050E00E94FC3320FF1BCF0E94CD19FB +:1063F00023CF90E080E04AE00E94BF1D9CCF0E9426 +:106400001E140E943D1920E030E040EA52E40E9450 +:106410004235181694F40E94211732E0660F771F58 +:10642000881F991F3A95D1F728EE33E040E050E0FD +:106430000E94FC3320FD0E94CD1960910E037091E3 +:106440000F0390E080E00E949D3220E030E048ECB5 +:1064500052E40E949A346B017C0160910D0370E05C +:1064600090E080E00E949F329B01AC01C701B60121 +:106470000E94983287FF12C00E94211722E0660F07 +:10648000771F881F991F2A95D1F728EE33E040E047 +:1064900050E00E94FC3320FD0E94CD19809113032F +:1064A00090911403853FE1E09E0710F087EE93E0A2 +:1064B0000E94482300E023E040E860E370E090E0C1 +:1064C00080E00E94531381E040CFC092E507D09254 +:1064D000E607E092E707F092E807E091DB07F0912A +:1064E000DC0780819181A281B3818093E907909339 +:1064F000EA07A093EB07B093EC0720E030E04FE70A +:1065000053E4C701B6010E94423518160CF04CC97D +:106510004092E5075092E6076092E7077092E8071D +:10652000A0C8FB01DC0105900D920020E1F7089561 +:106530000E94DA3208F481E00895E89409C097FBDC +:106540003EF490958095709561957F4F8F4F9F4F4A +:106550009923A9F0F92F96E9BB279395F69587958E +:1065600077956795B795F111F8CFFAF4BB0F11F451 +:1065700060FF1BC06F5F7F4F8F4F9F4F16C08823F8 +:1065800011F096E911C0772321F09EE8872F762F2E +:1065900005C0662371F096E8862F70E060E02AF06F +:1065A0009A95660F771F881FDAF7880F969587955B +:1065B00097F90895990F0008550FAA0BE0E8FEEF30 +:1065C00016161706E807F907C0F012161306E407B7 +:1065D000F50798F0621B730B840B950B39F40A26B0 +:1065E00061F0232B242B252B21F408950A2609F48E +:1065F000A140A6958FEF811D811D08950E94113342 +:106600000C9482330E94743338F00E947B3320F064 +:10661000952311F00C946B330C94713311240C946A +:10662000B6330E94933370F3959FC1F3950F50E0FA +:10663000551F629FF001729FBB27F00DB11D639F34 +:10664000AA27F00DB11DAA1F649F6627B00DA11DDA +:10665000661F829F2227B00DA11D621F739FB00D80 +:10666000A11D621F839FA00D611D221F749F3327F0 +:10667000A00D611D231F849F600D211D822F762F89 +:106680006A2F11249F5750409AF0F1F088234AF066 +:10669000EE0FFF1FBB1F661F771F881F91505040D2 +:1066A000A9F79E3F510580F00C946B330C94B633E0 +:1066B0005F3FE4F3983ED4F3869577956795B79559 +:1066C000F795E7959F5FC1F7FE2B880F911D969573 +:1066D000879597F9089597F99F6780E870E060E0E3 +:1066E00008959FEF80EC089500240A94161617066B +:1066F00018060906089500240A94121613061406B3 +:1067000005060895092E0394000C11F4882352F015 +:10671000BB0F40F4BF2B11F460FF04C06F5F7F4FCD +:106720008F4F9F4F089557FD9058440F551F59F0B4 +:106730005F3F71F04795880F97FB991F61F09F3F6E +:1067400079F087950895121613061406551FF2CF97 +:106750004695F1DF08C0161617061806991FF1CFE7 +:1067600086957105610508940895E894BB2766270E +:106770007727CB0197F90895F999FECF92BD81BD96 +:10678000F89A992780B50895262FF999FECF1FBA58 +:1067900092BD81BD20BD0FB6F894FA9AF99A0FBE4A +:1067A00001960895052E97FB1EF400940E94E9338C +:1067B00057FD07D00E94FC3307FC03D04EF40C9425 +:1067C000E93350954095309521953F4F4F4F5F4F9E +:1067D000089590958095709561957F4F8F4F9F4F4D +:1067E00008950E941E34A59F900DB49F900DA49F04 +:1067F000800D911D11240895A1E21A2EAA1BBB1B26 +:10680000FD010DC0AA1FBB1FEE1FFF1FA217B3077C +:10681000E407F50720F0A21BB30BE40BF50B661F92 +:10682000771F881F991F1A9469F760957095809556 +:1068300090959B01AC01BD01CF010895A29FB001CD +:10684000B39FC001A39F700D811D1124911DB29FA4 +:10685000700D811D1124911D08955058BB27AA2742 +:106860000E9445340C9482330E94743338F00E94A5 +:106870007B3320F039F49F3F19F426F40C947133E4 +:106880000EF4E095E7FB0C946B33E92F0E949333F1 +:1068900058F3BA17620773078407950720F079F455 +:1068A000A6F50C94B5330EF4E0950B2EBA2FA02D5F +:1068B0000B01B90190010C01CA01A0011124FF27AD +:1068C000591B99F0593F50F4503E68F11A16F040A8 +:1068D000A22F232F342F4427585FF3CF46953795A7 +:1068E0002795A795F0405395C9F77EF41F16BA0B6C +:1068F000620B730B840BBAF09150A1F0FF0FBB1F1A +:10690000661F771F881FC2F70EC0BA0F621F731F62 +:10691000841F48F4879577956795B795F7959E3FBF +:1069200008F0B0CF9395880F08F09927EE0F979550 +:10693000879508950E94AE340C9482330E947B3375 +:1069400058F00E94743340F029F45F3F29F00C9412 +:106950006B3351110C94B6330C9471330E94933302 +:1069600068F39923B1F3552391F3951B550BBB277E +:10697000AA2762177307840738F09F5F5F4F220FC3 +:10698000331F441FAA1FA9F335D00E2E3AF0E0E8BA +:1069900032D091505040E695001CCAF72BD0FE2F04 +:1069A00029D0660F771F881FBB1F26173707480798 +:1069B000AB07B0E809F0BB0B802DBF01FF27935850 +:1069C0005F4F3AF09E3F510578F00C946B330C9476 +:1069D000B6335F3FE4F3983ED4F386957795679599 +:1069E000B795F7959F5FC9F7880F911D9695879585 +:1069F00097F90895E1E0660F771F881FBB1F6217A4 +:106A000073078407BA0720F0621B730B840BBA0B61 +:106A1000EE1F88F7E09508950E9413356894B11130 +:106A20000C94B63308950E949B3388F09F5798F0DA +:106A3000B92F9927B751B0F0E1F0660F771F881F83 +:106A4000991F1AF0BA95C9F714C0B13091F00E949D +:106A5000B533B1E008950C94B533672F782F8827AC +:106A6000B85F39F0B93FCCF3869577956795B395C4 +:106A7000D9F73EF490958095709561957F4F8F4F33 +:106A80009F4F08950E94DA3208F48FEF0895FA01BB +:106A9000EE0FFF1F309621053105A1F1611571053B +:106AA00061F48038BFE39B0749F168949038810511 +:106AB00061F08038BFEF9B0741F099234AF5FF3F13 +:106AC000E1053105210519F1E8940894E795D9010C +:106AD000AA2329F4AB2FBE2FF85FD0F310C0FF5FBD +:106AE00070F4A695E0F7F73950F019F0FF3A38F452 +:106AF0009F779F930DD00F9007FC9058089546F014 +:106B00000C94713360E070E080E89FE308954FE7F4 +:106B10009F775F934F933F932F930E9447362F9118 +:106B20003F914F915F910E94FE320C94A4350E94D8 +:106B3000DA32880B990B089529F416F00C946B3314 +:106B40000C94B5330C9471330E949B33A8F39638A0 +:106B5000A0F707F80F92E8942BE33AEA48EB5FE7D7 +:106B60000E9414330F920F920F924DB75EB70F929F +:106B70000E948F36E8E6F0E00E94D6354F915F9193 +:106B8000EF91FF91E595EE1FFF1F49F0FE57E0687A +:106B90004427EE0F441FFA95E1F74195550B0E94EB +:106BA00009360F9007FE0C94FD350895DF93CF93BF +:106BB0001F930F93FF92EF92DF927B018C016894F9 +:106BC00006C0DA2EEF010E941133FE01E894A59170 +:106BD0002591359145915591A6F3EF010E944534D9 +:106BE000FE019701A801DA9469F7DF90EF90FF901A +:106BF0000F911F91CF91DF9108959B01AC0160E04F +:106C000070E080E89FE30C949A340C946B330C94FE +:106C1000C3360E949B33D8F39923C9F3940F511DB7 +:106C2000A3F39150504094F059F0882332F0660F4E +:106C3000771F881F91505040C1F79E3F51052CF798 +:106C4000880F911D9695879597F908955F3FACF051 +:106C5000983E9CF0BB27869577956795B79508F485 +:106C6000B1609395C1F7BB0F58F711F460FFE8CFFF +:106C70006F5F7F4F8F4F9F4FE3CF0C94B63316F06B +:106C80000C94C3360C94713368940C946B330E944B +:106C90009B33A8F39923C1F3AEF3DF93CF931F93F4 +:106CA0000F93FF92C92FDD2788232AF02197660FC3 +:106CB000771F881FDAF720E030E040E85FEB9FE3C2 +:106CC000883920F0803E38F021968F770E942E344C +:106CD000E0E9F0E004C00E942E34EDEBF0E00E9409 +:106CE000D6358B01BE01EC01FB2E6F5771097595EE +:106CF000771F880B990B0E949F3228E132E741E30E +:106D00005FE30E941133AF2D9801AE01FF900F9108 +:106D10001F91CF91DF910E9445340C948233FA0188 +:106D2000DC01AA0FBB1F9B01AC01BF5728F422272F +:106D300033274427507820C0B75190F4AB2F00245C +:106D4000469537952795011CA395D2F3002071F045 +:106D5000220F331F441FB395DAF30ED00C942D3459 +:106D600061307105A0E88A07B94630F49B01AC0197 +:106D70006627772788279078309621F02083318303 +:106D80004283538308959F3F31F0915020F48795BB +:106D900077956795B795880F911D9695879597F983 +:106DA0000895DB018F939F930E94F133BF91AF91C0 +:106DB000A29F800D911DA39F900DB29F900D112455 +:106DC000089597FB072E16F4009407D077FD09D09D +:106DD0000E94FB3607FC05D03EF4909581959F4FAD +:106DE0000895709561957F4F0895EE0FFF1F0590F0 +:106DF000F491E02D0994AA1BBB1B51E107C0AA1F07 +:106E0000BB1FA617B70710F0A61BB70B881F991F4B +:106E10005A95A9F780959095BC01CD01089581E020 +:0C6E200090E0F8940C941437F894FFCF25 +:106E2C0001FFD800340186011E00000000000000A4 +:106E3C000000000000000000000000000000000046 +:106E4C000000000000000000000000000000000036 +:106E5C000000000000000000000000000000000026 +:106E6C000000013C960040010101280F05010101C1 +:106E7C004243312E350000000000000000000000ED +:106E8C0000000000000000000000000000000000F6 +:106E9C0000000000000000000000000000000000E6 +:106EAC0001860281027C0275026F026B0262025F34 +:106EBC00025A0256024D0243023B0238023502329C +:106ECC00022C022902240221021E021902140211B0 +:106EDC00020B0207020302FE01F901F501F001ECBD +:106EEC0001E801E501E101DC01D801CF01CA01C7CC +:106EFC00013C0CEC0B9C0B4C0BFC0AAC0A5C0A0C1A +:106F0C000ABC096C093C0C1C09CC087C082C08DC5C +:106F1C00078C073C07EC06DC073C079C06EC06DC00 +:106F2C00074C06FC05AC055C050C05BC046C041C8C +:106F3C0004CC037C032C036C041C04DC028C02DCEC +:106F4C00079C0F800F640F480F2C0F100FF40ED8F6 +:106F5C000EBC0EA00E840E680E9C0F4C0E300E1440 +:106F6C000E9C0FF80DDC0D140EF80DC00DDC0D147D +:106F7C000EA40D880D6C0D500D340D100F180DA0B6 +:106F8C000EFC0CE00CC40CA80C8C0C2C0FA80C14D4 +:106F9C000E0A0604040202020203020348102C101B +:106FAC000C107023F00FD40FB80FB4117C114411D6 +:106FBC000C11D4109C106410000000004915A91489 +:106FCC00D61496150715E514F91400000000DB170C +:106FDC00A914FE18FD186E616E00696E66006F765E +:066FEC0066002F330000D7 +:00000001FF diff --git a/software/binaries/1.7t3/T12.ino.with_bootloader.standard.hex b/software/binaries/1.7t3/T12.ino.with_bootloader.standard.hex new file mode 100644 index 0000000..752fb8f --- /dev/null +++ b/software/binaries/1.7t3/T12.ino.with_bootloader.standard.hex @@ -0,0 +1,1827 @@ +:020000040000FA +:100000000C9406120C942E120C942E120C945F2752 +:100010000C942E120C942E120C942E120C942E1260 +:100020000C942E120C942E120C942E120C942E1250 +:100030000C942E120C942E120C942E120C942E1240 +:100040000C9415270C942E120C94E3260C94BD26C8 +:100050000C942E120C9436280C942E120C942E1202 +:100060000C942E120C942E1207634236B79BD8A71D +:100070001A39685618AEBAAB558C1D3CB7CC5763CD +:10008000BD6DEDFD753EF6177231BF000000803F7B +:1000900008000000BE922449123EABAAAA2ABECD97 +:1000A000CCCC4C3E00000080BEABAAAAAA3E000009 +:1000B0000000BF000000803F000000000008417801 +:1000C000D3BB4387D1133D190E3CC3BD4282AD2B38 +:1000D0003E68EC8276BED98FE1A93E4C80EFFFBE30 +:1000E00001C4FF7F3F0000000000536176650046B9 +:1000F0006C6970004D61696E2053637265656E00B6 +:100100004F4B004E4F004A5000454E00434E0059A1 +:100110004553004E4F004F4E004F464600496E6615 +:100120006F73004269670050494400446972656317 +:1001300074005361766500426F6F7374004F66669A +:1001400000536C656570005361766500426F6F7394 +:100150007400536C6565700044656661756C74006D +:1001600053617665004164640044656C65746500A4 +:1001700052656E616D650043616C696272617465A0 +:10018000004368616E67650052657475726E004168 +:10019000626F7574004C616E67004C4F5720566F4C +:1001A0006C0042757A7A65720053637265656E0001 +:1001B000436F6E74726F6C0054696D6572005465A4 +:1001C0006D700054697000F21415F0CADFB8CCF0FD +:1001D000D699E8AEA4DFEEE8F0714601F046464A53 +:1001E00001F21D1E08F21C08F21A1B08F0714601EC +:1001F000F046464A01F219F051F218F05A8DF0C05B +:10020000DAEEAEF0C8B8A5F1302924F0B599E1A432 +:10021000BDF21415F0CBEEAEBDF218F05A8DF21609 +:1002200017F21415F0CBEEAEBDF21617F0BCCA9E55 +:10023000E0BDF21415F21213F21011F20C0DF0944D +:10024000F20E0FF0A2D8DFCBE1EEACDCE8F20AF060 +:100250008CF20BF04A8DF209F08DF097C59BBDF240 +:100260000708F2040506F097DEEED5F0CBABEEF012 +:10027000AEA4DFEEE8F0A8E8BDE2EEE0F0B499D37A +:10028000EEF200010203F0CCDFB0B8BD00000000C8 +:10029000000F1DC20800054442080003845FBF0030 +:1002A0000FE44410000115451000054CC97F80097A +:1002B000244F900007C4C11000054D413F00055474 +:1002C00043810007C44D0200054441140005554117 +:1002D000080007C8810400000000000000000000C2 +:1002E0000001083FFE001FFF8100000040020000E7 +:1002F00007FE0FF80004020808000402088800073F +:10030000FE0888000402088800040208880007FE2E +:100310000888000402094800040202300007FE04B5 +:100320000C0004021804000000000000000000009F +:100330000007FE13FE00040208400004020840000B +:10034000040201FC0004023884000402088400074F +:10035000FE0FFF000402080000040209FE00040270 +:1003600009020004020B020004020D020007FE094C +:10037000FE00040201020000000000000000000076 +:100380000001100080001FFF80800001103FFF006F +:10039000004004080007FC040800044404100004A2 +:1003A0004402100004440220001FFF81200000408E +:1003B00000C00000A00130000110020800060C0C73 +:1003C00007001803B0020000000000000000000059 +:1003D00000004000800000400080000FFF3FFF0051 +:1003E00008410408000841040800084104100008FE +:1003F000410210000FFF02200008410120000040D0 +:1004000000C0000040013000004002080000400C25 +:100410000700004030020000000000000000000063 +:10042000001FDF10200002120C2000022404200014 +:10043000047F8020000424B820000FA488500014FA +:10044000BF88500004A488500004A488480004BF5A +:1004500088880004A48A880007A48C840004448946 +:10046000070000818602000000000000000000007C +:10047000000FF00491000440025200047F905400E9 +:10048000045088FF0007D0848100045100810004DB +:100490004901FF0007CA0281000444048100044AA4 +:1004A0001CFF0007EA0481000C510481000061C4B4 +:1004B0008500004080820000000000000000000075 +:1004C0000007FF802000008407FF00008404010073 +:1004D000008404010000840401000FFFC7FF000036 +:1004E000840400000084040000008405FF000084F0 +:1004F00005010001040901000104090100020411C1 +:10050000FF000404010100000000000000000000E2 +:1005100000008204FF00004402010007FF90210058 +:100520000010102100001017FD0000101021000F16 +:10053000FFD06100001010A1000028112100002848 +:100540001221000044142100008210A1000301D0F8 +:1005500045000C00900200000000000000000000B8 +:1005600000084410FE00042810920005FF229200AB +:1005700000103C920000100892001CFE1092000433 +:100580001020FE0004103E920005FF80920004102F +:1005900000920005100E9200061030920004100028 +:1005A000FE000010008200000000000000000000BB +:1005B0000007DF8840000A24104000114210FE00AE +:1005C000040022820002FF3D020008010A420009E5 +:1005D000F9103200090920120009F93E0200090948 +:1005E00000020009090E020009F930220008050086 +:1005F00014000802000800000000000000000000D5 +:10060000000FC3F1E0000FE3F1F8000C70C19E0091 +:100610000C30C186000C30C183000C30C183000C4B +:1006200060C183000C60C183000FC0C183000FC094 +:10063000C186000C00C186000C00C198000C03F1BB +:10064000F8000C03F1E000000000000000000000D2 +:100650000000200820000FFF09FC00002008000017 +:1006600000203E880003FE08500002020BFE00033B +:10067000FE0C4000020218400003FE2BFE000202A6 +:1006800008480003FE088800020208500002022801 +:1006900030001FFF91CC0000000000000104047C2A +:1006A0000000880444000FFF3F4400002004440081 +:1006B00000200C440000200E44001FFF9544000061 +:1006C00020144400005024440000500444000088DA +:1006D0000445000104048500060385030018010495 +:1006E000000000000000000000000000000000000A +:1006F00000047E21FC0004421104001F7E09040056 +:10070000044221FC000542110400067E1104000C85 +:100710000005FC0015FF880000040813FE000448D3 +:10072000325200044F125200044812520014A81210 +:100730005200091F97FF00000000000000000000A9 +:100740000002103DFC0002102504000410250400E6 +:1007500005FFBDFC000C102520000C3825200014DE +:100760003825FE0004543D20000454251000049256 +:100770002510000511A5090006113D4500041025AE +:1007800083000410010100000000000000000000D0 +:10079000001FC8102000124A0C20001AC9042000B3 +:1007A00017480020001FFFB8200002080850001F53 +:1007B000C8085000020808500003C80848001E146A +:1007C00008880001540A880015220C84001443890B +:1007D00007000081060200000000000002FE010088 +:1007E0000002823FFF00048202000004FE020000BB +:1007F0000C1004FC00141004080005FF8C10000409 +:1008000010141000043825FF0004340410000452B2 +:10081000041000049184100005100450000410041A +:1008200020000000000000000000000000000000A8 +:100830000002030010001FDC3EFE000890021200C0 +:10084000051004FF001FDF84120002120CFE001FBF +:10085000D2021000021222FE000A921410000A5264 +:1008600014100012220DFF0002220810000A421488 +:100870001000040223FF0000000000000000000040 +:10088000000F78BC20000948A45000094AA8500075 +:10089000094AA88800094AB104001FFEAAFB000902 +:1008A0004AA42000094AA42000094AA7FE00094AD8 +:1008B000B420000948A924000B48A22200088AA4F9 +:1008C000A2001119204000000000000000000000FC +:1008D000000020008000005001FC0000880104009E +:1008E000010403080006FB0490000800C060000734 +:1008F000DF018000045106000004511BFE0004517A +:1009000002020007D902020004560202000010038E +:10091000FE000010020200000000000000000000C5 +:10092000000208209000027F9890001F8009FF00BD +:10093000022201100006218B100007628DFE000AC2 +:10094000A20910000A14111000121431FE0002084E +:100950001110000214111000022211100002439124 +:10096000FF000281110000000000000000000000F4 +:1009700000100700000008F83FFE0004802002007D +:10098000008020020000BE23E2001C82222200041C +:10099000A42222000494222200048822220004942B +:1009A00023E200052220020005422002000A003F47 +:1009B000FE0011FFA0020000000000000000000087 +:1009C0000000820FFE00004400400007FF8040004E +:1009D0000010004000001000400000101FFF800FBA +:1009E000FFC0400000100040000028004000002828 +:1009F000004000004400400000820040000301C1AC +:100A000040000C00808000000000000009FF004052 +:100A10000004203FFF00042000000000FE00000052 +:100A20001C420FFC00044200000007FF800000048D +:100A3000000FFC0004FF000000048100000005819D +:100A40000FFC00068108040004FF08040000810F69 +:100A5000FC0000000000000000000000000000009A +:100A60000001000FFE00010008200003FF08200025 +:100A70000201082000042208200008200BFE0010BC +:100A8000200820000050082800005008240000889A +:100A9000082200008810200001041020000203A793 +:100AA000FF000C010000000000000000000000003A +:100AB0000000400080001FFF9FFC00004004100069 +:100AC0000FFF02200000003FFF000FFE00000008A3 +:100AD000420FF80008420808000FFE08080008024C +:100AE0000FF8000800080800080008080008000FB8 +:100AF000F8001000080800000000000000000000DE +:100B00000007FE0FF80004020000000402000000CD +:100B100007FE00000004023FFE0004020080000700 +:100B2000FE008000009004900008910C880006935D +:100B30001086000294208200009000800000900245 +:100B400080001FFF81000000000000000000000086 +:100B500000041012020005FF9FD20005009212004F +:100B60001E28A2120004443FF20004820212000672 +:100B7000000212000CFE1FD20014101252000410CA +:100B80001242000410134200041012820015FF826A +:100B90000A0008000204000000000000000000003D +:100BA00000002000000000203E04001FFFA20400FF +:100BB0001000A2FF0000012204000FFE220400002A +:100BC000403E440000402224000440222400047CD3 +:100BD00022040004402204000A403E04000940228E +:100BE000240010FF80140000000008000000000036 +:100BF0000010FE08200008820BFF0004820A01009A +:100C000010FE3C5100088208880008820904000296 +:100C1000FE0C0000040019FC0009FF28200019291F +:100C20000820000929082000092908200009292B8B +:100C3000FF000BFF9000000000000000000000001B +:100C4000001F7F90F80001080888000A100888003B +:100C5000047F0107001FC13A0000054909FC000498 +:100C600049088400044908880004490848000449E8 +:100C700008500004490A200004160C580014218969 +:100C8000870008C086020000000000008004000009 +:100C90003FF02430219027902730207027F0233018 +:100CA00030703FF000008004800400003FF03830D6 +:100CB00033103F90381033902790261030903FF03B +:100CC00000008004800400003FF03DF020103BF065 +:100CD0003B7030302B502AD031B03FF00000800400 +:100CE000800400003FF0387030302310279020102F +:100CF0002010279027903FF000008004800400001F +:100D00003FF03CF03CF020102490249020103CF068 +:100D10003CF03FF000008004800400003FF037B05A +:100D200023103030387038703030231037B03FF037 +:100D300000008004FCF4F860E044C08CC11CC22CAC +:100D4000C44CC88CD10CA204C4048FFC187CBCFC1D +:100D50008000BFF81FF8B0281FF8B4081FF8B108CA +:100D60001FF8B048BFF8B288BFF880008000BFF815 +:100D70001FF8B0081808B9E819B8B8381838B9B861 +:100D8000B9F8B0F8BFF8800015543FF815503FF09F +:100D90001550387010203104138C22A817FC2AA893 +:100DA0000000000015543FFC15543FFC15543C0452 +:100DB00014043CFC14543CFC005400A80000000047 +:100DC000800400003FF03CF034B024902490279041 +:100DD0002310303038703FF000008004FF7CFE7C30 +:100DE000FCECE8DCC84C984C88240820000000008B +:100DF000000000008004E01CF3FCE7FCCE0C8E1C1D +:100E00009F9C1F3C1F0C0E0C0FFC87F881E4C00C4C +:100E1000E01CF87C000458085808580840087FF87F +:100E200060185FE85B685FE85B681CE85FE80000EB +:100E3000800400003FF03CF03CF03CF0201020101B +:100E40003CF03CF03CF03FF000008004F87CF7BC44 +:100E500000007FF80000BFF4AB54AB54AB54AB546C +:100E6000AB54AB54BFF4C00CF03CCE0CBF04B30485 +:100E700073007F007E007C007C007C60BC64BE044C +:100E8000CF0CF03C81DC559C29045500299055D0AD +:100E900003FCFF002E00267002508270E600EE0474 +:100EA000800C001C3FF43FE03FC4378C23183030E7 +:100EB00038703CF03FF03FF000008004058074B8CB +:100EC00057A876B80580F97C4694AAA8F97C0688CC +:100ED00074A8578C75740698F03CCE4CBC34B8148A +:100EE000188010804230607860F844C08004B88474 +:100EF000CFCCF03CF87CE01CC00CCFCCCFCCCFCC1E +:100F0000CFCCCFCCCFCCCFCCC84CCFCCC00CE01CFE +:100F1000FCFCF87CE01CC00CC00CC00CC00CC00C6D +:100F2000C00C80048004FFFCF87CFCFC8004000002 +:100F30002000100008001000270000000000000042 +:100F40000000000000008004C3FC18001800C3FC6F +:100F5000FFFCFF0C00600060FF0CFFFCF0FC0600D3 +:100F60000600F0FC8FC4102020104CC89FE43DF018 +:100F70003DF01DE03EF03F709FE48CC40000303037 +:100F8000F87CF33CF4BCF6BCF4BCF6BCF4BCE49CCA +:100F9000C84CD02CD02CC84CE79CF03C88240820AE +:100FA00038303830383038303830383039303BB07D +:100FB0003FF03FF0000080041FE03FF07038601801 +:100FC00060186018FFFCFCFCFCFCFCFCF87CF87C66 +:100FD000FCFC7FF81E1033382D7C25382D38253841 +:100FE0002D386D80DEC0BF40BF40DEC061803F0055 +:100FF0007FF0FFE0C008C01CC038C870DCE4CFCC74 +:10100000C78CC30CC00CC00CFFFC7FF800000600AE +:101010000C0018F838F030307060707878F878008C +:101020003C023F0C1FF80FF003C000007FF8FFFCEC +:10103000C00CC30CCB4CDB6CDB6CD86CDCECCFCCC9 +:10104000C78CC00CFFFC7FF8030007800FC00CC0EA +:101050001CE01CE03CF03CF07FF87FF8FCFCFCFC62 +:10106000FFFC7FF81140820021208FE023FC8200EA +:101070004A23E200FE209FF013F880802220C080E7 +:101080004221BFF0FBFA8880022084800220848005 +:101090001A208080E3FE8280020101000F421FC0FF +:1010A000784110400840904008421FC0084110405D +:1010B000FFFD104008405FC00840800008413FE04D +:1010C00008432520104125201041252020412520BE +:1010D00040417FF07FF84880020049000201FFF0A4 +:1010E0000201001002027F202200410023F07F0055 +:1010F000220008002200FF802200888022008880D1 +:1011000022008A8022008900FFFC080023F21FC011 +:1011100022111040FBF0904022121FC02A111040F3 +:1011200033F1104060005FC0AFFC800020413FE021 +:10113000224325202279252022412520A541252052 +:1011400048FD7FF01083DFC0108250402082504065 +:101150002FFFDFC06082520061C25200A1C25FE077 +:1011600022A3D20022A2510024925100288E509036 +:10117000308BD4502082583020801010104047C04F +:1011800017FC44402003F44023F844406208C44064 +:10119000A3F8E440200154402FFD44402806444079 +:1011A00023F84440204044502040485021405030D3 +:1011B0002080400020921FC03DF990402090904038 +:1011C00040901FC07BFF0000A0013FE021F902001A +:1011D000FD09020021097FF021F9050021094500E0 +:1011E0002909888031F9107021082020250043004A +:1011F000202070F875407755757740403E4A5E2B49 +:101200005E4A6B627F352F357F7C5B5E247B0E3AB6 +:10121000047E017E4A5E69063A2F3F6B7E46403F60 +:1012200041497F494102626B6B6B62026A6B147DBC +:10123000577D10413F55553D5751213F2D7F2A1273 +:101240002E0A775A505A770A2024137D5553707A04 +:101250002A7B021A437A4A525E2B5E424A415F352C +:101260003F555F417D14577D0E407F7F1B54167D97 +:101270001654493A407E575676423F427E7E427E21 +:10128000047E51377D3750127A1752761E127F55E1 +:101290007F145D7F557F557F7F553D577F5537784C +:1012A00017457F7F2B7B287B2B7F1E12127F12120C +:1012B0001E7F416B7F6B517F525A573A575A5200EB +:1012C0007F494949497F22122A7F2A1222000000C1 +:1012D00000002F000300033F123F163F1A1208249C +:1012E000323D2A020100003E41413E000A070A0841 +:1012F0003E084020000808080020001008041C2AAE +:101300001C243E20322A24222A1418143E2E2A128B +:101310001C2A12023A06142A14242A1C0024004013 +:101320002400081422141414221408022906122975 +:101330001E3E093E3F251A1E21213F211E3F252129 +:101340003F05011E21393F083F213F2110201F3F4B +:10135000043B3F20203F063F3F013E1E211E3F0928 +:10136000061E215E3F0936222519013F013F203F1D +:101370003F100F3F183F330C33033C03312D230044 +:101380007F41153E15417F000201024040400001AF +:101390000218243C3F241818242418243F182C2C0D +:1013A000043F0548543C3F0438003D00403D003FA9 +:1013B0000834013F003C1C383C04381824187C24B5 +:1013C0001818247C3C0804283C14043E243C203C8F +:1013D0003C100C3C303C2418244C503C24342C0849 +:1013E0003641007F004136080101011028101F011D +:1013F0000120203E10200000080025150F241C0CA1 +:10140000103804180C3828382828183C083C1828AC +:101410003820242C3C2C2C1C040808211D07083CD7 +:101420000306231E223E22120A3F320F3E0A3F0AC3 +:1014300024130E271E0222223E27120F25251021DB +:1014400019273F222E21160F241B0E251F052626A5 +:101450001E251D053F0408241F04202222251927CC +:10146000123B1620100F3C013E1F242421110F0CAB +:10147000031C1A3F1A091927222A2A382730320C4E +:1014800013053F25023F0E213F2025253F25251D21 +:1014900007201F3C3F203F20103E223E23110F21FA +:1014A00021180100010205020000000000000000F8 +:1014B000204000000000000020502000000000003C +:1014C00050300000000000006060000000000000DC +:1014D0000000181800000000000036360000000070 +:1014E0000000563600000000000201510909060004 +:1014F0000000005F00000000000000007F4141008C +:1015000041417F00000000000000003F0101010098 +:101510004040407E0000000000003F213D050700E4 +:1015200070505E427E000000000000007F634100BA +:1015300041637F00000000000808087F08080800D9 +:1015400008080808080808004444445F444444006C +:1015500041221408142241000808082A080808003B +:1015600014141414141414001434141C1416140039 +:10157000080814141422220022221414140808004B +:101580000205023C42422400002B2C782C2B000048 +:1015900000242A7A2F2A1200001C62322E23140003 +:1015A00020545E2541422000422512082452210089 +:1015B00020623E633E2302002056495522584000D7 +:1015C0000022147F142200001C2259554D120C00D9 +:1015D00000004A555529000004643C173C6404008F +:1015E00004643C1F3C6404001C22414141221C0055 +:1015F0001C3E7F7F7F3E1C001C225D555D221C002F +:101600000814224122140800081C3E7F3E1C0800DA +:101610007F41414141417F007F7F7F7F7F7F7F000E +:1016200040704C434C70400040707C7F7C704000A8 +:10163000010719611907010001071F7F1F0701003A +:1016400049221449142249000505057D05050500B8 +:10165000080808082A1C0800081C2A0808080800AE +:101660000004027F020400000010207F2010000010 +:10167000003E414141413E000000427F40000000E9 +:10168000006251514949460000224149494936000A +:1016900000302824227F2000002F45454545390091 +:1016A000003E494949493200000101611905030022 +:1016B00000364949494936000026494949493E0012 +:1016C0000020547E3414600020527F2A1A4A3000D1 +:1016D000003C4020041800001E2040200204180096 +:1016E00000104A4A2A100000000845454525180008 +:1016F00000482A3A4A400000004425153D45400074 +:1017000000247E145024000022527F0A484A3400EC +:1017100044344F443804180044344F443904190009 +:10172000002A5A4B4E5A0800002A5A4B4E5B0800BA +:10173000000814142241000000081414224504007B +:101740003F0004443F0404003F0004443F040500FC +:101750000020524242424000002052424342410097 +:1017600000245444475C040000245444475C0500B2 +:1017700000003F404040200000003F404140210029 +:1017800002020A563F02020002020A563F0203000A +:1017900004043F44545F440004043F44545F450044 +:1017A0000008093D4B4908000008093D4B490A0063 +:1017B000423A072254444400423A07225544450025 +:1017C0000002124E4B4A32000002124E4B4A3300C6 +:1017D00000101048483000000404022222221C009D +:1017E0000404022223221D000002021A25434100A4 +:1017F0000002021A2543450000205748484444008F +:101800000020574849444500120A2752503A240004 +:101810007F00205242424000304E38540F6478001E +:1018200024147F0422523C001824124E4224180033 +:101830007F002454543F44007F002454543F45000B +:101840007F002454563D4600023A4740413E040082 +:10185000023A4740413E0500023A4740433D0600F8 +:101860004030404D321060004030404D3211610038 +:101870004030404D32156200080402040810100088 +:101880000804020409101100080402040A151200D9 +:101890007F006A6A7E2A4A007F006A6A7F2A4B00BC +:1018A0007F006A6A7E2D4A00006A6A6A7F2A4A00BF +:1018B00030291D4B483C1000122A7F424042240030 +:1018C000304E38540F443800000A3E4B4A4A30002C +:1018D00000080E384614080004071C62030A0400BE +:1018E000001C483E241800001E04523F12120C0037 +:1018F000002050503E480000002050503F2444003B +:10190000001C51494A483000000F4241211E00008E +:101910000010696D4B49300024147F04023E4000E2 +:101920000010494D4B4930000028187E084438000B +:1019300024147F0442423C003049251F24543800BF +:101940004028255735284000100A2E5B724A48006F +:1019500040300C33404020000004443C140C000094 +:101960000001413D0905030000202010780400001B +:10197000001010087C0201000018484C28180000D4 +:101980000006424322120E00004048784840000002 +:101990002022223E22222000002828587C08000015 +:1019A0002222124A7F0202000042221F02427E00CF +:1019B0000042221F02427F000012121F721210000A +:1019C0000012121F721310000008444322120E006E +:1019D0000008444322120F00080742221E020200A0 +:1019E000080742221F0203000042424242427E0098 +:1019F0000042424243427F0002024F42221F020045 +:101A000002024F42231E030000454A4020100C00F2 +:101A100000454A4021100D00404222221A26400073 +:101A2000404222221B26410004043F4444544C00FF +:101A300004043F4445544D000001464020100F006F +:101A40000001464020110F000008444B2A120E00EE +:101A50000008444B2A120F00080A4A3E09090800F0 +:101A6000080A4A3E090809000018405820180000DA +:101A7000020C424C20100E00020C424C21100D00B2 +:101A80000405453D050504000405453D0504050024 +:101A900000007F080810000000007F080910010006 +:101AA0000444241F040404002022222222222000B5 +:101AB00040412515192700002022127B0612200024 +:101AC000404020100807000040300E00020C70005B +:101AD00040300E00020D710040300E00020D720009 +:101AE000003F484848444400003F484849444500B6 +:101AF000003F48484A4546000002424222120E007A +:101B00000002424223120F000002424222150E0040 +:101B1000080402040810200008040204091021002F +:101B2000080402040A1522002414447F041424002B +:101B30002414447F051425002414447F0615220034 +:101B400002021222520A0600002125294A42000000 +:101B500040704C435020400040442414083700009B +:101B60000008093F4949480000101C680818000097 +:101B700004040F74020A0600004048487840000040 +:101B8000202222223E20200000004454547C0000E9 +:101B900000424A4A4A4A7E000004454525150C0089 +:101BA000000F4040201F000040201E007F2010003A +:101BB00000007F4020100800007E424242427E002A +:101BC000000C4444241C00000006424222120E0075 +:101BD00010121E12127F12002022223A262220000A +:101BE0000001454525150F000041424020100C0022 +:101BF0000006424322120F000048281C48780000CB +:101C000000100C48380800000804040810100800F0 +:101C10000800000800000800040808080808080078 +:101C20000808080808080808C301BE01B801B00187 +:101C3000A901A2019A0195018F0188018101770113 +:101C40007001690165016001580152014C014701B1 +:101C500041013D01370132012B01270123011D0103 +:101C60001901160113010F010C01090106010301FD +:101C70000001F400EF00EA00060505070604090369 +:101C80000504090A08030303060305030305050306 +:101C900006040405050405040403040504090503FA +:101CA0003E0053656C656374205469700000000049 +:101CB00000003E5B4F5B3E3E6B4F6B3E1C3E7C3EEE +:101CC0001C183C7E3C181C577D571C1C5E7F5E1CFC +:101CD00000183C1800FFE7C3E7FF0018241800FFB6 +:101CE000E7DBE7FF30483A060E2629792926407FB0 +:101CF000050507407F05253F5A3CE73C5A7F3E1CBF +:101D00001C08081C1C3E7F14227F22145F5F005FAA +:101D10005F06097F017F006689956A606060606088 +:101D200094A2FFA29408047E040810207E201008CC +:101D3000082A1C08081C2A08081E101010100C1E67 +:101D40000C1E0C30383E3830060E3E0E06000000E9 +:101D5000000000005F00000007000700147F147FF0 +:101D600014242A7F2A12231308646236495620500D +:101D70000008070300001C2241000041221C002A29 +:101D80001C7F1C2A08083E080800807030000808E4 +:101D9000080808000060600020100804023E514955 +:101DA000453E00427F400072494949462141494D24 +:101DB000331814127F1027454545393C4A494931AB +:101DC00041211109073649494936464949291E002A +:101DD00000140000004034000000081422411414D4 +:101DE000141414004122140802015909063E415DF1 +:101DF000594E7C1211127C7F494949363E4141417E +:101E0000227F4141413E7F494949417F09090901FA +:101E10003E414151737F0808087F00417F41002007 +:101E200040413F017F081422417F404040407F02F3 +:101E30001C027F7F0408107F3E4141413E7F09091B +:101E400009063E4151215E7F091929462649494923 +:101E50003203017F01033F4040403F1F2040201FCD +:101E60003F4038403F63140814630304780403615F +:101E700059494D43007F414141020408102000416F +:101E800041417F04020102044040404040000307FA +:101E9000080020545478407F28444438384444444F +:101EA00028384444287F385454541800087E0902C6 +:101EB00018A4A49C787F0804047800447D40002086 +:101EC00040403D007F1028440000417F40007C04DA +:101ED0007804787C080404783844444438FC182496 +:101EE000241818242418FC7C08040408485454546A +:101EF0002404043F44243C4040207C1C2040201CFF +:101F00003C4030403C44281028444C9090907C4405 +:101F100064544C4400083641000000770000004142 +:101F200036080002010204023C2623263C1EA1A121 +:101F300061123A4040207A38545455592155557908 +:101F400041215454784121555478402054557940CA +:101F50000C1E527212395555555939545454593929 +:101F6000555454580000457C410002457D42000113 +:101F7000457C40F0292429F0F0282528F07C545590 +:101F800045002054547C547C0A097F493249494910 +:101F9000323248484832324A4848303A4141217A40 +:101FA0003A42402078009DA0A07D39444444393D08 +:101FB0004040403D3C24FF2424487E4943662B2F6B +:101FC000FC2F2BFF0929F620C0887E0903205454DA +:101FD00079410000447D413048484A32384040222F +:101FE0007A007A0A0A727D0D19317D2629292F2857 +:101FF000262929292630484D402038080808080895 +:10200000080808382F10C8ACBA2F102834FA00007E +:102010007B000008142A142222142A140895002296 +:102020000095AA005500AAAA55AA55AA000000FFCB +:1020300000101010FF00141414FF001010FF00FF18 +:102040001010F010F0141414FC001414F700FF002A +:1020500000FF00FF1414F404FC141417101F1010D8 +:102060001F101F1414141F00101010F000000000A7 +:102070001F101010101F10101010F010000000FFA3 +:10208000101010101010101010FF10000000FF149E +:102090000000FF00FF00001F10170000FC04F414F4 +:1020A000141710171414F404F40000FF00F71414AC +:1020B0001414141414F700F7141414171410101F28 +:1020C000101F141414F4141010F010F000001F105E +:1020D0001F0000001F14000000FC140000F010F0AE +:1020E0001010FF10FF141414FF141010101F000024 +:1020F0000000F010FFFFFFFFFFF0F0F0F0F0FFFF37 +:10210000FF0000000000FFFF0F0F0F0F0F384444C7 +:1021100038447C2A2A3E147E02020606027E027E93 +:102120000263554941633844443C04407E201E20EC +:1021300006027E020299A5E7A5991C2A492A1C4C91 +:102140007201724C304A4D4D303048784830BC6294 +:102150005A463D3E494949007E0101017E2A2A2A0C +:102160002A2A44445F444440514A444040444A512E +:10217000400000FF0103E080FF000008086B6B08CF +:102180003612362436060F090F0600001818000014 +:10219000001010003040FF0101001F01011E001956 +:1021A0001D1712003C3C3C3C0000000000000000F9 +:1021B00000240027002A0000000000250028002B32 +:1021C0000000000000230026002900040404040489 +:1021D00004040402020202020203030303030301D4 +:1021E00002040810204080010204081020010204AB +:1021F000081020AED5F0A83FD300408D14A1C8DA56 +:102200001281CFD9F1DB40A4A6AF200021007F22AC +:102210000007506C65617365207761697400414403 +:10222000433A200074656D703A2000536574206D48 +:102230006561737572656400537465703A2000FFC0 +:10224000FFFFFFFFFF80038670800380038670809E +:10225000039FF3E1309FF39FF3E1309FF398330145 +:10226000CC9833983301CC9833983387C0983398FF +:1022700033E1C098339833E1C098339FF398C09FFF +:10228000F39FF398C09FF3800366CC8003800366BE +:10229000CC8003FFFF010CFFFFFFFF01001FFF8148 +:1022A0000061301F3F873CE6FC8733873CE6FC87B4 +:1022B000F3F8039E0F1F03F8039E0F1F03E13CFE7C +:1022C0000C07CFE13CFE0C07CF99033E3086C3E6F6 +:1022D000CF380F9EF3E6CF380F9EF39E0327CC81B5 +:1022E000039E0327CC8103E0FFE10CE6CFE0FFE192 +:1022F0000CE6CF9803060000FF9803060000FFFFDE +:10230000FF1EF0F8038003663099C380036630999E +:10231000C39FF3010CF8FF9FF3010CF8FF983339CA +:102320003C01CF9833393C01CF9833FF0C793F986B +:10233000333ECCE0F398333ECCE0F39FF33E00987D +:10234000CF9FF33E0098CF80033E30E7C380033E2B +:1023500030E7C3FFFFFFFFFFFFFFFFFFFFFFFF307F +:1023600030300076312E377433005600560043006B +:102370000FE01FC01FC03F803FF87FF07FE007C025 +:1023800007800F000E001C001800100014A03FF082 +:102390007FF8E01C6E18EC1C68186018E01C605890 +:1023A000E01C7FF83FF014A04552524F5200484FB6 +:1023B0004C44004845415400574F524B5900424F3E +:1023C0004F535400534C454550004F4646000000C3 +:1023D0003BEC7BEE63E663E663E663E663E663E6B7 +:1023E00063666226600660067FFE3FFC0000010215 +:1023F00004081020408000000008000201000003D3 +:1024000004070000000000000000372811241FBE50 +:10241000CFEFD8E0DEBFCDBF12E0A0E0B1E0ECE24C +:10242000FEE602C005900D92A63CB107D9F728E060 +:10243000A6ECB2E001C01D92AF30B207E1F712E1A5 +:10244000C6E0D2E104C02197FE010E94F536C530F6 +:10245000D107C9F70E94EC280C9414370C940000A3 +:102460004F925F926F927F928F929F92AF92BF92A4 +:10247000CF92DF92EF92FF920F931F93CF93DF9350 +:1024800000D000D0CDB7DEB74B015C0129013A0185 +:102490006701780120E030E0A9010E94983287FDB1 +:1024A000A6C020E030E0A901C301B2010E94983229 +:1024B00087FD9DC020E030E0A901C801B6010E945F +:1024C000983287FD94C081E02091D9073091DA07D6 +:1024D0002130310509F080E08093FA078092BF0730 +:1024E0009092C007A092C107B092C2074092C30762 +:1024F0005092C4076092C5077092C607C092C70782 +:10250000D092C807E092C907F092CA076091ED0720 +:102510007091EE078091EF079091F0070E949D3235 +:1025200020E030E04AE754E40E949A3469837A83D9 +:102530008B839C838092CB079092CC07A092CD078F +:10254000B092CE079B01AC01C301B2010E94FE32E2 +:102550002B013C014092CF075092D0076092D107E7 +:102560007092D20729813A814B815C81C701B60103 +:102570000E949A346B017C01C092D307D092D40799 +:10258000E092D507F092D6078091D7079091D807AF +:10259000019769F5A501940160E070E0CB010E940C +:1025A0002D346093CB077093CC078093CD07909325 +:1025B000CE07A301920160E070E0CB010E942D34B0 +:1025C0006093CF077093D0078093D1079093D20781 +:1025D000A701960160E070E0CB010E942D3460936A +:1025E000D3077093D4078093D5079093D6070F90A5 +:1025F0000F900F900F90DF91CF911F910F91FF904F +:10260000EF90DF90CF90BF90AF909F908F907F9092 +:102610006F905F904F90089580389105B0F46034CA +:10262000710598F4EEEEF3E290E1969FD001A07868 +:102630001124A80F6770E60FF11D9491AA5EBC4F9C +:10264000442321F08C91982B9C93089590958C9124 +:102650009823FACFDF92EF92FF920F931F93CF93BD +:10266000DF937C01D22E8B01040F111DEB0177FF4C +:1026700002C0D0E0C0E0C8010134110514F080E4CC +:1026800090E0C817D9073CF44D2DBE01C7010E9448 +:102690000C132196F0CFDF91CF911F910F91FF90F6 +:1026A000EF90DF900895CF92DF92EF92FF920F9319 +:1026B0001F93CF93DF936B01122FEC017C01E40E8B +:1026C000F11CCE15DF0544F4202F412FB601CE01B9 +:1026D0000E942A132196F5CFDF91CF911F910F9180 +:1026E000FF90EF90DF90CF9008952F923F924F92FE +:1026F0005F926F927F928F929F92AF92BF92CF9292 +:10270000DF92EF92FF920F931F93CF93DF9300D04E +:102710001F92CDB7DEB7C22ED12C9601280F391FDC +:1027200037FD4FC0803891050CF04BC0E9824A015B +:102730007B013C01402E512C160127E0220E311C5A +:1027400093E0359427949A95E1F78B01B12CA12C55 +:102750001B821A82EA81FB8183E0F595E7958A95D1 +:10276000E1F7EA0DFB1DE80DF91DE4918A819B81DB +:102770008770992720E830E002C0359527958A9523 +:10278000E2F7C901F0E0E223F923EF2B41F04981A0 +:10279000B8018A819B81860D971D0E940C138A8146 +:1027A0009B8101969B838A838C159D059CF2A20CCC +:1027B000B31C0F5F1F4FC8018E199F098415950523 +:1027C0003CF20F900F900F90DF91CF911F910F91DE +:1027D000FF90EF90DF90CF90BF90AF909F908F9041 +:1027E0007F906F905F904F903F902F9008950F9340 +:1027F0001F93CF93DF93EC018B0140E001960E9481 +:102800000C1340E0B801CE0101970E940C13B801EF +:102810006F5F7F4F40E0CE010E940C13B801615002 +:10282000710940E0CE010E940C1340E0B801CE01D6 +:10283000DF91CF911F910F910C940C1380E0E6E192 +:10284000F3E081118FEF0024819381938193819331 +:102850000394D1F7EBEFF7E01786168615861486FA +:1028600008956F927F928F929F92AF92BF92CF9274 +:10287000DF92EF92FF920F931F93CF93DF938038F5 +:1028800091050CF057C0603471050CF053C07B010A +:1028900037E0E322FF2433E0759567953A95E1F739 +:1028A000DB01B695BA2FAA27B795A7955D01C0E8B9 +:1028B000AC0EB11CA80EB91EA80FB91FAA5EBC4F62 +:1028C00000E810E0081B190B90E080E0E8E0F0E081 +:1028D0004F018E189F0830E0FA01E80FF91FC491EC +:1028E0007D906D01D1E0CD1AD1080E2C01C0CC0F26 +:1028F0000A94EAF77C2AE6017882E114F10499F05F +:102900006730710581F0E491EC01CA0DDB1DCA5EF0 +:10291000DC4FF0E0082C02C0F595E7950A94E2F749 +:10292000F881EF2BE8830196821793071CF40817B0 +:10293000190791F6DF91CF911F910F91FF90EF90C2 +:10294000DF90CF90BF90AF909F908F907F906F90CF +:102950000895AF92BF92CF92DF92EF92FF920F93C2 +:102960001F93CF93DF936C017B018B01040F151F25 +:10297000EB015E01AE18BF08C017D10759F069918D +:10298000D601ED91FC910190F081E02DC6010995F1 +:10299000892B79F7C501DF91CF911F910F91FF909E +:1029A000EF90DF90CF90BF90AF900895FC01538DD2 +:1029B000448D252F30E0842F90E0821B930B541719 +:1029C00010F0CF96089501970895FC01918D828DA6 +:1029D000981761F0A28DAE0FBF2FB11D5D968C913F +:1029E000928D9F5F9F73928F90E008958FEF9FEF7E +:1029F0000895FC01918D828D981731F0828DE80F3A +:102A0000F11D858D90E008958FEF9FEF0895FC01F3 +:102A1000918D228D892F90E0805C9F4F821B9109C0 +:102A20008F739927089586E197E00E94071521E0AA +:102A3000892B09F420E0822F089580E090E0892B13 +:102A400029F00E94131581110C9400000895FC01D7 +:102A5000A48DA80FB92FB11DA35ABF4F2C91848DFF +:102A600090E001968F739927848FA689B7892C935C +:102A7000A089B1898C91837080648C93938D848DAF +:102A8000981306C00288F389E02D80818F7D8083B2 +:102A90000895EF92FF920F931F93CF93DF93EC0172 +:102AA00081E0888F9B8D8C8D98131AC0E889F989F5 +:102AB000808185FF15C09FB7F894EE89FF896083F8 +:102AC000E889F98980818370806480839FBF81E079 +:102AD00090E0DF91CF911F910F91FF90EF900895BB +:102AE000F62E0B8D10E00F5F1F4F0F731127E02E96 +:102AF0008C8D8E110CC00FB607FCFACFE889F989CE +:102B0000808185FFF5CFCE010E942715F1CFEB8D97 +:102B1000EC0FFD2FF11DE35AFF4FF0829FB7F894A1 +:102B20000B8FEA89FB8980818062CFCFCF93DF93BF +:102B3000EC01888D8823B9F0AA89BB89E889F989D5 +:102B40008C9185FD03C0808186FD0DC00FB607FC0A +:102B5000F7CF8C9185FFF2CF808185FFEDCFCE013D +:102B60000E942715E9CFDF91CF910895833081F03E +:102B700028F4813099F08230A9F008958730A9F0C7 +:102B80008830C9F08430B1F4809180008F7D03C01B +:102B9000809180008F7780938000089584B58F772F +:102BA00084BD089584B58F7DFBCF8091B0008F7771 +:102BB0008093B00008958091B0008F7DF9CFCF93BE +:102BC000DF93282F30E0F901EA50FC4D8491F901A0 +:102BD000E152FE4DD491F901E553FE4DC491CC2351 +:102BE000A1F081110E94B615EC2FF0E0EE0FFF1F4F +:102BF000EF53FE4DA591B491EC91ED2381E090E06F +:102C000009F480E0DF91CF91089580E090E0FACF61 +:102C10001F93CF93DF93282F30E0F901EA50FC4D4A +:102C20008491F901E152FE4DD491F901E553FE4D35 +:102C3000C491CC23A9F0162F81110E94B615EC2F58 +:102C4000F0E0EE0FFF1FE954FE4DA591B4918FB750 +:102C5000F894EC91111108C0D095DE23DC938FBF5E +:102C6000DF91CF911F910895DE2BF8CFCF93DF93A3 +:102C700090E0FC01E152FE4D249185539E4DFC01F4 +:102C800084918823C9F090E0880F991FFC01E355D7 +:102C9000FE4DA591B491FC01E954FE4DC591D4912E +:102CA00061110DC09FB7F8948C91209582238C936D +:102CB0008881282328839FBFDF91CF9108956230B8 +:102CC00051F49FB7F8943C91822F809583238C9385 +:102CD000E8812E2BEFCF8FB7F894EC912E2B2C930D +:102CE0008FBFEACFCF93DF93EC0161E089E00E94D0 +:102CF0003616209731F460E089E0DF91CF910C9493 +:102D00000816CF3FD10511F461E0F6CFEFEFF3E203 +:102D1000E491E33029F140F4E130B1F0E230D9F050 +:102D2000C038D1058CF7E7CFE73021F1E83051F119 +:102D3000E430B1F780918000806280938000D0936E +:102D40008B00C0938A0004C084B5806884BDC7BD71 +:102D5000DF91CF91089584B5806284BDC8BDF8CF5E +:102D600080918000806880938000D0938900C09318 +:102D70008800EECF8091B00080688093B000C0934F +:102D8000B300E6CF8091B00080628093B000C09322 +:102D9000B400DECF3FB7F8948091E0029091E10259 +:102DA000A091E202B091E30226B5A89B05C02F3F97 +:102DB00019F00196A11DB11D3FBFBA2FA92F982F61 +:102DC0008827BC01CD01620F711D811D911D42E05C +:102DD000660F771F881F991F4A95D1F708958F9224 +:102DE0009F92AF92BF92CF92DF92EF92FF924B01F0 +:102DF0005C010E94CA166B017C010E94CA166C1904 +:102E00007D098E099F09683E734081059105A8F3ED +:102E100021E0821A9108A108B10888EEC80E83E06B +:102E2000D81EE11CF11C81149104A104B10429F7FE +:102E3000FF90EF90DF90CF90BF90AF909F908F90DA +:102E400008952FB7F8946091DC027091DD028091B3 +:102E5000DE029091DF022FBF089584E98093BC00C9 +:102E60008091BC0084FDFCCF08958093BB0084E872 +:102E70008093BC008091BC0087FFFCCF089584EA5A +:102E80008093BC008091BC0087FFFCCF88E70C9446 +:102E900035170E943F1780E48093BB0084E880933D +:102EA000BC00E6E1F3E09091BC0097FFFCCF91916C +:102EB0009093BB008093BC0097E0E631F90799F747 +:102EC0008091BC0087FFFCCF0C942D17CF93C82FA7 +:102ED0000E943F1780E00E9435178C2F0E94351703 +:102EE000CF910C942D17480F592F511D4138510582 +:102EF00014F040E850E0481BFB0177FD379633E0C3 +:102F0000F595E7953A95E1F7F695FE2FEE27F795BB +:102F1000E795E80FF91FEA5EFC4F6770772781E0BD +:102F200090E001C0880F6A95EAF7382F213041F40C +:102F3000415078F08191DF011197832B8C93F8CF6A +:102F40008095415030F09191DF01119798239C9327 +:102F5000F8CF0895CF92DF92EF92FF920F93CF9325 +:102F6000DF936C017B01C42FD22F202F0E94731797 +:102F7000B7016D0F711D61507109603471052CF43A +:102F8000202F4C2FC6010E947317202F4D2FB70101 +:102F9000C6010E942A13C6018C0F911D202F4D2FB0 +:102FA000B7010197DF91CF910F91FF90EF90DF90E4 +:102FB000CF900C942A132F923F924F925F926F9270 +:102FC0007F928F929F92AF92BF92CF92DF92EF92B9 +:102FD000FF920F931F93CF93DF93CDB7DEB72A975E +:102FE0000FB6F894DEBF0FBECDBF9A8389836A30D7 +:102FF00061F5DC0152968C91B8E08B9F9001112411 +:10300000E981FA8186859785820F931F9787868746 +:103010001586148681E090E02A960FB6F894DEBFFC +:103020000FBECDBFDF91CF911F910F91FF90EF9019 +:10303000DF90CF90BF90AF909F908F907F906F90D8 +:103040005F904F903F902F9008956D3019F3298134 +:103050003A813A872987D9011C96AD90BC90B0E897 +:10306000AB16B1040CF07BC0F901C684D784F0E440 +:10307000CF16D1040CF073C0D90152966C905297C0 +:1030800045E09501649E200D311D11241216130692 +:103090000CF065C0262C312C910153E0220F331F18 +:1030A0005A95E1F72C0D3D1D121613060CF057C072 +:1030B0005196BC91BB83E985FA85F089FC83649FB6 +:1030C000B00111249B012355334E3A832983712C7F +:1030D000E981FA818491F5E07F1201C080E0460128 +:1030E00038E0532E282F30E03E832D834C8080FF24 +:1030F0004B80411004C03B818C813817E1F010E017 +:1031000000E00615C0F4D501A00FB11FB887AF834A +:10311000F12CE12CE61460F4B701680D791D442D03 +:103120008F8198850E940C13BFEFEB1AFB0AF2CF38 +:103130000F5F1F4FE6CF8D819E81959587955A949D +:10314000820C931C5110CECF7394E981FA81319691 +:10315000FA83E983A20CB31CF6E07F12B9CFA985EC +:10316000BA8552962C915297422F50E01C968D9121 +:103170009C91B6E02B9F800D911D1124E985FA8565 +:10318000958784872389222309F444CF6AEF640357 +:103190009001659F300D112420583F4F28173907A3 +:1031A0000CF038CFDF010190F081E02D0190F0812B +:1031B000E02D6AE0CD0109952DCF0F931F93CF939A +:1031C000DF938C01D0E0C0E0F801EC0FFD1F6491AB +:1031D000662341F08BEF97E00E94DB17892B11F0FB +:1031E0002196F2CFCE01DF91CF911F910F910895DB +:1031F000682F8BEF97E00C94DB17089590E080E048 +:10320000089580917A00806980937A008EE480939B +:103210007C0061E070E080E090E00E94EF1683B7F0 +:10322000817F826083BF80E130E020E093B79160CE +:1032300093BF889593B79E7F93BF90917A0096FD38 +:10324000FCCF4091780050917900240F351F8150B8 +:1032500069F780917A008F7780937A0084E03695C1 +:1032600027958A95E1F750E040E064EB7BE281E14D +:1032700090E00E94D233C901089588EC80937C00CD +:1032800080917A00806880937A0065E070E080E049 +:1032900090E00E94EF1680917A00806480937A001B +:1032A00080917A0086FDFCCF609178007091790062 +:1032B0006A54714090E080E00E949D3226EF38E22F +:1032C0004CE95FE30E949A34089590917A009069E6 +:1032D00090937A008E50806480937C0083B7817FC6 +:1032E000826083BF20E290E080E033B7316033BF7B +:1032F000889533B73E7F33BF30917A0036FDFCCFDF +:103300004091780050917900840F951F215069F702 +:1033100020917A002F7720937A0025E09695879563 +:103320002A95E1F708958FE00E946519A091E702C0 +:10333000B091E8029C010E941E340E949F3228E551 +:1033400039E743E353E40E949A340E941335CB01DA +:1033500008952091F50230E0E1E7F2E090E080E0AE +:10336000AF01415752404217530724F44191840F53 +:10337000911DF6CF08958091EE02882369F086E0D2 +:103380000E94DF15892B41F06AE070E080E090E058 +:103390000E94EF161092EE0208950F931F93CF93A1 +:1033A00080914801882399F0CFEF0FEE11E061E0A2 +:1033B00085E00E940816C8010197F1F760E085E0FA +:1033C0000E940816C8010197F1F7C15081F7CF910B +:1033D0001F910F9108952F923F924F925F926F929B +:1033E0007F928F929F92AF92BF92CF92DF92EF9295 +:1033F000FF920F931F93CF93DF9310E000E0D0E094 +:10340000C0E03EE3E32EF12C40ECC42ED12CAA24E4 +:10341000A394B12C60E2662E712C70E4272E312C1F +:103420004C2E86E00E94DF1521E0892B09F020E078 +:103430002093EE02F092F402E092F302D092F202B4 +:10344000C092F102B092F002A092EF0282E890E006 +:10345000909300038093FF028091FF0290910003FC +:1034600095958795582E9FE1591243C0F092F4022A +:10347000E092F302D092F202C092F102B092F00216 +:10348000A092EF02EEEBF0E0F0930003E093FF0276 +:103490009FE5592E0E941E1482E080930D08109320 +:1034A000080800930708E0E3F0E0F0930A08E093CF +:1034B00009088EE50E94F818109208081092070873 +:1034C00070920A0860920908912C812C841438F5B6 +:1034D00080911503F40196E0989FE00DF11D1124F1 +:1034E000E05BFE4F80810E94F818EFEF8E1A9E0A73 +:1034F000EDCFF0E65F12CECFF092F402E092F3024D +:10350000D092F202C092F102B092F002A092EF02C9 +:10351000309200032092FF0280E2582EBBCF10931E +:1035200008080093070870920A0860920908852D20 +:103530000E94F8180E94BB190E94491786E00E9459 +:10354000DF15892B09F088CF8091EE02811184CF9D +:1035500080901503F6E08F9E40011124C401805B2A +:103560009E4F4C01FC01EC0FFD1F50820E94CD19B3 +:103570006AE070E080E090E00E94EF162196005F24 +:103580001F4FC530D10509F04BCFF4011582DF91F3 +:10359000CF911F910F91FF90EF90DF90CF90BF9050 +:1035A000AF909F908F907F906F905F904F903F90E3 +:1035B0002F9008953F924F925F926F927F928F92D9 +:1035C0009F92AF92BF92CF92DF92EF92FF920F93B2 +:1035D0001F93CF93DF93CDB7DEB72E970FB6F89436 +:1035E000DEBF0FBECDBF80911203882309F4A5C1B1 +:1035F0001092B3071092B4071092B5071092B60755 +:103600008090B3079090B407A090B507B090B6072C +:10361000C0900803D0900903E0900A03F0900B03D8 +:10362000A7019601C501B4010E942D342B013C0174 +:1036300020E030E0A9010E94423518160CF0A0C12C +:10364000C301B2010E94133580914901882309F416 +:10365000B8C1C092BB07D092BC07E092BD07F09200 +:10366000BE07E12CF12C00EA10E420E030E040E459 +:1036700050E46E31710540F0E12CF12C00E81FE3BD +:1036800020E030E040E05FE360E070E080E391E460 +:103690000E9430128091F907882309F42AC10E9400 +:1036A00021176D837E838F8398878091E1079091A6 +:1036B000E207A091E307B091E4074D815E816F813D +:1036C0007885481B590B6A0B7B0B8091ED07909115 +:1036D000EE07A091EF07B091F007481759076A0766 +:1036E0007B0708F406C1E091DB07F091DC078081DD +:1036F0009181A281B38189839A83AB83BC83E0915A +:10370000DF07F091E0079C01AD016081718182814A +:1037100093810E942D344B015C012091E907309187 +:10372000EA074091EB075091EC0769817A818B8120 +:103730009C810E942D346B017C012091CF07309138 +:10374000D0074091D1075091D207C501B4010E9422 +:10375000FE322091E5073091E6074091E70750914E +:10376000E8070E942E342B013C014092E50750925D +:10377000E6076092E7077092E8073090FA07311089 +:103780001AC02091CB073091CC074091CD075091C2 +:10379000CE07C701B6010E94FE329B01AC01C301F6 +:1037A000B2010E942D346093E5077093E607809381 +:1037B000E7079093E8074090E5075090E607609090 +:1037C000E7077090E8071091F5079091F6079E873C +:1037D000A091F707AD870091F807212F392F4A2FC5 +:1037E000502FC301B2010E94423518160CF0CCC014 +:1037F000812F9E85AD85B02F8093E5079093E607D6 +:10380000A093E707B093E807332009F4D6C02091CE +:10381000CB073091CC074091CD075091CE07C50121 +:10382000B4010E94FE324B015C012091D30730911C +:10383000D4074091D5075091D607C701B6010E9421 +:10384000FE329B01AC016091E5077091E607809123 +:10385000E7079091E8070E942D34A50194010E948A +:103860002E346B017C019B01AC01612F7E858D851F +:10387000902F0E94983287FD18C01091F107909107 +:10388000F2079E87A091F307AD870091F407212FDF +:10389000392F4A2F502FB601C7010E94983287FD59 +:1038A00004C01C2DDE86ED860F2DE091DD07F09122 +:1038B000DE07812F9E85AD85B02F80839183A28303 +:1038C000B38389819A81AB81BC818093E90790930E +:1038D000EA07A093EB07B093EC078D819E81AF813F +:1038E000B8858093E1079093E207A093E307B09334 +:1038F000E4076091B7077091B8078091B90790917C +:10390000BA070E940C35CB012E960FB6F894DEBF95 +:103910000FBECDBFDF91CF911F910F91FF90EF9020 +:10392000DF90CF90BF90AF909F908F907F906F90DF +:103930005F904F903F900C947216809111036091AC +:1039400044017091450181110EC080910603909150 +:10395000070320911003BC01222329F06091430149 +:10396000680F792F711D90E080E00E949D32609376 +:10397000B3077093B4078093B5079093B60740CE12 +:10398000C301B20190585ECE8091F1079091F20789 +:10399000A091F307B091F40789879A87AB87BC871A +:1039A0009C01AD01C301B2010E94983287FF2CCF68 +:1039B00089859A85AB85BC851FCF812C912C5401BC +:1039C00034CF20E030E040E05FE3C701B6010E9461 +:1039D0002E349B01AC01C501B4010E94423518167A +:1039E0004CF41092B7071092B8071092B9071092D2 +:1039F000BA077FCF80E090E0AFE7B3E48093B707EA +:103A00009093B807A093B907B093BA0772CF4F92BB +:103A10005F926F927F928F929F92AF92BF92CF925E +:103A2000DF92EF92FF92CF93DF938090E902909024 +:103A3000EA02A090EB02B090EC02C0911503D0E036 +:103A4000C501B4010E940C356B017C0120E030E01F +:103A500048E453E4C501B4010E94983293E0CC0FCE +:103A6000DD1F9A95E1F7CE5FDE4F87FF31C02881D9 +:103A7000398150E040E02551310941095109C70120 +:103A8000B6010E94D13628EC30E040E050E00E94C0 +:103A9000D233CA01B9016B5E7F4F8F4F9F4F0E9497 +:103AA0009F32609308037093090380930A039093F5 +:103AB0000B03DF91CF91FF90EF90DF90CF90BF90FD +:103AC000AF909F908F907F906F905F904F900895F0 +:103AD0004A805B80712C612C20E030E04CE853E49C +:103AE000C501B4010E94983287FF1FC08880998069 +:103AF000B12CA12CA7019601285C3109410951097B +:103B0000C301B201681979098A099B090E94D1365B +:103B100020E530E040E050E00E94D233CA01B90114 +:103B2000680D791D8A1D9B1DBACF2C813D8150E007 +:103B300040E02419350946095709C701B601685103 +:103B40007140810991090E94D13620E530E040E0C2 +:103B500050E00E94D233CA01B901640D751D861D63 +:103B6000971D9DCFFC0101900020E9F73197AF012F +:103B7000481B590BBC018BEF97E00C94A9148F9252 +:103B80009F92AF92BF920F931F93CF93DF93CDB7C6 +:103B9000DEB7A1970FB6F894DEBF0FBECDBF19A256 +:103BA000423008F44AE08E010F5D1F4F842E912CA5 +:103BB000B12CA12CA50194010E94FC33E62FB90180 +:103BC000CA01EA30F4F4E05DD801EE938D01232BB5 +:103BD000242B252B79F790E080E0109719F0CD0188 +:103BE0000E94B21DA1960FB6F894DEBF0FBECDBFE6 +:103BF000DF91CF911F910F91BF90AF909F908F90C9 +:103C00000895E95CE1CFCF92DF92EF92FF92CF93DC +:103C1000DF9397FF19C06B017C018DE20E94F818B9 +:103C2000EC0166277727CB016C197D098E099F0966 +:103C30004AE00E94BF1D8C0F9D1FDF91CF91FF9026 +:103C4000EF90DF90CF9008954AE0DF91CF91FF9001 +:103C5000EF90DF90CF900C94BF1D4F925F926F92C8 +:103C60007F928F929F92AF92BF92CF92DF92EF920C +:103C7000FF920F931F93CF936B017C01742EAC01C5 +:103C80009B010E949735882399F086EB92E0CF91B3 +:103C90001F910F91FF90EF90DF90CF90BF90AF906A +:103CA0009F908F907F906F905F904F900C94B21D7B +:103CB00046015701E894B7F82FEF3FEF4FE75FE772 +:103CC000C501B4010E94973581110DC02FEF3FEF60 +:103CD0004FE75FE7C501B4010E94983218161CF443 +:103CE0008AEB92E0D4CF2FEF3FEF4FE75FE4C701BD +:103CF000B6010E94423518161CF48EEB92E0C7CF35 +:103D00002FEF3FEF4FE75FECC701B6010E949832FB +:103D100087FDF3CF20E030E0A901C701B6010E9482 +:103D2000983210E000E087FF08C08DE20E94F8188A +:103D30008C01F7FAF094F7F8F094C0E060E070E0DE +:103D400080E09FE37C1641F020E030E040E251E467 +:103D50000E949A34CF5FF6CFA70196010E942E34BD +:103D60002B013C010E9413354B015C014AE00E948B +:103D7000BF1D7C01E00EF11ECC23B1F1C501B401E1 +:103D80000E949D329B01AC01C301B2010E942D34FF +:103D90004B015C018EE20E94F818E80EF91EC1503A +:103DA00018F120E030E040E251E4C501B4010E9486 +:103DB000FE322B013C010E9413354B01B12CA12C8A +:103DC0004AE0C501B4010E94BF1DE80EF91EC501FD +:103DD000B4010E949D329B01AC01C301B2010E945B +:103DE0002D344B015C01DBCFC701CF911F910F91A7 +:103DF000FF90EF90DF90CF90BF90AF909F908F900B +:103E00007F906F905F904F900895CF92DF92EF92E6 +:103E1000FF920F931F93CF93DF93C82F81E0DC2F86 +:103E2000D827D0930C08C0930B0880930D080C2F53 +:103E30002EE046E661E370E081E090E00E94AA1780 +:103E40002091130330911403253F81E03807B8F423 +:103E5000A4E6B0E00E941E3424EF31E040E050E0E0 +:103E60000E94D233BA01A9014E5F5F4F6F4F7F4F5F +:103E70002EE061E370E081E090E00E9453136091D6 +:103E8000B3077091B4078091B5079091B6070E946F +:103E90000C359B01AC01A4E6B0E00E94F13334EF95 +:103EA000C32EDD24D394E12CF12CA70196010E94AE +:103EB000D233DA01C9010296A11DB11D02970C2F60 +:103EC0002DE043E062E370E00E9453136091B3077A +:103ED0007091B4078091B5079091B6070E940C3598 +:103EE0009B01AC01A4E6B0E00E94F133A70196016A +:103EF0000E94D233DA01C9010296A11DB11D0397B8 +:103F000024E045E06CE370E00E9453136091B30736 +:103F10007091B4078091B5079091B6070E940C3557 +:103F20009B01AC01A4E6B0E00E94F133A701960129 +:103F30000E94D23389019A010E5F1F4F2F4F3F4FCE +:103F40000150110941E3E42EF12C4D2FB701C801B6 +:103F50000E940C138FEFE81AF80A8DE3E816F104BB +:103F6000A1F76091B3077091B4078091B507909164 +:103F7000B6070E940C359B01AC01A4E6B0E00E949C +:103F8000F13324EF31E040E050E00E94D233DA0117 +:103F9000C9010296A11DB11D0397ED2E04E025E095 +:103FA00040EF51E16BE370E00E9475130C2F2EE09F +:103FB00047E161E370E088E690E00E94AA17609113 +:103FC000B7077091B8078091B9079091BA070E941E +:103FD0000C359B01AC012F5F310941095109A7E163 +:103FE000B0E00E94F133CC24C394DD24DA94ED2CAC +:103FF000FD2CA70196010E94D233422F2EE061E3EF +:1040000070E088E690E00E945313C0930C08D093B0 +:104010000B0882E090E0909308088093070807E37C +:1040200010E010930A08009309086091B30770919B +:10403000B4078091B5079091B60740E00E942D1E0D +:1040400088EF0E94F8188EEE91E10E94DD1889E653 +:1040500090E0909308088093070810930A08009353 +:1040600009086091B7077091B8078091B9079091DE +:10407000BA070E940C359B01AC012F5F3109410941 +:104080005109A4E6B0E00E94F133A70196010E9415 +:10409000D233CA01B9010E94031E8CEE91E10E9445 +:1040A000DD18D0930C08C0930B08DF91CF911F91BE +:1040B0000F91FF90EF90DF90CF9008956F927F92D5 +:1040C0008F929F92AF92BF92CF92DF92EF92FF9228 +:1040D0000F931F93CF93DF93B090150377247394BE +:1040E000B11001C0712C809142018150990B109246 +:1040F000F4021092F302880F991F9093F2028093BA +:10410000F10281E090E09093F0028093EF028B2D1A +:1041100090E0880F991F909300038093FF0286E040 +:104120000E94DF1521E0892B09F020E02093EE02A8 +:10413000FF24F39472E0972EE6E08E2EFCE0CF2E63 +:10414000D12C0E941E14C091FF02D0910003D5957E +:10415000C795EC2E8E011127C801870D911D77FCA4 +:104160009A958B199109712C97FD06C083309105A2 +:1041700014F082E090E0782EF0920C0810920B0878 +:1041800090920D08109208081092070810920A08E1 +:104190001092090882EA9CE10E94DD1810920C0836 +:1041A000F0920B081092080810920708A72C072C11 +:1041B000000CBB08C501019654E0880F991F5A9561 +:1041C000E1F790930A088093090880EA9CE10E9435 +:1041D000DD186C2E671890E080E098012A193B09E1 +:1041E0005901209142018C010F5F1F4F6216D0F4DC +:1041F000D0920808C0920708980144E0220F331FAC +:104200004A95E1F730930A08209309088A0D9B1D0F +:10421000889E9001899E300D1124C901805B9E4FBC +:104220000E94B21DC801639403301105D1F60E94AB +:10423000BB190E94491786E00E94DF15892BB9F44B +:104240008091EE02811113C00E94CD19E0921503F6 +:10425000DF91CF911F910F91FF90EF90DF90CF9062 +:10426000BF90AF909F908F907F906F900895BC2EDD +:1042700068CF0E940F371F93CF93DF93EC01162F67 +:104280000E94BC33181739F0612FCE01DF91CF9116 +:104290001F910C94C433DF91CF911F910895AF9279 +:1042A000BF92CF92DF92EF92FF920F931F93CF9323 +:1042B000DF936091470182E090E00E943B21609192 +:1042C000460183E090E00E943B216091450184E03B +:1042D00090E00E943B216091440185E090E00E94C3 +:1042E0003B216091430186E090E00E943B21609178 +:1042F0004C0187E090E00E943B2160914B0188E0F7 +:1043000090E00E943B2160914A0189E090E00E9488 +:104310003B21609180018AE090E00E943B21609106 +:1043200049018BE090E00E943B21609148018CE0C4 +:1043300090E00E943B21609115038DE090E00E9487 +:104340003B21609142018EE090E00E943B21609110 +:104350004E018FE090E00E943B216091ED0280E1F0 +:1043600090E00E943B2160910D0381E190E00E946A +:104370003B2182E1E82EF12C10E006E08091420121 +:104380001817B8F5109F60011124D0E0C0E0FE01BD +:10439000EC0DFD1DE05BFE4F6081C7018C0F9D1F82 +:1043A0000E943B212196C630D10589F7670186E03E +:1043B000C80ED11C88E0189FE0011124CE5FDE4FAB +:1043C0008EE0E80EF11C69812296C6010E943B2115 +:1043D000560182E0A80EB11CFE0132976081C60131 +:1043E00001960E943B216501AE14BF0461F71F5F77 +:1043F000C5CFDF91CF911F910F91FF90EF90DF908C +:10440000CF90BF90AF9008958F929F92AF92BF923E +:10441000CF92DF92EF92FF92CF938FEF90E00E94C6 +:1044200072168BEA94E00197F1F78EE00E9465190D +:104430007C018AE00E94DF159091C602981729F04E +:1044400091E090930C038093C602809101019FEF4D +:10445000980F90930101811106C00E9493199093C7 +:104460000F0380930E036091B7077091B807809196 +:10447000B9079091BA070E940C35CB010E947216C1 +:104480008090E9029090EA02A090EB02B090EC02DA +:10449000B70190E080E00E949D32A50194010E9446 +:1044A0002D342DEC3CEC4CE45DE30E94FE32A50182 +:1044B00094010E942E346093E9027093EA02809383 +:1044C000EB029093EC020E94071D60911303709120 +:1044D000140390E080E00E949D326B017C012091EA +:1044E000B3073091B4074091B5075091B6070E94C9 +:1044F00098328111B5C02091080330910903409191 +:104500000A0350910B03C701B6010E942D346B01C1 +:104510007C0120E030E0A9010E94423518160CF021 +:1045200095C020E030E040EA50E4C701B6010E94A7 +:10453000423518160CF494C060910603709107037D +:1045400090E080E00E949D322091080330910903A1 +:1045500040910A0350910B030E942D346B017C01A2 +:1045600020E030E0A9010E94423518160CF087C007 +:10457000C701B6010E9413356530710508F083C08C +:1045800080914F01811105C080914D0181110E94E0 +:10459000CD1981E080934F0110924D01809113035A +:1045A00090911403853F21E0920710F010920001D2 +:1045B00020910001211140C0843F9140E8F58FEF28 +:1045C00090E00E9472160E94CD19C1E0C0930001D4 +:1045D0000E945E200E944F21C0930C038EE00E9437 +:1045E0006519BC0190E080E00E949D326093E90271 +:1045F0007093EA028093EB029093EC021092FE0219 +:1046000080910603909107032CE231E03093F4028D +:104610002093F30220E233E03093F2022093F10280 +:104620002AE030E03093F0022093EF02880F991FC8 +:10463000909300038093FF02CF91FF90EF90DF9063 +:10464000CF90BF90AF909F908F90089520E030E082 +:1046500040EA50ECC701B6010E94983287FF6CCF48 +:10466000609108037091090380910A0390910B03F4 +:104670000E94133570931403609313035DCFC70139 +:10468000B601905877CF10924F0188CF0C94BC336D +:104690002F923F924F925F926F927F928F929F9252 +:1046A000AF92BF92CF92DF92EF92FF920F931F9340 +:1046B000CF93DF938C0186E080930D0881E0809397 +:1046C0000C0810920B086091D9027091DA02072E43 +:1046D000000C880B990B0E949F322B013C0143ED8B +:1046E000C42E42E0D42E7601C2E0D0E05AE0A52EDE +:1046F000B12CBE010D2E000C880B990B0E949F322D +:104700009B01AC0160E070E080E291E40E944735DB +:104710009B01AC01C301B2010E949A340E940C3586 +:10472000CB01B5010E94E136F701819391937F019E +:104730002197F8F61093DA020093D902C7ECD2E081 +:1047400094E0E92EF12C22E0822E912C3AE0232EE7 +:10475000312CB401092C000C880B990B0E949F325C +:104760009B01AC0160E070E080E291E40E9447357B +:104770002B013C016091D9027091DA02072E000CE6 +:10478000880B990B0E949F32A30192010E949A34D8 +:104790000E940C35CB01B1010E94E136F601208167 +:1047A0003181821B930BF2E3F89FB001F99F700DEA +:1047B0001124072E000C880B990B0E949F32288130 +:1047C00039814A815B810E942E342B013C0120E01B +:1047D00030E0A9010E94983281117CC04882598240 +:1047E0006A827B8201E022E346E270E060E0C7017A +:1047F00004970E9453138EECA82EBB24BA940FEF9B +:104800001FEF288139814A815B8160E070E080E898 +:1048100090E40E942D342B013C01B5010B2C000CBF +:10482000880B990B0E949F329B01AC01C301B2011E +:104830000E942E340E940C35F0920808E09207087E +:1048400070930A0860930908F60160817181600F16 +:10485000711F072E000C880B990B0E94031E0F5F1F +:104860001F4FF2E3AF0EB11C0230110551F6249632 +:1048700021E0821A910882E0C80ED11CECE2EE0E13 +:10488000F11CF8E8EF16F10409F063CF00E022E034 +:1048900040E870E060E090E080E00E9453132DE07B +:1048A00040E863E370E090E080E00E945313DF9102 +:1048B000CF911F910F91FF90EF90DF90CF90BF901D +:1048C000AF909F908F907F906F905F904F903F90B0 +:1048D0002F900895C301B20190582DEC3CEC4CE4AC +:1048E0005FE30E94FE32A30192010E942E3468838E +:1048F00079838A839B8376CF86E00E94DF1521E04F +:10490000892B09F020E02093EE020E941E14809172 +:10491000FF0290910003959587950E9448230E947D +:1049200049170E94BB1986E00E94DF15892B69F7A1 +:104930008091EE028111E9CF0E94CD198091D902B8 +:104940009091DA0208952F923F924F925F926F9268 +:104950007F928F929F92AF92BF92CF92DF92EF920F +:10496000FF920F931F93CF93DF93CDB7DEB7659779 +:104970000FB6F894DEBF0FBECDBF182FE091F50241 +:10498000F0E0EF58FD4F80818150990B1092F402B6 +:104990001092F302880F991F9093F2028093F10214 +:1049A00081E090E09093F0028093EF02812F90E0FD +:1049B000880F991F909300038093FF0286E00E9466 +:1049C000DF1521E0892B09F020E02093EE02109200 +:1049D0000C0881E080930B088091FF029091000306 +:1049E0009C01359527953D872C873C853D8B6C84B4 +:1049F0007D8477249301211B310948E3429FC00144 +:104A0000439F900D1124280E391E2114310409F101 +:104A10006627772762197309072E000C880B990BFC +:104A20000E949F322AE939E949E15FE30E94FE32A0 +:104A30004B015C01B101330C880B990B0E949F3232 +:104A40009B01AC01C501B4010E942E340E940C35BB +:104A50001B010E941E14430182E0881A9108610123 +:104A600098E4C91AD108F3013396FC8BEB8B97FCC1 +:104A70008AC0E091F502F0E0EF58FD4F8081881583 +:104A8000190409F00CF47FC001E020E340E370E07A +:104A900060E0C6010E94531396012D5F3F4F3A8B91 +:104AA000298B00E02AE24AE263E070E089899A8972 +:104AB0000E94531370E060E0C6010E94F71370E09B +:104AC00060E08601015D1F4FC8010E94F7136FE28D +:104AD00070E0C6010E94F7136FE270E0C8010E9407 +:104AE000F7130E94A919F401E80FF11DEE0FFF1F43 +:104AF000EF5DFD4F80819181988B8F8773E0E72E6A +:104B0000F12C512C412CB12CA12CF50153E0F59541 +:104B1000E7955A95E1F7E40DF51D2F853889E20FE9 +:104B2000F31FE491C5018770992720E830E002C0A7 +:104B3000359527958A95E2F7C901F0E0E223F9233C +:104B4000EF2B79F0C501880F991F8A0D9B1D01E09D +:104B500023E043E0B701E989FA898E0F9F1F0E9485 +:104B60005313FFEFAF1ABF0A2EE0A216B10469F685 +:104B700032E0430E511C43E0E40EF11C8DE2E816D6 +:104B8000F10409F0C0CF9FEF891A990AE8E3CE0E2D +:104B9000D11C2B893C898216930609F068CF80913D +:104BA0004E01811140C00E94A919F301E80FF11DC7 +:104BB000EE0FFF1FEF52FE4F40815181EE24E39430 +:104BC00000E124E260E370E080E390E00E9475136E +:104BD0000E9449170E94BB1986E00E94DF15892BAD +:104BE00001F58091EE0281111CC00E94CD198D89C2 +:104BF00065960FB6F894DEBF0FBECDBFDF91CF91A3 +:104C00001F910F91FF90EF90DF90CF90BF90AF90EA +:104C10009F908F907F906F905F904F903F902F90DC +:104C200008951C85D9CE823009F083C00E94A9194D +:104C3000860D972D911DFC01E858F34EE490880FE6 +:104C4000991FFC01EF57FE4F80809180D12CC12C21 +:104C500004E310E3CE1408F0BBCFF401EC0DFD1D0E +:104C6000449180E1840F833008F45EC03E85313F7B +:104C7000E9F0323FD1F1403F08F058C0193710F049 +:104C8000085F10E088E0489FA001112448555B4E62 +:104C9000602F70E028E0812F90E00E943114185FAF +:104CA00090EF9E873FEFC31AD30AD4CF4E39D0F787 +:104CB0001D3710F0085F10E0A02EB12C612E712C72 +:104CC000E3E04E9FA001112442535D4E23E0B50165 +:104CD000C3010E94311421E04DEC52E1B501C30142 +:104CE00003960E9431141C5FDDCF4F31D8F619377F +:104CF00010F0085F10E0A02EB12C612E712CF7E0AF +:104D00004F9FA00111244C505E4E27E0B501C30116 +:104D10000E94311421E04DEC52E1B501C301079628 +:104D20000E943114185FBECF4E87BCCF20EF2E8774 +:104D3000B9CF80E390E09093080880930708E1E3FF +:104D4000F0E0F0930A08E093090881E080930D08F1 +:104D50000E94A919FC858F0FE82FF0E0EE0FFF1FCE +:104D6000E85DF34E65917491CE0101960E949132F7 +:104D7000CE0101960E94B21D2BCF1F920F920FB64B +:104D80000F9211242F933F934F935F936F937F93D1 +:104D90008F939F93AF93BF93EF93FF9386E197E039 +:104DA0000E942715FF91EF91BF91AF919F918F9135 +:104DB0007F916F915F914F913F912F910F900FBE17 +:104DC0000F901F9018951F920F920FB60F921124FB +:104DD0002F938F939F93EF93FF93E0912607F0918A +:104DE00027078081E0912C07F0912D0782FD1BC0E1 +:104DF000908180912F078F5F8F73209130078217EA +:104E000041F0E0912F07F0E0EA5EF84F958F809334 +:104E10002F07FF91EF919F918F912F910F900FBED0 +:104E20000F901F9018958081F4CF1F920F920FB6AC +:104E30000F9211242F933F938F939F93AF93BF9320 +:104E40008091DC029091DD02A091DE02B091DF0240 +:104E50003091DB0223E0230F2D3758F50196A11D79 +:104E6000B11D2093DB028093DC029093DD02A093BE +:104E7000DE02B093DF028091E0029091E102A09106 +:104E8000E202B091E3020196A11DB11D8093E00200 +:104E90009093E102A093E202B093E302BF91AF913D +:104EA0009F918F913F912F910F900FBE0F901F9068 +:104EB000189526E8230F0296A11DB11DD2CF1F928F +:104EC0000F920FB60F9211242F933F934F935F933E +:104ED0006F937F938F939F93EF93FF9383B1817031 +:104EE00029B19091E602981709F49DC030E0220F95 +:104EF000232F221F330B922F8093E6024091E5026D +:104F0000241709F490C02093E5022091EF0230911C +:104F1000F002981719F03195219531094091FF025F +:104F2000509100036091F3027091F402240F351F39 +:104F3000261737070CF48BC02091EF023091F00256 +:104F4000981719F03195219531094091FF02509140 +:104F500000036091F1027091F202240F351F621775 +:104F600073070CF46FC04091EF025091F002981754 +:104F700019F05195419551092091FF02309100039C +:104F8000240F351F309300032093FF0241E0981354 +:104F900040E02091E402421709F440C02091EF0262 +:104FA0003091F002981719F03195219531096091EF +:104FB000FF0270910003E091F302F091F402260FDA +:104FC000371F2E173F070CF44CC02091EF02309191 +:104FD000F002981719F03195219531096091FF027F +:104FE00070910003E091F102F091F202260F371F59 +:104FF000E217F3078CF12091EF023091F00298173D +:1050000019F03195219531098091FF0290910003AB +:10501000820F931F909300038093FF024093E4025A +:1050200081E080930C03FF91EF919F918F917F918D +:105030006F915F914F913F912F910F900FBE0F9005 +:105040001F9018952091F1023091F2029BCF209190 +:10505000F3023091F40296CF8091F1029091F20226 +:10506000D9CF8091F3029091F402D4CF18950F9389 +:105070001F93CF93DF93E6E1F7E01382128288EE6D +:1050800093E0A0E0B0E084839583A683B7838CE9A6 +:1050900092E09183808385EC90E09587848784EC0F +:1050A00090E09787868780EC90E0918B808B81ECF5 +:1050B00090E0938B828B82EC90E0958B848B86ECD6 +:1050C00090E0978B868B118E128E138E148EEBEFE1 +:1050D000F7E0138212821682178280E180871582A0 +:1050E000148212868EEA92E091838083158614865C +:1050F0001786168681E0808B118A828B138ACFEB0C +:10510000D7E027EB37E03F8F2E8F2BEB37E03D8F3B +:105110002C8F23EB37E039A328A31AAE1AAA1BAAB7 +:105120001CAA1DAA40E050E06FE773E44EAB5FABF2 +:1051300068AF79AF44E650E060E070E04EA75FA74B +:1051400068AB79AB21E030E0398F288F3B8F2A8F15 +:105150008BAF80E090E0A0E3B1E488839983AA83D9 +:10516000BB8380E090E0A0E0BFE38C839D83AE83AF +:10517000BF8380E090E0A0E8BFE388879987AA8793 +:10518000BB8780E090E0A0E3B1EC8C879D87AE8781 +:10519000BF878DEC9CECACE4BDEB888B998BAA8B24 +:1051A000BB8B80E090E0A0E2B1EC8C8B9D8BAE8B52 +:1051B000BF8B0E9421170EA51FA528A939A9601B26 +:1051C000710B820B930B6AA37BA38CA39DA3DF912E +:1051D000CF911F910F910895CF93DF93CDB7DEB795 +:1051E0002A970FB6F894DEBF0FBECDBF789484B572 +:1051F000826084BD84B5816084BD85B5826085BDD3 +:1052000085B5816085BD80916E00816080936E0060 +:105210001092810080918100826080938100809152 +:105220008100816080938100809180008160809303 +:1052300080008091B10084608093B1008091B000C3 +:1052400081608093B00080917A00846080937A00BE +:1052500080917A00826080937A0080917A008160E8 +:1052600080937A0080917A00806880937A0010920F +:10527000C1001092B90088E48093B8000E943F17E3 +:1052800080E00E94351703EF11E282E1E82E82E20E +:10529000F82EF80184910E9435170F5F1F4FE0161A +:1052A000F106B9F70E942D1711E01093B8000E9483 +:1052B000491781E28093030860E08EE00E94361671 +:1052C00060E08FE00E94361661E085E00E943616AD +:1052D00061E089E00E94361662E087E00E9436169F +:1052E00062E088E00E94361662E086E00E94361690 +:1052F00062E08AE00E9436168FEF90E00E947216FC +:1053000060E085E00E94081680917A0087608093B3 +:105310007A0080917A00886080937A007894109364 +:105320006B00109368001BBB90E080E00E94462356 +:10533000182F81E090E00E944623912F8F3F9840E4 +:1053400009F0BBC082E090E00E944623182F83E062 +:1053500090E00E944623912F90934701809346014D +:1053600084E090E00E944623182F85E090E00E94A0 +:105370004623912F909345018093440186E090E06D +:105380000E9446238093430187E090E00E944623D9 +:1053900080934C0188E090E00E94462380934B016B +:1053A00089E090E00E94462380934A018AE090E0E1 +:1053B0000E944623809380018BE090E00E94462368 +:1053C00091E0811101C090E0909349018CE090E060 +:1053D0000E94462391E0811101C090E09093480122 +:1053E0008DE090E00E944623809315038EE090E0CC +:1053F0000E944623282E809342018FE090E00E9475 +:10540000462380934E0180E190E00E94462391E084 +:10541000811101C090E09093ED0281E190E00E9443 +:10542000462380930D03A2E08A2EA1E09A2EB0E5D8 +:10543000AB2EB1E0BB2E12E1E12EF12C312C231466 +:1054400009F447C010E000E0C701800F911F0E94DF +:105450004623F501E00FF11F80830F5F1F4F0630D9 +:10546000110591F7670126E0C20ED11C3EE0E30E64 +:10547000F11C3401C6010E944623082F10E0102FB2 +:105480000027F301118300832601F2E04F0E511C27 +:10549000C60101960E944623082BF3010193119344 +:1054A0003F0162014E145F0429F73394F8E08F0E38 +:1054B000911C26E0A20EB11CC2CF68E090E080E013 +:1054C0000E943B216FEF81E090E00E943B210E940F +:1054D0004F211091ED0280EC111101C088EC0E9467 +:1054E000661780EA111101C081EA0E9466170E94C6 +:1054F00001199093E8028093E7020E949319909318 +:105500000F0380930E030091460110914701109301 +:105510000703009306038EE00E946519BC0190E02A +:1055200080E00E949D326093E9027093EA028093CA +:10553000EB029093EC020E943D190E94071D20E0AF +:1055400030E040EA51E460910803709109038091D2 +:105550000A0390910B030E942E346B017C01B80169 +:1055600090E080E00E949D329B01AC01C701B60132 +:105570000E94983287FF04C090E080E00E9472167B +:105580001092F1071092F2071092F3071092F407AD +:10559000412C512CEFE76E2EE3E47E2E4092F5076E +:1055A0005092F6076092F7077092F807A090DD0717 +:1055B000B090DE078091F907F501C080D180E280CC +:1055C000F380882309F481C7A3019201C701B601C2 +:1055D0000E944235181634F5F501408251826282EC +:1055E00073828090E5079090E607A090E707B0905F +:1055F000E807C090F507D090F607E090F707F09025 +:10560000F807A7019601C501B4010E94423518169A +:10561000C4F4C092E507D092E607E092E707F09263 +:10562000E8071FC020E030E0A901C701B6010E94D1 +:10563000983287FFD6CFF501108211821282138231 +:10564000D0CFC090F107D090F207E090F307F09030 +:10565000F407A7019601C501B4010E94983287FDA5 +:10566000D8CF81E08093F90783B181708093E602FF +:1056700089B190E0880F892F881F990B8093E502EC +:105680002091E6029091E50281E0291380E0809369 +:10569000E4028CE291E09093F4028093F30280E2C2 +:1056A00093E09093F2028093F1028AE090E090936D +:1056B000F0028093EF02000F111F1093000300937C +:1056C000FF020E94211760930203709303038093EB +:1056D0000403909305030E94CD190E94CD192090D8 +:1056E000FF02309000039101359527953A8729876D +:1056F000309307032093060386E00E94DF15482EAF +:1057000081119FC08091FE02882309F49AC00E94F3 +:10571000CD190E9421176B017C01C092FA02D09230 +:10572000FB02E092FC02F092FD0286E00E94DF158F +:10573000892B59F40E9421176C197D098E099F0944 +:10574000643F71408105910580F30E9421176C1917 +:105750007D098E099F09643F71408105910508F418 +:105760005CC48FEF90E00E9472160E94CD19512CFC +:105770004AE0642E712C1092F502852D0E94A3241C +:10578000582EF8E0F81708F439C0E82FF0E0E55398 +:10579000F44D0C94F536E62B8E2E052F6D2F7B2FB6 +:1057A000B52FC32FE32FED2F20E030E0A901C70173 +:1057B000B6010E94983287FF54CF1092E5071092ED +:1057C000E6071092E7071092E8074BCF3EE1632E01 +:1057D000712C81E08093F502852D0E94A324582E20 +:1057E00022E0821709F434C2281708F4E8C088239D +:1057F00009F410C131E0831709F40FC10E944F2151 +:1058000081E080930C0329853A8530930703209328 +:1058100006038CE291E09093F4028093F30280E21D +:1058200093E09093F2028093F1028AE090E09093EB +:10583000F0028093EF02C1018E7F9093000380936A +:10584000FF024092FE0280911003882309F110911B +:105850004A011123E9F00E942117C090F602D0906E +:10586000F702E090F802F090F9026C197D098E09B8 +:105870009F0928EE33E040E050E00E94FC332117FE +:1058800038F0109210030E94CD1981E080934D01F1 +:1058900080910C038823E9F180911103882349F159 +:1058A00020E030E040EA51E4609108037091090380 +:1058B00080910A0390910B030E942E346B017C01AE +:1058C000609106037091070390E080E00E949D3292 +:1058D0009B01AC01C701B6010E94983287FF04C04A +:1058E00090E080E00E9472160E94CD1981E08093C2 +:1058F0004D0110920C0310921103109212030E949A +:105900002117609302037093030380930403909321 +:1059100005030E94211700910203109103032091B7 +:10592000040330910503601B710B820B930B20E67F +:105930003AEE40E050E00E94FC33122F2093010326 +:105940008091110381110BC080914C01882339F0A3 +:10595000281728F081E0809311030E94CD198091CF +:10596000120381110BC080914B01882339F0181765 +:1059700028F081E0809312030E94CD190E94042236 +:105980000E94DA1A0E94211780910408362F381BD2 +:10599000832F90910508992309F455C33093060885 +:1059A0001092050880E090E0892B09F498CE0E94BF +:1059B0001315882309F493CE0E94000090CE83E053 +:1059C000581609F448C194E0591218CF8091420149 +:1059D000883008F0FECE91E0980F909342018093BA +:1059E00015030E94EB19E091150328E0E29FF001F6 +:1059F0001124EE5FFE4F88ED90E09183808324E3D5 +:105A000031E03383228386E891E095838483778233 +:105A10006682DFCE0E945E20DCCE8E010F5F1F4FBC +:105A2000812C912C5401839498EEE92E93E0F92E69 +:105A3000CC24C394D12CE091150324E0E29FF00123 +:105A40001124C4010197E80FF91FEE0FFF1FEE5F4D +:105A5000FE4F808191819093070380930603E8ECC9 +:105A6000F0E0F093F402E093F302F092F202E0929D +:105A7000F102D092F002C092EF02880F991F90932A +:105A800000038093FF02F1E0F0934D0186E00E9455 +:105A9000DF1521E0892B09F020E02093EE020E941F +:105AA0001E1422E020930D080E9404220E94DA1A9C +:105AB000109208081092070810920A08109209081C +:105AC00088E392E20E94DD18C501B4010E94031E22 +:105AD00082EC92E00E94B21D80914F011092080862 +:105AE00010920708882309F48BC080E190E090931E +:105AF0000A08809309088BE292E20E94DD18109256 +:105B0000080810920708E0E2F0E0F0930A08E0933A +:105B1000090884E292E20E94DD186091FF02709110 +:105B2000000375956795072E000C880B990B0E9452 +:105B3000031E0E94BB190E94491786E00E94DF15D0 +:105B4000892B09F0ACCF8091EE028111A8CF809112 +:105B5000FF029091000395958795F80181939193A9 +:105B60008F010E94CD196AE070E080E090E00E9411 +:105B7000EF16FFEF8F1A9F0AAF0ABF0A24E08216C2 +:105B80009104A104B10409F056CF8FEF90E00E9478 +:105B900072168BEA94E00197F1F70E943D190E947A +:105BA00013354B0178876F83C980DA800B811C81A4 +:105BB000C6014E968017910708F00BCEED80FE804F +:105BC000C8014E968E159F0508F003CE87E080939E +:105BD000F50280E00E94A324882309F4FACDE09125 +:105BE000150338E0E39FF0011124EE5FFE4FD182F0 +:105BF000C08213830283F582E48297828682E9CD94 +:105C000020E130E030930A08209309088EE192E207 +:105C10000E94DD186091E9027091EA028091EB0226 +:105C20009091EC020E94133590E080E04AE00E94DF +:105C3000BF1D109208081092070880E290E0909330 +:105C40000A088093090882E192E20E94DD1871CF70 +:105C50000E94EB19BECD87E08093F502809142014E +:105C6000813009F4B6CD80E00E94A324882309F492 +:105C7000B0CD1091150300914201802F8150990BF6 +:105C8000BC011817190639F411501093150301506F +:105C9000009342019ECD812F90E086179707BCF7B5 +:105CA000E6E01E9FD001112450E040E09C012F5FF0 +:105CB0003F4FFA01EA0FFB1FE05BFE4FF680F082D8 +:105CC0004F5F5F4F46305105A1F7B3E0220F331FFE +:105CD000BA95E1F7F901EE5FFE4F2081318143E093 +:105CE000880F991F4A95E1F7DC01AE5FBE4F119610 +:105CF0003C932E938281938113969C938E9312975B +:105D00008481958115969C938E93149786819781B3 +:105D100017969C938E9316971F5FBDCF82E080935A +:105D2000F50210E078E2C72ED12CECE2AE2EBB24B7 +:105D3000B394F0E28F2EF3E09F2EA4E1EA2EF12C33 +:105D4000812F0E94A324182F813021F130F082305E +:105D500009F43FC00E944F210ECD809146019091E1 +:105D60004701B092F402A092F3029092F202809264 +:105D7000F1027092F0026092EF02880F991F9093E7 +:105D800000038093FF020E947C249093470180933C +:105D90004601D6CF8091440190914501D092F40202 +:105DA000C092F302E0E9F1E0F093F202E093F10235 +:105DB0007092F0026092EF02880F991F9093000397 +:105DC0008093FF020E947C249093450180934401BC +:105DD000B7CF8091430190E0F092F402E092F30299 +:105DE00028EC30E03093F2022093F1027092F0023E +:105DF0006092EF02880F991F909300038093FF0237 +:105E00000E947C24809343019BCF83E08093F50222 +:105E1000F12C01E010E08F2D0E94A324F82E31E038 +:105E20008317E9F18317F8F082E0F81293CF80919D +:105E30004A0190E01092F4021092F30228E631E059 +:105E40003093F2022093F1027092F0026092EF021E +:105E5000880F991F909300038093FF020E947C2477 +:105E600080934A01D8CF80914C0190E01092F402C7 +:105E70001092F302ECE3F0E0F093F202E093F1020F +:105E80001093F0020093EF02880F991F9093000384 +:105E90008093FF020E947C2480934C01BCCF8091B0 +:105EA0004B0190E01092F4021092F30228E730E0E8 +:105EB0003093F2022093F102E5E0F0E0F093F0027B +:105EC000E093EF02880F991F909300038093FF02E5 +:105ED0000E947C2480934B019ECF84E08093F50246 +:105EE000809149010E94A32491E0811101C090E0BA +:105EF0009093490140CC10E0EAE0EE2EF5E0DF2E71 +:105F0000A9E0CA2EE092F502812F0E94A324182F47 +:105F1000882321F08130E1F000E009C0D092F50241 +:105F2000809180010E94A3248093800101E0F09081 +:105F3000ED0280ECF11001C088EC0E94661780EA47 +:105F4000F11001C081EA0E9466170111DBCF02CF78 +:105F5000C092F5028091ED020E94A32491E081118C +:105F600001C090E09093ED02E1CF86E08093F502CE +:105F7000809148010E94A32491E0811101C090E02A +:105F800090934801F8CB80910D0390E01092F402B9 +:105F90001092F302E4EFF1E0F093F202E093F102E9 +:105FA00021E030E03093F0022093EF02880F991F38 +:105FB000909300038093FF020E947C2480930D0342 +:105FC0000E94CD19D8CB88E08093F50280914E01D4 +:105FD0000E94A32480934E01CECB0E941E14EE2477 +:105FE000E39400E320E34FE352E270E060E088E2F4 +:105FF00090E00E9475130E94491764E670E080E00B +:1060000090E00E94EF1686E00E94DF15892BD9F7F9 +:106010008091EE028111F7CFD3CF8091100391E0F0 +:10602000892780931003882351F00E9421176093E1 +:10603000F6027093F7028093F8029093F90281E0E0 +:1060400080930C03FECB90910308391748F48F5FBF +:10605000891708F0A7CC81E083BF889513BEA2CC36 +:1060600011E010930508609304088091FF07909158 +:1060700000080196909300088093FF0780918001AB +:10608000882309F4BCC10E941E1401E020E440E80A +:1060900070E060E090E080E00E94531310930D08E0 +:1060A00010930C0810920B08E12C00E120E14EEC5B +:1060B00053E270E060E090E080E00E94751383E1BD +:1060C00090E0909308088093070884E090E0909314 +:1060D0000A088093090880911503E6E08E9FC001AD +:1060E0001124805B9E4F0E94B21D809113039091FA +:1060F0001403853F914008F02DC180911203811156 +:106100002BC180911103811129C18091100381114C +:1061100027C180914F01811125C120E030E044E387 +:1061200053E46091B7077091B8078091B9079091D7 +:10613000BA070E94983287FF17C185E025E330E057 +:10614000309308082093070821E030E030930A08D4 +:106150002093090892E090930D08C82ED12C9091BD +:106160004E01CC0CDD1C911101C1F601E657FD4F2B +:1061700040815181E12C0EE02CE161E070E080E58E +:1061800090E00E947513F601E458FD4F4081518163 +:10619000E12C0EE02EE061E070E081E790E00E94EB +:1061A000751381E080930D080E943D1920E030E0D6 +:1061B00040EA52E40E94423518160CF0FAC00E94E0 +:1061C000211752E0660F771F881F991F5A95D1F744 +:1061D00028EE33E040E050E00E94FC3320FFE9C0AD +:1061E0000E94CD1960910E0370910F0390E080E042 +:1061F0000E949D3220E030E048EC52E40E949A3444 +:106200006B017C0160910D0370E090E080E00E94E2 +:106210009F329B01AC01C701B6010E94983287FDF5 +:10622000D4C0E12C0EE02EE040E753E262E270E0E1 +:1062300082E090E00E94751303E110E010930808DB +:106240000093070820E130E030930A082093090802 +:106250000E943D1941E00E942D1E88EF0E94F8180F +:106260008EE693E20E94DD18109308080093070859 +:1062700088E190E090930A08809309080E94011930 +:10628000BC0190E080E00E949D3220E030E04AE7CF +:1062900054E40E949A3442E00E942D1E8CE693E260 +:1062A0000E94DD18109308080093070880E290E030 +:1062B00090930A088093090860910E0370910F0370 +:1062C00090E080E00E949D3220E030E04AE754E414 +:1062D0000E949A3441E00E942D1E8AE693E20E94B9 +:1062E000DD18109308080093070888E290E0909367 +:1062F0000A088093090883E693E20E94DD1889E387 +:1063000090E0909308088093070882E190E09093D2 +:106310000A088093090884E080930D0860911303B4 +:1063200070911403653F91E0790708F462C08FE52E +:1063300093E20E94DD1800E020E248E460E170E0B2 +:1063400087E390E00E94AA1780E00E94051F0E9448 +:10635000491728CB80E0F2CE81E0F0CE82E0EECE8D +:1063600083E0ECCE84E0EACE86E0E8CE8330C1F074 +:1063700038F4813069F0823081F088EA93E20AC013 +:106380008530A1F080F08630C1F78EEA93E202C03A +:106390008AEC93E20E94DD18F6CE84EC93E2FACF09 +:1063A0008EEB93E2F7CF88EB93E2F4CF83EB93E2AB +:1063B000F1CFE12C0EE02EE04CE853E262E170E018 +:1063C00082E090E00E9475130DCF0E94211742E0F9 +:1063D000660F771F881F991F4A95D1F728EE33E083 +:1063E00040E050E00E94FC3320FF1BCF0E94CD19FB +:1063F00023CF90E080E04AE00E94BF1D9CCF0E9426 +:106400001E140E943D1920E030E040EA52E40E9450 +:106410004235181694F40E94211732E0660F771F58 +:10642000881F991F3A95D1F728EE33E040E050E0FD +:106430000E94FC3320FD0E94CD1960910E037091E3 +:106440000F0390E080E00E949D3220E030E048ECB5 +:1064500052E40E949A346B017C0160910D0370E05C +:1064600090E080E00E949F329B01AC01C701B60121 +:106470000E94983287FF12C00E94211722E0660F07 +:10648000771F881F991F2A95D1F728EE33E040E047 +:1064900050E00E94FC3320FD0E94CD19809113032F +:1064A00090911403853FE1E09E0710F087EE93E0A2 +:1064B0000E94482300E023E040E860E370E090E0C1 +:1064C00080E00E94531381E040CFC092E507D09254 +:1064D000E607E092E707F092E807E091DB07F0912A +:1064E000DC0780819181A281B3818093E907909339 +:1064F000EA07A093EB07B093EC0720E030E04FE70A +:1065000053E4C701B6010E94423518160CF04CC97D +:106510004092E5075092E6076092E7077092E8071D +:10652000A0C8FB01DC0105900D920020E1F7089561 +:106530000E94DA3208F481E00895E89409C097FBDC +:106540003EF490958095709561957F4F8F4F9F4F4A +:106550009923A9F0F92F96E9BB279395F69587958E +:1065600077956795B795F111F8CFFAF4BB0F11F451 +:1065700060FF1BC06F5F7F4F8F4F9F4F16C08823F8 +:1065800011F096E911C0772321F09EE8872F762F2E +:1065900005C0662371F096E8862F70E060E02AF06F +:1065A0009A95660F771F881FDAF7880F969587955B +:1065B00097F90895990F0008550FAA0BE0E8FEEF30 +:1065C00016161706E807F907C0F012161306E407B7 +:1065D000F50798F0621B730B840B950B39F40A26B0 +:1065E00061F0232B242B252B21F408950A2609F48E +:1065F000A140A6958FEF811D811D08950E94113342 +:106600000C9482330E94743338F00E947B3320F064 +:10661000952311F00C946B330C94713311240C946A +:10662000B6330E94933370F3959FC1F3950F50E0FA +:10663000551F629FF001729FBB27F00DB11D639F34 +:10664000AA27F00DB11DAA1F649F6627B00DA11DDA +:10665000661F829F2227B00DA11D621F739FB00D80 +:10666000A11D621F839FA00D611D221F749F3327F0 +:10667000A00D611D231F849F600D211D822F762F89 +:106680006A2F11249F5750409AF0F1F088234AF066 +:10669000EE0FFF1FBB1F661F771F881F91505040D2 +:1066A000A9F79E3F510580F00C946B330C94B633E0 +:1066B0005F3FE4F3983ED4F3869577956795B79559 +:1066C000F795E7959F5FC1F7FE2B880F911D969573 +:1066D000879597F9089597F99F6780E870E060E0E3 +:1066E00008959FEF80EC089500240A94161617066B +:1066F00018060906089500240A94121613061406B3 +:1067000005060895092E0394000C11F4882352F015 +:10671000BB0F40F4BF2B11F460FF04C06F5F7F4FCD +:106720008F4F9F4F089557FD9058440F551F59F0B4 +:106730005F3F71F04795880F97FB991F61F09F3F6E +:1067400079F087950895121613061406551FF2CF97 +:106750004695F1DF08C0161617061806991FF1CFE7 +:1067600086957105610508940895E894BB2766270E +:106770007727CB0197F90895F999FECF92BD81BD96 +:10678000F89A992780B50895262FF999FECF1FBA58 +:1067900092BD81BD20BD0FB6F894FA9AF99A0FBE4A +:1067A00001960895052E97FB1EF400940E94E9338C +:1067B00057FD07D00E94FC3307FC03D04EF40C9425 +:1067C000E93350954095309521953F4F4F4F5F4F9E +:1067D000089590958095709561957F4F8F4F9F4F4D +:1067E00008950E941E34A59F900DB49F900DA49F04 +:1067F000800D911D11240895A1E21A2EAA1BBB1B26 +:10680000FD010DC0AA1FBB1FEE1FFF1FA217B3077C +:10681000E407F50720F0A21BB30BE40BF50B661F92 +:10682000771F881F991F1A9469F760957095809556 +:1068300090959B01AC01BD01CF010895A29FB001CD +:10684000B39FC001A39F700D811D1124911DB29FA4 +:10685000700D811D1124911D08955058BB27AA2742 +:106860000E9445340C9482330E94743338F00E94A5 +:106870007B3320F039F49F3F19F426F40C947133E4 +:106880000EF4E095E7FB0C946B33E92F0E949333F1 +:1068900058F3BA17620773078407950720F079F455 +:1068A000A6F50C94B5330EF4E0950B2EBA2FA02D5F +:1068B0000B01B90190010C01CA01A0011124FF27AD +:1068C000591B99F0593F50F4503E68F11A16F040A8 +:1068D000A22F232F342F4427585FF3CF46953795A7 +:1068E0002795A795F0405395C9F77EF41F16BA0B6C +:1068F000620B730B840BBAF09150A1F0FF0FBB1F1A +:10690000661F771F881FC2F70EC0BA0F621F731F62 +:10691000841F48F4879577956795B795F7959E3FBF +:1069200008F0B0CF9395880F08F09927EE0F979550 +:10693000879508950E94AE340C9482330E947B3375 +:1069400058F00E94743340F029F45F3F29F00C9412 +:106950006B3351110C94B6330C9471330E94933302 +:1069600068F39923B1F3552391F3951B550BBB277E +:10697000AA2762177307840738F09F5F5F4F220FC3 +:10698000331F441FAA1FA9F335D00E2E3AF0E0E8BA +:1069900032D091505040E695001CCAF72BD0FE2F04 +:1069A00029D0660F771F881FBB1F26173707480798 +:1069B000AB07B0E809F0BB0B802DBF01FF27935850 +:1069C0005F4F3AF09E3F510578F00C946B330C9476 +:1069D000B6335F3FE4F3983ED4F386957795679599 +:1069E000B795F7959F5FC9F7880F911D9695879585 +:1069F00097F90895E1E0660F771F881FBB1F6217A4 +:106A000073078407BA0720F0621B730B840BBA0B61 +:106A1000EE1F88F7E09508950E9413356894B11130 +:106A20000C94B63308950E949B3388F09F5798F0DA +:106A3000B92F9927B751B0F0E1F0660F771F881F83 +:106A4000991F1AF0BA95C9F714C0B13091F00E949D +:106A5000B533B1E008950C94B533672F782F8827AC +:106A6000B85F39F0B93FCCF3869577956795B395C4 +:106A7000D9F73EF490958095709561957F4F8F4F33 +:106A80009F4F08950E94DA3208F48FEF0895FA01BB +:106A9000EE0FFF1F309621053105A1F1611571053B +:106AA00061F48038BFE39B0749F168949038810511 +:106AB00061F08038BFEF9B0741F099234AF5FF3F13 +:106AC000E1053105210519F1E8940894E795D9010C +:106AD000AA2329F4AB2FBE2FF85FD0F310C0FF5FBD +:106AE00070F4A695E0F7F73950F019F0FF3A38F452 +:106AF0009F779F930DD00F9007FC9058089546F014 +:106B00000C94713360E070E080E89FE308954FE7F4 +:106B10009F775F934F933F932F930E9447362F9118 +:106B20003F914F915F910E94FE320C94A4350E94D8 +:106B3000DA32880B990B089529F416F00C946B3314 +:106B40000C94B5330C9471330E949B33A8F39638A0 +:106B5000A0F707F80F92E8942BE33AEA48EB5FE7D7 +:106B60000E9414330F920F920F924DB75EB70F929F +:106B70000E948F36E8E6F0E00E94D6354F915F9193 +:106B8000EF91FF91E595EE1FFF1F49F0FE57E0687A +:106B90004427EE0F441FFA95E1F74195550B0E94EB +:106BA00009360F9007FE0C94FD350895DF93CF93BF +:106BB0001F930F93FF92EF92DF927B018C016894F9 +:106BC00006C0DA2EEF010E941133FE01E894A59170 +:106BD0002591359145915591A6F3EF010E944534D9 +:106BE000FE019701A801DA9469F7DF90EF90FF901A +:106BF0000F911F91CF91DF9108959B01AC0160E04F +:106C000070E080E89FE30C949A340C946B330C94FE +:106C1000C3360E949B33D8F39923C9F3940F511DB7 +:106C2000A3F39150504094F059F0882332F0660F4E +:106C3000771F881F91505040C1F79E3F51052CF798 +:106C4000880F911D9695879597F908955F3FACF051 +:106C5000983E9CF0BB27869577956795B79508F485 +:106C6000B1609395C1F7BB0F58F711F460FFE8CFFF +:106C70006F5F7F4F8F4F9F4FE3CF0C94B63316F06B +:106C80000C94C3360C94713368940C946B330E944B +:106C90009B33A8F39923C1F3AEF3DF93CF931F93F4 +:106CA0000F93FF92C92FDD2788232AF02197660FC3 +:106CB000771F881FDAF720E030E040E85FEB9FE3C2 +:106CC000883920F0803E38F021968F770E942E344C +:106CD000E0E9F0E004C00E942E34EDEBF0E00E9409 +:106CE000D6358B01BE01EC01FB2E6F5771097595EE +:106CF000771F880B990B0E949F3228E132E741E30E +:106D00005FE30E941133AF2D9801AE01FF900F9108 +:106D10001F91CF91DF910E9445340C948233FA0188 +:106D2000DC01AA0FBB1F9B01AC01BF5728F422272F +:106D300033274427507820C0B75190F4AB2F00245C +:106D4000469537952795011CA395D2F3002071F045 +:106D5000220F331F441FB395DAF30ED00C942D3459 +:106D600061307105A0E88A07B94630F49B01AC0197 +:106D70006627772788279078309621F02083318303 +:106D80004283538308959F3F31F0915020F48795BB +:106D900077956795B795880F911D9695879597F983 +:106DA0000895DB018F939F930E94F133BF91AF91C0 +:106DB000A29F800D911DA39F900DB29F900D112455 +:106DC000089597FB072E16F4009407D077FD09D09D +:106DD0000E94FB3607FC05D03EF4909581959F4FAD +:106DE0000895709561957F4F0895EE0FFF1F0590F0 +:106DF000F491E02D0994AA1BBB1B51E107C0AA1F07 +:106E0000BB1FA617B70710F0A61BB70B881F991F4B +:106E10005A95A9F780959095BC01CD01089581E020 +:106E200090E0F8940C941437F894FFCF01FFD80049 +:106E3000340186011E000000000000000000000078 +:106E40000000000000000000000000000000000042 +:106E50000000000000000000000000000000000032 +:106E60000000000000000000000000000000013CE5 +:106E7000960040010101280F050101014243312E16 +:106E800035000000000000000000000000000000CD +:106E900000000000000000000000000000000000F2 +:106EA00000000000000000000000000001860281D8 +:106EB000027C0275026F026B0262025F025A025686 +:106EC000024D0243023B023802350232022C0229F3 +:106ED00002240221021E021902140211020B0207EF +:106EE000020302FE01F901F501F001EC01E801E500 +:106EF00001E101DC01D801CF01CA01C7013C0CEC62 +:106F00000B9C0B4C0BFC0AAC0A5C0A0C0ABC096C0F +:106F1000093C0C1C09CC087C082C08DC078C073CBD +:106F200007EC06DC073C079C06EC06DC074C06FC7D +:106F300005AC055C050C05BC046C041C04CC037C8E +:106F4000032C036C041C04DC028C02DC079C0F8005 +:106F50000F640F480F2C0F100FF40ED80EBC0EA0AC +:106F60000E840E680E9C0F4C0E300E140E9C0FF803 +:106F70000DDC0D140EF80DC00DDC0D140EA40D88E3 +:106F80000D6C0D500D340D100F180DA00EFC0CE003 +:106F90000CC40CA80C8C0C2C0FA80C140E0A0604A4 +:106FA000040202020203020348102C100C1070238A +:106FB000F00FD40FB80FB4117C1144110C11D41080 +:106FC0009C106410000000004915A914D6149615F1 +:106FD0000715E514F91400000000DB17A914FE18CA +:106FE000FD186E616E00696E66006F7666002F3365 +:026FF00000009F +:107E0000112484B714BE81FFF0D085E080938100F7 +:107E100082E08093C00088E18093C10086E0809377 +:107E2000C20080E18093C4008EE0C9D0259A86E02C +:107E300020E33CEF91E0309385002093840096BBD3 +:107E4000B09BFECF1D9AA8958150A9F7CC24DD24C4 +:107E500088248394B5E0AB2EA1E19A2EF3E0BF2EE7 +:107E6000A2D0813461F49FD0082FAFD0023811F036 +:107E7000013811F484E001C083E08DD089C08234E0 +:107E800011F484E103C0853419F485E0A6D080C0E4 +:107E9000853579F488D0E82EFF2485D0082F10E0AE +:107EA000102F00270E291F29000F111F8ED06801E7 +:107EB0006FC0863521F484E090D080E0DECF843638 +:107EC00009F040C070D06FD0082F6DD080E0C81688 +:107ED00080E7D80618F4F601B7BEE895C0E0D1E017 +:107EE00062D089930C17E1F7F0E0CF16F0E7DF06D8 +:107EF00018F0F601B7BEE89568D007B600FCFDCFD4 +:107F0000A601A0E0B1E02C9130E011968C91119780 +:107F100090E0982F8827822B932B1296FA010C0160 +:107F200087BEE89511244E5F5F4FF1E0A038BF0790 +:107F300051F7F601A7BEE89507B600FCFDCF97BE46 +:107F4000E89526C08437B1F42ED02DD0F82E2BD052 +:107F50003CD0F601EF2C8F010F5F1F4F84911BD097 +:107F6000EA94F801C1F70894C11CD11CFA94CF0C13 +:107F7000D11C0EC0853739F428D08EE10CD085E9AC +:107F80000AD08FE07ACF813511F488E018D01DD067 +:107F900080E101D065CF982F8091C00085FFFCCF94 +:107FA0009093C60008958091C00087FFFCCF809118 +:107FB000C00084FD01C0A8958091C6000895E0E648 +:107FC000F0E098E1908380830895EDDF803219F02E +:107FD00088E0F5DFFFCF84E1DECF1F93182FE3DFCA +:107FE0001150E9F7F2DF1F91089580E0E8DFEE27F6 +:047FF000FF270994CA +:027FFE00040479 +:00000001FF diff --git a/software/binaries/1.7t4/T12.ino.standard.hex b/software/binaries/1.7t4/T12.ino.standard.hex new file mode 100644 index 0000000..bc9514b --- /dev/null +++ b/software/binaries/1.7t4/T12.ino.standard.hex @@ -0,0 +1,1788 @@ +:100000000C94EE110C9416120C9416120C944727B3 +:100010000C9416120C9416120C9416120C941612C0 +:100020000C9416120C9416120C9416120C941612B0 +:100030000C9416120C9416120C9416120C941612A0 +:100040000C94FD260C9416120C94CB260C94A52629 +:100050000C9416120C941E280C9416120C94161262 +:100060000C9416120C94161207634236B79BD8A74D +:100070001A39685618AEBAAB558C1D3CB7CC5763CD +:10008000BD6DEDFD753EF6177231BF000000803F7B +:1000900008000000BE922449123EABAAAA2ABECD97 +:1000A000CCCC4C3E00000080BEABAAAAAA3E000009 +:1000B0000000BF000000803F000000000008417801 +:1000C000D3BB4387D1133D190E3CC3BD4282AD2B38 +:1000D0003E68EC8276BED98FE1A93E4C80EFFFBE30 +:1000E00001C4FF7F3F0000000000536176650046B9 +:1000F0006C6970004D61696E2053637265656E00B6 +:100100004A5000454E00434E00594553004E4F00A3 +:100110004F4E004F464600496E666F730042696756 +:100120000050494400446972656374005361766508 +:1001300000426F6F7374004F666600536C656570A4 +:10014000005361766500426F6F737400536C656590 +:10015000700044656661756C74005361766500419A +:1001600064640044656C6574650052656E616D651C +:100170000043616C696272617465004368616E6717 +:10018000650052657475726E0041626F7574004C43 +:10019000616E67004C4F5720566F6C0042757A7A3B +:1001A00065720053637265656E00436F6E74726FA3 +:1001B0006C0054696D65720054656D70005469700F +:1001C00000F21415F0CADFB8CCF0D699E8AEA4DF7F +:1001D000EEE8F21D1E08F21C08F21A1B08F0714628 +:1001E00001F046464A01F219F051F218F05A8DF02A +:1001F000C0DAEEAEF0C8B8A5F1302924F0B599E127 +:10020000A4BDF21415F0CBEEAEBDF218F05A8DF28B +:100210001617F21415F0CBEEAEBDF21617F0BCCAED +:100220009EE0BDF21415F21213F21011F20C0DF053 +:1002300094F20E0FF0A2D8DFCBE1EEACDCE8F20ACC +:10024000F08CF20BF04A8DF209F08DF097C59BBD52 +:10025000F20708F2040506F097DEEED5F0CBABEE20 +:10026000F0AEA4DFEEE8F0A8E8BDE2EEE0F0B4996D +:10027000D3EEF200010203F0CCDFB0B8BD00000005 +:1002800000000F1DC20800054442080003845FBF40 +:10029000000FE44410000115451000054CC97F8093 +:1002A00009244F900007C4C11000054D413F0005CF +:1002B0005443810007C44D02000544411400055514 +:1002C00041080007C8810400000000000000000091 +:1002D000000001083FFE001FFF81000000400200F7 +:1002E0000007FE0FF8000402080800040208880056 +:1002F00007FE088800040208880004020888000736 +:10030000FE0888000402094800040202300007FECB +:10031000040C0004021804000000000000000000AB +:10032000000007FE13FE000402084000040208401B +:1003300000040201FC000402388400040208840066 +:1003400007FE0FFF000402080000040209FE00047B +:100350000209020004020B020004020D020007FE63 +:1003600009FE00040201020000000000000000007D +:10037000000001100080001FFF80800001103FFF7F +:1003800000004004080007FC0408000444041000B6 +:10039000044402100004440220001FFF81200000DA +:1003A0004000C00000A00130000110020800060C4F +:1003B0000C07001803B0020000000000000000005D +:1003C0000000004000800000400080000FFF3FFF61 +:1003D0000008410408000841040800084104100016 +:1003E00008410210000FFF02200008410120000018 +:1003F0004000C00000400130000040020800004002 +:100400000C07000040300200000000000000000067 +:1004100000001FDF10200002120C20000224042024 +:1004200000047F8020000424B820000FA48850001E +:1004300014BF88500004A488500004A48848000415 +:10044000BF88880004A48A880007A48C8400044420 +:100450008907000081860200000000000000000003 +:1004600000000FF00491000440025200047F9054F9 +:1004700000045088FF0007D08481000451008100EF +:10048000044901FF0007CA028100044404810004FA +:100490004A1CFF0007EA0481000C5104810000613E +:1004A000C4850000408082000000000000000000C1 +:1004B000000007FF802000008407FF000084040183 +:1004C00000008404010000840401000FFFC7FF0046 +:1004D00000840400000084040000008405FF000084 +:1004E000840501000104090100010409010002045E +:1004F00011FF0004040101000000000000000000E2 +:100500000000008204FF00004402010007FF902168 +:10051000000010102100001017FD00001010210035 +:100520000FFFD06100001010A10000281121000071 +:10053000281221000044142100008210A1000301B0 +:10054000D045000C009002000000000000000000F8 +:100550000000084410FE00042810920005FF2292BB +:100560000000103C920000100892001CFE10920047 +:10057000041020FE0004103E920005FF809200044B +:100580001000920005100E92000610309200041028 +:1005900000FE0000100082000000000000000000CB +:1005A000000007DF8840000A24104000114210FEBE +:1005B00000040022820002FF3D020008010A4200FE +:1005C00009F9103200090920120009F93E02000958 +:1005D0000900020009090E020009F930220008058D +:1005E00000140008020008000000000000000000E5 +:1005F00000000FC3F1E0000FE3F1F8000C70C19EA2 +:10060000000C30C186000C30C183000C30C1830067 +:100610000C60C183000C60C183000FC0C183000F58 +:10062000C0C186000C00C186000C00C198000C03FC +:10063000F1F8000C03F1E0000000000000000000F1 +:10064000000000200820000FFF09FC000020080027 +:100650000000203E880003FE08500002020BFE004E +:1006600003FE0C4000020218400003FE2BFE0002B5 +:100670000208480003FE0888000202085000020237 +:100680002830001FFF91CC0000000000000104048E +:100690007C0000880444000FFF3F44000020044415 +:1006A0000000200C440000200E44001FFF95440071 +:1006B0000020144400005024440000500444000072 +:1006C0008804450001040485000603850300180121 +:1006D0000400000000000000000000000000000016 +:1006E0000000047E21FC0004421104001F7E090466 +:1006F00000044221FC000542110400067E110400A2 +:100700000C0005FC0015FF880000040813FE00041F +:1007100048325200044F125200044812520014A8EA +:10072000125200091F97FF000000000000000000A7 +:10073000000002103DFC00021025040004102504F6 +:100740000005FFBDFC000C102520000C3825200002 +:10075000143825FE0004543D2000045425100004E4 +:10076000922510000511A5090006113D4500041051 +:1007700025830004100101000000000000000000BB +:1007800000001FC8102000124A0C20001AC90420C3 +:100790000017480020001FFFB82000020808500082 +:1007A0001FC8085000020808500003C80848001E6F +:1007B0001408880001540A880015220C8400144390 +:1007C0008907000081060200000000000002FE010F +:1007D000000002823FFF00048202000004FE0200CB +:1007E000000C1004FC00141004080005FF8C10001D +:1007F0000410141000043825FF0004340410000411 +:1008000052041000049184100005100450000410DC +:1008100004200000000000000000000000000000B4 +:10082000000002030010001FDC3EFE0008900212D0 +:1008300000051004FF001FDF84120002120CFE00EE +:100840001FD2021000021222FE000A921410000AA7 +:100850005214100012220DFF0002220810000A425A +:10086000141000040223FF0000000000000000003C +:1008700000000F78BC20000948A45000094AA85085 +:1008800000094AA88800094AB104001FFEAAFB001B +:10089000094AA42000094AA42000094AA7FE000929 +:1008A0004AB420000948A924000B48A22200088A63 +:1008B000A4A2001119204000000000000000000068 +:1008C00000000020008000005001FC0000880104AE +:1008D00000010403080006FB0490000800C060004B +:1008E00007DF018000045106000004511BFE0004D4 +:1008F0005102020007D90202000456020200001051 +:1009000003FE0000100202000000000000000000D2 +:1009100000000208209000027F9890001F8009FFCD +:1009200000022201100006218B100007628DFE00DC +:100930000AA20910000A14111000121431FE00025C +:1009400008111000021411100002221110000243BD +:1009500091FF000281110000000000000000000073 +:100960000000100700000008F83FFE00048020028D +:1009700000008020020000BE23E2001C8222220030 +:1009800004A42222000494222200048822220004CB +:100990009423E200052220020005422002000A0002 +:1009A0003FFE0011FFA00200000000000000000058 +:1009B000000000820FFE00004400400007FF80405E +:1009C000000010004000001000400000101FFF80D9 +:1009D0000FFFC04000001000400000280040000051 +:1009E0002800400000440040000082004000030155 +:1009F000C140000C00808000000000000009FF00E2 +:100A0000400004203FFF00042000000000FE000022 +:100A1000001C420FFC00044200000007FF800000A1 +:100A200004000FFC0004FF0000000481000000052A +:100A3000810FFC00068108040004FF080400008107 +:100A40000FFC00000000000000000000000000009B +:100A5000000001000FFE00010008200003FF082035 +:100A6000000201082000042208200008200BFE00DC +:100A70001020082000005008280000500824000022 +:100A800088082200008810200001041020000203C2 +:100A9000A7FF000C010000000000000000000000A3 +:100AA000000000400080001FFF9FFC000040041079 +:100AB000000FFF02200000003FFF000FFE000000BB +:100AC00008420FF80008420808000FFE0808000856 +:100AD000020FF800080008080008000808000800D5 +:100AE0000FF80010000808000000000000000000DF +:100AF000000007FE0FF800040200000004020000DE +:100B00000007FE00000004023FFE00040200800017 +:100B100007FE008000009004900008910C880006F9 +:100B200093108600029420820000900080000090C4 +:100B30000280001FFF810000000000000000000094 +:100B40000000041012020005FF9FD200050092125F +:100B5000001E28A2120004443FF200048202120088 +:100B600006000212000CFE1FD200141012520004E4 +:100B7000101242000410134200041012820015FFEC +:100B8000820A0008000204000000000000000000CB +:100B90000000002000000000203E04001FFFA2040F +:100BA000001000A2FF0000012204000FFE2204003A +:100BB00000403E440000402224000440222400045F +:100BC0007C22040004402204000A403E0400094044 +:100BD00022240010FF801400000000080000000024 +:100BE000000010FE08200008820BFF0004820A01AA +:100BF0000010FE3C510008820888000882090400A9 +:100C000002FE0C0000040019FC0009FF2820001956 +:100C1000290820000929082000092908200009299D +:100C20002BFF000BFF900000000000000000000000 +:100C300000001F7F90F80001080888000A1008884B +:100C400000047F0107001FC13A0000054909FC00AC +:100C5000044908840004490888000449084800043D +:100C60004908500004490A200004160C58001421B9 +:100C700089870008C0860200000000000080040090 +:100C8000003FF0383033103F9038103390279026D3 +:100C90001030903FF000008004800400003FF03DE1 +:100CA000F020103BF03B7030302B502AD031B03F59 +:100CB000F000008004800400003FF03870303023E2 +:100CC00010279020102010279027903FF0000080E0 +:100CD00004800400003FF03CF03CF02010249024FD +:100CE0009020103CF03CF03FF000008004800400B5 +:100CF000003FF037B0231030303870387030302378 +:100D00001037B03FF000008004FCF4F860E044C00D +:100D10008CC11CC22CC44CC88CD10CA204C4048F3E +:100D2000FC187CBCFC8000BFF81FF8B0281FF8B48A +:100D3000081FF8B1081FF8B048BFF8B288BFF880A4 +:100D4000008000BFF81FF8B0081808B9E819B8B853 +:100D5000381838B9B8B9F8B0F8BFF8800015543F62 +:100D6000F815503FF01550387010203104138C22C4 +:100D7000A817FC2AA80000000015543FFC15543F9A +:100D8000FC15543C0414043CFC14543CFC0054007A +:100D9000A800000000800400003FF03CF034B024C4 +:100DA00090249027902310303038703FF00000805E +:100DB00004FF7CFE7CFCECE8DCC84C984C882408E2 +:100DC0002000000000000000008004E01CF3FCE7AD +:100DD000FCCE0C8E1C9F9C1F3C1F0C0E0C0FFC8726 +:100DE000F881E4C00CE01CF87C000458085808584E +:100DF0000840087FF860185FE85B685FE85B681C84 +:100E0000E85FE80000800400003FF03CF03CF03C6C +:100E1000F0201020103CF03CF03CF03FF00000804F +:100E200004F87CF7BC00007FF80000BFF4AB54ABC3 +:100E300054AB54AB54AB54AB54BFF4C00CF03CCEE9 +:100E40000CBF04B30473007F007E007C007C007C38 +:100E500060BC64BE04CF0CF03C81DC559C29045579 +:100E600000299055D003FCFF002E0026700250820E +:100E700070E600EE04800C001C3FF43FE03FC437F6 +:100E80008C2318303038703CF03FF03FF000008089 +:100E900004058074B857A876B80580F97C4694AAF2 +:100EA000A8F97C068874A8578C75740698F03CCE17 +:100EB0004CBC34B814188010804230607860F8441C +:100EC000C08004B884CFCCF03CF87CE01CC00CCFD0 +:100ED000CCCFCCCFCCCFCCCFCCCFCCCFCCC84CCFC1 +:100EE000CCC00CE01CFCFCF87CE01CC00CC00CC0AE +:100EF0000CC00CC00CC00C80048004FFFCF87CFC0F +:100F0000FC800400002000100008001000270000F2 +:100F100000000000000000000000008004C3FC1876 +:100F2000001800C3FCFFFCFF0C00600060FF0CFF1A +:100F3000FCF0FC06000600F0FC8FC4102020104CD2 +:100F4000C89FE43DF03DF01DE03EF03F709FE48C13 +:100F5000C400003030F87CF33CF4BCF6BCF4BCF6C2 +:100F6000BCF4BCE49CC84CD02CD02CC84CE79CF002 +:100F70003C88240820383038303830383038303821 +:100F80003039303BB03FF03FF0000080041FE03FBD +:100F9000F07038601860186018FFFCFCFCFCFCFC6A +:100FA000FCF87CF87CFCFC7FF81E1033382D7C2587 +:100FB000382D3825382D386D80DEC0BF40BF40DE6B +:100FC000C061803F007FF0FFE0C008C01CC038C88F +:100FD00070DCE4CFCCC78CC30CC00CC00CFFFC7F12 +:100FE000F8000006000C0018F838F030307060701F +:100FF0007878F878003C023F0C1FF80FF003C0002F +:10100000007FF8FFFCC00CC30CCB4CDB6CDB6CD856 +:101010006CDCECCFCCC78CC00CFFFC7FF803000766 +:10102000800FC00CC01CE01CE03CF03CF07FF87F5F +:10103000F8FCFCFCFCFFFC7FF81140820021208FB3 +:10104000E023FC82004A23E200FE209FF013F88098 +:10105000802220C0804221BFF0FBFA8880022084D9 +:1010600080022084801A208080E3FE8280020101B9 +:10107000000F421FC0784110400840904008421FB6 +:10108000C008411040FFFD104008405FC00840808C +:101090000008413FE008432520104125201041254C +:1010A000202041252040417FF07FF8488002004900 +:1010B000000201FFF00201001002027F2022004125 +:1010C0000023F07F00220008002200FF8022008819 +:1010D000802200888022008A8022008900FFFC088C +:1010E0000023F21FC022111040FBF0904022121F7B +:1010F000C02A11104033F1104060005FC0AFFC8087 +:101100000020413FE022432520227925202241254D +:1011100020A541252048FD7FF01083DFC0108250BC +:1011200040208250402FFFDFC06082520061C252D7 +:1011300000A1C25FE022A3D20022A251002492515A +:1011400000288E5090308BD4502082583020801050 +:1011500010104047C017FC44402003F44023F844DB +:10116000406208C440A3F8E440200154402FFD44ED +:10117000402806444023F844402040445020404842 +:1011800050214050302080400020921FC03DF990F7 +:10119000402090904040901FC07BFF0000A0013F86 +:1011A000E021F90200FD09020021097FF021F90583 +:1011B00000210945002909888031F9107021082093 +:1011C0002025004300202070F87540775575774042 +:1011D000403E4A5E2B5E4A6B627F352F357F7C5BDB +:1011E0005E247B0E3A047E017E4A5E69063A2F3FFA +:1011F0006B7E46403F41497F494102626B6B6B62A7 +:10120000026A6B147D577D10413F55553D57512162 +:101210003F2D7F2A122E0A775A505A770A2024131C +:101220007D5553707A2A7B021A437A4A525E2B5EAE +:10123000424A415F353F555F417D14577D0E407FE7 +:101240007F1B54167D1654493A407E575676423FCE +:10125000427E7E427E047E51377D3750127A17528D +:10126000761E127F557F145D7F557F557F7F553DDC +:10127000577F55377817457F7F2B7B287B2B7F1E29 +:1012800012127F12121E7F416B7F6B517F525A5791 +:101290003A575A52007F494949497F22122A7F2AE8 +:1012A000122200000000002F000300033F123F162F +:1012B0003F1A120824323D2A020100003E41413EFD +:1012C000000A070A083E084020000808080020001D +:1012D0001008041C2A1C243E20322A24222A141816 +:1012E000143E2E2A121C2A12023A06142A14242A08 +:1012F0001C00240040240008142214141422140892 +:1013000002290612291E3E093E3F251A1E21213FB1 +:10131000211E3F25213F05011E21393F083F213F66 +:101320002110201F3F043B3F20203F063F3F013E4E +:101330001E211E3F09061E215E3F09362225190186 +:101340003F013F203F3F100F3F183F330C33033C1A +:1013500003312D23007F41153E15417F000201021C +:1013600040404000010218243C3F2418182424184F +:10137000243F182C2C043F0548543C3F0438003DC2 +:1013800000403D003F0834013F003C1C383C04381D +:101390001824187C241818247C3C0804283C1404C5 +:1013A0003E243C203C3C100C3C303C2418244C5047 +:1013B0003C24342C083641007F00413608010101ED +:1013C0001028101F010120203E10200000080025D9 +:1013D000150F241C0C103804180C3828382828182D +:1013E0003C083C18283820242C3C2C2C1C040808D1 +:1013F000211D07083C0306231E223E22120A3F320B +:101400000F3E0A3F0A24130E271E0222223E2712F5 +:101410000F2525102119273F222E21160F241B0EE0 +:10142000251F0526261E251D053F0408241F042010 +:101430002222251927123B1620100F3C013E1F24A3 +:101440002421110F0C031C1A3F1A091927222A2ADA +:10145000382730320C13053F25023F0E213F20254F +:10146000253F25251D07201F3C3F203F20103E2201 +:101470003E23110F21211801000102050200000086 +:10148000000000000020400000000000002050206C +:10149000000000000050300000000000006060000C +:1014A00000000000000000181800000000000036D6 +:1014B0003600000000000056360000000000020167 +:1014C00051090906000000005F0000000000000054 +:1014D000007F41410041417F00000000000000000A +:1014E0003F010101004040407E0000000000003F3D +:1014F000213D05070070505E427E000000000000A4 +:10150000007F63410041637F00000000000808087D +:101510007F08080800080808080808080044444430 +:101520005F44444400412214081422410008080882 +:101530002A08080800141414141414140014341481 +:101540001C14161400080814141422220022221459 +:1015500014140808000205023C42422400002B2C0F +:10156000782C2B000000242A7A2F2A1200001C62FB +:10157000322E23140020545E2541422000422512C1 +:10158000082452210020623E633E23020020564977 +:1015900055225840000022147F142200001C2259BA +:1015A000554D120C0000004A555529000004643CBA +:1015B000173C64040004643C1F3C6404001C22418A +:1015C0004141221C001C3E7F7F7F3E1C001C225D8F +:1015D000555D221C000814224122140800081C3EFC +:1015E0007F3E1C08007F41414141417F007F7F7F5A +:1015F0007F7F7F7F0040704C434C70400040707C88 +:101600007F7C704000010719611907010001071F65 +:101610007F1F0701004922144914224900050505CE +:101620007D05050500080808082A1C0800081C2A72 +:1016300008080808000004027F02040000001020CF +:101640007F20100000003E414141413E0000004229 +:101650007F4000000000625151494946000022418C +:10166000494949360000302824227F2000002F45B8 +:101670004545453900003E494949493200000101CC +:1016800061190503000036494949493600002649D9 +:101690004949493E000020547E3414600020527FA6 +:1016A0002A1A4A3000003C4020041800001E204046 +:1016B000200204180000104A4A2A100000000845C1 +:1016C000454525180000482A3A4A400000004425B4 +:1016D000153D45400000247E145024000022527F16 +:1016E0000A484A340044344F443804180044344F04 +:1016F0004439041900002A5A4B4E5A0800002A5A4D +:101700004B4E5B080000081414224100000008142E +:1017100014224504003F0004443F0404003F000439 +:10172000443F040500002052424242400000205243 +:10173000424342410000245444475C0400002454C6 +:1017400044475C050000003F404040200000003F4F +:10175000404140210002020A563F02020002020AF2 +:10176000563F02030004043F44545F440004043F16 +:1017700044545F45000008093D4B49080000080932 +:101780003D4B490A00423A072254444400423A077A +:1017900022554445000002124E4B4A32000002120C +:1017A0004E4B4A3300001010484830000004040239 +:1017B0002222221C000404022223221D0000020215 +:1017C0001A254341000002021A2543450000205714 +:1017D00048484444000020574849444500120A271D +:1017E00052503A24007F00205242424000304E388E +:1017F000540F64780024147F0422523C00182412F1 +:101800004E422418007F002454543F44007F00249B +:1018100054543F45007F002454563D4600023A4749 +:1018200040413E0400023A4740413E0500023A472B +:1018300040433D06004030404D3210600040304093 +:101840004D321161004030404D32156200080402F3 +:101850000408101000080402040910110008040212 +:10186000040A1512007F006A6A7E2A4A007F006A15 +:101870006A7F2A4B007F006A6A7E2D4A00006A6AEE +:101880006A7F2A4A0030291D4B483C1000122A7FEB +:101890004240422400304E38540F443800000A3E83 +:1018A0004B4A4A300000080E384614080004071C52 +:1018B00062030A0400001C483E241800001E045263 +:1018C0003F12120C00002050503E480000002050F3 +:1018D000503F244400001C51494A483000000F4248 +:1018E00041211E00000010696D4B49300024147F17 +:1018F00004023E40000010494D4B493000002818BA +:101900007E0844380024147F0442423C00304925BC +:101910001F245438004028255735284000100A2E2F +:101920005B724A480040300C3340402000000444C1 +:101930003C140C00000001413D090503000020207B +:101940001078040000001010087C02010000184804 +:101950004C281800000006424322120E00004048A6 +:1019600078484000002022223E2222200000282821 +:10197000587C0800002222124A7F02020000422204 +:101980001F02427E000042221F02427F000012120C +:101990001F721210000012121F7213100000084470 +:1019A0004322120E000008444322120F000807428F +:1019B000221E020200080742221F020300004242C8 +:1019C0004242427E000042424243427F0002024FB6 +:1019D00042221F020002024F42231E030000454A1A +:1019E0004020100C0000454A4021100D00404222CA +:1019F000221A264000404222221B26410004043FB6 +:101A00004444544C0004043F4445544D00000146F6 +:101A10004020100F000001464020110F0000084434 +:101A20004B2A120E000008444B2A120F00080A4AE3 +:101A30003E09090800080A4A3E0908090000184042 +:101A40005820180000020C424C20100E00020C42DC +:101A50004C21100D000405453D0505040004054515 +:101A60003D0504050000007F080810000000007F0D +:101A700008091001000444241F0404040020222249 +:101A80002222222000404125151927000020221281 +:101A90007B06122000404020100807000040300E56 +:101AA00000020C700040300E00020D710040300E3C +:101AB00000020D7200003F484848444400003F487F +:101AC0004849444500003F48484A45460000024214 +:101AD0004222120E000002424223120F0000024274 +:101AE0004222150E00080402040810200008040217 +:101AF0000409102100080402040A152200241444D9 +:101B00007F041424002414447F0514250024144465 +:101B10007F0615220002021222520A060000212529 +:101B2000294A42000040704C435020400040442469 +:101B300014083700000008093F4949480000101CFC +:101B4000680818000004040F74020A0600004048E8 +:101B50004878400000202222223E2020000000443D +:101B600054547C000000424A4A4A4A7E0000044520 +:101B70004525150C00000F4040201F000040201E8E +:101B8000007F20100000007F4020100800007E42EF +:101B90004242427E00000C4444241C0000000642E5 +:101BA0004222120E0010121E12127F120020222258 +:101BB0003A262220000001454525150F000041422C +:101BC0004020100C000006424322120F000048285B +:101BD0001C4878000000100C483808000008040475 +:101BE0000810100800080000080000080004080899 +:101BF00008080808000808080808080808BD01B80F +:101C000001B201AA01A3019C0194018F0189018203 +:101C1000017B0171016A0163015F015A0152014CAC +:101C200001460141013B01370131012C0125012110 +:101C3000011D011701130110010D01090106010326 +:101C4000010001F400EF00EA00060505070604099B +:101C5000030504090A080303030603050303050536 +:101C60000306040405050405040403040905033EF2 +:101C70000053656C656374205469700000000000B7 +:101C8000003E5B4F5B3E3E6B4F6B3E1C3E7C3E1C02 +:101C9000183C7E3C181C577D571C1C5E7F5E1C0048 +:101CA000183C1800FFE7C3E7FF0018241800FFE7FF +:101CB000DBE7FF30483A060E2629792926407F05C2 +:101CC0000507407F05253F5A3CE73C5A7F3E1C1CD8 +:101CD00008081C1C3E7F14227F22145F5F005F5F98 +:101CE00006097F017F006689956A60606060609484 +:101CF000A2FFA29408047E040810207E2010080889 +:101D00002A1C08081C2A08081E101010100C1E0C93 +:101D10001E0C30383E3830060E3E0E060000000025 +:101D20000000005F00000007000700147F147F140C +:101D3000242A7F2A12231308646236495620500051 +:101D400008070300001C2241000041221C002A1C3D +:101D50007F1C2A08083E0808008070300008080828 +:101D60000808000060600020100804023E51494548 +:101D70003E00427F400072494949462141494D3366 +:101D80001814127F1027454545393C4A49493141CD +:101D9000211109073649494936464949291E00009B +:101DA00014000000403400000008142241141414F0 +:101DB0001414004122140802015909063E415D59DC +:101DC0004E7C1211127C7F494949363E41414122E5 +:101DD0007F4141413E7F494949417F090909013E0F +:101DE000414151737F0808087F00417F4100204036 +:101DF000413F017F081422417F404040407F021C48 +:101E0000027F7F0408107F3E4141413E7F0909095E +:101E1000063E4151215E7F0919294626494949322A +:101E200003017F01033F4040403F1F2040201F3FF0 +:101E30004038403F63140814630304780403615975 +:101E4000494D43007F4141410204081020004141B7 +:101E5000417F040201020440404040400003070863 +:101E60000020545478407F2844443838444444285F +:101E7000384444287F385454541800087E09021806 +:101E8000A4A49C787F0804047800447D400020408E +:101E9000403D007F1028440000417F40007C0478D2 +:101EA00004787C080404783844444438FC1824241A +:101EB0001818242418FC7C0804040848545454249A +:101EC00004043F44243C4040207C1C2040201C3C17 +:101ED0004030403C44281028444C9090907C44640E +:101EE000544C4400083641000000770000004136A1 +:101EF000080002010204023C2623263C1EA1A16127 +:101F0000123A4040207A3854545559215555794158 +:101F10002154547841215554784020545579400C2F +:101F20001E52721239555555593954545459395510 +:101F30005454580000457C410002457D4200014553 +:101F40007C40F0292429F0F0282528F07C545545C0 +:101F5000002054547C547C0A097F49324949493253 +:101F60003248484832324A4848303A4141217A3A68 +:101F700042402078009DA0A07D39444444393D4032 +:101F800040403D3C24FF2424487E4943662B2FFCDF +:101F90002F2BFF0929F620C0887E0903205454798D +:101FA000410000447D413048484A32384040227A5E +:101FB000007A0A0A727D0D19317D2629292F2826DB +:101FC0002929292630484D402038080808080808E3 +:101FD0000808382F10C8ACBA2F102834FA00007B3C +:101FE000000008142A142222142A14089500220042 +:101FF00095AA005500AAAA55AA55AA000000FF00FC +:10200000101010FF00141414FF001010FF00FF1038 +:1020100010F010F0141414FC001414F700FF00006A +:10202000FF00FF1414F404FC141417101F10101FE9 +:10203000101F1414141F00101010F0000000001FD7 +:10204000101010101F10101010F010000000FF10E2 +:102050001010101010101010FF10000000FF1400DE +:1020600000FF00FF00001F10170000FC04F4141410 +:102070001710171414F404F40000FF00F7141414DC +:1020800014141414F700F7141414171410101F105C +:102090001F141414F4141010F010F000001F101F7F +:1020A0000000001F14000000FC140000F010F010ED +:1020B00010FF10FF141414FF141010101F00000064 +:1020C00000F010FFFFFFFFFFF0F0F0F0F0FFFFFF68 +:1020D0000000000000FFFF0F0F0F0F0F38444438BF +:1020E000447C2A2A3E147E02020606027E027E02FA +:1020F00063554941633844443C04407E201E200619 +:10210000027E020299A5E7A5991C2A492A1C4C7255 +:1021100001724C304A4D4D303048784830BC625ADC +:10212000463D3E494949007E0101017E2A2A2A2A6C +:102130002A44445F444440514A444040444A514048 +:102140000000FF0103E080FF000008086B6B083609 +:1021500012362436060F090F06000018180000007A +:102160001010003040FF0101001F01011E00191D69 +:102170001712003C3C3C3C00000000000000000046 +:10218000240027002A0000000000250028002B0062 +:1021900000000000230026002900040404040404B5 +:1021A0000404020202020202030303030303010206 +:1021B00004081020408001020408102001020408D5 +:1021C0001020AED5F0A83FD300408D14A1C8DA127C +:1021D00081CFD9F1DB40A4A6AF200021007F2200EF +:1021E00007506C65617365207761697400414443F1 +:1021F0003A200074656D703A2000536574206D6557 +:1022000061737572656400537465703A2000FFFF56 +:10221000FFFFFFFF800386708003800386708003CA +:102220009FF3E1309FF39FF3E1309FF3983301CCAC +:102230009833983301CC9833983387C098339833C8 +:10224000E1C098339833E1C098339FF398C09FF36F +:102250009FF398C09FF3800366CC8003800366CC15 +:102260008003FFFF010CFFFFFFFF01001FFF810044 +:1022700061301F3F873CE6FC8733873CE6FC87F3F1 +:10228000F8039E0F1F03F8039E0F1F03E13CFE0C93 +:1022900007CFE13CFE0C07CF99033E3086C3E6CF63 +:1022A000380F9EF3E6CF380F9EF39E0327CC8103B1 +:1022B0009E0327CC8103E0FFE10CE6CFE0FFE10CB9 +:1022C000E6CF9803060000FF9803060000FFFFFF1B +:1022D0001EF0F8038003663099C38003663099C30B +:1022E0009FF3010CF8FF9FF3010CF8FF9833393C82 +:1022F00001CF9833393C01CF9833FF0C793F9833A5 +:102300003ECCE0F398333ECCE0F39FF33E0098CF11 +:102310009FF33E0098CF80033E30E7C380033E30FA +:10232000E7C3FFFFFFFFFFFFFFFFFFFFFFFF3030AF +:10233000300076312E377434005600560043000FBB +:10234000E01FC01FC03F803FF87FF07FE007C0075D +:10235000800F000E001C001800100014A03FF07F3A +:10236000F8E01C6E18EC1C68186018E01C6058E05F +:102370001C7FF83FF014A04552524F5200484F4C7A +:1023800044004845415400574F524B5900424F4F6B +:10239000535400534C454550004F46460000003B07 +:1023A000EC7BEE63E663E663E663E663E663E663BF +:1023B000666226600660067FFE3FFC0000010204A4 +:1023C0000810204080000000080002010000030403 +:1023D000070000000000000000001F2811241FBE9D +:1023E000CFEFD8E0DEBFCDBF12E0A0E0B1E0EAEE73 +:1023F000FDE602C005900D92A83BB107D9F728E091 +:10240000A8EBB2E001C01D92A130B207E1F711E1E3 +:10241000CEEED1E104C02197FE010E94D436CD3E1C +:10242000D107C9F70E94D4280C94F3360C9400000D +:102430004F925F926F927F928F929F92AF92BF92D4 +:10244000CF92DF92EF92FF920F931F93CF93DF9380 +:1024500000D000D0CDB7DEB74B015C0129013A01B5 +:102460006701780120E030E0A9010E94773287FD02 +:10247000A6C020E030E0A901C301B2010E9477327A +:1024800087FD9DC020E030E0A901C801B6010E948F +:10249000773287FD94C081E02091CB073091CC0743 +:1024A0002130310509F080E08093EC078092B1077C +:1024B0009092B207A092B307B092B4074092B507CA +:1024C0005092B6076092B7077092B807C092B907EA +:1024D000D092BA07E092BB07F092BC076091DF0789 +:1024E0007091E0078091E1079091E2070E947C32B1 +:1024F00020E030E04AE754E40E94793469837A832B +:102500008B839C838092BD079092BE07A092BF07E9 +:10251000B092C0079B01AC01C301B2010E94DD3241 +:102520002B013C014092C1075092C2076092C30741 +:102530007092C40729813A814B815C81C701B60141 +:102540000E9479346B017C01C092C507D092C60706 +:10255000E092C707F092C8078091C9079091CA0717 +:10256000019769F5A501940160E070E0CB010E943C +:102570000C346093BD077093BE078093BF079093A0 +:10258000C007A301920160E070E0CB010E940C340F +:102590006093C1077093C2078093C3079093C407E9 +:1025A000A701960160E070E0CB010E940C346093BB +:1025B000C5077093C6078093C7079093C8070F900D +:1025C0000F900F900F90DF91CF911F910F91FF907F +:1025D000EF90DF90CF90BF90AF909F908F907F90C3 +:1025E0006F905F904F90089580389105B0F46034FB +:1025F000710598F4EDEBF3E290E1969FD001A0789D +:102600001124A80F6770E60FF11D9491A85FBC4FCD +:10261000442321F08C91982B9C93089590958C9154 +:102620009823FACFDF92EF92FF920F931F93CF93ED +:10263000DF937C01D22E8B01040F111DEB0177FF7C +:1026400002C0D0E0C0E0C8010134110514F080E4FC +:1026500090E0C817D9073CF44D2DBE01C7010E9478 +:10266000F4122196F0CFDF91CF911F910F91FF903F +:10267000EF90DF900895CF92DF92EF92FF920F9349 +:102680001F93CF93DF936B01122FEC017C01E40EBB +:10269000F11CCE15DF0544F4202F412FB601CE01E9 +:1026A0000E9412132196F5CFDF91CF911F910F91C8 +:1026B000FF90EF90DF90CF9008952F923F924F922E +:1026C0005F926F927F928F929F92AF92BF92CF92C2 +:1026D000DF92EF92FF920F931F93CF93DF9300D07F +:1026E0001F92CDB7DEB7C22ED12C9601280F391F0D +:1026F00037FD4FC0803891050CF04BC0E9824A018C +:102700007B013C01402E512C160127E0220E311C8A +:1027100093E0359427949A95E1F78B01B12CA12C85 +:102720001B821A82EA81FB8183E0F595E7958A9501 +:10273000E1F7EA0DFB1DE80DF91DE4918A819B810B +:102740008770992720E830E002C0359527958A9553 +:10275000E2F7C901F0E0E223F923EF2B41F04981D0 +:10276000B8018A819B81860D971D0E94F4128A818F +:102770009B8101969B838A838C159D059CF2A20CFC +:10278000B31C0F5F1F4FC8018E199F098415950553 +:102790003CF20F900F900F90DF91CF911F910F910E +:1027A000FF90EF90DF90CF90BF90AF909F908F9071 +:1027B0007F906F905F904F903F902F9008950F9370 +:1027C0001F93CF93DF93EC018B0140E001960E94B1 +:1027D000F41240E0B801CE0101970E94F412B80152 +:1027E0006F5F7F4F40E0CE010E94F412B80161504C +:1027F000710940E0CE010E94F41240E0B801CE0120 +:10280000DF91CF911F910F910C94F41280E0E8E0DA +:10281000F3E081118FEF0024819381938193819361 +:102820000394D1F7EDEEF7E0178616861586148629 +:1028300008956F927F928F929F92AF92BF92CF92A4 +:10284000DF92EF92FF920F931F93CF93DF93803825 +:1028500091050CF057C0603471050CF053C07B013A +:1028600037E0E322FF2433E0759567953A95E1F769 +:10287000DB01B695BA2FAA27B795A7955D01C0E8E9 +:10288000AC0EB11CA80EB91EA80FB91FA85FBC4F93 +:1028900000E810E0081B190B90E080E0E8E0F0E0B1 +:1028A0004F018E189F0830E0FA01E80FF91FC4911C +:1028B0007D906D01D1E0CD1AD1080E2C01C0CC0F56 +:1028C0000A94EAF77C2AE6017882E114F10499F08F +:1028D0006730710581F0E491EC01CA0DDB1DC85F22 +:1028E000DC4FF0E0082C02C0F595E7950A94E2F77A +:1028F000F881EF2BE8830196821793071CF40817E1 +:10290000190791F6DF91CF911F910F91FF90EF90F2 +:10291000DF90CF90BF90AF909F908F907F906F90FF +:102920000895AF92BF92CF92DF92EF92FF920F93F2 +:102930001F93CF93DF936C017B018B01040F151F55 +:10294000EB015E01AE18BF08C017D10759F06991BD +:10295000D601ED91FC910190F081E02DC601099521 +:10296000892B79F7C501DF91CF911F910F91FF90CE +:10297000EF90DF90CF90BF90AF900895FC01538D02 +:10298000448D252F30E0842F90E0821B930B541749 +:1029900010F0CF96089501970895FC01918D828DD6 +:1029A000981761F0A28DAE0FBF2FB11D5D968C916F +:1029B000928D9F5F9F73928F90E008958FEF9FEFAE +:1029C0000895FC01918D828D981731F0828DE80F6A +:1029D000F11D858D90E008958FEF9FEF0895FC0124 +:1029E000918D228D892F90E0805C9F4F821B9109F1 +:1029F0008F739927089588E097E00E94EF1421E0F3 +:102A0000892B09F420E0822F089580E090E0892B43 +:102A100029F00E94FB1481110C9400000895FC0120 +:102A2000A48DA80FB92FB11DA35ABF4F2C91848D2F +:102A300090E001968F739927848FA689B7892C938C +:102A4000A089B1898C91837080648C93938D848DDF +:102A5000981306C00288F389E02D80818F7D8083E2 +:102A60000895EF92FF920F931F93CF93DF93EC01A2 +:102A700081E0888F9B8D8C8D98131AC0E889F98925 +:102A8000808185FF15C09FB7F894EE89FF89608328 +:102A9000E889F98980818370806480839FBF81E0A9 +:102AA00090E0DF91CF911F910F91FF90EF900895EB +:102AB000F62E0B8D10E00F5F1F4F0F731127E02EC6 +:102AC0008C8D8E110CC00FB607FCFACFE889F989FE +:102AD000808185FFF5CFCE010E940F15F1CFEB8DE0 +:102AE000EC0FFD2FF11DE35AFF4FF0829FB7F894D2 +:102AF0000B8FEA89FB8980818062CFCFCF93DF93F0 +:102B0000EC01888D8823B9F0AA89BB89E889F98905 +:102B10008C9185FD03C0808186FD0DC00FB607FC3A +:102B2000F7CF8C9185FFF2CF808185FFEDCFCE016D +:102B30000E940F15E9CFDF91CF910895833081F086 +:102B400028F4813099F08230A9F008958730A9F0F7 +:102B50008830C9F08430B1F4809180008F7D03C04B +:102B6000809180008F7780938000089584B58F775F +:102B700084BD089584B58F7DFBCF8091B0008F77A1 +:102B80008093B00008958091B0008F7DF9CFCF93EE +:102B9000DF93282F30E0F901EB53FC4D8491F901CC +:102BA000E255FE4DD491F901E656FE4DC491CC2379 +:102BB000A1F081110E949E15EC2FF0E0EE0FFF1F97 +:102BC000E057FE4DA591B491EC91ED2381E090E0AA +:102BD00009F480E0DF91CF91089580E090E0FACF92 +:102BE0001F93CF93DF93282F30E0F901EB53FC4D77 +:102BF0008491F901E255FE4DD491F901E656FE4D5E +:102C0000C491CC23A9F0162F81110E949E15EC2FA0 +:102C1000F0E0EE0FFF1FEA57FE4DA591B4918FB77C +:102C2000F894EC91111108C0D095DE23DC938FBF8E +:102C3000DF91CF911F910895DE2BF8CFCF93DF93D3 +:102C400090E0FC01E255FE4D249186569E4DFC011C +:102C500084918823C9F090E0880F991FFC01E45803 +:102C6000FE4DA591B491FC01EA57FE4DC591D4915A +:102C700061110DC09FB7F8948C91209582238C939D +:102C80008881282328839FBFDF91CF9108956230E8 +:102C900051F49FB7F8943C91822F809583238C93B5 +:102CA000E8812E2BEFCF8FB7F894EC912E2B2C933D +:102CB0008FBFEACFCF93DF93EC0161E089E00E9400 +:102CC0001E16209731F460E089E0DF91CF910C94DB +:102CD000F015CF3FD10511F461E0F6CFEEECF3E251 +:102CE000E491E33029F140F4E130B1F0E230D9F081 +:102CF000C038D1058CF7E7CFE73021F1E83051F14A +:102D0000E430B1F780918000806280938000D0939E +:102D10008B00C0938A0004C084B5806884BDC7BDA1 +:102D2000DF91CF91089584B5806284BDC8BDF8CF8E +:102D300080918000806880938000D0938900C09348 +:102D40008800EECF8091B00080688093B000C0937F +:102D5000B300E6CF8091B00080628093B000C09352 +:102D6000B400DECF3FB7F8948091D2029091D302A5 +:102D7000A091D402B091D50226B5A89B05C02F3FE3 +:102D800019F00196A11DB11D3FBFBA2FA92F982F91 +:102D90008827BC01CD01620F711D811D911D42E08C +:102DA000660F771F881F991F4A95D1F708958F9254 +:102DB0009F92AF92BF92CF92DF92EF92FF924B0120 +:102DC0005C010E94B2166B017C010E94B2166C1964 +:102DD0007D098E099F09683E734081059105A8F31E +:102DE00021E0821A9108A108B10888EEC80E83E09C +:102DF000D81EE11CF11C81149104A104B10429F72F +:102E0000FF90EF90DF90CF90BF90AF909F908F900A +:102E100008952FB7F8946091CE027091CF028091FF +:102E2000D0029091D1022FBF089584E98093BC0015 +:102E30008091BC0084FDFCCF08958093BB0084E8A2 +:102E40008093BC008091BC0087FFFCCF089584EA8A +:102E50008093BC008091BC0087FFFCCF88E70C9476 +:102E60001D170E94271780E48093BB0084E880939D +:102E7000BC00E8E0F3E09091BC0097FFFCCF91919B +:102E80009093BB008093BC0097E0E830F90799F776 +:102E90008091BC0087FFFCCF0C941517CF93C82FEF +:102EA0000E94271780E00E941D178C2F0E941D177B +:102EB000CF910C941517480F592F511D41385105CA +:102EC00014F040E850E0481BFB0177FD379633E0F3 +:102ED000F595E7953A95E1F7F695FE2FEE27F795EC +:102EE000E795E80FF91FE85FFC4F6770772781E0EF +:102EF00090E001C0880F6A95EAF7382F213041F43D +:102F0000415078F08191DF011197832B8C93F8CF9A +:102F10008095415030F09191DF01119798239C9357 +:102F2000F8CF0895CF92DF92EF92FF920F93CF9355 +:102F3000DF936C017B01C42FD22F202F0E945B17DF +:102F4000B7016D0F711D61507109603471052CF46A +:102F5000202F4C2FC6010E945B17202F4D2FB70149 +:102F6000C6010E941213C6018C0F911D202F4D2FF8 +:102F7000B7010197DF91CF910F91FF90EF90DF9014 +:102F8000CF900C9412132F923F924F925F926F92B8 +:102F90007F928F929F92AF92BF92CF92DF92EF92E9 +:102FA000FF920F931F93CF93DF93CDB7DEB72A978E +:102FB0000FB6F894DEBF0FBECDBF9A8389836A3007 +:102FC00061F5DC0152968C91B8E08B9F9001112441 +:102FD000E981FA8186859785820F931F9787868777 +:102FE0001586148681E090E02A960FB6F894DEBF2D +:102FF0000FBECDBFDF91CF911F910F91FF90EF904A +:10300000DF90CF90BF90AF909F908F907F906F9008 +:103010005F904F903F902F9008956D3019F3298164 +:103020003A813A872987D9011C96AD90BC90B0E8C7 +:10303000AB16B1040CF07BC0F901C684D784F0E470 +:10304000CF16D1040CF073C0D90152966C905297F0 +:1030500045E09501649E200D311D112412161306C2 +:103060000CF065C0262C312C910153E0220F331F48 +:103070005A95E1F72C0D3D1D121613060CF057C0A2 +:103080005196BC91BB83E985FA85F089FC83649FE6 +:10309000B00111249B012458334E3A832983712CAB +:1030A000E981FA818491F5E07F1201C080E0460158 +:1030B00038E0532E282F30E03E832D834C8080FF54 +:1030C0004B80411004C03B818C813817E1F010E047 +:1030D00000E00615C0F4D501A00FB11FB887AF837B +:1030E000F12CE12CE61460F4B701680D791D442D34 +:1030F0008F8198850E94F412BFEFEB1AFB0AF2CF82 +:103100000F5F1F4FE6CF8D819E81959587955A94CD +:10311000820C931C5110CECF7394E981FA813196C1 +:10312000FA83E983A20CB31CF6E07F12B9CFA9851C +:10313000BA8552962C915297422F50E01C968D9151 +:103140009C91B6E02B9F800D911D1124E985FA8595 +:10315000958784872389222309F444CF6AEF640387 +:103160009001659F300D112420583F4F28173907D3 +:103170000CF038CFDF010190F081E02D0190F0815B +:10318000E02D6AE0CD0109952DCF0F931F93CF93CA +:10319000DF938C01D0E0C0E0F801EC0FFD1F6491DB +:1031A000662341F08DEE97E00E94C317892B11F042 +:1031B0002196F2CFCE01DF91CF911F910F9108950B +:1031C000682F8DEE97E00C94C317089590E080E08F +:1031D000089580917A00806980937A008EE48093CC +:1031E0007C0061E070E080E090E00E94D71683B739 +:1031F000817F826083BF80E130E020E093B79160FF +:1032000093BF889593B79E7F93BF90917A0096FD68 +:10321000FCCF4091780050917900240F351F8150E8 +:1032200069F780917A008F7780937A0084E03695F1 +:1032300027958A95E1F750E040E064EB7BE281E17D +:1032400090E00E94B133C901089588EC80937C001E +:1032500080917A00806880937A0065E070E080E079 +:1032600090E00E94D71680917A00806480937A0063 +:1032700080917A0086FDFCCF609178007091790092 +:103280006A54714090E080E00E947C3226EF38E280 +:103290004CE95FE30E947934089590917A00906937 +:1032A00090937A008E50806480937C0083B7817FF6 +:1032B000826083BF20E290E080E033B7316033BFAB +:1032C000889533B73E7F33BF30917A0036FDFCCF0F +:1032D0004091780050917900840F951F215069F733 +:1032E00020917A002F7720937A0025E09695879594 +:1032F0002A95E1F708958FE00E944D19A091D90217 +:10330000B091DA029C010E94FD330E947E3228E5D2 +:1033100039E743E353E40E9479340E94F234CB014D +:1033200008952091E70230E0E5E6F2E090E080E0E9 +:10333000AF01455652404217530724F44191840F80 +:10334000911DF6CF08958091E002882369F086E010 +:103350000E94C715892B41F06AE070E080E090E0A0 +:103360000E94D7161092E00208950F931F93CF93F7 +:1033700080914801882399F0CFEF0FEE11E061E0D2 +:1033800085E00E94F015C8010197F1F760E085E043 +:103390000E94F015C8010197F1F7C15081F7CF9154 +:1033A0001F910F9108952F923F924F925F926F92CB +:1033B0007F928F929F92AF92BF92CF92DF92EF92C5 +:1033C000FF920F931F93CF93DF9310E000E0D0E0C4 +:1033D000C0E03EE3E32EF12C40ECC42ED12CAA2415 +:1033E000A394B12C60E2662E712C70E4272E312C50 +:1033F0004C2E86E00E94C71521E0892B09F020E0C1 +:103400002093E002F092E602E092E502D092E4021C +:10341000C092E302B092E202A092E10282E890E060 +:103420009093F2028093F1028091F1029091F20266 +:1034300095958795582E9FE1591243C0F092E60268 +:10344000E092E502D092E402C092E302B092E2027E +:10345000A092E102EEEBF0E0F093F202E093F102D1 +:103460009FE5592E0E94061482E08093FF07109377 +:10347000FA070093F907E0E3F0E0F093FC07E0932C +:10348000FB078EE50E94E0181092FA071092F907E8 +:103490007092FC076092FB07912C812C841438F504 +:1034A00080910703F40196E0989FE00DF11D11242F +:1034B000E05BFE4F80810E94E018EFEF8E1A9E0ABB +:1034C000EDCFF0E65F12CECFF092E602E092E50299 +:1034D000D092E402C092E302B092E202A092E10232 +:1034E0003092F2022092F10280E2582EBBCF10936C +:1034F000FA070093F9077092FC076092FB07852D8D +:103500000E94E0180E94A3190E94311786E00E94D1 +:10351000C715892B09F088CF8091E002811184CFF3 +:1035200080900703F6E08F9E40011124C401805B68 +:103530009E4F4C01FC01EC0FFD1F50820E94B519FB +:103540006AE070E080E090E00E94D7162196005F6C +:103550001F4FC530D10509F04BCFF4011582DF9123 +:10356000CF911F910F91FF90EF90DF90CF90BF9080 +:10357000AF909F908F907F906F905F904F903F9013 +:103580002F9008953F924F925F926F927F928F9209 +:103590009F92AF92BF92CF92DF92EF92FF920F93E2 +:1035A0001F93CF93DF93CDB7DEB72E970FB6F89466 +:1035B000DEBF0FBECDBF80910403882309F4A5C1EF +:1035C0001092A5071092A6071092A7071092A807BD +:1035D0008090A5079090A607A090A707B090A80795 +:1035E000C090FA02D090FB02E090FC02F090FD0245 +:1035F000A7019601C501B4010E940C342B013C01C6 +:1036000020E030E0A9010E94213518160CF0A0C17D +:10361000C301B2010E94F23480914901882309F468 +:10362000B8C1C092AD07D092AE07E092AF07F0925A +:10363000B007E12CF12C00EA10E420E030E040E497 +:1036400050E46E31710540F0E12CF12C00E81FE3ED +:1036500020E030E040E05FE360E070E080E391E490 +:103660000E9418128091EB07882309F42AC10E9456 +:1036700009176D837E838F8398878091D3079091FC +:10368000D407A091D507B091D6074D815E816F8197 +:103690007885481B590B6A0B7B0B8091DF07909153 +:1036A000E007A091E107B091E207481759076A07C0 +:1036B0007B0708F406C1E091CD07F091CE07808129 +:1036C0009181A281B38189839A83AB83BC83E0918A +:1036D000D107F091D2079C01AD0160817181828197 +:1036E00093810E940C344B015C012091DB073091E7 +:1036F000DC074091DD075091DE0769817A818B817B +:103700009C810E940C346B017C012091C107309197 +:10371000C2074091C3075091C407C501B4010E947C +:10372000DD322091D7073091D8074091D9075091C9 +:10373000DA070E940D342B013C014092D7075092CA +:10374000D8076092D9077092DA073090EC073110F1 +:103750001AC02091BD073091BE074091BF0750911C +:10376000C007C701B6010E94DD329B01AC01C30155 +:10377000B2010E940C346093D7077093D8078093EE +:10378000D9079093DA074090D7075090D8076090F8 +:10379000D9077090DA071091E7079091E8079E87A4 +:1037A000A091E907AD870091EA07212F392F4A2F11 +:1037B000502FC301B2010E94213518160CF0CCC065 +:1037C000812F9E85AD85B02F8093D7079093D80722 +:1037D000A093D907B093DA07332009F4D6C020911B +:1037E000BD073091BE074091BF075091C007C5018A +:1037F000B4010E94DD324B015C012091C50730917C +:10380000C6074091C7075091C807C701B6010E947B +:10381000DD329B01AC016091D7077091D807809190 +:10382000D9079091DA070E940C34A50194010E94F7 +:103830000D346B017C019B01AC01612F7E858D8570 +:10384000902F0E94773287FD18C01091E307909166 +:10385000E4079E87A091E507AD870091E607212F39 +:10386000392F4A2F502FB601C7010E94773287FDAA +:1038700004C01C2DDE86ED860F2DE091CF07F09160 +:10388000D007812F9E85AD85B02F80839183A28341 +:10389000B38389819A81AB81BC818093DB0790934C +:1038A000DC07A093DD07B093DE078D819E81AF8199 +:1038B000B8858093D3079093D407A093D507B0938E +:1038C000D6076091A9077091AA078091AB079091E4 +:1038D000AC070E94EB34CB012E960FB6F894DEBFF6 +:1038E0000FBECDBFDF91CF911F910F91FF90EF9051 +:1038F000DF90CF90BF90AF909F908F907F906F9010 +:103900005F904F903F900C945A1680910303609102 +:1039100044017091450181110EC08091F80290918F +:10392000F90220910203BC01222329F06091430196 +:10393000680F792F711D90E080E00E947C326093C7 +:10394000A5077093A6078093A7079093A80740CE7A +:10395000C301B20190585ECE8091E3079091E407D5 +:10396000A091E507B091E60789879A87AB87BC8766 +:103970009C01AD01C301B2010E94773287FF2CCFB9 +:1039800089859A85AB85BC851FCF812C912C5401EC +:1039900034CF20E030E040E05FE3C701B6010E9491 +:1039A0000D349B01AC01C501B4010E9421351816EC +:1039B0004CF41092A9071092AA071092AB0710922C +:1039C000AC077FCF80E090E0AFE7B3E48093A90736 +:1039D0009093AA07A093AB07B093AC0772CF4F9216 +:1039E0005F926F927F928F929F92AF92BF92CF928F +:1039F000DF92EF92FF92CF93DF938090DB02909063 +:103A0000DC02A090DD02B090DE02C0910703D0E09E +:103A1000C501B4010E94EB346B017C0120E030E071 +:103A200048E453E4C501B4010E94773293E0CC0F1F +:103A3000DD1F9A95E1F7CE5FDE4F87FF31C0288109 +:103A4000398150E040E02551310941095109C70150 +:103A5000B6010E94B03628EC30E040E050E00E9411 +:103A6000B133CA01B9016B5E7F4F8F4F9F4F0E94E8 +:103A70007E326093FA027093FB028093FC02909373 +:103A8000FD02DF91CF91FF90EF90DF90CF90BF903C +:103A9000AF909F908F907F906F905F904F90089520 +:103AA0004A805B80712C612C20E030E04CE853E4CC +:103AB000C501B4010E94773287FF1FC088809980BA +:103AC000B12CA12CA7019601285C310941095109AB +:103AD000C301B201681979098A099B090E94B036AD +:103AE00020E530E040E050E00E94B133CA01B90166 +:103AF000680D791D8A1D9B1DBACF2C813D8150E038 +:103B000040E02419350946095709C701B601685133 +:103B10007140810991090E94B03620E530E040E013 +:103B200050E00E94B133CA01B901640D751D861DB4 +:103B3000971D9DCFFC0101900020E9F73197AF015F +:103B4000481B590BBC018DEE97E00C9491148F9299 +:103B50009F92AF92BF920F931F93CF93DF93CDB7F6 +:103B6000DEB7A1970FB6F894DEBF0FBECDBF19A286 +:103B7000423008F44AE08E010F5D1F4F842E912CD5 +:103B8000B12CA12CA50194010E94DB33E62FB901D1 +:103B9000CA01EA30F4F4E05DD801EE938D01232BE5 +:103BA000242B252B79F790E080E0109719F0CD01B8 +:103BB0000E949A1DA1960FB6F894DEBF0FBECDBF2E +:103BC000DF91CF911F910F91BF90AF909F908F90F9 +:103BD0000895E95CE1CFCF92DF92EF92FF92CF930D +:103BE000DF9397FF19C06B017C018DE20E94E01802 +:103BF000EC0166277727CB016C197D098E099F0997 +:103C00004AE00E94A71D8C0F9D1FDF91CF91FF906E +:103C1000EF90DF90CF9008954AE0DF91CF91FF9031 +:103C2000EF90DF90CF900C94A71D4F925F926F9210 +:103C30007F928F929F92AF92BF92CF92DF92EF923C +:103C4000FF920F931F93CF936B017C01742EAC01F5 +:103C50009B010E947635882399F089EA92E0CF9102 +:103C60001F910F91FF90EF90DF90CF90BF90AF909A +:103C70009F908F907F906F905F904F900C949A1DC3 +:103C800046015701E894B7F82FEF3FEF4FE75FE7A2 +:103C9000C501B4010E94763581110DC02FEF3FEFB1 +:103CA0004FE75FE7C501B4010E94773218161CF494 +:103CB0008DEA92E0D4CF2FEF3FEF4FE75FE4C701EB +:103CC000B6010E94213518161CF481EB92E0C7CF93 +:103CD0002FEF3FEF4FE75FECC701B6010E9477324D +:103CE00087FDF3CF20E030E0A901C701B6010E94B3 +:103CF000773210E000E087FF08C08DE20E94E018F4 +:103D00008C01F7FAF094F7F8F094C0E060E070E00E +:103D100080E09FE37C1641F020E030E040E251E497 +:103D20000E947934CF5FF6CFA70196010E940D342F +:103D30002B013C010E94F2344B015C014AE00E94DD +:103D4000A71D7C01E00EF11ECC23B1F1C501B40129 +:103D50000E947C329B01AC01C301B2010E940C3471 +:103D60004B015C018EE20E94E018E80EF91EC15082 +:103D700018F120E030E040E251E4C501B4010E94B6 +:103D8000DD322B013C010E94F2344B01B12CA12CFD +:103D90004AE0C501B4010E94A71DE80EF91EC50145 +:103DA000B4010E947C329B01AC01C301B2010E94AC +:103DB0000C344B015C01DBCFC701CF911F910F91F8 +:103DC000FF90EF90DF90CF90BF90AF909F908F903B +:103DD0007F906F905F904F900895CF92DF92EF9217 +:103DE000FF920F931F93CF93DF93C82F81E0DC2FB7 +:103DF000D827D093FE07C093FD078093FF070C2FB1 +:103E00002EE046E661E370E081E090E00E949217C8 +:103E10002091050330910603253F81E03807B8F46F +:103E2000A4E6B0E00E94FD3324EF31E040E050E032 +:103E30000E94B133BA01A9014E5F5F4F6F4F7F4FB0 +:103E40002EE061E370E081E090E00E943B1360911E +:103E5000A5077091A6078091A7079091A8070E94D7 +:103E6000EB349B01AC01A4E6B0E00E94D03334EF08 +:103E7000C32EDD24D394E12CF12CA70196010E94DE +:103E8000B133DA01C9010296A11DB11D02970C2FB1 +:103E90002DE043E062E370E00E943B136091A507D0 +:103EA0007091A6078091A7079091A8070E94EB3414 +:103EB0009B01AC01A4E6B0E00E94D033A7019601BB +:103EC0000E94B133DA01C9010296A11DB11D039709 +:103ED00024E045E06CE370E00E943B136091A5078D +:103EE0007091A6078091A7079091A8070E94EB34D4 +:103EF0009B01AC01A4E6B0E00E94D033A70196017B +:103F00000E94B13389019A010E5F1F4F2F4F3F4F1F +:103F10000150110941E3E42EF12C4D2FB701C801E6 +:103F20000E94F4128FEFE81AF80A8DE3E816F10404 +:103F3000A1F76091A5077091A6078091A7079091BE +:103F4000A8070E94EB349B01AC01A4E6B0E00E94FC +:103F5000D03324EF31E040E050E00E94B133DA0189 +:103F6000C9010296A11DB11D0397ED2E04E025E0C5 +:103F700045EC51E16BE370E00E945D130C2F2EE0E5 +:103F800047E161E370E088E690E00E94921760915B +:103F9000A9077091AA078091AB079091AC070E9486 +:103FA000EB349B01AC012F5F310941095109A7E1B5 +:103FB000B0E00E94D033CC24C394DD24DA94ED2CFD +:103FC000FD2CA70196010E94B133422F2EE061E340 +:103FD00070E088E690E00E943B13C093FE07D09308 +:103FE000FD0782E090E09093FA078093F90707E3DA +:103FF00010E01093FC070093FB076091A5077091F8 +:10400000A6078091A7079091A80740E00E94151E7F +:1040100088EF0E94E01883EC91E10E94C51889E6C0 +:1040200090E09093FA078093F9071093FC070093B0 +:10403000FB076091A9077091AA078091AB07909147 +:10404000AC070E94EB349B01AC012F5F31094109A1 +:104050005109A4E6B0E00E94D033A70196010E9466 +:10406000B133CA01B9010E94EB1D81EC91E10E94BC +:10407000C518D093FE07C093FD07DF91CF911F9124 +:104080000F91FF90EF90DF90CF9008956F927F9205 +:104090008F929F92AF92BF92CF92DF92EF92FF9258 +:1040A0000F931F93CF93DF93B090070377247394FC +:1040B000B11001C0712C809142018150990B109276 +:1040C000E6021092E502880F991F9093E402809314 +:1040D000E30281E090E09093E2028093E1028B2D75 +:1040E00090E0880F991F9093F2028093F10286E08E +:1040F0000E94C71521E0892B09F020E02093E002FF +:10410000FF24F39472E0972EE6E08E2EFCE0CF2E93 +:10411000D12C0E940614C091F102D091F202D595E3 +:10412000C795EC2E8E011127C801870D911D77FCD4 +:104130009A958B199109712C97FD06C083309105D2 +:1041400014F082E090E0782EF092FE071092FD07C6 +:104150009092FF071092FA071092F9071092FC074D +:104160001092FB0781E79CE10E94C5181092FE07A0 +:10417000F092FD071092FA071092F907A72C072C6E +:10418000000CBB08C501019654E0880F991F5A9591 +:10419000E1F79093FC078093FB078FE69CE10E9478 +:1041A000C5186C2E671890E080E098012A193B0929 +:1041B0005901209142018C010F5F1F4F6216D0F40C +:1041C000D092FA07C092F907980144E0220F331FFA +:1041D0004A95E1F73093FC072093FB078A0D9B1D5E +:1041E000889E9001899E300D1124C901805B9E4FED +:1041F0000E949A1DC801639403301105D1F60E94F4 +:10420000A3190E94311786E00E94C715892BB9F4C3 +:104210008091E002811113C00E94B519E09207035A +:10422000DF91CF911F910F91FF90EF90DF90CF9092 +:10423000BF90AF909F908F907F906F900895BC2E0D +:1042400068CF0E94EE361F93CF93DF93EC01162FB9 +:104250000E949B33181739F0612FCE01DF91CF9167 +:104260001F910C94A333DF91CF911F910895AF92CA +:10427000BF92CF92DF92EF92FF920F931F93CF9353 +:10428000DF936091470182E090E00E9423216091DA +:10429000460183E090E00E9423216091450184E083 +:1042A00090E00E9423216091440185E090E00E940B +:1042B00023216091430186E090E00E9423216091D8 +:1042C0004C0187E090E00E94232160914B0188E03F +:1042D00090E00E94232160914A0189E090E00E94D1 +:1042E0002321609180018AE090E00E942321609167 +:1042F00049018BE090E00E942321609148018CE00D +:1043000090E00E942321609107038DE090E00E94DD +:104310002321609142018EE090E00E942321609170 +:104320004E018FE090E00E9423216091DF0280E146 +:1043300090E00E9423216091FF0281E190E00E94C1 +:10434000232182E1E82EF12C10E006E08091420169 +:104350001817B8F5109F60011124D0E0C0E0FE01ED +:10436000EC0DFD1DE05BFE4F6081C7018C0F9D1FB2 +:104370000E9423212196C630D10589F7670186E086 +:10438000C80ED11C88E0189FE0011124CE5FDE4FDB +:104390008EE0E80EF11C69812296C6010E9423215D +:1043A000560182E0A80EB11CFE0132976081C60161 +:1043B00001960E9423216501AE14BF0461F71F5FBF +:1043C000C5CFDF91CF911F910F91FF90EF90DF90BC +:1043D000CF90BF90AF9008958F929F92AF92BF926F +:1043E000CF92DF92EF92FF92CF938FEF90E00E94F7 +:1043F0005A168BEA94E00197F1F78EE00E944D196E +:104400007C018AE00E94C7159091B802981729F0A4 +:1044100091E09093FE028093B802809101019FEF9A +:10442000980F90930101811106C00E947B1990930F +:104430000103809300036091A9077091AA078091FE +:10444000AB079091AC070E94EB34CB010E945A1647 +:104450008090DB029090DC02A090DD02B090DE0242 +:10446000B70190E080E00E947C32A50194010E9497 +:104470000C342DEC3CEC4CE45DE30E94DD32A501F4 +:1044800094010E940D346093DB027093DC028093F0 +:10449000DD029093DE020E94EF1C60910503709193 +:1044A000060390E080E00E947C326B017C01209149 +:1044B000A5073091A6074091A7075091A8070E9431 +:1044C00077328111B5C02091FA023091FB02409100 +:1044D000FC025091FD02C701B6010E940C346B0131 +:1044E0007C0120E030E0A9010E94213518160CF073 +:1044F00095C020E030E040EA50E4C701B6010E94D8 +:10450000213518160CF494C06091F8027091F902EC +:1045100090E080E00E947C322091FA023091FB0210 +:104520004091FC025091FD020E940C346B017C0111 +:1045300020E030E0A9010E94213518160CF087C058 +:10454000C701B6010E94F2346530710508F083C0DE +:1045500080914F01811105C080914D0181110E9410 +:10456000B51981E080934F0110924D0180910503B0 +:1045700090910603853F21E0920710F01092000110 +:1045800020910001211140C0843F9140E8F58FEF58 +:1045900090E00E945A160E94B519C1E0C093000134 +:1045A0000E9446200E943721C093FE028EE00E94A6 +:1045B0004D19BC0190E080E00E947C326093DB02E8 +:1045C0007093DC028093DD029093DE021092F00281 +:1045D0008091F8029091F9022CE231E03093E602EA +:1045E0002093E50220E233E03093E4022093E302DB +:1045F0002AE030E03093E2022093E102880F991F15 +:104600009093F2028093F102CF91FF90EF90DF90B0 +:10461000CF90BF90AF909F908F90089520E030E0B2 +:1046200040EA50ECC701B6010E94773287FF6CCF99 +:104630006091FA027091FB028091FC029091FD0260 +:104640000E94F23470930603609305035DCFC701A7 +:10465000B601905877CF10924F0188CF0C949B33BE +:104660002F923F924F925F926F927F928F929F9282 +:10467000AF92BF92CF92DF92EF92FF920F931F9370 +:10468000CF93DF938C0186E08093FF0781E08093D6 +:10469000FE071092FD076091CB027091CC02072EAD +:1046A000000C880B990B0E947E322B013C0145ECDB +:1046B000C42E42E0D42E7601C2E0D0E05AE0A52E0E +:1046C000B12CBE010D2E000C880B990B0E947E327E +:1046D0009B01AC0160E070E080E291E40E9426352D +:1046E0009B01AC01C301B2010E9479340E94EB34FA +:1046F000CB01B5010E94C036F701819391937F01F0 +:104700002197F8F61093CC020093CB02C9EBD2E0CC +:1047100094E0E92EF12C22E0822E912C3AE0232E17 +:10472000312CB401092C000C880B990B0E947E32AD +:104730009B01AC0160E070E080E291E40E942635CC +:104740002B013C016091CB027091CC02072E000C32 +:10475000880B990B0E947E32A30192010E9479344A +:104760000E94EB34CB01B1010E94C036F6012081DA +:104770003181821B930BF2E3F89FB001F99F700D1A +:104780001124072E000C880B990B0E947E32288181 +:1047900039814A815B810E940D342B013C0120E06C +:1047A00030E0A9010E94773281117CC04882598291 +:1047B0006A827B8201E022E346E270E060E0C701AA +:1047C00004970E943B138EECA82EBB24BA940FEFE3 +:1047D0001FEF288139814A815B8160E070E080E8C9 +:1047E00090E40E940C342B013C01B5010B2C000C11 +:1047F000880B990B0E947E329B01AC01C301B20170 +:104800000E940D340E94EB34F092FA07E092F9070F +:104810007093FC076093FB07F60160817181600F64 +:10482000711F072E000C880B990B0E94EB1D0F5F68 +:104830001F4FF2E3AF0EB11C0230110551F6249662 +:1048400021E0821A910882E0C80ED11CECE2EE0E43 +:10485000F11CF8E8EF16F10409F063CF00E022E064 +:1048600040E870E060E090E080E00E943B132DE0C3 +:1048700040E863E370E090E080E00E943B13DF914A +:10488000CF911F910F91FF90EF90DF90CF90BF904D +:10489000AF909F908F907F906F905F904F903F90E0 +:1048A0002F900895C301B20190582DEC3CEC4CE4DC +:1048B0005FE30E94DD32A30192010E940D34688300 +:1048C00079838A839B8376CF86E00E94C71521E097 +:1048D000892B09F020E02093E0020E9406148091C9 +:1048E000F1029091F202959587950E9430230E94E3 +:1048F00031170E94A31986E00E94C715892B69F71A +:104900008091E0028111E9CF0E94B5198091CB021C +:104910009091CC0208952F923F924F925F926F92A6 +:104920007F928F929F92AF92BF92CF92DF92EF923F +:10493000FF920F931F93CF93DF93CDB7DEB76597A9 +:104940000FB6F894DEBF0FBECDBF182FE091E7027F +:10495000F0E0EB59FD4F80818150990B1092E602F7 +:104960001092E502880F991F9093E4028093E3026E +:1049700081E090E09093E2028093E102812F90E049 +:10498000880F991F9093F2028093F10286E00E94B3 +:10499000C71521E0892B09F020E02093E002109256 +:1049A000FE0781E08093FD078091F1029091F20271 +:1049B0009C01359527953D872C873C853D8B6C84E4 +:1049C0007D8477249301211B310948E3429FC00174 +:1049D000439F900D1124280E391E2114310409F132 +:1049E0006627772762197309072E000C880B990B2D +:1049F0000E947E322AE939E949E15FE30E94DD3213 +:104A00004B015C01B101330C880B990B0E947E3283 +:104A10009B01AC01C501B4010E940D340E94EB342E +:104A20001B010E940614430182E0881A910861016B +:104A300098E4C91AD108F3013396FC8BEB8B97FCF1 +:104A40008AC0E091E702F0E0EB59FD4F80818815C4 +:104A5000190409F00CF47FC001E020E340E370E0AA +:104A600060E0C6010E943B1396012D5F3F4F3A8BD9 +:104A7000298B00E02AE24AE263E070E089899A89A2 +:104A80000E943B1370E060E0C6010E94DF1370E0FB +:104A900060E08601015D1F4FC8010E94DF136FE2D5 +:104AA00070E0C6010E94DF136FE270E0C8010E944F +:104AB000DF130E949119F401E80FF11DEE0FFF1FA3 +:104AC000E75EFD4F80819181988B8F8773E0E72EA1 +:104AD000F12C512C412CB12CA12CF50153E0F59572 +:104AE000E7955A95E1F7E40DF51D2F853889E20F1A +:104AF000F31FE491C5018770992720E830E002C0D8 +:104B0000359527958A95E2F7C901F0E0E223F9236C +:104B1000EF2B79F0C501880F991F8A0D9B1D01E0CD +:104B200023E043E0B701E989FA898E0F9F1F0E94B5 +:104B30003B13FFEFAF1ABF0A2EE0A216B10469F6CD +:104B400032E0430E511C43E0E40EF11C8DE2E81606 +:104B5000F10409F0C0CF9FEF891A990AE8E3CE0E5D +:104B6000D11C2B893C898216930609F068CF80916D +:104B70004E01811140C00E949119F301E80FF11D0F +:104B8000EE0FFF1FE353FE4F40815181EE24E3946B +:104B900000E124E260E370E080E390E00E945D13B6 +:104BA0000E9431170E94A31986E00E94C715892B25 +:104BB00001F58091E00281111CC00E94B5198D8918 +:104BC00065960FB6F894DEBF0FBECDBFDF91CF91D3 +:104BD0001F910F91FF90EF90DF90CF90BF90AF901B +:104BE0009F908F907F906F905F904F903F902F900D +:104BF00008951C85D9CE823009F083C00E94911996 +:104C0000860D972D911DFC01E75BF34EE490880F14 +:104C1000991FFC01EF57FE4F80809180D12CC12C51 +:104C200004E310E3CE1408F0BBCFF401EC0DFD1D3E +:104C3000449180E1840F833008F45EC03E85313FAB +:104C4000E9F0323FD1F1403F08F058C0193710F079 +:104C5000085F10E088E0489FA001112443585B4E94 +:104C6000602F70E028E0812F90E00E941914185FF7 +:104C700090EF9E873FEFC31AD30AD4CF4E39D0F7B7 +:104C80001D3710F0085F10E0A02EB12C612E712CA2 +:104C9000E3E04E9FA00111244D555D4E23E0B50188 +:104CA000C3010E94191421E042EA52E1B501C30197 +:104CB00003960E9419141C5FDDCF4F31D8F61937C7 +:104CC00010F0085F10E0A02EB12C612E712CF7E0DF +:104CD0004F9FA001112447535E4E27E0B501C30149 +:104CE0000E94191421E042EA52E1B501C30107967E +:104CF0000E941914185FBECF4E87BCCF20EF2E87BD +:104D0000B9CF80E390E09093FA078093F907E1E34D +:104D1000F0E0F093FC07E093FB0781E08093FF074E +:104D20000E949119FC858F0FE82FF0E0EE0FFF1F16 +:104D3000E350F44E65917491CE0101960E94703259 +:104D4000CE0101960E949A1D2BCF1F920F920FB693 +:104D50000F9211242F933F934F935F936F937F9301 +:104D60008F939F93AF93BF93EF93FF9388E097E068 +:104D70000E940F15FF91EF91BF91AF919F918F917D +:104D80007F916F915F914F913F912F910F900FBE47 +:104D90000F901F9018951F920F920FB60F9211242B +:104DA0002F938F939F93EF93FF93E0911807F091C8 +:104DB00019078081E0911E07F0911F0782FD1BC03B +:104DC0009081809121078F5F8F7320912207821736 +:104DD00041F0E0912107F0E0E85FF84F958F809374 +:104DE0002107FF91EF919F918F912F910F900FBE0F +:104DF0000F901F9018958081F4CF1F920F920FB6DD +:104E00000F9211242F933F938F939F93AF93BF9350 +:104E10008091CE029091CF02A091D002B091D102A8 +:104E20003091CD0223E0230F2D3758F50196A11DB7 +:104E3000B11D2093CD028093CE029093CF02A09318 +:104E4000D002B093D1028091D2029091D302A0916E +:104E5000D402B091D5020196A11DB11D8093D2025A +:104E60009093D302A093D402B093D502BF91AF9197 +:104E70009F918F913F912F910F900FBE0F901F9098 +:104E8000189526E8230F0296A11DB11DD2CF1F92BF +:104E90000F920FB60F9211242F933F934F935F936E +:104EA0006F937F938F939F93EF93FF9383B1817061 +:104EB00029B19091D802981709F49DC030E0220FD3 +:104EC000232F221F330B922F8093D8024091D702B9 +:104ED000241709F490C02093D7022091E102309169 +:104EE000E202981719F03195219531094091F102AC +:104EF0005091F2026091E5027091E602240F351F95 +:104F0000261737070CF48BC02091E1023091E202A2 +:104F1000981719F03195219531094091F10250917E +:104F2000F2026091E3027091E402240F351F6217D0 +:104F300073070CF46FC04091E1025091E2029817A0 +:104F400019F05195419551092091F1023091F202E9 +:104F5000240F351F3093F2022093F10241E09813A1 +:104F600040E02091D602421709F440C02091E102AE +:104F70003091E202981719F031952195310960912D +:104F8000F1027091F202E091E502F091E602260F43 +:104F9000371F2E173F070CF44CC02091E1023091CF +:104FA000E202981719F03195219531096091F102CB +:104FB0007091F202E091E302F091E402260F371FB4 +:104FC000E217F3078CF12091E1023091E202981789 +:104FD00019F03195219531098091F1029091F202F9 +:104FE000820F931F9093F2028093F1024093D602B6 +:104FF00081E08093FE02FF91EF919F918F917F91CD +:105000006F915F914F913F912F910F900FBE0F9035 +:105010001F9018952091E3023091E4029BCF2091DC +:10502000E5023091E60296CF8091E3029091E4028E +:10503000D9CF8091E5029091E602D4CF18950F93D5 +:105040001F93CF93DF93E8E0F7E01382128288EE9C +:1050500093E0A0E0B0E084839583A683B7838FE8D4 +:1050600092E09183808385EC90E09587848784EC3F +:1050700090E09787868780EC90E0918B808B81EC25 +:1050800090E0938B828B82EC90E0958B848B86EC06 +:1050900090E0978B868B118E128E138E148EEDEE10 +:1050A000F7E0138212821682178280E180871582D0 +:1050B0001482128681EA92E0918380831586148699 +:1050C0001786168681E0808B118A828B138AC1EB4A +:1050D000D7E029EA37E03F8F2E8F2DEA37E03D8F6A +:1050E0002C8F25EA37E039A328A31AAE1AAA1BAAE7 +:1050F0001CAA1DAA40E050E06FE773E44EAB5FAB23 +:1051000068AF79AF44E650E060E070E04EA75FA77B +:1051100068AB79AB21E030E0398F288F3B8F2A8F45 +:105120008BAF80E090E0A0E3B1E488839983AA8309 +:10513000BB8380E090E0A0E0BFE38C839D83AE83DF +:10514000BF8380E090E0A0E8BFE388879987AA87C3 +:10515000BB8780E090E0A0E3B1EC8C879D87AE87B1 +:10516000BF878DEC9CECACE4BDEB888B998BAA8B54 +:10517000BB8B80E090E0A0E2B1EC8C8B9D8BAE8B82 +:10518000BF8B0E9409170EA51FA528A939A9601B6E +:10519000710B820B930B6AA37BA38CA39DA3DF915E +:1051A000CF911F910F910895CF93DF93CDB7DEB7C5 +:1051B0002A970FB6F894DEBF0FBECDBF789484B5A2 +:1051C000826084BD84B5816084BD85B5826085BD03 +:1051D00085B5816085BD80916E00816080936E0091 +:1051E0001092810080918100826080938100809183 +:1051F0008100816080938100809180008160809334 +:1052000080008091B10084608093B1008091B000F3 +:1052100081608093B00080917A00846080937A00EE +:1052200080917A00826080937A0080917A00816018 +:1052300080937A0080917A00806880937A0010923F +:10524000C1001092B90088E48093B8000E9427172B +:1052500080E00E941D1702EC11E2E1EEEE2EE1E289 +:10526000FE2EF80184910E941D170F5F1F4FE0165C +:10527000F106B9F70E94151711E01093B8000E94CB +:10528000311781E28093F50760E08EE00E941E16E0 +:1052900060E08FE00E941E1661E085E00E941E160D +:1052A00061E089E00E941E1662E087E00E941E16FF +:1052B00062E088E00E941E1662E086E00E941E16F0 +:1052C00062E08AE00E941E168FEF90E00E945A165C +:1052D00060E085E00E94F01580917A0087608093FD +:1052E0007A0080917A00886080937A007894109395 +:1052F0006B00109368001BBB90E080E00E942E239F +:10530000182F81E090E00E942E23912F8F3F98402C +:1053100009F0BBC082E090E00E942E23182F83E0AA +:1053200090E00E942E23912F909347018093460195 +:1053300084E090E00E942E23182F85E090E00E94E8 +:105340002E23912F909345018093440186E090E0B5 +:105350000E942E238093430187E090E00E942E2339 +:1053600080934C0188E090E00E942E2380934B01B3 +:1053700089E090E00E942E2380934A018AE090E029 +:105380000E942E23809380018BE090E00E942E23C8 +:1053900091E0811101C090E0909349018CE090E090 +:1053A0000E942E2391E0811101C090E0909348016A +:1053B0008DE090E00E942E23809307038EE090E022 +:1053C0000E942E23282E809342018FE090E00E94BD +:1053D0002E2380934E0180E190E00E942E2391E0E5 +:1053E000811101C090E09093DF0281E190E00E9482 +:1053F0002E238093FF0252E0852E51E0952E60E52A +:10540000A62E61E0B62E72E1E72EF12C312C23148A +:1054100009F447C010E000E0C701800F911F0E940F +:105420002E23F501E00FF11F80830F5F1F4F063021 +:10543000110591F7670126E0C20ED11C3EE0E30E94 +:10544000F11C3401C6010E942E23082F10E0102FFA +:105450000027F301118300832601F2E04F0E511C57 +:10546000C60101960E942E23082BF301019311938C +:105470003F0162014E145F0429F73394F8E08F0E68 +:10548000911C26E0A20EB11CC2CF68E090E080E043 +:105490000E9423216FEF81E090E00E9423210E946F +:1054A00037211091DF0280EC111101C088EC0E94BD +:1054B0004E1780EA111101C081EA0E944E170E9426 +:1054C000E9189093DA028093D9020E947B19909395 +:1054D000010380930003009146011091470110934E +:1054E000F9020093F8028EE00E944D19BC0190E091 +:1054F00080E00E947C326093DB027093DC02809338 +:10550000DD029093DE020E9425190E94EF1C20E02C +:1055100030E040EA51E46091FA027091FB02809120 +:10552000FC029091FD020E940D346B017C01B801D8 +:1055300090E080E00E947C329B01AC01C701B60183 +:105540000E94773287FF04C090E080E00E945A16E4 +:105550001092E3071092E4071092E5071092E60715 +:10556000412C512C3FE7632E33E4732E4092E70722 +:105570005092E8076092E9077092EA07A090CF077F +:10558000B090D0078091EB07F501C080D180E28018 +:10559000F380882309F478C7A3019201C701B601FB +:1055A0000E942135181634F5F5014082518262823D +:1055B00073828090D7079090D807A090D907B090B9 +:1055C000DA07C090E707D090E807E090E907F0908D +:1055D000EA07A7019601C501B4010E9421351816FA +:1055E000C4F4C092D707D092D807E092D907F092BE +:1055F000DA071FC020E030E0A901C701B6010E9410 +:10560000773287FFD6CFF501108211821282138282 +:10561000D0CFC090E307D090E407E090E507F0908A +:10562000E607A7019601C501B4010E94773287FD04 +:10563000D8CF81E08093EB0783B181708093D8024B +:1056400089B190E0880F892F881F990B8093D7022A +:105650002091D8029091D70281E0291380E08093B5 +:10566000D6028CE291E09093E6028093E50280E21C +:1056700093E09093E4028093E3028AE090E09093B9 +:10568000E2028093E102000F111F1093F2020093D7 +:10569000F1020E9409176093F4027093F50280935F +:1056A000F6029093F7020E94B5190E94B519209056 +:1056B000F1023090F2029101359527953A872987BA +:1056C0003093F9022093F80286E00E94C715482E15 +:1056D00081119FC08091F002882309F49AC00E9432 +:1056E000B5190E9409176B017C01C092EC02D0929F +:1056F000ED02E092EE02F092EF0286E00E94C71502 +:10570000892B59F40E9409176C197D098E099F098C +:10571000643F71408105910580F30E9409176C195F +:105720007D098E099F09643F71408105910508F448 +:1057300053C48FEF90E00E945A160E94B519512C65 +:10574000AAE06A2E712C1092E702852D0E948B240C +:10575000582EF8E0F81708F439C0E82FF0E0ED54BF +:10576000F44D0C94D436CE2B762EED2E552F632F80 +:10577000942FA22FC22FCC2F20E030E0A901C70127 +:10578000B6010E94773287FF54CF1092D70710924C +:10579000D8071092D9071092DA074BCFFEE16F2E8F +:1057A000712C81E08093E702852D0E948B24582E76 +:1057B00022E0821709F434C2281708F4E8C08823CD +:1057C00009F410C131E0831709F40FC10E94372199 +:1057D00081E08093FE0229853A853093F902209377 +:1057E000F8028CE291E09093E6028093E50280E279 +:1057F00093E09093E4028093E3028AE090E0909338 +:10580000E2028093E102C1018E7F9093F2028093C5 +:10581000F1024092F00280910203882309F1109175 +:105820004A011123E9F00E940917C090E802D090C4 +:10583000E902E090EA02F090EB026C197D098E0912 +:105840009F0928EE33E040E050E00E94DB3321174F +:1058500038F0109202030E94B51981E080934D0147 +:105860008091FE028823E9F180910303882349F1A6 +:1058700020E030E040EA51E46091FA027091FB02CE +:105880008091FC029091FD020E940D346B017C011D +:105890006091F8027091F90290E080E00E947C3201 +:1058A0009B01AC01C701B6010E94773287FF04C09B +:1058B00090E080E00E945A160E94B51981E0809322 +:1058C0004D011092FE0210920303109204030E94F5 +:1058D00009176093F4027093F5028093F602909397 +:1058E000F7020E9409170091F4021091F50220912D +:1058F000F6023091F702601B710B820B930B20E6CE +:105900003AEE40E050E00E94DB33122F2093F30286 +:105910008091030381110BC080914C01882339F0E1 +:10592000281728F081E0809303030E94B519809125 +:10593000040381110BC080914B01882339F01817A3 +:1059400028F081E0809304030E94B5190E94EC21A5 +:105950000E94C21A0E9409178091F607362F381B41 +:10596000832F9091F707992309F44CC33093F807DC +:105970001092F70780E090E0892B09F498CE0E94FE +:10598000FB14882309F493CE0E94000090CE83E09C +:10599000581609F448C194E0591218CF8091420179 +:1059A000883008F0FECE91E0980F909342018093EA +:1059B00007030E94D319E091070328E0E29FF0015A +:1059C0001124EE5FFE4F88ED90E09183808324E305 +:1059D00031E03383228386E891E095838483778264 +:1059E0006682DFCE0E944620DCCE8E010F5F1F4F05 +:1059F000812C912C5401839478EEE72E73E0F72EDE +:105A0000CC24C394D12CE091070324E0E29FF00161 +:105A10001124C4010197E80FF91FEE0FFF1FEE5F7D +:105A2000FE4F808191819093F9028093F802E8EC17 +:105A3000F0E0F093E602E093E502F092E402E092F7 +:105A4000E302D092E202C092E102880F991F909384 +:105A5000F2028093F102F1E0F0934D0186E00E94A2 +:105A6000C71521E0892B09F020E02093E0020E9475 +:105A7000061422E02093FF070E94EC210E94C21A24 +:105A80001092FA071092F9071092FC071092FB0788 +:105A900087E092E20E94C518C501B4010E94EB1D87 +:105AA00085EB92E00E949A1D80914F011092FA07B7 +:105AB0001092F907882309F48BC080E190E090935D +:105AC000FC078093FB078AEF91E20E94C5181092B1 +:105AD000FA071092F907E0E2F0E0F093FC07E09398 +:105AE000FB0783EF91E20E94C5186091F10270916B +:105AF000F20275956795072E000C880B990B0E9492 +:105B0000EB1D0E94A3190E94311786E00E94C71561 +:105B1000892B09F0ACCF8091E0028111A8CF809150 +:105B2000F1029091F20295958795F80181939193F6 +:105B30008F010E94B5196AE070E080E090E00E9459 +:105B4000D716FFEF8F1A9F0AAF0ABF0A24E082160A +:105B50009104A104B10409F056CF8FEF90E00E94A8 +:105B60005A168BEA94E00197F1F70E9425190E94DA +:105B7000F2344B0178876F83C980DA800B811C81F6 +:105B8000C6014E968017910708F00BCEED80FE807F +:105B9000C8014E968E159F0508F003CE87E08093CE +:105BA000E70280E00E948B24882309F4FACDE0917B +:105BB000070338E0E39FF0011124EE5FFE4FD1822E +:105BC000C08213830283F582E48297828682E9CDC4 +:105BD00020E130E03093FC072093FB078DEE91E24B +:105BE0000E94C5186091DB027091DC028091DD0299 +:105BF0009091DE020E94F23490E080E04AE00E9440 +:105C0000A71D1092FA071092F90780E290E0909396 +:105C1000FC078093FB0781EE91E20E94C51871CFCB +:105C20000E94D319BECD87E08093E70280914201A4 +:105C3000813009F4B6CD80E00E948B24882309F4DA +:105C4000B0CD1091070300914201802F8150990B34 +:105C5000BC011817190639F41150109307030150AD +:105C6000009342019ECD812F90E086179707BCF7E5 +:105C7000E6E01E9FD001112450E040E09C012F5F20 +:105C80003F4FFA01EA0FFB1FE05BFE4FF680F08208 +:105C90004F5F5F4F46305105A1F7A3E0220F331F3E +:105CA000AA95E1F7F901EE5FFE4F20813181B3E063 +:105CB000880F991FBA95E1F7DC01AE5FBE4F1196D0 +:105CC0003C932E938281938113969C938E9312978B +:105CD0008481958115969C938E93149786819781E4 +:105CE00017969C938E9316971F5FBDCF82E080938B +:105CF000E70210E068E2C62ED12C7CE2A72EBB247E +:105D0000B394E0E28E2EE3E09E2EF4E1EF2EF12C30 +:105D1000812F0E948B24182F813021F130F08230A6 +:105D200009F43FC00E9437210ECD80914601909129 +:105D30004701B092E602A092E5029092E4028092BE +:105D4000E3027092E2026092E102880F991F909341 +:105D5000F2028093F1020E946424909347018093A1 +:105D60004601D6CF8091440190914501D092E60240 +:105D7000C092E502E0E9F1E0F093E402E093E3028F +:105D80007092E2026092E102880F991F9093F202F2 +:105D90008093F1020E946424909345018093440112 +:105DA000B7CF8091430190E0F092E602E092E502E5 +:105DB00028EC30E03093E4022093E3027092E20298 +:105DC0006092E102880F991F9093F2028093F10292 +:105DD0000E946424809343019BCF83E08093E70279 +:105DE000F12C01E010E08F2D0E948B24F82E31E081 +:105DF0008317E9F18317F8F082E0F81293CF8091CE +:105E00004A0190E01092E6021092E50228E631E0A5 +:105E10003093E4022093E3027092E2026092E10286 +:105E2000880F991F9093F2028093F1020E946424DC +:105E300080934A01D8CF80914C0190E01092E60205 +:105E40001092E502ECE3F0E0F093E402E093E30269 +:105E50001093E2020093E102880F991F9093F202DF +:105E60008093F1020E94642480934C01BCCF809106 +:105E70004B0190E01092E6021092E50228E730E034 +:105E80003093E4022093E302E5E0F0E0F093E202D5 +:105E9000E093E102880F991F9093F2028093F10240 +:105EA0000E94642480934B019ECF84E08093E7029C +:105EB000809149010E948B2491E0811101C090E002 +:105EC0009093490140CC10E0E9E0EE2EF5E0DF2EA2 +:105ED000E092E702812F0E948B24182F882321F063 +:105EE0008130E1F000E009C0D092E70280918001AA +:105EF0000E948B248093800101E0F090DF0280EC0F +:105F0000F11001C088EC0E944E1780EAF11001C028 +:105F100081EA0E944E170111DBCF04CF8091DF028E +:105F200081278093DF02E8CF86E08093E7028091AB +:105F300048010E948B2491E0811101C090E0909370 +:105F4000480101CC8091FF0290E01092E60210928D +:105F5000E502E4EFF1E0F093E402E093E30221E0F4 +:105F600030E03093E2022093E102880F991F909372 +:105F7000F2028093F1020E9464248093FF020E9447 +:105F8000B519E1CB88E08093E70280914E010E9431 +:105F90008B2480934E01D7CB0E940614EE24E39409 +:105FA00000E320E34EE052E270E060E088E290E03F +:105FB0000E945D130E94311764E670E080E090E07B +:105FC0000E94D71686E00E94C715892BD9F78091C9 +:105FD000E0028111F7CFD3CF8091020391E08927AE +:105FE00080930203882351F00E9409176093E8020E +:105FF0007093E9028093EA029093EB0281E0809330 +:10600000FE0207CC9091F507391748F48F5F891786 +:1060100008F0B0CC81E083BF889513BEABCC11E013 +:106020001093F7076093F6078091F1079091F207BC +:1060300001969093F2078093F10780918001882365 +:1060400009F4BCC10E94061401E020E440E870E0BD +:1060500060E090E080E00E943B131093FF071093F4 +:10606000FE071092FD07E12C00E120E14DE953E22B +:1060700070E060E090E080E00E945D1383E190E0DA +:106080009093FA078093F90784E090E09093FC07DF +:106090008093FB0780910703E6E08E9FC0011124E7 +:1060A000805B9E4F0E949A1D80910503909106038C +:1060B000853F914008F02DC18091040381112BC1CF +:1060C00080910303811129C180910203811127C1AD +:1060D00080914F01811125C120E030E044E353E479 +:1060E0006091A9077091AA078091AB079091AC07C6 +:1060F0000E94773287FF17C185E025E330E03093B7 +:10610000FA072093F90721E030E03093FC07209351 +:10611000FB0792E09093FF07C82ED12C90914E017F +:10612000CC0CDD1C911101C1F601E358FD4F4081FB +:106130005181E12C0EE02CE161E070E080E590E01F +:106140000E945D13F601E159FD4F40815181E12C20 +:106150000EE02EE061E070E081E790E00E945D13C8 +:1061600081E08093FF070E94251920E030E040EA9B +:1061700052E40E94213518160CF0FAC00E9409174B +:1061800052E0660F771F881F991F5A95D1F728EEA6 +:1061900033E040E050E00E94DB3320FFE9C00E9482 +:1061A000B519609100037091010390E080E00E94B6 +:1061B0007C3220E030E048EC52E40E9479346B01FC +:1061C0007C016091FF0270E090E080E00E947E32EE +:1061D0009B01AC01C701B6010E94773287FDD4C094 +:1061E000E12C0EE02EE04FE353E262E270E082E049 +:1061F00090E00E945D1303E110E01093FA07009312 +:10620000F90720E130E03093FC072093FB070E9460 +:10621000251941E00E94151E88EF0E94E0188DE3C9 +:1062200093E20E94C5181093FA070093F90788E1DA +:1062300090E09093FC078093FB070E94E918BC0153 +:1062400090E080E00E947C3220E030E04AE754E4B5 +:106250000E94793442E00E94151E8BE393E20E9473 +:10626000C5181093FA070093F90780E290E0909325 +:10627000FC078093FB07609100037091010390E09D +:1062800080E00E947C3220E030E04AE754E40E9443 +:10629000793441E00E94151E89E393E20E94C518FB +:1062A0001093FA070093F90788E290E09093FC07B7 +:1062B0008093FB0782E393E20E94C51889E390E094 +:1062C0009093FA078093F90782E190E09093FC079E +:1062D0008093FB0784E08093FF0760910503709132 +:1062E0000603653F91E0790708F462C08EE293E20D +:1062F0000E94C51800E020E248E460E170E087E316 +:1063000090E00E94921780E00E94ED1E0E943117DB +:1063100031CB80E0F2CE81E0F0CE82E0EECE83E0C1 +:10632000ECCE84E0EACE86E0E8CE8330C1F038F4EB +:10633000813069F0823081F087E793E20AC08530CE +:10634000A1F080F08630C1F78DE793E202C089E9C1 +:1063500093E20E94C518F6CE83E993E2FACF8DE866 +:1063600093E2F7CF87E893E2F4CF82E893E2F1CFAC +:10637000E12C0EE02EE04BE553E262E170E082E0BA +:1063800090E00E945D130DCF0E94091742E0660F56 +:10639000771F881F991F4A95D1F728EE33E040E018 +:1063A00050E00E94DB3320FF1BCF0E94B51923CFA2 +:1063B00090E080E04AE00E94A71D9CCF0E94061456 +:1063C0000E94251920E030E040EA52E40E94213585 +:1063D000181694F40E94091732E0660F771F881F81 +:1063E000991F3A95D1F728EE33E040E050E00E9443 +:1063F000DB3320FD0E94B519609100037091010309 +:1064000090E080E00E947C3220E030E048EC52E4F2 +:106410000E9479346B017C016091FF0270E090E092 +:1064200080E00E947E329B01AC01C701B6010E9450 +:10643000773287FF12C00E94091722E0660F771F8C +:10644000881F991F2A95D1F728EE33E040E050E0ED +:106450000E94DB3320FD0E94B519809105039091C5 +:106460000603853FE1E09E0710F087EE93E00E946F +:10647000302300E023E040E860E370E090E080E05B +:106480000E943B1381E040CFC092D707D092D8073B +:10649000E092D907F092DA07E091CD07F091CE07AC +:1064A00080819181A281B3818093DB079093DC0787 +:1064B000A093DD07B093DE0720E030E04FE753E420 +:1064C000C701B6010E94213518160CF055C940923B +:1064D000D7075092D8076092D9077092DA07A9C8F7 +:1064E000FB01DC0105900D920020E1F708950E9468 +:1064F000B93208F481E00895E89409C097FB3EF4AE +:1065000090958095709561957F4F8F4F9F4F992300 +:10651000A9F0F92F96E9BB279395F695879577957E +:106520006795B795F111F8CFFAF4BB0F11F460FF3E +:106530001BC06F5F7F4F8F4F9F4F16C0882311F096 +:1065400096E911C0772321F09EE8872F762F05C0AA +:10655000662371F096E8862F70E060E02AF09A9545 +:10656000660F771F881FDAF7880F9695879597F93A +:106570000895990F0008550FAA0BE0E8FEEF1616D4 +:106580001706E807F907C0F012161306E407F50727 +:1065900098F0621B730B840B950B39F40A2661F09B +:1065A000232B242B252B21F408950A2609F4A1403E +:1065B000A6958FEF811D811D08950E94F0320C94E5 +:1065C00061330E94533338F00E945A3320F09523F0 +:1065D00011F00C944A330C94503311240C949533DD +:1065E0000E94723370F3959FC1F3950F50E0551FD1 +:1065F000629FF001729FBB27F00DB11D639FAA2718 +:10660000F00DB11DAA1F649F6627B00DA11D661F66 +:10661000829F2227B00DA11D621F739FB00DA11D87 +:10662000621F839FA00D611D221F749F3327A00D41 +:10663000611D231F849F600D211D822F762F6A2FDD +:1066400011249F5750409AF0F1F088234AF0EE0F42 +:10665000FF1FBB1F661F771F881F91505040A9F76F +:106660009E3F510580F00C944A330C9495335F3F64 +:10667000E4F3983ED4F3869577956795B795F795AB +:10668000E7959F5FC1F7FE2B880F911D9695879523 +:1066900097F9089597F99F6780E870E060E00895A2 +:1066A0009FEF80EC089500240A941616170618062A +:1066B0000906089500240A94121613061406050606 +:1066C0000895092E0394000C11F4882352F0BB0F97 +:1066D00040F4BF2B11F460FF04C06F5F7F4F8F4FFA +:1066E0009F4F089557FD9058440F551F59F05F3F35 +:1066F00071F04795880F97FB991F61F09F3F79F0E4 +:1067000087950895121613061406551FF2CF469565 +:10671000F1DF08C0161617061806991FF1CF8695E7 +:106720007105610508940895E894BB2766277727CB +:10673000CB0197F90895F999FECF92BD81BDF89AE2 +:10674000992780B50895262FF999FECF1FBA92BDDB +:1067500081BD20BD0FB6F894FA9AF99A0FBE019642 +:106760000895052E97FB1EF400940E94C83357FD30 +:1067700007D00E94DB3307FC03D04EF40C94C833DF +:1067800050954095309521953F4F4F4F5F4F08955D +:1067900090958095709561957F4F8F4F9F4F08958D +:1067A0000E94FD33A59F900DB49F900DA49F800D76 +:1067B000911D11240895A1E21A2EAA1BBB1BFD01F5 +:1067C0000DC0AA1FBB1FEE1FFF1FA217B307E407D0 +:1067D000F50720F0A21BB30BE40BF50B661F771F28 +:1067E000881F991F1A9469F7609570958095909508 +:1067F0009B01AC01BD01CF010895A29FB001B39FE1 +:10680000C001A39F700D811D1124911DB29F700DB9 +:10681000811D1124911D08955058BB27AA270E945D +:1068200024340C9461330E94533338F00E945A335D +:1068300020F039F49F3F19F426F40C9450330EF4F1 +:10684000E095E7FB0C944A33E92F0E94723358F32A +:10685000BA17620773078407950720F079F4A6F545 +:106860000C9494330EF4E0950B2EBA2FA02D0B014F +:10687000B90190010C01CA01A0011124FF27591B85 +:1068800099F0593F50F4503E68F11A16F040A22F8B +:10689000232F342F4427585FF3CF469537952795FC +:1068A000A795F0405395C9F77EF41F16BA0B620BFB +:1068B000730B840BBAF09150A1F0FF0FBB1F661F42 +:1068C000771F881FC2F70EC0BA0F621F731F841F85 +:1068D00048F4879577956795B795F7959E3F08F0AB +:1068E000B0CF9395880F08F09927EE0F979587956D +:1068F00008950E948D340C9461330E945A3358F0ED +:106900000E94533340F029F45F3F29F00C944A333E +:1069100051110C9495330C9450330E94723368F3E8 +:106920009923B1F3552391F3951B550BBB27AA2748 +:1069300062177307840738F09F5F5F4F220F331F82 +:10694000441FAA1FA9F335D00E2E3AF0E0E832D04A +:1069500091505040E695001CCAF72BD0FE2F29D04D +:10696000660F771F881FBB1F261737074807AB071F +:10697000B0E809F0BB0B802DBF01FF2793585F4F94 +:106980003AF09E3F510578F00C944A330C949533BD +:106990005F3FE4F3983ED4F3869577956795B79576 +:1069A000F7959F5FC9F7880F911D9695879597F981 +:1069B0000895E1E0660F771F881FBB1F62177307FA +:1069C0008407BA0720F0621B730B840BBA0BEE1F0F +:1069D00088F7E09508950E94F2346894B1110C9400 +:1069E000953308950E947A3388F09F5798F0B92F15 +:1069F0009927B751B0F0E1F0660F771F881F991FF4 +:106A00001AF0BA95C9F714C0B13091F00E949433CE +:106A1000B1E008950C949433672F782F8827B85FDE +:106A200039F0B93FCCF3869577956795B395D9F74B +:106A30003EF490958095709561957F4F8F4F9F4F55 +:106A400008950E94B93208F48FEF0895FA01EE0F0D +:106A5000FF1F309621053105A1F16115710561F423 +:106A60008038BFE39B0749F168949038810561F055 +:106A70008038BFEF9B0741F099234AF5FF3FE105BE +:106A80003105210519F1E8940894E795D901AA2365 +:106A900029F4AB2FBE2FF85FD0F310C0FF5F70F466 +:106AA000A695E0F7F73950F019F0FF3A38F49F77E0 +:106AB0009F930DD00F9007FC9058089546F00C94CA +:106AC000503360E070E080E89FE308954FE79F77E0 +:106AD0005F934F933F932F930E9426362F913F91C0 +:106AE0004F915F910E94DD320C9483350E94B93240 +:106AF000880B990B089529F416F00C944A330C94E2 +:106B000094330C9450330E947A33A8F39638A0F74C +:106B100007F80F92E8942BE33AEA48EB5FE70E940C +:106B2000F3320F920F920F924DB75EB70F920E9401 +:106B30006E36E8E6F0E00E94B5354F915F91EF9137 +:106B4000FF91E595EE1FFF1F49F0FE57E0684427CF +:106B5000EE0F441FFA95E1F74195550B0E94E83579 +:106B60000F9007FE0C94DC350895DF93CF931F93AD +:106B70000F93FF92EF92DF927B018C01689406C025 +:106B8000DA2EEF010E94F032FE01E894A5912591E2 +:106B9000359145915591A6F3EF010E942434FE01F1 +:106BA0009701A801DA9469F7DF90EF90FF900F91B9 +:106BB0001F91CF91DF9108959B01AC0160E070E0DF +:106BC00080E89FE30C9479340C944A330C94A236F9 +:106BD0000E947A33D8F39923C9F3940F511DA3F37C +:106BE0009150504094F059F0882332F0660F771F8F +:106BF000881F91505040C1F79E3F51052CF7880FD8 +:106C0000911D9695879597F908955F3FACF0983E52 +:106C10009CF0BB27869577956795B79508F4B1608A +:106C20009395C1F7BB0F58F711F460FFE8CF6F5F82 +:106C30007F4F8F4F9F4FE3CF0C94953316F00C94FA +:106C4000A2360C94503368940C944A330E947A33E1 +:106C5000A8F39923C1F3AEF3DF93CF931F930F9360 +:106C6000FF92C92FDD2788232AF02197660F771F0F +:106C7000881FDAF720E030E040E85FEB9FE38839D7 +:106C800020F0803E38F021968F770E940D34E0E9A5 +:106C9000F0E004C00E940D34EDEBF0E00E94B53549 +:106CA0008B01BE01EC01FB2E6F5771097595771FA3 +:106CB000880B990B0E947E3228E132E741E35FE3C3 +:106CC0000E94F032AF2D9801AE01FF900F911F91FD +:106CD000CF91DF910E9424340C946133FA01DC01DE +:106CE000AA0FBB1F9B01AC01BF5728F422273327F3 +:106CF0004427507820C0B75190F4AB2F002446951C +:106D000037952795011CA395D2F3002071F0220F2F +:106D1000331F441FB395DAF30ED00C940C3461305A +:106D20007105A0E88A07B94630F49B01AC016627DB +:106D3000772788279078309621F02083318342830B +:106D4000538308959F3F31F0915020F487957795B4 +:106D50006795B795880F911D9695879597F9089532 +:106D6000DB018F939F930E94D033BF91AF91A29F7D +:106D7000800D911DA39F900DB29F900D1124089539 +:106D800097FB072E16F4009407D077FD09D00E94D8 +:106D9000DA3607FC05D03EF4909581959F4F089513 +:106DA000709561957F4F0895EE0FFF1F0590F49148 +:106DB000E02D0994AA1BBB1B51E107C0AA1FBB1FF2 +:106DC000A617B70710F0A61BB70B881F991F5A9577 +:106DD000A9F780959095BC01CD01089581E090E0E0 +:0A6DE000F8940C94F336F894FFCFFA +:106DEA0001FFD800340186011E00000000000000E7 +:106DFA000000000000000000000000000000000089 +:106E0A000000000000000000000000000000000078 +:106E1A000000000000000000000000000000000068 +:106E2A000000013C960040010101280F0501010103 +:106E3A004243312E3500000000000000000000002F +:106E4A000000000000000000000000000000000038 +:106E5A000000000000000000000000000000000028 +:106E6A0001770272026D02660260025C02530250EE +:106E7A00024B0247023E0234022C02290226022356 +:106E8A00021D021A02150212020F020A020502026A +:106E9A0002FC01F801F401EF01EA01E601E101DD7A +:106EAA0001D901D601D201C901C401C1012D0CDDEC +:106EBA000B8D0B3D0BED0A9D0A4D0AFD09AD095DCF +:106ECA00092D0C0D09BD086D081D08CD077D072D7C +:106EDA0007DD06CD072D078D06DD06CD073D06ED3C +:106EEA00059D054D05FD04AD045D040D04BD036D4E +:106EFA00031D03CD027D02CD07710F550F390F1DFA +:106F0A000F010FE50EC90EAD0E910E750E590E3D0D +:106F1A000E710F210E050EE90D710FCD0DB10DE9A0 +:106F2A000DCD0D950DB10DE90D790D5D0D410D25B7 +:106F3A000D090DE50EED0C750ED10CB50C990C0171 +:106F4A000F7D0CE90D0A0604040202020203031D66 +:106F5A00100110E10F3F23C50FA90F8D0F891151A1 +:106F6A00111911E110A91071103910000000003137 +:106F7A00159114BE147E15EF14CD14E1140000000F +:106F8A0000C3179114E618E5186E616E00696E6603 +:086F9A00006F7666002F330042 +:00000001FF diff --git a/software/binaries/1.7t4/T12.ino.with_bootloader.standard.hex b/software/binaries/1.7t4/T12.ino.with_bootloader.standard.hex new file mode 100644 index 0000000..7d46235 --- /dev/null +++ b/software/binaries/1.7t4/T12.ino.with_bootloader.standard.hex @@ -0,0 +1,1822 @@ +:020000040000FA +:100000000C94EE110C9416120C9416120C944727B3 +:100010000C9416120C9416120C9416120C941612C0 +:100020000C9416120C9416120C9416120C941612B0 +:100030000C9416120C9416120C9416120C941612A0 +:100040000C94FD260C9416120C94CB260C94A52629 +:100050000C9416120C941E280C9416120C94161262 +:100060000C9416120C94161207634236B79BD8A74D +:100070001A39685618AEBAAB558C1D3CB7CC5763CD +:10008000BD6DEDFD753EF6177231BF000000803F7B +:1000900008000000BE922449123EABAAAA2ABECD97 +:1000A000CCCC4C3E00000080BEABAAAAAA3E000009 +:1000B0000000BF000000803F000000000008417801 +:1000C000D3BB4387D1133D190E3CC3BD4282AD2B38 +:1000D0003E68EC8276BED98FE1A93E4C80EFFFBE30 +:1000E00001C4FF7F3F0000000000536176650046B9 +:1000F0006C6970004D61696E2053637265656E00B6 +:100100004A5000454E00434E00594553004E4F00A3 +:100110004F4E004F464600496E666F730042696756 +:100120000050494400446972656374005361766508 +:1001300000426F6F7374004F666600536C656570A4 +:10014000005361766500426F6F737400536C656590 +:10015000700044656661756C74005361766500419A +:1001600064640044656C6574650052656E616D651C +:100170000043616C696272617465004368616E6717 +:10018000650052657475726E0041626F7574004C43 +:10019000616E67004C4F5720566F6C0042757A7A3B +:1001A00065720053637265656E00436F6E74726FA3 +:1001B0006C0054696D65720054656D70005469700F +:1001C00000F21415F0CADFB8CCF0D699E8AEA4DF7F +:1001D000EEE8F21D1E08F21C08F21A1B08F0714628 +:1001E00001F046464A01F219F051F218F05A8DF02A +:1001F000C0DAEEAEF0C8B8A5F1302924F0B599E127 +:10020000A4BDF21415F0CBEEAEBDF218F05A8DF28B +:100210001617F21415F0CBEEAEBDF21617F0BCCAED +:100220009EE0BDF21415F21213F21011F20C0DF053 +:1002300094F20E0FF0A2D8DFCBE1EEACDCE8F20ACC +:10024000F08CF20BF04A8DF209F08DF097C59BBD52 +:10025000F20708F2040506F097DEEED5F0CBABEE20 +:10026000F0AEA4DFEEE8F0A8E8BDE2EEE0F0B4996D +:10027000D3EEF200010203F0CCDFB0B8BD00000005 +:1002800000000F1DC20800054442080003845FBF40 +:10029000000FE44410000115451000054CC97F8093 +:1002A00009244F900007C4C11000054D413F0005CF +:1002B0005443810007C44D02000544411400055514 +:1002C00041080007C8810400000000000000000091 +:1002D000000001083FFE001FFF81000000400200F7 +:1002E0000007FE0FF8000402080800040208880056 +:1002F00007FE088800040208880004020888000736 +:10030000FE0888000402094800040202300007FECB +:10031000040C0004021804000000000000000000AB +:10032000000007FE13FE000402084000040208401B +:1003300000040201FC000402388400040208840066 +:1003400007FE0FFF000402080000040209FE00047B +:100350000209020004020B020004020D020007FE63 +:1003600009FE00040201020000000000000000007D +:10037000000001100080001FFF80800001103FFF7F +:1003800000004004080007FC0408000444041000B6 +:10039000044402100004440220001FFF81200000DA +:1003A0004000C00000A00130000110020800060C4F +:1003B0000C07001803B0020000000000000000005D +:1003C0000000004000800000400080000FFF3FFF61 +:1003D0000008410408000841040800084104100016 +:1003E00008410210000FFF02200008410120000018 +:1003F0004000C00000400130000040020800004002 +:100400000C07000040300200000000000000000067 +:1004100000001FDF10200002120C20000224042024 +:1004200000047F8020000424B820000FA48850001E +:1004300014BF88500004A488500004A48848000415 +:10044000BF88880004A48A880007A48C8400044420 +:100450008907000081860200000000000000000003 +:1004600000000FF00491000440025200047F9054F9 +:1004700000045088FF0007D08481000451008100EF +:10048000044901FF0007CA028100044404810004FA +:100490004A1CFF0007EA0481000C5104810000613E +:1004A000C4850000408082000000000000000000C1 +:1004B000000007FF802000008407FF000084040183 +:1004C00000008404010000840401000FFFC7FF0046 +:1004D00000840400000084040000008405FF000084 +:1004E000840501000104090100010409010002045E +:1004F00011FF0004040101000000000000000000E2 +:100500000000008204FF00004402010007FF902168 +:10051000000010102100001017FD00001010210035 +:100520000FFFD06100001010A10000281121000071 +:10053000281221000044142100008210A1000301B0 +:10054000D045000C009002000000000000000000F8 +:100550000000084410FE00042810920005FF2292BB +:100560000000103C920000100892001CFE10920047 +:10057000041020FE0004103E920005FF809200044B +:100580001000920005100E92000610309200041028 +:1005900000FE0000100082000000000000000000CB +:1005A000000007DF8840000A24104000114210FEBE +:1005B00000040022820002FF3D020008010A4200FE +:1005C00009F9103200090920120009F93E02000958 +:1005D0000900020009090E020009F930220008058D +:1005E00000140008020008000000000000000000E5 +:1005F00000000FC3F1E0000FE3F1F8000C70C19EA2 +:10060000000C30C186000C30C183000C30C1830067 +:100610000C60C183000C60C183000FC0C183000F58 +:10062000C0C186000C00C186000C00C198000C03FC +:10063000F1F8000C03F1E0000000000000000000F1 +:10064000000000200820000FFF09FC000020080027 +:100650000000203E880003FE08500002020BFE004E +:1006600003FE0C4000020218400003FE2BFE0002B5 +:100670000208480003FE0888000202085000020237 +:100680002830001FFF91CC0000000000000104048E +:100690007C0000880444000FFF3F44000020044415 +:1006A0000000200C440000200E44001FFF95440071 +:1006B0000020144400005024440000500444000072 +:1006C0008804450001040485000603850300180121 +:1006D0000400000000000000000000000000000016 +:1006E0000000047E21FC0004421104001F7E090466 +:1006F00000044221FC000542110400067E110400A2 +:100700000C0005FC0015FF880000040813FE00041F +:1007100048325200044F125200044812520014A8EA +:10072000125200091F97FF000000000000000000A7 +:10073000000002103DFC00021025040004102504F6 +:100740000005FFBDFC000C102520000C3825200002 +:10075000143825FE0004543D2000045425100004E4 +:10076000922510000511A5090006113D4500041051 +:1007700025830004100101000000000000000000BB +:1007800000001FC8102000124A0C20001AC90420C3 +:100790000017480020001FFFB82000020808500082 +:1007A0001FC8085000020808500003C80848001E6F +:1007B0001408880001540A880015220C8400144390 +:1007C0008907000081060200000000000002FE010F +:1007D000000002823FFF00048202000004FE0200CB +:1007E000000C1004FC00141004080005FF8C10001D +:1007F0000410141000043825FF0004340410000411 +:1008000052041000049184100005100450000410DC +:1008100004200000000000000000000000000000B4 +:10082000000002030010001FDC3EFE0008900212D0 +:1008300000051004FF001FDF84120002120CFE00EE +:100840001FD2021000021222FE000A921410000AA7 +:100850005214100012220DFF0002220810000A425A +:10086000141000040223FF0000000000000000003C +:1008700000000F78BC20000948A45000094AA85085 +:1008800000094AA88800094AB104001FFEAAFB001B +:10089000094AA42000094AA42000094AA7FE000929 +:1008A0004AB420000948A924000B48A22200088A63 +:1008B000A4A2001119204000000000000000000068 +:1008C00000000020008000005001FC0000880104AE +:1008D00000010403080006FB0490000800C060004B +:1008E00007DF018000045106000004511BFE0004D4 +:1008F0005102020007D90202000456020200001051 +:1009000003FE0000100202000000000000000000D2 +:1009100000000208209000027F9890001F8009FFCD +:1009200000022201100006218B100007628DFE00DC +:100930000AA20910000A14111000121431FE00025C +:1009400008111000021411100002221110000243BD +:1009500091FF000281110000000000000000000073 +:100960000000100700000008F83FFE00048020028D +:1009700000008020020000BE23E2001C8222220030 +:1009800004A42222000494222200048822220004CB +:100990009423E200052220020005422002000A0002 +:1009A0003FFE0011FFA00200000000000000000058 +:1009B000000000820FFE00004400400007FF80405E +:1009C000000010004000001000400000101FFF80D9 +:1009D0000FFFC04000001000400000280040000051 +:1009E0002800400000440040000082004000030155 +:1009F000C140000C00808000000000000009FF00E2 +:100A0000400004203FFF00042000000000FE000022 +:100A1000001C420FFC00044200000007FF800000A1 +:100A200004000FFC0004FF0000000481000000052A +:100A3000810FFC00068108040004FF080400008107 +:100A40000FFC00000000000000000000000000009B +:100A5000000001000FFE00010008200003FF082035 +:100A6000000201082000042208200008200BFE00DC +:100A70001020082000005008280000500824000022 +:100A800088082200008810200001041020000203C2 +:100A9000A7FF000C010000000000000000000000A3 +:100AA000000000400080001FFF9FFC000040041079 +:100AB000000FFF02200000003FFF000FFE000000BB +:100AC00008420FF80008420808000FFE0808000856 +:100AD000020FF800080008080008000808000800D5 +:100AE0000FF80010000808000000000000000000DF +:100AF000000007FE0FF800040200000004020000DE +:100B00000007FE00000004023FFE00040200800017 +:100B100007FE008000009004900008910C880006F9 +:100B200093108600029420820000900080000090C4 +:100B30000280001FFF810000000000000000000094 +:100B40000000041012020005FF9FD200050092125F +:100B5000001E28A2120004443FF200048202120088 +:100B600006000212000CFE1FD200141012520004E4 +:100B7000101242000410134200041012820015FFEC +:100B8000820A0008000204000000000000000000CB +:100B90000000002000000000203E04001FFFA2040F +:100BA000001000A2FF0000012204000FFE2204003A +:100BB00000403E440000402224000440222400045F +:100BC0007C22040004402204000A403E0400094044 +:100BD00022240010FF801400000000080000000024 +:100BE000000010FE08200008820BFF0004820A01AA +:100BF0000010FE3C510008820888000882090400A9 +:100C000002FE0C0000040019FC0009FF2820001956 +:100C1000290820000929082000092908200009299D +:100C20002BFF000BFF900000000000000000000000 +:100C300000001F7F90F80001080888000A1008884B +:100C400000047F0107001FC13A0000054909FC00AC +:100C5000044908840004490888000449084800043D +:100C60004908500004490A200004160C58001421B9 +:100C700089870008C0860200000000000080040090 +:100C8000003FF0383033103F9038103390279026D3 +:100C90001030903FF000008004800400003FF03DE1 +:100CA000F020103BF03B7030302B502AD031B03F59 +:100CB000F000008004800400003FF03870303023E2 +:100CC00010279020102010279027903FF0000080E0 +:100CD00004800400003FF03CF03CF02010249024FD +:100CE0009020103CF03CF03FF000008004800400B5 +:100CF000003FF037B0231030303870387030302378 +:100D00001037B03FF000008004FCF4F860E044C00D +:100D10008CC11CC22CC44CC88CD10CA204C4048F3E +:100D2000FC187CBCFC8000BFF81FF8B0281FF8B48A +:100D3000081FF8B1081FF8B048BFF8B288BFF880A4 +:100D4000008000BFF81FF8B0081808B9E819B8B853 +:100D5000381838B9B8B9F8B0F8BFF8800015543F62 +:100D6000F815503FF01550387010203104138C22C4 +:100D7000A817FC2AA80000000015543FFC15543F9A +:100D8000FC15543C0414043CFC14543CFC0054007A +:100D9000A800000000800400003FF03CF034B024C4 +:100DA00090249027902310303038703FF00000805E +:100DB00004FF7CFE7CFCECE8DCC84C984C882408E2 +:100DC0002000000000000000008004E01CF3FCE7AD +:100DD000FCCE0C8E1C9F9C1F3C1F0C0E0C0FFC8726 +:100DE000F881E4C00CE01CF87C000458085808584E +:100DF0000840087FF860185FE85B685FE85B681C84 +:100E0000E85FE80000800400003FF03CF03CF03C6C +:100E1000F0201020103CF03CF03CF03FF00000804F +:100E200004F87CF7BC00007FF80000BFF4AB54ABC3 +:100E300054AB54AB54AB54AB54BFF4C00CF03CCEE9 +:100E40000CBF04B30473007F007E007C007C007C38 +:100E500060BC64BE04CF0CF03C81DC559C29045579 +:100E600000299055D003FCFF002E0026700250820E +:100E700070E600EE04800C001C3FF43FE03FC437F6 +:100E80008C2318303038703CF03FF03FF000008089 +:100E900004058074B857A876B80580F97C4694AAF2 +:100EA000A8F97C068874A8578C75740698F03CCE17 +:100EB0004CBC34B814188010804230607860F8441C +:100EC000C08004B884CFCCF03CF87CE01CC00CCFD0 +:100ED000CCCFCCCFCCCFCCCFCCCFCCCFCCC84CCFC1 +:100EE000CCC00CE01CFCFCF87CE01CC00CC00CC0AE +:100EF0000CC00CC00CC00C80048004FFFCF87CFC0F +:100F0000FC800400002000100008001000270000F2 +:100F100000000000000000000000008004C3FC1876 +:100F2000001800C3FCFFFCFF0C00600060FF0CFF1A +:100F3000FCF0FC06000600F0FC8FC4102020104CD2 +:100F4000C89FE43DF03DF01DE03EF03F709FE48C13 +:100F5000C400003030F87CF33CF4BCF6BCF4BCF6C2 +:100F6000BCF4BCE49CC84CD02CD02CC84CE79CF002 +:100F70003C88240820383038303830383038303821 +:100F80003039303BB03FF03FF0000080041FE03FBD +:100F9000F07038601860186018FFFCFCFCFCFCFC6A +:100FA000FCF87CF87CFCFC7FF81E1033382D7C2587 +:100FB000382D3825382D386D80DEC0BF40BF40DE6B +:100FC000C061803F007FF0FFE0C008C01CC038C88F +:100FD00070DCE4CFCCC78CC30CC00CC00CFFFC7F12 +:100FE000F8000006000C0018F838F030307060701F +:100FF0007878F878003C023F0C1FF80FF003C0002F +:10100000007FF8FFFCC00CC30CCB4CDB6CDB6CD856 +:101010006CDCECCFCCC78CC00CFFFC7FF803000766 +:10102000800FC00CC01CE01CE03CF03CF07FF87F5F +:10103000F8FCFCFCFCFFFC7FF81140820021208FB3 +:10104000E023FC82004A23E200FE209FF013F88098 +:10105000802220C0804221BFF0FBFA8880022084D9 +:1010600080022084801A208080E3FE8280020101B9 +:10107000000F421FC0784110400840904008421FB6 +:10108000C008411040FFFD104008405FC00840808C +:101090000008413FE008432520104125201041254C +:1010A000202041252040417FF07FF8488002004900 +:1010B000000201FFF00201001002027F2022004125 +:1010C0000023F07F00220008002200FF8022008819 +:1010D000802200888022008A8022008900FFFC088C +:1010E0000023F21FC022111040FBF0904022121F7B +:1010F000C02A11104033F1104060005FC0AFFC8087 +:101100000020413FE022432520227925202241254D +:1011100020A541252048FD7FF01083DFC0108250BC +:1011200040208250402FFFDFC06082520061C252D7 +:1011300000A1C25FE022A3D20022A251002492515A +:1011400000288E5090308BD4502082583020801050 +:1011500010104047C017FC44402003F44023F844DB +:10116000406208C440A3F8E440200154402FFD44ED +:10117000402806444023F844402040445020404842 +:1011800050214050302080400020921FC03DF990F7 +:10119000402090904040901FC07BFF0000A0013F86 +:1011A000E021F90200FD09020021097FF021F90583 +:1011B00000210945002909888031F9107021082093 +:1011C0002025004300202070F87540775575774042 +:1011D000403E4A5E2B5E4A6B627F352F357F7C5BDB +:1011E0005E247B0E3A047E017E4A5E69063A2F3FFA +:1011F0006B7E46403F41497F494102626B6B6B62A7 +:10120000026A6B147D577D10413F55553D57512162 +:101210003F2D7F2A122E0A775A505A770A2024131C +:101220007D5553707A2A7B021A437A4A525E2B5EAE +:10123000424A415F353F555F417D14577D0E407FE7 +:101240007F1B54167D1654493A407E575676423FCE +:10125000427E7E427E047E51377D3750127A17528D +:10126000761E127F557F145D7F557F557F7F553DDC +:10127000577F55377817457F7F2B7B287B2B7F1E29 +:1012800012127F12121E7F416B7F6B517F525A5791 +:101290003A575A52007F494949497F22122A7F2AE8 +:1012A000122200000000002F000300033F123F162F +:1012B0003F1A120824323D2A020100003E41413EFD +:1012C000000A070A083E084020000808080020001D +:1012D0001008041C2A1C243E20322A24222A141816 +:1012E000143E2E2A121C2A12023A06142A14242A08 +:1012F0001C00240040240008142214141422140892 +:1013000002290612291E3E093E3F251A1E21213FB1 +:10131000211E3F25213F05011E21393F083F213F66 +:101320002110201F3F043B3F20203F063F3F013E4E +:101330001E211E3F09061E215E3F09362225190186 +:101340003F013F203F3F100F3F183F330C33033C1A +:1013500003312D23007F41153E15417F000201021C +:1013600040404000010218243C3F2418182424184F +:10137000243F182C2C043F0548543C3F0438003DC2 +:1013800000403D003F0834013F003C1C383C04381D +:101390001824187C241818247C3C0804283C1404C5 +:1013A0003E243C203C3C100C3C303C2418244C5047 +:1013B0003C24342C083641007F00413608010101ED +:1013C0001028101F010120203E10200000080025D9 +:1013D000150F241C0C103804180C3828382828182D +:1013E0003C083C18283820242C3C2C2C1C040808D1 +:1013F000211D07083C0306231E223E22120A3F320B +:101400000F3E0A3F0A24130E271E0222223E2712F5 +:101410000F2525102119273F222E21160F241B0EE0 +:10142000251F0526261E251D053F0408241F042010 +:101430002222251927123B1620100F3C013E1F24A3 +:101440002421110F0C031C1A3F1A091927222A2ADA +:10145000382730320C13053F25023F0E213F20254F +:10146000253F25251D07201F3C3F203F20103E2201 +:101470003E23110F21211801000102050200000086 +:10148000000000000020400000000000002050206C +:10149000000000000050300000000000006060000C +:1014A00000000000000000181800000000000036D6 +:1014B0003600000000000056360000000000020167 +:1014C00051090906000000005F0000000000000054 +:1014D000007F41410041417F00000000000000000A +:1014E0003F010101004040407E0000000000003F3D +:1014F000213D05070070505E427E000000000000A4 +:10150000007F63410041637F00000000000808087D +:101510007F08080800080808080808080044444430 +:101520005F44444400412214081422410008080882 +:101530002A08080800141414141414140014341481 +:101540001C14161400080814141422220022221459 +:1015500014140808000205023C42422400002B2C0F +:10156000782C2B000000242A7A2F2A1200001C62FB +:10157000322E23140020545E2541422000422512C1 +:10158000082452210020623E633E23020020564977 +:1015900055225840000022147F142200001C2259BA +:1015A000554D120C0000004A555529000004643CBA +:1015B000173C64040004643C1F3C6404001C22418A +:1015C0004141221C001C3E7F7F7F3E1C001C225D8F +:1015D000555D221C000814224122140800081C3EFC +:1015E0007F3E1C08007F41414141417F007F7F7F5A +:1015F0007F7F7F7F0040704C434C70400040707C88 +:101600007F7C704000010719611907010001071F65 +:101610007F1F0701004922144914224900050505CE +:101620007D05050500080808082A1C0800081C2A72 +:1016300008080808000004027F02040000001020CF +:101640007F20100000003E414141413E0000004229 +:101650007F4000000000625151494946000022418C +:10166000494949360000302824227F2000002F45B8 +:101670004545453900003E494949493200000101CC +:1016800061190503000036494949493600002649D9 +:101690004949493E000020547E3414600020527FA6 +:1016A0002A1A4A3000003C4020041800001E204046 +:1016B000200204180000104A4A2A100000000845C1 +:1016C000454525180000482A3A4A400000004425B4 +:1016D000153D45400000247E145024000022527F16 +:1016E0000A484A340044344F443804180044344F04 +:1016F0004439041900002A5A4B4E5A0800002A5A4D +:101700004B4E5B080000081414224100000008142E +:1017100014224504003F0004443F0404003F000439 +:10172000443F040500002052424242400000205243 +:10173000424342410000245444475C0400002454C6 +:1017400044475C050000003F404040200000003F4F +:10175000404140210002020A563F02020002020AF2 +:10176000563F02030004043F44545F440004043F16 +:1017700044545F45000008093D4B49080000080932 +:101780003D4B490A00423A072254444400423A077A +:1017900022554445000002124E4B4A32000002120C +:1017A0004E4B4A3300001010484830000004040239 +:1017B0002222221C000404022223221D0000020215 +:1017C0001A254341000002021A2543450000205714 +:1017D00048484444000020574849444500120A271D +:1017E00052503A24007F00205242424000304E388E +:1017F000540F64780024147F0422523C00182412F1 +:101800004E422418007F002454543F44007F00249B +:1018100054543F45007F002454563D4600023A4749 +:1018200040413E0400023A4740413E0500023A472B +:1018300040433D06004030404D3210600040304093 +:101840004D321161004030404D32156200080402F3 +:101850000408101000080402040910110008040212 +:10186000040A1512007F006A6A7E2A4A007F006A15 +:101870006A7F2A4B007F006A6A7E2D4A00006A6AEE +:101880006A7F2A4A0030291D4B483C1000122A7FEB +:101890004240422400304E38540F443800000A3E83 +:1018A0004B4A4A300000080E384614080004071C52 +:1018B00062030A0400001C483E241800001E045263 +:1018C0003F12120C00002050503E480000002050F3 +:1018D000503F244400001C51494A483000000F4248 +:1018E00041211E00000010696D4B49300024147F17 +:1018F00004023E40000010494D4B493000002818BA +:101900007E0844380024147F0442423C00304925BC +:101910001F245438004028255735284000100A2E2F +:101920005B724A480040300C3340402000000444C1 +:101930003C140C00000001413D090503000020207B +:101940001078040000001010087C02010000184804 +:101950004C281800000006424322120E00004048A6 +:1019600078484000002022223E2222200000282821 +:10197000587C0800002222124A7F02020000422204 +:101980001F02427E000042221F02427F000012120C +:101990001F721210000012121F7213100000084470 +:1019A0004322120E000008444322120F000807428F +:1019B000221E020200080742221F020300004242C8 +:1019C0004242427E000042424243427F0002024FB6 +:1019D00042221F020002024F42231E030000454A1A +:1019E0004020100C0000454A4021100D00404222CA +:1019F000221A264000404222221B26410004043FB6 +:101A00004444544C0004043F4445544D00000146F6 +:101A10004020100F000001464020110F0000084434 +:101A20004B2A120E000008444B2A120F00080A4AE3 +:101A30003E09090800080A4A3E0908090000184042 +:101A40005820180000020C424C20100E00020C42DC +:101A50004C21100D000405453D0505040004054515 +:101A60003D0504050000007F080810000000007F0D +:101A700008091001000444241F0404040020222249 +:101A80002222222000404125151927000020221281 +:101A90007B06122000404020100807000040300E56 +:101AA00000020C700040300E00020D710040300E3C +:101AB00000020D7200003F484848444400003F487F +:101AC0004849444500003F48484A45460000024214 +:101AD0004222120E000002424223120F0000024274 +:101AE0004222150E00080402040810200008040217 +:101AF0000409102100080402040A152200241444D9 +:101B00007F041424002414447F0514250024144465 +:101B10007F0615220002021222520A060000212529 +:101B2000294A42000040704C435020400040442469 +:101B300014083700000008093F4949480000101CFC +:101B4000680818000004040F74020A0600004048E8 +:101B50004878400000202222223E2020000000443D +:101B600054547C000000424A4A4A4A7E0000044520 +:101B70004525150C00000F4040201F000040201E8E +:101B8000007F20100000007F4020100800007E42EF +:101B90004242427E00000C4444241C0000000642E5 +:101BA0004222120E0010121E12127F120020222258 +:101BB0003A262220000001454525150F000041422C +:101BC0004020100C000006424322120F000048285B +:101BD0001C4878000000100C483808000008040475 +:101BE0000810100800080000080000080004080899 +:101BF00008080808000808080808080808BD01B80F +:101C000001B201AA01A3019C0194018F0189018203 +:101C1000017B0171016A0163015F015A0152014CAC +:101C200001460141013B01370131012C0125012110 +:101C3000011D011701130110010D01090106010326 +:101C4000010001F400EF00EA00060505070604099B +:101C5000030504090A080303030603050303050536 +:101C60000306040405050405040403040905033EF2 +:101C70000053656C656374205469700000000000B7 +:101C8000003E5B4F5B3E3E6B4F6B3E1C3E7C3E1C02 +:101C9000183C7E3C181C577D571C1C5E7F5E1C0048 +:101CA000183C1800FFE7C3E7FF0018241800FFE7FF +:101CB000DBE7FF30483A060E2629792926407F05C2 +:101CC0000507407F05253F5A3CE73C5A7F3E1C1CD8 +:101CD00008081C1C3E7F14227F22145F5F005F5F98 +:101CE00006097F017F006689956A60606060609484 +:101CF000A2FFA29408047E040810207E2010080889 +:101D00002A1C08081C2A08081E101010100C1E0C93 +:101D10001E0C30383E3830060E3E0E060000000025 +:101D20000000005F00000007000700147F147F140C +:101D3000242A7F2A12231308646236495620500051 +:101D400008070300001C2241000041221C002A1C3D +:101D50007F1C2A08083E0808008070300008080828 +:101D60000808000060600020100804023E51494548 +:101D70003E00427F400072494949462141494D3366 +:101D80001814127F1027454545393C4A49493141CD +:101D9000211109073649494936464949291E00009B +:101DA00014000000403400000008142241141414F0 +:101DB0001414004122140802015909063E415D59DC +:101DC0004E7C1211127C7F494949363E41414122E5 +:101DD0007F4141413E7F494949417F090909013E0F +:101DE000414151737F0808087F00417F4100204036 +:101DF000413F017F081422417F404040407F021C48 +:101E0000027F7F0408107F3E4141413E7F0909095E +:101E1000063E4151215E7F0919294626494949322A +:101E200003017F01033F4040403F1F2040201F3FF0 +:101E30004038403F63140814630304780403615975 +:101E4000494D43007F4141410204081020004141B7 +:101E5000417F040201020440404040400003070863 +:101E60000020545478407F2844443838444444285F +:101E7000384444287F385454541800087E09021806 +:101E8000A4A49C787F0804047800447D400020408E +:101E9000403D007F1028440000417F40007C0478D2 +:101EA00004787C080404783844444438FC1824241A +:101EB0001818242418FC7C0804040848545454249A +:101EC00004043F44243C4040207C1C2040201C3C17 +:101ED0004030403C44281028444C9090907C44640E +:101EE000544C4400083641000000770000004136A1 +:101EF000080002010204023C2623263C1EA1A16127 +:101F0000123A4040207A3854545559215555794158 +:101F10002154547841215554784020545579400C2F +:101F20001E52721239555555593954545459395510 +:101F30005454580000457C410002457D4200014553 +:101F40007C40F0292429F0F0282528F07C545545C0 +:101F5000002054547C547C0A097F49324949493253 +:101F60003248484832324A4848303A4141217A3A68 +:101F700042402078009DA0A07D39444444393D4032 +:101F800040403D3C24FF2424487E4943662B2FFCDF +:101F90002F2BFF0929F620C0887E0903205454798D +:101FA000410000447D413048484A32384040227A5E +:101FB000007A0A0A727D0D19317D2629292F2826DB +:101FC0002929292630484D402038080808080808E3 +:101FD0000808382F10C8ACBA2F102834FA00007B3C +:101FE000000008142A142222142A14089500220042 +:101FF00095AA005500AAAA55AA55AA000000FF00FC +:10200000101010FF00141414FF001010FF00FF1038 +:1020100010F010F0141414FC001414F700FF00006A +:10202000FF00FF1414F404FC141417101F10101FE9 +:10203000101F1414141F00101010F0000000001FD7 +:10204000101010101F10101010F010000000FF10E2 +:102050001010101010101010FF10000000FF1400DE +:1020600000FF00FF00001F10170000FC04F4141410 +:102070001710171414F404F40000FF00F7141414DC +:1020800014141414F700F7141414171410101F105C +:102090001F141414F4141010F010F000001F101F7F +:1020A0000000001F14000000FC140000F010F010ED +:1020B00010FF10FF141414FF141010101F00000064 +:1020C00000F010FFFFFFFFFFF0F0F0F0F0FFFFFF68 +:1020D0000000000000FFFF0F0F0F0F0F38444438BF +:1020E000447C2A2A3E147E02020606027E027E02FA +:1020F00063554941633844443C04407E201E200619 +:10210000027E020299A5E7A5991C2A492A1C4C7255 +:1021100001724C304A4D4D303048784830BC625ADC +:10212000463D3E494949007E0101017E2A2A2A2A6C +:102130002A44445F444440514A444040444A514048 +:102140000000FF0103E080FF000008086B6B083609 +:1021500012362436060F090F06000018180000007A +:102160001010003040FF0101001F01011E00191D69 +:102170001712003C3C3C3C00000000000000000046 +:10218000240027002A0000000000250028002B0062 +:1021900000000000230026002900040404040404B5 +:1021A0000404020202020202030303030303010206 +:1021B00004081020408001020408102001020408D5 +:1021C0001020AED5F0A83FD300408D14A1C8DA127C +:1021D00081CFD9F1DB40A4A6AF200021007F2200EF +:1021E00007506C65617365207761697400414443F1 +:1021F0003A200074656D703A2000536574206D6557 +:1022000061737572656400537465703A2000FFFF56 +:10221000FFFFFFFF800386708003800386708003CA +:102220009FF3E1309FF39FF3E1309FF3983301CCAC +:102230009833983301CC9833983387C098339833C8 +:10224000E1C098339833E1C098339FF398C09FF36F +:102250009FF398C09FF3800366CC8003800366CC15 +:102260008003FFFF010CFFFFFFFF01001FFF810044 +:1022700061301F3F873CE6FC8733873CE6FC87F3F1 +:10228000F8039E0F1F03F8039E0F1F03E13CFE0C93 +:1022900007CFE13CFE0C07CF99033E3086C3E6CF63 +:1022A000380F9EF3E6CF380F9EF39E0327CC8103B1 +:1022B0009E0327CC8103E0FFE10CE6CFE0FFE10CB9 +:1022C000E6CF9803060000FF9803060000FFFFFF1B +:1022D0001EF0F8038003663099C38003663099C30B +:1022E0009FF3010CF8FF9FF3010CF8FF9833393C82 +:1022F00001CF9833393C01CF9833FF0C793F9833A5 +:102300003ECCE0F398333ECCE0F39FF33E0098CF11 +:102310009FF33E0098CF80033E30E7C380033E30FA +:10232000E7C3FFFFFFFFFFFFFFFFFFFFFFFF3030AF +:10233000300076312E377434005600560043000FBB +:10234000E01FC01FC03F803FF87FF07FE007C0075D +:10235000800F000E001C001800100014A03FF07F3A +:10236000F8E01C6E18EC1C68186018E01C6058E05F +:102370001C7FF83FF014A04552524F5200484F4C7A +:1023800044004845415400574F524B5900424F4F6B +:10239000535400534C454550004F46460000003B07 +:1023A000EC7BEE63E663E663E663E663E663E663BF +:1023B000666226600660067FFE3FFC0000010204A4 +:1023C0000810204080000000080002010000030403 +:1023D000070000000000000000001F2811241FBE9D +:1023E000CFEFD8E0DEBFCDBF12E0A0E0B1E0EAEE73 +:1023F000FDE602C005900D92A83BB107D9F728E091 +:10240000A8EBB2E001C01D92A130B207E1F711E1E3 +:10241000CEEED1E104C02197FE010E94D436CD3E1C +:10242000D107C9F70E94D4280C94F3360C9400000D +:102430004F925F926F927F928F929F92AF92BF92D4 +:10244000CF92DF92EF92FF920F931F93CF93DF9380 +:1024500000D000D0CDB7DEB74B015C0129013A01B5 +:102460006701780120E030E0A9010E94773287FD02 +:10247000A6C020E030E0A901C301B2010E9477327A +:1024800087FD9DC020E030E0A901C801B6010E948F +:10249000773287FD94C081E02091CB073091CC0743 +:1024A0002130310509F080E08093EC078092B1077C +:1024B0009092B207A092B307B092B4074092B507CA +:1024C0005092B6076092B7077092B807C092B907EA +:1024D000D092BA07E092BB07F092BC076091DF0789 +:1024E0007091E0078091E1079091E2070E947C32B1 +:1024F00020E030E04AE754E40E94793469837A832B +:102500008B839C838092BD079092BE07A092BF07E9 +:10251000B092C0079B01AC01C301B2010E94DD3241 +:102520002B013C014092C1075092C2076092C30741 +:102530007092C40729813A814B815C81C701B60141 +:102540000E9479346B017C01C092C507D092C60706 +:10255000E092C707F092C8078091C9079091CA0717 +:10256000019769F5A501940160E070E0CB010E943C +:102570000C346093BD077093BE078093BF079093A0 +:10258000C007A301920160E070E0CB010E940C340F +:102590006093C1077093C2078093C3079093C407E9 +:1025A000A701960160E070E0CB010E940C346093BB +:1025B000C5077093C6078093C7079093C8070F900D +:1025C0000F900F900F90DF91CF911F910F91FF907F +:1025D000EF90DF90CF90BF90AF909F908F907F90C3 +:1025E0006F905F904F90089580389105B0F46034FB +:1025F000710598F4EDEBF3E290E1969FD001A0789D +:102600001124A80F6770E60FF11D9491A85FBC4FCD +:10261000442321F08C91982B9C93089590958C9154 +:102620009823FACFDF92EF92FF920F931F93CF93ED +:10263000DF937C01D22E8B01040F111DEB0177FF7C +:1026400002C0D0E0C0E0C8010134110514F080E4FC +:1026500090E0C817D9073CF44D2DBE01C7010E9478 +:10266000F4122196F0CFDF91CF911F910F91FF903F +:10267000EF90DF900895CF92DF92EF92FF920F9349 +:102680001F93CF93DF936B01122FEC017C01E40EBB +:10269000F11CCE15DF0544F4202F412FB601CE01E9 +:1026A0000E9412132196F5CFDF91CF911F910F91C8 +:1026B000FF90EF90DF90CF9008952F923F924F922E +:1026C0005F926F927F928F929F92AF92BF92CF92C2 +:1026D000DF92EF92FF920F931F93CF93DF9300D07F +:1026E0001F92CDB7DEB7C22ED12C9601280F391F0D +:1026F00037FD4FC0803891050CF04BC0E9824A018C +:102700007B013C01402E512C160127E0220E311C8A +:1027100093E0359427949A95E1F78B01B12CA12C85 +:102720001B821A82EA81FB8183E0F595E7958A9501 +:10273000E1F7EA0DFB1DE80DF91DE4918A819B810B +:102740008770992720E830E002C0359527958A9553 +:10275000E2F7C901F0E0E223F923EF2B41F04981D0 +:10276000B8018A819B81860D971D0E94F4128A818F +:102770009B8101969B838A838C159D059CF2A20CFC +:10278000B31C0F5F1F4FC8018E199F098415950553 +:102790003CF20F900F900F90DF91CF911F910F910E +:1027A000FF90EF90DF90CF90BF90AF909F908F9071 +:1027B0007F906F905F904F903F902F9008950F9370 +:1027C0001F93CF93DF93EC018B0140E001960E94B1 +:1027D000F41240E0B801CE0101970E94F412B80152 +:1027E0006F5F7F4F40E0CE010E94F412B80161504C +:1027F000710940E0CE010E94F41240E0B801CE0120 +:10280000DF91CF911F910F910C94F41280E0E8E0DA +:10281000F3E081118FEF0024819381938193819361 +:102820000394D1F7EDEEF7E0178616861586148629 +:1028300008956F927F928F929F92AF92BF92CF92A4 +:10284000DF92EF92FF920F931F93CF93DF93803825 +:1028500091050CF057C0603471050CF053C07B013A +:1028600037E0E322FF2433E0759567953A95E1F769 +:10287000DB01B695BA2FAA27B795A7955D01C0E8E9 +:10288000AC0EB11CA80EB91EA80FB91FA85FBC4F93 +:1028900000E810E0081B190B90E080E0E8E0F0E0B1 +:1028A0004F018E189F0830E0FA01E80FF91FC4911C +:1028B0007D906D01D1E0CD1AD1080E2C01C0CC0F56 +:1028C0000A94EAF77C2AE6017882E114F10499F08F +:1028D0006730710581F0E491EC01CA0DDB1DC85F22 +:1028E000DC4FF0E0082C02C0F595E7950A94E2F77A +:1028F000F881EF2BE8830196821793071CF40817E1 +:10290000190791F6DF91CF911F910F91FF90EF90F2 +:10291000DF90CF90BF90AF909F908F907F906F90FF +:102920000895AF92BF92CF92DF92EF92FF920F93F2 +:102930001F93CF93DF936C017B018B01040F151F55 +:10294000EB015E01AE18BF08C017D10759F06991BD +:10295000D601ED91FC910190F081E02DC601099521 +:10296000892B79F7C501DF91CF911F910F91FF90CE +:10297000EF90DF90CF90BF90AF900895FC01538D02 +:10298000448D252F30E0842F90E0821B930B541749 +:1029900010F0CF96089501970895FC01918D828DD6 +:1029A000981761F0A28DAE0FBF2FB11D5D968C916F +:1029B000928D9F5F9F73928F90E008958FEF9FEFAE +:1029C0000895FC01918D828D981731F0828DE80F6A +:1029D000F11D858D90E008958FEF9FEF0895FC0124 +:1029E000918D228D892F90E0805C9F4F821B9109F1 +:1029F0008F739927089588E097E00E94EF1421E0F3 +:102A0000892B09F420E0822F089580E090E0892B43 +:102A100029F00E94FB1481110C9400000895FC0120 +:102A2000A48DA80FB92FB11DA35ABF4F2C91848D2F +:102A300090E001968F739927848FA689B7892C938C +:102A4000A089B1898C91837080648C93938D848DDF +:102A5000981306C00288F389E02D80818F7D8083E2 +:102A60000895EF92FF920F931F93CF93DF93EC01A2 +:102A700081E0888F9B8D8C8D98131AC0E889F98925 +:102A8000808185FF15C09FB7F894EE89FF89608328 +:102A9000E889F98980818370806480839FBF81E0A9 +:102AA00090E0DF91CF911F910F91FF90EF900895EB +:102AB000F62E0B8D10E00F5F1F4F0F731127E02EC6 +:102AC0008C8D8E110CC00FB607FCFACFE889F989FE +:102AD000808185FFF5CFCE010E940F15F1CFEB8DE0 +:102AE000EC0FFD2FF11DE35AFF4FF0829FB7F894D2 +:102AF0000B8FEA89FB8980818062CFCFCF93DF93F0 +:102B0000EC01888D8823B9F0AA89BB89E889F98905 +:102B10008C9185FD03C0808186FD0DC00FB607FC3A +:102B2000F7CF8C9185FFF2CF808185FFEDCFCE016D +:102B30000E940F15E9CFDF91CF910895833081F086 +:102B400028F4813099F08230A9F008958730A9F0F7 +:102B50008830C9F08430B1F4809180008F7D03C04B +:102B6000809180008F7780938000089584B58F775F +:102B700084BD089584B58F7DFBCF8091B0008F77A1 +:102B80008093B00008958091B0008F7DF9CFCF93EE +:102B9000DF93282F30E0F901EB53FC4D8491F901CC +:102BA000E255FE4DD491F901E656FE4DC491CC2379 +:102BB000A1F081110E949E15EC2FF0E0EE0FFF1F97 +:102BC000E057FE4DA591B491EC91ED2381E090E0AA +:102BD00009F480E0DF91CF91089580E090E0FACF92 +:102BE0001F93CF93DF93282F30E0F901EB53FC4D77 +:102BF0008491F901E255FE4DD491F901E656FE4D5E +:102C0000C491CC23A9F0162F81110E949E15EC2FA0 +:102C1000F0E0EE0FFF1FEA57FE4DA591B4918FB77C +:102C2000F894EC91111108C0D095DE23DC938FBF8E +:102C3000DF91CF911F910895DE2BF8CFCF93DF93D3 +:102C400090E0FC01E255FE4D249186569E4DFC011C +:102C500084918823C9F090E0880F991FFC01E45803 +:102C6000FE4DA591B491FC01EA57FE4DC591D4915A +:102C700061110DC09FB7F8948C91209582238C939D +:102C80008881282328839FBFDF91CF9108956230E8 +:102C900051F49FB7F8943C91822F809583238C93B5 +:102CA000E8812E2BEFCF8FB7F894EC912E2B2C933D +:102CB0008FBFEACFCF93DF93EC0161E089E00E9400 +:102CC0001E16209731F460E089E0DF91CF910C94DB +:102CD000F015CF3FD10511F461E0F6CFEEECF3E251 +:102CE000E491E33029F140F4E130B1F0E230D9F081 +:102CF000C038D1058CF7E7CFE73021F1E83051F14A +:102D0000E430B1F780918000806280938000D0939E +:102D10008B00C0938A0004C084B5806884BDC7BDA1 +:102D2000DF91CF91089584B5806284BDC8BDF8CF8E +:102D300080918000806880938000D0938900C09348 +:102D40008800EECF8091B00080688093B000C0937F +:102D5000B300E6CF8091B00080628093B000C09352 +:102D6000B400DECF3FB7F8948091D2029091D302A5 +:102D7000A091D402B091D50226B5A89B05C02F3FE3 +:102D800019F00196A11DB11D3FBFBA2FA92F982F91 +:102D90008827BC01CD01620F711D811D911D42E08C +:102DA000660F771F881F991F4A95D1F708958F9254 +:102DB0009F92AF92BF92CF92DF92EF92FF924B0120 +:102DC0005C010E94B2166B017C010E94B2166C1964 +:102DD0007D098E099F09683E734081059105A8F31E +:102DE00021E0821A9108A108B10888EEC80E83E09C +:102DF000D81EE11CF11C81149104A104B10429F72F +:102E0000FF90EF90DF90CF90BF90AF909F908F900A +:102E100008952FB7F8946091CE027091CF028091FF +:102E2000D0029091D1022FBF089584E98093BC0015 +:102E30008091BC0084FDFCCF08958093BB0084E8A2 +:102E40008093BC008091BC0087FFFCCF089584EA8A +:102E50008093BC008091BC0087FFFCCF88E70C9476 +:102E60001D170E94271780E48093BB0084E880939D +:102E7000BC00E8E0F3E09091BC0097FFFCCF91919B +:102E80009093BB008093BC0097E0E830F90799F776 +:102E90008091BC0087FFFCCF0C941517CF93C82FEF +:102EA0000E94271780E00E941D178C2F0E941D177B +:102EB000CF910C941517480F592F511D41385105CA +:102EC00014F040E850E0481BFB0177FD379633E0F3 +:102ED000F595E7953A95E1F7F695FE2FEE27F795EC +:102EE000E795E80FF91FE85FFC4F6770772781E0EF +:102EF00090E001C0880F6A95EAF7382F213041F43D +:102F0000415078F08191DF011197832B8C93F8CF9A +:102F10008095415030F09191DF01119798239C9357 +:102F2000F8CF0895CF92DF92EF92FF920F93CF9355 +:102F3000DF936C017B01C42FD22F202F0E945B17DF +:102F4000B7016D0F711D61507109603471052CF46A +:102F5000202F4C2FC6010E945B17202F4D2FB70149 +:102F6000C6010E941213C6018C0F911D202F4D2FF8 +:102F7000B7010197DF91CF910F91FF90EF90DF9014 +:102F8000CF900C9412132F923F924F925F926F92B8 +:102F90007F928F929F92AF92BF92CF92DF92EF92E9 +:102FA000FF920F931F93CF93DF93CDB7DEB72A978E +:102FB0000FB6F894DEBF0FBECDBF9A8389836A3007 +:102FC00061F5DC0152968C91B8E08B9F9001112441 +:102FD000E981FA8186859785820F931F9787868777 +:102FE0001586148681E090E02A960FB6F894DEBF2D +:102FF0000FBECDBFDF91CF911F910F91FF90EF904A +:10300000DF90CF90BF90AF909F908F907F906F9008 +:103010005F904F903F902F9008956D3019F3298164 +:103020003A813A872987D9011C96AD90BC90B0E8C7 +:10303000AB16B1040CF07BC0F901C684D784F0E470 +:10304000CF16D1040CF073C0D90152966C905297F0 +:1030500045E09501649E200D311D112412161306C2 +:103060000CF065C0262C312C910153E0220F331F48 +:103070005A95E1F72C0D3D1D121613060CF057C0A2 +:103080005196BC91BB83E985FA85F089FC83649FE6 +:10309000B00111249B012458334E3A832983712CAB +:1030A000E981FA818491F5E07F1201C080E0460158 +:1030B00038E0532E282F30E03E832D834C8080FF54 +:1030C0004B80411004C03B818C813817E1F010E047 +:1030D00000E00615C0F4D501A00FB11FB887AF837B +:1030E000F12CE12CE61460F4B701680D791D442D34 +:1030F0008F8198850E94F412BFEFEB1AFB0AF2CF82 +:103100000F5F1F4FE6CF8D819E81959587955A94CD +:10311000820C931C5110CECF7394E981FA813196C1 +:10312000FA83E983A20CB31CF6E07F12B9CFA9851C +:10313000BA8552962C915297422F50E01C968D9151 +:103140009C91B6E02B9F800D911D1124E985FA8595 +:10315000958784872389222309F444CF6AEF640387 +:103160009001659F300D112420583F4F28173907D3 +:103170000CF038CFDF010190F081E02D0190F0815B +:10318000E02D6AE0CD0109952DCF0F931F93CF93CA +:10319000DF938C01D0E0C0E0F801EC0FFD1F6491DB +:1031A000662341F08DEE97E00E94C317892B11F042 +:1031B0002196F2CFCE01DF91CF911F910F9108950B +:1031C000682F8DEE97E00C94C317089590E080E08F +:1031D000089580917A00806980937A008EE48093CC +:1031E0007C0061E070E080E090E00E94D71683B739 +:1031F000817F826083BF80E130E020E093B79160FF +:1032000093BF889593B79E7F93BF90917A0096FD68 +:10321000FCCF4091780050917900240F351F8150E8 +:1032200069F780917A008F7780937A0084E03695F1 +:1032300027958A95E1F750E040E064EB7BE281E17D +:1032400090E00E94B133C901089588EC80937C001E +:1032500080917A00806880937A0065E070E080E079 +:1032600090E00E94D71680917A00806480937A0063 +:1032700080917A0086FDFCCF609178007091790092 +:103280006A54714090E080E00E947C3226EF38E280 +:103290004CE95FE30E947934089590917A00906937 +:1032A00090937A008E50806480937C0083B7817FF6 +:1032B000826083BF20E290E080E033B7316033BFAB +:1032C000889533B73E7F33BF30917A0036FDFCCF0F +:1032D0004091780050917900840F951F215069F733 +:1032E00020917A002F7720937A0025E09695879594 +:1032F0002A95E1F708958FE00E944D19A091D90217 +:10330000B091DA029C010E94FD330E947E3228E5D2 +:1033100039E743E353E40E9479340E94F234CB014D +:1033200008952091E70230E0E5E6F2E090E080E0E9 +:10333000AF01455652404217530724F44191840F80 +:10334000911DF6CF08958091E002882369F086E010 +:103350000E94C715892B41F06AE070E080E090E0A0 +:103360000E94D7161092E00208950F931F93CF93F7 +:1033700080914801882399F0CFEF0FEE11E061E0D2 +:1033800085E00E94F015C8010197F1F760E085E043 +:103390000E94F015C8010197F1F7C15081F7CF9154 +:1033A0001F910F9108952F923F924F925F926F92CB +:1033B0007F928F929F92AF92BF92CF92DF92EF92C5 +:1033C000FF920F931F93CF93DF9310E000E0D0E0C4 +:1033D000C0E03EE3E32EF12C40ECC42ED12CAA2415 +:1033E000A394B12C60E2662E712C70E4272E312C50 +:1033F0004C2E86E00E94C71521E0892B09F020E0C1 +:103400002093E002F092E602E092E502D092E4021C +:10341000C092E302B092E202A092E10282E890E060 +:103420009093F2028093F1028091F1029091F20266 +:1034300095958795582E9FE1591243C0F092E60268 +:10344000E092E502D092E402C092E302B092E2027E +:10345000A092E102EEEBF0E0F093F202E093F102D1 +:103460009FE5592E0E94061482E08093FF07109377 +:10347000FA070093F907E0E3F0E0F093FC07E0932C +:10348000FB078EE50E94E0181092FA071092F907E8 +:103490007092FC076092FB07912C812C841438F504 +:1034A00080910703F40196E0989FE00DF11D11242F +:1034B000E05BFE4F80810E94E018EFEF8E1A9E0ABB +:1034C000EDCFF0E65F12CECFF092E602E092E50299 +:1034D000D092E402C092E302B092E202A092E10232 +:1034E0003092F2022092F10280E2582EBBCF10936C +:1034F000FA070093F9077092FC076092FB07852D8D +:103500000E94E0180E94A3190E94311786E00E94D1 +:10351000C715892B09F088CF8091E002811184CFF3 +:1035200080900703F6E08F9E40011124C401805B68 +:103530009E4F4C01FC01EC0FFD1F50820E94B519FB +:103540006AE070E080E090E00E94D7162196005F6C +:103550001F4FC530D10509F04BCFF4011582DF9123 +:10356000CF911F910F91FF90EF90DF90CF90BF9080 +:10357000AF909F908F907F906F905F904F903F9013 +:103580002F9008953F924F925F926F927F928F9209 +:103590009F92AF92BF92CF92DF92EF92FF920F93E2 +:1035A0001F93CF93DF93CDB7DEB72E970FB6F89466 +:1035B000DEBF0FBECDBF80910403882309F4A5C1EF +:1035C0001092A5071092A6071092A7071092A807BD +:1035D0008090A5079090A607A090A707B090A80795 +:1035E000C090FA02D090FB02E090FC02F090FD0245 +:1035F000A7019601C501B4010E940C342B013C01C6 +:1036000020E030E0A9010E94213518160CF0A0C17D +:10361000C301B2010E94F23480914901882309F468 +:10362000B8C1C092AD07D092AE07E092AF07F0925A +:10363000B007E12CF12C00EA10E420E030E040E497 +:1036400050E46E31710540F0E12CF12C00E81FE3ED +:1036500020E030E040E05FE360E070E080E391E490 +:103660000E9418128091EB07882309F42AC10E9456 +:1036700009176D837E838F8398878091D3079091FC +:10368000D407A091D507B091D6074D815E816F8197 +:103690007885481B590B6A0B7B0B8091DF07909153 +:1036A000E007A091E107B091E207481759076A07C0 +:1036B0007B0708F406C1E091CD07F091CE07808129 +:1036C0009181A281B38189839A83AB83BC83E0918A +:1036D000D107F091D2079C01AD0160817181828197 +:1036E00093810E940C344B015C012091DB073091E7 +:1036F000DC074091DD075091DE0769817A818B817B +:103700009C810E940C346B017C012091C107309197 +:10371000C2074091C3075091C407C501B4010E947C +:10372000DD322091D7073091D8074091D9075091C9 +:10373000DA070E940D342B013C014092D7075092CA +:10374000D8076092D9077092DA073090EC073110F1 +:103750001AC02091BD073091BE074091BF0750911C +:10376000C007C701B6010E94DD329B01AC01C30155 +:10377000B2010E940C346093D7077093D8078093EE +:10378000D9079093DA074090D7075090D8076090F8 +:10379000D9077090DA071091E7079091E8079E87A4 +:1037A000A091E907AD870091EA07212F392F4A2F11 +:1037B000502FC301B2010E94213518160CF0CCC065 +:1037C000812F9E85AD85B02F8093D7079093D80722 +:1037D000A093D907B093DA07332009F4D6C020911B +:1037E000BD073091BE074091BF075091C007C5018A +:1037F000B4010E94DD324B015C012091C50730917C +:10380000C6074091C7075091C807C701B6010E947B +:10381000DD329B01AC016091D7077091D807809190 +:10382000D9079091DA070E940C34A50194010E94F7 +:103830000D346B017C019B01AC01612F7E858D8570 +:10384000902F0E94773287FD18C01091E307909166 +:10385000E4079E87A091E507AD870091E607212F39 +:10386000392F4A2F502FB601C7010E94773287FDAA +:1038700004C01C2DDE86ED860F2DE091CF07F09160 +:10388000D007812F9E85AD85B02F80839183A28341 +:10389000B38389819A81AB81BC818093DB0790934C +:1038A000DC07A093DD07B093DE078D819E81AF8199 +:1038B000B8858093D3079093D407A093D507B0938E +:1038C000D6076091A9077091AA078091AB079091E4 +:1038D000AC070E94EB34CB012E960FB6F894DEBFF6 +:1038E0000FBECDBFDF91CF911F910F91FF90EF9051 +:1038F000DF90CF90BF90AF909F908F907F906F9010 +:103900005F904F903F900C945A1680910303609102 +:1039100044017091450181110EC08091F80290918F +:10392000F90220910203BC01222329F06091430196 +:10393000680F792F711D90E080E00E947C326093C7 +:10394000A5077093A6078093A7079093A80740CE7A +:10395000C301B20190585ECE8091E3079091E407D5 +:10396000A091E507B091E60789879A87AB87BC8766 +:103970009C01AD01C301B2010E94773287FF2CCFB9 +:1039800089859A85AB85BC851FCF812C912C5401EC +:1039900034CF20E030E040E05FE3C701B6010E9491 +:1039A0000D349B01AC01C501B4010E9421351816EC +:1039B0004CF41092A9071092AA071092AB0710922C +:1039C000AC077FCF80E090E0AFE7B3E48093A90736 +:1039D0009093AA07A093AB07B093AC0772CF4F9216 +:1039E0005F926F927F928F929F92AF92BF92CF928F +:1039F000DF92EF92FF92CF93DF938090DB02909063 +:103A0000DC02A090DD02B090DE02C0910703D0E09E +:103A1000C501B4010E94EB346B017C0120E030E071 +:103A200048E453E4C501B4010E94773293E0CC0F1F +:103A3000DD1F9A95E1F7CE5FDE4F87FF31C0288109 +:103A4000398150E040E02551310941095109C70150 +:103A5000B6010E94B03628EC30E040E050E00E9411 +:103A6000B133CA01B9016B5E7F4F8F4F9F4F0E94E8 +:103A70007E326093FA027093FB028093FC02909373 +:103A8000FD02DF91CF91FF90EF90DF90CF90BF903C +:103A9000AF909F908F907F906F905F904F90089520 +:103AA0004A805B80712C612C20E030E04CE853E4CC +:103AB000C501B4010E94773287FF1FC088809980BA +:103AC000B12CA12CA7019601285C310941095109AB +:103AD000C301B201681979098A099B090E94B036AD +:103AE00020E530E040E050E00E94B133CA01B90166 +:103AF000680D791D8A1D9B1DBACF2C813D8150E038 +:103B000040E02419350946095709C701B601685133 +:103B10007140810991090E94B03620E530E040E013 +:103B200050E00E94B133CA01B901640D751D861DB4 +:103B3000971D9DCFFC0101900020E9F73197AF015F +:103B4000481B590BBC018DEE97E00C9491148F9299 +:103B50009F92AF92BF920F931F93CF93DF93CDB7F6 +:103B6000DEB7A1970FB6F894DEBF0FBECDBF19A286 +:103B7000423008F44AE08E010F5D1F4F842E912CD5 +:103B8000B12CA12CA50194010E94DB33E62FB901D1 +:103B9000CA01EA30F4F4E05DD801EE938D01232BE5 +:103BA000242B252B79F790E080E0109719F0CD01B8 +:103BB0000E949A1DA1960FB6F894DEBF0FBECDBF2E +:103BC000DF91CF911F910F91BF90AF909F908F90F9 +:103BD0000895E95CE1CFCF92DF92EF92FF92CF930D +:103BE000DF9397FF19C06B017C018DE20E94E01802 +:103BF000EC0166277727CB016C197D098E099F0997 +:103C00004AE00E94A71D8C0F9D1FDF91CF91FF906E +:103C1000EF90DF90CF9008954AE0DF91CF91FF9031 +:103C2000EF90DF90CF900C94A71D4F925F926F9210 +:103C30007F928F929F92AF92BF92CF92DF92EF923C +:103C4000FF920F931F93CF936B017C01742EAC01F5 +:103C50009B010E947635882399F089EA92E0CF9102 +:103C60001F910F91FF90EF90DF90CF90BF90AF909A +:103C70009F908F907F906F905F904F900C949A1DC3 +:103C800046015701E894B7F82FEF3FEF4FE75FE7A2 +:103C9000C501B4010E94763581110DC02FEF3FEFB1 +:103CA0004FE75FE7C501B4010E94773218161CF494 +:103CB0008DEA92E0D4CF2FEF3FEF4FE75FE4C701EB +:103CC000B6010E94213518161CF481EB92E0C7CF93 +:103CD0002FEF3FEF4FE75FECC701B6010E9477324D +:103CE00087FDF3CF20E030E0A901C701B6010E94B3 +:103CF000773210E000E087FF08C08DE20E94E018F4 +:103D00008C01F7FAF094F7F8F094C0E060E070E00E +:103D100080E09FE37C1641F020E030E040E251E497 +:103D20000E947934CF5FF6CFA70196010E940D342F +:103D30002B013C010E94F2344B015C014AE00E94DD +:103D4000A71D7C01E00EF11ECC23B1F1C501B40129 +:103D50000E947C329B01AC01C301B2010E940C3471 +:103D60004B015C018EE20E94E018E80EF91EC15082 +:103D700018F120E030E040E251E4C501B4010E94B6 +:103D8000DD322B013C010E94F2344B01B12CA12CFD +:103D90004AE0C501B4010E94A71DE80EF91EC50145 +:103DA000B4010E947C329B01AC01C301B2010E94AC +:103DB0000C344B015C01DBCFC701CF911F910F91F8 +:103DC000FF90EF90DF90CF90BF90AF909F908F903B +:103DD0007F906F905F904F900895CF92DF92EF9217 +:103DE000FF920F931F93CF93DF93C82F81E0DC2FB7 +:103DF000D827D093FE07C093FD078093FF070C2FB1 +:103E00002EE046E661E370E081E090E00E949217C8 +:103E10002091050330910603253F81E03807B8F46F +:103E2000A4E6B0E00E94FD3324EF31E040E050E032 +:103E30000E94B133BA01A9014E5F5F4F6F4F7F4FB0 +:103E40002EE061E370E081E090E00E943B1360911E +:103E5000A5077091A6078091A7079091A8070E94D7 +:103E6000EB349B01AC01A4E6B0E00E94D03334EF08 +:103E7000C32EDD24D394E12CF12CA70196010E94DE +:103E8000B133DA01C9010296A11DB11D02970C2FB1 +:103E90002DE043E062E370E00E943B136091A507D0 +:103EA0007091A6078091A7079091A8070E94EB3414 +:103EB0009B01AC01A4E6B0E00E94D033A7019601BB +:103EC0000E94B133DA01C9010296A11DB11D039709 +:103ED00024E045E06CE370E00E943B136091A5078D +:103EE0007091A6078091A7079091A8070E94EB34D4 +:103EF0009B01AC01A4E6B0E00E94D033A70196017B +:103F00000E94B13389019A010E5F1F4F2F4F3F4F1F +:103F10000150110941E3E42EF12C4D2FB701C801E6 +:103F20000E94F4128FEFE81AF80A8DE3E816F10404 +:103F3000A1F76091A5077091A6078091A7079091BE +:103F4000A8070E94EB349B01AC01A4E6B0E00E94FC +:103F5000D03324EF31E040E050E00E94B133DA0189 +:103F6000C9010296A11DB11D0397ED2E04E025E0C5 +:103F700045EC51E16BE370E00E945D130C2F2EE0E5 +:103F800047E161E370E088E690E00E94921760915B +:103F9000A9077091AA078091AB079091AC070E9486 +:103FA000EB349B01AC012F5F310941095109A7E1B5 +:103FB000B0E00E94D033CC24C394DD24DA94ED2CFD +:103FC000FD2CA70196010E94B133422F2EE061E340 +:103FD00070E088E690E00E943B13C093FE07D09308 +:103FE000FD0782E090E09093FA078093F90707E3DA +:103FF00010E01093FC070093FB076091A5077091F8 +:10400000A6078091A7079091A80740E00E94151E7F +:1040100088EF0E94E01883EC91E10E94C51889E6C0 +:1040200090E09093FA078093F9071093FC070093B0 +:10403000FB076091A9077091AA078091AB07909147 +:10404000AC070E94EB349B01AC012F5F31094109A1 +:104050005109A4E6B0E00E94D033A70196010E9466 +:10406000B133CA01B9010E94EB1D81EC91E10E94BC +:10407000C518D093FE07C093FD07DF91CF911F9124 +:104080000F91FF90EF90DF90CF9008956F927F9205 +:104090008F929F92AF92BF92CF92DF92EF92FF9258 +:1040A0000F931F93CF93DF93B090070377247394FC +:1040B000B11001C0712C809142018150990B109276 +:1040C000E6021092E502880F991F9093E402809314 +:1040D000E30281E090E09093E2028093E1028B2D75 +:1040E00090E0880F991F9093F2028093F10286E08E +:1040F0000E94C71521E0892B09F020E02093E002FF +:10410000FF24F39472E0972EE6E08E2EFCE0CF2E93 +:10411000D12C0E940614C091F102D091F202D595E3 +:10412000C795EC2E8E011127C801870D911D77FCD4 +:104130009A958B199109712C97FD06C083309105D2 +:1041400014F082E090E0782EF092FE071092FD07C6 +:104150009092FF071092FA071092F9071092FC074D +:104160001092FB0781E79CE10E94C5181092FE07A0 +:10417000F092FD071092FA071092F907A72C072C6E +:10418000000CBB08C501019654E0880F991F5A9591 +:10419000E1F79093FC078093FB078FE69CE10E9478 +:1041A000C5186C2E671890E080E098012A193B0929 +:1041B0005901209142018C010F5F1F4F6216D0F40C +:1041C000D092FA07C092F907980144E0220F331FFA +:1041D0004A95E1F73093FC072093FB078A0D9B1D5E +:1041E000889E9001899E300D1124C901805B9E4FED +:1041F0000E949A1DC801639403301105D1F60E94F4 +:10420000A3190E94311786E00E94C715892BB9F4C3 +:104210008091E002811113C00E94B519E09207035A +:10422000DF91CF911F910F91FF90EF90DF90CF9092 +:10423000BF90AF909F908F907F906F900895BC2E0D +:1042400068CF0E94EE361F93CF93DF93EC01162FB9 +:104250000E949B33181739F0612FCE01DF91CF9167 +:104260001F910C94A333DF91CF911F910895AF92CA +:10427000BF92CF92DF92EF92FF920F931F93CF9353 +:10428000DF936091470182E090E00E9423216091DA +:10429000460183E090E00E9423216091450184E083 +:1042A00090E00E9423216091440185E090E00E940B +:1042B00023216091430186E090E00E9423216091D8 +:1042C0004C0187E090E00E94232160914B0188E03F +:1042D00090E00E94232160914A0189E090E00E94D1 +:1042E0002321609180018AE090E00E942321609167 +:1042F00049018BE090E00E942321609148018CE00D +:1043000090E00E942321609107038DE090E00E94DD +:104310002321609142018EE090E00E942321609170 +:104320004E018FE090E00E9423216091DF0280E146 +:1043300090E00E9423216091FF0281E190E00E94C1 +:10434000232182E1E82EF12C10E006E08091420169 +:104350001817B8F5109F60011124D0E0C0E0FE01ED +:10436000EC0DFD1DE05BFE4F6081C7018C0F9D1FB2 +:104370000E9423212196C630D10589F7670186E086 +:10438000C80ED11C88E0189FE0011124CE5FDE4FDB +:104390008EE0E80EF11C69812296C6010E9423215D +:1043A000560182E0A80EB11CFE0132976081C60161 +:1043B00001960E9423216501AE14BF0461F71F5FBF +:1043C000C5CFDF91CF911F910F91FF90EF90DF90BC +:1043D000CF90BF90AF9008958F929F92AF92BF926F +:1043E000CF92DF92EF92FF92CF938FEF90E00E94F7 +:1043F0005A168BEA94E00197F1F78EE00E944D196E +:104400007C018AE00E94C7159091B802981729F0A4 +:1044100091E09093FE028093B802809101019FEF9A +:10442000980F90930101811106C00E947B1990930F +:104430000103809300036091A9077091AA078091FE +:10444000AB079091AC070E94EB34CB010E945A1647 +:104450008090DB029090DC02A090DD02B090DE0242 +:10446000B70190E080E00E947C32A50194010E9497 +:104470000C342DEC3CEC4CE45DE30E94DD32A501F4 +:1044800094010E940D346093DB027093DC028093F0 +:10449000DD029093DE020E94EF1C60910503709193 +:1044A000060390E080E00E947C326B017C01209149 +:1044B000A5073091A6074091A7075091A8070E9431 +:1044C00077328111B5C02091FA023091FB02409100 +:1044D000FC025091FD02C701B6010E940C346B0131 +:1044E0007C0120E030E0A9010E94213518160CF073 +:1044F00095C020E030E040EA50E4C701B6010E94D8 +:10450000213518160CF494C06091F8027091F902EC +:1045100090E080E00E947C322091FA023091FB0210 +:104520004091FC025091FD020E940C346B017C0111 +:1045300020E030E0A9010E94213518160CF087C058 +:10454000C701B6010E94F2346530710508F083C0DE +:1045500080914F01811105C080914D0181110E9410 +:10456000B51981E080934F0110924D0180910503B0 +:1045700090910603853F21E0920710F01092000110 +:1045800020910001211140C0843F9140E8F58FEF58 +:1045900090E00E945A160E94B519C1E0C093000134 +:1045A0000E9446200E943721C093FE028EE00E94A6 +:1045B0004D19BC0190E080E00E947C326093DB02E8 +:1045C0007093DC028093DD029093DE021092F00281 +:1045D0008091F8029091F9022CE231E03093E602EA +:1045E0002093E50220E233E03093E4022093E302DB +:1045F0002AE030E03093E2022093E102880F991F15 +:104600009093F2028093F102CF91FF90EF90DF90B0 +:10461000CF90BF90AF909F908F90089520E030E0B2 +:1046200040EA50ECC701B6010E94773287FF6CCF99 +:104630006091FA027091FB028091FC029091FD0260 +:104640000E94F23470930603609305035DCFC701A7 +:10465000B601905877CF10924F0188CF0C949B33BE +:104660002F923F924F925F926F927F928F929F9282 +:10467000AF92BF92CF92DF92EF92FF920F931F9370 +:10468000CF93DF938C0186E08093FF0781E08093D6 +:10469000FE071092FD076091CB027091CC02072EAD +:1046A000000C880B990B0E947E322B013C0145ECDB +:1046B000C42E42E0D42E7601C2E0D0E05AE0A52E0E +:1046C000B12CBE010D2E000C880B990B0E947E327E +:1046D0009B01AC0160E070E080E291E40E9426352D +:1046E0009B01AC01C301B2010E9479340E94EB34FA +:1046F000CB01B5010E94C036F701819391937F01F0 +:104700002197F8F61093CC020093CB02C9EBD2E0CC +:1047100094E0E92EF12C22E0822E912C3AE0232E17 +:10472000312CB401092C000C880B990B0E947E32AD +:104730009B01AC0160E070E080E291E40E942635CC +:104740002B013C016091CB027091CC02072E000C32 +:10475000880B990B0E947E32A30192010E9479344A +:104760000E94EB34CB01B1010E94C036F6012081DA +:104770003181821B930BF2E3F89FB001F99F700D1A +:104780001124072E000C880B990B0E947E32288181 +:1047900039814A815B810E940D342B013C0120E06C +:1047A00030E0A9010E94773281117CC04882598291 +:1047B0006A827B8201E022E346E270E060E0C701AA +:1047C00004970E943B138EECA82EBB24BA940FEFE3 +:1047D0001FEF288139814A815B8160E070E080E8C9 +:1047E00090E40E940C342B013C01B5010B2C000C11 +:1047F000880B990B0E947E329B01AC01C301B20170 +:104800000E940D340E94EB34F092FA07E092F9070F +:104810007093FC076093FB07F60160817181600F64 +:10482000711F072E000C880B990B0E94EB1D0F5F68 +:104830001F4FF2E3AF0EB11C0230110551F6249662 +:1048400021E0821A910882E0C80ED11CECE2EE0E43 +:10485000F11CF8E8EF16F10409F063CF00E022E064 +:1048600040E870E060E090E080E00E943B132DE0C3 +:1048700040E863E370E090E080E00E943B13DF914A +:10488000CF911F910F91FF90EF90DF90CF90BF904D +:10489000AF909F908F907F906F905F904F903F90E0 +:1048A0002F900895C301B20190582DEC3CEC4CE4DC +:1048B0005FE30E94DD32A30192010E940D34688300 +:1048C00079838A839B8376CF86E00E94C71521E097 +:1048D000892B09F020E02093E0020E9406148091C9 +:1048E000F1029091F202959587950E9430230E94E3 +:1048F00031170E94A31986E00E94C715892B69F71A +:104900008091E0028111E9CF0E94B5198091CB021C +:104910009091CC0208952F923F924F925F926F92A6 +:104920007F928F929F92AF92BF92CF92DF92EF923F +:10493000FF920F931F93CF93DF93CDB7DEB76597A9 +:104940000FB6F894DEBF0FBECDBF182FE091E7027F +:10495000F0E0EB59FD4F80818150990B1092E602F7 +:104960001092E502880F991F9093E4028093E3026E +:1049700081E090E09093E2028093E102812F90E049 +:10498000880F991F9093F2028093F10286E00E94B3 +:10499000C71521E0892B09F020E02093E002109256 +:1049A000FE0781E08093FD078091F1029091F20271 +:1049B0009C01359527953D872C873C853D8B6C84E4 +:1049C0007D8477249301211B310948E3429FC00174 +:1049D000439F900D1124280E391E2114310409F132 +:1049E0006627772762197309072E000C880B990B2D +:1049F0000E947E322AE939E949E15FE30E94DD3213 +:104A00004B015C01B101330C880B990B0E947E3283 +:104A10009B01AC01C501B4010E940D340E94EB342E +:104A20001B010E940614430182E0881A910861016B +:104A300098E4C91AD108F3013396FC8BEB8B97FCF1 +:104A40008AC0E091E702F0E0EB59FD4F80818815C4 +:104A5000190409F00CF47FC001E020E340E370E0AA +:104A600060E0C6010E943B1396012D5F3F4F3A8BD9 +:104A7000298B00E02AE24AE263E070E089899A89A2 +:104A80000E943B1370E060E0C6010E94DF1370E0FB +:104A900060E08601015D1F4FC8010E94DF136FE2D5 +:104AA00070E0C6010E94DF136FE270E0C8010E944F +:104AB000DF130E949119F401E80FF11DEE0FFF1FA3 +:104AC000E75EFD4F80819181988B8F8773E0E72EA1 +:104AD000F12C512C412CB12CA12CF50153E0F59572 +:104AE000E7955A95E1F7E40DF51D2F853889E20F1A +:104AF000F31FE491C5018770992720E830E002C0D8 +:104B0000359527958A95E2F7C901F0E0E223F9236C +:104B1000EF2B79F0C501880F991F8A0D9B1D01E0CD +:104B200023E043E0B701E989FA898E0F9F1F0E94B5 +:104B30003B13FFEFAF1ABF0A2EE0A216B10469F6CD +:104B400032E0430E511C43E0E40EF11C8DE2E81606 +:104B5000F10409F0C0CF9FEF891A990AE8E3CE0E5D +:104B6000D11C2B893C898216930609F068CF80916D +:104B70004E01811140C00E949119F301E80FF11D0F +:104B8000EE0FFF1FE353FE4F40815181EE24E3946B +:104B900000E124E260E370E080E390E00E945D13B6 +:104BA0000E9431170E94A31986E00E94C715892B25 +:104BB00001F58091E00281111CC00E94B5198D8918 +:104BC00065960FB6F894DEBF0FBECDBFDF91CF91D3 +:104BD0001F910F91FF90EF90DF90CF90BF90AF901B +:104BE0009F908F907F906F905F904F903F902F900D +:104BF00008951C85D9CE823009F083C00E94911996 +:104C0000860D972D911DFC01E75BF34EE490880F14 +:104C1000991FFC01EF57FE4F80809180D12CC12C51 +:104C200004E310E3CE1408F0BBCFF401EC0DFD1D3E +:104C3000449180E1840F833008F45EC03E85313FAB +:104C4000E9F0323FD1F1403F08F058C0193710F079 +:104C5000085F10E088E0489FA001112443585B4E94 +:104C6000602F70E028E0812F90E00E941914185FF7 +:104C700090EF9E873FEFC31AD30AD4CF4E39D0F7B7 +:104C80001D3710F0085F10E0A02EB12C612E712CA2 +:104C9000E3E04E9FA00111244D555D4E23E0B50188 +:104CA000C3010E94191421E042EA52E1B501C30197 +:104CB00003960E9419141C5FDDCF4F31D8F61937C7 +:104CC00010F0085F10E0A02EB12C612E712CF7E0DF +:104CD0004F9FA001112447535E4E27E0B501C30149 +:104CE0000E94191421E042EA52E1B501C30107967E +:104CF0000E941914185FBECF4E87BCCF20EF2E87BD +:104D0000B9CF80E390E09093FA078093F907E1E34D +:104D1000F0E0F093FC07E093FB0781E08093FF074E +:104D20000E949119FC858F0FE82FF0E0EE0FFF1F16 +:104D3000E350F44E65917491CE0101960E94703259 +:104D4000CE0101960E949A1D2BCF1F920F920FB693 +:104D50000F9211242F933F934F935F936F937F9301 +:104D60008F939F93AF93BF93EF93FF9388E097E068 +:104D70000E940F15FF91EF91BF91AF919F918F917D +:104D80007F916F915F914F913F912F910F900FBE47 +:104D90000F901F9018951F920F920FB60F9211242B +:104DA0002F938F939F93EF93FF93E0911807F091C8 +:104DB00019078081E0911E07F0911F0782FD1BC03B +:104DC0009081809121078F5F8F7320912207821736 +:104DD00041F0E0912107F0E0E85FF84F958F809374 +:104DE0002107FF91EF919F918F912F910F900FBE0F +:104DF0000F901F9018958081F4CF1F920F920FB6DD +:104E00000F9211242F933F938F939F93AF93BF9350 +:104E10008091CE029091CF02A091D002B091D102A8 +:104E20003091CD0223E0230F2D3758F50196A11DB7 +:104E3000B11D2093CD028093CE029093CF02A09318 +:104E4000D002B093D1028091D2029091D302A0916E +:104E5000D402B091D5020196A11DB11D8093D2025A +:104E60009093D302A093D402B093D502BF91AF9197 +:104E70009F918F913F912F910F900FBE0F901F9098 +:104E8000189526E8230F0296A11DB11DD2CF1F92BF +:104E90000F920FB60F9211242F933F934F935F936E +:104EA0006F937F938F939F93EF93FF9383B1817061 +:104EB00029B19091D802981709F49DC030E0220FD3 +:104EC000232F221F330B922F8093D8024091D702B9 +:104ED000241709F490C02093D7022091E102309169 +:104EE000E202981719F03195219531094091F102AC +:104EF0005091F2026091E5027091E602240F351F95 +:104F0000261737070CF48BC02091E1023091E202A2 +:104F1000981719F03195219531094091F10250917E +:104F2000F2026091E3027091E402240F351F6217D0 +:104F300073070CF46FC04091E1025091E2029817A0 +:104F400019F05195419551092091F1023091F202E9 +:104F5000240F351F3093F2022093F10241E09813A1 +:104F600040E02091D602421709F440C02091E102AE +:104F70003091E202981719F031952195310960912D +:104F8000F1027091F202E091E502F091E602260F43 +:104F9000371F2E173F070CF44CC02091E1023091CF +:104FA000E202981719F03195219531096091F102CB +:104FB0007091F202E091E302F091E402260F371FB4 +:104FC000E217F3078CF12091E1023091E202981789 +:104FD00019F03195219531098091F1029091F202F9 +:104FE000820F931F9093F2028093F1024093D602B6 +:104FF00081E08093FE02FF91EF919F918F917F91CD +:105000006F915F914F913F912F910F900FBE0F9035 +:105010001F9018952091E3023091E4029BCF2091DC +:10502000E5023091E60296CF8091E3029091E4028E +:10503000D9CF8091E5029091E602D4CF18950F93D5 +:105040001F93CF93DF93E8E0F7E01382128288EE9C +:1050500093E0A0E0B0E084839583A683B7838FE8D4 +:1050600092E09183808385EC90E09587848784EC3F +:1050700090E09787868780EC90E0918B808B81EC25 +:1050800090E0938B828B82EC90E0958B848B86EC06 +:1050900090E0978B868B118E128E138E148EEDEE10 +:1050A000F7E0138212821682178280E180871582D0 +:1050B0001482128681EA92E0918380831586148699 +:1050C0001786168681E0808B118A828B138AC1EB4A +:1050D000D7E029EA37E03F8F2E8F2DEA37E03D8F6A +:1050E0002C8F25EA37E039A328A31AAE1AAA1BAAE7 +:1050F0001CAA1DAA40E050E06FE773E44EAB5FAB23 +:1051000068AF79AF44E650E060E070E04EA75FA77B +:1051100068AB79AB21E030E0398F288F3B8F2A8F45 +:105120008BAF80E090E0A0E3B1E488839983AA8309 +:10513000BB8380E090E0A0E0BFE38C839D83AE83DF +:10514000BF8380E090E0A0E8BFE388879987AA87C3 +:10515000BB8780E090E0A0E3B1EC8C879D87AE87B1 +:10516000BF878DEC9CECACE4BDEB888B998BAA8B54 +:10517000BB8B80E090E0A0E2B1EC8C8B9D8BAE8B82 +:10518000BF8B0E9409170EA51FA528A939A9601B6E +:10519000710B820B930B6AA37BA38CA39DA3DF915E +:1051A000CF911F910F910895CF93DF93CDB7DEB7C5 +:1051B0002A970FB6F894DEBF0FBECDBF789484B5A2 +:1051C000826084BD84B5816084BD85B5826085BD03 +:1051D00085B5816085BD80916E00816080936E0091 +:1051E0001092810080918100826080938100809183 +:1051F0008100816080938100809180008160809334 +:1052000080008091B10084608093B1008091B000F3 +:1052100081608093B00080917A00846080937A00EE +:1052200080917A00826080937A0080917A00816018 +:1052300080937A0080917A00806880937A0010923F +:10524000C1001092B90088E48093B8000E9427172B +:1052500080E00E941D1702EC11E2E1EEEE2EE1E289 +:10526000FE2EF80184910E941D170F5F1F4FE0165C +:10527000F106B9F70E94151711E01093B8000E94CB +:10528000311781E28093F50760E08EE00E941E16E0 +:1052900060E08FE00E941E1661E085E00E941E160D +:1052A00061E089E00E941E1662E087E00E941E16FF +:1052B00062E088E00E941E1662E086E00E941E16F0 +:1052C00062E08AE00E941E168FEF90E00E945A165C +:1052D00060E085E00E94F01580917A0087608093FD +:1052E0007A0080917A00886080937A007894109395 +:1052F0006B00109368001BBB90E080E00E942E239F +:10530000182F81E090E00E942E23912F8F3F98402C +:1053100009F0BBC082E090E00E942E23182F83E0AA +:1053200090E00E942E23912F909347018093460195 +:1053300084E090E00E942E23182F85E090E00E94E8 +:105340002E23912F909345018093440186E090E0B5 +:105350000E942E238093430187E090E00E942E2339 +:1053600080934C0188E090E00E942E2380934B01B3 +:1053700089E090E00E942E2380934A018AE090E029 +:105380000E942E23809380018BE090E00E942E23C8 +:1053900091E0811101C090E0909349018CE090E090 +:1053A0000E942E2391E0811101C090E0909348016A +:1053B0008DE090E00E942E23809307038EE090E022 +:1053C0000E942E23282E809342018FE090E00E94BD +:1053D0002E2380934E0180E190E00E942E2391E0E5 +:1053E000811101C090E09093DF0281E190E00E9482 +:1053F0002E238093FF0252E0852E51E0952E60E52A +:10540000A62E61E0B62E72E1E72EF12C312C23148A +:1054100009F447C010E000E0C701800F911F0E940F +:105420002E23F501E00FF11F80830F5F1F4F063021 +:10543000110591F7670126E0C20ED11C3EE0E30E94 +:10544000F11C3401C6010E942E23082F10E0102FFA +:105450000027F301118300832601F2E04F0E511C57 +:10546000C60101960E942E23082BF301019311938C +:105470003F0162014E145F0429F73394F8E08F0E68 +:10548000911C26E0A20EB11CC2CF68E090E080E043 +:105490000E9423216FEF81E090E00E9423210E946F +:1054A00037211091DF0280EC111101C088EC0E94BD +:1054B0004E1780EA111101C081EA0E944E170E9426 +:1054C000E9189093DA028093D9020E947B19909395 +:1054D000010380930003009146011091470110934E +:1054E000F9020093F8028EE00E944D19BC0190E091 +:1054F00080E00E947C326093DB027093DC02809338 +:10550000DD029093DE020E9425190E94EF1C20E02C +:1055100030E040EA51E46091FA027091FB02809120 +:10552000FC029091FD020E940D346B017C01B801D8 +:1055300090E080E00E947C329B01AC01C701B60183 +:105540000E94773287FF04C090E080E00E945A16E4 +:105550001092E3071092E4071092E5071092E60715 +:10556000412C512C3FE7632E33E4732E4092E70722 +:105570005092E8076092E9077092EA07A090CF077F +:10558000B090D0078091EB07F501C080D180E28018 +:10559000F380882309F478C7A3019201C701B601FB +:1055A0000E942135181634F5F5014082518262823D +:1055B00073828090D7079090D807A090D907B090B9 +:1055C000DA07C090E707D090E807E090E907F0908D +:1055D000EA07A7019601C501B4010E9421351816FA +:1055E000C4F4C092D707D092D807E092D907F092BE +:1055F000DA071FC020E030E0A901C701B6010E9410 +:10560000773287FFD6CFF501108211821282138282 +:10561000D0CFC090E307D090E407E090E507F0908A +:10562000E607A7019601C501B4010E94773287FD04 +:10563000D8CF81E08093EB0783B181708093D8024B +:1056400089B190E0880F892F881F990B8093D7022A +:105650002091D8029091D70281E0291380E08093B5 +:10566000D6028CE291E09093E6028093E50280E21C +:1056700093E09093E4028093E3028AE090E09093B9 +:10568000E2028093E102000F111F1093F2020093D7 +:10569000F1020E9409176093F4027093F50280935F +:1056A000F6029093F7020E94B5190E94B519209056 +:1056B000F1023090F2029101359527953A872987BA +:1056C0003093F9022093F80286E00E94C715482E15 +:1056D00081119FC08091F002882309F49AC00E9432 +:1056E000B5190E9409176B017C01C092EC02D0929F +:1056F000ED02E092EE02F092EF0286E00E94C71502 +:10570000892B59F40E9409176C197D098E099F098C +:10571000643F71408105910580F30E9409176C195F +:105720007D098E099F09643F71408105910508F448 +:1057300053C48FEF90E00E945A160E94B519512C65 +:10574000AAE06A2E712C1092E702852D0E948B240C +:10575000582EF8E0F81708F439C0E82FF0E0ED54BF +:10576000F44D0C94D436CE2B762EED2E552F632F80 +:10577000942FA22FC22FCC2F20E030E0A901C70127 +:10578000B6010E94773287FF54CF1092D70710924C +:10579000D8071092D9071092DA074BCFFEE16F2E8F +:1057A000712C81E08093E702852D0E948B24582E76 +:1057B00022E0821709F434C2281708F4E8C08823CD +:1057C00009F410C131E0831709F40FC10E94372199 +:1057D00081E08093FE0229853A853093F902209377 +:1057E000F8028CE291E09093E6028093E50280E279 +:1057F00093E09093E4028093E3028AE090E0909338 +:10580000E2028093E102C1018E7F9093F2028093C5 +:10581000F1024092F00280910203882309F1109175 +:105820004A011123E9F00E940917C090E802D090C4 +:10583000E902E090EA02F090EB026C197D098E0912 +:105840009F0928EE33E040E050E00E94DB3321174F +:1058500038F0109202030E94B51981E080934D0147 +:105860008091FE028823E9F180910303882349F1A6 +:1058700020E030E040EA51E46091FA027091FB02CE +:105880008091FC029091FD020E940D346B017C011D +:105890006091F8027091F90290E080E00E947C3201 +:1058A0009B01AC01C701B6010E94773287FF04C09B +:1058B00090E080E00E945A160E94B51981E0809322 +:1058C0004D011092FE0210920303109204030E94F5 +:1058D00009176093F4027093F5028093F602909397 +:1058E000F7020E9409170091F4021091F50220912D +:1058F000F6023091F702601B710B820B930B20E6CE +:105900003AEE40E050E00E94DB33122F2093F30286 +:105910008091030381110BC080914C01882339F0E1 +:10592000281728F081E0809303030E94B519809125 +:10593000040381110BC080914B01882339F01817A3 +:1059400028F081E0809304030E94B5190E94EC21A5 +:105950000E94C21A0E9409178091F607362F381B41 +:10596000832F9091F707992309F44CC33093F807DC +:105970001092F70780E090E0892B09F498CE0E94FE +:10598000FB14882309F493CE0E94000090CE83E09C +:10599000581609F448C194E0591218CF8091420179 +:1059A000883008F0FECE91E0980F909342018093EA +:1059B00007030E94D319E091070328E0E29FF0015A +:1059C0001124EE5FFE4F88ED90E09183808324E305 +:1059D00031E03383228386E891E095838483778264 +:1059E0006682DFCE0E944620DCCE8E010F5F1F4F05 +:1059F000812C912C5401839478EEE72E73E0F72EDE +:105A0000CC24C394D12CE091070324E0E29FF00161 +:105A10001124C4010197E80FF91FEE0FFF1FEE5F7D +:105A2000FE4F808191819093F9028093F802E8EC17 +:105A3000F0E0F093E602E093E502F092E402E092F7 +:105A4000E302D092E202C092E102880F991F909384 +:105A5000F2028093F102F1E0F0934D0186E00E94A2 +:105A6000C71521E0892B09F020E02093E0020E9475 +:105A7000061422E02093FF070E94EC210E94C21A24 +:105A80001092FA071092F9071092FC071092FB0788 +:105A900087E092E20E94C518C501B4010E94EB1D87 +:105AA00085EB92E00E949A1D80914F011092FA07B7 +:105AB0001092F907882309F48BC080E190E090935D +:105AC000FC078093FB078AEF91E20E94C5181092B1 +:105AD000FA071092F907E0E2F0E0F093FC07E09398 +:105AE000FB0783EF91E20E94C5186091F10270916B +:105AF000F20275956795072E000C880B990B0E9492 +:105B0000EB1D0E94A3190E94311786E00E94C71561 +:105B1000892B09F0ACCF8091E0028111A8CF809150 +:105B2000F1029091F20295958795F80181939193F6 +:105B30008F010E94B5196AE070E080E090E00E9459 +:105B4000D716FFEF8F1A9F0AAF0ABF0A24E082160A +:105B50009104A104B10409F056CF8FEF90E00E94A8 +:105B60005A168BEA94E00197F1F70E9425190E94DA +:105B7000F2344B0178876F83C980DA800B811C81F6 +:105B8000C6014E968017910708F00BCEED80FE807F +:105B9000C8014E968E159F0508F003CE87E08093CE +:105BA000E70280E00E948B24882309F4FACDE0917B +:105BB000070338E0E39FF0011124EE5FFE4FD1822E +:105BC000C08213830283F582E48297828682E9CDC4 +:105BD00020E130E03093FC072093FB078DEE91E24B +:105BE0000E94C5186091DB027091DC028091DD0299 +:105BF0009091DE020E94F23490E080E04AE00E9440 +:105C0000A71D1092FA071092F90780E290E0909396 +:105C1000FC078093FB0781EE91E20E94C51871CFCB +:105C20000E94D319BECD87E08093E70280914201A4 +:105C3000813009F4B6CD80E00E948B24882309F4DA +:105C4000B0CD1091070300914201802F8150990B34 +:105C5000BC011817190639F41150109307030150AD +:105C6000009342019ECD812F90E086179707BCF7E5 +:105C7000E6E01E9FD001112450E040E09C012F5F20 +:105C80003F4FFA01EA0FFB1FE05BFE4FF680F08208 +:105C90004F5F5F4F46305105A1F7A3E0220F331F3E +:105CA000AA95E1F7F901EE5FFE4F20813181B3E063 +:105CB000880F991FBA95E1F7DC01AE5FBE4F1196D0 +:105CC0003C932E938281938113969C938E9312978B +:105CD0008481958115969C938E93149786819781E4 +:105CE00017969C938E9316971F5FBDCF82E080938B +:105CF000E70210E068E2C62ED12C7CE2A72EBB247E +:105D0000B394E0E28E2EE3E09E2EF4E1EF2EF12C30 +:105D1000812F0E948B24182F813021F130F08230A6 +:105D200009F43FC00E9437210ECD80914601909129 +:105D30004701B092E602A092E5029092E4028092BE +:105D4000E3027092E2026092E102880F991F909341 +:105D5000F2028093F1020E946424909347018093A1 +:105D60004601D6CF8091440190914501D092E60240 +:105D7000C092E502E0E9F1E0F093E402E093E3028F +:105D80007092E2026092E102880F991F9093F202F2 +:105D90008093F1020E946424909345018093440112 +:105DA000B7CF8091430190E0F092E602E092E502E5 +:105DB00028EC30E03093E4022093E3027092E20298 +:105DC0006092E102880F991F9093F2028093F10292 +:105DD0000E946424809343019BCF83E08093E70279 +:105DE000F12C01E010E08F2D0E948B24F82E31E081 +:105DF0008317E9F18317F8F082E0F81293CF8091CE +:105E00004A0190E01092E6021092E50228E631E0A5 +:105E10003093E4022093E3027092E2026092E10286 +:105E2000880F991F9093F2028093F1020E946424DC +:105E300080934A01D8CF80914C0190E01092E60205 +:105E40001092E502ECE3F0E0F093E402E093E30269 +:105E50001093E2020093E102880F991F9093F202DF +:105E60008093F1020E94642480934C01BCCF809106 +:105E70004B0190E01092E6021092E50228E730E034 +:105E80003093E4022093E302E5E0F0E0F093E202D5 +:105E9000E093E102880F991F9093F2028093F10240 +:105EA0000E94642480934B019ECF84E08093E7029C +:105EB000809149010E948B2491E0811101C090E002 +:105EC0009093490140CC10E0E9E0EE2EF5E0DF2EA2 +:105ED000E092E702812F0E948B24182F882321F063 +:105EE0008130E1F000E009C0D092E70280918001AA +:105EF0000E948B248093800101E0F090DF0280EC0F +:105F0000F11001C088EC0E944E1780EAF11001C028 +:105F100081EA0E944E170111DBCF04CF8091DF028E +:105F200081278093DF02E8CF86E08093E7028091AB +:105F300048010E948B2491E0811101C090E0909370 +:105F4000480101CC8091FF0290E01092E60210928D +:105F5000E502E4EFF1E0F093E402E093E30221E0F4 +:105F600030E03093E2022093E102880F991F909372 +:105F7000F2028093F1020E9464248093FF020E9447 +:105F8000B519E1CB88E08093E70280914E010E9431 +:105F90008B2480934E01D7CB0E940614EE24E39409 +:105FA00000E320E34EE052E270E060E088E290E03F +:105FB0000E945D130E94311764E670E080E090E07B +:105FC0000E94D71686E00E94C715892BD9F78091C9 +:105FD000E0028111F7CFD3CF8091020391E08927AE +:105FE00080930203882351F00E9409176093E8020E +:105FF0007093E9028093EA029093EB0281E0809330 +:10600000FE0207CC9091F507391748F48F5F891786 +:1060100008F0B0CC81E083BF889513BEABCC11E013 +:106020001093F7076093F6078091F1079091F207BC +:1060300001969093F2078093F10780918001882365 +:1060400009F4BCC10E94061401E020E440E870E0BD +:1060500060E090E080E00E943B131093FF071093F4 +:10606000FE071092FD07E12C00E120E14DE953E22B +:1060700070E060E090E080E00E945D1383E190E0DA +:106080009093FA078093F90784E090E09093FC07DF +:106090008093FB0780910703E6E08E9FC0011124E7 +:1060A000805B9E4F0E949A1D80910503909106038C +:1060B000853F914008F02DC18091040381112BC1CF +:1060C00080910303811129C180910203811127C1AD +:1060D00080914F01811125C120E030E044E353E479 +:1060E0006091A9077091AA078091AB079091AC07C6 +:1060F0000E94773287FF17C185E025E330E03093B7 +:10610000FA072093F90721E030E03093FC07209351 +:10611000FB0792E09093FF07C82ED12C90914E017F +:10612000CC0CDD1C911101C1F601E358FD4F4081FB +:106130005181E12C0EE02CE161E070E080E590E01F +:106140000E945D13F601E159FD4F40815181E12C20 +:106150000EE02EE061E070E081E790E00E945D13C8 +:1061600081E08093FF070E94251920E030E040EA9B +:1061700052E40E94213518160CF0FAC00E9409174B +:1061800052E0660F771F881F991F5A95D1F728EEA6 +:1061900033E040E050E00E94DB3320FFE9C00E9482 +:1061A000B519609100037091010390E080E00E94B6 +:1061B0007C3220E030E048EC52E40E9479346B01FC +:1061C0007C016091FF0270E090E080E00E947E32EE +:1061D0009B01AC01C701B6010E94773287FDD4C094 +:1061E000E12C0EE02EE04FE353E262E270E082E049 +:1061F00090E00E945D1303E110E01093FA07009312 +:10620000F90720E130E03093FC072093FB070E9460 +:10621000251941E00E94151E88EF0E94E0188DE3C9 +:1062200093E20E94C5181093FA070093F90788E1DA +:1062300090E09093FC078093FB070E94E918BC0153 +:1062400090E080E00E947C3220E030E04AE754E4B5 +:106250000E94793442E00E94151E8BE393E20E9473 +:10626000C5181093FA070093F90780E290E0909325 +:10627000FC078093FB07609100037091010390E09D +:1062800080E00E947C3220E030E04AE754E40E9443 +:10629000793441E00E94151E89E393E20E94C518FB +:1062A0001093FA070093F90788E290E09093FC07B7 +:1062B0008093FB0782E393E20E94C51889E390E094 +:1062C0009093FA078093F90782E190E09093FC079E +:1062D0008093FB0784E08093FF0760910503709132 +:1062E0000603653F91E0790708F462C08EE293E20D +:1062F0000E94C51800E020E248E460E170E087E316 +:1063000090E00E94921780E00E94ED1E0E943117DB +:1063100031CB80E0F2CE81E0F0CE82E0EECE83E0C1 +:10632000ECCE84E0EACE86E0E8CE8330C1F038F4EB +:10633000813069F0823081F087E793E20AC08530CE +:10634000A1F080F08630C1F78DE793E202C089E9C1 +:1063500093E20E94C518F6CE83E993E2FACF8DE866 +:1063600093E2F7CF87E893E2F4CF82E893E2F1CFAC +:10637000E12C0EE02EE04BE553E262E170E082E0BA +:1063800090E00E945D130DCF0E94091742E0660F56 +:10639000771F881F991F4A95D1F728EE33E040E018 +:1063A00050E00E94DB3320FF1BCF0E94B51923CFA2 +:1063B00090E080E04AE00E94A71D9CCF0E94061456 +:1063C0000E94251920E030E040EA52E40E94213585 +:1063D000181694F40E94091732E0660F771F881F81 +:1063E000991F3A95D1F728EE33E040E050E00E9443 +:1063F000DB3320FD0E94B519609100037091010309 +:1064000090E080E00E947C3220E030E048EC52E4F2 +:106410000E9479346B017C016091FF0270E090E092 +:1064200080E00E947E329B01AC01C701B6010E9450 +:10643000773287FF12C00E94091722E0660F771F8C +:10644000881F991F2A95D1F728EE33E040E050E0ED +:106450000E94DB3320FD0E94B519809105039091C5 +:106460000603853FE1E09E0710F087EE93E00E946F +:10647000302300E023E040E860E370E090E080E05B +:106480000E943B1381E040CFC092D707D092D8073B +:10649000E092D907F092DA07E091CD07F091CE07AC +:1064A00080819181A281B3818093DB079093DC0787 +:1064B000A093DD07B093DE0720E030E04FE753E420 +:1064C000C701B6010E94213518160CF055C940923B +:1064D000D7075092D8076092D9077092DA07A9C8F7 +:1064E000FB01DC0105900D920020E1F708950E9468 +:1064F000B93208F481E00895E89409C097FB3EF4AE +:1065000090958095709561957F4F8F4F9F4F992300 +:10651000A9F0F92F96E9BB279395F695879577957E +:106520006795B795F111F8CFFAF4BB0F11F460FF3E +:106530001BC06F5F7F4F8F4F9F4F16C0882311F096 +:1065400096E911C0772321F09EE8872F762F05C0AA +:10655000662371F096E8862F70E060E02AF09A9545 +:10656000660F771F881FDAF7880F9695879597F93A +:106570000895990F0008550FAA0BE0E8FEEF1616D4 +:106580001706E807F907C0F012161306E407F50727 +:1065900098F0621B730B840B950B39F40A2661F09B +:1065A000232B242B252B21F408950A2609F4A1403E +:1065B000A6958FEF811D811D08950E94F0320C94E5 +:1065C00061330E94533338F00E945A3320F09523F0 +:1065D00011F00C944A330C94503311240C949533DD +:1065E0000E94723370F3959FC1F3950F50E0551FD1 +:1065F000629FF001729FBB27F00DB11D639FAA2718 +:10660000F00DB11DAA1F649F6627B00DA11D661F66 +:10661000829F2227B00DA11D621F739FB00DA11D87 +:10662000621F839FA00D611D221F749F3327A00D41 +:10663000611D231F849F600D211D822F762F6A2FDD +:1066400011249F5750409AF0F1F088234AF0EE0F42 +:10665000FF1FBB1F661F771F881F91505040A9F76F +:106660009E3F510580F00C944A330C9495335F3F64 +:10667000E4F3983ED4F3869577956795B795F795AB +:10668000E7959F5FC1F7FE2B880F911D9695879523 +:1066900097F9089597F99F6780E870E060E00895A2 +:1066A0009FEF80EC089500240A941616170618062A +:1066B0000906089500240A94121613061406050606 +:1066C0000895092E0394000C11F4882352F0BB0F97 +:1066D00040F4BF2B11F460FF04C06F5F7F4F8F4FFA +:1066E0009F4F089557FD9058440F551F59F05F3F35 +:1066F00071F04795880F97FB991F61F09F3F79F0E4 +:1067000087950895121613061406551FF2CF469565 +:10671000F1DF08C0161617061806991FF1CF8695E7 +:106720007105610508940895E894BB2766277727CB +:10673000CB0197F90895F999FECF92BD81BDF89AE2 +:10674000992780B50895262FF999FECF1FBA92BDDB +:1067500081BD20BD0FB6F894FA9AF99A0FBE019642 +:106760000895052E97FB1EF400940E94C83357FD30 +:1067700007D00E94DB3307FC03D04EF40C94C833DF +:1067800050954095309521953F4F4F4F5F4F08955D +:1067900090958095709561957F4F8F4F9F4F08958D +:1067A0000E94FD33A59F900DB49F900DA49F800D76 +:1067B000911D11240895A1E21A2EAA1BBB1BFD01F5 +:1067C0000DC0AA1FBB1FEE1FFF1FA217B307E407D0 +:1067D000F50720F0A21BB30BE40BF50B661F771F28 +:1067E000881F991F1A9469F7609570958095909508 +:1067F0009B01AC01BD01CF010895A29FB001B39FE1 +:10680000C001A39F700D811D1124911DB29F700DB9 +:10681000811D1124911D08955058BB27AA270E945D +:1068200024340C9461330E94533338F00E945A335D +:1068300020F039F49F3F19F426F40C9450330EF4F1 +:10684000E095E7FB0C944A33E92F0E94723358F32A +:10685000BA17620773078407950720F079F4A6F545 +:106860000C9494330EF4E0950B2EBA2FA02D0B014F +:10687000B90190010C01CA01A0011124FF27591B85 +:1068800099F0593F50F4503E68F11A16F040A22F8B +:10689000232F342F4427585FF3CF469537952795FC +:1068A000A795F0405395C9F77EF41F16BA0B620BFB +:1068B000730B840BBAF09150A1F0FF0FBB1F661F42 +:1068C000771F881FC2F70EC0BA0F621F731F841F85 +:1068D00048F4879577956795B795F7959E3F08F0AB +:1068E000B0CF9395880F08F09927EE0F979587956D +:1068F00008950E948D340C9461330E945A3358F0ED +:106900000E94533340F029F45F3F29F00C944A333E +:1069100051110C9495330C9450330E94723368F3E8 +:106920009923B1F3552391F3951B550BBB27AA2748 +:1069300062177307840738F09F5F5F4F220F331F82 +:10694000441FAA1FA9F335D00E2E3AF0E0E832D04A +:1069500091505040E695001CCAF72BD0FE2F29D04D +:10696000660F771F881FBB1F261737074807AB071F +:10697000B0E809F0BB0B802DBF01FF2793585F4F94 +:106980003AF09E3F510578F00C944A330C949533BD +:106990005F3FE4F3983ED4F3869577956795B79576 +:1069A000F7959F5FC9F7880F911D9695879597F981 +:1069B0000895E1E0660F771F881FBB1F62177307FA +:1069C0008407BA0720F0621B730B840BBA0BEE1F0F +:1069D00088F7E09508950E94F2346894B1110C9400 +:1069E000953308950E947A3388F09F5798F0B92F15 +:1069F0009927B751B0F0E1F0660F771F881F991FF4 +:106A00001AF0BA95C9F714C0B13091F00E949433CE +:106A1000B1E008950C949433672F782F8827B85FDE +:106A200039F0B93FCCF3869577956795B395D9F74B +:106A30003EF490958095709561957F4F8F4F9F4F55 +:106A400008950E94B93208F48FEF0895FA01EE0F0D +:106A5000FF1F309621053105A1F16115710561F423 +:106A60008038BFE39B0749F168949038810561F055 +:106A70008038BFEF9B0741F099234AF5FF3FE105BE +:106A80003105210519F1E8940894E795D901AA2365 +:106A900029F4AB2FBE2FF85FD0F310C0FF5F70F466 +:106AA000A695E0F7F73950F019F0FF3A38F49F77E0 +:106AB0009F930DD00F9007FC9058089546F00C94CA +:106AC000503360E070E080E89FE308954FE79F77E0 +:106AD0005F934F933F932F930E9426362F913F91C0 +:106AE0004F915F910E94DD320C9483350E94B93240 +:106AF000880B990B089529F416F00C944A330C94E2 +:106B000094330C9450330E947A33A8F39638A0F74C +:106B100007F80F92E8942BE33AEA48EB5FE70E940C +:106B2000F3320F920F920F924DB75EB70F920E9401 +:106B30006E36E8E6F0E00E94B5354F915F91EF9137 +:106B4000FF91E595EE1FFF1F49F0FE57E0684427CF +:106B5000EE0F441FFA95E1F74195550B0E94E83579 +:106B60000F9007FE0C94DC350895DF93CF931F93AD +:106B70000F93FF92EF92DF927B018C01689406C025 +:106B8000DA2EEF010E94F032FE01E894A5912591E2 +:106B9000359145915591A6F3EF010E942434FE01F1 +:106BA0009701A801DA9469F7DF90EF90FF900F91B9 +:106BB0001F91CF91DF9108959B01AC0160E070E0DF +:106BC00080E89FE30C9479340C944A330C94A236F9 +:106BD0000E947A33D8F39923C9F3940F511DA3F37C +:106BE0009150504094F059F0882332F0660F771F8F +:106BF000881F91505040C1F79E3F51052CF7880FD8 +:106C0000911D9695879597F908955F3FACF0983E52 +:106C10009CF0BB27869577956795B79508F4B1608A +:106C20009395C1F7BB0F58F711F460FFE8CF6F5F82 +:106C30007F4F8F4F9F4FE3CF0C94953316F00C94FA +:106C4000A2360C94503368940C944A330E947A33E1 +:106C5000A8F39923C1F3AEF3DF93CF931F930F9360 +:106C6000FF92C92FDD2788232AF02197660F771F0F +:106C7000881FDAF720E030E040E85FEB9FE38839D7 +:106C800020F0803E38F021968F770E940D34E0E9A5 +:106C9000F0E004C00E940D34EDEBF0E00E94B53549 +:106CA0008B01BE01EC01FB2E6F5771097595771FA3 +:106CB000880B990B0E947E3228E132E741E35FE3C3 +:106CC0000E94F032AF2D9801AE01FF900F911F91FD +:106CD000CF91DF910E9424340C946133FA01DC01DE +:106CE000AA0FBB1F9B01AC01BF5728F422273327F3 +:106CF0004427507820C0B75190F4AB2F002446951C +:106D000037952795011CA395D2F3002071F0220F2F +:106D1000331F441FB395DAF30ED00C940C3461305A +:106D20007105A0E88A07B94630F49B01AC016627DB +:106D3000772788279078309621F02083318342830B +:106D4000538308959F3F31F0915020F487957795B4 +:106D50006795B795880F911D9695879597F9089532 +:106D6000DB018F939F930E94D033BF91AF91A29F7D +:106D7000800D911DA39F900DB29F900D1124089539 +:106D800097FB072E16F4009407D077FD09D00E94D8 +:106D9000DA3607FC05D03EF4909581959F4F089513 +:106DA000709561957F4F0895EE0FFF1F0590F49148 +:106DB000E02D0994AA1BBB1B51E107C0AA1FBB1FF2 +:106DC000A617B70710F0A61BB70B881F991F5A9577 +:106DD000A9F780959095BC01CD01089581E090E0E0 +:106DE000F8940C94F336F894FFCF01FFD8003401E7 +:106DF00086011E00000000000000000000000000EE +:106E00000000000000000000000000000000000082 +:106E10000000000000000000000000000000000072 +:106E2000000000000000000000000000013C96008F +:106E300040010101280F050101014243312E3500B7 +:106E40000000000000000000000000000000000042 +:106E50000000000000000000000000000000000032 +:106E60000000000000000000000001770272026DC7 +:106E700002660260025C02530250024B0247023E6D +:106E80000234022C022902260223021D021A0215D4 +:106E90000212020F020A0205020202FC01F801F4CA +:106EA00001EF01EA01E601E101DD01D901D601D2DC +:106EB00001C901C401C1012D0CDD0B8D0B3D0BED92 +:106EC0000A9D0A4D0AFD09AD095D092D0C0D09BD8C +:106ED000086D081D08CD077D072D07DD06CD072DA0 +:106EE000078D06DD06CD073D06ED059D054D05FD2B +:106EF00004AD045D040D04BD036D031D03CD027DCF +:106F000002CD07710F550F390F1D0F010FE50EC987 +:106F10000EAD0E910E750E590E3D0E710F210E0520 +:106F20000EE90D710FCD0DB10DE90DCD0D950DB122 +:106F30000DE90D790D5D0D410D250D090DE50EEDE8 +:106F40000C750ED10CB50C990C010F7D0CE90D0AD6 +:106F50000604040202020203031D100110E10F3FA8 +:106F600023C50FA90F8D0F891151111911E110A916 +:106F700010711039100000000031159114BE147EFC +:106F800015EF14CD14E11400000000C3179114E6AE +:106F900018E5186E616E00696E66006F7666002FE8 +:026FA0003300BC +:107E0000112484B714BE81FFF0D085E080938100F7 +:107E100082E08093C00088E18093C10086E0809377 +:107E2000C20080E18093C4008EE0C9D0259A86E02C +:107E300020E33CEF91E0309385002093840096BBD3 +:107E4000B09BFECF1D9AA8958150A9F7CC24DD24C4 +:107E500088248394B5E0AB2EA1E19A2EF3E0BF2EE7 +:107E6000A2D0813461F49FD0082FAFD0023811F036 +:107E7000013811F484E001C083E08DD089C08234E0 +:107E800011F484E103C0853419F485E0A6D080C0E4 +:107E9000853579F488D0E82EFF2485D0082F10E0AE +:107EA000102F00270E291F29000F111F8ED06801E7 +:107EB0006FC0863521F484E090D080E0DECF843638 +:107EC00009F040C070D06FD0082F6DD080E0C81688 +:107ED00080E7D80618F4F601B7BEE895C0E0D1E017 +:107EE00062D089930C17E1F7F0E0CF16F0E7DF06D8 +:107EF00018F0F601B7BEE89568D007B600FCFDCFD4 +:107F0000A601A0E0B1E02C9130E011968C91119780 +:107F100090E0982F8827822B932B1296FA010C0160 +:107F200087BEE89511244E5F5F4FF1E0A038BF0790 +:107F300051F7F601A7BEE89507B600FCFDCF97BE46 +:107F4000E89526C08437B1F42ED02DD0F82E2BD052 +:107F50003CD0F601EF2C8F010F5F1F4F84911BD097 +:107F6000EA94F801C1F70894C11CD11CFA94CF0C13 +:107F7000D11C0EC0853739F428D08EE10CD085E9AC +:107F80000AD08FE07ACF813511F488E018D01DD067 +:107F900080E101D065CF982F8091C00085FFFCCF94 +:107FA0009093C60008958091C00087FFFCCF809118 +:107FB000C00084FD01C0A8958091C6000895E0E648 +:107FC000F0E098E1908380830895EDDF803219F02E +:107FD00088E0F5DFFFCF84E1DECF1F93182FE3DFCA +:107FE0001150E9F7F2DF1F91089580E0E8DFEE27F6 +:047FF000FF270994CA +:027FFE00040479 +:00000001FF diff --git a/software/sources/SolderingStation2_arduboy_gplib_v1.6L+.ino b/software/sources/SolderingStation2_arduboy_gplib_v1.6L+.ino index 4f07a36..bd09e1d 100644 --- a/software/sources/SolderingStation2_arduboy_gplib_v1.6L+.ino +++ b/software/sources/SolderingStation2_arduboy_gplib_v1.6L+.ino @@ -1,6 +1,7 @@ /*License: http://creativecommons.org/licenses/by-sa/3.0/ 采用CC3.0协议共享此程序 - 您可以自由地: + 您可以自由地:- + -AZ 共享 — 在任何媒介以任何形式复制、发行本作品 演绎 — 修改、转换或以本作品为基础进行创作 在任何用途下,甚至商业目的。 @@ -57,21 +58,21 @@ //const unsigned char QRCode[] PROGMEM = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x03, 0x86, 0x70, 0x80, 0x03, 0x80, 0x03, 0x86, 0x70, 0x80, 0x03, 0x9f, 0xf3, 0xe1, 0x30, 0x9f, 0xf3, 0x9f, 0xf3, 0xe1, 0x30, 0x9f, 0xf3, 0x98, 0x33, 0x01, 0xcc, 0x98, 0x33, 0x98, 0x33, 0x01, 0xcc, 0x98, 0x33, 0x98, 0x33, 0x87, 0xc0, 0x98, 0x33, 0x98, 0x33, 0xe1, 0xc0, 0x98, 0x33, 0x98, 0x33, 0xe1, 0xc0, 0x98, 0x33, 0x9f, 0xf3, 0x98, 0xc0, 0x9f, 0xf3, 0x9f, 0xf3, 0x98, 0xc0, 0x9f, 0xf3, 0x80, 0x03, 0x66, 0xcc, 0x80, 0x03, 0x80, 0x03, 0x66, 0xcc, 0x80, 0x03, 0xff, 0xff, 0x01, 0x0c, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x1f, 0xff, 0x81, 0x00, 0x61, 0x30, 0x1f, 0x3f, 0x87, 0x3c, 0xe6, 0xfc, 0x87, 0x33, 0x87, 0x3c, 0xe6, 0xfc, 0x87, 0xf3, 0xf8, 0x03, 0x9e, 0x0f, 0x1f, 0x03, 0xf8, 0x03, 0x9e, 0x0f, 0x1f, 0x03, 0xe1, 0x3c, 0xfe, 0x0c, 0x07, 0xcf, 0xe1, 0x3c, 0xfe, 0x0c, 0x07, 0xcf, 0x99, 0x03, 0x3e, 0x30, 0x86, 0xc3, 0xe6, 0xcf, 0x38, 0x0f, 0x9e, 0xf3, 0xe6, 0xcf, 0x38, 0x0f, 0x9e, 0xf3, 0x9e, 0x03, 0x27, 0xcc, 0x81, 0x03, 0x9e, 0x03, 0x27, 0xcc, 0x81, 0x03, 0xe0, 0xff, 0xe1, 0x0c, 0xe6, 0xcf, 0xe0, 0xff, 0xe1, 0x0c, 0xe6, 0xcf, 0x98, 0x03, 0x06, 0x00, 0x00, 0xff, 0x98, 0x03, 0x06, 0x00, 0x00, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0xf8, 0x03, 0x80, 0x03, 0x66, 0x30, 0x99, 0xc3, 0x80, 0x03, 0x66, 0x30, 0x99, 0xc3, 0x9f, 0xf3, 0x01, 0x0c, 0xf8, 0xff, 0x9f, 0xf3, 0x01, 0x0c, 0xf8, 0xff, 0x98, 0x33, 0x39, 0x3c, 0x01, 0xcf, 0x98, 0x33, 0x39, 0x3c, 0x01, 0xcf, 0x98, 0x33, 0xff, 0x0c, 0x79, 0x3f, 0x98, 0x33, 0x3e, 0xcc, 0xe0, 0xf3, 0x98, 0x33, 0x3e, 0xcc, 0xe0, 0xf3, 0x9f, 0xf3, 0x3e, 0x00, 0x98, 0xcf, 0x9f, 0xf3, 0x3e, 0x00, 0x98, 0xcf, 0x80, 0x03, 0x3e, 0x30, 0xe7, 0xc3, 0x80, 0x03, 0x3e, 0x30, 0xe7, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; //ICO //width:16,height:16 -const unsigned char Tag[] PROGMEM = { 0x00, 0x00, 0x7e, 0x00, 0x7f, 0x00, 0x73, 0x80, 0x61, 0xc0, 0x61, 0xe0, 0x73, 0xf0, 0x3f, 0xf8, 0x1f, 0xfc, 0x0f, 0xfe, 0x07, 0xff, 0x03, 0xff, 0x01, 0xfe, 0x00, 0xfc, 0x00, 0x78, 0x00, 0x30 }; -const unsigned char Chip[] PROGMEM = { 0x12, 0x48, 0x12, 0x48, 0x1f, 0xf8, 0xe0, 0x07, 0x2e, 0x14, 0x2c, 0x04, 0xe8, 0x07, 0x20, 0x04, 0x20, 0x04, 0xe0, 0x07, 0x20, 0x04, 0x28, 0x14, 0xe0, 0x07, 0x1f, 0xf8, 0x12, 0x48, 0x12, 0x48 }; +const unsigned char Tag[] PROGMEM = { 0x00,0x00,0x3b,0xec,0x7b,0xee,0x63,0xe6,0x63,0xe6,0x63,0xe6,0x63,0xe6,0x63,0xe6,0x63,0xe6,0x63,0x66,0x62,0x26,0x60,0x06,0x60,0x06,0x7f,0xfe,0x3f,0xfc,0x00,0x00 }; +const unsigned char Chip[] PROGMEM = { 0x14,0xa0,0x3f,0xf0,0x7f,0xf8,0xe0,0x1c,0x6e,0x18,0xec,0x1c,0x68,0x18,0x60,0x18,0xe0,0x1c,0x60,0x58,0xe0,0x1c,0x7f,0xf8,0x3f,0xf0,0x14,0xa0 }; //const unsigned char HeatPipe[] PROGMEM = { 0x00, 0x00, 0x09, 0x90, 0x11, 0x88, 0x21, 0x84, 0x11, 0x88, 0x09, 0x90, 0x11, 0x88, 0x21, 0x84, 0x11, 0x88, 0x09, 0x90, 0x11, 0x88, 0x21, 0x84, 0x11, 0x88, 0x09, 0x90, 0x01, 0x80, 0x00, 0x00 }; -const unsigned char Lightning[] PROGMEM = { 0x00, 0x80, 0x00, 0x80, 0x01, 0x80, 0x01, 0x80, 0x03, 0x80, 0x07, 0x80, 0x07, 0xf0, 0x0f, 0xf0, 0x0f, 0xe0, 0x1f, 0xc0, 0x01, 0xc0, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x00, 0x01, 0x00 }; +const unsigned char Lightning[] PROGMEM = { 0x0f,0xe0,0x1f,0xc0,0x1f,0xc0,0x3f,0x80,0x3f,0xf8,0x7f,0xf0,0x7f,0xe0,0x07,0xc0,0x07,0x80,0x0f,0x00,0x0e,0x00,0x1c,0x00,0x18,0x00,0x10,0x00 }; //const unsigned char Thermometer[] PROGMEM = { 0x01, 0x80, 0x02, 0x40, 0x03, 0x40, 0x02, 0x40, 0x03, 0x40, 0x02, 0x40, 0x03, 0x40, 0x02, 0x40, 0x03, 0x40, 0x03, 0xc0, 0x03, 0xc0, 0x03, 0xc0, 0x07, 0xe0, 0x07, 0xe0, 0x07, 0xe0, 0x03, 0xc0 }; const unsigned char Pointer[] PROGMEM = { 0x20, 0x20, 0x70, 0xf8 }; //状态提示 -//width:16,height:16 图标库 -const unsigned char c1[] PROGMEM = { 0x03, 0x80, 0x03, 0x80, 0x03, 0xc0, 0x07, 0xc0, 0x07, 0xe0, 0x0f, 0xe0, 0x0e, 0x70, 0x1e, 0x70, 0x1e, 0x70, 0x1e, 0x78, 0x3f, 0xf8, 0x3f, 0xfc, 0x7e, 0x7c, 0x7e, 0x7e, 0x7f, 0xfe, 0x7f, 0xfe }; -const unsigned char c2[] PROGMEM = { 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x19, 0x90, 0x39, 0xb8, 0x31, 0x8c, 0x61, 0x8c, 0x61, 0x86, 0x60, 0x06, 0x60, 0x06, 0x60, 0x0e, 0x70, 0x0c, 0x30, 0x1c, 0x1c, 0x78, 0x0f, 0xf0, 0x03, 0xc0 }; -const unsigned char c3[] PROGMEM = { 0x00, 0xe0, 0x03, 0xc0, 0x0f, 0x00, 0x1c, 0x38, 0x10, 0xf0, 0x03, 0xc0, 0x0f, 0x00, 0x1c, 0x38, 0x10, 0xf0, 0x03, 0xe0, 0x07, 0xe0, 0x07, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x03, 0xc0, 0x03, 0x80 }; -//c4用Lightning 替代 -const unsigned char c5[] PROGMEM = { 0x0f, 0xe0, 0x1f, 0xf8, 0x3f, 0xfc, 0x7f, 0xfe, 0xff, 0xe6, 0xff, 0xce, 0xff, 0x9f, 0xf3, 0x3f, 0xf0, 0x7f, 0xf8, 0xff, 0xfd, 0xfe, 0x7f, 0xfe, 0x7f, 0xfc, 0x3f, 0xf8, 0x1f, 0xf0, 0x03, 0xc0 }; -const unsigned char c6[] PROGMEM = { 0x04, 0x00, 0x06, 0x00, 0x07, 0x00, 0x0f, 0x00, 0x0f, 0x80, 0x1f, 0x80, 0x3f, 0x90, 0x7f, 0x18, 0x7f, 0x1c, 0x7e, 0x3c, 0x7c, 0x3e, 0x78, 0x7e, 0x78, 0xfe, 0x31, 0xfe, 0x11, 0xfc, 0x09, 0xf8 }; -const unsigned char c7[] PROGMEM = { 0x00, 0x00, 0x07, 0xe0, 0x1f, 0xf8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x3f, 0xfc, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3e, 0x7c, 0x3e, 0x7c, 0x3f, 0xfc, 0x3f, 0xfc, 0x00, 0x00 }; +//width:14,height:14 图标库 + +const unsigned char c1[] PROGMEM = { 0x03,0x00,0x07,0x80,0x0f,0xc0,0x0c,0xc0,0x1c,0xe0,0x1c,0xe0,0x3c,0xf0,0x3c,0xf0,0x7f,0xf8,0x7f,0xf8,0xfc,0xfc,0xfc,0xfc,0xff,0xfc,0x7f,0xf8 }; +const unsigned char c2[] PROGMEM = { 0x7f,0xf8,0xff,0xfc,0xc0,0x0c,0xc3,0x0c,0xcb,0x4c,0xdb,0x6c,0xdb,0x6c,0xd8,0x6c,0xdc,0xec,0xcf,0xcc,0xc7,0x8c,0xc0,0x0c,0xff,0xfc,0x7f,0xf8 }; +const unsigned char c3[] PROGMEM = { 0x00,0x00,0x06,0x00,0x0c,0x00,0x18,0xf8,0x38,0xf0,0x30,0x30,0x70,0x60,0x70,0x78,0x78,0xf8,0x78,0x00,0x3c,0x02,0x3f,0x0c,0x1f,0xf8,0x0f,0xf0,0x03,0xc0,0x00,0x00 }; +const unsigned char c5[] PROGMEM = { 0x7f,0xf0,0xff,0xe0,0xc0,0x08,0xc0,0x1c,0xc0,0x38,0xc8,0x70,0xdc,0xe4,0xcf,0xcc,0xc7,0x8c,0xc3,0x0c,0xc0,0x0c,0xc0,0x0c,0xff,0xfc,0x7f,0xf8 }; +const unsigned char c6[] PROGMEM = { 0x1e,0x10,0x33,0x38,0x2d,0x7c,0x25,0x38,0x2d,0x38,0x25,0x38,0x2d,0x38,0x6d,0x80,0xde,0xc0,0xbf,0x40,0xbf,0x40,0xde,0xc0,0x61,0x80,0x3f,0x00 }; +const unsigned char c7[] PROGMEM = { 0x1f,0xe0,0x3f,0xf0,0x70,0x38,0x60,0x18,0x60,0x18,0x60,0x18,0xff,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xf8,0x7c,0xf8,0x7c,0xfc,0xfc,0x7f,0xf8 }; // width: 48, height: 48 const unsigned char c_OK[] PROGMEM = { 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xc0, 0x03, 0xff, 0xfe, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x03, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x01, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00, 0x20, 0x3f, 0xf8, 0x00, 0x00, 0x00, 0x70, 0x1f, 0xf8, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0xf0, 0x00, 0x00, 0x01, 0xf8, 0x0f, 0xf0, 0x00, 0x00, 0x03, 0xf0, 0x0f, 0xf0, 0x00, 0x00, 0x07, 0xe0, 0x0f, 0xf0, 0x00, 0x00, 0x0f, 0xc0, 0x0f, 0xe0, 0x00, 0x00, 0x1f, 0x80, 0x07, 0xe0, 0x01, 0x80, 0x3f, 0x00, 0x07, 0xe0, 0x03, 0xc0, 0x7e, 0x00, 0x07, 0xe0, 0x07, 0xe0, 0xfc, 0x00, 0x07, 0xe0, 0x03, 0xf1, 0xf8, 0x00, 0x07, 0xe0, 0x01, 0xff, 0xf0, 0x00, 0x07, 0xe0, 0x00, 0xff, 0xe0, 0x00, 0x07, 0xe0, 0x00, 0x7f, 0xc0, 0x00, 0x07, 0xf0, 0x00, 0x3f, 0x80, 0x00, 0x0f, 0xf0, 0x00, 0x1f, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x0e, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x04, 0x00, 0x00, 0x0f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x80, 0x00, 0x00, 0x01, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x03, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x7f, 0xff, 0xf0, 0x0f, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0 }; // width: 48, height: 48 @@ -276,7 +277,7 @@ Arduboy2 arduboy; #include // Firmware version -#define VERSION "v1.6L1" +#define VERSION "v1.6L+" // Type of rotary encoder #define ROTARY_TYPE 1 // 0: 2 increments/step; 1: 4 increments/step @@ -292,6 +293,7 @@ Arduboy2 arduboy; #define SWITCH_PIN 10 // handle vibration switch // Default temperature control values (recommended soldering temperature: 300-380°C) +#define ChipTempCalVal 330 //芯片内部温度读取校准值 -->可以根据实际情况修改,不同机器情况不同,通常误差在10°C内 #define TEMP_MIN 50 // min selectable temperature #define TEMP_MAX 400 // max selectable temperature #define TEMP_DEFAULT 320 // default start setpoint @@ -781,14 +783,14 @@ void MainScreen() { default: arduboy.print(F("ERROR")); break; } break; } - arduboy.drawSlowXYBitmap(112, 0, C_table[SysState], 16, 16, 0); + arduboy.drawSlowXYBitmap(113, 1, C_table[SysState], 14, 14, 0); arduboy.setTextSize(1); //芯片 //R1 - if (getChipTemp() >80 && ((millis()*4) / 1000) % 2) beep(); else arduboy.drawSlowXYBitmap(0, 16, Chip, 16, 16, 0); + if (getChipTemp() >80 && ((millis()*4) / 1000) % 2) beep(); else arduboy.drawSlowXYBitmap(2, 18, Chip, 14, 14, 0); //R2 - if ((float)Vin / 100 < UnderVoltage && ((millis()*4) / 1000) % 2) beep(); else arduboy.drawSlowXYBitmap(0, 32, Lightning, 16, 16, 0); + if ((float)Vin / 100 < UnderVoltage && ((millis()*4) / 1000) % 2) beep(); else arduboy.drawSlowXYBitmap(2, 34, Lightning, 14, 14, 0); //R3 arduboy.setCursor(19, 16); arduboy.print(getChipTemp(), 1); arduboy.print((char)248); arduboy.print(F("C")); //芯片温度 arduboy.setCursor(19, 24); arduboy.print((float)getVCC() / 1000, 2); arduboy.print(F("V")); //芯片电压 @@ -1227,8 +1229,23 @@ uint16_t denoiseAnalog (byte port) { return (result >> 5); // devide by 32 and return value } - +//读取芯片温度 // get internal temperature by reading ADC channel 8 against 1.1V reference +double getChipTemp() { +unsigned int wADC; +double t; +ADMUX = (_BV(REFS1) | _BV(REFS0) | _BV(MUX3)); +ADCSRA |= _BV(ADEN); +delay(5); +ADCSRA |= _BV(ADSC); +while (bit_is_set(ADCSRA,ADSC)); +wADC = ADCW; +t = (wADC - ChipTempCalVal ) / 1.22; +return (t); +} + +/* + * // get internal temperature by reading ADC channel 8 against 1.1V reference double getChipTemp() { uint16_t result = 0; ADCSRA |= bit (ADEN) | bit (ADIF); // enable ADC, turn off any pending interrupt @@ -1244,8 +1261,7 @@ double getChipTemp() { result >>= 2; // devide by 4 return ((result - 2594) / 9.76); // calculate internal temperature in degrees C } - - + */ // get input voltage in mV by reading 1.1V reference against AVcc uint16_t getVCC() { uint16_t result = 0; diff --git a/software/sources/SolderingStation2_arduboy_gplib_v1.7+.ino b/software/sources/SolderingStation2_arduboy_gplib_v1.7+.ino new file mode 100644 index 0000000..02c7584 --- /dev/null +++ b/software/sources/SolderingStation2_arduboy_gplib_v1.7+.ino @@ -0,0 +1,2124 @@ +/*License: http://creativecommons.org/licenses/by-sa/3.0/ + 采用CC3.0协议共享此程序 + 您可以自由地 + 共享 — 在任何媒介以任何形式复制、发行本作品 + 演绎 — 修改、转换或以本作品为基础进行创作 + 在任何用途下,甚至商业目的。 + 本许可协议为“自由文化作品(Free Cultural Works)”所接受。 + 只要你遵守许可协议条款,许可人就无法收回你的这些权利。 + + Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) + This is a human-readable summary of (and not a substitute for) the license. Disclaimer. + You are free to: + Share — copy and redistribute the material in any medium or format + Adapt — remix, transform, and build upon the material + for any purpose, even commercially. + This license is acceptable for Free Cultural Works. + The licensor cannot revoke these freedoms as long as you follow the license terms. +*/ +// SolderingStation2 +// +// ATmega328-controlled Soldering Station for Hakko T12 Tips. +// 此v1.7+版本功能简介 +// This 1.7+ version of the code implements: +// - 烙铁头温度实时监测 +// - Temperature measurement of the tip +// - PID温度控制 +// - Direct or PID control of the heater +// - 可以通过编码器进行控制温度 +// - Temperature control via rotary encoder +// - 短按编码器进入短时升温模式 +// - Boost mode by short pressing rotary encoder switch +// - 长按编码器进入主菜单 +// - Setup menu by long pressing rotary encoder switch +// - 手柄震动检测(需要手柄含有震动传感器) +// - Handle movement detection (by checking ball switch) +// - 手柄连接检测(通过判断烙铁头温度是否能够被读取来实现) +// - Iron unconnected detection (by idenfying invalid temperature readings) +// - 定时器设定 - 随眠,关机时间 +// - Time driven sleep/power off mode if iron is unused (movement detection) +// - 可以测量主控芯片电压以及温度 +// - Measurement of input voltage, Vcc and ATmega's internal temperature +// - 在OLED上实现信息显示 +// - Information display on OLED +// - 支持无源蜂鸣器 +// - Buzzer +// - 允许设置不同烙铁头的温度校准值 +// - Calibrating and managing different soldering tips +// - 设置被保存在EEPROM,掉电不丢失 +// - Storing user settings into the EEPROM +// - 允许热插拔烙铁头,并弹出烙铁头配置选择菜单 +// - Tip change detection +// - 芯片过热以及低电压报警 +// - Chip overheating and low voltage alarm +// - 更好的实时温度条以及实时功率条 +// - Better real-time temperature bar and real-time power bar +// - 拥有过渡动画 +// - Have transition animation +// - 内置屏幕保护程序 +// - Built in screen saver +// - 屏幕翻转设置 +// - Screen flip settings +// - 内置英文、中文、日文语言包 +// - Built in English, Chinese and Japanese language pack +// - 开机密码设置 +// - System Password + +// Power supply should be in the range of 16V/2A to 24V/3A and well +// stabilized. +// +// For calibration you need a soldering iron tips thermometer. For best results +// wait at least three minutes after switching on the soldering station before +// you start the calibration process. +// +// Controller: ATmega328p +// Core: Barebones ATmega (https://github.com/carlosefr/atmega) +// Clockspeed: 16 MHz external +// +// 2019/2020 by Stefan Wagner with great support from John Glavinos +// 2020-8 UI upgrade by LHW-createskyblue 、lihaoyun6 +// Project Page: https://easyeda.com/wagiminator + +//关于界面-项目页面二维码 ->为了加入欠压报警只能阉割掉关于页面的二维码 +//const unsigned char QRCode[] PROGMEM = { 0x00, 0x00, 0x3e, 0x0e, 0x7c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x0e, 0x7c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x0e, 0x7c, 0x0c, 0x00, 0x00, 0x1f, 0xfe, 0x3f, 0xc1, 0x8c, 0x0c, 0x7f, 0xf8, 0x1f, 0xfe, 0x3f, 0xc1, 0x8c, 0x0c, 0x7f, 0xf8, 0x18, 0x06, 0x30, 0x01, 0xf3, 0x8c, 0x60, 0x18, 0x18, 0x06, 0x30, 0x01, 0xf3, 0x8c, 0x60, 0x18, 0x18, 0x06, 0x30, 0x01, 0xf3, 0x8c, 0x60, 0x18, 0x18, 0x06, 0x3e, 0x0f, 0xf0, 0x0c, 0x60, 0x18, 0x18, 0x06, 0x3e, 0x0f, 0xf0, 0x0c, 0x60, 0x18, 0x18, 0x06, 0x3f, 0xc1, 0xf0, 0x0c, 0x60, 0x18, 0x18, 0x06, 0x3f, 0xc1, 0xf0, 0x0c, 0x60, 0x18, 0x18, 0x06, 0x3f, 0xc1, 0xf0, 0x0c, 0x60, 0x18, 0x1f, 0xfe, 0x3e, 0x30, 0x70, 0x0c, 0x7f, 0xf8, 0x1f, 0xfe, 0x3e, 0x30, 0x70, 0x0c, 0x7f, 0xf8, 0x00, 0x00, 0x31, 0xce, 0x73, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x31, 0xce, 0x73, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x31, 0xce, 0x73, 0x8c, 0x00, 0x00, 0xff, 0xff, 0xf0, 0x01, 0x83, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x01, 0x83, 0x8f, 0xff, 0xff, 0x00, 0xc0, 0x01, 0xc1, 0x8c, 0x00, 0x7f, 0x1f, 0x00, 0xc0, 0x01, 0xc1, 0x8c, 0x00, 0x7f, 0x1f, 0x00, 0xc0, 0x01, 0xc1, 0x8c, 0x00, 0x7f, 0x1f, 0x07, 0xc7, 0xcf, 0xce, 0x7f, 0x8c, 0x1f, 0xf8, 0x07, 0xc7, 0xcf, 0xce, 0x7f, 0x8c, 0x1f, 0xf8, 0x07, 0xc7, 0xcf, 0xce, 0x7f, 0x8c, 0x1f, 0xf8, 0xf8, 0x00, 0x3e, 0x3e, 0x03, 0xf0, 0x7f, 0x00, 0xf8, 0x00, 0x3e, 0x3e, 0x03, 0xf0, 0x7f, 0x00, 0xe0, 0xc7, 0xcf, 0xfe, 0x03, 0x80, 0x1f, 0xe7, 0xe0, 0xc7, 0xcf, 0xfe, 0x03, 0x80, 0x1f, 0xe7, 0xe0, 0xc7, 0xcf, 0xfe, 0x03, 0x80, 0x1f, 0xe7, 0x18, 0xc0, 0x31, 0xfe, 0x0c, 0x0c, 0x1c, 0xe0, 0x18, 0xc0, 0x31, 0xfe, 0x0c, 0x0c, 0x1c, 0xe0, 0xe7, 0x39, 0xf1, 0xf0, 0x03, 0xfc, 0x7c, 0xf8, 0xe7, 0x39, 0xf1, 0xf0, 0x03, 0xfc, 0x7c, 0xf8, 0xe7, 0x39, 0xf1, 0xf0, 0x03, 0xfc, 0x7c, 0xf8, 0x1f, 0x00, 0x31, 0xcf, 0xf3, 0x8c, 0x03, 0x00, 0x1f, 0x00, 0x31, 0xcf, 0xf3, 0x8c, 0x03, 0x00, 0xe0, 0x3f, 0xff, 0xc1, 0x83, 0x8f, 0x9c, 0xe7, 0xe0, 0x3f, 0xff, 0xc1, 0x83, 0x8f, 0x9c, 0xe7, 0xe0, 0x3f, 0xff, 0xc1, 0x83, 0x8f, 0x9c, 0xe7, 0x18, 0x00, 0x30, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x18, 0x00, 0x30, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x18, 0x00, 0x30, 0x0e, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xf0, 0x3e, 0x7c, 0x0f, 0xe0, 0x00, 0xff, 0xff, 0xf0, 0x3e, 0x7c, 0x0f, 0xe0, 0x00, 0x00, 0x00, 0x31, 0xce, 0x0c, 0x0c, 0x63, 0xe0, 0x00, 0x00, 0x31, 0xce, 0x0c, 0x0c, 0x63, 0xe0, 0x00, 0x00, 0x31, 0xce, 0x0c, 0x0c, 0x63, 0xe0, 0x1f, 0xfe, 0x30, 0x01, 0x83, 0x8f, 0xe0, 0xff, 0x1f, 0xfe, 0x30, 0x01, 0x83, 0x8f, 0xe0, 0xff, 0x18, 0x06, 0x31, 0xf1, 0x8f, 0x80, 0x03, 0xe7, 0x18, 0x06, 0x31, 0xf1, 0x8f, 0x80, 0x03, 0xe7, 0x18, 0x06, 0x31, 0xf1, 0x8f, 0x80, 0x03, 0xe7, 0x18, 0x06, 0x3f, 0xff, 0x83, 0x83, 0xe3, 0x1f, 0x18, 0x06, 0x3f, 0xff, 0x83, 0x83, 0xe3, 0x1f, 0x18, 0x06, 0x31, 0xfe, 0x73, 0x8f, 0x80, 0xf8, 0x18, 0x06, 0x31, 0xfe, 0x73, 0x8f, 0x80, 0xf8, 0x18, 0x06, 0x31, 0xfe, 0x73, 0x8f, 0x80, 0xf8, 0x1f, 0xfe, 0x31, 0xfe, 0x00, 0x0c, 0x60, 0xe7, 0x1f, 0xfe, 0x31, 0xfe, 0x00, 0x0c, 0x60, 0xe7, 0x00, 0x00, 0x31, 0xfe, 0x0c, 0x0f, 0x9f, 0xe0, 0x00, 0x00, 0x31, 0xfe, 0x0c, 0x0f, 0x9f, 0xe0, 0x00, 0x00, 0x31, 0xfe, 0x0c, 0x0f, 0x9f, 0xe0 }; +const unsigned char QRCode[] PROGMEM = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x03, 0x86, 0x70, 0x80, 0x03, 0x80, 0x03, 0x86, 0x70, 0x80, 0x03, 0x9f, 0xf3, 0xe1, 0x30, 0x9f, 0xf3, 0x9f, 0xf3, 0xe1, 0x30, 0x9f, 0xf3, 0x98, 0x33, 0x01, 0xcc, 0x98, 0x33, 0x98, 0x33, 0x01, 0xcc, 0x98, 0x33, 0x98, 0x33, 0x87, 0xc0, 0x98, 0x33, 0x98, 0x33, 0xe1, 0xc0, 0x98, 0x33, 0x98, 0x33, 0xe1, 0xc0, 0x98, 0x33, 0x9f, 0xf3, 0x98, 0xc0, 0x9f, 0xf3, 0x9f, 0xf3, 0x98, 0xc0, 0x9f, 0xf3, 0x80, 0x03, 0x66, 0xcc, 0x80, 0x03, 0x80, 0x03, 0x66, 0xcc, 0x80, 0x03, 0xff, 0xff, 0x01, 0x0c, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x1f, 0xff, 0x81, 0x00, 0x61, 0x30, 0x1f, 0x3f, 0x87, 0x3c, 0xe6, 0xfc, 0x87, 0x33, 0x87, 0x3c, 0xe6, 0xfc, 0x87, 0xf3, 0xf8, 0x03, 0x9e, 0x0f, 0x1f, 0x03, 0xf8, 0x03, 0x9e, 0x0f, 0x1f, 0x03, 0xe1, 0x3c, 0xfe, 0x0c, 0x07, 0xcf, 0xe1, 0x3c, 0xfe, 0x0c, 0x07, 0xcf, 0x99, 0x03, 0x3e, 0x30, 0x86, 0xc3, 0xe6, 0xcf, 0x38, 0x0f, 0x9e, 0xf3, 0xe6, 0xcf, 0x38, 0x0f, 0x9e, 0xf3, 0x9e, 0x03, 0x27, 0xcc, 0x81, 0x03, 0x9e, 0x03, 0x27, 0xcc, 0x81, 0x03, 0xe0, 0xff, 0xe1, 0x0c, 0xe6, 0xcf, 0xe0, 0xff, 0xe1, 0x0c, 0xe6, 0xcf, 0x98, 0x03, 0x06, 0x00, 0x00, 0xff, 0x98, 0x03, 0x06, 0x00, 0x00, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0xf8, 0x03, 0x80, 0x03, 0x66, 0x30, 0x99, 0xc3, 0x80, 0x03, 0x66, 0x30, 0x99, 0xc3, 0x9f, 0xf3, 0x01, 0x0c, 0xf8, 0xff, 0x9f, 0xf3, 0x01, 0x0c, 0xf8, 0xff, 0x98, 0x33, 0x39, 0x3c, 0x01, 0xcf, 0x98, 0x33, 0x39, 0x3c, 0x01, 0xcf, 0x98, 0x33, 0xff, 0x0c, 0x79, 0x3f, 0x98, 0x33, 0x3e, 0xcc, 0xe0, 0xf3, 0x98, 0x33, 0x3e, 0xcc, 0xe0, 0xf3, 0x9f, 0xf3, 0x3e, 0x00, 0x98, 0xcf, 0x9f, 0xf3, 0x3e, 0x00, 0x98, 0xcf, 0x80, 0x03, 0x3e, 0x30, 0xe7, 0xc3, 0x80, 0x03, 0x3e, 0x30, 0xe7, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; +//ICO +//width:16,height:16 +const unsigned char Tag[] PROGMEM = { 0x00, 0x00, 0x3b, 0xec, 0x7b, 0xee, 0x63, 0xe6, 0x63, 0xe6, 0x63, 0xe6, 0x63, 0xe6, 0x63, 0xe6, 0x63, 0xe6, 0x63, 0x66, 0x62, 0x26, 0x60, 0x06, 0x60, 0x06, 0x7f, 0xfe, 0x3f, 0xfc, 0x00, 0x00 }; +const unsigned char Chip[] PROGMEM = { 0x14, 0xa0, 0x3f, 0xf0, 0x7f, 0xf8, 0xe0, 0x1c, 0x6e, 0x18, 0xec, 0x1c, 0x68, 0x18, 0x60, 0x18, 0xe0, 0x1c, 0x60, 0x58, 0xe0, 0x1c, 0x7f, 0xf8, 0x3f, 0xf0, 0x14, 0xa0 }; +//const unsigned char HeatPipe[] PROGMEM = { 0x00, 0x00, 0x09, 0x90, 0x11, 0x88, 0x21, 0x84, 0x11, 0x88, 0x09, 0x90, 0x11, 0x88, 0x21, 0x84, 0x11, 0x88, 0x09, 0x90, 0x11, 0x88, 0x21, 0x84, 0x11, 0x88, 0x09, 0x90, 0x01, 0x80, 0x00, 0x00 }; +const unsigned char Lightning[] PROGMEM = { 0x0f, 0xe0, 0x1f, 0xc0, 0x1f, 0xc0, 0x3f, 0x80, 0x3f, 0xf8, 0x7f, 0xf0, 0x7f, 0xe0, 0x07, 0xc0, 0x07, 0x80, 0x0f, 0x00, 0x0e, 0x00, 0x1c, 0x00, 0x18, 0x00, 0x10, 0x00 }; +//const unsigned char Thermometer[] PROGMEM = { 0x01, 0x80, 0x02, 0x40, 0x03, 0x40, 0x02, 0x40, 0x03, 0x40, 0x02, 0x40, 0x03, 0x40, 0x02, 0x40, 0x03, 0x40, 0x03, 0xc0, 0x03, 0xc0, 0x03, 0xc0, 0x07, 0xe0, 0x07, 0xe0, 0x07, 0xe0, 0x03, 0xc0 }; +const unsigned char Pointer[] PROGMEM = { 0x20, 0x20, 0x70, 0xf8 }; +//状态提示 +//width:14,height:14 图标库 + +const unsigned char c1[] PROGMEM = { 0x03, 0x00, 0x07, 0x80, 0x0f, 0xc0, 0x0c, 0xc0, 0x1c, 0xe0, 0x1c, 0xe0, 0x3c, 0xf0, 0x3c, 0xf0, 0x7f, 0xf8, 0x7f, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xff, 0xfc, 0x7f, 0xf8 }; +const unsigned char c2[] PROGMEM = { 0x7f, 0xf8, 0xff, 0xfc, 0xc0, 0x0c, 0xc3, 0x0c, 0xcb, 0x4c, 0xdb, 0x6c, 0xdb, 0x6c, 0xd8, 0x6c, 0xdc, 0xec, 0xcf, 0xcc, 0xc7, 0x8c, 0xc0, 0x0c, 0xff, 0xfc, 0x7f, 0xf8 }; +const unsigned char c3[] PROGMEM = { 0x00, 0x00, 0x06, 0x00, 0x0c, 0x00, 0x18, 0xf8, 0x38, 0xf0, 0x30, 0x30, 0x70, 0x60, 0x70, 0x78, 0x78, 0xf8, 0x78, 0x00, 0x3c, 0x02, 0x3f, 0x0c, 0x1f, 0xf8, 0x0f, 0xf0, 0x03, 0xc0, 0x00, 0x00 }; +const unsigned char c5[] PROGMEM = { 0x7f, 0xf0, 0xff, 0xe0, 0xc0, 0x08, 0xc0, 0x1c, 0xc0, 0x38, 0xc8, 0x70, 0xdc, 0xe4, 0xcf, 0xcc, 0xc7, 0x8c, 0xc3, 0x0c, 0xc0, 0x0c, 0xc0, 0x0c, 0xff, 0xfc, 0x7f, 0xf8 }; +const unsigned char c6[] PROGMEM = { 0x1e, 0x10, 0x33, 0x38, 0x2d, 0x7c, 0x25, 0x38, 0x2d, 0x38, 0x25, 0x38, 0x2d, 0x38, 0x6d, 0x80, 0xde, 0xc0, 0xbf, 0x40, 0xbf, 0x40, 0xde, 0xc0, 0x61, 0x80, 0x3f, 0x00 }; +const unsigned char c7[] PROGMEM = { 0x1f, 0xe0, 0x3f, 0xf0, 0x70, 0x38, 0x60, 0x18, 0x60, 0x18, 0x60, 0x18, 0xff, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0x7c, 0xf8, 0x7c, 0xfc, 0xfc, 0x7f, 0xf8 }; +const unsigned char c_NO[] PROGMEM = { 0x80, 0x04, 0x00, 0x00, 0x3f, 0xf0, 0x37, 0xb0, 0x23, 0x10, 0x30, 0x30, 0x38, 0x70, 0x38, 0x70, 0x30, 0x30, 0x23, 0x10, 0x37, 0xb0, 0x3f, 0xf0, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char *C_table[] = {c1, c2, c3, Lightning, c5, c6, c7}; + +//设置(陈星汉认为语言是一种低像素的表达方式,容易造成隔阂; 交互界面设计尽可能形象化) +// width: 14, height: 14 +const unsigned char QRC[] PROGMEM = { 0x05, 0x80, 0x74, 0xb8, 0x57, 0xa8, 0x76, 0xb8, 0x05, 0x80, 0xf9, 0x7c, 0x46, 0x94, 0xaa, 0xa8, 0xf9, 0x7c, 0x06, 0x88, 0x74, 0xa8, 0x57, 0x8c, 0x75, 0x74, 0x06, 0x98 }; +const unsigned char Set0[] PROGMEM = { 0x88, 0x24, 0x08, 0x20, 0x38, 0x30, 0x38, 0x30, 0x38, 0x30, 0x38, 0x30, 0x38, 0x30, 0x38, 0x30, 0x39, 0x30, 0x3b, 0xb0, 0x3f, 0xf0, 0x3f, 0xf0, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char Set1[] PROGMEM = { 0xf8, 0x7c, 0xf3, 0x3c, 0xf4, 0xbc, 0xf6, 0xbc, 0xf4, 0xbc, 0xf6, 0xbc, 0xf4, 0xbc, 0xe4, 0x9c, 0xc8, 0x4c, 0xd0, 0x2c, 0xd0, 0x2c, 0xc8, 0x4c, 0xe7, 0x9c, 0xf0, 0x3c }; +const unsigned char Set2[] PROGMEM = { 0x8f, 0xc4, 0x10, 0x20, 0x20, 0x10, 0x4c, 0xc8, 0x9f, 0xe4, 0x3d, 0xf0, 0x3d, 0xf0, 0x1d, 0xe0, 0x3e, 0xf0, 0x3f, 0x70, 0x9f, 0xe4, 0x8c, 0xc4, 0x00, 0x00, 0x30, 0x30 }; +const unsigned char Set3[] PROGMEM = { 0xc3, 0xfc, 0x18, 0x00, 0x18, 0x00, 0xc3, 0xfc, 0xff, 0xfc, 0xff, 0x0c, 0x00, 0x60, 0x00, 0x60, 0xff, 0x0c, 0xff, 0xfc, 0xf0, 0xfc, 0x06, 0x00, 0x06, 0x00, 0xf0, 0xfc }; +const unsigned char Set4[] PROGMEM = { 0x80, 0x04, 0x00, 0x00, 0x20, 0x00, 0x10, 0x00, 0x08, 0x00, 0x10, 0x00, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char Set4F[] PROGMEM = { 0x80, 0x04, 0x00, 0x00, 0x3f, 0xf0, 0x38, 0x30, 0x33, 0x10, 0x3f, 0x90, 0x38, 0x10, 0x33, 0x90, 0x27, 0x90, 0x26, 0x10, 0x30, 0x90, 0x3f, 0xf0, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char Set4FF[] PROGMEM = { 0x80, 0x04, 0x00, 0x00, 0x3f, 0xf0, 0x24, 0x30, 0x21, 0x90, 0x27, 0x90, 0x27, 0x30, 0x20, 0x70, 0x27, 0xf0, 0x23, 0x30, 0x30, 0x70, 0x3f, 0xf0, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char Set5[] PROGMEM = { 0xfc, 0xfc, 0xf8, 0x7c, 0xe0, 0x1c, 0xc0, 0x0c, 0xc0, 0x0c, 0xc0, 0x0c, 0xc0, 0x0c, 0xc0, 0x0c, 0xc0, 0x0c, 0x80, 0x04, 0x80, 0x04, 0xff, 0xfc, 0xf8, 0x7c, 0xfc, 0xfc }; +const unsigned char Set5_1[] PROGMEM = { 0xfc, 0xf4, 0xf8, 0x60, 0xe0, 0x44, 0xc0, 0x8c, 0xc1, 0x1c, 0xc2, 0x2c, 0xc4, 0x4c, 0xc8, 0x8c, 0xd1, 0x0c, 0xa2, 0x04, 0xc4, 0x04, 0x8f, 0xfc, 0x18, 0x7c, 0xbc, 0xfc }; +const unsigned char Set6[] PROGMEM = { 0xf8, 0x7c, 0xe0, 0x1c, 0xc0, 0x0c, 0xcf, 0xcc, 0xcf, 0xcc, 0xcf, 0xcc, 0xcf, 0xcc, 0xcf, 0xcc, 0xcf, 0xcc, 0xcf, 0xcc, 0xc8, 0x4c, 0xcf, 0xcc, 0xc0, 0x0c, 0xe0, 0x1c }; +const unsigned char Set_LANG[] PROGMEM = { 0xf0, 0x3c, 0xce, 0x4c, 0xbc, 0x34, 0xb8, 0x14, 0x18, 0x80, 0x10, 0x80, 0x42, 0x30, 0x60, 0x78, 0x60, 0xf8, 0x44, 0xc0, 0x80, 0x04, 0xb8, 0x84, 0xcf, 0xcc, 0xf0, 0x3c }; +const unsigned char Set7[] PROGMEM = { 0x80, 0x0c, 0x00, 0x1c, 0x3f, 0xf4, 0x3f, 0xe0, 0x3f, 0xc4, 0x37, 0x8c, 0x23, 0x18, 0x30, 0x30, 0x38, 0x70, 0x3c, 0xf0, 0x3f, 0xf0, 0x3f, 0xf0, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char Set11[] PROGMEM = { 0xf3, 0xfc, 0xe7, 0xfc, 0xce, 0x0c, 0x8e, 0x1c, 0x9f, 0x9c, 0x1f, 0x3c, 0x1f, 0x0c, 0x0e, 0x0c, 0x0f, 0xfc, 0x87, 0xf8, 0x81, 0xe4, 0xc0, 0x0c, 0xe0, 0x1c, 0xf8, 0x7c }; +const unsigned char Set8[] PROGMEM = { 0x81, 0xdc, 0x55, 0x9c, 0x29, 0x04, 0x55, 0x00, 0x29, 0x90, 0x55, 0xd0, 0x03, 0xfc, 0xff, 0x00, 0x2e, 0x00, 0x26, 0x70, 0x02, 0x50, 0x82, 0x70, 0xe6, 0x00, 0xee, 0x04 }; +const unsigned char Set9[] PROGMEM = { 0xf0, 0x3c, 0xce, 0x0c, 0xbf, 0x04, 0xb3, 0x04, 0x73, 0x00, 0x7f, 0x00, 0x7e, 0x00, 0x7c, 0x00, 0x7c, 0x00, 0x7c, 0x60, 0xbc, 0x64, 0xbe, 0x04, 0xcf, 0x0c, 0xf0, 0x3c }; +const unsigned char Set10[] PROGMEM = { 0xf8, 0x7c, 0xf7, 0xbc, 0x00, 0x00, 0x7f, 0xf8, 0x00, 0x00, 0xbf, 0xf4, 0xab, 0x54, 0xab, 0x54, 0xab, 0x54, 0xab, 0x54, 0xab, 0x54, 0xab, 0x54, 0xbf, 0xf4, 0xc0, 0x0c }; +const unsigned char Set13[] PROGMEM = { 0x80, 0x04, 0x00, 0x00, 0x3f, 0xf0, 0x3c, 0xf0, 0x34, 0xb0, 0x24, 0x90, 0x24, 0x90, 0x27, 0x90, 0x23, 0x10, 0x30, 0x30, 0x38, 0x70, 0x3f, 0xf0, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char Set12[] PROGMEM = { 0x80, 0x04, 0x00, 0x00, 0x3f, 0xf0, 0x3c, 0xf0, 0x3c, 0xf0, 0x3c, 0xf0, 0x20, 0x10, 0x20, 0x10, 0x3c, 0xf0, 0x3c, 0xf0, 0x3c, 0xf0, 0x3f, 0xf0, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char Set14[] PROGMEM = { 0xff, 0x7c, 0xfe, 0x7c, 0xfc, 0xec, 0xe8, 0xdc, 0xc8, 0x4c, 0x98, 0x4c, 0x88, 0x24, 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x04, 0xe0, 0x1c }; +const unsigned char Set15[] PROGMEM = { 0x15, 0x54, 0x3f, 0xfc, 0x15, 0x54, 0x3f, 0xfc, 0x15, 0x54, 0x3c, 0x04, 0x14, 0x04, 0x3c, 0xfc, 0x14, 0x54, 0x3c, 0xfc, 0x00, 0x54, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char Set16[] PROGMEM = { 0x15, 0x54, 0x3f, 0xf8, 0x15, 0x50, 0x3f, 0xf0, 0x15, 0x50, 0x38, 0x70, 0x10, 0x20, 0x31, 0x04, 0x13, 0x8c, 0x22, 0xa8, 0x17, 0xfc, 0x2a, 0xa8, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char Set17[] PROGMEM = { 0x80, 0x00, 0xbf, 0xf8, 0x1f, 0xf8, 0xb0, 0x08, 0x18, 0x08, 0xb9, 0xe8, 0x19, 0xb8, 0xb8, 0x38, 0x18, 0x38, 0xb9, 0xb8, 0xb9, 0xf8, 0xb0, 0xf8, 0xbf, 0xf8, 0x80, 0x00 }; +const unsigned char Set18[] PROGMEM = { 0x80, 0x00, 0xbf, 0xf8, 0x1f, 0xf8, 0xb0, 0x28, 0x1f, 0xf8, 0xb4, 0x08, 0x1f, 0xf8, 0xb1, 0x08, 0x1f, 0xf8, 0xb0, 0x48, 0xbf, 0xf8, 0xb2, 0x88, 0xbf, 0xf8, 0x80, 0x00 }; +const unsigned char Lang_CN[] PROGMEM = { 0x80, 0x04, 0x00, 0x00, 0x3f, 0xf0, 0x3c, 0xf0, 0x3c, 0xf0, 0x20, 0x10, 0x24, 0x90, 0x24, 0x90, 0x20, 0x10, 0x3c, 0xf0, 0x3c, 0xf0, 0x3f, 0xf0, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char Lang_EN[] PROGMEM = { 0x80, 0x04, 0x00, 0x00, 0x3f, 0xf0, 0x38, 0x70, 0x30, 0x30, 0x23, 0x10, 0x27, 0x90, 0x20, 0x10, 0x20, 0x10, 0x27, 0x90, 0x27, 0x90, 0x3f, 0xf0, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char Lang_JP[] PROGMEM = { 0x80, 0x04, 0x00, 0x00, 0x3f, 0xf0, 0x3d, 0xf0, 0x20, 0x10, 0x3b, 0xf0, 0x3b, 0x70, 0x30, 0x30, 0x2b, 0x50, 0x2a, 0xd0, 0x31, 0xb0, 0x3f, 0xf0, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char Save[] PROGMEM = { 0x00, 0x04, 0x58, 0x08, 0x58, 0x08, 0x58, 0x08, 0x40, 0x08, 0x7f, 0xf8, 0x60, 0x18, 0x5f, 0xe8, 0x5b, 0x68, 0x5f, 0xe8, 0x5b, 0x68, 0x1c, 0xe8, 0x5f, 0xe8, 0x00, 0x00 }; +const unsigned char Lock[] PROGMEM = { 0xe0, 0x1c, 0xc0, 0x0c, 0x8f, 0xc4, 0x9f, 0xe4, 0x9f, 0xe4, 0x9f, 0xe4, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x07, 0x80, 0x07, 0x80, 0x03, 0x00, 0x80, 0x04 }; +const unsigned char *Ico_table[] = { + Set0, Set1, Set2, Set3, Set4, Set5, Set6, Lock, Set_LANG, QRC, Set7, + Set8, Set9, Set0, Set10, Set12, Save, + Set0, Set11, Set14, Save, + Set11, Set13, Set14, Save, + Set15, Set16, + Set17, Set18, //5 + Set5_1, Set5, + c_NO, Set7, + Lang_CN, Lang_EN, Lang_JP, //8 + Set4, Set4F, Save, +}; +const byte Menu_table[] = {11, 6, 4, 4, 2, 2, 2, 2, 3, 3}; //菜单 标签 温控 定时 控制方式 首页 蜂鸣器 标签删除确认界面 语言菜单 翻转 显示 +byte MenuLevel = 0; //菜单层级 + +/*//////////////////////////////////////////////////////////////////////////////////////////////////// + 多语言支持 + Multilingual support + /////////////////////////////////////////////////////////////////////////////////////////////////// +*/ +/* + 英语库 ENGLISH +*/ +const char EN_0[] PROGMEM = "Tip"; +const char EN_1[] PROGMEM = "Temp"; +const char EN_2[] PROGMEM = "Timer"; +const char EN_3[] PROGMEM = "Control"; +const char EN_4[] PROGMEM = "Screen"; +const char EN_5[] PROGMEM = "Buzzer"; +const char EN_6[] PROGMEM = "LOW Vol"; +const char EN_7[] PROGMEM = "Lang"; +const char EN_8[] PROGMEM = "Return"; +const char EN_9[] PROGMEM = "Change"; +const char EN_10[] PROGMEM = "Calibrate"; +const char EN_11[] PROGMEM = "Rename"; +const char EN_12[] PROGMEM = "Delete"; +const char EN_13[] PROGMEM = "Add"; +const char EN_14[] PROGMEM = "Save"; +const char EN_15[] PROGMEM = "Default"; +const char EN_16[] PROGMEM = "Sleep"; +const char EN_17[] PROGMEM = "Boost"; +const char EN_18[] PROGMEM = "Save"; +const char EN_19[] PROGMEM = "Sleep"; +const char EN_20[] PROGMEM = "Off"; +const char EN_21[] PROGMEM = "Boost"; +const char EN_22[] PROGMEM = "Save"; +const char EN_23[] PROGMEM = "Direct"; +const char EN_24[] PROGMEM = "PID"; +const char EN_25[] PROGMEM = "Big"; +const char EN_26[] PROGMEM = "Infos"; +const char EN_27[] PROGMEM = "OFF"; +const char EN_28[] PROGMEM = "ON"; +const char EN_29[] PROGMEM = "NO"; +const char EN_30[] PROGMEM = "YES"; +const char EN_31[] PROGMEM = "CN"; +const char EN_32[] PROGMEM = "EN"; +const char EN_33[] PROGMEM = "NO"; +const char EN_34[] PROGMEM = "OK"; +const char EN_35[] PROGMEM = "Main Screen"; +const char EN_36[] PROGMEM = "Flip"; +const char EN_37[] PROGMEM = "Save"; +const char EN_38[] PROGMEM = "About"; +const char EN_39[] PROGMEM = "JP"; +const char EN_40[] PROGMEM = "Lock"; +const char *const EN_table[] PROGMEM = {EN_0, EN_1, EN_2, EN_3, EN_4, EN_5, EN_6, EN_40, EN_7, EN_38, EN_8, EN_9, EN_10, EN_11, EN_12, EN_13, EN_14, EN_15, EN_16, EN_17, EN_18, EN_19, EN_20, EN_21, EN_22, EN_23, EN_24, EN_25, EN_26, EN_27, EN_28, EN_29, EN_30, EN_31, EN_32, EN_39, EN_35, EN_36, EN_37,}; + +/* + #!/usr/bin/python + # -*- coding: UTF-8 -*- + for num in range(0,38): + print("EN_",end="") + print(num,end='') + print(",",end="") +*/ +/* + 中文语言库 CHINESE + + //////////////////////////////////////////////////////////////////////////////////////////////////////// + 本地化提示:你可以按照位图的大小,把这里的文字位图替换成你的语言,确保位图分辨率一致即可,我们欢迎你把程序翻译为你当地的语言! + Localization tips: you can according to the size of the bitmap, + replace the text bitmap here with your language, + ensure that the bitmap resolution is consistent, + we welcome you to translate the program into your local language! + //////////////////////////////////////////////////////////////////////////////////////////////////////// +*/ +//width:28,height:14 主界面中文提示 +//Main Screen +//错误-ERROR +const unsigned char S1[] PROGMEM = { 0x20, 0x92, 0x1f, 0xc0, 0x3d, 0xf9, 0x90, 0x40, 0x20, 0x90, 0x90, 0x40, 0x40, 0x90, 0x1f, 0xc0, 0x7b, 0xff, 0x00, 0x00, 0xa0, 0x01, 0x3f, 0xe0, 0x21, 0xf9, 0x02, 0x00, 0xfd, 0x09, 0x02, 0x00, 0x21, 0x09, 0x7f, 0xf0, 0x21, 0xf9, 0x05, 0x00, 0x21, 0x09, 0x45, 0x00, 0x29, 0x09, 0x88, 0x80, 0x31, 0xf9, 0x10, 0x70, 0x21, 0x08, 0x20, 0x20 }; +//关机-OFF +const unsigned char S2[] PROGMEM = { 0x10, 0x40, 0x47, 0xc0, 0x17, 0xfc, 0x44, 0x40, 0x20, 0x03, 0xf4, 0x40, 0x23, 0xf8, 0x44, 0x40, 0x62, 0x08, 0xc4, 0x40, 0xa3, 0xf8, 0xe4, 0x40, 0x20, 0x01, 0x54, 0x40, 0x2f, 0xfd, 0x44, 0x40, 0x28, 0x06, 0x44, 0x40, 0x23, 0xf8, 0x44, 0x40, 0x20, 0x40, 0x44, 0x50, 0x20, 0x40, 0x48, 0x50, 0x21, 0x40, 0x50, 0x30, 0x20, 0x80, 0x40, 0x00 }; +//休眠-SLEEP +const unsigned char S3[] PROGMEM = { 0x10, 0x83, 0xdf, 0xc0, 0x10, 0x82, 0x50, 0x40, 0x20, 0x82, 0x50, 0x40, 0x2f, 0xff, 0xdf, 0xc0, 0x60, 0x82, 0x52, 0x00, 0x61, 0xc2, 0x52, 0x00, 0xa1, 0xc2, 0x5f, 0xe0, 0x22, 0xa3, 0xd2, 0x00, 0x22, 0xa2, 0x51, 0x00, 0x24, 0x92, 0x51, 0x00, 0x28, 0x8e, 0x50, 0x90, 0x30, 0x8b, 0xd4, 0x50, 0x20, 0x82, 0x58, 0x30, 0x20, 0x80, 0x10, 0x10 }; +//提温-BOOST +const unsigned char S4[] PROGMEM = { 0x23, 0xf2, 0x1f, 0xc0, 0x22, 0x11, 0x10, 0x40, 0xfb, 0xf0, 0x90, 0x40, 0x22, 0x12, 0x1f, 0xc0, 0x2a, 0x11, 0x10, 0x40, 0x33, 0xf1, 0x10, 0x40, 0x60, 0x00, 0x5f, 0xc0, 0xaf, 0xfc, 0x80, 0x00, 0x20, 0x41, 0x3f, 0xe0, 0x22, 0x43, 0x25, 0x20, 0x22, 0x79, 0x25, 0x20, 0x22, 0x41, 0x25, 0x20, 0xa5, 0x41, 0x25, 0x20, 0x48, 0xfd, 0x7f, 0xf0 }; +//正常工作-WORKY +const unsigned char S5[] PROGMEM = { 0x7f, 0xf8, 0x48, 0x80, 0x02, 0x00, 0x49, 0x00, 0x02, 0x01, 0xff, 0xf0, 0x02, 0x01, 0x00, 0x10, 0x02, 0x02, 0x7f, 0x20, 0x22, 0x00, 0x41, 0x00, 0x23, 0xf0, 0x7f, 0x00, 0x22, 0x00, 0x08, 0x00, 0x22, 0x00, 0xff, 0x80, 0x22, 0x00, 0x88, 0x80, 0x22, 0x00, 0x88, 0x80, 0x22, 0x00, 0x8a, 0x80, 0x22, 0x00, 0x89, 0x00, 0xff, 0xfc, 0x08, 0x00 }; +//加热-HEAT +const unsigned char S6[] PROGMEM = { 0x0f, 0x42, 0x1f, 0xc0, 0x78, 0x41, 0x10, 0x40, 0x08, 0x40, 0x90, 0x40, 0x08, 0x42, 0x1f, 0xc0, 0x08, 0x41, 0x10, 0x40, 0xff, 0xfd, 0x10, 0x40, 0x08, 0x40, 0x5f, 0xc0, 0x08, 0x40, 0x80, 0x00, 0x08, 0x41, 0x3f, 0xe0, 0x08, 0x43, 0x25, 0x20, 0x10, 0x41, 0x25, 0x20, 0x10, 0x41, 0x25, 0x20, 0x20, 0x41, 0x25, 0x20, 0x40, 0x41, 0x7f, 0xf0 }; +//维持-HOLD +const unsigned char S7[] PROGMEM = { 0x11, 0x40, 0x82, 0x00, 0x21, 0x20, 0x8f, 0xe0, 0x23, 0xfc, 0x82, 0x00, 0x4a, 0x23, 0xe2, 0x00, 0xfe, 0x20, 0x9f, 0xf0, 0x13, 0xf8, 0x80, 0x80, 0x22, 0x20, 0xc0, 0x80, 0x42, 0x21, 0xbf, 0xf0, 0xfb, 0xfa, 0x88, 0x80, 0x02, 0x20, 0x84, 0x80, 0x02, 0x20, 0x84, 0x80, 0x1a, 0x20, 0x80, 0x80, 0xe3, 0xfe, 0x82, 0x80, 0x02, 0x01, 0x01, 0x00 }; +const unsigned char *S_table[] = {S1, S2, S3, S4, S5, S6, S7}; + +// 菜单 width:36,height:16 +//MENU Oj +/* + The order here(↓) can refer to EN_table(↑↑↑) +*/ +const unsigned char t0[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x7f, 0x90, 0xf8, 0x00, 0x01, 0x08, 0x08, 0x88, 0x00, 0x0a, 0x10, 0x08, 0x88, 0x00, 0x04, 0x7f, 0x01, 0x07, 0x00, 0x1f, 0xc1, 0x3a, 0x00, 0x00, 0x05, 0x49, 0x09, 0xfc, 0x00, 0x04, 0x49, 0x08, 0x84, 0x00, 0x04, 0x49, 0x08, 0x88, 0x00, 0x04, 0x49, 0x08, 0x48, 0x00, 0x04, 0x49, 0x08, 0x50, 0x00, 0x04, 0x49, 0x0a, 0x20, 0x00, 0x04, 0x16, 0x0c, 0x58, 0x00, 0x14, 0x21, 0x89, 0x87, 0x00, 0x08, 0xc0, 0x86, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t1[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xfe, 0x08, 0x20, 0x00, 0x08, 0x82, 0x0b, 0xff, 0x00, 0x04, 0x82, 0x0a, 0x01, 0x00, 0x10, 0xfe, 0x3c, 0x51, 0x00, 0x08, 0x82, 0x08, 0x88, 0x00, 0x08, 0x82, 0x09, 0x04, 0x00, 0x02, 0xfe, 0x0c, 0x00, 0x00, 0x04, 0x00, 0x19, 0xfc, 0x00, 0x09, 0xff, 0x28, 0x20, 0x00, 0x19, 0x29, 0x08, 0x20, 0x00, 0x09, 0x29, 0x08, 0x20, 0x00, 0x09, 0x29, 0x08, 0x20, 0x00, 0x09, 0x29, 0x2b, 0xff, 0x00, 0x0b, 0xff, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t2[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x20, 0x3e, 0x04, 0x00, 0x1f, 0xff, 0xa2, 0x04, 0x00, 0x10, 0x00, 0xa2, 0xff, 0x00, 0x00, 0x01, 0x22, 0x04, 0x00, 0x0f, 0xfe, 0x22, 0x04, 0x00, 0x00, 0x40, 0x3e, 0x44, 0x00, 0x00, 0x40, 0x22, 0x24, 0x00, 0x04, 0x40, 0x22, 0x24, 0x00, 0x04, 0x7c, 0x22, 0x04, 0x00, 0x04, 0x40, 0x22, 0x04, 0x00, 0x0a, 0x40, 0x3e, 0x04, 0x00, 0x09, 0x40, 0x22, 0x24, 0x00, 0x10, 0xff, 0x80, 0x14, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00 }; +const unsigned char t3[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x10, 0x12, 0x02, 0x00, 0x05, 0xff, 0x9f, 0xd2, 0x00, 0x05, 0x00, 0x92, 0x12, 0x00, 0x1e, 0x28, 0xa2, 0x12, 0x00, 0x04, 0x44, 0x3f, 0xf2, 0x00, 0x04, 0x82, 0x02, 0x12, 0x00, 0x06, 0x00, 0x02, 0x12, 0x00, 0x0c, 0xfe, 0x1f, 0xd2, 0x00, 0x14, 0x10, 0x12, 0x52, 0x00, 0x04, 0x10, 0x12, 0x42, 0x00, 0x04, 0x10, 0x13, 0x42, 0x00, 0x04, 0x10, 0x12, 0x82, 0x00, 0x15, 0xff, 0x82, 0x0a, 0x00, 0x08, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t4[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xfe, 0x0f, 0xf8, 0x00, 0x04, 0x02, 0x00, 0x00, 0x00, 0x04, 0x02, 0x00, 0x00, 0x00, 0x07, 0xfe, 0x00, 0x00, 0x00, 0x04, 0x02, 0x3f, 0xfe, 0x00, 0x04, 0x02, 0x00, 0x80, 0x00, 0x07, 0xfe, 0x00, 0x80, 0x00, 0x00, 0x90, 0x04, 0x90, 0x00, 0x08, 0x91, 0x0c, 0x88, 0x00, 0x06, 0x93, 0x10, 0x86, 0x00, 0x02, 0x94, 0x20, 0x82, 0x00, 0x00, 0x90, 0x00, 0x80, 0x00, 0x00, 0x90, 0x02, 0x80, 0x00, 0x1f, 0xff, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t5[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x80, 0x00, 0x1f, 0xff, 0x9f, 0xfc, 0x00, 0x00, 0x40, 0x04, 0x10, 0x00, 0x0f, 0xff, 0x02, 0x20, 0x00, 0x00, 0x00, 0x3f, 0xff, 0x00, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x08, 0x42, 0x0f, 0xf8, 0x00, 0x08, 0x42, 0x08, 0x08, 0x00, 0x0f, 0xfe, 0x08, 0x08, 0x00, 0x08, 0x02, 0x0f, 0xf8, 0x00, 0x08, 0x00, 0x08, 0x08, 0x00, 0x08, 0x00, 0x08, 0x08, 0x00, 0x08, 0x00, 0x0f, 0xf8, 0x00, 0x10, 0x00, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t6[] PROGMEM = { 0x09, 0xff, 0x00, 0x40, 0x00, 0x04, 0x20, 0x3f, 0xff, 0x00, 0x04, 0x20, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x1c, 0x42, 0x0f, 0xfc, 0x00, 0x04, 0x42, 0x00, 0x00, 0x00, 0x07, 0xff, 0x80, 0x00, 0x00, 0x04, 0x00, 0x0f, 0xfc, 0x00, 0x04, 0xff, 0x00, 0x00, 0x00, 0x04, 0x81, 0x00, 0x00, 0x00, 0x05, 0x81, 0x0f, 0xfc, 0x00, 0x06, 0x81, 0x08, 0x04, 0x00, 0x04, 0xff, 0x08, 0x04, 0x00, 0x00, 0x81, 0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +const unsigned char t7[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0f, 0xfe, 0x00, 0x01, 0x00, 0x08, 0x20, 0x00, 0x03, 0xff, 0x08, 0x20, 0x00, 0x02, 0x01, 0x08, 0x20, 0x00, 0x04, 0x22, 0x08, 0x20, 0x00, 0x08, 0x20, 0x0b, 0xfe, 0x00, 0x10, 0x20, 0x08, 0x20, 0x00, 0x00, 0x50, 0x08, 0x28, 0x00, 0x00, 0x50, 0x08, 0x24, 0x00, 0x00, 0x88, 0x08, 0x22, 0x00, 0x00, 0x88, 0x10, 0x20, 0x00, 0x01, 0x04, 0x10, 0x20, 0x00, 0x02, 0x03, 0xa7, 0xff, 0x00, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char Back[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x07, 0x00, 0x00, 0x00, 0x08, 0xf8, 0x3f, 0xfe, 0x00, 0x04, 0x80, 0x20, 0x02, 0x00, 0x00, 0x80, 0x20, 0x02, 0x00, 0x00, 0xbe, 0x23, 0xe2, 0x00, 0x1c, 0x82, 0x22, 0x22, 0x00, 0x04, 0xa4, 0x22, 0x22, 0x00, 0x04, 0x94, 0x22, 0x22, 0x00, 0x04, 0x88, 0x22, 0x22, 0x00, 0x04, 0x94, 0x23, 0xe2, 0x00, 0x05, 0x22, 0x20, 0x02, 0x00, 0x05, 0x42, 0x20, 0x02, 0x00, 0x0a, 0x00, 0x3f, 0xfe, 0x00, 0x11, 0xff, 0xa0, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +const unsigned char t1_1[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x08, 0x20, 0x90, 0x00, 0x02, 0x7f, 0x98, 0x90, 0x00, 0x1f, 0x80, 0x09, 0xff, 0x00, 0x02, 0x22, 0x01, 0x10, 0x00, 0x06, 0x21, 0x8b, 0x10, 0x00, 0x07, 0x62, 0x8d, 0xfe, 0x00, 0x0a, 0xa2, 0x09, 0x10, 0x00, 0x0a, 0x14, 0x11, 0x10, 0x00, 0x12, 0x14, 0x31, 0xfe, 0x00, 0x02, 0x08, 0x11, 0x10, 0x00, 0x02, 0x14, 0x11, 0x10, 0x00, 0x02, 0x22, 0x11, 0x10, 0x00, 0x02, 0x43, 0x91, 0xff, 0x00, 0x02, 0x81, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t1_2[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x80, 0x00, 0x00, 0x50, 0x01, 0xfc, 0x00, 0x00, 0x88, 0x01, 0x04, 0x00, 0x01, 0x04, 0x03, 0x08, 0x00, 0x06, 0xfb, 0x04, 0x90, 0x00, 0x08, 0x00, 0xc0, 0x60, 0x00, 0x07, 0xdf, 0x01, 0x80, 0x00, 0x04, 0x51, 0x06, 0x00, 0x00, 0x04, 0x51, 0x1b, 0xfe, 0x00, 0x04, 0x51, 0x02, 0x02, 0x00, 0x07, 0xd9, 0x02, 0x02, 0x00, 0x04, 0x56, 0x02, 0x02, 0x00, 0x00, 0x10, 0x03, 0xfe, 0x00, 0x00, 0x10, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t1_3[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x78, 0xbc, 0x20, 0x00, 0x09, 0x48, 0xa4, 0x50, 0x00, 0x09, 0x4a, 0xa8, 0x50, 0x00, 0x09, 0x4a, 0xa8, 0x88, 0x00, 0x09, 0x4a, 0xb1, 0x04, 0x00, 0x1f, 0xfe, 0xaa, 0xfb, 0x00, 0x09, 0x4a, 0xa4, 0x20, 0x00, 0x09, 0x4a, 0xa4, 0x20, 0x00, 0x09, 0x4a, 0xa7, 0xfe, 0x00, 0x09, 0x4a, 0xb4, 0x20, 0x00, 0x09, 0x48, 0xa9, 0x24, 0x00, 0x0b, 0x48, 0xa2, 0x22, 0x00, 0x08, 0x8a, 0xa4, 0xa2, 0x00, 0x11, 0x19, 0x20, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t1_4[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x00, 0x10, 0x00, 0x1f, 0xdc, 0x3e, 0xfe, 0x00, 0x08, 0x90, 0x02, 0x12, 0x00, 0x05, 0x10, 0x04, 0xff, 0x00, 0x1f, 0xdf, 0x84, 0x12, 0x00, 0x02, 0x12, 0x0c, 0xfe, 0x00, 0x1f, 0xd2, 0x02, 0x10, 0x00, 0x02, 0x12, 0x22, 0xfe, 0x00, 0x0a, 0x92, 0x14, 0x10, 0x00, 0x0a, 0x52, 0x14, 0x10, 0x00, 0x12, 0x22, 0x0d, 0xff, 0x00, 0x02, 0x22, 0x08, 0x10, 0x00, 0x0a, 0x42, 0x14, 0x10, 0x00, 0x04, 0x02, 0x23, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +//默认 +const unsigned char t2_0[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xc8, 0x10, 0x20, 0x00, 0x12, 0x4a, 0x0c, 0x20, 0x00, 0x1a, 0xc9, 0x04, 0x20, 0x00, 0x17, 0x48, 0x00, 0x20, 0x00, 0x1f, 0xff, 0xb8, 0x20, 0x00, 0x02, 0x08, 0x08, 0x50, 0x00, 0x1f, 0xc8, 0x08, 0x50, 0x00, 0x02, 0x08, 0x08, 0x50, 0x00, 0x03, 0xc8, 0x08, 0x48, 0x00, 0x1e, 0x14, 0x08, 0x88, 0x00, 0x01, 0x54, 0x0a, 0x88, 0x00, 0x15, 0x22, 0x0c, 0x84, 0x00, 0x14, 0x43, 0x89, 0x07, 0x00, 0x00, 0x81, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +//休眠 +const unsigned char t2_1[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x10, 0x3d, 0xfc, 0x00, 0x02, 0x10, 0x25, 0x04, 0x00, 0x04, 0x10, 0x25, 0x04, 0x00, 0x05, 0xff, 0xbd, 0xfc, 0x00, 0x0c, 0x10, 0x25, 0x20, 0x00, 0x0c, 0x38, 0x25, 0x20, 0x00, 0x14, 0x38, 0x25, 0xfe, 0x00, 0x04, 0x54, 0x3d, 0x20, 0x00, 0x04, 0x54, 0x25, 0x10, 0x00, 0x04, 0x92, 0x25, 0x10, 0x00, 0x05, 0x11, 0xa5, 0x09, 0x00, 0x06, 0x11, 0x3d, 0x45, 0x00, 0x04, 0x10, 0x25, 0x83, 0x00, 0x04, 0x10, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +//提温 +const unsigned char t2_2[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x7e, 0x21, 0xfc, 0x00, 0x04, 0x42, 0x11, 0x04, 0x00, 0x1f, 0x7e, 0x09, 0x04, 0x00, 0x04, 0x42, 0x21, 0xfc, 0x00, 0x05, 0x42, 0x11, 0x04, 0x00, 0x06, 0x7e, 0x11, 0x04, 0x00, 0x0c, 0x00, 0x05, 0xfc, 0x00, 0x15, 0xff, 0x88, 0x00, 0x00, 0x04, 0x08, 0x13, 0xfe, 0x00, 0x04, 0x48, 0x32, 0x52, 0x00, 0x04, 0x4f, 0x12, 0x52, 0x00, 0x04, 0x48, 0x12, 0x52, 0x00, 0x14, 0xa8, 0x12, 0x52, 0x00, 0x09, 0x1f, 0x97, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +//关机 +const unsigned char t3_1[] PROGMEM = { 0x01, 0x04, 0x04, 0x7c, 0x00, 0x00, 0x88, 0x04, 0x44, 0x00, 0x0f, 0xff, 0x3f, 0x44, 0x00, 0x00, 0x20, 0x04, 0x44, 0x00, 0x00, 0x20, 0x0c, 0x44, 0x00, 0x00, 0x20, 0x0e, 0x44, 0x00, 0x1f, 0xff, 0x95, 0x44, 0x00, 0x00, 0x20, 0x14, 0x44, 0x00, 0x00, 0x50, 0x24, 0x44, 0x00, 0x00, 0x50, 0x04, 0x44, 0x00, 0x00, 0x88, 0x04, 0x45, 0x00, 0x01, 0x04, 0x04, 0x85, 0x00, 0x06, 0x03, 0x85, 0x03, 0x00, 0x18, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +const unsigned char t_4[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x08, 0x20, 0x00, 0x0f, 0xff, 0x09, 0xfc, 0x00, 0x00, 0x20, 0x08, 0x00, 0x00, 0x00, 0x20, 0x3e, 0x88, 0x00, 0x03, 0xfe, 0x08, 0x50, 0x00, 0x02, 0x02, 0x0b, 0xfe, 0x00, 0x03, 0xfe, 0x0c, 0x40, 0x00, 0x02, 0x02, 0x18, 0x40, 0x00, 0x03, 0xfe, 0x2b, 0xfe, 0x00, 0x02, 0x02, 0x08, 0x48, 0x00, 0x03, 0xfe, 0x08, 0x88, 0x00, 0x02, 0x02, 0x08, 0x50, 0x00, 0x02, 0x02, 0x28, 0x30, 0x00, 0x1f, 0xff, 0x91, 0xcc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t_PID[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xc3, 0xf1, 0xe0, 0x00, 0x0f, 0xe3, 0xf1, 0xf8, 0x00, 0x0c, 0x70, 0xc1, 0x9e, 0x00, 0x0c, 0x30, 0xc1, 0x86, 0x00, 0x0c, 0x30, 0xc1, 0x83, 0x00, 0x0c, 0x30, 0xc1, 0x83, 0x00, 0x0c, 0x60, 0xc1, 0x83, 0x00, 0x0c, 0x60, 0xc1, 0x83, 0x00, 0x0f, 0xc0, 0xc1, 0x83, 0x00, 0x0f, 0xc0, 0xc1, 0x86, 0x00, 0x0c, 0x00, 0xc1, 0x86, 0x00, 0x0c, 0x00, 0xc1, 0x98, 0x00, 0x0c, 0x03, 0xf1, 0xf8, 0x00, 0x0c, 0x03, 0xf1, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +const unsigned char t5_0[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xdf, 0x88, 0x40, 0x00, 0x0a, 0x24, 0x10, 0x40, 0x00, 0x11, 0x42, 0x10, 0xfe, 0x00, 0x04, 0x00, 0x22, 0x82, 0x00, 0x02, 0xff, 0x3d, 0x02, 0x00, 0x08, 0x01, 0x0a, 0x42, 0x00, 0x09, 0xf9, 0x10, 0x32, 0x00, 0x09, 0x09, 0x20, 0x12, 0x00, 0x09, 0xf9, 0x3e, 0x02, 0x00, 0x09, 0x09, 0x00, 0x02, 0x00, 0x09, 0x09, 0x0e, 0x02, 0x00, 0x09, 0xf9, 0x30, 0x22, 0x00, 0x08, 0x05, 0x00, 0x14, 0x00, 0x08, 0x02, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t5_1[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x44, 0x10, 0xfe, 0x00, 0x04, 0x28, 0x10, 0x92, 0x00, 0x05, 0xff, 0x22, 0x92, 0x00, 0x00, 0x10, 0x3c, 0x92, 0x00, 0x00, 0x10, 0x08, 0x92, 0x00, 0x1c, 0xfe, 0x10, 0x92, 0x00, 0x04, 0x10, 0x20, 0xfe, 0x00, 0x04, 0x10, 0x3e, 0x92, 0x00, 0x05, 0xff, 0x80, 0x92, 0x00, 0x04, 0x10, 0x00, 0x92, 0x00, 0x05, 0x10, 0x0e, 0x92, 0x00, 0x06, 0x10, 0x30, 0x92, 0x00, 0x04, 0x10, 0x00, 0xfe, 0x00, 0x00, 0x10, 0x00, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t5_3[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x08, 0x3f, 0xfe, 0x00, 0x1f, 0xff, 0x81, 0x00, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x07, 0xfe, 0x0f, 0xf8, 0x00, 0x04, 0x02, 0x08, 0x08, 0x00, 0x04, 0x02, 0x08, 0x88, 0x00, 0x07, 0xfe, 0x08, 0x88, 0x00, 0x04, 0x02, 0x08, 0x88, 0x00, 0x04, 0x02, 0x08, 0x88, 0x00, 0x07, 0xfe, 0x08, 0x88, 0x00, 0x04, 0x02, 0x09, 0x48, 0x00, 0x04, 0x02, 0x02, 0x30, 0x00, 0x07, 0xfe, 0x04, 0x0c, 0x00, 0x04, 0x02, 0x18, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +const unsigned char t_off[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x04, 0xff, 0x00, 0x00, 0x44, 0x02, 0x01, 0x00, 0x07, 0xff, 0x90, 0x21, 0x00, 0x00, 0x10, 0x10, 0x21, 0x00, 0x00, 0x10, 0x17, 0xfd, 0x00, 0x00, 0x10, 0x10, 0x21, 0x00, 0x0f, 0xff, 0xd0, 0x61, 0x00, 0x00, 0x10, 0x10, 0xa1, 0x00, 0x00, 0x28, 0x11, 0x21, 0x00, 0x00, 0x28, 0x12, 0x21, 0x00, 0x00, 0x44, 0x14, 0x21, 0x00, 0x00, 0x82, 0x10, 0xa1, 0x00, 0x03, 0x01, 0xd0, 0x45, 0x00, 0x0c, 0x00, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t_on[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0x80, 0x20, 0x00, 0x00, 0x84, 0x07, 0xff, 0x00, 0x00, 0x84, 0x04, 0x01, 0x00, 0x00, 0x84, 0x04, 0x01, 0x00, 0x00, 0x84, 0x04, 0x01, 0x00, 0x0f, 0xff, 0xc7, 0xff, 0x00, 0x00, 0x84, 0x04, 0x00, 0x00, 0x00, 0x84, 0x04, 0x00, 0x00, 0x00, 0x84, 0x05, 0xff, 0x00, 0x00, 0x84, 0x05, 0x01, 0x00, 0x01, 0x04, 0x09, 0x01, 0x00, 0x01, 0x04, 0x09, 0x01, 0x00, 0x02, 0x04, 0x11, 0xff, 0x00, 0x04, 0x04, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +const unsigned char t_NO[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x04, 0x91, 0x00, 0x04, 0x40, 0x02, 0x52, 0x00, 0x04, 0x7f, 0x90, 0x54, 0x00, 0x04, 0x50, 0x88, 0xff, 0x00, 0x07, 0xd0, 0x84, 0x81, 0x00, 0x04, 0x51, 0x00, 0x81, 0x00, 0x04, 0x49, 0x01, 0xff, 0x00, 0x07, 0xca, 0x02, 0x81, 0x00, 0x04, 0x44, 0x04, 0x81, 0x00, 0x04, 0x4a, 0x1c, 0xff, 0x00, 0x07, 0xea, 0x04, 0x81, 0x00, 0x0c, 0x51, 0x04, 0x81, 0x00, 0x00, 0x61, 0xc4, 0x85, 0x00, 0x00, 0x40, 0x80, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t_OK[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xdf, 0x10, 0x20, 0x00, 0x02, 0x12, 0x0c, 0x20, 0x00, 0x02, 0x24, 0x04, 0x20, 0x00, 0x04, 0x7f, 0x80, 0x20, 0x00, 0x04, 0x24, 0xb8, 0x20, 0x00, 0x0f, 0xa4, 0x88, 0x50, 0x00, 0x14, 0xbf, 0x88, 0x50, 0x00, 0x04, 0xa4, 0x88, 0x50, 0x00, 0x04, 0xa4, 0x88, 0x48, 0x00, 0x04, 0xbf, 0x88, 0x88, 0x00, 0x04, 0xa4, 0x8a, 0x88, 0x00, 0x07, 0xa4, 0x8c, 0x84, 0x00, 0x04, 0x44, 0x89, 0x07, 0x00, 0x00, 0x81, 0x86, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +const unsigned char t_CN_CN[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x40, 0x00, 0x80, 0x00, 0x0f, 0xff, 0x3f, 0xff, 0x00, 0x08, 0x41, 0x04, 0x08, 0x00, 0x08, 0x41, 0x04, 0x08, 0x00, 0x08, 0x41, 0x04, 0x10, 0x00, 0x08, 0x41, 0x02, 0x10, 0x00, 0x0f, 0xff, 0x02, 0x20, 0x00, 0x08, 0x41, 0x01, 0x20, 0x00, 0x00, 0x40, 0x00, 0xc0, 0x00, 0x00, 0x40, 0x01, 0x30, 0x00, 0x00, 0x40, 0x02, 0x08, 0x00, 0x00, 0x40, 0x0c, 0x07, 0x00, 0x00, 0x40, 0x30, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t_CN_EN[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x10, 0x00, 0x80, 0x00, 0x1f, 0xff, 0x80, 0x80, 0x00, 0x01, 0x10, 0x3f, 0xff, 0x00, 0x00, 0x40, 0x04, 0x08, 0x00, 0x07, 0xfc, 0x04, 0x08, 0x00, 0x04, 0x44, 0x04, 0x10, 0x00, 0x04, 0x44, 0x02, 0x10, 0x00, 0x04, 0x44, 0x02, 0x20, 0x00, 0x1f, 0xff, 0x81, 0x20, 0x00, 0x00, 0x40, 0x00, 0xc0, 0x00, 0x00, 0xa0, 0x01, 0x30, 0x00, 0x01, 0x10, 0x02, 0x08, 0x00, 0x06, 0x0c, 0x0c, 0x07, 0x00, 0x18, 0x03, 0xb0, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t_CN_JP[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xfe, 0x13, 0xfe, 0x00, 0x04, 0x02, 0x08, 0x40, 0x00, 0x04, 0x02, 0x08, 0x40, 0x00, 0x04, 0x02, 0x01, 0xfc, 0x00, 0x04, 0x02, 0x38, 0x84, 0x00, 0x04, 0x02, 0x08, 0x84, 0x00, 0x07, 0xfe, 0x0f, 0xff, 0x00, 0x04, 0x02, 0x08, 0x00, 0x00, 0x04, 0x02, 0x09, 0xfe, 0x00, 0x04, 0x02, 0x09, 0x02, 0x00, 0x04, 0x02, 0x0b, 0x02, 0x00, 0x04, 0x02, 0x0d, 0x02, 0x00, 0x07, 0xfe, 0x09, 0xfe, 0x00, 0x04, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +//翻转 +const unsigned char t4f[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x1d, 0xc2, 0x08, 0x00, 0x05, 0x44, 0x42, 0x08, 0x00, 0x03, 0x84, 0x5f, 0xbf, 0x00, 0x0f, 0xe4, 0x44, 0x10, 0x00, 0x01, 0x15, 0x45, 0x10, 0x00, 0x05, 0x4c, 0xc9, 0x7f, 0x80, 0x09, 0x24, 0x4f, 0x90, 0x00, 0x07, 0xc4, 0xc1, 0x10, 0x00, 0x05, 0x4d, 0x41, 0x3f, 0x00, 0x05, 0x54, 0x43, 0x81, 0x00, 0x07, 0xc4, 0x4d, 0x02, 0x00, 0x05, 0x44, 0x41, 0x14, 0x00, 0x05, 0x55, 0x41, 0x08, 0x00, 0x07, 0xc8, 0x81, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +//保存 +const unsigned char t_save[] PROGMEM = { 0x02, 0xfe, 0x01, 0x00, 0x00, 0x02, 0x82, 0x3f, 0xff, 0x00, 0x04, 0x82, 0x02, 0x00, 0x00, 0x04, 0xfe, 0x02, 0x00, 0x00, 0x0c, 0x10, 0x04, 0xfc, 0x00, 0x14, 0x10, 0x04, 0x08, 0x00, 0x05, 0xff, 0x8c, 0x10, 0x00, 0x04, 0x10, 0x14, 0x10, 0x00, 0x04, 0x38, 0x25, 0xff, 0x00, 0x04, 0x34, 0x04, 0x10, 0x00, 0x04, 0x52, 0x04, 0x10, 0x00, 0x04, 0x91, 0x84, 0x10, 0x00, 0x05, 0x10, 0x04, 0x50, 0x00, 0x04, 0x10, 0x04, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char tAbout[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x0f, 0xfe, 0x00, 0x00, 0x44, 0x00, 0x40, 0x00, 0x07, 0xff, 0x80, 0x40, 0x00, 0x00, 0x10, 0x00, 0x40, 0x00, 0x00, 0x10, 0x00, 0x40, 0x00, 0x00, 0x10, 0x1f, 0xff, 0x80, 0x0f, 0xff, 0xc0, 0x40, 0x00, 0x00, 0x10, 0x00, 0x40, 0x00, 0x00, 0x28, 0x00, 0x40, 0x00, 0x00, 0x28, 0x00, 0x40, 0x00, 0x00, 0x44, 0x00, 0x40, 0x00, 0x00, 0x82, 0x00, 0x40, 0x00, 0x03, 0x01, 0xc1, 0x40, 0x00, 0x0c, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char tPassword[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x1f, 0x7e, 0x00, 0x1f, 0xff, 0x84, 0x02, 0x00, 0x10, 0x80, 0x84, 0x42, 0x00, 0x0a, 0x4a, 0x04, 0x42, 0x00, 0x0a, 0x31, 0x08, 0x42, 0x00, 0x12, 0xc5, 0x0f, 0x42, 0x00, 0x03, 0x04, 0x19, 0x7f, 0x00, 0x1d, 0xf8, 0x29, 0x01, 0x00, 0x00, 0x40, 0x09, 0x01, 0x00, 0x08, 0x42, 0x09, 0xfd, 0x00, 0x08, 0x42, 0x09, 0x01, 0x00, 0x08, 0x42, 0x0f, 0x01, 0x00, 0x0f, 0xfe, 0x09, 0x05, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char *CN_table[] = { + t0, t1, t2, t3, t4, t5, t7, tPassword, t6, tAbout, Back, //0 + t0, t1_1, t1_2, t1_3, t1_4, t_save, //1 + t2_0, t2_1, t2_2, t_save, //2 + t2_1, t3_1, t2_2, t_save,//3 + t_4, t_PID,//4 + t5_0, t5_1,//5 + t_off, t_on,//6 + t_NO, t_OK,//7 + t_CN_CN, t_CN_EN, t_CN_JP, //8 + t5_3, t4f, t_save, //9 +}; +/* + 日语 Japanese +*/ +/* + 8x8 dot Japanese font for Arduboy + + Copyright (c) 2016 emutyworks + + Released under the MIT license + https://github.com/emutyworks/8x8DotJPFont/blob/master/LICENSE.txt +*/ + +#define MISAKI_FONT_H + +#define MISAKI_FONT_F0_PAGE 0xF0 +#define MISAKI_FONT_F1_PAGE 0xF1 +#define MISAKI_FONT_F2_PAGE 0xF2 + +#define MISAKI_FONT_F0_W 8 +#define MISAKI_FONT_F1_W 3 +#define MISAKI_FONT_F2_W 7 + +#define MISAKI_FONT_F0_SIZE 0xEF +#define MISAKI_FONT_F1_SIZE 0x9D +#define MISAKI_FONT_F2_SIZE 0x20 // misaki_font_f2.h の最終行の値をここに設定する、最大0xEFまで + +/* + 利用しないフォントデータはヘッダファイルを読み込まないようにするとメモリが節約できます、 + drawText() 実行時にフォントが無い場合は処理がスキップされます。 + + 例) 8x8 dot ひらがな・カタカナ・記号 のみ利用 + #include "misaki_font_f0.h" // 8x8 dot ひらがな・カタカナ・記号 + //#include "misaki_font_f1.h" // 4x8 dot 英語・カタカナ・記号 + //#include "misaki_font_f2.h" // 8x8 dot 漢字 +*/ +PROGMEM const uint8_t misaki_font_0x00[1] = { 0x00 }; +#define MISAKI_FONT_F0_H +PROGMEM const uint8_t misaki_font_f0[ MISAKI_FONT_F0_SIZE + 1 ][ MISAKI_FONT_F0_W ] = +{ + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0x00   */ + { 0x20, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0x01 、 */ + { 0x20, 0x50, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0x02 。 */ + { 0x50, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0x03 , */ + { 0x60, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0x04 . */ + { 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00 }, /* 0x05 ・ */ + { 0x00, 0x00, 0x36, 0x36, 0x00, 0x00, 0x00, 0x00 }, /* 0x06 : */ + { 0x00, 0x00, 0x56, 0x36, 0x00, 0x00, 0x00, 0x00 }, /* 0x07 ; */ + { 0x00, 0x02, 0x01, 0x51, 0x09, 0x09, 0x06, 0x00 }, /* 0x08 ? */ + { 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x00 }, /* 0x09 ! */ + { 0x00, 0x00, 0x00, 0x00, 0x7f, 0x41, 0x41, 0x00 }, /* 0x0A [ */ + { 0x41, 0x41, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0x0B ] */ + { 0x00, 0x00, 0x00, 0x3f, 0x01, 0x01, 0x01, 0x00 }, /* 0x0C 「 */ + { 0x40, 0x40, 0x40, 0x7e, 0x00, 0x00, 0x00, 0x00 }, /* 0x0D 」 */ + { 0x00, 0x00, 0x3f, 0x21, 0x3d, 0x05, 0x07, 0x00 }, /* 0x0E 『 */ + { 0x70, 0x50, 0x5e, 0x42, 0x7e, 0x00, 0x00, 0x00 }, /* 0x0F 』 */ + { 0x00, 0x00, 0x00, 0x00, 0x7f, 0x63, 0x41, 0x00 }, /* 0x10 【 */ + { 0x41, 0x63, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0x11 】 */ + { 0x08, 0x08, 0x08, 0x7f, 0x08, 0x08, 0x08, 0x00 }, /* 0x12 + */ + { 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00 }, /* 0x13 - */ + { 0x44, 0x44, 0x44, 0x5f, 0x44, 0x44, 0x44, 0x00 }, /* 0x14 ± */ + { 0x41, 0x22, 0x14, 0x08, 0x14, 0x22, 0x41, 0x00 }, /* 0x15 × */ + { 0x08, 0x08, 0x08, 0x2a, 0x08, 0x08, 0x08, 0x00 }, /* 0x16 ÷ */ + { 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x00 }, /* 0x17 = */ + { 0x14, 0x34, 0x14, 0x1c, 0x14, 0x16, 0x14, 0x00 }, /* 0x18 ≠ */ + { 0x08, 0x08, 0x14, 0x14, 0x14, 0x22, 0x22, 0x00 }, /* 0x19 < */ + { 0x22, 0x22, 0x14, 0x14, 0x14, 0x08, 0x08, 0x00 }, /* 0x1A > */ + { 0x02, 0x05, 0x02, 0x3c, 0x42, 0x42, 0x24, 0x00 }, /* 0x1B ℃ */ + { 0x00, 0x2b, 0x2c, 0x78, 0x2c, 0x2b, 0x00, 0x00 }, /* 0x1C ¥ */ + { 0x00, 0x24, 0x2a, 0x7a, 0x2f, 0x2a, 0x12, 0x00 }, /* 0x1D $ */ + { 0x00, 0x1c, 0x62, 0x32, 0x2e, 0x23, 0x14, 0x00 }, /* 0x1E ¢ */ + { 0x20, 0x54, 0x5e, 0x25, 0x41, 0x42, 0x20, 0x00 }, /* 0x1F £ */ + { 0x42, 0x25, 0x12, 0x08, 0x24, 0x52, 0x21, 0x00 }, /* 0x20 % */ + { 0x20, 0x62, 0x3e, 0x63, 0x3e, 0x23, 0x02, 0x00 }, /* 0x21 # */ + { 0x20, 0x56, 0x49, 0x55, 0x22, 0x58, 0x40, 0x00 }, /* 0x22 & */ + { 0x00, 0x22, 0x14, 0x7f, 0x14, 0x22, 0x00, 0x00 }, /* 0x23 * */ + { 0x1c, 0x22, 0x59, 0x55, 0x4d, 0x12, 0x0c, 0x00 }, /* 0x24 @ */ + { 0x00, 0x00, 0x4a, 0x55, 0x55, 0x29, 0x00, 0x00 }, /* 0x25 § */ + { 0x04, 0x64, 0x3c, 0x17, 0x3c, 0x64, 0x04, 0x00 }, /* 0x26 ☆ */ + { 0x04, 0x64, 0x3c, 0x1f, 0x3c, 0x64, 0x04, 0x00 }, /* 0x27 ★ */ + { 0x1c, 0x22, 0x41, 0x41, 0x41, 0x22, 0x1c, 0x00 }, /* 0x28 ○ */ + { 0x1c, 0x3e, 0x7f, 0x7f, 0x7f, 0x3e, 0x1c, 0x00 }, /* 0x29 ● */ + { 0x1c, 0x22, 0x5d, 0x55, 0x5d, 0x22, 0x1c, 0x00 }, /* 0x2A ◎ */ + { 0x08, 0x14, 0x22, 0x41, 0x22, 0x14, 0x08, 0x00 }, /* 0x2B ◇ */ + { 0x08, 0x1c, 0x3e, 0x7f, 0x3e, 0x1c, 0x08, 0x00 }, /* 0x2C ◆ */ + { 0x7f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x7f, 0x00 }, /* 0x2D □ */ + { 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x00 }, /* 0x2E ■ */ + { 0x40, 0x70, 0x4c, 0x43, 0x4c, 0x70, 0x40, 0x00 }, /* 0x2F △ */ + { 0x40, 0x70, 0x7c, 0x7f, 0x7c, 0x70, 0x40, 0x00 }, /* 0x30 ▲ */ + { 0x01, 0x07, 0x19, 0x61, 0x19, 0x07, 0x01, 0x00 }, /* 0x31 ▽ */ + { 0x01, 0x07, 0x1f, 0x7f, 0x1f, 0x07, 0x01, 0x00 }, /* 0x32 ▼ */ + { 0x49, 0x22, 0x14, 0x49, 0x14, 0x22, 0x49, 0x00 }, /* 0x33 ※ */ + { 0x05, 0x05, 0x05, 0x7d, 0x05, 0x05, 0x05, 0x00 }, /* 0x34 〒 */ + { 0x08, 0x08, 0x08, 0x08, 0x2a, 0x1c, 0x08, 0x00 }, /* 0x35 → */ + { 0x08, 0x1c, 0x2a, 0x08, 0x08, 0x08, 0x08, 0x00 }, /* 0x36 ← */ + { 0x00, 0x04, 0x02, 0x7f, 0x02, 0x04, 0x00, 0x00 }, /* 0x37 ↑ */ + { 0x00, 0x10, 0x20, 0x7f, 0x20, 0x10, 0x00, 0x00 }, /* 0x38 ↓ */ + { 0x00, 0x3e, 0x41, 0x41, 0x41, 0x41, 0x3e, 0x00 }, /* 0x39 0 */ + { 0x00, 0x00, 0x42, 0x7f, 0x40, 0x00, 0x00, 0x00 }, /* 0x3A 1 */ + { 0x00, 0x62, 0x51, 0x51, 0x49, 0x49, 0x46, 0x00 }, /* 0x3B 2 */ + { 0x00, 0x22, 0x41, 0x49, 0x49, 0x49, 0x36, 0x00 }, /* 0x3C 3 */ + { 0x00, 0x30, 0x28, 0x24, 0x22, 0x7f, 0x20, 0x00 }, /* 0x3D 4 */ + { 0x00, 0x2f, 0x45, 0x45, 0x45, 0x45, 0x39, 0x00 }, /* 0x3E 5 */ + { 0x00, 0x3e, 0x49, 0x49, 0x49, 0x49, 0x32, 0x00 }, /* 0x3F 6 */ + { 0x00, 0x01, 0x01, 0x61, 0x19, 0x05, 0x03, 0x00 }, /* 0x40 7 */ + { 0x00, 0x36, 0x49, 0x49, 0x49, 0x49, 0x36, 0x00 }, /* 0x41 8 */ + { 0x00, 0x26, 0x49, 0x49, 0x49, 0x49, 0x3e, 0x00 }, /* 0x42 9 */ + { 0x00, 0x20, 0x54, 0x7e, 0x34, 0x14, 0x60, 0x00 }, /* 0x43 ぁ */ + { 0x20, 0x52, 0x7f, 0x2a, 0x1a, 0x4a, 0x30, 0x00 }, /* 0x44 あ */ + { 0x00, 0x3c, 0x40, 0x20, 0x04, 0x18, 0x00, 0x00 }, /* 0x45 ぃ */ + { 0x1e, 0x20, 0x40, 0x20, 0x02, 0x04, 0x18, 0x00 }, /* 0x46 い */ + { 0x00, 0x10, 0x4a, 0x4a, 0x2a, 0x10, 0x00, 0x00 }, /* 0x47 ぅ */ + { 0x00, 0x08, 0x45, 0x45, 0x45, 0x25, 0x18, 0x00 }, /* 0x48 う */ + { 0x00, 0x48, 0x2a, 0x3a, 0x4a, 0x40, 0x00, 0x00 }, /* 0x49 ぇ */ + { 0x00, 0x44, 0x25, 0x15, 0x3d, 0x45, 0x40, 0x00 }, /* 0x4A え */ + { 0x00, 0x24, 0x7e, 0x14, 0x50, 0x24, 0x00, 0x00 }, /* 0x4B ぉ */ + { 0x22, 0x52, 0x7f, 0x0a, 0x48, 0x4a, 0x34, 0x00 }, /* 0x4C お */ + { 0x44, 0x34, 0x4f, 0x44, 0x38, 0x04, 0x18, 0x00 }, /* 0x4D か */ + { 0x44, 0x34, 0x4f, 0x44, 0x39, 0x04, 0x19, 0x00 }, /* 0x4E が */ + { 0x00, 0x2a, 0x5a, 0x4b, 0x4e, 0x5a, 0x08, 0x00 }, /* 0x4F き */ + { 0x00, 0x2a, 0x5a, 0x4b, 0x4e, 0x5b, 0x08, 0x00 }, /* 0x50 ぎ */ + { 0x00, 0x08, 0x14, 0x14, 0x22, 0x41, 0x00, 0x00 }, /* 0x51 く */ + { 0x00, 0x08, 0x14, 0x14, 0x22, 0x45, 0x04, 0x00 }, /* 0x52 ぐ */ + { 0x3f, 0x00, 0x04, 0x44, 0x3f, 0x04, 0x04, 0x00 }, /* 0x53 け */ + { 0x3f, 0x00, 0x04, 0x44, 0x3f, 0x04, 0x05, 0x00 }, /* 0x54 げ */ + { 0x00, 0x20, 0x52, 0x42, 0x42, 0x42, 0x40, 0x00 }, /* 0x55 こ */ + { 0x00, 0x20, 0x52, 0x42, 0x43, 0x42, 0x41, 0x00 }, /* 0x56 ご */ + { 0x00, 0x24, 0x54, 0x44, 0x47, 0x5c, 0x04, 0x00 }, /* 0x57 さ */ + { 0x00, 0x24, 0x54, 0x44, 0x47, 0x5c, 0x05, 0x00 }, /* 0x58 ざ */ + { 0x00, 0x00, 0x3f, 0x40, 0x40, 0x40, 0x20, 0x00 }, /* 0x59 し */ + { 0x00, 0x00, 0x3f, 0x40, 0x41, 0x40, 0x21, 0x00 }, /* 0x5A じ */ + { 0x02, 0x02, 0x0a, 0x56, 0x3f, 0x02, 0x02, 0x00 }, /* 0x5B す */ + { 0x02, 0x02, 0x0a, 0x56, 0x3f, 0x02, 0x03, 0x00 }, /* 0x5C ず */ + { 0x04, 0x04, 0x3f, 0x44, 0x54, 0x5f, 0x44, 0x00 }, /* 0x5D せ */ + { 0x04, 0x04, 0x3f, 0x44, 0x54, 0x5f, 0x45, 0x00 }, /* 0x5E ぜ */ + { 0x00, 0x08, 0x09, 0x3d, 0x4b, 0x49, 0x08, 0x00 }, /* 0x5F そ */ + { 0x00, 0x08, 0x09, 0x3d, 0x4b, 0x49, 0x0a, 0x00 }, /* 0x60 ぞ */ + { 0x42, 0x3a, 0x07, 0x22, 0x54, 0x44, 0x44, 0x00 }, /* 0x61 た */ + { 0x42, 0x3a, 0x07, 0x22, 0x55, 0x44, 0x45, 0x00 }, /* 0x62 だ */ + { 0x00, 0x02, 0x12, 0x4e, 0x4b, 0x4a, 0x32, 0x00 }, /* 0x63 ち */ + { 0x00, 0x02, 0x12, 0x4e, 0x4b, 0x4a, 0x33, 0x00 }, /* 0x64 ぢ */ + { 0x00, 0x10, 0x10, 0x48, 0x48, 0x30, 0x00, 0x00 }, /* 0x65 っ */ + { 0x04, 0x04, 0x02, 0x22, 0x22, 0x22, 0x1c, 0x00 }, /* 0x66 つ */ + { 0x04, 0x04, 0x02, 0x22, 0x23, 0x22, 0x1d, 0x00 }, /* 0x67 づ */ + { 0x00, 0x02, 0x02, 0x1a, 0x25, 0x43, 0x41, 0x00 }, /* 0x68 て */ + { 0x00, 0x02, 0x02, 0x1a, 0x25, 0x43, 0x45, 0x00 }, /* 0x69 で */ + { 0x00, 0x20, 0x57, 0x48, 0x48, 0x44, 0x44, 0x00 }, /* 0x6A と */ + { 0x00, 0x20, 0x57, 0x48, 0x49, 0x44, 0x45, 0x00 }, /* 0x6B ど */ + { 0x12, 0x0a, 0x27, 0x52, 0x50, 0x3a, 0x24, 0x00 }, /* 0x6C な */ + { 0x7f, 0x00, 0x20, 0x52, 0x42, 0x42, 0x40, 0x00 }, /* 0x6D に */ + { 0x30, 0x4e, 0x38, 0x54, 0x0f, 0x64, 0x78, 0x00 }, /* 0x6E ぬ */ + { 0x24, 0x14, 0x7f, 0x04, 0x22, 0x52, 0x3c, 0x00 }, /* 0x6F ね */ + { 0x18, 0x24, 0x12, 0x4e, 0x42, 0x24, 0x18, 0x00 }, /* 0x70 の */ + { 0x7f, 0x00, 0x24, 0x54, 0x54, 0x3f, 0x44, 0x00 }, /* 0x71 は */ + { 0x7f, 0x00, 0x24, 0x54, 0x54, 0x3f, 0x45, 0x00 }, /* 0x72 ば */ + { 0x7f, 0x00, 0x24, 0x54, 0x56, 0x3d, 0x46, 0x00 }, /* 0x73 ぱ */ + { 0x02, 0x3a, 0x47, 0x40, 0x41, 0x3e, 0x04, 0x00 }, /* 0x74 ひ */ + { 0x02, 0x3a, 0x47, 0x40, 0x41, 0x3e, 0x05, 0x00 }, /* 0x75 び */ + { 0x02, 0x3a, 0x47, 0x40, 0x43, 0x3d, 0x06, 0x00 }, /* 0x76 ぴ */ + { 0x40, 0x30, 0x40, 0x4d, 0x32, 0x10, 0x60, 0x00 }, /* 0x77 ふ */ + { 0x40, 0x30, 0x40, 0x4d, 0x32, 0x11, 0x61, 0x00 }, /* 0x78 ぶ */ + { 0x40, 0x30, 0x40, 0x4d, 0x32, 0x15, 0x62, 0x00 }, /* 0x79 ぷ */ + { 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x00 }, /* 0x7A へ */ + { 0x08, 0x04, 0x02, 0x04, 0x09, 0x10, 0x11, 0x00 }, /* 0x7B べ */ + { 0x08, 0x04, 0x02, 0x04, 0x0a, 0x15, 0x12, 0x00 }, /* 0x7C ぺ */ + { 0x7f, 0x00, 0x6a, 0x6a, 0x7e, 0x2a, 0x4a, 0x00 }, /* 0x7D ほ */ + { 0x7f, 0x00, 0x6a, 0x6a, 0x7f, 0x2a, 0x4b, 0x00 }, /* 0x7E ぼ */ + { 0x7f, 0x00, 0x6a, 0x6a, 0x7e, 0x2d, 0x4a, 0x00 }, /* 0x7F ぽ */ + { 0x00, 0x6a, 0x6a, 0x6a, 0x7f, 0x2a, 0x4a, 0x00 }, /* 0x80 ま */ + { 0x30, 0x29, 0x1d, 0x4b, 0x48, 0x3c, 0x10, 0x00 }, /* 0x81 み */ + { 0x12, 0x2a, 0x7f, 0x42, 0x40, 0x42, 0x24, 0x00 }, /* 0x82 む */ + { 0x30, 0x4e, 0x38, 0x54, 0x0f, 0x44, 0x38, 0x00 }, /* 0x83 め */ + { 0x00, 0x0a, 0x3e, 0x4b, 0x4a, 0x4a, 0x30, 0x00 }, /* 0x84 も */ + { 0x00, 0x08, 0x0e, 0x38, 0x46, 0x14, 0x08, 0x00 }, /* 0x85 ゃ */ + { 0x04, 0x07, 0x1c, 0x62, 0x03, 0x0a, 0x04, 0x00 }, /* 0x86 や */ + { 0x00, 0x1c, 0x48, 0x3e, 0x24, 0x18, 0x00, 0x00 }, /* 0x87 ゅ */ + { 0x1e, 0x04, 0x52, 0x3f, 0x12, 0x12, 0x0c, 0x00 }, /* 0x88 ゆ */ + { 0x00, 0x20, 0x50, 0x50, 0x3e, 0x48, 0x00, 0x00 }, /* 0x89 ょ */ + { 0x00, 0x20, 0x50, 0x50, 0x3f, 0x24, 0x44, 0x00 }, /* 0x8A よ */ + { 0x00, 0x1c, 0x51, 0x49, 0x4a, 0x48, 0x30, 0x00 }, /* 0x8B ら */ + { 0x00, 0x0f, 0x42, 0x41, 0x21, 0x1e, 0x00, 0x00 }, /* 0x8C り */ + { 0x00, 0x10, 0x69, 0x6d, 0x4b, 0x49, 0x30, 0x00 }, /* 0x8D る */ + { 0x24, 0x14, 0x7f, 0x04, 0x02, 0x3e, 0x40, 0x00 }, /* 0x8E れ */ + { 0x00, 0x10, 0x49, 0x4d, 0x4b, 0x49, 0x30, 0x00 }, /* 0x8F ろ */ + { 0x00, 0x28, 0x18, 0x7e, 0x08, 0x44, 0x38, 0x00 }, /* 0x90 ゎ */ + { 0x24, 0x14, 0x7f, 0x04, 0x42, 0x42, 0x3c, 0x00 }, /* 0x91 わ */ + { 0x30, 0x49, 0x25, 0x1f, 0x24, 0x54, 0x38, 0x00 }, /* 0x92 ゐ */ + { 0x40, 0x28, 0x25, 0x57, 0x35, 0x28, 0x40, 0x00 }, /* 0x93 ゑ */ + { 0x10, 0x0a, 0x2e, 0x5b, 0x72, 0x4a, 0x48, 0x00 }, /* 0x94 を */ + { 0x40, 0x30, 0x0c, 0x33, 0x40, 0x40, 0x20, 0x00 }, /* 0x95 ん */ + { 0x00, 0x04, 0x44, 0x3c, 0x14, 0x0c, 0x00, 0x00 }, /* 0x96 ァ */ + { 0x00, 0x01, 0x41, 0x3d, 0x09, 0x05, 0x03, 0x00 }, /* 0x97 ア */ + { 0x00, 0x20, 0x20, 0x10, 0x78, 0x04, 0x00, 0x00 }, /* 0x98 ィ */ + { 0x00, 0x10, 0x10, 0x08, 0x7c, 0x02, 0x01, 0x00 }, /* 0x99 イ */ + { 0x00, 0x18, 0x48, 0x4c, 0x28, 0x18, 0x00, 0x00 }, /* 0x9A ゥ */ + { 0x00, 0x06, 0x42, 0x43, 0x22, 0x12, 0x0e, 0x00 }, /* 0x9B ウ */ + { 0x00, 0x40, 0x48, 0x78, 0x48, 0x40, 0x00, 0x00 }, /* 0x9C ェ */ + { 0x20, 0x22, 0x22, 0x3e, 0x22, 0x22, 0x20, 0x00 }, /* 0x9D エ */ + { 0x00, 0x28, 0x28, 0x58, 0x7c, 0x08, 0x00, 0x00 }, /* 0x9E ォ */ + { 0x22, 0x22, 0x12, 0x4a, 0x7f, 0x02, 0x02, 0x00 }, /* 0x9F オ */ + { 0x00, 0x42, 0x22, 0x1f, 0x02, 0x42, 0x7e, 0x00 }, /* 0xA0 カ */ + { 0x00, 0x42, 0x22, 0x1f, 0x02, 0x42, 0x7f, 0x00 }, /* 0xA1 ガ */ + { 0x00, 0x12, 0x12, 0x1f, 0x72, 0x12, 0x10, 0x00 }, /* 0xA2 キ */ + { 0x00, 0x12, 0x12, 0x1f, 0x72, 0x13, 0x10, 0x00 }, /* 0xA3 ギ */ + { 0x00, 0x08, 0x44, 0x43, 0x22, 0x12, 0x0e, 0x00 }, /* 0xA4 ク */ + { 0x00, 0x08, 0x44, 0x43, 0x22, 0x12, 0x0f, 0x00 }, /* 0xA5 グ */ + { 0x08, 0x07, 0x42, 0x22, 0x1e, 0x02, 0x02, 0x00 }, /* 0xA6 ケ */ + { 0x08, 0x07, 0x42, 0x22, 0x1f, 0x02, 0x03, 0x00 }, /* 0xA7 ゲ */ + { 0x00, 0x42, 0x42, 0x42, 0x42, 0x42, 0x7e, 0x00 }, /* 0xA8 コ */ + { 0x00, 0x42, 0x42, 0x42, 0x43, 0x42, 0x7f, 0x00 }, /* 0xA9 ゴ */ + { 0x02, 0x02, 0x4f, 0x42, 0x22, 0x1f, 0x02, 0x00 }, /* 0xAA サ */ + { 0x02, 0x02, 0x4f, 0x42, 0x23, 0x1e, 0x03, 0x00 }, /* 0xAB ザ */ + { 0x00, 0x45, 0x4a, 0x40, 0x20, 0x10, 0x0c, 0x00 }, /* 0xAC シ */ + { 0x00, 0x45, 0x4a, 0x40, 0x21, 0x10, 0x0d, 0x00 }, /* 0xAD ジ */ + { 0x40, 0x42, 0x22, 0x22, 0x1a, 0x26, 0x40, 0x00 }, /* 0xAE ス */ + { 0x40, 0x42, 0x22, 0x22, 0x1b, 0x26, 0x41, 0x00 }, /* 0xAF ズ */ + { 0x04, 0x04, 0x3f, 0x44, 0x44, 0x54, 0x4c, 0x00 }, /* 0xB0 セ */ + { 0x04, 0x04, 0x3f, 0x44, 0x45, 0x54, 0x4d, 0x00 }, /* 0xB1 ゼ */ + { 0x00, 0x01, 0x46, 0x40, 0x20, 0x10, 0x0f, 0x00 }, /* 0xB2 ソ */ + { 0x00, 0x01, 0x46, 0x40, 0x20, 0x11, 0x0f, 0x00 }, /* 0xB3 ゾ */ + { 0x00, 0x08, 0x44, 0x4b, 0x2a, 0x12, 0x0e, 0x00 }, /* 0xB4 タ */ + { 0x00, 0x08, 0x44, 0x4b, 0x2a, 0x12, 0x0f, 0x00 }, /* 0xB5 ダ */ + { 0x08, 0x0a, 0x4a, 0x3e, 0x09, 0x09, 0x08, 0x00 }, /* 0xB6 チ */ + { 0x08, 0x0a, 0x4a, 0x3e, 0x09, 0x08, 0x09, 0x00 }, /* 0xB7 ヂ */ + { 0x00, 0x18, 0x40, 0x58, 0x20, 0x18, 0x00, 0x00 }, /* 0xB8 ッ */ + { 0x02, 0x0c, 0x42, 0x4c, 0x20, 0x10, 0x0e, 0x00 }, /* 0xB9 ツ */ + { 0x02, 0x0c, 0x42, 0x4c, 0x21, 0x10, 0x0d, 0x00 }, /* 0xBA ヅ */ + { 0x04, 0x05, 0x45, 0x3d, 0x05, 0x05, 0x04, 0x00 }, /* 0xBB テ */ + { 0x04, 0x05, 0x45, 0x3d, 0x05, 0x04, 0x05, 0x00 }, /* 0xBC デ */ + { 0x00, 0x00, 0x7f, 0x08, 0x08, 0x10, 0x00, 0x00 }, /* 0xBD ト */ + { 0x00, 0x00, 0x7f, 0x08, 0x09, 0x10, 0x01, 0x00 }, /* 0xBE ド */ + { 0x04, 0x44, 0x24, 0x1f, 0x04, 0x04, 0x04, 0x00 }, /* 0xBF ナ */ + { 0x20, 0x22, 0x22, 0x22, 0x22, 0x22, 0x20, 0x00 }, /* 0xC0 ニ */ + { 0x40, 0x41, 0x25, 0x15, 0x19, 0x27, 0x00, 0x00 }, /* 0xC1 ヌ */ + { 0x20, 0x22, 0x12, 0x7b, 0x06, 0x12, 0x20, 0x00 }, /* 0xC2 ネ */ + { 0x40, 0x40, 0x20, 0x10, 0x08, 0x07, 0x00, 0x00 }, /* 0xC3 ノ */ + { 0x40, 0x30, 0x0e, 0x00, 0x02, 0x0c, 0x70, 0x00 }, /* 0xC4 ハ */ + { 0x40, 0x30, 0x0e, 0x00, 0x02, 0x0d, 0x71, 0x00 }, /* 0xC5 バ */ + { 0x40, 0x30, 0x0e, 0x00, 0x02, 0x0d, 0x72, 0x00 }, /* 0xC6 パ */ + { 0x00, 0x3f, 0x48, 0x48, 0x48, 0x44, 0x44, 0x00 }, /* 0xC7 ヒ */ + { 0x00, 0x3f, 0x48, 0x48, 0x49, 0x44, 0x45, 0x00 }, /* 0xC8 ビ */ + { 0x00, 0x3f, 0x48, 0x48, 0x4a, 0x45, 0x46, 0x00 }, /* 0xC9 ピ */ + { 0x00, 0x02, 0x42, 0x42, 0x22, 0x12, 0x0e, 0x00 }, /* 0xCA フ */ + { 0x00, 0x02, 0x42, 0x42, 0x23, 0x12, 0x0f, 0x00 }, /* 0xCB ブ */ + { 0x00, 0x02, 0x42, 0x42, 0x22, 0x15, 0x0e, 0x00 }, /* 0xCC プ */ + { 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x20, 0x00 }, /* 0xCD ヘ */ + { 0x08, 0x04, 0x02, 0x04, 0x09, 0x10, 0x21, 0x00 }, /* 0xCE ベ */ + { 0x08, 0x04, 0x02, 0x04, 0x0a, 0x15, 0x22, 0x00 }, /* 0xCF ペ */ + { 0x24, 0x14, 0x44, 0x7f, 0x04, 0x14, 0x24, 0x00 }, /* 0xD0 ホ */ + { 0x24, 0x14, 0x44, 0x7f, 0x05, 0x14, 0x25, 0x00 }, /* 0xD1 ボ */ + { 0x24, 0x14, 0x44, 0x7f, 0x06, 0x15, 0x22, 0x00 }, /* 0xD2 ポ */ + { 0x02, 0x02, 0x12, 0x22, 0x52, 0x0a, 0x06, 0x00 }, /* 0xD3 マ */ + { 0x00, 0x21, 0x25, 0x29, 0x4a, 0x42, 0x00, 0x00 }, /* 0xD4 ミ */ + { 0x40, 0x70, 0x4c, 0x43, 0x50, 0x20, 0x40, 0x00 }, /* 0xD5 ム */ + { 0x40, 0x44, 0x24, 0x14, 0x08, 0x37, 0x00, 0x00 }, /* 0xD6 メ */ + { 0x00, 0x08, 0x09, 0x3f, 0x49, 0x49, 0x48, 0x00 }, /* 0xD7 モ */ + { 0x00, 0x10, 0x1c, 0x68, 0x08, 0x18, 0x00, 0x00 }, /* 0xD8 ャ */ + { 0x04, 0x04, 0x0f, 0x74, 0x02, 0x0a, 0x06, 0x00 }, /* 0xD9 ヤ */ + { 0x00, 0x40, 0x48, 0x48, 0x78, 0x40, 0x00, 0x00 }, /* 0xDA ュ */ + { 0x20, 0x22, 0x22, 0x22, 0x3e, 0x20, 0x20, 0x00 }, /* 0xDB ユ */ + { 0x00, 0x00, 0x44, 0x54, 0x54, 0x7c, 0x00, 0x00 }, /* 0xDC ョ */ + { 0x00, 0x42, 0x4a, 0x4a, 0x4a, 0x4a, 0x7e, 0x00 }, /* 0xDD ヨ */ + { 0x00, 0x04, 0x45, 0x45, 0x25, 0x15, 0x0c, 0x00 }, /* 0xDE ラ */ + { 0x00, 0x0f, 0x40, 0x40, 0x20, 0x1f, 0x00, 0x00 }, /* 0xDF リ */ + { 0x40, 0x20, 0x1e, 0x00, 0x7f, 0x20, 0x10, 0x00 }, /* 0xE0 ル */ + { 0x00, 0x00, 0x7f, 0x40, 0x20, 0x10, 0x08, 0x00 }, /* 0xE1 レ */ + { 0x00, 0x7e, 0x42, 0x42, 0x42, 0x42, 0x7e, 0x00 }, /* 0xE2 ロ */ + { 0x00, 0x0c, 0x44, 0x44, 0x24, 0x1c, 0x00, 0x00 }, /* 0xE3 ヮ */ + { 0x00, 0x06, 0x42, 0x42, 0x22, 0x12, 0x0e, 0x00 }, /* 0xE4 ワ */ + { 0x10, 0x12, 0x1e, 0x12, 0x12, 0x7f, 0x12, 0x00 }, /* 0xE5 ヰ */ + { 0x20, 0x22, 0x22, 0x3a, 0x26, 0x22, 0x20, 0x00 }, /* 0xE6 ヱ */ + { 0x00, 0x01, 0x45, 0x45, 0x25, 0x15, 0x0f, 0x00 }, /* 0xE7 ヲ */ + { 0x00, 0x41, 0x42, 0x40, 0x20, 0x10, 0x0c, 0x00 }, /* 0xE8 ン */ + { 0x00, 0x06, 0x42, 0x43, 0x22, 0x12, 0x0f, 0x00 }, /* 0xE9 ヴ */ + { 0x00, 0x48, 0x28, 0x1c, 0x48, 0x78, 0x00, 0x00 }, /* 0xEA ヵ */ + { 0x00, 0x10, 0x0c, 0x48, 0x38, 0x08, 0x00, 0x00 }, /* 0xEB ヶ */ + { 0x08, 0x04, 0x04, 0x08, 0x10, 0x10, 0x08, 0x00 }, /* 0xEC 〜 */ + { 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00 }, /* 0xED … */ + { 0x04, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00 }, /* 0xEE ー */ + { 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08 }, /* 0xEF ― */ +}; + +#define MISAKI_FONT_F1_H +PROGMEM const uint8_t misaki_font_f1[ MISAKI_FONT_F1_SIZE + 1 ][ MISAKI_FONT_F1_W ] = +{ + { 0x00, 0x00, 0x00 }, /* 0x00 */ + { 0x00, 0x2f, 0x00 }, /* 0x01 ! */ + { 0x03, 0x00, 0x03 }, /* 0x02 " */ + { 0x3f, 0x12, 0x3f }, /* 0x03 # */ + { 0x16, 0x3f, 0x1a }, /* 0x04 $ */ + { 0x12, 0x08, 0x24 }, /* 0x05 % */ + { 0x32, 0x3d, 0x2a }, /* 0x06 & */ + { 0x02, 0x01, 0x00 }, /* 0x07 ' */ + { 0x00, 0x3e, 0x41 }, /* 0x08 ( */ + { 0x41, 0x3e, 0x00 }, /* 0x09 ) */ + { 0x0a, 0x07, 0x0a }, /* 0x0A * */ + { 0x08, 0x3e, 0x08 }, /* 0x0B + */ + { 0x40, 0x20, 0x00 }, /* 0x0C , */ + { 0x08, 0x08, 0x08 }, /* 0x0D - */ + { 0x00, 0x20, 0x00 }, /* 0x0E . */ + { 0x10, 0x08, 0x04 }, /* 0x0F / */ + { 0x1c, 0x2a, 0x1c }, /* 0x10 0 */ + { 0x24, 0x3e, 0x20 }, /* 0x11 1 */ + { 0x32, 0x2a, 0x24 }, /* 0x12 2 */ + { 0x22, 0x2a, 0x14 }, /* 0x13 3 */ + { 0x18, 0x14, 0x3e }, /* 0x14 4 */ + { 0x2e, 0x2a, 0x12 }, /* 0x15 5 */ + { 0x1c, 0x2a, 0x12 }, /* 0x16 6 */ + { 0x02, 0x3a, 0x06 }, /* 0x17 7 */ + { 0x14, 0x2a, 0x14 }, /* 0x18 8 */ + { 0x24, 0x2a, 0x1c }, /* 0x19 9 */ + { 0x00, 0x24, 0x00 }, /* 0x1A : */ + { 0x40, 0x24, 0x00 }, /* 0x1B ; */ + { 0x08, 0x14, 0x22 }, /* 0x1C < */ + { 0x14, 0x14, 0x14 }, /* 0x1D = */ + { 0x22, 0x14, 0x08 }, /* 0x1E > */ + { 0x02, 0x29, 0x06 }, /* 0x1F ? */ + { 0x12, 0x29, 0x1e }, /* 0x20 @ */ + { 0x3e, 0x09, 0x3e }, /* 0x21 A */ + { 0x3f, 0x25, 0x1a }, /* 0x22 B */ + { 0x1e, 0x21, 0x21 }, /* 0x23 C */ + { 0x3f, 0x21, 0x1e }, /* 0x24 D */ + { 0x3f, 0x25, 0x21 }, /* 0x25 E */ + { 0x3f, 0x05, 0x01 }, /* 0x26 F */ + { 0x1e, 0x21, 0x39 }, /* 0x27 G */ + { 0x3f, 0x08, 0x3f }, /* 0x28 H */ + { 0x21, 0x3f, 0x21 }, /* 0x29 I */ + { 0x10, 0x20, 0x1f }, /* 0x2A J */ + { 0x3f, 0x04, 0x3b }, /* 0x2B K */ + { 0x3f, 0x20, 0x20 }, /* 0x2C L */ + { 0x3f, 0x06, 0x3f }, /* 0x2D M */ + { 0x3f, 0x01, 0x3e }, /* 0x2E N */ + { 0x1e, 0x21, 0x1e }, /* 0x2F O */ + { 0x3f, 0x09, 0x06 }, /* 0x30 P */ + { 0x1e, 0x21, 0x5e }, /* 0x31 Q */ + { 0x3f, 0x09, 0x36 }, /* 0x32 R */ + { 0x22, 0x25, 0x19 }, /* 0x33 S */ + { 0x01, 0x3f, 0x01 }, /* 0x34 T */ + { 0x3f, 0x20, 0x3f }, /* 0x35 U */ + { 0x3f, 0x10, 0x0f }, /* 0x36 V */ + { 0x3f, 0x18, 0x3f }, /* 0x37 W */ + { 0x33, 0x0c, 0x33 }, /* 0x38 X */ + { 0x03, 0x3c, 0x03 }, /* 0x39 Y */ + { 0x31, 0x2d, 0x23 }, /* 0x3A Z */ + { 0x00, 0x7f, 0x41 }, /* 0x3B [ */ + { 0x15, 0x3e, 0x15 }, /* 0x3C \ */ + { 0x41, 0x7f, 0x00 }, /* 0x3D ] */ + { 0x02, 0x01, 0x02 }, /* 0x3E ^ */ + { 0x40, 0x40, 0x40 }, /* 0x3F _ */ + { 0x00, 0x01, 0x02 }, /* 0x40 ` */ + { 0x18, 0x24, 0x3c }, /* 0x41 a */ + { 0x3f, 0x24, 0x18 }, /* 0x42 b */ + { 0x18, 0x24, 0x24 }, /* 0x43 c */ + { 0x18, 0x24, 0x3f }, /* 0x44 d */ + { 0x18, 0x2c, 0x2c }, /* 0x45 e */ + { 0x04, 0x3f, 0x05 }, /* 0x46 f */ + { 0x48, 0x54, 0x3c }, /* 0x47 g */ + { 0x3f, 0x04, 0x38 }, /* 0x48 h */ + { 0x00, 0x3d, 0x00 }, /* 0x49 i */ + { 0x40, 0x3d, 0x00 }, /* 0x4A j */ + { 0x3f, 0x08, 0x34 }, /* 0x4B k */ + { 0x01, 0x3f, 0x00 }, /* 0x4C l */ + { 0x3c, 0x1c, 0x38 }, /* 0x4D m */ + { 0x3c, 0x04, 0x38 }, /* 0x4E n */ + { 0x18, 0x24, 0x18 }, /* 0x4F o */ + { 0x7c, 0x24, 0x18 }, /* 0x50 p */ + { 0x18, 0x24, 0x7c }, /* 0x51 q */ + { 0x3c, 0x08, 0x04 }, /* 0x52 r */ + { 0x28, 0x3c, 0x14 }, /* 0x53 s */ + { 0x04, 0x3e, 0x24 }, /* 0x54 t */ + { 0x3c, 0x20, 0x3c }, /* 0x55 u */ + { 0x3c, 0x10, 0x0c }, /* 0x56 v */ + { 0x3c, 0x30, 0x3c }, /* 0x57 w */ + { 0x24, 0x18, 0x24 }, /* 0x58 x */ + { 0x4c, 0x50, 0x3c }, /* 0x59 y */ + { 0x24, 0x34, 0x2c }, /* 0x5A z */ + { 0x08, 0x36, 0x41 }, /* 0x5B { */ + { 0x00, 0x7f, 0x00 }, /* 0x5C | */ + { 0x41, 0x36, 0x08 }, /* 0x5D } */ + { 0x01, 0x01, 0x01 }, /* 0x5E ~ */ + { 0x10, 0x28, 0x10 }, /* 0x5F 。 */ + { 0x1f, 0x01, 0x01 }, /* 0x60 「 */ + { 0x20, 0x20, 0x3e }, /* 0x61 」 */ + { 0x10, 0x20, 0x00 }, /* 0x62 、 */ + { 0x00, 0x08, 0x00 }, /* 0x63 ・ */ + { 0x25, 0x15, 0x0f }, /* 0x64 ヲ */ + { 0x24, 0x1c, 0x0c }, /* 0x65 ァ */ + { 0x10, 0x38, 0x04 }, /* 0x66 ィ */ + { 0x18, 0x0c, 0x38 }, /* 0x67 ゥ */ + { 0x28, 0x38, 0x28 }, /* 0x68 ェ */ + { 0x28, 0x18, 0x3c }, /* 0x69 ォ */ + { 0x08, 0x3c, 0x18 }, /* 0x6A ャ */ + { 0x28, 0x38, 0x20 }, /* 0x6B ュ */ + { 0x24, 0x2c, 0x3c }, /* 0x6C ョ */ + { 0x2c, 0x2c, 0x1c }, /* 0x6D ッ */ + { 0x04, 0x08, 0x08 }, /* 0x6E ー */ + { 0x21, 0x1d, 0x07 }, /* 0x6F ア */ + { 0x08, 0x3c, 0x03 }, /* 0x70 イ */ + { 0x06, 0x23, 0x1e }, /* 0x71 ウ */ + { 0x22, 0x3e, 0x22 }, /* 0x72 エ */ + { 0x12, 0x0a, 0x3f }, /* 0x73 オ */ + { 0x32, 0x0f, 0x3e }, /* 0x74 カ */ + { 0x0a, 0x3f, 0x0a }, /* 0x75 キ */ + { 0x24, 0x13, 0x0e }, /* 0x76 ク */ + { 0x27, 0x1e, 0x02 }, /* 0x77 ケ */ + { 0x22, 0x22, 0x3e }, /* 0x78 コ */ + { 0x27, 0x12, 0x0f }, /* 0x79 サ */ + { 0x25, 0x25, 0x10 }, /* 0x7A シ */ + { 0x21, 0x19, 0x27 }, /* 0x7B ス */ + { 0x3f, 0x22, 0x2e }, /* 0x7C セ */ + { 0x21, 0x16, 0x0f }, /* 0x7D ソ */ + { 0x24, 0x1b, 0x0e }, /* 0x7E タ */ + { 0x25, 0x1f, 0x05 }, /* 0x7F チ */ + { 0x26, 0x26, 0x1e }, /* 0x80 ツ */ + { 0x25, 0x1d, 0x05 }, /* 0x81 テ */ + { 0x3f, 0x04, 0x08 }, /* 0x82 ト */ + { 0x24, 0x1f, 0x04 }, /* 0x83 ナ */ + { 0x20, 0x22, 0x22 }, /* 0x84 ニ */ + { 0x25, 0x19, 0x27 }, /* 0x85 ヌ */ + { 0x12, 0x3b, 0x16 }, /* 0x86 ネ */ + { 0x20, 0x10, 0x0f }, /* 0x87 ノ */ + { 0x3c, 0x01, 0x3e }, /* 0x88 ハ */ + { 0x1f, 0x24, 0x24 }, /* 0x89 ヒ */ + { 0x21, 0x11, 0x0f }, /* 0x8A フ */ + { 0x0c, 0x03, 0x1c }, /* 0x8B ヘ */ + { 0x1a, 0x3f, 0x1a }, /* 0x8C ホ */ + { 0x09, 0x19, 0x27 }, /* 0x8D マ */ + { 0x22, 0x2a, 0x2a }, /* 0x8E ミ */ + { 0x38, 0x27, 0x30 }, /* 0x8F ム */ + { 0x32, 0x0c, 0x13 }, /* 0x90 メ */ + { 0x05, 0x3f, 0x25 }, /* 0x91 モ */ + { 0x02, 0x3f, 0x0e }, /* 0x92 ヤ */ + { 0x21, 0x3f, 0x20 }, /* 0x93 ユ */ + { 0x25, 0x25, 0x3f }, /* 0x94 ヨ */ + { 0x25, 0x25, 0x1d }, /* 0x95 ラ */ + { 0x07, 0x20, 0x1f }, /* 0x96 リ */ + { 0x3c, 0x3f, 0x20 }, /* 0x97 ル */ + { 0x3f, 0x20, 0x10 }, /* 0x98 レ */ + { 0x3e, 0x22, 0x3e }, /* 0x99 ロ */ + { 0x23, 0x11, 0x0f }, /* 0x9A ワ */ + { 0x21, 0x21, 0x18 }, /* 0x9B ン */ + { 0x01, 0x00, 0x01 }, /* 0x9C ゙ */ + { 0x02, 0x05, 0x02 }, /* 0x9D ゚ */ +}; +#define MISAKI_FONT_F2_H +PROGMEM const uint8_t misaki_font_f2[ MISAKI_FONT_F2_SIZE + 1 ][ MISAKI_FONT_F2_W ] = +{ + { 0x75, 0x40, 0x77, 0x55, 0x75, 0x77, 0x40 }, /* 0x00 温 */ + { 0x40, 0x3e, 0x4a, 0x5e, 0x2b, 0x5e, 0x4a }, /* 0x01 度 */ + { 0x6b, 0x62, 0x7f, 0x35, 0x2f, 0x35, 0x7f }, /* 0x02 調 */ + { 0x7c, 0x5b, 0x5e, 0x24, 0x7b, 0x0e, 0x3a }, /* 0x03 節 */ + { 0x04, 0x7e, 0x01, 0x7e, 0x4a, 0x5e, 0x69 }, /* 0x04 低 */ + { 0x06, 0x3a, 0x2f, 0x3f, 0x6b, 0x7e, 0x46 }, /* 0x05 電 */ + { 0x40, 0x3f, 0x41, 0x49, 0x7f, 0x49, 0x41 }, /* 0x06 圧 */ + { 0x02, 0x62, 0x6b, 0x6b, 0x6b, 0x62, 0x02 }, /* 0x07 言 */ + { 0x6a, 0x6b, 0x14, 0x7d, 0x57, 0x7d, 0x10 }, /* 0x08 語 */ + { 0x41, 0x3f, 0x55, 0x55, 0x3d, 0x57, 0x51 }, /* 0x09 戻 */ + { 0x21, 0x3f, 0x2d, 0x7f, 0x2a, 0x12, 0x2e }, /* 0x0A 取 */ + { 0x0a, 0x77, 0x5a, 0x50, 0x5a, 0x77, 0x0a }, /* 0x0B 替 */ + { 0x20, 0x24, 0x13, 0x7d, 0x55, 0x53, 0x70 }, /* 0x0C 名 */ + { 0x7a, 0x2a, 0x7b, 0x02, 0x1a, 0x43, 0x7a }, /* 0x0D 前 */ + { 0x4a, 0x52, 0x5e, 0x2b, 0x5e, 0x42, 0x4a }, /* 0x0E 変 */ + { 0x41, 0x5f, 0x35, 0x3f, 0x55, 0x5f, 0x41 }, /* 0x0F 更 */ + { 0x7d, 0x14, 0x57, 0x7d, 0x0e, 0x40, 0x7f }, /* 0x10 削 */ + { 0x7f, 0x1b, 0x54, 0x16, 0x7d, 0x16, 0x54 }, /* 0x11 除 */ + { 0x49, 0x3a, 0x40, 0x7e, 0x57, 0x56, 0x76 }, /* 0x12 追 */ + { 0x42, 0x3f, 0x42, 0x7e, 0x7e, 0x42, 0x7e }, /* 0x13 加 */ + { 0x04, 0x7e, 0x51, 0x37, 0x7d, 0x37, 0x50 }, /* 0x14 保 */ + { 0x12, 0x7a, 0x17, 0x52, 0x76, 0x1e, 0x12 }, /* 0x15 存 */ + { 0x7f, 0x55, 0x7f, 0x14, 0x5d, 0x7f, 0x55 }, /* 0x16 睡 */ + { 0x7f, 0x55, 0x7f, 0x7f, 0x55, 0x3d, 0x57 }, /* 0x17 眠 */ + { 0x7f, 0x55, 0x37, 0x78, 0x17, 0x45, 0x7f }, /* 0x18 閉 */ + { 0x7f, 0x2b, 0x7b, 0x28, 0x7b, 0x2b, 0x7f }, /* 0x19 開 */ + { 0x1e, 0x12, 0x12, 0x7f, 0x12, 0x12, 0x1e }, /* 0x1A 中 */ + { 0x7f, 0x41, 0x6b, 0x7f, 0x6b, 0x51, 0x7f }, /* 0x1B 国 */ + { 0x52, 0x5a, 0x57, 0x3a, 0x57, 0x5a, 0x52 }, /* 0x1C 英 */ + { 0x00, 0x7f, 0x49, 0x49, 0x49, 0x49, 0x7f }, /* 0x1D 日 */ + { 0x22, 0x12, 0x2a, 0x7f, 0x2a, 0x12, 0x22 }, /* 0x1E 本 */ + { 0x16, 0x6a, 0x5e, 0x73, 0x56, 0x62, 0x16 }, /* 0x1F 密 */ + { 0x09, 0x37, 0x31, 0x5f, 0x15, 0x5f, 0x75 }, /* 0x20 碼 */ +}; +/* + プリセット + 温度調節 + タイマー + コントロール + スクリーン + ブザー + 低電圧アラーム + 言語 + 戻る + 取り替える + キャリブレーション + 名前を変更 + 削除 + 追加 + 保存 + デフォルト + 睡眠 + ブースト + 保存 + 睡眠 + 閉じる + ブースト + 保存 + ダイレクト + PID + ビッグ + ニュース + 閉じる + 開く + いいえ、 + はい、 + 中国語 + 英語 + いいえ、 + はい、 + メインスクリーン + フリップ + 保存 + アバウト + 日本語 + + 汉字转换表:温度調節低電圧言語戻取替名前変更削除追加保存睡眠閉開中国英日本密碼 +*/ +const char JP_0[] PROGMEM = { 0xf0, 0xcc, 0xdf, 0xb0, 0xb8, 0xbd, }; +const char JP_1[] PROGMEM = { 0xf2, 0x00, 0x01, 0x02, 0x03, }; +const char JP_2[] PROGMEM = { 0xf0, 0xb4, 0x99, 0xd3, 0xee, }; +const char JP_3[] PROGMEM = { 0xf0, 0xa8, 0xe8, 0xbd, 0xe2, 0xee, 0xe0, }; +const char JP_4[] PROGMEM = { 0xf0, 0xae, 0xa4, 0xdf, 0xee, 0xe8, }; +const char JP_5[] PROGMEM = { 0xf0, 0xcb, 0xab, 0xee, }; +const char JP_6[] PROGMEM = { 0xf2, 0x04, 0x05, 0x06, 0xf0, 0x97, 0xde, 0xee, 0xd5, }; +const char JP_7[] PROGMEM = { 0xf2, 0x07, 0x08, }; +const char JP_8[] PROGMEM = { 0xf2, 0x09, 0xf0, 0x8d, }; +const char JP_9[] PROGMEM = { 0xf2, 0x0a, 0xf0, 0x8c, 0xf2, 0x0b, 0xf0, 0x4a, 0x8d, }; +const char JP_10[] PROGMEM = { 0xf0, 0xa2, 0xd8, 0xdf, 0xcb, 0xe1, 0xee, 0xac, 0xdc, 0xe8, }; +const char JP_11[] PROGMEM = { 0xf2, 0x0c, 0x0d, 0xf0, 0x94, 0xf2, 0x0e, 0x0f, }; +const char JP_12[] PROGMEM = { 0xf2, 0x10, 0x11, }; +const char JP_13[] PROGMEM = { 0xf2, 0x12, 0x13, }; +const char JP_14[] PROGMEM = { 0xf2, 0x14, 0x15, }; +const char JP_15[] PROGMEM = { 0xf0, 0xbc, 0xca, 0x9e, 0xe0, 0xbd, }; +const char JP_16[] PROGMEM = { 0xf2, 0x16, 0x17, }; +const char JP_17[] PROGMEM = { 0xf0, 0xcb, 0xee, 0xae, 0xbd, }; +const char JP_18[] PROGMEM = { 0xf2, 0x14, 0x15, }; +const char JP_19[] PROGMEM = { 0xf2, 0x16, 0x17, }; +const char JP_20[] PROGMEM = { 0xf2, 0x18, 0xf0, 0x5a, 0x8d, }; +const char JP_21[] PROGMEM = { 0xf0, 0xcb, 0xee, 0xae, 0xbd, }; +const char JP_22[] PROGMEM = { 0xf2, 0x14, 0x15, }; +const char JP_23[] PROGMEM = { 0xf0, 0xb5, 0x99, 0xe1, 0xa4, 0xbd, }; +const char JP_24[] PROGMEM = { 0xf1, 0x30, 0x29, 0x24, }; +const char JP_25[] PROGMEM = { 0xf0, 0xc8, 0xb8, 0xa5, }; +const char JP_26[] PROGMEM = { 0xf0, 0xc0, 0xda, 0xee, 0xae, }; +const char JP_27[] PROGMEM = { 0xf2, 0x18, 0xf0, 0x5a, 0x8d, }; +const char JP_28[] PROGMEM = { 0xf2, 0x19, 0xf0, 0x51, }; +const char JP_29[] PROGMEM = { 0xf0, 0x46, 0x46, 0x4a, 0x01, }; +const char JP_30[] PROGMEM = { 0xf0, 0x71, 0x46, 0x01, }; +const char JP_31[] PROGMEM = { 0xf2, 0x1a, 0x1b, 0x08, }; +const char JP_32[] PROGMEM = { 0xf2, 0x1c, 0x08, }; +const char JP_33[] PROGMEM = { 0xf0, 0x46, 0x46, 0x4a, 0x01, }; +const char JP_34[] PROGMEM = { 0xf0, 0x71, 0x46, 0x01, }; +const char JP_35[] PROGMEM = { 0xf0, 0xd6, 0x99, 0xe8, 0xae, 0xa4, 0xdf, 0xee, 0xe8, }; +const char JP_36[] PROGMEM = { 0xf0, 0xca, 0xdf, 0xb8, 0xcc, }; +const char JP_37[] PROGMEM = { 0xf2, 0x14, 0x15, }; +const char JP_38[] PROGMEM = { 0xf0, 0x97, 0xc5, 0x9b, 0xbd, }; +const char JP_39[] PROGMEM = { 0xf2, 0x1d, 0x1e, 0x08, }; +const char JP_40[] PROGMEM = { 0xf2, 0x1f, 0x20, }; //密码 + +const char *const JP_table[] = {JP_0, JP_1, JP_2, JP_3, JP_4, JP_5, JP_6, JP_40, JP_7, JP_38, JP_8, JP_9, JP_10, JP_11, JP_12, JP_13, JP_14, JP_15, JP_16, JP_17, JP_18, JP_19, JP_20, JP_21, JP_22, JP_23, JP_24, JP_25, JP_26, JP_27, JP_28, JP_29, JP_30, JP_31, JP_32, JP_39, JP_35, JP_36, JP_37,}; +const char JP_Length_table[] PROGMEM = {6, 5, 5, 7, 6, 4, 9, 3, 3 , 5, 4, 9, 10, 8, 3, 3, 3, 6, 3, 5, 3, 3, 5, 5, 3, 6, 4, 4, 5, 5, 4, 5, 4, 4, 3, 4, 9, 5, 3,}; + +bool lastbutton; +#include //注意 这里使用被阉割的图形库,只有绘图功能,并非通用的版本 +Arduboy2 arduboy; + +#include +#include +#include + +// Firmware version +#define VERSION "v1.7+" + +// Type of rotary encoder +#define ROTARY_TYPE 1 // 0: 2 increments/step; 1: 4 increments/step + +// Pins +#define SENSOR_PIN A0 // temperature sense +#define VIN_PIN A1 // input voltage sense +#define BUZZER_PIN 5 // buzzer +#define BUTTON_PIN 6 // rotary encoder switch +#define ROTARY_1_PIN 7 // rotary encoder 1 +#define ROTARY_2_PIN 8 // rotary encoder 2 +#define CONTROL_PIN 9 // heater MOSFET PWM control +#define SWITCH_PIN 10 // handle vibration switch + +// Default temperature control values (recommended soldering temperature: 300-380°C) +#define ChipTempCalVal 335 //芯片内部温度读取校准值 -->可以根据实际情况修改,不同机器情况不同,通常误差在10°C内 +#define TEMP_MIN 150 // min selectable temperature +#define TEMP_MAX 400 // max selectable temperature +#define TEMP_DEFAULT 320 // default start setpoint +#define TEMP_SLEEP 150 // temperature in sleep mode +#define TEMP_BOOST 60 // temperature increase in boost mode +#define TEMP_STEP 10 // rotary encoder temp change steps + +// Default tip temperature calibration values +#define TEMP200 216 // temperature at ADC = 200 +#define TEMP280 308 // temperature at ADC = 280 +#define TEMP360 390 // temperature at ADC = 360 +#define TEMPCHP 30 // chip temperature while calibration +#define TIPMAX 8 // max number of tips +#define TIPNAMELENGTH 6 // max length of tip names (including termination) +#define TIPNAME "BC1.5" // default tip name + +// Default timer values (0 = disabled) +#define TIME2SLEEP 5 // time to enter sleep mode in minutes +#define TIME2OFF 15 // time to shut off heater in minutes +#define TIMEOFBOOST 40 // time to stay in boost mode in seconds + +// Control values +#define TIME2SETTLE 950 // time in microseconds to allow OpAmp output to settle +#define SMOOTHIE 0.05 // OpAmp output smooth factor (1=no smoothing; 0.05 default) +#define PID_ENABLE true // enable PID control +#define BEEP_ENABLE true // enable/disable buzzer +#define MAINSCREEN 1 // type of main screen (0: big numbers; 1: more infos) + +// EEPROM identifier +#define EEPROM_IDENT 0x081F // to identify if EEPROM was written by this program + +//Beep +#define SetBeepCoolTime 200 +unsigned long BeepCoolTime; + +// Define the aggressive and conservative PID tuning parameters +double aggKp = 11, aggKi = 0.5, aggKd = 1; +double consKp = 11, consKi = 3, consKd = 5; + +// Default values that can be changed by the user and stored in the EEPROM +uint16_t DefaultTemp = TEMP_DEFAULT; +uint16_t SleepTemp = TEMP_SLEEP; +uint8_t BoostTemp = TEMP_BOOST; +uint8_t time2sleep = TIME2SLEEP; +uint8_t time2off = TIME2OFF; +uint8_t timeOfBoost = TIMEOFBOOST; +uint8_t MainScrType = MAINSCREEN; +bool PIDenable = PID_ENABLE; +bool beepEnable = BEEP_ENABLE; +// Default values for tips +uint16_t CalTemp[TIPMAX][4] = {TEMP200, TEMP280, TEMP360, TEMPCHP}; +char TipName[TIPMAX][TIPNAMELENGTH] = {TIPNAME}; +uint8_t CurrentTip = 0; +uint8_t NumberOfTips = 1; + +// Menu items +/* + 这个可以选择进行界面美化 + const char *DeleteMessage[] = { "Warning", "You cannot", "delete your", "last tip!" }; + const char *MaxTipMessage[] = { "Warning", "You reached", "maximum number", "of tips!" }; +*/ +// Variables for pin change interrupt +volatile uint8_t a0, b0, c0, d0; +volatile bool ab0; +volatile int count, countMin, countMax, countStep; +volatile bool handleMoved; + +// Variables for temperature control +uint16_t SetTemp, ShowTemp, gap, Step; +double Input, Output, Setpoint, RawTemp, CurrentTemp, ChipTemp; + +// Variables for voltage readings +uint16_t Vcc, Vin; + +// State variables +bool inSleepMode = false; +bool inOffMode = false; +bool inBoostMode = false; +bool inCalibMode = false; +bool isWorky = true; +bool beepIfWorky = true; +bool TipIsPresent = true; +bool FlipState = false; +// Timing variables +uint32_t sleepmillis; +uint32_t boostmillis; +uint32_t buttonmillis; +uint8_t goneMinutes; +uint8_t goneSeconds; +uint8_t SensorCounter = 255; +//串口助手 +int x, y, a, b; +//欠压报警 +byte UnderVoltage = 0; +// Control variables +uint16_t time2settle = 300; + +//模拟数字滚轮 Numerical scrolling effect +int Value; +int LastValue[3]; +float SlidingAnimationY[3]; + +//开机密码 BootPassword +int Password = 0; + +//屏幕保护-主题:密集运算 +byte Line[4]; + +// Specify the links and initial PID tuning parameters +PID ctrl(&Input, &Output, &Setpoint, aggKp, aggKi, aggKd, REVERSE); + + + +//LANG 语言支持 +/* 0 - 中文 CHINESE + 1 - 英文 ENGLISH + 2 - 日语 +*/ +byte LANG = 1; +void Flip(bool Fmode) { + arduboy.flipVertical(Fmode); + arduboy.flipHorizontal(Fmode); +} +void setup() { + arduboy.begin(); + arduboy.setFrameRate(30); + + //Serial.begin(115200); + // set the pin modes + pinMode(SENSOR_PIN, INPUT); + pinMode(VIN_PIN, INPUT); + pinMode(BUZZER_PIN, OUTPUT); + pinMode(CONTROL_PIN, OUTPUT); + pinMode(ROTARY_1_PIN, INPUT_PULLUP); + pinMode(ROTARY_2_PIN, INPUT_PULLUP); + pinMode(BUTTON_PIN, INPUT_PULLUP); + pinMode(SWITCH_PIN, INPUT_PULLUP); + + analogWrite(CONTROL_PIN, 255); // this shuts off the heater + digitalWrite(BUZZER_PIN, LOW); // must be LOW when buzzer not in use + + // setup ADC + ADCSRA |= bit (ADPS0) | bit (ADPS1) | bit (ADPS2); // set ADC prescaler to 128 + ADCSRA |= bit (ADIE); // enable ADC interrupt + interrupts (); // enable global interrupts + + // setup pin change interrupt for rotary encoder + PCMSK0 = bit (PCINT0); // Configure pin change interrupt on Pin8 + PCICR = bit (PCIE0); // Enable pin change interrupt + PCIFR = bit (PCIF0); // Clear interrupt flag + + + // get default values from EEPROM + getEEPROM(); + //设置屏幕反转状态 + Flip(FlipState); + //初始化屏幕保护动画 + for (byte a = 0; a < 4; a++) Line[a] = 32 * a; + //开机密码 + BootPassword(); + + // read supply voltages in mV + Vcc = getVCC(); Vin = getVIN(); + + // read and set current iron temperature + SetTemp = DefaultTemp; + RawTemp = denoiseAnalog(SENSOR_PIN); + ChipTemp = getChipTemp(); + calculateTemp(); + + // turn on heater if iron temperature is well below setpoint + if ((CurrentTemp + 20) < DefaultTemp) analogWrite(CONTROL_PIN, 0); + + // tell the PID to range between 0 and the full window size + ctrl.SetOutputLimits(0, 255); + + // start PID + ctrl.SetMode(AUTOMATIC); + + // set initial rotary encoder values + a0 = PINB & 1; b0 = PIND >> 7 & 1; ab0 = (a0 == b0); + setRotary(TEMP_MIN, TEMP_MAX, TEMP_STEP, DefaultTemp); + + // reset sleep timer + sleepmillis = millis(); + + // long beep for setup completion + beep(); beep(); + + +} + + +void loop() { + //HelpMeSerialer(); + ROTARYCheck(); // check rotary encoder (temp/boost setting, enter setup menu) + SLEEPCheck(); // check and activate/deactivate sleep modes + SENSORCheck(); // reads temperature and vibration switch of the iron + Thermostat(); // heater control + MainScreen(); // updates the main page on the OLED + //beep(0); +} + + + + +// check rotary encoder; set temperature, toggle boost mode, enter setup menu accordingly +void ROTARYCheck() { + // set working temperature according to rotary encoder value + SetTemp = getRotary(); + + // check rotary encoder switch + uint8_t c = digitalRead(BUTTON_PIN); + if ( !c && c0 ) { + beep(); + buttonmillis = millis(); + while ( (!digitalRead(BUTTON_PIN)) && ((millis() - buttonmillis) < 500) ); + if ((millis() - buttonmillis) >= 500) SetupScreen(); + else { + inBoostMode = !inBoostMode; + if (inBoostMode) boostmillis = millis(); + handleMoved = true; + } + } + c0 = c; + + // check timer when in boost mode + if (inBoostMode && timeOfBoost) { + goneSeconds = (millis() - boostmillis) / 1000; + if (goneSeconds >= timeOfBoost) { + inBoostMode = false; // stop boost mode + beep(); // beep if boost mode is over + beepIfWorky = true; // beep again when working temperature is reached + } + } +} + + +// check and activate/deactivate sleep modes +void SLEEPCheck() { + if (handleMoved) { // if handle was moved + if (inSleepMode) { // in sleep or off mode? + if ((CurrentTemp + 20) < SetTemp) // if temp is well below setpoint + analogWrite(CONTROL_PIN, 0); // then start the heater right now + beep(); // beep on wake-up + beepIfWorky = true; // beep again when working temperature is reached + } + handleMoved = false; // reset handleMoved flag + inSleepMode = false; // reset sleep flag + inOffMode = false; // reset off flag + sleepmillis = millis(); // reset sleep timer + } + + // check time passed since the handle was moved + goneMinutes = (millis() - sleepmillis) / 60000; + if ( (!inSleepMode) && (time2sleep > 0) && (goneMinutes >= time2sleep) ) { + inSleepMode = true; + beep(); + } + if ( (!inOffMode) && (time2off > 0) && (goneMinutes >= time2off ) ) { + inOffMode = true; + beep(); + } +} + + +// reads temperature, vibration switch and supply voltages +void SENSORCheck() { + analogWrite(CONTROL_PIN, 255); // shut off heater in order to measure temperature + delayMicroseconds(time2settle); // wait for voltage to settle + + uint16_t temp = denoiseAnalog(SENSOR_PIN); // read ADC value for temperature + uint8_t d = digitalRead(SWITCH_PIN); // check handle vibration switch + if (d != d0) { + handleMoved = true; // set flag if handle was moved + d0 = d; + } + if (! SensorCounter--) Vin = getVIN(); // get Vin every now and then + + analogWrite(CONTROL_PIN, Output); // turn on again heater + + RawTemp += (temp - RawTemp) * SMOOTHIE; // stabilize ADC temperature reading + calculateTemp(); + + // stabilize displayed temperature when around setpoint + if ((ShowTemp != Setpoint) || (abs(ShowTemp - CurrentTemp) > 5)) ShowTemp = CurrentTemp; + + // set state variable if temperature is in working range; beep if working temperature was just reached + gap = abs(SetTemp - CurrentTemp); + if (gap < 5) { + if (!isWorky && beepIfWorky) beep(); + isWorky = true; + beepIfWorky = false; + } + else isWorky = false; + // checks if tip is present or currently inserted + if (ShowTemp > 500) TipIsPresent = false; // tip removed ? + if (!TipIsPresent && (ShowTemp < 500)) { // new tip inserted ? + analogWrite(CONTROL_PIN, 255); // shut off heater + beep(); // beep for info + TipIsPresent = true; // tip is present now + ChangeTipScreen(); // show tip selection screen + updateEEPROM(); // update setting in EEPROM + handleMoved = true; // reset all timers + RawTemp = denoiseAnalog(SENSOR_PIN); // restart temp smooth algorithm + c0 = LOW; // switch must be released + setRotary(TEMP_MIN, TEMP_MAX, TEMP_STEP, SetTemp); // reset rotary encoder + } +} + + +// calculates real temperature value according to ADC reading and calibration values +void calculateTemp() { + if (RawTemp < 200) CurrentTemp = map (RawTemp, 0, 200, 21, CalTemp[CurrentTip][0]); + else if (RawTemp < 280) CurrentTemp = map (RawTemp, 200, 280, CalTemp[CurrentTip][0], CalTemp[CurrentTip][1]); + else CurrentTemp = map (RawTemp, 280, 360, CalTemp[CurrentTip][1], CalTemp[CurrentTip][2]); +} + + +//调温 +void Thermostat() { + // define Setpoint acoording to current working mode + if (inOffMode) Setpoint = 0; + else if (inSleepMode) Setpoint = SleepTemp; + else if (inBoostMode) Setpoint = SetTemp + BoostTemp; + else Setpoint = SetTemp; + + // control the heater (PID or direct) + gap = abs(Setpoint - CurrentTemp); + if (PIDenable) { + Input = CurrentTemp; + if (gap < 30) ctrl.SetTunings(consKp, consKi, consKd); + else ctrl.SetTunings(aggKp, aggKi, aggKd); + ctrl.Compute(); + } else { + // turn on heater if current temperature is below setpoint + if ((CurrentTemp + 0.5) < Setpoint) Output = 0; else Output = 255; + } + analogWrite(CONTROL_PIN, Output); // set heater PWM +} + + +// creates a short beep on the buzzer +void beep() { + /* + if (beepEnable) { + if (BeepCoolTime + SetBeepCoolTime < millis()) { + if (state) BeepCoolTime = millis(); + analogWrite(BUZZER_PIN, 0); + } else analogWrite(BUZZER_PIN, 127); + } else analogWrite(BUZZER_PIN, 0); + */ + //体谅一下,没内存了,只能用原始的办法驱动无源蜂鸣器,否则我也不想牺牲宝贵响应资源换内存 + if (beepEnable) { + for (uint8_t i = 0; i < 255; i++) { + digitalWrite(BUZZER_PIN, HIGH); + delayMicroseconds(125); + digitalWrite(BUZZER_PIN, LOW); + delayMicroseconds(125); + } + } +} + +//设置旋转编码器的起始值 +// sets start values for rotary encoder +void setRotary(int rmin, int rmax, int rstep, int rvalue) { + countMin = rmin << ROTARY_TYPE; + countMax = rmax << ROTARY_TYPE; + countStep = rstep; + count = rvalue << ROTARY_TYPE; +} + + +// reads current rotary encoder value +int getRotary() { + return (count >> ROTARY_TYPE); +} + + +// reads user settings from EEPROM; if EEPROM values are invalid, write defaults +void getEEPROM() { + uint16_t identifier = (EEPROM.read(0) << 8) | EEPROM.read(1); + if (identifier == EEPROM_IDENT) { + DefaultTemp = (EEPROM.read(2) << 8) | EEPROM.read(3); + SleepTemp = (EEPROM.read(4) << 8) | EEPROM.read(5); + BoostTemp = EEPROM.read(6); + time2sleep = EEPROM.read(7); + time2off = EEPROM.read(8); + timeOfBoost = EEPROM.read(9); + MainScrType = EEPROM.read(10); + PIDenable = EEPROM.read(11); + beepEnable = EEPROM.read(12); + CurrentTip = EEPROM.read(13); + NumberOfTips = EEPROM.read(14); + LANG = EEPROM.read(15); + FlipState = EEPROM.read(16); + UnderVoltage = EEPROM.read(17); + Password = (EEPROM.read(18) << 8) | EEPROM.read(19); + uint8_t i, j; + uint16_t counter = 20; + for (i = 0; i < NumberOfTips; i++) { + for (j = 0; j < TIPNAMELENGTH; j++) { + TipName[i][j] = EEPROM.read(counter++); + } + for (j = 0; j < 4; j++) { + CalTemp[i][j] = EEPROM.read(counter++) << 8; + CalTemp[i][j] |= EEPROM.read(counter++); + } + } + } + else { + EEPROM.update(0, EEPROM_IDENT >> 8); EEPROM.update(1, EEPROM_IDENT & 0xFF); + updateEEPROM(); + } +} + + +// writes user settings to EEPROM using updade function to minimize write cycles +void updateEEPROM() { + EEPROM.update( 2, DefaultTemp >> 8); + EEPROM.update( 3, DefaultTemp & 0xFF); + EEPROM.update( 4, SleepTemp >> 8); + EEPROM.update( 5, SleepTemp & 0xFF); + EEPROM.update( 6, BoostTemp); + EEPROM.update( 7, time2sleep); + EEPROM.update( 8, time2off); + EEPROM.update( 9, timeOfBoost); + EEPROM.update(10, MainScrType); + EEPROM.update(11, PIDenable); + EEPROM.update(12, beepEnable); + EEPROM.update(13, CurrentTip); + EEPROM.update(14, NumberOfTips); + EEPROM.update(15, LANG); + EEPROM.update(16, FlipState); + EEPROM.update(17, UnderVoltage); + EEPROM.update(18, Password >> 8); + EEPROM.update(19, Password & 0xFF); + uint8_t i, j; + uint16_t counter = 20; + for (i = 0; i < NumberOfTips; i++) { + for (j = 0; j < TIPNAMELENGTH; j++) EEPROM.update(counter++, TipName[i][j]); + for (j = 0; j < 4; j++) { + EEPROM.update(counter++, CalTemp[i][j] >> 8); + EEPROM.update(counter++, CalTemp[i][j] & 0xFF); + } + } +} +//此片段用于DEBUG +void HelpMeSerialer() { + //串口助手 + if (Serial.available()) { + char TmpChar = Serial.read(); + switch (TmpChar) { + case 'x': x = Serial.parseInt(); + case 'y': y = Serial.parseInt(); + case 'a': a = Serial.parseInt(); + case 'b': b = Serial.parseInt(); + } + } + /* + Serial.println(String("X ->") + x); + Serial.println(String("Y ->") + y); + Serial.println(String("A ->") + a); + Serial.println(String("B ->") + b); + */ +} +// draws the main screen +void MainScreen() { + if (!(arduboy.nextFrame())) //帧率锁 + return; + //状态 + byte SysState; + if (ShowTemp > 500) SysState = 0; + else if (inOffMode) { + SysState = 1; + DrawIntensiveComputing(); + } else if (inSleepMode) SysState = 2; + else if (inBoostMode) SysState = 3; + else if (isWorky) SysState = 4; + else if (Output < 180) SysState = 5; + else SysState = 6; + if (SysState != 1) { + if (MainScrType) { + arduboy.clear(); + //详细信息页 + arduboy.fillRect(0, 0, 128, 64, 1); //白底 + arduboy.setTextSize(1); + SetTextColor(0); + //预设名 + arduboy.drawSlowXYBitmap(0, 0, Tag, 16, 16, 0); + arduboy.setCursor(19, 4); arduboy.print(TipName[CurrentTip]); + //显示状态 + arduboy.setCursor(53, 1); + arduboy.setTextSize(2); + switch (LANG) { + case 0: arduboy.drawSlowXYBitmap(80, 1, S_table[SysState], 28, 14, 0); break; //中文 Chinese + default: //英文 English + switch (SysState) { + case 1: arduboy.print(F("OFF")); break; + case 2: arduboy.print(F("SLEEP")); break; + case 3: arduboy.print(F("BOOST")); break; + case 4: arduboy.print(F("WORKY")); break; + case 5: arduboy.print(F("HEAT")); break; + case 6: arduboy.print(F("HOLD")); break; + default: arduboy.print(F("ERROR")); break; + } break; + } + arduboy.drawSlowXYBitmap(113, 1, C_table[SysState], 14, 14, 0); + arduboy.setTextSize(1); + //芯片 + //R1 + if (getChipTemp() > 80 && ((millis() * 4) / 1000) % 2) beep(); else arduboy.drawSlowXYBitmap(2, 18, Chip, 14, 14, 0); + + //R2 + if ((float)Vin / 100 < UnderVoltage && ((millis() * 4) / 1000) % 2) beep(); else arduboy.drawSlowXYBitmap(2, 34, Lightning, 14, 14, 0); + //R3 + arduboy.setCursor(19, 16); arduboy.print(getChipTemp(), 1); arduboy.print((char)248); arduboy.print(F("C")); //芯片温度 + arduboy.setCursor(19, 24); arduboy.print((float)getVCC() / 1000, 2); arduboy.print(F("V")); //芯片电压 + arduboy.setCursor(19, 32); arduboy.print((float)Vin / 1000, 1); arduboy.print(F("V")); //输入电压 + arduboy.setCursor(19, 40); arduboy.print(F(VERSION)); //固件 + //显示探头温度 + arduboy.setCursor(57, 18); + arduboy.setTextSize(4); + if (ShowTemp > 500) arduboy.print(F("000")); else arduboy.print(ShowTemp); + arduboy.drawRect(55, 16, 72, 32, 0); + + DrawStatusBar(0); + arduboy.display(); + } else { + arduboy.clear(); + if (getChipTemp() > 80 && ((millis() * 4) / 1000) % 2) beep(); + if ((float)Vin / 100 < UnderVoltage && ((millis() * 4) / 1000) % 2) beep(); + if (ShowTemp > 500) DisplayNum(999); else DisplayNum(ShowTemp); + arduboy.fillRect(0, 48, 128, 3, 0); + DrawStatusBar(1); + arduboy.display(); + } + } +} + +void DrawStatusBar(bool color) { + SetTextColor(color); + arduboy.setTextSize(1); + //温度条 + //框 + arduboy.drawRect(1, 49, 102, 14, color); + //条 + if (ShowTemp <= 500) arduboy.fillRect(1, 49, map(ShowTemp, 0, 500, 2, 102), 14, color); + //指示部分 + arduboy.fillRect(map(Setpoint, 0, 500, 2, 102) - 2, 50, 3, 13, color); + //先来个白底 + arduboy.fillRect(map(Setpoint, 0, 500, 2, 102) - 3, 60, 5, 4, color); + arduboy.drawLine(map(Setpoint, 0, 500, 2, 102) - 1, 60, map(Setpoint, 0, 500, 2, 102) - 1, 49, !color); + + //画指示针 + arduboy.drawSlowXYBitmap(map(Setpoint, 0, 500, 2, 102) - 3, 59, Pointer, 5, 4, !color); + + //功率条 + arduboy.drawRect(104, 49, 23, 14, color); + arduboy.fillRect(104, 49, map(Output, 255, 0, 0, 23), 14, color); + + SetTextColor(!color); + //////////////进入反色//////////////////////////////// + arduboy.setCursor(2, 55); arduboy.print(Setpoint, 0); arduboy.print((char)248); arduboy.print(F("C")); //探头预设温度 + arduboy.setCursor(105, 55); arduboy.print(map(Output, 255, 0, 0, 100)); arduboy.print(F("%")); //功率百分比 + SetTextColor(color); +} + +//设置画笔颜色 +void SetTextColor(bool color) { + arduboy.setTextBackground(!color); + arduboy.setTextColor(color); +} +// setup screen +void SetupScreen() { + analogWrite(CONTROL_PIN, 255); // shut off heater + beep(); + uint16_t SaveSetTemp = SetTemp; + uint8_t selection = 0; + bool repeat = true; + + while (repeat) { + MenuLevel = 0; //默认打开主菜单 + selection = MenuScreen(selection); + switch (selection) { + case 0: MenuLevel = 1; TipScreen(); repeat = false; break; + case 1: MenuLevel = 2; TempScreen(); break; + case 2: MenuLevel = 3; TimerScreen(); break; + case 3: MenuLevel = 4; PIDenable = MenuScreen(PIDenable); break; + case 4: ScreenSet(); break; + case 5: MenuLevel = 6; beepEnable = MenuScreen(beepEnable); break; + case 6: UnderVoltageSet(); break; + case 7: PasswordSet(); break; + case 8: MenuLevel = 8; LANG = MenuScreen(LANG); break; + case 9: QRcodeScreen(); break; + default: repeat = false; break; + } + } + updateEEPROM(); + handleMoved = true; + SetTemp = SaveSetTemp; + setRotary(TEMP_MIN, TEMP_MAX, TEMP_STEP, SetTemp); +} + + +//显示设置菜单 +// tip settings screen +void ScreenSet() { + uint8_t selection = 0; + bool repeat = true; + while (repeat) { + MenuLevel = 9; + selection = MenuScreen(selection); + switch (selection) { + case 0: MenuLevel = 5; MainScrType = MenuScreen(MainScrType); break; + case 1: FlipState = !FlipState; break; + default: repeat = false; break; + } + Flip(FlipState); //设置屏幕反转状态 + } + updateEEPROM(); +} + +//预设设置菜单 +// tip settings screen +void TipScreen() { + uint8_t selection = 0; + bool repeat = true; + while (repeat) { + MenuLevel = 1; + selection = MenuScreen(selection); + switch (selection) { + case 0: ChangeTipScreen(); break; + case 1: CalibrationScreen(); break; + case 2: InputNameScreen(); break; + case 3: DeleteTipScreen(); break; + case 4: AddTipScreen(); break; + default: repeat = false; break; + } + } +} + +//温控设置菜单 +// temperature settings screen +void TempScreen() { + uint8_t selection = 0; + bool repeat = true; + while (repeat) { + selection = MenuScreen(selection); + switch (selection) { + case 0: setRotary(TEMP_MIN, TEMP_MAX, TEMP_STEP, DefaultTemp); + DefaultTemp = InputScreen(17); break; + case 1: setRotary(20, 200, TEMP_STEP, SleepTemp); + SleepTemp = InputScreen(18); break; + case 2: setRotary(10, 100, TEMP_STEP, BoostTemp); + BoostTemp = InputScreen(19); break; + default: repeat = false; break; + } + } + updateEEPROM(); +} + +//定时器设置菜单 +// timer settings screen +void TimerScreen() { + uint8_t selection = 0; + bool repeat = true; + while (repeat) { + selection = MenuScreen(selection); + switch (selection) { + case 0: setRotary(0, 30, 1, time2sleep); + time2sleep = InputScreen(21); break; + case 1: setRotary(0, 60, 5, time2off); + time2off = InputScreen(22); break; + case 2: setRotary(0, 180, 10, timeOfBoost); + timeOfBoost = InputScreen(23); break; + default: repeat = false; break; + } + } + updateEEPROM(); +} +//英语支持 +void Print_EN(byte i) { + char buffer[11]; + strcpy_P(buffer, (char *)pgm_read_word(&(EN_table[i]))); + arduboy.print(buffer); +} +//菜单界面 +// menu screen +uint8_t MenuScreen(uint8_t selected) { + int SlidingAnimationX; + uint8_t lastselected = selected; + setRotary(0, Menu_table[MenuLevel] - 1, 1, selected); + lastbutton = (!digitalRead(BUTTON_PIN)); + SetTextColor(1); + do { + selected = getRotary(); + //非线性滑动动画 + SlidingAnimationX += (selected - lastselected) * 56; + if (SlidingAnimationX != 0) SlidingAnimationX += 0.6 * (-SlidingAnimationX); + lastselected = selected; + arduboy.clear(); + //绘制图标 如果有指定的话 + for (byte i = 0; i < 5; i++) if (selected - 2 + i >= 0 && selected - 2 + i < Menu_table[MenuLevel]) DrawApp(-72 + i * 56 + SlidingAnimationX, selected - 2 + i + QueryMenuObject()); + DrawAppText(selected + QueryMenuObject()); + + arduboy.display(); + CheckLastButton(); + //beep(0); + } while (digitalRead(BUTTON_PIN) || lastbutton); + beep(); + return selected; +} +//显示APP图标 +void DrawApp(int x, byte appID) { + DrawUIFrame(x, 0, 1); + drawSlowXYBitmapResize(x + 3, 3, Ico_table[appID], 14, 14, 3, 1); +} +//显示APP对应的文本 +void DrawAppText(byte appID) { +// arduboy.setCursor(0, 55); arduboy.print(appID); + if (LANG == 0) arduboy.drawSlowXYBitmap(48, 48, CN_table[appID], 36, 16, 1); else if (LANG == 2) { + drawText(48, 52, JP_table[appID], pgm_read_byte(&(JP_Length_table[appID]))); + } else { + arduboy.setCursor(48, 52); + arduboy.setTextSize(1); + Print_EN(appID); + } +} +void DrawUIFrame(int x, int y, bool color) { + arduboy.fillRect(x, y, 48, 48, color); + arduboy.fillRect(x + 3, y + 3, 42, 42, !color); //雕空 + DrawPoint(x, y, 0); + DrawPoint(x + 47, y, 0); + DrawPoint(x, y + 47, 0); + DrawPoint(x + 47, y + 47, 0); +} +void DrawPoint(int x, int y, bool color) { + arduboy.drawPixel(x + 1, y, color); + arduboy.drawPixel(x - 1, y, color); + arduboy.drawPixel(x, y + 1, color); + arduboy.drawPixel(x, y - 1, color); + arduboy.drawPixel(x, y, color); +} +//检查按键 +void CheckLastButton() { + if (lastbutton && digitalRead(BUTTON_PIN)) { + delay(10); + lastbutton = false; + } +} +//返回对应层数的对象数 +byte QueryMenuObject() { + int SUM = 0; + for (int i = 0; i < (MenuLevel); i++) SUM += Menu_table[i]; + return SUM; +} +//信息窗 +/* + void MessageScreen(const char *Items[], uint8_t numberOfItems) { + lastbutton = (!digitalRead(BUTTON_PIN)); + + //u8g.setFont(//u8g_font_9x15); + //u8g.setFontPosTop(); + for (uint8_t i = 0; i < numberOfItems; i++) //u8g.drawStr( 0, i * 16, Items[i]); + + do { + CheckLastButton(); + } while (digitalRead(BUTTON_PIN) || lastbutton); + beep(); + } +*/ +/* + 好看是好看,但是浪费内存 + int wav(byte wavi, int num) { + return (wavi + byte(millis() / 100)) * (float(float(num - countMin) / float(countMax - countMin)) - 0.5) * 5; + } +*/ +//FP 密集运算屏保 +void DrawIntensiveComputing() { + analogWrite(CONTROL_PIN, 255); //关闭MOS管 + float calculate; + // while (1) { + arduboy.clear(); + + //随机线条 + DrawIntensiveComputingLine(); + + calculate = sin(millis() / 4000.0); + //模拟噪点 + for (int i = 0; i < calculate * 256 + 256; i++) arduboy.drawPixel(random(0, 128), random(0, 64), 1); + //声效 + if ((beepEnable)) analogWrite(BUZZER_PIN, 64 + calculate * 64 + random(-8, 8)); + //if ((beepEnable)) tone(BUZZER_PIN, int(calculate * 300) + 500 + random(-50, 50)); //没必要浪费内存 + + arduboy.display(); + //delay(60-calculate*30); + //} +} +//绘制屏保-密集运算线条 +void DrawIntensiveComputingLine() { + for (byte a = 0; a < 4; a++) { + Line[a] += random(-1, 1); + if (Line[a] > 128) Line[a] -= 128; + for (byte b = 0; b < random(3, 6); b++) { + arduboy.drawFastHLine(0, Line[a] + random(-10, 10), 128, 1); //水平线 + arduboy.drawFastVLine(Line[a] + random(-10, 10), 0, 64, 1); //垂直线 + } + } +} +//模拟数字滚轮 Numerical scrolling effect +void DisplayNum(int Num) { + arduboy.setTextSize(6); + SetTextColor(0); + //数字滚轮 + for (byte i = 0; i < 3; i++) LastValue[i] = int(Value / pow(10, 2 - i)) % 10; + Value = Num; + for (byte i = 0; i < 3; i++) { + SlidingAnimationY[i] += ((int(Value / pow(10, 2 - i)) % 10) - LastValue[i]) * 50; + if (SlidingAnimationY[i] != 0) SlidingAnimationY[i] += 0.8 * (-SlidingAnimationY[i]); + arduboy.fillRect(0 + i * 44, 0, 38, 50, 1); //白底 + for (int ii = -1; ii < 2; ii++) { + arduboy.setCursor(4 + i * 44, 4 - SlidingAnimationY[i] + ii * 50); + arduboy.print(LastValue[i] + ii); + } + } + //刻度标 + arduboy.fillRect(0, 0, 128, 2, 0); //上遮罩层 + arduboy.fillRect(0, 48, 128, 16, 0); //下遮罩层 +} + +//数值输入界面 +// input value screen +uint16_t InputScreen(byte appID) { + lastbutton = (!digitalRead(BUTTON_PIN)); + do { + arduboy.clear(); + DisplayNum(getRotary()); + DrawAppText(appID); + arduboy.display(); + CheckLastButton(); + } while (digitalRead(BUTTON_PIN) || lastbutton); + beep(); + return Value; +} +int InputBigNum(int InputPW, byte appID) { + setRotary(0, 900, 100, InputPW); + InputPW = InputScreen(appID); + setRotary(InputPW, InputPW + 90, 10, InputPW); + InputPW = InputScreen(appID); + setRotary(InputPW, InputPW + 9, 1, InputPW); + InputPW = InputScreen(appID); + return InputPW; +} +void QRcodeScreen() { + arduboy.clear(); + arduboy.drawSlowXYBitmap(40, 0, QRCode, 48, 48, 1); + arduboy.display(); + delay(100); + do { + } while (digitalRead(BUTTON_PIN) || lastbutton); + beep(); +} +//欠压报警设置 +// information display screen +void UnderVoltageSet() { + setRotary(0, 250, 1, UnderVoltage); + UnderVoltage = InputScreen(6); + beep(); +} +//设置开机密码 +void PasswordSet() { + Password = InputBigNum(Password, 7); + beep(); +} + +void BootPassword() { + if (Password != 0) { + do { + arduboy.clear(); + DrawApp(40, 7); + DrawAppText(7); + arduboy.display(); + delay(1000); + beep(); beep(); beep(); + } while (InputBigNum(0, 7) != Password); + } +} +//更换预设界面 +// change tip screen +void ChangeTipScreen() { + uint8_t selected = CurrentTip; + uint8_t lastselected = selected; + int8_t arrow = 0; + if (selected) arrow = 1; + setRotary(0, NumberOfTips - 1, 1, selected); + lastbutton = (!digitalRead(BUTTON_PIN)); + do { + //beep(0); + arduboy.clear(); + selected = getRotary(); + arrow = constrain(arrow + selected - lastselected, 0, 2); + lastselected = selected; + SetTextColor(0); + arduboy.setTextSize(2); + arduboy.setCursor(0, 0); arduboy.print(F("Select Tip")); + SetTextColor(1); + arduboy.setCursor(0, 16 * (arrow + 1)); arduboy.print(F(">")); + for (uint8_t i = 0; i < 3; i++) { + uint8_t drawnumber = selected + i - arrow; + if (drawnumber < NumberOfTips) { + arduboy.setCursor(12, 16 * (i + 1)); arduboy.print(TipName[selected + i - arrow]); + } + } + CheckLastButton(); + arduboy.display(); + } while (digitalRead(BUTTON_PIN) || lastbutton); + + beep(); + CurrentTip = selected; +} + +//温度校准界面 +// temperature calibration screen +void CalibrationScreen() { + uint16_t CalTempNew[4]; + for (uint8_t CalStep = 0; CalStep < 3; CalStep++) { + SetTemp = CalTemp[CurrentTip][CalStep]; + setRotary(100, 500, 1, SetTemp); + beepIfWorky = true; + lastbutton = (!digitalRead(BUTTON_PIN)); + do { + arduboy.clear(); + arduboy.setTextSize(2); + SENSORCheck(); // reads temperature and vibration switch of the iron + Thermostat(); // heater control + arduboy.setCursor(0, 0); arduboy.print(F("Step: ")); arduboy.print(CalStep + 1); arduboy.print("/3"); + if (isWorky) { + arduboy.setCursor(0, 16); arduboy.print(F("Set measured")); + arduboy.setCursor(0, 32); arduboy.print(F("temp: ")); arduboy.print(getRotary()); + } else { + arduboy.setCursor(0, 16); arduboy.print(F("ADC: ")); arduboy.print(uint16_t(RawTemp)); + arduboy.setCursor(0, 32); arduboy.print(F("Please wait")); + } + CheckLastButton(); + arduboy.display(); + } while (digitalRead(BUTTON_PIN) || lastbutton); + + CalTempNew[CalStep] = getRotary(); + beep(); delay (10); + } + + analogWrite(CONTROL_PIN, 255); // shut off heater + delayMicroseconds(time2settle); // wait for voltage to settle + CalTempNew[3] = getChipTemp(); // read chip temperature + if ((CalTempNew[0] + 30 < CalTempNew[1]) && (CalTempNew[1] + 30 < CalTempNew[2])) { + MenuLevel = 7; + if (MenuScreen(0)) { + for (uint8_t i = 0; i < 4; i++) CalTemp[CurrentTip][i] = CalTempNew[i]; + } + } +} + +//命名界面 文本输入界面 +// input tip name screen +void InputNameScreen() { + uint8_t value; + for (uint8_t digit = 0; digit < (TIPNAMELENGTH - 1); digit++) { + lastbutton = (!digitalRead(BUTTON_PIN)); + setRotary(31, 96, 1, 65); + do { + value = getRotary(); + if (value == 31) { + value = 95; + setRotary(31, 96, 1, 95); + } + if (value == 96) { + value = 32; + setRotary(31, 96, 1, 32); + } + //arduboy.setCursor(0, 0);arduboy.print(); + arduboy.clear(); + arduboy.setTextSize(2); + arduboy.setCursor(16 * digit, 48); arduboy.print(char(94)); + arduboy.setCursor(0, 32); + for (uint8_t i = 0; i < digit; i++) arduboy.print(TipName[CurrentTip][i]); + arduboy.setCursor(16 * digit, 32); arduboy.print(char(value)); + CheckLastButton(); + arduboy.display(); + } while (digitalRead(BUTTON_PIN) || lastbutton); + TipName[CurrentTip][digit] = value; + beep(); delay (10); + } + TipName[CurrentTip][TIPNAMELENGTH - 1] = 0; + return value; +} + + +// delete tip screen +void DeleteTipScreen() { + MenuLevel = 7; + if (NumberOfTips == 1) { + //MessageScreen(DeleteMessage, sizeof(DeleteMessage)); + } + else if (MenuScreen(0)) { + if (CurrentTip == (NumberOfTips - 1)) { + CurrentTip--; + } + else { + for (uint8_t i = CurrentTip; i < (NumberOfTips - 1); i++) { + for (uint8_t j = 0; j < TIPNAMELENGTH; j++) TipName[i][j] = TipName[i + 1][j]; + for (uint8_t j = 0; j < 4; j++) CalTemp[i][j] = CalTemp[i + 1][j]; + } + } + NumberOfTips--; + } +} + + +// add new tip screen +void AddTipScreen() { + if (NumberOfTips < TIPMAX) { + CurrentTip = NumberOfTips++; InputNameScreen(); + CalTemp[CurrentTip][0] = TEMP200; CalTemp[CurrentTip][1] = TEMP280; + CalTemp[CurrentTip][2] = TEMP360; CalTemp[CurrentTip][3] = TEMPCHP; + } //MessageScreen(MaxTipMessage, sizeof(MaxTipMessage)); 信息窗 +} + + +// average several ADC readings in sleep mode to denoise +uint16_t denoiseAnalog (byte port) { + uint16_t result = 0; + ADCSRA |= bit (ADEN) | bit (ADIF); // enable ADC, turn off any pending interrupt + if (port >= A0) port -= A0; // set port and + ADMUX = (0x0F & port) | bit(REFS0); // reference to AVcc + set_sleep_mode (SLEEP_MODE_ADC); // sleep during sample for noise reduction + for (uint8_t i = 0; i < 32; i++) { // get 32 readings + sleep_mode(); // go to sleep while taking ADC sample + while (bitRead(ADCSRA, ADSC)); // make sure sampling is completed + result += ADC; // add them up + } + bitClear (ADCSRA, ADEN); // disable ADC + return (result >> 5); // devide by 32 and return value +} + +/* +//读取芯片温度 +// get internal temperature by reading ADC channel 8 against 1.1V reference +double getChipTemp() { + unsigned int wADC; + double t; + ADMUX = (_BV(REFS1) | _BV(REFS0) | _BV(MUX3)); + ADCSRA |= _BV(ADEN); + delay(5); + ADCSRA |= _BV(ADSC); + while (bit_is_set(ADCSRA, ADSC)); + wADC = ADCW; + t = (wADC - ChipTempCalVal ) / 1.22; + return (t); +} +*/ + // get internal temperature by reading ADC channel 8 against 1.1V reference + double getChipTemp() { + uint16_t result = 0; + ADCSRA |= bit (ADEN) | bit (ADIF); // enable ADC, turn off any pending interrupt + ADMUX = bit (REFS1) | bit (REFS0) | bit (MUX3); // set reference and mux + delay(10); // wait for voltages to settle + set_sleep_mode (SLEEP_MODE_ADC); // sleep during sample for noise reduction + for (uint8_t i = 0; i < 32; i++) { // get 32 readings + sleep_mode(); // go to sleep while taking ADC sample + while (bitRead(ADCSRA, ADSC)); // make sure sampling is completed + result += ADC; // add them up + } + bitClear (ADCSRA, ADEN); // disable ADC + result >>= 2; // devide by 4 + return ((result - 2594) / 9.76); // calculate internal temperature in degrees C + } + +// get input voltage in mV by reading 1.1V reference against AVcc +uint16_t getVCC() { + uint16_t result = 0; + ADCSRA |= bit (ADEN) | bit (ADIF); // enable ADC, turn off any pending interrupt + // set Vcc measurement against 1.1V reference + ADMUX = bit (REFS0) | bit (MUX3) | bit (MUX2) | bit (MUX1); + delay(1); // wait for voltages to settle + set_sleep_mode (SLEEP_MODE_ADC); // sleep during sample for noise reduction + for (uint8_t i = 0; i < 16; i++) { // get 16 readings + sleep_mode(); // go to sleep while taking ADC sample + while (bitRead(ADCSRA, ADSC)); // make sure sampling is completed + result += ADC; // add them up + } + bitClear (ADCSRA, ADEN); // disable ADC + result >>= 4; // devide by 16 + return (1125300L / result); // 1125300 = 1.1 * 1023 * 1000 +} + + +// get supply voltage in mV +uint16_t getVIN() { + long result; + result = denoiseAnalog (VIN_PIN); // read supply voltage via voltage divider + return (result * Vcc / 179.474); // 179.474 = 1023 * R13 / (R12 + R13) +} + +//ADC中断服务 +// ADC interrupt service routine +EMPTY_INTERRUPT (ADC_vect); // nothing to be done here + +//旋转编码器触发中断 +// Pin change interrupt service routine for rotary encoder +ISR (PCINT0_vect) { + uint8_t a = PINB & 1; + uint8_t b = PIND >> 7 & 1; + if (a != a0) { // A changed + a0 = a; + if (b != b0) { // B changed + b0 = b; + count = constrain(count + ((a == b) ? countStep : -countStep), countMin, countMax); + if (ROTARY_TYPE && ((a == b) != ab0)) { + count = constrain(count + ((a == b) ? countStep : -countStep), countMin, countMax);; + } + ab0 = (a == b); + handleMoved = true; + } + } +} + +//显示位图,并允许放大 代码片段改自arduboy2 +void drawSlowXYBitmapResize(int x, int y, const uint8_t *bitmap, uint8_t w, uint8_t h, uint8_t size, uint8_t color) { + // no need to draw at all of we're offscreen + /* + if (x + w < 0 || x > WIDTH - 1 || y + h < 0 || y > HEIGHT - 1) + return; + */ + int16_t xi, yi, byteWidth = (w + 7) / 8; + for (yi = 0; yi < h; yi ++) { + for (xi = 0; xi < w; xi ++) { + if (pgm_read_byte(bitmap + yi * byteWidth + xi / 8) & (128 >> (xi & 7))) { + //arduboy.drawPixel(x + xi, y + yi, color); + arduboy.fillRect(x + xi * size, y + yi * size, size, size, color); + } + } + } +} +/* + 8x8 dot Japanese font for Arduboy + + Copyright (c) 2016 emutyworks + + Released under the MIT license + https://github.com/emutyworks/8x8DotJPFont/blob/master/LICENSE.txt +*/ +void drawText(uint8_t x, uint8_t y, const uint8_t *mes, uint8_t cnt) +{ + uint8_t pb; + uint8_t page; + uint8_t screen_start = 0; + uint8_t screen_end = 128; + + if (x < screen_start) { + x = screen_start; + } + + for (uint8_t i = 0; i < cnt; i++) { + pb = pgm_read_byte_near(mes + i); + + switch (pb) { + case MISAKI_FONT_F0_PAGE: + page = MISAKI_FONT_F0_PAGE; + continue; + case MISAKI_FONT_F1_PAGE: + page = MISAKI_FONT_F1_PAGE; + continue; + case MISAKI_FONT_F2_PAGE: + page = MISAKI_FONT_F2_PAGE; + continue; + } + + if (!page) { + continue; + } + + switch (page) { +#ifdef MISAKI_FONT_F0_H + case MISAKI_FONT_F0_PAGE: + if (pb > MISAKI_FONT_F0_SIZE) { + continue; + } + if ((x + 8) > screen_end) { + x = screen_start; + y = y + 8; + } + arduboy.drawBitmap(x, y, misaki_font_f0[ pb ], MISAKI_FONT_F0_W, 8, WHITE); + x = x + 8; + break; +#endif +#ifdef MISAKI_FONT_F1_H + case MISAKI_FONT_F1_PAGE: + if (pb > MISAKI_FONT_F1_SIZE) { + continue; + } + if ((x + 4) > screen_end) { + x = screen_start; + y = y + 8; + } + arduboy.drawBitmap(x, y, misaki_font_f1[ pb ], MISAKI_FONT_F1_W, 8, WHITE); + arduboy.drawBitmap(x + 3, y, misaki_font_0x00, 1, 8, WHITE); + x = x + 4; + break; +#endif +#ifdef MISAKI_FONT_F2_H + case MISAKI_FONT_F2_PAGE: + if (pb > MISAKI_FONT_F2_SIZE) { + continue; + } + if ((x + 8) > screen_end) { + x = screen_start; + y = y + 8; + } + arduboy.drawBitmap(x, y, misaki_font_f2[ pb ], MISAKI_FONT_F2_W, 8, WHITE); + arduboy.drawBitmap(x + 7, y, misaki_font_0x00, 1, 8, WHITE); + x = x + 8; + break; +#endif + } + } +} diff --git a/software/sources/SolderingStation2_arduboy_gplib_v1.7t1.ino b/software/sources/SolderingStation2_arduboy_gplib_v1.7t1.ino new file mode 100644 index 0000000..1b36635 --- /dev/null +++ b/software/sources/SolderingStation2_arduboy_gplib_v1.7t1.ino @@ -0,0 +1,1345 @@ +/*License: http://creativecommons.org/licenses/by-sa/3.0/ + 采用CC3.0协议共享此程序 + 您可以自由地:- + -AZ + 共享 — 在任何媒介以任何形式复制、发行本作品 + 演绎 — 修改、转换或以本作品为基础进行创作 + 在任何用途下,甚至商业目的。 + 本许可协议为“自由文化作品(Free Cultural Works)”所接受。 + 只要你遵守许可协议条款,许可人就无法收回你的这些权利。 + + Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) + This is a human-readable summary of (and not a substitute for) the license. Disclaimer. + You are free to: + Share — copy and redistribute the material in any medium or format + Adapt — remix, transform, and build upon the material + for any purpose, even commercially. + This license is acceptable for Free Cultural Works. + The licensor cannot revoke these freedoms as long as you follow the license terms. +*/ +// SolderingStation2 +// +// ATmega328-controlled Soldering Station for Hakko T12 Tips. +// +// This version of the code implements: +// - Temperature measurement of the tip +// - Direct or PID control of the heater +// - Temperature control via rotary encoder +// - Boost mode by short pressing rotary encoder switch +// - Setup menu by long pressing rotary encoder switch +// - Handle movement detection (by checking ball switch) +// - Iron unconnected detection (by idenfying invalid temperature readings) +// - Time driven sleep/power off mode if iron is unused (movement detection) +// - Measurement of input voltage, Vcc and ATmega's internal temperature +// - Information display on OLED +// - Buzzer +// - Calibrating and managing different soldering tips +// - Storing user settings into the EEPROM +// - Tip change detection +// +// Power supply should be in the range of 16V/2A to 24V/3A and well +// stabilized. +// +// For calibration you need a soldering iron tips thermometer. For best results +// wait at least three minutes after switching on the soldering station before +// you start the calibration process. +// +// Controller: ATmega328p +// Core: Barebones ATmega (https://github.com/carlosefr/atmega) +// Clockspeed: 16 MHz external +// +// 2019/2020 by Stefan Wagner with great support from John Glavinos +// 2020-8 UI upgrade by LHW-createskyblue + +// Project Page: https://easyeda.com/wagiminator + +//关于界面-项目页面二维码 ->为了加入欠压报警只能阉割掉关于页面的二维码 +//const unsigned char QRCode[] PROGMEM = { 0x00, 0x00, 0x3e, 0x0e, 0x7c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x0e, 0x7c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x0e, 0x7c, 0x0c, 0x00, 0x00, 0x1f, 0xfe, 0x3f, 0xc1, 0x8c, 0x0c, 0x7f, 0xf8, 0x1f, 0xfe, 0x3f, 0xc1, 0x8c, 0x0c, 0x7f, 0xf8, 0x18, 0x06, 0x30, 0x01, 0xf3, 0x8c, 0x60, 0x18, 0x18, 0x06, 0x30, 0x01, 0xf3, 0x8c, 0x60, 0x18, 0x18, 0x06, 0x30, 0x01, 0xf3, 0x8c, 0x60, 0x18, 0x18, 0x06, 0x3e, 0x0f, 0xf0, 0x0c, 0x60, 0x18, 0x18, 0x06, 0x3e, 0x0f, 0xf0, 0x0c, 0x60, 0x18, 0x18, 0x06, 0x3f, 0xc1, 0xf0, 0x0c, 0x60, 0x18, 0x18, 0x06, 0x3f, 0xc1, 0xf0, 0x0c, 0x60, 0x18, 0x18, 0x06, 0x3f, 0xc1, 0xf0, 0x0c, 0x60, 0x18, 0x1f, 0xfe, 0x3e, 0x30, 0x70, 0x0c, 0x7f, 0xf8, 0x1f, 0xfe, 0x3e, 0x30, 0x70, 0x0c, 0x7f, 0xf8, 0x00, 0x00, 0x31, 0xce, 0x73, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x31, 0xce, 0x73, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x31, 0xce, 0x73, 0x8c, 0x00, 0x00, 0xff, 0xff, 0xf0, 0x01, 0x83, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x01, 0x83, 0x8f, 0xff, 0xff, 0x00, 0xc0, 0x01, 0xc1, 0x8c, 0x00, 0x7f, 0x1f, 0x00, 0xc0, 0x01, 0xc1, 0x8c, 0x00, 0x7f, 0x1f, 0x00, 0xc0, 0x01, 0xc1, 0x8c, 0x00, 0x7f, 0x1f, 0x07, 0xc7, 0xcf, 0xce, 0x7f, 0x8c, 0x1f, 0xf8, 0x07, 0xc7, 0xcf, 0xce, 0x7f, 0x8c, 0x1f, 0xf8, 0x07, 0xc7, 0xcf, 0xce, 0x7f, 0x8c, 0x1f, 0xf8, 0xf8, 0x00, 0x3e, 0x3e, 0x03, 0xf0, 0x7f, 0x00, 0xf8, 0x00, 0x3e, 0x3e, 0x03, 0xf0, 0x7f, 0x00, 0xe0, 0xc7, 0xcf, 0xfe, 0x03, 0x80, 0x1f, 0xe7, 0xe0, 0xc7, 0xcf, 0xfe, 0x03, 0x80, 0x1f, 0xe7, 0xe0, 0xc7, 0xcf, 0xfe, 0x03, 0x80, 0x1f, 0xe7, 0x18, 0xc0, 0x31, 0xfe, 0x0c, 0x0c, 0x1c, 0xe0, 0x18, 0xc0, 0x31, 0xfe, 0x0c, 0x0c, 0x1c, 0xe0, 0xe7, 0x39, 0xf1, 0xf0, 0x03, 0xfc, 0x7c, 0xf8, 0xe7, 0x39, 0xf1, 0xf0, 0x03, 0xfc, 0x7c, 0xf8, 0xe7, 0x39, 0xf1, 0xf0, 0x03, 0xfc, 0x7c, 0xf8, 0x1f, 0x00, 0x31, 0xcf, 0xf3, 0x8c, 0x03, 0x00, 0x1f, 0x00, 0x31, 0xcf, 0xf3, 0x8c, 0x03, 0x00, 0xe0, 0x3f, 0xff, 0xc1, 0x83, 0x8f, 0x9c, 0xe7, 0xe0, 0x3f, 0xff, 0xc1, 0x83, 0x8f, 0x9c, 0xe7, 0xe0, 0x3f, 0xff, 0xc1, 0x83, 0x8f, 0x9c, 0xe7, 0x18, 0x00, 0x30, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x18, 0x00, 0x30, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x18, 0x00, 0x30, 0x0e, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xf0, 0x3e, 0x7c, 0x0f, 0xe0, 0x00, 0xff, 0xff, 0xf0, 0x3e, 0x7c, 0x0f, 0xe0, 0x00, 0x00, 0x00, 0x31, 0xce, 0x0c, 0x0c, 0x63, 0xe0, 0x00, 0x00, 0x31, 0xce, 0x0c, 0x0c, 0x63, 0xe0, 0x00, 0x00, 0x31, 0xce, 0x0c, 0x0c, 0x63, 0xe0, 0x1f, 0xfe, 0x30, 0x01, 0x83, 0x8f, 0xe0, 0xff, 0x1f, 0xfe, 0x30, 0x01, 0x83, 0x8f, 0xe0, 0xff, 0x18, 0x06, 0x31, 0xf1, 0x8f, 0x80, 0x03, 0xe7, 0x18, 0x06, 0x31, 0xf1, 0x8f, 0x80, 0x03, 0xe7, 0x18, 0x06, 0x31, 0xf1, 0x8f, 0x80, 0x03, 0xe7, 0x18, 0x06, 0x3f, 0xff, 0x83, 0x83, 0xe3, 0x1f, 0x18, 0x06, 0x3f, 0xff, 0x83, 0x83, 0xe3, 0x1f, 0x18, 0x06, 0x31, 0xfe, 0x73, 0x8f, 0x80, 0xf8, 0x18, 0x06, 0x31, 0xfe, 0x73, 0x8f, 0x80, 0xf8, 0x18, 0x06, 0x31, 0xfe, 0x73, 0x8f, 0x80, 0xf8, 0x1f, 0xfe, 0x31, 0xfe, 0x00, 0x0c, 0x60, 0xe7, 0x1f, 0xfe, 0x31, 0xfe, 0x00, 0x0c, 0x60, 0xe7, 0x00, 0x00, 0x31, 0xfe, 0x0c, 0x0f, 0x9f, 0xe0, 0x00, 0x00, 0x31, 0xfe, 0x0c, 0x0f, 0x9f, 0xe0, 0x00, 0x00, 0x31, 0xfe, 0x0c, 0x0f, 0x9f, 0xe0 }; +//const unsigned char QRCode[] PROGMEM = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x03, 0x86, 0x70, 0x80, 0x03, 0x80, 0x03, 0x86, 0x70, 0x80, 0x03, 0x9f, 0xf3, 0xe1, 0x30, 0x9f, 0xf3, 0x9f, 0xf3, 0xe1, 0x30, 0x9f, 0xf3, 0x98, 0x33, 0x01, 0xcc, 0x98, 0x33, 0x98, 0x33, 0x01, 0xcc, 0x98, 0x33, 0x98, 0x33, 0x87, 0xc0, 0x98, 0x33, 0x98, 0x33, 0xe1, 0xc0, 0x98, 0x33, 0x98, 0x33, 0xe1, 0xc0, 0x98, 0x33, 0x9f, 0xf3, 0x98, 0xc0, 0x9f, 0xf3, 0x9f, 0xf3, 0x98, 0xc0, 0x9f, 0xf3, 0x80, 0x03, 0x66, 0xcc, 0x80, 0x03, 0x80, 0x03, 0x66, 0xcc, 0x80, 0x03, 0xff, 0xff, 0x01, 0x0c, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x1f, 0xff, 0x81, 0x00, 0x61, 0x30, 0x1f, 0x3f, 0x87, 0x3c, 0xe6, 0xfc, 0x87, 0x33, 0x87, 0x3c, 0xe6, 0xfc, 0x87, 0xf3, 0xf8, 0x03, 0x9e, 0x0f, 0x1f, 0x03, 0xf8, 0x03, 0x9e, 0x0f, 0x1f, 0x03, 0xe1, 0x3c, 0xfe, 0x0c, 0x07, 0xcf, 0xe1, 0x3c, 0xfe, 0x0c, 0x07, 0xcf, 0x99, 0x03, 0x3e, 0x30, 0x86, 0xc3, 0xe6, 0xcf, 0x38, 0x0f, 0x9e, 0xf3, 0xe6, 0xcf, 0x38, 0x0f, 0x9e, 0xf3, 0x9e, 0x03, 0x27, 0xcc, 0x81, 0x03, 0x9e, 0x03, 0x27, 0xcc, 0x81, 0x03, 0xe0, 0xff, 0xe1, 0x0c, 0xe6, 0xcf, 0xe0, 0xff, 0xe1, 0x0c, 0xe6, 0xcf, 0x98, 0x03, 0x06, 0x00, 0x00, 0xff, 0x98, 0x03, 0x06, 0x00, 0x00, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0xf8, 0x03, 0x80, 0x03, 0x66, 0x30, 0x99, 0xc3, 0x80, 0x03, 0x66, 0x30, 0x99, 0xc3, 0x9f, 0xf3, 0x01, 0x0c, 0xf8, 0xff, 0x9f, 0xf3, 0x01, 0x0c, 0xf8, 0xff, 0x98, 0x33, 0x39, 0x3c, 0x01, 0xcf, 0x98, 0x33, 0x39, 0x3c, 0x01, 0xcf, 0x98, 0x33, 0xff, 0x0c, 0x79, 0x3f, 0x98, 0x33, 0x3e, 0xcc, 0xe0, 0xf3, 0x98, 0x33, 0x3e, 0xcc, 0xe0, 0xf3, 0x9f, 0xf3, 0x3e, 0x00, 0x98, 0xcf, 0x9f, 0xf3, 0x3e, 0x00, 0x98, 0xcf, 0x80, 0x03, 0x3e, 0x30, 0xe7, 0xc3, 0x80, 0x03, 0x3e, 0x30, 0xe7, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; +//ICO +//width:16,height:16 +const unsigned char Tag[] PROGMEM = { 0x00, 0x00, 0x3b, 0xec, 0x7b, 0xee, 0x63, 0xe6, 0x63, 0xe6, 0x63, 0xe6, 0x63, 0xe6, 0x63, 0xe6, 0x63, 0xe6, 0x63, 0x66, 0x62, 0x26, 0x60, 0x06, 0x60, 0x06, 0x7f, 0xfe, 0x3f, 0xfc, 0x00, 0x00 }; +const unsigned char Chip[] PROGMEM = { 0x14, 0xa0, 0x3f, 0xf0, 0x7f, 0xf8, 0xe0, 0x1c, 0x6e, 0x18, 0xec, 0x1c, 0x68, 0x18, 0x60, 0x18, 0xe0, 0x1c, 0x60, 0x58, 0xe0, 0x1c, 0x7f, 0xf8, 0x3f, 0xf0, 0x14, 0xa0 }; +//const unsigned char HeatPipe[] PROGMEM = { 0x00, 0x00, 0x09, 0x90, 0x11, 0x88, 0x21, 0x84, 0x11, 0x88, 0x09, 0x90, 0x11, 0x88, 0x21, 0x84, 0x11, 0x88, 0x09, 0x90, 0x11, 0x88, 0x21, 0x84, 0x11, 0x88, 0x09, 0x90, 0x01, 0x80, 0x00, 0x00 }; +const unsigned char Lightning[] PROGMEM = { 0x0f, 0xe0, 0x1f, 0xc0, 0x1f, 0xc0, 0x3f, 0x80, 0x3f, 0xf8, 0x7f, 0xf0, 0x7f, 0xe0, 0x07, 0xc0, 0x07, 0x80, 0x0f, 0x00, 0x0e, 0x00, 0x1c, 0x00, 0x18, 0x00, 0x10, 0x00 }; +//const unsigned char Thermometer[] PROGMEM = { 0x01, 0x80, 0x02, 0x40, 0x03, 0x40, 0x02, 0x40, 0x03, 0x40, 0x02, 0x40, 0x03, 0x40, 0x02, 0x40, 0x03, 0x40, 0x03, 0xc0, 0x03, 0xc0, 0x03, 0xc0, 0x07, 0xe0, 0x07, 0xe0, 0x07, 0xe0, 0x03, 0xc0 }; +const unsigned char Pointer[] PROGMEM = { 0x20, 0x20, 0x70, 0xf8 }; +//状态提示 +//width:14,height:14 图标库 + +const unsigned char c1[] PROGMEM = { 0x03, 0x00, 0x07, 0x80, 0x0f, 0xc0, 0x0c, 0xc0, 0x1c, 0xe0, 0x1c, 0xe0, 0x3c, 0xf0, 0x3c, 0xf0, 0x7f, 0xf8, 0x7f, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xff, 0xfc, 0x7f, 0xf8 }; +const unsigned char c2[] PROGMEM = { 0x7f, 0xf8, 0xff, 0xfc, 0xc0, 0x0c, 0xc3, 0x0c, 0xcb, 0x4c, 0xdb, 0x6c, 0xdb, 0x6c, 0xd8, 0x6c, 0xdc, 0xec, 0xcf, 0xcc, 0xc7, 0x8c, 0xc0, 0x0c, 0xff, 0xfc, 0x7f, 0xf8 }; +const unsigned char c3[] PROGMEM = { 0x00, 0x00, 0x06, 0x00, 0x0c, 0x00, 0x18, 0xf8, 0x38, 0xf0, 0x30, 0x30, 0x70, 0x60, 0x70, 0x78, 0x78, 0xf8, 0x78, 0x00, 0x3c, 0x02, 0x3f, 0x0c, 0x1f, 0xf8, 0x0f, 0xf0, 0x03, 0xc0, 0x00, 0x00 }; +const unsigned char c5[] PROGMEM = { 0x7f, 0xf0, 0xff, 0xe0, 0xc0, 0x08, 0xc0, 0x1c, 0xc0, 0x38, 0xc8, 0x70, 0xdc, 0xe4, 0xcf, 0xcc, 0xc7, 0x8c, 0xc3, 0x0c, 0xc0, 0x0c, 0xc0, 0x0c, 0xff, 0xfc, 0x7f, 0xf8 }; +const unsigned char c6[] PROGMEM = { 0x1e, 0x10, 0x33, 0x38, 0x2d, 0x7c, 0x25, 0x38, 0x2d, 0x38, 0x25, 0x38, 0x2d, 0x38, 0x6d, 0x80, 0xde, 0xc0, 0xbf, 0x40, 0xbf, 0x40, 0xde, 0xc0, 0x61, 0x80, 0x3f, 0x00 }; +const unsigned char c7[] PROGMEM = { 0x1f, 0xe0, 0x3f, 0xf0, 0x70, 0x38, 0x60, 0x18, 0x60, 0x18, 0x60, 0x18, 0xff, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0x7c, 0xf8, 0x7c, 0xfc, 0xfc, 0x7f, 0xf8 }; +const unsigned char c_NO[] PROGMEM = { 0x80, 0x04, 0x00, 0x00, 0x3f, 0xf0, 0x37, 0xb0, 0x23, 0x10, 0x30, 0x30, 0x38, 0x70, 0x38, 0x70, 0x30, 0x30, 0x23, 0x10, 0x37, 0xb0, 0x3f, 0xf0, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char *C_table[] = {c1, c2, c3, Lightning, c5, c6, c7}; + +//设置(陈星汉认为语言是一种低像素的表达方式,容易造成隔阂; 交互界面设计尽可能形象化) +// width: 48, height: 48 + +const unsigned char Set0[] PROGMEM = { 0x88,0x24,0x08,0x20,0x38,0x30,0x38,0x30,0x38,0x30,0x38,0x30,0x38,0x30,0x38,0x30,0x39,0x30,0x3b,0xb0,0x3f,0xf0,0x3f,0xf0,0x00,0x00,0x80,0x04 }; +const unsigned char Set1[] PROGMEM = { 0xf8,0x7c,0xf3,0x3c,0xf4,0xbc,0xf6,0xbc,0xf4,0xbc,0xf6,0xbc,0xf4,0xbc,0xe4,0x9c,0xc8,0x4c,0xd0,0x2c,0xd0,0x2c,0xc8,0x4c,0xe7,0x9c,0xf0,0x3c }; +const unsigned char Set2[] PROGMEM = { 0x8f, 0xc4, 0x10, 0x20, 0x20, 0x10, 0x4c, 0xc8, 0x9f, 0xe4, 0x3d, 0xf0, 0x3d, 0xf0, 0x1d, 0xe0, 0x3e, 0xf0, 0x3f, 0x70, 0x9f, 0xe4, 0x8c, 0xc4, 0x00, 0x00, 0x30, 0x30 }; +const unsigned char Set3[] PROGMEM = { 0xc3, 0xfc, 0x18, 0x00, 0x18, 0x00, 0xc3, 0xfc, 0xff, 0xfc, 0xff, 0x0c, 0x00, 0x60, 0x00, 0x60, 0xff, 0x0c, 0xff, 0xfc, 0xf0, 0xfc, 0x06, 0x00, 0x06, 0x00, 0xf0, 0xfc }; +const unsigned char Set4[] PROGMEM = { 0x80, 0x04, 0x00, 0x00, 0x20, 0x00, 0x10, 0x00, 0x08, 0x00, 0x10, 0x00, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char Set4F[] PROGMEM = { 0x80, 0x04, 0x00, 0x00, 0x3f, 0xf0, 0x38, 0x30, 0x33, 0x10, 0x3f, 0x90, 0x38, 0x10, 0x33, 0x90, 0x27, 0x90, 0x26, 0x10, 0x30, 0x90, 0x3f, 0xf0, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char Set4FF[] PROGMEM = { 0x80, 0x04, 0x00, 0x00, 0x3f, 0xf0, 0x24, 0x30, 0x21, 0x90, 0x27, 0x90, 0x27, 0x30, 0x20, 0x70, 0x27, 0xf0, 0x23, 0x30, 0x30, 0x70, 0x3f, 0xf0, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char Set5[] PROGMEM = { 0xfc, 0xfc, 0xf8, 0x7c, 0xe0, 0x1c, 0xc0, 0x0c, 0xc0, 0x0c, 0xc0, 0x0c, 0xc0, 0x0c, 0xc0, 0x0c, 0xc0, 0x0c, 0x80, 0x04, 0x80, 0x04, 0xff, 0xfc, 0xf8, 0x7c, 0xfc, 0xfc }; +const unsigned char Set5_1[] PROGMEM = { 0xfc, 0xf4, 0xf8, 0x60, 0xe0, 0x44, 0xc0, 0x8c, 0xc1, 0x1c, 0xc2, 0x2c, 0xc4, 0x4c, 0xc8, 0x8c, 0xd1, 0x0c, 0xa2, 0x04, 0xc4, 0x04, 0x8f, 0xfc, 0x18, 0x7c, 0xbc, 0xfc }; +const unsigned char Set6[] PROGMEM = { 0xf8, 0x7c, 0xe0, 0x1c, 0xc0, 0x0c, 0xcf, 0xcc, 0xcf, 0xcc, 0xcf, 0xcc, 0xcf, 0xcc, 0xcf, 0xcc, 0xcf, 0xcc, 0xcf, 0xcc, 0xc8, 0x4c, 0xcf, 0xcc, 0xc0, 0x0c, 0xe0, 0x1c }; +const unsigned char Set_LANG[] PROGMEM = { 0xf0, 0x3c, 0xce, 0x4c, 0xbc, 0x34, 0xb8, 0x14, 0x18, 0x80, 0x10, 0x80, 0x42, 0x30, 0x60, 0x78, 0x60, 0xf8, 0x44, 0xc0, 0x80, 0x04, 0xb8, 0x84, 0xcf, 0xcc, 0xf0, 0x3c }; +const unsigned char Set7[] PROGMEM = { 0x80, 0x0c, 0x00, 0x1c, 0x3f, 0xf4, 0x3f, 0xe0, 0x3f, 0xc4, 0x37, 0x8c, 0x23, 0x18, 0x30, 0x30, 0x38, 0x70, 0x3c, 0xf0, 0x3f, 0xf0, 0x3f, 0xf0, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char Set11[] PROGMEM = { 0xf3, 0xfc, 0xe7, 0xfc, 0xce, 0x0c, 0x8e, 0x1c, 0x9f, 0x9c, 0x1f, 0x3c, 0x1f, 0x0c, 0x0e, 0x0c, 0x0f, 0xfc, 0x87, 0xf8, 0x81, 0xe4, 0xc0, 0x0c, 0xe0, 0x1c, 0xf8, 0x7c }; +const unsigned char Set8[] PROGMEM = { 0x81, 0xdc, 0x55, 0x9c, 0x29, 0x04, 0x55, 0x00, 0x29, 0x90, 0x55, 0xd0, 0x03, 0xfc, 0xff, 0x00, 0x2e, 0x00, 0x26, 0x70, 0x02, 0x50, 0x82, 0x70, 0xe6, 0x00, 0xee, 0x04 }; +const unsigned char Set9[] PROGMEM = { 0xf0, 0x3c, 0xce, 0x0c, 0xbf, 0x04, 0xb3, 0x04, 0x73, 0x00, 0x7f, 0x00, 0x7e, 0x00, 0x7c, 0x00, 0x7c, 0x00, 0x7c, 0x60, 0xbc, 0x64, 0xbe, 0x04, 0xcf, 0x0c, 0xf0, 0x3c }; +const unsigned char Set10[] PROGMEM = { 0xf8, 0x7c, 0xf7, 0xbc, 0x00, 0x00, 0x7f, 0xf8, 0x00, 0x00, 0xbf, 0xf4, 0xab, 0x54, 0xab, 0x54, 0xab, 0x54, 0xab, 0x54, 0xab, 0x54, 0xab, 0x54, 0xbf, 0xf4, 0xc0, 0x0c }; +const unsigned char Set13[] PROGMEM = { 0x80, 0x04, 0x00, 0x00, 0x3f, 0xf0, 0x3c, 0xf0, 0x34, 0xb0, 0x24, 0x90, 0x24, 0x90, 0x27, 0x90, 0x23, 0x10, 0x30, 0x30, 0x38, 0x70, 0x3f, 0xf0, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char Set12[] PROGMEM = { 0x80, 0x04, 0x00, 0x00, 0x3f, 0xf0, 0x3c, 0xf0, 0x3c, 0xf0, 0x3c, 0xf0, 0x20, 0x10, 0x20, 0x10, 0x3c, 0xf0, 0x3c, 0xf0, 0x3c, 0xf0, 0x3f, 0xf0, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char Set14[] PROGMEM = { 0xff, 0x7c, 0xfe, 0x7c, 0xfc, 0xec, 0xe8, 0xdc, 0xc8, 0x4c, 0x98, 0x4c, 0x88, 0x24, 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x04, 0xe0, 0x1c }; +const unsigned char Set15[] PROGMEM = { 0x15, 0x54, 0x3f, 0xfc, 0x15, 0x54, 0x3f, 0xfc, 0x15, 0x54, 0x3c, 0x04, 0x14, 0x04, 0x3c, 0xfc, 0x14, 0x54, 0x3c, 0xfc, 0x00, 0x54, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char Set16[] PROGMEM = { 0x15, 0x54, 0x3f, 0xf8, 0x15, 0x50, 0x3f, 0xf0, 0x15, 0x50, 0x38, 0x70, 0x10, 0x20, 0x31, 0x04, 0x13, 0x8c, 0x22, 0xa8, 0x17, 0xfc, 0x2a, 0xa8, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char Set17[] PROGMEM = { 0x80, 0x00, 0xbf, 0xf8, 0x1f, 0xf8, 0xb0, 0x08, 0x18, 0x08, 0xb9, 0xe8, 0x19, 0xb8, 0xb8, 0x38, 0x18, 0x38, 0xb9, 0xb8, 0xb9, 0xf8, 0xb0, 0xf8, 0xbf, 0xf8, 0x80, 0x00 }; +const unsigned char Set18[] PROGMEM = { 0x80, 0x00, 0xbf, 0xf8, 0x1f, 0xf8, 0xb0, 0x28, 0x1f, 0xf8, 0xb4, 0x08, 0x1f, 0xf8, 0xb1, 0x08, 0x1f, 0xf8, 0xb0, 0x48, 0xbf, 0xf8, 0xb2, 0x88, 0xbf, 0xf8, 0x80, 0x00 }; +const unsigned char Lang_CN[] PROGMEM = { 0x80, 0x04, 0x00, 0x00, 0x3f, 0xf0, 0x3c, 0xf0, 0x3c, 0xf0, 0x20, 0x10, 0x24, 0x90, 0x24, 0x90, 0x20, 0x10, 0x3c, 0xf0, 0x3c, 0xf0, 0x3f, 0xf0, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char Lang_EN[] PROGMEM = { 0x80, 0x04, 0x00, 0x00, 0x3f, 0xf0, 0x38, 0x70, 0x30, 0x30, 0x23, 0x10, 0x27, 0x90, 0x20, 0x10, 0x20, 0x10, 0x27, 0x90, 0x27, 0x90, 0x3f, 0xf0, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char Save[] PROGMEM = { 0x00, 0x04, 0x58, 0x08, 0x58, 0x08, 0x58, 0x08, 0x40, 0x08, 0x7f, 0xf8, 0x60, 0x18, 0x5f, 0xe8, 0x5b, 0x68, 0x5f, 0xe8, 0x5b, 0x68, 0x1c, 0xe8, 0x5f, 0xe8, 0x00, 0x00 }; +const unsigned char *Ico_table[] = { + Set0, Set1, Set2, Set3, Set4, Set5, Set6, Set_LANG, Set7, + Set8, Set9, Set0, Set10, Set12, Save, + Set0, Set11, Set14, Save, + Set11, Set13, Set14, Save, + Set15, Set16, + Set17, Set18, //5 + Set5_1, Set5, + c_NO, Set7, + Lang_CN, Lang_EN, //8 + Set4F, Set4FF, + Set4, Set4F, Save, +}; +const byte Menu_table[] = {9, 6, 4, 4, 2, 2, 2, 2, 2, 2, 3}; //菜单 标签 温控 定时 控制方式 首页 蜂鸣器 标签删除确认界面 语言菜单 翻转 显示 +byte MenuLevel = 0; //菜单层级 + +/*//////////////////////////////////////////////////////////////////////////////////////////////////// + 多语言支持 + Multilingual support + /////////////////////////////////////////////////////////////////////////////////////////////////// +*/ +/* + 英语库 ENGLISH +*/ +const char EN_0[] PROGMEM = "Tip"; +const char EN_1[] PROGMEM = "Temp"; +const char EN_2[] PROGMEM = "Timer"; +const char EN_3[] PROGMEM = "Control"; +const char EN_4[] PROGMEM = "Screen"; +const char EN_5[] PROGMEM = "Buzzer"; +const char EN_6[] PROGMEM = "LOW Vol"; +const char EN_7[] PROGMEM = "Lang"; +const char EN_8[] PROGMEM = "Return"; +const char EN_9[] PROGMEM = "Change"; +const char EN_10[] PROGMEM = "Calibrate"; +const char EN_11[] PROGMEM = "Rename"; +const char EN_12[] PROGMEM = "Delete"; +const char EN_13[] PROGMEM = "Add"; +const char EN_14[] PROGMEM = "Save"; +const char EN_15[] PROGMEM = "Default"; +const char EN_16[] PROGMEM = "Sleep"; +const char EN_17[] PROGMEM = "Boost"; +const char EN_18[] PROGMEM = "Save"; +const char EN_19[] PROGMEM = "Sleep"; +const char EN_20[] PROGMEM = "Off"; +const char EN_21[] PROGMEM = "Boost"; +const char EN_22[] PROGMEM = "Save"; +const char EN_23[] PROGMEM = "Direct"; +const char EN_24[] PROGMEM = "PID"; +const char EN_25[] PROGMEM = "Big"; +const char EN_26[] PROGMEM = "Infos"; +const char EN_27[] PROGMEM = "OFF"; +const char EN_28[] PROGMEM = "ON"; +const char EN_29[] PROGMEM = "NO"; +const char EN_30[] PROGMEM = "YES"; +const char EN_31[] PROGMEM = "CN"; +const char EN_32[] PROGMEM = "EN"; +const char EN_33[] PROGMEM = "NO"; +const char EN_34[] PROGMEM = "OK"; +const char EN_35[] PROGMEM = "Main Screen"; +const char EN_36[] PROGMEM = "Flip"; +const char EN_37[] PROGMEM = "Save"; +const char *const EN_table[] PROGMEM = {EN_0, EN_1, EN_2, EN_3, EN_4, EN_5, EN_6, EN_7, EN_8, EN_9, EN_10, EN_11, EN_12, EN_13, EN_14, EN_15, EN_16, EN_17, EN_18, EN_19, EN_20, EN_21, EN_22, EN_23, EN_24, EN_25, EN_26, EN_27, EN_28, EN_29, EN_30, EN_31, EN_32, EN_33, EN_34, EN_35, EN_36, EN_37,}; +/* + #!/usr/bin/python + # -*- coding: UTF-8 -*- + for num in range(0,38): + print("EN_",end="") + print(num,end='') + print(",",end="") +*/ +/* + 中文语言库 CHINESE + + //////////////////////////////////////////////////////////////////////////////////////////////////////// + 本地化提示:你可以按照位图的大小,把这里的文字位图替换成你的语言,确保位图分辨率一致即可,我们欢迎你把程序翻译为你当地的语言! + Localization tips: you can according to the size of the bitmap, + replace the text bitmap here with your language, + ensure that the bitmap resolution is consistent, + we welcome you to translate the program into your local language! + //////////////////////////////////////////////////////////////////////////////////////////////////////// +*/ +//width:28,height:14 主界面中文提示 +//Main Screen +//错误-ERROR +const unsigned char S1[] PROGMEM = { 0x20, 0x92, 0x1f, 0xc0, 0x3d, 0xf9, 0x90, 0x40, 0x20, 0x90, 0x90, 0x40, 0x40, 0x90, 0x1f, 0xc0, 0x7b, 0xff, 0x00, 0x00, 0xa0, 0x01, 0x3f, 0xe0, 0x21, 0xf9, 0x02, 0x00, 0xfd, 0x09, 0x02, 0x00, 0x21, 0x09, 0x7f, 0xf0, 0x21, 0xf9, 0x05, 0x00, 0x21, 0x09, 0x45, 0x00, 0x29, 0x09, 0x88, 0x80, 0x31, 0xf9, 0x10, 0x70, 0x21, 0x08, 0x20, 0x20 }; +//关机-OFF +const unsigned char S2[] PROGMEM = { 0x10, 0x40, 0x47, 0xc0, 0x17, 0xfc, 0x44, 0x40, 0x20, 0x03, 0xf4, 0x40, 0x23, 0xf8, 0x44, 0x40, 0x62, 0x08, 0xc4, 0x40, 0xa3, 0xf8, 0xe4, 0x40, 0x20, 0x01, 0x54, 0x40, 0x2f, 0xfd, 0x44, 0x40, 0x28, 0x06, 0x44, 0x40, 0x23, 0xf8, 0x44, 0x40, 0x20, 0x40, 0x44, 0x50, 0x20, 0x40, 0x48, 0x50, 0x21, 0x40, 0x50, 0x30, 0x20, 0x80, 0x40, 0x00 }; +//休眠-SLEEP +const unsigned char S3[] PROGMEM = { 0x10, 0x83, 0xdf, 0xc0, 0x10, 0x82, 0x50, 0x40, 0x20, 0x82, 0x50, 0x40, 0x2f, 0xff, 0xdf, 0xc0, 0x60, 0x82, 0x52, 0x00, 0x61, 0xc2, 0x52, 0x00, 0xa1, 0xc2, 0x5f, 0xe0, 0x22, 0xa3, 0xd2, 0x00, 0x22, 0xa2, 0x51, 0x00, 0x24, 0x92, 0x51, 0x00, 0x28, 0x8e, 0x50, 0x90, 0x30, 0x8b, 0xd4, 0x50, 0x20, 0x82, 0x58, 0x30, 0x20, 0x80, 0x10, 0x10 }; +//提温-BOOST +const unsigned char S4[] PROGMEM = { 0x23, 0xf2, 0x1f, 0xc0, 0x22, 0x11, 0x10, 0x40, 0xfb, 0xf0, 0x90, 0x40, 0x22, 0x12, 0x1f, 0xc0, 0x2a, 0x11, 0x10, 0x40, 0x33, 0xf1, 0x10, 0x40, 0x60, 0x00, 0x5f, 0xc0, 0xaf, 0xfc, 0x80, 0x00, 0x20, 0x41, 0x3f, 0xe0, 0x22, 0x43, 0x25, 0x20, 0x22, 0x79, 0x25, 0x20, 0x22, 0x41, 0x25, 0x20, 0xa5, 0x41, 0x25, 0x20, 0x48, 0xfd, 0x7f, 0xf0 }; +//正常工作-WORKY +const unsigned char S5[] PROGMEM = { 0x7f, 0xf8, 0x48, 0x80, 0x02, 0x00, 0x49, 0x00, 0x02, 0x01, 0xff, 0xf0, 0x02, 0x01, 0x00, 0x10, 0x02, 0x02, 0x7f, 0x20, 0x22, 0x00, 0x41, 0x00, 0x23, 0xf0, 0x7f, 0x00, 0x22, 0x00, 0x08, 0x00, 0x22, 0x00, 0xff, 0x80, 0x22, 0x00, 0x88, 0x80, 0x22, 0x00, 0x88, 0x80, 0x22, 0x00, 0x8a, 0x80, 0x22, 0x00, 0x89, 0x00, 0xff, 0xfc, 0x08, 0x00 }; +//加热-HEAT +const unsigned char S6[] PROGMEM = { 0x0f, 0x42, 0x1f, 0xc0, 0x78, 0x41, 0x10, 0x40, 0x08, 0x40, 0x90, 0x40, 0x08, 0x42, 0x1f, 0xc0, 0x08, 0x41, 0x10, 0x40, 0xff, 0xfd, 0x10, 0x40, 0x08, 0x40, 0x5f, 0xc0, 0x08, 0x40, 0x80, 0x00, 0x08, 0x41, 0x3f, 0xe0, 0x08, 0x43, 0x25, 0x20, 0x10, 0x41, 0x25, 0x20, 0x10, 0x41, 0x25, 0x20, 0x20, 0x41, 0x25, 0x20, 0x40, 0x41, 0x7f, 0xf0 }; +//维持-HOLD +const unsigned char S7[] PROGMEM = { 0x11, 0x40, 0x82, 0x00, 0x21, 0x20, 0x8f, 0xe0, 0x23, 0xfc, 0x82, 0x00, 0x4a, 0x23, 0xe2, 0x00, 0xfe, 0x20, 0x9f, 0xf0, 0x13, 0xf8, 0x80, 0x80, 0x22, 0x20, 0xc0, 0x80, 0x42, 0x21, 0xbf, 0xf0, 0xfb, 0xfa, 0x88, 0x80, 0x02, 0x20, 0x84, 0x80, 0x02, 0x20, 0x84, 0x80, 0x1a, 0x20, 0x80, 0x80, 0xe3, 0xfe, 0x82, 0x80, 0x02, 0x01, 0x01, 0x00 }; +const unsigned char *S_table[] = {S1, S2, S3, S4, S5, S6, S7}; + +// 菜单 width:36,height:16 +//MENU Oj +/* + The order here(↓) can refer to EN_table(↑↑↑) +*/ +const unsigned char t0[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x7f, 0x90, 0xf8, 0x00, 0x01, 0x08, 0x08, 0x88, 0x00, 0x0a, 0x10, 0x08, 0x88, 0x00, 0x04, 0x7f, 0x01, 0x07, 0x00, 0x1f, 0xc1, 0x3a, 0x00, 0x00, 0x05, 0x49, 0x09, 0xfc, 0x00, 0x04, 0x49, 0x08, 0x84, 0x00, 0x04, 0x49, 0x08, 0x88, 0x00, 0x04, 0x49, 0x08, 0x48, 0x00, 0x04, 0x49, 0x08, 0x50, 0x00, 0x04, 0x49, 0x0a, 0x20, 0x00, 0x04, 0x16, 0x0c, 0x58, 0x00, 0x14, 0x21, 0x89, 0x87, 0x00, 0x08, 0xc0, 0x86, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t1[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xfe, 0x08, 0x20, 0x00, 0x08, 0x82, 0x0b, 0xff, 0x00, 0x04, 0x82, 0x0a, 0x01, 0x00, 0x10, 0xfe, 0x3c, 0x51, 0x00, 0x08, 0x82, 0x08, 0x88, 0x00, 0x08, 0x82, 0x09, 0x04, 0x00, 0x02, 0xfe, 0x0c, 0x00, 0x00, 0x04, 0x00, 0x19, 0xfc, 0x00, 0x09, 0xff, 0x28, 0x20, 0x00, 0x19, 0x29, 0x08, 0x20, 0x00, 0x09, 0x29, 0x08, 0x20, 0x00, 0x09, 0x29, 0x08, 0x20, 0x00, 0x09, 0x29, 0x2b, 0xff, 0x00, 0x0b, 0xff, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t2[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x20, 0x3e, 0x04, 0x00, 0x1f, 0xff, 0xa2, 0x04, 0x00, 0x10, 0x00, 0xa2, 0xff, 0x00, 0x00, 0x01, 0x22, 0x04, 0x00, 0x0f, 0xfe, 0x22, 0x04, 0x00, 0x00, 0x40, 0x3e, 0x44, 0x00, 0x00, 0x40, 0x22, 0x24, 0x00, 0x04, 0x40, 0x22, 0x24, 0x00, 0x04, 0x7c, 0x22, 0x04, 0x00, 0x04, 0x40, 0x22, 0x04, 0x00, 0x0a, 0x40, 0x3e, 0x04, 0x00, 0x09, 0x40, 0x22, 0x24, 0x00, 0x10, 0xff, 0x80, 0x14, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00 }; +const unsigned char t3[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x10, 0x12, 0x02, 0x00, 0x05, 0xff, 0x9f, 0xd2, 0x00, 0x05, 0x00, 0x92, 0x12, 0x00, 0x1e, 0x28, 0xa2, 0x12, 0x00, 0x04, 0x44, 0x3f, 0xf2, 0x00, 0x04, 0x82, 0x02, 0x12, 0x00, 0x06, 0x00, 0x02, 0x12, 0x00, 0x0c, 0xfe, 0x1f, 0xd2, 0x00, 0x14, 0x10, 0x12, 0x52, 0x00, 0x04, 0x10, 0x12, 0x42, 0x00, 0x04, 0x10, 0x13, 0x42, 0x00, 0x04, 0x10, 0x12, 0x82, 0x00, 0x15, 0xff, 0x82, 0x0a, 0x00, 0x08, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t4[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xfe, 0x0f, 0xf8, 0x00, 0x04, 0x02, 0x00, 0x00, 0x00, 0x04, 0x02, 0x00, 0x00, 0x00, 0x07, 0xfe, 0x00, 0x00, 0x00, 0x04, 0x02, 0x3f, 0xfe, 0x00, 0x04, 0x02, 0x00, 0x80, 0x00, 0x07, 0xfe, 0x00, 0x80, 0x00, 0x00, 0x90, 0x04, 0x90, 0x00, 0x08, 0x91, 0x0c, 0x88, 0x00, 0x06, 0x93, 0x10, 0x86, 0x00, 0x02, 0x94, 0x20, 0x82, 0x00, 0x00, 0x90, 0x00, 0x80, 0x00, 0x00, 0x90, 0x02, 0x80, 0x00, 0x1f, 0xff, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t5[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x80, 0x00, 0x1f, 0xff, 0x9f, 0xfc, 0x00, 0x00, 0x40, 0x04, 0x10, 0x00, 0x0f, 0xff, 0x02, 0x20, 0x00, 0x00, 0x00, 0x3f, 0xff, 0x00, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x08, 0x42, 0x0f, 0xf8, 0x00, 0x08, 0x42, 0x08, 0x08, 0x00, 0x0f, 0xfe, 0x08, 0x08, 0x00, 0x08, 0x02, 0x0f, 0xf8, 0x00, 0x08, 0x00, 0x08, 0x08, 0x00, 0x08, 0x00, 0x08, 0x08, 0x00, 0x08, 0x00, 0x0f, 0xf8, 0x00, 0x10, 0x00, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t6[] PROGMEM = { 0x09, 0xff, 0x00, 0x40, 0x00, 0x04, 0x20, 0x3f, 0xff, 0x00, 0x04, 0x20, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x1c, 0x42, 0x0f, 0xfc, 0x00, 0x04, 0x42, 0x00, 0x00, 0x00, 0x07, 0xff, 0x80, 0x00, 0x00, 0x04, 0x00, 0x0f, 0xfc, 0x00, 0x04, 0xff, 0x00, 0x00, 0x00, 0x04, 0x81, 0x00, 0x00, 0x00, 0x05, 0x81, 0x0f, 0xfc, 0x00, 0x06, 0x81, 0x08, 0x04, 0x00, 0x04, 0xff, 0x08, 0x04, 0x00, 0x00, 0x81, 0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +const unsigned char t7[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0f, 0xfe, 0x00, 0x01, 0x00, 0x08, 0x20, 0x00, 0x03, 0xff, 0x08, 0x20, 0x00, 0x02, 0x01, 0x08, 0x20, 0x00, 0x04, 0x22, 0x08, 0x20, 0x00, 0x08, 0x20, 0x0b, 0xfe, 0x00, 0x10, 0x20, 0x08, 0x20, 0x00, 0x00, 0x50, 0x08, 0x28, 0x00, 0x00, 0x50, 0x08, 0x24, 0x00, 0x00, 0x88, 0x08, 0x22, 0x00, 0x00, 0x88, 0x10, 0x20, 0x00, 0x01, 0x04, 0x10, 0x20, 0x00, 0x02, 0x03, 0xa7, 0xff, 0x00, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char Back[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x07, 0x00, 0x00, 0x00, 0x08, 0xf8, 0x3f, 0xfe, 0x00, 0x04, 0x80, 0x20, 0x02, 0x00, 0x00, 0x80, 0x20, 0x02, 0x00, 0x00, 0xbe, 0x23, 0xe2, 0x00, 0x1c, 0x82, 0x22, 0x22, 0x00, 0x04, 0xa4, 0x22, 0x22, 0x00, 0x04, 0x94, 0x22, 0x22, 0x00, 0x04, 0x88, 0x22, 0x22, 0x00, 0x04, 0x94, 0x23, 0xe2, 0x00, 0x05, 0x22, 0x20, 0x02, 0x00, 0x05, 0x42, 0x20, 0x02, 0x00, 0x0a, 0x00, 0x3f, 0xfe, 0x00, 0x11, 0xff, 0xa0, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +const unsigned char t1_1[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x08, 0x20, 0x90, 0x00, 0x02, 0x7f, 0x98, 0x90, 0x00, 0x1f, 0x80, 0x09, 0xff, 0x00, 0x02, 0x22, 0x01, 0x10, 0x00, 0x06, 0x21, 0x8b, 0x10, 0x00, 0x07, 0x62, 0x8d, 0xfe, 0x00, 0x0a, 0xa2, 0x09, 0x10, 0x00, 0x0a, 0x14, 0x11, 0x10, 0x00, 0x12, 0x14, 0x31, 0xfe, 0x00, 0x02, 0x08, 0x11, 0x10, 0x00, 0x02, 0x14, 0x11, 0x10, 0x00, 0x02, 0x22, 0x11, 0x10, 0x00, 0x02, 0x43, 0x91, 0xff, 0x00, 0x02, 0x81, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t1_2[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x80, 0x00, 0x00, 0x50, 0x01, 0xfc, 0x00, 0x00, 0x88, 0x01, 0x04, 0x00, 0x01, 0x04, 0x03, 0x08, 0x00, 0x06, 0xfb, 0x04, 0x90, 0x00, 0x08, 0x00, 0xc0, 0x60, 0x00, 0x07, 0xdf, 0x01, 0x80, 0x00, 0x04, 0x51, 0x06, 0x00, 0x00, 0x04, 0x51, 0x1b, 0xfe, 0x00, 0x04, 0x51, 0x02, 0x02, 0x00, 0x07, 0xd9, 0x02, 0x02, 0x00, 0x04, 0x56, 0x02, 0x02, 0x00, 0x00, 0x10, 0x03, 0xfe, 0x00, 0x00, 0x10, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t1_3[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x78, 0xbc, 0x20, 0x00, 0x09, 0x48, 0xa4, 0x50, 0x00, 0x09, 0x4a, 0xa8, 0x50, 0x00, 0x09, 0x4a, 0xa8, 0x88, 0x00, 0x09, 0x4a, 0xb1, 0x04, 0x00, 0x1f, 0xfe, 0xaa, 0xfb, 0x00, 0x09, 0x4a, 0xa4, 0x20, 0x00, 0x09, 0x4a, 0xa4, 0x20, 0x00, 0x09, 0x4a, 0xa7, 0xfe, 0x00, 0x09, 0x4a, 0xb4, 0x20, 0x00, 0x09, 0x48, 0xa9, 0x24, 0x00, 0x0b, 0x48, 0xa2, 0x22, 0x00, 0x08, 0x8a, 0xa4, 0xa2, 0x00, 0x11, 0x19, 0x20, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t1_4[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x00, 0x10, 0x00, 0x1f, 0xdc, 0x3e, 0xfe, 0x00, 0x08, 0x90, 0x02, 0x12, 0x00, 0x05, 0x10, 0x04, 0xff, 0x00, 0x1f, 0xdf, 0x84, 0x12, 0x00, 0x02, 0x12, 0x0c, 0xfe, 0x00, 0x1f, 0xd2, 0x02, 0x10, 0x00, 0x02, 0x12, 0x22, 0xfe, 0x00, 0x0a, 0x92, 0x14, 0x10, 0x00, 0x0a, 0x52, 0x14, 0x10, 0x00, 0x12, 0x22, 0x0d, 0xff, 0x00, 0x02, 0x22, 0x08, 0x10, 0x00, 0x0a, 0x42, 0x14, 0x10, 0x00, 0x04, 0x02, 0x23, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +//默认 +const unsigned char t2_0[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xc8, 0x10, 0x20, 0x00, 0x12, 0x4a, 0x0c, 0x20, 0x00, 0x1a, 0xc9, 0x04, 0x20, 0x00, 0x17, 0x48, 0x00, 0x20, 0x00, 0x1f, 0xff, 0xb8, 0x20, 0x00, 0x02, 0x08, 0x08, 0x50, 0x00, 0x1f, 0xc8, 0x08, 0x50, 0x00, 0x02, 0x08, 0x08, 0x50, 0x00, 0x03, 0xc8, 0x08, 0x48, 0x00, 0x1e, 0x14, 0x08, 0x88, 0x00, 0x01, 0x54, 0x0a, 0x88, 0x00, 0x15, 0x22, 0x0c, 0x84, 0x00, 0x14, 0x43, 0x89, 0x07, 0x00, 0x00, 0x81, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +//休眠 +const unsigned char t2_1[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x10, 0x3d, 0xfc, 0x00, 0x02, 0x10, 0x25, 0x04, 0x00, 0x04, 0x10, 0x25, 0x04, 0x00, 0x05, 0xff, 0xbd, 0xfc, 0x00, 0x0c, 0x10, 0x25, 0x20, 0x00, 0x0c, 0x38, 0x25, 0x20, 0x00, 0x14, 0x38, 0x25, 0xfe, 0x00, 0x04, 0x54, 0x3d, 0x20, 0x00, 0x04, 0x54, 0x25, 0x10, 0x00, 0x04, 0x92, 0x25, 0x10, 0x00, 0x05, 0x11, 0xa5, 0x09, 0x00, 0x06, 0x11, 0x3d, 0x45, 0x00, 0x04, 0x10, 0x25, 0x83, 0x00, 0x04, 0x10, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +//提温 +const unsigned char t2_2[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x7e, 0x21, 0xfc, 0x00, 0x04, 0x42, 0x11, 0x04, 0x00, 0x1f, 0x7e, 0x09, 0x04, 0x00, 0x04, 0x42, 0x21, 0xfc, 0x00, 0x05, 0x42, 0x11, 0x04, 0x00, 0x06, 0x7e, 0x11, 0x04, 0x00, 0x0c, 0x00, 0x05, 0xfc, 0x00, 0x15, 0xff, 0x88, 0x00, 0x00, 0x04, 0x08, 0x13, 0xfe, 0x00, 0x04, 0x48, 0x32, 0x52, 0x00, 0x04, 0x4f, 0x12, 0x52, 0x00, 0x04, 0x48, 0x12, 0x52, 0x00, 0x14, 0xa8, 0x12, 0x52, 0x00, 0x09, 0x1f, 0x97, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +//关机 +const unsigned char t3_1[] PROGMEM = { 0x01, 0x04, 0x04, 0x7c, 0x00, 0x00, 0x88, 0x04, 0x44, 0x00, 0x0f, 0xff, 0x3f, 0x44, 0x00, 0x00, 0x20, 0x04, 0x44, 0x00, 0x00, 0x20, 0x0c, 0x44, 0x00, 0x00, 0x20, 0x0e, 0x44, 0x00, 0x1f, 0xff, 0x95, 0x44, 0x00, 0x00, 0x20, 0x14, 0x44, 0x00, 0x00, 0x50, 0x24, 0x44, 0x00, 0x00, 0x50, 0x04, 0x44, 0x00, 0x00, 0x88, 0x04, 0x45, 0x00, 0x01, 0x04, 0x04, 0x85, 0x00, 0x06, 0x03, 0x85, 0x03, 0x00, 0x18, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +const unsigned char t_4[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x08, 0x20, 0x00, 0x0f, 0xff, 0x09, 0xfc, 0x00, 0x00, 0x20, 0x08, 0x00, 0x00, 0x00, 0x20, 0x3e, 0x88, 0x00, 0x03, 0xfe, 0x08, 0x50, 0x00, 0x02, 0x02, 0x0b, 0xfe, 0x00, 0x03, 0xfe, 0x0c, 0x40, 0x00, 0x02, 0x02, 0x18, 0x40, 0x00, 0x03, 0xfe, 0x2b, 0xfe, 0x00, 0x02, 0x02, 0x08, 0x48, 0x00, 0x03, 0xfe, 0x08, 0x88, 0x00, 0x02, 0x02, 0x08, 0x50, 0x00, 0x02, 0x02, 0x28, 0x30, 0x00, 0x1f, 0xff, 0x91, 0xcc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t_PID[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xc3, 0xf1, 0xe0, 0x00, 0x0f, 0xe3, 0xf1, 0xf8, 0x00, 0x0c, 0x70, 0xc1, 0x9e, 0x00, 0x0c, 0x30, 0xc1, 0x86, 0x00, 0x0c, 0x30, 0xc1, 0x83, 0x00, 0x0c, 0x30, 0xc1, 0x83, 0x00, 0x0c, 0x60, 0xc1, 0x83, 0x00, 0x0c, 0x60, 0xc1, 0x83, 0x00, 0x0f, 0xc0, 0xc1, 0x83, 0x00, 0x0f, 0xc0, 0xc1, 0x86, 0x00, 0x0c, 0x00, 0xc1, 0x86, 0x00, 0x0c, 0x00, 0xc1, 0x98, 0x00, 0x0c, 0x03, 0xf1, 0xf8, 0x00, 0x0c, 0x03, 0xf1, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +const unsigned char t5_0[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xdf, 0x88, 0x40, 0x00, 0x0a, 0x24, 0x10, 0x40, 0x00, 0x11, 0x42, 0x10, 0xfe, 0x00, 0x04, 0x00, 0x22, 0x82, 0x00, 0x02, 0xff, 0x3d, 0x02, 0x00, 0x08, 0x01, 0x0a, 0x42, 0x00, 0x09, 0xf9, 0x10, 0x32, 0x00, 0x09, 0x09, 0x20, 0x12, 0x00, 0x09, 0xf9, 0x3e, 0x02, 0x00, 0x09, 0x09, 0x00, 0x02, 0x00, 0x09, 0x09, 0x0e, 0x02, 0x00, 0x09, 0xf9, 0x30, 0x22, 0x00, 0x08, 0x05, 0x00, 0x14, 0x00, 0x08, 0x02, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t5_1[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x44, 0x10, 0xfe, 0x00, 0x04, 0x28, 0x10, 0x92, 0x00, 0x05, 0xff, 0x22, 0x92, 0x00, 0x00, 0x10, 0x3c, 0x92, 0x00, 0x00, 0x10, 0x08, 0x92, 0x00, 0x1c, 0xfe, 0x10, 0x92, 0x00, 0x04, 0x10, 0x20, 0xfe, 0x00, 0x04, 0x10, 0x3e, 0x92, 0x00, 0x05, 0xff, 0x80, 0x92, 0x00, 0x04, 0x10, 0x00, 0x92, 0x00, 0x05, 0x10, 0x0e, 0x92, 0x00, 0x06, 0x10, 0x30, 0x92, 0x00, 0x04, 0x10, 0x00, 0xfe, 0x00, 0x00, 0x10, 0x00, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t5_3[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x08, 0x3f, 0xfe, 0x00, 0x1f, 0xff, 0x81, 0x00, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x07, 0xfe, 0x0f, 0xf8, 0x00, 0x04, 0x02, 0x08, 0x08, 0x00, 0x04, 0x02, 0x08, 0x88, 0x00, 0x07, 0xfe, 0x08, 0x88, 0x00, 0x04, 0x02, 0x08, 0x88, 0x00, 0x04, 0x02, 0x08, 0x88, 0x00, 0x07, 0xfe, 0x08, 0x88, 0x00, 0x04, 0x02, 0x09, 0x48, 0x00, 0x04, 0x02, 0x02, 0x30, 0x00, 0x07, 0xfe, 0x04, 0x0c, 0x00, 0x04, 0x02, 0x18, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +const unsigned char t_off[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x04, 0xff, 0x00, 0x00, 0x44, 0x02, 0x01, 0x00, 0x07, 0xff, 0x90, 0x21, 0x00, 0x00, 0x10, 0x10, 0x21, 0x00, 0x00, 0x10, 0x17, 0xfd, 0x00, 0x00, 0x10, 0x10, 0x21, 0x00, 0x0f, 0xff, 0xd0, 0x61, 0x00, 0x00, 0x10, 0x10, 0xa1, 0x00, 0x00, 0x28, 0x11, 0x21, 0x00, 0x00, 0x28, 0x12, 0x21, 0x00, 0x00, 0x44, 0x14, 0x21, 0x00, 0x00, 0x82, 0x10, 0xa1, 0x00, 0x03, 0x01, 0xd0, 0x45, 0x00, 0x0c, 0x00, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t_on[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0x80, 0x20, 0x00, 0x00, 0x84, 0x07, 0xff, 0x00, 0x00, 0x84, 0x04, 0x01, 0x00, 0x00, 0x84, 0x04, 0x01, 0x00, 0x00, 0x84, 0x04, 0x01, 0x00, 0x0f, 0xff, 0xc7, 0xff, 0x00, 0x00, 0x84, 0x04, 0x00, 0x00, 0x00, 0x84, 0x04, 0x00, 0x00, 0x00, 0x84, 0x05, 0xff, 0x00, 0x00, 0x84, 0x05, 0x01, 0x00, 0x01, 0x04, 0x09, 0x01, 0x00, 0x01, 0x04, 0x09, 0x01, 0x00, 0x02, 0x04, 0x11, 0xff, 0x00, 0x04, 0x04, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +const unsigned char t_NO[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x04, 0x91, 0x00, 0x04, 0x40, 0x02, 0x52, 0x00, 0x04, 0x7f, 0x90, 0x54, 0x00, 0x04, 0x50, 0x88, 0xff, 0x00, 0x07, 0xd0, 0x84, 0x81, 0x00, 0x04, 0x51, 0x00, 0x81, 0x00, 0x04, 0x49, 0x01, 0xff, 0x00, 0x07, 0xca, 0x02, 0x81, 0x00, 0x04, 0x44, 0x04, 0x81, 0x00, 0x04, 0x4a, 0x1c, 0xff, 0x00, 0x07, 0xea, 0x04, 0x81, 0x00, 0x0c, 0x51, 0x04, 0x81, 0x00, 0x00, 0x61, 0xc4, 0x85, 0x00, 0x00, 0x40, 0x80, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t_OK[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xdf, 0x10, 0x20, 0x00, 0x02, 0x12, 0x0c, 0x20, 0x00, 0x02, 0x24, 0x04, 0x20, 0x00, 0x04, 0x7f, 0x80, 0x20, 0x00, 0x04, 0x24, 0xb8, 0x20, 0x00, 0x0f, 0xa4, 0x88, 0x50, 0x00, 0x14, 0xbf, 0x88, 0x50, 0x00, 0x04, 0xa4, 0x88, 0x50, 0x00, 0x04, 0xa4, 0x88, 0x48, 0x00, 0x04, 0xbf, 0x88, 0x88, 0x00, 0x04, 0xa4, 0x8a, 0x88, 0x00, 0x07, 0xa4, 0x8c, 0x84, 0x00, 0x04, 0x44, 0x89, 0x07, 0x00, 0x00, 0x81, 0x86, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +const unsigned char t_CN_CN[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x40, 0x00, 0x80, 0x00, 0x0f, 0xff, 0x3f, 0xff, 0x00, 0x08, 0x41, 0x04, 0x08, 0x00, 0x08, 0x41, 0x04, 0x08, 0x00, 0x08, 0x41, 0x04, 0x10, 0x00, 0x08, 0x41, 0x02, 0x10, 0x00, 0x0f, 0xff, 0x02, 0x20, 0x00, 0x08, 0x41, 0x01, 0x20, 0x00, 0x00, 0x40, 0x00, 0xc0, 0x00, 0x00, 0x40, 0x01, 0x30, 0x00, 0x00, 0x40, 0x02, 0x08, 0x00, 0x00, 0x40, 0x0c, 0x07, 0x00, 0x00, 0x40, 0x30, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t_CN_EN[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x10, 0x00, 0x80, 0x00, 0x1f, 0xff, 0x80, 0x80, 0x00, 0x01, 0x10, 0x3f, 0xff, 0x00, 0x00, 0x40, 0x04, 0x08, 0x00, 0x07, 0xfc, 0x04, 0x08, 0x00, 0x04, 0x44, 0x04, 0x10, 0x00, 0x04, 0x44, 0x02, 0x10, 0x00, 0x04, 0x44, 0x02, 0x20, 0x00, 0x1f, 0xff, 0x81, 0x20, 0x00, 0x00, 0x40, 0x00, 0xc0, 0x00, 0x00, 0xa0, 0x01, 0x30, 0x00, 0x01, 0x10, 0x02, 0x08, 0x00, 0x06, 0x0c, 0x0c, 0x07, 0x00, 0x18, 0x03, 0xb0, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +//翻转 +const unsigned char t4f[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x1d, 0xc2, 0x08, 0x00, 0x05, 0x44, 0x42, 0x08, 0x00, 0x03, 0x84, 0x5f, 0xbf, 0x00, 0x0f, 0xe4, 0x44, 0x10, 0x00, 0x01, 0x15, 0x45, 0x10, 0x00, 0x05, 0x4c, 0xc9, 0x7f, 0x80, 0x09, 0x24, 0x4f, 0x90, 0x00, 0x07, 0xc4, 0xc1, 0x10, 0x00, 0x05, 0x4d, 0x41, 0x3f, 0x00, 0x05, 0x54, 0x43, 0x81, 0x00, 0x07, 0xc4, 0x4d, 0x02, 0x00, 0x05, 0x44, 0x41, 0x14, 0x00, 0x05, 0x55, 0x41, 0x08, 0x00, 0x07, 0xc8, 0x81, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +//保存 +const unsigned char t_save[] PROGMEM = { 0x02, 0xfe, 0x01, 0x00, 0x00, 0x02, 0x82, 0x3f, 0xff, 0x00, 0x04, 0x82, 0x02, 0x00, 0x00, 0x04, 0xfe, 0x02, 0x00, 0x00, 0x0c, 0x10, 0x04, 0xfc, 0x00, 0x14, 0x10, 0x04, 0x08, 0x00, 0x05, 0xff, 0x8c, 0x10, 0x00, 0x04, 0x10, 0x14, 0x10, 0x00, 0x04, 0x38, 0x25, 0xff, 0x00, 0x04, 0x34, 0x04, 0x10, 0x00, 0x04, 0x52, 0x04, 0x10, 0x00, 0x04, 0x91, 0x84, 0x10, 0x00, 0x05, 0x10, 0x04, 0x50, 0x00, 0x04, 0x10, 0x04, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char *CN_table[] = { + t0, t1, t2, t3, t4, t5, t7, t6, Back, //0 + t0, t1_1, t1_2, t1_3, t1_4, t_save, //1 + t2_0, t2_1, t2_2, t_save, //2 + t2_1, t3_1, t2_2, t_save,//3 + t_4, t_PID,//4 + t5_0, t5_1,//5 + t_off, t_on,//6 + t_NO, t_OK,//7 + t_CN_CN, t_CN_EN,//8 + t_NO, t_OK,//9 + t5_3, t4f, t_save, //10 +}; + +bool lastbutton; +#include //注意 这里使用被阉割的图形库,只有绘图功能,并非通用的版本 +Arduboy2 arduboy; + +#include +#include +#include + +// Firmware version +#define VERSION "v1.7t1" + +// Type of rotary encoder +#define ROTARY_TYPE 1 // 0: 2 increments/step; 1: 4 increments/step + +// Pins +#define SENSOR_PIN A0 // temperature sense +#define VIN_PIN A1 // input voltage sense +#define BUZZER_PIN 5 // buzzer +#define BUTTON_PIN 6 // rotary encoder switch +#define ROTARY_1_PIN 7 // rotary encoder 1 +#define ROTARY_2_PIN 8 // rotary encoder 2 +#define CONTROL_PIN 9 // heater MOSFET PWM control +#define SWITCH_PIN 10 // handle vibration switch + +// Default temperature control values (recommended soldering temperature: 300-380°C) +#define ChipTempCalVal 330 //芯片内部温度读取校准值 -->可以根据实际情况修改,不同机器情况不同,通常误差在10°C内 +#define TEMP_MIN 50 // min selectable temperature +#define TEMP_MAX 400 // max selectable temperature +#define TEMP_DEFAULT 320 // default start setpoint +#define TEMP_SLEEP 150 // temperature in sleep mode +#define TEMP_BOOST 60 // temperature increase in boost mode +#define TEMP_STEP 10 // rotary encoder temp change steps + +// Default tip temperature calibration values +#define TEMP200 216 // temperature at ADC = 200 +#define TEMP280 308 // temperature at ADC = 280 +#define TEMP360 390 // temperature at ADC = 360 +#define TEMPCHP 30 // chip temperature while calibration +#define TIPMAX 8 // max number of tips +#define TIPNAMELENGTH 6 // max length of tip names (including termination) +#define TIPNAME "BC1.5" // default tip name + +// Default timer values (0 = disabled) +#define TIME2SLEEP 5 // time to enter sleep mode in minutes +#define TIME2OFF 15 // time to shut off heater in minutes +#define TIMEOFBOOST 40 // time to stay in boost mode in seconds + +// Control values +#define TIME2SETTLE 950 // time in microseconds to allow OpAmp output to settle +#define SMOOTHIE 0.05 // OpAmp output smooth factor (1=no smoothing; 0.05 default) +#define PID_ENABLE true // enable PID control +#define BEEP_ENABLE true // enable/disable buzzer +#define MAINSCREEN 1 // type of main screen (0: big numbers; 1: more infos) + +// EEPROM identifier +#define EEPROM_IDENT 0x08FF // to identify if EEPROM was written by this program + +//Beep +#define SetBeepCoolTime 200 +unsigned long BeepCoolTime; + +// Define the aggressive and conservative PID tuning parameters +double aggKp = 11, aggKi = 0.5, aggKd = 1; +double consKp = 11, consKi = 3, consKd = 5; + +// Default values that can be changed by the user and stored in the EEPROM +uint16_t DefaultTemp = TEMP_DEFAULT; +uint16_t SleepTemp = TEMP_SLEEP; +uint8_t BoostTemp = TEMP_BOOST; +uint8_t time2sleep = TIME2SLEEP; +uint8_t time2off = TIME2OFF; +uint8_t timeOfBoost = TIMEOFBOOST; +uint8_t MainScrType = MAINSCREEN; +bool PIDenable = PID_ENABLE; +bool beepEnable = BEEP_ENABLE; +// Default values for tips +uint16_t CalTemp[TIPMAX][4] = {TEMP200, TEMP280, TEMP360, TEMPCHP}; +char TipName[TIPMAX][TIPNAMELENGTH] = {TIPNAME}; +uint8_t CurrentTip = 0; +uint8_t NumberOfTips = 1; + +// Menu items +/* + 这个可以选择进行界面美化 + const char *DeleteMessage[] = { "Warning", "You cannot", "delete your", "last tip!" }; + const char *MaxTipMessage[] = { "Warning", "You reached", "maximum number", "of tips!" }; +*/ +// Variables for pin change interrupt +volatile uint8_t a0, b0, c0, d0; +volatile bool ab0; +volatile int count, countMin, countMax, countStep; +volatile bool handleMoved; + +// Variables for temperature control +uint16_t SetTemp, ShowTemp, gap, Step; +double Input, Output, Setpoint, RawTemp, CurrentTemp, ChipTemp; + +// Variables for voltage readings +uint16_t Vcc, Vin; + +// State variables +bool inSleepMode = false; +bool inOffMode = false; +bool inBoostMode = false; +bool inCalibMode = false; +bool isWorky = true; +bool beepIfWorky = true; +bool TipIsPresent = true; +bool FlipState = false; +// Timing variables +uint32_t sleepmillis; +uint32_t boostmillis; +uint32_t buttonmillis; +uint8_t goneMinutes; +uint8_t goneSeconds; +uint8_t SensorCounter = 255; +//串口助手 +int x, y, a, b; +//欠压报警 +byte UnderVoltage = 0; +// Control variables +uint16_t time2settle = 300; + +//模拟数字滚轮 Numerical scrolling effect +String value; +int LastValue[3]; +float SlidingAnimationY[3]; + +// Specify the links and initial PID tuning parameters +PID ctrl(&Input, &Output, &Setpoint, aggKp, aggKi, aggKd, REVERSE); + + + +//LANG 语言支持 +/* 0 - 中文 CHINESE + 1 - 英文 ENGLISH +*/ +byte LANG = 0; +void Flip(bool Fmode) { + arduboy.flipVertical(Fmode); + arduboy.flipHorizontal(Fmode); +} +void setup() { + arduboy.begin(); + arduboy.setFrameRate(30); + + //Serial.begin(115200); + // set the pin modes + pinMode(SENSOR_PIN, INPUT); + pinMode(VIN_PIN, INPUT); + pinMode(BUZZER_PIN, OUTPUT); + pinMode(CONTROL_PIN, OUTPUT); + pinMode(ROTARY_1_PIN, INPUT_PULLUP); + pinMode(ROTARY_2_PIN, INPUT_PULLUP); + pinMode(BUTTON_PIN, INPUT_PULLUP); + pinMode(SWITCH_PIN, INPUT_PULLUP); + + analogWrite(CONTROL_PIN, 255); // this shuts off the heater + digitalWrite(BUZZER_PIN, LOW); // must be LOW when buzzer not in use + + // setup ADC + ADCSRA |= bit (ADPS0) | bit (ADPS1) | bit (ADPS2); // set ADC prescaler to 128 + ADCSRA |= bit (ADIE); // enable ADC interrupt + interrupts (); // enable global interrupts + + // setup pin change interrupt for rotary encoder + PCMSK0 = bit (PCINT0); // Configure pin change interrupt on Pin8 + PCICR = bit (PCIE0); // Enable pin change interrupt + PCIFR = bit (PCIF0); // Clear interrupt flag + + + // get default values from EEPROM + getEEPROM(); + //设置屏幕反转状态 + Flip(FlipState); + // read supply voltages in mV + Vcc = getVCC(); Vin = getVIN(); + + // read and set current iron temperature + SetTemp = DefaultTemp; + RawTemp = denoiseAnalog(SENSOR_PIN); + ChipTemp = getChipTemp(); + calculateTemp(); + + // turn on heater if iron temperature is well below setpoint + if ((CurrentTemp + 20) < DefaultTemp) analogWrite(CONTROL_PIN, 0); + + // tell the PID to range between 0 and the full window size + ctrl.SetOutputLimits(0, 255); + + // start PID + ctrl.SetMode(AUTOMATIC); + + // set initial rotary encoder values + a0 = PINB & 1; b0 = PIND >> 7 & 1; ab0 = (a0 == b0); + setRotary(TEMP_MIN, TEMP_MAX, TEMP_STEP, DefaultTemp); + + // reset sleep timer + sleepmillis = millis(); + + // long beep for setup completion + beep(); beep(); + + +} + + +void loop() { + //HelpMeSerialer(); + ROTARYCheck(); // check rotary encoder (temp/boost setting, enter setup menu) + SLEEPCheck(); // check and activate/deactivate sleep modes + SENSORCheck(); // reads temperature and vibration switch of the iron + Thermostat(); // heater control + MainScreen(); // updates the main page on the OLED + //beep(0); +} + + + + +// check rotary encoder; set temperature, toggle boost mode, enter setup menu accordingly +void ROTARYCheck() { + // set working temperature according to rotary encoder value + SetTemp = getRotary(); + + // check rotary encoder switch + uint8_t c = digitalRead(BUTTON_PIN); + if ( !c && c0 ) { + beep(); + buttonmillis = millis(); + while ( (!digitalRead(BUTTON_PIN)) && ((millis() - buttonmillis) < 500) ); + if ((millis() - buttonmillis) >= 500) SetupScreen(); + else { + inBoostMode = !inBoostMode; + if (inBoostMode) boostmillis = millis(); + handleMoved = true; + } + } + c0 = c; + + // check timer when in boost mode + if (inBoostMode && timeOfBoost) { + goneSeconds = (millis() - boostmillis) / 1000; + if (goneSeconds >= timeOfBoost) { + inBoostMode = false; // stop boost mode + beep(); // beep if boost mode is over + beepIfWorky = true; // beep again when working temperature is reached + } + } +} + + +// check and activate/deactivate sleep modes +void SLEEPCheck() { + if (handleMoved) { // if handle was moved + if (inSleepMode) { // in sleep or off mode? + if ((CurrentTemp + 20) < SetTemp) // if temp is well below setpoint + analogWrite(CONTROL_PIN, 0); // then start the heater right now + beep(); // beep on wake-up + beepIfWorky = true; // beep again when working temperature is reached + } + handleMoved = false; // reset handleMoved flag + inSleepMode = false; // reset sleep flag + inOffMode = false; // reset off flag + sleepmillis = millis(); // reset sleep timer + } + + // check time passed since the handle was moved + goneMinutes = (millis() - sleepmillis) / 60000; + if ( (!inSleepMode) && (time2sleep > 0) && (goneMinutes >= time2sleep) ) { + inSleepMode = true; + beep(); + } + if ( (!inOffMode) && (time2off > 0) && (goneMinutes >= time2off ) ) { + inOffMode = true; + beep(); + } +} + + +// reads temperature, vibration switch and supply voltages +void SENSORCheck() { + analogWrite(CONTROL_PIN, 255); // shut off heater in order to measure temperature + delayMicroseconds(time2settle); // wait for voltage to settle + + uint16_t temp = denoiseAnalog(SENSOR_PIN); // read ADC value for temperature + uint8_t d = digitalRead(SWITCH_PIN); // check handle vibration switch + if (d != d0) { + handleMoved = true; // set flag if handle was moved + d0 = d; + } + if (! SensorCounter--) Vin = getVIN(); // get Vin every now and then + + analogWrite(CONTROL_PIN, Output); // turn on again heater + + RawTemp += (temp - RawTemp) * SMOOTHIE; // stabilize ADC temperature reading + calculateTemp(); + + // stabilize displayed temperature when around setpoint + if ((ShowTemp != Setpoint) || (abs(ShowTemp - CurrentTemp) > 5)) ShowTemp = CurrentTemp; + + // set state variable if temperature is in working range; beep if working temperature was just reached + gap = abs(SetTemp - CurrentTemp); + if (gap < 5) { + if (!isWorky && beepIfWorky) beep(); + isWorky = true; + beepIfWorky = false; + } + else isWorky = false; + // checks if tip is present or currently inserted + if (ShowTemp > 500) TipIsPresent = false; // tip removed ? + if (!TipIsPresent && (ShowTemp < 500)) { // new tip inserted ? + analogWrite(CONTROL_PIN, 255); // shut off heater + beep(); // beep for info + TipIsPresent = true; // tip is present now + ChangeTipScreen(); // show tip selection screen + updateEEPROM(); // update setting in EEPROM + handleMoved = true; // reset all timers + RawTemp = denoiseAnalog(SENSOR_PIN); // restart temp smooth algorithm + c0 = LOW; // switch must be released + setRotary(TEMP_MIN, TEMP_MAX, TEMP_STEP, SetTemp); // reset rotary encoder + } +} + + +// calculates real temperature value according to ADC reading and calibration values +void calculateTemp() { + if (RawTemp < 200) CurrentTemp = map (RawTemp, 0, 200, 21, CalTemp[CurrentTip][0]); + else if (RawTemp < 280) CurrentTemp = map (RawTemp, 200, 280, CalTemp[CurrentTip][0], CalTemp[CurrentTip][1]); + else CurrentTemp = map (RawTemp, 280, 360, CalTemp[CurrentTip][1], CalTemp[CurrentTip][2]); +} + + +//调温 +void Thermostat() { + // define Setpoint acoording to current working mode + if (inOffMode) Setpoint = 0; + else if (inSleepMode) Setpoint = SleepTemp; + else if (inBoostMode) Setpoint = SetTemp + BoostTemp; + else Setpoint = SetTemp; + + // control the heater (PID or direct) + gap = abs(Setpoint - CurrentTemp); + if (PIDenable) { + Input = CurrentTemp; + if (gap < 30) ctrl.SetTunings(consKp, consKi, consKd); + else ctrl.SetTunings(aggKp, aggKi, aggKd); + ctrl.Compute(); + } else { + // turn on heater if current temperature is below setpoint + if ((CurrentTemp + 0.5) < Setpoint) Output = 0; else Output = 255; + } + analogWrite(CONTROL_PIN, Output); // set heater PWM +} + + +// creates a short beep on the buzzer +void beep() { + /* + if (beepEnable) { + if (BeepCoolTime + SetBeepCoolTime < millis()) { + if (state) BeepCoolTime = millis(); + analogWrite(BUZZER_PIN, 0); + } else analogWrite(BUZZER_PIN, 127); + } else analogWrite(BUZZER_PIN, 0); + */ + //体谅一下,没内存了,只能用原始的办法驱动无源蜂鸣器,否则我也不想牺牲宝贵响应资源换内存 + if (beepEnable) { + for (uint8_t i = 0; i < 255; i++) { + digitalWrite(BUZZER_PIN, HIGH); + delayMicroseconds(125); + digitalWrite(BUZZER_PIN, LOW); + delayMicroseconds(125); + } + } +} + +//设置旋转编码器的起始值 +// sets start values for rotary encoder +void setRotary(int rmin, int rmax, int rstep, int rvalue) { + countMin = rmin << ROTARY_TYPE; + countMax = rmax << ROTARY_TYPE; + countStep = rstep; + count = rvalue << ROTARY_TYPE; +} + + +// reads current rotary encoder value +int getRotary() { + return (count >> ROTARY_TYPE); +} + + +// reads user settings from EEPROM; if EEPROM values are invalid, write defaults +void getEEPROM() { + uint16_t identifier = (EEPROM.read(0) << 8) | EEPROM.read(1); + if (identifier == EEPROM_IDENT) { + DefaultTemp = (EEPROM.read(2) << 8) | EEPROM.read(3); + SleepTemp = (EEPROM.read(4) << 8) | EEPROM.read(5); + BoostTemp = EEPROM.read(6); + time2sleep = EEPROM.read(7); + time2off = EEPROM.read(8); + timeOfBoost = EEPROM.read(9); + MainScrType = EEPROM.read(10); + PIDenable = EEPROM.read(11); + beepEnable = EEPROM.read(12); + CurrentTip = EEPROM.read(13); + NumberOfTips = EEPROM.read(14); + LANG = EEPROM.read(15); + FlipState = EEPROM.read(16); + UnderVoltage = EEPROM.read(17); + uint8_t i, j; + uint16_t counter = 18; + for (i = 0; i < NumberOfTips; i++) { + for (j = 0; j < TIPNAMELENGTH; j++) { + TipName[i][j] = EEPROM.read(counter++); + } + for (j = 0; j < 4; j++) { + CalTemp[i][j] = EEPROM.read(counter++) << 8; + CalTemp[i][j] |= EEPROM.read(counter++); + } + } + } + else { + EEPROM.update(0, EEPROM_IDENT >> 8); EEPROM.update(1, EEPROM_IDENT & 0xFF); + updateEEPROM(); + } +} + + +// writes user settings to EEPROM using updade function to minimize write cycles +void updateEEPROM() { + EEPROM.update( 2, DefaultTemp >> 8); + EEPROM.update( 3, DefaultTemp & 0xFF); + EEPROM.update( 4, SleepTemp >> 8); + EEPROM.update( 5, SleepTemp & 0xFF); + EEPROM.update( 6, BoostTemp); + EEPROM.update( 7, time2sleep); + EEPROM.update( 8, time2off); + EEPROM.update( 9, timeOfBoost); + EEPROM.update(10, MainScrType); + EEPROM.update(11, PIDenable); + EEPROM.update(12, beepEnable); + EEPROM.update(13, CurrentTip); + EEPROM.update(14, NumberOfTips); + EEPROM.update(15, LANG); + EEPROM.update(16, FlipState); + EEPROM.update(17, UnderVoltage); + uint8_t i, j; + uint16_t counter = 18; + for (i = 0; i < NumberOfTips; i++) { + for (j = 0; j < TIPNAMELENGTH; j++) EEPROM.update(counter++, TipName[i][j]); + for (j = 0; j < 4; j++) { + EEPROM.update(counter++, CalTemp[i][j] >> 8); + EEPROM.update(counter++, CalTemp[i][j] & 0xFF); + } + } +} +//此片段用于DEBUG +void HelpMeSerialer() { + //串口助手 + if (Serial.available()) { + char TmpChar = Serial.read(); + switch (TmpChar) { + case 'x': x = Serial.parseInt(); + case 'y': y = Serial.parseInt(); + case 'a': a = Serial.parseInt(); + case 'b': b = Serial.parseInt(); + } + } + /* + Serial.println(String("X ->") + x); + Serial.println(String("Y ->") + y); + Serial.println(String("A ->") + a); + Serial.println(String("B ->") + b); + */ +} +// draws the main screen +void MainScreen() { + if (!(arduboy.nextFrame())) //帧率锁 + return; + byte SysState; + if (MainScrType) { + arduboy.clear(); + //详细信息页 + arduboy.fillRect(0, 0, 128, 64, 1); //白底 + arduboy.setTextSize(1); + SetTextColor(0); + //预设名 + arduboy.drawSlowXYBitmap(0, 0, Tag, 16, 16, 0); + arduboy.setCursor(19, 4); arduboy.print(TipName[CurrentTip]); + //状态显示 + if (ShowTemp > 500) SysState = 0; + else if (inOffMode) SysState = 1; + else if (inSleepMode) SysState = 2; + else if (inBoostMode) SysState = 3; + else if (isWorky) SysState = 4; + else if (Output < 180) SysState = 5; + else SysState = 6; + //显示状态 + arduboy.setCursor(53, 1); + arduboy.setTextSize(2); + switch (LANG) { + case 0: arduboy.drawSlowXYBitmap(80, 1, S_table[SysState], 28, 14, 0); break; //中文 Chinese + default: //英文 English + switch (SysState) { + case 1: arduboy.print(F("OFF")); break; + case 2: arduboy.print(F("SLEEP")); break; + case 3: arduboy.print(F("BOOST")); break; + case 4: arduboy.print(F("WORKY")); break; + case 5: arduboy.print(F("HEAT")); break; + case 6: arduboy.print(F("HOLD")); break; + default: arduboy.print(F("ERROR")); break; + } break; + } + arduboy.drawSlowXYBitmap(113, 1, C_table[SysState], 14, 14, 0); + arduboy.setTextSize(1); + //芯片 + //R1 + if (getChipTemp() > 80 && ((millis() * 4) / 1000) % 2) beep(); else arduboy.drawSlowXYBitmap(2, 18, Chip, 14, 14, 0); + + //R2 + if ((float)Vin / 100 < UnderVoltage && ((millis() * 4) / 1000) % 2) beep(); else arduboy.drawSlowXYBitmap(2, 34, Lightning, 14, 14, 0); + //R3 + arduboy.setCursor(19, 16); arduboy.print(getChipTemp(), 1); arduboy.print((char)248); arduboy.print(F("C")); //芯片温度 + arduboy.setCursor(19, 24); arduboy.print((float)getVCC() / 1000, 2); arduboy.print(F("V")); //芯片电压 + arduboy.setCursor(19, 32); arduboy.print((float)Vin / 1000, 1); arduboy.print(F("V")); //输入电压 + arduboy.setCursor(19, 40); arduboy.print(F(VERSION)); //固件 + //显示探头温度 + arduboy.setCursor(57, 18); + arduboy.setTextSize(4); + if (ShowTemp > 500) arduboy.print(F("000")); else arduboy.print(ShowTemp); + arduboy.drawRect(55, 16, 72, 32, 0); + + DrawStatusBar(0); + arduboy.display(); + } else { + arduboy.clear(); + if (getChipTemp() > 80 && ((millis() * 4) / 1000) % 2) beep(); + if ((float)Vin / 100 < UnderVoltage && ((millis() * 4) / 1000) % 2) beep(); + if (ShowTemp > 500) DisplayNum(999); else DisplayNum(ShowTemp); + arduboy.fillRect(0, 48, 128, 3, 0); + DrawStatusBar(1); + arduboy.display(); + } + +} + +void DrawStatusBar(bool color) { + SetTextColor(color); + arduboy.setTextSize(1); + //温度条 + //框 + arduboy.drawRect(1, 49, 102, 14, color); + //条 + if (ShowTemp <= 500) arduboy.fillRect(1, 49, map(ShowTemp, 0, 500, 2, 102), 14, color); + //指示部分 + arduboy.fillRect(map(Setpoint, 0, 500, 2, 102) - 2, 50, 3, 13, color); + //先来个白底 + arduboy.fillRect(map(Setpoint, 0, 500, 2, 102) - 3, 60, 5, 4, color); + arduboy.drawLine(map(Setpoint, 0, 500, 2, 102) - 1, 60, map(Setpoint, 0, 500, 2, 102) - 1, 49, !color); + + //画指示针 + arduboy.drawSlowXYBitmap(map(Setpoint, 0, 500, 2, 102) - 3, 59, Pointer, 5, 4, !color); + + //功率条 + arduboy.drawRect(104, 49, 23, 14, color); + arduboy.fillRect(104, 49, map(Output, 255, 0, 0, 23), 14, color); + + SetTextColor(!color); + //////////////进入反色//////////////////////////////// + arduboy.setCursor(2, 55); arduboy.print(Setpoint, 0); arduboy.print((char)248); arduboy.print(F("C")); //探头预设温度 + arduboy.setCursor(105, 55); arduboy.print(map(Output, 255, 0, 0, 100)); arduboy.print(F("%")); //功率百分比 + SetTextColor(color); +} + +//设置画笔颜色 +void SetTextColor(bool color) { + arduboy.setTextBackground(!color); + arduboy.setTextColor(color); +} +// setup screen +void SetupScreen() { + analogWrite(CONTROL_PIN, 255); // shut off heater + beep(); + uint16_t SaveSetTemp = SetTemp; + uint8_t selection = 0; + bool repeat = true; + + while (repeat) { + MenuLevel = 0; //默认打开主菜单 + selection = MenuScreen(selection); + switch (selection) { + case 0: MenuLevel = 1; TipScreen(); repeat = false; break; + case 1: MenuLevel = 2; TempScreen(); break; + case 2: MenuLevel = 3; TimerScreen(); break; + case 3: MenuLevel = 4; PIDenable = MenuScreen(PIDenable); break; + case 4: MenuLevel = 10; ScreenSet(); break; + case 5: MenuLevel = 6; beepEnable = MenuScreen(beepEnable); break; + case 7: MenuLevel = 8; LANG = MenuScreen(LANG); break; + case 6: UnderVoltageSet(); break; + default: repeat = false; break; + } + } + updateEEPROM(); + handleMoved = true; + SetTemp = SaveSetTemp; + setRotary(TEMP_MIN, TEMP_MAX, TEMP_STEP, SetTemp); +} + + +//显示设置菜单 +// tip settings screen +void ScreenSet() { + uint8_t selection = 0; + bool repeat = true; + while (repeat) { + MenuLevel = 10; + selection = MenuScreen(selection); + switch (selection) { + case 0: MenuLevel = 5; MainScrType = MenuScreen(MainScrType); break; + case 1: MenuLevel = 9; FlipState = MenuScreen(FlipState); break; + default: repeat = false; break; + } + Flip(FlipState); //设置屏幕反转状态 + } + updateEEPROM(); +} + +//预设设置菜单 +// tip settings screen +void TipScreen() { + uint8_t selection = 0; + bool repeat = true; + while (repeat) { + MenuLevel = 1; + selection = MenuScreen(selection); + switch (selection) { + case 0: ChangeTipScreen(); break; + case 1: CalibrationScreen(); break; + case 2: InputNameScreen(); break; + case 3: DeleteTipScreen(); break; + case 4: AddTipScreen(); break; + default: repeat = false; break; + } + } +} + +//温控设置菜单 +// temperature settings screen +void TempScreen() { + uint8_t selection = 0; + bool repeat = true; + while (repeat) { + selection = MenuScreen(selection); + switch (selection) { + case 0: setRotary(TEMP_MIN, TEMP_MAX, TEMP_STEP, DefaultTemp); + DefaultTemp = InputScreen(); break; + case 1: setRotary(20, 200, TEMP_STEP, SleepTemp); + SleepTemp = InputScreen(); break; + case 2: setRotary(10, 100, TEMP_STEP, BoostTemp); + BoostTemp = InputScreen(); break; + default: repeat = false; break; + } + } + updateEEPROM(); +} + +//定时器设置菜单 +// timer settings screen +void TimerScreen() { + uint8_t selection = 0; + bool repeat = true; + while (repeat) { + selection = MenuScreen(selection); + switch (selection) { + case 0: setRotary(0, 30, 1, time2sleep); + time2sleep = InputScreen(); break; + case 1: setRotary(0, 60, 5, time2off); + time2off = InputScreen(); break; + case 2: setRotary(0, 180, 10, timeOfBoost); + timeOfBoost = InputScreen(); break; + default: repeat = false; break; + } + } + updateEEPROM(); +} +//英语支持 +void Print_EN(byte i) { + char buffer[11]; + strcpy_P(buffer, (char *)pgm_read_word(&(EN_table[i]))); + arduboy.print(buffer); +} +//菜单界面 +// menu screen +uint8_t MenuScreen(uint8_t selected) { + int SlidingAnimationX; + uint8_t lastselected = selected; + setRotary(0, Menu_table[MenuLevel] - 1, 1, selected); + lastbutton = (!digitalRead(BUTTON_PIN)); + SetTextColor(1); + do { + selected = getRotary(); + //非线性滑动动画 + SlidingAnimationX += (selected - lastselected) * 56; + if (SlidingAnimationX != 0) SlidingAnimationX += 0.5 * (-SlidingAnimationX); + lastselected = selected; + arduboy.clear(); + //绘制图标 如果有指定的话 + for (byte i = 0; i < 5; i++) if (selected - 2 + i >= 0 && selected - 2 + i < Menu_table[MenuLevel]) { + DrawUIFrame(-72 + i * 56 + SlidingAnimationX, 0, 1); + drawSlowXYBitmapResize(-72 + i * 56 + SlidingAnimationX + 3, 3, Ico_table[selected - 2 + i + QueryMenuObject()], 14, 14, 3, 1); + } + + if (LANG == 0) arduboy.drawSlowXYBitmap(48, 48, CN_table[selected + QueryMenuObject()], 36, 16, 1); else { + arduboy.setCursor(48, 49); + arduboy.setTextSize(1); + Print_EN(selected + QueryMenuObject()); + } + + + arduboy.display(); + CheckLastButton(); + //beep(0); + } while (digitalRead(BUTTON_PIN) || lastbutton); + beep(); + return selected; +} +void DrawUIFrame(int x, int y, bool color) { + arduboy.fillRect(x, y, 48, 48, color); + arduboy.fillRect(x + 3, y + 3, 42, 42, !color); //雕空 + DrawPoint(x, y, 0); + DrawPoint(x + 47, y, 0); + DrawPoint(x, y + 47, 0); + DrawPoint(x + 47, y + 47, 0); +} +void DrawPoint(int x, int y, bool color) { + arduboy.drawPixel(x + 1, y, color); + arduboy.drawPixel(x - 1, y, color); + arduboy.drawPixel(x, y + 1, color); + arduboy.drawPixel(x, y - 1, color); + arduboy.drawPixel(x, y, color); +} +//检查按键 +void CheckLastButton() { + if (lastbutton && digitalRead(BUTTON_PIN)) { + delay(10); + lastbutton = false; + } +} +//返回对应层数的对象数 +byte QueryMenuObject() { + int SUM = 0; + for (int i = 0; i < (MenuLevel); i++) SUM += Menu_table[i]; + return SUM; +} +//信息窗 +/* + void MessageScreen(const char *Items[], uint8_t numberOfItems) { + lastbutton = (!digitalRead(BUTTON_PIN)); + + //u8g.setFont(//u8g_font_9x15); + //u8g.setFontPosTop(); + for (uint8_t i = 0; i < numberOfItems; i++) //u8g.drawStr( 0, i * 16, Items[i]); + + do { + CheckLastButton(); + } while (digitalRead(BUTTON_PIN) || lastbutton); + beep(); + } +*/ +/* + 好看是好看,但是浪费内存 + int wav(byte wavi, int num) { + return (wavi + byte(millis() / 100)) * (float(float(num - countMin) / float(countMax - countMin)) - 0.5) * 5; + } +*/ + +//模拟数字滚轮 Numerical scrolling effect +void DisplayNum(int Num) { + + arduboy.setTextSize(6); + SetTextColor(0); + //数字滚轮 + for (byte i = 0; i < 3; i++) LastValue[i] = byte(value[i]); + value = Num; + for (byte i = 0; i < 3; i++) { + SlidingAnimationY[i] += (byte(value[i]) - LastValue[i]) * 50; + if (SlidingAnimationY[i] != 0) SlidingAnimationY[i] += 0.8 * (-SlidingAnimationY[i]); + arduboy.fillRect(0 + i * 44, 0, 38, 50, 1); //白底 + for (int ii = -1; ii < 2; ii++) { + arduboy.setCursor(4 + i * 44, 4 - SlidingAnimationY[i] + ii * 50); + arduboy.print(LastValue[i] + ii - 48); + } + } + //刻度标 + arduboy.fillRect(0, 0, 128, 2, 0); //上遮罩层 + arduboy.fillRect(0, 51, 128, 13, 0); //下遮罩层 +} + +//数值输入界面 +// input value screen +uint16_t InputScreen() { + lastbutton = (!digitalRead(BUTTON_PIN)); + do { + arduboy.clear(); + DisplayNum(getRotary()); + arduboy.display(); + CheckLastButton(); + } while (digitalRead(BUTTON_PIN) || lastbutton); + beep(); + return value.toInt(); +} + +//欠压报警设置 +// information display screen +void UnderVoltageSet() { + setRotary(0, 250, 1, UnderVoltage); + UnderVoltage = InputScreen(); + beep(); +} + +//更换预设界面 +// change tip screen +void ChangeTipScreen() { + uint8_t selected = CurrentTip; + uint8_t lastselected = selected; + int8_t arrow = 0; + if (selected) arrow = 1; + setRotary(0, NumberOfTips - 1, 1, selected); + lastbutton = (!digitalRead(BUTTON_PIN)); + do { + //beep(0); + arduboy.clear(); + selected = getRotary(); + arrow = constrain(arrow + selected - lastselected, 0, 2); + lastselected = selected; + SetTextColor(0); + arduboy.setTextSize(2); + arduboy.setCursor(0, 0); arduboy.print(F("Select Tip")); + SetTextColor(1); + arduboy.setCursor(0, 16 * (arrow + 1)); arduboy.print(F(">")); + for (uint8_t i = 0; i < 3; i++) { + uint8_t drawnumber = selected + i - arrow; + if (drawnumber < NumberOfTips) { + arduboy.setCursor(12, 16 * (i + 1)); arduboy.print(TipName[selected + i - arrow]); + } + } + CheckLastButton(); + arduboy.display(); + } while (digitalRead(BUTTON_PIN) || lastbutton); + + beep(); + CurrentTip = selected; +} + +//温度校准界面 +// temperature calibration screen +void CalibrationScreen() { + uint16_t CalTempNew[4]; + for (uint8_t CalStep = 0; CalStep < 3; CalStep++) { + SetTemp = CalTemp[CurrentTip][CalStep]; + setRotary(100, 500, 1, SetTemp); + beepIfWorky = true; + lastbutton = (!digitalRead(BUTTON_PIN)); + do { + arduboy.clear(); + arduboy.setTextSize(2); + SENSORCheck(); // reads temperature and vibration switch of the iron + Thermostat(); // heater control + arduboy.setCursor(0, 0); arduboy.print(F("Step: ")); arduboy.print(CalStep + 1); arduboy.print("/3"); + if (isWorky) { + arduboy.setCursor(0, 16); arduboy.print(F("Set measured")); + arduboy.setCursor(0, 32); arduboy.print(F("temp: ")); arduboy.print(getRotary()); + } else { + arduboy.setCursor(0, 16); arduboy.print(F("ADC: ")); arduboy.print(uint16_t(RawTemp)); + arduboy.setCursor(0, 32); arduboy.print(F("Please wait")); + } + CheckLastButton(); + arduboy.display(); + } while (digitalRead(BUTTON_PIN) || lastbutton); + + CalTempNew[CalStep] = getRotary(); + beep(); delay (10); + } + + analogWrite(CONTROL_PIN, 255); // shut off heater + delayMicroseconds(time2settle); // wait for voltage to settle + CalTempNew[3] = getChipTemp(); // read chip temperature + if ((CalTempNew[0] + 30 < CalTempNew[1]) && (CalTempNew[1] + 30 < CalTempNew[2])) { + MenuLevel = 7; + if (MenuScreen(0)) { + for (uint8_t i = 0; i < 4; i++) CalTemp[CurrentTip][i] = CalTempNew[i]; + } + } +} + +//命名界面 文本输入界面 +// input tip name screen +void InputNameScreen() { + uint8_t value; + for (uint8_t digit = 0; digit < (TIPNAMELENGTH - 1); digit++) { + lastbutton = (!digitalRead(BUTTON_PIN)); + setRotary(31, 96, 1, 65); + do { + value = getRotary(); + if (value == 31) { + value = 95; + setRotary(31, 96, 1, 95); + } + if (value == 96) { + value = 32; + setRotary(31, 96, 1, 32); + } + //arduboy.setCursor(0, 0);arduboy.print(); + arduboy.clear(); + arduboy.setTextSize(2); + arduboy.setCursor(16 * digit, 48); arduboy.print(char(94)); + arduboy.setCursor(0, 32); + for (uint8_t i = 0; i < digit; i++) arduboy.print(TipName[CurrentTip][i]); + arduboy.setCursor(16 * digit, 32); arduboy.print(char(value)); + CheckLastButton(); + arduboy.display(); + } while (digitalRead(BUTTON_PIN) || lastbutton); + TipName[CurrentTip][digit] = value; + beep(); delay (10); + } + TipName[CurrentTip][TIPNAMELENGTH - 1] = 0; + return value; +} + + +// delete tip screen +void DeleteTipScreen() { + MenuLevel = 7; + if (NumberOfTips == 1) { + //MessageScreen(DeleteMessage, sizeof(DeleteMessage)); + } + else if (MenuScreen(0)) { + if (CurrentTip == (NumberOfTips - 1)) { + CurrentTip--; + } + else { + for (uint8_t i = CurrentTip; i < (NumberOfTips - 1); i++) { + for (uint8_t j = 0; j < TIPNAMELENGTH; j++) TipName[i][j] = TipName[i + 1][j]; + for (uint8_t j = 0; j < 4; j++) CalTemp[i][j] = CalTemp[i + 1][j]; + } + } + NumberOfTips--; + } +} + + +// add new tip screen +void AddTipScreen() { + if (NumberOfTips < TIPMAX) { + CurrentTip = NumberOfTips++; InputNameScreen(); + CalTemp[CurrentTip][0] = TEMP200; CalTemp[CurrentTip][1] = TEMP280; + CalTemp[CurrentTip][2] = TEMP360; CalTemp[CurrentTip][3] = TEMPCHP; + } //MessageScreen(MaxTipMessage, sizeof(MaxTipMessage)); 信息窗 +} + + +// average several ADC readings in sleep mode to denoise +uint16_t denoiseAnalog (byte port) { + uint16_t result = 0; + ADCSRA |= bit (ADEN) | bit (ADIF); // enable ADC, turn off any pending interrupt + if (port >= A0) port -= A0; // set port and + ADMUX = (0x0F & port) | bit(REFS0); // reference to AVcc + set_sleep_mode (SLEEP_MODE_ADC); // sleep during sample for noise reduction + for (uint8_t i = 0; i < 32; i++) { // get 32 readings + sleep_mode(); // go to sleep while taking ADC sample + while (bitRead(ADCSRA, ADSC)); // make sure sampling is completed + result += ADC; // add them up + } + bitClear (ADCSRA, ADEN); // disable ADC + return (result >> 5); // devide by 32 and return value +} + +//读取芯片温度 +// get internal temperature by reading ADC channel 8 against 1.1V reference +double getChipTemp() { + unsigned int wADC; + double t; + ADMUX = (_BV(REFS1) | _BV(REFS0) | _BV(MUX3)); + ADCSRA |= _BV(ADEN); + delay(5); + ADCSRA |= _BV(ADSC); + while (bit_is_set(ADCSRA, ADSC)); + wADC = ADCW; + t = (wADC - ChipTempCalVal ) / 1.22; + return (t); +} + +/* + // get internal temperature by reading ADC channel 8 against 1.1V reference + double getChipTemp() { + uint16_t result = 0; + ADCSRA |= bit (ADEN) | bit (ADIF); // enable ADC, turn off any pending interrupt + ADMUX = bit (REFS1) | bit (REFS0) | bit (MUX3); // set reference and mux + delay(20); // wait for voltages to settle + set_sleep_mode (SLEEP_MODE_ADC); // sleep during sample for noise reduction + for (uint8_t i = 0; i < 32; i++) { // get 32 readings + sleep_mode(); // go to sleep while taking ADC sample + while (bitRead(ADCSRA, ADSC)); // make sure sampling is completed + result += ADC; // add them up + } + bitClear (ADCSRA, ADEN); // disable ADC + result >>= 2; // devide by 4 + return ((result - 2594) / 9.76); // calculate internal temperature in degrees C + } +*/ +// get input voltage in mV by reading 1.1V reference against AVcc +uint16_t getVCC() { + uint16_t result = 0; + ADCSRA |= bit (ADEN) | bit (ADIF); // enable ADC, turn off any pending interrupt + // set Vcc measurement against 1.1V reference + ADMUX = bit (REFS0) | bit (MUX3) | bit (MUX2) | bit (MUX1); + delay(1); // wait for voltages to settle + set_sleep_mode (SLEEP_MODE_ADC); // sleep during sample for noise reduction + for (uint8_t i = 0; i < 16; i++) { // get 16 readings + sleep_mode(); // go to sleep while taking ADC sample + while (bitRead(ADCSRA, ADSC)); // make sure sampling is completed + result += ADC; // add them up + } + bitClear (ADCSRA, ADEN); // disable ADC + result >>= 4; // devide by 16 + return (1125300L / result); // 1125300 = 1.1 * 1023 * 1000 +} + + +// get supply voltage in mV +uint16_t getVIN() { + long result; + result = denoiseAnalog (VIN_PIN); // read supply voltage via voltage divider + return (result * Vcc / 179.474); // 179.474 = 1023 * R13 / (R12 + R13) +} + +//ADC中断服务 +// ADC interrupt service routine +EMPTY_INTERRUPT (ADC_vect); // nothing to be done here + +//旋转编码器触发中断 +// Pin change interrupt service routine for rotary encoder +ISR (PCINT0_vect) { + uint8_t a = PINB & 1; + uint8_t b = PIND >> 7 & 1; + if (a != a0) { // A changed + a0 = a; + if (b != b0) { // B changed + b0 = b; + count = constrain(count + ((a == b) ? countStep : -countStep), countMin, countMax); + if (ROTARY_TYPE && ((a == b) != ab0)) { + count = constrain(count + ((a == b) ? countStep : -countStep), countMin, countMax);; + } + ab0 = (a == b); + handleMoved = true; + } + } +} + +//显示位图,并允许放大 代码片段改自arduboy2 +void drawSlowXYBitmapResize(int x, int y, const uint8_t *bitmap, uint8_t w, uint8_t h, uint8_t size, uint8_t color) { + // no need to draw at all of we're offscreen + if (x + w < 0 || x > WIDTH - 1 || y + h < 0 || y > HEIGHT - 1) + return; + int16_t xi, yi, byteWidth = (w + 7) / 8; + for (yi = 0; yi < h; yi ++) { + for (xi = 0; xi < w; xi ++) { + if (pgm_read_byte(bitmap + yi * byteWidth + xi / 8) & (128 >> (xi & 7))) { + //arduboy.drawPixel(x + xi, y + yi, color); + arduboy.fillRect(x + xi * size, y + yi * size, size, size, color); + } + } + } +} diff --git a/software/sources/SolderingStation2_arduboy_gplib_v1.7t2.ino b/software/sources/SolderingStation2_arduboy_gplib_v1.7t2.ino new file mode 100644 index 0000000..27940e8 --- /dev/null +++ b/software/sources/SolderingStation2_arduboy_gplib_v1.7t2.ino @@ -0,0 +1,1347 @@ +/*License: http://creativecommons.org/licenses/by-sa/3.0/ + 采用CC3.0协议共享此程序 + 您可以自由地:- + -AZ + 共享 — 在任何媒介以任何形式复制、发行本作品 + 演绎 — 修改、转换或以本作品为基础进行创作 + 在任何用途下,甚至商业目的。 + 本许可协议为“自由文化作品(Free Cultural Works)”所接受。 + 只要你遵守许可协议条款,许可人就无法收回你的这些权利。 + + Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) + This is a human-readable summary of (and not a substitute for) the license. Disclaimer. + You are free to: + Share — copy and redistribute the material in any medium or format + Adapt — remix, transform, and build upon the material + for any purpose, even commercially. + This license is acceptable for Free Cultural Works. + The licensor cannot revoke these freedoms as long as you follow the license terms. +*/ +// SolderingStation2 +// +// ATmega328-controlled Soldering Station for Hakko T12 Tips. +// +// This version of the code implements: +// - Temperature measurement of the tip +// - Direct or PID control of the heater +// - Temperature control via rotary encoder +// - Boost mode by short pressing rotary encoder switch +// - Setup menu by long pressing rotary encoder switch +// - Handle movement detection (by checking ball switch) +// - Iron unconnected detection (by idenfying invalid temperature readings) +// - Time driven sleep/power off mode if iron is unused (movement detection) +// - Measurement of input voltage, Vcc and ATmega's internal temperature +// - Information display on OLED +// - Buzzer +// - Calibrating and managing different soldering tips +// - Storing user settings into the EEPROM +// - Tip change detection +// +// Power supply should be in the range of 16V/2A to 24V/3A and well +// stabilized. +// +// For calibration you need a soldering iron tips thermometer. For best results +// wait at least three minutes after switching on the soldering station before +// you start the calibration process. +// +// Controller: ATmega328p +// Core: Barebones ATmega (https://github.com/carlosefr/atmega) +// Clockspeed: 16 MHz external +// +// 2019/2020 by Stefan Wagner with great support from John Glavinos +// 2020-8 UI upgrade by LHW-createskyblue + +// Project Page: https://easyeda.com/wagiminator + +//关于界面-项目页面二维码 ->为了加入欠压报警只能阉割掉关于页面的二维码 +//const unsigned char QRCode[] PROGMEM = { 0x00, 0x00, 0x3e, 0x0e, 0x7c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x0e, 0x7c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x0e, 0x7c, 0x0c, 0x00, 0x00, 0x1f, 0xfe, 0x3f, 0xc1, 0x8c, 0x0c, 0x7f, 0xf8, 0x1f, 0xfe, 0x3f, 0xc1, 0x8c, 0x0c, 0x7f, 0xf8, 0x18, 0x06, 0x30, 0x01, 0xf3, 0x8c, 0x60, 0x18, 0x18, 0x06, 0x30, 0x01, 0xf3, 0x8c, 0x60, 0x18, 0x18, 0x06, 0x30, 0x01, 0xf3, 0x8c, 0x60, 0x18, 0x18, 0x06, 0x3e, 0x0f, 0xf0, 0x0c, 0x60, 0x18, 0x18, 0x06, 0x3e, 0x0f, 0xf0, 0x0c, 0x60, 0x18, 0x18, 0x06, 0x3f, 0xc1, 0xf0, 0x0c, 0x60, 0x18, 0x18, 0x06, 0x3f, 0xc1, 0xf0, 0x0c, 0x60, 0x18, 0x18, 0x06, 0x3f, 0xc1, 0xf0, 0x0c, 0x60, 0x18, 0x1f, 0xfe, 0x3e, 0x30, 0x70, 0x0c, 0x7f, 0xf8, 0x1f, 0xfe, 0x3e, 0x30, 0x70, 0x0c, 0x7f, 0xf8, 0x00, 0x00, 0x31, 0xce, 0x73, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x31, 0xce, 0x73, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x31, 0xce, 0x73, 0x8c, 0x00, 0x00, 0xff, 0xff, 0xf0, 0x01, 0x83, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x01, 0x83, 0x8f, 0xff, 0xff, 0x00, 0xc0, 0x01, 0xc1, 0x8c, 0x00, 0x7f, 0x1f, 0x00, 0xc0, 0x01, 0xc1, 0x8c, 0x00, 0x7f, 0x1f, 0x00, 0xc0, 0x01, 0xc1, 0x8c, 0x00, 0x7f, 0x1f, 0x07, 0xc7, 0xcf, 0xce, 0x7f, 0x8c, 0x1f, 0xf8, 0x07, 0xc7, 0xcf, 0xce, 0x7f, 0x8c, 0x1f, 0xf8, 0x07, 0xc7, 0xcf, 0xce, 0x7f, 0x8c, 0x1f, 0xf8, 0xf8, 0x00, 0x3e, 0x3e, 0x03, 0xf0, 0x7f, 0x00, 0xf8, 0x00, 0x3e, 0x3e, 0x03, 0xf0, 0x7f, 0x00, 0xe0, 0xc7, 0xcf, 0xfe, 0x03, 0x80, 0x1f, 0xe7, 0xe0, 0xc7, 0xcf, 0xfe, 0x03, 0x80, 0x1f, 0xe7, 0xe0, 0xc7, 0xcf, 0xfe, 0x03, 0x80, 0x1f, 0xe7, 0x18, 0xc0, 0x31, 0xfe, 0x0c, 0x0c, 0x1c, 0xe0, 0x18, 0xc0, 0x31, 0xfe, 0x0c, 0x0c, 0x1c, 0xe0, 0xe7, 0x39, 0xf1, 0xf0, 0x03, 0xfc, 0x7c, 0xf8, 0xe7, 0x39, 0xf1, 0xf0, 0x03, 0xfc, 0x7c, 0xf8, 0xe7, 0x39, 0xf1, 0xf0, 0x03, 0xfc, 0x7c, 0xf8, 0x1f, 0x00, 0x31, 0xcf, 0xf3, 0x8c, 0x03, 0x00, 0x1f, 0x00, 0x31, 0xcf, 0xf3, 0x8c, 0x03, 0x00, 0xe0, 0x3f, 0xff, 0xc1, 0x83, 0x8f, 0x9c, 0xe7, 0xe0, 0x3f, 0xff, 0xc1, 0x83, 0x8f, 0x9c, 0xe7, 0xe0, 0x3f, 0xff, 0xc1, 0x83, 0x8f, 0x9c, 0xe7, 0x18, 0x00, 0x30, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x18, 0x00, 0x30, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x18, 0x00, 0x30, 0x0e, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xf0, 0x3e, 0x7c, 0x0f, 0xe0, 0x00, 0xff, 0xff, 0xf0, 0x3e, 0x7c, 0x0f, 0xe0, 0x00, 0x00, 0x00, 0x31, 0xce, 0x0c, 0x0c, 0x63, 0xe0, 0x00, 0x00, 0x31, 0xce, 0x0c, 0x0c, 0x63, 0xe0, 0x00, 0x00, 0x31, 0xce, 0x0c, 0x0c, 0x63, 0xe0, 0x1f, 0xfe, 0x30, 0x01, 0x83, 0x8f, 0xe0, 0xff, 0x1f, 0xfe, 0x30, 0x01, 0x83, 0x8f, 0xe0, 0xff, 0x18, 0x06, 0x31, 0xf1, 0x8f, 0x80, 0x03, 0xe7, 0x18, 0x06, 0x31, 0xf1, 0x8f, 0x80, 0x03, 0xe7, 0x18, 0x06, 0x31, 0xf1, 0x8f, 0x80, 0x03, 0xe7, 0x18, 0x06, 0x3f, 0xff, 0x83, 0x83, 0xe3, 0x1f, 0x18, 0x06, 0x3f, 0xff, 0x83, 0x83, 0xe3, 0x1f, 0x18, 0x06, 0x31, 0xfe, 0x73, 0x8f, 0x80, 0xf8, 0x18, 0x06, 0x31, 0xfe, 0x73, 0x8f, 0x80, 0xf8, 0x18, 0x06, 0x31, 0xfe, 0x73, 0x8f, 0x80, 0xf8, 0x1f, 0xfe, 0x31, 0xfe, 0x00, 0x0c, 0x60, 0xe7, 0x1f, 0xfe, 0x31, 0xfe, 0x00, 0x0c, 0x60, 0xe7, 0x00, 0x00, 0x31, 0xfe, 0x0c, 0x0f, 0x9f, 0xe0, 0x00, 0x00, 0x31, 0xfe, 0x0c, 0x0f, 0x9f, 0xe0, 0x00, 0x00, 0x31, 0xfe, 0x0c, 0x0f, 0x9f, 0xe0 }; +//const unsigned char QRCode[] PROGMEM = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x03, 0x86, 0x70, 0x80, 0x03, 0x80, 0x03, 0x86, 0x70, 0x80, 0x03, 0x9f, 0xf3, 0xe1, 0x30, 0x9f, 0xf3, 0x9f, 0xf3, 0xe1, 0x30, 0x9f, 0xf3, 0x98, 0x33, 0x01, 0xcc, 0x98, 0x33, 0x98, 0x33, 0x01, 0xcc, 0x98, 0x33, 0x98, 0x33, 0x87, 0xc0, 0x98, 0x33, 0x98, 0x33, 0xe1, 0xc0, 0x98, 0x33, 0x98, 0x33, 0xe1, 0xc0, 0x98, 0x33, 0x9f, 0xf3, 0x98, 0xc0, 0x9f, 0xf3, 0x9f, 0xf3, 0x98, 0xc0, 0x9f, 0xf3, 0x80, 0x03, 0x66, 0xcc, 0x80, 0x03, 0x80, 0x03, 0x66, 0xcc, 0x80, 0x03, 0xff, 0xff, 0x01, 0x0c, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x1f, 0xff, 0x81, 0x00, 0x61, 0x30, 0x1f, 0x3f, 0x87, 0x3c, 0xe6, 0xfc, 0x87, 0x33, 0x87, 0x3c, 0xe6, 0xfc, 0x87, 0xf3, 0xf8, 0x03, 0x9e, 0x0f, 0x1f, 0x03, 0xf8, 0x03, 0x9e, 0x0f, 0x1f, 0x03, 0xe1, 0x3c, 0xfe, 0x0c, 0x07, 0xcf, 0xe1, 0x3c, 0xfe, 0x0c, 0x07, 0xcf, 0x99, 0x03, 0x3e, 0x30, 0x86, 0xc3, 0xe6, 0xcf, 0x38, 0x0f, 0x9e, 0xf3, 0xe6, 0xcf, 0x38, 0x0f, 0x9e, 0xf3, 0x9e, 0x03, 0x27, 0xcc, 0x81, 0x03, 0x9e, 0x03, 0x27, 0xcc, 0x81, 0x03, 0xe0, 0xff, 0xe1, 0x0c, 0xe6, 0xcf, 0xe0, 0xff, 0xe1, 0x0c, 0xe6, 0xcf, 0x98, 0x03, 0x06, 0x00, 0x00, 0xff, 0x98, 0x03, 0x06, 0x00, 0x00, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0xf8, 0x03, 0x80, 0x03, 0x66, 0x30, 0x99, 0xc3, 0x80, 0x03, 0x66, 0x30, 0x99, 0xc3, 0x9f, 0xf3, 0x01, 0x0c, 0xf8, 0xff, 0x9f, 0xf3, 0x01, 0x0c, 0xf8, 0xff, 0x98, 0x33, 0x39, 0x3c, 0x01, 0xcf, 0x98, 0x33, 0x39, 0x3c, 0x01, 0xcf, 0x98, 0x33, 0xff, 0x0c, 0x79, 0x3f, 0x98, 0x33, 0x3e, 0xcc, 0xe0, 0xf3, 0x98, 0x33, 0x3e, 0xcc, 0xe0, 0xf3, 0x9f, 0xf3, 0x3e, 0x00, 0x98, 0xcf, 0x9f, 0xf3, 0x3e, 0x00, 0x98, 0xcf, 0x80, 0x03, 0x3e, 0x30, 0xe7, 0xc3, 0x80, 0x03, 0x3e, 0x30, 0xe7, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; +//ICO +//width:16,height:16 +const unsigned char Tag[] PROGMEM = { 0x00, 0x00, 0x3b, 0xec, 0x7b, 0xee, 0x63, 0xe6, 0x63, 0xe6, 0x63, 0xe6, 0x63, 0xe6, 0x63, 0xe6, 0x63, 0xe6, 0x63, 0x66, 0x62, 0x26, 0x60, 0x06, 0x60, 0x06, 0x7f, 0xfe, 0x3f, 0xfc, 0x00, 0x00 }; +const unsigned char Chip[] PROGMEM = { 0x14, 0xa0, 0x3f, 0xf0, 0x7f, 0xf8, 0xe0, 0x1c, 0x6e, 0x18, 0xec, 0x1c, 0x68, 0x18, 0x60, 0x18, 0xe0, 0x1c, 0x60, 0x58, 0xe0, 0x1c, 0x7f, 0xf8, 0x3f, 0xf0, 0x14, 0xa0 }; +//const unsigned char HeatPipe[] PROGMEM = { 0x00, 0x00, 0x09, 0x90, 0x11, 0x88, 0x21, 0x84, 0x11, 0x88, 0x09, 0x90, 0x11, 0x88, 0x21, 0x84, 0x11, 0x88, 0x09, 0x90, 0x11, 0x88, 0x21, 0x84, 0x11, 0x88, 0x09, 0x90, 0x01, 0x80, 0x00, 0x00 }; +const unsigned char Lightning[] PROGMEM = { 0x0f, 0xe0, 0x1f, 0xc0, 0x1f, 0xc0, 0x3f, 0x80, 0x3f, 0xf8, 0x7f, 0xf0, 0x7f, 0xe0, 0x07, 0xc0, 0x07, 0x80, 0x0f, 0x00, 0x0e, 0x00, 0x1c, 0x00, 0x18, 0x00, 0x10, 0x00 }; +//const unsigned char Thermometer[] PROGMEM = { 0x01, 0x80, 0x02, 0x40, 0x03, 0x40, 0x02, 0x40, 0x03, 0x40, 0x02, 0x40, 0x03, 0x40, 0x02, 0x40, 0x03, 0x40, 0x03, 0xc0, 0x03, 0xc0, 0x03, 0xc0, 0x07, 0xe0, 0x07, 0xe0, 0x07, 0xe0, 0x03, 0xc0 }; +const unsigned char Pointer[] PROGMEM = { 0x20, 0x20, 0x70, 0xf8 }; +//状态提示 +//width:14,height:14 图标库 + +const unsigned char c1[] PROGMEM = { 0x03, 0x00, 0x07, 0x80, 0x0f, 0xc0, 0x0c, 0xc0, 0x1c, 0xe0, 0x1c, 0xe0, 0x3c, 0xf0, 0x3c, 0xf0, 0x7f, 0xf8, 0x7f, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xff, 0xfc, 0x7f, 0xf8 }; +const unsigned char c2[] PROGMEM = { 0x7f, 0xf8, 0xff, 0xfc, 0xc0, 0x0c, 0xc3, 0x0c, 0xcb, 0x4c, 0xdb, 0x6c, 0xdb, 0x6c, 0xd8, 0x6c, 0xdc, 0xec, 0xcf, 0xcc, 0xc7, 0x8c, 0xc0, 0x0c, 0xff, 0xfc, 0x7f, 0xf8 }; +const unsigned char c3[] PROGMEM = { 0x00, 0x00, 0x06, 0x00, 0x0c, 0x00, 0x18, 0xf8, 0x38, 0xf0, 0x30, 0x30, 0x70, 0x60, 0x70, 0x78, 0x78, 0xf8, 0x78, 0x00, 0x3c, 0x02, 0x3f, 0x0c, 0x1f, 0xf8, 0x0f, 0xf0, 0x03, 0xc0, 0x00, 0x00 }; +const unsigned char c5[] PROGMEM = { 0x7f, 0xf0, 0xff, 0xe0, 0xc0, 0x08, 0xc0, 0x1c, 0xc0, 0x38, 0xc8, 0x70, 0xdc, 0xe4, 0xcf, 0xcc, 0xc7, 0x8c, 0xc3, 0x0c, 0xc0, 0x0c, 0xc0, 0x0c, 0xff, 0xfc, 0x7f, 0xf8 }; +const unsigned char c6[] PROGMEM = { 0x1e, 0x10, 0x33, 0x38, 0x2d, 0x7c, 0x25, 0x38, 0x2d, 0x38, 0x25, 0x38, 0x2d, 0x38, 0x6d, 0x80, 0xde, 0xc0, 0xbf, 0x40, 0xbf, 0x40, 0xde, 0xc0, 0x61, 0x80, 0x3f, 0x00 }; +const unsigned char c7[] PROGMEM = { 0x1f, 0xe0, 0x3f, 0xf0, 0x70, 0x38, 0x60, 0x18, 0x60, 0x18, 0x60, 0x18, 0xff, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0x7c, 0xf8, 0x7c, 0xfc, 0xfc, 0x7f, 0xf8 }; +const unsigned char c_NO[] PROGMEM = { 0x80, 0x04, 0x00, 0x00, 0x3f, 0xf0, 0x37, 0xb0, 0x23, 0x10, 0x30, 0x30, 0x38, 0x70, 0x38, 0x70, 0x30, 0x30, 0x23, 0x10, 0x37, 0xb0, 0x3f, 0xf0, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char *C_table[] = {c1, c2, c3, Lightning, c5, c6, c7}; + +//设置(陈星汉认为语言是一种低像素的表达方式,容易造成隔阂; 交互界面设计尽可能形象化) +// width: 48, height: 48 + +const unsigned char Set0[] PROGMEM = { 0x88,0x24,0x08,0x20,0x38,0x30,0x38,0x30,0x38,0x30,0x38,0x30,0x38,0x30,0x38,0x30,0x39,0x30,0x3b,0xb0,0x3f,0xf0,0x3f,0xf0,0x00,0x00,0x80,0x04 }; +const unsigned char Set1[] PROGMEM = { 0xf8,0x7c,0xf3,0x3c,0xf4,0xbc,0xf6,0xbc,0xf4,0xbc,0xf6,0xbc,0xf4,0xbc,0xe4,0x9c,0xc8,0x4c,0xd0,0x2c,0xd0,0x2c,0xc8,0x4c,0xe7,0x9c,0xf0,0x3c }; +const unsigned char Set2[] PROGMEM = { 0x8f, 0xc4, 0x10, 0x20, 0x20, 0x10, 0x4c, 0xc8, 0x9f, 0xe4, 0x3d, 0xf0, 0x3d, 0xf0, 0x1d, 0xe0, 0x3e, 0xf0, 0x3f, 0x70, 0x9f, 0xe4, 0x8c, 0xc4, 0x00, 0x00, 0x30, 0x30 }; +const unsigned char Set3[] PROGMEM = { 0xc3, 0xfc, 0x18, 0x00, 0x18, 0x00, 0xc3, 0xfc, 0xff, 0xfc, 0xff, 0x0c, 0x00, 0x60, 0x00, 0x60, 0xff, 0x0c, 0xff, 0xfc, 0xf0, 0xfc, 0x06, 0x00, 0x06, 0x00, 0xf0, 0xfc }; +const unsigned char Set4[] PROGMEM = { 0x80, 0x04, 0x00, 0x00, 0x20, 0x00, 0x10, 0x00, 0x08, 0x00, 0x10, 0x00, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char Set4F[] PROGMEM = { 0x80, 0x04, 0x00, 0x00, 0x3f, 0xf0, 0x38, 0x30, 0x33, 0x10, 0x3f, 0x90, 0x38, 0x10, 0x33, 0x90, 0x27, 0x90, 0x26, 0x10, 0x30, 0x90, 0x3f, 0xf0, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char Set4FF[] PROGMEM = { 0x80, 0x04, 0x00, 0x00, 0x3f, 0xf0, 0x24, 0x30, 0x21, 0x90, 0x27, 0x90, 0x27, 0x30, 0x20, 0x70, 0x27, 0xf0, 0x23, 0x30, 0x30, 0x70, 0x3f, 0xf0, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char Set5[] PROGMEM = { 0xfc, 0xfc, 0xf8, 0x7c, 0xe0, 0x1c, 0xc0, 0x0c, 0xc0, 0x0c, 0xc0, 0x0c, 0xc0, 0x0c, 0xc0, 0x0c, 0xc0, 0x0c, 0x80, 0x04, 0x80, 0x04, 0xff, 0xfc, 0xf8, 0x7c, 0xfc, 0xfc }; +const unsigned char Set5_1[] PROGMEM = { 0xfc, 0xf4, 0xf8, 0x60, 0xe0, 0x44, 0xc0, 0x8c, 0xc1, 0x1c, 0xc2, 0x2c, 0xc4, 0x4c, 0xc8, 0x8c, 0xd1, 0x0c, 0xa2, 0x04, 0xc4, 0x04, 0x8f, 0xfc, 0x18, 0x7c, 0xbc, 0xfc }; +const unsigned char Set6[] PROGMEM = { 0xf8, 0x7c, 0xe0, 0x1c, 0xc0, 0x0c, 0xcf, 0xcc, 0xcf, 0xcc, 0xcf, 0xcc, 0xcf, 0xcc, 0xcf, 0xcc, 0xcf, 0xcc, 0xcf, 0xcc, 0xc8, 0x4c, 0xcf, 0xcc, 0xc0, 0x0c, 0xe0, 0x1c }; +const unsigned char Set_LANG[] PROGMEM = { 0xf0, 0x3c, 0xce, 0x4c, 0xbc, 0x34, 0xb8, 0x14, 0x18, 0x80, 0x10, 0x80, 0x42, 0x30, 0x60, 0x78, 0x60, 0xf8, 0x44, 0xc0, 0x80, 0x04, 0xb8, 0x84, 0xcf, 0xcc, 0xf0, 0x3c }; +const unsigned char Set7[] PROGMEM = { 0x80, 0x0c, 0x00, 0x1c, 0x3f, 0xf4, 0x3f, 0xe0, 0x3f, 0xc4, 0x37, 0x8c, 0x23, 0x18, 0x30, 0x30, 0x38, 0x70, 0x3c, 0xf0, 0x3f, 0xf0, 0x3f, 0xf0, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char Set11[] PROGMEM = { 0xf3, 0xfc, 0xe7, 0xfc, 0xce, 0x0c, 0x8e, 0x1c, 0x9f, 0x9c, 0x1f, 0x3c, 0x1f, 0x0c, 0x0e, 0x0c, 0x0f, 0xfc, 0x87, 0xf8, 0x81, 0xe4, 0xc0, 0x0c, 0xe0, 0x1c, 0xf8, 0x7c }; +const unsigned char Set8[] PROGMEM = { 0x81, 0xdc, 0x55, 0x9c, 0x29, 0x04, 0x55, 0x00, 0x29, 0x90, 0x55, 0xd0, 0x03, 0xfc, 0xff, 0x00, 0x2e, 0x00, 0x26, 0x70, 0x02, 0x50, 0x82, 0x70, 0xe6, 0x00, 0xee, 0x04 }; +const unsigned char Set9[] PROGMEM = { 0xf0, 0x3c, 0xce, 0x0c, 0xbf, 0x04, 0xb3, 0x04, 0x73, 0x00, 0x7f, 0x00, 0x7e, 0x00, 0x7c, 0x00, 0x7c, 0x00, 0x7c, 0x60, 0xbc, 0x64, 0xbe, 0x04, 0xcf, 0x0c, 0xf0, 0x3c }; +const unsigned char Set10[] PROGMEM = { 0xf8, 0x7c, 0xf7, 0xbc, 0x00, 0x00, 0x7f, 0xf8, 0x00, 0x00, 0xbf, 0xf4, 0xab, 0x54, 0xab, 0x54, 0xab, 0x54, 0xab, 0x54, 0xab, 0x54, 0xab, 0x54, 0xbf, 0xf4, 0xc0, 0x0c }; +const unsigned char Set13[] PROGMEM = { 0x80, 0x04, 0x00, 0x00, 0x3f, 0xf0, 0x3c, 0xf0, 0x34, 0xb0, 0x24, 0x90, 0x24, 0x90, 0x27, 0x90, 0x23, 0x10, 0x30, 0x30, 0x38, 0x70, 0x3f, 0xf0, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char Set12[] PROGMEM = { 0x80, 0x04, 0x00, 0x00, 0x3f, 0xf0, 0x3c, 0xf0, 0x3c, 0xf0, 0x3c, 0xf0, 0x20, 0x10, 0x20, 0x10, 0x3c, 0xf0, 0x3c, 0xf0, 0x3c, 0xf0, 0x3f, 0xf0, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char Set14[] PROGMEM = { 0xff, 0x7c, 0xfe, 0x7c, 0xfc, 0xec, 0xe8, 0xdc, 0xc8, 0x4c, 0x98, 0x4c, 0x88, 0x24, 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x04, 0xe0, 0x1c }; +const unsigned char Set15[] PROGMEM = { 0x15, 0x54, 0x3f, 0xfc, 0x15, 0x54, 0x3f, 0xfc, 0x15, 0x54, 0x3c, 0x04, 0x14, 0x04, 0x3c, 0xfc, 0x14, 0x54, 0x3c, 0xfc, 0x00, 0x54, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char Set16[] PROGMEM = { 0x15, 0x54, 0x3f, 0xf8, 0x15, 0x50, 0x3f, 0xf0, 0x15, 0x50, 0x38, 0x70, 0x10, 0x20, 0x31, 0x04, 0x13, 0x8c, 0x22, 0xa8, 0x17, 0xfc, 0x2a, 0xa8, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char Set17[] PROGMEM = { 0x80, 0x00, 0xbf, 0xf8, 0x1f, 0xf8, 0xb0, 0x08, 0x18, 0x08, 0xb9, 0xe8, 0x19, 0xb8, 0xb8, 0x38, 0x18, 0x38, 0xb9, 0xb8, 0xb9, 0xf8, 0xb0, 0xf8, 0xbf, 0xf8, 0x80, 0x00 }; +const unsigned char Set18[] PROGMEM = { 0x80, 0x00, 0xbf, 0xf8, 0x1f, 0xf8, 0xb0, 0x28, 0x1f, 0xf8, 0xb4, 0x08, 0x1f, 0xf8, 0xb1, 0x08, 0x1f, 0xf8, 0xb0, 0x48, 0xbf, 0xf8, 0xb2, 0x88, 0xbf, 0xf8, 0x80, 0x00 }; +const unsigned char Lang_CN[] PROGMEM = { 0x80, 0x04, 0x00, 0x00, 0x3f, 0xf0, 0x3c, 0xf0, 0x3c, 0xf0, 0x20, 0x10, 0x24, 0x90, 0x24, 0x90, 0x20, 0x10, 0x3c, 0xf0, 0x3c, 0xf0, 0x3f, 0xf0, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char Lang_EN[] PROGMEM = { 0x80, 0x04, 0x00, 0x00, 0x3f, 0xf0, 0x38, 0x70, 0x30, 0x30, 0x23, 0x10, 0x27, 0x90, 0x20, 0x10, 0x20, 0x10, 0x27, 0x90, 0x27, 0x90, 0x3f, 0xf0, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char Save[] PROGMEM = { 0x00, 0x04, 0x58, 0x08, 0x58, 0x08, 0x58, 0x08, 0x40, 0x08, 0x7f, 0xf8, 0x60, 0x18, 0x5f, 0xe8, 0x5b, 0x68, 0x5f, 0xe8, 0x5b, 0x68, 0x1c, 0xe8, 0x5f, 0xe8, 0x00, 0x00 }; +const unsigned char *Ico_table[] = { + Set0, Set1, Set2, Set3, Set4, Set5, Set6, Set_LANG, Set7, + Set8, Set9, Set0, Set10, Set12, Save, + Set0, Set11, Set14, Save, + Set11, Set13, Set14, Save, + Set15, Set16, + Set17, Set18, //5 + Set5_1, Set5, + c_NO, Set7, + Lang_CN, Lang_EN, //8 + Set4F, Set4FF, + Set4, Set4F, Save, +}; +const byte Menu_table[] = {9, 6, 4, 4, 2, 2, 2, 2, 2, 2, 3}; //菜单 标签 温控 定时 控制方式 首页 蜂鸣器 标签删除确认界面 语言菜单 翻转 显示 +byte MenuLevel = 0; //菜单层级 + +/*//////////////////////////////////////////////////////////////////////////////////////////////////// + 多语言支持 + Multilingual support + /////////////////////////////////////////////////////////////////////////////////////////////////// +*/ +/* + 英语库 ENGLISH +*/ +const char EN_0[] PROGMEM = "Tip"; +const char EN_1[] PROGMEM = "Temp"; +const char EN_2[] PROGMEM = "Timer"; +const char EN_3[] PROGMEM = "Control"; +const char EN_4[] PROGMEM = "Screen"; +const char EN_5[] PROGMEM = "Buzzer"; +const char EN_6[] PROGMEM = "LOW Vol"; +const char EN_7[] PROGMEM = "Lang"; +const char EN_8[] PROGMEM = "Return"; +const char EN_9[] PROGMEM = "Change"; +const char EN_10[] PROGMEM = "Calibrate"; +const char EN_11[] PROGMEM = "Rename"; +const char EN_12[] PROGMEM = "Delete"; +const char EN_13[] PROGMEM = "Add"; +const char EN_14[] PROGMEM = "Save"; +const char EN_15[] PROGMEM = "Default"; +const char EN_16[] PROGMEM = "Sleep"; +const char EN_17[] PROGMEM = "Boost"; +const char EN_18[] PROGMEM = "Save"; +const char EN_19[] PROGMEM = "Sleep"; +const char EN_20[] PROGMEM = "Off"; +const char EN_21[] PROGMEM = "Boost"; +const char EN_22[] PROGMEM = "Save"; +const char EN_23[] PROGMEM = "Direct"; +const char EN_24[] PROGMEM = "PID"; +const char EN_25[] PROGMEM = "Big"; +const char EN_26[] PROGMEM = "Infos"; +const char EN_27[] PROGMEM = "OFF"; +const char EN_28[] PROGMEM = "ON"; +const char EN_29[] PROGMEM = "NO"; +const char EN_30[] PROGMEM = "YES"; +const char EN_31[] PROGMEM = "CN"; +const char EN_32[] PROGMEM = "EN"; +const char EN_33[] PROGMEM = "NO"; +const char EN_34[] PROGMEM = "OK"; +const char EN_35[] PROGMEM = "Main Screen"; +const char EN_36[] PROGMEM = "Flip"; +const char EN_37[] PROGMEM = "Save"; +const char *const EN_table[] PROGMEM = {EN_0, EN_1, EN_2, EN_3, EN_4, EN_5, EN_6, EN_7, EN_8, EN_9, EN_10, EN_11, EN_12, EN_13, EN_14, EN_15, EN_16, EN_17, EN_18, EN_19, EN_20, EN_21, EN_22, EN_23, EN_24, EN_25, EN_26, EN_27, EN_28, EN_29, EN_30, EN_31, EN_32, EN_33, EN_34, EN_35, EN_36, EN_37,}; +/* + #!/usr/bin/python + # -*- coding: UTF-8 -*- + for num in range(0,38): + print("EN_",end="") + print(num,end='') + print(",",end="") +*/ +/* + 中文语言库 CHINESE + + //////////////////////////////////////////////////////////////////////////////////////////////////////// + 本地化提示:你可以按照位图的大小,把这里的文字位图替换成你的语言,确保位图分辨率一致即可,我们欢迎你把程序翻译为你当地的语言! + Localization tips: you can according to the size of the bitmap, + replace the text bitmap here with your language, + ensure that the bitmap resolution is consistent, + we welcome you to translate the program into your local language! + //////////////////////////////////////////////////////////////////////////////////////////////////////// +*/ +//width:28,height:14 主界面中文提示 +//Main Screen +//错误-ERROR +const unsigned char S1[] PROGMEM = { 0x20, 0x92, 0x1f, 0xc0, 0x3d, 0xf9, 0x90, 0x40, 0x20, 0x90, 0x90, 0x40, 0x40, 0x90, 0x1f, 0xc0, 0x7b, 0xff, 0x00, 0x00, 0xa0, 0x01, 0x3f, 0xe0, 0x21, 0xf9, 0x02, 0x00, 0xfd, 0x09, 0x02, 0x00, 0x21, 0x09, 0x7f, 0xf0, 0x21, 0xf9, 0x05, 0x00, 0x21, 0x09, 0x45, 0x00, 0x29, 0x09, 0x88, 0x80, 0x31, 0xf9, 0x10, 0x70, 0x21, 0x08, 0x20, 0x20 }; +//关机-OFF +const unsigned char S2[] PROGMEM = { 0x10, 0x40, 0x47, 0xc0, 0x17, 0xfc, 0x44, 0x40, 0x20, 0x03, 0xf4, 0x40, 0x23, 0xf8, 0x44, 0x40, 0x62, 0x08, 0xc4, 0x40, 0xa3, 0xf8, 0xe4, 0x40, 0x20, 0x01, 0x54, 0x40, 0x2f, 0xfd, 0x44, 0x40, 0x28, 0x06, 0x44, 0x40, 0x23, 0xf8, 0x44, 0x40, 0x20, 0x40, 0x44, 0x50, 0x20, 0x40, 0x48, 0x50, 0x21, 0x40, 0x50, 0x30, 0x20, 0x80, 0x40, 0x00 }; +//休眠-SLEEP +const unsigned char S3[] PROGMEM = { 0x10, 0x83, 0xdf, 0xc0, 0x10, 0x82, 0x50, 0x40, 0x20, 0x82, 0x50, 0x40, 0x2f, 0xff, 0xdf, 0xc0, 0x60, 0x82, 0x52, 0x00, 0x61, 0xc2, 0x52, 0x00, 0xa1, 0xc2, 0x5f, 0xe0, 0x22, 0xa3, 0xd2, 0x00, 0x22, 0xa2, 0x51, 0x00, 0x24, 0x92, 0x51, 0x00, 0x28, 0x8e, 0x50, 0x90, 0x30, 0x8b, 0xd4, 0x50, 0x20, 0x82, 0x58, 0x30, 0x20, 0x80, 0x10, 0x10 }; +//提温-BOOST +const unsigned char S4[] PROGMEM = { 0x23, 0xf2, 0x1f, 0xc0, 0x22, 0x11, 0x10, 0x40, 0xfb, 0xf0, 0x90, 0x40, 0x22, 0x12, 0x1f, 0xc0, 0x2a, 0x11, 0x10, 0x40, 0x33, 0xf1, 0x10, 0x40, 0x60, 0x00, 0x5f, 0xc0, 0xaf, 0xfc, 0x80, 0x00, 0x20, 0x41, 0x3f, 0xe0, 0x22, 0x43, 0x25, 0x20, 0x22, 0x79, 0x25, 0x20, 0x22, 0x41, 0x25, 0x20, 0xa5, 0x41, 0x25, 0x20, 0x48, 0xfd, 0x7f, 0xf0 }; +//正常工作-WORKY +const unsigned char S5[] PROGMEM = { 0x7f, 0xf8, 0x48, 0x80, 0x02, 0x00, 0x49, 0x00, 0x02, 0x01, 0xff, 0xf0, 0x02, 0x01, 0x00, 0x10, 0x02, 0x02, 0x7f, 0x20, 0x22, 0x00, 0x41, 0x00, 0x23, 0xf0, 0x7f, 0x00, 0x22, 0x00, 0x08, 0x00, 0x22, 0x00, 0xff, 0x80, 0x22, 0x00, 0x88, 0x80, 0x22, 0x00, 0x88, 0x80, 0x22, 0x00, 0x8a, 0x80, 0x22, 0x00, 0x89, 0x00, 0xff, 0xfc, 0x08, 0x00 }; +//加热-HEAT +const unsigned char S6[] PROGMEM = { 0x0f, 0x42, 0x1f, 0xc0, 0x78, 0x41, 0x10, 0x40, 0x08, 0x40, 0x90, 0x40, 0x08, 0x42, 0x1f, 0xc0, 0x08, 0x41, 0x10, 0x40, 0xff, 0xfd, 0x10, 0x40, 0x08, 0x40, 0x5f, 0xc0, 0x08, 0x40, 0x80, 0x00, 0x08, 0x41, 0x3f, 0xe0, 0x08, 0x43, 0x25, 0x20, 0x10, 0x41, 0x25, 0x20, 0x10, 0x41, 0x25, 0x20, 0x20, 0x41, 0x25, 0x20, 0x40, 0x41, 0x7f, 0xf0 }; +//维持-HOLD +const unsigned char S7[] PROGMEM = { 0x11, 0x40, 0x82, 0x00, 0x21, 0x20, 0x8f, 0xe0, 0x23, 0xfc, 0x82, 0x00, 0x4a, 0x23, 0xe2, 0x00, 0xfe, 0x20, 0x9f, 0xf0, 0x13, 0xf8, 0x80, 0x80, 0x22, 0x20, 0xc0, 0x80, 0x42, 0x21, 0xbf, 0xf0, 0xfb, 0xfa, 0x88, 0x80, 0x02, 0x20, 0x84, 0x80, 0x02, 0x20, 0x84, 0x80, 0x1a, 0x20, 0x80, 0x80, 0xe3, 0xfe, 0x82, 0x80, 0x02, 0x01, 0x01, 0x00 }; +const unsigned char *S_table[] = {S1, S2, S3, S4, S5, S6, S7}; + +// 菜单 width:36,height:16 +//MENU Oj +/* + The order here(↓) can refer to EN_table(↑↑↑) +*/ +const unsigned char t0[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x7f, 0x90, 0xf8, 0x00, 0x01, 0x08, 0x08, 0x88, 0x00, 0x0a, 0x10, 0x08, 0x88, 0x00, 0x04, 0x7f, 0x01, 0x07, 0x00, 0x1f, 0xc1, 0x3a, 0x00, 0x00, 0x05, 0x49, 0x09, 0xfc, 0x00, 0x04, 0x49, 0x08, 0x84, 0x00, 0x04, 0x49, 0x08, 0x88, 0x00, 0x04, 0x49, 0x08, 0x48, 0x00, 0x04, 0x49, 0x08, 0x50, 0x00, 0x04, 0x49, 0x0a, 0x20, 0x00, 0x04, 0x16, 0x0c, 0x58, 0x00, 0x14, 0x21, 0x89, 0x87, 0x00, 0x08, 0xc0, 0x86, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t1[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xfe, 0x08, 0x20, 0x00, 0x08, 0x82, 0x0b, 0xff, 0x00, 0x04, 0x82, 0x0a, 0x01, 0x00, 0x10, 0xfe, 0x3c, 0x51, 0x00, 0x08, 0x82, 0x08, 0x88, 0x00, 0x08, 0x82, 0x09, 0x04, 0x00, 0x02, 0xfe, 0x0c, 0x00, 0x00, 0x04, 0x00, 0x19, 0xfc, 0x00, 0x09, 0xff, 0x28, 0x20, 0x00, 0x19, 0x29, 0x08, 0x20, 0x00, 0x09, 0x29, 0x08, 0x20, 0x00, 0x09, 0x29, 0x08, 0x20, 0x00, 0x09, 0x29, 0x2b, 0xff, 0x00, 0x0b, 0xff, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t2[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x20, 0x3e, 0x04, 0x00, 0x1f, 0xff, 0xa2, 0x04, 0x00, 0x10, 0x00, 0xa2, 0xff, 0x00, 0x00, 0x01, 0x22, 0x04, 0x00, 0x0f, 0xfe, 0x22, 0x04, 0x00, 0x00, 0x40, 0x3e, 0x44, 0x00, 0x00, 0x40, 0x22, 0x24, 0x00, 0x04, 0x40, 0x22, 0x24, 0x00, 0x04, 0x7c, 0x22, 0x04, 0x00, 0x04, 0x40, 0x22, 0x04, 0x00, 0x0a, 0x40, 0x3e, 0x04, 0x00, 0x09, 0x40, 0x22, 0x24, 0x00, 0x10, 0xff, 0x80, 0x14, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00 }; +const unsigned char t3[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x10, 0x12, 0x02, 0x00, 0x05, 0xff, 0x9f, 0xd2, 0x00, 0x05, 0x00, 0x92, 0x12, 0x00, 0x1e, 0x28, 0xa2, 0x12, 0x00, 0x04, 0x44, 0x3f, 0xf2, 0x00, 0x04, 0x82, 0x02, 0x12, 0x00, 0x06, 0x00, 0x02, 0x12, 0x00, 0x0c, 0xfe, 0x1f, 0xd2, 0x00, 0x14, 0x10, 0x12, 0x52, 0x00, 0x04, 0x10, 0x12, 0x42, 0x00, 0x04, 0x10, 0x13, 0x42, 0x00, 0x04, 0x10, 0x12, 0x82, 0x00, 0x15, 0xff, 0x82, 0x0a, 0x00, 0x08, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t4[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xfe, 0x0f, 0xf8, 0x00, 0x04, 0x02, 0x00, 0x00, 0x00, 0x04, 0x02, 0x00, 0x00, 0x00, 0x07, 0xfe, 0x00, 0x00, 0x00, 0x04, 0x02, 0x3f, 0xfe, 0x00, 0x04, 0x02, 0x00, 0x80, 0x00, 0x07, 0xfe, 0x00, 0x80, 0x00, 0x00, 0x90, 0x04, 0x90, 0x00, 0x08, 0x91, 0x0c, 0x88, 0x00, 0x06, 0x93, 0x10, 0x86, 0x00, 0x02, 0x94, 0x20, 0x82, 0x00, 0x00, 0x90, 0x00, 0x80, 0x00, 0x00, 0x90, 0x02, 0x80, 0x00, 0x1f, 0xff, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t5[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x80, 0x00, 0x1f, 0xff, 0x9f, 0xfc, 0x00, 0x00, 0x40, 0x04, 0x10, 0x00, 0x0f, 0xff, 0x02, 0x20, 0x00, 0x00, 0x00, 0x3f, 0xff, 0x00, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x08, 0x42, 0x0f, 0xf8, 0x00, 0x08, 0x42, 0x08, 0x08, 0x00, 0x0f, 0xfe, 0x08, 0x08, 0x00, 0x08, 0x02, 0x0f, 0xf8, 0x00, 0x08, 0x00, 0x08, 0x08, 0x00, 0x08, 0x00, 0x08, 0x08, 0x00, 0x08, 0x00, 0x0f, 0xf8, 0x00, 0x10, 0x00, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t6[] PROGMEM = { 0x09, 0xff, 0x00, 0x40, 0x00, 0x04, 0x20, 0x3f, 0xff, 0x00, 0x04, 0x20, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x1c, 0x42, 0x0f, 0xfc, 0x00, 0x04, 0x42, 0x00, 0x00, 0x00, 0x07, 0xff, 0x80, 0x00, 0x00, 0x04, 0x00, 0x0f, 0xfc, 0x00, 0x04, 0xff, 0x00, 0x00, 0x00, 0x04, 0x81, 0x00, 0x00, 0x00, 0x05, 0x81, 0x0f, 0xfc, 0x00, 0x06, 0x81, 0x08, 0x04, 0x00, 0x04, 0xff, 0x08, 0x04, 0x00, 0x00, 0x81, 0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +const unsigned char t7[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0f, 0xfe, 0x00, 0x01, 0x00, 0x08, 0x20, 0x00, 0x03, 0xff, 0x08, 0x20, 0x00, 0x02, 0x01, 0x08, 0x20, 0x00, 0x04, 0x22, 0x08, 0x20, 0x00, 0x08, 0x20, 0x0b, 0xfe, 0x00, 0x10, 0x20, 0x08, 0x20, 0x00, 0x00, 0x50, 0x08, 0x28, 0x00, 0x00, 0x50, 0x08, 0x24, 0x00, 0x00, 0x88, 0x08, 0x22, 0x00, 0x00, 0x88, 0x10, 0x20, 0x00, 0x01, 0x04, 0x10, 0x20, 0x00, 0x02, 0x03, 0xa7, 0xff, 0x00, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char Back[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x07, 0x00, 0x00, 0x00, 0x08, 0xf8, 0x3f, 0xfe, 0x00, 0x04, 0x80, 0x20, 0x02, 0x00, 0x00, 0x80, 0x20, 0x02, 0x00, 0x00, 0xbe, 0x23, 0xe2, 0x00, 0x1c, 0x82, 0x22, 0x22, 0x00, 0x04, 0xa4, 0x22, 0x22, 0x00, 0x04, 0x94, 0x22, 0x22, 0x00, 0x04, 0x88, 0x22, 0x22, 0x00, 0x04, 0x94, 0x23, 0xe2, 0x00, 0x05, 0x22, 0x20, 0x02, 0x00, 0x05, 0x42, 0x20, 0x02, 0x00, 0x0a, 0x00, 0x3f, 0xfe, 0x00, 0x11, 0xff, 0xa0, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +const unsigned char t1_1[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x08, 0x20, 0x90, 0x00, 0x02, 0x7f, 0x98, 0x90, 0x00, 0x1f, 0x80, 0x09, 0xff, 0x00, 0x02, 0x22, 0x01, 0x10, 0x00, 0x06, 0x21, 0x8b, 0x10, 0x00, 0x07, 0x62, 0x8d, 0xfe, 0x00, 0x0a, 0xa2, 0x09, 0x10, 0x00, 0x0a, 0x14, 0x11, 0x10, 0x00, 0x12, 0x14, 0x31, 0xfe, 0x00, 0x02, 0x08, 0x11, 0x10, 0x00, 0x02, 0x14, 0x11, 0x10, 0x00, 0x02, 0x22, 0x11, 0x10, 0x00, 0x02, 0x43, 0x91, 0xff, 0x00, 0x02, 0x81, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t1_2[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x80, 0x00, 0x00, 0x50, 0x01, 0xfc, 0x00, 0x00, 0x88, 0x01, 0x04, 0x00, 0x01, 0x04, 0x03, 0x08, 0x00, 0x06, 0xfb, 0x04, 0x90, 0x00, 0x08, 0x00, 0xc0, 0x60, 0x00, 0x07, 0xdf, 0x01, 0x80, 0x00, 0x04, 0x51, 0x06, 0x00, 0x00, 0x04, 0x51, 0x1b, 0xfe, 0x00, 0x04, 0x51, 0x02, 0x02, 0x00, 0x07, 0xd9, 0x02, 0x02, 0x00, 0x04, 0x56, 0x02, 0x02, 0x00, 0x00, 0x10, 0x03, 0xfe, 0x00, 0x00, 0x10, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t1_3[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x78, 0xbc, 0x20, 0x00, 0x09, 0x48, 0xa4, 0x50, 0x00, 0x09, 0x4a, 0xa8, 0x50, 0x00, 0x09, 0x4a, 0xa8, 0x88, 0x00, 0x09, 0x4a, 0xb1, 0x04, 0x00, 0x1f, 0xfe, 0xaa, 0xfb, 0x00, 0x09, 0x4a, 0xa4, 0x20, 0x00, 0x09, 0x4a, 0xa4, 0x20, 0x00, 0x09, 0x4a, 0xa7, 0xfe, 0x00, 0x09, 0x4a, 0xb4, 0x20, 0x00, 0x09, 0x48, 0xa9, 0x24, 0x00, 0x0b, 0x48, 0xa2, 0x22, 0x00, 0x08, 0x8a, 0xa4, 0xa2, 0x00, 0x11, 0x19, 0x20, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t1_4[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x00, 0x10, 0x00, 0x1f, 0xdc, 0x3e, 0xfe, 0x00, 0x08, 0x90, 0x02, 0x12, 0x00, 0x05, 0x10, 0x04, 0xff, 0x00, 0x1f, 0xdf, 0x84, 0x12, 0x00, 0x02, 0x12, 0x0c, 0xfe, 0x00, 0x1f, 0xd2, 0x02, 0x10, 0x00, 0x02, 0x12, 0x22, 0xfe, 0x00, 0x0a, 0x92, 0x14, 0x10, 0x00, 0x0a, 0x52, 0x14, 0x10, 0x00, 0x12, 0x22, 0x0d, 0xff, 0x00, 0x02, 0x22, 0x08, 0x10, 0x00, 0x0a, 0x42, 0x14, 0x10, 0x00, 0x04, 0x02, 0x23, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +//默认 +const unsigned char t2_0[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xc8, 0x10, 0x20, 0x00, 0x12, 0x4a, 0x0c, 0x20, 0x00, 0x1a, 0xc9, 0x04, 0x20, 0x00, 0x17, 0x48, 0x00, 0x20, 0x00, 0x1f, 0xff, 0xb8, 0x20, 0x00, 0x02, 0x08, 0x08, 0x50, 0x00, 0x1f, 0xc8, 0x08, 0x50, 0x00, 0x02, 0x08, 0x08, 0x50, 0x00, 0x03, 0xc8, 0x08, 0x48, 0x00, 0x1e, 0x14, 0x08, 0x88, 0x00, 0x01, 0x54, 0x0a, 0x88, 0x00, 0x15, 0x22, 0x0c, 0x84, 0x00, 0x14, 0x43, 0x89, 0x07, 0x00, 0x00, 0x81, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +//休眠 +const unsigned char t2_1[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x10, 0x3d, 0xfc, 0x00, 0x02, 0x10, 0x25, 0x04, 0x00, 0x04, 0x10, 0x25, 0x04, 0x00, 0x05, 0xff, 0xbd, 0xfc, 0x00, 0x0c, 0x10, 0x25, 0x20, 0x00, 0x0c, 0x38, 0x25, 0x20, 0x00, 0x14, 0x38, 0x25, 0xfe, 0x00, 0x04, 0x54, 0x3d, 0x20, 0x00, 0x04, 0x54, 0x25, 0x10, 0x00, 0x04, 0x92, 0x25, 0x10, 0x00, 0x05, 0x11, 0xa5, 0x09, 0x00, 0x06, 0x11, 0x3d, 0x45, 0x00, 0x04, 0x10, 0x25, 0x83, 0x00, 0x04, 0x10, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +//提温 +const unsigned char t2_2[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x7e, 0x21, 0xfc, 0x00, 0x04, 0x42, 0x11, 0x04, 0x00, 0x1f, 0x7e, 0x09, 0x04, 0x00, 0x04, 0x42, 0x21, 0xfc, 0x00, 0x05, 0x42, 0x11, 0x04, 0x00, 0x06, 0x7e, 0x11, 0x04, 0x00, 0x0c, 0x00, 0x05, 0xfc, 0x00, 0x15, 0xff, 0x88, 0x00, 0x00, 0x04, 0x08, 0x13, 0xfe, 0x00, 0x04, 0x48, 0x32, 0x52, 0x00, 0x04, 0x4f, 0x12, 0x52, 0x00, 0x04, 0x48, 0x12, 0x52, 0x00, 0x14, 0xa8, 0x12, 0x52, 0x00, 0x09, 0x1f, 0x97, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +//关机 +const unsigned char t3_1[] PROGMEM = { 0x01, 0x04, 0x04, 0x7c, 0x00, 0x00, 0x88, 0x04, 0x44, 0x00, 0x0f, 0xff, 0x3f, 0x44, 0x00, 0x00, 0x20, 0x04, 0x44, 0x00, 0x00, 0x20, 0x0c, 0x44, 0x00, 0x00, 0x20, 0x0e, 0x44, 0x00, 0x1f, 0xff, 0x95, 0x44, 0x00, 0x00, 0x20, 0x14, 0x44, 0x00, 0x00, 0x50, 0x24, 0x44, 0x00, 0x00, 0x50, 0x04, 0x44, 0x00, 0x00, 0x88, 0x04, 0x45, 0x00, 0x01, 0x04, 0x04, 0x85, 0x00, 0x06, 0x03, 0x85, 0x03, 0x00, 0x18, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +const unsigned char t_4[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x08, 0x20, 0x00, 0x0f, 0xff, 0x09, 0xfc, 0x00, 0x00, 0x20, 0x08, 0x00, 0x00, 0x00, 0x20, 0x3e, 0x88, 0x00, 0x03, 0xfe, 0x08, 0x50, 0x00, 0x02, 0x02, 0x0b, 0xfe, 0x00, 0x03, 0xfe, 0x0c, 0x40, 0x00, 0x02, 0x02, 0x18, 0x40, 0x00, 0x03, 0xfe, 0x2b, 0xfe, 0x00, 0x02, 0x02, 0x08, 0x48, 0x00, 0x03, 0xfe, 0x08, 0x88, 0x00, 0x02, 0x02, 0x08, 0x50, 0x00, 0x02, 0x02, 0x28, 0x30, 0x00, 0x1f, 0xff, 0x91, 0xcc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t_PID[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xc3, 0xf1, 0xe0, 0x00, 0x0f, 0xe3, 0xf1, 0xf8, 0x00, 0x0c, 0x70, 0xc1, 0x9e, 0x00, 0x0c, 0x30, 0xc1, 0x86, 0x00, 0x0c, 0x30, 0xc1, 0x83, 0x00, 0x0c, 0x30, 0xc1, 0x83, 0x00, 0x0c, 0x60, 0xc1, 0x83, 0x00, 0x0c, 0x60, 0xc1, 0x83, 0x00, 0x0f, 0xc0, 0xc1, 0x83, 0x00, 0x0f, 0xc0, 0xc1, 0x86, 0x00, 0x0c, 0x00, 0xc1, 0x86, 0x00, 0x0c, 0x00, 0xc1, 0x98, 0x00, 0x0c, 0x03, 0xf1, 0xf8, 0x00, 0x0c, 0x03, 0xf1, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +const unsigned char t5_0[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xdf, 0x88, 0x40, 0x00, 0x0a, 0x24, 0x10, 0x40, 0x00, 0x11, 0x42, 0x10, 0xfe, 0x00, 0x04, 0x00, 0x22, 0x82, 0x00, 0x02, 0xff, 0x3d, 0x02, 0x00, 0x08, 0x01, 0x0a, 0x42, 0x00, 0x09, 0xf9, 0x10, 0x32, 0x00, 0x09, 0x09, 0x20, 0x12, 0x00, 0x09, 0xf9, 0x3e, 0x02, 0x00, 0x09, 0x09, 0x00, 0x02, 0x00, 0x09, 0x09, 0x0e, 0x02, 0x00, 0x09, 0xf9, 0x30, 0x22, 0x00, 0x08, 0x05, 0x00, 0x14, 0x00, 0x08, 0x02, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t5_1[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x44, 0x10, 0xfe, 0x00, 0x04, 0x28, 0x10, 0x92, 0x00, 0x05, 0xff, 0x22, 0x92, 0x00, 0x00, 0x10, 0x3c, 0x92, 0x00, 0x00, 0x10, 0x08, 0x92, 0x00, 0x1c, 0xfe, 0x10, 0x92, 0x00, 0x04, 0x10, 0x20, 0xfe, 0x00, 0x04, 0x10, 0x3e, 0x92, 0x00, 0x05, 0xff, 0x80, 0x92, 0x00, 0x04, 0x10, 0x00, 0x92, 0x00, 0x05, 0x10, 0x0e, 0x92, 0x00, 0x06, 0x10, 0x30, 0x92, 0x00, 0x04, 0x10, 0x00, 0xfe, 0x00, 0x00, 0x10, 0x00, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t5_3[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x08, 0x3f, 0xfe, 0x00, 0x1f, 0xff, 0x81, 0x00, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x07, 0xfe, 0x0f, 0xf8, 0x00, 0x04, 0x02, 0x08, 0x08, 0x00, 0x04, 0x02, 0x08, 0x88, 0x00, 0x07, 0xfe, 0x08, 0x88, 0x00, 0x04, 0x02, 0x08, 0x88, 0x00, 0x04, 0x02, 0x08, 0x88, 0x00, 0x07, 0xfe, 0x08, 0x88, 0x00, 0x04, 0x02, 0x09, 0x48, 0x00, 0x04, 0x02, 0x02, 0x30, 0x00, 0x07, 0xfe, 0x04, 0x0c, 0x00, 0x04, 0x02, 0x18, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +const unsigned char t_off[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x04, 0xff, 0x00, 0x00, 0x44, 0x02, 0x01, 0x00, 0x07, 0xff, 0x90, 0x21, 0x00, 0x00, 0x10, 0x10, 0x21, 0x00, 0x00, 0x10, 0x17, 0xfd, 0x00, 0x00, 0x10, 0x10, 0x21, 0x00, 0x0f, 0xff, 0xd0, 0x61, 0x00, 0x00, 0x10, 0x10, 0xa1, 0x00, 0x00, 0x28, 0x11, 0x21, 0x00, 0x00, 0x28, 0x12, 0x21, 0x00, 0x00, 0x44, 0x14, 0x21, 0x00, 0x00, 0x82, 0x10, 0xa1, 0x00, 0x03, 0x01, 0xd0, 0x45, 0x00, 0x0c, 0x00, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t_on[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0x80, 0x20, 0x00, 0x00, 0x84, 0x07, 0xff, 0x00, 0x00, 0x84, 0x04, 0x01, 0x00, 0x00, 0x84, 0x04, 0x01, 0x00, 0x00, 0x84, 0x04, 0x01, 0x00, 0x0f, 0xff, 0xc7, 0xff, 0x00, 0x00, 0x84, 0x04, 0x00, 0x00, 0x00, 0x84, 0x04, 0x00, 0x00, 0x00, 0x84, 0x05, 0xff, 0x00, 0x00, 0x84, 0x05, 0x01, 0x00, 0x01, 0x04, 0x09, 0x01, 0x00, 0x01, 0x04, 0x09, 0x01, 0x00, 0x02, 0x04, 0x11, 0xff, 0x00, 0x04, 0x04, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +const unsigned char t_NO[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x04, 0x91, 0x00, 0x04, 0x40, 0x02, 0x52, 0x00, 0x04, 0x7f, 0x90, 0x54, 0x00, 0x04, 0x50, 0x88, 0xff, 0x00, 0x07, 0xd0, 0x84, 0x81, 0x00, 0x04, 0x51, 0x00, 0x81, 0x00, 0x04, 0x49, 0x01, 0xff, 0x00, 0x07, 0xca, 0x02, 0x81, 0x00, 0x04, 0x44, 0x04, 0x81, 0x00, 0x04, 0x4a, 0x1c, 0xff, 0x00, 0x07, 0xea, 0x04, 0x81, 0x00, 0x0c, 0x51, 0x04, 0x81, 0x00, 0x00, 0x61, 0xc4, 0x85, 0x00, 0x00, 0x40, 0x80, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t_OK[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xdf, 0x10, 0x20, 0x00, 0x02, 0x12, 0x0c, 0x20, 0x00, 0x02, 0x24, 0x04, 0x20, 0x00, 0x04, 0x7f, 0x80, 0x20, 0x00, 0x04, 0x24, 0xb8, 0x20, 0x00, 0x0f, 0xa4, 0x88, 0x50, 0x00, 0x14, 0xbf, 0x88, 0x50, 0x00, 0x04, 0xa4, 0x88, 0x50, 0x00, 0x04, 0xa4, 0x88, 0x48, 0x00, 0x04, 0xbf, 0x88, 0x88, 0x00, 0x04, 0xa4, 0x8a, 0x88, 0x00, 0x07, 0xa4, 0x8c, 0x84, 0x00, 0x04, 0x44, 0x89, 0x07, 0x00, 0x00, 0x81, 0x86, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +const unsigned char t_CN_CN[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x40, 0x00, 0x80, 0x00, 0x0f, 0xff, 0x3f, 0xff, 0x00, 0x08, 0x41, 0x04, 0x08, 0x00, 0x08, 0x41, 0x04, 0x08, 0x00, 0x08, 0x41, 0x04, 0x10, 0x00, 0x08, 0x41, 0x02, 0x10, 0x00, 0x0f, 0xff, 0x02, 0x20, 0x00, 0x08, 0x41, 0x01, 0x20, 0x00, 0x00, 0x40, 0x00, 0xc0, 0x00, 0x00, 0x40, 0x01, 0x30, 0x00, 0x00, 0x40, 0x02, 0x08, 0x00, 0x00, 0x40, 0x0c, 0x07, 0x00, 0x00, 0x40, 0x30, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t_CN_EN[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x10, 0x00, 0x80, 0x00, 0x1f, 0xff, 0x80, 0x80, 0x00, 0x01, 0x10, 0x3f, 0xff, 0x00, 0x00, 0x40, 0x04, 0x08, 0x00, 0x07, 0xfc, 0x04, 0x08, 0x00, 0x04, 0x44, 0x04, 0x10, 0x00, 0x04, 0x44, 0x02, 0x10, 0x00, 0x04, 0x44, 0x02, 0x20, 0x00, 0x1f, 0xff, 0x81, 0x20, 0x00, 0x00, 0x40, 0x00, 0xc0, 0x00, 0x00, 0xa0, 0x01, 0x30, 0x00, 0x01, 0x10, 0x02, 0x08, 0x00, 0x06, 0x0c, 0x0c, 0x07, 0x00, 0x18, 0x03, 0xb0, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +//翻转 +const unsigned char t4f[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x1d, 0xc2, 0x08, 0x00, 0x05, 0x44, 0x42, 0x08, 0x00, 0x03, 0x84, 0x5f, 0xbf, 0x00, 0x0f, 0xe4, 0x44, 0x10, 0x00, 0x01, 0x15, 0x45, 0x10, 0x00, 0x05, 0x4c, 0xc9, 0x7f, 0x80, 0x09, 0x24, 0x4f, 0x90, 0x00, 0x07, 0xc4, 0xc1, 0x10, 0x00, 0x05, 0x4d, 0x41, 0x3f, 0x00, 0x05, 0x54, 0x43, 0x81, 0x00, 0x07, 0xc4, 0x4d, 0x02, 0x00, 0x05, 0x44, 0x41, 0x14, 0x00, 0x05, 0x55, 0x41, 0x08, 0x00, 0x07, 0xc8, 0x81, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +//保存 +const unsigned char t_save[] PROGMEM = { 0x02, 0xfe, 0x01, 0x00, 0x00, 0x02, 0x82, 0x3f, 0xff, 0x00, 0x04, 0x82, 0x02, 0x00, 0x00, 0x04, 0xfe, 0x02, 0x00, 0x00, 0x0c, 0x10, 0x04, 0xfc, 0x00, 0x14, 0x10, 0x04, 0x08, 0x00, 0x05, 0xff, 0x8c, 0x10, 0x00, 0x04, 0x10, 0x14, 0x10, 0x00, 0x04, 0x38, 0x25, 0xff, 0x00, 0x04, 0x34, 0x04, 0x10, 0x00, 0x04, 0x52, 0x04, 0x10, 0x00, 0x04, 0x91, 0x84, 0x10, 0x00, 0x05, 0x10, 0x04, 0x50, 0x00, 0x04, 0x10, 0x04, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char *CN_table[] = { + t0, t1, t2, t3, t4, t5, t7, t6, Back, //0 + t0, t1_1, t1_2, t1_3, t1_4, t_save, //1 + t2_0, t2_1, t2_2, t_save, //2 + t2_1, t3_1, t2_2, t_save,//3 + t_4, t_PID,//4 + t5_0, t5_1,//5 + t_off, t_on,//6 + t_NO, t_OK,//7 + t_CN_CN, t_CN_EN,//8 + t_NO, t_OK,//9 + t5_3, t4f, t_save, //10 +}; + +bool lastbutton; +#include //注意 这里使用被阉割的图形库,只有绘图功能,并非通用的版本 +Arduboy2 arduboy; + +#include +#include +#include + +// Firmware version +#define VERSION "v1.7t2" + +// Type of rotary encoder +#define ROTARY_TYPE 1 // 0: 2 increments/step; 1: 4 increments/step + +// Pins +#define SENSOR_PIN A0 // temperature sense +#define VIN_PIN A1 // input voltage sense +#define BUZZER_PIN 5 // buzzer +#define BUTTON_PIN 6 // rotary encoder switch +#define ROTARY_1_PIN 7 // rotary encoder 1 +#define ROTARY_2_PIN 8 // rotary encoder 2 +#define CONTROL_PIN 9 // heater MOSFET PWM control +#define SWITCH_PIN 10 // handle vibration switch + +// Default temperature control values (recommended soldering temperature: 300-380°C) +#define ChipTempCalVal 330 //芯片内部温度读取校准值 -->可以根据实际情况修改,不同机器情况不同,通常误差在10°C内 +#define TEMP_MIN 50 // min selectable temperature +#define TEMP_MAX 400 // max selectable temperature +#define TEMP_DEFAULT 320 // default start setpoint +#define TEMP_SLEEP 150 // temperature in sleep mode +#define TEMP_BOOST 60 // temperature increase in boost mode +#define TEMP_STEP 10 // rotary encoder temp change steps + +// Default tip temperature calibration values +#define TEMP200 216 // temperature at ADC = 200 +#define TEMP280 308 // temperature at ADC = 280 +#define TEMP360 390 // temperature at ADC = 360 +#define TEMPCHP 30 // chip temperature while calibration +#define TIPMAX 8 // max number of tips +#define TIPNAMELENGTH 6 // max length of tip names (including termination) +#define TIPNAME "BC1.5" // default tip name + +// Default timer values (0 = disabled) +#define TIME2SLEEP 5 // time to enter sleep mode in minutes +#define TIME2OFF 15 // time to shut off heater in minutes +#define TIMEOFBOOST 40 // time to stay in boost mode in seconds + +// Control values +#define TIME2SETTLE 950 // time in microseconds to allow OpAmp output to settle +#define SMOOTHIE 0.05 // OpAmp output smooth factor (1=no smoothing; 0.05 default) +#define PID_ENABLE true // enable PID control +#define BEEP_ENABLE true // enable/disable buzzer +#define MAINSCREEN 1 // type of main screen (0: big numbers; 1: more infos) + +// EEPROM identifier +#define EEPROM_IDENT 0x08FF // to identify if EEPROM was written by this program + +//Beep +#define SetBeepCoolTime 200 +unsigned long BeepCoolTime; + +// Define the aggressive and conservative PID tuning parameters +double aggKp = 11, aggKi = 0.5, aggKd = 1; +double consKp = 11, consKi = 3, consKd = 5; + +// Default values that can be changed by the user and stored in the EEPROM +uint16_t DefaultTemp = TEMP_DEFAULT; +uint16_t SleepTemp = TEMP_SLEEP; +uint8_t BoostTemp = TEMP_BOOST; +uint8_t time2sleep = TIME2SLEEP; +uint8_t time2off = TIME2OFF; +uint8_t timeOfBoost = TIMEOFBOOST; +uint8_t MainScrType = MAINSCREEN; +bool PIDenable = PID_ENABLE; +bool beepEnable = BEEP_ENABLE; +// Default values for tips +uint16_t CalTemp[TIPMAX][4] = {TEMP200, TEMP280, TEMP360, TEMPCHP}; +char TipName[TIPMAX][TIPNAMELENGTH] = {TIPNAME}; +uint8_t CurrentTip = 0; +uint8_t NumberOfTips = 1; + +// Menu items +/* + 这个可以选择进行界面美化 + const char *DeleteMessage[] = { "Warning", "You cannot", "delete your", "last tip!" }; + const char *MaxTipMessage[] = { "Warning", "You reached", "maximum number", "of tips!" }; +*/ +// Variables for pin change interrupt +volatile uint8_t a0, b0, c0, d0; +volatile bool ab0; +volatile int count, countMin, countMax, countStep; +volatile bool handleMoved; + +// Variables for temperature control +uint16_t SetTemp, ShowTemp, gap, Step; +double Input, Output, Setpoint, RawTemp, CurrentTemp, ChipTemp; + +// Variables for voltage readings +uint16_t Vcc, Vin; + +// State variables +bool inSleepMode = false; +bool inOffMode = false; +bool inBoostMode = false; +bool inCalibMode = false; +bool isWorky = true; +bool beepIfWorky = true; +bool TipIsPresent = true; +bool FlipState = false; +// Timing variables +uint32_t sleepmillis; +uint32_t boostmillis; +uint32_t buttonmillis; +uint8_t goneMinutes; +uint8_t goneSeconds; +uint8_t SensorCounter = 255; +//串口助手 +int x, y, a, b; +//欠压报警 +byte UnderVoltage = 0; +// Control variables +uint16_t time2settle = 300; + +//模拟数字滚轮 Numerical scrolling effect +String value; +int LastValue[3]; +float SlidingAnimationY[3]; + +// Specify the links and initial PID tuning parameters +PID ctrl(&Input, &Output, &Setpoint, aggKp, aggKi, aggKd, REVERSE); + + + +//LANG 语言支持 +/* 0 - 中文 CHINESE + 1 - 英文 ENGLISH +*/ +byte LANG = 0; +void Flip(bool Fmode) { + arduboy.flipVertical(Fmode); + arduboy.flipHorizontal(Fmode); +} +void setup() { + arduboy.begin(); + arduboy.setFrameRate(30); + + //Serial.begin(115200); + // set the pin modes + pinMode(SENSOR_PIN, INPUT); + pinMode(VIN_PIN, INPUT); + pinMode(BUZZER_PIN, OUTPUT); + pinMode(CONTROL_PIN, OUTPUT); + pinMode(ROTARY_1_PIN, INPUT_PULLUP); + pinMode(ROTARY_2_PIN, INPUT_PULLUP); + pinMode(BUTTON_PIN, INPUT_PULLUP); + pinMode(SWITCH_PIN, INPUT_PULLUP); + + analogWrite(CONTROL_PIN, 255); // this shuts off the heater + digitalWrite(BUZZER_PIN, LOW); // must be LOW when buzzer not in use + + // setup ADC + ADCSRA |= bit (ADPS0) | bit (ADPS1) | bit (ADPS2); // set ADC prescaler to 128 + ADCSRA |= bit (ADIE); // enable ADC interrupt + interrupts (); // enable global interrupts + + // setup pin change interrupt for rotary encoder + PCMSK0 = bit (PCINT0); // Configure pin change interrupt on Pin8 + PCICR = bit (PCIE0); // Enable pin change interrupt + PCIFR = bit (PCIF0); // Clear interrupt flag + + + // get default values from EEPROM + getEEPROM(); + //设置屏幕反转状态 + Flip(FlipState); + // read supply voltages in mV + Vcc = getVCC(); Vin = getVIN(); + + // read and set current iron temperature + SetTemp = DefaultTemp; + RawTemp = denoiseAnalog(SENSOR_PIN); + ChipTemp = getChipTemp(); + calculateTemp(); + + // turn on heater if iron temperature is well below setpoint + if ((CurrentTemp + 20) < DefaultTemp) analogWrite(CONTROL_PIN, 0); + + // tell the PID to range between 0 and the full window size + ctrl.SetOutputLimits(0, 255); + + // start PID + ctrl.SetMode(AUTOMATIC); + + // set initial rotary encoder values + a0 = PINB & 1; b0 = PIND >> 7 & 1; ab0 = (a0 == b0); + setRotary(TEMP_MIN, TEMP_MAX, TEMP_STEP, DefaultTemp); + + // reset sleep timer + sleepmillis = millis(); + + // long beep for setup completion + beep(); beep(); + + +} + + +void loop() { + //HelpMeSerialer(); + ROTARYCheck(); // check rotary encoder (temp/boost setting, enter setup menu) + SLEEPCheck(); // check and activate/deactivate sleep modes + SENSORCheck(); // reads temperature and vibration switch of the iron + Thermostat(); // heater control + MainScreen(); // updates the main page on the OLED + //beep(0); +} + + + + +// check rotary encoder; set temperature, toggle boost mode, enter setup menu accordingly +void ROTARYCheck() { + // set working temperature according to rotary encoder value + SetTemp = getRotary(); + + // check rotary encoder switch + uint8_t c = digitalRead(BUTTON_PIN); + if ( !c && c0 ) { + beep(); + buttonmillis = millis(); + while ( (!digitalRead(BUTTON_PIN)) && ((millis() - buttonmillis) < 500) ); + if ((millis() - buttonmillis) >= 500) SetupScreen(); + else { + inBoostMode = !inBoostMode; + if (inBoostMode) boostmillis = millis(); + handleMoved = true; + } + } + c0 = c; + + // check timer when in boost mode + if (inBoostMode && timeOfBoost) { + goneSeconds = (millis() - boostmillis) / 1000; + if (goneSeconds >= timeOfBoost) { + inBoostMode = false; // stop boost mode + beep(); // beep if boost mode is over + beepIfWorky = true; // beep again when working temperature is reached + } + } +} + + +// check and activate/deactivate sleep modes +void SLEEPCheck() { + if (handleMoved) { // if handle was moved + if (inSleepMode) { // in sleep or off mode? + if ((CurrentTemp + 20) < SetTemp) // if temp is well below setpoint + analogWrite(CONTROL_PIN, 0); // then start the heater right now + beep(); // beep on wake-up + beepIfWorky = true; // beep again when working temperature is reached + } + handleMoved = false; // reset handleMoved flag + inSleepMode = false; // reset sleep flag + inOffMode = false; // reset off flag + sleepmillis = millis(); // reset sleep timer + } + + // check time passed since the handle was moved + goneMinutes = (millis() - sleepmillis) / 60000; + if ( (!inSleepMode) && (time2sleep > 0) && (goneMinutes >= time2sleep) ) { + inSleepMode = true; + beep(); + } + if ( (!inOffMode) && (time2off > 0) && (goneMinutes >= time2off ) ) { + inOffMode = true; + beep(); + } +} + + +// reads temperature, vibration switch and supply voltages +void SENSORCheck() { + analogWrite(CONTROL_PIN, 255); // shut off heater in order to measure temperature + delayMicroseconds(time2settle); // wait for voltage to settle + + uint16_t temp = denoiseAnalog(SENSOR_PIN); // read ADC value for temperature + uint8_t d = digitalRead(SWITCH_PIN); // check handle vibration switch + if (d != d0) { + handleMoved = true; // set flag if handle was moved + d0 = d; + } + if (! SensorCounter--) Vin = getVIN(); // get Vin every now and then + + analogWrite(CONTROL_PIN, Output); // turn on again heater + + RawTemp += (temp - RawTemp) * SMOOTHIE; // stabilize ADC temperature reading + calculateTemp(); + + // stabilize displayed temperature when around setpoint + if ((ShowTemp != Setpoint) || (abs(ShowTemp - CurrentTemp) > 5)) ShowTemp = CurrentTemp; + + // set state variable if temperature is in working range; beep if working temperature was just reached + gap = abs(SetTemp - CurrentTemp); + if (gap < 5) { + if (!isWorky && beepIfWorky) beep(); + isWorky = true; + beepIfWorky = false; + } + else isWorky = false; + // checks if tip is present or currently inserted + if (ShowTemp > 500) TipIsPresent = false; // tip removed ? + if (!TipIsPresent && (ShowTemp < 500)) { // new tip inserted ? + analogWrite(CONTROL_PIN, 255); // shut off heater + beep(); // beep for info + TipIsPresent = true; // tip is present now + ChangeTipScreen(); // show tip selection screen + updateEEPROM(); // update setting in EEPROM + handleMoved = true; // reset all timers + RawTemp = denoiseAnalog(SENSOR_PIN); // restart temp smooth algorithm + c0 = LOW; // switch must be released + setRotary(TEMP_MIN, TEMP_MAX, TEMP_STEP, SetTemp); // reset rotary encoder + } +} + + +// calculates real temperature value according to ADC reading and calibration values +void calculateTemp() { + if (RawTemp < 200) CurrentTemp = map (RawTemp, 0, 200, 21, CalTemp[CurrentTip][0]); + else if (RawTemp < 280) CurrentTemp = map (RawTemp, 200, 280, CalTemp[CurrentTip][0], CalTemp[CurrentTip][1]); + else CurrentTemp = map (RawTemp, 280, 360, CalTemp[CurrentTip][1], CalTemp[CurrentTip][2]); +} + + +//调温 +void Thermostat() { + // define Setpoint acoording to current working mode + if (inOffMode) Setpoint = 0; + else if (inSleepMode) Setpoint = SleepTemp; + else if (inBoostMode) Setpoint = SetTemp + BoostTemp; + else Setpoint = SetTemp; + + // control the heater (PID or direct) + gap = abs(Setpoint - CurrentTemp); + if (PIDenable) { + Input = CurrentTemp; + if (gap < 30) ctrl.SetTunings(consKp, consKi, consKd); + else ctrl.SetTunings(aggKp, aggKi, aggKd); + ctrl.Compute(); + } else { + // turn on heater if current temperature is below setpoint + if ((CurrentTemp + 0.5) < Setpoint) Output = 0; else Output = 255; + } + analogWrite(CONTROL_PIN, Output); // set heater PWM +} + + +// creates a short beep on the buzzer +void beep() { + /* + if (beepEnable) { + if (BeepCoolTime + SetBeepCoolTime < millis()) { + if (state) BeepCoolTime = millis(); + analogWrite(BUZZER_PIN, 0); + } else analogWrite(BUZZER_PIN, 127); + } else analogWrite(BUZZER_PIN, 0); + */ + //体谅一下,没内存了,只能用原始的办法驱动无源蜂鸣器,否则我也不想牺牲宝贵响应资源换内存 + if (beepEnable) { + for (uint8_t i = 0; i < 255; i++) { + digitalWrite(BUZZER_PIN, HIGH); + delayMicroseconds(125); + digitalWrite(BUZZER_PIN, LOW); + delayMicroseconds(125); + } + } +} + +//设置旋转编码器的起始值 +// sets start values for rotary encoder +void setRotary(int rmin, int rmax, int rstep, int rvalue) { + countMin = rmin << ROTARY_TYPE; + countMax = rmax << ROTARY_TYPE; + countStep = rstep; + count = rvalue << ROTARY_TYPE; +} + + +// reads current rotary encoder value +int getRotary() { + return (count >> ROTARY_TYPE); +} + + +// reads user settings from EEPROM; if EEPROM values are invalid, write defaults +void getEEPROM() { + uint16_t identifier = (EEPROM.read(0) << 8) | EEPROM.read(1); + if (identifier == EEPROM_IDENT) { + DefaultTemp = (EEPROM.read(2) << 8) | EEPROM.read(3); + SleepTemp = (EEPROM.read(4) << 8) | EEPROM.read(5); + BoostTemp = EEPROM.read(6); + time2sleep = EEPROM.read(7); + time2off = EEPROM.read(8); + timeOfBoost = EEPROM.read(9); + MainScrType = EEPROM.read(10); + PIDenable = EEPROM.read(11); + beepEnable = EEPROM.read(12); + CurrentTip = EEPROM.read(13); + NumberOfTips = EEPROM.read(14); + LANG = EEPROM.read(15); + FlipState = EEPROM.read(16); + UnderVoltage = EEPROM.read(17); + uint8_t i, j; + uint16_t counter = 18; + for (i = 0; i < NumberOfTips; i++) { + for (j = 0; j < TIPNAMELENGTH; j++) { + TipName[i][j] = EEPROM.read(counter++); + } + for (j = 0; j < 4; j++) { + CalTemp[i][j] = EEPROM.read(counter++) << 8; + CalTemp[i][j] |= EEPROM.read(counter++); + } + } + } + else { + EEPROM.update(0, EEPROM_IDENT >> 8); EEPROM.update(1, EEPROM_IDENT & 0xFF); + updateEEPROM(); + } +} + + +// writes user settings to EEPROM using updade function to minimize write cycles +void updateEEPROM() { + EEPROM.update( 2, DefaultTemp >> 8); + EEPROM.update( 3, DefaultTemp & 0xFF); + EEPROM.update( 4, SleepTemp >> 8); + EEPROM.update( 5, SleepTemp & 0xFF); + EEPROM.update( 6, BoostTemp); + EEPROM.update( 7, time2sleep); + EEPROM.update( 8, time2off); + EEPROM.update( 9, timeOfBoost); + EEPROM.update(10, MainScrType); + EEPROM.update(11, PIDenable); + EEPROM.update(12, beepEnable); + EEPROM.update(13, CurrentTip); + EEPROM.update(14, NumberOfTips); + EEPROM.update(15, LANG); + EEPROM.update(16, FlipState); + EEPROM.update(17, UnderVoltage); + uint8_t i, j; + uint16_t counter = 18; + for (i = 0; i < NumberOfTips; i++) { + for (j = 0; j < TIPNAMELENGTH; j++) EEPROM.update(counter++, TipName[i][j]); + for (j = 0; j < 4; j++) { + EEPROM.update(counter++, CalTemp[i][j] >> 8); + EEPROM.update(counter++, CalTemp[i][j] & 0xFF); + } + } +} +//此片段用于DEBUG +void HelpMeSerialer() { + //串口助手 + if (Serial.available()) { + char TmpChar = Serial.read(); + switch (TmpChar) { + case 'x': x = Serial.parseInt(); + case 'y': y = Serial.parseInt(); + case 'a': a = Serial.parseInt(); + case 'b': b = Serial.parseInt(); + } + } + /* + Serial.println(String("X ->") + x); + Serial.println(String("Y ->") + y); + Serial.println(String("A ->") + a); + Serial.println(String("B ->") + b); + */ +} +// draws the main screen +void MainScreen() { + if (!(arduboy.nextFrame())) //帧率锁 + return; + byte SysState; + if (MainScrType) { + arduboy.clear(); + //详细信息页 + arduboy.fillRect(0, 0, 128, 64, 1); //白底 + arduboy.setTextSize(1); + SetTextColor(0); + //预设名 + arduboy.drawSlowXYBitmap(0, 0, Tag, 16, 16, 0); + arduboy.setCursor(19, 4); arduboy.print(TipName[CurrentTip]); + //状态显示 + if (ShowTemp > 500) SysState = 0; + else if (inOffMode) SysState = 1; + else if (inSleepMode) SysState = 2; + else if (inBoostMode) SysState = 3; + else if (isWorky) SysState = 4; + else if (Output < 180) SysState = 5; + else SysState = 6; + //显示状态 + arduboy.setCursor(53, 1); + arduboy.setTextSize(2); + switch (LANG) { + case 0: arduboy.drawSlowXYBitmap(80, 1, S_table[SysState], 28, 14, 0); break; //中文 Chinese + default: //英文 English + switch (SysState) { + case 1: arduboy.print(F("OFF")); break; + case 2: arduboy.print(F("SLEEP")); break; + case 3: arduboy.print(F("BOOST")); break; + case 4: arduboy.print(F("WORKY")); break; + case 5: arduboy.print(F("HEAT")); break; + case 6: arduboy.print(F("HOLD")); break; + default: arduboy.print(F("ERROR")); break; + } break; + } + arduboy.drawSlowXYBitmap(113, 1, C_table[SysState], 14, 14, 0); + arduboy.setTextSize(1); + //芯片 + //R1 + if (getChipTemp() > 80 && ((millis() * 4) / 1000) % 2) beep(); else arduboy.drawSlowXYBitmap(2, 18, Chip, 14, 14, 0); + + //R2 + if ((float)Vin / 100 < UnderVoltage && ((millis() * 4) / 1000) % 2) beep(); else arduboy.drawSlowXYBitmap(2, 34, Lightning, 14, 14, 0); + //R3 + arduboy.setCursor(19, 16); arduboy.print(getChipTemp(), 1); arduboy.print((char)248); arduboy.print(F("C")); //芯片温度 + arduboy.setCursor(19, 24); arduboy.print((float)getVCC() / 1000, 2); arduboy.print(F("V")); //芯片电压 + arduboy.setCursor(19, 32); arduboy.print((float)Vin / 1000, 1); arduboy.print(F("V")); //输入电压 + arduboy.setCursor(19, 40); arduboy.print(F(VERSION)); //固件 + //显示探头温度 + arduboy.setCursor(57, 18); + arduboy.setTextSize(4); + if (ShowTemp > 500) arduboy.print(F("000")); else arduboy.print(ShowTemp); + arduboy.drawRect(55, 16, 72, 32, 0); + + DrawStatusBar(0); + arduboy.display(); + } else { + arduboy.clear(); + if (getChipTemp() > 80 && ((millis() * 4) / 1000) % 2) beep(); + if ((float)Vin / 100 < UnderVoltage && ((millis() * 4) / 1000) % 2) beep(); + if (ShowTemp > 500) DisplayNum(999); else DisplayNum(ShowTemp); + arduboy.fillRect(0, 48, 128, 3, 0); + DrawStatusBar(1); + arduboy.display(); + } + +} + +void DrawStatusBar(bool color) { + SetTextColor(color); + arduboy.setTextSize(1); + //温度条 + //框 + arduboy.drawRect(1, 49, 102, 14, color); + //条 + if (ShowTemp <= 500) arduboy.fillRect(1, 49, map(ShowTemp, 0, 500, 2, 102), 14, color); + //指示部分 + arduboy.fillRect(map(Setpoint, 0, 500, 2, 102) - 2, 50, 3, 13, color); + //先来个白底 + arduboy.fillRect(map(Setpoint, 0, 500, 2, 102) - 3, 60, 5, 4, color); + arduboy.drawLine(map(Setpoint, 0, 500, 2, 102) - 1, 60, map(Setpoint, 0, 500, 2, 102) - 1, 49, !color); + + //画指示针 + arduboy.drawSlowXYBitmap(map(Setpoint, 0, 500, 2, 102) - 3, 59, Pointer, 5, 4, !color); + + //功率条 + arduboy.drawRect(104, 49, 23, 14, color); + arduboy.fillRect(104, 49, map(Output, 255, 0, 0, 23), 14, color); + + SetTextColor(!color); + //////////////进入反色//////////////////////////////// + arduboy.setCursor(2, 55); arduboy.print(Setpoint, 0); arduboy.print((char)248); arduboy.print(F("C")); //探头预设温度 + arduboy.setCursor(105, 55); arduboy.print(map(Output, 255, 0, 0, 100)); arduboy.print(F("%")); //功率百分比 + SetTextColor(color); +} + +//设置画笔颜色 +void SetTextColor(bool color) { + arduboy.setTextBackground(!color); + arduboy.setTextColor(color); +} +// setup screen +void SetupScreen() { + analogWrite(CONTROL_PIN, 255); // shut off heater + beep(); + uint16_t SaveSetTemp = SetTemp; + uint8_t selection = 0; + bool repeat = true; + + while (repeat) { + MenuLevel = 0; //默认打开主菜单 + selection = MenuScreen(selection); + switch (selection) { + case 0: MenuLevel = 1; TipScreen(); repeat = false; break; + case 1: MenuLevel = 2; TempScreen(); break; + case 2: MenuLevel = 3; TimerScreen(); break; + case 3: MenuLevel = 4; PIDenable = MenuScreen(PIDenable); break; + case 4: MenuLevel = 10; ScreenSet(); break; + case 5: MenuLevel = 6; beepEnable = MenuScreen(beepEnable); break; + case 7: MenuLevel = 8; LANG = MenuScreen(LANG); break; + case 6: UnderVoltageSet(); break; + default: repeat = false; break; + } + } + updateEEPROM(); + handleMoved = true; + SetTemp = SaveSetTemp; + setRotary(TEMP_MIN, TEMP_MAX, TEMP_STEP, SetTemp); +} + + +//显示设置菜单 +// tip settings screen +void ScreenSet() { + uint8_t selection = 0; + bool repeat = true; + while (repeat) { + MenuLevel = 10; + selection = MenuScreen(selection); + switch (selection) { + case 0: MenuLevel = 5; MainScrType = MenuScreen(MainScrType); break; + case 1: MenuLevel = 9; FlipState = MenuScreen(FlipState); break; + default: repeat = false; break; + } + Flip(FlipState); //设置屏幕反转状态 + } + updateEEPROM(); +} + +//预设设置菜单 +// tip settings screen +void TipScreen() { + uint8_t selection = 0; + bool repeat = true; + while (repeat) { + MenuLevel = 1; + selection = MenuScreen(selection); + switch (selection) { + case 0: ChangeTipScreen(); break; + case 1: CalibrationScreen(); break; + case 2: InputNameScreen(); break; + case 3: DeleteTipScreen(); break; + case 4: AddTipScreen(); break; + default: repeat = false; break; + } + } +} + +//温控设置菜单 +// temperature settings screen +void TempScreen() { + uint8_t selection = 0; + bool repeat = true; + while (repeat) { + selection = MenuScreen(selection); + switch (selection) { + case 0: setRotary(TEMP_MIN, TEMP_MAX, TEMP_STEP, DefaultTemp); + DefaultTemp = InputScreen(); break; + case 1: setRotary(20, 200, TEMP_STEP, SleepTemp); + SleepTemp = InputScreen(); break; + case 2: setRotary(10, 100, TEMP_STEP, BoostTemp); + BoostTemp = InputScreen(); break; + default: repeat = false; break; + } + } + updateEEPROM(); +} + +//定时器设置菜单 +// timer settings screen +void TimerScreen() { + uint8_t selection = 0; + bool repeat = true; + while (repeat) { + selection = MenuScreen(selection); + switch (selection) { + case 0: setRotary(0, 30, 1, time2sleep); + time2sleep = InputScreen(); break; + case 1: setRotary(0, 60, 5, time2off); + time2off = InputScreen(); break; + case 2: setRotary(0, 180, 10, timeOfBoost); + timeOfBoost = InputScreen(); break; + default: repeat = false; break; + } + } + updateEEPROM(); +} +//英语支持 +void Print_EN(byte i) { + char buffer[11]; + strcpy_P(buffer, (char *)pgm_read_word(&(EN_table[i]))); + arduboy.print(buffer); +} +//菜单界面 +// menu screen +uint8_t MenuScreen(uint8_t selected) { + int SlidingAnimationX; + uint8_t lastselected = selected; + setRotary(0, Menu_table[MenuLevel] - 1, 1, selected); + lastbutton = (!digitalRead(BUTTON_PIN)); + SetTextColor(1); + do { + selected = getRotary(); + //非线性滑动动画 + SlidingAnimationX += (selected - lastselected) * 56; + if (SlidingAnimationX != 0) SlidingAnimationX += 0.5 * (-SlidingAnimationX); + lastselected = selected; + arduboy.clear(); + //绘制图标 如果有指定的话 + for (byte i = 0; i < 5; i++) if (selected - 2 + i >= 0 && selected - 2 + i < Menu_table[MenuLevel]) { + DrawUIFrame(-72 + i * 56 + SlidingAnimationX, 0, 1); + drawSlowXYBitmapResize(-72 + i * 56 + SlidingAnimationX + 3, 3, Ico_table[selected - 2 + i + QueryMenuObject()], 14, 14, 3, 1); + } + + if (LANG == 0) arduboy.drawSlowXYBitmap(48, 48, CN_table[selected + QueryMenuObject()], 36, 16, 1); else { + arduboy.setCursor(48, 49); + arduboy.setTextSize(1); + Print_EN(selected + QueryMenuObject()); + } + + + arduboy.display(); + CheckLastButton(); + //beep(0); + } while (digitalRead(BUTTON_PIN) || lastbutton); + beep(); + return selected; +} +void DrawUIFrame(int x, int y, bool color) { + arduboy.fillRect(x, y, 48, 48, color); + arduboy.fillRect(x + 3, y + 3, 42, 42, !color); //雕空 + DrawPoint(x, y, 0); + DrawPoint(x + 47, y, 0); + DrawPoint(x, y + 47, 0); + DrawPoint(x + 47, y + 47, 0); +} +void DrawPoint(int x, int y, bool color) { + arduboy.drawPixel(x + 1, y, color); + arduboy.drawPixel(x - 1, y, color); + arduboy.drawPixel(x, y + 1, color); + arduboy.drawPixel(x, y - 1, color); + arduboy.drawPixel(x, y, color); +} +//检查按键 +void CheckLastButton() { + if (lastbutton && digitalRead(BUTTON_PIN)) { + delay(10); + lastbutton = false; + } +} +//返回对应层数的对象数 +byte QueryMenuObject() { + int SUM = 0; + for (int i = 0; i < (MenuLevel); i++) SUM += Menu_table[i]; + return SUM; +} +//信息窗 +/* + void MessageScreen(const char *Items[], uint8_t numberOfItems) { + lastbutton = (!digitalRead(BUTTON_PIN)); + + //u8g.setFont(//u8g_font_9x15); + //u8g.setFontPosTop(); + for (uint8_t i = 0; i < numberOfItems; i++) //u8g.drawStr( 0, i * 16, Items[i]); + + do { + CheckLastButton(); + } while (digitalRead(BUTTON_PIN) || lastbutton); + beep(); + } +*/ +/* + 好看是好看,但是浪费内存 + int wav(byte wavi, int num) { + return (wavi + byte(millis() / 100)) * (float(float(num - countMin) / float(countMax - countMin)) - 0.5) * 5; + } +*/ + +//模拟数字滚轮 Numerical scrolling effect +void DisplayNum(int Num) { + + arduboy.setTextSize(6); + SetTextColor(0); + //数字滚轮 + for (byte i = 0; i < 3; i++) LastValue[i] = byte(value[i]); + value = Num; + for (byte i = 0; i < 3; i++) { + SlidingAnimationY[i] += (byte(value[i]) - LastValue[i]) * 50; + if (SlidingAnimationY[i] != 0) SlidingAnimationY[i] += 0.8 * (-SlidingAnimationY[i]); + arduboy.fillRect(0 + i * 44, 0, 38, 50, 1); //白底 + for (int ii = -1; ii < 2; ii++) { + arduboy.setCursor(4 + i * 44, 4 - SlidingAnimationY[i] + ii * 50); + arduboy.print(LastValue[i] + ii - 48); + } + } + //刻度标 + arduboy.fillRect(0, 0, 128, 2, 0); //上遮罩层 + arduboy.fillRect(0, 51, 128, 13, 0); //下遮罩层 +} + +//数值输入界面 +// input value screen +uint16_t InputScreen() { + lastbutton = (!digitalRead(BUTTON_PIN)); + do { + arduboy.clear(); + DisplayNum(getRotary()); + arduboy.display(); + CheckLastButton(); + } while (digitalRead(BUTTON_PIN) || lastbutton); + beep(); + return value.toInt(); +} + +//欠压报警设置 +// information display screen +void UnderVoltageSet() { + setRotary(0, 250, 1, UnderVoltage); + UnderVoltage = InputScreen(); + beep(); +} + +//更换预设界面 +// change tip screen +void ChangeTipScreen() { + uint8_t selected = CurrentTip; + uint8_t lastselected = selected; + int8_t arrow = 0; + if (selected) arrow = 1; + setRotary(0, NumberOfTips - 1, 1, selected); + lastbutton = (!digitalRead(BUTTON_PIN)); + do { + //beep(0); + arduboy.clear(); + selected = getRotary(); + arrow = constrain(arrow + selected - lastselected, 0, 2); + lastselected = selected; + SetTextColor(0); + arduboy.setTextSize(2); + arduboy.setCursor(0, 0); arduboy.print(F("Select Tip")); + SetTextColor(1); + arduboy.setCursor(0, 16 * (arrow + 1)); arduboy.print(F(">")); + for (uint8_t i = 0; i < 3; i++) { + uint8_t drawnumber = selected + i - arrow; + if (drawnumber < NumberOfTips) { + arduboy.setCursor(12, 16 * (i + 1)); arduboy.print(TipName[selected + i - arrow]); + } + } + CheckLastButton(); + arduboy.display(); + } while (digitalRead(BUTTON_PIN) || lastbutton); + + beep(); + CurrentTip = selected; +} + +//温度校准界面 +// temperature calibration screen +void CalibrationScreen() { + uint16_t CalTempNew[4]; + for (uint8_t CalStep = 0; CalStep < 3; CalStep++) { + SetTemp = CalTemp[CurrentTip][CalStep]; + setRotary(100, 500, 1, SetTemp); + beepIfWorky = true; + lastbutton = (!digitalRead(BUTTON_PIN)); + do { + arduboy.clear(); + arduboy.setTextSize(2); + SENSORCheck(); // reads temperature and vibration switch of the iron + Thermostat(); // heater control + arduboy.setCursor(0, 0); arduboy.print(F("Step: ")); arduboy.print(CalStep + 1); arduboy.print("/3"); + if (isWorky) { + arduboy.setCursor(0, 16); arduboy.print(F("Set measured")); + arduboy.setCursor(0, 32); arduboy.print(F("temp: ")); arduboy.print(getRotary()); + } else { + arduboy.setCursor(0, 16); arduboy.print(F("ADC: ")); arduboy.print(uint16_t(RawTemp)); + arduboy.setCursor(0, 32); arduboy.print(F("Please wait")); + } + CheckLastButton(); + arduboy.display(); + } while (digitalRead(BUTTON_PIN) || lastbutton); + + CalTempNew[CalStep] = getRotary(); + beep(); delay (10); + } + + analogWrite(CONTROL_PIN, 255); // shut off heater + delayMicroseconds(time2settle); // wait for voltage to settle + CalTempNew[3] = getChipTemp(); // read chip temperature + if ((CalTempNew[0] + 30 < CalTempNew[1]) && (CalTempNew[1] + 30 < CalTempNew[2])) { + MenuLevel = 7; + if (MenuScreen(0)) { + for (uint8_t i = 0; i < 4; i++) CalTemp[CurrentTip][i] = CalTempNew[i]; + } + } +} + +//命名界面 文本输入界面 +// input tip name screen +void InputNameScreen() { + uint8_t value; + for (uint8_t digit = 0; digit < (TIPNAMELENGTH - 1); digit++) { + lastbutton = (!digitalRead(BUTTON_PIN)); + setRotary(31, 96, 1, 65); + do { + value = getRotary(); + if (value == 31) { + value = 95; + setRotary(31, 96, 1, 95); + } + if (value == 96) { + value = 32; + setRotary(31, 96, 1, 32); + } + //arduboy.setCursor(0, 0);arduboy.print(); + arduboy.clear(); + arduboy.setTextSize(2); + arduboy.setCursor(16 * digit, 48); arduboy.print(char(94)); + arduboy.setCursor(0, 32); + for (uint8_t i = 0; i < digit; i++) arduboy.print(TipName[CurrentTip][i]); + arduboy.setCursor(16 * digit, 32); arduboy.print(char(value)); + CheckLastButton(); + arduboy.display(); + } while (digitalRead(BUTTON_PIN) || lastbutton); + TipName[CurrentTip][digit] = value; + beep(); delay (10); + } + TipName[CurrentTip][TIPNAMELENGTH - 1] = 0; + return value; +} + + +// delete tip screen +void DeleteTipScreen() { + MenuLevel = 7; + if (NumberOfTips == 1) { + //MessageScreen(DeleteMessage, sizeof(DeleteMessage)); + } + else if (MenuScreen(0)) { + if (CurrentTip == (NumberOfTips - 1)) { + CurrentTip--; + } + else { + for (uint8_t i = CurrentTip; i < (NumberOfTips - 1); i++) { + for (uint8_t j = 0; j < TIPNAMELENGTH; j++) TipName[i][j] = TipName[i + 1][j]; + for (uint8_t j = 0; j < 4; j++) CalTemp[i][j] = CalTemp[i + 1][j]; + } + } + NumberOfTips--; + } +} + + +// add new tip screen +void AddTipScreen() { + if (NumberOfTips < TIPMAX) { + CurrentTip = NumberOfTips++; InputNameScreen(); + CalTemp[CurrentTip][0] = TEMP200; CalTemp[CurrentTip][1] = TEMP280; + CalTemp[CurrentTip][2] = TEMP360; CalTemp[CurrentTip][3] = TEMPCHP; + } //MessageScreen(MaxTipMessage, sizeof(MaxTipMessage)); 信息窗 +} + + +// average several ADC readings in sleep mode to denoise +uint16_t denoiseAnalog (byte port) { + uint16_t result = 0; + ADCSRA |= bit (ADEN) | bit (ADIF); // enable ADC, turn off any pending interrupt + if (port >= A0) port -= A0; // set port and + ADMUX = (0x0F & port) | bit(REFS0); // reference to AVcc + set_sleep_mode (SLEEP_MODE_ADC); // sleep during sample for noise reduction + for (uint8_t i = 0; i < 32; i++) { // get 32 readings + sleep_mode(); // go to sleep while taking ADC sample + while (bitRead(ADCSRA, ADSC)); // make sure sampling is completed + result += ADC; // add them up + } + bitClear (ADCSRA, ADEN); // disable ADC + return (result >> 5); // devide by 32 and return value +} + +//读取芯片温度 +// get internal temperature by reading ADC channel 8 against 1.1V reference +double getChipTemp() { + unsigned int wADC; + double t; + ADMUX = (_BV(REFS1) | _BV(REFS0) | _BV(MUX3)); + ADCSRA |= _BV(ADEN); + delay(5); + ADCSRA |= _BV(ADSC); + while (bit_is_set(ADCSRA, ADSC)); + wADC = ADCW; + t = (wADC - ChipTempCalVal ) / 1.22; + return (t); +} + +/* + // get internal temperature by reading ADC channel 8 against 1.1V reference + double getChipTemp() { + uint16_t result = 0; + ADCSRA |= bit (ADEN) | bit (ADIF); // enable ADC, turn off any pending interrupt + ADMUX = bit (REFS1) | bit (REFS0) | bit (MUX3); // set reference and mux + delay(20); // wait for voltages to settle + set_sleep_mode (SLEEP_MODE_ADC); // sleep during sample for noise reduction + for (uint8_t i = 0; i < 32; i++) { // get 32 readings + sleep_mode(); // go to sleep while taking ADC sample + while (bitRead(ADCSRA, ADSC)); // make sure sampling is completed + result += ADC; // add them up + } + bitClear (ADCSRA, ADEN); // disable ADC + result >>= 2; // devide by 4 + return ((result - 2594) / 9.76); // calculate internal temperature in degrees C + } +*/ +// get input voltage in mV by reading 1.1V reference against AVcc +uint16_t getVCC() { + uint16_t result = 0; + ADCSRA |= bit (ADEN) | bit (ADIF); // enable ADC, turn off any pending interrupt + // set Vcc measurement against 1.1V reference + ADMUX = bit (REFS0) | bit (MUX3) | bit (MUX2) | bit (MUX1); + delay(1); // wait for voltages to settle + set_sleep_mode (SLEEP_MODE_ADC); // sleep during sample for noise reduction + for (uint8_t i = 0; i < 16; i++) { // get 16 readings + sleep_mode(); // go to sleep while taking ADC sample + while (bitRead(ADCSRA, ADSC)); // make sure sampling is completed + result += ADC; // add them up + } + bitClear (ADCSRA, ADEN); // disable ADC + result >>= 4; // devide by 16 + return (1125300L / result); // 1125300 = 1.1 * 1023 * 1000 +} + + +// get supply voltage in mV +uint16_t getVIN() { + long result; + result = denoiseAnalog (VIN_PIN); // read supply voltage via voltage divider + return (result * Vcc / 179.474); // 179.474 = 1023 * R13 / (R12 + R13) +} + +//ADC中断服务 +// ADC interrupt service routine +EMPTY_INTERRUPT (ADC_vect); // nothing to be done here + +//旋转编码器触发中断 +// Pin change interrupt service routine for rotary encoder +ISR (PCINT0_vect) { + uint8_t a = PINB & 1; + uint8_t b = PIND >> 7 & 1; + if (a != a0) { // A changed + a0 = a; + if (b != b0) { // B changed + b0 = b; + count = constrain(count + ((a == b) ? countStep : -countStep), countMin, countMax); + if (ROTARY_TYPE && ((a == b) != ab0)) { + count = constrain(count + ((a == b) ? countStep : -countStep), countMin, countMax);; + } + ab0 = (a == b); + handleMoved = true; + } + } +} + +//显示位图,并允许放大 代码片段改自arduboy2 +void drawSlowXYBitmapResize(int x, int y, const uint8_t *bitmap, uint8_t w, uint8_t h, uint8_t size, uint8_t color) { + // no need to draw at all of we're offscreen + /* + if (x + w < 0 || x > WIDTH - 1 || y + h < 0 || y > HEIGHT - 1) + return; + */ + int16_t xi, yi, byteWidth = (w + 7) / 8; + for (yi = 0; yi < h; yi ++) { + for (xi = 0; xi < w; xi ++) { + if (pgm_read_byte(bitmap + yi * byteWidth + xi / 8) & (128 >> (xi & 7))) { + //arduboy.drawPixel(x + xi, y + yi, color); + arduboy.fillRect(x + xi * size, y + yi * size, size, size, color); + } + } + } +} diff --git a/software/sources/SolderingStation2_arduboy_gplib_v1.7t3.ino b/software/sources/SolderingStation2_arduboy_gplib_v1.7t3.ino new file mode 100644 index 0000000..258714f --- /dev/null +++ b/software/sources/SolderingStation2_arduboy_gplib_v1.7t3.ino @@ -0,0 +1,2015 @@ +/*License: http://creativecommons.org/licenses/by-sa/3.0/ + 采用CC3.0协议共享此程序 + 您可以自由地:- + -AZ + 共享 — 在任何媒介以任何形式复制、发行本作品 + 演绎 — 修改、转换或以本作品为基础进行创作 + 在任何用途下,甚至商业目的。 + 本许可协议为“自由文化作品(Free Cultural Works)”所接受。 + 只要你遵守许可协议条款,许可人就无法收回你的这些权利。 + + Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) + This is a human-readable summary of (and not a substitute for) the license. Disclaimer. + You are free to: + Share — copy and redistribute the material in any medium or format + Adapt — remix, transform, and build upon the material + for any purpose, even commercially. + This license is acceptable for Free Cultural Works. + The licensor cannot revoke these freedoms as long as you follow the license terms. +*/ +// SolderingStation2 +// +// ATmega328-controlled Soldering Station for Hakko T12 Tips. +// +// This version of the code implements: +// - Temperature measurement of the tip +// - Direct or PID control of the heater +// - Temperature control via rotary encoder +// - Boost mode by short pressing rotary encoder switch +// - Setup menu by long pressing rotary encoder switch +// - Handle movement detection (by checking ball switch) +// - Iron unconnected detection (by idenfying invalid temperature readings) +// - Time driven sleep/power off mode if iron is unused (movement detection) +// - Measurement of input voltage, Vcc and ATmega's internal temperature +// - Information display on OLED +// - Buzzer +// - Calibrating and managing different soldering tips +// - Storing user settings into the EEPROM +// - Tip change detection +// +// Power supply should be in the range of 16V/2A to 24V/3A and well +// stabilized. +// +// For calibration you need a soldering iron tips thermometer. For best results +// wait at least three minutes after switching on the soldering station before +// you start the calibration process. +// +// Controller: ATmega328p +// Core: Barebones ATmega (https://github.com/carlosefr/atmega) +// Clockspeed: 16 MHz external +// +// 2019/2020 by Stefan Wagner with great support from John Glavinos +// 2020-8 UI upgrade by LHW-createskyblue + +// Project Page: https://easyeda.com/wagiminator + +//关于界面-项目页面二维码 ->为了加入欠压报警只能阉割掉关于页面的二维码 +//const unsigned char QRCode[] PROGMEM = { 0x00, 0x00, 0x3e, 0x0e, 0x7c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x0e, 0x7c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x0e, 0x7c, 0x0c, 0x00, 0x00, 0x1f, 0xfe, 0x3f, 0xc1, 0x8c, 0x0c, 0x7f, 0xf8, 0x1f, 0xfe, 0x3f, 0xc1, 0x8c, 0x0c, 0x7f, 0xf8, 0x18, 0x06, 0x30, 0x01, 0xf3, 0x8c, 0x60, 0x18, 0x18, 0x06, 0x30, 0x01, 0xf3, 0x8c, 0x60, 0x18, 0x18, 0x06, 0x30, 0x01, 0xf3, 0x8c, 0x60, 0x18, 0x18, 0x06, 0x3e, 0x0f, 0xf0, 0x0c, 0x60, 0x18, 0x18, 0x06, 0x3e, 0x0f, 0xf0, 0x0c, 0x60, 0x18, 0x18, 0x06, 0x3f, 0xc1, 0xf0, 0x0c, 0x60, 0x18, 0x18, 0x06, 0x3f, 0xc1, 0xf0, 0x0c, 0x60, 0x18, 0x18, 0x06, 0x3f, 0xc1, 0xf0, 0x0c, 0x60, 0x18, 0x1f, 0xfe, 0x3e, 0x30, 0x70, 0x0c, 0x7f, 0xf8, 0x1f, 0xfe, 0x3e, 0x30, 0x70, 0x0c, 0x7f, 0xf8, 0x00, 0x00, 0x31, 0xce, 0x73, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x31, 0xce, 0x73, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x31, 0xce, 0x73, 0x8c, 0x00, 0x00, 0xff, 0xff, 0xf0, 0x01, 0x83, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x01, 0x83, 0x8f, 0xff, 0xff, 0x00, 0xc0, 0x01, 0xc1, 0x8c, 0x00, 0x7f, 0x1f, 0x00, 0xc0, 0x01, 0xc1, 0x8c, 0x00, 0x7f, 0x1f, 0x00, 0xc0, 0x01, 0xc1, 0x8c, 0x00, 0x7f, 0x1f, 0x07, 0xc7, 0xcf, 0xce, 0x7f, 0x8c, 0x1f, 0xf8, 0x07, 0xc7, 0xcf, 0xce, 0x7f, 0x8c, 0x1f, 0xf8, 0x07, 0xc7, 0xcf, 0xce, 0x7f, 0x8c, 0x1f, 0xf8, 0xf8, 0x00, 0x3e, 0x3e, 0x03, 0xf0, 0x7f, 0x00, 0xf8, 0x00, 0x3e, 0x3e, 0x03, 0xf0, 0x7f, 0x00, 0xe0, 0xc7, 0xcf, 0xfe, 0x03, 0x80, 0x1f, 0xe7, 0xe0, 0xc7, 0xcf, 0xfe, 0x03, 0x80, 0x1f, 0xe7, 0xe0, 0xc7, 0xcf, 0xfe, 0x03, 0x80, 0x1f, 0xe7, 0x18, 0xc0, 0x31, 0xfe, 0x0c, 0x0c, 0x1c, 0xe0, 0x18, 0xc0, 0x31, 0xfe, 0x0c, 0x0c, 0x1c, 0xe0, 0xe7, 0x39, 0xf1, 0xf0, 0x03, 0xfc, 0x7c, 0xf8, 0xe7, 0x39, 0xf1, 0xf0, 0x03, 0xfc, 0x7c, 0xf8, 0xe7, 0x39, 0xf1, 0xf0, 0x03, 0xfc, 0x7c, 0xf8, 0x1f, 0x00, 0x31, 0xcf, 0xf3, 0x8c, 0x03, 0x00, 0x1f, 0x00, 0x31, 0xcf, 0xf3, 0x8c, 0x03, 0x00, 0xe0, 0x3f, 0xff, 0xc1, 0x83, 0x8f, 0x9c, 0xe7, 0xe0, 0x3f, 0xff, 0xc1, 0x83, 0x8f, 0x9c, 0xe7, 0xe0, 0x3f, 0xff, 0xc1, 0x83, 0x8f, 0x9c, 0xe7, 0x18, 0x00, 0x30, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x18, 0x00, 0x30, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x18, 0x00, 0x30, 0x0e, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xf0, 0x3e, 0x7c, 0x0f, 0xe0, 0x00, 0xff, 0xff, 0xf0, 0x3e, 0x7c, 0x0f, 0xe0, 0x00, 0x00, 0x00, 0x31, 0xce, 0x0c, 0x0c, 0x63, 0xe0, 0x00, 0x00, 0x31, 0xce, 0x0c, 0x0c, 0x63, 0xe0, 0x00, 0x00, 0x31, 0xce, 0x0c, 0x0c, 0x63, 0xe0, 0x1f, 0xfe, 0x30, 0x01, 0x83, 0x8f, 0xe0, 0xff, 0x1f, 0xfe, 0x30, 0x01, 0x83, 0x8f, 0xe0, 0xff, 0x18, 0x06, 0x31, 0xf1, 0x8f, 0x80, 0x03, 0xe7, 0x18, 0x06, 0x31, 0xf1, 0x8f, 0x80, 0x03, 0xe7, 0x18, 0x06, 0x31, 0xf1, 0x8f, 0x80, 0x03, 0xe7, 0x18, 0x06, 0x3f, 0xff, 0x83, 0x83, 0xe3, 0x1f, 0x18, 0x06, 0x3f, 0xff, 0x83, 0x83, 0xe3, 0x1f, 0x18, 0x06, 0x31, 0xfe, 0x73, 0x8f, 0x80, 0xf8, 0x18, 0x06, 0x31, 0xfe, 0x73, 0x8f, 0x80, 0xf8, 0x18, 0x06, 0x31, 0xfe, 0x73, 0x8f, 0x80, 0xf8, 0x1f, 0xfe, 0x31, 0xfe, 0x00, 0x0c, 0x60, 0xe7, 0x1f, 0xfe, 0x31, 0xfe, 0x00, 0x0c, 0x60, 0xe7, 0x00, 0x00, 0x31, 0xfe, 0x0c, 0x0f, 0x9f, 0xe0, 0x00, 0x00, 0x31, 0xfe, 0x0c, 0x0f, 0x9f, 0xe0, 0x00, 0x00, 0x31, 0xfe, 0x0c, 0x0f, 0x9f, 0xe0 }; +const unsigned char QRCode[] PROGMEM = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x03, 0x86, 0x70, 0x80, 0x03, 0x80, 0x03, 0x86, 0x70, 0x80, 0x03, 0x9f, 0xf3, 0xe1, 0x30, 0x9f, 0xf3, 0x9f, 0xf3, 0xe1, 0x30, 0x9f, 0xf3, 0x98, 0x33, 0x01, 0xcc, 0x98, 0x33, 0x98, 0x33, 0x01, 0xcc, 0x98, 0x33, 0x98, 0x33, 0x87, 0xc0, 0x98, 0x33, 0x98, 0x33, 0xe1, 0xc0, 0x98, 0x33, 0x98, 0x33, 0xe1, 0xc0, 0x98, 0x33, 0x9f, 0xf3, 0x98, 0xc0, 0x9f, 0xf3, 0x9f, 0xf3, 0x98, 0xc0, 0x9f, 0xf3, 0x80, 0x03, 0x66, 0xcc, 0x80, 0x03, 0x80, 0x03, 0x66, 0xcc, 0x80, 0x03, 0xff, 0xff, 0x01, 0x0c, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x1f, 0xff, 0x81, 0x00, 0x61, 0x30, 0x1f, 0x3f, 0x87, 0x3c, 0xe6, 0xfc, 0x87, 0x33, 0x87, 0x3c, 0xe6, 0xfc, 0x87, 0xf3, 0xf8, 0x03, 0x9e, 0x0f, 0x1f, 0x03, 0xf8, 0x03, 0x9e, 0x0f, 0x1f, 0x03, 0xe1, 0x3c, 0xfe, 0x0c, 0x07, 0xcf, 0xe1, 0x3c, 0xfe, 0x0c, 0x07, 0xcf, 0x99, 0x03, 0x3e, 0x30, 0x86, 0xc3, 0xe6, 0xcf, 0x38, 0x0f, 0x9e, 0xf3, 0xe6, 0xcf, 0x38, 0x0f, 0x9e, 0xf3, 0x9e, 0x03, 0x27, 0xcc, 0x81, 0x03, 0x9e, 0x03, 0x27, 0xcc, 0x81, 0x03, 0xe0, 0xff, 0xe1, 0x0c, 0xe6, 0xcf, 0xe0, 0xff, 0xe1, 0x0c, 0xe6, 0xcf, 0x98, 0x03, 0x06, 0x00, 0x00, 0xff, 0x98, 0x03, 0x06, 0x00, 0x00, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0xf8, 0x03, 0x80, 0x03, 0x66, 0x30, 0x99, 0xc3, 0x80, 0x03, 0x66, 0x30, 0x99, 0xc3, 0x9f, 0xf3, 0x01, 0x0c, 0xf8, 0xff, 0x9f, 0xf3, 0x01, 0x0c, 0xf8, 0xff, 0x98, 0x33, 0x39, 0x3c, 0x01, 0xcf, 0x98, 0x33, 0x39, 0x3c, 0x01, 0xcf, 0x98, 0x33, 0xff, 0x0c, 0x79, 0x3f, 0x98, 0x33, 0x3e, 0xcc, 0xe0, 0xf3, 0x98, 0x33, 0x3e, 0xcc, 0xe0, 0xf3, 0x9f, 0xf3, 0x3e, 0x00, 0x98, 0xcf, 0x9f, 0xf3, 0x3e, 0x00, 0x98, 0xcf, 0x80, 0x03, 0x3e, 0x30, 0xe7, 0xc3, 0x80, 0x03, 0x3e, 0x30, 0xe7, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; +//ICO +//width:16,height:16 +const unsigned char Tag[] PROGMEM = { 0x00, 0x00, 0x3b, 0xec, 0x7b, 0xee, 0x63, 0xe6, 0x63, 0xe6, 0x63, 0xe6, 0x63, 0xe6, 0x63, 0xe6, 0x63, 0xe6, 0x63, 0x66, 0x62, 0x26, 0x60, 0x06, 0x60, 0x06, 0x7f, 0xfe, 0x3f, 0xfc, 0x00, 0x00 }; +const unsigned char Chip[] PROGMEM = { 0x14, 0xa0, 0x3f, 0xf0, 0x7f, 0xf8, 0xe0, 0x1c, 0x6e, 0x18, 0xec, 0x1c, 0x68, 0x18, 0x60, 0x18, 0xe0, 0x1c, 0x60, 0x58, 0xe0, 0x1c, 0x7f, 0xf8, 0x3f, 0xf0, 0x14, 0xa0 }; +//const unsigned char HeatPipe[] PROGMEM = { 0x00, 0x00, 0x09, 0x90, 0x11, 0x88, 0x21, 0x84, 0x11, 0x88, 0x09, 0x90, 0x11, 0x88, 0x21, 0x84, 0x11, 0x88, 0x09, 0x90, 0x11, 0x88, 0x21, 0x84, 0x11, 0x88, 0x09, 0x90, 0x01, 0x80, 0x00, 0x00 }; +const unsigned char Lightning[] PROGMEM = { 0x0f, 0xe0, 0x1f, 0xc0, 0x1f, 0xc0, 0x3f, 0x80, 0x3f, 0xf8, 0x7f, 0xf0, 0x7f, 0xe0, 0x07, 0xc0, 0x07, 0x80, 0x0f, 0x00, 0x0e, 0x00, 0x1c, 0x00, 0x18, 0x00, 0x10, 0x00 }; +//const unsigned char Thermometer[] PROGMEM = { 0x01, 0x80, 0x02, 0x40, 0x03, 0x40, 0x02, 0x40, 0x03, 0x40, 0x02, 0x40, 0x03, 0x40, 0x02, 0x40, 0x03, 0x40, 0x03, 0xc0, 0x03, 0xc0, 0x03, 0xc0, 0x07, 0xe0, 0x07, 0xe0, 0x07, 0xe0, 0x03, 0xc0 }; +const unsigned char Pointer[] PROGMEM = { 0x20, 0x20, 0x70, 0xf8 }; +//状态提示 +//width:14,height:14 图标库 + +const unsigned char c1[] PROGMEM = { 0x03, 0x00, 0x07, 0x80, 0x0f, 0xc0, 0x0c, 0xc0, 0x1c, 0xe0, 0x1c, 0xe0, 0x3c, 0xf0, 0x3c, 0xf0, 0x7f, 0xf8, 0x7f, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xff, 0xfc, 0x7f, 0xf8 }; +const unsigned char c2[] PROGMEM = { 0x7f, 0xf8, 0xff, 0xfc, 0xc0, 0x0c, 0xc3, 0x0c, 0xcb, 0x4c, 0xdb, 0x6c, 0xdb, 0x6c, 0xd8, 0x6c, 0xdc, 0xec, 0xcf, 0xcc, 0xc7, 0x8c, 0xc0, 0x0c, 0xff, 0xfc, 0x7f, 0xf8 }; +const unsigned char c3[] PROGMEM = { 0x00, 0x00, 0x06, 0x00, 0x0c, 0x00, 0x18, 0xf8, 0x38, 0xf0, 0x30, 0x30, 0x70, 0x60, 0x70, 0x78, 0x78, 0xf8, 0x78, 0x00, 0x3c, 0x02, 0x3f, 0x0c, 0x1f, 0xf8, 0x0f, 0xf0, 0x03, 0xc0, 0x00, 0x00 }; +const unsigned char c5[] PROGMEM = { 0x7f, 0xf0, 0xff, 0xe0, 0xc0, 0x08, 0xc0, 0x1c, 0xc0, 0x38, 0xc8, 0x70, 0xdc, 0xe4, 0xcf, 0xcc, 0xc7, 0x8c, 0xc3, 0x0c, 0xc0, 0x0c, 0xc0, 0x0c, 0xff, 0xfc, 0x7f, 0xf8 }; +const unsigned char c6[] PROGMEM = { 0x1e, 0x10, 0x33, 0x38, 0x2d, 0x7c, 0x25, 0x38, 0x2d, 0x38, 0x25, 0x38, 0x2d, 0x38, 0x6d, 0x80, 0xde, 0xc0, 0xbf, 0x40, 0xbf, 0x40, 0xde, 0xc0, 0x61, 0x80, 0x3f, 0x00 }; +const unsigned char c7[] PROGMEM = { 0x1f, 0xe0, 0x3f, 0xf0, 0x70, 0x38, 0x60, 0x18, 0x60, 0x18, 0x60, 0x18, 0xff, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0x7c, 0xf8, 0x7c, 0xfc, 0xfc, 0x7f, 0xf8 }; +const unsigned char c_NO[] PROGMEM = { 0x80, 0x04, 0x00, 0x00, 0x3f, 0xf0, 0x37, 0xb0, 0x23, 0x10, 0x30, 0x30, 0x38, 0x70, 0x38, 0x70, 0x30, 0x30, 0x23, 0x10, 0x37, 0xb0, 0x3f, 0xf0, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char *C_table[] = {c1, c2, c3, Lightning, c5, c6, c7}; + +//设置(陈星汉认为语言是一种低像素的表达方式,容易造成隔阂; 交互界面设计尽可能形象化) +// width: 14, height: 14 +const unsigned char QRC[] PROGMEM = { 0x05, 0x80, 0x74, 0xb8, 0x57, 0xa8, 0x76, 0xb8, 0x05, 0x80, 0xf9, 0x7c, 0x46, 0x94, 0xaa, 0xa8, 0xf9, 0x7c, 0x06, 0x88, 0x74, 0xa8, 0x57, 0x8c, 0x75, 0x74, 0x06, 0x98 }; +const unsigned char Set0[] PROGMEM = { 0x88, 0x24, 0x08, 0x20, 0x38, 0x30, 0x38, 0x30, 0x38, 0x30, 0x38, 0x30, 0x38, 0x30, 0x38, 0x30, 0x39, 0x30, 0x3b, 0xb0, 0x3f, 0xf0, 0x3f, 0xf0, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char Set1[] PROGMEM = { 0xf8, 0x7c, 0xf3, 0x3c, 0xf4, 0xbc, 0xf6, 0xbc, 0xf4, 0xbc, 0xf6, 0xbc, 0xf4, 0xbc, 0xe4, 0x9c, 0xc8, 0x4c, 0xd0, 0x2c, 0xd0, 0x2c, 0xc8, 0x4c, 0xe7, 0x9c, 0xf0, 0x3c }; +const unsigned char Set2[] PROGMEM = { 0x8f, 0xc4, 0x10, 0x20, 0x20, 0x10, 0x4c, 0xc8, 0x9f, 0xe4, 0x3d, 0xf0, 0x3d, 0xf0, 0x1d, 0xe0, 0x3e, 0xf0, 0x3f, 0x70, 0x9f, 0xe4, 0x8c, 0xc4, 0x00, 0x00, 0x30, 0x30 }; +const unsigned char Set3[] PROGMEM = { 0xc3, 0xfc, 0x18, 0x00, 0x18, 0x00, 0xc3, 0xfc, 0xff, 0xfc, 0xff, 0x0c, 0x00, 0x60, 0x00, 0x60, 0xff, 0x0c, 0xff, 0xfc, 0xf0, 0xfc, 0x06, 0x00, 0x06, 0x00, 0xf0, 0xfc }; +const unsigned char Set4[] PROGMEM = { 0x80, 0x04, 0x00, 0x00, 0x20, 0x00, 0x10, 0x00, 0x08, 0x00, 0x10, 0x00, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char Set4F[] PROGMEM = { 0x80, 0x04, 0x00, 0x00, 0x3f, 0xf0, 0x38, 0x30, 0x33, 0x10, 0x3f, 0x90, 0x38, 0x10, 0x33, 0x90, 0x27, 0x90, 0x26, 0x10, 0x30, 0x90, 0x3f, 0xf0, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char Set4FF[] PROGMEM = { 0x80, 0x04, 0x00, 0x00, 0x3f, 0xf0, 0x24, 0x30, 0x21, 0x90, 0x27, 0x90, 0x27, 0x30, 0x20, 0x70, 0x27, 0xf0, 0x23, 0x30, 0x30, 0x70, 0x3f, 0xf0, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char Set5[] PROGMEM = { 0xfc, 0xfc, 0xf8, 0x7c, 0xe0, 0x1c, 0xc0, 0x0c, 0xc0, 0x0c, 0xc0, 0x0c, 0xc0, 0x0c, 0xc0, 0x0c, 0xc0, 0x0c, 0x80, 0x04, 0x80, 0x04, 0xff, 0xfc, 0xf8, 0x7c, 0xfc, 0xfc }; +const unsigned char Set5_1[] PROGMEM = { 0xfc, 0xf4, 0xf8, 0x60, 0xe0, 0x44, 0xc0, 0x8c, 0xc1, 0x1c, 0xc2, 0x2c, 0xc4, 0x4c, 0xc8, 0x8c, 0xd1, 0x0c, 0xa2, 0x04, 0xc4, 0x04, 0x8f, 0xfc, 0x18, 0x7c, 0xbc, 0xfc }; +const unsigned char Set6[] PROGMEM = { 0xf8, 0x7c, 0xe0, 0x1c, 0xc0, 0x0c, 0xcf, 0xcc, 0xcf, 0xcc, 0xcf, 0xcc, 0xcf, 0xcc, 0xcf, 0xcc, 0xcf, 0xcc, 0xcf, 0xcc, 0xc8, 0x4c, 0xcf, 0xcc, 0xc0, 0x0c, 0xe0, 0x1c }; +const unsigned char Set_LANG[] PROGMEM = { 0xf0, 0x3c, 0xce, 0x4c, 0xbc, 0x34, 0xb8, 0x14, 0x18, 0x80, 0x10, 0x80, 0x42, 0x30, 0x60, 0x78, 0x60, 0xf8, 0x44, 0xc0, 0x80, 0x04, 0xb8, 0x84, 0xcf, 0xcc, 0xf0, 0x3c }; +const unsigned char Set7[] PROGMEM = { 0x80, 0x0c, 0x00, 0x1c, 0x3f, 0xf4, 0x3f, 0xe0, 0x3f, 0xc4, 0x37, 0x8c, 0x23, 0x18, 0x30, 0x30, 0x38, 0x70, 0x3c, 0xf0, 0x3f, 0xf0, 0x3f, 0xf0, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char Set11[] PROGMEM = { 0xf3, 0xfc, 0xe7, 0xfc, 0xce, 0x0c, 0x8e, 0x1c, 0x9f, 0x9c, 0x1f, 0x3c, 0x1f, 0x0c, 0x0e, 0x0c, 0x0f, 0xfc, 0x87, 0xf8, 0x81, 0xe4, 0xc0, 0x0c, 0xe0, 0x1c, 0xf8, 0x7c }; +const unsigned char Set8[] PROGMEM = { 0x81, 0xdc, 0x55, 0x9c, 0x29, 0x04, 0x55, 0x00, 0x29, 0x90, 0x55, 0xd0, 0x03, 0xfc, 0xff, 0x00, 0x2e, 0x00, 0x26, 0x70, 0x02, 0x50, 0x82, 0x70, 0xe6, 0x00, 0xee, 0x04 }; +const unsigned char Set9[] PROGMEM = { 0xf0, 0x3c, 0xce, 0x0c, 0xbf, 0x04, 0xb3, 0x04, 0x73, 0x00, 0x7f, 0x00, 0x7e, 0x00, 0x7c, 0x00, 0x7c, 0x00, 0x7c, 0x60, 0xbc, 0x64, 0xbe, 0x04, 0xcf, 0x0c, 0xf0, 0x3c }; +const unsigned char Set10[] PROGMEM = { 0xf8, 0x7c, 0xf7, 0xbc, 0x00, 0x00, 0x7f, 0xf8, 0x00, 0x00, 0xbf, 0xf4, 0xab, 0x54, 0xab, 0x54, 0xab, 0x54, 0xab, 0x54, 0xab, 0x54, 0xab, 0x54, 0xbf, 0xf4, 0xc0, 0x0c }; +const unsigned char Set13[] PROGMEM = { 0x80, 0x04, 0x00, 0x00, 0x3f, 0xf0, 0x3c, 0xf0, 0x34, 0xb0, 0x24, 0x90, 0x24, 0x90, 0x27, 0x90, 0x23, 0x10, 0x30, 0x30, 0x38, 0x70, 0x3f, 0xf0, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char Set12[] PROGMEM = { 0x80, 0x04, 0x00, 0x00, 0x3f, 0xf0, 0x3c, 0xf0, 0x3c, 0xf0, 0x3c, 0xf0, 0x20, 0x10, 0x20, 0x10, 0x3c, 0xf0, 0x3c, 0xf0, 0x3c, 0xf0, 0x3f, 0xf0, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char Set14[] PROGMEM = { 0xff, 0x7c, 0xfe, 0x7c, 0xfc, 0xec, 0xe8, 0xdc, 0xc8, 0x4c, 0x98, 0x4c, 0x88, 0x24, 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x04, 0xe0, 0x1c }; +const unsigned char Set15[] PROGMEM = { 0x15, 0x54, 0x3f, 0xfc, 0x15, 0x54, 0x3f, 0xfc, 0x15, 0x54, 0x3c, 0x04, 0x14, 0x04, 0x3c, 0xfc, 0x14, 0x54, 0x3c, 0xfc, 0x00, 0x54, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char Set16[] PROGMEM = { 0x15, 0x54, 0x3f, 0xf8, 0x15, 0x50, 0x3f, 0xf0, 0x15, 0x50, 0x38, 0x70, 0x10, 0x20, 0x31, 0x04, 0x13, 0x8c, 0x22, 0xa8, 0x17, 0xfc, 0x2a, 0xa8, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char Set17[] PROGMEM = { 0x80, 0x00, 0xbf, 0xf8, 0x1f, 0xf8, 0xb0, 0x08, 0x18, 0x08, 0xb9, 0xe8, 0x19, 0xb8, 0xb8, 0x38, 0x18, 0x38, 0xb9, 0xb8, 0xb9, 0xf8, 0xb0, 0xf8, 0xbf, 0xf8, 0x80, 0x00 }; +const unsigned char Set18[] PROGMEM = { 0x80, 0x00, 0xbf, 0xf8, 0x1f, 0xf8, 0xb0, 0x28, 0x1f, 0xf8, 0xb4, 0x08, 0x1f, 0xf8, 0xb1, 0x08, 0x1f, 0xf8, 0xb0, 0x48, 0xbf, 0xf8, 0xb2, 0x88, 0xbf, 0xf8, 0x80, 0x00 }; +const unsigned char Lang_CN[] PROGMEM = { 0x80, 0x04, 0x00, 0x00, 0x3f, 0xf0, 0x3c, 0xf0, 0x3c, 0xf0, 0x20, 0x10, 0x24, 0x90, 0x24, 0x90, 0x20, 0x10, 0x3c, 0xf0, 0x3c, 0xf0, 0x3f, 0xf0, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char Lang_EN[] PROGMEM = { 0x80, 0x04, 0x00, 0x00, 0x3f, 0xf0, 0x38, 0x70, 0x30, 0x30, 0x23, 0x10, 0x27, 0x90, 0x20, 0x10, 0x20, 0x10, 0x27, 0x90, 0x27, 0x90, 0x3f, 0xf0, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char Lang_JP[] PROGMEM = { 0x80, 0x04, 0x00, 0x00, 0x3f, 0xf0, 0x3d, 0xf0, 0x20, 0x10, 0x3b, 0xf0, 0x3b, 0x70, 0x30, 0x30, 0x2b, 0x50, 0x2a, 0xd0, 0x31, 0xb0, 0x3f, 0xf0, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char Save[] PROGMEM = { 0x00, 0x04, 0x58, 0x08, 0x58, 0x08, 0x58, 0x08, 0x40, 0x08, 0x7f, 0xf8, 0x60, 0x18, 0x5f, 0xe8, 0x5b, 0x68, 0x5f, 0xe8, 0x5b, 0x68, 0x1c, 0xe8, 0x5f, 0xe8, 0x00, 0x00 }; + +const unsigned char *Ico_table[] = { + Set0, Set1, Set2, Set3, Set4, Set5, Set6, Set_LANG, QRC, Set7, + Set8, Set9, Set0, Set10, Set12, Save, + Set0, Set11, Set14, Save, + Set11, Set13, Set14, Save, + Set15, Set16, + Set17, Set18, //5 + Set5_1, Set5, + c_NO, Set7, + Lang_CN, Lang_EN, Lang_JP, //8 + Set4F, Set4FF, + Set4, Set4F, Save, +}; +const byte Menu_table[] = {10, 6, 4, 4, 2, 2, 2, 2, 3, 2, 3}; //菜单 标签 温控 定时 控制方式 首页 蜂鸣器 标签删除确认界面 语言菜单 翻转 显示 +byte MenuLevel = 0; //菜单层级 + +/*//////////////////////////////////////////////////////////////////////////////////////////////////// + 多语言支持 + Multilingual support + /////////////////////////////////////////////////////////////////////////////////////////////////// +*/ +/* + 英语库 ENGLISH +*/ +const char EN_0[] PROGMEM = "Tip"; +const char EN_1[] PROGMEM = "Temp"; +const char EN_2[] PROGMEM = "Timer"; +const char EN_3[] PROGMEM = "Control"; +const char EN_4[] PROGMEM = "Screen"; +const char EN_5[] PROGMEM = "Buzzer"; +const char EN_6[] PROGMEM = "LOW Vol"; +const char EN_7[] PROGMEM = "Lang"; +const char EN_8[] PROGMEM = "Return"; +const char EN_9[] PROGMEM = "Change"; +const char EN_10[] PROGMEM = "Calibrate"; +const char EN_11[] PROGMEM = "Rename"; +const char EN_12[] PROGMEM = "Delete"; +const char EN_13[] PROGMEM = "Add"; +const char EN_14[] PROGMEM = "Save"; +const char EN_15[] PROGMEM = "Default"; +const char EN_16[] PROGMEM = "Sleep"; +const char EN_17[] PROGMEM = "Boost"; +const char EN_18[] PROGMEM = "Save"; +const char EN_19[] PROGMEM = "Sleep"; +const char EN_20[] PROGMEM = "Off"; +const char EN_21[] PROGMEM = "Boost"; +const char EN_22[] PROGMEM = "Save"; +const char EN_23[] PROGMEM = "Direct"; +const char EN_24[] PROGMEM = "PID"; +const char EN_25[] PROGMEM = "Big"; +const char EN_26[] PROGMEM = "Infos"; +const char EN_27[] PROGMEM = "OFF"; +const char EN_28[] PROGMEM = "ON"; +const char EN_29[] PROGMEM = "NO"; +const char EN_30[] PROGMEM = "YES"; +const char EN_31[] PROGMEM = "CN"; +const char EN_32[] PROGMEM = "EN"; +const char EN_33[] PROGMEM = "NO"; +const char EN_34[] PROGMEM = "OK"; +const char EN_35[] PROGMEM = "Main Screen"; +const char EN_36[] PROGMEM = "Flip"; +const char EN_37[] PROGMEM = "Save"; +const char EN_38[] PROGMEM = "About"; +const char EN_39[] PROGMEM = "JP"; +const char *const EN_table[] PROGMEM = {EN_0, EN_1, EN_2, EN_3, EN_4, EN_5, EN_6, EN_7, EN_38, EN_8, EN_9, EN_10, EN_11, EN_12, EN_13, EN_14, EN_15, EN_16, EN_17, EN_18, EN_19, EN_20, EN_21, EN_22, EN_23, EN_24, EN_25, EN_26, EN_27, EN_28, EN_29, EN_30, EN_31, EN_32, EN_39, EN_33, EN_34, EN_35, EN_36, EN_37,}; + +/* + #!/usr/bin/python + # -*- coding: UTF-8 -*- + for num in range(0,38): + print("EN_",end="") + print(num,end='') + print(",",end="") +*/ +/* + 中文语言库 CHINESE + + //////////////////////////////////////////////////////////////////////////////////////////////////////// + 本地化提示:你可以按照位图的大小,把这里的文字位图替换成你的语言,确保位图分辨率一致即可,我们欢迎你把程序翻译为你当地的语言! + Localization tips: you can according to the size of the bitmap, + replace the text bitmap here with your language, + ensure that the bitmap resolution is consistent, + we welcome you to translate the program into your local language! + //////////////////////////////////////////////////////////////////////////////////////////////////////// +*/ +//width:28,height:14 主界面中文提示 +//Main Screen +//错误-ERROR +const unsigned char S1[] PROGMEM = { 0x20, 0x92, 0x1f, 0xc0, 0x3d, 0xf9, 0x90, 0x40, 0x20, 0x90, 0x90, 0x40, 0x40, 0x90, 0x1f, 0xc0, 0x7b, 0xff, 0x00, 0x00, 0xa0, 0x01, 0x3f, 0xe0, 0x21, 0xf9, 0x02, 0x00, 0xfd, 0x09, 0x02, 0x00, 0x21, 0x09, 0x7f, 0xf0, 0x21, 0xf9, 0x05, 0x00, 0x21, 0x09, 0x45, 0x00, 0x29, 0x09, 0x88, 0x80, 0x31, 0xf9, 0x10, 0x70, 0x21, 0x08, 0x20, 0x20 }; +//关机-OFF +const unsigned char S2[] PROGMEM = { 0x10, 0x40, 0x47, 0xc0, 0x17, 0xfc, 0x44, 0x40, 0x20, 0x03, 0xf4, 0x40, 0x23, 0xf8, 0x44, 0x40, 0x62, 0x08, 0xc4, 0x40, 0xa3, 0xf8, 0xe4, 0x40, 0x20, 0x01, 0x54, 0x40, 0x2f, 0xfd, 0x44, 0x40, 0x28, 0x06, 0x44, 0x40, 0x23, 0xf8, 0x44, 0x40, 0x20, 0x40, 0x44, 0x50, 0x20, 0x40, 0x48, 0x50, 0x21, 0x40, 0x50, 0x30, 0x20, 0x80, 0x40, 0x00 }; +//休眠-SLEEP +const unsigned char S3[] PROGMEM = { 0x10, 0x83, 0xdf, 0xc0, 0x10, 0x82, 0x50, 0x40, 0x20, 0x82, 0x50, 0x40, 0x2f, 0xff, 0xdf, 0xc0, 0x60, 0x82, 0x52, 0x00, 0x61, 0xc2, 0x52, 0x00, 0xa1, 0xc2, 0x5f, 0xe0, 0x22, 0xa3, 0xd2, 0x00, 0x22, 0xa2, 0x51, 0x00, 0x24, 0x92, 0x51, 0x00, 0x28, 0x8e, 0x50, 0x90, 0x30, 0x8b, 0xd4, 0x50, 0x20, 0x82, 0x58, 0x30, 0x20, 0x80, 0x10, 0x10 }; +//提温-BOOST +const unsigned char S4[] PROGMEM = { 0x23, 0xf2, 0x1f, 0xc0, 0x22, 0x11, 0x10, 0x40, 0xfb, 0xf0, 0x90, 0x40, 0x22, 0x12, 0x1f, 0xc0, 0x2a, 0x11, 0x10, 0x40, 0x33, 0xf1, 0x10, 0x40, 0x60, 0x00, 0x5f, 0xc0, 0xaf, 0xfc, 0x80, 0x00, 0x20, 0x41, 0x3f, 0xe0, 0x22, 0x43, 0x25, 0x20, 0x22, 0x79, 0x25, 0x20, 0x22, 0x41, 0x25, 0x20, 0xa5, 0x41, 0x25, 0x20, 0x48, 0xfd, 0x7f, 0xf0 }; +//正常工作-WORKY +const unsigned char S5[] PROGMEM = { 0x7f, 0xf8, 0x48, 0x80, 0x02, 0x00, 0x49, 0x00, 0x02, 0x01, 0xff, 0xf0, 0x02, 0x01, 0x00, 0x10, 0x02, 0x02, 0x7f, 0x20, 0x22, 0x00, 0x41, 0x00, 0x23, 0xf0, 0x7f, 0x00, 0x22, 0x00, 0x08, 0x00, 0x22, 0x00, 0xff, 0x80, 0x22, 0x00, 0x88, 0x80, 0x22, 0x00, 0x88, 0x80, 0x22, 0x00, 0x8a, 0x80, 0x22, 0x00, 0x89, 0x00, 0xff, 0xfc, 0x08, 0x00 }; +//加热-HEAT +const unsigned char S6[] PROGMEM = { 0x0f, 0x42, 0x1f, 0xc0, 0x78, 0x41, 0x10, 0x40, 0x08, 0x40, 0x90, 0x40, 0x08, 0x42, 0x1f, 0xc0, 0x08, 0x41, 0x10, 0x40, 0xff, 0xfd, 0x10, 0x40, 0x08, 0x40, 0x5f, 0xc0, 0x08, 0x40, 0x80, 0x00, 0x08, 0x41, 0x3f, 0xe0, 0x08, 0x43, 0x25, 0x20, 0x10, 0x41, 0x25, 0x20, 0x10, 0x41, 0x25, 0x20, 0x20, 0x41, 0x25, 0x20, 0x40, 0x41, 0x7f, 0xf0 }; +//维持-HOLD +const unsigned char S7[] PROGMEM = { 0x11, 0x40, 0x82, 0x00, 0x21, 0x20, 0x8f, 0xe0, 0x23, 0xfc, 0x82, 0x00, 0x4a, 0x23, 0xe2, 0x00, 0xfe, 0x20, 0x9f, 0xf0, 0x13, 0xf8, 0x80, 0x80, 0x22, 0x20, 0xc0, 0x80, 0x42, 0x21, 0xbf, 0xf0, 0xfb, 0xfa, 0x88, 0x80, 0x02, 0x20, 0x84, 0x80, 0x02, 0x20, 0x84, 0x80, 0x1a, 0x20, 0x80, 0x80, 0xe3, 0xfe, 0x82, 0x80, 0x02, 0x01, 0x01, 0x00 }; +const unsigned char *S_table[] = {S1, S2, S3, S4, S5, S6, S7}; + +// 菜单 width:36,height:16 +//MENU Oj +/* + The order here(↓) can refer to EN_table(↑↑↑) +*/ +const unsigned char t0[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x7f, 0x90, 0xf8, 0x00, 0x01, 0x08, 0x08, 0x88, 0x00, 0x0a, 0x10, 0x08, 0x88, 0x00, 0x04, 0x7f, 0x01, 0x07, 0x00, 0x1f, 0xc1, 0x3a, 0x00, 0x00, 0x05, 0x49, 0x09, 0xfc, 0x00, 0x04, 0x49, 0x08, 0x84, 0x00, 0x04, 0x49, 0x08, 0x88, 0x00, 0x04, 0x49, 0x08, 0x48, 0x00, 0x04, 0x49, 0x08, 0x50, 0x00, 0x04, 0x49, 0x0a, 0x20, 0x00, 0x04, 0x16, 0x0c, 0x58, 0x00, 0x14, 0x21, 0x89, 0x87, 0x00, 0x08, 0xc0, 0x86, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t1[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xfe, 0x08, 0x20, 0x00, 0x08, 0x82, 0x0b, 0xff, 0x00, 0x04, 0x82, 0x0a, 0x01, 0x00, 0x10, 0xfe, 0x3c, 0x51, 0x00, 0x08, 0x82, 0x08, 0x88, 0x00, 0x08, 0x82, 0x09, 0x04, 0x00, 0x02, 0xfe, 0x0c, 0x00, 0x00, 0x04, 0x00, 0x19, 0xfc, 0x00, 0x09, 0xff, 0x28, 0x20, 0x00, 0x19, 0x29, 0x08, 0x20, 0x00, 0x09, 0x29, 0x08, 0x20, 0x00, 0x09, 0x29, 0x08, 0x20, 0x00, 0x09, 0x29, 0x2b, 0xff, 0x00, 0x0b, 0xff, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t2[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x20, 0x3e, 0x04, 0x00, 0x1f, 0xff, 0xa2, 0x04, 0x00, 0x10, 0x00, 0xa2, 0xff, 0x00, 0x00, 0x01, 0x22, 0x04, 0x00, 0x0f, 0xfe, 0x22, 0x04, 0x00, 0x00, 0x40, 0x3e, 0x44, 0x00, 0x00, 0x40, 0x22, 0x24, 0x00, 0x04, 0x40, 0x22, 0x24, 0x00, 0x04, 0x7c, 0x22, 0x04, 0x00, 0x04, 0x40, 0x22, 0x04, 0x00, 0x0a, 0x40, 0x3e, 0x04, 0x00, 0x09, 0x40, 0x22, 0x24, 0x00, 0x10, 0xff, 0x80, 0x14, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00 }; +const unsigned char t3[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x10, 0x12, 0x02, 0x00, 0x05, 0xff, 0x9f, 0xd2, 0x00, 0x05, 0x00, 0x92, 0x12, 0x00, 0x1e, 0x28, 0xa2, 0x12, 0x00, 0x04, 0x44, 0x3f, 0xf2, 0x00, 0x04, 0x82, 0x02, 0x12, 0x00, 0x06, 0x00, 0x02, 0x12, 0x00, 0x0c, 0xfe, 0x1f, 0xd2, 0x00, 0x14, 0x10, 0x12, 0x52, 0x00, 0x04, 0x10, 0x12, 0x42, 0x00, 0x04, 0x10, 0x13, 0x42, 0x00, 0x04, 0x10, 0x12, 0x82, 0x00, 0x15, 0xff, 0x82, 0x0a, 0x00, 0x08, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t4[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xfe, 0x0f, 0xf8, 0x00, 0x04, 0x02, 0x00, 0x00, 0x00, 0x04, 0x02, 0x00, 0x00, 0x00, 0x07, 0xfe, 0x00, 0x00, 0x00, 0x04, 0x02, 0x3f, 0xfe, 0x00, 0x04, 0x02, 0x00, 0x80, 0x00, 0x07, 0xfe, 0x00, 0x80, 0x00, 0x00, 0x90, 0x04, 0x90, 0x00, 0x08, 0x91, 0x0c, 0x88, 0x00, 0x06, 0x93, 0x10, 0x86, 0x00, 0x02, 0x94, 0x20, 0x82, 0x00, 0x00, 0x90, 0x00, 0x80, 0x00, 0x00, 0x90, 0x02, 0x80, 0x00, 0x1f, 0xff, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t5[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x80, 0x00, 0x1f, 0xff, 0x9f, 0xfc, 0x00, 0x00, 0x40, 0x04, 0x10, 0x00, 0x0f, 0xff, 0x02, 0x20, 0x00, 0x00, 0x00, 0x3f, 0xff, 0x00, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x08, 0x42, 0x0f, 0xf8, 0x00, 0x08, 0x42, 0x08, 0x08, 0x00, 0x0f, 0xfe, 0x08, 0x08, 0x00, 0x08, 0x02, 0x0f, 0xf8, 0x00, 0x08, 0x00, 0x08, 0x08, 0x00, 0x08, 0x00, 0x08, 0x08, 0x00, 0x08, 0x00, 0x0f, 0xf8, 0x00, 0x10, 0x00, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t6[] PROGMEM = { 0x09, 0xff, 0x00, 0x40, 0x00, 0x04, 0x20, 0x3f, 0xff, 0x00, 0x04, 0x20, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x1c, 0x42, 0x0f, 0xfc, 0x00, 0x04, 0x42, 0x00, 0x00, 0x00, 0x07, 0xff, 0x80, 0x00, 0x00, 0x04, 0x00, 0x0f, 0xfc, 0x00, 0x04, 0xff, 0x00, 0x00, 0x00, 0x04, 0x81, 0x00, 0x00, 0x00, 0x05, 0x81, 0x0f, 0xfc, 0x00, 0x06, 0x81, 0x08, 0x04, 0x00, 0x04, 0xff, 0x08, 0x04, 0x00, 0x00, 0x81, 0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +const unsigned char t7[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0f, 0xfe, 0x00, 0x01, 0x00, 0x08, 0x20, 0x00, 0x03, 0xff, 0x08, 0x20, 0x00, 0x02, 0x01, 0x08, 0x20, 0x00, 0x04, 0x22, 0x08, 0x20, 0x00, 0x08, 0x20, 0x0b, 0xfe, 0x00, 0x10, 0x20, 0x08, 0x20, 0x00, 0x00, 0x50, 0x08, 0x28, 0x00, 0x00, 0x50, 0x08, 0x24, 0x00, 0x00, 0x88, 0x08, 0x22, 0x00, 0x00, 0x88, 0x10, 0x20, 0x00, 0x01, 0x04, 0x10, 0x20, 0x00, 0x02, 0x03, 0xa7, 0xff, 0x00, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char Back[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x07, 0x00, 0x00, 0x00, 0x08, 0xf8, 0x3f, 0xfe, 0x00, 0x04, 0x80, 0x20, 0x02, 0x00, 0x00, 0x80, 0x20, 0x02, 0x00, 0x00, 0xbe, 0x23, 0xe2, 0x00, 0x1c, 0x82, 0x22, 0x22, 0x00, 0x04, 0xa4, 0x22, 0x22, 0x00, 0x04, 0x94, 0x22, 0x22, 0x00, 0x04, 0x88, 0x22, 0x22, 0x00, 0x04, 0x94, 0x23, 0xe2, 0x00, 0x05, 0x22, 0x20, 0x02, 0x00, 0x05, 0x42, 0x20, 0x02, 0x00, 0x0a, 0x00, 0x3f, 0xfe, 0x00, 0x11, 0xff, 0xa0, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +const unsigned char t1_1[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x08, 0x20, 0x90, 0x00, 0x02, 0x7f, 0x98, 0x90, 0x00, 0x1f, 0x80, 0x09, 0xff, 0x00, 0x02, 0x22, 0x01, 0x10, 0x00, 0x06, 0x21, 0x8b, 0x10, 0x00, 0x07, 0x62, 0x8d, 0xfe, 0x00, 0x0a, 0xa2, 0x09, 0x10, 0x00, 0x0a, 0x14, 0x11, 0x10, 0x00, 0x12, 0x14, 0x31, 0xfe, 0x00, 0x02, 0x08, 0x11, 0x10, 0x00, 0x02, 0x14, 0x11, 0x10, 0x00, 0x02, 0x22, 0x11, 0x10, 0x00, 0x02, 0x43, 0x91, 0xff, 0x00, 0x02, 0x81, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t1_2[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x80, 0x00, 0x00, 0x50, 0x01, 0xfc, 0x00, 0x00, 0x88, 0x01, 0x04, 0x00, 0x01, 0x04, 0x03, 0x08, 0x00, 0x06, 0xfb, 0x04, 0x90, 0x00, 0x08, 0x00, 0xc0, 0x60, 0x00, 0x07, 0xdf, 0x01, 0x80, 0x00, 0x04, 0x51, 0x06, 0x00, 0x00, 0x04, 0x51, 0x1b, 0xfe, 0x00, 0x04, 0x51, 0x02, 0x02, 0x00, 0x07, 0xd9, 0x02, 0x02, 0x00, 0x04, 0x56, 0x02, 0x02, 0x00, 0x00, 0x10, 0x03, 0xfe, 0x00, 0x00, 0x10, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t1_3[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x78, 0xbc, 0x20, 0x00, 0x09, 0x48, 0xa4, 0x50, 0x00, 0x09, 0x4a, 0xa8, 0x50, 0x00, 0x09, 0x4a, 0xa8, 0x88, 0x00, 0x09, 0x4a, 0xb1, 0x04, 0x00, 0x1f, 0xfe, 0xaa, 0xfb, 0x00, 0x09, 0x4a, 0xa4, 0x20, 0x00, 0x09, 0x4a, 0xa4, 0x20, 0x00, 0x09, 0x4a, 0xa7, 0xfe, 0x00, 0x09, 0x4a, 0xb4, 0x20, 0x00, 0x09, 0x48, 0xa9, 0x24, 0x00, 0x0b, 0x48, 0xa2, 0x22, 0x00, 0x08, 0x8a, 0xa4, 0xa2, 0x00, 0x11, 0x19, 0x20, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t1_4[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x00, 0x10, 0x00, 0x1f, 0xdc, 0x3e, 0xfe, 0x00, 0x08, 0x90, 0x02, 0x12, 0x00, 0x05, 0x10, 0x04, 0xff, 0x00, 0x1f, 0xdf, 0x84, 0x12, 0x00, 0x02, 0x12, 0x0c, 0xfe, 0x00, 0x1f, 0xd2, 0x02, 0x10, 0x00, 0x02, 0x12, 0x22, 0xfe, 0x00, 0x0a, 0x92, 0x14, 0x10, 0x00, 0x0a, 0x52, 0x14, 0x10, 0x00, 0x12, 0x22, 0x0d, 0xff, 0x00, 0x02, 0x22, 0x08, 0x10, 0x00, 0x0a, 0x42, 0x14, 0x10, 0x00, 0x04, 0x02, 0x23, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +//默认 +const unsigned char t2_0[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xc8, 0x10, 0x20, 0x00, 0x12, 0x4a, 0x0c, 0x20, 0x00, 0x1a, 0xc9, 0x04, 0x20, 0x00, 0x17, 0x48, 0x00, 0x20, 0x00, 0x1f, 0xff, 0xb8, 0x20, 0x00, 0x02, 0x08, 0x08, 0x50, 0x00, 0x1f, 0xc8, 0x08, 0x50, 0x00, 0x02, 0x08, 0x08, 0x50, 0x00, 0x03, 0xc8, 0x08, 0x48, 0x00, 0x1e, 0x14, 0x08, 0x88, 0x00, 0x01, 0x54, 0x0a, 0x88, 0x00, 0x15, 0x22, 0x0c, 0x84, 0x00, 0x14, 0x43, 0x89, 0x07, 0x00, 0x00, 0x81, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +//休眠 +const unsigned char t2_1[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x10, 0x3d, 0xfc, 0x00, 0x02, 0x10, 0x25, 0x04, 0x00, 0x04, 0x10, 0x25, 0x04, 0x00, 0x05, 0xff, 0xbd, 0xfc, 0x00, 0x0c, 0x10, 0x25, 0x20, 0x00, 0x0c, 0x38, 0x25, 0x20, 0x00, 0x14, 0x38, 0x25, 0xfe, 0x00, 0x04, 0x54, 0x3d, 0x20, 0x00, 0x04, 0x54, 0x25, 0x10, 0x00, 0x04, 0x92, 0x25, 0x10, 0x00, 0x05, 0x11, 0xa5, 0x09, 0x00, 0x06, 0x11, 0x3d, 0x45, 0x00, 0x04, 0x10, 0x25, 0x83, 0x00, 0x04, 0x10, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +//提温 +const unsigned char t2_2[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x7e, 0x21, 0xfc, 0x00, 0x04, 0x42, 0x11, 0x04, 0x00, 0x1f, 0x7e, 0x09, 0x04, 0x00, 0x04, 0x42, 0x21, 0xfc, 0x00, 0x05, 0x42, 0x11, 0x04, 0x00, 0x06, 0x7e, 0x11, 0x04, 0x00, 0x0c, 0x00, 0x05, 0xfc, 0x00, 0x15, 0xff, 0x88, 0x00, 0x00, 0x04, 0x08, 0x13, 0xfe, 0x00, 0x04, 0x48, 0x32, 0x52, 0x00, 0x04, 0x4f, 0x12, 0x52, 0x00, 0x04, 0x48, 0x12, 0x52, 0x00, 0x14, 0xa8, 0x12, 0x52, 0x00, 0x09, 0x1f, 0x97, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +//关机 +const unsigned char t3_1[] PROGMEM = { 0x01, 0x04, 0x04, 0x7c, 0x00, 0x00, 0x88, 0x04, 0x44, 0x00, 0x0f, 0xff, 0x3f, 0x44, 0x00, 0x00, 0x20, 0x04, 0x44, 0x00, 0x00, 0x20, 0x0c, 0x44, 0x00, 0x00, 0x20, 0x0e, 0x44, 0x00, 0x1f, 0xff, 0x95, 0x44, 0x00, 0x00, 0x20, 0x14, 0x44, 0x00, 0x00, 0x50, 0x24, 0x44, 0x00, 0x00, 0x50, 0x04, 0x44, 0x00, 0x00, 0x88, 0x04, 0x45, 0x00, 0x01, 0x04, 0x04, 0x85, 0x00, 0x06, 0x03, 0x85, 0x03, 0x00, 0x18, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +const unsigned char t_4[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x08, 0x20, 0x00, 0x0f, 0xff, 0x09, 0xfc, 0x00, 0x00, 0x20, 0x08, 0x00, 0x00, 0x00, 0x20, 0x3e, 0x88, 0x00, 0x03, 0xfe, 0x08, 0x50, 0x00, 0x02, 0x02, 0x0b, 0xfe, 0x00, 0x03, 0xfe, 0x0c, 0x40, 0x00, 0x02, 0x02, 0x18, 0x40, 0x00, 0x03, 0xfe, 0x2b, 0xfe, 0x00, 0x02, 0x02, 0x08, 0x48, 0x00, 0x03, 0xfe, 0x08, 0x88, 0x00, 0x02, 0x02, 0x08, 0x50, 0x00, 0x02, 0x02, 0x28, 0x30, 0x00, 0x1f, 0xff, 0x91, 0xcc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t_PID[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xc3, 0xf1, 0xe0, 0x00, 0x0f, 0xe3, 0xf1, 0xf8, 0x00, 0x0c, 0x70, 0xc1, 0x9e, 0x00, 0x0c, 0x30, 0xc1, 0x86, 0x00, 0x0c, 0x30, 0xc1, 0x83, 0x00, 0x0c, 0x30, 0xc1, 0x83, 0x00, 0x0c, 0x60, 0xc1, 0x83, 0x00, 0x0c, 0x60, 0xc1, 0x83, 0x00, 0x0f, 0xc0, 0xc1, 0x83, 0x00, 0x0f, 0xc0, 0xc1, 0x86, 0x00, 0x0c, 0x00, 0xc1, 0x86, 0x00, 0x0c, 0x00, 0xc1, 0x98, 0x00, 0x0c, 0x03, 0xf1, 0xf8, 0x00, 0x0c, 0x03, 0xf1, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +const unsigned char t5_0[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xdf, 0x88, 0x40, 0x00, 0x0a, 0x24, 0x10, 0x40, 0x00, 0x11, 0x42, 0x10, 0xfe, 0x00, 0x04, 0x00, 0x22, 0x82, 0x00, 0x02, 0xff, 0x3d, 0x02, 0x00, 0x08, 0x01, 0x0a, 0x42, 0x00, 0x09, 0xf9, 0x10, 0x32, 0x00, 0x09, 0x09, 0x20, 0x12, 0x00, 0x09, 0xf9, 0x3e, 0x02, 0x00, 0x09, 0x09, 0x00, 0x02, 0x00, 0x09, 0x09, 0x0e, 0x02, 0x00, 0x09, 0xf9, 0x30, 0x22, 0x00, 0x08, 0x05, 0x00, 0x14, 0x00, 0x08, 0x02, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t5_1[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x44, 0x10, 0xfe, 0x00, 0x04, 0x28, 0x10, 0x92, 0x00, 0x05, 0xff, 0x22, 0x92, 0x00, 0x00, 0x10, 0x3c, 0x92, 0x00, 0x00, 0x10, 0x08, 0x92, 0x00, 0x1c, 0xfe, 0x10, 0x92, 0x00, 0x04, 0x10, 0x20, 0xfe, 0x00, 0x04, 0x10, 0x3e, 0x92, 0x00, 0x05, 0xff, 0x80, 0x92, 0x00, 0x04, 0x10, 0x00, 0x92, 0x00, 0x05, 0x10, 0x0e, 0x92, 0x00, 0x06, 0x10, 0x30, 0x92, 0x00, 0x04, 0x10, 0x00, 0xfe, 0x00, 0x00, 0x10, 0x00, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t5_3[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x08, 0x3f, 0xfe, 0x00, 0x1f, 0xff, 0x81, 0x00, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x07, 0xfe, 0x0f, 0xf8, 0x00, 0x04, 0x02, 0x08, 0x08, 0x00, 0x04, 0x02, 0x08, 0x88, 0x00, 0x07, 0xfe, 0x08, 0x88, 0x00, 0x04, 0x02, 0x08, 0x88, 0x00, 0x04, 0x02, 0x08, 0x88, 0x00, 0x07, 0xfe, 0x08, 0x88, 0x00, 0x04, 0x02, 0x09, 0x48, 0x00, 0x04, 0x02, 0x02, 0x30, 0x00, 0x07, 0xfe, 0x04, 0x0c, 0x00, 0x04, 0x02, 0x18, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +const unsigned char t_off[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x04, 0xff, 0x00, 0x00, 0x44, 0x02, 0x01, 0x00, 0x07, 0xff, 0x90, 0x21, 0x00, 0x00, 0x10, 0x10, 0x21, 0x00, 0x00, 0x10, 0x17, 0xfd, 0x00, 0x00, 0x10, 0x10, 0x21, 0x00, 0x0f, 0xff, 0xd0, 0x61, 0x00, 0x00, 0x10, 0x10, 0xa1, 0x00, 0x00, 0x28, 0x11, 0x21, 0x00, 0x00, 0x28, 0x12, 0x21, 0x00, 0x00, 0x44, 0x14, 0x21, 0x00, 0x00, 0x82, 0x10, 0xa1, 0x00, 0x03, 0x01, 0xd0, 0x45, 0x00, 0x0c, 0x00, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t_on[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0x80, 0x20, 0x00, 0x00, 0x84, 0x07, 0xff, 0x00, 0x00, 0x84, 0x04, 0x01, 0x00, 0x00, 0x84, 0x04, 0x01, 0x00, 0x00, 0x84, 0x04, 0x01, 0x00, 0x0f, 0xff, 0xc7, 0xff, 0x00, 0x00, 0x84, 0x04, 0x00, 0x00, 0x00, 0x84, 0x04, 0x00, 0x00, 0x00, 0x84, 0x05, 0xff, 0x00, 0x00, 0x84, 0x05, 0x01, 0x00, 0x01, 0x04, 0x09, 0x01, 0x00, 0x01, 0x04, 0x09, 0x01, 0x00, 0x02, 0x04, 0x11, 0xff, 0x00, 0x04, 0x04, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +const unsigned char t_NO[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x04, 0x91, 0x00, 0x04, 0x40, 0x02, 0x52, 0x00, 0x04, 0x7f, 0x90, 0x54, 0x00, 0x04, 0x50, 0x88, 0xff, 0x00, 0x07, 0xd0, 0x84, 0x81, 0x00, 0x04, 0x51, 0x00, 0x81, 0x00, 0x04, 0x49, 0x01, 0xff, 0x00, 0x07, 0xca, 0x02, 0x81, 0x00, 0x04, 0x44, 0x04, 0x81, 0x00, 0x04, 0x4a, 0x1c, 0xff, 0x00, 0x07, 0xea, 0x04, 0x81, 0x00, 0x0c, 0x51, 0x04, 0x81, 0x00, 0x00, 0x61, 0xc4, 0x85, 0x00, 0x00, 0x40, 0x80, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t_OK[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xdf, 0x10, 0x20, 0x00, 0x02, 0x12, 0x0c, 0x20, 0x00, 0x02, 0x24, 0x04, 0x20, 0x00, 0x04, 0x7f, 0x80, 0x20, 0x00, 0x04, 0x24, 0xb8, 0x20, 0x00, 0x0f, 0xa4, 0x88, 0x50, 0x00, 0x14, 0xbf, 0x88, 0x50, 0x00, 0x04, 0xa4, 0x88, 0x50, 0x00, 0x04, 0xa4, 0x88, 0x48, 0x00, 0x04, 0xbf, 0x88, 0x88, 0x00, 0x04, 0xa4, 0x8a, 0x88, 0x00, 0x07, 0xa4, 0x8c, 0x84, 0x00, 0x04, 0x44, 0x89, 0x07, 0x00, 0x00, 0x81, 0x86, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +const unsigned char t_CN_CN[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x40, 0x00, 0x80, 0x00, 0x0f, 0xff, 0x3f, 0xff, 0x00, 0x08, 0x41, 0x04, 0x08, 0x00, 0x08, 0x41, 0x04, 0x08, 0x00, 0x08, 0x41, 0x04, 0x10, 0x00, 0x08, 0x41, 0x02, 0x10, 0x00, 0x0f, 0xff, 0x02, 0x20, 0x00, 0x08, 0x41, 0x01, 0x20, 0x00, 0x00, 0x40, 0x00, 0xc0, 0x00, 0x00, 0x40, 0x01, 0x30, 0x00, 0x00, 0x40, 0x02, 0x08, 0x00, 0x00, 0x40, 0x0c, 0x07, 0x00, 0x00, 0x40, 0x30, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t_CN_EN[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x10, 0x00, 0x80, 0x00, 0x1f, 0xff, 0x80, 0x80, 0x00, 0x01, 0x10, 0x3f, 0xff, 0x00, 0x00, 0x40, 0x04, 0x08, 0x00, 0x07, 0xfc, 0x04, 0x08, 0x00, 0x04, 0x44, 0x04, 0x10, 0x00, 0x04, 0x44, 0x02, 0x10, 0x00, 0x04, 0x44, 0x02, 0x20, 0x00, 0x1f, 0xff, 0x81, 0x20, 0x00, 0x00, 0x40, 0x00, 0xc0, 0x00, 0x00, 0xa0, 0x01, 0x30, 0x00, 0x01, 0x10, 0x02, 0x08, 0x00, 0x06, 0x0c, 0x0c, 0x07, 0x00, 0x18, 0x03, 0xb0, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t_CN_JP[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xfe, 0x13, 0xfe, 0x00, 0x04, 0x02, 0x08, 0x40, 0x00, 0x04, 0x02, 0x08, 0x40, 0x00, 0x04, 0x02, 0x01, 0xfc, 0x00, 0x04, 0x02, 0x38, 0x84, 0x00, 0x04, 0x02, 0x08, 0x84, 0x00, 0x07, 0xfe, 0x0f, 0xff, 0x00, 0x04, 0x02, 0x08, 0x00, 0x00, 0x04, 0x02, 0x09, 0xfe, 0x00, 0x04, 0x02, 0x09, 0x02, 0x00, 0x04, 0x02, 0x0b, 0x02, 0x00, 0x04, 0x02, 0x0d, 0x02, 0x00, 0x07, 0xfe, 0x09, 0xfe, 0x00, 0x04, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +//翻转 +const unsigned char t4f[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x1d, 0xc2, 0x08, 0x00, 0x05, 0x44, 0x42, 0x08, 0x00, 0x03, 0x84, 0x5f, 0xbf, 0x00, 0x0f, 0xe4, 0x44, 0x10, 0x00, 0x01, 0x15, 0x45, 0x10, 0x00, 0x05, 0x4c, 0xc9, 0x7f, 0x80, 0x09, 0x24, 0x4f, 0x90, 0x00, 0x07, 0xc4, 0xc1, 0x10, 0x00, 0x05, 0x4d, 0x41, 0x3f, 0x00, 0x05, 0x54, 0x43, 0x81, 0x00, 0x07, 0xc4, 0x4d, 0x02, 0x00, 0x05, 0x44, 0x41, 0x14, 0x00, 0x05, 0x55, 0x41, 0x08, 0x00, 0x07, 0xc8, 0x81, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +//保存 +const unsigned char t_save[] PROGMEM = { 0x02, 0xfe, 0x01, 0x00, 0x00, 0x02, 0x82, 0x3f, 0xff, 0x00, 0x04, 0x82, 0x02, 0x00, 0x00, 0x04, 0xfe, 0x02, 0x00, 0x00, 0x0c, 0x10, 0x04, 0xfc, 0x00, 0x14, 0x10, 0x04, 0x08, 0x00, 0x05, 0xff, 0x8c, 0x10, 0x00, 0x04, 0x10, 0x14, 0x10, 0x00, 0x04, 0x38, 0x25, 0xff, 0x00, 0x04, 0x34, 0x04, 0x10, 0x00, 0x04, 0x52, 0x04, 0x10, 0x00, 0x04, 0x91, 0x84, 0x10, 0x00, 0x05, 0x10, 0x04, 0x50, 0x00, 0x04, 0x10, 0x04, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char tAbout[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x0f, 0xfe, 0x00, 0x00, 0x44, 0x00, 0x40, 0x00, 0x07, 0xff, 0x80, 0x40, 0x00, 0x00, 0x10, 0x00, 0x40, 0x00, 0x00, 0x10, 0x00, 0x40, 0x00, 0x00, 0x10, 0x1f, 0xff, 0x80, 0x0f, 0xff, 0xc0, 0x40, 0x00, 0x00, 0x10, 0x00, 0x40, 0x00, 0x00, 0x28, 0x00, 0x40, 0x00, 0x00, 0x28, 0x00, 0x40, 0x00, 0x00, 0x44, 0x00, 0x40, 0x00, 0x00, 0x82, 0x00, 0x40, 0x00, 0x03, 0x01, 0xc1, 0x40, 0x00, 0x0c, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +const unsigned char *CN_table[] = { + t0, t1, t2, t3, t4, t5, t7, t6, tAbout, Back, //0 + t0, t1_1, t1_2, t1_3, t1_4, t_save, //1 + t2_0, t2_1, t2_2, t_save, //2 + t2_1, t3_1, t2_2, t_save,//3 + t_4, t_PID,//4 + t5_0, t5_1,//5 + t_off, t_on,//6 + t_NO, t_OK,//7 + t_CN_CN, t_CN_EN, t_CN_JP, //8 + t_NO, t_OK,//9 + t5_3, t4f, t_save, //10 +}; +/* + 日语 Japanese +*/ +/* + 8x8 dot Japanese font for Arduboy + + Copyright (c) 2016 emutyworks + + Released under the MIT license + https://github.com/emutyworks/8x8DotJPFont/blob/master/LICENSE.txt +*/ + +#define MISAKI_FONT_H + +#define MISAKI_FONT_F0_PAGE 0xF0 +#define MISAKI_FONT_F1_PAGE 0xF1 +#define MISAKI_FONT_F2_PAGE 0xF2 + +#define MISAKI_FONT_F0_W 8 +#define MISAKI_FONT_F1_W 3 +#define MISAKI_FONT_F2_W 7 + +#define MISAKI_FONT_F0_SIZE 0xEF +#define MISAKI_FONT_F1_SIZE 0x9D +#define MISAKI_FONT_F2_SIZE 0x1E // misaki_font_f2.h の最終行の値をここに設定する、最大0xEFまで + +/* + 利用しないフォントデータはヘッダファイルを読み込まないようにするとメモリが節約できます、 + drawText() 実行時にフォントが無い場合は処理がスキップされます。 + + 例) 8x8 dot ひらがな・カタカナ・記号 のみ利用 + #include "misaki_font_f0.h" // 8x8 dot ひらがな・カタカナ・記号 + //#include "misaki_font_f1.h" // 4x8 dot 英語・カタカナ・記号 + //#include "misaki_font_f2.h" // 8x8 dot 漢字 +*/ +PROGMEM const uint8_t misaki_font_0x00[1] = { 0x00 }; +#define MISAKI_FONT_F0_H +PROGMEM const uint8_t misaki_font_f0[ MISAKI_FONT_F0_SIZE + 1 ][ MISAKI_FONT_F0_W ] = +{ + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0x00   */ + { 0x20, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0x01 、 */ + { 0x20, 0x50, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0x02 。 */ + { 0x50, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0x03 , */ + { 0x60, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0x04 . */ + { 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00 }, /* 0x05 ・ */ + { 0x00, 0x00, 0x36, 0x36, 0x00, 0x00, 0x00, 0x00 }, /* 0x06 : */ + { 0x00, 0x00, 0x56, 0x36, 0x00, 0x00, 0x00, 0x00 }, /* 0x07 ; */ + { 0x00, 0x02, 0x01, 0x51, 0x09, 0x09, 0x06, 0x00 }, /* 0x08 ? */ + { 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x00 }, /* 0x09 ! */ + { 0x00, 0x00, 0x00, 0x00, 0x7f, 0x41, 0x41, 0x00 }, /* 0x0A [ */ + { 0x41, 0x41, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0x0B ] */ + { 0x00, 0x00, 0x00, 0x3f, 0x01, 0x01, 0x01, 0x00 }, /* 0x0C 「 */ + { 0x40, 0x40, 0x40, 0x7e, 0x00, 0x00, 0x00, 0x00 }, /* 0x0D 」 */ + { 0x00, 0x00, 0x3f, 0x21, 0x3d, 0x05, 0x07, 0x00 }, /* 0x0E 『 */ + { 0x70, 0x50, 0x5e, 0x42, 0x7e, 0x00, 0x00, 0x00 }, /* 0x0F 』 */ + { 0x00, 0x00, 0x00, 0x00, 0x7f, 0x63, 0x41, 0x00 }, /* 0x10 【 */ + { 0x41, 0x63, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0x11 】 */ + { 0x08, 0x08, 0x08, 0x7f, 0x08, 0x08, 0x08, 0x00 }, /* 0x12 + */ + { 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00 }, /* 0x13 - */ + { 0x44, 0x44, 0x44, 0x5f, 0x44, 0x44, 0x44, 0x00 }, /* 0x14 ± */ + { 0x41, 0x22, 0x14, 0x08, 0x14, 0x22, 0x41, 0x00 }, /* 0x15 × */ + { 0x08, 0x08, 0x08, 0x2a, 0x08, 0x08, 0x08, 0x00 }, /* 0x16 ÷ */ + { 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x00 }, /* 0x17 = */ + { 0x14, 0x34, 0x14, 0x1c, 0x14, 0x16, 0x14, 0x00 }, /* 0x18 ≠ */ + { 0x08, 0x08, 0x14, 0x14, 0x14, 0x22, 0x22, 0x00 }, /* 0x19 < */ + { 0x22, 0x22, 0x14, 0x14, 0x14, 0x08, 0x08, 0x00 }, /* 0x1A > */ + { 0x02, 0x05, 0x02, 0x3c, 0x42, 0x42, 0x24, 0x00 }, /* 0x1B ℃ */ + { 0x00, 0x2b, 0x2c, 0x78, 0x2c, 0x2b, 0x00, 0x00 }, /* 0x1C ¥ */ + { 0x00, 0x24, 0x2a, 0x7a, 0x2f, 0x2a, 0x12, 0x00 }, /* 0x1D $ */ + { 0x00, 0x1c, 0x62, 0x32, 0x2e, 0x23, 0x14, 0x00 }, /* 0x1E ¢ */ + { 0x20, 0x54, 0x5e, 0x25, 0x41, 0x42, 0x20, 0x00 }, /* 0x1F £ */ + { 0x42, 0x25, 0x12, 0x08, 0x24, 0x52, 0x21, 0x00 }, /* 0x20 % */ + { 0x20, 0x62, 0x3e, 0x63, 0x3e, 0x23, 0x02, 0x00 }, /* 0x21 # */ + { 0x20, 0x56, 0x49, 0x55, 0x22, 0x58, 0x40, 0x00 }, /* 0x22 & */ + { 0x00, 0x22, 0x14, 0x7f, 0x14, 0x22, 0x00, 0x00 }, /* 0x23 * */ + { 0x1c, 0x22, 0x59, 0x55, 0x4d, 0x12, 0x0c, 0x00 }, /* 0x24 @ */ + { 0x00, 0x00, 0x4a, 0x55, 0x55, 0x29, 0x00, 0x00 }, /* 0x25 § */ + { 0x04, 0x64, 0x3c, 0x17, 0x3c, 0x64, 0x04, 0x00 }, /* 0x26 ☆ */ + { 0x04, 0x64, 0x3c, 0x1f, 0x3c, 0x64, 0x04, 0x00 }, /* 0x27 ★ */ + { 0x1c, 0x22, 0x41, 0x41, 0x41, 0x22, 0x1c, 0x00 }, /* 0x28 ○ */ + { 0x1c, 0x3e, 0x7f, 0x7f, 0x7f, 0x3e, 0x1c, 0x00 }, /* 0x29 ● */ + { 0x1c, 0x22, 0x5d, 0x55, 0x5d, 0x22, 0x1c, 0x00 }, /* 0x2A ◎ */ + { 0x08, 0x14, 0x22, 0x41, 0x22, 0x14, 0x08, 0x00 }, /* 0x2B ◇ */ + { 0x08, 0x1c, 0x3e, 0x7f, 0x3e, 0x1c, 0x08, 0x00 }, /* 0x2C ◆ */ + { 0x7f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x7f, 0x00 }, /* 0x2D □ */ + { 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x00 }, /* 0x2E ■ */ + { 0x40, 0x70, 0x4c, 0x43, 0x4c, 0x70, 0x40, 0x00 }, /* 0x2F △ */ + { 0x40, 0x70, 0x7c, 0x7f, 0x7c, 0x70, 0x40, 0x00 }, /* 0x30 ▲ */ + { 0x01, 0x07, 0x19, 0x61, 0x19, 0x07, 0x01, 0x00 }, /* 0x31 ▽ */ + { 0x01, 0x07, 0x1f, 0x7f, 0x1f, 0x07, 0x01, 0x00 }, /* 0x32 ▼ */ + { 0x49, 0x22, 0x14, 0x49, 0x14, 0x22, 0x49, 0x00 }, /* 0x33 ※ */ + { 0x05, 0x05, 0x05, 0x7d, 0x05, 0x05, 0x05, 0x00 }, /* 0x34 〒 */ + { 0x08, 0x08, 0x08, 0x08, 0x2a, 0x1c, 0x08, 0x00 }, /* 0x35 → */ + { 0x08, 0x1c, 0x2a, 0x08, 0x08, 0x08, 0x08, 0x00 }, /* 0x36 ← */ + { 0x00, 0x04, 0x02, 0x7f, 0x02, 0x04, 0x00, 0x00 }, /* 0x37 ↑ */ + { 0x00, 0x10, 0x20, 0x7f, 0x20, 0x10, 0x00, 0x00 }, /* 0x38 ↓ */ + { 0x00, 0x3e, 0x41, 0x41, 0x41, 0x41, 0x3e, 0x00 }, /* 0x39 0 */ + { 0x00, 0x00, 0x42, 0x7f, 0x40, 0x00, 0x00, 0x00 }, /* 0x3A 1 */ + { 0x00, 0x62, 0x51, 0x51, 0x49, 0x49, 0x46, 0x00 }, /* 0x3B 2 */ + { 0x00, 0x22, 0x41, 0x49, 0x49, 0x49, 0x36, 0x00 }, /* 0x3C 3 */ + { 0x00, 0x30, 0x28, 0x24, 0x22, 0x7f, 0x20, 0x00 }, /* 0x3D 4 */ + { 0x00, 0x2f, 0x45, 0x45, 0x45, 0x45, 0x39, 0x00 }, /* 0x3E 5 */ + { 0x00, 0x3e, 0x49, 0x49, 0x49, 0x49, 0x32, 0x00 }, /* 0x3F 6 */ + { 0x00, 0x01, 0x01, 0x61, 0x19, 0x05, 0x03, 0x00 }, /* 0x40 7 */ + { 0x00, 0x36, 0x49, 0x49, 0x49, 0x49, 0x36, 0x00 }, /* 0x41 8 */ + { 0x00, 0x26, 0x49, 0x49, 0x49, 0x49, 0x3e, 0x00 }, /* 0x42 9 */ + { 0x00, 0x20, 0x54, 0x7e, 0x34, 0x14, 0x60, 0x00 }, /* 0x43 ぁ */ + { 0x20, 0x52, 0x7f, 0x2a, 0x1a, 0x4a, 0x30, 0x00 }, /* 0x44 あ */ + { 0x00, 0x3c, 0x40, 0x20, 0x04, 0x18, 0x00, 0x00 }, /* 0x45 ぃ */ + { 0x1e, 0x20, 0x40, 0x20, 0x02, 0x04, 0x18, 0x00 }, /* 0x46 い */ + { 0x00, 0x10, 0x4a, 0x4a, 0x2a, 0x10, 0x00, 0x00 }, /* 0x47 ぅ */ + { 0x00, 0x08, 0x45, 0x45, 0x45, 0x25, 0x18, 0x00 }, /* 0x48 う */ + { 0x00, 0x48, 0x2a, 0x3a, 0x4a, 0x40, 0x00, 0x00 }, /* 0x49 ぇ */ + { 0x00, 0x44, 0x25, 0x15, 0x3d, 0x45, 0x40, 0x00 }, /* 0x4A え */ + { 0x00, 0x24, 0x7e, 0x14, 0x50, 0x24, 0x00, 0x00 }, /* 0x4B ぉ */ + { 0x22, 0x52, 0x7f, 0x0a, 0x48, 0x4a, 0x34, 0x00 }, /* 0x4C お */ + { 0x44, 0x34, 0x4f, 0x44, 0x38, 0x04, 0x18, 0x00 }, /* 0x4D か */ + { 0x44, 0x34, 0x4f, 0x44, 0x39, 0x04, 0x19, 0x00 }, /* 0x4E が */ + { 0x00, 0x2a, 0x5a, 0x4b, 0x4e, 0x5a, 0x08, 0x00 }, /* 0x4F き */ + { 0x00, 0x2a, 0x5a, 0x4b, 0x4e, 0x5b, 0x08, 0x00 }, /* 0x50 ぎ */ + { 0x00, 0x08, 0x14, 0x14, 0x22, 0x41, 0x00, 0x00 }, /* 0x51 く */ + { 0x00, 0x08, 0x14, 0x14, 0x22, 0x45, 0x04, 0x00 }, /* 0x52 ぐ */ + { 0x3f, 0x00, 0x04, 0x44, 0x3f, 0x04, 0x04, 0x00 }, /* 0x53 け */ + { 0x3f, 0x00, 0x04, 0x44, 0x3f, 0x04, 0x05, 0x00 }, /* 0x54 げ */ + { 0x00, 0x20, 0x52, 0x42, 0x42, 0x42, 0x40, 0x00 }, /* 0x55 こ */ + { 0x00, 0x20, 0x52, 0x42, 0x43, 0x42, 0x41, 0x00 }, /* 0x56 ご */ + { 0x00, 0x24, 0x54, 0x44, 0x47, 0x5c, 0x04, 0x00 }, /* 0x57 さ */ + { 0x00, 0x24, 0x54, 0x44, 0x47, 0x5c, 0x05, 0x00 }, /* 0x58 ざ */ + { 0x00, 0x00, 0x3f, 0x40, 0x40, 0x40, 0x20, 0x00 }, /* 0x59 し */ + { 0x00, 0x00, 0x3f, 0x40, 0x41, 0x40, 0x21, 0x00 }, /* 0x5A じ */ + { 0x02, 0x02, 0x0a, 0x56, 0x3f, 0x02, 0x02, 0x00 }, /* 0x5B す */ + { 0x02, 0x02, 0x0a, 0x56, 0x3f, 0x02, 0x03, 0x00 }, /* 0x5C ず */ + { 0x04, 0x04, 0x3f, 0x44, 0x54, 0x5f, 0x44, 0x00 }, /* 0x5D せ */ + { 0x04, 0x04, 0x3f, 0x44, 0x54, 0x5f, 0x45, 0x00 }, /* 0x5E ぜ */ + { 0x00, 0x08, 0x09, 0x3d, 0x4b, 0x49, 0x08, 0x00 }, /* 0x5F そ */ + { 0x00, 0x08, 0x09, 0x3d, 0x4b, 0x49, 0x0a, 0x00 }, /* 0x60 ぞ */ + { 0x42, 0x3a, 0x07, 0x22, 0x54, 0x44, 0x44, 0x00 }, /* 0x61 た */ + { 0x42, 0x3a, 0x07, 0x22, 0x55, 0x44, 0x45, 0x00 }, /* 0x62 だ */ + { 0x00, 0x02, 0x12, 0x4e, 0x4b, 0x4a, 0x32, 0x00 }, /* 0x63 ち */ + { 0x00, 0x02, 0x12, 0x4e, 0x4b, 0x4a, 0x33, 0x00 }, /* 0x64 ぢ */ + { 0x00, 0x10, 0x10, 0x48, 0x48, 0x30, 0x00, 0x00 }, /* 0x65 っ */ + { 0x04, 0x04, 0x02, 0x22, 0x22, 0x22, 0x1c, 0x00 }, /* 0x66 つ */ + { 0x04, 0x04, 0x02, 0x22, 0x23, 0x22, 0x1d, 0x00 }, /* 0x67 づ */ + { 0x00, 0x02, 0x02, 0x1a, 0x25, 0x43, 0x41, 0x00 }, /* 0x68 て */ + { 0x00, 0x02, 0x02, 0x1a, 0x25, 0x43, 0x45, 0x00 }, /* 0x69 で */ + { 0x00, 0x20, 0x57, 0x48, 0x48, 0x44, 0x44, 0x00 }, /* 0x6A と */ + { 0x00, 0x20, 0x57, 0x48, 0x49, 0x44, 0x45, 0x00 }, /* 0x6B ど */ + { 0x12, 0x0a, 0x27, 0x52, 0x50, 0x3a, 0x24, 0x00 }, /* 0x6C な */ + { 0x7f, 0x00, 0x20, 0x52, 0x42, 0x42, 0x40, 0x00 }, /* 0x6D に */ + { 0x30, 0x4e, 0x38, 0x54, 0x0f, 0x64, 0x78, 0x00 }, /* 0x6E ぬ */ + { 0x24, 0x14, 0x7f, 0x04, 0x22, 0x52, 0x3c, 0x00 }, /* 0x6F ね */ + { 0x18, 0x24, 0x12, 0x4e, 0x42, 0x24, 0x18, 0x00 }, /* 0x70 の */ + { 0x7f, 0x00, 0x24, 0x54, 0x54, 0x3f, 0x44, 0x00 }, /* 0x71 は */ + { 0x7f, 0x00, 0x24, 0x54, 0x54, 0x3f, 0x45, 0x00 }, /* 0x72 ば */ + { 0x7f, 0x00, 0x24, 0x54, 0x56, 0x3d, 0x46, 0x00 }, /* 0x73 ぱ */ + { 0x02, 0x3a, 0x47, 0x40, 0x41, 0x3e, 0x04, 0x00 }, /* 0x74 ひ */ + { 0x02, 0x3a, 0x47, 0x40, 0x41, 0x3e, 0x05, 0x00 }, /* 0x75 び */ + { 0x02, 0x3a, 0x47, 0x40, 0x43, 0x3d, 0x06, 0x00 }, /* 0x76 ぴ */ + { 0x40, 0x30, 0x40, 0x4d, 0x32, 0x10, 0x60, 0x00 }, /* 0x77 ふ */ + { 0x40, 0x30, 0x40, 0x4d, 0x32, 0x11, 0x61, 0x00 }, /* 0x78 ぶ */ + { 0x40, 0x30, 0x40, 0x4d, 0x32, 0x15, 0x62, 0x00 }, /* 0x79 ぷ */ + { 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x00 }, /* 0x7A へ */ + { 0x08, 0x04, 0x02, 0x04, 0x09, 0x10, 0x11, 0x00 }, /* 0x7B べ */ + { 0x08, 0x04, 0x02, 0x04, 0x0a, 0x15, 0x12, 0x00 }, /* 0x7C ぺ */ + { 0x7f, 0x00, 0x6a, 0x6a, 0x7e, 0x2a, 0x4a, 0x00 }, /* 0x7D ほ */ + { 0x7f, 0x00, 0x6a, 0x6a, 0x7f, 0x2a, 0x4b, 0x00 }, /* 0x7E ぼ */ + { 0x7f, 0x00, 0x6a, 0x6a, 0x7e, 0x2d, 0x4a, 0x00 }, /* 0x7F ぽ */ + { 0x00, 0x6a, 0x6a, 0x6a, 0x7f, 0x2a, 0x4a, 0x00 }, /* 0x80 ま */ + { 0x30, 0x29, 0x1d, 0x4b, 0x48, 0x3c, 0x10, 0x00 }, /* 0x81 み */ + { 0x12, 0x2a, 0x7f, 0x42, 0x40, 0x42, 0x24, 0x00 }, /* 0x82 む */ + { 0x30, 0x4e, 0x38, 0x54, 0x0f, 0x44, 0x38, 0x00 }, /* 0x83 め */ + { 0x00, 0x0a, 0x3e, 0x4b, 0x4a, 0x4a, 0x30, 0x00 }, /* 0x84 も */ + { 0x00, 0x08, 0x0e, 0x38, 0x46, 0x14, 0x08, 0x00 }, /* 0x85 ゃ */ + { 0x04, 0x07, 0x1c, 0x62, 0x03, 0x0a, 0x04, 0x00 }, /* 0x86 や */ + { 0x00, 0x1c, 0x48, 0x3e, 0x24, 0x18, 0x00, 0x00 }, /* 0x87 ゅ */ + { 0x1e, 0x04, 0x52, 0x3f, 0x12, 0x12, 0x0c, 0x00 }, /* 0x88 ゆ */ + { 0x00, 0x20, 0x50, 0x50, 0x3e, 0x48, 0x00, 0x00 }, /* 0x89 ょ */ + { 0x00, 0x20, 0x50, 0x50, 0x3f, 0x24, 0x44, 0x00 }, /* 0x8A よ */ + { 0x00, 0x1c, 0x51, 0x49, 0x4a, 0x48, 0x30, 0x00 }, /* 0x8B ら */ + { 0x00, 0x0f, 0x42, 0x41, 0x21, 0x1e, 0x00, 0x00 }, /* 0x8C り */ + { 0x00, 0x10, 0x69, 0x6d, 0x4b, 0x49, 0x30, 0x00 }, /* 0x8D る */ + { 0x24, 0x14, 0x7f, 0x04, 0x02, 0x3e, 0x40, 0x00 }, /* 0x8E れ */ + { 0x00, 0x10, 0x49, 0x4d, 0x4b, 0x49, 0x30, 0x00 }, /* 0x8F ろ */ + { 0x00, 0x28, 0x18, 0x7e, 0x08, 0x44, 0x38, 0x00 }, /* 0x90 ゎ */ + { 0x24, 0x14, 0x7f, 0x04, 0x42, 0x42, 0x3c, 0x00 }, /* 0x91 わ */ + { 0x30, 0x49, 0x25, 0x1f, 0x24, 0x54, 0x38, 0x00 }, /* 0x92 ゐ */ + { 0x40, 0x28, 0x25, 0x57, 0x35, 0x28, 0x40, 0x00 }, /* 0x93 ゑ */ + { 0x10, 0x0a, 0x2e, 0x5b, 0x72, 0x4a, 0x48, 0x00 }, /* 0x94 を */ + { 0x40, 0x30, 0x0c, 0x33, 0x40, 0x40, 0x20, 0x00 }, /* 0x95 ん */ + { 0x00, 0x04, 0x44, 0x3c, 0x14, 0x0c, 0x00, 0x00 }, /* 0x96 ァ */ + { 0x00, 0x01, 0x41, 0x3d, 0x09, 0x05, 0x03, 0x00 }, /* 0x97 ア */ + { 0x00, 0x20, 0x20, 0x10, 0x78, 0x04, 0x00, 0x00 }, /* 0x98 ィ */ + { 0x00, 0x10, 0x10, 0x08, 0x7c, 0x02, 0x01, 0x00 }, /* 0x99 イ */ + { 0x00, 0x18, 0x48, 0x4c, 0x28, 0x18, 0x00, 0x00 }, /* 0x9A ゥ */ + { 0x00, 0x06, 0x42, 0x43, 0x22, 0x12, 0x0e, 0x00 }, /* 0x9B ウ */ + { 0x00, 0x40, 0x48, 0x78, 0x48, 0x40, 0x00, 0x00 }, /* 0x9C ェ */ + { 0x20, 0x22, 0x22, 0x3e, 0x22, 0x22, 0x20, 0x00 }, /* 0x9D エ */ + { 0x00, 0x28, 0x28, 0x58, 0x7c, 0x08, 0x00, 0x00 }, /* 0x9E ォ */ + { 0x22, 0x22, 0x12, 0x4a, 0x7f, 0x02, 0x02, 0x00 }, /* 0x9F オ */ + { 0x00, 0x42, 0x22, 0x1f, 0x02, 0x42, 0x7e, 0x00 }, /* 0xA0 カ */ + { 0x00, 0x42, 0x22, 0x1f, 0x02, 0x42, 0x7f, 0x00 }, /* 0xA1 ガ */ + { 0x00, 0x12, 0x12, 0x1f, 0x72, 0x12, 0x10, 0x00 }, /* 0xA2 キ */ + { 0x00, 0x12, 0x12, 0x1f, 0x72, 0x13, 0x10, 0x00 }, /* 0xA3 ギ */ + { 0x00, 0x08, 0x44, 0x43, 0x22, 0x12, 0x0e, 0x00 }, /* 0xA4 ク */ + { 0x00, 0x08, 0x44, 0x43, 0x22, 0x12, 0x0f, 0x00 }, /* 0xA5 グ */ + { 0x08, 0x07, 0x42, 0x22, 0x1e, 0x02, 0x02, 0x00 }, /* 0xA6 ケ */ + { 0x08, 0x07, 0x42, 0x22, 0x1f, 0x02, 0x03, 0x00 }, /* 0xA7 ゲ */ + { 0x00, 0x42, 0x42, 0x42, 0x42, 0x42, 0x7e, 0x00 }, /* 0xA8 コ */ + { 0x00, 0x42, 0x42, 0x42, 0x43, 0x42, 0x7f, 0x00 }, /* 0xA9 ゴ */ + { 0x02, 0x02, 0x4f, 0x42, 0x22, 0x1f, 0x02, 0x00 }, /* 0xAA サ */ + { 0x02, 0x02, 0x4f, 0x42, 0x23, 0x1e, 0x03, 0x00 }, /* 0xAB ザ */ + { 0x00, 0x45, 0x4a, 0x40, 0x20, 0x10, 0x0c, 0x00 }, /* 0xAC シ */ + { 0x00, 0x45, 0x4a, 0x40, 0x21, 0x10, 0x0d, 0x00 }, /* 0xAD ジ */ + { 0x40, 0x42, 0x22, 0x22, 0x1a, 0x26, 0x40, 0x00 }, /* 0xAE ス */ + { 0x40, 0x42, 0x22, 0x22, 0x1b, 0x26, 0x41, 0x00 }, /* 0xAF ズ */ + { 0x04, 0x04, 0x3f, 0x44, 0x44, 0x54, 0x4c, 0x00 }, /* 0xB0 セ */ + { 0x04, 0x04, 0x3f, 0x44, 0x45, 0x54, 0x4d, 0x00 }, /* 0xB1 ゼ */ + { 0x00, 0x01, 0x46, 0x40, 0x20, 0x10, 0x0f, 0x00 }, /* 0xB2 ソ */ + { 0x00, 0x01, 0x46, 0x40, 0x20, 0x11, 0x0f, 0x00 }, /* 0xB3 ゾ */ + { 0x00, 0x08, 0x44, 0x4b, 0x2a, 0x12, 0x0e, 0x00 }, /* 0xB4 タ */ + { 0x00, 0x08, 0x44, 0x4b, 0x2a, 0x12, 0x0f, 0x00 }, /* 0xB5 ダ */ + { 0x08, 0x0a, 0x4a, 0x3e, 0x09, 0x09, 0x08, 0x00 }, /* 0xB6 チ */ + { 0x08, 0x0a, 0x4a, 0x3e, 0x09, 0x08, 0x09, 0x00 }, /* 0xB7 ヂ */ + { 0x00, 0x18, 0x40, 0x58, 0x20, 0x18, 0x00, 0x00 }, /* 0xB8 ッ */ + { 0x02, 0x0c, 0x42, 0x4c, 0x20, 0x10, 0x0e, 0x00 }, /* 0xB9 ツ */ + { 0x02, 0x0c, 0x42, 0x4c, 0x21, 0x10, 0x0d, 0x00 }, /* 0xBA ヅ */ + { 0x04, 0x05, 0x45, 0x3d, 0x05, 0x05, 0x04, 0x00 }, /* 0xBB テ */ + { 0x04, 0x05, 0x45, 0x3d, 0x05, 0x04, 0x05, 0x00 }, /* 0xBC デ */ + { 0x00, 0x00, 0x7f, 0x08, 0x08, 0x10, 0x00, 0x00 }, /* 0xBD ト */ + { 0x00, 0x00, 0x7f, 0x08, 0x09, 0x10, 0x01, 0x00 }, /* 0xBE ド */ + { 0x04, 0x44, 0x24, 0x1f, 0x04, 0x04, 0x04, 0x00 }, /* 0xBF ナ */ + { 0x20, 0x22, 0x22, 0x22, 0x22, 0x22, 0x20, 0x00 }, /* 0xC0 ニ */ + { 0x40, 0x41, 0x25, 0x15, 0x19, 0x27, 0x00, 0x00 }, /* 0xC1 ヌ */ + { 0x20, 0x22, 0x12, 0x7b, 0x06, 0x12, 0x20, 0x00 }, /* 0xC2 ネ */ + { 0x40, 0x40, 0x20, 0x10, 0x08, 0x07, 0x00, 0x00 }, /* 0xC3 ノ */ + { 0x40, 0x30, 0x0e, 0x00, 0x02, 0x0c, 0x70, 0x00 }, /* 0xC4 ハ */ + { 0x40, 0x30, 0x0e, 0x00, 0x02, 0x0d, 0x71, 0x00 }, /* 0xC5 バ */ + { 0x40, 0x30, 0x0e, 0x00, 0x02, 0x0d, 0x72, 0x00 }, /* 0xC6 パ */ + { 0x00, 0x3f, 0x48, 0x48, 0x48, 0x44, 0x44, 0x00 }, /* 0xC7 ヒ */ + { 0x00, 0x3f, 0x48, 0x48, 0x49, 0x44, 0x45, 0x00 }, /* 0xC8 ビ */ + { 0x00, 0x3f, 0x48, 0x48, 0x4a, 0x45, 0x46, 0x00 }, /* 0xC9 ピ */ + { 0x00, 0x02, 0x42, 0x42, 0x22, 0x12, 0x0e, 0x00 }, /* 0xCA フ */ + { 0x00, 0x02, 0x42, 0x42, 0x23, 0x12, 0x0f, 0x00 }, /* 0xCB ブ */ + { 0x00, 0x02, 0x42, 0x42, 0x22, 0x15, 0x0e, 0x00 }, /* 0xCC プ */ + { 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x20, 0x00 }, /* 0xCD ヘ */ + { 0x08, 0x04, 0x02, 0x04, 0x09, 0x10, 0x21, 0x00 }, /* 0xCE ベ */ + { 0x08, 0x04, 0x02, 0x04, 0x0a, 0x15, 0x22, 0x00 }, /* 0xCF ペ */ + { 0x24, 0x14, 0x44, 0x7f, 0x04, 0x14, 0x24, 0x00 }, /* 0xD0 ホ */ + { 0x24, 0x14, 0x44, 0x7f, 0x05, 0x14, 0x25, 0x00 }, /* 0xD1 ボ */ + { 0x24, 0x14, 0x44, 0x7f, 0x06, 0x15, 0x22, 0x00 }, /* 0xD2 ポ */ + { 0x02, 0x02, 0x12, 0x22, 0x52, 0x0a, 0x06, 0x00 }, /* 0xD3 マ */ + { 0x00, 0x21, 0x25, 0x29, 0x4a, 0x42, 0x00, 0x00 }, /* 0xD4 ミ */ + { 0x40, 0x70, 0x4c, 0x43, 0x50, 0x20, 0x40, 0x00 }, /* 0xD5 ム */ + { 0x40, 0x44, 0x24, 0x14, 0x08, 0x37, 0x00, 0x00 }, /* 0xD6 メ */ + { 0x00, 0x08, 0x09, 0x3f, 0x49, 0x49, 0x48, 0x00 }, /* 0xD7 モ */ + { 0x00, 0x10, 0x1c, 0x68, 0x08, 0x18, 0x00, 0x00 }, /* 0xD8 ャ */ + { 0x04, 0x04, 0x0f, 0x74, 0x02, 0x0a, 0x06, 0x00 }, /* 0xD9 ヤ */ + { 0x00, 0x40, 0x48, 0x48, 0x78, 0x40, 0x00, 0x00 }, /* 0xDA ュ */ + { 0x20, 0x22, 0x22, 0x22, 0x3e, 0x20, 0x20, 0x00 }, /* 0xDB ユ */ + { 0x00, 0x00, 0x44, 0x54, 0x54, 0x7c, 0x00, 0x00 }, /* 0xDC ョ */ + { 0x00, 0x42, 0x4a, 0x4a, 0x4a, 0x4a, 0x7e, 0x00 }, /* 0xDD ヨ */ + { 0x00, 0x04, 0x45, 0x45, 0x25, 0x15, 0x0c, 0x00 }, /* 0xDE ラ */ + { 0x00, 0x0f, 0x40, 0x40, 0x20, 0x1f, 0x00, 0x00 }, /* 0xDF リ */ + { 0x40, 0x20, 0x1e, 0x00, 0x7f, 0x20, 0x10, 0x00 }, /* 0xE0 ル */ + { 0x00, 0x00, 0x7f, 0x40, 0x20, 0x10, 0x08, 0x00 }, /* 0xE1 レ */ + { 0x00, 0x7e, 0x42, 0x42, 0x42, 0x42, 0x7e, 0x00 }, /* 0xE2 ロ */ + { 0x00, 0x0c, 0x44, 0x44, 0x24, 0x1c, 0x00, 0x00 }, /* 0xE3 ヮ */ + { 0x00, 0x06, 0x42, 0x42, 0x22, 0x12, 0x0e, 0x00 }, /* 0xE4 ワ */ + { 0x10, 0x12, 0x1e, 0x12, 0x12, 0x7f, 0x12, 0x00 }, /* 0xE5 ヰ */ + { 0x20, 0x22, 0x22, 0x3a, 0x26, 0x22, 0x20, 0x00 }, /* 0xE6 ヱ */ + { 0x00, 0x01, 0x45, 0x45, 0x25, 0x15, 0x0f, 0x00 }, /* 0xE7 ヲ */ + { 0x00, 0x41, 0x42, 0x40, 0x20, 0x10, 0x0c, 0x00 }, /* 0xE8 ン */ + { 0x00, 0x06, 0x42, 0x43, 0x22, 0x12, 0x0f, 0x00 }, /* 0xE9 ヴ */ + { 0x00, 0x48, 0x28, 0x1c, 0x48, 0x78, 0x00, 0x00 }, /* 0xEA ヵ */ + { 0x00, 0x10, 0x0c, 0x48, 0x38, 0x08, 0x00, 0x00 }, /* 0xEB ヶ */ + { 0x08, 0x04, 0x04, 0x08, 0x10, 0x10, 0x08, 0x00 }, /* 0xEC 〜 */ + { 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00 }, /* 0xED … */ + { 0x04, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00 }, /* 0xEE ー */ + { 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08 }, /* 0xEF ― */ +}; + +#define MISAKI_FONT_F1_H +PROGMEM const uint8_t misaki_font_f1[ MISAKI_FONT_F1_SIZE + 1 ][ MISAKI_FONT_F1_W ] = +{ + { 0x00, 0x00, 0x00 }, /* 0x00 */ + { 0x00, 0x2f, 0x00 }, /* 0x01 ! */ + { 0x03, 0x00, 0x03 }, /* 0x02 " */ + { 0x3f, 0x12, 0x3f }, /* 0x03 # */ + { 0x16, 0x3f, 0x1a }, /* 0x04 $ */ + { 0x12, 0x08, 0x24 }, /* 0x05 % */ + { 0x32, 0x3d, 0x2a }, /* 0x06 & */ + { 0x02, 0x01, 0x00 }, /* 0x07 ' */ + { 0x00, 0x3e, 0x41 }, /* 0x08 ( */ + { 0x41, 0x3e, 0x00 }, /* 0x09 ) */ + { 0x0a, 0x07, 0x0a }, /* 0x0A * */ + { 0x08, 0x3e, 0x08 }, /* 0x0B + */ + { 0x40, 0x20, 0x00 }, /* 0x0C , */ + { 0x08, 0x08, 0x08 }, /* 0x0D - */ + { 0x00, 0x20, 0x00 }, /* 0x0E . */ + { 0x10, 0x08, 0x04 }, /* 0x0F / */ + { 0x1c, 0x2a, 0x1c }, /* 0x10 0 */ + { 0x24, 0x3e, 0x20 }, /* 0x11 1 */ + { 0x32, 0x2a, 0x24 }, /* 0x12 2 */ + { 0x22, 0x2a, 0x14 }, /* 0x13 3 */ + { 0x18, 0x14, 0x3e }, /* 0x14 4 */ + { 0x2e, 0x2a, 0x12 }, /* 0x15 5 */ + { 0x1c, 0x2a, 0x12 }, /* 0x16 6 */ + { 0x02, 0x3a, 0x06 }, /* 0x17 7 */ + { 0x14, 0x2a, 0x14 }, /* 0x18 8 */ + { 0x24, 0x2a, 0x1c }, /* 0x19 9 */ + { 0x00, 0x24, 0x00 }, /* 0x1A : */ + { 0x40, 0x24, 0x00 }, /* 0x1B ; */ + { 0x08, 0x14, 0x22 }, /* 0x1C < */ + { 0x14, 0x14, 0x14 }, /* 0x1D = */ + { 0x22, 0x14, 0x08 }, /* 0x1E > */ + { 0x02, 0x29, 0x06 }, /* 0x1F ? */ + { 0x12, 0x29, 0x1e }, /* 0x20 @ */ + { 0x3e, 0x09, 0x3e }, /* 0x21 A */ + { 0x3f, 0x25, 0x1a }, /* 0x22 B */ + { 0x1e, 0x21, 0x21 }, /* 0x23 C */ + { 0x3f, 0x21, 0x1e }, /* 0x24 D */ + { 0x3f, 0x25, 0x21 }, /* 0x25 E */ + { 0x3f, 0x05, 0x01 }, /* 0x26 F */ + { 0x1e, 0x21, 0x39 }, /* 0x27 G */ + { 0x3f, 0x08, 0x3f }, /* 0x28 H */ + { 0x21, 0x3f, 0x21 }, /* 0x29 I */ + { 0x10, 0x20, 0x1f }, /* 0x2A J */ + { 0x3f, 0x04, 0x3b }, /* 0x2B K */ + { 0x3f, 0x20, 0x20 }, /* 0x2C L */ + { 0x3f, 0x06, 0x3f }, /* 0x2D M */ + { 0x3f, 0x01, 0x3e }, /* 0x2E N */ + { 0x1e, 0x21, 0x1e }, /* 0x2F O */ + { 0x3f, 0x09, 0x06 }, /* 0x30 P */ + { 0x1e, 0x21, 0x5e }, /* 0x31 Q */ + { 0x3f, 0x09, 0x36 }, /* 0x32 R */ + { 0x22, 0x25, 0x19 }, /* 0x33 S */ + { 0x01, 0x3f, 0x01 }, /* 0x34 T */ + { 0x3f, 0x20, 0x3f }, /* 0x35 U */ + { 0x3f, 0x10, 0x0f }, /* 0x36 V */ + { 0x3f, 0x18, 0x3f }, /* 0x37 W */ + { 0x33, 0x0c, 0x33 }, /* 0x38 X */ + { 0x03, 0x3c, 0x03 }, /* 0x39 Y */ + { 0x31, 0x2d, 0x23 }, /* 0x3A Z */ + { 0x00, 0x7f, 0x41 }, /* 0x3B [ */ + { 0x15, 0x3e, 0x15 }, /* 0x3C \ */ + { 0x41, 0x7f, 0x00 }, /* 0x3D ] */ + { 0x02, 0x01, 0x02 }, /* 0x3E ^ */ + { 0x40, 0x40, 0x40 }, /* 0x3F _ */ + { 0x00, 0x01, 0x02 }, /* 0x40 ` */ + { 0x18, 0x24, 0x3c }, /* 0x41 a */ + { 0x3f, 0x24, 0x18 }, /* 0x42 b */ + { 0x18, 0x24, 0x24 }, /* 0x43 c */ + { 0x18, 0x24, 0x3f }, /* 0x44 d */ + { 0x18, 0x2c, 0x2c }, /* 0x45 e */ + { 0x04, 0x3f, 0x05 }, /* 0x46 f */ + { 0x48, 0x54, 0x3c }, /* 0x47 g */ + { 0x3f, 0x04, 0x38 }, /* 0x48 h */ + { 0x00, 0x3d, 0x00 }, /* 0x49 i */ + { 0x40, 0x3d, 0x00 }, /* 0x4A j */ + { 0x3f, 0x08, 0x34 }, /* 0x4B k */ + { 0x01, 0x3f, 0x00 }, /* 0x4C l */ + { 0x3c, 0x1c, 0x38 }, /* 0x4D m */ + { 0x3c, 0x04, 0x38 }, /* 0x4E n */ + { 0x18, 0x24, 0x18 }, /* 0x4F o */ + { 0x7c, 0x24, 0x18 }, /* 0x50 p */ + { 0x18, 0x24, 0x7c }, /* 0x51 q */ + { 0x3c, 0x08, 0x04 }, /* 0x52 r */ + { 0x28, 0x3c, 0x14 }, /* 0x53 s */ + { 0x04, 0x3e, 0x24 }, /* 0x54 t */ + { 0x3c, 0x20, 0x3c }, /* 0x55 u */ + { 0x3c, 0x10, 0x0c }, /* 0x56 v */ + { 0x3c, 0x30, 0x3c }, /* 0x57 w */ + { 0x24, 0x18, 0x24 }, /* 0x58 x */ + { 0x4c, 0x50, 0x3c }, /* 0x59 y */ + { 0x24, 0x34, 0x2c }, /* 0x5A z */ + { 0x08, 0x36, 0x41 }, /* 0x5B { */ + { 0x00, 0x7f, 0x00 }, /* 0x5C | */ + { 0x41, 0x36, 0x08 }, /* 0x5D } */ + { 0x01, 0x01, 0x01 }, /* 0x5E ~ */ + { 0x10, 0x28, 0x10 }, /* 0x5F 。 */ + { 0x1f, 0x01, 0x01 }, /* 0x60 「 */ + { 0x20, 0x20, 0x3e }, /* 0x61 」 */ + { 0x10, 0x20, 0x00 }, /* 0x62 、 */ + { 0x00, 0x08, 0x00 }, /* 0x63 ・ */ + { 0x25, 0x15, 0x0f }, /* 0x64 ヲ */ + { 0x24, 0x1c, 0x0c }, /* 0x65 ァ */ + { 0x10, 0x38, 0x04 }, /* 0x66 ィ */ + { 0x18, 0x0c, 0x38 }, /* 0x67 ゥ */ + { 0x28, 0x38, 0x28 }, /* 0x68 ェ */ + { 0x28, 0x18, 0x3c }, /* 0x69 ォ */ + { 0x08, 0x3c, 0x18 }, /* 0x6A ャ */ + { 0x28, 0x38, 0x20 }, /* 0x6B ュ */ + { 0x24, 0x2c, 0x3c }, /* 0x6C ョ */ + { 0x2c, 0x2c, 0x1c }, /* 0x6D ッ */ + { 0x04, 0x08, 0x08 }, /* 0x6E ー */ + { 0x21, 0x1d, 0x07 }, /* 0x6F ア */ + { 0x08, 0x3c, 0x03 }, /* 0x70 イ */ + { 0x06, 0x23, 0x1e }, /* 0x71 ウ */ + { 0x22, 0x3e, 0x22 }, /* 0x72 エ */ + { 0x12, 0x0a, 0x3f }, /* 0x73 オ */ + { 0x32, 0x0f, 0x3e }, /* 0x74 カ */ + { 0x0a, 0x3f, 0x0a }, /* 0x75 キ */ + { 0x24, 0x13, 0x0e }, /* 0x76 ク */ + { 0x27, 0x1e, 0x02 }, /* 0x77 ケ */ + { 0x22, 0x22, 0x3e }, /* 0x78 コ */ + { 0x27, 0x12, 0x0f }, /* 0x79 サ */ + { 0x25, 0x25, 0x10 }, /* 0x7A シ */ + { 0x21, 0x19, 0x27 }, /* 0x7B ス */ + { 0x3f, 0x22, 0x2e }, /* 0x7C セ */ + { 0x21, 0x16, 0x0f }, /* 0x7D ソ */ + { 0x24, 0x1b, 0x0e }, /* 0x7E タ */ + { 0x25, 0x1f, 0x05 }, /* 0x7F チ */ + { 0x26, 0x26, 0x1e }, /* 0x80 ツ */ + { 0x25, 0x1d, 0x05 }, /* 0x81 テ */ + { 0x3f, 0x04, 0x08 }, /* 0x82 ト */ + { 0x24, 0x1f, 0x04 }, /* 0x83 ナ */ + { 0x20, 0x22, 0x22 }, /* 0x84 ニ */ + { 0x25, 0x19, 0x27 }, /* 0x85 ヌ */ + { 0x12, 0x3b, 0x16 }, /* 0x86 ネ */ + { 0x20, 0x10, 0x0f }, /* 0x87 ノ */ + { 0x3c, 0x01, 0x3e }, /* 0x88 ハ */ + { 0x1f, 0x24, 0x24 }, /* 0x89 ヒ */ + { 0x21, 0x11, 0x0f }, /* 0x8A フ */ + { 0x0c, 0x03, 0x1c }, /* 0x8B ヘ */ + { 0x1a, 0x3f, 0x1a }, /* 0x8C ホ */ + { 0x09, 0x19, 0x27 }, /* 0x8D マ */ + { 0x22, 0x2a, 0x2a }, /* 0x8E ミ */ + { 0x38, 0x27, 0x30 }, /* 0x8F ム */ + { 0x32, 0x0c, 0x13 }, /* 0x90 メ */ + { 0x05, 0x3f, 0x25 }, /* 0x91 モ */ + { 0x02, 0x3f, 0x0e }, /* 0x92 ヤ */ + { 0x21, 0x3f, 0x20 }, /* 0x93 ユ */ + { 0x25, 0x25, 0x3f }, /* 0x94 ヨ */ + { 0x25, 0x25, 0x1d }, /* 0x95 ラ */ + { 0x07, 0x20, 0x1f }, /* 0x96 リ */ + { 0x3c, 0x3f, 0x20 }, /* 0x97 ル */ + { 0x3f, 0x20, 0x10 }, /* 0x98 レ */ + { 0x3e, 0x22, 0x3e }, /* 0x99 ロ */ + { 0x23, 0x11, 0x0f }, /* 0x9A ワ */ + { 0x21, 0x21, 0x18 }, /* 0x9B ン */ + { 0x01, 0x00, 0x01 }, /* 0x9C ゙ */ + { 0x02, 0x05, 0x02 }, /* 0x9D ゚ */ +}; +#define MISAKI_FONT_F2_H +PROGMEM const uint8_t misaki_font_f2[ MISAKI_FONT_F2_SIZE + 1 ][ MISAKI_FONT_F2_W ] = +{ + { 0x75, 0x40, 0x77, 0x55, 0x75, 0x77, 0x40 }, /* 0x00 温 */ + { 0x40, 0x3e, 0x4a, 0x5e, 0x2b, 0x5e, 0x4a }, /* 0x01 度 */ + { 0x6b, 0x62, 0x7f, 0x35, 0x2f, 0x35, 0x7f }, /* 0x02 調 */ + { 0x7c, 0x5b, 0x5e, 0x24, 0x7b, 0x0e, 0x3a }, /* 0x03 節 */ + { 0x04, 0x7e, 0x01, 0x7e, 0x4a, 0x5e, 0x69 }, /* 0x04 低 */ + { 0x06, 0x3a, 0x2f, 0x3f, 0x6b, 0x7e, 0x46 }, /* 0x05 電 */ + { 0x40, 0x3f, 0x41, 0x49, 0x7f, 0x49, 0x41 }, /* 0x06 圧 */ + { 0x02, 0x62, 0x6b, 0x6b, 0x6b, 0x62, 0x02 }, /* 0x07 言 */ + { 0x6a, 0x6b, 0x14, 0x7d, 0x57, 0x7d, 0x10 }, /* 0x08 語 */ + { 0x41, 0x3f, 0x55, 0x55, 0x3d, 0x57, 0x51 }, /* 0x09 戻 */ + { 0x21, 0x3f, 0x2d, 0x7f, 0x2a, 0x12, 0x2e }, /* 0x0A 取 */ + { 0x0a, 0x77, 0x5a, 0x50, 0x5a, 0x77, 0x0a }, /* 0x0B 替 */ + { 0x20, 0x24, 0x13, 0x7d, 0x55, 0x53, 0x70 }, /* 0x0C 名 */ + { 0x7a, 0x2a, 0x7b, 0x02, 0x1a, 0x43, 0x7a }, /* 0x0D 前 */ + { 0x4a, 0x52, 0x5e, 0x2b, 0x5e, 0x42, 0x4a }, /* 0x0E 変 */ + { 0x41, 0x5f, 0x35, 0x3f, 0x55, 0x5f, 0x41 }, /* 0x0F 更 */ + { 0x7d, 0x14, 0x57, 0x7d, 0x0e, 0x40, 0x7f }, /* 0x10 削 */ + { 0x7f, 0x1b, 0x54, 0x16, 0x7d, 0x16, 0x54 }, /* 0x11 除 */ + { 0x49, 0x3a, 0x40, 0x7e, 0x57, 0x56, 0x76 }, /* 0x12 追 */ + { 0x42, 0x3f, 0x42, 0x7e, 0x7e, 0x42, 0x7e }, /* 0x13 加 */ + { 0x04, 0x7e, 0x51, 0x37, 0x7d, 0x37, 0x50 }, /* 0x14 保 */ + { 0x12, 0x7a, 0x17, 0x52, 0x76, 0x1e, 0x12 }, /* 0x15 存 */ + { 0x7f, 0x55, 0x7f, 0x14, 0x5d, 0x7f, 0x55 }, /* 0x16 睡 */ + { 0x7f, 0x55, 0x7f, 0x7f, 0x55, 0x3d, 0x57 }, /* 0x17 眠 */ + { 0x7f, 0x55, 0x37, 0x78, 0x17, 0x45, 0x7f }, /* 0x18 閉 */ + { 0x7f, 0x2b, 0x7b, 0x28, 0x7b, 0x2b, 0x7f }, /* 0x19 開 */ + { 0x1e, 0x12, 0x12, 0x7f, 0x12, 0x12, 0x1e }, /* 0x1A 中 */ + { 0x7f, 0x41, 0x6b, 0x7f, 0x6b, 0x51, 0x7f }, /* 0x1B 国 */ + { 0x52, 0x5a, 0x57, 0x3a, 0x57, 0x5a, 0x52 }, /* 0x1C 英 */ + { 0x00, 0x7f, 0x49, 0x49, 0x49, 0x49, 0x7f }, /* 0x1D 日 */ + { 0x22, 0x12, 0x2a, 0x7f, 0x2a, 0x12, 0x22 }, /* 0x1E 本 */ +}; +/* + プリセット + 温度調節 + タイマー + コントロール + スクリーン + ブザー + 低電圧アラーム + 言語 + 戻る + 取り替える + キャリブレーション + 名前を変更 + 削除 + 追加 + 保存 + デフォルト + 睡眠 + ブースト + 保存 + 睡眠 + 閉じる + ブースト + 保存 + ダイレクト + PID + ビッグ + ニュース + 閉じる + 開く + いいえ、 + はい、 + 中国語 + 英語 + いいえ、 + はい、 + メインスクリーン + フリップ + 保存 + アバウト + 日本語 + + 汉字转换表:温度調節低電圧言語戻取替名前変更削除追加保存睡眠閉開中国英日本 +*/ +const char JP_0[] PROGMEM = { 0xf0, 0xcc, 0xdf, 0xb0, 0xb8, 0xbd, }; +const char JP_1[] PROGMEM = { 0xf2, 0x00, 0x01, 0x02, 0x03, }; +const char JP_2[] PROGMEM = { 0xf0, 0xb4, 0x99, 0xd3, 0xee, }; +const char JP_3[] PROGMEM = { 0xf0, 0xa8, 0xe8, 0xbd, 0xe2, 0xee, 0xe0, }; +const char JP_4[] PROGMEM = { 0xf0, 0xae, 0xa4, 0xdf, 0xee, 0xe8, }; +const char JP_5[] PROGMEM = { 0xf0, 0xcb, 0xab, 0xee, }; +const char JP_6[] PROGMEM = { 0xf2, 0x04, 0x05, 0x06, 0xf0, 0x97, 0xde, 0xee, 0xd5, }; +const char JP_7[] PROGMEM = { 0xf2, 0x07, 0x08, }; +const char JP_8[] PROGMEM = { 0xf2, 0x09, 0xf0, 0x8d, }; +const char JP_9[] PROGMEM = { 0xf2, 0x0a, 0xf0, 0x8c, 0xf2, 0x0b, 0xf0, 0x4a, 0x8d, }; +const char JP_10[] PROGMEM = { 0xf0, 0xa2, 0xd8, 0xdf, 0xcb, 0xe1, 0xee, 0xac, 0xdc, 0xe8, }; +const char JP_11[] PROGMEM = { 0xf2, 0x0c, 0x0d, 0xf0, 0x94, 0xf2, 0x0e, 0x0f, }; +const char JP_12[] PROGMEM = { 0xf2, 0x10, 0x11, }; +const char JP_13[] PROGMEM = { 0xf2, 0x12, 0x13, }; +const char JP_14[] PROGMEM = { 0xf2, 0x14, 0x15, }; +const char JP_15[] PROGMEM = { 0xf0, 0xbc, 0xca, 0x9e, 0xe0, 0xbd, }; +const char JP_16[] PROGMEM = { 0xf2, 0x16, 0x17, }; +const char JP_17[] PROGMEM = { 0xf0, 0xcb, 0xee, 0xae, 0xbd, }; +const char JP_18[] PROGMEM = { 0xf2, 0x14, 0x15, }; +const char JP_19[] PROGMEM = { 0xf2, 0x16, 0x17, }; +const char JP_20[] PROGMEM = { 0xf2, 0x18, 0xf0, 0x5a, 0x8d, }; +const char JP_21[] PROGMEM = { 0xf0, 0xcb, 0xee, 0xae, 0xbd, }; +const char JP_22[] PROGMEM = { 0xf2, 0x14, 0x15, }; +const char JP_23[] PROGMEM = { 0xf0, 0xb5, 0x99, 0xe1, 0xa4, 0xbd, }; +const char JP_24[] PROGMEM = { 0xf1, 0x30, 0x29, 0x24, }; +const char JP_25[] PROGMEM = { 0xf0, 0xc8, 0xb8, 0xa5, }; +const char JP_26[] PROGMEM = { 0xf0, 0xc0, 0xda, 0xee, 0xae, }; +const char JP_27[] PROGMEM = { 0xf2, 0x18, 0xf0, 0x5a, 0x8d, }; +const char JP_28[] PROGMEM = { 0xf2, 0x19, 0xf0, 0x51, }; +const char JP_29[] PROGMEM = { 0xf0, 0x46, 0x46, 0x4a, 0x01, }; +const char JP_30[] PROGMEM = { 0xf0, 0x71, 0x46, 0x01, }; +const char JP_31[] PROGMEM = { 0xf2, 0x1a, 0x1b, 0x08, }; +const char JP_32[] PROGMEM = { 0xf2, 0x1c, 0x08, }; +const char JP_33[] PROGMEM = { 0xf0, 0x46, 0x46, 0x4a, 0x01, }; +const char JP_34[] PROGMEM = { 0xf0, 0x71, 0x46, 0x01, }; +const char JP_35[] PROGMEM = { 0xf0, 0xd6, 0x99, 0xe8, 0xae, 0xa4, 0xdf, 0xee, 0xe8, }; +const char JP_36[] PROGMEM = { 0xf0, 0xca, 0xdf, 0xb8, 0xcc, }; +const char JP_37[] PROGMEM = { 0xf2, 0x14, 0x15, }; +const char JP_38[] PROGMEM = { 0xf0, 0x97, 0xc5, 0x9b, 0xbd, }; +const char JP_39[] PROGMEM = { 0xf2, 0x1d, 0x1e, 0x08, }; +const char *const JP_table[] = {JP_0, JP_1, JP_2, JP_3, JP_4, JP_5, JP_6, JP_7, JP_38, JP_8, JP_9, JP_10, JP_11, JP_12, JP_13, JP_14, JP_15, JP_16, JP_17, JP_18, JP_19, JP_20, JP_21, JP_22, JP_23, JP_24, JP_25, JP_26, JP_27, JP_28, JP_29, JP_30, JP_31, JP_32, JP_39, JP_33, JP_34, JP_35, JP_36, JP_37,}; +const char JP_Length_table[] PROGMEM = {6, 5, 5, 7, 6, 4, 9, 3 ,5, 4, 9, 10, 8, 3, 3, 3, 6, 3, 5, 3, 3, 5, 5, 3, 6, 4, 4, 5, 5, 4, 5, 4, 4, 3, 4, 5, 4, 9, 5, 3,}; + +bool lastbutton; +#include //注意 这里使用被阉割的图形库,只有绘图功能,并非通用的版本 +Arduboy2 arduboy; + +#include +#include +#include + +// Firmware version +#define VERSION "v1.7t3" + +// Type of rotary encoder +#define ROTARY_TYPE 1 // 0: 2 increments/step; 1: 4 increments/step + +// Pins +#define SENSOR_PIN A0 // temperature sense +#define VIN_PIN A1 // input voltage sense +#define BUZZER_PIN 5 // buzzer +#define BUTTON_PIN 6 // rotary encoder switch +#define ROTARY_1_PIN 7 // rotary encoder 1 +#define ROTARY_2_PIN 8 // rotary encoder 2 +#define CONTROL_PIN 9 // heater MOSFET PWM control +#define SWITCH_PIN 10 // handle vibration switch + +// Default temperature control values (recommended soldering temperature: 300-380°C) +#define ChipTempCalVal 330 //芯片内部温度读取校准值 -->可以根据实际情况修改,不同机器情况不同,通常误差在10°C内 +#define TEMP_MIN 150 // min selectable temperature +#define TEMP_MAX 400 // max selectable temperature +#define TEMP_DEFAULT 320 // default start setpoint +#define TEMP_SLEEP 150 // temperature in sleep mode +#define TEMP_BOOST 60 // temperature increase in boost mode +#define TEMP_STEP 10 // rotary encoder temp change steps + +// Default tip temperature calibration values +#define TEMP200 216 // temperature at ADC = 200 +#define TEMP280 308 // temperature at ADC = 280 +#define TEMP360 390 // temperature at ADC = 360 +#define TEMPCHP 30 // chip temperature while calibration +#define TIPMAX 8 // max number of tips +#define TIPNAMELENGTH 6 // max length of tip names (including termination) +#define TIPNAME "BC1.5" // default tip name + +// Default timer values (0 = disabled) +#define TIME2SLEEP 5 // time to enter sleep mode in minutes +#define TIME2OFF 15 // time to shut off heater in minutes +#define TIMEOFBOOST 40 // time to stay in boost mode in seconds + +// Control values +#define TIME2SETTLE 950 // time in microseconds to allow OpAmp output to settle +#define SMOOTHIE 0.05 // OpAmp output smooth factor (1=no smoothing; 0.05 default) +#define PID_ENABLE true // enable PID control +#define BEEP_ENABLE true // enable/disable buzzer +#define MAINSCREEN 1 // type of main screen (0: big numbers; 1: more infos) + +// EEPROM identifier +#define EEPROM_IDENT 0x08FF // to identify if EEPROM was written by this program + +//Beep +#define SetBeepCoolTime 200 +unsigned long BeepCoolTime; + +// Define the aggressive and conservative PID tuning parameters +double aggKp = 11, aggKi = 0.5, aggKd = 1; +double consKp = 11, consKi = 3, consKd = 5; + +// Default values that can be changed by the user and stored in the EEPROM +uint16_t DefaultTemp = TEMP_DEFAULT; +uint16_t SleepTemp = TEMP_SLEEP; +uint8_t BoostTemp = TEMP_BOOST; +uint8_t time2sleep = TIME2SLEEP; +uint8_t time2off = TIME2OFF; +uint8_t timeOfBoost = TIMEOFBOOST; +uint8_t MainScrType = MAINSCREEN; +bool PIDenable = PID_ENABLE; +bool beepEnable = BEEP_ENABLE; +// Default values for tips +uint16_t CalTemp[TIPMAX][4] = {TEMP200, TEMP280, TEMP360, TEMPCHP}; +char TipName[TIPMAX][TIPNAMELENGTH] = {TIPNAME}; +uint8_t CurrentTip = 0; +uint8_t NumberOfTips = 1; + +// Menu items +/* + 这个可以选择进行界面美化 + const char *DeleteMessage[] = { "Warning", "You cannot", "delete your", "last tip!" }; + const char *MaxTipMessage[] = { "Warning", "You reached", "maximum number", "of tips!" }; +*/ +// Variables for pin change interrupt +volatile uint8_t a0, b0, c0, d0; +volatile bool ab0; +volatile int count, countMin, countMax, countStep; +volatile bool handleMoved; + +// Variables for temperature control +uint16_t SetTemp, ShowTemp, gap, Step; +double Input, Output, Setpoint, RawTemp, CurrentTemp, ChipTemp; + +// Variables for voltage readings +uint16_t Vcc, Vin; + +// State variables +bool inSleepMode = false; +bool inOffMode = false; +bool inBoostMode = false; +bool inCalibMode = false; +bool isWorky = true; +bool beepIfWorky = true; +bool TipIsPresent = true; +bool FlipState = false; +// Timing variables +uint32_t sleepmillis; +uint32_t boostmillis; +uint32_t buttonmillis; +uint8_t goneMinutes; +uint8_t goneSeconds; +uint8_t SensorCounter = 255; +//串口助手 +int x, y, a, b; +//欠压报警 +byte UnderVoltage = 0; +// Control variables +uint16_t time2settle = 300; + +//模拟数字滚轮 Numerical scrolling effect +int Value; +int LastValue[3]; +float SlidingAnimationY[3]; + +// Specify the links and initial PID tuning parameters +PID ctrl(&Input, &Output, &Setpoint, aggKp, aggKi, aggKd, REVERSE); + + + +//LANG 语言支持 +/* 0 - 中文 CHINESE + 1 - 英文 ENGLISH + 2 - 日语 +*/ +byte LANG = 1; +void Flip(bool Fmode) { + arduboy.flipVertical(Fmode); + arduboy.flipHorizontal(Fmode); +} +void setup() { + arduboy.begin(); + arduboy.setFrameRate(30); + + //Serial.begin(115200); + // set the pin modes + pinMode(SENSOR_PIN, INPUT); + pinMode(VIN_PIN, INPUT); + pinMode(BUZZER_PIN, OUTPUT); + pinMode(CONTROL_PIN, OUTPUT); + pinMode(ROTARY_1_PIN, INPUT_PULLUP); + pinMode(ROTARY_2_PIN, INPUT_PULLUP); + pinMode(BUTTON_PIN, INPUT_PULLUP); + pinMode(SWITCH_PIN, INPUT_PULLUP); + + analogWrite(CONTROL_PIN, 255); // this shuts off the heater + digitalWrite(BUZZER_PIN, LOW); // must be LOW when buzzer not in use + + // setup ADC + ADCSRA |= bit (ADPS0) | bit (ADPS1) | bit (ADPS2); // set ADC prescaler to 128 + ADCSRA |= bit (ADIE); // enable ADC interrupt + interrupts (); // enable global interrupts + + // setup pin change interrupt for rotary encoder + PCMSK0 = bit (PCINT0); // Configure pin change interrupt on Pin8 + PCICR = bit (PCIE0); // Enable pin change interrupt + PCIFR = bit (PCIF0); // Clear interrupt flag + + + // get default values from EEPROM + getEEPROM(); + //设置屏幕反转状态 + Flip(FlipState); + // read supply voltages in mV + Vcc = getVCC(); Vin = getVIN(); + + // read and set current iron temperature + SetTemp = DefaultTemp; + RawTemp = denoiseAnalog(SENSOR_PIN); + ChipTemp = getChipTemp(); + calculateTemp(); + + // turn on heater if iron temperature is well below setpoint + if ((CurrentTemp + 20) < DefaultTemp) analogWrite(CONTROL_PIN, 0); + + // tell the PID to range between 0 and the full window size + ctrl.SetOutputLimits(0, 255); + + // start PID + ctrl.SetMode(AUTOMATIC); + + // set initial rotary encoder values + a0 = PINB & 1; b0 = PIND >> 7 & 1; ab0 = (a0 == b0); + setRotary(TEMP_MIN, TEMP_MAX, TEMP_STEP, DefaultTemp); + + // reset sleep timer + sleepmillis = millis(); + + // long beep for setup completion + beep(); beep(); + + +} + + +void loop() { + //HelpMeSerialer(); + ROTARYCheck(); // check rotary encoder (temp/boost setting, enter setup menu) + SLEEPCheck(); // check and activate/deactivate sleep modes + SENSORCheck(); // reads temperature and vibration switch of the iron + Thermostat(); // heater control + MainScreen(); // updates the main page on the OLED + //beep(0); +} + + + + +// check rotary encoder; set temperature, toggle boost mode, enter setup menu accordingly +void ROTARYCheck() { + // set working temperature according to rotary encoder value + SetTemp = getRotary(); + + // check rotary encoder switch + uint8_t c = digitalRead(BUTTON_PIN); + if ( !c && c0 ) { + beep(); + buttonmillis = millis(); + while ( (!digitalRead(BUTTON_PIN)) && ((millis() - buttonmillis) < 500) ); + if ((millis() - buttonmillis) >= 500) SetupScreen(); + else { + inBoostMode = !inBoostMode; + if (inBoostMode) boostmillis = millis(); + handleMoved = true; + } + } + c0 = c; + + // check timer when in boost mode + if (inBoostMode && timeOfBoost) { + goneSeconds = (millis() - boostmillis) / 1000; + if (goneSeconds >= timeOfBoost) { + inBoostMode = false; // stop boost mode + beep(); // beep if boost mode is over + beepIfWorky = true; // beep again when working temperature is reached + } + } +} + + +// check and activate/deactivate sleep modes +void SLEEPCheck() { + if (handleMoved) { // if handle was moved + if (inSleepMode) { // in sleep or off mode? + if ((CurrentTemp + 20) < SetTemp) // if temp is well below setpoint + analogWrite(CONTROL_PIN, 0); // then start the heater right now + beep(); // beep on wake-up + beepIfWorky = true; // beep again when working temperature is reached + } + handleMoved = false; // reset handleMoved flag + inSleepMode = false; // reset sleep flag + inOffMode = false; // reset off flag + sleepmillis = millis(); // reset sleep timer + } + + // check time passed since the handle was moved + goneMinutes = (millis() - sleepmillis) / 60000; + if ( (!inSleepMode) && (time2sleep > 0) && (goneMinutes >= time2sleep) ) { + inSleepMode = true; + beep(); + } + if ( (!inOffMode) && (time2off > 0) && (goneMinutes >= time2off ) ) { + inOffMode = true; + beep(); + } +} + + +// reads temperature, vibration switch and supply voltages +void SENSORCheck() { + analogWrite(CONTROL_PIN, 255); // shut off heater in order to measure temperature + delayMicroseconds(time2settle); // wait for voltage to settle + + uint16_t temp = denoiseAnalog(SENSOR_PIN); // read ADC value for temperature + uint8_t d = digitalRead(SWITCH_PIN); // check handle vibration switch + if (d != d0) { + handleMoved = true; // set flag if handle was moved + d0 = d; + } + if (! SensorCounter--) Vin = getVIN(); // get Vin every now and then + + analogWrite(CONTROL_PIN, Output); // turn on again heater + + RawTemp += (temp - RawTemp) * SMOOTHIE; // stabilize ADC temperature reading + calculateTemp(); + + // stabilize displayed temperature when around setpoint + if ((ShowTemp != Setpoint) || (abs(ShowTemp - CurrentTemp) > 5)) ShowTemp = CurrentTemp; + + // set state variable if temperature is in working range; beep if working temperature was just reached + gap = abs(SetTemp - CurrentTemp); + if (gap < 5) { + if (!isWorky && beepIfWorky) beep(); + isWorky = true; + beepIfWorky = false; + } + else isWorky = false; + // checks if tip is present or currently inserted + if (ShowTemp > 500) TipIsPresent = false; // tip removed ? + if (!TipIsPresent && (ShowTemp < 500)) { // new tip inserted ? + analogWrite(CONTROL_PIN, 255); // shut off heater + beep(); // beep for info + TipIsPresent = true; // tip is present now + ChangeTipScreen(); // show tip selection screen + updateEEPROM(); // update setting in EEPROM + handleMoved = true; // reset all timers + RawTemp = denoiseAnalog(SENSOR_PIN); // restart temp smooth algorithm + c0 = LOW; // switch must be released + setRotary(TEMP_MIN, TEMP_MAX, TEMP_STEP, SetTemp); // reset rotary encoder + } +} + + +// calculates real temperature value according to ADC reading and calibration values +void calculateTemp() { + if (RawTemp < 200) CurrentTemp = map (RawTemp, 0, 200, 21, CalTemp[CurrentTip][0]); + else if (RawTemp < 280) CurrentTemp = map (RawTemp, 200, 280, CalTemp[CurrentTip][0], CalTemp[CurrentTip][1]); + else CurrentTemp = map (RawTemp, 280, 360, CalTemp[CurrentTip][1], CalTemp[CurrentTip][2]); +} + + +//调温 +void Thermostat() { + // define Setpoint acoording to current working mode + if (inOffMode) Setpoint = 0; + else if (inSleepMode) Setpoint = SleepTemp; + else if (inBoostMode) Setpoint = SetTemp + BoostTemp; + else Setpoint = SetTemp; + + // control the heater (PID or direct) + gap = abs(Setpoint - CurrentTemp); + if (PIDenable) { + Input = CurrentTemp; + if (gap < 30) ctrl.SetTunings(consKp, consKi, consKd); + else ctrl.SetTunings(aggKp, aggKi, aggKd); + ctrl.Compute(); + } else { + // turn on heater if current temperature is below setpoint + if ((CurrentTemp + 0.5) < Setpoint) Output = 0; else Output = 255; + } + analogWrite(CONTROL_PIN, Output); // set heater PWM +} + + +// creates a short beep on the buzzer +void beep() { + /* + if (beepEnable) { + if (BeepCoolTime + SetBeepCoolTime < millis()) { + if (state) BeepCoolTime = millis(); + analogWrite(BUZZER_PIN, 0); + } else analogWrite(BUZZER_PIN, 127); + } else analogWrite(BUZZER_PIN, 0); + */ + //体谅一下,没内存了,只能用原始的办法驱动无源蜂鸣器,否则我也不想牺牲宝贵响应资源换内存 + if (beepEnable) { + for (uint8_t i = 0; i < 255; i++) { + digitalWrite(BUZZER_PIN, HIGH); + delayMicroseconds(125); + digitalWrite(BUZZER_PIN, LOW); + delayMicroseconds(125); + } + } +} + +//设置旋转编码器的起始值 +// sets start values for rotary encoder +void setRotary(int rmin, int rmax, int rstep, int rvalue) { + countMin = rmin << ROTARY_TYPE; + countMax = rmax << ROTARY_TYPE; + countStep = rstep; + count = rvalue << ROTARY_TYPE; +} + + +// reads current rotary encoder value +int getRotary() { + return (count >> ROTARY_TYPE); +} + + +// reads user settings from EEPROM; if EEPROM values are invalid, write defaults +void getEEPROM() { + uint16_t identifier = (EEPROM.read(0) << 8) | EEPROM.read(1); + if (identifier == EEPROM_IDENT) { + DefaultTemp = (EEPROM.read(2) << 8) | EEPROM.read(3); + SleepTemp = (EEPROM.read(4) << 8) | EEPROM.read(5); + BoostTemp = EEPROM.read(6); + time2sleep = EEPROM.read(7); + time2off = EEPROM.read(8); + timeOfBoost = EEPROM.read(9); + MainScrType = EEPROM.read(10); + PIDenable = EEPROM.read(11); + beepEnable = EEPROM.read(12); + CurrentTip = EEPROM.read(13); + NumberOfTips = EEPROM.read(14); + LANG = EEPROM.read(15); + FlipState = EEPROM.read(16); + UnderVoltage = EEPROM.read(17); + uint8_t i, j; + uint16_t counter = 18; + for (i = 0; i < NumberOfTips; i++) { + for (j = 0; j < TIPNAMELENGTH; j++) { + TipName[i][j] = EEPROM.read(counter++); + } + for (j = 0; j < 4; j++) { + CalTemp[i][j] = EEPROM.read(counter++) << 8; + CalTemp[i][j] |= EEPROM.read(counter++); + } + } + } + else { + EEPROM.update(0, EEPROM_IDENT >> 8); EEPROM.update(1, EEPROM_IDENT & 0xFF); + updateEEPROM(); + } +} + + +// writes user settings to EEPROM using updade function to minimize write cycles +void updateEEPROM() { + EEPROM.update( 2, DefaultTemp >> 8); + EEPROM.update( 3, DefaultTemp & 0xFF); + EEPROM.update( 4, SleepTemp >> 8); + EEPROM.update( 5, SleepTemp & 0xFF); + EEPROM.update( 6, BoostTemp); + EEPROM.update( 7, time2sleep); + EEPROM.update( 8, time2off); + EEPROM.update( 9, timeOfBoost); + EEPROM.update(10, MainScrType); + EEPROM.update(11, PIDenable); + EEPROM.update(12, beepEnable); + EEPROM.update(13, CurrentTip); + EEPROM.update(14, NumberOfTips); + EEPROM.update(15, LANG); + EEPROM.update(16, FlipState); + EEPROM.update(17, UnderVoltage); + uint8_t i, j; + uint16_t counter = 18; + for (i = 0; i < NumberOfTips; i++) { + for (j = 0; j < TIPNAMELENGTH; j++) EEPROM.update(counter++, TipName[i][j]); + for (j = 0; j < 4; j++) { + EEPROM.update(counter++, CalTemp[i][j] >> 8); + EEPROM.update(counter++, CalTemp[i][j] & 0xFF); + } + } +} +//此片段用于DEBUG +void HelpMeSerialer() { + //串口助手 + if (Serial.available()) { + char TmpChar = Serial.read(); + switch (TmpChar) { + case 'x': x = Serial.parseInt(); + case 'y': y = Serial.parseInt(); + case 'a': a = Serial.parseInt(); + case 'b': b = Serial.parseInt(); + } + } + /* + Serial.println(String("X ->") + x); + Serial.println(String("Y ->") + y); + Serial.println(String("A ->") + a); + Serial.println(String("B ->") + b); + */ +} +// draws the main screen +void MainScreen() { + if (!(arduboy.nextFrame())) //帧率锁 + return; + byte SysState; + if (MainScrType) { + arduboy.clear(); + //详细信息页 + arduboy.fillRect(0, 0, 128, 64, 1); //白底 + arduboy.setTextSize(1); + SetTextColor(0); + //预设名 + arduboy.drawSlowXYBitmap(0, 0, Tag, 16, 16, 0); + arduboy.setCursor(19, 4); arduboy.print(TipName[CurrentTip]); + //状态显示 + if (ShowTemp > 500) SysState = 0; + else if (inOffMode) SysState = 1; + else if (inSleepMode) SysState = 2; + else if (inBoostMode) SysState = 3; + else if (isWorky) SysState = 4; + else if (Output < 180) SysState = 5; + else SysState = 6; + //显示状态 + arduboy.setCursor(53, 1); + arduboy.setTextSize(2); + switch (LANG) { + case 0: arduboy.drawSlowXYBitmap(80, 1, S_table[SysState], 28, 14, 0); break; //中文 Chinese + default: //英文 English + switch (SysState) { + case 1: arduboy.print(F("OFF")); break; + case 2: arduboy.print(F("SLEEP")); break; + case 3: arduboy.print(F("BOOST")); break; + case 4: arduboy.print(F("WORKY")); break; + case 5: arduboy.print(F("HEAT")); break; + case 6: arduboy.print(F("HOLD")); break; + default: arduboy.print(F("ERROR")); break; + } break; + } + arduboy.drawSlowXYBitmap(113, 1, C_table[SysState], 14, 14, 0); + arduboy.setTextSize(1); + //芯片 + //R1 + if (getChipTemp() > 80 && ((millis() * 4) / 1000) % 2) beep(); else arduboy.drawSlowXYBitmap(2, 18, Chip, 14, 14, 0); + + //R2 + if ((float)Vin / 100 < UnderVoltage && ((millis() * 4) / 1000) % 2) beep(); else arduboy.drawSlowXYBitmap(2, 34, Lightning, 14, 14, 0); + //R3 + arduboy.setCursor(19, 16); arduboy.print(getChipTemp(), 1); arduboy.print((char)248); arduboy.print(F("C")); //芯片温度 + arduboy.setCursor(19, 24); arduboy.print((float)getVCC() / 1000, 2); arduboy.print(F("V")); //芯片电压 + arduboy.setCursor(19, 32); arduboy.print((float)Vin / 1000, 1); arduboy.print(F("V")); //输入电压 + arduboy.setCursor(19, 40); arduboy.print(F(VERSION)); //固件 + //显示探头温度 + arduboy.setCursor(57, 18); + arduboy.setTextSize(4); + if (ShowTemp > 500) arduboy.print(F("000")); else arduboy.print(ShowTemp); + arduboy.drawRect(55, 16, 72, 32, 0); + + DrawStatusBar(0); + arduboy.display(); + } else { + arduboy.clear(); + if (getChipTemp() > 80 && ((millis() * 4) / 1000) % 2) beep(); + if ((float)Vin / 100 < UnderVoltage && ((millis() * 4) / 1000) % 2) beep(); + if (ShowTemp > 500) DisplayNum(999); else DisplayNum(ShowTemp); + arduboy.fillRect(0, 48, 128, 3, 0); + DrawStatusBar(1); + arduboy.display(); + } + +} + +void DrawStatusBar(bool color) { + SetTextColor(color); + arduboy.setTextSize(1); + //温度条 + //框 + arduboy.drawRect(1, 49, 102, 14, color); + //条 + if (ShowTemp <= 500) arduboy.fillRect(1, 49, map(ShowTemp, 0, 500, 2, 102), 14, color); + //指示部分 + arduboy.fillRect(map(Setpoint, 0, 500, 2, 102) - 2, 50, 3, 13, color); + //先来个白底 + arduboy.fillRect(map(Setpoint, 0, 500, 2, 102) - 3, 60, 5, 4, color); + arduboy.drawLine(map(Setpoint, 0, 500, 2, 102) - 1, 60, map(Setpoint, 0, 500, 2, 102) - 1, 49, !color); + + //画指示针 + arduboy.drawSlowXYBitmap(map(Setpoint, 0, 500, 2, 102) - 3, 59, Pointer, 5, 4, !color); + + //功率条 + arduboy.drawRect(104, 49, 23, 14, color); + arduboy.fillRect(104, 49, map(Output, 255, 0, 0, 23), 14, color); + + SetTextColor(!color); + //////////////进入反色//////////////////////////////// + arduboy.setCursor(2, 55); arduboy.print(Setpoint, 0); arduboy.print((char)248); arduboy.print(F("C")); //探头预设温度 + arduboy.setCursor(105, 55); arduboy.print(map(Output, 255, 0, 0, 100)); arduboy.print(F("%")); //功率百分比 + SetTextColor(color); +} + +//设置画笔颜色 +void SetTextColor(bool color) { + arduboy.setTextBackground(!color); + arduboy.setTextColor(color); +} +// setup screen +void SetupScreen() { + analogWrite(CONTROL_PIN, 255); // shut off heater + beep(); + uint16_t SaveSetTemp = SetTemp; + uint8_t selection = 0; + bool repeat = true; + + while (repeat) { + MenuLevel = 0; //默认打开主菜单 + selection = MenuScreen(selection); + switch (selection) { + case 0: MenuLevel = 1; TipScreen(); repeat = false; break; + case 1: MenuLevel = 2; TempScreen(); break; + case 2: MenuLevel = 3; TimerScreen(); break; + case 3: MenuLevel = 4; PIDenable = MenuScreen(PIDenable); break; + case 4: MenuLevel = 10; ScreenSet(); break; + case 5: MenuLevel = 6; beepEnable = MenuScreen(beepEnable); break; + case 6: UnderVoltageSet(); break; + case 7: MenuLevel = 8; LANG = MenuScreen(LANG); break; + case 8: QRcodeScreen(); break; + default: repeat = false; break; + } + } + updateEEPROM(); + handleMoved = true; + SetTemp = SaveSetTemp; + setRotary(TEMP_MIN, TEMP_MAX, TEMP_STEP, SetTemp); +} + + +//显示设置菜单 +// tip settings screen +void ScreenSet() { + uint8_t selection = 0; + bool repeat = true; + while (repeat) { + MenuLevel = 10; + selection = MenuScreen(selection); + switch (selection) { + case 0: MenuLevel = 5; MainScrType = MenuScreen(MainScrType); break; + case 1: MenuLevel = 9; FlipState = MenuScreen(FlipState); break; + default: repeat = false; break; + } + Flip(FlipState); //设置屏幕反转状态 + } + updateEEPROM(); +} + +//预设设置菜单 +// tip settings screen +void TipScreen() { + uint8_t selection = 0; + bool repeat = true; + while (repeat) { + MenuLevel = 1; + selection = MenuScreen(selection); + switch (selection) { + case 0: ChangeTipScreen(); break; + case 1: CalibrationScreen(); break; + case 2: InputNameScreen(); break; + case 3: DeleteTipScreen(); break; + case 4: AddTipScreen(); break; + default: repeat = false; break; + } + } +} + +//温控设置菜单 +// temperature settings screen +void TempScreen() { + uint8_t selection = 0; + bool repeat = true; + while (repeat) { + selection = MenuScreen(selection); + switch (selection) { + case 0: setRotary(TEMP_MIN, TEMP_MAX, TEMP_STEP, DefaultTemp); + DefaultTemp = InputScreen(); break; + case 1: setRotary(20, 200, TEMP_STEP, SleepTemp); + SleepTemp = InputScreen(); break; + case 2: setRotary(10, 100, TEMP_STEP, BoostTemp); + BoostTemp = InputScreen(); break; + default: repeat = false; break; + } + } + updateEEPROM(); +} + +//定时器设置菜单 +// timer settings screen +void TimerScreen() { + uint8_t selection = 0; + bool repeat = true; + while (repeat) { + selection = MenuScreen(selection); + switch (selection) { + case 0: setRotary(0, 30, 1, time2sleep); + time2sleep = InputScreen(); break; + case 1: setRotary(0, 60, 5, time2off); + time2off = InputScreen(); break; + case 2: setRotary(0, 180, 10, timeOfBoost); + timeOfBoost = InputScreen(); break; + default: repeat = false; break; + } + } + updateEEPROM(); +} +//英语支持 +void Print_EN(byte i) { + char buffer[11]; + strcpy_P(buffer, (char *)pgm_read_word(&(EN_table[i]))); + arduboy.print(buffer); +} +//菜单界面 +// menu screen +uint8_t MenuScreen(uint8_t selected) { + int SlidingAnimationX; + uint8_t lastselected = selected; + setRotary(0, Menu_table[MenuLevel] - 1, 1, selected); + lastbutton = (!digitalRead(BUTTON_PIN)); + SetTextColor(1); + do { + selected = getRotary(); + //非线性滑动动画 + SlidingAnimationX += (selected - lastselected) * 56; + if (SlidingAnimationX != 0) SlidingAnimationX += 0.6 * (-SlidingAnimationX); + lastselected = selected; + arduboy.clear(); + //绘制图标 如果有指定的话 + for (byte i = 0; i < 5; i++) if (selected - 2 + i >= 0 && selected - 2 + i < Menu_table[MenuLevel]) { + DrawUIFrame(-72 + i * 56 + SlidingAnimationX, 0, 1); + drawSlowXYBitmapResize(-72 + i * 56 + SlidingAnimationX + 3, 3, Ico_table[selected - 2 + i + QueryMenuObject()], 14, 14, 3, 1); + } + + + if (LANG == 0) arduboy.drawSlowXYBitmap(48, 48, CN_table[selected + QueryMenuObject()], 36, 16, 1); else if (LANG == 2) { + drawText(48, 52, JP_table[selected + QueryMenuObject()], pgm_read_byte(&(JP_Length_table[selected + QueryMenuObject()]))); + } else { + arduboy.setCursor(48, 49); + arduboy.setTextSize(1); + Print_EN(selected + QueryMenuObject()); + } + + + arduboy.display(); + CheckLastButton(); + //beep(0); + } while (digitalRead(BUTTON_PIN) || lastbutton); + beep(); + return selected; +} +void DrawUIFrame(int x, int y, bool color) { + arduboy.fillRect(x, y, 48, 48, color); + arduboy.fillRect(x + 3, y + 3, 42, 42, !color); //雕空 + DrawPoint(x, y, 0); + DrawPoint(x + 47, y, 0); + DrawPoint(x, y + 47, 0); + DrawPoint(x + 47, y + 47, 0); +} +void DrawPoint(int x, int y, bool color) { + arduboy.drawPixel(x + 1, y, color); + arduboy.drawPixel(x - 1, y, color); + arduboy.drawPixel(x, y + 1, color); + arduboy.drawPixel(x, y - 1, color); + arduboy.drawPixel(x, y, color); +} +//检查按键 +void CheckLastButton() { + if (lastbutton && digitalRead(BUTTON_PIN)) { + delay(10); + lastbutton = false; + } +} +//返回对应层数的对象数 +byte QueryMenuObject() { + int SUM = 0; + for (int i = 0; i < (MenuLevel); i++) SUM += Menu_table[i]; + return SUM; +} +//信息窗 +/* + void MessageScreen(const char *Items[], uint8_t numberOfItems) { + lastbutton = (!digitalRead(BUTTON_PIN)); + + //u8g.setFont(//u8g_font_9x15); + //u8g.setFontPosTop(); + for (uint8_t i = 0; i < numberOfItems; i++) //u8g.drawStr( 0, i * 16, Items[i]); + + do { + CheckLastButton(); + } while (digitalRead(BUTTON_PIN) || lastbutton); + beep(); + } +*/ +/* + 好看是好看,但是浪费内存 + int wav(byte wavi, int num) { + return (wavi + byte(millis() / 100)) * (float(float(num - countMin) / float(countMax - countMin)) - 0.5) * 5; + } +*/ + +//模拟数字滚轮 Numerical scrolling effect +void DisplayNum(int Num) { + arduboy.setTextSize(6); + SetTextColor(0); + //数字滚轮 + for (byte i = 0; i < 3; i++) LastValue[i] = int(Value/pow(10,2-i))%10; + Value = Num; + for (byte i = 0; i < 3; i++) { + SlidingAnimationY[i] += ((int(Value/pow(10,2-i))%10) - LastValue[i]) * 50; + if (SlidingAnimationY[i] != 0) SlidingAnimationY[i] += 0.8 * (-SlidingAnimationY[i]); + arduboy.fillRect(0 + i * 44, 0, 38, 50, 1); //白底 + for (int ii = -1; ii < 2; ii++) { + arduboy.setCursor(4 + i * 44, 4 - SlidingAnimationY[i] + ii * 50); + arduboy.print(LastValue[i] + ii); + } + } + //刻度标 + arduboy.fillRect(0, 0, 128, 2, 0); //上遮罩层 + arduboy.fillRect(0, 51, 128, 13, 0); //下遮罩层 +} + +//数值输入界面 +// input value screen +uint16_t InputScreen() { + lastbutton = (!digitalRead(BUTTON_PIN)); + do { + arduboy.clear(); + DisplayNum(getRotary()); + arduboy.display(); + CheckLastButton(); + } while (digitalRead(BUTTON_PIN) || lastbutton); + beep(); + return Value; +} +void QRcodeScreen() { + arduboy.clear(); + arduboy.drawSlowXYBitmap(40, 0, QRCode, 48, 48, 1); + arduboy.display(); + delay(100); + do { + } while (digitalRead(BUTTON_PIN) || lastbutton); + beep(); +} +//欠压报警设置 +// information display screen +void UnderVoltageSet() { + setRotary(0, 250, 1, UnderVoltage); + UnderVoltage = InputScreen(); + beep(); +} + +//更换预设界面 +// change tip screen +void ChangeTipScreen() { + uint8_t selected = CurrentTip; + uint8_t lastselected = selected; + int8_t arrow = 0; + if (selected) arrow = 1; + setRotary(0, NumberOfTips - 1, 1, selected); + lastbutton = (!digitalRead(BUTTON_PIN)); + do { + //beep(0); + arduboy.clear(); + selected = getRotary(); + arrow = constrain(arrow + selected - lastselected, 0, 2); + lastselected = selected; + SetTextColor(0); + arduboy.setTextSize(2); + arduboy.setCursor(0, 0); arduboy.print(F("Select Tip")); + SetTextColor(1); + arduboy.setCursor(0, 16 * (arrow + 1)); arduboy.print(F(">")); + for (uint8_t i = 0; i < 3; i++) { + uint8_t drawnumber = selected + i - arrow; + if (drawnumber < NumberOfTips) { + arduboy.setCursor(12, 16 * (i + 1)); arduboy.print(TipName[selected + i - arrow]); + } + } + CheckLastButton(); + arduboy.display(); + } while (digitalRead(BUTTON_PIN) || lastbutton); + + beep(); + CurrentTip = selected; +} + +//温度校准界面 +// temperature calibration screen +void CalibrationScreen() { + uint16_t CalTempNew[4]; + for (uint8_t CalStep = 0; CalStep < 3; CalStep++) { + SetTemp = CalTemp[CurrentTip][CalStep]; + setRotary(100, 500, 1, SetTemp); + beepIfWorky = true; + lastbutton = (!digitalRead(BUTTON_PIN)); + do { + arduboy.clear(); + arduboy.setTextSize(2); + SENSORCheck(); // reads temperature and vibration switch of the iron + Thermostat(); // heater control + arduboy.setCursor(0, 0); arduboy.print(F("Step: ")); arduboy.print(CalStep + 1); arduboy.print("/3"); + if (isWorky) { + arduboy.setCursor(0, 16); arduboy.print(F("Set measured")); + arduboy.setCursor(0, 32); arduboy.print(F("temp: ")); arduboy.print(getRotary()); + } else { + arduboy.setCursor(0, 16); arduboy.print(F("ADC: ")); arduboy.print(uint16_t(RawTemp)); + arduboy.setCursor(0, 32); arduboy.print(F("Please wait")); + } + CheckLastButton(); + arduboy.display(); + } while (digitalRead(BUTTON_PIN) || lastbutton); + + CalTempNew[CalStep] = getRotary(); + beep(); delay (10); + } + + analogWrite(CONTROL_PIN, 255); // shut off heater + delayMicroseconds(time2settle); // wait for voltage to settle + CalTempNew[3] = getChipTemp(); // read chip temperature + if ((CalTempNew[0] + 30 < CalTempNew[1]) && (CalTempNew[1] + 30 < CalTempNew[2])) { + MenuLevel = 7; + if (MenuScreen(0)) { + for (uint8_t i = 0; i < 4; i++) CalTemp[CurrentTip][i] = CalTempNew[i]; + } + } +} + +//命名界面 文本输入界面 +// input tip name screen +void InputNameScreen() { + uint8_t value; + for (uint8_t digit = 0; digit < (TIPNAMELENGTH - 1); digit++) { + lastbutton = (!digitalRead(BUTTON_PIN)); + setRotary(31, 96, 1, 65); + do { + value = getRotary(); + if (value == 31) { + value = 95; + setRotary(31, 96, 1, 95); + } + if (value == 96) { + value = 32; + setRotary(31, 96, 1, 32); + } + //arduboy.setCursor(0, 0);arduboy.print(); + arduboy.clear(); + arduboy.setTextSize(2); + arduboy.setCursor(16 * digit, 48); arduboy.print(char(94)); + arduboy.setCursor(0, 32); + for (uint8_t i = 0; i < digit; i++) arduboy.print(TipName[CurrentTip][i]); + arduboy.setCursor(16 * digit, 32); arduboy.print(char(value)); + CheckLastButton(); + arduboy.display(); + } while (digitalRead(BUTTON_PIN) || lastbutton); + TipName[CurrentTip][digit] = value; + beep(); delay (10); + } + TipName[CurrentTip][TIPNAMELENGTH - 1] = 0; + return value; +} + + +// delete tip screen +void DeleteTipScreen() { + MenuLevel = 7; + if (NumberOfTips == 1) { + //MessageScreen(DeleteMessage, sizeof(DeleteMessage)); + } + else if (MenuScreen(0)) { + if (CurrentTip == (NumberOfTips - 1)) { + CurrentTip--; + } + else { + for (uint8_t i = CurrentTip; i < (NumberOfTips - 1); i++) { + for (uint8_t j = 0; j < TIPNAMELENGTH; j++) TipName[i][j] = TipName[i + 1][j]; + for (uint8_t j = 0; j < 4; j++) CalTemp[i][j] = CalTemp[i + 1][j]; + } + } + NumberOfTips--; + } +} + + +// add new tip screen +void AddTipScreen() { + if (NumberOfTips < TIPMAX) { + CurrentTip = NumberOfTips++; InputNameScreen(); + CalTemp[CurrentTip][0] = TEMP200; CalTemp[CurrentTip][1] = TEMP280; + CalTemp[CurrentTip][2] = TEMP360; CalTemp[CurrentTip][3] = TEMPCHP; + } //MessageScreen(MaxTipMessage, sizeof(MaxTipMessage)); 信息窗 +} + + +// average several ADC readings in sleep mode to denoise +uint16_t denoiseAnalog (byte port) { + uint16_t result = 0; + ADCSRA |= bit (ADEN) | bit (ADIF); // enable ADC, turn off any pending interrupt + if (port >= A0) port -= A0; // set port and + ADMUX = (0x0F & port) | bit(REFS0); // reference to AVcc + set_sleep_mode (SLEEP_MODE_ADC); // sleep during sample for noise reduction + for (uint8_t i = 0; i < 32; i++) { // get 32 readings + sleep_mode(); // go to sleep while taking ADC sample + while (bitRead(ADCSRA, ADSC)); // make sure sampling is completed + result += ADC; // add them up + } + bitClear (ADCSRA, ADEN); // disable ADC + return (result >> 5); // devide by 32 and return value +} + +//读取芯片温度 +// get internal temperature by reading ADC channel 8 against 1.1V reference +double getChipTemp() { + unsigned int wADC; + double t; + ADMUX = (_BV(REFS1) | _BV(REFS0) | _BV(MUX3)); + ADCSRA |= _BV(ADEN); + delay(5); + ADCSRA |= _BV(ADSC); + while (bit_is_set(ADCSRA, ADSC)); + wADC = ADCW; + t = (wADC - ChipTempCalVal ) / 1.22; + return (t); +} + +/* + // get internal temperature by reading ADC channel 8 against 1.1V reference + double getChipTemp() { + uint16_t result = 0; + ADCSRA |= bit (ADEN) | bit (ADIF); // enable ADC, turn off any pending interrupt + ADMUX = bit (REFS1) | bit (REFS0) | bit (MUX3); // set reference and mux + delay(20); // wait for voltages to settle + set_sleep_mode (SLEEP_MODE_ADC); // sleep during sample for noise reduction + for (uint8_t i = 0; i < 32; i++) { // get 32 readings + sleep_mode(); // go to sleep while taking ADC sample + while (bitRead(ADCSRA, ADSC)); // make sure sampling is completed + result += ADC; // add them up + } + bitClear (ADCSRA, ADEN); // disable ADC + result >>= 2; // devide by 4 + return ((result - 2594) / 9.76); // calculate internal temperature in degrees C + } +*/ +// get input voltage in mV by reading 1.1V reference against AVcc +uint16_t getVCC() { + uint16_t result = 0; + ADCSRA |= bit (ADEN) | bit (ADIF); // enable ADC, turn off any pending interrupt + // set Vcc measurement against 1.1V reference + ADMUX = bit (REFS0) | bit (MUX3) | bit (MUX2) | bit (MUX1); + delay(1); // wait for voltages to settle + set_sleep_mode (SLEEP_MODE_ADC); // sleep during sample for noise reduction + for (uint8_t i = 0; i < 16; i++) { // get 16 readings + sleep_mode(); // go to sleep while taking ADC sample + while (bitRead(ADCSRA, ADSC)); // make sure sampling is completed + result += ADC; // add them up + } + bitClear (ADCSRA, ADEN); // disable ADC + result >>= 4; // devide by 16 + return (1125300L / result); // 1125300 = 1.1 * 1023 * 1000 +} + + +// get supply voltage in mV +uint16_t getVIN() { + long result; + result = denoiseAnalog (VIN_PIN); // read supply voltage via voltage divider + return (result * Vcc / 179.474); // 179.474 = 1023 * R13 / (R12 + R13) +} + +//ADC中断服务 +// ADC interrupt service routine +EMPTY_INTERRUPT (ADC_vect); // nothing to be done here + +//旋转编码器触发中断 +// Pin change interrupt service routine for rotary encoder +ISR (PCINT0_vect) { + uint8_t a = PINB & 1; + uint8_t b = PIND >> 7 & 1; + if (a != a0) { // A changed + a0 = a; + if (b != b0) { // B changed + b0 = b; + count = constrain(count + ((a == b) ? countStep : -countStep), countMin, countMax); + if (ROTARY_TYPE && ((a == b) != ab0)) { + count = constrain(count + ((a == b) ? countStep : -countStep), countMin, countMax);; + } + ab0 = (a == b); + handleMoved = true; + } + } +} + +//显示位图,并允许放大 代码片段改自arduboy2 +void drawSlowXYBitmapResize(int x, int y, const uint8_t *bitmap, uint8_t w, uint8_t h, uint8_t size, uint8_t color) { + // no need to draw at all of we're offscreen + /* + if (x + w < 0 || x > WIDTH - 1 || y + h < 0 || y > HEIGHT - 1) + return; + */ + int16_t xi, yi, byteWidth = (w + 7) / 8; + for (yi = 0; yi < h; yi ++) { + for (xi = 0; xi < w; xi ++) { + if (pgm_read_byte(bitmap + yi * byteWidth + xi / 8) & (128 >> (xi & 7))) { + //arduboy.drawPixel(x + xi, y + yi, color); + arduboy.fillRect(x + xi * size, y + yi * size, size, size, color); + } + } + } +} +/* + 8x8 dot Japanese font for Arduboy + + Copyright (c) 2016 emutyworks + + Released under the MIT license + https://github.com/emutyworks/8x8DotJPFont/blob/master/LICENSE.txt +*/ +void drawText(uint8_t x, uint8_t y, const uint8_t *mes, uint8_t cnt) +{ + uint8_t pb; + uint8_t page; + uint8_t screen_start = 0; + uint8_t screen_end = 128; + + if (x < screen_start) { + x = screen_start; + } + + for (uint8_t i = 0; i < cnt; i++) { + pb = pgm_read_byte_near(mes + i); + + switch (pb) { + case MISAKI_FONT_F0_PAGE: + page = MISAKI_FONT_F0_PAGE; + continue; + case MISAKI_FONT_F1_PAGE: + page = MISAKI_FONT_F1_PAGE; + continue; + case MISAKI_FONT_F2_PAGE: + page = MISAKI_FONT_F2_PAGE; + continue; + } + + if (!page) { + continue; + } + + switch (page) { +#ifdef MISAKI_FONT_F0_H + case MISAKI_FONT_F0_PAGE: + if (pb > MISAKI_FONT_F0_SIZE) { + continue; + } + if ((x + 8) > screen_end) { + x = screen_start; + y = y + 8; + } + arduboy.drawBitmap(x, y, misaki_font_f0[ pb ], MISAKI_FONT_F0_W, 8, WHITE); + x = x + 8; + break; +#endif +#ifdef MISAKI_FONT_F1_H + case MISAKI_FONT_F1_PAGE: + if (pb > MISAKI_FONT_F1_SIZE) { + continue; + } + if ((x + 4) > screen_end) { + x = screen_start; + y = y + 8; + } + arduboy.drawBitmap(x, y, misaki_font_f1[ pb ], MISAKI_FONT_F1_W, 8, WHITE); + arduboy.drawBitmap(x + 3, y, misaki_font_0x00, 1, 8, WHITE); + x = x + 4; + break; +#endif +#ifdef MISAKI_FONT_F2_H + case MISAKI_FONT_F2_PAGE: + if (pb > MISAKI_FONT_F2_SIZE) { + continue; + } + if ((x + 8) > screen_end) { + x = screen_start; + y = y + 8; + } + arduboy.drawBitmap(x, y, misaki_font_f2[ pb ], MISAKI_FONT_F2_W, 8, WHITE); + arduboy.drawBitmap(x + 7, y, misaki_font_0x00, 1, 8, WHITE); + x = x + 8; + break; +#endif + } + } +} diff --git a/software/sources/SolderingStation2_arduboy_gplib_v1.7t4.ino b/software/sources/SolderingStation2_arduboy_gplib_v1.7t4.ino new file mode 100644 index 0000000..bc25901 --- /dev/null +++ b/software/sources/SolderingStation2_arduboy_gplib_v1.7t4.ino @@ -0,0 +1,2013 @@ +/*License: http://creativecommons.org/licenses/by-sa/3.0/ + 采用CC3.0协议共享此程序 + 您可以自由地:- + -AZ + 共享 — 在任何媒介以任何形式复制、发行本作品 + 演绎 — 修改、转换或以本作品为基础进行创作 + 在任何用途下,甚至商业目的。 + 本许可协议为“自由文化作品(Free Cultural Works)”所接受。 + 只要你遵守许可协议条款,许可人就无法收回你的这些权利。 + + Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) + This is a human-readable summary of (and not a substitute for) the license. Disclaimer. + You are free to: + Share — copy and redistribute the material in any medium or format + Adapt — remix, transform, and build upon the material + for any purpose, even commercially. + This license is acceptable for Free Cultural Works. + The licensor cannot revoke these freedoms as long as you follow the license terms. +*/ +// SolderingStation2 +// +// ATmega328-controlled Soldering Station for Hakko T12 Tips. +// +// This version of the code implements: +// - Temperature measurement of the tip +// - Direct or PID control of the heater +// - Temperature control via rotary encoder +// - Boost mode by short pressing rotary encoder switch +// - Setup menu by long pressing rotary encoder switch +// - Handle movement detection (by checking ball switch) +// - Iron unconnected detection (by idenfying invalid temperature readings) +// - Time driven sleep/power off mode if iron is unused (movement detection) +// - Measurement of input voltage, Vcc and ATmega's internal temperature +// - Information display on OLED +// - Buzzer +// - Calibrating and managing different soldering tips +// - Storing user settings into the EEPROM +// - Tip change detection +// +// Power supply should be in the range of 16V/2A to 24V/3A and well +// stabilized. +// +// For calibration you need a soldering iron tips thermometer. For best results +// wait at least three minutes after switching on the soldering station before +// you start the calibration process. +// +// Controller: ATmega328p +// Core: Barebones ATmega (https://github.com/carlosefr/atmega) +// Clockspeed: 16 MHz external +// +// 2019/2020 by Stefan Wagner with great support from John Glavinos +// 2020-8 UI upgrade by LHW-createskyblue + +// Project Page: https://easyeda.com/wagiminator + +//关于界面-项目页面二维码 ->为了加入欠压报警只能阉割掉关于页面的二维码 +//const unsigned char QRCode[] PROGMEM = { 0x00, 0x00, 0x3e, 0x0e, 0x7c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x0e, 0x7c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x0e, 0x7c, 0x0c, 0x00, 0x00, 0x1f, 0xfe, 0x3f, 0xc1, 0x8c, 0x0c, 0x7f, 0xf8, 0x1f, 0xfe, 0x3f, 0xc1, 0x8c, 0x0c, 0x7f, 0xf8, 0x18, 0x06, 0x30, 0x01, 0xf3, 0x8c, 0x60, 0x18, 0x18, 0x06, 0x30, 0x01, 0xf3, 0x8c, 0x60, 0x18, 0x18, 0x06, 0x30, 0x01, 0xf3, 0x8c, 0x60, 0x18, 0x18, 0x06, 0x3e, 0x0f, 0xf0, 0x0c, 0x60, 0x18, 0x18, 0x06, 0x3e, 0x0f, 0xf0, 0x0c, 0x60, 0x18, 0x18, 0x06, 0x3f, 0xc1, 0xf0, 0x0c, 0x60, 0x18, 0x18, 0x06, 0x3f, 0xc1, 0xf0, 0x0c, 0x60, 0x18, 0x18, 0x06, 0x3f, 0xc1, 0xf0, 0x0c, 0x60, 0x18, 0x1f, 0xfe, 0x3e, 0x30, 0x70, 0x0c, 0x7f, 0xf8, 0x1f, 0xfe, 0x3e, 0x30, 0x70, 0x0c, 0x7f, 0xf8, 0x00, 0x00, 0x31, 0xce, 0x73, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x31, 0xce, 0x73, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x31, 0xce, 0x73, 0x8c, 0x00, 0x00, 0xff, 0xff, 0xf0, 0x01, 0x83, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x01, 0x83, 0x8f, 0xff, 0xff, 0x00, 0xc0, 0x01, 0xc1, 0x8c, 0x00, 0x7f, 0x1f, 0x00, 0xc0, 0x01, 0xc1, 0x8c, 0x00, 0x7f, 0x1f, 0x00, 0xc0, 0x01, 0xc1, 0x8c, 0x00, 0x7f, 0x1f, 0x07, 0xc7, 0xcf, 0xce, 0x7f, 0x8c, 0x1f, 0xf8, 0x07, 0xc7, 0xcf, 0xce, 0x7f, 0x8c, 0x1f, 0xf8, 0x07, 0xc7, 0xcf, 0xce, 0x7f, 0x8c, 0x1f, 0xf8, 0xf8, 0x00, 0x3e, 0x3e, 0x03, 0xf0, 0x7f, 0x00, 0xf8, 0x00, 0x3e, 0x3e, 0x03, 0xf0, 0x7f, 0x00, 0xe0, 0xc7, 0xcf, 0xfe, 0x03, 0x80, 0x1f, 0xe7, 0xe0, 0xc7, 0xcf, 0xfe, 0x03, 0x80, 0x1f, 0xe7, 0xe0, 0xc7, 0xcf, 0xfe, 0x03, 0x80, 0x1f, 0xe7, 0x18, 0xc0, 0x31, 0xfe, 0x0c, 0x0c, 0x1c, 0xe0, 0x18, 0xc0, 0x31, 0xfe, 0x0c, 0x0c, 0x1c, 0xe0, 0xe7, 0x39, 0xf1, 0xf0, 0x03, 0xfc, 0x7c, 0xf8, 0xe7, 0x39, 0xf1, 0xf0, 0x03, 0xfc, 0x7c, 0xf8, 0xe7, 0x39, 0xf1, 0xf0, 0x03, 0xfc, 0x7c, 0xf8, 0x1f, 0x00, 0x31, 0xcf, 0xf3, 0x8c, 0x03, 0x00, 0x1f, 0x00, 0x31, 0xcf, 0xf3, 0x8c, 0x03, 0x00, 0xe0, 0x3f, 0xff, 0xc1, 0x83, 0x8f, 0x9c, 0xe7, 0xe0, 0x3f, 0xff, 0xc1, 0x83, 0x8f, 0x9c, 0xe7, 0xe0, 0x3f, 0xff, 0xc1, 0x83, 0x8f, 0x9c, 0xe7, 0x18, 0x00, 0x30, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x18, 0x00, 0x30, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x18, 0x00, 0x30, 0x0e, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xf0, 0x3e, 0x7c, 0x0f, 0xe0, 0x00, 0xff, 0xff, 0xf0, 0x3e, 0x7c, 0x0f, 0xe0, 0x00, 0x00, 0x00, 0x31, 0xce, 0x0c, 0x0c, 0x63, 0xe0, 0x00, 0x00, 0x31, 0xce, 0x0c, 0x0c, 0x63, 0xe0, 0x00, 0x00, 0x31, 0xce, 0x0c, 0x0c, 0x63, 0xe0, 0x1f, 0xfe, 0x30, 0x01, 0x83, 0x8f, 0xe0, 0xff, 0x1f, 0xfe, 0x30, 0x01, 0x83, 0x8f, 0xe0, 0xff, 0x18, 0x06, 0x31, 0xf1, 0x8f, 0x80, 0x03, 0xe7, 0x18, 0x06, 0x31, 0xf1, 0x8f, 0x80, 0x03, 0xe7, 0x18, 0x06, 0x31, 0xf1, 0x8f, 0x80, 0x03, 0xe7, 0x18, 0x06, 0x3f, 0xff, 0x83, 0x83, 0xe3, 0x1f, 0x18, 0x06, 0x3f, 0xff, 0x83, 0x83, 0xe3, 0x1f, 0x18, 0x06, 0x31, 0xfe, 0x73, 0x8f, 0x80, 0xf8, 0x18, 0x06, 0x31, 0xfe, 0x73, 0x8f, 0x80, 0xf8, 0x18, 0x06, 0x31, 0xfe, 0x73, 0x8f, 0x80, 0xf8, 0x1f, 0xfe, 0x31, 0xfe, 0x00, 0x0c, 0x60, 0xe7, 0x1f, 0xfe, 0x31, 0xfe, 0x00, 0x0c, 0x60, 0xe7, 0x00, 0x00, 0x31, 0xfe, 0x0c, 0x0f, 0x9f, 0xe0, 0x00, 0x00, 0x31, 0xfe, 0x0c, 0x0f, 0x9f, 0xe0, 0x00, 0x00, 0x31, 0xfe, 0x0c, 0x0f, 0x9f, 0xe0 }; +const unsigned char QRCode[] PROGMEM = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x03, 0x86, 0x70, 0x80, 0x03, 0x80, 0x03, 0x86, 0x70, 0x80, 0x03, 0x9f, 0xf3, 0xe1, 0x30, 0x9f, 0xf3, 0x9f, 0xf3, 0xe1, 0x30, 0x9f, 0xf3, 0x98, 0x33, 0x01, 0xcc, 0x98, 0x33, 0x98, 0x33, 0x01, 0xcc, 0x98, 0x33, 0x98, 0x33, 0x87, 0xc0, 0x98, 0x33, 0x98, 0x33, 0xe1, 0xc0, 0x98, 0x33, 0x98, 0x33, 0xe1, 0xc0, 0x98, 0x33, 0x9f, 0xf3, 0x98, 0xc0, 0x9f, 0xf3, 0x9f, 0xf3, 0x98, 0xc0, 0x9f, 0xf3, 0x80, 0x03, 0x66, 0xcc, 0x80, 0x03, 0x80, 0x03, 0x66, 0xcc, 0x80, 0x03, 0xff, 0xff, 0x01, 0x0c, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x1f, 0xff, 0x81, 0x00, 0x61, 0x30, 0x1f, 0x3f, 0x87, 0x3c, 0xe6, 0xfc, 0x87, 0x33, 0x87, 0x3c, 0xe6, 0xfc, 0x87, 0xf3, 0xf8, 0x03, 0x9e, 0x0f, 0x1f, 0x03, 0xf8, 0x03, 0x9e, 0x0f, 0x1f, 0x03, 0xe1, 0x3c, 0xfe, 0x0c, 0x07, 0xcf, 0xe1, 0x3c, 0xfe, 0x0c, 0x07, 0xcf, 0x99, 0x03, 0x3e, 0x30, 0x86, 0xc3, 0xe6, 0xcf, 0x38, 0x0f, 0x9e, 0xf3, 0xe6, 0xcf, 0x38, 0x0f, 0x9e, 0xf3, 0x9e, 0x03, 0x27, 0xcc, 0x81, 0x03, 0x9e, 0x03, 0x27, 0xcc, 0x81, 0x03, 0xe0, 0xff, 0xe1, 0x0c, 0xe6, 0xcf, 0xe0, 0xff, 0xe1, 0x0c, 0xe6, 0xcf, 0x98, 0x03, 0x06, 0x00, 0x00, 0xff, 0x98, 0x03, 0x06, 0x00, 0x00, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0xf8, 0x03, 0x80, 0x03, 0x66, 0x30, 0x99, 0xc3, 0x80, 0x03, 0x66, 0x30, 0x99, 0xc3, 0x9f, 0xf3, 0x01, 0x0c, 0xf8, 0xff, 0x9f, 0xf3, 0x01, 0x0c, 0xf8, 0xff, 0x98, 0x33, 0x39, 0x3c, 0x01, 0xcf, 0x98, 0x33, 0x39, 0x3c, 0x01, 0xcf, 0x98, 0x33, 0xff, 0x0c, 0x79, 0x3f, 0x98, 0x33, 0x3e, 0xcc, 0xe0, 0xf3, 0x98, 0x33, 0x3e, 0xcc, 0xe0, 0xf3, 0x9f, 0xf3, 0x3e, 0x00, 0x98, 0xcf, 0x9f, 0xf3, 0x3e, 0x00, 0x98, 0xcf, 0x80, 0x03, 0x3e, 0x30, 0xe7, 0xc3, 0x80, 0x03, 0x3e, 0x30, 0xe7, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; +//ICO +//width:16,height:16 +const unsigned char Tag[] PROGMEM = { 0x00, 0x00, 0x3b, 0xec, 0x7b, 0xee, 0x63, 0xe6, 0x63, 0xe6, 0x63, 0xe6, 0x63, 0xe6, 0x63, 0xe6, 0x63, 0xe6, 0x63, 0x66, 0x62, 0x26, 0x60, 0x06, 0x60, 0x06, 0x7f, 0xfe, 0x3f, 0xfc, 0x00, 0x00 }; +const unsigned char Chip[] PROGMEM = { 0x14, 0xa0, 0x3f, 0xf0, 0x7f, 0xf8, 0xe0, 0x1c, 0x6e, 0x18, 0xec, 0x1c, 0x68, 0x18, 0x60, 0x18, 0xe0, 0x1c, 0x60, 0x58, 0xe0, 0x1c, 0x7f, 0xf8, 0x3f, 0xf0, 0x14, 0xa0 }; +//const unsigned char HeatPipe[] PROGMEM = { 0x00, 0x00, 0x09, 0x90, 0x11, 0x88, 0x21, 0x84, 0x11, 0x88, 0x09, 0x90, 0x11, 0x88, 0x21, 0x84, 0x11, 0x88, 0x09, 0x90, 0x11, 0x88, 0x21, 0x84, 0x11, 0x88, 0x09, 0x90, 0x01, 0x80, 0x00, 0x00 }; +const unsigned char Lightning[] PROGMEM = { 0x0f, 0xe0, 0x1f, 0xc0, 0x1f, 0xc0, 0x3f, 0x80, 0x3f, 0xf8, 0x7f, 0xf0, 0x7f, 0xe0, 0x07, 0xc0, 0x07, 0x80, 0x0f, 0x00, 0x0e, 0x00, 0x1c, 0x00, 0x18, 0x00, 0x10, 0x00 }; +//const unsigned char Thermometer[] PROGMEM = { 0x01, 0x80, 0x02, 0x40, 0x03, 0x40, 0x02, 0x40, 0x03, 0x40, 0x02, 0x40, 0x03, 0x40, 0x02, 0x40, 0x03, 0x40, 0x03, 0xc0, 0x03, 0xc0, 0x03, 0xc0, 0x07, 0xe0, 0x07, 0xe0, 0x07, 0xe0, 0x03, 0xc0 }; +const unsigned char Pointer[] PROGMEM = { 0x20, 0x20, 0x70, 0xf8 }; +//状态提示 +//width:14,height:14 图标库 + +const unsigned char c1[] PROGMEM = { 0x03, 0x00, 0x07, 0x80, 0x0f, 0xc0, 0x0c, 0xc0, 0x1c, 0xe0, 0x1c, 0xe0, 0x3c, 0xf0, 0x3c, 0xf0, 0x7f, 0xf8, 0x7f, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xff, 0xfc, 0x7f, 0xf8 }; +const unsigned char c2[] PROGMEM = { 0x7f, 0xf8, 0xff, 0xfc, 0xc0, 0x0c, 0xc3, 0x0c, 0xcb, 0x4c, 0xdb, 0x6c, 0xdb, 0x6c, 0xd8, 0x6c, 0xdc, 0xec, 0xcf, 0xcc, 0xc7, 0x8c, 0xc0, 0x0c, 0xff, 0xfc, 0x7f, 0xf8 }; +const unsigned char c3[] PROGMEM = { 0x00, 0x00, 0x06, 0x00, 0x0c, 0x00, 0x18, 0xf8, 0x38, 0xf0, 0x30, 0x30, 0x70, 0x60, 0x70, 0x78, 0x78, 0xf8, 0x78, 0x00, 0x3c, 0x02, 0x3f, 0x0c, 0x1f, 0xf8, 0x0f, 0xf0, 0x03, 0xc0, 0x00, 0x00 }; +const unsigned char c5[] PROGMEM = { 0x7f, 0xf0, 0xff, 0xe0, 0xc0, 0x08, 0xc0, 0x1c, 0xc0, 0x38, 0xc8, 0x70, 0xdc, 0xe4, 0xcf, 0xcc, 0xc7, 0x8c, 0xc3, 0x0c, 0xc0, 0x0c, 0xc0, 0x0c, 0xff, 0xfc, 0x7f, 0xf8 }; +const unsigned char c6[] PROGMEM = { 0x1e, 0x10, 0x33, 0x38, 0x2d, 0x7c, 0x25, 0x38, 0x2d, 0x38, 0x25, 0x38, 0x2d, 0x38, 0x6d, 0x80, 0xde, 0xc0, 0xbf, 0x40, 0xbf, 0x40, 0xde, 0xc0, 0x61, 0x80, 0x3f, 0x00 }; +const unsigned char c7[] PROGMEM = { 0x1f, 0xe0, 0x3f, 0xf0, 0x70, 0x38, 0x60, 0x18, 0x60, 0x18, 0x60, 0x18, 0xff, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0x7c, 0xf8, 0x7c, 0xfc, 0xfc, 0x7f, 0xf8 }; +const unsigned char c_NO[] PROGMEM = { 0x80, 0x04, 0x00, 0x00, 0x3f, 0xf0, 0x37, 0xb0, 0x23, 0x10, 0x30, 0x30, 0x38, 0x70, 0x38, 0x70, 0x30, 0x30, 0x23, 0x10, 0x37, 0xb0, 0x3f, 0xf0, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char *C_table[] = {c1, c2, c3, Lightning, c5, c6, c7}; + +//设置(陈星汉认为语言是一种低像素的表达方式,容易造成隔阂; 交互界面设计尽可能形象化) +// width: 14, height: 14 +const unsigned char QRC[] PROGMEM = { 0x05, 0x80, 0x74, 0xb8, 0x57, 0xa8, 0x76, 0xb8, 0x05, 0x80, 0xf9, 0x7c, 0x46, 0x94, 0xaa, 0xa8, 0xf9, 0x7c, 0x06, 0x88, 0x74, 0xa8, 0x57, 0x8c, 0x75, 0x74, 0x06, 0x98 }; +const unsigned char Set0[] PROGMEM = { 0x88, 0x24, 0x08, 0x20, 0x38, 0x30, 0x38, 0x30, 0x38, 0x30, 0x38, 0x30, 0x38, 0x30, 0x38, 0x30, 0x39, 0x30, 0x3b, 0xb0, 0x3f, 0xf0, 0x3f, 0xf0, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char Set1[] PROGMEM = { 0xf8, 0x7c, 0xf3, 0x3c, 0xf4, 0xbc, 0xf6, 0xbc, 0xf4, 0xbc, 0xf6, 0xbc, 0xf4, 0xbc, 0xe4, 0x9c, 0xc8, 0x4c, 0xd0, 0x2c, 0xd0, 0x2c, 0xc8, 0x4c, 0xe7, 0x9c, 0xf0, 0x3c }; +const unsigned char Set2[] PROGMEM = { 0x8f, 0xc4, 0x10, 0x20, 0x20, 0x10, 0x4c, 0xc8, 0x9f, 0xe4, 0x3d, 0xf0, 0x3d, 0xf0, 0x1d, 0xe0, 0x3e, 0xf0, 0x3f, 0x70, 0x9f, 0xe4, 0x8c, 0xc4, 0x00, 0x00, 0x30, 0x30 }; +const unsigned char Set3[] PROGMEM = { 0xc3, 0xfc, 0x18, 0x00, 0x18, 0x00, 0xc3, 0xfc, 0xff, 0xfc, 0xff, 0x0c, 0x00, 0x60, 0x00, 0x60, 0xff, 0x0c, 0xff, 0xfc, 0xf0, 0xfc, 0x06, 0x00, 0x06, 0x00, 0xf0, 0xfc }; +const unsigned char Set4[] PROGMEM = { 0x80, 0x04, 0x00, 0x00, 0x20, 0x00, 0x10, 0x00, 0x08, 0x00, 0x10, 0x00, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char Set4F[] PROGMEM = { 0x80, 0x04, 0x00, 0x00, 0x3f, 0xf0, 0x38, 0x30, 0x33, 0x10, 0x3f, 0x90, 0x38, 0x10, 0x33, 0x90, 0x27, 0x90, 0x26, 0x10, 0x30, 0x90, 0x3f, 0xf0, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char Set4FF[] PROGMEM = { 0x80, 0x04, 0x00, 0x00, 0x3f, 0xf0, 0x24, 0x30, 0x21, 0x90, 0x27, 0x90, 0x27, 0x30, 0x20, 0x70, 0x27, 0xf0, 0x23, 0x30, 0x30, 0x70, 0x3f, 0xf0, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char Set5[] PROGMEM = { 0xfc, 0xfc, 0xf8, 0x7c, 0xe0, 0x1c, 0xc0, 0x0c, 0xc0, 0x0c, 0xc0, 0x0c, 0xc0, 0x0c, 0xc0, 0x0c, 0xc0, 0x0c, 0x80, 0x04, 0x80, 0x04, 0xff, 0xfc, 0xf8, 0x7c, 0xfc, 0xfc }; +const unsigned char Set5_1[] PROGMEM = { 0xfc, 0xf4, 0xf8, 0x60, 0xe0, 0x44, 0xc0, 0x8c, 0xc1, 0x1c, 0xc2, 0x2c, 0xc4, 0x4c, 0xc8, 0x8c, 0xd1, 0x0c, 0xa2, 0x04, 0xc4, 0x04, 0x8f, 0xfc, 0x18, 0x7c, 0xbc, 0xfc }; +const unsigned char Set6[] PROGMEM = { 0xf8, 0x7c, 0xe0, 0x1c, 0xc0, 0x0c, 0xcf, 0xcc, 0xcf, 0xcc, 0xcf, 0xcc, 0xcf, 0xcc, 0xcf, 0xcc, 0xcf, 0xcc, 0xcf, 0xcc, 0xc8, 0x4c, 0xcf, 0xcc, 0xc0, 0x0c, 0xe0, 0x1c }; +const unsigned char Set_LANG[] PROGMEM = { 0xf0, 0x3c, 0xce, 0x4c, 0xbc, 0x34, 0xb8, 0x14, 0x18, 0x80, 0x10, 0x80, 0x42, 0x30, 0x60, 0x78, 0x60, 0xf8, 0x44, 0xc0, 0x80, 0x04, 0xb8, 0x84, 0xcf, 0xcc, 0xf0, 0x3c }; +const unsigned char Set7[] PROGMEM = { 0x80, 0x0c, 0x00, 0x1c, 0x3f, 0xf4, 0x3f, 0xe0, 0x3f, 0xc4, 0x37, 0x8c, 0x23, 0x18, 0x30, 0x30, 0x38, 0x70, 0x3c, 0xf0, 0x3f, 0xf0, 0x3f, 0xf0, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char Set11[] PROGMEM = { 0xf3, 0xfc, 0xe7, 0xfc, 0xce, 0x0c, 0x8e, 0x1c, 0x9f, 0x9c, 0x1f, 0x3c, 0x1f, 0x0c, 0x0e, 0x0c, 0x0f, 0xfc, 0x87, 0xf8, 0x81, 0xe4, 0xc0, 0x0c, 0xe0, 0x1c, 0xf8, 0x7c }; +const unsigned char Set8[] PROGMEM = { 0x81, 0xdc, 0x55, 0x9c, 0x29, 0x04, 0x55, 0x00, 0x29, 0x90, 0x55, 0xd0, 0x03, 0xfc, 0xff, 0x00, 0x2e, 0x00, 0x26, 0x70, 0x02, 0x50, 0x82, 0x70, 0xe6, 0x00, 0xee, 0x04 }; +const unsigned char Set9[] PROGMEM = { 0xf0, 0x3c, 0xce, 0x0c, 0xbf, 0x04, 0xb3, 0x04, 0x73, 0x00, 0x7f, 0x00, 0x7e, 0x00, 0x7c, 0x00, 0x7c, 0x00, 0x7c, 0x60, 0xbc, 0x64, 0xbe, 0x04, 0xcf, 0x0c, 0xf0, 0x3c }; +const unsigned char Set10[] PROGMEM = { 0xf8, 0x7c, 0xf7, 0xbc, 0x00, 0x00, 0x7f, 0xf8, 0x00, 0x00, 0xbf, 0xf4, 0xab, 0x54, 0xab, 0x54, 0xab, 0x54, 0xab, 0x54, 0xab, 0x54, 0xab, 0x54, 0xbf, 0xf4, 0xc0, 0x0c }; +const unsigned char Set13[] PROGMEM = { 0x80, 0x04, 0x00, 0x00, 0x3f, 0xf0, 0x3c, 0xf0, 0x34, 0xb0, 0x24, 0x90, 0x24, 0x90, 0x27, 0x90, 0x23, 0x10, 0x30, 0x30, 0x38, 0x70, 0x3f, 0xf0, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char Set12[] PROGMEM = { 0x80, 0x04, 0x00, 0x00, 0x3f, 0xf0, 0x3c, 0xf0, 0x3c, 0xf0, 0x3c, 0xf0, 0x20, 0x10, 0x20, 0x10, 0x3c, 0xf0, 0x3c, 0xf0, 0x3c, 0xf0, 0x3f, 0xf0, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char Set14[] PROGMEM = { 0xff, 0x7c, 0xfe, 0x7c, 0xfc, 0xec, 0xe8, 0xdc, 0xc8, 0x4c, 0x98, 0x4c, 0x88, 0x24, 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x04, 0xe0, 0x1c }; +const unsigned char Set15[] PROGMEM = { 0x15, 0x54, 0x3f, 0xfc, 0x15, 0x54, 0x3f, 0xfc, 0x15, 0x54, 0x3c, 0x04, 0x14, 0x04, 0x3c, 0xfc, 0x14, 0x54, 0x3c, 0xfc, 0x00, 0x54, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char Set16[] PROGMEM = { 0x15, 0x54, 0x3f, 0xf8, 0x15, 0x50, 0x3f, 0xf0, 0x15, 0x50, 0x38, 0x70, 0x10, 0x20, 0x31, 0x04, 0x13, 0x8c, 0x22, 0xa8, 0x17, 0xfc, 0x2a, 0xa8, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char Set17[] PROGMEM = { 0x80, 0x00, 0xbf, 0xf8, 0x1f, 0xf8, 0xb0, 0x08, 0x18, 0x08, 0xb9, 0xe8, 0x19, 0xb8, 0xb8, 0x38, 0x18, 0x38, 0xb9, 0xb8, 0xb9, 0xf8, 0xb0, 0xf8, 0xbf, 0xf8, 0x80, 0x00 }; +const unsigned char Set18[] PROGMEM = { 0x80, 0x00, 0xbf, 0xf8, 0x1f, 0xf8, 0xb0, 0x28, 0x1f, 0xf8, 0xb4, 0x08, 0x1f, 0xf8, 0xb1, 0x08, 0x1f, 0xf8, 0xb0, 0x48, 0xbf, 0xf8, 0xb2, 0x88, 0xbf, 0xf8, 0x80, 0x00 }; +const unsigned char Lang_CN[] PROGMEM = { 0x80, 0x04, 0x00, 0x00, 0x3f, 0xf0, 0x3c, 0xf0, 0x3c, 0xf0, 0x20, 0x10, 0x24, 0x90, 0x24, 0x90, 0x20, 0x10, 0x3c, 0xf0, 0x3c, 0xf0, 0x3f, 0xf0, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char Lang_EN[] PROGMEM = { 0x80, 0x04, 0x00, 0x00, 0x3f, 0xf0, 0x38, 0x70, 0x30, 0x30, 0x23, 0x10, 0x27, 0x90, 0x20, 0x10, 0x20, 0x10, 0x27, 0x90, 0x27, 0x90, 0x3f, 0xf0, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char Lang_JP[] PROGMEM = { 0x80, 0x04, 0x00, 0x00, 0x3f, 0xf0, 0x3d, 0xf0, 0x20, 0x10, 0x3b, 0xf0, 0x3b, 0x70, 0x30, 0x30, 0x2b, 0x50, 0x2a, 0xd0, 0x31, 0xb0, 0x3f, 0xf0, 0x00, 0x00, 0x80, 0x04 }; +const unsigned char Save[] PROGMEM = { 0x00, 0x04, 0x58, 0x08, 0x58, 0x08, 0x58, 0x08, 0x40, 0x08, 0x7f, 0xf8, 0x60, 0x18, 0x5f, 0xe8, 0x5b, 0x68, 0x5f, 0xe8, 0x5b, 0x68, 0x1c, 0xe8, 0x5f, 0xe8, 0x00, 0x00 }; + +const unsigned char *Ico_table[] = { + Set0, Set1, Set2, Set3, Set4, Set5, Set6, Set_LANG, QRC, Set7, + Set8, Set9, Set0, Set10, Set12, Save, + Set0, Set11, Set14, Save, + Set11, Set13, Set14, Save, + Set15, Set16, + Set17, Set18, //5 + Set5_1, Set5, + c_NO, Set7, + Lang_CN, Lang_EN, Lang_JP, //8 + Set4, Set4F, Save, +}; +const byte Menu_table[] = {10, 6, 4, 4, 2, 2, 2, 2, 3, 3}; //菜单 标签 温控 定时 控制方式 首页 蜂鸣器 标签删除确认界面 语言菜单 翻转 显示 +byte MenuLevel = 0; //菜单层级 + +/*//////////////////////////////////////////////////////////////////////////////////////////////////// + 多语言支持 + Multilingual support + /////////////////////////////////////////////////////////////////////////////////////////////////// +*/ +/* + 英语库 ENGLISH +*/ +const char EN_0[] PROGMEM = "Tip"; +const char EN_1[] PROGMEM = "Temp"; +const char EN_2[] PROGMEM = "Timer"; +const char EN_3[] PROGMEM = "Control"; +const char EN_4[] PROGMEM = "Screen"; +const char EN_5[] PROGMEM = "Buzzer"; +const char EN_6[] PROGMEM = "LOW Vol"; +const char EN_7[] PROGMEM = "Lang"; +const char EN_8[] PROGMEM = "Return"; +const char EN_9[] PROGMEM = "Change"; +const char EN_10[] PROGMEM = "Calibrate"; +const char EN_11[] PROGMEM = "Rename"; +const char EN_12[] PROGMEM = "Delete"; +const char EN_13[] PROGMEM = "Add"; +const char EN_14[] PROGMEM = "Save"; +const char EN_15[] PROGMEM = "Default"; +const char EN_16[] PROGMEM = "Sleep"; +const char EN_17[] PROGMEM = "Boost"; +const char EN_18[] PROGMEM = "Save"; +const char EN_19[] PROGMEM = "Sleep"; +const char EN_20[] PROGMEM = "Off"; +const char EN_21[] PROGMEM = "Boost"; +const char EN_22[] PROGMEM = "Save"; +const char EN_23[] PROGMEM = "Direct"; +const char EN_24[] PROGMEM = "PID"; +const char EN_25[] PROGMEM = "Big"; +const char EN_26[] PROGMEM = "Infos"; +const char EN_27[] PROGMEM = "OFF"; +const char EN_28[] PROGMEM = "ON"; +const char EN_29[] PROGMEM = "NO"; +const char EN_30[] PROGMEM = "YES"; +const char EN_31[] PROGMEM = "CN"; +const char EN_32[] PROGMEM = "EN"; +const char EN_33[] PROGMEM = "NO"; +const char EN_34[] PROGMEM = "OK"; +const char EN_35[] PROGMEM = "Main Screen"; +const char EN_36[] PROGMEM = "Flip"; +const char EN_37[] PROGMEM = "Save"; +const char EN_38[] PROGMEM = "About"; +const char EN_39[] PROGMEM = "JP"; +const char *const EN_table[] PROGMEM = {EN_0, EN_1, EN_2, EN_3, EN_4, EN_5, EN_6, EN_7, EN_38, EN_8, EN_9, EN_10, EN_11, EN_12, EN_13, EN_14, EN_15, EN_16, EN_17, EN_18, EN_19, EN_20, EN_21, EN_22, EN_23, EN_24, EN_25, EN_26, EN_27, EN_28, EN_29, EN_30, EN_31, EN_32, EN_39, EN_35, EN_36, EN_37,}; + +/* + #!/usr/bin/python + # -*- coding: UTF-8 -*- + for num in range(0,38): + print("EN_",end="") + print(num,end='') + print(",",end="") +*/ +/* + 中文语言库 CHINESE + + //////////////////////////////////////////////////////////////////////////////////////////////////////// + 本地化提示:你可以按照位图的大小,把这里的文字位图替换成你的语言,确保位图分辨率一致即可,我们欢迎你把程序翻译为你当地的语言! + Localization tips: you can according to the size of the bitmap, + replace the text bitmap here with your language, + ensure that the bitmap resolution is consistent, + we welcome you to translate the program into your local language! + //////////////////////////////////////////////////////////////////////////////////////////////////////// +*/ +//width:28,height:14 主界面中文提示 +//Main Screen +//错误-ERROR +const unsigned char S1[] PROGMEM = { 0x20, 0x92, 0x1f, 0xc0, 0x3d, 0xf9, 0x90, 0x40, 0x20, 0x90, 0x90, 0x40, 0x40, 0x90, 0x1f, 0xc0, 0x7b, 0xff, 0x00, 0x00, 0xa0, 0x01, 0x3f, 0xe0, 0x21, 0xf9, 0x02, 0x00, 0xfd, 0x09, 0x02, 0x00, 0x21, 0x09, 0x7f, 0xf0, 0x21, 0xf9, 0x05, 0x00, 0x21, 0x09, 0x45, 0x00, 0x29, 0x09, 0x88, 0x80, 0x31, 0xf9, 0x10, 0x70, 0x21, 0x08, 0x20, 0x20 }; +//关机-OFF +const unsigned char S2[] PROGMEM = { 0x10, 0x40, 0x47, 0xc0, 0x17, 0xfc, 0x44, 0x40, 0x20, 0x03, 0xf4, 0x40, 0x23, 0xf8, 0x44, 0x40, 0x62, 0x08, 0xc4, 0x40, 0xa3, 0xf8, 0xe4, 0x40, 0x20, 0x01, 0x54, 0x40, 0x2f, 0xfd, 0x44, 0x40, 0x28, 0x06, 0x44, 0x40, 0x23, 0xf8, 0x44, 0x40, 0x20, 0x40, 0x44, 0x50, 0x20, 0x40, 0x48, 0x50, 0x21, 0x40, 0x50, 0x30, 0x20, 0x80, 0x40, 0x00 }; +//休眠-SLEEP +const unsigned char S3[] PROGMEM = { 0x10, 0x83, 0xdf, 0xc0, 0x10, 0x82, 0x50, 0x40, 0x20, 0x82, 0x50, 0x40, 0x2f, 0xff, 0xdf, 0xc0, 0x60, 0x82, 0x52, 0x00, 0x61, 0xc2, 0x52, 0x00, 0xa1, 0xc2, 0x5f, 0xe0, 0x22, 0xa3, 0xd2, 0x00, 0x22, 0xa2, 0x51, 0x00, 0x24, 0x92, 0x51, 0x00, 0x28, 0x8e, 0x50, 0x90, 0x30, 0x8b, 0xd4, 0x50, 0x20, 0x82, 0x58, 0x30, 0x20, 0x80, 0x10, 0x10 }; +//提温-BOOST +const unsigned char S4[] PROGMEM = { 0x23, 0xf2, 0x1f, 0xc0, 0x22, 0x11, 0x10, 0x40, 0xfb, 0xf0, 0x90, 0x40, 0x22, 0x12, 0x1f, 0xc0, 0x2a, 0x11, 0x10, 0x40, 0x33, 0xf1, 0x10, 0x40, 0x60, 0x00, 0x5f, 0xc0, 0xaf, 0xfc, 0x80, 0x00, 0x20, 0x41, 0x3f, 0xe0, 0x22, 0x43, 0x25, 0x20, 0x22, 0x79, 0x25, 0x20, 0x22, 0x41, 0x25, 0x20, 0xa5, 0x41, 0x25, 0x20, 0x48, 0xfd, 0x7f, 0xf0 }; +//正常工作-WORKY +const unsigned char S5[] PROGMEM = { 0x7f, 0xf8, 0x48, 0x80, 0x02, 0x00, 0x49, 0x00, 0x02, 0x01, 0xff, 0xf0, 0x02, 0x01, 0x00, 0x10, 0x02, 0x02, 0x7f, 0x20, 0x22, 0x00, 0x41, 0x00, 0x23, 0xf0, 0x7f, 0x00, 0x22, 0x00, 0x08, 0x00, 0x22, 0x00, 0xff, 0x80, 0x22, 0x00, 0x88, 0x80, 0x22, 0x00, 0x88, 0x80, 0x22, 0x00, 0x8a, 0x80, 0x22, 0x00, 0x89, 0x00, 0xff, 0xfc, 0x08, 0x00 }; +//加热-HEAT +const unsigned char S6[] PROGMEM = { 0x0f, 0x42, 0x1f, 0xc0, 0x78, 0x41, 0x10, 0x40, 0x08, 0x40, 0x90, 0x40, 0x08, 0x42, 0x1f, 0xc0, 0x08, 0x41, 0x10, 0x40, 0xff, 0xfd, 0x10, 0x40, 0x08, 0x40, 0x5f, 0xc0, 0x08, 0x40, 0x80, 0x00, 0x08, 0x41, 0x3f, 0xe0, 0x08, 0x43, 0x25, 0x20, 0x10, 0x41, 0x25, 0x20, 0x10, 0x41, 0x25, 0x20, 0x20, 0x41, 0x25, 0x20, 0x40, 0x41, 0x7f, 0xf0 }; +//维持-HOLD +const unsigned char S7[] PROGMEM = { 0x11, 0x40, 0x82, 0x00, 0x21, 0x20, 0x8f, 0xe0, 0x23, 0xfc, 0x82, 0x00, 0x4a, 0x23, 0xe2, 0x00, 0xfe, 0x20, 0x9f, 0xf0, 0x13, 0xf8, 0x80, 0x80, 0x22, 0x20, 0xc0, 0x80, 0x42, 0x21, 0xbf, 0xf0, 0xfb, 0xfa, 0x88, 0x80, 0x02, 0x20, 0x84, 0x80, 0x02, 0x20, 0x84, 0x80, 0x1a, 0x20, 0x80, 0x80, 0xe3, 0xfe, 0x82, 0x80, 0x02, 0x01, 0x01, 0x00 }; +const unsigned char *S_table[] = {S1, S2, S3, S4, S5, S6, S7}; + +// 菜单 width:36,height:16 +//MENU Oj +/* + The order here(↓) can refer to EN_table(↑↑↑) +*/ +const unsigned char t0[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x7f, 0x90, 0xf8, 0x00, 0x01, 0x08, 0x08, 0x88, 0x00, 0x0a, 0x10, 0x08, 0x88, 0x00, 0x04, 0x7f, 0x01, 0x07, 0x00, 0x1f, 0xc1, 0x3a, 0x00, 0x00, 0x05, 0x49, 0x09, 0xfc, 0x00, 0x04, 0x49, 0x08, 0x84, 0x00, 0x04, 0x49, 0x08, 0x88, 0x00, 0x04, 0x49, 0x08, 0x48, 0x00, 0x04, 0x49, 0x08, 0x50, 0x00, 0x04, 0x49, 0x0a, 0x20, 0x00, 0x04, 0x16, 0x0c, 0x58, 0x00, 0x14, 0x21, 0x89, 0x87, 0x00, 0x08, 0xc0, 0x86, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t1[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xfe, 0x08, 0x20, 0x00, 0x08, 0x82, 0x0b, 0xff, 0x00, 0x04, 0x82, 0x0a, 0x01, 0x00, 0x10, 0xfe, 0x3c, 0x51, 0x00, 0x08, 0x82, 0x08, 0x88, 0x00, 0x08, 0x82, 0x09, 0x04, 0x00, 0x02, 0xfe, 0x0c, 0x00, 0x00, 0x04, 0x00, 0x19, 0xfc, 0x00, 0x09, 0xff, 0x28, 0x20, 0x00, 0x19, 0x29, 0x08, 0x20, 0x00, 0x09, 0x29, 0x08, 0x20, 0x00, 0x09, 0x29, 0x08, 0x20, 0x00, 0x09, 0x29, 0x2b, 0xff, 0x00, 0x0b, 0xff, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t2[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x20, 0x3e, 0x04, 0x00, 0x1f, 0xff, 0xa2, 0x04, 0x00, 0x10, 0x00, 0xa2, 0xff, 0x00, 0x00, 0x01, 0x22, 0x04, 0x00, 0x0f, 0xfe, 0x22, 0x04, 0x00, 0x00, 0x40, 0x3e, 0x44, 0x00, 0x00, 0x40, 0x22, 0x24, 0x00, 0x04, 0x40, 0x22, 0x24, 0x00, 0x04, 0x7c, 0x22, 0x04, 0x00, 0x04, 0x40, 0x22, 0x04, 0x00, 0x0a, 0x40, 0x3e, 0x04, 0x00, 0x09, 0x40, 0x22, 0x24, 0x00, 0x10, 0xff, 0x80, 0x14, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00 }; +const unsigned char t3[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x10, 0x12, 0x02, 0x00, 0x05, 0xff, 0x9f, 0xd2, 0x00, 0x05, 0x00, 0x92, 0x12, 0x00, 0x1e, 0x28, 0xa2, 0x12, 0x00, 0x04, 0x44, 0x3f, 0xf2, 0x00, 0x04, 0x82, 0x02, 0x12, 0x00, 0x06, 0x00, 0x02, 0x12, 0x00, 0x0c, 0xfe, 0x1f, 0xd2, 0x00, 0x14, 0x10, 0x12, 0x52, 0x00, 0x04, 0x10, 0x12, 0x42, 0x00, 0x04, 0x10, 0x13, 0x42, 0x00, 0x04, 0x10, 0x12, 0x82, 0x00, 0x15, 0xff, 0x82, 0x0a, 0x00, 0x08, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t4[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xfe, 0x0f, 0xf8, 0x00, 0x04, 0x02, 0x00, 0x00, 0x00, 0x04, 0x02, 0x00, 0x00, 0x00, 0x07, 0xfe, 0x00, 0x00, 0x00, 0x04, 0x02, 0x3f, 0xfe, 0x00, 0x04, 0x02, 0x00, 0x80, 0x00, 0x07, 0xfe, 0x00, 0x80, 0x00, 0x00, 0x90, 0x04, 0x90, 0x00, 0x08, 0x91, 0x0c, 0x88, 0x00, 0x06, 0x93, 0x10, 0x86, 0x00, 0x02, 0x94, 0x20, 0x82, 0x00, 0x00, 0x90, 0x00, 0x80, 0x00, 0x00, 0x90, 0x02, 0x80, 0x00, 0x1f, 0xff, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t5[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x80, 0x00, 0x1f, 0xff, 0x9f, 0xfc, 0x00, 0x00, 0x40, 0x04, 0x10, 0x00, 0x0f, 0xff, 0x02, 0x20, 0x00, 0x00, 0x00, 0x3f, 0xff, 0x00, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x08, 0x42, 0x0f, 0xf8, 0x00, 0x08, 0x42, 0x08, 0x08, 0x00, 0x0f, 0xfe, 0x08, 0x08, 0x00, 0x08, 0x02, 0x0f, 0xf8, 0x00, 0x08, 0x00, 0x08, 0x08, 0x00, 0x08, 0x00, 0x08, 0x08, 0x00, 0x08, 0x00, 0x0f, 0xf8, 0x00, 0x10, 0x00, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t6[] PROGMEM = { 0x09, 0xff, 0x00, 0x40, 0x00, 0x04, 0x20, 0x3f, 0xff, 0x00, 0x04, 0x20, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x1c, 0x42, 0x0f, 0xfc, 0x00, 0x04, 0x42, 0x00, 0x00, 0x00, 0x07, 0xff, 0x80, 0x00, 0x00, 0x04, 0x00, 0x0f, 0xfc, 0x00, 0x04, 0xff, 0x00, 0x00, 0x00, 0x04, 0x81, 0x00, 0x00, 0x00, 0x05, 0x81, 0x0f, 0xfc, 0x00, 0x06, 0x81, 0x08, 0x04, 0x00, 0x04, 0xff, 0x08, 0x04, 0x00, 0x00, 0x81, 0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +const unsigned char t7[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0f, 0xfe, 0x00, 0x01, 0x00, 0x08, 0x20, 0x00, 0x03, 0xff, 0x08, 0x20, 0x00, 0x02, 0x01, 0x08, 0x20, 0x00, 0x04, 0x22, 0x08, 0x20, 0x00, 0x08, 0x20, 0x0b, 0xfe, 0x00, 0x10, 0x20, 0x08, 0x20, 0x00, 0x00, 0x50, 0x08, 0x28, 0x00, 0x00, 0x50, 0x08, 0x24, 0x00, 0x00, 0x88, 0x08, 0x22, 0x00, 0x00, 0x88, 0x10, 0x20, 0x00, 0x01, 0x04, 0x10, 0x20, 0x00, 0x02, 0x03, 0xa7, 0xff, 0x00, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char Back[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x07, 0x00, 0x00, 0x00, 0x08, 0xf8, 0x3f, 0xfe, 0x00, 0x04, 0x80, 0x20, 0x02, 0x00, 0x00, 0x80, 0x20, 0x02, 0x00, 0x00, 0xbe, 0x23, 0xe2, 0x00, 0x1c, 0x82, 0x22, 0x22, 0x00, 0x04, 0xa4, 0x22, 0x22, 0x00, 0x04, 0x94, 0x22, 0x22, 0x00, 0x04, 0x88, 0x22, 0x22, 0x00, 0x04, 0x94, 0x23, 0xe2, 0x00, 0x05, 0x22, 0x20, 0x02, 0x00, 0x05, 0x42, 0x20, 0x02, 0x00, 0x0a, 0x00, 0x3f, 0xfe, 0x00, 0x11, 0xff, 0xa0, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +const unsigned char t1_1[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x08, 0x20, 0x90, 0x00, 0x02, 0x7f, 0x98, 0x90, 0x00, 0x1f, 0x80, 0x09, 0xff, 0x00, 0x02, 0x22, 0x01, 0x10, 0x00, 0x06, 0x21, 0x8b, 0x10, 0x00, 0x07, 0x62, 0x8d, 0xfe, 0x00, 0x0a, 0xa2, 0x09, 0x10, 0x00, 0x0a, 0x14, 0x11, 0x10, 0x00, 0x12, 0x14, 0x31, 0xfe, 0x00, 0x02, 0x08, 0x11, 0x10, 0x00, 0x02, 0x14, 0x11, 0x10, 0x00, 0x02, 0x22, 0x11, 0x10, 0x00, 0x02, 0x43, 0x91, 0xff, 0x00, 0x02, 0x81, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t1_2[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x80, 0x00, 0x00, 0x50, 0x01, 0xfc, 0x00, 0x00, 0x88, 0x01, 0x04, 0x00, 0x01, 0x04, 0x03, 0x08, 0x00, 0x06, 0xfb, 0x04, 0x90, 0x00, 0x08, 0x00, 0xc0, 0x60, 0x00, 0x07, 0xdf, 0x01, 0x80, 0x00, 0x04, 0x51, 0x06, 0x00, 0x00, 0x04, 0x51, 0x1b, 0xfe, 0x00, 0x04, 0x51, 0x02, 0x02, 0x00, 0x07, 0xd9, 0x02, 0x02, 0x00, 0x04, 0x56, 0x02, 0x02, 0x00, 0x00, 0x10, 0x03, 0xfe, 0x00, 0x00, 0x10, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t1_3[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x78, 0xbc, 0x20, 0x00, 0x09, 0x48, 0xa4, 0x50, 0x00, 0x09, 0x4a, 0xa8, 0x50, 0x00, 0x09, 0x4a, 0xa8, 0x88, 0x00, 0x09, 0x4a, 0xb1, 0x04, 0x00, 0x1f, 0xfe, 0xaa, 0xfb, 0x00, 0x09, 0x4a, 0xa4, 0x20, 0x00, 0x09, 0x4a, 0xa4, 0x20, 0x00, 0x09, 0x4a, 0xa7, 0xfe, 0x00, 0x09, 0x4a, 0xb4, 0x20, 0x00, 0x09, 0x48, 0xa9, 0x24, 0x00, 0x0b, 0x48, 0xa2, 0x22, 0x00, 0x08, 0x8a, 0xa4, 0xa2, 0x00, 0x11, 0x19, 0x20, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t1_4[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x00, 0x10, 0x00, 0x1f, 0xdc, 0x3e, 0xfe, 0x00, 0x08, 0x90, 0x02, 0x12, 0x00, 0x05, 0x10, 0x04, 0xff, 0x00, 0x1f, 0xdf, 0x84, 0x12, 0x00, 0x02, 0x12, 0x0c, 0xfe, 0x00, 0x1f, 0xd2, 0x02, 0x10, 0x00, 0x02, 0x12, 0x22, 0xfe, 0x00, 0x0a, 0x92, 0x14, 0x10, 0x00, 0x0a, 0x52, 0x14, 0x10, 0x00, 0x12, 0x22, 0x0d, 0xff, 0x00, 0x02, 0x22, 0x08, 0x10, 0x00, 0x0a, 0x42, 0x14, 0x10, 0x00, 0x04, 0x02, 0x23, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +//默认 +const unsigned char t2_0[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xc8, 0x10, 0x20, 0x00, 0x12, 0x4a, 0x0c, 0x20, 0x00, 0x1a, 0xc9, 0x04, 0x20, 0x00, 0x17, 0x48, 0x00, 0x20, 0x00, 0x1f, 0xff, 0xb8, 0x20, 0x00, 0x02, 0x08, 0x08, 0x50, 0x00, 0x1f, 0xc8, 0x08, 0x50, 0x00, 0x02, 0x08, 0x08, 0x50, 0x00, 0x03, 0xc8, 0x08, 0x48, 0x00, 0x1e, 0x14, 0x08, 0x88, 0x00, 0x01, 0x54, 0x0a, 0x88, 0x00, 0x15, 0x22, 0x0c, 0x84, 0x00, 0x14, 0x43, 0x89, 0x07, 0x00, 0x00, 0x81, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +//休眠 +const unsigned char t2_1[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x10, 0x3d, 0xfc, 0x00, 0x02, 0x10, 0x25, 0x04, 0x00, 0x04, 0x10, 0x25, 0x04, 0x00, 0x05, 0xff, 0xbd, 0xfc, 0x00, 0x0c, 0x10, 0x25, 0x20, 0x00, 0x0c, 0x38, 0x25, 0x20, 0x00, 0x14, 0x38, 0x25, 0xfe, 0x00, 0x04, 0x54, 0x3d, 0x20, 0x00, 0x04, 0x54, 0x25, 0x10, 0x00, 0x04, 0x92, 0x25, 0x10, 0x00, 0x05, 0x11, 0xa5, 0x09, 0x00, 0x06, 0x11, 0x3d, 0x45, 0x00, 0x04, 0x10, 0x25, 0x83, 0x00, 0x04, 0x10, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +//提温 +const unsigned char t2_2[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x7e, 0x21, 0xfc, 0x00, 0x04, 0x42, 0x11, 0x04, 0x00, 0x1f, 0x7e, 0x09, 0x04, 0x00, 0x04, 0x42, 0x21, 0xfc, 0x00, 0x05, 0x42, 0x11, 0x04, 0x00, 0x06, 0x7e, 0x11, 0x04, 0x00, 0x0c, 0x00, 0x05, 0xfc, 0x00, 0x15, 0xff, 0x88, 0x00, 0x00, 0x04, 0x08, 0x13, 0xfe, 0x00, 0x04, 0x48, 0x32, 0x52, 0x00, 0x04, 0x4f, 0x12, 0x52, 0x00, 0x04, 0x48, 0x12, 0x52, 0x00, 0x14, 0xa8, 0x12, 0x52, 0x00, 0x09, 0x1f, 0x97, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +//关机 +const unsigned char t3_1[] PROGMEM = { 0x01, 0x04, 0x04, 0x7c, 0x00, 0x00, 0x88, 0x04, 0x44, 0x00, 0x0f, 0xff, 0x3f, 0x44, 0x00, 0x00, 0x20, 0x04, 0x44, 0x00, 0x00, 0x20, 0x0c, 0x44, 0x00, 0x00, 0x20, 0x0e, 0x44, 0x00, 0x1f, 0xff, 0x95, 0x44, 0x00, 0x00, 0x20, 0x14, 0x44, 0x00, 0x00, 0x50, 0x24, 0x44, 0x00, 0x00, 0x50, 0x04, 0x44, 0x00, 0x00, 0x88, 0x04, 0x45, 0x00, 0x01, 0x04, 0x04, 0x85, 0x00, 0x06, 0x03, 0x85, 0x03, 0x00, 0x18, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +const unsigned char t_4[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x08, 0x20, 0x00, 0x0f, 0xff, 0x09, 0xfc, 0x00, 0x00, 0x20, 0x08, 0x00, 0x00, 0x00, 0x20, 0x3e, 0x88, 0x00, 0x03, 0xfe, 0x08, 0x50, 0x00, 0x02, 0x02, 0x0b, 0xfe, 0x00, 0x03, 0xfe, 0x0c, 0x40, 0x00, 0x02, 0x02, 0x18, 0x40, 0x00, 0x03, 0xfe, 0x2b, 0xfe, 0x00, 0x02, 0x02, 0x08, 0x48, 0x00, 0x03, 0xfe, 0x08, 0x88, 0x00, 0x02, 0x02, 0x08, 0x50, 0x00, 0x02, 0x02, 0x28, 0x30, 0x00, 0x1f, 0xff, 0x91, 0xcc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t_PID[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xc3, 0xf1, 0xe0, 0x00, 0x0f, 0xe3, 0xf1, 0xf8, 0x00, 0x0c, 0x70, 0xc1, 0x9e, 0x00, 0x0c, 0x30, 0xc1, 0x86, 0x00, 0x0c, 0x30, 0xc1, 0x83, 0x00, 0x0c, 0x30, 0xc1, 0x83, 0x00, 0x0c, 0x60, 0xc1, 0x83, 0x00, 0x0c, 0x60, 0xc1, 0x83, 0x00, 0x0f, 0xc0, 0xc1, 0x83, 0x00, 0x0f, 0xc0, 0xc1, 0x86, 0x00, 0x0c, 0x00, 0xc1, 0x86, 0x00, 0x0c, 0x00, 0xc1, 0x98, 0x00, 0x0c, 0x03, 0xf1, 0xf8, 0x00, 0x0c, 0x03, 0xf1, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +const unsigned char t5_0[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xdf, 0x88, 0x40, 0x00, 0x0a, 0x24, 0x10, 0x40, 0x00, 0x11, 0x42, 0x10, 0xfe, 0x00, 0x04, 0x00, 0x22, 0x82, 0x00, 0x02, 0xff, 0x3d, 0x02, 0x00, 0x08, 0x01, 0x0a, 0x42, 0x00, 0x09, 0xf9, 0x10, 0x32, 0x00, 0x09, 0x09, 0x20, 0x12, 0x00, 0x09, 0xf9, 0x3e, 0x02, 0x00, 0x09, 0x09, 0x00, 0x02, 0x00, 0x09, 0x09, 0x0e, 0x02, 0x00, 0x09, 0xf9, 0x30, 0x22, 0x00, 0x08, 0x05, 0x00, 0x14, 0x00, 0x08, 0x02, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t5_1[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x44, 0x10, 0xfe, 0x00, 0x04, 0x28, 0x10, 0x92, 0x00, 0x05, 0xff, 0x22, 0x92, 0x00, 0x00, 0x10, 0x3c, 0x92, 0x00, 0x00, 0x10, 0x08, 0x92, 0x00, 0x1c, 0xfe, 0x10, 0x92, 0x00, 0x04, 0x10, 0x20, 0xfe, 0x00, 0x04, 0x10, 0x3e, 0x92, 0x00, 0x05, 0xff, 0x80, 0x92, 0x00, 0x04, 0x10, 0x00, 0x92, 0x00, 0x05, 0x10, 0x0e, 0x92, 0x00, 0x06, 0x10, 0x30, 0x92, 0x00, 0x04, 0x10, 0x00, 0xfe, 0x00, 0x00, 0x10, 0x00, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t5_3[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x08, 0x3f, 0xfe, 0x00, 0x1f, 0xff, 0x81, 0x00, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x07, 0xfe, 0x0f, 0xf8, 0x00, 0x04, 0x02, 0x08, 0x08, 0x00, 0x04, 0x02, 0x08, 0x88, 0x00, 0x07, 0xfe, 0x08, 0x88, 0x00, 0x04, 0x02, 0x08, 0x88, 0x00, 0x04, 0x02, 0x08, 0x88, 0x00, 0x07, 0xfe, 0x08, 0x88, 0x00, 0x04, 0x02, 0x09, 0x48, 0x00, 0x04, 0x02, 0x02, 0x30, 0x00, 0x07, 0xfe, 0x04, 0x0c, 0x00, 0x04, 0x02, 0x18, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +const unsigned char t_off[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x04, 0xff, 0x00, 0x00, 0x44, 0x02, 0x01, 0x00, 0x07, 0xff, 0x90, 0x21, 0x00, 0x00, 0x10, 0x10, 0x21, 0x00, 0x00, 0x10, 0x17, 0xfd, 0x00, 0x00, 0x10, 0x10, 0x21, 0x00, 0x0f, 0xff, 0xd0, 0x61, 0x00, 0x00, 0x10, 0x10, 0xa1, 0x00, 0x00, 0x28, 0x11, 0x21, 0x00, 0x00, 0x28, 0x12, 0x21, 0x00, 0x00, 0x44, 0x14, 0x21, 0x00, 0x00, 0x82, 0x10, 0xa1, 0x00, 0x03, 0x01, 0xd0, 0x45, 0x00, 0x0c, 0x00, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t_on[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0x80, 0x20, 0x00, 0x00, 0x84, 0x07, 0xff, 0x00, 0x00, 0x84, 0x04, 0x01, 0x00, 0x00, 0x84, 0x04, 0x01, 0x00, 0x00, 0x84, 0x04, 0x01, 0x00, 0x0f, 0xff, 0xc7, 0xff, 0x00, 0x00, 0x84, 0x04, 0x00, 0x00, 0x00, 0x84, 0x04, 0x00, 0x00, 0x00, 0x84, 0x05, 0xff, 0x00, 0x00, 0x84, 0x05, 0x01, 0x00, 0x01, 0x04, 0x09, 0x01, 0x00, 0x01, 0x04, 0x09, 0x01, 0x00, 0x02, 0x04, 0x11, 0xff, 0x00, 0x04, 0x04, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +const unsigned char t_NO[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x04, 0x91, 0x00, 0x04, 0x40, 0x02, 0x52, 0x00, 0x04, 0x7f, 0x90, 0x54, 0x00, 0x04, 0x50, 0x88, 0xff, 0x00, 0x07, 0xd0, 0x84, 0x81, 0x00, 0x04, 0x51, 0x00, 0x81, 0x00, 0x04, 0x49, 0x01, 0xff, 0x00, 0x07, 0xca, 0x02, 0x81, 0x00, 0x04, 0x44, 0x04, 0x81, 0x00, 0x04, 0x4a, 0x1c, 0xff, 0x00, 0x07, 0xea, 0x04, 0x81, 0x00, 0x0c, 0x51, 0x04, 0x81, 0x00, 0x00, 0x61, 0xc4, 0x85, 0x00, 0x00, 0x40, 0x80, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t_OK[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xdf, 0x10, 0x20, 0x00, 0x02, 0x12, 0x0c, 0x20, 0x00, 0x02, 0x24, 0x04, 0x20, 0x00, 0x04, 0x7f, 0x80, 0x20, 0x00, 0x04, 0x24, 0xb8, 0x20, 0x00, 0x0f, 0xa4, 0x88, 0x50, 0x00, 0x14, 0xbf, 0x88, 0x50, 0x00, 0x04, 0xa4, 0x88, 0x50, 0x00, 0x04, 0xa4, 0x88, 0x48, 0x00, 0x04, 0xbf, 0x88, 0x88, 0x00, 0x04, 0xa4, 0x8a, 0x88, 0x00, 0x07, 0xa4, 0x8c, 0x84, 0x00, 0x04, 0x44, 0x89, 0x07, 0x00, 0x00, 0x81, 0x86, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +const unsigned char t_CN_CN[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x40, 0x00, 0x80, 0x00, 0x0f, 0xff, 0x3f, 0xff, 0x00, 0x08, 0x41, 0x04, 0x08, 0x00, 0x08, 0x41, 0x04, 0x08, 0x00, 0x08, 0x41, 0x04, 0x10, 0x00, 0x08, 0x41, 0x02, 0x10, 0x00, 0x0f, 0xff, 0x02, 0x20, 0x00, 0x08, 0x41, 0x01, 0x20, 0x00, 0x00, 0x40, 0x00, 0xc0, 0x00, 0x00, 0x40, 0x01, 0x30, 0x00, 0x00, 0x40, 0x02, 0x08, 0x00, 0x00, 0x40, 0x0c, 0x07, 0x00, 0x00, 0x40, 0x30, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t_CN_EN[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x10, 0x00, 0x80, 0x00, 0x1f, 0xff, 0x80, 0x80, 0x00, 0x01, 0x10, 0x3f, 0xff, 0x00, 0x00, 0x40, 0x04, 0x08, 0x00, 0x07, 0xfc, 0x04, 0x08, 0x00, 0x04, 0x44, 0x04, 0x10, 0x00, 0x04, 0x44, 0x02, 0x10, 0x00, 0x04, 0x44, 0x02, 0x20, 0x00, 0x1f, 0xff, 0x81, 0x20, 0x00, 0x00, 0x40, 0x00, 0xc0, 0x00, 0x00, 0xa0, 0x01, 0x30, 0x00, 0x01, 0x10, 0x02, 0x08, 0x00, 0x06, 0x0c, 0x0c, 0x07, 0x00, 0x18, 0x03, 0xb0, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char t_CN_JP[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xfe, 0x13, 0xfe, 0x00, 0x04, 0x02, 0x08, 0x40, 0x00, 0x04, 0x02, 0x08, 0x40, 0x00, 0x04, 0x02, 0x01, 0xfc, 0x00, 0x04, 0x02, 0x38, 0x84, 0x00, 0x04, 0x02, 0x08, 0x84, 0x00, 0x07, 0xfe, 0x0f, 0xff, 0x00, 0x04, 0x02, 0x08, 0x00, 0x00, 0x04, 0x02, 0x09, 0xfe, 0x00, 0x04, 0x02, 0x09, 0x02, 0x00, 0x04, 0x02, 0x0b, 0x02, 0x00, 0x04, 0x02, 0x0d, 0x02, 0x00, 0x07, 0xfe, 0x09, 0xfe, 0x00, 0x04, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +//翻转 +const unsigned char t4f[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x1d, 0xc2, 0x08, 0x00, 0x05, 0x44, 0x42, 0x08, 0x00, 0x03, 0x84, 0x5f, 0xbf, 0x00, 0x0f, 0xe4, 0x44, 0x10, 0x00, 0x01, 0x15, 0x45, 0x10, 0x00, 0x05, 0x4c, 0xc9, 0x7f, 0x80, 0x09, 0x24, 0x4f, 0x90, 0x00, 0x07, 0xc4, 0xc1, 0x10, 0x00, 0x05, 0x4d, 0x41, 0x3f, 0x00, 0x05, 0x54, 0x43, 0x81, 0x00, 0x07, 0xc4, 0x4d, 0x02, 0x00, 0x05, 0x44, 0x41, 0x14, 0x00, 0x05, 0x55, 0x41, 0x08, 0x00, 0x07, 0xc8, 0x81, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +//保存 +const unsigned char t_save[] PROGMEM = { 0x02, 0xfe, 0x01, 0x00, 0x00, 0x02, 0x82, 0x3f, 0xff, 0x00, 0x04, 0x82, 0x02, 0x00, 0x00, 0x04, 0xfe, 0x02, 0x00, 0x00, 0x0c, 0x10, 0x04, 0xfc, 0x00, 0x14, 0x10, 0x04, 0x08, 0x00, 0x05, 0xff, 0x8c, 0x10, 0x00, 0x04, 0x10, 0x14, 0x10, 0x00, 0x04, 0x38, 0x25, 0xff, 0x00, 0x04, 0x34, 0x04, 0x10, 0x00, 0x04, 0x52, 0x04, 0x10, 0x00, 0x04, 0x91, 0x84, 0x10, 0x00, 0x05, 0x10, 0x04, 0x50, 0x00, 0x04, 0x10, 0x04, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; +const unsigned char tAbout[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x0f, 0xfe, 0x00, 0x00, 0x44, 0x00, 0x40, 0x00, 0x07, 0xff, 0x80, 0x40, 0x00, 0x00, 0x10, 0x00, 0x40, 0x00, 0x00, 0x10, 0x00, 0x40, 0x00, 0x00, 0x10, 0x1f, 0xff, 0x80, 0x0f, 0xff, 0xc0, 0x40, 0x00, 0x00, 0x10, 0x00, 0x40, 0x00, 0x00, 0x28, 0x00, 0x40, 0x00, 0x00, 0x28, 0x00, 0x40, 0x00, 0x00, 0x44, 0x00, 0x40, 0x00, 0x00, 0x82, 0x00, 0x40, 0x00, 0x03, 0x01, 0xc1, 0x40, 0x00, 0x0c, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +const unsigned char *CN_table[] = { + t0, t1, t2, t3, t4, t5, t7, t6, tAbout, Back, //0 + t0, t1_1, t1_2, t1_3, t1_4, t_save, //1 + t2_0, t2_1, t2_2, t_save, //2 + t2_1, t3_1, t2_2, t_save,//3 + t_4, t_PID,//4 + t5_0, t5_1,//5 + t_off, t_on,//6 + t_NO, t_OK,//7 + t_CN_CN, t_CN_EN, t_CN_JP, //8 + t5_3, t4f, t_save, //9 +}; +/* + 日语 Japanese +*/ +/* + 8x8 dot Japanese font for Arduboy + + Copyright (c) 2016 emutyworks + + Released under the MIT license + https://github.com/emutyworks/8x8DotJPFont/blob/master/LICENSE.txt +*/ + +#define MISAKI_FONT_H + +#define MISAKI_FONT_F0_PAGE 0xF0 +#define MISAKI_FONT_F1_PAGE 0xF1 +#define MISAKI_FONT_F2_PAGE 0xF2 + +#define MISAKI_FONT_F0_W 8 +#define MISAKI_FONT_F1_W 3 +#define MISAKI_FONT_F2_W 7 + +#define MISAKI_FONT_F0_SIZE 0xEF +#define MISAKI_FONT_F1_SIZE 0x9D +#define MISAKI_FONT_F2_SIZE 0x1E // misaki_font_f2.h の最終行の値をここに設定する、最大0xEFまで + +/* + 利用しないフォントデータはヘッダファイルを読み込まないようにするとメモリが節約できます、 + drawText() 実行時にフォントが無い場合は処理がスキップされます。 + + 例) 8x8 dot ひらがな・カタカナ・記号 のみ利用 + #include "misaki_font_f0.h" // 8x8 dot ひらがな・カタカナ・記号 + //#include "misaki_font_f1.h" // 4x8 dot 英語・カタカナ・記号 + //#include "misaki_font_f2.h" // 8x8 dot 漢字 +*/ +PROGMEM const uint8_t misaki_font_0x00[1] = { 0x00 }; +#define MISAKI_FONT_F0_H +PROGMEM const uint8_t misaki_font_f0[ MISAKI_FONT_F0_SIZE + 1 ][ MISAKI_FONT_F0_W ] = +{ + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0x00   */ + { 0x20, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0x01 、 */ + { 0x20, 0x50, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0x02 。 */ + { 0x50, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0x03 , */ + { 0x60, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0x04 . */ + { 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00 }, /* 0x05 ・ */ + { 0x00, 0x00, 0x36, 0x36, 0x00, 0x00, 0x00, 0x00 }, /* 0x06 : */ + { 0x00, 0x00, 0x56, 0x36, 0x00, 0x00, 0x00, 0x00 }, /* 0x07 ; */ + { 0x00, 0x02, 0x01, 0x51, 0x09, 0x09, 0x06, 0x00 }, /* 0x08 ? */ + { 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x00 }, /* 0x09 ! */ + { 0x00, 0x00, 0x00, 0x00, 0x7f, 0x41, 0x41, 0x00 }, /* 0x0A [ */ + { 0x41, 0x41, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0x0B ] */ + { 0x00, 0x00, 0x00, 0x3f, 0x01, 0x01, 0x01, 0x00 }, /* 0x0C 「 */ + { 0x40, 0x40, 0x40, 0x7e, 0x00, 0x00, 0x00, 0x00 }, /* 0x0D 」 */ + { 0x00, 0x00, 0x3f, 0x21, 0x3d, 0x05, 0x07, 0x00 }, /* 0x0E 『 */ + { 0x70, 0x50, 0x5e, 0x42, 0x7e, 0x00, 0x00, 0x00 }, /* 0x0F 』 */ + { 0x00, 0x00, 0x00, 0x00, 0x7f, 0x63, 0x41, 0x00 }, /* 0x10 【 */ + { 0x41, 0x63, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* 0x11 】 */ + { 0x08, 0x08, 0x08, 0x7f, 0x08, 0x08, 0x08, 0x00 }, /* 0x12 + */ + { 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00 }, /* 0x13 - */ + { 0x44, 0x44, 0x44, 0x5f, 0x44, 0x44, 0x44, 0x00 }, /* 0x14 ± */ + { 0x41, 0x22, 0x14, 0x08, 0x14, 0x22, 0x41, 0x00 }, /* 0x15 × */ + { 0x08, 0x08, 0x08, 0x2a, 0x08, 0x08, 0x08, 0x00 }, /* 0x16 ÷ */ + { 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x00 }, /* 0x17 = */ + { 0x14, 0x34, 0x14, 0x1c, 0x14, 0x16, 0x14, 0x00 }, /* 0x18 ≠ */ + { 0x08, 0x08, 0x14, 0x14, 0x14, 0x22, 0x22, 0x00 }, /* 0x19 < */ + { 0x22, 0x22, 0x14, 0x14, 0x14, 0x08, 0x08, 0x00 }, /* 0x1A > */ + { 0x02, 0x05, 0x02, 0x3c, 0x42, 0x42, 0x24, 0x00 }, /* 0x1B ℃ */ + { 0x00, 0x2b, 0x2c, 0x78, 0x2c, 0x2b, 0x00, 0x00 }, /* 0x1C ¥ */ + { 0x00, 0x24, 0x2a, 0x7a, 0x2f, 0x2a, 0x12, 0x00 }, /* 0x1D $ */ + { 0x00, 0x1c, 0x62, 0x32, 0x2e, 0x23, 0x14, 0x00 }, /* 0x1E ¢ */ + { 0x20, 0x54, 0x5e, 0x25, 0x41, 0x42, 0x20, 0x00 }, /* 0x1F £ */ + { 0x42, 0x25, 0x12, 0x08, 0x24, 0x52, 0x21, 0x00 }, /* 0x20 % */ + { 0x20, 0x62, 0x3e, 0x63, 0x3e, 0x23, 0x02, 0x00 }, /* 0x21 # */ + { 0x20, 0x56, 0x49, 0x55, 0x22, 0x58, 0x40, 0x00 }, /* 0x22 & */ + { 0x00, 0x22, 0x14, 0x7f, 0x14, 0x22, 0x00, 0x00 }, /* 0x23 * */ + { 0x1c, 0x22, 0x59, 0x55, 0x4d, 0x12, 0x0c, 0x00 }, /* 0x24 @ */ + { 0x00, 0x00, 0x4a, 0x55, 0x55, 0x29, 0x00, 0x00 }, /* 0x25 § */ + { 0x04, 0x64, 0x3c, 0x17, 0x3c, 0x64, 0x04, 0x00 }, /* 0x26 ☆ */ + { 0x04, 0x64, 0x3c, 0x1f, 0x3c, 0x64, 0x04, 0x00 }, /* 0x27 ★ */ + { 0x1c, 0x22, 0x41, 0x41, 0x41, 0x22, 0x1c, 0x00 }, /* 0x28 ○ */ + { 0x1c, 0x3e, 0x7f, 0x7f, 0x7f, 0x3e, 0x1c, 0x00 }, /* 0x29 ● */ + { 0x1c, 0x22, 0x5d, 0x55, 0x5d, 0x22, 0x1c, 0x00 }, /* 0x2A ◎ */ + { 0x08, 0x14, 0x22, 0x41, 0x22, 0x14, 0x08, 0x00 }, /* 0x2B ◇ */ + { 0x08, 0x1c, 0x3e, 0x7f, 0x3e, 0x1c, 0x08, 0x00 }, /* 0x2C ◆ */ + { 0x7f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x7f, 0x00 }, /* 0x2D □ */ + { 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x00 }, /* 0x2E ■ */ + { 0x40, 0x70, 0x4c, 0x43, 0x4c, 0x70, 0x40, 0x00 }, /* 0x2F △ */ + { 0x40, 0x70, 0x7c, 0x7f, 0x7c, 0x70, 0x40, 0x00 }, /* 0x30 ▲ */ + { 0x01, 0x07, 0x19, 0x61, 0x19, 0x07, 0x01, 0x00 }, /* 0x31 ▽ */ + { 0x01, 0x07, 0x1f, 0x7f, 0x1f, 0x07, 0x01, 0x00 }, /* 0x32 ▼ */ + { 0x49, 0x22, 0x14, 0x49, 0x14, 0x22, 0x49, 0x00 }, /* 0x33 ※ */ + { 0x05, 0x05, 0x05, 0x7d, 0x05, 0x05, 0x05, 0x00 }, /* 0x34 〒 */ + { 0x08, 0x08, 0x08, 0x08, 0x2a, 0x1c, 0x08, 0x00 }, /* 0x35 → */ + { 0x08, 0x1c, 0x2a, 0x08, 0x08, 0x08, 0x08, 0x00 }, /* 0x36 ← */ + { 0x00, 0x04, 0x02, 0x7f, 0x02, 0x04, 0x00, 0x00 }, /* 0x37 ↑ */ + { 0x00, 0x10, 0x20, 0x7f, 0x20, 0x10, 0x00, 0x00 }, /* 0x38 ↓ */ + { 0x00, 0x3e, 0x41, 0x41, 0x41, 0x41, 0x3e, 0x00 }, /* 0x39 0 */ + { 0x00, 0x00, 0x42, 0x7f, 0x40, 0x00, 0x00, 0x00 }, /* 0x3A 1 */ + { 0x00, 0x62, 0x51, 0x51, 0x49, 0x49, 0x46, 0x00 }, /* 0x3B 2 */ + { 0x00, 0x22, 0x41, 0x49, 0x49, 0x49, 0x36, 0x00 }, /* 0x3C 3 */ + { 0x00, 0x30, 0x28, 0x24, 0x22, 0x7f, 0x20, 0x00 }, /* 0x3D 4 */ + { 0x00, 0x2f, 0x45, 0x45, 0x45, 0x45, 0x39, 0x00 }, /* 0x3E 5 */ + { 0x00, 0x3e, 0x49, 0x49, 0x49, 0x49, 0x32, 0x00 }, /* 0x3F 6 */ + { 0x00, 0x01, 0x01, 0x61, 0x19, 0x05, 0x03, 0x00 }, /* 0x40 7 */ + { 0x00, 0x36, 0x49, 0x49, 0x49, 0x49, 0x36, 0x00 }, /* 0x41 8 */ + { 0x00, 0x26, 0x49, 0x49, 0x49, 0x49, 0x3e, 0x00 }, /* 0x42 9 */ + { 0x00, 0x20, 0x54, 0x7e, 0x34, 0x14, 0x60, 0x00 }, /* 0x43 ぁ */ + { 0x20, 0x52, 0x7f, 0x2a, 0x1a, 0x4a, 0x30, 0x00 }, /* 0x44 あ */ + { 0x00, 0x3c, 0x40, 0x20, 0x04, 0x18, 0x00, 0x00 }, /* 0x45 ぃ */ + { 0x1e, 0x20, 0x40, 0x20, 0x02, 0x04, 0x18, 0x00 }, /* 0x46 い */ + { 0x00, 0x10, 0x4a, 0x4a, 0x2a, 0x10, 0x00, 0x00 }, /* 0x47 ぅ */ + { 0x00, 0x08, 0x45, 0x45, 0x45, 0x25, 0x18, 0x00 }, /* 0x48 う */ + { 0x00, 0x48, 0x2a, 0x3a, 0x4a, 0x40, 0x00, 0x00 }, /* 0x49 ぇ */ + { 0x00, 0x44, 0x25, 0x15, 0x3d, 0x45, 0x40, 0x00 }, /* 0x4A え */ + { 0x00, 0x24, 0x7e, 0x14, 0x50, 0x24, 0x00, 0x00 }, /* 0x4B ぉ */ + { 0x22, 0x52, 0x7f, 0x0a, 0x48, 0x4a, 0x34, 0x00 }, /* 0x4C お */ + { 0x44, 0x34, 0x4f, 0x44, 0x38, 0x04, 0x18, 0x00 }, /* 0x4D か */ + { 0x44, 0x34, 0x4f, 0x44, 0x39, 0x04, 0x19, 0x00 }, /* 0x4E が */ + { 0x00, 0x2a, 0x5a, 0x4b, 0x4e, 0x5a, 0x08, 0x00 }, /* 0x4F き */ + { 0x00, 0x2a, 0x5a, 0x4b, 0x4e, 0x5b, 0x08, 0x00 }, /* 0x50 ぎ */ + { 0x00, 0x08, 0x14, 0x14, 0x22, 0x41, 0x00, 0x00 }, /* 0x51 く */ + { 0x00, 0x08, 0x14, 0x14, 0x22, 0x45, 0x04, 0x00 }, /* 0x52 ぐ */ + { 0x3f, 0x00, 0x04, 0x44, 0x3f, 0x04, 0x04, 0x00 }, /* 0x53 け */ + { 0x3f, 0x00, 0x04, 0x44, 0x3f, 0x04, 0x05, 0x00 }, /* 0x54 げ */ + { 0x00, 0x20, 0x52, 0x42, 0x42, 0x42, 0x40, 0x00 }, /* 0x55 こ */ + { 0x00, 0x20, 0x52, 0x42, 0x43, 0x42, 0x41, 0x00 }, /* 0x56 ご */ + { 0x00, 0x24, 0x54, 0x44, 0x47, 0x5c, 0x04, 0x00 }, /* 0x57 さ */ + { 0x00, 0x24, 0x54, 0x44, 0x47, 0x5c, 0x05, 0x00 }, /* 0x58 ざ */ + { 0x00, 0x00, 0x3f, 0x40, 0x40, 0x40, 0x20, 0x00 }, /* 0x59 し */ + { 0x00, 0x00, 0x3f, 0x40, 0x41, 0x40, 0x21, 0x00 }, /* 0x5A じ */ + { 0x02, 0x02, 0x0a, 0x56, 0x3f, 0x02, 0x02, 0x00 }, /* 0x5B す */ + { 0x02, 0x02, 0x0a, 0x56, 0x3f, 0x02, 0x03, 0x00 }, /* 0x5C ず */ + { 0x04, 0x04, 0x3f, 0x44, 0x54, 0x5f, 0x44, 0x00 }, /* 0x5D せ */ + { 0x04, 0x04, 0x3f, 0x44, 0x54, 0x5f, 0x45, 0x00 }, /* 0x5E ぜ */ + { 0x00, 0x08, 0x09, 0x3d, 0x4b, 0x49, 0x08, 0x00 }, /* 0x5F そ */ + { 0x00, 0x08, 0x09, 0x3d, 0x4b, 0x49, 0x0a, 0x00 }, /* 0x60 ぞ */ + { 0x42, 0x3a, 0x07, 0x22, 0x54, 0x44, 0x44, 0x00 }, /* 0x61 た */ + { 0x42, 0x3a, 0x07, 0x22, 0x55, 0x44, 0x45, 0x00 }, /* 0x62 だ */ + { 0x00, 0x02, 0x12, 0x4e, 0x4b, 0x4a, 0x32, 0x00 }, /* 0x63 ち */ + { 0x00, 0x02, 0x12, 0x4e, 0x4b, 0x4a, 0x33, 0x00 }, /* 0x64 ぢ */ + { 0x00, 0x10, 0x10, 0x48, 0x48, 0x30, 0x00, 0x00 }, /* 0x65 っ */ + { 0x04, 0x04, 0x02, 0x22, 0x22, 0x22, 0x1c, 0x00 }, /* 0x66 つ */ + { 0x04, 0x04, 0x02, 0x22, 0x23, 0x22, 0x1d, 0x00 }, /* 0x67 づ */ + { 0x00, 0x02, 0x02, 0x1a, 0x25, 0x43, 0x41, 0x00 }, /* 0x68 て */ + { 0x00, 0x02, 0x02, 0x1a, 0x25, 0x43, 0x45, 0x00 }, /* 0x69 で */ + { 0x00, 0x20, 0x57, 0x48, 0x48, 0x44, 0x44, 0x00 }, /* 0x6A と */ + { 0x00, 0x20, 0x57, 0x48, 0x49, 0x44, 0x45, 0x00 }, /* 0x6B ど */ + { 0x12, 0x0a, 0x27, 0x52, 0x50, 0x3a, 0x24, 0x00 }, /* 0x6C な */ + { 0x7f, 0x00, 0x20, 0x52, 0x42, 0x42, 0x40, 0x00 }, /* 0x6D に */ + { 0x30, 0x4e, 0x38, 0x54, 0x0f, 0x64, 0x78, 0x00 }, /* 0x6E ぬ */ + { 0x24, 0x14, 0x7f, 0x04, 0x22, 0x52, 0x3c, 0x00 }, /* 0x6F ね */ + { 0x18, 0x24, 0x12, 0x4e, 0x42, 0x24, 0x18, 0x00 }, /* 0x70 の */ + { 0x7f, 0x00, 0x24, 0x54, 0x54, 0x3f, 0x44, 0x00 }, /* 0x71 は */ + { 0x7f, 0x00, 0x24, 0x54, 0x54, 0x3f, 0x45, 0x00 }, /* 0x72 ば */ + { 0x7f, 0x00, 0x24, 0x54, 0x56, 0x3d, 0x46, 0x00 }, /* 0x73 ぱ */ + { 0x02, 0x3a, 0x47, 0x40, 0x41, 0x3e, 0x04, 0x00 }, /* 0x74 ひ */ + { 0x02, 0x3a, 0x47, 0x40, 0x41, 0x3e, 0x05, 0x00 }, /* 0x75 び */ + { 0x02, 0x3a, 0x47, 0x40, 0x43, 0x3d, 0x06, 0x00 }, /* 0x76 ぴ */ + { 0x40, 0x30, 0x40, 0x4d, 0x32, 0x10, 0x60, 0x00 }, /* 0x77 ふ */ + { 0x40, 0x30, 0x40, 0x4d, 0x32, 0x11, 0x61, 0x00 }, /* 0x78 ぶ */ + { 0x40, 0x30, 0x40, 0x4d, 0x32, 0x15, 0x62, 0x00 }, /* 0x79 ぷ */ + { 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x00 }, /* 0x7A へ */ + { 0x08, 0x04, 0x02, 0x04, 0x09, 0x10, 0x11, 0x00 }, /* 0x7B べ */ + { 0x08, 0x04, 0x02, 0x04, 0x0a, 0x15, 0x12, 0x00 }, /* 0x7C ぺ */ + { 0x7f, 0x00, 0x6a, 0x6a, 0x7e, 0x2a, 0x4a, 0x00 }, /* 0x7D ほ */ + { 0x7f, 0x00, 0x6a, 0x6a, 0x7f, 0x2a, 0x4b, 0x00 }, /* 0x7E ぼ */ + { 0x7f, 0x00, 0x6a, 0x6a, 0x7e, 0x2d, 0x4a, 0x00 }, /* 0x7F ぽ */ + { 0x00, 0x6a, 0x6a, 0x6a, 0x7f, 0x2a, 0x4a, 0x00 }, /* 0x80 ま */ + { 0x30, 0x29, 0x1d, 0x4b, 0x48, 0x3c, 0x10, 0x00 }, /* 0x81 み */ + { 0x12, 0x2a, 0x7f, 0x42, 0x40, 0x42, 0x24, 0x00 }, /* 0x82 む */ + { 0x30, 0x4e, 0x38, 0x54, 0x0f, 0x44, 0x38, 0x00 }, /* 0x83 め */ + { 0x00, 0x0a, 0x3e, 0x4b, 0x4a, 0x4a, 0x30, 0x00 }, /* 0x84 も */ + { 0x00, 0x08, 0x0e, 0x38, 0x46, 0x14, 0x08, 0x00 }, /* 0x85 ゃ */ + { 0x04, 0x07, 0x1c, 0x62, 0x03, 0x0a, 0x04, 0x00 }, /* 0x86 や */ + { 0x00, 0x1c, 0x48, 0x3e, 0x24, 0x18, 0x00, 0x00 }, /* 0x87 ゅ */ + { 0x1e, 0x04, 0x52, 0x3f, 0x12, 0x12, 0x0c, 0x00 }, /* 0x88 ゆ */ + { 0x00, 0x20, 0x50, 0x50, 0x3e, 0x48, 0x00, 0x00 }, /* 0x89 ょ */ + { 0x00, 0x20, 0x50, 0x50, 0x3f, 0x24, 0x44, 0x00 }, /* 0x8A よ */ + { 0x00, 0x1c, 0x51, 0x49, 0x4a, 0x48, 0x30, 0x00 }, /* 0x8B ら */ + { 0x00, 0x0f, 0x42, 0x41, 0x21, 0x1e, 0x00, 0x00 }, /* 0x8C り */ + { 0x00, 0x10, 0x69, 0x6d, 0x4b, 0x49, 0x30, 0x00 }, /* 0x8D る */ + { 0x24, 0x14, 0x7f, 0x04, 0x02, 0x3e, 0x40, 0x00 }, /* 0x8E れ */ + { 0x00, 0x10, 0x49, 0x4d, 0x4b, 0x49, 0x30, 0x00 }, /* 0x8F ろ */ + { 0x00, 0x28, 0x18, 0x7e, 0x08, 0x44, 0x38, 0x00 }, /* 0x90 ゎ */ + { 0x24, 0x14, 0x7f, 0x04, 0x42, 0x42, 0x3c, 0x00 }, /* 0x91 わ */ + { 0x30, 0x49, 0x25, 0x1f, 0x24, 0x54, 0x38, 0x00 }, /* 0x92 ゐ */ + { 0x40, 0x28, 0x25, 0x57, 0x35, 0x28, 0x40, 0x00 }, /* 0x93 ゑ */ + { 0x10, 0x0a, 0x2e, 0x5b, 0x72, 0x4a, 0x48, 0x00 }, /* 0x94 を */ + { 0x40, 0x30, 0x0c, 0x33, 0x40, 0x40, 0x20, 0x00 }, /* 0x95 ん */ + { 0x00, 0x04, 0x44, 0x3c, 0x14, 0x0c, 0x00, 0x00 }, /* 0x96 ァ */ + { 0x00, 0x01, 0x41, 0x3d, 0x09, 0x05, 0x03, 0x00 }, /* 0x97 ア */ + { 0x00, 0x20, 0x20, 0x10, 0x78, 0x04, 0x00, 0x00 }, /* 0x98 ィ */ + { 0x00, 0x10, 0x10, 0x08, 0x7c, 0x02, 0x01, 0x00 }, /* 0x99 イ */ + { 0x00, 0x18, 0x48, 0x4c, 0x28, 0x18, 0x00, 0x00 }, /* 0x9A ゥ */ + { 0x00, 0x06, 0x42, 0x43, 0x22, 0x12, 0x0e, 0x00 }, /* 0x9B ウ */ + { 0x00, 0x40, 0x48, 0x78, 0x48, 0x40, 0x00, 0x00 }, /* 0x9C ェ */ + { 0x20, 0x22, 0x22, 0x3e, 0x22, 0x22, 0x20, 0x00 }, /* 0x9D エ */ + { 0x00, 0x28, 0x28, 0x58, 0x7c, 0x08, 0x00, 0x00 }, /* 0x9E ォ */ + { 0x22, 0x22, 0x12, 0x4a, 0x7f, 0x02, 0x02, 0x00 }, /* 0x9F オ */ + { 0x00, 0x42, 0x22, 0x1f, 0x02, 0x42, 0x7e, 0x00 }, /* 0xA0 カ */ + { 0x00, 0x42, 0x22, 0x1f, 0x02, 0x42, 0x7f, 0x00 }, /* 0xA1 ガ */ + { 0x00, 0x12, 0x12, 0x1f, 0x72, 0x12, 0x10, 0x00 }, /* 0xA2 キ */ + { 0x00, 0x12, 0x12, 0x1f, 0x72, 0x13, 0x10, 0x00 }, /* 0xA3 ギ */ + { 0x00, 0x08, 0x44, 0x43, 0x22, 0x12, 0x0e, 0x00 }, /* 0xA4 ク */ + { 0x00, 0x08, 0x44, 0x43, 0x22, 0x12, 0x0f, 0x00 }, /* 0xA5 グ */ + { 0x08, 0x07, 0x42, 0x22, 0x1e, 0x02, 0x02, 0x00 }, /* 0xA6 ケ */ + { 0x08, 0x07, 0x42, 0x22, 0x1f, 0x02, 0x03, 0x00 }, /* 0xA7 ゲ */ + { 0x00, 0x42, 0x42, 0x42, 0x42, 0x42, 0x7e, 0x00 }, /* 0xA8 コ */ + { 0x00, 0x42, 0x42, 0x42, 0x43, 0x42, 0x7f, 0x00 }, /* 0xA9 ゴ */ + { 0x02, 0x02, 0x4f, 0x42, 0x22, 0x1f, 0x02, 0x00 }, /* 0xAA サ */ + { 0x02, 0x02, 0x4f, 0x42, 0x23, 0x1e, 0x03, 0x00 }, /* 0xAB ザ */ + { 0x00, 0x45, 0x4a, 0x40, 0x20, 0x10, 0x0c, 0x00 }, /* 0xAC シ */ + { 0x00, 0x45, 0x4a, 0x40, 0x21, 0x10, 0x0d, 0x00 }, /* 0xAD ジ */ + { 0x40, 0x42, 0x22, 0x22, 0x1a, 0x26, 0x40, 0x00 }, /* 0xAE ス */ + { 0x40, 0x42, 0x22, 0x22, 0x1b, 0x26, 0x41, 0x00 }, /* 0xAF ズ */ + { 0x04, 0x04, 0x3f, 0x44, 0x44, 0x54, 0x4c, 0x00 }, /* 0xB0 セ */ + { 0x04, 0x04, 0x3f, 0x44, 0x45, 0x54, 0x4d, 0x00 }, /* 0xB1 ゼ */ + { 0x00, 0x01, 0x46, 0x40, 0x20, 0x10, 0x0f, 0x00 }, /* 0xB2 ソ */ + { 0x00, 0x01, 0x46, 0x40, 0x20, 0x11, 0x0f, 0x00 }, /* 0xB3 ゾ */ + { 0x00, 0x08, 0x44, 0x4b, 0x2a, 0x12, 0x0e, 0x00 }, /* 0xB4 タ */ + { 0x00, 0x08, 0x44, 0x4b, 0x2a, 0x12, 0x0f, 0x00 }, /* 0xB5 ダ */ + { 0x08, 0x0a, 0x4a, 0x3e, 0x09, 0x09, 0x08, 0x00 }, /* 0xB6 チ */ + { 0x08, 0x0a, 0x4a, 0x3e, 0x09, 0x08, 0x09, 0x00 }, /* 0xB7 ヂ */ + { 0x00, 0x18, 0x40, 0x58, 0x20, 0x18, 0x00, 0x00 }, /* 0xB8 ッ */ + { 0x02, 0x0c, 0x42, 0x4c, 0x20, 0x10, 0x0e, 0x00 }, /* 0xB9 ツ */ + { 0x02, 0x0c, 0x42, 0x4c, 0x21, 0x10, 0x0d, 0x00 }, /* 0xBA ヅ */ + { 0x04, 0x05, 0x45, 0x3d, 0x05, 0x05, 0x04, 0x00 }, /* 0xBB テ */ + { 0x04, 0x05, 0x45, 0x3d, 0x05, 0x04, 0x05, 0x00 }, /* 0xBC デ */ + { 0x00, 0x00, 0x7f, 0x08, 0x08, 0x10, 0x00, 0x00 }, /* 0xBD ト */ + { 0x00, 0x00, 0x7f, 0x08, 0x09, 0x10, 0x01, 0x00 }, /* 0xBE ド */ + { 0x04, 0x44, 0x24, 0x1f, 0x04, 0x04, 0x04, 0x00 }, /* 0xBF ナ */ + { 0x20, 0x22, 0x22, 0x22, 0x22, 0x22, 0x20, 0x00 }, /* 0xC0 ニ */ + { 0x40, 0x41, 0x25, 0x15, 0x19, 0x27, 0x00, 0x00 }, /* 0xC1 ヌ */ + { 0x20, 0x22, 0x12, 0x7b, 0x06, 0x12, 0x20, 0x00 }, /* 0xC2 ネ */ + { 0x40, 0x40, 0x20, 0x10, 0x08, 0x07, 0x00, 0x00 }, /* 0xC3 ノ */ + { 0x40, 0x30, 0x0e, 0x00, 0x02, 0x0c, 0x70, 0x00 }, /* 0xC4 ハ */ + { 0x40, 0x30, 0x0e, 0x00, 0x02, 0x0d, 0x71, 0x00 }, /* 0xC5 バ */ + { 0x40, 0x30, 0x0e, 0x00, 0x02, 0x0d, 0x72, 0x00 }, /* 0xC6 パ */ + { 0x00, 0x3f, 0x48, 0x48, 0x48, 0x44, 0x44, 0x00 }, /* 0xC7 ヒ */ + { 0x00, 0x3f, 0x48, 0x48, 0x49, 0x44, 0x45, 0x00 }, /* 0xC8 ビ */ + { 0x00, 0x3f, 0x48, 0x48, 0x4a, 0x45, 0x46, 0x00 }, /* 0xC9 ピ */ + { 0x00, 0x02, 0x42, 0x42, 0x22, 0x12, 0x0e, 0x00 }, /* 0xCA フ */ + { 0x00, 0x02, 0x42, 0x42, 0x23, 0x12, 0x0f, 0x00 }, /* 0xCB ブ */ + { 0x00, 0x02, 0x42, 0x42, 0x22, 0x15, 0x0e, 0x00 }, /* 0xCC プ */ + { 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x20, 0x00 }, /* 0xCD ヘ */ + { 0x08, 0x04, 0x02, 0x04, 0x09, 0x10, 0x21, 0x00 }, /* 0xCE ベ */ + { 0x08, 0x04, 0x02, 0x04, 0x0a, 0x15, 0x22, 0x00 }, /* 0xCF ペ */ + { 0x24, 0x14, 0x44, 0x7f, 0x04, 0x14, 0x24, 0x00 }, /* 0xD0 ホ */ + { 0x24, 0x14, 0x44, 0x7f, 0x05, 0x14, 0x25, 0x00 }, /* 0xD1 ボ */ + { 0x24, 0x14, 0x44, 0x7f, 0x06, 0x15, 0x22, 0x00 }, /* 0xD2 ポ */ + { 0x02, 0x02, 0x12, 0x22, 0x52, 0x0a, 0x06, 0x00 }, /* 0xD3 マ */ + { 0x00, 0x21, 0x25, 0x29, 0x4a, 0x42, 0x00, 0x00 }, /* 0xD4 ミ */ + { 0x40, 0x70, 0x4c, 0x43, 0x50, 0x20, 0x40, 0x00 }, /* 0xD5 ム */ + { 0x40, 0x44, 0x24, 0x14, 0x08, 0x37, 0x00, 0x00 }, /* 0xD6 メ */ + { 0x00, 0x08, 0x09, 0x3f, 0x49, 0x49, 0x48, 0x00 }, /* 0xD7 モ */ + { 0x00, 0x10, 0x1c, 0x68, 0x08, 0x18, 0x00, 0x00 }, /* 0xD8 ャ */ + { 0x04, 0x04, 0x0f, 0x74, 0x02, 0x0a, 0x06, 0x00 }, /* 0xD9 ヤ */ + { 0x00, 0x40, 0x48, 0x48, 0x78, 0x40, 0x00, 0x00 }, /* 0xDA ュ */ + { 0x20, 0x22, 0x22, 0x22, 0x3e, 0x20, 0x20, 0x00 }, /* 0xDB ユ */ + { 0x00, 0x00, 0x44, 0x54, 0x54, 0x7c, 0x00, 0x00 }, /* 0xDC ョ */ + { 0x00, 0x42, 0x4a, 0x4a, 0x4a, 0x4a, 0x7e, 0x00 }, /* 0xDD ヨ */ + { 0x00, 0x04, 0x45, 0x45, 0x25, 0x15, 0x0c, 0x00 }, /* 0xDE ラ */ + { 0x00, 0x0f, 0x40, 0x40, 0x20, 0x1f, 0x00, 0x00 }, /* 0xDF リ */ + { 0x40, 0x20, 0x1e, 0x00, 0x7f, 0x20, 0x10, 0x00 }, /* 0xE0 ル */ + { 0x00, 0x00, 0x7f, 0x40, 0x20, 0x10, 0x08, 0x00 }, /* 0xE1 レ */ + { 0x00, 0x7e, 0x42, 0x42, 0x42, 0x42, 0x7e, 0x00 }, /* 0xE2 ロ */ + { 0x00, 0x0c, 0x44, 0x44, 0x24, 0x1c, 0x00, 0x00 }, /* 0xE3 ヮ */ + { 0x00, 0x06, 0x42, 0x42, 0x22, 0x12, 0x0e, 0x00 }, /* 0xE4 ワ */ + { 0x10, 0x12, 0x1e, 0x12, 0x12, 0x7f, 0x12, 0x00 }, /* 0xE5 ヰ */ + { 0x20, 0x22, 0x22, 0x3a, 0x26, 0x22, 0x20, 0x00 }, /* 0xE6 ヱ */ + { 0x00, 0x01, 0x45, 0x45, 0x25, 0x15, 0x0f, 0x00 }, /* 0xE7 ヲ */ + { 0x00, 0x41, 0x42, 0x40, 0x20, 0x10, 0x0c, 0x00 }, /* 0xE8 ン */ + { 0x00, 0x06, 0x42, 0x43, 0x22, 0x12, 0x0f, 0x00 }, /* 0xE9 ヴ */ + { 0x00, 0x48, 0x28, 0x1c, 0x48, 0x78, 0x00, 0x00 }, /* 0xEA ヵ */ + { 0x00, 0x10, 0x0c, 0x48, 0x38, 0x08, 0x00, 0x00 }, /* 0xEB ヶ */ + { 0x08, 0x04, 0x04, 0x08, 0x10, 0x10, 0x08, 0x00 }, /* 0xEC 〜 */ + { 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00 }, /* 0xED … */ + { 0x04, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00 }, /* 0xEE ー */ + { 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08 }, /* 0xEF ― */ +}; + +#define MISAKI_FONT_F1_H +PROGMEM const uint8_t misaki_font_f1[ MISAKI_FONT_F1_SIZE + 1 ][ MISAKI_FONT_F1_W ] = +{ + { 0x00, 0x00, 0x00 }, /* 0x00 */ + { 0x00, 0x2f, 0x00 }, /* 0x01 ! */ + { 0x03, 0x00, 0x03 }, /* 0x02 " */ + { 0x3f, 0x12, 0x3f }, /* 0x03 # */ + { 0x16, 0x3f, 0x1a }, /* 0x04 $ */ + { 0x12, 0x08, 0x24 }, /* 0x05 % */ + { 0x32, 0x3d, 0x2a }, /* 0x06 & */ + { 0x02, 0x01, 0x00 }, /* 0x07 ' */ + { 0x00, 0x3e, 0x41 }, /* 0x08 ( */ + { 0x41, 0x3e, 0x00 }, /* 0x09 ) */ + { 0x0a, 0x07, 0x0a }, /* 0x0A * */ + { 0x08, 0x3e, 0x08 }, /* 0x0B + */ + { 0x40, 0x20, 0x00 }, /* 0x0C , */ + { 0x08, 0x08, 0x08 }, /* 0x0D - */ + { 0x00, 0x20, 0x00 }, /* 0x0E . */ + { 0x10, 0x08, 0x04 }, /* 0x0F / */ + { 0x1c, 0x2a, 0x1c }, /* 0x10 0 */ + { 0x24, 0x3e, 0x20 }, /* 0x11 1 */ + { 0x32, 0x2a, 0x24 }, /* 0x12 2 */ + { 0x22, 0x2a, 0x14 }, /* 0x13 3 */ + { 0x18, 0x14, 0x3e }, /* 0x14 4 */ + { 0x2e, 0x2a, 0x12 }, /* 0x15 5 */ + { 0x1c, 0x2a, 0x12 }, /* 0x16 6 */ + { 0x02, 0x3a, 0x06 }, /* 0x17 7 */ + { 0x14, 0x2a, 0x14 }, /* 0x18 8 */ + { 0x24, 0x2a, 0x1c }, /* 0x19 9 */ + { 0x00, 0x24, 0x00 }, /* 0x1A : */ + { 0x40, 0x24, 0x00 }, /* 0x1B ; */ + { 0x08, 0x14, 0x22 }, /* 0x1C < */ + { 0x14, 0x14, 0x14 }, /* 0x1D = */ + { 0x22, 0x14, 0x08 }, /* 0x1E > */ + { 0x02, 0x29, 0x06 }, /* 0x1F ? */ + { 0x12, 0x29, 0x1e }, /* 0x20 @ */ + { 0x3e, 0x09, 0x3e }, /* 0x21 A */ + { 0x3f, 0x25, 0x1a }, /* 0x22 B */ + { 0x1e, 0x21, 0x21 }, /* 0x23 C */ + { 0x3f, 0x21, 0x1e }, /* 0x24 D */ + { 0x3f, 0x25, 0x21 }, /* 0x25 E */ + { 0x3f, 0x05, 0x01 }, /* 0x26 F */ + { 0x1e, 0x21, 0x39 }, /* 0x27 G */ + { 0x3f, 0x08, 0x3f }, /* 0x28 H */ + { 0x21, 0x3f, 0x21 }, /* 0x29 I */ + { 0x10, 0x20, 0x1f }, /* 0x2A J */ + { 0x3f, 0x04, 0x3b }, /* 0x2B K */ + { 0x3f, 0x20, 0x20 }, /* 0x2C L */ + { 0x3f, 0x06, 0x3f }, /* 0x2D M */ + { 0x3f, 0x01, 0x3e }, /* 0x2E N */ + { 0x1e, 0x21, 0x1e }, /* 0x2F O */ + { 0x3f, 0x09, 0x06 }, /* 0x30 P */ + { 0x1e, 0x21, 0x5e }, /* 0x31 Q */ + { 0x3f, 0x09, 0x36 }, /* 0x32 R */ + { 0x22, 0x25, 0x19 }, /* 0x33 S */ + { 0x01, 0x3f, 0x01 }, /* 0x34 T */ + { 0x3f, 0x20, 0x3f }, /* 0x35 U */ + { 0x3f, 0x10, 0x0f }, /* 0x36 V */ + { 0x3f, 0x18, 0x3f }, /* 0x37 W */ + { 0x33, 0x0c, 0x33 }, /* 0x38 X */ + { 0x03, 0x3c, 0x03 }, /* 0x39 Y */ + { 0x31, 0x2d, 0x23 }, /* 0x3A Z */ + { 0x00, 0x7f, 0x41 }, /* 0x3B [ */ + { 0x15, 0x3e, 0x15 }, /* 0x3C \ */ + { 0x41, 0x7f, 0x00 }, /* 0x3D ] */ + { 0x02, 0x01, 0x02 }, /* 0x3E ^ */ + { 0x40, 0x40, 0x40 }, /* 0x3F _ */ + { 0x00, 0x01, 0x02 }, /* 0x40 ` */ + { 0x18, 0x24, 0x3c }, /* 0x41 a */ + { 0x3f, 0x24, 0x18 }, /* 0x42 b */ + { 0x18, 0x24, 0x24 }, /* 0x43 c */ + { 0x18, 0x24, 0x3f }, /* 0x44 d */ + { 0x18, 0x2c, 0x2c }, /* 0x45 e */ + { 0x04, 0x3f, 0x05 }, /* 0x46 f */ + { 0x48, 0x54, 0x3c }, /* 0x47 g */ + { 0x3f, 0x04, 0x38 }, /* 0x48 h */ + { 0x00, 0x3d, 0x00 }, /* 0x49 i */ + { 0x40, 0x3d, 0x00 }, /* 0x4A j */ + { 0x3f, 0x08, 0x34 }, /* 0x4B k */ + { 0x01, 0x3f, 0x00 }, /* 0x4C l */ + { 0x3c, 0x1c, 0x38 }, /* 0x4D m */ + { 0x3c, 0x04, 0x38 }, /* 0x4E n */ + { 0x18, 0x24, 0x18 }, /* 0x4F o */ + { 0x7c, 0x24, 0x18 }, /* 0x50 p */ + { 0x18, 0x24, 0x7c }, /* 0x51 q */ + { 0x3c, 0x08, 0x04 }, /* 0x52 r */ + { 0x28, 0x3c, 0x14 }, /* 0x53 s */ + { 0x04, 0x3e, 0x24 }, /* 0x54 t */ + { 0x3c, 0x20, 0x3c }, /* 0x55 u */ + { 0x3c, 0x10, 0x0c }, /* 0x56 v */ + { 0x3c, 0x30, 0x3c }, /* 0x57 w */ + { 0x24, 0x18, 0x24 }, /* 0x58 x */ + { 0x4c, 0x50, 0x3c }, /* 0x59 y */ + { 0x24, 0x34, 0x2c }, /* 0x5A z */ + { 0x08, 0x36, 0x41 }, /* 0x5B { */ + { 0x00, 0x7f, 0x00 }, /* 0x5C | */ + { 0x41, 0x36, 0x08 }, /* 0x5D } */ + { 0x01, 0x01, 0x01 }, /* 0x5E ~ */ + { 0x10, 0x28, 0x10 }, /* 0x5F 。 */ + { 0x1f, 0x01, 0x01 }, /* 0x60 「 */ + { 0x20, 0x20, 0x3e }, /* 0x61 」 */ + { 0x10, 0x20, 0x00 }, /* 0x62 、 */ + { 0x00, 0x08, 0x00 }, /* 0x63 ・ */ + { 0x25, 0x15, 0x0f }, /* 0x64 ヲ */ + { 0x24, 0x1c, 0x0c }, /* 0x65 ァ */ + { 0x10, 0x38, 0x04 }, /* 0x66 ィ */ + { 0x18, 0x0c, 0x38 }, /* 0x67 ゥ */ + { 0x28, 0x38, 0x28 }, /* 0x68 ェ */ + { 0x28, 0x18, 0x3c }, /* 0x69 ォ */ + { 0x08, 0x3c, 0x18 }, /* 0x6A ャ */ + { 0x28, 0x38, 0x20 }, /* 0x6B ュ */ + { 0x24, 0x2c, 0x3c }, /* 0x6C ョ */ + { 0x2c, 0x2c, 0x1c }, /* 0x6D ッ */ + { 0x04, 0x08, 0x08 }, /* 0x6E ー */ + { 0x21, 0x1d, 0x07 }, /* 0x6F ア */ + { 0x08, 0x3c, 0x03 }, /* 0x70 イ */ + { 0x06, 0x23, 0x1e }, /* 0x71 ウ */ + { 0x22, 0x3e, 0x22 }, /* 0x72 エ */ + { 0x12, 0x0a, 0x3f }, /* 0x73 オ */ + { 0x32, 0x0f, 0x3e }, /* 0x74 カ */ + { 0x0a, 0x3f, 0x0a }, /* 0x75 キ */ + { 0x24, 0x13, 0x0e }, /* 0x76 ク */ + { 0x27, 0x1e, 0x02 }, /* 0x77 ケ */ + { 0x22, 0x22, 0x3e }, /* 0x78 コ */ + { 0x27, 0x12, 0x0f }, /* 0x79 サ */ + { 0x25, 0x25, 0x10 }, /* 0x7A シ */ + { 0x21, 0x19, 0x27 }, /* 0x7B ス */ + { 0x3f, 0x22, 0x2e }, /* 0x7C セ */ + { 0x21, 0x16, 0x0f }, /* 0x7D ソ */ + { 0x24, 0x1b, 0x0e }, /* 0x7E タ */ + { 0x25, 0x1f, 0x05 }, /* 0x7F チ */ + { 0x26, 0x26, 0x1e }, /* 0x80 ツ */ + { 0x25, 0x1d, 0x05 }, /* 0x81 テ */ + { 0x3f, 0x04, 0x08 }, /* 0x82 ト */ + { 0x24, 0x1f, 0x04 }, /* 0x83 ナ */ + { 0x20, 0x22, 0x22 }, /* 0x84 ニ */ + { 0x25, 0x19, 0x27 }, /* 0x85 ヌ */ + { 0x12, 0x3b, 0x16 }, /* 0x86 ネ */ + { 0x20, 0x10, 0x0f }, /* 0x87 ノ */ + { 0x3c, 0x01, 0x3e }, /* 0x88 ハ */ + { 0x1f, 0x24, 0x24 }, /* 0x89 ヒ */ + { 0x21, 0x11, 0x0f }, /* 0x8A フ */ + { 0x0c, 0x03, 0x1c }, /* 0x8B ヘ */ + { 0x1a, 0x3f, 0x1a }, /* 0x8C ホ */ + { 0x09, 0x19, 0x27 }, /* 0x8D マ */ + { 0x22, 0x2a, 0x2a }, /* 0x8E ミ */ + { 0x38, 0x27, 0x30 }, /* 0x8F ム */ + { 0x32, 0x0c, 0x13 }, /* 0x90 メ */ + { 0x05, 0x3f, 0x25 }, /* 0x91 モ */ + { 0x02, 0x3f, 0x0e }, /* 0x92 ヤ */ + { 0x21, 0x3f, 0x20 }, /* 0x93 ユ */ + { 0x25, 0x25, 0x3f }, /* 0x94 ヨ */ + { 0x25, 0x25, 0x1d }, /* 0x95 ラ */ + { 0x07, 0x20, 0x1f }, /* 0x96 リ */ + { 0x3c, 0x3f, 0x20 }, /* 0x97 ル */ + { 0x3f, 0x20, 0x10 }, /* 0x98 レ */ + { 0x3e, 0x22, 0x3e }, /* 0x99 ロ */ + { 0x23, 0x11, 0x0f }, /* 0x9A ワ */ + { 0x21, 0x21, 0x18 }, /* 0x9B ン */ + { 0x01, 0x00, 0x01 }, /* 0x9C ゙ */ + { 0x02, 0x05, 0x02 }, /* 0x9D ゚ */ +}; +#define MISAKI_FONT_F2_H +PROGMEM const uint8_t misaki_font_f2[ MISAKI_FONT_F2_SIZE + 1 ][ MISAKI_FONT_F2_W ] = +{ + { 0x75, 0x40, 0x77, 0x55, 0x75, 0x77, 0x40 }, /* 0x00 温 */ + { 0x40, 0x3e, 0x4a, 0x5e, 0x2b, 0x5e, 0x4a }, /* 0x01 度 */ + { 0x6b, 0x62, 0x7f, 0x35, 0x2f, 0x35, 0x7f }, /* 0x02 調 */ + { 0x7c, 0x5b, 0x5e, 0x24, 0x7b, 0x0e, 0x3a }, /* 0x03 節 */ + { 0x04, 0x7e, 0x01, 0x7e, 0x4a, 0x5e, 0x69 }, /* 0x04 低 */ + { 0x06, 0x3a, 0x2f, 0x3f, 0x6b, 0x7e, 0x46 }, /* 0x05 電 */ + { 0x40, 0x3f, 0x41, 0x49, 0x7f, 0x49, 0x41 }, /* 0x06 圧 */ + { 0x02, 0x62, 0x6b, 0x6b, 0x6b, 0x62, 0x02 }, /* 0x07 言 */ + { 0x6a, 0x6b, 0x14, 0x7d, 0x57, 0x7d, 0x10 }, /* 0x08 語 */ + { 0x41, 0x3f, 0x55, 0x55, 0x3d, 0x57, 0x51 }, /* 0x09 戻 */ + { 0x21, 0x3f, 0x2d, 0x7f, 0x2a, 0x12, 0x2e }, /* 0x0A 取 */ + { 0x0a, 0x77, 0x5a, 0x50, 0x5a, 0x77, 0x0a }, /* 0x0B 替 */ + { 0x20, 0x24, 0x13, 0x7d, 0x55, 0x53, 0x70 }, /* 0x0C 名 */ + { 0x7a, 0x2a, 0x7b, 0x02, 0x1a, 0x43, 0x7a }, /* 0x0D 前 */ + { 0x4a, 0x52, 0x5e, 0x2b, 0x5e, 0x42, 0x4a }, /* 0x0E 変 */ + { 0x41, 0x5f, 0x35, 0x3f, 0x55, 0x5f, 0x41 }, /* 0x0F 更 */ + { 0x7d, 0x14, 0x57, 0x7d, 0x0e, 0x40, 0x7f }, /* 0x10 削 */ + { 0x7f, 0x1b, 0x54, 0x16, 0x7d, 0x16, 0x54 }, /* 0x11 除 */ + { 0x49, 0x3a, 0x40, 0x7e, 0x57, 0x56, 0x76 }, /* 0x12 追 */ + { 0x42, 0x3f, 0x42, 0x7e, 0x7e, 0x42, 0x7e }, /* 0x13 加 */ + { 0x04, 0x7e, 0x51, 0x37, 0x7d, 0x37, 0x50 }, /* 0x14 保 */ + { 0x12, 0x7a, 0x17, 0x52, 0x76, 0x1e, 0x12 }, /* 0x15 存 */ + { 0x7f, 0x55, 0x7f, 0x14, 0x5d, 0x7f, 0x55 }, /* 0x16 睡 */ + { 0x7f, 0x55, 0x7f, 0x7f, 0x55, 0x3d, 0x57 }, /* 0x17 眠 */ + { 0x7f, 0x55, 0x37, 0x78, 0x17, 0x45, 0x7f }, /* 0x18 閉 */ + { 0x7f, 0x2b, 0x7b, 0x28, 0x7b, 0x2b, 0x7f }, /* 0x19 開 */ + { 0x1e, 0x12, 0x12, 0x7f, 0x12, 0x12, 0x1e }, /* 0x1A 中 */ + { 0x7f, 0x41, 0x6b, 0x7f, 0x6b, 0x51, 0x7f }, /* 0x1B 国 */ + { 0x52, 0x5a, 0x57, 0x3a, 0x57, 0x5a, 0x52 }, /* 0x1C 英 */ + { 0x00, 0x7f, 0x49, 0x49, 0x49, 0x49, 0x7f }, /* 0x1D 日 */ + { 0x22, 0x12, 0x2a, 0x7f, 0x2a, 0x12, 0x22 }, /* 0x1E 本 */ +}; +/* + プリセット + 温度調節 + タイマー + コントロール + スクリーン + ブザー + 低電圧アラーム + 言語 + 戻る + 取り替える + キャリブレーション + 名前を変更 + 削除 + 追加 + 保存 + デフォルト + 睡眠 + ブースト + 保存 + 睡眠 + 閉じる + ブースト + 保存 + ダイレクト + PID + ビッグ + ニュース + 閉じる + 開く + いいえ、 + はい、 + 中国語 + 英語 + いいえ、 + はい、 + メインスクリーン + フリップ + 保存 + アバウト + 日本語 + + 汉字转换表:温度調節低電圧言語戻取替名前変更削除追加保存睡眠閉開中国英日本 +*/ +const char JP_0[] PROGMEM = { 0xf0, 0xcc, 0xdf, 0xb0, 0xb8, 0xbd, }; +const char JP_1[] PROGMEM = { 0xf2, 0x00, 0x01, 0x02, 0x03, }; +const char JP_2[] PROGMEM = { 0xf0, 0xb4, 0x99, 0xd3, 0xee, }; +const char JP_3[] PROGMEM = { 0xf0, 0xa8, 0xe8, 0xbd, 0xe2, 0xee, 0xe0, }; +const char JP_4[] PROGMEM = { 0xf0, 0xae, 0xa4, 0xdf, 0xee, 0xe8, }; +const char JP_5[] PROGMEM = { 0xf0, 0xcb, 0xab, 0xee, }; +const char JP_6[] PROGMEM = { 0xf2, 0x04, 0x05, 0x06, 0xf0, 0x97, 0xde, 0xee, 0xd5, }; +const char JP_7[] PROGMEM = { 0xf2, 0x07, 0x08, }; +const char JP_8[] PROGMEM = { 0xf2, 0x09, 0xf0, 0x8d, }; +const char JP_9[] PROGMEM = { 0xf2, 0x0a, 0xf0, 0x8c, 0xf2, 0x0b, 0xf0, 0x4a, 0x8d, }; +const char JP_10[] PROGMEM = { 0xf0, 0xa2, 0xd8, 0xdf, 0xcb, 0xe1, 0xee, 0xac, 0xdc, 0xe8, }; +const char JP_11[] PROGMEM = { 0xf2, 0x0c, 0x0d, 0xf0, 0x94, 0xf2, 0x0e, 0x0f, }; +const char JP_12[] PROGMEM = { 0xf2, 0x10, 0x11, }; +const char JP_13[] PROGMEM = { 0xf2, 0x12, 0x13, }; +const char JP_14[] PROGMEM = { 0xf2, 0x14, 0x15, }; +const char JP_15[] PROGMEM = { 0xf0, 0xbc, 0xca, 0x9e, 0xe0, 0xbd, }; +const char JP_16[] PROGMEM = { 0xf2, 0x16, 0x17, }; +const char JP_17[] PROGMEM = { 0xf0, 0xcb, 0xee, 0xae, 0xbd, }; +const char JP_18[] PROGMEM = { 0xf2, 0x14, 0x15, }; +const char JP_19[] PROGMEM = { 0xf2, 0x16, 0x17, }; +const char JP_20[] PROGMEM = { 0xf2, 0x18, 0xf0, 0x5a, 0x8d, }; +const char JP_21[] PROGMEM = { 0xf0, 0xcb, 0xee, 0xae, 0xbd, }; +const char JP_22[] PROGMEM = { 0xf2, 0x14, 0x15, }; +const char JP_23[] PROGMEM = { 0xf0, 0xb5, 0x99, 0xe1, 0xa4, 0xbd, }; +const char JP_24[] PROGMEM = { 0xf1, 0x30, 0x29, 0x24, }; +const char JP_25[] PROGMEM = { 0xf0, 0xc8, 0xb8, 0xa5, }; +const char JP_26[] PROGMEM = { 0xf0, 0xc0, 0xda, 0xee, 0xae, }; +const char JP_27[] PROGMEM = { 0xf2, 0x18, 0xf0, 0x5a, 0x8d, }; +const char JP_28[] PROGMEM = { 0xf2, 0x19, 0xf0, 0x51, }; +const char JP_29[] PROGMEM = { 0xf0, 0x46, 0x46, 0x4a, 0x01, }; +const char JP_30[] PROGMEM = { 0xf0, 0x71, 0x46, 0x01, }; +const char JP_31[] PROGMEM = { 0xf2, 0x1a, 0x1b, 0x08, }; +const char JP_32[] PROGMEM = { 0xf2, 0x1c, 0x08, }; +const char JP_33[] PROGMEM = { 0xf0, 0x46, 0x46, 0x4a, 0x01, }; +const char JP_34[] PROGMEM = { 0xf0, 0x71, 0x46, 0x01, }; +const char JP_35[] PROGMEM = { 0xf0, 0xd6, 0x99, 0xe8, 0xae, 0xa4, 0xdf, 0xee, 0xe8, }; +const char JP_36[] PROGMEM = { 0xf0, 0xca, 0xdf, 0xb8, 0xcc, }; +const char JP_37[] PROGMEM = { 0xf2, 0x14, 0x15, }; +const char JP_38[] PROGMEM = { 0xf0, 0x97, 0xc5, 0x9b, 0xbd, }; +const char JP_39[] PROGMEM = { 0xf2, 0x1d, 0x1e, 0x08, }; +const char *const JP_table[] = {JP_0, JP_1, JP_2, JP_3, JP_4, JP_5, JP_6, JP_7, JP_38, JP_8, JP_9, JP_10, JP_11, JP_12, JP_13, JP_14, JP_15, JP_16, JP_17, JP_18, JP_19, JP_20, JP_21, JP_22, JP_23, JP_24, JP_25, JP_26, JP_27, JP_28, JP_29, JP_30, JP_31, JP_32, JP_39, JP_35, JP_36, JP_37,}; +const char JP_Length_table[] PROGMEM = {6, 5, 5, 7, 6, 4, 9, 3 ,5, 4, 9, 10, 8, 3, 3, 3, 6, 3, 5, 3, 3, 5, 5, 3, 6, 4, 4, 5, 5, 4, 5, 4, 4, 3, 4, 9, 5, 3,}; + +bool lastbutton; +#include //注意 这里使用被阉割的图形库,只有绘图功能,并非通用的版本 +Arduboy2 arduboy; + +#include +#include +#include + +// Firmware version +#define VERSION "v1.7t4" + +// Type of rotary encoder +#define ROTARY_TYPE 1 // 0: 2 increments/step; 1: 4 increments/step + +// Pins +#define SENSOR_PIN A0 // temperature sense +#define VIN_PIN A1 // input voltage sense +#define BUZZER_PIN 5 // buzzer +#define BUTTON_PIN 6 // rotary encoder switch +#define ROTARY_1_PIN 7 // rotary encoder 1 +#define ROTARY_2_PIN 8 // rotary encoder 2 +#define CONTROL_PIN 9 // heater MOSFET PWM control +#define SWITCH_PIN 10 // handle vibration switch + +// Default temperature control values (recommended soldering temperature: 300-380°C) +#define ChipTempCalVal 330 //芯片内部温度读取校准值 -->可以根据实际情况修改,不同机器情况不同,通常误差在10°C内 +#define TEMP_MIN 150 // min selectable temperature +#define TEMP_MAX 400 // max selectable temperature +#define TEMP_DEFAULT 320 // default start setpoint +#define TEMP_SLEEP 150 // temperature in sleep mode +#define TEMP_BOOST 60 // temperature increase in boost mode +#define TEMP_STEP 10 // rotary encoder temp change steps + +// Default tip temperature calibration values +#define TEMP200 216 // temperature at ADC = 200 +#define TEMP280 308 // temperature at ADC = 280 +#define TEMP360 390 // temperature at ADC = 360 +#define TEMPCHP 30 // chip temperature while calibration +#define TIPMAX 8 // max number of tips +#define TIPNAMELENGTH 6 // max length of tip names (including termination) +#define TIPNAME "BC1.5" // default tip name + +// Default timer values (0 = disabled) +#define TIME2SLEEP 5 // time to enter sleep mode in minutes +#define TIME2OFF 15 // time to shut off heater in minutes +#define TIMEOFBOOST 40 // time to stay in boost mode in seconds + +// Control values +#define TIME2SETTLE 950 // time in microseconds to allow OpAmp output to settle +#define SMOOTHIE 0.05 // OpAmp output smooth factor (1=no smoothing; 0.05 default) +#define PID_ENABLE true // enable PID control +#define BEEP_ENABLE true // enable/disable buzzer +#define MAINSCREEN 1 // type of main screen (0: big numbers; 1: more infos) + +// EEPROM identifier +#define EEPROM_IDENT 0x08FF // to identify if EEPROM was written by this program + +//Beep +#define SetBeepCoolTime 200 +unsigned long BeepCoolTime; + +// Define the aggressive and conservative PID tuning parameters +double aggKp = 11, aggKi = 0.5, aggKd = 1; +double consKp = 11, consKi = 3, consKd = 5; + +// Default values that can be changed by the user and stored in the EEPROM +uint16_t DefaultTemp = TEMP_DEFAULT; +uint16_t SleepTemp = TEMP_SLEEP; +uint8_t BoostTemp = TEMP_BOOST; +uint8_t time2sleep = TIME2SLEEP; +uint8_t time2off = TIME2OFF; +uint8_t timeOfBoost = TIMEOFBOOST; +uint8_t MainScrType = MAINSCREEN; +bool PIDenable = PID_ENABLE; +bool beepEnable = BEEP_ENABLE; +// Default values for tips +uint16_t CalTemp[TIPMAX][4] = {TEMP200, TEMP280, TEMP360, TEMPCHP}; +char TipName[TIPMAX][TIPNAMELENGTH] = {TIPNAME}; +uint8_t CurrentTip = 0; +uint8_t NumberOfTips = 1; + +// Menu items +/* + 这个可以选择进行界面美化 + const char *DeleteMessage[] = { "Warning", "You cannot", "delete your", "last tip!" }; + const char *MaxTipMessage[] = { "Warning", "You reached", "maximum number", "of tips!" }; +*/ +// Variables for pin change interrupt +volatile uint8_t a0, b0, c0, d0; +volatile bool ab0; +volatile int count, countMin, countMax, countStep; +volatile bool handleMoved; + +// Variables for temperature control +uint16_t SetTemp, ShowTemp, gap, Step; +double Input, Output, Setpoint, RawTemp, CurrentTemp, ChipTemp; + +// Variables for voltage readings +uint16_t Vcc, Vin; + +// State variables +bool inSleepMode = false; +bool inOffMode = false; +bool inBoostMode = false; +bool inCalibMode = false; +bool isWorky = true; +bool beepIfWorky = true; +bool TipIsPresent = true; +bool FlipState = false; +// Timing variables +uint32_t sleepmillis; +uint32_t boostmillis; +uint32_t buttonmillis; +uint8_t goneMinutes; +uint8_t goneSeconds; +uint8_t SensorCounter = 255; +//串口助手 +int x, y, a, b; +//欠压报警 +byte UnderVoltage = 0; +// Control variables +uint16_t time2settle = 300; + +//模拟数字滚轮 Numerical scrolling effect +int Value; +int LastValue[3]; +float SlidingAnimationY[3]; + +// Specify the links and initial PID tuning parameters +PID ctrl(&Input, &Output, &Setpoint, aggKp, aggKi, aggKd, REVERSE); + + + +//LANG 语言支持 +/* 0 - 中文 CHINESE + 1 - 英文 ENGLISH + 2 - 日语 +*/ +byte LANG = 1; +void Flip(bool Fmode) { + arduboy.flipVertical(Fmode); + arduboy.flipHorizontal(Fmode); +} +void setup() { + arduboy.begin(); + arduboy.setFrameRate(30); + + //Serial.begin(115200); + // set the pin modes + pinMode(SENSOR_PIN, INPUT); + pinMode(VIN_PIN, INPUT); + pinMode(BUZZER_PIN, OUTPUT); + pinMode(CONTROL_PIN, OUTPUT); + pinMode(ROTARY_1_PIN, INPUT_PULLUP); + pinMode(ROTARY_2_PIN, INPUT_PULLUP); + pinMode(BUTTON_PIN, INPUT_PULLUP); + pinMode(SWITCH_PIN, INPUT_PULLUP); + + analogWrite(CONTROL_PIN, 255); // this shuts off the heater + digitalWrite(BUZZER_PIN, LOW); // must be LOW when buzzer not in use + + // setup ADC + ADCSRA |= bit (ADPS0) | bit (ADPS1) | bit (ADPS2); // set ADC prescaler to 128 + ADCSRA |= bit (ADIE); // enable ADC interrupt + interrupts (); // enable global interrupts + + // setup pin change interrupt for rotary encoder + PCMSK0 = bit (PCINT0); // Configure pin change interrupt on Pin8 + PCICR = bit (PCIE0); // Enable pin change interrupt + PCIFR = bit (PCIF0); // Clear interrupt flag + + + // get default values from EEPROM + getEEPROM(); + //设置屏幕反转状态 + Flip(FlipState); + // read supply voltages in mV + Vcc = getVCC(); Vin = getVIN(); + + // read and set current iron temperature + SetTemp = DefaultTemp; + RawTemp = denoiseAnalog(SENSOR_PIN); + ChipTemp = getChipTemp(); + calculateTemp(); + + // turn on heater if iron temperature is well below setpoint + if ((CurrentTemp + 20) < DefaultTemp) analogWrite(CONTROL_PIN, 0); + + // tell the PID to range between 0 and the full window size + ctrl.SetOutputLimits(0, 255); + + // start PID + ctrl.SetMode(AUTOMATIC); + + // set initial rotary encoder values + a0 = PINB & 1; b0 = PIND >> 7 & 1; ab0 = (a0 == b0); + setRotary(TEMP_MIN, TEMP_MAX, TEMP_STEP, DefaultTemp); + + // reset sleep timer + sleepmillis = millis(); + + // long beep for setup completion + beep(); beep(); + + +} + + +void loop() { + //HelpMeSerialer(); + ROTARYCheck(); // check rotary encoder (temp/boost setting, enter setup menu) + SLEEPCheck(); // check and activate/deactivate sleep modes + SENSORCheck(); // reads temperature and vibration switch of the iron + Thermostat(); // heater control + MainScreen(); // updates the main page on the OLED + //beep(0); +} + + + + +// check rotary encoder; set temperature, toggle boost mode, enter setup menu accordingly +void ROTARYCheck() { + // set working temperature according to rotary encoder value + SetTemp = getRotary(); + + // check rotary encoder switch + uint8_t c = digitalRead(BUTTON_PIN); + if ( !c && c0 ) { + beep(); + buttonmillis = millis(); + while ( (!digitalRead(BUTTON_PIN)) && ((millis() - buttonmillis) < 500) ); + if ((millis() - buttonmillis) >= 500) SetupScreen(); + else { + inBoostMode = !inBoostMode; + if (inBoostMode) boostmillis = millis(); + handleMoved = true; + } + } + c0 = c; + + // check timer when in boost mode + if (inBoostMode && timeOfBoost) { + goneSeconds = (millis() - boostmillis) / 1000; + if (goneSeconds >= timeOfBoost) { + inBoostMode = false; // stop boost mode + beep(); // beep if boost mode is over + beepIfWorky = true; // beep again when working temperature is reached + } + } +} + + +// check and activate/deactivate sleep modes +void SLEEPCheck() { + if (handleMoved) { // if handle was moved + if (inSleepMode) { // in sleep or off mode? + if ((CurrentTemp + 20) < SetTemp) // if temp is well below setpoint + analogWrite(CONTROL_PIN, 0); // then start the heater right now + beep(); // beep on wake-up + beepIfWorky = true; // beep again when working temperature is reached + } + handleMoved = false; // reset handleMoved flag + inSleepMode = false; // reset sleep flag + inOffMode = false; // reset off flag + sleepmillis = millis(); // reset sleep timer + } + + // check time passed since the handle was moved + goneMinutes = (millis() - sleepmillis) / 60000; + if ( (!inSleepMode) && (time2sleep > 0) && (goneMinutes >= time2sleep) ) { + inSleepMode = true; + beep(); + } + if ( (!inOffMode) && (time2off > 0) && (goneMinutes >= time2off ) ) { + inOffMode = true; + beep(); + } +} + + +// reads temperature, vibration switch and supply voltages +void SENSORCheck() { + analogWrite(CONTROL_PIN, 255); // shut off heater in order to measure temperature + delayMicroseconds(time2settle); // wait for voltage to settle + + uint16_t temp = denoiseAnalog(SENSOR_PIN); // read ADC value for temperature + uint8_t d = digitalRead(SWITCH_PIN); // check handle vibration switch + if (d != d0) { + handleMoved = true; // set flag if handle was moved + d0 = d; + } + if (! SensorCounter--) Vin = getVIN(); // get Vin every now and then + + analogWrite(CONTROL_PIN, Output); // turn on again heater + + RawTemp += (temp - RawTemp) * SMOOTHIE; // stabilize ADC temperature reading + calculateTemp(); + + // stabilize displayed temperature when around setpoint + if ((ShowTemp != Setpoint) || (abs(ShowTemp - CurrentTemp) > 5)) ShowTemp = CurrentTemp; + + // set state variable if temperature is in working range; beep if working temperature was just reached + gap = abs(SetTemp - CurrentTemp); + if (gap < 5) { + if (!isWorky && beepIfWorky) beep(); + isWorky = true; + beepIfWorky = false; + } + else isWorky = false; + // checks if tip is present or currently inserted + if (ShowTemp > 500) TipIsPresent = false; // tip removed ? + if (!TipIsPresent && (ShowTemp < 500)) { // new tip inserted ? + analogWrite(CONTROL_PIN, 255); // shut off heater + beep(); // beep for info + TipIsPresent = true; // tip is present now + ChangeTipScreen(); // show tip selection screen + updateEEPROM(); // update setting in EEPROM + handleMoved = true; // reset all timers + RawTemp = denoiseAnalog(SENSOR_PIN); // restart temp smooth algorithm + c0 = LOW; // switch must be released + setRotary(TEMP_MIN, TEMP_MAX, TEMP_STEP, SetTemp); // reset rotary encoder + } +} + + +// calculates real temperature value according to ADC reading and calibration values +void calculateTemp() { + if (RawTemp < 200) CurrentTemp = map (RawTemp, 0, 200, 21, CalTemp[CurrentTip][0]); + else if (RawTemp < 280) CurrentTemp = map (RawTemp, 200, 280, CalTemp[CurrentTip][0], CalTemp[CurrentTip][1]); + else CurrentTemp = map (RawTemp, 280, 360, CalTemp[CurrentTip][1], CalTemp[CurrentTip][2]); +} + + +//调温 +void Thermostat() { + // define Setpoint acoording to current working mode + if (inOffMode) Setpoint = 0; + else if (inSleepMode) Setpoint = SleepTemp; + else if (inBoostMode) Setpoint = SetTemp + BoostTemp; + else Setpoint = SetTemp; + + // control the heater (PID or direct) + gap = abs(Setpoint - CurrentTemp); + if (PIDenable) { + Input = CurrentTemp; + if (gap < 30) ctrl.SetTunings(consKp, consKi, consKd); + else ctrl.SetTunings(aggKp, aggKi, aggKd); + ctrl.Compute(); + } else { + // turn on heater if current temperature is below setpoint + if ((CurrentTemp + 0.5) < Setpoint) Output = 0; else Output = 255; + } + analogWrite(CONTROL_PIN, Output); // set heater PWM +} + + +// creates a short beep on the buzzer +void beep() { + /* + if (beepEnable) { + if (BeepCoolTime + SetBeepCoolTime < millis()) { + if (state) BeepCoolTime = millis(); + analogWrite(BUZZER_PIN, 0); + } else analogWrite(BUZZER_PIN, 127); + } else analogWrite(BUZZER_PIN, 0); + */ + //体谅一下,没内存了,只能用原始的办法驱动无源蜂鸣器,否则我也不想牺牲宝贵响应资源换内存 + if (beepEnable) { + for (uint8_t i = 0; i < 255; i++) { + digitalWrite(BUZZER_PIN, HIGH); + delayMicroseconds(125); + digitalWrite(BUZZER_PIN, LOW); + delayMicroseconds(125); + } + } +} + +//设置旋转编码器的起始值 +// sets start values for rotary encoder +void setRotary(int rmin, int rmax, int rstep, int rvalue) { + countMin = rmin << ROTARY_TYPE; + countMax = rmax << ROTARY_TYPE; + countStep = rstep; + count = rvalue << ROTARY_TYPE; +} + + +// reads current rotary encoder value +int getRotary() { + return (count >> ROTARY_TYPE); +} + + +// reads user settings from EEPROM; if EEPROM values are invalid, write defaults +void getEEPROM() { + uint16_t identifier = (EEPROM.read(0) << 8) | EEPROM.read(1); + if (identifier == EEPROM_IDENT) { + DefaultTemp = (EEPROM.read(2) << 8) | EEPROM.read(3); + SleepTemp = (EEPROM.read(4) << 8) | EEPROM.read(5); + BoostTemp = EEPROM.read(6); + time2sleep = EEPROM.read(7); + time2off = EEPROM.read(8); + timeOfBoost = EEPROM.read(9); + MainScrType = EEPROM.read(10); + PIDenable = EEPROM.read(11); + beepEnable = EEPROM.read(12); + CurrentTip = EEPROM.read(13); + NumberOfTips = EEPROM.read(14); + LANG = EEPROM.read(15); + FlipState = EEPROM.read(16); + UnderVoltage = EEPROM.read(17); + uint8_t i, j; + uint16_t counter = 18; + for (i = 0; i < NumberOfTips; i++) { + for (j = 0; j < TIPNAMELENGTH; j++) { + TipName[i][j] = EEPROM.read(counter++); + } + for (j = 0; j < 4; j++) { + CalTemp[i][j] = EEPROM.read(counter++) << 8; + CalTemp[i][j] |= EEPROM.read(counter++); + } + } + } + else { + EEPROM.update(0, EEPROM_IDENT >> 8); EEPROM.update(1, EEPROM_IDENT & 0xFF); + updateEEPROM(); + } +} + + +// writes user settings to EEPROM using updade function to minimize write cycles +void updateEEPROM() { + EEPROM.update( 2, DefaultTemp >> 8); + EEPROM.update( 3, DefaultTemp & 0xFF); + EEPROM.update( 4, SleepTemp >> 8); + EEPROM.update( 5, SleepTemp & 0xFF); + EEPROM.update( 6, BoostTemp); + EEPROM.update( 7, time2sleep); + EEPROM.update( 8, time2off); + EEPROM.update( 9, timeOfBoost); + EEPROM.update(10, MainScrType); + EEPROM.update(11, PIDenable); + EEPROM.update(12, beepEnable); + EEPROM.update(13, CurrentTip); + EEPROM.update(14, NumberOfTips); + EEPROM.update(15, LANG); + EEPROM.update(16, FlipState); + EEPROM.update(17, UnderVoltage); + uint8_t i, j; + uint16_t counter = 18; + for (i = 0; i < NumberOfTips; i++) { + for (j = 0; j < TIPNAMELENGTH; j++) EEPROM.update(counter++, TipName[i][j]); + for (j = 0; j < 4; j++) { + EEPROM.update(counter++, CalTemp[i][j] >> 8); + EEPROM.update(counter++, CalTemp[i][j] & 0xFF); + } + } +} +//此片段用于DEBUG +void HelpMeSerialer() { + //串口助手 + if (Serial.available()) { + char TmpChar = Serial.read(); + switch (TmpChar) { + case 'x': x = Serial.parseInt(); + case 'y': y = Serial.parseInt(); + case 'a': a = Serial.parseInt(); + case 'b': b = Serial.parseInt(); + } + } + /* + Serial.println(String("X ->") + x); + Serial.println(String("Y ->") + y); + Serial.println(String("A ->") + a); + Serial.println(String("B ->") + b); + */ +} +// draws the main screen +void MainScreen() { + if (!(arduboy.nextFrame())) //帧率锁 + return; + byte SysState; + if (MainScrType) { + arduboy.clear(); + //详细信息页 + arduboy.fillRect(0, 0, 128, 64, 1); //白底 + arduboy.setTextSize(1); + SetTextColor(0); + //预设名 + arduboy.drawSlowXYBitmap(0, 0, Tag, 16, 16, 0); + arduboy.setCursor(19, 4); arduboy.print(TipName[CurrentTip]); + //状态显示 + if (ShowTemp > 500) SysState = 0; + else if (inOffMode) SysState = 1; + else if (inSleepMode) SysState = 2; + else if (inBoostMode) SysState = 3; + else if (isWorky) SysState = 4; + else if (Output < 180) SysState = 5; + else SysState = 6; + //显示状态 + arduboy.setCursor(53, 1); + arduboy.setTextSize(2); + switch (LANG) { + case 0: arduboy.drawSlowXYBitmap(80, 1, S_table[SysState], 28, 14, 0); break; //中文 Chinese + default: //英文 English + switch (SysState) { + case 1: arduboy.print(F("OFF")); break; + case 2: arduboy.print(F("SLEEP")); break; + case 3: arduboy.print(F("BOOST")); break; + case 4: arduboy.print(F("WORKY")); break; + case 5: arduboy.print(F("HEAT")); break; + case 6: arduboy.print(F("HOLD")); break; + default: arduboy.print(F("ERROR")); break; + } break; + } + arduboy.drawSlowXYBitmap(113, 1, C_table[SysState], 14, 14, 0); + arduboy.setTextSize(1); + //芯片 + //R1 + if (getChipTemp() > 80 && ((millis() * 4) / 1000) % 2) beep(); else arduboy.drawSlowXYBitmap(2, 18, Chip, 14, 14, 0); + + //R2 + if ((float)Vin / 100 < UnderVoltage && ((millis() * 4) / 1000) % 2) beep(); else arduboy.drawSlowXYBitmap(2, 34, Lightning, 14, 14, 0); + //R3 + arduboy.setCursor(19, 16); arduboy.print(getChipTemp(), 1); arduboy.print((char)248); arduboy.print(F("C")); //芯片温度 + arduboy.setCursor(19, 24); arduboy.print((float)getVCC() / 1000, 2); arduboy.print(F("V")); //芯片电压 + arduboy.setCursor(19, 32); arduboy.print((float)Vin / 1000, 1); arduboy.print(F("V")); //输入电压 + arduboy.setCursor(19, 40); arduboy.print(F(VERSION)); //固件 + //显示探头温度 + arduboy.setCursor(57, 18); + arduboy.setTextSize(4); + if (ShowTemp > 500) arduboy.print(F("000")); else arduboy.print(ShowTemp); + arduboy.drawRect(55, 16, 72, 32, 0); + + DrawStatusBar(0); + arduboy.display(); + } else { + arduboy.clear(); + if (getChipTemp() > 80 && ((millis() * 4) / 1000) % 2) beep(); + if ((float)Vin / 100 < UnderVoltage && ((millis() * 4) / 1000) % 2) beep(); + if (ShowTemp > 500) DisplayNum(999); else DisplayNum(ShowTemp); + arduboy.fillRect(0, 48, 128, 3, 0); + DrawStatusBar(1); + arduboy.display(); + } + +} + +void DrawStatusBar(bool color) { + SetTextColor(color); + arduboy.setTextSize(1); + //温度条 + //框 + arduboy.drawRect(1, 49, 102, 14, color); + //条 + if (ShowTemp <= 500) arduboy.fillRect(1, 49, map(ShowTemp, 0, 500, 2, 102), 14, color); + //指示部分 + arduboy.fillRect(map(Setpoint, 0, 500, 2, 102) - 2, 50, 3, 13, color); + //先来个白底 + arduboy.fillRect(map(Setpoint, 0, 500, 2, 102) - 3, 60, 5, 4, color); + arduboy.drawLine(map(Setpoint, 0, 500, 2, 102) - 1, 60, map(Setpoint, 0, 500, 2, 102) - 1, 49, !color); + + //画指示针 + arduboy.drawSlowXYBitmap(map(Setpoint, 0, 500, 2, 102) - 3, 59, Pointer, 5, 4, !color); + + //功率条 + arduboy.drawRect(104, 49, 23, 14, color); + arduboy.fillRect(104, 49, map(Output, 255, 0, 0, 23), 14, color); + + SetTextColor(!color); + //////////////进入反色//////////////////////////////// + arduboy.setCursor(2, 55); arduboy.print(Setpoint, 0); arduboy.print((char)248); arduboy.print(F("C")); //探头预设温度 + arduboy.setCursor(105, 55); arduboy.print(map(Output, 255, 0, 0, 100)); arduboy.print(F("%")); //功率百分比 + SetTextColor(color); +} + +//设置画笔颜色 +void SetTextColor(bool color) { + arduboy.setTextBackground(!color); + arduboy.setTextColor(color); +} +// setup screen +void SetupScreen() { + analogWrite(CONTROL_PIN, 255); // shut off heater + beep(); + uint16_t SaveSetTemp = SetTemp; + uint8_t selection = 0; + bool repeat = true; + + while (repeat) { + MenuLevel = 0; //默认打开主菜单 + selection = MenuScreen(selection); + switch (selection) { + case 0: MenuLevel = 1; TipScreen(); repeat = false; break; + case 1: MenuLevel = 2; TempScreen(); break; + case 2: MenuLevel = 3; TimerScreen(); break; + case 3: MenuLevel = 4; PIDenable = MenuScreen(PIDenable); break; + case 4: ScreenSet(); break; + case 5: MenuLevel = 6; beepEnable = MenuScreen(beepEnable); break; + case 6: UnderVoltageSet(); break; + case 7: MenuLevel = 8; LANG = MenuScreen(LANG); break; + case 8: QRcodeScreen(); break; + default: repeat = false; break; + } + } + updateEEPROM(); + handleMoved = true; + SetTemp = SaveSetTemp; + setRotary(TEMP_MIN, TEMP_MAX, TEMP_STEP, SetTemp); +} + + +//显示设置菜单 +// tip settings screen +void ScreenSet() { + uint8_t selection = 0; + bool repeat = true; + while (repeat) { + MenuLevel = 9; + selection = MenuScreen(selection); + switch (selection) { + case 0: MenuLevel = 5; MainScrType = MenuScreen(MainScrType); break; + case 1: FlipState=!FlipState; break; + default: repeat = false; break; + } + Flip(FlipState); //设置屏幕反转状态 + } + updateEEPROM(); +} + +//预设设置菜单 +// tip settings screen +void TipScreen() { + uint8_t selection = 0; + bool repeat = true; + while (repeat) { + MenuLevel = 1; + selection = MenuScreen(selection); + switch (selection) { + case 0: ChangeTipScreen(); break; + case 1: CalibrationScreen(); break; + case 2: InputNameScreen(); break; + case 3: DeleteTipScreen(); break; + case 4: AddTipScreen(); break; + default: repeat = false; break; + } + } +} + +//温控设置菜单 +// temperature settings screen +void TempScreen() { + uint8_t selection = 0; + bool repeat = true; + while (repeat) { + selection = MenuScreen(selection); + switch (selection) { + case 0: setRotary(TEMP_MIN, TEMP_MAX, TEMP_STEP, DefaultTemp); + DefaultTemp = InputScreen(); break; + case 1: setRotary(20, 200, TEMP_STEP, SleepTemp); + SleepTemp = InputScreen(); break; + case 2: setRotary(10, 100, TEMP_STEP, BoostTemp); + BoostTemp = InputScreen(); break; + default: repeat = false; break; + } + } + updateEEPROM(); +} + +//定时器设置菜单 +// timer settings screen +void TimerScreen() { + uint8_t selection = 0; + bool repeat = true; + while (repeat) { + selection = MenuScreen(selection); + switch (selection) { + case 0: setRotary(0, 30, 1, time2sleep); + time2sleep = InputScreen(); break; + case 1: setRotary(0, 60, 5, time2off); + time2off = InputScreen(); break; + case 2: setRotary(0, 180, 10, timeOfBoost); + timeOfBoost = InputScreen(); break; + default: repeat = false; break; + } + } + updateEEPROM(); +} +//英语支持 +void Print_EN(byte i) { + char buffer[11]; + strcpy_P(buffer, (char *)pgm_read_word(&(EN_table[i]))); + arduboy.print(buffer); +} +//菜单界面 +// menu screen +uint8_t MenuScreen(uint8_t selected) { + int SlidingAnimationX; + uint8_t lastselected = selected; + setRotary(0, Menu_table[MenuLevel] - 1, 1, selected); + lastbutton = (!digitalRead(BUTTON_PIN)); + SetTextColor(1); + do { + selected = getRotary(); + //非线性滑动动画 + SlidingAnimationX += (selected - lastselected) * 56; + if (SlidingAnimationX != 0) SlidingAnimationX += 0.6 * (-SlidingAnimationX); + lastselected = selected; + arduboy.clear(); + //绘制图标 如果有指定的话 + for (byte i = 0; i < 5; i++) if (selected - 2 + i >= 0 && selected - 2 + i < Menu_table[MenuLevel]) { + DrawUIFrame(-72 + i * 56 + SlidingAnimationX, 0, 1); + drawSlowXYBitmapResize(-72 + i * 56 + SlidingAnimationX + 3, 3, Ico_table[selected - 2 + i + QueryMenuObject()], 14, 14, 3, 1); + } + + + if (LANG == 0) arduboy.drawSlowXYBitmap(48, 48, CN_table[selected + QueryMenuObject()], 36, 16, 1); else if (LANG == 2) { + drawText(48, 52, JP_table[selected + QueryMenuObject()], pgm_read_byte(&(JP_Length_table[selected + QueryMenuObject()]))); + } else { + arduboy.setCursor(48, 49); + arduboy.setTextSize(1); + Print_EN(selected + QueryMenuObject()); + } + + + arduboy.display(); + CheckLastButton(); + //beep(0); + } while (digitalRead(BUTTON_PIN) || lastbutton); + beep(); + return selected; +} +void DrawUIFrame(int x, int y, bool color) { + arduboy.fillRect(x, y, 48, 48, color); + arduboy.fillRect(x + 3, y + 3, 42, 42, !color); //雕空 + DrawPoint(x, y, 0); + DrawPoint(x + 47, y, 0); + DrawPoint(x, y + 47, 0); + DrawPoint(x + 47, y + 47, 0); +} +void DrawPoint(int x, int y, bool color) { + arduboy.drawPixel(x + 1, y, color); + arduboy.drawPixel(x - 1, y, color); + arduboy.drawPixel(x, y + 1, color); + arduboy.drawPixel(x, y - 1, color); + arduboy.drawPixel(x, y, color); +} +//检查按键 +void CheckLastButton() { + if (lastbutton && digitalRead(BUTTON_PIN)) { + delay(10); + lastbutton = false; + } +} +//返回对应层数的对象数 +byte QueryMenuObject() { + int SUM = 0; + for (int i = 0; i < (MenuLevel); i++) SUM += Menu_table[i]; + return SUM; +} +//信息窗 +/* + void MessageScreen(const char *Items[], uint8_t numberOfItems) { + lastbutton = (!digitalRead(BUTTON_PIN)); + + //u8g.setFont(//u8g_font_9x15); + //u8g.setFontPosTop(); + for (uint8_t i = 0; i < numberOfItems; i++) //u8g.drawStr( 0, i * 16, Items[i]); + + do { + CheckLastButton(); + } while (digitalRead(BUTTON_PIN) || lastbutton); + beep(); + } +*/ +/* + 好看是好看,但是浪费内存 + int wav(byte wavi, int num) { + return (wavi + byte(millis() / 100)) * (float(float(num - countMin) / float(countMax - countMin)) - 0.5) * 5; + } +*/ + +//模拟数字滚轮 Numerical scrolling effect +void DisplayNum(int Num) { + arduboy.setTextSize(6); + SetTextColor(0); + //数字滚轮 + for (byte i = 0; i < 3; i++) LastValue[i] = int(Value/pow(10,2-i))%10; + Value = Num; + for (byte i = 0; i < 3; i++) { + SlidingAnimationY[i] += ((int(Value/pow(10,2-i))%10) - LastValue[i]) * 50; + if (SlidingAnimationY[i] != 0) SlidingAnimationY[i] += 0.8 * (-SlidingAnimationY[i]); + arduboy.fillRect(0 + i * 44, 0, 38, 50, 1); //白底 + for (int ii = -1; ii < 2; ii++) { + arduboy.setCursor(4 + i * 44, 4 - SlidingAnimationY[i] + ii * 50); + arduboy.print(LastValue[i] + ii); + } + } + //刻度标 + arduboy.fillRect(0, 0, 128, 2, 0); //上遮罩层 + arduboy.fillRect(0, 51, 128, 13, 0); //下遮罩层 +} + +//数值输入界面 +// input value screen +uint16_t InputScreen() { + lastbutton = (!digitalRead(BUTTON_PIN)); + do { + arduboy.clear(); + DisplayNum(getRotary()); + arduboy.display(); + CheckLastButton(); + } while (digitalRead(BUTTON_PIN) || lastbutton); + beep(); + return Value; +} +void QRcodeScreen() { + arduboy.clear(); + arduboy.drawSlowXYBitmap(40, 0, QRCode, 48, 48, 1); + arduboy.display(); + delay(100); + do { + } while (digitalRead(BUTTON_PIN) || lastbutton); + beep(); +} +//欠压报警设置 +// information display screen +void UnderVoltageSet() { + setRotary(0, 250, 1, UnderVoltage); + UnderVoltage = InputScreen(); + beep(); +} + +//更换预设界面 +// change tip screen +void ChangeTipScreen() { + uint8_t selected = CurrentTip; + uint8_t lastselected = selected; + int8_t arrow = 0; + if (selected) arrow = 1; + setRotary(0, NumberOfTips - 1, 1, selected); + lastbutton = (!digitalRead(BUTTON_PIN)); + do { + //beep(0); + arduboy.clear(); + selected = getRotary(); + arrow = constrain(arrow + selected - lastselected, 0, 2); + lastselected = selected; + SetTextColor(0); + arduboy.setTextSize(2); + arduboy.setCursor(0, 0); arduboy.print(F("Select Tip")); + SetTextColor(1); + arduboy.setCursor(0, 16 * (arrow + 1)); arduboy.print(F(">")); + for (uint8_t i = 0; i < 3; i++) { + uint8_t drawnumber = selected + i - arrow; + if (drawnumber < NumberOfTips) { + arduboy.setCursor(12, 16 * (i + 1)); arduboy.print(TipName[selected + i - arrow]); + } + } + CheckLastButton(); + arduboy.display(); + } while (digitalRead(BUTTON_PIN) || lastbutton); + + beep(); + CurrentTip = selected; +} + +//温度校准界面 +// temperature calibration screen +void CalibrationScreen() { + uint16_t CalTempNew[4]; + for (uint8_t CalStep = 0; CalStep < 3; CalStep++) { + SetTemp = CalTemp[CurrentTip][CalStep]; + setRotary(100, 500, 1, SetTemp); + beepIfWorky = true; + lastbutton = (!digitalRead(BUTTON_PIN)); + do { + arduboy.clear(); + arduboy.setTextSize(2); + SENSORCheck(); // reads temperature and vibration switch of the iron + Thermostat(); // heater control + arduboy.setCursor(0, 0); arduboy.print(F("Step: ")); arduboy.print(CalStep + 1); arduboy.print("/3"); + if (isWorky) { + arduboy.setCursor(0, 16); arduboy.print(F("Set measured")); + arduboy.setCursor(0, 32); arduboy.print(F("temp: ")); arduboy.print(getRotary()); + } else { + arduboy.setCursor(0, 16); arduboy.print(F("ADC: ")); arduboy.print(uint16_t(RawTemp)); + arduboy.setCursor(0, 32); arduboy.print(F("Please wait")); + } + CheckLastButton(); + arduboy.display(); + } while (digitalRead(BUTTON_PIN) || lastbutton); + + CalTempNew[CalStep] = getRotary(); + beep(); delay (10); + } + + analogWrite(CONTROL_PIN, 255); // shut off heater + delayMicroseconds(time2settle); // wait for voltage to settle + CalTempNew[3] = getChipTemp(); // read chip temperature + if ((CalTempNew[0] + 30 < CalTempNew[1]) && (CalTempNew[1] + 30 < CalTempNew[2])) { + MenuLevel = 7; + if (MenuScreen(0)) { + for (uint8_t i = 0; i < 4; i++) CalTemp[CurrentTip][i] = CalTempNew[i]; + } + } +} + +//命名界面 文本输入界面 +// input tip name screen +void InputNameScreen() { + uint8_t value; + for (uint8_t digit = 0; digit < (TIPNAMELENGTH - 1); digit++) { + lastbutton = (!digitalRead(BUTTON_PIN)); + setRotary(31, 96, 1, 65); + do { + value = getRotary(); + if (value == 31) { + value = 95; + setRotary(31, 96, 1, 95); + } + if (value == 96) { + value = 32; + setRotary(31, 96, 1, 32); + } + //arduboy.setCursor(0, 0);arduboy.print(); + arduboy.clear(); + arduboy.setTextSize(2); + arduboy.setCursor(16 * digit, 48); arduboy.print(char(94)); + arduboy.setCursor(0, 32); + for (uint8_t i = 0; i < digit; i++) arduboy.print(TipName[CurrentTip][i]); + arduboy.setCursor(16 * digit, 32); arduboy.print(char(value)); + CheckLastButton(); + arduboy.display(); + } while (digitalRead(BUTTON_PIN) || lastbutton); + TipName[CurrentTip][digit] = value; + beep(); delay (10); + } + TipName[CurrentTip][TIPNAMELENGTH - 1] = 0; + return value; +} + + +// delete tip screen +void DeleteTipScreen() { + MenuLevel = 7; + if (NumberOfTips == 1) { + //MessageScreen(DeleteMessage, sizeof(DeleteMessage)); + } + else if (MenuScreen(0)) { + if (CurrentTip == (NumberOfTips - 1)) { + CurrentTip--; + } + else { + for (uint8_t i = CurrentTip; i < (NumberOfTips - 1); i++) { + for (uint8_t j = 0; j < TIPNAMELENGTH; j++) TipName[i][j] = TipName[i + 1][j]; + for (uint8_t j = 0; j < 4; j++) CalTemp[i][j] = CalTemp[i + 1][j]; + } + } + NumberOfTips--; + } +} + + +// add new tip screen +void AddTipScreen() { + if (NumberOfTips < TIPMAX) { + CurrentTip = NumberOfTips++; InputNameScreen(); + CalTemp[CurrentTip][0] = TEMP200; CalTemp[CurrentTip][1] = TEMP280; + CalTemp[CurrentTip][2] = TEMP360; CalTemp[CurrentTip][3] = TEMPCHP; + } //MessageScreen(MaxTipMessage, sizeof(MaxTipMessage)); 信息窗 +} + + +// average several ADC readings in sleep mode to denoise +uint16_t denoiseAnalog (byte port) { + uint16_t result = 0; + ADCSRA |= bit (ADEN) | bit (ADIF); // enable ADC, turn off any pending interrupt + if (port >= A0) port -= A0; // set port and + ADMUX = (0x0F & port) | bit(REFS0); // reference to AVcc + set_sleep_mode (SLEEP_MODE_ADC); // sleep during sample for noise reduction + for (uint8_t i = 0; i < 32; i++) { // get 32 readings + sleep_mode(); // go to sleep while taking ADC sample + while (bitRead(ADCSRA, ADSC)); // make sure sampling is completed + result += ADC; // add them up + } + bitClear (ADCSRA, ADEN); // disable ADC + return (result >> 5); // devide by 32 and return value +} + +//读取芯片温度 +// get internal temperature by reading ADC channel 8 against 1.1V reference +double getChipTemp() { + unsigned int wADC; + double t; + ADMUX = (_BV(REFS1) | _BV(REFS0) | _BV(MUX3)); + ADCSRA |= _BV(ADEN); + delay(5); + ADCSRA |= _BV(ADSC); + while (bit_is_set(ADCSRA, ADSC)); + wADC = ADCW; + t = (wADC - ChipTempCalVal ) / 1.22; + return (t); +} + +/* + // get internal temperature by reading ADC channel 8 against 1.1V reference + double getChipTemp() { + uint16_t result = 0; + ADCSRA |= bit (ADEN) | bit (ADIF); // enable ADC, turn off any pending interrupt + ADMUX = bit (REFS1) | bit (REFS0) | bit (MUX3); // set reference and mux + delay(20); // wait for voltages to settle + set_sleep_mode (SLEEP_MODE_ADC); // sleep during sample for noise reduction + for (uint8_t i = 0; i < 32; i++) { // get 32 readings + sleep_mode(); // go to sleep while taking ADC sample + while (bitRead(ADCSRA, ADSC)); // make sure sampling is completed + result += ADC; // add them up + } + bitClear (ADCSRA, ADEN); // disable ADC + result >>= 2; // devide by 4 + return ((result - 2594) / 9.76); // calculate internal temperature in degrees C + } +*/ +// get input voltage in mV by reading 1.1V reference against AVcc +uint16_t getVCC() { + uint16_t result = 0; + ADCSRA |= bit (ADEN) | bit (ADIF); // enable ADC, turn off any pending interrupt + // set Vcc measurement against 1.1V reference + ADMUX = bit (REFS0) | bit (MUX3) | bit (MUX2) | bit (MUX1); + delay(1); // wait for voltages to settle + set_sleep_mode (SLEEP_MODE_ADC); // sleep during sample for noise reduction + for (uint8_t i = 0; i < 16; i++) { // get 16 readings + sleep_mode(); // go to sleep while taking ADC sample + while (bitRead(ADCSRA, ADSC)); // make sure sampling is completed + result += ADC; // add them up + } + bitClear (ADCSRA, ADEN); // disable ADC + result >>= 4; // devide by 16 + return (1125300L / result); // 1125300 = 1.1 * 1023 * 1000 +} + + +// get supply voltage in mV +uint16_t getVIN() { + long result; + result = denoiseAnalog (VIN_PIN); // read supply voltage via voltage divider + return (result * Vcc / 179.474); // 179.474 = 1023 * R13 / (R12 + R13) +} + +//ADC中断服务 +// ADC interrupt service routine +EMPTY_INTERRUPT (ADC_vect); // nothing to be done here + +//旋转编码器触发中断 +// Pin change interrupt service routine for rotary encoder +ISR (PCINT0_vect) { + uint8_t a = PINB & 1; + uint8_t b = PIND >> 7 & 1; + if (a != a0) { // A changed + a0 = a; + if (b != b0) { // B changed + b0 = b; + count = constrain(count + ((a == b) ? countStep : -countStep), countMin, countMax); + if (ROTARY_TYPE && ((a == b) != ab0)) { + count = constrain(count + ((a == b) ? countStep : -countStep), countMin, countMax);; + } + ab0 = (a == b); + handleMoved = true; + } + } +} + +//显示位图,并允许放大 代码片段改自arduboy2 +void drawSlowXYBitmapResize(int x, int y, const uint8_t *bitmap, uint8_t w, uint8_t h, uint8_t size, uint8_t color) { + // no need to draw at all of we're offscreen + /* + if (x + w < 0 || x > WIDTH - 1 || y + h < 0 || y > HEIGHT - 1) + return; + */ + int16_t xi, yi, byteWidth = (w + 7) / 8; + for (yi = 0; yi < h; yi ++) { + for (xi = 0; xi < w; xi ++) { + if (pgm_read_byte(bitmap + yi * byteWidth + xi / 8) & (128 >> (xi & 7))) { + //arduboy.drawPixel(x + xi, y + yi, color); + arduboy.fillRect(x + xi * size, y + yi * size, size, size, color); + } + } + } +} +/* + 8x8 dot Japanese font for Arduboy + + Copyright (c) 2016 emutyworks + + Released under the MIT license + https://github.com/emutyworks/8x8DotJPFont/blob/master/LICENSE.txt +*/ +void drawText(uint8_t x, uint8_t y, const uint8_t *mes, uint8_t cnt) +{ + uint8_t pb; + uint8_t page; + uint8_t screen_start = 0; + uint8_t screen_end = 128; + + if (x < screen_start) { + x = screen_start; + } + + for (uint8_t i = 0; i < cnt; i++) { + pb = pgm_read_byte_near(mes + i); + + switch (pb) { + case MISAKI_FONT_F0_PAGE: + page = MISAKI_FONT_F0_PAGE; + continue; + case MISAKI_FONT_F1_PAGE: + page = MISAKI_FONT_F1_PAGE; + continue; + case MISAKI_FONT_F2_PAGE: + page = MISAKI_FONT_F2_PAGE; + continue; + } + + if (!page) { + continue; + } + + switch (page) { +#ifdef MISAKI_FONT_F0_H + case MISAKI_FONT_F0_PAGE: + if (pb > MISAKI_FONT_F0_SIZE) { + continue; + } + if ((x + 8) > screen_end) { + x = screen_start; + y = y + 8; + } + arduboy.drawBitmap(x, y, misaki_font_f0[ pb ], MISAKI_FONT_F0_W, 8, WHITE); + x = x + 8; + break; +#endif +#ifdef MISAKI_FONT_F1_H + case MISAKI_FONT_F1_PAGE: + if (pb > MISAKI_FONT_F1_SIZE) { + continue; + } + if ((x + 4) > screen_end) { + x = screen_start; + y = y + 8; + } + arduboy.drawBitmap(x, y, misaki_font_f1[ pb ], MISAKI_FONT_F1_W, 8, WHITE); + arduboy.drawBitmap(x + 3, y, misaki_font_0x00, 1, 8, WHITE); + x = x + 4; + break; +#endif +#ifdef MISAKI_FONT_F2_H + case MISAKI_FONT_F2_PAGE: + if (pb > MISAKI_FONT_F2_SIZE) { + continue; + } + if ((x + 8) > screen_end) { + x = screen_start; + y = y + 8; + } + arduboy.drawBitmap(x, y, misaki_font_f2[ pb ], MISAKI_FONT_F2_W, 8, WHITE); + arduboy.drawBitmap(x + 7, y, misaki_font_0x00, 1, 8, WHITE); + x = x + 8; + break; +#endif + } + } +}