mcu8051ide-1.4.7/0000775000175000017500000000000012067167651014074 5ustar milleniummilleniummcu8051ide-1.4.7/doc/0000755000175000017500000000000012067167647014644 5ustar milleniummilleniummcu8051ide-1.4.7/doc/handbook/0000755000175000017500000000000012067167647016431 5ustar milleniummilleniummcu8051ide-1.4.7/doc/handbook/mcu8051ide.en.pdf0000644000175000017500001064047412067167647021331 0ustar milleniummillenium%PDF-1.4 % 1 0 obj << /S /GoTo /D (chapter*.2) >> endobj 4 0 obj (Preface) endobj 5 0 obj << /S /GoTo /D (section*.3) >> endobj 8 0 obj (Goals of the project) endobj 9 0 obj << /S /GoTo /D (section*.6) >> endobj 12 0 obj (Requirements) endobj 13 0 obj << /S /GoTo /D (section*.8) >> endobj 16 0 obj (Intended Audience) endobj 17 0 obj << /S /GoTo /D (chapter.1) >> endobj 20 0 obj (Brief introduction) endobj 21 0 obj << /S /GoTo /D (section.1.1) >> endobj 24 0 obj (Main components of MCU 8051 IDE) endobj 25 0 obj << /S /GoTo /D (section.1.2) >> endobj 28 0 obj (What is MCS-51) endobj 29 0 obj << /S /GoTo /D (section.1.3) >> endobj 32 0 obj (What is the Assembly language) endobj 33 0 obj << /S /GoTo /D (chapter.2) >> endobj 36 0 obj (Quick start) endobj 37 0 obj << /S /GoTo /D (section.2.1) >> endobj 40 0 obj (Demonstration project) endobj 41 0 obj << /S /GoTo /D (section.2.2) >> endobj 44 0 obj (Your first project in MCU 8051 IDE) endobj 45 0 obj << /S /GoTo /D (chapter.3) >> endobj 48 0 obj (Detailed introduction to GUI) endobj 49 0 obj << /S /GoTo /D (section.3.1) >> endobj 52 0 obj (Source code editor) endobj 53 0 obj << /S /GoTo /D (subsection.3.1.1) >> endobj 56 0 obj (Syntax highlight and validation) endobj 57 0 obj << /S /GoTo /D (subsection.3.1.2) >> endobj 60 0 obj (Spell checking) endobj 61 0 obj << /S /GoTo /D (subsection.3.1.3) >> endobj 64 0 obj (Auto-completion) endobj 65 0 obj << /S /GoTo /D (subsection.3.1.4) >> endobj 68 0 obj (Editor command line) endobj 69 0 obj << /S /GoTo /D (section.3.2) >> endobj 72 0 obj (Bottom panel) endobj 73 0 obj << /S /GoTo /D (subsection.3.2.1) >> endobj 76 0 obj (Main panel of the MCU simulator) endobj 77 0 obj << /S /GoTo /D (subsection.3.2.2) >> endobj 80 0 obj (C variables) endobj 81 0 obj << /S /GoTo /D (subsection.3.2.3) >> endobj 84 0 obj (Graph showing voltage levels) endobj 85 0 obj << /S /GoTo /D (subsection.3.2.4) >> endobj 88 0 obj (Messages panel) endobj 89 0 obj << /S /GoTo /D (subsection.3.2.5) >> endobj 92 0 obj (Notes) endobj 93 0 obj << /S /GoTo /D (subsection.3.2.6) >> endobj 96 0 obj (Calculator) endobj 97 0 obj << /S /GoTo /D (subsection.3.2.7) >> endobj 100 0 obj (Find in files) endobj 101 0 obj << /S /GoTo /D (subsection.3.2.8) >> endobj 104 0 obj (Terminal emulator) endobj 105 0 obj << /S /GoTo /D (section.3.3) >> endobj 108 0 obj (Left panel) endobj 109 0 obj << /S /GoTo /D (subsection.3.3.1) >> endobj 112 0 obj (List of opened files) endobj 113 0 obj << /S /GoTo /D (subsection.3.3.2) >> endobj 116 0 obj (List of project files) endobj 117 0 obj << /S /GoTo /D (subsection.3.3.3) >> endobj 120 0 obj (SFR watches) endobj 121 0 obj << /S /GoTo /D (subsection.3.3.4) >> endobj 124 0 obj (File system browser) endobj 125 0 obj << /S /GoTo /D (section.3.4) >> endobj 128 0 obj (Right panel) endobj 129 0 obj << /S /GoTo /D (subsection.3.4.1) >> endobj 132 0 obj (List of bookmarks) endobj 133 0 obj << /S /GoTo /D (subsection.3.4.2) >> endobj 136 0 obj (List of breakpoints) endobj 137 0 obj << /S /GoTo /D (subsection.3.4.3) >> endobj 140 0 obj (Instruction details) endobj 141 0 obj << /S /GoTo /D (subsection.3.4.4) >> endobj 144 0 obj (Data register watches) endobj 145 0 obj << /S /GoTo /D (subsection.3.4.5) >> endobj 148 0 obj (Subprograms call monitor) endobj 149 0 obj << /S /GoTo /D (subsection.3.4.6) >> endobj 152 0 obj (List of symbols) endobj 153 0 obj << /S /GoTo /D (subsection.3.4.7) >> endobj 156 0 obj (HW plug-ins manager) endobj 157 0 obj << /S /GoTo /D (section.3.5) >> endobj 160 0 obj (Other tools) endobj 161 0 obj << /S /GoTo /D (subsection.3.5.1) >> endobj 164 0 obj (SFR map) endobj 165 0 obj << /S /GoTo /D (subsection.3.5.2) >> endobj 168 0 obj (Map of bit addressable area) endobj 169 0 obj << /S /GoTo /D (subsection.3.5.3) >> endobj 172 0 obj (Stack monitor) endobj 173 0 obj << /S /GoTo /D (subsection.3.5.4) >> endobj 176 0 obj (Symbol viewer) endobj 177 0 obj << /S /GoTo /D (subsection.3.5.5) >> endobj 180 0 obj (ASCII chart) endobj 181 0 obj << /S /GoTo /D (subsection.3.5.6) >> endobj 184 0 obj (8051 Instruction Table) endobj 185 0 obj << /S /GoTo /D (subsection.3.5.7) >> endobj 188 0 obj (8-segment editor) endobj 189 0 obj << /S /GoTo /D (subsection.3.5.8) >> endobj 192 0 obj (Stopwatch) endobj 193 0 obj << /S /GoTo /D (subsection.3.5.9) >> endobj 196 0 obj (Scribble notepad) endobj 197 0 obj << /S /GoTo /D (subsection.3.5.10) >> endobj 200 0 obj (Base converter) endobj 201 0 obj << /S /GoTo /D (subsection.3.5.11) >> endobj 204 0 obj (RS-232 debugger) endobj 205 0 obj << /S /GoTo /D (subsection.3.5.12) >> endobj 208 0 obj (Hexadecimal editors) endobj 209 0 obj << /S /GoTo /D (subsection.3.5.13) >> endobj 212 0 obj (Hibernation of simulated program) endobj 213 0 obj << /S /GoTo /D (subsection.3.5.14) >> endobj 216 0 obj (Interrupt monitor) endobj 217 0 obj << /S /GoTo /D (subsection.3.5.15) >> endobj 220 0 obj (Conversions between *.hex, *.bin and *.adf files) endobj 221 0 obj << /S /GoTo /D (subsection.3.5.16) >> endobj 224 0 obj (Normalization of source code indentation) endobj 225 0 obj << /S /GoTo /D (subsection.3.5.17) >> endobj 228 0 obj (Change letter case) endobj 229 0 obj << /S /GoTo /D (subsection.3.5.18) >> endobj 232 0 obj (User defined commands) endobj 233 0 obj << /S /GoTo /D (subsection.3.5.19) >> endobj 236 0 obj (Clean-up project folder) endobj 237 0 obj << /S /GoTo /D (subsection.3.5.20) >> endobj 240 0 obj (File statistic) endobj 241 0 obj << /S /GoTo /D (section.3.6) >> endobj 244 0 obj (Configuration dialogues) endobj 245 0 obj << /S /GoTo /D (chapter.4) >> endobj 248 0 obj (Build-in macro-assembler) endobj 249 0 obj << /S /GoTo /D (section.4.1) >> endobj 252 0 obj (Statements) endobj 253 0 obj << /S /GoTo /D (section.4.2) >> endobj 256 0 obj (Symbols) endobj 257 0 obj << /S /GoTo /D (section.4.3) >> endobj 260 0 obj (Constants) endobj 261 0 obj << /S /GoTo /D (section.4.4) >> endobj 264 0 obj (Expressions) endobj 265 0 obj << /S /GoTo /D (section.4.5) >> endobj 268 0 obj (The instruction set processing) endobj 269 0 obj << /S /GoTo /D (section.4.6) >> endobj 272 0 obj (Assembler directives) endobj 273 0 obj << /S /GoTo /D (section.4.7) >> endobj 276 0 obj (Assembler Controls) endobj 277 0 obj << /S /GoTo /D (section.4.8) >> endobj 280 0 obj (Predefined Symbols) endobj 281 0 obj << /S /GoTo /D (section.4.9) >> endobj 284 0 obj (Segment type) endobj 285 0 obj << /S /GoTo /D (section.4.10) >> endobj 288 0 obj (Conditional Assembly) endobj 289 0 obj << /S /GoTo /D (section.4.11) >> endobj 292 0 obj (Macro Processing) endobj 293 0 obj << /S /GoTo /D (section.4.12) >> endobj 296 0 obj (Reserved keywords) endobj 297 0 obj << /S /GoTo /D (section.4.13) >> endobj 300 0 obj (Compatibility with ASEM-51) endobj 301 0 obj << /S /GoTo /D (section.4.14) >> endobj 304 0 obj (List File Format) endobj 305 0 obj << /S /GoTo /D (section.4.15) >> endobj 308 0 obj (Specification of Intel\2568 HEX Format) endobj 309 0 obj << /S /GoTo /D (chapter.5) >> endobj 312 0 obj (Disassembler) endobj 313 0 obj << /S /GoTo /D (chapter.6) >> endobj 316 0 obj (MCU simulator) endobj 317 0 obj << /S /GoTo /D (section.6.1) >> endobj 320 0 obj (Short introduction) endobj 321 0 obj << /S /GoTo /D (section.6.2) >> endobj 324 0 obj (Modes of simulation) endobj 325 0 obj << /S /GoTo /D (section.6.3) >> endobj 328 0 obj (Waring conditions) endobj 329 0 obj << /S /GoTo /D (section.6.4) >> endobj 332 0 obj (Limitations) endobj 333 0 obj << /S /GoTo /D (section.6.5) >> endobj 336 0 obj (Virtual hardware) endobj 337 0 obj << /S /GoTo /D (subsection.6.5.1) >> endobj 340 0 obj (DS1620 temperature sensor) endobj 341 0 obj << /S /GoTo /D (subsection.6.5.2) >> endobj 344 0 obj (File interface) endobj 345 0 obj << /S /GoTo /D (subsection.6.5.3) >> endobj 348 0 obj (LED Panel) endobj 349 0 obj << /S /GoTo /D (subsection.6.5.4) >> endobj 352 0 obj (Single LED Display) endobj 353 0 obj << /S /GoTo /D (subsection.6.5.5) >> endobj 356 0 obj (Multiplexed LED Display) endobj 357 0 obj << /S /GoTo /D (subsection.6.5.6) >> endobj 360 0 obj (LED Matrix) endobj 361 0 obj << /S /GoTo /D (subsection.6.5.7) >> endobj 364 0 obj (Matrix Keypad) endobj 365 0 obj << /S /GoTo /D (subsection.6.5.8) >> endobj 368 0 obj (Simple Keypad) endobj 369 0 obj << /S /GoTo /D (subsection.6.5.9) >> endobj 372 0 obj (LCD display controlled by HD44780) endobj 373 0 obj << /S /GoTo /D (chapter.7) >> endobj 376 0 obj (Writing hardware tool control plug-ins) endobj 377 0 obj << /S /GoTo /D (section.7.1) >> endobj 380 0 obj (Foreword) endobj 381 0 obj << /S /GoTo /D (section.7.2) >> endobj 384 0 obj (How to write your own plug-in) endobj 385 0 obj << /S /GoTo /D (section.7.3) >> endobj 388 0 obj (Using MCU 8051 IDE API) endobj 389 0 obj << /S /GoTo /D (section.7.4) >> endobj 392 0 obj (A basic example) endobj 393 0 obj << /S /GoTo /D (section.7.5) >> endobj 396 0 obj (Random remarks) endobj 397 0 obj << /S /GoTo /D (chapter.8) >> endobj 400 0 obj (Command Line Interface) endobj 401 0 obj << /S /GoTo /D (chapter.9) >> endobj 404 0 obj (Translating the IDE into different languages) endobj 405 0 obj << /S /GoTo /D (appendix.A) >> endobj 408 0 obj (License) endobj 409 0 obj << /S /GoTo /D (appendix.B) >> endobj 412 0 obj (Regression testing) endobj 413 0 obj << /S /GoTo /D (section.B.1) >> endobj 416 0 obj (Foreword) endobj 417 0 obj << /S /GoTo /D (section.B.2) >> endobj 420 0 obj (More about the implementation) endobj 421 0 obj << /S /GoTo /D (appendix.C) >> endobj 424 0 obj (Project web page and other media) endobj 425 0 obj << /S /GoTo /D (section.C.1) >> endobj 428 0 obj (Official project web page) endobj 429 0 obj << /S /GoTo /D (section.C.2) >> endobj 432 0 obj (Other media) endobj 433 0 obj << /S /GoTo /D (section.C.3) >> endobj 436 0 obj (GIT repository) endobj 437 0 obj << /S /GoTo /D (appendix.D) >> endobj 440 0 obj (8051 Instructions in numerical Order) endobj 441 0 obj << /S /GoTo /D (appendix.E) >> endobj 444 0 obj (8051 Instructions in alphabetical order) endobj 445 0 obj << /S /GoTo /D (appendix.F) >> endobj 448 0 obj (List of supported micro-controllers) endobj 449 0 obj << /S /GoTo /D (subsection.F.0.1) >> endobj 452 0 obj (Intel\256) endobj 453 0 obj << /S /GoTo /D (subsection.F.0.2) >> endobj 456 0 obj (Atmel\256) endobj 457 0 obj << /S /GoTo /D (appendix.G) >> endobj 460 0 obj (Change log) endobj 461 0 obj << /S /GoTo /D [462 0 R /Fit ] >> endobj 464 0 obj << /Length 211 /Filter /FlateDecode >> stream xuPN@ +|Hz A[ⲜöIKH/v{G x|Vֲpi-Bony =73]ݰCV _B7åO-SE- B,4F!i5tD;[Nr3~JCZmΫiPVvWC8 I.?؄Hj endstream endobj 462 0 obj << /Type /Page /Contents 464 0 R /Resources 463 0 R /MediaBox [0 0 595.276 841.89] /Parent 469 0 R >> endobj 465 0 obj << /D [462 0 R /XYZ 80.963 747.976 null] >> endobj 466 0 obj << /D [462 0 R /XYZ 81.963 715.221 null] >> endobj 463 0 obj << /Font << /F19 467 0 R /F20 468 0 R >> /ProcSet [ /PDF /Text ] >> endobj 472 0 obj << /Length 1022 /Filter /FlateDecode >> stream xڥs6+(U?-oIrm:ӆLr 6kR@,ɻ,G,at9}{#t9ʹdq!iʒȄ&yz2sE|`'<>|eQ/?F,S$Ӕj%a\D_Fl;OvWDGI*wǒI!պqZeXpaH[j>/6(್9r&x>U pƵfBnq%_?HјuOE#Xpn\t/Փ+ðC}qQ{p UREpkNi*åue^&Wra+xA*IivYǚ/`gTHAz"!xň (("%uG %-}31YXZ qږXr3$ Pd—({q=G{Ο-s,\Bo=sHSX4LTwQQ\vKAO~.PP6/ĄB3uuk}ONӜ ^PY9qgk8pm*,7`x\:#5 34yyzӆ ;vӑ)`9 e  MM H[5oc]=AVKNK4U<9_% TQ ^!)I1|@¨>8b'vW;;f7? #H+cZw}Vَ Yv\ua= h8a~[WC3Fy*^$x.1\biAdu/Jo-Z?ҽu6`~m .apa>+ɨkl uM뫲9- bk?"(z(jEЩNlhY_ղЃJ@J hJGm˩oBoG[i"{Xqg=m#0G@vO/  endstream endobj 471 0 obj << /Type /Page /Contents 472 0 R /Resources 470 0 R /MediaBox [0 0 595.276 841.89] /Parent 469 0 R >> endobj 473 0 obj << /D [471 0 R /XYZ 122.806 747.976 null] >> endobj 470 0 obj << /Font << /F25 474 0 R /F16 475 0 R /F24 476 0 R /F26 477 0 R >> /ProcSet [ /PDF /Text ] >> endobj 509 0 obj << /Length 1079 /Filter /FlateDecode >> stream xXMw6W (|Oz&=szz]hbng}%$HbcVxwߕ"oEb~;D=ØR=p8f`ě''??E-яqh^ @HCw.G1*7EA4f#/`sB=[ b At>CJ4BijBf`@qoFꕲ(,ꌂP?A;DBXG{IHK&-ڤ?1<=`^ hA`eUg᮴:ICزJ2͚binՅgoz:K o`1X|sPmiNE%i]0>w:FT',UDf۱j[/WY\Hi; .4C#r4cŇp7j6vDe(j/i^c$>s@6ÆL %;Tq \[h*@c KD xmE]4n@*}D{ T1e?lD;ג:PdrE[Xł:EA,S9SU쐩v1дb:+S Lq 삳jz! [[mNJ^6BU;Q0  uT ђ+&{7@ k%Ef CaM ;PnGa6RkFfg:G#>s_[\vWq:'ȣ=I{^;$ 2=j8?;?>m{f\%B:Q_pl endstream endobj 508 0 obj << /Type /Page /Contents 509 0 R /Resources 507 0 R /MediaBox [0 0 595.276 841.89] /Parent 469 0 R /Annots [ 478 0 R 479 0 R 480 0 R 481 0 R 482 0 R 483 0 R 484 0 R 485 0 R 486 0 R 487 0 R 488 0 R 489 0 R 490 0 R 491 0 R 492 0 R 493 0 R 494 0 R 495 0 R 496 0 R 497 0 R 498 0 R 499 0 R 500 0 R 501 0 R 502 0 R 503 0 R 504 0 R 505 0 R ] >> endobj 478 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [80.966 554.078 126.528 564.321] /A << /S /GoTo /D (chapter*.2) >> >> endobj 479 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.521 537.308 202.737 549.859] /A << /S /GoTo /D (section*.3) >> >> endobj 480 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.521 522.862 170.309 535.413] /A << /S /GoTo /D (section*.6) >> >> endobj 481 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.521 510.741 196.407 520.967] /A << /S /GoTo /D (section*.8) >> >> endobj 482 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [80.966 484.592 206.749 494.834] /A << /S /GoTo /D (chapter.1) >> >> endobj 483 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.521 467.822 315.703 480.372] /A << /S /GoTo /D (section.1.1) >> >> endobj 484 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.521 455.7 213.312 465.926] /A << /S /GoTo /D (section.1.2) >> >> endobj 485 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.521 438.93 289.513 451.48] /A << /S /GoTo /D (section.1.3) >> >> endobj 486 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [80.966 412.781 166.789 425.348] /A << /S /GoTo /D (chapter.2) >> >> endobj 487 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.521 398.335 243.389 410.886] /A << /S /GoTo /D (section.2.1) >> >> endobj 488 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.521 383.889 314.077 396.44] /A << /S /GoTo /D (section.2.2) >> >> endobj 489 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [80.966 360.064 273.828 370.307] /A << /S /GoTo /D (chapter.3) >> >> endobj 490 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.521 345.618 222.032 355.845] /A << /S /GoTo /D (section.3.1) >> >> endobj 491 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [125.439 328.849 326.451 341.399] /A << /S /GoTo /D (subsection.3.1.1) >> >> endobj 492 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [125.439 314.403 237.052 326.953] /A << /S /GoTo /D (subsection.3.1.2) >> >> endobj 493 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [125.439 299.957 250.376 312.507] /A << /S /GoTo /D (subsection.3.1.3) >> >> endobj 494 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [125.439 287.835 272.972 298.061] /A << /S /GoTo /D (subsection.3.1.4) >> >> endobj 495 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.521 271.065 197.486 283.616] /A << /S /GoTo /D (section.3.2) >> >> endobj 496 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [125.439 256.619 339.508 269.17] /A << /S /GoTo /D (subsection.3.2.1) >> >> endobj 497 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [125.439 244.498 221.837 254.724] /A << /S /GoTo /D (subsection.3.2.2) >> >> endobj 498 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [125.439 227.728 313.658 240.278] /A << /S /GoTo /D (subsection.3.2.3) >> >> endobj 499 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [125.439 213.282 242.769 225.832] /A << /S /GoTo /D (subsection.3.2.4) >> >> endobj 500 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [125.439 201.16 193.875 211.386] /A << /S /GoTo /D (subsection.3.2.5) >> >> endobj 501 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [125.439 186.714 218.196 196.941] /A << /S /GoTo /D (subsection.3.2.6) >> >> endobj 502 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [125.439 172.269 225.899 182.495] /A << /S /GoTo /D (subsection.3.2.7) >> >> endobj 503 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [125.439 157.823 259.808 168.049] /A << /S /GoTo /D (subsection.3.2.8) >> >> endobj 504 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.521 141.053 179.281 153.603] /A << /S /GoTo /D (section.3.3) >> >> endobj 505 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [125.439 126.607 261.399 139.157] /A << /S /GoTo /D (subsection.3.3.1) >> >> endobj 510 0 obj << /D [508 0 R /XYZ 80.963 747.976 null] >> endobj 512 0 obj << /D [508 0 R /XYZ 81.963 581.223 null] >> endobj 507 0 obj << /Font << /F25 474 0 R /F28 511 0 R /F16 475 0 R >> /ProcSet [ /PDF /Text ] >> endobj 555 0 obj << /Length 1404 /Filter /FlateDecode >> stream xZMw8W'eIiĞ3NQ>y>Hut(r˫˪|JuhL2QwqQ@}Fb"tS8u!  o擇˛ίm=WIp!{Abp9Y ͋K݈\sZjQm??> Fli1jl2nC7ɲȬ|b hT2yucb0l@AW,5DwlҫEQ7jȲи$2 ^ W"J+MO-/X8<|Tཋ h_Ws[ҊFdLlJ"1D=d܇B%o݈Q<|1EWh`*eQ6?p%wW2G)B}<5t%kK9_OAގkCyveݻ۵`ûjzch6 *dn|Ƣ=Ex'R=٢ 5g|<NJd\@P_ť(qr"%.qGF[ltvb !'dF{+lQ6b)LC ^Zui)@aC@˩0Ұ$bJw,sdG!P@W3OBE_ɕ|ޔfuUX.GY$BDn~"3w׼HMhL m_֖c}:V``YpV(C犕|l$/rs㝺֛WeEp5x#ce$Z7raNjPd↦MtUq"yV;2Ah_aPJ; / tOV2KE*}^"tnm/"=wj6Jcs5Ug+֭N澋9ݡvUѾ.÷tSwlF1 247h:gVEg!c1Ԛ}+tg&}ٵ)rG[ ӯ|KZL`FeW؛8}9~ՔV_kR/l8I x}l?l endstream endobj 554 0 obj << /Type /Page /Contents 555 0 R /Resources 553 0 R /MediaBox [0 0 595.276 841.89] /Parent 469 0 R /Annots [ 506 0 R 513 0 R 514 0 R 515 0 R 516 0 R 517 0 R 518 0 R 519 0 R 520 0 R 521 0 R 522 0 R 523 0 R 524 0 R 525 0 R 526 0 R 527 0 R 528 0 R 529 0 R 530 0 R 531 0 R 532 0 R 533 0 R 534 0 R 535 0 R 536 0 R 537 0 R 538 0 R 539 0 R 540 0 R 541 0 R 542 0 R 543 0 R 544 0 R 545 0 R 546 0 R 547 0 R 548 0 R 549 0 R 550 0 R 551 0 R ] >> endobj 506 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [167.282 697.455 303.242 710.005] /A << /S /GoTo /D (subsection.3.3.2) >> >> endobj 513 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [167.282 685.333 273.104 695.559] /A << /S /GoTo /D (subsection.3.3.3) >> >> endobj 514 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [167.282 668.563 308.183 681.114] /A << /S /GoTo /D (subsection.3.3.4) >> >> endobj 515 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [140.364 654.117 228.926 666.668] /A << /S /GoTo /D (section.3.4) >> >> endobj 516 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [167.282 641.996 299.666 652.222] /A << /S /GoTo /D (subsection.3.4.1) >> >> endobj 517 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [167.282 625.226 303.242 637.776] /A << /S /GoTo /D (subsection.3.4.2) >> >> endobj 518 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [167.282 613.104 300.151 623.33] /A << /S /GoTo /D (subsection.3.4.3) >> >> endobj 519 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [167.282 596.334 317.221 608.884] /A << /S /GoTo /D (subsection.3.4.4) >> >> endobj 520 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [167.282 581.888 339.426 594.439] /A << /S /GoTo /D (subsection.3.4.5) >> >> endobj 521 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [167.282 567.442 284.452 579.993] /A << /S /GoTo /D (subsection.3.4.6) >> >> endobj 522 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [167.282 552.997 319.263 565.547] /A << /S /GoTo /D (subsection.3.4.7) >> >> endobj 523 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [140.364 540.875 227.53 551.101] /A << /S /GoTo /D (section.3.5) >> >> endobj 524 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [167.282 524.105 255.484 536.655] /A << /S /GoTo /D (subsection.3.5.1) >> >> endobj 525 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [167.282 509.659 349.24 522.209] /A << /S /GoTo /D (subsection.3.5.2) >> >> endobj 526 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [167.282 497.537 278.895 507.764] /A << /S /GoTo /D (subsection.3.5.3) >> >> endobj 527 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [167.282 480.767 281.17 493.318] /A << /S /GoTo /D (subsection.3.5.4) >> >> endobj 528 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [167.282 468.646 269.455 478.872] /A << /S /GoTo /D (subsection.3.5.5) >> >> endobj 529 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [167.282 454.2 322.518 464.426] /A << /S /GoTo /D (subsection.3.5.6) >> >> endobj 530 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [167.282 437.43 291.638 449.98] /A << /S /GoTo /D (subsection.3.5.7) >> >> endobj 531 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [167.282 422.984 259.714 435.534] /A << /S /GoTo /D (subsection.3.5.8) >> >> endobj 532 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [167.282 408.538 292.548 421.089] /A << /S /GoTo /D (subsection.3.5.9) >> >> endobj 533 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [167.282 396.417 281.721 406.643] /A << /S /GoTo /D (subsection.3.5.10) >> >> endobj 534 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [167.282 379.647 293.359 392.197] /A << /S /GoTo /D (subsection.3.5.11) >> >> endobj 535 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [167.282 367.525 310.164 377.751] /A << /S /GoTo /D (subsection.3.5.12) >> >> endobj 536 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [167.282 350.755 381.034 363.305] /A << /S /GoTo /D (subsection.3.5.13) >> >> endobj 537 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [167.282 336.309 297.746 348.86] /A << /S /GoTo /D (subsection.3.5.14) >> >> endobj 538 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [167.282 321.863 451.387 335.144] /A << /S /GoTo /D (subsection.3.5.15) >> >> endobj 539 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [167.282 309.742 417.444 319.968] /A << /S /GoTo /D (subsection.3.5.16) >> >> endobj 540 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [167.282 292.972 301.066 305.522] /A << /S /GoTo /D (subsection.3.5.17) >> >> endobj 541 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [167.282 280.85 328.109 291.076] /A << /S /GoTo /D (subsection.3.5.18) >> >> endobj 542 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [167.282 264.08 325.708 276.63] /A << /S /GoTo /D (subsection.3.5.19) >> >> endobj 543 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [167.282 251.958 270.408 262.185] /A << /S /GoTo /D (subsection.3.5.20) >> >> endobj 544 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [140.364 235.188 290.273 247.739] /A << /S /GoTo /D (section.3.6) >> >> endobj 545 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [122.809 211.363 291.854 221.606] /A << /S /GoTo /D (chapter.4) >> >> endobj 546 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [140.364 196.918 226.23 207.144] /A << /S /GoTo /D (section.4.1) >> >> endobj 547 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [140.364 180.148 211.926 192.698] /A << /S /GoTo /D (section.4.2) >> >> endobj 548 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [140.364 168.026 220.443 178.252] /A << /S /GoTo /D (section.4.3) >> >> endobj 549 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [140.364 151.256 229.121 163.806] /A << /S /GoTo /D (section.4.4) >> >> endobj 550 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [140.364 136.81 323.302 149.36] /A << /S /GoTo /D (section.4.5) >> >> endobj 551 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [140.364 124.688 273.494 134.915] /A << /S /GoTo /D (section.4.6) >> >> endobj 556 0 obj << /D [554 0 R /XYZ 122.806 747.976 null] >> endobj 553 0 obj << /Font << /F25 474 0 R /F16 475 0 R >> /ProcSet [ /PDF /Text ] >> endobj 594 0 obj << /Length 1400 /Filter /FlateDecode >> stream xՙ[{64:˾K,uϓ6#IdJ0Yblw7kqA9_Pw$A(7zwwQ@8o{q  ($}BTCBoi<gTSoZ`rubsuQp,=P %ձ@!쿮*?(YuY]u3w7A:UZ?zFfca:F7\Mh̴t01qɗbZR0,S:@6BRۓI&NN-ۥ^QgHiR'Eܴ\D|]@`wǃu<) sc:JY9TjqҝJR?Fi>)iG(y^]P  S4Y-|Ef6 6|#|AW/~ rrkm)M@ϐNX@vZk#ؤFT Cʺ)'zƀwIٌ,`~؁i\ /Cd$eHMt_.MJt۪t1ʵ5yoV{ʟvtU" ҵCM[VL$4b26YjUk}\⚸Ұ5V `Xqǧu$Kjۙ:XYqϤP>.6vQ'kSgO tl䟏 T2;q(]UjG4ch_D2U~'-(9j.4@ṫ[nN> EFA92# %uDUY+o%YAEZe#4CS¿MDفwھض.>HR SR 7VUkW7#8"z.8^ΜL7\B76i@>o1!'@صgzrPK]FWꐅZ=i~SCb]hpG^l}BdDOY$e;zQͩk Qg]BSnKw}T@rwƿX%@a9<8K\vTD4j]ÁcН`\(G>I1RuڹJ&U:^l>ǧx*q>-2 U,.ܡԮv?v>ov.}3wΊ, \%5:W;K],|ɟ9nf`rq^HW7Z ם"[OSs%AU`M2"֢%p7>Qywƻmwp endstream endobj 593 0 obj << /Type /Page /Contents 594 0 R /Resources 592 0 R /MediaBox [0 0 595.276 841.89] /Parent 469 0 R /Annots [ 552 0 R 557 0 R 558 0 R 559 0 R 560 0 R 561 0 R 562 0 R 563 0 R 564 0 R 565 0 R 566 0 R 567 0 R 568 0 R 569 0 R 570 0 R 571 0 R 572 0 R 573 0 R 574 0 R 575 0 R 576 0 R 577 0 R 578 0 R 579 0 R 580 0 R 581 0 R 582 0 R 583 0 R 584 0 R 585 0 R 586 0 R 587 0 R 588 0 R 589 0 R ] >> endobj 552 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.521 699.779 226.775 710.005] /A << /S /GoTo /D (section.4.7) >> >> endobj 557 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.521 683.009 228.11 695.559] /A << /S /GoTo /D (section.4.8) >> >> endobj 558 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.521 668.563 197.001 681.114] /A << /S /GoTo /D (section.4.9) >> >> endobj 559 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.521 654.117 239.713 666.668] /A << /S /GoTo /D (section.4.10) >> >> endobj 560 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.521 639.672 217.442 652.222] /A << /S /GoTo /D (section.4.11) >> >> endobj 561 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.521 625.226 223.948 637.776] /A << /S /GoTo /D (section.4.12) >> >> endobj 562 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.521 610.78 278.425 623.33] /A << /S /GoTo /D (section.4.13) >> >> endobj 563 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.521 598.658 211.526 608.884] /A << /S /GoTo /D (section.4.14) >> >> endobj 564 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.521 581.888 321.095 594.439] /A << /S /GoTo /D (section.4.15) >> >> endobj 565 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [80.966 558.063 176.802 568.306] /A << /S /GoTo /D (chapter.5) >> >> endobj 566 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [80.966 531.914 192.852 542.157] /A << /S /GoTo /D (chapter.6) >> >> endobj 567 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.521 517.468 222.358 527.695] /A << /S /GoTo /D (section.6.1) >> >> endobj 568 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.521 503.022 230.936 513.249] /A << /S /GoTo /D (section.6.2) >> >> endobj 569 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.521 486.253 220.468 498.803] /A << /S /GoTo /D (section.6.3) >> >> endobj 570 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.521 474.131 186.173 484.357] /A << /S /GoTo /D (section.6.4) >> >> endobj 571 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.521 459.685 215.201 469.911] /A << /S /GoTo /D (section.6.5) >> >> endobj 572 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [125.439 442.915 305.611 455.465] /A << /S /GoTo /D (subsection.6.5.1) >> >> endobj 573 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [125.439 430.793 231.686 441.02] /A << /S /GoTo /D (subsection.6.5.2) >> >> endobj 574 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [125.439 416.348 221.439 426.574] /A << /S /GoTo /D (subsection.6.5.3) >> >> endobj 575 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [125.439 399.578 265.716 412.128] /A << /S /GoTo /D (subsection.6.5.4) >> >> endobj 576 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [125.439 385.132 296.27 397.682] /A << /S /GoTo /D (subsection.6.5.5) >> >> endobj 577 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [125.439 373.01 228.101 383.236] /A << /S /GoTo /D (subsection.6.5.6) >> >> endobj 578 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [125.439 356.24 243.22 368.79] /A << /S /GoTo /D (subsection.6.5.7) >> >> endobj 579 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [125.439 341.794 242.574 354.345] /A << /S /GoTo /D (subsection.6.5.8) >> >> endobj 580 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [125.439 327.348 350.725 339.899] /A << /S /GoTo /D (subsection.6.5.9) >> >> endobj 581 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [80.966 301.199 328.214 313.766] /A << /S /GoTo /D (chapter.7) >> >> endobj 582 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.521 289.078 174.73 299.304] /A << /S /GoTo /D (section.7.1) >> >> endobj 583 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.521 272.308 285.096 284.858] /A << /S /GoTo /D (section.7.2) >> >> endobj 584 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.521 257.862 265.466 270.412] /A << /S /GoTo /D (section.7.3) >> >> endobj 585 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.521 243.416 211.365 255.966] /A << /S /GoTo /D (section.7.4) >> >> endobj 586 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.521 231.294 215.106 241.521] /A << /S /GoTo /D (section.7.5) >> >> endobj 587 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [80.966 205.145 246.936 215.388] /A << /S /GoTo /D (chapter.8) >> >> endobj 588 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [80.966 176.672 360.915 189.239] /A << /S /GoTo /D (chapter.9) >> >> endobj 589 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [80.966 152.847 143.348 163.09] /A << /S /GoTo /D (appendix.A) >> >> endobj 595 0 obj << /D [593 0 R /XYZ 80.963 747.976 null] >> endobj 592 0 obj << /Font << /F25 474 0 R /F16 475 0 R /F36 596 0 R /F24 476 0 R >> /ProcSet [ /PDF /Text ] >> endobj 610 0 obj << /Length 755 /Filter /FlateDecode >> stream xWKS0W(,~ % L -Lb;v0l9@Pmp,ֻLQtވ+qJq"T##4Zx.#4>CDP-UoYTqO, /ݮjaF g)CPЭP$Mz6HʍH1;% >/[֋XVMge2+MUyZi0[_md:À r{#' eZ)OrdEӮ(S+7nu?9dyP٤X!Ҫu=S'GQÈbn+=p*>zY"zzuA wlya%} #V<1 endstream endobj 609 0 obj << /Type /Page /Contents 610 0 R /Resources 608 0 R /MediaBox [0 0 595.276 841.89] /Parent 469 0 R /Annots [ 590 0 R 591 0 R 597 0 R 598 0 R 599 0 R 600 0 R 601 0 R 602 0 R 603 0 R 604 0 R 605 0 R 606 0 R 607 0 R ] >> endobj 590 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [122.809 697.455 249.715 710.022] /A << /S /GoTo /D (appendix.B) >> >> endobj 591 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [140.364 685.333 216.573 695.559] /A << /S /GoTo /D (section.B.1) >> >> endobj 597 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [140.364 668.563 332.791 681.114] /A << /S /GoTo /D (section.B.2) >> >> endobj 598 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [122.809 642.414 345.78 654.981] /A << /S /GoTo /D (appendix.C) >> >> endobj 599 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [140.364 627.968 296.71 640.519] /A << /S /GoTo /D (section.C.1) >> >> endobj 600 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [140.364 615.847 233.642 626.073] /A << /S /GoTo /D (section.C.2) >> >> endobj 601 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [140.364 599.077 246.462 611.627] /A << /S /GoTo /D (section.C.3) >> >> endobj 602 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [122.809 575.252 360.863 585.495] /A << /S /GoTo /D (appendix.D) >> >> endobj 603 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [122.809 546.778 371.045 559.345] /A << /S /GoTo /D (appendix.E) >> >> endobj 604 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [122.809 520.629 347.374 533.196] /A << /S /GoTo /D (appendix.F) >> >> endobj 605 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [167.282 506.183 242.082 518.734] /A << /S /GoTo /D (subsection.F.0.1) >> >> endobj 606 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [167.282 491.737 249.884 504.288] /A << /S /GoTo /D (subsection.F.0.2) >> >> endobj 607 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [122.809 465.589 208.067 478.156] /A << /S /GoTo /D (appendix.G) >> >> endobj 611 0 obj << /D [609 0 R /XYZ 122.806 747.976 null] >> endobj 608 0 obj << /Font << /F25 474 0 R /F16 475 0 R /F36 596 0 R /F24 476 0 R >> /ProcSet [ /PDF /Text ] >> endobj 615 0 obj << /Length 1603 /Filter /FlateDecode >> stream xڵWQs6~$@>㴙Ğv& @7츿Z94w'oWjՒE(N~8yci]]eXc P3y$ҬLxw$ Zݸb\^RζD2-*yF3@%L7t/,i J,$CQYirWAbٙAuAS "4 t;7jV(ݎzdE|=CNM(aV4Y_2QrMFuYz>."JҼT.հi>4lYDO]gƛCPZ o&*D0_.&?7,lFڼ'^:HFHeV)2z J2EJT[3x7EYfH]PdU$-fvNqg0,9r2& :I/`9Cc%կWA_lx! 3ڇz&E7/T#BbJ'H)I ?(~mG&uLɗ)!~ZA2YVFk0"Xc& w$*%kb2H o󽋦]> [3N@5&f8x{v鞽9G-e|aDS${j)4 Hq/NwfY+c8yoI*] Fq1Ӑ5u\ReQ4\Rl|Sxc%Тr=껙> endobj 612 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [175.091 356.354 244.741 368.904] /Subtype/Link/A<> >> endobj 616 0 obj << /D [614 0 R /XYZ 80.963 747.976 null] >> endobj 2 0 obj << /D [614 0 R /XYZ 81.963 581.223 null] >> endobj 6 0 obj << /D [614 0 R /XYZ 81.963 544.123 null] >> endobj 619 0 obj << /D [614 0 R /XYZ 81.963 302.851 null] >> endobj 620 0 obj << /D [614 0 R /XYZ 81.963 307.833 null] >> endobj 622 0 obj << /D [614 0 R /XYZ 81.963 289.07 null] >> endobj 623 0 obj << /D [614 0 R /XYZ 81.963 258.186 null] >> endobj 624 0 obj << /D [614 0 R /XYZ 81.963 195.917 null] >> endobj 613 0 obj << /Font << /F25 474 0 R /F28 511 0 R /F38 617 0 R /F16 475 0 R /F36 596 0 R /F24 476 0 R /F39 618 0 R /F17 621 0 R >> /ProcSet [ /PDF /Text ] >> endobj 645 0 obj << /Length 2963 /Filter /FlateDecode >> stream x\K8ׯn6v{#6bflnwLIp7EY-6b.OJ gY8{uj$͖38Qa4yDT$f@ͯ}x|~y׫˫?( h9F8l{l7'jv]3y9|ϫТ h|K$l!ciPM螂GGb },ڼM|~YV5&W9SAZ禥*MϬ2O]þ<]iDW?gEn$\dMZf2m;nen4{:ϊ4λFAom|env* K BK'$a)P0hhDbFűUq‚~|ƴn֜r|]"눳`)l}]tk.Mu(WvΜ5 9 n0D1n| # 0>eiN>~ִ#~eXw3iy_~׿CAfzR})&Tn!xMu=)T5nE%sKw̻M OwYP%CܧKkۈ6^ƨb6 e[N&Zէz2ZB~W_sEO=)Nb.?~t-yca=tE24͡Z[i/ׁ;7>ӴoHAVjCaH\'iOo. py{X!@~%|`c,5ε(%k,J%0 qR<92H8y3vD8IDۄĊP1>9 ÿwHuݛ(FdOBcy]B & y0=ЄN2 B we#P%,$J$19H8>$#; V)swi` # WQ\ GMƙ8'C '&{؇D 4|0 ֩(Ys4wQYY0Y'hHD|&01EjŦmOH0J-09B% !:*I6|x>; [qI<&H(m>ލxa=QQ?=l͈Da2DD]D|kV7uގx?΅(Q#.*ɇ0uh"4u].`%sbVgե},|OWp)!.g)HN9s`-u;DU0,a Jгi H4-O`M\G0aEe(bΕ6zRJ`vi7"pMeq߼z~9N2 tȕB0:c+l4 &mIv&Xg.$;K1:r.ۂn]V.r>`\a] Ron yUsq1ksݚ}uܧNoe)vME]D$ ]dXM ,xh1h9S+P #HE/ <ӳp(=3n.H}&ɸyĈR6笿~iBo':YЇqJo#RZ6۪谉38Ʌt:t"aHGckDvzmOa{nrI)8 &^)d+'rGk'28هa9ī|t.ẗ́l`BLEI]!)D]FMSk&po3uw*O4 M%OwD"bQ\Na8M$fn8*F-y_&#E:Ѽ ^;")~"Jh:)%aN{>3/)ҙfv_ cI1Q] zl}QS7p1:= w 2ۇ+UUŵ|u7lR|BńGax +G2H 6kO4ׅY#[ǷX7m|[_Ga=s#d/7E/L4%lϮ2]|W ӵԃ.> KX z=K',HAgs!FX*̷mummnޕ^=Sh&?bR˄ }ᯜ]|4}v3Eno.(j829s ܓ)H8BgWNt#&'o pvq"fJjZo0llyYďnЛ)BUO+0|0*W3 }fT>; $w 愎PU0Dﰁ#ߐ г%Cp:$=5\ v_H%;G+@ TV׶Ԡ>=ye_ ҕQ:p2g?W?!g endstream endobj 644 0 obj << /Type /Page /Contents 645 0 R /Resources 643 0 R /MediaBox [0 0 595.276 841.89] /Parent 625 0 R /Annots [ 626 0 R 627 0 R 628 0 R 629 0 R 630 0 R 631 0 R 632 0 R 633 0 R 634 0 R 635 0 R 636 0 R 637 0 R 638 0 R 639 0 R 640 0 R 641 0 R 642 0 R ] >> endobj 626 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [254.173 482.435 472.053 494.39] /Subtype/Link/A<> >> endobj 627 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [254.173 472.074 472.053 484.029] /Subtype/Link/A<> >> endobj 628 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [254.173 461.713 417.023 473.668] /Subtype/Link/A<> >> endobj 629 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [254.173 451.352 421.256 463.307] /Subtype/Link/A<> >> endobj 630 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [254.173 440.991 336.594 452.946] /Subtype/Link/A<> >> endobj 631 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [254.173 430.63 412.79 442.585] /Subtype/Link/A<> >> endobj 632 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [254.173 420.268 417.023 432.224] /Subtype/Link/A<> >> endobj 633 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [254.173 399.546 370.459 411.501] /Subtype/Link/A<> >> endobj 634 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [254.173 379.222 421.256 391.178] /Subtype/Link/A<> >> endobj 635 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [254.173 358.899 366.226 370.854] /Subtype/Link/A<> >> endobj 636 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [254.173 338.176 404.822 350.132] /Subtype/Link/A<> >> endobj 637 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [254.173 317.454 374.692 329.409] /Subtype/Link/A<> >> endobj 638 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [254.173 296.732 323.895 308.687] /Subtype/Link/A<> >> endobj 639 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [254.173 276.01 404.323 287.965] /Subtype/Link/A<> >> endobj 640 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [254.173 255.287 387.391 267.242] /Subtype/Link/A<> >> endobj 641 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [254.173 234.565 463.587 246.52] /Subtype/Link/A<> >> endobj 642 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [254.173 213.843 395.857 225.798] /Subtype/Link/A<> >> endobj 646 0 obj << /D [644 0 R /XYZ 122.806 747.976 null] >> endobj 10 0 obj << /D [644 0 R /XYZ 123.806 629.225 null] >> endobj 647 0 obj << /D [644 0 R /XYZ 123.806 521.738 null] >> endobj 643 0 obj << /Font << /F25 474 0 R /F17 621 0 R /F16 475 0 R /F38 617 0 R /F40 648 0 R /F36 596 0 R /F41 649 0 R /F42 650 0 R /F44 651 0 R /F43 652 0 R >> /ProcSet [ /PDF /Text ] >> endobj 655 0 obj << /Length 759 /Filter /FlateDecode >> stream xmTKO0WHyR@-UEzB7qc$,$[@{x7c V3z &JX$Xg9dL;5}@X:6:~%Jv68L_:{%:/ Th!C+]-~c&]NՁa2^$[pGm5NS~HӚg ҈pkEQm5Pf(3Uے8׵'3KY!œ0ZdRDGh_I]BUp[sx32t9ҥu'$v   |23JGx!Qʂaһ T13Gv?t :˭bk y6=,IpvDkQqOh8b)>|7Tbu-/v" endstream endobj 654 0 obj << /Type /Page /Contents 655 0 R /Resources 653 0 R /MediaBox [0 0 595.276 841.89] /Parent 625 0 R >> endobj 656 0 obj << /D [654 0 R /XYZ 80.963 747.976 null] >> endobj 14 0 obj << /D [654 0 R /XYZ 81.963 688.939 null] >> endobj 653 0 obj << /Font << /F25 474 0 R /F38 617 0 R /F16 475 0 R >> /ProcSet [ /PDF /Text ] >> endobj 659 0 obj << /Length 132 /Filter /FlateDecode >> stream x] @})srU"".2hc +_C,jaw0Nw5B$1*Q vBN |T lZ΃w=uNOĐ3uif,%ڌ]a9Xt!7q"J endstream endobj 658 0 obj << /Type /Page /Contents 659 0 R /Resources 657 0 R /MediaBox [0 0 595.276 841.89] /Parent 625 0 R >> endobj 660 0 obj << /D [658 0 R /XYZ 122.806 747.976 null] >> endobj 657 0 obj << /Font << /F25 474 0 R >> /ProcSet [ /PDF /Text ] >> endobj 664 0 obj << /Length 1958 /Filter /FlateDecode >> stream xڵXɎ6W܊],ΆA2$-h )y<X>PX$*voNw_}RQIp:Y^Fq^eZDU6x*u],`M$YTV5Ǵ̣.RyTּۋc4C:TΜyI.v:ۮM#{Ul-,J꒷8]:K9$eDcLͰ-L~ZÌ'N[.LicDJQ[. l>NDi8{,ʲii4;\ -b@/Lik% 3s|U+~ubXz^d'~!{!uc/d Fun&V|\Vwhْ"n:?\pJ=Ov,@F,وBYwELzӳ[y1:Aes"4~k'*pT-|gp~Ob*{ ](GF)-z$EAex؎MdZuxy‹zǃi#qtV*DdTZGu"i"+uVOcYnNK(>u-Kt UV /yٕB ' ój`ȕ=_G_~ĤD[!]1_ߎՍLG4QoZ6H]J1gMOp8PEEwߴʨ.cBߤhiEi}_X6*SWybHSjg*DG ^̑yTT٭=ndY%y5uXg/"iI l72ݍ4{CAwxn> GC7ЊGJ%7M8-hZM1Wa:c~Ʇ6Bt|NFl7kM&9Ab*3\g7$|fܴFFʞ 1P[wAOo~A/d|,K_{[Q^A)_BAW\lNt*}Q`FK)ɕa˺#̡y^wȎ GyRg+TDp)Bge( 5se@p7| nD]3͸ϓ,amjυv!HѴ&b9rp?"m5RBdD t7uF:Lž<(5&!iy7Z^4 Xj0z܅ .IxW2,fra>k/E.lv %0Bd]5FknB."%E"Y}ģ:ғy^%!)}Q(\2pupZg3c׀M%-zw4@4D鞙/PB71[x3Hܣs~4RPcH簒ݦ5y^N]vֽq0#5i6ʼރNQ0ӴDdsfA /gb67EF׹E&!̿s]>{;" p8halA<<2dO@KEe6-ȥX +#OB-7;ɨU17]7vոЮgE4חp%/Ryϡ zm?{24 _ endstream endobj 663 0 obj << /Type /Page /Contents 664 0 R /Resources 662 0 R /MediaBox [0 0 595.276 841.89] /Parent 625 0 R /Annots [ 661 0 R ] >> endobj 661 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [341.92 375.204 348.643 389] /A << /S /GoTo /D (Hfootnote.1) >> >> endobj 665 0 obj << /D [663 0 R /XYZ 80.963 747.976 null] >> endobj 18 0 obj << /D [663 0 R /XYZ 81.963 712.73 null] >> endobj 22 0 obj << /D [663 0 R /XYZ 81.963 438.846 null] >> endobj 666 0 obj << /D [663 0 R /XYZ 81.963 404.069 null] >> endobj 667 0 obj << /D [663 0 R /XYZ 81.963 272.8 null] >> endobj 669 0 obj << /D [663 0 R /XYZ 99.891 150.061 null] >> endobj 662 0 obj << /Font << /F25 474 0 R /F28 511 0 R /F16 475 0 R /F38 617 0 R /F36 596 0 R /F45 668 0 R /F43 652 0 R /F24 476 0 R >> /ProcSet [ /PDF /Text ] >> endobj 672 0 obj << /Length 2700 /Filter /FlateDecode >> stream xڥْܶ}bʕ*s+;IWdVˑFU!13xyhKYel4Fߍ6ǍՋA}7 `;l@mbI7b[ Ĺvwo*߽&v^{ͨwoyvw_v?\~Do\M^_)`4ٜި$qC6}U=ύn I}֗9M?tc>m *v`7B401LVݷ3,-Gۇk?͑|,}aBl}j1DNf` 92|iT"SU3ڱ #.Sj{w}oje_sE{)ʖD8y0!l|>)cJ`CvU >I->hC0IU0f (;cm 9kh?tmzo~M2 |W4Euy߾kCEvQ=3O3'B@%v>t HFn)ӎl0 <{Бlah&cTDz)z&bbX4 Y=&pxJ\?6fOW,Ozqj/>ίm8Oc%?QuO`qh@"$dBe '9+L^YeSB B"H.:]O*4WF ԁ~Ud ]AL+n{>nnGe[&MgLl< C7 #nŒ|vu6M0ZRJgvrV3P4gx'u+8SDh/Um'nEϵ͌bIda uYۑxs%3Yp W!q;>n&]PSt~BO=׮Zn s`ܿn3ЗOG_FBO,,d$e "H|yYZ;"J4lCUP`0OɺRhâbj+ %47 *b+-^%R`;V,K] qƌOe7P,TڠP#k: T~瞿]0+:u۔,[29n]*"@OZ){*$s ,X8dšRE9LR eM.P$aRE NhO'7bŜE†R2i׍ÔXͅ>ӏ{! M35X+yMēًl:A٠NeiQX )~Fz q@Õ(0XFݢ2k݌^h7 _J#Bƅ8ҵ\)@"ʏW`-`k,_1H@L 0d|>d5+Jh]B/`pI>c]xB@4Kn"ch)* ȸCYEŐPu5Tc /Lׂj(jJU<˪r?iiKՉ$|35OGʴO4+"x;ƄC0 K :H?c/˚#4~> endobj 673 0 obj << /D [671 0 R /XYZ 122.806 747.976 null] >> endobj 675 0 obj << /D [671 0 R /XYZ 123.806 506.882 null] >> endobj 670 0 obj << /Font << /F25 474 0 R /F16 475 0 R /F46 674 0 R /F17 621 0 R /F36 596 0 R /F24 476 0 R >> /ProcSet [ /PDF /Text ] >> endobj 679 0 obj << /Length 2587 /Filter /FlateDecode >> stream xڍY[s۶~􉚉h/Sۭ;v(s2&!5/* FgoDi",˷ [l○7A}7`,2 p%b].~w|w,׷o7^] o>"9\Ns {Uʼn?ֿ]\/$?ma/?E c-<7̳Łf608 .s}6i̷ywpS #QFw Oea'a+s Y5pٌmaUueA<3Wua#۫ktpfGY+?r(#<6{Tpa5EF7ÏJFկ@z#`0D^ acժy;pAz-:c[~\*+Wd 钜Ilaf ?qn.y2>pP8PY1G19u%۷%:u؀1 7C=gae S#5Ř#2LEE? V%;׺->-+REZotvǺr8Sple,@䵨[O4I&΂%8|4>rϞg8&.aW58D*@f܌ pƒ zFDX7/gev/vo(X)pQGG4f)W$O(A8CnAO6r]]ilg A-k]C9mgp[FDTy(IN3#Z%X٧r~I-u鷮y?9?T1.G$5ϳqn`0 ]?:~ᅭC3վkC?w xc!FKחܫuo@J_ԜU1.FC^*LG3M|wưpз9|_Uar(ÎpHj#"%2.rђ'-T\=>G$}c`f˭yh7O<3~& Yk'(nv^< >RܘuON3*~a'CQqҩzKy|'NsٛЋV @]A* Oʟx{Ap8 oK 7\ҥKu <9}L endstream endobj 678 0 obj << /Type /Page /Contents 679 0 R /Resources 677 0 R /MediaBox [0 0 595.276 841.89] /Parent 686 0 R /Annots [ 676 0 R ] >> endobj 676 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [199.199 124.619 404.156 137.568] /Subtype/Link/A<> >> endobj 680 0 obj << /D [678 0 R /XYZ 80.963 747.976 null] >> endobj 681 0 obj << /D [678 0 R /XYZ 81.963 712.73 null] >> endobj 682 0 obj << /D [678 0 R /XYZ 81.963 568.484 null] >> endobj 683 0 obj << /D [678 0 R /XYZ 81.963 477.206 null] >> endobj 684 0 obj << /D [678 0 R /XYZ 81.963 373.806 null] >> endobj 685 0 obj << /D [678 0 R /XYZ 81.963 241.514 null] >> endobj 677 0 obj << /Font << /F25 474 0 R /F16 475 0 R /F46 674 0 R /F36 596 0 R /F24 476 0 R >> /ProcSet [ /PDF /Text ] >> endobj 691 0 obj << /Length 2431 /Filter /FlateDecode >> stream xks۸gԌG:ϱ/QIL.|XPd2~žgΏ'?,O^\aτBA$<8recRp$r$͂3ݫ˫wo,:Xv€c 9yu)''y:rx"/'< vI"HM6@^\x3?IQ$xUak)RWO$-6}Ek"7K 7-}{]cTKT5ڡgeXGQL6w /{|10|We]˜t0H(;5 ݫP]sLɉRw=U7ʆvHF`hU%1s { tX4"EM TW>0!g>K12:p<\ hQl,tQ u~u3t[K<_;:Oc4s@W^B~RLkBWR P7(k}8@}oҸ :pb?FTtcsnK#?Kӑo^G\DWs^5}pd $0FuxI8<`5\bTc/m ]|}s"5Jm٦EHʖf#4(gQYH(q4L6uOki7ևUZPgԞG10k ;(6z #-M=YзMIhO Ľg) uթc5,KQE xwwۮWUuF@/ib|T ($LlA{no .OR֪ơN [;SnwTڛ ـp2-%ףvJҤOeQv,90^KTSEqd25>x^qC|{昃L^9! G} 5W"iG,37Sr e dü"T'n Ź875*6֌iwqX`awsvMZT;S06fc}0JBJlǨBJYB2Rn5ȕaz(cӹfK.1_Fij0תUEP ֬m|:NCLCADO 7la1aFZKm X|=4;Pqf 'Ӂ,v҄9[D&n&Rf'WҶ涟 ?t#zVܮ;y#Rs#mt&iYilM?KX?t]+#?#s3vD0?FL:u׷CND@zyP ;JTZj騝T{f ۅEfm7ok+UC*K;~urGLY5DLc yM!}g ~ASM&qxk[ g3!aZ!uP/}^>KcMhIOĄ,kdL"8-<XFlDy?N, K/$]fvax5}wt&㉤@SQݰq2`eLyp38 G;6_%a,{8p1?}f@\zws>/.߼o|xsӖ'y~6tzr{P܃TjQ:r} |j7IQD\^U9޳ x~QmqCӆ0r=#MvvHGN  endstream endobj 690 0 obj << /Type /Page /Contents 691 0 R /Resources 689 0 R /MediaBox [0 0 595.276 841.89] /Parent 686 0 R /Group 688 0 R >> endobj 687 0 obj << /Type /XObject /Subtype /Image /Width 545 /Height 599 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 697 0 R /Length 19799 /Filter /FlateDecode >> stream x xU޲ +k]YDB@ MYE@`xPtB#Sѫ\GAFYDG^}OgޝMg>wL]Kz|UWWW9}u8{gz8o~|D`Ť~/zDZ HBn qqr3GxaYZ߬qcy?I\~OÉ{3őHJPT6^ʈ/>w_T܃ʮM=#I T rj]Lۅ4K2x]Lvϕ;g`;sr㰽Tܽt5>5Sƒ6/, oMX~/|WnI訾G}vPqw؉K]yxQuVLi{CFh.(p.@Pt6hB*@1(Š(@CR(he\cbHbP (kv{x }o{S_uQ~{EK+/vlwyvn|Qķ233U:x[P.U~ڭK>=Eot':' }~d κ'ڶmltV/ovS bDLgLN{mKEo%A1(B:A_ (%1(5MŠ(Z A1z6(&HHjjՁlu]qY؄ 6.+aϹfb;3R}mӣ[gyC=SvTLPqyv ŀW&bB(*MMI-]W\Ss)m/OlfVLqagy9Q @/Bk(KOKݵ-v=@>+>J* bfvmϼbŠЯ#Q y̌tGbsǤؽݵc{b cOw?(ַ$&G:,-7Nr96=h~4xWb@s0hZ bP k~#%KMI.XB!c:(&`\,Ϗm]W1979 f)3nSD1(&'APL1X6F1pZj\ˉcGn1kīrW{"e(Hb) P8ZQ#e ;E S=yP_iVKJt=P)ưbـ~qc?~t3.B[wmD],!!a(bp. ߰bAŠ}1( P !AP A1bP (A1(&6KTbŠCp(ŠЂ27& ;h۶MYt9sMyd6C_ [h{YkkfEw6rdnݲ=~ݺiiN1&7k}%d6kPYYm۶ V]]mkD!A1.[hF]i_@1(b #Q^^ު)08..FxUAv-2^1_T:@F&UTTfd6D4a{)TWۼAńS𔯠lE;\&\%_+*2((qpG[QKn;yȎr6:Y Z K#9ŀlqj*.P bŠ@1(P bP bP ^IJb6o޼uV駟x BsIL4XիW@1(PYf+WD1bP XU1Dzeds=EEE6(H.]Tի)Q8Mu]Jˀbz|#abh(9SLxiӦQCeYF-+f…d-JT]/bXhQYY7璵PL)f`vÇD$\jR.yPFH qƗ?DL[Gy df{CH۫{VP b<o5_~2R<ϊ0 .Z ҇"O{k׎(ŠyU _3%Q pp_PcDin/+bB1+)2Ubhwb¨Du,//L\P /ƀA1SLuu50b-ڣbP^nA1(XC1"c*ƍMbP A1(&үϦ˥>yYЧG72bȀמ&=OWچYS&XV (κK qer"}ˊbP A1(tŠb A1(ŠC_ A1(ŠbP A1(ŠbP A1QyMV;6H+9q #-IoZ%Vee6Vm)2A1(ŀ9S1]O7OO_foZ\z۬Y3V,ܿd-QI#}&g9ڭ늓\&TLqYq}έ7S1bMk 'o#N[j\5[N7>gW\SsmDcb;EY^ЮkTu9T\).:lf3byӳIï KE~~dVQL8 q>]Q9wtX0zħ_yrCw붬S*F8{hrY)cbs$ז/}w@vOiĄ|yB 0b;nNgBkW,%qV?]nA1ŘL#~m%f"{Kۈ+(QUNQ#-v'o"m\VV(ưT!wK@V_Y1AE\_?[(٤r:bA&Z^^|bBV±2пOxz.o3*_דSקqh _@>˙ʏI]!j];7m-&L0VʖQQQӳIAhEPzdU KfOÇTL@1(&X`в̏bc[]{#QHMIVҬjӃWLqLV٤0J-RVn >Se-[`Avș_F A1WB͠e]cA^<#7) i%wPn&*,j\)++S"󫪪 Š(R5ܮ*&(-j~f@13aBA m6A1&T̉7^xM1^ۋ,MNzPmbL[YpTl/ <(EP1r e܎/"mk( #ZpyƱʢ S)gP:jڱcA1Cg*E*Lmw1 -Cˣ=Ɔ\SvKA,CA2[.v#bHrm|C1a}[Yb苡bP bP1P ,)@¢bP %! =lj(Š XRV1i(Š XRC1~TrkJ~͖\壩)ɵkŧw9r:ͤqa?ǎ|hĐ '1, XRխ,=-uvV,et=Bbe)#ynKLLVtp0·vIkP <2(gyY9+s}Ybf+ZP1^GS9*|A?h dI4*ѽba~p=GRr9Œ$/CelEߜ8Zn25{6h2英vuU/>k['@K Ezzz׎1н[B-̯u-v"QCW$(沔oO_Rd(k1UCbwohըj\ XR (ڵmsޡOϫ̯}z?_,طהܑC]N?>\S||6 _,IHHr e^'bPLN{ɀ}{]m~D|в*.AbP A1(,WgL bP A1(1Z A1(XR1/o/OMINNr)ZdƋ `12 Z_,^G ŖZu A1+&-5=y-mn-y㬖-vmߪQgcP^_;r{'4%?b4WLqJFĖ{vڍ:yjH w=<=-XSiCC q('bYb4W_ΙS-g;$'}mp}ʍ hW[;ݢy/'beyla+ʛ(}1B(J15(hGXq~9bKQCQ>Q}pH.Κ۬PtF\0yʪYW.Š(F5Xf޴] '.TkP \1[yzZjJooth/v|`ٝ~ҸQRY/O ,ebD#wPY_ Š#_,'ugz5(Pke#-nPMHe,~ʯDb 01bbPLDc#lBbŠc6HeAbbd%}1(Š##oj7D1(2 ;w O}~d&aέ7S+F޿3#-UWK}݄q(1/55U/1:3aP ҒLxdv4=B}?<+11!WL |bP e9k1rr9˙GbP A1*GU17D1T \bbY1b Pnc]@1(ĦbQA_ g)bQL4*J5T׃moVdDpb"Qm1;睯vsxMVG/^wܱ=A11rTCCI2LyWjjjb${qNJR)Q*0<b,v )WQ uQIIIt>0 9KRK,#^@pzd8(\TZZjl%nb0n CRc@EyMP)S-6 bH crHuuuFFmkU>Zv赃<_O*|A1(]wAM:د NԖ̞Ǐh;W߻ .#د\ӻ;@#6; t-v̛V`‰ڪ%s 8H+8%C1b7=d@?sNIA_d8BG1(Š:bP A1(E;7G1(@83lٱcGuuGń]+."6bM|||CĂ{j,o&gwzs(&$ڽ(zrmT7bA MQL QxjZ>^wYO"y(ƒ eq~`ſ2TҨe~ȷ'Qo93n}dz9-) )bdzuu!z^WB1юgCYFZ )zО㯿Lv_͉_TIN+ FR0?";rt )Qy9wt}/)Ƿ?ҬҚ5 Pxt)PvlLA,(gH͛W.TLAޘ G.ڧ$Tb(pDb,&oJ`Z"eXX1ZLzZQ b";ӊqŠ2RŐ=BPLΝ8^;̜<ӊQ pZ2?bN+RQ1"eӊqb8HG1(ӊT1"e\sŀ'.ӊq-wXXriυ];}Lq#C1恾3(F&L2/ufi(Šb2/Ϗ/(ŠbbA1-O1bP抡ŘY1x~~A1(xH;ijW1n}V P3b<-_OňwfܑC̞;)(PQZFoA4OO I.@1)Fزe~A1(&R ei%(ƒ8Ӫ!"}+^S]]-^[[bPN96o|C{ 'C1"?WEVף͡i%11&S6UAyxy{yjJrrkMтAFmbBg/r͖حӕGw?b\̽3}ǎ(}ZŠen":\x~7-5=y-U.1fв+&A1(xH[L1-ϟJOKsYS׮X$ j\ݾ|:% Ssq%,wʑܰj] '1 x[yoƍsRm\壢ZT[Vރ}v\A1(&"ٲeln|-F5I.XҚ]&w?:pjv; wΜ:oo?oo)Or^th!=lOOQT J1R?3^1KINAUrv Hˢ̗!8l(*/j)٭œxEa?g-FB.g|93#]!SSSS}i *#]jUv(2z_˚Ŕ?1nwd# )wϷl *_y9Å/f͚x][$n 7pa.ӏbzl}K2qoR~Tc3Bϕ>y%sUTT>C1k277RzbjY|T׎?~ń6dB5LgY"MFYyIw?}1z識:*)о}d# NR)y1)F96CYS@ (Oc*ǎ|hĐ ')G\8C0y1tsKCȚl?G1(4Ẃ+U,˗ubAzb.TPCo%(ŘV1WQC 嫟O} @1(zm+.ʕ}B!9s:lЬYK/ PL 3"~!Dt>|Q n:5EbXvf4n2UNWe9C G(&:derꪻfϖn8tf9H+;laвysesH>& ];G1(2HO#cPSg7A1vGיbP -)6nܘH, {|bC@1&?_n֭[gddPa( -'#A1(&^zw"UubPLr饗fee͝;!AB\ÇB1!.K_*Gbe(&"TTTx>#b\1=rќ`K-UKšA1(ŐׯwO rru(Š)D]]NcD1sQLTRoyV nц('cjΑ-dEWDbEGw3gŠ /ŘZqѐYzh#bP y-@DMM Š$yT7Bn :UsA1(¿F5)iCVРORVWʧie||Gw |x`&ܩbHM+а>|P?bbV̛/gfeQy9wt}/ɊB9Ƌ2G(FTOyP(ŠUSouI3Mbh ݾrA 7pa.3pŨ,ҭ~PL (ŠH7k\0B0XѠ0Šc̟^(j1iV/D[`6@1(F'Hk/o/OMINNr)Z YE(Š^JP "(|}|?_EU8ï1' SnD1(&3gM{F /*)ݻvzzT6lJF^@D[cb )l>?&ފ->~ksW.sО['F1(&z3w\-ҫbrG]2{_?{侗(:k2RMQ2h94PL e~3Kkш:wsV-sb%A1Ѩ͛7۷gϞӦMD1I.NF92ϟXΚv"f@vOq&?R avgs y}bR@h9<fֈ oD 7探DbDuֳfҰ/F(VQNS ByX] d-!)f˃6[)ɿyFZ#j4wϙ.-/=ME1(&ӫW7j?>gؼiB+Ʃ&]o}n!n玥$'}{ŘbT QL4i>LTg%vtϪ&]=/gP?>T鈫m(ŠbP ϋbP A1(ŠbPL(p.A1(Š3ӺefZG0\~i6jr|E3wu=OxaU8{7bP \Z0֛??7k߾T۶mBN}'/_nŠ&}uc`׻{CĐdՒPٰj&7_qY!(X H 6bP A1(L%sbP A1i dLE1(Š.-h(C1(Š=8ŠbP A1(ŠP A1(=k;gNMLLŠbP P1y9k{a~}ŠbP A1ij1yc^_(ŠbPL8%A1(gc_iҵ#-gkf}1(Š`-&dԔ䳇y-2=_:w 3&Ǧbnw# 1Uʉ}VUU~ECYMJ-&#~>J2&Hqш!gNק揹~ᬩb /t8vRsv^Ď mUݮb@2JC}s)&0()//F1(, f6[vIkbMbbXNr9Ee/;/ޅw=$'=N]SRREiЫp5<@1(B: ?**/=#ZB<SpXjJ1]SS-N4 UVd(u={^0A(<:,͛W.l-ƗDDѭ|];ת/&y̦m3 U+**N b% 7?ĈbBߞ<߿F}mbHD kW,|D펊1Ye(&J=L E-&=-uAb|ID 7͉f0zN#룫RN.\wqZ]]of9wqG,(O֊b***DQ֊J)L!ϼN,q_v?~q|#6+Ẻ($˘+sa_ŤIbA1^#}\7kdlyY-[xRr`zi(b₟驘$'yKN˪QF 6H)#FB~(?:FiL,HRƳLu&#^'%9gFZC"t4?Q Meo2M#Մ8Cel`<'Oo(Ŕ)S,  Y1Jx*歝n<ëb?຺:>t-q|0\ JM#X||eO(.Ȣ,uƢտb\Ůnu7zpEX5ŘV1ݔ'=/L5p=GZسj̘/6GY7s)V><\ӥCf]#k[GYu/K2[;*W_0xǑ|c 1ϱ03>gؼiI#ϼrfFÔ8wLf!Ϥ`a1-s ƂE;7[1>͖حӕGw?+V$&bD%5%Yf+ΙS۠q CL,PNsM8/&/g4CL,P 1L1#BzZj||D">ŠbPL+ƳŠbbP S1P 3@1(h`ej1(X0 (Pr& b(P PbP 3@1(&R$Xe^ A1ŠAw?C1LbP !3A1(P L\ݥ!=u sR{jٲ%C1L6,DF1!>B_4Cчbx(Fsl$C1LbP !3A1b(P b(Q 9pnRZZZوeIAfKXO*DCCbL3˄1CUU),V2(Ɯ~& H$A ?KJJHqM _o9QLTtoݺbPLԡl.#APIp\c%Ő(ƜYQQA Q444HgqYYbL4z!(b?#1!K.%LA=M3^yJ= =l O<ծD~ȀX.4苁19?ϏN{ x,6/3g7ŀ)bP A1)A1(ŠbP !(ŠbP A1bP A1(EbP8A1(P7QŠbPNboj@߽-G1(Fo3ΝnnqޤH\@$+-C !(ɜ6۽ @1B_ -s*A(2bP A1~bP A1(Šbb i A1(Fovbb3.Q A1ѨbC,Q̤ql9֮X8rMV7F|0qȺ-P \*F׳psMy 5%93oKnÁbL]bC,Q9Ƌ"wg\&'rː+11,F1"Ha,(.Sq;E[TQ BB_1,F1ĂA(ĚbbP DE1(ŠbP A1(D)P A1(C,P ebP A1(Ũx4A1(ŠCbP A1sM ƚ0~XdjLfB1b :zJcXTVVP @@RSQ__Չ &AwE (lTUU%%%$-|H***gh$MPIjҐ>Ő -g\D1&Tu4RjŠfNrQ |)A1kΤ!Š(*a jjv>(&bk1`sib8B\̋A1}( bP }1^P E!͡/Pr&A1( Š@1}(A1( *>C@1(Xfb( bTPb(P 9Pr&A1( Š@1}(&qbbǎT^^NnDubMMM U 5 #@⠘"sx$@z%g11Vb 'rII ɂbyCC1BC'2ib@CCE^%Cy"&(Ƅ?4c bCII A1(&ڑO人:RŘ Uj#PLNdŘR0+.:CpkrGjo=ŕWս&gfZu],) GGLx,6/k3& ˅}1UZ}1cr9S^B1(ŠC_ A1(ŠbP @1(ŠbPLlQ A1(:bP @1(ŠE\; {9A;޴|̠3t0A1Šc'K2bj@߽-G1(?ΝnnqIh[8yϼrfF#ùc)fǎxdfWQQU-&zJr9Q Dֹ()c3MʏĥcjJ24x*\~&1g,J4a*6۽ @1YPLd-) mяQԖQV)blXG1P* k׮E1Dsi(F,_|[̀bT<#V/G1(&eG5/o/OMINNr)Z ~޾C;];j= J1YYY(&6h(C1(&g+e ǎVIKMoO|jx;r{'4%?7z#m,Y7i2,9RUғvת5/eWŠcr:bAJC 'Ֆe/#?ʤTDjIF2Q){ՖAb̟1gc# O U%_sA}{KÖQQ)y͖(>ān1&ݾ|,6sm6q漘zc1n`cXd2Se wȥbͣ8lqiVKV7m=GTp,a̴ǎ7ݐ#NpFt38!(ƘIC eƔS\ GhEEOs5:]ytͯqn]W|ˤTӥūX/,roXɃ/n|]:)ưbP  nu8nǏx 03#zvmzAr1 F@1b̟((a^Lģm0AW0hŠbŠbP bP b 8¾/(A1bP Du9bP hf(A1z@_ bP b|ULsG}~dၢ'}ry{|}_gߺ苪agdgV5Gv?GOyw^W__T)P hn [h\2`Tk:MV+m̌ݻoRݚgoR#/(B֍q~u;\.oZHOMߦ$%]qYk_ ͛gfoڵ.ob@C1 ㉋$@1:@_ A1(@1b `f@sQACO1$A1(&cSU +tX,..c'7[>{=D;On\۹׸ˇ-qJX/rܥREG2.qwDuxN;qiaw߸.,7q2U"'^ftxl)DqO&jT b:q[z\T+9QmcGHG+)9JDRhPBry= ??0n>۞}_/:CEh;1I~;/|1Ǒȗr6N8<Džw/*3|$w[0m1J+~Q:@k8/;7=zx" O$_!(64J3#MrRM@Sn0 c4W)$: endstream endobj 697 0 obj << /Type /XObject /Subtype /Image /Width 545 /Height 599 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 12939 /Filter /FlateDecode >> stream x `_bH!-\ FP0TԔ"ADT4GQAԓ-g-R/D ܄+ ߛ\wgwgݙ{ex#Da~KbQbT|1_VJIUZo>;'vSFOvQP`~\!cUϓsDqR8ɲG}-Cw7{=4z= ,I-B'="g!:c:cTgu))n*nQYRqUW%WFIy2[&藡B_b~m BdNBڢ~-DoV6F Id 1BA1:b\ݝ1 `#_) ~X@<]0]d!N#1ՇGdg_"3ثs2[ 2T̮=}"bLgLeM+d/Wuey\rycc] !}  2giS"Y@    QqcA@`+9D_4!kDIoW}W+,W3-/[Z!r˱y !(HYrs]BlE3Qܤ[->KrP}|_FZ}^ѮDWQ z˂ VA&=EOI?iVE+Dkmj[[}<ֹP}сBߟVE9om,;MR"3gjJ>Ro]}Sb`ԣj0e3 glQcOwQmsƫTnHTtF=X$gN Wd\ޯw<7 z<`e}.Avd[1(A,.ѡ|qyQc !&!n_aڀ T|4H?$Hp & R@!AK2uo Wd<$xPif؂D/{ 2.fn V- 9#xAAAAъA8B3悄z$AAAT+zweU(bg1Kפ:({x .fne $⸢{.̵ Y({k?!IM V#Tj,] HRs  M.\>ʒ:wܱ@_)&m qct fn9mzYG󇖓POT24n0b̼‡>,'|aO[ŭdOk@W쒞gQ`CSz–beAnпpkaVI'NYS*wtTMyگ ԜG U9t㢸)SGz{O)` 6LؘAsh/6kn 1񹹖dUtwLqDCY_:ic$:_iAA.Zz2ſ)_3F,ّ\4[ll|XNnL+ 5SP= "1 A*kZ蔺q+5$ xPYAA}<اp7edk^$8~i)DP]r:ZBk,GA:tȇtEweEj!^vGRpvWHFZ@YM Zo읦>M_/Z!g&sd~ ,7t9bQA~駟 ߽F-,((8\=io_Ȗ0;G< b"^(Ch3A"x'AAAAAPixy̥kA23Axyn. IiRIj ǟJC2AKAxB9$mRN\?E b[T\&t37,Ij*~O 2{I?Ⳛv531q A~&KE' bb:xi8Ԏr$VLR\~Rh`Y|6s=We2*I j]ACt v3A{6E7ArAAA1,bAL@ƒ|2?q>c+u}srva%TKR-d&#MEP<)?ɒbKAoa-+;> j\`UAL0 R!U أ[o}JQuE͍mA!QIz}ҷ+By<+6WL T~ԆwFaGk vW@ˠO0^Xj?PU>t3i coXC [%NqGg0I$O'( +ȵRMd%]]m*6INgL~xtB dŶlJfҫbG6!`axnTl rd8An=# ?#n#ػ6TdZG`> I wx?M=h$8W1?ܭzl^3l%H_@LPURfV:UU*x۵bSx=b |iyZh?j oN1K9mA^A-X A)HKb\ ( wM6;Y aKN !A nbALM/AXl澸X;oHqӂ;; 7 TcFGVs-$Cq#PbP&Ĉsm^x8F:y钐0R;Re0Ho]heh12tq5C0F C2!b I@ WY8=&c4UY5XKU&҂W{IȟZB|J6H bf@Լc.ӆ1[9by1$0jw{L ӆq & n:/!lt nrAA#AL|AfT%c>?7Č揜 &_sd@]Ϋ=ZWQE(ն'շ9wHaOA^]O?e[ rI)w֊MALLR/>vgNޜ<ǎq's1ߧ5fۆt5J>T"ոOn\G"G㮫Y(TTgsF]X?-,h zt=x39̌ uS/ejLt+KCQQ'-#bF:K 2~*H/V -EAAA8D|A8$\哶̽s1?Ģ &v ^A([o co9+yA[vd@A$aŌXu\K۴bZ\տǖ/_d٧=ACrRݛVA H`"1 f7s$ʂ1KՔBJ & KE*g}CNV鈳. B_S?dZ4 w:k.tޣtDSºsA[*ȅ˗^cUlBf|R>b1P.tb# " G-yX7"c?8-9AO0I~kN٫aބkq,5{ ;Ma_<A"@&P@UgߕG¿lw5$jArb {*"3a !Ytti*_tm\EA#[߻:"]5>* e9B%H|oALʍ >wCYN[Lm>KV,4s{D  &v @UGQHR,D9ґOϿQէ=PjR\ ' 6V,{ɲV?V=Ijt1x}YW3f68Hn)d$6=PX:2!#ϖJH2ávAA13xiytn%ڸq7Gt+(O12OYKb߂D qaAYt׋!b]rhT & D"IEAAK b5bALjҧ {$~J H buf 6IRF (IEAAx>fW@H85~R#̭eXҥӬo% gg 9H^v?U6ν~\A2"l BQA8JR]~ H "w^ ~ GAL|TLRjw?$ cA!wkD6!e/?ģ &>77V I$jGa~ ~ NAZͫWd>R֊yZ2!|Gt[Yrl$H?kO&HO7nA}G7Nt{RRwR"ٯVQ[tGF0I xj8YG g&|fn)~bNڂ~:]p /0/G?p^%׫7&Θ1cH< Oʭ|j$Ȕzt-MZfxi%6EDwIj߾ -c^SXl c"fQ<#K3.4kA"GiQ(bsJ 'OjL(ݛAzU}a< b^/s3qz{ibOAf9nUl9+6|`1P12~U$r4=89^vpSz StuTuI *KoBvg]afQst@jz~֥a~߂2v8ʅAލh:2g9/f2_ fi}A @311\HV2 krm '6k Gnْ 2aUɺWpox]P)1'FkrҿGӳ |{ gf4q<83$i֊]qmw1A5|zP$^.P}8SDKtADb0]vWۧ BFP^(v;sb#Allt3*cNi Ǣwrw\GRn$kW [@>*opSrLA2p$D7$ T!9Hnb sA<:AϛqA<: Ő&&brTb.HU77{?`+ 88\qO;ʺ0UmOeR㇗lmDJť[%G.ۦ)W.v]A,'H0]q ]{~#ŗFSǭ.FtߐJw1AXx7!H| 4b=ArsAœ 9   xU+APgvtMwTzlheE]d]Jݘ$9355!̂$LJ{'\oA&zS!NlS>A+O֥MffqN+ FgڶAuX[a 2`qN8c8Z[>B8O՞D>`Y.5EyMVw1N.O:MWUgoA8UFq{X>9Ou|s,-DžL~cMTt[c=O btaTWMjIФR&+O^g}NR'wV _ Dt7?$uKjAt<)'eweHou[}Y:Mx'#-HA5jI)7% xG4 b⹘5sJ-9ȥ\ `SH &w$U|`2dբu>%G:Or+H0WE]۱qyxB0-g? *`ZD˸I8Kz :kF\Y?}!#{4GOVkb}러xYc6̣H H-6=~vp<&쑡.>($W$mu:!*yޛkq`|$OY[w!Ex3VuN%rNYފ)^pnmzx7I&w5OGR0gN`gW,O͋;. *zȾnX{mirXʻ#)H@IqN_A/:uwۗ:/ /9H#$HY[շv׍YAd]AT|4yѩ)7h A3dSAN2|̵g-~bĸH_5Yz,X‡J1_so sчҍ>{e [D< ׫z4|+?ŖἆvFծw1 EC$z=Ym)H,ݼ#I$rzzMRC(L|^ AD &AAAbQ v$4^en"7Ĭ &Gk/f_ 1nwʭi퉻mq$ո+Q4np㊔ED蕻.b:peGA2ۻ $kGA23#(ȸ𰻑={fE 5s5 "HxU+%NAA/e-zMYAn ^Ǻ y/]J#e4xJ.'ߞ}-x*D-ȫ&R⍉1ҩĨ6]9H Xkpmo6&D<ŶI~~Imxfn(\.߄m")v$a6gk{s*H)[FTO|ӔZ–+;8i‘/;= ;zN qx޲X:l5 HTAAqA:t@UjG Ҫ\NҦ 9  x 7A$: B3  $] "  H4T 4sm.Ȝ9BJ    и1 \ oBr܁ "/ȘrKRg˺Y ~qN/a>QNbbTol,).K̨ҵD^ecA"܂D RG)Drؑnt篷 FY'JR, kAT 5]cAqȶ wۘ A!o E ]7L :Ywo̴q㩗M7z:-!gH HL bb(AAAAAbc$N@#BncAHRAA&^ AjMՂ3-Im}ֿ֦E5*IR%WK =7Yq`Ql1.ɖ%"zL.:A>5dSA,GCFk^bZ1m\Z H*/l+HV)/GPHں}uRtj7AӅk]گu[*ȟGz`SZFgOz2hb?&7s_2m!  H| b]P!1 O]jkj#H\$;^C8n  H R='>*H K' lkAjuYA9nbS~[#lHu%Ws~\ u'P X$74Rƞ ɰ,A\ћVL4= %Y3A!HϱXA&p$J9HQ+yu۶m^{\ڕg/(f+&|i^CefnVw$59X;Pf"؊LŌ :q$V"I*  Ā &vA vDl}M*E IRY 5I}g9'țdO[c A=G]Q[j~/*gv,LW:G[.&N^U|E FP978Ge& s82Wo4!ڤ>=p- ~v [ o4kl2 [UB$b,R.?Ȫa;¹y=U0M?HhāBtj3>5UO\rd{PY9M[? AAAAĂԪeZhoOBB3A ssAHRA$AB 55ieJyk7kH{ Oیޝ_T% ЯMES2H%f?!^^=^><*ٽYoZs1kΘ˙l,s93˙&18b(&f[gLe: iw'>٬bnW7^vo=飯> jCUX Y2j;h,bLD,"Wb^ZG  Hۍ7ULb~"3E\$=˟П 'w [<*71oul.9cs,gc˙\KD;bS1f;G̥1\\g!]bS׼}TBUq{]'U-آf*~F4w#2*|e4w.\v1AAAdx~w3 AWSl*jHM(dXߺu}Ə gB[ ry/bv1~1E;~{&_/t?^wy˱n.{3iw'=PSpq_m.o? ~g.WE[ rʌǪ>Gnt "f>81x47i 䮶>K&{[<92nܸ]sOo[l}jbg!V'\HY{uko|U%rhewq|V$,%<ѶaOYb9^Om)ԟXy?CBLL[ɧxA ۊRE{#}%U.8W.Wx܎32N <\j0,Sϫ7CͅH]YIX5CT 4~YvI i ڻAAj;S5P3DU)+AJZi9(-gV/[kydZYBr[ЎH9˩BQRXRK zc-^> endobj 692 0 obj << /D [690 0 R /XYZ 122.806 747.976 null] >> endobj 693 0 obj << /D [690 0 R /XYZ 123.806 712.73 null] >> endobj 694 0 obj << /D [690 0 R /XYZ 123.806 652.835 null] >> endobj 26 0 obj << /D [690 0 R /XYZ 123.806 562.594 null] >> endobj 695 0 obj << /D [690 0 R /XYZ 392.797 517.198 null] >> endobj 30 0 obj << /D [690 0 R /XYZ 123.806 337.479 null] >> endobj 696 0 obj << /D [690 0 R /XYZ 123.806 173.962 null] >> endobj 689 0 obj << /Font << /F25 474 0 R /F16 475 0 R /F46 674 0 R /F36 596 0 R /F24 476 0 R /F38 617 0 R /F44 651 0 R /F43 652 0 R /F41 649 0 R >> /XObject << /Im1 687 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj 703 0 obj << /Length 997 /Filter /FlateDecode >> stream xڵVM6 W7zRft&Ɍ;=4=h-Kt%9Ȯ=u| > endobj 698 0 obj << /Type /XObject /Subtype /Image /Width 32 /Height 32 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 706 0 R /Length 2219 /Filter /FlateDecode >> stream xڥS[Wݝݝf7c; ^lpb `Jё]P z=фP/K*nz+Idh;w>V;;;>9pأͼrR :eʭ-lccc}}w״J\cd}K|jaU P4mIe}cȌ:<{AōfxWlMm}P-G-sk8[q7W%BrH՝w+[s 3ujA37wUKۈ\'wB VVVvww9Y-7?^]\ O,ʔKշskco0ZT&aߗzVNNmoog1`H%8UQ~8|j2HDZsK[IvCYCV}_vcn@>n b@yI]+[ۮqTlO|8\'i|4\MF Х*iГXٓb{cJ S${& }$<^hQBF 0Bd(H^,APŠDH5mI6pƝ,:͐'S˸^z=ӻ=3=3^r2EG/YRoȧ|rY<,UGYS6glb]rʲw ] :nȰNb$lY6)XB?k?$SGPt8uC::8&OFcZ#O>$fA1Aq41x E +.;I.ۺrکKkk.8u@C]g܋]<=oI8A6FPn!)HIE3 B dܑyn=N=A׽}P&qnĵ9&л.M^ohK42#Ȇ7(=_ݼ $BIz^]zD=OHsuӤ8B\O,"نš^uW'ԛwA$ KOyt~oс>Y< 9\ ăg7\n-; ':8$KQ`s4X 9>~T?OR4)Pw__k BwSϑtwhma~>4fB]_1 ̋AL )0)Ӂt dsF՟1p n0.1 +!/QC/!ؔ>-d5zX7>yС~4M r:x3RE}tL|žι5DΡ,/m 4ݎOH0m |D\e~,"1.:H X_[Qмq;h>s"80Ax/Nu,`),$Zv`hb?*x=|;AZoDo֎ 8wi~g}ɼ?Q,A>IQ^8?MXJ"ˆٽ_ƦWv/{I{c"yf= o~b`~R ?}^t1pu'K3+CJ{걷"ٌ{&6C#L}Ͱݷ5p4{ ۿs e\3C`uN8s_; g ~\[%3r/Mj , ,)  W*+arTY6P> stream xc`;!`&hФdٸXB:?V# vFU?^G?OkKw●!@ GPH&~KW ^i,v`dI2/_%3'nQ0 F(  endstream endobj 699 0 obj << /Type /XObject /Subtype /Image /Width 1368 /Height 732 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 707 0 R /Length 133054 /Filter /FlateDecode >> stream x]TW5{E&*aAEE^邊 ޫ{o H+blvew3gx̫3o;oщ/ŵد8un(xPXh\$D"H$D'-Lݩ*:bh.a!ٙ uߖmqY5gm$MSsC8_{D"H$D"$Ew׉Dn <+ez.{+ѸH$D"H$O[gglŸWJD"H$D"$Ew;<Lv/D"H$D"$Ew;5B/hڟ>#W5:a_nTtj7.gۭmE"H$-8kgz=H$v 6;WfJlzn:lڟ>#t(`"S5/:&1_q%۸|ƒqH$٥5 ?޳OZ R[)>Ћf>HsнOWTgZsE{۫%Ơ_&3G~wA>b4ⷹPfh k Cc4LCp퍚h vZs%ܤ?6 3RgJTB oH$؉2 *2-yœv9e"Or(H;(R!kS$9rö2LqH$٥\+{T[:Woٻ&9Ivjr3G/C:6o;SQoo`Åx { d[Uѳĝtame`bû+\L#~VjadRl vw!ѫ@H/ݏ=ggiQNos'cI ƒ@=z[dg $e$.(>Q/X/ս{~$ vEsuL?Jj4*M#3~J&~*%Gv۵jJdw0xv~C~ J.~޾K5ei pE Hde&[ԹҸ̚/HXIg$Ÿ":BsqJ8ĥdCڊ%ɸH$Rw+ a zWB;j\qVR27iƂB;jQlcz!iBaĩRo/,gen|ZBq:Vݸ\D".z[a8NֱGޚ64#.M2\,cjFΪ~[7cWE-{f+~-QuK~;_2g9=,YC ZW-dMwB~E񲅯IlSl˹]-?|7?o vx 2Vx0TBQ, ]-r?|_ r?q{zv^Z~8oCi#(R:9?a%X(I>}Rߩ=8+q__4x#2Ӎ;iS=R15s i%cz@7!"T6C.h8J8b✳zW,}Uj8쵭=o4c{u9gX|K (C}~շoD";"Y%*.f:.3ٖi>2щ% ڟu[TI/qT:NE\.;'sXqd[qY']@L%xH$RnP$[Fdc}t)zK^} Dᩭi#]zʙ@8샂uLGnc׭EQ밑Yay i8L8oIGl>6mJa^{//vxK$AN^&E2rn9ckҗM>4sEm]C7,Oщ=cp `bؽǏvޠWҜL#~)z^̗:Yh Z3׆ҴK[Kɻ^p(LBXoZx$cuvkG5I`CyKEg.Xy$t{Πiyݾ? 8oǐE%|gT*7ۺw)njO^H$ى-]Vwn3ٔY7$Y Kҥ`{C*d9"F^aȋXlrCq3eʱE"HdrgqdI!(>q*-[)M_6>tepOh:aQх OG:vRZ~ u/؞4Ћ]qH{_mӍtdM,c0CGa;Oq-mjal AJE\_L/Q$K$ٍӳo " l袕^15O뫘K+vEou(rn,"b~ :mؗ4)R'!c>#Fn'yɎJd;8I/0CAUҦY/|7܅O<@<^}Xэp=׋٧+zʼwڶ> ȢU5/8uSlT OoH$ٵd>-׮$5)k[ie2j{I2@v|S K*)T 2ELdj"ȝVv9.cyMH$RnTr% (м6ѫVnj&YLX^ywTڭDEts(q̴%s-?jS9iKCLT,/8/ȼ+6OtnG*}lSc~,}a6!EN[Ms=f) }7_7xԲaL|VڰSqf[~uziAٶ+>qiق' :hZ;[[8Y{D~M2IE>d+3ۍY2mLm% Fg Mܨ"\ʫɌd/3ۍ6D"]M{?\*6 GchE.\O lsGb &I4쓺Nsջg,ۮb{:Q4S֐΃OZIe3>y$c[NK#dػ c!p21M}9o@խ@,ΙEH={-nC؇* ;fV;@84\'DM˛GB^W гѲ}Hm-8\ "y4oH$e&>bb'&8dg7[NEY\[}.F"H$ U{lWtt޹())߿?P~znWUUd ٻwѣGS 6ш#444~o @DDĒ%Kz͒԰ku5kֺ/OZ?!ĘZd #GGG(hvcrqq"Ju%(4㡵;_Tv9>lFٳ'L4+//Nĉ^qהýE bSXXSSSsXQQA_~Օ܇5N48\En]}[C @!lܿ~<Iĕ+W_ PRRbb hѣGs RE__k̙Ca@ޣG_l9>c /8Y<8u)@ABBBI~gС;v쨪)RRR@]R6 4ºu@zPMϟ?_BBwSN5p55(Yf3)2FO%cT֞f[Z>@>}DDDݻG+:th$x8 k 4&9rٳ}%{hX'cƌP^l '姟~@o[Xa=+竈- Hp+ wp;UB]]ݡC4HKK . #@ uF h---׬Yv111F0"8~E:xxx@xXXUVu /_N=zJȘŸ9s87nTWW#l>|^zL!7vСD:^~~~-!CDEE/[<5T_ݴi4ouu5 AMܼy ?vX/'<}ǏIHHғc[YSɔ 5b-m[>hFwdG`w5|o۰3yd;k,ooosܸqC‡`HzΜ9 +>@3_U-gϞ׮]kllЀɃH( UBy-(666??ҥ}Zȝ@ }7FƱ&&&eee'N~F.HBƺf}}m۶ǃ܀a*U9r$JJJ*((P*>@^^(Y655/0fLm%/^ Ǐ=ZZZZMM A8Y~` d*~߾}cAS>RɑzˋצzjhvL>ԗU/d 9'NPQQxVV-޽{%ӹ}GGG488d_|=zt_l))AVuLmi`gժU*E ֖zKd(_% ꉌk D@@ܜ=k֬[n͝;*Rj^xqҤIп>L6vO*jAzl߾zVB@ ]1D`{{ZZZ+R~3}IvEEE*0_tSjV/^ JZZ`[li?95ns~r|#j`϶TgΜ9}4EZ%7իCDDDnܸ@>ggg&DLu{{{&me[SN%S:f-6r222ӣG/rM߾}WTSS#u;kJ[I0ٻwo111CCC[IHHPW#>۫m Uत$K,3O>_8\Eo}wA&u]`B@ ]1#'/Z:¥Ko>jkk===|A0uX"$JKK{5j(.TjmT0h@hfk0̆D:HHH4a}rn05g[PV2ׯߕ+W젂P$.}8(pFF˙|P= ***mذL,>Sɪ!kf[Z>AL_.`„ ߇ -4_ر`TTuss_[S>y \}10 `H²eˠ./2_lv}cvOU:uHlk#wr@ ؎}hjjZ^^#L^{Ǐ޽E׾&}A@矙0۷/OVƍǎK=bLm10\b:u P>@CCᅦ:57WǣկVv} qQ^~̓3l ÿΰw^=vt{ǰ|Uh'P¶ 3]K|@ _`;~cV\ #I/ @|M0?$&&^^^6A %6ߌJ@ 8qbQQQmm͛@ nЉ,:+~JnRӮK?Saٚ 6dȐm۶UTT`wF |@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ~Fa;ׯ k*@ a+a].X#@ 8Vq8kW@ _+,&Xl= UE  (Qt>[.w67?+(,*}()%ABdt샄I)YyE%U (!wsMϝN,X9"|s?muMhj}@)B˥Ҡu%y[ۮwFF89XYzq;uTSJ.{ڍ}s(Q "DF#%OR@]65ͪ ʗh.P/{`ғ?dr~;9p/؝fhkk77z%((ɓN`%yRV?yZ'=5|v@Iygn[OY)E\qL,r7tnJZ|<[1>Zg@mȱ{4g0)zqaZH>g~oM4dO^a3Cާ@@@nxP)40ˀmaN9H]YņsfecE ?*O^y@e MYF +siY44{2v")fE  }i45O>:~tu˘5֥G9YEiR3&f~D|cEI^l``0raA9RYYY>@}˭PWWbՋ[,..b ಟB')< >'<9="9P=#?:>@ϳd| " 0UJoF~5BCܠ/)+ً7ֺN9O:"imd7)C@ N`[m]񬡢aS'|I>4<5r23 4 Jk! Py&{R h?)\UL]MTT0^pqu;Ν(7H; sso#wN˘5'}#gב&Mg`[]va.(M]9eΜ ]>khK>03k45m27o60hڹ]B0 Kzk/ppg;|D?}o=}h?u IYyY]]e}}JN^~EeRV'i9%w= ('w*/fSoll1SL,ҥ>@MMbR7rw^|vw\.HoR;$U8p#gx6~ ;-legNϭOhn{>-Y' .{Vt,zqom>gք$|r{r3+>@}II6%s]1`+} N`s>~k>㶬Cj!',iwOtI^jivG,|?^뢣ozŋ--IY5%yʄǩ  $,mzYPPpĉ a;nܸӧOs)kjk+ srS2>J}(qjFVʪF|٬U?kV :{Q酠OKo{Dt J }iyNO[~_^@m}9ls۩.f{e'^Ut]ԗDM^rFU۳8Nw &X&g1@ u@޿kbkn-đֻ*iQ‹ĖPUELeTLGLrf28^\pLfRFIz# q~,$bٸEdf}ŭ%Ӳ~帚3Fg9S|^Xe;WnJ5پ:uK> Ima!ڡ"A;ێ4kV…I5$&OƟ=tCg;W,+[*'WPla V]||(D.v~-<37㬝[{%0/'O;sLWǵ x񢵱B rY]/0:!:)5yKKU}CFaqMSSquu)H:ؖԘ~-Mn8{o5555jԩs0m4!! .~>@>̹F:|N!\ZhMG A0 ܭ|Kݦ A{DgHO+{Y pYH +$Imƫ 1}-*,`5Ŀ/v54!ȕ?Y>@i"Ӌll={Y]X\\U0&= _~C_.߇/`kEwyfh ~(|r%;F BuRFt:RyC.B|fYFPDqG.n 4?oizˆM/6<V])#sk$VĐ Hm8f>-e!-rS沪ZKOq|^3!S;6_+ 4@cR!THr215l.6Ç?9oش3gUPHݻ7GR2С2'ǏW8QkjJ|L(Dk&hm_-rB/3>Kv6 K v|cϟ{`/8\2 { gՍ5MM}}#2JZZڜͺ<0777 &,Zhٲe>.}ƮĎ `i_RjKľ!Xh309' D:Hg<t:)ңH,(!WV a_3}.ȥ~RW>@ktè[4Ư2vi;ѓnӟeu5}7)ԂΪc1d--?RM{wF*ĻgH,MNϋL_@ >rO׏, MFQk*&fFijElF,7CFgfG{>W{q6w͜Ϝ%1$*I`tf4iX/^F+B6]Yl,yx>Ess0sYc^ެG+ rr $?++Rܹ[8Śk?,"m[X:Y0r k$%!$?"r׮&QQk}R;^7֣sZ9k:b'lrn3>܀`//"B%3>ީaJD,M0W͛ %a<}RS^tA#ARLrZrŒҚچO+k=.yӧ7n}/*--1cÍ7On:>$$oq44~ݬ봮}~KO6g i \?'HgU]AǦ16~.uwۧ7O;>"G5Z(e#rmR~q6rl 5@ PPLKN{w444wZ5oN m99)-WĤ^4rT &@'%O!1MٍFm>[ϛO<hjnak||J<|0ܭa[少Cj )Mw/ \"w\=b NqMn7ִb!t5#ipnKX";ny%`vr =@kE{hgkǏi~a£d6f9X2@CCwjhRbm,ӳÆ%Ϛo/KK!G$/Z.$%"Ry:mCTTʷlܺvgzzHx_XRZVU]ë0y?.Zbj {,Z7z/v \# %T]o5 ء, 85Tb cw3Hq>HĂxv+$T_{wᴫhhhviW|:v0tgM x4:.A7<5vј׉M@@ UuO҅?IW?x.6PoRҐ2 zWq$ Κ o?q)s0Iobj~/0/"͋xpt;5!X[]. Wo2>Rc>1644C4]|݌_U=G?EAB?\WW_ZZQPP۶Rcaa)wXdbB,jʹl'dФYbDǷ/O=;m̅ +/_˗ U֊4OWbDE!:uao2͠(>ҬڙԿ ˗4//wghU4/S@iM"G>OyvYw`r8eEE@#OxF_$]1p$I'ϝ?k*G$RRRGG n܏z\ $A3kg{H>䜒 d. >|/{oȎԥx2"kW+ ک;ժ6WCfǑꦙXVDC ˭=B1t-Ocr>Qsq{ [D,4|9j/!E3$;] ~|YeeCIIM^^EVV9'M͹et {'fA>Ӭ}QVr{wLc!Mז>5}mS$6<{!ZIDXImjked0VW52$y?$}+W&9 V_9UjWn޷„DE!:uaΜM|kgF _,w_hd\^ "]*|=%  !u>*(3d߾EE$4++KJJjjj0ի_wEs!h2xciwOO-yXIx-|W77 jSi]Ãw6~Y IbftM`RX\YP^YKJJ#,}u_,t~ˣvhϔn[nFp3oL~O~5רHgVq~AY5y!NkJp.6n>(?Wywt]L)Iu c79/[ً7ft<s7ggr7'N+Y^Ļ+!P AlK*ٛn,uWkp @ :!O}!@Y$kBl"^Ho!?K j#gtQF K3u"1\wCu$>8}],#5 [^ "#sCCRKpssrc|>nv-sYg]Gd1oiR:~7LM|utx 6oL'O|{ 46]QD囉iV 㐦Ag~4sfmPᑹ`AE/CpYza&kּ rQaak][ӜMHyII]|H|;hiA) O4$(/RVRNL>Bi ^/J)ޘ '<|H\')--[GGߛw &۷yq]0}ƪꚒҲ̬ԴIѱb%=NK/(,-+%8<~۰Y?޸nc$?kέ[~/HIr N{ "= >'"iye9E%Քw˕e Љ>vW`?N`CC>_w ZeC2Abs#}x4^!~[ZQVs+YXUrg[Wԁo'LOt] >ī:O)`7]uLZ=H@ uY@OM1yx*MX jI !>C_y@; K,ˍ IKJpwuqd|>f6QVip'cH3?%<569C_}cKOO!>yxNNA^^QiiEMMm[)1{a1OccO3n:bmRS(wRbȐ rNxٳΑb6"e*ׯYV\R'(H-_yiS0D.v~-wYsdɩzx>yRmqԔRFodffYfذa#N9ŋuuu0G`Mèa#cŬ! Бuw*:Ea1Y ҩ ʪk諩S>\K#K~t8sEOMm0ffwXuG}%X!@H?hv1!hnD+ߙG@|^ ifxBLAoy@,WE2MR$EHd6H>@#!-&S XYI' |XUK##CCR޻vSmE#_Fo2J6Aii%fHHzsCwM5uuij]梥:_?&M򪡡|^5j== V5q#ddD, .)y7o LDZZڒ&G f͟_Ct`KSSٳիVUZlYa\38л-[V<tZxݓ[喵e47/m98e˸W k:`H:_j`Euu5IMnH:WmCŁXƍ7?~ ;K>@O>@3o>Yo 5r_5K@L䬀͝1 X͑iff,:Zv^݋%'_G}NK)=Kc$ M@|^ d7+=1fM Br FpzD0'+,,CR0 o&fMYޑY&F 3>?ΝXg{P+33G?ȹ"Ϙ^3kTFoocx%DRྶ]^uи5gɛ'O͙cˆopRS6ϐW=ܵX9}:8P[!!b5² xs.,yUy12?ZU}JC%" Y].*n˖[֬^ y ?£ؙ @вa̫eC_+|߿oyv/=ܺ] OgWڻhVL+o"v͇KO ;Cfoa{C;km^h6-p_g+`cǎitܿ>@>G :7n` F uo$fOAx׻/c"&|ӇnWsZ @j:»*=,:JÇ |_ |ʇ>9{Ӛlho9L3rúuŇѮmU3|ܻD[~x;﻽D5>׶.֩@ =O05q ep}}TwoAf& :>xDLK*< Kn4]${{'޻fkdaglH}u3ýso]oߵ~$ipX`@LG꒙Rzma&7c OvQ~~ݻw&M%K,^s\_.}ʪ'yYɏSE>Hx[PXTV^QS[˳ t„G;880popOw*: J<6=7Y* $<eNX@XWyHwkm2r=0+|\cM~5Ӟߦ &\W槨X|l^륅6Gt謻zk|~`IbNH@ :n0J<)`m-1P),$S`G|#c}*6g,vnڪIYr g4Sf=K+m)z]^o>~A`4Ynp.Z䍢$/sYé^gk4^x'\Y &L<}+VZ FFFF܈e}4 >bIBC@GFF2poOIïN<%˿Mv@0^@|g/o$K--Q;k}ΚrQ֠ xwcr)񓭨#٨9;wʝx@ }^ ln>㖳8mψ\ Q$(9p@I# -]vjǎ ۶lr~&׭_FNDDFHܪUgpojeOo9͍4׮; 5=~?qBU֯{b}@áCNKXz5@۶enDZ~˖;"{7ϞٳN{)$j̪υ-9XsXW;ntt&ًpA7dMu4@%njvCsnq4dsACz===KKEڵǧpbrMMM5r$zzu6R ':u!b>߉PX𬄜T0}υS}) ]մDA|,yT䓎PL'^>35}xz:O`L9.$p͟''pfFS0qY~_~?#LD/Ja`?(=F:5c9s͙7/o .,Zxq JK.8lYٲe˗Μ6D#>tq#$I݋ݷ}?/?l1wף~]ZZ@2g΍%iHFFƍs%KXYY!@PSS+\`__߄WVVvb'Bow:ߏ:pTb@?x<.m{ͫgT@M]x<{E0nO2Ige2 T^"@^%t(t%_6HDE_|ѳ4x0ڐ΂//$qj>Y~Y"yLΞ[0z-G3*C8:Kԗ](pA0b+q z#'@[@@0b+:\-p X F]p)|@ FCCC0"H$p8,gk^)PE|QlBM!HhN.+|`:@qqephqjVNeaD*UE$q MssPZʈ.g77`)XZE?4H" :mӄJÿh77䴴h#WWW|:@bbyQm0 iĪ:t\Z%`,*zI !D"jN+**<<<@@%+uޡ7 J(Xn)Yc,,: _BOu5=w~~~3zm[k:ί]ܹcdboo =ŋ&O mkbɝ>oѣF.[4!26oڤ8oti̓'N۷}?Oh>Q'fR@kllD +Q%bi+)>|M:@ll/?O3P|}i4ڍ7lX{ÿd2nW>x۷n˳gDn9<>tcp{eL܀YZ.aɭ)}M ͝Z s<-\0UϟϞ5k6W-Mmژѣdewt^(P{\ĮAN< mrq|:M77| :"&&4+$]M#=X6+ooow葞n%00p|>x &&:XG:::::`Ƞ@ CԠ@azo)mONtm Hmz zSx}I|0r7yV݆!}u~#>\ͮ/7}&)3B/B#Q  ^Ih?@8v2n|FQQ9|̷6y㫷SֻWMFҹM[xlfAd]@ގ o=*~~~St\` "@_P3`+q`ر\``ٕ+;dp kמضX:u8x тyQ 7 bTD2~!ר,\'P5/տj#3:26|SxQӫ\iqlgK(5$fןQmwjq0ͺ_0[59Mi#_q M,pt&jq0ԩzk]Qg0"$H?vknK[[SK7d2 ?-88h9cF:xF8:NV`V X:U7i7W(+C:Or;J>B[8J퍉I?sxcc +67ZYH4|i͛3flwD68ð(U[LdVG8(l-#CSΖ-**|MMNN:CL\oJ23Qs~ʯ(*M+d>ɳ/^mǐ ~u,ն<][]BA~n\\nVVEMͫv.G&eReaci*WV_WUvMȕ#7"8gK -o89" #o^rܹs'OtǏM555ݻr DSڳgۥl&5rRƳ&=jdrx<ӹtEY;-'އ:KksV%y$GG]v8#(b'V`+ qq:]jh<ްAN[{g簦V75L\wZG}[8.m]ڤY:𚱷2?+>6\qD>T/Zvve޹sVeL4m_ᠷD\c/SßTVfZp;eJnv.}}LevY()ۦ~ߎ{YK7AGWG]]-()* ^p`w޶uoWsIJ쐐,"j?ɡ1## Y,4eٹ=1_{uJxݥ{__{v^[G2V)>;^oߥ6h'FF(+++** D|}uǦZWRLq^S>c6Hٴ})<̛3 c;sQhijj0&K&e4fJHeUҴ ZoݡF`r ]䓎*)^Q4d5U>8])y{|:Ɛ҆LIDĴ8WOh{{a!Ao+ư9X}=KsJ_`U1{{uL?MPSU~~~3zm[ kV;wvc,Yp1G_x鿡M_\\\#xk%#g>sן2yWXrСGEÄ++ߕ^Z={Pڈq꙳̙3PYrE||M[JJ5r?V%&$aƍB@Vvت8>1xBIҤU]111j6{ԋ:) Q[))lx5 t4qѱ?%KXql׮TzMa-:Ҝ.i=6+~!@vXVq#}.l>}޽ d=7/&i _&Z0ʔ9mxRp $ZWu5 m Fzc>zO>s' WP] "^U8ӧ {[_~ժUҷͿRJUVv`mm\61&DNO/,$KSVxxN\y׼9nZꖜrp|9+Gm7LʾananddPW%"yySN>|x};vظi{hiiݿ֭:f<}i D)K,q$uEjŸ ڔ5'm8 MDu U;->L$_t`}eS^YBvz%cǗy /CcW(_blɗ4Xn^&ɩE!FF&&ܟ<7tqIHNkW 5gVb/Ú4Ǽ[̀U\]]>}&/?GGGq/~3E^ܜ%qիW".ȝliiA9 Oqb}bwu HbC: j[tV8o׷n('YRBGW͝g#+W;w׵kj=iGh6=2*&UM5'D'>ݶWko[r%J+&mעE{:XiN_< 8a?TKk^|Ћp;ۑDQ%vXRd6t炧 *0'eUYKoN5%YEOT ?7]GP8%%994K˨,iʊ#=Xu3u^w*v)Z~!˽NMSxqڣ/e'426zP@AACx핕ݴi5kS#-mmUU۷n_v… ȑ?'cǦW^tR)&INm #/xtݘZNL-E/mz1sT-*֮E.hY$Kv DyYU?NW'gH<() lv>!XY<аCմF:Jm䑿tڭJ=x<)ZFG >ofǎ3Lˑs*||y2W-/A+9LdItEia_GaG: QKI$Nnc'zz\FTĻПECVPMVbm<՛lV?@l؈JAW2]YYT[[6Wbmگh͓'NIH81IvOFJIz]͎5<**jMJ>F߰a=brOObꀎX+={C]|tgzU]NڷwQ#-]@xeiuM :IJ|6KM-*YUPEؔɓ&%}&W.ggN{ܟhYgjzmzq/q?UQQ!MYϻ~>3.ϸ1C!R6i"]U>t)gvj/:.͠Ԛ'&WVYfe뛙\T)MYGځkTx:]wu-9p5qSoû^7H#P_" f@7mZfeS@n D[;z!͛'eӶieb؎G&{Baxw9F9gl6C7 KfTr4-Xr~XG4]VYu|4ʯ`F.yʗqtj3eS C ԫUs)҆Sce b[%UuYӧ5/^gsk$;P\.!U2/5ѕZ.zp<~Ŏ<`9TTLT?nYYhn,FsfFVy2A7߂GN= -`0DtƵkWѐ nٌȭ\0\U9ݗۇ>ȻW]u;nmjѸY%U7꙳3MBEh.90mUTTގ<8" -_DAݤIǕh]81 wOFb %֤[Ol$%%7BMLL< qpQquB)e_K.A=਽VVp߻2o6-2b-,k m֡Dm+mz9]3i+YˏL*22fQb F"ĩ\˿B^g*nh7-|W};kLkTq'S?\J8]V~I7)Q+.G5Ž xtkkk ȅ^|ߧ&Zass34:@FFFn2hdiF4bo`Nt ؉e+T;rlmmVگNY"""} +Aˢ/[#mmmmnnFw+QPCu'&NhB@Ě{6:iwQ>]d/ Rп^%DsdGfgh>_k&T23rw|7?/C#.(\g#Ǥ)/ubgߌ_t'qr+Q歺\%yᝄY73Z[`:`NSBg`@}ƌSkT_W8>tz]Kk*QZɡED>xcnV%ҔK4\wm+Fi'Kþ꠿l{m#4=6},e()))t8i5k,_c*މ 4](wFN0{;wD9i˖-`̙3L*evhiF50dT`Vxlw;8"ʌO=vRaIiTiZ@ǧ l^G!g̟&xm)YPk2|/L``ԦAA/*)![<]θ~c=0J[QQU-O4,.9}Wg ʈ0`s MEQWH$&''755!ZZEN~/_I");'b'M Fwv--?VG;hLnaahgn^:tPIW4A>{lvYYm[eT-Qnܰq$vt;1plvq zӅ!d2u(l9_F)9plLֆčHtUoJٳg =u'&NhB@Ě{6:sάLm#Gd/;;D]vmٲY`̙:~V*kD `ii綣6 mSO7|&+QICF9[]͖E*;O9ȗ 2PJe7䓹$j3yWqKxC[YQ72f)XhIVv="9+LM7/^ԿtIرFF&hn%=ɤt3;VcSCtlnnl%UFFr;<͑cPh̃?_q^xVW,Y N;wo3D">Dߡ[*<]EUYl ]]Y󕕕ZWF'i>NLф:XC5imDuᶢ:@ppҥKнgݵΜCMV6n؀G, 6uĄka]Shî'=^ܹ/\URz|JJfm.Ǐm{=Fn~aq jlaìF jo@_`hKKkQ1TZnزOƽ8f=z 82/7f(;?6mo2! >\JJiFFAdre|s!.P7j홵O]~4K]YSSSt548r>kW;fϓlkW,_6|W:C؊&_'4~isvЂZ87xܲoܯ\ubQ7ƏtO+ZW}"exROS@$%mCV\Qm앃 .╌9Qۗ>2嘌%%DOHsYS)Vsaٽk{Z[[{1i/ˠ7ìf[9H@g<444 _8&H5bGA*vM:P۰a=>;V]m4e˟ j+www䓢P(e֭BlBVz%JTT9ِĮ};' uk':cP EW;q76..N9?O eG5JE;>?Xˈᓸ56zb Udcǩ wor1#G7m:3w-[K3Ү/!QitS+jNg0_!L14۱hס4g~a㢣վk%cl9sqC~y:?N#Sklk"}܂N*/[)X]λjwI'y zْ~Yo`4 Ŭ|2%8+UY g57wtgv #,_lu:燱cowR/ӱvcXs#]B)/)dgg q`b_?#}":nhi!6!+e )~!{b =ZV25fM uWzbZغ#Y<Ó3c]rFh^ :PyF9Jlg3z4u W[uw! 9/f֖nD䬹W033 x7M#Pm;~/Ě{6进6nD4rtM y6668 Dܼi:eZ ( #A>Մ xevZt]Shî'tGqdrEdd꣛75nPwO?""\'݌ܜ\wBKk.8X3vFLj ˼G8t&BYb2~uA l['NtJ‡=] :֣5i/+u(nW:@2zοzvޡR+$?{@n/}[0;'y)%D"Z"6 vV&Q|n :{԰ݧ$t:tK$11S=ښhw "hii *xOutx:UqYycS3^q38/^Iuuu9;,Jr'<|徫VV :Cڎ:3PbƖF nokk+㓘*xt:J0{"H 2W]ux!/_~amm-'DG}4k㰰0v!\ա edd"𰰰aXL+Z9((- COOm2MMME T&}}}Q%=zٳ&<ʪ\~VV9ZUVVֻrxW:8@X-pX]u''' "_zD"ؘB`k_CC fff_\6|yQMPp[OOwǍڄqvv t.466Ƣݢ5<嗔NHH@/..FL&OGG zZ.Pyt:7K9?@yyZp8ȉƝz"G5//_ȟtqq}|Vvpp\#OLźSvrrIӑ3^@ nnnhD"Q= hϨ!OKppG|kkL|U𚆍MjjP݋r@B4{Z1H tt<VYdiC{l63E޴~EE~.5kX;~RRR>}*IIIIFFFaaa^a@5  ,Or(C?]b111QP) =zarQ> RSSq :@M?:@`0׎Xn`KK %\WP#bG.-^VVVH@E _qppw h‚d:1 111¹h]o5S&2F2www]:::@עO GCh?>a`ii)ZF.?rϸ ɓ'_xmmmEEEx Q).)UUU s;VkiiGEupss̀ڋ\r#S(V666v]oKWRR466D~l\T~nj>xI$Z...]P " Jr YtK+^Y^:HS:qMtKK} 666hnn󣣣H;d%'''w乣B̐mqY9}vttDEEEj;Iq[իWݷMX,ggg0U@4!!!m"@Olvjj^FF!DLA}xHMuu%Q\jj~kk[KK[MMW8[&<\Ϫku ȲJkv㋶9rIXObbA߷jzFa )I湔8ŗyxGXXG*^Vv>`yɺ-IXwH7b+Xµ7 L)^jS1Ȉ&~u,]7Sˁqn %>i[om1Ǧe#Iqv< ww=Wʭkf|ʗo5kfU~TEQFu4`23rHMMMIJNN_zO>Z4モ/5kWLLԩS+:+o塚$bU$DEAjY'RzpiF"AȠ\mÔ}_Twr16,7_V{u:99eediM,vάY ҥK/^? >쳵kvxZF]ren__ 533=zwUV!;FEt|yk<@3ÇC v͛ϝ;JH MM\ 㷴%:u̔;m`NoZ1!Dz1}C8|53@'帹9:87xĚCJX iĖl-Ky.qoFo:t:2ͨ {jϽm:8bYD2ãN4,)*I Tc vedAkE*OQ>uc}Q^WGםzQRR:@tR@4@茣᫯:uTRC}%B9vƍEuoӓJ/Ze6,::lS<boee5{l_ʠ̀xW:*.3SIoF}XR:@d>"Faχ|=2BJ`w |=RE5䰰"_lWd;X3 U?zС%?,v|Df]S*5=TrȐiiYttFTغvn;j۠6th2e~ɑ4dT؞lIAkɼWqu{c]?Kdjb옋+@ _"ONq:~q6wK1~ְ%>WU}<_‚:Х_B=&B[3h UeTDEe\DUKXƱ1ʦ1wMoD*r&Ssm LFU}p p 11qСAAAT*ѣׯ ;;%PQQ={6 C+WwN( vha奥$i0?{^J6W\>$#m/-CXEv'n0a?n?BEMxe1Ks+䯹BΊY?cgM{|Cgb$?á4qؾ̳ނ?5֧>)ӫؠSaaa1f̘>l]4a„A-Z(55400@{ك(YdW_}ՋtyyuP}|!Q xOtsb&|`::GQ@rݓ\_.3YՂjiYuH t%00p5SѩVڎaf^Aa:o1_M~$ tn  fU@pJddss%9|@AAťrS1C&}}CԒkFPb.'GZmW :_yHAg\>>   f*,gC(+IzO"`8* u78ɗ-[6nܸs^|!8l姠>f9>ξx"AןgQT\l>>>@BJ9pȑCfX,VjjP?CBPKիPal2k! U=vd]MMM||.جgtt۷ґp+W=eطFnbW{!P 6O<RA>UJ%nP--jUUrPR|AƶkE"]l,utkZ0KynttV66_ X,# a_*^&KBC Q MZP,[@wthRY)ԟ?//^@"^ҁϝ;g38l o}Q#ѭ#G _#d2hξ>pdddQQ:ܸq#A!j8pD_ċ(--F=abTp8 gSD"t"""׿lO]]]ll[!}8瑙ng?(Ki!Q $%hakUۋ`{S[Cw(]EGl}_mPp,=^TDʨ(jh4TD"/5w!Qޮe8ϞއfgS'R}j|zhD>p`.22tj2Ϟ=7|c3>ib3tܮN<"1U6 WbDF#5@V W'׮hGs3|ha ff.\RKhÁgryl444q B>;;{P^=A^|9..N$\>h)W P\&^t-3TZO8n޼ ˱wN c8.{Y z=H0PC~mc<Ɓ+=( V322ʘG$N f{;o^9`<ët1Ja>| PۍsG8P!ȣ ]ѯiO3 754(pPߖڞ0p@߂9b1ޅ z%%N, @hثvx|א͵`D4< 66@pJpE q̻w/}o0`KapJ"uʁG+g/n(3VCiA!gϞ +|###IKp F=A BJAﲔpuu5}o9/P^; 999tH9 =洮T(L&c8.ESS}=s> 2ϯVDzs [DXP}^T$AyN>XxwhfH: fp>|v];ϏtX5˻/5@sֵww`S>>@n>Kn}wuMDJ}}7O&6kHpT*ۯ4pVJ[[[2~Ȏd}}^VV{ȑGms˻p rӎ ;""vM555$}t. o` ,Bm͛7"6^\riP7e())ahKI9Mdh=R <.{nn.s999 `-媽vw^u'e8r\C=CRh!۠;3%$$Ciiv s]B.|b'G /OŃD;qmP B`.}Vر<#uP}xcPPKU$<y ?v.&'wX6C /F0ԟ GeOO)S ppy|Xu=|v11*Z9W_X͂a}lk^YkXk> ]յX_T>#>@AoŌ,:T*:28lf+\sJ --_"44g \8qȑMMMpLߑyɖܩ $BY@f=.- K. Zہ}G aAm"mZO3t2'Lq<, MIII e},;`ëQQQ=e;O@]vd Z lУͅ7:؞cqǸ8=C;;P|T< ZPyZu<A˪WTt=S惀5Y?o`OOٺoz.'`{2Oc5OhhPB2U) UGG¸|V>@Μy~7Ц`H'eƎK/sC 97*{}X_Fݣ X8눈GXsK*VS@I7lvp.&ݻ}P;}Prss3;";EP__O50j/nr?֕4mmmp g>.zo{L2SI_烖'㏑Aګg{{;PpzWTT9 N fr}ߋDcèPRRB<=q;/bX#_L&/؏fS뽁6(YAjGC!rs+`VS%de̙K:} 5v_׽j.P3DevBAj!&t zq@㭆b{05Nʆ8!YYYV38 >ژ~@'(%+K`"};dPCbP#1zE[>TnXXl_2l|Fe|LjyZX߅uS_L D\1[TwcDzs}޽ УmrXpqcqH{wwwdd## >D\Jz6M流R"ZV_aMu_5_|3ee浆.90$.`A h d|sO[(oǷ@G2˩8rHHH\kUVVb"  U%uZW~^?˰絛:@8\H=ɦKR# `o['>By.+՞7\eC9zѢ#_RG}ټn>  >5>Խ5)0#,7x>qk$Qj;|,*eԽի @ ^:7?@)jeuj_`ȕR܏>   8bQԽ &= 0OjL}Ii:PQԈ/}NqsW9XBG SX.+Z/^!ܤ{zj⨽~&e5ZBk'u,|A@AA[{M^'LM 9~,2CBGy.H@{vwrnqzTARRG_Сf$&?(> ^Cx!٘>8WJj\}cdjd6Q0]Up6K%yZ{7 0˔;Xg"?Fߓ.]뢢P{,P0z5A+`@AAXft7ͧ9sL^8g__Ǚ3X~SJ"56rr7PVKM7Р tuPV&J<&%EbqT*yBako|BBaa\BiDD+8aqJJemVp:EpC+KcyyVH> ,lυU1UO//3Zo^KEPwNW~ȾljA=joZxV?Xʊּz2hB)cSMy8 8(ddIM  >g~gaA*[ndki)S n y>(.-FРlmUs!R1jnJyrrx)bۋmسgEAe,`_@"!<hjoNPgsj>@PP^aPS[?;  )@bFS3»YW?[7%nMjX9èٳ!7ng~ݍ$4]}7hoWs  Оe*d&[t2@QGG@qkٷ?2Z[᭐W?N횚Pry/= :-: :I.)?ߟVi$?$~B"}X۷o3  jFZ x^!g{g׋Rw.h@o`]XX|_j~*eڏIXև#?#>`4;fWAAxX*><r| j|it4<2E-a׬Rh:pT@``Gii)C}83n-n}[]U՝2Ձ}AAL6<9|Zl=ߞ@WTt;#.W r^$ZϞ|dCHF&Jd ®ifx>s?7>}/h [Q@Ay$|2?`SyM}z;@P:@[P Mn_?NLF[7 QV&^WE]I?( {Qd [z| -MܬZm٢Tꟗ']@D"ѝ8ц>p^   h&^S8ӥL= &bc}\\[CC On3@EEѣ<Np0;&PrDDH}׮`_d.K˥f(A%-Ky'0~O&>i8$knvB AAqz|?`0bS0!ry,x>Xv@ i  >2$j CJ 3Sm>x N`z. DAA9B6&zn"(%+Ka>>   8y򤋋˩S A}AA}-[6nܸs^|O9AA}vss<<33gܾ};TTT,^xر3f ޽{_~__jՄ 233!^YYI={vjjRzjHBΝؽ{i<==wI̓O?yf>  0…-W4%[EKOO˙jrr!!\ѣ ID5[.UU># jILl5o-[ {d!٘>@SSӨQN |ҤIdXA3fdׯ_?w>@TzyyZ8tPW^m頠 { ooouBBŠ+`|>s9}ttt_|A|{G}AAj{i~c5g7߿)n3g&DklT^$ыZm >@YL*xQ - ϯur'p¸(҈Vx}P޵k!(-޸q#(q睝MOO|LKJJ cسg!7[(ɨV`K???Llll{{;@* Kʫ" AA͋)]_":V@s?ۋt7(k6[i")NbbD`k"IITVʏA;_^%Ԥ8ucNj}ҢUZC$*.llTB>Kj9la^or%8dOww/~">Hx.>\Oi&sΛT;iϗ.\K) o5AiΟpB-y҅n4;dTD=Q*>qJJemVp:EpC (KcyyvH>DGG@:WQSS3P/Y 0YŠ׬YAe9>H$*..j'˗CLJ[]]Z{GWQ_uuIMmb!C Tb]g*vA}fYIgM5t.V޷\JLq{>|%4 b͞~GDqi5>?ek:8 ǎLd:]lbb{qq`5>@%> H$$C01mA=6u;';?za8=$x}~&ff_`AJJʌ3źCvPuօTJsʔ)wss)Ge*=_[n%ٸ8n۶?}5kք\uuu8Rvu颢N7G=nTeO?oA\*5:dJJ_UXԯ7g .BCh:~v|}q';qY\x !ftAeYM&zkrn8:]h"h(nP x-GFR@k:<)]Sj].050p|)`GbD=Aի]Sٳ"Zmp oδ] ;%/}6C}b&O<}M6ܸqcҥOYpaaa=%^^^hѢ1c̚5+99 _M˖-;vK/tEz_V>F裏Ə?eH> <==Gktv4Z| ffmD}v6%Ͼnut횉3BB?yz!aUOֆt)h z5yF-ķA}~}?`Fwp ^vG((FG3 @@~~*@VW,QZZD`x>>0|dLEEhm<=5et4%ZpOoiq{]l!NC(`\!~Bҗ4e}T(AAf88!zd|ү9<' F22T'Kh(vM4 x2 }}'Piʣ}=}QZʕlZ~RR~?>@T#bا9cM@! 4d2Lr&};@P:@[P Mn_?NLF[7 QV&^WE]Ioz.@0X>abb{s jggRS`^vDwD8US}vfX +?;?@jOonT6{u _]  ؿ0e6;cz뒩g?T+6Oŵ54!@P͗dv}Q?'8 X=|R3@Šoy'0~O?o`O8z/uw/,̙l:?%)'Ľv]ө5Cl> 8-|ߟc0)@qX,AS+O8Mu :;g=_`cST) 8$Wή4(xʥ{8 >H$:6[)Af}8y$=_>>G1sj{{)7 "SAA@P ji4}&̙3˗>//RSh(5#   8>s۷>@EEŋǎ;cƌ0ݻ_~_UVM0!<]zee%r٩6;I7nP`ӦMsssܹs' Λ7O?͛>   84555jԩ'MD|\A;@9(1c@vsJuN^]]M NHHXbg}vΜ9O/0p8 4u\AA}A111!k.$''C"00P&[ qFP ;;;!曙@zǎC jNZoƶOvfs  >F >ۻ3}g@wAwS~mPӦMdXvo ٴ4J ^n>FٸqĉB̙3/Ⱥ~'w@AA,VK{|H̙52dʹ8xs5 ʛX.TDGG=jjj*%K@&Dbɞ8q) iz㺺6>  <y KJ4F b#H%)f?7Ig`n3FW*Jޱ9͇\4mf]]],X2c @ݿ?yݺuaaa6R2eܪL>sB![n%ٸ8n۶?}5kք\uuu8p2cU+L>  } Ǐ7 oǿ 2B jI!WajHw_ɯj:F7׼cs!aX'O>}Mnܸt',\О///_hј1cf͚L$i@4G}4~)S@6l9j(X'p6 Dc-Y8- < }AAhnփ>d3g<۶I/MU]WuW+ }#~U՘ YAF 𹀛s57}AARm$̥Jɂ$P\z~C*L[fPt>8Tވ   <~>}.@2Hz` 8 * ?'@/>Bҍ )  X&[?b#H0k }e9>.@ِ>@cc˿|׾'O0aL&ó-   8>s۷>@EEŋǎ;cƌ0ݻ_~_UV̄xee%r٩1 Fc [n2-v=m4777OOϝ;w`nny Oo޼a  >>>@SSӨQN |ҤIdXA3fdׯ_?w>@TzyyZ8tPt}}} .կ~Rٝ=vb (9??>9sN>_`@AA}}!111!k.$''C"00P&[ qFP ;;;!曙@zǎt_~kRRBPZV k3d3{G}AA@ƒ&>姼۠ħM& v7x#22iii !n:R~ #G0!4ƍ'NHgΜ}AO>!>>  >>@tt4(xH8pIIIꫯ.ޣf_d $ `iGUˋDbɞ8q6[|y^^^pp0}||};  <>5kO=2f WJ7M{vzyqxf9wN|Pi}$ȉ嗕 6O||*hI6#ChUYzzzmnhAZ99?Qޅ R[5># jILl52}6`3fuww֭ ĕJ)S|}}ϟVUUJ|g?GSSߺu+Av۶mmmm~!Y&444==}ʕC}BwI"1Y! <yy>$tqi~U ƍ㸹575Qꆸ{|H̙er{E"]~$8 XB(ߊnP Tٳ"- ϯ˝z{ 4,smngbcMM*Dب>42@L&yaf…xyyEƌ3k֬dZ=VP\\lh4}L ذaQ`M@o?4& @Ay>SxUر$Kԭ_ADr WBCVʷYȂ%ڞU9`Ua{\yTGu<"ߟAݑTMz1;[ȁ*+{ݽ gdϞeeaa\6AICBvr==;9@+ Oi۷$+h!ҢvOg}3ϐm0< 5+ ^mU~y>v#D 00,^^-[$ju3RׯMݷ ?M >SHJR<+XB`0>?C:O oKаCL>qJJem @TW( )iyzwxx+hdAKTQyyvH;rHkרڒN ]S.W 5¾~CpHK~d`A}8B)Q*?D"quu]z5]\\Ν;g3><`[UTJkoɠVM=8>SeeZxvTm.X zOOnll6 8T  q)ܬ}'9Adbc>9y 4xG% 9= (t1Y )Hbb;(w kk/Q8 HZ.省 Pyh@74(ܽ<|33Sxfm& @, $NիWA۷/88 ^d3><`@,ԖVXw72~bs#μ H*_]puOW,-oWV$[ߧyH{~˒c9ϩdez)gƏ7͞mP*2zi y.͇|/bosgeBA?+xS\Rm$>hmzKxHWfy{{>fD[-99b /@D;_JTHj@d䏶|@khPI#"Zy9N;uT':8 qAH76>=Xs4muAV \;^MRW(TA 5>C%)>-?G#_n:y4k "۷(*ߘ3?Y|⋼={:g9ҝWL 8<b⭷TBǧ<%@ρv}Nu hO>Fwp |cHy9 6_C:77ײ?U}x>])WPoeUQ̷ԗۖEo4p=;$:уlxyƌ1gz鷿폿*yty;z4~I}lʴohm7Ҕq  8O}]pEq [xH dd@¶R.睊 >y.RG㹀>stTkG '8|bWW5k֘ړlpIz}f $5d-ve$r}^qQ%h&^Dly_Sʏ$x)*PP/ZÃz"I >@nݻsƌVt?@uu`AAp/Pcpqj72fY>hoR|@xLM~{v~~0@Yᖺ:TX ^I˓DE "NhpJ825N`h(ײc,̓055=bTP ]O+8iiD'}J{[l! <>̙_揟p2|n`04kU{-dT?>+P[h;]Νsd|/]p|Aq^H k׊~1c8 ϝ_puwow8[ou44 2>sbu>ȉ僺'ꃂom-6}Aw**s`~ ,,70!iQ@h2;Lktr{r-[6vؗ^zŋ AXdɖ-[O6ՕǏ@M :ZSnB(Cvu!QvE9w>@oDm-VN^}h(f|3g|}֮u" 'GZ[gg_S~qAqZ`Ħxd43gܾ};TTT,^xر3f ޽{_~__jՄ 233!^YYI={vjjeZ?5j{iӦyzzܹ󞕗;o<>ӛ7of;HJ洵OkjkčsA; i~Ėo~"$b3(8YDG3&_N58D>hQW2_/4e޽s   #lVۧPRRBlE tԩSAO4r,wށ sPcƌΝ(J///Pʽ–RRRvb >??>9sN>_`x>aAAx, 11T?,FӇm>Ā7Q ">@rr2$e27n%򼳳o Y\%%%ޱc)\v -Z0BA=V~~~m}AA@A POo6mL&lFFh7x#22iiifsLuY'OCh47N8ޑ/5;3g`_uuuO0p  >>|hP>p W_]GMM@%dH@6 ޝ8%0J"A'NW/_ iuuu>kkkm}AA@Af]]],X2c @ݿ?yݺuaaa6R$S7Ο?ͭҟmۼFBRoݺdIoج?}5kք\uuu  >>}/bMO2aOOQF<)>  <,^䓜[}Wܬ'q.;O<`;'>tr> dƟf9}FЪтsr!!\ѣ $^U%j}}F:Ԓkأ$8+,  ``0͞sqi^-tum;AuK-!1gI.t`.$` -|+*B-XPgϊ(?f/w޻B%-(>BҰεc9#75$]c*'GLt-O|2T4))R$_lٸqΝ{e >eb e  b}ZhKgZBK[/H%%ՠ^ʵRJ= Y=~_[÷*T̵ 2loK:OꨮGDs:H;2@9 IP7fg9Re%uϽ ٳ,3,f#H"iH7 Nw`'h{C! 2^=xd-d[Z)vss<<@ۊn=}ʕ.tuP@76RV ASZJ$ZHw ׮Q%`\j)}(ȑ|ΫpRT:cDzjH;wf}x>@q^ߧVKDM=ԷYp۶ VRP--ЖZܩS;w젷/X`\OϞXlCAA25zxpIyx_Cbモ͜z ۶IGA@wtP@3Z@Pl]$&r ¹Q8 HZ.省 Pyh@74(ܽ<|33Sxfm& @, $NիWA۷/88Lfd3> @^^2}ix٦{SaPRѣM3ff嵥W^14%<,(/'A_M~ZCΝ;ۗ- @S\Y?z4x}$ڴI}.>|͈`Zrr !!+tюj5EA$ҁZ-0$EE҈hy`Sb]u5NE~~>={xxx|S:ާqNF;|ɱ <!k*>S==M_揟U/8|w/a|//Ә1p٤^o㯾Jeo4zn_D7mkS(ڗ-[> g.RQ= q}CCo+޼Y7?h > ׯvE"ԩ3TÁ??ql%'`0Kzjjzn@ (x.``\}:цB rya:bu͚5&4d(AXpV3p̱h4$3'4Z/x)*PP/ZÃz"I/Xojꉋo@",ss{yν{[gQ?lA}+>T+>^?2oSOqfY>h?G ȼ ggnnS@ŋd\&LLlwOѣl9ezAϜ9sPQQxcΘ1#,, "{}嗟_}ժU&L̄xee%r٩k.Gw6m)wI̓O?yf &&s. uun^|˨ V}z|| $޹k  X={ttT޽Ҹqhhd|sVt}%0uO Y˷߼[ln`DG9 d|?zy{zN4w(A 4C&Aŵу :p=|ٲe 3_z饋/24jԨS4irY,;Anjϝ;>P*^^^!:{s=R?~QQNHHXbg}vΜ9O/0p<\n}wuM BI}e?6>Zm:qZ^xRTf`ΜiFXaֿsyB ;zKv<4Pp|&|m٩ojzy| >  FlGHF@e]v 992 7y ?7̄Yq@zy{_ &L8Q([( R k3Tl}Tt}>X=FeLO@/L>GnnSM2Df+>"b( 𠻉t)o6(iӦd2fdd]7ވlZZ>׭[gY~TTm!4ƍ'NHgΜ}AO>!>$X- t_}US\l2dAA B6&Ԓ%hMx}hPy8@|$H|WQSS3P/Y 0? DP =q|򼼼`Hﭫ{!X[[ks0.,\{3䑑  >Y9خ ,HII1cXwww߿nݺ0J\T}}}ϟVUU?aǎ~ĉ'MRoݺd m۶?֬YrJա>   e5yӧoڴ/ƍK.}… )E3f֬Yɤy!O;߮^Jh4}L ذaQ`M@}AA@p}S . . .X@@\p\pAzfXW 4M{vzyqxf 9wN|Pi}$ȉ嗕Ɍ?/>r U!d鵹i +CBGy.HIJn8ϋt6(%1נ>> . .$8ťյxtŢ-!1gP\+%\H(ߊnP Tٳ"- ϯs"wwHn!iX@1ΜTQ#}he`'>@YL*xQ p/[lܸqsν|2C}@,uq1}]*?ײfJŇ}5+w{_\p,yk @75EdKJ4 _{ 99Az+4k|$ z liI{8'&oUNi,8kd&.u:Q]-h$%uxyywd$r@h^orJ{ww/C³gEYY"gX?FEEҐn@'1lOON8 B@eZ54p{(m ZȶSx{{}gR~.eL)S<R[R\{-~I}Hɷ"\p} n|Iμy(9\c7 =~<\( o`0P򶢢dOrK26]]A}A+~;<42|Ԡ֥R|2ƓPyy|Nhh5)w$ss[Xf~~k_|%ޚ Og:B>@AӳnfTTk-s~T|:%BBNC4R6m Lb\@y= += ӮF05֑g)?p2u$¸?i?VڍrXwϼVcvoV:u|WbK+//pʡ1ྉao81'ALk^:IO (YNDPGklH,*L醈~pWq3V0cHQa~u?=\;L|rvΆ/MyzS(T@S>{` i(7$'DG+W@Z/IGtX/o0)IIISVZ >kZŶ6B]n%MZ g6[WN|:T:9aHHtƍ۷o~k6>p8>mBh2c# n|/ϕK7Zc_z>)A(3T>ubn漷G~NW7ot||qL&N8{/233}Y;;YfPy{7߼(իc=vq+]|o~󛊊`DprKE-UʜkMfO~ZFr~絮G;[`´vGhcjR)偲HoTy}G*]kWQ4{ O>eDh,AT$ZpAWNQ<“\#ɱ?Frv2~Jo x7>?ΥߡĊv]_Xܫp9Ko5@  tږ_ rM{;yl= ۫W tTNN%}ظ~cݏq=}W6,@.Zf#JI.[I$LJJJF1}u֍7r2꫔ n,@ {8|B~]VUu'L(73{x}On br |?yn|}"#CYJ HTɍl^}*(^Xoye2n@oo}c"X_8z&'E*USH׳ })yFf͚SN<_/g&|~C3ѣpssdtWXC566'{w^z)**6]]] .P?>Ju}0phmR?7~O~&EgVnIN#!6"??ڐ]O3 %i E\$<~48C`ni{л+ >%{M"`ĈF} tvn6Mlo/j^珉WupsTg꓂Mï]k2tY}:;H7_*S^f۵n`KK|3g fƳPh\w.8tl>Xֿ1m8;;9s$''[Ʉ$< mޔ`>槼3f̐d͈:|{i/ؿ >@|K7d$ԅB9TpŌa^߽HOX׿~y?|ɳ?xsC>YޘnnY1e : E6.0x{&,_ IzLdE9O$3#8|v^f@ |pTV::wb\J >I頠 J`nrrrz?<%hsΝ}n?J lW]]]jj*] ` >@}C(SVRu6W8 {ي#Lo{tɏ]F5z&h{݊P<8`ec\"~;l NY$ ~_.X~6pr if}o% WPgMI~ 2f_#JJ9|@FS*C DE܍>|" .fb>U;qDܺu+>1( 64믿^`ȑ#,uѱNNN۶m{׭4#00jOQ'| { J,- 6$c8]TbzG;R[{xEG׵pO.]/}3g\j^˗_x1<3gΜ1P+W,^xя>ѣGvZ;88Pa:^'|5?:y8.#@ ?|}o 7 @ ?|^@ ccw |nhkkHI>566,F͞]qcV˭M#rr)*X*&FcGq:Jnnʌ kU/sYkR wnT8.N{U ,?+Knrsbc:( l7}H$Lq`Ҥ߯{qhWnoĉe TR'*?` \[WNLS$?S͵*jOimpq)%irؤO2 k0%%%zuq2.Nt;CAwMEE@ qw)C>Νb%>l߾9rdo`pp0-B)x #_m0V]>EUl믛h8p<t\ Қ&ʷP}:%m%-&˼&Vʛܹ#Gj{jX+;\CBej4'DU{sJ呑NEGQ;}|EE]Hنݻ;wBCŶh{vrcr>_M]=S7nMDEeeC3IիW;88L2-%o6>Ο?K.[[[E> *;PP -H$瞭mi5kںyR|y987mj Jl"Q-<V/?UwGx&&OX!}睺(1|$[[;Hsҥ={I#'MMj*!׷ZUW&b/^Z:-6I6jaTT-GqSv*KLo+=s]P $)F0&&lf|<+q ?|0t|B\"iS(&zR>>!ddT*KOWk.J; 5SZ}u>wQV; ]'5,|uzyK>Gb>d5Uf &N:snnכ־ǏKXZ. jqٳgpvv?#+]>V:9հj'uS[ѱgɨV=ɺNcLUl]rchW_U.MpQ`\J:>im$Eպ`%&'%OڮX$w.ik(թISk@h ܔ@:Pql޽~~lAIlq6nFf3  N>W_;_RR2b$]?n8=z-[hss} 7XHHGEH$ /ItUUSU`ӧLlݺr|}}+bݰatttodFF|7~g&=GZa\È?7\orJرga gx;~c+6nl|r,ծ]'N(Z'O ecDv;EQ:Σ쥰Y]WOA7Z'wk^x ZD5MK}B(6~6 ]X)\]Eo<]OzyK>#5=}^ M]YFз*+^o޼$EdDѣtWd2B+VSbϞ=T`C56ү͉'{w^z%$$.Vsq/Ls~Yh++M1Jckp{|ޢ?ftY.uq̛mJ;olmtRL%ڲq~UG҈gy$HQ"<5ilv 5:\Q4B_֬D.Nnc><'H ГzUРaAGXz-G '(00_Z 6fr4wTJoٲenM w6LP;Mˮ>`/0c LFo+V_u`ݽ΁  3z*/ n@OCk6 !!?i3'Ksi*yg} sY2 ;k Xp:e*_ND=]]w+;Oc~غK-%h󣏤u'L(73{x}On br |?yn|}"#CYJ HTɍl^}*(^Xoye2n@oo}c"X_iJԤB_|""64zh8995j͚5SNzo2?]n]{~?s~{'**- Dc=s]\hu>QDf)7O v8m^#5wV@& $u&'MƇ_Be>@ Ӛpu)H/uZ7?>]3]TdVu %qU 76@ݜ9sHZɄo/ q/,,jInϚ5k֭>ǧv…vY:Dk׮zw}5kM0i/r_lzkȑYYYtGyDzș駟5[rmc~oZ[?qB9Z>Vkx ȑ?s??da.Z>@\g?QsEu%%m^@G[C=3r5~sIO-n0r&5,:Tخ+iy^3Uu^b]TV::wgr#F`Q˗_x1<3gΜ1t?~̙3WZehoowǎ;ydJ7n``Jx'ٔW6p+?OK>ZFMU^^` >@}C([>!^y$f~<ŋC /b*ƍ+|>KCZCzmn|nDf<5|f|#G?88-7p%Z-m7{۷bwd2M)OV ΍Ӧnj99i8|-} ;;{*ݽ6'N,[O˄`Pؾ`ccn>-.E('iիW;88L2ETZʄ0@`$Gg}n֬Y>>>uVIF:jɒ%eee3ḟ~q f̘AeNn:v"//'Ξ=/͖|X~ͣM4飏>KM2l˴NF_H77MEEŰΝmhP;CA%,PT֪lRBi/pSXFYX;>K\+b_׭kk'H}}ҥK)F-&&l&|7o;N9raꫯR>m:+V0t?x ݣG!yN鐐fԐGLLL,))1bIƍX*y退ࡇz';g>@&zeZz6l@W^y%##cXBDFb;XҢɾ֔vQZ_]W2:T*=DD(hKK59|6۷hs|`ڴiWXX=<;i$Vl2ڴn+WtkkkVjKHHLJٳׯ_oRvP]]r,5ɬгf/҃4U> g,-.qb8W~aÂWa ?w`Ά73 .., ImܸMߚ̈́0 ~N/:S:..n/Se"}Ŋ?_^SIZߒ`dO <<|ƌikk˚aIf}4{fT_C0t)JϨN>…o n8w+_,6sMI<ϸ͌._0balϝs*S35:Ֆwgߦmy?blvdY'7^h;N~I5,[qJeGCo]{yfCHp&W:wIggga,nrrr( /Xё{`` %,Y4-[{+> {뭷hWnn&bll;^&.55!3}|PVM~"{8CNif<ΰu+k2?ZZWoe6|I ;|gK Qbe9&h7zNd7J{'<' Tjkkl2&; l&|?޾8qYnJmTTL.>#>gyڵkyS[p@ fK677lg~_P:** c}ĉ_vm/͏?/,,4Ni||κu(i۶mԀ:?TleGZ߿hp'?!3wT?t!; *|9z;|-/R@Ǒ)GKkȩM]WFM{K|YZpcťܛ>mGs>O 0l޼ Fu @"kԨQk֬:uɓzf@"ld˗_x1>sL3Mb;v~&}4gΜj*,YPP`2TIR\7zHO֫lX/TR;{^%@VG) 6C/u%޽x͛D-^mR^J>KPىf._ ^opvn6Mlo/jB >>0(Chgg7gΜd+111Œ}?x<0$jf R嗹 )#0|Ē^rp>S˼}S&|a,èQc /d }zp%泿ݖ*I~ &E_~~J|}dד&M%m̑>04&{ٸl ^1Gp \ (| =__ l| Hd2Bw#I &֭<|>]l߾u9rdjpppUL2ZmyB>|Ο?k|DD&&[[ZܹS> 7$ 9sDGM yUu^^Y#C/1c|ᇺ{6iÆ 3f̠̩SuV:<22ҍkɒ%m>Jml-[rJ+Ne''kV T(ʞ, wzΝ`}ѣGoٲ&fE\.wpp>}JI/12ID7I~TӧL|z'8v옟g}**IzNNNt*?J&&&5RbŊ$K+J&Mjoo_b7믿6tJt\\_{5K{6]|B\"iS(&>@E"9;3T %kqzη3gʶm+=[};m6]kgk-$Y>tYtivPQ^%7ZիGkz/k NMmUuYz5 3>%--צMHمQ>-yuW|vnrrr(3(( |Lʹ0z-ڕ|GGG6`Ҥ@\dIBB[lڑ#G.Xo.55n{6]| Ş}Q'?"1n@z~͒%/Z%su jig- Iql={iPq`%%rrZBBr3O5Qk\ ,xCDR^7ntpp`+n_PLz5qYfmݺ.>)**]p@ ]LlnnzX_fS-[ĉ:"|#F|'< 6СCvڪwyXM{{{\_,~)۴tx&\5+ `%\?ޮ,Ζ ؼysw>@eeŋI.___ʹ| /0RgΜLwwϜ9sժU& |I*mԩtɺ38dر~aGG&Tfɔ0<سぉ`M`'k;t5иaCÿ21j~[0|3J7@ߒw5W՜PS JmmmI2i0?H%P%aaabH _RZZ(0}k^uv6mRT.XP,T~ * |1GkHKjD@z?k@'tFP"#CY*kF~ K>++KP2O AMlیӨQ֬Y3uɓ'c֩ |ꩧxB{ ]V*>T0$n^,6Mdo_iB56T8tJ(ϜZ7~]]׺|"3y WWd~SS/:Uw7^70(d[ߺwo9 #bGGG;;9s$''0\}zHI& Kq}K7dzB9 r&9ZSm];*>UF7VU+U*^ohk/h;y>} |@|Y_ꏈMLXirN`|p\1gh $cjGGر66M[;J%@JYɝRu\/`($-[rJM+>wť4(*%q}o'Xhoo?wܔ|!a^ @z~Uz:mvTWU;dem4NEGyy}|EE Ϟmؽ[s(4^M--ZR&Ar+MH(3r׷UD-)Q59R-߻VcvKDT6 qV ziȑWvpp2eR>ΝmhPܩ0V5xZxڴR[[mEyS>c57)$4@ʺ/ʼ:35inXF%j)jK<<ʮ^76jbc|=.5ӱ$ۛYYrR SDG׵vh4buť43Y.ҁ":kv~K.MLL |nP(K$m g_amm >и~=I~Gg QLJŇW<&[$e,]G\(TXz/iX=zK NMm}2Fߗˏ Dooqff3|A'--M(>|?.BHT߮?@&3?npw7ПCKKW~ nnevSP@]/d۶ޯYDRo%ܭBByΏok թZ=%h Xz`|sf0 0,xEbb"i7:88l߾~-|pTP֡'$ȓ 3v4?oHI1v0=S":T(8[ʟ9Õ|f>lv?) : pu*8>ؼy3>">~aC()ɓwnle>epX.]_wиaCÿ21j~[,GC ohаXs ՜fC l\q]8.l;uRe(!'r s?kByph9-o]>@1I2O]&L ]zHΦM *~O5?[Lҕ+-UK21s>:6-%ye2n@ixJOh gY^^\HTɍT7fey^ 4N+NNNFZfԩS'O$122bxEE4mm}.P38ڒKW?jIT\&RuN?skjɓߺwoɺf!23puyyIKܬp]P{ 2`Wbݜ9sKFd\'km ()}8"~ZNȻիT]J%7?!/s2 >Gu7_Yn!6%ټnqbf|||>|>|>->~ΜѣE&$/Ozsi1cDNN5EE+T;J)D2:ܘ*+t-VYʛDKly+DGױc]\J}}eVoniv<ƦtѢ,4 ʹ9qb VolUeew:Umm N>%SS$%5xz4N7[޺\РJ2jիrK%P*F+*Hy;ŎsMII >|zѯV|PL?={ p]7,ZTE8uP6Y_յ +K~`ennɁ2//If}#GjͣGk7M8ƍV)h OiȑWvpp2eR >|[;_Рbz'N>V6Mlk[ZQu$ǎ/5w5лpc57)TIӫ`|>@x$$/>F?s]P?vҥvss1 >|[ IBPfubX}$ti3go&=|vm]Gؽ[|\#۵scppեK}z=5M`pq!!|p{HKK#i&//0J{xẍ́>-P^TW+1.H_FU[eYzy>'mj4z>eJlΝ%Ibb"7:88l߾~L~Cߡӷud_k/0\}O0qLpuQ|=}AAU4jd*z<͔7` >|6_ޔ(qr Ko]k`nؾXT`vt==ˮ^Hg-i{-o0|\RJœyېJ˖-3pkRf6|/ht-VX駻"#Ce^7p„y8C*L>n Ion`i)p@[ۏ/O;~\bIZ~p}""64OiԨQk֬:uɓzf~>@ |a`II:zzٹq4w | 77Q@@%oRw=mvMtz(G"QmbGGG;;9s$''[Ʉ>2.ȓr >\zPDҖs q`(>@}SS.>PT#iSuzEs9a/ |n6>|u>`6*+Px|>|ܬPZ@ O>|pK}+>+ @^opvn6MPjzuxӳM\MݻŔZU99-;w^:߳\ӳ}*Қ"#k)ghL2t8QFLa\>'*>R >@ |K7Ɵ8lJJ|ni_nVP t_߀ݻر8v,6!!_> zaѢ*J)y ) =>89r-sPa|tظ#GjLN|7Z٦DMK;ȑ#W^0eRi)>|7H)khl+> *}_CA%ƒ?5NY6dP_]:ppB[ȩ&II9~~A'L]krqq-*=~|TP6>( ,66ch^Wjj1nx/_>%rcE uwMH;hA@x{SR O26`>F?s]P?vҥvss1 >|럥W~˕ YP(H vU#iKT۔Z;}B].UG=%%;nkB{{(n] <!<_߀-'-Z$~sr醐|}C+|_~If;y,+2EiJ*ϺKd\@yP*MM}~=̏ 8u޽7潤DO68DFF K:G,i:>wĝ=.^,˘ʒ ڕ]:=E>XPȂTɭRu萀}@Wҳq󙔔MOܹ-7WFs1 >t'QT߽>u :ZjO1U6AYF}Lj=TX*Ugg˩%P 11dƍoNol&|zWjO7з)_[pݤ  OMvu#dEODf#;!22_&/D:?*>䩩Ťf'Dm6 ciI 'IGސHڵ&~^G}ndY773grwW {v-q=gG׷E4yNzYс$)MՒi摤%[R|+5$>))e+HSb(;uDņ}>郣t?F7M &^ fwo0YY?sH II ~~z=PyfJ0Ʉ>@J<#u皉yڋ?s@ 5&3!5*pr5iA'OpR=I.ڳ$̓uޖ#"NO$SjLxzy0ucs=z}o=bc/^N y^޾|g +I)ثdOH:3Sk{f@H ̓n6*^3xQS}|}u4ߏ"))g^"rrQkaLM-M5I0{7<<1,$_}ƗF`\@Bycc?O`Omi@Ʋ=?by]\JwTjkkl2V; l&|2?@@َ1S?Id?zlF\hvp_l%H HI)4y9*ܹ^9*VJ.;㡡`m~t13R>qwbb{]60(.Rt 0&z`~ARxq5י=/7^Rwt+|}HlMRXU&־qn˩SXp=H#3=n,WY#'6IDv=+Wjng+?c!CAg^o`΍ӦE] }`7tU?.(۹S55՟ܸ{2ITX]eÇ˹ŋ2ڼyϝkml A(;X,vtt3gNrrL(I8(1R7w%bƗu14qF[/P(R/(h^6q$O.f=O1={`8q& .54,RX\$SS#ņH[ga ژzaiim8w ӎ>Ͽf%EEezn~A+((g>=v??p0lǀױwƓ vNs7zgsԆsXѹt 6E9$K;}lDci^W@@XdYPM޿=TϬ,)BЧO}w`۵x>[e4q ܳ>@y;#G}ǪvQyЦF~P` Ŕ Pѡ/P]xg??4 1FIcb.011s;>fSR /Oa=f8s vetQt:u~{:cSlR}~Hi.졥clA}>|O7Z:ˤۗ7@  ~cۑm~+mn#/Y`> %^^{2=bf]$I[/lǾwu bF\@  'J|?lV>p@ה@_mξ`Ž3G ϫs@PndfuWm"I5+rϜ @ >|˄+l=dKӲ&T٠%]krwܻoHIcs~6Wfׅ@ >M {@ |.$>;3>|>|`87Xi`}| !!A*z:={ 566e@.~(N78|իW6X\YY999AAAǀqUUU--->niWYYP ;:!}" ~Nw>$t_ >|0XD"`Lff&튊7]ח8qboڹs>oڵ+//)AtX>5rH^^\j۹sX,fRnZ8p% $㓕ŷ ݝ ǏX |TŋCCC|ǃ}R唠_pF>|Mq>@>X7JRLRАLz6((t.iAiGStj6<{Gnn.lnnEEE^^^If##fSt:]RR;ƍvQ|999ߙ@캊*J[[]]M7Aͣ;޽E-jM% 2O ^KMMeOC5m770 3TA%IBN.IN>wޘcN5SKR=2t`vv6g} x 6>Wbbɓ'YZ(袌O >-HLfJJJ""" I"yK+??|b+ǏGGG[&]\\@7<Ӌ=J2$]!~!㪂QF&Q{J%B>..q=999,rg<88|$vFc/ݨXkb.KE(`G@&Q:wGDcz;oܰu;ܿ@xxxbW^ɽ=@ŗP`llL(/pK\fx[8@+2 LVc)[*.n)|ҥKs tbbbO*%GGGxI @<OzxxV񾾾e? xz o>YKII p|ϳgϮ]M C13gٿqqqtPÇȳlmm |||hBiii~%MjO@<͗{!Csr|;{?66Vzy(N~1: _ H{途q% oO<<{LCf'Ov72 .>=)Í[aw³~u ziЛh67D?Mr%kh%6^ʈW^d|ļ5~JJ&[ظ4s^op)lxelY:^ u[*#FS/1/{:Cf].(u "&ne7v`91ms6n0iKϥCߖX@\sl+Z{Q>-3x:7ޒ+/1sUmw/YOAlN%\2 > gTtZFF6<@Ct s.XEJbg{?=+/an;JPʏ-fNeS ΖuT7^ 27< H|sEP>5@~ %@1v1%n܇=^a(ѩݴb?C~@I_O >+K P< oj{"VHJP,87Fϡ(~YϴLBYk7^lDkaQﻲq/1|yX1/ _>yz7,[G;͜0grr ғno=v>mxx=s_{@`P'3Şޢ$׫x3YRh:ÌTbdٝ~fqG %ŃX*(cOA(׷OZN־\p CKu:W0 ?}Yۯ)Wﲲ>d_ (]ŧ"I,]sgmm}.@.Txvg(.S\=t 8gBuN[zRO?SN5waLApJ2wJPO apྋwシ'sbCO>xB)KϥWm)<7U?> :|,N×/DFFRX'.F|ޕ ʆ`*H>w/=1&hQ#k[gnGeXIΝo"b>30jʃbgϨCrAPT t|L|i`g`y?NdgeT@tMW=h5=<(E yBW$k뎲~tԥeUW=@Bhr'u/3 ~hQ5%zambs.&6l(ӗ>.X|;@8} 7 ar|UZU+Uv)P{8?ܑ,\ c৖m@): Cnb(Kx=>O,^ݻr(e =N¤ڝ5WW8IT@ǿ=|"i$Q%}Pϗ4!Ȋ$3Tw%@Pn (ur y <`嚻|Aܧ!78[AW׺QMʹjU8/JDI{Qq_ ]% 함͒ >ؘ`F<K^ȧ GxxPPeMo_ )l+l.QSR$}a{#ف$K4n,b@&R{TR| U͹=\EZsΝf2>z 3S hcOHz咇bm ^ ` w4z|%@41yz,,)qc//_\gPcR&4v*F(C܇$\bK2 wN@9z?@OYY~~7rs*klxP=;uPbɠm~A E{!}kӨp\O@LD E~pnYKWCC#޿O{׊G\|,&&*$䍎ϽPy<x $#RW|*=*Y'P?<(K~ݡ,z:_i.#~=Od ~+H66׮=ʼ~k!!!I^tPiB%1{ݺ<>oFU0rdF>>@ѣ<.xWԧݟQZQê)IIɹ/ LQ؏(ipQ+`| /^xy?߱߾0+UׯϘWSEB߾%}s(ѻwo6/_Ϋu֝8qb('>nݺ}-[a(-'-F&M6l@V_s ڵk)=p@T,4z[[۟[622Zk4g.ϕѣ#s>𼺇zyuN]廊;㷖 sxy}E>e#[Py#띿 q'OJ %+E]Ifϴv_ڱpۮ[~{7nnߖĿQ/ o~= Ӧ iS~~W?{Vf~nx&IK4d֩_XCU6xQkW~Ŋ-EOk'ȑHr5;5k5kh|w;dF]Xm޼yߺv:gΜϟᆪUT~3fPSS .*ȂO?#FY& ٳE4h@ׯ3PF w4x(_~3kժUvm_߯6mj(Z-č~UrT߽ jnj`h^s|#,_BW:d%zK:bwM򟊻;jUIL|CCBI[Ky_~1>Em4|:I~+I;8Hԭ+i@d/Y}kS4Փ,^^Z$[&JSmݺuQyj)Y *2s466Č3(ȑ#޼ybhkkSzϞ=i~<;vYff4448pݮ]VXQFr9ܴiݻoUT9+ݻdžlѢ?B+lB400kK.mРAԩM%"͋2ԦOdJp qJ8-I|}?^CmC6nY%<z{uP | &ZO]-f{/|pfY$[7Iw ~43zzlަgbpQnY%<<(zW̤ei3Rdwӳf?zۏN}ILa/f^`3 ={K*U>=zb-+I;;K'~;wdS47oY?8Ғ}Tao\tr7oS ޭ[7ր! *" 3GQ4Gɽzݚ5kBCCY펪ԧbtݝ+ϗ,Y<زe StJ͍~?wgϞe r}آE(IJejժaJͫfO?|Аr&k |&{OV*jנVI|g7 sn~Qr<47ִgǶǶVŷG(ucA|&&T=zHZO…Q}@?x%S^%O $#ɤfPJhjRoga-x'LH?S 2Qy9TϤ<<8A{c3#~44ZH:bf[g~86^>23WƟ2E>j% ϟ{zJvvCIYuh(F A7lџ>9"9w c̞-dɧԩ#y.mʾp@4=< A+x䕀KH?)LҒ4(s \rZj{> "}}}DEnͦёy?@pppVj֬<75x(O^\yNWXc~MMDM ...=2n*~/_޼ÿ́0.]ڱcWqܧFA]} hm&n+/iog۷j WG|x%ZC3!IT^$4n҄]6'mĞ=͚w,yejkK ;VB )!=K$Vo\ in* LMzAuȿz,U(6lՎ:w]Y @{={yFx l.Qߩ&Q]lXE|L%G+k䉷C{xpR9fu4=2ّML792ɑ1n3a .<@i<x g(]T5<ˑSV(KgTlPP=@7Ņ){l\(oPMy\+( ֺhO#a ;e(opv<4_N0n{ %b PŕGvxyX He'-ib^d پQ^h:{..qJ@  uputs (+,6P<@GGG|arbq1 P=µ=zlfT\Q?222>>@ddS p(/֩ݾYNΝZld.4̙3as5|cs3+#P#tV}SG\\\^z\>B1"".(vvvebcBm]\ܼ=_8xx F`fffll| .9sGt߷o箝[l믿P szUx s/gx#ecl=^3rsz ڲo߾J/EL.4ŋ^ ]B_GEy5""׈HSScccCC/8q#۹cǖ-׭[bŋ&ʛkTTLVV87B zkjWۨafM7Ύ2?Nڅ[|G5WK/;{Amm۷oܸiڵ˗-_hѼydF*1-y.׫SZ۶D*/߳g$@&ÇxN$i^+8qx=ԯצ I"D07lP{32kzl991/^BB6 u+/g9۷k7oU K$'gD! 7Fˍ<;M7MN?;zZ͊n%4A׸QI&ihimSWoCc : Л;v5jֱ#^ԩ^}_oh߰M?S quTTRM3g8pرc zevv˗X&HF)'w7w"b^ ['7OO=S>yxxxАt+Z]iSr5 C=]=;>w;vl,˗Xhlmz;kK<*yf8>>)""؈;+Muv1Jr׭[`|`Uxx8wJ8?)qС={XvDhh̛7o2,ԤоݼsYw*/կd ;%`ƍn>g!Q[׮_Q!,Y_ܛ^u/DžNIwdYK~ʻ={s"""sBZ3~2أ))I~~ޯ<.VwϚ9M.X <7jԾvkWR ‚i٢9ETwMTGƥ\ڲ#Uv78m^yMk7C~ `'04Z LIKKMOȸ8Ab{xڱٺbX^>U}tڅN(Ç޻cM>yu!x U׎ww:=ʏuwvu pq7732z|ŋfVh>},[1޾}F7i܈.\j{ϝ]P͛6ѥa4=}T-B]n߮E-aq^Y͛73>>_QNHH7̬Y3)'4T~J߻{Wʬba%x"**kIy խC+flLOL8dAߚիT"\k]7^-/h'''ooG\j2y7gTyXؓm:׫ACq.ʔ7###f[Q\@,<Q' u?a{ʳkY%'(A yP|Z)'Kt4J)1c4' qQ잚!G!='գ ۨ;n 㔶(h$casѣGO/&LXr%7E\(^M2a#ZU|!J݇~7ѱQX:ēDER[^` O\|ִelV q^1z(qСuZ6I444S=’_x NG掑IgG-7:ygΘm~㻣>]v*VVV\Ci:j) 8 *.U%ӵUˁ$HTxՅ7kJK.^-Ξ9C>r0kp9W\a/ʽL1Wʬba%٠~+V*(_Vgz'OR"_ᴓ 4PPE{vVegpgXėxNi[iׇ9WޱZ꿭VaeoZٳP}K)Tox{yQ}Cv6gaQxXr즇~z-_U2AXX|͟^=BWh?!)@ tRZAI@' 5%8Lc2mt?_ci6e&E }4< !>_ mڪ(%$iggM5Wٳg;vУG^zOO#Gy?P7,dWpikVb'9 W7L3- SSW/\~>11!%%199!1I {54ghQ/|g&YS5‚5ڷ( lddD9 TfE +IVĠQ!qi[Ҡ~=vNPm+>3EXi9˹Γx9y9/x90{?aRV7ޑ4N:`1,y[Ja}cU4 kKqxII.Q^`ct޽2H{&yOOۻaC@VϽ(uk7{KN]v ge.Ԥ کT]$z.y?[K@W).b'n 8]JdĞ$SRR6lX|y55k7hmۨQuVZ'""By{{B{5 وT>,6T^+o3 K\ 1Q(JH|f6J<d~bLւHWEP ׈޽{m7lXzҥK,X0{ӦM8qQ~&}W%p]([mjw}޵]wͺ;w{uIٺWث0ynMQz ;X[> 3O*[E *jtqqqC WK^6kfƍ 4/p`Vk׬f.k )]YJ?xyyRGn~ppL5-?D]yex~2:Ia)t~/^z5#(Fe<m(8yշL#eE{.Az.jj?SGؼd Ncp wn~}i;cmb*I׮]C?ut*S2~X QQQ˗-.]:ܕ.X>'#(,}8"6]b85-?qT;Nٖz1e޺uX:aؓcjjj6mԩӪUmk߮]ǎ۵kG9 6Xb~Õ{{cz%_œxA@'^8v­+W.n{`M$O\vKxFlݺuVJ fϚ5u '5rСPr6Pup`cWgG\_!z7uvf+W=|o4g]Ʋm[QU|ݺ; ={RԗPŶ4}JpU\[_>'[׮ i,իWTKakP80 hTݥ{2K*wx\W>/S2JwM{@}gv>^Q ,f:'y?((H/Id<=WEێo) qJ'ՙ۷_xwﲘps~aiisp(iD%/]3ݳ;zeۻ#ef:ydXD{Py^={߿viXؓӻwtҢEΝ;ߟuuu55COP7P^+ȨX] ^ftWOib;v'&>5̸(]:oڸvXj%K?֬O:~#GN?u KFP2ӕg_r lXb +͛~~~qqqD2ꙍ5zUCC{܄B!]4nDWp JLݩ ݨa?M1b8>>{+@[E֬<@sN>}}ٳ'ueFٽk=h i)n8kݝTyy30kvk۬i*U@oJ2 ?=--iݙY"h*>SkMBhh(a<ٵ ts//ֿ8QJo߼YSfuȜ9GX٫jPd$'g$&EZY?{fP< 0,;7}H804?8-uv@臐qn hNݺv$I1NI>I:;;tرYf]vS" F~uM]]F^@X ߒ/x.Cʻ IѻXAߣsyn(xs{is;{=@]#?s̙qG1dȐ~KFP2pHHmVb6k8{ԥLq!WWWL| %5UY Dtܹԋ쾵=@XkpqAe;jM4l\nIּ+a99˹%ZLZM񎅅{8=E2|=@V i66>>!щz99Aocĉ)9R9ᙶQQORFF>|I===}}sΝ={ԩS:::۴iӱc Bd<@ %u(<~n^+ѷzʔ)ƍ1"W[Z(b%zqEkN)kkko~vIrx9 e~$66իWcþˍxa<=GMwS ٽݯ)k+ݬY3'пp| JRm߄}R#c]}3Cf9{g{~xn:r>|HKKKNNNHH F<0!-NDyhq_n^uҙ MCM(! :*KdrT/o¸8gx[T^jȽJN֕+k-6-ہmzuu{\3Oi!V6a.QQޱxMiowww7008wٳg䢧G!\ɓ'ʪ>35-CߋⅩ1p[{O׾Xxyp\#@I ?J SSSf(j9HKKOgx.999衚i.<${GT4}##~)ʗ/Woԩ*U *(7oڵ+|yv ~._hs5mڴbŊÆ (CW\$ܽg6!Eұ-@ZHK(p?^:UVtՠD͚5yRl:Osss=|O>tVܹsYfdd$͢J*jZhyHzb۷o,ht%UȩSxrX[[5߼P< ֭[4_1b Q2 '''Md,?11?Zjڵ׮]{-R/^dOܹsr(5MܠAХ2ʕ+wرcl?ۨ;~iPF bЛ7oL@=z_:th7o0bh``{ٳ[KKkÆ V* (t$ BѣGO/g;]x<ݺuٳtEfb d͚5=?2&۳_~ !%MF LO*ڵkWPF|ˤ©SMGϞ=SqŌ!! qի_P='QȴwO'NHMMիE"0w8aBSx>1yd:/b:3==]x%/@?<I}ooo֭Q XݩS={L4s@|IrrpyW!<@GhhhP)MW츸82p.ӡQ|` VJ S@zB'yPɉ*Btş7oȑ#P^V۷oӸ}a7UBCCBggg4Sb…_Q(R Nܿvvvʕk֬UD)fԔ4kmmmR0N=difG,X@w҅&NeՠAM6j.\1c%^zElذҎ/_L9cǎݲe U)ƍ9nܸ{(Weŏ󺺺>~!=ZZZ7nHMMZٳfO:zN>BGmSNQDC;À?")4ׯ{￧H`|ڵk=+V!ihhH/[0`dq7zIJȴoܼ(\UŔ>%%%2Ą.tP{]R%* [Nf|l;]@I 7U'y;wΙ3 Fq.4h^8vɓi"4>U^xA-Uobbbz 㱱( 0[jU؍x ۙ5k%BCC)5pvvf4ZB(baPhѢEAK?P84j>T}yzV.8z( 츺Rf"KR& BӦM;uĔ֭i٣Grծ]y9sЊ)-X@ ;ޞ+™+R}FM?r \@!Ќ(;gskpyyM͛7~u#k@_OW"=Grr2]"7o===lux>T(A?8*S(_t||N0--MMMML8|^o@~y5eN2%'}v>!!!.J~ҵ'5kF]t~'qVZ-Z|!@L~:(ϷQyGGG éVC܇ν^^^uֵxvݺuQb|>dputtz-P8w`.͛7_b<k9k, 6E%N)" ```@CհmҺP-pVn:oލK###62ωYW5niiI *Ye„ :t`Ӈz!󽀼<(k ݻwjբa()ѻwo%ӧ0.+V+{ F)SF t)̘}ɅI}t2ba={6O*dƍ/f ?#Z/@"*vz~^{СCً iTZ5""аe˖Tա Tg(N^fy}/uVRP(֦+]H;v6id{]@PPv$4SE*4Wddyj׮Mu͛Si8bfT[vejhPF8u`/؟mݻw)FL|2Gx@'p:ņg<ҘݿJ*UN,Nƍ6š즼rP+ [z%2ٝÇ*_H??DW'&&jբEVVe&%%ߟ|-Zرc#}Q6)/6)HΝjE'I%7o^fe4r%@F 9S@S'999%YU}}}_NOOAjXL1m%⣕wy=@^]v ?s_lYV 1 ɩii!|P=@~QE+ ,{ - Nx<$C-&`OWUW[w H(Q@"]7 ]`]pvw? {I4z2EmJx* շ)},4OI~70Qf(D]JJRRJJRRdZ1SG xnWEEi!%NK35{jT835ѓjp+5x믿.\X2V)k*x)ZQhds:J]rrrk7C5\x@YUVe1]5L9 ++2?}I&_t:E[n_Ki"~؟R^~&Dٌo (cڵkC4iRYo}L^H;BGKݻIxA8{-e[n4@vTRnEQ|cccǎ[F 55=zDDD|2#wW.]hF 48p5 ӧ /L6ZRR҂ hahGbb"erjj˖-_rN0zk^xqzz:ׯ[lIi@di7n\|ֹH/1c6oL ٶmF={,rS2ʭ_<l'PI<230~sΥ BugMedddP ׮]swwgiΝw7l0l0bL*ښbsss>!!"wkԵkWs333]\\*WM´_fϞ=yM~РAfJNNQhY>i$ hsqt^(r.ӧOwxŋ+Yr+(xwzT* 88xܸqI)BY-e9sKR,I?4hP[hQV#Gᓒ֬YӾ}իϞ=%`{Uqu(x?##R~۶m uԡxԔXd kiߺuk۷4|xx8GΝ;Lz)̫  D#RSSQݬYi~$Dֳ7epx 힘?b߽{#dfMkѣ=@Тp,3g&? (<_/KKƍ+2;P^nyM'](߮xN"oB~ڑΝ$i!%S?lux@Y{RQ$wb.} ϧD|||O>XYYU\ ))޽{ר{,eS75 gΜ) YnbbPbԨQ'O=_qFqX"FD%@I)r+}LŮtxD#ح.\r\ D9BCx@Yo*Uի?v=z4\<{ĉ-[V^t)h-ZԨQZjԩƝ;wկ__! AAA}޽i\tQ^=-ؾ}{qr֪UFwWz1/^\v&M[^ɫ ND#K 8wɓ'ߥgdddfffgggef&># (S1])z.@S؇ĄJ0!##++K,S?|r[5x ce=>[DcBB!ii=.Ct"5xPz= Waee ѓ $<xh{Lj 5Om|i)QX^1cp?^vU<%6FS6< w(x;awEw7{z,xJ%ԩST\zIhŋVVVEżE^ 2/ V5jL2N1/eynovP-ǂ .]Z=@򫫫DGG:tҤI_wy| <@x w&p5gi_M%QdU(c ad1V11df4fƐ/&&ך$[$UGuoݷ|}{O/y==8||9}_9w…a8 K/_ޯ_?MMMJ B6tYد?oRUU}-??!_էO;aN766{9/**9s&]`ĉ\#GR߲<*,<4*gggꂹ9W^Qi ΝGPKm hvZĔ)S$rwwg2K?Yi|Q4Oʆ'TUU)?dԸ5 9994+iM)d=}tr>=z׳q[bŤIdsڵ Cwj6țmѢիWY;(S*mϤ/_Rzʕ=zs{٘^8zʔ)3gΔT~6AAA,MmƓ)|yɯu-[kii wȝ:~?;wfΝ;ٳ~Eko)E~~~kC}u[@:tP '۶mۜ9s~r-0EaTT{۶m ր8i+**E#f'O444)޾c- Ԯץ;u꤯?uԒ7 8pݺuR3m'OyN d|(~ 1:|EvE<hjry5pm*c``@;/>S///N:ӎ) 1oFx򥖖V~BCC'tqq 555˜Vw :hKKKeވ=W;m4Qy59997nl|W5 Zi?]-|=:?}mw~;SҀZ}ۋ/?3fXx… g͚/>Թ@vr퀢qpww_Y|IoOeo%cƬ]v*S#6n`n0g^AZ7GQJWѽ$G-G '5'UGѕnljrg}_|'STN%;w׹SĠ:MLL7|qƕa-[9ʊD"LggΜȠD~~~Nl`^폍fےo")_+j'0`z;ԩ Y544cg;_S=^ZZڱcǕ+W… o]t*j"3Or퀢q P\\lkk+ȭa42Fkzܥh2E;o M(4.H+(.H.˻wAw$<  %r=<SE:"; w233)駟JS>hdZh2tN/H+&<'r:S]_R\u BW_ː!CQ=G]v*@xtQZׂ 3YYY̤sgc"BHBB)tzPS2;o^Éiii/))۵kW>#n褽Ԭ`R@c }^PߝTƳ#vȩo>P ^S^7G(OKKO{II } r"aǢcXhN:@M=wRS@PCN}tzwڵkW\IHHz֭W΍hn:pǾ~PZQKZZZJJʅ BBBvߗ>twYe_pϧįIwoV-l@A( ::. ž {eK.1cƿϟtĬY~Q@ |ro}р]f_Cq?;?n۶m߱}{eeeEEE }PO&N(.s59T,믿Z,{yynv_bxر=y%K_(nXXXHwϞ=ʜsE۷GHMMUSS~jp=r]~Ʌg<:gW n/4%%%00pԩS&O?vXUU˗/¨ =_<ſ/Nׯs ( B4h2:u9sEmbzAAAݺu+Wl6]&ۘFy&UѸ͛7MڷoStշ_k<:....)qAAaa!%CŋQhJ{C믿߿چpBA1\v1bDs#G$;whhho޼;eccCp=.߿}jjjZ]ii)OyX---))o tI<[*S/[6`^A03M^1m4N ˟5k2:(8ӧOStL!ss2d9'OfÇkN(}֭[drsDFF:88p/ '??ё; r5muuu)+2H]7!!UVf̘A OOϰ0=믿b[ K8N:qIIIԯ"rРAx@xwuGkQS“c#C0G៎}݄Q󅙉r> &pob-=:]|||$g?J^7L0` WHJJRSSپ7nlXzgϞ-[gXݻw544*++Ksss說h(n߾-U×.]*{V" һwVQQuYVG,SNo<~z"""(,**ay:ĮHgJ>D {] 穘H$ҢQ:x!C@}ϧիc~xãzQׁ ߿I>St Wݥ`@:ٳgfe˖IvӓI;!O?dmmmeeE9mڴt\\W,,, rׯ3 S[XXՓM=?}`ʱdн{w:D(N7559r$\233:::YSbccyOF^^^TTTϞ=E_}%(<:u*gذaK,\Q_ ;_Tx.SL@t:@t󻁹œyiDE)]EEE7DלDWEW 'b M(4.H+(.H.˻wAw$<  %`_W,LOYYYIqq^]a?f :\O )-ssssgc"b޶B:؋3|PXX7ߌ=f#n=fcFz׍wpphٲ?JǎСCc%;NNN1tu{q߫ӧOO4%%%1DD¸EǠ͛{ݫWb EGcbb.^dU۷oӧOV]]mkkwwXf̈́ /㜚FF4);v'b8--M*5.=zo߾d?utt뗑3F@ܵS3g] aÆBtn(t (~ ˗&͙3g޼yd$ߕڷo,x3:`gq/GM<==G:dff^ZZ* c@ܯJKv޽lٲ?(..177j?~X wd 8o߿}jjjZw ڵ3gXtSSSmmԹAn=s0`-['NpvvҥK||<˼s tss!ݼy3ybǎ-0*22l|t$3ƤJlٲB3V\IOeEy_ ߬XfEG}}}]ܰaq@@;w[+y=&&FJ044Tf|zC9'wWUU<-Zu|X,2رǍG E)m͋#G*qE;khhgi?:>=D *ֽ{:t@Sǎ;vr<8Hu7*qgϖ42RǏ]vd"|||(388xر0a&~c:tW n/IEhkJ<пQD{C.^OVT%$$D]]]ɇ͛7w\eO-S,>9uPNTT4{9~Mrׯ)ϮK^6lժUu_rǙrz!= ا)c͒1ENQOy2-ZSE}|pn۶'ORϭ,1bď?XS+?[ڵqFFF@ިpb ǖ~Ō3>쳙3g~:t5!Ю5k155?(!pΝ;keV!ߏ̜篐LiMM۷os9%%%F`!""MɫPtR%?=zM>l_CRmfZlGwUSSSy!g)_CC~\ʳnݪ=LEEȑ#uVQdǙԹsgLQ{/ٳgkw- ֖܌T֎)w"xʓq`koW^%s%2˗/: YjՀXztnLL {ADZZZd<8dI@_,=6#ϤP,...&?[ŋ' 糆šH.ٝ}yyyuByXz5M" ̂b~;&w'0eE/|Wjjj :RD(g)GIG1GG!GaOG>Gn¨Dg? oμ.ʲ9x :@?x{K򋑑 :::x:4׏5_7>>e˖nnnodݻWv˗} AhƈD3fXYYu uŊ\xQɪoާOv޽o~` /_6Ojj*0бcG"!2{subb"tرʟR/{vt~=Ew/:OR:իW7mڔFڵk555PG}-3gμy_) #;w߾}NNN 2Q.\o5^2...o})yxYqJn_ݺ*$$$׀sǏ򲱱R8h```ddy۷WSSkժ%JKK/ֵkW{{3gΰׯ馦k1w\ U,--lڿ.](֭E@@u.?uTK8qYKKj򳳳'MD@6`xhE͜9S*SQ;_ϟ?ʧqN˟x#F4]vG+Wo\$B9 5K%JI7p ~u֑I ŋg̘L=۷o'SZd^HHHu-u^8pƍGqqq4[n,mʕ%%%s1n~Ɓ߿?5F2GQ;y/t__ٵ>ٹsgcccJqq_3o߾˖-# )=TWWpШ<΢$88fP(?~ PZZNơj:uⷓoS=ݵʭGnx@M4Ϟ= a]Њ . ZZR2={f1f 'L6K. [ @̟?g+[9.|[$H~ȁ޻$r%k`\NsOyAddd ](66+**a x*CJ9Rn5S0@Jb"{W_ʪy?}BZ`jj*|]v<1!!?<==¤cxo=.'OdzN[~)9:x:@3[ lN|,c:V vԌ-WUU-++*anvv6``"66Evvv_abbFL8_On\O;y/t(L.:t(삇S-.\_<???RKK[@a;X믿7n| f{ N0}ѼKOOg:ڵco=*gϖ4JR(8ttKOnܚ>@KPSP)(z1ե5999ݻw/.[ziE\\\BBBJIIՍr͛7w\eO~)kM$wHIߟщAqk-l>ukjWp/K>K;wN!ǡѣdO;y/u-177gkHe |hhhhBi6J7obÇ_~=|]n%(.qFFFɓs+vF?eoS=設mxQ/Ez /_L ĜIN%œK6.vש!q e{>k.]DݻBΝ;ɫ_V ÜŔ&'\NIIɡC"""(F K.ULѣG) _Q2Y~rkٽ-[qHUĚ5kƌý{SN7{HHO?-//8~8w^_guYMWN ~1cO4fۻJ xjj^# *%ӓdhZD"---:C UV 0!+McxLڽWRۄ|rm$ER4:h:٬8qDJJ;w%$ܼq͛y:a Tkz ^v\sܺb|ִo^a^%7,Yɔ)Su]?Sɿ5559rP(dkkk5JrUFAn?#;;ŅBH[n;/MF>ZÆ {ѻӭ[p>>>7(V<~b[E^ < {I(ꫯ(EٙB~)^\D!>(3Mm-Z~Z~,RQ=r3:h: =;OI9ݻwSSS&===%A5}Z%|; 5A9s^c666NGlٲb|-@ްp^|ٳn߾xWy.QWdffʞY>)ٍرcFFFKKLLd eee}ѣuf 3'bּϘ?tYWW6"" x/bdddfffgg^ //իΝ{n~~~^nSߗ!Ys:ѣG?ܹsСxE0ktw] D"уΞ=γ @h:@}@G%dmm-._ܜzڣGחj:";;ƪ666wnpU>>> %\xQT557۷ӧ)jи~: xر?Pfbbb7X7UTT,--r{%ח:a xou__E/^`EF/ dͨkW^}Uè~YQRR2k֬Ç7|ϝ;'{Ɔ޻wOТEfΜ)y ggg--.]sptt400022ʁtuuիyo^MMUV+--.T Kxa׮]ڵ366ܡSAAAݺu`aaa]vѱ?s .ވ\jXFF~񌛢D:\,00&ѣ@fۛג6^vLQy{E˵ÊET +Gg bxر暚u_^t:dݺu|e˔/ӧO(r {/_߿֭[%s=jjj :D~ %(?%%jHHHtaa!y,MUYYOڥ&''y]rɃ%688 oذg,X@hPo%;d==Z233)3<}||G}l\KKk;v+x재o++F&HrkAY-EddUd`:࿂vȑ#njR |}}N!OCCCrBlll-:ĄglÆ MTUU̻wjjjq޽{s7'vI%%[. ' ]]__o>h4.\,!6&&FOOgϺ޿?ca+v8~gvLQ~Ev 0RRRtuu###KrtΝ;G+W,O>w\eKn3[K7}522i[jj*BVrXkr%Os0S}>}:%(*7nwPnxMux:={2Kb˖-:t`颢" //kAaEA%%%5wMMMyɓ'r+F?_݃:@u;(SF/:{>kV^Lޭ[#tΝrSy!=* Ꚛoߖ ܹdp]55겲(SS :JQo%[ճgO쳉'r/===/_;3+E=Y;Ⱦz?~cWZ5`޽{7~Ev  C>Sޣ{+bVv )// \2KKKBYHWÇ')O?Y[[[YY'٦MJK7vqq!הէO`*F9R(R&yPk+y???D/~333 Rw444-ٳ'!oƌCWƍL"{ ]ܜYzn&{ڵuK\QrM6lmS4+(_odNJ_ Æ [d ]]*v;++.L!UTTT$J[Y{t.!.f[͎>.{(I7gl{g9w1k|ɗ_~qxugZDY meO?uձ1^=<8~Uqq1@=N<%j[sw_t'.*q*:e:;/ 6RSS Kt SD Cp\ #9<tngLpM ( uTv :@s~ 4 U x( Y5:\MjKn Ś{Va@ X>@.rʜYLl2-w;vh|=~CX r<0%O0554hPk8zh߾}uttG|y REE200):}>}(YSN{Y1DDDФO)gΝ;w}Q@*?>8qBɋvQ~X&I^ogSSS KvgϞ)ٳg[n tgʟݻmvҥ СCfffᥥB088}ƍ2i)*//߷oW^}3gμy)YVV֢E۷o,`bccizҩS'<<4iί"h~W2:udu_A%??{9zh*;ЅȀ9sz t࿥4yTVV4(,, d|l>yޟTYYrpлCKjiieddcǚkjj:88DGG䢫jՊvvvPvvI)(ʕ+Tx˖-SyfZ8;;tX9::PUJ 4o(Ц￳O<UUUIݑg:СC)M &et?Ȓ(jETk,|T~jj*KKKUU|PQQ̙3MMM'N,,,d...d۵kW2dfϞMOWWwĈdf9SI:::t )&;FZrt2z#>z1:tӧ]ѣGӦ5???{{SNE?}4U+wޝ#}ѢEVVV*|޽C (5r_,X?rfrrުU+W)/^8vk֭[i߹s'EO333VѣQQa*caaA OII!g;!!_t  3ٚ)xt/_;w~!@f$[[Ç4MdN]˖-[$O,--mٲ%M)h׮RG=z'}P>~Sr:@=-LH:]PL<۷͛5J𒽢񬮮d$u"WW׹sQ|:}`ڵ=r䈡a!wbf͚Ŝs#`6%(?44/>]L=%BXH>9*pݻ<:˔-@jm(SFB8-=1bDVVSjQbb"(f@\\\X3gȴtTT!<dnՔ)SfΜ)[Ϸ~KN4 `@xO 0` m|С_^R=f̘G` TTTҲ͛ץK:ɣvuuɓ'ۣGv㞞[[[pgܹe &?|֭,zqռzή+LLL%6lptt`1-5 Z`kk;w\UUU2 ))h-_ۗ.\3+&&,\P?yddNytׯS̘a!{`M Y6;TId۶mKhذavTt:̦:]Ckݻwo|ǏcissY-[:tEEEW\O>Sџ}Z__{mii)K- 纸Y\%LPuuuaa!ٱ06 ]|gnnnR@4{LMM6 ܹs'yv?ٳgJKKCBB/^H999%!sĉKOO˗ΝVZ?ڶmn8ZG111YÇ=z|T&IIIt3gPݻjjjWS̤C(E4kƌݹsg%uXL @Sx+$ˣ^:tAh"dF.iեn{yyQ{ز(2t*L&3$6me>{l`jj*tpptX2lpN`Pui W\0@?&T2s+sիUUUjiinaM$Y222yׯ_4nfeeٙ6 SNՋӕ5kKkmmm'E:@^^Fz uʊL_˖-ǎ+eB[n͙,2P|n9`Μ9N'Ŀ_ <CVWdKZ2q#FϹ} ɉʓUdjwن*M$@8\\\vڅq@:t@t@@ 99Kոȑ1:":ݥ{hy <)~6hc DTߝ{x񢭭[6I,Y:SA-***+//g*/d/_\nzǎCYYYT?O]]]Jw- z<<6#VTC՟O='EOᙧ[;qۯ4AAA;vիKKK;t`hhtG%lfg̘19;;ӧt֍2/333V?\=t}mٲEI@JNN߾}'zu0/@h:@bb"{9cƌK{)444EG1tЅ 69s`fΧ iFσ[%NELG7V'G\.VByJq맩IiP:88Phjj:k,n;wG}dcc#Y($|'|N\E㜖Fo_wO8pC! )H4a eipȐ!622-[k׮UTۉ'~I}OzzzrDXtS nŊ<~Tdd$/,,|]:oCP"dol^A@P-,ڿ^(wvv^z5߷o͛7prro={ŋ`rPTTJ,E-0[NA4OR%cǎe)Va:Blg̮] 6\z(/CvELgϮ}2:[u:u:9sFM'Osm6HP=矏9JtZ&۷ooٲ%tt}jjj?WGekSehhhR:1=GpM ( uԖM~z^bŤIdZv-o\y.Yzʕ\y-~rkeΝ tΝ>$5hի\jgguY`/ ;d>|)S{[[.]P=zD7^S{nHjj*|A^f͚uaMMMV̙3o`wt:%ݵM^1m4t4{ 222''믿nӦ m<~[P\\L颢SNKr~]wUA@@C@Vt4aQQQ:mhذa)M&ulׯ_7002Y|J.+sICCרwNi [MLLWTTE)[ntTzB)ʊ/^899-X477wĈ'Ny֭[zи>WMP%̛7+,:އl2?#uuu?$PRhsp?rbZڔ( cR;:Nܤeƌ/̚5ܯ8_&Z DGG[ZZ#l=c(@2Q껀\'u֎;'''`{e_~%?$M`t:t2""BGG2k^ y&  gAphQHDHcRRx왊 Ey:88(@JKKɀHT".\`nnnffv%.sƍ+//gs\\\lkkΝ;겋#?pܹd)600hpA.8|0ԅwNCMLO>~z /J1c\"ө޽{0ؿ?]6s̩jXU={ߚM]?E^@V zШ(WW7CTrEUU#G4*--&lSk$<B\ݻ|{ɽ422ڷoKuUGG̙3\wUQQ)))y+н{(`֬Y.]|X\MMb`:?~Æ t(--w뫪,XЩS'IK, %33SQDJJNBB) : M`#GPˆNQvǎYMP`΍mRR@ (**_hQ.]OεVZQ~1c%<==¤4hm}ϟGGG7x@xWXb[OOMM@>""ӧ#F8q"gddP~nn.+Evww722=z [!@;&L`Izz:%?ٮ]; 퍍}||V^pArglذё* h&@1`uAo3,u6|)XP_ o1Wt:::::0{Ç!i;?A?}nݸwG:tܙXYY%%%:u2((:}_ E ~RUUuttWcxxx>zTbB!=--ooo/_3㔗|>%\ 4ht:^Jr|ΝwFGG'O<tVNf۶mtnzBB-닻ϊB3+(Zv=mkV^}…>@@2 7n6lqL=hLMM`ѣJrjjJ&blYYe|M~3g$֭[u:L;pӠRcc#յi&^oZC{{UGv΃wT*Dǎc۷to}4nmmgT*w|֓@ @5:::Ƿ\a|˖ha0=6ݼ^oVVF`)Brwb~R)!=7i4r9 ._\TT@%%%ϟ  ӧrOR #GpҥKmC=HU 7ecN8Jr͛7?+|_,o^n])D?~|rkx?/@*zzLJJfPHkpR2d[[[zzbչD&L@ VU*U<,k 13s)}٢fCDyyÇ#g:TZZ MMM|> |gϦD":vbb</;;[δ('&&\.zDB۪T}.aF%K[Lad{},/d  =?%M^= vCrc2YhX<̲J_5?4Á endstream endobj 707 0 obj << /Type /XObject /Subtype /Image /Width 1368 /Height 732 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 1965 /Filter /FlateDecode >> stream x! F)\ J< endstream endobj 704 0 obj << /D [702 0 R /XYZ 80.963 747.976 null] >> endobj 34 0 obj << /D [702 0 R /XYZ 81.963 712.73 null] >> endobj 38 0 obj << /D [702 0 R /XYZ 81.963 526.592 null] >> endobj 705 0 obj << /D [702 0 R /XYZ 81.963 375.365 null] >> endobj 701 0 obj << /Font << /F25 474 0 R /F28 511 0 R /F38 617 0 R /F16 475 0 R /F46 674 0 R /F24 476 0 R /F44 651 0 R /F43 652 0 R >> /XObject << /Im2 698 0 R /Im3 699 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj 711 0 obj << /Length 2243 /Filter /FlateDecode >> stream xڭrί@N+&7lQ"3Еr>@DSD@kyK7hć\ׯ߾5Eo7*8VHL$A(KL/_Blw2N$|w?nw:Cmw|?iMx#ۼo~H`'9"eph6& D,x"&YFú>m~؈: d)BDi*R Hm.҃V#} U 8߿%}*8rQ"3T eCm(tN8~sטTvnƌaLGy4u L6R6mp-hi4P g<Nt#%N.Xڄcա˪2ͭLS$WѾ٪I*:& k렍e| tnN;O|G_ (&2q%O{g^WDLx7z p;t($ u 윷F0Zyk jCWH"bDR,'TLh,iKlO^o*%C}Wۢ.U(VEYvz V8iYX,oFG&PtΪx&d6!eWXz)|b`2M_"u״'i +utw3-o /$49 M7;7`Ę*$~{}/QOgT5';"ǐǦΆl:fD#DUx\GӸj?.+@^r?\L`gC:P%ft_- [U:,N)0liy|䥷xLۅϹz S6&4 H< "z1m% -@?y9) z|~R#y&/9/ι%|p8%ES˻)W"U| Hګ#*$-PC*Y |{&rW/[W  endstream endobj 710 0 obj << /Type /Page /Contents 711 0 R /Resources 709 0 R /MediaBox [0 0 595.276 841.89] /Parent 686 0 R /Group 688 0 R >> endobj 700 0 obj << /Type /XObject /Subtype /Image /Width 408 /Height 429 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 714 0 R /Length 23557 /Filter /FlateDecode >> stream xXY1 kuEYX;VlQ PLA:1P@lU Z|@e y̩9=y{9BuLLplCl<22223mX`p&###9slcbC5=Ӷ$QJF˒%P*96&YȦoٵ;pd|ztѨqGF ?wchؐ%C87ZI 9-KFVFL@Bf1-$Ç'z%xH26t@hch~sg{pd,Y1Y\8)A 6ŸǠ"]2X#K(JYe5eL"pvrURm]ϨϽJ+hoɥ/j7 VUPJhCn VWR\+M:FJj: 4b`-YnT4$ןWTQѬըCsҚ,Y\M8刨_{pxŰgƜ |ss_?xsAɶ\A|Lopƺa#Kz"JI*rZ#l ~ [gШ~ٚblE e]N؜?7צ+V~}1n֬7\E6bTj?}JU-mHczUV'沱6v]t QM!HQV9RP, 6/- ŠϠ_% N.zgW*qЪߢǸ뼣ccV{Ĭ6F~ %spCU˪}.yhG{H2>3qwJ6oqsԼ#m$NwH2g* 7 2X➱=cХ׬Ek:'LOzG*% fŦgЅ-)Kϱ;? CB=~"x'Gqtf͂[[$\!}Ǟ̒RRr9&IeKhpVl ah1lyPLp9آ^:أ-nUJ5mj5V'&*Yz:k%wkdaw-2uʧ}up0wߦ;Z~WF-Nl:;U  3m-R\3H GW]S=j%5V^6r=Vޱ])vi3NYpa|oVQf-r)݆:ELYЗ<{u:<[UCkOjf㣡VO#'lJdUMOg&*Пɫ4ަUsW/f;\5n,|V_񖿤v1}wW^ ^x!@`ǩK~?2#5lr|Х_1-  eqb˖Xٯfo4lqc*U2oS/!q3Ͷiը3aCjZkO#t0\mw;C mMj%[nY?d}uEX=~S\J7\c;xu!VlOoT ;"#ng*q C3)v8cњC9nB9bå-sO&Z%KaC?`:Ȍn>Q;P!SW0}؊ J[m;s@p F-:>ttM}ذ;"18胒 DE6|wxW) Ǿ~ Pf:#]bӿ~ HYh;1c_߃޿y#qô3q%13sEرtM%¸<(%lILJY~B-V_o#C?[j}/Z) ʛwE9|1]M0oO5^hkɦ]hО;9_s=[Ls;gFz?CE&lNAf}~9񘘞ReF-vs#z;F J*:M6Za:-'4Y/5asmi5gCB.(U1^qZy(Zzc3U5LMo^_|aXf81x4UWqhǠYQ,T?dӝJXg.^.(e_[RcSND߻((̓^Yۺؚ2dYM!FP(JI*[I/-[vFZ)H!< (cԦhj-'/N0vMj/BsFty{ ϔq8cXQ;3'[Zd9Ywa q52d?4O.=lmq?T5nCl!<㰥O?c|Wl’bY$*p2PAۛv^0QV:t}@ #&^4.eu\ܲǮԨp5}x]cEncka4gO/|sL4vr{ň`gYnm`ShKфX kAgZl|MvRԼ%pӋ7:pL犌4]rS6dM,JI)+݊-+jU{ێ nUo ,t)?^2ޘ\R*ջykњ٠UN3O K=wo E?+jnmglEc.*qgZG:.Å:1t'y-oec,*"cL'IIZ>]S L=(v1Ӣf :z*4Vi'gonjJK"d2_prw''=Sy{Km:cH#O"]8?}e36=|~3寳߿/x^ׯ_}6ӧO׭[רQʕ+kkk\ɓ'_Sa*U?~,rԩ͛W 95Xun*kP?v^t)/ҥKߧ/ZlY-:tf͚mذ8;ohh(qp͙ނ77sN ^ ^ ބ ޅ M]vMQQ1++K9xApp=z,Zd((('77e޼ysZ~;vx WNNNGG޽{bp-ˏ/_Qn]tV?۷`pܫW////6!C C=*zu۷o_>j0`˗1鉾a&Lo/J8v/V7t݂[H>/ ԩSX骪sO޽kll gϞUWW?y$ĩSE8I*q |統(ŋ#ȑ#ۄG9.fff_`ܹsg̙ cb kԨlbcNLro[2]&I6KM!=wk;96͛7iˬnʢ/jo۶mر,d~qD#cƌsLlrIe9UV=dOVtٳg6nܘҲeK~mjԉ 0##uYYjs+4cWN1=w/ 2$ ,|,>HPEOg.]w0fLߟE;/XlYXX5$MM3g`Qϟ?ҥ b!-زǸ98$b_ R1b˖-5;w_%|xv@1OP [K3# > > h <ܓ{|z;whˬ0cr)^:yq ?~ BOp8&׊BK`k=zypc5 "Ǹ&g̘ǀqb?kjj RD>wA .=̘/iӦaaa׮]jҤ 6zl_ɭ .ԬY3&&qڵk 2K͛}A,q a"$1I"^RQQpOCCCK>8%''ܹs=޽ vx[n !w8?#}%|ƍ/]9gG^_w9S @rrrSr'Y=y(W^ʕ֭΂ JBBB7nXE__} SKK K 1ooow]UU+Z'IepLl 1(ԵkW ׿^ɿ:PPP@6+ŶTV-EEdzppuϞ=Ze1}ǽDPN@N?r9;.z+Ԟn"[WHEо$dc^]#( ]=о`.]­ ˎOHH̱8=Ic/.Y .^i]:}8999""sQQQhÆ$KIIQSS۸q#^W N}8)w;ucǎN0?F"dc\"Ǟ}C𬬬I&ܹwA"dcBJHHxꕍ͔)Sk׮yYfͪW>5nݺ5$5IΖ}%ܺuKCCC٧Oڶh#VFSrqc- ZFRqA| 7;#8eeknҤ c7n`o]}%H؜9s7nzʕQF5lؐ{qL&fU~oK'e%lߘcp?(//իecb %;ľ5{-Urr2+}SN6MEEE]] +ڮ($9lRfM\qHIJJegcJR'Biaa!cGQQٳ{n 9VLLL02uԑ^2^q}Ϙطq-FGGs3%e3.}$=MKؾ}̱6n} P%S^=a+)N*oP^q&___ŽܹsRžY!=gll,N~(c GFı 6A+ cX&wE{&=cbN&22}ګW/_K>R%lߞcؓ'O0zK,ñ_(!oqVX,-cbI%Y|q/Ml=Xñc0Vׯ_Hk}Qcs"r^r%^YD)P".>#&El^q1o'嘤wθlCӶm[///"%U+7/a.788ğ dwk|fϞU$_N*os;zy͚5-Z@gΝ(]ž(19G^AעKLLYx >#&El^q1o'嘤wθ鳳(c."I&5jԈsGU:Kؾ pEnݺzꜜeJ!CY\,{$F^g$=cbN&1(ϸ+ɇM98tg;9Vn^]8Vn:-kr 1裸±{zp{7ntёkWk}QX͹gϞի{lu`܃0q{1uFDDĭ ԅ^>ܽ{իW1Gnذ!]CۨX}Ϙطq-r)ec)'IڵG;vݽKؾrss1tAw !WɓTS,X \畢裸1Z*L(8p"yľ؜`8 5c8ę3g*))nnnR8&ףϸp} ^ r^CۨX=1o'Z^)eܱpT~Ž Xy pBmfe0$#Jwʍ>o61D;vDqF PFo2'e͗}GAfff'N08Kq_f} ؝;w>|HDEH$qD"c$8F"H1D"H$qD"H$8F"H1D#H$D"H$pƵn4w$8F"c1$~Z&WRE]]}G|EGhќ8F"c.[cnjjذŜ31$;qDAArJQ#qp_&MwHOAJbBLΝC䦭J挋9h!"=ry͚5kז5G#H1{;.K'Urg`1EEE@ ZmCrc***SNNNMITSSK=k8kƄcc$8fraC@OZtu#c.]<|: ijj\Sȴh`8\DiΘ.2f-H$RplF$B&MMTUUׯLCCpYl8&6'8fΘ֬YN:H$R)r,=5jժcׯ^E[gm5e$YD~؜>;psq"HR0b4ǰ^^nNf$E;Nmp ^V,erLlN>ǬV[:ѽc$9X6o@RJ:]) UT99)Vs 駮45;oVMMa qD"$8F#H1D"H 1D"H$qD"c$s,וıš< ###ܙbQU#HX1D#H$D"H$q{q,~I"Ljc18F#H2ͱ5k}RZ,-J KhUTaT8F"Jcv>}9XP۽=c$p,l9h!;Nu֑ӻ׉iBXpq{7}7yaڊ~{LիW7B6ux|X9rw>}c0*;;zHT98j B;?Q4nmmmjj*1`.ӧY˖-߾};gaiiDհaÿ1~mϏ_wՠAC޿_(KLL1΢waWRR:u˗/6M"ǂv!˖-fC\Էo_?cjjj&&&.] ҥ jժ<13g(++'''455чk޼y#Gs X^:h \BϞ=x5k={ܯ_?;;;HʱgϞeAAAӦM>|8b,n7og޿/1$1D_lm'O <1VzJ_(dddq?իW||| 7o C+++0%奤H1 <8)));;wތQؠA8>Ic;Aаiݺuڵ-Z͝$q,_7m޽qlݺu`OBwƍٳg1pܹWvsss 5kV^X0S}%ի~ dDJWr׳e,X~U!377_r%KgT9`½{dD~ 9fkkۯ_?XO>L1l vZV%Y 1M4,VTRfg "|GR Hcv$٧{z1ϛ8F">cHαiIlcճ leKM9ǎ8_3lN0~U^ 4ΆׁmBlzlܦc$R9{>q{eb٤ or/?[gm5e$vڕ\Tpn9sfDl8.2f(%1ۄ+Y7vt.,#?$7ǰkdݕs> |׷Xzjrl:Gb؁=H ?٣{7AGjհD0ֻwODY8MҎ$jjjM%qD*9:lSG[^^WWz{5ht휜7nF͊~1 Rv"y&Vڒ8MvXBX͹Di}}`˚c@?Ta9wOHfMe``[>$Hca3LF9欤f#}DND"H$qD"c$8F#H1D"H$؍kyLFFV},pcN22eŲqL@"ʑc$8F#H2{=ޱ'wۿ>"H$۾gq#r1//RީS*++$*U޽{W{VZ}VR9cc}6}Ob9pѣwY]3NoM2'O>} }1R ߝ{ϭs.>{௿ w޻kd/C#ן3gJ@6m(**.Xy X~kkkSSSU=RJ 4cXnnn>}Zl[ԯaiikذ-Z[HHȌ3F)//߱c Uڵ )(( :BXbb"qsK _BǗ/_J$p=?~]yÇyye 7n>q 8ׯqݻ~: >ۗӥc/^8fbbrҥ.] TϯVZ c8YE>|W9t毿7o]zgٲe={D"`Xfͳgbdpvvv|WXƽ>)x5k+giaX ŋw$"y?b 9;nڴ)hP –͛߿/9}?8ڶm,cC6Xv .+ąqQeժUم0o޼A 7fϞBHc#7+(큑ӝ=G_|KB]?})O^&+:0$sss5kV^X Srq^z֭[8z\,ǰeQ֩Sc\[l;w.? qwwgXqt q ̕+WD.crnU'{þ &]jTfi%{q n$¦R1[[~={ӧࡗcP]5|C4w1 >|8Bn߾]Vtl*t׮]cO=`PzH$(|ԗ~-(ؙػ% Fؽdg 5<%W+MEzəw@)Sb9k׎c@ǰa344|5I#^zΝ;uttP'~^4 KpVK$͟r7 l v~淭RyO59ru3$uݺuKLLf3M4sK}`I$YXg+c%\y Zw{׫^}w=f\w!j=SaKj֬>(DP4UDņj$/XFFF6mIcg-_}٢ՋOO/?D"H$q8F"c18FQ$H1D"H$qD"Ǥ+וıš< ###ܙbQU#HX1D#H$D"H$q8F"c1D#H$D"H$q8F"Aoߦ<~aĈcTeJRu$qJ$\@ZWı;mlecu?-5s Ljcıb9V&LjcbK}LLjc1cIC=ULxGr"xı[n5iDKKƍ}駟D;pIkkkmmU&&&nnnח4hЅ Xbttbz왜=<t5 :4//%8t޽?_<y;۞ 4ceK|[D*..e˖5pTnQ@YYY &L6 ǎq~~E *W\vŋ߼y*--+e^㱻w*gvȩbbbjժըQ;w$Hu `IIIbv튜 aaa0bĈI&!5k477Gٳg.\ذaCL'TTTʕ+W-[D˗Wzܹ}Ο]4=Vl`L4qc7j3&mWE$y1ıXD80UAAqĤYfw>s V.ΫW\c{TT;:u 1&n޼y>>>C A$Ӿ}GX͛7'77%6 ˱yEZh ݻw/;, fKMMӫW/$._}`:,0ݜ;!e`3,enuc8Gn]?wy4w($y6p1g'NW,%S@>bǰ3ɨLcvvv C1vkF@ZE iD (,љ_{_ʫ_ܺW($yچ p6,"NĞ]`vaa;9a!L6N1o9@OzqCBh>~q -9{>ULL 6k׮@'؎;eczyyj IDMsE> ]sժUf  }c<||c!$O;~8.FǎĞElcC~>سM.1e7F X8bӁ Hs Agf̘14q]y%D}}}+Ǎgdd@X*9KzPs^gk֬ ^O?aoߎD%`st4+++<} D#oTʎ?ι&D4׷aÆHĭ}R,dcc 5j{>d`926W\^ q+ |w<&* {XXDZ1cc#,qN 9V.U9o%''#Dyq8V.1>n$+w<ƥLjc/㣌~_Y^H"}PɊ|8F2LjcLk ,x;qV 6 8!"c:m! zΎg9q`؋1щ>r8st`'c:*؈8-9)++b*򥻷-Sg?ׯ[3d@}1*[fpSQQ10 oZC{d!=k8kbݒ祋 2g,3&:aFp㘽̈́ X6 .ʱ/ZPNJ % M4vX)K☤̨WceOo=CPXWqjN4=gC s$+Q]&򥻷$}~Gar?vڬ0z3px\w1dpnFpWܑqdwd_L6TrA-[@Yv !q61vAsl>! gku7&HhQCJ.c2Z08hZ9&~2h B@uv.v$IWZٻwOTM'^TUU1,B+nXFV̤\t4ߑc|\d21 =Xlje;h'v ,^a|9&_0Zb9iœ;QZ1qw;TWA?}@vQy]qMXIh{[Db"ʒ8cUVŠq}gceJAp[lִ b;wb?s/dc`WHyV,e5OJzc PB\eaƶ'uttx@31HWݻM:{HG?б۲@GRb9&%3Mv2'v>3,bEQtWٰs !%w.I}xbQˏ=rd#ŵc%tT7j08tfNlå_4_ecN[.1v'E r@]vf7bO]1A?mSGa-bن39g͜>d@9a͋s#즏Vp\gڜ/Hj],Ǥd8>R/+~ctlPaʕQ՘ѣAJJr</c|AR&:=pm۶ᾩU,JE;d\#b3I/Ž%x,}6,Wl`M'+K a6bqUG%}[lj>6.}*}%YwԯX8FFH$R)8F"c1D#H$YΒU@\#+|}ٳgd+zPb~~~PPPbbmsrrXzzz͛7޽;44חUO޺ukHHȝ;wȣd7#?!xL£߀$޾} |IlllDDOl1233qNJJD?ݻ }Gn~899?YUȏ"1<~8Ɗz())9-ؼ>>O233IX)==;w +O*1 ?ır'?ecRq=#?!߉|wd1zow;rDC#?ceO1o?17qqD#Ljc$8F"?$?!H1qs26YٷYIp9}b{PFFV|/H$ҷ|dA#H1D"H$qD"Ljc$rBFFVFe{N_!##+3_MbH$RqD"H$8F"H1D#H$D"H$8F"c1D#H$D"H$q8F"c$D+}6 #FXH"}>֛d&>O@q8vT2I 8F#Ljc$ZecI:uAG8F#}_t$MLF{bPoa ]y-c1wX;vA'd8uԊu68B|kkf͚URz'N<}4X8H +8Ot fqǂ]UMLThРAʕk׮x7oײeKqrGky}bǾr"ڢ㾎uݮ{I<ӧOoذ_VVVllutt.\Pn8! l_{O36&WӚ]i$ {3gٳI&W&Ljc.(:u7 ;%fem"E4T)Ѳ GG zzz-8\N0~>H +]~{jZÇeOj, bgϞUTTLMMRvٿǍ5kj֬ }IIIHIII]p:F YN'''U=H iڴ|=NOcYS$E>|g!&f4~?Fd~>RI ;wGύ>l*#tfmDB5 & #BDw9??H$BPe52ˡ9F[w {#QKޫ+Sf٩#!?cHbwG{h'ۖ⵺`vttd2핕˅.㓓@B|>`=eYݾ;000>>^(0.e4r#Ǡy)ZDEJ98@Ig2Vro "6cHb<%ED imm1|\h<kr niiX,`PE%v y^Jc4tL=*m )G|nyN I|EdCH"1s,6\~liبo]p<'w9Fc ,`Ϳ)mb9Fcg)r#1r— _-1*ȱ눏sFr(("("(112i]XQ"hjᚦiZDDьiZ~q endstream endobj 714 0 obj << /Type /XObject /Subtype /Image /Width 408 /Height 429 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 376 /Filter /FlateDecode >> stream x ð7 .IZ [-c$KLn.,8 endstream endobj 708 0 obj << /Type /XObject /Subtype /Image /Width 32 /Height 32 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 715 0 R /Length 1098 /Filter /FlateDecode >> stream xՖO[uGW0p1sY1&[,sqE#M'n1怲 ,RbdEc^zN=V _I?>qoH6QS Mg2_ u"KM ɴ \lvhS7pP sJf0 RE`J-rZud^| BX, $# F; sNWY7hC *b1j#v؆Q@>++OXT&ˡc0+9v؞Q.CLbq.Rak0#ffvܭbG>V{9wvuڰgjhOmi;X4fM`ٞ_eb -ab9|qbX+/Ll)x"56Q}>Fϭ}u=|>n68o;,ͷ7EvA0ߌuv^z:nq!N%V(cA,>5C>o?uB+=*ş84#^@>3ՁmJ$ o)>ZCM/OKrz9sw$G>͐<^^SĊ^4d"/iH:щ_QK=G>/A"™Ǽd03` ĉKs`2芓/ZI(%YQ֨6 P%*IDIBJS[/6v[If&$o!! *_Z"=_<2xF;Ưӄ۟rկ9W^zD>6Z*!_}bM'xO3ZP;ޓF~=F_^>"Ժh^^+ofvS'{d %W$֬zlXq}by8z^a6vn^Ed(1#2~5~sXcB9`.[ݷ]"4^¯G2_Tn/qUvx2 ]j|{k?EL̎ endstream endobj 715 0 obj << /Type /XObject /Subtype /Image /Width 32 /Height 32 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 375 /Filter /FlateDecode >> stream xc`?BO2Q_} 3/@%ؐ? <Ē3x.W,?4uPqw?πWrOn7\L@>E_qo}8/uTGXZ3~ɳO_43Q0 > ċ DWeKT7)E)ŭ_MOiUnK qd_dsme )EN7 [>}YxXߡCv^ɓ'V6 N/-?ӻޕ,E/_] jLn=wv5$gw~gKggO9; endstream endobj 712 0 obj << /D [710 0 R /XYZ 122.806 747.976 null] >> endobj 42 0 obj << /D [710 0 R /XYZ 123.806 712.73 null] >> endobj 713 0 obj << /D [710 0 R /XYZ 352.946 674.973 null] >> endobj 709 0 obj << /Font << /F25 474 0 R /F38 617 0 R /F44 651 0 R /F43 652 0 R /F16 475 0 R /F46 674 0 R /F24 476 0 R >> /XObject << /Im4 700 0 R /Im5 708 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj 720 0 obj << /Length 1273 /Filter /FlateDecode >> stream xڝr6)i5uIomSLB],(}hFbEE7v{EehT,+\*?1Ϸذ Pi^$2RV(ܔRƏ8_^se&(py<'#"%oC} pc*"ٍGdZ¸ӹ' )1һ= } hJKf q큰9t=< GPn) yYhZӼnHY+f*f$ȶ汱y׸׵IZK48*P{\qG2ɚv p @-! %6?s&Kn-59 MU!ˣ'"H{zV\nTFX#q5vW/U.eq[gbLaM{DkȢ R[1,] oj0ƜZFph2E:)ڛw|F%>{T<#S M9BrQśR4W2K}_;i HK jQ`2Qm< v,UzaÜD>m X2 YRb䞶L8rA`q]0f s ;'aݸ;55}Yvڵ3ά: M Md.%5^  z01 )~΋޷(`i üӌݒwlP^&)V@o!9 pd5 W9S>""Xm嗶U;}PJ]~ #ý-A~ -^xkqs#5Lb}qeYBܺhRIT΃bZ%ޯ}>?R78@,K=ګx_R-_1/g> endobj 716 0 obj << /Type /XObject /Subtype /Image /Width 181 /Height 58 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Length 1309 /Filter/FlateDecode /DecodeParms<> >> stream xoHg'2c&0,PWt&x͜ؼpH*a)s"nUN/|0+}1|%B4Q Cfvns,ꌍtkn/1Wyy/~yN.QIJ,:vG&|ps.:R0ĩ.j8888ى188 t!N'8||,+R]F T`8s)˲q<^T*UKH'~ݟccc.! p5RSc2#Yc2rAkzÇN[dp폩C,KqGLo)wʤw,X (177WWWmkZVKD ( V;11@Ph&Iruunnnv8j!d04RQTTT__OQ5 >0띜t!Zc2\.W8~>w``ڮp8c|\v$iFrPRRZYY(; 2QvˍFD"|<}\ҕB>vI._(juuUrYYY%$I&zz6aM&h777%RDž㒮>EZ>122r哧BF`}nYKǫƣV*JResssy,;^9?y_݋d[?^]x¡QD?nllLi% ]PA}g[{߻C:rfgc G(jii)++L(>/}8?ǹ[WԔtN9NLf6}> ++3MmL|\SV/_2);!Y__C|]ٿ B"$=aۛ7jZV~+Q"G˺?J( {o{‘9 weƫu @S$*:nnCAҜG[ɩ# G*I#|Ԙ|߹STo|9+BW܅#ҾiB>Ay;2;>$; =&x>6+nR쟝S]B80XF:S&q6H`4 0`8/ endstream endobj 721 0 obj << /D [719 0 R /XYZ 80.963 747.976 null] >> endobj 46 0 obj << /D [719 0 R /XYZ 81.963 712.73 null] >> endobj 50 0 obj << /D [719 0 R /XYZ 81.963 531.41 null] >> endobj 54 0 obj << /D [719 0 R /XYZ 81.963 497.656 null] >> endobj 722 0 obj << /D [719 0 R /XYZ 370.879 458.038 null] >> endobj 58 0 obj << /D [719 0 R /XYZ 81.963 155.404 null] >> endobj 718 0 obj << /Font << /F25 474 0 R /F28 511 0 R /F38 617 0 R /F39 618 0 R /F44 651 0 R /F43 652 0 R /F16 475 0 R /F24 476 0 R >> /XObject << /Im6 716 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj 728 0 obj << /Length 2387 /Filter /FlateDecode >> stream xڍ˒_*;7Z%G),1$'ƒÛק_A.ʁ~wvwtaDZv/&T& $vfIoo6ۇ&7x+w7&?{>Ϗ?v=ޅŹ:0&(_<<󞉵LqdOwSr,HK0sNQX0-0`4umglCSȜQAdi$2s;w;نJG`DZ64 F iǧf3Vz[YݲߘgϗN}J}K-6$B]o~W޿,CA^v'Yo8ER󠢤tq͑ٓ,o&UY("QC,6 3lJU=xBەzr|4v%Ox ?;0>GThHF_>xA0kmPz- dbUd-YYZ+ȽLr)ں e@noNh9.mudpXVvP kV'&%;*qr91ƲB/]C/"е5CƱH{/2h/+#n5y)ڬ 8`Sqlx[S St@ ZQhbCF`_j Bc☒ مAۦvr`@0Jm+;X'RbN @'a'؀uK%s^T'HGߴarmn ë8zUNN5 KjaXmnP @* DAg, L`+8[lS3&  NW:iO-2Ln}[Nl@Ћ ש[bfY&)fn/yT, 5 Dbᡈ W=Zdq W4%)Ry;K 4Z]b7TΰՐ:ͤADo6&I'm,n1,bV;Dm"ڟڱ* na9ai27ǞFW-=,^ZHzp}"\ƃ]_dU: c򷘸 RB @w& '=kE-vߡ4^FDld_DA~\tE:M@iRHdcamЊ\wMs VZ]fյ,`$[B?q?}Ah൒VZYu\ABO-#?4(ʪ&"ox3B+|4E?wnfl2c?0ρN̢a^6Ѷ!8KҘu|zFؔ-8M _^^3X> endobj 717 0 obj << /Type /XObject /Subtype /Image /Width 288 /Height 149 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Length 8172 /Filter/FlateDecode /DecodeParms<> >> stream x{XSW;HH"PjѢPZXQqG:-3\d +VˌNTq2X,xȸ͋a r`0lf Nc $))ikׄBaGGGUUZ>pϹMMM&СC/d"AN) f| XWWӧOȑ#=DDDj///DtҼyL B {zztfIIIvvv_}ը.\pwwgXqqqRTWQmmFիW'&&x/RSSuh4#***lll:::> ǎ+(( LII-uݥw6cELSd2?C"كZ͛Jre[n(H<==Ϝ9 =zD?(z "x}KT*>>> [[[ݻEѰs΍ۜQ }L&R̲vHLLifffllŋ'O`E*ko厎RdczDm^2#'0:.ry}}²eO:obs޽[(-XP(D"MZZZbcc6mt10-H$(ngggښF͝;wYOOcWWQvtt]~0+2"A L&JrKM3"Z[[#XiiV9y\.?Jrob......-zw+++l6{͍999nnn#KR-|͛+++߿_]]&+=_62ooUltE=4sTaHXJіXR)ݝӣRܨ!!9smmù x-k*kl?Oc(.wR@C V h'("H/t܁q$4a /6Pzc?;٤77j P.G>?c+W54߾-..vv&P,N'6'#].^li_6% DXeeXy9J(G]C(|̴<{&ӟP47~Ml`['Jr"]z@mPm퐹xYEY*(Qe& J`qtbq#ؽ{ߛ;aY{ KUJSDĄ@A & 1!P` @LbB,k~H|%sy% ߓŲb}0 1!P` @LbB (0Ą@A & 1!P` @LE <$$bX:#t:]2OQ,x<VXa܃q)ҥKqqq\d4,W` "***,,?::v*vС2rYTK\۷bq8^{p-???&vڶ6@DDZH$:IIIvvv_}~9r?pႻ;ŊJ::K.͛7dnذA(V^o޼[8;;􀀀GjkkCCC?__]v}ѣGli yy9J ԩSiii ,ܿ?((t䱾O ^ic efsrrrvv޶m[aaL&CQʕ+\.W(n߾=))I n߾aX]]|¤k׮UWW߻wo󪪪gff|@@psε;::~ Ç|c z{{SRRpˇJ+W'_=2ܘ-[j8cU^iiѣG򪪪A ̔hrF$-[;CBBBCC=Z^^.ؚ ++k>̌]xɓ'x }с >+((d*w^E^^^dJ7GQĉ .\f̓|~ggg@vuߺu+.HjjjU~xW^ݹs/ٷX^W> U0O,ˑ( P(rrrv? ¼HQQQiiieee===ob~/`yՒnF!JdH$JOOW(6ُ?֍:JKK/^888g.\и+5oKNNOhT#> 7r{uҾrfgg斔78;;dzg...U}_K_\.w޽://[:88m###nzΝ/quu$FOcccϟ?oooƍ .T#'((h߾}zxx8gӦM~~~7o6`t2%X&;ͪU<b"o&য়~:tPQQѴZII5' ` TZZZԴj*S+>>^$)ӧOOge7 燅;v _Tr{,Z ð?x:p(p, (0Ą@A & 1!P` @LE &tݬr@Io f,Q`N^ZZ:Lz37#+N? x޼0A{NJ df Io Gg0N#_~$ x޼0A{NJS.G2g0K׏`sad 7SLzc^?rqi3>n3fr7͕1{Lyқ2)RimmL~1{c@ `ޤ7/66Zd0m 1!P` SDdrLjqvɗ fqtsGy9ƍo߸6_p&i( c2n߸1%ș|m t5%`wצ}JRMb\ٛÇ(0c2Q@CQ++ZPh4@PL _ZETQtxHs֭ \?P(8EWZwߙ#.i Z>_VU4ժT_2PPRc V۷o\L&b$gSjl:388pP:]-h' ([Z??x_}^wwkWwAUIdJ:**رcFSSSS g.i KI k2Ь+U!ۚ {18γq(~NF>aÆŋ9sڵxUDc ?pG]?a,b]Ec @oߺlŞUVfZvxwO<Ν;?㏽ܹ3^`6$? Z8űfPz> ĹLjk?t؟X<8w]l(Waaaaaa#xxxܾ}[2#1> >> stream xw|EswI.wz/I.% AM T6@ *E:A^.]H!z a7;;ϳ乙g~CZ*,,, G5j\E kl5YIŧ)ݑn*s`BL 9|ocD[|'ώ w~S{[`Z^Oqxac<tGd#vwjo]pGT3jeMY1A(,?XO^{ `^ڄ@ ?$ P\۝7)m6jttuΨ(ҚliQ:֙OPT4@E65u>\]iCn3,D_7qLekwɻݨ:6zsɕ4J@#* 6)=[Z&l hZHa%ιJF ٌ E%h۷ܸ&[[<\*J8(rC;歺t[2k+0nσҽW6 ͹sگ)n82;k4s_i>֯nw+dI.l_j+@+}߾+qA I`%I^! s2w0R@"*Fy~ 8]6+OM?9dה05IYeVfs( CcBjqCfm4DFd2mEM~O6~+ǧ)Jش)h)j%6RߨPvS _X"ׂ#6 0~?gS!^CaL漸ծlEq ˩M%ϑWr;[YTQ^ۉ241T;V'ohC VZ&y}UєwQuEc8VXߨjSvS֞cj/-*Rj0]5ms5ס􌘊.FJRti=v9Fև YcPPXQToAQTw#qR&c]*h d)Lye@"e zNJ Z}:ي2?ǒ {4l-0?JgZP\ߦdIoҍMX_QE`ڋB~x,y/*Y˰`. 7V7:L<'^y̱DrTEK">0"u(ծn)-(,9V}X\~:$~iG9| 6>?m_X=l&^uإq;y$yno%!eY^O۽ux@4([»FnGC6a!f(^>{5,#rz3{I~ʤӭtZȴw|ӶRh]N3X>_L :(tts?  62WKۇe ?BXό,#lIPou(Y4BJ (?xw ˇV}XP#4tiu.( >Cf q 2":Ȼ`i{iywT{6>^^OcÛI⻰,P/V 'L9Ca΁moxb{bxa ~XP:K.emW8oHZ )EAzv6g[y 3M{` fU0j\ב;7q:]0nNASdY}%Z+}ϥ1YY_6lDw Clbt,5諩q@0+Zp y 7ck'`fWDV ? :f=jcF ۮcD,%Bv4Kxn8׼hvGm M!~^5a|',Of5gu4`NL /;6M~rK/òc+78en k}eߨf?LlG{V姝e u"lo ky&}N BBK %#"R`PK RPX"6C ^t,A  9|aW4ˤ>KbǙ'.f*kP?s,zm]'r۲횭NX7?sHEo|jf\f4un),CiL l6BS+oA.Je乼W #ky#0kyO - &5z3T2ZӠr)7A')$p%N>c0 ϼ3ٰGC(3K2<:#7GCfMvqG):H]IX[i _{(-(x5zz2#_(N;wi3 ~N* ӄBmoص7Y(G9ceu354JyPay,zhU`(H׎}h'A0A(hn_/|ǡܢZU}TKUB{F[{[i#Ⱦg^m%t( ;c͏:aa '.Bl tsK"䓩3ѿgjȻB=i?/ςڒ Ok7߹镆Lc h)Foq GcI욣57wbK*Z|g(cg0׺Ӵ"]˩}-c+HsF12vzt*&W:bDON;v#]|D (Dq2ޚCS(~\|v  Ꙇ# s~BmdVKykܶIvW|jȝW= ~CUD Tjժ5YnMfUSj3Zr#UJoujYyeҠD5:ϭ}3:H 1$J.}o ", c  [.P^~.$d<_KPG%_ɴ"o~ц9m؂`–=<3opx]Bvy^6Nt $7{"kV(pw8&2<170CL%FUjGj w): mOi:^]l8/ pPF](ٶfiݧOn,$gs3WO$#4\L 39*`4-x$=2¦VtauVr_n?AV K3tYgnzӵԹރwsotJ*x۟Pδ:Am374{-fIa;mŕxM/PeuJ@s(H6'kfO"mс>-҂fӎ;)ﺉ.s Yiv r8/$5yn >:̓?+oܩ:2Zf(|tA@q|8X ) 9O"cLEvԩ3^{{nVOҴoncgcq]ʍ Oq%~\QOrEM iZUZXS݆DXfP5.!5ݨ'e K;Fł.m?GLڴ@"ݳiŸX7ը-~{}ѥ[39#+e=lw`Y7TKUҩ W\Vɰ<+;'dܭݧ/tM;9X798>hYݳ/ M?fUV/ }9/]ӴdkڷpbpABkp9!~ѧL9 K0<뉬٢2իW84obd)2$.#1Vs߽%,lׯ߸~VĽb>ԇ׮߼( 61t2];Nm DwHM%>>ȲU<smEA\HuLA 5xu?v3A- @(WMC3.:bՆR6Z<]g3E%q G6k"X@>0O,1'h+/ LKzp;||;hӴ,jFUVfX!MxRK̻/jd6uEcS|'<5+QEIP4SƼ]{S/zu+a2'UJ`?,KiY)WWLOiỌ;Q=莭gm},sQ':|͛[@V@ցd˪_Ù5&^,/S& )Z> 8Ŋ YWOŽ s(qN[mr5NSBAq|2o |8E"ڴ{V#R]Z@YXuJi&㘕Xiq O -P3gߪngNh =zg.v+/xrrS_+Z%6c&OS@djW=zvjSr).296!,Gq29~+o(<ڒɵSmUq[1NW8d4#2(Z PQa[br~X޼W >a1fjЈ]pdnω?; ofa Rm].D햎4 k HN}c`Pc7n(KF{O+rb5:cٜ1:> _Z˾ڴش푋]_j)3W#;hZQ!Cdv.GVCSu &j}=KP>5ܦ@ @<j8g2ʄ|>ں+JS뼜%hU% 3tMEsh? "^R̶{Mxh%W)-Wj {{Ϭz96մz.ZHK=7t5em=g $gy"i!㋓rW(s[~zZ' z<~?'}s.nv6E}@Zն-%U`t)3nڧS0"w˂R{Y.GqjBv ;ta@k "˙.ItDLMuJEN|r?I+,R"] |O.xinFhx,:e~+h6eb%/C4v!\NFƟd,0%̀7غN(gi@g;] a:έi1nԨ(FcA'$FuU4wkOyEN St} 2y> д]nǤܶpAK@S, _6$ Ɗ+,N!BK EE[B`Y_ r: hI=}6=_WQ9P0n죝+j ZPnxL;]EB ̘iP7Gŀh""V ϭwW]1^>u=ar~^Qx:|Ǭ6O ~3f7sӕ/Fykh*Qa1\8neXWGS/{J걜s2bWų72,,l֭hE*('?mVnmwIJ-Ώ?_Rjܽ]nej0/oD#h)?)eu駟8wQšuvQEFy̽a֯e2Yi1*/H"] >֧6*YjbNJh G;W'; \kT-lъ;5rK멣f}czmL3u M )<зb"] s.OH-1cٖ+ac g=NfJN/O;` ~+&eڡ8Nr4:w3hWǶJV2'Qݰ^u چBVi]9R] su+.uktw-Y()uԫ*ӎ{3[CGA+bl!mdm/ K-fFܿ|̇ad2իP}[:Le=Va#KIoneWl=Q90UUb-NEDz<[Vac\e9o**-c>-vnYN6ytJ'̏d>;6+LfQjV\zPch. toG@ W1JTݾ\ȩ֜īFS(h#(P,X ;" d$8|ʹ,_&xt1E%թ BAvN{wtvƞ=F+kW(@q\5b\ř_!bd4ܹ}>3tݻ?YG](zGAuxΛ%-ly2܅5)ծ1)O8C٠P6\FOpJ{• ߯qx=,]{G_gMgw _w%W˻&MFP+(4o`=um慶.f)~Uƚ8 32䍝dsG]%y.uyK¨c/'#J:duKƃBP4\+}?;(!ܙ3 wN(ſ3xs^+NϾ)(( ٠vm"qF-u%84eF\>pmuV.Mp[ǚ6nc, %4 RbtȨfVjS:5bW*>Ǽ"],iݣM%^gc[Py\ p_AXF] X~-Yr@hFCA-Xy$ʐfoEkg"7zо6+kzs5a-0([K}!ŵ.{j׶67hVRA F*SY?õWRJvLu۩OAȬFU~>u 㘕\[86mPPn^i;_&A&b@ӷ]v?9ˢ`ՄI-Glt*stvp۳mok3G T\F|Oc#tje *k|qkNSMx@\f)4,@8[I?.2pDqyhZt,3EK h<\e1/E.TSO0HhZٹ3ʣu4Z[`|.`R$~paG YhI"mM~ά9haV]%h/^; c//z,z@ ^'>ߚ&nlի5خ,lvӍU?t27WC۶s~2/ƽi5WV C%zC~ 2JHȞi(3cf15Z ܟ'cPo%=?+ۺ`sR _;W[M:qE +ZQ4zMySp_jv}Tn{}gO&efNkbۭџϭ+#PFU1M<OJ[M?+xg;8b>S:ww-e&[ep*#U?:'2ն[]ʴϗпˊT' =XحK%@Sͧa`FV .(*A):28"?A֯ tyy+.q YcF.=bw.lAfĵaQR^97Y[hQ$:'5H j8` Bu̿9*Fr/U=[{+cAQP<u.( >Cf q 2":Gj)P?VViwKeE-iqͥiN4aAEƋpE?RI0&359D;L(ߎ :$E/;ce\&vupF¬:SKD6v41@͙8Du,W O yEx/l̜mT&ٵMz ww>2+=N[i hIbiK>/:n_ByKKage3 m5\VFw Q wn)-`lH#@g]x8Mq"K`N^ւ|͇ӕEޟzY[`b&ՠOBtYX,:MPr)k*Q;);xGv}B}ˣLs;L"E)_m@d8,+:rÎS5˕lZ'Gf7@O >(ĒyrKy P3z(doА B@ @ H($$ržLn4-a}mz32`ɓ ?^LTy$( [xȚU^ӂS sdUꈾr=D4~ M>`a-,hth3ѱ5L-T_;(hXLyWA03fRʂg`LtLP w&c8H IJ{* P(iѮy;wwO)PQLG|^uwONO/3ao`(ҕsl"w~+j۱C|aQ-}e[Uϋwx:clwXQP:ye>.~#dAk90 ?mkE!}R<~vQZYqhn}M[4sn#PQ(TH6T|E\"].I2N4PX3ѭŻTY{ 0*'j+u1H6#844 x ] ֙cx&Q R7n#K E6Rqb5)O&i1HEsb#VET[B{_Xnz$ҕ6B~[*x%boi:+ 7'[__ `Aq3yխGYZu}y^H6L0Ӌt>W,۱kV4@yXEV=A/ğ4K6QJ B$t<&ͅ Mẁt|8]+鳚˩ᕶtB AɆ4C(+o9YfITLk;oiTZuqps8yQX G1*X]w~ruR)cb%{C:H޾pMeOyJ'.0IQzD({oc[?,Z/Y 뽊"]ʫ(^3M;h`(}'v[ե7#NҞoJa'x;|qy^GKeڶ1cX+}ǶgyU\M9!0V}jemZjUXXX䃚N][ZHa%ιJF 1K1&LL_XɹgΦ7$.U X<X^B|~*L,N qHMfI R].e˔UnLFBRdN`NP6#Oѿ\Ig|kHEs4ZPQ~wh?嶿2 7(mqu~"g?t/`~+-[GMKL0:ֻyrlzv-˜yq]7/يSWK# [v~EXa uwm`DBRS H<UC<6  i}ilݺzu9SŚ ,UQEDj%):o䴞TL"]dl(4$g E,MCG.;;o^˓k@d\IZvzC Ut^{!e.ыtm?'/TzwjCa]j*-b7"pm$+FB$"FtPccY )'c()zɬ@DB2sFEO/KFLP'8W>Q4~: lh}^<^ӗq`it$rB!/8dMsXY= bth%+:OIu/&޿hz}U޼VXKPsD jJ9|~kR6{I .Qc+eO{ GWvs{ibɼBb%R [fTZތ89ހ)+p4lIWvYk6 @-i9K@s+ҕmVlNT0& $ĠEl]VlH lȧӱD}Īi$ ˎ SX<)E;Xp !fӯRl4NV9[{[BC`훳5^P]wWظɳ:m;?z$a9JuW9JdRbAfTfdc"];.8Y/tL[Rzm" |X` ]%~huԄaS9v,xKʺdSCk 5yFțG~[g[_p̣sx}ukȑo.֑WĽ;UP_y#x!\nߗv~8(Y?{az?SHG/R̈To9$rks1 #ev#U Ba$oHWT>67)$nŞqi7z0^~-q=:$嫎ʔ@] O|e} K_n%Tnn^ћ5@_׹~D~{^@sxYfug }W>}'#mQNk~veeCR~҆/Dk\h-:gW6e*\#\ğ4K6XTȺ,0j\ב;7q:TF_hH[M`?룊fV1e r45ZSLꡧ5kmFPً@hu:_PNLNm1t[^Pv&bx([ G}<ۈ70/f=W*it{3SjJh93,Aec[* W>>>|y֊g߱٩n^u+4 k[Ejlj;ac%]<ʆbdV?%vT| RPV | 窈3jp`(*ef->͓}$ӷ5?ox6'gsPJsxwX 5'v7kkT+U ]'`bϗx'l*+yfi"w,(O{c4.vFv}B}ˣLsK`} /5 zD@ H($ fD=8ypX%O>y>S. /&ݾv6C톹ۧdlmGLlXJ0HW#k:X&*Z#s!*JKϣ.3EKVhm̞LYwR #jdM_|X`RO",{xsɋ cKhJ%ҥ(lGä{s+un^m*tLHi0Hu(ծn)-(Z{K (E0gnZB!|QEj^ ? J=Ev%AwB ߎbn/M,W !r/-CCw,J?ޛDg3&%C r>\c89eξȧ~'nE!BbPva-!BEE[B:oY" "aMcv._'>؈WYxkwڻ_ZҎ&-{xdglߜz횿@i[RV=*N<7cuPL 39*`4-[p]Ӳ@` bٗtuJ OK|E|4xQ?ӬG|_*]X;JCEsW .eGwWx rN :'qFijЩ 4U]Uν+ɤ{?Ye/U`73T"],h:%|`ί)gu+N7?ȽNt;c}_#~ϊ2N^ >#_y}ٝ{ ._l֌"x1?w߬g>|܇S5۱{ < E"kQ4D+$M*mGLSGʹMo3N;Mmƚ&R;\HD%jR#hLX. "mYv&+Gs}˳gy(TB0Iס..Ym0X̹KP1nA Sm4ץڊY @?&8~7D'BEs jP?rsY٣,n;Ϻs;h!򵂬a],7""P%鳍=q&yu^G_±>do_̾lndq~P ̾-oOHyg|geOҎR} 6t9"kBP b(\~G6q:6 Ƅ2A6;jT{Jj ޡ8쳤 !J[bӔŐغDtXX# ̱Mkz^B1MHκ텯L`&[MZH7Der}:O͊> }vɌ]," nMT~T2eC=O6_z.e967n{ owl*=s6,lo=7<{MV߆?3F9<6\˖b9/zfkϭz-&0dѺ!9h܈m۶>h\m8+/IgKOܬZr+ >M\ 塍 D4aIK!K!BӤ(13٤BtnLy˦L6 ]k`}|1y!8+\*u /in^Y6djsϮZ\i Ӌj oiQ@BP >i?.v_H4$p=&- ~㭥'"&Vo{ulX {$̑X_>mQQQ6!PQ?^(BGYxk|ӕ^fZwkZ_n8^[ < 5^cSY}xp%xGJHLhPu1lz@^Z Uj\?##3#DpSfT}Q^g7l _ b@NxLD$5ώ/[S}o;"G(V 5(0C.1"#@s mD " BЎ{c.ֶK8\52;eҴVQi n(cm踴I~5qJK!фmy//7R(E{z@N4cɔ;EĎGul.?ݻZ'Q{ύkD4T+}c GDtwؤ].wDD,DD,DD`)$"q+ endstream endobj 723 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [255.545 668.563 262.269 682.359] /A << /S /GoTo /D (Hfootnote.2) >> >> endobj 724 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [427.687 150.927 513.345 163.501] /Subtype/Link/A<> >> endobj 734 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [122.809 137.598 203.239 150.039] /Subtype/Link/A<> >> endobj 729 0 obj << /D [727 0 R /XYZ 122.806 747.976 null] >> endobj 730 0 obj << /D [727 0 R /XYZ 123.806 715.203 null] >> endobj 62 0 obj << /D [727 0 R /XYZ 123.806 551.714 null] >> endobj 731 0 obj << /D [727 0 R /XYZ 333.021 514.42 null] >> endobj 66 0 obj << /D [727 0 R /XYZ 123.806 280.528 null] >> endobj 732 0 obj << /D [727 0 R /XYZ 141.734 166.092 null] >> endobj 726 0 obj << /Font << /F25 474 0 R /F44 651 0 R /F43 652 0 R /F16 475 0 R /F36 596 0 R /F39 618 0 R /F45 668 0 R /F47 733 0 R >> /XObject << /Im7 717 0 R /Im8 725 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj 737 0 obj << /Length 2585 /Filter /FlateDecode >> stream x[]ۺ}_G,\H<Ȗ"K,w(\9>$+K8pfxf$CF\;"F94ϣ1IP2K>g( pcno8#Ƹ}WfK#9NAr}Kp(McuDL%p\EwWJ-FifB*^̰q뺬gE0;:/[i;Yk kc٭ݣ9(搒ۖyhdlՇ"^ ݟU|0l5s aS]ԉ%"DDzHp$`F{ 8J8Y4Ru4-"\%a.@P7vٖmYP*}Д&i q pH#Dx!ú_F$uI_Ų\g1ƻ `EF.Ma3? `0|_3~dטO{';e.T%%CiB0 B  Aiky^e//// ]Ms%#L{!(@Cd=/pb˔ 'eqF$$K.7 S&Ϥ(MXTP`e `TM;TK;L;4Ha @/EDjTL50 5e(ސ Yf[*u:<3Tc Ji 'P<>@s^BF<[7 ̕B H`7%7lJV]aD 0!EQ̀NNܛ-{dPܜݴCO!Al-֋ʇԫ8PیqW{ Ww+JE^k4V^LEhoPR"Ci] wēcm4߭/wm8sCmҷtAL$0Q ǂdmJO ;lC0NJl4ؾ]Vq~m7J;7TY zQU94HELqUT>dݯM -ϱz;S+vȫ!c[^^&jvֿپ{F0?Ѐg,A$MeSGv_K I0uƶk\LJzfc<S/ Txя'tRygs2V;h1e;O&ϣ,!$HGN&l]I|Sn7U9xr5Oc۷V>]C8q9gk 3gڣC7R4Θ֡æs=AS">gQUus34H@@TPb9(f5rIJo6E1Da Dͯu4T(c<`E=)]y&P` uW4&Y7%MjѼ;Sdm>u" - ~uV3)!Q@],> ؒVip& 1 V1~4>ˆp/ 'Mc?غNT n kk+י`NHcJD8v]Td,P!Nz.}atM'i rtZ2A1F>m z@e P@v4*92i'^qa{Y:pIGDv@}_6(TP9N kDWREF#a$dƽR24u5+|U?yO0JL*.x;&M z@ڈ=[.a 2(&yD30H(I:¢cP<}J?[HF!]{3H#&ĵ{#2>tU endstream endobj 736 0 obj << /Type /Page /Contents 737 0 R /Resources 735 0 R /MediaBox [0 0 595.276 841.89] /Parent 740 0 R >> endobj 738 0 obj << /D [736 0 R /XYZ 80.963 747.976 null] >> endobj 739 0 obj << /D [736 0 R /XYZ 81.963 674.61 null] >> endobj 735 0 obj << /Font << /F25 474 0 R /F16 475 0 R /F46 674 0 R /F40 648 0 R /F41 649 0 R /F36 596 0 R /F44 651 0 R /F43 652 0 R >> /ProcSet [ /PDF /Text ] >> endobj 755 0 obj << /Length 2198 /Filter /FlateDecode >> stream xڥrFZ˜0MDSDHT@@k_ARсŞ~OwchOW?޼&")!R%6͢\etD2],UT|V`X%VB׷~)Ww %Ooܬn?}dvꗫw(Fb"W&Jh4(MTaGں :|U:FHFYIF%ri^?A+Sćq5|aL_3Ǻڎʼnl2jW̕W@G`O PvP&MeD;y {(o=~"K-k/ʝV=p no-:~#׭Dԥ)k>)i{oo +cP2+lق;~NXˡE#ⶾ/J^;{ңNp |ކ8,DĤ*MtaSk:ԛ}m!./%y,KLd7sF2)s &?VWWQ sRrp- NY+%׹\K<l(,8nZk-Wz^^h~_k d $SyF&UYBNRߘ9Iv&10uaX`pL()mGi>;ϓ4Rm6Ore.%tW^C"VsY<,2̐ڗCX36{UX ./g=X1M;R>MOkWc&ikOeR'Y!/ӞϦ=Uڡ:Fڹ1)F}~T,zl:saǽʡjfxeWCX@ "v\>vZÌsE&o@tp {9a֭gw%t]v[q|PBm g"90@!Zu-FFw]H ;gxԺGcbٹLT0Nׯ#fWXñ;;&qs`B=pK'r\?a3r 0b7﵎g2z"pW#戲 f0A9j:i5$AS УRgm~h1N 9aJa"ZhZZ?+tZ[P[T0hҡkD4DT<˛N#ۯSY@2UbL_T%Pߺ apBAz..RDఓ}\Fp;aIg=d}SFs)nL]- O|:uXu%yϗۭ߀czt8WQam9 X嘕0>JPsBM@=TXY1j/{?S&ϟ&0/a2n"n^0h#A!* [x(dOo|vؕo'ӷ(Iu=AҶnٯplYGmB`Մ8 lڤ+BCc #˭c2ljz&QvLd4EhC]_7 hVUu#"@yM='?|I}o8/]~dq f&ţHsX). t3`_Q#A1fVԍmjCcpQ;9W<;hiteiKpME)9>uҡ4.Ry({4wJJOjSOs86Hi1LU 0hGSTm+JH2r2|:Iӄx]%}ӓswAAE+Cf` UhS:θH|aɡ xlkH<6 endstream endobj 754 0 obj << /Type /Page /Contents 755 0 R /Resources 753 0 R /MediaBox [0 0 595.276 841.89] /Parent 740 0 R /Group 688 0 R >> endobj 741 0 obj << /Type /XObject /Subtype /Image /Width 16 /Height 16 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 759 0 R /Length 451 /Filter /FlateDecode >> stream xc` 10fΪP!oטv.S8ӝ?3U_{n7N{jmbT7=;9An.@Sp3iyjڑHf2X]7w쾟rT%/ß\h a xÚ endstream endobj 759 0 obj << /Type /XObject /Subtype /Image /Width 16 /Height 16 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 109 /Filter /FlateDecode >> stream xQ J$ R& 8@ 6ڲ r%%z;36+8=3+qČ/Rlͬ }sxҖdE#z~ u endstream endobj 742 0 obj << /Type /XObject /Subtype /Image /Width 22 /Height 22 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 760 0 R /Length 1100 /Filter /FlateDecode >> stream xڕ[LSY5>xW&&>HoE[z;=4"P5A AP NdRĖOFI*6dPCi 983,fj˗99\jb_5|HbSV^Xzv7a6?x2*/'22hm-x1%B 79}xd©RGJ 4&jWUmfh !d2ÇG$X3\nbSEII@" IK2V o8tTrK/o@#99TY2X4tHňH<8FC3C}}c4]wQ7ŀ815~fB.dxG{RQOPuYn-=^?jt$mpAD2),b^U9ݘ;(^o|u@>DjZułϙAڽ{XD^xPWVV@,={4QR?>kQvo/ Hu: K&[V*pa R}g0/ݾ)fMHc0, {y<(^9ٳ.|@ ToΝMk, endstream endobj 760 0 obj << /Type /XObject /Subtype /Image /Width 22 /Height 22 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 52 /Filter /FlateDecode >> stream xړ?9_f,S%XQ@S=Աǐ d"p`F +ܓ endstream endobj 743 0 obj << /Type /XObject /Subtype /Image /Width 16 /Height 16 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 761 0 R /Length 496 /Filter /FlateDecode >> stream xs"rov¡EcÊySHDΗN1*n>j-SWw&U5AH ?1d4;XÎ7/:cg? L:ן?}l9Jzׯ?O<J"F=b_)O|}Jg>`_~U9?fM4-aȔӁ*!ꁆ{zQl㭇n  ]w]{>sb ڇMjed~z2Eb ޽@[CțNmrjwO;&Kǀo| Tq-eƍIWb/8L,u*kS2Q߂3aټdEI[ꩻ/:bgsw=nZ9+a2a]:ejq-)~9B endstream endobj 761 0 obj << /Type /XObject /Subtype /Image /Width 16 /Height 16 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 176 /Filter /FlateDecode >> stream x;7 ނaӎwo@$d8! ٿ1000p؀| S̀ ee''0lr'DzD*Ŀ3`RrF?98SAf t5{8~b,c~-z endstream endobj 744 0 obj << /Type /XObject /Subtype /Image /Width 22 /Height 22 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 762 0 R /Length 335 /Filter /FlateDecode >> stream x*/H8Ѵ4jgʆ'Go_}L'"0D]xԻP78Qÿ1DHrd7[/,¾WdTτw@!Dsm"բA @5!p^Wm!@.C+v@A/PD7"`\0<"AROEL@@(AT EM |p$Y@>7@huPپ ,bH:? p-Ԯ' HfAo1wkG79wtz endstream endobj 762 0 obj << /Type /XObject /Subtype /Image /Width 22 /Height 22 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 127 /Filter /FlateDecode >> stream xc`!H? c ) DF" # o ΃D88`#}B! j{,@},~PL#(D endstream endobj 745 0 obj << /Type /XObject /Subtype /Image /Width 22 /Height 22 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 763 0 R /Length 346 /Filter /FlateDecode >> stream xڝMo@iAP(X5U* ۘGCDb;jP]B0ͦ v0 a8 PmF$~B ?L~xE U~Yj T^% Fj1hZtrȎt:eYuv[xD>y2 I3ikVf> stream xc`ٔ7p2CZY=+$Ȓ ,w B[$G!Yf !)5.x=k$ȿnh[0!|46J#LʋJDev<:^';lldYw@fcgdeCTfE ѓA&r"IP#Hu.~WO‚www"J&(ivu402AЗ endstream endobj 746 0 obj << /Type /XObject /Subtype /Image /Width 22 /Height 22 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 764 0 R /Length 655 /Filter /FlateDecode >> stream xc` atńH2 pppWHHH ]PPPM <<<0$偾 @kii" #bH )""baaakkkmmmbb"**Jdqss= ˽&SQQ177WSS???0f6E㎘dή>ӤD**-  ke@Su]V) U`` YVǓoxT3RuL` @(+q5?r_h-y> stream xc`ٔ7p2CZY=+$Ȓ ,w B[$G!Yf !)5.x=k$ȿnh[0!|46J#LʋJDev<:^';l)6ldYw@ܶar/?T` 7To 1d;D叶6M? '@M@Q wQ*Q{ \Vi9 B4&:_Vdwww2D"MQ Lj^Y|%ޟ_@-zaLYh?`d endstream endobj 747 0 obj << /Type /XObject /Subtype /Image /Width 22 /Height 22 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 765 0 R /Length 493 /Filter /FlateDecode >> stream xԒ&U٩U>pPX;nX%岌$TbwX#aXj>&(En3_;:ԟBELg L'F| E{q~ Ę AwQ"\&Y o[<&lҝ`k>?W%> gGA":3Q7<&ScVbnCUPxLטPPTAv Uj81x$!o,RDi.6Z7vibXŬpdK@.X<@d$@[:p7;kf FRF4Al endstream endobj 765 0 obj << /Type /XObject /Subtype /Image /Width 22 /Height 22 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 98 /Filter /FlateDecode >> stream xѱ @ ACB tHI. 6K^o_Dĸ52cQFeQ*gnK֫ em|+Sޭ?Լ endstream endobj 748 0 obj << /Type /XObject /Subtype /Image /Width 22 /Height 22 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 766 0 R /Length 694 /Filter /FlateDecode >> stream xRO5aJ.튡[b EbVEdT ݵ[_l69uJ)4+= *qE>Hmv_ ^`(u|z3T0MPa %D-`ڌ3΢[,)%Yi23{9Yߵ S7BG- xwF~""Rgn# PAh I@>+swghPhRE:3tLF=GI $=p.2$MJ@.Po @}!n?{ Do  @L9L A1`WTMA@t`4_C]/>@7&Iv &> stream xc`b&?C!Ȣ@P1| a, `? u/k蠇$PCL#(D:Kd endstream endobj 749 0 obj << /Type /XObject /Subtype /Image /Width 956 /Height 175 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Length 42481 /Filter/FlateDecode /DecodeParms<> >> stream xyxUևU{gB6BBd [dG0( 0ʈ`A@( !a'$!!d_]UUTwz˂_O휮s9.ӷνev@DDDDDDDDD#&""""""""""- &""""""""""- &""""""""""- &""""""""""- &""""""""""- &""""""""""- &""""""""""- i˶mXmӞnUOxKtd$-_""r/l'3""""""""m˒f6^SUZ]i;ęf?=u:`pww#""nܸqϽz2]xݻ*555QQQ C7nܨP(> 6 UV7n}Ŋ7oϢu_~a>w=?x3g^yVQ]yI% <+gWvY5rGYW॔ȼZj1\zqSt3;\B>2$KN8]TB[bIѳXoU*pwZFBJNJ ٻVoxsn2 '%u+pkڝ_VA m0<ĤYYL]*۶U[dIf?qR#u7^guH8XS`ic !ՙ?@+m@MM… KF/R~o_|wm򮷷޽{MIkMG68<<ɓ SO=m۶zh͙^^^;wן={ߙ3g~%K4׿RO?]n]7ouDr2v\J U>zd~\.peDDϛ+֭Tj!iAH(( IJ("I$IS]up(i^:FZ( : HܵZ}ӧ!䴥z4CO>C xǣоZN0[GFfifKaa ömx1OH@RqAuooH$ Iܸ3w]XT*:~~~#F~eɓ'>|wSN2eʰa.]g>008t*l믿~f͚V'N8eC[) Pi&I3GC>ȼ?WJ[BvB{\3oPcy1.jt o~ı7,`zٳĀ`deݸ}`0ح^PADqE եR 'mlHT|%t4W G $] * W;ns[qLq1o0۶m ::%۷6u>̉zZ{9k9N2D8$wa%rNܡf^5FpݻG{%˖-kuAh;.M =gΜkڤ0Mm/n 0 ü lcFq֭7o޴EE*v޽kIIIo 2_6x7x^8x`޽:SN}-|n&fɔSڻ RSS?(sܸL{{{,L~GE!2.'N`$'DGô_ '͂W%:rE8iTɁ0ZSGQia)%mDPid$2;fRYY4 `+JJS7ΝX>x[FDR4| ̃$%TÎoM)\]ρ $mit5_pϭ{stӕg.qNN3H%ӈ bar?dskFzI#N0;~3LxЦ>3555&L8wYnޥ1uZv7TKE3E!-`iehfon. mRahai2ې2V#"""""!q]ĝӀiw^Z־v ׮5|n%?);R7;cSk46bIs#I)J{|^ddH(<+`pJ%$)JU/ \\~G㎀Fޥn 2$/X3M3R=YjH/EUϏhܨ: kuUt|/Zf6׿q 'tF}%Fu=[{E$IؔV4C7تafV~K/]W(f"""""md[62Kя?&>UsnrϻgդI<ˍN41b^"Fn׿ 0E/QD [h 'ԑjLR*8(* ~ MKp j/޽n, k꯽7y$2 Gbfhf;3eafV@,}d]nJDDa*oeuAC :&kͮxK:~>m0<ĤYjQLt@ilZZKJpT׭ Ipxt:Vt+.}HzQQQ_8{N*\[W7$$1m2ޜ;G!xwa`W~\Rm!6 x5k֘V9Ro3^scfM':io1]S̰VT~1Y8ٹiO :&,,ii+@!`4R$)(߿r^pÇòd2ɖ4_)Ҭ 淢n#n*}ovFfrTivV  M,xARPJAv۰aÖ-[/^XPP~4%RBV[JkI jI6S4aΘu__'~&N;JDDD\_`uʛȱ:&,Ѫ3"TjW&PNN"HB0$d̅OW_3k>cAٞ7Խ4󥙮^HpWz/X`߾}7o s^7EUoeYJ#ÝZ81}DDDDDD:.HgJ!Alc״Hyyy-_oQ&ydΏ~yrm]W''0ڸ]زeKkzgL[GYW Y#gyR$/ũso%N.ܮ˯6ޒgyAM݂%7~Ƚu]!7ӽ ;t lp,]z$5`t|i/^RxPZ(ʻRWK ?"S{巆FNŒslJ.ܝQCzwvI*I 3ml\LV-bHhKji=:(|w_ʇD t77rR2,QPU}1 ٷjg?^7[Xͅ4op8nݑk ҆uGzbWe]8;_ !n>iKujܭS|N_G &=N*Jg/U*\ᒓ($%I>Hս;rnz1s|BË/ggϻM1ClwO6㑑6l4h%a8laJJ8__"-Mۊyw%$PzMnra *=G"Ӓ:٢z݃#GO^^^V__oIؾf}}aG׬ћj]0111BBB5+gQ]5m&$H g8^ ݨ3jA%$c&2 Nad~ nպ79 <+Ӆofcr 塐ki?|ÌH5UZ&:sQ Z%)2E_Ǎ*UHO=L?ZkyNXn-t(Z)y5r ;[G<Goؑ :STe <7B!4ny4\cXYZ7QZ5J6ŷB0^40u7O ŋ tE/-KJ#GXуB w._|\\իMA]ᴆ1cDJJa w=gϞ[n=3XpӁr ,t^ˬܳQEDDS)ճxg F[PR8T5_l-/Ku,Keua^w+PM { [Kjf[lDQ.С%Wcc E 4Z/d$Y%Kc/+;cЕ[ڋkOHF[_K*IsZ-}|FPhW8a[7Y͛#GJ_fΜPѼxZmӦMEM>B@&0 L YH蘖ܿDRwuv5? fmoڎ/O.́U-t(Z) o0zưRɰN A.z"9aWN ^{*"_.Mdݾ ySW3 lZǚJ􇮕:8ƁxB&#I". $28`0ZYáeT}⦟Eh/'OtIW[Q0A?Y￯_B rʞUpjEQeee&(+0csoS-S tW+a%ݻw5*(ȑcՅ;o!!-Kp.ۻP0uKa-^Bk":l%:sE“Kt_BJHp {-td[Ĝ]B I 'ԛ^ՙoH/ɟa옪L <|e4 BCZB4K?>=;0 E0670 aJߝ]duKF"|-Xrc|݃qE иCs!MvI8+ 7]ukRQ --Ncc-5᭔ONN*?_4_W Le_NVeW3+r z/iFgg#}PJ&#&$K}J܅&رc|󍯯oJJJj.˙0;ym]4Сҿ]UW']Kg}0vX, %ͦTʀ}7 B=;K]DDDD&++BXHh=y߻[2R9[W-,;K.9v9矗?Gaa\pb†g+w96m6mZFFFdd'|R, f s*L $ˮp ?~<''W_Jmzn9 @aCZB8@To/uY;Kt@%zRm"<<СC;`hɼs%@  |)JHCZB8@To/uX8d0 "OeZfm."A,up rN2hpմ̸^X틈t(,$@ {AZ {v H!Nv@q环'=*# ՝d环W3{aֶ/""ҡCgߙU%a#a4nnKE;w9[v%Z5^1i!MO/Le?pI+G.KAIOYZ; L ګI\`ҡK++fMqS棼vޒKȇ|ZFr \(ykX,I5z뭒5VcV(PHI!;{ ͭ]z$5`t|P#vFve%"$T!^^yfĞW5e]ywTR jM'2 Z =R |u֕zy^!T2;tob-{7<_q2٨79zwgdGs]S?mڴǏGFFnذaРAja+2G:u*[}1~j?N9rdiiijƞg7&N7ԗ_ۙƱn_zbGKe9njKnfXW crUz{_3fap,Bg,y.r"""ye(1  ©SC~jG~w^{/:]TUG[>]18xpr[R| ԛ=1BV0pV5hYUh[ *=G"Ӓ:٢zK1ܬML >}IDW3DW^^9q 6eeeV5bЕgzL OMC}Y]A&o˳7O ί QvܒKFLoK=j繒{'#Ma#ֆX<]I8Vw3< 9@ҬP 87n_pLïXո~%%8 h9!ߧmJ]gM??^lxRRGe]1 }U=@8Ip?Sy[C Z+uu3_J n59.-uϥg^jB>S䙟(v 0JDjc[wgkc݊j5z)_*w\|իW$V5 ߸ғn&*+/jk;&KF\ *.Eaɵ>nJ4ñqMՕKHG i*$$4h G@Gɏ Q>Uo"|ډGbjT<(|qK({)[xq0m/lzKʕ?nݪ-4_ZʛGOU޵w33bu&ݵkilcv>>Uk& oU-^lCo@˪U޽;>>^*vQ $R)z]ɀp &*;!ߧy:s!++쥺V~75~s⭔z(ʴtM {ua^K_yRY]ʱmܒ,ܝ}ԝ sM=I\xS(*++ի777Aa!jA[ )u#JQ{yh:ۧ!hW)3*m{Vk9僰;c4u? #xzn 9{;Vvjbenq<-5^o`ɸm&D 0 s -uHMX~cu׿cM?R_홤[8vXLL E턪¿/-z㫫aOiek[~=a$ۣׯׯY0]?UJ%fԶ8 Ǐ]2 ִVjڵ5kԽ{K֭mB6={y~ԩ:nɒ%  Zh ǖ-ܹA??dee5tطo}d~z_Wh*)s\_R?t1&y~{3}JEx 3P\W z*"_.MuqT덊p#]9Er*[t pۻ+VMi:VϾ;[O{S$h^aA\x@NNAaQxG"]yOܳ 728 (!h-9C鉏L057MQXi-!FFy8llx{".rDN"/c (ƍ~iZn*6)Hk@H+/^w??џ[CyDrj^x\qa#ת*qqu׹ {%B ٦ɲ?8///44433sҤI6lY`Afffrr1cEMv Ԅ Ұ024""T@8޾ͷX,#IMmXt27>2sWM^HY؍[kcǎڀ@\SaO_Ӻ@ޯN~dz{aB6hxOI jOF`YI=BzCsk*ٜ]B I '۵!j 7Ra]4|y`Wg Mw$yEp pA[5WY?C!qG=ejF69SRRv1{o7%%ER5=<򎂟fW]FuK!*a5qUom=~oq}Z&WKf(c[VJ+z($ͅv->u 4jbO]ܺ5LK)r٨M>g@rK \K =3г88q.8jӦMӦMȈOL3 V51zSe=#R?!*wFՔܳuh A#NvEP9[W-,;2Hה >S%KNޢ3~I3wɐիWHDzB.'&[͚%4.|tq+DotP_Vvf_mL @(c)9tmewAD ˜wJF0U-o$z0[h.O>GR5?>VZ:LnٳYYlvQ~\0~gAZ-N3u,-M gd )epvc 7lpGqJ5kV@@ڵklo7.(Ⱦ?7‘<Ƣ7lOxaz:f˓SuHxxClGx)M/yF?n1jKo7j3~8끻AcdOd$IQ6.ۇ]2n C}i͵]FI>>qOk7PeNh7Uc#b5g Ob_/$VR%`z[奥c z5.n9غ&IS;ʹ;Aظԉ҅lRˈ433s 7ai`[izi)Ib1"`x6DDDDD{2ׯ ̈́VL :"%ĘG֟Do׃3ܼ3{:L荒kt`|ȔjJ.^U~Fce)d{V[;nejۚ4[UUUTvm޼yW\1kQQQ6VRɲ۷>wҸCJi Y  *msMo_{)rxz.]2+4Ӹy[t۷oNĐ!CZLEa环™[Y;8hp 'X  {޸͸䖉X!:^;eܴՀ￷`ɸm&俶<Ӄd 6 eCKfė/[JKMݢ&ɢ&L-jPg.4?/**jOOO狋ӟl/lzKܹsnubidĐ۷7D *.lh6Ӹ966vС۷o_|4eI]eJcҥK6i:z[عiO;iĒe{޸͸9CUyIG0p]img:T#X2n{w -NFuc-w|nam/lDž D"챁9s)(fMx|Q#kE.1fs뉂Kn 2ȴB# ՝z;6\~YPI#5" 窝7pӎM7}YDDޓO<fwnn73f`dnlWTTSOō9~"DTwʏDDDDDDDDGg;uBM l7dq""#1bnm`oq|߾}gR*BFEXEiOO[WӪ(43-ZU(< jjз/QP˪cǎ\|cz\(׉ջwnra=lۦ(>zrÎLm~Ӵ^B9`727Qu]?!vqۗc :`6OڢcU'vN=|)""r^Nu_:x_Y 5͞PUߕy>**j͝:u2IL4 nzWoLw1 ؾy5[7'07I.];ٳ9S6lzanfX-M~:$۶M?o1*s3~<;r鵱W/FzuB;b3a[1Oi=\faޏwȴ5ifYylقΝJ̘&IĉWJ%(/ߧPX=jxLƿ.7ؽ;`(YY)ަ3+=Zl53Ruc|sGL m!Q5Ơli{{Ssڢ_)§[}caJpZlƌ!WٜEFz ׍fxm+(>w%f"""0qrBA}~80@ `v$5Kn98V [Gejp^8b舵Ҫ/墨3.l IO\GJU.Hvȑ OǢ;&Lq rxiq1W\myM fQd'4lF핐ЫWٳ !Z,)9УæD~~ MnJKhKdG @xޥ5k<~qBg&'"""鴇\DY.^Dq1""0`"#ף}۷oɒ%{۷Rl.lQTO :dvfbBAkR5z-B5ڿ ]M> [æ]}rBR6ubdž$ S+;<|}ɷR,]3ME5K.kzT6- or9̙&!A!0-[ƅpT9;!Ȑ7xL, olovIKcN56:9wqBgw}ni=}"""1388xo#647`Ŋ}ꫯ<==׭[gLP(~ENEK/)vp߱}y~>wukBc@W@cKr. H 4Rbk.l 7Tz_9%=4mcWtd(YY Y/ݼ~A ~h(5c~^&( jZ(v`v` v#a&Llۦٺ՘X± A@#*+MM`&ll۪ٚdLZXa1 *8pJ2f 7yupD.3tKL# hlE(i3gI]k~ܻ~RQt- A_[EUЃ~I3S/(ivեo$J_0BZ4>ڞ_ Ku#f$*RBۃݦyyR`JtJ~Meo &y'/0@A=lv젯\֬Q7HWNxLe:@m=v0LsDm-lJ|F{zS+6E cȔf%jSؔ)w-A?/ۺww:v3tKrKNn(($%I>HK(o$*ڄҥKlْ?vX%jՉ.ZhٲeBvD㐞۲))|}4o+jj;(uAED# \QAqA51J\q7$7 E͍7QDE"( ==8 ӳ%3sϯN#:o ҟի+W `vytEK:ˆyڪ!^AAٳ]\\ F~Ah#Zve?qB﫻?5~VgH^i3y'gݎY8[Qۘ}܈yV]F|ce=b pj"j_G[l?Y;6KLXZ{L.>}3@ђEu5ս;k+™0sx݄ow-eexnD릈`ي={@Y(+s{x{ RLR99s~rqiݤQ0U7n4Xh7.-n-_./K@EFJ\]%K:<<<>}ƍ:Сԩuksul,kהvD"=#F'O#_@葞M &p{NK!ܹs\2o޼İ'OBc?`nY\ȵcftuviQ1`N5Q~Svcdzm cqǎX|XlYllc{` Gu~~mowpyx%ٻwEy9㕊3R訜HWhsH&FEi 륜TNRWK뢊FEIՈPuM AC Ɛa %BF1&MLJEWztHO'=<=O?@Lmt<}4a|>u}vC ^9NN]l8;KN&^Y`%Ͷw!jRRR&OrʔPc?`,ivuu5@ BI UV!Xs>dfRS.:x… k֬ҥ6#䄆rv ^}̩ؿ_>{xNHcbaEE-PbcchKhh0ML3@ XYl 8,I'O*-]M*Ҏ(--[`pB:?f4"LNxVUj*qy*yIW_ ?RI?L U3aa<0TbPT6lXb֚|*JhL XnoQݻQQKXlƍ&')Iqc0}zmrr]]YtT™3뤧' :_676 333q̙3`nnQ`aϟ ,-A*۷Ν^{ v<' ~Oj 77VPG߈;AAN_~V,{P]"r^I Tw|xRRŋlmmZ>F5|Ţ!|(.&^I&ŭZ4%%"rohaY"䭚ۅ"c!8aO?GgΝ;6 %[D[gfou5޽k5sfcVbEQ:) ޽rQ#W5 畗ԥ3@Z /YXDr]%hqH$b)۩_M'7 ǒO Lm`B7d5&!]A6*nDtS1bDR)\ Կ˸W Ƚ ";{g\Pk^e&\eh;?r\ U۷/3{;uG TT4|DFJ.\ /PUE-_.޽Ch^J-ҹsehh!1`55?Cԡx^VIYxunN,W"adnM΅  /9F۶Y;;[w&شa >GGiqlhJG61te럫aܫhFN6㱫UUu322!!77d$LV3;&_XRzر1c%%wfYp:7T|ȐϙCv9sFlfӧaHL&ӥ@ᅬW9:r<:5UUWs.^9"[tsSyx BBot4Ymҵk)}}G#G1:6mp46$*aN X,@&~@ /paܫ( 70j۩;Ѧ`z [Rrr(C\9kפѲe@nxN,ƏRt5]iTl FFF)&NL,9B 0P`uM(9 eK?& BC~n5m= mhJިjj?//x0'`f`n^^p,.D/ByycϞ=;>>e^EF##ȽEI YQ߰5$M^ZCg>P( ߿.iPun\,$}ŋC}r(C\ٙ@ATH7op}VeeqY#N F_5II.6DS=| <#CO's&bPvva@DXICѫGMM) @oTbQǃ9igcq1=Kq"ܛɓ{,?z*8SIIQW"+$L<`0 tJ簑$pKY}*x*@is3@~̔L;xtRoҥFYt nGG186up4 0?M 6Ʈ_HG1wmD+sJ,9xu=ɓ'yxx\2%%_Ө4HsJU5hhx<(H(?p$t) usg#ѣ7LzГait41bD#[1@TgΔ-Y"3pP<ח{ &~~M1JǒoXycdž"ݎ`U#C.b5ATfG*Zj?Ӗp;4#Z(ػ׌qLTOQ9QQ&v?;.N퍫7n\\$y^SwKKou: :q%VY%%Jvz:;;7D_Tu۷UXH6J~\M5 !RἽ{7JI$DPj"ݎ`U#,4q~eҠu?p;CK!&dNRő#>`"S1.((zjv^/GպvA@[ ,q8|btnBTWS;vgά_dɖ-2oo_O+f^,V?9g ׬**۷%]HvYCYZ$$ܚ_5ʀP(4Gp)"8Xbo^޾}H"8G0npi鑁Mj8huL3ڵnN3g1c|kX:̙3QOZm4V91<5P)yˎ8"kk,6,6}R1:Z$۶ImS[_| T;ߒiAAlk>at4IQQ]Cj{شєG6AI3w}Pg77a<::3m4,((:t(JMMadS&,Y".(P}[7f=m۶ѥ:5zU[`(D*jZj‚DU4/__):eLI͕dzGpb{**?CCo{>Ka)ڛ ;\?/܆n6BJ7WcGeۋy-kS9ESImXGEn[ssΆ[BB6 aԨsBW3gNYYYXXD"fdSw+/wZ^;qB[ 4(>>^$%$$IkiGպ ђݾ]f '\\w)bKIB{ZZmШ:,~M@@.FPC^Z.Vԩk#z *TO|u:}hv%SӢJ5LC?6"kWp4yHp犟_=G)){t,LEH?OlP<γiơ+Ā>1|"z^R+gRy`W'Y}NQU#)cwpuܒ0,Ϩ#G P[ 1\UUiW3+!vޒOU @||Xѕ.Mݻ&M⤤( a"mШ''mb1/./gwQ+4s%RR~`_S1 ps$ųR&ZK50vIɵ%8k^zLyuӅ ׬YӥKmF!jAZBIT9%8+n M0<+eX%Iw(1\&\ޘ_7ΛWϢ˕F6v.B=b(YoU1w-8_ir zt)yws~U+T;eY54 i9cGUJ]m7;~;Q[q%c-`g/R ;ɞyfVC@ Blӳ20+Ǜ]ܱCJywJKK^SVVh Y<+e/0ދxV4Q [|(*Lg9ۘ0x֕(nΘ&8jfPb(Uѕ PFEӳ]ǵrnP[ؑ" a>5hvDEQ ~Rr1 5h;л7\ E@m#\.̊`Ƚ#΁Z;6e0//;rD%=0/\hp S68T'YӦcr>EaJ(n+UQ$_UI#8vi=:Zpƹ}ڼYbAmz=W"4rcum0]6=y%%쓋 UlS.-UiN6@ ),CůTTf.kʘÎvu }g80Y}QQR)Kn|G;*T3syޡ'F5ϟ]X^Sp5Gʜ3luOl$ NWRv>sIh&f{{4$^gg ŋ7VJHH+X BM#cȽ<-`+2l䱤Msle & 746Gf s̩@ePŋM$8}o|.>gN⋊ Rpϛ7 [| aD%ٻec̬pxrZQϐ4%NlَÝ㗹q}rå5+i3wt~c50[IO.M` l-8BFcu˾Cc7wm9fx5OH_TIWl>];eJ͎܈o36 jׯ+siWw~` ;ZuGwffBG:9"WWǡap y'gNKKsqqٽ{aôA'iaR,D D p,IM@.] oM6_~iƊcI?( 㷶޽{Ɔ 5}$2mHȇ;?i<+Nô =J\w5,؏,.lk?t.#ּRs5w If{cgXeơ@  i ?i$-3@ 񶁒f@ BZKK~~mWW@ u0YҌ@ ~eҴ 6c;f@ L[PףlɊևӨ1$|~]i96!-%Hp6ܹرpʕg׮]7n8`mFF{;uG O}ѣu?Ӄ6l%%%&MzjC#FdffR>} &Li `LǍ>5jTvv6}@}æsss?ӧO[[[7n< x;멵v#`,E0\SG=,- *+!?l7***҂7me˖4___M#tȽI3Ѿ9rd~~~FFFsAxTF##ݻwwppxⅻ{;udii Æ k8@ f o3ږV3':BQ7|ԩ W@m^?(:u-F8{;uG 8,k֭_|JqY^^^׼ޕ.]8p^##مFx<ԉ''@6$'M*T WCAH$K$(￟?>ma42۩ SWq||}'<(.Vbaah̙/OZq{\ζrp`-[&>xPq玕#srVI *s,&)}}k* Ҽ u;C6Hׯ-^+]@Q W%͓n*?&w XekKIL,rwx|s8).WGTUU ֭8UUnnKӧ/x{TRvv`>c;#=pT- p;w^rF9sh^֯_=z:tH{PPPУGׯ߻[[[iVp3??bm۶\믿x"%%_b{x`0#VDk;л7\ ؀ƒPZ S@np^BX,֍7RSSi 9NMθqܐvi)ulrqD`V٬Y#׮)w풉DINV޽Kd 3tp`Ã-c0}<7W>ё{թG  pe}fbbh9ٷ/Ymҵk)}}q8(C;Ӧ[f)G`_۵K%VjkLm "{IO̔ϙru;fx1T3&8.(MrŋifjB!ҭ˅՜3Q˖-k3fx<ŻuF/_&bԩ/_4v҅$IAeWWWzMmmm:s3fzyyiv Ì@ Z 椹W/4ήxlvs53.yyyhdlSwÚ1.G${'N89vżQQ[HKK ܸ=}9>ƏWݽkPs~4*JbG ##{#GH__&&V 3WA)[[P([11?Lɞ=3fefƾv ^'Ȯ]iiCL8눊s;#C-[ d[ lQ̘_9sF1mUL*ULgG3C1./ wԍ!Yvܹdɒ&4pKJJ|ezzIIɱcvaŖ-[|||D"QAA˗/ի8Pru@U7Vpy9rOW3y C _~onݺ5o޼ݻw䈈Ǐ{zzݻO(..5k˗wdm ``,(/ 3gά]  4q vnrjk*+SNNPΎë}|pﲃ9ĺyYC! 1 cpKK/`i`w$XϞ^_OqU@_cbx"VI egG/~D"ͬY%%R\6[٧֣Õ>>w`,c5kRQ32@1~|k. ozB記8@gU:)\[XXHqppg[RՖJʰJT챩HXϡ}~Uϡ"s Tu%RSNKŤ 5jԄ fgg1g """^zhݻݿrss,--;uvT*=y?Ӫ*zGWZ5x`{{XbfaҐ{0\Z\ GrttkM˴iܰ0.yyXR /cr`d%q~AfÜ9{8 ɗ_çO$'2zJ)O<)[@>YwQuߵ6cŊg޽{k7M1-LeBD{BEP2K]&#Ip濤K9?s ԹٵkcR: \zCwwwMҙk׮ vT*y<~XT,_Gsss .]w^~,XMzmiG5XA V)k0WRB)e!l6&y޽Y v+)/-U5l&Ȟ=cx w?^p};MC|!+ؼT*L"!4Q9;vNJ m ޮ]XQ1aVRNK#5d 1zOq#PIJ$_7ߌaIUٯ_t_s#݂@ bA~xziSUEWz$T)"#ݛ۷>ڱc\.H$Fm <ŋ/^ptto~gb10aP(}]ixڴi?޽{wfhEN['u?vو8303ds7s^ O+V4bkP5k(K˚uE9zY`1t(1t<<2BV۷O#eexnbTu[lB!~@tK kOMHXux̙&bFo ƢQRRKVa>̱uvÇVVVRF6͛7s8???Ç7{obffFͫW.Ho߾ڌnnn׮]Ǐ+uM:up\nsV@0nܸ_AܹR;fAkw`ب5k[uyYQ8dH;mpwxZdǡMOf֕0]]Vwth7Verv駟wڵp³gnܸQT/>ȑ#ÇW^7oX,vttƏy`T`С|>ˋ>FNN"ޛڄGRmߌ .>J,=zCFǏgddl۶6mT\\\SSscǚ$Ν;?^*fggv<|P}n_zۄ9if#{l6 ,, {{x|5 4K\ϝ;ʕ+s)++ y2A@ BDvF=Z;^\eHOO|pp'O%Ϻ )++KII4iR\\ܪUJKKSRR-"v@ 6u#`H̛55@\SQz=,P@[!v@ 6u#ӧP3 OwmF+b1T 6Xjkk!v@ *ʊ[;DК4@NxxaB.tkKKKϜ9F{;uG N)fǛ}}5~<1S+_߆uC sC?<*.Vaaht{64ϗ|`b{ŋ։1c--Z$ݸU@ϯ `ag6W_w/X ]8Fs8?&F^^TIsi*rxl'O6ⴑ7u{_y0JFl>oOC`...qqq9ÌF̐a#%O1dHM#Cbyt@.ll΢ðݻwÃroD[&83~|M]'U]OF&&>$Q5j{`VY#׮vRD+u{aUUXu5E#I77`HL&3ue` ._oXx8g m] &XNK6!zuomwCˏ_ q;<^w Lϛ7/111,,ɓ'BΓfvmcKC Is0p | $ nn@QPT2x..u/ҡCÇ'%%-^8!!vBProD[Օ\4`|ݻV'=r\nblJި! '{RLrr"_:(0{1j2 iiI:`$&r`s7n"#I&0#3J(pC35$޽zuLA߮1)c̰kj?VMP%K=ܽKrڵ|.{=0M( xF?qPGUЦݻ&M⤤(JT"ϞQ &Fz:tbjw ҹt Ncbd4mܭkPC˩u#MQÇ$nbt͚+4VX1{lݻwC)mvƆII7$_~I+0>?þyw/1~<)ڵk&=LU;6-CtLE+q~Y!{{t⺖£[JXLP*\BX>uد_W")ɜgvXΙ3 W{:9x0wM`"w(\,0sUH{v333y\kJ= ]t\6R#o(iFfF!_Ň 1hmJEPӧ-p6lг&[SCl$δi"2"B)McuF;>}((R((.Wmp"#yw/['m"'O*-]Р%:λx(069C9S7₏9}ZϜ4sΜ9C?W(BC@`[7 ]]۷sm47F Uݸz) bMkjHUPggKldWs._^s;!+x{,2qAif˨^O,`\_ͦ:/O_ALJw^**Jr,!/v` 6TUQIO TnnKӧeb„ڡCى#"$IIZϨT9/O!!XEȖ.]UU ֭8UUnnKӧg_')yGZ!0I^%͈VcD·nm&cCEua*:X؇rKVPG6{&[_ ӹtIy"/6M^NbK*"7y2wIv",ݻQQK,=Zupf۳trUǎMCCu Um,eVU\L!xQs<(ө/rWWܐ ?)CzWgp޽͛*H$@@#Zk#5M. ʻwɨ(|=)w'32-[d/ذ֬FXh)Hzx}٣ shٲe ?20Peٻ7@SVV•+9/Fu#h/<9GG7춅 M9Ӧz-L ̙ 󽼼RSSuAԽXY 7IpvnLZg0vT`٦M3FL]EV^Z{OF4p;;z0kjŋ|۴I}x7Sp!iC'8b^}H2Km-P99dNĺsG G'rwg%%OP. xzn AD{iCq:#*7A32]32~K^`5:^߿o`uWu4fZ_Za,6 I3ݻfða`a0b8ܼ 550p h.gg̙SVV&HAԽ 89EuWEer!!t`XϷ.,ƚ.MG"֛6 l=!MlÇ gjÎBӧ|#Խ0Zrc{X;5c\TTz*)NA bceկ^AT5WmmY_|[;q-i.'{ʪ=p=7[l|}1bge33ho𯀥KԚfQ8ۘLC?:Y @£hl p2ӧ>n TƇ&M[jUiiiJJ EN*L=rQ,czZ}_ɺ usgc}0w.߾]OnR`bh.HxJ__DBFe=y^9}Zչѱ2;3=0VX?㏌U״1iX̱o߾QQm4aк1$@.8wBCaTKQ*8C.4kM{;uG  ͍p@PgO|zIe%աoPvv*<)I{yl6u`ҤuGTHoouBl*,Tp<߫;wJK~kT%rUַ1ٚqM6 ZOAgg<A*+WޱoHȽ#Ɛa#%nɃQfcWKvЧ`ђEu5ս;k™0sx݄4cqFԩwwoÇ܄]c]r.WٯoP ͿRr57VdžhMsr '<<`0pqWRS(-)S[7wf۩;@ ZwwcEŎx3M5ki3iGT۫Kj>%IwpDwЇVHÐ4Xk .責lvs5͜6G(ˊR8!Fu6N T:m* m?Ozoj%6 o Xᑆ!i/$ ( d2pqhT1ȽҘDMc*6 u6^E h50$b1(,TUի@B9{}|}A"AJ3͑{;u7S1N T:m* ъ0$͕påp.fN#v@ @ h;(iF NR̚%7ݛ_Eq||}'OhE<' >>#{dlm0It4x>l(.?_WV5/z[dz--Z$ݸU@ϯ `ag6W_w/X ]oFs8?&F^^TIsz"5͸u 4׭а*U#wҴM7N*-l*\\!غU>krk]T"lJ^hs"夛Zad$&zٳ'_P~=HX,cu=+ضMv-``:/qF!pΟ׫-xkZ|EW_~jѬ!3f;w+W͛Phl~uA3͈TiLӦAҭc>>3x{TWL! )-[h+UyPXWxVmQ?viEZX*E bEKPɶ@KK˜9sƍw AVP`I/[d8N2.ʲjCBO=~;jժZZZVJBBLȹwOilhV*ɸ8n˖-[f5ݐ@@P<`j5h-~lѱ\#ybz{LUn pn*|)(?lnnn֠1Y,>S]bc&##~+Vh4YA%=yV#bB@}18N2.ʲwKV&M^zϞ={ykiYHM޿/;mȸ8mFFd|91Wո67o™3Ə設ݲeo^[[d=: kGq֝):.e]e{  8;YPۼy/ JbbbbbkZZV011BAy{m2ݻZCD,GC4Z*͝+SoaT(֭,L&cbcS0Pgͩ}pIեۖۏ;ð+W˗ ((5 # |}G€yn&"?Lt``Rb"AQ Mw giRfEYy|%˭?v))Mw[DmSdeq/]Ҭ]KK$iH2>^zXuXjG?u:{M󚪆5͵QQp:Vj ÇW(+Vؾ}СC k)MP|&,sذ^ラsLN:=]=fLQQn={:fi2Lqv>I 33A8!ɤ2`>6on){lv>`==>>ܦUkxzҠ_9rhT&s[?{V*Ϛ\2L*n6%׭T#_9@>o9"_}eKnwj>jxk~#L" ǍWSSc!`ĉP_]]}ap⣈ Z 4M-YY}Ao*ME,KAeY*3fۍ0ۥ x.ر}]4Y[Tti 1w.Sʕڕ+s~Kc:~0L9ЊgXбDd* 3B/b qg[/--]`AII]/A'r?ZV]WRKF(ٳkjrRS  VPS̛g~bL[/:d^-p6 3Œ͛iHn`GJIIMʄDj*-O$$0mpxOa̘3PI ٳ1lYrg}[غ7//Xam< ,3́ DE  I4 w1bpBCCkJtr6X`W_-))J;y)踔tQ :ʕ+SNt"ׯ`RaR/;[%8|ِ!ܺUb_x |C^!^\pǘ1m۴y^a83!kN6L$uv&+lrb ϟ?ΔԾ;uʹxm?/ƽu}ݒ%Ԉ\f/Pb\ݼywEG2>9 /iLa@ə3s/̸9Pr9ONf3D"0(Z,&ccX^~~ oY0fWvAYUa L3?zx\̄7.LI.clqAV(}Х߼y(͛]Tl >2,2D1c/?_P<熇㯽rrg| @ 8M۹Sw5Ǖ+99ڼ<ͨQ^f=Hr a~Bn׿;sr  Hիлt -gJ%`V<&#Cx}=T@Q yϮ]hWQ,_x?RZq1-o%((?09sl昚˽tB{$sSIa>V,3WT*5>,Fhl4/Z*o\'?hp 2,**رc7n]暂AI sʢ8o 45=tE6iҬ]zD/^PR"^2EϹuSSٚK-ySV~-2[3'^B .^̪0::?zWo>a„}I$H4P>ә21#SضM<;yRÄ J%A=J=x@.i %{bj|{Kګd5mh6=[>˚o"){2Cxpv&9e sP^^ŋ)\s-MPGS11Eꨠ II搚 lgϣn8tRQF}Qo)>  w*Vࡡ>P߿O}8˹/ҴPJ]S{NDZlQr)][ee' bwJկZ>2RXTd?~8! AqhV(Jک\5‚2&7{JU/b0qK2c#JdWgg{$'d!ܟ~◕a/+ø/j79f;k]ڡn|sWdeЌ@8giRfRf@@ecN1om>DWUEGl8W׫wt܊ @.{ zN~xΜ'yUU G7 NkOUUٲ{2S}Tw-wq8;q9s&ܫW˼cxǎ1?{rrL-'*mIfR9''Ӿ] 4Mhׯ[@َ_rY}u]t>4Z& `*R*̆Kc0Iqn;too{qM" ,e92iXw=PYn>yL6̌iv,Q6lS~RfRf@ 3„g R- OAo:0=A]&Fp4ӌ@ + .D>t@f@ "UР@ < Sr@ @c6@ 4hF @ @ ̋ endstream endobj 750 0 obj << /Type /XObject /Subtype /Image /Width 165 /Height 97 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Length 3785 /Filter/FlateDecode /DecodeParms<> >> stream xPgǟl6 ?rUuꯢRu(K`bE YlmxX b*]{Q)(Iȯݽ?B#BAI $}y!y"2 KN@y7n!!0+.} %% |fnDjiQ?`4RT$rY׾v&zuɂPB!H>BkbR-ÊFقs I"2mMk1,]V˗>>ի@0l EG+3k$nL5UIo7YۿQ"F r)| I #Nyo(e`s&'Go]Cd$sk9'NX;:F>ץRSǶӋDrx샡* jofǍXL r㟗\$sP*4< .NGY6{͝;AGǃ##O~1Y^['$`R)U\RYwHȢիٛ6Nojj?~ggJNGFFZd CQT}sb"_?(cOG:h2kDkpx+CmmD@b{8 Ǣ1xe\*%͞ f{P@gggzzq~~x58zKJ4%%`Ç?99+X۷ffrwG"JˍӍ5+ZV9feۡHIpEBCY>>ٳGlڄ! y55`ᕭ7ئC( J%MZxsf;T##+EEj ٺ};:|sssr`hkkKOOOKKs@q@D3$nL6?wuu|({Mw;F󃃃G fő,)r_8VVk 7`M/뷕 ϙ|E m:_FUZ:jmuIMUn~h8팪x务egs . hn623};5px.h~Pl+ f 3?7$-ҽ @̞mx>=12CzWWX,oCSh]RY?*j(jƖ_><<\ѣٹ3`EYYcI$;v81|-f}0.uX]OsMMMV25GwJ ~˹s--kV{;6PY Vou:^Κn bitxM A}\wRϾzx-pkk/9k(ح[@,X`kήXxLhmFW_oBNvuQQXPkrC]]9XL: 0 ).%&>^2_Q?<|߰eLlgX?EΙîaR(ĺ}?sJGU|/+kձknاwj"0 \{jZxVuy,r-(PWW`1^}mfopax0[Q>zSUKCEEVѱ۷:vLk/G>)2n=[+n9 0W>?g^x &WL"`t`viI("L&K3 H/|Ez+ WDQ((ܻ@spa9Pts/:zxI>-/ 4涵޲ը^ͣ/'*[RX7l"EqyEE0aɧGRXbd9n΅K~GUULw_ʄB˾l |ܪT99} YQ߹ɦ/wޡC,Mv6Ob_8Q*yhš+LҢ;{VO~2$$,eEEPW.+\f\͕@Y'4Z#t鉑5`VܓN_Ikpf_e&0qw=yLF޺<ܳU/]ᰵcc=Z tW_1Ç|>gd.NkdўoXL2Ysx邂:7o~TW a>}7IR`.p,Ɩ|^@x<9ػw[&嚢&Mtz$C|Ysx'S_zam:>Ңhx7{K6 _qٰpߑ?> qӕ%&H }}@@LFz{O)Zs|ELw??9saQQܛ7. ݾ;p@(;w͞54 I$&mQpl. Ҥ#GڵʕǹVo͚#>ŘGDjH4뜤)Zs|SXz[R3Gz"nib=YHMuqwGAurpͫWUII xO6}Q8sOњȬǽ~3;O08Dxn;?]p9|^0Lozě^0Lozě^0Lozě^lx endstream endobj 751 0 obj << /Type /XObject /Subtype /Image /Width 363 /Height 81 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Length 9741 /Filter/FlateDecode /DecodeParms<> >> stream xw\GǟGSzU0 "XD{CQQ`+DA ( آ"pHk.畽c<̳ss;%N9~O/ApppApppσ(G}]5~ =zwv֭Mܷoߎ;Ǝ`0LMM Smm/d)&MbXR+**U'%%رV`9r$ݻw;88ۻ m]#?ÿ gaʩSСCk׮ZKK˜fff6zhDUgϼ%.++KMMԼ~zDDDVVVgiÇBd!|DXjwtΝ?qp䂏 H$nذa#[EEcرb{l[\]]&J͛7FFF\\\h4sLL͛7h5?޸M%z^Ӧǃ@@OJM$ ,}\//N@AGw℄T6l`O6KKNhiQILl[X=o+|zH})ssʙ3j@0H۳r*'$fo>'ߠ!R52cfc- 5[LLXXFSܸpʃ?ݺuR\.WMM DA0:t <==lll$AfRzqQS#撞?'VV{ ~ޜ){wJVʊzRuIoa-Zӻ  99 )/sBB996NP8ap|+TH 'Mk׮%P(R]]]kjj򜝝kkkϜ9sN-khh$$$iii|FxI'55~?A--Zw;wLGxxhxzFF >>ZDW --'9?8F}Nr}}o߾"@v \ʕ+o޼hiit\K-%JM D{3g ͛7bKD*tR5k֬+}}} `0Əٮv Д=msLyTTD!ߺ=\X|EnU[2XX|Jo,,tN_sjq[ׯ488ڵk)L P~k͏XC5[S;6] ' 3q"p*6YfQϝ#YcR]ㄆ]}}Q#<''^ZáH`b~ݻӓUU0/>&OT={܉ qpp}uσ'Ԏ?<:ڹ}epMZ_W}2 ܇kJY5G׳njW''}q>|hwIApppApppApppAxݐyJ M,+-mmM/iBc6ʹHH oصwo-]ݮ ʕf-eDըO>h**zJt4?20=v D=4T֭Q>Î\26f ^,*ib?XrV^*oe= 0Ye7r|rСt:͛Lj;I{w9/G"Yн;z,p8@`-]Ez kR&DqƊ[Xܬ%"#Gʞ=[%.Zl"vCrKFa(YYr(mhV΋?*PKm$<<Ν;ӦM~ⅪĎ;EGv`nN4`ԨUU?5-ooPԌ ֒%_A~;wRjZˋw5F#$Z N.(`EE񭬔#եK1ho\;_ݓ4hf=eggٳjɒ%ΒMM#"Z8 9kx#V%KZMMMM-ja\ ʲ҂7TT`bAHLlѣ̬qݺv^'9miDg90bux*dMKKt= ׯ99 NP$*Yz(:)bIpQ=Ix¶xH3 Vdv$VQE`ExO&nfMGS`#bcc}vccc4Ejb{<+W]-%E-(HիW{{% Gٹ7o]FEEAmm9 Y kWӽzhFm~\5bmMZIIm} _`g>srxh~&lٓ@ PԏU#'& :ujKd$=5UJ%ppIݱC5:Z"c~<{;a-&FA\^.!$av` eUƍm!l6=z<=)ggǏHSr,w.p8]XH=]'dиUUh^F=]28pDi%sjreE)..31$$$smh°>gvLu{--mzN_ 7..zeU:gvLnmw'c ax:,=Y;;bXmBAOWJJ˖ׯW7v䈆+~f&7?rJRܹ4SiӧyE]PVիܫWJsq|}/!vӖ_>UhsNTQp 55^2|#zbv^olؠ7nP9N5.zeU|eiTW_0P J]꼼BgnܷKs3"uuR)ޟ$>qqm |뵄_WXArղ~mkeM-), TUU-lWoAN!qYpճo~A}+=MMi? zc"a|f`W{/cv,PII'O1bTT@&SwlaiIQQ#C_= LG 04pq7`礒sV\Ie6t^cƍ{%};rl/~C }|cSt}8c簉ee%VR"˯ym͌ӻz`D GeljoE23<{2hc#W+Vmp5.U0 Xje^i4dSAAa{.V5 :8@HjGFa\݇Nx vH#$~FaaW??j$yӧ|GǦT.\tX;}<s7oj9ޥ@ 4q1/K=T\T>ojhjj?nA/[ˬ'N ,fl KOqȑ̎f9\>qqdYFYdCxQ_d6wbGm}V 'O^jkku#G7?yR,r˽:f[B’;9'*5E]tcMlM'&Į>u/}[ F#)5Ckk۸ffFYѫn̼-Q#R3ٜo;wŞ9>ƅQ6%԰ jEuu6ؠdDŪ~쥅)H@# 'xMM]HHťϚ}BVH‚I ӓܫ).5!ᇖ7o)ۢZٝ.ǎ~533A'AWV:a/vX=thXcc t:-)i9Lz47/UT,ؿ d2@"?j7Ju]%l3KfHEj[~ݛq#o#kbgf46U-  K<'Xx #*@ Hذi]ΐJRܕCok_6p`?n#H̀ .!R3Ͽ~Cj3F۔\аfbb}=CokU1.@z&FSUUE5$''hE^FUVZB:|̉t-m͏[ʼ5BFV~^Ϳ?Ҫ+|>zx~UgzXDPcDHuOjfgm['I^ޣ.] tXlee.%]YGjbggC$+8>tЗ R"ů^9 XPx'˚IVqk}'}$7D_ pC4"*qqknaòJrrGDiF ?65G-M|Rs]+~9qREŋ'.UaX"2W4u;wܸ?g*__n ut5 3:s ϲ Ik<|1 w~~C'Ef}}N2F۲2sŋחTdd\N=pI4 H_aeRk~4׋[)2DWGꆨ?vvP7Vߙohx |~O?6351351rڹ{ w\h_Egd$N]2620z@Lzf&^nDwIuXWG[+.P-cuݤf~,{ly̪ A*e5SԸdTmܰ 5F+gϚĈae;9^6uj!no؅UGG=;r$=Ypw54<ŋͿ3l =;g uDbΤ 3^Xh)?_~N),|rC 888 B Xt>7L""=qRsskGO;#_MBdϞ-01c̙ Gppp5uuu2CAբL"_jb5nީڼEE w矂O?U7JHE[#DEԟ888_˗/Y}ɀ@ Xv0į27z%TD"^_jh/%%[\8:YKTh\ͷTao,^B,))+++Lӧ /5k,)'z- \igؗ-,l11Z_ޙm٢CАt>ك.'S(45{ՙxDA===ӧOϛ7/==ͯ*5+eX}ץ e߸۷޷aX5kRR>^:d}Ѣ>/_6Ջsg׼3dfY^νxٙwoӳg\Vzz߿)))&!@rɓ 3^BFR d_WnѢxQ])o)?o܇tq~^oD8tX3J" ]RD~ p!ckxOe&;{O| am KXPMjىoҒ;v0Z"">,^bgGmXæMwnzH;nff'};@_֭ׯ8S xĨA* t<}蒾[>͊[ifjb=a8N+WR{2bW/DJ|~ʹr77cǶxk  0R9sÆ(aehZi;wN:_npP7;bKK^CN ~­['=]'N[t Z,'Ewzu3{ÇjfjqU}YyF׳{$ƍF eeYF-%5ngϲkfXX ZjU= <-!AKWU@5`@_557}}.\fX[[BvjT+D HD"T+5eϞ\.~c>o|WphJr8܎hFψh-YN қRD,KA5T7,*jyV\ݝ?%?RAƖ>z[\\$;*G?/'RN SJ9˘1-@%й#,~C/]vLfoRRUd_i qr O+rߧa^# 5*ϱ7BfE7H]_34E?PCC=3Y $;;w M1o I'WNܣœKH mg[yCԏ1lmgle@PZbb#t"P}555u99l&UW4u`܇ϘZ[[wLA)r5dUzSԥj+ ;[M{rV(T*,Zؘ|Ty`zA?ڊ8kkikjsvޝVUŽ{nvJ.pj]4"hYT ,@fWlD)Nrkه*WXY~_aeP۷ <(url~żP3j;_)Ԍy `)5<7!z"zS^:uaYC Mdbb.Ҫǃ%'ex䚒!ԳC)eꝜhǎi]:qb-x{W9Ӳpa͛uLϻ .~~| SOJ!9}RԖpb{ @!X$TR^^O#>GR V~z/(FU۠W̨y!~Jih;ǭѭ&F;vwHjFY4t1K04V,`X?F>P9ZP 1Aމ{F͜Po .15thGO1Paӂu3v/0;aӧܹ͑-kJjDwuH=;dL"Qx$=[[}{OhtQ{֩!lظqcXwZ OB=!Iu0b IٳGhZZ||6mZ.;̙̀@)6w1[ p ii,J}ȟKyׯKf6~\3ƦVW}H$зgO38aqر;wΞrrڴtaI$ұc[&5N7bؕuR__ĉ˖mڳٖ- b%j_ #4UC&+6H;v'-]c!1\RP5%CvH=;d̙3CFݧNad_ܨ\7s=_v^C `y%g޼yA8JpY\9g}ѷ(sW׭:.4 B X:;~ |0F)-'o)w1888'w1888ʃ 888ʃ 888ʃ 888ʃ 888ʃ 888ʃ 888ʃ 888ʃ 888ʃ 888ʃ 888?w' I endstream endobj 752 0 obj << /Type /XObject /Subtype /Image /Width 134 /Height 158 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Length 7749 /Filter/FlateDecode /DecodeParms<> >> stream xy\$vd)[EJ R}Zgֶ۟ʫ}jյbk]jڊEZWpAQѺ)< –3?HBHHbg10sg"=A 7JJ .nX¦Sz麉v\|X.Si0 Q2.p~φ&3bs8i(4uUI{ZXUs:}mgܪi>u"Q]V)A#h()ԍ[NQP-~c .W;|J,a_ ,nT)JfSgm2ưKr I^n썧{48s*mzƗHV)n~Ɩ[0b%cf`7vz0 ,:/pP'*D:JW:$373-$DžaSfaԴwX?(M ! Uq]c81 )Wj 5Ir vʬIީ8pϕYܩ .k[+lTH/aPHSe>8?ժV U%2C*SKGbAKךǯ<%p5ׂ=31maנ$d\?֗5.$vOwq̗;$KMHcb& XBMH?+kmi1ЙKOd03yq|14Bv@9ymFtɌˈ>ї>\7WzSLCtͅR?~ B$))I_H"eɘJfVU~nW?{t_K,_xH$JNNκku%7A ((( %kL)5]\A2uUrfwt^sC$Ξ={߾}k֬͝6NUNҺZIȼ_[=6/4Xq# /+ t:ݠD7Ia @.~`Đ\7^Z,<:TR]>q)g̐;&DE9԰դI@ͥݽtv}Z-H-BkK`{ 2SJe{[mK7oFvwf4`1.C0RY +vww#o?UR*5Me _|jԨ{0@$+kGf֎-ϒ%;;[33~޽WVv""ƾ!0gUNwɂ>"Q!PhVݤC,x (koUʻBFrfC}m ]hCffB! & K'd?.cSd,{i%ef6ddF1kܶ|VVMrڲbfhK2gwtʛ; -%% L6'(rWhΝ<kgg^JJj^^&>}w8a7^P RP`h4ƤX~Ҥ /eu,100CS&rr<<&MZXWWni{=M\V^{&!A'8`ږf|//9~6Rޯ2-(00YTʟ{8>#;;+(>~@}觟y󂠠asqv2Vr$B(K}}]{غgq.Z~kҽ"~>R͍8,32bШgGk,ni^hR(zr)7o> .4n쐐XX[EZ77kjJ=//S%jNwJN^ZV^˖-/oې!`ݺ —'}`XXamſ͋/b%U |ӕVTxޢF:pbÇU.rռ#|hĚw=Ba/w/tvjk**nM&S48d2EV]xl˖||45BiΟ>/ͿRǍsKxKST:3 MGL(߿`AbA@!BÆ_QǎmKH*bWܽd]V86fK~wLyX.1g\O.3*j ڵg\T9//Νë5PhrW%.nÞ{)9YJNM D.nܸ7G[EZ1LMܳ筙39fѢ 54462r\bB Μ9rO?]8gG /رF蹋JK;sz/䝙GO{߿Y&H3ҡ7M ~=iD.WGGwoؠ=yrcO~^mkExhҴW8ڳξ1J=<}a3i bu@'rk\dd%*krY0ooٳ;/^C-}mȱ~InT L::=^yGh@~\B9w\TԽ~|jPM\\R1ЂSX~5y9U@3J^K4k`|&O +:&S5AF"=K/pin?9Tm&MlJͨZp`Ъ&:qc-{KK]bciaaXi4ut4oݸT&i 1ގѾTW;xg7!21zH}FPTr8c:Zz:P Glw_ʡ}5׮UMb0:>v*чJL²VzEM'80##e]ͦPd?hP}}ITժ γsl\#V~uYEOҘA,}׫?j2˛@LAVݦ7u\i}$'#3WyL*`!74T*j\ I%kI%˥nuOrTJ|n25o=873jDz)O3;pVr\SnY׹+hگ?UƓ ssNPcY(lӺ^C\? Εvշ+->Oە2yrÃtwjуXN^<V@d ?UN!\.Dx3&$"FdavW.~\*ᒺv#Մ0G]?իUh%[AyBkD^ n,4igf{L>R*xE Tmn!u _5S/؝ۗeKM o7B0| OZ(V \ qVKwuN:xU^ȣ?/ (jSmZH-a뽍GDml]tqzU c~wM_.̒*M4%ђ1@>-֟CNxL0?w:.<Vkn0|jI!MljY5Z#V.;R@ y^.vFs2^*.IHH@QT{*ttt䤧o޼yɅ~ԑ`y<_~唔I&CG~@0m4Hd2X,i?h0QQ=1T=FKHHx --ٹԙ.&6#-[DEEq8ꦦ&/60999|>0F󳳳M+--e0zhA@@E2A:و9hĢqƩT*4ٳgOww7☘۷oeauuu999۶m?TWWW{̙L&,)$&&._رcIII6mgzLΦz4vRd`x7.c6vʚ2hE̊*V>M&!^tt C(%ӧKoIJN}$%ӧKJzv9g ˉ]r[zoGxu4@hLZ ;+ VKCU4c4xQ}FyF˾DJw| O'ND^݋q85kzUM>]tt*UеA!45̚(#R:>HFkRΓ`w/'aP}b{b2MDr Ok 8UhH <'ԛCiTr ~s0LďKR!!n(^*n`[ݭ)vnFD/kcQ}w^т4=]5m} QQ(1{j)3=.Ft6grIw;f]OÎn eCzn͛Bӽ$ğGm6X;ıB͈@cB+D%l<sx|ÔlC*/2ھan,G!rOw+S^&t9R ʤ$`C7LI%5REBz0y9~AI͈HD..L\H$ZOi_BgP$} 3e9}NΝZ'T]JIyzjCN,5nPΟLNj=<=}qƴAN h<6ƥ7ϔC8垝S7c8fKKKKKCJk~ ˁU@p_kt`^G_bw8\bw8\bw8\bw8\bw8\bw8\bw8\bw8\bw8\bw?> endstream endobj 756 0 obj << /D [754 0 R /XYZ 122.806 747.976 null] >> endobj 70 0 obj << /D [754 0 R /XYZ 123.806 712.73 null] >> endobj 74 0 obj << /D [754 0 R /XYZ 123.806 685.592 null] >> endobj 757 0 obj << /D [754 0 R /XYZ 123.806 538.909 null] >> endobj 758 0 obj << /D [754 0 R /XYZ 123.806 418.443 null] >> endobj 78 0 obj << /D [754 0 R /XYZ 123.806 276.282 null] >> endobj 753 0 obj << /Font << /F25 474 0 R /F38 617 0 R /F39 618 0 R /F16 475 0 R /F44 651 0 R /F43 652 0 R >> /XObject << /Im9 741 0 R /Im10 742 0 R /Im11 743 0 R /Im12 744 0 R /Im13 745 0 R /Im14 746 0 R /Im15 747 0 R /Im16 748 0 R /Im17 749 0 R /Im18 750 0 R /Im19 751 0 R /Im20 752 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj 773 0 obj << /Length 1544 /Filter /FlateDecode >> stream xڍW[w6 ~У|V(겷5mMzgmTe˙I @F V6+!`s@<(xyls4^Ge!W7ͻuāo~[Gxluvfb? I]s΂m5 j Wevv/Xd6}}dI =_eNpi=Q_uh~ȭ%~-D(u#o[O-j/h앪}RQ%ѫUٽ%bYe9{7[ la{ VñDQ( 5)G(K`1R5ӱk[ٞ9m(9f/g^$lzª҆vɾ&A N;o1c^RQxN;*aʰ^3s+1$o&Km;5솫ZȽ3 y\:Q&'bK^`g+Rɳ8婇8haI^iy5OL]]5gpV'hc֐V+i_ƕMfA%kv{wNAX׸:/T3Xt;wǚȺp}@<&|yPU0<. {DIO< ;NDG6ˈڑʃ) ;8[eX5\^ZIgićɉ:q$ YsJrlHu-K|H7!zrG*Fx}ID9^*]#<.u}(X'eDSnp=%J+<3NUk!q6[޵!7K`8=M`qRdJU6i',䲴$0E&.eitM"o*:rS-˂ i%B%3 Fe!|\6Q+*A( `JΉ*fEvM=c?59R(HT 2X1H0ED߀ē|$aݘC+BI#.nǦ'4FJQ8:wt4B\FmдԸ4TYLxE'Xlhh&k<#C]ghhNEK.TwfO}1 ùeƧfγEJ\K닋%8.(SO$]bvH =L4P8TA(pZڜ tWW--3痆Q C 2P3ot"QsGl%4AAAf &\c:5]҄#;{(XVJ1/0f=V{PxFy儞p+j՘'^-~߸DN[Θ缇}V?]>֬;G b,OVsN듭%HRМ/u`'* e gǟ˒XTqϊA/^[Y 8`O܇%> endobj 768 0 obj << /Type /XObject /Subtype /Image /Width 914 /Height 183 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Length 17847 /Filter/FlateDecode /DecodeParms<> >> stream xw\Ѣ8jAquz8-8*8j)m+[vWk+Zlj*nDT"Q.@L+! $ŋWNH"(n)={^%<".ۿIM [A%ۧMa^ۉ^2tG-@ت =]0IB@ h S4qvl^Km[~9/Do I6 d0.,[K OzϹD$e"P$ }Q”)S~7;oܸѵkW=v:ucSU&"beTVB%G v*--vp2u?'MZIf~}v.e}vC f}ɴ[49h -)!"dH kƏWjϟhb&}VVVdggwرj.$$DAV_ B7yJD%TD0 l:H$D4bĈO?ۛlmm#,f%2,W#yw\6S&G֭3ٳWՠŬDYQ'0:c䣭6c D?1kTVTTVR*-XQ=Qܾ})S>裡CkMŋ 4}*YWWڭ[7WW׈"zץR/XUU_۷SNcǎR٪Y;f,r*/2( 0ׯlaakmֶ᯻M'_aoiiH߿nݘÖ-L{<8i,ުU^$" -Zm7XZ1o}HsfYy#/77n}"H yP/(E>y"+.ʊeEEl`rxё#G 4cƌB}Ϝ}-Y7|Fuƍ&w߯<={=22rРAΞ8qbDD[snkB$IʊYicFFFuu?·~{wy?~͛׮]KLLo=rҊlrܹ[4OUTQF%TQJTYJ깹iѹÇvih~[ܱϾN{j]]?f917Vi#׮ۿF|ND9QQ+W:{#љ3%ǏMuD$=޶myڽm$22O2ΝC+`><ʊFuyaaa_uNNQ++#GL4)''gĉ ,~+ɉqsOKK۲e˱c._| 55(33S ܽ{whAoakB(}***YUDJ5ӧO;v/lmmG58'WUUUPPн{TWWW]ttR߾}e2ʈWGMUQE)USe9UQ*[7fم3f+}|eii;g挌uuD0:;SsXLfii2|dԨ=<.>1 g55Dz|Р 477ݹZY)"*QNn۷g?~ӯڵkccck4 0g[[UVݺuKîjB cǂ&YZZp8W^y\_Ђ~Vɪee"DVR*-ɄlwܙWޜeYs)ʴD:tM`iӦ[N;v\xQyf*ʨߥThHlُF@DEϢpkk33Dԡ4?k筬,;+oˏEDݺЭ fup}JJ\M^43x_̐ߞ3g g֬J}leGdEE"9.ϟ'OowReSю2.\.ɓ'666wќ~G[{aaggg55cǎ\.9<<쳲֭민iǎY]eآY\{='l-<>)dBLX!hʟ" @gL&tssS ~}-^XG||EttPMyZQ.J5 688t:`gשZ핕*AUU&D|[\53LN>|mQ(|6177=//wo:1'8xݴΝ{dm:;6vIxˊHԬuy8::޻wO~ѣGQg=~_^^feexyM|[-|a !gN暜zUAVYArSꫯFGG_|rݺu/eQzz?XQQֶ_~M9]bֲҿ6x'OuP(ܱc|Vx9Cbl޼Nzy<{cvLmNIEĬDԯ_ӧ6lȑ;]\\w}wV孷޲ׯ{9g">|x߾}NZQQѻwo3g&$$:tHcǎj՗#2*ˈ}aJDݺ[ݺu[ou,. _oߗg=z^MM… Fͽ~Bb~E=f1ww[`:ur εIO?=,y˻pr5v OG ˊ47f%?}ݲe… #Sۛӯ^KDԖK>{~6ϥ+%%%Æ #ĈsioHHغ5\]F$Ϧϙsyb#RZ[*<ÍʛgDuii{;1HVVyx藂Sx<4ܯ9JaaJ+͟NدXy\aǎfDqM|.],<#1 F+Ν޻wѣ[X彗/ﭸI*e9Xjo757~qxUOQu?u[o] -6>ݙ+,49#gV]KK/r˗zE4ǧYbbmM^^s޸Q?$#T,ed,~K,Z➙Yq{ U>sf2f2Ih+@̘1cFKң Ä!@.$gPzrp0;t6>]@D\.yڅ qYzzɶmK?qw?eeōQ\U/Ykƌ䈈[فûwxIާU0Z۪=mUmm *s[呫Vm0A^~^o B[uYA=5WGm֢jjje-ʘå}V&aZ0cL7=Wj-^MPPՖ-Z4hס*4kgYt)KL͚e\[gDSkNDT$% ,sorXQD5',$QD؊-/wn, Usca&a5JMOXe KB.L?.)-봜j~H$RI=΋/w*[6*|޼ ,yv**y[@PdL<_-MI@>Uy꘦Jk?/5JЂaY-ƾ&M,1;D$2'mz!"GGdh#FxV[[]VS;e)1ODK /'S p(jgݺu΃K-XV"Zfδ)=뱌9Q4ݢAi#6os>}:77wڵaaav6_*?6"*(l]fŊss6/;rС ~@'BP(>rX~C}Q/G4pH$ ,puuHII!3f4ׅ ^{+W`6A45/I& kx$PX&@KPI@s$`(:f0˛sp፽{^p!***33s;w<XbȐ!g&}^zFz$V)2 Q3ھ}u뚬nݺPu)ZuQZExE KP+WTtR`` $İ0a;(jm~ o7@ S| gݤf֭dS ha0BB ݃B}RT*Ǧ*tc"d㧲!B`)YZmsɶ]vlԽAv,fdd,koo}!":zD"!"X.`ܸqǎdϟ:t(o@Kধ;I<2R蒬dի<{}Qe$͡b)1HLLtˉ'Xuww O\d~%t9RA3k֬c31eFDEc+fLhi5kVEFZ|Z5dȐ:;˖-?~k޽KDnnn*{mذaÆ -[}iF&KP+5$cGYZUjUuքL߿?{캺:av=h C{&EV4g1YIn+$^^|~\\Ֆ-2V$CulĈ@TlH(ؿ_F 0H.CS9#yI[m |W\ў=f'OQi~_ZuqW69TVӬZ)>F&Q&8=ÇKN.W hM$}FDD޽{ɒ%[[3 ULzhrZ~н%Hlmmooڠ}ȑ999 9yV-@kFغn:Kܮ[Nh%"V-4]~X9o977aaa8iҤfo9|W1|^i}&5#l m~h!$ 1tL 0mr=.] p8DTVV0?&=~*"\|&>(X fsnnfδ}^Fr("hUKݥR>>`Y6##eY{{{ooCѣG% lC0I@w3 'O)ѠAsʇ TC&CA&=JMMU\09qą &%%YYYEFFTUU͘1֭[SLpݻ]PPW_}URR@] 헹`XRdধ۽JͲekO ڲ68X6(oKz߫ TT o+'޾}ٙvQSSrJNMM]|yllYS0^=%JȨ%4IZƲ!P3zPZJm䓟WNJJڵkgϞID۷o2eJmmmPP>rȜdeW\rl2}#CPVhF*K?,pZ8;X[q87nEP(N!!l۶w߽|˃NS>}3fhM/^GGG}GSLosss<FD111$''pĈ'O֖'T6KEr4 7bqΝ[w}Ν;7e55ƌuVDBDsaߟQ|||\\رcg͚r[/trz"< GFjה=u';ss~XZSSrbK_nccd#j2 ȑvb1u>yܾʕRWWՅI8hfP/))髯=z4jԨ ߾}7ޘ8q" 4(11^ˠAv޽ycǎԼxbjjj```xxxtt#Gvڵ|;nܸ̙3WH$zwG-ݫW/E< -Aڪ$hYwl;tsء8YYZ<.(*RRʎ/ON.ܻwo;w4?.O/\.QS 3Dz<UtBqKD='ssbو#F!mnn#.|>_iӦMFD{nܸ!qF":~eƏڵwٵkO %p_^c#VU0 ò0f|e| ssO9ujӧ2Z*9HES\~aÂ,$QD؊ YL$VdM54m43J2T&㛙|.99 e C}J|vF~<⒔d^νqsVVVffff'G֯_&QIxxHH&ylNqբE*5I@ 0uL2 Z"ݝ<H1K L&J^8(rDMpp֢DT\̌e$UVPyci5+KuyĬEӰܬߋ=/Ov)uuK\\Æ<уί7uԢ+W< vHɇVwﮚ!G[H==œ&8QϾ|ky7_?w7^/8v5#_֖?yE?ب[J<ݿ_/ÆaV+,oooE1""O?UGrبZg{L FLhWO# QlkŐjbbb~?3777<<|ɒ%gNMM>|x]],rh.e˖ӧ^:))i׮]-R}'OΟ?֭[e":{lDDDmm88qB4 011 Iscr4$ gm7U_8ѻmj2 (d4ymJ oʔᆱ_A/Wbiϟ"/FDDXXX|8rȜsi|I_~ׯ1bjsz${;>Z#2 su Vw]D))zP`_s֭[ ?n8++++++GD.]ڴi0}*g޽$++k̙PR"7I; .:ujQQ">x`]]ݻw]֯_?E;ҥK-Z"*o~ .\hxg{҈_m۹kƃl$b)1fffXtwhhr>,{/;;u׮]Xν{߹s'9::o۶&͝;wӦMcƌIKKOu%>}ܸq;vPΪ9%K6oܷoowU~-q m$QD؊ ^no?.ɚjwyy->f@iR ڃ#Gfdd(3yɓ'o߸qlllbbbp8]v)蘟/iڴiӦMSnyܸq o偲q,ADnjE*U߿͛7QSqMKnyt&ٳٳmTZ#Q&sp`vUDYsW `=rC<񺙕^2ae0IISm_zI}{ͪ!p0km֟G\h5xaX,R_1$>^|̛CXǔ3>#I==k.'MeMGI|鸔WF гoϻOq}AzM1PYEs(~ g$/IQ4bt_&~X:ԩK%üfգE;mMn8:CQ?-e!!!wٳg866v֬YoSSS#""tlKon,nH_Ŗ WI~jY֜a Jʜ:؉,-+*mT4HM&%)2uMϠg0aӧOgϞb 펢h7B[ A޽cE&=tC^ze=4gǢRv,`iYDz66gap80F pPxy&"(##ѣGy湹yyyY]b{>};FDѣǘ1cU^:))i׮]d)))ʝ֭[>={(_3::zҥnnn֭ =ztݿK"6mZ=zqĉ3gK[n֭[\\\4VI)ӷo߄":uo""Etrz"< GFjהakiwu򴋃}Lf0,k05 ;jo8!+K?~|cǎqǏh޽666+VؼyJ1&&F"$&&={̚5+77wرJQqM61bŹ QLƗ.]z̙3gΤϟ?_HDt٤!C$%%>}ʕ+۷o'˗/?󹹹?sc}yyy w}_8p4X'""DO?͜9EE4ñs߸ѳN6R+ZY[SeeF 61Qu}"bF/dY;w+x℄ŋ3 3s̩S(׮]7vX"rC]re]]믿>`Zb^t)00xzzQYY|S||J]tO&Lp匁k_n222ƍgeeeeeh̘1DpZk___cff">>>>>&&̙3vvvoUPq~DS>/ V_J\#GBCC{9]eX98n( luuuݹs/,xm"ď{akmmݜɇrXXVaձfwz̈́3gFP0 !8PjmMM6\`('O5jݻw֭$Psaecbb6lؠRݻwD"ʚ9s&0K.MHHXhQHHHffJQp`,fdd,kotWVVFDD$&&˿7RLNN^pԩSuqGQsRD4mڴ5k`h{}8]iF&:Y3&yccƍ{̸I bs[ZPI@(d)SlyoQRf0uMϠ3 o(IM2̙AAAiiirvvV.C>:22͛3f̐H$E777y/+,Yp¤$+++y d2W^dɒ_:u 7{ԌNIIϾOƍ#GJJJ3 (vޱcGJJW_}g4V322R!<sܖxM3 `{H;LtW^YzZɓ6AAU[kf3V5KoCN V<֦M|bn]uhh&& jm ۶m3tG ak;H;-j:IB-R.©n?/NYk臱˟4,K:SS\#"Ys{w}KioOۂ];ujU& UkZABo$n:8;w2ŶptU_1k}lƉ(--ӹk׮ k7=A \'O:摑5eDaK۫Wyޒѣ%wr$~I$ zxxQmm3܂i++Wsҥ@IDeeeؑa]2u-!!a ̜9sԩk׮;v,qK.mڴa^{ogg1 b=W##3?.)-HX1"HM&bOD$/(IHtpŸq+]M).jg}n5:.^Kx㍉'ѠA.\zj///DҫW{5W_}URRݻwwߍŋSRR6o{5uԏ?x,˺) ߾B-N>p8L&suuWo,cd }VYUyw~7ߨÇ+>NkqJ68peٌ e:DDGH$D$uoYyÇYٰa޽{%IVV̙3ݳg˲O~JAP5rjƍ;vL&;СC YL$V߯K#ƒ^LFICJDxShG###ݭ"##hɒ%3fpww2e|Ç#G,((hց귬ԫW/Cŋ{|f͚:h }ӷm۶dɒoڠAƌӿ4c [̨o_[[?Q.2C Zɐ!CT.'(blleƏڵw[1ECD|>_iӦM6,,,o&]v)mll״-HS۰aÆ l3LAAD4w̙6~g$͡XQ 0cmр<==ׯ_?lذ7;ԆO 3$ޯZhreBBjʘ(xkSSܸq;M%))нhm@='cdT}zz*O\fPB;[k_)Wd,Ԋ$OE2_fgkd#j2 h E3 ghHV>|n"˲5u2޷-tqЩ%"\LѮnu@@u;@rZN`!Gr88;fdKSgC[%Y,Cdf˽w?%%jbqMRY5)SV?inz@`~=Ot 3 0P'GA),(͹sDZC17'"ozBcEU%"Vl9N 0D,0qqyc>,Jv ۳eۏs+@i&|$zaʳX|Pqf ۻV/m 3 lbeҥ57VߊLТ:_d@& )2 p^yE:`ˋϏڲ68X69OJ>C%llm2pƲ%qaκ/-RTF{:uifŝ\RQ֩qrr&93j+#S/@;TlYڵ'mnD㰕!"QLU-W7OPH`G;=VTpy> >> stream x{\T? ad." 0'-/ Dv!MꈞIIǼY&bbEx[vDI㈅P:"0\M#0kkouf8 B!<!B!>?!B! B!?!B! B!?!B! U+J>QGڄI!BH,xZ"U; ە =U` )Wq10 ^j|i8 _*~o_f>} /xjwygo/BN?!cL|+@dY0{٢{{ܧzJnݒdܴF7kG: э1ZqD@IIIO\ݦg'dsDeǓnGYO{Jпފ z}bll׵Ubee9cƌfB@ѿ`wuC|SKqr6&P6xPfQӕM?:th\\\O*$pUr8=pwfNjf^tY|Ƚ}655[[[']B!SN+vj@da5޷vm 7aݣ;Bv]|)S-[&>_vdΜ9K,\[k?vws0N.2핊 6|m%u?-Z.4Ң&!0<ψ+lA Z[ړږ|g: 2e nVECR%jux /|>Ǐg?Ç755e?nܸDž L>khhHIIqwwsa :tĈ:\J:te؂G3f7niB!n購ʌSX7;_'#>_YV][ngϞrʛo|rG]v]rrr~Wu7x#44Cg'&|my7Wo_}FqVj/>uYrsٲ f-xM)_>=RHk۷}KHz-'N c[,9$}'+G|iDLQykqj[zΝBe 描t/=\ZZsϱۅ+WLOO/..;v |<~r|r/@AA!C^[oX}+{OOO?~篾対+ FkioB!SBRC.ϐU)ndgeٽ{w]QQQ\.wĉocYYY-]T5jT}Gx$Pi30{TyG}s^3j(dG ٲ{f܄L&~n%В\|<&ۊDF[-<15J3N{yf=+v|eD\u7o+PYXSUzk9])}kP>0u4551 w@6ĉfff [9s'|\@]]ohh(++spp8}СC㩧255rsso޼wA!<WRupQ[z掆G͛mDr%.Dp ]UUnKR5WV=۞Up_~P(#gvxB RٕZ!RPЫ56g3؏ ô0Lkk+p[ԩS۷gϞg}VxSSS>_SSuV{Tg}6%%uV|||EE&:Xzz[oUSSSLٳgω'?XM!dw_(u264]-):Sbֿ_P2ȚPbq_<111!!!=SO=ebb¦oذoypykɼ9p_䱒% <1鉨§8L<P/ op̣Ig\``(5^]#ؽ ;P :E]}NK#RzH$nnnbVVWW7|𐐐cǎm\]]^x\nee oo5+=zذagϖJ|MTzAbB!d`TWw"O [;K[eEM{XȚ` Wk۸aNzHM3k,JH+L~KJJ^ڲ}8>C<+C frUsKksKݭjYh_B!׼i^u֛ʛE^i[^}B B 1wo^Hx!̞tyCBS>k{`|TW[XП2dH,؏t@{B!d;4Y4' 2D{YaC!'5B! ѿXa!B!@?jEG; H0Ҷ|B!@B!B:'55~A!B3t^DB!>PZZgv3tdO>.\:ޯB!tKm}cO|ow/VH!B?n`Yfɓ'GEDd2Yw ѿ\.p8222R5Jw̙7oEe˖EGGwNB!v/g 99YRj(SJ$ &&&r|Ϟ=N>-VZ6`͚52緟x|8$$Dfee₂ӧO x1c8;;=zٹP]p֬Y=/o߾3gZXXt3;;[(޽;//o׮]cƌ2dȱcd2YzzzhhhyyOaaeˊ?suC ,X`ѣ;Kuuϟ?bccϟبo[wwnlpL85EziT2iT'z^=Ƙ1<^§UQq"IPOfeON !B-ǫ5GGGHRggw}W#899&$$)Sdffj(///66N60l0Phmm"̛7ёDWvBCC s)hpBe]\={n߾#I$fyy~]q;;D" /\(w-+ZZܼY_TT5jԈO!B4ʕ+ ddd>A]RRۛX__ᡱ6Badd$؏ Bcx<'@JJJbbbEES(MMM="SSSu͕\.X,60uLLuu{ȰUjf?޹22766+*a(M [~lNCC@` !Bȃf@ dcc9²X K"(Z @EE/acǎfGlYvXYY)V.[SS~Ц믦T6p| 1_T)M|~e`hr9lƦ]N?~h{B!<8}K˗TGt0rDa233 o绹HOOTﲲoiind֭[;˥F 4̸NY]]9Hd\RRS]]bggɩޚz#r9Cu~sFFƽ%B!}\~LO5 {zJKK{׭xyy}WrDDDZ6%%.{yyٍ5J*w|7666FFF.]211qww/))3ggϞݹN.sιs.]7:~qba`@`PSS`C=OOաC+MMR]]߿qs'}䈮UTo߾DB!3zXZNR455U?ޅ \6ow/VH!BWZZFusǶM!/iyegg/JJJ8'B!DGqC-///88a''$9B!oh7>r9h!BfB!F՛O>|8;;PDaFuAG''^{a|cc;w8::nذPTT-N;;y1 S\\lnn~U6}С&Lf?d}[ZZ222̪t4ԹxRRҕ+WZ[[Ҍkkk曱c޾}$33sŊ-n;d̘1111*/_ff˖-.\`ɓlq9CCC-ZZ__Im:#{Ictrr jhhؿ?{uB!/>U/>6¯PmllRw pssΝS(g…]5k;;;j111bSQQQ^^^ll,˝6mÇu7Ծ8y9::r8 HtUÆ  ...2]8q`hh(˧L `˖-d2ϯkO^ֺ63<񊋋uB!+W4ȨOR񚛛+++---\.Xl`E7 :AP(D"ZPh}q)))<OP455!JJJx{{=<<:T K,122Zr̙3uԁum$ !uB!54hMv0۷a5&JPrܚCjeeeFyy ޖH$JVTTXZZn}񢢢cǎxhW[ڊ .tNv>9n 555""bƌH^z:ut'By@ ?T*uU~~~KKK!H6o `ݺu]ϔJ3gN:5ydyF0LfffAAA@@ |777镕=(=twwJ˗/WTG-((0wK.8}taa |ts/iks:n~sFFƽ%B!7n3f̉'s9Ws;;a}Μ92,99Yc+\.wΝWliirqԩ֭6ll))) 111)))l= 8tT*Sc:uJ"|l' 34-!B νFr/^<~]VsժUB׷@BB\.߳g><<|̘1...[la/^/lllDgg'Oۖ.\dN>-VZ,d2Ԛ5kd2o?G为u9K?~رBe߾}l'N4SqF``H$J;vB!ˀkT]]}#G,^XTغu !BGjiwv挛@ `ooٲ%66L&0o|8//^p8-b&$$)Sdffv7xB!ҏŊ3^577(--:th)))RT&)&6\P(_GG]vu7Hm UVVZZZ3bg9:B022DGkkkBQUUeee)H:KJJx{{r\?3!Bb@=kaaaooe6[[k׮O)**8v옯/kkka]eeeFyy mݺ@jjjDDČ38Ղax<;ˆ8z[ Ekk+˭a%ReTTTp899eggU*󫪪؏:6d֭[;scwpp9rdbb"0fff~wT*]|Jjnn>zhAA_윑qoB!gb^ϝ;/e 8qP(?>Ǔ 8tT*Ug厎SN]nݰa8ql۶mc}7n3f̉'$ȑ#Ν˾c֭[: `cccooΨqwwds̑dܹsՖ---BHII9pP(IIIx;w|wO<~}jZZکS$ɇ~tT V"!B鬶QO9wFFFv{{4D_JԴVl!BJKKLC3C^Җa@deggHJJ?!Bh@= f)))!B!({GTTTTTTGA!Bt4B!G6z謬B!8\p8eddR쭚ryoG-[_B! Hg 99YRKB!P.khh !!D.ٳGS&mܸ>,, ŋE"M||-VZ,d2Xc\;DO۷o5jMPPԩS%INNѹC4#ԓ8ܸq#00P$I;vmqB!ɩo֟CtI!PhT7o# DW^Ug??? pssΝS(g…nٲ%66L&+**ˋrӦMstt<|Ɔc\FΆ & ]\\d2Ɛ:wH[/$܄CCC\>eʔLmuI!P+WfddHIIJ2LP4553;88/}||:x͕\.X,60еBiiСCۧ( ###H~V(VڎsuC:x,!!uH[/$Βr\.I>鈓B!a1V4hcQQQDDıc|}}X[[3 pڗۺu+Ԉ3ftȠBhmmr555:lmm]>E"(Zvh[QQaii89N}u({0:wHz'qڊ .hlC舓B!a1wP__WVVȜQQQАwk!H6o `ݺu3ϝ;711ҥKN>]XX0rDa233 U~~z2zsq ݹs'::ѣ+L[H;Dcqmԓ8ݥRU*UssѣG u8_윑eh̩"!BH ѿ\.?W@@CR'N433[xmDwwwL?gL,ݹsի---[ZZ/'N ggȤ8p@(Ĥ1N!!!lllu읋haӦM/_]agB!iƙv)+++DmqTk1B!=Q^T*MMMkkk>8 !BQZZgzdMUYS!/i0Okmcԯy=,qB!O~0SRRRӇ-[!aB!~(!BхfB!_.wYYY!B!: ѿ\.紳sC\\\.B!5۶m3f`| 447J!BνFrUUURĉ***rrrۇ3e˖-lل\g6yǏj(SJ$6xqXjP(-**be2ƍ?~رBe߾}l/D"B!P$W_}5o޼zyW;!By SS/ssO?4:::<<\>S*gΜ9uɓ|JmMxxx:t=TC"l޼u[\[sMLLtӧOO2t0rDa233 dddTTT0440tvugg猌{K$B!h@Νk999ׯ/,YDPrqԩ֭6l\.?W@@CR&x<Ν;y'O+.̙#ɒ5r;w\zeKK@ =@['N o?ǩ˜'<==/^m61TSM$B!þaooӿa(JSSZB!hTZZgzidMUYS!/i0?ٷ$%%ПB!7j߇B^^^pp00NNNIII!By>𣎽^]Qk[^`!B+:^=jB!TVg{0zI&uTmmgCCÈ#=7B! t͜9sڿgsҥ˖-cryw+Dw^~=Glٲ?k B!Domv_Vhhh?ED!BHoOgvfL󳲲ٜ/^<~]MLHHppp011{n/^D666N>-VZ,d2YCCrrr\]]⌌oܸ(R;z=B!䡗.?]P;[` F!ϟ4222dȱcd2Yzzzhhhyy Ǐ7.;;Ν;ΝSXXyOLMMbccϟضᇂ'xb̘1=B!ywmڴi-';M ;;;ϛ7$^Ot 1 P(9… ?#644SĽ?$B!2мfϞ۶:rWxRRR+**xg|> @zzzeez󫪪tאQQQАCVVVH$7on:6T*]|Jjnn>zhAA_윑qoB!Q0G2,??Μ92{yy:tH*w9rܹB֭[:q℧ŋmۦN `cccooР!.sիW[ZZCZZکS$zF6*H!Bj;RSS###s4DT֪L B!tO=󧦪,̩ehO!B€zᕗ0SRRRC!B&?; B!2̟^Yn|D['!lͰ_?X {`Ξ :K}Aolso9{RBy1ȑ04x%[J_!!pPWw=L<̉aab?Gr ) #Fit}痷>/WViٯ !pNdUBB`nwEu5vFKK߿|56b,bnc8:jl`WQ}Ӻ<<};.^/1vy?\T^aa ؿ"!BzIW/];@B>Wp00)``06Νpw`f@\a`p u_C 6lhK'p8¨Q04lhLÇcn]5_aVD` ZX36້;Y7 , >N\\[[aj>HJ`ll݊'Axx?gaTjk1e ]oݺ>1jzL˗>aah,A602Bj*ouB|]zέQA.@3]ٹ ZZcVq[˗8qffJcG[zFZ孭テ'ܰy3vSsNOƞoqw揞bwϻ>B!ZM61'`8&2iiac,,&f АagYjx`nff~`Vdijb"F;ILdjj`^~af`yo;'1' 0̻j-5660g3/S_+gS0AAwSur55 2 3;-ĉ ws l0 25v-ck|sF[K!C*`yE& mWR0o Ɔ^e zu%m:#usiymټԿUϥ9"BÔ|ŧՕ:9jWWW#;gb|^|xeZZ4WT7afL w`$kbc!n K&P}"-Wq}_ذ֟ݢO']q}how N=QOy!{WWE% wEmi?ڰՏ ܉[ؿ~zwWy9 qll .G|IǶ4<\?[.-·JuwS q*;B}#@46}xb(+ZE~@{'xy|5Ν:ujԓ[еk&ź.?us4GB!}כ\1}:k 66x)<AA]Tbm ˗C.OW\\q&~AAxU;LM56e blSS=ec~O? kkXz m04g,\']'57t~)ױe ⮻Z sgۉӭCB5\L63π02L7nk31a<#PFry;E ':k5S'5{x !?t(LO?؈?ƴimǔ)mUs0|%F{o-Ca!/\X!a2!?nn.SSdd`0,_;w /nB!ogA"Z,-Exx\cn !uuX]5…Ǒ#HLĕ+x睶^+8ufuu%SNcHKB!}S|$555}6 ĎݻwNC.oB!迮meS᭷eGy[?W[zL 8x{i` `p8o8Yӧۖ@` Ξ"/c%B!>X66wGAO2̙mmYY07jXXou>>mkjgmfWCo\ض!B!7;_য় * F!!ږ VX=__WۖXo9|8vn ƎEQLj00D ?al_oKܽoeJ~}O` yĠO~n czdts[g@@[~ ˗M$'*N!BUzomʼn0hĭ[ظFS5|1<<ؿ_Wapsҥ07GI_y--ر+Wظ ⫯4y4^|^^3\*2+z _GttOq1de0d꺆Y_]R|%B!6f|x<~7em~ x#3))<yyw^kI<?,̞Dy9>ヒƸqرGc  @K v:ma4j['NDs3"":/χRl\GC> 33uuشm;:8thj¨Q8/*[XwZ]Ņ»B!G~r|6l 7nz * NNwSjkqTύw!PSN6gAY\]ۆx<[.;טH҂ʻtQu9Çc^\ naհ?uݘ@B!<_ mvLgiK`8͏'\t7g:ه_\ƥKP@k_x/|> Csj^}K]b̟Bq1.ġCxnף;}+1~ÆZB!!qOkj4e blSS=;j'jӰƊ0k̝O>ԩ4 XTk3gb١ @Ήn>~[@,FP  1X۽NeA?6㍶gQ\mE, &k?k̶; ss XSv;~B!0ѿXhQL#+ /9?1}gcr88 9^^GP};Ѱں1> ,-1Bs wEx85mlXV!0[]:t<^۽y>#GMߴ --W̛ww~'Fms~Ř< ]ꩫáC F؄B!d@TWWkܑ^TXGGDE;/ka,B!JKKe3C^Ҷ?:mmgOw@>sS -iʼnrċe,9qwfneā[,lednq²쏡؀ CGkq(2qmH9mO)/J>yyy'ܸ5 TJΜ!HUȿwv[.^]쟢؟8v;ܝ~1eIIIc1OPPMl6EQs_rDz*44!#dp0 ?֭>`k4ibɈbNWYY*-Y@&''_><<ڐқxy}9\is;}@|?g} SSSڡEy9diZiO`wo}QiiiRRR```ff5kEUVV&''d\Bȝ;w6o,ryMM SLPBFsEBHgg'EQGo((꯿"TTTP%f߇V6lu kCCCޥsQB!RSSz=!g"(..ʕ+LWLJ:t~.눸cQoooZZX,J%%%K V;114!V^f;yd~~~OOϼkP{ÙYIVuq}u hG_p`0BnݪRfsCCC~~~?!dժU---ccc999))):NtBRXXV3bXZ[[gffrss V+ϟpO?N&ر#33fUTTl߾bLOO߿xx8 ^'눸cQIIIzz@VV!d)4⢡ ̖-{j_|!kv!'Ng;ãxx޽{!*ƍeee|>_Ѽ /_&JKbx``.2w&$$$ _d2ٳ۷UUUdVKQ^:x𠟟_VVRV믿8lD^ 4FQ(jwk˛xcr~888XPPP]]T*t۵k!d˖-Ѯkv! md`]G:< عb1!dddUBah4B5F駟ϝ;,)2L] f~xx!$,,, տ. >b2qB"##M&l`H$LF%&aJIIQ*~""K 11Q"0H?!.F䢭~l6R}}{!|>_ د& qT;}'UUUoN{=M !*RWW7990 Zd`]G ַxY|u헛*,N>}igffJKKe2Y@@ڵk㱱,z_bxƍ4M7ݻW.O1$&&fllիW|T_47)8D{1w6ΕdAoݺjBJc]V ^lD. ag#:|T*Ds, z>00pֆXGQ@!Νobb)JMM=t}2c-2X-v5FϏ[qϏ;- b^־ {ǃm6FgHCCCW.fkmS7? pQBΞ=j" b=fQuuuegg4RΞ=Y~pXfw޽{rt\},Ys}?ArNKg}ٳ-wnڴ'HLLX>k4eiV*&('\D{7Vkm۶LiOd6mڲeKHHےwټyX,555EUVV&''d2U܃===ׯDqqqW\q}:>to?22rU֒2#MӡLPBFsE]REEE6l:qS(@0֒׮] -.. 2 ޴4X,JKJJBuVJe6/]p`0:;cǎLVQQ}ېԔRܷoАZe-iO$dUV䌎bimmmjj***'tիW;4Prff&77jPRR>22200}~|?nK5X7e N+ + d?@+ d?@+? endstream endobj 767 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [464.778 597.295 471.502 611.09] /A << /S /GoTo /D (Hfootnote.3) >> >> endobj 774 0 obj << /D [772 0 R /XYZ 80.963 747.976 null] >> endobj 82 0 obj << /D [772 0 R /XYZ 81.963 638.389 null] >> endobj 775 0 obj << /D [772 0 R /XYZ 81.963 536.107 null] >> endobj 86 0 obj << /D [772 0 R /XYZ 81.963 398.5 null] >> endobj 776 0 obj << /D [772 0 R /XYZ 81.963 262.678 null] >> endobj 777 0 obj << /D [772 0 R /XYZ 99.891 141.392 null] >> endobj 771 0 obj << /Font << /F25 474 0 R /F16 475 0 R /F39 618 0 R /F36 596 0 R /F44 651 0 R /F43 652 0 R /F45 668 0 R >> /XObject << /Im21 768 0 R /Im22 769 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj 784 0 obj << /Length 1515 /Filter /FlateDecode >> stream xڅWw8QyKe{o@ [>ʖpb9kGlJȉۆK$GInzzVdqe"E\ȸHTK* bJJW73&v]_$YKή/>^] >_n߯.+$_+b)yT/_hQ˲jɢTDVid4z|$hz4?oDžP>BSނ!D1.UCHLL3;<E;nO]V4}F;5X`_ jZTТ39Y'ig]P#9"eY0??\[HuBōKSСρ)FD=4X(9`avvgcM\gz+>w t.b˦`ȭ u;ZfA~1s9x(9HC,Fi;BA؍WI*Y^cI{a!8"{%",~y ]Ьv{mNVK%8b˷v? xFȹ0N*_m*oSa%]@i 1?MTS"~?R/G=Qu-Rw$,ᖱlA ' <ʎ-Z` {o_Umj kFv<i IhaZ3LWT>sbG2OH;;w4g&_ݚhM`ys9ьDoqK(cF|0lݜoڰx!$C}$G)>`76` 2/ jS`Mp:YwFP /ZB D [ ']`{4r@*3L&uhi7gz5S:;b> bg1,lXzs;G>rzg@m)0~" ]@u[5a ́1Y7A$5rB#Yl( x㇊G#-e[<CS i2AF1 6<#Uy p))ola (V&@A|n> endobj 770 0 obj << /Type /XObject /Subtype /Image /Width 977 /Height 190 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Length 32296 /Filter/FlateDecode /DecodeParms<> >> stream xw\SWބa/Qa9Qu HETmZ-j[GkRGu!U+*jW|u* B6dh~yt<{so''PEEEB!j1t[B!snB!Z!B,̹B!jYs#B!Բ0F!Bea΍B!Pœ!B97B!B- snB!Zh Eϝj([`3 ۶!Bmȹϟ;Qڡ#: B6ȹc7%b[Tr!Bm s#vYt`: BҘynIEu>iV!rжf&X0/:y`2G,on\#5WиBW?ӿՒӧ75]!HG۾r4.ѥGcS, hf;͜k!mTӴTCGu02ɒ=ˑgIDUFeWwƥ$޹sg+sܓ'Od2raǏ5~BFDD,XCڵMhh(;vBѣGeeٳg{mcc3Jg϶wppX|jSeee (,,{Fx^zƍ+W[`„ -Q?ܹە[.]lllBBBӧO)///{{k~vvv;w>wܹs֞?3˲GafՋ- <{lEEa,Y" \B /_bmm{磻4V&$RT*H[ĩHyӶAזp\+ܷOe^nţl{8V>+|zե~RO8ku F.Mm͗k`ҐI b@xzX| ``ڢ#F (0esQ!]TV2RcƩwWF'N$7vT\ׅ ݫWnnn>[ZBBBΝmmmg̘QUU,~W:uRJn7:߽Bo/"%%㪅iii߼ysFFFv̙ƍeeeVzaN>CHJJsέ[Ο?믿+[۵kߢ@jjjUUU|||MkWw7nj;w̜9N81!|?{zz~W\4i˲䡿+ pgϞ?~|^^޲e 33>(((;w_~yLppp ,?ܰa󳲲 8uڵk}}},Y=eʔ^$'[v-\*9cV 6%?*$!ף]բܦ'ܚݼyѣGfܹsׯ߷oߕ+W^YiWcwޅ';Np8P "?ܽ=xFsoÒL``5 9Eӷ`uʱJGhgdf1P`TH^Y̴ʢOWm'ݵ k=zCѣGۙ}RRRvvM@-ѣG/NHHwH$=~O>Yjj/o߮Qk){B% cbbϟ:G{ر1c%K:uZс/NII)..JHԡCk׮Lu4b WW׆wnݺܿ?0[loRƍ&Mt ٳPذaի;uꔟH$ׯ޿?MHHH$ L2At᧟~Zbann. øl۶m [Evb[o^H o ?w,?WP8;UdƵVèQ_"O %3f4=hР2HJJ6mZ=G.eOɳw?~s B qz[ٮP[v&+”cl|1O u蘉#m.`B U{nsј6byY!%e7O>rQ^YuSwk>|'d2˲ǎ9r$)MNNvsscȨP:|phhILLLD9ko޽BoÇ{yy~/((h߾=mbbb``PTKgN8ѭ[nݺ[___,L2=&&FJR׬N:k4sЩS'Brƍ@y1p\ۤSe#fff666"2ƒtΝ^^^}KPPPDDǍ7vd̺?T*^v7 S-rh(- 1i˖-iiiʇ9P/>ETO  $Ѐ/BG~h w9OAfFmo϶*+yԼ;;;z\ xyKG\hlZ[T&L~j/On\KJlԴK./^411S=hƍgϞ566600PJ$)77777ڃvO>2eJqqq``ҥK^d[ebbҸ#zM\Oڷ 'TY,$$d͚50͛7=zF/u6[RRR{LӠiccwի׽{H9=qyYVVVΝܹS+++w^v튊D"ѣG=zxMӪ؆ _~e\?##cĈ111.]mۦaʦ <$R`#Id[ZX+U؛vިqlll:\I~FZZZ*?eee5ߧ?ĽGRܿuߛBZ5yeި4scXY-)3ſ;5pe6z&> 40\UHrF`57:pk GQmUUX,ޱc& JGp풒%KԻv:ۯ !>}P($ܾiӦu1;;~"}qss377_nݬYڷoIrԩS=<6}..i;bny|H&}q w RiyiyTQcĉ;wTf_RnsssJձ5,,رc...~att޽{ǍGI~YCȹ$B!ZHA"T"qֆ<7~D!Pk9HZ[!Bo I["BiwD=$[(` `X`(,(X3).ZB!7o^qq֭[_^eמ ];i71]@Iݑu{Ѻiޔ7M zn'(7-KzB!ѱ|>EQE ༼tޔ^ANov^Fڷۭ<7%:,˲$VM$IUU |2Bo>>|>7++KY^ZZ:m4KKK@VRRruupvv^hyHg``3_\?:t5WzzP(4iH$ BP5#G.\pܸqnnnvvvgΜQw4iHSj3ϭ'UUU۷oz*ݻwii!Cllm94F Bo*''Ւ___r[WW?$utt47uـ W^%.]0`X,޲e ő _BQwS 3**eX `v4N/mD?$66?'+={޽{G]PPn:[[M삂mr|>VԩSI+8pӧΝ|;B^lfRS]>gϞݻ{VZl^J$매(?0;vرd]jΝػwo@@@II ,,… Ǐ'iii'N5k֮]*##cСO>ζϷ:uH$2dȲeV\Ivuttq%K/SNM|\.'N 0qڵɋkΟ?ܸq&&&qvvn`$2*8$CCCǏ***r\./**b֖lnkk[PPG&5n-;nZiD>e)ׯ_x1_sl3]!ZsrrR('NԩÇ<2J7oVVVN&+**,--uuuU@e"7H!?ݻV WS;ug.**Z~}AA~|UV7i&OOO'%{޽֮]K?@~8f!llllll-ZԡC;w8::=z׮]E}7ɤ105dȐsjhѣG b5<$ ONN677ehС撖5а_5%1=QRRinFҞ<}Z @,R,566l׮݅ -ZD*R,!NNN_矠s rRT5=522A uر:t6_u4NxM]\DVV֟'3g~UVUUUO?ʓ&k;;}\MmyCsP`|tuu쪫REQb8!!A9bc޶mL&vss^t v:eOOO{{˗khDqS׎m>m繁eYi>oaaakcC4,P"(ٳɏ?hiiIN7zm 6(7U^.>֭… Ϟ=y!eܹӵk׾}2dHQQQqq~DF6PSջwoSS 6L,?xO>:uQ(޽8???55usΐ|a񼼼cǒ%.ǎ+//"M}wYYYw%/uM&fΜ駟߿?~ӧOK$>L9"2n9s̙S|ٳgϮ]G]!!!!!! :.,lB.H&R*MRR8UYuEl޼Yu-Ql7u;nB5Wx硖/[BQΗT*=~D"ׯM,oS@<==ɢ4կT^ǎS6lXn tȑe˖?~̜9Ӻʋh߆kDusx<ޡCϟ9.;dȐX Puᨨ͛7+_^"9rDOOO?%600i~+//'|פ{nԐsر|]qq͛ ̹<g)7iBu9UTChr; 빳Xiڐdz4n 0e0EԨ ?}DB!T[nn8,599.++AynX-C(lx˔ BZp͹i7!BMPZјk!jȹ)pth>00R  ,Cj6?@\\vZ<&iUBvȹi};96w;U#+2E 4ڨ}ks)Bm9 8/- B!BomύB!^7o^ddd[G^s#B!Բ_[m>B!B1F![-11ˋجZϘ1?xLJfee))--6m@  +))i=A0̹B!:w\DD߿NʧNJӴH$+W-[Fºw^\\~#G(ۉxiZZH$R(fjA0[p7mΡ|e($''gϞ 0,ˡi(`YKF!jN!!!!!!5 mlljWvuuxbr@e˖-[[X,էuMfI-Ɋmmm2ًTd)`?VB!^G xI,EQ, 333(~1Ͳ Z$^BZΜ8=Z$IyneY ^vXEQyn7!Bu 蓧OZ-z KX[d7BCixQrmؗ K(p(i(s(B!ԊpⴜVn E,P(\\\(2M2oa^D!j8ύ^qZ#-a(eXV.yTyJr !B&F8-r7VVC P47f]`bKB!pȹ>paF(ӉP,K)3 ʪTToŏ7a„3ؤ͛W\\uV諭zl?ϤI =ʽ#8M,]ڵkoքEΝ_l!~R/(P/p#JTPcs [*K/_~g6"SNM<5 TZ8i/^](n5`>#P4rmllF}-RX8ڿ^@^Æ 0a\.5σttt&YYY\.,F ƫ:[uS9r… Ǎfggw@_~!.] - V̹}& ŬYHիD"QQQQ\\~ǎ1m4Fܹ˗ݿ_y׮];|pFFx8oD322:tUFF$T*=uꔷ7[8ڿ^ԽN5+--6l]\.zgU|||5as0m͛  VAC;[Bז\&nbxxxܹի JMMRsO8Cp}R8~xr*$$ڵk=33355\.; WVV;v,99x+WDTSSS߱cMzzzb8##s=zhAƖ-[F &&&dM&-Oy~xGN?qLLL"""u$\P]'78xj8jM}jj͛7}||Nrg}:,99ԩSʅƟqeddܼyd=:<ABuz9D"}|||}}NQ%%%GXU>J~!ZZZXb^x̌\r777$yrr߿VXXhdd֭{;w]׈m$G(TƯ~oD@`cchѢ7nܹsG8שfCݷoߨQƏP(@CBBvܹk׮qil6z_uuU~W$foBU]2_wقȟgOشw٬ʇuDӮoҥorru~Rˋ(XUAAAg1C=ZἼxCTUUlڴ)((lmmfϞ]TTYYYʋ}zCj"@ 򒒒~MWWN8שfd .] :uj|||BBɓm\:sPw.^eeeIII9~B-rnFNW ;6ΔNGӑut)'Jωu8TP"v zicǎVVVsnkk5k >_~&Lqe]N2~#OHH8p@Ϟ=CCC'Nmd27yx\}޽A>???GG-[ݻQxZ?p;v|FFF...o:W*~m$?~Ӑ5PxxѣG---53ھ^ԽNehh￯YӠ~~ @[oڎWx9; ,wGxx_hk") /۹&u =|HQ,VWWK%}Fz½?Bwl~@2dW_}ց =~t`P R_ P`rH+kʙj`J#)ꫯU\\s{zz~/N[s_[j]vyoܸqɒ%0vرcΛ7Ou]KFFƩS&OHٳ{ުU-[!u,]tҥpI&򈈈ʴ4}}'Κ5k׮]_zuUUH$OII!s7:tӧO󭬬4tQ:9uT]]]HTQQ1dȐe˖\Rmێ=ګWz?f43ꭳgfIyM4e)K1  P,E JVt X]7nJn1bΝ˗-,,cǒ(Ͳ[(HN9|cǎ}(JRO??7oǏ'7BBB]֔b1c~H$JJJJMM555h;v~vAOOO,gddtܹG訧' ssssku*++;x<^TTTLLjثW/  797sa( p82y{ĉ+Vx1EQ}itS ",,lРA3g$%deHhh(9aWQQadd痗7.;;{̘1?/B \.p8ry߅nCQQ0䮭mAAjziwmv.)122ߝ;w>ss!<ݝ84hi:-X޽{5N_Cs۶m2ۛ?REO-j8qBf{^$0/ j  =tpj{I~Y9V B!B h?̄97B!Bw[܌!H~%, ,@rk>] D!Bo֛fdtp`@h> x/P+` ]8B!BVF59c y{Ney 킎h8B!B֛$cI슊 `YxD*JMכ.<!BZqRIR RSS""".^p/Y6E>ʕ+/]xbdddnnnnV][7o^zzz5Wܭ['O$''H!zuKmetut훖755f2(`Y(hOQ6nܸ{[nuˍn߿_~}]ӧ_~ lj˖-۶mtR!X8q7|ĦZǭ[zQo5 U8߼y3==SN^^^+B?x@D,ϙ3nnnk!==}.\`K.111 :ujm Bӊ mQ@Q ȲyofH ܸqcܹ* oƍ I=7:߆츆8_zSNMQh̙#ITTԾ}0 3|#Fڵ]xWBmڌb3'e)J P(E|Ms8MS, """ ֫WF7r޽:[9rEQwU-߻w@ 033S%'Bp֭ ޿׮] N5k{ ==](N4I$ BPj*Iiii,--AXXXII )|}}vX\\k Gpqƹٝ9sg̘Q]]M*gdd;|>w?~|ddv<<< ---O^UUruupvv^hٵ:!m45`{Zt'bǎ~meeeIIhڴi/yU͛ٷӧOۍn~UKxZvm9NddH$" 7_LVT_}՗_~٣G.`gggeeUoqBx4Anݺy͛7_w.))7ׅ9΅ g̘affH$JJJZzAtt|L8~`` yx<[[cǎEGGxx·ԪpzUU/'>̙3ͣP(U˹}F@6lܸy ֭[vDk="o <,==$78q¢G\B=joo"GIvrD,0ʕ+9\HbɾjLMMtٳgwMnrt:練Njwmmm  hiiyfqq1B(77W$YYYd6nܸ!J:cϟ?)dU׬Y3H6m(--1Bzzzuuu~zɊGd??NwqqٿkkkMMͱc̙2443f̾}D"Qvvv@ݵ B;;; R__…^+ x!&RR[9ml۾CG9zhXXرc<==bq PZZJh4Zmmi4Zee%599 i/:t!tAcccvccczKMMMpp0 dz`>>>111zzzN/?|G^~]2F\Z9<ѱAUUɓSLAYYYt##PUUUGYII !TQQ3--?0{l''k׮PֶyI؂ h4:ɬQ/[MMͯ:zhgg确@wuuhT*̙3&kk+Wٳ';wN[XX0̩SJk5kF }ɎѣG3'y… ѥc N yY {B@@KOuч t3-Rj"P$L# p6MXxx<&iffVVVE}UJ1 d9<222ۡ OYNoݺuԩC]#{fro#< *Hc@?i4@w A*` ]p̙m۶㦤XZZ㩵_aÆ΃"w>L2ؘB@^[(*gi;`ܸq6mb3gloooooG9mmm=vnٲe'O.))LONN^|Yȵ>hѢkѢE/}˗/[[[3ѣGߺu 'ɓ'Sԏ>f~ʓ(++Yf .XYY8p^OO/ @qBg٪>>SBBFJII!/^:eʔjlvtttll,677onnQ;{l }KZZژ1c$JKlll455_x:t(%.$$͛+V8x}vjjΝ;%cG)++O2EWW7,,vjjjVrrrи>Baܹ***8AG9r@KKСC***2ʑv^Үϟ߻[sׄ7~kK<~TvWID"Ѵi?OuWYEEΝ;dٳgUTT޽An?N>8n\\VJJX,޳gX,&n޼yŊ?**jذaw%ƍÆ {_3̓'ObX\TTq ORԤ--y߿ 'O\xQ tttXZZ>HJ3P^xxǏLBXN%:*++OFiɨ#a '@N3VW/ϖwX #Tښ (VzrF0[޼o~:;;W\ٳ_~%6J<ʳE,3 +++rSqq<ݺu?0a QUU%ȭ\.Arx<ޢE&M 8\.wٲe+WSMLLz=.B(33 _}UHHȔ)S>}ڽ{CPPTTTB }.|yo޼ɓ'# ^]>vvvnll={6jhh066F 2L*;DB2 H' wyQsss:>sLkkkrpQx^2s̍#gX2ֵ݅_:)yԨQ]zyy᷵L&d222䏹]\\rEEE]]]rӢEtܲzĔꠠ kkkzezRzz KηX<;;[$ؐ)2k.[D"k7dwoBBBN# 7n8mڴOVUOÍ7)wر|r]]]&B/IOO'Gls\7"}rǏ/3<Ԏ1c5WAWiRSSYNUUv/GyɸצoPj}<v9&QT`$waT)7ԉJ*//tvv޷o_;I2.|>!ƺzaa@ XC8'''(xK/Lccc ,//kjjR2ΗuAnee5l02EF=Bcǎuww'  B'F'wy…G=~8&&!ގcL2rÛ3mݺH,5ڵk wwwɧ/ TWYYFRq׮]#di%:y:ч~ϟ;884644Q˾pW2Muk?sQ'*IJ߿aÆ6ɭ'N(--Gutt _,** [[[ܹ# BА{ljjGĥKΞ={nr+˵Bdoiiw ۵kYy[òȐֶ011 7oMNjmm qqqJXWW$eeeuߟ?ZϦ+Ws ={~;w899}uttܹs{c\HDrr#OMMįcbb_.YNAF;ӣjkjj߿/曢"rxs婫b&7ͳpžݰc1 x|Olٲ+Vh4+9^099KFp8ҿ/ŋϟ?[Ο??##!piwwwWW_~$oh"\\\===7l zzzaaaÇ?z%cAy>^`G~ztt˹s熺F*::QǶ$%%%PEEųgpmǎ,cmmDƚbͭ!$9"{ @{ƍ۰aT*c9=x(uuurfw]]S@Q(aNCj,1vFF6|U3񽊸Rؖ-[ADD@hbbr177*ր{s:G{'&\^לOGz<9Ϙלubf@KOuч~n htRUUP(TSU Dh&&g^~ma%pǓ|8~@n=Oޟsg2?bh4Z[kH,F ***O+f~>xuo >b27o><` Tw}{{{3g~ ,x2CXY[=~xIjĖZFNSWWUI\\PW)i_  WsSTsss}}켼< uuu$Dn\AY رckkk444{r BW;xݻ>L566P(<Z SN u-p_6{M4bQTq,X"Arиq[nQT%_Ǐ;::Fxe(7^ERCC5??`P(;TPP `{ս~ۃ\Ɩ9Q*((x++**Egg[ZZ^9#66vɒ%ƍأ `{%碶0ࠟ{9r#FPQQy9o_֖|*/̞=ĄBt+-- vvv4Jr=K.بijj]'N:Ư 3f sׯ_fccclyssN>]MMmժUNNNߗqx< X,.\:p9˗ ѣoݺ겆euu5F+**v^20H:8MpƎKRi4ܹsBxS1ieWH+vXZvyf]MM B&n744̝;WWWWEE299wo0hbu/22x_ٳG[[[IIi˖-+?@=ǭ<靝]'N.umH+ɡ驩A4446m/s477OP(TVVT*5)))""BKKv޼yq vڥGn믙Lɓ'bX,.**""..NKK+%%E,ٳGWWW,={vƌ۷oΜ92Kuv\ѣB~~~W^zcpzFFưaΟ?zjPZZsٳ ֍7ZYY B혌o42=[;,}ۼyqׯKӽ~ŋAGGG@@%Mj{UYYy2HNF e3su֥}ᒝ}277lmm6xcǎ%SBW_}2eEEE??O}-@,M0boor|;}#,,,z=ÇgϞbe\.~zWWWдi|~gg'iٲe+W@MLLB[n&L@P<<<D!` 6n(d\7i`DGGGFFFFFBsC]ޞO?jhhttt_JJJ}mdW2hPvXFuҽF 2L*F !1RSS322ڶmJ'iii^^^/u-8);;[$I>nR]]daaaaaammbBNNNvڴiv@@IBYYYaaa:::8]Z~Pzz 9Tq\q3@<OD 233̙>}T__<[hd\///H$KOOʺu떺qz<.$$$ ^#F9rpٳӧhʕ!33S$q8?o@}odW2hPvXZFdCe6B(..nƌ^0סd#KKK۾}A[y1cLаעTTTѣׯ_# ߶mBB|嗸WIyInҎ xu17B SvL^I#a훅Œ%Klmm]]]#ɣto}}}b2$yY_Z @3댫3ʏO8>prMuusN7W gF3ێ\|yժUVe-]`߾}C]|>?1ս<:k '󚳠^V,x驒.0qlÍO>'V7U''/?dDUZ[yH'wΝ3>Cme/x*hpoXuaU̔#FO?ͥ-QR)Ӌv;6xǓ'Oƌ3r+W >|vCme6*ua\VRSA"QFmnTUT{/>LmhT2D!ԁ0ة ,W&CT2B JB;5w 7=['O4Q=B!3ʇ,~*;o1Hs B]V;0i{ ,Yu֡bѯ^w}7{W/[̍r2sB߬/d0)**u^:a:`0&NXTT,X@r~pp:~1xփQ 4mx0J7o#MMٳgUB֭P( r¢K ]%eO}6)))``PbS^}puﲽzT__?o<:.{E\f͚iӦ]|YCCoJKK;x5k[%9rdiiiGGGll%KǍ7 CUǏC ?)ʬYBiii!kd~gg'Bt…׮]KJ_7]eeeuukqqq|+ŮnnngΜ)))ۨϭ{p˩?߾}P(\ON8`0X,?kkkKJJ>c2gرT*F͝;!*(777ɔjVTT0w\]]]KKdal6;:::66f777Meee/TUU2eJuu5BÇ )))aaah4UJJ ~%555MMMO;`Xrrr ;rBHGG',,,,, bffP( yr]=СCa/h4----^}`󫪪*,,\nN1cBɓ'l6{UUUl6fx/VSS[h91c/^}ޜ9s~NR蘘l޼999Y fff111۶mÛ|||󫪪:;;׭[G>zh၁͛IIIAD&yT2}Ϟ={A^^^16/^5k3g>X9JJ2Z4hϞ=;v숍UWWg+СC!!!_uyywHHD/cnOĉ/⯿RRRV8sn߾=**ԩS!܍ݼy+;;[AA_ݻw;88!'~rܾ ШQp. ꫐)S ֬YS## "bڄ wxgDfmmm|/KN7nB&L)#Ν;;_ ? lg666nذa`JEEŻwݻwե3g+B7n3gA o1b9~{E%սr띝lv*/=K{\|ƍoZZC{DwرcǎOO}ٳJfCeffD"3lذ1LHŋ[n۸qqqbX 8;;{ؐ;WJ!x<p#\=B(%%:((~X,wrrڵkצM***,YC=GR FCCP(?655uqq455sժUӧOG[p˖-!UZ[[UTTARX2}t9r…  BD<X%!TYYo*ٳg `466~ggΜ7oB߿OH _tR5g eO g܃?$^Һxd} ^ MJJ}-Nv횏Bٳggp8qUUU'']FL&ѱm8V~d]\\ǷH?uTkkP(PA:OOO&&&rbPSSӕ+WB do߮7g///i}Oϟ?'__ ɡ&hӦMYYY?GQSSCF!===ww:PyyoFn=ydEEEssѣG9/TTT>|xܹ M(Q( ..\@ċ/M8 }w}JEsC];.!t]%'''|CC^wSUU;{lBB¤IBiii***71ɘ!'|sH /w}}}bWX===IO>]TTbtuuqdzƒ)+++|>.*44ߟN"jjjY,FPPP||<s||͛_xǤaׯ_| ~Wy_G-9l׻h4[[[*zrʕ+mll ȓ:wN`2SN6k,ggg]\\fΜ9b*WvGpܱQ轺w^f.X8i$6C]04Jz_W꟱ss ox  }$u(xxn .\s0 `pA 17 bn .\. endstream endobj 779 0 obj << /Type /XObject /Subtype /Image /Width 880 /Height 171 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Length 34357 /Filter/FlateDecode /DecodeParms<> >> stream xy< 3c-,EDB(%WZEqs[V7Wk%{H)JH2u}4!K_^FNhi]#)$Ze0KCCj1 BVr`o tRG 'Y~VXCoҙ%\\\޾{nq'=edJLݵee+u++/WWS:~TLLBGg'%D;**mN-7"ᓌg-iiOdg8Ϭry%D(8xE}@/ @#ic> {?狌|¬U· <ضͿy == eb۶-;}N{+uwed/?6.Clj֖3O*G>:^'E歭(>Px[@YJ)I0%ZDx[M=>?q5cؿ$DMM*J&MNhx,SGgvj57h{wtv$=U5kJ7W;w?Q(j!w66>>Ѯ&JA͘A).kf@P(z KI}paBB%nn457/Yl{ CU">9`cc".^__/",LKW| `@Ll2`J2>/_BbJaaneef[6o}Wȝ֯fDdreU& F c \@ BGYYA ^}}6繹ee(>PpݬȘ3B,[n(dӋ4T7nE'=*}FX__ RSG(ؤ0{h^{j**]CjxLVI̓i}*j)L70GqGx޳_qZjjکS^n[eˁОXRr +ګ::ci'&& ܹ*ںpl/ʂ6+B(KtR*XspW_!1st4խ$>y1gS__4 (qh<}:84?Tef}ѷAKԥKRN@xغ Tc3x?dMϟ,={NuL&_|oѢu?3)*?}KQ998Qxxxvnnc;HNZeexǟXYIܳ/~12pq&ɃiLm0M@__CWW;T+8߹_r,\]zr*+} T뗅8D[gǟWG? m8CC[uE ,{| P^=,ެyHSS9Vj>co?\"ɉqS S sCn_&%f_ _or^x>|0k\t  pp͠_㗬Yblk@M`1Nn7rxAQA u]6҇Dڽq#?/rr$ҧ>>WyXa刋 EjixZ,t&SL".)xn}%Ih< HH4]a:w\^~ޝvFߍ&t5fim9)NhSO1€L&LJ/Y$%,Nyyiy>K S'OGOttv' ^pr:  22Ӿ/eu hC7NRBLlӟƾ/MOuƍ8I/?7[߾8Z] L*a0vEee%ee%|\޾KL nnN>>|QQi~bu e9ϟ?vyٳUsxq_.g睞gyyoYYI8ϗpqYQYI,qѢe>>7\89AtzLH,uLJ~a⼏NXlͯ prq b1օ[!v:Su,߂g BW|#Λ .1[uvhyNGwzzzؿr`1m_ښj^Iq̜KwYRIdJ5B )FPx//$3c qL%..^[[0'!qT0´OI̟ofMTrr{898~_F궴B]c0KII+,ss߽;65QYS#5eJarSYEDKKd^o]FR__Ӎr o Lcӧ/|i35cfFK;; ?,ѿyӇ33V ))?0{ƍ޵_]) r&/uǎ/7X'))y[Rx-[S(xAA l~K${:w*C<P(ΞXL&u޻>m_ƤjhHJKnJnt"v=J,#~E:cirrI@Ow75JJKn޻V-<~-_cȲegN ȄgoXԚp'ANW"<T=Ќ'b ==ܜ;v89uju5*"@XX BWUԔɩLDVPd-)ZZʂLܲe5 &&URR\MMQMMYI}=qCYL!..d٪W';:99$Xs玶}MvDD6ryVYnáܹ~pII]o5޽4i HtWLLb>x_/<R=?4xI'-4[HⰚ9PUu9zYHO:︤SLB :t:w\ۗ6[o]kGOWnvmD22S,a5#iMx6׷o8qg{'=;}w_ /|S8ȓ'JJ#(~jf05]Qt\>~YNX@Xc!WB$YX'$<|C@H-(xvvя#z{{yI??KttBV(/Yh9( bkB)F3WA1dׅv#vvLhhpp/Ɔ`M\@YY+,Fj>}*dh(ק*Iy.~ϫ?B/Y۴tuv6X"=M~*j(kק*#91 B]σe+N7!48|9io05ǽfIv]/o,ΘEWn̜̯ ؙ0E .<\B1Nu>t46Kۗ/ W"nKd|y" Nttڬ(L4iۺu uϟzzn]F[ݍx ]].Nи8Ʀ&GPp|G2nn3jEӥLcg #\\x^oVPZZ}!Ɩ[[[N?{IX7--M>> ұkj*44ԸommTP+,,J71&gaaWYI,/\^덮_ߺF_+(}^T尉[YT+?.;|pB^B[hthF܋isG^Y^XT{?nt==)1)4=`&a4_a>1c}M='Vm\5SPjZWad;!$aBj ҷԏWQ6Z4m3r0mִ5W_?Cȣk/LLVW.!joy=,L]%á .>]FꞞ. Ǵ&)bJJ3ȯ?XS[[wrڱfa{{ǎ"7޽7d$:EEW4͛ggOϥή#;󗮷5q8 %*:ee_g?֛}pv]6A,B!=X̭3]nۮ@7k}C| MJBW|f4~N;iom_`X1L[nյqAzjnhaX_`uKSzz&& H ?H)4ucJPB gcmLLxd0FS@ ` % %2iJKMruҡ_cma==sRd(LҢr=V\'CJSJdҒ,U.%Beovw]_ttOܭ·@Wh-@ 4+BGƍ#_U5 PKO)tj -1IY)CpmS)op^z%0)H:p,B@Hl~O\nua sd"BCի(x4Tr1Ay>F4\z%9߈#fRҿO44XL"C`"*C 2h@94}ѴB~߈}#~ߤ]`@ Ș 0؞5,.@ CZZZ)S)$$$%%f͚~W*++ׯ_coo/&&v 277ݻӦMcggWSSA?~,''ᬭ[[[6ZWWWĝ;w ?8,%%ۆiF@@(J@&3,?̠իWwARffGTq_D"… _|&+W<HII@\xQVVVJJOAAh"*셅GRPPHNNF}ئM:::\]]KǏ߳gPPPŋ!7ɓ'mmm\\ߗJKK611ܷoHNMM?ܹ~@Xrzz:r%##͍޻wOQQQTTƦ:_~~~ӦMpUFf CYB(r$Hb @=АHsi%F |: Sgy@ ׯgΜy͚''@MMcǎ9;;<{Ν;SNݼys[[`:t޼ycaaQRRrţG{SN066 D+~;uꔆemmmmm ߿7ܹNMYl1r;...AAٳg#g&OXExx 22۷?ڵ֭[JJJpwwuVjjݻw%$$l2tS1aЀ270clw/%fN 5斮$ENycih']gRbm8ɏy~]J s+?B annKɓ h4رc &88x…HpsA))0GGGUUU9E@llNNM6hCC+W"""lll'N;w-[ZZZkkk555dmm=o򌍍]lټy쌌ttt;w.`kAE aի?U- oq5[>F3-#[&4ʌvK&2A7Z DD"QDDjjj̙\ H555H@A ͎@Pȥj999999fjjjyy9r@>}r}ݻ'OF| !!9ʲ & Q!555uttaaakQVVЭvZ!̌!d|Ғ1.b`z: sZFS|bjjb UUGEE%%%-Yd֭&&&5wyyyN ssUV\RBBСCzzzǏc09.H$~ gggj@n޼J {Q8 ==###ooo$~`,^ȑ#&&&V={''#Z;v X?4of(ˁ%`$'D@?,XA;t<{&:giEBBg۶mjjjcccggg+++ ꚕ5k]0颪w+V#!!&&m۶?322r{ܹCYk׮}U'OL6RWW'$$tggJC8fjoov似uttΝ;sssٻwo^^FLcc#5G!d<:q^n#goCRW|RTT/e֬YހB<<R?tog1_y5 _ᓞxKM Ioko<4ΝKLOL\LMAKV]WWĉ=z^]k4{6"eEM͘-@ ty葹C6aooO20!v qr-=pK<R r//ܘ|}rσ96%'/7S$TW*3Ɯ9NN}}}$$ ]3?O ?U7}|DG|6~*%RN)'GBLa` rPP* MM k<}lŋۛ0 @k1"],,,*++n Ҫg֋UUUgP\.~Wq/tq౐cnq ϏxYrLfa!QQ&iƍRXD*:D_Cq=ZZ_ :~dU1Sshi"~_p3"bwM}yAǏt<ņFo[ [2*Vh4AA'I93g^;uJAFuu54'KIVUcЭ~ ))+W㘘{RR2 0`kj*LMWL&H,b|]IYJs3itG)SScӝ+~[ɥP(ileZZZϟl1A!/^uVEE> R(N)nܸ!--Mb6 06!FH4F6Z<} (twu?6Wo.%Ly0:(F\8rNÔ LYfH hC* ;矑cc痦|2b3%ee= .!tPP5uC*+?7554ŧٚ@7n$؎ c\ P[[UV(dž"S`pZmZg6'O򒓓}7m"߷>}t~,[[[& B q1Ru 8494~65$19v5uecgtuH͔_ 8/_ (͜ 4)>-<,,AA~}άYK h3rrp~=6սx656~[:II+,߽[D]QYS3[V099YD]\X{G/OշnYQW?DEVlEX,7yGXb=S)޽N5k\dd=|iY *,RV|tmV&P(lh wFFRP.*x C.Z,!1ի91h[Ă@ <~Z.\pž>jbzzC444N<,/rƍӧOdww Y␵W?b/^'M1GW(<;je\r1/+X_YO& LJW6?n%~Cq&NtQwO7''NN==Vch>P%"35utv^}{mmCV^'gCSrWƦ&33ݻ83(d`࣌ ><c+((hIHu/_~FXx2''5˗}"&; yB}{}AevvۏcbL:=11ѣpAq4u<0{YQ^J[{wnBUursvm߹FST9?~)S][[秪zi77{y֭["""...C23YYYڕtuu$>r >vvgϞdirr 8؏c F_8pMP<1^d[s.YGKKOox+WO|()Yq/66+WX frsh03vP\LN}ٳn%6_"57wtv\\*kjVm}Z_⢷Tphۂw#GWBQ(6f1mc C&wuur ?2E [b8^`*~B85Az*5Y? 'b]v-ǎ;9 ,@"'EE樨([[ۙ3g6oSS FgillwQQǏ/Z)>yC !-5qvЄ (g̞q"gv֘]_U+*O?1f `tIzãD<TcWOvX &%33wwvp X/^m:sgssڵh4hsf8qDW34.ѓ'ϝp e񎌻xs{G77mlj  a*+?75շ( ͆Ui8YX&*:Y*" 7[M&3e<< a--M+q =iE `ndbi_ho#kaa,^&..gOR40j//ov\lڴ޾gǎqqǏܹREE̙3MM͛7[[[spplٲe<'7}ݻwԈo411K111y!eooo{{;gD  (!&N0)ʹ1vT/uo,k[=:"9Fx͛7oތSW266666HEEYӧ,u52ضo߾}vV RwXgann>pmׯ:uvV\t)0ۼm6NKfbb(((ptt|7'NSWWxٳ/Vr@ Ȉ߹sgSSSOO͛7Sv  ӧOo߾kjjݻqquuᏠzf,>}TgiijժF++78hhhe˖6+JK455-,,455h4nnnn>>>>>>4M=.++C~oNg2A=V\̦'o޼#<#kk/UZZjmmTWW;99!---acccgg.@P(!cb0K1h@94}ѴB!Q،rh}ECKta~PSS hoaD}xyyM>а055^b磢lUTTT^^$FFFcX ñ%quu;wƍݻgjjzQeeeQQQKKKu͙3êpFFc(!:W'%=NT ;S%HHHl۶\MMm͙f͚eee!,,k.d Yfae˖^zt |&CC;wx[\\\,XPQQ9{5kDa9[Zh?}pή|o~.s 0?)`f̿+66vYN<5 pM!WCG?a %_g޼᭭햖@&%q0)g:8D59`G Ah., 8˛@U&0q4&2 ,))zŦ A K+ѴҏRbiN`Ġ@q`д CKñ443p)quI̩Rb$ @ ?DKK~#c+!.!2-8v$dY Ze0KCCjaհ!R UA&ܿr!_@ 2!W:0@ 2Q7&.FP (!LTxz @ @&60@ 0LLn~L'B(Kյu9"$&QǯIŔňL-)JGKK-n7oP~`ৰeg_T^N!ɲJ(~%%=ܸcޓL\{㊋K}f2 11#?C22 /B4W& Oo$ $hiiIN}xyyK2xB]:|h`84  UW0ƫgllߣ fO{AA5%%utdӞcc2|J( //PZz6sʆڽ{z"H Nbft䶰ƿ}NMZjخ Y%'DkWJ,MN]7Nl@ $#(1XowAO  9ynqAA\<\x~<#ևMB7Of-Xr加ׯ\\abIow%4m9mo_߅wm),)Is1'/;ƍGZIqqS]*9g [{6(n "UW/%K"o񗁁z1@z{{ r(Ҋ܈F3yr^'..=0m^;m;P(ǏP(AALTX{' qii''6 _ :e=LM̈0@ɯeV>eTUj_ S| WXxÇe|OOÇ?KJlmE,y}wx h66bG7ojXZ^W37?r%LںƍzA M >@MMBEo6}tYYY77$}`=XBNNnԩ'OSWWgx~ullwGPR(l={O~~FhTq0]666,⥥EGo޼WEE\\<&+$%gf9;3.P ꬩ\jSk'`\@'f*((cHHȾ}222tww=}4111!!at4cff&&&vuo./˗[XX|׼ n==zѱ ++f0:CB7Jdg*/_Wz jzUJ 9rp66rX3mϟ}llZmlV{y5UUPSC 3 e`FP4TsMMsm$M `44uuQc`v,Vh4G`8@___OO=hoo{6iia{@||X__ߟ0.=@{z d*+ыjj: &(trCK5:@ 񍬬7l0jrr@PPرc+(LHHӧOϟgz_`ի}}yyzw ^9x%x)ʃ:f:5LBB:WgKJ|HdQ+%%:vv>'rrJssxj?}BY>jKnL!DIxNHv7rٳ2ZZr}|CFh0;;PXKDGSR?JWG^StϘ1 Dh4d\ &ܹS@@H$222EEEچ){iӦ!T>|}CAA;wn^^ao߾A ׬YSXX8ڤjiiQTTd\2EEEBj/+o߾ɝ;w) |Z3gāfΎgΜaccc7o,XzFutt޼y3:0L*|9hr:ce\=Lki>}*vUs硡ii=]]^^\\pa8P08ڲegeՅ`{X5r8;;58˗{ʼnO=[ݻ7<<昘ุ dBB›xy==;;FNNPY9##&''ٳd&;)ڵ[NN;""Wnk7}Cs8%8[Ns'BMIvvG d29..:::6lᑗqĉD .|ښspp줞ZZZZjƍ,x>Hٰa~VVֳg̙ ;@944@&idr @UUUn߾}03?fIY_ LzSTll%e%v._ɦ 7c9AA 䦀6ɉq1̌lrrn6m 暙hts͟,*5bqFH@VD)glmMȝ d3uts]ĤTUEz> &f\\<66޸$))ݻo޼2 [Tto`X,VYY9=kpVV 777ɓ'&MعsgXXrϚ5k7`ZZ ''}Dbu SLޙbn݊=<ninɄf!/qC+55=⮮VRWW 3g΄M:ҥK'N011III$$$lڴOUUnnnc)((=zt߾}.]k,==ŋSLqwwg@ /_Nghh˛|}}7o<{yy)))?~-bŊ!!!+Wưuc5XxqBBBOOB]t)N d9sS""" %""ÑdggSNnIc``&--mmmD #=<<\EEҥKvvvIIII&=zHFFL&xugѢEO>{w?` e-D.(BTޔjQѦh_$$$*7K=} ?;*fyq3Ϝ3aΜÇ%%%IIIFFF~~~͌-11qɒ%Hiii]]]榮N"nʨ "d GGO>|9lQIIFΘ1C__nZs)}}}_TTx۷dZ}}ŋ988XxgyC}HTUUFyyy;;;4 =J$kVUUBCC%$$,YR__O; F_pA>>J>qUz{{q8GoooRR͛\zܹ `gEEʅ 躺ChtSS?444y`0T*D" qΜ9șRRR :D#!!ÇA"""C3qqq FYY|___$14J_aa!3⑓9|܆@2Pʕ+'LcggG&I$ -sƌ%%%ח255uvv_icjSRRbccbbb  鱅˗/---#""󋋋cbb0LLL̃-,,RRRˑUcDҌD"Q>z% 940!!#gVTT0*`7AݳeWWW'&&ywuuP(eeeeee}}}NzU^^^ZZ''g^^y~~~DDDkkΝ;544΍l0'''88!&&&;;[OO),,8E|||QQ*innӞ;vg)֖zzzcbbrrrX찁-^ʕ+,\NXV(!$IYYH$2X799~???$ԩS##9:HiӦM&!!1m44M nܸ >}t"%DDD_jlls̙cǎ!+͙3gժU+999`ff1KJJcccϢQYY60OOիW !),)OƒYBDDH[,P 000Q Q!!?.\ȒA@@O[)HEhnjlhaDڵk׎3FPSʹ(<rU>4NfnWUԗ>A *.PN)/gh 0bRC?7$s"C6DOnc>k TCPB2H2/^d,cŐufBUUB $իQQQ?29}ʺٳg?ڌ={_ڡ6#0YQAA55YYYٱ͘>''璼H H7aҭ 瘚jEF x?ȝ=hEÈJy-s*0 ! V7JdTUz!h"ݼya``pȑb:/#WS _foNΥ))EEwzrӧKں506Dxa56q3ʰ7P^^A Wa3l97ǣr  }srrҧG:?,,j``ĄҤqyʦZ /VTQBB~||/`0h,Ţ'&B<Ϗpqq(ބsgJKIK <)^n޼FBNʁ h2װ:h,7IL|fŋ:1_`..**bD"@LN_n?ML<7ϝFs3k[6!++>&TTԡ˗Q\\6wMy򝔔ǁYb^TB A`dbNsQ@I.MI;.ta0iMHo8G@@G||<.=x,ھ^h4򐝝#7l8r*/))TTiN־(0^=݄fyyɟv';vsժ='[Z=eǎw֬ٛrIwf e) &SǙD$tsd0a itT*`,o"d"gLX2Hec4A!q&߂~wlݺu6)'***==I+++O>]PP~ɨ;…*o+X0p޽GKkh(|}Wݪfvx!!Ϛ%ki#3ʰ7aС_Ul__߶mkgDϞwu]PX ߹s"*O?i'%E3d T(7:~@åF6Fއo9Ww*TGkZ-AAԔƔ ? ەrJ=__k۶ðj8px<ӧ)>T1X,NFf:CJ7*2oe=yz?oY666mrhjj`HA4cι;> [wO'61"4< &-v-,G $d%VZU`OZʊZ]d&9^Dd-M aF@`ôi& C H${{uwd99mmsCCk!!_gozc2Pܷogώvz*B~zٳw|J޶VAAm)sܹCP(gTLã>{LAA9bOYr>R>յb;B~}:Fc&b1{,cGظ2خN...nn)Cjj2ciiw^ QE000u Z P$ގBPeeu֙&&&wvvup…nii)))166}o -11qɒ%Hs68777uuu֭[W\ɐի222/fm<F^^n]PPP\\ձL{-]]t^Ra'o0O[CuttJfKӞvCҜ\[\] [Khbab1ofVEE _jjḏĉ̙;H!5/2334\ʼ ޷=8-(ybXZZ۷ݻ_=9++ !=CEDD󻺺>_266577?|(2 fhhs`[[[,dGxyyyxxO3,,,\\\VIss@[[[ oy_/[LYYvvv lަRRR0~)33ŋSg#nnT_ߧ5Y4[3c͛H佤0äkMݭjkO56~I ~!GB"D4:ujyyy= Åo޼H$ڵk/b(ׯ9sرcJJJ˖-kkk3gΪU333rrr IJJ}gooo Jxzz^xT4/:thǎ۶mCӚ 3^vwQ]]ADeC*}}ħ==AA?d¼kr*?ʰ u޹s[^|Ixhk[蠞G }Я 7oޤ.[NLL?sѢE-g eeeCsF lÆ 6l@k׮g),)Oƒ! IFPSʹ(7)+0160q26sKOʨP']? jK\Aly A?+j!#=:1!3[4A!HvLwF$RW/g2<;\<" 1Lwn: ;# E) c_'rL:d0 141~ȫv?9-9LCO{!'LASG ߘݛcc(!hۻg/U2-2A7k֬j$FϟĉiӦ1rմ݃&{OA ASyIK8Mnz]ii'OwKNN!٬ PBTjM x~~~iii''w!bbb?See%֭[7ntuu522*,,Lӧ,XP\\ 3gNSSϴidddNJ ;:X005AXZr$" 9݄ɘc6hq,AfްTYDST"fL3;1*y˻aZ8Uahl8uww'''jkkׯ_sX@DDϞ={ ww'O|aeeeLHHݻwSN8%,,s2˂V˗+((0U0#}[S3+!v?91(d;Wl b]jDJ_q,Cq췏MOf=,'q+ғYrJyzr3bZ(aZBAwn!o”+$ܥ+`0ѡp@\\܂ LMM;wmjj̞={Ŋ??˗/={l?$55訩QVV!| Џ+CnK*'&FZ3IHlbψ;ߤ<e,˼Q[u-,{|#ba#?]͒Ha0שS4557nzkkkՑs0 JHI}{%%%Çab'OLMMbBBBWP(MMMvvvp&4:8 ؝ٳ^xttt͍TTT ﯨ̰W^%$$byyÓ'O_|yҥ }d+A4vŋݻ@___@nn7:D =J^|vhooo*300F]_V` &qq춶6))cǎyyyIII%&&;w9aQQQ򱱱/^Lgg綶6˗ttt1<2(F+1Q]]7} Bd aaaSSӂo)$[GGt%%%4ֆd޺uKNNBiii2A '''%%%%%+WL| 1e/gX/_?>pٲex<dɒϟN>9A@@ 22ÇH3Dbtt\^^|r@LLkjj(ʉ'&E ˗al8z %A̅Bii<@>***=ŋY>xL&䴴mݺk׮{(ڵk[[[mll|h<{,++K]]}ݺu}}} 1q*M55Ng֮ ݸщCYWԴF@`aDFFҚFeee>tuuEDDyPuuuZZ&Ӗ |kaabw Է+<==nݪP Қ>}ҥKVqijgzyy222LMMVXAۖQdš5k䰁555.\ hrq*.*7.sC@?qS+}QQQgg-XZII Y}ҥK ?~]׽{nMMMuuuAAA__A{(>>2C\SSSVVe˖kj?S_ZZz6ccc*3/ d{٭[WݼyNXXL_Ӈ+WVM| LF666Hʊ6ꫨDMaϝ;֭[X,~ֵJPlmm_dp8Ĝ}IIIIIIoo.NNΐ!!! rqdvhh("55ybBBM]]ݻfΜ޾}cǎ< Ͱedd={ҥKϟ?g` tyVGM9PtS6Phܹ))᛬, %% f\ҮhVV_g:NHȝH dvx\\\rrr#BP FVVv̙_477"MD"q8["(##4C"x...|QQիW/G +G.]TTTTCCիRRRL{rr*ZZ ,k Ep{歭ͷnNpeBBBoo@\\ҥK|</,,<00rA+\WW`H:;;H'IwZ[[Oq`S "ɚQQD~칵pBdzJJJ xyy [bb%KҺ ,..M]]D"!C/ hbL2j  l""tteQM|];__O: (HL>t_ʚTTTTjUW555"""xU(yy1wuww'&&~׳,--l`H8MMPڮ]mյk..)ٴll߿;00sO?!9ѺFFXa^\\Og۷m8C[_D& < QNA:XGXH#%HEEE,ZH3"=tjKHH zTJJ:;ۚ^hX,S`(fggG&ݻGtwwjii%%%ikkcQ.]5wuuqqq(**z ,..b]]])1&!innnKKKmm☘;wЯScaawD]ffffffFFƵkh#H]]]Ȥ顁 ц1J=KI^$ɲ˞$>6!^PPF]eZڻMEdd4/ȃõ64| *ipcMBBH$|rszzzxxxh4zhݱ |Eϝ;ӧOfffrrrox4 Ӈ}zCC2MHHhhjUU}3̚mnhnhjj @tu}jeBݳed>>> BPyYYY#eaaq;vXYYhcc؞Ç#C0#""]]])JYYYYYG& srrbbbhKm755/**=}'88xǎȂcYOOyLLLNNN{{5~h`/rJ~~~ccc@@xb]``wǏsss'%%Y'S-O`7jLut̊xB |J ֽ{d~(g\\\6Jx(411:iRqqJ\\\FFFFFF]]}ٲeմdddF>7|ϟx&5y/_>ksc=|O&_a{6F"D"ŋtSN!ӴebbuV33311ڐ ߼y3H۵k //ѣGrt= F"""ׯ_OMM5669s̱cǔ-[6gΜUVgffFEE2-ORRWEE%55 X(={x{{khhTVV sՆ( fؿ7Ν;ui&]FFF~cU%'hlVT 15Ǯtڶjݜ\f2rgk{?q;iZ66陬^-~OwvtlHHH竫pb55Ap8BAAAZǏ{{{aȠ΢v]]1GH۳ F_pH(QdY֬YceeuȑyUWW>|,,,l|WojD"sDannf.-=ѣD޽{(󍍄Dfffkk+rhaa!FH>###s=ztƍ%NKK3ʏ'zѣז/__SSepjןA4nʴ]pH͛7۶m;{۷o%%%g䄼Nd,ZvpΝaaaEEE555H'i #]%??_PP Y |T曚0zzod1w}=__$܌=vvKl(jΜ9s`rrr"_vv#(EEEEE1TZZJ|r #74...ooA;1҉xy 8@lчAЄ8[[[dٮ]/8998]TTDK_tiH;Ν;eee޽:th#]zzzrrr]xi7SB &8R&AAߎH$Ҷ@tuu]xq͚5>|-W$ b}EDD|Z6!!+RMMͬYd_tL`l$hvʁ ^aa!Gh!!!妦NdE--((蘟%++K"hWж-W bA4fzTNaJ&a|11׻>|x~~~ׯ䴴pqqQUUݽ{Хi/^|e˖͝;111...RRRv266FNMYB A`dbNsQ@I.MI;.ta޽{kjjDEE|}}JJJ\n]}}SF)DJJرc^^^ZZZΝ̝;~[lYKK52c]GGGII6MYB A ($n0x^4)M...?????ϳD(++6O,YdɒA% @+>Z/_2w 2ՂJ UN)`pMƘ!)n e9(+63j$fnWUԗ>A )y|2*A%)l A8CK B2'8A<$"-[#SA=88ƕ ʳ1@ԋ!1 )c)JdHQѐ#b{hJ)&'2b  +0B ס  Nʁ  !.o b ,MY_Q V(! qc(! qJ  h\`  X  V(! qJ  h\`  X  V(! qJ  h\hd endstream endobj 778 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [122.809 322.067 129.533 333.538] /A << /S /GoTo /D (Hfootnote.4) >> >> endobj 785 0 obj << /D [783 0 R /XYZ 122.806 747.976 null] >> endobj 90 0 obj << /D [783 0 R /XYZ 123.806 712.73 null] >> endobj 786 0 obj << /D [783 0 R /XYZ 123.806 626.224 null] >> endobj 94 0 obj << /D [783 0 R /XYZ 123.806 490.849 null] >> endobj 787 0 obj << /D [783 0 R /XYZ 123.806 316.338 null] >> endobj 788 0 obj << /D [783 0 R /XYZ 141.734 190.575 null] >> endobj 782 0 obj << /Font << /F25 474 0 R /F39 618 0 R /F16 475 0 R /F44 651 0 R /F43 652 0 R /F36 596 0 R /F45 668 0 R >> /XObject << /Im23 770 0 R /Im24 779 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj 799 0 obj << /Length 2229 /Filter /FlateDecode >> stream xڭXK۸ϯ-T֢ Y'J6U8$$L2Ix JDC."h~ z^^ӱTDZVk/ab$ADު>&bjf44"W\\,Ufշ+E燞:cW>z셁39wɲ ﷫]sM(0Qr&cidLIH${N%R@%qXơm=`[,uӯ!=,@8gYB,X\wM#InGi2% k[E+FD=k^[^:ƙPrA jQ:iDnUI-g8ھ%I_m-HIK!~ػrR!}:ⷍ}nX KeH4spV+CS0!Ned#-1!!9ٺqf QXa,aC#metL^_eoZ$tbH_v}Nz:;JyKeX+"%u8T [(2B!]]xCG8L R,b,rd{VxQHZ0Ices__#v,ә C.~e*YbCx[w (^vNrE<˜eO6"4.Vowa|dm+X؀gQq^wAmmO.EΌ4(a {D!%)(_Wܷ2w[Qv4p=}2L(Yd*og0:%i=yMHYdiz(@{{.JH:/OC$?UUՂwu[4Rna(Q5lץP6?} @Ȥ$~ t TYabyzI=A8=;)7ŭ 2Yfc(U -nM@qê)-#RM+Nƿ3EXU%/>3{n\,㘎w4e(\x|rϣW|?-Eh+U 8y Ē-%릗}Ivn4%=шJF@+pr=(<(|s4VN4"S0傂w63)(Xeۺh r=_*F+kw4Zb< Ķs|1UA.˾ܹMQЛ;m*\::si`ybRN!q!2jA%pSA'sUC#Olq@ht=V릑Qk]'.^iV EJS1/T2:(]ˡ91ظEZsxC #ڷ0̙c>Ŕ&B<_~|n;!銥c9Q]y9dtӍZtްSiSb]B}lEd Y-Q[PPs R &9U%; endstream endobj 798 0 obj << /Type /Page /Contents 799 0 R /Resources 797 0 R /MediaBox [0 0 595.276 841.89] /Parent 740 0 R /Annots [ 780 0 R 781 0 R 789 0 R 790 0 R 791 0 R 795 0 R 796 0 R ] >> endobj 792 0 obj << /Type /XObject /Subtype /Image /Width 984 /Height 306 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Length 53481 /Filter/FlateDecode /DecodeParms<> >> stream xwXG^(` *Ŋb-$k4b/1gލb%Fc;oǞyQdݝݛfggAAQxNAQ: $Q呆8AQBն=wޠ ] R;4p((~ZHQhzW̵rTJչb(RTӛjnRJBճgΗR"E"ڨ_rp rߓCR=zZK_^|y9*1 w޵Jl0ro޼D͚54rbhRM6Q|'pX,F yI!]ׯM'T (.6Uƈ PIIɮUqv6Qzˋ۷o3::Z(r\EL&Sg趶{ ,ԖgLd2r2s%bZ_O' GWԹ*Z[VdUE~CVH$vP!= ,Ŷ6ġ.L]He"Ρ ,My$%D!É}OӌD"p8?&VŶrZ'~d:mVt*˙ߋ'O.gOOԔP(*777>>~ڵի߼yS빸2/^<*-efeX[Y)Y9B==~%q:-D=.l={ʕ+uR(E4 MtvT˧%ݻ],ԣIǎK/^uj"/3gO{ݱc͛ׯ_r媟?͚5kڴi*H߶mýφ_i5?%X_ǽ۟ǏkIRtkhOZL&;t`M۷;gvbbIIIm֮Y#48Hq$? K3-'ImZ'^zgbnn5z7r[xi6W6 EUH 'NUY|:ueCyi! (N 'L>=t3f 93lYȯfU{Z*IWC¾4۷QJRRR233߅`q}sE .=vO3OOæ |`7o7r[][hckִhק۷q˗/ m8~|m5ϟ˖5h2i&ݱ(O$h?bhZ_H ЮOg%CJ=Ⓖ6;f%1 (Cj{Nԭ窲ɋ9xqot{&ʉX$4v1-f/ ib1-ltɒڭ[xX;ĬZ̥hŞj/mna}̙G;~Xy5[[;{vاlP|1.! ukȍ6llA;%zO/'Oo>T[6==;##ٳ7E<7Ww9aD]V-3>L~*R)8d[1*V.zrNN L4鿻w9paD"TPݻ?/YܩS-[lۺu)fؿF1W <qï.c֯ūm[8O:շo?}9s]|6lwϞK;g)K 9-̄\\.p9BCq>zZ}a֬Y]VVV%޵ixἭ݈A5ȑ#"ZSJӴH5.WZe<א SD8'3(WNg%$ǧ&zc`lnY=/DeGs\zmll""#=EaOħ?Uۇ77˗/(߹}{@M=tݿo0*():c'N8mڴٳg-iK^z7o٢ky⤇sɊu~6ͽ[jJ wlwovM9UɈT5t}_'OqwwWW}}}7n[}IJL\"WwռEǏYt)_~@6m~|tt SRRƎrL`^.w߮}My;w 126nժڜ +={w}WC:xPv85lpԩ?>u 07w-Z6}zlli4XaaÇ(jqԮ/J_|Bs@)\g!@N|&&&+K 3tm=cף6󯞺Ae|GLȬLO6\#6P1:3F֧oݻvwG%+l8EA$R{Cvc9+6<[>zBᯟWj-IeLLE%gJ"♧>:``ycd _^~>?~|jZIDm%p4 _vTL&b1EQDm :km>~a5tsS{3 .O^33szz'<ޭE E<T"oCQpFF5mmxuy7fB̞rx)ͩRV˯ aر"HGDՅ_,:矊 lFv>FGqNLMjԨk4M/^soÆupQ|wi}8q⪕+Eb4Z,ZD9X?==mjccc|[=|ߥ WS"# +4hrss;wp\{NfffIII{v`'ґʤu]xLV>;I&ԨYSbdlljfX֭# {_<s&]Qm-un52)#v.1hi߈>~k:)537stt|AzGJms bxwвUI&kGa 3O4K4?xC'EDׯ}sjɄ/[6l׊KU@oٺ +dJYY0H2AZX,KDՋɃ&rt //K]I?-XجY]O<9U:$9EQFFFbĄbc9%MMME"ǣiJ܌:|ԯ_Hfݻw=}Lpp:u _&=M2#I)1ԔTK+Shcbb8v}onnc뫼tDPФS޾}ۧw記2l՚5Mg0]CTUשS֮]`vTmNDL)"wGӴXD?p@e:uZlɾ/Gȹ%6/엂 t$7ޚewe3Ǧb 0022pojww.EGqttd73GT۽{>uյra`0,^Tvm(ϥ~}fff666J?J"1M(ͷ$"a?+-%%%)BGF6vwW<ȨmvwnzH$ӜӂѰK}~iNcv.^UPاo߮ݺTeie StUdLj055 wp(9Ph}ťHA$noQZtvrʶfwR'v j=7E֨;*Y(0 iRCEa-HOfJZ<3===%%N:*[ CW\p+*GPȩe(%9%Ȓyf O щuZRR"{{}|:P PK$EQEbccc===>OQ0b8// "]u?|&M<~߱pP℩%H>tX"zҲqqrxX@dRAFF;k;jnfuٸ*-c|vpEt(5PVKP!lObvx N"HL <ԋYf .b_tI%N%6/!N\ ߘ\Ȼ"\MzʄY7kְn]Xi*8m#YeV.>??Zh:هaeeMx]ZZZBB;Zeԏ2qO?-f-[8yĠAzzRtYϟ?ƿʫw~Ç ڵk9- +F}Pn~)22yܿm֣G0aÆ*2ѡCs={1 mVTکʚqek>bҤdv "{ަƙ7j<:6mK^-'<^037akkMxqwTS 34Mץ>$d}|=|W^ո8sWWջx3gN=#cch<#}= h#̱&/)JHqR"% #euh׮=}ztyg%$)dD&q8X,LƮ9N:͘9s]炃h1B4i+hȑ?:4kɓ'111Eo~'/5r522d&\rC$ĩvҧ kIlj@xXRƦVTvڵMoYNiSh>s舔-y)Y 7^qډa }vw%vw_03q˓|s=3Gm~S'Oڭ@ `'_رɪQK,-}G]v۲y… jH޺C@Z x}6kի7-,>ѯSg.{_~~(fo=0סYYYE?iӀ]p<%sRyʋ889jԮ;{lѢeTԇׯ_תU#ܣ {rMQ}n7O=Z)7M ď$ܬd'I1&N|5:yD@熏ﶭ[~?[gwG%+ b W_ϠOc@m+۫m[n~Gs$EE1ZRab1L_(oj4۶ufd2;;\TJpر4M\.m"(##V* mР/ 9*h(uZlNM>ӟ(GiԨbś'O6j֬ausaFf #h3'QԾZzi7:/Zx/u{׮٥KӧTRT3fXh᧦HD85~̙Fd* A@7kZZZ 80YyYY9ȑSMYU&M6O:vTƥhRQ))gΜֽґ#GsqѤf͚} |jmY4,Y2|SL?~1cF1x~tҥSN*_` 2ܹsYcǍ[)6 Z9jiXϕ˗_~5rԨv8{Ɗj;:}P( 9jAW\^byzzҥlFXjJJ;[9SNql+W.{*P3ekg[w'6tPY ;;j.c"-WY=~xZ6bl7ԳHQ?et㐻zDQS*޾o}۷hڴY]&2 HOϠ(¢FIUN9Y9@xdR)elJ(`Y#0NNNNNNNE77e6--1z}'ov:uŎ; B",p(WZ5Yǟȧ*(a>móHQE3Ǣ)::ɓp7@LP4PZe^ufXͱs?ܩD*=#Z^n[jAThH+(*?"d9300urtm[]' ʑ?0f}$ JJIIAUZawjV[g -{IJA%C~C (2΄   t4  BHC   t4  BHC   t4  BHC   t4  BHC   tz{-tAADzmq  (Swm{YӼ  rf7bȕ|~ vAz  BAAA!PYsgtgt2!!??4U}^^u"ʔy>UOAZ+cm"c&8XlSWryז--5 NN ٳ+6%ozD<NM%#FiV<"#_V0hGu2o j/2dȐ!xc+HZ:E+(Fs-ҥS6ԩG :Ah[%̜s`hXتy͛`?9sp<}% ДLУ.^7AAi /_˗pAp _C@^/te^LWWhѷ/nߖ?1i:wƋڅ=ж-Í ĦM=8r$?oolPy/R|<>ŨQ ѫ {w,Z#з/Ξj8o ;OԖ3 /m+ѡC~~+g=@ATlw8L:u1v [`*DE÷o`1|8w, `ԭN#1j͝VpfYȐi``ҥ"­cnɘ=99HOΝؾ7@&Ü96 ׯ˕ am-?[a>֭CL -<)|lOOܸgѾ}Ygh uC=Cq֬o B :j{PLNNhn&%=R!+ T#];="{{Y))E{{P:ugƎ[Sg4<.LC^zz!ѭli(g+==4n\9//xya.Uĸ7oAQ6Lui߾ Ѧ /&]  RgS\GcE7))=gAQKe+ٔ~JK@ha!Ñ˾c x#5 E_?[v4ˣ25U_ ˃AGc7) u`lތ!bddea,8i4|MLT OU  H:j[Y'No+ÔOJD_XUmOʏ,,1v,4ly1%ffc(X;vQ#+‚!3S>'G1GGDHJDGcII78`cŋ,^ ??P)G&&G #`iYjHMLVA@pV){+dhT PggbNŐJA&+ڵCJVjplތPŸoon!:-Z$\qׯ#5]\`h(eChwlxy/=~4Wgڟ%(7~x<ΪS-Z!Mԫ33< GjsU p!JgoڄM}}z5[+ `ùsP'+}Z"7?B!&L@E@(\(]r(W#F@*ŴiHJBݺXB|9,EԪ0t(llR+V`2W%zxl[ 5kb;9! 2~7՞'-'Ox1`m.ʰa5 G'Q)_.X͛1hAeaYS)))EMݻ4o pݻc:$?D 4ڵÍC BOMb5:@uPPc|AӧppΜAƤNATZjLj('Bw`88`"]  *T1f?ڕMD:bo$TΫ@HOAEѥ'kAAD5FAEYibݠV*4v֬ϩ% J䋬^C<##AJmoذa٥!ꕤuׯ%ʁh3T+ɭԕ ׶=2hJ\VQ|ypkqc) ޼\F w@ӌ-֖'}) o p) KƆsKWgʕ+Çwqq9~]bbǏ?~ثW"[nǜ ̙bŊݻ yi[Adq JF"W/| -Է8.0@kQɷ=Wd</Z ׯ必+Vd͙ctႥH,[Ml UzMٳy׮_Ɣù,+n<Æ ( 3L0@ P,ݾ}ȑ#y.$P0]ٴ133qF]mذ@pp?Qm<AeEOSo:uvW ˪=x0֮ڰ!@q{H d|2dii2o車N @o:}\ãy湹_]v=|ݽq֭S|}??/_|ƍECDёkdT[|UʹsyKQ NMKS̓R更fϞ<nSh!r*,v\ɓӋ U._T,.1:yڥfffըQcϞ=W5k֬Y j%2RvP2M3vv7ƎM - řڻ7DzmС}]&+(6V:rdjW\*Sx P5h!66v̙...NAԭ[tӦ گftPw͚3.A달FCnݺuu* |I޽#p 8 4ѮJGz z=V_}͚AAA4 ?]C ԩRR:ulYy(O *җQozqC<._P3aV+q&m=…Iɝ[z.O!*С+4D1խmfiW99zV[ T,:PddMVoˢGGw0>7n4m #8ʟ(6}{TVVݺVm$4_z),_3.$$H(##"#Zx uqq6mZ!-Z Æ]`10ӰJ="m -@aRL7ħO!%T%"C;o_r]{$o7n wޚ5kѣge8; ٸqA]bO5-6W/B@GddT4m9C_To98\pp}{K[}ܥRnHH -,߽sP><ʕV&&7Nq, \ȑ92D +թv/"))}7!! :u:MC"wsr ^nxrr4W#Ro g=\ze?tի:"h,?/z5lYg%gO{NaXG6;,0Ț)5m:wDŋm{"ҥqq?p@ ;w?z鯿a(Tq?~oUgtTԪߤIڵ#d2""}|h$ܵԙPU G%H=Y5j=bz?-<{撙i{J{^!-ٳzڬh4bQ5A[5 /oWܡ֭=?|}EE=O>Z~蛜yѢ9D4qisy&ܼ.zb`ddۻGF v K-[LHKJIJIauu܇ Yޥݬ72d9#r^/ܽԦ3+/,_9ҥAHv6]q~qKGo Rzss"v߻w/iӼُ?Ǖ{Z߯J~NJm`xxm][*O&R ӌ}#\~Ç8tmZAAAG /ѧ>u?Aė5 b{כǓV !H=Y5M4Aǃ*<鯛z*@@ATauu*524   t4  B*!XC_ajW)4͛}[0`0t(^$(()֭0Oɰd Ѻ5U ӉB˗6 ^^/Oa-,23㦥y8: $6 Sa[Mϟ .(n ӌa%%5پ^IZV-Z0L3Y\]VV#?Ͼ4c?M?w 4-qee`{MmL;;.Ϟ5lҠW+9In=ZysvEƯ+G 33?d~}ܹ#h"~#Gm3!SzڵM-*z\.Νl2$۶4iS!Uz\ҩ|̙qfHN.:*-,;鲊 6,R x{w3lJP+l앾ci.T_q^^~Ejd޽Gֵ.m6,]4l'67kWuy66ppx泡2 PtԮ-xQϞ7-N6QQtP@@y{99 =Ҫ\,|>Uk?~sb,TQU޵kSX\Td/^EE Gud,߷/e Z0pr* Rzz.r+ N9ӖϧƏȐ޹Sm-jΖ]9i5Kliм뙊M o۶%QCutO?(Zjס iWн{u9|}ѹ3~Sz'+t耍E@,Ft4 С7V 8u ^^]:{4Ywwo"+ +Ve2lߎѣ^ƍJ:/ݻhWcq~~xq&ILĥKxm ^^]JNca˱{7ڶ5 ^^4WCĉ6z.PBccպp 04(o,=p%3HלY@[EÇ ss=\-\OmظajmֆM,ZTC۶%^Z?+sҢF|UnwYc9v%>aB #o (:^aqc4''Lz2XuJII177OM-b޽{L~^F@7ǃ`֫Pn`qaO@Dq}*zuEF>E,<ݶÇ8tmZAAAw *qp/XKZA_ Y (#aaD] (eo^*AhǏUbUO?AAT 24   tmX{x [zUd.B 1ܢ" *LE4ħL1ZҤ`Ӧ7o*SO Bj2/l޽)Z=</Z{g{u^zbШG?Q6(DrXc킃-4 &0P9V5ML87VpǏvkӦpxU+OB{ mொ'AZ x. /CnApA]}{^K _G͚gΐ hIIN9;W[:ۣGrNݻCB4=F"Ae9m p8Tz쫯Re'k޲eD)?{gT]I--R. eMpGQfqQq'2 2"@٤-eP(vC&m#i4IK"9}{{sZnŊ)S< -hˊ<,'?p noY47嵵xcI?X1bD_y]m߀kh!`0T3 `]R`(0x8 \Z ċO?7CXߋF9S_JrH#sfݺ">ڋcBT_ ) ӧOR9|䑖ܹGRSrs.}M?+um ⷿ,X+.i4ܱc+h=z0v9V>*. Dao-.Vc1γܖ->P^[k鋊lWrW7)tx8~/Xά{ob,ֲ/h&''lַff3o6.W[,ƍQy\Nuu.  dgYGnAb` }S~%~",W@ 0Џl@:Hn.T+C.`g0(?6 %GvU# uukn5ץ7g)JK퉉53gj,|bѣk ۿSzf {?!nO>iJOxCJ|PC e"Q7oyJ t;O*>^yxYG2E,PNj4q  g~!s~5֬Q(4c, ( R"?a%& jjZ;Ap0ҕ+=XuS"11 à̾xLd\u\`$x pw0Ц_kן} #ާ@z Oa@9`W)oQۀxK;p8@Ke`/ Xm`{Ntd;}٤$[om6\d;xВ'Y,JŨTȟ:e-kfYѣW }qb##X ?ɨ@:2NI77}:EtӦKKU|_t&ߛ{fcQQL|~)S˗eeWU[9 ]7\'@v;\ MSo_6:+#1KI}HKS6m2nR^ okHDd 5QKPώ/NvVo-*>U 8 qTv'P]͡kwW+Oծ7lg/ @>7&$wVإp}[̣VYi@bY .u9h V+8frs]-.̑DTR`c?c~AJ 9˳y˗ܼy8,~zObCbN>I[۳ =&]ĹY_֭_so?1'gk-ggpn*ŋRܹ]va)52­\ٞށ^1{B+^_,$<@ w/^.5oՀ)#5B`w@|~#/5O_4dsZKh/yQ~Ai4`VڵksanpGr?_E{eG xˏdqޏwڍ9V+={xjӦM6nzΜUܻ;"O [ H)@ n>'_:ہݖ벊@*vb@ ZA"@ B7u}mF^~VC w2W"#[}v܀.\+ZƭHM'G"ѝ93g"@q(>w=ΆmEGekEE EerdWYE\^=z >|]eeZUFRC* g\vԨOVT$SRI\:Tp}ӧy;4G2M n|b  l wР++z2<Ґ!_]k6ztg GQ*9|1%wCCn~رkk8*eH3"#ϵ*=w !!Ex/0,Z7Y0?ګsqxv~jY@xȯ- l6̘!Y~;\=LڵC:Je k׸8nV˭X8eؓ/'whl'Z{|Ǥ1t 7W(*Ҷ8d źP&:~\E%WSRvVN+*]±eez'}ر+BB4\~ڃ@i{Lɜ?65hbKUU#Ovx{#ܞ.|⦆#u>Pquժ[k9_[i܀pβo%'^|@pNѢ;w̦M[mns SƉ'Lj6޴`A`Z7#^_|IɈ糳wyCl6} qF{b" W˛' a76/94ݭ#gTy&:`ķǍ{7&椣FFi{DD">ՃccO*Skf.Y"~{G- V٧f]5k}FW+/C||y;/@p{AzMN ~+--{O*^Dohy_W_OpmV?!wƏs'O< >Ԡ'޽٨PsTϮYq8p\^n9Rsid ZmSǂ%K䯼sDe2*0SRkx y߾t|oi=:z۶ 8kvLNo̲ R6/R=$ٓ1ywM{qX #1c>3P58mf*$D mÇ+.gW=x}y*/Oqu=SfsPL`J,y*k:t覲T}zb#Q:q]Ph{ &H/Km6~м'ӧ =~<ȑZ S׮qZ-׽YmNǕ}L &t?5s?iq4SR));6ےe=,Bͼ˻z qzYYDq}=rWBӔK+:}vPVfw͖tsVD-}r^4ɡi;EqqÁ8rH$ cǮT.*MۂBBn/.uG(S(**] d<գG>Z.mj G$Tu N @,:Ùh BQ|j7V…L&xDMBA(lJHgH"|hFQ(kh}YINEEJs bpaltf(,`jyޛLnn+TJY(.?^|\`mlG6vN 6yJE+ /J{o~#>rRQђ~!:wyٲF?j{a͵xEScEΙ]L.KiZK"%9n1?x %E0(P۶_ 'MСL lL&~>O,̑9S&"^YУGp{ʣGg&'0a|ng+4]hXuS66wLtCDԭHO ܾ9@Jʷ'eϞׇ0NѿwX,Quut*Uɓ3k2NኈL1 >eDg%=Y_EQ\~?8H#G9xR.qL3gimEG>oCdef+f~(j'?^tY%L4AR)U]mrecu.֮5|]XUy[em- 2 lVk7%~l1ChL, sh[~aܸu޼˃ǀZn޼zWD@Vw ymO*3uQ_s~%znBŋ>"Џ=&]ĹլY_\mDɓٳf.ԭZxQUZj;۳(Fj[v-^p~άG|wiOs?wEvA `Ϟ=ڴi7ǣ3g/v{@  q @ n8@ B7@q@  8@ n:'/u%zMĉoV$;[0xg#@c<u{,H<~V~-w$zu*`xW;+ODw̔i{||2Z@eCQ\rX 064D={CC{{y{ASS55>=>ڋ|z5.0|ʄ.\>ՋF}lWT$<+ z:TUV6Ƚ R(*wdu&6>=.5D=p}*0@<5,Áw5=瀾Co{r+ N 8(j>лC7eglR^^~IrN9p{>EY,s 2С'/ յkfswQ'Ɏx `׀  J2c, 0,@\^jی#a<ڎf]ώ{Td tKQ~l@/Gc4`6&|,~%KyWPTmaYEqJ%ɱXKN UlUT p\x5%[ng괢1G>bc 1q55!!))ߊDo#F|i}GyK 1psxqI^DFɹMLIG``K0VbN9r%oBBʯ]'8!BX]߽<0.%e\^c2 &9v" Q~|GA+<߁=LQTZ_UTmm%#.4 ܹ n7(Ɏy`J;)%g@sPx 8 SOj 馼_` {}.y~9G`p:%'G#1Y 룲R2dfKQ>vl6ܯM̏?>0VƧ0d3#". w߽h(4{tuu+;@#˫M& z:Dj7:Ri=Ms"1q qj><~K';yUдM."hڦR]t ;a?v&'hh<~|ccrqߑzRybi{`U{ ɚ~ (rͧ,@P1X**ob`4rV/@W=<` :к@ P_^ngˁZxLcjk{+ŎSLjzXg VQ^H2ozry@`,+ >DbnЍ+ s&)q]\yٗ/Dq4Z+? @c XɺށW%WD הpx", ⣢wG=&JODk &FGLzjkj ٱcqEE{{p?@q XnFc*+ʽ#x;}@iXX@!0|*b=?Y֢өDž32>q>'?Gtٸ\i@QvBb y "RՃ{\3;gp0֡C7VU%8J ̙Zմۅ4Y,={ !a&)򔘘`./lpPUu.{:j?W&MZ*W{W oBQ1t wGo'6Hp* U 3w(J SWG˽#.t <!r+έ#6x&S*>xL&S:7p68H$ n%7a?) f@òj`AI/mr (J.2'~m0(8 +)J5MM~^oAiHƲf/.5Y,R)&F 05E< PW N"i(+014,슟&7pKRS@U5GQ ^"h+A u}ah D !@L))%-oY]0~@or3H⁓nxkg/EX,2Y׫+M>}rhNQ\hhi@qJ(58rH$ cǮT.JqLcc8"ɥf]ձDC.EX 2iSVرW]…'N.K=l"?L&Nrg4tʸ\Jeq@ڵSZ.mjjYsmEG-鲁@6`l^d2px@U@ !\_y; v[u@ <|<X |3Ot=-0m^?%ϯXρþ.i}~K'Kw =zDZpvBi{@=1LNXxArOur]+[9HFG;:ՄΞ?5I65?1zJUy䌁L'f"*+F8zBf(_jygII11'ϜV'O;,Iq:ׂ%/z=y7JkZ֮] **"p?_E{Fړ@nwѪx~jسgǫ6m`ƍiMlqO @ t'@ @ q @ n$]@ @n#>~[o>rB+MVGzĔJB._V28PgO˪Çx@]xb"⥗cGzC0 /:}ZVGde&')Ro!?wNy|j$' #)'++"jUڳ+yXsC Z1XoDQ柫_wM"`pX ĻZf?Dyl a`;09| 6~mzsF h܊۶[_WƏ?V˿^8pܻwR'0c9 I4=f-ke 隴/l}wmi4/'{ի\'@>^_xw v`M@<Lͦ.C ,BVX|~G8PpHSOI+ɑ#GK$#"u낋TǏ?`KD-. -*R+_|1Ч/) xQ?< OK OTެ`$'wfbj8G57tZMGf.3GEp-9}ZnZ\1cgӅ:~xV\ʿv*zuRI3Xd]qMx̚%=qZVfoU䄍֬Vlf캷מ]F&Y@Y  vI,8CN{<r|VuvH`o`T,@Oρov:o* `o?ok6՟P(?6}`+0z{,f }wps|kzzݚ5[uuF gR{bb̙%K={:_/xa7TرWέ_P&Q^j܂WHoׯ7>m n+bbAY}bR\bc8)S5~H.\ݹn`=uFG)2WhnBA8v"PB!)ھA'55\m@l,kSϟW?>kCNp0ҕ+۞dCo)?uJn]~{v)`70;1<]O G?G0 \=`WZ`|= A<rl~զM( 8 } }:έe`/[H+8G` F% h6Qo+.t/ۗMJfåK-x«TJS7 dl#2&DdS[sWVϟ`AYY&UVNGa}3rmweevqqlQaplI @߾lt4WFDZcȑK|gldܶ-9j9(/Fk4QKPώ/<*'(ΜXRnՁ4չdAB[^LH0AԿ?\ko.ZU@{4ZU}@6*`08vЋ|wnɇ6@ op*6B  \}i@F! S"mj`Pߵm^1F.vʞVD5o_}"[ee1|06y:3SF`mqص {i4U:t^$D"m099`ټ<UmEo_@/{n2w|YW8Ѳ$8{VYPZ%>-Mvjk)@X&0ЯG))^`AUCBu 9=&|YY$/fr_P\=[:wncWy}6eՆ V5}ٛt7֯7fN7~hQqjy8,BRT*fT˪˗U_zI׿?[X3…}Dk/hsǏ =[k8=Pd7w[  Vy 8<ྌM)5 '@cy8 kLhw -?/ "癴G80ͫn`<.G,~+ρn헼l hZzk׮ eo**";4#r?_E{Fړ@nwѪx~jسgǫ6m`ƍ̙@ w$'@ @ q @ n눏28mp!QG9ko;s^$;)bC>}r$ݙ3S~&rk@[Q|s-%&~}aIOO"D.=zMqqƅ c 2AN*#)KNޡR Ɔȳgohn{DGu8(l{WPT&'L&Ya}崧=]/~&rnz=^7y'n'M?d@R`&KL|]{ٳ;ZޞRG+-kysHVileA`Y…3gSYY%en5>lCbvߖpo߱ïM;wNks8@}9v>?ϖ˫q% 0VyG3EE|(j>лC7egRX$ZueeҡCO_2kb@\x۞|pr+V4N>?Ο\?>ݸ1,(͆3$˗7ځc4=5g֮ 2ֵUO8``cXZv「?>r&4ŋeEEl=7+ii[XDQRy b]rrVhf??¹S`Քoe:Uӊxㅰ+[E 2\Iwz+F^sC]"QSFƚcfGߴ!nx: ĜcSS(&Ƨc"TRR5&`Rmmo!!o3hzeq= gΟ8.)٫WHh2۳ uuqK((^*yIH [܄f^zU (c\N1 5f^5y̲et^Ͻo8vŊ>}X_;s<4$~>3fH~: <>y* 5U#ӧ^._ps&x⦆pfÆ. ]EN"yf){A&F`-Ÿ;g>޽=At{Qᇊ V5'j_{M8^i܀p:'ۇѣkpj壢#lx^5Kz5.uW!{n677G>*;gg? l0Ï + @({&fE~xiE"=}zZJʷ cINޡV/@p0`qJSA\&=\##Ӵ="bJY^Z7[֬1ljLOKOsyϟ}(-'&̜]D޳⋁GZ6n~O9Q]͘ݻ7k(\z1{ᣏNmjG)2WhnB0XZkl6~mL L_Je=aa֩\c, ( RJ(jk[o)?uJn]p[O)b?^p.Ĺű2u{p0ҕ+Jq{)Յ46V*8bnh=nDKY ]PWD󮷮.ȑD؛X:tcf抄}BA 0Ĵ$_0/{4/QM%Meb8vdu>E *dI$ ryMIk0(®y*>*E v;zЙHPUY 2|UU?2uMee=Qh6|{v|ȑك3%z gOhNNXNNذa7Zfw ai/L.޳'#GCBh|s`eCBhwM^BBk8 %~̜)<Ğ;ZÖ-Y$/WV&OgeB,ByqΖ/],h|g4E$6oYgϚGѮ^Ի7:%E"ظCrZӅܲu#)j~)S˗eefKi(f34<3g wǻ"(r aaFӒaq`_PrĀ]DD0u 6m )/wƫ<_GZxvxt}WӅ KLV>9IWLA}дRWJuQ$jq 18HƎ]R]i}괔o^qE "" BPؔb64DۅuuEq EEPPk=h2u:k]?1HSP*.9\<)rlZyw/Lnn+TJY(.?^Z"=ʯٞz*0v(69|eu+Wl}-J/\66F L0?p`DÀa(ǁF|䈥uHG˽P]m/, <}ln  x j+ޥUYkZwjֶbm=*( gkl"$}?O;dg_fggii/bb_-V?~lbL&DF:kזs .A6tqa~Cq&9U*왚$aX>:XCej{JrOWmPAEu(OCk2'w5օ R+_ߵ!C6@igb*Hx q|TIX,P n)˳ -վ}Mˉдo75 +.]ߢIIo:tJŻsr73 Suoox\0V#99{~~<-ʕJJZД_Νc>>733Cnp!0BOK[PFv or--;^UEJ֮޹E#CB8#7W=~|͆Vjn3ϞSRT99gG?̝[8k]~fUnp#I-TaΜ r}RTF@2e`*N'.-ɖ.wtРꘕO~}se˖ *ߜ `ǰ0HļsG|yYR</Fc}db=cFڕ}ƍ& JM۶&B/֭9:>{ s߮,.nR~~pu}ԥK@P\Qᚘ8oߟuezR''Oe04]lYi;KKRN0R?ӵq޽XV 55[Tx\PjvTON+W>,>]cS^jf0?_ݡC)~rݻA*ˏP[ s1R;H4ݢ|CǎQ$EEM1rCj~J!^< ?-]ee'N|F zWX  !YYA~~q!!?$nx'?-uL$I>nE T]PصisGs֭u;ʕv~tk,[i@<0ONB! ^>ÃذA)/׬^]_r#-[۶e޽ҍ+TCPSp~2RIVU=`XCdst2.]غy<ƠA!C ȝ;+- =QK U =}Jy۶Xyy+.^PΦM{Pi}edd̕J򫯴ϛضrL;7735&-PDb_46q !AY;"D+WSa~_oqr Œ3wp GB;t8LwhXbAADŽT={{wa7lXJÎOLTl.OYhhAhh.Ǐ՝:_jW{[uE@@^ϞWR ?BMܚ5[ǔ5N??&AzJww#9I'M9T\j>˶owrrb >ѩ8FX1{ש;/OVXJ%9b/%=>mD&1_wFrpcz3_IIs>JOܹΝH=wT*:}zɵkStP۷$LJ(&S%?09DG(̕--gmTd=A^ `T@7Kd@`jKUmڰZ[ :t`m^ UYY>}87@~LUfY#ZV W(880홞̠sKWkWwrcWѣ`z?0޽0poFh+SuDVVT*+/T*NU]eTVW֣ǁ-;plǧfĀ O,NU*㥬LѰ||n2?8&SEcc'TLv}!_} _*楧"]$ٳ-Z[FeseY_ٲ.]bƥԡ%'J~㍯_yǏZmh b&:rˮ={u'k+T*IX740R: >T-*dv*r֬Y M.4^*%Y,FISW|>C*5}IwK;;3Hݶ 5):Z>|8xmVw8صd'Nhd$۷W*Deh(̊ b8`ݥV_^}ouqԝ #If~?mOם~~4ہ7s8RCM?u&I&23cc'լ-aa[T*nP3s+++PVaǏ6l:iqo[QZ^~H꽦G %Tf򬪲pmݳg<=gʳg)ɓnT**\\]UTl4FDi׎rr۳  zj]uueJJ%ItPWt[t=Rk:PC2AWWa _:`wbPj4DExxr8շOO.Cd nU˖L樟^(p<^y׮'JK=*+]˭H9ʎ*ArLO&s,+s ivvEE*d<{ֱs2q) +)ØL=ԡG.$;0RHvf4oEGǎ%&WU}jg#yrkw@rr"툥ND@Uϟ_j2`U+޾fgCd7n$tO!)SVioW8ti޽R& nTNTPhs,g*]I~Hďg,1{UǬsDD8Κe;D#iӜׯ/7XLQ͆/B_lf{<0QPFOCԛrr:z{'Qa]!5]2dz&&DYB뺦LŪ533_ ^?o|1kII[]{f7v.36 oQ  MS35o`8Uͱ cu=ӱw̓-o"PK\Ei~np!0BOK[PFvi&D$ӧ۽{7,\ܐDG 5㫹V'BwͽRHBTS ~*** 8DSNս}1qB!P8B!B68BMNsˏBͽky` B! ` B! ` B! ` B! ` B! ` B! V,B!cERq!&!AzB!lqB!lqB!lqB!lqB!lqB!lqB!lqB!lqB!l1 ׭6|B%= \ǎS/_vHNv߰A2` ;;S۷ݿٹ4q66,mfDž Cp뽋!qzq%Z_<`wl:;bDسG[8dHQyj5YԺu^U[նm^ǎyɶowrq3 Ba@v\ق1cqqnqqn|ÃسG*w=?+:%5Ux|? tˮUXs;wݽĶfE Ph@dsU;꜏JO?S'Vp=T*I*V*A? *+ݻLJ. ˣʹ9 {z2.-_/N e=|c5,^l7xjƎden_QA*+ɑ# ?Cֈ۷VjDnn>}8U̧PwNH0r8K$U.B$ls];VuU*xPu",LiPb1!2yVC=y&I8}lْ?3SUYIjUYYjWW&xxw]s3x]A=!mR))k!~H<ݨQrdzB`@\,fS./^ڳ'[7d 21z%Mv,B%5U?ߞfXЫU+0.5,DԏkC"^u nTBZ OmkJphrrog={rZ$C Z7:޽yS?͠,d܈iiW3f}z4F -DN{[7;EuCB8ι>x ^~R ZK>T-=sa}99jsG$a֬##,)R?8vE&#L)uI>풑!&8z%#Cl0)S 2B!cD$ӧ۽{7,\؏zCv[j5[FP*p)9ԩSuo !B!B!B!B3WAػWԫ!rF` 2jHމ. 3t?- >)rt=kWvVǂӘr8իwgd7ov4?ͳw\ "mLh]Xǎĸlm\ľr ln1GU\ٲQYk:<(''荈pe TԵk~tfǻ/_zzk&VtHMU'SYFIBB ޺kcoOwޑ+vQ7,)6jLJh׮1Rz a; /t;, j/+my<ƠA!C ȝ;+- *#x{<{?y >]0wn‰ J궈ł Ced@"QPMo++*SRI~U9z۶ʙ3܈gƖ3**:$ mD>duzhܩ;/O_3OVGD8#}9۶9M.Osg6 Pcvi#ar lҧ6  ϜH2mŕ+-[*v>8s?Wg|?KI {{'3( (ox*^jpŊ2nyJjѼٳbc|R+Lhl}Lloza;R@KK*%Y,FIS|R) nђ 쪛Š q '_&#Y,ؾR _W$&*CC97BCjv9 9>}83f=*[lF#xW\XRun6EՀp# Lj#,ZVj ϏDXLhA 5UUϵ|`kTwqKvǎ,mĐ!܀֜9%YYj>d2 01iii5XcSRj˖ ˯_Wo1lYgU!1!\AA0 g̱c`TAy&>^OO_/twg3ݫOOb޽ֳw+wtՆ sTJ^\{vAA]Y&򧑐 L&DF:kזs .W{1\Ԟi8FE) Ν=8.UB5ln1G5e #C ѣ%iinM+4P߶qyLSB uCݨJN:e0YTT8p̉N{cB ӓ [w$ _X6B52l, B +#CE=†ͽk#^7Y.zB!P}͚!Bـ񠠠sY7O+*++uwwtCS<ӧk]˭Ί6mZPSqNNNuޗP/g<~B9,gMطo߭['XlY@@Zj=zp8Xɓ())ܹsuÅBa˖-Ѥ񱷷޽{VV}-~z흜-[fΥWoqɒ%ˍm|}}`oo[wݻ׻wo{{v՘_vXyRSS{) b_|'f@pqilC_Oŋ۴i{3n߯E+ScǗߣ}BCCa=۷/00P,9rذa...ׯ_VЗNSΆn߼OޣGvڵKܢ_z6^/DBĔM6mڴƍ@O>g/9s&I)))|>_&V}׳f"kIKKګjtuu7o͛7U*=z̟?_Pܻw9--MСCv>I=2Y~AV}fŊE*e˖۷oh4˖-vIlժU~/Ç+V'N888oX9wYhF$wܙh9Hi̟~}X>#GJOqckQ>Csd,#feeq\w޽{ u-ZZE;4Xc;療7$MFӧOtt-g !RQ( &L0aҜZm]z]gNz:f\97Kiӆ$I] @peD2x`jyJJʭ[֬YfJoJ~׮]/n߾=,1Ν;gf0 .4CRRRqq̙3 ƢEE"7+++))iL&s~~~.\ٮ14r999999 44TSN`ڴi~~~ cȑBѣG`>PA_O̙3| M&_.S0t|Y=Zw=@֭۵k뛗G-wHs[F0axyySwQ2d=l,=!E2Fԋ1cƘΎzA6СÁH|rxxxHHHsrr 88JSYY٥KLh?{UVV)jz(((puue2 X,_GQQdzB' 45AԳjg`4,/cBru;L~]+`{Sz )!nIBWA&`{ՠ/K Mp86 I>9gտлwS$ݿ`b D333FY~77BFd2M򮮮늊 s݀E.QK~~+v)ݻСC3f7nyʚ1cݽ{wpwwvX}ZZA_4[~(u~-붿4\=Fmwh<4{YھQrssyyy:&Bՙ-斒R#'Oiĉ&s(--/333 Ņ v :ujٲի JtRzzSm۶MII)**-I?eʔ7>x?~lҥˎ; 22Ҝϟy_Ν;oܸ$ɘMMS'Np8gJ'CpرjOfj>iR~?.{p` `yh}l۶M.'$$ 2_[)?!DjxN|}}SRR&M~y뭷@,{{{ůP(MpCBB3V^ݷo_jՑ#G\\\V\Ν;O2(@af,gϞfoo?g0M-&yoUVs\@ _Ϟ=cccHXZߨ3gϟ??**dr+իWvt={ge$ `Μ9kv-[Rˍ'M=[? ɟ&KY514i[=BטCsԠn/ ٺu헱VgB`H$HT\\LG5J^FrήL7$!^ foG i!9[SMԤDSNս׮]f<عsghh(Fo!DODJJJ5jI;wuqBj}C!zجYf͚@ijBNԍz` s]!BMo.]ZRRbR B@\%%%NNNXjٳ럳Edgg9 B!BM1׎; dܹsӡCE?- B!37Z޺u… 񾾾=0";;;<<\(lْQڳgOP( D=f={B!?Ž{ކ<~xժUO>ݾ}~1cJOOӧO=ڴi_|E߾}]&ܹc2c sB!,~7[ndɒ;v'ؼy9OMIIu֚5klv@@СCcbbU\.7'''''G ֹ۶msrr:q℟ߗ_~Y|B!ma pĉ>̙3|>u֭[ ׯ_ɸqL擓/_ 5??Eussw9rY!B!¡)3gΤf/?S$\nM͛fk|`ԘS$ݿ&v 1cƸqtyaaao͛7GegB!a8ϸp8QӧOcbb >-%%EvNZlzjBR.]N:qD~~>lغu+5T*qF``eB! Mغu k޺!(GssssqqYr.իWvt={ǘ~!88xСcƌ!B!`H$HT\\LVa /Tsʕ:غ,YtҥKR0!B/'R N26** I͉N{=t>}W_5(&NhgggR BÛ5k׮]v.]v53`tB!tX[%$X,v7oZ'RC=zX?nz84!B!hbxe%.  .օhz`!d4LX`GY-?~וJ۫^4f W;}ڬ ?Ú5*j#%o߾o0~<<~lݺukQQL&۵kvڟMpRso&UPPC4@m 222~mR_BI\v^nπRRRd2٭[BBBW`*P(r1V?Ɩ[Z pqYLvΝݻWΆ3W/3n0w3/yZZʰ9"8,,ڵkǏgߪ;p"xyٰ[nzh_>} 7vYmdnڴ)99抯k״ 2+ƌ|ӫFEp ,\=ų~}lrǎϭt a205Q͡JLL'44ŋu-=<cgg7o޼}yxxT]@.oe5>С _? z۶ի?)տ~DÇ>%>>*+L=g;vÂ0|89Æʕ0e  Ǐק GP,^ݻ|󍧧gu+ ;TX= 0c ȑpMG… O>H$UUUFTpvu ~ChhKWg0x: IB5&7ykGc@~es [J þ}p$Cx8 + BTr\Nު{7̛]L}pjuzFr2 TaDl{d-l6{ƌ3f̸w^aajƍ -mgW-1:ͧΝVcHgĉ[UUܽ Çݻڷ_p8t} eˬkVd2}}}OFsIRS//X<$BKӴ?ߐ:wfwM֭[]\\/3bA꫐]h7v<60_~\.tttݻ7@^$%›o@PիWZew￁ 1!:&Ma :dzfݾ}{<(( /=eX>ʞ[[LnZP;$++߯B' K,mgW90 5U+W̽c%wߥ:gaZ Kض NyGVhbbbƍpFQXXxG$в%#RS |}woѩcutw.]jzD"Qdd %0x0p8ͮ.\ح[}mڴG]ԟ4O.pT0p <|A. +ַnݺ͛7Ո)VU2TBZ`ɍ[Rꫯ 2hРғ'Ol { - L&//~zvcP$ 0{b@( BoooOO &lݺcǎի{^__zWڙ핱zf2!, .\oooC1bD"}niSa\ .5~<k ?j3gΔd #rCo`wܑ3f ?rz50h 0eJCW&s޷S*vvvSLiӦT*^t<Pm>QQ}QPڷr9mk:j1 ` ?vΝ;>܊h4k_0q,lIIIIIɢEz?R0a,O.p"ܹnn +޽{g͚exЯ+@I Da*|/ )&&z1cƌҠ7nhʊ Xْp:;?>l7 a28{ iiRbmܸׯ_ѵk '…umgjW4

XXFߔ!x!u/0۴u SDLjLeu i«_xnzѤ ہنt~sN6B$=p.Pd\T06♩A&s'c< qE2%@LwjUg"i=w$DJ^kXV"2\& endstream endobj 848 0 obj << /Type /Page /Contents 849 0 R /Resources 847 0 R /MediaBox [0 0 595.276 841.89] /Parent 825 0 R /Group 688 0 R /Annots [ 836 0 R ] >> endobj 830 0 obj << /Type /XObject /Subtype /Image /Width 16 /Height 16 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 854 0 R /Length 73 /Filter /FlateDecode >> stream xc`ϟ "I1 ?܉"b텨"bLEVOk!s-z<ůZJ+ endstream endobj 854 0 obj << /Type /XObject /Subtype /Image /Width 16 /Height 16 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 105 /Filter /FlateDecode >> stream xڝNA 8]ð%[pߠs}i8~1vO85\3`X &3_C}oQ-?M] BUԅ4 hH endstream endobj 831 0 obj << /Type /XObject /Subtype /Image /Width 16 /Height 16 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 855 0 R /Length 104 /Filter /FlateDecode >> stream xڥK PfTJhJfLD#^H; mc-z҅~vh^y_ײx~._6xs.Չ endstream endobj 855 0 obj << /Type /XObject /Subtype /Image /Width 16 /Height 16 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 108 /Filter /FlateDecode >> stream x}O 1F$H '1tPjQ&4BI3 Lko7LXDؑh=S=1gﱫy+{CBAǂwL endstream endobj 832 0 obj << /Type /XObject /Subtype /Image /Width 16 /Height 16 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 856 0 R /Length 136 /Filter /FlateDecode >> stream xڭҽ 0]6 V>SIX9. endstream endobj 856 0 obj << /Type /XObject /Subtype /Image /Width 16 /Height 16 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 94 /Filter /FlateDecode >> stream xc`@":"M?>Xp>;o0;~>o?bBaFHP30$BY endstream endobj 833 0 obj << /Type /XObject /Subtype /Image /Width 16 /Height 16 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 857 0 R /Length 73 /Filter /FlateDecode >> stream xc`K "I1x/|"b텨"bLEVOk!s-z<ůZJ0RO endstream endobj 857 0 obj << /Type /XObject /Subtype /Image /Width 16 /Height 16 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 88 /Filter /FlateDecode >> stream xc` ,?d>BGpðڄa.T?d7dVz1!0#$( _I endstream endobj 834 0 obj << /Type /XObject /Subtype /Image /Width 16 /Height 16 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 858 0 R /Length 110 /Filter /FlateDecode >> stream xڭ EQA;0c0 @RFIwcs?1}cNǯczH} endstream endobj 858 0 obj << /Type /XObject /Subtype /Image /Width 16 /Height 16 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 60 /Filter /FlateDecode >> stream xc`@":"M?>Xp>;o0K𿿿(b:j endstream endobj 835 0 obj << /Type /XObject /Subtype /Image /Width 16 /Height 16 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 859 0 R /Length 93 /Filter /FlateDecode >> stream xڭ !DQK4K D7'F]dBJW=Rff X} 6ada,G㘣w9q|?T? endstream endobj 859 0 obj << /Type /XObject /Subtype /Image /Width 16 /Height 16 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 94 /Filter /FlateDecode >> stream xc`@":"M?>Xp>;o0;~>o?bBaFHP30$BY endstream endobj 845 0 obj << /Type /XObject /Subtype /Image /Width 628 /Height 165 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Length 19461 /Filter/FlateDecode /DecodeParms<> >> stream xy|EM6wJ[((R* ( x ⋾E TNR9SA r - -4ik%MMIJJSgH&s<<3nA@ ǁ5@9ږ@ :-?w`,${֢RgmC Bo*jW@ 1\ul8+$ۥWI$ B4n Q?K¿HXl.}y(+:'rZ:ox:AF "-؆]r&n5!V߰y3Y[%? ¿HXl.Cs(BR}5˖s:)7kl"iѷE*#?:A f?[>7^C阇^d:@"a !=k-$ضMLڵ6EXh;c0rGvoPCeE7b,;{8*7~l>pʦY{ r- .jsV}0Ɏo&suR|~<{v05W;q-?QTlӶ3a-8zsZCZ-X/}h֋E 7=apx;Khan3@kf^8iw&SyA/7nswB\.ΖިFAYxsôLNnCD}9c۾-pKbTlRZi> X2JxxEqClr;F5Hnj.F me8WJ[Y-mқ6hKQHv$B辬o9W8sWOJB3jnB?Y*a$5g>DJMf [!Lj!F#pӱ$"W|Z4kEfz9a-(>"\駱kG;Ev %G4YW;OM%%o%:v WveI~Y7/Ws,kΫ}'^MjXp/U{"FG.2Ph7ʣH8)ոmokZ]'C?i1QP2.ߣ5K؅9,~q;nPqf> ɣڧ(U/Ww9~۲c΋<=]WC$,amVt;oY.]1 Dqn6!@^+u6z9+;4; %H]r%eG~o|乞!02hu-wڳ95ڽԕ G zo/_ŒFݟnn);fjXGɾ9m @uۊ~hl/~;*pC>;+ַwxyZ齫\9KE3 B ]&7w9V $b,_ #'Жi͎ګ͝NW.9@Pj/\ezcZ}fQ?\֋G_Ss۰wxuhC` ፌn;|h65sgn~੷Gi\]NԼCn(B:56EDWS ]j3{ԙ'9*| z׀ ]>=)sޝ[[6xw~K9 7LqMŅ133\SQhS0+`҈j}TF,h?2@KvuMȠkez ?$PN~ZҒI1Ɨ.]۝zL"܂@n#88N,*j{|Dڳk5C5j\CuۯqlC_⚶Ѣelg|żD]b\SA?Von 2ȉhitg_Be_XC_ôy3$n"Mp;"Z_q'ZY_2,IOyfSsua#=}GVhW•Tk/ae]ot3,=-yOs_VS \RL J_I;4䶷բ ƪ |>:vvG߆[h$h +KfUQJF@E4=%%RVN-/,e<# x7lu{{V1[Y5dWu.B0{Z5tu%%rn ^,+la3z<*/>xkc״]3*UҙCYd~|ӟsWwŴOhi1Ƣ$%pnFO!31Fei9;}Ρҧkz-G]^~$ ̨PQgV<=.?IHVs2 "<%Eр1@FU/P r"%zNj"!;´=ϜdT ; B?VSoJoYwjGA`q,V9lE aJoRNV3DQJkp* @DQZv:ݽuޥoR^e4%uܺh):uFsv݈!)E^;Ãݔj*2']sGv$7 #Q9y&G{2N[鮯}b$1~NJ,tk F>a޶^LB (d52j~7d#,Jp?}{{ӛ:x%)C>bYkFg[c@.$A=-wպDGHޣNk aTH@)`J_V|j*q Z^#Y{E^)DM2 e 25棁'~O*ϦI-t(7HXl5d)A QCNo5Ey vx3e={~H*QN$XDKR Kmk1Z!1ƕ (=;rg#JyW8NBV#6q^ TzB͢lB"x&6\, Qvt[z`i "Uc۪ǒbY_[j#hF$!ꅷ?}O{coNJkޭz_nB3:ӑ_Vqyڹm9.)u*\.:'NDQdukDG$,pʛ>2@W-ݼ 1Q)nXR/k,smz =ɜy/"m_=[s' ĵ}`qq){z}렉g6MXEo9TW;<g$E%zUtX 7-~Hj~OX7o C*M]23|=߽ɻ]*I;*wɽxGH~WH֙,ޣ.QQ/&JqVƄVQcQ@ťu7[U [uNyqa|}._b*$U0JQ%C(zZla*-RaQ na88UVRwbS43t*!9Ӻ.*3N:KEeс_ blM#IWZFZ0FV^ISPK%R&U$ e-3<~Qv4X+T,#F ޗ ,\ 9R:qFWxuS8JFG0^WIV<8DCd:_YDR " X5W-TARA瓟Tlyw 9O(ٖg^}KNojkjZݣbڷ^J횊eUX(B!,V/jQ@+, 0&$dfFeegY))1 1>[̋,!bԳkfk6>/SY Ųuh^|~ӱc-Ci,1r^D.to?=Jhv^:z4;.3Mڑ ].<}ÎFP__Qձ Q=mڶM#.] |߱Xa jE[Tbouo9[M- &ٳ%sj7U"ۥ)rBPg"rW6ndbb+NUc// ukiRRj])90Gw.K#4#BZ*>gO> xBV[ե-%:޶@ -&i')}mUt"Xݛá mYYL*h!B2Q( JZ >U¼(p=)伈ҕ2CT:4۵T>#e/&&?!տ;V;e }8AQ<2 t$vPbbRGm$T oy"P [MH4]Y_]jܼoVT.W r^Ta:1/oN5Ίg@t%Tg"r3usg!rN+lLm >6( -c0#Gc䀪VE [xs+Bm:ϚyɄ32vzܭWZQ,êxP-6ڇz'Ed֢ r^Ta2/=cXZRQA΋ȡs]D3~/yn f'Cr >cc_;{OK饗=zۀ-"@h =4*u-1Wݴiαc M$'K 89}g MDEiӜ|-4^݇h >lQ'E2$?*?|_eD<7$C7֗HCרȀl fBsR#B]j"_hR#B]j"_h:Cաq@sT/\]MD m[8\!"*@ T/\]MDR#B]:Յ1_u}>!նYbW_u˟g%B(E7TWڮ3_Ź0^u%x@ WH|9װTL@gPpu5/mᰄTL@Ppu5/4zb٘WOَ AFU|⤕+}=rm0Z3zft5 ?$!ԍ+)5(l5ݗHFڂFPm}m5*2@9b[ia/QP'5}WTd[@ 0C+@ as 5*}Mc!Si}qj !iyQל9/":\BJ__Wï{a}&Рj/u}͹"2 @ МbNbZY?p!`d֞=MY>ƌ)?fh'O]O/!~}Gi寅ԀƄ̨,-[Eͷ֠uI//B 4 >^3>GfV_w$R\6dB{~-?/f=m'#HLOOx; 8|lɣrÇJVvmS?IT$礿!{P1B35**QA񽴥iD@ Be"MFvM;vj4xh)}T]T8XEVֈ5C<BrU .Tψg[ զJ^yE=d'<@ Iq1 /=) @R4ijL>\|߄n-u{4ݴ^_p?xɮɷ2={f;?h_ 2|yyLjj|ǬP~[ӬTt"Xɡt:p Ųޮ K~o*QkMm It88Ų={YII1j^AW_-?ш#^ 2YY,'8z`6l&2Bc??gfeWRe#qfx|]&~Lwu@]af6&@C7[,￯9Ґ$T o"POAnlv<'!bg?fv4h,;J3Jΰߞ-e'@5IëV1#GOFfy%i5@ !#W׫'M:xHJ&ٳ%sj7U?DoݔBd2pKnXb CӠJ 0i= Ma!eM;vj4xh)}T]T?kU C$m@e[ p#Gd8Crr3~J s/I @R4ijLy66?\֫@wvOww4C5C.;ysǎAW'] >o#1+@ T MCMӉjp8`R&'ÁKy6vLpNxUjI5õOMõIEwCqUII{rs} v*D@ۍ 3?z=y0qvkWB¦k[ɯ,8u,Ӌ\+µkz/ƞ!\VV~`4BÆħy>Ю(I$Iӧ-EQ*5U)x X>^X?L3,H1Br >9xF;X*WϜ.\DYhTӉ:vO BHkobYIJcjq^YZoјL8#Qtm#4#zz|k6xIBr xx3jZ ˖1:EZKf@@ åKʕ ##lZھ8msXC&1҂ueOȵ]$9@ooQL!1QZN!َ  bz\r <9$\@ LyqogV|v'l+mi}iyBzF8붋@P~z}VZwԶ<@ IFM )gz{q>&!J B\CJ_1)k5o5ddHՍEP+@QxW!tDX_u4'"tu#mma@ Lh5Plb%K%U԰bs] =c,n7ڴIcGFGvOݷOաإKRtmFUDI*__Q$] CCl ճ %ͥITfӴbw)Eז-ec-T-fgǣxȖ4ykSz{byH211K"B8H.err(;H1Qks$,}~t^:v$qc>eFjF6̞%fֆZAܮ]H!dz`6l[׮˅ _ǵA4OEjj F$!;׊ppx:)E|+8$FhPv~@ |HJT*w}ErrTQ1ѧkkF5C HR$|µssuJ LUfD"",R0q@ Z-Ջ5K;}c<Ʉ32K)d::a+Wk,k\õ7]!.JPa+ULXE41 I@ 1msXC&1҂:`Eז ɳv<[5g!4(\A0z4;z7=@ ('\YL@1'Oz4oCsvg1hh'89J+>G2_`69fPyl&c.l@ T(b}\>{G \6P2/S" r^Cs>fH1?xaCË-B;nxؾ]MF!rPmξ`1SAQ}rwͫT8/j@!Y*̀FS}hjhZ_n7ڴIcGFGvOݷOեBRE2/7}%j[@6!yue^4W'lG}Om `EP7\ 埆؇$Vsgf'QI*={W36íZd& P+(ڢ E @R4ijLCeU/[$Hrb Eնy-ec-T-fgǣxȖkQHE}֡/SyLjj|FP_)==1X~ַ\L| 3f8ڐ/}6ndbb#\#pҥLNaC U͋!>U, a#yKZMQA΋!&^54۵T>0kp2#5#gfOOrkkQ~؊nUb*ァ}%CLK=6KhƏ{ɊPLLs4ر&Mb  2[H˸eR>\.gGGkQN} E [ԉy ɳv<[5~S\Queːs@ r@ 8W@  q@ \ @3Ĺfs%!J BHgWU^WUaⶄbmq1̘aWU/` WU s؆ ¿ro}ua ,a+ G=7pXB|-aO +!@ \ @3Ĺf\brJ[ݽ{wFFF||GkСCO:jG={@VVV=<B̦MXntuH?}ݜ|7֭!PTTr@~Wxs%p\ůjW.ۣǟŸr܏7o Bj9^,[,??*:>r7`kݻUQ :Stbb$7G.PZru\#F8qc\.ԩSo 5[omڴ8|3gN<9hР'|RŤ^{,_̙3999$IoVmKDPO >|=&[n!d\1Q7X1<)o} ;o>[ HGţ8_j~F56lO|P:8NO?Eݻw?qℜ8s/ғ?{7222n`b4cbb4i2x3gʃo߾[o0`  OZfFјLR9=//oٲe>ǎ[hт =xb(++;psιsΟ?n:ҥKA𯭸xڵ{]ll޼~SW87h,Vr+` ޲{1`ne6{2T=T='~~nFѯ^_ů +iatmڴq\,zzGO#G,Z諯ZbZÇ/\pGOQR>U' Y,xʕ ,Y{ cE-jPsh6P5;C] SvVM5+̞=Ӎ5z饗SLYrv@eO>.NOOc|~=]qM:5&&<7O?Ժuk+Viz}ygN2e͚5yyy]t`ǎ3g\|} '\p}y=W,jQStzzNnzG,2~`$%{p 5o7+bޭNORR*6{.UPnذ7|yn{ʕ=X֭:Nς.p8zZѶm[n{ܹUuw!!!aϞ=5r\&ҥKf͚#Gv&M4`@@Q￯VkcA0p@y;δ/6lн{woѴiSqa!xX~=EQ BLLL 77711111n,ݲeK7|/S Nb 2ЊBK.r$tbHɡ4?lm2m#2m?StS4HMq#M&PU$_K$w]uf0p@(0XNNNVbcc ##cݺurqEYv>Oz\L=4cF`Ӧ2$xE{L&){2j j:עƍ˟cbbt:]qqqAAQF \@ֻFӵHc& cSO5nܸj駟n߾=**Jկ_\ұcGWZA9>@II3`A/RWoٱ}fڧp{{EpFad2%$${N2ᅨz!srrsNQb7z+))s&MiޟTiRZ|ݨbؽ[u :uJuݦkjujj$(Bjjҥ.]OwUǺ1cl{ϵ*,gժUx뭷zpǏ駞k֬ޖ߲e q3glaZ!wfeeeٳG8ge0Z ,y_gee]|ߗ݃bF#/{^v={X1cƄ BAe&%%9s&??_Ç|ĉb-J̙3;wdY(1M$)åK._(U:3_o075sz?U?u8_@ZŭBQyR99b۵qx.zpfx5qq,xGZMQ˲ǏJNN>zhQQ?䜊(_ϊL!?ڲEq0sfXƏO|u+% Ms[kWڵevi#KF5n߮|jDQC[nI[h1eʔ#G͘1233_x>}t{~gNo^{dI&N 5Di|͚5߿O>٭[7_;uԢE C iii|wܹlٲ;8p`z!o+&QIHHػwnoܸ'|2nܸƍoٲeΜ9q!x.]yh4vuΝ;w|>!!]vk֬4iⳣ۪U+J.Y$::Eh"V_g?@\%ے%$MMT:: ]vD8WۮIt뗴/Wv_g4TC-/? ֭[תU+&7o… ׯ_vyo^~ҥKMfDogEҧNkIB'`Lmvb$eł66%aCI~.w\=o2fàA܄ .VۻcՄ( ttP "ԱEݻ[tnZ;88IYp:HiJFt)ҥkM᜜%rz|vszyz~s_eEQ,j6^_)lp_.al^Z+%jp{SqD w]7o̤)jp{w#Z<}?(2mۮjjYt~dw?7C$i4d6mM+ƥ"t}ߟ B{{"VzR, Mt]\lPt:Arb(;#/a!0枈qiT*EtvSqL䗫آ8׶Aړ%r0k[p"jYS `=?P (Nxy;$ endstream endobj 846 0 obj << /Type /XObject /Subtype /Image /Width 253 /Height 252 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 860 0 R /Length 16395 /Filter /FlateDecode >> stream x\#Z+h%Bأ-A슈=bƎ{CXQDޤtX{wy>vggg3s}EvUOrNBl;g%kEjb PEj7kP6ŭ7ŵ QaZ!k3^y_`es̍š#"y"O<y&Ϟ=yUd@^Z V9 -,o#ʑwD9(G>@%䣄|)yD JDTB"B+!o KA~Q#E Tp)))#y 8)0MEmO>ULq )pj4]^e`/jNy$_ 7oD+_p<O>zHeɇE3/¾E؋1Vy^ŘǕ<9d^OdbMMϼ srM g^'YYYIIIᱱ 11H'''LCPΣ訨x#YsHKKKLL|a*e< yɗ xIE)ds2xF٧ByW{ISχ= O %!!!!+/\; oKJZ?= ͐DfG$C}=(/<, E}iT'""DFDs ̾})b G}_o#yyM=L:  qR)Sأ>At2YI9Y"䞐ҙV' 7H2 WJ=Cw QE  / QHhH\4?+o`ڥ_̿b_` 'K~=z*<|%yGޅǑ^^RSadᣜ={[>>՗/$킛|??R7C ǧ4bP5yz]zSnM`7wd{;fmzk7oުc~{w0tϑ ѧ/KCWQ{7}q/ 0pֶV<4(2^?ۻH0<=RSŰ[*n]=HIp[v_۳ Ձ?k𑎉J 9cl0:s,?n,)GAÊOvC;BTT ]i?#[yy>U6G &&91gz,]诿7r)|I'dhv{Ѝuvg43b.tu Yt>%UWns.=|u…ٽ~dw̼҅PFthw%ͻ+gOۀ^^IEeO׼g%l)wl{K1ar pssC`ن\3}.߿z>(>칰oߥc6eyWx`݃%MJLફ}H[n9ݻu풒~q]|4 {i[m1$?NyG_Y}Yҗz-z|{OnNϟ>|!,Ǽ[0#ANjyg>ω hpzj9s/' a?)<߾;2>3WK+`ql码aHDG1ɓ<ggSe/j}spY0%s[ig~~劉f[>k=,-o]{ڃXIqvviiiRaz8?s]{B>=J$-޽{$dx'''+>k~O]}i?\a A/Cy^iß:nIkXqGVChU0 0{wO=#ߧ>2] k`,tov'm>3hYHӒ~>)%bgަ{̢<Ӏ]bm.oc`Z~JD5;hͶG,oXyh-ymlܳo1|MQ?|U^,aRV1р-$$80KaHLw0>l!7|}wk~}x1[39W\.yl0pvn^-ۧ! ֺNs䑝2zg#]$,N-ڌJz z˸Mwj?5-w`&agCKXы=mXm8fn Ctpp`/I=s[%v>,,6 adkkKsǾkc]nu}iO +OkrzYȍIozp%_f  MdN|T [Rzu5.[\hH.l!ξ`~C7;]c'-eJޫ E䎾PD曇VC䚖sn;01hH+ Ge>Î=HyųϟEӻ£N>S43Es{9di-QFEFS>JWWWS̓z @l`tL8l`C}LT[")m=ST#Y3a}3_}:Qq{kTަ6^-J  ;u/R{G>E3{ƛ7OvAs(CDXQ;z40 #C`$b>%xɱݹmy˹?i̱LΟcӧ۽kOXh( _Ipܱ pw[66,m'7I!"QnUMk١p v㐅Bnߺ 461_4ާ} Mv}mipZ4#:7kҪE_Z}sHS mεN~Y`36?/ŦϿ`+*3"v4-g;v-)!Wm6ú(1̈́׭mf 0 x;Qle"#ޓ*ሄx.R/ ?:*>/wh sqڵ!!An| 0(6,,ҥKR ?K"%Ȉ˗/W7wWwwDQ[|?/oE}^>o>O߿}}~8]>y;}Ff=|aefsgdʪOA]N=b׮У'Yb r8޼ycӦMwn6mxMIqOrDJvl2,_ ufblټ[!Or 9@awlmn"V-a7q`D/X䟫/c4K"q9} ~Lr/Zz0 41a}ܲiJ=x`=_<簊b Pf5(y!@|R_U}f qڿ- |ޱyq8//O;;Ǐ8~];;//x4>? LJJvp?uCq'99 OB_ E"ؖoPUKϟN^^wڝ8pSf^.泋f(,9{WW۷lۻH# y){=]`rg\`Bܗ\*𙓓"#1<.]Jȭˢ)9:YG:",*D9t>UT %W|?]#&o"@"wQN;y;j~7W?&&>!>#I3VY"ﰧ>@+$8H#RmYKϯgkD}͙:s'ZA=B W.vim!+p۟=ϑ (~ch#?KUd/ׯebKگWx»O/ui˵aRg c^R1/!_\f]@J/(;(EDd.b^#/̱y44bePڰg%=\6ZUiƾu`rʨoao``r.] }ȑ9v4Ő!C` [`/RO g-X 7S[[?d ̈́AzҤIm۶S@H333W^7ZFѳfD>졻oܸӧO#b Hr=OUT2e 466nР[ɔl%-Cf~O<1rIiP ѫ\رag^~}<իy3 k3o޼͛7/YDڵÓb/Y$H7.88N:ҪU~%5qZc=e(bDXt)!7`O: j [DŽq3Ǫ@ ̝V(f2$66V1'Q8p!@&L=z…Z%`6=gB{6laBK^,e/?~Z=;03fcJr[XX`H؃}}}v%' SlT8ѣɬ5mjj:p@|{x"FEAAAqh$dv_ec۷/1OQl%WĮHwt2|{^JHa c~h:8c.&y1M8%7kb𘽲׮]֭[Ν# fp;u${eOo_fM\Ņx\99ÇZ*PDH1U]fy斖$Sڽ`$c%G {J =o+ǎcgTJ{ɓbm= X`_B"Qk&ܚb_pyB+()-Ş Şg*TʔRR*gbO\c@NB/{$=~UttZZ +ra߼ys&MLkk-Zu]vu?w%oIIIRJ۶m]\\Hup:*9d~2yH}}:u=NLh7nV}m[7}ʆFԩ`߰a =rY^d͚5y1VZiii oO>ծ][GGgƍ-DD\eFFFի_ׯ9D$ )te };wE@lJC"miiI^ėk3Q 2w/ -?ŋw^#"5Da'/_s5y%ɯ!ݻ'W;4mtذaQQQ+V͇^fVscǎEAz>aYH)tʔ ={ln2 ѰaCPž@.'NxzSӽ7[] gus{%/իW)Сr\ɓ'_^^^5j 9Wxd''zyyĺIb?R +G-p(Vssβ+Ϋ3WÙ?uI\؏3Uy. )jժm]]]8p444RSSI6Z >͆ x!~(S 2e [nq2pVkkZ{eVf#๓Ǐ8رcH]`ޮ]#d[{!G ?]2bOٳyM2ÇC 2v4%Kvo dq>^r%27/NԕM۷Oxm?ikV]KB"H+Pfde:;;ڔqžT:~\MMڵ+9\!GGGG4hٲef͂SfMdcN7o9) *cdș4xp/o&/b :txR$x@ܘ7/|J+#Kl )ȭ=Y n\|Eu"+Y&x,-4^cff-6Ewݞ71̬a``dpciQeJ+#K5MoiQҊc0)1J»8*KOR쩔9{riؗ{*{*T(T^mlWQicbBYJ5?>Ʌ=xL#rwSbhdQON: Zcqξ.iҌ,fX}91C_yh%23{H841x\ʱ?lEf^Vc]&^ߐ>xpiccOU3l<6`s5ioE "=&H[YpXۯl'^.'F<&rwd6cK$}{ߏvY841x\ʱ'+9U+ÓҬ]6w%ؔa$-JxL#fɺZ6͏8CjԮǠě ӈ4qŞRjǧ S)Vi'A)Tʱ'_LS8֞bOZ{=jo<&:q^[y:tgNV._,W; ,c P6]!K"6dKccce*^r1oC5UTTrپ}kךתUzO>MNNW )W;HYZMWx⒈,򐴴4{ycʻiTfG_m >(! mFPk n_a"6]!K"6ʓƏvb%lbȹBx g6 ~S̷##+7o[*b~eA$b# mknֺb/^fJ,ѣ1^*b~eA$b# ˗/oߎ$WKB6'(=cjqgF)bqFeڳo|470bSmE,.+1UUUtK.E 'O,F.n<u 6.o3m)s8 X>qM^*o#H +t$b# CmFd#Wy77C>o ~7?Ciܸakii{NFX2 t,.+ϊp#W(%73@r@[ b((D(҂KA-d%YxyW q1PJƞ}\l bOcO HBSSP)T!P6cOUT[wn}ӈ4WĞ\^%7y|lv+mM-M\OF<.ػ'DCxv{륭4k*oWF<؃ xLM^4!#hctbϞ=s)Z8=x4iLޘWUgnF<.>4$Xk/>#ߛ}oF<.;NNTލHYՌ3yxL#V''Ӆ"xLLr1L7_uQLF<>*4䋵w1wxkU@`nغ=xL#AxpPӷT4`/NŞJ)-ŞJZH(ŞJƞGŞ ŞbOBa U`[{ZТje&Z佭k׮ zjځ7>p4iR`nV2%OW>tYĞ@./>ը]N9tۅio<H!ymllj^OOf&a%+XtJWEpttA-[6k,x85kքJJf*XɈNh ÞwQף;FwhجVɻXI%w֭[jp^z(rx7 +XɈǼWNJaOR)_'EEC)T5 {*{{*T(TW##¡{*{=}bO\c@NBSSRαwKR쩔c {*{=}(bO\c@NBSSRrK  R쩔c {*(ŞJƞ{"Ş ŞbObO Ş r}XhbO,bTF /}0bO,b/P {*{='bOMi)T({*А (ŞJ;>bO FR=/{*ɑdbO"bST)-Ş ؇A)T1rBB)T"w`)TUOU0Wq III$ x鯃qʜXDQFp_1/5w*ؓ!$!SF$}]W.M݄bO/־ۇbO/~׮]φ /;99ݻHEׯniР͛bKm9߿/GOˢߵkYa5k-[W,ZZZ7OHH@e˖+WԜ0aSdOډwѧO޽;o߾$%㦖/_ ,\0>>[jاk&&&ĘdeeoܸӧO^__hddFF!_&7kl^8;;Ekk'ߺ~իWE͙3GIkVpBHHH``Ç ;Zѣ~~~o_6m,!( XbffSP%bϝ;5iѢʕ+>:p600&;::K.{2ccciأJ*;i֭[!Ci~ W^E7c3fΜ2uʄ G=`PakvY&"%,o&v5&YN=2|{C0SǏgG!5 fH쁙d_|8d^|46  ϟ 9+9cڗE'u ,3f̘2eG9lذX{8"ASL^koaa?H;E 'DСC jأ:u#Հ~MM VGjժk׮zbsocqGL <VZҷ}ff&x@zΝɷ'2{oq#G*MDҷYǤR) 4Aθn:=hLP9N )aOةj{'^Y1P {t4_ aaa0b^oOVrpwkiiխ[](,`5}tƁC/s;v SHPgݴiSbѣGc'Y'p'6zĊ+c9w]GG3\ŋ8i:9`69Xx33Ν;#!znWT{f ( NXل䔖+Wru{6mڐn_FӧM1?vĈCߧO_LCXUQQ,oرOQ{ac` 3N_ޣGgϞhC YI[ZavӦO<a?`4 ,\nnN(g{riӦ2d_z;uj۶nK]mtOžYɓ'5>b8/u"֞bOw`R+Ug&{iBK[YbW_{*%t|FsT]K= B$cO*X(T({*{*T(TTSRRدYZjGCbO7ʕ+ZRWW߿hh(ܱcGzԩm6mmmiGtl7j#Gkjj֮]{,?ZBc +3gNϞ=y޽뻹ۗ`{$RʦM7oܵkWd^ẓh}}}{ޟ(Rߵk!IᄄyLkkk=^CCXyɡRڰRF [?n8@N  [lID`?bĈL{* {3f i8*0999g^t)ɼ|2Hu.3g433֞J&:@cz-׮]KsqqqyڵkH_zX9H׮[O~IУCy&$޼IW n {kx...ի4nX~;T$Ξ}СC gǎ=t髮^uܸ9$ݻm Sʪc9} -&(DSS \؟<gEtyk'F:#Oz$?s)cїdѯOԫ5 8knFwX}d?סG5u5V.o#WDL݆u'̟S,̤>}t&Z*U44093WmXqޝ~UwprA=;vۥKUu9!–-b[gۇgϢi7ȟnaW\f>ufsvkѯOF+ q\uet.r md>} p XqS^ȼr%Jڑ{t3W^milݺ=8`/{'NjVV@}d^EEeܜqm"&j߬ T6ܪWQ-Wo0v{kiB`ZZaZ*f֪SK { DfnťI ~7i {ypŊ^:᫨+Wn‚%3-W`l̛){5UUtQ;q#K!Wg^^ÇO۲"pv~zF<$x$LLvnI2ńKK|zxٿ.]ppس#NT ,̵ Gd^ a7rH{Xod^Ƙ#XnLa;mBGelo;9|1칧C]_-wqŸ^woCI#_8f\76|8Kɔ)ܫHf~XȌ4#ʊs3`; j>iB89ժ&&ņ={2#HeEɰFFraOBz8^ GLHüf.۷-塕~e;}j@2A,2=s=OQm{=;6eX]~H^HXq= 1v:Wo2I칙29r$2_3M_V&gjMK pnlۙ1c#Dxv$nItzSӽ"בwV%]7f 5L.#:ܚvOpZĬ=a(D΢q]s 2aŰ瞾:67k:1( ?_gy3\9csb (ps3#!xCfڋ]boEw[146l fIZu0E;w칁T2W^ڑ؛"[GOb_H4/gTUbV۬u3ǏbV[S&[.ljLtNOx ?x,q-kin١%|akToޖyV̙\0-!;~<8[v D+9ҰsiĻ~TV-Lf7͝ ?jbOfML 0cmMgrKXn0 mڲ)<ļt0)3x`\G"Ұ&0l3?wZU<@C±b\Z5&M ~A}:w*UfWK.~a{ps@].U{;e-ǃ|B) ߆N]:udMRK9>ޞށA!{%ayž4cwr|L"lEr s;]Cؗ{a >s0+ fGR-Jh'ɑdAlI+}KA;|QkӮRړ.ˎן`T÷2NdKj9Sc '.D? endstream endobj 860 0 obj << /Type /XObject /Subtype /Image /Width 253 /Height 252 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 418 /Filter /FlateDecode >> stream x ! AtNPt`e$F٦UyGy{4oo゚t+t+]JWBWҕt+t+]JWҕt+]+]JWҕt+]+]JWҕt+]+]JWҕt+]+]JWҕЕt+] ]JWҕЕt+] ]JWҕЕt+] ]JWҕtt+]JWJWҕtt+]JWJWҕtt+]JWJWҕtt+]JWJWҕt+t+]JWBWҕt+t+]JWBWҕt+t+]JWBWҕt+]+]JWҕt+]+]JWOuN endstream endobj 836 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [383.885 575.412 391.729 587.963] /A << /S /GoTo /D (chapter.7) >> >> endobj 850 0 obj << /D [848 0 R /XYZ 80.963 747.976 null] >> endobj 851 0 obj << /D [848 0 R /XYZ 81.963 719.953 null] >> endobj 158 0 obj << /D [848 0 R /XYZ 81.963 558.397 null] >> endobj 162 0 obj << /D [848 0 R /XYZ 81.963 526.967 null] >> endobj 166 0 obj << /D [848 0 R /XYZ 81.963 412.361 null] >> endobj 852 0 obj << /D [848 0 R /XYZ 81.963 372.743 null] >> endobj 170 0 obj << /D [848 0 R /XYZ 81.963 252.094 null] >> endobj 853 0 obj << /D [848 0 R /XYZ 380.842 214.8 null] >> endobj 847 0 obj << /Font << /F25 474 0 R /F36 596 0 R /F44 651 0 R /F43 652 0 R /F16 475 0 R /F38 617 0 R /F39 618 0 R >> /XObject << /Im32 830 0 R /Im33 831 0 R /Im34 832 0 R /Im35 833 0 R /Im36 834 0 R /Im37 835 0 R /Im38 845 0 R /Im39 846 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj 866 0 obj << /Length 1397 /Filter /FlateDecode >> stream xڅVKs6WR37ve:v+$$)B!ʹr'-an1y><),BodT^ (o~Ng*VʿxyqVI`:Ksfڿ}{ÒTIb~=?|O,>Mn O o'~'O*Kn=Aе0g"γh6BIq6Kӕݛ,L)LQәqjY5}:}H$ELDYV1 ͤٻsƴ&˖Y&m[T͚=)8qs{耖Wgg(ʂ7Fٗq*v$nmp Ҷ'IV1HCQ 6QXNU}jeyv<׭7NR2Yz[v$+6uN Ӯ6UG"P.%e LK~*L[<>ْIE٥;ۣ,Q}cz^,}B?E(Ҵ@HnCaE urb'wb>f¸H_۲ "L`6yQomS.(wA"LgN RV%_>">$ZCahWHcq5*n\WPȑV~\cFn9AvOm|^eR:&(JqYDRyhFWQ ww;$N="w?'s")$QDātN on, _^dqV,P/CzO@*HYfqi}OcdPBw5052 kL$Q@'{ K^:{ ڣu> endobj 861 0 obj << /Type /XObject /Subtype /Image /Width 528 /Height 381 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Length 40560 /Filter/FlateDecode /DecodeParms<> >> stream xw\ǟ۫^&EŮQQM,_kϘkclDQi厃vow'D;_<73yvfvgIXhcN4?ȹ3ұunAgv97OZRzXXXXX>S).˜T~հ|: em: $ٯy?LMm]:R? gрԺCRo$\4h;\HX$E jlHAX,,,_GR_<0$U%S)bq#nU<ȾI7PבB"|>| Hk(q  o^6gVٛG x|PO`^בSzS[?,Z| H-jh/=(呕O odFBT} ( R^Zڞy@19#_OssH{R-YճV#7M4w6}c!U߫G*0g WM)ɭ][EyMSGQ.-!>r$VZi`fÜon[ہC5`<oː |Ee:f. y*#>:X&yaROʣK^~:$=\V>{kϱ o8t[+_/s>ՈM*ee[SK @SP9nQvA1,;ҲCw0 i"eF5~c E=߶W֪ɷ[Xzb@ZAoWdkQ[ e:EWn=b˱֞VvC:oq;9Pi+*L=G&v߿iqi^a~4Be̗Z4*', E*J$J^h L-z=~H k"5`%L9sOV\d4jf6^JA 2pp{u,4rcDǹ+3;.ܠ~7.HК/2HAd2sFJqIрʅ<_)ڎh|1)wm5՘F .h%^=m`9{m5 B~FZgE0ٺe>7~vŖ5AՏ]Q?.oqT)岢lߕ֬ |:ڳƴX#hL-^.բBX*S=1|ѳäJ)I]>ߕҼ_(LȘB;@TМGPԽҖMGyŠ NJpI!iĄ`//=}èx 8LA|N?~(i4M4is5WhS1 H8MZuլBcKE8.A_dfd#Ҳſ#D(mz4$M|IXbiA\n큦$ _ 'Il6f+nI.-2JZb|,;)?߈U=ʅƶ>pRFa\i\c?j$\mzY!%\hC翉ڸc%[z1tT\!ұ菎uuoztxyɷka%.AĩeK.4? V=E*nX*Q1Ha ZwP6ޣ{YlHд->]CY!7^NYZ%$Vv<+D#C;/PVD$s [FJ;ikf F.~J\73xH PW:<~eQGX973fFyY)Zgi(ۇk^B(@S9P1aNSrrQo7)nf.h̑4\K!s65q< 8¬ڢtv!UM=V ,oj76Ƭ 6k<@6 גJ|B㔨UٳM5$3o2FSD|LKM˜{M"}c)6uU/? ڦ%jKCg">̑ e$l|ВP >NqeEה+8Q b+ zMϡ)K!'FArx N-Tq5E@76PʍR!FT\/ɲTQz5F(/l2CI4E*@T4V9*kZE0JJQ(3$(PP\1ΕF\^ NcH)Z 74MӀ%$OcrkbT%HBDT QwQHQW|\(~)k6es5 Ǻ.?[)oDG.ԭڢ53^,&a 70*:"]:0J˫yP5BBy$qw! | b y4@J`FA*! 1Fe* @%h$K^ (>"hIlY 2+)%F)AcVX1)LSZ 00p *Wi`Hp VeIyid} Q #9 PqZrS3pB4()LFq=cnJG"@PPDA@F`9 92OE JZHAB/J}{bS h,Ka(hiZ+' ~^!P{UMه4 en?:c٤7|D(QאTyYjfVظ]RhCL@qHqkaYG jPvv5T3r͐[4dB1!Դ0e@F}37de>f5 4 R@h5DFe䇶2њegЪJ3@МBяHU|%KМ|E@3QN ^ye^^&[>pڿ_囯×j Uլ- 5h~jctQt 6I>Um}^Y;g)|DSB*MQQP_'_4+D(P*zQbǭR )Յ HeFJ{1륲+^1_~ Ջ5C#E*>U)H.NaQbԀu Ua TWc\,uPՈ_=t =EbԄu U(7+ޙ˫C8J :R? gрԺf\hZ.2 &0|%)|| Hix0cܺ!,)|| HmkZinjm=[in9C gʤ7>eaaaa a0XXXXXu,,,,,zN*^'еcccM [SXꗂY"[K]]ݥa\auwԴԫ8d-C=Zz,ˬ n-Vaֆ702eݝ?[,_.&Էؼ7Oa|a8}v+yT]D="WKf- k?,Jٳg4Mc[,,,wuZc-7:)i%IxV]:|:u%%%%::XTT*@Sy|0]t ::Zt?$i}7Ȕ8QafPƍMFfIE(j޽AAA~~~?cnnnŔ颢Yf4ideW}aGK>|s9jQXZZx&66?eO|xPPϟ>}?rH$Kϼ'9#8oD{使!#U䥿.ޯd0b˖-111]vիW|||BBB|||^vjwB03ES%޴xoo3 PH̕L͌oNJP7))ĉ޽-[w1wI&5nܸwމL7ovmԨQ=Wf6mܸqC0lڵ\.Ww^233%ԩSΝ. QŘ!8烉,9"2JD=S1﷏C]֡C ~Ё׮]3g#..[nӧO(*777,,lqqqfbb={,>>~֭<M{Q7p:pppppp yB@Qt׮].ʕ+wII q5ms͚5#p8~ƍ֭[@E%ɐdɒM63 GZZƍ;{nyGaWqttlРĉ]Ç[YYL4iկ^=[t911111133YfWGa5kc<՟Hࠠ O?K %"I g/ H8 }2\A3ǘ{٢' lmm$hoo^^^Æ 9s=zŋ=رcN`>>>@ ?~<"`@dĉaؙ3gN:{YfyzzN81((څS[( JRx;,xcߏmƍ*իW7宮C|֒dtR߾}+ K.r###q…1c4oΝ;z:- \.ҥKǎ۶mۤI6m… ]tahYtD"s玃egg3(j*.Æ cڋ~-''LMMNhPPСC(m۶աj##[1gU9#.n9nJlmmAӺ2Ta4!p-ĊZrDNQbڠaSO'i SWiWj577/?cnn8::^z}K$&MDjc A"hɓ'O&˳g>x𠟟_M9BP"8U[___͛q׬Y4R?qرc+*Iw9880&&&@,[XXܹ͛FFF ԅӠA7 8n``0cƌ3f85eʔSN\xeB֭[Bslmm͌fgg{{{3FɎ/_ZXXT7,p;emNG5k AxT@t_V! tS"EҒbI+q ' g"$\(1KpI'5|Dq;w|֭4MGeòEeffZYY 8۷o߾yÇ 5gϞ2e sr{O 3QOtAAΝ;8Nw2뗐$ZXXP(LMMO:sEDD52==9Ȩxm>z|С?>}33`xڵ/?^PW=yѣPLȌJ]wXںHYX,.fߢEO00 Pdȷ@ԝ8J|"X~FLX=H}G|r~~~BBBXXXzz:3 ɓSNdM66iҤ[n.\x;vXdI5j]"i)8w166vǎYYY޽;wܽ{ڵkW©-7oRxɎ;={_U&+~5kN1QtdnΝ;+V^ݩS'P( xp@;ٳe˖xݻ*qy\f{>T=,Fyޢzl &//|.t9J\H*Jwr\ &nL˗7V  ᦦбcdzg6oŋ۷oGQa򊎎޸qc5Λ7erikk#GDGGn߰a{ mҤ HHH8rJJLL\xD"0m۶:u5[[[ .I77+V}F#ށd_Щg4} ~̿>rnNgN2BV9MhijzٙTa!)Te* +e%o36v"""\u*es@.e[]@Çceezzy).Zz,mwkٵVtE\_Z`E6y{Ujfff}Cttzb ̞ޯcdU;uqf&=xJJDF)`%rXF q\àgarcǎmРŋ333 `}W0XXXcSxM!SvonB@`r8M8N*8)wJF> p8nݺuuĉ2L  @7*y{Μ9UPYo!tIMK}_Kˢ&{;¢'aAT*>wލ2bĈ0m4AvQDE/>d333?޼Vhڴٳ{Y'baс捋__֥/ACCC  |r(˗oܸAP&{P$#]]]gΜ|U?ׯnii6mzΝzt֍̙3ׯaEU}^#888<<Ĥs%%%k׮%I F6m6n8z> E"xxx{{{׷Zݽy)3g:vح[h5kMӛ6mr(A''m۶o߾"Ӯ]'Od29'3*wfffIII/^LMMx";v@D;ݻwiܸ1s2ydCCk޼ӧ YXXX0@СC:eo߾#GTTtuǎ666fffz.fΜicc7o~ԩʔ&N+eڴimٲf͚gϞѣ~ED/^ddd4i$99yk}͛7͚577bSSS Ü,X+'= 8W=>rallRÇJ%tE#FȢ"QF1RRR/^ܤI mۦNp˗/?s ?~֭FFFw z捞`atXnqg@hhmۜCCC322 vҥOV.۷]v2dǏO.֯_ ꃕɓ:1h"ssspqq 4 DXX؉':t]v]k=QT oРÇ;VhCϸ; HqF3i$o6##LMM P(!""#H?Spp0ٳEm͸'N@VVR^?xyy՗H=y%L:uŊǎ;wTTOݻjmmE^sӦMKNN^l;`ܸqpɸׯ_n͍ry<x<.P(ԩ ׯ_?}6mژ|::?lRիWL~9a?Ti?~4(`>7":t(yĉm~Eti߾H$ Y4h|K={vϞ=+Vٳ]TT3c2A9XX>=?XzymРA0LmE:uiӦeaaa$Iٳgԩ<_{{{ $$$|&0>LsL/XYfN޻woDDDrrz" |b*wRȑ#&L(:883npFf͚m۶aW^4hիWŅQ޻w$227o622f]###CCCK.eR(Q%?~ƍݾ}suݵk辿ѣG||/dnnptt,;;;}cO>}}?ÇDqqqL=Դfr.\آE&ƍ[f I}viw|2 >aÆÆ ;qℿK O?É9rM߾}w^ͼ6:XXخ]nܸCӧ罼ڵkW\\|ɓ'^gȐ!96mژ1c~ 6oճgϨC;Eddd 2?mڴs8pvvvG}9 f,>>QF̽/35n8L@󔝳zr $$$"jѽN>T>abbdɒ ޽{7>>yS; ooo%1c*\ 6mDK.8p ۷o̙ׯ_o۶˗l[l9~M߯iYXjϟ?711Yt)3p9s$y7nGK^jUFF6lܸ.XT/h~o߾~;w :T${yyxDDDpp0ϗH$ر#mڴiƍVVVwf N:. d: }ܜ47uN8pjryÆ JeNNN} Z@ P*A`'ՖY|NcdUB+W޻w/??֬Y`O/V[}QXX~zE{?D [YD^KǷ-[^} da|V2Zl...UߺKkJR[[uֶNNN8whkkۨQǫ/ŋ5/QF5hqԨQ(޴JXkHR|yή(8z[CT]/c##CEFF=ZR[YY]t <HeJJ5$իW/f#<0a¸q㊋MMMի=z8{l/֬YciigfQ6fjد_VZ@XXݻ_xaoowޡC2Ut, Oy9N=lmmG5{l(MnOrцnQ T^;Э1UHL(xpTOTBNHZJ*&#jTPTҙ4 WߟHBNƑ܁\:Cc1óPEz-&N>p8 ɱ;uN1cRSS+/~Gܹ3Q,?xnKӧOkܽiT?  }|KxykzjRƍCBBLMMu~F2˗/ׯKxyyyE>}Ϗ$ɧOWo֬1k4h6}􂂂 APPavA`jTdO`*,ps N{7<1&~Et ʭJ6cDlzaJ2TP_26M1˯zyyyvuu.L&xPA~` uwwWGdEɓ'?|*.LJR[l:'+:8 dHuDjZ]O)T.**0`+s\.wРAJ**''A"-Zaӧb1W>qĝ;w͙J:vإKGGǤK=5gffj~+WhѢNRoOGϔ5jbBٚ/ߨӂ#"RyF),PlTW "?qr`g|ɥKBCCIlڴٳg9r|Æ 'Nd6Ԛ_ONN5ZYYݻ}Yðwr x#F(c4Qs:(UaرC.>>fffC}Y}k A_^A ˗`@M*\2|D B99^- ;FL*dSd)2u@͖N̯}h۶3337l0mڴp~J5ydkk˗3%IrѢEO.?±k׮ɓ';99a6vX؏V0i[7ҥZimFjj{o>gΜnݺo^>ePB\}۷5kΜ9N:{٦邂++2љzUGR,((ce0P7f{抾-MLňjx}׋2hڵkf$IN:5//LTQ~]]][*_gΜ "Y}"營8_fC_D*(u=R1}t=<<_5AAAŋ33 5_M,\.WT[AP-..p8M6arxRd$11$Ivԩ,_<ŪK"TuZJ,@(j*r53^ wg ۔&@Eر}رw}7j(j=sRTP&NTZ^-bcz;`PoҹrQ:z\^~"{y͛׹s'hΝ;ڵj<OfnnvZݻĉݻkٲ/Igy۶m<T*_>S[[7Yj222bqnn.3aL:ɓZjذajOY\\]My͓/SJ#z=zRQr{p{ Y|/ aT.E!]X`z^j ݻw7n455СݺukΝOvuu("Hs@Akkk[neee5nٳg˖-=zt9H^ lf4?arVNV''?⼵H*eRRL&^gg .X"$$ ͛֬YhѢoF&5mɓ[C-\prI&cfG?v?Ag̘!HzO?1餥2+W\rE͛Wycǎ1LD… |̙3g̘C)`˖ p?/_=JB6DS q/# #F5Y7J!Cz}]/˕ .dΞ= t_%%%W>|6m*oE4ztkk/X2Ǐ\'{(.=]Ti?_>%_#H|4r9s氋|0#vms{^]񆱵YU{? 0XXXXX]vѢEZoӦw^Ϝw~TR}.BUaXXXXXu,, OW0daaϛ7uM4ٳ҅ݵڷnf&L^^k˖-i޽lڴ ݯ_?YYY3fhѢ{=V^ͼ٫W2ܿp L$xⅫ… k YV\\F_|QՇ׷nk)))=22rȑ̕bŊ&M4mtȐ!. _f%K|2H?EQÇwuu|/HHWWpuf/! `pHHOøys\]][nիٳg}"; }\:ЪU+..._0SN5JLL?G`ɑFFFmڴvb6Nquu)`ʕ/**2223fkX|g޽۶m#ݻ&Mb򉉉cVre˖?2e՛7o "=g8p@ll'Y9۟+a~(*##1c೟%ahƍG=tPvHdvjxO>ewsnam۶+%441۷ܹs̒a111yyy&&&/_>p͛78x&ƍڵkϝ;STTtIA"""޽ۦMDp8g2TY2է5+@ `@_Q"l., ޙ,ܜh0:ڙwuMy0eʔ & ٨GFEE5mڔ$eoܸ HΝҪT"vZfpYlI@wMH@cK'cccc===W|~fd2Yrr2: >-¸CCCW\\|СCum<{ E a:t J###W T4Z P m;Cn}U8%%E !¬ƬofccSs~mիWǏg%q]'%"=(jӧO4 +CJAy \\P(m>[0} &8;;߿_sMv=Q###ek{{`6l1c+::#88X(.YEх ,YDLR3L}ǎO-R5:_}^Y_8 0  'oh`=O;`FeMMMwѹsgȯlTkdd԰aCg+txӠUOE߿k֬)Bao;f4M̙=K۫ϖ*8ŋ(z!ˏm/og1_z%Zl3МP*Ν;/_477߹s'SCCCg͚effv`ܫʈ#߿,_#Y} ,!`[GHHWM\S?NcAT[vt4I޽D"ъ+bbbC߽{WuV=ZIOO_nӽ>6}1߇/HMMgvmoٲ%É:94))iĈbvvvgϾrJn Nt2@`سgϪ?tE"˗/ܹzO``pB'''9r@QY\:>>>~ٻ&{(DDp ""h2۪m]X[ :pTY=$qz4DHy>#s|{=fc)x;ɓ'ƒ0{c_Eb.M, `%J%cN-) ^z577?z`IyuuuXhl*Guuus 77777728*%autt>߿?%6D<kkPTxlRӹ&z NСC>}z555lPϷ}1cx 9s޽;&&槟~ڰaï:pflC5j6o@ddm۬NzI???--?S8p@EF X`߳m8p& p!TV3nl``off6bظqÇ}SN8044tĉeeeX [ff&7nQOnݺlٲN+TJǎq3f8;;o۶MEkT45aT8y@K >~9Id2^*۫hii9lZPP$ϼyԒJJJŒtz^^;ׯ_5777oϛ7OCCvȐ!ǎ㹉Yv7Hzk@*@8A,${#:cJ{CS޽{WVV?~{捶;ɩuvv>v옉 vMiccS͕J- VT(33Y !C1輛>IIJ*A sss@J ,A 0Av Aơ= AD,h@A"L xn1;i$mmmUU#F<{+D9K\\!WRawv<Mum۶HMMm„ Xj@ lllv}èCKʦh6=z ͝qo rE~m36<gΜ~8ݤA>$]MIȽKuVO5* :6~u^ *A޽{g͚5e?=zdoo/gժUVVV7o?e\?w +,,477:tUWW\xѾkܝIm?T; @Auw-bXt:}ذaS;;; k癜Fׯtkk1c6LfJI$Rw]xqPPP hΞ|+U\*)Qv!) ]*SV7nx{{;::bGJJJ̤\!TDO yPGVBlܸܼIWW\X;$L&466nٲe… im*,s/^\yo0Ɯ9 P .PJJJ"C 'r@oA %;-cmyW$12ljj$G 8?k֬Aٳ򫠭mƌQQQ"GjG>CCgɻkǗfXT*۷N ~CbxwՃ?L:RM" ƒ%K,Yp***Ld2+**뇵+++cRXYf^}m0s]vM& 4`cO)D ؕxVEؕҒ{n,Aɓ' KYL#t ʭLӻf,S`;,UQQwukkkYYk&ml6{Μ9;fF"֯_.PȈH2?4j{UZ̷0_^WW7uTDk|| ~G{{iӦEFF <; A-uʒ{%Z+JlЦ]ǰ/ 0`ҥKct:=++5k,\pŊcƌfٓ&MAϿyɓ'4ׯ:޽{MR  OK  z):ۥ>iRŒ%m{5;w*Իwڵ={yzʷv?`[[[s_]zǷ888xyyIZ} ZfX8E[:uv ,{s-.. ;v,7ad}FFF._k\hg0LHH022Aϟohhpqq[nݺ5rB;OU֭[n/~zDE*׭ÞXSW1$][lLPQoj?@I^! (!  AD,h@AI着*ԁ HC=:kVhA 0AH0`?L&t/^̘1̌JhϟnGSC"FUF#kG4ǰ?6_;\E}\̭],lڵ(00Dt{pp0_J T۷o̘1{ WX;nLjv`6mR뼽Y/_ʱN1;`t$ݻw4MII)666%%e„ +#H7Mu[frr枰0SFgI>MkSeQQQ۷ovZCCܹsEC:*--mڴi.]ڻwo^^^@@$q..+kKNilwê;wj^JPU2L'>qo蘔dee5o޼?s_*zzzn imm-A)*jhkhk`8~% %Ɋh5Oyޟ?ש Ba@0 њ >|xʔ)֭ؗ[]\\?~lkk+444?"K,ko߾իvYlɓ'ǎ+ġ+;[NK.33FQ(;;;T[[[YY)Oga H=zrJSʤ)( ;]G$)jkk[ZZtuuonggL& vltst:]thjjڵkWppYuuҴiCǏ::x kHMM"=<<\t] p:38<<[\Hڿs+(~ðlw>ֶpB}}M6h/--]v={ ZΜ˻k&&&2 ΔXP(߿督v 09Jv%@DaTml`8,AQ#iNE"***-Zh"SYYIPcSPRR_X,VHHPoǏܰL&sժU/^{NB~-g|zUؕJe˝XJiiiQQQW\q%&&( kG.5J[8-iiQjQZZZ+mWM(iB$ tsPӧOLK:il6͹sE5D"-_|Ϟ=2]`А``(aܺu?4zٳgGFF;6888<<\YYƍcǎ.EA)a}A__@D AA "4`  biw'o  @AĂ AD, ܍&MVUU1bijgWRRׯҥK𙦦1cnݺչ ]M(  jj6E6;w(9p&0?}.< /۶m322RSS0a‡Dhjjjhh@}}=ϙ7ɓ''Naaań/ᝉ o*,VUo UUǎm˓gw())-Y޼y3b%%W޽{ǧfϞ}ǿ{=vؑF;wyDu32k-Y3<o/agwRvoةnB##ttt@`8zMݻW__ }ԩo~!Ν;UUUi4 ꯯777?_rssKZfM奭Eƪ[kۻ5ROONs\ʓwتS7W׮]8ݻwڪpDZ؞JJJ A*Vs簧.ka`O~Vx&VMPQDqrr?>>|(wN癧ٳepp8ɓ'_.XuuJ&M*vqZS/ Zbkϫ]n<y{nw#>>+777??kr功mDkD|ɓ(^h4"7]Ǟ7{{{y;;baÆaOTTT߿/l || dPh eܹP5iΞ|%7oaJJDCCb 7nwttĎJt&?v옱ԩS:Ԅ:w\EEE {eeev $2\*ZvjD}Gev2IڿSԴP(7755ꖗ k700߿޽{L?tAssѣG {Spuu=~[|}}[ 9sj oa1@&-D]]lXFRRL2dL8;O2h޽={駟jjjlBҍJIId!0Qmb|c; Iw.2ljjJ$m?u˗/_~b` Ǟ)`WVXDYR}1wޝ 񢃒z衫[,Yl٫W.]ԑDƒYrUum$7&۝mm HIhL6; H+W ƿ߾}{Uǝ2̼ϿQx]vv6J[`ɓTWVZ5j(a dY@&U,YV\=; SݻrZŞ=<=[aڽ6$$ƆCq8Ozyyijj*++>ٳggƍ RVVVVVvpp.㹬\v {&J:9Z! AA "4`  bA "4`  bA "/PrKlllvoJ ` 7D%ӔCd,M씕{]?fa߾}x\(Gљ/޹sgPЧ`aJ@$cX6n؉ RM(;w&Nzƍgggԟŋ+W, c۷#|}J sf֬Y ڳgÑmkf̘a``?Ñ#GxdȽNa%Ld2+**E+;X4˷******{lhhXVV&q,k֬Y)))JJJ#1tP ?wիWX(@?Y,+ ѷCQQں{ZVV& 6=gΜd %7773~zlC^uP.+..YYY?Y@XTA Pf…+V3fmtt4͞4i߼yɓXK~ !={c 0㭭BCC`ɒ%***}\|9<33sǏoiiqpp ,XBP7R;rro&Y1]?IwsUWW;ĉۅYhg0LHH022j744-n9rdW}D֢Eaz]˩®Uvv6LN&ȷv%A PBAd  XЏA 0{F! Q=~{}0KD m`vdrtAd2NǞԐd2ldd4rȘvxbƌfffT*F=~'_a:^WWo |j85*2lTe4vdLs O*2bn\?bec׮]FFF%%%ۏ9Bطoߘ1c {=j}ׯ_O&9"fY44T5VVxRCΝ,VӦM5UTj7K9)&q2:ݾm۶={a޽hJJJ)))&Ln***OVaAT%k&+a k8et݁s/ZZ!*!mqV:@_N>}k׮544̝;Wt;t.ViӦ]ti޽yyylS~ߌsN^u.+kKNilwê;wj^JPU2:^$^90͛KER3g\dɀ~W==Ca7-OpΜ9A*jhkhk`8~% %Ɋh5Oyޟ?ש =I D ZÇO2nc[[[aTY,ٳ߾}+w555˖-;yرc^J̃+@m׮kTĉ.͛7}FYYN ks $IWWW*E3f̰(Oږzoᔖr }}Vvl!-@.33FQ(;;;RԣGҶ2SSS 6\~ASSS DHRRe2iJ4ŎhQ&Iwږ]]۷577d!bqgSSӮ]eiy|8I]4m!#ޢ@&j lh1T$sy _9 ]2/^ryh K)^5>x{5:fϿlB"_Ҫ kii?[X Ggi58xr^|5cּQ;ǻ{ Zb\y455s d@ۉ~99mYaM'6J.'Ğr\\Lz͓ޑ"hw[OOM?m}gԃ{T?nY_xo>l6GCC FIN]]E+*:R$STT;?9z9Hk7 `ohc0>pC qzj5kjH$p8$ TZZVQQoֽaNn\>|DolloGTUU៼ObvE&#WhDc9C;>t#3OSQV6|w3` KK;fOCCPAA &ݹo||suAH)c~Ս6|s{ǵK~X8d˖s6*)?I.q+߰A"O_^VY][Et;\x?vJ:ᔩ39Э{ds/)A"ߦdhO,Io)ijj~7oʻA$|%1svȥ".eAA$`h]thD:ntMhD芇A.  XЀ EK̖te"ߔ/t }$C/%<-|gH~Y-QY e H-A @AĂ AD,h@AĂ AD,h@AĂ AD,h@AĂ AD,h@AĂ AD,h@AĂ AD,R9'OΒ޻wDw5]twޒźFvw0fX?Ò%KxVٳg/^tss+,,]bŅ n߾}Il$z~~gPPz+ߟolltRa5?~L&mٲ޼yPTT4|?) l߾\p#z&p;w+??Fl1b)#iӦ9bffF^^^))) sH]/;L&WWWctuu,--T*/,$,qYtrr211QRR;v|.RSSA^z\\\=zT[[͛rxҤI$חJ544v8KSSsժU>>>ÇظqcZZZss2TUUCBBƍWWWT*Ν;l6[SS)dWWWuu 6tݹkk3gb_[['z9;;lʕXJo?l߾{&&L`2/^pssA.ARÿbJqll˗/-,,… w~uF2^7oJJ#^x/_N6 0p*"HT7nxY%%I& ĉ.~kρߴ+UR8 v555'O  Ç1BWW?BCΝXA:9NDDĔ)Sjgg7gΜ0j業wCyYYY{]]] ƅ 233G IIIb^:3gGEE3>>>++aӦM⏯MMM$ѣ\L.]t&?G# ʡN߱c8Y5d2-[cǎqŊ8//˗/`?Z~~~QQQmm-M_|URG^^^{0`ݻ;bW%@򊍍8:wbZ''' ү_p ~mhh(6>^m޽}}}ϟ?vX1ߨ8{۷/X`pEFA .Ú5k&O<`9t /X?E@@֮]|iӦUTT,--lnn>sL;bĈ%Kxzz>;-o]*.uJ{ezd~^|Y]]=tPؼy3~-"BKݥ.A&S^^tҔuu#G3,([RywkBch2[?#F]W^GDD9255ٙJbY&keoo(s笭 qjcbbۻw}S3!cɣE]]=44ܹs}VŲ kkk;tP`d2 ,,l˖- d6;;ɓwÇnnn+Vp۷&븸8"ѣrqv_|bŊ/]kǫyfLLٳgݻ}@X=T_dzΚ[=lذG@QQf(Y&'#8TUUCBBƍWWWknڿ`ll})SLMM7n/J~ɓ';88_/_vJ:IKK ӧO4hЦM\]]|Y=<{hii011133ۼy3ȟ3 B$<<|ث۷o_zua˵SL1005jTvv6ȟ,rDLoafzkhhhkkϜ93""rn(ZI}O㿧h Ϟ={IFFơC^z%0gX`"b&&&N4 D-իW===X,dao%+l'www60!Jnt[R466ZZZ>x@SSԩSX0lذW^x"1[LT_[[[YYY^^TPP-J,lOV:zhnnױdظqcdao*C2Zy)cX?? |NA^FFIS9]!mllԤYZZ*pAo֋Wo>ϔJ*+>`p#Dcw}}}7mڄ cኊ!C`-x"hhh899ݼy L ={DSSJa9TFJʻڱ kOK晤ݔ7nhii \qR?SA)?o3TTTjkk񧕕'۷YYYϞ= L$<<|x̙(=={zzgee544$ |SDLofzԔs̎;DLuy|v;Oܗ$K-ߵ۶msxҝ"]zuz|һ?޵kב#G3 h[ޟ}Lc㧝2wܙe` Cr'Nюlҥc+VmmQA@B`)@ )tzNoy$:RVAwbSSSAۦ :EhXxN`0dhvIIZZp~~~[[m6ͭ)' 7oތK lboܸáPh``@O.((8vؕ+WkMKz["U} ڿ@?[ o*d2  UᨯrAڿ@?[c:UNo[ s<ڿ@ЇD`)@ B`)@ B`)@Jz|pdtDug& :_~~KmzlIwUqfˀ{)@ B`]`O??h@f_--Ŏ$mtYYf*y<55EۃݻǏO|7a!ēOoOǎBw.6\Y/.O[$:x||0h%w߄;~|xdL__xӦ{ZZoBtvn&>1#Jtd|\=p`w^xo!w߅O,~=]]s7nD]+Ù#&B`@lؠb^Vx`0]ur󕶶 ^oSf>6Z[WKJ!EΝz#[Zuuݺu'?f_~941 <%"0@wGv}_Up w~䑜r_3K,\@X,Yᄏ%dΞ-B> stream x} xU=  *Ȣ"#DE-( 2B ,8@B6U!BK ^v:N'OBQz*w?RNݪ W#F1bMkpa:bĈ#Fi&Rj8|1bĈkZEQ"qBbĈ#FiLA:?¿YǣK1bn۸LA2/k-uÑ_w.%F1bw7u\ %[`%mKߗ+y#{õ}I]K1bĸü_3̮t  U^_bĈ#V-e:_U䘄j_ b_bĈ#V3?ySi{cf|z9yp#kC?D1bޛ&N&֪e u5GVmKϽrS_Q:eg:U_.Ϥi.]y30+)O*:J-ʮ?\qNLxNmUo7#oz-R[-35qd2]bJMW#Fchn󰿸iE;h#;:_}jڨk?Ŵ;iC/c_gu8lbKM:cΩKv@/MgRs>ݝhwcvQhWVJuS>:pwo/]/;qe52wn+:#U(4ciruu&VsYT'E|uBjǾJ2Ѯa !JyEB #GsOyΪUkv&wWe-ZU&\#uUJYqAml&`Gvj˯_\ZեƴVy ivd6VR4G "vf,_ _%G͋L]XXwalژpW8gĹVW)WgV{=RҢg?LV!sJKf3 ,쾽Fۘ*]Wl7|\UoE1Kס Cr J`/mpXMu% %;˹/ A#/N!=HO]=4$gXq-ψzỮw@ڹUՎ}?p"4oELR8 Ah Ru~mU豼ɮTJslVR4y4Ou]7!7#ciTƄȼن"Q3_i?yI)aW<(Qns~Rh6ŨZo 93"jO5$2rLNNzm|B.m {bg#FLÅՐpbh1oz/mxXM}1;˹/=T_*k'[e*͸0/k#Ejf-/\:%/|gRqI@M$__)Sgiwtwꂨ%zMS+vK,i{/Csވ43َ=/NNq~ABQ2">D}^,V{y·uW.g%KKv}a'EsC 󏈓^l6Lelش8mqy.UH4RvmXx΁5&d*Dv1A]@;h*v;;^5ی&d?{;1b;C)Cv^Wڨ+"Q¾ziֵ+KE|ytJc̟oOaQ>`~ASQIl&.WF]3b&E|_Fm|~e} NAQ ߕ;",gtmK!q}FrYcjL6Arܝ>9,g-,&ݢҴ5ohFաy~qL|Pqr3$e WH~6ttW)#ʿ$ޛvC,2*ݽ:uTYWF1`e}g? 6i:FetSD]ev䕱**p}EW\,:mђr]E؁9T?pfNQ5N,{nLb]fI.luqg<(+̌8ᔙ<).D- ݟ8}mOk iΎv}B1 lG>:T#߹75>Q ^s`ɢWM7I>>_c>2)#0'0_xEcnwhI@/w}=L{'IWv i?`2/cɾm  .\c,m{WU)y_-̫w8;\Z132u(BȤ*Q!z= |3^ |_v`8x\ОD"O:gp:vݨF_X4_X9ӎє qRkgVdDW-]Wb,^;e js3'S5feԕүsL*tsFkm6vl_|ʥuq? !"S0/`xĭ#b+c{G5ζ谄iE/ƽ/֔YsK2Ѱ OWVkKw%應:b͹oϭ8=*G'r]#{&*%ޡ2{G.6 =3J*'9evxJ5G҂8kwޗW5*UThs8gdW׵U&`L8z=b2'(jAݐ}eL4F0Vk/ܓ:6cjT]Ҡ")Qm9maThiD6[ ٬cϬsJd̫=iLe]~\A1LڠPW,NԼgkuR#Ygcd(Mo\9W8 #FWsߥ 8apw:=(1oz/m/n<1WCطĦK0&gLx$lwqGgϋ4.mY/.ŝ<6ã$#vΌ,.븴%.}59&cYsGfcd [1RV9$17q䰚ٻ>7=g^{_{R`gs}5{.ta n(H7&1>rP\*.{i{.,4/ڤ:ߝ~qg8"FDI碸Uq5.}smBdXx\̥4=.~{uJhXƦ-;9<67,K^w+;Ņ>(:w,N~O@n>y"bĈdỀ[ x$O9XQ.kq1Y3cMF"HG̈2-:gr̵1Ŧ>?6kZL:Λ57.cAO.ό}{dM>2:j.ְwb~\埱W'GG0v앩7F=3.̏c.v:S:&qbrz,Wu5qvo/{6'.}Al] !}㽘O???]{U~l&Ξ期\ ίج.-bp~噟 \y?hT͟b/-1xybĈqw Fbگ&T|pL>h[]K1bnLAS̏~<৳/x+zǣK1bn۸u11bĈkS`PXbĈ#Fc9"+I#4H#(M$HiFD"FiF4H#4҈ FiFZ=·;r'KFǏ߼3Fƈ0"#F D2FaDA$ABaDFDIA$cDFD$DFaT1))驧jڴĉjO\X: ƎqEGG?<@bdZ۵k׸q_|1ֲeKqcRO5nW'ǫ}>}7^xa ra+uz@caÆuӧ-[tرI&nEFFv}yr6 ~a$Pl`$N&~ۭ[F=c˗/X,BDB6m(: 6ݻ޽{bq7nuX^ V P(GF&{_rBKMM]x1QIR ֑#Gt:ݪUw '|R$(((hĈ1&삘m&`҈={/8:00'A eKJx#cD.W^[n^z5QST[}BѵkZj 2AbuW۶mSRR*++gΜ.긇ܥK}=z`6 ۔ J$)++Ä"SxdtRD'N@{!f+199JKKoߎt%D D*EyǪܷo_j3FHHf%xps_w.D-ϟߢE (,,&ٌXF8ŋa0֬Y3~xQm͓'O(%vޗچu86C}vбcG-={[&ޥ>llҤ)FFѡ7bgȑ.aequ~z` YfQyyyPazoA5mٲe~@~ήXؼ3͛7ͥ@nj#l fdd3x#܅ e*(VM6M:ڮBDa `u8 dwD\uR.@tԩGA+@jaٺukp6l1RO?zĹs7 6>pB, ӭ:ѝޅhٲ / q:AIJ]vBO((VĵkΞ=E/H8X #⮯KrIaߏ$0B*yiС qƌo9F={޶-+ ƨ"w}7&AGm(;Au m6X`y#8guxR!__5Qrrr333QLp0oz޽{8p@Q$DEX[B܍١L.8"#TK,ao; """ nٲeڴiLt &. rpB"%:%.8ѯJF?dӘbBs 2$ˇ ƍDFD.6l0|pz9ѴiBСCOxKΙ3 Ftlh|pŊh\22o޼͛?RӚ5kFDԡP Ht$޴4EEE = OjZ"G )D"(9c9S_~6b rOSԷo_sts˾.]'An:g+3ZdɢERHm%.@SLiժm۶clxg~O?*_=޽o~%Ýc*DSӦͣK "F{|  u۷o(\M=JbELGqA1L\YZN< m„ X/NkҤ 3lJtO9tTPi[&MD^z%''8Х:@> "]v 4Hho^ ,HIbP( kҍ5†SQ:[xqI'aC.]zmڔxq61KA\j?t۶+(-{+ߌՑocbb_KEzbX%?C8 ko,  #\%P~wqA9|pn軾ڵkll,~cevy;z(о⋞={rk ,cxgt[;v`˔ 8@D*9c[h1~x]z5U /⎋s_w. rZpgsbt8A5DV[~8ٱcfZxsӧB yxmƍhΟCرc۸qCb"\9;-e믿.JcqƶmB,X`6Y2}t#`1_oClݺݽToX\sXU" A 1!=3{bnbXX@Qwo @|{=|S :ˆ09Aʚ藎xt@~`F~ mY(~7GA$cTsFw,R!UFaD D2FaDA$ABaDFDIA$cDF7OiFiNZHHƈ0"HH D2FaD" "d#ˆ"D$DF  T7{R0ݸAzΒea|էG.^,lɑQ%ur Q3xg4iNQ5ksoˏQ!a|=& ۶CKAG׿,ryW_tNF'`+1&O>U"pv6EpaA7kA;q:U DgﹻxfÉ?Uv. x[_Č<8/'j~Yأ .];rYt)f?`eI;Y$v\x3FTGDb2UnxDgDY z|  Y,5n ex~gJ!J.:w/rD{Z8/ *{mLfyՊ%GŲe\}kWɓGV-xɪ(u9Xr'(sy1 ;tyM] xj[qc+Ҕ/DEP W+hEtn.} 'hA4a1ix#*=tk~ۥWDgDaɣ z| "Kl8yȈ%)Aԟ>}{o/K>ac"K<낈hㅪM&ItǎnڲߗL4uxxs)D?=|ا I^ٽǯ  蒲&)fSFdwYV$:˘6ml5?ԨTbI-Xo+h! Y;AwBÒ"ժ~dذUg)BFw@YA@ŭ B+r.vk0#r|.AD(=Cۚ8 ٳW/QQ;5ٱ2Ŕٟ{ %˜ׂgj&_ɜHD>y=Dgv'P[&a "WICl'(!{Ky,:xFXy6oiTUmjK$(E~tGK4w^K=>G 2}hC~'ے#TjYgDKCt RU*׮QU6 V`܃1R.ol%CV|U O{9L̼-So8=Cdx[)* 32! Q=ݯ~qjLII?Ked KqISv6}!p,7>$i( Ѿ0|Ǟ!҈[s^eZ~5D"(c }<;?CDϚ79C풷qIJiӊ6c"hn?ˣ_rRR VwBKYzn$@M xߌ Y` .bN!W^q[X,q[ DL?ld "y'9{?[$዇;f:nnm6\'5=uGZr\yA+U\x|ԪTb)-ycl{)Έò [DJD$޻w%K&.oc }#64-s%iLdw)8-DٻXT7#7j$nN`Ydg>pNs_/|VU{Atp:, M>X{ J0A9o9]oFvc\҅٣N>}Ë1 d'R+W"܅쁘tQvռ)7Cnm,حj1DaY- "UV#o;/]<; :2!G8Fyč:w~q㦯:1ia;C#o=A{j[:ˆ0"xĄm6KF٣xс.3DIA$QGFn]b[ڲ%CDZ쳃=jٳߚ5.#0"H0"A;wӰaS4hB, ӭ:a$5FDIF}#3f}6A(ݞ/ܶ-+ *"Hj" #C?dӘ_Bs 2$a$5FDIF} ٳOi wJw۾}_~`9&ˆ":ˆ0?1!AC֭K<|8xɓ!C.6mJ^8oxa$5FDIF}#~8ٱcfZxӧnB yDA$QGF ޱԔOz੦eV_c0.DcM P& ?п!] F֛vvE_,zp(O'uyq^WpuX/1y(.ǔJ+p]~WW ~ZZ1ڢQұY,Q:+v#{GiUDǐݴaÒM6@ҟ&췕vvk1c˕-7-BDBqN {!onuXHPAܶ- Uo:&M PG(,ѥ]ty{_jH]\(\f)Φ[\ս;&O<)2Q2B FTP<*. k\XŬс|rl9~R 9!cD.WAU[իEʪ} mz!Z+q+@i]mmS)@YLLwQ=..=*yGA&bDY:e2LX 2uGFK+"W~/l &Rz;$FF)d|/Uo+Dd澅}m̔ǥc#:k<xm\tR.@r}~ P:&͌R,|SE7D 61fɲq]Jb[p:CnA ycmG[z^&%a76kc:TNP\ut3d$ 4FX#c\7]a+K FX?̒B)*\1 <زe?o  wFry@ǔbB3٠L !wp[b+Aܤ4l*]eBDa `:\tR.@I:I;yD.@(:v",[[Ccn(bD {Ĺ7 |{!w=$5Ӵ9aI7Zh•Q9!Tq+{ rlK{](vQK F(?ϥv %G:XdᙓG1]vVD6b41{čvvBO((Vĵkgg7%" _d.rw.]'AޯُZ$0B*yihmBܣ θ[p~='jTV@nTQ'g$(؆ u z,^X|>1B __+VB0J'4fz}v7=WwaBD'!"-D-r#.@?WP A^BD%(((\sPG[Aܢ2lSuV2,PrK_grI9A8P@oq1`N;Q ת_' #G`D誁_Q:!2 xgzίc' "]]+W~!K`g15@ (ҍaᩨCeRn5_KNM Ձǎ[]~(SWP3w+)P!#hbeŗ/$\(/V 1F0,LP<@ F.˘%P~W[~&FFWiXM,~ce*΃QQ}gAO\ncb-e 2Q-S.@o~=$TrX/O_.z9:av$   BB[bt8A5Dݼej3';l?S0~q5uR̵υZ}G,ŋŃ7aj%xg^[o c.#vgg3 S:QpGF,3g`Y>ovb21)_sgt0{%#w)xy/.5M܂-6 lTa:ҬNGFFSiJHe }R N`|/ls4@LtiA^?￯pjjTȈtGt:Uݻc HXf@ Č@nxذm[sa,mt zWУ, %ܹ?e3% "UitMa|٘C V슅 >L&,e&R`L9s~ʼn Hm6t\6ynW~ȣ 3g_T "y%n o҅߂~ Ń7Sf@ŢE~_!Ψ "f r5 bơeD].Dl6T(H_աB3BĢdp9ad MH$|5Ʌ=Gmc 얾V氊`R(T?PatT*n ƛ FY"YPa-d_؇ۥ82bE ͆t_e{o&UGDG(}W6eJ5?RY;$MZzӍg2?*Dۿ+pQQTi[,t:6 LKǍBSRcd1ԦJZFʦMx*2wdfyD͛KyʦNjVoV,Y)zb[,?{{T D &iiʥ82bE "6JFBzɁ:gƈ]ٽNo҅{L+~+8. ) c1;$V sb WFaŢ&Mz=t(Z7@>}*׭sxwF >ZU/.Emq۶Gz/2Mʵk,,i^DAE b%9ޫ tDž)5xa>CՄ <k<]ec[ۯ`դnfy).={H=z(WrW ]Ń^"uxv@ؖt`D/+HB0(BVaSQfƍ?*Kkvvy:@O;?>p@:+We)+S FƬ,o¼DuD=IRi8rz#woKYO?m.*CYCӐmB*_dB/[v"/c[=F( k W?Pڹ3w,ANQo 䑑Qb<ٳVmMWRy).jѢ\qԍaExSoS-).t PcxѬ+X0wnެy۶|twf &Nt, V+X($qf?ٯ_OVzDy),,[K5,o~tĈ}1VWϝ+ @\Ah񞗟CmxycdIOA JxFm|<w,ATGFE<2r~0"TCFaDF bRRSO=մiӉ'js;6MD0"#ˆ0wQDDD(ѣG;[jjŋ4h@0"#ˆ0111o߾vJJ?Al6ү_nذa-Z HFaDiӦ5VBB![N8y|N FaDF ]v6At邂=j"aDF-[lvsB`װaI0"#ˆ0/СCPRIII}e0"aDFat VСCbbh4iRPPv ^z%''8""aDF})h'Oٳg-ƏO}q}TH/RU91ITSMEM'&>X:6۔M_grb/hM'QtC@7XeeQ {ZZz {.@32dprL9+wxU FT1ڢQұY,(RU}ߑ*Yƈcna&IHINO oI5o喛!" Ea~ޅj C7L7:,DTFkH" bthdiwR +͔K;#Y:;V)Wu/莉 DmO")F0yʳ&@]]R),2K^[V[W+WCb诵=;ާަ5ӵVVX}! *$#ڊb*ƈ{]2\zThME%t,e@dV,E@'t' W~/l &Rz;HF)d|{,u1++kS_Xu&ܷ)Kk>XY5\Ex6Z0/BԂ՝s) w;ygl3) (ߔ`xͰFfl@YylGAd9#! ԡ7bgdHtVMq䳨((A+0/26ysQ\S.}Z1BVb!Py&c`]DAUIij٭E/H8X 1uץK$܁051CCYFXE;O7!5 -M({D.@gg"Ie!mw{ԁȶmbxbE3x#8gTI/@Q~Zu (Y^>Әb`\sv%XOBDP`m r7F\~١L.8"#TKQKQQQ\EeZ4l>X2,P"I,}]'A@|~#P)KtjK\Eq*_~z#NPFT MEM@3:=_FK+)C#:6xgY諱i\22|^sQG$~u(TCdAM3(JB ̿/<8=x_!rPK2;9J1! rOSԷ/x1Gǁ.]'AYW T,YXDmZJ!U,M)J VaTCpZ& `WD%d^]ymQ/#,gȴ= zcő`;; mlK3ӰcΆDg  #OLŪoovtH&"LM RQWAd}rhuLu`2uٗ=%|D.@ԻW207B@Lc&3!jR), P0,7SQ.@51M`UW8R Fȷ1l|YKE/ ubb apI1ed*sLj ann]_ltv7[J</z9&/XfݷLwT`˔ 8@D*9c[ZT /R⎩s_w(D.@  >Sn)ԐC Λ[\WǬA3tR~CƢCKb"\9;-pu8P^H2ڨV*@l30e|:bt>Zzr9˓k.~xregig*'!{:U(,E#F(VU d2߾e rB1rѐ!C=F7kVTX@RQ~̣kOP,X6mR܁w, A%,LDfv0ڹz"zG%VX?Wj%nR%ߊo- Czt NgimNkY#ֶºcbg1a /UZu0BIzaIǎ&M7N 1nff(~m 7nP=d KM;KQP9&bQ1xp}0(ݻ߹Cb?#yR#XFUmڈa۷WcD5H!RXDY_֨F.MK3$&j?L8>SQM "ۿѥKAWsǏ|C%݇> @ mw "*D_ T\P#"~`Adi'ONz(P*7֮ a%Rx! @beW1n\L&oyĺp&5-ZO/[he?Vl|Nz0=[R,"K[Bj #l̛W v #HZߘ=|X'nFQW}/2Y$'\i$4ϩ饗D"K ~|"0CgFf׏Z*IIIO=TӦM'NV-Exx6_QyI>"]ݱ]|}[E?ct#1FZm@@@DDB=ztppSIҖ-[9rDӭZ{V/^g$a1ޙdKo,}0Ȑ;53\md+ALLL۷/ߴp2h fX6bĈ[Eq$ #¨~b}_vv#~M6M:ڮjР u։'eewn322Znm0HFaDF ]v6ABvVVV.]P01n߹sP$aDF$[l6mBj6,00>|ܸqOII!ABFaDgxС~Qiii }v)##;}Yn՗#ABFaD+j;t萘h4'Mty[C^CCCܵkנAČf7HFaDF ޴gɞ={hbW^MG!!! .lP !#ˆ0"'AcdIOGAwFc(׌͓ͪe= " L! U5QG;#KF@2GƸnW@~%E3A=&wa[VCD:b"cHn755ҧES:F A0fg0x#/" UqjԲ[`BDa `:28Fa.s) $< " vtEk71ROC= " duQ%:K;OMZQ F?U4t{e E@-#$4-{W7oХ D %#sR; T#,k,cLDtYI3/2 bNN1IŪWrllB$#`%Pd.b.k#CCYt) ;;t!!`vn|1BjZ24APn)(\ςE> 8C>Rmfł狞g>Fp೅:<^$Z5Q>}1e/`&Gޅh7Ju!"-D-r#.@?WP A^BDeۭp+BQoqj˴iLn}@ɰ@,X#X: OGF9,ѩm,q+!Z+Ae'(v ͅB0ڠ0d8h*j!!'2ZZtN&0ѱ;ͪP@_MGy󚋚#D_Q:!2 xgziD9WXO%fp᝜z%n}! rOSԷ/} \|யKrIhIŒEEvRr[ Д)ĭmmH5 lKF{5{iA\2x:LG&%1¢~ƇLۣ;F\P0\ ho&&`;#8 2^ "C6elR" z%Q,vԻ%e_IY}3HXS HaQa!(6Xrگُirx ȯ*‘1BVG`ˊ/_*zIC/Sl`nHHLP<@ F.˘%P~W[~&FFWiXM,~ce*΃QQ/_,艓-rL^%ᝑ[;weOGyt "cBblkUǎ&MDgeHu׮RLwޑ)Vaf۷bq~D P+ѣKsija $%AQ*5C50d:m*eV O>Y 1DЀXnP KiJ^"UukUuuj%Q F*u}6!]3j% K˕ 뮶mJk`lL9~y"A1,LMklÒ"|ŋ`Y?^&h@nެ$$XPADVoF͚BD++Cq*֯VQc$ 2VkCSX(HݰAYL/'6FH>kҊ9s Ftlhf4+VkRv>Q0sBByD4{X }AYnct¡ 'j%Ֆ6ii.]BЂ۰^Zjv"/YRhQRTtK{)SZ?m[1 6RS B0i3LE%{5 R.#e۷W :M=JbEL)2|=)N{*;tv#ٻsf"ػvUI+=Dք8o3T!^C6d%SXΘ19Ab ݸwu^=Od)XDk"#`9st.U.S(]sSOԀM5@,~{Ցk!"D:"B[DTtjQ Q 1=={&L0L,\0***$$dW^%G&DPt[zwEPI< FIB$!T:۷ QS9Op`hy{GyǺYu]_b(0Lqqq kB Q4:{4;D77d*#Dk kMZ'm'!`Zֺ^:>ӑn1}A}<̑@yѽdd wvptwU22w%46ΪKky7#D?t*-N5ܺ19c.inn.-=ܾ~C*D̢Er Q"K:d=)f,#;H=,84 TNX[(b6n4zd0##D>>6d_3 F"Ode͑phRֲ %p(s'ם F_ђ%֣Ptz a,aw&� D )"@4BL*!Ւ`!VyG۩^x4nW"! oٟ̺`G]IJ5BqyI%D!jʂ):"NOL*(rx% DPWku|3*{3B.[U !BEoK!x3/07?"bH64+[؜,xqXWs;o?_UDTΰnj=()(o$me E)(Bс 1SDD\[-(BT/Vvf)d\θgsEAXt"^< ;Я@zz )#D(?_{¥@_Ru  Wtd*|Hq%Dtl܌vwSZ/Q(s!2Uqeʙڙbp \|kGǙGY}KR!"D0{{[[(J=)""aX%D!NNnK3NNG$ RtnN_U__EߓJq!Eˢ/ ޷oqY7 DffWWPL=]8nPKkeq$& Cs5GB}Z_."XH*\uZ֚]ӕjJ!)7ɗ{/+qjo/<.$o/ٷ,-U(nN;0ŝ#N*d*DުUp8cr0HBeCJf(ŔE(C~o?FJ#sts\^WDevBq{2OoEV(6=-GOE]],樨1EZ !"Dꋈ"BD!"B$D"BD !"D""DBD!"D"BD!"B$D"BD*NY$$$$$$PH!"Dђ)!"D"BDH!"D!"BD!"DՔmO?֭եb(I^NVVen79jX];W/fF059۷+<\B L 07qʔ\ (/#Fd3 Mv4WNC'a 7-[6m2ӕ羏7TL=9{vNJ.֯7g2tQ۰SG͚WmvvX-b|bŷߚz={s{񢝅sᶰvCV(bwCcy*(DKBBѱcV0"Č +HcF_.Zk';3_Ӧia~VWt]D Q"qm+BF*CB$9|*%,rdv+y;+@KI4;5׬1 6=ZyDxvOR"A~ݹ,x^2%D> ?t׼ZAɯ^@ǎaD/W,I?ogjuuU\JB &H~.."DBw)!"_{9m%Y"{D SBt@QV׏ Q#B4o.SJ?܅O% c,Ȕ^u`x+B @6o6*^k3"뤥TBp%%B,W0 ʙ#"D!$2&y 94B͘q7;W#DjN!~aA <%ԷoE`'M?_|\?.#B$D"BT# qqq\ٳ vzzzlll6m._LѴiH&gΜ!#!D"BTcb4o<--pL8qEůcbb222nxt:7zj:u5d$"BDj !B?޵kװD=dnT8p-[Ӓ)!"DJ6ݖ]=T:A3) -9BqTS8vuSdȳ0a4*D2@5*;DN;GCC|M8U55F%NN2Bu=Ixu|#}c>yZ#&-{SYSp&'l'!~PA'y:YuZZ-/sYXBcicNڽvw3B3یO0%̤oX- DˢSM:nLD7 RYTߐ Q9c?(\BHcYYwtVt#@fI&qIhn쑌8);e;I[~Ql,h`FF ý?O!=b=G浱@ty=B q6AHi$S0Y3yvFYs$./obd !\2uaїDD$ (5|X! o!f2(ǝɸ LH @|L\EUe+DDX/Nx%r<@Cr 4|zɾe E\jޫar Qmm<7. j,g4^w58)."Q_R/@* ~ŵV;G;#D1n9oU"/j_ww¾.4Ǜo}ѸqGW$0[tDZ_ۂe ˎ`y_E"L|WRΰnj/x aQHHSL)Q CGZj߲T"^۔KB@ȵa@Xm7oUZP#0BxU6#D1y&vVY_.$@R"/̵."ԗK ,J#VD"/!ffm4DGü_%DԒ9Jb"D!,X9S;/u L@Rq>,{ˁµ{){c1n!"I[ʚ#!>-ԯLcF\,$. :h-k.J5VYB`ؐKV/dϹ|[rH( *(@/ Tty):F(NY <,{bGR@ưfD>*AOxE$ɬY"0!:Ć҆5HyHQ_R/.7Q5$.!!޳#mUۢ/Fv.zx(P \撱 ~T)Bǩ}~t)UƂٙ;%B\Hgg[ Q! Qd(W߳||w'ESDD]:V! Qu!J3!jRFM~qriR\:4/~T(;C/SX dDa& Rbm ]#S֠]]:.NN/vw>nL99p\ܮ֭"@#:"]_ T;?qF~T\I5\1O*_`ŸwEѷ.ٷ,-U(n~0K ]EL(B[U ^gLRqFIȰaHZY]ɽӌReOGZZd`99.+2M; ~{[7]8n~!66Z_ɵqCbB`CqTebJ{qi#^X"BD! !"D""DBD!"D"BD!"B$D"BD*BY$$$$$$PH!"Dђ)!"D"BDH!"D!"BD!"DՔ[_iJ~ѐzdA hvhUS,%:"LN͛#Fdhժ U:q̘} `چ wm9{z+Sl]n;*JoEtKX0ᇕny\VsMɓ:u72 .wܢ>f>S]^oQO>)$Bxt:] 2TB\LߣhRiLM5BuY[z` E;#Gk1~'ah8yf|ZNo.5[Vo%8rM"O>)>_]7wL={*._v:vx:u#>z&Mz͚p׬pK e:m#6fY(=.iX!];k,A.w[]d m_Xv"XP <`cF{+<ގeh6С[/{X BɆRᇕ1_D?e =pd*[ -TwBx"#-3DGZ(EMNֳ Dg+WVt-[Q@ bÆR-Ukƍa 6Ks). -n$>?۽l".ո)۹svhW'SKX )n9stqq`Ozg֬h1_zZN6`~u_A]g!ma֮5J )SrKZc r%"Z,oK*!"D5Q%bh!B ӻw:a}\C uOFML!"B$BD([r3xu"hXSSSu:ݘ1c.\Xڵkw)ohȑ !"D5+mr>Vc*ĴX k߾}Q- ^v߿pԯ_MȄ"BD ![nԩ\VZ6 TBLIIٸq ۷o7nxm۶?~\.'#!D"BTqʕ3g(A:] YڵCR>|~O%#!D"BTcqÆ IIIzw'O\^zJ"BDQ!ăqgϢ*(ccc۴isex7~t:4hCFB!"D"ʽ͛9'.XR[{<{+TK.I2BD!"D5]%&&r!&''s먠nٲZ :f̘nK* `£zQ٣[rH(䩜n8o0EݼcݬT./1B),_% P 'pIxf/DQ"9X=CodhaCkYzzLG&9My}Zޣ0GM[EN%bMNN0BNNu괒Z_.rܙY{){6fSg޷Y.@TTcZeѩT[7&g tY۝DH5nM}T"E0Eruz굾34KZ7E7KE t Ffd8 |$PQYE,1c>c~qzkcz4 "m:"]H,LLQ 7-e-(YG2 prݹpXh)-_;j= EǬ@ |[A ql2nB8@/xuU!fff&~jI̱{/-ԯLcF\,$. :h-k.J5VYB`ؐKVO֔£ׂTVR[rH( *qT^"&Rt$R\Eq煟s}+BQY'BưfD>*AOxE$ɬY"0!:Ć҆5HyHQ_R/.7Q5$.!!޳#mU_/F*^! TB?%d".=9Uq{/<ς=EX7;ggpprzwNY}KR!"D!l^[e {":7ߘϝďJBMɝ!AFJ#ah׈(ĉhy7O3 _E[}qS?78gILKYhA+qz"3DxxK# !F G  QLjL˚Y[&j&.-2FajǼ5 8YV[QP(Dצ |&#ΫV(WWI!ҹuHp UOE( nL99 sus*Z΋\iv~e*.S!J}Q5"D.8c$aDM's20T b^U cuL~Ad߲TTqBhn߻9yK [3d6SRRnM5O3C\wuGtㆳGE~Tp-Ҭeǟ$B$B gʕDDX5`*u:wZt $DD!Vk -ZW/vS9O>S$6Vyႝ-[m4-/[iSY&ҷ3%"JFV(\L5kgk'jV}V-~Iarvؽb<]F֭eYB ]sNU_Bp 1C&GgOE_cduK0tL.%WEd3&';;$yW-;BU+ TUXy-}Nr +W͚.]aò?Ç`ógѣ"2`+ D(r7l0TټȵQ#+Rw4i"sXԩ`y`dʷ"D6f8҅!Z;BQ#)*z"Dx+o73%D~ S2o,![nx钝,u͞O O.ձ&D`K\V|8"B GF8U3gB jbIY0n\l~gĈD #] ڵd4?C[Y~GGˮ\qxF̆0B iSٹsvO>d. :q†r z$Q5 1=݆N!VM5(Q$^hg> 5\[c3DZ?%_uE78!NE54*^Ǹ HN E`wb""ڴCgsg.!ANVǚ~ --[0tKDU~[:Tt] m]Gg3e޽{ &Le͛7wڵjJ5 QGt5͟4GCG5QEbDGGt1c,\[7d0# !"Dǭݻ+=w$ <樂rgO"DBĜbccSڷo_T D='N9W"BTAz/׷h!kL3gk?oYc #D qݺuSNڅjղlBbJJ J &odܸq>lvƎ+HH!"D$B\r̙36ANWwff&J.[_|!J̙ӷo_o9"BD!.aÆ$ j'O̵׬Y3bmCCCJ% !"DCgϞEUȵccc۴ise{nGsrrH!"DBX,͛7OKKM8q\ uxc45kc4/^裏"BD!IXT'x׮]uTPlRT㲐aÆIR2BD!"D5+ l-{$tfS7HBTq[rH(䩜n8o0EݼcݬT./1B),_%WW!. /(R+wQ""ZcX᎓m0lh-k]OR/^d7Gߘ Ok{HyTu2\;; F|IީNVVVEnXژS;v/e݌aj6#bfffR 7kZeѩT[7&g t(b6n4zd@.ߐ Q9c?(\BHcYYwtVt#@fI&qIhn쑌*j'owvJи5)."aqzkcz4 "m:"]HQ`f 팲H]_l)kE8Bd΅B/OhI?j= EǬ@ |[A ql2nB8@(/*[!"2*}v/+ ~e?R/2U4-kH(W^ KBm3mu!Q,e9./aտId4%D!Ш/X St㋝Q٣Н"dp٪Ubԋww¾.4Ǜo}ѸqGW$0[tDZ_ۂe ˎD#y "2Uqa{_¢#R(O ?3gQ`Pڔշ!66EHlr}a@Xm7oUZP#0Bąr Q"Dummkƣf(==> ++ХH ϗ^*\ E/U@8Ya#VD"/!ffDc4DGü_%DԒ9Jb"D!,X9S;/x PT.w/.ݜ:BE׼ո5YtIw BӰa,yEm"ݖfvYIO[IeI[ [F3Y++(}}K8nP{/e}},ƍ#D 0IrK0WYs$Dѧi!b@RpֲbTSj% IIo@ɚ| *]}KEA@E $9灗*鼉;}Q@y\ߊ(s=q@wR,D`'"ZdV,~ 'yzzpbCikKE$P $ ZZ/GC~QB=k?+:oMW-b$aǟWaOe.oON"D{gAXe,^(.ZdIq2~p"Q\SRL7Na7GvnKb棏 A1;GÇgOajuQw4]k=;#"ֈ"DvTjN,*|m} P0 ѲoY]&ؿݸlɪBD| b _ 4j! ]޳̔W.@1fLhs(QöV`FFm6m/;Z^xA hGݓl#<>*"AAAjev3= ,vҴ9;'̩Æe{t:7g6{bP;j̋\2<(v" pGֲ`WҲb><\#GgO ]v7&FaۺD)mBlv.T۶rxkԌ;̕ҖL=]ՋeWwzw~n8jT6,$$.Su="RFwB9ڠݟ٣mPn)襗zHҡ/L ҫr,~'Nؐݾ]iL-2vFII2-[L-ORS 6M w|ASD5rS jGk=ͻv*i6}_TwB jӻ(*aJ0nE!?hI赋G$ݻN0d*}՚5kjQN$ĴX}ԩbKBBuqqqQFJ M"BDj![nԩ\VZ(z Ĕ7N0={<3d$"BDj!\r̙\ Q+~e833]v(Uy<޽{_v"BDQ # 6$%%VVÇO<9"BDQ#Dp\\\>{,BۦM>_ ?nڴ"BDQ#DҼy41q uxo 6Td$"BDj!B?޵kװD=dnT8p-[Ao &O/<GNN[rH(䩜n8o0EݼcݬT./1B),_% P 'pIxf/DtS]s\c(xhaCkYzzLG&9My}Zޣ0GM[EN%b3 F|IީNVVVEnXژvV^^ͻ!t*-N5ܺ19cKb}\zzk oH(33a0%D!.9&k}GNgEg8 Dinn+8 |$PQ;ySSy[(b6n4zd0##DS\Dם#Ⱦgi !Fb <5ghg5GMbKY..&F%\w.}yJDDKZB11PÇVb-r9D,(^t]FI%߰Z,"s S忽hD!BcwT(\YV߲T".x50IX(D66\^j[Q3B2DM"#D7T.! Q:K#P}ԯ2sD[[lU*gËww¾.4Ǜo}ѸqGWDc-:"[@WocsƲVeCD#y "2U*uuSs)EHSL)Q cL35BFަ\BE2@ l$mbhy{Ђ".PKB!×Ggn+o;^36#D~2.gܳϢ E@Q t'|1B弗¥@_Ru  Wtd*|Hq%Dtl܌vwSZ6GIXQPTW"ĕ+gjg k|KFA&r|7ԦEApEƭDDȢKXa,yEm"ݖfvYI/.ݜD&NDDzѲh-[\Q-S>8nPKkeq$H$LU Qi~eG0rb1G pIx{侵5X+ՔZe qaCRn/[^x>Y-}v[rH( *qA<D&PMM\).8eϹ!DQ{bGR@ưfD>*Qb!ZdV,~xzzpbCikKE$P $ ZZ/GCYY}k苑*^! TB?d".=9US{~t)UƂ|g77۷!((BQy=g+#z#\;ǝ $Dє)d4fp[NX m"WVW)?("$]3qD..e!ŕ@8;D7gȗDGACyp7%B3DZ2e2m.kfICl@EL-cqk:w\wI}SoEAE_NP' ;[^q\;#&eH֡DNV4<hy//H /ŕ!#0@cqGU("KKMMpi F`LGƭA`uYhC'y'~;;E7]zhQtD]]qs[ E.4FtDEeL(*1jD\p\I5\1O d`Ÿ}-K@E'D!Gcvl%Q"KB!*XA3&gz[o$dX0$-.x(Ŕ(C~o?FJ#渼[44t!ָHh~Y'B "D..sTT{LY]"j"BDQEDH!"D!"BD!"DD"BD"!"D"BDH!"D!"BD!"D'D= Ƀ$D$$$$$$D$$$$$$D$$$$$$D$$$$$$ !޹uϳW2=̉ kΦL s"!!!!B"D"Oj"B$!!!!B$B$B$!!!!B$B$B$!!!!B,Ut:݊+:tPN-Z,\0//Ϟ=۵kWvϺujZQQִiVZmwNy|zл>HѳgVݺfʹӧz"DΝۭ[{ҥ;Sz옧?bB][R*Kbޫ*:w6݋/k&MwIHHHLBuVϟ?ϟF"W^hٲ%s\2::t>]|SN ?_^k׮_ĉ1>>><<m۶; 8Gei6?B\ʇ=D۰~G:uQQyf}`*"D$B$!!!!B| >FBBBBHHHBBBBHHHBBBB`"`"FL"D"Ī/wn]a1=̉A#įtAtԌ o^tAtԀşJrbpHBBBBBRȝ[D(yb/++"j*~Ւ|]!VG(ChHȮȮSr7_W?&#=9%.Inȁ/:9nd%'o;p9"VZ G}4tPRiF*r#x<^!~ΝRSݻw 0adN2==zt8N{uVnݦM&%%ݸqqV}SSc cŊ:tSN-.\'Or=z#| ?KϜy؅rbDGG"33vڝ:uJh4 3fر#37oM/i߾D"I(pΝ4i޽}t;TeBs۫]]tiر=/!;vGn7b!]vudff̧~:p|$|V\ ?çO_QQQ7^x1KKDAȀofD vŊ%d6o\c^T48ô$68P(MO-Uu%RoR:!(ܮ\.Ek!6lذ=qȏ]yn- y}p O$&& /,\6ROܲT#7HQF3{jolIlb(?p px̙39F݁у"ׯӧ{v^{ $"I˖-Q$"pg[2= Ԍf͚RI/w*K%&Mp%Aa(@.@loKb7)U}(v\`nj} @H-ߓ֭[!VGBlp#ۓO>3YYYSO={'QY1 gY'}Thp;w 4J) ޹@EUq<5T,2Q||QR7M +.fnuJKS'5KDB4䥂 30{ynݝ^ef;?;w=YYϯh*rJ+~pT*bP"`acct-NA1Ś[T4888++ , a _G Cl ѣG SY7Ji*&,EFFb QO_Z|VDi.AlƸjL\e*AA4A999 }/fƍ۳g!|H"ȥ޽{@ݺuCF`])t6gQ]\\:uꄭݑҖcpptPYBBď׵ڢr7p"PtY=Df\3&Bii)Ӿ}{%K:ٳ'PmaZ-ڵX,_)\ oo>} 0/uzOc WN1Wbm^*o³WJ_y뀬 6"ض2IJR] ]qqMaau^^FSPA㊂FIK=&$BYY-W+ Dxp6 WiuȅZ?#Lb\1(BDDd@@3l߾Sn f"_qEA$0/BWD!m&c"_qŸ Q2"+)Dh[j1c` "O3 D:@(-@BBvffAFF~z&55/==?88.66@QWDBN:݃-,D.9D(+ e&B}i O6FD\d"_Dt]av 6o1;ndIA_Z] 0uTgϞ͛?dȐ_oY(8:uZppw5 ̝;733SX!6n8pKݼ>LٳgPPjJ[Ne[!׬Y3tа0Ɖ'0YO{w`5#DsQuUѣG{9LnMvUqϞ=;w^xpGl> ߡC1cvT| R逸cX4iҪU,]zmee)bL"TUh*ubKAAU^^Ehh|teÉy" V/P\!^t#ˎicŖ/LF-!eQ`eō:lذ .C0NS&Bu]222͛5;88>`˗/cl|'5TQ͞~i<*L[0xǺ#BmFY3g3 b%wz-bIS^6r !~<l`sW_}UxM84 Vݺu;.^r[ʾqŊƍLRHya"!bXV8خKJJ>裡C"PdÉ לּ\&fy F&Buuuǎ!LPQv0|da/T-_;wDjjjL(+slؿP-[4pDKPPP拉Q#iFq"y csʕ~؎׵kd.ZP-3m۶a$4bZ2Iի}]$1>!4y70l0mD+'-Z222&Nđ4SSBcXUU_QQOLU24!!W}O<>CkӦM(T-_OFFiFY3g343!!!?SRIS^6r aG6661ǹaÆ^{MCû0]\QXe2Ōg@㏅hFc\\O6 q+r1Rܹsxq!01co5X]/T*'L+mi=?YYϯh*rJ+~pT*bP"a ?&(*S g==j ZGqFtE]D2g|歐vvv,<<| bL>l@KF} !1lj9'Rdd$(Le]((f,:$>8h LϜċzٹsg$0K@vL<1_ZYYݻW0 ݺuC VvGN:a+wwwĿtV8u:?*'\ 5Uuss{"˫E5Bbbbpa-#~2g|f}i߾=))) b!Bd} e#N>1l 18hǑ52].(f)IR"UT芋k *4*&_yX ¹S͑ݭ{MHZ&EA4Ad Dxp6 WiuȅZ?#Lh :@A$ ""?2 vo)S[3/ "uHda"X(uHdжb` ֏Rq\W㐶!10XB B!DB!H!P ! "!BA$B(BB B!-/؜Fh4?,&h4f&9B1c(BB B!DB!H!fZ慣e1 "!| 8?H! B(;F>;bDnLA$b䔰ti²e]^<|޽{>}H! bP߾Fx85̙<(::+2ԩYn9.zy^z 4;;[P 2$$$!''  "!P}Nwpȏw!̙yӧk̩ E̙7sCܱc,pرE}Atttڵ+2%ҪMfϘ_RRTW_jX`:j! q}xLf4'*,ɟ_|QPC:S ! 1I%3gjg*wu-vu7OKNG"By;ս{nLA$bBiC"O3(b`Ճ O30bDB!D B B!DB!H!4)&h4f9&ȟTi4F@D> stream xA  o_h {Z I6KE["=g" endstream endobj 863 0 obj << /Type /XObject /Subtype /Image /Width 666 /Height 429 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 871 0 R /Length 39792 /Filter /FlateDecode >> stream xXTWY7?Шٍ-&Ƹ%fYݘ&K>R%nc4뢉&*) Rk"EJQ4 }xswιϝO/#n&ȯ"x0tg& 0000000xy)bn6 c7QINWL6)8孧Ig<˺ϣLNn~$2_.aVFdVP 6s\d2;f\ $槵v5wu10000yI(;C_So|' 61̽{ze{4QWja] ~}e"v~Io}_H9N())IIIپ}q,Ls2/YOk҈]6ގV[ׅJ)ow;Ú؎E{Owq_S Gյݼ6fgg3{fee9sfÆ Ƶ?$LxcӤ2k͍[X׼󽆺΂4RʔjvÎ;ĮU*e *\^\t7Tj\N?]V4–uZh}DykIYe-Q塍L?{cctނ3j#_JP봺_{[Sk{w4m&_Gdz$̸_:'hSiZ#3*u&Ð烡Lm*J !3, ,Ya``0%鑮g0>Ctr3&(uAʇ.{ 6999W\9'UV7uq1@f#iFC@-&LuL H/u^~Ŧܠaeᰫbuϒ抔eYګxSs=rօ՛:s&AtiZ+Y[ kUO~#/Q6i,=3WvVoGbJ%WҊgoy窘'd=B3[&ϼ)&w %oժm)#hm*+mJX}DV֚$.K*;pJ%gig@{+ @~zf$HV5 WZLYC Vݍf-'FO t](ad6t;}{L=N)IxZlޅ"LX딣2Ƶ&N!#Lc$ *)1N5(S:FEh|JǤmѷ YsO'Wo[*-}PhYz_ը ~w$(t~bFZ!j6(08Jw̎mTiWN^y{?׮1V]!? 6*%&x{`E^۳#ytdraXUANI:LBM]ugLQIM,`|xp`sZ ǁ%}WbQ,jf"=5F/MVz+<78#0ص}Qٔe)7Ӿ+7F|ךEq|2 6B@-u퉞5e}Iyn- dB+i8{>ʷ&;9gUY&BMv;9guE寯)y;  [EbfK*Q-HZ&'ݑhrƔϏ|k-%\E`Yȕ|[%N\rZhDo|]tGݢbwZoSyw 04΂K hp>80ƪrUc}7O-$=n3jU6t .i0 J~^|i湛gS'\5l ό4z^8ގfHUos'J>z>E4}}e+:4Vuaέ7?qHƜ< y@Bު{ ӚO9f4ÊLrv{fUtłfZگM ZsoilP\eyDIVG{sɖnV(zST~CzB݂(LT}UU,rV-f$A e )&9{}j#[mf79Өo}Tl`>)ͺV@P{1%col]z"RՉK9}j3OޚSC+1} kċhe@Q};n)+"/Za1# %LLĆ[ *QL8͹oܾ:_|gB~hw dRW] ,0 lԵ=k^nVհ8p!"ޜXv8K,Vk UnYw{i4}UF̵L*}'}jMhUҠ8F*Wz_Sf͓J|82+)VFPg Y֚oP +24閰^ Ƴlq{t~jftvĶ֤JPRut>?Łiٱ}sv3ǔ%p2bO=$ϑi*uy3h%J '!g'o笥TΉa_\gԜ] ۨ7>09r#@QyB.mw7muaܘu= _?v_$hmԛcRg--90X_r~ Ygά sne͢_Kjގ1 $̗R$4Є[?Ԭ=z[o+deE@s} A8\SjH6Ij@yՇucflղԢv.5EE#6V|D-Ǖ3Ǘ}B#J>_3 lylCgylXuśJWU-{a\(8lV{̎_ du\*MaW K_,sFOܝuE@I,4:9`{Al*j'%k~oY`|ME⡋0*Ɨ|^wm%0/&^vIqeatUw(왱Y c1 c>qUc PomtUIJI:10mk"uě'J:^^Z|Dћ'K.F?2Rt;c;UnWͅP/b````+!Cs10000000vT```````<AxfL0a„ #CG7DŽ &L1a„ &L0a„ &tsL0a„ M[FM432aaaoNh4^^^)))DCmJis`r2"#2"#2"cWәvyhhˉ|kk\.7|8 xm.ɈljbdDFd+dG#nE `=N322&M4rbwҥz!CC&//﯐IYͥR#h4R bĉYYYӦMj=02PGnk궛CvdX [BBB㯽ZXXpϟӤuS͋4J܃eh8LeD_~wƏiR3d<_w84iZDTMFL#EA:+3ƦO$#Yr]ZW[kDFyܭs궛;򆇯Ob^TJXN H ThU{oĸK'y05 șDSx~LNaQ _6Yg[n{YԵ33Bm4i5ɒ뒨~j)Slv:H2"#2:,%GyYYYY2=b2y}͢F,d.J\㽿  ø$FoR=tD#g"$Z[oVv TUܷ g-PB6Ǽ.f҈k0%%Q-rOgɒCFdDF#]p\urh$3q\c\~*8TuN"gLO8EAE$u6xQlkc$ *\y^әtFyi7'R`C5{t;Pܩ˒ mY;3*$#g.mlpO$uURZ`Cfm9H5RG=eK2"׍ ,+PN"g"zBtqYYVlh7fmeў+˜3wIZԪ],.~p2"#2:4CQtylxoR>X!Lș./i`ih7fmdaށ6\4duIcyHǻ!#2"#2"#2v5M+HȈȈȈ8"ȈȈȈ8q!#2"#2"#E7oƄ &L0iµ9C"#2"#2"#qDqD͓Yv'uu_J !SY |i:]ous~ZZk&%oP̜1n|&[$~7\EdDFdDFd$Qӓ7R7qb "mlLV*_numfR\77i")\EdDFdDFd$Q|2ԩu99rCϤHx b\svŋ2pmbK[$%q֑ȈȈ$*MN~bʔ:gBBvO.,L z'Xkͼ$nn޸ERgȈȈHbpsN=kWshS(tvʽ7>^%KxǎBZk%Its-8HWDFdDFdDF]O@y}kiR%'%I|}yȉDAFǎeʜ5K߽[X,7ظERf]o("#2"#2"#.oIM* jUz޽-ÇgrRt}kMM_PĈR>_-f$YnnqdͺPDFdDFdDF]͡+^xfhvpp}$Bo'xnykPE7aEܰ0,8,"RR[aظERwi"2"#2"#2n1awwwwnsypQdDFdDFd|HwsT:|(@0`kңGa'#ȈȈ$nN&MDnjӦ~؛o4WJJR|_dDFdDFdDFgs˗V777\>nyQUUU1wQF`8"ȈȈȈN{Yz57@ |YYѣa^WWN<9##l>{E㎌Ȉ?H>|8 xm.ɈF*8﯐amE `=Na>iҤ#GÿyإR rqDa=bT*}}}SL81+++<<|ڴiZ6)) Ν;~߾};lAFdDFdDFdt7tڵ=.M%Q"UӤSHkP y,iӹE.H\D;h֚",9dDFdtG)HU唚P@VeAqScW,g"zDxdcELy0=:G%|Mؔ:gme#SׂyѤ`$KKNL.#YrȈ˼!Vw}noA(Z'3=!:Fwظ,X+_ζhǎٙ$PjծH\DIz8FG΅|i!,)i0ޛc!S$r&KKaf/ڍYg[E%Yw q &#Yr]%9dDFdt9psCFdDFdDFdjB7YȈȈ8"ȈȈȈ8"ȈȈȈ8g2"#2"#2g7oƄ &L0iµ9C"#2"#2"#qDqDm'ޕ+[~E|Annt:]eQ5qOXjU00bHNuy_ZfHvMEK4 1t(wy2gK{CIT?nnzo~jܜ9ɓZss;:VV__|xӓ)$6uw}w4V<)"k"2"#2"#2oZ-BODY eӦ[ss__ޫv|O>9^PuRÆ[^븵3]dͺPDFdDFdDF߼5kz(&)RLGc֋"6qS$vZdܾ$5rnl?Hu+"#2"#2"#%8)&t|2KkN65i9u?!uC0 ,Ư x-;UDFdDFdDF]Op 7_qÆƞjz ǎeʜ5c.G98 41'M-*R_(&wt*Hu+"#2"#2"#.pW*U*u&ܽJNO5Rr119s:V&rC3W0/\!% ڲen!ȚuȈȈ$*gddL0G,[wocyyy^=Νy Cjӧw[חnw"nXD 'NԏYnwo|"/jGb+M=-6 ` 9%Eڽ. EdDFdDFd$Qt7JÇh&NxQHN;Q#-ȈȈnN&MDsrrƌӦx؛oa%i(T*KKKqDCCC/_N[[[r98ydd$,}||`?;,[l .d08"ȈȈȈN{Yz58@q uuuD'Od27o_\p!#2"#2"#2>|8 xm.u|s?߿̙3<^[[<]d,1QAFdDFt8^^^DD>##cҤI#G,..ny+2"#2"#2"3ͥR#h4xoPP8qbVVVxxiӴZH$6lX\\d>S #2"#2"#2:?j}m^d y;k˗/C{f2"6̀L=N]6!sdZKwg8]&u9QNugcKuIH4i:R2ColtnK2%%ю)zuHd$KGQ.8?nE{=R>(a9&/7#1PSe7 bܥx<ILD b )~f^J#_2x%nq~UN$HX̃ lJqh h1oY%RU/ sζ\FC9t+oI#H\D|@?Y,8((]ntl`Q/>=CFdDFsa7W4>%npV}xcf˝JDTS|e˳*ڍYg[.ʀe^Sh`$KK_=#Ȉ#n~~gckbu')9!FYRu9ntϊBbE1lm/L\̘{H VzduIcy\͗˲!K`=2N"g"!jݘuZT{RGp[l҈k0%%QүCFdDF3]L lk;o壛##2"#2"#2:l&tsdDFdDFdDFtsdDFdDFdDFtsuȈȈȈ͘0a„ >M6{HdDFdDFdĵ92"#2"#2"#92"#2"#2"#ûrE- F]]C[~E|Z堮NZ*ooСLhmfr73gr2bcuj!YV5/Pmi@'H}'lߓ.vM\иaĉ5p$\8#qj(h75U%SDFdDFdtbpsOOf@ e4~9s8'8шRP`⍍i lR7ƱϜ:De`\H?| Qv͛=yR{n7 ;v4nf__|SAm~U3b Da _bqf"2"#2"/[Ɵ:.'Gn|9:rZɋeMI aŒ9xpDj^~Di׮]ͽ澾W_|7qsH/T[Qꆛ[l8ݳϲA6u Ϭ^RDFdDFdtbpsX+L1v7F|raa"h O>pCBa,k$׬i;6 N9ܶ͞gYy``;p  AMfn5qfYl8d>T@<]Y1:Z܍3OÆSD7Ht`=4Kr,Y;vL߷ M):%IquL{fɓ"fGiU75vz ^i!6lh4 br~XСYFIJzCa`/P3z4 y<!푃E7شaEܰ0307ި53ϰvBbIցHͷX]Z %0%L|ϞzK SzrDhoI)o<'gȈȈS 7Ș0aXluNniQdDFdDFd|HwsT:|(@0`Bkr/,qDi4ڤI|NNΘ1c {7u:FJII1ś8"ȈȈȈN桡˗/'򭭭nnn7k,BFdDFdDFdt*7"'&M9rdqq0ӧqDͥR#h4R j[1qĬiӦiAw8"ȈȈȈNm_?~,YB|<$$x>k㽇]DҦM5/&(}sSmH2٫}y?cWIGDT|Ҥi}رS4v}Hj4bj)r Y!ſ76m}:%ɒCFdDF{Կ ObzTJXN H Th;:#w)$?!Fs9##(bσ)QW!reE7F &lJgme#Sׂy%ɒCFdDFs7/++ 0K["XBpY҈׿%^[_ӗ$HX%>7zs#9 Abb}K ]CFX!n'p:fٖh(!]nc^?sIFy鵹\'j<!m-L\!XUpȓD .[[=p }s-yݼOAE$?mpZE]rȈ$ѐP3W7-)S`-5n6m/|"d֮m֗ iYLpbpsvvKȈo]]ppٳ9o`n⭧N65ia-M^Yb;` .Y;v՚wONgN9d>P/Jumfɓɖ#' =\ Z,CCpE+{ۍGo("#2"cet7CWy_uϽXM5=v,{PYz$QѶYT7y}ki鹛Ao)~YvF|<.J?x"$Il=qvȈo]i4ipy:]5r$Y[X) jUf̨_79s:\FITt niޖY=ws 3 i47c7͞1S}&/„$up_S(yE,*{ۍGo("#2"ce 7Ș0aXl5Ç?36mZYYY``,0%ZjC{<**J ̟??88آݻwܹ7~D#ڈ.9F4i3fL=a:NxyyTUU=Se޽sAFdDFdDFd쉛ێ.yhhˉ|kk\.7>3#9Fj\EFdo6^*++ 0K["X pYt҈׿%^[_ 6qI˺*CG1r&Ażfe@JUի`< ,kmwmQH`?o|N7͘Pkӭqgd1:8鵹\'j<Oh!m-L\!X_ y2vc䬽UՓ Ы}?/Cn0Xۢ&\֨ҿ]U;,F0W J`C5{t;Pܩ˒ mY;3*$#g.mlpO$9Ѷ Zsn3X7eh~x(3fÂ2%DZ?UdD~ni|r K^XaԺDXr3U>5p"#2g2\EFdD7G73 *2"#9kdnn7|Mĉ5VTZ`w,"/8i~ET=#rx+~榲R:Ӭݻu:%f7e4p#YBzqأG_{mϝTTN3F@l@9bkHvbL^U ? %l9sF5qbk_c1 ayz c%]7>pcGdDF'gt%7ر/؍H;sFV$ݖ-s9`+i2:GnLL\w@y):p: E m66jMc$H(Z^k/^}<]b͛k4hK{[OR[}2ĭ)b˱cg!|S1aѕחGt|VbQI$kKJ`1>r51-Mdzi Xŋ2yt [,$H&z _R &Fl<ɑ6d6V4wモ/˗;ݾ]l>,Z&nnhp cGdDF'gt%7 lx.RzpIXYk6m>-̧ vmct aLGo^!!`vK`$KZXU(t p'L Lﳇ?oqqϠ mwio+yzWF ]fϓ;w>i7l}j8?#2"3:%:tHԤ+Wd`@֙͂'EĽ jj:`p\w޼vj /Wa,${,!k=cV gs<ʏ47S.h֭ɓ9:ks(?|8;!Acq=m0ȈNbnkzqtx`7R[T gy,!E"A cC2g**<9)I˳X,7UF, ј1Z5{5jc>))bk}{Obonbb3~{L"c\EFdt@"Ҥÿ"*!A-^v/>2cB7G7ǹ$n״瞛GbsFగ^zeݥKvN ?cXxx|Yng99UdDFgpuBV777M>nm[MGw7\hݯbTj9Y8W?hς<?ylѰTkOǰK3gňNro͎wdtFtGQ?Uwl`ùJ_xyZZl3 %C`?{XjxkstsȈΰ6㽈?zF瞛4lȟ~*n7zRG|]pxf\EFdt7OKzzkڅ }ڿZ1zЬ> vRX7zs# d̓J#_N08*1{r&SY'p:f9F^ }U&;֢ê|oyOƱEFdDF[VVO\'7mKQlk=V!OZu+pyDx&kTݓ ƞ)s-y69T$\M?31r&nnߢ]o]V^jj/t鱚3xyOƱEFdDFtsmvgNw{$"`TaQ@FiKmټߝQ$DVyN]T_hN9sQیvK Zs>aХ3rn~;vOnʼn='騍Oi蒛dHQdDFdt=7W>{{Yg0fCV(j%'D76>+P=tpϰY5Z=9Qیd)g{ c7,șzB,U78v QdDFdt=7__ ]di֢,;8چ b|CҼC`J'g"j,Q;lϺ>aƙ97h5fyOƱWHLj"#2"빹c~2D=*2"9:dD7qDFdD7G7Y8WB7G7ǹȈn͑q!#9#2"cvfL0a„ S9_!' 92##2"#928"#2"#!UW,>jUPfA |]LqC1s&'rǏt!]"vM{AŰ}8$.WC̈9}Zd67/4^*`lO0:Z J7vn߱0+*TST@K$nq=E癫Ȉѕ\$Ҏ>sFV$ݖ-s9`+?_C]qOL\wКQ%;='SlI:mZ/(PLVO[.9s@͕JF E qB3-b;x{Oy*2"c?gt%7VHZm/ז(7ߴC7onB^(3t^}}~!R-ba<,acZϏד'B7_#7yJJaELWrsc):\EFd献k4FFvMOnifn&)I|h,y``;p CiЂ0Eb!!Y1:ZLx~bʔ:l4Ä$ka;x{Oy*2"c?g~h<nniWl,8yRdh4m=tsx d,;jO:$ljz{s`#+"BYgަ5p xVs5K09d>P$*4T(t=tssLssGc):\EFd`vS+)*.u=qsXM5=v,{PYvO, nk``I{7fy c}YvF|''g̘1mw曰h4^^^)))D_XGqI<44tDM.GFF=zLJثjGUZZZVV*8"Ȉn㈌Ȉ{Yz58@ 䨣ُ6}x{{SyNz@N&zGbQd{,ǩ;{U?֧2|{$7XY9*=0Ql#l*N6 <ܨBԜrkFNPO϶9)TsOΐ[x=i#mMs-x]ja6D7K哌מ_zgٮEt;ҷߓ篽һ "o疸RNKzT?F8=ڨT̻~[\O?FfƜ {b).oGHic+W<$=!DcSvNH@p;Q66tc?+&^2qs]hn4BG_FxQ4n#d(H#XmcN FH(hDʈ#Vi6eAVhD?!tUm40ͳmcN M#,.!;88%IsU#mWI_ {*SUb4d*I٧+{C8=h`g^ B+I4+Qؓ'߻[̙'HјS_4X2[ڵcnO_4ύ5Ucs%FHiJ|h}KJ?4GO׏}޵kJ4Gok:Uhw Zɓ 9Es%*.W.rzo%j,4T*urHi#m+9C3 *U*UJֲe2U=s?٣ƃ/=#QcN}\c*׽xynP$.n`]<Ε{3gVHi#m+֭IIπԴR@sSLdhglQ<Ҁ~m}9Es%*sDj,{QzilYZ"m6wX䀤)̓'471A(?UqI8GNw9KRxU/1++1B BU]bԸqiWZ{SBtSm̽i#m`%̓Wnjjڽ{k4FJBG徹oӿFHi#m,>,S͛SSS۶m;n8-4MVlgϞGh#m6(Q*?WYzS MwyOeHorT[$a@FU  xQ^{5B?'dUT M~2e"*_%[[^dGJ'\y?8Hi#m4dq]pK.50v[IlK7nY{?]`q}}?ŖgO2t!]ҳ5N_PťgcߊZSl}rũ:!m]yFm•-v`aGGi#m,._ʕ+jWoc;'vF$QQѝ(g[/ݹ]|4(\~7% z)NB[U}s]Xh}-e2g~̯=KK?vq6Fh 4͟f<:c 뙧ϺZ`g 4÷{/֑1t*Noqý ztHȣ"[C&d Sm6MVeFXo=}muh~_/ B\C#R.~yIXhA V2+{ޭ[Lxmi:+޲VGgi0FHi!+4*+\ 2l_, {uWIh")ܕ=!U -(4?ڛDT|l9&;{V@EGGi#m,1ޥh#m6Ʒ0-OI.?MFHi#mZEFHi#m9{6FHi#m$9h#m67HHs:Hi#m7׈7\NQEQTJJ:s Ii#myߜ6FHic9㨣6FHFDC5Rz"dʕ*Vrq|Y+Wқ4Sιx]]zdժU|ڽ{ÏaٳOtG5mƗ*%Pጌ(Ex<\]$>zQ U7DoSRԺu/UFwbՋ}LfgTo-:6l.Hi#m|om|7hG"~VVkk5k劷:a؜мuxg fEsĉr)h^۷Xlvq}jdk*/ z4M5keQJ_~m "2Sk>}2zni)gJho[-6®~_=<-7+5{R6F`~c((4j׎5?aulLx#4xV4#QP Z.`Bso5 }Uyhg+4{?SʳG(QP]s  ~=Zh r]m> f fVkȥi#mכֿ9 /( Hs(")(")(")(4'uTk?a"EQi{ȟAQEQELHs(4')(Ҝ4')_͛7RIsҜ4(" LٳgWVp¥KqTLW5kV&J(cf//3gTZ5{̙3Gw/ٲĮI../7;7q.\pͺ5k&֪ibnnѼytPP oL52 wuakժ$'˱I H-&::M&}q(yР7LI/]ШQTb~(IS*l̳8?'LFQÇ;88TReƍHIHHܹsŊׯ1֭[Ӹqc;;#%66M6]Ms 7o|`}DDbϞ=@pXX؆ )r֭[_|"99= B,KZ8?ۻwnWq2ש]=}4n0 r//2$-LL{#ͭ#/A^6N&ڵB䵱hˉ%DfQ_|ŤrdgΤH4/SF&ڮ]4~֬0044۷'qB(\Җ-[  \rRR?_~y L˗/GCnnnhZ SSӖ-[J>ԩSK*eii w[]Ѐȉ~rJ&Oh"As([Ν;qqqAG8998eq]vC͊W|%T̢؝w(o Fٳ@-[^kΜG?L~#͝Dzl_~}^4sf<(Ȼo_;F{x'cڶlK:cpEi9QF&/.]x*TИ44h8޺u'NO|yn[|ڴiJ"\NJَ;Vtip5kn>};ܯ_6m ݻ?WWWAsdɒ%昘@a:8;;5hndd4sL,3f͚%h*UYǎq9BE< VdEF|=k'PSMiѱE^U,E/# FݻO:o^¡CH+"oҋ֍XQvnfyd`YRTrSh8P*4u+*VHҜ(4&. W,ĕ+j4/%5@ȑ#]D^9[xB 06J࿃"GE߿q^4ܭ[7^\j eVVV)WoZm'OC/\vMڊݕͷVҺ%Kw/u4?{sg…g}TvwkիfW'6mXaEwKuGSoʹΝSTiȸLG)2aذؾ})_B\9ّ#|E5mmeǎEiu<ROMJzuO4I\߾}{Ү7_vmڵ7o|)S*<<ҥrU˭s&.79y$h~ظEcƓ&&'cNv,dNHlxAsO/[J;/ej~æ맟͚gw奀~ 2qҥT ؘ&OVo^?'E y-[ '..hGרQCyY%:/a/pҝŦ}s,K5k)WoQF dO1}Ç R<2tpf2__?/["}x7ZVy NIa |WYb;[LΥb sgyDb#F98ȊHr*IEE+W4jhW <%%e֬Y 1ڳgׯKWZp!ѣG|b]reMMM]]]iǑ/- ?*ٳgU|Ŭhqǻ o~˗/g>'Mg&,`YҼy~z[$n8RJv!|˖z 75 +/DE@3pNrQ9ASoʡƌklpEI' ׬I䰰Dٳ)GHfTh!4(ѻ.8?riӦaɡ%ڵ+SڏOqsa5uEڑ6_)AKoɉҚ4icHsҥzNHYIQ~\ͮ99Ž;T' 4EQ*ܪiNQE9iNQEHs(Ҝ4Uݾj@lg(|ڵFFFEIHPOo߾٨Q#ed2Ҝ(rNsr[( F~-'x')(\y*U͛N::;;ÃڵkѢE7m$|=1MLL<<<:u۶m:j(KKK !C EoH777/S̊+p䰰?-Wܚ5kHs(4#{_}DsGdҥ<R``@az-H=zhDV^ٳPB˖-S?Dslª :6mZb3p@DGBIs(4BsV^}mڴi޼DX{/>}t1@"ϟ?}4".4 5hM͑^zr+8n)8?p̙!hq.]ƏLsh\%&Mk+%&& 3_DȥK@^4ѣ%Kzzz:88` q֭Kx@A*UYl޷oߘ1c*W jU3g}+ixb%/_>x`333мO>?(<4(Vn;wdEs9̧ಢyjj#,,,/>l0)84OJJݻ78ncc߆>װa"E^^^9NSEQ6 Hs(4')(4')(4')(Ҝ4')(Ҝ4(|G7܈4((Ҝ4((<<99y„ ˗=zx_eddMLsURTRIII[a'|" F9sjժz)ZP-JMM={vjհWҥ=<08S}l^X̋oEo{K?BYHA FrMd2"fl{ta񖖖NNNȶm6)lmmJ;́-w֬Y\BD͚5׮];w*Y$S~ذa...1wAL"sڴi[V<8S4q-[رcAjTLcvaa솄ddX%DGGGka,֭իW#ŋ꠨ܦ/q8`4^Y%-Xg xsj|xqa+V>b|ʕh.49w\h͂z8mt49%%Eg8"ourJ5"pc˰l<44 ]niNQEQ9iNQEQ9iNQE9iNQEB⥸[nanݺueoooP&߹sGzpB~'$zˇ5OQGiܸqL5o<$$$%XJWWڅTDE 3,uh^i+ƀH:tM 0jzfffo !Rq&M1"}̙X'`ίSΩS/[~`%j$+ 6DEBԩSZZZzyyX7*W`׮]rӕ+Wt9e˖IoFd ݇5DsW֭J8p4o߾*sժUHD=[l)}~>f͚ W:KkWz}*Cf+u*&>e$+^P-%͊+ cV >¢lٲ+FN3k!_7իʵ;v 2qo*N7f"*LJ&O7l"ͥpv 2D|&uҥ7zرc5ׯG3ADV^]h!Lݾifƌ@:t۶m‰lmm1bըQcҷ}+ 3 1L"ַhFqWy(D̆u։bw  .p'SN8??qX+cb0ep0 è>}5D˄aÆ X 3\iA"O74*idɒKLL *cTh.'>(9ǏGY(]pD+D| Q'Dh,1ྷwbb"ꉱs0 )_QWNn=h$ ^ wD0QO,A1H` J;MX\}h4YM>ZjHsفu>X066Ƃ95Ϋr?_Fk_DJp 'k/.K.2cNSJЃTh. ؄HXXĺ"5`UcX؎6m H`]Uw"ܨ~BD'VZI.Q7/bDgEs)2F\eWQ'QP7bwO;1jS%q㤜4*h"8*Rq %2bLR9z?>hvtZh.]SFlE QTnHD_>Wq%i٤駰u'5Zz,+wҽ2FT>XBcyYvmqhWX1\M4nxrtppOTo\EDYX`,$š TqvȨvA_~yٕjժXF:14LʇDRΝKݩSĕJsqN:|Lhy]~=888FS`>}yXJ/X; D-ѰaC4>>o:{4_|9UN4+RҥTj%K 0ťu։)>ȑ#E4KG<}- :Eˌet}~IK./Vhp8(|ҥ}=z4ƿvKDWbeԑYDyPAeZ6v|)cp{qtExڟiHsd6ych!Upiq^%HsIhs 9f*bդNs;uN);}8MMM-EsL;|:[[[N4 8ǏG"fuԁX8qSӤI0pyV4G7Epr<(儛 G h0[' N7n܀3uT|cǎa 4g s,BqgEPG T Z\ǘgkz[ Bs @: #ͳqڵ UMP",Bw#bF&gEsԐ*48^h=I& >Xy&su@A̜;c 8yi0-38V<ӫp7*T ,}ϴܹVZ@ٳgi'BųXhNNN7n6333Vp9%$Ӎ7.V#M€xӦMK,l+V sY&,^8,A^KlU4قE4!Y\cf-5 .5Ϋr}h _Lhnx K)J|+iNQE9iNQE9EQE9EQEsQ@SEQiNSEQiNSEQ9iNSEQ]r… +64(O?C|UV"HSEQTP׮]w&K… C|fm۶)))qqqH/ZM .ۆmmm7xWXQ|++I;(ztU#5߿_D^)%$$ipk8OOyOt)UE#+-;>2;;y:R72J㏬ Jڰb(cyKsDzȀFHPPzRJÇ733˫9$}a4(Ns̓-bbdell'O<8QCxهF.?aBȑE @oތ]RY"2ɫQ1nnanE'4'O>-a͛7c^L+++Yh Ug_hze63a<}8io-ZD5ie1 8vB}:m0P戋+?zR-ZP9` ';EQ-(]trr4B/v9nݚ{O?HvҢ'̙7|Q)S@nlqq#ʔ8Q-[J[\\Y/ѭ{= '"Æi,4[}ϟ?cr~#}ڵHDzzܼy3=<<-ZTbJ*adyߜCdРAGDlB*T0rH[[[swܹu)\kr2:ո{щ;-hWpSӈbbz&?}"ŋ/yc -[7YŊ zѤy:q`-=ӾsZj={xHo9c WSS͛={Vg)z?iiF&&&m۶uqq K,7n*U _ren̟*9ޝ47$)\{+!!!ɓ Pnq^$bIsҜ(]xcIǎ;ux@@ 9iNQUgaѢEyNG9EQEEQEEQEEQiNEQiNSEQiNSEQiNSEQ9ih=H\!?;4((4((4((4((Ҝ((Ҝ(ɧ*Hs(*_ t ݞ4(#)DSEQ/Ytf7dCfҜ(+..!{/߅o 2ڰaF5*#GJnIs(o4?XƩ޽e7t^<|8un]?xOOd&)(* 7הW_xq͛qn!.Ĭ]+_.Ye%K`Rx…Hs(4חQ`ÆǍK>>##ܞ=A&O1ΌBbxHHҼy)C":ͷnzYI{Is(4 VͯB G ?s~[Fqs&g?$>M-Ki[%q… 4d {Z֮]+͚5^|ׯEQiRſR;۷#BBY˵V?MO?޺u\ ]ܽt) minnnnJ"=00\rO>MSEQT|CPܹ#wB7l(h~axWפ-a-Z :׬YsN<)mjܸqEQE6ͷUxf(?'կSAӟ~ oÛ{mum߾ѱlٲ')(*Wi_/^;PѴi÷gi[?عN޹32;wܾ}J*>>> .tvvPy=GSEQ!7-{O.;;8q{ÆȖ-]]"};v 1m/ҥ uӕiްabŊv(4ח\μW~Ea \Cʯu?.8(o4_S oc}iw;Ԯ@92EQh:u›4]][LkZަMR6:vLYBϖ7')(*i~h-+Qِ4(FwO9EQ?iB1Hs(* &Ġ{@EQ4((Ҝ((Ҝ((Ҝ(Hs 3000000 حNsi8CA @`:CA @'r endstream endobj 871 0 obj << /Type /XObject /Subtype /Image /Width 666 /Height 429 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 607 /Filter /FlateDecode >> stream x f8A8>\h'&=4 L,(* :{F endstream endobj 867 0 obj << /D [865 0 R /XYZ 122.806 747.976 null] >> endobj 174 0 obj << /D [865 0 R /XYZ 123.806 582.93 null] >> endobj 868 0 obj << /D [865 0 R /XYZ 123.806 543.312 null] >> endobj 869 0 obj << /D [865 0 R /XYZ 123.806 406.095 null] >> endobj 864 0 obj << /Font << /F25 474 0 R /F16 475 0 R /F39 618 0 R /F44 651 0 R /F43 652 0 R >> /XObject << /Im40 861 0 R /Im41 862 0 R /Im42 863 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj 876 0 obj << /Length 1957 /Filter /FlateDecode >> stream xڝ˒D jH3zr#$() 9J㵈FǻOdi*.VOwOwOOơwwͳW*((Dyj/iw`˳/۝po;&*U}arkЋfI*:v}U@ ]ޅ8[Oy{y.ӅŁ'ael^EQ߼ }M3?}^E򬡷S*RmlwqTuU`JWD2U~c8{4R7_;fm yqzxtx"-k4LmGҟh3#S `V_Y=.2R#G;H˾/VK ` c=NDD4Xh'^ Xu|#H&-8C FpFDPCBcӍ"]1$ He%kD3wQ>o̗pHuGk@k7bk*^pPd ⷧUeC$Т4:DX5+(}{jr85:ٲVVL~5m4p~3E'a58[8ʦ8ڍv.]?Lg;:<8YTx@S&ΟF0H(n[(M/zKset&e6*[qPTP̋QOG{Uߟ)ws TkvqPnǟ4_v:J(Q"8%0 S!`k*O ,.Gb6!sΘ+:*Ci FAy K.TU="Lz* 0E>P8P+K* ΕpvLCC'3y@2T#]գ7.Rjvr 0e:naX1'ہK|[~Xa;}WqOfQ>:R?*FݼmV*u[WUnL{`2;=OOwǡXZj;N1\X%h>Ti2XGܙR]ԅޚF0b.&LqF=\߁ҜChTڕ? d;R{x qVY KETRD,3RϓUI> ծI QR VC%9ǒcPXX\vhY +J:[rp~-Dj2w-msio]Vx°kϹ_02>rgqs:# rP,[h kgjpgqRU1<`\i@.0W4eyԑ_8r4ف ȸcdBHf8`&uW9 Ep"aˡ-A> ,e%赀hg>H+V8"^J F3SUhgGm^{)I~薼W7DXs{2/+-\I /L3'At(dÑqIb"M9Zx~0A#WO$J#V!\(Y> łqҏ&Q+̙LК{j*͡ pk hxwdv{aW9  =Z#+oShC4]>t,2%w4ńMϊ8w\soV+{G[cNc5sIwTrmGg~ N$H ٧>_c^ #`|Fg 6udzJH}2x`~>k endstream endobj 875 0 obj << /Type /Page /Contents 876 0 R /Resources 874 0 R /MediaBox [0 0 595.276 841.89] /Parent 825 0 R >> endobj 872 0 obj << /Type /XObject /Subtype /Image /Width 361 /Height 269 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Length 19568 /Filter/FlateDecode /DecodeParms<> >> stream xy\ǟBCEoU[[*FT[Az*Q(($@1Bryc3ydfv3Iyh, > yh6t>2<4MXhԬ-n|etT\Ӱ v $Ap JTZfq눠y-uc% wON$y ;kIDկܪ(vpBX7]2xoC+)aUEZL[;r2"d^A+Kv1ƩɧeݢR&ʖ'cƀ_▯FƟ_>{ؒ?:1asxVπJQ8S3:p "VW[rd} q7!Cf45͡u_¦W׭:;a>w~ZO@cc% A^?9ԦOV]U~hɇb/tH8Nb8auDеȤvioWIv9ﴍ¬gj'I#.aFZ%4SU@a8MC9| CcI6aҩM”>0 WoV/Ti]0UA0BP+Ej壏kH !i2p>dݲxxwqu%e+:(wlɻ$fm{M3@TŽqdm{,#3lɡQYљ.{ /um*໊̰OKeI s ;mcy*nYWIe$1cVڶH1 !vhӨL>Kq\{OZgFcTRZ47N`T"cujsj"-[)ݡm"'"xU&Kxy .#wjx$vO]:q`w"Q*ջ颲ihvlَ$O8O S5|sx[ jx_ORIUv_|ml:w Wn>|Sr`/[!VMV6,S."@kZc gmWws$ ,}8n_\g/M?2̷9=3s*wPVa{8 Y{` UX.ͯ "秉jխ7P+:0m;z~,}ϼJDӖ>_-i q^FôwdKHW]2Ҕ6geXؠON^wD12ǰGwt`HA 0z}6yBo9JJr1 4XʐUo)Nui1r!0̞AHIĤbʬ_|]$u }lj {F{j݈YہMIxܥ?vhǐDĖ`ǐ taK~ì=9EJk[Yþx%}=DҊFVXED}!׍mÖ+ #"h:U'$.g}H$=dWڡOI<&ˡ+^<[v(ÿM5$dL##I I6!<Kj\1Ƈq~8BF5iG3ٶjJ%4.SE7kB#JYt҆ %pĖ+f0UqdX\C㉙[?ǀ R*éDH牙e%F̤sE )"IfZJorݓMY?*&~+2X[pk/_ z)uX-MfN"gUgVSIVTsK* {("1 ~۸(.+*&:khG.Jߗ^;kwmBq^'"ռRhX.&@.Ѩm'8ME 65 Wʪ["fH[CVܰoUb ,3̷t!&گa1(_T.S߁s|oX[E-=dՉ0{oaJ4@!Nu!j#hf4(_b/]lϑ)a >5On eR6FX *[;vN.VQQ=iònT\S] /?qe4໯"lIZaUe,8ߤRaA~ ߎY `7 ;o2FPV#  1P7g?s.sFϻ(Y4wtKUEU=43 \M떨/+[G]1}&<±}~ɝF6~RArЭX'DFbR#Bxs 𶭢Ib V!KN R'%Rsa m1 ߿)Gv,KQJЂ8ϫybM}Vũ0dbD݊UFKEU5G({*&Lm5V#H1]V|1]1 &nj[&&0_I8<SwZ|3ŗ.A~"Kwg띌Qs:VQ`ԙNg?~~^ Dl/&E4))"2Imt Ī$ aX%܁!cIa4 ʋ_ 0lA ԩ h8KHza^(VPiEb:FѤIA+ "J 0C@ A-cɃ ȗڐB.aHF1LL-]]͕'$,{G;9WEŬ̜}=5<4xP{NȰ9XY{$$T\~JUHXV2[V\\ÿ1:@J'HLx؞(X̮4 ((d6oy'n 0{ P)WJ` L)]{.F+Uz" ͡;5^c}۽VRVD@jCkƽEϖ`I@Ɨ2@58JK΅A>y59`*m&Q?cK5U}RZ~bΗb 01AڈEa1sRp]*16>ì# I+,5 9| sZdq_l`25%^`0 BX7]2xߡ-,K"# 4a֞e0:"h^ aݘw9h,V`0sxQYPq'~re˟h|e0e|< H;. @ @ H;. @ @ H;D 8;;*p~ϟ?%,,Ӫ"oݺ*:p@BBBϞ=Ji QwQ.]֬YӳgO5;HLL quu ^fL&0怛T*}i׮]T#À$۶mS%[nUuE+MkU~Gii-[8֫WkצS>|}EEE̞=ۻgϞ/^޽ܹs}WUA\߿m۶.]arrr۶m===O^SS[l rss۷G`ȑ2,44T $wiFq ))) y۶m.55k׮#FW8Ih.J8kS y㐐.]:tׯt:ʕ+N<#===88ewvGFFRɓo߾=;;ov}vsrr\\\ϟرS礚wṲ5k֪UZlYrrÇ wŋkמ>>TŢ}8a,KMmyWU@ʮTʫQW7oܽ{aÆ?u[T7㖕[TTұcǎ;vֶBj#NNNuG>~zի6lquuˣ \nMMk*e\\\öw8p 99iii)))'N[n4ussͥ _zEm8;;3&333333##ѣ{;99>;vyZCc)S7.55ի .2e }oܸ!Hy?B7t㋋kjjl6ɬػwD",ʥq~猌իWS3hРSN]vM$%&&Λ7ϰqZ6 ~ &;رcKɇfhtvŊM60a¼y ((hڵ'O.--ٳ'5+:ܹs\\ܨQ*++bbbjjjΝ;תU+S.\|In݂$+=n޽gϞ=zhDG?Κ5+//>رcM6YJMiy{{_p/3";QYYy)儡E],4jևsѺpև2W_޽z5jF:{( V7|Dt;Tn/s_fܾ1|Bj]VF# ~%Çϟ?=2dHuu9m4٭^v q㯿p8ԼRӦM]]]Ϟ=;zh=,Y8L@A9E#2#FOHc6|p^m+hT߁ꌪugϞZ%7n4Tp%w tB"IK.hȍ7۪U3fPtW4T>]= L{a 4Qw7$̘1#>>>""oMJJ3lnH;Jڟ\Ґպemh|ô?mll=v\~ݝz?66666ihY*NQA=z=ԃ }9uU D"QJx&xxɉMTJ㴬^^:7tjV&~ݮQ7npqq G===/]GiXF~ `Guuu]xE-P8 Ɔ @Ued< tذY*E˱Ɨ?ɓ'TرckԆGCs+Eh4`2O旖VdgWJN*+4(ĉGiժnڢE?~왧.|h%`kLtL&!k׶-xjm#<~gϞ #44TFnsk(̚y{{pwwwww=z\xQݺu+,,LMMH$۷owYm VYY]S#vp` x߹2lƍ+//1bĴiT6"97,H>̯Gz˗A4*L)t h&qƆѴ(;[vgʔ)vZ|͚5<7K,{򆧑4B;bPi0AEO޻w}7]':qLZ\UUM$e[Tq  0 J 5h4a4i0hР׏5s[l9}_%̙qƗ/_Ο?ٳ8?vvv-|~ /A!bT|>!HcY4MY߿iӦ>|xРAVԩB;eK=`ڡ48))SNaaaݺu۵kǍO?ҎWrsߍDauBJ%L&qpPp8ꫯƏ߫W/`Fi!aDv!M̸}Chj5vr|0a& RN1B0 0 F`0 G0iJ#']Grs_߸F$I IH|]8-V:B B _ZF3T( f1)|||/[lmɓ'/^XGCaU#VFfffNNǏnj3i$Ly݌H~I^}%4Z;&&&!!9;;kX֭[Ҏ7 tMp(Sxj\ LB NK=H<}t۶m4iy-ʧJ~RO:I7B:@ |ҤI}ia wtttwwOgϞi&<55k׮#Fϧ ۶m9}tj=>lŚH';ߩY3oWWW//2Fz@ /iiiǏwqq<W\ 8p Zxqnnna_aϾs1<pr^|\׍qcްܺu Tgee-[,99Ç!|`޼y7oVvQڵ Æ ۿ?Uegg'RDX4<.@-+:ss\.|`ٲe\.ĉ:tu@XXXa>4'ܿO=Pf6!\\\'OΚ5kӦM/PnXD >T7 Z;˝@Ozaa|6(((ZW ⓮{{7sMiiI 陙Gwqqy5ݻw"_' }ҕ(_ѣG>>>,K(FFFv͛V%ph$42wTUUx>ܹs͛w+))quu68aX']='u}`ĉ'NT,1O:E^^>}I߰a*h{)OzH>q3O^ tD#IבF" #& C7 0,H;O0DCbfiӦ={z?_`V>}:!!mڴIHH0H;d ꘡B'ή9ZӉ=3g}ll ,Xm۶]n߾}ƌiiin0c>l,f~[UCg0 [lz*ڵkwءvܸq#444""fΜiӦM0Io8u͇ovcꃅ43===88Xw#22z\C @ \\\10O*Ktͩ[]Ϙ$KΨFLSaf͚EFFR*}ҕZkLz?%M ?PJ I2''ڵk_~eU{+b@tZQ1OI 4Y+ ʹ'].'&&O>wQ_E7"IWjuSCʲBLtj=޺!!!VZݼfqm'%ZJ V7FL#DJ>,S8L?R䓮/+ ÒI7u+KzÒCIn+#  `33{A| { 9j*dXv4OwP{{~P q.G+0u`|Xp]n??Ƞ؀$};ԇ4E.og#¼ԍQ.YdȐ!W'bڵj۶ڵk[6pi8z"1h1o|gC1o8sL6mD"ŋcbb<أG ^|9%%ԩSnnnV\}= .{|8X-X8>M6i-[LJJGDAځG0H?R-[8j1`۷k/>}:66fr{OU" oc&0U\ /oUC]|iB5tc-s<l11Q*-NNNׯ_ɜ6mڽ{((VĥP|s_e(aS)))]t|ÇK%KH$h C2 哎Tz*xOJJ|AIݻѣG>|XYYaÆ}*]I>߁ҟ_>sf|}EEE̞=ۻgϞ/^޽ܹs}WUA\߿m۶.lٲ%((ͭo߾=RSnpHJJ h޼m1SSSv1bĈz?%f"R Rn_;Ӄ[l)/ɓ'߾}{vv9۷o?''eǎKOO߿?uyWULggϟϚ5kժUxbڵ'O 駟TUQ<---))СC7o޼uUhʔ) Ϟ=kӦԩSFcRwwwo;wnذa( {СХKOOOV󮪀,k8o݊9xzz^vۻRu( ~ɓ'%KFAٷoHXl? h_;4iRRRX" w_PNNN,ZA֖*0Ln|]%5 B(yTJ֭4xYY|@-**JIIkkk[QQP1KxxxVV⒨W^ݰa|T.[SSӤI}QPzn:~7)Gkjjl6ɬػwD"*xTT?QZZzjJq tԩk׮Dy(kHY/8q"G???dDz XbŘ1cbcc[n=}1c̛7֮];y-[%&&ꙍǎ[UUժUѣG'/_>x{={ѣGFFFϏ?8k,/رCv#pѧPpٻw/5h ШY[Tέ,~7FFggg+]"=kN0ӇÇh^}GDSWX_|9q={ٳg}6Œ7j1ewVF#KTT${ Xhw}goof7ʩV@ځ@/;wlzZMM6('ad,e? Lj&mvZjjjHHA2,$$d׮]?#@ *]b;}<?>{O:B3I/a=m۶uV666j (/}}%OCEXWl8;;+^d1 H;Jڟ}8ۻ1$%G!, . ۼywrr}Μ9CD~-Z4hР>w*4äJ|ogw'FE^:$$dǎJ qܪ4WtЁV%O:_R`]ݽ-Io0w٭[իWO:ٳcǎݷoߑ#Gx<ߠA`̙zB8Fؼi *) >O"H$3L&痕)-tssӷ抗E|ے40'\>LݻwPDݻj? 6DGGcvJXXX I%t:Na)ftp8?W~ȑ#cbb/^ bXiES_ǁs\K;;; 0/ݍ0 '3lnBLϕ=zˠOZY;b0I806uqtegRW^K,߿P(3g899)-<1Rs9*`2@'d b ?G,ްaIuʞ>}z޽U{4t:t jMFTW dl; on߾~6Pb(--m  ӰOX$͙3gݺuK.?>A?dff2~Y'K$16fj2''cǎYYYEEE-6mBIo֬Vգ<+ }pRRRNºuk׮7~njU^nA66[PRɤ8:tH$'OF(J )|E;̦'N_ҖW^M6E ѵل &LxsgV|W~)))o&Ak<^J 4.4NV9sꪃBP>:TH$eee:uZ]st !R)F2h4 gi$˷џ|'>}cǎ˖-_PDOzX) &a0 &d2L:Z aYDEE,9yr3g&''s8ӧ+]mL4j7nz,DiieuvکBD>a4CB tƍѣ͛ ~F2谢p}|1 1cƌ3 O-v tBv#Zaq$ iYYϽ;toԬF2bXv tAxP#`5>aX``%K bcN~֭cֻw+WP<~vn݂> Ϟ=kӦԩS ++kٲe>,,, fΜ'YO:͒H|>Sd޼y7oV\)77v>>>F-ZtСC,kV0$uC-Q)v7UZ;)nO:^lYFF=qDttt֭[G=4L'֖'= }u^J))) KMMutt9rY蚚XY| 3߿ZcA脩S>J} Oi >J ͛7;99SyZ[ȅzaX4WIsncjHIIҥ Iwqqy5ݻwƏ>}ҕru֔?˼gD?P(hIaq|ySYx<^qqbccAOzTTTrrrVVNj/..+(::}hhۗr.]E\Ps^YpPm;Q$IرK.nnn'O*G0xOJ:tÇ###\n~<};wn~ sN?EirBއ%4*!!W֭[yyM L&:u_|w_~%..N+BM0v'N8qb)})ðE-Z> ,X`͑Zg &a zuRRRjj*uMw\ ۷o3 jY3f 0IZ=']Sgɉa+W1bC|h(3誤lǷmۦy6klٷn ^|ݐO{ t-0pP\r`ܹ&L%6 \`*{oR/1e&JAMkOMM ?|3Oz t0PP'M~޽{@*zꑫhV>Lqvvϧǩo.޽رc`ѢEm۶E>|uT{ ofdO#ݻܹs=zԺukK;w5'0 0n,)'G]\\***~Sã\`7|S{#P>>>ӧO^fM׮],/_\;zw̙>}l޼M6' 7hCeee  ͛n.] d/_OzOtҗ/_̘1cȐ!oְ:NLL\t_ݥKn\I4UU/L%gΜ 314l2!O͌9cǎSqꫯ  y^z8-v'dːh\P(pe"ln,L8uj0 .Xv(| eɇjd'] _l2111<<<##cܹ.]20_|yڴi/^ڳgBՍX|蓤ux|333srr?~жV#c'=&&&!!|r͚5~ӧOccc{?M6EFF'=--ӓ/ƍn:J)1sLu3Ɣ>馛 Im۶mҤ˗ZC}WZEi̙3=[T+>}ګ 2o<8~ڵ۵k+ ֭n jfQw9φhbShG0 H$Bp׮]gXӧOq_~w PNa|9kG]l6Mm:)&B/U Shٳg9IϞ=6m|P&cavvv:ujAAU6lLUrĉ:dɓ'uIƍ㏩/^\ހW;lvyyyưVZݼy*TV}O>uPZb":QQQڵwp I[j{)O:|葯/^je}|ҭP;> 'aYDEEQn`ĉr !bÆ jL%B@>aΝԵK+WZjf䓎<<&CCCv4h{cӦMi8z4 Pza)<~X;wuah @ځ@ tiB\)amXO:0%IGځ@X&w ]@ځ@ tiBv ]@ځ@ tiBv ]@" RN4tDaEځh,\J91|DtCga1}y)儚;ܑv QC`% @ ]zٓ&>YvjigW7g 4F8F88A=yrm.@ځ@ V"x~퍹۹$)(.~mcX5nR_]E $IB$+*;vlڻSܲ -4$k/N֭[{բE]d4Dt;!IR%{X6mn<ɿ|ޖ#1\E?\paڵAAAO}zEgPAR[h#G3gRk7WT0/\(ݻaBZN-?|7j;?~<,,UV_~eqq1H$ iӦ]vׯv###[j駟~4ͧ@ځ@h AtͩG@sMe%QV>dH# r1iM U+x_;͛K"""vڥOvvҥKܹxb8{Çϝ;o߾gϞ~wiݺٳM| 4fA FF,I9K|prLFd'O"1Kyy/^ܫWjxe2d2ܹ7om۶-]0}ĥ@hL&hҿ?ĉt:of-Is8/9م ͳ0Xx1Y`AQQ'|CV/_Z?g}v֭.]0̏?x̘1666 +(( ٸq>P:VZ}dǏYfH{vh_j;F}7|M6mڤP#G9rwUe u;Bk2znE$^LéMťKܫW}e2q vn|BkĶ؅ɤf:K _ ǫ2mCkv Zj޼a99I٭,0AJi5#FY40H;8|X0 ykEajEځh,888qEh @ H;. @ no+ 0stUo h[g6aY`Xi KϽ+c endstream endobj 877 0 obj << /D [875 0 R /XYZ 80.963 747.976 null] >> endobj 178 0 obj << /D [875 0 R /XYZ 81.963 712.73 null] >> endobj 182 0 obj << /D [875 0 R /XYZ 81.963 646.085 null] >> endobj 186 0 obj << /D [875 0 R /XYZ 81.963 561.339 null] >> endobj 878 0 obj << /D [875 0 R /XYZ 331.029 524.045 null] >> endobj 190 0 obj << /D [875 0 R /XYZ 81.963 346.582 null] >> endobj 194 0 obj << /D [875 0 R /XYZ 81.963 235.269 null] >> endobj 874 0 obj << /Font << /F25 474 0 R /F39 618 0 R /F16 475 0 R /F44 651 0 R /F43 652 0 R >> /XObject << /Im43 872 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj 886 0 obj << /Length 2379 /Filter /FlateDecode >> stream xڝXYs~[AоxZ'&>lHhFn9WˏRF+cTy ґI$IlvoN៛5Rh,Vq7fB1?}CgpdƒB=ZQZ؊Vx](nj,(A%x򒭅t5gL洊 6Q",U*|Cu-Œꡩ,G|K) . ״屁J(@8)=X,lgՑb@xit"%~#-/o 9oLJ[8#gJ+ԂU T_x͐w}qyYN;"l-ޯu{Xr;B/4S,I /}^3!{,ܜT;uܜ^DQ'tCܐ 4esBs8B/F/SJźIa0/ nep32#GQpY;, _4aΑڠ1q7qWfbHI8kfxd{``( syxǤvfgiV8&^U8_ {*6n[?=Wܭk .k:&fEM!lL,T^*PN=\Վ}WH;"!;!AhB1 c=h@pPgQئ؈E <꘳Z6t#@:"tFЉπJt>}X/`3&J8-p*JH+fa6f@ : {m-DN2K+F#d$e]]}%wQfh&a^ߣX=DЃ%fv o,u }ۃq#~烦rHp_6\q aJf21lH8V8,($~'dp3PqH8M{v䯁L#cV;0k۾t޻Zv@q@F}h筏sc2/AS18RW6[^ #%N\h ]k\uw&J9b00HM^J(I[Ф8DĬѝ5$0bf6 `j"!G#P F=.ӣܣ%<70dj>,; =u3o™NV(V9nlqC~[E§~2 0l佧>1=74u8W_JȪc~YSm+I ЦXcds-;#91ԺIbJ:Tfv4adEdQ'Hϫ.5G7?,H]]蒷/l]&9skoj}sm -1q^1kzzTəNKމT"ԭFBǐd>NA5Cr䩯8shTScVYpGJP#'PkP Ў[G+]vPA,$3c(TjY˱6 dg⑊J WhE:hvmy!LiϙE2cʄ*k:X Mg ZC 3xeNsjӠoI Y1;.O);~0 X51=Ah;RHjڎI c)'Ç` ֻN.//~C;Ԍҿ^g,dpLA<L Md'̉] $_غjG9/qb,:2~Q.#Ѹ(Co@OO8޳Wz|Ko>{U䎍 V~#p )898-Ss?{c`}})RrGҘ(ʅ $D`wjet&d]%EG駱q`Ԝj~C< hirʼkhĻwnæhS%GܹL ()Yq:o}-;I@Xb/RN_KၟAnAfZy5$ykٌ6Sf[ljt endstream endobj 885 0 obj << /Type /Page /Contents 886 0 R /Resources 884 0 R /MediaBox [0 0 595.276 841.89] /Parent 825 0 R /Group 688 0 R /Annots [ 880 0 R 881 0 R 882 0 R ] >> endobj 873 0 obj << /Type /XObject /Subtype /Image /Width 340 /Height 129 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Length 10301 /Filter/FlateDecode /DecodeParms<> >> stream xy\'D}r5"^E*ZڟxVūԣO E(E- TbPpH6!H6al~>|>̛7oewfwޒZZii( dhPC #:?2B?<`Y_<~RUrZc)otԶFs8Fƺ 2ĸk)/_l{.HUABFI@1p8E%Hhێ &̳6ofj`r9II?76VӯV^F,iWu"LJ8/Rw̼bxEe) UɦQ9 O* +8$2W\ajK"ǀF>좷n(Dm7-*rM[像'x{54*oyyK~C os9E`,f}Y Rձ5hVv |I7Gu.U a{]ǠɯN?r$o,uӌ*;)bs-Uc E:.kȭ[d[{{FT4%7vr}w?÷~u ¼oSڼL:gII?>ݹrnnJTOCC-Q/Νfnnmyɓ'")?kγdU4Ue9 DXvguϏv ..~l'8KVn}{Wm[2G3n!hO3Ϋl'U կ;Bnzֱiܬ&z> ?ull棞_]ܹ>>Νk4"M!Hsvʔ&zPV֚9=4<4<$1c0 U D>4QM&Ȳ(g4Z yh3UL=,b4\.7DNZn>?\DNӿϔ>lk8JvTKc适z l Xޘ72r[I$ɓ>|x(_f,Ô)?N(/?~6nɣG^`gntf6)T-|JwIuNn v;붟˔{c{u&#{r^g En d=cWؐ 6ۢbs82Vb4xˮ_jXWKKzXq```kP궶kk-[(KUPPtDյ7m:sGSӛq||.:uk]ԏFdʂt߳IH(qM؀TpG}u7Ȕ*g΅WOt[L3B[/>HL]Ha]aupZ;m.j&[Mj5!C7$]}-#]F͓k$2jZC(+l-YJQv4=n6Kq4R[WM^q d5[+;yY"PkW~ÀNWI^FsϨZȇwV\QC #@@F(!ʻsІP"zǁW~d t/_.\~A[[-'NܸqťP__omm]]]=@ZMM ZJN4Liׯ_/_"00H999cǎEkyw ++wLDDDHH}fffT*ǧw4oWXaaaaddgaaaooO2ĂiV"(//K 8q͛WPP^vH?+qޒtuucbb޹s>oAKKˢ˗/߿טYv ^zŋG#tWWץK?{LEEӓb6ڵkEEEǏ***z# ^Ν;jii8?j&9qdkkRTT~G~pĉ7nyzz OR===0޹s?'H?bT#;5gΜǏKҸ8GGGwwQF)((9r.??_ }MOO?{#G"##Νkkkd:>jK_3A#/^v믿JOO'keeWZ^^^I߲?={vY{^5 77ѱu3gͭtå?>|~ puuݼys@@ӧONYm&Э_o!99y̙cǎupp:u… ̙l2~ %''ǁq<92"(<?lA2s;w`@hZ5DP\@3gD% ܼpBuuu bggwΝg#""H$҂ `FFٵkB4iP^QQ$''gii! Qi:H .ztw88u~VYY}zjҥ詺{⬀dYf۶meeeݻw͛7ؘ8++J陙aÆ&777t!ftB"5NX ,}}}󛚚CCCx{>>>>SL&`DDDǑOf2Jd$'cMMM鮮T*uϞ=SNM,.`N({B Q=uV)W~26<|PMM tƍ7ooXxիW/\`jjիBuuu---WWW6_Z(\.ԩSzzzh ft""NYڪ`#M{ӧO+((-[ ?-rwwg2'OBCe%$$\|Y:;;ѣ:(84hH.=+##vĬŋEAرcAAA'O\f 66zϞ= ֱe˖ .>y$>>^^^hѢM6a" ɍ]f$t"MN٨]OO -rCرMaXl6;88_~a2剉$ whmm533AO1Ls 2ƍ#H\(??@R1%Q'֞)8!g{zz֯_ojjzE6)]]JJJ~7z PSSsppܤ]v͘1B\rEFFIEEe޽{ѵחF삂ooo{{{///[ijj(((&_\dN({B #zݺuh$t"[nΖa``t&IR8_Ν:uꔪ'x# &&4PeeexxxkkWdd_~yYSSӰ0tn(fqȁ 3g455:;;"󻹹 g1sCCC?SUUśhll|=a3jfPkgx7SJ n5lSd2;p*<?lv0%! /G<5v"@BEūׯ mm6ovacJoΚb.k``|JCCP[[? fq5ǴFH*$/OgOsuW4Q]]Çg``/r~huuMt:PZZ! $\~S80666V :DTEӞ"!vbjkzhMQQtt)u7bji(--v"@Fhe5 (<yњ5|}9ilV5N)O5xEӞ"!vbE+ ^̟jk;uhrxfϟF*OIITZZ() kid.V's%'')yŊ"AWwD)TVtubqLh3PDd``rss,g|Zk{#ڪMppp};&'ǩi:8 k2}wߛ8S2N÷î*67S/kkǏΝۚim"+3 fqo[]RRp VyS^^A(#C$?6Qo\RRy2vh K>vvccϪ>'/?HXKsѧʊ8ao/DNL22bRS9S7GR7*H3' 1.V^~~*cOa !g^azzF23+M^}]B}}Kkk7Vg8 ÈmZ"N<Ӟ'(5N m"*@ #'5.B W<<%Kb੮%\@O +dPɄk>|Y2qE2ln!+"%ط+> ̾C‡6'l[$R">߂_9777/\P]]BݹsMWSS#x H ,dgg'..~~~fff}P***,--3223QLLLl``6Ds`1  C[[;66V؂h۷o''NXtiUU@[[{ժuHA먫ۻ]1clݺ=NMM-..bbVVJ}MDOOL//x77r̜b&ɤIMPWWb"Qc@(bbbWX!lAL:i^^v144lĉ##u888<|~^_CCC*'$INN/)==5<͉Y\D1;wɰH.~gm۶ER~26<|PMM=TUalSύ7n޼o!Z4 Y\\r---O:`?QLBBB(ߋ*) E 7%%%믿 ٽ{wNNŋz466.t:}˖-~~~&&&g###d $썫yݻw)SL4ܜN,]իWcǎEOe $u0%((/aAرcAAAAAAk֬K#=66zϞ= 7n444ܼys…b2xm҇2>>=׮] 5p0]@dA)**JII_>9ppCw!tf{C '&&b<==EܟqƑHBj*x9@S@E|ʠ 5]v镔x{{[sss豚CbboĨ1c,^XX}}}i4.((rqqIHHغuk\\ b& m[n8qbKKKll9s4DёLKK,:]]˭ޯ[NXǣGѣG [6&&PYY_={4,, a3Q&+++l;;1cƈi DxϢE09s /~:⦵UHN),3"1FuM!ؕ )? a١Ț?<ه{ Blk_‡6HMMW_}n:%C@>h$qpc2b77h04ˈnISj9 )FNORK 7- ́OZ: - C #9b\8CB #/r7q1!><'JW "m@@$˹sOj-0Hs &Dp~DH?#)--̙7}t*HȨHAa"L&) gggFsstRN03B8Dd2LD x._ 9y#G<۽;wܼy JJJ %%% ,8v옉5N>maaz%K>looR666h)S|hd: 0&⏈ wT#c```ll|1rK.-`"OAz[D&DB|8''GC Ld17ꌌ1SkοqƐ_CaXo0& a1&A\ށammE,$ɀO Ӑtyyy---4q̘1h[קMh4/+A v&3Ѯzo޼hmm]|o Nx۶oCe5:::Fo144D-tRAAݻwSRRGߔ=XrennnnnnNNN||}޼yG O'a׮])))QQQNNNC " 11˖-C3BwϘ1cŊiΝC"?E_BzŚ/\|75T7 6d/w[xA #+?td$C #wW~!+?2BHKA #_3 endstream endobj 879 0 obj << /Type /XObject /Subtype /Image /Width 526 /Height 361 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 893 0 R /Length 40244 /Filter /FlateDecode >> stream x\V[E)iP 1"آ*%bUFi T, ̼3^s%䁽> >Yg9dM2M˜(QDe_idzuD%J(R0aUN(QD<}*)%J(QDYI ]mھqxCȏR|Z(QD1vm++kT0 _ⵥGȆ}̂V4bEHTb,:]PX¨%HS?);TUNzKe/B-]bwDEdՋA"bRç-[v8$oQhg0̕711iS-2)|1M1eL s&$* 7xf xwh!aRin[uJLZnYnM{ ql+,s5 e-qn"<kϞ=8tPbذa&P=~a,,x5Tp/6ҊRe99m <ʶDeEY.92,#Rg{ +7t>,|s#}]SL# M)2|{${03טv!@URZcjwFiJ3t55YT琤% $vϾ蕝Ek Dz=-+OL޾ke8 giJ+8(@XLr˞#.a)xQCO,68e o9ܴǪm0Z ~lqbڔ_YriZUM1X5C qն2})ܘ>ԪIII222ԩSM6yc V!(̂Kͣ,NJu=r [j򝮰ǡ;0XMp?1W4^ujg0 K5t l- ]}oX>vڲfEV;&:; Ow Op.upl#;4w?ݰ hѐQ|ϲM} Oxͤjrs34EĤ{K|&}3 yLnbL׸& 3\Iyk|Σe]tU&Y =}JAA#q0FYo44&1rJh:/;azIWG7 rLM[c6j#Y[yO 7wokt^%2`#m8n^3H,'ñ]7`y$BVxs};3gٳ֎g'/@T02&+M̂15~FQɱ6ey[mReNWڝj>LЖfwq?%(,`/g^vEv\0_wШ)cv"P3 d^i==n=gկesr|Q0 gD{27'9႕&Ҳ}"RQdشC,0tqom*rm|6fת<"mE>m &gG)}ΣQƾI-DC1Ҳ)\~5v|$i{%22*ܵ}|ݽq*:Asv4]Q3VN76IBv6Yn).%?*Ey")i2fjmBUw`q4Myt6XNOg9n ˭?·u޺uk֭fff. \ݝM-_/Rl9U⒄hmm˭)P,}--ہ}|l *wC/(4 Graa}km60Al:b={a-ewT#9̂TU w?jOLqE91o@x~'i:c|_ޒQT~ʸͿg,z(0w~&^HdC={:v]l~Ys9/*&4sg~mC4Uѫlp0`}-2 !f3/qNѨg`GdLLSN[n8n=Hp첮IP=-zf\.[S=RQoe-~+lO #\Zg{bIg/+?%`wv$aQqft8ˏr2e)q?ӿۻӜ o 2,0__p$]pŞV'J]Fb/BVZdI;r8+ GIpeYiwRPXA#gjQ}86* Á;gj7G<~V_.,k|Mf'\jܼ3WxǤ~9ي] ?:dyPHmqi-`TL[^pDL\92K[_\;D\F&`g,|M");]:h PBen'q뺞(@ -je\AnGiet",N)Nc,2I%nqݱd~yϡV45NZglN=c}2e)J([Ycm.?qHoq,YSlqtrERJf{Vcf(>Sx)7؄bu?jZz9"O]$.ݧ9ޒC&9viH!vԞ={! KS]7g}PWLi(rjz9C-ç-q>j3 4EzXk3E}a!%+RsxGT9νĥnмV&$,"ou6\2;F BeXr9{G2amx.:20 S6Zy cgySä[8ebb_t+{KQ4vZ&n;y-SskSBQ ގ:v'9;n6$#yF4 yNEb׾z*3_sbmO~S +>/&=:-*:<(k1a;5cD4BLVþ Cdci7vK5 -q٫Lyd6ekZVdwH[U}YMM;D : JG36퓕W8rZKk\n0޸iJ˘8jtm2)JiY>mA®;FDejorre6M9̳/kƈ\`|6" GnНiZ{S"s"h^R?Ër\lzM?i\sT6}W <&c]dn ╟VXV|cZӼSEl" f]47VySx3g tt5nvލʱp@ BnYmo46,있eaӰ/ô-iX8:}Uv^wʣ}hZ,zۍdڤ?}.MtLOԶD?}OestUxAVrEŤ4BtevYiv%\]瞴-%>-KËCom .[4ث^ۤ;nL[$~h)QDKK좯9Fz(Q~T&)A׹_&J(QDXHG"D!BY(XR!BB "DZ޽-3ӧϟ<.-}Yjj^݁l"Dy8qƍ?%%!BHAs粞<?Gǿq +***Y533{gPDKKmXHHHCC#77;;;~MRR!9ӧ3>mEf浒?/"11-7R(((l߾]OO ӧСCSRR˜ӧWXQRR£6a,..Fi3gȸą `<{7IA0???88DHMMEHʰtnzH'b\Zsͪ 1eG/Zҿ"3㟯S@sw G_~#\B&m!&>qa^ ˛={H^\\^<..nȐ!z_ >6?GVVsiӦaᖓ)C|)oЧqV`{)_xqʏ_,aڤn$44tԩT hc_bcEc|ɓRj҂MMMn9Rx>SiO?y ~ ӏ_:%ue`ժUu"݁k֬w >@bb"e_|Iq(j5 r-9鶒s:8{㒟D/=ollDѯ_={6,00f'T`?~xڇxyy-ZHNNn޼yΝϜ>}ZAA!""iG=7s!m:?fmrH%7 fJJJS@:>>+W:Da%44544^;wз@!,E@1'"DR0SlݺpD̜K.=x K0aWWWikkkn^z54 {N"D!ؿ?uӧO%$$<==?~\YYy1117n0FFFgSRR勊P:#$#H"HX|Qvv9sDDD'O|I,/nz2"''u![N~~ }JJJJjii={ӷo_iii/[V\\رchkkKQrR1-=5/Y" ,­ۘfܽ{Dt*Rio޼111;wkg϶Ç hhh5méRAxԍp^):O-ENgzkHۄDRtRP?ܹpl„ k}[R:ϑZo )8vː}@hGjٽ[ gǏϼwܹGmOOd_tz sr޹ s$$`vBC L-,,Ԩs2pfffo޼illϟsߚ^Hy7orч={2/=nH n )& BI!,222;WXz,ܬJnn.i+""bԨQo͚5ԝ없[>gΜlc999#SB "]uuubbb]5ˠAΝ;G?|R$''1>%;)XD{N~|nOb 9?8,5ԙI!//OAۣF3?XM),,7n\f^7RbgeS&)-.T ?bQ^uEtf@,s ӏ 3\9*ق)$,^:/^ܹs͛׬Yv𞙓g;\mQc?39_F,Zwh KCo3*qgOϡ{?⧧'=lP'`z&((ä@% tW15WE}ء%:*P*Eϋ`>k?c9y#gpO}O9+wޱcκuVXh"_?z}LB}ţꝬ_ڔx#!y+~i:ܺ~gUO}v6i}w"ldTU@0iyApp0H1rHSSSII\xGespp -[! KL>p@7~ooo4G:eʔ7or$ETTĉ({ttA/^SXnܸ1gssstupg!ER]:H8v##%#eiEĕ#Ǝ[6'ڇZrJK! fO+7D*6m?9?F4_EP$F,B WiH/**RYQL>KqLTRRJKK:u*∲2iiiIߧOZ555xn)iCCC_xagg nݒB/_G(Rb)"T@LJLx`"v"&`E72r2dzW1>w:^^W-ʂQIQt%PJD\9&^:kč2r љT @2T}ݶn9eID;[S[2>bCLB >V- s*a'ÿ=CPoT:"{if-KBBJ-z!vomcm jV1NÇ#|x1"55D|˗/¤yA=L0CX ?Q UGXRIL?_TY"d盆:?)璞={FOtv ,8qb S̘v=4)28pHk׮1c A ---iMMMgǏt'}:$[M9ϒJ(RXzXK:Rp!&Sgҕ ja98}: ~1tx"Euq-mjfLD~;&Iښ>k|oL2eltIR|3puEIg<),Z{mhwLConeo4Ǣ / u m&):;k,YRR ɓٳgФJx4Շ뇘m۶1c P `^vHGAn݂rK.SݭK_5S uEc6X}T$wi_Hk~'M0 ܃YSP\C S'PcN vR:u Q#Gq`YVu>a„GR`~p+|c8nF)-혆j|%y-3?NV՗u.C2|?"ߟ&Evvv߾}1#SWWG444MMMn|NQ\\,%%+ z&l&)>'Obt' 5˝+dT+{ʉܧ_c,߰خ}BfeeEx"n*LII1//+{?z n[bCfF<^ڬHnb,j':n:O~i-+_C]=(daaa ===9>r 6 Ν+++!""BRR222#),XpB{YAAma}jř>uW$'_z QIQ#{ >w:Ag5auK%@B0N8Zi4}AoAQCtP ҭK3g E SHHISEE z/]o]rŋ1|6mOQ#ŏ}`q,n]G@O+v)ӸO ~֝=̿ uNR|\tz RP'ZYStg߽{wAP^KK-v̙SLA+5> {lcCh7vLCM/ SD!CkR~:;;O>Fal_Yj RR/Ro' U&.O#B]^0IZ.m~$EKիŋ tRvw% J!E J466RWdXHJ!!9|3O!+ZZZLR0s>1aN 5uM|8oR{o~WB B B BnKwÄ ON$E)))):):Ux-#GLKKꤤAA -]1//o邂JJJٔ1!!aȹ|rFBOݻw.[ !E '|eeS~v RdeeIKK_tÇ7oٳg`mll >}*''\VV6]vq3R).^XSRROkh555H{{{ÍO2͛\zUYYL{zz!;::ƍs177>c^'/ZU_f.} )$))))!QZZ*))Y\\DOO)$ .d'[8Ib.aj QMceэ}-^xժUD]nnnWr>~9F!ENBHغu+b ]7e7oѤ6mԩS)0'G#?uͱNޱcejGi\^^~m:h%%%'NPRRDMS`IիWϝ;w %ԽO}t钏J6:ӧǏ_VV^UGK'B B B BK~MWWwݺuO@@Dt{{{c(0eʔ7o~lĜ9sGI2x5k۷aΝ觲N!;w.eQRRJKK$quuuss`]p\WWwr"222rbUTTZI3#::cΝkׄ]bbbRRRģGG\A 8w}t˗A߿$~DH8::jkkSs8p@KKYUU +c (,,A0&KZާn?BA3goIRڵk̘1ӧOWSSI1rH*+ ,8qℷ7pV")W4lmmi D"zaԠŸ;&)~:) ̛7oԨQUػd+a )u J7o4IA#):;k֬˗/wUf|f13x)ǜӣ)))uuumr?>P;;GR#w")㣡Qu7)9XYY *B&Evvŋˁ rˉUpBUUu\$'++ POOv)>vK$S}B6'1w\YY٩SFDDFFFr#ٳ)X7n۶mdԽOͣ}3&&fȐ!;TTT )*)n߾=c K.EP\ h[;tR!y]DHAH]>}P7GRR\R`И3gΪUZ|Dg!!E ʼn'DEECBB:*RtgR aeeuI"E{32!Ew&ѣG022b>ISc2 蜤xСCgϞ=f̘v1mX;2)):*ws~S )ڐ&&&ǏG"$$ٙ#)C,):֚)!h#R'&&"oeeEbSt& jͲ` I.3RR٧db'):{))B3!ʭ[-Z9DHAHAHAHAHIظ|ruuk:DHAHAHAHAOIqR{WILAHAHAHAOIаpJ&)]l0RR#))رck<$**jƍ,FR_PPPYYʕ+ 1E]]Rt))ZNt bbbA&ENN8VҒ!lB B lذa͓uttlS!!wtR*-//>eʔ7o2|g_$Ųe-Z$$$nj)Jjkkl6IJJش) p?{ !!a)>v?L xuV$JKKLLL4)pxnС߿g?3uTeeeҷonO茠 WI)!)ڻN B B&>6_{;88PҦ<4)4Mp$رc_X]]݆*''BEE6KLK/_XbܹׯoS|<!!Ec `׮]cƌ>};)8.IL6-))WWѣG%ƀNTWW ng1AHe\\c& aR)7o4B nKiR ̘%%%aɓ'gisRXYYikkS> @RRRR)~́WUULlNH%B B B B BK={t]V_GCRtRN:U]]}OP `J"|EiiiHWcrQXpBjٳgmxh\.!!!E$ŏ񜜜;vp$E YNP+')٧I)~)>~ /^DСCS7) |v~g+]v7'w?VWW;wի7]<N=xAHAHAHAHAHHђsJ] ~=ޤTV~zH{ѣG̻~ܹAllŋ )-˛={HS}?\TTƍY`R,Z} h[^)NcM]>u#EXv%EQQQYYٝ;w嫪)ڜo߾Ŷuss6lۜ555 ?IIIwEHAH槤{}J@[[[CCĉ`: )-[9_>ML`)`ČioooMMM*?&"""\<~bʕ)f̘1zkגO_@NNn޼yΝcs[RD@vg]$2siaa!GR;X]]۟H vXے QtZHAԘ1kR L@^:U0205j&4)P!⑛7oR0~32ڟ:;; hi0:LR̥III준@ׯ.) g)XxѮ/{ON>GO{1g(YlH1bʂ.ƌ˘# a IfiCR ,x"<<Ӳt҃}۶m̘.,)SL>SHp>>>?,u BQOIޛΪnPղwRP>bF*++{ &)TNNܹs#&O q=88=m+RRRڐ| ֓DPYYy1l7nPNW lҏ_D|:@dd$bhƏB F5kg MHѵI0jȌ3:y&-pemx$EEE`srr` fΜ)##3i$x]ȀڐSdggϙ3GDD{IԊå+(( /\i"}T,Yj1Lzzz/RRR)36͟fiW$>:,!)3:FIOB B " BN.-vFB (,,:99Q(Hˣ޽{W߻wOBB6B ˗V2|OӴշ`f+V'$$R&E^^l Iaooc*Mt w~&@[8Xt0)BB┕zxD޼o?>A~߯9>00)߿/ @BLLL 0lzzz>}j6m)nIHݺMRPPдi3-,h%BqF#q|mǓɚ~~>|ɋjhiiGϟ>}uh 2p,jkk{ٯ_?KKgϞ1f̘nS9sWy>>>.'c]ZZZ/YFiiiTY\]]9 ,Ǝ;x`쨶,RJ`RL*(LP‘/;)jjj~ )˟ji坕uڵ?KK޼x}CC͛O]\—/V^Ň9ٳ;w I])^|1h]c MJydܹ̰ .eií,KC@۷o# t)""31 pϘ1,v/RvoooyyyHSLy&Ee˖-ZHHHHII & ).]4j(aaauuG1[qƜ9s| Q]eφ>hkkkhh'6ϟ# ST:4h.^<5mRdd䨨l;{t??}++$&&SПc9V0AYi[-`2Oyy?}:h[ -2RS6i gLM:i$QMȅ 0` w&gb}'222 akt~RBM -PRRM 2 ů"-- A 91]cc6هDvR:;;Ǐs\Ӷ"׼y6mrXVSاE OYyVuu}eu.L DBhhRtl𴦦+[[[c=PW)٧Lv˜,KCOF(AtR_â];a)hI1 sqqq4)|Ί&ÇF&)V8洴aaa c~8p۶mc8i[=@YyEjj۴˟SY/9s…'.wrarA ?qℬ,zΌ)ttt1u3f`S _R`Ά#>ٳ'k9)Xʲ4tUL(`7o 9?c_{޾}hhh?{L]]]SS"/_?~ Lha7{TUU) N(""a*aφ>,X~F'ٳř> L~hK@Mm㏈_,ٹpG40Qmf,[~,65LL L԰@i޼yԽO>րqFcbb ¼ ySH Tgy_S&MZv݇<=c\lqٴa߾Xssի-nj|"yF@ `R|}̤hGOzK3Î66Glm8:㧖٤I<V`EǓJ''$!Ღ3ׯ\[_mVw*+^LܹD@"D') VSS{'%%D!1!"D) *)!"D:R0KτDR!! BB "D)! BB "DR! BH Iw7aJHA(V"DB "D!BHAdWdЉ! iAB "ƵAB "?xu&$$RRt<).\H,//:t(Š>XXX N81++ ƍG͑l1-̜XYe„-ZcXRRRP2/[JJJ) cG} Kp_^녢^GՆ'7)fΜI[FճgOn;6$>>~ȑ,{N:XjUUU0!}En>@ؗ' KEEv]$455+--=yd,}6>䘁fR;::N:8:穹7 2IJJQCC 0#E޽{ 5Á#Z_wZkix}Ch}J{qI : )*++edd0A㎍W^Ǐǡݷo߆9iR"G۷o9}p\c;bƍcHMM,4K-{42`d:[hh(\ӏ=o@MuR=D,--f5ЏBHކ6ں.z/^}խg)ߠ_8HP2N>bŊ9iRx.iئMUḴ>!E)߿9 f-2bH?zH؂)EgkWUEQVT4{"DNBlﻨwd:}of޼l̙{{{QFfͤΟ?`mr &iVA6Qo߾!E˯5(17vСI_qg֣4+BCt}?sْ|L"s!MhwڵJ*(Ƣ- ]) 7R`(Q)h&A9K٢v9R|I>k&]hݺumڴ(eQQQV/Dfǎ(RuLl!?s $b!Q~}jH$]gjժ&M"Sl„ (ׯ?-ZyA!45k%H@g=`yjG%?1LVߠ I٫J@`>cbb ,՛2e bB+Hq PE,_eP"D U:ШQ#''7x_Ɯ#Ӡ4>?w2 t&&F &5`HA1xЙ)tKp?311R0i( t&&F &&&&&F &&&&&;!ҥNӐ b˽-ԙx9 1Rpv"*r%픒  =B0:ϱ2B|!4<~lvb.\0 o""3QQl${j7S?u U_NҨC#bNV.;QS 670F2 B"E'A(*M* = 0ܼiHJ C_p!CZ8"UnXu~ֲ t!>p ^'"a6lP:u1oQ@kLj8 #ÊVqn,gX8pdN>|齵G|,LzX{C[{HP( R^,RSL)={jca~S gTkyDdA`A(4hsz:_MS;ڜXH)8=>  #  Hwc,,8`9ĉ! #'F N,)*")-7R0 AȓOL, ,,Kl:[rL, H@)~M,9(9v"_( >HHHHHHq)]H>#EEY(PhQ\B /9i 42Ʈ.F´R?~y&yС{Ai<|ɓ111.\x.?' h_FeeddgϞUݻw/ oZZ߾}OMMUZ'~cOtC>==]dP:99رc4څyS(~t6í[b8w0!{S~}O>TC2e~m 5rNNN-ZFaZT^]_~^z(SN<}F"˖-+ϤIr);w.~═DƍAA0K߂Pl 3vYz#E\\G )'t,Z$5ދ/+Wׯٳ4;T 1a^ yddzb4yWtgΜ?#A֭[P.]zd$g'NHAD)}B$[``aC (%JHHxʕ{k׆ F<<!TG֭k֬xbkv5ßc}R{T4Wʠ0aʑb\x'C M ZZ}; 5V`١vr{K>ť,RCI9&8pN8qqoڴ*{.ڌq$@oYh <)mCk&H~!kUCF@![}߿?*) C{舘>aLq =hHQdIܶiӦj+c"~hb.&ZjPsBLAUT7oޛoS}H\rNJ S$9S(}Q\}j!u$p1'ZԩS!% yQ)P`\3~,(=(3S L{N>}:#@BYfAAիnݺ%JMR mP};رc *U";Xl=)H!' bsB`_?Rlذ,g6EA>˧ƌ"!4;< Jq[d$[ͭ+ivprR:)[l=> OПS<%>Evk} է}_aG > yZ&} rCB{ɭ(ԳgOm۶our#G?ٳ'P㫯"BC, (a'<6Fۃ=W~'x#Œ%KvZ7} /9 bc!$R*9*\$Ă|bbI!mPctKb'vHAzX)t۸OAKX(L"E( wB0o}u σR^r! &کqƤ}]1ʫ.J'.]j5rrrY 3\c+XJ\0aBD; ׯ_?̙cGBKbhbT{O!>AQhNh]B@ . QH^}Rd hlڃ]'R|𡴣ADM+jgtxi޽ 15,:DԆkP/G7/4ߧ8rVE0e$F4C} ii̙%rE5jt>oN<"{nhΝ;dJ*]ڞ"; -[|J`4/ك=:>]͚5/xiSiQ;wn `׉ 'zRz!UkO)P|l$7ɡBӦgB onP<FF7;?UVkOXbPSG VZ8;;iFى~u:::ja<G OHHH:###S:?HH)-.^Bu˰i:Z%BD&AϜ9yqobNa?{"b)pǥK_0D:+ID)X} #ho R,_.F|P<{!$D \~[nNNN򓍐:+VaÆQQQjRÆ+ ]v?NK׮D$ۻ.m 0Ck/=']v֬Y)$z뭷r)-CQ#//S%uJpaã4)L*R ǭM2'; 칆h'"33W1>B/޹sy +R@po߰֡>>-iҤɔ)SMVL%KbQީS'HA*VHoS޲T"N }+W]A ԞHd{R4j-wpp$!EvƎ (D>222,,lȑ={ğmڴA:7t>Ƀ2޽b~6էlľV3l8yr"z¤"pV5^I+1lUϞ;HA!gW)X^dtD5+R@$Y0ƾ2]kY(v1塯 "E@Q8w͊R:Æ yٲe%LMY)L*R|"$ۻ.~]ff";t9c =O:S6b =rˤ}+žV3lxJrB"鉬bhT|G5_;#LERdŁ[A a Ĕ'O^p!AHyŮ!\gpPHH ԝZ։jɟ*v&u+V@RPZ/BD~Ν@ زE`whRDlǾV3lZrR"gn"`|W\|NM#U1:#-".QFzA,8͍VO-yŮ!\gp*5k֤HC O]It]. E+U+7ި_|@$?( dJI¢SZl"`gO[TdDٵdN96<|9Ra΅OAk"8o`#Rz.X$tʔ)o߾ݢSDµÆ{zz:::9r̘1ڵkCZj<~v&u9˗/7A jԨ!ߧ>w!Ez-d{&)hy } c_ۂAmG 'Ϯ$yhI(: Z/1k4mA f /TrUyi-DµÆʹ(w6B^gn-]Hi&CBLߪV ,2ʕ+wNR[#C_W>d!bp†K$_/ZB0)qdWk9)lgqSXh Ѫ+WwiJVQҷVs)6n}PgQP#tKjդiҳw СC)b{޲+F*lDǣ%EY&2׮D:՚d{ R@R/^D={VR ?,,lȐ9rvvvwwhCP L!#ns\#b_+F*lZ&M%ɮ)6\ͻt-GHߟء/9R>09%"?hNi`EAhbĢ ұ|{ jR­  <,ԩS R(FPåKbu91'ӧ333Qx)+Wp>ء/fkP5ty6 Wkΰ*db&qԟF8.Ma L2PRn ߂PVj AhgTF E. B}AIU_FѣG?A;x z1f̘.]K`/_{.Ě5k ß{Ç9TR... (oӦ 0?,WqAH6R(SIkRb趄11:ZQ իWccc*`N~uڅ&h]†5H8y;LW$H;w`=^R{7Ӂ\R(rݻTUg)ψ  3B1_C#0Y7RqQa1]HoB+BKJ*;v 2dt&tEFtl%}]x0rܪiӦUʱc*U}kt8W!!!"Et &L@!#OKTlU)H[\}҉6mzjժEX&ݟFFF* @  D~6lQooܸ*Zir )֯7 A/RPYQQQry {P(v d^uJɧ(0-}!nP@p3o+5H?R(S$jRׯo-R4nR`޺1\[~wPΝ;!k(( A@̟?|r )EgL \Ŋ'N+RhD{#ŵkLCDC_N"Znh0G@y\\";Ņ|ϥ|It¤BE^p[2]v8}UHh0\BR0OBu,݊.& Gɖڄ r ZBANF r.H8~xRN͚5̙EuSd@'@̜973ߧP%ҥ I-4`)PСC"b;Mv@ާO#SkdH9R HA i|4klڵ- S!ƍ'!-Z8qG:{RUP@ܭPMv}JZ| iVۇ6|YP6\V!b;L׮]:c } {Ot&ʕ+(S cjKd@. oIH!@ )f|A?`Ә?ĭP@ .H1k,hO>>nQٳlق_V7|%aLN:Y,TѣGSn| Z]u5BV!b;MA@OjHJuX}+ :w@iӦUPGڵٳb#!APw)ȑRA8&8վ}\@u*bbKs)ctΑV5 N)7ِB M m]hN WkUHaN!ӵk) 5F)(t%)LNRYT&H!1><5 d)elLөY~RsF $rܹ둡fʫ퍢K|XXt*݄%KX,4'hc2exv0IO8QcBV!y;͛ڥhH!.@@ ʘWF_>sիW fsCA_M1b"RB_|*xv:0퍫a)'Xtjj,A#:%ETB T{j&dcp[6ܤC+nG'0ߧe{x@m{dS N~\NaD'jAj&RDAڳR <7cb< R\`٧ƌ)'tc9#2&ݺu,R?tJ ZZ@0n錨v m+W6D"""O}\]]5>)6~Ȑ!PjUdȷx&Ѷm[|K,I~SךM:A)`P'_>S@Ῠ:<<`Rl9spe~ P1#5=˖-? ,܉:q#,O#2Ҏo)X Z*1Pns$T?Rj‹b96\ÆSt'7>3Rdwgۮ^`@@ G@KHaZQ: '(j} '':u{BCoZtãy%J@[hl'gyfѢETuJ` ꫯJDm.^8 UVŌD;L6hs4&F F &F F &/o)_!E6ZHHHX*, >ċz"{ߧ`b`````b```(,H| C@k'oxQ|-æM9j!ݻ<u<,ZնGX%tV a):Dl1'Np)߆۷86z!!!Xf1APPг>crj8jԨʕ+LzӤlٲ{N4IWZjI%իWWݺusuuE-[ܵk>}CŊkذaTTrԦtE-Rsj~+[?*#ظM]T`JuIIW*PW>>O"{H!M`+v:ny[Ou^Rդ)(+\(ǎS:nRTIȵ} c5(L{G6mDa~#GijGbXA yH_աEH)g 퇕NH~MӦM-:>+L1NqVB^ o*.wu\Yi >ҹ= R@GyoowV\|@ƍ>`,Yv>WÐ>vjx[-[|rnS]{ `ad#Dݻwr ^jڵix@s&Hyh} 5A@c2w.U˗G?Bܹ5N8 Ѓ5/=K8j^)! |}^@A/d>a-RdD4-Qܡ?>O> J)Cg #Y:NDT5mCq9cJ0WWB<5S1긵HA7/٧0=o-/:@ӮX DچL GmyQ" vg`|)SHΑOAw~}VEm۶)S歷Bɒ%KPvZZX!EH8@R -BuB#7j_qHaKq6<^E \$S:NF]d0ɳeKuH?ŦRstppxwcNV!yїt4UR 8^اxxŕ?O N\ӦM0ͩ9s} /2C_F+^K|>"ƍ nJO|<~,?>·~Ms6ym'jp)_i"=;ҷ3tG)7- R@޸!4qCS}jҤIJI6`6_hg.]۵kM{nk¤v NΝqÁ*Utp:ѱjժI"0Z=tPܶB jgBW<״~U_nNBO Ra+F*ݻ]ӦMB1]]]TPF H}/6χHjzg`t2 dHSZMQ#ouK[RD!ṾCQB|p. E` 9!,_Sh&j${˔)\{tΣ)kҪU+gg6m%%+bzt!} 7h V&/(Yh^TG~=F *z_nիWS᯿ SN=,"2\s<)T(ѦSd;;va͛7CK_Kg2R0M 7|"Zzb`(H'ǧy殮wMHa& _3J|ߌ\Uo0R0RI"""WHʗ og|OaXrF &>b`b``b``b``bHu|6X TF F:vqmA`bH3e/8wQ>N )n^RY:-L)t B6#aHI *F F5)̣[&Fz!Q)8ݼHT IqH!<8P#3S\pA??F F&Q- #S&QǍk2DEyzD)) RJ$:nQ) RXlD11%a`(p>t bqHQ| mAFqO'ߗOJOF O"03R0R's0A Ũ`>iBu"#yGSH RE&FO&6#S6h3R01R0R01R0R01R0R01R`bo11R0 0R0=bm@YԐNpɔ zb rS"wuT~PS,y.0y*mh#/ l1ىX h#Ex#7|h/S'=Ha~``ţ5xx14Ӗ>{kw?=HQh"j*EN ]b5ːx{=ϸ8Ǐ3k?|S`:رcKN|qS{s)zNp>N?< طoW*Upmڵ6mԬYl0ڵN:)_~c#ħ&y}SS,EHHK/THlOҥKgq֭׷hѢ9ޤ)>ޱ59CooycݟW=\s7Ǚ7ɓƍYCJFqĉu-F!g& v!Hf8p &&M6󎭊7%iC A/zX|e|}|vJ+rM9g:4Xt$=+} ;Gy uwsɈI`qq77oByyR2J;vT܏BDo⋮bo>3DAk9.é[@aځ$_5!dbܼyS'&:2`? `*X<OTvu)P)Iq ZC)Q [?g}pν߅cOu~Kίy-&ܾY (I&ur6Lf,gĈt%Ԃ9R̈BkPDH1aÆӧOG9#(Y=/h/X|9gϞjכ>Iy#Et= q{۷ Aoȏō0RV5ፊ#B)"wmX ꡮ![@)p)࿊7ԮP O R(^9d#ZEIqySj@Q3}c^zj=jD@iD%K@Ϭ[NqXBnݺ͝;WZH1QP#_uݺu+Tп4;K:J$J:Jz&CGYtZjj|\\rRRJr2R-{pmbxBHƟ&ygi }- W| )NO((Ee ][wu;%j>رc?Cd?XZ2dT Ox)ƏxWjUіB/]}O;6qqF[TћF"HĈyݹ 徔N޺%oE@*Rםd;W޲yxCD*S(^~ݚ [Ϗg社^_9~1g=gy`\(͛oB^vԩdRo߾0hs& !""V2qqq/T%S%xvS@NO- q\$d_ysoVzDVgџR/;s=קOOj "k~>+.K4EP w㜑[X<~HB\,c%}05ؑ ?bWA"v] |8@pPີkԐ,\bWvuɉ}#驨NڧE00YؿfM}G{X <7T^<wH# QPaaaׯOKKr+WBBBxCsm,)vlw{!|Yd d -a"{d0۵] \C S~H!n3K=8巸O y>$&&›HIIaW"_!ܷF pHSPOϑ)אS))xQ`bx| Vi~Nyxx8YD @=oYy;bW> stream xڡ !i>/.+L%V&_&@ 28?o endstream endobj 883 0 obj << /Type /XObject /Subtype /Image /Width 14 /Height 16 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 894 0 R /Length 55 /Filter /FlateDecode >> stream x0 8 R. xIxĸ!%vaNv !-# endstream endobj 894 0 obj << /Type /XObject /Subtype /Image /Width 14 /Height 16 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 186 /Filter /FlateDecode >> stream xc`6 6(`*mkgrTjZ'wx1y鍝g.\YQ̝?}kĔ8osX+hf(cáS9P폟ߐXצqz5;QAgma`qp3fn۾EB`yKls)0wήC'/:iYp?b6=[ endstream endobj 880 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [213.236 346.321 224.192 357.792] /A << /S /GoTo /D (Hfootnote.11) >> >> endobj 881 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [189.114 286.213 200.071 300.009] /A << /S /GoTo /D (Hfootnote.12) >> >> endobj 882 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [243.187 286.213 254.144 300.009] /A << /S /GoTo /D (Hfootnote.13) >> >> endobj 887 0 obj << /D [885 0 R /XYZ 122.806 747.976 null] >> endobj 198 0 obj << /D [885 0 R /XYZ 123.806 712.73 null] >> endobj 888 0 obj << /D [885 0 R /XYZ 123.806 679.09 null] >> endobj 202 0 obj << /D [885 0 R /XYZ 123.806 531.873 null] >> endobj 889 0 obj << /D [885 0 R /XYZ 323.059 492.255 null] >> endobj 890 0 obj << /D [885 0 R /XYZ 141.734 178.916 null] >> endobj 891 0 obj << /D [885 0 R /XYZ 141.734 155.005 null] >> endobj 892 0 obj << /D [885 0 R /XYZ 141.734 143.05 null] >> endobj 884 0 obj << /Font << /F25 474 0 R /F39 618 0 R /F44 651 0 R /F43 652 0 R /F16 475 0 R /F46 674 0 R /F36 596 0 R /F45 668 0 R /F47 733 0 R >> /XObject << /Im44 873 0 R /Im45 879 0 R /Im46 883 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj 898 0 obj << /Length 1992 /Filter /FlateDecode >> stream xڍX[s۶~ׯ[9M:NNSLg>$,q̋q^RrX,v;xL:#{R5VC3z3fyG<=[O&^0%2p4 0i$]@!i`a՛e1XsuTty F;x'ӷ|w65RJuVFƭ`@x CTxKgi/ ֋0# 9I"8*Flq҄38 2AH =8mk{vvV/) y >ԇ$2/X֥qP6409t+ͯ-ܙyeAp؊Tx"+8$RLwY,ᅽuj"m7 Z,|_Ӏe & lBOÚd, ĿUwX8|߃fq_a T, 9%X?BXʸ}ٹf5$!*0;`8`AEQ<j[h*bxD!-`E]ٱW*+_fs)I,fVw>MY[zz$fՆ)5 )Pz廑QW$uF}zDvA5i̷=Pj-S9=U[tTN׼ک?+Cv3p Lp]|4`=h<v*^aR FSIV@BUTAQX l g[W6z&Pp)3M<¹J@ab9+#|G()H&!lR>TGk|Bi}Ǩt[LmyU70̪dž/:""yӲQPu5Zysj>,J\1e(>ŶXΐqZ jllQ@d&|m)չRtQk2& *،ai%X`עYADʊ'&xɍԡcE[fHkI7O(QաK`j&`}e`V#w;H.kM.a?lEd$|G$-tP~i "X< ;"'HDrɶ6kg$ jS]w2>=$Q5~ *T)R}A`` m_e{Z$8|ج?)P Ւ.VгD `5,DP430!D .UZJr2_r;'n"[5eR~>Qj{ %|2Q^ {,a'3w;(>QIW8!]`"\8|OW~Gb#wg^y+8pFc8k r66]WņmiUsKY8` dj>ra$b mK@?+g<į. q D;Mctv_&N؛W B0wWsGnF/Hw_4U ES3^5آFMІG}ąIAk"(gX(` @]6~q O"/vsϘ!dWzvfIY2[ .>vv?{ endstream endobj 897 0 obj << /Type /Page /Contents 898 0 R /Resources 896 0 R /MediaBox [0 0 595.276 841.89] /Parent 904 0 R >> endobj 895 0 obj << /Type /XObject /Subtype /Image /Width 639 /Height 521 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Length 60479 /Filter/FlateDecode /DecodeParms<> >> stream xyxEǿ}}$@8A꺮׺+*"xªx"h! g!!w2'ÐLfb}y晩[UvUWWS̘> @ .23z`iS{RC •ǫA)Km@ W>[PUݮKk @ q'PTǎ},a32rsrh2E p\qm<?z4~>} գG/},˵s@jue(D@ Zp#ς4Ϸ}~w1nc=l6Fl6kݺu-2+CQ ˡ5N ~1.-+KO5g(m?ҥEO-u`0͍2Qd2MWB q 3gN:ŋ.!!Z.86/8]-֔+>qx_CK1c*(MTH(i+C!؄`ї z&"EnɒJHS[/3gN25%>O4ݹStFFܹo'V5rIt߇'O?uu;{a04m2;u5{7xW_hz *{waq֫i!7 ʒ$ghW\7睹.kO<1gegg7T 4 '܆#ϲ,5T=kU2(漾vy&u_HJҗчc8J&HȸQ*D$B=g= =weX2:wЩc뒼޹+,,dYve7-5m̘() >6I?Ysaz̙<4puZǧ>R,>Č;z} Eh}on=kzhї_hٽ{C=䓊=ϟOGsyIxkh*dfWzɒ%d2z-cǎ1''7bZy~}6l>''Og0|݆_GM!Oٙ%D^tDxN_cȠ6ÇyW\ZKmƍ3ѰiF_7N2Ĕ䤛oq!< N"8"nM5əO4T I!U{~1lBzw:ɹi׷Kk޲Ҫ)6ZR:޺{3Vqi*4Ү(mMQ* ױc0DPp *'^^h$r{=.4Ͳh5YSVh=4M/ڷw.Ț{~S{ssy\sλsުO O(Z⳧?`zښ|~("E!E8{vkO}o~UQVJQ$[6mп@ze?x/#6nw̛7o)~4W^jזq"J1-P4l۾sWTT?~{PnwS3"X'8)M|qK߾E-7cYVo0wbeY9O/XIo KьNo@S ՠklZ~;\Tr:U^o4RhaW+Cݞ_ :R>o}b Wz/sz k4M3 0_~?쵞o-NJgDžC~{*?l9C~$B=s|w jzF4aq?{TJJ҄[}‰ohvsߝ2TRR-Ǽmڴa)xo;?))PhpxӯO%Y~ dYקϚ׺5Z%"wZԌ=B}^u63pkuf I:iOh4Ϸy˖ߝSNeY=qX-fl%d)DcYFΙVzzj- w>WV5pP2.gSP(RꋢzjO>⥒$u!KN(YV՚LF+Kd)-?XZϝ;)EF@7\nIdY$OM(JsfݢEÆ+^IqF@dvEQu2I/Y;Ը*+ku:ɓ%?amF ϥfdtB~vSzv&e3 I(X!O*Ǚ(}!3 @= 7 6dK ݹ=6$Ӳ,<0,0^h4 -Fi67v;&kh\P;}NleYAf3,/# R%{~l8tzB}U ͌!4,=޹+VOnӝ䲲s ܾ{WߔNjtHu;C+lqGڷC(NA"hlE!uּܟw2OJ(m諪*SRRd@eEEvEIfglbY (H, Xq*u#ei[0AZFZj%b9e6Y+**S3R[ ʴˏ;S7H74_YF3zԌLf;ަMs)fiƚBQ0AQe4h*Lg;vbhZt(ZAyR_4.8 g  u}r>*pKi)"=+LƖ-ӆ 띓J2G*l^ur O%@C*9Rӏ[( -#^H )ǫ$JF| sQ>*=ai@xLM0"1k&/B:~vyfVg5zDo3,ŰyVEjД)Lf+vޥ1,I)FQ`.́ ~ȴJoпˏAIYFys^?55Mfn+V4 5|yk,EaaKxܕUKd Chijᄑ55 T|}{ ɢ ( (4݅"@SNse_[2t`Xz%)5CLfa.y?Ckچ+bsؾoyi[vu+eJ4? .dk+ֺO*^'%aTn aSB}u7Y+ CTht~bB4 Ck'f|Ţ/eM6Ǎs;O̘+?jXu30 Mx| /;hlqӧϙG<|jjѣMMcKT3:"v1bHki|@׭]?zM4MiX-hL%QƎ=gi~iOϏ?!IR6mOI6ss"ΝTIx9Ppl'~/=b6|ؑ#(Wio,gsNSy}+~N7n̘^=a=`V(摊{w߮2? $Ii2M&k.JZr``^e=36ʢKˡ5iS>h.!m\Q^2m/ jw_|c.wzQ2k[Uݥ%;q-Zt>nzB*JT]3+Uǎ}ۏ{N %DMk-6{ ju,њ C{YXFg0)&3E>jt L3,>(hj$3ZS)MDZI-]6hɨ74mEikq(`jh'auFB(j Z,FL48%|fÞ2^j|^UF7,[R|eV(Zo0A|^7 ьN7) _@(a3Re08xza.X֚ly(0V)(nBIdYbīFZʲ=Qq8]IDcCݜ0>7QC[{䬾Kn>Q9kշ2('nyN_ 3B[\Bl֢«` dhf1 C[SN ;HĈ^322ӬFVۨB7KH;M$#F$ RS3u+2l d1,z6TT}\4N}MCָ7 ̄*6@`D>LJܬqtyEo56tk?!BPPuU9I^CG87 MQbL7  :{$IO^;bM C &A4zV@rhnCTo~(z^(x<ӕ؈BHR8'7'܆FKrrC;t41v>x )9+C!X@'G;~Ȳ\QVfw%I>MV5-#+C!X@'І;G~(fef6ˌjI+[@ s9Ɖ!0pD@&C:xgラ@ |vnpd^.@ M @ 45K BSC/@ M @ 45K BSقhժUaa!Cݻ_~qZPOf;v,xlt ~YYf{ᇃOnN:1z u@ y`Ŋ]v E'Lfsڴi[,ˮ_yF@N@ IT#f9)'Oٸqc^7o>~g6ʈz 3gN^^^۶m}e@r(\s;W3inݺmٲEsvڙL&W_}եK͛O4T lzy$!@bw}ѣG;ut)ϙ3g;vعsgK.efFcY3f˕+W3fÏ?y󊊊Zl9up'<@=ztvK,i7|3x!CLg}&z#;u`ʕ{5\OG/#F[yYQF,;vl~fs=zސǙG@ Duw;wV~>|֭꫕z:999J#wVVVC iݺu:*\uU?crrr-ӕ~rr` zy$!@T޷yYYY*;l'$IڳgO 7OOOLH>}tR*7n婩agiii'NP~x<ǙG@ $M7ݴjժ[|ٳgO>]F ѣGf q\1bDAAUF|۷\oC 1 !S3@ Hmݺ[o5y֭[_~>vضA,_|РA<Ȅ !C4]ջw(<+v1%%%333ꫯ{ケgΜ={6ǙG@ P3Ocw^j{@2ٹ}[~۶m-]HV$0f5 JT!&'D BD95#@ d@ x_@ } @hj%!ޗ@ x_@ } @hjzwdGT...- ai:eAuz;Ӈ)zcEc5d&&_M\%ۮ6H).(JhO_M{x6mJ@}j4Շ(m Z6{yc2.Ϋ7ٻ轹k~kD2G^4Cjī_q,:Vwrd$^V:uO6L<:!bDIejV۶.=hpUVJKGkjP}u?33pIy߲ ߧ_bhwwIM֥&Xָ=xx9v-)q{ٮ%`۶+{}w9W^hJ`7O\.5dYv}a8ZsZZΝێrt(J@ ._ݧ>CnSyL8SEq2Gq/3'd4$r)`K24o<%':9n v7b6?JrCk6y?G~d2>hl?m66n,RNffںt۷M^Y᠋ٓYҘ,ˀD/@ \:ut}͛7o߾}+V?~-Rw9^e3,˲*ʷ Վ*+Qz_Q[nV+r@$9VkS̨b9\ڣ.5.FףAI/)ֻ7_z)XNgҭrQ[g8p9gP@ @FFƍt:>5kΜ9k1_׉' I]99ĨYv By޴ÒAՙdi2~q^ADDAAEgu\jE}NQD^QLv,<) Y~Or9>@ `&jul^Cni#Fn˖%%i矫6o hýk.:@ birh5k]wURRo,Z#FUoָ=<fIBv~sW`h~9xyAyAyDx^xs8|>8T/Q]W7@uWߗfS"qO[CDѱ!2MQ,X;wpl6v$IMӌƹEQ 3;u\+} A=O}$Ir\!4M ~O7pq-_>=} jGzd$$ $ʂ(I槪 #hӓ7$AǞZCߠm<'p(IѠDID(YвȢ^4 ]|Q/r(Iɠ4 >`Şmdpf`>v,jJ]nEFZ/AeY,)W8YnR7,ڪUVے<*[lڵ>eee;wi߾u׿~555yfgg7 To˳ۥwmɦݒdWv׋?oӰ;A@Ѩ<~笙~wBxN3rՒ$y_eex$Eu\044uW,D2Mt2Ȭ+@x<nvc"ĉz8E-e?OJe%3pd ը U5bE],L{ڦh8}Ax|…qUߗu(zy[Dalr.r{IJ+2v;Ode;ubogin@;$MQ|3gA(%=qdɒӧۧy?S8Y|I0(9rUW]nVqPJrπ.V Ma{zĹrB,+wS)997d1?GBne4p>EN}T8ɒD/@ \T.]eo֬YΝ;7cƌ+Wl5"z֕2i{՘l. >-%p{e|IZ& ZIg88AxCQ ^Nh qq|}s:4-Șh$B[d:䜮(IeY9xI0 m4ꓒ+igAƏZe+,t:U}g.j{pSi:yޗ@ GuU^зoѣG??h#^Ddwaj>\3UU)xZ9h9(TN8ޚݵncv8:ZwmYY,>7u[Jk$q:q<',[,FjuiV'C~8yEO M<}]=5{kMP-eiZ$} !NYWxgo(+EQcǎ֭~;a&s"Sk&[[ ,e+4r>{lji >#)rydIyAzVF9h<{<>#iXDQ$med~)'{-)JEAfMļaPe `iaٮM~Ԛ5;dzMT߾8KJN͙3l(J"s ᢱ~zeI&u M=91cŋ'A(rf,<^iOD9zg^i8NtKcӬ^/ ɂ Ȳ ˒$EsQ}9\ʜ={y?Β& YjYQxA2[iRda){4?曳Fȑv>zu{Q^;HQ@ $6l0p„ &L}wyCݻwf<9zԼ-8;;B`YZ$YE9a(AWs$Y#qt*ӛ9{.Zju9v~YS/o̘4$r\kvxmp?G7o u`mܿXAJ"} 5[Y0 2dI|<>ㅢ#ClW|(;Y$I[#d{O>yg4oz <?xBEI I,T>ZE 2xiLSun t.ABVۚe:KSEQ552IQ9MS3VdI\K $ /J$$.|sĬ@px  0~\] h5ƍ`1N-m((S6( (n?QV9jԥ@ }Vo2;~k x-֕+\aVc xɋc@ O .֖-GToJ%9@  JjJƱqFd/=R]]}R\ٹ#ˊ!._Pk{} {K mV V4rߗ@ x_@ } @hj%!ޗ@ x_@ } @hj%!ޗ@ 悵*RA M˞ܥ6#jN{lMV$K<`Km!ƍS'}%{?=@k|9B8褾[_T=bB-"Ăk/@ MR7+ z!) v;vĉlʀxͻiP*+QX~t튼<$'Q]={PT :X55 /ٸGe=Ѧ t:8g=Mz<쳸, ]l˅{o_\j4^ЮZTWcN>6)):ii)ne1UW!=>-[%ئ ibȐ? bht^/V'8 Q+zn. ł~Ю]\{kW,jjo`6t:hPS:uǫv~B둓 iF#rs1v,5KBۿi~-mKؒ4MhT= 8^ s^.ji|?4DZa B^vņ q(&q0 n -[cG=`Qv@y9X_lx4 Q+t)f(-ڵzb]MvpT\֭ط]h.>M˗}Kt邍2E a"3e\pMh uL/ؿf3:\ QĀHKC߾X<^~CywGTi뚷k>II͒<^,'bK&z Ww"dF,c*EGsz2F#&MV~ǠAy|N 8xQs{3+?'ŸDgΠeKq 8ߍp%ot(@0 *?^1 ڴy^]PbM Map qYG>Ğ= {EeN~;Ɠe*ƍCFFq &`7JP9gϱ=fJޒ !mV*5.\ݱX"Ԃhs 68hO?@n`Yt;wMlF#XL ,X;+CʨHFPR MX8|8FEvm6h w݅{a`<)m@ÁsTp^X?nsl|1V# lȲ,aH7MZTgw ƞ9^yxA44 H-ecl.$d%&ӆ5.\݉X "%32gD(B8xh7 eeWl6rgy}Fǀ>C` Aj>ՊnW A꫑ի7>1V+hkDD'Hxx5vmn+ik*HJBn N:A$ACv8~2R4ӚT,LI^*xBZRS#_F<\eeQ͐RTZj+H,Te|0w ?Iyxw{egb͚"*m]lµ$ۄ;zڰƅ; byY2,c!Ky FeUؼ!Iش,C"_)_l ȱ2>ąy ,ͣ RdB(*4p8K ѣG삁KCgXRe*t*))Y8UFFӚB q=~#E_PBR^,1 ABaGl\-B0.gXں(ڟDMW!k\^ "g \^}_Т0ꇫ|\tX* 1Z-m8v̟ݻ1d.Q0) ,\ M#pvl݊ MC "$ 4980aDTP!'4+8x0F^bdfbh /]p ؿ{Cz%6"+G޽ *(s[FLkٳ *dFnE@2Qpfti2YXo7E*rOi zlFf6,RPEz2 Q O(aDT:y//p~W{y˒$mJV!kz W /Jf2RZ{ wmyN޽hmw/hZ;(FSvPɲ-LJ2ռ}{o߹,C_29t( c*+eT"oڷGvhQmcq>ߡN9V\6w˟FU4Ԝq'㨺\-[wm݅}_@ ~ K BSC/@ Me4*;ኁܽ }_@ ˢX&@ ~k=fm9*Hߗ@ x_@ } @hjz߬,L{ĉ/ަ,M6f͒V#ݸqcnz}׮]ׯ_M~nݺ1 sz~lV;k֬h4 +W=X1,K]HWج^j@QE< EQ?xTUpʔ)6%+ $~ÄuHIСXܿh73wܙ3g>CݴiO?m4LرcF6l/;vϞ=ڵSީS,Y2p@g7Mz[lyꩧ:vw5k|4vUy U wkYs/B<+oP^u)e-KbaaÆFz~ذaF.:+v.\3jԨ@d(H \$ĊM0 fdd 2Q8Xn0SNtk׮mxB,$\ل(4D5kf͚?\ئMիWa݊p _ۻ^H+Ip:a6jݎ$p!);yd!;v?~mmmRRrs(Iu԰F5\?@bUO%Vm Mɭqm;wK.&xq'Sm4^ۗ/_zgIƴ A.FSO]^pa~~~h۶m@ϯf8aߏ[ѯ:ujĦ l[h"C;˗-V13/{$X{̙ӿ۷>2opͻO>r=#*YU---8nɒ%nV&N`w3gСþ} nQ@HxS ñr3fē;pVӽ֭xba cƌQ[sc<0AeoE8VVb:$رT kf2>裗^zYfӧOZjԩ'Nl׮݊+".@ʼnϿZ&܊+%%%Z# W$ z*bl2Wpڵkm6[{*=zh֬YAAAĤU,t8(//svᲢ}_jiS{}Di,˯jvvFiӦͬYQLtyyyӦMSPh~{c˲`l[Ō؊M48h3Rb;cn:P'u9r/'hE5%oj*AJ E4MEZUbsرQFegg/[}cǎ=rHMX,׿ͦp[=C=zjqZ,kFW_;w.qÆ ۻwozp333c;gΜsLo9;Ν;s?6l~ٳgy_|w߭͋T# Bز.ChFcM4MRauT [lgyedd 6,5'%)9x7|c]jC..*e„ {|ľ(43O+.>{߬7OV>ɲ,;&|,#7]+)o,˲t5XNj\.,'--IG}455T~8UVSL„gĉUUUF1kժU ϯ`8KKK{G# ;>-w!B%tL"((D)PYh>(D A%JhI džrevs9~wwvfwnf ڳgOkhh(j90-Z~pR侺&HZ lX111SN 6͵\?e=Sų.w3fիC͚/s9yo|oϩW.][oseװ< Ο!RSqE ;Z3 f8}F0&GzL` =G䌧~zÆ ƍ޽+RSS%wKꂇX ؽ{UonkrL,NNrƍ㋊6m4eʔٓ,yYfEFF> s5 'O?=`AApܞ"Lt` QbC{5J[lhd[2l_6o\XXX,JKv<<<6mGfD$j_C^UsM|d2N+,,:thAARh$3`  ܹsxxuR:ugYpѣmLzQO$(ʰ0=Xhh bccɂϟ8qo )))o7//O. Z  \?XL](؂nԴ8r0lF|ґ k\YYuiӦSL\|SNoGBitǏϾ^x.jEq1JKa6Lb_p_ٗ%]A0%a޽W^MJJsrr:w,<䌌#G;?ORBm֭!iii\H_>l8}tǎeAA^ b \r",,L7^|Y׳ccS\嘘xgJy|9O={v};RwKKeeexxȑ#m6t/t`뱱HM%3k֬իWO8q6l())yMdL&lK09#11q˖-]t^bEfͦO^ݞɓ''''so\xAHr6m&Lb26o|ԩ(AiӦ-[h4_ׯ嗹Ņ oߞb (f AW Lt` xzz,6lPg ˹\TT{zLq!<˗ݾ3]x>x`Q&HrO8 8\mcjf^&7XF]R tERuܙ.hr믿nlwT*1ׯ_nOMȚ\[63gvART=zDGG4Ln@@\.?~EEkbV(Fqٷnݪ j _(kI&V nܥ6X^xm k0ƍ;w&B69^mcr`/wp^y=zT'nԥI$$$rsچ7͞;TQqmp P(jRuGs&^׮]~1Oƈ0-vI 'xvl$Ҵi?ʕ+?3̙3]¼|| dW@,Z"nO20k֬qF&M&N+WV\/Ο?,%I;aܱdnʫ\y?óLw5a8K*:;Fe&ҔM1UWw+;S[' Z 'j;͉z>]bXXդu?ZíJ3ӭvќ有)PѽXx^\d۟X/ҌF|< ;0X_"#ͽ0cX ѿ#3xaL\lȔ6mڼ;bc v wѢE6lSN 7,64|z1mڴYf׬Yl2n3InjW'XIx/K h c}PXZeh577Y_d~4ϿWvFN۶V~iX7ޒ3zF +Ry'ڙ3|ڥ{ O}zhhoe˖3fϭ[& b&vY^N߅Ig7,64pZlyuׯ8<^$NjρJ`,<=%dzxh T#۵/!Gy3jTuY|}777ٳʪU4i"R֍IH#䲛9扣iO>Vw`vs{{.ܾ/}WEeO=* 3+6eUhHY沈[<ƻyQ;sԾcl탧D<|sϕѽe=e`Q4⃧ĜUI6FҜ3R;RٴiJ/4M߾}CCC7nȯcB嚠=dqVz Og7,64pZly -~&qҧǮ;"ؾ"L*-l9"b9a׮]>>>Z,yC%{b0PxrnI2 UWJӦMS*[}%ѻrmzT+2uir@IIӭj(ОC %j*0ïG S%YYD]3 mV}m)77a\=o۷r06zYt":&!!o߾<**,,ȑ#X û 6pB̯k]p㪷/FӪU,;w ܸqMG hPB4!$av=|p~͑٩S:1wW z1@b%KJJ oc 3D]Iqҡ҂24j4TXaTO>˞Ǔ}LمfbcXJKK=<<~ח_~yٲei J nYo|4`דܰ9ӲeGyܹs֭[wux9`2 Zu'vj޼yqA aÆB'w`1p`|6HA  q˝.^aD]I޳g… ͛ףG'O~Gcƌӻwo{^jӧ {LIޕ۲{ N#4:军_W{gY #5G]5x& ?{ԫ{'M7SUTUu2mPcEJ,Ny#@TōMx;wê}Fpho9CEȋ; F}b Ī]YXf Փݖ64|欬sέ\rƌ=ώj_= #\ (X@da6;{PzzzKp#w$@w Ȁ۵|`"6?% q6Έ`"$/]tԨQ3fлwﴴ%KÇK$N:vA&>|Xd$WM68}^oҌߞ@)io-־'p@v)p&ItZiauhnN(V*$a<<63tdnl+>J kJ3˰)-JawG@H[QU^R d2V[\\8qB /D%H\tJ\.ӧ8aosJäI&*ɓVO>**11Q&߆!*vL%޿M9q|I{VT*0  W@\'uUܕdɔXRPP͛73 ҷo_Rb/MVHϩ a ~v\YYPd`]!I:sǜ($! wC#x:^xCҵ6K~P^cXV2h-\rTk^8SMwԲex6CCBB~ZsmȁBd``#}?襤/m;|~h4|^x*w'` 0a_zeQݎ; ?~ƍz:u֭[yLv|ke #m{6mϽ]VIB{ylYndgY:N+fkG+o4bv ف?mJtA J1@ڠ9WJiZku <֘a.`tj$q3bbp2J+0GC <:GoZyD]om_,磅7^1YvYfnzb"rM)))YYرcAmnO~^|wyGPL8qȐ!5WC|K+&YRZY:V\ۗ ޘ7{\SEŅRӇ>8b=[=(uCNJrA8M)l_L:A;$$9y⤈K BP }) BkhKP(J]`.a;#0̙b1 ])u*Hi0FBirp{<Ӷ/BP(uڷeK<$^xf3S.;ӦatiTA>&MV}p)b}֭[+ŋFpݺu}jo߾FܳgĎKdT*UPPмy]t-Sm6x`hփvMVwҥאaȀZݳgϸZ Ξ=&ɍ /q7r9BĻ\eglBh ņ.a,YҺukBѪUŋ1|j;wflH$۶mΆ $I+4H"[MH0|ᥔx~*i^^:;w-SVV2 \ŧd%""yyyiӦ˗/羊,8nܸwyCgΜy/>|xBBB^j!O>?yYfիիGYKAzo*ʺO2ǼyzM\ekIJ !]_}C>|wjyMk&iLћzbٳgrrro.< ]9xo1/33#}{^a.\`|YINfIN6s'v-~=s 0LZpիO>`0ddd0v,Z(00> A!~Bk#d2駟6:thϞ=9khhhk#Hų./>nܸѣGȟ)쮎O?7|~}'e2ڵk3LJ_J~mN'x:Bs5_5_s<7obKG¦s琕&YV!;w>fBxwt1F, `0 ϺEP<"۵k7d1]Cn1^^^7od <]WV6_uÊnBz!]I`X͛xbsYB(^lؤK.;z}Mӷqqq}h4K,y~UVJ}k׮L7nl߾Jj۶-m{1D/kw}7<<\ѰHFjj*B͚5o߾N>}:elG޵k;w= wN/c8}R=jI&h_ٳO>J[`ZYzzNS]v=p?.F?]>qZ (**ʿMIII9BBBog ܴnݺ_/]c]rs!4~ϰR¾ E!&SܞdWx'ȇe IJ !]3gLHHرcG^^ޞ={:$י`<GFݻy?pժUb>~uֽ111܅ݳgԩS{_~e/"jdi޼ٳ?㒒/b͚5.ѢE+W8r'OرcӦMb5|Cݺu#F]{ e}ƍU} fު~K2q*9sYN@> 6m /r>bџ~}vT*or7YPվd 2 sjվ3fΝd{v7d粠 bìYsrr1"##w)Hl'`{{\qΝ;KRKd_&Sy:N20b^p̈e SFC(6Zv-d+WCAAmzطo_~la3[/…TVV92d511[RSS$$$XVRyA1n`71ܺu+?W_O:MNY7;;P#AJ2,, c=`իV{rAqԩgyf…܋L ZPP !!ATĒ=LNN0`Ν;s/\NB4hdލ$\D0LqqFe+&kZm *6,5'[o} Bo/X a9 V{999~~~\5jԨmH$(b6T*5.AED"qR̞ѣGٳfn#,kS8}V /-YɄ'е+|}!l hHgayZb&AGǎxv;6n;v$ L1rȱc?ᇳoSA`0ݻڵkEEE۷W:]t7&ʕ+SCر~\ȂmlWKWEEEZZZpp0gСÚ5k j4{h0rÇ#z{{ggg3 couBkZ821n%1116gFWVU$[ʘ }f&C* B0) J!S'0 0`#GvQTyu͛7żo'N8{3 h-ˑ#G %H/=䓵t-SFѾ}{f!CZ^^z6hѢCYYY[l;vlk{ܽ{x#Gg|D2YеM( 8KJ2 gϞIIIZVp{T*뗔|'VN4hPAA޽{>zyA.\̋1n;gx@@2%55Up;^rV8s `4]sj3$!4V…A>f'O} JJJ^{xe˖.]dggXYfӧO d3'${zz۩6lP2YеM( 5mڴe˖ưk/`/AF.Zhذa*xĉ۷s?**oرcӦMx c=|AN.]i&Q̙3jԨ{FдnsSPX,UDfZQ|bccwT*###w=\-r#<"~ g Ôru.Μ9C*JR#::AqBa4gϞ}֭Z )6p]tQT;wϟgýyׯR~3ǯa?ٵ\v&Z&Rl2L.d?~EEEmگ׿FjfrS7xum۶Xׯo۶B 1ϕRnΝcgǎbpFkzWO1ƍyÍyf˗6m|炞3BNAz^Vw)22Rr'b ޼y3<<[n2L۶m|8!Mn!fM`zzmڷoߦMAKj%K|W&iذagΜaM/_9rd֭wѮ]ѣG'c޼y%|={m,k)(TSA2א rBʵ\䞠kODDK/b{zznݺ`0L&=K, j7>vN<>]$\t9S8r {Hm2^^^s&77׋ǸqD# ۛt:tKo((ѸqM6M2 kҤI1Ç7_~_M" ֒ݻwZjpN7#{nbO?aÆqu}Ŋb$L ),.v)Ajy[ ?49ۊi0=ڗۤ2/QQùFqc D` 8x/;eRd6{BCC,XksWXX߃bkʩSy晅 = d:pСJ%y pZZʕ+8(0l?Fd;wTkrC5k=PjJMoZ'˹ZSPYبQ#OOO3OԾV+R[bL]rH$H t֍eϑV œ1rȱc?ᇳ Brkʕ+U;v3`0ݻڵkEEE۷W:wL بQ#¹\`kHt{Hk:8}tǎk4$!~~~nqqsf&ڵCp023\B6efb͚j瞃Z-[fAd^X,#G4=6l6oӺyf||>+6ke{!Y!2R#k9<;÷nj߾}HHkpۓVXa4̙EN㏋K_2Fip\ 6}8zn 5f̘{SN^zmڴƍj:44t˖-2A2~xHseeD?~_ 8k49s?m۶vj۶ Á-[Ʈ駟2א sBp[V9 .0o޼O?'N|c p;abXmfPDfϝkp\jzq}C( _FJrw@&=7C6j!!'G B5P( /BP(u ]}s[BP$1>C۾ B5N۾-[&%&"5UԿ?:tCAp[) Bp20t()^bQ( rOW ."(] .NIJ};>scQ( rˮ|<,;r#L,V+,?n3AX B?8hJ`+(W\թ۰!#?ǏuAm( Bpԩ'8 hh#FY3A BPCH}fsuﱠ)5!7:D t  B?8hLUp իu V+p4n, HP(}jEq1 0I&{즓cQ( r?xsf&C*EppuԶ-gj<dg ǢP( ~{3gV+N6 d2`;&BP( mߜ"/V+미uKt !lgddǢP( ~to3) B{Q( RڗBP(־ B5#;BPWc}) Bk}[HLDj(F޽ѪT*1ǢP( q? oodС65 PP^~~±( Bp\@*ŕ+k\]:uBFBT _B, BP7<7ob !ڴ?Dy9W} ǢPꑞ׷ J½W*TB.d6Z#@.իGy9InsDGz>>lBip|7m Uc(zj1Is36'C0wY%4bL7nd ?byq^vjDJy^%y¿޸hn}ϜAPFkZ8}Z?hm" u/;ňBOlj UtjhR ||,<].*S2K*%* W+k쨎q VFF_5slO9=p8}sr>}2mϯrem@EImK1  Tɬ9ʋ>؜a|v5Pk쇡d7srruZJШTZCeHZUx67jtGtTw-wpTJP嫞oAQNئUoRR u*J0V7?Uit.780+k/hbRa_fDACK_X&H2D+2 T(d2Yiii Dahёm݊Afm%MĽ݄uX|[ "q`];Z}מ2y&A=x(FaZ_z4Ÿ3>`+̍|kKjuE🍉/[▋c [f:v7|־&YlZժP* B&K|%ϢȜ9{-cȁT"+,|c"bjP]LA<|;c)D*],d[dӳ5gRVL^.ћfAy.M=o Lu+J ĵCwI|]ص "΂x (⡗r_##WdRaEͺuJ> Mo g oJzmcU%ͳyt|jABz?))WZ%VRp_j9 {(6Y$?qnJst=S~A"g[o2c}[TMJLZ?`J1}HYVXB74#EV[VrʕyL_U}e~jsSxmFfoJi$[l/@wo{/ .|@wPX&_@Wr!L&W KKIE6x0嶯}ˆٛRl:ha7K\1rJTx׾͛׉<AAU!dҕЪ\$BGGTZ{1fJOmʙrŜ+*e?'lESʧ$ϾzWL)qA\pBJFYB*9gd$˪>Vj ʬue_u\'Wg9]u;s+SQ{(qPJPAV VSâVTj RطWxJoEVy+ʚ,JCaƃ?}]#+ӺF/0O"0W"QV{}p!lxW ,4 $;Vt]Y]*gGN}8x7|Ap7ƎV*7Ѡ %ڗR=q23s-,*mףsNFme ]cQb\iKy2_Є*-`N놳僫 Iɲ;3V#q  fܿ|_ٌ)L*ZxXJ`Z.#VaAqYE2u\n{pو_yʮ(D"8+7.ZC"T!/QQùhT[gk%ĢPU!ܛ^o%f]T&7*JUM4UHerH$BM#;Ek>P5Պb0JKa6L6dA ~-J4sF5TVVd]OUj ¿޸hn=ϙhDppU 5v;cQ({Gh>e%yHr ɽ >V޸h x׾g (F#FZq (-+H'}H$>G :|q훓XS0ѣRLp,&R_m›i 04nU./8^RxӶmNDE#7P^P( _F+ກ]P( /BP(u }) BkHk]1/_o( R}& bdmR( R8ml TQѥ <cɏ>hddd֭;uwe˂ڴin/ Bqj_C^[N0<Z-AT~ j5P]deeM>oJJJǎ_|E&Lm۶׷jG; a! 2DPu+jPZ-Z7jUE NTQ"*C&!$ IX9sϹsÅ={&!!Ad_ѣo߾Xz5{gϞ~䉂B>ңG&^.6lXҲ/_}Uw;[8 B!$h}B!AGWBWxB s_mmYYD",2`0PED"BC 諠@&˃\.,kk07&@Q&MR)]V վTNFgC|9 99NN`h3r"U޽N*Dh 0.MӋv%d}݊!sUWȀCY , PQ`n!oyTРnB:0qd2HITV-!`p"* OD@RH$ iA"|q{֏EyPZTXXӌR(QQ6 D^B!L&47٥fCCpvgٕ BCeRQ!! )ٖqY? ^50--J!4P%G~ w]+deedf~v#+}gxyHHB`@M HI TU,zGVSƶV $u^!BC |1G_}IL2ՔqwzW )[Fi{C ^y Ĥ-w BCraI -PLʡ8wu\wT`:!8} A_a> HM>v۶m...rʊ d2E 8`ePUyJc,Xк uu mI~a9;;666VXoiiyر04޽رcٲ&M}<8;;ZԩSd2/\@766޳gϒ%KJKK>J<P\ vR!F_BC7LhnnY4TVBK PnBù/  <.m'X$$Ǝ&>X !82PS # + @Cs3vQ ! 8_y.(012LLRxg*BXW/^!1%gf $%[.BhaO Js^ܹyi Bpee֭C&$K#@LTUuB^VV֍7ښH߿A6p;7dt3_s`F}8yy׍z=`-  nܸ1Z--7o(((tZ###SRRaa׮]zo1̙3gΜY`г⛡!1#!ABB5B|s!$@3gθ}tV:NܹsŋkGGGgӦM=BX"[kr>z & BNNqst=+++UUU__󫫫'L2f:NwibĴ}vVݻwUTTۛ5YHIIɲIOO 7n\t\UUu֬YEEEww {{wب]]͡fffjjj˗/KJJ8q"Zf\ccc@@ۉ5;6] р!aEvi EEEK.ݽ{wVV×-[gϞ~Ƀ={&!!AE2pƍӧɓ'DPRRR>}vל;&vuuuΝ{=[ ի[gy[NN\ѣsё^XXcBI"""^|{ĉ7opkHww|0??ʔ)yEvvshhȄ '>x_y>~L---"KNNN\\xDKLLH$Hej Y'%%rl6㓗xbm6n `A諭 VV/%&Bnn{AZ!;uޥ 㭭,X3;JΜ9s߾}`0RRRtuuy:ujTTTNNcU$<88j3gfGvzUUUSXqTQQ1Fg?AAAÇrjjjZZ+eܻw֬YSXXt?c*++Ez4p﫠@˃(*v&X2Āu݂w)===="GLɦ򣆆ȸuum鞞ׯ_OKKsttdOVٳg---bbbzo7N wɓ^_[[m6֙nBCC*++nZ\\,!!Ǐw,rʊ d2EEE?}́L8q޾m=4K] ?!"X8xBh( F DDD"Wcǎ(,,LKK~[bݻw;>cmmmllz ddd<<<]VNcccb|ر˾ݪٳd;vMf̘abb_ZYY988u,/&&fjj:j(}}s~JPEڰn5k23ss怔ܺ 0u*IBQ\vR||xLL L>e̘1N>M,8p`ɒ%޻wJUUz]bepB/~@FFFVV:dll윑Ajff|:V fff U:ӽǍ744;rQsccc@@_`EH@:}SrWϟ՝;w KHHHLL$r#""^|{ĉ7ožASW`ePUy1Q ч9uBG~~~@Ӈ va+W̟? ֮]K-_L&={cSL lhhtss{u-gggp``.FsttܷoLNN={vBB/H$ɓ$IMM-..NCCNZZ]6k, ػwoQQQ]]F󳵵c@&w)""rȑ%K3{___b:^XXhjj$--7* T* }ձNPVV2"!3g.^d޽xOzp}́L8q޾2,,:"DD+PZ 0~|WK!4\mmmmmmsss/^*((7emVAԩS]v*:s̔p]]] ss`KKK++tYSSS[[[GG....44իWߏZx1b 55}voo;v}űN`ʔ>߽{/_!8G_uu hiQ"wJJCee n3uZ MOO諧cQQΞ=u3gΤӊyzz^~=--8ckhh ZnϞ=kii ''cggFJgffVWW'))IP***N>^^^iii[n-..qqq]:yyy'''ܹ+WP(L&B8D_2uʶ%$@XWV;%%wB1U1ID:Ԟ󚚚aÆ}g+w`t܁H8D_ uJۮS(mvbQ{{o]ȀX^bE0D7Lhn&{Y=!:866.TT@HHJ};fBFFW+D~E_d.ǬJ{]ه. eethnCJ!zW+}ޯݞ~H>S$~t2BFv[%W LLLY5AHOK!mYܲ{xPD/:>̹R]\qIWWW1clذe˖݂"+nk-1nTF{9zj :%t;e0vpp׷_[:^zΏq~ 04}} ưd0 5,SWqNK!¤lHA*+.p~Q.jjٺu~QF:th7nTdЏ.W’KVX1H9t("kv,/ܹsgϞ=Ư_޼y4pp>-+(h4γxY)P/2EPhMO KjKB^z4+D#H35=dc̼xbHHĉ8~q:o޼y) X1aa 9i2T%qtcH1bҼbw2:*//?qDppx"788`ԩ_3f666ĚUqqq6lܹs?| ݀8yy׽^[Q!BH,-+i^o}{ꈡ˗K.INov9Xڬ2}*&&֭suu]hш#~a:JGTDCYBf]EY yt%v,p%K333{֭[,X@&$%%) F "GCCc׮]vvvӦM 5jTpp;w]LW("PЈa14L-:9mN>s\WW׿KNNe]p݀2BPDn~r^zdd6CTnnǂ7oްaCQQg}rJ1cݻwnjp­[9c FZv󫫫=<</^,&&{u=s@q`ePU~q˚8:\p:!$0S+z:|B ՕX^jժUzVif!B"WWL 9~8]NN… 3f b>6c``Z;w.ipwwo7ã>|WA݁J!!77PTUWȀ YZZtBC/C/E}d #^&aa`0f&,"fY 0`9B!4Н?sE8D_ uJۮS(mvbѣa ^bE.]_7a`o'{4=GL&47ٽUP%W9:wvqvK>]UmC}[** $$%YX>vs!222>~@4pxYY:yeгR!`sA IkJY<B!4PvL<>|2y=+B 0 -+(h4Yibc2}B!?}B!AB F_BH0"B!4!aE! /B!$hi1 Bh1<B!4!u#9pRM]2ɜiieLtC#CZ{W ˖VvFfDGkC<ÌGxLu7+Yv.n --(hLK{9{B31fc.Zm>tbF:urcKK)^H?~퉖؅9, 돦ƧԆ7nG]3ϒ=u%$$v%DgIO&>sѲ_YY˦_|hуD[X/[uKK t ҍ454F4=YLLLt( "7Mi^ v=nt!Q'%IE3>ee5,,uV **h˖ U+߼}[QAӕT43BIzMy6u7zId2 7}|Muo)Bţycrne566+*suד#(**pKABXdIIO1̨ў=ϒM(ϣ7h܅l{\xUVUu%kāg>۬5XYKaaFyi{G c=Bq݉kaaN"Fl|qkllbD,ԳJPţVAXCw[6]>ol"a$..EMMM_véGG0:E^WMA";N윥_|UWWϭQQjNJ 1q1GeeM | uQ'v,ݏ=zJe))+{0eǫWeo<|DDD<&M+/rrqLw8W:DהW^2s\IIq,,Tbꚪjqgnˎ]{_JwASYԲ֯njjnQWS[[UU]RRz+ǎXt1 ,v N>v<,m>M>vDaaQYY'׽p}+--he3"]` H\߸h.n;w8kO?ٻo_gky k݋|уQ, y7S<ةylmm$p:,_h/tb!mXv՚5 XyFp>~,GD! /B!$h}B!ASWx x4"4cýڋ~U |j "}_BH0"B!^T*J*((?,CCCegg =z]ZZZQ// L{{{1cƼzH РP(vvviiiW*ZPPxY___bc^~MSRRb``p֭.nd+**655ԵA@G#ذaujj*āEGEEEjjjx$ [ZZ&''WZ]]rn+~𡤤DWWwY[lKKKݏN}O<81b|8*++s+>~#Gvk7otqq544c2O>=tPRRRMMͷ~h"&NcccԆ س:`mm)""2aVb}葢ň#444ܹ| #q֬Yuuu+W?>D0G8Ng Lk׼8 *SLSnnn111L&ݻ&Mb̼}_rrrǏ733#I$˗?uԢE{EQQ &,]###kcǎ~a޽ZZZ=0uuub9<<%9sIRRرc]S 4ŋӦMkZZZ֭۱cGuuuAAAwY0GN'kkk@BBc"\x;>]QQtkrrr?SUUUTTd 255)))C oTTԸqXUUUWꫯ޼y3l0"Ç[|y϶~ِD"H$aaa֓ĩHH]]) Kuְ0iӦK.ݾ}222NJڵAG/@}}B؛]FFFO&3229&׻|}oK ˖-ill͛SLiWJEEeh^mfכGpMMMeeeqqs߿rvY,K.={{JKK>|qƥK_ǏSRRu77K.UWW5JUUOUU?vX :d̜9j ,Xb>ywvttTUUUUUurrRTTyf_um8iҤgϦh~aʔ)mA#7olll?3n.]3gN^^^nnnnnnwQDF]]۷o\|xǏĉo߾ч zӓX022:|0|ooo592k֬~IFFfʕ***'jkkw֯9s888=?7oއ&Lz`:N~̙3D͛mmm=_ |}}YH$υ ._'](v4N0aڵ555Ǐ8.!!qe˖L4i֭?C===Vْv4999ww}F n)T*ؘNG ֮Z!3#}x^|wu3 ;+0껜O?eW8~g$0BEYaOCML?K~NB!AB F_BH0"BƯ} 8C~Aw`.]_7aHq+a_:tV`^E ?݁Z}wknL{wWB!AH羱}|gumHtV`^E ?݁Zky.&Z?9b{@{lEj/X_P?.к67B F_BH0"Bkї`9rZIIiذa+W,**be=ZQQt׮]ļ`^^^ 0===aaaKKd"ɉkNVƍ#\\\"""TÇYEܹճyyyedd>WCG'ጌ ))vmhU ہzW7Իjkkuuuۥ3Ç;88[YY>2LggѣG777[CAEߍ7;vl۶m/_믿jjj&MD`ǎϟ JOO?vXxxC… 999999rW?rHuui MoH`~˗/ٳ'111(((22288˚P;}CBB'Olaaq MM̓:t󎎎JJJ{yHJJʒdym޼bccǏ?i$qq͛7666[[[ꪨ̙e˖/J*))}ŕ e}]ǂvÇn5h=|MMMt*{p@A~S'N*((?g! Qtt.+L&/\СC#F055500`eo}0y{{iii yyybbb/_ߴ333GA9bĈz11&yu333yyvY6l}6b8nӼ_z­_fW{FG'nᬬ#Gܼy3<<Հ_%?7!x+ёXf0N"H~~~;wP(na;ѷTMM]FQQQiirj?~<LfDDĊ+8 **ZRRbhhi& ;wN>=11NKJJލ$ɓ$ {]~{z5Oo]OP(˖-۷oL} l ,?r%%%nIII&&&' uCD_EEv%%%NZhxXZZ_PPpE[[[?~|RRɽ^JJNhn޼IW ++/3fLu&O|ݻwFޯO\뉽Ы^"[===KKK{Ԟ.(Duɵ;ϟ??{lqq񈈈,KKK~:Fߎ4yq?m([)`Ũ"]X^- %3u͊8S6 7.sәY`˰TP ȋkmHmiy9>kO1L'NHMMMLLow 777K/!DT*JGy`XBV7nw[f/_pO?=ÇWTTtvvSrH.%(^NΛ:\b bYnNR,MGڅ|ZDJeHPUUu'O^parr҃N\.^ȨsNGGGNNNooonnnhhH$ڶm[}}Pcc{'Ynjjjoo7|}>FhF@vvk״Zx<^hhhRRҭ[z#Gl|jcccwUT bʕVcمeeeMrHރ,//Wmmm t:-..εSgW8eHY44>>^_t;rrr~瑑RYRR/>|>bX%K[mFps;RΝ;rBEjjj4>ìXe)0rh#}W$@ `X*܂3g~%KƒWkf͚'xB(ɳoFEEY~i`^NiЫP7L&fe˖h46Sv{S6)KJIIIbw^PXXXv|PG6mh6mقp;z%ݹ az6aP- 0N2Vg%gzޯFw _Ȭ^N/7|p?KM1ܦ&UO/P} @5|F==,d"\ 'aSo_0ͥs]}Q,egV]h^ st4; us]ywN̥͞6Gw *ٹI@o ۍ!4}_P jTsljˁ+w*7XPT`͏-َ=9sP jTC/aXAR 鑎D{Z.U o /p8G0Bq鉉 GӇ==" ^/_޸qC>㈈+WB222F#ǻ~ÇG&&&, [n2,***22>9TTTpbcc}Ym/d2555eZ[[`0 E"с&&&bc!X,!\zU,:u꣏>H$1꒒zRinnnqqqkk9htBxOOϜoڵo`DR;66vΝLv斖}uww/['//O*֭[ !Ν;~8IKK?^p.]JOQ*W޾}{xx8!䫯D6e2?`0;v:!C*?lOK 0,^X,{vU]]Ϛ ߿?""ݻr<''BۗYAAAO+TVVM~ҙ4L=$%%m޼yzDtUVmذV_}T.[ZZl3Owk#l;/uL&1d0f k֬1hѢkך#4̾r|ర0R[x1!޽{d2m۶ĉ4-!!aǎZBy !cccNILLsom+W_hng)CE"888++255bLmF_V!\xqxxcժU744TܹsbL{BF#!drrn߾- EJJk}\HJX,G>ѿhZ#_IKKT(:O?ݳgF{嗿 J544t!KYo߶ڋvt:]AAAiiiqq;55P7n4_~|pM???+W>ѣBcccjjj*++O:E׭[g#G #P}܋妧gy&33w8? Ov~…GBvޝeD"zՎ#ɞzꩄ쩩3g8 nwed2i4P(tϟ]3VUU}楗^ e2Y|CCZ=u_n\_O-cMM U } @5T_P jn˥&`Z pշIq,顃B ? endstream endobj 899 0 obj << /D [897 0 R /XYZ 80.963 747.976 null] >> endobj 206 0 obj << /D [897 0 R /XYZ 81.963 640.713 null] >> endobj 900 0 obj << /D [897 0 R /XYZ 81.963 601.095 null] >> endobj 901 0 obj << /D [897 0 R /XYZ 81.963 364.879 null] >> endobj 902 0 obj << /D [897 0 R /XYZ 81.963 261.479 null] >> endobj 903 0 obj << /D [897 0 R /XYZ 81.963 172.525 null] >> endobj 896 0 obj << /Font << /F25 474 0 R /F16 475 0 R /F39 618 0 R /F44 651 0 R /F43 652 0 R >> /XObject << /Im47 895 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj 908 0 obj << /Length 1667 /Filter /FlateDecode >> stream xڕWY6~_GO#dK{P&P!,X_"I"ͺ΋=H5:/W:T7y)Qr2mߠآσx~H(C!| `PeEۡ9T="-wߡyo5\Zh W5{=X\7^Y {2,mڞ5t.MEwS-%2E%/ <lDǢ}x}/R鲘N[:i{JӢ:+gv7i0whp:Y2ew^+v1f8D,-4\Oŀ3iOca0kٺq SE"';,/(iGᮕypicXE CE(E$)R$@m7 s|$ vӚ!a(A~Cq1|J7Kgiwstkvp.ڇ 9,"[-'oxFAs ! 47ʌHm j:64q|z b-)H86:S`BJƅR ɄT>QEvI>+ԸeSa[w|2CAcš=BnzR[X ~C3bm9X~8d -2ՏAMY 1ȣeҠUqPj`k"GqͶJ;,9xθ؀ Z$5fi;mڪczG=m;Np숷'~z>g8HXɩavq3nS`)k!u@w/xXsa7[6W |P9f>c:gLC+vN.N@iiH5<%6) d險պaQvNBkܺz ,!'3B֎c0VMM/g Zx;yA2"5uiXPU\mѪ'*v$Ɍxnxy~{~z`kc򽩎oh# z\> endobj 905 0 obj << /Type /XObject /Subtype /Image /Width 768 /Height 361 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Length 58392 /Filter/FlateDecode /DecodeParms<> >> stream xw|?{5wHHHtPHo)AE@P* ~ T%4$!]ݻk\ yug}f]y @ αM P<Ϸn3>@ 5mˏmZ@4%'@ B|vWYADaTOV@ FD;9(;UUi5bHT7$X@ ZKmnH]}tf#]ʬ 3=sPk u(wTZi,n#;s)em_IE2'.iC2P; upb(B~[[7FVmo,9-F+u)S7$y~oȧ?iE cu(w(9;BF(H'Nn.^~Y(Jdwm)J$| 8|!;}8 Б~P__C];2;jwHbf8~e~!&n-nÿACCT{ɺ,:3s蛢J$of4W@K{zpH,mblWѝy:#҂ ;W߿aTEWQv]#Z5>#dG̮׬mEԆ : BE<'M! bdxث_u3Vv(!܄:`ͼU7LXR"TƁp2bw֦⬯#0)uW*sk ƟNnʢު[E.9Wܺšڴ*\tQEBp9yn_9+;cR<ˉۨ.kFtWs|_>d)HڼS.=̠{],rh7{n,@+em1B6LסK`.ZE9z.x%xpX0ReRaIȤHВ \s BLRB`>TQ%( L_|wmId//>9nFrk [,˳ ϵc"m+K tҷnYO ߺU$\eɅ]\Ē67eԫ9bёg`N:\jMZn}vFY"svkudW̵@GCG,`di7#[XOo{N*ȖQ- r I[DKtreO iE1*ӧ7ˋpiݵOz]:2d|?s蝋S*,Jg)i4S" ]extxEIQMmF-5 IUs"#Ӻy2! _&uX ^*:r;Tb+k#**L5񍦚,K;$E`o8:kmxC&,ZD*xwfg?K/MOqw=[_9k@S/"WKy><ǩ]u 128Z[~rs397o>}Av}}[nY6+Fo_Jewmkʶ[qzsxBFJJ۸bI b2gƴݔEyF0W,g-euY_fv^qqv#]:X0NHbJe??u1~a/°2"Zuqj)e.,iY_2RλYփl)++x[[iޥuw$29BZ @Qء(bE(K *rUE T{vdN}@$X3)[Z݅G~~˩BV Hg (bXbeִf\iB]±H/b!:֎odJ VbNFF:D[QB~4RmY.+r@*BZ²t?&cԋ}Gai7( W:0MrҖk Rpi+e|1/. ^+ɣtŁܤkrzJ5ʖ]N6x #ܕrDFW t.3[)7C銣i&I HV1{{~ZnTT$JUP7ؕ9QWj ͼunpJU%SYxxVB`#Ϝy?P{)QEN9 B6%[FkL3l"@)͋>YAJx@N$$"lRR}'%h(b(|qaBAEQXKE|bT\7"V,E (F9(G"\Jծ 4Xx8]V\nU͵T7ܱ"{Os2t*ˊx۩k}G{<\}5z6TŽZ^vA娜9NLʸvFvH̛g"Z]X*T[ŠU^$<Ԇ ќ:zN2  &>*J(xOt}>)+G4,*+̮Ne$MɺX)A@LU-\<c;1\y+.EI"ZK oݸZʨ <%H+P*wz/N}v έZ R^Ǩv/H8Jt6U)wvojh$ئF^7UJ)wЯe 3jV)-Oy4HG,˼}Bq$.bУ\ /K8Rs)+_{Cc8[r9qܯGFY*+N:q9Gg?S;Jѽ"DQ2Y5lT\k긐3 b:ot0}@W6>qI"QʀWQ~wF'bxyiKu7D ke:a[ЋyoTNlcAWBKr<^T7䜂w>{s#f_?~M;+4R@iwwlY#uܸK܃k"*AzdNny42VRAȏsGP"iD^Wk%ɌB jg%qe*7&Sek6ْsG`>cfK(d X(Kq܂,)4񳋇7gl]g@xΣ^}DQ4\R`+b/;%ȯ^$M{țDPDyIVIa 1VKOz 2?~g$חmksܧFI\>?| Xq_Eɍ[w5E^?f)ꋾv)(IJ7"u/ԶG`_^B]Em^d"!PH]&E)ee4ʽD&МIb"2VR:(NQ_]h+@QʳnF*M%Tsc4LSR5C#z oNlND 7ق0'XLChA2nBXPrW!ڊB+Vh _˨/Pg_jNM?Z>QprpbV(M?̃*8h̨pĂ YBY?Ƹ,֤-3P,P(K4k< 81~v3jJ*%D8J-3N[S0He/xB4+7[#M*ueXߴ@̟ˁ"ahϦ %XpKP-D"T{M5%p&#0@V_@6&'D Ry2YЁ*ҤmD"k2 菉[ݏj\wF2gw} }cK//PM4$K&u!u0!:\W[4N#K4 -#JX-]7$ؚ@pP9;`~@ l6LⓠE잓u70$\*f˜=(JT7$X@ ZKmCW(Hs(89ysPk u:Y@ B6L֡ PI]G%@Ux4Ѕ%PIow{@ 8oş@d.@ g@x @ g@xTdɒM6մVSڵk_8\+}-..Χ2aaaÇ|c 8q5i6IcCAMP;ow+ JֶZJV(UpZԪ<#PxZZYYYBB€n߾uqjam*=-vk֪*S%0N)YISV[[{:uyZ@ijs_LLLVw5sLZ.]J9%f%P}RBm_-CbU*VbJFyg{|y)fy/]S'??҃Kw\} ^Xbzը=˗/6lЧOaU_~7npL4M/^M6~~~7~wxիWZ*22/^*\|Yڵk_)SS)77w͛7󋈈3wUk׮˖-X\ݻ_~!!!/ʕ+ykӦ._ks-4F}OQ_(w„ QQQn޼ +9K8n͚5ZѣŋKh-K{CCxV:pop60~X`RI"mgfVhV2 W+$2wybA"PZ֏T1 A?>:Qa2bSjf͚bThΟ??ũT7 `̘1nnn<Ͽm۶MNN駟ĀAݻ/]2g22-ő7nؾ}KU8nW^͚5{#GN8qF]w'''%6u>SnnnnZpuVV^=|2ܹsG6.N_3ld25]Ü}W ˯^:iҤ*K4'C32SmO)cuTҾ۱vk aeU*e"ˮ.= APCQ % 6zϟZp!+W;m۶BBB>SSN ~FFq޽{NΞ={c$J,N2gϞ111w +nVܻw/M.\(L4믿NOOOHH`FVurr/zePLϘ1\#U}OQ_KII Տ0aºuPU0iiqdѢEr\.ϙ3gذa0)ɡV"5=e73g,ս{RBXhF cya{V pzO`D@AcV:Q t넖wl(((Xj~j+ g4iz]A~~~7o^| ~~ @֭iӦdeݭJbqXXCQTxxxzzzNNNNN\3ƍ/B[njc)kr<::/k4!Qe&EYiTvH6Nڭ{nAc5GNnzi PnQ|FF< w ReD}vQ%-- @Ϟ=[jEQ_bRV-`6lhsGkvw,Λ7o%%%-O^xV2S@cu}MEWInǧ8 ;#<% f%\v6mӧOtt3gzϧ 皓'O^&EQ={>>s̙;w={?,ӧo߾E?߶mێ;4M,4H$2}cǎݴiƍmۦh>@^zQ=Yj3պ;o(k/iܸK/0wdRuVcƌ{=aH_bTObLmy'@Q͛,Ysd&M=zĉOZ5 1*`j"@xZp @ @x @ g @p~lecjTzFe"C*8v72%<8nM;@>x۩,Q0[%Fx%<m@@ 3q!q'`3ձ[~6e@= V1?ۑ8@f.5X̗,~!uOF!x?v@"u?kl>+ҟ?\B9EܴMĞ yԾrVPK˫> ~>q:Wc܊4+egpz׾[/x s & vKa"#1HvuM!؎BVafN\; ,?kc&Z(=*}U40X ob6uR~PܚC 7Y Mp,YG(/t506r_){<뵏 m~~ɷlR5k5Xn-ڭRp-˷gj(C5=G>Ti9>Uiaa` ?S6wX1g >iEgHk,>?pb^'j{75%~12N ){r YS`giu`pxӖa,c"%Qms|z\vOҩN]U8 M3ܗKg9es-A|ʷLC2(}<ƶĩ@b aPBpwnN!!Z#U|&/μ/h:OARӠǡ_*bN!≑-if&bWaџF%NrA^MǫJkԇJ;O5n D%/|2WttߵȘaoM tF$_2R8{Y'4ò ð 0]L~m!JJ~LWcrao2z -ȯ!Ƕx|¿9:w9K+_6wyh>aD*4\yXZ;Gp`8xJGH'P4N~ ,Pi8Rvk,Cq.RvZ+c!QSiW`iLj~70䑙*pBZyB!IEbP"&o0͸(eH_3*'V4<̦ L䙎T߼y7TL>VPPlgUKJVV,2f" a0W_1z$=nN,eDmu%n{N u_1'%zuϣWRR."O vÀHSSd+VwZtM#zJEZ IJo0<^@W4XT,TN͠ %e(Q*|X/5s}`L[Th _w+w,&}Ԥ%֧bX.m37)yt.ua- 0ӳ?`+b~<~. [̲GIGPZJΣ<%~wB@%2nq9#bX㪵plAg."xDR~}"nP*O.+[!Ys42&eYa?1'A0v~ DDk68@2x=WBIᅵ'p<؛yv2)Z8aRkTMg`a(nG09~ vD)GuK';GX:foگ6ቐ+uTʿ%WiʜU0ͥZ,jPp[I_36-b6F=Ze ;xshӝ;|\uGʼLkUsĻ1D_]GwL,x?:w~TM01ቋq><;m06%}dOCL:#e}V*G!=aE~cZv萔oD( &>_$ qͰ/aĮ򾧓/\U" yǝPHY()%bRܻ^ 쟸D&k1AluCo6 kAG-[@< |XPjbe*u<_(sS?RMhҝ[M&qη [pݪoche?6 k?:J6xiFxXPTs݄Xo<=OZB*S=`uNR,, bjh(T(v9vHIiibя$}M5v[N)[g`zw , ~ptK^MqWiai9[ڏIحe0?n#AeYUgfܔ 4 63O bME)t ,ߜCĿ &蠕5~z]I& Yޅ|MiOڑYP vK|K-^I}'oc, gؾBu2]u;شd5l}8 o Џmf-60/oLtaqNo2>XɚD B]d1?|GIR4 @ 8ǹ6"k= @ gD ݐL < @ VYM3z`7GJU}-5Ұ!/O+[ᩆ@x {`.Ǐw @ V9@AAAT!!! .\о}{kD駔H$&u L|)8 &W_ҥe%<[,B%]JHH(,,[f̙3/^oDDĂ c}JX ׁ7BUԒ(*ªU8wnsPܟ"Ok www///__aÆ=/_NJJ9sf&M͛'駟ryLٻwoV9jԨ/Rg{bccOتVX%} kzL&ܴMĞ y:rVPZ(^Ym v`K.]~=<<ŋJ]t޸qcԩ[l }xG)))F:pk׮Ç1coQz lY2J'͓k b^|uU@ ...4 `w}ԩS.]rn@{h@xj},jk} >PBľC^<B; nvöx|¿9:H-'!̣ґZ(k]w0 <2ߨС;PBwUk{} JuH.Sh B*B`q&y}HTW\ ed}vۦhzHiRr1,4дpKv +,040] hV`yWذ*VtttPPB ~ ,)w(}6%s=<73yo/ ٷb:T{?+d+iaZsah0W1zR1|i!jTjmٲe˛7o v\3f̘1֤8qZ by)-u0]B{jHhh̅n #H,r[(x?XJF''ִÇRktH-/QjĻ%t?G̦T" Q_@#oؗ-(P8u 긞wb`xƗ? wY4Ŵ`4ϗ#\ԏGt'Vɭ?lܹHZVDVxòBe?T@?zjnO"BaPju˟x3M+v9(ATœw;$>ʢOb}ct- 7|h9-*?̰BJΣ n Ş|)N?@!?u/N4t_m;W_Q1 K,KB଍G{zXrXcӣfY8udž3 e}m~U j[pj3Q+] 7PkooĤm90 ˰4˜ʗI*vg,9@!]@0͜%U-6Һ}K$K=蓷߸nG8G`_1zu_1 K5cu F B]㷿Q238k~Mx5%ElF  X'"h;hڬi\6oWAXc1sׯǏ_VyM4d={lܸ^zNNNBhʶl*Sfff<ݻᇍ7y~Ȑ!>_ŋy)*--]d >pwLyիW,nݺՄUҮ]_ƍ;wO<==իw!_ ɖ.]:j(|޽C yڵk;s o8.YkjRqFN&Ls߿Yfr|ɂ;5Gt]oVf%߾fs_2Y_._Lf͚%d? Ҥa<|@Xܶmۤ$7orX,NIIȘ:u-[BCC~mAŋJJ3fr*@8ˌy>##c͛7ꫯ?쳰0)M&7YYY˖- %ҥK3f̘;w. ڵ+..ƍ& nݺΝ;sŝ;wo߾~~~SN=zhRR/\U#RKI&/_޽{~va~ eeeݺu[br߾}qqqyyy1bV 1\XȫkCWWWk6nOd>"[x<ɘ4A˸-#1bČ3>|sNa޳gO޽Waa᯿:f̘6mXfMvvNȞ={Fѭ[7/PTD"Q||vƮ]@iNNNoJ%֭[׽{3g6o|R BbccǏ?jԨ۷oK$O:gg_$믿0dȐ3gꢢׯwժU&o߾ݺu4h}ʔ);vpB)ߒ%KL*_СCzԯ__P&SJ-kgg֭[xՓquu}LvHHHRRRhhRFzƎ `|իWo\޺cqf!k+RwW`(8ù5Z&߉E l;v\x^x@VVÛ4iTPPՠA!W_z%_...ûj+t֭]vL"̥LMMp႟߀ƍv}رCrL܆  y-h;|SPU?֨KԒf}15e֭W*>6EQ˖-k޼yϞ=O:ˮ3KXdsm!tGw)B.y<9@X{2sΑ#G ck&\lKMM=zhÆ i˗7nܨ! J\ @E"0C:tŋ"hŊYɔ˖-СcP&mС|{Ç3g4!ݻw\q[ }bkKHHHx:wXÍ7^zŋgϞ I۰ ~YЧkC;w9r3hРɓ4M/Ydʔ)waQ\] MTcc5b6 El+vY0-b0k(A vHDP) HY`?ו]`Y@3{9;ÞX3f +,,ܴioXL6/))quuԩSV޽\VNNNK.p¤IW\痚YWN&tvɒ%AAAfffݻwo~6[[=..nر28S~Ν.\s_A,++STTel?>ydqq֭[+"\uSgM.p˱\;svHCz ֔z51z˖-[ti~Ξ=mߎheX =Ld|-hn9N;Du&M$%%4] `С۷o`~XXXhjj۫fdd9rD8q.#LLLN8QRR8qcǎصkWjjEzs9'L͛'N3~k8={TRRa9LLL1 ~ƍ۴iĉEhO5џEy^ƌӕZ8::[[[;88ܼyɓUTT_~9zlXZZ*ɬ⽢ X.S.j;~j/ 2ҥK{6 @XXX޽eeeǍUuuuϟ_VV6a„*ccSNN<ܸqc^2τrҥj__;vمٳbmݺ(CCC 9J>ls|HJJ&%%YXXlٲEYYYWWƍLN///MMM))'$$0EEE&M߿TTTʅ`ٗ/_zxxdb艞<7_+&1W;va8(a$ig̘15k[333/o1bMӱjjjl6ӓiIII.tw-]ƆO***X"11;w03Yfif8޽{޽\.|#@_}UNn޼Y6qۿUU9M)))]tIHH(//_n… if<"777CCJ&BChY&|ɓ'Qc[&'p%pLhkͪsֿeI?nڪ]#0^Z|t;v"1Qmg.O$SB[B{D}SOlb;]4S\+ag @ "!TKDQQQD4I@ uXW !wݻwIJJjkk{xxTUU5숞pVX"--mnnF5Q+XmvTh'Q:OvGVQUņ ٳ`0jhbCA++l~oXXXY55&?Un*TYX0^u ,|hT@؈:/}h6/bJ: a:thƍvnnnAAAG:uԹs缼UmuvDO"BzɦhR X S'ߏ`̞ KKܽp!8a 4u+""[]e :`lKXp!.0hV4c":0:@OO :PUU=to&ͨf"(pȝ03{+W3FCC}6_D;7QgGā9rdɒ%jjj>&!N j D'Q>: ~}(˙={6#z~XfMc RPPxbEEE%%-[08v X,:II )8Afc1?X <XpHnps+?IBЁim۶ݺudԨQ̠?uֿ+))ŋBCCM6k,0IIɔ;884B[| ) aAg %DGG'&&DDDٓw:449)))cCCCfu֙x{{iii?М'ZXXZ*((HGG'++k߾}mvI+>kK/A\iuRQQQeee/_}ʕ+wl2&]0'rfϞ}Z͎&/_9sfc ť&%%Ǥ㬛bZ_.T/fv ߴik֌j&!ґNeر~~~uM=iVKKyϟ?~6 >/Pleߥ <էH&[P<ƏPTT[ ",33o߾]tA]&qX:wƂ1Wb^&E^@Qze1uq7Xi3:/@M ^ѦLBF/~55/^0BNXw.X[3JG;}X]taWQQy-Ç/]TpպhΎ艩l6lʔ)NNN{MNN55] aObCu"<<<##cƌ<Q bggfggfvBŔ)GG֤ŚBB>8IB15.ԗiS0 TȌ[ 5z#!<'@ E)0~E1BN^z ]L#ɝ>,ʨQ☑|;w2."Dgnn9l6oρ1ޥ$>ԩS^*8 :wgϞuĬO?WGplm1gBCO{5f ?OP#<:#9^m$z/ -^u Tb 'jx *,CtQgcQ} 4B|<Μ>dd0i8n M]$TdƌGLCP˝^jMXXXnnnDDիW\)!!Dmmm.Y$((LF+>k"jC\ԩS\sQ rŅ lYYYeee!J,_ ܉; -5kP"fDEddd=v@\؉;CkqE;-òo -vEWdLBRS~;F `8Pf"B&lz|231>[Pwqi$Tdћ6m1bD߾}N*zLCP˝0ݻw-Ԝ?yݙS"ڹ:;'N0͛7'N3fo&t55Zx.P[[{ڴiA^^^KKаG ;El,,)W WTEEEJJJ^^^m7 0v+ڎOF<7_+fL:`$)a#Q0PqH FMzxnnW5Ǩ/v쀝lA٬r=P '-6go޼9l0"$3{d~ 8z|x]1%))޽{ZZZ3g0g(k+h'Nq(Ā5f9߲ ]Wot@HBqYK /n.`S8&̏1)iVgϞ >[lC1 >|֭&Lh4۷oMJwzg ޷{颡Z ; &>Hb]tvH‹^ё$ы<]feec/;R"9@t^X,/Q*\'%(8 YX0 ,|@lEPg4DDFFX,f)yڰaCKw@ |23gk}̜9lѢEݑҹs綿}S`n8p mg~i{{#nA+0a= |Wв(7՗-[&;@ ZQ F?%))iѢE򋢢cǬxyyٳ'//'N055{7o_iӦKFuu͛ע"SSS__ÇWWW 4СCfffׯ_4i… oݺ߳l___7YM43Hh4i Ptt*^~=m۶[n5ˋjoo7mڴYfUUU*ʚ3g7wZS6,,LRR2%%EAAaw_[|$t->! )1 aH@FSlզP(Ǐ9rYhh'.\`ر7DcOxn&<ٗT0RSS7o_ndd_g=eGxtGla;sBzW~@ օ^Ѡ롢#tԤ"##cbbBBB||||P_|||"{}qBB$>믿 377󋋋km:%է6E  T\\\"Pԫ`bccs;wp8ݻwX_Ռ0k\r *Q% ;w`4`M J>RLkQ!mxzznذ(M ԟhggWYY/<~x^^^***̜ܹs7nܸrJ&'OY_~qqqa2 W^TZZ*))}$:$jm'g,x*%DIkN1O+!\1cߞw. MЮzԱҺrh ^`gHGUgf1U9/E:ø,峾jbPEQKq(%Mq(.8VJăLm4Ǧ8 Vۭ-B$5T}Yiױty|yY;ZgQT1 h\1gçRS,|ϔaژSo1k0ȌU(/dDwYjY䊻ǝĩP\.Eq 8\P5%G8"FOK@ J0&2Y סXcn,/'}**cYo*=-PDpu6~ )9^U4<I`a!B2(Hc!٣{諎k*ǏPWڰ#{*7! jtJD0mHŠ &]"'}vbu,͒)H{V[lZ.<>7SN\ Dj!x PE04 ?)2:I r'1Ɯ`%Pr2~/-$X/swU(k[73vic3`h:Ltqߤe>e 3  ,c1Z5BEm%%%,+//.@Utn\nο/w;4Al`g+̂_|!Nو(\Wzh`yvƦX{z %nD nL]ƺ,+q04,dH̃ 8 ԅ`%Pb񎃭$ J5X_rBFFa&LҡK^w.xp).aV=\ `?0-[UCQéY DQ3O&_}}֭[}ٳG9x`YCC۷R9[]N.aۏ_K8D##x$|s;a8:Fi B[t.ͬV~~—~\$ o?ʬ)H[^ *r] nuMbnY͞<[46 xqP^MQ}?/ЫFZ):=0#q>3*R}$ҍf(e>rƍzz򥇇ԩSzzz'O 4 gϞw^?fv&M$##ӿ(5,^XQQQIIi˖-LA[[uպ S" $$d„ vڥ\PPеkW$֜.kq5WA^GduLO1r >Qx)'1sϐ9eqKפ}<̺jK aQ?\x>P!3;-Y/py7\.snE jbFDVؕz<DuN>ݯ_?]tQQQa555?ZBwڵSNBsܹExxxFFƌ3$%?rz&yyyʵg+lݻedd,G82c-~Ó|c]]];uTO~#%%5u~AFF;'Oݳgz>}5\x1<<… 4M{ Ap%*c$vb.q1Nppa&)@ˏwrrrssd RTT$%U70dcc}9s :  f^pYiݭ`K%_HV3 4:Vb{? u͒r}PRnHDLLL|||srr볯fvvy_<.\8`s`jHJJw̙3߿o_"0l=s'w 0<*Ztуw|ȑnG윑1lذ`&]Dڵ{oZ]D= |LpZio^ ;W"IecoTbЌDLW=w&G4HGXlV-]Nu50*]i)>|֭&LtM aaao[#"a/-`^pv]O☨Ƕ3'~gAԁi)s#wA|jݷgNHo,EC?ɵvV닡=}499ʪ]# iiiGm§7OI[$׮]spp+LpV@ ̙3km~~ܹskwо|-siӦZ!...i ŸSJJBp]6YXW@q dZt O[KpFsBв#@$^@0{x{V277 9uꔇɓ:u{رc;/7l0337 ~g[[[ooT 8 w6Z(#OW4[@ Z#@d~@h->^ȍ+9,LGh 'ZfL mZ{aR@@h[^m #t4FYD KMv`ԩW\y9OwݻB L$'`)pBem֤e}{"(jݫS8|!0@hx>odҏ%r6mJU^2\.Jo2Tj2F !훔V7/X`}6/O.]<`A :n9MUV1F]_YYor)7Nb@Qq l܉Lڢt$=B3Bܹ0DI1N~ nav\㏙7kKz0\ T $nwU"f+65}ߜNURtXT$A峾jbPEq)Kq(%Mq(.];(D 4MߙEH{fy[FQ0@RS/@.Ċ0{ Ғרf6Tcl[Yhoo,h)ax0PP!N[S 6 3V9}eEofKʫ3+Fwfr9KQ[PZG@@VKkCD ]i6MґtH޷ϞƦ}(yY pQ3Mlk)譊HÜ>H)g#ea0?5z84O0z}Ѕ4ʄ UUǢ~09B.}C`K bp7؇4hb>" <n E"O=\Kơq@E%nASo222˻[􃢊|N }(Ь1Ak<2yegf Qd? P.ekvY$""|ƪNΉ1RTJRa: dMz"Ҽx9y0T0\/1䥐io}N`) yQ=/41x? 4b!8)5Z 4,`r =޻}TLg֘v1BR0LJ 'Yc7إߏYOFJ!tq:̨]N79 sCq7c.fCd)8årwՑd:d#`" 8]3%|JX;ϐI<]{+ީ%3C)Š', Kǝe'֟Gi;$'(4  dM1.4#%nnp@5u[-j5~n14p%{-!'eYK8mtӾoI 6FjKV:  0x UwBz"ZW zVQR{"%såFTrug֘/!c?CB3Oۓ"hz4-č89ñ) uvЊhMsbetԺZʸMo[)!Je+r _ Z"7ab䲼"#myMbET rNVDnJK=udTTӨF'9.@4У+rN__iv= :6ztO' #{3Jnts{lKQ벿`S3!V^)EQsN;á\HЧCV)N'83#Z^)w%EE}yZFu9@VZM΢`5@P}WS 5_7, BN#aa,)sL12~27ʡ4("6Q&VTB#^lOX]0`^{r"d2D^1iWwʝ2CQr9}0~]5bx?j&N2#CG_ïCi5@2;K5y9)T;,=Un#eAq4K<+uLV`l ZgxczO 9!N=8/gc3Ϡツfq,nh sTrp5'?\{#Cط֤ʽ5,~~ Fq8\Zp>lLW.5l N HŎ7;KhkTWP(.KJ"I>OZGJJ0p]gKᚃɸQ=+>>GYdxܹ2III[lQVVսqKSSSJJj 5s EEE&M߿TTTʅ`ٗ/_zxxsfd艞} ߃8}ا xV"2K{Xol 5'qaÝg)4n PKFd:[`@!Va:,gUϦ ,J]{Y#<T+s9ef͒ʚ3gӧ-,,<<<Ν{ݸ 6|7>>>aaaRRR)))+W 8p -[ **Ԕ_~B{ե`F\ iXnǽvޭ7wÇx%%޽{[XX=ztɒ%.\hFEGG7l6֩۶m{𡑑w}u1AAAΝۻwY?GjRV)˳Tfdx.pa!L`` # fh 4}C T Z/m"A鿊N8&[]XQ~?;ͬ@6ifZ~۷o544~ 0a5]v)++o ,8p Cegg* 5k֨QxzzjhhfPGYO78999r??ѣGoܸĄѣG=9sĉK,b*rvv={ϥҒWJAA͛7׮]+!!1qÇ֎޽{YYY.]x+`֭O>7IvPOY~7#Cx?SGpd36T R31(B&jSYh)0c*2_n}=O֭KX,СCdee]zW^rrrl6;++K__)ebb2f^%999S]vԩS~~>MMMuTTT(--奌5jVX!##d(js]r/H55)S899|EtN>jKJJ`j&Y,־}LLLƎ?c``HJJN 5)m,1ͼ Q\_;!  "P'̂vvvwڼyRSSÍԘ111AAA322も2y Li1^ˋ/$$$QQQ^^^̨Ree?|Aff߾}_8  E[[=}C^zzzMvUUUzz6PYO٦5IH~/ld7X@ 4#"ӧO'jvgx;w8ݻWXbf̘WXXi&Ù6m߿_RRjmmݩSZܽ{7:ӧKHH899-]… &MRPP(//_r_jj'szzzwuqqqqqɱ`kkdɒ 33EBdeeelv@@/ǏO}5)e`f 7#kְA pZ-H&Am %%I&EGGvpvv6lXpp0Cn߾ںhƌvA>>>999VVVB>o``0h }0119qw}8qDfM]RSSٳhѢxzzΛ7rJMMeذaÄ ===>}:f̘pIMqtt QWW722ZzիOс23ѳ'@YAD>U{LA|ڣ]\\ڶm+122?|03B4:JzG>?܀wq1fL; hI\r(b$E+a\vU,[6bIe~YHЅ.tOƘz^z<=94~c ~cC @ :z'}Γn߾}EEEvvvvgnnnnn.N\\<###''gʕ{3HJJspphM_nڧO?LWWWiӦʮYFAHNNVVV...vww߲e j۶m׮]c2&L%mmm g͚5o޼:M3u9#)''@5هUHIRSScGCC# G 11o|pKJHHֶm$64~& l@ X͛w킂6M1W5yy]v%&&r޽FQa׵kWooK.q簣cQ?K+++a'##cddX۷o<rnݺQy011LՋ.RG'w֍*uUQQ7Kq7L]np`/Zo>wvZIIIaa֭[3k'mvDC;֛|:N@ |Q|9bl6>++f;::62aI(-^g䩬T0XhjL{ykիWgϞ5fjǏF(,͓'OZ\ĥVΟ??&&.FK ag+KO ޱ@AZ-"mAfa Q˭`u7bj諚t˷V{7y$!qL@рS4lAEh=F`ĵ$ Zhj(:lUVRRtRyyyM6O]`6Yܻ@ۇ m$_0vsSWWѣw;---:rNNΡCw@c2sح_~ɒ%zzz|'u8>@z38Il¦ld%X=|L-jz4TW4L|6fy& q)'/\0tеk׺AhKrn… _nvN>}w 6lѢEzzz<gzh'ݴ 1KRS 4*mA3gϞ))WKnܸA,ZhѢ7qr/#e… ..پ};gɓ'ܗtuuQp%$$6ESn7~JJJׯ_p5q 4NuGAGAH0PhN\m牠SxSUU533>,▖6kaaqŌ ///# ǕtD¡- 'k`` g wޕݺu9N>tR˗h ifivl@$a} _e",F6wlds@Ehz&:eʔG]t|s&x{{у{[ NPVVVTTęx UVVw ˗AGǏ!l؀ HH `bp"$뗗oYAđg͚_/^xȐ!M-rb$$$,,,n*))Iu떜hWNǥ諄[YۧB |bpf[<>w\rEAAAFFG85{nePwG`#hBs&fPb,ց4Yς MVVMqqOۋ451s&()abPWǏ#G0d`87=sAj ZF gq D}}q9pV+utt444f͚WVB=8pЮ'y(QQQĊ1-ܞخxċC|0>@?aoe8Cijg nL;;'O!!!MD1`l55C\7O7y[?"x),E^|bbccDtMI޸q^2֭PTTT]m$xʢm@hG(;wÇ>|XTT8c3b 7x3s]`x{m@CзlaaqgϞq82hgϞolzo`\bj-obbΝ;I?SaTVV&$$O~Q2qDqXXX4-ܞ}WGp$*PDTLQM}vD׫Сhn߾moo *"""bccy '&& Ս``?py - &ah55\]]Ã'7wWGzҘ|x''`>tcCd nSQ4ޓ|u|hQ JNp y L¤Vx+W<}= iiiƛ6mRTTԼ|2333{n:JlcMM;w'뫢ҽ{}t`Μ9޽6l׹\ƎtR999CCØ}}}iiib=kБ9>5>,uCмu@>@ ,8}4̛7OLL,//o'N066u׮]7߿?..NBB"###==}ʕ.\:tڵk]\\.\ ))iРA?;^dddѡ_lvNNѣG峲|||W233]]]ldee׬Y]mox߾}[l155x񢳳3u[5W^͜93((믿\x㬬,΃kww@33+W޾}jРA B䰣(Eftu4_x:IFcʼuMlPWu+ĂM!4oGHL5['h Dz?TTT.\yʕ}?RRRp^T@zz:ϟѿٱIIIbbb~~~ES V^={=p͙35@;55ӧO߻w͛ٳ/躜/toߞg111GGGgg3gΘUUU\RYY9(((33ۻ)IZ :sOg?>ݥٹs3gz{޾}eAtķoF@ #FKBBBrrrƌC=zMMMΝK ]i7oL4),,q+{6l7n 333 k׮L__%K{{{/\$ tﯠ0~xz֔P~~z'8uT33۷7ik{c 95a-p/(.}&[C;k' Iduf$%XY7o@pҿBG}ՌpIQ>ۥ7ʼ,#0:H;O ?1@ @ @ 8A:{ @ 9 @ DonKU @ ֻΰܠݗN@ HEE|jjpMFDD&&&rbLKHH ) `EljTI-hIBymO5553}||+..YWWZ'OҒ477knLJ XX[[I[`Ayyyk{K  YG*Ðڨ͇ۖm ]v=^y?ttto.rl`o tGwZТGaX ל~9c*,,|G =z(++8p@[[G[YY!C/^xzz>}z]]]~***x4 Ffl0c^F[֣>;6qc)>tcRVV;w!CRRR޾}ɓ'cҤIˍ7hyGܹs;v찱c2 ˋ(99788W\1 zNZ$`k=˵q0<]хW 7kqe>txCSԋ<#ԐX:;u;9[(ȻPkLM=8*2PŶjM )C~aQbQ5nkIkitffm޽۷oߍ7믿9㹉>rȩSv=o޼tΥ8 wwwN&#pa :С_` G ђcmmAߟsԔ>p322Яl6;''ѣYYY>>>}+)x!LWWW6YY5k:@ G=0p|' VZD7)0Y _|(;)6>&Xpg Ŋ8~(te-bvn\U)}>97Uշu. \C~[5VX5,Eq`QKӗA  @}@CCÇ{֭qKX|9ѣG/^WHHHS)Ǐ;j5>*Pa@Ҝ*Tu@7DL)SԚpY,iiikUUdPPĉ׭[O$n۷6<555%%%@ tz d& V :*PjD<|o̚80 0Ka~ z| (38ǢCLbmpBR`h v xkyocC+t3'fE[]uN|W()6WxVjO2EP`QmmQ]AN8Yfq ƞ={Lr-0//O>y޽k,kkk }mg6f)ըP tg@TPP-SUUPYY)Z***8%&L>|8+VHJJ6%)x!ѣlv}}}VVvttl˘% Uq!"`NHnsPYXopɰ< _!έB;T';3|dBr%ɹsj@Nho4,۾&M@OeϗqZnjj(Ţ(a3oYѫV!y#Gâ={4pرr///UUՁ#nJNNnc[#|ga.vCj?444VZeiinʕbbbx̙#&&|sss99+W*++effz{{7%)x!:s)SQBV*J})!W_wpQ0(%)̯@M=cf?d-Gr3 af0 Ehw@޽~ɒ%jjj .ܲa#d2BCCڵ+33sK,~_I ih^zuƌ @/;[bp RުȠaN7:f1+vic" YeH}O`C8 +qRVu=87<~ _Mxb,s~uVY%1'*Ri \u#ώFOI45i쏯b8> ;p==|'OƌSZZ ڵkuB1bDbb"}٤%>Є&[ p! ??o֭[n#p… ?۷sB7=yI %$$l,@x8 `?d]w>h͗ _(Œ8(>iOFbN ǹg2j6N>#MT:قլ&v v%k4O2_5+EJS(iSx#2z\K&-j3Ooƌ5vIQPPT\\LQTpp0Y  @83>2 Ctv x_U6 ~q(c60 !qyqe,aeE('>R<yJrSSۨ Xa(0%ĉmmmNaÆh@ " !z9qX[xjÉfG'J4-D#*W&8)4KLj mAYUMvjs(7Dgr=%ד6iú3I44U.vb0۶mɓ'w@hot+S5Q _=?ɟ%Z?煉HHۖ!)wnwgH6x@ 4.R'w{̍MCӰKX,EQ뙇vY#Љz/v[4q(Ђnw,Sy[1@ҰUm@@>$s@! JQQwIzzmDDDFDDp[[711Օ(!!Q]]84L0LWp n< ؐ)~Sz?x\||<=PH`0|͙3gGcǎ͛7-l^Ͽ+wwwTB'R\] ڊK`׮]:t(m׮DGÉA*ԡ> RB/"gq?O$ȵHt/|X=yLuuu HPUUuqq6lXgu@ t k׮\oڴIQQQSS˴=j\)++3772dHRR8===))Srsh\ŋO^WWׯ_ +++77?#s @Ox#x36tyQa81Ѧc 7|Gыf0G`0v`0VX1dIIIKKˊ gϞ]t)+99[mppp޽_zE8qBSSSAAq z.]ݹs.ܴi1cyXdyyyڵW\~| &deebwww:fffmۮ]d2'LGKFGGΚ5k޼yuuu%yyy ,طo_QQO+ԍȐsww353UmAF/G?~#Ϝ9`ʔ)܆«W._|С?;wlh" e˖7QQQw0agvvU\t8qwNNμy8Ģ6m蘗GNvNvIQ~3 J]311ɽ~ի544>|ػwnݺUFxb^^^!!!~xРA˗/اO7o2zzz ? ,,LYY9??Ϟ=O>=~x}}'QF͟?-mmCM>ŋ!!!huuuzzzNz5DX~޽{#Fܹs@;%B,D nϳ+:q℡!}`0UUUqqqgϞ+W(((у.֦Oŵ UTT蒼/r u[0ߢ dTZ2|p?&4GQVV@ c ++6[%--dccC+((L@spiQD8hhhp~59pGyARRӧϝ;Gggg'uuu*** . P__ܷo_nVVV m~ґ> Ĵծ- G G\\˗ن@#p&a3Y(B[υFg?}U݇!_Q÷-%ڨA,WM[^P\Ma t)^!>>S^ԙcVslKR^^`eG П[Nd aN+\ 1ԉI=)Ohm-;wQ_*EQŪaQ;}+Pۥ7ʼ,#0 RNZ$`Z].q0<]хW 7kqe>txCk7B ;fXe3"Ul[)'@E(UdC6At<쁑 8A$D7)0Y _|(;)6>&Xpg Ŋ8~{;/ys栝*WUJON>l,ͼbfU}nz谇G |<6Wx&@pX5,Eq`QKӗbAt@`|[.G#`;#B) JˇS0k8͇8.9,] 8Fc4Tdq z5G|V’Kہǁdl =eB,Rl=Wabyt}b2>5mx[{B^I=96.*x;wCxRF26WxVjO2EP`QmmQd*'0G / W6H_ہ8O0?HT7hk)Ա *j0'd*b1&GB7_⇑ z JvZA0 ÊaSD}(¯0 B!ah:'8ptA%S3.OΝW"wG gxgy5kz/{!mKPEqOPUâg޲W@@t4kBa}o:.ڠ n`}el:l'Ee7<.X PU}g#6ݤ e%!2|u<Uq: ?sS=/Ξd6Jsv07RmCW g0|hgnk>_vHae?Mb'5U_ʟjdPb|(E&^2@@tj@WIX=%B*\b`0`pe(:>IԂ$$a<HeK9:U ͦH2֮E] 5Ç8yZZ9Zd2¦ƪ7;y򤖖y^L @p fҦNگ_?=zdoo?rH___''XQ@ |,R9qX[xjÉfG'J5DÉp3՘t@C^RfH7?OF>(oêmڶP;'G)T!:s]) /wI=DW`Ld1| 't׮]Ν;dȐ[n/^%?ާO))3fг|%O^WWׯ_޽uݲ2sssII!C$%%hdҥ 6m+ZYY Fp(By3X Fp0P@! ag  Bp0BCؼƎEp0zb .6Op*--xӦM/_NKm۶mO?ܹs;v찱c@h;zy/ϒVHI-rҟDJQmˋ ֏;A3cz$))2**sɓ'+W(,,ݻKCƒqqqϏiemm\ttmaaY͛WWWXåK߿-Ԣ6 Iz\2@~e>E(B9 WE(tjkM%*W69m1[l`}ђӧ.\سg޽{_~@FFf爺@Kݭ^sc6#uSEe4pq|4EQvzA%0 z&:eʔGt%11p¼y&LۻGUUUKr6mCYYYQQQAA1ѣG/^WHHȃ[+++sss ӻu`.2 "OK 49U8`Z0j._'}}׮XD"L ?V9tȬ^ZLL.\0}tSSSvRTT,))޽{{UϞ=.\vZ;;@ZZZ%>A8f{];XaZhA7m;)ifv zAPĉu릤Du7כ7oOKKy왌 j 23@ zT t=A /%O)UULRII$7/^⹔MeggkhhTVVdff㏹ , iCC5~ 09AL ZHo"&!ѯc(<11h :C`? ONN۷/ߺ}#G߽{@VVvNOO5jĴDg9V Hгf:}d2ׯ_ojj*++ی30 EbbΝ;jrgg9ss :cJCm3XZZ={͛,gŊx$$$N:eiilٲC5J[[{Μ9bbbgΜ177@ t<"~[[7oL4),9O+ccc55| ZB?aaa~ѩSx1h iiioVWWvrrw^mmaÆ sGFl CB dQ]]G&33 :ctuu922j.ЧVHHSNNΘ1c"""Clٲ/^>|AAA C__?<<|ƍaaafff@ |v;tvfjwo5L(t^q믽OqMqqq7nܠwl>@ԙcVslKR^^`e݄#<-s$1;Nl]p[{1OZYY>iRc? lbkk! ,&&aMm\PVVSPP@h7y~tڵe!@$DgF 47Dy2뛋@AO 2D Wz_t?Db<>g*)XFm> lKP5T[4"ߝl,坖vym l-U `P,EX A @  W ;TWC_<ܕpPD~wrPwטzFqTd[;wQO2bQ5,bQ,-=i-"xz$P%Iq\Fl&O?{'=*`임j/ANƲm+W,{ãS |<6Wx./_CQ,ŢXEFeBwUt~ @ |9@`| zw |P-0H*(r ,8 `hO$M|IO<彍 !$]VQR_vXmH-Z?Y(_%9+SC#g޲`p"=@hcӼ@vN6%"|jsbV˕ @T>`Tk0rdKb,heW`8F;"8yaf(U7Nm֏EhXxf4fj m`QT `8>zb UCݝ}) "@%ŝՈs;qkR\Ohx `n_MJh~1e\jW*PlZw'z%x֭װύ-kxW!N@@83 TJyLL{wUvq2 ŋ Ժʸ%,/j]ͺi_(4* Mjm5[htDV,]buAg`f"`_d``sg79͹X@TJ+/=uB`?2Ѵ}sy|g?K?Cz} yP$Y7j-0\E01nOwQl>׏~Ӥ6L?Oz#"2l6wyPYgG0\Ń~OsTu0?WRSiK.9լZu5#V=J*0,"Zd /4G;Km `pT4q{ Fҏ` !f%cEl%ƸTdqKlTĸTdqKl qV{S-p /g[/.cK?~! 8>!!!!!!P::: r? :6AR3ɨ 7_ػ) wO`w 5@@v@ȅ}i]@Ȃek_ˌշi~O|UB)ߗ"VH]MK3ϣ%T>ĉWGBNL6Gu>s|ޫw-} b35Zc9rCegg_|9''gB dqFawW}T>32L|ֿM߷$Wq}kMYNɉ ̼yK.]cN'IMM YxÇ-݊6o8ާ< ra>M׺몔3|#~U054~7n h:}}***ӳ5ܹs҄W\w^III~~ٳg+++u:]rr5͢E3';<2ѭ櫷zt.\ͭ:MkgΜ9g^z5..NVL&!DWWWssQQQ@@k"##,޽n1^⿏x$::t˫t7Y===]]] C\\\]]ݮ]Fc||t:]aaʕ+-=Jh3@Ȉeճeڮ0(:_VWVV?~\T444XM&WmmmBB-.\흘XRRRRRR\\|ܹ;-o tqjl.jZ7wu8 iCfϞ};wҌm۶9;?111yyyoʊrss߷ohT(BB-|t''9qk@6-_\oYS40Y?zE$jLKKؿssY6lؐ|#G!lRVVP(֮]~zRwކK;vlB{p _*m?'gPs0NUM$ 7!$ 4mڴCBB ,IIIIIIUTgΜyIDm;F'ݿVIMBXG dmgV[%lҏ  Ӆ|~,@@vX$U]Sm(:6 UL%ѱ #L`2RTڻ  ; ; ; ;Afv,`f؞>G4=,b:&SohG]y8 endstream endobj 909 0 obj << /D [907 0 R /XYZ 122.806 747.976 null] >> endobj 910 0 obj << /D [907 0 R /XYZ 123.806 712.73 null] >> endobj 210 0 obj << /D [907 0 R /XYZ 123.806 623.942 null] >> endobj 214 0 obj << /D [907 0 R /XYZ 123.806 468.324 null] >> endobj 911 0 obj << /D [907 0 R /XYZ 123.806 346.948 null] >> endobj 906 0 obj << /Font << /F25 474 0 R /F16 475 0 R /F36 596 0 R /F24 476 0 R /F39 618 0 R /F46 674 0 R /F44 651 0 R /F43 652 0 R >> /XObject << /Im48 905 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj 920 0 obj << /Length 2425 /Filter /FlateDecode >> stream xZKs8WpkKO <l&q&$5RUh 8EIF)ъ-{Sf?>ăy_O~<{%u ˴2HahT(RY)TL(Mt~4R0Hr-y韓N&'_NRL)L' p4v;JSc2p ﳧ@Lf,I=O#!8_TS%¯njƄm{kW& d {]~9_Y>g6(WǃHJ&gCmAEKe1_$tS^ξ⏥ [^]K[Α)(csr-#P"džDp$|$ %\1g-j9=2&'D}9XmD4NܮxmoĥXi*ªhhtHM?G\ /3tuqΜ8c"^QEeM*-Id|e[\"ncG}&QQ~'KN1\.:ͽZ]45S:Y1f%zCo,U=2,MLc[E[_qHcEWk >_/vaK˛{VivE U Jxdp]2 02tv_N8TnK^ CGM2΂?6tpԣ<ⵅTncٿ̩\crO-y7fH&xx ^y!prǷGLp _E<og%K@\-Sqxn(Kkhp2c^tI o(^v,4=%0 }Хi  y$<xl)E̛w#S#e\{"+eR4a4-^/z?s=;ydtLtoK364aڰu&'wI()ϔ7Ah*.X*#) <-CwE4)4ѫU1z'Z&Gx83iu,L0Q>nc]U/ =kx/N}^Ekirs BĊS2r@ PJ(b;o\e5YC&oORJI 4TibޝA밤ҮJvarAiB ^%X ?9_(ȑvVe5:&Icm%I^[P]Z2`~ -&5mwxWT{}]W]h D2h|D̤3GnRkaTeTe\;hZfuLZ<{t6> ]%xRO/64kۆ.m h)XS:ooXvp11(5kW,dVPә뭤 $r}v>[1/7).,h p;uӎqQ< }^ |'E=gmj^ ziv][(N&^WS 'ܕE%t[c EqgS"` ܍,.}A2_ҬU]|IGh\5pOK :iy 0`㸹mZDH~lWq1өm{i ;ΰLlkAoFӤɘ&a"3L(-ai2ӽx{JpV'L6("llS8 Lj,$^̫d,]QO}֝{@W  9ؕ#ßv 8t!2)l2]}]!Sr1h7R*{fA=ϝ%!o ڽ74q]'H|>y>NO>"B0jqzqB$99$ xs6 XDp2%}0C~*TwO`dӂg|-;FcӤ;q[-d8"_3> iKT?C ҁqpc ϯswGঢ়J3!LJ= nT5,uA>#`^V_3^GXbOzû;MPkyu $muNm3fvܞgq1Z1k1ma endstream endobj 919 0 obj << /Type /Page /Contents 920 0 R /Resources 918 0 R /MediaBox [0 0 595.276 841.89] /Parent 904 0 R /Group 688 0 R >> endobj 912 0 obj << /Type /XObject /Subtype /Image /Width 16 /Height 16 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 923 0 R /Length 40 /Filter /FlateDecode >> stream xc`9hdAhWh2!T-rU'dP endstream endobj 923 0 obj << /Type /XObject /Subtype /Image /Width 16 /Height 16 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 100 /Filter /FlateDecode >> stream xc` :?_| ;dc5/-(ڴ3ƨdC7;wA6Wa#? endstream endobj 913 0 obj << /Type /XObject /Subtype /Image /Width 16 /Height 16 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 924 0 R /Length 43 /Filter /FlateDecode >> stream xc`HU{>BzdD 4r?V"dP endstream endobj 924 0 obj << /Type /XObject /Subtype /Image /Width 16 /Height 16 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 97 /Filter /FlateDecode >> stream xc` ؂·i/|| \0 sndy"(遘 H0_C|' l3yG8? endstream endobj 914 0 obj << /Type /XObject /Subtype /Image /Width 16 /Height 16 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 925 0 R /Length 45 /Filter /FlateDecode >> stream xc` XT=-C#qGFPO#*sk endstream endobj 925 0 obj << /Type /XObject /Subtype /Image /Width 16 /Height 16 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 122 /Filter /FlateDecode >> stream xc` y^O?@'ɂP~@\>{_䧚zd72Wb(?v/a Jż -¯a4=D endstream endobj 915 0 obj << /Type /XObject /Subtype /Image /Width 16 /Height 16 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 926 0 R /Length 41 /Filter /FlateDecode >> stream xc` XT=-CTGTD|$Q ꇜ{X endstream endobj 926 0 obj << /Type /XObject /Subtype /Image /Width 16 /Height 16 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 142 /Filter /FlateDecode >> stream xc` y^O?@'ɂP~@\>{_䧚zd72I4MAU~!;pC +0T0@WzGFB‡ѴE endstream endobj 916 0 obj << /Type /XObject /Subtype /Image /Width 16 /Height 16 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 927 0 R /Length 34 /Filter /FlateDecode >> stream xc`9hdAhWhuwF1 endstream endobj 927 0 obj << /Type /XObject /Subtype /Image /Width 16 /Height 16 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 87 /Filter /FlateDecode >> stream xc` :?_| ;dc50L&j Pi` _! qFgG: endstream endobj 921 0 obj << /D [919 0 R /XYZ 80.963 747.976 null] >> endobj 218 0 obj << /D [919 0 R /XYZ 81.963 712.73 null] >> endobj 222 0 obj << /D [919 0 R /XYZ 81.963 422.998 null] >> endobj 226 0 obj << /D [919 0 R /XYZ 81.963 144.347 null] >> endobj 918 0 obj << /Font << /F25 474 0 R /F39 618 0 R /F16 475 0 R /F36 596 0 R /F24 476 0 R /F46 674 0 R /F48 922 0 R /F40 648 0 R /F41 649 0 R >> /XObject << /Im49 912 0 R /Im50 913 0 R /Im51 914 0 R /Im52 915 0 R /Im53 916 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj 934 0 obj << /Length 2448 /Filter /FlateDecode >> stream xڭZKs8WpF6g'([53Ze!_HcJ"4uo^/^]q0Fbx PDBeXBB Pr1e 7r}4,pÍ.>/׳].θ SO Vu)i&!~Mh?x9qG=D8Rm7nL jTe5mF;R;p|-jfGӧxB唢?iF32_ڭ#&yffe֛eU~iQU-)&>u3wM໵ j׭_+[t(wդ 7MZnpdh$ϖ-:TA;|WgX+nM 3;OIӤ|$aI֠p anl؞\xWWr2%H [;h|l#55s2F}E5>DDoQUy3lQd1JL]Tl.L`@Vj˱s puEeXtHj.G۶dp%[rT,1lZ؝j.@FxA@!D$Ddc*~ַq3@s\Ħ/_m+\d$ ĒLrS>zFlENy$I4I *Fi)WO4eUIf\B最ܦ%֛m6b'ˉnqi]eޥIk 2X&~$YټuiHUY67-[8ohe{͓ps/8YR$oJrvl}Iu]zV*㕪?|R4afskv}qI\fuIetcHUNe^9j[ wRvG,6‚BҕbfX`"Y[)vsBs{N ?Ԛ MbFrvĩ[2P=;zvњe="ȏ3oHy灺I7ju7 @a]~l ^xjܸH I3U9cqWW޺lҺ3TK֝G.@OYM&|c&݁CܗOr;;PuwүzHl}k#x988Dʪ\n>pj,֐uv+1utI~g}qXyU=~ڄ,Kt8ԥw9BxB7Uv ~:¤'0Nec$5lz3ZV= Èo!](3b(@a}\B!,y1`C۳ o h)<P8&H : ^Bńa pRI0v)_\nsar]# jܵP۰m7sA1;{lvp,$p3t=ڟ}<wYiCIg nŒUIm1zLPПTe_ WY. f8wo!xCz u0= K>{Ϲ;] 0 w`!GwEthmz a;IF=[8uo!=؉!Qn7m,ƫ>iKzP$G/΋$+wyx߼1ߓ'rc [s5w<+{<!ۛMe{Cɴ=̇ ;bDp% c]_V(}<!z=ԇ;5>jq%h@ݤyڿ @x=C}t2+* qص5O W7<֗Vݐ˴|t~ ΁BOCM);JJב 8gk0"DNCd)B8<CcˇNKă9AU Bɮ'tP=Ƚ(Ƕt%y?w"BO|,1+ <:Xڗ1/{L&??@ endstream endobj 933 0 obj << /Type /Page /Contents 934 0 R /Resources 932 0 R /MediaBox [0 0 595.276 841.89] /Parent 904 0 R /Group 688 0 R >> endobj 917 0 obj << /Type /XObject /Subtype /Image /Width 557 /Height 314 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 940 0 R /Length 20332 /Filter /FlateDecode >> stream xXGǯJEĈb&M{GTQA)QJEnl(E(~);0qݻ\pg;;fɊŰ0 Uމ`0 VHq`ʴ^kٲ045 `i| MژQ!6/m/oeN=ݗS)5- `;rV1sbn0zZY11I/ڪea0L}GΪ:f2Xz}q`:`R{Z}RŠSYl}PZRjZo8UH| [$alDb J3kmKkTJM`0XMG W߆E\0gفNʙ} 3P)EeXVDKXVmmժW׶aa8[-W/C֝0C$:'onL),J)SVtMė?rVV{>BHGϠn]&x vN, ;VSb,p[ϴQ .e_;'جi: [vdWi|PE̺N,ZKD WOq}CzL^=KG0E S$}CS_şYy?mx/֞r$*cVj}IK[. 96yg]s/I|<]vHW2qmefhM8xo]'.31oRCG',N2+'pŁGݷspC֓7G-{o`µ;o\. G,=d3jp/ar]7;A1{&៤%]G0'E.^#Ĉߖ9{Zrt$ _G,L0?YyY:J)*rGQY%eLYwhy1xϐeaqs}i=yvZifwNi":im֤%Rʐ;)gQFu9G.;b†MSKt7ohWǝ[(wI) ;|eۡٛ$>~Pn=XxxG6$8~OZ$=C.SNM;5cYd:̯B ]SiS{&fNiCL8䊦=f%FN>l7 1hDV(JrE-Z3deD*%Q)7)*i6ؘ t.~',Lg'yn_]tǠ >n5cS*q5M~G&-?PB)e7F&"q_ImӚ|aV']m83m;U~_6iÙnmZ;,n.c*+($I`FoE!B+b61˷bʀ!*%,K&< ahYRbY%澏FWXd{3\׮R 0-TߠʈcSyɮ'l142O/9qq5z{$Lf[c7W^c=hzuY%'mU!/A43h MIK^Ɯ5"~ܼsyxs SY]V̕;Hq36Uǫmea:#$ڭ;QHwMO3Z㼪CNZKWpK)1yG/=hnј2ԼMGWW㵓vM`iC3XKmB1z6~;YivӤ?zw`C\v7t 5 tm^-b2*&zrG_.gl)Ͽ "͖Bh_j9cG|D*%,)*+]j;׫ 6vqy)Ixl9rr.bڒj3ͤ^#]}C2]=Gz朸twslqIͧ(l7kV432 L2p$!@8lN->ͳ.FQgnI1}ڦ)gIt֭~dn7ΎWq5>w&[nVD(Fu_0Nv,k][c MZw*Ҁ:Eɶ+nׇp*|vu7DP7:%!';'Ȩ9|N.:'"3Z*p$F]ۖ9ÐC&M❋vemxX"JU$+3kbӼSġn{ؐxj۞u8^a :Eĉٵ0Æx޽ :5ySlhu(Z U_w] 1Gg(zFjH$w5 :=}/=nMxyǭM!}v,q̪i xA$(g4uٝ-MS*%QVJ,+ZcEի=6y'ӄ\GfmدS4}uͼ1Үd]=f : #9nUu/2o.ۊFIN뫡Fu.mF-x0n29臆F_/ߡ'Mjg[߀P׎(<ͩ+[~ZtNI+Ł~DOG6ee''.͵W8ĵIz Juk~ŽZlN{'8h^HKkj6libx4[]44e`ǕQ'g|Ȝu)eQKbWG%䆻[ς]q7-~n^F- Kۿ?*8Yf/($7fF0~cN)[. Oʻktr9m95*efH^}be'E$zD. 9Ks!aV9mq\ DHٲ%}*I CϬNXs|¼ l?燤:&8Lr ;=="x;L#᪨c(qfPt^4?B&8N").挠ޑZHZ$;+s:?0 3S6j(Â3N9NCqrQhc#샯`o]#ӗENuLz>*chZu>0 }hcБBAЇ#0ACA0 AAA AA0ACA AAAC+77_hc;Y J?L!]~6X8NKKK `4 1թS%~v9y/^bnATU"Lމ#:'(ӧO׭[ץKZ=}7v}aÆժUʕ+*xӧOǍ7 `_D!*K-ذa&M,1%%M6T_z5fVM Ѝ7={&ACׯs*( ֭?}Ӵiӝ;wyTCyyyc:uzD CT: 99`i_vAAAaaa'O(/_a CTjdEVJV*?~L%C&&&3gNAAѣYf9;;w1 _|?OLL\j9tqq sε*jժEdܳg}D'NسgƍY_PCU7oNGekkKG.L(إKiӦ{zzѣGٳaÆTXsQZΘ1FǏ> bPjHDU\bdd$ %0D#G޽˖`:M6lFuҥK?ѿ߿? 5==ӧOvvvv:u ?>]l̙3ِK5*$$>>E>֏cǎ%uԉ*<ӧիmVH:t`@PS CV('_ƴF)4S%K 4dM5}uV?߲ccc_ZiDr7ZӿW{޸q}D?VCeKĐtqw۶m*''СC\cmE֘T3gJ AU!kkZm|YJ4[EyD4јYE߆._LR"?˗/PBi&v_^^^_ӿ>cEĉmߩ]v~)Vt1$]̢Kim+:~[n @ C*\[ ^cnoCW^-؏JhPupp8#GPzz:Ap^"5j#OO5j,fkÐt1$]D Qqp]ERVϞ=2e TV駟~*m;@0rs1_UV|.CՋ=sT* 222ڶm;{lwݏ rG"9 I-CK)wyۊ~~"( Cߟ vBzߋ 3Çimll?]vIceѢE#"taIIIFl6lؐZ"2oK.^"س|INNK!踸AJ1jذa-Ljfw6-oT644433 cw𠁝jCv6ܹs9sf͚K{vsJJ }˿/홻~ennNCO?~̆/2wЁF-[ :])hT57Ke^v-..N"]6DӨQŋ\[n/Zhν u9&_K˿t~ ڵ1b٭ {iڴ)Lt}ʆӃR*[f/[,;;ԔF3y<)'4{mпm۶e?ؾ}-[̿z* ߍ0}t⣎g}F[)Μ9~RiРAHH[[I}6-UN~(*NDEOmGQ;=zHQ[G4s_t)Q֖Hd;@0&TY4r+WI"!HկիCO"ZmըQCX0;駋w%qcx0QcV?[}:f y9cGL^mtZ/!ݧ{Ťo8u ;׻8}F4wK!`H {=빃C^? ޾.;jݹ}:o8Y?up0w3 _?gӣo׹,ѻ!x) igNϿM7g}oug+w8GxW1AD"}%Ig:er&W#0w O?[-]@Rͷ_OD|[cRz їL~e}^˝~vgԂ~&+O2[wK!`HkuX:dzeMb*`Ufd`֘{vԯ0ޝ z!htǴ ^ CZ~:xċEMȚ6H%ԗ;S{VR37N׹Im1vG7BR27?xqI),\>姌o'$=dW9.qfԻde9šNK\_ }FO^ z[',}B)S*]䎵^~?3'/nKJdx fh^ CA0AAvܹ}QJ x)0 i._zى'Dfi x)0Tf d2{c511Q>S>Օ֪UƍX>^~n:kk5jݻwOQfKU eee߿ "x'VuUf̘aiigϞ9sfĈM6TDېbСC|򉞞㏔ڥKW^kn޽fsss۷?< u֭];!>-,,OjҥK:u}:+(W8Nlll\\\RbRRRǎYn[:dطo_]]ݶmۦ*:su}͛7I&ʃPZR~ҥJUׇ5)}׮]/uxb|ҍ7~x,㥕ې:b޽{+}0 ٳfff4mϞ=/_PjvؑOΝ;W\MWt#֮]ۡCAF:dh{kfĢgD/^XQ y/TbrOjʕ K$'$[ i㥕ېcVZ&D]ahͣGfy#S:BQF4ۤ>>bs<5MdV0$CRd4b1Dh`miiI}_^AN:4 6zJ 2 =#j^x"\07%7h@?C!`H0t0NxjNk׾z*+ҫW#Grk-ZԩMYgRHH!uݺuc $m8۶b+:p>DnVG=#d*b 0$Oǐx0 i>‹r6l~y5ѡڶmkaaA=q?{mz?VC;)%uY3g^JbH^A uJ244=#dUwmڙ}$C!*!6 U8n޼Y^xUz{{kmmmfcc.46СC)֭KB}I&''Sٳgsss8ŔĐhJ2D[n=zVvJ2ժU suumݺ5'gT +|w޽{333[xӦMӧOCTASb@:::]taw{zzRw/44x=LMM'2OZjh@K'E;$mڴ4;v,]ĐhJ24>4i$((HA֖ftT#MtчdD/ȑaWN_ĉ޽+?ҭ[7##Q{K!HE{m]^ AA0ACA ipK!J{ x)T1dbb"+VjZlk׮RU@ -"ɓ'27o_N߫iU<7 C 644Sj_Ogy&yiffG_zUTK5]Py0D}{$$S0D b>z%}O6.V\r͚5 ~XU^o>*CSLMM H:xhһ*(( !6'tQ4aѣv.K5=Pbƍԭ R1 DJ۷D6. imE"a:!T C4G~:#Xl_ F2qppC`m4{JoCqWZ%{ܶ}ݾ&Mڵ+ ?*/oCr"r;rrr:$!QimUN˗/U른SN1=ѢE ׇ@3sCy,Y"wmD]NuN:UF!L A/<ԹsgZX0)yo(Offf{ H}c 4CA0AAHKT%=H^z˛5kVz>hɒ%kY5jԐ{$Cቌ__͛5֭[[EeF/R`rvvyxĮ݉vCooobMvvvVV )O>"!ܟ #͟?q4gffgN4aÆ4upՒN9|իW qK&קON9a7ڿVV-;;;DH"##QEXH[i4Yf%M6]~޽{ix/ݣ %!!Bx ϧCRx)0u K!   ` !mCRx)0Up/j0>Pr oT OdT*TiiiZKJ7 UUoQ/*K`C"iҡa{HOi;*$*T>B #j:3iգzB.,M$a#ѪUKN9` IDQT0X u2Ѥ7lWHT,Ω|D 1$% u%ђ=+}AHx)ް UB!(*ҟ*Nŏ#Z\CrDqɒ%,ԩSR/!P IQSCCP9T©|D 1$%Æ B4 0$ס "Z\!aD-Qg BJMM0$F|_?-:^߆ʌ7TZ )xrs*>D 1$%#8 0$H ~$ZVwCo*,MhVZDFbqNE;?CL:HÐh4Ra#aYx*x)0(h|ډ0/C]ۺ!x)  `   ;/CP ARxc(55[nݻ pƍS&'ޢ_ YUֲe]vSN)z2bU(N x)T 盛{{{>xҲ ŀ}Cӕr0@^z`CCø8Jڿ91TΝ@R<zǝׯ_2$33Ύ +6k,XBWWWm۶be 8ɬn`!_n!s9~!ш}lٲe&5jTJCeЋ/~anѣGMX%DMǮ͚5#)*!Oe1DSSS9 qQD#/mڴi ݻwfpxjz)0T߆V^M uk߾}H044|ѵk͉)ұC˲(3AC`.:xi1t a"$GG!ܿvڴ}&a6=lAԗ߯>k֬qpp(,饦!vs#G(BG4"0pO- :ulbkk[}&a(44A_6|}}'MԵkW6o,C!p**⪻2 q)GGCtv3gׯHѮR1t=WF̭[R_^N {~VZxxx^^k֭*A*T|(D#@˗-,,4hfpx)$ ٽ{w}}}Zk׎{"D3%bֶgϞGsj!;hтdD1T "0p@)ԲeiӦI B! uСCh*ORmO?D$333viRx[/jva`` *CA AA"Uw^ /*ARMГ'Od2ÇK̉PU(<رCe A0 .{C BĽ]bBYG/-UoCꅡk׮QpΝkgg0$($6J>|qebxAsׯ_]-**6hrڵkSnEB$!e=xi|R/ }غ&nnn,hD!h,00TN,^"GjٲeFFFAAy2-bH DaD^ CٳghѢSN4E0$($>Bܻv ˖-̙3iDL"ѰYG/q>۶m0$($߆8 q>}7nݻwuvZ>!nd۽{7Ð2ADf ߆!Z-#4ݻwC2 # Fc*VSNCx4k"_ڵ@B| eddܺuѣGzbR&h,` wi9 ݣGSSSJXX1GQD!a4`CL5ܐ" AﯧWV-;;;Ԟ"pidooo``ФI 2Aa!x)TQBx>K!HE{m]^ AA0ACA ipK!J{ x)T1ڭ[7bݛ{ nݺ )‚KaoݺU㗎RkDrssMLLJUZ-1^^ Cerya"(%%szz:-z!!1{W*C {wD!r]U+>G!i9.K^AA-T !rիWۗO^a&c&DaKeT֭+"F#"lq1(vCڀ!aiӦ-Ye#GbH!%BqFW4chG!7޹s'D={x'1 m߾mOC1hDcǎeÐDѽC(?Æ cHbH!%B1$%Zhb t{ю CPZS ~B~Zt)# ahDԝi{9 IĎ: ~xöP$VC)r]4h%E;Zx)~J{܌۷ogffnݺАzZjܝr'(..&x-++wr#7mБ#GTP!Q9.K^AA]wCmauttڵkk. 6l'BhD7,~ԻD{  I c655%!"U!E(G"\&x BRR`H]ޢpœ'OX.8$!<KPEرc͛7e~~#߉ %{m]^ GnnnfffGf7AAACA0pK!J{ x)T1+#(}#Z">>//~РA6CMX˂ ض%udOECHG R(Z!~ЙVZ*RX:/ӈR/%p/tgϞ)^ i3\m+++%> "F4Kdh!r6ÐD^z9\30.^K۷o+^ Ce!Tp) -5 Cŵm"--M};8L:%2PbH4t.1$Zlll:urq:z j4>yx4`BbPbPA(0HƐ1xzz7MV;uSM<7^^J 6ӧw\zA熀!EAS!x)TKACA0AA6W!x)D K5CjɅ۳f OdFDDg*qRR`H{ i*I= a/P{CoHtϊA.N2+[e{3XaH04p}m655g:TK!x)0=D,ZD4:v2)gR'21.^J"Z,Ǯ͚5{CG.fjݳh.j!uRPǎ6Tiii| cfi@P{x)UD,ZD4 :ZcH]0gy>1!`RH.{-"E;8Xxzn5Dq>o K!7$g"]NI0TZD:hN;H /*ސ0ԩS!K/_| ڸ{nn֮]UwRD:hN;H /*ސ0Ѕ h!{ h ޥO{*ڵ?W~I4..V4*0$ZDQEsbHEjK!m7$"D6lקON9a瑩ڿFGeggG}_*/ܐy5khvT~}3KQ{HSC*T ^ - ,|X~}ܹaH4ފ0 ĐD0 ~Tŭ[=zԫW/!Ѩ+,WaTJS mFΝ;m!EVQ(GI I"p 4iB80 +˿SNɰD* sCi$ ޢA0UN9!   ` !  !`   ` !   `    !   ` ! H1ѣmQ͈Dˏ!OR ͈fDрGPi{2hF4 PP04'z= A2[5=imtzmHfTR}tLPN 2~yg_r^[$ 1GͶ[l_CJD_n&/6c "'xyeI&i>PE)774++?~E %t:Zg_]LzaJdUYQHs v!! ]x(݌L!텘;lBc!ߺtgvLM<'ޤIիׯ_Kmcn?]"å_lfaiyqa#4o޼Fu?~?@[n߿?0$xssf͚ڵ''79gw=ff$QҌ CwL:{C!w_P9 4D=IyCsChmr- Ժ|NNN4<ݻի#{zzCr<|"t{{-Ytxa)S4m4:: _uƍo޼ YŚ?رc6~x[_,8",Qx@uQ̏ 4UYf04n"N#=qֿg.,P 4D3 _?gӣo׹,+Ap׮]?}4BkJ˖-WM?Ӥ$J9uTǎ͛gllܠAnJi&v5r{Qݻ?c]]ݻ_pA1 hv!.kXontQSt環lbbٳg#rfCԀV'O6${Ai;>1(=79ߜ=wl }#o֝H^9$*-g3vpO/\rxv뿽XXvghFi2!Lxckup'g~DfZhxtpp?~<D߈w)ĉu֥I>Mv?ԩS uΝ3ftY1?}1#A/Ϻ#?vCT!Cnf-KK CiZ`5$iӆm[[[rTݛYʯ'" V>]s-1)n=]LKV $*-g32~e}^˝~vgԂs6?gNC_O2[׬K"߀9իW GH&[f…Ce]6(%%;Azb +Eڻwu Rh@"B5ܹ6,[tC~eGe2[!V-EegϞ=i$KG!ZQ3儚*`Ufd`֘{vԯ0ՕJc7ߎ-h~;V /]C@RvajjC+QCBB8 1̙C~rJ;;;crssCoS]P&{ =ɮde^ۼJ,(mZv޼y={RbC|ܹI&V\є&,,7l"^,zhBִ9ݧFz0 iŐٌDDm|ddTCe2Hݛ o>s7Vk2Ŭ]aNpƌwv!Yf .too~Dnܸѽ{*Pll,N8q֭=z;wR8@K*777c(bYт*w_aw\rځ޸qcjX꿴 83։C's͎W^dhJRmP6##)?ez!q-`bRp _7׳C&k*\DcyQ RfXrl#ghwdOԀs큋>sx!9Aӱ{r&5 0񳜍U@9%J[&|TCxo0  hF4   {ьfDDTChIx4#R` : X6 *J!   ` !   # `t`0Ҍ!چ`0$`0 d#?T endstream endobj 940 0 obj << /Type /XObject /Subtype /Image /Width 557 /Height 314 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 393 /Filter /FlateDecode >> stream x 0gJ8ɁD+k1|!b6 &X,xTGVq endstream endobj 928 0 obj << /Type /XObject /Subtype /Image /Width 18 /Height 17 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 941 0 R /Length 331 /Filter /FlateDecode >> stream xc`2f)~[ew?=:dVb4q^K"5{~{Y|Gg_s~Nn\Z_yfiLpw~YmG̜;кO+7䎇}7Ү6g_pxA! G{lvR㓶*L,XDpQd9Ē% Ӳ+QKL%=jj{Icfk) $d/YAnK9s<*~OAjbtQJˢ$xìbt1 <8 endstream endobj 941 0 obj << /Type /XObject /Subtype /Image /Width 18 /Height 17 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 68 /Filter /FlateDecode >> stream x10Aq&˱pHRf;F" j`F`F`amI{hBSjMs endstream endobj 929 0 obj << /Type /XObject /Subtype /Image /Width 18 /Height 17 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 942 0 R /Length 326 /Filter /FlateDecode >> stream xc`O(N.K2Lז YZr_#FWSno'M=bt-,9'cD ]V!+cDǴ UaIE> rd4daw%z~ p1s3sMRMk뗎?&=w@) 'ןUjZ>,h@G|sgMh9s⋹s^.]~/{oT0-p;ޞ"13<=ríNyOI~S1 endstream endobj 942 0 obj << /Type /XObject /Subtype /Image /Width 18 /Height 17 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 68 /Filter /FlateDecode >> stream xͻ CA5$? $ J^y l RSZd8-Y(4C2"2Us| endstream endobj 930 0 obj << /Type /XObject /Subtype /Image /Width 16 /Height 16 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 943 0 R /Length 293 /Filter /FlateDecode >> stream xc` > stream xc`QC 0CX.Ba*4vd1G`@q 02A lizlz endstream endobj 935 0 obj << /D [933 0 R /XYZ 122.806 747.976 null] >> endobj 936 0 obj << /D [933 0 R /XYZ 362.909 715.203 null] >> endobj 230 0 obj << /D [933 0 R /XYZ 123.806 508.874 null] >> endobj 937 0 obj << /D [933 0 R /XYZ 123.806 485.547 null] >> endobj 938 0 obj << /D [933 0 R /XYZ 123.806 348.809 null] >> endobj 939 0 obj << /D [933 0 R /XYZ 123.806 178.212 null] >> endobj 932 0 obj << /Font << /F25 474 0 R /F44 651 0 R /F43 652 0 R /F16 475 0 R /F46 674 0 R /F24 476 0 R /F39 618 0 R /F40 648 0 R /F36 596 0 R >> /XObject << /Im54 917 0 R /Im55 928 0 R /Im56 929 0 R /Im57 930 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj 947 0 obj << /Length 1872 /Filter /FlateDecode >> stream xڽWK6WhorHŇzgz:&\6msWJJO/iM%[ڋ @HI|XqR'BeKj L*iڨq묮t7>|ݺQo֙|wLSTϏ_W*q\Rds\sla﫤eS'$yLd]ZI?WEtw$KJtlP/+P$HRȅAH䪬ͼQɻ켶ͦ+[544Y0& P:Se,/1$pP^4@Oi#tx(ɢ\қ 2z{ -ᬔM. ek6!/>Rݼۍ.Rt<8&MiyTm6LԖ +5Զ/J&:e5~ gY9hE`³o[P%tjO'pJ ̘p]C\BO?YA?6_xU}v #I4Ep{tE?idz V]îH7v0.#ƵH-zaҖ #lYԡ@ ^˨j)Dc&9sۋWo;te)Ǎqφo<_B^0CZG>rހROEYTi[l`j dxX2xX ɮB9EEu\iB"_0[5ed5)@<"Er*I%gOud DF +Sߑ;R9p"\,EG=|&Tf*P5$a3CܧO[̼8/(=GH}0-2[s81}j Isy8(K55zU`)۴Υ>^Y*M㓟-i:Jˢ*Ǿo%]+os%_aN%2&R>_DrX,,ȵRpk{O ~͟(pj-=.S_,ΚiEv}8n *=>L!ܐ.(yk6.9[?u' C7W,*2/rWp%c>@k0Z'KQ y4ko_uۺmrj/c^RXBGHF;BJ3xQeKH#7E ͯA۟$ ^CTUzųA/La^{9mrCx ')8IڒAxi%hu=5A/ΰ X;y3FচIPmC!Kf;x[s]Cl4WJR^&g7r ZFv .wD/ˀ#N{Z$O'rtl ں΂Os1f~;9{47I";f`D$ -5&@> endobj 931 0 obj << /Type /XObject /Subtype /Image /Width 468 /Height 431 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Length 29104 /Filter/FlateDecode /DecodeParms<> >> stream xw|Gǟ]{n:0%BHr$ $$tr@ B1Ā`cl*KV $˲-eyg4iQyy93 0 9f.Pk֬Y>ç; y!=f֨8JP`0 oȺoRƨso4 B@| _E9e/HR|) 9]j6nݨpf%y \]rE̔o&"L ^Zz)jq`BVAS#u׫XT1l]xX!Xi{dSЎ/lMqjlœ4^}Ue ԶKkra.saqɃW2q?ڙA[ss=}c4IMab=#jP DC&v+o'm0k.ݲNZ,XoU-R:˿!):o3+ux#APG|Ī~Qeg\<;&;8CG~aKZMPta3AS/ZqzU87@weN=n;Wno߸}}$&/1sוm%IǐFkߴxЌU(xY|4FoO kٵ_?gx9bIܡנsQmT+=7WG$"gW5*ckZ D]͠s#ꑟ^4bp*&?M}] (2}`t*?[lbBLeF5) tHG#aw _Bi'A8`no6vš^Xpu] ̙Fm\x%lY$l>+x[s¿A[_o*!93͙ 0_{&Bq[k<{Y3Y۵L̞Ie;,'5M^g~*>{C.}VFVs` X?_k1 B)p̜M;v[9#@g}iz{m:8}̋6U%E9-ZI(n߮:*Indy@[]nv>Wd#S>/y%F*!.\F1Px7/Hj2W|udNp$\0[*mԧA缛W#=\V+@dk)%ґ9)n&K-2 <|Qح KI%%BdIIIPD7c/{<L^}U?NH*:$cXтTg*~R/q6}D[pԛ\) w}ЃYs "\OB"IG&_O!10(01'xU *# m>{M<'"l`_=?SƧKosR} 0m.nzݬ˟^Wy0jڍGV\;?WrY1:AhU-V#%FV5rhJ1aIJd,7rN">~ށ޸բGz J#i ȁ$L<-92r։ݶ縠'2!*Ӑ:"r^'"8I=Nc# O/f|qV.,jq?x@WEm?lC֠8G‛YHܬQ%zԏ/Fdi $hYjn7U'{jqWPPX'Szn8cs $.W8**xlj "l-|b֜cǿcYp6?,ec:"A|t#%KU#+FL]N24I6"FM%]'U&(3ԃX}܋~{ĵVpt"l=D{J#FTJ?&yD2H/2y%-d cJ]1^,&Fי{d8qbYG ar-,*l{:+U83)-԰]?~/s;3,'Q6l HGzLYյmXҲ߆~?^jMWBLnǶ/ Jy/SזTT#BHTovѵ #"iz$j7뗉$v+Z}b-]%{F714D4n3}jߴ!Z\ Et2.ۿc 2 iQ0eCx$Tɛt?GXmf 0*z]ܵ1ئ @IZikKNÊ͙-LJF\<='*2XO*LҊG[P1X9PQn{lUxx@*FR[˖կε5n),`eex$x)#VY4DOmf%jVbh\1ҭjvGf'*4잲l:]P]Nqk}(-0]޻#b-( NLɀZ!2*`+^JVRHGVw1ʂs:A D1<kbҶ݄_tL MP>Vyx>.FP6S/=Ec4hݳ0 IBχ`K1REqanPh^shWxz"D</<<cլ=u Ơ9B!J!Bω O pܾ[\I~{-`0x^.FWV3Uqb0 HU{LX|Ԭ, b0`0n/, b0`0n9 ,\TZBq)&"J!D{M?y`0`/&Xt l#+fl L/b_Ǒd<`&'Ud+z%QGKdDl}D'g9>/`0`Zb}%@֊uRVLlbeYRT-`כ@[+ryff𶠠iӦ_~}a^F1bN;Kn4r! B/S]-PWY!Kn tUiֈ`K.3Ȝ__ӎx` r$!0xGD, ~e*9n{AKbהH$2dmOO ޽{}}}R [wTEdPHA 1=$5қz11QPI^ Q6[ RMIII`+x١\ 7#2#&.v#ƅ7$ g Jx>kfȝ\mxS~ذa  -3߾}_ ի̈rЛgu+(p/>KJq(!WIފR$\^H1EպNf͚ & ~嗌 eIMMD|I۶m'L $vС?iD"QjjjllF9sڵk.TO?4iҤaÆ˗/o޼xfϞ_d̝;~۶mmÇ߼yʶmۆ>|={ 4ԩSu㎧n?mۦy{{߿رs̙2eeܹ3lذ]v >|;v4qfD9M,u`y*,@{.jP%hT|!+JKk:7ߴr?|k֬iѢŞ={d2̘1cٸqc?䓈t5rʇ~{ Ӌk^#GXQV;ɓ_ull}f5j-[fy͛4i>Zrex-Z4o޼k~un/_h62.X`Ǐ[*rZZژ1ck:9&>e(=L$KUPzBt l©Lߐ(EH%JRuVL&~sM6'|"\' J̙,Κ5RRw<[&* ǥ6l3g4_E}uY按8qa@,O>*չO "y^RT'OZwo w9s#n<;="/,m)yp+*9Ӕ@"@Y+I^#'Gw=xzz޾}ہ/@N,HtUΞ= }_pK.رcRR3-l,ڵebDDDLLLNNJ2OZl,M6DVJ:w5V S/^\pcǪ,:0 qㆥpbDխ715ŷ{ d1r5猈GPחy.A\/#WљypW<4!r̒;jWRbɣ-rjTYY ߦ6yd~ʕ+Vv͝;Z3T*NH.lAj9x}ԡ`fff~d2ٸq6mI#G-[fy'ָ`2'GTzS#X|X,^]& C @O@#U,:PIyU1X ^AXzzz޹sG[^-&Ixyy:6pgnuȑ#GRΞ=gϞ8ԩSQQQP UTTX >u>xo?sv̉u0Cobj֗Š @ QrTC Hn)* E].h޼9NrGVkvv6nH2#ϱz{e[LNN{ Ç;G-srr\c>xDXjٲeа#nob 5j`߫*R]Ab)4x~'$mdX@moO?TMX9sMf]TTTcǓ$9w\y@bbX,޷o_YYV*.#G˅a>#ۖ]H}8Rvq:rrD9MLs$ԬkV  @pX0\ZU`ۛ:߶]ٵkѣG]SNiii®` M6O8qbll,B襗^JHH͙p?[nqqqZٳd׮] Ǎ{gYM6ѣ%I׮]#""ܹs7nܷo_tiҤI|Mǎ_yTzk׮u򮽫O8'0až={ƌ3tА̃K{쩭)'G,EF))ԡ>P SD*R?U1oLPzU5d2 [޽yuoѢE5;??~-Z1+V̜9srb0k|D,J 'T*Ư 둈y^P[b0,/D1 `_ qX|1 ``07`_ qX|1 ``07PYܺLCF5Zέ㏏[a`0 yqyE;vw<yKWV^Egy1 BJ-;cK;yfpwң ZrH,0ꌌ޸TJX EEIBl4qA7 xFxSgtwMRQob O&;:@SA41of wM2IoxDlbh ID;S=y(BPm_:{6(c9$|}K c4.ڝׯuD>B."z6 f'1`0g Wp#K.ѤuH82U^KMP$XƆmZMk I !# c}2_B@@SM" M[W㴶<*p ohRL)"oU^pxrBb))GAy-ꉄ"\"藼ց/ 1%%iq[j1yp~Xfa4EHhJN$XGCOCJ("rȲԻ_ 4j+|Q$BJ@1!\LHEy]F"Luy1qٲ×ow bJ7"4ISHFSebyJ̥Djq>$˝y%"Bkd&-"D$HDĽJL2, ȉogJ4{{_ ĕ Lr`0/W/=wW"4zSXV\2&R̾.h!^BѲjLEeXJ7{㽯w ca05ɚݗ3sU&dҘ &uyjR,e:+/y*NW2ܺ^XV7ܽUYA$c`0W)$f[[ fgv oꀅyxk=,Tv-~_U``^(#p 3Q#b0O b0p۲C8ws:w`03p(3?3ۭGo__wG`0ݹu[km X|1 ``07`_ qX|1 ``07`_ qX|1 L|/\0`A]v ۷o_k =UYY]P-HNvO!a0LpaÆի.]jӦYuJTTԌ3\ `5{݊)SxyyljEEE%&&B-[4k,888==޽{6k֬v t^ >쳆 Ю]y睊 yiii6m|reeٳEFFƍ B`c0c\#AAA;v8x`6m4idɒo,^V4jh…Ǐ_dm:4jȼۡ{SL2dH֭__}ɓ#""<(I7nD"IHHhٲellȑ#۴i3cƌW_}qoVuٳccc?a3c0Li z\*=sU[ $ټyWZ@03IN;~ۄG=r*/?/`07`3Mzzzzz`0/ x`0n/, b0`0n/, ϷC. `R ߣ `^,voj5pv y(-`0n/, \&&L3fp\YYIQ)gΜiZј3={@LѾի7vUO^{M&9xvQmMݻWh .4mڴfT*kZw҅![VVfYvѢEIII<;.%HEڵk͛7===\{q 9B[l1 ={Φiȑ#*7HKKҽje0\l۶GB͛9r҅`tM4ԶM8w{Ҏݳ`,;n<.\?|yyyϞ=,X`SMgiA|3fy~'N0r^sX6-[5UVlٲ$6%99y<ϟ={v̘1MӑaaaW^urqV[PPдilOOO]f[e&{݄yzp~7իA)))|ARRR6m D"e -H$v}@@IrmЗ_~yA///Tj^5%BF/QQQ±L&+++ ߁ Bѹs o߾2F 0~|M|3gΔ|'Vml aڳg۷ݻ$:tШQ#V+oԨ… ǏdɒB7nD"IHHhٲellȑ#]^k o+bgΜWvbf~'t$IN8qĉeWZe/26lذa,4h?:a0LxjwAςGL:`0R^3O(O %Q'>n ̴? k~K'v=q''!n(0`0$ qX|1 ``07`_ q.s`0gC}s뺁\ szꯋ0 5_ qX|1 #GZ?͊ ^sS yp~毾ڼ ۶]9r=_ eW_mv޽{]֜hNe,YҪU+?e:}7CCC<\ @@@0.1XYY ^tSNw`~˚ k׮=<7.Y$++kʕ۷oojq.]jӦ͌3Cr 屈ѣJ7SZZ7lܸ[n]v]p'[li֬Ypppzz{ ;;;55u޼yM4'4j(ZݣG6k֬veggL2%,,K.LJJ :uoiԨQ@@@Ϟ=^ fYuYYYA烱dҥ111~k6h[w?4l0..kѢEz< <._D3'NHHH3$''OpiӦXƍaaa!337''gu)SN\pAmذΝ;׻w[nM6mǎ'Nذaý{n߾ۻܭt> ESEBR+DԤgasچals)&B&ʜOrBI:KIuq}'*\9}s_rC=<<6nHDWSSKIIek}g$N:nݺ+99RۮRRRV\WGiWͤBKDfffrk>|G6m/^| "љ:u*8p`ii˗Q?CMM޽{XZZvܹ]veee.\zzz ̡C&Mjjj_KU]Ǝ?$""BEhL5WϿаfIEEEdd'|RPP`eeB"266VSS#"fff챶6{ttt$ Nk߾@XɮJcGZZ%%Ν[fIvv6[X\\\^^nhhHo,::ۧNJHH UtY=:cjj?yNmӧlaNNNmFV#@[m] =zɓ' ϝ;7wܰ0>?dȐ$%%-YGЪB@SShΝUUUS"Hr\oݺ555pRaZI6l. 7lؠgmIحy {~;r]N:uȑg&"{{+WN46;;{ڵQF|K.AAA!!!O?O>zt_~AAA>>>9OO3f 2cM/%[gz+G{3|m[=ܻw͍Μ9t҄;6|t/jԖr |F#/TƎڿkT["??֬Y  22_~\O"6OO#F~͜9@aݰx͛7o~@/|8 prpn׮]6le``ݻwh9$oZ.sD޹sM6zz$hY8Ӣmۚ|W> ,XQM6h敕D4|p6fJ7":y򤛛E`` CH$СҥKʕ+5Y$oR79:t`ee5iҤSNUTT(SSS"h׮ݣGWXA 2yyy]t\yWJ;#I閗bŊ GGɓ'ѡCnݺuƍ3gl۶rI?~N78ᦡػw7ǎcOHң|d6t0GNNNNKKСn -JMM-..&W^vʕ+ֵio9D"@ 6mڴiD"ѱcǦLc`` Mnf3ww7o>|djH-///!!Aw][[( +++448 `ɒ%5eF097n_;۷oJJ K&7֭[{斜$׭6###G^~멩ﷱ JJJ:}[vA5bn~~ʽ8㓔nݺsy{O(]zelll``p OOOE}󋋋pBeeڵkgϞ:^TT0KJJl"*H${c] Np377MLLٳڵk7m ZEԼ^ziwwwW7++~iVVV7o&'jkk;88tyرnnn^^^AAAIF%uc= BP7R!$|8 _ pp@pYC|8Ќlmmlnv~}??K899),m5ɞyTUےMP%\2666)))..NR~u##N>}ٲe )Kk&`5;~x'''I$[ii))FRtVrTU"pzinuo^R^Ln,mdּB7kll,Yɑ2)KvEgk6$9~c[\a~tPa%W*&!7K[-ֵ-pi.sƌC *jP*[vڰa,-----޽KDwss7oyPo>>>J.055}4~[PY0:Uײ2, %ԌU c lB5W$ 8Ν;7oٳѣURy]Y[[ϟ?8~KQwւokUPBO@ZR$Z\fCZQM}iQQQDDD۶mMLL+GGGPHD ,Xĉ'Otss |E"QDDD.]FGG;99YZZN:<==ѢE{诿ƌcnn흖FD}QuuWتjݻ"888//O'ݎ߿ѣGNW\eOIkNS*nǼUV1Fz/^х.߫$brؠu:XYYM4ԩS|>?**Ԕ222ڵkѣ+VQ^^^XX؊+222'OCݺuƍgΜٶm-Zyf"vZyyQ޽{:~~~bxjjj)))59so>~Elllի\+Wݺu#UV|>ǎKDsݹsgzzVή8/^ήB[[[rVk֬ xǎSte; \MWS\\Χr">GDWxPgK{9WHH[櫙C_H$M6m4Htر)S"w]TT򀀀 %KJb}zzԽVVV쁚UAA $v)鶁d;|I #栢tT!y5bhTΖzw+3ίj7n8XSS߿o߾)))T#J9ׯ_OMMݿ333N>}֭;v?{={ƍݻwmXͮ(bbb">ϓn޼2NQuY3%E _]{*ZǫkU٬&$%%[.'' 66ܹsr/󋋋pBeeڵkgϞ-7nJ:t(<}8qKΝǎ۳g1k׮;`wȑ#|>coo/yARbeerI&fgg]^nK߾}b)2;88yyyIظNS*ثyX_?z:j $).|=ʆs;}žuttlqp</**̒ԈHzc#oc2o޼!Co~ڴil6E,6ĨQjn'^sSsggggg稨(6 skYPf}[*\eOW^uwwرƍª/LKKɓ'lyyyAttt>3$%%K.111uj˗󎃃CiiB"RWW4i9R a_1Luu}zyy;t蠮nnn>w\"Z`SN<==۴isAEuzϗ[kѳ*O}UM-))c;;;O>MhhѢ믿600a?կzݲ>5jԵk&'̛7o֬YlǏ/X`r hD4m4/ԳfͪΓIDW\3fL=QrrرcwjժD" .\gee{n%uJY~}8qB%C033۲eK߾}[,I nQaYv/,,\zĉ9ر"!!AKKrG֭[z9sܹjժ9s{wvqqV s'Oܹ3-E"Qddd%P8^=ID{O+**.^eoo6mڔ=zMijj7VWW(SJpp[HP$?*4KR#"yC!< fϞmhhhkk˖0 kooF^"b3i1OH$j̙3<oҥ.]_60SDf𬮮>}.#ˉ4_~N)ڏ@K'_sss"?CCCgaaq=HIDbJ C"zkӓxb}}(l6S}1c)Vuuuee%aʽqϞ=;w|?;w̘1C6E11 S:7nܸpš%Cuww-<|p-(wZ, ~~~QQQ@ t?^jՐ!C tůZKKfff+V(++QSS=zt[lvm)1k,--#Gn޼YRw/t޽ӧOddd^hӦMʇY!l9rHuuuHH5>`$4/~Ɇԏ*}Za3~aիWeddф `aׯ_3 ֫W/a~"JHH`SYj0Ν#9s0uQTTk׮O>d޼y nJD7ndݺ;::.3..>sII0̈#Q0ebO>FFFUUU#G(**;wŋ6p>[a|%R^ھyT0[(E>ِ=akKIPHD]tZo`ccSaʝ%Eì3F(?~رcVX3[oז}J$c>R>̚ QHH>gΜEkԄL۵7m^ď-[ֵkW__: '11QKKKngXMd:d͗ad///mmmmmmWWaʙ3ghhh;33a55aQ||<0/_ݻ={^ꪫ.-\f~3Rso=q50IKK֭amavۚkM So\Ŗ=lذݻw Ld@`uJKKewĖA^^^||O?d``rݝS-osjddyf@uwZLQ|a^0uRuZ_ p@/|8 _ p@vq%g{|+9&|KY<4 <pO/ <pO/En{;p@/|8 _ p@/|8 _ p@/|8 _ p@/|8u̬&h_R&5A+Xv|% 0XY :F&,6vXv/ ;vNRUxC6Ϊ0/"5j#/!(\G^BP1"/!px _Z̮fϞ=kx%DjV+[yϲT.٧Wf>א|ՐZ񵿸nOu@/|8 _ H8u/Z%?bJjkZ ߘ$22O$?&Nd'6|*) -&QahMQt{ O/By=>GTn|횾WFΫ\YުOS'6v/|Zmt<`Xjӭ}N&- \ldſWΝ~۷57&9䂼WyouzTܣ#gK۷o8p_~ODɓ* _ǯRι.01͟ƖWfbQ_Tc{W^r˗/]6..n֭M@2 9dOUz)7~ZhhǶR,^xǎͻtҮ]>/^4IU@WOW4-}#S[<櫧Yj#{P(ܶm֭[=<<7$%79֭[{ekk;lذ{QFFƈ#~gggww3gΰW۷~̙DtY.];dwߛ5窤 fTQ&eԽw?|}}MMM֯_߮]-[HիWYBPF\+i Xz8mY+N}&7ŋ:u$)޾};eeeѷovss<^~}k֬!e˖m۶-999//oǎK,vZ׮]#""􍫛a<WfUJ|nBOG=-..vOs{O:{uQRnjs)gϞ.]gϞM3{o ސAF<8Zv]E BSSS---5J" ? trr"o^^^D4w\gg+\F67lniYg<)Ȕ^x5`3mL(ZXXHk׮^x1a„>} 4чQ_xx3qJ_RI)2 kTTTl߾m޼yРAcƌINN\`ddFD<-o߾={ܥK'Nxzzzzz0@KKXlZ& PYׇ^'/""_ԦLkErss 򌌌(99ѣ4o~¦ E/4E5ztRt۷322$%.]Z~VLL̝;w>;vX+addߺu+&&0 ϟ?{lTTT_[nf7OE$ $Lsu~Wj|5%7ܹsYYaݻwׂ zFC}!(#ZKCO_+|WS#ʺȽ|„ &M:{P(tŋ?c>_^^.455w`РA"hӦM . -NO랆 !i}Ly!!!ƍ;~xaa۷ßu/8'_eF^"/4/SfV&]h0 Z!ÑN|X'RX 5!Ԅ lX/|8 _ p_57 ]hͬ%N@o}xxB [o: endstream endobj 944 0 obj << /Type /XObject /Subtype /Image /Width 358 /Height 479 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 953 0 R /Length 30571 /Filter /FlateDecode >> stream x\(bA=;zzzv={,ذ H(`CM@"(H/;R7 wRf>W&/oM5#e=7wPQQQ( CPQQQ JTX*@X}EJsxuK茍W ?jeQQA]&1Ur5nx>2(8_^u%7֜c~F!'{F-Z%V+23.?鸞:0S. 53۪I'hO+ZJZ_V\3ƛ7a۔l23[TvTUR ,*j[$L=to;Y@j6oSi^UR ,*j[+`mG =`{> ~-b\ѶYq15vsi7W.Ue+kflt_Z"7lV\D#ԪM;jݮnNδ&eJ9+.=aT[Ozzgg''g焇?w+3Sg}3K- PJ .[@ TY^G-[uyZluF]q;c)E@l]hqJ)ʾ[MjPG`:J?i  Ԃc$s GREZzoѪM6z JζR#(9Pk9oA1.{0Uؤo#<Kl9W~Zܭf8 q?t"P6 0ʯ,Z.*˫s¨/кYŕ+㚑6ǫ<٧qcR9yomi9ײߡOikjg9Gjߡjw_:vI0MYy}^堶3n'9sɃj'xbKRT 2n 5w5lQsݜ]vvע3Z t4~M-[R3y]յ젩PԳ;ctJ~=FC)(BW}rX؜:lQk'Y}=ZsW8l4a;؄WvNǔ hIUWr=g =?' J< ^3w+ Kn NR9YkPVp B*UW1+u;ܙ~m+[?|ڬwJvx\nI˶mAj5|HI=}땟歖7:v|W>,o '>ej~xLiܽz;rVMxw\0_?C.=rgvTޢv-ݠkC/.:WMS \E01oYP޽Ma-KoTZVH#P[vۊ*Y;.w<﮳pSaR&5DWo`Vq{A-#:[{PB͛ܭӺ0\O8uZ~6k=59=Ӧ9}Yzv%͡ڎ+v_UfTK1knu#Z.5wZmcW셷sSn= ^عNyOކr۠[ Nn0'v22~ݯj{Vn-VfkOa``^Y1*mǻğUWZh(U䲡-jk=O'*父?'n%ƶ7vt6N{?%~7oⲣ;˒_ڴk٪ e'~h^}Lx;y0{^^slf=.77.=V}x/P,ڭ^ލ/e2mncASm9guR޸iGM-UgB"3?٥4a;؄WNAo nbTOړޝ!qƹߩTnGyugeC JReQerX[cXUu[Sn|Vʇo߬p%Mg6YCgYSr%Wt٥d1 .Knn5V1a qX@^g֡25Ps>.{]AqzKmVlެ(;pˬGasdz`PIoص[x,QjQ)36),gXv֓mۉ+9VyFޓWwW;q1㸬l. 3؄W~~!LLbQF9{'/a'6֥5;hK,TevKU .7lwiz1{6n̝N9u7&vnQ)d;y.Ugܩs6U3}F=~kp.߈nTp=`m''9lʄ~~ †5ϘY5@Ku34FL|cMfG o'ĵ]@¬|tۭVIW2kf; [NV_kA {l S\'J:aWo1+}k1nگ)w'llEuRE]z\M1#`^YJecu!uߡSOKq48g[r4ZJ CfyYSR J˲X[_th-:#ArZnӡkˎj F9N1o{y`ަ]aLA^eJ&hj0qVRX[.%t"RfOZzU*&N] N̄>\B4jZ`n+wsںt~.1]Sz.+O1+Yya!iFso8{XJ%jFL̘O:wڡC٭ݫb=Lr%#]Oa2zʬ6bJt3w9Cg.xk &kWp"WLbS{%wu[GMI~sm/BGydUJ5вM%Ǝg ](ݫ i{)96x,~v{W9o|oNg  ]zn3WE#'j8ըzm{%DޯS^ӊ:vVnzW \o8(:sSiUu߳Wo؟1pw0w/BRfM>սf%5.93t;O?> ]xlxc'/p,wߡIKyC8 ˪ZlBj1u]ϮmYs:o&G#}&PeՍu=NzHszu߽:Oa*:d3*Ppstn٣ Iz۴̫_s#>٪7h\e =/{M٪ 1=}t֋cz u=aA]//BQ־d@SnwyC7~G社VMoe~ʂp4,. Qۥ]#=R>؄Zigpi׊.xG-"7CW*{q-u~#I-[mݮɋ`g]/¾ V+iV(= l]\?>gDQmھzpnI ZESONy7xC-MPO;tTTTT.E H@AAA H $ @AAAb 1(((M))\]_||&,)): )II_\\CB" ;:nqGAAb0%66YLLdezzx{C`JLLgTT4K\]}}|裠 1wkDD4~-z-<<  )QQqffN?p8eg J$o!50NJJcy7o%@Aijĸy=뷎 ҲRPPhc JS#ڝTWr}eguCLLRaa1S ^yx3#{E|}f͛׸XJJÇa[h{ՆM`5bܸa5:: ʩcctff8:ps$yi @3nɒ%i)**NM>y5%xhժ*6ym'''__M)SNEEE q'(یĨ9cdb`HCnTTTR##*1ڷo_+kaÆ|X(m󠤤/_H ӧH>D$&~HKKSRR4hP6mzsθ8yg:t~ccc%$$NpCœCs͛7wuugŋedd dСôi l.00]lku/nn>|Ob)YsG^].Ώ\`(R>|ȬֶXz5߸q v>}8VpGrjii |stԩPUb\R=zPb 3::ǏCf v{ Q/g xI@@Q?j$۷ϟy{{U@޼7Gf>|WF 15A681qG B\F ?=87rHu^s,JL"M ֮;wUTTJ%$F}Փu/]yǾ/> tpxߛ7 mF#M(}E,a4q~WGא0۴iÛG (驩\ƍt81*޽{CNHM1b!=VՕOl0޷o{,--J%$F=JxxƝ+nx'vᄎyHu!0ǐ6j2}I@2O}ug8VInk_QSѴqX.j"1"1\-EJEӪaY@b 1B$@b 1H $-Gb 1H $($;IM m+g{?oT?vxkǦݡ!h}M`li]ӧW -߼qM7͛7f25i눷mۦJW &Ճ Ʒ)Mqq[hc۪:cq%Z[=1BJEm 4ze+5^dq"`VN=gh]t:p?٣cKzU:u:Q#Gbܹӑ||ܱWU"@-#辰^Q x+]ۘ1^N!3h-K 60`($T?b}?*&/Maa<^›i[rm3OrCڅ*!!NM`C\9(|eT5$][舂KYnҞӻ*]9jB Y[gU&1du O>}Ԕɓ t!18OLL P8])zlO(?}dԷN6ݻw\`7 >Ex!|نKsgVM]H$8ӑ6?bdx1] ;a T: 0 BaK׭^IkJfj cn.۬9F^4w/aC5Vpy)z;Pb+J{z{UzJIuXpTXb08`*}ju pvz[[ 0%ay߂ ڧ5Wҁ=tmXvpz##8K͉uk>ˡH޾b6'''owjZ oz:wnT,N8upAe>NoO0]vϟ>4iT#G`j|-.l! !II.]:T8޻w/!|YuK{>E_cjbT7[>vpςچ9}igEb 1]k=:v!aafگo_;w6."1haֶmJݳi}_7eH @b 1H ;$@b 1U%**!/M61RHjx#F6}(MG~61B@Ab.1FVs$zhrmo\H FCb4S-@b 1D31@b`1!1FH $c 1 +_߾RRR?G׮PO_d}ϋ1*}#OzaJe}{d>߻Ab4ڲKν{^&ĨvQQ%1ؚZ^~Ѱb-7ڹoY111 5O)&FkժoS&Sz0fm ll7`@֭[^"1}-[21x+tr8qQPb oD%+Yuﮭ:ݽcL.4t [6oY[7e}߮`{xc WokUr#|g"1D3[7{kMII r~/<o/ M~%ա%ooܸ~1 TL<OܜG7vѳ'.oUڵ[fcgވ;Y_R-RRU7G@ :Y1n]\;!1; J 8@O"l;:X|?oʅ ϣ gڴiѣGw*Bm[7S۽zn1FE+:u\`Q RCQy?+YYClBJNooW=}%+/1L$hkVܹ(L-OCNnwyS%...+ۃR<<]si䡶{EZѣF25Z!~meb oDde}3CQPZ'kq7{`Y߷+^bBv&Cc 8ww񎹩˧f0Bn^L O*MQH ]IC] =eCd{w)4n72bT7c4& C{əӧ>4⍌U $U%% bF,$;@b 1H |_ *j]S8~IMC E$E"bB0oFfR5ڴOOzpi}|_P'x$FlI8*5tDj\; @T#RR_J-i|Ĉ(H :Ȏd}7+߬f<̷3g/L"*b+HG3g.x8fKv,Ab 1P~$JI{W?Csrr_;K}ymEa}IJIz,bϳDxyI15k@!//ߣ`ءCWÇW^]άaqZR>N<雰e913##\R:Sp.$&&BzLLLdd$lڒU|T[a,m@hM1Μ9ӻwoGGǏ?z1\FĜ]`ǎ/^4555-g+Sm{V:0rx^^^xxxhhhnn.| yf*%^KSUjIzzʕ+lbhh[a,l@h4,bhjjr%;]v}555o;wVTT;;;۷o9eÇᅨwM]]QIwr@)]h8>xn(HzzUV|~`fr8@h0+I'z0a̙`Ƅ ͛'%UFGsuLflP z{{s6l޽?611 \ԁh۶mXX a 3#Tx+6'gggO>!+3o:!b [NW58yoJ=>$%p.\qߴiXRJ ~9'N| lSW>)Ǩyt"XP.!\. N81Q/^LEBG>12>i^u~*쬬\Pt5}؉f`Frٳgw\|$cy a,J֮]xիWa<~ZK48y! 'k%Uڑ/_bNIN a孬Ď;P\.Xb&;vL('k!?Nϟ?_f p3["HԻ|z`FJ &BBKE%O$%111vN<)%UakkĨ:FΝp\~ժUSCNx8J/Sׯ&W9 o擵|70rY@%GfE%nSƒxyyׯC%.\X|9D,ZR ?~xar1#Ɖ'h8ݹsZ2dL###!m׮]``tΑ#GBH{.!dqjW.#h6NP c^9.CAץC ߁Jllln߾ Cа,S cIRRLg`Ν;?}Ԓ* NT%%%ETEПGC-nnnT3FLL Xp.)P }?(8J5-0Z"\|$u])bx\[.Ppk׮^jϞ=[ Ν{+WJM6A:۷r1h("%/ƦLV8A`ldef&pB/--p87~~M>KχNW BBVR\?SM cIHH>1[Ҙ"F@3?.%>%%%5%%=="P1H~bPA$ $oKwQ~Տ| T%]2ǥ{Hw:32{Yvd>'1 ѡҝ%țy.HX(uQY.Ct + vy 1(?/';Ovb7&zL՘1)Ǥ5dq ۣ޿PItG-)#SRRRʥXʥܓKK1K=*nkt϶@Ai@AAAb 1PPPA 1PPP(((H $@AAb 1PPH $ @AAb 1PPH $@AAAb 1PPH $@AAAb 1PPD\^ԟ 1PP"1ԇ,Y@b 1Pxe\MP*Ab 1P2TYbnnnZZZ׮]sNiiiskk@Z!;v,ә)8 JI ~š1~ .(Ab 1jH t___UUU;;;* ޽{ЄD]]](p ӧO&&&?622F@I\k+Ơ$&?} Wׯsrr` xm~~rvv6Kjj*dMPҡ۷p˃m333j+>>^H $FM]Dy1-eee9$&&R!lxYTT9|sNtt49|dM~zrr2øRīWD PjA:{7ҨKgGb4Vb|HRR/菖r@555aa~k׮~:^|I `BhZZ E~]vc`Ĩ]bDDDwS DtjP" G1 yKKK  ngggooO L4&=" ``MSWWOIIIxx8XASߺutvVh+TD^HHs &ׯU`~_Q j+"XCYUUUԍښ^ـjittt>|._1ޏ{>Q*A@4w%H $JS$@AAb 1PPKI(( OM(( ͚ս_$ @Fs?-D>D.Č鵅Fs'CtLMjEE|{lEbw%QMGW֭/&F|*(bLNdd|Ç  ĉľ}Dq1IiiY$..^$s^FbgMSS_?!d=X#1~P!1D0!ҼQZJ# AVuZBBȵ!W!PN,̙d~ő<Q$#&% $ϭ̚E=M U FnD߾dCT(L ._nsg`-o7!÷+TH 1:ֹ1#b Vb`6bW^'A>d\4^< '50x\*% # nMZn#1pqՊk%_JF$ɵTA00 ]݋\W'53&=Z)z5:%ƑKJOϊѥKdCׯ_ǘ7 bcC&RƳgMrz1ZJ71ȠeKרm t$];}| '$1 EVk%\`tHV_;pHB9…DԆ`b2ٹ__r:3aqwYM@+Z kq$OcxgCMCO$QUhJH $F$@AAb 1PP[@AipXo!"1PPGA53ILV 1PPRh@b4Jb8!2+VMBx@h4|"1Di>a+¶+j"%qHNߕ 1D_ N'u4HD 1U$#;lAp~HL%dη fQdbla#M ƛC]7r['S+qih1F#L&2#iL=C$ҼIb<(%#+ěx6U2^_~"]GO Jt$$t$F%Qgp!1DsU$7@?T$o)_xI8%7*|̍ bU|b$WzIK@dgh O$H_+)^$'wAP~Eﳲ^ W1tcFxu$-b`11F1 1p89KGeED2H}^P\GT|@ jB +qrBRb$9\' =3gV0W> e e r/ć Vimm=>\ ?>3)Bn*1ޏA4{> ɐҀ|"1:T ] ؏pU9QPj]U$@Awb֋"1PPP7Eb4@b|ҬUiI3$ @U$CD^kS._C\4w#1Dŗ̌)~'//l}b<!H0꺇SRfTYa6Q[䷫H $x(tQin1FW^}rCG6[b IeOu]2Fgn]In@cT-Lo%*RE H:LLV@ůdƿ5>`bߞGkvx~FIƳ$I pu]6@9IiPggu6z@b 1 5菉wffNYqqZhtqF8 ˾fqddE' _VC#y+h)JpJ7`pҽ` ^a ZP1Af5xV75ƈ3|i~#Pk::,1< !Ās(81tcD>8';P(5$R8Vq8H^C~M@DQLE%#w~ 6(҂4HqXl @3x~& oZ+k%$3W]&Z -/1(WpAK^I3Ix7.lcc0u \hLJoO"J漻֡0r:!ΰ3?9MǁpJ8e%1 A%(|c 11PS7FPL50$^$ A Әu1\ 8H VQ`[ֱ!ΧOi` 'ٜ􅕤 ڃ&XG t!Ā>@`b?U֒.A^ˆp`& o<}M'/htk%%5/H }#[_c_sb=H $Jߕ 1H&'H % @b71yE(( /M(( Wԃ.YGAAb 1(,h@b48bQQu1묡Fs'CTKZZ#QP÷>99i/_..,PS&FJ"K2"+%n1P+1jU$"5"W.=Y@MBG$ dJH^UU SS";l>u6@#g$Ύ{>Cĉr  ׯvf&-͍Ruu"|%G?2! `̆8B[H&A3%1mpĀYO% 15 hqwtVՐ+A3B}b}g$`m1Fb-8a|lGDTXQ!P0C10c Mc/01"RR>5c˵LƆZI15%9PZJVSu Oc$XXBk%cpgޏal\q A_%FN!> >N;/9wP+I +jQ_C016"1ޏhb G c $J+c $ J'((H ቁ@AyEb4PH Ee\b[7 \(>֗H $F"FvZ,D#P \1kg[ViH $F#%_)V$6t( ߆BV< p],-)*+-yI%ľS(]^@b42b0ZH8aw L+LEVĘ*BA!?M wk[ ЗH KE|"1(U@ij@b 1((H $ J^DQ޴ # a+xnf H TT$qhwA4JH.bA*+ V"R C4ѿ]>ٹXG>:/]" yjEEc_ 1"1||HJ abR\11P1~ .(Ab4Y {$6l ƌ!#G*="F ڵ#n%SH$/^TdljC]͊o;t >>p!Ĉ GGu:DnlìҒ5,ۻ7)x$F=44hLX%۴=׮%I65$; mlYGE uUcpc-[??BC$ Hz!4@b42bЎ {kkrc|ble~PV!Ƒ&1 iޜxAի|Gb1x# !+Ab4,bz7ѩ\\91OB]İ C yyA$H$WSPwccr jUIZ'1H \@bV`ՕPQ!}B.3UBS} UUPu9CF,VV:k rJp?mD^}Pһ![׮?\+") Épd줮 qym[ׅ x?G{>H T] ]Eb"1H@ Ak91 EkwG9((O|20 YJH $+潫H $Fd87$@UqhTE>>&ķjٵkڵT5>1ceecV C$%zȥzU8xplQ'NBM- CÜO!:s&R !TDl5jĨ^u{wj``aiP(,fC2Ę>=!#Q 'N߷/ WËT^Og@i:ilfŠ7mIH $;CU@P,mF„zp\-Çy`bNW'khdyS# &)`'g% @b 1}^^_!16oN:HO/C*%H|yȐXJ9/gB"t-#X-oߘ!VH $F  OE&% &w|khɨs*YppON&em%: {ڴ" oCH $VQPYK-Z|祧|YJ**'Lxb .Lj> tƌʑ}}k%@3g2ڴ)DÆ9yCA!>`OW $  +[q!$јgz{>_|!gS$ 4w%HJ }]t<9&>(H $ @b1E(( AH M4k@AAb 1(h@b4&bDiSG=M݇NO$h#NN]_ቹծf\};ĨyQ!%>hK!qQN@b 1DyV(?~x´i22YT" %vӏ.KM-OVf%?vllR4~dLϞt,^"Ǐ/3lT;cgvYVL,vȐ|;;v& ogqXXIݵkƙ3HI[I=JK7 ']^:V:xbe#|#"oĉiqCC!14_?p=.-RsfId$gcvx!> _`'U5h(pwt^S'}Yii#CcQH!%^M.3g)Vf%)x!LY>y*?-&"1M>>ةm |_ hٲRb[o߄?e!M88Tw=9rX`vݺw>5@b1 DRrs1}v/n&Xݥ jㅴ$% D$\+%Ч5U12*1qoxzR9&&:Ǐ:?m`0mQ*:C@ηYovB TL):ɚ@b4nbޏB hQ'MJټ9ukDF9?OI F?3a pUk%@z:ySYYJO8jK۷/W/EV;Y3]Av0JBF9:VΖ@b4Y J@*4w%H $J$@AAb 1PPJO$ J$FF)suJͶ!1PPH $ 41MmF}{3b85\4{>fwqTbދe~'>n@bT5#2+AboWˀ[X~}V%@b 1Dr͢F=jEҜgQ6Y 2IGIZϵjvjo~4&Fڧ>2g%Jbz9D=o@yπlQRQV/?RHV+n?ޭ$6"FP fi|:%hNDXY>H $C01~{R[QSRдoX i8eš9\noXȹU9lsrJ, Ө~a9$|K(b|YSPZ 4DESZb$L,("ȇ"1H H^t/b#kbQH6 GK^ L8eJӊ)2vEY`m߾$wVHmya{ _O@b 1R6Q^'<˸>S ˡ--#N '%m`%kC|,` ѝl P:|,KGb 1$ Ģ]m* ʄY 1FIl>hߌbKېyC6FPUc .bh$Z ƹwp *h:MOjY}bdJ>(e:y$<$6)٬$`4ï!~ O-^V `*l&1+.41P[]dS~7X!}ieŜbHnx1|&8[t81nE@+YaBA)3!ѱXt$Nx(҆BVb6$:Mh* lH \5bHfM~_d5̠"m1cK`֐WѮmhچ31b 'WT _JH $F5O 6.*pR< `BcIv'i#*`9ib|6xUǟtEC_@ J,eUR\#"lh@jz'{oRHPC*iwg2xaS^}wwoν3sH'?_ Ht-""ADdbwMD R7'Ġ,uuE"D"bH$"I0zJW:J6eѯGPE1K߷W^*4ocޓO$jr燯V^[.?UE?.XߧQ~GY;8gnST\7ҘTvb<+ أ*\ڛ1T8imM]Ou 3T[gV]ep.+kJQx83؏ɾm[eD@2lyfsHe gz$/<Ə!?m0pCh?ؾr:~F?5U/_-CP1cbOPj9Jb&.!9S4HD yaby|u^koY[ݙ(=%o#=]v\S*.VcC vǸńW4ѬP\|?vϜ ^?~ R$R Ƶ垣Y|2G"F+<5uU!@E͍݇%yS*y%5+1d` 28UULOO ac$1 a1 옒VWn4ܾ-qc}mms+lIؗݺT(s+x$X$FEp䙻#FQY99Y= -J%~ C:FCC=\C^}5=ۇYYݻdjF+áCw@IIl^s}EjbJY.[{^das~^d3C2m#M @jbd %dDnSw SzrRcP+ܷŐD bt*αڲԆPVD A"D q?HxD"ubl)MT[ Y:GΝvА*Ȉy<CN8Hrr[4ܸ\\\1$[F%Cosug)8fiqځCu߱ sQ;j޽'g'#wp͘]V^;!jնy%xK/ö9I'ڪ}zKp0={^`~_4԰oaC>}٬%pۇ3ܿXebb{133ʦ+,,D{ގ!^_]-]BBك ׷۷o 䛷)wgggTGG`TyhQQQ!]/111(ĎW`GFFF~~~^^^r-auέ=Mv i7∳\[71@ ß vq!5kkxlmշ0 F^& > Nȿ'+K 7r{WֳPq5""U^.GoiiLqqޙƈ@Ha^o9KKKaA`KEEŮ]PAeؔdMC.\Pyj.]:mbb"vtMGl!IsGapp0j?J||\DbxX̡5c_ɈʂPi<ӁEGc`w𑟟>\HM:onHDӧqpph8F`/|5::Wռ<~%χcUx\N+]]ei?[1^҉[377yX _\[Q.N'8 镔/,, :g'`5 *TQQAb'3ʎ%,ãU$'5ǃBvvvr-/F! /;=hS^aȤY F|boiTYb_f{YX?sU%9n/g-A!ïIII.A ܉Z"DR1݁!>F%W"Dj[τA"$9zU6kF~kRee%gy[M>#"CTdݕʮvvll,I3"b]c. q~ΈYaS쳦ozT1laO=ƎesEXyyB &DX^6 ˷;mP݈wvU?霱SsR{ON(l7♵o{+JzMJۼ-hjaԉd^@FFFoY2L&!&$#T\~6^s*<K _ؤI_;֭k*LK1"ѻ7۱C@'4‹l9BI[ckڲeN%yֱHm` qFeMy p YSW~Mf| |׮]<WL&!&"TX`EYY,7񿭹ԉ㡢A9#PsX DшB26Uy lzU3[J1xC-?q V0Ke9v|UYpo FZqSO]ewzE@%bIP?Ądn21ԉzFr*S)rtd#G lJU@ׅ..lR!'ߪ qp/)ϋ>-8g( C;̽YW[:ӝrQ/#D\ 1QbB2BEoСC^C]H4q0Օ| Qz:׿W.Uc&bc4#ƾW* 0rH ucE+d b0 CLHF|x*,#NC9#BdJ|HRWW(S)z}v 4.Lԭ FL[͘!--;O\jBB 5cHFd `ꇘPĿ Ά :q sVI 5c0PAA!BL0`ꄘPkI ggg77729#Bx>`3D+Cc5gpU81>P|3 RZP~mә3m& CT#bhP~cư"Ӥ|A"4MD ĸH":%JAb %JA9+1ɔ(uKO=A%Jh'bHPD D HD D Hݛ9Y4ܪkO֪ll[b4=EImnjmajv1pݤNgbԓ1eD "Aĸ+>J b1RԬgDVYb|ˏr (}(u~ DJaU|Xz$8Iֱ011>sNIĀw\4D8}sqf^7᛿]Z0(~q͛7=GC]n]nnn{U//I&uQbL5jeBlF^ߎ88b쑱^^-y&Lٳ|rccD ף5\؎2<%P$cL-,b"ʂw\4VuhICE\Ty\6!sr? ׬Ylcchkk;nܸL{v(CLy3̌ΈnYg?cO8[o5*55q4WCŒP,'MrLH ͅD:99=z*9)NP$k`/Gǀw\4X}+\;~cpԷo`b&z֭e駟CI``̙3GydkٳE>}%Ǐݻܹs:1oAc6)I,O׉G&Dםo4?6=嶾} Sv9{k׊G:991M95˟c@Xeh1GSgepB23R|---PMP$FTdNk+˄nsp`nmq744|g$?BѓϜ9rJ8ҜH>m۶ӧ6.hΞ=cOWZ5k֬NGu`ggfNο_ux]oI>aQzzz0' Ȉ|i, ,<#䋅YX&QmB|c91llE)"1ΜNLMG0%wW .~;pQg A$ƸqxM91~`/? ڥ-_(U* 'bI-?eCP^Ch~EEv#.( F'c3OJH*#8帝m| I4sTƽ ͡3? ll^`bc=AAH N 弶6.cݻwOK.yyy]u{@Ud)u tL~-1h/xQF1$P$ 賡[FG+O98ѲPMLvHĀwQ 3+> eH-cǎLJJ3f (߶mۂ `)))s}ꪥ흖6o޼͛7GFF7M6鎮NA nX軡V-Wbddv~Gg>`$bHL\ &p $%J(%eb O%JpP(87(QDIu.! endstream endobj 953 0 obj << /Type /XObject /Subtype /Image /Width 358 /Height 479 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 389 /Filter /FlateDecode >> stream x 0t=)mh> endobj 949 0 obj << /D [946 0 R /XYZ 321.066 715.203 null] >> endobj 950 0 obj << /D [946 0 R /XYZ 81.963 684.05 null] >> endobj 234 0 obj << /D [946 0 R /XYZ 81.963 551.759 null] >> endobj 238 0 obj << /D [946 0 R /XYZ 81.963 405.605 null] >> endobj 242 0 obj << /D [946 0 R /XYZ 81.963 335.706 null] >> endobj 951 0 obj << /D [946 0 R /XYZ 81.963 254.012 null] >> endobj 952 0 obj << /D [946 0 R /XYZ 81.963 242.37 null] >> endobj 945 0 obj << /Font << /F25 474 0 R /F44 651 0 R /F43 652 0 R /F16 475 0 R /F39 618 0 R /F46 674 0 R /F24 476 0 R /F38 617 0 R >> /XObject << /Im58 931 0 R /Im59 944 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj 962 0 obj << /Length 1770 /Filter /FlateDecode >> stream xڭXKs6WḦ́9tƕę:imy<8J%6łȩ&Ӌ,orvl4y#,Z8'Ej6{=I;g,aÙ#ggnEL+ ܹ1/k#V턜0Ԥʹl<ƞ(G.ժ&+ D6y;~C\fx+ Rj)`cm*ݦ$s:AYY|oNy南9H: xcwuY8nRpTe'DʊI%MP8~uV[J䠳]O|+wUVU$Hؑvm!S2>r.S Iw E MIVFXt j.౹Y .kjWFsBY-S.(vsI:CPi-!;,EJGidŊ艱8 -ea9'?x=toȀ@!:>@Oig+ݒje 3TE[]Vg ڤ.@nQ}{m<`xD`1E`y%CGV- BGAz|9"@3Dy(ET PPʈI?(ßDy1%gQ(S;bQz~_ȁwymsVv봠m=$)VmڻY]+ f?K b$L'OA{G­*I))j!N̈́ ~kj4]yFYe[G|u(K01e (d`<5pCu04!L1+iP $@~}^aP̻^VpOήDn,$2T ܕ7 ;GlQAvR(SoE6:Tv 1qbQ);aOE}pH؀Yj۬u6rDX&dYLzl"x6'vYCL*VYD)C =LŦۚ i6j4NtcQM ˶2ctsH{2& RJ~oRk@vއuwb1jt{ͥ ۺӹש:jQ'I4<'b}Vʎ!.i4i1;אvIV,GvצF ~1I8pB}Uh '|hÛ]އ<ϓ(gY1d(JCcEK 7$(vgCN ܙ ^St'PgՏLz5Z@Dz{V{VpB.m N@3bJ7~oTgC=9m;u vwPӣf?FwiVðM?Ǒ M MׂqXY͋m t %$Y^M}=ak,msIxڟ úܤllc^lЊ~qug\@-:7ZRk~>"8iMRA5mr+ͳR{m۱-Z֤ \^O,TYf_x"KOyQExw/;6J5ˣzs0 endstream endobj 961 0 obj << /Type /Page /Contents 962 0 R /Resources 960 0 R /MediaBox [0 0 595.276 841.89] /Parent 904 0 R /Annots [ 954 0 R 956 0 R 957 0 R 958 0 R 955 0 R 975 0 R ] >> endobj 954 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [205.541 574.25 216.498 585.721] /A << /S /GoTo /D (Hfootnote.14) >> >> endobj 956 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [178.563 557.811 189.52 569.283] /A << /S /GoTo /D (Hfootnote.15) >> >> endobj 957 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [182.954 541.373 193.911 552.844] /A << /S /GoTo /D (Hfootnote.16) >> >> endobj 958 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [395.365 514.64 406.322 528.436] /A << /S /GoTo /D (Hfootnote.17) >> >> endobj 955 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [448.603 197.877 513.345 210.451] /Subtype/Link/A<> >> endobj 975 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [122.809 184.548 224.653 197.044] /Subtype/Link/A<> >> endobj 963 0 obj << /D [961 0 R /XYZ 122.806 747.976 null] >> endobj 964 0 obj << /D [961 0 R /XYZ 123.806 712.73 null] >> endobj 965 0 obj << /D [961 0 R /XYZ 123.806 510.655 null] >> endobj 966 0 obj << /D [961 0 R /XYZ 123.806 486.247 null] >> endobj 967 0 obj << /D [961 0 R /XYZ 123.806 446.729 null] >> endobj 968 0 obj << /D [961 0 R /XYZ 123.806 411.241 null] >> endobj 969 0 obj << /D [961 0 R /XYZ 123.806 391.813 null] >> endobj 970 0 obj << /D [961 0 R /XYZ 123.806 367.405 null] >> endobj 971 0 obj << /D [961 0 R /XYZ 123.806 328.551 null] >> endobj 972 0 obj << /D [961 0 R /XYZ 123.806 292.399 null] >> endobj 973 0 obj << /D [961 0 R /XYZ 123.806 246.782 null] >> endobj 974 0 obj << /D [961 0 R /XYZ 141.734 213.041 null] >> endobj 976 0 obj << /D [961 0 R /XYZ 141.734 189.131 null] >> endobj 977 0 obj << /D [961 0 R /XYZ 141.734 177.176 null] >> endobj 978 0 obj << /D [961 0 R /XYZ 141.734 165.221 null] >> endobj 960 0 obj << /Font << /F25 474 0 R /F16 475 0 R /F46 674 0 R /F24 476 0 R /F36 596 0 R /F45 668 0 R /F43 652 0 R /F47 733 0 R >> /ProcSet [ /PDF /Text ] >> endobj 983 0 obj << /Length 1173 /Filter /FlateDecode >> stream xVKs8 WHD,zqgLgX,l/@P83'2ty>pl %ϬU!HAu蘧 Ep4yeW_/fOaf|v54fޞ߄qN/DKdŵb=!l_uOs4hfm"|z1OMMױؕQDqHT-fk؜JaW8c ,*ƺ)iJ p+S*Et%KµUz`lx82֚ m}޹RE2Kl&N(u-آ]]]hC6w#*s՘D_7lӗIE,hP BDcHnLLQV"T [IX$+|ߗMUs{~UCWUOG|tdSl:a شFߡ5,G8P/od] !b\&'er}$?)ZL?m2Oa_pn`PȠ$$ߛU 7$$ogwO6N|PCdp*4;;?Hy)URBrj6u>i55 e+ذ`7x ؎&s_"=C=MY,X)5 f/Bˢ vKOIpuMS-r E-,ԗn3vk7MAE[AG}~ڠyձV,aK'}X"xOR-夞r@E>9"XO9oZ  i0^" xϫ8LZ\*ܨ4޽W`u"xd3񮷩^\Su{["_ g?d0(.l{rlyi- 1K$S= /,yaU,sUėG"6ve/8ҸNEԏR?#i1 SU,xЬ0()!PGcN^texynP_@E\|LU.GMWk ID9`t5Q$w( \چ}>xK endstream endobj 982 0 obj << /Type /Page /Contents 983 0 R /Resources 981 0 R /MediaBox [0 0 595.276 841.89] /Parent 991 0 R /Group 688 0 R /Annots [ 979 0 R ] >> endobj 959 0 obj << /Type /XObject /Subtype /Image /Width 1368 /Height 70 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Length 28084 /Filter/FlateDecode /DecodeParms<> >> stream xw\le HE+vXIK1,=/&/ɋ1=F1]Q*.w1"e]@gsgs:0 `0 [ `0 `0`0 `0 ;0 `0  `0 ` #`0 `0;`0 `0 ;0 `0 hmBݳ&M999GQj/_n`q 008WsiZlٲW^y &&QO?ԕ_>ܭ~*ܹs3f 3gN~~>|bݥ{-t-RSSj-[ִj׮]A֬Y3x{yћ7nln}M@VTT8>nذAaBgVkGLIIѶAoMےcǞ9sFȐJ?9sf^^^ ټyغ6m$nwnܺR)t]gQh `0?m:joJJJ{fܪ-mL6hРGϜ9RO>ٸqqWZJ]5m1cÇ-ZtqE9sf̘1QTb&Iv˻ZkY|y{;[8^nnnZN}Z6Ots~<ӦM{w"""8?d0aٳg~}􉌌/m4fͰ#Or `0̭Im˖-,X4nܸ .* .\reqqq~x E:thڵ[l9}c4):{+CpܹS޵k׬YHFe[U>11ɓ)ɲYǏAuzΝl?CAA /=3MҪV.\x76mڔ[UU%~*w:tn$/00>ɓ\ /ر###~hfիVJMM-++=z MTYYYu ϤKTТm1sLASSSgΜ)ngddFFF:4i["'ܖJXXX^fxС{'**#UZmEjjŋϟ?ȑz|tWZP}Zm.jTdggS.] OC |\*g>ydmm-B_~i6UǍwIPVVO>}…ݻ[=zL4iƍ$gݳf=zZ^bž}vs~~~~:R4==}ذaqgϞgϞf͜9S& 6l!!!{ X,΅?~<&&Foof mUq6\K@6c{eY!{3fuuuݺusQsw-59r%⋎1cƜ9s>..nĉ-++s7ESZ+ ZUUU=zlkQWݜEm Rh"$L&Sݱc?|r:4}(uI`0 :Z_z%јRC~qqq⶿AAA+FB~~~.V| >!!A, wQN[3&--mA :]Gs倀'nڴI*N0:hnݺIRuTOTt:ZUUU9NTLLLLL[0 R,YdaOn۶M"q ARtl7j)ݺuQ*Mj"/eDfh4gdd:b(4Mmmm=v7|#8Nܖnٲ%44T޾}Çcnذ!::zܸq$IN87HHH8pZmٳ]裏644̞=7nNN8el#CLXXX!{Or `0Lj_[_9E7y:k/;;;;;;++kbi*_T400Pj 1z׮]gn{nUy//*!!aO>uꔻrxI= LnhhlMwkU+Jqoܸ-}~駇zHܖd)))F:{CMMM6mtҥCݻGmm[ubɴKٖj;׶%g޹sgZZc^=… M#;zj1B0t:ށ[_PGKt1cΞ=~ >~ȼhp.JJJΝ{ԩÇ_xouXMiyz#1CiVC` `0վz7GRfE<0mڴ41ؚ5ky kVh9s ><11qܹ;}fsttܹs͛wѡ^xxʺK ={lv[ڶllFi$}ݷlٲ}.Z{ůV^3wܾ}=<ǯi[3&44_8q"#G@Vvc)AtXN.+->6Ouk.r~*3f̘zjG:u8yn^ `0?,&N}޽{|M"DӹBaa>(d`0(((hhhS99rwٻwV `0 sKٲe˞={֯_|7#0E}}}N q%Kza=`0  jVmY؉w:hVVtٶ嶜״uDLIM;]$X"ƌs9R?`0 ^7`0 `0 s#1 `0  `0 ` #`0 `0;`0 `0 ;0 `0  `0 ` #`0 `0;`0 `0 ;0 `0  `0 ` #`0 `0;`0 `0 Nq|ZFsg:K.13EW#?k0]gn/={|eXG`0 `0 `0 `($M?]˗/`0 `0 Zn0aL0A`0?={ð7rPZ^z8}z΢wS|;qʴ+`0 tf: vI=T!Ub! He(or Udix8eYYcY8J뺇?0ӫ+SyT?}ºHNO2'*ANs1<scxiӼ 8cu3<% ɤfE񫪮VT|_lLvŁqWJ"{ Zm^^=$n`۩ȨE AtuuӠcn k:|irkZ[c({.//$ۙYBI$I 0|py%&#s옑a%)( 4 l4&OU(ڗ|[R'IY!r,`0Z`>C5?3\JȀU39eeeݻwOLL.B*{OzQ_ucM^qZVU Ud0xĒKt?ǿ7o^'j)4sxpj ef6Zrnj⥐uP?H{Rs&~aʆ}>#g2_U>74m>ʷο."$~B} pr4Ug2uA@I$AP$nO$I N߽r>r눷xr v`v`   㦽{?~R*jlN.HEaXJ7uVZRnؘP8]/mL*~hYuv9pܹsm6i$ ;r8w*te>31~+ %%c]v-;;{Сya}:BR8}]?Bgd=:?m8IjZ" d98NVV}T-ᡇsDVN뙨̄ݻ%%%߿sD9]Pu.=oy ѫd4©SDA1~|7Of.EC&KK'M"}32ن Щt{_0i˵ dhN&j|>|p6Ӽm`cx033azI 4FB?\xM.Cy&Q*@@@ `@L '1X}A F=Uv= Sdz0*‰̊J}uc4,4_ɱ,q|s0{ 'c/&4Z 8[H4lMM=zjRL&C4q t9s&^>lG'Dk ( HdžEUvawCl/Jaaeee灿!\ѷse Zoi?k߷[E-[8"D]6&n-8H$-K:R[;$)RJ<AE)U>r)%r _Gqk:[h`hXo}ݕ3w\]׉Vtmqo Y\,9ȻCsں/Z_T*X|ypppmߎpYۻGwC{)58HX^+Lۭ2؟tK.ytdY{x+<" $(L:lHS 5)) ڷW>@F6 *E}W . +// #jjjuw }uvcRlڙ s-ӦDJ_ 9# ׉STt8I݃5/0\PˋEHݵ5 .u{e9GW;8,M>pC45k~()6lYcc{x]7YssK=y=#QQ_L&( Tzzzi`TW[ p `23)4#GƄ4jqs]clEWZ%PPBkUN35 u]R$n_#kf~Q?9l|W' ]r6?ǻk,]%q㧓cٚt/vPr 2lj/WL.\KbRR"kx0~%gQ('`îCܕoePL0yZ#κh`H)bVA=q O?MeY1~wDǦJA@^H.Wֳ11` II?^lB(,HJ)S4MQ .i*3S$AAxnۋ& CB bht'uɼZyjkSꫫ;Ac" *:u:7']I{üU}ZW}}öR#ZPFq<%  p="@*rH~߳nYRB0}R܈̢@wI*!쑽ZkSwq2Ft8O9#%^[ڵk'L0`ۣ_3V|BxT`"WT~na^88r!zln߫0 M.9I  gr?4"ލ7XuLs@PeziT58]C{K3(䔄"CC4*/EWpCqJJy`azXj-{c{,**8p`aaԨQ'NLmds3/4g1&v(,J˙Rw$ YINNR^+\}wv:ab[oA.G~s6v"YVvKpyhHD: '#9N0aDUeypH$s$sqMtPg%x]~FGhn(:a88-Kbo4Z~3Pn~'**d4DFF(WdX.rsajѮ]#h42D;#V"fF}:1dNP(G8K]?uq%ew[\ XN`8{"𓙺t߬~RA`fGLLq.a9m|?h}#Czh8 @h9ؕ:Yrhe9BG<_x,כjuV[;ma6[׬A&S<#AAz#բ󂷷3^zK@b e^^=7V =%!!Qznݻ/%`YB])1>c2ΔRkԆnɨGh <%^OTr,yJܼ)IyES**$5S8^p="CR/WW!E˿eI~!AgKVjtΣslR. !Z{F-^ˮF$u[F[v+G@~~={ 999&6̜;v>5Is@zka֘ɡCE G2^">*R\PkM5%RUUl$fvןВ}R:3*tlBr ''Ԛ,Gvymf‘/ ށ!~] $!g0\JI9)F(/kA*ŒmY<~\U]]=}aÆegg=:;;{ԨQكIiټ OkvWsx 14 CP+䛃yɵuAA3!?J@hB}b%L/Jmѣ!+K8{23~ .]"xu8 ^Sd}tzUn {3'jjJ~ NH}HFNg*}u(2k/z]جA8^if?jj,,_wS))~rA_]Xi|<XzόRR!(U zthWs93&5Uthfԧ6j@Go9[ɶmۚRm۶IܹsS`9fӡk+!'OS*|>r//B!Ui ʆD\T`0充N{E]v A\|Y +W|3σ3@P+^_5yc' 8`8lΰr<41:߲_z`tE I! \ya9P'^ʍm׮9>kSOkgv;M6~ז]SE_p!))III'NHLLWpWՌBɼ#_ g69A . :=+ |Ab0,(s||Q(dbWSgzca,&qϓ'aH6 CyW$_u_0ދPgv$?gLiPZ*;LQR_RJUCCBz( ˖^hKtGy6˻_֎fXnج17 +a`0l[o;$I2DPO޽EMb޽{4ȑݦMk񟜌^{ Qio.@^ hjp T.o,襄o[A@:*v@3<qzuA+VgB4FsTow-qaAo3m(VgkEQZnȊU f\ ~f*jieimz0**20hR)U*eϞܹsQлwhC u񴰕#F_}7B."{gKMJe99 KDSFJOx&$<8=6]Ҟ#IE^ieDIUWTWK$IR$IPE<_`"R]&??t<,YzۋHյCŽgUI$ qR0 ]-:xy谍vWh?fDaIyҘSl˻}Of%H-V@D9Wr*tnnw vۦmJtiyk ] @E0 g(,!3FJ?*.ZMWl)8숟7FtA{pBBBBffY?uԣGfggB9higRT?hf9B=:xB`TGkԏx) _𵂩 x)@D'f0p`A ps"SȲ\M.6aʱ{+H4lR*a~B"|,\zC{\!z-M_yE.=rgxv(ZPUՖ`l6rlAFVzUVB7mX?3 UpEΝ`F6+c6 {="l6#$8Fht1"% Dv{^^ޠA1VWYYX=w_f`PծL)>rUtE Aڛ},YfK:h(.*BEN HES#T96{ᚭ3&GDh=,MoXVk}h'xDj3_a9xNs,3 gF1#cYh9xYNx>P8;94Xr6t-ܐ~ j\J56ޤV)ZȞ:J gܹٳ=+*SSW v;;xpSMQT`r2KKΖnW0}:?zOe%$97'!ﭧkFYJU_Xun6u!_`8 ϮA{iԆAk*J" ਔX;ӧ^7m.zU"8[ikW .--KKaq1N$ !?8fӿJ 8A#W嫖 jS(G\.d#>{qv{oVf-K: X4B2AdPJ'%%RBZo/WLv+5}5DOQ ;b[-lrG>_=<߶=KGowpۗ<`F}j+2J(KӢ?}/؟sgxH$b BH >weJ?vQO!y)ի [o="KW=~Y€=R H`N_0tFzk xu eUpLJń:H]kxw>G!Yf8W(dH K(.ІOhws}x7 T70,cONq;^>W7nܑ#Gf͚w^qAwU)%Å羷{5/LՋNy` ڪrʃ@@ R'ٖZ9c³r}fؼ 7:_یqU+YRů>m;p@{~t"9$xU_oW֚O.>Ovv `Ff5WXgπ+XiV],O[ج79y9d0 (Y`AQw=AD0o1cbq1"!A勷4 ;Җu4r>w.ܝIT"]?aĶ9ޕ*a!my,(<6wZ "&s k><#fXemvxYg9a94k3&f4To.FC >) :xU xal61hq-4ArvA04"=6tn{i0a ˎSc' &JEtdjrjZ={2!TiݰރG]WjTZQY:>#(dԹG8uAAĕB|8whMLieqbh{Rj-amߎq1 $XsƉ谿]:^;?,FgH $I!3#/{N.fo>E 3WyʫC"z4|}N}ռbil6e9Tz"4OXaXhaOTj2H{gϞ8hЍ Je;y|rU`#v0H*Ge(@ 2YGSDYEPs/i6a$ |Pά BNwpĢsKꟵͧ/ۓ'}7;wzjT*TAeryyY9'>>!eЁ c"~-WW%ڻ}Әi O>z">y\xβ@Q wYLNw<%IBU9|y~qK|N=S7a^5yh,q.NRZ/6&u7yZM791u|RHz˃:#mUqDo#ƴVJ"?]Uoeeh\{SY+ؙl _[x`yBK%Se޲pkJT*JJ%e28#yeaH IYu}pLR)JBj}l%I5sTCjdK9 ʾAR2n/Iꌶposk }lSKN9:nk5gCHJ$E:,Y1i``,])y^Z7oOqM/Ĥ޽'/Oҧ:8H\Y 䶲[ҎBJ('ӟ]RZvכV岐{~;Z%5z $& VFGݛ9ujΝg9wɃw<'v4yZbb]x%ǶgNWzno!6lذ:dλڣX.Zʆq\QQQll\.H$/;}:Z"oz;Oüf{=&}-ۢJ$ B !oh}1HuM1pֆ3jV9W8 L V;R @P_b;u67Ȝ 7^sv p]\J(e V)ॗahc\}LЙmKL6$AwQ , U͓;%A)W vD8BHGh@G]ov<ɡÇ8 %CR ]PQQ /|֭[tiiiixxxhhhEEE@@@]]}}+Ҏ#g̱|TF?- 4?/{[SF+K}b>ƴrfr =q !)P=}Q`3+OW򬇭O}TL{sw݁ez,4k0H=pժ 3g #bhB_x?'Y][eԾigNO?Rnԩ }M,HHiӁ'ߟ<-qߞ]_2sHv33L/-Bsfyt_@s@j////5gI0e;85lre !҈[э߾UZ8 {=&K&vtB@$1UL_L <wkX_Zԙzt |]-m7W^^iY8"@lư,w#;@TouͲr8j,oo%D0en3bڬ61zx QiD45'n a7n _֮QbOg2VԻG~S(W}H $I d11`,+8䲛[e^֒ ٹe@F`5 ɒG??Ғ7=VmR%r&S$z+dk/MHh}k-HP9G}/10:yA@9hs߲d޽SNyP4j\jc# vXfI ))ZM"kVA,@c K!{/RǢOc"nq8]M#,G={#i/e^=Iv & 0WƕNJͅg=wՆ*վT2RSWgDv0D"P 0_rkRkθٸ!Ceu/PM&Z%Y!M!Ȩe:A|k. !Zgtͭ~6^ȽR!'u@}/O6vU^A@$I ؕP#NKsehھD<{t* 硡eeeʖ.]zܹA``>'''GhF)\?5kk^O2*{#Y y`yPyjw~N% LFeޫ-LO{ֳYiḳ?~-a!0::32:*Awu5EGT1,*{B,Z_99}:otwaSˋY3Y:ۑ7FF׷pP^^`G/9aB*v:Dקk oOY>kmgMXrT7~ ?&1 ʝ6/#uo7~zxqלwx9ҲtZF@Fy?wfhmݻ+vֆa|LVjTJU,߿eL^ CffX,F(Z)%j ywrlYVF< >୷5k@ژE|>\U,]Q@|@uy˷\9C(D,wﻕYwʾ(=5ͤՀ2Xy=(tUCc܂-BsѴibPF1~' ^nml yGnN(HZVRn?v.Ш%Q)T R-ݳX}}:H? {_qFբ9AvߧTA:>!fLk~' mm+>6zPs=fj BA˲s?&) :^^RRt:ǎ/>E NBCUJ( VP8&Vc$9 hw},\񡒦 K*דSH /Ihj]iVRT&[QӔn:biU @P XARA$`T d*L Ԙ1xhRwH) ,==px\J_N}o_3^k`dy_v4 *q鿛F>VZdAJDU%T2QMĖX3}ft*WgO0i֠Դ^At!驩ǎɓcB(l:oH_Gczl*kO>)3kmTh<;g.:xoٳU'8^ܶVs6!! `b! wx51>b.{V<`iE/d p<>;/$ R@ 1$8X Y4ќ 2&ezp)N,4 HĔ 'fXŻxbY~͜Xx ^8yP(BH<&ܵFq$u:c.JD|Cei@J%s< PV><_;U9yO i?.kk{n"I`ڴ =lYZر$Ϛ"IGAAHnn…v?s"I)GM /ZMjxuv6LR4qi=;Bd"* r/?}8n1-h{+CW{/p'Ӎvl+\HlVW ?4>>,JZoo/ PH"Xݿ1"1UPI"\)iD,̍{*+-TX3s%:9aIOQSF@n,}$_'3E/;{Dl6___ώ偗KV4$E"fUj%S+ ʨUR?uVޱ_yݾ]?ҥEMLLX`.J%Oz5V/4 Zh{17֠lNKK?#W*/}sB2?vO6ŨN~eff~0àZ;Dx$VSNxx0b F `jo*9d=* *܍f34OŮ*nXcYՑ 8K~O--v7h Mpuuu555III555)))EEE<$/ w)딗,oZ+ykYekeiUynk~-$N,DPH͉@hVt'/^=/vG:L ::8=n~@~ U7CD gl۟(lv`,"a[ 5!DN󧻵uE8w8]HfsI'8)#@LgYRQx^Pۚ(HH(8hA@J%q<'J0uMGa? A(bxOKn-{A,nZlٜ?$Ih4lR81ȑjҦ;׿MɓH9p1??t޼?_s>$M﹧KQU<eg* e<ӳ# J%?yj3>./v9o/ݧ#u  l±I!BI_R߂)g.55;zKjcL.T}~Fi}}כ# Lթֽܽa䀚3-$E0,"kʃ'gLQ kmBsE}|@50 *#q/K+}(yzr;(4j%Q+$/hsqHzRfPޡ5fόĎ 8XabÆAx@k>两3fYmsi~&azmݱcGPPuX!:oUD)IPY8u𽙁fctiE&g;,h(ȹƒtm6'jnGp5$(2*&HU1wo.xMcb!PGXR,'(J%b\^_R7$ f؎#,ARqHbEI|Һ;yqݚ0ņ˻QtVAW:teو1cƔdeegee]paرEEEuuu|F>\Xc֯E븵~¸~~VwALXpL— gLS FFTx(Ĝ9`j|d*81v|K$I^d,,<߾G0gjW[m!>X|S#Ͼ}q /|3w}*'g޽f)s?"xñvrOǺG.rv@ot:kjjF-54L㠠`Q5ɓ7oXWvͿ !IԤ+~PxA,P,zuE!fϘW3 n4`@` SY8AAg!\/%b]ǡ@ =`餱( Jݐc}Q}f]NZT*x^p; UXfub#$H H^? HDyng=-\8СSMM qj$ O~àF pկ/Gwig$:V'D$6=jαQ4'dD Q,o.8-}G6鲪0}Q<7Vlѽ/-4 11111|.9+7?-_`ׯ]tG=2shH΃_5ny{\ $]%66688{ĉի'*ROV>b] q'OG*D򼲦ƪ׫CMC`oeE+ SQ#j, #-@8Um KS( !#ċXR*D4[YRs7x`JyFN7յ?逈c꫾pKZ3gΩSO~qqԩ'Oܻw}vi-'Z7ZG;|ǣ5was3 A9voBz|G"6ЊGHD0} .m$|MkJ;\,4R)w-+٦9J^ϵŪ[Y飏ځyۿ_䦵kfevX&!]8;Y E\v@oHbPiiѣ)*//.[C\lZVv?Uz~{@+b@):Pyq*]>0$I~a0ϓ,+,8 #a8͎m,a p4͂AEEQD}Q})ix&'0u͡7p@, 鋢PP*"/ cAð;wEl7; a:+b0{*%%H'jՙ3Z=FE @QEi^BQEϟ{^/?ޚVK՘҇:أ?} HrGE. ظ2[il%Lh*/"Z$S`@`BAJrie [C/T7X: k0Faa>ǎߟEYnWRnmeg=< {1\W.⑓v9ig)# @;]v݌a &t:]TT4)KځݽqW $$$==/b @AfzmЉAb%TU:qdIBAJ zBQBA >p^Ɓq6r=#iNqi9t; ٸL镼DaYng]Nޭ-/t;G$?nݖʪO. ۸ #4إC3g'%^[R\\WPQT4I#:=j(9$3dE#) $bc׆b~x8X?_\w]xx eҝ KY VjҨ$JRJR so1Ԕ$0~Tx9gQH]rWm*3VNIrf)h(7'[@H W׀G~UG(}[oLjwyyK'8hfϹέ?n_up˒3:t f6HN׶\LyC %EކF(>K>珺1fPf4]}X6 @JڝF% Ɋl"~^+[ Dj|D`m}v#"q)^x+JH@- oէ':|oKWb[b;sȑiӦ۷oѢE~УKj5,k67Ϝ{MV##RZԝKFC?9F%¥:ge6ovsZ|=޷l޼ι9qѴaXXcayX^fsN@ K\BQ@Qr<Ͱ4ͻ\ò BYkL[%q[0,[_q \QZTꩻ9;;|*nfʒH=M_p]~ԩaaf0@S0~z=ER^I'S&)FAR 3 @A6p/t<5( #J"/^Z4] EԤJ֗fEDDT\b# kRe"\pS(#"TڶKw΍|)^` ({}3=F_^>uI;xoym_Zޱvѻߒ|!$&$lJ7[ Tbb*:A)IAF=PADE V0ٓRO;lb H (Lku&Q PRcn* Jbqר@XoW}Poz~!v/#B6) T1t'8.DZڂKSHwkDž׽+pPXb֬Y{ٲe˾}͛o߾{(&i^=kO9b[owKlL`5[P]2ؔ,-:gwW}N(رc111*w;s ^se8=_z |ףGt])UC ɫwܜlssKnNvyeunNss+ssM9+7'p?#@кS;kGICW6@WW^|If&zu v)x^5222n Di>G[Hʐ1bcǸwgόt1Re ;5A@T7fxoPjݡ(O8|ߙg ,EF<6_x94ܶmے%Ko߾f͚kZ}&:2pdd^N yyylʔ)^Pg r˱nsfxu`k)"bMiӵ`??b IEF&sőkŒ_cI?݋落| ?SHnј9+3#~~ڛo.-Od'~vVU؋^۷C22e-`'~;wNo2222?K$~?,ϽSnK\ȁ_r @FFFFFFFFFFFFFq=jx ############# B22222222222222 @/ endstream endobj 980 0 obj << /Type /XObject /Subtype /Image /Width 388 /Height 340 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 992 0 R /Length 21799 /Filter /FlateDecode >> stream xXǏQ`ذwML{P1jbb **TzUAJGAATDD@;ܛ/777afsvϡx,3gÌDRLɑ#G8kP9rȽp@79rދ:ϑH`\ȑ#^EF?^P|n욽8 *n؂X4.9r t+$_>9 ݬG޸}&}癙ECrpU=3V!$]%GN66cgєͱB7u)،kw^U(/3eW=Uw?bk-K]ml o,wSrf;"w:FH]ɭCZ9،/ES;+#sDq]xQ ]F.ݵb:ĪqɑSX!Y/ڿOCW8v,1}iYo'$0bɊEҸh\l ~hQ TԔTǮ٧ֈV`jX4JT|Mߖw=ybK%%/Ϟ߽{EK;&I9 N XU+V~Jh\9_rWn;I)j6`MO]ό#+ZᅔrjFUW%Ss_JÏWZJ*TZv0 KcjF-*2bnn1n_΢YX<EWQSkܴ]oƮ+2ٛ[W#'߿hYټɍyW>|ZXуORSׇ,w< sLL+.6sb 㚊էT9qdVIUUYY5w,q9]5ߏ7##zkSK]Ԭ<l dٴB?+d FMԭd-뾦Z"w?. lC\"w7dlvJW݆Lkѥs* fF^/R[r z?n0 X?懅*տ3Mn6ct،t[gьI|7b@@X~~9}[tnٳQEݕq 998wePX1{",kA0Vѽy\:V]'eq0Yc>W0RQkm[`?QQrw{`<~UT0j+`)O 骇qa6Y ,z-57>0?:Gt?vRfQF7cV쌃O.-WOiegDkb|g<@c@8phyX ,40rJBmc3vI{ʃ{F#/8ݧ8'uN\dWTa,wX3+^1 &~)í7)QQm@XD߼Yʄ`]XNh9)7w_xxi) ϧ&txj{Vflċehoǹ?K?]'bɉ˅MMN\>VѱrOxko9ivhGLvǷ1]fk2`윙N,B~] 6ުcEg l\a~'>CQ0K̝܃#,ל'6n)kp+̃F#w#w^Vr5=&m8@so8ޗzWJҩ`QW;b1F[;bXpM[ +SK\ƮQo7 )[hX~_O4KjSd}%Y噹~`hVlwʬp&MQz7cYe D.,+߿9E&Ya.#:;϶)M]7w2vu` XX¸p»AX-ƭcq&Xԩ# bGkc˅J2ZJyuի-^Ƶ-,qaƙyabp\[''.?SvS%=n= h8E΍c-q9GI+<))ltg ]%Zv@`/K"pyжw/)0r"#eKZ߸%Cl;йQ0ZJ{(:SO-੪nkr^E NMjյS@@\.s]S渞c]AcEYQRIU>w37suȾ|،N}G:Fq]ڡs\wa6cE;뽍2s=NN9g,Ԫ8 ui;Z WN*~|M.xː5!T5RKVJjnܪ@g]Ao0r.8Wu6=05v)_7#gMEi ۩/+ܒZ>PW8_uS7jx%Y̗o@+UǾybwfa-+62`of參x{pBuwݱDqYt:\i W#:z-wb̮_1u)QӶcn^[s[Er]rZ򹻘a?w;@q` =fT(I5E9,gf\ /T4_>fTEg}W4^e_rfܷ׆:|'-bɉ+UW4GEX7cΟuQO~_go8mK}WQk)6^ћfؔ28ݺ# /Iy1]zURViܬד*-P3lꫩ7j;quS`E2rJzx(ˌ(sv^!]}p<hfcz?}C6+}Qo 1v?[*Th?2.| =wrw`T]ن.Ei1 ;~چT7B @:h'ՌmYT|uRWU-qP>w :ĪqPug_4Lp1&3IKR<"_6H*OM7qlr>#e8'~׾(3R)0VxX#w>(ݗM{fM GwyXRDzb8"H$bD"H$D"E$XD"H"D,"H$bD"H$D"j"z:$}ʕ,/"EXO>?{Ϟ(ЫWrzDzL$(7ԌW^<zoǚG"Eog:Vy?Ͽ=ifx? z^ϟiӦnݺ֭[ok]2weg߿};b.V+?ݯ_|/IYW[$&gV='O>3< anݺK,޽{Æ Zh1v؀/^8rHaWM6_<$⢫,իSLA;Kܹ$>aq_zzzjjj?T&5j$[&tƍ嗳fBe|RAܹsH_شi3`;;__zU jQ> {򧒒p|%%?1Kf;Zx/|Yp=ׯ_/mll,֭[|ĉ_FB_""222211AAaԩvEd pzB?~XE(̿kٲeRAN:9WhΜ9}v Ӎ7>rp>O>=uTZZZ-bч\EW2 >p=z^T=z[y.zn޳֬Z~̦=&7mۖ`NH>͚5 2ཽ0999GƷjՊo߾darL<>X:BFUߜE|?+#FWڵ>sxb@!NI '*,||naN΃\{nݺTjllZ\常4\$%]/V칬Y?.¸G.9Ҋw0޲e p<hH-MzvAX60ϢI&0Ϝ91PkРAܣp+g s9IǽKٿ~O~~qz̜s23s^{xbXع𔈈r | K),zia *enT,f[W vo" s%"p>7oϚ5kNG]ŋڵ3K1 7a.]qV\j{…]vG}}}LU QuuuWX1e 7HɓёxVh޽5 !w}1 /S]Ҕ|!YVⲲ?q8JzQRҵ n݌x@ç:O<w wN3wUAZ,iPyyyܲI֭1ߑbСC1 mDmcܸqɰa64N$%СCr֮[eZ8jܹ_/*ڼ|ϟ?IjRjݻ݄-rV٘1c6;2[Ç!?ݻKф=^z=z<~@ZZ X^Z*$w\.zzz]Vl-},hZVyx~F$WvD11CC"p|Vٳw_{/ ' *EѸvtt䪝)ԩSEEEE,& ܺHŝ7o}||8([hfaDCϒ5UA:::B@Y`"={N$ 3p@RϨ*,1c|1 P <5D9 1<MH>x`uYZXEҲgnմ/9cmm~YgJK ?k!cGpzFV_܎n"bݮq9,:uƆE7E0Bc@s3XcǎE˗׀EBmܸaF^XԢE Mhl**e!գG{N^2bN㭺,B,HÔ,}РA)zTEEO-+{Q'oN &k/8/pʃ䬒0۽wqvydpcvcV-mbRLhHL9xÇ~Q _5o\NtgggLIcU ~3Yo-;;MXCe .p?ԯ_?cJ/S!Gw7Y c:ggffȑǏc"bbk#cQY30WlPYٕXk>KlsaM~O,-= y?/DYn_'aW5^>{,BSŋL,9iœv|֮eD]]}]7k ׮kl_O_ )EU=`UaԩSimj"Ƣ[+JݘxQ۸jsgYZ_r7c˖9l|Z͛8|h_u[q>YçI&wh0/..foDNIef˖-R9QH۷o ~Y3FOOߚ!*]/bٷp%DQ,>}Ca~KF3{l~&S)tuu=GgQff&>*bk㛣=erTw$GJ.udłxU#ݽ"?GDĹ{w: ?x1+;9>Ι6;ei]4/$$$!!A1 T{C\o߾R,~-HEWl?Üdׯ/#gA|#4SSSDqVYpڪU7#Fˢآ1w )!<7l6XL>}pc4Y0qـ)V¢ &۞={"E<`R)[KGDϞ=/88췫e!$v0Ѳ,;[%g g-<<yFދ?ۺoJ].ebUb>!>AK.љ2eG7 d &͸qɢ ?f/R3>bgŊ80OTs{ *+رc`Æ c0d*}C-Qk׮I? R3hڵ˗/߿?EMŋW\eRQ6ԛ"ǎ;q6|E`x 6 "##qתX+++DG`8T8LclBSUfGɢ\nZǕ e?9%ez}S~ a: MNIzpT>A7oܸ~>~CAiiic4h7c ?Q%+%IǍ10"BakM<۷o.jjjHJ[[{ιIy ޭW)=z9ReXtC>nMSSE`` ?,uuu ^Ŋb)< Cn#5*---vVЮpGnĉ()444 w׊EJWshYA^~;nL++O^Y/ Lؿ66۷v^ddnu~=ŌTX/JIw+WTBHYTn](KhFaK$>*]٫e%4]坓[}CJʕ;HKҪ[n{yfwZ"/2ˎJ^[RvưRRVMM͸rk?%H"S?K.9o%9oի H$b;~5ʅ H$b{TzMH$bD"H$D"E$XD"H"D,"H$bD"H$Ţmɑ#G99,*#Hw%H$Z/"H$bD"H$D"H$XD"E$D,"H"D"H$bD"H$DƎu見E$;Q@@pD,RF$SNn{]b;w{o6˗;wL}wݷo_>"bE'O,(({Ztt4=J,"՘E}_XD,e9qݺuGEO>={6հaõkwƌJJJ_~eJJ+nڴiӺu+55>frpp`ZYY-]Q! :udll -Z8q𐗗ԩS/^ojjtmhh(বΞ=g>}`&eff6n} `D=x]˗+]~ҥ'OXgppY=z􈉉rTHD LgXT3綶]t,Y&LࢠYlٲ]X1"((… PHD[;b0>>I&))) $kgggQVVU ĢRzF,zA3E蛣FRVV|;#G֫WO |oz{{7lLJsΕ*B&"Etuu*UTTL"($$}(Ҁ`V$Ew`7tuuCCC^EkbчɢbLk)bѧ#4bȢ UUUww>DYD"H"D,"H$bD"H$D"H~_D,">ﮉEeٳg RaÆ]t-#Uݺu?^=.V ņ$H!aH>}ڴiӍ7]}/^xK,"baQFFFz]_|,ϯUVw܁O>}^?2ۛeu.ZtjN¬,-L+ƣG;fw&&h޼y433[f .&L4Al9s4{PsEhj;fwdHx#&EĢnٲo:tÇY7niӦ9sX0/X#,))x͛78]v^$pj.hwMCtlbFME5X/b*vxi͢1e"[0iРAzz:Ǐ}vCX$Z5@4k;KƱHc6wk.;UE"E6I,"UE^^^>GLD7Eved ఋеah֬ĉJY$Z5]4k;(Ɗ!c.vb;GE6I,"UEw܁Ucoo3#''gϞ=jjj蕢,t,؇ lҊ32 06P"XP| wAEZ>DSc1["5p &7BmXD,zQ|| ={߿_͹͢}||ZlEt#$D"E$XD"E"҇½n>J' -rUef#j IG#E$bD,"H"ҧâJ${Q'")E+99}ԩS]vETTW_}%&11cǎ@">q>|O߯233G,4Y$ܚ^F...M4AsrrjӦMXEvYYYyذal3XR-eL!=$LLLرghZZZZPO֠ARСŋӼys.5!lmmK4j$<>>''g…ӦMVIDY$h+WM`]vvEtuu?XIY$5FSÃ;&EiF߹sIP,bgB1nahܸ1a0b3%K0; â.]J&5#R.5nժUǏVIDY$hm۶M0ybE`"QG ~ʔ)@xEiFpZ222R\x-صhW^`ѝ;wC AX$5膮9<~8"iFwrr#fPhj3w'njjnv^$w"FtkzQEGG7m,d0ݣ^4M0_4i{46ѣx0$233e{tׯ#Xu* @\?fY,- fc޼ysРAEiFG :vL)5Z/LɁ 6G{y5k-Ghљ5վ}z 0 ==:xeTڵk(;) Mvڵk'"lĈJJJL:5'',.Ж444zڠAU/ h###4iv;chљ5նm[4i]]]Xw"+-- C`G]EUWBBBhh(>tw7,ɇs#0`u 6ӧO{nD'}4,:rbXč7[ryzÒ|871ajkkO4 3wѰUV5iDKKk„ caI>%c@E$bXD"vYRG,"">D,"G,"hFHvMkXD,"E$bD,")E%%%;vԩSݺu5j?ܸqΝ޽XSNJ jNNN9s9{]TTZbQzzD"={ԡhEZ {njj̙3;t"@T=ZT¢:u4nܘjXD,lTҊMgxl``pƢ1c|7JJJ=z8{, )l֭=zyٳvll.oZR*l~yD+BIPQoqq10_xQ__Ԕےeeٲel1)޽UƃʼrJaŎvҥ (3}۷=;nwDĢ"OOOYmp IKKC)**7o!c#:,,,ڵk >dE>MY)+B|K8G;|pǎQJa-JJvrrr~~!C6mF`E-gQBBرcg,B͙3Qbt:p@`Gv\p¢x=z Μއ ?֫W38`-}ahʢ[n.\())A$Ţ[n5oU8[G LEDDp-?X3EE3f`-<++ v]RXb˖-Y˗mۂHpes@1!b>+1h⢠EĠ}!E)8"daw\d gx }lE:ڶmzhOsv&Eѣ8-^ kx4` X$<lw7X$zHsrF%ؽ"x|͝;?Eܖ.Bs=CDSԁM\ܾ}{РAYdii <ҳEXyDoffrJ Z02X3F1좙3g"X8`BA,Rzѻ?³|<$$<誱zzf>>>EEEhc9zarX$q ƍ d-ŅcQ|?[G񈛒RPPO+hEBfUUU"T)t L#G*HbGN]sۃ-o߾СC|A`z7  4^Y*9,MY`s8F1d8``kfg:ʔ)SFX~b(0d`ޣeцʽG"D I$QE"D,"E"bXD"H"bAB,"_>D,"G,"hFHvMkXD,"E$bD,")EgϞ1cnݺܾaJJJ5 5jTVZeVX$G&TUU5jc===5E$bH,yD"a,]tժUO<ɓ'YYVƍ94iDSSɩM6SxFUL8B,sbk-TTT@ܹg J }E:t8t.N{ڵ;qǢ0(!!!''gȑEشi#<"F۷o) &m!XAESLŋdQA0#F ںu+MzQ'z>`_/=CDw9G{/瀰%#'O{nflXb_p,e˖3Ǐ3:t҃9rϢpL7|Ѱj` 6H֡8Uza47n <^$zْ֮8g}VX?R4551E <1ԬY3xiSЍJ pߣ?уGC X$zX&JKKc"]]PHĢN:aS}8>>^[[=XD"UK%%%VVVM67&MĎ_|sS&E$XD,"H" YD!ޯ i}{XD"#H4Gs@E$Z&5D,"H"D"ĢpԩSLLLÇkv@)X԰aC֮ԩӥK???}ĉUD ֭G`,BYn]f^xA,")EǎqFzzѣGvvZ;c:5XXiiDM6#իWjj* 奣2ubE.]??Dx2ŋMMMG[jl``p9s_~, zzzk׮p'XH8IP4;>J&,.Ƽf͚#G됐;*))ףGg O ݻ7]s,2dm˖-o߾MlXTRR٣G\=!={6ڰaCP~)s,t;zR~P':u266F:-Z$44A 6͛:9{l\xQ__VҊw7nlmmaGԓDz,B,8_͛7PE***h/_tttDEjv9:+>֬Y &Ϟ=(E#<ܣGeffOg,uV۶m:Ŀq9CDv`.d>|  eU1 X-ZJE]9 999#Gd$ _^N\lڴiΜ93??^zlzE/^`b YQXbX2?E,))px͛7'&&vUVD>=C?t… H޽{0{g-  41cTu)TٹsIp EU'M[ZZQOE8p,& ܢ(B-[ ff7R,tA{>xoߎЈ#`],\m.]%KZ,ہ)_]r'U'v0A6+##Ϣ*F3)Xw ӓe$zܹsC-S]kYQXq= {b}Vf͚M8^VDhǎFFFQ~;\ܾ} >7UHdON899-Xyb"c6ڵ(`*7KGkp6 $I"3Gt}!9-E ߿?l0R,ab9d2F2331ӁUÈqFt=7\\\g- ϭ](iĿwYKVVV&Mbbb` #IգaґD:<<\KK 7I"3I^ =+88ǧe˖#GGHV# z7&g! sU\gʉȾB\0WG2`3k,KN w >3fO,PHHHa 06N0#bY,VÒUo]V:::,'Xq@ @"ޗ㵵H$)((HUUݝD,"H$bD"H$D"}4,:uѣG{]Z;[6ǨjQoUTNNN xJJLLdI¢Fݻw///mQYTXX#C,bUZ-ޤj$R`ѸqԩӪUcǎ ].:sN 6;c CCC%%/2%%T0k~MKGGGEEFqqqW*ꫯWwTBg͉D좇rMk6ޑSZz,B\XXX#.Ѭ9&ikk'''2dӦMU^(.| vA%qD" xG9Yĭx " ͚cha_필,.C5? >dD" xG9Y4ac߾}fͱH4q9۶m^$k$)`TB^nN$R`wsJQEYf.͚H4q33+W2OؾaU^IȢ2TJmkXwz.*M];U9ߨ"D\aĭqfe$x||<F4-= w]]]1[QQQ2e 3~E\2TJmH!aH>XEzg?d"H"9:u;D,"01Ld$E$bD,"H"D"E$bXT-Ё"bXDz7,]"@se==kׂ-:::7䱷jܸ5?,Ht r"nC/Q!#GH$b_[n$[Ԇ_QAOiEXTcNJsV1>aQ-$FEq +ٝvShll>r!СERЧWCDt7:ں^:ut0̜9sڶm~qƵn#`ǹĝ{ɮCBB:v쨤Ryܻwojjj 4011lȐ!Zlym{n>|89_֭lԨի9 =zt:updkkۤI/KJJ L355X ,?~%Kp Jhhhydgg/ZHWWnnn Uff %`r좄4cǎ!? @QuСECIP999 .Z)oX," Ϛ~nWYὼ+ѯD*Л6nثW/xbށ#tD@fGգUKT[Iwwk~$QEMfdƅwX" +T^nݺ۶md BA@ҥK\\\AAAIMkƌBw€NfffDb,cJJ VK"!Iˠ)@~@9חv˖-n$ƍ% R|pa.LD@f=zH~HK:K)}0 Y&E!I/n,W6Qn{%9=<< >;;;Tc:tB⚱&mE,Y+OM$[")-gQ]ϺKϗ/j?sH"jz[f͚MH`<$%%Y/h3E3gELgƠɮc,0hm3ӓc3!Y,Hٯ=Eٿgk֑e> stream x۱0i2GNvAC J%$+x?=Ǎ endstream endobj 979 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [350.506 530.051 417.191 542.602] /Subtype/Link/A<> >> endobj 984 0 obj << /D [982 0 R /XYZ 80.963 747.976 null] >> endobj 985 0 obj << /D [982 0 R /XYZ 81.963 719.953 null] >> endobj 986 0 obj << /D [982 0 R /XYZ 81.963 651.006 null] >> endobj 987 0 obj << /D [982 0 R /XYZ 81.963 591.109 null] >> endobj 988 0 obj << /D [982 0 R /XYZ 81.963 559.939 null] >> endobj 989 0 obj << /D [982 0 R /XYZ 81.963 485.431 null] >> endobj 990 0 obj << /D [982 0 R /XYZ 370.879 473.789 null] >> endobj 981 0 obj << /Font << /F25 474 0 R /F44 651 0 R /F43 652 0 R /F16 475 0 R /F36 596 0 R /F24 476 0 R >> /XObject << /Im60 959 0 R /Im61 980 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj 995 0 obj << /Length 172 /Filter /FlateDecode >> stream x]10ہ(bc"L]dpۈqwSp5en6(`tY 4щ3D^>(E"+O"OyZR/PJ ]ԭ &j'd:>@5Qua`aJbY]68?L} E0 endstream endobj 994 0 obj << /Type /Page /Contents 995 0 R /Resources 993 0 R /MediaBox [0 0 595.276 841.89] /Parent 991 0 R >> endobj 996 0 obj << /D [994 0 R /XYZ 122.806 747.976 null] >> endobj 993 0 obj << /Font << /F25 474 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1001 0 obj << /Length 1793 /Filter /FlateDecode >> stream xXKsFc)RDؕDJ 0ZЊ256> l*:tk&^8^y'Bs<F,/ZyשwL Ţ8(QȂD{KC%$t~o6]֜,J| @xsIgۼHyE,Y5ҴmVĿ-@޼zl ID:.AZDW_OH:/ bGO^ oN_U tzIAȉtӅS6 =s <5?\NڋXX|_2)cHfownݙGzy:tYW{ D4oUrJII)ڮقl]dĿ^:+bJi2%\Wd\} K)"7"uVe)MDQ Sf96sƔe^!7&WH'WXRCwme_)ߐP-Mal {6#}JlCTyK DR ,DI>2H>S,B3  ! {HU`%] W#}BڎCIYQ@}?QIȫjz^fSq)/awo؊jIHЍB7TN,(lAzV1ds&~VԈ<>3  h+F @=(K@9󽧤9~7X/.C8<}/L3`  1\—LP~2z{Tp@o"&=ErqB,.V̉6@Iejw%qk.&zQdk]q͏H0B&i?4 |KT Hj\lv,pk @nl0t;#Bjo*SB ?M^{{Y)!ȭk`Œz .᾵hrDг,Ɓnu ) /p.u ʨ}c¡u.c Cb?~[ӎ΍B=D,PYx a)I@m1 07:2ۍYe8"8?]nބM{!g{\>ȸ |&}v|zf5LƦu+@YC>Rt7D+jcrR!z QzJ# h<>Vjt7~8GG;plvh-3l,|m}zWc% J&Mm@TNDM:>mmc[-7'pRp?m`4! N04M('ulo(Ǽq 6R4ȝU0wsOsU.n>^ ~Eރ,=ŒwPOnZ`+X_(^Li,iqMCL9fuN7|yvuc& ,n[Z[t~dp&"?wC:/Y^:v ܎˘I5jZé,6~+쭸T&0> endobj 997 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [80.966 499.198 87.69 512.994] /A << /S /GoTo /D (Hfootnote.18) >> >> endobj 998 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.721 267.842 139.444 281.637] /A << /S /GoTo /D (Hfootnote.19) >> >> endobj 1002 0 obj << /D [1000 0 R /XYZ 80.963 747.976 null] >> endobj 246 0 obj << /D [1000 0 R /XYZ 81.963 712.73 null] >> endobj 250 0 obj << /D [1000 0 R /XYZ 81.963 453.292 null] >> endobj 254 0 obj << /D [1000 0 R /XYZ 81.963 236.381 null] >> endobj 1003 0 obj << /D [1000 0 R /XYZ 99.891 166.23 null] >> endobj 1004 0 obj << /D [1000 0 R /XYZ 99.891 142.32 null] >> endobj 999 0 obj << /Font << /F25 474 0 R /F28 511 0 R /F16 475 0 R /F36 596 0 R /F38 617 0 R /F41 649 0 R /F46 674 0 R /F45 668 0 R /F43 652 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1007 0 obj << /Length 2125 /Filter /FlateDecode >> stream xko8{~]`e ֒{SmhAi[rܯy*_4ُ͙W* 8VjIH4L,{GbLT<}f ؏2?_/-B_,//^?W=_9 Zxr Ia(>{6'0ϼwDZ{aq|n8Vf)4O?C2Hre vJ\x%( P1J|}_wPJn~CųHN,D } #}g}y!Ar-w*SӀcmm;ht ck0D8rͱ3 l5L ]a$XU@)ґ*LYܝ:5  /ds nۖCQ6@$_ {N{wq C0$+K֕ iYS̒@DG]9$3XWQBIh ʶa@Mh2NuH*0N9qcGNY > 1Kq9Ams4H(PNwtG \¿̡0d-,$j|s56diIxiTǔ ugqkvOqDW!^(eӯإ{<ij4ݣ̿ub Gb Cփzs}j_b>,B5XwLT_\_5#SS;2Z/M̋x1W)CP<9)H$:[3U0BQ ,vXD*+v}DZR X]1yE-xƂ$3&&_7hl)w ciB`{uq`L| ]Yx8|s 0s=xGbK=ܖ s!j endstream endobj 1006 0 obj << /Type /Page /Contents 1007 0 R /Resources 1005 0 R /MediaBox [0 0 595.276 841.89] /Parent 991 0 R >> endobj 1008 0 obj << /D [1006 0 R /XYZ 122.806 747.976 null] >> endobj 1009 0 obj << /D [1006 0 R /XYZ 123.806 719.953 null] >> endobj 258 0 obj << /D [1006 0 R /XYZ 123.806 433.763 null] >> endobj 1005 0 obj << /Font << /F25 474 0 R /F16 475 0 R /F41 649 0 R /F46 674 0 R /F38 617 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1012 0 obj << /Length 2694 /Filter /FlateDecode >> stream x[[s6~[FpL:I;YI@K]I!P 3`gH8pٳTd\Mg.%HKMfٻGϵ__zuy3>XcbK橬J@ehbdQq(AIezOIC(1E}ac+0xQL`y:%Q4фfk73/"DHBhVN]\ Uv';;_tC`ͲUlcQj!ZM嶴]b[,ay=(fJ)M-JײfNJ; 4@͝qLj0rApʻ9k_79݋\}Hs SD7Nc !5s/iMMVot,P*nfxve0 "S@yv8b5bgzy_-&ҡ1q.(!͡OdA ^qsë__!ݨB`tn+.=zkeWFkOB_42N HkZG2?"d^ d8Fڋ¼ɍ"D/jLlNH'.R95ITH> [L-}twGƛxO(bB~c]d#%4VwHA1U'"t~t8M 7;r9 `cŝGTnҫ 4VvgGq!CB/.aD!`ÎFn !4ҬX&Qr =#z99|k QC_D o9CL oD{>;L6jhlaV}Q @ u/قAo"Ь~K>4l;ꗈ ҍzF2ؔˢZ:5:Hu.H0^8Hn&[HA-J]ҍz%F;6a¼z.hB4ZE$h썡I..| Qݨ:t^ cbԯXnD^ O /n.q|Bv4'/c EMfKqxC\|n} 2"S'ЏAR s$;}mzC-ױ ?`_ @E 5|oJp\o4Ѳ(n^DRoвhIlJ7" Q9!iOb^O©".tD^ cLtSKqSAb$#/'N$ݴWGhnS 9$#jaz99tŠ41DFR@$KlcDqxK tT^!^苡Yk$I5 đ::9cvӧ[G{f/C endstream endobj 1011 0 obj << /Type /Page /Contents 1012 0 R /Resources 1010 0 R /MediaBox [0 0 595.276 841.89] /Parent 991 0 R >> endobj 1013 0 obj << /D [1011 0 R /XYZ 80.963 747.976 null] >> endobj 1014 0 obj << /D [1011 0 R /XYZ 81.963 719.953 null] >> endobj 1015 0 obj << /D [1011 0 R /XYZ 81.963 635.598 null] >> endobj 262 0 obj << /D [1011 0 R /XYZ 81.963 494.305 null] >> endobj 1016 0 obj << /D [1011 0 R /XYZ 81.963 404.208 null] >> endobj 1010 0 obj << /Font << /F25 474 0 R /F36 596 0 R /F44 651 0 R /F43 652 0 R /F16 475 0 R /F41 649 0 R /F38 617 0 R /F46 674 0 R /F40 648 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1019 0 obj << /Length 1019 /Filter /FlateDecode >> stream xXKs6W`cx|Yc{(3nI[E'N~}I i{]|aĒDћżw~%bDRr4G R'yU|t"#xz^JY[1_-DQ@X ZB P}_ ֲ1nz1 MZ[4oQ^ )K732{NsҊA<C5=ʴKs(2f>:vya&㵲l>+$ײ4;wNzhl7%KJ 7I"&"+(>܊(~.ԈOaO$$ '5^1^hd\QXw܂#JyU<34q !WmG/HMw4W%T#lc;Cv8 J endstream endobj 1018 0 obj << /Type /Page /Contents 1019 0 R /Resources 1017 0 R /MediaBox [0 0 595.276 841.89] /Parent 991 0 R >> endobj 1020 0 obj << /D [1018 0 R /XYZ 122.806 747.976 null] >> endobj 1021 0 obj << /D [1018 0 R /XYZ 123.806 719.953 null] >> endobj 266 0 obj << /D [1018 0 R /XYZ 123.806 607.357 null] >> endobj 1017 0 obj << /Font << /F25 474 0 R /F16 475 0 R /F41 649 0 R /F38 617 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1024 0 obj << /Length 982 /Filter /FlateDecode >> stream xZn@}WS՛zUU)b+/iTpRK\R@m]lC!s 'zwfvsN#8(0w@6P -pm2hÒ%7=ϭEߓJ=+WW0n3V:" fǸA#hfP)!gTnnT, D 'v*;p (2oAdV6? 2t#` Ăûnf6SlqԝhrÙY ?ſn+n4"c*{O#HXEbISwd9V9$ ߃z2PBf'Ԏ %O)_2Kildz8;-7LJ~.E'`%;j$yFu6qYϗUXdW`[hq$qf%ʮCUO°zq0ҞŶcd0Vv&Nzq)g} c5&zs];rk'YDgPiJ)| !aevVD7 JFNhIcqtopO^SάVHX נPf|-ekMA>ുbm˨Cd~ 1B.&Xw/HÏ!h{ rhKgcIM|`8w9J|z.. j(.tH(a c Ru=`v$; )(+ 4…)3Ɛ31먹,ן7+5`utֵn]D&,M XaH> endobj 1025 0 obj << /D [1023 0 R /XYZ 80.963 747.976 null] >> endobj 270 0 obj << /D [1023 0 R /XYZ 81.963 712.73 null] >> endobj 1022 0 obj << /Font << /F25 474 0 R /F38 617 0 R /F40 648 0 R /F36 596 0 R /F41 649 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1029 0 obj << /Length 1141 /Filter /FlateDecode >> stream xZ[oH~/P܀Z IbU$7CKdmKM !!3眙}P-ch:-B `RrC1U3%Jsk_5uAUbl\t4'ݦJҾT nB,v4l_X$)`r\q#o6^%&=I6R{U9zIE4|D$j'44"VIE|["E,ŗrƫ|E={[u%;ZF.bnSoE+m/ϥx5(Absqc=0 #~ $Ϥ^v` +;_>ܯ($@ :YVn;TStٷEbt3~,Dw^8whmBE^ȭA(PUХdmϲ )MrZ&iF"ٿC0X^&):G܋|(G{Z@Q8 poO›Af^nƪ]$ѽ@r*ShDu`Еh}<++)}^vt^K6e[̸]OWiB endstream endobj 1028 0 obj << /Type /Page /Contents 1029 0 R /Resources 1027 0 R /MediaBox [0 0 595.276 841.89] /Parent 1026 0 R >> endobj 1030 0 obj << /D [1028 0 R /XYZ 122.806 747.976 null] >> endobj 1027 0 obj << /Font << /F25 474 0 R /F41 649 0 R /F40 648 0 R /F36 596 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1033 0 obj << /Length 1480 /Filter /FlateDecode >> stream xZ[s6~Wh/-./;l& L4vOa3ŀm &!mY:>:|9@rV~zOڌ,~kP`RZ\j:4`fLwYTk?6[ᶮnuJ⸕/̿^$R z> Hm %{,t[TAI=Lh 51W 6JOg TAF)C9umA0@͖JKsdpXv5FM3H㳍:+W%TN&7qв,2!5THTݧ7fs/ݤFcdp hlv{SeP ׋_/qo&OX4&D`1_IJX4 y8h-mͱnV Q_-0 XMo'^ 'DEV=\u'C}Oa7e٢K*&i0QP]1F8A0EOF Hؒd#sp# sKRzyl4/_d2ql:>ߪּ~i#Z|*bV ~;ĬqIQ2kZf!T(7y|uP54L 糸X]h~+}? &I|[CԼcǕ^̀X28\N0 {A%(1GѺ7Q7lK9|ħ1sFނdV{dCI%yn /Q&f&;rTDq녉[uBߴbPsfa\&o4._X:3AO33L8_O~^9{垵K5l  #Fh einղ*LYӬgY%Cs$\r+\H [bBbuJp.*"nZ*E96e@:b~,txPuzATqP*QzaXͶOVa,D xBIHq7UCS. hUjzhvnxzB]Fxhɜ'qu!htB.UC--B?R7:δoO聇3:UGշ#w5*,)50>[+~&\tffual@_\^Wq}O嗿/Z0ؼ(j+ǫ{1l[Fn}C D gL,ނ+8F% MƶpT Qz endstream endobj 1032 0 obj << /Type /Page /Contents 1033 0 R /Resources 1031 0 R /MediaBox [0 0 595.276 841.89] /Parent 1026 0 R >> endobj 1034 0 obj << /D [1032 0 R /XYZ 80.963 747.976 null] >> endobj 1031 0 obj << /Font << /F25 474 0 R /F36 596 0 R /F41 649 0 R /F40 648 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1037 0 obj << /Length 1023 /Filter /FlateDecode >> stream xX[s8~[tNԝ4ڤNbYY߯@6ucuӼX wn 0:n11M[ 6ڜW %n25uÖkwvbǶNv% ;g꺭[XFW4H)ðuu/ ! MF ZZ<*{ZC&4$2nGSaAd{YV7XDl7BN ;z41dvp g%v5b | :C/ ⨀7|\O_Ri#xzn?c-efe5$ PĘ͐x9蝟*&b2/y!ԁ^pwukػ)ӦrJdd^N;4U/Tݕty)aL 2h3?ߛt^LrӡKVӹysObI+7H%кV=Y>st셭\VM-!V=0 Pu2q~gſS ]/ endstream endobj 1036 0 obj << /Type /Page /Contents 1037 0 R /Resources 1035 0 R /MediaBox [0 0 595.276 841.89] /Parent 1026 0 R >> endobj 1038 0 obj << /D [1036 0 R /XYZ 122.806 747.976 null] >> endobj 1035 0 obj << /Font << /F25 474 0 R /F41 649 0 R /F40 648 0 R /F36 596 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1041 0 obj << /Length 1070 /Filter /FlateDecode >> stream xYKw:+\%]rHH]]8Aclj;O7h4|3#)"~yw$R24~AwvO'K`VҺzwǮrx?~rf M%e|;:V!29EΧ/M[D0w5#5óFR֔kDfT`JSЃ(׺c3rb=&L2 Ҏ$R+Lͥwׂ ]Eh* Q\7KLeߎ>ߞg5YUGU^_b>,0I07o<֫ Dr018P)i> m (IvPN)aa XߤZ9t?l vb*R_'X`)EX+"aMjqkxff_DfbҺ)0gtX#+’˻a8S,Hs7j5U% `SO(%NJ;gݰ}Tt8/E0$%>w #BKmjE7nX+pz4ݬT/a4+9m-7EP;p(hin<^=UՃ~hUn(_UQqCs 21P ٢&0,޸Y endstream endobj 1040 0 obj << /Type /Page /Contents 1041 0 R /Resources 1039 0 R /MediaBox [0 0 595.276 841.89] /Parent 1026 0 R >> endobj 1042 0 obj << /D [1040 0 R /XYZ 80.963 747.976 null] >> endobj 274 0 obj << /D [1040 0 R /XYZ 81.963 712.73 null] >> endobj 1039 0 obj << /Font << /F25 474 0 R /F38 617 0 R /F40 648 0 R /F36 596 0 R /F41 649 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1045 0 obj << /Length 1239 /Filter /FlateDecode >> stream xYmoF_N*|`[;UT;TR),s0t ;;<3@th>2(Ş cD.m#tm״lƙqzqrilZ.\;gVg/OLNӾ uFoנ5Ate'9h8m\%h7?!)⮋0ѠGAB %ġ!;]^@1A 79tEm#Þʹy{^\(r@|?O߀ #} Ă0K/B )z2nP}*f3;R0 Ff7*8f FH <%ɯp9(rnE^p8hWL`Η-wݰ )!i;uJayk\̨0N;Y^PzN>SuR1*<]'p.Oڷj*`2rmӪDP}Vn.%95Qmj8T]Qx̪$'R>sڵKzōcXj;Yq\J,S. ۮo8K"J;|[xXf_zp"}dk~juGzi&XKWedk6 k+ ]-Y}MxZډ r?3(vbfQv(cXb/ׅ0#628:$}9Tgewyu1A9qYE=macc`8K3,k+Ŕ-+P-Q> Ap$괥0J߆6w+_&RE0i<  ej2Խ .ofY:QPJoA֐ORrt:9E:i77A{ټJ endstream endobj 1044 0 obj << /Type /Page /Contents 1045 0 R /Resources 1043 0 R /MediaBox [0 0 595.276 841.89] /Parent 1026 0 R >> endobj 1046 0 obj << /D [1044 0 R /XYZ 122.806 747.976 null] >> endobj 1043 0 obj << /Font << /F25 474 0 R /F36 596 0 R /F41 649 0 R /F40 648 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1050 0 obj << /Length 2560 /Filter /FlateDecode >> stream xڭ[o)T hye_Rd[mw:“(ck;̷9HYE|+?}H &3J +%K3Ua/(Lqzfff:9=JM.oN?N((6 ivH[}qc )8\oɿNH%7R4]Rh-KAC+|o_N9?_$T5{N3 fXbUnK|/v T~]Un7=oC|`ەƦBg}R_;Ω(P/b % eYQܭm} Mοn{=k? \˧/ϮYC$\*V/_ve˶?x,ꋧ}}Z\[\lUs}?hIg']88 L0:r-~b^~%dBJ "Ut! (X'8O(>oj]Kt]'}YaLagUB ǩUS0ߝu%7<_>.8&eCci*#xA#KQ7]L%Z䄐UMӏK"&pym:X\^OgAAhta B4ahtB7H}(p l @ߓt# w@j8_! P娯n=a*[@יdP)DB$TFw%X@adFXnwX¢jH!Muq?0[_lbK0T9^0 eCPÙhuCakBX BC̠Z"B#ҒWnn+z;$vXdzv ]w~9)6Gzчl~y{ ˎ]9|QUIhO+Gd0qC,v;4!"=2TĂO! ؑ#I@~_4i ?%&]95d5a["!ڗ 2`#_p EV¥t!` u(3%X3q91&R&6(occ#l yj4|ry:?ZEA&IBh$q8Fp ʂ1JjV!-jw_ +=Dܒ') y0ʉ瀰qB aXJj@hB$d\1kU%> $@Ԗ'A>zwJwr1_`ԒoD.9QBFJ|o"`@ !һSD CaBmbǠe`~OV8A_߄Y|ĦY1!C<mkUF:p€ 56BnY9y ,*;(2<3La;9K jO? J`C40 &`bi Rk4:Xk%%ͫXNoqBK1є4A`1cq4#%05uDaiGp}QKnvTIh`*\`;Iʷ>I 9mvп0I~B`Rk;dIhI('&S|}֍[$HgT8`6A&LFxZe9NĶG D-q :0xa DHN $EACI"-'Cy`895E>+Dn}5E_.,a>sk2 endstream endobj 1049 0 obj << /Type /Page /Contents 1050 0 R /Resources 1048 0 R /MediaBox [0 0 595.276 841.89] /Parent 1056 0 R /Annots [ 1047 0 R ] >> endobj 1047 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [328.157 480.388 334.3 492.344] /A << /S /GoTo /D (Hfootnote.20) >> >> endobj 1051 0 obj << /D [1049 0 R /XYZ 80.963 747.976 null] >> endobj 278 0 obj << /D [1049 0 R /XYZ 81.963 712.73 null] >> endobj 1052 0 obj << /D [1049 0 R /XYZ 81.963 622.107 null] >> endobj 1053 0 obj << /D [1049 0 R /XYZ 81.963 541.21 null] >> endobj 1055 0 obj << /D [1049 0 R /XYZ 81.963 460.314 null] >> endobj 1048 0 obj << /Font << /F25 474 0 R /F38 617 0 R /F16 475 0 R /F46 674 0 R /F44 651 0 R /F43 652 0 R /F40 648 0 R /F36 596 0 R /F49 1054 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1060 0 obj << /Length 2366 /Filter /FlateDecode >> stream xڭKsF8a"*tl*嬴냝Ƶn@h 2sSz<-QWWRZU]H \+3ac)6Mu<kƔoZn-tjwȏ篯$ERֲ~#ׅ(u \Jk4t+?ǘ")(mJda-}:mt?z!wăG)g==>Sh#|LioO_<}rXj3LiG\% \"<#aBvlt)pX`x<|K-3de6~^+ۭj.P)[jH#x9i ]"D)I%2B|DF2*AD1D*T, к9^YXX/lDwÓ#9Iqx^c"W-㓖7?"菌k/ۗ 6@0+?ziIs Bc3@8H C"gQ:Y48F_q`U*E”@4 $᎓(=>I4ChtkΡ4 Pz|Rh~# Z .@&BzW5M,ďA& 7R̾?}&o[XȽ >k/ g'@a8A“=x kv II`QiX{>pz{-?V9ZnZͱ 36YDp7VOe  YңGG3ˁ8Hf n0ՀTJ fp7ұ*Nti y@v4|4Z _]XBC㬺 š ȣ)Aw=R^H5{2J' R̦2tJ 1jq4vDr^%Y#L1vVלUɪI5ܗs*=>95ߝXGD=a*R2k 1v[̇yNNXv}{h {ΪtjPmUԧ ƣJ X l{;l?UMӍ/W9,Ȥd"2eCm{ȩ@*u76(=>Y4Y!ۥ'&!$im$<9;X_V8 rCGc[C故lJ  îb,x1x4 N”f(yG(^0rBy'V:5/;NtZ<( O]@@_K#^yI'Fw]aBmkFјC+g )~X8 \5|5ǥR*2,+{;D/ S3vX"ף!`,{Ho2\^$ WrZͰQwyYN*25}uqE Ҍy*.t@vd` ݩR:`A(:POݩ(`qRԘ=O;|9e /W + Z/#^4+xW.w endstream endobj 1059 0 obj << /Type /Page /Contents 1060 0 R /Resources 1058 0 R /MediaBox [0 0 595.276 841.89] /Parent 1056 0 R >> endobj 1061 0 obj << /D [1059 0 R /XYZ 122.806 747.976 null] >> endobj 1062 0 obj << /D [1059 0 R /XYZ 123.806 571.311 null] >> endobj 1058 0 obj << /Font << /F25 474 0 R /F44 651 0 R /F43 652 0 R /F40 648 0 R /F36 596 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1065 0 obj << /Length 1681 /Filter /FlateDecode >> stream xXms8ί3sջ'Hδ:Nӹq ämjec&_HgVfcɨLh Zx^]#P 2O ݉Bߍ ~c-yM?j⠛y|JRrzycG;s( п񆭋ⓑ@p P cNf-:w`!ܦX+&Z !7mxJY(RQ;gd$! _Qb j>ŒVFn{_*dC@Pto.βɴLcKRfs-Q^u y= NcH%ʶ֮3Aff 8/;s\1n,Hن@\1Ͷ^]r/ B2܋ }O} I_|xA[#~U@b@HTK%-^0W7~:PGkg (:铁n* ƕB -iMQfl1 P0#̒҃lx+d;LԒL|n=ڃ.bM!l}.6U0^^K `f 5e;ۣC w: )[^`ߖ+؁re=X%RzP0}r Ӄt?Otp iv>ك:dˣ|z ˗`ms̪ suq Fs~2EIp@݊'QU94޼.5_7U1-_Uflr̖F\Z|ԊPcz̙π tq |roIg i~^JcQc&XfTi;V d?}$Q!߭t+{bqm-#;.oHitܼsCMB} ] endstream endobj 1064 0 obj << /Type /Page /Contents 1065 0 R /Resources 1063 0 R /MediaBox [0 0 595.276 841.89] /Parent 1056 0 R >> endobj 1066 0 obj << /D [1064 0 R /XYZ 80.963 747.976 null] >> endobj 282 0 obj << /D [1064 0 R /XYZ 81.963 712.73 null] >> endobj 1067 0 obj << /D [1064 0 R /XYZ 81.963 595.539 null] >> endobj 1068 0 obj << /D [1064 0 R /XYZ 81.963 351.157 null] >> endobj 1063 0 obj << /Font << /F25 474 0 R /F38 617 0 R /F16 475 0 R /F36 596 0 R /F44 651 0 R /F43 652 0 R /F24 476 0 R /F41 649 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1071 0 obj << /Length 1710 /Filter /FlateDecode >> stream xZQ8~WDJvBB{)l墨mR Yr:ic8!˲q]vߌk hfM[ض4-ַuz,>:e ?.&շ麤=8~;1cA|!w[2Mbڂ@қLò[- рa \GuYk=0Ob3D"A0A@H#-Jf9`$at}m5bGMz,OLmHxh8 3]lEZ1(6(+SHOP'Cb\8`@ ?mme-Yp(E8Db& xW<Ryn2iSV6(yixiFhZf6)ܪ)2yȎܬJK (lDûgFQ9~X͛/A 0}]%xkJ D+ෛK_0IK 0avU @bq_aE*9դ4ͮkIQĊϕO'I?Z)p9%MgVeb[}d|C1'$8xNBxB'eI@I>$8 ؿkF 6{F]HzsY(dd1W?"|M6QZR;-3s6=Sbm 7ըQwtiuhuk2\nX}vlXڕٷ63Fv"7_st3@jY|K]o4gճ"BWq/ZrNzQ F~?XC7w0JRͧ_WpeHhu=:=z4Jz_ߤ][/# C LK QQICIC2% endstream endobj 1070 0 obj << /Type /Page /Contents 1071 0 R /Resources 1069 0 R /MediaBox [0 0 595.276 841.89] /Parent 1056 0 R >> endobj 1072 0 obj << /D [1070 0 R /XYZ 122.806 747.976 null] >> endobj 1073 0 obj << /D [1070 0 R /XYZ 123.806 719.953 null] >> endobj 1069 0 obj << /Font << /F25 474 0 R /F16 475 0 R /F41 649 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1076 0 obj << /Length 1519 /Filter /FlateDecode >> stream xYYoF~ׯ ً\2I 8\8HKa灒V6IGكIѮ,€w;B֩_zGĵ0v%hfũFSfFNs0e.} GF+ġ[y+0B |J[QQ K} s`UE] dQ1^y"{H_c<sO4љ|;溓t;iRe+jIBLDVQìLHnOg4Ka1sa2iD^4|YTEM¸\(3 K \ .SDX,2Qb~A,C\J>#0=Ya&΄02JRhG$rU*&l5#EsPV񯪿UK;Nq fc|nEy]3RZ3(]+T87g  #4g?tM CS9e/}bR1-.ENҀr9u=_^GjBqGJV> nӆ9΋jFy5|r~v2] ް2st!u2{yoTd\/6kP~ugbf-Ϋx^Т.s\}&+!_vU =X(U(MCVuʢ:`xğ><OaF2힎x.o*~>HP qwxc!RJ9Lm)-P2yf -Gq endstream endobj 1075 0 obj << /Type /Page /Contents 1076 0 R /Resources 1074 0 R /MediaBox [0 0 595.276 841.89] /Parent 1056 0 R >> endobj 1077 0 obj << /D [1075 0 R /XYZ 80.963 747.976 null] >> endobj 286 0 obj << /D [1075 0 R /XYZ 81.963 712.73 null] >> endobj 1078 0 obj << /D [1075 0 R /XYZ 81.963 410.899 null] >> endobj 1074 0 obj << /Font << /F25 474 0 R /F38 617 0 R /F16 475 0 R /F24 476 0 R /F41 649 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1081 0 obj << /Length 1456 /Filter /FlateDecode >> stream xWKs6WT @|'?68qm@ĉH*$e]`A=lFt:EX-}%#3ū@DL D"PiN>R%qyt>\xc)*}ozw=;'?>+oF눃jF}HoE=ZǾ5b{3GBϹ7,JY55Xzn F3ݶE53xh02B?_"Zfi[uLڮYe]QWz^dseZ:w*sn=׍FN.usm6VrKYmQukUmhp:-ZAB2Hh66JزwӴs1ߘIgVv-X0bR֫&sjo 2D YX~6 R:m @;P&FϵQ!#FmA?TIƃjԳ&-[PzstWuNtȠfUMpEi4f%Wm:%\#7u L|gU au;CX*v f> 66@mJ_LΧPD*!9߸*ChGpmDeB|׆a;:}sHښNlJ+s_Άͥ$QH|DHHD$0gK˄Nn e/$i' I ӏxiO4^!G'N@褯^}؆4XݔEaMJ ~k%Y,`t_dIk)ƾaӆyL.R| D=sޟ&Rd,pq@87\ m}˅n_~Vǁ|>DIc/؝p70) Гbo pZ71A9 pny!n1̋nY@Ƣn4za|a*T Y؉ fB/ mY;J o2#eaAso1bo#p_ۡ>wlosVgszgʒ=sN; ʖ'tG?Iėq+AOF,}XvTJ˘ҵ"u@8:*\zWX7ukzWB{.BOڡ>7 G endstream endobj 1080 0 obj << /Type /Page /Contents 1081 0 R /Resources 1079 0 R /MediaBox [0 0 595.276 841.89] /Parent 1056 0 R >> endobj 1082 0 obj << /D [1080 0 R /XYZ 122.806 747.976 null] >> endobj 290 0 obj << /D [1080 0 R /XYZ 123.806 712.73 null] >> endobj 1083 0 obj << /D [1080 0 R /XYZ 123.806 581.094 null] >> endobj 1084 0 obj << /D [1080 0 R /XYZ 123.806 473.863 null] >> endobj 1079 0 obj << /Font << /F25 474 0 R /F38 617 0 R /F16 475 0 R /F36 596 0 R /F44 651 0 R /F43 652 0 R /F41 649 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1087 0 obj << /Length 934 /Filter /FlateDecode >> stream xY[O0~ϯD_lO}CH mJ+&KwmФ9峏?;DЙmQ=!l#!IJ=tmr Ũy|i1ۼZ D/˷3E%ºi'mAAtƌQ z0vfҙ!bgпGWd]xγ6/=#@G며O̯+G#hK3Zd;fײ0\F~8I5 696.DRE "{y> endobj 1088 0 obj << /D [1086 0 R /XYZ 80.963 747.976 null] >> endobj 1089 0 obj << /D [1086 0 R /XYZ 81.963 667.202 null] >> endobj 1090 0 obj << /D [1086 0 R /XYZ 81.963 367.326 null] >> endobj 1085 0 obj << /Font << /F25 474 0 R /F16 475 0 R /F41 649 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1094 0 obj << /Length 717 /Filter /FlateDecode >> stream xWKo@Wԋ-՛}{ݪR6Q'@ph}^kBR 3aK{9a9Q 0P"* D1\x Q4./~=:y}ӎGx'3O' r;`u5ظ@J193b HC VRBΨү*3Cȸapdp&\T؍/EjXHN$%3WgpG7Km>%VgcM.i>4E>ΓY2ܮ1g 0l1BK`y 5h `nJҽmTO犣 JV6jM3Tti(0T3;\!+p;VP(lcXD"3}@eږ+H5 [ׂ)J36qMmwm78[k] oa6ovPEd-P+ M e>IP8GR-eKn> endobj 1095 0 obj << /D [1093 0 R /XYZ 122.806 747.976 null] >> endobj 1096 0 obj << /D [1093 0 R /XYZ 123.806 567.077 null] >> endobj 1092 0 obj << /Font << /F25 474 0 R /F16 475 0 R /F41 649 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1099 0 obj << /Length 1055 /Filter /FlateDecode >> stream x]o6ݿ* X )(Pْc-YN(1e)kbRGy~?NlFLޟ:?! bq8~;z5="pFdG4].>b[]ܹD,\1/ hPCAZ /`d$PŸ &DIKk"LDN݀#J Ra%j!o3˒bj.k5L`L 1*5ϴV<|711"BׇRmRίWHǍg=̓"mb/+b7gc'%dGĔjM< .*8Ti`} ar?C)V Xz\a3k P%tPcDRzYNjbN%YIڎ_WILmJ>P 60FN}1U?fAF]CN9ړT[zГ U_@> endobj 1100 0 obj << /D [1098 0 R /XYZ 80.963 747.976 null] >> endobj 1101 0 obj << /D [1098 0 R /XYZ 81.963 699.581 null] >> endobj 1102 0 obj << /D [1098 0 R /XYZ 81.963 255.247 null] >> endobj 1097 0 obj << /Font << /F25 474 0 R /F16 475 0 R /F41 649 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1105 0 obj << /Length 2143 /Filter /FlateDecode >> stream xڭvz ,(.XyȎ$dj#3>:$o A1w[٧Ldgٻse3)yVeeRi˼v<8>f0CbfoC-3|0 _lU^]ZvQQ廳I|ZdKk-_~Gܜgӣw[q9+ޟSuȤJZL~!pC)|d@ vmdN'N?ǏI scȣS.}EXnt@MWvX7h|4«U aw/ ps״fOǯ7O兇ឩS DnUhS:ёkIWKyB2!k+Ce042x`75@Et8t-&vNEn`>y*FJn64H,ad/&| 6!C&B؊'7Ň)[JF@ ŭtC)eW&LqZ]gĝ s% S)6LJOH)]Y0%b/\\|a3+ W-$hQv)?VgYT:h*QkE3e]4g?ȻMKyW2Hҷ*IkýT "HmB\Z:+Y'Ţh o$JSL[>\y%e*ǡRM[ѳm +aK1A3^4-e'Y˦pbPAVtFTcCdI{2`ոE ]^=!9\*%bdNJծg`lqO/-הI5Otib:S5(V؇b JUpAQWb`&d-Łrm56W% .E"( @bGw\N[uI7}Dݡ9hM@kAzYעJۀF WdFmpԋHѼoBJr,;!0`6.C 6yF~YOqh7lB< YuQQJmJ^<sCK1`h3ctC- #ZY rB/֟b~ nX(rڢ1Ϋ@.OmFX%JՔD|˨Үb6"y{! {]"5#U\zG= B'81~f27`;,z^6nedYJYcYX1Z9O;TǶ "7P%ThgGH:8[6apT[@Jj2U .6Ca=n bU1[]uZoY=ZDYfn׭zwhJA|dԯ5%զI~9vm[Щč14(ATAmSp~5VuB-ѵ\ҍ(]\6xn`΢5!E~ՑKuZV"C=& l&`c_g(`"򡶾FpmMzGXeB3Z\eĵ4n-]kF'wq.9B;iP^cxːAl%gT) ӘN6"£LmHBN?k̇9ypоQ&f0D˃R ͛ tVVprNRՕUR5Aw0ek6l[쪈ƽ5VQiڟ q?)pڀDt[ %+RBXjT,]&Jkp;[ٶ ;%.<*]@[ßL[k!lqf|.v-]em$*NfS@ 2 FȾz͢ :hZj(ric TՁն~X d(Fr2;Q+=LkoB@ߥC~ endstream endobj 1104 0 obj << /Type /Page /Contents 1105 0 R /Resources 1103 0 R /MediaBox [0 0 595.276 841.89] /Parent 1091 0 R >> endobj 1106 0 obj << /D [1104 0 R /XYZ 122.806 747.976 null] >> endobj 294 0 obj << /D [1104 0 R /XYZ 123.806 712.73 null] >> endobj 1107 0 obj << /D [1104 0 R /XYZ 123.806 678.868 null] >> endobj 1108 0 obj << /D [1104 0 R /XYZ 123.806 558.519 null] >> endobj 1109 0 obj << /D [1104 0 R /XYZ 123.806 458.096 null] >> endobj 1110 0 obj << /D [1104 0 R /XYZ 123.806 327.784 null] >> endobj 1111 0 obj << /D [1104 0 R /XYZ 123.806 247.286 null] >> endobj 1103 0 obj << /Font << /F25 474 0 R /F38 617 0 R /F44 651 0 R /F43 652 0 R /F36 596 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1114 0 obj << /Length 258 /Filter /FlateDecode >> stream xMKOA )z9{@@01AU7aM~-' ܰQb@$ , @`ɍ$-E&L/9\ۓ.&’(QҌMf"uZ[\!T97:+[!HktX'}vTdMQzox޺43|t_Y9pg\-rRuzrry~vP+y |JV endstream endobj 1113 0 obj << /Type /Page /Contents 1114 0 R /Resources 1112 0 R /MediaBox [0 0 595.276 841.89] /Parent 1091 0 R >> endobj 1115 0 obj << /D [1113 0 R /XYZ 80.963 747.976 null] >> endobj 298 0 obj << /D [1113 0 R /XYZ 81.963 712.73 null] >> endobj 1112 0 obj << /Font << /F25 474 0 R /F38 617 0 R /F16 475 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1118 0 obj << /Length 2325 /Filter /FlateDecode >> stream xڭ]s8={UcF`L<7[K2u5&v0xN6&;KV%t^"?:E "/B~|u#6F~>L)ЛLc=+^NNzzzwwqyz'fN |}W,`gyA;uq0qܝåsg̓Rɔ3UFET(bl0|?㑭Lch/MB7W@գbI:&4O.j"q.\U,0@UfK]y`w =L2{@:/ْ!Нd{\[|w:C[8QAvcAA5 |!%*#Ol]2bË_ENtۏ'`HEO @|hJ`u*@|@P4>I@d i%yxq)뇘#h.Ͽ fbw?}<ܧE༤1+ _v!JP+icxǓ2|Ԥ}Xtq_S`+z2xOtMxߘ`64\p_!4PpQIxџhCf7IQ7v ZDt^@dlu< L9Khy3I^1$(FrCPXNgn<ܠQh)? Y1hubh; ~_i]#lч jɏ+"dLȲ޿ެΓ5xmZ 5§oEv#r?wDq !Pp FړNw`r:&`wbh$ 36I$y6..`CfO-F&LɄ&[o F⇤wv ~70$ ~񪛳oK().v!{~}y/l.noohƁUaZJth*S24Eulp!ke jh1KH1q^y)|g肣gYJ TxI& Ve٘¹&>O׋a.-!Z)9Uak`jipBQ%WvILȃzRJ"VKnҥ.XuݤMum72+5dH1^Ch*[p"֓OCSj[/ʼnf mv-9nkɲ_Kriܡ6hre0 S{V튪\z-:ES՛0‘.¯厄xP&z6ΚdKԎm=mRjV1@t n\@!(M2˾plV I1TFvG L5#.S3}%òܽ۵ae,,`:9Q~oZ [ԐP6eZ;\l1qj[w]O{()&418Vn|߷ݥ~6 endstream endobj 1117 0 obj << /Type /Page /Contents 1118 0 R /Resources 1116 0 R /MediaBox [0 0 595.276 841.89] /Parent 1091 0 R >> endobj 1119 0 obj << /D [1117 0 R /XYZ 122.806 747.976 null] >> endobj 302 0 obj << /D [1117 0 R /XYZ 123.806 712.73 null] >> endobj 1120 0 obj << /D [1117 0 R /XYZ 123.806 506.54 null] >> endobj 1116 0 obj << /Font << /F25 474 0 R /F38 617 0 R /F16 475 0 R /F36 596 0 R /F24 476 0 R /F41 649 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1123 0 obj << /Length 2811 /Filter /FlateDecode >> stream x\Ys۶~gJ,%wv&q6ICKV+)I{")qHǾy0""  Nxv*74^Yf34iD؇i6bv#Ujެ,"f| <Čo)Q$X$zYuk%Кq9D4bGӺ~kp$.*"Rm[?p%dX$t2V6T1wJ+g5oP5X8)AXL6VV Rk (;8★x9Kq7 a(1$̺~~Q 1"~J(EՊcO$u]f=d&[Ip5 M,6%w`#.Ef<'F2 ϧ逨%%Mv[)89z5ohV[8^ʦaO2q߸?qφOKs`I5fxMG b4`=)&fkh͵H68&-URЯDYXam<=6rop)Nt.ϤdF9۞a- ڪ} s2Xb|ឱ8禰]bJzYyU|r5_$sny)qξMrL0|0GPP?ӿ g ޭH#S]~):v'B'"ȭE+֜TSUpa8ϵv\ 4յ@% k8)`4\&~Jf8F y"g 0Z]絁 B׽ &>0q_>64/T<'4 ( Ty8}ڸLX&6;\Wci ժ殓܄)q/fH!( Q2@UMJHj#%$mBф( !jYtin+X$i \q.ӱW`y9Hc'Ոw8KW^EOJaiZ)/R4aOCмQ%). i̮6%ɽs҄Pve={&KU5R%D Mpdy6/\%n@EC~^l21sigzL Cف9lvQ7mL$ʍ\+[brcF[(d㬿/68A.l)o}x=6D J 5@gc)7vjwMlʛI`]Hv*_qFɰ2}C/Wb_Yԇgk{n.E@ @^ #jNfntbCې.2w^n27_yxK`TOvOѡy"44|{UOv_XƩ 5?;qO% f `Y6Úf>bl۲%TΕІ0'{ۿ mnFgt*m~>_V{@FwcMwͮ756 ul)NSe4ykht+;X"&|}p vEt$()2[L1t[VF)" [#~K۴xuh2O("P80R;(Cy3-`Ѯ)0׬`@b_r妵5@l3Ⱥԩ!Bs:*뻖=*c^HYPi u6?I[wI6eVH;?+Va ެ `O;٘0ѻ0?MMt:WY=81O$؉JK+þn&e1ϸrRN@2^OVZ*M2q|yy7s_}|ruR40../.]_~~6(ŻW^^6ea"YQ,RG. endstream endobj 1122 0 obj << /Type /Page /Contents 1123 0 R /Resources 1121 0 R /MediaBox [0 0 595.276 841.89] /Parent 1128 0 R >> endobj 1124 0 obj << /D [1122 0 R /XYZ 80.963 747.976 null] >> endobj 1125 0 obj << /D [1122 0 R /XYZ 81.963 716.124 null] >> endobj 1126 0 obj << /D [1122 0 R /XYZ 81.963 458.366 null] >> endobj 1127 0 obj << /D [1122 0 R /XYZ 81.963 358.255 null] >> endobj 1121 0 obj << /Font << /F25 474 0 R /F16 475 0 R /F46 674 0 R /F44 651 0 R /F43 652 0 R /F36 596 0 R /F41 649 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1131 0 obj << /Length 2350 /Filter /FlateDecode >> stream x[[s۶~[ w}IݞKt&-ItE:Y$E0H[<ą]~-|rv} *BP$ oBXI%PTRF7N{}a2eJMg]oF7&0?ӫ~Gq@(b?q0_Xv*`Z#/LD!J)%1a2K?agqfkQUzdi\nC)GXD`-Ɣ#y0m ;q`nvN;yu1pmVq%Δ2"F"[PE(4JO1omO9s47WƮ k2޸f2"+e[ p,ۙ9qNw]]%|fPĄ #˰ذs"o/*]݄El,}1yM:7d9G0OEZ*FJjVZ |2WJ+q$֞uH(7eo STD*D3@|%ݴ-p%O~Hֳ$l3L9a QL,^֪0f w]ej# Y S~p>Ѽ7W״XO4el 7MBlYa߸Wp-wc=K.=M%y^0^ n utEK0 6위_X8'`n̓jIbΓȦfrM:[gp,r124\&5ib: &-ËϓA봹2K܍P%uhSV&y ͙3okTikM;kfľ7f~殑TͶ'YmkQe&qOU| F* o~Y,3W{B"vUm%Վ8Hρ߾pXCPmizF:6)X^EDJ- '籝m\i>b;QH=.UHwۃ sٻFurψOp8A6<TpDwʃJ}+};҉ eݐB!B. ;hOhfwCM1߁0GnKM_wݕ0̢ʔmrψx~Y$As}BQ߿ޡܽQwck3*$s ˋs;:{ppyه<>PK=0&\B7azhMX4BkcVhR-/H_]}|/>QzH4VGM1dD{r8gLAjHs,*ͱF%Y *i}tV8[6ԗ&DwnØ+CyHiD{+TFTb W^F lB:H rztiFԗ&DwnØ+CyHiD$)h"=0-M "":Hst ˋt$>{uA=|X+CyHj= >.q~o9b!lTm;4S+>җW&Fgه7Op]ZTi0OVZ/.T"tXlH b.JQ<*EsPǩP22?>X*4A ]3ѤM 餩bIcTOҊ#S U}%Rd[7xIqiUzwu1ΒO9/2ˢ'b{ԫv ^r6.ޭ`6VSd4Ͳ}{>ZઉޕZ-!R"Հdʉ\b2e0hUK>[8FT]8]2X/55[L)"3;%Yr_>}j/MP#*ۻOY4ohJ :7-d )[FkSji̤me:ojZ@kl\2<ӥ+ĵd Ϯ2%M%jSJC4qψѨo5沧Ǟ{֙ӭCsU8UF: endstream endobj 1130 0 obj << /Type /Page /Contents 1131 0 R /Resources 1129 0 R /MediaBox [0 0 595.276 841.89] /Parent 1128 0 R >> endobj 1132 0 obj << /D [1130 0 R /XYZ 122.806 747.976 null] >> endobj 306 0 obj << /D [1130 0 R /XYZ 123.806 712.73 null] >> endobj 1134 0 obj << /D [1130 0 R /XYZ 123.806 564.324 null] >> endobj 1129 0 obj << /Font << /F25 474 0 R /F38 617 0 R /F50 1133 0 R /F16 475 0 R /F36 596 0 R /F24 476 0 R /F46 674 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1138 0 obj << /Length 1988 /Filter /FlateDecode >> stream x˒4_jHc;OjZOw<4=夝,3C$K,˒f>`O_=uB$b i2*Tl~ sb <(LŬHsg 8hM$d*T‘, xY zLIp[+|= d٥HF"T*&t6Q]F[M[̀{Ӛ^[u?ߡ,, ^]3XJE&˰nٍD Yx, X.vop/A;v];}۪Y]Nv<%Ʌ'ri;3 - Bt}Z]6t~Fj<9thp$ n$`CQiڞ 5&*1f))awEqޤMC3sd;{+~Ȓ0g+nmha#@U -wi6m3Bև46-d.7,a "Tą`9Y⸒hXoM{ZK)R6+8q%,'O@UYYy63]u]=,Δ;6edӬgJSk,N-\dpy iOB@'$\DM)uIvYJ9rHdq1*UP2휩$Bœ_:c>K|g=4*"uKMjdg"~ܱ>G< ^~He܁d?Lę<ŅF;'\P$L.ey{mo]o e9Q+Ze%[Ww v[sODޝrI .DSo̗D7)^ov|Vxqew{t=$aYN}ߗ;XˇE9mlGԨ)A|s,ջ_ ‹&~k ËSYɱw8Lo-"-E$+0 w_ūpQiyer\^;TZz* (jԩ?j5~D}b!QQ=, G9? 쇇#Tmbگ{y/(E,1O.>R'?"ɏ` GȾ>1(tz\ Y1ݺ& S_!G?be "Km԰`Ѝ/v`;j!Kv}f ¦BpKr#1ZVXPp]XYB}BSׄAkuqٸtdZl^6@~j@m fUV[qDnPajf9h4*.r]RYJ_ 0i/^(쵶Mqi;9s-;Ä_6kmWhrS▦,|3Ֆ#hFS 3l_,{nC4DCPE[5Zz#V];466T5Co0N8  EQR[unzzCk@즯ѴNe皸xsY?H,6]d^G{c/OK2ql(e.2:`SRI2UOĽGUHD: m HǾdyaM"z6eՔ9ؼ.DDO1N +TD51Qc\%2Q|-eSS",ڱP|mSa=}}hGCi0=1qKؔ 17/ Ft8#=u8 /"vTP86pR`fơV쫫' endstream endobj 1137 0 obj << /Type /Page /Contents 1138 0 R /Resources 1136 0 R /MediaBox [0 0 595.276 841.89] /Parent 1128 0 R >> endobj 1139 0 obj << /D [1137 0 R /XYZ 80.963 747.976 null] >> endobj 310 0 obj << /D [1137 0 R /XYZ 81.963 712.73 null] >> endobj 1136 0 obj << /Font << /F25 474 0 R /F28 511 0 R /F16 475 0 R /F46 674 0 R /F24 476 0 R /F48 922 0 R /F40 648 0 R /F41 649 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1142 0 obj << /Length 2049 /Filter /FlateDecode >> stream xYKs6WpRӊH;VSg&5=P"$1C%. MjSOۋ,oXrt1} s'µfK ߚ[;._|wf6Oз3D/non?\|;^#W0](FocV ,xqd*ܺ4b<Փ1' -7vv-qVYD^T0v7qrFvdL+jhc` \vy-@.*:2߃K:@M4@y.k LHwծ}C|"FQ釱$ߢnNjM[oA[-\W˝0襨 8GZj`9:?2DR+ ^Is\|qM aϰ9$Zip8VE&1dj״NNrE| ̸ 1(#Â7V@<>p%k b4WmCZYKh9-U)RN|F*zSV M4ڐOj8|.tƧp2-ETih/G"i =P U`H-JuU@JqB+(qܢJ.m[ufo0OϷYN2]R~=ъz; y`""})\՚QOVtsv:+ b؃)!<;;vKX{͙28RQ;\:1tZCi7[k B2: Gפa+ FJ;t^b„jYV,lj*ql6gG)Z;bN-)n릷@K T_=(*8;4t*F=~dq,W8~U ̃o7%CbBˋǑgBSCcjry:qȔzN?7tx/E`Tw",7<2!Y؉aܔ#l-t4PUu c8ѐ]hh7oڤnitcֲiht4I: yv$icwؚҙ؃Fj'\%5 [vU.j UCv"ƩuhsH2{>~4HwHgݪ -1'Tth@'[\_}98 ࣴ}h4/ޕ]:49&*GG#v7n ~~dx;V!]WTGt3x/7ޞ+g7:AaǙĈ,ڂBj i/y2Ǐ|,`?WG AF1מ[J K=~[sox;.:g#{u4 .c%ý(vM=<{F 8A졨Cd|f08_?T UJġ__ =Kf eH% <}P>=B7aHX8תf<f=&<\G_V?9TԿhOu mX?e9RzHm3UxE7Ng? endstream endobj 1141 0 obj << /Type /Page /Contents 1142 0 R /Resources 1140 0 R /MediaBox [0 0 595.276 841.89] /Parent 1128 0 R /Annots [ 1135 0 R ] >> endobj 1135 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [191.983 509.327 396.94 522.276] /Subtype/Link/A<> >> endobj 1143 0 obj << /D [1141 0 R /XYZ 122.806 747.976 null] >> endobj 1140 0 obj << /Font << /F25 474 0 R /F16 475 0 R /F46 674 0 R /F48 922 0 R /F40 648 0 R /F41 649 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1146 0 obj << /Length 1343 /Filter /FlateDecode >> stream xڝVM6 𑞉[&i;L㴇n\^sV\Jv}ڕNHW|{eVRf1jݯ SeiV.,VQ۟r WȪFW&˛r_z{zFhMV%i||vG\FLC@uU)Y]Hv(̫F|: !߯u.b`F?dL;1Uf=8A&ɛj&H!CG˝mvO8ѷMw'gf݅/v'(8p_U -H1D΍\ޘo&R籵=MЧJ|--P@R"X8l`|';:kj a #‘ͦš%B`9ۼpq3'0PN`Ȳ&a e#n?HI]Z;l(23@΄);gP3U䏯7$un'yD tR"В"xk)qC{qgSO3N~Lvz|sK-HjqRH|Jݰ5B(R]@2];fx a"[|!YŏWHQhnnG ,&T1I3-S?{H7_\=HKf4"ri\eWh#~Eϝ#R/+$_PsG OLTF1HK 2orj endstream endobj 1145 0 obj << /Type /Page /Contents 1146 0 R /Resources 1144 0 R /MediaBox [0 0 595.276 841.89] /Parent 1128 0 R >> endobj 1147 0 obj << /D [1145 0 R /XYZ 80.963 747.976 null] >> endobj 314 0 obj << /D [1145 0 R /XYZ 81.963 712.73 null] >> endobj 318 0 obj << /D [1145 0 R /XYZ 81.963 531.265 null] >> endobj 322 0 obj << /D [1145 0 R /XYZ 81.963 421.119 null] >> endobj 1144 0 obj << /Font << /F25 474 0 R /F28 511 0 R /F38 617 0 R /F16 475 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1150 0 obj << /Length 800 /Filter /FlateDecode >> stream x͗R0y -充..00 V]dgi`):`0<N AR- >P9 J <& |_Fӹe3߅@+`1;:[uLjH1 1F@Rn0He)xr&9X&1 %3 kb\IF7IUYUeK>rl!P=-& 0ڮT3*m&'iAіJlׅqɘTde݈6}$_Q\[qVw^KoZQRTEop!usp9S}V6 +"kq̟zUVKocqҨcplF* qxo}|,ɅE4=x ˹B8 sgy+y!lR)/4t$". JI,ß<84,΍F}!@EYѤjKu{<趓,z.YBIcȚx]E aVE` BqމdJ?VoN`Z t'r6$y he:煑n=c"ۭd)N҆T޴M}6^>2խb29g]^n'܊2_!RTewIk5 u7R:bվV4U1}']bJq.kD\ӫuЗsya endstream endobj 1149 0 obj << /Type /Page /Contents 1150 0 R /Resources 1148 0 R /MediaBox [0 0 595.276 841.89] /Parent 1128 0 R >> endobj 1151 0 obj << /D [1149 0 R /XYZ 122.806 747.976 null] >> endobj 326 0 obj << /D [1149 0 R /XYZ 123.806 712.73 null] >> endobj 330 0 obj << /D [1149 0 R /XYZ 123.806 406.918 null] >> endobj 1152 0 obj << /D [1149 0 R /XYZ 123.806 381.134 null] >> endobj 1153 0 obj << /D [1149 0 R /XYZ 123.806 364.696 null] >> endobj 1154 0 obj << /D [1149 0 R /XYZ 123.806 345.933 null] >> endobj 1155 0 obj << /D [1149 0 R /XYZ 123.806 329.495 null] >> endobj 1148 0 obj << /Font << /F25 474 0 R /F38 617 0 R /F24 476 0 R /F16 475 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1163 0 obj << /Length 2671 /Filter /FlateDecode >> stream xڭYKs6WHUEvqԠfeB*^.2* dÏWW_$L&y"ePlK+xc "Fn5:|땘:@&L"J;: ~$ aMޭ -¼+ѻww2]KF1'+R%I +YpsB_m* u>oY*\P 7ÅE?Td}_411{ypAKpU>WEOFMU ,GmINáe)YA4?ኇA"6gyFia#ڦlpƏ0a Ow]ͻ~q>/BsV瑷bjjNfiu˷VYvy1T͚_l@8䧏7=A }#RڌN38MaYn[-qV`*)_>|ux#7dn;o+/[4uxpN3CF LD[-qpw鶒ƴ [L/=f=k|TyϿOHx۳۰jX>޷ M<-m46aA$߁~2B"D&9b{{3}qiwTSn~sDJ0 zCMIp p ?n.WtsGm?Y$,騬}β(5s)抯2Q|J#c%KW6uuS@C>40x,b[ɥ̶bX1FO)|`}_F(7%~7Ñl3߂/B O"P!E}ۡ"e| xR |1 1rMнN!g` lLfj4$e}k$ bsa`P&#2M:İ}F! dYb="-zW)6 (o,ɧqi>1c_RoG9/x#HA|UpƁQKᄃwϾ墲 V3?^vI%fKP@+\(eNԃN}Ρ7qR OImmI*ĵT@ȹg\Pr~񚛪6)/J4qԲ2y"N`|Mͺon']7Fa2糘 ORĔ8ׂ}ϼE0rv/}^9.L؟UR |N1dHwer/r]v }lcDs|WH܄c8)`Y;gLW'x{|2%6֌1E''@ڰwQw<˦: o6դ~?%&1aҵ0]=k}y])/iP4=u4kN'=Ũ|wxZb9aDJ9qMܒc$|v2C2I- 3XIqN|8hf6fVͥ(u(5^M%r"*$O)MGfV0uUcO"jF0ߏ,zI =Nk0"$PiG,!Zf&H9ZtWqKLpZplZAmMtf\w =҈䌮W銟g9蒮H!AOequꔮh(i@縊/X?2 8Jӥhw@MGh„,%iw=@BnxH?HSf259DĆ!`shw|)9{2z-zE 9j|Xxr j2BvL1{{] *<_@KZ5V ']7.#w#m75x/Zڳ endstream endobj 1162 0 obj << /Type /Page /Contents 1163 0 R /Resources 1161 0 R /MediaBox [0 0 595.276 841.89] /Parent 1168 0 R /Group 688 0 R >> endobj 1156 0 obj << /Type /XObject /Subtype /Image /Width 32 /Height 32 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 1169 0 R /Length 1212 /Filter /FlateDecode >> stream xڭOWmsֺյ:ئZ.uKٟЬo&4/L%:ۺu)HE"^@**@C]^ϋ{9܏ݞ$t2| |BlNmZd޾]xEEeeittMFrc\ hݢϯ&YlncUX("?_VX[ŹU[p8գۻԱVGff LeL=eRgd[iuu4FBɟOK+"y997-YYYe}ݻ5~'$pv.> sѧRy&2/^dAHb0&& ~F"ey06.Y:Z'hvZ +dfLw:=DQ hUt4'ORatS;Ra=~LF?,~dd(`LBU^.Q|KCQ|N MJj^; hhxܬhoigX/O!w58t{C0Mmm}]2mu?[豤;H&ߋl865G"Q__ߩTjSe%XSB1ffgAXܿ?޽_bɑGkP2%Q5CrJwDLڹ%fKi,Hf"b4n_,3ovFr6cfnH~%4NqVȋA"v*mu3Uu)^?k"Hte"ω2Ԭ:}P޾\sfQ؉-x!x^N˹|+3Mި Q9DGK ӑ]sWs4-^2O1Ŭ?AaƗxv4t \4{Q"BS.2p*Y<}ŝAiး PLZ e9! > stream xc`~@(h`>!8PE f')O@Ҩ~i@Hc IcI@(A,S{d/& P}P('!=nU+0O@A (X@@ 0Wp pF`H0 8pDvYąV~Wz3qk֟oߥ~GY<MϽ}e~W,c]& > stream xX=n~ؒDMN[TD5ĮQT{7Dc;Ҥޛz. qey{fgfg|WECCCCkA`{#Z6 Uڰ}kxUhhhhhmD?4J9f>ޖ6%â5Z:]QOcpbwRi8cuܑuҩâ5Z<]QO+>!3S;[ Anւa䴖BRҭr$-PȌ\X44449Pt4rBE B`X44449Pt29;r.3$=@(ɰlV,hhT8o 6+& 5xHcKW?4z0/Yw.31bo/BIe`h RJ +j3yU%啂ʂ⒀cvkvL^_{+qϸ<2X$n1-ty啅|dkMU,ϸƟ&8?\#*O sNmtk<$OwKWY{8{ K_Iϛ\i 68t4w2&+c<Ҳb. -1xmcw֝fKLg6F/Kn2MޣO]BPY[ns]rmVlӏ&P7!'wݢf_}8RPфMqr$j5ĉnK#muo&HQ[{EQwN`vPa4aTRÊLv <[o.(H jZl_|g-jKơM6:%)α,p&Dec[cvhṙO n5l0pN,μm~+- ÏϠfRXUYUUV^QR* n{68EXY\ZŒοO߂A%9zXAe19rz>ҲLk@p'?_mWAxQ\g䅋e$ e=q-撑HOGWP\>1̙>6>R1X&\fV KCRJ=03nk)t(ʊ14 auMiٖ/{ 2RD>49"nƦo)%HB"?&"FnrFq$Uu'[#xS C𘔅2r{2fnykUNK r\ZӀFt˻eb-uQb8O_"2C ~-ySL"<6ͯ=cRRcH;YF:Х6*'۝!dX9MjX: :9Š- ݫAM´3n̷Hp(JJ4 W1i24T$bq}zbqK]`8:-\ g$oY2 W5feiqr/aNVe׵viQ/1 tN+zskIH2Ryfvώs^_b`K)I٤:! J! K-j섘!sB"A&{dEXgeۓM>[}cK 3bיAlmmW77l6~?d:) k,}rvϔC̱]^C喥VaK=)$[Ø´\y$d 6)c"~a!*2[ Yzu>9BXEsEmSyY0/7ꃄ:vJV!Pu'J*HH2x{5Nz6^npઃA+5Z&a3UMC~sxTo$V\ptfq2K"Y/#$%."]SBay?ẄSS1Yŝt0$Rނ]]N\h3$iR%B5UjE. #;w̶wN)*/;a5N@R+3NX{ K+͉T4#gc\ϵv,L!xv?J0Id& e{(\wAYB>l-iY%\G]aib x(ܻ⨵K= /q8",z /=+%fs-}u-vfl6cN@][&2D"jZ,W"-uN3PXxznn:%@f&ɣ>~95{!WZ AmGlV{dU>U|[򲬦8xg B&DFᒘVKy҄^µ8lrBtҲrAY<#NmpH-mqDzHط[^ki!mqiyjF99^쳘"txYLӘU|OUEIcیfL6:fFa'=ef3E7򴌂+cEaΤQC,"UY)KfVa^q6+}ŒxRSTϊα$z7kU7\99kKrCi-4۪d{h=: E˟ uqsu]{EXUH59ҳr[o!o0{[jɦ6!u[']ODӜ2S6/E r#‘ڦ3b3Ct[^~MFmV`(jҨ)2}͜nH=3.KEmΈr@(aƇ55s F醖eFXc.3#XeK,2LHMt^fby7/ucE إE٣`kC*Mv#~-b .d#6sӃɑ >k֞{]O68eR_oU%!sk7=Msc4_sӵI aueY /=XX~yAZ mc&ٱ"SGr{4Y&A4222\U.fd{_PQZBI0" UgᓌC HՒZty %Ue)'y{ғj[:'գ~ɍnG~)nk}>[)=Y@FX, u&%WT8~k2V"c!@cHtmSȀ.5%R*v^Y-d Ef[([~Famꤣ"'[6n6e)eIQx ]R4-6K%ۢǹ‚n1Xΰ_ 2&g9;dZY^RY[(fۧgWćC׈DbyqY^(mNm=W[n~E.yfM<,۴jq $j5Bԛn[2Yۑ~{4CQ 2[Ê+B(,&u?x7}u/V|qJPZ{g/)TˊwYǩXīpnV KC2y-\UUYZN5ŚLZhPT%e;t,cTY&*.(XMPN0*W'XhPg#y6eU[x;g ʽ<4:}QkVQEN!0Of~@~Zq)bXb{T趙b> fT]sF)$$,.2~Z92o\0/*FP7z‰ZeQQ͹]YxYהƺ%&4رy]+Y2*h&7XT@>^ZY*>KWebsBrsJ)B~髐Tc\hj"8=(D@WEBZ`*bS,V7T$84ع=UA"N nRA'EMV̎b~UR O=(V T #'x^{x>\܀H-Uvf>\<]<_ٱVQ[ؾ߹޻y>۬Ctq3vپ?d8< a f[q[<ߕx-NN!絛Ǎ!6r:(z{sv5L\ټ>X<-x@ys?a~um#;JNbVZ{q7TCp^+q-Vꮙ:N9oB`XqĬvXnoYn=CӶ[o/M[ X k'焮M+'V]Nvo,DϪy~a 9p6e/q5DYGjsulFjfBrfKR*UEw<6srGV|=VAT{` N~愯[o;y:I:)=6^mBqga5Z::A{o,a%/|7N-i/t/x 7^g5Mk&FuMt0DژQc>( jsGP(d> B( BP( BP(d> BD:u:x`p)**Zpaǎnj&깢bÆ ԨQ^^^#_tNNN:cƌ:svvL55:޽{Tҋ- >|/]wޕG~vȑP|T 4nݺU\> 5k֤ID= 9o(nnngΜoРAO޶mɓ [FFiC^UUuĈr:::nڴ \UUEtRΝl/ҳgϒɬR?x upP|TfϿkQ--+V 1??ޥK<veggիWHMLL`׳gϨ zzz |*$`_vw}.Ν7n\iie~Dk׮ H%J13Zpi o{7Tte߾} `ee.ׯ/Ḣhχ6+<<0Yd 5a{;VVV62cB͛7-|J&L-,,`;77ݥKppx {IfUln篿 o ow6l?#>֧O8!Co||(͛G3_l޽{;uxSZj󓒒V\ٳgOo߾O? ܷo_׮]Z?: {{{S̿xj%&&jOHHsXB2_oJ{{{(,,wСT}VTӓzE) l<|2eʯ .=҅KW^Ɋ:d(T+a>57 דbckgDYnr7l2h F߾}T`sƍ322}׮]6mرcF]aÆ?P2y㙿^z ##ŋEVV7n@[n5VQQ23?AhJ'0Jʊu2_j(1̇>RիW!Na+R={{{0`&Msss...'Nd0$JQRO7EA-N@@@b@SuMc304zhRJ0ȇCPwaooҘEE5ڨX j:w/^ؾ}SN0nXl̇9={p\ʱ@Xb53 Q:1;}hg3&x7u9mL*TÍYdIFq|nG!曚nڴ^c„ 0^@[[.R-1c EݝΟ?//I~/bG 3M:.Dq*7yS3ͤB%^1 %d/X //{=pWUU}iА\R/AdXL 9RSvzz,гg۷#*%u= T7`8d<7򄍍D]]}֬YyM}D^ Ǐ555;wܽ{wuL7|,8$'J+઄(M|VOSbB@x3338 ρH]rR߀uJx^Xػw/@^o0211;w.z@getwfɋ/~ᇰWqR355=tlz+՛ ` GpPXЍ"$%t%%2![MF=;@^o0ѣGVt%D1~?[ETCyxx6vWX/*d~[b~JJJt$t[MK1(N2U1'O{|LKK;z(l~+66o߾M1zh]t9w̧5yd`|Qc}G|UUUiI{. KI.!'=\y։k5Skkfe(..nĉ3f̀ /Ht> @c>vݺuKl>%%%r2ȑ#;C466n~槱>ff`>UxҏO03a7%a<ڈj߲)777?Պ%S~._ ) `T/{q0|BI03_r7z5%a<|G9`'ORWs̡Ryyy LNo۶ 8i6Od}`|d~0_r7z5%ϯw8d>2Ԍ 6evmʕjR 'χ|~3?5{B#CŰF2JQ!֬H B#1mI/ >Ӷ>ok4!P|ɣz(|!zve0$)Κ6f;.2_۶ן5`(E^.~{վ`+X C!q>2Ś`H000H)d)%6dҙ:ujlllܲ`Md0$aoTZ}}}nj,7>6E'/^ܱcÇ߽{ 0=-0_7h )S>Ӗek2iW\T[{|RK( JMQB^tsl6_~ٳ'eHIώ?VkҤITK)А^lٲes9՝>}zY,lPMn$>}Jrnݺ%&&6ʭ__dѣ[/Y?1;?ˣ`&EJ=a~ddCĦ(!wڵ`xi#TǏSQQm۶;vL*ѡ>?x˗/7fnGKiرؚ~stSI*ڣZ36|9e%'[d=E1²< իP(7nܠ 2ѣ|k-'O~gk|r"޽{DDDկ%7֭[(k>￧JחMYpҾۂ0ʆhO̿I={v Mm5C͜9}C Hýǚ`|d~#\aW6zm,8Ege;$=ٍ;vĉSL Oڵkinݺq3_e>d,wXZ G+ 2jh=\|0;wŋ"..͛VVVs־zU\ ̇+DvttDm3,z+opM|)v1|}}}m۶QolY ̧R} Jj$Yߤ̿s=C1_CCz5vQo Fp=\F![)2b|Q?|#uk@\f ^M 9c[R4uTj>ƍRo)+vY~c0Aڈ,݃޿3ٖWVgZ`G+Wj yXX… -[ְ)'5RG!̡V3X(f5SwbX q`mLC:k5 B2LZ]emb0, i_!P c~Sʟϯ׏Bo2yF,z^bmcw>2*p$okWS6-? 3o^hcO_7{mX Ī򬬬`}ׯSLyW^ǏGĊѣǀ~ e,J[|d>k7)jdk```VRϿ;Qݻdܹ,o%97o ///o¸d=\### >dȐ;w [ U:044lYae0W䷔YբJ1/|2 a4=z~|||`[V;v3Fԥ 㶆p}}}Ḕ„#GͿ ݻGEE5333:t{Ů(|%/:?;8O3X30u˗/_r%\8p̙4avQ#[3SRRhѢ>lĈp2 e,Z])Lذa:lP Q30ګB UЯ_ӧO6 r֭[O?M:.?gXA}A$(|/P%ֻwgqAkCZ_ҥ ͛ Rl>UUU|8ƍ6...0СCnnnmp###C{ׯ_e7 ܹ3\q/^< 㶒pep3gΜ>}@/ؘ$C+W]T8Z.\_oٲJ50_R75Q?^vvv _%5|>N3少יezzz!C8;;X+ygժUV .ĄS_8Ą ???87a íWM=Η~խ[K6]ʣYx{j6{OKKKt0'"!P|d~s2߾}+W\x]?aÆ.+ʐ>CdN||<{#G.\xqI&=[Y j)f0 'N}رc]o6c0$JQ\NzM55MNo)j՚?~QQkhhܾ}ߩS']_yu`6,\U[C&߇]Ǻ`2&u|P|d>f-i˘|P|d>f-i9ˌ|P|JV猏ܹsWZE*-o&99YryP$+JKK/Ropd>J-eY0 /|9g}֯_?vݩS'?|jϋ/~ᇰWryP߾})l̯782%tXlA!E/:'~zK.ߠ !>s3NӲR}JVVlx<G7^s; B2_luN}}nݺKƂ۷)C͛.];wNNӚ_ؔu Y6 X@!E/:̰֭[bG.))G wo̲c0 /|9/^P~._ ) `FN՜wƍ[|rߚm G>0ˑ (d(Vj+..9rNgZyyy?m۶O>ݮ]3g(8d93bg`>(..NCCcǎݺu[r賚Bad>%P[[#[PJY'  T(U jYf0boK_4+++RB|__1c(]vZ׮]kY櫳2bo/,,2dp...&L8q"bGFA/8 ̀O>iҤ977!'6}z E}Ŧ60 (d~[e~NN 򳲲yⲲ2`>ȟ ʯׯ\nXYY5rnh"qTDK2K.x]t k@ljX/L-:~"~ !B]yDbC_o;WWDͷݞVE?F(lHJFG<{FnܼIf_"y>^ꁌ"FGQYKOGdfx7ۗHJӃEDQ T}ܑ#DϞDāDuc~#=t@LDP&@vD@@# (CpR]1AO?$$v JJdnIBi@cczo@hMz{=xP(!CR uEN>rO~?,ѣG73mmm!˗/裏|e(EA0 ӧ MY f ˕Ă;ĝSĩDĈRLLo&6_ .L$&%OܡfKJ2_2"HS⩔$mmɝ!}mzxqmFDpe2>bl{ _L,L|0[:wu%7LMIG#bFਡAz~] q!QX QKgՙ3ٳdQVFCoOlN'IԎkky:? +IuȍmjU_$7o&.\ &N$ݩzoo!L":(%ѣGo|˗(ߕ+W޻wO8G{DDDSiP3Xiz݀ؔvyrg030qu& G8Mܡ''0a0!cNbgEL#C/2(2qt>b2aHż },!q" UUbx[7eĦ9'Op@ Hnc#\i6Di)AA)b̗^HHGzB肥y@;6J3''oe~zz;1曚nڴe˖AXZCCo߾*}#F`-{kk:qww؈"h]D$Q̇qannj0Sb&9V%1_tF~yԫq[v$^`O|19ĥ/jRc-!Jd ^Сd!&ȌTnSx߳LP3HN&N3?4Ӈ&L 'm,,H˪'76b.%) ML|5!|t>z-==k}FNPLxpq!޽K.3 O3O.@L0‡3{{-k,XkTk޼yp  N7cƌ]{;5W6g蹝//+JDhbtw(JX*Iz/|zXf>=mU茕G,4 5J1аΜCCu+9'SYIZ׮Rv/^g#ɛW ;TroL 鸷&|6o O :2(YK݆v} f03DǟBPjW.K&zH|(&|bb|Q6.|o:g|aZЉ8@> vg54fJ2F}DN`V$|HYbpl7.ٿg5&n!D_jWb1B]oRNIIQQQQSS[zueeeFFZϟ_TT|KUNky+ (d~[bb1ڈmqmX X@!`2 G% e%0 G% a%1 >3d?V*a-QmRY B+jX(Ige2 B%a0 B%b1 B%ug2 ޽iӨ_R={v׮]t2aO(d>J7oޤJMM?ԩSOx5YYYųwCw@"8GPg>=/{uޝpi`.{0aB^^޽{=P(d~0_jCЎ;͛G]ET?# mmmQR&2ৠHEE144ӅՂ)m۶Xs;( <u~rqqwZO>È][[;)cGӗxht^zSpbРSA߾}8uB( BP( BP|d> B!Q( GP(2BP| B!Q( o% s444wˀ]-3% ̇rޠ[jq+Gty U17d> B5KK>H J(++GP(Td~eeeHH_xUbb+**( Ֆ/ v?wr~@@[>ǏS+-##É2/۷/ڵkG-e+BP|'_qVV.`07cO7{b :}G_d=gIyL3 1G o^R 9r(m3~j*gϼJJJR` tҧN>.8/]zu9Zpa{}TØ߻woCCCٳZJ__MHUPPөSaÆ]:pի|C~)Q:v쨪J-UZZ 9ڵ+abPV|.7Y7nZ[?gdFG'Y6`ng_>ߞCz.,w__0;w0oaaիWٳcǎ >K.KK2O>$00.zIr+6nOKKӧ\ܹsԩ 0~xއZQ(53NRқ'OR߸^T&RQ{C3FSy(Q c Оb5kƎ[sԓ&-[ہq8Kpqssc`˗/ǍGmRڵ_r~sι|TUU~d> jM۸8QQI Oz;W)(#=2㪏|D5g=)柮>\RSSM_!Q(Tg>=-۳go_dy'qc婎Eu gp[r0{ |>ݟ40SpwգG~رX=z;BСC<>|8ݑ\|~BB#/^())9uԄ `ldggO}P|J%%4HLxˁo nu2Ei^Ax|S q)'',ܳ#4UgE3ժUo߾h"Qw 0]ψ#ڷo?uTîwWø50B>q߰*^ߪNva>~{B-惼n<*^Ut:Ҿ꟎O  Q(M2nsцUFݫu9PBPmWˆۮdGP6z V5'pmDE.k( zGP(d> B!Q( ƘOa ExI棡Ue>lmڶ}cm endstream endobj 1170 0 obj << /Type /XObject /Subtype /Image /Width 508 /Height 189 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 241 /Filter /FlateDecode >> stream x۱ i!bpZT;H$0D ʸ36 E endstream endobj 1158 0 obj << /Type /XObject /Subtype /Image /Width 506 /Height 187 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 1171 0 R /Length 20997 /Filter /FlateDecode >> stream x\GDM4Mlokb[,`Kh|I4QQz4łޫr|N.(ڟ#FX4Ĉ#FU>B4|bĈ#*mc4OH'F1b׿37s}ćT/3-1b^kq鴟x5i y)q!a>~^~AQ=~d11:Xgt,cs̯ww|i#XKVK+ALC{$m ȚTߠlp%%F+b-2Z9n/i@{0sKkV+i_7 bS,KKWZ"dr:+92M <SI!Nzi#XKV[w>i?O {n{ظx%&yйTŪR1V6J&-ŦX$ʶ oAe&FYp@i̬LS{\:4=^%ɨ;JSluJVi9kZf̽TZM$KRJ^R^(.jҋf9TW^YvA"&ZIrI[ܢV>+K"k2GK‹"\$ bzwXX%H*< oDg.[g5ܔ˪%^Z4^* ULaRm]'$JS(qrAWY*,X}a͈)fx&p\ν$=}f?t7Svs6YɫM ~̆ʼK+#E͐l@S_Y\.z2&d[YNT\[.b{6s>=ݜeΥ$*>oS(M4H{uI mMƼ3ڳ6}໒2&_4BkVclhBixLl`oD3MI@ud϶ Q9;R14ִT Qi6FXCԧ{}vyo3=#.Ɋzbbi[f~[|Z;Ӆ«YI*\|l{ػ$?ӈ,e{ft+,JDX)/TDf,Ugyܧ UT4sVClY^|Mɮ9<`{Ps;.X;=9_)$᪄ rˡ3W}szHh,04MU\/lO;Zi2*dc gBF+eV"qW2GΣd̯\(C%iykZQXKmmy f;fB|aYM;)eTS-1SLbތw+j&Q sRˋn?[w;NʊK#rSʤ"Iewg܌f3v[MbWK xeŋ/?,h9Yelߌa)ҜVVeF̓87~͔f%y}KT*)>cox3Y~ABZi5_\Sr\u(H/;x6N&1nE~퐝V^|E#*f匘F;XXr~ng>~Aϕd1ǯ\( iy.-jnjXH"$ETp{YΉe*Y{p\\Wn+i܉|;qwYXran+=Ak"Xd<Ul=vWokQlmңb{^̣f&q--͹l&yo2}[/)a_8dVu EUIqǜ4T/kEUI~͔%RMDJ\E*-ͽĦ (a>e] ]qݎ\-ްl=[WcvK X{GhjS{5j!- bp&dUfeNɦILyz>z~[JGJq./R1fs/E%¥Uk OKw Sĥי̲JX!0u;&Zca]TӤ?V%]62i<שbE eV$q?ZG϶8.Mgݝy}XGIl]\eIN)hCWqAjX;?3(59,|YJTߵ5ɱ?CuULZQlWu|yVˀA+b=v\N|sp2ʭ0GR+ay;K] VYϪ*J{m,T|}i,9*--)VO˫BG~ez80Z[${MӤYWsdq+0vKk&(9+:Q|bT@A{:X!QZA?֡dJONG;c/ZlcrcAM/k^WHHiu| eY{>? |B hU"*eYZyVal!ȁ['C&,C~Ee3'αH"p2u? |++W*ba{>GmjJnG="N ~xI_Gz ؊C (pu2Ke6K-f⻒e8lL¯\k&i2SVכIl>t{'A%ɧg-s,XZ >ziU2auvANV϶DZEo n:xuJYTI+# vZjQkrb2q:-.A5_ZFmpAwы,1f2"OH*;( hu$wKYj9aLq66sF˿nDxe2!Pmuq,RY&/ VYxiϿ\Ӷ[W[&̆3-csUR\ͨWWUpX˴*3euhoO/w*XAOӶ&Z&*YD'_mᒔ4uUUf负j}v{9O^vCu 6l` %Z]5kIzYe~auhoMu4U6[mBwڄm].HIW负&1bĈk5خB{/s!#sо)++Kln %'"""jO===QK=Q립 i::-Ȑ ""zhSWDDDD:l"'"""j+9ZJڿ?([7D]}3(dCr.)=zۦ[.(Ȓt 66vԩڵ޽;DTJٳgFj۶ѣ pT΋-Zv-.:<==?==_R@1cЃ;v1Wr'D~נ ~-u x E!L֫W 6?}tСp>"0!G|W?q`ĉ^nnnp"`dm޼W5tIwĉwwwh h% 8׮]8pK.=&kRA>|| G{㪭FkY_fMhh[=O:$pQXj ׭[5z*ĤӞ9ϱ|оQƤ=2ܛ{oU <̹i .mmmaQK:4b F!&.B p[nsDe 1//nݺUTTaaaäۋÇᔁ \>|⪆Pj 888+WFCd9 Y b1=&.GCh@?an=q֋`PUU~=z2~]'n7D2dE=7Tdi̜X W>e{uh_CZ=)-LYΝ+MJ*p1+m/eB!ܾ];EUU΢Ej3WK{Bǎ(?~|TLhL 6m ^z˄N0D42K;"i9Q mC!)ˇOZ\J_nacB8rH(ڵka[ZZi9\Ox7q^]k\OS ~]'nᆷZDrqq;,YBgfs,+7Uvo*f͘,@k9ܙ=S;;}O&a4~G0I/2( 3f8<ܜ]6OuEM鴧 ^d =VCf͚EeŸ|UI{]pbŊO>9D999>}A?[ D?'=EYD{q_0O-D]޽{yz7pZF5UHȇ/^S JKeM{c 7\оh/?nာ}ߛ6l,/"00wŊ FF=ZoG/x0b,X4o߾ԙoRˤL( A`N20C+L0bĈ)SGlp'-jLڃ/_3q۷y&XԮ];8UY#p4 %zJA!H={Rqԋ033:~=n7*ypF= gƍï]ֽ{wnKʧlD{f19ș{s,PW[z,7a^rbJ>7s Gj10j(hÇü L___O:2ȜX {e#o 7Oўitɓ'z">íf!LriO}9Ǘ[pSSVcccRWDIIIp/--ӧ$D-/ hD-^p!HRWDCׯU^! j'_<&"""z%hODDDD"'""""o Ӻ!B{""""B{B{"""VC⋵o`J`ޮ&(<2¤һhWeM8I{!J;v>}z|||&kCrk/-VG"HK(W~|ʯJS(J3*̨XT\-N}s`7ǕYcd9!O> ŖDߖ9˲Ͽ{Nv.j8lذQF5Ao26$"JhяDD-E̖*Zn&p!P]7D{EEHB&r^K}E1}."Eg{Ӟ„tWs{|̪x{;5G%JOq>Sdii ' ''zEh&/JxWnYLWTMQr\reJܫ9hCtE /]$+RK{\ o+n˙*KP۟iJ{%LLVǣUEj b2Z4Qmiߕ"ԱiSWFs?LVǣ׆ G^SфCS繬WVSw״8ߦvSaʤZj+Y!j5/grGjg Lep8nF^^gyJ;W^TtAŗ*gT]!}NљpKӟ4uРA[ldu< ?@V>Ϥ}=2i!DYiiQqMqB{Me+=Q=[Q[fwk"eڐy~ p!PMKqάGd1* W{N=3&_ "*"|hnԩaÆUf:Efwe}=粮s;ԝ(+5-*η)Xiֽ)LÚ:x%'jEׁY,;xe5T˫~2NAeIɵ+s,pM^V~iόY@\t흜NpQ߼yjLVǣh%?Xi_Lګu;QVkZToS\=.>n5uJhOԚh_S9ڕK/B\Sdx.XΨY/ԕ'UFh] ÕY,e'1 {}{Ӊ+eU }Ν|duPT[4E)0KC9}4O A{.z{NNVhtYK&XW.\pkcc3x`صx␐(ȑ#[m|BR-Y}V#Ϲ<+15O7j^YugЭe3fdÇ0i\^!ehӦBUhߡC!3~7i,.Jq`Z !!Lqq{۶mҺBزeK6m &UpC{VtWcq.Yq.\H{v;qH7778a wb@͛y5T=jVSϹ<1IӋ1GitО5aֶ#))ΝnXSsӾQR= FԐ!C(o&^xVDHҖK.ѣ6>ÑY]RssɊs@ڳ \`8 i3s5T=j\Umojפ*e͙c\] h_m!AJ%Œ%"}P2o׮ΕEi,n yJK/i겖jX.\YioaaѵF0e, z mCoi׸R#g<+ {SSOv+Λ3/Ƭuֶ3覡} `G&\=D%| ^Ncg(ťZ~=>u{+p7*sYlV.kF9pe=&'']= .ˬ玃k\Y B{ySz W.Pۛz"p[qޜyz1եZΠ_ڿZQrɩ;9ҧOmLꝜPhi,LTO8!{+ss̔_XV5vƪ^E)!FÀ=[ѪX,xv6܍r<=Zz# { ׆ڃ|֛8噅TKjs^>y\>ÕOojꉘ0%<99bKA7 "p'jJױǷ|'rBǗRu,iaBfHƞW*ZWшXu,iaBWgnOxLDDD*퉿0"""f⩰Q͉qnӂu{B{""""nOhODDD*SGGN/KWŰɉH0^08P,;Z.?ҫ#H Y~>ôm۶cǎ߼8>e/y:'MLL\|yuuu ̄ol۶mTp(oFܹwށRtqqVTi7\i&s7iZ 07V TZ'Ojc5 $uh_fn1v,ݒwG@.wp 7.а*&"85޴ߗ !!µk3^ijjj~j'u={6?° O> }|Y6K>~TٳI Ǐw/\%"7XgOh%*_kJ7 j.\ukQ)G-5f̘[7D]}3(dCrjңmH%肂,Kʰ0-3'Nў2rJ ]wwwmѾyp-\p„ O^~ ,Xo%H'$/jD{Pؿpx]"bs^j<3ڿt \kW#GU2{Bҷy@UVcTVp˒ӆx)=qv*IY2遥P5<=dȐCU|97|}u ;Vtի8o.w5r<ɲvN^q,JTyy9`uJ{0\=":tĈhnN |j U8DSQ 퍍ᦾ}Еh>l[?ϝKӣLk|zm`v#~7o&ya!ʄnI:Td͜.\@Zv|8?|\v!^Ja?GIp#ѣGp,Sk֬AK7v`/̙Z7coXi7wyp[?Is5rR\?I.chJ{\d:? za/駟i]k:U=\`  >Ǜm=2*ܛ{oU <9hO:Cx?<]v2= qu/QB}}7`pW~q}-zˤ=4&̅Kr~-Փ,kVk⤸~\m۶mv*.0__ClŊm`)\T2i]k8G}k9}j6=yZӯUvo*fոApgsF8?<=h C[^J5= hTa.W7n7W^=L'P_Ϻ=8o.wG{rY=hIqh_?'(\}is g=Gdh2e L?Y*箵 ϝ;Gs;=3Ͷi_C/oefۦMӤ뼓*瓹鲳hKi= I]$E3(MBAHvUkjNo.wE{\_zўƠ=kU\8+9"8qbPw ~B{*w#ګu\ D?aOT>>l[=E-u "ѿp{ӆ UX9aH}z:Tryk>s ܾTtesx)e}JK/ IHHnmm3%q#܁L: C g>rW[5'YΥƠ=F M16pVqḧȡ0yRovOFgϞz.V?#<2iD?wa`` ÉZq^pAot?~SХKB9'19E#3nܸA=%"Oؕ4p$F 㖈9E#38< in8IF """jE#38C~5B-8 DDDD͙^8zTr*bTW_8.]`M,0b†qEv\.NO?_ѫW%TB|sաcǎӧOG{MÐ58|ڶmۣG+WfddpR9%GGG1Z2_]vm:RBsMKԔׂڪh?`@qǎELî5kD8ڛW[BD(T֮뗮[W#KM맼t\4{v?wذaF|Bzؼys߾}MMMÝ?3H>wK}1P}rH$ٳ­ZZh="}cwM)VMFnj'*T#ڵgT0gڴ)zxH$ }SPu G{^bihh3tԧJB8|ph[>?y$L+nUm]LT "LΜ9 1E{AHzjikP}5%=K+Oڳw TgE}iﯧG})q۶m-HDDDtu{"""VL{|򔖈ӞCDDDDhOhODDDDhOhODDDli0WkiEDDDDݯSJII@ Z.""m I{>R&Mi"" ҈)DDhOD'li>Q1)¢S\|#퉈[C4rL<1ᓐШWg6rv56v!AJiYyeXTJXZQ! ~5i0z)DDJ=DܕkOh_BQQ)=> {ύΏY'%%8pwݻ!޽{CmxSh+z9sf о{*߯ \reɒ%*Æ Sg4"D{>U6WA}tjʤ2_ó&&w;k͛72,((|РAleBHwppH)//ОоނY=^q7i)ԗo~ǗBVH*K+%%Ive СÓ'O[nM:U=o߾=xvM0>|gϞm۶~~~|ݻx @ @P^zA#|ވ3gΜ6mTs?VO4)""G &&o %nz@VɟsS z%M*|Ѳ8*ϟ?_lYNteTˤ(_ELLHe2EV7'޼s̴߯/^1bP nݺqAgϠ%>|gddtRDΝ;^͍VVVϊ+b=zܿzvD{Qϟ0Ǐ5jBF0r+W"@æݻwpk@a Ezz:$*.+NNNiiik֬5kB•#>>~ĉD- U_k4˿;.>:Rٳ}QHH,p L(QٝRWry^t仅^LVk? Wth~m޼y(8 ȣ#kǎp HHH`˗/} akbbxgY ìz뭷a%@1La &癙_p!1cPV^#SN-ZИIIIL9r.("@[eeeAC MhOԲhA/@@}75|J{sdTb-KgIov?+g9tŋxyy8'Mf*؎#2:R&Gpk Y!"iX*TJ+L_WL[ فI٥cpt`0^r%ݻpD!… qWadlݺ޼y9#ӷyu+{u?Á !7pW(ښОe>7[?Bz@bNoјQoC'V|sT@,--{ CBB F}ag͚NLL4i\۴is崴{~s 0 NNNp_m L?\\\3f̀@GGGv@wGhOԂh#Ɣ=(`V_maJ-X( ?v+ZܾL\irV1qҥ}::޽s-Sٹes{71ns[oAcwSw߅q#rhw nN< 7P0=⠧;9%zog=4ĉaоt a ۅu_ BY۷L{ ͠AZaVp7/¬P)щѩ7T 2e tyɒ%qqqk*Y}/ %;]IJ*m{}mooO5gڇ.^=LO1bĈk5Τ=1bĈk}F=l#Fjz|bĈ#Z P! endstream endobj 1171 0 obj << /Type /XObject /Subtype /Image /Width 506 /Height 187 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 236 /Filter /FlateDecode >> stream x i[!xI 'XS]0=Gx" De pas endstream endobj 1159 0 obj << /Type /XObject /Subtype /Image /Width 546 /Height 183 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 1172 0 R /Length 18782 /Filter /FlateDecode >> stream x]XIFްzzygAX;{ v={=AJ%;ҒВ_X]#$>߳f2;*(hhhhhhr4u/hhhhhhr4BhQACCCCC1n&GW1#8}_?iJ5fY444&kQL~"v5s;j~M&1sեhGo?سvjv{v]#ECCCkXM.̤ۿBPXA %>bHe_ AF6nIJhhhhM+ɥOTAD{埙TP @_\.lP]Pl5Q,Z nr+f%kqv9 [\QQAH 쀾R]u)s ?נT#ECCCkXM.~z_&T7TgO}9%((DTʘ;fPXńz(UfY_eݦҙ Cg$i5RKo+L*8ECBҙ-vfi5M&1 `+2S h[ {quyzQQQyEEYY,a**PQsw28V*>J(Ul-*#AbKAѪb)YEy6 "-*O×r3yRnmR (_'%|^d,7 S6I _q exͩtL&IDJI Y좺x}emvVyK ާ($ <[ЙO߇[nYEVS>"kdIoy% ODsјFI4K$j<䁋u8Su}W9ż2/M$:zp건L'*$Bk}rtt4( eDŠF24w2 I#;;H#IRV)U,[]d ˊ? S/PC)C婑aGSE{·*|HYhɹe$b-5Y}GsQRvN>J'!+VZ9Yl0R}I[ݔ #T8Z1Ҧz0 R,&jgiY}ze߯2ܻx);ABg.C8:饏nͼKe\V)ǼD.MkuUöxW+{y3)QܤFssDivjAAH05'c!L.Yg&bՃ4V=^x,(12iADa*R#/`(X” "!jѥ{?m9YiDvPzY)MbY0IJLa{qxA/}VE(DN5K 2S8 \7< V̩b_FZi/m|׉>gd\pc*`HJQvQ,,*mqSCfbppEQSM a" (+()QS%yyr3+0q}_03i!soSz`N5MM/)n936eQeb]M*ІU8laR,NE׏cmf&gH:g7bmΏ#-ǪV%n'grHNf9¾*sx~)KLk떪}hZc3oΛ)Gy!{u^;(^:TTw]dNIxq 霑)nz곝!981O$EQ.4>YX<=-/ى|@܃,8"҈r`מ$% kW.1Ia7ns ]JzmxZS2;8?k &ei>M¶E݉,N,~8d*D9U]q oX'2ԍ/KMkH)`E3- vXzJŐT9YEi-XfU9-d _^RblM~2FQ6?(Ô5Dd.${&%^{Ǟ[XD٘TRZMe=([f:fqM-_) ZRlN(.v9 oBg}38CR͔،zn=+]yOYS|L!q5F_i2 ?#g--|he氋Xy1T$l >Kw9g<,7>nSJ%TQu Wk8sM[z<]hiV1Y뭲^q4Myet9 A/1/2a/{;,v,&hvPzY)MU͔M/,jݳu?M XcUt44#ϒ38Om7DPUiIKYų%Tf}fS.-wt傒 ^Y Zz,废\3%$|UN$okm*ظ2 \l̚!Q{+?ROK <7d%pX-7f>R3fͮ ȵ7u*5ŇSyѦ~s[affoA λ'֢](''YSt&sFKۙNiR₲̂;cgGͶ?=$ru!-[`H5>j2Mv ]Z\k-%7"-f{n1 inXEֹlNʮX5%inYP`@n^r!8Rˌn}i13%e?`j3$|N3?4Re>BذEYXQwI6Sgp^R\݆OT8VzNv/όJe~FYi{Jc o2 K۞g*G$yIJҘeY^AVԣ Y Хtq;@ѡ}ɥظn6T7O r}ޥŝ{76z-WOBĐlr?uc̅20zlH爖'G̽{4wcxl0UXj3%\&WhvYDuzF$o[qJ)`dJ^|8essm<6Ys[M7cZ śZim^E)NV+1e$c#--իe\pqC{SLY*љNTc3c 3bE$pM `(m:#CwSQfa=Q̪ nЇj54F]YJX)Qygб+p*,̼ JaIV ?˽`uM=YN#Yf)/K|^yƼqBw^vNUz›I (Uҋ ,֘DO{tf>?@ƈ^UFzpF֙Ϯ!d5?jyV&z-M*3$^ٽZ@j\|6GXQ \/pDUp9|T?ӲUJW{ƮJTNluS giYViYYz*o<6F S2mD& Kt-4/,=p%z{lYqqEAjefJG\) W蓉Yh~l#4 XIeWU[ӣx\g^ZLJ>CA֌O6*;~%e%T-s)eI LS*q\ pkSC'moMtJ KSNYx/4YYytjQYKi!|RZ,bd"9"Q맗Kd1gj0 s*ޛohhTZZ ¢>d?.\T\9ŭʷPe%%jNmhz;y> 5Jݔ.vr?G]LS$HXERs. TW3F1K*ޫĥXI~K*,D4[RBgOA}0J⾈|8b4NSZ)j&=XT E9+.sYiZ}ѫi̓m9r/fLLJ*!4_ ~fNk⎋4n5FmrqtEIY+miz]Tއ$]I͐7M ~/O)zmϡ''疈.8CZ(*#4+ vZ fEE2ϰtK)q#I<)8jy\*84+*+qB?;@<`.-_";YU _ ˃ K2W߬t|AF,+TX,=ИʔS^`>1(eYteJR+Efl*{y %f *UKv)3?~֤ax`fhѣgWdzm>jYYKϣ5f UiGj69 ϣ̾[EG< 㔅a9T8ZUVi%omsc9t{fqjLQYWs{Fvs 7]E;wG,U!~=L6Y(:ay*4*:s!-Qn W'*CKM~F]'*COGCk[OOhMMɈh"v>=MZ7qQedlhTQHC BfB*@ T)#6: -٫ @A PeTUh*ӷo_h׮ݤ:7GvdAYxysݦMcG--ha!$5,GIC(f( :y9}1as4Pe2uСôu7qjz<~tU2UƌjLg02|h!m۶7D{?G"JJJݺuBAR(((À_z-;uضu3{?i!kɓ&BJ:Ű[e 6nXJݻ04o5o_;u3ۈ,^@$F@b,f>^nSLBAq>h? Sww@e@wV\hWDa#tرk%`ӏ ~IO+bsٰ|ْZѨ22/5ۛ=zD¶m T Y+2D}G4Ku`01S'AΝ;Пnݺyv*  Tf z Z\|?_Op2_2CDa#ʈߗٻGgEs˗0ID %<4o{``]CR UrT;v[SCibIҩS'Xl޴PCԤ2)h*s~beϞ=F@v(HUɂ@AA ėV@ Pe*@ TxZK6YT{ SeX )U郆Shh HTU@A PeTU@ 2LAӀk-ﳾvA }Pe>&C2MSe>HT)i'CkC4aAA Mdddr|`r +/?qy*A4}QIDBA>Ͻlى)2hK,؞[s2WƯbB2 !XheKQe>H/MX|>W^XT98**X4 |{'f{87[*|%|K/M-Ј4iNqZZo >,os@z|rUb=JAtBWXy+=e'>:99٨ ҧ#}.:TW O+_KG6{_h0ٗxɘŰaڵk7u԰0"QCCc۶mEEt8w'hxZ穷jժ~O=!faNsC~*e-ٸSN]u١>f+kV?Wq\ڶk;uT4*1C'C؇o'NtOr'/^;oa oC`^˫Tq!^Jݔ:gJ=N:955[|V͟E%D{4GE3߈I%x ظZ|*VS7!٨ qZ UG"a WTK諣O+f 1<^ia)?R { ѣHNN޾} o߾,ܵ?s7Tj-0r<ԥӪ"^xg0kHo/w! DcAuИe[ = =l7y$pѻ]0F 5>}(^ #KKL_UT{}!/$Hf"͟;.1--状3vGVu{lgcq}˄]?m>rsi@>뎻MR3 ~B˱]|rTS?l9eq悙P݃U)^{諣{(Dx ~_T!HcgdSN:uVɵk,X@OOOo߾}||gќ M'vsݷwtE4 3 ߰gb07&j$CK7-%2o&As4o%L}AZ@")䵉x`ī;VVUTfӾMĬ $A7m,']]ۛ2D E/-ѥ2bM]x1pΓn_3iI7#&\A($A_ocQ)㡑Yp8~VpD_}ޫ ;Br'Zm/#O7DtRރ 2ӭ49tP.]~@}ayʌ)uܾ UhBa(È`̬ٹudYÍ{7=#كI];à% oc.ް%^X`*m%K>̵?+2P$Hf"͟ zm[eSVE@S_ٰ}̿\~sRv?귬"&[;9{ЄSmW췸kwi6*B +_!f̘z_Xswޣh_3$d '8PU#U1mc}D #G{UZlcTf蒲)ka#68ޥB?o.ZZ)Nq[ ])צE~}cڿD['C(t_}5^&fg̐>hhě7<1IчXqK o&ܫ|ZоoɤY'fs3l-0B-N ]isiۜ"tbɘ cϚ- z<;Wđ{"6]R5Qt5`oFI{Ňr< }vO*{Ok­;#|҃ï$C R0bJ lݺД~709">-L8'=z 9ܕsX󴚬&oi47@K-eOCrX,/2=g&d`0s`&z6Rhkig̱8ۼh:߮;ߨR6{llT($C\1+/9wr"[S!ur-ĤܴLN]1k`ܦбrcs·/n bOh2ͰYxTy?;]MHlGSAqr?5Pq w_5k6*i}uU&_ _PR.An)?'_Xpsbd}EwUDZ:_ta-ltg O~} ÷ѯC3rke(8{_|`mܻp.l_{ 9*aBA } },M𕲨2H̗@lt4 N+UU@A Pe *@ 2 *4A Pef2l6[^{+[-ޚ0@oM>M&O2ePPTbVEe~WyE$We>ׯ_*n߾<|pSoܸ@2FĉGٳgWn3fρJ\u0IKDBoU!tvݻ]$KW7*:XYY>}zƌUr>x`Uh>o<---)i秩YK Q]ЛDo2 @uuuUUU133CejMϥINu֥KVZmذ!77W[[{ڵUrM"X@)iB`…T%@MzkĵLCbC^z%KW7Vo|.MLMM+'c?5jAȑ#/]$_:7ֈ*Ӑr=< ՛>\X&P2ЦLw=zj <[/s5Xzk$d(JTT̸͛7h bV&gΜ!H+zCoMJe}bcc,YҶmۡC 5dgg 6u=zXlYdd$8M=zԿ$U:QkU&LFo2H*4Ao2HAAo Uzk*SKvp4_كZf28 [ӡO _HodF7TzC4+fn`/.o~Wp޾Dox0@on*Ao2H*AoHYL7CCCd"JN44QQQ]o߾.]֭[2v orO8ޠ2z }G|O|||(@!ߐ(o_L-4 9ѣGeTÇ[Ku<}}} {[z5ƿ ᘘYxª0˅ODD, @Lҽ{wvyȳv+m+vSzq}W|/'A%/_27P7$[# ܹs:tQe,Y2f85k300[@@xСfffzp].7!F@H>XooS;wwwُT`U{qy\#wwPw˗rr rָ*5j( ޾ A76Pe> * *4Ao2H*4Ao22 5 p3iW7|#372?@ / YTF@4G 2 *@ʠ PePeT)֭Ϟ= 6l۷o۶mOFS+**nݺvK3==]MMCFmQ92)1sLb?''G[[Ga~w77BaÆ5IHH֭92|>ʔ)+2 ܽ{w~kb/lllVZUvHs]vmРAr"Peu24~ sΩS4)Ν;Pq©LNNZZZuj9\.`q]\\ZHN B9sfӦM;v$U&00͛7Yȝ;w`ܾ}ŋCXJ;vڵ~`0lΝӧO6mFIw^yʕ޽{ŋ$-,,@ڵk2 av *'M4ih"Db&B ɬԩS={8s!R;$:K 4炂*пSVZ2*))iر>l!92T'soootWW^z9;;O2ɓPϠ)ƍGHھ}ʕ+ O3f $z -::zɄ@i90a$١Hll, 7ԡs7nJ,[ِ"ڵkg͚Uŏ%4/**JEE%B*Sb@CtٵC 09vZ ɉ@AȢ2Zf߾}x"@t%ADRvv6@p1bQê'TF<'q 0177'Tx`M2Çwww͍ʀAdlfЬ^H 0[Dׯ_!ѹĜ_Be WW. ]}u0kEk*@(#/%$$:fdNXW/C\_"IO?fʈ$TfѢEI TСC]tr :v؏?k͛7WȂge7{ǎGpq?۷}Xg!ѹĜ_Beݻ).] eeev풒r/]G'ܵkׂݼyN촜TD=T Yz5qÂ˗/{M|;uTU$ Bl#U 9 ZA?NP.p9+WHTe7 199fƌUXYYT'0ɹĜ 2* }-8='D 8:9NkD w_xb}QQQU2_zt]h*Z0y=z@{n׮]!LITi4| hӐ!CDccc„ 6wڵҥʕ+WX lfC 4PEE|LT .ŹĜ_TeTT4~9ommM<\*@ ?}222ΝKޣAAAʠ dGnnӫW $''ʠ PePeTU@A PeTR*((̜9XZZ{nnjS;BPam?6>I!BT٩Lzzܹ>^ZOOo޼y%%%51ZEFfpKoa>>!GP ֦M1D Ne/^' I 4luw y ޶mL<Tյ';;~Kثg̤)<|Xu艬E;2B*BӾ}oi'l7\8\r  T **@ 2 *@ 22 X*sAxAO+zFGhl?  T=}a"̮ݻ --:Cʜr"Z2MzQeIe`vݯ_9sX,HhժUqqݻƎSko~9-Je?JGGLB@hY~~a2f2L&3<<|ŊC )++m׮]fffϞ=߼y3eʔdF*#}/'kQqO^>_o *T TͿ7vRGFƐ@e \\jsH4iR-EڴiU?:uB5$''KyRjPT2$x<Cܛw(kijo~9_ kĝr.6XQӠ2[~*3&S$4n~~%%<^):UƕL@eUbvvv>GA^e` tˋC+**後47Be$hK|> PvoXRe_g߻06{֯[dBy^gi߾fu0jjjL&RMRRR,,,  %,9 m۶y-iJUU5)) RJKK7nعsnݺ +4hL TLKKlٳeII򙨵kזݼy.gaA087m;Qr"lzmǶǡӆQ'TfåT7II顡_&'gilvJbbgȍV)Q~ҨLrr2ЖB7Dx{{{0f͚%ѣ۷o0a񭃃g tuϞ=?+ 'ODSSqR õLKV$G% Wee吐rGSKnݺ%~޽{甾UfN=;>TBeHiTG"eaX,7~\:Uv Ѐd*sիW +**}B̵k,X@|N wU˖-#a #hP@3XXڠ3UF.k~Z]4*04:{[''o;;W|<_? cڙ7AJԤ29shii*c]]]2g׮]{7:tK.?{S3p%66DOOoĈ|Ν;9 *eDe~_>H4*xmٳ/_6=n튮w1 fk,uvQBeN8fLjj*2/^\~=kׯ_W0)U֭[۶m#|_ *UVV~: *YϘ s$Ix-нéSʀϊTWDO<_c%=U*1Q w@Upܹ:*蘜 r3c LJJJHHH޽ӏ?>f̘zߗa}qqq)))?~<$A@¦Lr]BeQePeTiT@́'~ߦ]?r{ReٯpY*C"fХ 8|+S W"eԨQ3f߿vTTTg'Nܹ3a3aX򌙕СCɓa)޽WPu׮]a 5]tAii*@4S|As pKp@]ΎGFo_ -_2t=_`$QpJQp=ߠ PeTy+/t{i2TUFqzz``u}Ӛ*@A @qy *@ʈ PV^޾FA72ש2r}Voiል ACE14ѪU@ _2h`! MF#4ʠUk 1 ֠@bH endstream endobj 1172 0 obj << /Type /XObject /Subtype /Image /Width 546 /Height 183 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 351 /Filter /FlateDecode >> stream x1 @!XY-x Sh]у( % D7yF 7!,"2+cW/,j}< tv@}uS:E?_|:Jshv@> endobj 334 0 obj << /D [1162 0 R /XYZ 81.963 712.73 null] >> endobj 338 0 obj << /D [1162 0 R /XYZ 81.963 482.853 null] >> endobj 1166 0 obj << /D [1162 0 R /XYZ 321.066 442.438 null] >> endobj 342 0 obj << /D [1162 0 R /XYZ 81.963 256.996 null] >> endobj 1167 0 obj << /D [1162 0 R /XYZ 81.963 217.187 null] >> endobj 1161 0 obj << /Font << /F25 474 0 R /F38 617 0 R /F16 475 0 R /F48 922 0 R /F46 674 0 R /F54 1165 0 R /F39 618 0 R /F44 651 0 R /F43 652 0 R /F36 596 0 R /F24 476 0 R >> /XObject << /Im62 1156 0 R /Im63 1157 0 R /Im64 1158 0 R /Im65 1159 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj 1177 0 obj << /Length 1741 /Filter /FlateDecode >> stream xڕWKFW(Wayr#$PP!`rž]+Ȓ]ߧ#[fTNӚ~L׭/WBBO|f}vRΤ6[&>yVW*&qnq|zW˕&զ.0:·,^GU[zP iZ۪e2ݕn)]Zv9vX6![1w<^iᖦjnxOqךm@-> @>swU8mi!nmEzU1}S6L|fs&lCrզ}8]9m7aDC01Pn V}Vpa} TD`HvesW oa5AIҪHpwc<$R9D9ҧvB"Y=Si" I-*KK"Υ FiľF_)xit߬egM ÷3M5Z<ąaKF 5Pr" p {2Q3x ٱoWK^a<#>C]"&䙴gO4<⟳g0 ~e5Q1U& @?00L93, yOr1p P'U"݂:܎*+%z6PY?wj>;C}0ܠ@RrwvLwYg1H31m>Jc|\Fy^!*Y0;@HAH 4L@8>2'x[j\Y@M%i 7S=*P9bFZ"#hsR9)<%uPj&-6e(. use91rlf!l%|!dPA/kQ Ɣ"NfΈ3lys2ByxVm33U43C8#f0{jߦ%`Myx31Ox*.@NcP<ֳs5 ؽS]g@ m B fusM㇅GRÊ1f:]3AAE7qڛ}gӻ]u:FŮl`/ =w#b{qXѰp` m܃h ݀]6CW҄M(o5Er$#9/1g(9J"0l&V y?oH)RbZ@~~eͫ_8O8%ڨIB=M<ߡ7]DYׁV&jy~, 9BuSLuј}_Q  ,[z&ʰ}Ñ}pɱm |Cew9)@N`]U 4#( <o1%@{z Y|0DRH3#uKH4ѠQ)M?t6+=E] endstream endobj 1176 0 obj << /Type /Page /Contents 1177 0 R /Resources 1175 0 R /MediaBox [0 0 595.276 841.89] /Parent 1168 0 R >> endobj 1160 0 obj << /Type /XObject /Subtype /Image /Width 388 /Height 161 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Length 10493 /Filter/FlateDecode /DecodeParms<> >> stream xy\TUǿ20($[j"kA.cOe=YiOOPeYT# Ugew%eG) յKϝ"V4rֿ5x '.+f_K;[-udN[FZ[x㬛` FNhqvp6uIJ SK4,&T}@Py-<|#+ߒו_x-l 8۳O}Lp/P©(v';~6#rW2(XƕjSN0`* * y7NT:*-_K7/4}K̴~)2ط㍳vV06aY:H0Ⱜję! e-"+2H2L[%~~'j5_RzOZ`Dvָ"sϟWtiDZ?; N@/s_;K=5ET`MK{{$6<1[$V8Lq{?JTSH,8e~IF<-vNs~'"qTQ1/N o^?b2h 3uF$HG7x9&d!`͎l(m꼛g}ߜS2UnC ~qC3.~ю&v?M*9HUǟ$~xѱGdtډM0wca>8PCJ*vwG~W{w/[-> CV]cCva\X 5ZpĂ lEPSu$R&Y_5~Ye U97Ab3amçO<2y? gа[)ۮQBҷ\Xu|8py{?IPW'me1/]QSE ʇ^]\vJɍ)7-ʐ~2ޘ_.Țv` @R囆 g 0&o^EEU7_&^}(1%y(,_O]jѼqAú BW#-Wm;bGG-Z3%ψgH%D[#N6ek&,oWʪ?;U+ )0/lQ Ti%T.Z3cf)l;DfJz틤@]I>Y W#=QBq/.LQHMo ޽əbw!1*qYzƍ604g3yμh_ldUO=}ĩy:;qTIKMSn_;x3BOr^c֡w?N@%a 1 1 Y*ˊ"Taaygg.fXJA_ 񿯗Df&4f};q42W[Y>>CBߴt)Fug)NN&CHI UN$ Ccoau厽 ѯ#gDžU,f XM0dESw mteRE*"UmS=ql(a?z,S/<(JRʈI!X |~a3wk;?$*1HtO$˵:cY\ă^ [ĥ&VѨCe"-nMYҲ()5I(M,o@`PQRj:&Qs}YC?7Q,ӱb1ÛXQjܪ.>w7+a|O e&@l #Jj߼Z^_!tj 5O`WoW89% znYxC*jvJƪbJl3 B).RpYR,),Kxly7mݾڒ*ʖ_,{[M(T7&*Lݥkr' Ëj+0郃сePQbw,~ Atl?'B*(W% XWE cP+iob@1TRfJdI+{"@OePЕ%Qz^L 1SoӰN eG*Ճёw }ՋgzVHJJ,PHՖ nݾz[p㬫閾 V&C{zىs>6ێ# 7; S2,;fK5Y6ϼ\Zp ?@59qf3 g,4BL['eqpSzPk1\([.<&Dj3GPZCd ۢ2'%%%n\UUmsYQQ$eSIom ڷ}Z͵#)bBGr#P6sQ-ӆԪoP@$@wT[5tOB~J%E;*>{巤"ċBzoܫ(o@ s7t%@HykG7@.s|2a82zf/;=Go;rSB!70ؼz]Ꮞ3h:'֪9SljLz֞)IS)aҦCWmOf@Fc*ڥUgUd PЖ)'!:;39WE=4tR7̃mxd)*WVv Uӣ؟|8 "wp&p{CyimPetMb0)Y\_76d y/-k OahS>ا.,7T\bR8Qb3xO2N1KgLD\;RD:bNJL\L"K?E,ԘcKADx2<0fqY.%vǙ5JXcZ @De&I)+A}(R +elvZy;mB6~L=CBT$|hͼDF C)eAa%zNWš)3[9y@%gċ 3[)ְ ,&<@ nZvǡ5JXc5&FN\IMz+#x3e9{k@}wRaJY9D"<y=RlOĚye"EYa+ǪfX8oԋMr$V='f`PM"M`[:ZU=ص֛3zNe=0y‚ōRW|S;٘ӵTImJYp@MZN2ݱǕ?kXW9/.5K׉kGRnߡN*fJYY)+Nr2-W]Ẃ0SQYVi*m}\vc]A&,Kb>4ȃ.¶_rT=_S #;PH ([E ʹcԌ!9.#8l6Ze=.| 5%:rdTs|Nc-ԭ,,/g}K}h#&D*9ku&##!MBm "78:GKuFkB T/UDDj;,BI4,_ Aj/4N ؊P$'&yKBE i/ }h QB`hs /4NOPmd]A^j;M~EO4?4S&&#dE'pw`7Y K*j3sa!x8U0|n}qYc:Ղ0M)%__Hg A*T Fb4>sf;w-==d2[2 ROK`YrM,t]F 0i&- HZ0 a;3gpסCB‘ vdk|k] 2h6"//۝Q5yOފ+2f@ޥw;2|=kgb;2j 'O^Ϸko4@7 3G6Ej얈^I%ICi&"AfH wm@JK:H7rrr5JsKs~:oD!+ :p 2qx?Xtꨎ n;2/1ف ,))uڂ"m6k*($5cha{K~ ggB4ֱAuTG:`;2ܹȣ#Z lffn{@ ~#d 0Eի&$ .:(([Zgҥsszؠ:zpp֭n~~ ɤPd~*!ii>a0C^.Ĭi2ҀCbgĞ\wP/Q놃&O~lĈ~EE%.]ӏde\y٥TZef_(,j٥^[o8 ; 4(h4d̛77M@Sho_N.#^qd9 &^zŨ1v~s_([?:pzS1 we}6:dRص7\^ӛ='-7w^I}&H^c#Y{QsO'(Z\fl ՜=I ~X{ Dz 휑;K=̊핽#QvNc9C? Meg-j3z zOBsa.Z HW!`0B'` O9#᯾z3T'}ƾ6j,Vk/z=ݻw333);vteq)(S>E8սǽYOLڥ kw'u_y=^t" ###==W^qKwVw;[4ݡ;O } T{T`D)ݷo_NNNddB?| zt<囁_'>6e@Ђ6w~zw?7:nϝ9sm۶2JBhΎ۷M)7OYb<wJL #!BÝ]!7Ou=MMMM8l64JΞ=ۺu6mXB;^9=uya8˟X8~ԥM:ġ7Ou|~zzhdYVјf ٬hX5Lo۾\C&`k{hp.P}Ѥ1Q7y&MP=UqnT:no"0Ft:FSPPP^^n6@V;,v[2sYVQ{{J/g^toOVQz0p$=ǽy[i@)yRj4F_k\fpl3 j4Ep, X?{X7Ku|+fee1 Bxvak[/!ї5 `+R( f*I&3 Yuz-T nrʄ٨@qo\0߿xxxffp722Lև)fwk{*m_PȔ=SQnqo> 22kО|$P]{T_Af #A| F 0!4`TPQ՛`0jGQ7`4 z3ToRTGftQS:*P&vTP՛-! Hw>zhGL vڡ:Ϫ[]'Lvg[k̓}ЮϬR,Mu|+ h/՘QB6 u0! F'O$T?PH=zBP*3f(--+z왛m({Vqܻ۹sÇ_|;Y[PQ<2;wnJJ,Xp ^?jԨs͟?ǖ-[~iK7|sƍ~iZZڪU>䓍70u7nLIIqӭݻwoݺO?mӦo]ǝ+}j9rȑݻw߻w۷ϟ?qرC@ddٳ^*d6lؘ1c/Yljgu߭3gCPRRrܙ3g٭b.-_/UgQTGuTouOӞzꩈO>,o6mZxxxϞ=;t0{vn:~oWׂQս%K߿ԩSw&۷_~?@~ .ܿ+_. FHHHqq1@-f  :{S]`ԯ_8H'NرI,Y;[9&$$<[g pʕ͛7ݺu vS :{S]w`>|W^YhT*}ꩧVZeG.K$۷o٭qƝ9s&)))22޾ TGuT`Ա}I۷%\.7L?mٲn˖-.yTGuT>x6 >#A| F |q=#*FuTGnnKp:77u6!iZs^Q[H9-b0;)sFѥK,W+iӦLB꼾;PJ[n :x> ;vl5 fԩ?|Q/?у>~֭[zj/<߹s稨zYV^ݣG={xY矏iڜ9sbcc322/^sN8InPTTg Ky-[O}̙sT5o&##믿^v I hڵkzs-dҥP(~+V,Y$--m޼yw̙3ǎ 'O~{S=55u]tQ+Wt6Rg;qD^} yG&O̲l~~7~+((HHHpA{\ͧiGU߿z)S<+?XBKbzJKKͬ(GS߶mO5̍7Ν;xg9B}ɒ%Z{quٛ۶m;pwءR"##>x;vl޼ɓJm۶T~E.x;H*JǍkm۶NCO?3ݜ#JŮ.5V$j SNenn΂QC7nܘ;wnxxU$WDDbB7޸s[oնm/xܹE\Ν;.oC`ԫW/5g̘1c :o&ywKY#QñbŊFMNNNNNniP*֭k,u /^hhhw}}]Hxŋ76 0!S>47|15Q՛\QG[Af.ȏ ρA >A\MLO;qK 5 ٱӃu+8#5 A; FQARRx(79#A| F F;w$X^ҦM_|>[~~… srr< ̓Z/_^TT"C~~E0!RjD"G}dܹsU*UPPМ9s8^k4)Siy,X0g-[-[dYfl߾W^ǎ[rs;O:5///88aGP`4r/ZHzȑ!6mذѣX?M0d2A&C-!dɒ%_be֬Y#| 4yjwicƌ^y>h464!j8ȇ~{n:uK,X@)3gӍFc_}痢5m۶Ɂ 9 M -ga=zy^^|-]&lܹӣ~"; 0!`0B'` OA1Wzp4%' :r[EAcБu.8cj7 M3B'` OA >#A| F 0!T k71 _+ PlAěT;A9R;vAfͅݫF endstream endobj 1173 0 obj << /Type /XObject /Subtype /Image /Width 238 /Height 206 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Length 9982 /Filter/FlateDecode /DecodeParms<> >> stream x{| W^sM"\" T5R<"xH+Y|5t(|WI`dlF&P Jʪ/֮=|LVm5}2"Ϲ_ 9Ȫ(x[ Xψ,_%W+DQgڴdUwO>v奡Lh5%ëQ!3vu£G͙-'R^$ `l/AQǃ\/lmmzz\ܺm,a@,G)g^&!M^0ou/}xpkKad /L67_*deecu$61}7Ծ"\L^^2ȱ@YH#/h?9*\Ccc3 c`[hjab?$dDaQQkKx ^k+U 򲾩_UD'G72ADaC|eU6(x=z^5^Jf@J:UOr-PD %L8ƾ (mED(.Y AyRՐmB!_$0 ī N2C%vPŃ\[r c} ;NE(^?lHVVaCY_j k[S-x1c^Pw',HObA9lEPEa0 FO,[%5D"7RīaM֯T&LtO\[>>-cN~'ӹ(CcY?<0+3s=́H7+yb;V} xȲ/|ZDRB*`$ HWt%ݻ{˛eYo  p]SxdXAEdgb5-sOKk[0a񪯩hA n~561|lƅSgL!iMF-u Y,#R}ה-.nGe},[ÜlOaʀlic'BQQ+`s !6 -KVZ! ,Y{/:tVoؾͲ`f1kmNXrgiK2 [7BBIUA>W&رnAVVvB6w??$=/*.}Q9'QQM7W|ӱ.$ ^5e0̞#KjSC-bf`bUc0YL  BYÏ[rBZJ=w4K8#kE$>`qJ\:"$-4!A#$}KTIȫPiZ(.y2pM k\r&mگwwXش@ЍU(#,VO5`q\6>Z YE,&HvJ(5Ex\`Qը,+#tDHVVa'Y_%J{WHWC^!rp7uL jς6@nk⛤o 5Ј#1$Q uH| ^(8X-'N,^_GID = K_Ui2't\[ @krC2Eɮ+}ZZ۰2@f|SAկ$F UQ-(Zhî\xTx qxZ;8V{THkF̎H ۙL&aAцCvv(M0_~y^6 mmyf(0ڰk@T{Dښ&PH&46>ܻw(ڿ mlmml)ݮm5z}O@A~]v! /3qDI.]լgB0WLH>U'Y,jqtY5ALTYyY`- (eq'Ս/W݈^]]5pP(hiiٞłP+} d2<=Q@~PX7n677߲e V^ZZ:i$SSy|)o]QQ&^|uB9stuu9rARY4WE}|\@y(\\8eDn|D\\wJJʆ bbbǎظ~DU^zСCy<ޚ5k曖;vH rJzرx9y+usܵwy0tǙ3766[X8.;?֗ԧM_al>ɮ]+T&Mq8qo~(b|rDDDDDOzzzaaafffQQիW+VxVyԨQQQQ}o߾8{daÆM0UCC%'O&inZ[;n jgg}ZQgg75"'^ZcוL4XND|˹.WU___UU}.233GsҤIc Տ?~&aܹVVV!!!SLQ=10`>>+V ?bĈŋKCjjAA<^cCKxuՅ&[WcLLU W ^8oyMnPF䨼u .ܼy_~A$ ?Ķ…;w_K~~~sߔsvmccckkgW_\\Q(g=;wH,; m,\,VWKWO_'OJ K j:;w8$ ,DR_%BKB*֬ܭۻMlMuuAK{3 _8|߈}惈}kR %4hŋ% \. tIC S.I) zz9\U`l Y _NlfF̊Mfӳf%`\exx]ɿy8-_EoW< @ 77 FkNNNN"pVSv{[lװURW.XDu{/: !pQV^6<\3Ψ.WӾNYL8r՚VQ=]e݊/ @|O>gϞ6bĈk׮D7/tww=ztnn.ᇢC9;;oܸ _RRR[k!s尰ЌFZ|hΝ;QQQ cҥ 2~nn={8;;KJVWWwttj5zLؿr$o111_}&D~?3f I_ԭA肮ߎCx %2"?|[[ɓ'777WW\V\w%%%;Mњ]^Ao|___hhhXZZbM9 YxcǎRSSeeٙܳwy! dɿ-.O'gΜ9qDjjW~T&%Kŕ&&&X,*OWuA#Co|LiӦ;vWV4>|XE#\ 2d  }<6_&}v,Q_P^]]N)ـ:2mP˵~:E)S4 PtAQpnnn喖ÁRR(,,eeeVGo,*ᷙʢ\ZBlѣl6kЭ*)O="ZNͱf赦a⨌ϟ?OII.]~F؅^*.WI);99Q<Ť*b"5{xx\?~,^c=RI"_8WV\( yy=}2: (e55+ e98dDe܍7 AyzD ̛u8*+R586J2EayA5!z2DOR 0BMu10'5pU **@d๹`x' ܺn|9HM}b|a&Oo\NЭ¹N -ڧ8O1>pᵭ(  0s&=`g1 |0`@ϟĕ+``c MjZZ^:ydZL]<-Zk׮]v)Ȑў**@^a=Sk]]ݮ]T#ve %$$]NEF7XZPT^Ġ7W^]pP(2d-]<1~G.;k,Z$\`͛{/zr͛7]O2y|#G>c&cǙ<5}%.3=Ss++ /7:+ʊ!{^U-<@oG@vv6Nj.@5]v(")'Z2yʅLlKKK;;a.A~s(jԒɓ:JXSUK,ˋ%gII#m~=L_|&O5y(:2ܹ^k3vׁ?\ D(eH$KeڪLc"Ih땪fيW'!L eJu z _ɓڢcSSq988¿MMM*QuE֮|]y"' AdL@BN\[t`0ϟz.fxxzݾ}+';^ .&xP( srrR)GRVig>}jcc ;v,]@p !!ާ"5>gVUU=yJGq!@)SBjnllW\^+/X,3>>^Ekա7'Owrʮ.ZЮLvvv|vT -[ֆVVVEEEWVV&;TY^^^WW7tPE{=UE]]?>Ҙ?F dggߺuKCo|Kl릦X@2yFFFٲe'N U2y:uŋׯI X=%CVkkJ|͚y>Z2y:u… s-+++++0at>UJJJ֬Y3p}i2o8}{QL| VQ} y&য়~VHtLrK?<GMJJJR[~hK>\_=z(IZ)..~ R_wzZ[[5>}:22rر|>) (eQOuuu-* v"I4Χ^"0'D&_B.WI);99^k!U^"d H WY)QU'O.PʯAEX5c*qG!4]vsX:%!:@SJBQԱڵk/_g-Yݝ/5C+212Rhu:9ib#ѮLvvv޻w/-h @fUub657P  <7nxu |xҤITiƗv]<O8~Y=j> ךڕ￟:uH$BPk1'p+ظgϞ\e)fԑ]S9<ՙɓ^khW&ϭ[b㏣In%\ܮ''$ЮLvY,-WhzK5 +'NNN6!J@o|դ kDOR P=J'LV|a&O_B.Ε!z2DOR P=J'@)C(e !z_= EB 8 P=J'@)C(e !zV~k/ ZGXx`J/Z"~+H2倾vE4+C(e rjj* [lVbccǗS\]] ݻ񒴴p%$''Ϟ=[$̞=аvˊد_?񒴴ɓ'?};H*l޼Y!)+**vLݤ[[[#P^ ?* V\)wmjj1c4hйsͲ+$2ݹs'((Hb9???888667##ۛ.] &l??,ҥK'""Ǐ?~|gĉUUU>iذa<ںR?ߓ'On߾=>>>!!a޽?Wٳ޽{W^2e̙3-oܸ133Tܸ{ndddCCe._ÇcKKK1cFmmmttiAUU̙3SWWGavRSSqyyy˖-KNNutt\d ٳOW%8H$:wcssG)n߾Ǘ~k׮Ŗ]\\>}z1 Ϸٿ3Ž.[__#SSӮ.qm-3̶6Hdff܌W;v옿x/ {<~ÇB!.!ldɒ 6`333aaa>>>sJ455566|9! yU!g%w"yϕA[G$0Ϗܿ?ڿƣxs>q?jN\[[[UUc 0@bGjjjesssCCú:i$zyⅭ-nӧN>[NHH.!lG_zlݺޞЈ#._\^^>e!mGPb\PPPTTN1c&&&۷Ν;cƌr֭N*s!P ~EzO 2;;;KKYf\|=kee644rq=|Gyyy999>ᅬ-oڴiȑBЈH$Yh0iE%e]رc~a_{ k_{!͝AtG=}tԨQ} m{0D222Fm6LpTVٳgN2uTpGeEO @ h#AVHu7!B\'@)C(e;Wt1]@ _f=R}V"Xn@ *my endstream endobj 1174 0 obj << /Type /XObject /Subtype /Image /Width 438 /Height 256 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Length 19485 /Filter/FlateDecode /DecodeParms<> >> stream xy| ?3{gs8RgDGh)U}:ڪ㇊J*H >611Y{Nvk_3|>yf>\<A0kt@ k--)#b֌铧NwzGlِOfN6yԊ {@ xŋn$ /%%M @JYZZ PFLZM*@WF pw B ><2#Gi:`Xpp;\NīDC iH^VӢ$kvjW8.D ;|xdOCeg@ fG@8x⣨u_|5l^/^|}ܬY,uA`` Ln*,dZ-:' L?2a6 B![0f͂&'7JgNRkiJ01 :F'=u@ ::}AFSkOEyiZj)SgϞMߤ%sh4#F MK<ٳq'o„]***>fW" ._Ҩ;7vH$z)~ ( '~;wiQVԏ ˖so~}0mZUVU XBeF= ?/]f.dh/_?̥C[XX(}adѣG/( ?}4}M1j{ ʍ~lp8pxki\+4(iPPxЩsPPSdM_)D+_kV͏1 :ϧN@@ҍ'O dBR)_7f*NTQT`.>^o7sI7=h4*υ~LjiYޯ(/^(jO ☗AΜ=WVZ㠯ژRU(eRiiYD0 sX_|yاH"XܴI#B"4*>:?[mA-p+mCL+xE6ۊ>5MV )iUt MPG1 1!A?&$b߭ӟ>9c*h4@VTL@qT&(Z"L^/Q~AaTChȫj)0 ǔeRP Q_`!F"TH$\'V1 $׬Am[XՕ Ҵ\]ݾ=1mg e"aфc{ړ*JPՑ3]DP$DTUbA\~e\E$qU. ]܄BX,7 Z*,7WH,6/((/-E%4qwwwD,f&)(&E Jd."DV%}(`Yw44X1y;72ZC۵Վ;lEZdkHҸqMQT$Б@?GUyy BPVNBq֮]7nΟa4yzxw?8>e2AAcN())1B唢ӧ\l>>>z]v-1eK1ը?ܷ@Eb3igCרYs? Ȟ14F豔'Oh4#L m\.o;K/dBPGh24Bwx$Uԯ_ɠ!T* ˫_.^#w ǎ1P,tJ__&* gAqUhdzf\pG.wߧP 8T2 ͖>IDbiӗ,Y\x>C[LVZ0ջpfߏK'0U8G_eoT`±#AAA5l@ Gu#:UW^5%RFMh4.Ԩs^,ei V\T[S(WjJ$\r2J+;~ǖ" # Hb HYZ\\X!4\X"**se.rEVf.-.*.̯E`bL,ujMJO:rHOF֗23gq[75qภ0 P(\<jigV'#c)f]oT4ܽ{mc3&o׻o8J- |co~\5k?zaH!:>δBJ~@JXA<@7/PTDbwO ǩKBXVͳX`..rZVUBT.K45H&wpADVBP&+;5j 4#8.b8T` E724OoS٨Q02F"X*J7E02CDB\Y^qX&@SZR!HIΝ;.RH$6D.S|@(*}cW7/++%P$ڽzV'#K{얟5kerW@PVZLpF-KP',zdt\cu6U*MFۏF h0Z$*DlP Q4@R~@y :PHer[^Q) %:d.2Wڊ1Y ]\]\2aAb8&iy"|r*zFs~^(DRPLn0?KK_@&wɍfx Fر#&&f¸q8.rtbH]\o܇&[#&ƈ:0i/J jdG zAi&$L !%Xw-}8~,3)9cmuǺ qq=|ѨRP$T̴ѠEd$I4[c2 i0Є5j\ٔ[` ݽ|8k3*UH*%'>FE"T Ebn/a< f"C(IeS: BCZ~9 Vg^^aKKd.xG4| iP3%ePZRdOOC iSZ5Adgfh4W8[a!UG4\z_ӟ̎-p*0j@ ՔAͨOA p4h@Eh>%,E5-n7FY0)inP@U v5eF1"*-=-) AbW!!C0"In]Hۅ -vg^WF.**t X[ {=PPv֭nxMFu]Vk$%=|V۶4STTi͚eT AvHZg=\wfdd@z322-zBXӺK>:2&2†nb.L8sZJe*+б{ڭkɝMĎA;Jx$@ ܠ"e2QDDÇ/s4_\R+UR _J6B$MJτ`7Q̭PlԨnnn~iiIQQqVVnVNq,U K$׮\ާOփ,8䫐+վ&@~} o"4w%WWiFu媲2գGϲ'Ff]H$ %"Yնm"RW&YYO@ FwD[Иc;wiѢ\&H\g)]M)Sꆏ@"((VnX/\pKq smsrr']wڲ괚Bߟوү_EiEBkΣUKɷ퍭7x8hc87@S۷oվ}+\"?pGTI\@N@Cs2Gݐg鵨׭[eMOYZ-k=<ǭx/\$aGL-#aPΓz #k&ξrCv yv9~95tPD Ql@ XkAݿLRk)Ea*?>|^RuE+XhEmLn145R \Y!.f5q<.^R f/^gZcF ߙwB%_bX:l݂f}p 7klۿ]\Z",%d%gh 8]ZK@ 6@vZzZkӃ@ |-5$>>>44EWV3F*%&&7Hߓ<بQ &;9aÆCm۶-88>S*NdffΙ3ީ?s۶m 9r PC&"##;wܽ{{* D1xL B̒ޣG?kϞ=O>mԨB}h4!!!V bN >sLpppTT@ nܸRf) BBch׎ih~UVmٲE*@jgT*UL&ryHHǏ3!5.=Ν;999N}m۶խ[wСϟ?/ C` ']AGYmԷWREEE]ɓH2!>r<00?24痝 FG?mv>"ms'Mu%KxyyիWt>8n݂w^=$Vz7o;dȐ-[1*k5t[nݽ{^z^ fnչs?cʕZf0U<u`[f̘ѱcѣGڵK,ӹfBb"Tp6mkAػN< W1bĈ#S᡽A MLLTTonkyO>d'N|զMMGݻV9СClHɠeK a@& cw޽{7i/ɖ-[)Zl8l0L&x`P(ܸqƍO{Zu~Cg>{{0v,S@P2)K^ zݻ7vO2%((ȕ|T9.EZW37B 3g*-hӆm}*fꐐ3 ϿuVzk={i29}S˕#{C8UV`^mue6(oV&0Z{~ SG>2gr-߄M]t1FkcQ"9#{(̶ G;%9ZE~5LWָ^]elx cK/ɱ`E mv&ʒ>hk42s>{gc0⮶59o]T?f5kJATT}s#_^w 4ˏ^$;Kv {ix3{^r H0 rvL$6ˌf[<I/rՇ1š<5I୽wcS 5?0(~XbEJ80`1f㤥WZ=t4L{Ou렰kj* 6r26n.kw>{=׭[W_X688.^0 **`cUpo}˗J?ForKaUMI?iӌecΝJԠL-|>f`6:"O=ڴݻ9u>/ G+Җ"NFJ$!:"V8dhU]yf $%1ӴhQ VJ$cѯ ^fMw /_|U" mw bĉ/_Y/a>Z?ݻN:˗/oժ-L`5'KT~ܩhÓv:p:[boI?7nLIIٰaC``?h,[N:3gδQ1x9xj<5T$'CƜ'}xUkᡡaaayyy6|r˖-#ƎK84ԭ /_V|bvALlB搒R'捎F^kE@o޼Hg@``~`jj~B }"j4}npjhC3Q%"@ y` {Yno6{=zo0Lx4n#q1葵]|Vqܵk@oMưܗ>"?`—5]- P( 77|}}F 7=Neouy5AVk=ھ};yxxILCBBbccw׬Y3OOO[CzI%c`E3&99y֬Y+WD&"h|9s֭rJӑ-$K÷mTei ¥];{ ŋ/^)ṗt^2رu/i߽zImvDr:"]$u_\;\o+{{9V.%_87#ȶF:ncth_הEL |lG{A P8#-=2fчћ)ڥHugoAsȱ`9}S˕#{NTLcEjJFYulն:eL_5I&7n1˛Q6 41^}/i?Vk{򵊄M]t1FQ`p"Ai HxG8qv?b{#dLCe(Il٫%TZtH{A+fpppzzcjZ>~ofVL}\|m6KKk|c{Kȫ4hp=xD,O81??QQQ8v쵠?v{N:_;CjTì0aѣhų53{vEfffΙ3v9d03 --ߦJ$+Fًu${-.2>>ڵk6!jH5 ]8.Gɬ|.AÈ<]9UEv6Vu9i7[ , ^lYJJh11Uc^%h2˗~_|ٺX4ǒNv' {c$`w4DZѾs,[Y[.Fѕǩ/ աU+HO aV`GS[Uk@@@kSSSa=m/l2jdG?|icEJ80`1f㤥WZ=t4z5j$aה69Usl_.zMvWN˗f" NQbê4p6P0Sa BE5Xf/c/HJ!=:&WS{\QthҤkp0E.o2{hoԷ/ Fl2 בGo]7`P.^Sm;U}s7kEO`nY`ŊS܌plW.RPL85k_"""lz+V.G힣<2UTT…PQ'NKjt>{ ²:3"ʠo_ի ֯gSplܗY̻ȍ7lذ!::}m۶nݲQ ?".1_ ߼ys&:trʼy={fL#}i?:jno{d 8t[֭4hٳ/cM"I$J |Mxj6B.r߾} (,,|h^fηZUmV#ΰoh?zh`,fjjj``iU]ZMͶFZ1cg͚rJHd"2Si%Mxho@{FҠza?|twwߴiSJJ?ӹsgF.]IyIR|RF}ʴd?ro/ص|op⎉1ܟ]LuP2 *~r>{c i HZfqwX/||`n `* 1H[R.'WWM{ 6Z*Ĝ($kiEEOah5 ./3 z 81֧>}:zQF-\/7gA/}#]"s/iu{sHHװ|ƀBϟ'$$0XKk|{{k 3}2HKOYi_ŠtoFEcfi86ǥqp_RT1 {H'^*=_fU0biA^0"N%`D!ׯnBaElqf/gu hf1f㤥WZYSz5GP ^" bjHq4 Mmm"hR=#S꼩jX+ Y6^W&7: Y=#)[+ᥭKa[0EBX}gA{%^Ñ]d%Bv{Ew`5HB1tFu̙36+++7n\ƍ;ut)G&q5Mlܘw7nLIIٰaC``?hݻw3gsg!:@*e]5 Y͛r޽H$ PwziZ|KN0ѣGVbkXhkWسT*rsanG_W`9q1EO?UVݹSJl@&@nx;oǕ{{qu;w޽޽{ r=#^R ;*C.\lO+h rX~Np"Cs%(!1B`(½moR[н;w[QC۶Ƒ`P*!>uYT,X b:EvڵksND Р'@\g.ʃ6C88ԆC`i[`BXȁJt/`p8ٕǽzA͚ܩY3:&O֯.mSdHٳg7n2ͳoxy_@Э˖q VF7pKq0n:Loi0,Yϝ^Ha]D 0~<,^ d ̝k4liN-W*ObA >㑑>lԨB4k`ضF=ښS^Gԛp4iPK.&Ho-k֬!bΝ^^^ճBNI_CD _9cƌ7o=N:v[;+ZGaubD:;u@ k싱񇴴S Q5iFFz^v45TLljc6NZzک#FODz^3V\5+ 6Ez^;@ FA.@ \M>}zH/ҋVGt@.zrrr/_"HouK5̎c_.d|ӧOuJFz^?u̎x5CW\7o޳gό LMMEz^׾zcfvgi D'<55Utm/WEz9}v_G,,WEz]# Y+ҋ"`E*C6jԨcǎgΜQLH}"H/_@ܸqcJJʆ s٢Yi?.]-H/ҋ .2<<<444,,,>>>//F}J3ZcE@o޼B{#-3+MYnݠAfϞ]VVVh6J ?"1"?`—/_FsTi!mjv7=z}v0iȬ4}tyˏ92iҤׯbrA1իW"hѢE 8{ʕK.X޽{~m^B.*Fݷo_8ѣG7ńR0 gvQ'|r˖-#ƎŁ^{ާOÇgdd|q8X6mbccT^vr;駟?̙@IIɢEfΜYvmTđGYEP>K}ƑȃsιsuOk׮ÇplMOOywq;w.Y@/ ŷ~gqdRԠRVkC`3=@sFYlٖ-[.]j0,WQ1x`\NJh4uwwٳgtttxx̙3KJJѫh駨9ssT*Ֆ-[ fi}E"[P@nn.Fsua\J?~;vս{w2 }WZմiӼ+Vc\g}}zz֮]˙zzy󼽽WXaiO-<~/{zi.R'2JP(\xŋmezիWsZIII\ٹs'IϟϽj{=D4q6@Xraw:E$E8x_$%D .Xζҋ:^fN6yrȞv*#F_>ҋ"IA.]t# HxmdžΝ9aT  <[o;Gy #폩f.˷@ l3{8H"(E"QpqqqQ]ԩSgԨQ233ΝnpOOO 0 qy=:tDٲeKn~!C-ZsU^^Tkׂ駙^6{`jK,1!33s޼yH8w\nnnFFƴiӆ 6JOOQ-J[oe@ xc.R WF3k,///I&jrN: 2D*[aYV#GΜ9sɒ%dxBBBPPD"֭ӧO۷5j\.oٲe||o-JǎK^szI$޽{xB[ {ャ,hw܉1cFӦMKZhoE' /^好G~'O~G(//5j;v'[nUejժ% ۴is]9r$]s̙8qJMg@ ӧed>>W\yU=<<<&&&iӆ ;wggg?~399y`ƍgnܸZ>zݻ'O9r$Adj[lyY*+59`̓@E֋MW;r8?w9}c"uvȑy_O8ѪUI&mN:ծ]; gϞ8p`yyyii{:t@S###{'^n@۶mKnQN~Gp5jn08k//];n82~'r{,ڔdddhÇ׮]kݺȑ#`ܹׯsvwܩ[nII;Y޽srr^zձcGR9@8H ,Xfp BkJճgu֑_k!~Ç vR)!0 >Luw///:u0 jժez# %CS)RSS ETTԢE W^Q6oǏdd[ǎ? JRarOhhh>}ȝ7o\rڵ/_~ɇ:txV^T*8|p>KMMMMM}4h`Z???j(77Ġw6S05k>y򄌐V@ǏIIInZ~v4F^fM*-[n߾}K.}Tx>}>GM7pf?O>>}?0k֬I&}oVǏ?cƌ:t}ݫWvss3-0//˗7o^x3o߾ΝS*-7nY֯_ .͚5G...VG3}?I5H;rHB!H [׮]۲eKaayܴJ$B~r2O>Ȯػw 7pjla*͚5߿AB0,,A$''7mڔ<ϙ3׋D0EII۷>|إK{w.],\X<" C:tE > endobj 346 0 obj << /D [1176 0 R /XYZ 123.806 712.73 null] >> endobj 1179 0 obj << /D [1176 0 R /XYZ 333.021 679.583 null] >> endobj 350 0 obj << /D [1176 0 R /XYZ 123.806 554.407 null] >> endobj 1181 0 obj << /D [1176 0 R /XYZ 123.806 517.403 null] >> endobj 354 0 obj << /D [1176 0 R /XYZ 123.806 394.347 null] >> endobj 1182 0 obj << /D [1176 0 R /XYZ 357.928 355.222 null] >> endobj 1175 0 obj << /Font << /F25 474 0 R /F39 618 0 R /F44 651 0 R /F43 652 0 R /F48 922 0 R /F57 1180 0 R >> /XObject << /Im66 1160 0 R /Im67 1173 0 R /Im68 1174 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj 1188 0 obj << /Length 1808 /Filter /FlateDecode >> stream xڅXvV+1 CI;'ݲ{dO$A@Sܪz !q6b՛j5@iշo.R*)cTL,)2_,qzS.߻uii1X7kv뻷ʌ.\~ꏕ4Rubկ{?Fib"cd"qրnҹ¦M͞)I4Qi TͲ}5ӤդR0:q&XAi7\.LlwǬt$k3 ̤IF%Ygl3%&}_Ͻ%y?3{5_=)$eZ*NR.)u>hmܵLx5]/k7c M2-v WBdx"I8Xv/K][j,<[=xn益{*~ o܁Y`ᥡ:%ڴ`/07x?6"É*H/t ֟5e./$O'9>k(5c۪~ ~ tk#m.ڜJƌĠ]w|%-=qs> n ϻ<)rJoĉvrdB)ڽHxN‰=TVxeڎsqE]l?гSmGjl>. h E "tH,n& "FY bf,p9Tf_,N 8âSWPk4|MymA7C:8l <h`$DjWWR7P:U=B~n 9 ~5.79U/osM{ ` &0hd.]Wsm0H O+)g/0z,nP4.$*P X\IN.][jv*ݙSK2f&W[)CPLФCM5ԵSNu>" ٘D'a|v/gC.n3DY4C\iTe4& 9CL63i_&C 8B?B\-1@%Y"l(Oc'nz>r50򚶯U:-sb'̲8#xkb),?+ԭO@gꎊu)/"[Ιk 79Tg<ݼXN⅃x;т~"P₎ԕ'?EݨnTv66'Ud8$=p$_ijT-IB6i&" mNlOu:BZrˢJ5y "ô7UGH`zi.\[U\L¯|*kWʹC9(sSKxX_oج gSwpb09HM*f5Ąτ[:*À[2]$+TMʦ 4:HCkuu 0C?moHn95#Ea'z?VEE`kxrgpx x QY_ endstream endobj 1187 0 obj << /Type /Page /Contents 1188 0 R /Resources 1186 0 R /MediaBox [0 0 595.276 841.89] /Parent 1168 0 R /Annots [ 1185 0 R ] >> endobj 1183 0 obj << /Type /XObject /Subtype /Image /Width 288 /Height 326 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Length 16843 /Filter/FlateDecode /DecodeParms<> >> stream xy\_r "*g"GhyWjL+M3KZZ#4*jgG' q,ȽuYvX>>tv=y|fP(DL^/ 1yaqTDL^xzː/v?SBEV8)y`J.'JfkQb[R"s(X\6AۂTLRW7*Sg܏MO9,_.NP`VūYJ stE.2]+ pV$só*-o@N;;pquk?.2rgC| rZ6nsm FQF_t'Og/zD fd=>%u*qitW%uukҡMq^uUV;='EchԪQ+G.>bЫh 0W% IeXZC4D*Jb^ ύQSJC-;ļc*Ohm*lohuDep"׵P,E) [SJthrJڿRZ;SwdQ~^G^멅蓔x*Oq>Zk9wc>mh P]teW]}י<42SG/=YH?'EI~ɘw[XiG  ժGM"CӁm{uyuXwl\٤73 v{Ahp"T=j D&o0zAlR `x.p<0%)7ϼxJCu|M;vdkڇے=ߴ'anO^vo:^;F.dkS陔HDQ 1vlxK&X7b̘Pȫ*)P"h>vQ"kPbGzfFL=j-C";89rF(s?iv3Դ(LO%{TJ\rF5Q!~>t o7qRZq@=y/d'K*se5;|0`F$?DdmƇ%ߺ'a.cG7ɡHo"88lg_\LS00LO1;L 0s{rNzc I&X%c{gs2 ]J뙥~vT%1o1u>^h@Y\phՐi+ڵi`7s)>*TQTH<Ք^i}ݪS/N4,&xAnޔHM{F"-;m,;1>z}0u8~yc'} PTܔKvIT.]Nnα\AwE<.ޔ~Vb/*.+Ө4`STRv:NQc2% [>!uELh15 M7RFӗR xiWg({AQc|Z]1!2%L.Q~Z&sR{N}ٷaHe§'Tf8D4qhL G٘Z0;x];LBoۉs*np[o@o.rmt|$T40k{Rx툷\rtӃht931 PG%Wiĭ<e4hFD3L%EMiST*)0jF$ѭz]%"TEJxI{滈JZ7vgWUhVr-(sq3 3rKvAc{K~bV3"G+;bc|sLvt7 (/lV)`P@Q) AQbJ7ά|hOw<\= RUI*/cRR2."2UDR֌D è!WKK4RFC= .2FQN!zҔJPђ'(g{IT'J7mV)TRZRJKKiz0 *6 AefΪɁgsNu+O 94r·[Ѳ`Ю795M1W1vϭDĐTCoTʝYq)=EƵHZYV !@ܺAv"H#3(hG71՝t& ,bSM孉D0rîKcZV)Uuݰ}uyfىgpA`NI'.wBNs*xiEKWm8>XЂYH,QRW)S)Eb (9]#ιUlER/ż3T*.r/9ki#@̿arOߒ M[EQ E}=;[V!εZt n̔بWT\6 $/,z/2.y\ Vw|1@JjMW6'bBhyuۯ> "Bþ֬ok;Y_9bsQCj/R[jֆH)Kl=.IFWIDw^5VTB (, iOSO3T. r=W'GbQe˒ʥ^^WfYwBl‰+/^tRv~rrArה)S>} !!ҡ}iii͛7ם)h4~i˖-{M{'RD XYqT-\*,/)2e֝rмyo޳g?Ν;%%%z ٳgZ>hΝV}ڵk曝;w֯_Ν۷yw{Z*00pܹMA,䐺IJʴ_J\<ʳe(<%\9Ѷm#Gܿ?!!!)))..O>fΜy-^t˗//Z(((("RPo&Mk׮ZcLRc%Ɋ+ؾG;!RD $]@-XJjʀ>U̷Ko'V+)a aA p:9m1RR-I1GWWs"D')d[Q#\@*;w.a{{{4n@*M`9D"-..ԩGok`+:.e]ME"mۦׯ߻|M߿ҦMӛ8¬@Z~:Nw*==;/@Æ陴55SVTTzLg&4jT()QTe&%0`rO#G.w @˖>-*.V(52lύ7%7rIT*նm(JNNv`MaÆ)RZZ:}-ZgΜGJPL8y={<{زeKƍcbbie˖7nܸqXXLӮ]7|Ν1S`ffnY:,CVyܧMQ⬬ܬ'=4:̚5+888))iɒ%o ׭[_-ðf͚{Ν;ĉxzj6%믿^رcfJLLtf8S]͛7oڴi…ϟDZM6쌖W*._\n8>W\Yren߾=j~{Ȑ!.^x-ZS޴lĉ_~[ZAEEJi:==T@O_wz/t*r; t2p@6 lᐚqqqSNiSN)hIOO|:N8Ѻuk mt@qqΝ`{0`a{صXv*J.wuuq>[;[?㼫IJuPb9'Of'z1bգa=z\r%**DާR~);qy///BCC7oތǫݻw9rDY(ӹsgHxbݰM*##4<<\P̟?„ 6KlݺU&ԱV̘1^~9$''ƍ;*@ROBk n|=i)YxSoߞc{*j4MZj۶m+W4iUqnȑ}YiiR6l5j;0j`R^^^6m ;wnqqR4MgggcƌYh[36)jz۶mL;;N:|֬?nҘ0oFJ\tfu8cǎ&MjӦӧm ,R?{n;L8?lذ'O,ӪUhc}BHO0k׮#G,))ǫڵkwرwcƌQՙ6KvZVVVdd1˥XzGY6{(h_TܶnQIgw%3gl۶uVvl iJ۷رcC IIIٿQQR>ݸqcZ4h`Բexќ9s6l~z{8pիWj׮m%=2VIiOwhËz5@&BnHYRmtԩҔ)SLꐚ,+W_dݺu֭_ז-[8ru;|}}wʼn3bxɒ%K,D&GסoIGz%y'T{n=#۳Nx"yx@ؕk[Fŕ+Q]sjAMLfE"Uݥ 59B!C*䨉f)C/O٢3Kcn{0GHsYYYsYvْO\Պ6Ƹ8س^(R$a]EDDDDDmȑ#OHHHJJӧ3g޺u5~饗 `lO\Պc!e݃) LHHݻ7tРAٯO|]^p]/ a.^رc+W믿7f&V8{;V3$e] :rȨѣGϚ5+??͚5СCBBȰٳg(ǩ̙3yyyO/R[,g†W5CbOct܃q ǜj] =$ƸFl86MN4ͧ~ڲe˾}Ab;utYz5'?|޽{WZ8w\N41.,...$$?d/_СǍw=v0r'Ę}8At{qʕ((7<శ mj+ڊsDlh\]]mD<c4_VϸZj^A1FpRjdG޻`tlߎƍs' \h8K.iL¤8 b3Lg!k<Ɵhby׬/g&hnpSB qKk|-,caj|χtÆh8kp:w|oM|%ll!{0]u?UQYY&l?g 4,_C8$Nz;&{wEl9f l܈-qe"C=c1B%шCcGA bLw&[QdQ_4Xm&̬},b'atL/A)+0y2<<0(+M ?GZ"g"o͙ 3P f:.<ʇT}!;rr^=PX+~}f^%ۉ;#A1)LY_K!C%zՄmDɘ\bӝuP'!|o,?alQ֏[5޽};6lks%[c;3Qcwq[|ˀم]>1s?a `mMq7;MĄxy'vnS8 hjzP=r9S4ݩS'7ϭTeg1s&4 _:k1`㛸6Dnv)imDI EXt`J34ۏGa\Y~ۅ]f/k.<ʭ7TYI${|kl6K`N-XC9ŭIiPO :Q09弌)7<£ܨQx \x5 # }w^YWxHGP8>T( 6k,((ȨuF*R ?`准-o?7c|oSv(~ nŽ7nP%$%%=xSN!ߩuw~<=.RnMw7^"oVZh7;p#GbHoH9zhjjjPP\էW^yN s ^3*;{7gv:ea 'x!c(1^_BB£G$JD^E5 hj?xȹ*A딅<ƔJ3z EE85--->>]єUBxxx\rT uE=vyx@TJ$|///=jJ~`` CZ.K.J  Q~CNY0£cZ*6͚vm}VC (++STJR&I$j=o ?b@䣨@Mb@ gjluʂC jW>%]qUiaJRMQT5 Pҩ#fnlu ܃Xdgc:SP]KӴ$4MU7^ux5gv:eeラS!@DĪUڨnѢ۷bdad2Y˖-qK$q< @{1VZ,jX P11P(ʣ ?"9Yw[ݺuS*r\V \^ZZV~^!pAR*hjluʂ`,+&յkd???T_VVբE!'ii4 uc|oShUEQ z͛7)bsJ%0]vh-BU/CW^xeڇUU>) Rx1Xn>|>zc} f]SfluʎuXYqZ74F|U[3;hC`8(! Ty $C ($]EC@iiG}tԩGEENA$n@2FpG @!*`Kr={믫WСìYT*'6YcΝ $C ($]E?ͧ]E ;X.Cf7_E^~fJl"P2@H1sQZZ0@b:~QBE)<5opXyr/<]E ;(jX6G,,D~{K`X,[L>]E ;(j@'|MOG\pr.tR͹_~```y6G}m6ZGIxn6\@*e6SZ0ڱ? ˿\並9j:??bRVVsY6ll+b ׂԎDCU¡mJ% od>]E ;(j|Qn6 ;~|}}E"S yӣb61oC/<-8yӧcx{O0{rOW +m9Tė_o >"c2 {>]E ;(\xTP̜9ۇ}|8}@vP `lQ>))i͛6mZp׬8}@vX`qqqSNiSNo><<<,,W^G qtcqpP͛7T^d$8k >ll=jT"q[*Vca0 3raÆ>yX{UՅGmEbtݺC|򉞉@F*H" IWK >|0***66vƍjjР-j<ym1>N[(J*>h6{-vu޼yk׮}aZ9L?v]"J2n ](\ڲe 'RB:yD 㶐U3B1 d$tjN\+`~*!JCU99'N 5G"#&./?cb`o__]"JSUjF*W/G"aM2|p4fͮ'^D jT"DOW/[ \tpŭT³U>);[*E #$G #$85Eߪ[=JJEO_{)_x177aZDӴם3ƭ+H<}Ȳ!Fn* B=}q =Ww\x>~X!jvQ#t\>榷͹hذ!ssykmhy .@ GyK  \*Ú ;!Gy`DzK~X!H/"|Kok"7 lٲeɒ%g~9|CU:uBD5|X!\x@QQѦM\\PmJ<}^=D ne˖Ar3xpA7~X!\x4//oG1`uTtuaJuG7l0j(www ;wbo k"7ix 4eJ}6$]£<0dH%T"aM?"G£T;7CMp $]芈Ø>ds.J\.UB.~a\'\ET^HrC8Լ,$]FX:uttio k"7-8CQDHJUpjLQ!E IW7K͸^tڜp(F` :zc&.u8 >.A\>¸Ui\}v8.:/Ѻ3:ϸ:l-VBlil999;wg?֪=]pMy8"/X7DJ)444444J⟻Ԑ?j\}.<9bĈ]v͝;_v4b]u)<*MC^q c]E]H|i΅o}PbEp$@]^G'Lжm҃>yiӦVSxeϷ]P!;sXsJPEEzX~APr3> ݷo,XpU(zA>BE"$5r&@ԚWpmzB?-[Ι3'--mopڠ6DW>+bKA%-ZrX,5X,~s>xVb<"|g£vD+l.@/1O$}#?/t^{F~\iƛquY8Ԁ79r.@-΀?)S1vFWG TAt!BD",܄]F-S  3Ƹ:,HS5ѥź 3B0.E_=ʛqu~ޘ2kdt75lǵ]]B 7rs 4D 8?o_zKJ 6 ׂUŕh^4*No,, 0E2؛i/wrzwY 8@AG9.~KR?¡BtA08pU]Æa-L 8ppN]Z2 aWWŋq:Т V~c ^reʕ˖-}rK@FWqzc£'Nhݺ,]~A-B.Ǝc FEE1X`ɚpB1 &أEE!X}gaQsXh/ƌhѢOڣB ׍Pv;{̘1j:335 DA8ӭMϞ=v޽vZ// qhBi-$\s0BxըڵkGGG[{$£bxɒ%K,DHtF*e$BL]! ] D/HQ]4fͮ'^D jC'5(.{0]FP%#E*j^"T!5(.BS "T=5(.C`$.1 f|:;w~ "8}j/^<~x-|.qpݻ(..^|ܹs,DA8(֭[e26$BGm۶ƪ[[xDA88(k׮eeeEFFڮFU,=J \xkԩӠA՘G s0KJ>z‘2(.< `Ŋ\IBA 8`#x#(#5('5(3@`#x#$!F osg>h/Xf-^X6s]: "f>xj`,kh3|w=X(G@`#xĖ;tEQK.e[233/^jxbbb޽r\.ׯ۷mPH$Zh/U-_c 333**ʪST HMM֭ې!C4N_~+MU֬Y4 ;ʋ/?vXL֤I~25rǏsrrΝ_o>;;]6l+ddd{nz-ww:=z^dӦMcN<ٺukWW׈Ǐnaaaz*ꭷUւ }[j{nϞ=,Xx v~eh5kVTTdCs`{͟?ݺubϞ=+VXxcbbo ...::իqqq#F7n\^^1͆ 6jhرN*))DWޝ;w{~!;;;((we\[N{ԩS-[222222ƍӡCǛݣ߼y3%%ƍ~ݻw$&&:tHwk׮*ٳg }IX|k=$T;lqر(ӧ;v8k,;v8sLnH$sΥ>\Rܾ}G5R+Wm۶jժqu?>>w8==]v<ںuke"h͚5RTw]\>k,HaݖÇmP=(ZlY^3FZدk6RgϞ={lJ?O0㙙5bm|||?JQ4#GhGfd uu̘1cƌQ(cƌY|Aׯ~~~b:ϩ αCBŮnxo޼v_|_fϳw~w޺uzT>|8;2r_|1>>OY[\\l"JYԩ3a„G:uiӦڸىG?Ν;ׯ_?6nhL3MmC`sK'ָq̙ϛ7o֬Y'OnҤI۶m{o?G۳gϺu<==ҥK+VHKKwپ}:t޽.]*,,7oހL;6dȐ+˗O>]7ݻӘvflloP(\]]quu5-bn+J N ]̘)뮏XxqL[:˗/U"t;v 0 ==a;wjՊ]`E͚5{0lڴD"ի׽{tH;#5jyParss_yOO7xĠȭ[բte (,,4!0?s 6jW-5m3b)뮇Oo!3.Cf7_E^~fJlcJ ]}-( >3G]`f䢟6zPA^"x#$!V 7`e4[+J A7[n,k˫rF  0GH> >> stream xwX,ҖtA@i5-Qc$o13b1h1""cA$yݬ̺~{Μ{{/_P~@644 6h")S?/H?:h")ڛjJzH3vQ6ꓼk!Â䥈Fꂻv[~8Ww hJ^yF=,H^h.&v*a?&P*TYaA u݇7 [&rgn(zWRJ:qF=,G[ÿ9?9U.&vDpf3c;r*kmm.Xjl98p!l y~\V_OxL@;m.\>s+o[6ՎY|@^'vlxVw{J"=EH$AFAH$l3(n.I7lfU,(1#Í)f!$-6 1Y-L2Y^pvpATpzs<\yB$sD ;fD`Y -EGp w/҂ԗ}Xx1P?c&}ӁGסl/gQmwt '9' KgmT}g2x'c}9E T (Ї.ܜId0R3m$6aτh `WcC6Ԗ9ώwSY_&XR~u;be{/X=d/Tom6m(gSmfcC=`Qg18&dY;WaLV\ Ez;>+?gyw9Wm"# mFo<^0#-SV fRײvشQ?mk(?UW X}9mgɨCh&$@h,6KCЧXd)%7aur3$P![Y>>^STr< sNa 8O̵o `Ƣ7"$-|[o[# 0 #B3B >fN򉑛, H@.\vӧP@KS! z(-Lj}f  %ٺM˖ Vj5P$<# YKؙMx2Pc:"w^\ )NB~7bNaMhkބ1Hf`HG[D[$;h" z:!((E#-vR(}eA}Ny,_Tr_>`;VOo ޟwU)gaMR\-g0#n0x[SV?NȪZl&[ fl ;sBFu(hT:8GCgD|r3"?gy"wP탨{dw#BЍ"OݝTz {$ 9BAhEYOt M^qta$Da}zNqVyfMś$O=1\"ޞE(u>{^}GWE #F]⮴0 ƤQc_||Hoto. (1uR-}f .W͘=_N #!]A\9g2*Mv@+k|l>modR;IԹ[~m{,Z8%u>`'svD8JK,{sޛuwH$mk1B-q jΞ$$ix_/JC >܋RPՋkǠlrmѪc0u,-2 Ŋs[En6MiVw=#"0BE?!>p\xVJ e CxwO~dC-,3gm`Q;XwMvKg#5@hbl?EEZD}"8 ZėcwU+x !}M07퀗u9nY| }@m胨j#;^@Âle@ꂻ#Cj]z=$-2@ mAPդcPWSҎB-LfrAHaARD u1jc`,ْBL7$/E4P} πx``e >Ue!z?[۷UN?,Gㄯ]O@ Rc؅*0v!MN5ţ[PP)WWWeS0\;5]a)XNR[߅*0v!zDyEQ(Zrܨy"sLZrP+/ =r!Q wDN9!#`yEQѯ&)(G\~A>͘0-WWWW7Wi|0Ţq. Pob;7ׯ_Lell}vl{yyɓutttzdddKK ??{(''*GGGd9utt-Zd2? HyyRri prAAA .++h9E"EaƍIII[l)** {͛WXqԩsv/SRR={xxxXXX$%%q[JNNްaCJJ.޹s cX~CzzW^-5 fbb" eeerʉF,00000pȑϟ?/--X[[YѣGǏ >|r׮] X3fLHHHii֭[uuuڰaaa"JWZE __ߐ B\ppqも㏦&ℸIMMuuu={ڵmjjXYYffɓ'UQ[[㪪*#""ǎ5c Y!Gƾi uٲed2yРA ipaܸqǎ[nZ OBhw̙-L4i̘1ܟHo=-Ffіcbb?x!ɓ_zܬl!33F%*ofժUӧOёӚ胙4~ٳg 0@N9aHر#++ƍϛL322jLLLVV޽{DU QU***r.E?xGkzr<ݜ¦]8iTThmr1/HFyB9ys##}p4>z ɬ6\gJ2 )XN(m$J۱cǶnݺv?H4 \>S)RN™|xT 566߿/Ɏ#GBD>Kرc'O D3gsNllW7olnn>ydfffjjdw@677'O?4sL===El66M*kx '@N*XNL;Dyyy:thsshrq#&v9 Br1|I= @H)|>!Si9S,Bc?xZb6_kx!KzbS9"صsh Z#RD|TPP{-nF|>Ui9S,ߕkx J' Pi_Q!9&@r$L;zgϞ-bttth4F'ZpQ;;;TE;ZcWB\I?ŋ}=|0##/ Z_[[sέ_8!ɓ|///h <޽{D]pat:}Ĉؔ ښ8"~X,VTTT||<D +**>c\"*++]\\XbWĮ$o)@Ν;qI- nnnܙ .y S9hVAs?B UJ!(G0W @9R BTG޹R[Nr+f6 {lhaaqm9 #Y(ݠrR!QbR'(ׯ_S(8!]t)vqq_rh8ΕRYY8zh3eyɈܳ A9e@|7@\)b`'9rwÆ XC#C)9PDs 0`nnn]]]X%ןh;zqs\)GN ̕s(BJ+Eiq]+EId8R۷g͚ 9*))INNf2FFF}?~…ik׮yxxprr@Q%.]Z|9)))AAADOCȭX>44411%?6mŲ=qĮ]-GΟ?!333'' &̞-f~Dgl߾]aZ'NPL>uÇ~4݅MDY}&rhP Q3`BT+Xq\)J* QUzgQo9Qt'mmmaˉzgQo9πJEΝ;{CBB꫾>\B4񱛛C\.]4lذo߾ǸEL+׷髯Z`%Z޽{YYY/_^~=r#F1Br|Ammm]]]FF_|s`5믿f͚ERMGonRRRxx˗._J7Ç_roF}M@?r rnnnѡO\DDDYY?Gm-ǃɓ'WFh]]]]]]qK+HYYCyyÀjjjl6KOOP dffVTT<|,--ĄPEn=z4dkDT={fggg=rJJիWGq5Eg><|kJ<39;;9R__r/^4h^rǏ[XXl==}jJ*DfǏ(&A拁}AD[N gPl"-Ǐ5.DUR̕B8P `UE=w6EJYdINNg5))iܸqrATHX ˱>ׯ_x LnnnҥKlzcǎtvvmذR~DѹR0~&0Q ֤Fل2 >v%̕p"B+VJ5͎D⦫Q9}F޻w~ĉ[ETО!'D5A\){ 8kK4&W &$ 2kkkA4EJڵ /SM>*0v! ]cyR J1 QU`BTU3euм[*Rc52ߙ( >Gg[wF=ZJ3Q$rx}玀r.DU QUT&v_Ιxɓ'Ȗ@~~>…SUU#FarssV/('3*ݸq#N>e˖p;;͛7gffb;嗣G_n]||={***v-png('*#G|y~~~iiinnz͚5=v?~|hh(Õx w& @99QmjjZV++d}}}άP'O^fM^^ިQ jb1#NNes̱4iҘ1cx>~8s.ZhNNNkֈH™(n(';nܸ [{{?}pwwVcbbN'X~F2C9aX캻O8KKK >hРYfرcӦM֭ : WW׉'.Y K;Iwy^rell,J3gN||<>4B<_iQŋ<8;h4&ԩSpB̨XsZ`#^ jα$ ,DCLfX٬N##};h$g*7Qc#eiٯe(*/漢ZZj?VPN~eZZ$4rCaaG:8Xw>^1|3Q@9]ÖGZ]cb%!vtt_^;Ҳիz==&FsOSYUyUva? T}:~t7ۂ?4c.U5ѥrC}?FFCضt䦦 8𔕫KDM$2000&}hѥrqSWejjh`tuuw3;j~RRy+?5ҕj@-X k xL @42ҥ[4GG뎎&ŋf@JsKDQT ݒ2/ǖ=>(7v=t_ͺwYEEMqqyUk P=߶滛_]Ir^Jѡ0߼]0dW-Wh:::-b2ǏG\x5_2xy% ^j?#ԴpBGGGooW!!9{FO^vIs}dV{meWb VKvR2BB\#]|`DEE%''oذ!%%l߳gOJJEJJJRӧO۷jÆ z%lDN믿?jԨ(ѣ?ݷ~Kgc:֦xVTrbں= "u<]B,+`>ļ`EJOΧK{67Ʃ:0f̘ҭ[궵a۱Mx۷o5*44TKKkʕ OxPj__PCCjCn… DHz̫M 6webGXޑ:} P,-`hmha}uՐ 0e)} bEIvg-xyy͘1}FSSؿUnTkD7_5p5:>`B<<<ӦM{jÂþzAy;ɸ"'NsO̭ʯ6_? iܟz|'TPP,UY^+Q޷o+P_9?7tww.'5C?gk]Oqd 0zI=Iʚ:{v;%X,΁_r% @‚&&&%%%033䙓q/?Ν;'O #N?DQ4<<<,,,55VX++@M]vuiCX2FA-$binn}ܹs%/ᑚzɴÇ ;%ܙ3g"""******BBB{EJJ --PDh{weQ|vf e̮zAJ:uիϜ9#aS޾};::ښ*17n8OOOaܧ~ZTTqS(;+hO2p ...HΪjd2y׮] Nwd cǎ*Xˊʊ ~@x9vw1o.LAcw#GARȀ-B4j9K`. w~5߅*0v! ]j/J^z}{Q:| !SkW5DH;{Zc}Q" w]c؅*nZZ lVVV˖ x.&&R*?,--{<ĝ'N/2ǽES|777lYˀݻEPWW+mrrr FCCCBB dv"[n}^H챫wqVlƍ X,6G}:w\foo9 LMMg̘\XXc??:paÆikkz d2-[ohhyf ɮO<<{{FFFVVV.],YdXh4---!!!T*:ݾ}<)`5h oool_֞4iRMM0dk.333ccci/\ؽ{7JcC%^|aéEGG=v꫄,tNڵkWLLL\\RSS{nnn3͛',){)63--f޼yhll5jǃ***߿?<{eee999755mjjZv-[ؙ͜9ۙs644L:u֬Y,Kϗ/_zō7>ĉ ֟~0d9;;{׮].\(..u3ׯ_ܾ}[[[޽{w &S 1;n``Wll,zgg稨+Vxzz`iSd]]]=}_~ӧ-t77Hl><===88x„ }]~~>6Bgg'6OQIIǚǏGft:!щ"H'Nlmm嵴~ۛ+:# TzzY|}} vܙ%|NMM]jՇ~د_m۶Hch~~~DD͛7l^^^AAANJHH000Gqʔ)׮]鉋[j K,ijjFQ{N}}}mmDsw;w羾<ݹs'%%-&&|zzzŕ---؄&8ϞS>}ƍ7n0a:J3:W__e?z'v=wҥqI(Ø)7|P84=q,@S} ܿ<=z4tPٳgdOqq1 cҤIT*`]]]LLLܒtzrrrQQ 2#G\|9)))Ǐ'nnnOv -$''[YYQ &TWW8 qqq&&&8p 7E˗;VD^^+O-8Ο?/pk%8۴ȄB߈Z)r$>ll%y+&&&88};0jΞI=G#{tvv>zdx q…ܹSo%1sL UE]C (EJ2 D R#D @U.DU QU`BTU.DU QU`BTMنGGl9da@ JΛ-˻~@AQu D: ?ѱ/ endstream endobj 1185 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [112.906 381.513 119.629 392.605] /A << /S /GoTo /D (Hfootnote.21) >> >> endobj 1189 0 obj << /D [1187 0 R /XYZ 80.963 747.976 null] >> endobj 358 0 obj << /D [1187 0 R /XYZ 81.963 712.73 null] >> endobj 1190 0 obj << /D [1187 0 R /XYZ 81.963 679.583 null] >> endobj 362 0 obj << /D [1187 0 R /XYZ 81.963 486.661 null] >> endobj 1191 0 obj << /D [1187 0 R /XYZ 271.253 449.657 null] >> endobj 1192 0 obj << /D [1187 0 R /XYZ 99.891 146.852 null] >> endobj 1186 0 obj << /Font << /F25 474 0 R /F39 618 0 R /F44 651 0 R /F43 652 0 R /F48 922 0 R /F57 1180 0 R /F36 596 0 R /F45 668 0 R >> /XObject << /Im69 1183 0 R /Im70 1184 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj 1201 0 obj << /Length 1749 /Filter /FlateDecode >> stream xڭWIwF WHg2ͱ8SiI8BIu} )ʡz!| :٫J,up 6$HM"lE)L|LI0G\\~tEe2P0F0>d6xX+]7?frl %K)4f F+)Ûrs_90I}^ V$4QR(agRD5i&ƈT4rrIUp^{{5^bEQ, :w 'M5f_"XfFLhcƠ{` LftJ#hi|I+~qvӰo=/U@K`uv`Gm`<2"eJnٱ 'eO̼pq MX7n[@Zf&7mr,!s+7Sy*-Aw?*$?Xװl]^1s7#ڔUHG6*|[4Cֹ٘bm Y1Nc0ۚ|̀2FYMKCw#~Iɋuu7µSY뙿뿟ZV}ύij앹QaUAe*2cJ<Jl[nX3r*Ys8E xnF~~qcs[0SaR8b*l]t۵_t*_Vu%PC^0Yj>o &Lᓿpnt<$sB (ؒa' JȔEzkfHx?z0  .2[cy~,e|a9n뚼=Ѵ[?ht9!`Fܨƭ4/ۮ-9 U^\v0DᤊX]BR&c-&ࡻ\raD :ئ|W̖ ,7y=9)C0) ip%GTDT4A4>|y."8sWzẎv]Kun)ԫ @d]hâ)p#xXP4r5W;fmw5^iLs0g\U`1LpuTMȗv5MIyn=r`_8U 1*˨,Ǻ9޷ dp}Y7\z?Wvk$‹cL:7lplf742k$-3U4+4'^v?EL\SL%ZOy8T߷ʉfvǀN3a:yI#!@F^o佚HD#A@'=X5gG;y3Z}öQY"Ge=Ma"6 R/_̯26"0Vi OcHd[[f /5hN$4?l<wO೮^@QC5"cpпO endstream endobj 1200 0 obj << /Type /Page /Contents 1201 0 R /Resources 1199 0 R /MediaBox [0 0 595.276 841.89] /Parent 1168 0 R /Group 688 0 R >> endobj 1193 0 obj << /Type /XObject /Subtype /Image /Width 273 /Height 156 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Length 8607 /Filter/FlateDecode /DecodeParms<> >> stream xyXևO> ""\!AAET(E%hܒh܂Ch4Q*AFqA>@aYez}.~}NWuMU5"cf1Hvf@`ik{0s'0fvvfgԬ)mhk{0s'yI egB.͗Ԕ maXC~9mP3̍SSW^H- .߂~*~8ϦS@?U{6<\zQ>F9< Zʺڊ'gN VDZ ]_Y;edGB^1Е B Agӆ}A_ELL8QeӍ@U#e@A]jxޖAZh_ fa¶c5o^-(Z e|.5R űqɁeWIjym꤯~$iе#҆v}#|tn'iSسm+:Z'tQ B@*\`N3t!w>j!u2|8 eoa2h?LYHMl_2P+m3^$RDR&oJ|>qo|?R*tto+. WaW@dH9Wz11э,?JƑn eM52Q2Rv ~<Rȥ73>\hoœ)Qv:fc@P >:+VpjjBwBͿ4kc\[G':( f9.,af#Yjibи}5DIߟ v&=-H$/ZB\asӅ}}`TF} (T7Yf |dmČȘꇢui#`sqGP(@ޡc[#5r> $u"BG Xl_V)HMm BMxoV Nc}}]:4ߨgzEpXHJptQ%4*9ْ;`([,p9yb%*s бeRXFun2ԔiuѠjT}BlAԈ*nR#.ZٳY hQ!XbT\5ҽ߄oAh)ӗKAWS5?,g[ `4C%A|f`<4^GGIYPMki3'w`Y6SvEWP'ڱk2@ y(=\W]Q<ΞÒs͓MOM~8YJu$ye';؁]u2 D{wnUyi&e;i_I^]s<iRBI`QWw B׌z{/"p_#| 4ϫvM^s󠙦>yc̊Kʢ@}\~MllgsxN^GORNوgw!@*@,V~ K5A&F@PsröeIeRMc< Jڜ&5 V^Cb*&&1k {P+cc 9V,fm]5ol*qIY˧DiEk2ɝ>^#&13KzhD jϷoҝY*Rc%=l~v}}uR:kd"hrVaSYل eӹk@ȦOTk@( :y4T V\!B2c6<#1[_BKOb tUѺUԥyq2˷M_zk}vHTCڽ{4/HG:ZJG4 6l$G$˹2[SHT\9)nD;DOޭ:ZƓ8^ɓi( ĪUKuJ`+T@Mϟ[*. ylhPt&y[! +/'8O_uAY }+UY,m xQ#p}o]yh cjN[Ou6oͥh@}uP*ZJrO J@e2K}@5~DNb@Y4ъ,SqH)̈́ $%n] mPrWAKiv+W}ԉfYt'6}.6|J 7ЊE@,y "! '4J0BKSŦLJ.Tj*gY԰@UIUl!f?4m3zeIgNjH+>Z0 JgV@u >hTre*y^fCQLM(ISC؄tP*[P\fa9m;(xB벒.\:v2I#!VPbyhr @D,*|tPBqVB+{@}(O^1<4 6# X;Rl sCS\=S[V`*] =a]lPmY1macumVv!4ʦKSa0/}Q;=]e\qD 1 C"sC`0f 1 ڠ|C߄'aX JP3Z ƂXЄmUWmm`Z3@W/SO]n 1{wKo8Qܐ2iX=UJ#$`0/;|! pC:]Rt߿ߖ+;>|$jᥥO<9rȗ_~PM&|G999ǏgWZZZVVvرyݿOit=F 䓔69 Xܘy Νbmm)@"driai9tМZz+ m6c 1޸q#$$D}د_QF1P{Q3wޥߔc`zz:!CNNNO8ig<`"w%ѣG}]Ʀ=֭[^ZΟ?>lhhОo'Oee%r2QaQE 7#/L$„v?~<,,Ǐ=sNfffUU+**n߾D$:::;;{޽ATUU\rݻ[n}M%h=ƍ?RH$fjk13!66~݂{= l-믺б,~4Q)))>ߩSGR'''__߅ vЁ@ 8z:>|0''kZnz`Lɉ3OP(8q;wիW~h>#^؀&'L_7ss ƾe\8`/M9`+8p@&((H&1WtfBayNNN&4eOOO 4Ӽ#K,aFs~H2>L| $;K|f=%s؇L`^yc|-8 %8 x\vNbI֒gLiiӍ^S$qRSq>>KqA"G&6t3-o3Aq۴d.#?fgɠQ U,Xar03gb>/?s 8jV)7ey!0 6 eڻ CbNs13qzF(uWN A}F͊'UյeǼaҶ8Z  8`0Ɓ}13q`` cg0hq1Tݱ l e4qm9,#cRczx?e‚ߏ?}Ă-49m?FV,/K>e,M"H> 8 Lff&j^GBԩSkjjիH"///@GwSPT.Z;<<̯͛ bփY`Abb.]zDyʕŋ'\N?߳gϺurss7mڴf͚={;99ٳ'11Q)߿n:WW3*,[>^z?~W^;{,a779sܺuz bAS ҄m6qD}Nb)S8;;{zzΙcDϷt: _9Ă-$$$iii/=vۗ<\lYzzڵko߾M{䧗D"r,[ Hj۷# f`ܸqݻw뭷/"**l@``#MEEE4ᅮwkgg/&y͔W` ib8 SN͘1c<oĉ6mҊ#\.\t)..ͭt bĐτl#v֍б&AAA@a0Yjf l=8 8`0Ɓ}13ql}`A,ڂs.H q0_uAњ3?S m3 8`0agnܸ/ L"vލz͹thgϞ3fIgΜ٣GAedd0zwx9$;wؼy3s)J\6oxQjӦM5@]Ν_fM}}-[ V^9Xȉ6lؿOn O?_5_Z,xСgg1cՕ2ڼysϞ=7nܨ+;4n8DBO0AP1k׮1@YFFFuuuii[&M NIIINNNMMay48PPPPeiiDÇ{T[[.]00!!A,{P'NXxC 8СCə666]ve(׮]С3V>Cv\xYf8p$'֤&v?@.gh ~wY`M\.C Nr GSp޼y_|E׮]n¨+W,_aƍƶuo[ HC>ӻwSN:ur?-#ZgbڵkM%e˖-[J lllviBA5ׯ_7㯿j)6oBq`` cg0h3?S `W]2zm3K^Ca 8`0іfY `4=E-}f= F9}dômmvE3Y0Yy`0/g00gRSSBUv\]]?ʖ-[VXXh13zfՕ"-_ bϰN}R,X`oookk;w\RI8hРI& nݺ9bAuLct_… .]:w\p߾}Vڰaϟ9sf@@@JJJ޽Ϟ=q+W={'O...6 `DDD/_<<}t@@BIIIscd2D;`ZxPBBBhh{4(#Fl۶Ȯ]nٲڤc0m>3f̳Y~~~UW^zju4 r?55Dvb0 8`0Ɓ}1@%iҟm3>>=Eg Ƭ0 % cm3 cg>cͯ0 F6}r F'O}&?뷶yY@Ank30 endstream endobj 1194 0 obj << /Type /XObject /Subtype /Image /Width 641 /Height 201 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 1205 0 R /Length 18873 /Filter /FlateDecode >> stream xXǍXMIRnLDso1 (`$5Qb$;ҋ,^sw,˲,,>sswfvg^Ę.~| ]1000000'3 0000000'D6I׻fSx RCYc$PtWGK|'<4؅ղ, Nz aY C5Ӳ^Q/[E^xNSgu[xnb````vC#ja< ]Y C5Ӳn'peqgMJ aY C5Ӳׂ%0 Ut0;XU#z.z%ϲb&?}:c98furfQJUn~ϩ5 [*c`m%ҪOWL-(8^5b!н9b @e XAbٞ=?VU-u-mu Mq酆R:RI[[cxY5NqN} = +[V?H_K7۪cJ$}W?VRշiի᭑q8"m9KsjxGk4tDuy^o[~skiYE׾[X6j zȍf4Vl2֩znE|撽b}%o +W^ᄮ^VSn<FN! iYy܋sK9F]./mstKY>gUpгU]f5EzTK^JԜS_c:Z~ Oh +Y*TwZcZ'-Vh#&qi_n]!_J@Mj{EB^j{briƯeLj*{ 3[rHMS$ ;"x5 8LP/Ep?).֫{b07N~1"/KH^Q_IF7[%ݎ%q;ѻVT5rτR= [!|+lu 3*(/Ή eEui;ޮ.OpIR2ƣO-(?wyP( ni f^yg2v}s *(`11~ua^$,sʻXVY]:$ +BZ#(2S_"R[Sm+V)-mť'9)Xh5?_gM7ugjSAj'^Z[.au񢦰rG~T箊uc>GEVԵV>hc{}jۛ[Z]R$,(/S/fcҦGnJ>G mM i[:?uȹ/j%%VCv{1w7쎎g'쐐xfםw~h$ JJop"ܩm O#!5)I]vpM. ;EV! \[]\W`:ƨP%}}_sXJ wDS . /|jA+WL(ճ!pµH UV<j"nkdP$/"nO=n).8 7sM{}MyvG9Gũwb8ƭr\ ۍS"Cgw˾Qژs) SecJ,+cVjsDl>+8;T>Q&~PXXh >f6U}KJ0y?x>WYS#HuHd`/& $mܺ +ȳu-O7pj5i(wp VQ|'?)4<'))1F˵,p3p ?_^USpY~Һ[5v?4内KY[STY_C3ǘ/R>upR~҃Hܴ} SNKuoiojn755*8hw dt7rNpDoWwPm}S㒪?COX%;p=Ă) ΋ozSⲚǗY+مƛ0/F SՐ݀hwA)ӭkp"j@Uť`Kv6whʖ=k昳-;'τۥYlEW*a82ܫtN_W1jо^,"S !z-z+|-)/}A{\3Tϲ2JLUGN1SXl㸆ƪ~H=uvdpf沟4zƚw{ `=D R/g8!vR~\[z5h}]b.9?]8j%r+T-`{IW$E1%u-%\ek\3b6ۥr//u VU*y*K6/זe$PВoO\cUmGa9uk >$'v[AI:w8: 5cwVՀR/Rl3%n!5̽ةںMzh^נN_٧v+{$hPaC Z/h+ kmKviv\%WCv}*z߿Wµ"FGSj<ۊS܇ǝ2O aK3NA;WB,-B.c}>#bSoIE]nfWU;};RWt/f{0Fq=˿^!y)}l[tV|N4;6fBR/# }oK0e39& גږIB+ܼ7g.m[ENK[mCsMCKUc[k{;WHA ^9$uw̻^ٜc iKf'5=N,\)N=Cv9&\[[Pe:KepïFWUהdfFwnǤUR5YjĆ&Dcfa2~[>W[[x3ؒCZIDZIɍhlo~td.8PBsW@3f13ܘaQ\v!8hc&&7G%F1a?qtV8tU!dQsen%+e5VYkKc[nܼRqaUU9G}^$78b J&%*ӵ(Nn '@99MeUe,!;%j9d-8_9eF087o/ }9&]+5؅G{lsijÛ/R%鶔4)h޼k].hӂZSJS/F0#ܓxӣSM\G{@MKRa,lYۗ$%@ͷ/g=oN7fImzs跎Yߥ5Ugc'u.vn :ɉ꘶~n엕΅׋[Kr~R?sY=ڃIYۮ'q0 X;F~ ]K`ޢ۱$.}z~\JI)+=^[bH{{[S ?K%˙~ 晳v0]s u̖1u3ڄ~Q1=0'rcZNX*ҁ[n.wֻSʯ)8kwI^kݳm渼'o'CX 3D).[۪kB={kOISm%w#a6,y$[[2:clw0OlZ*u )@ΪUm-0&ogF .@ XXd8ܽx9<:Håԫ1~Lnn76:zb+w/mn76Gb4kQYoinv 5v'ZۖԬ- u| IXI<;kyF횺Ǧo4D?/4WknaoaķN+y6нC  ^KOhN~lHn?^.i+;^ ᣶7&ֻ0FYX#;F~+}z=/)ObH#Z@tſ[߀RCXGu~x|f ?Ȏ[_L)̀#wSJf;r'3m5CF\uFJHor>cw@䔫& FSܐ9aYHgG!vN1+KVqß8!HSv>v3mSncŚssB9FA隰".o#3F!'܂-p>ϊUсܰ#ÜCɛ9j]4wsB~2dJUlπ섯Y!t^锫ᔵ5s "hvH~\H|9N.#Wە7o97'G# Y_{VCֹ9kqsxGaq͕Jr׳br-P0{V^1vՐy61262pxvؿ9Q{X]͟Î8 oGك섯N1sx:AN+ AOֈ2nύ0DjN{a?pBP}y/[!Yj`悈0bf/auvC0#Cm zRCXGdN0D}ώ6aGuD3cbkY٫0btY\^!3s++f*`>;΄eYLmVnN qiXcN>V ';V+cSRchws21;X8[2]dfmff3 qz^[==v;ڐѭy)hcv=EY?;S;F78,.#ۻV(m_Xqc'} ԔѹXzh͵@dбO hV MgYSg ־$2@_5+ỎnVIFf'Y6Ok MJoDWʂ@I[!y/ZQw vR1uvC0-kˮFYN,K.CXCJ@pVJKGk/xGseg|FS}笀x5vhIoYY+Ga`C5Ӳ^QPqKA2!<ʲRCp%t';K #-sRYtGQ G9-윕؝00荡Xo700z\]NvfJo$qsV\9t}n.nFv:% E:+`OP( B)R( B!Q( BJAP(j(( B >}`}Ao'UIrZj%FP("X2!jcu 'qLL0VUUݺukSS}ݻwo߾-h?|!KrL &h&h&h"ߺ/IJDNN#Jb611=z(LÄ, wY G됋 "MMMFkbMDA ʄ3F 666eee4Bzzz\e`4A4A4y5)YE2E$1OD>v ;w vϟk( z7ꐲ5$c MW--- ?ZJ}ÃuuuvI ΝP^^] zxE݄3e9hMcEZv6g5,&rw9EFP?͑ǎ,b( /+#XxёBCnnn\!800D0"F#GȉhBۓ%W`###++ӧO7̙3ҁ/`D0"F#;;E_*8nׂUTT6nXWW'{BBP(ȸ<#yZAK?  `;cF#&`D0"""i@P( ,XCZa~BO/r&r߯Nޯ>{gҰ4w6Z;le78T#F#`DhBpO5jnn644:uҢE`1Yӗ9990]YY(3f>}F#Q`Yjtڵgyhkk;̙3GD%Q3`ssskkM6^ FP(h,S:4eʔ=qDccc%QP2k,]]f =.; 'EK%/i' A;38gb'C[|~Fg}vҤIG,t_O_E"Zh"F#<TRRbgggdd4{ &@* 2<}I={HDŋ`D0"F666Nau@ji8KB3 %FP(jD\ &2<… Ç+ǎGzv*--"7o҂i`?-;Ghߓ#( =>mBOsL.>=vKS?}t o R$D0u!X`J_~ED0"F#GGөD0"F#C{6BPa~-r,f>l5|`ؑ%ťC挦F#`D0"F#`D0"?VSII( Bk}9aܿ&h&h& &h&h&`D0 a( B kF_s c(p$?h@SNBn=`D0"F#Apdx<^@@-LT'"F# |ݻwo߾-LRRҲe˔Onaa*;{YzImVUU3`sΝ;%K\\\`ĉT9s` BkBV޻wX,\v3g<}ɓW'צMT533?~"&`4At悃tuuvI9Ov)؊7nP7?׭[.Dpttx-BP#Z0~~~nnn\4.΂[---)Sx˗m\\cn޼xƍSUU,XCZa~BO/r(xBW3|~2 mg{vϟYb,9V' V\[R\8$~ohBp)[C?&o9%!XS$˓([ZZv![[[S>w_`D0"XGr>!$AC|& "1$ «qG4"F##:a! =Y"ELzyJQO$ FFFVVVO9sP( 5BwwTp|JDIR`7ў}(]vkPct@mç*nIC6~}fWIU\.*%l2eeӧ[XX@dlI//>`K677N:UIIiѢE<fljeep1Xŋy߼<9FPO!MMMΝ;7vX333YQSS3w\u)Cq@D֛6mi???*)J4"x˖-P &|x[[[;{3ga|tIYZ?"x-y5)ϙ3'sssaEMMMEEEх bbb`_k#Q(S`j믿 /mۤ L|) A0`[ZZf͚+_%%V.766N\pje؂za~Vֆt]uiA:KC^&ڇȡ)d $~ Y=a˜HZUd$2 Ȼ|.GR'e b)Է̚%.:2g|y ,5hjgYDw.ywU pg*sÞɋDp:_8#zitc d4d /I#XYt#| .YzDÈJ ---}||~7r}K,e"; i2'[IUP1h |0ֆ733S>ׯy"g B6mϽU >=)m_xi6yJxKH3"Fl &u1W>,RŤxC-̄L^#aD ő8 P Gŝ̙9dFC| V&O1"A:D9\ٜ!G=pGhr\>͙'>O>Pɏ*DŕҸ;A^3 xY'Dp2Iۿĉs=o%7c}Ư+m ʲD$Z0$zzz*** , )M>_~!]?Jo%%Vݻwԩ}WP P D(СC-(ؒ |`?J o6۱z֐?Y0]qlQ#ؒX~#4pm)u:~Z=",jHI91 9,|J\7 DÇlIvua;'$eI4́i*Iy Y"z߻8[{0Cb"Z4"B>ݛvZpV׾rjx^, =w]Z DLJ% _װԺ ct8@n$ZZi&/4 a9p?W%WMdO9GIf{HG$:'D.hS lA, b*Jck0:I-˙F9QB,%Kȡ5}9v=Ĉjoޫ.~Ÿ}$ r#rXID;~4w~lYyU*K!!\-_(fҼN| 3S'u!R+iv $Lǩ珒`*O'#L/)qs\/Es )p؃}>8kbp*yՇ G$ Xa=BT`F(7g?c5|'b=g9c>7rXIDDeTM{c[HF0 Zz6T[n>wXhoo7?cb7nwY!8`w, E6]م;t mioݷ pAp`%` E36kLҝͭmXj}Xك3c%Gk(iVfzH (nuFP( 5$NBP(쵿ٺ7ly B!eA (77.v(tFgtZg 5,˝i,D7:3:3 ]¯T63:P9P(D0:3:V'%%-[zğ?瞛mdd0a"X>rʔ)4A999WVUU4iҶm۪z;Ȝ?qIG{ァed9gee}7***sssCgtΊ *ߧ^ aL&SCCY0;Swww!x˗/CAHaBćϢP E9t5ktrr2(kӦM"aǽdۏ>TaR*#ߗ.]`tFh mmkg}}ĉbUW᲎_ Px;"`MS9'î{"2V̂1 V>:3:+YF+?`D0ގ #ZTFi{#`tFgtL'D0"FgtF!A0 cTUUndeeosrrϟ/z6nܸ |󍊊ʼyhXJ?L!55usνujjjfccCck߿ĉ/˗isvv6>3gΤ}=z4:GGG?QRR3gϴG_ KzW,0 Y0`[[[j !]\\>#a޾7?F}ҥ ,wȊzwi,--Ǐu^fͤIrvrr:!-- &d2g@333rxPUW\w&%%͚5 @/ g|,YcD gڿ`D0"xp iZYY 0pab [رc!`Ŋ0Gz3dıch*4&_W R ;NJ/ΰn޼}Cq "Ѡ?]x ޽{$9EDD]Vʐ%P;wbf~~Q||ݻŹBBQSwv, ]ƻ~9;[Լ{"ܽ]o40utYp~1$$BYApfz]GC]d>q⺋}_Pa!wYb~~j, `Dc`` ~/p qo^x-?c~ߒS*mTjOH8' #`ZP>,&Idީ1n l4O0''`D0"B˘)΍_V9^3ۙ/9N9R ;j B0 UǕ3ڣ_i*W&ܶxςC_+-?t,Baܛ"ܮ?n?JUQ`e'NΙ3G__&rrrV^:iҤm۶UUUqEDDJD0 YpOpLm~E☪~û`e'O.//"kӦM4?pL-lggG͜9&)u Ba,Q[^u>X#/9`D0"vt!mmmae.]o㩷 ,<ԁ``qYz`ɂ(Ϟ= n~~>`cc' 8܇en޼B=]f֘,8::z_ɁenܸO8ס0D0 F##8&&7NUUUx": Z6..7{xxH "B#`) 64 ~3f8y򤹹WZ%,&&&V]*..FP`D0"/'$$<3ԏ555UTT&NK(7*00B!QY( B!("B#Q("BP(Dpj``0~ % ߴiʫIgii/M㶟?^ϊ6A Bs̡Pɓ'Ϙ1ɉ5kֈFP`)SVVf2]%%%~!t钪*/Ɓ{ZXXͣ555sh҅'RZri|Pի{ ޽{T%uuuyyy` "}}0p`L~رc{?t 6/8gddЂ!pkoo{i.MMM_|E |뭷{wѣ4z7c``&^~ڵka{644m޼F )S*2\hl-nш[nM6 i><9 |!"Q(J )))]reҥ .љ^_v {R[[[;pO )SX[[Xbԩ=.yRך{~wZkjj⋴ԓ`^zuӦM4_z%{)"BJAv`a`mmm2''gk֬QVV~Wi %@ GJZ[[ sk/_BP( 5:FP( BP(S` =1!`31Ơ3E endstream endobj 1205 0 obj << /Type /XObject /Subtype /Image /Width 641 /Height 201 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 1521 /Filter /FlateDecode >> stream x}hUG#1:J$ aV2Xئ"26R Ep8tf t**)f1aUeոhsxyy}{ϽG%B@!&Ƚ`A2 0P%)vG2!>9'ZÕ@h Sƀ|_^A&u]k1`i YYYQR^T!c6R3bo.R'W\N__}L4!`¬ 6~ػw? '7l^}ltuv}6VrωW㭷.'/D;?I]Qy#:'ޫ#F$%;wŋ{?>\һ---繹jժ8|RΝ;GԱ]6RWW'N3f$׬Y555I.\ NR<%fjg}6է^g"hK'jhNπ$^|$Vƪ9Wc”'cDOy*oT|6ft;*ɓc۶mgϞmK.8sLܼy3v-cioo%KѣG틭[&AI2+VÇǩS6v7oNHm߸qc455Efffjdy[> f;*^Wjl99u1&{=[5GkVfd9m碫{QW\gO:ՓOt7_ƨpuZݴiS:tw}ɀ_VV׮] KqqR6I>A)**D9SNs~s6mZ 6DCCC̟??**hGUUU$ HiiiR/e3(566 pyQ{OxKO/{:vuo>K뢦VןƼţ"Z#oĈ[L^Go"2q{^322Oիҟc|fٲeIH~[IIIR6nܸ8~x9ydL<,ۙ OߎG#Z;#NGWlѭM.HDg??y矕כG{s\]2xkW~73[Ss]]x\tD7|eОȼ#廥~IC:y;-qgډWz!%s-t}SDC8a߈ȐJMVAAa,i 3_/o0xd #;:ps|Ycm endstream endobj 1195 0 obj << /Type /XObject /Subtype /Image /Width 641 /Height 199 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 1206 0 R /Length 22701 /Filter /FlateDecode >> stream x |M%+D%EVjM(i(iZ~~FtM%ZJEB"z !jߊ$% L|=ܛy=/N̙3gm4(/Ս5x$l 2222221Fa+/Ս<@ddddddducB'%&Ԉ%v9 ֯6񑪞%####MHUeff]r%IɩQѱaē]_7CEIwu0D1WOӒU]#"8,$HtA(-/?M¹s[liȪcq  4vU_( vq֭RӴdddddձ8z~uP(ɶ߷d޾]YCz:VGٯё*M  Ĥؐ0``PHXO8',JL 1n-4H%'ϔrZeIV,-Y AmȞ*~K_!c#5 ){$;wlҐ)Ξ>)T͒BZLp%giC;Bڷk6p;>[.v9$JQȇ[v&ȓڵ1֛opcI&Zt|U>+yϱkT<EkNa#_BRC \Q=EVي5x7l:YJBx|(gڵҩxZ}_!b5 MHLþx G~MHWV vķ!DM$.ssrvAPf, dZ]L!p=~Cc܎bXyބ >~~lyNVVg:wܿw7M3n[oN:%#&",%)!Яda z-:-%٪EG *lGT)yH P{p3"#m[{p};+“vlS^1F@ILDX0<~}y>iv(?2[0/2<8*"~W_?1|hXHHK{fy{;cF‚"#_}eO?[o;~L*$2B@0-jبpUh,!N:Çwa8dϞݝ,;Y=\ڴxӦNA±c3@_l pVٖI?u2JF8es᯽(<~/ylLԤ#кlŗ}p8>{֬`?ﰠ(h<&Y Ow٣y;_wtj<9x![Qf@~8iAq~>ǼN{8u焯_@PBR2,J~4Bz񴓩I>)Iqxmɉ?@KJ8h}Ϝ>hΜ>BSldhHœT$Oq 8r52T\ɓOG H$qѡi{XwTe) x 7‚|* v (yD >SVRZ <~?v \쇊~ǁlڢZ(MSDH8:5CwWg4X@`CAgVVVAeT4-i# Cʟ=/)&" c*8JJMJD1DSh'U3)6#C?D!3 QL+s"9!_}߱*q؟rb|ttE#BbNtZrB\Txy&F: _ɊcTѪ Ǖ7#Ã<* GȐg4:;7wWsPGege&""<4BVOӒձq=ܣU'3/$`ZJ2 Y=8z~p\Txx񑪞%#{K?.2,0*, Z}kdB_x^ع?3Rb’3Nx<5 Y2!/_jpEF8$D"tmu4YFaH$DҦY7-91L"H$Rm $D"I$DzRܠAB0D"HuTS!mN+egAD"H W5` ƍ͚}|B0D" H XQT7>rvG&H$R=kqitI$D&H$D&H$L&H$S`VX[}.'17/v:0XȍĆ7KKKˮ]+ݸ~۶wuy… 'OnݺժUJJJjР͛7]O۲eKjjj-Ug^\\ϝ;WgVE~~>6.]7J%FU<ׯݻ73//oԩM4111qrrzz8Jjٲee;c%NE=2 DO3f!/+g)ֵknf:9d̂Cf.!;wpQOzZ\^Z C޽;GpNNA@@aȑOa?'32JtG0ӿ(Z]fj#[__GvZ322Fahhغu>|T?z~z0|Y… :Ɓn޼igg'Y0j^z饆 "Uzz:i t|{.L*)) F׮]5dIපj*33W\i޼9,Y0#X.lZ!!!8۷S`;T_5A C1%%eֹްᾁnܹw ܨ3n\е\ɦmaa1nܸ///33/wW^yy`` ?NY1n||<+O0>{,~]СÌ306ݻgADLa={6Rm߾&Jጳg ΝYxrFi{{^׬ݺuЄ|0 ر%K C2i۶9sBCCA6HַԾeDM===ƅW_}RU#.>RBa766>s @ o5qQ0%]N^GgN'O5˯y*[Ç!siӦ!x9C֞&#w8j^ 1*b/ǏC.1`aAZ;p6lذ5k0_Wioݺ`ӄQ #ԚAles$!XkO&]*" p'::NodHO--s'(?ծ]33%`C;vv^0fzZLJw sة3eرaĉ<>FM˕?]\\#KRVnpͪ`8h5!Ne>}P3g•$ CRƍ3fIַYlܙ)S`,0b|48>, K`P/3]hl<]4ulp`5CZV4y*[gooly|Lui0TYA3jp_)ZFgOة>YfacĈIE0l{Wx/o\QmT=-`pVOOOt/SS]vZJؙ\"|TGgY$@=n0S#F$5Syy|{r%a~W,Y<7lؠ` ci"]j ! @wm333[[[͛ǘ%YڨoO? >~z6'{`oѴv &$I԰B@& 300=<<0m|:J68C0?rMfT˗/ .W>@J`4ӄInȒ RQKFFFǎv*oooLN eL Dp&w/]*zX11š%DtJJ'nj3h ;v;NAc/S}DDDr6f:t>SQ+7mdii/a͝;Wr%a7oI;|1̆dd1gۘ`fvZ~MSN۶mfzYXXpv$[O[o5k֭[6m?1T}r~GgݥKlCI0h-b7`!XE eúuR'$LR޾kJ;fll+4aҥ"r RQ!0lvֶL㥤ɓ'O>`ݻO=sv|pv$ƍM;0Dbj׹sgױȑ#ѷqaϮNp)##GAFf 'ٺut aZޛ5j8/Y_~fl`9z\d1a0009GW_}"a|^֥U8p`Vj˖-k۶-=n`LS5-#W(~sEuG0/\uD;vذa؋ܱ( :/`!X5TU3q;C֞&RҼyLMMۗ=xnݺ=|P--L"H::Vhh[-[ޕD7UbHZhZݼys{lU֐I?V"H$!flgQT;YD|2S rݺuK`ggg##<0۷oܸ 233*^ }F2<<}1o߾l/III`U|: {vZ`lggפI̚5- 'D00h1ٷ_w9r$[D"HO'njɷ/))D pcw-sGbF q>P'違kqS4$j6m lpACgϞy*nbb2{l~ &qhiӦǃ(,2|w̙ƾ?P]XXXVn>_wD"HO'0(TU~kB/^|YYj{B_...1[%]fR񯛛,D06Y8[ !/}Oqر#_w D?ܹsggҥ p'SSS CgY={O"H`K˜"ĉʏcgfJxw>,e8..>> +}YKr"}PM6 wϞ==mP&x˫iӦ۱;{Ǔ'OF4I$"v/Yǎ9;w>}ۻqtӦN2ݻl28l2c;vذaG0exvvvYYYeV ׊`3{SiԨQNNN<\(`q0IKIW^3f hdd4|W 4(*|zzz7nܠO"HOƴ>U)-uM9;wnϞ=ϕ+W@+Vz>D"==S@c/yyy*]vovՒ̜H$ӃG4ԁ), ruuҥ#zm``0a„P'HX!D"H`D"`D" $D"=y=%z/8:$Xf7|C^Vqm8W F% |<+úZe_^FǎۤIf͚M:/@"H$Bp_J!?͘Q `2 0Qʮ]s33%3g 7{vױ\)eRҌ39GYP/>>>... `ڴi 6 ת(GZ߿Mttt```׮]'L@]D"u[J[+`oDGET$5Ostݻs:u}b?D"kvv%NNE#?OW.35QF'؇A1c!B˗/k ڸq׭[ _@D"kѶ%%eֹްᾁnܹwHܨ3ng͚Ũzgy&77WlVV3gbɯCC/633)H$\4= *UZ߃,sV޾P>lժ˱߿__|}}5WWtذak֬a&1+F]D"`K˜"ĉʏcgfJxw>,S}||ݤ:tCpaa,U_wn/5onnޱcGlP$H$Bp,V|WKmltܷo(ֶ|aPgϞ nlX!l7iҤ@ VJ(+6 6>U$?D"H:@p&w/]*Ҿ^0ߘb":%Cnzƌ' k3'Nׯ,UeԐ0y.]ڥKl7oe$DKƏgI -7+KP2eJg{]+DCJKK;u4yd> :::**ĉ&MC+.^|iӦǎ;.jD"H:@0[??^0sv|pvK<7nnt)V@9sz%Zp=߿2004hPPPk%Dʕ+h(++z)D"kuc /%H$T!L*I$Dzz\h:04H$4 +$H$_AD"H'H$".DH$DI$D"I$D˗D_NJ.f `[bb͛e׮nxmۻZ_JzߞjܸQϚjϬ,d{dRZlYS9oٲ%55UHZ`-"? >s R: ufhh8xmIQO:~pɓ[noeej*7nܰo׮Ɍ3\"յkfϞݾ}{dաCgffVtO6k֬QFyyy@wwwĜ4i$Bp?!B0~1@ ali]s33%3g 7{v7\)e$)|c¸q+[n/RMgAAE> ]eW9޽{կϧF( [n?ׯ_?_uaȐ!|BTԩSY6mZÆ CBBj%~'޽c.]jӦ z`Zt)G*Hڽ{;wݻO>Sm"®]ݾcǎׯ_f[)醙C&M o!>,I&kѡŷnlyWr+%EETm!IjjCTbL/9ggg?>EGcd'!d?>UTTTV7mTe\ f߾}k<TY&L`ccMf/SEvpN_y֞LHثW/좚mFFF+V1="xРASL!ƨ!DAgd89`::f̘?1gΜxkj"猱ሏ ]zz:ƷD /ၐ~kթS˗#+2[lp*W_a>$̽1bbn>c:)Os˖-+XUV͛7g4$55UT~^ aZX+?X 0~Y-D{;%M(d# C9{ 1-Z &''#2PQ'a+Vʿ*n >N!׬Y#[&44瞛7o!DٕlmKJʬs5a};]s Q!Q;gܸ|ecX.W91q1C3fHIIٻw3<%sKoT\*ӦMC8>Z|,={*FZ ;v,Y–Bd8;w.))a#-De| !D ʏc-\Xŋq|9+Kmo_`18ٜ<22Ȉkp(+jo>_\b4Ȝ bcc*#i׮F!TsҥZ̯ lðT$b0^>e#-?@r0^3~- +J ggg}(_ l 4pz- q^6֊. ߱Ű88 X݄q=剉tuuXd׮]%iӦ 5mWӍb܀s|1`!6liST8@q,"0L /ag >SN8͛v7cŋ;V\d!1h~B*{{{v Vso#<F>} [d;P":uJD㫯#\t ׮]+,# 1c̩G[-ٳ'vY~I˵VwNELM7nX qtA\  @ vff&߬Kc&`̠^0hhh֋Rm9b&%%1vN`Jejj) L&k]Zjc}sEᶶn{(Z{NNNݺucw=np&%# 8zB FT~Z|M ^lBɲQ]sI"xÆ DU(r%F`۷ cWAC5,DT~9KVDDD;o633ݸq#s޼yV M w3ZBpa^Ժu3f|$4#.^_>r!D=Ə2aݺfeJL)lo_^kB0w 1 ><66=cÞ}i׮zFdd! VZ}7KLOM6U@\$T?! bXzunnhş ?daWq,KKtɒ%eǒDXH5be <Xlr->UTTԉ'0 C|6iڴidddvv6OجE!.k7Ο?2T wttbw4*ݹsJڷo7zhMC88 #p^D\+J 97NC~^`v-Z1}ʕ+og8;;8Y!Y@md:o<-k+*nsիٓϟ'DpݘI$Dz?PYJD"6=ZLaD"b$D"I$D"I$D&H$!X8bb7#vtmq .L/C0 [ڷop=tc/^Swx8| &" ZףpJa _3suV5SaN۱cG ^M˕b4·~kjj})D,ˤ:Tnpͪ~!.[8OSc VBB wVwhlx0bT^?\bRU!0Ev mذak֬a0:. c5 V>Mx%!2rMyjktVy;w8L4aҥ" RQ GqY8['Eةb_ CeNQzDZZH33%`C;vv^0fzZ|V.K9:: Rg1{dn޼má"X9B6lз3y,>_WgرcEE!X3ĉy| + (G,^U|& O>̙3JH^ c)\ƍ$[bw,[ ̔)S0rf1Vra>g}ѥc0a(~q.y46cr:J68C0СC-+׏]L 4~v*, `寔THV3`'T~Y1b싈"|WKmltܷo(ֶ|*D08')]VZ%W\vf>3,VSG7WW,#`Tps}_^\Iد_|p@Ȓ!xÆ ֱ`8&٥f8`R to633_m޼yYz?7a noxMk`BrD + d __߰0{ʧ dUkj4˥ ]|_tVRB)`&[oլY[njڴ)djRY[[G' u.]%xʢ-ZX2%\`WU9[YYr" Z{0RΨ.D;Nk2eʀO6asGCnr %Sq//ڵR925<<!:3`^Ǐp%k 8/z &66=Þ;srrڵk[ ]+[j5-- ֭[k"X$}=}ѣGcD,Yڬ^:77Wؒ. .DK"ennn Ş={?4CCCԋDKn߾p=%[S*%%sBlğ,UJ%W+w$ٳ1?Uu0kj{]=|(* %!!{=Mxt\Tyb ݻw-x)iO'i{n瓇`~~uA0cǜ;ܾ]>IqtӦN2! 豘uYu,4rHmGƳj5`p@hQ"kffn:].DCֲ&F$9K_~6X=*Yxz aW_Hׄuipa(y5gڲeڶm GD-Xy0T CշF%*_\QK%W{cǎ6l"wuA0 þ G!XEkj&DpAAED *'$H$ӆ`6Z|Vi˖w%,訨bX1)}#ZV7o\,[5$$D$D"NMeKN%gd89`+|O>+ vww h I 6m x*0r"aϞ=kccoU|qdARMӦMQ*Yd"'(E mϙ3'--} PbF}}}*D"NcaPP18…_g石 \\\}cccJ. _777Y`lDGGp9`'.B0_<bvܱcGps<ҥK###Oʧbhy`@iQal}:fOOϲ{ID"9EE bk! ̔ <|Xfg2 `q\\G}l>|W.?&Ek[#E>y$WWqpp8q"/ `{{{R>>> 7onذaGU.sssjYnܸ1CpYfƈ#H$!|WKmltܷo(ֶ|aP$cccM&*ѣ'MĖ>po޾}[C;&uIAxy$BrÇ(ƍ͛ d.\O"H`X&w/]*Ҿ^0ߘb":%Ct@JСC?c~/дw\q!:&&%a>\VoڴҒS=!!TmӦ C0ݳgÇégO[988 jڴidd$}vl;ɓMrEuD"+^J"v/Yǎ9;w>}ۻqtӦN2ݻl28l2c;vذaG0exvvvYYYeV ׊`3{SiԨQNNN<\(`q0IKIW^3f hdd4|W 4(*|zzz7nܠO"HO\7qJInaM nܹs{\XTZbfI$*>P ŋp^^Jj׮]@333ggg$xeiSX1A0ڥK}}}sssGGGT)::`„ A"H$ҿ`zD"H$B0D"H`B0D"HR"H$T^$ $D"6 $D"%^0D"Hu`zD"H$B0D"H`B0D"H5])/D"H:fi H$TK"H$8#˺d0.P}.`]@$\D"HυJ!2I7I$S`ÅZBpt+'\fzr\ҟ>ўQI$L 'W TZZZXT_v܅!I)`D" usDR;4 W Pу߿_9|L"H`Fgβg33OBpU`ťުUҶ]ǎ{K&x%K{9}}}O?… ?qD.]5!D"k~פ"o47jPx426;03|n}?jdyuԩҥK ${_E[\c[8'{oZ献d<ߢyJsg\ύψOi5jC;bQ{VVV666,oiӦMÆ {??~G8(^n)6lX\\ ZnmddrJsssB0D"6!z5o_+-UYIrCs&MԴi͛' d.)VǨėEť%Μ {vŧ_K=}mkݴiSϞ=W4 vNOO={v 8{ܬYӧj-Z>|L2eȑ466ő4h!D"_Wۤ }Y_tH..Ȑׯ_߫WdJI#ryzb?Ҭg>~I}2b lО?رcY)Pjj*&-gΜqpp3f C0|y|,Y2yKM500Ș3g޽L"Hurl W g_lWdH@ /oҥKpK#}uAyo9~`h H"xƍCV}s…m 0جY^ziKТ.Zր;#BL"HudnǛfX*DC=\/s3f@|IK#^qIуK?~Eln&\+n}ʹZx"oϕ+WN:? w1LcM~#JajF8 Y={$Tg0{{1U6),\|]!9ԇDDD jK>"8yKKEZong_[qWK\dٳg[ZZIIIppp322uևx޽{#o9r$-%%7Њ-Z9r$==]pqqiӦ &''#B0D" YY:} _{|ctCOshEPvk/0?$YW,/?ĪAb.Wݼ/ς.\Xp~јfm۶ugВ 222իׯڼys'''eC:t("oj۶-E8`Dmeן/>?z /6hPؠ ͡>--mi֬ĉϞ=+I"7uSNQig-A~;*00ѣl/!D"jdg./_ѠADu,/Dsܢ?}$D_hQ>ٛ]_ .D:tPNS;w $T{^p i, &[(UKʿ_.,U?(;SW t钃C6mZn=vtB0D"6!O2Eg1C"WOnusl^U?oZVyo.?"H$B0B055!D"I5`$'$G0 䂎LwCJ"`L"H$fE&H$A00Y&6Y۠Ab222222:3:} endstream endobj 1206 0 obj << /Type /XObject /Subtype /Image /Width 641 /Height 199 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 1521 /Filter /FlateDecode >> stream x}hU'6mG4Ѹ3uH¬ΏeMӹ)26R Ep8tf t*F23ۡS1+ba5$=q FI~?x9{sps}#Q<T @<d+#V*רH+>`ԬzE+z `2 ~x]o=fR`0^kCw @%*d Fz2 ^B?DʁK *M7[nǹ_g}67R),=._,UzD/ ZL{2ҺSGg'6E;{:ujر#׳mٲeQ^^gϞصkW,^8ƍS-.]Ǐ3gDkkk8p oޓUUU% @\2=ONػwolݺ5i#}ӦM)ӓ8yPBWc_[cǏ^wx,g\t}/jk~Ns=0).gk7o#Gϙ3'KKKƍhѢ8xs)*Jc۶m'(>H=g1o޼O|3fHqƨ DY-[Deee% HIIIR/e…+y,]~]'&8kblOxK=O/:ty`>K룺vן%#Z"nExfb{:g"2y^ӓOך5kҗ'~fI˝H~WqqqR5a„8ydHE%u;!ђ][DKGiQ1̒6G3#rfxk p}mC(NWK"<'2ņ`^_NDNsه~0vȺ?U(dX2*77G ь$?F|oE C*f+5[ku`2]W=ٓ:"l>s3k`(53,\pr endstream endobj 1196 0 obj << /Type /XObject /Subtype /Image /Width 333 /Height 149 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 1207 0 R /Length 11357 /Filter /FlateDecode >> stream x]|T_OATPޞĭJ3fX ,pVf_"j* IbI6a_oOoǎaD3|}<[,BlRIj9V%ćۮ@J1¿^YQQ}|,/mǶV*˸=+6Im qAaJP󞻷ɒՍeHRYoؤ^JЮKDEjǎU]7GNZr, 5'N4!JeUbz0OkŜKV]=wȉÇO9R[QqD-tw Y@O#»v:ט}=iHk]NF5r"qkh|'Xc]6W-S Ts^YA_)+*Oee,k ]{;3YkBF`_RhTRrdk"k$e)0Țc];'4i@~~qIs<ط&N$A9J멱cUM|ᅁ~zX6Yz4mSO>W|ĹH!RBÆΜ>HUjnsiL{|:I=QoOy5<4Xh[o€ O=j`P8qǜ8-ǪeZ5l2MS()yFZ˕k}v8g*clqt۶B'n^D$ܻgI6l_B@2|҄!s$tm~姙'k 4q[-x[d|tꒉȰP@e#oX&=5)##v!eF%F-y{޼+G (UDJh@BLdX.-Vo_0H~ɓ&&boHyP -n \=UDQKVCr؈ ?Oĸhh}SdBrGv@0At:<_gc#Â0wѡC{w2S -V/89FE&MԨڈŲ|5wM1Fjmn!2Y^#GAW 1_ͪrYdM_~qѢ #"t']sCA/""-)/-'B"+FID֔4(,FONؘHGaYT&sM_|a2<(-E m#}tswuA~^驡!A(eAX:1l`pFh ^$dAȓHݳg\dMY黜:CVfRf͘ġ( h0N;g=Rj?̧|NPUϙ3{VlDptT8E ]tGx! ʈ6bDE+&7W`{{=;I*#qZZ|6Wq1:+ynNL=0$^*W=]6nϗmY9,,`ˎ> A/3O LSQZLO,edMS$eq0(GV&YS…4!=*ҐtYh  A닝,\[H_Bt(lF޻W1/u(LL/l{rwurdPjJ%P˃W!2?_/E#  |o8_;]'Lx^v#.f.0 ^+ONVF2zGP͘OO? TA ZZ|ț[W 1'U.V>_|EOʕ}zvwweLLʆ=t u)SYlNt_Zb}KNB]d~nMҐtDy9|_a0θW^{3S=SBS_,[㣓B‘7|2ч]=Qid|jmRnTH/љ'{>̰(il7_oXfFdP6''>ÂCAH56+#"ߚ5}R+?@!.9x{z }h09M/d,AnFPU'̜9T1#B3Ūa5^1 LYz{Nfڅ3V|%K6̝軵ߩ15AA$ٳb0I e %)+)JjUO} 5Jrk^#| [@x4X޷O0l'}zs_CIaD;cx o,izq\n1*"\76B3!&4ж6 4}/f.T=Sޞ7MJ%G JIJPjUq}3zH /?aaW&OR#laW_Nɼ08Q裹@# qLō2ʽ"+z0/*,0e6iW+RW*yCyoh_::*2/7T$(sFl4Ue @ʜE 5Vjz%m7=Dǭ?bB^aNV:l&NEjbuIqلWt-..*LѪ`ᡁdn࠱O'cbĵB "1|[7+8ܬ‚4 v#;_&.;#%?/[2bgƍ]b~nxy;{mr<4UDdhf$U^NfvVЇF4q9XGsήj&.TܢUٳm-DhTqA^?RpXH'HRYs\T$bTJ)I i)"@&9QlH'%hs s!dq 금d5BkeNVjIq4&16"7+M( a6AsL7j\BR h5zMBj LF1,4"J:83]pʾBtFESǦDV~n1,Z~}˗"_: ,ڞ#$%DzkձyY6jk&at[,T+0+;35UN&4fIQ!ҋ AJ fQRTd:,-#M gaNC"Z *O3M{H!eĵ4] ЭMLѪS9H41c ҁo*1HM3I>)?w | ShĆQ&%7 tm&h|ĦV۝"VGeZ伛A\U#*a|s E"0ǾœEB&,+T[+ ==DlG(GG[H kB@Pi)1'{h 0ʒUt2FܼK }.̍1ӖxCma|55h'L ,y[ Gp(%6 QHv L2[^TWgU (+[HLl[w?Fjq|_t4[tr4\e*4ܜBl kjuBaG4M!1-Ss LN ገ3nQlMf,爏Brc+51kZyϠ0Uc/Pl b]Lg+bHY+ m8) ks a:+a7BɻrvBpgt*)ee7Rt)_a3g~j欅2gh.(JJO[WWn`5ggYx _YYUu=MeD:Xd5',ڜBL)5]aaNQH䶯'( H\h.|9baW1欅2gh.(JJO29`gm EץnîFz5*aHTa$#C6M9Ea`NQ%KsefZ]n 2.sc+[Z|t){ ]Ѯc}6gh.JJO[WWe_]a0g```Θ199c-m%Q j3btK=9y"S23b0g0sRcbӧ)׈# &n0%BD1X w9͢3i@!pۥq2S!˄h?Ag&o} /G=0z] u&R+[Ho9j07攷_6M}` ^Rx%*U) B? odTHr6#łv%b-/G:CwJE}`g5-xIjٴCj_'kb/\[nEEE.))޽ Hk)Y:Zpr^.YuA=jb'CՌ )]6LοbC)V0jF]hO&xsi0+I~|=: .^9+,B M6drMɢ?8 b̯zR :sg!*I\!=i! f>an÷ǘ\xUOË^"s׮]?\௃CN***Yz&:PK:tjڃ( e87fR  ƲyN=Ϛo`6 6zDW4$PYYBXlsV^D\,jYnYu3",H!1̸Üed8pZ=(o%x1v#8J -4^f6 ̕J>VGN]wj:_Yr,X>\f`.#&'rhA0|y>5iB?8-6"e6 -!h'$}fɉ mroN)rxCtq.޼:x6Ni!%KN.lms.*#K1OS.G!;k0+PC(sko,h07eϫg1ϩr؟m3oG>)泚ؚ״ű5f40DǸ꫒9fQ\ðJ)AʉMnik3ܾɓBɢP̆ڵk9M+M]ߖe9yW\Rv>|СCZdQX畈ᆇ'vܟE6"MjN|.qGu!WMor E'{ơR5BϢPc͆u}u-ٱ99#sssF [Mk3b^׽$ʶPc0g`2anoN{VpszyHFsؑ\uDϕpr{^>8 n/ܔu,Gy[{Zb޼ ޜtͿ.䂺r7\ . Gq΅vkPL.|yInB.gM=bs5vɯJLnLB12K2n94lj7XїrZںB\ myCCz9+5j׫)-<:w4O~pQv)yR%1Np5 SsJ M_҂ƐZ4˝Q_SjYs\{~I;*.vGlyT{SXU"tSZhz\۲|yf&7g0g```Έ999#ssF[33I: OXNN9BGܹȑ#dfQ)d e17їZA q%3fҥKYY, 1L!Ea9Pl<;nx27=9SUgDҥKދG/]t}-YbB]\&7jo+?z>1\9sFa1BL!SHQخ`~Y5+bvlLJQxU;sʕȟǚ5kYb BBsk`kz?5]Ґ uuu b:t߼y3RqQ(]c BB&Ϗ2(>!ER0M4K0LBݝ3G\J 'zcvBїip)d Yn55\0EE#8b4~rCOi 5Y2`^\̛i[m`-)8єc^ӧ> E!)(PMf5<Ϝ=RFչsG}DJB\WW|b{ssF 13"S23b0g0scZ9^o^^^#F6l, 1LiV;oNy{LBBWJLFҥɓ]]]LrwT*ZJBP2V?|Ly{GAK|…ݺu+**uIII,X@ZKɢSJfOͮFo( 寫%` KiӦ 2\S(2Y 61cn.-68}q]vpQPP:ugQ)d %̭cwTWӡCZVVP(-[ܡC''իW#%A)4na&1`t 3 swwtLSego.F\13gĈ:<@LsL!SȂvѦssoA:)ħˎBvwkF sc}:F'/nvC)l97l܈,_+!FxnСFO-R(2Y 쇏//1X[Օӌ1j+`ΈQ;9`3*F r軽̨Fd$133bN`~|\V sFZ;kg8_Y]3oCv ^Ï Zv0~˞#OZjU~nxO?DzttСCQɓk׮0`gϞ+Ve0980^xi_{@#\:Iŋ<;;;gРA_~%9#9t҇z(44taaa0u1{sq`Ҧ|aԵc.5srr:wVwwI&|˖-{ԩĉ322R^^[ouOH1{{{{RSS6x233W^yqqqcƌ!µ^a888`5?>o۲eHIgg}MÏu W>?~qΠҡ͕߶mȑ#%'$$`.Ν)@֭[GjnJw {cǎe0o۴gϞ{L2NFZZ?^QQ{ӑCy)ScTT\9O{`](e{)0} ';v,--) $s߸qiH1Σ0y͛7-'N5`>l0Nw);o6;vL,‚ԞE/ٻt`'Ja'''8eq "d`hѢ˗ # :b R=zڋ9޾ +sRRy]v#S 6=zT X$|7ŋW*H,`.>W~q`~Yܽl"R۽{w,bo>g7;a)&z) ֭7opzG`ކSN0!;{ɓO>Kk`` 6; W\3`ׯ_c#wlo? ¤ca4hp 0w&L05kƏ_YYO?!DHLLÇw09ۛÏXԯ"41Ԉ{}m SFN1/"RϚ5kHĆXǎ+>g0oT[[`O>0X0hqc+ww^~e;;;?~;v*$•'b53J NZye0gĂvUO!yȀVqsF I>JHך1`Έ}#ssFn̨.d|d|daΈ#sFR3f̸m0)3fX s\3f̸M20P(3f&㕖J endstream endobj 1207 0 obj << /Type /XObject /Subtype /Image /Width 333 /Height 149 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 132 /Filter /FlateDecode >> stream xA 0o dVBkQ.7R- endstream endobj 1197 0 obj << /Type /XObject /Subtype /Image /Width 333 /Height 149 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 1208 0 R /Length 11275 /Filter /FlateDecode >> stream x]X_4Ƃ=Ѩ䯱KXQ@ ( *l H숨+D#VDѨaoo`Y 7;;ٙy3;G i+֦D@noXbmz8n|+VMO7vC:VX2iLTi֑{|o] CFksІˤ|,USW-/Y~BJH?muD#͋9hCYLe'tq%Ɛ61ɐ7aP,&Mw6ҼX6ȤZ4ߒ![S?]VvˠEu7몐,D&2i>(K2sN?xÇ+{3 WuNNtR/[uUHbmP"rq3xQ^޽o}tXDb)Q[@.qy"OI˭"E8oЮ_}8)ީ&3!c 99VmQ.ը[vX")jk)UR5BL~#gke5e&-q:0uϳqecv۞ n7;1&H‰M]]#-r?Xw|ca}VT "H%./JX}saJWXuFxOHH9qΠo,yjz%eUąff/?xOAug鏝<|W& ^<ʬ ͆|vfѥ,ߕE3숞]s6Vo9KNNnW!A\Jt{spEwYq՛ SRLUTΰ#OI|koǠi+^ᕁp]!| D8#gu8N[ݾu0ek!Ud\& <1V25O]?)$4q}вe[MM,-=?}_sk3 ]}֪qGB.tJhyc(N_+sl8\?|W`8.Fe;3[G#]9L}ɆZk䙇pڪ_xeu -)K(LWfd }3c V@f=bz|ȟlVld"oؾkmaҖcy,w,ؒgm;`sխmvfO Rkd,Zs N6"_\9"dqR*]`')[ ʭ8ʭELMg|n]gPgMxoXpʝGOn4 I~ qzr  yvnyy*+wY>w}4)*dah[+{?L*}֥L=]tݵ,7ZP3"a923#+~6TIyx}-ٕ7tg=M7s d;«G CrvW&Xdzn8ءsWH VLt Nw{XEe]T-%7s,_=$4ٙGg0ek!Ud\b_v-d<&u~nk~}`LLFzIMaƸtFU1l= TqyP"&җ+3lf`b~Xֶz%:5:g,bČ_}P% HY]DC|۶C۠N`;s +kaMݎl Kv Np o3fѺCw]p:{x1nJ*|7,5zKap0~7e B%݃,LYҪܛ"Hu VzO\k1 7?çn KZfvl-rX5X2.w@Y9v,}|&smXZrc2r wtkWǔ2ՉQ$(NDyJU:vo桘c2#0lCPJj6xJVP0cw?#<Ѽu;8pwRRQ טA˼XY,Y  ʥOL/yRX繤Ylmk3-p3hYqgak[RVS@ Y ;/YꚗO ~2ef\3^ T]!9$Y!)Ý'9tUZxDnڹnǞ5a;y Qtׅd\%}3r&9F2pWe0$nm3vjE}WԖD]D/.9h!gb 5up93曬=j-9{}=<؀}rgD,l.dS5,żδv`b^;rz=4fVAs*\1K,Is]޵؅clYFpqg][*α: 8rļ"KU:khv{ dl5S6"qնjӮg018}cHƐL] 0b.s m`Ơ bڎ$FΚNݾp4: ucjrlWNi.''udSHJ<`xc&ߒ삲| QqSWw%O=7WoSְ c`Qڣ&**k|=94!(sO{JwVl32.Vx5nou]UYm*\HVLuFœlʉ s$C vOY]r5Ҽ"u 03TLǐ̍G 8SI6(#"94%4bS) bwNlsjIc¯U>cW[M)U1\u3:cUU~;# N7 * ;>(="5, >8{/U B4 ຆ̴Ҟb: o|y"GwsjoXw\8 ZIh}[ NKL:!~Uu{k}N rtcHCHmP_"3|NY"Sߓsr|O^ l_:1v ϰ.n¥Mp Ve&YP]P#p60ϴW;f/4>Ր8/> nJ.CFeRnc|d03pK_ufo]uM-ckf#X6&gQ.;*LxM^fn2Gbe("Gu0O#͋""[a(_p[uCI&Q~bm V'7e| cVX"Rh!!$VQ]86+ ᩈX"i&4^[KO4'Hmk+(GƉ&C;i?y2A $%@GSn۫W2Q =1!-SdEӧdN:_p^%Y+mbbkר~O2;Paa2 즠u@W#649p_px4'SPpB+OR K[*PYIHA=NyDT^(cX{^lВ2oQha-.EGkWʢ9'GscAt -A yf&u.(͋}@x8Y^NJuKHz0*7 ]֭GV4?tdR>M>zDFGS è4t@oޤ\KcFvhp 9p>Wʤ9 #au+8.8LsNhw޽\w4eÇ&'S1gTAi 2> N/PCVLdbiY 9w3vj˜K~Aq}Ѫ|G4%= JF +?վm0;V彀>q=Ch.)uq8%FFR R°.(xҜ$D $mrU=U [wJVVk-n n?wt/XX"E G_p*y#I "V:A0'Wޗ#? p3dyuD@t\WYԍZgD%O] k FL Ȝ`%&;wd)$O#M$بUKC!CxZ~׃}!Uy+h^FU$sIх @s7{ 4K\Ҝ: LpS6  g A‘4iiAH_D{S"indE>;N4"{/ĵ*wqXӎ4jXC9K 'OiTyW>h&XYYH 9w Aa. TL~&~8ZhLvA}jU#J?91"LGKpp%8TI~ h.&OP%%up;$PJi G`|jLd(3Y!zuꔄc܆ \%8A}jU#Jb9AtPKAj?PI0/@ |JfA޾nxA Uy8@ȈD7n<׀"$^8@(03gwȧ|v@0KGvy)K"}0SFcelj# #w c>Pg-οY}ѪqΧ+5\!\AxT@+j=DXB' ,yXU.˗Xos0z @_ C쯿J{Ɉ__vx=Fp;dGrǕ~B4?*A\:4tW^vMMj%@3ASzМ~4[4ܺ_"%׃܀t 2]DRjx .3s /~M^Q^&ezМU9ڇJjX+VLsLsLsX11ͱbmp7M0ͱbcTc h 99OK~VȄKpX0 ͹_sEm*q_ BmE1 j#aA˃ƍkժѣ wz5jkk+)) 4(G|5*/O}Q1yޒn6<@u"!)+yi=?5g?!u SzU74eWK$~xRCaC%+UZ*nb`OB7%|ذa:::QQQt:UZZ:{촴s窨D;5r)F&h""2yj>Y f# uہoQT%/X%")͟@ YC#ḿlCc>H&'׶RPhZz͝@^B|_b6_/k 0^[UZD;x-!ϪNq_8jlsq+++thmmݮ]ׯ_>o>3TdEHTo5ԙ"_T9yHNxMgoNݫVx)$8[Y?{LQQڒ>6m=ve* D@j4FTIi+#/;R,xW'{S60R9|yr^-L I>О,6:Srs՗2o*q_V4x<1@sKKKߞ >BtuuMHHhѢE\\' O}/39oI&.% -@Ru:aҼLV@QT~`/!-QGMV4h.~Uy`CYZPG'&&%$T mYYY[NKK++?] k-$29Բ0OVrIWSsmؐ4^LQ~b2yηT#<9FRE&2 Fs:%?[q=N;YgD]]ŅIsHcPz֘A)Js>P cxZr=ڰ!i~ՍZ{;uo-IȹP7RKf]eEr$#.kjjILZ~4w9@tƈ!b 2kÆy.Z3#lVl*q_yA5K4%t ޽{:%uSi/8{´8֔?͹߿^ɟ@=?dѯV>N6߽^n9gV˩Yja*4k=P?e<+41|]̚5KUU5<<!33꿦W%ZCsM?k@!W}96ؚQ,''gJJJ*E"0ao~JM6Z]ߺaџf !m`4?z*Qk9LHTZioAƟ^H=}k5'S{eW f( 5Ls,X011ͱ`71M4j7m4ǂii^'S9o K 4o`4WV$>tTvvU$G? 7{ جh,|h[0Sh{4ðr7^0`6+]FoBS# 8@=<7o.`lV4C$<, p~pOT:,./Jy36 y]i]I$6: .-)*sмlӼ4Ƞ|upݙ4?|DM~߼!hތ6{ i.[?0L!D (4oF`4+%T\`oڷokxwy6( y=hFvP攔;T2͛f/A1AscT%z"f l@@Lz9Ep3_v zE¬/^io`4+X`cc444ǂiiiӜER,X+yӾRLs,i~0y6Wl.sl,C#ԔzfۿEE~EGGF EbכNX4xsI7eIKKCWQQ8qbddԩSsrr$^#Ā"1MsH0i^PP@WAFFFĤm۶/_իW544S1H@Ls) ӜccyϞ=Owݘ>5s>}1 D297h^\\`ccUUU.] K.%}6ŀ49͹7Gsp݂^͛7 XfMHHH-֯_1)Ҁ"7Is999EtĨGFF0 db7Ӟ 5NĀ,@L'0O<ٱcUz/`@ dHsI \˰h~%QFݸqU=j?P#?&Q,A/|=fĉ***ղo>T[=)S|qb@0i~k#F޳gϗ_~طo_Ab@ ( 99LsLsLs,X01&QX&Qx/8,X0?MsSXHxA=P{l0(C\t:Ξ=;--mܹ]9WT*乹 /q1 i.[?OEPS%ٳg?0c@ (\4vW?]KKKpH?ꚐТE8OOOAO iNY"QӢ7oD.'&&%Zպu봴Ā€s4q?d*D (4/))QWWwqqaF:slN0ǥ9 oĠ"h^^^iddĪgg0 Kpss\1S))5D}@g˗/&LxOF`&0 Kp9ǶWے~=uNYTUU%??B9@$]]]/N`@ i.[ð^RB 0+;ŋWb;>3x`%%| b@@Lz+X4+%*9LFMs)?]y "X4scZ Es>be}ۋ Kc, 99,̈́'N]J`ci^ΓŽO~OW1ͱ`i4q8^y*ݡ58vvoMl_VĘ^VVfgg׭[799?|ʕַo_Ls,͛7cǎ666o4q8^MЂg|Ns ߆_\,2_|o߾ JHHqFbb"3G8kcʾk)ϟWRRˣcbbb&LwΝƍwYu떞+P޽{CѣG:u Ӽi͛7x蘃N<G:t('NðG ~Zjf2$$DSSSQQqĉ׮]ceC˗vǁz8~_WI\A}:44۷ڴisCJIIߍN0$aS2pi晙4͑ ɓ7HѡC333baa@C/_̂i\W8ǁ:vE,m\n:fp;eH ܊pBz>)) zL&,W^UPPc`f׮]O͇ "ccciEŒ… os43`kAZ80WWľ={B_}=zZgee0#'vԨQS0B@CGgܼɋy޽:7^zAC< ]t MƌSZZ n!Ҏ;E,xn8)Gz qx< .M vΝ:ugڵ CvC 8ͻqD„{p6lsӼJEE8{]t 70ㆩrn|}}iޤIaNÇ!2(( zIf~+'MaW}8N4W^1ͱ`⣉E>,xq89LsZDˊxc89Ls!*,X4l'66*,wxG,MX`4ǂK#9b:VX"R +VML40VX @dNJkT;  endstream endobj 1208 0 obj << /Type /XObject /Subtype /Image /Width 333 /Height 149 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 135 /Filter /FlateDecode >> stream xA !h%3,: endstream endobj 1198 0 obj << /Type /XObject /Subtype /Image /Width 563 /Height 719 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 1209 0 R /Length 20265 /Filter /FlateDecode >> stream x xսimֶدֶ߽^*"VQd'"/֪ dd2! aAAI$$@VBΛ@d̼k~<>0sr7}BP(}7. _?EP(MVyBP(}3ub=BP(}FxgVOSnZY~^n bq׏y?^<>f0E~a}R(^Cu_>LA~[_>:o (c[m] b+qicJrƄ% ޗWXq~pWdW!ViQ~~R(^C(?JYoҶsᗼ'.4ͽyGqLqSXK}9?>7BS8[]i1%OWVӋwZ!Ȑ†K߇/Yz=-{Uiӽic>xvw ׿~ Z/7wv _,ٞU*rتG䶽u]ۺQxwk͑pOD?Xm]q7Ϙ[WXR_y[ա-UyǞ\e}k|BҐUG]'gs6W>DXqicrY&<[r"4~Þ_(\ȯfIesĠ?{yT7}vpUh_ؓ}|q@Ϡ5*\ЄwU-Ls{e<"2ĭ =M[woK%ԕֹj]˟=\YkBf'_<UY*(u΄O|5;(ϏΨƖLWsWI~|o9n[2'"C󛪋$񂦢#G <^KGy|Q_<:o _㫒>Z~8~i>{xW&eN>>YswtGQ?(g?|M_`Ws~߿eʎ3m/MUmYܶk(toۺQm|re]xG"]q߷<$niH[%mG]EeA]~O/(qQH[O5򭰸Y޲oHEe8O y΄l9RPH֣V. cاbRO7oQ>@bMf][Ck{iyzG\oάo.?=ůNYIm2sO\s-mM͍!>A'^j8ܒ]p`F__ojM*eUhR- [(d?fRqW{Je .tzBH ͇Op*\8mscն҆ wgekz|<"C|CĿw mc謺#+FT|PqyÙ}?y15M 9<- u9M>QNo[ᦓM5U5u c:*JV_[JH@g~#!eb{QyCǎ#wlV._W|Ֆr:={@Ux:&7{7"vNDgCgq3E'Oܓş(uVWLȓ$$^~U)S2ǨhZӭe<^~)Q Uqѫ ^:_.+ߓMLeG͹k}g?z}x΂3M>3i˺61Swu3rmmHyJkniu7+\[c1uu>\P_92N'++ z[)W߅MC շ9bzGvI˹sեk~h|WG )?)#rW'@z =tiC(ɺ#$iNH;OחnH'J~!jW/ؖt_sBL /Nu5}5CC/yhkYtn5 mjpm_vhg߳Ǘ/l0rwioiol v:񽨄gOK램r*mt=kKx3UE9`:N6XfE#u౐#2&LaM˕):ѯwduJcAv; +'IzI"oSyG JK:TXERXqO؋\l{:,AkT6 >07X_blm>)KBLvV]Xϭ sV T\'HRTq w̏*uCP2T9^ԣBD]>+o;1-=h!zKR#cd\w1w/}и~{V]Vw̽x6]~@g;wƽ?L~։ozî oye]<`7VdE^j]xڰa O(*m ]SLgm57Fwm vt=qaL k+ &?g’RPْJ$w-^c;:عdܘq]::WɶeޱM .}|`N_ro'Cpάc5RyEZqڿ&4yz`֨ܙ?]WUfuJ<۶55(JTmI/Y_pgߒ4%jo^[zuֽ z{>(S ][7f]kKy taCd%5lCQq-+OTZMQs]'(G?عAW5VgQDJ_G̸3̩A_V\_: N-O%'ZJ68b/Jnl{מ:!vpc;usQCR[W}g^ĩ~If+zlTeAC'w׺G =vh#R_bW;nwR8n71.ov߹/~St`Q=uw,ysݽs6nl%Ǽ-z|Sȭv0eۺ1ѕ7- KeŎS% !};hyWwQ>7Rq:獈xomklwuS{۹sƺ϶g]c:XVc)AYwz5*ĥae{㈣w]thOSc+创utZ- Q>ӫF煤OGѱ"O76~,Г+\`\鋴^q*ھΠ!/왱i J.rx'tn=п%'g?S,rϗneT/Y*s*uqw+-C|UY<=zWHg[N&%.IpDo)H{ sεԜZ]^d] θxdmEj|.oQ7V?g9öq B T?XYf!x㹶֖Ɩ֪s\qvrOgNwǯ M~WǷݳB~,)%s= $M{r?o4v;ex׮ڲ\~͋:(g\`;WԗoHPZ֫0y]7uȠso4x;MtEnso_g=J]rGAȭeۺ[j7E {y˒g˜ thőSMA;Ha;>}söCooK|g9'7WvsKGfd ʻ^%;%u-}jX3Y-g %ѐkJs1qKidMk$!Yc/{Ζ6?;vbdp}*Br+gmX.e~T񦦘VE}Ti>bY3m/j>#s|p <#^iO6eudy[ڟilw{k*]g?ߗs3kו9vK|J kaTI[^)i*zɞyL[3_6/o)O?{ʒڃqǧn;H}iC{13c*.lЮ:#a qۙ5,+h.J9ʖ1^X}E3B'ڎ*/zMmM~lbu{\mތIz)&-lkUn}94T46:<~eXlsbeձZ?t%a_r~?S'[Nmr>Ut-ߙ&w,/ξoo܈ۃm),?͈9YwOsC_Lohd~7}?Wprɸ_YsGo~c 7 U߻Y^zjm.Cֽ?E* u jis+ƽfcWFL_=bs,zˇv5xZV:nۣ =BD\ μМcˎpYXam FrGhK[6`To.`?rI7t ͝~9GCk(+c+#4u#EG“~|{ƽ翧 ͞~iG3r$-MtFbY{9"ቯD\YA3l)O8qq{[МE=Hz$4bرH\lsv{9/г/O\~xjGʌpJ k|*M['ZeoYlϘf `=aCa=cmٳqhM<╸ <9p)ϨK}F[_V:n۳>lO{0,g;8̑=i#e=}a~oϘp-;7{ڢ(KS˽3 sO^H^qoA`LXIKez]u -+,s#yYiuV/3'Gcw$9=,LhsRڳ'Mv+)nPƆȞȑᩳ9C;ϺK|J ֫[&MU)1G"yc8=pth,{CqGy@S;9uFXoVeTX҈1,ctrץ/p?4PϝaO[is:?QYd< O[Hz\Q8wړ ?6#,…32> SyJ+uazxQ˜8;ٝVчAPWvS)~ttU>y`ȏQPPNN |(<SI䁖lH䗿TZ;J /(wE\y4ׅZ?"&Qd9tH-1ɋ3qQlQLr uyL%Nj=-_5xB^,UѣJSñjny,xW*휤$4cu!/ j>U՝qJ뗞 p}94{ͼ=P1Ƀ~eňⷿU1b#,Y"6oVJ]CT|g*bx=JR4Pjl ؍7*75 x*RU=dTz}LeeJ:#"pw&{6oZh-'!Tqg?~o~Wȑ[ĉM5و\-s}@}LrwMaf-kzpq7TyXcXILF)||__BVV!dL@1 &@L bĄ`Xn?_Ar_5!AzV)5vk AĄb"!}L@A2&5xJ4N|J0tG6~-s}Z/Q]ƼU`1bBL 1!&ĄbBLb cRu܎|JOи}kMd\[ 1!&ĄbBL 1!&ĄTS[?_\yF3Rй)0P\~ Nj/SdL*4nBki2*oqm C&q bBL 1!&Ĥ&O'*/UĔbBL 1,I.)#ǤgSGyʘ?&wJMheQQdL5xTqVxMLć#o;gbBL 1!&*fW\ OJBL 1!&Ąt^}LNV|}= ʨU2RڼpT1dzi1Ycw3N<%bBL 1!&ĄbBL 1cJtdLӰ4\ &ĄbBL 1!&Ąb c2`dVc 1i52&f~^ƤmZ &ĄbBL 1!&Ąb cC &Ą1!&0 b@L S &$248!4@c1Ɵʼ@L\@L Ą!b c2xŦl3yWְv+]&yOZ`{1!&ĄbBL 1!&Ą}L@3& Z3_BZUɘy]踣 1!&ĄbBL 1!&Ą[y@ c*+21i1i<zC̕18PZhZj<ۀOZ 1楧u1<+ۿ_bBL 1BLDwbBL 1!&d1u2s&}L`>AIvNT[:(&8A6~-bBL 1!&ĄbBL\I#1ht nףgp`4}d6co æaJ"bBL 1!&ĄcadYox\Doዞ>=r0ţ<ĄbBL 1!&Ąb cvVAVGd4\ x1*1!&ĄbBL 1!&Ą@mt9< 1!&@L Lb c"cĄb S}BNҎGf|AB &Ą AĄ}L_*5^X#yO"Pi}`Q nk(/1!&ĄbBL 1!&Ą}L@5TXـ!Șa691!&ĄbBL 1!&$\.1m q b6}L+M*Ohj2N4G1 1P){8SKOka9ŴL0W1Iskb#kiyRbBL 1!&=tJ~>bBL 1!&Ĥcr:OQP2!xa ̙֞xa7਼a1!&ĄbBL 1!&n 1!&-Ș_$װa1Ycl&QbBL 1!&B &Ąb >&a%M5Tc?>s&k_s-/;<6N-bBL 1!&ĄbBL 11^b@L bSȘȘ1!&Ą<1bbJ"BNե, O\y\ bBL 1@Lbn/Ҋ暵~(!Tj|ZoseLBUN̕ΨtR 1!&ĄbBL 1!&Ąct̘ĄbBL 1!&ĄbBL1}LɘlJTq0cȜIbBL 1!&ĄbBL 1!&GuxF 1֊W^yI1i1i01hоո9&1[f4xXAާ9Xs+bBL 1/J%]@L 1!&Ą !5k3ψF<&=eCW7cq8Y#cFi\٫' /= F651+2+! bBL 1DŽbBL 1t nףsvqc=|2&siR`Z$Aj 1!&ĄbBL 1!&DXl6ō1 mg 1!&ĄbBL 1!&D>&3& dK >s-jՄ? ZoȜ bBL 1!&ĄbBL }L6^\b& b@L S &V7~KBΎ>hyq#M3ˣ&l2&L`Agí|:bBL k &-1!&D>&dL]fk<|z5[cvqkʔBQyV1!&ĄbBL 1!&Ą)@mt\d(+bBL111bBL 1x bĤDa AC4 b!3հQ@L 1!&B1q,}L@ɘt\A^h5 )ŮR(B!&ĄbBL 1!&Ąb c2NƤ䞶a꯱վ88)3ܣ51!&ĄbBL 1!&ĄbZN|k3Rйi>^qUڪoƤ`3[dLL-1dnfLyML=&n8bBL 1 w1M*~+_( &ĄbBL:iEI;w*  c7OHMU:NgL5!6&St+٦bTްʘ&SdL֘]Jk\j1iP spO یɼ3?bBL 1!&ĄbBL 1!&>&dL:1g1cҠ AdZ4-d nVevqĄbBL 1!&ĄbBLcC &Ą1!&0 b@L S &MIDBª!4/c8 !bBL !ǂ@y3&f˞6NP%pʉs NZ!&5bBL 1!&IcҾRƤR-ӼϘ[ҽx,̕kxz,5[8 bBL 1!&ĄbBL 1!&4a)Ν<&=R*Gw# 1q Zx !Vq˘& _$c 1UALdLdLbBL18%5 !d>& #^Tj tI ׅJ ěwyWom1!&ĄbBL k &ĄbS+7 o)G?[ 5׈s͘<}m{K 1Es W_bBL 1,&k⭷tcBL 1!&4Ŵ|ıc'ŷ-Μ1)P^(ISlAmAPዃZc}:0eq֛eyĴh*y6MWQbBL 1)J1i 偞á{bBL 1!.&Nӭzɼ-CsʳƼMUp cCL 1!&ĄbBL 1!&`>&2&[.nɼOqIg1 Qy,{bBL 1!&DĄbIߌɼOdZUżzp#&Ą5bBL 1!&B &Ąc@/4Nʼ1 & 1)@LdLdLbBL18%ygw!!;Xc1q 1!&DB1Q >&fL*-{Zo5 ʉJ+k@J[#k=!bBL 1a ĄbBL1}LdLꅰFc-5،5 2S!&bBL 1!&7bF]^q⦛DFH@>\#"#Ÿqۆsſ&cb\voI㱅ZxML'V^آ1!&ĄbSL_Ze1 &ĄbBLz)#C^o~>I@>ZqHJAAEs3|ZϙiszX}8`7gA3gW_-/&L 1!&ĄbcNJ.".utbBL 1!&W)||__j1i<4Hzr7yiYoTyg7BNIbBL 1!&ĄbBL1}LȘ4g #c7{l֘4{xS_EL 1!&ĄbBL 1!&DdI 4 `3k 3׎2tOWbŭwkybBL 1!&ĄbBLfbVhZ1 & 1)@LdLdLbBL18%sXB 61q@L 1@L>&-C/.:Ia̵5>ys1!&ĄbBL 1!&Ą}L@3& hby7Fd⭑ZZ/A6D 1q"&ĄbBL 1!(ԩ<#C1="o[\̘x:E52& yp4P&2(BYZxSLMMs*nں1!&ĄbYL;v(J7(fBL 1!&ĄtӜ9◿W\}hmI)$5$e$=U1cx pbc}$e aQy 51}"Jz1ĄbBL(ĴdE[}sbBL 1tcХ>>݊GA&r OW}Qyz<?c2W>@L 1!&ĄbBL 1!&}LfΘ]k4x4nTJgtL3[cTbBL 1!&ĄbBLɌb c2cM$e:2W-45;!4:F GL 1!&ĄbBL 1!& 1 +T1 & 1)@LdLdLbBL11%!AB4k:AB &ĄAB111Yo iV0B؞oUAqGi=!bBL 1a ĄbBL1}LϘ4Rs!4Hgt̘48*z=Z $BL 1!&DĄbBL 1 %E7)~X47tc" @>݊GA7Z0*O4 f޼g ߘc ÔD 1!&ĄbBL 1!&D >&eL֘]\tƼ[XX#c24(1!&ĄbBL 1!&Ą(&2&iiTd5M[ҳޱ1bBL 1!&ĄbBLb@L f 1!&@L Lb c"cĄb)ABy- f`xkaGy bBLk@L 14x[cz{AՍhpҪtukpFipQ^bBL 1!&ĄbBL 110c}Ƥ#74c S!&ĄbBL 1!&Ąb)F_.F1e{W#&ĄbBLijq݀}L 1!&Ą֬W^9H1.Q^B}Q1uA23n̛X#c8` jaq֘Sm2?S$*bBL 1!&Ĥ$bĈ׮ 1!&ĄbХ>>݊GA73Z3*ItF;*0bBL 1!&ĄbBL h}LVɘ &gcqji=aX8!bBL 1!&ĄbBL>&InjIƧ{q 5̩41WƤ9s.>|B0\1!&ĄbBL 1!&D 1 +t< 1!&@L Lb c"cĄb^}# n2J:0ˣudތIZIk4߼2x:2UħS{ &ĄbBL:\sx>bBL 1.&NӭzōӾ5ӄOm4\98 bBL 1!&ĄbBL 1c2[dީ̕1dBs$cFL 1!&ĄbBL 1!&DǤcdi1YoFk8 5>q,tL1!&ĄbBL 1!&Ą}L@y &Ą1!&0 b@L S & !Y4J[ +=CL !bBL\ bBL >&6>UjSYoQr 1f:_zAoZ FL 1!&ĄbBL 1!&Ddt.Aq<bBL 1!&ĄbBLIu1>,JRUœRЭSL+V󥹙IClSybV&ÄmƤR+ӤXQyQBw$**2`bBL 1i([bBL 1!&Ŵnؽ[)cg5Θ7E\ü XcW:}d-,Ki)bBL 1!&Ĥˁ 1!&ĄnbЫ>>݊GAɘB1T4>7\٫JMh( | 2& QhTbBL 1!&ĄbBL 1!&1!cqMG0|٫I5ytudTy3&@L 1!&ĄbBL 1!& `eLYm*2&c¼fkӰk|`t#&n 1!&ĄbBL 1YIL `XaȘbĄJ &2&2&@L 1!&OAL7%!ABԏ!AB1q AB1dֈf>-C)wG;JíR-1!&ĄbBL;bBL 111Yc}g V Ƣ:f^l|Zp{3K1!&ĄbBL 1!&ĄFbڽ[嗿1))gJ7c2`3dz1wuQIЌ1YcTC4>s]xYL11B).bBL 1!&Ĥo#&ĄbBLW^RXcRп|-Cs c>ن8 2}h#cBL 1!&ĄbBL 1!&`>&St+qvq6~ɼ;jfL¼Ty3&ĄbBL 1!&T 1!&E6s˘T_ 2&m|ĄS!&7bBLk1!&Ąc 1+Ɵkɛk*k\:ΙҤ+檅J!bBL 1!&ĄbBL 11^7AFL 1bBL`  & &@L w=}M Bh_:5[L BX$_S( {V7ѩ' BPt/Jy endstream endobj 1209 0 obj << /Type /XObject /Subtype /Image /Width 563 /Height 719 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 849 /Filter /FlateDecode >> stream xA 0oTv*(h4$%/|X "cg`u"`F=ft endstream endobj 1202 0 obj << /D [1200 0 R /XYZ 122.806 747.976 null] >> endobj 366 0 obj << /D [1200 0 R /XYZ 123.806 712.73 null] >> endobj 1203 0 obj << /D [1200 0 R /XYZ 123.806 679.583 null] >> endobj 370 0 obj << /D [1200 0 R /XYZ 123.806 583.626 null] >> endobj 1204 0 obj << /D [1200 0 R /XYZ 123.806 382.83 null] >> endobj 1199 0 obj << /Font << /F25 474 0 R /F39 618 0 R /F44 651 0 R /F43 652 0 R /F48 922 0 R >> /XObject << /Im71 1193 0 R /Im72 1194 0 R /Im73 1195 0 R /Im74 1196 0 R /Im75 1197 0 R /Im76 1198 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj 1213 0 obj << /Length 1443 /Filter /FlateDecode >> stream xmVK6 WVzҊ"-iĝ2m+.E_i51 H(OvI^?ey֖e,,/ۤUT2YoY͗Z lYmRQYVIʋ&mCV:x햩-N"+ N;,9͸]{6e24I]۞Ύ͚&^y菻ԌD:+x)KZˌu|SƗ)=-ۜYOK&q`'<eY]5I7,^䙨d^-tPlKY`w|EzsGHIUQ DCd«6"RAJVMK?j8 L֔A?~ Ao( h~-a@IiULr6(d 5 A2WQH֑d0gv\dlio+o&S0K67L; vGc2QM>a%!DO2M~YF&/9QHtcU:(٨!2֐c ] Ԩv9Mn5qӁ.'Y5Vm`Qr.Pϋ$'}!|*ÈB@tEh?"?f 4?Ź1 96j&ʟ=n6 dW0uG7RL>C-@wvw WDh߁[, 褝u^lu^#:$>J:ǣK^@  ^G|h{uc<]!^1G3o*PcR[O|?Mۃ^WZMf7l-Gtt3g$Px?Nq#Y ޼8٪ȹ,g $q I"E8>=)EhC] Z@c7]Z6ԥ5 >ڙ\ uF2ȼ̍&Pa!EWZGbqdzu~ }T:c~COĊ'*VJ 1-`ܕEA/;RB/[— ΢s>Dy޽e8J0s`@:5l=ip%1m1v] 1}[F`WW5,T#P& hCM8Z`,9on8f(Y 0dygd8܋9I^R^NOqRmHgƹolж D~AFC }2t_&}$TWpϥa#V)zgWA; `O{qnLv0{35wEV= endstream endobj 1212 0 obj << /Type /Page /Contents 1213 0 R /Resources 1211 0 R /MediaBox [0 0 595.276 841.89] /Parent 1168 0 R >> endobj 1210 0 obj << /Type /XObject /Subtype /Image /Width 301 /Height 546 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Length 39574 /Filter/FlateDecode /DecodeParms<> >> stream xwxUۇ^M$z{54E"*R^A@*$Hm{ғd }q̙S)Aj5ppp eY@]mlDQ ]V}~^ŲMQ hBkچ.e3fhRBFՇ gkF+.KT6mؤ<ԽfC:l?nF+.1Ehc3glR\[֠F{Y7fAdY/Bσa-E2#vĎ<%; );;̙ N/(-[}fvNd!a;^s}Y,Ay0,v!TU갶5UBr +1ǭ:5`<7X sΞUN,aٕ[/$ghn]G}ܘ;9,uѥ!c(ydFЩS@P.jtxTNJJzȨVH!Hg:}t~ʆ[_SΕ)aK|q`5,"//dBeueoAdM}+O}> m"r7YA97WRھ,CK&b(b)TH(.Q,q#,Я&#ŝ>}񸸸ѣGB֭_+[rЮՠ:kln.Jz]sJ+^jۺeSs h&WҜw_?8x Ș_ܼy3AAIψիW;^4jzo7Qk{)yt,㔇Ν ڷN+E$qOԐs 4-'OFP IövuHVcڹsԩq qO.]H.i؄3i#@9Ѡ~8C=ooaP lEvO[ijUlf9Ȕ]lT£ŒBSV9Ȕ^` ]zDx$N88Aa!AN LaqL J}4ɄV+)H9XVppkՈ1Xgf#ʱY10I 9<Aه~!AnӮkg泺 P_c )5k,y:DM@ P獻 1 M剤2 jAhOL/( Ŏoܝ|2 ^d>saE(-Z;(K|1Es:l~rw0 }1@۬W*>CQaXz@ {7 ?Q(0, +IZMVb7bv@(+&)i%+ #W\i;- ']~uȲaE 8OA'ΦR_` 9VX6, 8,^`p^T11#tx<yw< g )eY@ЄlEgPnM ,=D&&PHhZIR(||0 BcQ#-̨J̴Cݮw#9~kv >#A :m;/Y~?c7b?̕Ġ2lslA#9hblJ*-G@ &?&BgQdAECVX x< ˲l -u8`o'm_A8 ߽{0pRU$4S<|dB5 r77^o>CQ,'GKJPļa Y]uEa3OgEy`)Xy[{'IV+:^KU? aS;ޓty$*%.G1G~Ӝb٨-2OhrJ֥dH@EAA`1 E0,"gF8I$d7ADIO!VG^X^G ??J%-(_TM, vPH:[$`˚ S?@Kibtn)^`)mP'q4hrܺtM~Nγ)דEzB 鄞ku!AY@PAQE x §ia h.XO>u_`JZiThkus /SBy.CC|"2!Gcq#)A+Zx#!duOf8//]b<*L&p̙/8V@DKI0wnn?~Ë>^^ma-bwI8A8N+/'Kaq[\#S[ZbF,k44MLfEPVkyzU.jΤ&ڵ gF:,M|r[A:ȃ:P (0XEx< 0ufkN#ubvb = RpͰ2](R vN/])V&B[MCu*HkR uAAqbєͭKN{ǟvnj{jøDzssB!.^+(ijUʝ{DM;׸{w:;V݂[OƗ0 (w8q@soa;n+!!kH*5T(+B< "pA jG{/2! WDiQIGV lֿ5Ux{ t5:w[.ð^͝;BQJVE6wrնj=6 ,|qp4u8rpN!tz8rpN!tz\?t˖-6J>WrpTIlllF0SWrw^(h4~ǎ S8FδpOk_իP-y~5B&d6Yd U}zژ4 #]!ЋD*p&d(ÃzDHm{sUk$IREIyyyvZjUάƌ4@) /{o VVXDvg|1 mb;獶 284?ShStXm&doI2]&F[do`PZrIT*M\?/OgP;Wn+0Oޜ :o?E0k WIs:7:Ʌ|=_,u&\}iJHoVQ*$~^xc~/}'M&Wz5VE1*w6V\tٲGY#w){*Ac`ch ucު}p"Qi´TaR ($ɓ'O&&& go8 fԠASώslѲlGZ"1?bkU]ўc)>ol1dUhzSHR3u]Ӱ~^7d}&ZxvgO7A5I6Sq31zs;`6{mRY4$b*x';^aiècuG,kUU1>cş:1f_TwlX""~q=zСC7L ̙Ӿ}6m,^8:: ]FѰ,51^]UB mtzI;v?ꗼ%\}~:tJs[jժUXeY֐~/mᇡXTNm,v n鿶ͽ}w M؎D/n306uN2s~Ȣ?}HD*IGRcY*7VejٜuiQdi'h>.ckiO+VeL-cqjXb-'@j̵4˲,P.re {s'ů}pRAIlٲO>dɒ%yyy_㸸Ν;ifѪUlNYv_l)6N}3ʃ2%HiZ^Q! = ryw ΌE8RME+'r7@ oKoMN.dACO29e#HlxʼǼ}HVu1e9f ZևUjϙ0 zJ|{zx[wRpeʘ*s7/X8AlR3D"xIIIvԉ$I$SRRa@=^޶cf 7- 0 F2T޵}"wM]_üyW}$`οE$wK %^hЦ{n2I~s!}O )a*S9 dq>/)Z{ p14Z]-<1|ԉjd)GLy^ᱟm7'|ܣ&4-f.6NTQuƍ(Zs9sB0LJQ\_7K%GۼiSe?x첍)$h,E=ʧ&2g~W>){Ihcأ!6 F0F ÍHIߧ} rϯ8æSK \܃< z w@gvȽjS'X@'pg$]8z&PgaG~߉NC[n}/^\thBlٲ˗Y; }݋lask"淳Gm]T;|fIlx?~㣂ܽƷwze'!mBnKw'69_R(T_ֳ$e|mdUïcudqWw2;Te#>Yu?&?|vCʉrǰά`TBu5n*r쵯$bEpAeW[([~O( >8ŝ;w6mDQԝ;w-Zhx<^^ ]s^xUn[m랜8ϻ\n%o2l8e>>vzSz~[͛mdY]$q7n8jj*??e˖Ƽ6s0UK@  rE>|>&LP(DɎ$I 5w G1WMʛpi Æ 6dȐSFH4uԘj Ϡo\<8bjew-#7o_B$Yƌ#8 !G-wP(ܺu-y*9g̘\Q>xtz8rpN4mZRW/u/88jC]Cn98\C鐃p:p=uA›2[G\u?TΠA 6nQ=, $b&3 tlHGaIZG16 D띻dxi'N!˲ Bekء!X%52* +G|/Y";{5T7'Jb88' bV(P@j*_A'oh!˲$bƟ"[rb$N+dMI#CK}ymPxLll=E`hDKt ]O􆶊hXPvjG+Ċ3 |>l8޽ϛ CE;*' 59 C3f\23l ``ىQnዶ!ܤXT']%WsVP= P FX`IH҈ y满nwëOA)8 08́Rf2lXP. `b ¼1cf08 >Xwr^=)"Eh74x#ʍC*dH6|?EPpv4 i]EfDnf5'gXe(I Ty/6Bl9ēX0+IR)HВ #z`BzhGWhV}!Aq ` X+V@-,͐8e^7϶ ߆J?AG_~|M"*6I`Ap FOE)siq XtѡB"]xXr `dyN I9́ob݄sH"PY̴h`̀2b,2ZX5ph)L:O8&x[xa`0ZViY@@f;C`]s4&2Y(K.a=]@X 0o̭Ct= 0H^1y`J7<14jfƂC;9C7χjWlM&YFb `7"K,{`Ahz 2M 8\;?I4&C#\ɸb))  H77.́BjIDfaY`Xh IX4/0[Yig8C"  K֞VP, P+X#4C a@dmY~]f7`o[j]gEiGA?m&;Wc@mr4#NO la@| p@PBV|sH/e(D 4 X*cmA0,C@3@3TJMXtI_h&i `AP'I1&h-}^ ^cos5 $ 7!p*^ ־ SG`t{Al6$'y1nk j0ͱ -Ƭ*wRgJu~+@iTб?l7-OaI0LS#Fm2\O>7/y4~26:~YVQuA]#I]eI{/[ _1$ݧEt"Y&%Pi7)TCzcJxHWC{pH*Lq*7wkZ.t`b+(ֈ3R>{/)OH6 gslVSy+z5z,V*Dt9@Qsh=^\Qp=O5J*1J%bVo4naN;uO"IڲeK WzΩ>󈰲EN,sWQOf̘M8rp{eXtQ_NO3zAh0+. Ugr_NSlX|T<"TVf3F (YTSd~µ{MX0jlHUgejRBD]f#NfBGp)V[' V5XK. }1B+YIxo=ʕ滋0zH-q(NjpcO &Du|/`)~QZe2KqrEら`2[V4L4Ih?UΒ3kF\(ȶŤL3tJtN}Wn\MLMQ鋌 uff(*cw'uXTFU} ° "Eh88 DqIrgQ>R1J`B!bFPU4&-GHEEF<]gxXcA'b7ޙ(aP5eCBL=._dyB)ZNE q' ٕKdKw`͜uBCbnȩ9NMC:B#\l|n.?L( iʀһ / ZU&5Nq}zp.,F$^as8n峂D X. T;k=" @.!x+Poj23,1r=ZE3JB[H H5e>gֻQy-#GyV2db(06t!յ2׮Awx֜@ՖDs+*6ncsxa5ZӀE^(,4YZDpt1AFZH#W;I]%"6+ޠfD~ۀYpo&,sXGI+P(<zul֦9s&.'t'Y˵pV6+– T UTᆑ[)2ʝO1t5⚿f*1_ Qu8~9>>2Zh21=gxӠS[{RKcP3u]Ӱ~Z{8 Iy粹 f'`{iiiF;m9c{)V'/:WccL{)oO<~)r'( ;&e/$WJ4|)Ds#OQqQ5ˎ=zСL&si߾}6m/^MwnX :<;Wxxx=yqͶ9W۱? [I+_s;t)_?`eWȝ=nUin_ߡO&0DnŚq^*.̓O ,/[e]-8 E K%˪7n,[\\f/4LAaOSLO Bὸg6a iƊu^Q>?͠q,:B `֓1Z($ͱ#eUasΦM(s΢E4 ի׀]miӰض)66vM[~R9%ۺFK<ǧOo)bV)7o/$q7n8jj*??Yb{mK'K) W闲s;[D4gϞ=aBa&$$ںi`~@ٜa1N40 6lؐ!CNj4E"ԩScbb\mZ4m 9Q7owZ$Yƌ#HjNtÑBp֭N4qh߇b|g&YΘ1WMZrpSi ˘ kfz;.3;949%Ɔ)!{ HzOɬ1AU~_\oԷo;f%">xNv -Z.Msrrڵkg}vAvrrj?KQKV._[_ٮ_1]1X_3|'shU㶌JܿAʙ2_䄛',m }nxQiʽmzK6>ލYrCݽ&+ҎGGsj|>bb/xCˤ`~xyXreG˪u־|""–: B׷w8_* =?|}+#W\v)ҭ"L_^ݺY(VH z+RX˽̻%AcعoOf-}XRS-*s?5tK翝&]+C`YAJeuUiiBϖ鵺>^7%s dW.6f*2(0U3{`\ڴPP,@ߓ.@,EJ,` 3nkz{ێj=pg6oC>9+N`#?}ػ}x`ho#Jf8ٱmG|0ӽT=h!~'Z56ZMOuJmrO'KyVܷ wXZ*#c\sPz!TQQGW}/Tf^IN&nۜxّ jቢP*6PMc^3Cg59kjY߿h NGdsM+K|}}͒:P:=8lp⨆&\r188!tz}hyÉp!C}44N>p=98\CSCD(l"p:p=O6(rYgWyׂccC'7I -A@Mgpak<"߰`RM Ӄ},`2e7I̛G[˹]ڊVꎜkQ'ֹZ˯eev_m,vh扢ltT\@S_g' mˡ4eI+2U?qBڽ&F,5x6~$NF+'& 譬owVe+{bg=;*}KfölsCF7M6ʋmvvi 2qy)6[:c5+r1Sirp;_ҵ8+ <p4Z|=M3B2e Q5˺dAq #IIh@Tcf 4,Co-7ƂfMrU6)Q/7b@%K8Wh_*mGh,T`K&*#q2Jd"4׊Y¼:2!tӞ?/fG'm_\l܁#<.0jۧ {pSQba t|ݩYsuW[͵}/Q3oVj&n5J6\>3 Nͪ s*M(/G+*]wQUPr4SB[ Lr᪖e :08Q?Z]s:ƛɟ4s'5iې?G**2:SC500 :T,o!ai'ZkuhV)urVֱZ n(*xJBTCg5ؘoq﫪BQ"P_# DI#Y;hPRt F<(0=\,~3PӔw_%:'MQ/ĂZV'fUQ'neU7A+[Oo ~{_25oU7 oA#< 3?V&3) y:ѣU4-TSN۞8aܢf6\٧W1|f s,^(Gsr*I2l/?&`Nu!նڲI=Qa<>sJBuĽy'X4쥌BUNǐ`AFZH#K]eakxJHj/L ]Y&%0u̥7篍 "eUW1j٘T_鐃p:p=98\CSR΋)Cq!tz8rpN!y*t8߆2}HW_m{]{ ؼ?%K?m[z{Fu|={|h?.`ޥ oѷGW5#'ԇK{N~a)?5_m-n+?pSJ2rojڶd`䁳 Ö&g_춅w&rNxkꗷSr@ nW:ކ{/}*WJJ΍]:~und}LbFpA8 :D0ݼ: 悓K27vAa61t=]?eڥ« ijUh};_?S? "p",P~1E֘̿Cl/ߌy`.z[cH@߶q;iwm,]hˊMYmwd}H z?w~ƃ<lY7ٚn;}+0fH@?-aycoN[i{0(:{$n;K>{bvm t~2h"%. }ĴURsi"cѐb)L7Qo/ƙ<x"}yMc4v@ pvA>p>^՘Ryƪ5^ }e==@10-@]w'm'_x3w$gyc0TS1e6s^*aoO|d6B&ux(tI"ʤer>f; sߪ.H^+H~]^^w5xӬ>n/NNu'{ 0)O=oGYypRlmv֝scEgRog[K l"D>QSE/ߵ"gG( MoCHVx>@ؼhXRS}ʋ.tJ;?G&͕MUL?R`z0o=:5QABV§ m6έ]Ra*v."_Q@zBKԢa.Dcq,Z +=tǐw_wr[:J4˝: RT,ϞѸNWK+H>N3[n>5ysb.9e՗\ԶSعӔ.mI**1\^EQ@O rn!g,qxR)y0\՘(xCweLݧr4%fLKk&a]E/ EQẗF:<<:38ۂGx]V {dcZq:j?ؘxɭWVt }Zq<Ͷ׏.˳ƥ:ex}o0wP_uuQίv j=N싒@H|١o|s{Ur~Δ +#}}|||||ⷔMig~1c^,\~7t^EOTck>3qgz>>>C]i!jCDovڅ@Eǃt@8C "pC+gm bTДp?BNKEIM^0x[Ǻi3 X5kA8%6-3m ;WxAHt=|}Hp;scCBBCw"h-,qL>#|`lKYNDW`wI4EEW/ӳrW6-3mƝqLRfN?B7|WRS)\uCW?r* TQ?޽{ݻI׏t~mz[iӢg ZABCM̦U{nU'=ӡuNeQaQqEġ̢" ]})kLL~eC31]S<ߘvo;PY\eҲ;ᾂ0w=q9/kV?~( J!֔EWbNnZ,3mFl!8\tV]a8VW7P{+s3W{[wjYi4Тد7zhN~>y|jh;4>ޟԯǿEwG| AA1덃}߳>]*ϲi{i4jQK\+4J'Pe|1ADp[okm*&[g=Aq西OxkMrFc;BI>=_{[$92Ԩ?vŐ:1 I/f(mґʅ^(V;67\LGhg͞XD-yϬW7e67 5j@ yFT ME)kV7kh⣁K1B~WL:~Oßbki[rD\gЄO _}65FM?}1j*==mOlo~{ o]1S Ȋe-:2P& `C*Y^;Wxr!Nmhlk^1ќ.;g^vglܲu03ԨAG::HrQ ϬS>x&<'fk#gVWܿˀ>jQ 5l_ 䋁@@ HA:D !xǃt@8OcE vӀ!h[@C "p< 8?D3ĆӃAC "t8miHW'zwHy# ;ӌ{ Zv <~D:M8gm"0ZvIzN`PDu 0C~WvR'N';ī_Lca7\,@9+H)ٲS5 {p]47#ԇ4l),dXk1ֳU7VIrf(kc.rDؖ(L.aC51h>]h29ahDJޮ'TbplTa-Ѕ- J,w 7*\Gb@G XM {3Jbq% )6,޺ 6a.h9-{w dgƿi,LК D"ܰ[ƑC@~5vVH1^+їl=NsR G )Cq@kS.H07SOC\,a)"tc6/WiVB6dB^CpŌ@iʐ^^ iz7^W <&VIK57%JDh&^.;MLXOӯ_)&$dƘVOGNޔT鰾`8dq ov39:Dk鰾<7i:A=!pse%)+~{{ZRDzĶ6>:$ߚFa|OܹG;Mhn+x({夦 sV93 2}g <@8'dfa=-Yi{&rfbFd&d&dLFbXO.uU/BS}=go?y™]q1Q3FY~ϒ{qKջ3#rPOK_RdQ@Є><>M#` cIo9P[ȂSαR2S})EcQ[wME0]]ΰ~jݻ%ԉ6q8MnQ f1 0`$@.p2û_xʎ8ľ_a{mi,H`g[m pz$Rqq؟bvzŎUeMhBy(^^:uxh`@pD}ZWočecZ0e$gg߉2._8iUڠ&RN$u]fXw,pTkRrG>={ڤvNk!hbu5X ة,cS=Ə 1YlݽߐATu-{bOhH¾;.WA'& '0q +h2_'ܣ?ۈ&ܩ[Hb NA1@=ze}8gl\Q +K.#|RR=+*Dc]ISYN Dꯌ HRG:)ʛ\I!gt-8sE_ xG8pVm=Z ?oV)9DmIac0mpX.|s D%g*lns 緧?SztQՠY ^El!BRՙX_/EMJ6'=.)T\ FAA I<_{cic*pLJ۫f Pfb^뗫Ǖ H;aqXw tI"U%S=NS]iJJKFw?r+ʊӭS+v&g]{ Axt,cHI/^HJQ{z&t>RZC0x"_\a6eJSʼOt}ye ~3ۀaϜtPXD0[qbSޝ|Iܜ%y&㱫ۇ޾6~JʇŒ5nc˾NcNջDǥbXNyO#cr,"iʢm:isiii,ZZ/P?)`5?9o1 GX *,if;PYKSHVx>@NF`o4<NL5^0RDޤ\cx* ho--j.'\FǛs 9 \= Sڑ#EV劁F$(ۑX+. (M|#.́Tx$d)닝z͟z @e#F}OuVqYI/677u:؜w]pObpCy,Dg (:W\ץh3Z#5Vi c"Ze8y8f"\LRJH1 'z*Ռl 7kGN~KG)Οsc)W/itwOq6NӟZ/4Ƙ1gIE<ϗcUqY':+ś1ILc$I|v L3vm%L%^b2V0S(J.p)FHNJ@)! VP^j#ʇ݇ێ$} H?z@U)WbXV?MldQD/ N̂Gf{sH)1֞}S4it0|VbE^XqP/d mF/G͙]%\l:d!hnBOYu{t.0ZR c÷&vu8_\g@1lXE56M2OWzDN3[9yɽ^kѓhSIfZnUE[v>D]* 4iV}jpZL>{(?W:$Y)w.nVLx ;*⩱_S&Lza㎮ȌE?r2.&Y^7nxI/}eP\ NJTtߎ7?h.tU%Etb.7çk9%Ɵ7@ƭ)c}$vos '?4|z.geXri ]wG~#RLrݲϕpt驥}cGFpL`2Tod FdtiEk`Rr<|9:x88xAX^o]#3FN~P[N待dTD8A>#lg4S:!8ړfS6ZD 5#:):焁T) Msд-F -{tzkZQs<s|ZDuV3}#o~~"gC xF~\+đ:$"))IF A:4ϫ7 o2 }7os0bv+FrvR^Y3׵3b #g}1oU^da" |3?,ۀeQ"1Sx]:B1`+}xJF˞U;u` xSY-*N^Ѻ=:ZD%t$3[b6}_% äSc P]IH 51`EMy{1FvǮž5aG dkžylTᑧx[߾'ԡX,NOOqrr8?i#,rLDHAH@y{|#8G4PDiy+bibi LHEGPtKwXwbHpˤe{w97D3}DhtaQ~شpy+O&׾You"B1 p@KYkv/|v&o\)fI^cͨ膡4s*ۭTWA:ÉDE]F;9pA%u?}U6̘YYwgJ.zDA/)1Q:ũD^ f>Rs5oI⁔BӮmeFaOJ~cky}DTO? )j@ɍSd"lfqЭuwL`"1CUlatH߇c`fݛ_6i򽹻8-Clx5sOګT6dz N(8T*nh=Ex:khD*rhA"2UIs%:%P,4]Pd!pT&쟑.7sF#WY M G,c8VMO?K* x>%Ƈ9lPhHGÏ\M).YX"Yl8Q@tI#(0HC}5u%L""@,𤟷ٴSmy[~._2j|k{4%ɵY2-*H3. JgX׎s{.SǹYU\x%6xЉeׯU9cdJlDRߥO\B Sܣ]ƿ.g-u u(3@4=.t{okJA:D !x_Qȯ h "p<ȯ ׆@ ǃt@8ZvـAB 8 yֻp"rk>:U.yЍߤ a,X{!^bd  9b)OH%#ƺG0O[f5ĉ@.Ns& 6̉]O8ب'uD,Ot QՔ=#^c}":qV x\8K!_b2PLJi[so?T"fg6d碚 ᤷȘEStX)>cD;D$9P8/}J..zs78K$"΍ڨ5-R-r $c(z3+N+.H07?34UrB I1c>P2BZdդ@zRaM<G--*~J eӯ_)&$dƘyyuNUr.q"&i#8E*Ect[K&KY8~/ODXoA$2P`B-83S]O'UH $—^Dd.UWs)JRBb$uμ` L10_ƚ9U3eϼ>Du Qǻ hwQ5ƨA``R7|+ +Jcn*U?I \=Y:į]~mp?yu~\{l%=53vnQm.]鯪<R::<6L? ^0[ 1z<}q9V ?{W̞=z}f5cWOg7йʉl, :=f;HxqԽrdKo {mcyD&sM|en .Q)[ yG?D}j؛WVn !r0QM 8 ң~xb_%cq7/Y&.pDR94ռ2p28KCig>Lǥ0{ Ua:7hNN:-Dt"^ܰ}c GyɭS3VmtG99~'{O\n`WPMuP4kxkxKWTɲgw,|hLRяkxkU2y>g>ӄ4S&$\>+SQpJ},NOY_uF~bsƻYF *# 0m8dZ"!zT)Yi+§^pRE _y7ke]u~duUj4Gn4k̍۶UU4Y<puh79(Ꭵ mC "p`/owĸnbdy*ÖN9&OUn'kg-y,MZ0hݾ~SϤ{˛`3cG+t&4'..!H1oU6C~42shA8>}ٳ7nzwa^&V6펥Sj>̐b)L7Q=ɷi,HˆlHL8kN&~DÁ]######_Mգ[i1CAdRO>|3?,ۀeQ"1Sx]:˦}]ȱE{xܩJ3 V@_LrxX]IH%E'8,v`/,I(VZbqzzzNNqpOac" @ @ Łj͠mobE 0 ڜT儧 υHf,(bw1e7+yL7 @arnŌKy ޽t_w1; Nee-6}nY g͐js[:J4˝: RTRzzmJ*'Y-*XACѕ>ߦ $|T`HVqPDbo|Y:;:iɶIKC !=iNOfPP"ڷkWJ^rDF}5""ёxZ@,{zzzzz-n@A" $Q$|TpSk\xHHcl 0VԷ;<';:V3CȘ83888Z;G({͚;pݺu lJWZQVmJ~@bǃt@8Z|;ipd&h4"tF  ]irr ى*)]tvc {0miH8?o1K9R!^bd  9bim^@d~xX\wNee p{y|Pp"GE8:İIssl4<sfZ,\`1G&\|vKֵ\oыXK!3f 6=О4mKVҐ #b_~zRڐ'4&4:u ܃eH Sp% eࠗ6<]~xehjBQ8/0aX:$Hi[URmS=\!~j!bq 8Ś-'.fC hzm~!vzT :Th @?+AbRhV\u\6O7xƸFo9.]צ]WuSsI:Zݖ6+  J;Gzbɶ39_6q E,LD^4 *G|taB[I w`2 S #72\39 ' z͢uz!Jb9~EzH%EDm 3i\:"bmN~76i~^[p Lz$yz<;5;E1}[*Z|93_sɎ cZxّȲs&@=3{`˵.>'bSeQ} \QV0tLE55OcQj(*UFBV*$ pvzyrp\|U@h:IEq. ܶVO7Iƺr*u%iBP$VJru2G\SCf&[Q$VݓDBqɳymo-U5]<1v|DN>kYdz; @0M?84Ѻ ޟԉs;{.wPt /::ö-Kv>(|ܹčEme=qh;m#(-k_wլ>7z|Q굗v+=Мa^[.nP%*?T}m0n\QJ$.yoOIrg?4pzz|Dܽ@ oBJ*X!a^Bi`^B!ulf>MM 7G`Yf϶^|k8FqTrPUkd}20Ki5Tcr9#P+6ܶA{ׂSRy%~ǫ']*ww}ngEOID) MͦŴ8ї*->-۱k~>0sc?_ۺ`$;±nn4ak{rM5)V|'N|z C(l: ^t>HW$kh֡IJ"!R kQTkI%dH3^Ȭ" ~1>ϵ^=Nk Ά]:ݩЪ =NIAXa"VdSީwx|Mmi)-U⍚)# F5̾ZT64q_CI?ٲ匂UKO/b7ڬ_ĤnYTlWMhJMtW3RD!Pymɸo/?}5|a竍j:<NII U:KBﶜ%rC(,ڌFcj\=o?t>qwžd`}ytk~N=[~3by7p.l 6jym9&(,j,|2M^[]b66n- 0K?>D(?$%fyMLd!F|C,RuP&"kr2L:D(sZ J/$ U$uPmmm\1<.EH~X!a"$?Cu!B:DH~X!vtt 1XB)HɄ wC?JB{ endstream endobj 1214 0 obj << /D [1212 0 R /XYZ 80.963 747.976 null] >> endobj 374 0 obj << /D [1212 0 R /XYZ 81.963 712.73 null] >> endobj 378 0 obj << /D [1212 0 R /XYZ 81.963 471.888 null] >> endobj 1215 0 obj << /D [1212 0 R /XYZ 350.954 393.327 null] >> endobj 1211 0 obj << /Font << /F25 474 0 R /F28 511 0 R /F38 617 0 R /F44 651 0 R /F43 652 0 R /F48 922 0 R >> /XObject << /Im77 1210 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj 1218 0 obj << /Length 2035 /Filter /FlateDecode >> stream xڭW[s۶~`}^#I&۱:JN0dqEeWw =m_$`~{_z΃9NN.DpΒ dp HH&ę̜H ~|K&eH.Oo'Џ7ba ǣ=/Og_\`9Iwrs 1>wD"X3ܕu͇rO~:⠄3OX=g_;9v ҇u۵;И'eɊC&f J7: a`Kܶ,:D['qMmi@r%q7<K @!Wp>^=C$I֝{+ &a2O_P3C19sG1Б>g/#v7cSR FxL0I[D>l:vvn嬨9o̩6B< ߳/`ƒRz0߆AYC G#Ty/;,Y,y̡[0|U1O >S%4>Bn<žh8sp[Z54~\ތM_ x1dLbտ%Vz/W*PJXE_78¦jW œDZԦa>lv1 7_=V> endobj 1219 0 obj << /D [1217 0 R /XYZ 122.806 747.976 null] >> endobj 382 0 obj << /D [1217 0 R /XYZ 123.806 712.73 null] >> endobj 1220 0 obj << /D [1217 0 R /XYZ 123.806 667.03 null] >> endobj 1222 0 obj << /D [1217 0 R /XYZ 123.806 546.488 null] >> endobj 1223 0 obj << /D [1217 0 R /XYZ 123.806 397.553 null] >> endobj 1224 0 obj << /D [1217 0 R /XYZ 123.806 303.464 null] >> endobj 1216 0 obj << /Font << /F25 474 0 R /F38 617 0 R /F48 922 0 R /F58 1221 0 R /F36 596 0 R /F24 476 0 R /F54 1165 0 R /F41 649 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1228 0 obj << /Length 2305 /Filter /FlateDecode >> stream xڽXێF}WpS@!ټz7ub{<x lI)R"S]E2{`"ԩjr׳~hyo]/HY8~Zׅ;ʙ/8߾z}9_(4-77u7jPyv?];{q=eP3ԉ7rsZɍ ve{*$:z#|?",h48@ In}w|cܽfn'"H֭$o.Y/6@ȔXݶV%G ߠ;)ooIr3`O+X/]$)b3;A+Ӡ*qTadCeǀLpTt G|P \2WVzER'S{Rpꦐr3<ӷ>Ɉ{sa1C1-fX3Do?ڐgH@#->ƕo T7{_.\g֣릣,%] c1uѥ{`&1<>>ہN"ݱ>/(w_u7ü'g!Ln&|2}B(:z,F,c3G?ꇙOx-+l Ly:_bn7(%uzq=,8 endstream endobj 1227 0 obj << /Type /Page /Contents 1228 0 R /Resources 1226 0 R /MediaBox [0 0 595.276 841.89] /Parent 1230 0 R /Annots [ 1225 0 R ] >> endobj 1225 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.823 567.055 154.239 579.954] /A << /S /GoTo /D (Item.14) >> >> endobj 1229 0 obj << /D [1227 0 R /XYZ 80.963 747.976 null] >> endobj 386 0 obj << /D [1227 0 R /XYZ 81.963 472.985 null] >> endobj 1226 0 obj << /Font << /F25 474 0 R /F48 922 0 R /F54 1165 0 R /F58 1221 0 R /F38 617 0 R /F41 649 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1234 0 obj << /Length 1468 /Filter /FlateDecode >> stream xVIo8WQAiҸh! Ycڪi{"ev@sE-[ʝ+o烃R(%e|PW0x:Ѝ#VW"8Ϯrߊ s]b e6g0ѩ%:k Q_#7AY]ٝ0U5I/@ك4 H,\,V?ը(FۓG fJJQ6ѝXV퀊P~Sq~ï[>dQ~=]`ǨL%1۩pZ&7\PCLxu×ٺ=Ab p9'@N<ݣR0ӑ.}uS禪f 6wTnIs4\u%R^rx4Ϫ j.-4Up'-8> endobj 1231 0 obj << /Type /XObject /Subtype /Image /Width 322 /Height 338 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Length 19348 /Filter/FlateDecode /DecodeParms<> >> stream xy\ڀ$!BXME dD *BhZjMm׫֥ںVZO(Z +} kd;7LH<09sw7d@ ]2 @ ue ,ۛbbYÕ+ )@(9@_*]jF1Oݤ ‚ z_pxNw̓ |3NTTѼYӧ8Ĩm۠SՃ2+bk}k^T!E*.J]톞_gVPelȯ밷gE7ct*C"Bب׺IXiH  aӎOMN+W "##17y՜@2.Ƈ.2uu mb]R"F DZ&Auu ](Ҫ.T:m1nOV PV1rs |wOGQa|\ɓ'QTBET(Bwޭ~ S˩Ts^CQ3]mcAքs1U6߬+͜r2$;=AH3u1,~eb甅 _ P֭[nݪNYJYoEEo~ " &T "6Ғ"Px<؈R(׼5P:8[hPPT#RiMSY 7=mp4v;X]!XBP(@(VèP #Pz5 Z30ѧQ*zBd>FFB!JՌ5f{ooDbj'<ӛ=VXno:kO4XTvҀT*U3:rE7~Q5N{c+kASX N`3vd 1kԺeFTLs#6QѣFΖuY%}hF%TfTV46}"H4\(H( "H\%:4~㰁VT;}~ecZx{ "HQGN׳7X婯o(@*oUfV(nu~PHED=?y> ~7؟ǣU:f A5L 3@4 Mv/~&<|S fBzh شT\A s~+9U@b)[R( {mQwQ4l E E!F ίo> z52{_OP AQ~mfodhm60311%¶n[[ .KKccI .osUK a{9,Qrl1煙^eTPf̢ŋO4Be>@-?ՈJs=o Gwdah*@"54`5)z͹.n4 shRv8Ab}?ʖ3|zzzz% BՊ:±WDR*hT"J5h=#Q;ܱC ΌQT(K?Eb"l0dX5)+飨ٳssAGQ)jm-O2~FLFL-ϔYmҊ'O gyST5[= Bl~ MXFL3AOod]*<_k,xFrz[)Jm]]:zX @*^;'7vH[l 24@`(oLdfr, څ  @ zRT*D*H][@أP>HMPʰF"쒒N)ll~Ҵ[*66켼2OOBQDB6;_{6ItcPm ՜psp-f ꉋz"pgR钓,y39o:W0:P 5s Gni5@( & Yt>MjDѤ@JQ$D{ҿ|E2;A0@.X z(]0ŽƤ%7wՉ06]ȐAC4*BaIhz/)cMEԟ/Em۶{!r ]t=nsݳpAtZ]Cn{{...VjJ*xyJ(sNP'x Ԟ Q*D*) =~NG20-mmbB4""[[y4ޡ랙Nut4'NgЪ7y2z@t  g0H~%OFb?ZT e>CdekR1Hֳ^1tvI?Whvn,V!ߍch)]M7jj\.iQǻX;I;8H$SSe`E 1(];u5 /c*B>AJPhTH)FRT EJ WrU^LtSbxMyΤ7JZ^[.>5i$BA; f|,4f1;E]|JAT CLܱ&Nk۶m;tH8Jfݾ]ngg2$[+\8a}G5 Ĝ;wV4e|b泺:@^~Q, f)ohg0Dj_!Cb[_?z镤\ 4G|k@WWa]o}n17gܕƍS?\7SYOmzF4*H$ E8hAfϗ?jN΋,5q0P<v#K$Կo~;-/}^HO 4I|սIkQy@LDZCd$ Gb͜9~xvS>?Ap1T`tyay rQU[={<߽H}B B7pJ2@tXy`C :,cDe ;_<==dpww/**RfFƍ1|}}> SCB2BP$(* ݻwtsӧ߾}}ii4Znn.^T?MII)7nٽz+((/o~}P3Ȁb%$$lo޼o>5;dVTT\jժׯ ۷'HNO8؟wuttd2??/ܽ{KL 555| ,ؾ}{HHP(LLLtww0aW_}XdX,1cFc733p77^^^SL9y$6TTT}W'Nz0DhjjH$L&_EQW^qvvDB0;;ѣGDdڎ;!NNNncڵk,X@8ܹswl8##cܹ̙3˗P\\9rŒSNUTT:uJ^zU1BqqqYYѣC޽cffVXXr]v)?#–.]pBZZZww7`ʕ'O0aG}4eE/N>*?G} }v]]]KKGHHHNNNSSL6mdw̚5+;;[$IҬ9sG&((ӧSN3… 'C? [lqrrѣG~XoQQQ{>\pa…Ǐg٫W&o`0-[FP;;;C~``Bt+ >---U'T`gΜr 6<}SN9;;Ϙ1Bl޼{FFF}ߦVVV߅d2Nzڵpz{ussÆ***,,,rk׮x6mRb7###W`HRlN8l?nfXdj`hh&JKK'LөS BPXYYN2*mllP޽{? _t}Ƽy.^({D1sL#jKKNRSS3?;NIIQޛa؀uzl7޸=X# zIj`jj]sT*miiٿ?vݍ]Kߜ4Uzz~ _N:5 WϞ=믿fXO?sݻwaG*qڵ_GQT_ *++kkkY,։'k׮5jÇUK03??E{M4뵵|򉑑Ν;Qeꤡ1mll㍐Xmf 9gٮAx;;;KKٳg|k`0|||Onoo+Nly\]]BCCϟ[zu|||XX̙35xkd`cc3~x췥ǏD7hӧN2E(}kv*&6A_~ 6 vVv*--mhc>R_pNB099Ν;@ bZZZ޽<'Ox4߻wzڴiÝ 7nxB~R*AOOoŊ/ v&]֪+**H(㜜 &&&j񪟟_ttY(ʚ5k;#AR٣'ϟ?&X};wnbٰaÆ ;# toMrc @C #}}}'2eK 'ÝYơaϦc@)s6a Y<HtJ5!12@tX3K\P@:϶ w2PTxHie<@A ey`C :,cDe >>VVVK.^ ޘFeee BODr%s# {{?xhbe˖%&&>|'%% M\0JWq3gfee[KKK Tt:}ʔ)׮]߾}w}jaaĹ,<<|۶mيZ]\\ƍwQ999VVVϞ=DEEm޼G~RSS~EYZZΘ1XvgϞ-?,ɓ'HfA–(_~۶m#\e||<޸q#|ŋ*ejAAA7nBPx}gbpuuΝ;ӹ\n@@񅅅l6wݻwwܙvc644Xbǎ+W߻wO믿Λ7<<<|ٲe|E~!2==EEEW^=vXYY|kbܸ\.>HE2_5.qϘ1ƍRW_uVqqѣDDDdff BT~D"aX VZEPfΜ曰eZZڒ%K<<<ׯfFFFHHHhh(ܼysAAP(۷ĉ/^b;::JJJahYgA-{zznjooo/sOO2GcfL߿<$$$%%EOO綾^§2330aB^^srr Ws8|˷lhhBb 5jW*jgg$>gDŽe!B[<}tٲe</&&f֭S1L> c_j}AD %.N8ѣ޾nݺy&~DsGfff.[ /p8ة/f_y‚3g`oo%/'. H$.+Ed$,ʿ\'Oo޼yʕXpYY-P2"DGQBf̘q)ooocjj睃.]:|TT>3L:vIj<-###ᇒc-ϟ?u@wލ7׉>}+))b᧝CCr.ql$ahMnݺ6:.J}r BQt߾}R9 wuu566mpd_p®.gg \rEQ –nDDD@@@XX*F;;ݻw;vvvYYYVfBBBΜ9xǏS(]bnnnAAAHК7d0nnnSLqtt\x|ǎǎ+H5D;ה<pm۶effOjj˗;6!Eȿ|_6466nذ!33d?~ٸV.))ٳgO#!E2 H$ֆvss;t̃jd#P p@tXy`C :,cDe |3SSS\=(t:'&&Ʀܹs &M255MJJ${;v,;;fk׮JGG 6D˗/򲰰OΔ"w NL~B?ۋ H/ ʢp>-a3%=[ !' a-}}65??_~Ο?9eƍW[[Kp?!---PH)E<201qvvvHH6,o"E+NF.Bl$p8:lӄs'eWOOwh4 үEFMM3%ȝgCSF<\P%?-y3~\z-SwYRRR۷lH8GsMOO;;;m6yQF-[ѣΝ;wb-ѣ۷oC"q NL $V"ieQӒ4_#^K6 9SNƏoaazj94iRRRҪU>>+44;VmHgCSrB @j ظvڶ6EdQ XƐ:1*:&3jjDǀ12@tXy`C :ef׭[';rƍl6_NNNlF)B$ɎquuŻrss*jdNWh,P=<(H.]Ν4iX,V&/_>m4y:Nj:>eʔk׮a޾}ٙd֭[bwرiӦ>ȀbdM=򂘗_~Y,{yy"lvTTԄ ߿Frs %h8::ٳpzzztt469;>^pS ̙3T*ݻ=3f y~m5}c@TΝ;ӧO@m5qVVVTTԖ-[k@F{6=[>A6m$o[' 12@tXy`C :e<4v2+呗 /J6~W3D2_|1Q[^|y$*1n7o/Z__'Nheehhhزe CNNUll,taJJU|"|)&o>''c^{O>sƍ>{n,oQ_7o^yyyxxe$ 1~ᇇ*//ݰa +VرcGEEʕ+ś7oNII)))?|0GQ"a}޺u]vcy睤$SSӁ,{9ąvƌoooĉ/^b;::JJJ?mٲ?ŧ e27o.((xΝKHH4iiRR'yB'FǧSQb˗/򲰰O36mQuVްcgg PT;;&KKKԄ7055500hhh7}V__ \]]]]]SUB>1pCزۻ\C {c̰s+W87&4SPPp鮮$&iDDٳgo޼ݽuP=ϟ~@ ػwƍJII)..noo߲e nR$QB>1p}*Jѣ۷o.,,TbB Jnv 9s挣ŋ?NOhWWם;w._|ܸq\.w޽޽wޱ:|0`ԩq\\-,,V^ H>B'F–ׯ v_~|B 3@jj˗;6/^|-"*jA  kJJJgjZ̖>;mur 4\nnn:Ю >#MTH隐0I<==}m' 12@tXy`C :,cD6:=ܿ0m3r<++Kvww~^c\\Cce˖%&&>|'%% wFa`\\֯_okk;},kk>?{la"$$ѣGY#|E\...ƍ;r.OIQK=^e||<޸qcZZ`EΝ;fͪp8~aZZZ^^O? ;wLOOrF..K(`}*/{Ν;n޼yy[jU^^?rB\lYOɷy0qq8$%–x999=~.++ſ!/CR^CCr.qȑ>|&IN<) P%{)ByWdd?PRRں~[jXWW}bccAc\\+Ӆ vuu9;;/Xʕ+ 3rّ+00wߍ hR"lc>cJ$D+dd1D.Iii)^wm۶eff"..-`jcc 233Lǃo S H$-!"׈AM6mڴI-!O8A :,cDe *322hR>wwwY .r㗢(UUU$R1BzM^<׭[bwء2$k/wԷ~{ѢE3f(..r:4аeammj*>OC6*lȮwX8E6E[Q ITP@q)u #E+>*@fffXXƦjݺu;v*H_f S^/ (gXXXVVMp52yJ+//_lD"P"Yś7oNII)))?||mT*%X䊸NE6eB|O5*gdT͛7;88x-CH$\.BCE9N]]֠xѢE}ʷQa L^Z>`={W`ÎT`$n* Eg>*T\ G|C#D<̙srST#YOJJJbXU|e)ҕoٲAjb6"Wđ8G.c7GExђ~W*Hcll7WWׁ*7FKrÇӧO^MzS轥pQXt\/YYYWNJJ.kv5)-55u]$$$|GE^1x$$$$$$ hOOOË y`C :,cDe >>111֎ *J$%?kuvv`!΅liӦ;<*744glmmRja B&ЄLX?W򤤤x&-7GŃ~uHī)"@baaaIzJ ]MʣȫA"@QUZZ{0^m۶L봫 ,CjllܰaCff&<~xpp0y{mp5 $ Ce/H{=jITAAM6)z+贫 Ny`C :,cDe ZDKӘahÁ27r 4v؃bcpVdpX<ȈFI>sE0YâTUUL'O|F1ٳgc&L֭o;vPtSLv(~ѣGo۶ &Y ۷/55֭[oߖo'#;RޏZnݎ;HЅG!d)VI, (gXXXVV轭3|?x𠨨իǎ+++MN@HOO_|ŧ~*OFv+77^v.,O¹ q)ZxiIfVQ*P&ϐwvttTWW766)Cv׏3&??޾i}8ZZZ$# `N/y; qA-a΄HR|$٥A/77FEEa ( Rbbb>}l2u~MN㨸7&qq9sF#..§%ui,,,Gjjj(c QԞ|.!5(h)Y3gNff&"O{{{++lR7|`M2q@79]\afΜ96mRdAyy.,m?|r@+H6! FVVիKĚ]Aڰ *TC A'@ %e wI$Z ssl$n=ztq…K.lff%Iqq"TWWԫ2 ùAeeemmmgg'EEE[ww޽{\\\]va:\vRRRdew(Κ5+##֭[(>>fff;vظq{NNxn ~A۷o߾ Yz5&USSӟo >0<7h?ZtZ;{cEk'/Dwіqll6|aAtX%B Z*ϩ}_90to b*;D!.cccc_@ 詆@tXy`C :,cDe Oe˖Q(~4##cɒ%'Op8|I2R(..Ν;>0 B׮]cX `-,,hc,)D*(+[[[lĄ`L'ͦR)f ّ$joM>kF> endobj 390 0 obj << /D [1233 0 R /XYZ 123.806 510.285 null] >> endobj 1238 0 obj << /D [1233 0 R /XYZ 123.806 445.075 null] >> endobj 1232 0 obj << /Font << /F25 474 0 R /F41 649 0 R /F59 1236 0 R /F34 1237 0 R /F38 617 0 R /F48 922 0 R /F44 651 0 R /F43 652 0 R /F60 1239 0 R >> /XObject << /Im78 1231 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj 1242 0 obj << /Length 1505 /Filter /FlateDecode >> stream xڭXYoF~ׯ }CmҸM\ɬyK2`wfgu$'~3|s,WPtqե(c*еϴ5 q\h97j0p|q_C3Odw13[cFyDYz+1}Pt |NHfc[0N/z>BWW\-,y₂pFcuXcS}1RhOiduV|.ƴ=vF?6hPAqT'MirD޻m VMsWy2D#SnDK^ˢjIg! xNŅOf'i{><**bY'9iepTh4 -9FT/b} Qea. /2l7܃Aɢ233,+lRd9/-SPE&T{e}GπRA)(",D]}MSXghTstCi )d'c{='cZ|ov1/RE\PfEu#7r[5 (# $nRV!f Ma0Mغal؁gCj2f)x>My |.<‡{&QE 8@֝Ë9+l6-YY&D>Pz1ux@u;@z[ܟeI .w/%z1L'O~ ӔŲ;^% 42BY~o\yő{9j.يL Zdl5ŦŠKM;.7i+@f3@prqJƨ54]ޒ?dYw!\l|PZJ++Vź&;zr^]d<85ݶoPA34 $YoK<Ek+:>h3p<8x ktk(Y[B]Xy >mo`C Uj`zjQs^RhyI/gaLZC[ խ_Ӡos܂'| ]%W}qk4R`20"1"eIX%Xq ~,.+h&^~.$ϐ e; gX  Gm`&D׷pQ-qHUlE@Uiwy8ɴ\eND; :RI@ЂF#0FPx EБή|(|rtkR'$Lcr 6T42CW:g V'ֶT")bӚ҉4}u<-5J_uj6.?Ǵ=e蘚k`Z?T>mK˴@ײSQX0ɐ[>j0`yDĂ\:48(EeP4nx9?&\ZLi7 ڈ0.7!s` endstream endobj 1241 0 obj << /Type /Page /Contents 1242 0 R /Resources 1240 0 R /MediaBox [0 0 595.276 841.89] /Parent 1230 0 R >> endobj 1243 0 obj << /D [1241 0 R /XYZ 80.963 747.976 null] >> endobj 394 0 obj << /D [1241 0 R /XYZ 81.963 248.36 null] >> endobj 1240 0 obj << /Font << /F25 474 0 R /F60 1239 0 R /F38 617 0 R /F24 476 0 R /F48 922 0 R /F58 1221 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1247 0 obj << /Length 1605 /Filter /FlateDecode >> stream xڽ˒8 ekc,Ϲfb!(a+lov[-1jpZnݎUWgӗ" 8$bp!qvG1[޾&oS !Q0"u[\.&'~afSTp*@`H70%uv$:D<  )pDAV*XmMn*:tm6("q,MCm&nvSVwx47mCG>MXN9ӡĨ82>NQcijG\&unz $t’̗ZoQMPFyf[i2V}k ­CXFZ 8Xݺg\[0 0H:e$J7ڪ~UKZ7gJS1˶[mG{+Gi ZWΓ99 )Э9jLczj}d\kn~<+ꀾilS=Έ|Fw:\P+s64Vw5Ѡ;OTSՙBo).-fd{ >k/.b0г{LUGTV/ 4wK5t{3ӭ="՝Yխ yZFP7/.lj%$ֶ#x6%J-%[Yy5XӬ[U7uhNKZ-2p `ֽZ0qd~B_jW iFE= :V1D PGy'H7 ZY mlCַuLٟ܅+9(WL O!䜹 "D#@O_&'ҋH" ׻?TVdR"b$;97Y^:rKUJ{KxaW~θGH3"yX'-Ca&y0;~0 ܔS?GemGE< 8mЀN$a*\W"1XH LRH8[Mnԏ4m*K@!,G70+.zPsnȒN9'L=zR~톚ȯHKQS@׫Դr( hخH3 C&boW)HɄ}pc:$~־;9g $2]{4wrp9;ypNLZ]z :\ HEJ=$Ns!)O&ݙUCVAn?UGPZlE8]$}I\c :|;/r endstream endobj 1246 0 obj << /Type /Page /Contents 1247 0 R /Resources 1245 0 R /MediaBox [0 0 595.276 841.89] /Parent 1230 0 R /Annots [ 1244 0 R ] >> endobj 1244 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [503.606 499.864 510.33 513.38] /A << /S /GoTo /D (Hfootnote.22) >> >> endobj 1248 0 obj << /D [1246 0 R /XYZ 122.806 747.976 null] >> endobj 1249 0 obj << /D [1246 0 R /XYZ 141.734 122.313 null] >> endobj 1245 0 obj << /Font << /F25 474 0 R /F48 922 0 R /F24 476 0 R /F54 1165 0 R /F36 596 0 R /F45 668 0 R /F43 652 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1252 0 obj << /Length 1621 /Filter /FlateDecode >> stream xڵYr6}WL[k';I;mLgL! o!A_Xh+/&ggΫ_Ξ~X\-e,Jh9Wޝ&~? 6ؓ:,Njg!Y|%ډ'%YQ%rZZVF$\غ LR' ,VLBbޜ3񒐹iB]NB ݟ:IחSɿLJEflur^R5m;3!U5xwF 7bye;Qy }fIl\v[k,<>Zny 7@3R= K_~Q!Uhp63JBǕxsM[Zufg;[!eUwMx|];fx(ΪzQukYJK[WM,vEՅصh;n_i^ڐ<9-ŒCxAbe흡| w-[0jfFV!x#Yr-e(*rƅx) kf!+ժlE cI ۭ5Z,x R6I^%Xl6A" J[ Zs[G95qz2˂G)!WU 2z ϬXz@\Vpԉ`1>;NJ% endstream endobj 1251 0 obj << /Type /Page /Contents 1252 0 R /Resources 1250 0 R /MediaBox [0 0 595.276 841.89] /Parent 1230 0 R >> endobj 1253 0 obj << /D [1251 0 R /XYZ 80.963 747.976 null] >> endobj 398 0 obj << /D [1251 0 R /XYZ 81.963 700.146 null] >> endobj 1254 0 obj << /D [1251 0 R /XYZ 81.963 467.02 null] >> endobj 1250 0 obj << /Font << /F25 474 0 R /F28 511 0 R /F48 922 0 R /F54 1165 0 R /F40 648 0 R /F41 649 0 R /F36 596 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1257 0 obj << /Length 670 /Filter /FlateDecode >> stream xڭTO0_ai/C\ĉ7V l"Mƥⴅ~8Єxs|\B"2'L JQƱ$1JXY4C7~"0óeD86]_#/$LGgpNϽQ'بIy9"+6]iXD]y?<8(VD:W T*ǒzSp"勦D%X%#)f4qvfBٕ&/4MuEllFx+a*bI;A1d'(tH7Sq `;uի.'_("WV a8&V7ڴ6U?cn7{S!0l` RkͦiQd|2bw{5Zݯtlk}00*8~_Xݠҭ/ endstream endobj 1256 0 obj << /Type /Page /Contents 1257 0 R /Resources 1255 0 R /MediaBox [0 0 595.276 841.89] /Parent 1230 0 R >> endobj 1258 0 obj << /D [1256 0 R /XYZ 122.806 747.976 null] >> endobj 1255 0 obj << /Font << /F25 474 0 R /F41 649 0 R /F36 596 0 R /F48 922 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1261 0 obj << /Length 1796 /Filter /FlateDecode >> stream xڝ]o6*"eE6m daFm-RSGJV۞t$[l;f?x~qv84Mf͌Y,Kxdl]~|# ޳U#͂ei"aq:߉C+|xX@H#@]z-Sj$ j +:MĘԒn=$W+ǷͶ[i삯fqQnEX\9-( 1 1"I֩*K@+2-j Dqyfj@+&0fa]D ?ԕYU h@#ΝxR E)<ר*˃_ ڍ{YQuaRk[iuUhk讆`ktgz@JՁ<|И')& NDd?%6JE T+ˮ>>%+OˢUHǛ(:nqUʳW sYZi)IryeiE!K-᧹HBg(N@0b]WMIa2y H GB`!ϖ$9/hX_Uؘg}!H$Äg^Mid=Abe,Nm}C+hvPK$ZB{cKѤVB!Cƅean,]—c1hBn{y+=cO%/}s v^Z/*ߖdI`3(|_H2f`KS@u j,h^:h^ ^S?`ϊ0Ooۇ@7.SPdy=D-l|#n$;,D V4Ȏ=LO{LߦX~ݱ,S:Zw{7[C) :c*MK2,bhƌQc׸1F~۵KZWy#hp|i^~( ~ɩqMW^M ӜMsu8z:8ϫכ6vBP>} pC՝W|/EtV4j=~a&q1؅ѵn`4nNtIXٗ Zيr;zny0`$ _;Qp}۔t\$Gy9D/UYmdE o(u[8!qvzIjl/- endstream endobj 1260 0 obj << /Type /Page /Contents 1261 0 R /Resources 1259 0 R /MediaBox [0 0 595.276 841.89] /Parent 1263 0 R >> endobj 1262 0 obj << /D [1260 0 R /XYZ 80.963 747.976 null] >> endobj 402 0 obj << /D [1260 0 R /XYZ 81.963 700.146 null] >> endobj 1259 0 obj << /Font << /F25 474 0 R /F28 511 0 R /F48 922 0 R /F36 596 0 R /F24 476 0 R /F54 1165 0 R /F41 649 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1266 0 obj << /Length 1466 /Filter /FlateDecode >> stream xڽX[s8~W;&$M/%Nۙ[[r,;)},6$tl\Wgv_,m͟ky a<~?h^ޱxp~M3wʗX ",FyD8%%E yRD݉ g(1ɢ@ ltޱ5 2Wsd0Yg rϿ_?_ӱ}K\z'@w("+6"&b:Zr vk´]ZEaYbyJ18cK &Ao(!Q0e^!"}CgB]VԤ$b)P/2Eӌ.2H 㞡YGzoN7R}S4xAD%Fb*"%sp3͗)0>8%&ЀS%h+˗BfHI1S4ǵN*P)2&HGSE&$gcȗVYBtp:O$ǸђGW&A)3p 1UIǽda9ZDktN-~>GڻP˿s`yIeIcF`US\< OCcݟ zLV~H^ 6!>;㼑oOVtT8@-'KJe妞Soa &Rour endstream endobj 1265 0 obj << /Type /Page /Contents 1266 0 R /Resources 1264 0 R /MediaBox [0 0 595.276 841.89] /Parent 1263 0 R >> endobj 1267 0 obj << /D [1265 0 R /XYZ 122.806 747.976 null] >> endobj 1264 0 obj << /Font << /F25 474 0 R /F41 649 0 R /F48 922 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1270 0 obj << /Length 4489 /Filter /FlateDecode >> stream xڥ[Ks8ϯpdWKb+99V^85H$lHB V BdZ"F?8Y\|oMg'x>MOV'/gWjr<FT|ŕE+`kL7V%~@ZŰk=@r̳` { \ ϧ:B4@J_G†ހJ[[rHbzmTq*s59a R({G 9@grQA"̮2 " S8Yk j]V;ZA_ҫmz,[~ٲ Ham! K,mmZ6cS#Q?3UQWdwl[.f"٥)5tͺlK .C0n3b!ja⠸#qc̃X X0,RQqÁLc)%ݙB6,-[(h,fCtu wfQx[yWeZcDJ"%h֏1 G.nA^׍)3iMd*5ƛk/)Y\_$v-JcZ*&B5;loe`aVZ*R+e7Ee*[;l삟a-ҁk">0,2H(E馂rZ^a:_&Sv0q|ClH[GQVnŅ_(!EhdFcC~;PND0%%CBU( ˫aѰMlSpCEx0NU؎4n'{-u $(ùhz1:ऱrTj>?3)xZaҺݽ3o{V{O/psΧ/߁X.R3H\- } ,A%V' ,?-r&Y dYSha@u}S{>o2;}EXk#պmaR3KpʹF#fds jibG4Xe zYt"&Sa?0_PFm"H O2 CPL0m|WoRq갠t%ETͳhЗн-SbsޣOηԟxR<æ3d8y`Lڦ5hI{GUNfm"y@'rLP CѼ0s,mzaBIݸdg1oYVs6$ pkrn@T -)qT7+92)58=n1wLoiY}/MQePѠuv*D= cF.>rOω&T v ű^4IB7UԔfFyk4+#6^|AaNd>i JyC4 %5|(=X7ZB%")X; CYb'xq=Y'n#l D-S](Ba{"fv!$J r[ 1 FGpK#q4w7U ~.`ǃl_e h 8)3m3\1h"$+y2e(sq"9mC2uGy;@@9> FƼ追P1H\8:S#8< =8f:RMRt)K<Ŭ$/紂_4s>[4 ސN,HKLK;@^ᔼ6@Zֳ.ɤK?؁.#3<=:(h$<:y(=tH +ZZ;.!g,/b:DYeOn|n(Ҭ)JlUI;[` X؎Yqmy|:#G/Lc'S/텣R>MEWC)LX x4>QF~ eVV|mQTPż_py(ST5[\Y _%Kјv0䄣P ykYW {mq&ؖĞ~$s|3˕ 0 L?'):}KC,n S^'Ɖ0c=CRS$~Px9sxWy}Khtк# _ymP-*Vu:>2C#,`^/MubȔl_Đv'jmzf_2*EAL/-j`aG͐)x2Qy񼵚T@>tkמbYDg2we=;5=E,ba <4=jDρp53S6bel֐0<-яGċGA &~xLh z 69bi{E?Z"՜E-A{Δ(˜MT<툹~%DMߗҥjC{*b ec#~vФ4a;= :bջcO\> endobj 1271 0 obj << /D [1269 0 R /XYZ 80.963 747.976 null] >> endobj 406 0 obj << /D [1269 0 R /XYZ 81.963 543.563 null] >> endobj 1268 0 obj << /Font << /F25 474 0 R /F28 511 0 R /F48 922 0 R /F62 1272 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1275 0 obj << /Length 6024 /Filter /FlateDecode >> stream xڭ\[s~ϯpɮ"qlOvMUn>jInLGKҽSnuU}z::=zxw3}^_\MG˳Oݳ?Wg'z9\^pwۻtw=QϬֻ^~|4߼OvϯvU9MԦѧU&Y wz;pq;Ns)qFZ~jDXj5=+ }% EV2o \  pѽ4 Z7嶍ɜUKV,h_l[~>;g;?RW6'kEѢVT7Qf(<--3$bA =%|`-z^ѲQnk:XCES:Ħy1L~@ C+1.0. C`U uF^ jDb eohS7k `t$k48U }0PyRnh0#2v/ }@ |k1|O'! =m!b%2lWt|ʫmU]+xXg"̢MM򥃻Mmz L:(Y._5{@׀g7::SV0\ #f+Q˜eFN[-}rWo I5m!(VkrVGsP@8A^IaۮReV5Z4 IrUI4e9CGBHs×n,4ԕ|s=t;9؂.of9FF;Q­෋h MkO2l[,+Ld.+ FYѦ I(v8j3s_]XV$ e&̍cF C/<z(x2GeRUؚ[+f3Tн…ꀄ9u|cY aC<),qf&,\i/ࢁBtrP7[{DҶзm[)͊yF/|u EmA8e}"10/0t,_UGk,r7 {P+@]ktH2>E =p'9,5'QHx6FPk:v|~;va*I`XHOhx*\(X0<}v60MYV[8!Vu<^bY`b%mrfFb'J:3358.,MD]D^vø㐁X%?D{*0|Vؒf:ڦ:ѝЉ9\EܹPM 4 !6Qy us[?t`\=k)#qB\'W 0\⊡qaΨ.("فXd6Ѵ]\n+*kpйPtT'|֤%+PiD2RZt#L9%RmM횝sm!ݲ m~[$ܑ RcT>Pt$?vh밪Rd% )9ƓbYI4#Й]T$qX6(2Th\oI-* Ih'w>hPrvk"3[3D҇]rԪ".'.bW%ʸk<_lKjsoNnChv}tσCTȼ4FF5Ff7YAtt>hӱ]< (trP\N`x-. 7¨l6UXqJ>> ~~ޢqsG&j{9ju1{JKo>˛Qm"X,t'HY3M栦SϓM2!wOͺ2.]I-PO.VpJP'1CIf@JgB~Z݁yHH'U"hP2n0+!Z?%ҹn'/n79r[  Yx7y17|P%Ezb/Buܖ>/lq}qq ?1^O:s첶F;чi8>ᮕP`Y#[3 &=?BcZdzk= ތa'w=W!z5a@Ů`ؚDɕNQ5xIkCc/3Is-IFm FMz Wi,˽p4 迕@e/̊:Me m]! 7(bp؁!dE`r ]9,Cvb&3 uܤd6 L^^eâw A* |qBͅKRbeaGS0WUgACcSg# ]ZT&eU_+Ch:p> 1oa^kDk4WK;6D5W^IUK8U=cuDʵ?anL @:B4*ۑ F1iEȤiFH/xAĨ͂p+=!2;ë6^="J.9WT_dƠ94lnCXrtfF*R1aM:;AgML,4 ;zaxsS*52LL]t`nkA_aߣu{ ː㴂Q ƺY_TnJe'BqOdh{9Q$a@*QV|ak5gK5hiZ?IV,T(.U1jS/Ӵ4ěDD OGL>in\*./uJ=L.L y P5DӐDt`h?{Mf@nnM丱R:&h;ѪO6V,;bG IDۛkBB3dmjv+凂ᤫW1zj/`x)|ˡq:ƇtOpÔ6̙5uuf?CHT4"G2'Ck6yIZ/S8yRH3Q))%ѽHRc:N%<E8x?['\x=9M?"7-"3?Br3P$ަj?aDFp?|dmCq>xݎ j.+$ûxj؆?96t2Ilc<ڿKq/#I-^ٟ>^Fh2T_?SOdR#8ˁZm\QQc,.m+U_$4#{JǷɐu}<9tN۴J&J״2H__ϣI'޴frzF2B &VM"L t'%+:')zv1 Aj.r$OB Q}3: v3N^s;L=} Xy } Igcj4GRg]vүL^@EZ/q- WģZ\rw.|*}6E8%o?|~dU79ESy9]2zm6iDd9܌ CZ%OW_ ˃LJttC\w\W#~IT@'Am1OgϢxh}h̍WL)PsٿQbLy5Y[keUy5JVÔIض[5քZ HC4^ZLYK7MyɑX2\|ٳ4,Spɔ֙n +,֕7{v7^7ضAϪL[8dZ^ΖtCCܴl S^X/}ԦJ9$>~AۛT%Oh'~k$譑 ܲ[֭)51Qj^9 VGSOcr47,5/5E?9c{=Rlv2Psm\VzoE\ V$fS X7fxC*FUdb-r2h֗ʝ^ =̢AĪ94^+U{F{z~NcR# K\\{ ; #HXg{|Իl^0C8#]E8r^JYI!$jB ;1q q挻7Z$7Ҹc6Cg[l \}幼&+~U> endobj 1276 0 obj << /D [1274 0 R /XYZ 122.806 747.976 null] >> endobj 1273 0 obj << /Font << /F25 474 0 R /F62 1272 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1280 0 obj << /Length 1750 /Filter /FlateDecode >> stream xuWKs6Wfj&dࣷ$Sw&mQDFB*v@ytž"]|xx{IuXJIE$+ź^rԫN~QubY$E,N2gw2Ϊȶx*ڻZ0%^r!$Z!PERD,cUtҨRZuW *B,*Ox%KTe/H2HdNSU*хLhooO[q0ϬQ|p;r%D"r!s`eUAzyhY%02+Mce"go'=1' UxwK >j/@AvҤJ+.,0UPNe" Ɋ4Z1\E.]3эL^722)  /# !xHe4]Pĸ=8x+;^;cϙsTZFC#6l:p ,ȢS֯'Э24N;zP}~to8(\Ů!1yi˶wl/6kN3Cb̼V\< b7MG2{7ZJ[3XH1[%j7)_,_cmG'H T[w-&?(HAS3srb8kkP ~_UJ9R՚ M A>d"#EvyY γjQ,O2-Ñ A F6ؖ /,f;TM O}VFȠgv'Qm`!A"Dᾛ : uڎDO\6Y@l#zڎpy[3 XHo0BOLv{{a(L215[3a~м[@xۏI܀ kfGO#52:BK t K"<2TԑU CRυ ]C{FoȎx4\2Pר+.q @jĖw7&Vp#Q1[ZOWMwxFZsXGs=Mm񆑹=Sg^30?ެIkxM> *f)4: J,u`΂'uzwiŪJ5EPnT|vMÕM&j 퍗!1};ʿO J7)c[4?/h@'`*GUD }{= #sMᐢ^C,&psv84<@e:z RZ3Vy>yPCFE ``5qO0A)M,Pw]zry(f rՐwMXbr8v4°p {c0\Qas@h_/j<m; r>.„vga.KRA5%P׺JJfJ<^spw*lF&\ގW;3S*@7VWoXz@է }qd4v5Go @UOrDڝ.^0H pwRzޱj!oe 3]?ǩ 3I Lr endstream endobj 1279 0 obj << /Type /Page /Contents 1280 0 R /Resources 1278 0 R /MediaBox [0 0 595.276 841.89] /Parent 1263 0 R /Group 688 0 R >> endobj 1277 0 obj << /Type /XObject /Subtype /Image /Width 577 /Height 275 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 1283 0 R /Length 14866 /Filter /FlateDecode >> stream xXSYZ(nD2%uTjR\(.\ ֺPQA*VS܈6ED9yss oAI  HQT^[A)ckt RYxbcda_nM  EM^F4/zԼ`i,e)h.APJ{ٮMXz0lʪU': rm͖ET)HAs!Vv-lpA鏙s+.bedd޹sÇwޥRX,Ofe.oBխga>woc3vK+ 3s3SScccC!C3饦Re~fe(KAs!Vv-lEA% sx]FZ[[ߟFjT8Ms>TAu+EjdR [䩓^0aHaÇG߾}2?qw[V,It/U+]bs$# A4`e㵱OTWROv+ha,(ñ4*&z`cϘ~ճg2oaKHHDYIX?^eɒ+*%6WQpϙ\Q)x8#c6)[JIڮhDv߳5b,y--LLM ,haqqq\ /v䋲Ds~ U+$ r!HFBw/+1_5Q+c5I{]A ]& a`kgcemif6|Pc}}}]bcc2?]?xAʒ:reB !ñ?5kAz.b.sjO-9ϖ2z6i8j :O}&[S6ѥD-5̯0cvԛQ G='gnSJ ?k?YPҶd?v5mފ^9s+NEQ ~ݵ~bYhRz]A .ZPFnȹF9؎6HOoݼy*잳?@ eIۚ\I2ɅB_o{s)ݡ#z 4Xu)%ee9v[onOAJomO-| cCS3aLN[n7fL T5`HP6 u2y7ga6]Ҳ7~o ]>YX&:@IےؙF:[{3G!1=h)|'i߿z~I} mAbb"Y݈榦&w qU'io5,DsIG!Dߖ*se )fosA@M>k܄UTy/yn?`ۅI>a)ÕUT9tǹE=llӮLrAgem_KIacq+x۽bٟ'|] 19)-/߸םalzc|!jsnk>vE՛4]qȿ>9e(^ }ARRpv6#̇5j`]DO>daT8oy|1{A͕QrEG- oR[Rs#f$FN)w]?ņӤi35nY&5i|͞:Ѕ"WUk:ESoϩ!4ء lz!՛ $P-o1r:CSř#煇nk(}̢CF0"qȿj?cӆe{Ạ&''GDD_xQQQёΝ;Ãga Nt OP u(Kl,+Q-v!J쨸qɎs_{nVvΧfn2eõ_j>e36ESex =gwu~yu{O8[.^t AgodNO\O~쭗_F' %¤K/WةÙ%K2ޏ*=vm3| Z:~qLLϪU֬Y緑詯+-[EF ;'$PeIʭRsߖ͕e04'm1IS>ǭȹ[/}C M=g*rv 6&]dgĤ%RF^;?3k~y9Sǭ uUnW¦n)(rK#SX윜²۷KJK3R7oF_z&,U'緟jA JYRr\[B !]jpln|ýָI.&tGEFO^weg-Z7mپOn:#sG^Tf_u ~l٦=d̒gu~⒃*[=14j\8K-2$b'Koz?skc+ha_l%({{KjTH'C*R\H!9vy`8J#{7[n&VٲoAm %mKct8K{{9F4vɱ ˮ9hfE;/- 4oǕ;/v-lZWEgo&/7 x%]zs[oKwDU`Ԭ`)3jH?$k Lb--?o~{Jږ.p 9"~5kx Vݗp,i_U|/(h.APJ{{VS zK/y.;)&Bխ ZG@A)-m$7SA$b K(|B ?TwUo=:f̘9˗,ccc’ƎA;ӽ{ ee9g=\YX~^NTTd,{&Ghܸqn>hg6o:ujppP![t #CxiQkصkWzJSIY&MhnfVTP@EOK(2+-,,,fdggO2Ev)))IGGGzK&''[Nr8ׯ3VEzj9c IYˆR>)..((߅1… [_ `a)03 c$޵c{;ڹ}*];vs[0caMd[ >?ЁW2`@=wȏ>x#' =yT3BW' [͛7/E#" HMED-lG~'":v32~Dc}A{1  ?=Z}!" "?{vה0  `a`a00ƧI&jjj}zǙq xMAAә?tf{M QZZJ혚)ox|5r v&|}˫V;=zP[o,yy;j[ΝNӳ߻wf%IU[Ieaϟ??ydƍA(2z·o3u?N÷ׯ_ϛ7Olֶmۄ5T>ݻwsrr:uH_^^!5k֓'O>|e&Ҹ6f۷o/6Iz%m>j֭[?BGG"N*++\sss&cۓmGeɒEy~;TsڴibbBo*ޙP4ijnA6yrWW̙B0н{w v1<<<55"d?>aXk׮EXXXXZZU?~ѝ8qFUZE`̌>1Q;tщmGmU2K5kFe)utY c>U zիW>:lE0b/"5jDCBJ|u&-da#cHC|h"'ORy?K,9sX +..vssXfݣ 9_~RP mGeɒEyeq?~޽XT3dikI0?"&]ӧO3Q__v~F>SIYtnG̷Wtbۑq[U+W&L@ɓ'KH H2 9cǎCybYXX0Al6u)7@ٳR,L(Kk}юؘloߊoXXy+S~ui}&a&F444h9X >M333f+gϦ,·Zh;.K,.wQt:,&7ejLdʔŎoߺ?x0_WEEatׯ_gCKK+"""===##[EEl3fHARMiȸ*Ztd3,Ywau}tvvAVbb"] Oِg1&Ч822!&;cǎq>:2_4ݐlmmiGf`dd7XX, , 4( 7o^ϟGDA`0AD( Q `a`a00V?PUmuV= 7n3{ݻwLU=?_LpE1sNN%ڶ@cacK+*˃=\ȌTUUXX֭#%%%666ThѢSYmUn*5@l&e::k ZkoϑT展 P 31m[FMj4^ijx#1w#FdD5:T>}nڵlCOx76S_%={YMjix߾f[ؿ9izo:d}zT(F*unaZZZWVQQaX3fWp8ׯ_gIt:U.,,/mɂz+hIBM0vU ?z^]\*3}Ύ7A0rwCΝ]ML1OGO0j'x;}oR-w kV:j!a@䏭dAYE:0XXi(a@, uF_o?oZo){JMaa 00oc7#FjPl/qv3dHj> , g隣0Y~fjzKI:sr$YQHϞߺY]G%|rnaXW~$ c8Cal,8ٹ-u"(ңT[7*n=DˆK°̯,i0%S::^I{q2RPy[I/@, 2jjidkjԨ R1{-E,/@- 2M--g6i)O͏(+J01jj-ȏll0'- KF"e~λ>e[pOX]abذS?¨askQnc _Ye~E'Mv,qAFS"QX@e~Z]VUAFFh%| kaXWN4.F'm `[P{e~O.(d?e~XXX[uk=\w7..63XXX kٲsy7W`aX e~g_U&w:YlNN/a[e~5nȐ6XԹ;J0, he~p_eevww۶v^R$°/!Ze~;fӠFmYFA 2XUe~'-¨s7 )ɩ , 1`ߺZk)onjy/i-o XoAh_PP 2 2e~("XXX, , [ իP̙3ADAf#( `a`a, 322ciiiӦMc˗/rOIII,0Q p8TPWWׯ|]{"K gϞu֍9shLDF{HNNfX  ?Rڵk%,FCBJ?~<Ÿ`aBFRQQqС)S+iiiPo߾RS/^k׎ ̣YT-26$MY`&#kfffQQQTFLftҥ'NUV[ ۴i?4dKFSRRbccC-Z_ҌhLgeeAֺukV27 UVVC}nr׮]S~YJ-bZҥ wa p8dKKK&Kׯ364cƌBLyyyF5Μ9Cb233)ҳ$Lwa OXX, , θqPjiiEGGFEEijjCAAAc~ Z:yF͚lq&h@=~ݻw\PPp%[ΝNӳ߻wf St +..:w\XX(Addܹs}||XDIUss ɓl޼yì?kutttX44ɼHCq`a nݺ5tP*ܾ}SNJa֯}Ĥ-v,Hd\Iҍ:q8ʯZIפjLbGa'N UR&L4 # .80E0zzso)khh@qj6+oLҵ[모0, ?m j8oI:̈Lto'9|, Y؁};l[v:vo ޻@~(-)kÇfs23l6;pMغ/h/ՇQuk9Y9{h{w*((..&--mڴiJO#d˖-KMM:7n/L̜9SlbϒZZCw.FT/>Z؎׮^UTX!/Hˠ^f%RSR"Z155z~Ěٳ9FAhҷ%O`a-=f?~ލe~֬^UR\ɤXfzzz;-57KAվhaϞ=֭taX:::uD#F#ڲm}ԏUjku2kae%R,,#=]A-lڵ2e 4|qƂY[b[-~V.]dky Q/n.+dededdY{IL0S ,`d.caU,}[4 Ք k^{[, vNyaA^~^.oRG&yVfFzFZ*o ƠAƤ[^YYz7E[fnWRmJXP-;R, ja***TϧBZZڐ!CG%*̙3GhhDhD[fn Ӟ󻞚4 # e~߿WT_ǛM}hfF&wv=J)WP ;p!HNNI||< /_N+6"ؖE#$ZZ@딮Ŏo<믫e~~,ȧ=yRYZRDOysrrr9eݽ  Ӳ"ޤܜz=_A-Lt]"((޽{xۛ^ej2 $Yh_&fWZŬ!otPW|meEejaϟ=ba>T\ (++\t.U5#jjj{]x{ggΝMeja/^<]VRZR̛W˝]XAddܹs}||>ˆ>}3ZF(ttm`#K 믿o&uqg@,Iee=,奣A&/Nƍ LjQk72'3Ç Heja KO֛Qح[J۷owGa5Z#Q~,_WSӦ0@W^IϞ Сׯʪ?铑!HTH,5 g;ZuR,ŋ<<<9”'NLdr]syZtU?,ѣ| SРXƍNZzWt_&ffM{%9.z&꿅y#eRWfiao߾ba4FO ¥,0E  ?HY^5hayȤXkL \ļ23xwYlVʫ/aa^zśKCl\̌t,%5%/V7o^ϟGDAH/_J0]#@_99Y22xwYIO<( DAx7#`Yܹil,)%)c(ٳgR,#XO"r8YܹiiT]ĄȧUV>MȢ!Xw.= ݽ  B)/O {!o.bffFZ:w.}j*+w1>1>vYYMY;W1)VZR  v=\Čtv`,VJ2.b\Bܭ0) Pv\tsSRxC[b d0{{X2cԶߖba992Z؃zMԸqnݺԶ"Yܟ%''%"ʒ---q#'bD6 XܹII ![7odhaÆ tSdd!, @m[XX:9ˊ`aj ysSSY)ܹ 񼻈7boĤhazzzOikk?z-,?/WѠLF cdLSL%n2͛b$%sǻs3zb|, '>xྨ(NR/  '00XŵHXE  tX ~~: ۷(8c'M4ȑaaN:7dر+.*sqޅpXyI&Ӓxr%צMHY,VE#LX|/߅PD O9 g zfa)ɌALj)ATda%ŌALj)ATda.]RJIIJ JKeU>~D]P6n f%Μ>;p'iTU!zJOc?|L]PΆATdaq7O?铌46 HעnٺesjTɂ4H]PI լ$YXؓǏ5",..bedd޹sÇwޥUf !++#,.% }oaT_mlFێaieafnfjjblll`h0d`==Tne& 23`aTE46i7œF;^xaz?7wWGQvVfffFFFQUf ! :0NfffzM:굫999F6|799*3YԐ :033I˗ʵ0Q11w<}k׮={vȐ!| ׯ_BBUfO&vme H˟ ( 0NVVFidavclienafbjb`h0x`A LDf!cPTl1{ṕAPZ]Lca#ll-̆j+YXll,Uf6mhn6tǏ3AeKM"7cb )1 &H^kvQْݽ_a(6.O;y&)"er-vd -LȹF9؎6HOoݼy*3Y Y qL̩Pՙr'q7JNqwۡCӧ# yT ŔOCw ~uk@NAm_/]Kl2qd v -,,EZbEbb"Y݈榦&w qUfȑFkvhG9؏vv޲es*%)ݹ oC׷$/HcR_nю_!9) Yf*+۲G'vWsaaT!\4|+3wӧYUfǑ#THIN RW~/!-H*SɢGjA*۔"-xtv(?/Auhat d||V&''GDD_xQQQёΝ;Ãka>+]"b{؛7w+@l:vro|BS`ZRܰ (jmJؖe9:)@T :0rrH||bbb|||VZf??<@O}}}WXl2///r7d5dпpzSHVFСF).6vhg#}c#ß 2-H)3s3RkW._z6tؖe9:)@T ‚|VrJjjjfffnnnQQQyyyYYYAAIKKKJJv Ǩ2A YE0C +).ːzĤI'NJQ5dAPCViq1, nCT .+APZ؝eUCw -۷!޹ :S'*=BGASEEEBB]J0w!"|HHYYiţ4 Dn K.(6,^v?v~ZIq1AעwI]Jj [}nuvnڸ]8tE!}z #%%ߌ~ϋΆAA .@PX @P[A  V-q1 g1%jaA0*CAKII12 R V endstream endobj 1283 0 obj << /Type /XObject /Subtype /Image /Width 577 /Height 275 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 344 /Filter /FlateDecode >> stream xA07=< ^$%* endstream endobj 1281 0 obj << /D [1279 0 R /XYZ 80.963 747.976 null] >> endobj 410 0 obj << /D [1279 0 R /XYZ 81.963 700.146 null] >> endobj 414 0 obj << /D [1279 0 R /XYZ 81.963 513.814 null] >> endobj 1282 0 obj << /D [1279 0 R /XYZ 291.178 471.48 null] >> endobj 418 0 obj << /D [1279 0 R /XYZ 81.963 276.927 null] >> endobj 1278 0 obj << /Font << /F25 474 0 R /F28 511 0 R /F38 617 0 R /F44 651 0 R /F43 652 0 R /F48 922 0 R /F58 1221 0 R /F54 1165 0 R >> /XObject << /Im79 1277 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj 1286 0 obj << /Length 1409 /Filter /FlateDecode >> stream x}WK6WXH=(hE7Y-䠕YrEᐒ=qJ(ޭnoyi\9("ISdMrߩQH֚pGm۟m[2D~Rk j է{7bU @T;ZB?*3u6^Х`@rf .%¡m0n/!FCWBdyhBNȷ,uI:ُxfz4V gY 9gӷga\^ myy4x2#& 2;m9]|$ ]Ɲb@M${¤ׄʅjU08@^zGJA$~A 5ڀ!AE\ql&T8vnafҧT~N?ƦBh^ lA+246jQr\GҔTvg"~㹿rɞ|i@(,h̨ 4Cl)F#lԳj&[?v~oȸpGRn4G]}5fH{6 *Tc$0`hrNLzv! fjyږQ[$(z%^ @Y!awN[zL6Lǁr X `֣_\A&0x=PL{C࿊ ȱӍvuDk3g'dqY M/<S' ^ uy09w  S  X}3tY:׺|E!;1שE?/; endstream endobj 1285 0 obj << /Type /Page /Contents 1286 0 R /Resources 1284 0 R /MediaBox [0 0 595.276 841.89] /Parent 1263 0 R >> endobj 1287 0 obj << /D [1285 0 R /XYZ 122.806 747.976 null] >> endobj 1284 0 obj << /Font << /F25 474 0 R /F48 922 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1293 0 obj << /Length 847 /Filter /FlateDecode >> stream xuUK8 W2P+zfg:EXl[\[I\Vj;M~)QxY#)@8ys>IC`Iv{MɸҒ]Kd1{Y"4ۂBT,~fҖ>ȍ~F妢\3(5 a_p.H%U~>޵]PO"dRB3 $y`"/-_O`,=/ ]3ő={ϙV$xY&.d(BQG >n-bbƤ"hG׺ 5_kw7!3cPt_YA $s : *|5{p>RLnx6v`\Ho. 2 +$.?MVe_G=c{ c=Vu+;ٵ)ܡJӈt[l0.੊N! (8!;J:@A}}.S!G?&0DT%?38 F *hS(NࡍxNncs@BqSp"E>ې/cqP/ pGw=TaW+Os7k#` FU1%5Ch^ V=%a!m% Eo`)s9nKx] 86k#a>ðow2`c(5i g vtX$, -bھ+N#$O,&~W&,R>|iT*0pפ~K{V JaJ׫[k^>J^A-ܲ[ڲ>?6&- endstream endobj 1292 0 obj << /Type /Page /Contents 1293 0 R /Resources 1291 0 R /MediaBox [0 0 595.276 841.89] /Parent 1296 0 R /Group 688 0 R /Annots [ 1288 0 R 1289 0 R ] >> endobj 1290 0 obj << /Type /XObject /Subtype /Image /Width 1197 /Height 657 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 1297 0 R /Length 117062 /Filter /FlateDecode >> stream x|G/{zwnd&眓 6l1`YdL&g09#B 4&IMNzJjiy3tWׯ::6AAAtiPhR94jb0^l0'@×/<[҄^S)i@l l z/;(CPZ%#6j `GhĵS`@wWm t46У嬆 ^Vp6@u d@n 1F@Cl >6W;l c$ [j܎k{QLѠA#SGe!w.K17;f6V >'krݏ> ˴T]]_':`U6NF ]^m? >n|{">10e2 h0?j3qAڏ8xY-cv~xnyY޶kRzͻ{Q}8f[΄݅?^Q%}#3o# _e'o:ۍO'Ez gbhu=HQ[>: ;G`f"[t{p4VgI|OߍJvH `ĜѰuI'NMڝi?J ;}x FQYZOAߞ3J{̼!1zsÓ$֬ LLNi֬Y֭5/ӟ )~6m?p_ER8Dn;>s?#2 -g:t% 8_Xb©?#GOLX2@'NT2gڃ%/!C6 ేM/}{]I~SͿ+1wPG8|]ryqVP6ߊN_8ǓzHL ԟ縸rࡿr^~??:Ljsܼy{X!D@o0Qwkי-2mIwԉ-멽{єeߨRq{$ɷlv *$QpdU4(11qdS6!~]}GE1O>c;dճDYac۫wɞ__vkhib隼6Ypz$gN?=y ,$_Rȝ- ]*Zmݶݛms5kF>z_MwcT~^}@UwG>IO?z0bS{A6ݡ]$}֝6gz}aD-y{q,NLXK'ltX%Ia!bvgVZ7եe'|HPz,۽ʡEԘNL]= ~G'OY9yta&U]4~Mɷ-Ou/TpHۖc=K%m @7ݞu ԣ $W}cs~z@[ T=xn%1Y0\i>*=Zn쥗_drSR'$g?cc?R`n'|86J{ z@jq8 y@6#j/--|&SB% .|JnNpv#'HvVy(Kԗ dw/#q6Y~nӼ Lu;6X"1ܞ:èG.;Tu+Ԓ䴟'┸{Nbu4obٲzY]Fˍ,[h[no~#n*k&*F=- 'NѺٌlm;\oM~_hQ7dTPbȪ> Bi=!l CIVJH38`uNdUVY?iBbNztR9 V /k, вevHT%e>lfVr?Ked3Yl6Q/K6/ `[V_ „W_OE7)rGdU5]'n}J{V z!Fu}W1x0!)%bW]'vrdߺsw(}ׇN\IiYZ;op_6d))MhRǎآ)_}ݧo?J͗oA~|YuShnǍҵzcTL,&ok!^d5mc$jhХ[O>=~_-ճ#1rmQ7{̼1`U6NO.Vv+56EY%)R֬sIT#DV^yG^䧞m?pʒq&淿?O3m_qMNz雜ҵѣRT /~sQIfOZЄ1QlG7y&ArO2ٴOi } XZ{qPZЄ y*D ]G- @θ783&{w%זUJdU5}>D{V2Y`NSKs >z6p.ӮNmZYߥI??~=v;}{|;UQ~v%)!.]ȶY- ^RVڳʞ|B0వ#6eQ“`OQ[NNߒ5~w}`Y7q_(ui17M?V41{ +mkd 3d ڳݿ@>"Ϻmn3o=۬.ӮtR:}uq @k .M8̴5Gm'`7=7TK,r鴁}&u~VcaTd5@Oe GE2k(zʝ3U@KE4m Od-g?LgO VhÁ0#OXE7;v i.3s]g^="Vn4 Mv lMg4%U6u-'n& 9>6Pk4=@#9Mo6PcjB\rN6m]ٯJ Kn_{1YWWѨSKzfK &g-Zb5lx]+TZ5j$N枇l$;n)g.\ةJg:$~q}ײURa [-Zm^5=@MfKNIʢ @rS,^Fp_VK͖k, |kZ:l-\Y+^cn j )E*ڷئMo]\b ,(-Z}usnKDtR5-RZn{6[\FUDƤT?:1a',C>?K6ݵ[~.^sy]v߲cv.,zQ/ZL+a߁=z=v†-&}2Yhй B{۴i˦=[f)%wC{hik4]AEA3">5}e=qKV{Ń$6!-9ǿ?x[Zv|r m?@)E_N/W(?dFƄ~B)3^}T3Nvoj&Qjr J*Qb6HV93_uM"ci}>B29mdy*ΚL7-GA^#XKe;?Hyy 0GK|CO BX(\Uwc]%+k}z,㖬 ΪI>%o7v kq@ʝ$ض{-b*+39KBnދѳO@Iɕ8)9{]NJ LԄwB>j~fn=&>q~ڌyo N!Cq#jF9W_}*S6ZbFaFٻO!j̸{eyfS3:t%>ZHk7m\2Ii gӭ[$,2}+d[&D|VWZ⣅޾C{,\=?%B6xy X-Y&Uc}ܠKii屝*ur]zL&r4A 6zfhr+V8IX?0񓁃$exS{sA|7Bͻ-l%d,5, 6mE~5o [⻅:vru…!,( WnE*8cd aV{V&mr[Do\GAyڶ0{ޒ‰f{D -;tP [%-u/CN' [C2xdo~x+ۖvTb|Ki9g7~3cnPx2 7oUŦxЈfK/P R5nnjޢSiۆMNa\6}Mo6H@ XߪU^Dl @#› ,84=`6eM64=|@Û S4=\#9*f), j k&%ꪲWQm klEBPQ5/xz5za^z@ 1P7xtFҚ^hF&Ǫ %7ƨܗR;fj5 zSWӫ6kly S|&Y)|~BIm)֢c] N =5rq@[xtio~`wxN >9Jx{7 ԖkT=o {swzͪ?]N6KuTSGP?bAȥouAP5uSGg_CC\J[Fq $"l Ah\l򽌍o~~/GdelQza66` +ZToXa]o†^p۷-ː[)ٕbxŒ%IBB[1u9 KqEFl-,^8u%.ޛ t6;12h_8gh5wvHz&ڬ#$LH5z(Xs}8fNЛ ̐ĤoE"ꐟ6 CP:9Oy'&t7~.Tc㘠W݄7.I)4ߌVy%vo:~E}ǭ;E>r22UIeOVZ-Z^[&lю?3ӽ>M>4hr ]QTjMQi*?ӫ]cړ]ޙs̚>]21v0W~x GОMiVI茸!=r>fijZ4@Iz b߾ܧ#FhѲu6qAAK7L3fl۶mN7n$YGrC .t\Gڵkkt6PV?fiw@䵄 4 VWZbcSzOxΝl6B!cBF^t*c ylgBU=䕀{_*,,?>G`Ӳ:c c+E&o92 8}Q.?ˈH|7Fx[J.Gdt6U&m[3棢қ 5}&~n?uހ~g&*U-$F({\3G|rO8[~hOI{闦y'}zzN+y;wpn$7*WGdsfFf6Ev^]nݺ;NtpU^^Nom3gPhѢEcƌD\ާO'N^)Ryرgl6jЮFAw@4ÈyEjJ]k %t'6 ,6WyG*?tp8F5xȻ<"kH:DGȳτ7{w?OѣGW\dɒ+V߿?-- 6@MoשXIʦ<oUfbU;vYǩӑ=$'N4~i ۻ Inl w㸸2I+׬soO |<)Jݯ\2p-Z 6]rt4-(=x:~D^[j=cLb˖- .O˗/z-\J_CCedda:uz)sJJGJ.,==&4nѣGOE{}9r?Vę `7l4g͚ݾ}m61L۷{kKJJ :t\x s^֔M9so%ov횰+;wjqt㪱n4C Jťm:pW@d x3KRocWq]>b}\s/_D/yB 憆Rh4ib$''㏰P "ti`ɡg<6z4?8ءu͆٠!k;#G ɔ[sU|P zl`ZULtBi#8vӰ9=[g¦J/I)'j2"UVq =,%SnYy~9/NN҇ Z^gn'u|{vѫ 隮#B{}٨KS x5v]!wˑ{G,|th#ޜ`kqOVJ[-><`>zib^\=Y."JV@1y)r=ooGYh ˯PTCbJ<]Ջ#[.fSNj,iӦ FCyAh://؛9"ؼy3@B+2c Q>Bq,ٱ;͜9OHFVygm)CgܸKJxd2/wB1W^S 믩q+hXU3fW_}ENl#![Go.> {P ,*'?SҷߘǭK]&l9v?>(wJ?W8· /(eۙMm9dCǟ.oWVs߽?uaaa֗,>||/\ tҩ޷oߒ%KHrClӧ)jҥNL ޮ3K"$%Nwc~s o:>:@ByL+&nl`>~։tS6pߚeDh{Og{l׀ k^PƠqw J/;y'<1'n) $wzEז3Q bw]x {4XsvK7^!{HfFoםgOx]~aaΤvzpS նgN?= ilTTDfee .v *mv%FGGӬBfYȻQzjj{线xW(e ,Orr2 T4n/h4,}wԩcҥK,[ii/#''SJR5J%5:c))Pؘm ٽʑD[GcZeJ|nŇA?t.2W/^b{5o=a;]ǘu>\bLl_G9~#s85:ޛ%ιҶxv{gv6dsgu=|: Y#߷e˖WN߳gϱcXΝ;m#G(BB(m6pk/Uf'pu ~g[@MSZO//3lP:%%lX F'cA) L-I*0]T(\MLwt˨5-Go#W;n$H-4婥'n7u/02KΏm6[(Bsf>~>7E9J{q[EnRyBm ؼy3-b~@޽ۢEKl`JJdŭm[6m6oނAIEi30rHNsxJ>#jI8WZxuC e;#>})IXs߷Pȅ],u?-x_| o1ol7#McȎ!چloNDwY]|r pNrrR-Zt:iJnZs#]V$ 4 +VQHU@\?iމXΓ1ùD?2Cg;=rEОLްCi,4d6J/:\uncw4xfS _Db}BAL -Eq{~bz}<$H6Px7/h哀o =t=GVڽ[ъL&eJ_bl)ZB ;nܽ*q[Eb'): ^3^AK{ nE_G%WfW{N`NP5.Gݽ:;0[a:cy&'Ls~z@[@E60$/^b,ϥK$~@6%yb=-P?[n̔&QGp0gGz-j2HxLӷݸqS݇hc!9ok*z TT*ţW\ko#MrAWTd}uÖuӨcfS-&{vZZol|ٖͶt خ|׹!=2F&6 h&Ld\R/^~5^\,;z-LTĒ\~\l {OiTK/kBBث`(`m d`a+闦]x{t."1x9J[.{{Ewvv̌Cbw'ܣcS̘oo8QxZfcg<.3QDkzfȼZo:g]>6 ~]1eٙNk4R^uK _CNk3,Ts'ťD:-7 ym`ߑ:?W)L᯺xVxvh4e˖h4-[2 i?m ?6\3 7j۶͛v"O2S۶mgo 1c!o.\F $7R-111lSfjS؃r(O?ieeea TP D+ܽ{ONY:5O(6&Uok>^澕|4Fj*FCd2eVǾ+9ć AP8 K_Ӱ٭Z6(6xi7z;s~VLz#PT}WB6w Б!+:,ߴi@p4099Yb 8 TW#wje \^|T_b_RO ŋɜ뽠҄Ӂ ,0Z»6XBK۽꜏\_9o_Uľkh.߸% }[=ة~?)2U~^/ZݰwaɬMt>}t;gO:t6suةUփΞyf>}ZhIرB{tڶ-[7^p}7ӆ u_n{&ϛ7Qb$mL 0p߾}mCmnݺ {!vU?sJo߾mgFkdY%|J>|zȑ#Y[^rEyK߳g :.?,KZu紧s5dmgWujsȒ.! T[bA@mcȸ7?^Zoeee{eo `7m ]0={յaI 1@:܏ψ0"ɳCⳀ}>^K 2S[L!cR&eg_O;J^Wq#tŐ-ZbȢ}d$6w|cb~6zw[[] h[kFd-~廢yqW0a{z+z r2w?[O λ;Lk={7\0EOrQʚUqOte;w=OCNYYYltU& 2d%uS/w!,*[x1J]﫾;..r)@_ullGl9 ofo?U 8=Is^vV!;v=ӥ6znsLz.<(f>]\R!AI1 deL7]d1oϧ߁m9r5GKsJ eD~}W"J/rp;=[tvn ]b#P֙ bbbڵ5kŤA MuA򊘃Π_P0٩ ?WW9K!-کn!:FM*Jh47o p.$goJ^\z.T 0sm l`@\R=*+&l/| ͩU~+ 'R#'zG z?SGSec1Mbwzͪ?]Rd, -S?bA=z=o>D]g-6Co;s.Qz̯g_$=һwg5fQgv %df=/((Xv%K-[vi| ۹X'.= pl"&>x!\VTb˔[Eb![ҋ--ZzyU(?^ K9sݣv[KI#˥xWG1  W_Z uBjUlͅ7gzk. 6>`!3[55dvYBfvG5sx|uq r(@ ,EJ1܊*N-4y[Jh^jzUӣct[s}F_AGAA_jA쎩sOzi;x.Hw+?\m&,b aqi,5]r`TJ+x[JXWӫz\8:'ElBlIUZNil)  (f(4 vԹ+w6@5d-BsA@pEjrYX$䛣3t# c2֠(50u甧Y<.QD헬TmPܴ+ |)`fEG r7H}1uQO=z@9NA<Pv.!q۶m۷{fl`'7O\(XO+]5+Zr7âGeEK/FR˩+WQmdjU0+DGAA@@k SWNws^PcA< C=KajoݎU1,!p!\vFgo/vRk;]LP˟^EwN92'ndwɮQ 7sr@ҁM7 j r =y&/KAY/VVQ-9AFfrF `¬lzX 1p<`5l FOhдjNsraI\X"E,bX"؂⒒HeeeWel٫ (jNGḧE,bX"E,bډ d@&6dO@,bX"E,bXAllqzv̉X"E,bX"`@ 6`0Я6nKʤi0-O+ E,bX"E,b:u:<+"v@  dC֭G%8AmM4qZcsk bX"E,bX"c6y߿3VZʜ`6fxXɶ'h/bX"E,bX"6bHwuɋ/޼y… kX"E,bX"Վu t?VW(1-NX@  o4h uOX@  j֗ 46X6 ^vba!   GhllsG/5z`86  8]7 `!   lD(h6P_YLӆ's: l^\lS*:juR]V0bYiʺ|,QESuN  z8(d: ZM Ցhx'PZj7=},49i6&Xi,@KZĖ 4t  zl`=z@ceU{sc86(6n5b2య)9k~~ccl(t6A GvI6( mtFfP`MR6A)9VR6)2AASk? ԹJӉaYR1]eX,Yqnr\Sl*/tY VIHWe)8J\z̕q xG.犋tI" wNwLf%Ǘk-,@rjVR;G BA5yX'`@m9H+T+i'8vva< CQl ,[JФ/-)$HBp$4%j9dNv;r2#%/S9IAN))\f&P,M[, |1+Fc Hl;-Lki4L@+̝Ux"Iej: ~f 2+UDTWh)ՅAAM֟ 46h6PUPy/vb>rcD"WWRHJFXKN C* G*zGsqq\L$siim`j*?M%%{22*l0[^ 9>aV *ҬM4gY8]٬>J V=Qacl;QKN; AAPq Ԋbݟ wSѯI6\^Iq&:6Ȱ,rJĊ }r0P\vH=$ӗC~dJKyWHd 5b)C"2F]&ffˣAW %EjYFEtAd.  jZnqe6zrRx>?F$OR{saa|! k4lvT2}Q^M!Důtu6mUc77/$WU09>}!/)9 RP! 8 šAAM֋ 46h6k,}$< (̕EO|Ⱦ_ 7J!?(ړ v# ʫw\q$ m{䕡*7ZRɥÆ#IvO&X@a^r@Ic-I,kEϢk#kC7NӪwՏ otnqVL"{"4W>Fh֎BA59؈'-2%%A 60,X o ݠ *?  ڰB Z(  `knKJ GlE"QRʲUq,l AAAq l$6^HZ~nqZ [ʾ }(E4x  IF䉂hՕe+)Bd{ڎ l"sg08JJT.9f'[Z^`:]p$_:]1&)Z`6Q3ܣX2,Q  ihQ_M~4G7'vтeKV-_] I۷$ޙþRM=}2ٌ˗2o\  2'QNb|^jJ~fFA^NALTjJ" ֗ 46X6P]@)X6dY,NʞgɱdVfj^j,Kf&yÚV lf%o7)ѨlFPk¬旲=}/O)yB&?4o2I332cj5ya2 bBِ0cd @aP'3]䡹,㳔9vp{'3kYl E>rZufݬ"UDNet AAF5ӼŨGhllS+uMgKul[6o11Rbct~7w)].m MDDpOlU673 x@٨c\Tv+/^$A0k&âw:rXvPd2CxxBP?!hR?~BwP_z`rvQb3<P0ܶs^ɁosU_u;vZ>-F<܏]MMOٷ+T) n~Zun~ŧWcxC\vDk7`w߆;:wc2TAP43 \۲ۻ;r\=z8=5Crj/@+/_ysF$O+T(*^Jᙙ} h4}%Pxe0U~^P" $hP[596mâFۓjV]W {WڔWJ-X44̪KXy(ak|Еš $}_͋c܁U_ooԯ 4c*˸C|y+/]wkmqr 6Y͛xA|l`@Npni(nm;ukh}z8B%QUX Mi4bIV2^^^Ż@% jTS+a Xju7 x(iJܗ:جL4+E4gV= AlFzׇ͊7;"EtE ' 4Baց6pxאC& UYT]@;.oY=v=/qeٵhk"2}kH6zYq/]P# >,ϸ_ӟkՒܙۇ&7r$7~<܊܆ .`=z8*BS§ IJ2vPoz,|:P6~ԏ}-B`dR h,4^Va38eAtߋ .y*?Ȫ× $"\pkrnklF@)'x,՟̋]rYbMmG'/p/+\6\n܀ܰq?Lf-(apKH6%y=@[yì@r8/bfwt`.? Ff\džmAMUϛ=qQyΏԉ| $VReU^wxCzc.a0Y66vxvVo@%W,M\*)8Ź;7W~{^{k߁ً<7v,'_F`=N2iaV(LI,l 鰚P0m_s'2 zd#IlEǽ;ég3N@QzQ@@DQQ1 D9eٜwgglkwz'-yU4_^WՍGdehbN,e TBk`+_(G`m2/Mx^rɡwd25C }2czw_ih ߫QbZa`I) @++D21B dM'4>>jʹ2Pتz/6J 4}I 1\`؀69CP e@ %2f} ,6R``GmfX껐DGX$k#jjܶrY7˃BRWNt݄_wm'?j"eZaNy"s}@{. o@_1t⫀GzCVPσ./q%wBg}m9t |@_ "㨍Cb55E ;9^SQc=kq< UMI׊q<.3]N+W}jYS3{a+SX t"anVN#e;뺋߃Iy[9恁?H&N~p P(J3}M2̏x?t1Zb`]l6rD뒓bnqaq' ZR'7K*&}zl=Ϻ'\oYн!Ԋ*"z;M"61 ak]7_KJ/ (Dn H7Z~My_Pu;&>K5}_>@Cd2APFiάs3/̌UC{WCc㈉h۵mȑ}ٷ|i1P_BMX.!%rUBb+:dol&.W} y,D&[^r; (t"d60= DN#Mޔ0p@Ɯ,ȧEU\a]ÜOut/ +Q9[egIO֐b /kh9ud߃Tz[z 7G4l}`,(*64?f.)+ [5(2X=%K6o߾ӧOqb^b>̀l6Bz:5TWbcM(<W؄Iw39i 1QWz O ǧ5np@͗:"Z ;xH 1^7M` ?1}^6o/?^hW vCRn-$/ U!HQ(Th̟d\ lђn(ߣGla`P4(dQΦYY r_R9qfʘHIO 6}鵖YsD9it{\ ru:$h6cC Ah b(?+_,2ӳ߄ EG(h֋{NkH7w[p+ !l`V-H9tfQ(Tjɢ˲׬Ή>p?yQҹS``GuF/ּz A"K2M MPVyKJyytp& K W m,Gǭ,'R{|ڎ5 AQ3I,W%*h/`£*T tZ"רt= t O h_h}Mal0"I@\)BEJ^*g(`]lC6DZZ':֡t-;}U6%bL& F̲?ac)@.P 4b% أIZ1UC5Y,p ;[[ɗs`Pª)w2*Ʃ%bR`ZsoR}-.] ۸}ז뺉wX=`j]g5C DPQҪ9n۬1!d3ox#1P. rr'GZ "㨎PطfMIB, ;Gl ww |BOISnm\VplNxJCW=+* A_խaDJ2` *"y$]5@Y~u`+ћ@󆆧4*r ɾj$=.1㾁(*nuƟsٜN?adhc ~;rUw ] P]ߦ(fN'M]@Μ3Ӿ(!e9) Z6VTْEE.a0 UNI:%Κ|4D$3tn''ZTaQC e`-Y?ߗ@Ͻ/(lB7<*QHA1F"0R" F*qim7@6m͆Tc4E DP1 l߾=_"/>C ]v[wsrM 㨍a'SĉIII``!w;þ6]@|p. % c*]!(% 3h ^LwTCmws]j_S*X-󰹄,E(<ſ/8%8B)Kws-sT?-` t%1t։Yɷ*Ϲ}.k@'G:Ldɯ貑dЙkĕ( 6o߾5?~&8 |\Kjuu#-٪G!0ĈYjRhb. t?D{2DdSQU ܝl **&(b&l2:yn[]y\ܫ>ԫ=v%8{jCeGT>yQ.:|'I[Ajr雍n;]i]G)H5i%0ܛhZ|K»(;rW}SʿLi;Qɩ_yPXC('䐤yt=)_eLU5 k^wDja; f^/& ~ٚkGW?$d,a3=c-I{=#\L7^ }Q|``,A ,0谀Bv "(Ab/ DV$vX^d+T>Sy%,}X ]Ru'g7TelѠAtq'9nl#2!}5^AߌUB4"(*&08fhMY{3Z>(b *:qLpZ#"=; 24ÅqDaKV]Zt߽UMa|n ezZJ|Qf8EBP(T\QsgK`` ea`^B"<͗,F.STD7 .ʶ*I+^:kZLwypsnp[t FXZVIw`KBP(*~u\BIRRP DB]S+ #oC[S. "㨍 r×s؋ m6YeXRj>BDmb<t+yb^%%NZ?gWVCBI>oe Y~ y̷2ݎ' 19BP(*p$|IjJMz@6@?‡Fou*-QLZY\^lrZBl%ӑ*{BAq>7n h0ԟBLb0HOI$=.mvVr},HVK-[]C:BP(*a`2%tka`u5e@AwbDqjDrBvF,"|)?OŖFi/#]^@(rߩS COxZWGb$sU^{#JOy|) ASW2;*OڍSY徙^nZAZ)r*ÁBP(*՟v&aWB;tӍ> *ee(1X009.h.\ЗLRSIYeF=BPdP|;wGgfg;ssҙ&v/ [yርRt :;rgp& Ae' P( j86sB?0xKJ…qDZa`vaGY˯pEDLy9IJ'Azv4K&t!0#*c' &%  _*T BPqd@ҧ a -0MWٗ,-qc@> Q+RX(p^hR? >j4!X]M23??AJJhmB})ݹzgN5<=pxB1PfԸY8ܶmp1NQ68 vSR8mc_E*T BPOv%]Zn'w@n\q)(kMt̆upa`Gm'vbN~9}=+')fB(z{/! 99l;NȠK O~ TzB Ů*7؍.c&mzC/{ K6#Fh]MdG}5N2e8̹.7*SLP( / H&r@2)dT[̷.sr…QdLţ)b@nR2җBCBP( &^#a&}o1v{d^ e 18jc@*33[_![PȑxZ?1%CNi =BP( DQETf|A>99,OzF00z6V3 &b( BP(T0l(2j4y:x]kRl"z˪ &ܱ( BP(TI>pE s62NMs' 8jc5,IzϨ3ʬuf Y$±Xʋ*JXmM,XMKø^ d" BP(TSO/t啦\m{zc^=-a>? O /Fqj޸1 $MX%lX@Hj P$"4 Lee]PCV[QAar:c| ;+@Еztz…!`оv7!!P 48ϸj,tRlu웳>-RtVdbշ &Q( Bi"կ+LͷnC[k߾KK',O?muPȑ֗_A'o@ƀ'N 8jc5teQ X@RX(B h @?L<ddP$puظ5/kR],2w-d(8!dj@2ev$'=N_Q÷d98 :AV؉C,DPV˽kI@ BPcB2:bmXky6g x+\=Q[Q/Gނ;1PF'N:O" $pfdt^#^c7m5PRHΫ3)4Hg8 HgӔ3Sv!'} A4" BP(6|Kq&L}_8ǀG 8jc-2lBI1=KNed/ Ϝ!V6\'~6q ,b񔗻zp m iD #wu)ġdZ6ggLfr_ZF~1m)#8?eH:3t81BP(T0q=5ɓrСpa`Gii$9G|9]6"9t@񒡀:}#L&y0v,WXwwڊ q*j\lЏ@o&hVS Ns"^2zݡ> t{iwPxB8/|&nqP;!8}:_b?*uB/ۣP( BiOR89ӇFqjɂaĸ!ŷhAd6>0'AT[󲄝(׊&Jc\VS t:ܖ 3g UD`-d t* Ca ( BP&`]{ ㈉4TT ReWE*1^tԹ]R@ BP(TDpkc`GmVZr(X@TXm` =BP( uڹ3\EQn XHQ30"P( BPv }{410FH3 L!IvA`"e$c(6&U^QscBP(JZV޳ۼVk2ykkJOESR=:qge32ii ιܧOOt?>z}A|@%\EQBWymtB cEQ%PP( B4d@/qQ$6f譭 ފr07 ̀` u-QO]ޒ%a"tt Bo 047 BP(f,]t.`@ǀ5\`{J<},Ne ÇQdZb`%JN)gaE EN'`l>NGw ΦD& Cder"wG.41ex\AVjS[i-A{5T!P( BP10H+ڰaCjjjN9 ͠q0 ](Xb0xX%%⡐GIA8TW"Ŵ1UB$Fꦼ6RRappe5;8.Z58kJP( BPFq&%%R4HNNA1C Euw.dM" Yr -ҪT(6ɉ:<:3nZVjӅVjήYe*tܟUX Xc@Qu( BP(ŅqbzP)'40؅DzEQ WZZZUUU#Pmm-dLan 9͒`,~icayr69i%I,R( BP( (2X0$o( BP(Js #&B DP( BP(F``B"I8Oog9֊=E DP( BPc`Gm'BP( B‚qbbX!W8so|"P( BP``GmVx0. 1BP( BiqDӁ~iAfE DP( BPc`GmVx,9,XUBd,b BP( 8jcS܅Q( BP(GL&M4#BP( B1X0d([OO9BP( B4(2p``b BP( Ƌi'3%\#4a-eDbQ( BP(EQƃ!P( BP(10~( xp\퀵E DP( BPa(1X08\74;r0"P( BP(104SgI}Y/*&( BP(J{ 㨍 "R;.W8?=.X@ BP( 9Fqj':d'U'E DP( BPc`Gmx;,H9( BP(*,%QBWG3;X@ BP( 9FqjGNcy"BP( B4(2pa` b BP( Ɖij'ȉ2=#BP( B‡gc`<b BP( ㈉C 3֭TT58 ( BP(Js "㨍 q}qqaE DP( BPc`Gm'BP( B‚qbZacQBB;JǂH,b BP( 8jc5ގpvT"BP( B1aro_W/%E DP( BPc`GmVx@p7@ BP( =i~az8*pJ=~_z"BP( B1X0uBP( B48b`>"P( BP(b`H+ wacxF8 c16( BP(2X 1pd6mmlf &TWa,Ɔ!BP( SEQrvHr a`I-)b% ~XmcQ( BPgaA`}{{&[a`FX^*tfA9rذĢP( Bb 8jc=Ʋ5O3 BY(mpc16,( BPXx10vn|r|zgc2l#PئƂbX(cZwXXXu(*106V+ D[0pStFaDZpzc܍gm='Vx & ^W_c}l,IԠ@"scW`ƚU:0c1c1V]l,+ee`1bN#r}Y L'ݐ/%'GQ799qLֺmO<-t~.pB+k.SbcbAE6bE/c,b,bl豑W᳷~(vZg<,~V_h s~˛-a}o9c OV=UW%QOvq ݒc0XlX1p+lr$ׇ:I f[HXɖ8ﺿ;2qɯf$XwwjrR<)d2b,byrw'pNsuU9U/i7e̺UER0 4{QW}}-` L=(T {ῡZn1XUgdPWWmqY(uLꚬU-BݲmJ\y۬p DHϿ1}7x wə?U5)+e+`n<.00fMK Gvw˲NQ9±_ol߱SnLcמOydʳPdOϳ/t`إǓ>?G?[r3C[m?_%BZ,d gBMgpp '`4V%b,bE>8lu'NCa7{#\^E׭PdͻNI)JvZ:jdM]M16e%9^PIYhWz U cPe27etxˡl+#z[Mp 2_vֱ2]4xך<> 㨍 w c/!9 Ć0p;_zo/fc~:?t}-[O䫖W'CB} M@g#̭;s k!tɳ:}NЦcnCw>ֹ0Nl_|C-[=k.aJAC۴m׶}~>7xacuCv߬qjպMۮ<[z0o @0! ;Ǖ] ?[KOIBa >5f;k-@θB:K>%o4WH/:rQ )T- =kuۅ _ed[PLb`Gmfwi_a{e3"O~ߗK֮8 dOz]I>'bhhh܄56rTgGMnf{.Pٷ0yJMKTvm/#w] x6& )?"5K ܼ1 rE(m.Ĩ9mwЩ3m;N8B<p~M@>x@>2}kwgݙLYt0W177o)b bZ6!Ì%g):Rg\ [aF] :򴯮ʀ~d'Aa0ͯYҺg "R(@4ˁrX/sP0[VxPXk5*k}3+}(] 08x00p۶dnqm\ok  *T xq/W}@f̀sxʘ3᳙46v8巧~%·>T*jO ɗNl֦مiw[WLe#F#! #\`¡8bfz 㨍 wxcjz6ڴ{7Yּ1PZ{89.O;ݒӦBnӖ۵Wek;C#KPp5xukCYˮTR@VZJҳ9[_ҿ`b`8bp`/q("ja b`#0;Mph3hXZpa 61 10-]WWθ2{Ug 1c`GmV `Cv?1 100}` f=<ټWo/ϣm@v:YmE }U?# B2e@aU'RP44@  "㨍ƒ!!Fe^uL@MEr6qߝhʞt'k-ye2OϧG #C_"樟1cRȏQ(Tx10NL+ ܺ0>r wzm"1 ])T.(xd7ˌ{/sʭͷaě%0fGY8gԙnK'd l1ySX}2PR1/XUNi#786͉ab Fqjo@ ոl`&`"ӷD*lE{*Y,'C>oIm߁O 6bn,Weׅ,m5&f-x uUi\qKQ"alYnN~9 7/2fa9s=S_I3~?ݦs&mP(ߦc`˖-[i eY s10cP6fnjł!Uչ3bA*q>bi0&=`iWWjre1 dV&Q``Gm/֜< 0`[ߣ4xs`׌,:h-MȘ}{ւT3ڜm4:jVv52˯Χ_΅g:_͐ g?ܥedظwJ-^4@){k?hwSQZa`1fPN|mn;HlJ Mg)(@4444*MeéL6PYqxP?=NΠd. ,: ,bl.U6}I7==FqjUYRXl"Lx@TjO.5 BԙWAAŻƱ^8oּB([O9vg ,<CP*X{ Nu6,457d89ep``GmVq&Qx*lDE d} 8j2K>6XS癸? !yY4imu+\hsӘTg,-~0@>_ئ'%ͶZ2cK[_ (@ BiDr[J53Og[n{*Nhߒ2Oh .s _[.{ῡgpr{Nw8Mn=Ͼ  l>}/KjoWHBNc eCD d ܭĄڼ4NUQe=E)|ZϘyͳzyZKU~;0N;[T@P( B8jc@v [}VIV6m6+ ׄMr9eN>!(W6Wq}G`uA!P( _ "㨍 xf :t2'epP0Ppi \~qL? k}sM0 6p0(@@ BPqbZa[ 6)G8diπl>uwn: ᳁ӷ_z 1BP(T|c`GmHm r6lpoۻĜ7 x6SQ]1OO+:|sU/t{Vϡ4 \@P( B8jc5-drWE,d&j \)4t M[)UU BP(*~106V+ ys!*'dÍĿo=uy o*^SKs+_==\%ԉ@P( B8jcu q޳.Tdl BP( =Fqjqa DQ( B48b"-1pDW VE0(b BP(=Q\uڍ\y߳I8± DQ( BbZaT藞G bN~եwx*Q( M*ᄁ_: `Æ7^.]~eqF矫زu5R%\|HljsVzxޫ{Ҵ4'\yer[C$9{9s/RwUIV{҆$x$O 18jc5طf |;Nڿ|iBnuW_:b BAFJeq =`x_TWG%)c&`b:q¾1`<=7?R#vdiR2ˉ}7NJH0∉ha F}2_ |ϟvtGb)ԊP( ϝKRd)ihZ`pX4ثW^ܹW^1@)%>m/3J>Kyh8t(!Jkp ,v YY * Gφ}]-o]%WXaSh3}z-[ a O^'\_GY/:_N ˈ5o'nS@a9'b!sF0);bEQ!Ƌ5l'~:仓 jR[oo 1BP!b ҺuuP!C:޽d6 +/_nBvuP:Mb&UNN55&N ֯ )赓g)?y,MQ%$8ĖESP{jRd<#}'%sdK`ls^H;{:>j/q1(@ B5m@~C:֭yy-[f z%:Cp/72[|uNKO—B! _9e/08ldҤj ,+se0M[KJ|s*O8@_djJx[oU3}dΒj56eX#9/--|#j͠3WC|"V00M+ \/2 ??6l 0}ݞ~֩O]pv:6=8tZwC'Vxǫ ʻ͢IVaKWV}nb>%y"eJeC84'%fCH༿-FRy *\Ϫato8`w c+ LQq; [ƠRSS[hV\06h>p;EW .ܹ3 5!! hjvRY~{= aZ/.v]Kaj͚:(dTO%G-;w?soHjʔj / wܡcKɓ;Եl* zV0C,ۡgRFή]K``pkk=@SJ?fg"F$)p-9gҚˇ; 0|OlAҨ.!3Xm10.dߝyg_{z~fϩoj?|ifo8.@'>+vβŻz7P` (!7)i n0~X5? K*}N>.Kr[ytV5\alp);*0}&gybρOiiiof.]ڵkקO/~I?ÇCl^u6mҤI;v޽yDk.ߤq`TةSA}w+WÍZF]1R;-[J(T10H3 \W Aqq}`6C?uýg^]xj1:km{noU.33ʮU`ֳ2Z=nm#oF /ۛmh"0eoD֩<طo_(0֭[䟐0jժ:[ رc!b DA… ].ɓ?_3wO=͛? 6l۶-D d=x<̏?`h?kx9Ӊl0P;MOOW"?~b 106V+ Kċ5e=?ã׈o{|zht TUnLZ[//0=׎,9'`9_ 1Y܈Sy` ;*10/d@38?NCH) 999_}8Gn7SŊ#Fêb ~ c gϞm۶}'-[|}2$;;l6CO>]p)Stܹcǎ&M|;]vW^nu l޺uk_.O'LPYY*/* F5khO+jŭZcg ^t߁,XM6 5f{JСC 7 ,oyԂPO@lZZlB222OQ1r |B' &cuhΜ92 f٬:;w=E_-[ fǎcp x޽{ɯkw̙m۪J^?m#}:}tBdl߾]a PEڵkW=NLLӊ =p6JmW蛄j*?HީVy`QQQdZa5Ky}dc=3[t.$<=hqP-V<3QLV:{/JV5 > ,27rB@!)'~?Onn.Z@p,W($9G9#lt:+B6PǏk.@(۷o̘10#FHWP vQ~"?#k@{6mڰ Z}%''ˆwbaT7*.\>`m:uTNP-ff؃9@}bwW 5lm}hBB])u?4I=^7rB 10N1ԩSC>vѢE 0_ LTYJNanYj1 ҥZ LKK70#z|fXO;N£fgUWiJ60X[gϞ0f>Ly wV H(]{I@$T9l`(z!b 8jc@KStuE#/~3c6mbo]nUaֻ^]: Wa6 i<ٷ=_)2xWAyo 74sjinS~kw׎,1R wDcOa`q,0DfjhyyY7{7d=U6poo/TWW׾}{~I&A3V矏;VR3gXRR(3)))E=e@ 6N@`U ,]* d 5=@o|`4mG 7k@,z8=v{>*cƌ"f32u6w ]vd  4}4Ϝ93t8 _ TuQ(𝊢BJQQdZa All plX)10X--- >mvO>ӦMc+qݺu޽gϞ 'ɓ'ڶm[h Oqǎs-h >L83E 2$XWA[/rž`[~ڵkWo߾+V`! Ζ-[z^hɒ%d vذaׯW{HE7M>-_&Oi{Q7߄Ν;+BGIURu ґH*<ߩ4SPR6C DFqƆ E-ܱf@b@TlJ ۋD9]1@T,b`GmV*U#YU_X*G$(b c;9"P %QQdZb`fQ(@TOk׮sSLiD DE's!b Ĵ%\oKVrU#+,8pZF*6޳ YSt'KN[F 8B D!P(J٫<QQdaJߥ}d=Rgc=I~u9f/N.e{s-ܟp[y;BP(~m6! 㨍9[,0_Y"& =/ΡؘLvXn0gF{Ymʚ SB DP(Hx!b 8jc+X!8 5ᏍlOdU.ܟ|鬝;K)..;\~wRٶs%lLQ( %֖cfc(2X-10N,޳֦d uoLd}*03~}8#wN5tnN.y`InB/fddo>~WPظM#vmP(Thb *00~H+ \ċ{60`jK-?R; p۹ %5ɀP{4 xBӋjf@ޮ]:zm6ۤI:vؽ{yޯ]v1yyq:wPm6 #& z[ANE V{6U*kGc:4d]퉬J D]]%/7?-UikQ-:ha¥K\c`]]… ].bݻ~knС߿۶m64~4:uj۷oQo߾[ o&Lҥ˗_~4YׯdȐ!00 e>v/-0)Stܹcǎ&MlyEu?nv5oɻ?nږ)jpE QD.XX0[( **HaP3f\/1|=ysB[2FDD;uppϏ7*84"EFFBC*++I9o@ƀ ܹsa9y$/dށ,ǧO a"iiiC T낽x* Bz8 ;n.`з>8dྤNJzYUp_vռL!s`k?xWsJZ_q,@퍙ҡ+egnf4MR)dV/ Txd,uM_{Jn8-m+Vpח^9s&k1{r?% Jxr&9;;긾B$O]]%K,Z+((P.""(e˖AzPɪ;w`P@hNsЛ3}t^ҫP0UVAyaa!VWw\ koofh0b Bz8 SR{P68uUlࢣi -z@F >_K+]z,jU|8so+` df j^Us1.fff;2..ԩSJ5haa!P1͹q@4 'Ifgg"=# jMW2%%%+WD DP(TbG__aQMo@w¾5@= 7_L?̫˩Lʯ$#(i [6sˮknc$_bo<mj:}}Wd5N4%M/iJFзfKa+e[.֤K[8 2Ӌ@dDl222qB -j.KNY[[>\RqozrwwOJJ@n@;A|ހBn@okk#s6LY2u#F P(W1Ј0κ+#E=22_( oc({co շz𡋋 4?w\a+VZ o>~EP~zءOfgg1R! Bzc}}{ 5)K2aoM_S ׇRN?i}y.=p*dVL&7fY]0E?_>BIyۛ367n[}zZ-)VRv (YuЕ]Wkog6E7MU BP( Bg 4"k( B:bv}9XE7a7>(-.~])s?aNy|N첇٥,95su@77X*P=[ H谾(K> RPJP(KmN:FP( BP8 !$ DQ( B &D8Sl BP\mEdjkU7>cbP2**'TxGߦ:*=JiԑC7Pi#ы{Sd-ma,_S iKo֜,"?uO^VP_RҨ Q( v1KG dC Dj2SIoh0x5{ms3h%%dԭ4:0xa1$JlҺ-AQ( Ů?/}xYIIT9y?}QucbJ}A]Iiiy pgb w߾y* |%έ ]9n?쩼i 6~J5? SԣPŠ 10pAj/t<)?رH,Ialn!p35BP(]0w3+HUdΰ|Μ|׷zڴrB̘\߼?Yç6<>\NnIb}w@+[&͹AaUQUG u`G__b _k~7_yl|^ ͣP( jJ>fL57 4@-S(T() /}iԨw-8$ ^m,Ք3הRcVEQmT2*Tbڟ4HVmd 4"k( $>QX:g}M}60L`{/}^V%o͖2BBᣢ_ H1S h6]@iB!P(T?@W_k5wi|\\< @ٳ{8Wvq))Ϻ)^_~yBӳǎ~`@UӤY|:C3ǫTʻTS&s*ߝ*ո?06q5|CunHj o6}k곁by1Pg0hzqqJ0)WP;Q(j` U?yIڵ&;ӥE H.oӧ5xxT!ǁ:ͿPrVRҝl3A #2~L}6i:їx(~:x/.<5D1-0sKZ]E?fQ=iDb BPh"Pk&.m#^{Ǫ5ArZ53L#\÷4/[~֠zyru`ʺ+eHRkB!P( lh׀h*gi Zs/5# 65} L} ε]]w)^P( L$灥wʧoL|$HZ"H_J(@ }I?(T0Ј0PD Q$zk{͖?HP(/a }0baOo@ D!ǟ|I{UvveKKˋ A U rPs" h:L{CX;!Ъ^25)Ӗ9YrE~"::Q)|2@6Jfu%Pt>!S$U LOOwwwvvvuVr ,ooo;;#F7.00F#8H;q Q$'/_vttСCRӧOAcc DknxÒB;w#&O|IZaÆo@saUu8q"C !Nee%]͛7b\\\bbb ԩS5P#L6 EZ++Eڬ{pcC(H#rDDرc1܃YdCH(>SФv{u"Ż%t@̙3tkabnn^RR"bpZA-әecz.v{2J zQ s7 k۠I{(:bO|q62Q qQ.\Ċ 1pٲeMMM0NQin90rAypp0mbŊRO%K-Zka H9mB#BF<<@.3,!, ,BBBϟ/EKEO q5nC3CEn.{8B( ׮];~x5͘15ŋ_~}̘1"EEE WH333hYFqt[PH9]͛7NhaaAvR !C5}JJ 1jn` o|8B{ԩSج P|rrrJSIǮ?Pbn>out )d•aQT@nTQd(>Igq5$vttn!Iwt !@³50VyyE/cfdd@6a=+>Hl:emm=|pr QO5 5U#^geekÕ"F̈́Z+zYǮ`67PLxzzBww$ˆg`#˻=}^xTB-@.3966vmmm@nJ=zC.EBzc}} ,ڵPIJ}M}6nѴiv'iD:' Q?!c*}w !wf.gM@9wƁҾGZHW!԰ $yه5\~$$$^Z;NַB Bq2-jgg*qCO4yCuB17Y(z]ݞ)SN]w)K#t֥m= ]*r%Igq5v4 Zb[+jUkkcW=:"ڬ0c<+QKJJ5_ì1c;߿_R#=M2e֭q$V9}Hjɒ%0('IyD^^^>>>50&<==hB#B(aA+W*JP6vdH' Wrp1  w܃6:64w/VQ&L!"GSMN"¹rnT/'4tP@-Tڭc/bZ$!h,`B-庤^5@ ; @|? s;L7v[k((A D $ ^t駟~:b[[[oooC9 bϝ;}S%`#r2:0҆6mbqbn"9sҾ! #""/j!FކQ(IPZ溇5 ܧOCeca okY(8!_$^܀PB^k{;."rY&4%Ouv+~Z9_G B W֘eؖ0 jk ܴU ]$U$ghBLd0 E=O!!9o}l[w-wT<-]R! m<Hl1~WV\OkjU밾a1uWj*+ȕD"!r''[{ nZ]rݸq?&!n +h5@ {mcdUMWSKM?7)0$P0)tQ*T?*5BANVFh*Nx_?ի5TpRѣGbWP(c1G__a`6f0Ց%(]gfKtX'BvcK{0- ``ki fgo*D*}/yEڒ<% DӘYǫ6{޼—'hREی{H_qS:-9敶~uWJf532. V};e2  Ϡt(QQ( B8UkSPga*0|7aK#2V.$lV&q IR]"QYʿKj4GtiO阀+)QMvW;Y';m@XLЕ 73&l)IDIn $]ƪ6BƑkJi BP( 7q5uiܛ{sIv۝0x5eۥ@A($-_DfC3=95[Z&pܤe:bSL/ jڹpߣvW1N&m[ Z:JjX:`Q( B@b"aNy"wv2R$aȲ}07j]lRTzYuC sON ~i;`ƋvƥǪlV_q|)l|+bޜ)G5/1u)׌"yS@KJ ;! a!}]gUBP(  4k( 6$ o3{_bXL$ysI^z,}ߍU~>p"ee^dpyD[v PQG dGpV|! ԷatnkG! mXq3!֟!bf8BiO$NSrgm(@-[ eff۶m0ayY4 @C dd(//Ѳ7n\`` *Bx1И0H@]V+Z;v6ob`I5{Py`{:,'l){{AH]] ~7Ҏ'Ջcnͳ|XgEƭZnkG!huc lx> B%K,ZJ`X WX8(þ̙3ie˖@nx|(W*lH̙3ӧs1w1PhBs=9- kkkDrE@B!@eW&햁q` M/ `P(P(J 4k0 ܦIne7~QX^}k곁It1Ɛ0$6Y~1cH… 0ҥKĉ0p"2dx-,,(0S.fffWskOMME^ҋ1ČuV<~QQQJoPzƍ\ vq (n.fmc@!@YYY1\h_:::cBBouܕ:*~'ؼm@N`ɁUxMFP:bG__Cam&L}6>TI< ߛ= t1 ɚ:vbFFI>$$dʕ111_} lmma6|pmi\Haŏvuu_kkkÃJ"@PNy[HG[[ڸ;ɺR\Kt5HVMIRNK(*RK%M7t1T{Ҩ/~+a+~u]OjIc_ DL)k0nnnҔ)SvI -,,C[n(ɠ.wF.Ƿѣd[񩭭%cN2hyŊ%: .u(&yzz=l w!] bVcbd[% K'OA'L4 +99ӧ P&w;ڦ;` o =u5<$$wmQDPN"LCvoHbМC%*ZII<5uHvHFd}} L}6o7yӳswrFe0Jߴis6o<՚޻wu.]AaaaFӧO$6@CPH^~HnE-oU ---aK$eD\*)ThcccǏܹsl\hsV{Ϝ9#:d V 29OZ"!!i;pĉ]~&]v;ږ aY[-=8(d.T[ϯL{7o6utǢ>*~⠠g^k!2?je|P ^-tbX%1+f!y޲ޒ66*©,͔_.TO槔tvm-T~1wC0T00@-`Kg麶h6`k|_l b j0c ʴdOP^ʿxQ3yd=ySW$ ˝^ %tH}}N-@f*oK51׮^Qc* BzdFpۜ&Uuq`?C2"k0 BJ0)ymjH!HD%V!Q(JH2|'(Ҷ_JSVSVV1cJ6oK7  |b 8bH&?nyB1سM_ann+A*Tp7Mzexڪ8*\FejzBeFImt7w\׵uJqw`s_$O %B DP,Ԩ~ pYl Y8|`H09Ywo]iԤ~5IJ櫋YY``FFGGF6{<"w+Oi/+Pi/sUCT/5O8 m-TEna{w3jH2HfaqYً` w2% BP},ss]-ZTY!@Ia\\_TUz$DYVy2ۻysٳBW6BF,o /\|"@UW㷬yhS&s*ߝ*?02q i`b A?@b Brۗ|A_R\4'%%Ϗ?.ٵkƸ*"򊘵k)W3_5+bXAǎտN!L,e9&:98oRy9LEYiAҝFw~ kI Y(HͯeXv[߁1{S(b 1BPCMK(A #2@΀̬d9};`}E Wi_'.%yJVE?"л8*I^$ BP(>(74w"Pc}} l!3dN;rAruE"Q:Ub+.pJҥ-47a}+),ߕ>k B酁&^ޯz]4( K 4!&2v HkoPGu.Q};0fGJ"8aK[uMw6~5K:iknoi(_0 5x0_mS?9ٳD꥗Ϩ_ߨe˨.IIԿEkԻRSݯ位Blg)`%=J8 hwM]MT>~I9S:sYG4G°imWiJV B!4AR4gk;F͘A߹#nߦ~SjNVXXīWYeBڊ&C "P,m܍B bG__a&T }]ܲX+.0_0 c 8qŋ+++ihXeaa1mڴ<[^^>gΜ#FL<ɓ`bB@ycc-د^p-ARӧO0 =cǎ_pb T)1t UqND&Қ0rv!~=Y4xÆ Gm 999-Uvvvȶ߼y̠]\\`W@vM:5_Kƍ dv)ow˗/;::66 5tgi@JM'WoԦM:#ع0c307v;;`(x";wmSWWf~~~nnnc0{(y Ł%K,ZX샂/2?%\xJ3אK x+2f_QQS%%`sԛoRڰ|Yٳ!_TTTZMMMХX: @ח^9s&ml2pT۷ 6owARS5xXݳ1@#2@:`Ե.R R  r_ygߞ-mPvЧ;`(Tbbm+R2d @yaa!)yf_(\$8{{{b`EESicJyYɡf͢{OoC b/k2ii!EV1U]] Cfi.H:n!~1c255 H,1rgPw`RZ-Cc9Ͷk:>g?1CP=@2uu2zOHH:g%<%߽{9ƍ/̹*^mjggGiVi,;w:x1pDjʔR6YEnReFEEt@ѣy1PQV)E=LaP( 4k0 @m`ԨM~*^5@ 1P&A&.. ج\RTݝU*UYY]._({yyj_ hCmp}[-NbuZ7Zd'a19s@9yrʔ);wWXA-[Rs݅(aB bG__CazmK}k곁(b Feee5}n1` fffjCsh{"qV4~ӦM3gΰxSXX$ϓR!cZa&QLc~7W6~`W_QP[En0P 2ooo(aS $o c@x>av1@c1@F|ol eh(/'qP=P=KC1x0w=Kӡ}q6(H}r)00иqP(quࢺgUJ8 }S>@Zmo/ӫo|q6NngQ( u@J8 (SIc6q7F=w f BP(q]S,ڂB b 11p6+yuWvmF_ֶo[U겚朒LT BP(n{6 PhDPrITG7 Lx"]QYR9>)?+"2þ BP(ZIRuÈ(0q50vVf֫`6VGE55 O}O>:-QՐc>;Z[[y#E>+M .BPD@1o2XvZSH |V[t&^Tzپ 4ʫ2kdP~,vV:y]u@4N/Zn=y=/zfT[;BP( 1Pc}} )fZLuKk곁WrYgߑ^M-wT(Crrrzrv%H~"_[d:<^ܳ<9?YB>9(oP%JUO?hǢʶ[^w+S۳7"f"P( B q% g~S)jil͒|T^ܶ7颣iGca1;.OшSRTDJ(_*iGS%nL@ɕƨ&Em{9E?js¢:(YW@]|6c 11BP(1%aMek "b&%"wg]^M-"):[^')q974i`ɾ'APqĤ$! dҎg'l){kM_͒NZF;?L:?.VuC(99&L&EąaxA!P( 2Q 4k( Zu ȇ.,OSV7oMc+ddUM%k0pES%L)bQҎs>^ b*(iTvՠTsⰕ \Iq11BP(Ia 11pugZhKy'>j!!DKN_A>*I>*R\Hj =}|5fɲcU8Kt>^ d<Ћͭ \YMeUm%BM%1BP(T0Ј0p5DK_S ݲmg3t]m5k?&.w 3![x0b`,G67zDj5YZ"6U1BP($0Ј0pd곁mmm=rJc#fYl;.BtIYcb?/NRliC}uM*`@況,wTJ/WHD]˷ BP( 1Є1RKJJnbƜaq8d![̧:mˌcǎ鋁M֫S/%7e)X&o8NVs𕚿..1])uvfSTz]^v3^UQ( Bl Wqqq/_>wܷ~{ .DEE鋁9Ͷk:hn P e=@Њ,,4[.E DP( B D @ 1BP( 11pP( N:T_)); ׉2]>\gn.'AAQFW{=9JzCūksQE+)&n0 qh# B $씅 GE0蘙eff`mf5ɀ-$kcc`"zm||YF%HUpvvvuaSLٶmm>W[#(u eOM``AES)%]@j*/툁՚OڱM]M苾;0PfH#L#6 |^bu/b`@T[[7uT޽{W\L Ҿ 0,, U*INNfE1bDBB OlRwb xH=u}B=``Kۤ9Ws;(J/4 TR괙:e"c*E^E da`ttĉ-,,M?P-""bر!<<7ǍCիW/R~eGGaÆAp1\x1҃9ss'O$GFFB#TVVҵܼy.0<(TMK^gN>}\a H' ܹsY.GĞ۷V=Z;^vnŻBz lEE4*"-!3g8;;3%%%\c}w.G!vs$r 4U=C̶h\lǏiΝk;0RG'!/17Q}!Yjc, ɿ|h⨶ pOf1O$l3*PrT5S"PkX_@@~~~nnn\.L||<644`7e˚`۷+V/Rs `L"xxx,_~P31~2fˋY o0gΜ)4qh%eɒ%-h0Ft2ӧӻ7۹ݫv zZ"\x;S;2eb2|!cvDGKK"=c@; (dLX{{{@sQ.\$l.j❅7e@NaZZ w֯FH:=l Q}i)CA#TGAPj%KJh` .HO"+=!kғrE^E da \bJJʐ!CC51:u^$ njCO-׌7o21S¢Bu4}Džޖ82rgɍ7ȶ @n^]0ۮ`fVVVChD`G]vQTB=BGKS=n7UdhX (999P4eXIj.?~<͘1̦qwC$""h;˰:xnذ篈m%27>LE>P&0Y?^ߧRޥONSžB*$igPSؑ\D)o" =HeÈ7OKzI;YYcTڌU#nXKqާ4}{NA;.Hn0˹qE8NE V+ 6C966xMwwQ`J?mj; $Hȝ dY.Zɉ< l,+"?Dfm-0V{>(_kjTT| U_Ry9LEr+)PaNc1pb`tNt+]\u;EE ;pىFEEGXX&`F&M***0mIIBB.-i"쓕,=sBF]hvO(΋np | #wޥCy-YO?pȡSN]ϩ1_pG-BN{$ul&Lpfߊ+)))Bf46ܽ{7׬YI, o8P1|:u>Cufγ2Թ jdg#m> 9^T ,X r.#ߑt}/b([[[a@xQx܀0$FM2e֭9s g+zxx\RTݝd2,inp+*8i"CKbLJ<$Hi}J?v{Q__ҩnJlllYVVFGI&ᑜleeSV";"22dС? x_|Gv+o{:YMZꈁ׮]#o 9r$麒r=sg̘g kll?~ATHƒB D y$U!xSL \崽ÿ 6f G2#\4stnǓY`a1㡖rYr''@8o3fjwӭ HƒB D =rC.I5Zu [Niމ7c@Q nҌ[ .,,GW2MrxKw0?ͭj#@@``zz:ߟu jjрn?R$<P(@@1p_.-?_=(rS&s8ygɢWvqgj̸/i_1>hE&B D DP(}I?(b b``ҭKPAաdmA@"f/l5r;{#b b B\HAunn NW0K͇|‘9eb BzZ$aP:bk5yEyEL0v\߭Y 1b Bz"Bur͇^`etsV뎁}З uĕmii &2,{Mnic/gUkݡWO""" I&%084"$"f,;cZA'>sz|ÇdQT>޽{}zI 4*씅TG/"zT,P(@@1Ҧcg|5va:4p(2ǷeH8iW1!4 CJ;XԗqZ[[ 'OЃdsyyq֬YXϟ7oٳyհ"ts.d1>>~С=Eb^hrT݀GC dbsRODQ(@@0&^ȉ'ZYY,^UFGG* iӦ{B1w#FLEP軁q C$6!!!2v%K-ZuAAAn:0@ҋ3g1vx3裎LGPeٲe`wo߾] 6pGX|9PCнZJd:vӉjCz 111b`@-,,!PJJʐ!C T(H$1o@~W111|Ν;:2&\_ْEVuׯ_!.d***N:U__O w0ғeGt.^H:th 4.ޙ"xE@fҥdĉB҃ vד9P^!cV'-,,$qqq,55 H:gpfG'^ BāѣG$ݪ7oj B0s.ƩEQ(@@@La0jkkkmmmee4䳆0|@-Yw~~>Yx[ Sf@ɛ E T*-rg}ۙeee` 5w\BCG&aa)!!!!+WZ:a { n͓nw8H@MȘw?t @E3E}1PûmYN]B[ȉ;e۶m6Q3W I8G>Ȓ)MAnF<Q,!!{&s l hȑ...@ fzYEEE&J244Nܘ6++;%LEƽ_5w-ԟ~^Pb„ AAA ,`Uogl ;v 'O|Vۘ 3u{Ν"ƬNwi>c3zp5<^'TȉAƏOSPΜ A@ $U$3B!"bQQMJWZ 0̃ }V?ry|||kk+ѣGɰYȘ$#iv޼yfnܸP Y$1P36XXXX[[ غu+ZnwEDFF:99 :^cn'{yydL 1 !8#O*RwҤI7oV" rJR www9P  DMK[!(s=΋w445Ɉx 5ja- cPh@ȊzSh@@=}!EvӦMd0@IwsmogΜ+spp~*CaރCh(_J  uІ`|߻w\.]DV u(vtk䆆z_;::XB uiYN]B1 POnOѰ#ڄ"v"9Ifffmq # B D oG/;B|&yǃa O~u(eI[>Wq-.1J@@Jw,?իH4( 8Hfvqﮍ|la^LQ$]LolbܦA^"N=[jdF%Yج6{S%^P{uՃ;e5Pl)3BȵZ(|T¬uLUPj HOqUxQ(>nd S@DBnٕNNN'>Q( 11p;!,Ҿ#^_I(@݊{T|F-,W?_noT&XÆ/1}Nc#j "i^s@Y+]8y[3juVu0PUZ԰E?&,mkW`Q(ѣccc+LǏ?b[[[{GQ( 11pPfj>yI#2%, <~p)! dqӲ_͒Z[YK+Β+6RE0rE=m*t= *ci@ p\Ѕg=@]ZED&+w^|b BP(b b(! oZ4Ely]fqy>+DG k)K;7{n$\yyr>(~:kxqqg!iD[ ]a;iknTb."E*5O)TQ( Bh ]ΩE! mG^G|8ra^pz10TCm5a~@r͑uSB@~N33|%ޜW%#@]ZW)i *_*nP(@ BP(@@#QY\6qXL˹.d?u~7y?_;*[PvM@Gy^̰k|Q3w1$-m `vbnF3 U;*PyEu}J̯h!||^%%-la`?M/`~W^9>@Z\2;dʦm6  .ܿ?4o4-ϱ-CzM, B!"e3%8P w6UևT [p;SsG1~ʷbËBw[~9Ŀm\t]}~~+JGmT0sK5}ww@-(*&+P7ygdL>=L`r6:*`,dee5~xzĀ-kkɓ' `d2h䖖]tqrr _e2eN۷S l0!$0J( 111DHw r!'4Xly_uNp;otz_{t_M8-\yXlƲ99J.4~g/٫3&Ca,JrR1ДRM^ u\ Va>8 k֌-/D"Y`oboo!C1O> ͇&F9o<;;Ɉ+J___.>믿8B(} T5ҚY)c\;t`o;8a{놸w.&b =1="Y0q+0 nl@껼#@:ubCˢ ߿+**1ٳgalߩSvt 4mmm/_N!HgR~޽{@ CfggdW^^Ŧ>>>@:Dqƙ44-צN=>|X'N @ ,00hvoYB6III7o۷ǑC;e BٳM@PBBBtoho^&8؀}x ob7=nٳg̘1BPPI»RZ$VNuߊSV=u)p+Zzk1 d(N˦xYu癃+='LcjMGA-hfVC1<m㧼F<:[#W\W%4XcRUVCYˋrӫj(;wI/7m4vXꏊzxx<KRRB r30 򪮮Kooo~ꄼS|UGPw Ç,ۇzfΜ !khիW2o vo۹" ̛7U^젹pȴ{j4551ҥK]v5-Zdx~3<\6m9 xJrGS|zu[ZxVti77J<Ľv]h*2$_$MQ! %Fb"">IV7xv9x:` fY}ocH 8ീ*z.)y%E'W#NI XY v>̌Wӂ OϵoСCt+'&& m޼2..N?G* `C=1 ogi !!GX-,-@Ԁٳ(ӌtVcccaT֟JlccceeEA$33} ţEs1/$de>4>LΩS,;ngW|l} A62Db֍YEw0Og*L7"Y w!wL[ɠ11B=$ [<55-&&mDwfmر0DW(rsrrO-kk-[zT*߳g %I=1Xv  ˁ ,-- "Ch ꗙ~|s1 ={6 gʕc̬vIysC~kV2Hc,඙:;+-X@?I3 eNFuoZr}K,ӿ0Pnl70yJ2aFe`_6 hB6mB~q4 /xPMiIDrmp1@ZRC$o&0IABu%b b PO&pFk:]vu iAAA b uN mll`Ɖӧ0&'?N@p ̆ blQ(WsmeyTm۶Xd)Xtߑ#G1niaaM4V`X4uԬ={[Y~9Lgpz̄t @ vsnСCu!1c޴MKno+9ېg]v,Ƀ; vxc%~.a#ЇQ|zdž6`ݻ=7 TqVP7{s~mCQuxQ$p"Z%v!">%dݤܻ ʸ;eK*rS,|#rBzTȸk7nea )… g|}}[J-j*+-b_~;^Zc֭x޼JzSM$b D ƐI|aPe]Ǒ0ͥ0Xհfɨ<ǿL&HB|U@'v6pڞynNߛdv2rN1:_CrW 1BPbEq E@1XQQ;b*@*Ga-#5oݿ%A?*1ð.f*,캱-\0W_}mY_U)tb BP(b bc=Ij8%*APy5rzy-Qhr附ccD w^zSB DP( B D |g\h:NoufADEŬ&eͷqQF$V-F_mf+C/8 +o[5Eo|Wߔ 1BP( 115(m @9fK^|4mىA&lO$_je9ࡾ͕3a{yH<2M)Tl[rif&G!P(򚽡E 9 j}mW]r!gtޡ+{kfMۓd{{V)ʥ>-|26qMNV۸bhD]}G D DP(Tu1E[{֞˦8zSAGxjI)#IG< ED w]84e9,=~y ʹˬ#.Q \UKKCF)xR"[^?L-M\3BF ,+ɟ t5Kia׆ .,Vrs:P'm߾jV6y M-VVnC D D D 4,,w$% J3{-iAfI_!.X շ8\g%jRKQiђcGe_"q-D~wc )~+JJ]8i[r6QYVr~٫tO$:C6jS% fsN_#/$ kXB.Eǟb`3` -۵kڜp_L"Xrrŋ3۷/{IԾvT*;wnZ/??={BeP([ZtЭށXߣtl=v?gulb6LJ"iZr9})y5_Nȧ3b1}qO9[Ze`+KIDP^j{kNgޒ5B5|Q0eW2mG 9@+KuhqJ(Ա@s 9}4\R]tٵkh4'!!A`NND...SNwu@@ر#iUXVVֻw烇VaGFDdiѵB1111а>A1,{w^S7^z+~4(O6so`8b`*`(դ 6&2.X@"풻TU"F Gnx<h,#T+@R ߿СCi={B޽{% !E> q +**aL&[` Q(l̳guԉKF.]b#uekk|r }<۷Cd#[G'O"`#4魵k^ؘ"hܸq +:4ƍ!raa!SSShBxĉgϦ%k֬lذP8]+t!"""(c<3>:{}{竎E7rZ:`KUޣ^w0DsrLoRxG qN5%B]qD`[sdBy.\اO1bDNNرcYC@$%%Ҙ: e0V)ʘ'Oijό3Hl=fglrr2ǟ!)]kt[#"""( LI-U]ͪ^~fYhr附qA ]rK&շY\uO%뺬g ,3mC (qZ5TRn- l0UB|zY-r |\NF֏,q) `Օnԩ b]LXDܹ37fH-⥤W){ 8?3]^YYٴioCqAe!dP_j/pZ)кu̙u-B AtlRzEFF PkѵFn/b b b baN16x֞N?h#WV{o\x} / _[xY8(N\E3;~39wDt+R5e0MP~oڧitLp{_s מ_J&ˡ ;Z+zAvs)Ԃ_g)vRXF͛mmmƍLhH\\Mo{D<Ǐ:g@~ ueذa,,,,ZPЯ_???ɓ'ؘ&igg|}AmfooS6ӡ-¯m(I~zY@p]+t°s"""Pn ycDw !7BH=4 "|<&QuLdHb[(3.?йo.nJ>0p\YG-lpJf~ 87$zR>=7XFbccU*Ğ={&-4vB.cbb5777c<<<(IL@RyBH6KR ݻn)HGaK.:%+BMgjwwwlJQ'YV\ ~($kP 9~QFN(ӶSZtM[[ ""P@&KKK!C-[Fv9r.wխ[76|  J/ڵ+Dvpp ( x:u*$bp1P' YYY9cƌ=zA ledժUl -e@|;nhHrzӡ[XX[liƞwBu L:/?@@@B!P(eu*F(b B.&kѵBr+b b b b`}BQ( ղ.Ԣkn~@@@TQ N I*U @b BLЇ[yҗD K.%zH')*Q( BPOl(ﱴyn.>fAD%Q7Żo0ֺsYB DP( B D |f6=x|iAgy7jڞ^K?(@ BP(@'c6P(=pqn;:&TPW].e}ܶ3<30G (k )W 1BP(b b b`{61~0eQ?8kޡ^n[{Z*@YJ.UHׁ;*@!P( B D D l)ޟmQ䀕W\1ZѰdJ-r6_xGkͱu_#(@ BP8ՊS8)H}QBBy1goVvv`-D5pU./ tS`oe.tlw\s(L#,457sYzs#jnhae%H( BPOl`+VF^v;/JjzWP&]|4 g\|@%)8XBߊ % Dw,:Cq}6>O^SjD ]}qqp,4Y.W?݅{"%PITF D DP( B D |w mQ$uG_{mt ;!>oD"1:.~Ru8K_kZ!{x,GJ "_y\/ )*UBP( TQ>b]l֠}Va\7xU~[c J)U m;Q8iGꗞB4_No3>B.>z98nk9.:)|%wũdaQ( B@Mn;uCVsC/#z[Vf ow>7~D>vKN+RqJSM@(v *Nb BP(b b?*+vj~~KW]3yqU@m|@ PƝ(}9m\Pn Ιx?Dc Z_㾹]1BP( 11ɞ 䪨\v%y![7U`8,iƶ|e`k8UzQ0s5.ϲ@ T *̓BP(TX98z7Lɾ?<2׭)h_Q`85 8/;~2$&,&JuX̟eF }]Fg($|W?\Z WER;T|S?L-uF!$df제%F)~^8p9Tyh|2 q̓BP(T@d7W["V`{)Rt@XDf[Xװ~+J_&xcD~BА$ד7! v̖]r!U%%9*~ /4DAYGqE(b BP-tYb4Bn -̈́J 饯0 .]FBx)9Jˀc//z+|my^\;Ә7bF%^[ 11 DQ( jYQ Mb]1n(:W߅nIWk=Z&FW K V~ySI4՚<# <\V!g$jv*+Ub4 '܂vB D |gQoݺoaaaaؔ'@-esAnCaa'D5Mq_ۊh͸u7%‡ܺ.~eur)-.WߛӟgQ=o0\F(R2]tF[vѣ鏺5ntGPp"U?Sbf.˦qciDpKYlྺo (2ػt䬛췁 !던~u']~O敓*6] 11 hjZ$V]+%\r,-($B 򪮮q wVTTXJYYYK.ut 10 ʘ?痖2v`@r^t6 L`Cv:fb1\se/Gi"-O+A1<[",MceeizzzN6 Y}??tرcp {8mt4Gl{R+ҨN8sL(?(:>1?}IMMVVVV&h͛7+1j,jRM]_RVL~n]I#A@s& I:O;Bj{#%-qOgYօ&K@.SjoJ]_r{=}#'b ebbb#:tH" ^rr2$gYsaSNq) zҽ{wSJnfffַ` F0fƍp)K574Vf6/O~'k./MCJnF cJFi7=b`4Suic*7<5|xPP` Fh,?22O>`He4HݒB()u1fӔ2^VV+K#g j%LmզAQ( B!""(} T5\jVEXJREg/>rNkFaKCTGVѻhРR,OԿHnmm v***\.\>0lذ숈0eff6dȐӣd2ق lll B0Xn ,<<nACi|HQ7ҡ3j j^;;; 0SD"ΰ>|TZO߲+N  ݻgeeA*ct k_c?ᦔ<;vԩEC999qڷo7퇑Uaaav/ ! NoƎ9(b b b j>Μ9S.(qlٳRRA DwD f͚c<wqq]ɣuG`à a cEΝ;=<==Mr3Xx U]] Yx{{Ch|`^n MA G~~~ii)Oy2 fdTc[OFX'/Px`x O7֭[)Sٕ&?7o4Xkv3X_ 7<:ٙ Vܹsff&i&i#uSnn.$]v],BۣP(@hS ːݻ 4`<~ؕMx3336x7nH$b/;t`z4xk׎-LLLL׮]#cKLLYCXX1 4RJj6peHTZO2')\:$HLPȅ 1BgvolNh6uJ`0{N}c~Z`1,X9ti?T/^bd26Hر]t4hЦMB D D lZ25>V\P뱋\V.ƟJCCCHCSsga$ipMBBBhH\\\hR[0g,mvv6xw |2w6PgU)hMh= `,\27olkkkzNLL' 4:s}Z;O~ѩEYR7[׳gOeN&Nxbcww }mjU/$~e+_}UkC{7yqWmۊ۶???%|\Tg>\ſ/JWo[wUJ_?T䧟$?,/U믒~k'm^ҡcGiNpͤffRs Rje%v"b#v8nR;;i=d=d=e={z.K֧OY߾?A֯_Ye ,st;91nPaaÇ˝Gȝe..rWWHQѣnccǎ?^_ 'NTL(4I1y|bTi p 33g*fR̚3G奜VVΛ?_1r…E+}-Q.Llrrᅰ+V(WTZŸkk׬]n]j6nPnXiS͖5[lZm[5;vvTY{j՞={UU8Nu!##AGUǏW8:qB}ipj@@@~AZCd-Ls yl ѲME@=a8{lɏʕ+ Ǝ h4mT*j 2&&ރ$E+։gلd [lQtii)t*ȅcgD?bw1ӱI s T*4Ş={(Sqq޽{釓cĈM@c&77L5ח<~BM,N-Ly.<55 llwh@O: DcMgqbg걱)3_fWį3cu[o]njV.0? ՟|RZ|y_-JMi?@_-[1=E şPTCEi@;K:ס9VTNe8É2;R{J] ػW$CDـ($SH":T6Dو.A"!ıq+K1a|CIc*|ttOg!bp6 //ܹux8OSdž .T,^ep R dÕ ʀ`Ú l0Mk6oZ] SSG55ꐰ=* $03'11j=kII S$ܔ7\N#ѤȈs' ~0n@nԩ666˖-co{ H?Ok׮nݺAÇ=$ J/ڵ+dip؂ >})Ǐsw ek)A 4O9rTZkYyyypɮH4x"|ee3z,ݗh knSc?ᦗ[ cE2wqMNn(NΝ;mmm|_=PB5gl b b “k3 ,$77r6yo{nC6F\mЂYyoߊҌ"I+Tn}6>E'#r;{<]%U6w3jC 4,w | }2NGĈRfٳ8xGkC~ȥT0XjgԮ+[^<{:< AqY^t5Ky%S/JF J^KCE;.VG)&fkÕ]ZVTT4x˗cSPM@TKbq611O ;/``lvc u1>Y[v[(V*UȽVBUzy`ξוRT9b qdf:[\P(@z1Ղ F D D ߣ%z-%+O37s@RVj41P]GOVsn ED w]84/'$ajAh˛W}:6REiNJe*}%!Ns #P(󈁨L@9@@@^M٩;Ӎq X(aa0)1p B6?lIV6%T;/UG)DKؼ>g[r6Q(mfk%w h%9u]8|EqNg5ZS߅";RJ/(TL(Q( =j9ee՞ VC D D ߣt+L|<ܕrT⼎!bYx<}Z?h 쿣ժj*ůr =y-ҪZY;%IrZ?&)GJMIuBZ ޣ`11BPM&&%}Ar0y`"BR]Oa\b b bq9[$&\B`QYJ#ruL6?tX'2]MAϽ}f*/'|<5%-ݏ܅nDQB@@ B5A/L \K~|Ж٘r9sܾOU <:gd9$y4҅JI0{]9/cCm-˥[ڛιn',PlS# |4`6D&pONKK:uy޽/_o0}2vykPc1ڵKMM}4[]!P-"/D,,?I jϓ$$;F23 6 <NxGh>˴K1;>Sd܃2+@Jؼ_#Fm4̷eF 䁵W n)K 0pX@ُ /M)ubí{>}.Y~RZ111-*CY5X LOO7aU!}F~!P,d~ }DkIu+9|N|JٚՈ<Wm뵶|k? ;@й[YrEãG~ mP b%{|<38QI)4x||^9S7wGT_NgtZSf 9] $\qK1P%Xh) >EH3gd>+G |\0ppݠARߚHO8ѻwoI={SN))) p ͇ 0332d=Կimm=}􊊊͂ȑ#۷o_\\-K /oaaaggc*oovlhzuL^{g%7o2!UUW[!O^}II!'N0C9GyjJy&qv&2b 8饗&S]\ٳ9f:/,ID"$ z2/K$o4r(  cW*>V!P@@=JGJIrz'BrJ0]L4յگ&YUP^qy/8 ^٫h*"Ѐ2 6s>|o(?W[Q0#r+ZlQ(-ef-E |0{jgϞD"x 3gΔ@j`WfgϞ-JJ%k p 8w\rȑrTTTAݐޥƍh,x \n݄ kcB ;@d 5 'Z%џaaˢn@> zܼ>fA]ĉ(cG?3$ض-o!?S'}ԭwd@2t䯿)dL2w.YlynOi886:G6g$4ēx_'CH`ŤB\̵,ލ ld2uI} 7͆;gSZ^a݇åd(YӏC0004 w E D ߣP(@?srrX+++ss Z9DsjJ.5%%]viђ{ lccceeeiiI6,! <22NVM&`ɹZ٪WUiu.قII7o0 PV=: \KڴizK1Y(  @.C"y)d=uc 2|5DCL^OG$FK@w;_E%!ϑjO.AA!{xh |KVDǽMަ}-44ȫor1hf rSl+ ԙ qgts_$|PYzS0YBV(W^y4M`>$l;_%gYKP4`2ɤWoSF:Gh"H?L2.C9$^$+irJ$ke(G~7D$[2ܖ!S8:\ xGPW,tCѥeee֭r DH^eT~1GsrrZre1<111nR77Fa`PP;vǮ4AcǎT(FMg?(Ի_))$7T d ܩ$ !P^}`A0prBRQB3gC" [-"3;_K%x IH~< e`~ zI3$o"w'pYI*%@RJ !N'-laB`>ɧq>'s+ yt0@։t[Ǒ:?aɃbZLib akkkaaѻwo???xfcuzZ~KNۛ#m]vAրÇkBBwwwcmŏ`fٲelfݹ33._sÆF`X̜ { _MV xBlO0pDěNɂ'SyL+ ?oЅtaC4 `6c!)!ȸ_|$;WȖ D~bW{67 nE,~X,5"TI ``&,11bDA$JUy.9"ܿi1CHbVc{4j}9w9Q(Tk>>8j$i[ԎKyH~H't!d+' y"hYd0۟O7wt'\E/ǁ$$;! –خ!kv]GnL-ntÚ7 vNB8b b`*Rd?)6i1m˦E |J00,,{8#BZ^}L >YHѝ<)@[ $ҊX-i d)l@Av1tFg|/ @GtfF4e4V嚴68 *HS%G8>.qR G D l}QZ:.:qe>OFFFB6チF9řd!\.,Ivrm#]ZO3 '|4j~m׎0[="]!ҴWsq1`4<$4^ 7& #y]ơ{4 /H.fpo]l(ŴOBP;֨S:Gip)M(Ttrn~ZCP4WUb0¦2]ïb11bdr"qyNxo6g=xhuBJ{<>>7m{0}Oۜ|1mkKBP(@$(Q)鿒_:Lm#߷[A ܖ~F>|5ڕsdWKj_/d(yIo"]9 |)#($Wޤ7dAvvĮw["?A ]j.="BIh= 5Yɍ:ȑˉ$ t 11a``|l:$7ѵAtC DP(PxvG85NSpT` 0 b b b }e11BPzؐj \@ D |b1pټ!cfw{-mG{n8Wca򢝶k~L\xW;uT` J߁4t@FphelLs+ȷ@Q( 7 Zrfk :<! G}0gSX6{ᄁd-Xw7/]1K\z @G;eݵ'5/Vcfe-4Q:v23Е^\uoW n<_lne lto,`cVMGB D DP(T=)~qN޽Z5j#"W 4&\(7_`-t窊fe}W^,c tɝ"U~B ״L'.A04{ y!"P(Mg cX#TUj*hjE-%%$3Ӱ"m 3mvZBR'~UﻻU]%JpjpԻrp\y+'b\)WRw{%-h4 PVgr].3s0uŻWǭ8nMPhF7uF"">8bₕABJ_6v],$NZ0rRM.ݜ'-8s N[c{֬>ޮ]t2$絶iZww;9o( b b Ba`sF0pt55ŋܝy{:Aom?{Օl$M6Mog7PT&1%ElQT4V X@F)M,H{g(2H/ә¼8A;|{=㟊*G_}ݻ]]]vtUVqq)۹,lGW)p/n cǑ L`)zn"]|cHm=#5;4FE1b ћoruaޅG?x,*8TU)_ 47a̩D7jj׸ eފovO,q cSߧ֭ Cɋb @*****7xU7z=NsNm3(0 #¡qq)[ 5x-sEDpN=s.mlBu_,ϑ.۰ )RQQQQқor^}U'ftfswޢ:(HMXcŪ3fXI1@|P268?9LJX)FlGs176ϑe08n瓍x7YPH1護tb/3ޙ}Ϛ5.Y1Y$mj66HR~P]'O VkMC| * |'~@J1bpm X3vWos[ȾY:rhCWt aTuQЯWY%swK778 $|3Yy3kvH+ĭm[׶]ܲ˦/6N0?Wo|k<|Eaj9 0կCrϞO$hb"ww>$lBYBӧGMy={z0(B)I ^ |kNb9q0E^dNYG* %.t6/S񋫰t`<)N}nw2 ."FX OU"ǎ$R ,oYUWK(R H 5i#jg?=0м@K.7.==}ދ!os^4/ .%R38ukjc\EB?uÕy_$΍F(94*)Y#x.]j]ۢpKQ܈X./55+XqFJHV5 ղ``" 80pH&R3-ϨիC5l0PDlR׿'_^'''SH4f̘xZCrʱcǚlٲVO999V266?~… 㔚0a߷Bϛ7(XTm۶M4 w??~8zeCE(??!':@61^7xP@e9OjmU\bjI:Ǣ5p,7ZS-MH&Q H1PF@}9HRa`EED/(GGGr2j(@dϴ3z_ Đ@hK$-ZvO82 jc/~oG?bٳq@lJ8e.==w8ECOeBB3b`QQDD^QVZE1PMo7R";Cv ym>xA(IJH1bO~@€AiU)PP ӧf˖-#Ξ=f ؇5;zh;fҤIǏg cǎ?>cMs΅ & f&HҥKbbb1`k3 /BPk^TK{̙gƌ^-J)^ei/Whjzp6g:&IUpo99rJRZZZ@F1놞XtkT0Gމ;# !,ѸDjԩS )WPar/9 lأ$~k˩uMJ]N^rRS55iRH1b Hq@%}ݻhJ$ j m׮] >}߽{7DY~=Zp7!1k׮Аʕ+U$d,,,TcA #4GիW ܾ};"E;8qBk^l\JII+{M=bҴUhjQNkT,Y ^88L2e֭h755iE!Z7Ģ+|V*͂6m:@Fh,X ԼxS /.5PI=ehWP_m7P$6ϭ 1=╞`2ܯq|W^pڥ[oWt_wؾg]Zokُĩe#K[.4Id)f@^_o柪g5 *211a00$$mQ\|!߼ysdd$1bDvvX,9wNbh!kuF쫫}DDjS_t4ccc&W}VVNlfNI?622b0ydͼ dbEjaU8=ZtZ|z ъ?bcc3k,,_\ԟSYuC,U65 jSRRN0Аj=ޔ>)) ǁ'N$Iytccs ܉yӦ>Y)M;1;j[Z%d[A=["cM8qѫ廃\.u@ͪi v#}6~o H"a>+b~.x +;[JE~AO&FUUT*,(22=Z\kчI@:(b @}4IPWo pscR(Dy9jM}6ANAs_f`nn.Zh35<զj"+V?p+WHb:FDcƌьEMHj*ܢ~ UV=ZVjIRX,={jo _I V&STć520`r @uJPsP(s^L|61uR<֏ٯ J:)j6@qƑ:gΜ'NlٲEWK5:uf,j pF:T{|p8']h$^ tWj~&RN4 eeepw>jeiSXX5yIRt֧fff&ql8?=yU64qĥKd/_j]@?X @8ѣ>ȑ#W\Yus:H1~17u`^)8ޗ_ŗAI1-LTR. )hnK F@u^hRU WP,lQ(nMzɄFz **^n!QGs:]R'Hl|ov U[.Rt1 T``J J1b`j  U@ 6pZnYSRhu~5٦.IFOvbO!dDZixߘWUs+j YZx'`LՁ9V4q>UJ$uBjPji mpꂊwT:GǬI֊ݻ":yX---? HiUJ|!wߺzw` wY?:l .Bypc⑀`+w&!0aBt^q 7b9\3vs }ŻuęYԚoK1$e7B\Ňe`TH1b*@͎? h ŰqA.4vH3Y"p>vh:f^r?X* 2U1P-4I y~Zx:6ڼz<{[nqfۥ}p\(*Dw3+c_"VD6eVE:eN ԩS4HMWK&Z5Wњ555=vs oE333$H8MSLe˖ >yA2:p 6uCO,R؍`I&!u +~<>svv멙c!u DjQB1UwAwo`3MLxf}};q(^H@_ LA)+PK]ZD%v<OAv5rwU5UT;YON㋺][j='U 7I LMA)ֽ_"F~Sͽlsi&UoZ} @*!99o\U1P-4kO6ռIhc[wފ@Kr) cO|{ו{jZYiҞSIb(6`f1y_A2w9?on8 TXp9m@IZ H1IRJj˄nAvi QvIu(^)]W[^[sUB3wkz}_\Aj(LFͽ4CH(Vݡ>8FLgm N%0ﱠ62~ښYb nP+Ώ~l([,ֆ`ot~9Z``4 H1PP?QK c=Ɗʵ*6K"K@jFtuk:\ ~&RQQQQ=~+àЮ(aEֵfKZմic~\d_y+5@b}``z:@(u@~9﬩=lȀT T KXnO_Ӟ.ulVS KmZ[b c XGo+3 /J۾ Kq1]ĈD_ )* j@`eoez2+Hĝ,mJ1݃-gՃneK@VUؾb!2bzЯUW:G={#:_#Xv9/HEEEEՍu'1НٙڙzE|]y 9(k0iDٲ4Iz@(=ɀPb` Ry6 VV #c_~UiP(T(н@G[u̵[k`^joT{T;z/q/׾9@ 0>b`px@!E୎[{N K|B$Px3UHKʄ| .4ߺ}#p@viOHP= 8FAbA>שׁU*+x$fsA _`c>+3tP[>bSGj0ڵkzy1}@8xpohcG ^=P.2+1ͷ?qQז+܎l(W+ÍfYWk@]Bd ]j>7_iHe5b#1)ɭ{\- d]Ttγn͵ub _[T"1'AHLSS>-2$8#[p>'%zܒ)*96$s.6 I{)R |RLFZ>}?+'f̘!U-/]'>Y|csKYYY+W;vɖ-[jkk֯_ӧ#@&UV!/\0**j ;pYеe SSSvSQtT'^]8=ca}@xp'n Ԥ0~j:.4W:cx7ۮte"ߛε -ٝy੶vilͽM%#pST*/!+, v&p!n4+)Ÿ/,T^ P,~$I*٢s[x|pN[EegjZ+p\&ґ+@8UYձeL))-wj|] *~5vVj0СC62?_hF= Z%$ ?x <͛gkk \LݺX\ L8edd{f4 Z1qׯJKEa 77˿(vv ]00hQ]ɦMBN,d<%KR :}*_ėP$[CJQB@{ZHu"prHS{D ;.W$&Q˺AwREz`#:: )$^KUY)R |FQQQ $—hԩ))) ƍ022*//PpSivvȑ#VU/:b(V^R؃ԂmjjBJȩgv@7_֭px3R+ǏqPh=V $Ō1%XhZ-'tuf`joif22$YY)R 셊j;dzf.Gwj``}}=ॱ}*o߾~] K,qssq8xb`LՋ@dW:u y@<(R TQ{hzۜ~6(g> :\1PuH =rddPx; |ԕM1b H"tpsAN[ٺWW4!m>@khS6T/!ʕ9::xKaaac%&&yt17n̦… %%(j`ZZڴi\1F Wv߿Ľۼy%##ĄYEV{Y ޑǂ~i&u K>CJ~>&$H=Eʬ{5::T\\YsWLV|qbccoݺ} oyH-ɡH1bKy\e_4w9+{=R+$'oW \ܘT*R5< @ćT=lO-@F3g$ZXXXZZ9Xj*+뒓.]jll Z~=3'ʕ+&M,[ E,i۹sǎkjjm66 {|{Źs/V{_xZjCwU۷U__bJ#Їr~>8zsb_;ғ'U{8Dݼ4yzz2uK`@TUU-h$ooHHUoSW=ɖR H1ܹ#;}˕?Y6?;JtH{L}h72tb @M ž#G q>СCKE귿/~~pGqy&pL͜ ܹ ˗ F\y`vw mlDGE\:d]hH;::д&$%%effƣGCH WAAA]]NNL%A5W"WgGo޼レiG2Q H1IK4Z׀M^\τ.8X.fž>0Wt[y6U fS(Yڪ~eVıؗ։n@٪ʹb@TJE~6u)e"5w;El{#S G  𷜟 9.u+rںjke0lNa klT&Ys ^`gEW:$ȪEDelmmuppػwP= .**xS)Ss"WWWPjdd$X)544c]fiiI6;ld2YLL\9uBx)))\ H1P?0YbO[1÷?QaRtlC#qkݭ \k!2\ʪ?y7UJ4'Px= #b pΏ/%FpC;qZd0}t>̘/fTu2.zƑGHL'jڤr*TTTTT/ӎӧE7}CL<_˝*Yimq©г/???00B1 u (O4ك.tMLLʹOq ә![]~E" P}Pagg'{yyCx*@^ԄpȑݭY8b[ \}1\jJ[}ҨxչF1ܩQ?B>T'yF*Y-aCVf+VHEEEE5P߸#GSsn$⾅sݢ"]uʕ@(50s̵`QÎZ?}_˗;w_˵ (f. 57Sv]5tnk Yp5XsRDjAZ I@****~s_לkd1q=w$XI||4sss 4i[SSSXXXDD @>񲲲p755YUBYZZ"a^o޼)Wn3ÁIIIe7 !7(00b @y2)ͪlkMqW~7oMW\Չf@j, |cEO.=l{ H1/ Ғiilq8]\n0=\SSC1j]E#q\RRwݺuJRU` x"3yѱUˠ&[[[ /M+W||<~cccۋ'$$lٲ%%%%::W؜;w.-- l;;k׮=RH58R 8Xjd2]nN9kl8dE?;`my' `}c㹪AtV l67KXnM顀V4|O[Ow4v |566ٓ.%1ڲ$2~mf!O E {PixxxUUU``ptt'@fRuH:;Rkٔ&^XfL-2la]}|]╥НW[g~ͶBxJ[MB#H"3+ζ :n)m5LǶY_,L+׷R(W H1/ʕ 222jkk=///+++2sX,G0%%諫SȜ17+VTMFXXLO7.555Kptf!Z5a6)) jbb=,Ν;...7o޽{b @reU+-t`GN;+-ȿF8Ѕ.\|E, ֹ5KY3mUԋhQıU.x]cD89_jTz/[oхr%BӃNֲo @TTTTTG#w^@Pω'N>Mdt-l Ox GbbbBBBUJVV0022ŋh{N<^RRl2Hd8;;k&4h~޽ҥK)sAAAr@f&#dQSyo&%&P0$6]wަH1b @****A?|H@)kkkB@@WLHဿ9RVVF`d;vѕ0::, ϟ'Y0hđ%h`Tahh(JOOyfkk+$nShNI6dW$.ϝ; 6EHʺnŠH1k@****w}0ȃqnnT*lX,VAAAVV3ߟIȒ"AXdr]@@,nׯKn:pSii\i`` NWQQٲw^o߾6<8頔+Gx\]]r q%gii\x#_rDcA@ݴ[nݻw/(VaQurr%@(RQQQQ ZOwy9 Rcs\rw:p;dr2!477;88pm۶իWA7nܐ+'`d|;D"a_dWz 𕟟 MMM}2:СCHݻ333}||TGx"0WHAי3gΞ=K)H1bRQ 󟸿zY10===)) E xj. \1ؘ0s'Npuaaa$K./ȯ0燐er򍍍pڵ!!! P`#CD]ǪG;Dk֬)YȚ}۟H1b @****tl|#%CU@Rd[AA cccq)-- v!Xpwwb޽{vrqqyT mlBҡ[=(R HEEE51/@KeWU.d1cZll,ྜCvgٳl*5[){fffaaaQQQʍ7CCC322tgxx)@`F=/RĀn DFPiggSvcR H1FDpӉx<_$ ź _$)*TTTTT?{ !r.rɓwQ$HOl{ڊKYYY'Npuu%G}||-[<$ d#G8E\<`#TlXD f6У͛7#|777r&r9}J$%*${(bPL3@****@)ffffddLC{XI޽{drEP&Y/bƍq|֭w† pٳg=!!AM7̞G$`ill˗srr#0KڐQFoFpp+{ʩmgߣ ppJ>TV^NH1P|'|`Ve[laJp{L屠"ś.e=7b#^NrMyTMHE1pa`AA'|góxܸqsH`ХKLMMQV郤P{Hh.7z!ُB666d5 & L/#6׿O $;,+x :y$ @&%%ܹ. pRE<gޒCܔ+QCmVVV</++رcHPA("ި2T4$`Q;wh.>GW^&''_(C &MRjke,)>Qj Mg϶fZjo< H~x)eZc?nwǫunzz5v; k{>U[6PHypSԧvxߣ֨JE~6u)e"U{ly52H8Y.<ueD&?XTjzRErM5/bcUUC/=1{h 6\KaddD?\1v4g̘AzR4sZ=q*ںuĉ-ZƼfa c=OOO@ ,"[gggƢZFFFZXXbN:WЉ dLLQg@˼c`ɓ'@T2` ;;kמ;w $}@y< D|wUB|.SRR A˗/G|%G:Hj'P2Kf H:O)к:84$%/:11b @LҊ_m8|FJ?Tt7/FOֹ\0P$a5ʬ+xz"k7Z?}XWߣZ԰*q@o杬g\x >?=d_ z]ՉS !9՟*hkDڥ-3=w\cc%K0s| 7 ={ѣVg~3gDD3f:S_7ر,cx1|M4Z[LɐR>sL7u%@p0j(O5mL/-ZņH |zƎtR嘘ŋ ~3N Zk#H)H8...$쐟?~xRc0u.b`4UQOTZ \%zSA>k,2|WOw0ݻu06l1M_<)xd,z*|gΜIMMaڒC Q^^zhooy挌 R%w ֭ 0"//lozTVū5%xO:̒a$w:DA#é&'33nH1~G!lHpc'Ę3wk:0+cPGn*0=AFr3+wN;=PG^]\jk`=7.WQjdY[`,v x6CR[U$ʯb{r8|߿rJy}v 'N`ܣ{2`F3m?6{U*|sD 9!!%… \Uik./<}4@^WJUC4<ǎ=۷oszj=TM[kssU3enn}ٲe #Fc LGvGcx=f S?COZЂu4mڴh=/@5yd]>s?` &4<^34BZZŋ._\\\t2DdSY%(($ U`_ɺ )*6:{,^vvv7o\jUmm-Yp!U@GА={xxxx{{DLyEEB6t @2?q M||i j0 :ŠKQWk Yjs`w~;)>Dž _W㺇 *oiu!0._UU'=jH4KC͆b@Һ+Wx9r$;Ȉ@j}MM VgZ~&%`Цh >LXzP Ph`gP.geeBNMןqc֬Qo.)TW !ZhhbM0dM 33ׯ!YԏkZkR . Dg̘6gnM *"iu R@i*ፁ~8lsZYY0ζcb9gΜKCCþ}f@-<@0『քJ|; |޾}[uR޽}"QyBl"##QO>}IW ֭[c8'N7p ԟ1{ YR zjQWCN3m?N4Ik/ O855UWjj$jjXVV<|=]¾ \ten/H2Ͽx3zUy Btmk&X U+b ڐSLqn 5k< *aEEEd?Ora6 d^hqӳDs!???fSOO5k֐sX%BCCCBB}v=2~+* $)LxOHHP$|>##b @z/C0,}P, Nol~cSdz$o`M oeZ==ﯫFPOWѣJZcRhnug0Pzl{ߝڭI51{eV&mH͆VgZ~l6WaE3Z'.#]V+sss4&vѢE̊zD&L ׯZJ5ݻw8D"1pP5Lt= ~7lJ{9///fׯceTϣ{{{v;O撡HՁHmx7nCV!"{ '֖ӑ㙥zjuvvrqqaF3$l+龁) 1㾷5Uo3;*%6`G:pہT 5ģa%MvdG/RS ~ ԟ1^#7pa >eYlY@@ZYWhn۶ ǎl1;k֬cj``Jƍhi+eKd|~z20@8n֌KeBwV %6l: mx\bV3</vZVOԺ{0wAz@f /^,**ڸq#quuE"""nmd%b(R 3(bz5e8𐍍 bhȑ# arA0g*SSœ;0..NWWqtyAi.^TKes]a<<:==˫\0ޝ׮a_W߿(̍ s*LP+ hɑ  "=bጛ9; nD=Ix8<\~_r$"Ba"#&*Ji%ђU8I\K IH$&J%IҤ$IR$9Y"IIJRSi4tidd(Lf&LW^,22C-<}Z1  nwK I EE S\0%ߚ9de p[~>ˆ P ]UղjQ{Zalo]]ףGf J6[%%ҥk6aaaGM.1؍b @H1b @TTB0s?>/#wQxFycƍ㙘ƏMϝ8gjʛ37y ԩiӧfϘSg?7 _Wٳs(ܹ̟_p!"łŋK ,X!YRr`*7 ֙ ׭ 6ll(ܴQyp&App+ TUvvŋ\\.f~[gh^}aVDE6BѡCÇl=*:~Ltx";;}ɓ:O>-:v3(tW HG<--Wݼ_zellݻ73#t&'KBCbƦ&YHHȕ+gd?@]X|0SvY*+RL00;[arsǎEGor|U>}%(R P kutSoHEEEEEEEE1bb`q})oÓS5SD qР0E /; ~_B ҫ х(Z-O#A²Tuj:H~K1)+Ԕ%@C#K2Q%6zr@Rb@hƍׯ_J****** ȃr&AA0;l Q+LS80b͚5ٙXF,^844t۶mjq&Mғ ]j8 I?TTTTTT)' 8⁦Jx|ju0Lݙ@EwoӅk,ML?)G7{l{Seqt9kr2͜x8 :oyId4H)\NyA4 KfjJԉGQs9<>{sq~p=y^Vr!3w[Fqqrp Ĕ L ܿVVnfff&nҤI%%% r7?#3aRiCƽ62stt3<ȞO>eAޔR{!V?o7pdfўuGo>>l"<+\ZL4Ѐm2333{,**jllL$Qzo}3pqPU*v|NySԒ222bKjV~1kP)56{7ʶ(o:ӟ ~SWYZ{tIM)))4幡RC.9LĔ L 4333P|B555%P7 ̦c|!CM;N_6|ijC[ykwRj7>?j|FƓ)Ɠ/>Ns{?7Yc&r 8N@hfff& _ݞ @hfff#d 2P@2P@2P kaϽ2= e @9}X,>kv8srsm]xs{!@g`d] 0,[]U5[Nvv'exY;]qjźpeɊ׼?.S=^Q^Y^>Wg] %ϑV-Taxiit5ʼn]篔W 03pX~x.''韢8(;?]ѭi}_|3x`gS? 3{?%<1#/8a,?~K,/B<{w01zo`ۓw憯~ؕ]o'n}fDiy Wp{5 A.l=#'Ph ,ܐl _kÆPk f-߶ Bx|ςF@BTBx|ς: 0΂: P H׳ } }wwf iO 4333339 endstream endobj 1297 0 obj << /Type /XObject /Subtype /Image /Width 1197 /Height 657 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 1559 /Filter /FlateDecode >> stream x1 0k 4pVBW ,h endstream endobj 1288 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [224.968 404.185 297.837 415.812] /Subtype/Link/A<> >> endobj 1289 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [275.271 390.333 412.557 402.323] /Subtype/Link/A<> >> endobj 1294 0 obj << /D [1292 0 R /XYZ 80.963 747.976 null] >> endobj 422 0 obj << /D [1292 0 R /XYZ 81.963 700.146 null] >> endobj 426 0 obj << /D [1292 0 R /XYZ 81.963 509.532 null] >> endobj 1295 0 obj << /D [1292 0 R /XYZ 81.963 375.654 null] >> endobj 1291 0 obj << /Font << /F25 474 0 R /F28 511 0 R /F38 617 0 R /F48 922 0 R /F54 1165 0 R /F44 651 0 R /F43 652 0 R >> /XObject << /Im80 1290 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj 1301 0 obj << /Length 2226 /Filter /FlateDecode >> stream xXs6_Mysq&][v&EtIЪ Ev~Ϲ#GJ7"Y>8ԋ]?ɜe|i|7\~IsI;vW) Kn M( `\;gxAeI>ޅK2q7LlUYhٛTxnh^ov|E7UhX(S{u(6vb1_+C6v kS_Z 'MnSoU!(ay]pZ%Ǽ@St0 CwyaB k~l:8_tU5dZ XVz`&Ik$ FW1tSkEuv3P$X"?sYcVUX3Y.yv)ׯ/]q6y{w2wȻ8ƂBɛF|HTh6㞿Ď|^&9U"T̥G%$fޞcU7Lyn9͒Y&h*ԩLphk J&a9g٨ZDxs8V<* #mIY ~y~!]i6 LRDzC5G?7ܞՔWy.\D'ECs2R3c|v4Ez]}As([m)Q#4pD|JunUixM8,ZfWnCNc4ˈ;mX@% ۴ҏ8-Gx @S#$0kk&^-wϼR=Q,&2Wypƒ%ſ{"hde} '""#"&(9z%+ٛ6Nlƈa1-9 j2D6or CRJ^FF`O51e?{)p0LԦ5Mp |78` G|U[9me ̉,IbjNvו~uv-qU*nORn)y͚SEC;쒜nPn&s&% >G.yd4:4iM}мgHIو{CQalQ˛bz!FB,ީdYw C2\B!D.{lQ3aW!!D5WÚh詐jMB[GSO֍{T" YMݶ$kp?#.wWА20_ 4aT\fc~F?nҗcKb.#!jjqho fc$wc${dJ($fGݷuOX \t&$^=d}m: Ue@ԩ EB Xd3.'wOXme=s @-Z{H!Q xl0$ $?#2 oXXYmvհ'y7`82 NTѭfDާ|u 0Ѝi1D<(]lp:TBK?s('> endobj 1298 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [483.166 421.579 513.345 433.509] /Subtype/Link/A<> >> endobj 1303 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [122.809 408.03 305.193 420.02] /Subtype/Link/A<> >> endobj 1302 0 obj << /D [1300 0 R /XYZ 122.806 747.976 null] >> endobj 430 0 obj << /D [1300 0 R /XYZ 123.806 700.146 null] >> endobj 434 0 obj << /D [1300 0 R /XYZ 123.806 550.441 null] >> endobj 1304 0 obj << /D [1300 0 R /XYZ 123.806 391.297 null] >> endobj 1305 0 obj << /D [1300 0 R /XYZ 123.806 378.374 null] >> endobj 1306 0 obj << /D [1300 0 R /XYZ 123.806 347.661 null] >> endobj 1307 0 obj << /D [1300 0 R /XYZ 123.806 305.216 null] >> endobj 1308 0 obj << /D [1300 0 R /XYZ 123.806 266.357 null] >> endobj 1309 0 obj << /D [1300 0 R /XYZ 123.806 253.306 null] >> endobj 1310 0 obj << /D [1300 0 R /XYZ 123.806 235.274 null] >> endobj 1311 0 obj << /D [1300 0 R /XYZ 123.806 196.718 null] >> endobj 1312 0 obj << /D [1300 0 R /XYZ 123.806 183.667 null] >> endobj 1313 0 obj << /D [1300 0 R /XYZ 123.806 170.616 null] >> endobj 1314 0 obj << /D [1300 0 R /XYZ 123.806 157.565 null] >> endobj 1299 0 obj << /Font << /F25 474 0 R /F38 617 0 R /F48 922 0 R /F49 1054 0 R /F54 1165 0 R /F47 733 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1317 0 obj << /Length 2663 /Filter /FlateDecode >> stream xڵMs8N{n&))el'^R.qJJ>$ksZ bAN=:<'Sct忧Nr.oK>}~Y{MdؿhlM)@lONN]=ԇzj_8 m/w??I+ۇۇkEJy*cחG9`ѸSȩ M{U0鿏?aڿO8FJ&9հS55 G() ƵR5 y?wLJۗ;|TJ?~xw= dd `rntoKAД?܎!T6ڧ}CWI*98o/ԋ?ߏvKʆ b6(/ִ VAlibںi߭^3;m<Lu=Lۻ&+IMA:`Cb^ 7gIhғ6v &F_5e>75QCD1(bfi2VF ޕQ(vQѦĨĤXaDhX|1yUrJr(Dx]'JuJNr8 Ej-r<5JESsRmOMZ*B\E9k劁PTRw;F,f2Hԉ"w|kQԨơыPҷ@Щ];_F'9u`|Rv(ID(I r8D VkþOk`BlB_dC?JSv( R*wɵ9PJ9&b kۉ5((k6xT*}])hW*}V~(h7ʜV#_%HqBjoFdshTfC(JRv(GA(EQkѨhԤb54MJDI}"L$GMɴ8IeCKCkv4t}֊.U%1UP%9DID(si%q83Uڜ;$ 53)Vo2*1*ɡ.)@LsLr&DMkѧԤC -quJegtCQ'JuRv(tLԉ29":SN QI#R2kT;hT.LRy' '9}LΧȁOBji{j @JBBh]8/bCQ(JRv(tL29"BSP QI#2kgPoX꼚JE(JڅsLNȁP(Bjj{j& ֚P mXoW0Bɡ(B)@PˌPr& EPkQ(ԤSb5\&\W P?)@PԷPgrrw-)`P_|BAjuAjڎMzkki,H$fØ1*&Fg'_ٻwj D#lā_unO;RJT vegr^`FLB]Zɩ*J*9l8J96g&׈@cץ/0SU PԊRwRw(Q@P\ji C56 yϓӜ\fB梋kC X#aWv;O3E)kNBhB9 H"9 >uS@v[};`2^Bۇx10X PRy?  rkkQ)Sj{jA8RUF-.3E(WJڕPvKFQ(wR[%OF-F& 6k@QΚpy,(EQ nX P4B9"FSQ ѨI'6klbUYkbuf`hF)@QʞL29"BSP QI#2Hk@yGgqn^c(Bi@Pʝ(e2BFJ!5 %HMz/A\%͂RM.f)0O|։2,d"92CwBKCNi_9 sY 00sYr&DKrfW2,9UHΥāJhBfTisf^8R#%&U00Y LTRy% &(er2ElFRNScG#$q%+Ea b1yfK:Q*D<uLNȁNԨBji{jȱ !>~Y| B1py,( EP .rX L29"BSP QI#;2k؎CTjuc㼖c)@Q(JRv(R`P 9JZHBmOLII(BYMy,( Eo'\7 )W#Sa45sg 5hq  ?;fKQ*V~ բpξȁZԨBjTk{jҰnk2r endstream endobj 1316 0 obj << /Type /Page /Contents 1317 0 R /Resources 1315 0 R /MediaBox [0 0 595.276 841.89] /Parent 1296 0 R >> endobj 1318 0 obj << /D [1316 0 R /XYZ 80.963 747.976 null] >> endobj 438 0 obj << /D [1316 0 R /XYZ 81.963 700.146 null] >> endobj 1319 0 obj << /D [1316 0 R /XYZ 81.963 476.983 null] >> endobj 1315 0 obj << /Font << /F25 474 0 R /F28 511 0 R /F40 648 0 R /F36 596 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1322 0 obj << /Length 4175 /Filter /FlateDecode >> stream xڵMo~u{nDِ K M I1 Xv> $N53IE;ۏZ'{ɳ'§sfJɟvr>jh|NO^zSl_&|w^}맡[s${Umrw_}s]=vW/ߞ/ ._曯^ܽ|~b|M'{rˎdJ|=}ldM_j5)?~'vdPjJrb]օ_\'n{%hOLź4oq&:_Ϳ >O [ZLy~~۲մ%lc>qjCN˧^&N/~|}'d *՜qq~wc4d>$75?~vpa"Fz^Jk7)|] ?w|jWhDK4.u}Gv{X)'jwm7WhvɮcI8{ܻ%dTZpbj.*>mGFaC! >h5C=7 ID'gN{N2=9W")[☓B8-IEO۷ؒ{ƖBrj$ꯒҞ%kMS{Bw^iwo|W3W'^IE.MHl߭Ƥ'D\Fy(r]Eg*VZ*$A+M w5k{bd3mh4EB6ZdJ{BZXB(UEw*#VmUHVbjƺq^HIL&O&:XB(UE(bu Vy8U! XiRUeG{}"_b3". V7 xR# h-)DQ> ir&H9ZGZ]ϴ螙ezt_gK:dI$yV$ZXBa-}6;{Y-;fazt_g̤W3|Q0-6yV&͝:uJ\-R~!/^ v0?%h7(UjsPjD!QTH&(ꨐ9$2IBG{}A:dWfe8ԈE)ʣHFwMG*Q"sȓ(&9 ɋč*G$^OԬ2|M=G5UG8H\ IJ25n,pt_gv%q<֨4KGQ"jTh#D ʓ&9 č?Huy8*R[> G5Fy(B= mHDy!$Q!yq^3Igu8ٔe?5Fy(:= mtHۜCy$P!yqq^'")UF}&./'54y&2$=# iTHBy"gPx1B x4?{"15f }FB&Mis@<i#(.@Zʋν75;)E7y4&}H&F (oPE4gPP iS(O"C*$/7n#8<$$]{B՘]?ԈBʣF *!msIDHBmG{#:8׮BQ󮝀el>4Fy(:=} mtHۜCy$P!yqq^4"֙t^e$>'4F_aFF)"m3h;zg-*>h2ƣ{*FTHUzB|⌯R֞g_-Sm:TkȹmɊ/F|N> endobj 1323 0 obj << /D [1321 0 R /XYZ 122.806 747.976 null] >> endobj 1320 0 obj << /Font << /F25 474 0 R /F40 648 0 R /F36 596 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1326 0 obj << /Length 4053 /Filter /FlateDecode >> stream xڵ]#fWh+^w,Jpl!a R·zu4.?=W3;OՓW̧sfJɟ^S16Me:x}N7߽xz鋫]'ɝj39Lշߞ S=;ߞB&We)_)OՔZem?kZÞ[8F{*f*0əT껇?onC~oP]Lnb2ه۟ՠ XLNe*c &'iz9"b4Ώ55ex ʣW1Dhv@ "o#$AIQ!!n\%Aܛȹh/By~)';/#^yU5tİ{&QOx=y4(.?^DpzkXolMƖ L)D b юG/ShBF IbȓB;ܸJr79L̓/o()w3{q e==hgBG%3{ p * j$n]eg;9xkOvj4ab`fOIy;TvFݻ/`vO!JyW`|O#!%| mv'&X&XwtN3 X'Enuw_g:z) k#_{_M/iu|Xᴸn2*ZIśGqc J&O<@q26.xWQZ$}H UְT GL] S@^3NG?/?y0mor Jk2wL5;Y?nXfU&ԣu&f]WBT|XF gBIֈF{IЁ/UlIF;^i) SvGUvt1;ծS`ts5J1%it֔H7 S1^&xx߻ur a|Ioor LkwĎ씲Xx\И Jw S0^xx˻L|$o ۛ]#awNΐ1Ba²5vC/`N!Jxu[B ),W60 5v|tp5b6Ye|~8/ )D nSw`<79&55;kvpYc ~WvS4~`L!ځ4Va =)仯Uڝ|ߗ®]w_]sm*kTNmWu &W})/B|<79%55:kv6kۮ(( ˭80r%_K!}0>M!Oxڛ|m|5;! W,?_Bx.nź6:budkoq`Ki7Mos{VY#N:K]=' n˒w;,Ǫב,ƞ =&0t7q`L!JxuBan |RBp<µ79%55:kv}Ӑ.'c#|rtg Qūۺ]s]瑮Ɂ.IƮI]ӹn_&ḳ"ΜwB|/pT3> endobj 1327 0 obj << /D [1325 0 R /XYZ 80.963 747.976 null] >> endobj 1324 0 obj << /Font << /F25 474 0 R /F40 648 0 R /F36 596 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1330 0 obj << /Length 4365 /Filter /FlateDecode >> stream xڵK>r٭"xs GVRA,;W`!؝lks8?r$vᛃ>_}a5`ov0֩!Ylo?|3ۿ˗`>>g/>K橺KAdyۇ[goޙ[s_/x—^<{x~\SR6nzxa'>Sn>ub3TOO}P˃Vnʇ嬂w埿;y'z9h1R0bҭg>Lq;CRS|zeB{9|8(_| ^|eU@&͛]ʘ,w!*=}vO?ͱ9mӈ0H5rmkX?MlۇƮ^cy`)+k"VnOךx/>>;fUB"2>o/^:}Ԓ[Uy߆.O9wn~dbÚ.[c>;ۗ3ÍФrpSɩ|`r32>_$&c1t?"3}cj Gv)M_iPCh _8n _Ɇ/ԋGguOHH"Z)/%pt9]8o p't )]Ɇ.ԋGӉ/W>_8\_@Ѫk~#@ ׏wі>|g %i(JH>Ah!i;>XEa&ʫY D+K}t"8W+%[&0-"a*MBÔPbt TM*IڕM0H.P7ITpMx>3D> roq(ԧ*Tqt* TqϧmUdL;R4)'}4+ߨ\9z)׏V*XW*UKX*nSV*N2ZjuM3/RN"j.IY~3*Xqt+ Xq:+ Xq*Xq?Ղu0T6P. |V}ъGwW'ۀ)Ɋ'XS-XwC:kS;/-wr֧}ъGwWk ۀ)Ɋ'XS-XwC:kqq\qP4qij>VhŊ;XU`"MaHV8ʟjs*^-mu&*ŚRK(Vkr) N&(MR~eʨ@]L!>GkmX>-"*$[wcצ@WV2~|,4_͛^Fq  0N.wnbE8k6>"*' :(Y)Ѭ qC~E;:)Ɇ+ +G^g2}I5|gW~w±SDws +M>őpJk'hI$%7pm XHEQ.J|S?)ѬqKbק@$(S qx)8lO3#_$u&x߹)Ѭp;՛@DDx7nR) 'oͫ+|?E`E%UZO&(EV{ ѩ`??SYU߆w~s0 :߭S Z$M񱿑OYV1.ϻ|[><>zb4xOu|E\Z _ުi~hV_8_8:|oHV^];?wdҞ-~l:EkؠzE\e]?1>w׷"fR"[*?7NfAOYSƂ S܉Q;VR׎Ocݦ-*szexyy}oJVU8W8`/sσ,d&S/vfՑcE)_C|Eb*g?/bXID//~SF __;3W_׏j+,HHJ;|h (ha2_ wϭ"6(:YM#;77 4*ܼMb7nj&HM`A=" OߚtNy>$K $ҔQI. d>J\Ȫo>޳_Demޏ>1ID+@3B qu]|thlJX^ 1AE4|Ie'rϟ0%<9f0^yM4ϗ M{;yȏS*~I"DisSƹrZ5S`s3S Yyn;S$BcCݧ8h;BU;n( ts)f`E7v_fHp[mʯowI4OɏOMv:N4_S6j 6K/q*")6Y߫'0qsG&; 0q d0G)\|n} "Uo(7,MIh߽-_w\W-p4@ş~f|*=IZDP%w*%ҿM pXm` )[Ɇ-33K\ƂHl7"S>Gf_=M- P4Zlp]9M_#9'[2\m` V ޸o{hVLIkb7ӦIXb.6zNVz;Oh _ 7)'{ޖw}[c͑R N $ I h?uU3tUud?rVu}D?  ~Hfb_p\'}IϏk)q8l)*sw,bJmg֔3u}ߗ(qt#? qz(9ǩ';~8$őwnd8l#cϿ?qҽ endstream endobj 1329 0 obj << /Type /Page /Contents 1330 0 R /Resources 1328 0 R /MediaBox [0 0 595.276 841.89] /Parent 1296 0 R >> endobj 1331 0 obj << /D [1329 0 R /XYZ 122.806 747.976 null] >> endobj 1328 0 obj << /Font << /F25 474 0 R /F40 648 0 R /F36 596 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1334 0 obj << /Length 4096 /Filter /FlateDecode >> stream xڵK .T^ջHC81P$E0K.ŞS<'+]ip82yw>3SJ~ﻘi/w&7nonyڿiwnWۿîɔw~{{ޫ5aɟvVbh?֔njJrZemZ5׉[Z8F+f*Fga̓3Ox~wxAua2=d|~w )FgJ^z_փm%zpmϮo~XhW'Sk9B6bʓ}09o~\#mWE av/7FfS0ƬN|NO]Y &oM`=uiR}l?,T65zxT㽔LSHƖ?دxET,m۞ދz%vErŚ2&`Gƅ/(<: 3mxmΣ< 4xT(vǭٔ͞KldJ (#iQކG<ʓHGb8Hxܚ\tj[шDO&:w GyiuGxH686QGd8*;E"ϯx mo?-7;{3Mp$u]#icb0HҜEyIKĭT~ְÚ뢭qQC\P i 3PZBZJ0H Bq\ n .dXt4%$48MڀUڠB+OpB88Glk|h bMvtUCF>~1kߧ=CL1Z%#Ke~%Br&/Eɇ(:4CClSk5% Q)Zq?}Q(D@B;Ɠ< O4ɽ SHgɻ<.LUSўM#P@Zj|Tv!(O Mr M6%BDՂ"x+^be<'< ǿ2"~'rx˶p)85yiL>4ѡwp[=}(tNØO&OB$73vw6F4lieOį Z ­ݟ %3&JxgH㫎pHۜDqi(vKōE>91#[' 6[D漟BiuCB+*x+~tW[C`h~hlg|89S}#S{B:4Ϊm/!!_FCw_N^CF3dg+hфL] 2jGF~ 2@FmM^" dv(X1O^cve9;(@B ՇE|Cp¶&/ɇvٶ=LYCalMQN"Ns QՁ0jFq0FmM^  a!Ύ1uH*=ƗV7sN! a:Ph!m&Ka!l04]?4ٶFw{7|{sSB)T0Z}[ɇ0:'lkR|h aMvvVYO]$=>mϧ6&B"ч|"3p/ug.~f~f|n2ҏ_g̉4qh󫯏 /q]܏޿~ơƙ`}|~ gp[pq[j5lUa0蜩sM! W̱Pj7H)aƹKUj04\]?4YHX&[dY&;0GE7rE˫>.g^xɧ_4]#-27'RŒk\V&g:0]YuFƳ?*ĻƳ8QϒFƳ"qkrAA"F)ZS"nn3p Qhջ/ Fp II< ~4S(v~mRK;ܛBhŐ!iY :4:O! 4hT(viܚ\TU8~`5v>~`)DV]# {(#s/$0$Q1.&dSǹUֈqO"H9)FZcTw4m<4a'& Ŏqp5 }0T栜BBCkO s3(d*@okpq;o5|2oi|5S 2'Mѱ@y5_'OC MsEE< . 77Ib?%\j]_՞)WM*8z`)DV]! ;66PCd*;E䢁 <M{ɵ}nnS"-*E^w mXm΢< 4XT(vŭEW#]QY}sxO!-U5kN- n,EEv5!ZLc~ QXձEpHkN Y'a& nqp5h QqQzk߆b|T"-*E^w mXm΢< 4XT(vŭ]WY=mJoԞM QXձEpHkN Y'a& nqp5h ^z_W5Th"?I!>PFR,n-^ڒ [df܂ɖދYhOb66=sPބ,]%x ΋W$n-^ [ꑱ3ЅmiC Q/\ . ur<Z4νpmM^ڒ \thC].+CCՐӉMTBPh ϱ,yh5y)K>4dѡ9YMv\WYõ?Kڟ{怟Bh5BâQ< N4q'd~ۡP ~[۾OaN=&ϧ~ Qo 4H;K]򡡋~hnrƋOuO3]YuK#,=B:3/uFCw\ɦs*kT۶]U_q9.ZRw\4mBhõ5yK>4p &:OQ CF&p`o1GEc\ ᎋs-yh5yiK>4l &{: v!^#[Ӱ՞p=sXN Z$:H;9W[3?3X]?sΩ"3FL:vɟ΢vVϝܷàEc[nE9Ζ8 Z4X%##&Qa{8BhuJ!]0ds%oms&/eɇРudO$f!]OVe;^OOzZ< ]<֥h_0钷9][CC`h~h Q)ا';S{-BhulK!m0Z%oms&/mɇаudOmc/1FT endstream endobj 1333 0 obj << /Type /Page /Contents 1334 0 R /Resources 1332 0 R /MediaBox [0 0 595.276 841.89] /Parent 1336 0 R >> endobj 1335 0 obj << /D [1333 0 R /XYZ 80.963 747.976 null] >> endobj 1332 0 obj << /Font << /F25 474 0 R /F40 648 0 R /F36 596 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1339 0 obj << /Length 700 /Filter /FlateDecode >> stream xڵMs0:VZI:dHL& npZLߵ$.4=cyגR|]O[kH $H::Iτ0 B0V#GiKAgSH:KVOtOaq;, WQcIVt;*nOA G 8voeB` \\F"C%:P U;d+Iه]I0NQ.ApRkjԬGu~]\xO4)W`܆m+8ϳ]>&kEiIS;l9Χh%(%ż:'v\T~v Ƿ5PcXPrmd^7Y;8?Qkmvpo\BE)ʭVAukM8 3߆wnQ#J:)՘o,-[ c٪եԹ նQqhh-yr5sPo]]U~w5? pWs]z+]UoܵG]k4on7&?cJʦc'd5g5H@<プGOPXynLOb]~z2ˋDq-g|54\NeYƗW^;j endstream endobj 1338 0 obj << /Type /Page /Contents 1339 0 R /Resources 1337 0 R /MediaBox [0 0 595.276 841.89] /Parent 1336 0 R >> endobj 1340 0 obj << /D [1338 0 R /XYZ 122.806 747.976 null] >> endobj 1337 0 obj << /Font << /F25 474 0 R /F40 648 0 R /F36 596 0 R /F44 651 0 R /F43 652 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1343 0 obj << /Length 2745 /Filter /FlateDecode >> stream xڵKo=ِ V~م ۉ 0`H! R O 9ut>d%[=S/b~O^;[vΙ߽.blj~:mwߜûRۿy(ؖwΥܷۇ/g!7u籙67_?}x;wϿ^ϫ?/xw}~,B>/I߼;׉o;kv>[]ߟLhu?y oriM^Zi9Vxzӊ}pgI~N?8SCtpz_I\gqv.^A4/3*OrP_=W_hg4kT4^LnvO~oZj~qn&7I,˳swz3MmM^{?p=`ikLϹ 渽.*39c & .kE9JikO!MW/ Bd7IOKg`K'fWs=+.V0ITLQRūkU)+_ ,dmM§&] SOͮ^'J0q "ãdWSc<'c<.ۚ1OM&c/F&a/\-}$cxZc ad%c[3dSk;װĔ c}_bb+%c֘B~u8q1|j205{)>5Bb[ŘJׂ1064?WSc`lskc ScKSctm|'Ї5hϦfSJ(յϯ3Kƶ&gS˧fv Q(^P: +bxׂ+pśgهx*%W ،Gdml~a3CT6n-q5rb5^9AMTINyT7IJp lj)KN`ʋSx(bʇn,HLaM}N YpG *PC$z?[*'< A'ATdua#,`g_5^R1_%u_xLU!:NDUU*$USՅ [Hlm04x͇;7UG +X$z*~Zd% a'ATdua#䬑+ ^?5^>5~xlU!:NêyoUޖ*$USՅ [FB.3x 猷YdӏϸFg`U^*DItXUMVy[VyOEV6nM6555Fs=S_ V(YU٪BtXD Xd% a'ATdua#䬑# ]7kbE.d &GT/BsPTEitPMU=NU$QUjP]ڈAusrWX ^ZS8'1H@oU*4TPOT*SVCSyH:J.ҲgP)x፠nŔtJNRŁAPtaH, ^#MĮ'[A)%*3UpZxU!9$(.lQݚ5ae Bn>ycw±_(9RPP'u'd#a'ATdO%Yݚqҟy*kjʝ |{x3AN*D+.xU uWʓ W|*ʧnM2 T,C Qʫ \뤺BBrhIP+>i]Һ59Ĺ Kpe\ ޚGpX!JZyuABuhTVV*$VSօ [JJJ4x [LjAC&U: Qʫ ZC뤺$BU!9$.laݚEZkV?]5kA8 %*cըꊣ mVʓVF Hl04x.(1 '*.PUN++T*Pyt5.l1Z8QIN+ poR]`GIt`> endobj 1344 0 obj << /D [1342 0 R /XYZ 80.963 747.976 null] >> endobj 442 0 obj << /D [1342 0 R /XYZ 81.963 700.146 null] >> endobj 1345 0 obj << /D [1342 0 R /XYZ 81.963 476.983 null] >> endobj 1341 0 obj << /Font << /F25 474 0 R /F28 511 0 R /F40 648 0 R /F36 596 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1348 0 obj << /Length 4230 /Filter /FlateDecode >> stream xڵK~E,̺w dXas1ߧ&dxzz{]a8|{7o~!6C Ʌ:޾;jL}7tɥT>~͛/x}kzt75Wmy˷O__}z_oo߾~tnd鋧ǧW_<}p|?~_:/: ._pb_݋|`:ҡJ?gK9ι atc!NiՍuG4E]|6O}/]eR)|?|׿,\?)P+CZxgq:1I6B("CJ( M~wiњOm}Y`Q qpz~/qLo"K?Tp.8Jͮh14F7}v!S z*AJuTZuG!ZEe%Z2A 2-Y}-<δd\7@ ƜS ɵ(&ҘVShDn«LKVG 3-hM.g}1gu傎CU5eVqx51[EAd,ʲdy8˒qM,|gYs&YOyZōy A:*+ֽB Jdt^eZ39˧,tnWQZtDQe%Z2A 2-Y}-<δd\7@ ƜS :C$- I+uYM%?S\Mv%4tuJg-_y_8i&X"-&l } LyZ!#b8jph} *dJ&uThIɤ0o?|h+Ϫd?*P3&Rraԥ8G Syl.ƦҪ)Y,2y Ofy zri~t#D⬸;L'<{5[/*N JeTG,zxz[Yk$KIM"$H\P3kxVW ˺E(YQ"e⯟"g2x)ʤFOō${o"|\&Ws.w)uA(ʨN2Y)z"g2QēLQ&5x(n$Q\0+1PŵƗs[h%2SģLq=ST6KmM"d2Iē$q I/C1HLX. JeTGY,JDe['YLj$I8H7cL8"|`ί񅯡uM(:D<gQx!ʶO2D Iqqopi!ABp{b)15$IV(d0*2ʚ@<?I/>pA||@)NM'?fMpɴ&.2@YEqdpgoyq= CpCQn JeTGGY,J o3CIv(CL|i ( x}lSqavk<0O9'děS&{(*Cf0\Lc]M)8(挛FtE)ϻONQTl-6{Al8Cp~ګkOLܐ6٥lj\\AV9;KH(ePQ/,a@7 2&*ڴn}E\K2eabrBM<8gg^É7L*<Y8Av6?}]a%252PY=>s^`B TNHjd35hP\;"Ԇid~>NgӍַ{X4>g x|ΪORlBOg^7>gIe1H{n>O՛w@,TF7U*ORO2ٙ׀M* нe9>H_$hnϧ6`}EP@e)] ҀI:;PI@eR7£w$W7-[ ܭo#PW>KbrBP<@gg^7 L*@X~jbT\A8]-@n( xS(>!*'œ tv5xʤtopEBo"`3< u*qtM'E9%7lM952i:K<.9TER9{sg˘p up9Fwm,$JFuQxEɨћM%QIƤIs8ƈc)C_D7ޯIDS7ٓhjidN"i[\ЄO4s&LOp_XA蚷رspu.߲IdS7ْlj'ْLjv,s&JS&KX.=$.}>~+h%-Q$ڇY4Ylj&8&O&OY.q atC3cpô"JdOx= o'|_-RF^2LYOJϺ4تreImq9˵mB ?urF endstream endobj 1347 0 obj << /Type /Page /Contents 1348 0 R /Resources 1346 0 R /MediaBox [0 0 595.276 841.89] /Parent 1336 0 R >> endobj 1349 0 obj << /D [1347 0 R /XYZ 122.806 747.976 null] >> endobj 1346 0 obj << /Font << /F25 474 0 R /F40 648 0 R /F36 596 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1352 0 obj << /Length 3974 /Filter /FlateDecode >> stream xڵIF+tu& PۄtI R^nNFEOCpf}Uos){xo Ι%%xCLشƗKzۛ^Ƶߴwwr8͇~{kR9Cդڿ>O7ZRMINfq \=,T|=NYg|;yq&4~B|'Յv65d /zsd] LWݿ^|-=ں-iЃk>;6FAZ%ϯ_FWLVC>׎; a[OϸDt$ dv Bgcٟ}^( ná.xl>W՛,*vkXT\gͶ?kWk1jeY8D6t,ɡ㩛rABζەoG`XL-a8 ԁa n݌ax2 En CadЬspv[O6C^2lM\ A2Kq@2jS~F2<ICH"IAhlhXFlcB%;Oָɲa8 ԁa nÌax2 En CadٹeϠ 5B6F԰SŔȰga8 ԁa nax2 En CadЬSMpа+E\0 a:0L c1 Aaȭaxh2l u+f_c׷b_ LA~)@_ z3zH/Ak LvəIr{P&S@֦BnBdgԂ],< 5j&ɪY/'`iIYRd*զLVeݫ }e4wb]@|Y#d,26~m4NAvWEDmgT jL6 PSe]>}ׂ8TF6&xhɧY'65J4 J1`͂Q8T(h7C %8T"BIAhjhUXF>MBb|O4l¡$B)@Pp( šPȭPxhj5MZP)Zi $B)@P*ޠp&ęOȭOxhi|q^\]O1=$L/TO*>qx™gJ>">ɧAhih!DFNM4Fl PSe'=z'I>q,r|&>@jm΁>O>ua֠lZK Ҋ<$H&DɣY#<2y$F&Gfݛ k'6ڥv@CV#I"5™" BOC>v.53\鳼X>];'J>qġϿu©dJF"F(Z, N4eٚ5Fb>mCk¡d>R`v8o?zy_y )H0""I0Zlh1&XFנ!X u`8ۧ-K IdO!6&xhɰYga;^ðۛ-a8 [I0f3&8[y>j&IY;pծJ PЪ5zyEz3*{*f1?%Wz5K g&XfɧYpJ ƭ}tB$g~+͂%| f xp%fl*5lkž9SžI Wz+~fq|dgKf[d 4Y?4 nQ*xuиURW*M^q}R`W-x5x^Y?Ra'UX|gܺR¡ݫ ꭤN 潴] ,rk5 MZM\Γ0%jbJX5%ҰV8ԗϞ|)fq,L pRÅVȭZxhRtJKPگUZ8ԗn,Nfqd,rk%f5*5N% ![cuEبLJfq7ߝA.p<|}~ӇkBOzqG._޸LuDaj4TpJM.Ї..e PґS:*|޾Q\H<H7Y0<4CK7YgGpѯJКi (z!YۥvFfb]P-OjxV7 ܊G&ҍkd\R'R,$8t,^qiGI,ΗԚ$n͂#X<ȬK@KE Th-d5SY:6K`z,Ojq,r%f}u*5l2kl{~Զ[ǘ}Rw8: _/5&xhɯY_[_a7Qk%zM=Sv.C4w~]!ݯ 4rBEh/ 4 #VQٌ>h׵E MJ~q/p#p>_ȭ_xh򋇖uW(8pey4_q"l$8uԑ^8|IYV/<4CKzMm\SR]Kqٔu]r6NS_:K`zz/O~q,r%f}*5R0{|&Nj LҋAv)p]KNɅI.ܚ%n3[,̬pvMNs}FZJYMp&šcpn7s#`ҝku Mn B[Cvzc}-޵YD((ũc/Kx|ɯY/<45M~UjXgeo*̇R_:K`xKz"zIAhkh\Q-x5̮at(h:K|%ܽ] 4rB(t ڂkUjT/*̆r]J]U %8u\/ᡐ xҋ%f[Ф 4?4kDX F&0ʕ`*LR^:K`H<^ȭ^xhkuVqs\L*LR@\ :vKb\H:YĭYxf2KLb:olXF\Lu \,a$8tlbq.7Kx$N'8]2k L^ "X#~N5ҴXf?M\W%WaԱY sKn"rɮAhkh>f%bl NnוU%8u,\.! x%f[$ 4ɵ?4uJb0ygvk6U^:KO%CiC ̃FnCb<Ьܺb{x5}{s: endstream endobj 1351 0 obj << /Type /Page /Contents 1352 0 R /Resources 1350 0 R /MediaBox [0 0 595.276 841.89] /Parent 1336 0 R >> endobj 1353 0 obj << /D [1351 0 R /XYZ 80.963 747.976 null] >> endobj 1350 0 obj << /Font << /F25 474 0 R /F40 648 0 R /F36 596 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1356 0 obj << /Length 4186 /Filter /FlateDecode >> stream xڵ[o{rC"`gsZ&L ȅc99HKm3;UdXTh7W=cݜs8<;f.~!LnjK|o>?Śo]M>o~<|7S_t_O_BÝ,y_`:eGjگ޿ӟû9L./}b_,bu>C٫.-Z8sEOKi:T7ɿ):?>wӳԧ˻W]e Zu >ۯ~ZCLi/c"sqz-JfQM]sf%M%ϳwk6ͳ&#θ83^#П뤭Q |bCJ 7˫0g+K;kΣWt7E8ۻ\cy̮l-y|yNSv-^DK.-Ƿ8:Gfz 2EJuTWZgr-u2h.ìK_ޕP⋲m]xuɸ O7Q޽N&qIqopA) /kbL.͙9mM(cx9/ۻ]y_*">}M 0|j6]?q |Կ/GXf$`2: _ 30׀Mç&` 3/ۺYKlX,bgWgvֶ4 a&7\}K5_{+`hurWq"0=}4ɗ}a%K|y%󚯽_k04~fe4E|qS _/&1/˼D)\ .Qp-‡&\d%,,CEe:Ne}- .+BJfe8qվ *tb"5L];y8xjwp]A3N _$Ec2!Ө,QF0{ax"Jet3G^8z#g2qēQ&5x8$q\Cz<, 5M8 ZI¸$,S\Q}[p)k +\A"JetFfUшYlk$kIM#$I L-Eb4k_)7/צ?ng$2:ƈ v7dW8u(ip+𩉗ZurSWrErboY܏'Y$Ihq]%˝4ZxiF" d3G9,ggugER%cVhQr;0MfS2\!NLk畻xB/(Ydj%-Do?\}ELfU2Pmf%XDk04Ѻ~f z/sEW^_~>y̢Idt ̸do2h3.VpNԄk0 0ҡ6H_8w~f0YyL 0L#Y[#7B Dl44~ecEju5ggm`^M%c\xq0 LÅlk&WpSЄι.EJ>8=<ϵ0 ,L~`0d[7" &a,G/ Y$W7Ek^&7-ז?ne%]2:օY 4]xuɶkorE>5 Myӥ?°X$Wj8#KϮ.ìK^`.ͺd[ӵ7 t &],tB/ڶY1yRI$Dz,Z| 0^fWKYS7 T#';٣a,M1u o)$Ua^Ǵ8˒q*?.Y|E: 񬨜I nߋoooA8$x rl \h4G#^g.<~I$I<&eR3' ,*(5DlE BI ~tvi%2zr$^f&"43+Y_$E7pJ~)i[$X>UPM6%k?-I$%rQ_9ƛ7ǃ7yjQA)RX$W_8|T3I[ 1|n6&֌]?5&3m.xē1 J8d͓~G KF/A]ɺr;WJ~f=z "VJ|2-mQ%Ͼ}) ؗ *&W|S/9A宮e6LZ쓯)\ZQ%/<ʾdpy%ڛa2}“Q7u d?{y~N.,m{;ZDOϢ*F(a<^ dX4Hųb yxVܶ;.`B϶YMy,dcgiNQ(E<eӶ LQƕ+1H2E(I8xDqop@_N.W(rmiQ(:E<e3 LQ5x)ʤFO${b"|2uބbn mtҢIES7h^S P5x/B!W"iv͆`|p> endobj 1357 0 obj << /D [1355 0 R /XYZ 122.806 747.976 null] >> endobj 1354 0 obj << /Font << /F25 474 0 R /F40 648 0 R /F36 596 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1360 0 obj << /Length 4103 /Filter /FlateDecode >> stream xڵɎ_V|۫^'j39k|x}_ sVb՟쥾Ւr$ǎ{f3iµqcC;V;Fg4L*4Ǔ!^O ~65f>g?| -FgJ׃}%zp}Oo~ec4ѫtZz ]1Y}09uۻFG{#v$4qg{I62C|L~/Xws b>pZm W7_ ՛ښJZ>9gOeM5!S_ i-j$cOOh/3P iG,^nH0:QA ˓UOh&9KFKFK4Yť4qOR)&[9pQD7_N QD'y9$I!yyon<~i/phlrbC1껬0#`9(:՛B&PD41M$4jژ4jz*%H4>N)Zc`iGQvM^sl a E)yI$GJ! l4MFGgC%#BT)ln<i D*@U`(RQ}QI(:iN'MVrQA@GQ*nHUUZP uJU$XIU+u69PL~('"6gtfʲA凭*D[ը^`7a q35¤y!c_C>h²{t*"VZP`u Vy8U! XiRU>)ĺqlr"&8c'ܭZ(b UJכ{`*msV`&eVB&Fl?YLalMQj>0 7XG*nXUUZE㪼Vi4)*Z8hu694c;5(l)_:*UZݰPV=cUFYUHUYO n:5}^siˎ*UZݰPVcUFYUHUYO n:)}*cv~+ޫ;ו##UD$U! PIFƩCV^e WpC]vs.s]( U0J{nF)UHS9O n:»k*܉7ZY*s'^(ZUުF[**m3V5`&EV&V7XNRc\4 G\꛿>q^?cH_>M$0]%9S[FS4r~ԐyPSRR0U)N82*4~sfQU4R]:uR]$ܒ~d9!x\ KS/A82*4$4z\8zqOD4xT(ǍDɡ'/j Ac.#82*4#4[8zqΣ<iPgTTƈp/ MH<*#﹪Vi(O"Gd8*A"Aޗ@eЉ8Bhfy\/PDKsE4P\{.U(#ĥ1d*!{Hp68\Nx/1|2›r_#s!itByaiTHӜCq"Q'C% Ipv:,]5#sB!> qH{uUh#E(ʓh& Eqq69t#P&}z̵TwUiuG8p=*#msIH G"p8H82)Ijҧ[_s˕GU(x\UwyԈ_<{_UhU5[ CYxO1j[oJBy4'P\D!pgxcfbl[M\gfB*/P! itA6mΠ<iAP gXtߌUϓ lA(*U^B mTHۜBy$P 7&HUppޙB^2;Vy QpH{v *!msItHC"88Ht84 ~?q endstream endobj 1359 0 obj << /Type /Page /Contents 1360 0 R /Resources 1358 0 R /MediaBox [0 0 595.276 841.89] /Parent 1362 0 R >> endobj 1361 0 obj << /D [1359 0 R /XYZ 80.963 747.976 null] >> endobj 1358 0 obj << /Font << /F25 474 0 R /F40 648 0 R /F36 596 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1365 0 obj << /Length 686 /Filter /FlateDecode >> stream xڵMO@{GoBD! 8" ߱ dg}wVՇ O[V@d*E)o *4:?QV [tQ2YdzNf?ȇafҼuLzvQ .>vzy{ZD0^u6IãްMzy#1|eǷյV͊l:~N@Dil=Ըb1Mӑ5#;ɺ&lp6$n =.G7 Pc.f{8.K1[cu>a*t:U6u;n  ixm@-j#:Ί_. #f]1 R?xd,6\5_|u,;m ?׈X6 ڈ][` 2鯌c:*i}Lj66vuYwͪYL1޼YZWVZJ<.}- Q&dJSTsV\DQ~s|?_IiYzvK endstream endobj 1364 0 obj << /Type /Page /Contents 1365 0 R /Resources 1363 0 R /MediaBox [0 0 595.276 841.89] /Parent 1362 0 R >> endobj 1366 0 obj << /D [1364 0 R /XYZ 122.806 747.976 null] >> endobj 1363 0 obj << /Font << /F25 474 0 R /F40 648 0 R /F36 596 0 R /F44 651 0 R /F43 652 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1406 0 obj << /Length 781 /Filter /FlateDecode >> stream xWMo@+^~yw{TH!5UEl'ARYIK$''(t endstream endobj 1405 0 obj << /Type /Page /Contents 1406 0 R /Resources 1404 0 R /MediaBox [0 0 595.276 841.89] /Parent 1362 0 R /Annots [ 1367 0 R 1368 0 R 1369 0 R 1370 0 R 1371 0 R 1372 0 R 1373 0 R 1374 0 R 1375 0 R 1376 0 R 1377 0 R 1378 0 R 1379 0 R 1380 0 R 1381 0 R 1382 0 R 1383 0 R 1384 0 R 1385 0 R 1386 0 R 1387 0 R 1388 0 R 1389 0 R 1390 0 R ] >> endobj 1367 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [167.863 438.258 419.607 450.213] /Subtype/Link/A<> >> endobj 1368 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [167.863 428.296 419.607 440.251] /Subtype/Link/A<> >> endobj 1369 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [167.863 418.333 419.607 430.288] /Subtype/Link/A<> >> endobj 1370 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [158.034 348.315 418.245 360.27] /Subtype/Link/A<> >> endobj 1371 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [158.034 338.352 418.245 350.307] /Subtype/Link/A<> >> endobj 1372 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [158.034 328.39 418.245 340.345] /Subtype/Link/A<> >> endobj 1373 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [158.034 318.427 418.245 330.382] /Subtype/Link/A<> >> endobj 1374 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [158.034 308.464 418.245 320.419] /Subtype/Link/A<> >> endobj 1375 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [158.034 298.502 418.245 310.457] /Subtype/Link/A<> >> endobj 1376 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [158.034 288.539 418.245 300.494] /Subtype/Link/A<> >> endobj 1377 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [158.034 278.576 418.245 290.531] /Subtype/Link/A<> >> endobj 1378 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [158.034 268.614 418.245 280.569] /Subtype/Link/A<> >> endobj 1379 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [158.034 237.52 418.245 249.475] /Subtype/Link/A<> >> endobj 1380 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [158.034 227.557 418.245 239.512] /Subtype/Link/A<> >> endobj 1381 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [158.034 217.594 418.245 229.55] /Subtype/Link/A<> >> endobj 1382 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [158.034 207.632 418.245 219.587] /Subtype/Link/A<> >> endobj 1383 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [158.034 197.669 418.245 209.624] /Subtype/Link/A<> >> endobj 1384 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [158.034 187.707 418.245 199.662] /Subtype/Link/A<> >> endobj 1385 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [158.034 156.613 456.343 168.568] /Subtype/Link/A<> >> endobj 1386 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [158.034 146.65 456.343 158.605] /Subtype/Link/A<> >> endobj 1387 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [158.034 136.687 418.245 148.643] /Subtype/Link/A<> >> endobj 1388 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [158.034 126.725 418.245 138.68] /Subtype/Link/A<> >> endobj 1389 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [158.034 116.762 418.245 128.717] /Subtype/Link/A<> >> endobj 1390 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [158.034 106.799 418.245 118.755] /Subtype/Link/A<> >> endobj 1407 0 obj << /D [1405 0 R /XYZ 80.963 747.976 null] >> endobj 446 0 obj << /D [1405 0 R /XYZ 81.963 700.146 null] >> endobj 450 0 obj << /D [1405 0 R /XYZ 81.963 488.938 null] >> endobj 1408 0 obj << /D [1405 0 R /XYZ 81.963 449.217 null] >> endobj 454 0 obj << /D [1405 0 R /XYZ 81.963 407.374 null] >> endobj 1409 0 obj << /D [1405 0 R /XYZ 81.963 370.442 null] >> endobj 1404 0 obj << /Font << /F25 474 0 R /F28 511 0 R /F39 618 0 R /F44 651 0 R /F50 1133 0 R /F36 596 0 R /F41 649 0 R /F58 1221 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1412 0 obj << /Length 479 /Filter /FlateDecode >> stream xՖMo0 :ԗ%ֹI"X Űnw,Nߏ)0 >KRi:&G"zt*49 ,dńqr_,SɔʂvXLgq"S'FJ~),cN? 42vyfLIAaޫY%E>d!(kı '6w`(^`Y]["eZIWn"6Ccq87CZ2M2cXfTCAC:x%szw C z@}<./.>(_vͻ4kmZ{JM~VMBٮzn]%+@@}a|o>A/-Rܾ6Gbǁ|YlW+қ\Q_1чaWc<.{G( K3r`k6jAY>_~iƨ endstream endobj 1411 0 obj << /Type /Page /Contents 1412 0 R /Resources 1410 0 R /MediaBox [0 0 595.276 841.89] /Parent 1362 0 R /Annots [ 1391 0 R 1392 0 R 1393 0 R 1394 0 R 1395 0 R 1396 0 R 1397 0 R 1398 0 R 1399 0 R 1400 0 R 1401 0 R 1402 0 R 1403 0 R ] >> endobj 1391 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [199.877 663.726 498.186 675.681] /Subtype/Link/A<> >> endobj 1392 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [199.877 653.763 460.088 665.719] /Subtype/Link/A<> >> endobj 1393 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [199.877 643.801 460.088 655.756] /Subtype/Link/A<> >> endobj 1394 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [199.877 633.838 460.088 645.793] /Subtype/Link/A<> >> endobj 1395 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [199.877 623.875 460.088 635.831] /Subtype/Link/A<> >> endobj 1396 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [199.877 613.913 460.088 625.868] /Subtype/Link/A<> >> endobj 1397 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [199.877 603.95 460.088 615.905] /Subtype/Link/A<> >> endobj 1398 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [199.877 593.988 460.088 605.943] /Subtype/Link/A<> >> endobj 1399 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [199.877 584.025 460.088 595.98] /Subtype/Link/A<> >> endobj 1400 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [199.877 574.062 460.088 586.017] /Subtype/Link/A<> >> endobj 1401 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [199.877 564.1 460.088 576.055] /Subtype/Link/A<> >> endobj 1402 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [199.877 533.657 460.088 545.612] /Subtype/Link/A<> >> endobj 1403 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [199.877 523.694 460.088 535.65] /Subtype/Link/A<> >> endobj 1413 0 obj << /D [1411 0 R /XYZ 122.806 747.976 null] >> endobj 1410 0 obj << /Font << /F25 474 0 R /F58 1221 0 R /F36 596 0 R /F41 649 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1416 0 obj << /Length 886 /Filter /FlateDecode >> stream xڵVˎ6WYdI])2Yt@-Q2aHj" yK^ջII2'aES/$ͽe7!^yZ;eyJ!RhQy>:fm;'(Gڏyݬ!Q 5y&Dc?k~A`yO'F7sP$D)z6ߘq-X2:X9z33BEKS3Bە=qSTn:=$4DM8l2HT0k Sx tQe?&t'ʪoThH US$ږqiqcN[DXbUQASw핔 . iESwUK{`wJ͊)DakQY[ h8zmm!Et L]3K+Qm 励s'~ i(ȦؗRI!/ 5 }Lŷq 5G+Ŷac6ߺSZ/ 8 ,txCw]L~d.wegH wjVjVXXwj}eM}ZjJܒ:HY#(+AZW햇Ŧs#_#rVP\e=BT-Ho Q͑*BBb/k2W\0Ȇu]۽V ψG 8P> OHP(P(8K^}Ȼի ?7[\4zԽbPz3ٛlCzc]q7-S2ObiOWr~z?|y?x endstream endobj 1415 0 obj << /Type /Page /Contents 1416 0 R /Resources 1414 0 R /MediaBox [0 0 595.276 841.89] /Parent 1362 0 R >> endobj 1417 0 obj << /D [1415 0 R /XYZ 80.963 747.976 null] >> endobj 458 0 obj << /D [1415 0 R /XYZ 81.963 700.146 null] >> endobj 1414 0 obj << /Font << /F25 474 0 R /F28 511 0 R /F41 649 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1420 0 obj << /Length 1504 /Filter /FlateDecode >> stream xڭXK8+j r*8f<ɤ-@c[0mYm^3$_-i-)ҸjoG)5MMVrGiKfȚՕPPR So7z;t-2cٲncm7߼5۫`GRڕ--ڗoInGzYȦIڿ5 P%KZc5-mImP*2u߯?QFH- 4Leqa+2s !mקI:?8صC.Ѩh34Uԟ+W_P>D;(~IV/3ɓ` G~T ]9]?&g׈ޱ >=?@!.#E?w~r4[?H0HJ X"WIՆ y$1e;H8``K(8f! U3;;)-$&) ^e=|Φ|9M,_r}IEFmsIZe6\!LVlݥ耓=r@iQda C+h.l{ ]-.Ock(\"qB49"ieoP1z&OO~&;9 ٠L(NQ@f;#C ]ZlF&1w!z3ܬ(#i, AR>΋| wneϝ-, Zln`]8~s(;@443/ys)'+t0q4 KĹםMgT11p&v)SPK?k+;#D.$H"ޥVU'1&Iz]#ܢP-oE"ޛ¢;_S!~LDɆQ(T M>0܃= @ZB&id )\@Mqd`Ӧ_uӌ_EZ+KY+U0U_rx~,S,1쪕bGGD ۇRm z96-.`Aa.(&Tة3_CA,u:xٵJ-oq[vdv%0b_M㙋ip}i&G9`G),B7G?Ԥ@$ ֙1Ekr#A>/gB||I'iI$[G9JԖC}~63AAP qoieh &mvIzr/z#̧ETNr kq`Op/Q/Q6QߚmN^_;b7 endstream endobj 1419 0 obj << /Type /Page /Contents 1420 0 R /Resources 1418 0 R /MediaBox [0 0 595.276 841.89] /Parent 1362 0 R >> endobj 1421 0 obj << /D [1419 0 R /XYZ 122.806 747.976 null] >> endobj 1418 0 obj << /Font << /F25 474 0 R /F41 649 0 R /F59 1236 0 R /F34 1237 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1424 0 obj << /Length 1437 /Filter /FlateDecode >> stream xڥrHWh8)hA .SEEve"RLԈKjE,Mrzy8Vj9CX;g-(p?&hM2޸mw}﹀Xط&t88}X }4fna8 F>9G5N'+kI8P3:ɭa8Yvj 磈p'̖4 |AcܜFb |}?,Pk?ˣqq,c/ͬeFb_юM]|8S endstream endobj 1423 0 obj << /Type /Page /Contents 1424 0 R /Resources 1422 0 R /MediaBox [0 0 595.276 841.89] /Parent 1426 0 R >> endobj 1425 0 obj << /D [1423 0 R /XYZ 80.963 747.976 null] >> endobj 1422 0 obj << /Font << /F25 474 0 R /F41 649 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1429 0 obj << /Length 1506 /Filter /FlateDecode >> stream xڕXn8}W~m@꺩4&ζ@RmDb_C͗O.9sfdqy~c\w`ֆ3ZS{lL#k0sQtFpܻeqno'nꛓѬ7p}wn?>vί؆Sufd46ma[Fp:֡cWcb&S:̑Xmkf9}:=/+n1 aάx(CG887,I(;=.55),\W;Pt6ţzTy׹׮;FD;hc뻺jr Pn00<( L^(TX8NCSn>f:t$dTisB>D^;8eSI҆pu#RZF_cδ8lRd2JBieeKZFX~nd,>8C n=5o |Vvm:t-jWժ+6^@\U=FwG*%e>1%H.\5PJm+q3KZ̳BD3?jr6RyhhI8*a8qcWQR8"ӘZU|aM:+>Zr9eqyUV~%"^4 Sz^jҧf;Y|@l H>/KL0bTorGdK&%GmP@N4Vp,:vg͔ `5 D37M/>ߦj*Iٝo40.h!]\2S[a}X~^,CzLR~voňì1Iԝ&9Jp"m[&Mt; \?\S( /m'lR}p5@-x_]Cg7!^ރ|ԣkqլw^00L{`PxJlcdJZ޷\"?Di ye 넖ݻLc#G;E`R @Zj>ZE\̲ksk5. ){Oձƛknxf¿ @oE͏-R7kBh1㣝*> endobj 1430 0 obj << /D [1428 0 R /XYZ 122.806 747.976 null] >> endobj 1427 0 obj << /Font << /F25 474 0 R /F41 649 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1433 0 obj << /Length 747 /Filter /FlateDecode >> stream xڍVMo0+6QeTj$MHiJn&`;~4 `<̼1@>tNSE!$.408zA4GGǏs:Wa4YbxtyxQHuYp>ivw߆b{Icq̓'XQ'6+j+Zm1?Wpvnċ Cs&E;}Ks;#e֕Dc> endobj 1434 0 obj << /D [1432 0 R /XYZ 80.963 747.976 null] >> endobj 1431 0 obj << /Font << /F25 474 0 R /F41 649 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1437 0 obj << /Length 155 /Filter /FlateDecode >> stream x]N= @߯xco}XoJ'.vp[T eYFk+2CT>b/(X튪v;R{[$)JobVm?Đ3<Br8Ll6HRǀwtBF'8} ( endstream endobj 1436 0 obj << /Type /Page /Contents 1437 0 R /Resources 1435 0 R /MediaBox [0 0 595.276 841.89] /Parent 1426 0 R >> endobj 1438 0 obj << /D [1436 0 R /XYZ 122.806 747.976 null] >> endobj 1435 0 obj << /Font << /F25 474 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1462 0 obj << /Length 976 /Filter /FlateDecode >> stream x՘]o8+;lJJ 0mi&5Mlpgsk`ϳ7WL.HXH*`UB 2xFw $؏bI{gU]Ōga{힫H0u#Njvf IFafHqA,XRdF Gg4gu[эUbEHD8ǃCҽ)@|Ɣ%K@H-"̫Yn6ySNYDXȸBO`Ȍg#3꙽R5Y̩/(朆ޡa^Fw@_VEAḅM_E1mkǢ[9&!YmfJ}ouvf=!xzxD'hHo͛Nomqb^'$=cy10]KeB]Tu{IP8\4)l.)RWi'N'C#1{mFymζiJJOVq?c.o{yW~wC=Eݖ5tns;˝Alwmnht Lr{1B1z`qU;Zz!Ns:CCmZHJcSK?Í ‘I%Hѹ1o\Wߍ{'GݺM^vzbp$tiF},W^!ޥ03AqYLb ! ?SAI4z6U1Ui`G|$@zKXz ّck4 uLѺiXyuG_]mn)1_)794fYXNu cqH1Ϊ){8(ń5pe?ؓO(TY`s,8 c,9t;:t#j}[> endobj 1439 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 551.973 229.402 563.6] /A << /S /GoTo /D (table.caption.7) >> >> endobj 1440 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 530.582 220.656 540.088] /A << /S /GoTo /D (table.3.1) >> >> endobj 1441 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 514.912 311.909 526.539] /A << /S /GoTo /D (table.caption.35) >> >> endobj 1442 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 501.363 327.524 512.989] /A << /S /GoTo /D (table.caption.37) >> >> endobj 1443 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 487.814 236.006 499.44] /A << /S /GoTo /D (table.caption.53) >> >> endobj 1444 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 464.302 198.579 475.928] /A << /S /GoTo /D (table.caption.69) >> >> endobj 1445 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 450.753 223.345 462.379] /A << /S /GoTo /D (table.caption.70) >> >> endobj 1446 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 439.324 196.375 448.83] /A << /S /GoTo /D (table.caption.71) >> >> endobj 1447 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 423.654 358.163 435.281] /A << /S /GoTo /D (table.caption.72) >> >> endobj 1448 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 412.226 263.719 421.732] /A << /S /GoTo /D (table.caption.73) >> >> endobj 1449 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 398.677 246.843 408.182] /A << /S /GoTo /D (table.caption.74) >> >> endobj 1450 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 383.007 192.939 394.633] /A << /S /GoTo /D (table.caption.75) >> >> endobj 1451 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 369.458 296.817 381.084] /A << /S /GoTo /D (table.caption.76) >> >> endobj 1452 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 355.908 258.695 367.535] /A << /S /GoTo /D (table.caption.77) >> >> endobj 1453 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 344.48 232.47 353.986] /A << /S /GoTo /D (table.caption.78) >> >> endobj 1454 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 330.931 171.096 340.436] /A << /S /GoTo /D (table.caption.79) >> >> endobj 1455 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 315.261 223.345 326.887] /A << /S /GoTo /D (table.caption.80) >> >> endobj 1456 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 303.832 213.249 313.338] /A << /S /GoTo /D (table.caption.81) >> >> endobj 1457 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 288.162 310.59 299.789] /A << /S /GoTo /D (table.caption.82) >> >> endobj 1458 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 266.771 299.672 276.277] /A << /S /GoTo /D (table.D.1) >> >> endobj 1459 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 243.259 283.405 252.765] /A << /S /GoTo /D (table.E.1) >> >> endobj 1463 0 obj << /D [1461 0 R /XYZ 80.963 747.976 null] >> endobj 1464 0 obj << /D [1461 0 R /XYZ 81.963 568.639 null] >> endobj 1460 0 obj << /Font << /F25 474 0 R /F28 511 0 R /F48 922 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1467 0 obj << /Length 151 /Filter /FlateDecode >> stream x]? 0)nLIF X "V:Yt_ߢ;70u6@,bI\#Zol( &%tevN DZŠN݇EghQC;zl+ J6׸4͌e3{q9p)ݦLu5' endstream endobj 1466 0 obj << /Type /Page /Contents 1467 0 R /Resources 1465 0 R /MediaBox [0 0 595.276 841.89] /Parent 1426 0 R >> endobj 1468 0 obj << /D [1466 0 R /XYZ 122.806 747.976 null] >> endobj 1465 0 obj << /Font << /F25 474 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1503 0 obj << /Length 1363 /Filter /FlateDecode >> stream xZ[s6}ϯn\Mti&>m b6_ n}K BvsuiysY;s'DdB,  Cn<Dsbǃ0cyP7X7Wv2@GŝDs h; y@pg0pE|u1r3c2݈ǵzފ^@#w>|_$.D{CT!<)20-L7_ H\н|azc 7c ϊ%ERjmT3O!s&n}O `o#m ٭v o3!7DXۇQ`L$ޒbP9"eN讚VׇXm0i,[-,6i4{=pҎ^' &UmO/n{tϱ<1{QzMiFV≽ O/Y{Jh8XwY!0svJ{<<Yy=vH:/:hJsBI#>&eu!E/<ZE>ǍB{;Cm!^t8: ,\YZkԪEi4]Qffu7V 7ySV1"]uP -JwT/js5Av*itKQ4hgm2.ElpcHofWAPھ]ѩhbk^":Mym(prPу@M {njYi.L]Xʋzh$( )l\Y$GހH Lf(2H^ʸ$QxYDGP{M.bjʇd"׾U⽰NE(l޺nD #Et|`LmO6y._|'g]!„OձP("PA0d#k]jzafk&!>9p^.3mޏM&bz'"?yl x^'adӬk[%o}Ha~p.oŮ@Sjctq?ΖM"6?і̓1Qr .L7U|b~=S/=Ǿu]d3/Q.?-> endobj 1469 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 543.617 238.988 553.123] /A << /S /GoTo /D (figure.caption.19) >> >> endobj 1470 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 517.704 432.48 529.33] /A << /S /GoTo /D (figure.caption.20) >> >> endobj 1471 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 503.874 232.509 515.501] /A << /S /GoTo /D (figure.caption.21) >> >> endobj 1472 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 480.082 308.596 491.708] /A << /S /GoTo /D (figure.caption.22) >> >> endobj 1473 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 466.252 286.6 477.879] /A << /S /GoTo /D (figure.caption.23) >> >> endobj 1474 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 452.422 471.502 464.049] /A << /S /GoTo /D (figure.caption.24) >> >> endobj 1506 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [80.966 438.873 236.278 450.5] /A << /S /GoTo /D (figure.caption.24) >> >> endobj 1475 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 425.044 256.521 436.67] /A << /S /GoTo /D (figure.caption.25) >> >> endobj 1476 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 411.214 242.355 422.84] /A << /S /GoTo /D (figure.caption.26) >> >> endobj 1477 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 397.384 305.953 409.011] /A << /S /GoTo /D (figure.caption.26) >> >> endobj 1478 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 383.554 402.767 395.181] /A << /S /GoTo /D (figure.caption.26) >> >> endobj 1479 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 369.725 186.237 381.351] /A << /S /GoTo /D (figure.caption.27) >> >> endobj 1480 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 355.895 196.372 367.522] /A << /S /GoTo /D (figure.caption.28) >> >> endobj 1481 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 344.186 192.851 353.692] /A << /S /GoTo /D (figure.caption.29) >> >> endobj 1482 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 330.356 173.597 339.862] /A << /S /GoTo /D (figure.caption.30) >> >> endobj 1483 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 314.406 471.502 326.032] /A << /S /GoTo /D (figure.caption.31) >> >> endobj 1484 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [175.096 314.406 237.053 326.032] /Subtype/Link/A<> >> endobj 1485 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [369.805 314.406 471.502 326.032] /Subtype/Link/A<> >> endobj 1507 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [80.966 300.857 223.617 312.483] /A << /S /GoTo /D (figure.caption.31) >> >> endobj 1508 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [80.966 300.857 159.731 312.483] /Subtype/Link/A<> >> endobj 1486 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 289.148 185.702 298.654] /A << /S /GoTo /D (figure.caption.32) >> >> endobj 1487 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 275.318 210.783 284.824] /A << /S /GoTo /D (figure.caption.33) >> >> endobj 1488 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 259.368 226.6 270.994] /A << /S /GoTo /D (figure.caption.34) >> >> endobj 1489 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 245.538 247.178 257.164] /A << /S /GoTo /D (figure.caption.36) >> >> endobj 1490 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 231.708 274.963 243.335] /A << /S /GoTo /D (figure.caption.38) >> >> endobj 1491 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 219.999 191.072 229.505] /A << /S /GoTo /D (figure.caption.39) >> >> endobj 1492 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 204.049 193.18 215.675] /A << /S /GoTo /D (figure.caption.40) >> >> endobj 1493 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 192.34 182.323 201.846] /A << /S /GoTo /D (figure.caption.41) >> >> endobj 1494 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 178.51 231.511 188.016] /A << /S /GoTo /D (figure.caption.41) >> >> endobj 1495 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 162.56 202.886 174.186] /A << /S /GoTo /D (figure.caption.42) >> >> endobj 1496 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 150.851 194.296 160.357] /A << /S /GoTo /D (figure.caption.43) >> >> endobj 1497 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 134.294 241.072 147.193] /A << /S /GoTo /D (figure.caption.44) >> >> endobj 1498 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 121.071 248.309 132.697] /A << /S /GoTo /D (figure.caption.45) >> >> endobj 1499 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [97.237 107.241 208.548 118.867] /A << /S /GoTo /D (figure.caption.50) >> >> endobj 1504 0 obj << /D [1502 0 R /XYZ 80.963 747.976 null] >> endobj 1505 0 obj << /D [1502 0 R /XYZ 81.963 563.587 null] >> endobj 1501 0 obj << /Font << /F25 474 0 R /F28 511 0 R /F48 922 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1533 0 obj << /Length 943 /Filter /FlateDecode >> stream xݙMw8Z,KK $M',.(=39xND g3CEn&4̖bz}$b:i3w=8p=>Yo[aƌ:<| PHG׀ FLڛ(H (7`dM^??J[).K{ D@bp'g}93 aH~yi}L uYخ(C07fcXxr#lUd JN | BBJ#xY^!hx+=> endobj 1500 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [139.08 685.074 285.412 696.701] /A << /S /GoTo /D (figure.caption.51) >> >> endobj 1510 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [139.08 671.525 354.165 683.151] /A << /S /GoTo /D (figure.caption.55) >> >> endobj 1511 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [139.08 657.976 293.939 669.602] /A << /S /GoTo /D (figure.caption.58) >> >> endobj 1512 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [139.08 646.547 228.091 656.053] /A << /S /GoTo /D (figure.caption.63) >> >> endobj 1513 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [139.08 630.877 295.069 642.504] /A << /S /GoTo /D (figure.caption.68) >> >> endobj 1514 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [139.08 607.365 343.169 618.992] /A << /S /GoTo /D (figure.caption.83) >> >> endobj 1515 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [139.08 593.21 260.173 606.109] /A << /S /GoTo /D (figure.caption.84) >> >> endobj 1516 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [139.08 582.388 218.441 591.894] /A << /S /GoTo /D (figure.caption.85) >> >> endobj 1517 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [139.08 566.718 227.542 578.344] /A << /S /GoTo /D (figure.caption.86) >> >> endobj 1518 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [139.08 553.169 241.096 564.795] /A << /S /GoTo /D (figure.caption.87) >> >> endobj 1519 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [139.08 541.74 224.616 551.246] /A << /S /GoTo /D (figure.caption.88) >> >> endobj 1520 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [139.08 526.07 238.63 537.697] /A << /S /GoTo /D (figure.caption.89) >> >> endobj 1521 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [139.08 512.521 238.031 524.148] /A << /S /GoTo /D (figure.caption.90) >> >> endobj 1522 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [139.08 498.972 276.662 510.598] /A << /S /GoTo /D (figure.caption.91) >> >> endobj 1523 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [139.08 485.423 230.794 497.049] /A << /S /GoTo /D (figure.caption.91) >> >> endobj 1524 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [139.08 473.994 208.412 483.5] /A << /S /GoTo /D (figure.caption.91) >> >> endobj 1525 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [139.08 460.445 208.636 469.951] /A << /S /GoTo /D (figure.caption.91) >> >> endobj 1526 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [139.08 446.896 250.898 456.402] /A << /S /GoTo /D (figure.caption.91) >> >> endobj 1527 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [139.08 421.263 331.137 432.89] /A << /S /GoTo /D (figure.caption.92) >> >> endobj 1528 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [139.08 407.714 301.981 419.341] /A << /S /GoTo /D (figure.caption.93) >> >> endobj 1529 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [139.08 384.202 407.088 395.829] /A << /S /GoTo /D (figure.caption.94) >> >> endobj 1530 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [139.08 360.69 393.21 372.317] /A << /S /GoTo /D (figure.caption.95) >> >> endobj 1534 0 obj << /D [1532 0 R /XYZ 122.806 747.976 null] >> endobj 1531 0 obj << /Font << /F25 474 0 R /F48 922 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1057 0 obj [462 0 R /Fit] endobj 1535 0 obj << /Length 134 /Filter /FlateDecode >> stream x3230U0P0W5V0T0TH1*24 (Ads< =\ %E\N @QhX.O7310X0T0hX'W K+%) endstream endobj 1536 0 obj << /Length 134 /Filter /FlateDecode >> stream x3230U0P0V5V04U0TH1*24  2ɹ\N\ \@a.}O_T.}gB4PO,B 9~  2>3`n`oS=% endstream endobj 1537 0 obj << /Length 137 /Filter /FlateDecode >> stream x= Pa!L#' BB4A;ͣxN.̷3)-ڂqtVv|0bu?Y,wyoׇE…18`ޣQo/Kư**:py)V endstream endobj 1538 0 obj << /Length 135 /Filter /FlateDecode >> stream x3230U0P0A ebUehr ɹ\N\ \@Q.}O_T.}gC.}hCX.O ?00?``kq@)y`@\\\` endstream endobj 1539 0 obj << /Length 101 /Filter /FlateDecode >> stream x3230U0P0W5S04S0SH1* (Aēs<,=\ %E\N \. ц \. 6u|r5? \=  endstream endobj 1540 0 obj << /Length 88 /Filter /FlateDecode >> stream x3230U0PbCS3CB.3 &r9yr+q{O_T.}gC.}hCX.O?@P? endstream endobj 1541 0 obj << /Length 141 /Filter /FlateDecode >> stream xڍ˽ P )+t[@OD|U RKAeF(w3;4N*tehjfkգy^hJ*!iD` ,x7D]/| 0 endstream endobj 1542 0 obj << /Length 95 /Filter /FlateDecode >> stream x3230U0PbCSC CB.3 'r9yr+q{=}JJS ]  b<]*A@\\\  endstream endobj 1543 0 obj << /Length 108 /Filter /FlateDecode >> stream x3230U0P0W5S0" CB. D"9ɓK?\K(ʥPRTʥ`ȥm``S6 ``SW__o'WՓ+  endstream endobj 1544 0 obj << /Length 106 /Filter /FlateDecode >> stream x3230U0P0W04V04S0PH1*(B$s<,=\ %E\N \. ц \. lr6<߿:.WO@.muj endstream endobj 1545 0 obj << /Length 88 /Filter /FlateDecode >> stream x1@@lBVb BT(#׽,\gEMqBͿC}=;$ 8+K a}O; endstream endobj 1546 0 obj << /Length 100 /Filter /FlateDecode >> stream x3230U0P0Q0" #3CB.CcD&9ɓK?\ИK(̥PRTʥ`ȥm`颐`>A.WO@.֭! endstream endobj 1547 0 obj << /Length 128 /Filter /FlateDecode >> stream x3230U0P0b#C#SCB.CK I$r9yr+Zr{E=}JJS ]*c<]00~ ļ$ev(?_r b!' endstream endobj 1548 0 obj << /Length 134 /Filter /FlateDecode >> stream x3230U0P0b# 2UH1*2\Dr.'~PKW4K)YKE!2E d؁A 3gB2 `2Heo?C.WO@.)p endstream endobj 1549 0 obj << /Length 132 /Filter /FlateDecode >> stream x3230U0P0a 2UH1*24\Dr.'~9PKW4K)YKE!P Es r 6  `6(g'W > stream x3230U0P0b# 2UH1*2\Dr.'~PKW4K)YKE!2Eccg`o`8DP%P> stream x3230U0P0b#C#SCB.CK I$r9yr+Zr{E=}JJS ]*c<]aDB $BK=@F"\=z -W endstream endobj 1552 0 obj << /Length 120 /Filter /FlateDecode >> stream x3230U0P0b#C#SCB.CK I$r9yr+Zr{E=}JJS ]*c<]?a@F $B…J!@$'W . % endstream endobj 1553 0 obj << /Length 140 /Filter /FlateDecode >> stream x3230U0P0b#C#SCB.CK I$r9yr+Zr{E=}JJS ]*c<]?7o '`PPF #@ 6 ]@pzrr. endstream endobj 1554 0 obj << /Length 104 /Filter /FlateDecode >> stream x3230U0C###SCB.#CD*9ɓK?\ȐK(ʥPRTʥuQjtQga> stream x3230U0P0bCK#SCB.C HrW04r{*r;8+r(D*ry(s1Փ+ Z%@ endstream endobj 1556 0 obj << /Length 114 /Filter /FlateDecode >> stream x3230U0P0a 2UH1*24\Dr.'~9PKW4K)YKE!P E? CJaD5 0`? endstream endobj 1557 0 obj << /Length 146 /Filter /FlateDecode >> stream xA @ EN@s3PtP+ҕTz9J3/ĹUYqV)-Ɋ&2 G~~2iǖLW5; -OEQCCF2b%;jΑNfH2t?a( endstream endobj 1558 0 obj << /Length 109 /Filter /FlateDecode >> stream x3230U0P0b#C#SCB.CK I$r9yr+Zr{E=}JJS ]*c<]70?$eG2 (r [$ endstream endobj 1559 0 obj << /Length 119 /Filter /FlateDecode >> stream x3230U0P0b#C#SCB.CK I$r9yr+Zr{E=}JJS ]*c<]?BV Hh7YnFB,3 h".WO@.2d endstream endobj 1560 0 obj << /Length 133 /Filter /FlateDecode >> stream x3230U0C###SCB.#CD*9ɓK?\ȐK(ʥPRTʥuQjtQcG=Pt =20dx@$ᅢz3r 3! endstream endobj 1561 0 obj << /Length 116 /Filter /FlateDecode >> stream x3230U0P0a 2UH1*24\Dr.'~9PKW4K)YKE!P EA?  0 h.WO@.~2$ endstream endobj 1562 0 obj << /Length 131 /Filter /FlateDecode >> stream x3230U0P0b# 2UH1*2\Dr.'~PKW4K)YKE!2E dd # @ 00`A @$'W b$ endstream endobj 1563 0 obj << /Length 142 /Filter /FlateDecode >> stream x3230U0P0R5S0Ҧ )\\@AcCLr.'~9PKW4K)YwQ6T0tQ`?C?ġ 7|PQ 4h ?;qzrr5 endstream endobj 1564 0 obj << /Length 132 /Filter /FlateDecode >> stream x3230U0C###SCB.#CD*9ɓK?\ȐK(ʥPRTʥuQjtQC?~f$3c"e ճ'W B$ endstream endobj 1565 0 obj << /Length 147 /Filter /FlateDecode >> stream xɿ 0o#{JB`A'utP:Qv3CiL ڕXI*zS_j>j#6܎߯ϝT_!ɰ>X #^b0=x13 ң.8#Nс* endstream endobj 1566 0 obj << /Length 107 /Filter /FlateDecode >> stream x3230U0P0b#C#SCB.CK I$r9yr+Zr{E=}JJS ]*c<]?FȀ?4k endstream endobj 1567 0 obj << /Length 113 /Filter /FlateDecode >> stream x3230U0C###SCB.#CD*9ɓK?\ȐK(ʥPRTʥuQjtQga<@c>.WO@.a*` endstream endobj 1568 0 obj << /Length 129 /Filter /FlateDecode >> stream x3230U0P0b#C#SCB.CK I$r9yr+Zr{E=}JJS ]*c<]? vgC vb``E?.WO@. 4 endstream endobj 1569 0 obj << /Length 128 /Filter /FlateDecode >> stream x3230U0C###SCB.#CD*9ɓK?\ȐK(ʥPRTʥuQjtQc`xG2O0 B<7 no/733pzrrj\0p endstream endobj 1570 0 obj << /Length 147 /Filter /FlateDecode >> stream x3230U0P0b#C#SCB.CK I$r9yr+Zr{E=}JJS ]*c<]I>9>v ``00<@6P(ξ_d$\=# endstream endobj 1571 0 obj << /Length 122 /Filter /FlateDecode >> stream x3230U0P0b#C#SCB.CK I$r9yr+Zr{E=}JJS ]*c<]? v !v(bB@vr N`% endstream endobj 1572 0 obj << /Length 140 /Filter /FlateDecode >> stream x3230U0P0a#C CB.CK I$r9yr+Zr{E=}JJS ]  b<]0`Pa` A?:>| CC?~Ϧ%3 endstream endobj 1573 0 obj << /Length 136 /Filter /FlateDecode >> stream x3230U0P0b#C#SCB.CK I$r9yr+Zr{E=}JJS ]*c<]00@ 2 A?|{92dH@1`r D'T endstream endobj 1574 0 obj << /Length 119 /Filter /FlateDecode >> stream x3230U0P0b#C CB.C3 I$r9yr+q{E=}JJS ]  b<]g'WS~`(``'W  endstream endobj 1575 0 obj << /Length 136 /Filter /FlateDecode >> stream x3230U0P0b#C#SCB.CK I$r9yr+Zr{E=}JJS ]*c<]3g`'PPg*{\\\05# endstream endobj 1576 0 obj << /Length 136 /Filter /FlateDecode >> stream x3230U0P0aC CB.Cs I$r9yr+s{E=}JJS ]  b<]?0a`'PP(zA?? \\\Wt'- endstream endobj 1577 0 obj << /Length 118 /Filter /FlateDecode >> stream x3230U0P0aK#SCB.Cs I$r9yr+s{E=}JJS ]*c<]70o`>B".WO@.E( endstream endobj 1578 0 obj << /Length 161 /Filter /FlateDecode >> stream x-1 0@t(Ao h BB`A'qRGEAGQ::cDOIӘ5LlxA.SMpڡr+]'TzNޣk({Q 2a`=ɅAY`>2=ɟb+#f2k endstream endobj 1579 0 obj << /Length 117 /Filter /FlateDecode >> stream x3230U0P0b#C#SCB.CK I$r9yr+Zr{E=}JJS ]*c<]00@ 2 AH7@Փ+ D-! endstream endobj 1580 0 obj << /Length 107 /Filter /FlateDecode >> stream x3230U0P0b# 2SH1*2 \.'O.pCS.}(BIQi*S!BA,;3@d.WO@.> stream x3230U0P0RеT04S02SH1*24 (Bds< =\ %E\N \. ц \.  ? `A L \\\m+# endstream endobj 1582 0 obj << /Length 137 /Filter /FlateDecode >> stream x3230U0C#C#SCB.#D*9ɓK?\ȀK(ʥPRTʥ`ȥm`PH!#|@$? _`(eoo ^$ endstream endobj 1583 0 obj << /Length 104 /Filter /FlateDecode >> stream x3230U0P0a 2UH1*24\Dr.'~9PKW4K)YKE!P E @\T ۫) endstream endobj 1584 0 obj << /Length 108 /Filter /FlateDecode >> stream x3230U0C##C CB.#C s< =\ %E\N @QhX.O?6 dQA\\\3C endstream endobj 1585 0 obj << /Length 112 /Filter /FlateDecode >> stream x3230U0P0b#CC CB.CK I$r9yr+Zr{E=}JJS ]*c<]aAH7@Փ+ {)!# endstream endobj 1586 0 obj << /Length 124 /Filter /FlateDecode >> stream x3230U0P0aC CB.Cs I$r9yr+s{E=}JJS ]  b<]0``#PP}`o  ʀZ\=" endstream endobj 1587 0 obj << /Length 143 /Filter /FlateDecode >> stream x3230U0P0TеT02T0PH1*2 (Cds< -=\ %E\N \. ц \. 0?|{92dH1`a@GՓ+ ,7 endstream endobj 1588 0 obj << /Length 137 /Filter /FlateDecode >> stream x3230U0P0TеT02R0PH1*22PA#sLr.'~PKW4K)YKE!P Es v     APPf $\=wq/ endstream endobj 1589 0 obj << /Length 120 /Filter /FlateDecode >> stream x3230U0P0b#CC CB.CK I$r9yr+Zr{E=}JJS ]*c<]P_07T!d endstream endobj 1590 0 obj << /Length 126 /Filter /FlateDecode >> stream x3230U0P0bCKC CB.C HrW04r{*r;8+r(D*ry(S2?PxՓ+ L& endstream endobj 1591 0 obj << /Length 119 /Filter /FlateDecode >> stream x3230U0P0aK#cCB.Cs I$r9yr+s{E=}JJS ]*c<]ؑP`΀ 1237@Q{ \= endstream endobj 1592 0 obj << /Length 111 /Filter /FlateDecode >> stream x3230U0P0b#CC CB.CK I$r9yr+Zr{E=}JJS ]*c<]3@ ;^ # pzrrϨ endstream endobj 1593 0 obj << /Length 117 /Filter /FlateDecode >> stream x3230U0P0b#CC CB.CK I$r9yr+Zr{E=}JJS ]*c<]Hʰ3 (bB \=  endstream endobj 1594 0 obj << /Length 122 /Filter /FlateDecode >> stream x3230U0P0b#CC CB.CK I$r9yr+Zr{E=}JJS ]*c<]? 8 B$7Cniiyy~9>>.WO@.MU" endstream endobj 1595 0 obj << /Length 134 /Filter /FlateDecode >> stream x3230U0P0b#CC CB.CK I$r9yr+Zr{E=}JJS ]*c<]r 6 ;?00~``xe?\\\! endstream endobj 1596 0 obj << /Length 147 /Filter /FlateDecode >> stream x3230U0P0TеT02T0PH1*2 (Cds< -=\ %E\N \. ц \. $e؁H `@ @`"% endstream endobj 1597 0 obj << /Length 129 /Filter /FlateDecode >> stream x3230U0P0a 2UH1*24\Dr.'~9PKW4K)YKE!P E? r6 |   +QTi# 4h'W Й(r endstream endobj 1598 0 obj << /Length 107 /Filter /FlateDecode >> stream x3230U0PaCK#SCB.Cc I$r9yr+s{E=}JJS ]  b<]P?~p?@Փ+ $ endstream endobj 1599 0 obj << /Length 148 /Filter /FlateDecode >> stream x%1 @Ё- 7iBVb)- =G{1*0jRRJr<6jzFlC+[|hL,M/[+厮P1^ OG@@ ܀~"ȕo~q/W(Q endstream endobj 1600 0 obj << /Length 145 /Filter /FlateDecode >> stream x̽ @xtbAPK E!ybf`CXD7OO.=on%w~}d=ٞOݙbzIh3A)@h` RxI(7M?t? $ endstream endobj 1601 0 obj << /Length 147 /Filter /FlateDecode >> stream x3230U0P0b#C#SCB.CK I$r9yr+Zr{E=}JJS ]*c<]10c`<|AA ?Փ+ ' endstream endobj 1602 0 obj << /Length 137 /Filter /FlateDecode >> stream x3230U0P0a 2UH1*24\Dr.'~9PKW4K)YKE!P E?C=0`A0cg0`g``o``nH`nD ~؃d0?`r ( endstream endobj 1603 0 obj << /Length 152 /Filter /FlateDecode >> stream x-= @.fo?҈EVbe,( )si)Foaƹٰȹt%[$cqPI)%7|=Τ-͑|ETb.Nx|"^ .dZJt@+O;*+3 endstream endobj 1604 0 obj << /Length 132 /Filter /FlateDecode >> stream x3230U0P0a 2SH1*24\Dr.'~9PKW4K)YKE!P E  CC @t .WO@.# endstream endobj 1605 0 obj << /Length 127 /Filter /FlateDecode >> stream x3230U0P0a 2UH1*24\Dr.'~9PKW4K)YKE!P E 5 0CQ;H(Q`#AVdCBqzrrkH+ endstream endobj 1606 0 obj << /Length 152 /Filter /FlateDecode >> stream x3230U0P0a 2UH1*24\Dr.'~9PKW4K)YKE!P E? 6r  P17|`o(oo s;13T1T0 94) endstream endobj 1272 0 obj << /Type /Font /Subtype /Type3 /Name /F62 /FontMatrix [0.02409 0 0 0.02409 0 0] /FontBBox [ 0 -10 22 29 ] /Resources << /ProcSet [ /PDF /ImageB ] >> /FirstChar 34 /LastChar 121 /Widths 1607 0 R /Encoding 1608 0 R /CharProcs 1609 0 R >> endobj 1607 0 obj [22.05 0 0 0 0 0 22.05 22.05 0 0 22.05 22.05 22.05 22.05 22.05 22.05 22.05 22.05 22.05 22.05 22.05 22.05 22.05 22.05 22.05 22.05 22.05 0 22.05 0 0 22.05 22.05 22.05 22.05 22.05 22.05 22.05 22.05 22.05 22.05 22.05 22.05 22.05 22.05 22.05 22.05 22.05 22.05 22.05 22.05 22.05 22.05 22.05 22.05 22.05 0 0 0 0 0 0 22.05 22.05 22.05 22.05 22.05 22.05 22.05 22.05 22.05 22.05 22.05 22.05 22.05 22.05 22.05 22.05 22.05 22.05 22.05 22.05 22.05 22.05 22.05 22.05 22.05 22.05 ] endobj 1608 0 obj << /Type /Encoding /Differences [34/a34 35/.notdef 40/a40/a41 42/.notdef 44/a44/a45/a46/a47/a48/a49/a50/a51/a52/a53/a54/a55/a56/a57/a58/a59/a60 61/.notdef 62/a62 63/.notdef 65/a65/a66/a67/a68/a69/a70/a71/a72/a73/a74/a75/a76/a77/a78/a79/a80/a81/a82/a83/a84/a85/a86/a87/a88/a89 90/.notdef 96/a96/a97/a98/a99/a100/a101/a102/a103/a104/a105/a106/a107/a108/a109/a110/a111/a112/a113/a114/a115/a116/a117/a118/a119/a120/a121] >> endobj 1609 0 obj << /a34 1546 0 R /a40 1535 0 R /a41 1536 0 R /a44 1539 0 R /a45 1545 0 R /a46 1540 0 R /a47 1541 0 R /a48 1597 0 R /a49 1598 0 R /a50 1599 0 R /a51 1600 0 R /a52 1601 0 R /a53 1602 0 R /a54 1603 0 R /a55 1604 0 R /a56 1605 0 R /a57 1606 0 R /a58 1542 0 R /a59 1543 0 R /a60 1537 0 R /a62 1538 0 R /a65 1547 0 R /a66 1548 0 R /a67 1549 0 R /a68 1550 0 R /a69 1551 0 R /a70 1552 0 R /a71 1553 0 R /a72 1554 0 R /a73 1555 0 R /a74 1556 0 R /a75 1557 0 R /a76 1558 0 R /a77 1559 0 R /a78 1560 0 R /a79 1561 0 R /a80 1562 0 R /a81 1563 0 R /a82 1564 0 R /a83 1565 0 R /a84 1566 0 R /a85 1567 0 R /a86 1568 0 R /a87 1569 0 R /a88 1570 0 R /a89 1571 0 R /a96 1544 0 R /a97 1572 0 R /a98 1573 0 R /a99 1574 0 R /a100 1575 0 R /a101 1576 0 R /a102 1577 0 R /a103 1578 0 R /a104 1579 0 R /a105 1580 0 R /a106 1581 0 R /a107 1582 0 R /a108 1583 0 R /a109 1584 0 R /a110 1585 0 R /a111 1586 0 R /a112 1587 0 R /a113 1588 0 R /a114 1589 0 R /a115 1590 0 R /a116 1591 0 R /a117 1592 0 R /a118 1593 0 R /a119 1594 0 R /a120 1595 0 R /a121 1596 0 R >> endobj 1610 0 obj << /Length 112 /Filter /FlateDecode >> stream x36г0S0P04T5U0T01PH1*24(Bs< ͹=\ %E\N \. ц \. o# tEaVG9 endstream endobj 1611 0 obj << /Length 112 /Filter /FlateDecode >> stream x36г0S0P0R5U02P01PH1*24 \.'O.pCs.}0BIQi*S!BA,B?]Q=^ \\\7 endstream endobj 1612 0 obj << /Length 134 /Filter /FlateDecode >> stream x36г0S0P0V5U0P01PH1*22 (Bds<L=\ %E\N \. ц \. ~Q ف<7b~B@E zP400qzrr_+= endstream endobj 1613 0 obj << /Length 147 /Filter /FlateDecode >> stream x36г0S0P0V5U0P01PH1*22 (Bds<L=\ %E\N \. ц \. 3g`TW?}@6P$Nv-@6Փ+ ]. endstream endobj 1614 0 obj << /Length 148 /Filter /FlateDecode >> stream x36г0S0P0V5U0P01PH1*22 (Bds<L=\ %E\N \. ц \. 0PC1g`"l=q@vm .WO@.. endstream endobj 1615 0 obj << /Length 97 /Filter /FlateDecode >> stream x5=@@wwZ-$T QTj7$bL"b()iLF !=M A|c?mKj㠩Fx+uT+ endstream endobj 1616 0 obj << /Length 117 /Filter /FlateDecode >> stream x36г0S0P04PеP02TPH1*A *ɥr{Ź=}JJS ]  b<]@ PC'W kG endstream endobj 1617 0 obj << /Length 89 /Filter /FlateDecode >> stream x36г0S0P04F  )\\@NrW %E\N \. @u\. 6uΆՓ+  endstream endobj 1618 0 obj << /Length 95 /Filter /FlateDecode >> stream x36г0S0P04F@dbUey`\.'O.p .}(BIQi*S!B4Pa,M a'W q endstream endobj 1619 0 obj << /Length 108 /Filter /FlateDecode >> stream x36г0S0P0R04T0T02QH1*2 (Cds≮=\ %E\N \. ц \. 7 X.WO@. , endstream endobj 1620 0 obj << /Length 100 /Filter /FlateDecode >> stream x36г0S0P0U04T02S04UH1*22PADr.'~ BIQi*S!BA,B" Փ+ O8 endstream endobj 1621 0 obj << /Length 110 /Filter /FlateDecode >> stream x36г0S0P0S0T02U06WH1*2 ()Lr.'~8PKLz*r;8+r(D*ry(03`? Q{07pzrrn, endstream endobj 1622 0 obj << /Length 188 /Filter /FlateDecode >> stream xM= @ M&FI1BBBQċ #L8H@{N'M]j(N)ѴqJMIl8P(NP\*t٣-:"lBpMMyRb}b5- ‚Iِ 86W_sys^<ʗғ'ߩN3\e'H endstream endobj 1623 0 obj << /Length 205 /Filter /FlateDecode >> stream x-?n0e p|(vK,QRSj7D,bF%qH?^ MrK3 P9{'\n^]:K עPEZ 5 @ R^일zBmt$֙^MjAC#P#-kZS endstream endobj 1624 0 obj << /Length 179 /Filter /FlateDecode >> stream x]; @ER^3;8Re Fp A+ RK Ea!5)V88Ѳ)tZRP%;$Ѭs8ߠd7 \nx]Wk:@k3XKpiVh& ɪҥn-`14mF ^k=a-a?ηK endstream endobj 1625 0 obj << /Length 147 /Filter /FlateDecode >> stream x36г0S0P0aKcsCB.# HrW02r{*r;8+r(D*ry(030q}*.P0000ocg!!'W vO endstream endobj 1626 0 obj << /Length 157 /Filter /FlateDecode >> stream x36г0S0P0b#Kc3CB.#s I$r9yr+s{E=}JJS ]*c<]?`aA+1Bh^d?01?7\=ZK endstream endobj 1627 0 obj << /Length 179 /Filter /FlateDecode >> stream xڅ̱0# $ж . &v08F7"}&*w*yFIJN _ JeJ!P!_5rvD^f$״$vj>M` &6a}¹CdAG?h\L{~:Zm \?_aFX endstream endobj 1628 0 obj << /Length 151 /Filter /FlateDecode >> stream x36г0S0C#Kc3CB.# 1D*9ɓK?\ȂK(ʥPRTʥ`ȥm`PC @l ء3~ #a1d&l] ;Av.WO@.Mr endstream endobj 1629 0 obj << /Length 143 /Filter /FlateDecode >> stream x36г0S0P0bc 2SH1*2\Dr.'~PKW4K)YKE!2Ea ;fno``@  ?Ԡ 1~LR endstream endobj 1630 0 obj << /Length 137 /Filter /FlateDecode >> stream x36г0S0P0b#Kc3CB.#s I$r9yr+s{E=}JJS ]*c<]? d?o`FÌPqh&V@``Al.WO@.Ew endstream endobj 1631 0 obj << /Length 113 /Filter /FlateDecode >> stream x36г0S0P0bc 2SH1*2\Dr.'~PKW4K)YKE!2E 6<TL^(FՓ+ [G endstream endobj 1632 0 obj << /Length 99 /Filter /FlateDecode >> stream x36г0S0P0b#sc3CB.#C I$r9yr+r{E=}JJS. @-\. # TGszrrkD| endstream endobj 1633 0 obj << /Length 106 /Filter /FlateDecode >> stream x36г0S0P0aKc3CB.# HrW02r{*r;8+r(D*ry(h`G \\\&< endstream endobj 1634 0 obj << /Length 143 /Filter /FlateDecode >> stream x36г0S0P0bc 2SH1*2\Dr.'~PKW4K)YKE!2EA?`@}܃rT{\sbX!?l?L endstream endobj 1635 0 obj << /Length 156 /Filter /FlateDecode >> stream x36г0S0P0bc 2SH1*2\Dr.'~PKW4K)YKE!2E@3 a $l2P,|@ 0| 3G @;6=m.5 endstream endobj 1636 0 obj << /Length 134 /Filter /FlateDecode >> stream x36г0S0P0V5T0P06WH1*22 - 2ɹ\N\ F&\@a.}O_T.}gC.}hCX.O10yJ{9@BZՓ+ QB endstream endobj 1637 0 obj << /Length 145 /Filter /FlateDecode >> stream x36г0S0P0b# c3CB.# HrW02r{*r;8+r(DUry( PC=7!Ajz@zf@ 6'W  A endstream endobj 1638 0 obj << /Length 170 /Filter /FlateDecode >> stream x36г0S0P0T5T0"3CB.#K9D&9ɓK?\ȒK(̥PRTʥ`ȥm`P@? u@l@,ru =@@3F n5p?00r PVL endstream endobj 1639 0 obj << /Length 174 /Filter /FlateDecode >> stream x5= @@ i@ sL!he!Vj)D6z2Qr[,;Nދi:bDw,*T;T+ɨ5o3bUIV%9s=fmk@4z OAsrﰆHN󝹨fؙ[ì{.+`H, endstream endobj 1640 0 obj << /Length 120 /Filter /FlateDecode >> stream x36г0S0P0bc 2SH1*2\Dr.'~PKW4K)YKE!2E?Qp?cՓ+ j%AN endstream endobj 1641 0 obj << /Length 137 /Filter /FlateDecode >> stream x36г0S0B]Cc 2SH1*26 Cds< =\ %E\N \. ц \. QAl4P@?30g` \=/K endstream endobj 1642 0 obj << /Length 146 /Filter /FlateDecode >> stream x36г0S0P0T5T06P06SH1*2 \.'O.p# .}0BIQi*S!BA,B?@ -"*~P3~>|``+bX\=BIc endstream endobj 1643 0 obj << /Length 166 /Filter /FlateDecode >> stream x-ʱ @ HB>B]A( NVھ}{Gc %|?R=_-IS:2,fI&Yq,,,%\Q=_;!!}A[R4BNzgeP"4mt^?M#9s3.Q[G= endstream endobj 1644 0 obj << /Length 156 /Filter /FlateDecode >> stream x36г0S0C#Kc3CB.# 1D*9ɓK?\ȂK(ʥPRTʥ`ȥm`P1;>|? ??`?@0# @"o1h.s.WO@.YJ} endstream endobj 1645 0 obj << /Length 142 /Filter /FlateDecode >> stream x36г0S0P0b#s#SCB.## I$r9yr+q{E=}JJS ]  b<]0?3cc`F?PDR PP\=1 endstream endobj 1646 0 obj << /Length 164 /Filter /FlateDecode >> stream x36г0S0P0bcCc3CB.# I$r9yr+Yp{E=}JJS ]  b<]00`f fÍc`cgPj@ cf?`?r [>X endstream endobj 1647 0 obj << /Length 153 /Filter /FlateDecode >> stream x36г0S0P0b#s#SCB.#1s<=\ %E\N \. ц \.  j`?`T S`gP'?0PϠ9 endstream endobj 1648 0 obj << /Length 140 /Filter /FlateDecode >> stream x36г0S0P0b#sc3CB.#S I$r9yr+r{E=}JJS ]*c<]00g`` u@\PÀa`?f08 endstream endobj 1649 0 obj << /Length 198 /Filter /FlateDecode >> stream xUν 0 -} hE j;:9::(IۭG#TPWDA$ ($<|i Soiw8E&/B9ez@/Lh㒳4!ViaLe1<+U>*%:5p]D db[lUEnk?ݽ?r^6[<'L o, Vw endstream endobj 1650 0 obj << /Length 136 /Filter /FlateDecode >> stream x36г0S0CcCc3CB.cD*9ɓK?\؀K(ʥPRTʥ`ȥm`P1;>|? C?@ _\=2Hx endstream endobj 1651 0 obj << /Length 119 /Filter /FlateDecode >> stream x36г0S0P0b#scsCB.## I$r9yr+q{E=}JJS ]  b<]  ekHF# Փ+ 1 endstream endobj 1652 0 obj << /Length 141 /Filter /FlateDecode >> stream x36г0S0P0V54V02V06WH1*2(¤s< -=\ %E\N \. ц \. PP?R?`?.WO@.)C6 endstream endobj 1653 0 obj << /Length 175 /Filter /FlateDecode >> stream x36г0S0P0bc 2SH1*2\Dr.'~PKW4K)YKE!2E1;>{` b7a`o@@⟁!PAZ b{Al.WO@.i H endstream endobj 1654 0 obj << /Length 115 /Filter /FlateDecode >> stream x36г0S0P0b#Kc3CB.#S I$r9yr+r{E=}JJS ]  b<]00@`G_\?@r .+` endstream endobj 1655 0 obj << /Length 132 /Filter /FlateDecode >> stream x36г0S0CcC#SCB.c s< =\ %E\N \. ц \. 55 7@~ > stream x36г0S0CcC#SCB.c s< =\ %E\N \. ц \. ?z f'?7??? 6'W s? endstream endobj 1657 0 obj << /Length 139 /Filter /FlateDecode >> stream x36г0S0P0b# #SCB.# I$r9yr+p{E=}JJS ]  b<]`?10y4"TT T 4h'W =0 endstream endobj 1658 0 obj << /Length 169 /Filter /FlateDecode >> stream x36г0S0B]Cc#K#SCB.# T*9ɓK?\ȂK(ΥPRTʥ`ȥm`P? c@̈0@}g`4 q0\=

> stream x36г0S0P0b#K#SCB.#s I$r9yr+s{E=}JJS ]*c<]3s n??@  ` 6'W =& endstream endobj 1660 0 obj << /Length 156 /Filter /FlateDecode >> stream x; @E_H!%VLo!1),J-#,%KxC88t+8G;:Ecs/(&?$cS5{㲐6>U& DhMЎ<›:&S$P@/? endstream endobj 1661 0 obj << /Length 140 /Filter /FlateDecode >> stream x36г0S0P0b#sc#CB.#S I$r9yr+r{E=}JJS ]*c<]000~aظa@ ?=000?`r 1;j endstream endobj 1662 0 obj << /Length 127 /Filter /FlateDecode >> stream x36г0S0CcC#SCB.c s< =\ %E\N \. ц \. 7'}0r k? endstream endobj 1663 0 obj << /Length 138 /Filter /FlateDecode >> stream x36г0S0P0bc#SCB.# I$r9yr+Yp{E=}JJS ]*c<]? b71;6p>|@\XՓ+ 8 endstream endobj 1664 0 obj << /Length 143 /Filter /FlateDecode >> stream x36г0S0P0bc#SCB.# I$r9yr+Yp{E=}JJS ]*c<]?Al9d,@,o1[B{?pՓ+ H6 endstream endobj 1665 0 obj << /Length 156 /Filter /FlateDecode >> stream x36г0S0P0aK#SCB.# HrW02r{*r;8+r(D*ry(?3>00? ؞ lw a|j\=@8 endstream endobj 1666 0 obj << /Length 179 /Filter /FlateDecode >> stream xE a# u7?1D1,+ YaiAţ}2#J}ůNܮg'uiaDjOj"=hiKj8C*Mjy$'BQ1 &GRO n꥾X/ 2Db endstream endobj 1667 0 obj << /Length 163 /Filter /FlateDecode >> stream x36г0S0P0R5T0T06WH1*2 ([@ds≮=\ %E\N \. ц \. 00 5 v`leՀE!1Y_|<0 ?l'n@nՓ+ inA endstream endobj 1668 0 obj << /Length 130 /Filter /FlateDecode >> stream x36г0S0P0b#scsCB.#C I$r9yr+r{E=}JJS. @-\.   ? 0P$E!@dpzrr>+ endstream endobj 1669 0 obj << /Length 174 /Filter /FlateDecode >> stream x-= @'X^anTYL!he!Vji(X%/)S,Y7⛉Ed#0h׀Qr y0&+bǯF2ۯ9 )`LE4iWF&5%0NY@9јp;x\BAT )@?I< endstream endobj 1670 0 obj << /Length 174 /Filter /FlateDecode >> stream x-ͱ 0Wny?IڢZ N⤎q)B# gԬ҂]4195VcvK늲ڭHI֔ il JyH> stream xu1 @49B&"n!heB.`[[[ThIs|wڟ~8߸4dhY<+rU%u,ĦD% "( Bon)蠵BDrh`\ F&tEWB;K endstream endobj 1672 0 obj << /Length 162 /Filter /FlateDecode >> stream x36г0S0P0V5T0P06SH1*22 !2ɹ\N\ F&\@a.}O_T.}gC.}hCX.O?v 8ocdž$cF  @ꀨO}3o` : endstream endobj 1239 0 obj << /Type /Font /Subtype /Type3 /Name /F60 /FontMatrix [0.01721 0 0 0.01721 0 0] /FontBBox [ 0 -14 31 40 ] /Resources << /ProcSet [ /PDF /ImageB ] >> /FirstChar 34 /LastChar 125 /Widths 1673 0 R /Encoding 1674 0 R /CharProcs 1675 0 R >> endobj 1673 0 obj [30.86 0 30.86 30.86 0 0 0 0 0 0 30.86 30.86 30.86 0 30.86 30.86 30.86 30.86 30.86 30.86 0 0 0 0 30.86 0 0 30.86 0 0 30.86 30.86 30.86 30.86 30.86 30.86 30.86 0 30.86 30.86 0 0 30.86 30.86 30.86 30.86 30.86 0 30.86 30.86 30.86 30.86 30.86 0 0 0 0 30.86 30.86 30.86 0 30.86 0 30.86 30.86 30.86 30.86 30.86 30.86 30.86 30.86 30.86 30.86 30.86 30.86 30.86 30.86 30.86 30.86 0 30.86 30.86 30.86 30.86 30.86 30.86 30.86 30.86 0 30.86 0 30.86 ] endobj 1674 0 obj << /Type /Encoding /Differences [34/a34 35/.notdef 36/a36/a37 38/.notdef 44/a44/a45/a46 47/.notdef 48/a48/a49/a50/a51/a52/a53 54/.notdef 58/a58 59/.notdef 61/a61 62/.notdef 64/a64/a65/a66/a67/a68/a69/a70 71/.notdef 72/a72/a73 74/.notdef 76/a76/a77/a78/a79/a80 81/.notdef 82/a82/a83/a84/a85/a86 87/.notdef 91/a91/a92/a93 94/.notdef 95/a95 96/.notdef 97/a97/a98/a99/a100/a101/a102/a103/a104/a105/a106/a107/a108/a109/a110/a111/a112 113/.notdef 114/a114/a115/a116/a117/a118/a119/a120/a121 122/.notdef 123/a123 124/.notdef 125/a125] >> endobj 1675 0 obj << /a34 1621 0 R /a36 1622 0 R /a37 1623 0 R /a44 1616 0 R /a45 1620 0 R /a46 1617 0 R /a48 1667 0 R /a49 1668 0 R /a50 1669 0 R /a51 1670 0 R /a52 1671 0 R /a53 1672 0 R /a58 1618 0 R /a61 1619 0 R /a64 1624 0 R /a65 1625 0 R /a66 1626 0 R /a67 1627 0 R /a68 1628 0 R /a69 1629 0 R /a70 1630 0 R /a72 1631 0 R /a73 1632 0 R /a76 1633 0 R /a77 1634 0 R /a78 1635 0 R /a79 1636 0 R /a80 1637 0 R /a82 1638 0 R /a83 1639 0 R /a84 1640 0 R /a85 1641 0 R /a86 1642 0 R /a91 1610 0 R /a92 1612 0 R /a93 1611 0 R /a95 1615 0 R /a97 1643 0 R /a98 1644 0 R /a99 1645 0 R /a100 1646 0 R /a101 1647 0 R /a102 1648 0 R /a103 1649 0 R /a104 1650 0 R /a105 1651 0 R /a106 1652 0 R /a107 1653 0 R /a108 1654 0 R /a109 1655 0 R /a110 1656 0 R /a111 1657 0 R /a112 1658 0 R /a114 1659 0 R /a115 1660 0 R /a116 1661 0 R /a117 1662 0 R /a118 1663 0 R /a119 1664 0 R /a120 1665 0 R /a121 1666 0 R /a123 1613 0 R /a125 1614 0 R >> endobj 1676 0 obj [1062.5] endobj 1677 0 obj << /Length 152 /Filter /FlateDecode >> stream x3231S0P0T5T02S06PH1*22 (Bds<L=\ %E\N @BA,? Q1?c C@6PXzDФ10pzrr? endstream endobj 1236 0 obj << /Type /Font /Subtype /Type3 /Name /F59 /FontMatrix [0.02007 0 0 0.02007 0 0] /FontBBox [ 1 -1 26 30 ] /Resources << /ProcSet [ /PDF /ImageB ] >> /FirstChar 82 /LastChar 82 /Widths 1678 0 R /Encoding 1679 0 R /CharProcs 1680 0 R >> endobj 1678 0 obj [26.46 ] endobj 1679 0 obj << /Type /Encoding /Differences [82/a82] >> endobj 1680 0 obj << /a82 1677 0 R >> endobj 1681 0 obj << /Length 206 /Filter /FlateDecode >> stream xڕ= @F?X&G\@7,b),J--x4RuUP;U{kfr)7r˘6dLe>Z2'xݯHw=Iys4π @Zz uApFxrt87ԮzPBsA9A!}Y7%U h;yI_$i(+.<{~ANz[g endstream endobj 1682 0 obj << /Length 207 /Filter /FlateDecode >> stream xڕ= @F`&G\@7(hSZYZZ(r!e & Nx,;Ǿ. dp9iZ˜Tz 5YN%egKIP)0la0* @ ܀ 5vPJ)TOeag~,&$bak5i$M%Sb&Af b) endstream endobj 1683 0 obj << /Length 98 /Filter /FlateDecode >> stream x3633R0P0T04S0T02QH1*22 (X@$s<̹=,=}JJS ]  b<]r 80 endstream endobj 1684 0 obj << /Length 183 /Filter /FlateDecode >> stream x̱ 0_:n#رP+AAA9}>JCAg/q9Ә#Nli b:v9r='KR *|܎ՌcRo0w{!aD*`$uX~~ d-B;jd/~b:r靰~ēi?Bu endstream endobj 1685 0 obj << /Length 266 /Filter /FlateDecode >> stream x}бN0a["ݒG'j JȀ@AG2z1 pRϗ׭*깄WpW<`[~P߂o ݕ*Ac=;X)8̥];N и>om n]h} &$$NEȀ܃6JJYK&0xx\G Tzq A9x`I5 dK'h>,(lkn> endstream endobj 1686 0 obj << /Length 279 /Filter /FlateDecode >> stream xڵJ@"0M^@ȼrpp` A+J--+Gˣoˍ;š~;3~36|\`sO{˧5k6s*Le}oT.o/r^1LZy XVh+"S!ٗq(DKv,5e";ܥ2 u:L& lt(y;&.5&MC }-飏.uCh\1 9Ch]YLcz endstream endobj 1687 0 obj << /Length 221 /Filter /FlateDecode >> stream x=0o|': &2`A3x&)%/|0a#qc)rx48wkgf 3`iPb.i)K|E4Zo '^QZp6*/?aT|bUYeTݍ'e[x? endstream endobj 1688 0 obj << /Length 198 /Filter /FlateDecode >> stream x}ѽ 0['bp+ vtr'utPQ|xm.Id)LqDƨ*:mv`wd*dN]H^$r-qCKPx "oS%zgs6QTֽ1(#ǘYIY{sop oCGqjc1[¬-GǏ endstream endobj 1689 0 obj << /Length 169 /Filter /FlateDecode >> stream x3332W0P0b3C3#CB.S3 I$r9yr+q{E=}JJS ]  b<]C> stream x3гP0P0as3#CB.c1s<=\ %E\N \. ц \. `0J@ l!3x< endstream endobj 1691 0 obj << /Length 269 /Filter /FlateDecode >> stream xڅҿJP2\8Kޠ9O`"Z B:H(t2|lF\v(^j $| w&';?!pS,z(KyqAɌsRR\ %)cwW82b}bܷG+q cǕW?61粅ϣl:^ÑIw(v6 ň kUňhFL>#lk|U9W,I]+~:|nV:hmtV%}fo endstream endobj 1692 0 obj << /Length 268 /Filter /FlateDecode >> stream xe1J@R^lN&2` A+ RK EA',{[n!7//";0{3a^h]e;hmnkeҵ S9eߟ;cدUp5+HD]Ě45H-X[*^aTEB(QTl!GȐPVTPL@1 fHZ!iRTHѰUI+8aiRTxP Cn *Ci(v2h> G o endstream endobj 1693 0 obj << /Length 269 /Filter /FlateDecode >> stream xڽ=NP e%G/^4e H0u@sr%GȘ!4AEy{~ ͨT\soX)kyzeaKí1TwayÚsZ3`]|#HR zMju3hX"Ps؊ɻWRM!s 3U\S}? ?0{[AkwMLQ%4N2d , [qmpS~ endstream endobj 1694 0 obj << /Length 169 /Filter /FlateDecode >> stream x37г4V0Pa3S3#CB.3C I$r9yr+r{E=}JJS. @-\. A@ pLCih2v4v텹>(q0}Bj. MՓ+ _re endstream endobj 1695 0 obj << /Length 247 /Filter /FlateDecode >> stream xڭ=0pWHHd08Fg{4B1¢ 䗖*D/0."CtpDOw8蚑F |쁏cOpad*o)ӍRwOa-z;PIlĮ:$~5LX endstream endobj 1696 0 obj << /Length 273 /Filter /FlateDecode >> stream x]бN0 `W*e#$/B{7F:H01 &`d7!1CUc\u"'N?v;[o/Kcmqy~l}e[+yCAC(Hs}!?Xf KD5`\Z!G`HYs,wɇc*aQ3G7B݄NzL"Ѩ !qRUhq!3. )3LAJF"*{{ 4 endstream endobj 1697 0 obj << /Length 151 /Filter /FlateDecode >> stream x3732V0P0b3 3CCB.3 HrW03r{*r;8+. ц \. NC=7h? Of5FW@hB-Gf 4-8i.WO@.ڬ endstream endobj 1698 0 obj << /Length 236 /Filter /FlateDecode >> stream xұj`{|!&S 5P@2u(ڌ5(>zw\ڽ>X,gR Z#3쩮 9g9EWuD?Q׌7Jb;@\.PܾeX֑sD +D ,{L܋z* k箣z$g1,3AɨQhTU$?Jp[ endstream endobj 1699 0 obj << /Length 226 /Filter /FlateDecode >> stream xmϽN0-y P'4d-`b@'+Q"`8;UO}ȳf]qShypw-Q7פ=do4M%dWr~0$HX `~@} I VV&$}R˴`\Se^BM#3]Gd>r˽^R|KKJ,uO?} endstream endobj 1700 0 obj << /Length 205 /Filter /FlateDecode >> stream xڽѱ 0 [ж( vtr'utPtn-Gء/$fB/r<S@CFC< hhovGS$C\F?]|=/Մ6fiB"OV]<3hT0))E7]DK2)~BGk>K3sjfUف( ](7p 9@ endstream endobj 1701 0 obj << /Length 207 /Filter /FlateDecode >> stream xڝα@f`~`w2 ),Bqi|B)}wxwn9z#ιWe;<ke{YEnŘBcrՒϧ==9{3Pw2u i,ڨdW2aCvڑ4C9e F.IiLw}U*[e? endstream endobj 1702 0 obj << /Length 211 /Filter /FlateDecode >> stream xڽ1 0H[z h vIMJob҈.u^H贗bU5&)8V\c2+d9+ !x>]g1ruk޳|[h#FWLrH"yDw3+šVDu30/-Oh=ؖ,ҾsRUܯ!QH%iKx. endstream endobj 1703 0 obj << /Length 208 /Filter /FlateDecode >> stream xm1j@/T s{h!"eS0)l MGT!4[;]f{gN8Yα{ϔv>˦o**v ٕ^^gEX/8%[6䝪H N@ F>J4^{!g#Ѕwo9&K Ck`DZ8eEotWq endstream endobj 1704 0 obj << /Length 160 /Filter /FlateDecode >> stream x3637Q0P0b3CB.c3 I$r9yr+q{E=}JJS ]  b<]000g``? ?0PF?%7 @HJ:AQt#I4Փ+ EE endstream endobj 1705 0 obj << /Length 261 /Filter /FlateDecode >> stream xڍнJ@9Rlo h^j<VbvBhy[nvx)~0Et 7Ϧ ??mgn7@%=z{uƈw|빹3ݎ$Dr+YȜ3)D!{a٥sΧk%P2=PtQteRPGu*&أߦ2o?}أƀnrQ-.j,Iz Syg']T endstream endobj 1706 0 obj << /Length 159 /Filter /FlateDecode >> stream x353W0P0bS33cCB.SC I$r9yr+r{E=}JJS. @-\. @?B1ӟQ7))9@0RPl'W u endstream endobj 1707 0 obj << /Length 129 /Filter /FlateDecode >> stream x3г0S0P0b#33CB.#C I$r9yr+r{E=}JJS. @-\. ?0c  R@@eH?3-?Փ+ !;X endstream endobj 1708 0 obj << /Length 106 /Filter /FlateDecode >> stream x3г0S0P0b#s3cCB.## I$r9yr+q{E=}JJS ]  b<]3GB7qzrr] endstream endobj 1709 0 obj << /Length 191 /Filter /FlateDecode >> stream x= P ,tvtr'utPG{G*:=GA I/ {n&ʻIyy"> 'Oܖb*i`67dJb$%]S`}F] RqjKOmVulr/=jҏ )0JRw h"o9, endstream endobj 1710 0 obj << /Length 153 /Filter /FlateDecode >> stream x353W0P0bS3CCB.SC I$r9yr+r{E=}JJS|hX.O ! fHH1?``gRB}S0RPl'W  endstream endobj 1711 0 obj << /Length 195 /Filter /FlateDecode >> stream xڝ0KHnR) bb::htGQxFymٌ3SL0ŹB^Etb: J:a,w+T +<*LN`*31QBWDM4D7dGeYX/ugw7rvNw->=-n'N|Ɛ6; endstream endobj 1712 0 obj << /Length 203 /Filter /FlateDecode >> stream xڵ1 @ [ h` A+ RK Er28ΚbՃ?,;M܋)>u-iDfTvGLR d4s1Lt9_& I:`\AQȼ&s ׏]޴[e endstream endobj 1713 0 obj << /Length 154 /Filter /FlateDecode >> stream x3135Q0P0bCJ1*26" \.'O.pcs.}(BIQi*Sm`?{`WaH s`` t$ApzrrX] endstream endobj 1714 0 obj << /Length 223 /Filter /FlateDecode >> stream x=ϱJ1` ̼f n!he!Vwvr#lE8A dHlϯ/g+B԰zO";J~p5?wܾPf f(pCU|KNC;~$&ԉhDڞmJFm=ZR*'28H3#: td{w"$#۞n g endstream endobj 1715 0 obj << /Length 154 /Filter /FlateDecode >> stream x313T0P0R5T06Q0PH1*26 (ZBds< =\ %E\N @QhX.O ̏呰=CF fbGŒP9*b9B A@=:б \\\1j endstream endobj 1716 0 obj << /Length 159 /Filter /FlateDecode >> stream x10 aW |:V*E"L @07h!8gvbPPr{ cɽ<9xD{=p٭$xv3dvq.eϮZL5l8BJd:R%?08);'h:ʀ~fzؚ&j &i%?9~ endstream endobj 1717 0 obj << /Length 218 /Filter /FlateDecode >> stream xmͱJA`7OX1WZYU2ABN|Wnn l! S_U\nsuɫ^)9L}z,74o>qS+߶k.Yc^]G!`<2%sJ@!Ꮙ2ShRxV&GL#>|G@#"@&{ @ωCdw" 1E{rb,mK Sc} endstream endobj 1718 0 obj << /Length 267 /Filter /FlateDecode >> stream xmϱJ@ [!op$zL!he!WBro,X\2őuv6?˂r:bAsz*˜)W fT=f-}$2!jBn܉tZBۥy*ҳȸVA듫D"S *^7x> stream xM1 @E'X ),J--B4(ѷ{RO_OR/0FC Xo2 t>5 45k 4@ CY 2͊$V/"ӏҀLp5oFn` endstream endobj 1221 0 obj << /Type /Font /Subtype /Type3 /Name /F58 /FontMatrix [0.011 0 0 0.011 0 0] /FontBBox [ 1 -22 95 68 ] /Resources << /ProcSet [ /PDF /ImageB ] >> /FirstChar 28 /LastChar 122 /Widths 1720 0 R /Encoding 1721 0 R /CharProcs 1722 0 R >> endobj 1720 0 obj [57.71 0 0 0 0 0 0 0 0 0 0 0 40.39 40.39 0 0 0 34.62 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 78.39 0 75 79.58 68.16 65.27 0 0 38.8 0 0 0 98.47 81.17 78 70.93 0 77.57 57.7 72.23 0 0 0 0 78.39 0 0 0 0 0 0 0 50.49 57.7 46.16 57.7 47.48 31.74 51.93 57.7 28.86 0 0 28.86 86.54 57.7 51.93 57.7 0 42.54 40.97 40.39 57.7 54.81 0 0 54.81 46.16 ] endobj 1721 0 obj << /Type /Encoding /Differences [28/a28 29/.notdef 40/a40/a41 42/.notdef 45/a45 46/.notdef 65/a65 66/.notdef 67/a67/a68/a69/a70 71/.notdef 73/a73 74/.notdef 77/a77/a78/a79/a80 81/.notdef 82/a82/a83/a84 85/.notdef 89/a89 90/.notdef 97/a97/a98/a99/a100/a101/a102/a103/a104/a105 106/.notdef 108/a108/a109/a110/a111/a112 113/.notdef 114/a114/a115/a116/a117/a118 119/.notdef 121/a121/a122] >> endobj 1722 0 obj << /a28 1684 0 R /a40 1681 0 R /a41 1682 0 R /a45 1683 0 R /a65 1685 0 R /a67 1686 0 R /a68 1687 0 R /a69 1688 0 R /a70 1689 0 R /a73 1690 0 R /a77 1691 0 R /a78 1692 0 R /a79 1693 0 R /a80 1694 0 R /a82 1695 0 R /a83 1696 0 R /a84 1697 0 R /a89 1698 0 R /a97 1699 0 R /a98 1700 0 R /a99 1701 0 R /a100 1702 0 R /a101 1703 0 R /a102 1704 0 R /a103 1705 0 R /a104 1706 0 R /a105 1707 0 R /a108 1708 0 R /a109 1709 0 R /a110 1710 0 R /a111 1711 0 R /a112 1712 0 R /a114 1713 0 R /a115 1714 0 R /a116 1715 0 R /a117 1716 0 R /a118 1717 0 R /a121 1718 0 R /a122 1719 0 R >> endobj 1723 0 obj [602.5] endobj 1724 0 obj << /Length 157 /Filter /FlateDecode >> stream x31ӳP0P0UеP01R03VH1*26 (Bds<͸=\ %E\N @BA,B?Q"A=h`;$@F0A8&TT#`xxrK/ endstream endobj 1725 0 obj << /Length 180 /Filter /FlateDecode >> stream xڍN; @n!swCM*!Fp A+ RK E;!/^`%mȸ 0Ј2 1> stream x31ӳP0P0@P!Ő H(`\.'O.pU()*Mw pV]zb<]\= endstream endobj 1727 0 obj << /Length 162 /Filter /FlateDecode >> stream x31ӳP0P0UеP01R03VH1*26 (Bds<͸=\ %E\N @BA,<b@N ?8$D D`#2f2X3Iq,63 *@'W yK/ endstream endobj 1728 0 obj << /Length 104 /Filter /FlateDecode >> stream x31ӳP0P0@dbUeh䃹`\.'O.pCC.}0BIQi*SPE!'EA0XA0Փ+ 9-I endstream endobj 1729 0 obj << /Length 118 /Filter /FlateDecode >> stream x31ӳP0P04P0"sSsCB.#39T*9ɓK?\ȌK(ΥPRTʥ`ȥm``P !\`߀ Apzrr]7 endstream endobj 1730 0 obj << /Length 172 /Filter /FlateDecode >> stream x31ӳP0P0bS3CB.rAɹ\N\ &\@Q.}O_T.}gC.}hCX.O&4Ŀ,`ꀐh2B0 0`@?D0pzrrV endstream endobj 1731 0 obj << /Length 272 /Filter /FlateDecode >> stream x}1N0ЉRDr#x.٠,, E"T ()@Сr5|BF*\[L}^u#ԓ+ ^曻GnTyusĪl.ASFU͆cۤ0k?Fvh;!uif B "Qc?1X})bԑvI nG/ADk"vAd0ξ 6ae+ ؐmⱹ\5RgR? J endstream endobj 1732 0 obj << /Length 141 /Filter /FlateDecode >> stream x31ӳP0P0bS3CB.rAɹ\N\ &\@Q.}O_T.}gC.}hCX.O$3``'Lȁ|DAjD  \\\, endstream endobj 1733 0 obj << /Length 114 /Filter /FlateDecode >> stream x31ӳP0P0bSS3CB.1s<L=\ %E\N \. ц \. p,~BĄ'W NP endstream endobj 1734 0 obj << /Length 201 /Filter /FlateDecode >> stream xڭ1 @4 \kP1),J--!9D,,T]S[̃3nQ*9zK5.sWj9!!qSdaV o,cP$nPPBz@Q(>Zll/5.K=&Mإ(o9)[-_m0v`fs8 endstream endobj 1735 0 obj << /Length 199 /Filter /FlateDecode >> stream xe1 0-wӖZtP*AAAQPPRo7iqpT I( 8{~B&6}\9Ol[L,7@g@GEq;>:@8w^@8@X&as!eV^zH4 6Q25> stream x͐=@XL #V &naRK (҂.C l}/N竌BJh&)^PF ] 厹Fq(Eu1 }C$QtQZۂgmJ9Հe 7Fд?oaF k ,|_F&h endstream endobj 1737 0 obj << /Length 220 /Filter /FlateDecode >> stream xu=N@ _b%79 H" * D[n&"ymafYy.\O:/wa\gVVOK{Ǵý~~|m]=(k}fϋ kEm&fhF hrá +'2ʉ3q4|PY؁0e齳s5\@e'XreSU4Q~MQd endstream endobj 1738 0 obj << /Length 206 /Filter /FlateDecode >> stream xڥϽ 0+->Z+S*AAAѹ}>b$*.bBz:ԥVDJQܣmT;fiTTf3:; :Yc6\;lhkb⍹/N-Z6*p|ZX?4>usn tn N2\KKv endstream endobj 1739 0 obj << /Length 205 /Filter /FlateDecode >> stream xڍn1 ]1%o )$n@S ZYG!i _ϲ=gzp;:٨T6{hh.DmyءQvF0`80cf̱b9)zA}T$"'S|_Q((M I +TPGey?4dѸYz1_ S endstream endobj 1740 0 obj << /Length 220 /Filter /FlateDecode >> stream xڝ; @ )isJE"b=A aS~] endstream endobj 1741 0 obj << /Length 216 /Filter /FlateDecode >> stream xu1N0E*ir ,-D $(VT@Iv(>–)VAaYO??V=ϝz`U6]oX?ݕvⷺ}qE XXͨ̎p[P0LhB M 4ESDiDf( DETHIc %)>/~Œ\r/_})oG endstream endobj 1742 0 obj << /Length 164 /Filter /FlateDecode >> stream x31ӳP0P0bSsCB.c3 I$r9yr+q{E=}JJS ]  b<]300? C=`cf ?F%5Ƅ@.N%\=CSt endstream endobj 1743 0 obj << /Length 275 /Filter /FlateDecode >> stream xڅ=N@ M_(E"T+*AD \%7!H9Ec{BHLid=RI'tT%=VjIM}h=<|ŕԱh UXiSQy :!1{.g t<A9Nt¿ɽ`n [Y'(3@ ~sPoi5E,b6y0ɬ1$V ٺ[Lz #h&;ij$^MR} ^x?m endstream endobj 1744 0 obj << /Length 165 /Filter /FlateDecode >> stream xɱ @ : Y k 7:9utPt>ZpcҘ(@>?1t>C1I0IF*x܂ڡA ʮv@F G` t>'C/fH= b賚'b6l Q"Di endstream endobj 1745 0 obj << /Length 137 /Filter /FlateDecode >> stream x31ӳP0P0bCSsCB.cc I$r9yr+s{E=}JJS ]  b<](B` D00 aDHpzrrȧYA endstream endobj 1746 0 obj << /Length 168 /Filter /FlateDecode >> stream x1@!&p,`EVJ--4ͣ(-!5W? 9ER?֔$4hqF=`iP(QͤGet>]ń4֚ | f!N^ :^]寸3 lnO(N . k7 endstream endobj 1747 0 obj << /Length 217 /Filter /FlateDecode >> stream xڭνn0pH' Q" vP+ċekdUGk?>48^iƏ%Ii?1B4,Ⱦr'd Wwc'/kL8TEk%t:u=|?Q ;DN d~U7 S[v0ؼ?bjv? k1N\*7V*=4#S endstream endobj 1748 0 obj << /Length 123 /Filter /FlateDecode >> stream x31ӳP0P0b#S3CB.c3 I$r9yr+q{E=}JJS ]  b<]``? ×0? 'W g endstream endobj 1749 0 obj << /Length 161 /Filter /FlateDecode >> stream x31ӳP0C CB.sD"9ɓK?\ĜK(ʥPRTʥ`ȥm`C}?  Yo`*?!*9=g!@d\= endstream endobj 1750 0 obj << /Length 159 /Filter /FlateDecode >> stream x1 @бa1[ZYZZ(ZoG 2΢]> stream xڍ1@E #0eV$&ZY+h+{4(- 㲘ڼOϛ$ͦ񄇚1'O6MvV6&U~{I7 ֤rkT dR" "/x"o"x Aā, Ң~~5oU9qNȩ9IR 3,hK` endstream endobj 1752 0 obj << /Length 221 /Filter /FlateDecode >> stream xڭбn0bt @Y"QPNt@hycs U.ɺϿm˧ > stream xڵ1 A i832VºSZYZZ(ZXYz#llXZO7荆d/9C;GtVibs0W,lQ9O=l1!洖}N)!0Z2-ygg"(.0P5tŷAUɲ+Y0\%-nYW endstream endobj 1754 0 obj << /Length 218 /Filter /FlateDecode >> stream xM1J`b`w.~7hXW0VbZ * vnUra!,ǔK-tgQ ->Gy劲p3%WtpK-Ϗ kxzX 33䎅rCF40@:b #LɂY.dČ 曶AȺ lB{,Zxώ`1K{+orSN~o' endstream endobj 1755 0 obj << /Length 160 /Filter /FlateDecode >> stream x31ӳP0P0R5T01P05PH1*26 \.'O.pcs.}0BIQi*Sm` $?` #$`'0   Sd.WO@.] endstream endobj 1756 0 obj << /Length 159 /Filter /FlateDecode >> stream x31ӳP0P0R5T01U0TH1*21 (@es<L=\ %E\N \. ц \. `,dF }H<00g?`G"?\=kqt endstream endobj 1757 0 obj << /Length 195 /Filter /FlateDecode >> stream xuν @ > stream xmν 0C(vAAAѵͣ7Q|AwݤGr6&آt&=>'|z zzBQvi z0b zoU YUX)է-ؽFF'{DžyVJtlH!r&u]Ŋ;7RCSQ񋦠iwH>ʳh endstream endobj 1759 0 obj << /Length 218 /Filter /FlateDecode >> stream xڥ1n@E?@#\ ^ c)ʅ*q"QQ8%Ŋ2[$r~y.9R3.#OcE_/T_ܙt_?g~)O)'o6`Pv*;k . , UPC< èzDNe{Υ]ɷ~+| 2%E_Iqhҁ x endstream endobj 1760 0 obj << /Length 143 /Filter /FlateDecode >> stream x31ӳP0PbSsCB.crAɹ\N\ \@Q.}O_T.}gC.}hCX.O@l``z 灸C??P szrrRZ endstream endobj 1761 0 obj << /Length 217 /Filter /FlateDecode >> stream xڭα@4;/@NYYZZ(ښWG#Lq:q5_1xD1 P)> stream xu=N@"4>`m Z) HPQ *HIh{=KV)yl/[.᳊Rsut_iۑ%e-o﮸"NJ'v\8I@/#2DR9LKp)Lz OnPY]D 5ň>Lr>AʍpgWi9ԫo0ZTj~]wtO endstream endobj 1165 0 obj << /Type /Font /Subtype /Type3 /Name /F54 /FontMatrix [0.011 0 0 0.011 0 0] /FontBBox [ 0 -22 48 63 ] /Resources << /ProcSet [ /PDF /ImageB ] >> /FirstChar 34 /LastChar 120 /Widths 1763 0 R /Encoding 1764 0 R /CharProcs 1765 0 R >> endobj 1763 0 obj [46.98 46.98 0 0 46.98 0 0 0 46.98 0 0 0 46.98 46.98 46.98 46.98 0 0 0 46.98 0 0 46.98 0 46.98 0 0 0 0 0 0 0 0 0 0 0 46.98 0 46.98 0 0 0 0 46.98 46.98 46.98 0 0 0 0 0 0 0 0 0 0 0 0 46.98 0 0 0 0 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 46.98 0 46.98 46.98 46.98 46.98 0 46.98 46.98 ] endobj 1764 0 obj << /Type /Encoding /Differences [34/a34/a35 36/.notdef 38/a38 39/.notdef 42/a42 43/.notdef 46/a46/a47/a48/a49 50/.notdef 53/a53 54/.notdef 56/a56 57/.notdef 58/a58 59/.notdef 70/a70 71/.notdef 72/a72 73/.notdef 77/a77/a78/a79 80/.notdef 92/a92 93/.notdef 97/a97/a98/a99/a100/a101/a102/a103/a104/a105/a106/a107/a108/a109/a110/a111/a112 113/.notdef 114/a114/a115/a116/a117 118/.notdef 119/a119/a120] >> endobj 1765 0 obj << /a34 1729 0 R /a35 1730 0 R /a38 1731 0 R /a42 1725 0 R /a46 1726 0 R /a47 1727 0 R /a48 1759 0 R /a49 1760 0 R /a53 1761 0 R /a56 1762 0 R /a58 1728 0 R /a70 1732 0 R /a72 1733 0 R /a77 1734 0 R /a78 1735 0 R /a79 1736 0 R /a92 1724 0 R /a97 1737 0 R /a98 1738 0 R /a99 1739 0 R /a100 1740 0 R /a101 1741 0 R /a102 1742 0 R /a103 1743 0 R /a104 1744 0 R /a105 1745 0 R /a106 1746 0 R /a107 1747 0 R /a108 1748 0 R /a109 1749 0 R /a110 1750 0 R /a111 1751 0 R /a112 1752 0 R /a114 1753 0 R /a115 1754 0 R /a116 1755 0 R /a117 1756 0 R /a119 1757 0 R /a120 1758 0 R >> endobj 1766 0 obj [1150] endobj 1767 0 obj << /Length 84 /Filter /FlateDecode >> stream x3435V0P0bCc bU@tr.'~U()*Mw pV0wQ6T0tQ\\\? endstream endobj 1768 0 obj << /Length 140 /Filter /FlateDecode >> stream xڭM AQ#Edl`p6x)wH) bnib)XSq 9/_(utTS~ÙU{E4qqV39Z['c!0&.>{/' ]NS5?M!? endstream endobj 1769 0 obj << /Length 93 /Filter /FlateDecode >> stream x3435V0P0bCc#CCB.1s≮=\ %E\N @BA,B `Փ+  endstream endobj 1770 0 obj << /Length 137 /Filter /FlateDecode >> stream x3232T0P0V5T02U02VH1* (@ds< =\ %E\N @QhX.Oz|gcaF5  ?ac0gH`?C'W 8( endstream endobj 1771 0 obj << /Length 158 /Filter /FlateDecode >> stream x3633W0P0V5T06R06UH1*2  2ɹ\N\ F\@a.}O_T.}gC.}hCX.O~P,g`?ȳgjPu v@} `?'W +U endstream endobj 1772 0 obj << /Length 143 /Filter /FlateDecode >> stream x3232T0P0V5T02U02VH1* (@ds< =\ %E\N @QhX.O? 3>c`*~?Հ> stream x334Q0P0a#c3CB.CK I$r9yr+Zr{E=}JJS ]  b<]0||70BPr . endstream endobj 1774 0 obj << /Length 184 /Filter /FlateDecode >> stream xe1 @, d.$ADSZYZ * VkŤϊ犣iM no\yW꯷ @O@@ [ѲgglDKr QC K Z7 endstream endobj 1775 0 obj << /Length 107 /Filter /FlateDecode >> stream x3435V0PaCScSCB.CC I$r9yr+r{E=}JJS. @-\. < PÀ <?Փ+ {  endstream endobj 1776 0 obj << /Length 123 /Filter /FlateDecode >> stream x3Գ0T0P0b ##CB. I$r9yr+p{E=}JJS ]ry(`_vv 17!\=v+} endstream endobj 1777 0 obj << /Length 114 /Filter /FlateDecode >> stream x3633W0P0a###CB.# I$r9yr+Yp{E=}JJS ]  b<]?0A? @.WO@.w" endstream endobj 1778 0 obj << /Length 138 /Filter /FlateDecode >> stream x3631Q0P0V5T0P02VH1*2 ()Lr.'~8PKLz*r;8+r(D*ry(010?C U0yLacg?'W Y( endstream endobj 1779 0 obj << /Length 116 /Filter /FlateDecode >> stream x32ֳP0P0b#c##CB.CK I$r9yr+Zr{E=}JJS ]  b<]W@~ j<@\= endstream endobj 1780 0 obj << /Length 157 /Filter /FlateDecode >> stream x3236T0P0V5T02R02VH1*2 (@ds< -=\ %E\N \. @b<]?4oo(`nxD C 30708|`T? ?\=0 endstream endobj 1781 0 obj << /Length 131 /Filter /FlateDecode >> stream x32ֳP0P0R5T02T06TH1*2 (Ads< -=\ %E\N \. ц \. p F``qh`c 5 \\\, endstream endobj 1782 0 obj << /Length 124 /Filter /FlateDecode >> stream x3633W0P0V5T06R02RH1*2 (Cds<,=\ %E\N \. ц \. Pɂ``~3pzrrY7 endstream endobj 1783 0 obj << /Length 138 /Filter /FlateDecode >> stream x3631Q0P0V5T0P06VH1*2 M 2ɹ\N\ F&\@a.}O_T.}gC.}hCX.O 7>g Pa`D rpAQ\`1h@@ÁVpzrr=1 endstream endobj 1784 0 obj << /Length 114 /Filter /FlateDecode >> stream x3631Q0P0b#SccCB.C I$r9yr+Zp{E=}JJS ]  b<]00>``O0ZՓ+ V4q endstream endobj 1785 0 obj << /Length 170 /Filter /FlateDecode >> stream x-1 0t{wMtB`A'utP:֣3jox?> stream xUɽ 0@ wr,(}/\ B}>J!c&cP1rl-I4R'd P%= -ib2jE\HNc5>Ȃy-CRL &ЄC827e, 721 endstream endobj 1787 0 obj << /Length 177 /Filter /FlateDecode >> stream x5˽ 0S Ү4M V8PE?wK%tTc||*)Ťh()Ѥ$1l(V(f-(t>](ń$֒  |gPq_| :2ude{]& kSBhU/4p3 endstream endobj 1054 0 obj << /Type /Font /Subtype /Type3 /Name /F49 /FontMatrix [0.02007 0 0 0.02007 0 0] /FontBBox [ 2 -12 48 37 ] /Resources << /ProcSet [ /PDF /ImageB ] >> /FirstChar 46 /LastChar 117 /Widths 1788 0 R /Encoding 1789 0 R /CharProcs 1790 0 R >> endobj 1788 0 obj [17.53 30.44 30.44 30.44 0 30.44 0 30.44 0 0 30.44 0 17.53 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 27.21 33.67 27.21 19.14 30.44 0 17.53 0 0 0 49.81 33.67 30.44 0 0 23.98 24.31 23.98 33.67 ] endobj 1789 0 obj << /Type /Encoding /Differences [46/a46/a47/a48/a49 50/.notdef 51/a51 52/.notdef 53/a53 54/.notdef 56/a56 57/.notdef 58/a58 59/.notdef 99/a99/a100/a101/a102/a103 104/.notdef 105/a105 106/.notdef 109/a109/a110/a111 112/.notdef 114/a114/a115/a116/a117] >> endobj 1790 0 obj << /a46 1767 0 R /a47 1768 0 R /a48 1783 0 R /a49 1784 0 R /a51 1785 0 R /a53 1786 0 R /a56 1787 0 R /a58 1769 0 R /a99 1770 0 R /a100 1771 0 R /a101 1772 0 R /a102 1773 0 R /a103 1774 0 R /a105 1775 0 R /a109 1776 0 R /a110 1777 0 R /a111 1778 0 R /a114 1779 0 R /a115 1780 0 R /a116 1781 0 R /a117 1782 0 R >> endobj 1791 0 obj << /Length 198 /Filter /FlateDecode >> stream xڝ 0Eoq(PhP+AAQPQO}i,:IΔܓh4 b֜ 9yЙBf%HYAj͡&5}RłہTr@*MzKE΀N@F x-%08W\g-21鐹WZu2sw[Z,巷EVE\'hbD[ endstream endobj 1792 0 obj << /Length 199 /Filter /FlateDecode >> stream xڝO @Bx @ػ@N( rԪEAEAKQt#ps}x4'cZ{RTYpH*}K@ ]6XV /a& +̌Sv47fUEc]~s|lm[sIaU].Gz]H||-scL endstream endobj 1793 0 obj << /Length 182 /Filter /FlateDecode >> stream x373T0P0W5R03V0PH1*25 (Bes<LM=\ %E\N \. ц \. `l 0~LC*$TH)~,&1Tۤ 0MQPAvaPA9$tPϼ ر<%,t endstream endobj 1794 0 obj << /Length 179 /Filter /FlateDecode >> stream x373T0P0W5R03V0PH1*25 (Bes<LM=\ %E\N \. ц \. BA(`k!3D*ilhn^y5̳A1yrȂP%P 6ȆAGPLbD1I6(&4l.WO@., endstream endobj 1795 0 obj << /Length 106 /Filter /FlateDecode >> stream x373T0P0W52T03V54WH1*25 (@s<LM=L=}JJS ]  b<]0 rzrrAP- endstream endobj 1796 0 obj << /Length 110 /Filter /FlateDecode >> stream x3234R0PbC 3SCB.K 'r9yr+Xr{=}JJS ]  b<]d7z1}@>'W '2L endstream endobj 1797 0 obj << /Length 133 /Filter /FlateDecode >> stream x=1 @E? x+p'c#8ET,mv |>ӜdYx@=w7@p>Å-_ޭp [?"4'ҠK6ɟI&L2LJ%w9 {|ɉ$_ endstream endobj 1798 0 obj << /Length 108 /Filter /FlateDecode >> stream x373T0P0U5W03U05VH1*2 (Aes<L-=\ %E\N \. ц \. l 0Fszrr/#4 endstream endobj 1799 0 obj << /Length 132 /Filter /FlateDecode >> stream x=ɱ 0  :t AG˛i "~1WOjŊ/|:=PM-_Ul[Q6<*]+a˃.&dR 1YG$ endstream endobj 1800 0 obj << /Length 95 /Filter /FlateDecode >> stream x3234R0PbC KCB.K &r9yr+Xr{O_T.}gC.}hCX.Oz 0X [x endstream endobj 1801 0 obj << /Length 161 /Filter /FlateDecode >> stream x313R0P0U52V01P0PH1*26(XBs<M=\ %E\N @BA,`F0 $;`| NȀ 8a" DH F2-CXHeh6ix-cr E- endstream endobj 1802 0 obj << /Length 102 /Filter /FlateDecode >> stream x3234R0PbC cKCB.K 'r9yr+Xr{=}JJS ]  b<]d7`= S/'W " endstream endobj 1803 0 obj << /Length 166 /Filter /FlateDecode >> stream xe1 @Y>"w7+1] Fp A+ j)D:{=JhT, 30FMk6řᓦ+P*NxҒq\ 5Iq&YnIV׬d+E⟮>|>c*xp.|G.BR hiiK/2" endstream endobj 1804 0 obj << /Length 94 /Filter /FlateDecode >> stream xMɻ@@E|wGb BT(H4]])8+61|cZGHO@BJJ7" endstream endobj 1805 0 obj << /Length 165 /Filter /FlateDecode >> stream x3634Q0Bc3#K3cCB.# 9D&9ɓK?\ȂK(̥PRTʥ`ȥm`s3 ;CP$(q`ld6'W 1 endstream endobj 1806 0 obj << /Length 177 /Filter /FlateDecode >> stream x3532U0P0b 3CB.3 I$r9yr+q{E=}JJS ]*c<]1@  d0%d= u  fh gdՓ+ =ŀ endstream endobj 1807 0 obj << /Length 181 /Filter /FlateDecode >> stream xŐ @ A xxUp( vtr'utPtmh} bIbH `sȑ 3xćd|/'Js61Η|܎Ռ#o򌁎ԥ>Ŵ)mPN8J@ Gּ y[ʽVRl"紦 endstream endobj 1808 0 obj << /Length 157 /Filter /FlateDecode >> stream x3532U0P0b 3CB.3 I$r9yr+q{E=}JJS ]*c<]3w@20$)"@d=e0PPHZBOhr 5 endstream endobj 1809 0 obj << /Length 208 /Filter /FlateDecode >> stream x; 1?XS,vNH#.+Pͣ,-ĉZhk琄onכMxю>XmP8gQ8*ɄtRB: (Y(U ᔣ 3Ԯ LʉXSȼ)p~\'ȡ -#{<{^0?Ը[O(ćJ endstream endobj 1810 0 obj << /Length 194 /Filter /FlateDecode >> stream xڍ= @R (?` A+ T,D=Z,SFbݭFK}SFMׁ% 9Xb13B1#nc=N1I_1/$()P/q<+&lK/Wj&y2cpt> stream xmнj0P6%hHSB;e(Bұd!C_[ǾBNWd,,~r3}iwo;w>ؾt;Ŵ3+mk`> stream xڕѽ @ G0opz'A+AAA>Zѡܙ^2T)dJh-Q6/.w\ehd--gd;z=74b4)bΘ|!T0' 4, L*0V}Uv~ݷ'CdxxJDv5vwԁ?/uҹ |.uB)&) endstream endobj 1813 0 obj << /Length 269 /Filter /FlateDecode >> stream xڵJ@!E`8yHE p` A+ T,ɣQ)-[ww"ؙe|SǛN )9?fJEnYJᙶ .rR6L'R۫3H6'@hXkcznL 0>[DPiG Ѩ zCt`:D_drfZjF=c?`.-l[/Ǎ;b?Oy=^F.Dd/Z{ FF\n\3w* g7tMVXv endstream endobj 1814 0 obj << /Length 211 /Filter /FlateDecode >> stream xڵ10p lAĉ1D'㤎z@j %Ŕp6# 8CWt4G΀)|4.1!Bv> stream x}ѱ 0ДCpuz_`5ŮDQPQpOS *Rr<.p c4£+(erQep$A/*l> stream x3гP0P0bSS3#CB.SC I$r9yr+r{E=}JJS. @-\. bH700C(`B1P(|Teb P`BPP9J>4 B&!^@\=6 endstream endobj 1817 0 obj << /Length 268 /Filter /FlateDecode >> stream xڵJ0) B_`V4* ɃxR(}=ɔai I:S:<&Iso+ +nZT+T|TKQm=b%0V́a͖A;Cz\;Pf3b6~^\`pfg GDؿAGCF_> stream x3337U0P0b3S3#CB.3C I$r9yr+r{E=}JJS. @-\. ? t 0 lPoՓ+ _* endstream endobj 1819 0 obj << /Length 106 /Filter /FlateDecode >> stream x3633V0Pc3#CB.#3 I$r9yr+q{E=}JJS ]  b<]?``o7drzrra endstream endobj 1820 0 obj << /Length 170 /Filter /FlateDecode >> stream x1 @БbVj(2n6)F#9fÄ4᭤̇1lT+VI9_b1aIJr&S2"/:wԍ_OS#hG1;XD级[e endstream endobj 1821 0 obj << /Length 266 /Filter /FlateDecode >> stream x];N0RDb}RneHJ$@P'b;NA(s#L`$ɏ؞ln]*[gv~ԅGԜ]1g큳-8ڛ\otdd<KKMKMa; .0. >>N w&`>koFc7$կHo8={jp?53j~ M7wנuI}Ri"ӡ|V ! endstream endobj 1822 0 obj << /Length 144 /Filter /FlateDecode >> stream x353P0P0bS#3#CB. HrW0r{*r;8+r(D*ry(2`o^$3^L 0H9$Lց d Brzrr3nX endstream endobj 1823 0 obj << /Length 252 /Filter /FlateDecode >> stream x}j1 . Wo;OZXB{ -= Jt(ڄ$btUd5"|D~8k '9s|)e(gg5JҺ1*/G)g*G=Cl-[VҚCZ 7=+q,A wTÀ&u4-U(qhK$)n;%<.<2!WxS endstream endobj 1824 0 obj << /Length 250 /Filter /FlateDecode >> stream x]ѱJ@ )O`y),DPN:NEn}$!Grq63ͦXYbl1c7ƞ?ж7#zm)~zw{ix7!pu\ĵ khì>RQ|jbJg1T9XN`1,*/rpnLXb95#OSZʜ> stream xڵn01D%8AMPH@fN S(y (96c-ٟ"3(҄lFV@$Chw:;4ˏhSbM7 -oʼ.+aWy!a paN8(e~NHb+[&|EGMl#K!e_<۾zzP<vOlgԬEWGWWO} endstream endobj 1826 0 obj << /Length 175 /Filter /FlateDecode >> stream x333T0P0bS33#CB.S# I$r9yr+q{E=}JJS ]  b<]J쁢 ??0BC0eB} B1PG@\ٹ+ ` (V9(P$ endstream endobj 1827 0 obj << /Length 330 /Filter /FlateDecode >> stream xڵAK@Yk>; !ST)#B@"$n;*c~33Gl&8Op~wzR FZ*dS __U{F\nhG9SVt6JӘ_q- 8;g4Nu bi endstream endobj 1828 0 obj << /Length 230 /Filter /FlateDecode >> stream xڝ @ azyZںfNSu *꬏#x ~iHwfC} /.~?A .Dh~f q+vX+%H cȇ\'izhIi|Ӵ&:/?ռw~R2}6rӿC991uΪ9ɿ66-M쩥]e'(,G%Vɕb0` Ox1 endstream endobj 1829 0 obj << /Length 266 /Filter /FlateDecode >> stream xeϽJ@HMګ̾rw y),J--Gˣ#݂ˍ39TWEn0 *L2~5,'itvck]pXgͥy}y{:ۚ[t 6vZ5'@O6a&~`QLɤ䀄hADDND(An%=٨X }d*;Ad|HףMH+>o ߄k endstream endobj 1830 0 obj << /Length 158 /Filter /FlateDecode >> stream x3332W0P0b3#J1*2" \.'O.pS .}(BIQi*S!BA,0`0?do `L3c ` }L3 D3@hQ'bDc&@ endstream endobj 1831 0 obj << /Length 207 /Filter /FlateDecode >> stream xJ@?Py &^!`B=PBcAE[|4cZ/9avgaϮffzR}\^ 3f/U#n>wX\o;qbLk]Γ4І~,O~=[yR+>ɟ:ᑸgF#bn8&kufY f0AjekQ~uI endstream endobj 1832 0 obj << /Length 262 /Filter /FlateDecode >> stream xmбJAYiSݻ ^!he!B@-s >=`y֙]T;3 etd3zJ 킇Y<:G}GvǨkx|FS2oȹ qĕ+yD>8c8c\4{`*n;5[F6UEJ8YHrg@s/>p뭃Xl7i$S>~w_Wiuqyؤom endstream endobj 1833 0 obj << /Length 321 /Filter /FlateDecode >> stream xuK0+a;h;{A'a,7V4Nz|H&">NN1b\D8!/2Ih2IY.S`e^ Wg`w2]5(kv?=k@@# sG0qТ崖8n֩vI벒<=~ULlab[3'qݧe*&!R3- -*C7. )E{sܥ ). %sc^ CaĚh_eӯ0H:}󦃬\4e~8qC㠡vg穼 endstream endobj 1834 0 obj << /Length 294 /Filter /FlateDecode >> stream x]AK0+^= O`, Ƀzh(=P|It'RVۥ~/Nي/OiTm[UEs?T֥*Y5["v?p=w,~F&rX Bv{[.*:ob}LƔ= ihO[ z<;=J> P/%jBE_R.T, yƞ 3 tiԃf endstream endobj 1835 0 obj << /Length 251 /Filter /FlateDecode >> stream x1K@-f݀,b?B_T|ÿ%t_ endstream endobj 1836 0 obj << /Length 213 /Filter /FlateDecode >> stream xmο@/, ShuqZZ(ښ<$y<–!q,䎁 1v<qƖ혭᭡ٌcfiNmFzƤw>;Ռ 9ξ(35 !+PLpW.Pe@"Qmڢ i"1Ŕ"?OVHnqLUOUo*D6i|UԴiMעL endstream endobj 1837 0 obj << /Length 210 /Filter /FlateDecode >> stream xڽн @ B>Bzm=(vtr'utPvIK: #=vDzAmHJ]t9UgnHbR2pĻ~E;G3=hNa1/kFˈ܉Slx`p:FlTveV`9zTbr^MRV R':q@&x endstream endobj 1838 0 obj << /Length 193 /Filter /FlateDecode >> stream xڝ1 @E00Mntft` A+ RK E;19%Gu`ak?r}YЁ2+bvM6{*+K,Ȥr>bCz+險1CD(p.ܐ lQ4C!i(]W!pE#k%7)%c\_p0T78> endstream endobj 1839 0 obj << /Length 210 /Filter /FlateDecode >> stream xڽ= @ )sĬSZYZZDo7hB\gwJ)|浂F3"$;ԎhbR0 9IbcɄE:ŐdH 5:Pi=uek=BЫjn_t+k-JffLWn噞\y U;3ygz? endstream endobj 1840 0 obj << /Length 204 /Filter /FlateDecode >> stream xuο 0/t(`_@轀:YAAAMj-#8viQp0?K|6隌Nc8Sje57 N-鉌IS>N[ِ҃ / '+*F PWR7HU8##;o\]>K-AZ//>L^T^('N"nhAUhwdZ#=d# r!I endstream endobj 1841 0 obj << /Length 143 /Filter /FlateDecode >> stream x3233V0P0bcc3CB.c1s< =\ %E\N @QhX.O ?00``?<3c:f 1%P}Pszrr_ endstream endobj 1842 0 obj << /Length 261 /Filter /FlateDecode >> stream xڕ=N0_4>B|ȏ宴,)@T@IF(' 9e kb (H/˛tG}wȣ]>n~ndKuETgK՟秗{V'fӍk^".ٷtD\0_f+`Gt~΀~ܡLcxc㠤2%Ii(ئ4rB8F+ OƬܫ>Q=9'|V)X,i/ mh endstream endobj 1843 0 obj << /Length 165 /Filter /FlateDecode >> stream x3532T0P0b 3cCB.S I$r9yr+r{E=}JJS ]ry(0`$;dt"H @҆ 3g`D\$3ؑr y endstream endobj 1844 0 obj << /Length 124 /Filter /FlateDecode >> stream x3234R0Pc#3CCB.CK I$r9yr+Zr{E=}JJS|hCX.O  P001aqzrrHT endstream endobj 1845 0 obj << /Length 150 /Filter /FlateDecode >> stream x3233V0P5Q5T02P03TH1*2 (Xs<=\ %E\N \. ц \.   P( ulj3cP\=v9E endstream endobj 1846 0 obj << /Length 213 /Filter /FlateDecode >> stream xڽJ@`_@> stream x3234R0Pcc3cCB.#rAɹ\N\ F\@Q.}O_T.}gC.}hCX.O a0\=W endstream endobj 1848 0 obj << /Length 186 /Filter /FlateDecode >> stream xб 0  Ej3:9::( NGˣ:4qqé8Hķ)tJRWI8^0(v$kgfAuFX lYhFAQJ*˂Yu*>P'sx'`‚ʷs3 endstream endobj 1849 0 obj << /Length 154 /Filter /FlateDecode >> stream x3532T0P0b CB.S I$r9yr+r{E=}JJS ]ry(0` iH~`~ ?3 !d; \\\ep endstream endobj 1850 0 obj << /Length 188 /Filter /FlateDecode >> stream xڍ1 ` _qVdV8h֣;5I䅼Dq><Y>X:SwN'Js2c2 K^nG2jƖL[H5pG %BxʃAxNӃX:>ŴI=JRh4 V\_螡yNkPM endstream endobj 1851 0 obj << /Length 208 /Filter /FlateDecode >> stream xڭ1 @YR &] F0X`er%GH!u6 Z+ٿȧ>u!)P)N}fQrIJr2xޡc PƴSkLbF{z`)3Apڀ\A4ikh+/;Ň/׊y.L[ov3_nBk/cC:՘M$;| endstream endobj 1852 0 obj << /Length 223 /Filter /FlateDecode >> stream xڭϱjAbaH`B*EҔ)H!GGGuγFlbv;x$s ۘ7 }Mes֟4ɼMdN&2~<:ELtjtDEX pPYuwoڽmOX6JCT:knGC_ 8=Pח4%o endstream endobj 1853 0 obj << /Length 145 /Filter /FlateDecode >> stream x3634S0P0bccCB.c4H$r9yr+p{E=}JJS ]  b<]?~x?̟0~g 0cH`3szrrM[ endstream endobj 1854 0 obj << /Length 203 /Filter /FlateDecode >> stream x-AjP?d70sBtB[ܙʷyŷqRq,Q^i4d6Wd4&S/y&3[ْYqgc$Ovw x 4tHB8tmԨuUupAD#r&iNBKZӚ.8W endstream endobj 1855 0 obj << /Length 151 /Filter /FlateDecode >> stream x3634S0P0R5T06P05SH1*22 \.'O.p#s.}0BIQi*S!BA,Vl+313C1#T8fq{v r wSM6 endstream endobj 1856 0 obj << /Length 160 /Filter /FlateDecode >> stream x3532T0P0R5T0P01PH1*21 (Bds<LL=\ %E\N @B4РX.O `G%00a`f$Н l0A?? $@?P'W rjy endstream endobj 1857 0 obj << /Length 193 /Filter /FlateDecode >> stream x]= @YB\@71JL!he!B@- 19%GHi|{ G.?'T>.o=(D"壜q2|ݣ-䡜К6N(]9' {6*};:fViucfU)1[m?6*q_D endstream endobj 1858 0 obj << /Length 248 /Filter /FlateDecode >> stream xmϱJP? Ĝ{j@`N"QPQpNP|d63|p?=.%ww =Qjx>礯85eM:{SNH:asCºXWU<&.*;d (Faы> stream xMαJA?lq0lk!< 8B*ERKHzh(ufL4/Y_Ttz%RKxMGnܓtu|9}ۼ> stream x]J@; x%'S~\#^/4Iq1w-}<9&{@ 7lz P@?[VqtPA8.=փdFDb+8w:+cw9<<#Oʬj\ԯR*ٕmm`giM?AP endstream endobj 1861 0 obj << /Length 199 /Filter /FlateDecode >> stream x5= 1oI!Ls5"Z-n!he!Vjih9e`i!0 #vܗ|Ltԇ&% {Ov!d%_/#j9osv;*g7  $Oy $m}RK ****IQ $ Q&2JuWk D$_h^Қ8.G endstream endobj 1862 0 obj << /Length 191 /Filter /FlateDecode >> stream xڽ1 @EL2͚DL!he!Vjih'(9B -)fsofyH0d@iNjő!5T>'.&Ien(@*/SC^^$N-8b,(p OA-iU۹*m_ ڰ^!c9- @m endstream endobj 1863 0 obj << /Length 126 /Filter /FlateDecode >> stream x313R0Pbc 3CCB.#K I$r9yr+Yr{E=}JJS|hCX.O @@\ <yP\=sU endstream endobj 1864 0 obj << /Length 242 /Filter /FlateDecode >> stream xuJ@% f$,ăSZYHV2u@J&llDmwjR_@> ; l?hٝv* ؄'!nE5i>p {Nhd42FJgaZtEjZ!'Ēh } lV~hp endstream endobj 1865 0 obj << /Length 246 /Filter /FlateDecode >> stream xuN@ ed!/kBR$2 щ1c<==B ULp?77K%5ZGo?nY'[,vxK톞U/m#yTLP%d'd`ofAِ'~VN\'(uˈn(Eu,_ڡgŨxqGc/VJs5M#1%-~nn endstream endobj 1866 0 obj << /Length 185 /Filter /FlateDecode >> stream xڕϱ @ BP:w> stream xڥбj@ @_ 4z|k:ŐPdc! (= t:IÄS~¹ӑB)fgW)NnxfOnk醪9 mvarU();'Q/$C 3!`.z7l(ki?n!a먠luAIu2θ ҫq42BT]E endstream endobj 1868 0 obj << /Length 249 /Filter /FlateDecode >> stream xuϱJ@?LᾀSZY mr| 3J duM/|HհXhS-7YwkH~Ͳݍ~}~JR>Z=x~]賑ix o@ʺ\ur'x; endstream endobj 1869 0 obj << /Length 202 /Filter /FlateDecode >> stream xڕ; @A  M QL!he!9ZGHB;RXW?#l hS+z*ߛņBQK'jF;LA0Ӫ]WCȋz&\e (t XLݷ!)&e~R27ukd1y ]msXp endstream endobj 1870 0 obj << /Length 277 /Filter /FlateDecode >> stream x]J@EoH$j),J-- ɧͧ']ͪ x}|)TrBf1^զUٽʮYVY{#/*^J<?v+'@-0#" |'İ+Y X9"1fm)ӎz+~x/ȇ3FY g,ڏ@'DV{:RRh4zQc;uD*` "Ah^ᰥKp[Vݩoqg endstream endobj 1871 0 obj << /Length 252 /Filter /FlateDecode >> stream xu1J@?f. ]@lbځuSZY,Vj)h+ Bn+oayTg+ιW?Be9 e\֔]6e?R>炲 o 0@:)vr"yĂILiNיvFoi􇐃 `%<)ơYto%SK u+P ˴N2(vGU*DF I2v: endstream endobj 922 0 obj << /Type /Font /Subtype /Type3 /Name /F48 /FontMatrix [0.011 0 0 0.011 0 0] /FontBBox [ -4 -23 91 68 ] /Resources << /ProcSet [ /PDF /ImageB ] >> /FirstChar 16 /LastChar 122 /Widths 1872 0 R /Encoding 1873 0 R /CharProcs 1874 0 R >> endobj 1872 0 obj [30.14 30.14 0 0 0 0 0 0 0 0 0 52.76 50.25 50.25 75.37 0 0 25.12 0 0 0 0 0 25.12 35.16 35.16 0 70.29 25.12 30.14 25.12 45.2 45.2 45.2 45.2 45.2 45.2 45.2 45.2 45.2 45.2 45.2 25.12 0 70.29 0 70.29 42.69 0 67.75 64 65.27 69.02 61.49 58.98 70.91 67.75 32.63 46.44 70.26 56.48 82.81 67.75 70.29 61.49 70.29 66.51 50.21 65.27 67.75 67.75 92.85 67.75 67.75 0 0 0 0 0 70.29 0 45.2 50.21 40.18 50.21 40.18 27.63 45.2 50.21 25.12 27.63 47.71 25.12 75.31 50.21 45.2 50.21 47.71 35.16 35.66 35.16 50.21 47.71 65.27 47.71 47.71 40.18 ] endobj 1873 0 obj << /Type /Encoding /Differences [16/a16/a17 18/.notdef 27/a27/a28/a29/a30 31/.notdef 33/a33 34/.notdef 39/a39/a40/a41 42/.notdef 43/a43/a44/a45/a46/a47/a48/a49/a50/a51/a52/a53/a54/a55/a56/a57/a58 59/.notdef 60/a60 61/.notdef 62/a62/a63 64/.notdef 65/a65/a66/a67/a68/a69/a70/a71/a72/a73/a74/a75/a76/a77/a78/a79/a80/a81/a82/a83/a84/a85/a86/a87/a88/a89 90/.notdef 95/a95 96/.notdef 97/a97/a98/a99/a100/a101/a102/a103/a104/a105/a106/a107/a108/a109/a110/a111/a112/a113/a114/a115/a116/a117/a118/a119/a120/a121/a122] >> endobj 1874 0 obj << /a16 1805 0 R /a17 1803 0 R /a27 1807 0 R /a28 1806 0 R /a29 1808 0 R /a30 1809 0 R /a33 1796 0 R /a39 1797 0 R /a40 1791 0 R /a41 1792 0 R /a43 1798 0 R /a44 1799 0 R /a45 1804 0 R /a46 1800 0 R /a47 1801 0 R /a48 1862 0 R /a49 1863 0 R /a50 1864 0 R /a51 1865 0 R /a52 1866 0 R /a53 1867 0 R /a54 1868 0 R /a55 1869 0 R /a56 1870 0 R /a57 1871 0 R /a58 1802 0 R /a60 1793 0 R /a62 1794 0 R /a63 1810 0 R /a65 1811 0 R /a66 1812 0 R /a67 1813 0 R /a68 1814 0 R /a69 1815 0 R /a70 1816 0 R /a71 1817 0 R /a72 1818 0 R /a73 1819 0 R /a74 1820 0 R /a75 1821 0 R /a76 1822 0 R /a77 1823 0 R /a78 1824 0 R /a79 1825 0 R /a80 1826 0 R /a81 1827 0 R /a82 1828 0 R /a83 1829 0 R /a84 1830 0 R /a85 1831 0 R /a86 1832 0 R /a87 1833 0 R /a88 1834 0 R /a89 1835 0 R /a95 1795 0 R /a97 1836 0 R /a98 1837 0 R /a99 1838 0 R /a100 1839 0 R /a101 1840 0 R /a102 1841 0 R /a103 1842 0 R /a104 1843 0 R /a105 1844 0 R /a106 1845 0 R /a107 1846 0 R /a108 1847 0 R /a109 1848 0 R /a110 1849 0 R /a111 1850 0 R /a112 1851 0 R /a113 1852 0 R /a114 1853 0 R /a115 1854 0 R /a116 1855 0 R /a117 1856 0 R /a118 1857 0 R /a119 1858 0 R /a120 1859 0 R /a121 1860 0 R /a122 1861 0 R >> endobj 1875 0 obj << /Length 99 /Filter /FlateDecode >> stream x313T0P04F )\\@$lIr p{IO_T.}g E!'EA0XAՓ+ ; endstream endobj 1876 0 obj << /Length 157 /Filter /FlateDecode >> stream x313T0P0U5W0T0PH1*26 (Bds<=\ %E\N \. ц \. @#HD؁:Q'@&> f0d82>3 df Dpzrr@: endstream endobj 1877 0 obj << /Length 107 /Filter /FlateDecode >> stream x313T0P04F f )\\@ IrW04 s{*r;8+E]zb<]:\={-= endstream endobj 1878 0 obj << /Length 103 /Filter /FlateDecode >> stream x313T0P0W04S06W02TH1*2 (B$s<,=L=}JJS ]  b<]0 szrr$~ endstream endobj 1879 0 obj << /Length 218 /Filter /FlateDecode >> stream xڝ1N@4QY AT (Ar 3AzWJ_kN|y9H/vI'Zun8-)\ؙBwoVWg)6r}Gݚ3J~ ZTMa.)- o̤/`tR27V֯ifhh`+-RN]dvg9 endstream endobj 1880 0 obj << /Length 183 /Filter /FlateDecode >> stream x313T0P0bCSCCB.c I$r9yr+[p{E=}JJS|hCX.OD|?b0 AD}&> f0H0b!On%rv?s?>  `szrrǁG endstream endobj 1881 0 obj << /Length 147 /Filter /FlateDecode >> stream x313T0P0b#SCCB.c HrW0r{*r;8+. ц \.    `|$lthvb)،6 Q .WO@.̌r endstream endobj 1882 0 obj << /Length 191 /Filter /FlateDecode >> stream xm= @ x Ղ?` A+ RK E[)S,;h%Xfh< }:ex\T:8^pVQ>EmqF;)C}FE$ sXBט^Hȃ@?|bezYETZ_q-`R!a~K<.Kj/\ endstream endobj 1883 0 obj << /Length 182 /Filter /FlateDecode >> stream xڍ1 @EIk9 n!he!Vjihh%GL2Φօ}g?ofǜlS>'t#k5?;2{Zd܆L]rBC\"iJzD=[5/jLAOQ~ߏ@B_Zh4J5Ϋ^RMuZ9uEJ endstream endobj 1884 0 obj << /Length 193 /Filter /FlateDecode >> stream xڕα@ .<} L &`qRG;[pqᾤ 5)+H+9s<^&|XLפ*L,r0S⺡MNMC $z11wx!"><Zi&N?>cH RaH'c ˁ:ѴmO, YK endstream endobj 1885 0 obj << /Length 201 /Filter /FlateDecode >> stream xmPE4K BBrmM>}}V́;ܹiԥS=T'u9&a+NFF⻥OK+ VZ[( f#2;܃J>PDCv@Z }•cC 7'* 4u.7mp b2rcZI_ endstream endobj 1886 0 obj << /Length 154 /Filter /FlateDecode >> stream x313T0P0asSCCB.c1s<=\ %E\N @BA,@Az H?*;&p4Aka[~ `1.WO@.^ endstream endobj 1887 0 obj << /Length 253 /Filter /FlateDecode >> stream x}J@#E`}!k.p` A+ RK E#U(y[,gǰzqꜟJz`;볟 Z.(wk~x|ws%{/xv4lnfxYDdItSn\#7@efd=`El6X4jB*`f}E_h0bj1SL̀,x>v*!*:MƢ:?-y%ۧF@-7> endstream endobj 1888 0 obj << /Length 161 /Filter /FlateDecode >> stream x313T0P0bcSCCB.1s<L =\ %E\N @B4Pe,B @d ?  B~oAd $?HzI8'W z endstream endobj 1889 0 obj << /Length 132 /Filter /FlateDecode >> stream x313T0P0bcKS#CB.cC I$r9yr+r{E=}JJS. @-\.  @x@@?C1;}pA|.WO@.O) endstream endobj 1890 0 obj << /Length 115 /Filter /FlateDecode >> stream x313T0P0b ebUel䃹 \.'O.pc.}(BIQi*Sm`Pz<7,{\W endstream endobj 1891 0 obj << /Length 171 /Filter /FlateDecode >> stream xڽ= @[&G\@7!Q1#X^,7[n8ȃW3r9Al&]'-\,cx܎` s0 n ==Cbq1 SeKvI'mr/)T8R`5zf endstream endobj 1892 0 obj << /Length 155 /Filter /FlateDecode >> stream x313T0P0bcc3CB.1s<L =\ %E\N @QhX.O$$PD2`$ȃ@H&?:7 q.WO@.ll endstream endobj 1893 0 obj << /Length 183 /Filter /FlateDecode >> stream x}=@XLvNBLH0XF[٣Q8ab^2}KJ)*%Kw4 +@@)juE]VQzB[_P :9o.A@9(dq%7@'a/=ߵG.^Tyh p A!\\[>P: endstream endobj 1894 0 obj << /Length 200 /Filter /FlateDecode >> stream xڥ= @g fI"SZYZZ(ښͣ[.(wS|7q4HRYs_8 LWCNv?$#(%p:lHj&5pGٌs V,S*7;(&A]t, -GT@8=F> $_ȥF<5ޯ endstream endobj 1895 0 obj << /Length 158 /Filter /FlateDecode >> stream xڭ1 @ПJuj!Fp A+ RKAEh9JAqc![̃I`4-ØԈmjw쎜{Vky\Y\/|9êe_Hx+5C8#$RC\B"xo<Iw endstream endobj 1896 0 obj << /Length 185 /Filter /FlateDecode >> stream xM1 @4!s7q5@T0XErr,,2ԎgDM&rv=pr^ًYMyaoY!RrGB7 }KD#"eZSW!("PB Ca}96A=> stream x313T0P0bc 3CB.cS I$r9yr+r{E=}JJS ]  b<] @AH2`h AA~[@ Lx:B endstream endobj 1898 0 obj << /Length 148 /Filter /FlateDecode >> stream x313T0P0bcc3CB.1s<L =\ %E\N @QhX.O` $0()D? d=H2cģd> endstream endobj 1899 0 obj << /Length 174 /Filter /FlateDecode >> stream x313T0P0bcc3CB.1s<L =\ %E\N @QhX.O `?aC00~ @2?Dv`N2~+ߎ #ȏߏ`` ?G#g``?A6 H@RՓ+ ɝm endstream endobj 1900 0 obj << /Length 203 /Filter /FlateDecode >> stream xڝ= @_L#8MLRL!he!Vjih'({!q-6߲`}t!'<8 91 ũ piNfqJf)c2ot=̜w{@^m W÷x: dTLdO_'X`*w]!WҢqz9KU" }}d endstream endobj 1901 0 obj << /Length 141 /Filter /FlateDecode >> stream x313T0Pac S#CB.# I$r9yr+Yp{E=}JJS ]  b<] X큸7001;j?0FJ endstream endobj 1902 0 obj << /Length 207 /Filter /FlateDecode >> stream xڥ= @4{t&)!BBB,xxqFE惝}ov)ZRGk;Sʱڬ)Nюe6aܠOi(Zb>$\Cǹ.5Tº)7 P \)'ߘ'-,e$9ґ i `AY ֚ G9-c endstream endobj 1903 0 obj << /Length 213 /Filter /FlateDecode >> stream x}O @`qM>!zI 0XɧSW؈p w3s3Y:'sÄ1P{~s8Ӵ$4'tcot=w {* (D`D:y#jAԠBQSQ]9h@9׆mƠ3/"-PIoәn ժ?|R3{6nR}Zn endstream endobj 733 0 obj << /Type /Font /Subtype /Type3 /Name /F47 /FontMatrix [0.01204 0 0 0.01204 0 0] /FontBBox [ -1 -19 45 58 ] /Resources << /ProcSet [ /PDF /ImageB ] >> /FirstChar 45 /LastChar 119 /Widths 1904 0 R /Encoding 1905 0 R /CharProcs 1906 0 R >> endobj 1904 0 obj [43.59 43.59 43.59 43.59 43.59 0 0 0 43.59 0 0 43.59 0 43.59 0 0 0 0 0 0 0 0 43.59 43.59 43.59 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 43.59 0 43.59 43.59 43.59 43.59 43.59 43.59 43.59 0 0 43.59 43.59 43.59 43.59 43.59 0 43.59 43.59 43.59 43.59 0 43.59 ] endobj 1905 0 obj << /Type /Encoding /Differences [45/a45/a46/a47/a48/a49 50/.notdef 53/a53 54/.notdef 56/a56 57/.notdef 58/a58 59/.notdef 67/a67/a68/a69 70/.notdef 97/a97 98/.notdef 99/a99/a100/a101/a102/a103/a104/a105 106/.notdef 108/a108/a109/a110/a111/a112 113/.notdef 114/a114/a115/a116/a117 118/.notdef 119/a119] >> endobj 1906 0 obj << /a45 1878 0 R /a46 1875 0 R /a47 1876 0 R /a48 1900 0 R /a49 1901 0 R /a53 1902 0 R /a56 1903 0 R /a58 1877 0 R /a67 1879 0 R /a68 1880 0 R /a69 1881 0 R /a97 1882 0 R /a99 1883 0 R /a100 1884 0 R /a101 1885 0 R /a102 1886 0 R /a103 1887 0 R /a104 1888 0 R /a105 1889 0 R /a108 1890 0 R /a109 1891 0 R /a110 1892 0 R /a111 1893 0 R /a112 1894 0 R /a114 1895 0 R /a115 1896 0 R /a116 1897 0 R /a117 1898 0 R /a119 1899 0 R >> endobj 1907 0 obj << /Length 210 /Filter /FlateDecode >> stream xڕ1PDXl 磈V&&ZY+h G(ˆAB,ٙ}P!#y8ф.fsULԖI%+]'R5w=%1.iFe:o[ xcmrD/+lQa^n%k\h[%~Ҭ5.NnwZb.HhC5~X endstream endobj 1908 0 obj << /Length 204 /Filter /FlateDecode >> stream xڕ1@EXL `EHaRK &vp4,- JBg7N @\e(D͡+QT쎜⇬Uz`.d㉻<U&);Q rDQMԱ@a1PıMmc ]y Z ~/:] {>tٴc_> stream x3532Q0P0P0T06U03TH1*24(As< ͸=\ %E\N \. ц \. ?ᰞ1aPo 10pzrr/k endstream endobj 1910 0 obj << /Length 121 /Filter /FlateDecode >> stream x3532Q0P0QT01W05RH1*21Eɹ\N\ &F\@Q.}O_T.}gC.}hCX.O9iAd%0w.WO@.9 endstream endobj 1911 0 obj << /Length 143 /Filter /FlateDecode >> stream x3532Q0P0P54Q06Q04TH1*24 (s< M=\ %E\N \. ц \. ?aC? ??PՓ+ .q- endstream endobj 1912 0 obj << /Length 99 /Filter /FlateDecode >> stream x3532Q0P02F )\\@$2ɹ\N\@.}0PRTʥ(Dry(3773pzrr{ endstream endobj 1913 0 obj << /Length 174 /Filter /FlateDecode >> stream x3532Q0P0SеP01U0TH1*2 (Cds<-=\ %E\N \. ц \. @`"j@&~ f0H@L`F؃ ! D4$f6a&I#$l0L  *@'W OF endstream endobj 1914 0 obj << /Length 108 /Filter /FlateDecode >> stream x3532Q0P02F & )\\  ,ɥ`hȥU()*Mw pV(Dry(3773r - endstream endobj 1915 0 obj << /Length 157 /Filter /FlateDecode >> stream xڍ1 1E#ir4;nv +Pj9J2Egh:X!-pBk3 ȔB3 G2E|ܟPvau!w+S!7Yfyfo iƑG>b/N9 endstream endobj 1916 0 obj << /Length 113 /Filter /FlateDecode >> stream x3532Q0P0Q0T01W01RH1*@hd Irs{=}JJS ]  b<]C=l q~!nr P endstream endobj 1917 0 obj << /Length 186 /Filter /FlateDecode >> stream x5ͱ @ B{ ^mNI]mGa| HiJ,rI9s#Dӕ^Ҝ1j#º.Ű.`$>rUJF9z",~4+*Oo">GI?ЅPuWwDC; MݠÚH endstream endobj 1918 0 obj << /Length 103 /Filter /FlateDecode >> stream x3532Q0PP0T01V02UH1*2 (A$s<M≠=}JJS ]  b<]` .WO@.E, endstream endobj 1919 0 obj << /Length 189 /Filter /FlateDecode >> stream x5=j@'R4'ziU*EH $&n-MGBx o`U+iVgʟԎ!f|Ȧs`,=-fU+fVW~1Y|y̯@1XFr=eW\Ďl~i@4!:HlǛv:_r~)zٷ*7 M endstream endobj 1920 0 obj << /Length 103 /Filter /FlateDecode >> stream x3532Q0PP0T01V02UH1*2 (A$s<M≠=}JJS ]  b<]` .WO@.E, endstream endobj 1921 0 obj << /Length 279 /Filter /FlateDecode >> stream x}J@H&A'B* NK E;GˣL1fv7//fTЂ*iqI%Ұp{UM+o5ƼWTbǒ'lP~_' DD4 ͆o\享[v{d3 zBRD!t-2f.bamzCξS8̐`.`LcovaW4Uu b譫Tиv7 n{ endstream endobj 1922 0 obj << /Length 274 /Filter /FlateDecode >> stream x]ѿJ@_H&Dw8O0XaX{}K"$ΰYl>že'9|Gk|~/S)Vn6%%2%-~|R⌒-?f>Q;`d1 *=CQGz3۪/j) :{$ЪbF\bVfg]p65F`%Uo%n~Z.XܒLPV2yuI U endstream endobj 1923 0 obj << /Length 205 /Filter /FlateDecode >> stream x}ϱ 0[|Fq+ vtr'utPty>JЂVCAn C>)NB<pmkq jZZpTvfJp4A!|ܚRieuݪ,;鷸"Umddgf$/qF+Q+]KC8ptj䐆ŀ "#$ʣN[ywa endstream endobj 1924 0 obj << /Length 208 /Filter /FlateDecode >> stream xڍб 0Д[ DZ N⤎S ;!b #wBaj/9A]FG oPjT ߂[|>^Wn\1ڹ^Wöe;>w"ȑbne!'pΈlr1wE@vؒi`b5olOkuV lL$=o endstream endobj 1925 0 obj << /Length 244 /Filter /FlateDecode >> stream xڭбN0 `:TG_ҖpCL &`J~> Uq,ĉ_]"hKZ_=n ; Z0+5RaK~5C%'>;*\ $U+u+}e'}^ܧ_"dj_V˿*'1S9}q2.Wl9ɒCТfeDE3vgZyٴfȅ endstream endobj 1926 0 obj << /Length 200 /Filter /FlateDecode >> stream xڭб 0H-} LSZ N⤎Q;\Oh 䃻 jh1W/qz1pAf@Pki| }Qa|cpÖqA# KN2lɠw:RE99[CO#/Jǎmݐg'7ΐl9gXɣ endstream endobj 1927 0 obj << /Length 158 /Filter /FlateDecode >> stream x3532Q0P0bK3CCB.3 I$r9yr+q{E=}JJS|hCX.O@D~DBD00H2? Iy0i߀ZNĥf2TV? r > endstream endobj 1928 0 obj << /Length 153 /Filter /FlateDecode >> stream x3532Q0P0b 3CCB. HrW01r{*r;8+. ц \. A=e?0a``'d~"$}6$.0hO$8,'W k[8 endstream endobj 1929 0 obj << /Length 124 /Filter /FlateDecode >> stream x3532Q0P0bK3CCB.3 I$r9yr+q{E=}JJS|hCX.O?$DC=9Pn I.WO@.^4 endstream endobj 1930 0 obj << /Length 115 /Filter /FlateDecode >> stream x3532Q0Pb3CCB.cS I$r9yr+r{E=}JJS|hCX.O7@s ?F?H\=u endstream endobj 1931 0 obj << /Length 250 /Filter /FlateDecode >> stream xEнJ@9RLG> stream x3532Q0P0b 3CCB. HrW01r{*r;8+. ц \. 000LC"A"YFsĐ@$R@?,Փ+ V~ endstream endobj 1933 0 obj << /Length 213 /Filter /FlateDecode >> stream xڭб 0-}{O`@U8 kTfИXi${NRuZ:AW` D{JPhݯ=RO39ǰOX",@,scm$61/Vq?*{b\ Sg% nQ6Zi/Zt"Md!N r endstream endobj 1934 0 obj << /Length 199 /Filter /FlateDecode >> stream xe1@5&pj,$&ZY+hGqblGN}> stream x10gLxжXX &v08Fg<G <`v2$)"SUr¢8((kR(J:)g%A[=D:4Lhn&~^i/c.ĭn,c endstream endobj 1936 0 obj << /Length 197 /Filter /FlateDecode >> stream xڽ @ p؞:jotr'utPtnG#tt(K>ȟK'S7xp> stream xڥϽ 0H>AAA9>ZL@3wS̰o8xp|)30-l1Y2rf3ǝtC)"l˒PK^QtJ*X endstream endobj 1938 0 obj << /Length 259 /Filter /FlateDecode >> stream xuJ@'LyMr.'BBNK Eኃ()2dოgw\nZe+tyiZtW?zEN>?^_K^  )t"Y33BsrA㙢ƑJF :jD.$ &0X@ X {i6zCEPL> VlqZ`I'<EHf|F[(<|,ޛ endstream endobj 1939 0 obj << /Length 137 /Filter /FlateDecode >> stream x3532Q0P0bK3CCB.3 I$r9yr+q{E=}JJS|hCX.O@DH2` #d?# rzrrӄ endstream endobj 1940 0 obj << /Length 190 /Filter /FlateDecode >> stream x1@EXL DhI)L0VjiQ8%q/a67?h!!Jl%r|8IuNW 6{C6kl< l&E.6*NT+nZ!D~/!rG(Q @53`cɭRN=B[2r\U;~W) endstream endobj 1941 0 obj << /Length 221 /Filter /FlateDecode >> stream xڍ1j@*v.M8`raR.]$؝"`!(:–[,g*_QF)iz4Nii)|}՚)Ǩ%>;T3iTshJ߰gu]'}+e $olD3Aa]O3^yy۪ 9ܰIt2/+~}_&Mx)//'1 endstream endobj 1942 0 obj << /Length 243 /Filter /FlateDecode >> stream x]j@ e<'ZꡐLBcd>?ŏl i$~9h.=SM5\߸l |,;~_X./$5U;lV3xXjrW=G.:F 7qfg(L8Hic*ebMbS ôqEܨPMewe6NŨ{1!Xwd n& endstream endobj 1943 0 obj << /Length 225 /Filter /FlateDecode >> stream x}1n0 Ed0EG0/ ԡȔdР7 dPK#O'O *k!XnKVz>uөg^3e݋}N7Oo#XnkR 0,H"`nX,2d;F)ԃ"G ٦)eC$9َ}r9H>Gime2bֿɯꢻNǀf endstream endobj 1944 0 obj << /Length 223 /Filter /FlateDecode >> stream xڭ=0 S1T#4T HbF(=BN1#2|QlSL``: Ҍ f}a^cstz=^NЀ`|U|+Q܏JfL5IbG|86*Um%1x(VDFN{ܙmw^{Ǜ)5xu Vϗr endstream endobj 1945 0 obj << /Length 208 /Filter /FlateDecode >> stream xڕ;n14s5,r%[D ")S$"r4Gp`(RF}?i7> stream xڥ1N@Y478n- T)UL(ԛ,IdUq n#t-l#k&ĖH endstream endobj 1947 0 obj << /Length 225 /Filter /FlateDecode >> stream xu1N0E49BM,)@T@"萒(9K. #3?pW=w<~(ё6[;ϝFOْSxϟ_dw7qB#h%^J"s-,&ï& M ugTi: d)ȧֿHee_3 Y}ETԼ4rs$jYh%t;#k} endstream endobj 1948 0 obj << /Length 166 /Filter /FlateDecode >> stream xŎ1 @EH!%q1[ZYPUx!㎝Vd7<[W-SÉ@fޒYFLXr;)svdJ9{ %_@"-0*rࡐZ'pGb4"mz!IoMSK?7W endstream endobj 1949 0 obj << /Length 283 /Filter /FlateDecode >> stream x}J@Hfa4]<Vr YlWX `D9-4oɿ3eP=յj隣{^u\\:ݙ{z|bu~*.r冻D6 !#"%I\(3}Cc{mPD߄%:N4@&qTDMK2v ;Q9(nhK Idvd="Т>y &ɹf{[ӎ N4:58x'_'/t endstream endobj 1950 0 obj << /Length 178 /Filter /FlateDecode >> stream x= @ L2'pH-,J--ףy2ŒmkO1rX54])/ UԎ URvL,=&dk6>s]PFX`* tB &66aQְsdmN|*38w ]ZZ錀 endstream endobj 1951 0 obj << /Length 141 /Filter /FlateDecode >> stream x3532Q0PbS3#CB.c3 I$r9yr+q{E=}JJS ]  b<]0000PX?Po?=``D xr "cn endstream endobj 1952 0 obj << /Length 177 /Filter /FlateDecode >> stream xՐ P ES YgխP+A'qRGAEOS ;\%CA0$B̘F5h>M¶1d4xTvA*^NIlBYڢMNNSyq" ɑ8t:e n ^(gGƒ'gz\9 %r endstream endobj 1953 0 obj << /Length 127 /Filter /FlateDecode >> stream x3532Q0P0b33CCB.cK I$r9yr+[r{E=}JJS|hCX.Oc`'\{0 ?0%\=Rm endstream endobj 1954 0 obj << /Length 175 /Filter /FlateDecode >> stream x1@O75pD ,ZZh:JD<@J ˆbb%3򎃮i0f3c3n[6DM8eŠ8NDRrpEEVn4TKUT|(UBMҸHȿ(? endstream endobj 1955 0 obj << /Length 170 /Filter /FlateDecode >> stream x1 P t*d |BB`A'qRGE> stream xڕ=@ #0e't$$RheaB5pJ 6&Wd^狔cy9ƹjzPRei.;-+RGN R[&U|H-+֤|Z3/PDx"_  {MءlQ5򃠳RkD0qM]Is Fk,Uel m*:9n endstream endobj 1957 0 obj << /Length 235 /Filter /FlateDecode >> stream xڵ1N0EEirqd":K" * D ra8 j$\<̟|Ҷ9~JSJ/q]Ngr |y@T2bH!iY)0DI~B& #;NvWV #tb9w?1&쵹+'KUwι9mkQڎHQ*mAi7t-} endstream endobj 1958 0 obj << /Length 230 /Filter /FlateDecode >> stream xڵ=n@4@XZDGEJJ "9G k*U4hgޛq1*=,y\-@~jݜ'~Ӽ"~Jnm}r3;r^pAՒELZ[jCm`&H[d+RAv MFM7#zBL#PoNmz'[z >YgY$jcƛqH"WڔVU!, endstream endobj 1959 0 obj << /Length 172 /Filter /FlateDecode >> stream xڽα 0@εIG882:Ht>85g<G5oHYc\lːIN͌Od>"YJq&S"EE\-u׋p*X&.EZ7-}K7-^D_~417yi endstream endobj 1960 0 obj << /Length 227 /Filter /FlateDecode >> stream xM=N0j K.Yo?)@[%h(pGH"1&+Ai4絻RF.x/~-O_yUì o[^fv'^TGnBe*TRUCQf4.,B"tF) F#a~̇ Lͥ2~"1e`9Cf1YD5- VM4kcЇA-ʭ endstream endobj 1961 0 obj << /Length 177 /Filter /FlateDecode >> stream xڭб 0+ 4%q- ftr'>#t =/u AIn(ƚ!kxB%N_C!Q-$Ft9_Ռ$h+3;tA|y=8ނM?`|ҋ-xI ,vQOzxE:Vv܄#Jsk|jVmx endstream endobj 1962 0 obj << /Length 165 /Filter /FlateDecode >> stream xϱ 0]r cptBp" hX ;;rpcHQT2kv%d‚ϧ˞L%SrPE^ />" _*?_^ӗw/ķ=yD-L@@+z]l endstream endobj 1963 0 obj << /Length 201 /Filter /FlateDecode >> stream x]α0# $XJD1D'㤎]GQx!Ԥ%Coƒb Ly۵-(v$S+NQkg͂g\:]:r9쒮 < د׼C|V{ˀʠB6נ?b}gk{[[\2e endstream endobj 1964 0 obj << /Length 194 /Filter /FlateDecode >> stream xuʱ 0-yFcB`A'qRGE(} 1AX>%E4v+g$'txE 9ʵ5o3t > stream xen1 } p~r$7 1юZ(yc+ d/dj I8&,‚}bTl+bY\2L5N{Gs/Pܠ 1?3W-%_} endstream endobj 1966 0 obj << /Length 223 /Filter /FlateDecode >> stream xڥ@Ba2 .HK^rh(<%anY .l;kXㄓ%jP89Ssߤ/]'R5-4GGʷ _* R#>^SoVAԘ5auHKxcO(, m chr >O k>:p6gȹGN;­z endstream endobj 1967 0 obj << /Length 154 /Filter /FlateDecode >> stream x3532Q0P04&& fF )\\  ,ɥ`l̥U()*Mw pV0wQ6T0tQ``|F ~8!"AD=$A= HԱ5 ?h .WO@.h endstream endobj 1968 0 obj << /Length 234 /Filter /FlateDecode >> stream x}j0h0G=Ae'S!M  ԡtJ2vHhʏG#x`t/jJ)TBuuu|F6+9U|Eۖݳ%C̲kqf}N^*)_ %"י2S]`GNMOtdf@C)  (RX%&aȁbrq7jzor0qy42LXC#y|Pov} endstream endobj 1969 0 obj << /Length 261 /Filter /FlateDecode >> stream x]=N@ !䇰4HE"T+*Ar!ehYS|٣޼ijjhk62hs6/|NXj,wz~Gga,d(cE.q  ~@1Bn+~Pcѩ*)&e7RcD5V_BV!1 #ctiCK*f ӱ`=k@o{|_ᅪ endstream endobj 1970 0 obj << /Length 203 /Filter /FlateDecode >> stream xڭ1 0y'0mV Nī&;ƼtxA?Y> stream xڭбJ1YXf[ x{wVbuZZ(ںytG2E8s J#L2ìbSG+t48zr}Gze=k)o-=8qRs+$W89ps q+h<d"4IzrP?2BFRN"*:O^2 ixΝ)5]@\tDXs&݈w[! endstream endobj 1972 0 obj << /Length 262 /Filter /FlateDecode >> stream xm1N0E i @%ҲH@m (9,+c7k4V^]#O//~c{~zp#-yn9p"H:QiST.*NU2JUrAd S\1V`"iUǬ(ǯ3&aFEd+B @ogh&ùJe.bA.VFN[Y-bķ? endstream endobj 1973 0 obj << /Length 199 /Filter /FlateDecode >> stream xڝϱ0[|VI;`A<#0:ך@, mD)Π90 R |J_cz<]Pp+0ځΨT13z5W/j'Z|V7J!̫Hi\LP &2]p';5صB3i}kXok endstream endobj 1974 0 obj << /Length 256 /Filter /FlateDecode >> stream xڍN0`?BZcR$2 Ā:c":;G#d8.H7￵QE֖܎5[,Z{P%B܉RX (#:@PLPQgh 4?'jpB|F!{Y\i~0~Z6xfqQeNe7 1=ŧď\!Ɯ^3yN9/} m endstream endobj 1975 0 obj << /Length 261 /Filter /FlateDecode >> stream xm1N0ЉRXr#d.I춑E"TjAms%Gp"ˊEzmwխ^ttїξ۾N77m}k[fϏWﯵA:mxP)E*"(@J 1UT-Ru* sb8/D"D"?p"N. ˰R+Wv#ffzp9vNs# SS5Aތj endstream endobj 674 0 obj << /Type /Font /Subtype /Type3 /Name /F46 /FontMatrix [0.01004 0 0 0.01004 0 0] /FontBBox [ 0 -24 52 69 ] /Resources << /ProcSet [ /PDF /ImageB ] >> /FirstChar 16 /LastChar 120 /Widths 1976 0 R /Encoding 1977 0 R /CharProcs 1978 0 R >> endobj 1976 0 obj [51.24 51.24 0 0 0 51.24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 51.24 51.24 0 51.24 51.24 51.24 0 51.24 51.24 51.24 51.24 51.24 51.24 51.24 51.24 51.24 51.24 51.24 51.24 51.24 51.24 51.24 51.24 51.24 0 51.24 0 0 0 51.24 51.24 51.24 51.24 51.24 51.24 0 51.24 51.24 0 51.24 51.24 51.24 51.24 51.24 51.24 0 51.24 51.24 51.24 51.24 0 51.24 51.24 0 0 0 0 0 0 0 0 51.24 51.24 51.24 51.24 51.24 51.24 51.24 51.24 51.24 51.24 0 51.24 51.24 51.24 51.24 51.24 51.24 51.24 51.24 51.24 51.24 51.24 51.24 51.24 ] endobj 1977 0 obj << /Type /Encoding /Differences [16/a16/a17 18/.notdef 21/a21 22/.notdef 36/a36/a37 38/.notdef 39/a39/a40/a41 42/.notdef 43/a43/a44/a45/a46/a47/a48/a49/a50/a51/a52/a53/a54/a55/a56/a57/a58/a59 60/.notdef 61/a61 62/.notdef 65/a65/a66/a67/a68/a69/a70 71/.notdef 72/a72/a73 74/.notdef 75/a75/a76/a77/a78/a79/a80 81/.notdef 82/a82/a83/a84/a85 86/.notdef 87/a87/a88 89/.notdef 97/a97/a98/a99/a100/a101/a102/a103/a104/a105/a106 107/.notdef 108/a108/a109/a110/a111/a112/a113/a114/a115/a116/a117/a118/a119/a120] >> endobj 1978 0 obj << /a16 1919 0 R /a17 1917 0 R /a21 1920 0 R /a36 1921 0 R /a37 1922 0 R /a39 1909 0 R /a40 1907 0 R /a41 1908 0 R /a43 1910 0 R /a44 1911 0 R /a45 1918 0 R /a46 1912 0 R /a47 1913 0 R /a48 1966 0 R /a49 1967 0 R /a50 1968 0 R /a51 1969 0 R /a52 1970 0 R /a53 1971 0 R /a54 1972 0 R /a55 1973 0 R /a56 1974 0 R /a57 1975 0 R /a58 1914 0 R /a59 1915 0 R /a61 1916 0 R /a65 1923 0 R /a66 1924 0 R /a67 1925 0 R /a68 1926 0 R /a69 1927 0 R /a70 1928 0 R /a72 1929 0 R /a73 1930 0 R /a75 1931 0 R /a76 1932 0 R /a77 1933 0 R /a78 1934 0 R /a79 1935 0 R /a80 1936 0 R /a82 1937 0 R /a83 1938 0 R /a84 1939 0 R /a85 1940 0 R /a87 1941 0 R /a88 1942 0 R /a97 1943 0 R /a98 1944 0 R /a99 1945 0 R /a100 1946 0 R /a101 1947 0 R /a102 1948 0 R /a103 1949 0 R /a104 1950 0 R /a105 1951 0 R /a106 1952 0 R /a108 1953 0 R /a109 1954 0 R /a110 1955 0 R /a111 1956 0 R /a112 1957 0 R /a113 1958 0 R /a114 1959 0 R /a115 1960 0 R /a116 1961 0 R /a117 1962 0 R /a118 1963 0 R /a119 1964 0 R /a120 1965 0 R >> endobj 1979 0 obj << /Length 181 /Filter /FlateDecode >> stream xڕͽ 1 ,>ym+o;8 ޣݣ::w>H6'CC[32!;bP,Q9]/r1OhmlM(X$ ݪQխ1ˬ쑝БwvDC'Hnc"pp/Hyef endstream endobj 1980 0 obj << /Length 154 /Filter /FlateDecode >> stream x363P0P0R5T06P0PH1*22 \.'O.p#s.}0BIQi*S!BA,} ~0703!?Ek ? fayy A..WO@.iEo endstream endobj 1981 0 obj << /Length 116 /Filter /FlateDecode >> stream x363P0P0b#sc CB.#C I$r9yr+r{E=}JJS. @-\.   ?0m'W ;> endstream endobj 1982 0 obj << /Length 184 /Filter /FlateDecode >> stream xM= P ER[ |/ BlSZY `4G(9,_3q&j5qPr-NFm1cb҉筘t.BKI @?PV^F3@|X,`ܠ^B5j:GF_8 endstream endobj 1983 0 obj << /Length 187 /Filter /FlateDecode >> stream xU= A `!:;, [ZYZ * "ͣ,- b%ԩFIK}Xvԭd^.vI*vD-6a\M> stream xu; P CH1+J|T,]K2Rϛh+)|ƺ-j"9rĥgZ/vYVlJ z@KĐR`Pël)mCH!4@DS=oB endstream endobj 1985 0 obj << /Length 180 /Filter /FlateDecode >> stream x}α `n@@ `955DTcPQdo֣]o9!kg؋ykH^ SZHL*tّg#6^+JтܺENt@W8H>KZBVa-m+U?@3 endstream endobj 1986 0 obj << /Length 191 /Filter /FlateDecode >> stream x]1 P _,^@\@__PBU8 أ՛;TkTe9>;qW;`獦=} %|&E1}RIS>N[RlȚԈ#F;(:eMS$D!la #|5Dr3*!{z)a'.1z=~QR 89=8 endstream endobj 1987 0 obj << /Length 165 /Filter /FlateDecode >> stream x363P0P0V5T0"KCB.#s T&9ɓK?\ȜK(̥PRTʥ`ȥm```?7p;C0`b .~فB@rHjנ?p'W 4 endstream endobj 1988 0 obj << /Length 192 /Filter /FlateDecode >> stream xM `pΐ7zn> rjjjl( J.Kpl pzf!{:v큒Ԋ]L4teO*Y!5 hMF0|1p#n\("Xت޼d?FYkZƂ0~H/viJK; endstream endobj 1989 0 obj << /Length 191 /Filter /FlateDecode >> stream x]= ` 8H  - I&^EOb hDHFrug%8.72R#CR=Ie}ެsRA=R{N(0Qa^rXX){p_{4?maWm'm<+>H/Mp+gL *w 9 endstream endobj 668 0 obj << /Type /Font /Subtype /Type3 /Name /F45 /FontMatrix [0.01721 0 0 0.01721 0 0] /FontBBox [ 2 -1 47 40 ] /Resources << /ProcSet [ /PDF /ImageB ] >> /FirstChar 48 /LastChar 82 /Widths 1990 0 R /Encoding 1991 0 R /CharProcs 1992 0 R >> endobj 1990 0 obj [33.08 33.08 33.08 33.08 33.08 33.08 33.08 33.08 33.08 33.08 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 48.18 ] endobj 1991 0 obj << /Type /Encoding /Differences [48/a48/a49/a50/a51/a52/a53/a54/a55/a56/a57 58/.notdef 82/a82] >> endobj 1992 0 obj << /a48 1980 0 R /a49 1981 0 R /a50 1982 0 R /a51 1983 0 R /a52 1984 0 R /a53 1985 0 R /a54 1986 0 R /a55 1987 0 R /a56 1988 0 R /a57 1989 0 R /a82 1979 0 R >> endobj 1993 0 obj << /Length 189 /Filter /FlateDecode >> stream xڝ1 @EL70s @BBZZ( 9Z#XZ:IVt« 3Or#xjBN%7nt8SjImYǤ+]'RzΚT;l@TJ @ hxjze/ ]a;AdD/ak+?iTRS" }G@ endstream endobj 1994 0 obj << /Length 188 /Filter /FlateDecode >> stream xڝ1 @EL/ :ͮA"EVbE$Nxg1q߄l">h.!Ǧ^OXRcR 7'e|ޏՌ5ٔs@ th~//iKxO`LГtIVx?>(=Cuڕ/@RriniMoEBs endstream endobj 1995 0 obj << /Length 109 /Filter /FlateDecode >> stream x3230W0PaCs3CB.K 'r9yr+Xr{=}JJS ]  b<]d7zl+ -@>'W / endstream endobj 1996 0 obj << /Length 164 /Filter /FlateDecode >> stream x3135R0P0U02S06W03RH1*26 (Ads< =\ %E\N @QhX.O8qs憺 ꛛn 10`` 6P $RR  2d>@nr TD endstream endobj 1997 0 obj << /Length 105 /Filter /FlateDecode >> stream x333P0P0U5S03P0PH1*25 M 2ɹ\N\@.}0PRTʥ`ȥm``C'W ) endstream endobj 1998 0 obj << /Length 131 /Filter /FlateDecode >> stream x-1 @E?^ xЙmV"RP:ٙ&Nwo\%红V\xA=y1:nwՇ Y/ t4M22DT&2+<*B# endstream endobj 1999 0 obj << /Length 94 /Filter /FlateDecode >> stream x3230W0PaCsKCB.K &r9yr+Xr{O_T.}gC.}hCX.Oz 0X [\w endstream endobj 2000 0 obj << /Length 153 /Filter /FlateDecode >> stream xڅ̽A ɉ̗eSH" ͣxwN5gvZ88Kb񀷲>7TzOoײC _.)k̓<j*zP R.NO|[ƧmdSL6e\6NdV;x* endstream endobj 2001 0 obj << /Length 101 /Filter /FlateDecode >> stream x3230W0PaCsc3CB.K 'r9yr+Xr{=}JJS ]  b<]d7`= 1S'W fp" endstream endobj 2002 0 obj << /Length 162 /Filter /FlateDecode >> stream xUA @7 u XJ0fԪEB ,jmAi"=xj1k)%g/ I|<$7}Mlx]I'$K>&ȔGȽm~i\ԅΏG8¢x8M lj0 b+12 endstream endobj 2003 0 obj << /Length 94 /Filter /FlateDecode >> stream xM=@PEx$^!R { T߱4J2:*54`ƴ"f@BJJ7"i endstream endobj 2004 0 obj << /Length 165 /Filter /FlateDecode >> stream x323P0P5T06V0P0PH1*2(Bs<Áj=\ %E\N \. ц \. 10703H01X010000$E@PPc0n`0\@r ;g0 endstream endobj 2005 0 obj << /Length 172 /Filter /FlateDecode >> stream x3134V0P0bSKCB.# I$r9yr+q{E=}JJS ]*c<]0A?  @CA2@5@D!dPICd \\\^ endstream endobj 2006 0 obj << /Length 175 /Filter /FlateDecode >> stream x331Q0P0bScSKCB.S1s<L =\ %E\N @QhX.O g``~?`g N}`o`F¢0?Q\\\ endstream endobj 2007 0 obj << /Length 208 /Filter /FlateDecode >> stream xѱ@?Xf!FHJ"BJ--|1}_aau=΁egM]p,+qeL?&wXis)|›p1$Myƀv3|-{Pe!,GpPghFdPCWT-kCj( gf"{![ޗAftC endstream endobj 2008 0 obj << /Length 235 /Filter /FlateDecode >> stream xmj1 ^=;Od-$AhO=Xބͣ{N"Q6>fB&?N'izmf4Z||DJƠz.rM/T%V~rEP@X8 \IU{3bY1Ez$'i=Sː†LBp6Pu 8:R [49޲&&Z'XΝ_%m endstream endobj 2009 0 obj << /Length 209 /Filter /FlateDecode >> stream xڕ00#pO`Amd3ALd08Fgh< @ڴ_e4f, kӄqH2@5(xEB3 i3 5C8ZA/:L^pXpkFbIF2qUNCE>_c+vdn&~VP endstream endobj 2010 0 obj << /Length 260 /Filter /FlateDecode >> stream xڭѱJ@? LaZ 4ܪ[-'BBRP̛*y+uvg!B#n;MG4Zly\Ѣ瞚-Sӟ-5#%_v^QdRPDZTRR OԵ@*(AWE],RIR57P&?2oƐ(~#FLg5=dF#zvL;mf&,mXJ[a # }R:%e-vvS=U:霾es endstream endobj 2011 0 obj << /Length 194 /Filter /FlateDecode >> stream x3331V0PaS SsCB.S I$r9yr+p{E=}JJS ]  b<]Bc``D@.0L1S?UB7@`JJ=SP (<9P@=mrC%hAC!@ y`> stream xuб 0  /0 D4?/iLsqINƪ&v)9 O44FQ5o3j ioKk2 DdFLƤ1(C8^QDɰ|p1۽."byҀ)gk׿R?U~ endstream endobj 2013 0 obj << /Length 166 /Filter /FlateDecode >> stream x353R0P0bSCSsCB.s I$r9yr+s{E=}JJS ]  b<]d `6`RAI68؀L2`%Hv0)"G'!P5Ⱥ AJ$ `G@%\=Mx endstream endobj 2014 0 obj << /Length 254 /Filter /FlateDecode >> stream xڭѱJ@?l&yM"&`p` A+ :--7`kMg+ & XKf]{t\)pp{ =SuV=UvT]j__Z]>5(6S`-̗oնd IS03aLlB".!1Ox&pcJ&HۅrI)ܔ_,v0{ltT颧 endstream endobj 2015 0 obj << /Length 125 /Filter /FlateDecode >> stream x333P0P0bSKSsCB.SS I$r9yr+r{E=}JJS ]  b<]?T b78) s)hb y.WO@.!7 endstream endobj 2016 0 obj << /Length 106 /Filter /FlateDecode >> stream x3ԳT0P0aKSsCB.#3 I$r9yr+q{E=}JJS ]  b<]acW3v\ endstream endobj 2017 0 obj << /Length 243 /Filter /FlateDecode >> stream x]J@Yr̡@&A[sjsɃxj= Qj(y=HДeDz~,//Ue7~_G8"Ǎ;ΟGΗoKWn6^D8I F"!:+2oa[87`d`+hLMfp&byiguf0~5jRryd* Sk_ N9Lxods-5P endstream endobj 2018 0 obj << /Length 140 /Filter /FlateDecode >> stream x35ԳT0P0bKSsCB.S I$r9yr+r{E=}JJS ]  b<]d3 eR/i& 0 d`L?`@!\=Afl endstream endobj 2019 0 obj << /Length 244 /Filter /FlateDecode >> stream xu?kP{<0p '% ur(vtـ]G|X#y=8. [~< 8:İ˵W|Ք.1wQ@jH>yo瘣1 ý 8hFx]*18yTB,a PM 2< fep\$I5+zG4VY5D NZ@fW'coQ! endstream endobj 2020 0 obj << /Length 243 /Filter /FlateDecode >> stream xUпJ@/.0fMN?Sge!VjihkR\AKT֩$EuwM1f``w%=.>jRWRkRnKO/VSYZR7T@fm큼0 {düۘ=4]L3Ȧa@bli@T|`MLjb4L1dtFW$G *.|ؙtI6Dc endstream endobj 2021 0 obj << /Length 239 /Filter /FlateDecode >> stream xڭ08#^@D'D::htGxWm~_LyxJsNgo(I5M7?/&~I#K CԼ*x1F%)dB 񑊅A8EjGU(Nk4, ~j}> stream x3535T0P0bS#SsCB.K I$r9yr+Xr{E=}JJS ]ry( , LS? 0adT Y;PCuP7 .ĵ'W K endstream endobj 2023 0 obj << /Length 221 /Filter /FlateDecode >> stream xڕѽ 0𖂁#x/i*U ~I(}JK "&HrtF*8 q0Y Ȁf4  ״ 2o@.08BDu uf,HW lf(ze~ަ_Q@6+L6elZv,XKP~EԺe֩N=v< endstream endobj 2024 0 obj << /Length 256 /Filter /FlateDecode >> stream xUϱN0 )K~h{=B @!Z̏F%Psw|J8êt0r^jE>U KWk=?ܻbuyJz_uEk?ƌ!fl#>3Z;@'7x &&ȖNm9R0!G/aEFD+E$ьMX^>a-M=:upǴ-i}GA^{sywָ+=# endstream endobj 2025 0 obj << /Length 150 /Filter /FlateDecode >> stream x3Գ4W0P0bSsJ1*2" Fr.'~1PKW4K)YKE!P E?<@0g`A bP>T*L`)`J+F Hʃr Wr endstream endobj 2026 0 obj << /Length 191 /Filter /FlateDecode >> stream x= @B\@7JL!he!Vj)h9G,Sl3X,fuVsmnFlzl @Hw4HH/I'S>[ِ҃C#^(>l \3X~ZPCAJ'BEH?4u7{-'ROr%xVݙ÷C qBszxa endstream endobj 2027 0 obj << /Length 240 /Filter /FlateDecode >> stream xm1j0g1> stream xu1K0W v8b vtr@?')ΝCMHH^K^Y/PX.8\> stream xαJAYL"y.p1bLBASP=p2E8n@,ofgɌKWR+s8 5srzJ 5W7Y ~k%vTZ^{cٳUoC0˖*STB`ζ&%EQ0b43e}"_馡}l endstream endobj 2030 0 obj << /Length 204 /Filter /FlateDecode >> stream xm; @ . Vf.1L!he!Vji(X({8Qښ}i<"Ńf{Qj{T3Qes:.{TŘ4 5E&6%/_x/PAP02g0yp&dBw:+0}ATyM6Ӣ5l.5iK|T endstream endobj 2031 0 obj << /Length 198 /Filter /FlateDecode >> stream x3134V0P0R5T01V0PH1*21PASKLr.'~PKW4K)YKE!P ETD0S$00|`A; 00* ?8Q"I&PMb`߁q ̍:]'W ckA endstream endobj 2032 0 obj << /Length 182 /Filter /FlateDecode >> stream xڍA `'?(   AZDjX.̣y҅Tcu 7f: 5P L % MBb%_/#jƒ&Ύ҄Z{Ue5TƩ-ՇW6j@-OӉ;*`{^[bTd7 wSZ= endstream endobj 2033 0 obj << /Length 198 /Filter /FlateDecode >> stream x3134V0P0V5T01Q0PH1*21PASKLr.'~PKW4K)YKE!P ETz !HԱ` |P=iu D)ph<krF=A?0`> stream x]1 @\B/ 8M(+Tr!bI q23;9nvdC)lGUgwIBf6$32d@fr@&m)2ϩ\^sϵ2HQRQO5QJrh MTrL@V@ endstream endobj 2035 0 obj << /Length 141 /Filter /FlateDecode >> stream x3236W0P0bcSKCB.# I$r9yr+Yp{E=}JJS ]*c<]70| C`003a`\=&[ endstream endobj 2036 0 obj << /Length 237 /Filter /FlateDecode >> stream xڍJ1ƿ00 v^@9Å+T[}> stream x3134V0P0bS CB.C I$r9yr+r{E=}JJS. @-\. ?&iNa`D~700n?D䇁$7 \\\y endstream endobj 2038 0 obj << /Length 122 /Filter /FlateDecode >> stream x3230W0P0aCS3CB.C I$r9yr+Zp{E=}JJS ]  b<]0@A@8~? q0\=(CE` endstream endobj 2039 0 obj << /Length 150 /Filter /FlateDecode >> stream x3236W0P5Q54W0P05SH1*22 (s< =\ %E\N @QhX.O  P?`E6?gc?P~.WO@.W endstream endobj 2040 0 obj << /Length 196 /Filter /FlateDecode >> stream xڵ1 @Еir3'p.#BBRPQr0E:? d37u.{ʧHrCqJzƁGz$15x2`ts [R?L3؂rkm;x3HKv@%.oԐ nn**ɍ@ÔDr endstream endobj 2041 0 obj << /Length 108 /Filter /FlateDecode >> stream x3230W0P0aCS CB.C I$r9yr+Zp{E=}JJS ]  b<]?0! ̃`qzrrƂQ. endstream endobj 2042 0 obj << /Length 177 /Filter /FlateDecode >> stream x33R0Pa3scsCB.3 I$r9yr+p{E=}JJS ]  b<]?`@=:773n? Da`N``` O7Nszrr#߈ endstream endobj 2043 0 obj << /Length 147 /Filter /FlateDecode >> stream x3134V0P0bcsCB.C I$r9yr+r{E=}JJS. @-\. ?00`D~70n?D䇁$0I.WO@.e% endstream endobj 2044 0 obj << /Length 188 /Filter /FlateDecode >> stream xڍ1@E #0e6 &naRK v9GTd)HN^f̦ǚ95(EqߜR{cRkI ? ldM*H&g8^WSQdHVR!J*- i~ nN/ookg$AH> wlzZIK endstream endobj 2045 0 obj << /Length 196 /Filter /FlateDecode >> stream xڝα @ HByuj;:9::(>Zp"]qQ |CB?2ܓ1G!#I:Ramd$V$fO"tٓH$R^K6ʯ\UW0/%>T5*4hy~> stream x31ֳ0R0P0V54S01Q06WH1*21PAScTr.'~PKW4K)YKE!P E0a<|?`0?> stream x3635R0PacCcsCB.# I$r9yr+Yp{E=}JJS ]  b<]3P?n3 ~o0ah`?PszrrjF endstream endobj 2048 0 obj << /Length 195 /Filter /FlateDecode >> stream x=αJ@Xf x{`TSwZ * W6`"8%Gf|q~K.4pR^j<> stream x363T0P0T5T0P05TH1*22 (Ads≮=\ %E\N \. ц \.   W  @ @,?(fQ 0pC sC3=;?f.WO@.uH endstream endobj 2050 0 obj << /Length 153 /Filter /FlateDecode >> stream x3134V0P0R5T01Q06WH1*21 ([@ds<L =\ %E\N @QhX.O `J`pB`왏I@.WO@.1c endstream endobj 2051 0 obj << /Length 183 /Filter /FlateDecode >> stream xU̱ P#k[WJ' rjj Ɔh>`Phj @ B\Q#HEldȗ$"Sg3:.{|LVkRj_ ..X ,g0i) <p&A=j|c(vk]b=(ԿOI |F? endstream endobj 2052 0 obj << /Length 233 /Filter /FlateDecode >> stream xU=KPs Xxv(zb`A' Q|A7|~Lx`7UN?8g!Aj"z$r~nhdHڙdrO/$GcHN* WUP6Aߴ45q " bx%tq_cGŲh;L t5<fOk2|+ZlECd(IBY_ endstream endobj 2053 0 obj << /Length 210 /Filter /FlateDecode >> stream xMν @ )(> stream xUj@Yi nZ$sSEGQ|x I;=F(N8^D!qiIs ǔB3I-1QYAg//74gZv* 0ÿ+]SCE@QsϰF,IqSn/'gCb^mmjg`1'>ڟK endstream endobj 2055 0 obj << /Length 183 /Filter /FlateDecode >> stream x%1 @@$|'0+AA),DQI:IUuO)Fh~!;:c̐ېዬQ֑)HpIH]RY#H[m(l2Oe-?uC endstream endobj 2056 0 obj << /Length 188 /Filter /FlateDecode >> stream xڵ1 @EH!L#d.ͺB` A+ RK EBbGRRl6Pt+ǬƬ5$Ii;Xf$#aI,Dv$f,I(K~ |[jWopG!SE /zO6x+ӸY~uд` endstream endobj 2057 0 obj << /Length 121 /Filter /FlateDecode >> stream x3135R0P0bc3SSCB.# I$r9yr+Yp{E=}JJS ]  b<]0001; aX*6T?0'W N endstream endobj 2058 0 obj << /Length 228 /Filter /FlateDecode >> stream xmαJ@o"0M^ป'pWSZY `eh>J+5E~;Yct_^iC-/+9u'Zst }{} ,, %s'l"aAZқMY'W Tc| endstream endobj 2059 0 obj << /Length 235 /Filter /FlateDecode >> stream xu1N0ЉRX`3',ZiY$R AE GQr[0"OʌǓ/^ҟ+Vɾݭ%+yxb>F:iy-29Q EPE6fLV&b&e6fՎY (y/ifU _ cBԨM>y2_ |Ǜjh endstream endobj 2060 0 obj << /Length 188 /Filter /FlateDecode >> stream xڕν @ + At-('𮶵kotrP?Q_ I+F!=ړ,o)$G$'KROt8oH&{$S^zVSBĢ iAf1h.p;`Z \2oߛy544` endstream endobj 2061 0 obj << /Length 226 /Filter /FlateDecode >> stream xڕϿjAna s=b!j WJ!`R nGG8̜EH:_1;dySpnyΟ9)_6[d?9oR&[}";YL9#;e銊Һ„pQ*+j .+xs7xĕ\ }rR /:tKuNTc'ې'jiT2Dׂ+X endstream endobj 2062 0 obj << /Length 243 /Filter /FlateDecode >> stream xmJ@O"p}dXW0 j)h()SDm>{uuVZjG+9}Mjag"VNbkx|JV+-*@ Ps&[ D>#E@rI~2> stream xڕα @ HB}Ѽ]`A'u(GQ|TZ?$w#3ihdȎhC!s8cТZp*Yz?WS2f5wHPQY 4a:B@ 8 1n -SQR-8 d_Ѯ+J_> stream xMJ@Eo[8м$AB`B]W҅E ;#Ǜ*y{wquLZZj}%OR7KmN~&wlֺ₲<>H\i%Jo*-o])L O[ `;d1a3X`LpM6{{xSHp|tO01l6 i4,e3zwgRS@v伕+c endstream endobj 2065 0 obj << /Length 237 /Filter /FlateDecode >> stream xu1N0бRD@\lBTE"T AKr!e3 gi_'aE5tB 2(_pӢ&1^_v7T]M=[b.'0S2*(ٌ`&p B!t 灼__Rc%ɞ 6{6C!Ic)A?XZ1IN+OVqY- m9 endstream endobj 652 0 obj << /Type /Font /Subtype /Type3 /Name /F43 /FontMatrix [0.01204 0 0 0.01204 0 0] /FontBBox [ -4 -21 83 62 ] /Resources << /ProcSet [ /PDF /ImageB ] >> /FirstChar 16 /LastChar 122 /Widths 2066 0 R /Encoding 2067 0 R /CharProcs 2068 0 R >> endobj 2066 0 obj [27.68 27.68 0 0 0 0 0 0 0 0 0 48.44 46.13 0 69.2 0 0 23.07 0 0 0 0 0 0 32.29 32.29 41.52 64.58 23.07 27.68 23.07 41.52 41.52 41.52 41.52 41.52 41.52 41.52 41.52 41.52 41.52 41.52 23.07 0 0 0 0 0 0 62.28 58.82 59.97 63.43 56.51 54.2 65.16 62.28 29.99 0 64.58 51.9 76.12 62.28 64.58 56.51 0 61.12 46.13 59.97 62.28 62.28 85.34 0 62.28 0 0 0 0 0 0 0 41.52 46.13 36.91 46.13 36.91 25.37 41.52 46.13 23.07 25.37 43.82 23.07 69.2 46.13 41.52 46.13 43.82 32.52 32.75 32.29 46.13 43.82 59.97 43.82 43.82 36.91 ] endobj 2067 0 obj << /Type /Encoding /Differences [16/a16/a17 18/.notdef 27/a27/a28 29/.notdef 30/a30 31/.notdef 33/a33 34/.notdef 40/a40/a41/a42/a43/a44/a45/a46/a47/a48/a49/a50/a51/a52/a53/a54/a55/a56/a57/a58 59/.notdef 65/a65/a66/a67/a68/a69/a70/a71/a72/a73 74/.notdef 75/a75/a76/a77/a78/a79/a80 81/.notdef 82/a82/a83/a84/a85/a86/a87 88/.notdef 89/a89 90/.notdef 97/a97/a98/a99/a100/a101/a102/a103/a104/a105/a106/a107/a108/a109/a110/a111/a112/a113/a114/a115/a116/a117/a118/a119/a120/a121/a122] >> endobj 2068 0 obj << /a16 2004 0 R /a17 2002 0 R /a27 2006 0 R /a28 2005 0 R /a30 2007 0 R /a33 1995 0 R /a40 1993 0 R /a41 1994 0 R /a42 1996 0 R /a43 1997 0 R /a44 1998 0 R /a45 2003 0 R /a46 1999 0 R /a47 2000 0 R /a48 2056 0 R /a49 2057 0 R /a50 2058 0 R /a51 2059 0 R /a52 2060 0 R /a53 2061 0 R /a54 2062 0 R /a55 2063 0 R /a56 2064 0 R /a57 2065 0 R /a58 2001 0 R /a65 2008 0 R /a66 2009 0 R /a67 2010 0 R /a68 2011 0 R /a69 2012 0 R /a70 2013 0 R /a71 2014 0 R /a72 2015 0 R /a73 2016 0 R /a75 2017 0 R /a76 2018 0 R /a77 2019 0 R /a78 2020 0 R /a79 2021 0 R /a80 2022 0 R /a82 2023 0 R /a83 2024 0 R /a84 2025 0 R /a85 2026 0 R /a86 2027 0 R /a87 2028 0 R /a89 2029 0 R /a97 2030 0 R /a98 2031 0 R /a99 2032 0 R /a100 2033 0 R /a101 2034 0 R /a102 2035 0 R /a103 2036 0 R /a104 2037 0 R /a105 2038 0 R /a106 2039 0 R /a107 2040 0 R /a108 2041 0 R /a109 2042 0 R /a110 2043 0 R /a111 2044 0 R /a112 2045 0 R /a113 2046 0 R /a114 2047 0 R /a115 2048 0 R /a116 2049 0 R /a117 2050 0 R /a118 2051 0 R /a119 2052 0 R /a120 2053 0 R /a121 2054 0 R /a122 2055 0 R >> endobj 2069 0 obj << /Length 102 /Filter /FlateDecode >> stream x3235V0P0b#CCcCB.C Hr=BIQi*S!BA,A'W !$ endstream endobj 2070 0 obj << /Length 111 /Filter /FlateDecode >> stream x3235V0P0b#CcsCB.C HrW04r{*r;8+r(D*ry(7?P70`szrrD7 endstream endobj 2071 0 obj << /Length 208 /Filter /FlateDecode >> stream xڝ= 0J[r LKSV08s{4#tPqj |[Ƌ$D^x Qξ> 2Q|n->+lx^omIiTEud=X4i;87vLN7oTόdT}X_QO^Wo5Q;G27O> stream xڽ=N@ !L"nCeHJ $GQr-7qF}#[9մgXsoSxmWt5Zx|Ö (ETV";Yepš{J9~P(eRXfdH- Xq*K8/~byoƃq?}`0fW';j#cͪy< ^ux߳= endstream endobj 2073 0 obj << /Length 196 /Filter /FlateDecode >> stream x3732V0Pa3 SsCB.3 I$r9yr+p{E=}JJS ]  b<]@ ?p,B@@4#P2J@@hyt?iBAu?aa ?[@?P\\\2oə endstream endobj 2074 0 obj << /Length 184 /Filter /FlateDecode >> stream x}б 0+-}'0t I옡ۤVr~>S hR(#^- &َ"lU"kgdfA!!)isޝKT oY<py~# ?@IzS=ZAh1s!o9)ʦ:#ǥ-~ endstream endobj 2075 0 obj << /Length 159 /Filter /FlateDecode >> stream x333T0P0bS3SsCB.S# I$r9yr+q{E=}JJS ]  b<]CfPLC(~ŎB1PX ŀD@!;7UӀj (PEqzrrco endstream endobj 2076 0 obj << /Length 233 /Filter /FlateDecode >> stream xڥѽ 0->B4bۭAAAk(>BG3͇uP=AYځK]k̵p&˜Mgd ok|xp +@Z/0d73(M\5|3WU =e0> endstream endobj 2077 0 obj << /Length 152 /Filter /FlateDecode >> stream x3331V0Pa3cS3CB.SK I$r9yr+Zr{E=}JJS ]  b<]ANi Z@5`NWiffI3i04?(p\\\wG endstream endobj 2078 0 obj << /Length 199 /Filter /FlateDecode >> stream xuν 0+['0~I훙G#t =猪!ARG4!3vYW}؟pRP>@}vD?YM)C?mFAh0Wp(Ԇ&R_GWRM1|w5F ]5IW'C{p:V# \ 8.y endstream endobj 2079 0 obj << /Length 191 /Filter /FlateDecode >> stream xڵϱ 0H- Lj3:9::(:O'dP{^CEĐ<%$Q`c^ c4 }p̀4]Pf*[1.h&GA}1t@%c55l)1(*zúg ?q[넭Da_=@M 4Bڐ3'`a`Ot턀 endstream endobj 2080 0 obj << /Length 191 /Filter /FlateDecode >> stream x]ν 0S:w#>mб N(Q3 \'3ʇE)rF2:Rߥ}ה$S2{Z|)/&QR:tCuňC:DvG|iFyV;tPo07{KxN. P5 ҂5-Qle endstream endobj 2081 0 obj << /Length 264 /Filter /FlateDecode >> stream xڅN0 ]1Drop @ZUt`b81# xlB$7bBb"~??;㺧j|ƶoE]p3A{)~=\SvK;rJxP0w4{\ .c9N]"Yp&Zmm1B`XX 212sP)HrL51UW[$tUݒYņ'r endstream endobj 2082 0 obj << /Length 122 /Filter /FlateDecode >> stream x3235V0Pa#SSKCB.#C I$r9yr+r{E=}JJS. @-\. 0!("3#! F#.WO@.Nq endstream endobj 2083 0 obj << /Length 105 /Filter /FlateDecode >> stream x3235V0Pa#3S CB.## I$r9yr+q{E=}JJS ]  b<]3GBqzrrW endstream endobj 2084 0 obj << /Length 144 /Filter /FlateDecode >> stream x336V0P0bcsJ1*26" \.'O.pc.}(BIQi*S!BA,? DM}?`@8P$` 4'Apzrr8W endstream endobj 2085 0 obj << /Length 149 /Filter /FlateDecode >> stream x3530U0P0bS#csCB. I$r9yr+Xp{E=}JJS ]  b<]30??@5J2"0?;lA*r  endstream endobj 2086 0 obj << /Length 188 /Filter /FlateDecode >> stream xڵб 0+-} hP:j3:9SutPt(}Jc quːOTSLf"(I1i_3Ŏ ʍQ5ݮb $,Dm`XP?䯰a"G H述[%=Ρi۸{}9s \#G endstream endobj 2087 0 obj << /Length 122 /Filter /FlateDecode >> stream x3137U0P0bCSCB.cc I$r9yr+s{E=}JJS ]  b<]DbvQ$G%AÈB\ endstream endobj 2088 0 obj << /Length 231 /Filter /FlateDecode >> stream xmJ0,%Z%c7!02I|zGƭVx|,͝Gif4ۛ IodyA# ՌJ&E8]&Rj Ф KX"9߰C"N +oq @F2h.pFmLF IA.gOլ endstream endobj 2089 0 obj << /Length 237 /Filter /FlateDecode >> stream x}J@ba> stream xڕϱ @  Y6O`[ҥTAAAQPG#ttt $Byp :D%;摤8ߨ0XnlBuحVK>/'2%;%|AtG*A0`/PuF199a{Db#j3X5SS imhO_o`{ endstream endobj 2091 0 obj << /Length 229 /Filter /FlateDecode >> stream xڅϱN@ `G"yh_p([+"5:T #^%pcHe``\wm# i䶔߸jQD^yݱKղߢ̾{{)oPFn(F ѩjd|L@6mБT /刏sg`|8c¨5 M◔i\Qn+ yrevEsᇎw 4s endstream endobj 2092 0 obj << /Length 235 /Filter /FlateDecode >> stream xu=N0M#x.NV[YZHPQ *Ap%G0EagY<]6\瓚CMϴXiXq~hݒŊ܅K~}y{$:܆ok0`2Rӗr@IrBGbd2lRV;xF!#SIgk4IY;!Gabݸi^aeb_Ȼ+:(4 endstream endobj 2093 0 obj << /Length 200 /Filter /FlateDecode >> stream xڝϱ `{2As3!!(hzĺt~8a@ R0G=9q|s:.{tń8Mh3L+"dL-VKx{pprm%@%*!ifȣ1ֺhfGݨZF> stream xE;N1 `G)Fr#/jH"1T ()@Pg)S{Al)iwiC]4M4O2;nyy~Âm82-}~|p#=yH`xpv $",t?JIRsTR/v 6#`f3G&-]\\\EV>RtU?p"F !SS`% ^/x?}ϓ endstream endobj 2095 0 obj << /Length 237 /Filter /FlateDecode >> stream xm1N@o4s؊R $(UA WM#šapJ]_;勆ۖzƆ5wdJ۞^m1U-P↪?6\?Qc i&d r2!.G?pS8|9]'?XPT)L%[2/jNl>9ے5FX = WUUG@~U햎 endstream endobj 651 0 obj << /Type /Font /Subtype /Type3 /Name /F44 /FontMatrix [0.01204 0 0 0.01204 0 0] /FontBBox [ 2 -17 72 59 ] /Resources << /ProcSet [ /PDF /ImageB ] >> /FirstChar 46 /LastChar 117 /Widths 2096 0 R /Encoding 2097 0 R /CharProcs 2098 0 R >> endobj 2096 0 obj [26.53 0 47.75 47.75 47.75 47.75 47.75 47.75 47.75 47.75 47.75 47.75 26.53 0 0 0 0 0 0 0 67.93 68.97 73.23 62.74 60.09 0 0 0 0 0 0 0 0 0 0 0 71.62 0 66.43 0 0 0 0 0 0 0 0 0 0 0 0 46.42 53.05 0 0 43.77 0 47.75 0 26.53 0 0 26.53 0 0 0 0 0 39.33 0 0 53.05 ] endobj 2097 0 obj << /Type /Encoding /Differences [46/a46 47/.notdef 48/a48/a49/a50/a51/a52/a53/a54/a55/a56/a57/a58 59/.notdef 66/a66/a67/a68/a69/a70 71/.notdef 82/a82 83/.notdef 84/a84 85/.notdef 97/a97/a98 99/.notdef 101/a101 102/.notdef 103/a103 104/.notdef 105/a105 106/.notdef 108/a108 109/.notdef 114/a114 115/.notdef 117/a117] >> endobj 2098 0 obj << /a46 2069 0 R /a48 2086 0 R /a49 2087 0 R /a50 2088 0 R /a51 2089 0 R /a52 2090 0 R /a53 2091 0 R /a54 2092 0 R /a55 2093 0 R /a56 2094 0 R /a57 2095 0 R /a58 2070 0 R /a66 2071 0 R /a67 2072 0 R /a68 2073 0 R /a69 2074 0 R /a70 2075 0 R /a82 2076 0 R /a84 2077 0 R /a97 2078 0 R /a98 2079 0 R /a101 2080 0 R /a103 2081 0 R /a105 2082 0 R /a108 2083 0 R /a114 2084 0 R /a117 2085 0 R >> endobj 2099 0 obj << /Length 192 /Filter /FlateDecode >> stream x334Q0P04P54W06S05PH1*22 (s<L=\ %E\N \. ц \. @ 6@\RR (,T9L T;7 <C0#kF?4\E̖b| 0Pr H3 endstream endobj 2100 0 obj << /Length 178 /Filter /FlateDecode >> stream x334Q0P0T54W02W05PH1*22(Cs<L=\ %E\N \. ц \. q[@ 1#avn 1T<am  Png?dq c* Zaʑ| .WO@.0p endstream endobj 2101 0 obj << /Length 115 /Filter /FlateDecode >> stream x32Գ0U0Pb###KCB.Cc I$r9yr+s{E=}JJS ]  b<]>0`02 'W , endstream endobj 2102 0 obj << /Length 99 /Filter /FlateDecode >> stream x323T0P0S04R02Q04WH1*@h HrJs{(r{*r;8+r(D*ry(o`TՓ+ * endstream endobj 2103 0 obj << /Length 233 /Filter /FlateDecode >> stream xڅϱJ1?l0;/I wz'XpQ)8) 3L&{<sg A:7 .=9zvw0805)>2:Mh{4 SKNX jIվ5@UqMqG%^\ΌO1XEZ-'=z E4bM L5 endstream endobj 2104 0 obj << /Length 211 /Filter /FlateDecode >> stream xM; @/XM0BBBN4G(2E0ά>gNs8yҞDƁuaAFvQBv"d)-l!/CVJU<(=TijRg |}mֽEg #\UKYZ m{{־}͛n\~Z/4\~ey{Qhќ^ W endstream endobj 2105 0 obj << /Length 215 /Filter /FlateDecode >> stream xM1j0Ox0!@ ";($@@=)CȔvl|cIV=ǓʙNN/3s?'J2[32ϲ%SAf5 Ts *XD8 &}h3Dڪ(6&ZWsbYgJe_ D/(/i)M:+vpC++箳mJz;{\ endstream endobj 2106 0 obj << /Length 236 /Filter /FlateDecode >> stream xeϱn0?閬  c)F 5:Tڎ@ REhy?BypVx}1C#֚5 c~ѴHuxFԝIUKnvf[֤(3f hC!kZ̊M*_OaF8_h_]0;)NJO v"lXۥ ~{\c endstream endobj 2107 0 obj << /Length 144 /Filter /FlateDecode >> stream x323P0P0bcSCB.#K I$r9yr+Yr{E=}JJS ]  b<]c a3f X  렘?\\\4>$ endstream endobj 2108 0 obj << /Length 238 /Filter /FlateDecode >> stream xMJ@C`J;O`BBV0AOēz(T ZW'{0| ?c.S6kFdҧuwZ> stream xeαJ@? ¾qpyE p` A+ 괴Pn`y5dR)e4~fQVb# y{e)+ITJ>cGU3R}I[|H]tG?wH_ endstream endobj 2110 0 obj << /Length 185 /Filter /FlateDecode >> stream xM1 0¿?i%E B*AAQPQpG2:oU7|K^aIHS%pMm 5T9U,Ƙ:xEMq_6r ]HI[oLr+jYμM>PBWV^jyc^/LKXYRTt endstream endobj 2111 0 obj << /Length 181 /Filter /FlateDecode >> stream x3631R0P0W5T06W06PH1*2 (Bds<,=\ %E\N @BA, 5~` `( ,P P qpǢOE x 'g.WO@./< endstream endobj 2112 0 obj << /Length 180 /Filter /FlateDecode >> stream x-=0w {-0H;`A AnUؼG``KI~(\ <(BKw>.C|3pu^V/Y"Q7fVgVkPoOUuk=ְ٨&|R0Rz5*WkSx|ZED endstream endobj 2113 0 obj << /Length 171 /Filter /FlateDecode >> stream x363P0P0W5T06Q06PH1*22 (Bds≮=\ %E\N @BA, v ?0`~~0lob{:$ +fla`>PjX#'W X16 endstream endobj 2114 0 obj << /Length 203 /Filter /FlateDecode >> stream x5; @ )Ӥ4 Q>VbBs#lF jmCM|`sQ > эtޏNVStF[a<#Xo ZZjJ3J,z ^Ҿ%Q iJ 7"%@67-kVuJRSv"g(m% 8qLt endstream endobj 2115 0 obj << /Length 181 /Filter /FlateDecode >> stream x]= @F4{3Ib!bSZYZZ(r!e 1YGr8SV0&o)bŷD^9T  4VY(keMk5\k0@oPI ?/-ڦ0HwŚg ߐm̝1 endstream endobj 2116 0 obj << /Length 187 /Filter /FlateDecode >> stream xe; @_,:и>SE+PI> stream x51n@om4>`mc $ HPQD2EP!R.#lF3o?͟di JiO endstream endobj 2118 0 obj << /Length 198 /Filter /FlateDecode >> stream x-=@ l@ hU I0Vj)D. ӹ,%K,Lgy?p؋ԧ_(>>E#8MR~z@99o+[UΗV(E*ý*Dn!R' [CⶂG䐳ɸ6 dq?F endstream endobj 2119 0 obj << /Length 186 /Filter /FlateDecode >> stream xu= @')S$\@7WVbB׊772b0Prr^ҙdC)/IY&$:&Q.zH)Ko$[* x@vFha+iI@uh;; /Mf³YXpcih@V|- endstream endobj 2120 0 obj << /Length 218 /Filter /FlateDecode >> stream x-1JA3:lbbeREZy +;0f)=oP+e$G F2<\Nbp5w<]I9awcv/=M}?yXfI5;Q[j-~^A|V% O endstream endobj 2121 0 obj << /Length 161 /Filter /FlateDecode >> stream x%̱ 0[Pj3:9: *S 0!g W%V8HTxpm,L Gm@e7|.5tt۠heI(bB|\$dW0Q7iI*-}}; endstream endobj 2122 0 obj << /Length 232 /Filter /FlateDecode >> stream xMJ@f1p7yLR4Z,r!ԥE!j|)7Y։oq='eywSy6ʳjf%%g(]p|r(+=kpvm]`ak?BŋU6h/ V-^ ytBE}%b&b#BiWʄ=;& 4,oM`HtZ҂>b endstream endobj 2123 0 obj << /Length 201 /Filter /FlateDecode >> stream x=ɽjA#[ f_@qgElA d A+ RK! ,YHa3싌o0bŢ^֏SméD%s+2'Mq6ިϲ<5g XE<^Dd7\c%'^(<*%@F5C8+lrUaGEo*4zhLWFL endstream endobj 2124 0 obj << /Length 174 /Filter /FlateDecode >> stream x==@![l򚽁 (?k D ,ZZh#8 GؒKH(IfFGe>xX| AalGu0>;eyGcv&l{Χ39CDUdQF4R1b L!n[ J(XC9J֐?t?Qp< endstream endobj 2125 0 obj << /Length 213 /Filter /FlateDecode >> stream xE1jAoXp5s.gYDA dV)UL1]R9v^c;ۅ4c5zIcv<W>'RcN|3$%>!,lךd>eGvo%3P@KaoN&D?rL05 &ѭ I-AUMUE`PHk[ܨzJiAyRL endstream endobj 2126 0 obj << /Length 165 /Filter /FlateDecode >> stream x3630U0P0S5T06Q06PH1*22 (Bds<̹=\ %E\N @BA,{ 6?@G ~13?`v>00Pl2@>76 endstream endobj 2127 0 obj << /Length 166 /Filter /FlateDecode >> stream x%; @YR,L& VbB:h{=”)qBkG^%<-0˥hIJLY^jL}&qK+XJXWÏ i'6¸¸Ӄ}p )nU"]C /x?t80 endstream endobj 2128 0 obj << /Length 166 /Filter /FlateDecode >> stream x%1 @ )S H f , n!he!Vjih'(9BJ !W|I14%txGYS|Z8,PlLF|(݊$` PZm/q ֳXl4|-V&"qq3 endstream endobj 2129 0 obj << /Length 185 /Filter /FlateDecode >> stream x332Q0P0S5T0T06PH1*26 (Bds<=\ %E\N @BA, r 525 ,j~Tqa@~`3!;@@`X0?|:\\\F endstream endobj 2130 0 obj << /Length 179 /Filter /FlateDecode >> stream x5= @YXB/d.YtB` A+ RK!B9zS4Z<~6MShBØlD/Yᖒe1,VtOf9u;]LS/6vZKY+)_JU̝g J{֍q^~0KA43pQ?@ endstream endobj 2131 0 obj << /Length 222 /Filter /FlateDecode >> stream xMαJAba Bn^@.w&@Vb%(\f|2LbYy9˜_ ZR50/o4){jDٍƔշxl~wź/,\D.:Q$ҪNJgԸ3V( 5:q 8!~S^vN;[X?C͍0 H﷾=0'@5Q endstream endobj 2132 0 obj << /Length 183 /Filter /FlateDecode >> stream x36ҳ0U0P0Q5T06S06PH1*26 ()Lr.'~8PKLz*r;8+. @=\. v`>~O;:>urd?0`~ 0?7 |[03XXq=C~ 7TՓ+ :| endstream endobj 2133 0 obj << /Length 205 /Filter /FlateDecode >> stream xEʱjAoba{q^!WIBLJޓM7r 1=󛅝ɋ<Ǭ|y}Td\V }|pFvˌUS x=܃åt{.*|+W^:2^#Ya# Ɛ!\g9(q4(#9*zP endstream endobj 650 0 obj << /Type /Font /Subtype /Type3 /Name /F42 /FontMatrix [0.01506 0 0 0.01506 0 0] /FontBBox [ -1 -17 59 50 ] /Resources << /ProcSet [ /PDF /ImageB ] >> /FirstChar 40 /LastChar 121 /Widths 2134 0 R /Encoding 2135 0 R /CharProcs 2136 0 R >> endobj 2134 0 obj [29.14 29.14 0 0 0 25.49 0 0 0 0 0 0 0 0 0 0 0 0 21.85 0 0 0 0 0 0 0 0 50.99 53.75 48.29 0 55.1 0 27.38 0 0 0 0 52.88 0 0 0 0 40.06 50.99 0 0 0 0 0 0 0 0 0 0 0 0 36.42 32.78 32.78 36.42 32.78 21.85 32.78 36.42 21.85 0 32.78 18.21 58.27 40.06 36.42 36.42 0 30.05 29.14 23.67 38.24 32.78 47.35 32.85 34.6 ] endobj 2135 0 obj << /Type /Encoding /Differences [40/a40/a41 42/.notdef 45/a45 46/.notdef 58/a58 59/.notdef 67/a67/a68/a69 70/.notdef 71/a71 72/.notdef 73/a73 74/.notdef 78/a78 79/.notdef 83/a83/a84 85/.notdef 97/a97/a98/a99/a100/a101/a102/a103/a104/a105 106/.notdef 107/a107/a108/a109/a110/a111/a112 113/.notdef 114/a114/a115/a116/a117/a118/a119/a120/a121] >> endobj 2136 0 obj << /a40 2099 0 R /a41 2100 0 R /a45 2102 0 R /a58 2101 0 R /a67 2103 0 R /a68 2104 0 R /a69 2105 0 R /a71 2106 0 R /a73 2107 0 R /a78 2108 0 R /a83 2109 0 R /a84 2110 0 R /a97 2111 0 R /a98 2112 0 R /a99 2113 0 R /a100 2114 0 R /a101 2115 0 R /a102 2116 0 R /a103 2117 0 R /a104 2118 0 R /a105 2119 0 R /a107 2120 0 R /a108 2121 0 R /a109 2122 0 R /a110 2123 0 R /a111 2124 0 R /a112 2125 0 R /a114 2126 0 R /a115 2127 0 R /a116 2128 0 R /a117 2129 0 R /a118 2130 0 R /a119 2131 0 R /a120 2132 0 R /a121 2133 0 R >> endobj 2137 0 obj << /Length 137 /Filter /FlateDecode >> stream x3632W0P0bcCcCB.# I$r9yr+p{E=}JJS ]  b<]0`10~` vd,7F endstream endobj 2138 0 obj << /Length 178 /Filter /FlateDecode >> stream xu1 @E Fc@` A+ RK E;=Z,S:ٵ^5?ј5 :I9~HEEj&%5;j@XNِ*ycXo*EXW#ot Oؖ-pw/GW_rQHt"u;@fKV/9- endstream endobj 2139 0 obj << /Length 173 /Filter /FlateDecode >> stream xu1 @EX FbVj)hk<#XZq38%S֜0$I{Cg2 5IHvG*- BƤ쒯ہT!UqmXoV|Z4@;DOD/>{ O,<:!a3\ſ?g)D$:Z 4h- 6 endstream endobj 2140 0 obj << /Length 166 /Filter /FlateDecode >> stream x=!@E OvK+IJIXA APD@@G( y?, xx_ay)];rجlBل.M±iq[ H4eD×MgT'L;u Bt3ۿ;< /7k5& endstream endobj 2141 0 obj << /Length 96 /Filter /FlateDecode >> stream x3632W0P04Q5S02T01SH1*2 (Aes≮=\ %E\N \. ц \. H\\\2D7 endstream endobj 2142 0 obj << /Length 167 /Filter /FlateDecode >> stream x-1 PDW,m> stream x3632W0P04V5S06V01SH1*2(As< -=\ %E\N \. ц \. ``@1@qzrrVT endstream endobj 2144 0 obj << /Length 114 /Filter /FlateDecode >> stream x3632W0P0R5S02R01SH1*2 (Ads< -=\ %E\N \. ц \. ?``HTs 1\=qQ endstream endobj 2145 0 obj << /Length 151 /Filter /FlateDecode >> stream x3632W0P0Q5S06T01SH1*22 (Ads≮=\ %E\N \. ц \.  ?qA=˃p?``` 0)2f>`3\={3k endstream endobj 2146 0 obj << /Length 159 /Filter /FlateDecode >> stream x3632W0P0V5S06R01SH1*2 (Ads<,=\ %E\N \. ц \. ``bv0~7偸?@lH\nVvA~Փ+ D endstream endobj 2147 0 obj << /Length 162 /Filter /FlateDecode >> stream x3632W0P0V5S06R01SH1*2 (Ads<,=\ %E\N \. ц \. ?@䁘\ 4 ?00B1 ɁՐi>m@7 r3@?;E{ endstream endobj 2148 0 obj << /Length 102 /Filter /FlateDecode >> stream x3632W0P0Q5W06T5TH1*22 (A$s≮=BIQi*S!BA,B ?Ab\\\& endstream endobj 2149 0 obj << /Length 107 /Filter /FlateDecode >> stream x3632W0P04F &F )\\@HrWr{*r;8+r(D*ry(13o 02@5$:y5 endstream endobj 2150 0 obj << /Length 132 /Filter /FlateDecode >> stream x3632W0P04R0P02U01TH1* 1T*9ɓK?s{*r;8+r(D*ry(37P?`Bf| 1`(`r y)6 endstream endobj 2151 0 obj << /Length 157 /Filter /FlateDecode >> stream x3632W0P0Q0S06T06UH1*22(Y%s≮=\ %E\N \. ц \. r `,@Fៜy 7 `A@A@C6Փ+ 2 endstream endobj 2152 0 obj << /Length 111 /Filter /FlateDecode >> stream x3632W0P0R0U06V06UH1*26PAcDr.'~8ϥ&=}JJS ]  b<]?Ș` Փ+ N7 endstream endobj 2153 0 obj << /Length 120 /Filter /FlateDecode >> stream x3632W0P04RеT02QTH1*24 -2ɹ\N\ \@q.}O_T.}gB4PS,<}Ch@;?P.WO@.]# endstream endobj 2154 0 obj << /Length 96 /Filter /FlateDecode >> stream x3632W0P04F )\\@NrW %E\N \. ц \. v `Փ+  endstream endobj 2155 0 obj << /Length 154 /Filter /FlateDecode >> stream x3632W0P0Q5S06T01SH1*22 (Ads≮=\ %E\N \. ц \.  |yf`{ : ?@?@03?10#3Lc\=Q3k endstream endobj 2156 0 obj << /Length 103 /Filter /FlateDecode >> stream x3632W0P04F F )\\@HrWr{*r;8+r(D*ry(13oz;S'W R# endstream endobj 2157 0 obj << /Length 131 /Filter /FlateDecode >> stream x3632W0P04RеT02Q0TH1*24([@s< =\ %E\N @QhX.Oy0h π@=@؁ 00pzrr{, endstream endobj 2158 0 obj << /Length 108 /Filter /FlateDecode >> stream x3632W0P0R04R06V0PH1*26PAC3Lr.'~PKW4K)YKE!P E >M-'W i7 endstream endobj 2159 0 obj << /Length 135 /Filter /FlateDecode >> stream x3632W0P04T02V02Q01SH1*24!Rɹ\N\ F\@.}O_T.}gC.}hCX.O?` or  7+ endstream endobj 2160 0 obj << /Length 151 /Filter /FlateDecode >> stream x3632W0P0T02V06Q01TH1*26 - 2ɹ\N\ F\@a.}O_T.}gC.}hCX.Oy 0?`/?{?P'H?00?``<2 endstream endobj 2161 0 obj << /Length 101 /Filter /FlateDecode >> stream x3632W0P0S04R0T04WH1*22 (B$s<=L=}JJS ]  b<]\\\ endstream endobj 2162 0 obj << /Length 151 /Filter /FlateDecode >> stream x3632W0P0T02V06Q01TH1*26 - 2ɹ\N\ F\@a.}O_T.}gC.}hCX.O v?`oG? @? `0g`G4 endstream endobj 2163 0 obj << /Length 101 /Filter /FlateDecode >> stream x3632W0P0S04R0T04WH1*22 (B$s<=L=}JJS ]  b<]\\\ endstream endobj 2164 0 obj << /Length 108 /Filter /FlateDecode >> stream x3632W0P0W02R0P01RH1*22PA#Lr.'~8PKLz*r;8+r(D*ry(T0>;Q  2`8qv6 endstream endobj 2165 0 obj << /Length 145 /Filter /FlateDecode >> stream x3632W0P0bccCCB.crAɹ\N\ \@Q.}O_T.}g E!P E+#C?0 3~c ca`?+fn(`r y^ endstream endobj 2166 0 obj << /Length 209 /Filter /FlateDecode >> stream xe=0Q MA0sp HRQ *A()ǂVyyk}L;v3]%4Ck/}Nlffl&?lCM،thb$"TWjO*C {ΊJ҃?Y3DQ(R :Gxyÿ'; W놽.p<;^X endstream endobj 2167 0 obj << /Length 214 /Filter /FlateDecode >> stream x%1N0бRXf8٥Y%ҲH@Q%h(>DVxd}}o垯ot-Kv}]޿8}aע}(5>C{׎7NLMKDaK&d|5 Rac`|R@HDj)ť !SR٬j܈t8h+LaM0y54'|ca5 endstream endobj 2168 0 obj << /Length 208 /Filter /FlateDecode >> stream xe=AK *#t`Gp@@\C]`X}gx|:2#NKL61YrI?L/R=mFa;@_16owP + uaVpw^~D5\pcZ~?<5>y e` endstream endobj 2169 0 obj << /Length 213 /Filter /FlateDecode >> stream x-αJAR ;/{{S[B*Xe{([n8_ e{]r-_7?> stream xM̱JA wp 1WZ+P,\:żA^a)[/^ >~q^]r=+~. }iyzen;@w3[x|A݊J.Y1D`LN;?B)uNM&1m#`) 5a#hJ 1ic&hls04+dvx=Y endstream endobj 2171 0 obj << /Length 165 /Filter /FlateDecode >> stream x}1 P6=Ob2# A+ RK E;!9?GH\x3L#NUb85|2t8}/TX wgtЮ~{),6 ^pt [@< *Z51^yA9HU=t-4 endstream endobj 2172 0 obj << /Length 158 /Filter /FlateDecode >> stream x3632W0P0bcc#CB.crAɹ\N\ \@Q.}O_T.}gC.}hCX.O `,|5?G f`?30?8>,`?0 szrr'R endstream endobj 2173 0 obj << /Length 161 /Filter /FlateDecode >> stream x3632W0P0bc#CCB.#K I$r9yr+Yr{E=}JJS|hCX.O?0po`83T~> f񃿁 @t.WO@.KeL endstream endobj 2174 0 obj << /Length 190 /Filter /FlateDecode >> stream xڍ=0 ]uGi"" & Pz!#H#t8P#)~BL6Ř3챨P.I(,ft:w(%X1ِWotZ B`/]A^{GkDǝs "8p/.S endstream endobj 2175 0 obj << /Length 160 /Filter /FlateDecode >> stream x3632W0P0bc#CCB.crAɹ\N\ \@Q.}O_T.}g E!2E? Py fA25Db$} s@1C1 {Aq\= XS endstream endobj 2176 0 obj << /Length 131 /Filter /FlateDecode >> stream x3632W0P0bcCCB.cC I$r9yr+r{E=}JJS|hX.OȘ.b#˃3 c ÆC\=M\( endstream endobj 2177 0 obj << /Length 134 /Filter /FlateDecode >> stream x3632W0P0bccCCB.c1s< =\ %E\N @B4Pe,B` f@`> G11> stream xuα @ A>^űP+x8[}M r`Z&ː@4SH1M"ҚN^Q+x̠ڑQ1*qFmiQx@ȗ4> stream x3632W0P0bcCCB.c# I$r9yr+q{E=}JJS|hX.O >T3{\=c endstream endobj 2180 0 obj << /Length 98 /Filter /FlateDecode >> stream x3632W0P0bcCCB.#c I$r9yr+s{E=}JJS|hCX.O!#!4\= >| endstream endobj 2181 0 obj << /Length 138 /Filter /FlateDecode >> stream x3632W0P0V5T06R01TH1*2 (Ads<,=\ %E\N \. ц \. 0 >=p : C` r  \=55 endstream endobj 2182 0 obj << /Length 177 /Filter /FlateDecode >> stream x== @4s *v4),J--h9a [dywadN5qlb vjbVrT~{9ouh|"҆M?BR $ А `5@Xu2(-vxM ճC^I-Ж6N|-T?J endstream endobj 2183 0 obj << /Length 113 /Filter /FlateDecode >> stream x3632W0P0bccCCB.crAɹ\N\ \@Q.}O_T.}g E!P E 9 ?\=f*H endstream endobj 2184 0 obj << /Length 144 /Filter /FlateDecode >> stream x3632W0P0bcCCB.c# I$r9yr+q{E=}JJS|hX.O 3=`r| 2r66,cQ!'W|@0Ar  ZM endstream endobj 2185 0 obj << /Length 165 /Filter /FlateDecode >> stream x3632W0P0bccCCB.crAɹ\N\ \@Q.}O_T.}g E!P E0 b(b9(b~$ތ̇C0b(bk0`y(\={Sq endstream endobj 2186 0 obj << /Length 150 /Filter /FlateDecode >> stream x3632W0P0Q5T06T01RH1*22 !2ɹ\N\ Ff\@a.}O_T.}gC.}hCX.Oa0oocoa? ~0a] {Ar} wrzrrW]U endstream endobj 2187 0 obj << /Length 157 /Filter /FlateDecode >> stream xڍ-A  HjBeIA AP,?G(a ByM}m9{PFn)V^.'-NJSriH^]`԰HgD^ *ag l~yiwz?`,ZGo 2-m T endstream endobj 2188 0 obj << /Length 176 /Filter /FlateDecode >> stream x3632W0P0QеT06T01RH1*22 (Bds≮=\ %E\N @BA, 0`?77170?ةA5@C}[@@X\=f endstream endobj 2189 0 obj << /Length 187 /Filter /FlateDecode >> stream x}10 PiňTD$02`N6Fp8B!N'*'IH(txF24 ņBpk咮EDQVRò m+ke,f"cX9"&|;_--Ggܙy]G/cz6]\?@8/q_] endstream endobj 2190 0 obj << /Length 204 /Filter /FlateDecode >> stream xM1j@oT4HVZ݂@T*EH4ncA.GJBh4. T[B+)Z{}/e/~ɰк߼meՈ{VX\ㇸӝRj*Zamb?159:EB#8 'd@Dr2ڀ9P)%|}7[B4A0vs:}#2b endstream endobj 2191 0 obj << /Length 123 /Filter /FlateDecode >> stream x3632W0P0bccCCB.crAɹ\N\ \@Q.}O_T.}g E!P EA,0?\\\YN endstream endobj 2192 0 obj << /Length 144 /Filter /FlateDecode >> stream x3632W0P0T5T06Q01TH1*26 (Ads<=\ %E\N \. ц \. G h01 Xg` 'W m[{ endstream endobj 2193 0 obj << /Length 158 /Filter /FlateDecode >> stream x3632W0P0T5T06Q01TH1*26 (Ads<=\ %E\N \. ц \. A| ~2FCءb@?? 00r J endstream endobj 2194 0 obj << /Length 165 /Filter /FlateDecode >> stream x3632W0P0T5T06Q01TH1*26 (Ads<=\ %E\N \. ц \. 0G6 6 lP#P?U1\8c}-*!y8!?3~o`|S\ endstream endobj 2195 0 obj << /Length 180 /Filter /FlateDecode >> stream xEα 0+['0i NVmGȘR9533h)+*I~8EbGJX+jM㌢,sI><02sD4L 키 9چ? 3BuIhB?>-~.V endstream endobj 2196 0 obj << /Length 166 /Filter /FlateDecode >> stream xڕʱ 0+rO`ڦVV08[>Z1CiM,;lF )OU;  Tr(eYuE/+43qĖr9ހ t "xzُ݈ o\jE endstream endobj 2197 0 obj << /Length 174 /Filter /FlateDecode >> stream xڅ= @Y, ( n!he!Vjih=ZGB\_t_fYDA&T.)9+!+ Yz)kue]V\1Ħ2ׅ\C1L{ Z&yp:P?u;=XKHk{W endstream endobj 2198 0 obj << /Length 168 /Filter /FlateDecode >> stream x-̽ 0>B LP)P+AAA9>cR~p;Κ9Vhkr+tm f-S0~.Q= *4qI9bH+MjT  3B-). #-%$s|;tI endstream endobj 2199 0 obj << /Length 171 /Filter /FlateDecode >> stream x3632W0P0bccCCB.c1s< =\ %E\N @B4Pe,P1;>| ``0@:(Âj>0PH?`@~?s.WO@.eT endstream endobj 2200 0 obj << /Length 162 /Filter /FlateDecode >> stream x3632W0P0bcC#KCB.#1s<L=\ %E\N \. ц \. a`XA=}C=C=CX0LS|zy'W 7 endstream endobj 2201 0 obj << /Length 172 /Filter /FlateDecode >> stream xu-0ǻL<#은r $H,Zq9biy]0$ ~G|.PSpXgA`{ʀ\V g4s<.{bk\dF!|7EAR=SٔdEJWt ~y馼+yol?ǿ]NޔL[ endstream endobj 2202 0 obj << /Length 170 /Filter /FlateDecode >> stream x] 0E_xK?! L")P+AAAѵͧS Dpz>*NhtxoW銭EA-*yAnQutTv9O `v587PD"D?D0A9J|upeq.L endstream endobj 2203 0 obj << /Length 143 /Filter /FlateDecode >> stream x3632W0P0bcCCB. HrW02r{*r;8+. ц \. 0@l0ر`c`@7 j(cՓ+ @ endstream endobj 2204 0 obj << /Length 214 /Filter /FlateDecode >> stream xU=n@4 -w.f 4HqT)A$[X+>=Ɯ!۔f<ݬ͎f9%l3J^U$_pdªy5s:.!_MWHa~”E:Su@I #ABФ?_Fr"@@;^p6kʎ4EN ZH endstream endobj 2205 0 obj << /Length 144 /Filter /FlateDecode >> stream x3632W0P0bcCCB.c# I$r9yr+q{E=}JJS|hX.O bv|o`G\=<[ endstream endobj 2206 0 obj << /Length 119 /Filter /FlateDecode >> stream x3632W0P0bcC#CB.# I$r9yr+p{E=}JJS ]  b<],"ؑ@6'W w2 endstream endobj 2207 0 obj << /Length 144 /Filter /FlateDecode >> stream x3632W0P0V54U02U01RH1*22(Cs< =\ %E\N @QhX.O ?PP01 ba? ?`'W \O endstream endobj 2208 0 obj << /Length 177 /Filter /FlateDecode >> stream x}1 @Ѕ)ir l6b#X6XXzs),ZY<^7SDE{1GX05(cnQ)-t6"-yBQ^W/Bg;Ze#R VnVkxS> aP9~cs|"Xj endstream endobj 2209 0 obj << /Length 112 /Filter /FlateDecode >> stream x3632W0P0bc#CCB. HrW02r{*r;8+. ц \. Gz f8\?aՓ+ Ϩ0m endstream endobj 2210 0 obj << /Length 148 /Filter /FlateDecode >> stream x3632W0P5f F )\\@`\.'O.p.}0BIQi*S!B4Pe,B<0H2?'8`@?? b\\\cMa endstream endobj 2211 0 obj << /Length 137 /Filter /FlateDecode >> stream x3632W0P0bc#KCB.c# I$r9yr+q{E=}JJS ]*c<]7a??`H?#a\\\R_ endstream endobj 2212 0 obj << /Length 165 /Filter /FlateDecode >> stream x3632W0P0bcC#KCB.#3 I$r9yr+q{E=}JJS ]  b<]?``cogcgcoao;V a:z{  2d>.WO@.=D endstream endobj 2213 0 obj << /Length 178 /Filter /FlateDecode >> stream x3632W0P0T54U06V0TH1*26(@s< =\ %E\N @QhX.O` |:: ;<7~P=Q?L^s endstream endobj 2214 0 obj << /Length 194 /Filter /FlateDecode >> stream xڕ= @49tlXb+P5/o2)l,l o< GhGa؞6{L4%)rjszFy2G'o:%oy2t͛1!.C.åa( _ NۨWqnl?j^w;Ru$3col \b endstream endobj 2215 0 obj << /Length 142 /Filter /FlateDecode >> stream xڍ; AЎ+ }燈麂(+G(a1 FC?f˾'5&¬9XywYNql-ࡒDE4'L*Jz#R"?OsՎY o"G endstream endobj 2216 0 obj << /Length 160 /Filter /FlateDecode >> stream x1 @D*77@VbBmM> stream x3632W0P0bc 2WH1* \.'O.p#s.}(BIQi*S!BA,Cܸazp0?10a``BJ( endstream endobj 2218 0 obj << /Length 127 /Filter /FlateDecode >> stream x3632W0P0bc#KCB.c# I$r9yr+q{E=}JJS ]*c<]72f?L!fb`?'W nN endstream endobj 2219 0 obj << /Length 155 /Filter /FlateDecode >> stream x3632W0P0bcc#KCB.crAɹ\N\ \@Q.}O_T.}gC.}hCX.Oc Px??g`| >@ `X```o`r ; endstream endobj 2220 0 obj << /Length 154 /Filter /FlateDecode >> stream x3632W0P0bc#KCB.c# I$r9yr+q{E=}JJS ]*c<]?C? ?>`D+0|=GA&szrrH endstream endobj 2221 0 obj << /Length 170 /Filter /FlateDecode >> stream x3632W0P0bcc#KCB.crAɹ\N\ \@Q.}O_T.}gC.}hCX.O@@5 ?j>00?``b@alC X/9 AaՓ+ uF endstream endobj 2222 0 obj << /Length 183 /Filter /FlateDecode >> stream x] @ t^vuD CPѩ:}4GA]-~ qh$yS:xAIO&نGP{drI,YE%CҳfaJQi ф[}g*V3Gѳ4D@bѪ5qOD) endstream endobj 2223 0 obj << /Length 167 /Filter /FlateDecode >> stream xM1 @EX2'p b+T ģ(9–So?tgunv8^v!ZӮqIg*gVlw2Fj$] ѼXq$-`j|:\cI:i!S|--m 9M endstream endobj 2224 0 obj << /Length 180 /Filter /FlateDecode >> stream x3632W0P0V5T06R01RH1*2 (Cds<,=\ %E\N \. ц \. ``?ȳc`0\b1:03AB A.@r ¬R endstream endobj 2225 0 obj << /Length 131 /Filter /FlateDecode >> stream x3632W0P0bc#CB.#c I$r9yr+s{E=}JJS ]  b<]$lj? 0Q?.WO@. ;6 endstream endobj 2226 0 obj << /Length 188 /Filter /FlateDecode >> stream xM1@!$p.6AL0XF;#{4G҂0bWg<4ih:fxANه Ֆtj)WTՊn US]Fn dp֖LAZ\ C>¯   M/ˋ\!C=̞vpo W endstream endobj 2227 0 obj << /Length 198 /Filter /FlateDecode >> stream x== @X!sdn0X{%G#2| 7xhhƜr΃sÅcF2S.9iZ޲^L\z?g.tO**I'* xzy\?«N48=;z_B%jiPK|%͕(iC"S endstream endobj 2228 0 obj << /Length 173 /Filter /FlateDecode >> stream xu1Q(6>["J!* B'888R%d3ͬf䜶2]?k)JSu!WHwJl1i*T}* xD ХtA= wлD ]@uaA)yCB endstream endobj 2229 0 obj << /Length 178 /Filter /FlateDecode >> stream xڍ1 0' o]@Ӥ;5P+AAAh9JPqtt<J(TR&h/2aB K|M2G>1rz@^.$WlQWĜ\ 0 {~;V<r>bBހڄߌ] i\}IOh endstream endobj 2230 0 obj << /Length 201 /Filter /FlateDecode >> stream x== @ )2M6v ),J--BܣQr--B1 _}3xh&QA C#Chf4*/ J;2S+QkgԳ͜r \/ "fw'!I}?.)g"aʷNco=j-+~j?l/idGQSҗHo$AO\ endstream endobj 2231 0 obj << /Length 170 /Filter /FlateDecode >> stream xڅ1 @/49B݈bSZYZ Qh9J2E0Βvg; ly 5]Dvr8SڲH-%&vH9kR 4{J4MSW0SE V0prs]u TȣHiCC endstream endobj 2232 0 obj << /Length 189 /Filter /FlateDecode >> stream xeN; @"0Ms&b*1[ZYZZ(ډ(9B5b`x~hǔPJEL^ uޓ e;biPI(=,rP))m%[4A -?!D!o DN@*>o;n+wFaBY^[Yw _Y endstream endobj 2233 0 obj << /Length 209 /Filter /FlateDecode >> stream xMαJA?\qa}0{1BVb_lGHqbR5Ӝ/WYMe(,x7On)s\QB{/ַ\SC#Fʀ ݣ N~d-\PŁ7lQ'I9W'H;~ s7}OH_FGx`M]tGN^- endstream endobj 649 0 obj << /Type /Font /Subtype /Type3 /Name /F41 /FontMatrix [0.01506 0 0 0.01506 0 0] /FontBBox [ -1 -16 36 46 ] /Resources << /ProcSet [ /PDF /ImageB ] >> /FirstChar 16 /LastChar 237 /Widths 2234 0 R /Encoding 2235 0 R /CharProcs 2236 0 R >> endobj 2234 0 obj [35.27 35.27 0 0 0 35.27 0 0 0 0 0 0 0 0 0 0 0 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 0 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 35.27 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 35.27 ] endobj 2235 0 obj << /Type /Encoding /Differences [16/a16/a17 18/.notdef 21/a21 22/.notdef 33/a33/a34/a35/a36/a37/a38/a39/a40/a41/a42/a43/a44/a45/a46/a47/a48/a49/a50/a51/a52/a53/a54/a55/a56/a57/a58/a59/a60/a61/a62/a63/a64/a65/a66/a67/a68/a69/a70/a71/a72/a73/a74/a75/a76/a77/a78/a79/a80/a81/a82/a83/a84/a85/a86/a87/a88/a89/a90/a91/a92/a93 94/.notdef 95/a95/a96/a97/a98/a99/a100/a101/a102/a103/a104/a105/a106/a107/a108/a109/a110/a111/a112/a113/a114/a115/a116/a117/a118/a119/a120/a121/a122/a123/a124/a125 126/.notdef 159/a159 160/.notdef 237/a237] >> endobj 2236 0 obj << /a16 2162 0 R /a17 2160 0 R /a21 2163 0 R /a33 2149 0 R /a34 2164 0 R /a35 2165 0 R /a36 2166 0 R /a37 2167 0 R /a38 2170 0 R /a39 2150 0 R /a40 2138 0 R /a41 2139 0 R /a42 2151 0 R /a43 2152 0 R /a44 2153 0 R /a45 2161 0 R /a46 2154 0 R /a47 2155 0 R /a48 2224 0 R /a49 2225 0 R /a50 2226 0 R /a51 2227 0 R /a52 2228 0 R /a53 2229 0 R /a54 2230 0 R /a55 2231 0 R /a56 2232 0 R /a57 2233 0 R /a58 2156 0 R /a59 2157 0 R /a60 2140 0 R /a61 2158 0 R /a62 2142 0 R /a63 2171 0 R /a64 2168 0 R /a65 2172 0 R /a66 2173 0 R /a67 2174 0 R /a68 2175 0 R /a69 2176 0 R /a70 2177 0 R /a71 2178 0 R /a72 2179 0 R /a73 2180 0 R /a74 2181 0 R /a75 2182 0 R /a76 2183 0 R /a77 2184 0 R /a78 2185 0 R /a79 2186 0 R /a80 2187 0 R /a81 2188 0 R /a82 2189 0 R /a83 2190 0 R /a84 2191 0 R /a85 2192 0 R /a86 2193 0 R /a87 2194 0 R /a88 2195 0 R /a89 2196 0 R /a90 2197 0 R /a91 2143 0 R /a92 2145 0 R /a93 2144 0 R /a95 2148 0 R /a96 2159 0 R /a97 2198 0 R /a98 2199 0 R /a99 2200 0 R /a100 2201 0 R /a101 2202 0 R /a102 2203 0 R /a103 2204 0 R /a104 2205 0 R /a105 2206 0 R /a106 2207 0 R /a107 2208 0 R /a108 2209 0 R /a109 2210 0 R /a110 2211 0 R /a111 2212 0 R /a112 2213 0 R /a113 2214 0 R /a114 2215 0 R /a115 2216 0 R /a116 2217 0 R /a117 2218 0 R /a118 2219 0 R /a119 2220 0 R /a120 2221 0 R /a121 2222 0 R /a122 2223 0 R /a123 2146 0 R /a124 2141 0 R /a125 2147 0 R /a159 2169 0 R /a237 2137 0 R >> endobj 2237 0 obj << /Length 98 /Filter /FlateDecode >> stream x323T0P0bC CCCB. m1K$r9yr\`W4K)YwQjtQgo? ogr \- endstream endobj 2238 0 obj << /Length 161 /Filter /FlateDecode >> stream x3133S0P0Q54W06W05PH1*26(Cs<=\ %E\N \. ц \. @@r@,6@l@\#jfon xA71hF3,ƀ1'W D- endstream endobj 2239 0 obj << /Length 106 /Filter /FlateDecode >> stream x323T0P0bC cCB.CC I$r9yr+r{E=}JJS. @-\. ? *.WO@.b, endstream endobj 2240 0 obj << /Length 93 /Filter /FlateDecode >> stream x3234T0P0T04R02V0TH1*2 (C$s< =̹=}JJS. @\. D\\\&W endstream endobj 2241 0 obj << /Length 234 /Filter /FlateDecode >> stream x]1N@EMi -  * DERR@HD)B\ ˟qhXrKv) _90(?l_xRq ِsRǜݕL1To ߮Զ$kbA[Rio]z.u%У\2gs[Dtn`PGsbH,Ӳ-.jggԺ:+_ endstream endobj 2242 0 obj << /Length 158 /Filter /FlateDecode >> stream x313P0P0b#3CB.rAɹ\N\ &\@Q.}O_T.}gC.}hX.O 30`0@,dH"?t(O?.WO@. ~ endstream endobj 2243 0 obj << /Length 145 /Filter /FlateDecode >> stream x313P0P0b#3CB.rAɹ\N\ &\@Q.}O_T.}gC.}hX.O?"?``?H0?  "Q4Փ+ endstream endobj 2244 0 obj << /Length 225 /Filter /FlateDecode >> stream xm͊0s#tn?{܃7Q#C8Ek fg:1/ܦ<>V.60`)jx9W)&k_t ],xK#\)bZAVucH|tSMl$^=1LdW̙j\ZyQU w-|[ endstream endobj 2245 0 obj << /Length 191 /Filter /FlateDecode >> stream x3537R0P0bS3CB.SrAɹ\N\ \@Q.}O_T.}gC.}hCX.O@DP @`P))XA h;#-0"܂j;hPD1¨DS Hڡ;Ly  .H􇁁Փ+ G} endstream endobj 2246 0 obj << /Length 240 /Filter /FlateDecode >> stream xڭ=nA a|]#X)[D J()@Pހ+(!gvIy_Xs*iE!P JQ/ -ѷt܎/Tоhd0 e"rgp;aM0Cˬ@tlG .AK3!!-hum/tJ0ըmjѡh*E{ff. -}T endstream endobj 2247 0 obj << /Length 181 /Filter /FlateDecode >> stream x3332Q0P0bS 3CB.S HrW05r{*r;8+r(D*ry( 00?0L1S@ S=LCب?T~Pu ԹPCdO  'W yҤ endstream endobj 2248 0 obj << /Length 151 /Filter /FlateDecode >> stream x3530V0Pa 3CB. I$r9yr+p{E=}JJS ]  b<]L RLIv0ɌD2r@$&$d" !P]rxII?\\\ֈ endstream endobj 2249 0 obj << /Length 227 /Filter /FlateDecode >> stream xڥбN02Dŏ{p#H-R)`b@̾GQ3DCW,K|w_\W[je\{{TLɛËtT0> stream xuбJ` ||C!K Z,Wpw&+JC*\:|4*KqJ1Ig)MܬpZ,Fw&Wt9mKtӋ%tPbN%+AP rF8{+od !j%V!@#D#la Lg+ a1"a 9`_x_ j endstream endobj 2251 0 obj << /Length 216 /Filter /FlateDecode >> stream xڥ=0 *y @D?`b@L=Z#td@; DI>( 4lL1-^0(;3N 4[h")VtOhY4sYJX f1ɳ@@YUCBG=uj CM\u@Д;_>H{iخ+.>Bt>H\7sƔ endstream endobj 2252 0 obj << /Length 157 /Filter /FlateDecode >> stream x3531S0P0bSC ;Ő7qAɹ\N\ &\@Q.}O_T.}gC.}hCX.O@pD! I DH @?$@C[l$'W d endstream endobj 2253 0 obj << /Length 212 /Filter /FlateDecode >> stream xڍб0[4BILtr0N>OLL%kz2\&C\BI x@dQbO.w G[^|߀g5 9g(rT:cKsTz5mw?3Rԡ9G+󜭳:47Fz?]Դ+3ef7jtTdžMD endstream endobj 2254 0 obj << /Length 230 /Filter /FlateDecode >> stream xM1N@Љ\XGعlV1IBpJ h7 {-3d=Ywo{q2V΂9Kx}L^yӱŒw7~s{)V Rj/ˍ1̠Qמ(';25ԊZq ,@"J%W3ӎXp&_'T4XlYT eD߰mg:~@ endstream endobj 2255 0 obj << /Length 171 /Filter /FlateDecode >> stream x1 @/)irYL!he!Vjih'y"8"Xyy0^ܵ솜t tq2$=%%;Gfk2OL>%Sr`A(:72@M*ࢱ6k-mF?I 7jPs endstream endobj 2256 0 obj << /Length 236 /Filter /FlateDecode >> stream xmϱJ@ )#d^@7 L!he!VzvGnm!e+>Yo˪B*(E#o%s`XwUIl{ڰ]=Hv-ϥ/ܭEuD_RuD''E@ D=`wf$ |S 2 RRg8o\#! h]d8Fs"B)mǏt endstream endobj 2257 0 obj << /Length 180 /Filter /FlateDecode >> stream x]α @ 'ZO)NZI7#t4AC|> stream x313P0P0b#3CB.c HrW0r{*r;8+r(D*ry(0```'3?? A@L!k4`7<} \=> stream x3634Q0P0acCB. \.'O.p KLz*r;8+r(D*ry(0c`!=QC}0HM`j0`h] \=D endstream endobj 2260 0 obj << /Length 178 /Filter /FlateDecode >> stream xڝ10 E]1T#' -[R$2 Ās>JБ!$NL0IuI~k> stream xM= @'LGȜd BVb-G#Ld`=)*]Vt.:je\NW =嚯(͆e]RCAꈦ!. e^ bH%>w=Lvo:6!ȳtJ<9 +;|NK! endstream endobj 2262 0 obj << /Length 141 /Filter /FlateDecode >> stream x32ѳ0U0P0bc#3CB.#K I$r9yr+Yr{E=}JJS ]  b<]70 C 0`?0C3`ljND\\\jV8 endstream endobj 2263 0 obj << /Length 223 /Filter /FlateDecode >> stream xuJ1GLo`4wW.'aW(Z>Z%fs8ˤ%ESK y#u+ c m'7.g_Adύ7;n;/}n9¿ hA*Њ% &d2d;ꬎzM ̖i-äK'L0ÙI?ތ?)u endstream endobj 2264 0 obj << /Length 145 /Filter /FlateDecode >> stream x313P0P0ac3CB.c HrW0r{*r;8+r(D*ry(0```'$0 1`%~%gr Cm endstream endobj 2265 0 obj << /Length 118 /Filter /FlateDecode >> stream x323T0P0b#CsCB.C3 I$r9yr+q{E=}JJS ]  b<]?`??`??B~(r xB endstream endobj 2266 0 obj << /Length 156 /Filter /FlateDecode >> stream x32ѳ0U0P5Q54V02P01WH1*22 (s<=\ %E\N \. ц \. 0a"@q,P`d1g? 1pzrraRD endstream endobj 2267 0 obj << /Length 177 /Filter /FlateDecode >> stream xڝ̽ 0H-y L: IGQu2Cy}&)Ƙq)c<$p:eOP 6K^nGj ;0VA?P"Btaeԝ6L.:g}aC~`#!/6[m5 endstream endobj 2268 0 obj << /Length 99 /Filter /FlateDecode >> stream x323T0P0b#C3CB.C3 I$r9yr+q{E=}JJS ]  b<]?B~PG2 endstream endobj 2269 0 obj << /Length 171 /Filter /FlateDecode >> stream x3337W0P0b3scCB.3# I$r9yr+q{E=}JJS ]  b<]`A??ԟ? @h? 0`HH?h.WO@.ނ endstream endobj 2270 0 obj << /Length 138 /Filter /FlateDecode >> stream x313P0P0accCB.c HrW0r{*r;8+r(D*ry(?Ag1`%~%gr Vc\ endstream endobj 2271 0 obj << /Length 170 /Filter /FlateDecode >> stream x3133S0P0bcKcCB.c HrW06r{*r;8+r(D*ry(0c`` 0`A}=8``?@Q4(@?0X  \=ձQM endstream endobj 2272 0 obj << /Length 179 /Filter /FlateDecode >> stream xڍ1 @ a=s]7B@Vb։7QrMqMD4`6!)24ֆ)EG4TQ`>crK&D9J~BQ&Ӥh.9猟梁5px=Yo3QKs@o_2k- endstream endobj 2273 0 obj << /Length 180 /Filter /FlateDecode >> stream x31ҳ4R0P0V54V01R06PH1*2(Cs<-=\ %E\N \. ц \. 0c?`@D H" Tm``Y  )?h'W d~o endstream endobj 2274 0 obj << /Length 135 /Filter /FlateDecode >> stream x3633T0P0a#cCB.# I$r9yr+Yp{E=}JJS ]ry(?c{P0'W VDw endstream endobj 2275 0 obj << /Length 174 /Filter /FlateDecode >> stream x-1 @/4;'p7 m\BBBQx!eu,^1LM̔ "qlҕDfӍ]pPH8JHdKڭ~{I3އl2F-^5ƽFxۗzIآAQ5PUI}<*JKG[> stream x3633V0P0b# #CB.#3 I$r9yr+q{E=}JJS ]*c<]lPp @ @,?$ #30co`'W $E endstream endobj 2277 0 obj << /Length 134 /Filter /FlateDecode >> stream x313P0P0accCB.c HrW0r{*r;8+r(D*ry(0`?t=-z8F a?\\\"Z[ endstream endobj 2278 0 obj << /Length 180 /Filter /FlateDecode >> stream x]= P )fO_A +P,rs!M~00q8sqǀ.%>ÙԖRZRŊoTs@*]A6pJGN W#X3`*'lUoܺ=` 2G61C endstream endobj 2279 0 obj << /Length 220 /Filter /FlateDecode >> stream xm1N@п4{0'`m+B"T)"*\rAn.p̂?Sɯ/cNJ&8(HNcWdלOȮdK -gd8}ra0YL K<:RZ^EԠ w  I~Ut;=P: :'T AZPZ bвh+ endstream endobj 2280 0 obj << /Length 185 /Filter /FlateDecode >> stream x]; PE#E`Y/B` A+ RK E;Ѹp#,L2kŚ;sqsn҈(h]tݑ&95'sݒ|9_d')Gd3Dn)XZH݁ӢSw?%| 'V6p;OK^=-ZusvUBj#M4iE&T endstream endobj 2281 0 obj << /Length 216 /Filter /FlateDecode >> stream x]αJAba{o^@+,J-- bQҤ8K ggF[=u^;g'ogL|=b{~&F??_.n/Չ]Q~G3 %Ay@ @œo`V$>nɆԛ_#.DL 2! ##̼ ?R9aRͅ/t TB?iS endstream endobj 2282 0 obj << /Length 115 /Filter /FlateDecode >> stream x3133S0PacSCB.# I$r9yr+Yp{E=}JJS ]  b<]000<szrr1R endstream endobj 2283 0 obj << /Length 201 /Filter /FlateDecode >> stream xmλQ Ab1y=s ;X[hhQ> /FirstChar 28 /LastChar 121 /Widths 2284 0 R /Encoding 2285 0 R /CharProcs 2286 0 R >> endobj 2284 0 obj [45.18 45.18 0 0 0 0 0 0 40.66 0 0 0 0 0 0 0 0 27.11 22.59 40.66 0 40.66 0 0 0 40.66 0 0 0 0 22.59 0 0 0 0 0 0 61.22 57.72 58.73 62.24 0 51.03 63.87 0 0 0 0 0 76.94 0 61.08 55.46 0 60.76 45.18 0 62.3 61.22 0 0 0 0 0 0 0 0 0 0 39.53 45.18 36.14 45.18 37.25 24.85 40.66 45.18 22.59 24.85 42.92 22.59 67.77 45.18 40.66 45.18 42.92 33.61 32.08 31.63 45.18 42.92 58.73 42.92 42.92 ] endobj 2285 0 obj << /Type /Encoding /Differences [28/a28/a29 30/.notdef 36/a36 37/.notdef 45/a45/a46/a47 48/.notdef 49/a49 50/.notdef 53/a53 54/.notdef 58/a58 59/.notdef 65/a65/a66/a67/a68 69/.notdef 70/a70/a71 72/.notdef 77/a77 78/.notdef 79/a79/a80 81/.notdef 82/a82/a83 84/.notdef 85/a85/a86 87/.notdef 97/a97/a98/a99/a100/a101/a102/a103/a104/a105/a106/a107/a108/a109/a110/a111/a112/a113/a114/a115/a116/a117/a118/a119/a120/a121] >> endobj 2286 0 obj << /a28 2242 0 R /a29 2243 0 R /a36 2241 0 R /a45 2240 0 R /a46 2237 0 R /a47 2238 0 R /a49 2282 0 R /a53 2283 0 R /a58 2239 0 R /a65 2244 0 R /a66 2245 0 R /a67 2246 0 R /a68 2247 0 R /a70 2248 0 R /a71 2249 0 R /a77 2250 0 R /a79 2251 0 R /a80 2252 0 R /a82 2253 0 R /a83 2254 0 R /a85 2255 0 R /a86 2256 0 R /a97 2257 0 R /a98 2258 0 R /a99 2259 0 R /a100 2260 0 R /a101 2261 0 R /a102 2262 0 R /a103 2263 0 R /a104 2264 0 R /a105 2265 0 R /a106 2266 0 R /a107 2267 0 R /a108 2268 0 R /a109 2269 0 R /a110 2270 0 R /a111 2271 0 R /a112 2272 0 R /a113 2273 0 R /a114 2274 0 R /a115 2275 0 R /a116 2276 0 R /a117 2277 0 R /a118 2278 0 R /a119 2279 0 R /a120 2280 0 R /a121 2281 0 R >> endobj 2287 0 obj [939 549 855 911 933 911 945 974 755 846 762 761 571 677 763 760 759 754 494 552 537 577 692 786 788 788 790 793 794 816 823 789 841 823 833 816 831 923 744 723 749 790 792 695 776 768 792 759 707 708 682 701 826 815 789 789 707 687 696 689 786 787 713 791 785 791 873 761 762 762 759 759 892 892 788 784 438 138 277 415 392 392 668 668 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 732 544 544 910 667 760 760 776 595 694 626 788 788 788] endobj 2288 0 obj << /Length 242 /Filter /FlateDecode >> stream xڍP1j@\`=AȪ Q+U2EB$+1-\ĐkteL&3c&ܓAyzyv-Ӝ흧ٖ߱?Jv!.B4 CԻSQ{j @3΀ɸu_(ဖF9⓼% #Q]n៺Ny:]h2ͩu\L=w˒W Zb endstream endobj 2289 0 obj << /Length 167 /Filter /FlateDecode >> stream x3635Q0P04P52V0P04SH1*24 ([s< ͹=\ %E\N \. ц \. ?0a QՃ aHAj1~``~|T'W 9 endstream endobj 2290 0 obj << /Length 106 /Filter /FlateDecode >> stream x3635Q0P04F f )\\@$2ɹ\N\@.}0PRTʥ`ȥm`@#\\\hE*a endstream endobj 2291 0 obj << /Length 116 /Filter /FlateDecode >> stream x3635Q0P04F )\\f  ,ɥ`hƥU()*Mw pV0wQ6T0tQ` OoG!\=nB endstream endobj 2292 0 obj << /Length 95 /Filter /FlateDecode >> stream x31ֳ0U0P0T02T06W06RH1*2  !2ɹ\N\ Ʀ\@a.}O_T.}g E!P E?< r WGz endstream endobj 2293 0 obj << /Length 210 /Filter /FlateDecode >> stream x풱@ 0tx &2`A>=@..,:r_{^4ICƸI¾uaw$=(r:_N1]&p eV+k]nC%0!$ؔ'lQ.1DP밨i􆀕RHO𤲀tԗ?m6 M?~f0T endstream endobj 2294 0 obj << /Length 223 /Filter /FlateDecode >> stream xӱn0`#HrOP' [%R3TuZsx&yT Xjw><?LF3k>m&Zb&RJ'/Ut1L|L) uUp)v -?@׌8;n=pOkq11Ecf՘1>KZ*t}w{7:y+}k(R Qtn endstream endobj 2295 0 obj << /Length 327 /Filter /FlateDecode >> stream xڕӿj0q%C `*B]WC:Nm-vG#dt&?RiD ~i]_\V;WzG*I꒚M dߑ%)YRtZ@m^HwYmVaܶbN4RbXMΔ\uNnnb| mbީLE捴]$ⱱ7!3ilz.2Ob'z>уt!򸴏97 טC.k&) 7Lʬ k ͹!!KkK!#ܥm<Fk(4J@?mG/c endstream endobj 2296 0 obj << /Length 267 /Filter /FlateDecode >> stream xڵ=n@Ǣ@f9Al%"C$SX+V*;eDIpJ zְ̊շy^O=JftॽEzKIzWQ+DXQ:]L@GjQPizV8Jy<_oSrJ^CoCK(vRਾB,|.WKuɡ`DuO6KN6_i JGT+ɭ KPJ~ s uy endstream endobj 2297 0 obj << /Length 338 /Filter /FlateDecode >> stream x͓?N@gC6QڸHaRK vF8%^0 Z-;;3|qvrXЧhsJL6~Em*iS^o*\R[}OT@WdR;Ȉ,QG9Ci 7rXK0A@$s;:>GOÔ11PVGG { r(ܑ  J}1*7S($;SheIL>oC^fi0ӤIΧ C4qHGnJ谬cC +{7Z۶> ࿢*E!en/ endstream endobj 2298 0 obj << /Length 258 /Filter /FlateDecode >> stream x1n0` x'b R"5SS۱Cd(9BFcWGRZ}l_Y1S#=e}EeEzYNzm6|<>I/O^捪ko?n>CK(I֪ov^سs`'rVr\w I˼ދ/np=g?;ؗ= 13rً E7Z1ӌk kmgj.=WMs endstream endobj 2299 0 obj << /Length 228 /Filter /FlateDecode >> stream xڕ= t y G('v3#NI4:(IӾH~iՍE[LK;nc<`gq\$A95(8;H(beYc6,wh*.9)"1RH HP+whyś(/*P#qRDҥLSc_擽P[+^& I)Jt*Jl)sŪJSN2\U\ endstream endobj 2300 0 obj << /Length 192 /Filter /FlateDecode >> stream xڳ033S0P0bs  #CB.sc I$r9yr+s{E=}JJS ]  b<]CbY ?00e1 Xp?g1YpUgYxY, Dp,y8be,^$'}TaAfRX\\\1=# endstream endobj 2301 0 obj << /Length 349 /Filter /FlateDecode >> stream xՓN0 ]uPU"D$02`nyMNIܻEJ8v?ϊ xc\=83,OݣZ*ƲR9UZ_Jt79f^! 5Dň6X;ЖuH@cN.|͎r.m@γۯF|=Mb ִ`]Üb{)$U2ئ' ÄcW|rƬ,e9sOx^cfu=z.{6S1;Ae&oVgۛ`_#7ğ)NG YmvM٭f !&\oVW ?! endstream endobj 2302 0 obj << /Length 123 /Filter /FlateDecode >> stream x340ҳ0Q0PaKK #CB.K1s<,M=\ %E\N \. ц \. AD!o`e b gS7\=b endstream endobj 2303 0 obj << /Length 105 /Filter /FlateDecode >> stream x331Q0P0bS #CB.C I$r9yr+r{E=}JJS. @-\. A(9TH:հ endstream endobj 2304 0 obj << /Length 344 /Filter /FlateDecode >> stream xڕӱN@%$sT$Ha:--4Zã(<qH  wlwUܘ\۳8μS{{ͷ>V:}6^vTՃy:=d:F]jQہVpe `)v⨇v⺁IH6G9͑줅9͑KD:KD:̈1adP[=xW5-7|1ĴN'ڬk%E{^K_= Ї\;"=a7o;uSRJ?[ endstream endobj 2305 0 obj << /Length 157 /Filter /FlateDecode >> stream x330T0P0bs #CB.3K I$r9yr+Yr{E=}JJS ]ry( 0!(c2~f0H`0fc0P<ƨ1C0;cC r 6n6 endstream endobj 2306 0 obj << /Length 311 /Filter /FlateDecode >> stream xڍԱN0o#O \<'H3D'㤎H GBI%)+,`z aJOJ}o 9ƙ={MyqB<>@<1f#q8&t3x=%T]_'V1 S>8|bGx ~ه_(Jf2Lc# ן8~w[stJptU,r,]#c},=3ֳTc)frLiGvKA;+DE 1]*YB8k ~oL endstream endobj 2307 0 obj << /Length 316 /Filter /FlateDecode >> stream xu1N0qG"yLJȀbF Rc@n@G*9~,d4iZZ?Vݣ^6RVyy~}ԺܘT܏R*<Vs[(;(rOηwp(X;уr,8=Sp`b dOx`Op4Lh }S8:S8^b ab`x'ܷ؂ ~|8'`5l8qN Xx> >kJ@ endstream endobj 2308 0 obj << /Length 209 /Filter /FlateDecode >> stream xڳԳ0U0P0b c #CB.s I$r9yr+[p{E=}JJS ]  b<]8J,fn0ªc5CX@Y bGb}e1ce H,ln~ #BBP`pb~Y 0SFY䱠I'W T4# endstream endobj 2309 0 obj << /Length 290 /Filter /FlateDecode >> stream xڵӱN `H&GJkNM3NIM{4"Rȍ%) ~ٜoK<+>Lcuz^aہxĦqkAtwb{%>X> stream x}ѱJ@?lv_@p] !p` A+ RK E;!hM7HqfwO`vv23)Vf0WI%X8=Uk3UqaUASSbmn*Sުvm| 82"7@б, }8$tHIR2>JJ =MT;4[6R׳ā~D}~k.:6ʃHϐDJwk81ۇ=Isz6WBJI7l:ahJ7Cަ85,φkVq< /XYd|vRJJ}I endstream endobj 2311 0 obj << /Length 176 /Filter /FlateDecode >> stream xڳ431W0P0b 3 CCB. rAɹ\N\ \@Q.}O_T.}g E!P E?!u?3bSWbWbWa1gXu0V6V eG,eƒ'c1%r C< endstream endobj 2312 0 obj << /Length 233 /Filter /FlateDecode >> stream x퓱 @ S:Y|]I(>BGLZD''|r7Ѧ;M CA> 0Ym՜՘eTфU8A5!hHpɾe PVr{y%رW Kp,+&uaJNEIM4y0犉%ޭ^ AlH4ȗ6eOE8`| endstream endobj 2313 0 obj << /Length 459 /Filter /FlateDecode >> stream xڭӱn0q p#/8$)PکCѩءE ,z=GPZNݸ[wUzmnݷZqu~}ӫOC^׫{w@g/z"Ew l셀;ii24> stream xڕJ@'LsL 'BB> stream xݑ=N@FJisX[N"GTPR; 9BJGZ0; Jifw<~EqUQAg9T )fT3j4wTN\IM}MoOhf7s,hSv`ځ_ hv= {H 񞡱B [r%kT3. 0=;  ڿv>;bC _\Af #c,'4/+;hq1h?7p% endstream endobj 2316 0 obj << /Length 243 /Filter /FlateDecode >> stream xڵN0/`?BdS` Heꀘh XI-#d`stgۿ~Iy)x 5_XQ&oG\7vWEF<z{O5 Tb!ȣO!2J`@;PP<;Gg3E9c̈*l09t / inm';)),bߘ^Jq݂zlgF endstream endobj 2317 0 obj << /Length 253 /Filter /FlateDecode >> stream xҽN0T"GȽu~n! & 7+Q!ʟĄd嗋l4\jU<sMo4HQ {N^Kls/dKɮꑚgʱw_ s=$p8E . (sׅ42*ȱ| ]6&ܴLpڋ_IHGN!X>] 7#f".F?^Q 3ҙ b= endstream endobj 2318 0 obj << /Length 244 /Filter /FlateDecode >> stream xڅJ1g"0M!`Dy[ZYZZ(ںy}<•aǙP1|?IO :1H=>cTPc;Ocw!^_[^ʙ;V8?dmgPj\Rq :dĄ* |Vbn;gE d1o( ؁ahDBc!D[o1En %in6N:\Z` æ]H_I<?y뭜 endstream endobj 2319 0 obj << /Length 175 /Filter /FlateDecode >> stream xн 0>B L*)j3:9vtPtnG#8f:M|~3z> stream xڥ?J@'X&G\@HBL!he!RK E֛L2ɮ9o[,Ƴw565>UU7v1.tqoYKtq ˣ|QђCDF"RcB|&;J e%wpU3B?O|G(^'f ]THد|X9/O8E.> stream x373P0P0bsC cCB.33 I$r9yr+q{E=}JJS ]  b<]0$0a aÐef0x:`P?H e00?C(v q'W l2 endstream endobj 2322 0 obj << /Length 138 /Filter /FlateDecode >> stream x3635Q0Pacc CB.# I$r9yr+Yp{E=}JJS ]  b<]``0f+ɃԂ 0a@\\\٥; endstream endobj 2323 0 obj << /Length 205 /Filter /FlateDecode >> stream xѽ @ ,>y;[hN⤎|>7cj+: ]IK7H(6%5x8&grajIqjZgP3:;T 1 5c+ p kQ)cH__#D[ v\o-!_ utòʈe2fx\ endstream endobj 2324 0 obj << /Length 243 /Filter /FlateDecode >> stream xѱJ@)nMD BzQ|-#w_Z˷euG|]KkhFrw[r??ܓ[]rKn7-74B,? X -,fXNpMV%\{`r_ |7fZlP \X~r['-pG NZpZY̊4_HWn$ endstream endobj 2325 0 obj << /Length 107 /Filter /FlateDecode >> stream x3635Q0Pac cCB.#K I$r9yr+Yr{E=}JJS ]  b<]0a\= endstream endobj 2326 0 obj << /Length 232 /Filter /FlateDecode >> stream xҽjA W#>WZL+vrp!ET+ -vXqt;';됱j-->xsiNY-gOّy+#CYEI O$Rx%4DJʤn ׮UH@Y$߸Np⧤D@(Ax^ 9Eۄip xviC endstream endobj 2327 0 obj << /Length 184 /Filter /FlateDecode >> stream xѱ@ & &]xHLtr0NUy{ጃ zw6d4JBGqlfiG{1+P)QEz@-ibc|!Pi ౮!`{.TV6ߡA_y48+po endstream endobj 2328 0 obj << /Length 231 /Filter /FlateDecode >> stream xڵ0kHnЂ0 &2`A3<#02^KL%!_s{I!.qa@CT9 +@P% 7 v+@x0> stream x͒N@ ]uG_.!MBH 02<Gx۹F:.˓"J:lN錞c|,5<WO(m(KѭEGWbtK=b$(#!@5@oJ 4{aŌfJ`o}4.lO%wm_mte4](z`_TU` endstream endobj 2330 0 obj << /Length 169 /Filter /FlateDecode >> stream x;0 t#' VbTD$02`nQzT dj20XY陞c+4xRps?aq@iA W<ix=   E^6ɱC:_:Wѫ}O_ /h m Ij^ endstream endobj 2331 0 obj << /Length 259 /Filter /FlateDecode >> stream x]1N@4;ۊB$\ Q%ڬ\vY)yTk.拊57 UIJ/Kn6O\k*ybx[~|nXp8HDF#々~7'QȔ^;LKZ+45qj@.dtv!"ieh֔j]dV絳Su ?hgcfKxhGZ endstream endobj 2332 0 obj << /Length 186 /Filter /FlateDecode >> stream x3534S0P0R5T01Q07SH1*21 (Cds<L =\ %E\N @QhX.OON2bH$;&=A$3?8HAN7PJ`$H `( E` qzrr:p endstream endobj 2333 0 obj << /Length 187 /Filter /FlateDecode >> stream x1 @   fl1[ZYZZ(Zkyt {O!(VhpZ0(j. 匴F91J3FNPf4W.dI K#ZX+ސ8 w6 .n N<sUv848n endstream endobj 2334 0 obj << /Length 252 /Filter /FlateDecode >> stream xڅбJ@YR#d^@7l 'BB+RgvE8X>Y؟/Η%YJyN^RaaB> stream xڕ1j@7Xx6l6@RXR%)S$$fB.2Ni!7.V?u~f*U+uW9o(fKUn*< ݖIu>?_dRLjG/zV!C؃@p` 'h'đv3k"t{O<8 F evb883MmH Є̎io“z>Ba"0i5s?hb8T0c00c*Cٻ1 i<8^gvJpi\DXו!) endstream endobj 2336 0 obj << /Length 270 /Filter /FlateDecode >> stream xڅN@EPL'~ >X<&ZY+h+| K$\gfX){ʪߗu%B-k_Weʡ/ϯ7/nyS壼'7e"0қ0Dr92DI-٨l+s@!٘b4Hfoq!C?I?b`6|tC t} lLD2r1uIU'TuIk*T%5P%5!.>Z/1 endstream endobj 2337 0 obj << /Length 310 /Filter /FlateDecode >> stream xڅ1N@б\XG\8M,  * D "To+l"0DQXO]yx:NbYٔOG8'M~ea חG/pl%ގqtg%Qm3 "Vϊ<X1f3j ԄMVl!ey o+ =̃Zy[coFG\{SZƛЦQ?䍉`߈=m;4M?l½};YTjĭjө IPZlklku釾2#}UJ.҆Rymaɽ endstream endobj 2338 0 obj << /Length 232 /Filter /FlateDecode >> stream xm1j@*x-"cUZp@R)b.X:#T!vRYH ~Y7zVƷY v_ԿQ[ݓ;N{{W߹ʭ޵۹[J0)\$x " LY$> LQ~ 3 afˈLXF,@' .L h22#戜#䑁rm\-jhp endstream endobj 2339 0 obj << /Length 229 /Filter /FlateDecode >> stream x͒1 @EG,is#Uew4c!r9_lD,lD[ΦB$:[RI9z% 7t | t}GI%EP_+M_*|u69X~ohFWjҚnD!> stream x3337W0P04  )\\&f  ,ɥ`bƥU()*Mw pV0wQ6T0tQ```c;0D0I~0Y"I ?&D(I"\=VI endstream endobj 2341 0 obj << /Length 301 /Filter /FlateDecode >> stream x}MJ0)YؖG_]x>.]W҅h=Je? گiftߟ ChÞ6 s/\knCs%ux^ߟ\s>k o@B,D'DdZ"-,-B/63"x甙k p7q|$pF暿 dL@AvZHFӬYM5k|,ZdIeb4j`Mg!@Tt`[Bͻ.A8Ew̕bԊW'bt7}t endstream endobj 2342 0 obj << /Length 305 /Filter /FlateDecode >> stream xڍN@LJlA gEr&ZY+h=> @IA烋 |gf.K xQz!eY^#[E{_o8_c#>UX>)EৣNGG#"qhfH8fEAEI=-Β%$#쵂H\Wfä hgcgݺi8iZG`s+,25\i`2[[E3)D/bZ1.8G IUuuR:X&oݴ]֯"Mߴo endstream endobj 2343 0 obj << /Length 225 /Filter /FlateDecode >> stream xڽнj0 ['Pt!tP2;4qh~?G$C@Bw&,+]po1}R28^~в$IF~{͒/wu|'ܯ8&旘knLM@;&ED-tw>5 pU/jh:؊,PW+D5^ԝhma#:YVp=Dӊb~9ag/uwiS]]q endstream endobj 2344 0 obj << /Length 285 /Filter /FlateDecode >> stream xڭѽJ@Y lGȼ&H +PN-`bu>r"X?L6']x\c[awO}͚L> stream xڍ=N0'’!sHRd E"T ()@ Qa-G#LyxcOx~ar Լ=>٦fqR57-ϱm__l<ږ[Od%2 9SQvTy2S T 2NXFvY _C!"%R/Q("!V$M x#$0"W ΈPr($7y?"^\%Id^EARiP7@t4F}ҷ CGɞ~\ endstream endobj 2346 0 obj << /Length 239 /Filter /FlateDecode >> stream xڭұj0`[heTA@=)Cd̐nQ58@mpCo'J,3~T>LVс%cMq<'$%$w>H?^Y\GGT %1s <(Gϋ(nhɝ> stream xU1N0E'JM`_)ҲH@Q- HaycARI?t5Uoqg|rzUA5TsϪnjwWU> stream xڍJ@E_H10y?(uSZY,Vjih|J>!easN2s߽Y'M+u)?Vֵ+nót㺶ȶɖ l]ū{m`Oè@A"dekv"DL8O92!~l@Nc@z.1aiŒBڠv?Qt>pC 4s9H]>0B/@ IL}~-&\^+vqpڃ :TN&Xa*E3q}Nd!ѫId/;{k?nf endstream endobj 618 0 obj << /Type /Font /Subtype /Type3 /Name /F39 /FontMatrix [0.00836 0 0 0.00836 0 0] /FontBBox [ -7 -25 134 90 ] /Resources << /ProcSet [ /PDF /ImageB ] >> /FirstChar 27 /LastChar 122 /Widths 2349 0 R /Encoding 2350 0 R /CharProcs 2351 0 R >> endobj 2349 0 obj [76.74 73.08 0 0 0 0 0 0 0 0 0 0 0 0 0 65.77 0 36.54 43.85 36.54 0 65.77 65.77 65.77 65.77 65.77 65.77 65.77 65.77 65.77 65.77 36.54 0 0 0 0 0 0 99.31 93.5 95.01 100.81 86.31 82.66 103.39 102.84 48.44 0 102.96 79.01 124.77 102.84 0 89.85 0 97.76 73.08 91.47 101.07 0 135.85 0 0 0 0 0 0 0 0 0 65.77 73.08 58.47 73.08 59.81 40.2 65.77 73.08 36.54 40.2 69.43 36.54 109.62 73.08 65.77 73.08 0 53.39 51.89 51.16 73.08 69.43 95.01 69.43 69.43 58.47 ] endobj 2350 0 obj << /Type /Encoding /Differences [27/a27/a28 29/.notdef 42/a42 43/.notdef 44/a44/a45/a46 47/.notdef 48/a48/a49/a50/a51/a52/a53/a54/a55/a56/a57/a58 59/.notdef 65/a65/a66/a67/a68/a69/a70/a71/a72/a73 74/.notdef 75/a75/a76/a77/a78 79/.notdef 80/a80 81/.notdef 82/a82/a83/a84/a85 86/.notdef 87/a87 88/.notdef 97/a97/a98/a99/a100/a101/a102/a103/a104/a105/a106/a107/a108/a109/a110/a111/a112 113/.notdef 114/a114/a115/a116/a117/a118/a119/a120/a121/a122] >> endobj 2351 0 obj << /a27 2294 0 R /a28 2293 0 R /a42 2288 0 R /a44 2289 0 R /a45 2292 0 R /a46 2290 0 R /a48 2339 0 R /a49 2340 0 R /a50 2341 0 R /a51 2342 0 R /a52 2343 0 R /a53 2344 0 R /a54 2345 0 R /a55 2346 0 R /a56 2347 0 R /a57 2348 0 R /a58 2291 0 R /a65 2295 0 R /a66 2296 0 R /a67 2297 0 R /a68 2298 0 R /a69 2299 0 R /a70 2300 0 R /a71 2301 0 R /a72 2302 0 R /a73 2303 0 R /a75 2304 0 R /a76 2305 0 R /a77 2306 0 R /a78 2307 0 R /a80 2308 0 R /a82 2309 0 R /a83 2310 0 R /a84 2311 0 R /a85 2312 0 R /a87 2313 0 R /a97 2314 0 R /a98 2315 0 R /a99 2316 0 R /a100 2317 0 R /a101 2318 0 R /a102 2319 0 R /a103 2320 0 R /a104 2321 0 R /a105 2322 0 R /a106 2323 0 R /a107 2324 0 R /a108 2325 0 R /a109 2326 0 R /a110 2327 0 R /a111 2328 0 R /a112 2329 0 R /a114 2330 0 R /a115 2331 0 R /a116 2332 0 R /a117 2333 0 R /a118 2334 0 R /a119 2335 0 R /a120 2336 0 R /a121 2337 0 R /a122 2338 0 R >> endobj 2352 0 obj << /Length 114 /Filter /FlateDecode >> stream x31V0P04F )\\@$l Ir p{IO_T.}gC.}hCX.O 3o R@5@@@]\\\C8; endstream endobj 2353 0 obj << /Length 95 /Filter /FlateDecode >> stream x353S0P0R02S01Q0PH1*21 (Ads<L =\ %E\N @QhX.O @9HS endstream endobj 2354 0 obj << /Length 223 /Filter /FlateDecode >> stream x퓱@ 8tm$ &:9'ut  ij!09䒯r№cFx3MP|Nΐdlq!XrlA#)" L#cS'^mr^Lr+¸J9q@\JZ!%ts7y"O&$gj&7]tgh,B} l = endstream endobj 2355 0 obj << /Length 286 /Filter /FlateDecode >> stream x픱N0mut~!)R)`b@Lsh}>B (g Q@,eADrbh>e<'U'1)=QJ yHQ%*./ϯT,΢2J5h0M^&yc<.1mYU*d̢} fJހ=oTKߚON Qi^-HgГ'{vXcv}84OlunĺH:`ݟ?ef=~'0nq{5ׇ27tMfz endstream endobj 2356 0 obj << /Length 382 /Filter /FlateDecode >> stream xڝ1N0D,yJȀb J(> U)",eUM~VJ^R, bm~|}gOvc;^|}~|p#$˷YU[LU7KeYF-1zVt qV9-Ti̬jcDG:U#F)R]"X )h[7(RfRd Vi%(E:8A}$](E7URhw.BL^dx')z TT2%AaΕ[Q/a`D a¢jBLx5 J%aQ4>TɨW;N˹IA 0!@Cn+~?]T endstream endobj 2357 0 obj << /Length 312 /Filter /FlateDecode >> stream xڽj02n#XOPKz)C:NM ?ŏ1U )ϲuwVJK%oݭՍV7+E놪WYztT5Orj|/5US<]bf Zs`q0>p7O\1 <^ rC]M\=)gpVK腁ANOlVpV![^tޕ?dc ,c忘/S$l6C{mF^r!Hts^J endstream endobj 2358 0 obj << /Length 402 /Filter /FlateDecode >> stream xՔN@l6< 5wy&RheaBh< @9aY]H$;;3;y~ә볍γ-ݙ~իowFߛqEJVW_~xVB*=\g:Ի@]V}JU! endstream endobj 2359 0 obj << /Length 291 /Filter /FlateDecode >> stream xԱj0` [D% I PhS1CB;'G#x_"||2i=iY[{j]L~hڐn3?z_Ӣ!"8;Ly_ORԤVFzf%p3{xc6FrcUCag{i@]yC7xۣ伐G ]5 C@(8&cq*?uNj $@셼*b2@5BqچApK t/Tゖ7L? endstream endobj 2360 0 obj << /Length 245 /Filter /FlateDecode >> stream xڝj1 9沏y ݋k{쩇ғAћ=H؃߲CL`-lo =|oK.aN<|-dT^mlFmٌWcoqn> HɁX 98;[e"D}禇Mw,,#V j su몄=]}cSY}]w`O` V ~֖༶_%j~ endstream endobj 2361 0 obj << /Length 200 /Filter /FlateDecode >> stream xڳ432Q0P0bKCK CB. 1s<,L=\ %E\N \. ц \. ᠁L$<Ɏ`2" Hz)ɏNɌHH3 @$+G0L0&D2\d 9iĄQ&$B3L.WO@.up endstream endobj 2362 0 obj << /Length 410 /Filter /FlateDecode >> stream xݔJ0Sz!/ 4/mVº=z ԣEoBfQzahL2Il(43I2gKQsqR., ,ڰOlU^[,6?X^݈n/dZ3X{E;Isc!ߩF4A3wh(hm wUa7ҨSi4pu?!ʩM*P;RHW7so3)b4*r4)mjRbwyK endstream endobj 2363 0 obj << /Length 125 /Filter /FlateDecode >> stream x342T0P0bCC3K CB.CCARɹ\N\@5\@a.}O_T.}gC.}hI\. A#C.D33Pa7#̃ y9ʣ>:"'W v endstream endobj 2364 0 obj << /Length 107 /Filter /FlateDecode >> stream x3533V0P0acK CB.s I$r9yr+s{E=}JJS ]  b<]?\$ ( !.WO@.!8 endstream endobj 2365 0 obj << /Length 169 /Filter /FlateDecode >> stream xڳ4ҳ4Q0P0b sK CB. C I$r9yr+Xr{E=}JJS. @-\. d` FL0b3Ŵ'Y`aedddG0=Y`3L~dd$1\=Y2 endstream endobj 2366 0 obj << /Length 351 /Filter /FlateDecode >> stream xڕԱJ0 YF\Z8Oᤎn|nFĘWmb(MP4Z^r/F{&VVrxWwlSRXg٩eUgec!Y;)+Vm#04Zx "H‡ x3 Fs|vACA`6 %lT(\RuABx4b*T8aAj'DTH&&BrJdi,#7`X,}(d}<l@!' Y(T{ i?4n4ܼt~Hk qy6fD}?_o,p+r<'wabIn endstream endobj 2367 0 obj << /Length 382 /Filter /FlateDecode >> stream xݔ;N0@XM_)REZHPQ *A-GRl H7;SUu-JъZTec>xo#. ϧW~yq/چV΋F|x{)*^C%GޟϠ= 6f\Tb&2 {ukH/rM] d΅6'vTAh/17!%if -V"0&,@AvPU\ j棆&&[i 02v00pe +AZ0>*v.+] ]_[mwnYvVo KSW=_f endstream endobj 2368 0 obj << /Length 228 /Filter /FlateDecode >> stream x34037T0P0bK J1*4" \.'O.pK#.}(BIQi*S!B4ИX.OP0$$$6H#Xp63XP- e4CHlFP6Bzl{#? p{ְEsvx: [!)3?6|@b@1 neK6"Igszrr endstream endobj 2369 0 obj << /Length 328 /Filter /FlateDecode >> stream xԱN@%[L#ܼO"9D ,Zx4°96 dJcK<:A_ೂwPYn3Tm>ªެ^ Hztu{ 5>(\vVIWL-{Fv/@^t R!-\9J]5$>Wf/+tgL?lle"h elPTO*@CHEVSt8eT'5> stream x}=NPLJPwlV$HaRK ֏xQ8³Äw>7kU:YӍR=TYl-{?]#ފE\חGQT%Ty'"" D%ВdЀ(0Z@5QVD5Ǡ}۱(et"+Fr$ ; BI~鞜1PW!)fh=h۩﨏5`"!&7]kJZ.Yo'd-&$c%4>Cf~Ml3EHL1f XB ].֗0IAYeUÆ1:iCH_²Sq#F mnw',ڻ)8oĵkc endstream endobj 2371 0 obj << /Length 192 /Filter /FlateDecode >> stream xԱ P# YztT\`955DS56Ih>JxUZG`/Wp€zeX]'d =dE,zE d1m&19XZHKնo ㇒xdflw4u VP|u+Ӿ0xZA7\a^J( endstream endobj 2372 0 obj << /Length 268 /Filter /FlateDecode >> stream x픱N@ u%\@JJHd@1FVfNgL%]1Ӭ'5rYI$.pݽD*tz3%1%=#Kjh%ȼ`oᓲ=|!؍4HE Wj&ihj "\IS<1z7 _Cae$ސBX|-Uئa&V$ wZCT&O}^&)L=HźD Vx5DW5{eZ endstream endobj 2373 0 obj << /Length 385 /Filter /FlateDecode >> stream xڝN0$P] 3<OуFodx|+v_3.,<=L)<xJ ]4.hz1iy)^_i:Kq+EvG˥Pzho+ YɠoMX)'Uoՠ|VKT2w676+2*TW=JM,frY=-n9*!7.[;l|YA.;V:;J >i[ BP|U͸L|yx7Ps]/b^: ĽtKS@~& jTK!1 ?ɻھvo"j3u?x;-֌R@R endstream endobj 2374 0 obj << /Length 542 /Filter /FlateDecode >> stream xڭ=j1q S #HHf'o3"T)Le[vhruAE{woo~yoy{WkO~=|>]u?~|nq!옟3OkddJƬ`*-DPxeZ&ҡ*H іP%[] !,_FX4&d e} M=a'P UIe![WI*fBA$Ul~ml!\T}ȆtlAF4BR<2aM;gES!`huhZFs }M!dy]4AMD3ΫM0Т-f1oKt `ˆFL lLK)]`̔.݃i5i?0d;ou4p筊䖿zOwx2yL>V 6@e|wZ|kd>D?/_зd8 endstream endobj 2375 0 obj << /Length 436 /Filter /FlateDecode >> stream xڝ1N0Em&GO@bBeHJ ٽ{!e c'LKzN<}Ę&ln_P߅>ruWmVp>TFudt>N# %!RD9\# Kdyzx9#pjD@b8=& G@P\%5jsVA5B.(-+Uղd@4@h,BA4QK3,]sl!!/`j'FgF{obkΌZC25R:&]MBEYzDha+Ia+Iexd,CG3UU3*jJZ3^ϢPcY͒^1":^Ʈ\ESjNwr_3l˹+Q 3=A4fF͠}u endstream endobj 2376 0 obj << /Length 313 /Filter /FlateDecode >> stream xԱN0aG"ݒGĕ@eB*E"L 22`Mhy?B Q}>_bpR~[*uq^FRr-w A)8/oi~{VPe; Z*Iڭ4nagoh~ Qs8f"gU{93F{n ?l Bt4z UT;n)T_B <6OՇ9?%Ց39D#gl8%>%ZU(B)Ӆ8BǠ*ę>4dbZC! biPHC7ˆ.dCǥ0TEҳTf _MܴU]( endstream endobj 2377 0 obj << /Length 308 /Filter /FlateDecode >> stream xڥ1N@gCA2 G`.@lI|&Rhea|x <Ć0̲ϼDmd`ggCګT״}Iz>\|ʼn|Ƣ=,VgGTaˊ+lvuLC! xr~`]T VIm o0/m+H-8٠HŴ̃%'b eA lR(~ FYtG%4xڂ~V *L ^TjCyĺ=LKg 9鏀-uO endstream endobj 2378 0 obj << /Length 283 /Filter /FlateDecode >> stream x퓱N@ e%ʝNX*E"L @0< y{{iZQAɿo>%Ct`inCp&YvwsKM1;a8?>^ҕ%s`Ko F*MwR*^nJom[w)}KDJXĢȾUAB֫~o)2PAշ%{Sh7ԃ]nۅ߶> stream xڽ1N0E"4>BHح,-D $(PR%>Z#l"WAg}{+nǚ^يXq{NiQy͖K9TꞺ=(te!LJBzpLa'=0s EsB5qgZoVVPJ}!J,D;'^Ezdg|F WѮ9!!9&g1#&$| 3fkj`GsA?M[ũt }gz endstream endobj 2380 0 obj << /Length 271 /Filter /FlateDecode >> stream xұj@ 3 Z+4fHS@:u(hyD оY~wW!7˩]%vβ˷<#Z qMUѨL྄Gc endstream endobj 2381 0 obj << /Length 275 /Filter /FlateDecode >> stream xڍj0 e2hCI PhS۱CCZJf endstream endobj 2382 0 obj << /Length 191 /Filter /FlateDecode >> stream x313V0P0bS CCCB.SJrW05 s{*r;8+. ц \. @H2j1TH1P(y8gJ1R `JL1Нg|lG'W  endstream endobj 2383 0 obj << /Length 369 /Filter /FlateDecode >> stream xڭN0/K~H*J#HHd@uFL x?GVn*Pb;]V-YsZx]XDsV4a]4ÍzxR-DQ nŰQhk$"THtPpA|ANmCb=\I*WEI?AFc.gTET{H~?d&>CKF (,@aR7C;aʀ a Gi11X"bW t>XV MNq2вI3 :f=>;3 s\raj.YI]l!fq5; „sp endstream endobj 2384 0 obj << /Length 210 /Filter /FlateDecode >> stream xڳ0S0P0b cCCB.ssJrW07 s{*r;8+r(D*ry(0o`Ie1 Xp( Ube0`V`Y1b`X@=p8 h=?zzu/a50,`t ih endstream endobj 2385 0 obj << /Length 146 /Filter /FlateDecode >> stream x31V0P0bcKCCCB.cb%r9yr+p{=}JJS|hCX.O ?D PB1X/y`i؁A0za?J.WO@.3 endstream endobj 2386 0 obj << /Length 222 /Filter /FlateDecode >> stream xҽ 0H-} h[ I(>B]*I!a/#wy&|EH2+B3x>]  d)*Q^-$tes$hUoj}g9ONCzb\yވO-y7yewRQtoxPe'UfuH b endstream endobj 2387 0 obj << /Length 286 /Filter /FlateDecode >> stream xAJP. :'{ U,]W҅b/xGR!d̼y$ L'Ci$%!, aJE:ۑ>NAO"j$Jj/XS:Q3j4~7N${%u,JXR7Աn()nͻy#_%\7 vP endstream endobj 2388 0 obj << /Length 111 /Filter /FlateDecode >> stream x31V0P0aCCB.cSJrW06 s{*r;8+r(D*ry(0o`&A(1` r .s endstream endobj 2389 0 obj << /Length 258 /Filter /FlateDecode >> stream xӿJ@+ }s8@88O0X`e,,ME}I @Xabfn?w^ͧ{]]"kvfř{~zlu~]+\kv2HɎY@КѩY`;zjeRZ58J$}¤A/yB$Uީ>?ï~_8zѝn7wEf7a9j=)BVM endstream endobj 2390 0 obj << /Length 198 /Filter /FlateDecode >> stream xұ @ ДBE j;:9: * nS:vc!K.!K| %)E!֒639-ij)UT US*]@cfWl:%uW+~Ž> stream xڽN0utKʼnnJ+ &T9}>Jc(;۲,Ȑ|>.Uu(Gko+.h+u #4Ox?wh6tRdD gft: sQģ_zm>rU"Q-Ø whJ"5v[\nil4r?:XTG2oJI~E⁦$lt?,m/p{" endstream endobj 2392 0 obj << /Length 285 /Filter /FlateDecode >> stream xҽN0`W"GȽrON" & ㊁GiŏCgmfȈb}E)^yEd^Mqz`V|IƮ,on>f>A@BN j]D;hH Q1Q󍊶e7F8XxiVWE} ?r^ ;jfԠӪUX{#[t屿-YպvZmc|y'˿ \p [a endstream endobj 2393 0 obj << /Length 296 /Filter /FlateDecode >> stream xӱN@PL#0/g<)L0VjiWM7\qaYO JcC,LvHsтst=晬e&'IyJO,ώ(dE)ͮ\"UBN;ӁFɮZ,,i* CdT@b{uY*$ګ(uoGyCc^ю췻汝a7K* yy/ %rp`%KA*%Ox\W endstream endobj 2394 0 obj << /Length 184 /Filter /FlateDecode >> stream xѽ 0-y'06 ftr'uTܚGQ;祝\݃~ +0.0xH:: eOPZPwA%ޮ#r5 )&;3D"Z*rLD^cj&Uؑˈ^t;;jUxa|t-?>W`na o? endstream endobj 2395 0 obj << /Length 296 /Filter /FlateDecode >> stream x]1N0E"\)sHR4HE"TjA-G\0hŒO?h,5yK%k5k(2Uof7Էrm>?^M{zjy6Þ1 (+bv`柀UJ"~# N>t%%1!*0jQAzj:ޖ> stream x= @ )2(I#XQr)uv! jc_13{b-lHlH\J@2$]kH)F1!AtG "Ù`*Coz_kjSӵrgFOT&.Y<,I(d&t^Pkԏ-b0P0+f endstream endobj 2397 0 obj << /Length 199 /Filter /FlateDecode >> stream x= @ ir &H~@` A+ RK Ex )SHY,{| iP2(mc)}"lǨR.ft:w9X._nY#4RFH}Uʨ|#yAmܚ[+wcw蟒/sk2WVr @T" endstream endobj 2398 0 obj << /Length 293 /Filter /FlateDecode >> stream xڍбJ@ W#d^@hs BB>y)l ]>vϞ$x f8? Ky1yvaC,肗!/&&  c +c,drP ,fӖO|ٌxHv'T7eX _%~5(PYQTiVw*I]ڪ$u3SXmn'ωS5^%%^dۨ^>AB e~OD3j'Pj*[N^soN! endstream endobj 2399 0 obj << /Length 370 /Filter /FlateDecode >> stream xڝұJ@YR#d_@E),J--˂/+_#֙l XowvYcc3?4V?ip97ٰwήLg縮¼<>lyybN͍5.O/B{7UD) R=8[Q+Vj3ZIFuv[H1ZV'呢Q jI X5kKHH0ʱ> stream xڍ=N0F'Jɍ$,-D $(KI:(VnrR2|Ю%[o쌟f]s֚ڜcjsyazSۓ<}Ӷ[ݕiTu0Tw01T4"LBG `"'$$PƌDPiMB A-BsT'!Q(+Β[>5PK9NT> stream xڍҽN0:TG_%tR$2 Ā[dc%oO"]\LK}ɽ(@"6 Ub)TelΣVN֎X%ҲFV8!TZ^՞j#{)'F2N4jvQWQڱ/";6lC4*f}X `aUca7Pl*L5L> stream xݒ@WRGp^@79BB+B:y<28d)^y ˷|Y6L08JpRF8J%$in%-j1~@>CcbxDO0 GjK% ,C/ɢn|nc>g=lLHeހ@X)C9;|ʾyXxo~f!K_՜ieu7waEK޴sLLSF;x>l_ endstream endobj 2403 0 obj << /Length 142 /Filter /FlateDecode >> stream x373Q0P04ff & )\\@ IrW05 s{*r;8+r(D*ry(0!<S;SAX~0aT=(r * endstream endobj 2404 0 obj << /Length 344 /Filter /FlateDecode >> stream xڕұN02DGR҅HHd@1#f(yw+R:Ш_e{X6\w ux]i_^cشmaeCxZPp)"b~8yxɘLXbj45NP .s>* ؈)Kr)׉4n,I4x\sf{4RQV:+uYPVbyI9Y4~جId2qd2+bx&u zIzA\D3|xwP@i-hJN* 7}?: endstream endobj 2405 0 obj << /Length 348 /Filter /FlateDecode >> stream xڝ=N0&G/٠UV[EZHPQ *A-GR<_BO<nw P+~^ J n¾ww]ʭo1.|}~p S6Ϯ>cL3:'V<Z^O1{ ֚JDR‚& L.Zȴޒ?:3D 5 ϭ00322 d:ɨ<^˫2{U|vRMThD<<hU錩& (QX.]8񐐍p3d|+}e'C)ij'{=Lp. endstream endobj 2406 0 obj << /Length 252 /Filter /FlateDecode >> stream xұN0Z,G=NDմK"E"L 02*[(y"3$9wYv1Ǔ]jO)i}2 KX>^ɯo7CɎ->*̤޾C0X',Phv@*(@w@+000@u h8rN[l@*( F``R_Og+誤;z endstream endobj 2407 0 obj << /Length 328 /Filter /FlateDecode >> stream xұJ@YR!D +PGG&ŒufgT8Qju492iM4~Me6^{]^)<=>r}~lj]nUmko(O@ gwt(Z NG :ri_ќb%6'Uo)<`/2yI3"oEcQمgRrlM'}9HyHr/͉'cLܓdNq2;S-5vS&{/J3mRy'm$ endstream endobj 2408 0 obj << /Length 361 /Filter /FlateDecode >> stream xڝ=N@rai{p"G,  * D h%7>EǼYCD ֳow~&Icw;38r\Yismz,a'ƦCt.27y%&jZ@'za Bl&BFdZ6( x$'j s1%3B17%WLI6laڳP\ "+TxKkX.^k3gC>v:ijE` I7xh! sO&sUSS{[KP+fj_bgVP:zO{T330k endstream endobj 2409 0 obj << /Length 272 /Filter /FlateDecode >> stream xڽҽJ0r^@ӊv tqRGE7G#tPZ$`q~$)xG'XaYc/z0Ų3ϰ@n1A^a5?\\`rwPm0nM%#4?@ a$ z,:BKhL3+S:+S:;S:Wu!& 05c[bEN=EfF {%;(ž}pB4: 0DC ?A#T{H&z링 n v endstream endobj 2410 0 obj << /Length 395 /Filter /FlateDecode >> stream xuN0eŏ`AUNJȀbFΣQ=D9Nbߧrk7vWv־C X^aTݣmՍwMuk۫hzyV !"D D I1 : hs#1O }9$J) e,'ʕkr\ r'2 ,Щ AhA%#{pj"HtC ʺvQ9 ԀT׹5$)#&j%IM\LYut,tб#Stu\ize33\N/g8D)B ϠI54QP/PL<:1ҕԣzȏT7zP?Ou endstream endobj 2411 0 obj << /Length 362 /Filter /FlateDecode >> stream xڝұJ@ [ h.rB 8B7;$A ٙnrfOMfM΃7Y&tԤ4l=><ݚtq~2.*s+S.R?1f zBM uPZz)m;=-ZIpmY)6/~d`W5PP򏷕snɠDzT=@wH=ŗr?HNZns*D%F?lK0 ku8W#N8dc=rO~ z%u9jJQQګ0634rՆ,y )5IIscNJsa>]dj endstream endobj 617 0 obj << /Type /Font /Subtype /Type3 /Name /F38 /FontMatrix [0.00697 0 0 0.00697 0 0] /FontBBox [ -8 -30 157 101 ] /Resources << /ProcSet [ /PDF /ImageB ] >> /FirstChar 28 /LastChar 121 /Widths 2412 0 R /Encoding 2413 0 R /CharProcs 2414 0 R >> endobj 2412 0 obj [86 0 128.99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 51.6 43 0 77.4 77.4 77.4 77.4 77.4 77.4 77.4 77.4 77.4 77.4 0 0 0 0 0 0 0 116.82 110.01 111.8 118.61 101.54 97.24 121.65 121 56.63 0 0 92.94 146.8 0 116.22 105.71 0 114.67 86 107.62 118.91 116.82 159.82 116.82 116.82 0 0 0 0 0 0 0 77.4 86 68.8 86 70.17 47.3 77.4 86 43 47.3 81.7 43 128.99 86 77.4 86 81.7 62.48 61.06 60.2 86 81.7 111.8 81.7 81.7 ] endobj 2413 0 obj << /Type /Encoding /Differences [28/a28 29/.notdef 30/a30 31/.notdef 45/a45/a46 47/.notdef 48/a48/a49/a50/a51/a52/a53/a54/a55/a56/a57 58/.notdef 65/a65/a66/a67/a68/a69/a70/a71/a72/a73 74/.notdef 76/a76/a77 78/.notdef 79/a79/a80 81/.notdef 82/a82/a83/a84/a85/a86/a87/a88/a89 90/.notdef 97/a97/a98/a99/a100/a101/a102/a103/a104/a105/a106/a107/a108/a109/a110/a111/a112/a113/a114/a115/a116/a117/a118/a119/a120/a121] >> endobj 2414 0 obj << /a28 2354 0 R /a30 2355 0 R /a45 2353 0 R /a46 2352 0 R /a48 2402 0 R /a49 2403 0 R /a50 2404 0 R /a51 2405 0 R /a52 2406 0 R /a53 2407 0 R /a54 2408 0 R /a55 2409 0 R /a56 2410 0 R /a57 2411 0 R /a65 2356 0 R /a66 2357 0 R /a67 2358 0 R /a68 2359 0 R /a69 2360 0 R /a70 2361 0 R /a71 2362 0 R /a72 2363 0 R /a73 2364 0 R /a76 2365 0 R /a77 2366 0 R /a79 2367 0 R /a80 2368 0 R /a82 2369 0 R /a83 2370 0 R /a84 2371 0 R /a85 2372 0 R /a86 2373 0 R /a87 2374 0 R /a88 2375 0 R /a89 2376 0 R /a97 2377 0 R /a98 2378 0 R /a99 2379 0 R /a100 2380 0 R /a101 2381 0 R /a102 2382 0 R /a103 2383 0 R /a104 2384 0 R /a105 2385 0 R /a106 2386 0 R /a107 2387 0 R /a108 2388 0 R /a109 2389 0 R /a110 2390 0 R /a111 2391 0 R /a112 2392 0 R /a113 2393 0 R /a114 2394 0 R /a115 2395 0 R /a116 2396 0 R /a117 2397 0 R /a118 2398 0 R /a119 2399 0 R /a120 2400 0 R /a121 2401 0 R >> endobj 2415 0 obj << /Length 164 /Filter /FlateDecode >> stream x3231V0P0S54W02V05PH1*24͡Rɹ\N\ f\@q.}O_T.}gC.}hCX.Ofv> 0`o`oggC(@+ tB2@@;ev30szrr2 endstream endobj 2416 0 obj << /Length 164 /Filter /FlateDecode >> stream x3231V0P0Q54W02T05PH1*24(Cs< ͸=\ %E\N \. ц \. 00X00137070`|V <c :N9@A&3`n`o'h.WO@.)V endstream endobj 2417 0 obj << /Length 153 /Filter /FlateDecode >> stream x35ѳ0S0P0S5Q0T06WH1*21 (Bds<L=\ %E\N @BA,`,`&? Ԁ Dʁ+3<@bC!j H q=P%qՓ+ A'% endstream endobj 2418 0 obj << /Length 150 /Filter /FlateDecode >> stream x35ѳ0S0P0S5Q0T06WH1*21 (Bds<L=\ %E\N @BA,&m$?d&J""9`RL8`!@ep=H'q='W .' endstream endobj 2419 0 obj << /Length 103 /Filter /FlateDecode >> stream x33T0P0S54W0T05PH1*24͡Rɹ\N\ F\@q.}O_T.}gC.}hCX.O0.WO@.[{WH endstream endobj 2420 0 obj << /Length 103 /Filter /FlateDecode >> stream x33T0P0T54W04Q05PH1*24(Cs< =\ %E\N \. ц \. ?8.WO@.U endstream endobj 2421 0 obj << /Length 98 /Filter /FlateDecode >> stream x35ѳ0S0P0S5P0R )\\&F@acTr.'~1BIQi*S!BA,8Lrzrr#y endstream endobj 2422 0 obj << /Length 105 /Filter /FlateDecode >> stream x33T0P0bCSsCB. 'r9yr+Xp{=}JJS ]  b<]lC@ 0@DY 'W e% endstream endobj 2423 0 obj << /Length 124 /Filter /FlateDecode >> stream x33T0P0S02U04S01SH1*(B$s<,=\ %E\N @BA, ClP` l | 2   \\\: endstream endobj 2424 0 obj << /Length 153 /Filter /FlateDecode >> stream x3632W0P0Q02T06T05PH1*22 (YBds≮=\ %E\N \. ц \. < r8ABzz3??``o >H$RRҏ\}\\\') endstream endobj 2425 0 obj << /Length 111 /Filter /FlateDecode >> stream x35ѳ0S0P0Q5W05T01PH1*2 !2ɹ\N\ &f\@a.}O_T.}gC.}hCX.OfH? @H.WO@. endstream endobj 2426 0 obj << /Length 124 /Filter /FlateDecode >> stream x33T0P0S54V04SPH1*(B%s<,=\ %E\N @BA, ClP` l | 2   \\\M endstream endobj 2427 0 obj << /Length 90 /Filter /FlateDecode >> stream x33T0P0bCS CB. &r9yr+Xp{O_T.}gC.}hCX.O@Pgo9 endstream endobj 2428 0 obj << /Length 160 /Filter /FlateDecode >> stream x3632W0P0Q54W06T05PH1*22(Cs≮=\ %E\N \. ц \.   @|@2@,@l@0X}ߥbs)8\6' endstream endobj 2429 0 obj << /Length 98 /Filter /FlateDecode >> stream x33T0P0bCS#KCB. 'r9yr+Xp{=}JJS ]  b<]lA 2 rzrr0B endstream endobj 2430 0 obj << /Length 134 /Filter /FlateDecode >> stream x33T0P0S54V04S0TH1* (Aes<,=\ %E\N \. ц \. 6 u 7lP` l | 2   \\\("J endstream endobj 2431 0 obj << /Length 101 /Filter /FlateDecode >> stream x35ѳ0S0P0QP05T02UH1*2(%s<L̸=\ %E\N \. ц \. Ad*@6Փ+ ) endstream endobj 2432 0 obj << /Length 137 /Filter /FlateDecode >> stream x3235T0B#S21SH1*22Bds<L=\ %E\N @B4Pq, CEß@?7mfl` vf6 bgccca`((`xpՓ+ &F endstream endobj 2433 0 obj << /Length 94 /Filter /FlateDecode >> stream x3235T0P0T04V0 )\\@ADr.'~ BIQi*S!B4ИX.O'W S endstream endobj 2434 0 obj << /Length 143 /Filter /FlateDecode >> stream x3235T0P5T02U02Q01SH1*2 *ɥTåU()*Mw pV]Fry(03310XX00$0> stream x3632W0BCscSCKCB.cD"9ɓK?\؄KCKW4K)YKE!P E?\\\G$ endstream endobj 2436 0 obj << /Length 171 /Filter /FlateDecode >> stream xڝ1 0‡8;8 hlDQPѽGQ>Kf7tq= 2$n@Sԍ#yS'4ͤ /9S endstream endobj 2437 0 obj << /Length 231 /Filter /FlateDecode >> stream xMϱJA9X\"yݽ]1B(|<ŕW?8,_vIyBO dZz})Beq|yZbw1F>^o4cЇLf5%% h$.ĐSo$%ivb ;?'~hJ1ӄ(aЇ2C !EO^;&ĝ, ߉\jI endstream endobj 2438 0 obj << /Length 287 /Filter /FlateDecode >> stream x%AJ1E+dP s{{셠+ Ka,s+X?E/^J5N?~?XotΛGsw+wknwk?QOQ'w&(6Bfj22EsD_P endstream endobj 2439 0 obj << /Length 257 /Filter /FlateDecode >> stream xڍ1K@00I"xtȝ[.hw) )Sq&"X2ެS+>)yUruƏ%PCᙶ [d2&\dw|WrqO͎z`/aR:@ LD"r # 6賨Oк8G0kY{W \Es>d8f>fdtiº״[`nԓSZc96QZvB 7n` endstream endobj 2440 0 obj << /Length 158 /Filter /FlateDecode >> stream xڽ1 @/i> stream x33T0P0bcssCB.cS I$r9yr+r{E=}JJS ]*c<]```AȪ? (T`t!?0cr ] endstream endobj 2442 0 obj << /Length 162 /Filter /FlateDecode >> stream x3636T0P0b#KsCB.#1s<L=\ %E\N \. @cb<]3 ÂOC]?HȀ @HA$, !l?r\\\S- endstream endobj 2443 0 obj << /Length 202 /Filter /FlateDecode >> stream x]Ͻ @  *xWm[uTt{>P> stream xڍϽ0#lXjDD'㤎]ƣ M_rm9^,d/_=ԩ-퉕@v&#ۛWd@:n)CV%&0j I`sr6Ki>9魭g '+ or*4+vTm endstream endobj 2445 0 obj << /Length 223 /Filter /FlateDecode >> stream xڥбjA9 {wl"VB"RK-Qԝ;AmbvfsžRC/J|I[ї冊܂}Fn)}~1J~K9yd@ lm9%QX@|цH5`$ƣ{_;kA1m;z4KqͫmЅO@ #"P+ endstream endobj 2446 0 obj << /Length 175 /Filter /FlateDecode >> stream x35ֳ0U0P0bSSCB.3 I$r9yr+q{E=}JJS ]  b<]Hg`` LցI{0)"!A2@"HFL$i(6"…7#ԏ .WO@. m endstream endobj 2447 0 obj << /Length 176 /Filter /FlateDecode >> stream x31׳4W0P0b3SCB.# I$r9yr+q{E=}JJS ]  b<]0i&$ɆAIfiL2ABDPԠpd`lN27u`_`H.WO@._ endstream endobj 2448 0 obj << /Length 158 /Filter /FlateDecode >> stream x3130T0P0bcSCB.rAɹ\N\ &\@Q.}O_T.}gC.}h1\. `C r N HH DT 0*a A0A0 { 'W S endstream endobj 2449 0 obj << /Length 219 /Filter /FlateDecode >> stream xڝпN@ /= MȀ E $"7ԅ)7?W|3.?X @hsoϔ/oW\P懂g[j  }"H;69 !$߱KpWRf $L_QWЛ?N`7Eu2m;i[njAٳakE\ endstream endobj 2450 0 obj << /Length 123 /Filter /FlateDecode >> stream x35ҳ0V0PaSSCB.3 I$r9yr+q{E=}JJS ]  b<]`dCLB\\\ohz endstream endobj 2451 0 obj << /Length 103 /Filter /FlateDecode >> stream x323Q0P0acSCB.#rAɹ\N\ F\@Q.}O_T.}gC.}hCX.O?B%E endstream endobj 2452 0 obj << /Length 137 /Filter /FlateDecode >> stream x3632T0P0V5T06R01UH1*2 (Ads<,=\ %E\N \. @b<]c u- ? @\ \=7 endstream endobj 2453 0 obj << /Length 221 /Filter /FlateDecode >> stream xEϽJ@ W0/p&y)+Gˣ72B:Oa?vvK)d>߹j4.,W޷Kp~JJPJAb -ȅd"H)ld07yDUl4fuNɣG/fHW&0/-~7sĸ-c@k endstream endobj 2454 0 obj << /Length 133 /Filter /FlateDecode >> stream x3130U0P0bCSCB.c I$r9yr+[p{E=}JJS ]  b<]&0000` ! `0Փ+ ɔN endstream endobj 2455 0 obj << /Length 217 /Filter /FlateDecode >> stream x333T0P0b3#SCB.S I$r9yr+Zp{E=}JJS ]  b<]```` 300H| mo``HF00Fq Ht6t  m g0@PhPh Xiht f>AW p\\\ endstream endobj 2456 0 obj << /Length 218 /Filter /FlateDecode >> stream xMɱJ@Yw Dy)+PZ>|SI%ͮ|03fʔ^r+tCqy#ZSǛUl}wbgyمs=CUk 󭥯kSO6Cp\NZFt$S(Cp$AO:~d柈.?&-#Q- hTO endstream endobj 2457 0 obj << /Length 207 /Filter /FlateDecode >> stream xڝ@ KHID::htEGZf˗k{h:O(&bKQBg7$VNW 4{YsMyAmdt m^TA5 pq:\S?Ң^U"q> stream x31׳4W0P0bSCB.rAɹ\N\ &\@Q.}O_T.}gC.}hCX.O`0`H0~?DԁzD\`Y6 (Z endstream endobj 2459 0 obj << /Length 264 /Filter /FlateDecode >> stream xڝJ0rymXW=yUR?n26 ^m4yKAI=ȥS"!8fW5Pr endstream endobj 2460 0 obj << /Length 194 /Filter /FlateDecode >> stream x}α 0 4RZN⤎(>B5 Q4#&4T)Ad} t8E B6( = x$2"iBu]F JxtJfE6YpV2]>w^ca{undv3E-Y srygn0qJq-q endstream endobj 2461 0 obj << /Length 212 /Filter /FlateDecode >> stream xMJ@!0:/KP 詇(E!bhy_`nz(Y'TQ2 ?e{./⍧*WM %쭾6w}{";fOv+I~ )r!FA ~Q`RP#Kc\gFa4wWbТ 0)B@7 =7bS. endstream endobj 2462 0 obj << /Length 141 /Filter /FlateDecode >> stream x35г4Q0P0bKSCB.3 I$r9yr+q{E=}JJS ]  b<](G dQ"- d@ <"yp ap@$'W O endstream endobj 2463 0 obj << /Length 172 /Filter /FlateDecode >> stream x= @ Bp.5?bAPKAE;ͣ)-DNa I>Ft0P{(5~43{R|̚T+LUUZ`t^_`v@"Հ#6R0w Y9كz%@C zEH endstream endobj 2464 0 obj << /Length 221 /Filter /FlateDecode >> stream xe1j0bxf˻@")J@@=کC R5 =C=;]"> stream xUбJ@ \`8+ h#*p` A+ RPo`XGH"$FcgVl |*Rz|-Ä6%7)1%?R:-ߦQaШCA @a{`0uЍ8 SW}$ s-j)'l\TJ h h'ZLN k>ѧ^eQiaxP}Hv:/~ep endstream endobj 2466 0 obj << /Length 241 /Filter /FlateDecode >> stream x%J0?, }][ma]=yaA= U> stream xڽбjA`6;uN\+J!S{s W^!^fwdY>ff_'#8k> stream xE1 0W o -8ZN"QPѹ=Z#tt5!A!I*sw*JX˺بuam*d9rZk-&)DͅQ7[*AHI&tRRRMTx'o 2TXQ TV endstream endobj 2469 0 obj << /Length 177 /Filter /FlateDecode >> stream x]; PEo o6<Vbv'غtn2EHFÅs:XsgyӞd>e8%w!܉hr)-lb^gEihѶ tP"Y~ЅqdXS(\!(iPC] mj7ҪS n1 endstream endobj 2470 0 obj << /Length 182 /Filter /FlateDecode >> stream x33T0P0R5T06W01SH1*26 (Cds<M=\ %E\N \. ц \.  ~NH~ ?j?01?` 0L @e5Ȣ ?Փ+ M endstream endobj 2471 0 obj << /Length 167 /Filter /FlateDecode >> stream xڍ1 @YR nv6 n!he!Vjih'qGRZp5Lܔs<6lg  ^9l KQ߮z=g|a9Gt)B(PD 1 PBʇK|P\x0> endstream endobj 2472 0 obj << /Length 180 /Filter /FlateDecode >> stream x33T0P0R5T06W01SH1*26 (Cds<M=\ %E\N \. ц \. ?XN0 @Ar?``?h> stream x]1 @RnvA"+P,$(!E n1CXs_qxD:qeı,#e5$_l9eE2hKE T760= ӦAޝG4+ Ya|#xxЂf 8 endstream endobj 2474 0 obj << /Length 131 /Filter /FlateDecode >> stream x3235U0P0b#3sCB.# I$r9yr+p{E=}JJS ]*c<]?0acga0?`D?0o".WO@.y?B endstream endobj 2475 0 obj << /Length 199 /Filter /FlateDecode >> stream xm= @' H2$&L!he!Vji(H ^DoV#*ZX|3Û;=í8ae&=X҈{ p:p"9ӖlȒx)O+G rߜW3=TU4 hʹtCPZa3+eG_5jd4iNB@ endstream endobj 2476 0 obj << /Length 146 /Filter /FlateDecode >> stream x33T0P0bcs3CB.c I$r9yr+p{E=}JJS ]  b<]000 "88{ ?8qV? ?&\= ZP endstream endobj 2477 0 obj << /Length 118 /Filter /FlateDecode >> stream x33T0P0bCs3CB.C I$r9yr+p{E=}JJS ]  b<]?@ h ʐ'W =!45 endstream endobj 2478 0 obj << /Length 145 /Filter /FlateDecode >> stream x3235U0P5V54Q04S01SH1*2 (s< -=\ %E\N \. ц \.  fȀ@? `CŽ.WO@.t? endstream endobj 2479 0 obj << /Length 186 /Filter /FlateDecode >> stream xڥ1 0H LHur N(*=Z##tPZ+ 8 B>tLpȋb zƀS .z@)o&(3!DC1U JnjO;'>L^{wf7pz1[y+Y 0/Q endstream endobj 2480 0 obj << /Length 105 /Filter /FlateDecode >> stream x33T0P0bC 3CB.CS I$r9yr+r{E=}JJS ]  b<]BTՓ+ ": endstream endobj 2481 0 obj << /Length 164 /Filter /FlateDecode >> stream x33P0P0bS cCB.SS I$r9yr+r{E=}JJS ]  b<]3`? 7g?|0o?TTzCuf( H@).WO@.`\ endstream endobj 2482 0 obj << /Length 137 /Filter /FlateDecode >> stream x33T0P0bcscCB.c I$r9yr+p{E=}JJS ]  b<]c`1~``">0Z0'r M endstream endobj 2483 0 obj << /Length 157 /Filter /FlateDecode >> stream x3632W0P0R5T06V06TH1*26PAc#Lr.'~PKW4K)YKE!P EACv ,yv`Q5 ?`Bd7`? Փ+ v?X endstream endobj 2484 0 obj << /Length 186 /Filter /FlateDecode >> stream xڍ= 0'}$ ], ftr'utPtp:v( ԡoOeLF4Ԙȥ"ՖvGL55.yDFآΈ }o J`J30V@ AaK}Ư/橀˥5 6?pq_Qn endstream endobj 2485 0 obj << /Length 186 /Filter /FlateDecode >> stream xڍα 0  7A轀&i ING#t jR J&"A"txATPY|K*F9bE<[I"i'I f0)03Jk%/!=a Kr<;v@`_ZK-n;pQ? S endstream endobj 2486 0 obj << /Length 124 /Filter /FlateDecode >> stream x323T0P0a3cCB.#c I$r9yr+s{E=}JJS ]  b<]?o^:u?ذ?`$# 'W 1R endstream endobj 2487 0 obj << /Length 169 /Filter /FlateDecode >> stream x%; 1F?p۩$:(+PmYf)H"x _u*[}.  ɖ)\ٟhRް-I/R&]/zIOVS6g5\쨞d-yvT"4h<, "2cA.-^I@aIO0hD8'yMk; endstream endobj 2488 0 obj << /Length 138 /Filter /FlateDecode >> stream x3231V0P0T5T02V01TH1*22 (Ads< =\ %E\N @QhX.OzE?3L8$ Y0~0`P#'W E;G endstream endobj 2489 0 obj << /Length 139 /Filter /FlateDecode >> stream x33T0P0R5T06W06PH1*26 (Bds<M=\ %E\N @BA, C ?b4"Q  A20~0pzrrMs endstream endobj 2490 0 obj << /Length 167 /Filter /FlateDecode >> stream x3632V0P0T5T06S0TH1*26 (Ces<M=\ %E\N \. ц \. 0?&01?`  @D2Q%=;g=p`#?``.WO@._x3 endstream endobj 2491 0 obj << /Length 195 /Filter /FlateDecode >> stream x35г4Q0P0T5T05P0TH1*2 (Ces<L,=\ %E\N \. ц \. c!0`  `$F([cWdžJHȱ!Hy igσD00'@"o00-J7B ?qzGx endstream endobj 2492 0 obj << /Length 189 /Filter /FlateDecode >> stream x= 0b/ X#~,I> stream xM= @Y B. 8f??` A+ (X endstream endobj 2494 0 obj << /Length 176 /Filter /FlateDecode >> stream x; @3LM'@` A+ RP6Ҳ,!e8ds.ГR;U #9jv~}nR5\Zkf( % 1!&h1B:; 2puZgFHo& ;iNT4pY34t?"6 endstream endobj 2495 0 obj << /Length 163 /Filter /FlateDecode >> stream x3632W0P0V5T06R01QH1*2 (Bds<,=\ %E\N \. ц \. ``~P~A@,~a`@ F6.{@"  wQ7 endstream endobj 2496 0 obj << /Length 116 /Filter /FlateDecode >> stream x3632W0P0bcCB.#c I$r9yr+s{E=}JJS ]  b<]xlj0ĦPqzrr- endstream endobj 2497 0 obj << /Length 205 /Filter /FlateDecode >> stream xE=j@'T,La]Xs'XE``ra $ 60MG#L! !){LOp\db(^4oHo8HJye隷55ja1R[!rҸ%B~q@$X&JDꉜėa`&hЎzf}Ѳ5J# endstream endobj 2498 0 obj << /Length 201 /Filter /FlateDecode >> stream xUαJ@_,8tIKB` A+ ʃS}fl}n4Lfn|HZh^Z̳{zډ)oՊj*up Q3X;#pC's0 s/ nRЉ~۞\%D~OIC endstream endobj 2499 0 obj << /Length 169 /Filter /FlateDecode >> stream x}ͱ @ BP:w> stream xڅ= @,Ct/ \@7b* V"j)(X٣(9e 1؈̛ua}pr&,};zG̜ÄXd -t!/كcU*).rx7ZrYzq 6d[|.l!ViB\[©&QJ3z@ endstream endobj 2501 0 obj << /Length 204 /Filter /FlateDecode >> stream xM=n@gm4{<H(TD@HIERJ m#lI`׼yW'θ䇜˂w9Xhq5/_Z67\,ȿjLy= W9f0g]D+sbʼn 64ioca\`ۍL{Ӥ^MqlF_R+ L endstream endobj 2502 0 obj << /Length 175 /Filter /FlateDecode >> stream x3632W0P0Q5T06Q01UH1*2  2ɹ\N\ F\@a.}O_T.}gC.}hCX.O  03`bj b ~T @rPlAנ?D .WO@.å96 endstream endobj 2503 0 obj << /Length 217 /Filter /FlateDecode >> stream xU=j1ߢB0n ?lE \T 6p!{-0(u >4̛fxK~ʹ,x3if\M'-Zr[.f&׾t x[rNnŻwjW CughKJ*e>C# qd /[Đ {@2HC'2;woU#;%҆~-M endstream endobj 2504 0 obj << /Length 210 /Filter /FlateDecode >> stream x]jQO케%B f$X%)- "|}[:$7 gΙsZS:T1漸N>W49Lz%/T V4;zG0^94gu!Qnh^t = \JX?M~z> /FirstChar 16 /LastChar 122 /Widths 2505 0 R /Encoding 2506 0 R /CharProcs 2507 0 R >> endobj 2505 0 obj [23.51 23.51 0 0 0 35.27 0 0 0 0 0 0 39.19 39.19 0 0 0 19.59 0 58.78 35.27 58.78 0 19.59 27.43 27.43 35.27 54.86 19.59 23.51 19.59 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 35.27 19.59 19.59 54.86 54.86 54.86 33.31 54.86 52.83 49.93 50.94 53.85 47.97 46.01 55.33 52.83 25.4 36.21 54.79 44.05 64.59 52.83 54.86 47.97 54.86 51.89 39.19 50.94 52.83 52.83 72.42 52.83 52.83 43.1 19.59 0 19.59 0 54.86 0 35.27 39.19 31.35 39.19 31.35 21.55 35.27 39.19 19.59 21.55 37.23 19.59 58.78 39.19 35.27 39.19 37.23 27.49 27.82 27.43 39.19 37.23 50.94 37.23 37.23 31.35 ] endobj 2506 0 obj << /Type /Encoding /Differences [16/a16/a17 18/.notdef 21/a21 22/.notdef 28/a28/a29 30/.notdef 33/a33 34/.notdef 35/a35/a36/a37 38/.notdef 39/a39/a40/a41/a42/a43/a44/a45/a46/a47/a48/a49/a50/a51/a52/a53/a54/a55/a56/a57/a58/a59/a60/a61/a62/a63/a64/a65/a66/a67/a68/a69/a70/a71/a72/a73/a74/a75/a76/a77/a78/a79/a80/a81/a82/a83/a84/a85/a86/a87/a88/a89/a90/a91 92/.notdef 93/a93 94/.notdef 95/a95 96/.notdef 97/a97/a98/a99/a100/a101/a102/a103/a104/a105/a106/a107/a108/a109/a110/a111/a112/a113/a114/a115/a116/a117/a118/a119/a120/a121/a122] >> endobj 2507 0 obj << /a16 2434 0 R /a17 2432 0 R /a21 2435 0 R /a28 2440 0 R /a29 2441 0 R /a33 2422 0 R /a35 2436 0 R /a36 2437 0 R /a37 2438 0 R /a39 2423 0 R /a40 2415 0 R /a41 2416 0 R /a42 2424 0 R /a43 2425 0 R /a44 2426 0 R /a45 2433 0 R /a46 2427 0 R /a47 2428 0 R /a48 2495 0 R /a49 2496 0 R /a50 2497 0 R /a51 2498 0 R /a52 2499 0 R /a53 2500 0 R /a54 2501 0 R /a55 2502 0 R /a56 2503 0 R /a57 2504 0 R /a58 2429 0 R /a59 2430 0 R /a60 2417 0 R /a61 2431 0 R /a62 2418 0 R /a63 2442 0 R /a64 2439 0 R /a65 2443 0 R /a66 2444 0 R /a67 2445 0 R /a68 2446 0 R /a69 2447 0 R /a70 2448 0 R /a71 2449 0 R /a72 2450 0 R /a73 2451 0 R /a74 2452 0 R /a75 2453 0 R /a76 2454 0 R /a77 2455 0 R /a78 2456 0 R /a79 2457 0 R /a80 2458 0 R /a81 2459 0 R /a82 2460 0 R /a83 2461 0 R /a84 2462 0 R /a85 2463 0 R /a86 2464 0 R /a87 2465 0 R /a88 2466 0 R /a89 2467 0 R /a90 2468 0 R /a91 2419 0 R /a93 2420 0 R /a95 2421 0 R /a97 2469 0 R /a98 2470 0 R /a99 2471 0 R /a100 2472 0 R /a101 2473 0 R /a102 2474 0 R /a103 2475 0 R /a104 2476 0 R /a105 2477 0 R /a106 2478 0 R /a107 2479 0 R /a108 2480 0 R /a109 2481 0 R /a110 2482 0 R /a111 2483 0 R /a112 2484 0 R /a113 2485 0 R /a114 2486 0 R /a115 2487 0 R /a116 2488 0 R /a117 2489 0 R /a118 2490 0 R /a119 2491 0 R /a120 2492 0 R /a121 2493 0 R /a122 2494 0 R >> endobj 2508 0 obj << /Length 97 /Filter /FlateDecode >> stream x3734T0P0R0P03P05QH1*25 (Ads<L͹=\ %E\N \. @b<]C@@\\\P endstream endobj 2509 0 obj << /Length 305 /Filter /FlateDecode >> stream xJ@ =G>m)P+'z9yz endstream endobj 2510 0 obj << /Length 497 /Filter /FlateDecode >> stream xڽֽ0D."#$O@.pw\g8$@]Wv7#Gp5&xĤ 6?^nn:g>\t'~x?~|t=CWŧU0WB?HR $Lh}>1wOQ;:BKIh%}."/HP}!QCb$L 5o4!w%TЭU)ƄQ5JHpW#v "MU%$U/+Bc$LdzlPT8=l"\F(|f5&>'\ L'e,yH.4 l5(=2mŷY,!Ԙey l?ءvZCR$]l` %fw-b,of5&x6 FGRKIUl,vߞG} endstream endobj 2511 0 obj << /Length 422 /Filter /FlateDecode >> stream xՖN0e%P?iڢJȀbFɣ(~\:sXUaR{ϹrvX/\wOZ쟗Ll! 7)D w"H[*ݕD?b+ɴo#@t@6&RÛJCkB`XƀRՀ\kLk@O3/j"htAwv> stream xn  `^ z)MR{1T͵U(<>X0 kƶcv x ի~뽾pZM t";y}ڛ}V?/> stream x=n0p#$/RJeNNMQr j$[(jA~!Y\ms-MNh~M`_|}ǻO ލ|}~tpC(N䙒{2G·BMѦ&FM(2nZ 4m`&&ן)Τ*( [*T-)D Ţ "QNAM8UZUε:ש7)IMAHA!HG7榓Aȗ: /HITωV,{}+OZ5." t_jwsF0;DǴ jtb0++!#F,Wjg 5Qb$ F1ӴH{ƢOߖR endstream endobj 2514 0 obj << /Length 319 /Filter /FlateDecode >> stream xڽֽN02X%`?!`TD$02`r~6DvI!P@(!PX#H, " 7K*dǁX+9@6(QP cJ CrCOǂ1Q!|MttA\ӻE:`il6Xo<@6X Gp]{?1W5); endstream endobj 2515 0 obj << /Length 237 /Filter /FlateDecode >> stream xս 0 [-P+AAAվPxR+^HK$FmOztSBuݧ|A$7ыeiɟaR9-k 8pJNh8NsΪIi1aNV <;̓XPe*'NΘ3e}> stream x=0&G/3Y H"1T ()@P;7*92EA. )&ϱuώ8F<ݓ;}c)0E?}egvxg^v}Btp'ޛ?H{msi@Zhzlʴ IPas55/U82C7 @F]Si Z٬(@SF!*Fj(ikCHKN:!YE뫦Q$^UjSjҘ5e%\9ɿKp/I{2~kcИAx_Q~CSS)z/U(^'N=YHHCFmƌ!՗DHsF9IXyU)i+$Ro)<YuLW#S/2>_$H'i!l4*dÖlU>ݳ,[b.䅘*${5˴ $9ܵ*噽eQ1A endstream endobj 2517 0 obj << /Length 116 /Filter /FlateDecode >> stream x330W0P0bsC#CB.3JrW03 s{*r;8+r(D*ry(1Q(cAW'W  endstream endobj 2518 0 obj << /Length 202 /Filter /FlateDecode >> stream x1 P BѩP+A'qRGEz4 ƶvCϔ)C!!E! v@UPrĀc=.zfq:@ `RgnN8ye˖-gTb\ Vv* zVX2dAW#E_RIf. zJUIZ<|jd endstream endobj 2519 0 obj << /Length 445 /Filter /FlateDecode >> stream xڭJ@{#>IbP+'I=zPh1Lt VT7a 䢹 xnA.`&Lv ,L;Fga:ӹt.Cl ]lg%$!`8 {8 \naV͹D7ἠi.ݸ~d( endstream endobj 2520 0 obj << /Length 510 /Filter /FlateDecode >> stream x햱N0 @SP)K?(=+ H01 &`d~Z>>cSLT!`C>8vJ|*?iGz̏ZANó\oevZ.;̶WIfslrut/%'F'%pC^IڪLmbFZ h( Q:)A sKkؚ㠢>+>t.F).(+1-s&X(0MT8pnF![lS/ReJjfLjM$1%G0H#,zK~11?FJv$;,7~|;{i2 <ˬ&JjTcBvyP"TWQͧUc$a]hZV-0bD;UA 鞽Ңi\){Iǯi$2@ ,L,]fV>I"T7n&/F~& endstream endobj 2521 0 obj << /Length 294 /Filter /FlateDecode >> stream xֽj0` ['$ z(SЩء%G@fjd'/HA> stream x=0&G/og;WNa,%Hg ]xȜP& /J!e7s&sb2P`H,TH-cvi;2L bRUt? T mm%CIIh@$ -:ޖU[FLS$AH,m( D +=ȈĤETF 7#.#|_H '?l}ez\uQʶIzYEY54^G\UdUT}^ 9p*cӯgS S3l^G`gB9OMR12=oȸ"+M&ƍ!pb nRN p2ljq/e'ˈȗhL;;ۄɰ;XL>ÈʆN1D&N*V> stream xֱN0pIrջ\.1!9D::htx>cB-kr D~zjs> 'g6-3#o+VW?c./^R;n{$Վ&SI6ZLP = +S͑2 (sHٻT@LNJ¡f1Q%5[8lD18y\};ǝGܵ P͉! # rbΠQD}T)+r+^,\*sC4+Y؛}H־(9ǁK|xdЅM.k^:ٹHU|t_^'ik&qOn΀H[-END;Sua?ioB endstream endobj 2524 0 obj << /Length 227 /Filter /FlateDecode >> stream x; @ 49B&k>Vb&GQru7݉),$"?|s}Cpr8}I^0wT9 O|r㊣p49cVEl!Ҡ`E  Ӡ%!pՁAF J@P  iTWB+USF, 07=1I  endstream endobj 2525 0 obj << /Length 328 /Filter /FlateDecode >> stream xֱN0Ћ2DORWiSR$2 Ā:A XI?OȘq, Ȟg|>/KəsResěP e|f W_vbUlS"DZˏϭHW7Z>6XK;k"kp#8A^Ø'O> stream x=@!$4| $癸Vʳh Z $I1yyyC+bUuAUT壢LP9nu(oN9m7:D*5&(.5@='$[z&Mna^QZʡ6D1PzóȺPu!J2 U!]P BŒr$BJmz(PFaڤ հ53iB4i ezk,Ms" 1\!,6@Ab"+BXmJ2pEVP% eHEF(J i5JPغib>5@FpkؚӤ)h.!P[(C_UORЏAND\fϏgq00Ngqt9Dp綳x&jPr<'}Pu5R/vkN_y֜JMBKxP䘾HO4= endstream endobj 2527 0 obj << /Length 419 /Filter /FlateDecode >> stream xڽN0[e%`$@%BR H01 &`d!y&xH,>9vh%jsw|E~_,UjPETz(ij(KJd7,EvaEV]חGNU!3u[NTgjfG ̏vNp ``,#9nj,d i|9swV\=PHm`jr 6.@3΁ 0)@p j.> 0 ;`ZBW Ջ,@măCal1Pyyun&V)YH  `t]@lbC0n @p:vd0y|XR x Xa%UTbk V|5]Kũ㦎Ȍ!{܅|c畸_z endstream endobj 2528 0 obj << /Length 374 /Filter /FlateDecode >> stream x=N0pG*y @bZUbTD$SadJ,10r#x`~Nq&*LϖeG!;FR6[F+v3]ݓEE+jgH~&H^ӧ;/.N(#^3ZܐjIB5G1cIOx6ʨH1[ZZTjTɎE(Vo1K_ mm>h2Pn-ȟGXdH jWO߶51VYc9Vc r$Cĩ8s_PiU(Q/h_ExzmzOLx]#p[ܺց?̠5‹iE.y endstream endobj 2529 0 obj << /Length 357 /Filter /FlateDecode >> stream xՓN@!L#/ӣ<)LXF[QxJ roX~,;ULJRD*tuJxMǥ}u ^- ?wӐ.!m7:rWc/ %bvR6PQ)T*R֍<4\m:bE^n@,Iie$Ψ  [6 }ߣ.`q Ǟo1r4p ?_mO~уU`3g;'sJhjXgd9cv؄G53X& {4$Vuk3|6(DStSX&ᬆ+x&8HF endstream endobj 2530 0 obj << /Length 361 /Filter /FlateDecode >> stream x핱N0KHDzMd08Fgx4G`d {N[ !\'/6y+Kq"xBgz"7/|WQO;<݋')g^ @;?&yx|*tTT#cFGߚjK RFgIAc! 1 'tU1@IoIe3C qG`,Rh-Rdd.RBy 6Sisfo{OuZGu||{f~AHZ؁S`*p@eI+b`(#)&0?&Ϭ endstream endobj 2531 0 obj << /Length 360 /Filter /FlateDecode >> stream xڽN@Ǘl6<aD<)LXFkx4G 3;;ǡ^q^;sG+N\q3b9:W9l7M:mZ]'nn.\fӭenuoShh %"0qhj9uT1''ad⪖ʷn|̇l@ Ç|s,Tx?ѷjk(l0 AL;Q78?`'%L~I0>`D{=c/G+y) BĮo"6tϼxu6ڤDAMj^_49Z9G4-dG5kKC揑H\^/@ endstream endobj 2532 0 obj << /Length 227 /Filter /FlateDecode >> stream xԽ @ +ByEn`A'qRGEQ|1XQWG=hsthSL0㫟`6:javةlgx:w``Ǹ5c4"]*E.AbhaȸBԢ¸Rh#LJe@%VJn!9S{HNjHInb_Kďt})]9&9,sp endstream endobj 2533 0 obj << /Length 530 /Filter /FlateDecode >> stream x͕?0&G/I`YfFZ)؊Q%Z&T\+RxFD! \??۟=]=}W]>&6{x-5vp{ܼ|;םo߸7GvS Sp!`<ğ{M%~ ԱlHRQ _F*JQ1Pb jd *bhPZZ@@P*LUNdw71kIm_NAK:mvPri<'gʒ/;~''2Tأ ^@|-d^eЯqBPiʁ;+|(q!q0"R 9fjiR` O5PJS>;$_H抭aq==d sO`=dΡ׬MヾJ ?^Zr(CqJZC8d\̭X녶%"ju{ww7t6 endstream endobj 2534 0 obj << /Length 266 /Filter /FlateDecode >> stream xԽJA )2OhDxD,$IiNȉysXGG ɸ?IafabvTP^At=)H ~ ky3@9;B5xBE"vIG5kժT%)K7f̫څWjƫe.h]:2-cBRh v*(?Xٟ(U_m~?\0Aֽ endstream endobj 2535 0 obj << /Length 174 /Filter /FlateDecode >> stream x333T0P0bSCCB.3JrW01 s{*r;8+r(DMtQ``o````H2$IpRHd &Cl⒡aX _#HQr8Փ+ W endstream endobj 2536 0 obj << /Length 272 /Filter /FlateDecode >> stream xԱj@ ` -~ˁ)C:NM -l?Zŏу">nmg8/w84GY y6naUy,([` >;0{`ߠXc ˝%VQFtVc"5!:o^ϟ}|cvϼs48 oo9b[l娖JΘS%کh6lHk8>˩$sq|+Zg)aaА` endstream endobj 2537 0 obj << /Length 388 /Filter /FlateDecode >> stream xձN@`.$#O l;L0XXX><%ƅey\dgg680:GgfqzP&]Kiy{JJsVDW: AD% A#"Dz/̨T!0oqj@Q>+[@+ @TfHeF  E\!"bDF?5^J䳽"rP !m +"'屨vu$A1.wa?..qM0g$ p ɳnf -m1> stream x333T0P0bSSCcCB.b%r9yr+s{=}JJS ]&ry(000700DI2؃Iv$y%? JCrzrr! endstream endobj 2539 0 obj << /Length 339 /Filter /FlateDecode >> stream x=J@L70s(uSZYZZ(  ;basXX(s}ɲV(6H2g$(ʇ;޶繹2`D]IicKn}b¤]tjOrrj`2#6Hx!FsaG‚@ QpsҤ%`P%A}9`⸆(C!QaWHa׫[ng*}5/w ͦP>lB]'P{ͦZ7E 5[XW\9V;_A,/4{92JO endstream endobj 2540 0 obj << /Length 256 /Filter /FlateDecode >> stream xԽjA4>]C6 LeR%)SD.p,Haqrpqv%X$Mp`?~bҗMnsM+z2FD; F11Ij 1xHogT  e.D ͏rwTcyzMjgԴPg?Q(n!v5|WyeoP^jWrJK**(?Yٯ(=-%ůc-?[ endstream endobj 2541 0 obj << /Length 347 /Filter /FlateDecode >> stream xՔ;N0&Gع$F,)@T@I:9#Laec;,+p|38N@`} O| 43r}s oϼ\ 'D 34!!ȄrԌ_ Q1V-E:u=GJil"eS>s?gvU\z*@ӝ8fX63.8wإ\D6'՞[Te>Uaȣ -sY1/g_gzO]ЧI> stream x핱N@P\ Š*L0X!|1><%aY@FoٽN;z5W{:TP]hy-u0y CX H+ҏݥJKδ eRB$Ja>  jɡؒK1k(p,y$BL"m#Q# XcEɨLlThLM$# eOC*: jC$(Ӕ~f/Q'N~Cрoԍ]P>m>*#r7}iwFHycNV4DUc@v\uRt<†P > stream xj@sy7Q@ T= TOd endstream endobj 2544 0 obj << /Length 394 /Filter /FlateDecode >> stream xuN@ etK!TJ;E*EL @0Ǐ$k Z*!zڿo:Xla,¼nVrj{Sۺ2ٔb]rgz4RȉdZ"!_ah u^ߺGX?JL 3 <@1dȐ*$  0ShTz 5Dbބ°40Drc-e\FUdh)SV1\\L d ))8 'A'0Bq݃nbz>q['e2~ှfIrFpa^7ex!d{eOs7wB}d endstream endobj 2545 0 obj << /Length 243 /Filter /FlateDecode >> stream xӱ0H-y hVP?8(}b ZEL nmk [6 ߛ[b'5uPw ToG j32y+O@>FXA\GU C;s)+य़k,La8ŹIjK3 DF#behLB,VӨ?"?Ґ endstream endobj 2546 0 obj << /Length 258 /Filter /FlateDecode >> stream xJ1,{e@4!P+AO'CE#8B"x9$|$O'j8#B3H0CX)pw(d\s/ϯOF7HxO'Ќ.LU/3G2(_ɄM$dʬvw*~rMmMUID'N-eUx?&\BJ(^y4l4pV_ ;kY]׊[6-e ,J endstream endobj 2547 0 obj << /Length 499 /Filter /FlateDecode >> stream xڽձn0` p#/r)PکCѩ!AZ|3Q5b;R<&Ue2 O>N]w{uWwէw>yS-xuq{|:ު_[eegb{X^.WnH,R헡~%rQ!҄d.S'X>Rr/I"5)L&J\n@CA#/A#1w=)XAtJays@r%ٸiHS"_CF5&! |܍d |i 4&ZHA— H:S`?zJSM)_Gbl2"LLh9R_ 9JcWLS&#/P' IG@$hdJJc&7C9K{I3 $Wb,W7@]DҸ69#O-pJI#7Bx*Q"ۄ>$9MI ?_3^ endstream endobj 2548 0 obj << /Length 415 /Filter /FlateDecode >> stream xڵN0e%? LJȀbFɛU(}"9MU9_bٟ;ګ {m:k/Ƽ[ <㫷Outu?o޼Xӽ~oK5P Jz@ONZTj*,x"a$*TYp\Ra5Va5VaUXUXUXUf7'BjId $RK*$sDX1Q PGP&2kƂԤ̔j *SSYjr播vL I9V8V.R Vdj@I{E{e@̩\R Z̬j+Z3gOPRMj!Yb mBFp|Z83QmEwռ-dxsw~I endstream endobj 2549 0 obj << /Length 349 /Filter /FlateDecode >> stream xN0K\x ՘=k"=y0{R4zGQxci_$$A؄c3Wds .+"vBv>~|B|O2Ł3V1JĚphdtC̠ʱU^]ca   5r2Mv2߫YG Me W#Wѭ4fppd<ЊZ9)]k,eFN,"W!wf3gt\4sԺcK7}D+OjP'u8ѽpPӚ^["o@3=y_s?/sĞ/pS|~ endstream endobj 2550 0 obj << /Length 160 /Filter /FlateDecode >> stream x3434W0P Ʀ )\\@0,ɥ`nʥU()*Mw pV0wQ6T0tQ`~03gY`,~8?cUAX⇱>XeFY,X%,.WO@.QlN endstream endobj 2551 0 obj << /Length 481 /Filter /FlateDecode >> stream xڝ=0mKW@&B7T)@T@IYe%L1g`b97x8=cyvǧGq4_&^ܟ֟fxf8߾~dh.m}o^IaL*m10RJ4'xݬi[6 ОЭe? ,E%D6rDi&+j{5_ʖéZqvmA]Z> stream xڍ;N0&G/I@h7UeHJ 8GQr)g֙ᱷȷņg,yqy_ v5d٭gY}ǿ>X3ȞK)[ǩ LQbUJEѰHvP)Cduu(#PZa͢D #bjTXsky]L?<`ќ]>ο , gU5 LQά9dm?x ,f<06VAC:9E$" $]3|(صGFbl>M:>u(0PB3*ԫ9'FТGՉ<e;4SWf? 0.Y&XxZ£(_YA-{5pig#I%t }#Xlm;l?$FԿ vS <, endstream endobj 2553 0 obj << /Length 321 /Filter /FlateDecode >> stream x1N0Z,yB'KHd@1#V(9BC҄<g[^sSUlyj<[~<<^զRŽY/Uq=l1/^y|T,b.Mvdp r$kr#;X%Yٓ-,ٞk8ߑȞ7[X=%Yp#ؑ=<[XpKrav#{:HnaA"n`YÚ> stream x=N0`G"yD|HCULJbFHb=D =PbCɩ]P{pD^&0 /S~y}'K_D'BSt+ّ*dP]BA>w+!*6@c٠A`chDX@vm`X >6ڳ&B4j)gBEr)Ϻθr%\Cz3* |/^zMcQbee;ϰUDi޺Mع(RKA]X)#D%0fFgB %m6 7l8ƥl}ʕ.t7%w14A؉2\4"gx2&,OU5̔ﭬs}v/c֮FiKj]Ɨ1/\ endstream endobj 2555 0 obj << /Length 497 /Filter /FlateDecode >> stream xڵϊ0 L^`TYv Ba]9zڃV<Q=Ρ6~df@0I6m\.^uK1fB_ѵzg[mM6z}㫩߿vom>ݍSO(!6zHH aϷÈ̷O@O_+~ǯ"ecWp2S݀Ìx5 zlӐ> qTQj)f<5jeVe v?bpNGRjN2L` Ew2g/6ŞG*hˁ\|R`+~$?%OK(uRl>_<+ɠdċۿrW}=)OuyKʩ8}3WS1WTOd̩S8ui%WEI5 F­@U}$i~(UZ"z)7;q endstream endobj 2556 0 obj << /Length 344 /Filter /FlateDecode >> stream xӱN0pH.> stream xڍ0cƏ`nSY:-@WW GH"d|r)nf<_/^:tOw_>Cov[ߙݝ9&=-LM~,&Cb8WBMj>,Ft"=If"?-d|e e?,{ ƍ+Q"I NVWy(a-yNJ +^J Zi)P﫥ȩ"KΉzZj$v Wafƣ!FC$&Q "cĔdT b89 acK[ )j1=BN9΍KIeҷz_WvTlhK :.9]"r`8L*&b c8h_ @DvLN9Z0ȝj;cArJ) %aC).ey\e]qT6 nM^VWyY9$ʡ%Gܐ秜jes7湞RKiOFvCLrFba {~UL:lw~1 s_ endstream endobj 2558 0 obj << /Length 503 /Filter /FlateDecode >> stream xڵMj0p/ .xP2KBgQhVY.HHv&$>^Oєi0X4IsfV5ߘ5[ѷz>o7bknu?擹{MK1zsi]\s.$lwUBJEunp4͍s~嫦{+8RIBCc_2gR/mt9LVXq1"Abg/aj8fxg7VaX*Ua(rzcT$]r 'i^%ߟ>#6Jq endstream endobj 511 0 obj << /Type /Font /Subtype /Type3 /Name /F28 /FontMatrix [0.00484 0 0 0.00484 0 0] /FontBBox [ -11 -42 219 145 ] /Resources << /ProcSet [ /PDF /ImageB ] >> /FirstChar 27 /LastChar 120 /Widths 2559 0 R /Encoding 2560 0 R /CharProcs 2561 0 R >> endobj 2559 0 obj [126.2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72.11 0 0 108.17 108.17 108.17 108.17 108.17 108.17 108.17 108.17 108.17 108.17 0 0 0 0 0 0 0 163.21 153.72 156.25 165.74 141.84 135.83 170.01 0 79.07 0 0 129.82 205.13 0 162.4 147.71 162.4 159.73 0 150.38 166.14 0 223.3 0 0 0 0 0 0 0 0 0 108.17 120.19 96.15 120.19 97.59 66.1 108.17 120.19 60.1 66.1 114.18 60.1 180.29 120.19 108.17 120.19 0 86.55 85.34 84.13 120.19 0 156.25 114.18 ] endobj 2560 0 obj << /Type /Encoding /Differences [27/a27 28/.notdef 45/a45 46/.notdef 48/a48/a49/a50/a51/a52/a53/a54/a55/a56/a57 58/.notdef 65/a65/a66/a67/a68/a69/a70/a71 72/.notdef 73/a73 74/.notdef 76/a76/a77 78/.notdef 79/a79/a80/a81/a82 83/.notdef 84/a84/a85 86/.notdef 87/a87 88/.notdef 97/a97/a98/a99/a100/a101/a102/a103/a104/a105/a106/a107/a108/a109/a110/a111/a112 113/.notdef 114/a114/a115/a116/a117 118/.notdef 119/a119/a120] >> endobj 2561 0 obj << /a27 2509 0 R /a45 2508 0 R /a48 2549 0 R /a49 2550 0 R /a50 2551 0 R /a51 2552 0 R /a52 2553 0 R /a53 2554 0 R /a54 2555 0 R /a55 2556 0 R /a56 2557 0 R /a57 2558 0 R /a65 2510 0 R /a66 2511 0 R /a67 2512 0 R /a68 2513 0 R /a69 2514 0 R /a70 2515 0 R /a71 2516 0 R /a73 2517 0 R /a76 2518 0 R /a77 2519 0 R /a79 2520 0 R /a80 2521 0 R /a81 2522 0 R /a82 2523 0 R /a84 2524 0 R /a85 2525 0 R /a87 2526 0 R /a97 2527 0 R /a98 2528 0 R /a99 2529 0 R /a100 2530 0 R /a101 2531 0 R /a102 2532 0 R /a103 2533 0 R /a104 2534 0 R /a105 2535 0 R /a106 2536 0 R /a107 2537 0 R /a108 2538 0 R /a109 2539 0 R /a110 2540 0 R /a111 2541 0 R /a112 2542 0 R /a114 2543 0 R /a115 2544 0 R /a116 2545 0 R /a117 2546 0 R /a119 2547 0 R /a120 2548 0 R >> endobj 2562 0 obj << /Length 236 /Filter /FlateDecode >> stream x3Գ0V0P04Q52U05T07UH1*26 % ɹ\N\ f\ .}O_T.}gC.}hCX.O (`n !>a"*@ Dȃ$@Aň"~T`nHܤ`f0!Y !Tkvۡ)؈xxrpKps8(fHb.WO@.EK endstream endobj 2563 0 obj << /Length 215 /Filter /FlateDecode >> stream xڕA AA;@`߳m(Q<')B~)~I.avvfQjCa!VjU!lAGb 9 dwd !²!L(yOK7?#a̙97J: b2]g#6\b"|cQ p\5Pc endstream endobj 2564 0 obj << /Length 143 /Filter /FlateDecode >> stream x3Գ0W0P0S5T02R04PH1*24(YBs< M=\ %E\N \. ц \. !?d|AA-  0`l`n`gJX0`r #+ endstream endobj 2565 0 obj << /Length 246 /Filter /FlateDecode >> stream x]ѽj0`0=ANJc!-,~? :%tۛ gxonQbGP&QH/X֐`C`^!g i&^2P{ԾQ`|J'Ql¦g9nٞQ7R&Mb?;F;klJjIr~V6̢NM;!) ; {vF=B&?Ň endstream endobj 2566 0 obj << /Length 290 /Filter /FlateDecode >> stream xuN0/> stream xڅJ0)=roжKi]X`z ԣAl-G1q&I]D{J?IgZJL1t 3*FS,~YnkbeR_ǓL dû {Y41 aX]L6 6T8вiR%p V+4hg9Aol3: 385ScjfT濞}9>t *S|Ե=R"um1⽨}[+ؿ–Ԙie-o endstream endobj 2568 0 obj << /Length 281 /Filter /FlateDecode >> stream xuJ0 9, l=,AГ Gˣra83Iʪ/CӁ2\gƞ#W-Z,e{c>?^\^˵yMyT@SQjqd,;B1 ͘QAF |+hOE!Xxy M[!"C278^P<ѧx> stream x3635V0P0bK3 CB. HrW01r{*r;8+r(D*ry(00?&@ddIfd?I~I{y?p829ho|HPՓ+ j6 endstream endobj 2570 0 obj << /Length 350 /Filter /FlateDecode >> stream xmAJ@7dEzs"SYr!ԥBb+ x`A.B6a/odxR51VcTݣ2VT&XI~^d2 ȮC - ϣA;#:o[sF4P9vcaر?:v9@v ]|hl2g.#_'9.:;G U5uC,W endstream endobj 2571 0 obj << /Length 281 /Filter /FlateDecode >> stream xmJ@)=`^yMJڃAГ=g- =H|d! ,dvu~]PF-in%,V\̴"3o0}b 1n1  |90h7 g5E7_({[#W`k51 ` uQ':HU_-h _>/qAzJq;[j{R=ev }!(w5i:5ѝ  endstream endobj 2572 0 obj << /Length 293 /Filter /FlateDecode >> stream x]бN@Pl} M3D+ cM,h([R\U_e׺toTENE*gyPJ%OUrGeT]%ۇdS~QN@ a{F4讉>C]6q aO̪qӂphA;'[tž {%V^*"iFVZw_F/ DŽ3G9r:C;> stream xڝJ@/C hiqV0<'(TQA>ZuvI/Lfwy~rZr\\+TS_hQQrENɵ)VL3J|q@ՒccZ( ш~z7b˵WVhcp褑'~PcnH>S{ęʨ8xĽ6f9p3#~>3N3nLxNEuBiw=bEܸmqa [C{L0SG@*, endstream endobj 2574 0 obj << /Length 283 /Filter /FlateDecode >> stream x}=N@Fbi|'q4X AT(PRM8GHŠAJCV/L1a endstream endobj 2575 0 obj << /Length 232 /Filter /FlateDecode >> stream xUϱN0?` @BR$2TuF@R?Z$^ďCUYb컳u/ /l- kZ]W/ﴮ(bk(:Ֆ>(_?ܲT7,vTmr^HT[ s碆ou@3xMT#zU#iGu;*Y}(92&4i)uQEmfbD%bp&a)u=ԯ9ߕUH Z endstream endobj 2576 0 obj << /Length 263 /Filter /FlateDecode >> stream x]J0s/ymYw{qa]=yOQpEaͣ|=tI6?:UX*Tt>+XtZ55tE}/P,o/QA#+dG[;y]Ċ&rG|!nMʶr9&s"s< 8%v\-AEpA&}jXnEr0#SwDJx'4;wsl_o"ٛrwi\p(tg endstream endobj 2577 0 obj << /Length 217 /Filter /FlateDecode >> stream xu=n@4A<ełRa).*J CxG.,gD4v! _{x S A^N2TG&(Jܧ7⪵~-uS[ Wu$ bJ hƤ!ˌJp3""Q4zj"| Ĉ404Lg(HIBI_YU!'J endstream endobj 2578 0 obj << /Length 264 /Filter /FlateDecode >> stream xUнJ@H&/ d^@\e<VbWZ(څKW L"$d%ewYc1G$bfc9W2F|n^hQx&Z)ncGc )2NAp* Ǐb4(*b FZ¯Z"nTX'{8N<*Z[8Ϳֳh`[Nho.w?uD_ߩn 6+/ި#Mn2&"UFw v endstream endobj 2579 0 obj << /Length 263 /Filter /FlateDecode >> stream xe=NP!L `. ./YD 0VjiM,J(#aHHUN1-$쌖9=&i˘V㓇gn)P]UqMoO67]B=[耯^+Bϭ3k\3X;o!wZ=|U%mI Zy2VɰȌj"T&vYѷш 1 Ake;(/xA endstream endobj 2580 0 obj << /Length 210 /Filter /FlateDecode >> stream xڍ1J@ [,L^@\@7@B@L@+ yRXE!.#lBM"_39= d鸤P]]h*  %Ǩ =?ܣΩDmIZ7o+d? &/EP"xdQFXpyH3y-Ό ;,TlUQy|R> ?bkFW endstream endobj 2581 0 obj << /Length 182 /Filter /FlateDecode >> stream xڝ= @ [03(@PL!he!Vji(XQ$-4`yjZ53 yCBE̢1,{ Cw4O endstream endobj 2582 0 obj << /Length 251 /Filter /FlateDecode >> stream xUαJ@ [y#;/I`C8<8O0Ub) W'A,7YLNgsz*,?Wf`{%W5W%ޢRlg gl,Rcޜ5C.1y6sNú4KH9 =nNU,uJ7N TlD)bx!?n{Hv1DT7RT5 Y*qwN29"'.޽LVN%#Q a endstream endobj 2583 0 obj << /Length 214 /Filter /FlateDecode >> stream xMϱJ@I&y,GHL!he!V\hy<–[;g(|,?9riU˴b^^hۑ}UMVd;z%aGvOgv ~Ll|*C>pD6aF&y+\(?6/Y g!.)ӼP &!+GeƷfkږ[/д9h}GZ' endstream endobj 2584 0 obj << /Length 196 /Filter /FlateDecode >> stream xU= 1 S h6l-,J- =x=JrşDDx3j)ƘbSָRĕ1@/9$9 15ޤ dtsVї(ksiU7ǃU)?aIb cENz'KQPO<6 )'w/nL -EB endstream endobj 2585 0 obj << /Length 226 /Filter /FlateDecode >> stream xM1j0d0A.jh ĐPt2mI Cu4%GءDeRI|BTLo t\\>p 3u7Vg-bG}.Vw]:l#RsPI;Rz < H`х#JCs;H ehQHs&I翃edgc6/s~#Cr_ɓǃC endstream endobj 2586 0 obj << /Length 189 /Filter /FlateDecode >> stream xڥͱ P# " *C AAM TEk(>chp~pܹC!$txC7!>+)=5( = x$"$iBFJJYJJ˻%D~ь柼Yإibc)g'lB 5F֨]-\/N endstream endobj 2587 0 obj << /Length 241 /Filter /FlateDecode >> stream x]ͱJ@ba B4ɑ@*L!he!Vz) )vy}K S|30rVr%_d\ S6n^ִ(y%(Y_sFɒ2NZ2R?n-bk#3qnOdzty|.; b+z9lzH#tB8CLFZb3v]zqnwfwaoUdZ ԀT@h6 endstream endobj 2588 0 obj << /Length 225 /Filter /FlateDecode >> stream xMϱJAo` f^@7GV؀H"xXpBѮk#\"^r`+f?sx9/yqN^KLq;/*21N>.R]ɓZ 6_`v ̴s( EDynܠ {Ob{b8#%=i2 @' Tl(r} F|SPs endstream endobj 2589 0 obj << /Length 226 /Filter /FlateDecode >> stream xڝAJ1E"P uM70\+u)(B#^ XEr/p!}O:GZ9t/tM~ח7|swKㆁw84%Ж4(d͓?V'؄ !pДYP1Udm# u/-WM&:Q͈j6hb:Ԗ=S5P%kj4t>hBH endstream endobj 477 0 obj << /Type /Font /Subtype /Type3 /Name /F26 /FontMatrix [0.01004 0 0 0.01004 0 0] /FontBBox [ 1 -25 97 75 ] /Resources << /ProcSet [ /PDF /ImageB ] >> /FirstChar 40 /LastChar 122 /Widths 2590 0 R /Encoding 2591 0 R /CharProcs 2592 0 R >> endobj 2590 0 obj [39.83 39.83 0 0 29.87 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72.38 68.55 69.7 0 66.06 0 0 0 37.53 0 0 0 87.31 0 0 0 0 71.04 54.77 0 72.38 0 0 0 0 59.75 0 0 0 0 0 0 49.79 0 0 49.79 44.81 0 44.81 49.79 29.87 0 0 24.89 0 54.77 49.79 0 0 41.08 39.83 32.36 52.28 44.81 0 0 0 39.83 ] endobj 2591 0 obj << /Type /Encoding /Differences [40/a40/a41 42/.notdef 44/a44 45/.notdef 65/a65/a66/a67 68/.notdef 69/a69 70/.notdef 73/a73 74/.notdef 77/a77 78/.notdef 82/a82/a83 84/.notdef 85/a85 86/.notdef 90/a90 91/.notdef 97/a97 98/.notdef 100/a100/a101 102/.notdef 103/a103/a104/a105 106/.notdef 108/a108 109/.notdef 110/a110/a111 112/.notdef 114/a114/a115/a116/a117/a118 119/.notdef 122/a122] >> endobj 2592 0 obj << /a40 2562 0 R /a41 2563 0 R /a44 2564 0 R /a65 2565 0 R /a66 2566 0 R /a67 2567 0 R /a69 2568 0 R /a73 2569 0 R /a77 2570 0 R /a82 2571 0 R /a83 2572 0 R /a85 2573 0 R /a90 2574 0 R /a97 2575 0 R /a100 2576 0 R /a101 2577 0 R /a103 2578 0 R /a104 2579 0 R /a105 2580 0 R /a108 2581 0 R /a110 2582 0 R /a111 2583 0 R /a114 2584 0 R /a115 2585 0 R /a116 2586 0 R /a117 2587 0 R /a118 2588 0 R /a122 2589 0 R >> endobj 2593 0 obj [1000 500 500 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 1000 1000 777.8 777.8 1000 1000] endobj 2594 0 obj << /Length 208 /Filter /FlateDecode >> stream xڥ1 @EX t$ L!he!Vj)(rM\ ~}>wU>$]HYDQLbJX xɷH"ZMYVx@h egR4ah#Kju4ӒJ&YHrb`.j\+hcc%*t!AfM* endstream endobj 2595 0 obj << /Length 207 /Filter /FlateDecode >> stream xڥ1 @EXS 8ͮ(VbB9ZRZX&^x hec5a㣤 jtLaLbJXV oD$N8x 0lX@/C7蔻B f 4VVkφcx}A#/k TZ;ƺԷt%E" }bS[. endstream endobj 2596 0 obj << /Length 197 /Filter /FlateDecode >> stream x37ճ0Q0PP5R0P05RH1*2 (@ds<L-=\ %E\N \. ц \. @hm@h~ T.TP~4C?`72jj(́ f/pw 7hFF@3?ЌfG7:Փ+ 1?0 endstream endobj 2597 0 obj << /Length 192 /Filter /FlateDecode >> stream x37ճ0Q0PP5R0P05RH1*2 (@ds<L-=\ %E\N \. ц \.   TJAivFN(͌nь8>f .͎f4ۡꃙÏj^;P 3 A3hڠ\\\0 endstream endobj 2598 0 obj << /Length 104 /Filter /FlateDecode >> stream x37ճ0Q0PP52T0R )\\@aTr.'~% BIQi*S!BA,B08?0q.WO@.p0z endstream endobj 2599 0 obj << /Length 116 /Filter /FlateDecode >> stream x323P0PaCKsCCB.CrAɹ\N\ \@Q.}O_T.}g E!P EAtX߀3`r8 b vr \\\1> endstream endobj 2600 0 obj << /Length 134 /Filter /FlateDecode >> stream x323P0PP01P02P0TH1*24 E,!2ɹ\N\ \@a.}O_T.}gB4PO,C}?K` @cs3; CPՓ+ a'V endstream endobj 2601 0 obj << /Length 183 /Filter /FlateDecode >> stream xڍN1 @\IMK1WZYDKENvOLq/ZX2;3ɨ7PD)>%:d2 %Ө̌.U>SULMA 7NnC?[e3򦁠:Whƻ$8+)'!m|=N . *kV endstream endobj 2602 0 obj << /Length 112 /Filter /FlateDecode >> stream x37ճ0Q0P0U5W07T05WH1*23 (@ds<L=\ %E\N \. ц \. @p F0(h3F+Փ+ Q endstream endobj 2603 0 obj << /Length 136 /Filter /FlateDecode >> stream x323P0PP5T02P04PH1*24(YBs< =\ %E\N @QhX.O9   fv6> $'W  ' endstream endobj 2604 0 obj << /Length 95 /Filter /FlateDecode >> stream x323P0PaCKCCB. \.'O.p KLz*r;8+r(D*ry(177? 'W  endstream endobj 2605 0 obj << /Length 166 /Filter /FlateDecode >> stream x337U0P0U52U01QR - 0\.'O.pc .}BIQi*S!BA, !',@( p8#D` 0D >\!졅e8=2=-#2,)X7\=(o0 endstream endobj 2606 0 obj << /Length 105 /Filter /FlateDecode >> stream x323P0PaCKcCB.CrAɹ\N\ \@Q.}O_T.}gC.}hCX.O9 Ėc `3Փ+ ( endstream endobj 2607 0 obj << /Length 147 /Filter /FlateDecode >> stream x323P0PP5T02P01VH1*24(As< =\ %E\N @QhX.O9 Ėc L1?K` @cs3; CPՓ+ L2 endstream endobj 2608 0 obj << /Length 108 /Filter /FlateDecode >> stream x37ճ0Q0P0U04Q07T06SH1*23 (Ads<L=\ %E\N \. ц \. !Jo`T\=2 endstream endobj 2609 0 obj << /Length 172 /Filter /FlateDecode >> stream xU˽ P ( "ǩ rjj@fϥy)gBápe—$>%|4'2$g-?+n}NgAJYM@;V 5&#Q SC!6J(l@u C+st5 endstream endobj 2610 0 obj << /Length 94 /Filter /FlateDecode >> stream x363U0P0T0P0"CB.#3D"9ɓK?\ȌKCHx*r;8+r(D*ry(6#' endstream endobj 2611 0 obj << /Length 172 /Filter /FlateDecode >> stream xUM PE> stream x337U0PP05W01T03SH1*26 (XB$s<=,=}JJS ]  b<]003g`c?0<'W  endstream endobj 2613 0 obj << /Length 141 /Filter /FlateDecode >> stream x337U0P04P06U0T07TH1*2͠Rɹ\N\ F\@q.}O_T.}gC.}hCX.Of{ @a`~0ÅXa`c`Փ+ }=x endstream endobj 2614 0 obj << /Length 181 /Filter /FlateDecode >> stream x1 @/BnV@` A+ RK Er#Ep"[9-6 :'r"qMg Ɂn?QVpZHKXr;V3֤rjvT ,d<[ih1 ' %WqJ|k;pQvGƺ~J~JHw endstream endobj 2615 0 obj << /Length 193 /Filter /FlateDecode >> stream xѱ 0_:n#xO`Rd@+AAA(}j]Arnc6ܗ<2|Lڇ) džBnIK^nGՌ# o#6;JN-(_)/|bAU+V]U"sbh9RI+[9hJm+܇Ͽi&c|/?yJkzo endstream endobj 2616 0 obj << /Length 165 /Filter /FlateDecode >> stream x3534W0P0bSCsCB. I$r9yr+Xp{E=}JJS ]  b<]```d𿁁? R@J " I;ddG&\=( endstream endobj 2617 0 obj << /Length 227 /Filter /FlateDecode >> stream xҿj0d0P= ";͐:v:;4$[@ŏуdPB@ ohMgsNy#_p{F_Z퓖 skx;|]>?rFm+U%E+H>x(I L:QGӢŒJrѠj0G]rnu\dHHIoDE[UE/t< endstream endobj 2618 0 obj << /Length 257 /Filter /FlateDecode >> stream xuбj0d=A-pHRB;u(@19G#d`d |' 󟖋;}O5\RQ`ȻO}c~[zIc%a,D!Q$mbG2bWh*^jL/.i AjS]3}`qd;<z<ĠuH> stream xڥѽ 0ةP+AAAѹ}> stream xڽJ@ƿ%``  h`xp` A+@--|tv)-­WXZdow*;9-8㒏 >+1*R̸*gZ֔Sz-eJ~{}ty{9+Sb 頁Ș2ԠFJ -_5J5f҂Fvh4P"VeF T߄iӹ{ =#0s@7IMlVMts~!|.G9#٘0\f {qo@W5/XI endstream endobj 2621 0 obj << /Length 220 /Filter /FlateDecode >> stream xڽ=0$N`!!U'D::htq@ZmIjlB-$CϐOj^gHs`[1e ,_z?Kse0C (eml dE|QbM*mhVK;-Fi,IUAmluΧl.CNZ=xں%giz@6 7 endstream endobj 2622 0 obj << /Length 202 /Filter /FlateDecode >> stream xڅѽ 0+n/ t N&X؏+blkqRv= (+%66l8T(ԏPL]jFyb8QbL51|=3;*X(mu }6f\-~ͽ xTk݋6o]ÖoW1\9_?D߭k endstream endobj 2623 0 obj << /Length 180 /Filter /FlateDecode >> stream x3333V0P0b3 PH1*25\Dr.'~)PKW4K)YKE!P E?|@``PL1C(F*  %CA(6ŃF1dP(UPP9J>TxHJ(`\=|3 endstream endobj 2624 0 obj << /Length 296 /Filter /FlateDecode >> stream xŒj0OxܢGн@kg!M ԡm-@^[^[WI qUutqE+ z+̟00=}c~ =T`!gA@jT, 8_=eCAMF^ |:I *@=N` ڝ 垻ḱ69&>0s!of &jɤbu gϫC0IF)Zm* endstream endobj 2625 0 obj << /Length 130 /Filter /FlateDecode >> stream x373T0P0b3K3 CB.31s<L=\ %E\N \. ц \. ? Ph707000c~4ȫ_4,q.WO@. endstream endobj 2626 0 obj << /Length 112 /Filter /FlateDecode >> stream x3634W0P0a#3 CB.# I$r9yr+Yp{E=}JJS ]  b<]A~y) \=i endstream endobj 2627 0 obj << /Length 171 /Filter /FlateDecode >> stream x1 @ [~/1FJL!he!Vjuh%GL7pWjRVsȣ BRJœϲ?SVp\ؚdq$fyQ3ƴ_@ x6QjykaD D~:Vht%7Tm endstream endobj 2628 0 obj << /Length 295 /Filter /FlateDecode >> stream xeұJ@ )^@>IDb<VbB29,|2IHyEqwv0Wlfl~_ڑ0)>a:q{q kY Ԥ/Mj[:cЌvt֡XQ(jE/:A f SZ xv;]EoclZP7cC+O+h8"ΰk=8Eѳ>̡(Ɲ0M4yt^i$&"귁g^* endstream endobj 2629 0 obj << /Length 152 /Filter /FlateDecode >> stream x33г4R0P0bSs3 CB.S HrW05r{*r;8+r(D*ry(*P 2C@,dBPBՃ)A0@\=R endstream endobj 2630 0 obj << /Length 258 /Filter /FlateDecode >> stream x}J1 ] {-(tdibVp> stream x]ѱJ@ Lᾁ'p<8O0)V"*+ϑ:Ygw{tx-(9bA1=3?k*hmuAoh]MN-V+rn`f \uǦxY> `=jx烷li'^ b8vUx谈 endstream endobj 2632 0 obj << /Length 280 /Filter /FlateDecode >> stream xڽn@ Ǎ2 y/D%dCJS کC!Q&<#02\M90qwYSL)ݭ(K(3SR7n oN>f3?_h/{B@J lF3@.!-@A> Aވݜ*PB QAo"|s Fà \Ji oץ%Ocj{:T~LpaE `M5(QlWq2 endstream endobj 2633 0 obj << /Length 184 /Filter /FlateDecode >> stream x3336Q0Pa3C3 CB.S3 I$r9yr+q{E=}JJS ]  b<]dEL0 JP 0QR(ڡfZ D}L1Nqzrr) endstream endobj 2634 0 obj << /Length 366 /Filter /FlateDecode >> stream xڽJ@ba b4x;),D)%eGouwf͝XݝG#Oj|ƱOLSs],эJS]sAFSL&*vӺ&h |2 1&@4ncoIe[z YEC>Cf"h Zp f VkmC:6dпAEmvP'0lLlaFjo)\#D=b22^Ux3Гx>:2@yK(֐Ie#|wF&u~ ' ?@)Cfwk|OP6y.'r endstream endobj 2635 0 obj << /Length 252 /Filter /FlateDecode >> stream xڥҽj0p [hd`e3$)C 2@!!G3U?& w0 ,N=j7>FTҿUx4F=E_%\ᵀ=/ɸh endstream endobj 2636 0 obj << /Length 289 /Filter /FlateDecode >> stream xe;N@rai=`;qѰR.@T@I.J|7a҈$Ci>˳؝I}^M iI/y78K6'of֘)nb-}~|bvwE)XQd9!a"[d72EW:,wX=0;rؙnW-WzUR,k9M<Iz:HxDLՐc|c=1;2؉^]Aĺ7_lo'kH;tۀ_"=\lhsoW endstream endobj 2637 0 obj << /Length 160 /Filter /FlateDecode >> stream x3731R0P0b3s3 CB.31s<̌=\ %E\N \. ц \. A70``a~@ m :y 4!B3  4'W +q endstream endobj 2638 0 obj << /Length 210 /Filter /FlateDecode >> stream xҽ 0+!vuФZj? N⤎nBh>PWj#:,{)=F(c[eZJ *8~91d plp/ër endstream endobj 2639 0 obj << /Length 280 /Filter /FlateDecode >> stream xuAK0W +<4œ`Z>J](6 SR+4)U%]\KwWfp֠zyTUsG_fk*Q$͜sP/r2 ~rFX cu jY1&ANdZ0#0@c+/=lDmGg&FK? vGcp8 h¬Xemۤ6P!!cx=K-{ endstream endobj 2640 0 obj << /Length 333 /Filter /FlateDecode >> stream xڍAK0 ^{6LSaNAODGaRAaԉ.x ?dJg9*9g9Цӯ'9+ezӉL/h[%=tvuLx0ȶ `ka5@!F֠%~ CnɱCȅsZnpIm1u2c!/Wܣ[P `Q P{&{6Gq.L!qvNCQ&yи7> stream xeJ@ \{O`6 9z B@= *zNn֞<9P)|3<=6ZS^ ~B_ԺU֪s{??Uе6Ax42,$X@9!42;dH?@-9qp(GX ^ ,#%(B°[A I0Fr': sAއEV#a9a?1<HQ#uҙg,q͠4mLƽ#nW6!en/iX endstream endobj 2642 0 obj << /Length 258 /Filter /FlateDecode >> stream xJ@ P<(=jsɃ QPsh(y#3݃HH6쟅Tg',|Vt~AO%aeIʃXSeXԷfwE%[z{o2`cG{! S8A(_fX$:X ^c)xH"U'4FUi*RWg #V]@"  -@2O-s^x½ endstream endobj 2643 0 obj << /Length 229 /Filter /FlateDecode >> stream xuϱJAba yh+RPK E;1 tƽpS|?;?xžjs3TC=-r+SrgkkrKyrM͒a{ծlB-`a:`u)xuwGW2&e˯ɦnh huaǨk} [ bԪob"EzONoɌla endstream endobj 2644 0 obj << /Length 213 /Filter /FlateDecode >> stream xѱ 0; 4X-P vtr'uTt7)7&/“ h4"rMӘzd endstream endobj 2645 0 obj << /Length 203 /Filter /FlateDecode >> stream xڝ 0OKдv vtrAPGAEA0G#8:ANȹ-Lp;"dJ Z_V[UglJ#IWc>NҽIs-0pu@܀_x vZհu/{#ҡ^EA^UzN4 E A2;Wa V4'VhLr endstream endobj 2646 0 obj << /Length 212 /Filter /FlateDecode >> stream xڽϱ0$7 x/$N$ &:9'utf,ƣ Fp $K8q b~bNe/DF4AFGi[?2%72byg6Nh:]hBQ֩L)϶?$nId[XmFiǞzՊuA63` ^j endstream endobj 2647 0 obj << /Length 210 /Filter /FlateDecode >> stream xu1j0g<7 41'z(S$ MHXGQ|JW\(T 7uN3uki1}.Gq%Cf&u#U])Yϧz\R׹fi WOp_PI! I@*#f%#~,K{ǏT#,ΰq`(nYsLޖF^V2 endstream endobj 2648 0 obj << /Length 156 /Filter /FlateDecode >> stream x33T0P0bc3sCB.cc I$r9yr+s{E=}JJS ]  b<]000```!$T ?h A30c T" h2FG&\=ak# endstream endobj 2649 0 obj << /Length 275 /Filter /FlateDecode >> stream xڝN0?+C$/~ @pKV*E"L02`ȣD`7я$7d*:}$ X endstream endobj 2650 0 obj << /Length 167 /Filter /FlateDecode >> stream xα @ ;:'zx: 7:9: *:{G;s]!3pck8YǸh PsNA^/r9E l BuL[VeTɎdÞ@`_wV| 䈚 oafaosK endstream endobj 2651 0 obj << /Length 125 /Filter /FlateDecode >> stream x323P0P0b#S3sCB.#C I$r9yr+r{E=}JJS. @-\. ? :  .WO@.P endstream endobj 2652 0 obj << /Length 161 /Filter /FlateDecode >> stream x33T0P5U52P02T03WH1*22 (Xs<L=\ %E\N \. ц \. 6 ! Ր#0$z $!03`a |\=[3 endstream endobj 2653 0 obj << /Length 220 /Filter /FlateDecode >> stream x1@`CW ,I0Q ne!V*Z'7J+)Shfe=1fOA2∇n'MxӞ#슓U|<)dg9P1csK^4Ї g Z7-Vj]p azկTP)*ܨF7́ ,a 0@ A/vP`iCiyA_ endstream endobj 2654 0 obj << /Length 110 /Filter /FlateDecode >> stream x323P0P0b#S3KCB.#C I$r9yr+r{E=}JJS. @-\. ? C 1cqzrrp^ endstream endobj 2655 0 obj << /Length 203 /Filter /FlateDecode >> stream x=@H\@ȜM B0X({+ba8垫|>2Pԏ~?Ѥ$|@jRRod5Ԍ;*gX@l$u8lSyEȞn!X#xiTCƩFHjODO'0vBJ#n $"&ݏ endstream endobj 2656 0 obj << /Length 159 /Filter /FlateDecode >> stream x3534W0P0bSCCB. HrW01r{*r;8+r(D*ry(0a@R` `$@z ɀ a/ m?C&\=?qjS endstream endobj 2657 0 obj << /Length 209 /Filter /FlateDecode >> stream xڝ= @GR2MtbSZYZZ(ډr2EH|((v̛ݝGa_ endstream endobj 2658 0 obj << /Length 218 /Filter /FlateDecode >> stream xڭн0 p[*y#4"t7p  }4бCHpH'n[~8{`zz9> stream xڭϱjA` H;eTI%>: fsᅦ2ts.zwVlJRc铪&^}.I OIEsJՈW@w D[wS`$C F AG# nZѝtz;Ymΐ#[GGq.z sE3:g endstream endobj 2660 0 obj << /Length 144 /Filter /FlateDecode >> stream x36׳4R0P0a3CB.c HrW06r{*r;8+r(D*ry(0`?l(g?6g u@lC{ pP endstream endobj 2661 0 obj << /Length 213 /Filter /FlateDecode >> stream xMͱN@б\DTd""R.HE) h!kfg:[\ꗺXS)Ks"Z;׌oY2=7Ro0ͬ&a8YZi4 %:1X[z83L̺E[y!8}?+O2dWtm8 \\ղuY endstream endobj 2662 0 obj << /Length 160 /Filter /FlateDecode >> stream x36׳4R0P0R5T06V03TH1*26PA3#Lr.'~PKW4K)YKE!P Ea9$luPفX$N#Ccagc{  00?r Jm endstream endobj 2663 0 obj << /Length 162 /Filter /FlateDecode >> stream x1 @ᷤL fqC@Vb--+'Gˑ<@Ⱥ!X l3pjZ>DŽm:L#c^[z?.6 6KNJV- -reByDz 7U}`(D,uxI0nҷWR hhKob endstream endobj 2664 0 obj << /Length 202 /Filter /FlateDecode >> stream x]= @Y6sݬ+0Z *ZGQr!n5|ś7ȈBR[^0$)?G19]/bLւ :c:k{-Ŭ`m88u t&p2 lB̘Ϙ> stream xeɱJ@; $p M!澀dF 1` A+ Bv362e]X'qι>giF'5Tkè;.:TQ݆UwG_oTZSE%yB7zȷ CD`Al`^Ѓ\F&i!Qڤ5#+]VڂQS"w)͊S28`?ah֌+.1%t}z= endstream endobj 2666 0 obj << /Length 236 /Filter /FlateDecode >> stream xMJ0?0> stream xeпJ@o \`^By]  @-G̣R^w]9 Opj8>xPS5ZOLIppu%?^^qDzŷ;JW\ׅˡ~ lr&Vg{'´N2;s8Gvn=ЪQob]pл ~^8:g007~ʞJT Ͼ4sM^!yJ[X' endstream endobj 2668 0 obj << /Length 197 /Filter /FlateDecode >> stream x=ϱ 08nzO`Z j;:9 y> stream xڽ P FҡмVn?`A'qRGE7f}>BŚނ*3$|9VuQۀ}+5͞1%kTڤ|18Ux*%V738 \A&rOP deyܿ>X ?c\%#'q(IfNĴ) endstream endobj 2670 0 obj << /Length 131 /Filter /FlateDecode >> stream x337U0PbC33CB.c# I$r9yr+q{E=}JJS ]  b<] >00013 A9 CaՓ+ t^@ endstream endobj 2671 0 obj << /Length 259 /Filter /FlateDecode >> stream x]J@Of!"." E0pA.Z v |˝gH0??pNNmnҮwYUϹ勧7wk"nssa q[{_AꭅBaD4%;>#p{%*édlW]HO˷df 3ÂױtK҇FoMfl=o,"E"pLΉ~WhFF*4& !3DWZnvj endstream endobj 2672 0 obj << /Length 257 /Filter /FlateDecode >> stream xmJ0'y h[ 'i((ysƙ$;dfjj5u=5mMrPٿf~jg6wW`G*`Z@y`5@N08F  xP f͡HmVJ[\8 )qYTN KJ8L3#ęgDUk-2gB8&%1Dw>vq endstream endobj 2673 0 obj << /Length 206 /Filter /FlateDecode >> stream xڥj@@CkB  A GAẸMb/hffӱZ'd?$u{<l(潽x3\h*fTK> stream xڭбJ@?4y1[8O0Z *ښ<>=BKD+f+.yG\4P -Kn;r׼ΥLGrSm `# JT&e 0m?HMF3CP J@#J2 _.N^v2%5+w:gY9Cb)@;@f,BMB~2YGW e endstream endobj 2675 0 obj << /Length 257 /Filter /FlateDecode >> stream xuпJ@o"0y!Dr1SZ) ɣQ[X2N[3.脋%?NEav \d^j??^(]_sNs0y("=I 5poIu~ѽv ڧ5F r q/oAz Fx`cο=!)a$ܠkkR:5.̈% endstream endobj 2676 0 obj << /Length 219 /Filter /FlateDecode >> stream xڥJ@ Ci X/b ͡PB,M$G#xP .C3;&z8YQ> stream xmN0Fȃ%/~/IQ:F*E"02@bH͏GȘ!s[uY:9˅/|.|U_ݔOZ~̺1/ 2l~||}&ǹ/L'bFzNEؠtX !v$tS2WSK8Zdef-UwN: VBDXMvU=+OD6($8ㇸb+N==BZ!r5B<$gVZ}F=sӘ{~ endstream endobj 2678 0 obj << /Length 262 /Filter /FlateDecode >> stream xuJ@O};/I$7 \` A+ RKAE;Gˣ#L2&" _ɚ3.5%LErHk.2J__(\rNorn2 h!P#a]a:x-}bh~mh!?0B~! ?#;CsŨ^JԴIPG^`M !A#`xBo~^}gt tچpYzLG%NC:k>y endstream endobj 475 0 obj << /Type /Font /Subtype /Type3 /Name /F16 /FontMatrix [0.01004 0 0 0.01004 0 0] /FontBBox [ -5 -25 98 75 ] /Resources << /ProcSet [ /PDF /ImageB ] >> /FirstChar 3 /LastChar 122 /Widths 2679 0 R /Encoding 2680 0 R /CharProcs 2681 0 R >> endobj 2679 0 obj [48.75 0 0 0 0 0 0 0 0 0 0 0 0 32.5 32.5 0 0 0 0 0 0 0 0 0 56.88 54.17 54.17 81.25 0 0 27.08 48.75 0 0 0 0 27.08 37.92 37.92 48.75 75.84 27.08 32.5 27.08 48.75 48.75 48.75 48.75 48.75 48.75 48.75 48.75 48.75 48.75 48.75 27.08 27.08 75.84 75.84 75.84 0 0 73.09 69.05 70.42 74.46 66.34 63.63 76.5 73.09 35.17 50.09 75.8 60.92 89.34 73.09 75.84 66.34 75.84 71.76 54.17 70.42 73.09 73.09 100.18 73.09 73.09 0 0 0 0 0 75.84 0 48.75 54.17 43.33 54.17 43.33 29.79 48.75 54.17 27.08 29.79 51.46 27.08 81.25 54.17 48.75 54.17 51.46 37.92 38.46 37.92 54.17 51.46 70.42 51.46 51.46 43.33 ] endobj 2680 0 obj << /Type /Encoding /Differences [3/a3 4/.notdef 16/a16/a17 18/.notdef 27/a27/a28/a29/a30 31/.notdef 33/a33/a34 35/.notdef 39/a39/a40/a41/a42/a43/a44/a45/a46/a47/a48/a49/a50/a51/a52/a53/a54/a55/a56/a57/a58/a59/a60/a61/a62 63/.notdef 65/a65/a66/a67/a68/a69/a70/a71/a72/a73/a74/a75/a76/a77/a78/a79/a80/a81/a82/a83/a84/a85/a86/a87/a88/a89 90/.notdef 95/a95 96/.notdef 97/a97/a98/a99/a100/a101/a102/a103/a104/a105/a106/a107/a108/a109/a110/a111/a112/a113/a114/a115/a116/a117/a118/a119/a120/a121/a122] >> endobj 2681 0 obj << /a3 2612 0 R /a16 2611 0 R /a17 2609 0 R /a27 2615 0 R /a28 2614 0 R /a29 2616 0 R /a30 2617 0 R /a33 2599 0 R /a34 2613 0 R /a39 2600 0 R /a40 2594 0 R /a41 2595 0 R /a42 2601 0 R /a43 2602 0 R /a44 2603 0 R /a45 2610 0 R /a46 2604 0 R /a47 2605 0 R /a48 2669 0 R /a49 2670 0 R /a50 2671 0 R /a51 2672 0 R /a52 2673 0 R /a53 2674 0 R /a54 2675 0 R /a55 2676 0 R /a56 2677 0 R /a57 2678 0 R /a58 2606 0 R /a59 2607 0 R /a60 2596 0 R /a61 2608 0 R /a62 2597 0 R /a65 2618 0 R /a66 2619 0 R /a67 2620 0 R /a68 2621 0 R /a69 2622 0 R /a70 2623 0 R /a71 2624 0 R /a72 2625 0 R /a73 2626 0 R /a74 2627 0 R /a75 2628 0 R /a76 2629 0 R /a77 2630 0 R /a78 2631 0 R /a79 2632 0 R /a80 2633 0 R /a81 2634 0 R /a82 2635 0 R /a83 2636 0 R /a84 2637 0 R /a85 2638 0 R /a86 2639 0 R /a87 2640 0 R /a88 2641 0 R /a89 2642 0 R /a95 2598 0 R /a97 2643 0 R /a98 2644 0 R /a99 2645 0 R /a100 2646 0 R /a101 2647 0 R /a102 2648 0 R /a103 2649 0 R /a104 2650 0 R /a105 2651 0 R /a106 2652 0 R /a107 2653 0 R /a108 2654 0 R /a109 2655 0 R /a110 2656 0 R /a111 2657 0 R /a112 2658 0 R /a113 2659 0 R /a114 2660 0 R /a115 2661 0 R /a116 2662 0 R /a117 2663 0 R /a118 2664 0 R /a119 2665 0 R /a120 2666 0 R /a121 2667 0 R /a122 2668 0 R >> endobj 2682 0 obj << /Length 157 /Filter /FlateDecode >> stream x͏ @D'l'_%r#xXiJ E;!~}VV[+TN׳ڎr4N^̚W1aۣSo4zpj K@^(ȄLSĂ#^({YÏ"kߌHY  endstream endobj 2683 0 obj << /Length 277 /Filter /FlateDecode >> stream xmJ0Eo XBlN b@W.ĕt(K>PpEj9r߽I89_?|*jY:]uekVmndz-W7յky>:`D 0#\lBH loG()d"d.i'3u +opd+hSFi0pnF Ⴑ@RJQS)5sf2G(ݑrv1ILJ 3y7[h qhZ{k5 endstream endobj 2684 0 obj << /Length 233 /Filter /FlateDecode >> stream xڝ=n@raisq:K`$\ %E*PR$JZ|̳҅Y}7>'t*D<ũ$/LJ6k36K$lʕ|n^)=B#5QPDW:%#Jc9уr4vh| }*qlz={[#3CS5=97 endstream endobj 2685 0 obj << /Length 224 /Filter /FlateDecode >> stream xڝ1@EPL $&ZY+h+pJ "θL&4ٿv<Fq0!liza zlza:m+TM܉JRNIPhSh50O"gRE4;hhZz&/z( ɟ|{=eo }⁝vw]Svˎuҹ?࿀ykxB{ endstream endobj 2686 0 obj << /Length 105 /Filter /FlateDecode >> stream x3634R0Pb#CSCB. m@ $ɥs{IO_T.}gC.}hCX.O!'W ( endstream endobj 2687 0 obj << /Length 173 /Filter /FlateDecode >> stream x3530T0P0S52U05P07UH1*21(s<L=@\ %E\N \. @b<]@`|"I8;߀D#vH A" HH$7[lVZZ/~kik$'W R6N` endstream endobj 2688 0 obj << /Length 96 /Filter /FlateDecode >> stream x3636Q0P0T0P06T02WH1*2 (XB$s<,=BIQi*S!BA,\\\5^ endstream endobj 2689 0 obj << /Length 187 /Filter /FlateDecode >> stream x3332Q0P0bSKsCB.S3 I$r9yr+q{E=}JJS ]  b<] 9?~0a``cR؁:5S`)`R(C^ yP:5>Փ+ c endstream endobj 2690 0 obj << /Length 203 /Filter /FlateDecode >> stream x= `MN vlRk"NI4:՛p14}>n]t|<x144} '5;B@r/db MTB *7@w"#DI.> stream xڍ1j0a  jR'YbHSB;u(ڎZڭؾI=JIqT`$/VI~k,sOxym ɓYSH{dsf=;#ҍkTNUD38L41裵>+*bT)?d C~yE}QKZq<8ZTb+Ώ1ܼn NqA(F.gEㅸ$ > stream xڥ @\z Z< fNSuPԹG> stream xŒ=N@ M!$)fE"T (AKrSXؓ,=S$_> stream xҽ 0-}V NlGpPz&M@ᗄ$$BgK|<p8s93d-!%_Vve9rȑx)QTŔxe4GzMa)["ei=AikLM!Ch.TC#ig^woJ-$KHWeN'Q<6?K endstream endobj 2695 0 obj << /Length 208 /Filter /FlateDecode >> stream xڍҽ 0[[' I'|д@ໄ\.]=0փa:=)%!i> 2xށc@&]CuŘPq"p3q%ѫN(WUyx98 V6q1 D=$D/$|d endstream endobj 2696 0 obj << /Length 173 /Filter /FlateDecode >> stream x3731R0P0b3S3 CB.3rAɹ\N\ f\@Q.}O_T.}gC.}hCX.O@>`AJ3Biz(m4?f 43+F3| @3hf4;`+hz~v1HiP~ r ϐ endstream endobj 2697 0 obj << /Length 300 /Filter /FlateDecode >> stream xҽN@P\2 p Xg"V*4Q5&*< ƙ`Q{,̿,OsL1Ǔ 3/)7(r^L<k^gHVAƇ k4#g̫`Id KD-XHTHQd[;'n1i/j{;_ZX\?b. 꿫Q_%5tIs&AciUݠhNN SӤ#vPHDH&4MnLϕO!|&%Ig] r endstream endobj 2698 0 obj << /Length 121 /Filter /FlateDecode >> stream xڳ03T0P0b 3 CB.s HrW0r{*r;8+r(D*ry(f X? a)VX:.WO@. 4n endstream endobj 2699 0 obj << /Length 104 /Filter /FlateDecode >> stream x3137R0P0aK3 CB.cS I$r9yr+r{E=}JJS ]  b<]lQ3\=i% endstream endobj 2700 0 obj << /Length 172 /Filter /FlateDecode >> stream x35׳0S0P0V5T05R0PH1*2 (YBds<L,=\ %E\N \. ц \. ' "FI)D??8IPC?0a Td` 0pzrr endstream endobj 2701 0 obj << /Length 290 /Filter /FlateDecode >> stream xڍ=N@%[l2 G`O hL0XF[h#PRlwgv@~vvڋ_wOh8>az'vPŻPÍo>ceF4BHn, !QiADIT!Iޛ=ܲ EsgY}/+̳ Lq+qaNXp\$FkU_*K١UqO,-4,iTU< x nx? endstream endobj 2702 0 obj << /Length 149 /Filter /FlateDecode >> stream x3336T0P0b3#3 CB.Ss I$r9yr+s{E=}JJS ]ry( h 4?8h{443fPB3\=a endstream endobj 2703 0 obj << /Length 278 /Filter /FlateDecode >> stream xڍMJ0. o Hd8]ʅjtBQ讽WM0ϼW:(yĚt+ܲfshsat}e^-o.V?^RV T+xi[D2h; _Џ.#ğ Gf ,D# H_W3H| gQPMAP]r:)8P]ʂiP]͂.Yc႒4<]:l_@c0ώá%+/]z endstream endobj 2704 0 obj << /Length 277 /Filter /FlateDecode >> stream xm1NP!$p*l!YD ,6Vjid;<e`Ia93o,(H~<+mTъvE-Ur+pcH[>ŲϏW,7Tc]M[ !@‰:,]W`t~]'!LdDUHZKZi:j4DGDiU6LKGT:ҴJ*M¤%#Qt'%#Q2bⴉ&N#&N8m+L\T+wetA f U,(we#ĿRWY›XM endstream endobj 2705 0 obj << /Length 286 /Filter /FlateDecode >> stream xڽN0 sb!~U1U:H01s(};R!F:$_؎k{sqV xZa%>Wu kyzm 7,C ۻ+du쳇vι:>H%0h}GONhIl+"$>x$OA93H:7ICc0C0” d4rGZƹ3h醥A:w*8,;$qQRrWEg{ !Љ̳A:>6@ chٰu } endstream endobj 2706 0 obj << /Length 185 /Filter /FlateDecode >> stream x3735V0PasC3 CB.3s I$r9yr+s{E=}JJS ]  b<]co100U@  P3 v,f[=n/O~085 )cpzrr\ endstream endobj 2707 0 obj << /Length 355 /Filter /FlateDecode >> stream xڽN0t%o @F `b@L )xnF!c D|wv~8,Y2lfq>KOfUg^rܤ__M:̤kp|g5@D;ЇPT8iBFbh͹R+م$Vt=x]b#/O{Բhz(y݇*P'8O?he hRڪ+k\jFmv rq]R1q 5ƴ`rga'8o `۴j854遱 0{VU0̹/AE Vڂ(͵3( endstream endobj 2708 0 obj << /Length 251 /Filter /FlateDecode >> stream xڭ1n0: w֠4YDH!d̐h9 G`j1RaKd}22yPD zIP"eDݓ̛ ŖdbQQdoiSEN܍WƩuJ3dkYAW fuM<7'Mn݀ASwMR \So'%uvrCh2<>\+#_2ocibBר?i h endstream endobj 2709 0 obj << /Length 305 /Filter /FlateDecode >> stream xmJPO"pyfaa]Vbv ɣQ)#\83w.x9zuhI5t^Sҽj-%]2on۸+n$>?^];z,i<H90w{1c]< h=Q=6 zh,݌$d1b׆ا#XA}ăiM֩S-dpAí$ r0cGݑ"y*\'5 К?)ԜhVVQnܽ endstream endobj 2710 0 obj << /Length 162 /Filter /FlateDecode >> stream x37׳4T0P0bs3sCB.3K I$r9yr+Yr{E=}JJS ]ry(D11o``!`G0 5#Fʨ e02`'\\\T. endstream endobj 2711 0 obj << /Length 208 /Filter /FlateDecode >> stream x= @G, &"),J--mMQ> stream xڍнJ@ )n^@q 'B RK E.f{tצ"dUCP#,6?;>A 'pA~ 3dY/J OurEuR^N7d w\(P?REx: "XԲBR$jXPT舊Ib&|=v,UnX6zmY6^sDVȊ9^[q>'KMT#6QܩN(͍)]SB] Q*41cXQ3,h endstream endobj 2713 0 obj << /Length 378 /Filter /FlateDecode >> stream xڝN@!H5Z5!%5I=y0ԣ&x#:3/d-:;>Wr!O䑒J|VM(EB./kObߤDt["JbGnֺ8Wtx@NC8YkccU%ScUS$FSy(wPARpXiV@}jH-DqL jymVFyKV/U5/J/j{HLeŋ2+WrA0'' ">5"Sq'<7 endstream endobj 2714 0 obj << /Length 322 /Filter /FlateDecode >> stream xڍN0E'Ji$ᵡ,)@T@I6 "#n0?rDǶ{'مi ?ݱ9sox?xzuYuX_.x|z}{iZ75#3\k:@@ TT95'X!NH\bȄD&:QNbȄHL.}$]*SO[$]M }*mߤS?IٯY7%1gAETqy1WbNٜnRNdRړLJt2)ɤ|X7C zah endstream endobj 2715 0 obj << /Length 251 /Filter /FlateDecode >> stream xұN02D%{Ef H01 &ء&V$}J dz ؝DĎ)<\SIr p$=V'^8m=/St}ϨB7glrt-Z(x#Hc܋@2@֫4( PtCպ{2M]T[!1UaZXcY Xȍ ^$7jo*s0ΔwoJGmL ۇܑ"=?ԩ›> stream xڍѱJ@9R7p p$p` A+J--m<=J!e|3\{% U*4V'o{apqxjC.gU^|$_ LTOG"'9|d@: f$j%Y#e%!-#,BW .$# 䄔;Y"Hg3xF^Blqb kmCSlʤ*)Y$%ˤKJvIɼtys>|^& endstream endobj 2717 0 obj << /Length 232 /Filter /FlateDecode >> stream x}ϽN0Jl;Ta?pۜ7kBjikVb7/;8jC'_o6RsS-3[&0`Q0|T*M *pӌ_2 $Lo1ÔJc4|ݜ~82;eSz)<8`͊N9y{2hl endstream endobj 2718 0 obj << /Length 229 /Filter /FlateDecode >> stream xő; @72M4(SZYZZ( h"8P+q3z ;MVYmcsd4ٟ9ą!8~̸+fܒ^ ke"e, tGd?˄b$U5Ҋfl$*lMgn CJhVʷ3Fip endstream endobj 2719 0 obj << /Length 214 /Filter /FlateDecode >> stream xڭ1 @E'l&G\@7E1#BBBQRgEv>'S &3!3c4#NqRdn uS:]L> stream x1 0yд*N`A'qRGEx 7бC=q(8 vي1&]lwqy,N1y 6n_pa8&:2)љBztUUN+IZ^>j$qIMMR'*mse cL@I 9Lwni endstream endobj 2721 0 obj << /Length 226 /Filter /FlateDecode >> stream xu=n@gbi|eYGH@TDjh> X VyyD%JC80/*v[ dvջ\/_Gvxv+١hJʞ2Ն(W FOFFl@&%`}b zdeL,>2~dgygL[41Ƕ hKyJ BasQ D endstream endobj 2722 0 obj << /Length 167 /Filter /FlateDecode >> stream x3632V0PacsCB.cK I$r9yr+[r{E=}JJS ]  b<]700P?aA<$AD0H0 A6b#4o@ endstream endobj 2723 0 obj << /Length 281 /Filter /FlateDecode >> stream xڕ=N0’!sHE"T ()@`)<؋$'{Iן5-5tA-ukZw75oZOv3RpC/^Rk-=ԣ/qZqg XxqdWjIpnIUi+W%KK"5-CiK #;A58E, k΢SvYlK S^`%*#G4dPɲ1:^.eiiC%>+^ ~ endstream endobj 2724 0 obj << /Length 167 /Filter /FlateDecode >> stream x3332Q0Pa3 TH1*25\Dr.'~)PKW4K)YKE!P EObPFS@ >? uBP?(lԁD(.WO@.Jm endstream endobj 2725 0 obj << /Length 131 /Filter /FlateDecode >> stream x3634R0P0b#KsCB.#1s<L=\ %E\N \. ц \. 5 7?D # P?P1?H{pzrrD endstream endobj 2726 0 obj << /Length 186 /Filter /FlateDecode >> stream xՐ@ kH#;#q"ALD'㤎xPK~m<S "PcmNJf_w8cfPn)(V4+]'zNʜv=@A/ q.n1x<}!77AuuڤK<Ӿ+ >փ endstream endobj 2727 0 obj << /Length 220 /Filter /FlateDecode >> stream xϱn0 HrObB*L 22*+cc" F,YϲA/~o:ϜuʰXoiTYp'3d|6dFcLxsr‘"?D+c~DRdZ+-ЭAR.ZT7rBʰU. (]«],D> 4Hsz/iNW^`ص endstream endobj 2728 0 obj << /Length 107 /Filter /FlateDecode >> stream x3634R0P0bc3KCB.#S I$r9yr+r{E=}JJS ]  b<]0q7c.WO@.S endstream endobj 2729 0 obj << /Length 209 /Filter /FlateDecode >> stream x? P C!;Bs_ZA,T;:9::( n>'GoqQzJcߗdڍZE5eujh}OSXcu4vB{%gQh@&lJ2DxbΪUdK 9T`P+XU.> stream x3332Q0Pa3 ebUej 䃹 \.'O.pSS.}(BIQi*S!BA,C}?7T10@ 6P?|'W [ endstream endobj 2731 0 obj << /Length 213 /Filter /FlateDecode >> stream xڥ1 P #B[SV N⤎h=JбC1&E\|>?dј>c &tA$GOX4 "4 %]/#d5#MJ[h6%y=\0`..Y尀AK<@\@Q#6-WQwu;Sw ?kBKn&j״1a>7k.sk|]ŏf endstream endobj 2732 0 obj << /Length 227 /Filter /FlateDecode >> stream xڵѱjAY,i|tNWbe!V&e->B|-XDTX>euڝLJ+Hޗ,ה?8G۹)ϲYo؎^$e;E*ɒPS݁T+(5OT@u%BMwF=poH-eua~nl]Tȇ`1)6AbXi DA O  endstream endobj 2733 0 obj << /Length 161 /Filter /FlateDecode >> stream x3137U0P0bcSCB.cK I$r9yr+[r{E=}JJS ]  b<]oH?1"~`? L7?bl'W n endstream endobj 2734 0 obj << /Length 223 /Filter /FlateDecode >> stream xE1N@ E?b%790;"E"T (AKq%GH"4o4v]_+^sk{w6[{T^o(=fKdJ~|Q_stgj8UR:EZ ʷcVG@VjU'3rع: Fg u1vM#bj2;4@* endstream endobj 2735 0 obj << /Length 173 /Filter /FlateDecode >> stream x3135S0P0R5T0P03VH1*26 (@ds<M=\ %E\N \. ц \. Xv8'=3,X w'C=`?`A<7@ ? r  ,t endstream endobj 2736 0 obj << /Length 166 /Filter /FlateDecode >> stream x+@i*6#06&$  (D@@/G[58"e9P!Zj Z)%eʡ^Rv3:N[|LuM+C]MD ! a9PIcУd/-x>o;w*!aVB78\ d endstream endobj 2737 0 obj << /Length 216 /Filter /FlateDecode >> stream x}=j` `-A䳋M)PH !SڱCC |'ꫯo4J$QLS<Üh'+v 3v/ز^e`7O$e7e*Ɋ*#3Qs;*ؗ /@ih#2+1@[|iơy(sG=ַ G#ʳpH endstream endobj 2738 0 obj << /Length 276 /Filter /FlateDecode >> stream xڍJ@ 970&X9z l o=3wR<,gN1SZqBxyy*N}8_Ӆz7\-HDHC!ڐ%ZCƫ%\:Pm)(0#tB%S@=ERPGK(b'$GWP$d9Gmj9h m@Mi^Hv:vP{*j1uE!7blEDna^ԟ(¯n  endstream endobj 2739 0 obj << /Length 234 /Filter /FlateDecode >> stream x}N0(C['4R[$2 ĀlUGK$/ 0ղOeu%\s][E;jjXƇZw䟸-?_o-p НiB1E mQ,GE!A0)29÷N3DhIA i17VpH4Y0Ml3ÐEgP1jDEKێ(k endstream endobj 2740 0 obj << /Length 267 /Filter /FlateDecode >> stream x}ϽJ@Rn7p h~(b`]VbB !y&)Sdw̙SRqKu&Zso\iLs9 gRiή1笹ַRpBGn6b-eFGZ0Ucc^pG))$)Y= Ư㗥itjuGj wAlhA_Bg6UT2u2Ho^_˄>> endstream endobj 2741 0 obj << /Length 208 /Filter /FlateDecode >> stream xmA XH0ywGAnSp,괴Py4eJ 1&20$g&{C.'8FTXi_Zk?;7T,9VTtJEͿ㖊u:*kj&D+AZ73C@.ё?|+23F%JUj=p>i05KΓ9ꓶ'-ƮoϽ#MZ'} endstream endobj 2742 0 obj << /Length 211 /Filter /FlateDecode >> stream xő@ kL$ &:9'ut ƣ ڣ \4xSH]cЧ8i@Fb4M[Q&4:a@Y20KT4^մ]N/rʵ]Ԟevd൅el5yՀP3jɱJYQU5p߳ endstream endobj 2743 0 obj << /Length 126 /Filter /FlateDecode >> stream x3530T0Pb 3SCB.c I$r9yr+[p{E=}JJS ]ry(000```` H0@,0%#zl'W  endstream endobj 2744 0 obj << /Length 266 /Filter /FlateDecode >> stream xmбN0|G/qCyfίF0t^ߟlߣO;O$9 1!rHdڈ4f&pBl9{Ð68,ִ/vKqbҷ+tي%+NC7"EB8сVP #RI*h~j:Rᕤ[Il`Φʗ'& endstream endobj 2745 0 obj << /Length 258 /Filter /FlateDecode >> stream xڅN` {@ $g%^Ltr0NzGh< @= icu]RHRb)U?XHUw>5?1r~geΛ{p~z< 7g!ґRUcR;Q2QP:X Ja2m0{tƔyl[J8 XϠ-AvHxiOzMYSgčV6oGbǝ2ClčLU[ϟ]~(6?d endstream endobj 2746 0 obj << /Length 216 /Filter /FlateDecode >> stream xڭбjP r7DpI *NJ'utP-4|-7_խmzޏs/{Ck#ґS]ŲdbkFR̋&1 {*|ZL4XL_m̛3ul󇚴] I@BI /s'sABNjAOB/#&-'5o#Rԑ endstream endobj 2747 0 obj << /Length 253 /Filter /FlateDecode >> stream xڥ1N0 `?uGx^:bF4G  Gءj]&`>EIc;Gy:r>fG}=~@{M;vyJn-2ЀL]_~EI-jV8Yz&? }Bs훃$ShjMM|wSSYN-Nm8NZT2f5JD 2Mr[μ̐51= x_d endstream endobj 2748 0 obj << /Length 264 /Filter /FlateDecode >> stream x}пJ@9Lso &p6p` A+ RK EGG#s&~lvf IYI)A+ A+~ub)u?{MZցٷ~sy*h[nB@""^H1j$eLЯ; tY;suVfL5*}:;8CDx:H:n2ffuYrViL=݁z!mN@Hö h+y- endstream endobj 2749 0 obj << /Length 214 /Filter /FlateDecode >> stream xڥ= @ )f.@LVbh)SuvVqvF? "j )iØ 1 Q%S:N[TِT#Zr @gϽiKs13޴镻pabgZ]  7SDA ѷ屍ݼ3fR(Zt~sW/89>? endstream endobj 2750 0 obj << /Length 290 /Filter /FlateDecode >> stream xUN0D7Jɍ?!H"]Z:HPQ *AHX>mJ=N:'y8].7n`nػi:> stream xڍ?J@'Xfo4 Mx>VbvBr%GHEx7I@E ! 3|b}VVRJJb%uNJ_x1,3[.neĘJ^ߟ_KApۃu9=A@u$ұ('ʕLh7XQcWv @8/N`31&BX=c˭fQ:Ń.r$c1aؘV@r&0: SYùZۙZ>mJ狖o3 endstream endobj 474 0 obj << /Type /Font /Subtype /Type3 /Name /F25 /FontMatrix [0.01004 0 0 0.01004 0 0] /FontBBox [ -6 -25 114 75 ] /Resources << /ProcSet [ /PDF /ImageB ] >> /FirstChar 27 /LastChar 237 /Widths 2752 0 R /Encoding 2753 0 R /CharProcs 2754 0 R >> endobj 2752 0 obj [65.35 62.24 0 0 0 0 0 0 0 0 0 0 0 43.56 43.56 0 0 0 37.34 31.12 56.01 56.01 56.01 56.01 56.01 56.01 56.01 56.01 56.01 56.01 56.01 0 0 0 0 0 0 0 84.59 79.64 80.91 85.86 73.53 70.42 88.05 87.59 41.72 57.86 87.71 67.31 106.26 87.59 84.13 76.53 84.13 83.56 62.24 77.91 86.09 84.59 115.71 84.59 84.59 68.46 0 0 0 0 0 0 54.46 62.24 49.79 62.24 51.11 34.23 56.01 62.24 31.12 34.23 59.12 31.12 93.35 62.24 56.01 62.24 0 45.75 44.19 43.56 62.24 59.12 80.91 59.12 59.12 49.79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 49.79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 31.12 ] endobj 2753 0 obj << /Type /Encoding /Differences [27/a27/a28 29/.notdef 40/a40/a41 42/.notdef 45/a45/a46/a47/a48/a49/a50/a51/a52/a53/a54/a55/a56/a57 58/.notdef 65/a65/a66/a67/a68/a69/a70/a71/a72/a73/a74/a75/a76/a77/a78/a79/a80/a81/a82/a83/a84/a85/a86/a87/a88/a89/a90 91/.notdef 97/a97/a98/a99/a100/a101/a102/a103/a104/a105/a106/a107/a108/a109/a110/a111/a112 113/.notdef 114/a114/a115/a116/a117/a118/a119/a120/a121/a122 123/.notdef 186/a186 187/.notdef 237/a237] >> endobj 2754 0 obj << /a27 2690 0 R /a28 2689 0 R /a40 2684 0 R /a41 2685 0 R /a45 2688 0 R /a46 2686 0 R /a47 2687 0 R /a48 2742 0 R /a49 2743 0 R /a50 2744 0 R /a51 2745 0 R /a52 2746 0 R /a53 2747 0 R /a54 2748 0 R /a55 2749 0 R /a56 2750 0 R /a57 2751 0 R /a65 2691 0 R /a66 2692 0 R /a67 2693 0 R /a68 2694 0 R /a69 2695 0 R /a70 2696 0 R /a71 2697 0 R /a72 2698 0 R /a73 2699 0 R /a74 2700 0 R /a75 2701 0 R /a76 2702 0 R /a77 2703 0 R /a78 2704 0 R /a79 2705 0 R /a80 2706 0 R /a81 2707 0 R /a82 2708 0 R /a83 2709 0 R /a84 2710 0 R /a85 2711 0 R /a86 2712 0 R /a87 2713 0 R /a88 2714 0 R /a89 2715 0 R /a90 2716 0 R /a97 2717 0 R /a98 2718 0 R /a99 2719 0 R /a100 2720 0 R /a101 2721 0 R /a102 2722 0 R /a103 2723 0 R /a104 2724 0 R /a105 2725 0 R /a106 2726 0 R /a107 2727 0 R /a108 2728 0 R /a109 2729 0 R /a110 2730 0 R /a111 2731 0 R /a112 2732 0 R /a114 2733 0 R /a115 2734 0 R /a116 2735 0 R /a117 2736 0 R /a118 2737 0 R /a119 2738 0 R /a120 2739 0 R /a121 2740 0 R /a122 2741 0 R /a186 2683 0 R /a237 2682 0 R >> endobj 2755 0 obj << /Length 294 /Filter /FlateDecode >> stream xڅJ@'Xf! . y)+P8Ȃ/v!?yh>6?ϖ)ϸ䣂˂ b θ:)v _5?|ysW|W޶+DtҰ!2&QM.HOJc)]O4eF`&i7o1$=Ɵߢo0~tI!NGꐓ @w"tIUWhW)L{$qfAv+#k[i![H֮7 endstream endobj 2756 0 obj << /Length 208 /Filter /FlateDecode >> stream xڳ3T0PT5V0P03RH1*27PA3SLr.'~PKW4K)YKE!P E x` f?ed*4(Cf)i>t%50?4 0%vͷ0.`uAxnv{.- c <@l`:EXlr 4 endstream endobj 2757 0 obj << /Length 201 /Filter /FlateDecode >> stream xڳ3T0PT5V0P03RH1*27PA3SLr.'~PKW4K)YKE!P E|1l` (LƐ1aj` y-~vxlD~<Ƞu١ =p,|v 4 豃i>1a><8\=!5 endstream endobj 2758 0 obj << /Length 141 /Filter /FlateDecode >> stream x363S0P04P52V"CCCB.C# L.9ɓK?\ЈK(PRTʥ`ȥm` `P0C  Ȱ! 0`< `r W( endstream endobj 2759 0 obj << /Length 98 /Filter /FlateDecode >> stream x363S0P04FF )\\@$2ɹ\N\@.}0PRTʥ(Dry(3773pzrrhF endstream endobj 2760 0 obj << /Length 407 /Filter /FlateDecode >> stream xڽJ@'aa(;AF(jsA&j_6@.9O(زtD>3\u?ZΝ@QaXԘT$\FtLGa9j> stream xӱ@ a#XZ{x(r\[g ' DF+<ppm~ 'HRAٯw^nGn-~AEӭZ䬒u/WJmV`ܟ)HZV$& iIʰUbֲdU&yڱW'h^tfMz9t9΁Đΐ˹8k _\J}O{31<(k { endstream endobj 2762 0 obj << /Length 279 /Filter /FlateDecode >> stream xڍAK0~ L+%x Ƀxr; Mhf7vӃ$QAgi_]Ǻ> stream xœN0 }>BЖ^*D$n@L(} I4!ϯo.J]TW#*oy|xK%z.x@GF D[,e@2Y]d=86jh֠f|5gNÓYv?NWJ)^xby LMIGUJGo'KE`mz%5q37]q$AvuD B$'$~ endstream endobj 2764 0 obj << /Length 253 /Filter /FlateDecode >> stream x}J0 9`^@輀e͢ ɃxR|> stream xՐJ@'KޠI  ēzTdh(y=F]lvAg.rS}g9+YUײݼ<-璱ZM&-W = I?(wta@.(BDa 4`j5,DeDIs_[_ +Θm$@ޑ i xu%2qi֥/+^' endstream endobj 2766 0 obj << /Length 230 /Filter /FlateDecode >> stream xڭ@'l&o`MF,@S^uX`}}}+Sg6ػW33_f8'3]G4fnP)P/XF,|Q׫OQiSfNIس @lUlhmt 3OV GMwڰMmps$r1'RVIƐ4 9{ qf"1w{4ï}fc endstream endobj 2767 0 obj << /Length 236 /Filter /FlateDecode >> stream xڍбJ@H0MMa!L!heqX偊>>>–WqƋJd횳7Ӗ9wK~j镼pGSZ֒dլMldPdg߆cl?MY'G-IXE&SbDof{ jp endstream endobj 2768 0 obj << /Length 314 /Filter /FlateDecode >> stream xڝ;N0E’ { Q4DHLEJcD6)k;9>iVRVϢ.R'XQu)KR/oX_+n-DQ& ü&en[Z~ Cn#0)s0``_p`r*se(ڃ$-SnFȷ0a>2݄LcMp C~ޏ zpi6CB3Gt6Q:xF=fL}.Hysz)܀Eћ1()Qܗ6LY$\Vlv endstream endobj 2769 0 obj << /Length 130 /Filter /FlateDecode >> stream x363S0P0b#s CB.## I$r9yr+q{E=}JJS ]  b<]?00``E@Yr?H? #.WO@.6 \ endstream endobj 2770 0 obj << /Length 110 /Filter /FlateDecode >> stream x363S0P0b#  cCB.#c I$r9yr+s{E=}JJS ]  b<]1GB" 1oqzrrz?pY endstream endobj 2771 0 obj << /Length 190 /Filter /FlateDecode >> stream xұ P#tU u ̠;55DS5h>JC-8F4$"1iw_V1Ө֔Ĩ^r;ʖS P ߢ109Ӄ~%8{<3.1 `N<gţY(lJKQXo 4_`}Mi\ծ endstream endobj 2772 0 obj << /Length 170 /Filter /FlateDecode >> stream xϱ 0 ): I}> stream xڭ0KHnB&N$Ltr0NUx4Gpd &&߯}j>]b UnBIJ9]! BkA > td# # :ګ^Ԅ/B/ (/)} f>,E,r3/FדG}oI\2i6C=,c1ҭ5yVvӲ{ endstream endobj 2774 0 obj << /Length 167 /Filter /FlateDecode >> stream x3132W0P0aCS#CB.c3 I$r9yr+q{E=}JJS ]  b<]01?GF  ?0I@ `L0 " fsh'W c endstream endobj 2775 0 obj << /Length 242 /Filter /FlateDecode >> stream xUαJ@YR7p4 ; BBQ8Ȁ/6e8ccwf݉JtXQhQ]X/X"Ν\Xl^bqe, z~zb}yJvC'1{<+; /̴cwz c{NDhHl4 oC _zeJb;? [tZ/s endstream endobj 2776 0 obj << /Length 168 /Filter /FlateDecode >> stream x3132W0P0R5T0P07QH1*26 (Bds<M=\ %E\N \. ц \. ~TBNÉzH07ȃpI("0@"L|`z?В?r ~'W Bf endstream endobj 2777 0 obj << /Length 225 /Filter /FlateDecode >> stream x͑1@EXL (HHaRK v9G$8KDK7d#ɥ!M|::xǢMSGug c4ZV~B+\ωG`2` =n@+JV3AcfhFn ] 3|V_,v>l-Odp8뺭SU^*;]2" >e endstream endobj 2778 0 obj << /Length 146 /Filter /FlateDecode >> stream x35ӳ4V0P04& )\\  ,ɥ`lΥU()*Mw pV0wQ6T0tQ``c9a"ꀘ`@?&~@X(A"r ŋtg endstream endobj 2779 0 obj << /Length 293 /Filter /FlateDecode >> stream xu1J@7Lbs3'0 fWL!XEa !ser%{Fccf?df8].|iKfׅ,ӫY&Ue5y}k??_L^PK;"Jbd([TOnO:PvS2PJ ~#݅w;14ZK-~-΋3z&ۣd*ިALʯR 5  Z0D+5 )) "׈k7r|,GVp(8b"U %|9|1Gla5׵3b endstream endobj 2780 0 obj << /Length 333 /Filter /FlateDecode >> stream xuN0/ɋ Mi ] H01 &`d5y%G#U]*Yd狳幛;],KlÉ,^׺xp.np}~|b}w߸MtqDv w`枨ꥰ%vaے){].+ހ7" Uo;Do0$(,L"g  `Kb_ڔ  q\ԲAOҙi:IM IS&ZѰG:<\' a C,GC6(-w) +P gMf>LT5Pi 2.W׵O endstream endobj 468 0 obj << /Type /Font /Subtype /Type3 /Name /F20 /FontMatrix [0.00836 0 0 0.00836 0 0] /FontBBox [ 2 -25 97 84 ] /Resources << /ProcSet [ /PDF /ImageB ] >> /FirstChar 44 /LastChar 178 /Widths 2781 0 R /Encoding 2782 0 R /CharProcs 2783 0 R >> endobj 2781 0 obj [31.6 0 31.6 0 56.93 56.93 56.93 0 0 0 0 0 56.93 0 0 0 88.59 0 88.59 0 88.59 0 0 0 87 0 0 0 0 0 0 0 0 104.4 0 88.59 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 56.93 63.26 50.6 0 50.6 0 56.93 0 31.6 0 0 31.6 94.92 63.26 56.93 0 0 44.27 44.9 44.27 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44.9 ] endobj 2782 0 obj << /Type /Encoding /Differences [44/a44 45/.notdef 46/a46 47/.notdef 48/a48/a49/a50 51/.notdef 56/a56 57/.notdef 60/a60 61/.notdef 62/a62 63/.notdef 64/a64 65/.notdef 68/a68 69/.notdef 77/a77 78/.notdef 79/a79 80/.notdef 97/a97/a98/a99 100/.notdef 101/a101 102/.notdef 103/a103 104/.notdef 105/a105 106/.notdef 108/a108/a109/a110/a111 112/.notdef 114/a114/a115/a116 117/.notdef 178/a178] >> endobj 2783 0 obj << /a44 2758 0 R /a46 2759 0 R /a48 2777 0 R /a49 2778 0 R /a50 2779 0 R /a56 2780 0 R /a60 2756 0 R /a62 2757 0 R /a64 2760 0 R /a68 2761 0 R /a77 2762 0 R /a79 2763 0 R /a97 2764 0 R /a98 2765 0 R /a99 2766 0 R /a101 2767 0 R /a103 2768 0 R /a105 2769 0 R /a108 2770 0 R /a109 2771 0 R /a110 2772 0 R /a111 2773 0 R /a114 2774 0 R /a115 2775 0 R /a116 2776 0 R /a178 2755 0 R >> endobj 2784 0 obj << /Length 453 /Filter /FlateDecode >> stream xJ@ 9,@i4IB1PAГ( -u&@Cfwg?INc:$dD/{,יnr.K.J}nM୾Y23*]嘱vw}d`Y "7+/ endstream endobj 2785 0 obj << /Length 319 /Filter /FlateDecode >> stream x?N@pk;'َd])L0VjiQ8%ad6lh!e\\_Tur<'4~pg_?hWP4*MPRﯟwJv7PF/T \aD?M&([}< p}oyP=fsP6YF4l:b%K%TG'Pp4gdhWAobu^!+or0bbU0m[ yblD. sgIY).T":"n}vs n z_]] endstream endobj 2786 0 obj << /Length 277 /Filter /FlateDecode >> stream xڭJ0 =`^@t4T Ba]=yOQPћ}}GbLZmgCKB>8\U\IwpQP7.kW(Оq9<ޣ]^CkG +Ci! d_#Vuoh+fì3> >Ndìl4+f6hْnu&; e~f,Z^\ nhY.1Yq@g eWK]E endstream endobj 2787 0 obj << /Length 129 /Filter /FlateDecode >> stream x353Q0P04&  )\\ !,ɥ`lΥU()*Mw pV0wQ6T0tQ?``a% ,@ [r o ; endstream endobj 2788 0 obj << /Length 354 /Filter /FlateDecode >> stream xڕJ@/ 8ONat ԩCtn ЋGoBx83%'tp8O='~nٻGX_3\N@_WCf7%Z##6Ћr-.*mZ[v?Hvv?ii^Mh lAz:[n>:h8>`Jv ؐ:U@"te2`aa0Ŝƀn з1 g]6r5V~Y{%9F;e;X=Ut U}2 HIS g9\/{} endstream endobj 2789 0 obj << /Length 289 /Filter /FlateDecode >> stream xJ0Дsf AГٓzT<ރ^\ %Z7z!tqKxHwSV؉}xߋr„ o<ƦP"uF?‡u |!3A1'.=UCmR*HKPuxJI?(w EC|w\CB桋sL endstream endobj 2790 0 obj << /Length 338 /Filter /FlateDecode >> stream xڝJ0 =rՃE`<'(ɅD|Cɏ B5Lgd_jv+gJOM%.Z;1oDqt)7,T==>ߊb~v*Q,e+,@-C*ql`a[i!Anp ,]v ݝ<-ctnKd G,ׁ렷>nj/8da"@!bh 9ƄuA+Da H v䰉Y]GoآzS*5{u.xpO}|;`Z\K0LWPG6S q.>Po endstream endobj 2791 0 obj << /Length 334 /Filter /FlateDecode >> stream xԱJ@]R}M2p` A+ RK EBHKg+ $ba#̬l 8MsL*UʷTD\,1sRJ,>^Qyno/D4;UDŧ+;f>?wbS*V H(蹮I-I26H0g,-f*XJ: aN‚rAꭰ읨7> stream x1K0<:V O8=Z)ˣR03FSzܷgUr EKWI}oO*Y_o.^$gzhՌĿ~Krj8ETVM+dZ!݆mi|`Ɂ=|͛6B+ U\h߳z+Q/.C_G9_ȮɽǴZNbR7̤_BHsx5:ys4=$?8Nm.ju>4C endstream endobj 2793 0 obj << /Length 193 /Filter /FlateDecode >> stream xӱ 0Д[&V I]m?Oء̅ wK. Vrƫ yr[;cr _ d_3> stream xԽ 0[|VvP N(G"fc~ H]G Gum:tqpLXc!A>ȣp#yf.9s5U)j 뻲TR(PR\̏SSz> stream xԽJ@ #d$ǝw\<VbAhy} 82 jD vwRc1QդT<|fJnêRgPa(3|XUPUkh*II $JYI˪P?@Qn(5,Y6vG^\UG\钵aRlKLDO)^X;R:2@DޒAJ3mu[G{ǚD|HD`7#Y"'z9X!8~7R,앛|pwDp!c=KS롱*4pY endstream endobj 2796 0 obj << /Length 220 /Filter /FlateDecode >> stream x1n0?`-!8Q[H$2 C @ r`@yv]kߖ> stream xڽN0 ]u䥏PEF"D$02 (}o.NpN:cߴŮLC5ni`Ew\wX>Rbycj,7TS݆ seN; s;)䜔, ~8s'ڥV`jzcv [fߝ'%yAssJ`y#r؍ШC7NOTMUB 0r-uTN} ^ś ɋ endstream endobj 2798 0 obj << /Length 201 /Filter /FlateDecode >> stream xѽ 0+[CP N(GIqpӎxi'0?w%;}< y=q> stream xҽ 0+ 7 hjA3:9: *>Zɘ-tq\.OMsj7m9{P [R+D6ydbFel8G6F1&qy}ó-5i(KwEj1ob5+iWMO:E TiRgpг9iMu3R}oݘN. endstream endobj 2800 0 obj << /Length 306 /Filter /FlateDecode >> stream x픿N@BA2  y&RheaR+h}h<=%aف3|,2_RB],XQ%=晩&fƏgr>^1^_SRJXmTi}PƂjB+E/-nZ -@tbQ#qs`jiuZ|@AnJ52A$Nd3P O AWޡ|)ѧabnQ~ΐ#|77|@F>P<_.q.S\Ft?*% endstream endobj 2801 0 obj << /Length 162 /Filter /FlateDecode >> stream x333R0P04f )\\@0,ɥ`jȥU()*Mw pV (Dury(0001PudPJBS?9BR)Ȕ  +Wj endstream endobj 2802 0 obj << /Length 363 /Filter /FlateDecode >> stream xJ1){X%/ n^@b[A A'"QH=H7GGƙL ؃WN&dUC\ 3n{zRwj45E^ިO痪L ʙGgaEdfrZ,oPw$>me{Q`2 Xg b&b/Y`ccgXK)_Cy$8ogK:% |/@R(R܊oeM endstream endobj 2803 0 obj << /Length 468 /Filter /FlateDecode >> stream xڕN@ /!-y4ڊJȀbFlUsk"dbl/C+E}zj*lVK:eljS޸Ҕݔ{}y{4UܺLuJ);(e 9@`F(d$FPto9E[fɒdgGQY)0AF)T*̀t |O8?\r TC[5P"p mi0>"K C7G 4i8qN\.ʠMc ipq:}Q)Ҕ[|̧ DaY,4< $yS[Fe9Aǵ2SrЈmeŶ*`۽XFh Є1lA_0 b@v dm5!6'cdVV ZG[˗An.Fm+ym- endstream endobj 467 0 obj << /Type /Font /Subtype /Type3 /Name /F19 /FontMatrix [0.00581 0 0 0.00581 0 0] /FontBBox [ 3 -2 136 121 ] /Resources << /ProcSet [ /PDF /ImageB ] >> /FirstChar 48 /LastChar 116 /Widths 2804 0 R /Encoding 2805 0 R /CharProcs 2806 0 R >> endobj 2804 0 obj [79.62 79.62 0 0 0 79.62 0 0 79.62 0 0 0 0 0 0 0 0 0 0 115.03 121.64 108.35 0 0 0 57.4 0 0 0 145.95 0 0 0 0 0 0 0 119.38 0 0 0 0 0 0 0 0 0 0 0 79.62 88.47 0 88.47 0 48.63 0 88.47 0 0 84.04 0 0 88.47 79.62 0 0 61.91 0 61.91 ] endobj 2805 0 obj << /Type /Encoding /Differences [48/a48/a49 50/.notdef 53/a53 54/.notdef 56/a56 57/.notdef 67/a67/a68/a69 70/.notdef 73/a73 74/.notdef 77/a77 78/.notdef 85/a85 86/.notdef 97/a97/a98 99/.notdef 100/a100 101/.notdef 102/a102 103/.notdef 104/a104 105/.notdef 107/a107 108/.notdef 110/a110/a111 112/.notdef 114/a114 115/.notdef 116/a116] >> endobj 2806 0 obj << /a48 2800 0 R /a49 2801 0 R /a53 2802 0 R /a56 2803 0 R /a67 2784 0 R /a68 2785 0 R /a69 2786 0 R /a73 2787 0 R /a77 2788 0 R /a85 2789 0 R /a97 2790 0 R /a98 2791 0 R /a100 2792 0 R /a102 2793 0 R /a104 2794 0 R /a107 2795 0 R /a110 2796 0 R /a111 2797 0 R /a114 2798 0 R /a116 2799 0 R >> endobj 2807 0 obj << /Length1 1416 /Length2 5929 /Length3 0 /Length 6890 /Filter /FlateDecode >> stream xڍwP[5EAHQCE! JBJI Aޑ^RHw &/z?}$g>뜵U@PiSE"0"B Y XKTĄ@ Q'! ;4p$B? ` Ŕ!R swE$eEdA ($D!p[C8HW// UTtP8\pg aՂGqbBe/+1@}jC\` 8p_ A3 Cq5[ 4P5PDHv6#~CP+G0# l!h$;Clp_{UPBÝw*[0? GsN$IUws+Bb0 P$#))!aP# \a"?8>HWn|rg+m`p05N('S?KlgnYXIHט翳JJHO$PPFӭ(PZTFGGu( a[< m$N0 ?I/~nޒ/o~Cpv lt:"'uAq!_ 8Z ՅcmF80]$++ AW s׿ H۟6BP('J#-ȁB$WQ!Q7{ C(3 0?MP8#n/`0(`f رq E& i>3 d癁KC侎+*<wfY}kIB_%5><[m)RyO86usͧ>ƾYU672鹤Yٸ`QE@[F̪~՗52zDsԟGz?YIǕ,Jz6>(TxRzDPPߝ03@zI1&NЂڠJq@e!\ЌR}m#-onVJ%o Кϔ=t,^`ʼ:)jJHDCʍ:T>K7##|3菪J$O:B~N9L7 k[fQ1&c[OƑ7r¯ɷ {5\"{_Mw8%LCeĸCB}ϼtǁ!Ac, *7LweQܞgʫyӻeQo%M=1Qn 6$ `-D>Sğ#NP $(Rf?B/ *JC^v6EGkg n,KjAMl,˙$6*ڳ,D*"kD/=W|byy.yn8q ԧCEטpUc!Ffbtc7pgmq-[ׯe7g_4o.3c.]а$ffR`e旝j:z xiwA:˦!l{=9(Z+˷U6s.*- R}jRmQJ71tޓ?Huz9]|Ƿ=S{T]M@͉l-\Əj!jW^2OWr'5} h^ yere$^1ӝ{/x>yه`ȝ+`+PFSѮ*}HY3 "r+:t!ĥWU\B$q̱/eWjH!"xIh `)@  kU%~ffBD\& l~p>gɬ#)_~)Q&RDC~KvP3|ёVT#818K?$|J0U-7-) y'Ow ,~ӔF8j5gstj]a.FԜ_fcgΟ/eY xԬx6윍?<)Z\ Ɏh1r&"7gH^OBl4m &'oT2Q>$)Z\׶P[b@okrePe=}~Omr'*xaT*ŴO*g-M0> 3 SP`, ɨk")K4 AnGĵ|*ى1/<TBV9vc> v0溂[tomSgNIiB HznzVXF$ID׼Ev}_{]GSM(+|w#dߜ^=.LBLªŸ|-M@4mThE v%;=1g_c/({qcgV[d0$Y$+0Kڎ.Wr]9$IBIv)jWKGvtj7`m KRv 4:&L,TmnxF@ebUn't3էx@|!s2SkǬy妘D88+Gy'*rؠ$woOi :Jd[RťӶμ.f_y 'R /.OcEhri].%NDttii;QOb3kPk,6/? zVKx/(\8y_e7Ke"k;$L6 [OA^p,55(?|nZOc8" (toy5uZ-0f$Xڷ.ԑ=7.b@H>4 [ypWk] eݲ|T; h# t#.f|5$N/_^/5Fy薊(p\ݱa>IrC?dh#=QGC(svhATķQ#ZaBV@+~eyc^W 4;u7}Z2ga |[`z7F[dEÜyE7]4Cڕ&Y 9n]w8+j(ܿfMc̤&ԭ<ԹOcj x0PJ%МiO-_EqrIw", 7+]k3cv4nV_w3fS>@%'-EZŭjkwR=16@CaφEMģ47 -oyzlK(rDZ ' ]) g,9ҵR{mmUOQ͗0QW3G7W5G;yw*&L VMYR0s!Xs[SOrarM t\v=l^ײJ5EkV AԮpzþ ^gKI&E>wMKv bu Q%GC sX4_)\ (e;TQĽ};ը=P| y[PAƉk5=slH[$ \ŽS26ACCda"_ C+Z&Fj6˒;v~iO>mr1`/Ė }Nuүs5=v+Căa }_RٯU<ĽX;<5 kޟQOH,*RuT ((дQl\)h}_Y1Sc7]yNQ[F7ZdTFQzAH@ `4M,qwnXeMV)ϬQ۪gx\l,w>)Y7(OŦ0X/˃9uEIL2} +0Z%E%qÿxxjjR5YY8UijDV_˗e~- e+b#H@8U[ ,ׄ%yᔷnOep-~3fF'dbL>uU2NKݰ&:0gH1+l?zR'?jcZy{[f̧n-4'OVPVdXW֖K1(ao)ӴM leE42a\rM0To+FYJ@jiA>kx]tqJ,'9Oǹ|/crj&OR>X4:nǣd^Xɘڜ ,F鲾Vٖn Ep&Q38Ξ(^oL$FM?v endstream endobj 2808 0 obj << /Type /FontDescriptor /FontName /BBSUPV+CMBSY10 /Flags 4 /FontBBox [-26 -940 1332 825] /Ascent 750 /CapHeight 686 /Descent -194 /ItalicAngle -14 /StemV 61 /XHeight 444 /CharSet (/circlecopyrt) /FontFile 2807 0 R >> endobj 2809 0 obj << /Length1 1416 /Length2 6049 /Length3 0 /Length 7008 /Filter /FlateDecode >> stream xڍwT6 ""UC'IwTj$RB]zUzP(ETJ˹k}Z3g3zyX@8 H A AHi8,2l*B"@$0R@;+B!X2 A88u^a<@_@EW8 #ܕPq`8)eq8 +8=8G Ǹ?) ?@Ge`@#H;8H4`~J'g"W0C!H/hptq8~ iqw%~TS4B 04+E(3 Uv(WW8< KOs(;{' h!S$\S`@wD$Āp7 ( i&pF@{ /Nxc!p `0p3 h" keEP o (/- "  Q yue5 ?2j"Q%~ \LHYBE4o[@0<BH큋/?oㇸ"\ ~# .0"O.8aH EAngnj pCG=3% % "W{Q9T0ϙB0 N & BH$pڣ0 >i#/C(K > >N`!N!mՊK2wq=69ٓO>vլ:rgo{/ֱ{ 8A'.'yܞj&zdtSCdMI!ocIWmׇ$.2;Zmze:,f_?Z&Kb; }v ^L˼-~H蟢f}# G*Ϣ"zlI^z&7Tº]YԃZ-ŭu[ɝwmc_4):tL~rݧp6>}YWBLgVgPm񮑹iozCue6p>u#n:fQ>g>%gj;t\B"ݱDdJ25.wDzU/}yE ە&ݪ1)̢GG`WeO缕N+ط*m=-ZGTH,`kO 7ˉҿEcę@=Oິhx_A%GriZS#Ɖ^~vEZIPă7ɋ T>q?DgӦ8Ӓ3V펱P7a\ wx8;27pҢF' @(lu{i=j W%&#$xed)?Ŋs緎&f~C(CEm֮N7F&i.P}5o@UF{ ؿר;`2Q{i'wLHLvXߝJDeh2۟ k m'ZPhRLQLȝ;5!͇sݘ*Zg"ñY9[/T| y2M*n?A6b;Q滓1fNW+ At7`ﷁטMzCMٓ}_3 #0P2w0+'xmr$C?j#sl^ ~3 ޲ ڢl]aey@uoH~8nynAp;[n9#Nd0FcwSndc녝R[9;/Ǚ洆yˍ W=VvE.9}?ݰH/*EuCpj7awozNA}!"RӢ ?>ٷ{dv6luؑ;yub-ejȫ(#;G0 $6 GPCNs=o9LD{ j&u; JwbhI]]u*jq\c#=ؙ:wRͲu 7|RSK]Ez0)[2ZAKHʥf (8 =?,fE}Kok٩ D3jOn>x,!hz?!Y(JlѲÆw(kfu*z7b`ȉ^Nuܹ6ݞNƃG} i{Y @p# ~WV7ܴxq*; *6cX\fƷNUr0%3+4 IKh^X{O(i0 ML^m. P[!Ty Tur ѩr#ͳy:W|kJV#C2>~fgHh=~j>&6&ﴅ=,.-gۏǕInO*I;,ߊaa70@u|Ŝi2zݡ;`gJy_`jCc 7pCOrXwbݕI4o#./}nޕ&ͱ5法{I-jv`(iuR'I`gؚuʵB- D? jIԧuo؀ <ʃ)'{f\t.=g#4BUa8ބN2j qdċjU2UӗBc7CTHs`3Q1/sm|BwFܥ"'%P3JGN -ew"gh$&=/ V2W+j9~$dqig(V"uV6pjիƸ+Ŧ0P=b}:*;ӣO{JXuez. p !k''?!by-6 f涪cӦWWS0TksJO(uH5+'fs3ĝ$zѼRJ4mZr{Swi߬tV)Rk}ֱNZr~#8븊IElg,o{HJSI_/ڵI^c I,kG϶]ofTV/6a4P҆8uxb% uqg%G̖&d֖ b8$N]P>D Hxn8iqwʽPKڥ́ÛB% o{rỊ*7>/`.ܥ|YY>o>Cs~PCJ9T$iĺޘ)!--!\8@ηN3$W Ua >Xeً/T¡ʕn]\awkf_<2c#8=qcw-xeU;d5'ZIadltPQPM[VOq~Ke/Ȉ8 } :G+~'v,`)CGؒjN:snkRWuZ ,6Wl }+e1I2Q~wTbT:L@ui)4 yClprӯڞn"]slpYo}FsF dUZ70uRyܬrIq}g hНWcmPܘ]f:$lqZZDG~˧i.3 {EM3[֦"ת2w7Io?=wnu:!O;TdkZ,J[1KkW>w騯.܂~Z~bKʄ$M: -yϒ$Ľ%YZ,In{ۤCj,yf,vIbn+(%BFE1v ϷYתe$N_Jji$UE N(WĕQwxؒ~YPIVcҏu,&ݣ~G ` 6xՀQ2;}3j0Qьx8QerPs " ^VSXa7׍3\ڍG{޻&-Aay/J 6ǩڝ<_h:F[%Za&WZ74e O3V_)qcAQx{pbjzNv?bEV-l5ݑg^Iձ~/ESPZǦo]Nckg|&=}.z͜UǷYx#9i'Z|Q[0i/m>x_"Tϋ^f9Z\ U@mI% s#ބUч|llE{I0S T@N*2)KVsw5TIDM&+{^DB>MyLĤ +׆%n" Vd)y- y |7ed]TcAsrD:.VX o(IDLA>P 9N߁V}Ay.1RJy3֮gZ "U?Pֳ4zʇ$SQ}ɥ0E!G^T61/>}$O4 !*eIY,Q/\KlѐTM9.>1AWTZRxXY(qg*Jh/7DI7D{qŚlr;4أT5v;Kn^F2}7=)ew#.ײeTAp5.L]0w~| 3,+TCV3U&hԘK+rQ2p$Bv!`9"!PU|.C&zv;`deW{뱼i.mn| tjŐz4yx~sf#;|;bjf:dyM<gOpIy)vyqSɋ|ns/.64mV׿ʘzGũ1o u};ǣĂٕP'pu} --:iO [4ULt nYD_*-DqM38s}0_h~<<̘_> Ng8DHm]LӮk801-ܤ1H3%e~/-#AN.&2XRcwzR rZ2Kn*?ó8n9D4E_YIO<}wCy2n8#Ìvu湤}/rY@(vG*g|nb#Ѳbm+>b^Oxfh׸}ri_4I!κ4x&$Nw J.k+HM\Wٻ!kNYb$QX/ʮ%v:ٍ^K/ƈ[s#덽-ǚ&/8cφ>o$]HE#Z`V .\fuMK/Z`""UFMCC|°twF'H-ThS'VQ4eD/Ew1\ TfaahQ[{&9$Xʙ2c%#G.ԛ#~F|9ܻP*ag^k+_T͡J|~A@7֎7\> endobj 2811 0 obj << /Length1 1451 /Length2 6304 /Length3 0 /Length 7291 /Filter /FlateDecode >> stream xڍxT6"UzHG 齃ޤ@ $ҫ"ҋ TM@s=w<3=dTXD! ,@M"@)m'局zb( <`,Φ($$eAR@ @ }!QC<.X\HFFp#`+WFLQ8X,ZVTGAy( ( u 0{@&B0sc8LQ0 px!\u Eu8_ @Ph0t(PSO닽# `'Mc/~'ň`_EY Eb1Bp'Wsݑ(d+ E -jHmsb@II z*`懆v68Qh GAq7+R `NP8qf(O/דNa($-ղ2T򿜪(_@ @XF@)) @?fjȨ2HNo") g( BpoiWU#M/⷟=8={aqM򿡖?u{yW ͈ sam?v8F u6c!w3p5p$wpQ@pq-\~g] $k$$`OO)N UgoDE(,.ؤ]G*[xYnd"gS~1~3逝y=+f㼀oߌ5݇Ҿ,œTmKޚeyjô[J ry #oE Uuޜ0a}D-c0XݕbJV He 'bME!g.YgHߝr"#=n(ttH;ZIƺp[tEҘmaۏYV=B F|wN5j^t԰|!M1à ZѢLS.6Hψ5 k0F D4WLPD^"+>K5Bsx=nOH~( 'gY5cd]|OoaaSe;tZ=Y_8ӗ+1 V)3@hxm =yN0χv҈LoD e{\N/CK;s K]\rI^x*9 sVHjr:"'N*hDL )Le =`ͅS\Gȡ+S* *v]y0+f V?W[̯+r֕oo8a iٮT)1޽eD&__7$ 9'^$yJt+i\Xeq'NoNC1ͬܘAy{&v:k)qB?pgL)11Z&{V`+Qz3_ufWbx,Ġ d#6/(Ǟ%@FPsqK޶~8:lF|/_h=/MGI+4/7,.XǏ+CŔJií#_X6Y?֜_W jxd~z^l r~с?JzUqs;]MD#yoB _k4A>#H؜9fFkCszqiIn5 Uǧ YL/iW#ta,  ?*oDYJ{2vE?44ODŪ_a-L} nc1=k=T\&ix4۪ վ(3 ŌE 6>B+Jax>ь )$8Wxn7mghcUƍX5EK7?܄о& /YKL^ 3>oϽ"YBK쨫e(6,ϱi(Zmc_vkޜ 9='yP5!=i6F:ǭ[ SxA YŨ;JE]8c񦮺Ž6M @:_c:OdOC&..hf=EW(WcrGS8k0*q"011&_O* |y軄E&lST? Z@)!~R2pj-K]Pr,>_D]<zjc|{;ɣΫ=lS>vDT#'D%dcL$mrcݚor!u)a 5/` W8G*ED|^ƚH+='v)xd|h#?<䚴P^?}$֝a:媼i98x_t`kX2!]E.ZA2ٴ˥u9,('i\>m0Gx2(8_u>]wrcR(BQ,_xߏc #c5TЍ_f9mVlE 7o ŭ+ͩo(F^rB%cpW䚓\=ƽOwrKvjWBŒL8@#nOR7Қ+36ߝݝf-ZxVKաFh|0rCqa\8KN,R9(JcV{ݚ҄?US{4o/Q[,n׬gi13 Ht՝?~TSQh ^WhTPUu7TF XşqLwfaksq'yqZG89ێ4qmƧٜ@iMڃ>&LHskV;`VBMd-h*tFj67hm%v؈ Q#3_][&?z6[Y_Gn kDawC aEC)GTK=G-ĕf*Z2R{s$GRe_Zʑz-̊&IhIGNӬ8 rCEpln47@Cf_ mL5]ar]%+uvcaCL~M!v,>N CbҦYomN+}t@Q!wb2̠#qltse{[eTi_ WY㗣wCtSzq7fQRt?nkŻU;xnhkRF^}ZvFr1„͍$ ;|-u' | >?j#*ecO %V#|c5q #\')i ˡ~ 3"ݵ0j#+q o:&)Cf.H2e^=%0l 5ÔVzlkK"5[^%&*YΑ)|6n?K+˜-a(/n;-lBe@̙+ (YD'>IIgjT=L/a]}`9#7A߿S{W_\6|=Y,vśYp#WlNsBAݧ%MT#Y*Ŭ*Ԯ)l3_:#B $ sOOIԾwU"ns!.Սxopey q*lL`|b?4Q`:G80ݙIyo#M~#U Ӌ\3N{rm:~w5fوE{듵()By?F bMOa XE .=bk"րJ Ô1ַ}chqÖ́G|GFma\ $>FV8dS$D(fUeepËo) @Z Uּfgh66n[34۸"YԌS:Dnƈ4^ReJͦ Ϊ]6W43I:^9d.1J7_7E}Kuo jXf1L0XXZy_y+zJ1N=!.,U(^ܼߍ0.Z1彐e{KwF gǦ[E"t?ZV%L/}@k|-:'ZR㳧[ߢ~L2xCf}>~"B GJ:EE m+xت*=$p{ uaw},bMBʰ]II^MS;y%혩7-QU9졉 g]m:ҊqU?/;# p3];9j55u1yLV \q%0aMjA(XLPE3ܞyI:"b( #(Xl5<ڞYPU~} {Y$?!$ endstream endobj 2812 0 obj << /Type /FontDescriptor /FontName /GXOBFF+CMSY10 /Flags 4 /FontBBox [-29 -960 1116 775] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 40 /XHeight 431 /CharSet (/arrowright/bullet/circlecopyrt) /FontFile 2811 0 R >> endobj 2813 0 obj << /Length1 1401 /Length2 5973 /Length3 0 /Length 6927 /Filter /FlateDecode >> stream xڍuT[6-  Ct483303t7" ȡA:$D ;Ykg߹}_.6#S!\ jV2@H\pq!.?fAr+@ `q6ugBu=\@Q)9Qi9(B!@B1.5ŵ J J( 4`᮸P E>*źɉxyy C\1(" u1p' x L4sD`~MQX/\P8@h 9TGhG s6@Qa+\ Hhp 5XA  qpOk1Fa1O"?NY SC‘X h8w>"'Dy!,HO07s$'gcsc Y)) Y :,oi!sCq {8@<@,^DE0 |w@ TǙ׸@0=Q /[`(?+bgh-|(o8($+) JK]?7_V#@TAڣ1ohG2|wq6 I#-_)7oH嗛pC\.>pTda‰ߡR6BpPA:(.$*! mG`4p uMG@P:3Vlj}5P$4H&c(N0/~E(,.G?NJD491O/_h4Nkpo803ʇ; o:Ra:HsKLUW${깟L1wiF%C6m!ϰx]B}'{m[0ðtZ"cD`'+-ku+-H%e ֊3 e<5ac>|A?Rmcw^RZD+@V;D>_b:NgY $6%.NLaEemIݫϿv܎ksz_s쿖z[8u-_^eM v )BAJ|G:?EVo*7L ̿ T] &f&'ȡ]%W$EݠQaljS݀'e3OيW^Hz) :!ʎpac<")59{}O:}mUs_{j"tncRhΝr2QRjݝ-RwUu 5t,ϣ I'k Sj>\Tuj0KD%P46.5g=w"#?]wW'Vc3c47]?>{JtNȟ+­\_ 4Q ]rO6l?J6~i8E]v ZJ`p(5wӁ8R,7=v՟L rrd +apa&0靑, 蟘JUM>" #2Pe9[*`BeˉbbW_Ӹre5fXl|07GKTc>,}_ZL39 a~͝UzT!2,F4$wu)Sէ*@GӣV;Ϩ9f+rvfLCz ~\l3DZ?אx^x0+ua.&w1{I—0{yjKKG#<*Gd~!YhF=Mxf#QˈR@HTC9 nlVЫ9OK IWcbg'ul_, &v]\e6lDX/h)O35ڑ<Ɣ7dmڽܧ=z6rtJ`Ydlũ PZd'3}(9YEċ4cK/߾dgmd3j!. az*$1r)Scʜ=ȻH(it[̥M\UY/nd}ڄf鞾{MtTQnޭWi𦧶Xe6sΨ6J, M$*6,c1R{Y}/ma^u D#탩kWGPHi#& ݅Tgb/)rca'P@c}R&7I 7VBElL=̯ fQwX^탺 ܠyЧzlYf.aV )ub]^:zT7#<ִ.62ϛTa}tY_v2 FN"9)yie+Ko+f~9.+5zeCsۀ*怍9&5[4A`{ G. ưm!vx;Eq$0.7q7Έ!x H16w{lR}mQ¡|e4ʲOg 8*re2-еoi<=4`f#RKWQ`Ŷn*Mj,I. ,I _btgogJayl(?7']!K)/qH ď,MR;$mnpAZJ} j-HeցbKtbuqpn<9uGCڭI`d(ɓFB˚@XriS3{{jܐֳQ6}P -_FGn.{zZ'uҢ#Yv:8nj6$gŞv;EQR\ݡmjწ7_n;g4UOo6 HK2SʜVpm<_m"Y _WJ9bMV"@娞6UWDfmpŌcR% g=x&fÀi4W4=klf><ʪyDKMzQsONENp'1&_ˆ$ЧLi]߿|q&^Hlr'Mc.N~"aZd:,|ژ!AwDrqziz;N9]drf?3%_`&^9g'\Ѝ[驃;4FBZE_0lM|P+#^h n]LB"\e\_]ʝA6ƫ˂s"jBSs9$QPdPeǜg$V qmu|H-Rh֜ LJ0#$ac?gF~D8/hU盝F}-O~xCFI=0B2&w =.s/6rktV5Z_ <P P ]~4yIEmFU(XCtVFm*y¾b9*_*~^7;ex{9װڍw=k!_z6c9EA҄w4)sJMZ ey)oUD'Le^HRo<oz VMJZ>aOpK5VGɡ7J_XS8K2w=sy=x J 8*O/9{[p>݇zSlFv"MĶPֹ/> endobj 2815 0 obj << /Length1 1621 /Length2 3583 /Length3 0 /Length 4427 /Filter /FlateDecode >> stream xڭVy8}ۖ%ԭزDk3ǎ!]DE,Y/Y$!-D1(C<~qur^CQN0m'RH'0 HIl)9Z~~M Z`L 0FR$}iM S+ 医 '^8)2+ p#` ch0 {9!@!0a BBᇤZX `0Їa7 ΞrӎZ+zW|3Ph (f,nՎh)uNAs7ƈ<r}^-3?#uoNhJr(cՖcF TW<]N>0cx=ԀM}3Mo- JM#F΀XTIgg.@ա140ҬX(R|S-|B"NO"~j;dHh^ 9"v;jfl q9@ZڲNdN`yXc̡slsF9JDOAh!("':e6ZMtx0,LF2MqIA =u67*jN6-TI/UWcEyc z49P>uZwP^ Qև+2q &^Dc(m}$ҡHh}h!1;/y9Ƅ /8ſ*SW8;LQ]iHiTᖜ7dI2$`ƮA~g:kaV?iV˼Sp?tcwW~]?Vp KCe?-tkSYbcu9 vzKӎhưC[vQ}\1Ibuۄs<[/}lfdtiluZq-7:n 8ˏ IhK[/K%6LucÑM\Tdbϳfd_+` ?6ܜ=)ԒTݽYK}2azm6TGwǤ 2+*i=ict1,H29TYՀ=niҳhMzx&L;.| X9}[l%+ɴ)eِ1q}'-ȲKJN:6ujp=*)6}Hy3/BQ hX?EJ/ Lڒͺz(#!w6v(3_}/nfĸڀn?3xvd;Y$VrH:Y xX~ITP$ڔLۯwgz\-F{?D5q,P3 Md?Tr* 䜔zF0n0{I5N)rgߋzΟh~^Ky{Psے|ЋIW~36cUQ_~k ?sfx/:7 '-Rb){﹃ !Y&bևGUx*0YkH۾P`J}<)+5R<n.n b%CYEW4A44E|,iVQev23I%+mE6<l#_ 8 9ﭱͯАj%ATnG󑷊0G~C`m\н/d|yʸazZB|ŒtYΙ$Pdœȯh E|QKV![^l[dMe>\),̾w'c62BV.'mYFASKleV\,%g0&ƹEVcEÖ&LjҟEʧ X孜ԙ=JsOTBl9JZ~<%s5PVJ-zN}Y28; N%_[h6q%iyݤ@۠t3R; EKm~"z6RBW# K3b~e<tȌZ'=.{#6MIgϩIJI7̀wb^z;9;5_3M[ba꜑n|$tA: bcY1c<]?FکfcĿ9Lm%jT2絸 w|JC;y%ozbYV1QD8>S N˼ˮsfO^5x{YOԷ@eVi51CN}O?tm~(;ZۻiɭyJ0t 4А^L6+07 e ̸Jܹ<uM)bgj2LrPs~/VpL%U,sW@^ƚYxhjho'Tk4ͦ;i͕l6r@|wR"FJS0AR或>v1av@W!ɳJd䣹+Zb0Hte\F0evg|!W8ʕވBXz[;YJ H_mfօ#v0S-pɫ MȠ>4 6 L~ Kw$[X|"-t|Sx7BR:+z} ŌKus'. _/;ol2k?ю42ߧ,OcVBj.v TFNJ,̈=뼜[n1UZG endstream endobj 2816 0 obj << /Type /FontDescriptor /FontName /HLHPSF+Dingbats /Flags 4 /FontBBox [-1 -143 981 819] /Ascent 708 /CapHeight 708 /Descent 0 /ItalicAngle 0 /StemV 0 /XHeight 400 /CharSet (/a12/a120/a121/a122) /FontFile 2815 0 R >> endobj 1133 0 obj << /Type /Font /Subtype /Type1 /BaseFont /BBSUPV+CMBSY10 /FontDescriptor 2808 0 R /FirstChar 13 /LastChar 13 /Widths 1766 0 R >> endobj 1180 0 obj << /Type /Font /Subtype /Type1 /BaseFont /PBPPQD+CMMI10 /FontDescriptor 2810 0 R /FirstChar 22 /LastChar 22 /Widths 1723 0 R >> endobj 476 0 obj << /Type /Font /Subtype /Type1 /BaseFont /GXOBFF+CMSY10 /FontDescriptor 2812 0 R /FirstChar 13 /LastChar 33 /Widths 2593 0 R >> endobj 1237 0 obj << /Type /Font /Subtype /Type1 /BaseFont /AQKOUH+CMSY8 /FontDescriptor 2814 0 R /FirstChar 13 /LastChar 13 /Widths 1676 0 R >> endobj 621 0 obj << /Type /Font /Subtype /Type1 /BaseFont /HLHPSF+Dingbats /FontDescriptor 2816 0 R /FirstChar 43 /LastChar 174 /Widths 2287 0 R >> endobj 469 0 obj << /Type /Pages /Count 6 /Parent 2817 0 R /Kids [462 0 R 471 0 R 508 0 R 554 0 R 593 0 R 609 0 R] >> endobj 625 0 obj << /Type /Pages /Count 6 /Parent 2817 0 R /Kids [614 0 R 644 0 R 654 0 R 658 0 R 663 0 R 671 0 R] >> endobj 686 0 obj << /Type /Pages /Count 6 /Parent 2817 0 R /Kids [678 0 R 690 0 R 702 0 R 710 0 R 719 0 R 727 0 R] >> endobj 740 0 obj << /Type /Pages /Count 6 /Parent 2817 0 R /Kids [736 0 R 754 0 R 772 0 R 783 0 R 798 0 R 809 0 R] >> endobj 825 0 obj << /Type /Pages /Count 6 /Parent 2817 0 R /Kids [820 0 R 838 0 R 848 0 R 865 0 R 875 0 R 885 0 R] >> endobj 904 0 obj << /Type /Pages /Count 6 /Parent 2817 0 R /Kids [897 0 R 907 0 R 919 0 R 933 0 R 946 0 R 961 0 R] >> endobj 991 0 obj << /Type /Pages /Count 6 /Parent 2818 0 R /Kids [982 0 R 994 0 R 1000 0 R 1006 0 R 1011 0 R 1018 0 R] >> endobj 1026 0 obj << /Type /Pages /Count 6 /Parent 2818 0 R /Kids [1023 0 R 1028 0 R 1032 0 R 1036 0 R 1040 0 R 1044 0 R] >> endobj 1056 0 obj << /Type /Pages /Count 6 /Parent 2818 0 R /Kids [1049 0 R 1059 0 R 1064 0 R 1070 0 R 1075 0 R 1080 0 R] >> endobj 1091 0 obj << /Type /Pages /Count 6 /Parent 2818 0 R /Kids [1086 0 R 1093 0 R 1098 0 R 1104 0 R 1113 0 R 1117 0 R] >> endobj 1128 0 obj << /Type /Pages /Count 6 /Parent 2818 0 R /Kids [1122 0 R 1130 0 R 1137 0 R 1141 0 R 1145 0 R 1149 0 R] >> endobj 1168 0 obj << /Type /Pages /Count 6 /Parent 2818 0 R /Kids [1162 0 R 1176 0 R 1187 0 R 1200 0 R 1212 0 R 1217 0 R] >> endobj 1230 0 obj << /Type /Pages /Count 6 /Parent 2819 0 R /Kids [1227 0 R 1233 0 R 1241 0 R 1246 0 R 1251 0 R 1256 0 R] >> endobj 1263 0 obj << /Type /Pages /Count 6 /Parent 2819 0 R /Kids [1260 0 R 1265 0 R 1269 0 R 1274 0 R 1279 0 R 1285 0 R] >> endobj 1296 0 obj << /Type /Pages /Count 6 /Parent 2819 0 R /Kids [1292 0 R 1300 0 R 1316 0 R 1321 0 R 1325 0 R 1329 0 R] >> endobj 1336 0 obj << /Type /Pages /Count 6 /Parent 2819 0 R /Kids [1333 0 R 1338 0 R 1342 0 R 1347 0 R 1351 0 R 1355 0 R] >> endobj 1362 0 obj << /Type /Pages /Count 6 /Parent 2819 0 R /Kids [1359 0 R 1364 0 R 1405 0 R 1411 0 R 1415 0 R 1419 0 R] >> endobj 1426 0 obj << /Type /Pages /Count 6 /Parent 2819 0 R /Kids [1423 0 R 1428 0 R 1432 0 R 1436 0 R 1461 0 R 1466 0 R] >> endobj 1509 0 obj << /Type /Pages /Count 2 /Parent 2820 0 R /Kids [1502 0 R 1532 0 R] >> endobj 2817 0 obj << /Type /Pages /Count 36 /Parent 2821 0 R /Kids [469 0 R 625 0 R 686 0 R 740 0 R 825 0 R 904 0 R] >> endobj 2818 0 obj << /Type /Pages /Count 36 /Parent 2821 0 R /Kids [991 0 R 1026 0 R 1056 0 R 1091 0 R 1128 0 R 1168 0 R] >> endobj 2819 0 obj << /Type /Pages /Count 36 /Parent 2821 0 R /Kids [1230 0 R 1263 0 R 1296 0 R 1336 0 R 1362 0 R 1426 0 R] >> endobj 2820 0 obj << /Type /Pages /Count 2 /Parent 2821 0 R /Kids [1509 0 R] >> endobj 2821 0 obj << /Type /Pages /Count 110 /Kids [2817 0 R 2818 0 R 2819 0 R 2820 0 R] >> endobj 2822 0 obj << /Type /Outlines /First 3 0 R /Last 459 0 R /Count 17 >> endobj 459 0 obj << /Title 460 0 R /A 457 0 R /Parent 2822 0 R /Prev 447 0 R >> endobj 455 0 obj << /Title 456 0 R /A 453 0 R /Parent 451 0 R >> endobj 451 0 obj << /Title 452 0 R /A 449 0 R /Parent 447 0 R /First 455 0 R /Last 455 0 R /Count -1 >> endobj 447 0 obj << /Title 448 0 R /A 445 0 R /Parent 2822 0 R /Prev 443 0 R /Next 459 0 R /First 451 0 R /Last 451 0 R /Count -1 >> endobj 443 0 obj << /Title 444 0 R /A 441 0 R /Parent 2822 0 R /Prev 439 0 R /Next 447 0 R >> endobj 439 0 obj << /Title 440 0 R /A 437 0 R /Parent 2822 0 R /Prev 423 0 R /Next 443 0 R >> endobj 435 0 obj << /Title 436 0 R /A 433 0 R /Parent 423 0 R /Prev 431 0 R >> endobj 431 0 obj << /Title 432 0 R /A 429 0 R /Parent 423 0 R /Prev 427 0 R /Next 435 0 R >> endobj 427 0 obj << /Title 428 0 R /A 425 0 R /Parent 423 0 R /Next 431 0 R >> endobj 423 0 obj << /Title 424 0 R /A 421 0 R /Parent 2822 0 R /Prev 411 0 R /Next 439 0 R /First 427 0 R /Last 435 0 R /Count -3 >> endobj 419 0 obj << /Title 420 0 R /A 417 0 R /Parent 411 0 R /Prev 415 0 R >> endobj 415 0 obj << /Title 416 0 R /A 413 0 R /Parent 411 0 R /Next 419 0 R >> endobj 411 0 obj << /Title 412 0 R /A 409 0 R /Parent 2822 0 R /Prev 407 0 R /Next 423 0 R /First 415 0 R /Last 419 0 R /Count -2 >> endobj 407 0 obj << /Title 408 0 R /A 405 0 R /Parent 2822 0 R /Prev 403 0 R /Next 411 0 R >> endobj 403 0 obj << /Title 404 0 R /A 401 0 R /Parent 2822 0 R /Prev 399 0 R /Next 407 0 R >> endobj 399 0 obj << /Title 400 0 R /A 397 0 R /Parent 2822 0 R /Prev 375 0 R /Next 403 0 R >> endobj 395 0 obj << /Title 396 0 R /A 393 0 R /Parent 375 0 R /Prev 391 0 R >> endobj 391 0 obj << /Title 392 0 R /A 389 0 R /Parent 375 0 R /Prev 387 0 R /Next 395 0 R >> endobj 387 0 obj << /Title 388 0 R /A 385 0 R /Parent 375 0 R /Prev 383 0 R /Next 391 0 R >> endobj 383 0 obj << /Title 384 0 R /A 381 0 R /Parent 375 0 R /Prev 379 0 R /Next 387 0 R >> endobj 379 0 obj << /Title 380 0 R /A 377 0 R /Parent 375 0 R /Next 383 0 R >> endobj 375 0 obj << /Title 376 0 R /A 373 0 R /Parent 2822 0 R /Prev 315 0 R /Next 399 0 R /First 379 0 R /Last 395 0 R /Count -5 >> endobj 371 0 obj << /Title 372 0 R /A 369 0 R /Parent 335 0 R /Prev 367 0 R >> endobj 367 0 obj << /Title 368 0 R /A 365 0 R /Parent 335 0 R /Prev 363 0 R /Next 371 0 R >> endobj 363 0 obj << /Title 364 0 R /A 361 0 R /Parent 335 0 R /Prev 359 0 R /Next 367 0 R >> endobj 359 0 obj << /Title 360 0 R /A 357 0 R /Parent 335 0 R /Prev 355 0 R /Next 363 0 R >> endobj 355 0 obj << /Title 356 0 R /A 353 0 R /Parent 335 0 R /Prev 351 0 R /Next 359 0 R >> endobj 351 0 obj << /Title 352 0 R /A 349 0 R /Parent 335 0 R /Prev 347 0 R /Next 355 0 R >> endobj 347 0 obj << /Title 348 0 R /A 345 0 R /Parent 335 0 R /Prev 343 0 R /Next 351 0 R >> endobj 343 0 obj << /Title 344 0 R /A 341 0 R /Parent 335 0 R /Prev 339 0 R /Next 347 0 R >> endobj 339 0 obj << /Title 340 0 R /A 337 0 R /Parent 335 0 R /Next 343 0 R >> endobj 335 0 obj << /Title 336 0 R /A 333 0 R /Parent 315 0 R /Prev 331 0 R /First 339 0 R /Last 371 0 R /Count -9 >> endobj 331 0 obj << /Title 332 0 R /A 329 0 R /Parent 315 0 R /Prev 327 0 R /Next 335 0 R >> endobj 327 0 obj << /Title 328 0 R /A 325 0 R /Parent 315 0 R /Prev 323 0 R /Next 331 0 R >> endobj 323 0 obj << /Title 324 0 R /A 321 0 R /Parent 315 0 R /Prev 319 0 R /Next 327 0 R >> endobj 319 0 obj << /Title 320 0 R /A 317 0 R /Parent 315 0 R /Next 323 0 R >> endobj 315 0 obj << /Title 316 0 R /A 313 0 R /Parent 2822 0 R /Prev 311 0 R /Next 375 0 R /First 319 0 R /Last 335 0 R /Count -5 >> endobj 311 0 obj << /Title 312 0 R /A 309 0 R /Parent 2822 0 R /Prev 247 0 R /Next 315 0 R >> endobj 307 0 obj << /Title 308 0 R /A 305 0 R /Parent 247 0 R /Prev 303 0 R >> endobj 303 0 obj << /Title 304 0 R /A 301 0 R /Parent 247 0 R /Prev 299 0 R /Next 307 0 R >> endobj 299 0 obj << /Title 300 0 R /A 297 0 R /Parent 247 0 R /Prev 295 0 R /Next 303 0 R >> endobj 295 0 obj << /Title 296 0 R /A 293 0 R /Parent 247 0 R /Prev 291 0 R /Next 299 0 R >> endobj 291 0 obj << /Title 292 0 R /A 289 0 R /Parent 247 0 R /Prev 287 0 R /Next 295 0 R >> endobj 287 0 obj << /Title 288 0 R /A 285 0 R /Parent 247 0 R /Prev 283 0 R /Next 291 0 R >> endobj 283 0 obj << /Title 284 0 R /A 281 0 R /Parent 247 0 R /Prev 279 0 R /Next 287 0 R >> endobj 279 0 obj << /Title 280 0 R /A 277 0 R /Parent 247 0 R /Prev 275 0 R /Next 283 0 R >> endobj 275 0 obj << /Title 276 0 R /A 273 0 R /Parent 247 0 R /Prev 271 0 R /Next 279 0 R >> endobj 271 0 obj << /Title 272 0 R /A 269 0 R /Parent 247 0 R /Prev 267 0 R /Next 275 0 R >> endobj 267 0 obj << /Title 268 0 R /A 265 0 R /Parent 247 0 R /Prev 263 0 R /Next 271 0 R >> endobj 263 0 obj << /Title 264 0 R /A 261 0 R /Parent 247 0 R /Prev 259 0 R /Next 267 0 R >> endobj 259 0 obj << /Title 260 0 R /A 257 0 R /Parent 247 0 R /Prev 255 0 R /Next 263 0 R >> endobj 255 0 obj << /Title 256 0 R /A 253 0 R /Parent 247 0 R /Prev 251 0 R /Next 259 0 R >> endobj 251 0 obj << /Title 252 0 R /A 249 0 R /Parent 247 0 R /Next 255 0 R >> endobj 247 0 obj << /Title 248 0 R /A 245 0 R /Parent 2822 0 R /Prev 47 0 R /Next 311 0 R /First 251 0 R /Last 307 0 R /Count -15 >> endobj 243 0 obj << /Title 244 0 R /A 241 0 R /Parent 47 0 R /Prev 159 0 R >> endobj 239 0 obj << /Title 240 0 R /A 237 0 R /Parent 159 0 R /Prev 235 0 R >> endobj 235 0 obj << /Title 236 0 R /A 233 0 R /Parent 159 0 R /Prev 231 0 R /Next 239 0 R >> endobj 231 0 obj << /Title 232 0 R /A 229 0 R /Parent 159 0 R /Prev 227 0 R /Next 235 0 R >> endobj 227 0 obj << /Title 228 0 R /A 225 0 R /Parent 159 0 R /Prev 223 0 R /Next 231 0 R >> endobj 223 0 obj << /Title 224 0 R /A 221 0 R /Parent 159 0 R /Prev 219 0 R /Next 227 0 R >> endobj 219 0 obj << /Title 220 0 R /A 217 0 R /Parent 159 0 R /Prev 215 0 R /Next 223 0 R >> endobj 215 0 obj << /Title 216 0 R /A 213 0 R /Parent 159 0 R /Prev 211 0 R /Next 219 0 R >> endobj 211 0 obj << /Title 212 0 R /A 209 0 R /Parent 159 0 R /Prev 207 0 R /Next 215 0 R >> endobj 207 0 obj << /Title 208 0 R /A 205 0 R /Parent 159 0 R /Prev 203 0 R /Next 211 0 R >> endobj 203 0 obj << /Title 204 0 R /A 201 0 R /Parent 159 0 R /Prev 199 0 R /Next 207 0 R >> endobj 199 0 obj << /Title 200 0 R /A 197 0 R /Parent 159 0 R /Prev 195 0 R /Next 203 0 R >> endobj 195 0 obj << /Title 196 0 R /A 193 0 R /Parent 159 0 R /Prev 191 0 R /Next 199 0 R >> endobj 191 0 obj << /Title 192 0 R /A 189 0 R /Parent 159 0 R /Prev 187 0 R /Next 195 0 R >> endobj 187 0 obj << /Title 188 0 R /A 185 0 R /Parent 159 0 R /Prev 183 0 R /Next 191 0 R >> endobj 183 0 obj << /Title 184 0 R /A 181 0 R /Parent 159 0 R /Prev 179 0 R /Next 187 0 R >> endobj 179 0 obj << /Title 180 0 R /A 177 0 R /Parent 159 0 R /Prev 175 0 R /Next 183 0 R >> endobj 175 0 obj << /Title 176 0 R /A 173 0 R /Parent 159 0 R /Prev 171 0 R /Next 179 0 R >> endobj 171 0 obj << /Title 172 0 R /A 169 0 R /Parent 159 0 R /Prev 167 0 R /Next 175 0 R >> endobj 167 0 obj << /Title 168 0 R /A 165 0 R /Parent 159 0 R /Prev 163 0 R /Next 171 0 R >> endobj 163 0 obj << /Title 164 0 R /A 161 0 R /Parent 159 0 R /Next 167 0 R >> endobj 159 0 obj << /Title 160 0 R /A 157 0 R /Parent 47 0 R /Prev 127 0 R /Next 243 0 R /First 163 0 R /Last 239 0 R /Count -20 >> endobj 155 0 obj << /Title 156 0 R /A 153 0 R /Parent 127 0 R /Prev 151 0 R >> endobj 151 0 obj << /Title 152 0 R /A 149 0 R /Parent 127 0 R /Prev 147 0 R /Next 155 0 R >> endobj 147 0 obj << /Title 148 0 R /A 145 0 R /Parent 127 0 R /Prev 143 0 R /Next 151 0 R >> endobj 143 0 obj << /Title 144 0 R /A 141 0 R /Parent 127 0 R /Prev 139 0 R /Next 147 0 R >> endobj 139 0 obj << /Title 140 0 R /A 137 0 R /Parent 127 0 R /Prev 135 0 R /Next 143 0 R >> endobj 135 0 obj << /Title 136 0 R /A 133 0 R /Parent 127 0 R /Prev 131 0 R /Next 139 0 R >> endobj 131 0 obj << /Title 132 0 R /A 129 0 R /Parent 127 0 R /Next 135 0 R >> endobj 127 0 obj << /Title 128 0 R /A 125 0 R /Parent 47 0 R /Prev 107 0 R /Next 159 0 R /First 131 0 R /Last 155 0 R /Count -7 >> endobj 123 0 obj << /Title 124 0 R /A 121 0 R /Parent 107 0 R /Prev 119 0 R >> endobj 119 0 obj << /Title 120 0 R /A 117 0 R /Parent 107 0 R /Prev 115 0 R /Next 123 0 R >> endobj 115 0 obj << /Title 116 0 R /A 113 0 R /Parent 107 0 R /Prev 111 0 R /Next 119 0 R >> endobj 111 0 obj << /Title 112 0 R /A 109 0 R /Parent 107 0 R /Next 115 0 R >> endobj 107 0 obj << /Title 108 0 R /A 105 0 R /Parent 47 0 R /Prev 71 0 R /Next 127 0 R /First 111 0 R /Last 123 0 R /Count -4 >> endobj 103 0 obj << /Title 104 0 R /A 101 0 R /Parent 71 0 R /Prev 99 0 R >> endobj 99 0 obj << /Title 100 0 R /A 97 0 R /Parent 71 0 R /Prev 95 0 R /Next 103 0 R >> endobj 95 0 obj << /Title 96 0 R /A 93 0 R /Parent 71 0 R /Prev 91 0 R /Next 99 0 R >> endobj 91 0 obj << /Title 92 0 R /A 89 0 R /Parent 71 0 R /Prev 87 0 R /Next 95 0 R >> endobj 87 0 obj << /Title 88 0 R /A 85 0 R /Parent 71 0 R /Prev 83 0 R /Next 91 0 R >> endobj 83 0 obj << /Title 84 0 R /A 81 0 R /Parent 71 0 R /Prev 79 0 R /Next 87 0 R >> endobj 79 0 obj << /Title 80 0 R /A 77 0 R /Parent 71 0 R /Prev 75 0 R /Next 83 0 R >> endobj 75 0 obj << /Title 76 0 R /A 73 0 R /Parent 71 0 R /Next 79 0 R >> endobj 71 0 obj << /Title 72 0 R /A 69 0 R /Parent 47 0 R /Prev 51 0 R /Next 107 0 R /First 75 0 R /Last 103 0 R /Count -8 >> endobj 67 0 obj << /Title 68 0 R /A 65 0 R /Parent 51 0 R /Prev 63 0 R >> endobj 63 0 obj << /Title 64 0 R /A 61 0 R /Parent 51 0 R /Prev 59 0 R /Next 67 0 R >> endobj 59 0 obj << /Title 60 0 R /A 57 0 R /Parent 51 0 R /Prev 55 0 R /Next 63 0 R >> endobj 55 0 obj << /Title 56 0 R /A 53 0 R /Parent 51 0 R /Next 59 0 R >> endobj 51 0 obj << /Title 52 0 R /A 49 0 R /Parent 47 0 R /Next 71 0 R /First 55 0 R /Last 67 0 R /Count -4 >> endobj 47 0 obj << /Title 48 0 R /A 45 0 R /Parent 2822 0 R /Prev 35 0 R /Next 247 0 R /First 51 0 R /Last 243 0 R /Count -6 >> endobj 43 0 obj << /Title 44 0 R /A 41 0 R /Parent 35 0 R /Prev 39 0 R >> endobj 39 0 obj << /Title 40 0 R /A 37 0 R /Parent 35 0 R /Next 43 0 R >> endobj 35 0 obj << /Title 36 0 R /A 33 0 R /Parent 2822 0 R /Prev 19 0 R /Next 47 0 R /First 39 0 R /Last 43 0 R /Count -2 >> endobj 31 0 obj << /Title 32 0 R /A 29 0 R /Parent 19 0 R /Prev 27 0 R >> endobj 27 0 obj << /Title 28 0 R /A 25 0 R /Parent 19 0 R /Prev 23 0 R /Next 31 0 R >> endobj 23 0 obj << /Title 24 0 R /A 21 0 R /Parent 19 0 R /Next 27 0 R >> endobj 19 0 obj << /Title 20 0 R /A 17 0 R /Parent 2822 0 R /Prev 3 0 R /Next 35 0 R /First 23 0 R /Last 31 0 R /Count -3 >> endobj 15 0 obj << /Title 16 0 R /A 13 0 R /Parent 3 0 R /Prev 11 0 R >> endobj 11 0 obj << /Title 12 0 R /A 9 0 R /Parent 3 0 R /Prev 7 0 R /Next 15 0 R >> endobj 7 0 obj << /Title 8 0 R /A 5 0 R /Parent 3 0 R /Next 11 0 R >> endobj 3 0 obj << /Title 4 0 R /A 1 0 R /Parent 2822 0 R /Next 19 0 R /First 7 0 R /Last 15 0 R /Count -3 >> endobj 2823 0 obj << /Names [(Doc-Start) 466 0 R (Hfootnote.1) 669 0 R (Hfootnote.10) 844 0 R (Hfootnote.11) 890 0 R (Hfootnote.12) 891 0 R (Hfootnote.13) 892 0 R] /Limits [(Doc-Start) (Hfootnote.13)] >> endobj 2824 0 obj << /Names [(Hfootnote.14) 974 0 R (Hfootnote.15) 976 0 R (Hfootnote.16) 977 0 R (Hfootnote.17) 978 0 R (Hfootnote.18) 1003 0 R (Hfootnote.19) 1004 0 R] /Limits [(Hfootnote.14) (Hfootnote.19)] >> endobj 2825 0 obj << /Names [(Hfootnote.2) 732 0 R (Hfootnote.20) 1057 0 R (Hfootnote.21) 1192 0 R (Hfootnote.22) 1249 0 R (Hfootnote.3) 777 0 R (Hfootnote.4) 788 0 R] /Limits [(Hfootnote.2) (Hfootnote.4)] >> endobj 2826 0 obj << /Names [(Hfootnote.5) 802 0 R (Hfootnote.6) 803 0 R (Hfootnote.7) 804 0 R (Hfootnote.8) 805 0 R (Hfootnote.9) 843 0 R (Item.1) 620 0 R] /Limits [(Hfootnote.5) (Item.1)] >> endobj 2827 0 obj << /Names [(Item.10) 1152 0 R (Item.11) 1153 0 R (Item.12) 1154 0 R (Item.13) 1155 0 R (Item.14) 1220 0 R (Item.15) 1222 0 R] /Limits [(Item.10) (Item.15)] >> endobj 2828 0 obj << /Names [(Item.16) 1223 0 R (Item.17) 1224 0 R (Item.18) 1304 0 R (Item.19) 1305 0 R (Item.2) 622 0 R (Item.20) 1306 0 R] /Limits [(Item.16) (Item.20)] >> endobj 2829 0 obj << /Names [(Item.21) 1307 0 R (Item.22) 1308 0 R (Item.23) 1309 0 R (Item.24) 1310 0 R (Item.25) 1311 0 R (Item.26) 1312 0 R] /Limits [(Item.21) (Item.26)] >> endobj 2830 0 obj << /Names [(Item.27) 1313 0 R (Item.28) 1314 0 R (Item.3) 623 0 R (Item.4) 965 0 R (Item.5) 966 0 R (Item.6) 967 0 R] /Limits [(Item.27) (Item.6)] >> endobj 2831 0 obj << /Names [(Item.7) 969 0 R (Item.8) 970 0 R (Item.9) 971 0 R (appendix*.96) 1464 0 R (appendix*.97) 1505 0 R (appendix.A) 406 0 R] /Limits [(Item.7) (appendix.A)] >> endobj 2832 0 obj << /Names [(appendix.B) 410 0 R (appendix.C) 422 0 R (appendix.D) 438 0 R (appendix.E) 442 0 R (appendix.F) 446 0 R (appendix.G) 458 0 R] /Limits [(appendix.B) (appendix.G)] >> endobj 2833 0 obj << /Names [(chapter*.1) 512 0 R (chapter*.2) 2 0 R (chapter.1) 18 0 R (chapter.2) 34 0 R (chapter.3) 46 0 R (chapter.4) 246 0 R] /Limits [(chapter*.1) (chapter.4)] >> endobj 2834 0 obj << /Names [(chapter.5) 310 0 R (chapter.6) 314 0 R (chapter.7) 374 0 R (chapter.8) 398 0 R (chapter.9) 402 0 R (code.1) 696 0 R] /Limits [(chapter.5) (code.1)] >> endobj 2835 0 obj << /Names [(code.10) 1090 0 R (code.11) 1096 0 R (code.12) 1101 0 R (code.13) 1102 0 R (code.14) 1120 0 R (code.15) 1125 0 R] /Limits [(code.10) (code.15)] >> endobj 2836 0 obj << /Names [(code.16) 1127 0 R (code.17) 1134 0 R (code.2) 1009 0 R (code.3) 1015 0 R (code.4) 1021 0 R (code.5) 1068 0 R] /Limits [(code.16) (code.5)] >> endobj 2837 0 obj << /Names [(code.6) 1073 0 R (code.7) 1078 0 R (code.8) 1084 0 R (code.9) 1089 0 R (figure.caption.19) 695 0 R (figure.caption.20) 705 0 R] /Limits [(code.6) (figure.caption.20)] >> endobj 2838 0 obj << /Names [(figure.caption.21) 713 0 R (figure.caption.22) 722 0 R (figure.caption.23) 730 0 R (figure.caption.24) 731 0 R (figure.caption.25) 757 0 R (figure.caption.26) 758 0 R] /Limits [(figure.caption.21) (figure.caption.26)] >> endobj 2839 0 obj << /Names [(figure.caption.27) 775 0 R (figure.caption.28) 776 0 R (figure.caption.29) 786 0 R (figure.caption.30) 787 0 R (figure.caption.31) 801 0 R (figure.caption.32) 812 0 R] /Limits [(figure.caption.27) (figure.caption.32)] >> endobj 2840 0 obj << /Names [(figure.caption.33) 823 0 R (figure.caption.34) 824 0 R (figure.caption.36) 842 0 R (figure.caption.38) 852 0 R (figure.caption.39) 853 0 R (figure.caption.40) 868 0 R] /Limits [(figure.caption.33) (figure.caption.40)] >> endobj 2841 0 obj << /Names [(figure.caption.41) 869 0 R (figure.caption.42) 878 0 R (figure.caption.43) 888 0 R (figure.caption.44) 889 0 R (figure.caption.45) 900 0 R (figure.caption.50) 911 0 R] /Limits [(figure.caption.41) (figure.caption.50)] >> endobj 2842 0 obj << /Names [(figure.caption.51) 936 0 R (figure.caption.55) 949 0 R (figure.caption.58) 952 0 R (figure.caption.63) 985 0 R (figure.caption.68) 990 0 R (figure.caption.83) 1166 0 R] /Limits [(figure.caption.51) (figure.caption.83)] >> endobj 2843 0 obj << /Names [(figure.caption.84) 1167 0 R (figure.caption.85) 1179 0 R (figure.caption.86) 1181 0 R (figure.caption.87) 1182 0 R (figure.caption.88) 1190 0 R (figure.caption.89) 1191 0 R] /Limits [(figure.caption.84) (figure.caption.89)] >> endobj 2844 0 obj << /Names [(figure.caption.90) 1203 0 R (figure.caption.91) 1204 0 R (figure.caption.92) 1215 0 R (figure.caption.93) 1238 0 R (figure.caption.94) 1282 0 R (figure.caption.95) 1295 0 R] /Limits [(figure.caption.90) (figure.caption.95)] >> endobj 2845 0 obj << /Names [(page.1) 465 0 R (page.10) 660 0 R (page.100) 1413 0 R (page.101) 1417 0 R (page.102) 1421 0 R (page.103) 1425 0 R] /Limits [(page.1) (page.103)] >> endobj 2846 0 obj << /Names [(page.104) 1430 0 R (page.105) 1434 0 R (page.106) 1438 0 R (page.107) 1463 0 R (page.108) 1468 0 R (page.109) 1504 0 R] /Limits [(page.104) (page.109)] >> endobj 2847 0 obj << /Names [(page.11) 665 0 R (page.110) 1534 0 R (page.12) 673 0 R (page.13) 680 0 R (page.14) 692 0 R (page.15) 704 0 R] /Limits [(page.11) (page.15)] >> endobj 2848 0 obj << /Names [(page.16) 712 0 R (page.17) 721 0 R (page.18) 729 0 R (page.19) 738 0 R (page.2) 473 0 R (page.20) 756 0 R] /Limits [(page.16) (page.20)] >> endobj 2849 0 obj << /Names [(page.21) 774 0 R (page.22) 785 0 R (page.23) 800 0 R (page.24) 811 0 R (page.25) 822 0 R (page.26) 840 0 R] /Limits [(page.21) (page.26)] >> endobj 2850 0 obj << /Names [(page.27) 850 0 R (page.28) 867 0 R (page.29) 877 0 R (page.3) 510 0 R (page.30) 887 0 R (page.31) 899 0 R] /Limits [(page.27) (page.31)] >> endobj 2851 0 obj << /Names [(page.32) 909 0 R (page.33) 921 0 R (page.34) 935 0 R (page.35) 948 0 R (page.36) 963 0 R (page.37) 984 0 R] /Limits [(page.32) (page.37)] >> endobj 2852 0 obj << /Names [(page.38) 996 0 R (page.39) 1002 0 R (page.4) 556 0 R (page.40) 1008 0 R (page.41) 1013 0 R (page.42) 1020 0 R] /Limits [(page.38) (page.42)] >> endobj 2853 0 obj << /Names [(page.43) 1025 0 R (page.44) 1030 0 R (page.45) 1034 0 R (page.46) 1038 0 R (page.47) 1042 0 R (page.48) 1046 0 R] /Limits [(page.43) (page.48)] >> endobj 2854 0 obj << /Names [(page.49) 1051 0 R (page.5) 595 0 R (page.50) 1061 0 R (page.51) 1066 0 R (page.52) 1072 0 R (page.53) 1077 0 R] /Limits [(page.49) (page.53)] >> endobj 2855 0 obj << /Names [(page.54) 1082 0 R (page.55) 1088 0 R (page.56) 1095 0 R (page.57) 1100 0 R (page.58) 1106 0 R (page.59) 1115 0 R] /Limits [(page.54) (page.59)] >> endobj 2856 0 obj << /Names [(page.6) 611 0 R (page.60) 1119 0 R (page.61) 1124 0 R (page.62) 1132 0 R (page.63) 1139 0 R (page.64) 1143 0 R] /Limits [(page.6) (page.64)] >> endobj 2857 0 obj << /Names [(page.65) 1147 0 R (page.66) 1151 0 R (page.67) 1164 0 R (page.68) 1178 0 R (page.69) 1189 0 R (page.7) 616 0 R] /Limits [(page.65) (page.7)] >> endobj 2858 0 obj << /Names [(page.70) 1202 0 R (page.71) 1214 0 R (page.72) 1219 0 R (page.73) 1229 0 R (page.74) 1235 0 R (page.75) 1243 0 R] /Limits [(page.70) (page.75)] >> endobj 2859 0 obj << /Names [(page.76) 1248 0 R (page.77) 1253 0 R (page.78) 1258 0 R (page.79) 1262 0 R (page.8) 646 0 R (page.80) 1267 0 R] /Limits [(page.76) (page.80)] >> endobj 2860 0 obj << /Names [(page.81) 1271 0 R (page.82) 1276 0 R (page.83) 1281 0 R (page.84) 1287 0 R (page.85) 1294 0 R (page.86) 1302 0 R] /Limits [(page.81) (page.86)] >> endobj 2861 0 obj << /Names [(page.87) 1318 0 R (page.88) 1323 0 R (page.89) 1327 0 R (page.9) 656 0 R (page.90) 1331 0 R (page.91) 1335 0 R] /Limits [(page.87) (page.91)] >> endobj 2862 0 obj << /Names [(page.92) 1340 0 R (page.93) 1344 0 R (page.94) 1349 0 R (page.95) 1353 0 R (page.96) 1357 0 R (page.97) 1361 0 R] /Limits [(page.92) (page.97)] >> endobj 2863 0 obj << /Names [(page.98) 1366 0 R (page.99) 1407 0 R (section*.10) 667 0 R (section*.11) 675 0 R (section*.12) 681 0 R (section*.13) 682 0 R] /Limits [(page.98) (section*.13)] >> endobj 2864 0 obj << /Names [(section*.14) 683 0 R (section*.15) 684 0 R (section*.16) 685 0 R (section*.17) 693 0 R (section*.18) 694 0 R (section*.3) 6 0 R] /Limits [(section*.14) (section*.3)] >> endobj 2865 0 obj << /Names [(section*.4) 619 0 R (section*.46) 901 0 R (section*.47) 902 0 R (section*.48) 903 0 R (section*.49) 910 0 R (section*.5) 624 0 R] /Limits [(section*.4) (section*.5)] >> endobj 2866 0 obj << /Names [(section*.52) 937 0 R (section*.54) 939 0 R (section*.56) 950 0 R (section*.57) 951 0 R (section*.59) 964 0 R (section*.6) 10 0 R] /Limits [(section*.52) (section*.6)] >> endobj 2867 0 obj << /Names [(section*.60) 968 0 R (section*.61) 972 0 R (section*.62) 973 0 R (section*.64) 986 0 R (section*.65) 987 0 R (section*.66) 988 0 R] /Limits [(section*.60) (section*.66)] >> endobj 2868 0 obj << /Names [(section*.67) 989 0 R (section*.8) 14 0 R (section*.9) 666 0 R (section.1.1) 22 0 R (section.1.2) 26 0 R (section.1.3) 30 0 R] /Limits [(section*.67) (section.1.3)] >> endobj 2869 0 obj << /Names [(section.2.1) 38 0 R (section.2.2) 42 0 R (section.3.1) 50 0 R (section.3.2) 70 0 R (section.3.3) 106 0 R (section.3.4) 126 0 R] /Limits [(section.2.1) (section.3.4)] >> endobj 2870 0 obj << /Names [(section.3.5) 158 0 R (section.3.6) 242 0 R (section.4.1) 250 0 R (section.4.10) 286 0 R (section.4.11) 290 0 R (section.4.12) 294 0 R] /Limits [(section.3.5) (section.4.12)] >> endobj 2871 0 obj << /Names [(section.4.13) 298 0 R (section.4.14) 302 0 R (section.4.15) 306 0 R (section.4.2) 254 0 R (section.4.3) 258 0 R (section.4.4) 262 0 R] /Limits [(section.4.13) (section.4.4)] >> endobj 2872 0 obj << /Names [(section.4.5) 266 0 R (section.4.6) 270 0 R (section.4.7) 274 0 R (section.4.8) 278 0 R (section.4.9) 282 0 R (section.6.1) 318 0 R] /Limits [(section.4.5) (section.6.1)] >> endobj 2873 0 obj << /Names [(section.6.2) 322 0 R (section.6.3) 326 0 R (section.6.4) 330 0 R (section.6.5) 334 0 R (section.7.1) 378 0 R (section.7.2) 382 0 R] /Limits [(section.6.2) (section.7.2)] >> endobj 2874 0 obj << /Names [(section.7.3) 386 0 R (section.7.4) 390 0 R (section.7.5) 394 0 R (section.B.1) 414 0 R (section.B.2) 418 0 R (section.C.1) 426 0 R] /Limits [(section.7.3) (section.C.1)] >> endobj 2875 0 obj << /Names [(section.C.2) 430 0 R (section.C.3) 434 0 R (subsection.3.1.1) 54 0 R (subsection.3.1.2) 58 0 R (subsection.3.1.3) 62 0 R (subsection.3.1.4) 66 0 R] /Limits [(section.C.2) (subsection.3.1.4)] >> endobj 2876 0 obj << /Names [(subsection.3.2.1) 74 0 R (subsection.3.2.2) 78 0 R (subsection.3.2.3) 82 0 R (subsection.3.2.4) 86 0 R (subsection.3.2.5) 90 0 R (subsection.3.2.6) 94 0 R] /Limits [(subsection.3.2.1) (subsection.3.2.6)] >> endobj 2877 0 obj << /Names [(subsection.3.2.7) 98 0 R (subsection.3.2.8) 102 0 R (subsection.3.3.1) 110 0 R (subsection.3.3.2) 114 0 R (subsection.3.3.3) 118 0 R (subsection.3.3.4) 122 0 R] /Limits [(subsection.3.2.7) (subsection.3.3.4)] >> endobj 2878 0 obj << /Names [(subsection.3.4.1) 130 0 R (subsection.3.4.2) 134 0 R (subsection.3.4.3) 138 0 R (subsection.3.4.4) 142 0 R (subsection.3.4.5) 146 0 R (subsection.3.4.6) 150 0 R] /Limits [(subsection.3.4.1) (subsection.3.4.6)] >> endobj 2879 0 obj << /Names [(subsection.3.4.7) 154 0 R (subsection.3.5.1) 162 0 R (subsection.3.5.10) 198 0 R (subsection.3.5.11) 202 0 R (subsection.3.5.12) 206 0 R (subsection.3.5.13) 210 0 R] /Limits [(subsection.3.4.7) (subsection.3.5.13)] >> endobj 2880 0 obj << /Names [(subsection.3.5.14) 214 0 R (subsection.3.5.15) 218 0 R (subsection.3.5.16) 222 0 R (subsection.3.5.17) 226 0 R (subsection.3.5.18) 230 0 R (subsection.3.5.19) 234 0 R] /Limits [(subsection.3.5.14) (subsection.3.5.19)] >> endobj 2881 0 obj << /Names [(subsection.3.5.2) 166 0 R (subsection.3.5.20) 238 0 R (subsection.3.5.3) 170 0 R (subsection.3.5.4) 174 0 R (subsection.3.5.5) 178 0 R (subsection.3.5.6) 182 0 R] /Limits [(subsection.3.5.2) (subsection.3.5.6)] >> endobj 2882 0 obj << /Names [(subsection.3.5.7) 186 0 R (subsection.3.5.8) 190 0 R (subsection.3.5.9) 194 0 R (subsection.6.5.1) 338 0 R (subsection.6.5.2) 342 0 R (subsection.6.5.3) 346 0 R] /Limits [(subsection.3.5.7) (subsection.6.5.3)] >> endobj 2883 0 obj << /Names [(subsection.6.5.4) 350 0 R (subsection.6.5.5) 354 0 R (subsection.6.5.6) 358 0 R (subsection.6.5.7) 362 0 R (subsection.6.5.8) 366 0 R (subsection.6.5.9) 370 0 R] /Limits [(subsection.6.5.4) (subsection.6.5.9)] >> endobj 2884 0 obj << /Names [(subsection.F.0.1) 450 0 R (subsection.F.0.2) 454 0 R (table.3.1) 739 0 R (table.8.1) 1254 0 R (table.D.1) 1319 0 R (table.E.1) 1345 0 R] /Limits [(subsection.F.0.1) (table.E.1)] >> endobj 2885 0 obj << /Names [(table.F.1) 1408 0 R (table.F.2) 1409 0 R (table.caption.35) 841 0 R (table.caption.37) 851 0 R (table.caption.53) 938 0 R (table.caption.69) 1014 0 R] /Limits [(table.F.1) (table.caption.69)] >> endobj 2886 0 obj << /Names [(table.caption.7) 647 0 R (table.caption.70) 1016 0 R (table.caption.71) 1052 0 R (table.caption.72) 1053 0 R (table.caption.73) 1055 0 R (table.caption.74) 1062 0 R] /Limits [(table.caption.7) (table.caption.74)] >> endobj 2887 0 obj << /Names [(table.caption.75) 1067 0 R (table.caption.76) 1083 0 R (table.caption.77) 1107 0 R (table.caption.78) 1108 0 R (table.caption.79) 1109 0 R (table.caption.80) 1110 0 R] /Limits [(table.caption.75) (table.caption.80)] >> endobj 2888 0 obj << /Names [(table.caption.81) 1111 0 R (table.caption.82) 1126 0 R] /Limits [(table.caption.81) (table.caption.82)] >> endobj 2889 0 obj << /Kids [2823 0 R 2824 0 R 2825 0 R 2826 0 R 2827 0 R 2828 0 R] /Limits [(Doc-Start) (Item.20)] >> endobj 2890 0 obj << /Kids [2829 0 R 2830 0 R 2831 0 R 2832 0 R 2833 0 R 2834 0 R] /Limits [(Item.21) (code.1)] >> endobj 2891 0 obj << /Kids [2835 0 R 2836 0 R 2837 0 R 2838 0 R 2839 0 R 2840 0 R] /Limits [(code.10) (figure.caption.40)] >> endobj 2892 0 obj << /Kids [2841 0 R 2842 0 R 2843 0 R 2844 0 R 2845 0 R 2846 0 R] /Limits [(figure.caption.41) (page.109)] >> endobj 2893 0 obj << /Kids [2847 0 R 2848 0 R 2849 0 R 2850 0 R 2851 0 R 2852 0 R] /Limits [(page.11) (page.42)] >> endobj 2894 0 obj << /Kids [2853 0 R 2854 0 R 2855 0 R 2856 0 R 2857 0 R 2858 0 R] /Limits [(page.43) (page.75)] >> endobj 2895 0 obj << /Kids [2859 0 R 2860 0 R 2861 0 R 2862 0 R 2863 0 R 2864 0 R] /Limits [(page.76) (section*.3)] >> endobj 2896 0 obj << /Kids [2865 0 R 2866 0 R 2867 0 R 2868 0 R 2869 0 R 2870 0 R] /Limits [(section*.4) (section.4.12)] >> endobj 2897 0 obj << /Kids [2871 0 R 2872 0 R 2873 0 R 2874 0 R 2875 0 R 2876 0 R] /Limits [(section.4.13) (subsection.3.2.6)] >> endobj 2898 0 obj << /Kids [2877 0 R 2878 0 R 2879 0 R 2880 0 R 2881 0 R 2882 0 R] /Limits [(subsection.3.2.7) (subsection.6.5.3)] >> endobj 2899 0 obj << /Kids [2883 0 R 2884 0 R 2885 0 R 2886 0 R 2887 0 R 2888 0 R] /Limits [(subsection.6.5.4) (table.caption.82)] >> endobj 2900 0 obj << /Kids [2889 0 R 2890 0 R 2891 0 R 2892 0 R 2893 0 R 2894 0 R] /Limits [(Doc-Start) (page.75)] >> endobj 2901 0 obj << /Kids [2895 0 R 2896 0 R 2897 0 R 2898 0 R 2899 0 R] /Limits [(page.76) (table.caption.82)] >> endobj 2902 0 obj << /Kids [2900 0 R 2901 0 R] /Limits [(Doc-Start) (table.caption.82)] >> endobj 2903 0 obj << /Dests 2902 0 R >> endobj 2904 0 obj << /Type /Catalog /Pages 2821 0 R /Outlines 2822 0 R /Names 2903 0 R /PageMode/None /OpenAction 461 0 R >> endobj 2905 0 obj << /Author()/Title()/Subject(MCU 8051 IDE handbook)/Creator(LaTeX with hyperref package)/Producer(pdfTeX-1.40.10)/Keywords(8051, IDE, Linux) /CreationDate (D:20121228020226+01'00') /ModDate (D:20121228020226+01'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.1415926-1.40.10-2.2 (TeX Live 2009/Debian) kpathsea version 5.0.0) >> endobj xref 0 2906 0000000793 65535 f 0000000015 00000 n 0000039466 00000 n 0002236464 00000 n 0000000061 00000 n 0000000086 00000 n 0000039525 00000 n 0002236394 00000 n 0000000132 00000 n 0000000170 00000 n 0000046527 00000 n 0002236310 00000 n 0000000216 00000 n 0000000247 00000 n 0000047859 00000 n 0002236237 00000 n 0000000294 00000 n 0000000330 00000 n 0000050871 00000 n 0002236112 00000 n 0000000376 00000 n 0000000413 00000 n 0000050930 00000 n 0002236038 00000 n 0000000461 00000 n 0000000511 00000 n 0000093984 00000 n 0002235951 00000 n 0000000559 00000 n 0000000592 00000 n 0000094107 00000 n 0002235877 00000 n 0000000640 00000 n 0000000688 00000 n 0000233859 00000 n 0002235751 00000 n 0000000734 00000 n 0000000764 00000 n 0000233918 00000 n 0002235677 00000 n 0000000812 00000 n 0000000852 00000 n 0000262917 00000 n 0002235603 00000 n 0000000900 00000 n 0000000953 00000 n 0000266321 00000 n 0002235475 00000 n 0000000999 00000 n 0000001046 00000 n 0000266380 00000 n 0002235364 00000 n 0000001094 00000 n 0000001131 00000 n 0000266439 00000 n 0002235290 00000 n 0000001184 00000 n 0000001234 00000 n 0000266561 00000 n 0002235203 00000 n 0000001287 00000 n 0000001320 00000 n 0000298784 00000 n 0002235116 00000 n 0000001373 00000 n 0000001407 00000 n 0000298906 00000 n 0002235042 00000 n 0000001460 00000 n 0000001498 00000 n 0000378285 00000 n 0002234916 00000 n 0000001546 00000 n 0000001577 00000 n 0000378345 00000 n 0002234842 00000 n 0000001630 00000 n 0000001680 00000 n 0000378530 00000 n 0002234755 00000 n 0000001733 00000 n 0000001763 00000 n 0000420550 00000 n 0002234668 00000 n 0000001816 00000 n 0000001863 00000 n 0000420671 00000 n 0002234581 00000 n 0000001916 00000 n 0000001949 00000 n 0000490140 00000 n 0002234494 00000 n 0000002002 00000 n 0000002026 00000 n 0000490262 00000 n 0002234407 00000 n 0000002079 00000 n 0000002108 00000 n 0000548116 00000 n 0002234318 00000 n 0000002161 00000 n 0000002194 00000 n 0000548175 00000 n 0002234241 00000 n 0000002248 00000 n 0000002285 00000 n 0000567012 00000 n 0002234111 00000 n 0000002334 00000 n 0000002364 00000 n 0000567073 00000 n 0002234032 00000 n 0000002418 00000 n 0000002458 00000 n 0000567135 00000 n 0002233939 00000 n 0000002512 00000 n 0000002553 00000 n 0000567197 00000 n 0002233846 00000 n 0000002607 00000 n 0000002638 00000 n 0000567321 00000 n 0002233767 00000 n 0000002692 00000 n 0000002731 00000 n 0000567383 00000 n 0002233636 00000 n 0000002780 00000 n 0000002811 00000 n 0000567445 00000 n 0002233557 00000 n 0000002865 00000 n 0000002902 00000 n 0000618812 00000 n 0002233464 00000 n 0000002956 00000 n 0000002995 00000 n 0000618872 00000 n 0002233371 00000 n 0000003049 00000 n 0000003088 00000 n 0000618994 00000 n 0002233278 00000 n 0000003142 00000 n 0000003183 00000 n 0000648653 00000 n 0002233185 00000 n 0000003237 00000 n 0000003281 00000 n 0000648777 00000 n 0002233092 00000 n 0000003335 00000 n 0000003370 00000 n 0000648838 00000 n 0002233013 00000 n 0000003424 00000 n 0000003463 00000 n 0000691970 00000 n 0002232881 00000 n 0000003512 00000 n 0000003543 00000 n 0000692031 00000 n 0002232802 00000 n 0000003597 00000 n 0000003624 00000 n 0000692092 00000 n 0002232709 00000 n 0000003678 00000 n 0000003725 00000 n 0000692214 00000 n 0002232616 00000 n 0000003779 00000 n 0000003812 00000 n 0000829028 00000 n 0002232523 00000 n 0000003866 00000 n 0000003899 00000 n 0000851430 00000 n 0002232430 00000 n 0000003953 00000 n 0000003984 00000 n 0000851490 00000 n 0002232337 00000 n 0000004038 00000 n 0000004080 00000 n 0000851551 00000 n 0002232244 00000 n 0000004134 00000 n 0000004170 00000 n 0000851674 00000 n 0002232151 00000 n 0000004224 00000 n 0000004253 00000 n 0000851735 00000 n 0002232058 00000 n 0000004307 00000 n 0000004343 00000 n 0000907300 00000 n 0002231965 00000 n 0000004398 00000 n 0000004432 00000 n 0000907422 00000 n 0002231872 00000 n 0000004487 00000 n 0000004522 00000 n 0000970946 00000 n 0002231779 00000 n 0000004577 00000 n 0000004616 00000 n 0001032036 00000 n 0002231686 00000 n 0000004671 00000 n 0000004723 00000 n 0001032098 00000 n 0002231593 00000 n 0000004778 00000 n 0000004815 00000 n 0001037714 00000 n 0002231500 00000 n 0000004870 00000 n 0000004938 00000 n 0001037774 00000 n 0002231407 00000 n 0000004993 00000 n 0000005053 00000 n 0001037835 00000 n 0002231314 00000 n 0000005108 00000 n 0000005146 00000 n 0001064311 00000 n 0002231221 00000 n 0000005201 00000 n 0000005242 00000 n 0001127762 00000 n 0002231128 00000 n 0000005297 00000 n 0000005340 00000 n 0001127823 00000 n 0002231049 00000 n 0000005395 00000 n 0000005429 00000 n 0001127884 00000 n 0002230971 00000 n 0000005478 00000 n 0000005521 00000 n 0001188301 00000 n 0002230838 00000 n 0000005568 00000 n 0000005612 00000 n 0001188362 00000 n 0002230759 00000 n 0000005661 00000 n 0000005691 00000 n 0001188424 00000 n 0002230666 00000 n 0000005740 00000 n 0000005767 00000 n 0001191243 00000 n 0002230573 00000 n 0000005816 00000 n 0000005845 00000 n 0001194518 00000 n 0002230480 00000 n 0000005894 00000 n 0000005925 00000 n 0001196171 00000 n 0002230387 00000 n 0000005974 00000 n 0000006024 00000 n 0001197596 00000 n 0002230294 00000 n 0000006073 00000 n 0000006113 00000 n 0001203906 00000 n 0002230201 00000 n 0000006162 00000 n 0000006200 00000 n 0001208715 00000 n 0002230108 00000 n 0000006249 00000 n 0000006287 00000 n 0001213915 00000 n 0002230015 00000 n 0000006336 00000 n 0000006368 00000 n 0001218195 00000 n 0002229922 00000 n 0000006418 00000 n 0000006458 00000 n 0001220169 00000 n 0002229829 00000 n 0000006508 00000 n 0000006544 00000 n 0001227046 00000 n 0002229736 00000 n 0000006594 00000 n 0000006631 00000 n 0001228079 00000 n 0002229643 00000 n 0000006681 00000 n 0000006727 00000 n 0001230833 00000 n 0002229550 00000 n 0000006777 00000 n 0000006813 00000 n 0001237134 00000 n 0002229471 00000 n 0000006863 00000 n 0000006921 00000 n 0001239668 00000 n 0002229377 00000 n 0000006968 00000 n 0000007000 00000 n 0001244162 00000 n 0002229244 00000 n 0000007047 00000 n 0000007080 00000 n 0001244223 00000 n 0002229165 00000 n 0000007129 00000 n 0000007167 00000 n 0001244285 00000 n 0002229072 00000 n 0000007216 00000 n 0000007255 00000 n 0001245528 00000 n 0002228979 00000 n 0000007304 00000 n 0000007341 00000 n 0001245590 00000 n 0002228886 00000 n 0000007390 00000 n 0000007421 00000 n 0001312089 00000 n 0002228768 00000 n 0000007470 00000 n 0000007506 00000 n 0001312150 00000 n 0002228689 00000 n 0000007560 00000 n 0000007605 00000 n 0001312276 00000 n 0002228596 00000 n 0000007659 00000 n 0000007693 00000 n 0001355386 00000 n 0002228503 00000 n 0000007747 00000 n 0000007776 00000 n 0001355512 00000 n 0002228410 00000 n 0000007830 00000 n 0000007868 00000 n 0001355639 00000 n 0002228317 00000 n 0000007922 00000 n 0000007965 00000 n 0001388201 00000 n 0002228224 00000 n 0000008019 00000 n 0000008049 00000 n 0001388325 00000 n 0002228131 00000 n 0000008103 00000 n 0000008136 00000 n 0001490118 00000 n 0002228038 00000 n 0000008190 00000 n 0000008223 00000 n 0001490244 00000 n 0002227959 00000 n 0000008277 00000 n 0000008330 00000 n 0001532136 00000 n 0002227826 00000 n 0000008377 00000 n 0000008435 00000 n 0001532197 00000 n 0002227747 00000 n 0000008484 00000 n 0000008512 00000 n 0001534803 00000 n 0002227654 00000 n 0000008561 00000 n 0000008610 00000 n 0001538031 00000 n 0002227561 00000 n 0000008659 00000 n 0000008701 00000 n 0001559561 00000 n 0002227468 00000 n 0000008750 00000 n 0000008785 00000 n 0001561679 00000 n 0002227389 00000 n 0000008834 00000 n 0000008868 00000 n 0001566034 00000 n 0002227295 00000 n 0000008915 00000 n 0000008957 00000 n 0001569425 00000 n 0002227201 00000 n 0000009004 00000 n 0000009068 00000 n 0001576230 00000 n 0002227107 00000 n 0000009116 00000 n 0000009143 00000 n 0001600403 00000 n 0002226974 00000 n 0000009191 00000 n 0000009229 00000 n 0001600465 00000 n 0002226895 00000 n 0000009278 00000 n 0000009306 00000 n 0001600590 00000 n 0002226816 00000 n 0000009355 00000 n 0000009404 00000 n 0001723124 00000 n 0002226683 00000 n 0000009452 00000 n 0000009504 00000 n 0001723186 00000 n 0002226604 00000 n 0000009553 00000 n 0000009598 00000 n 0001726396 00000 n 0002226511 00000 n 0000009647 00000 n 0000009678 00000 n 0001726459 00000 n 0002226432 00000 n 0000009727 00000 n 0000009761 00000 n 0001730297 00000 n 0002226338 00000 n 0000009809 00000 n 0000009865 00000 n 0001752800 00000 n 0002226244 00000 n 0000009913 00000 n 0000009972 00000 n 0001778403 00000 n 0002226111 00000 n 0000010020 00000 n 0000010075 00000 n 0001778465 00000 n 0002226007 00000 n 0000010129 00000 n 0000010158 00000 n 0001778590 00000 n 0002225942 00000 n 0000010212 00000 n 0000010241 00000 n 0001783759 00000 n 0002225862 00000 n 0000010289 00000 n 0000010319 00000 n 0000010663 00000 n 0000010904 00000 n 0000010371 00000 n 0000010782 00000 n 0000010843 00000 n 0002186722 00000 n 0002177861 00000 n 0002222948 00000 n 0000012273 00000 n 0000012092 00000 n 0000010989 00000 n 0000012211 00000 n 0002167386 00000 n 0002143506 00000 n 0002222510 00000 n 0002117917 00000 n 0000013899 00000 n 0000014051 00000 n 0000014203 00000 n 0000014355 00000 n 0000014507 00000 n 0000014658 00000 n 0000014811 00000 n 0000014962 00000 n 0000015113 00000 n 0000015264 00000 n 0000015417 00000 n 0000015569 00000 n 0000015720 00000 n 0000015873 00000 n 0000016032 00000 n 0000016191 00000 n 0000016350 00000 n 0000016509 00000 n 0000016662 00000 n 0000016820 00000 n 0000016979 00000 n 0000017138 00000 n 0000017297 00000 n 0000017455 00000 n 0000017614 00000 n 0000017773 00000 n 0000017932 00000 n 0000018085 00000 n 0000020400 00000 n 0000018366 00000 n 0000013544 00000 n 0000012384 00000 n 0000018244 00000 n 0002106958 00000 n 0000018305 00000 n 0000020559 00000 n 0000020718 00000 n 0000020877 00000 n 0000021031 00000 n 0000021190 00000 n 0000021349 00000 n 0000021507 00000 n 0000021666 00000 n 0000021825 00000 n 0000021984 00000 n 0000022143 00000 n 0000022296 00000 n 0000022455 00000 n 0000022613 00000 n 0000022772 00000 n 0000022930 00000 n 0000023089 00000 n 0000023246 00000 n 0000023403 00000 n 0000023562 00000 n 0000023721 00000 n 0000023881 00000 n 0000024041 00000 n 0000024201 00000 n 0000024361 00000 n 0000024520 00000 n 0000024680 00000 n 0000024840 00000 n 0000025000 00000 n 0000025159 00000 n 0000025317 00000 n 0000025477 00000 n 0000025631 00000 n 0000025783 00000 n 0000025936 00000 n 0000026090 00000 n 0000026244 00000 n 0000026398 00000 n 0000026550 00000 n 0000028735 00000 n 0000026766 00000 n 0000019949 00000 n 0000018464 00000 n 0000026704 00000 n 0000028888 00000 n 0000029040 00000 n 0000029193 00000 n 0000029347 00000 n 0000029501 00000 n 0000029655 00000 n 0000029807 00000 n 0000029961 00000 n 0000030115 00000 n 0000030266 00000 n 0000030417 00000 n 0000030570 00000 n 0000030723 00000 n 0000030876 00000 n 0000031029 00000 n 0000031182 00000 n 0000031341 00000 n 0000031499 00000 n 0000031658 00000 n 0000031817 00000 n 0000031975 00000 n 0000032133 00000 n 0000032289 00000 n 0000032448 00000 n 0000032607 00000 n 0000032758 00000 n 0000032910 00000 n 0000033063 00000 n 0000033216 00000 n 0000033369 00000 n 0000033522 00000 n 0000033673 00000 n 0000033824 00000 n 0000035218 00000 n 0000035371 00000 n 0000034036 00000 n 0000028332 00000 n 0000026851 00000 n 0000033975 00000 n 0002081341 00000 n 0000035525 00000 n 0000035679 00000 n 0000035831 00000 n 0000035984 00000 n 0000036138 00000 n 0000036292 00000 n 0000036445 00000 n 0000036598 00000 n 0000036751 00000 n 0000036910 00000 n 0000037069 00000 n 0000037284 00000 n 0000034983 00000 n 0000034147 00000 n 0000037222 00000 n 0000039218 00000 n 0000039888 00000 n 0000039079 00000 n 0000037395 00000 n 0000039405 00000 n 0002056889 00000 n 0002033150 00000 n 0000039584 00000 n 0000039645 00000 n 0002222800 00000 n 0000039706 00000 n 0000039766 00000 n 0000039827 00000 n 0002223066 00000 n 0000043362 00000 n 0000043560 00000 n 0000043759 00000 n 0000043945 00000 n 0000044132 00000 n 0000044299 00000 n 0000044482 00000 n 0000044668 00000 n 0000044843 00000 n 0000045030 00000 n 0000045204 00000 n 0000045387 00000 n 0000045563 00000 n 0000045727 00000 n 0000045909 00000 n 0000046088 00000 n 0000046284 00000 n 0000046650 00000 n 0000043095 00000 n 0000040051 00000 n 0000046465 00000 n 0000046588 00000 n 0002011284 00000 n 0001996235 00000 n 0001971760 00000 n 0001960991 00000 n 0001951340 00000 n 0000047919 00000 n 0000047679 00000 n 0000046839 00000 n 0000047798 00000 n 0000048411 00000 n 0000048230 00000 n 0000048017 00000 n 0000048349 00000 n 0000050661 00000 n 0000051171 00000 n 0000050522 00000 n 0000048483 00000 n 0000050810 00000 n 0000050990 00000 n 0000051051 00000 n 0001931077 00000 n 0000051110 00000 n 0000054358 00000 n 0000054115 00000 n 0000051334 00000 n 0000054234 00000 n 0001925978 00000 n 0000054296 00000 n 0000057302 00000 n 0000057848 00000 n 0000057163 00000 n 0000054495 00000 n 0000057483 00000 n 0000057544 00000 n 0000057604 00000 n 0000057665 00000 n 0000057726 00000 n 0000057787 00000 n 0002223184 00000 n 0000060618 00000 n 0000093728 00000 n 0000094230 00000 n 0000060484 00000 n 0000057972 00000 n 0000093799 00000 n 0000093861 00000 n 0000093922 00000 n 0000094045 00000 n 0000094168 00000 n 0000080610 00000 n 0000095654 00000 n 0000098405 00000 n 0000236709 00000 n 0000234039 00000 n 0000095520 00000 n 0000094442 00000 n 0000233798 00000 n 0000233978 00000 n 0000098064 00000 n 0000231653 00000 n 0000261014 00000 n 0000263039 00000 n 0000236575 00000 n 0000234251 00000 n 0000262855 00000 n 0000262977 00000 n 0000260459 00000 n 0000262303 00000 n 0000264711 00000 n 0000269443 00000 n 0000266621 00000 n 0000264592 00000 n 0000263238 00000 n 0000266260 00000 n 0000266499 00000 n 0000298148 00000 n 0000298302 00000 n 0000277856 00000 n 0000299029 00000 n 0000269288 00000 n 0000266820 00000 n 0000298660 00000 n 0000298722 00000 n 0000298845 00000 n 0000298967 00000 n 0001905728 00000 n 0000298481 00000 n 0000302147 00000 n 0000301907 00000 n 0000299241 00000 n 0000302026 00000 n 0000302087 00000 n 0002223302 00000 n 0000304723 00000 n 0000305651 00000 n 0000307171 00000 n 0000308211 00000 n 0000309041 00000 n 0000310017 00000 n 0000311368 00000 n 0000312327 00000 n 0000313504 00000 n 0000356227 00000 n 0000360252 00000 n 0000370233 00000 n 0000378591 00000 n 0000304589 00000 n 0000302310 00000 n 0000378223 00000 n 0000378406 00000 n 0000378468 00000 n 0000305365 00000 n 0000306942 00000 n 0000307858 00000 n 0000308737 00000 n 0000309578 00000 n 0000310863 00000 n 0000312052 00000 n 0000313212 00000 n 0000420336 00000 n 0000380682 00000 n 0000398771 00000 n 0000422787 00000 n 0000420851 00000 n 0000380543 00000 n 0000378918 00000 n 0000420489 00000 n 0000420610 00000 n 0000420729 00000 n 0000420790 00000 n 0000489924 00000 n 0000455325 00000 n 0000546868 00000 n 0000547021 00000 n 0000490447 00000 n 0000422648 00000 n 0000421052 00000 n 0000490078 00000 n 0000490200 00000 n 0000490323 00000 n 0000490385 00000 n 0000547175 00000 n 0000547328 00000 n 0000547481 00000 n 0000493145 00000 n 0000000794 00000 f 0000000000 00000 f 0000547677 00000 n 0000547873 00000 n 0000548541 00000 n 0000492958 00000 n 0000490648 00000 n 0000548055 00000 n 0000548236 00000 n 0000548297 00000 n 0000548358 00000 n 0000548419 00000 n 0000548480 00000 n 0000550707 00000 n 0000569707 00000 n 0000567507 00000 n 0000550573 00000 n 0000548741 00000 n 0000566950 00000 n 0000567259 00000 n 0000566604 00000 n 0000570672 00000 n 0000598229 00000 n 0000599696 00000 n 0000648221 00000 n 0000648374 00000 n 0000619116 00000 n 0000569573 00000 n 0000567681 00000 n 0000618751 00000 n 0000618933 00000 n 0000619055 00000 n 0002223420 00000 n 0000570456 00000 n 0000596529 00000 n 0000599382 00000 n 0000621712 00000 n 0000651462 00000 n 0000652008 00000 n 0000652588 00000 n 0000653186 00000 n 0000653715 00000 n 0000654253 00000 n 0000691696 00000 n 0000649023 00000 n 0000621550 00000 n 0000619319 00000 n 0000648529 00000 n 0000648591 00000 n 0000648715 00000 n 0000648900 00000 n 0000648961 00000 n 0000654808 00000 n 0000674511 00000 n 0000692335 00000 n 0000651308 00000 n 0000649249 00000 n 0000691848 00000 n 0000691909 00000 n 0000692153 00000 n 0000692275 00000 n 0000651726 00000 n 0000652303 00000 n 0000652915 00000 n 0000653450 00000 n 0000654016 00000 n 0000654537 00000 n 0000691099 00000 n 0000694232 00000 n 0000735034 00000 n 0000788195 00000 n 0000829213 00000 n 0000694098 00000 n 0000692620 00000 n 0000828966 00000 n 0000829089 00000 n 0000829151 00000 n 0000787397 00000 n 0000828180 00000 n 0000831559 00000 n 0000854587 00000 n 0000851796 00000 n 0000831440 00000 n 0000829402 00000 n 0000851369 00000 n 0000851612 00000 n 0000865130 00000 n 0000906773 00000 n 0000906928 00000 n 0000907083 00000 n 0000906164 00000 n 0000907731 00000 n 0000854417 00000 n 0000851957 00000 n 0000907238 00000 n 0000907361 00000 n 0000907484 00000 n 0000907546 00000 n 0000907608 00000 n 0000907670 00000 n 0000905567 00000 n 0000906410 00000 n 0000910164 00000 n 0000971251 00000 n 0000910045 00000 n 0000907972 00000 n 0000970885 00000 n 0000971007 00000 n 0000971068 00000 n 0000971129 00000 n 0000971190 00000 n 0002223538 00000 n 0000973279 00000 n 0001032222 00000 n 0000973160 00000 n 0000971412 00000 n 0001031913 00000 n 0001031975 00000 n 0001032160 00000 n 0001035062 00000 n 0001035570 00000 n 0001036078 00000 n 0001036613 00000 n 0001037164 00000 n 0001040828 00000 n 0001037896 00000 n 0001034928 00000 n 0001032422 00000 n 0001037653 00000 n 0001895957 00000 n 0001035293 00000 n 0001035804 00000 n 0001036314 00000 n 0001036845 00000 n 0001037389 00000 n 0001061925 00000 n 0001062691 00000 n 0001063453 00000 n 0001066901 00000 n 0001064559 00000 n 0001040694 00000 n 0001038165 00000 n 0001064187 00000 n 0001064249 00000 n 0001064373 00000 n 0001064435 00000 n 0001064497 00000 n 0001061353 00000 n 0001062447 00000 n 0001063208 00000 n 0001063937 00000 n 0001096247 00000 n 0001128066 00000 n 0001066767 00000 n 0001064814 00000 n 0001127579 00000 n 0001127640 00000 n 0001127702 00000 n 0001127945 00000 n 0001128006 00000 n 0001127011 00000 n 0001130310 00000 n 0001130927 00000 n 0001130464 00000 n 0001130618 00000 n 0001130773 00000 n 0001133785 00000 n 0001132214 00000 n 0001130131 00000 n 0001128280 00000 n 0001131285 00000 n 0001131347 00000 n 0001131408 00000 n 0001131470 00000 n 0001131532 00000 n 0001131594 00000 n 0001131656 00000 n 0001131718 00000 n 0001131780 00000 n 0001131842 00000 n 0001131904 00000 n 0001131966 00000 n 0001131106 00000 n 0001132028 00000 n 0001132090 00000 n 0001132152 00000 n 0001184589 00000 n 0001162112 00000 n 0001185213 00000 n 0001133631 00000 n 0001132377 00000 n 0001184785 00000 n 0001184846 00000 n 0001184907 00000 n 0001184968 00000 n 0001185029 00000 n 0001185090 00000 n 0001185151 00000 n 0002223656 00000 n 0001184104 00000 n 0001185835 00000 n 0001185654 00000 n 0001185401 00000 n 0001185773 00000 n 0001187931 00000 n 0001188083 00000 n 0001188610 00000 n 0001187782 00000 n 0001185907 00000 n 0001188238 00000 n 0001188486 00000 n 0001188548 00000 n 0001191306 00000 n 0001190993 00000 n 0001188786 00000 n 0001191115 00000 n 0001191179 00000 n 0001194643 00000 n 0001194207 00000 n 0001191431 00000 n 0001194329 00000 n 0001194392 00000 n 0001194455 00000 n 0001194580 00000 n 0001196234 00000 n 0001195921 00000 n 0001194820 00000 n 0001196043 00000 n 0001196107 00000 n 0001197657 00000 n 0001197410 00000 n 0001196346 00000 n 0001197533 00000 n 0002223778 00000 n 0001199192 00000 n 0001199005 00000 n 0001197782 00000 n 0001199128 00000 n 0001201052 00000 n 0001200866 00000 n 0001199304 00000 n 0001200989 00000 n 0001202456 00000 n 0001202269 00000 n 0001201164 00000 n 0001202392 00000 n 0001203967 00000 n 0001203720 00000 n 0001202568 00000 n 0001203843 00000 n 0001205600 00000 n 0001205413 00000 n 0001204092 00000 n 0001205536 00000 n 0001208498 00000 n 0001208964 00000 n 0001208354 00000 n 0001205712 00000 n 0001208652 00000 n 0001208776 00000 n 0001208839 00000 n 0001872411 00000 n 0001208901 00000 n 0002223903 00000 n 0001809105 00000 n 0001211841 00000 n 0001211590 00000 n 0001209142 00000 n 0001211713 00000 n 0001211777 00000 n 0001214102 00000 n 0001213729 00000 n 0001211966 00000 n 0001213852 00000 n 0001213976 00000 n 0001214039 00000 n 0001216309 00000 n 0001216058 00000 n 0001214266 00000 n 0001216181 00000 n 0001216245 00000 n 0001218319 00000 n 0001218009 00000 n 0001216408 00000 n 0001218132 00000 n 0001218256 00000 n 0001220359 00000 n 0001219982 00000 n 0001218444 00000 n 0001220105 00000 n 0001220231 00000 n 0001220295 00000 n 0001221838 00000 n 0001221526 00000 n 0001220510 00000 n 0001221649 00000 n 0001221712 00000 n 0001221775 00000 n 0002224028 00000 n 0001222987 00000 n 0001222736 00000 n 0001221937 00000 n 0001222859 00000 n 0001222923 00000 n 0001224535 00000 n 0001224223 00000 n 0001223086 00000 n 0001224346 00000 n 0001224409 00000 n 0001224472 00000 n 0001227428 00000 n 0001226859 00000 n 0001224634 00000 n 0001226982 00000 n 0001227108 00000 n 0001227172 00000 n 0001227236 00000 n 0001227300 00000 n 0001227364 00000 n 0001228140 00000 n 0001227893 00000 n 0001227553 00000 n 0001228016 00000 n 0001230958 00000 n 0001230646 00000 n 0001228239 00000 n 0001230769 00000 n 0001230895 00000 n 0001234364 00000 n 0001233989 00000 n 0001231096 00000 n 0001234112 00000 n 0001234175 00000 n 0001234238 00000 n 0001234301 00000 n 0002224153 00000 n 0001237260 00000 n 0001236947 00000 n 0001234515 00000 n 0001237070 00000 n 0002222217 00000 n 0001237196 00000 n 0001242168 00000 n 0001239729 00000 n 0001239482 00000 n 0001237412 00000 n 0001239605 00000 n 0001242413 00000 n 0001242024 00000 n 0001239893 00000 n 0001242349 00000 n 0001244347 00000 n 0001243976 00000 n 0001242551 00000 n 0001244099 00000 n 0001245909 00000 n 0001245341 00000 n 0001244459 00000 n 0001245464 00000 n 0001245653 00000 n 0001245717 00000 n 0001245781 00000 n 0001245845 00000 n 0001248912 00000 n 0001251073 00000 n 0001270910 00000 n 0001292518 00000 n 0001314634 00000 n 0001312401 00000 n 0001248774 00000 n 0001246021 00000 n 0001312026 00000 n 0001866218 00000 n 0001312212 00000 n 0001312338 00000 n 0002224278 00000 n 0001250317 00000 n 0001270489 00000 n 0001292102 00000 n 0001311495 00000 n 0001325370 00000 n 0001335594 00000 n 0001355766 00000 n 0001314511 00000 n 0001312688 00000 n 0001355322 00000 n 0001355448 00000 n 0002222364 00000 n 0001355575 00000 n 0001355702 00000 n 0001358007 00000 n 0001375093 00000 n 0001387982 00000 n 0001388514 00000 n 0001357863 00000 n 0001355973 00000 n 0001388138 00000 n 0001388262 00000 n 0001388387 00000 n 0001388451 00000 n 0001390701 00000 n 0001399550 00000 n 0001420319 00000 n 0001444916 00000 n 0001456780 00000 n 0001468565 00000 n 0001490370 00000 n 0001390563 00000 n 0001388732 00000 n 0001490054 00000 n 0001490180 00000 n 0001490307 00000 n 0001418618 00000 n 0001443215 00000 n 0001456468 00000 n 0001468250 00000 n 0001489025 00000 n 0001492256 00000 n 0001532323 00000 n 0001492133 00000 n 0001490608 00000 n 0001532073 00000 n 0001532259 00000 n 0001535120 00000 n 0001534616 00000 n 0001532499 00000 n 0001534739 00000 n 0001534865 00000 n 0001854322 00000 n 0001534928 00000 n 0001534992 00000 n 0001535056 00000 n 0001537817 00000 n 0001538093 00000 n 0001537673 00000 n 0001535286 00000 n 0001537968 00000 n 0002224403 00000 n 0001539906 00000 n 0001559688 00000 n 0001539783 00000 n 0001538233 00000 n 0001559497 00000 n 0001842939 00000 n 0002222655 00000 n 0001559624 00000 n 0001840489 00000 n 0001561740 00000 n 0001561493 00000 n 0001559906 00000 n 0001561616 00000 n 0001563711 00000 n 0001563993 00000 n 0001563567 00000 n 0001561880 00000 n 0001563865 00000 n 0001563929 00000 n 0001566158 00000 n 0001565848 00000 n 0001564145 00000 n 0001565971 00000 n 0001566096 00000 n 0001567249 00000 n 0001567062 00000 n 0001566310 00000 n 0001567185 00000 n 0001569487 00000 n 0001569239 00000 n 0001567361 00000 n 0001569362 00000 n 0002224528 00000 n 0001571374 00000 n 0001571187 00000 n 0001569639 00000 n 0001571310 00000 n 0001576292 00000 n 0001576044 00000 n 0001571473 00000 n 0001576167 00000 n 0001824078 00000 n 0001582698 00000 n 0001582511 00000 n 0001576405 00000 n 0001582634 00000 n 0001584755 00000 n 0001600652 00000 n 0001584617 00000 n 0001582785 00000 n 0001600340 00000 n 0001600527 00000 n 0001599816 00000 n 0001602534 00000 n 0001602347 00000 n 0001600856 00000 n 0001602470 00000 n 0001722715 00000 n 0001722888 00000 n 0001603717 00000 n 0001723311 00000 n 0001603549 00000 n 0001602620 00000 n 0001723061 00000 n 0001723248 00000 n 0002224653 00000 n 0001720975 00000 n 0001725962 00000 n 0001727226 00000 n 0001725809 00000 n 0001723501 00000 n 0001726332 00000 n 0001726148 00000 n 0001726522 00000 n 0001726586 00000 n 0001726650 00000 n 0001726714 00000 n 0001726778 00000 n 0001726842 00000 n 0001726906 00000 n 0001726970 00000 n 0001727034 00000 n 0001727098 00000 n 0001727162 00000 n 0001730422 00000 n 0001730111 00000 n 0001727366 00000 n 0001730234 00000 n 0001730359 00000 n 0001734978 00000 n 0001734791 00000 n 0001730534 00000 n 0001734914 00000 n 0001739398 00000 n 0001739212 00000 n 0001735077 00000 n 0001739335 00000 n 0001744131 00000 n 0001743944 00000 n 0001739497 00000 n 0001744067 00000 n 0001748594 00000 n 0001748408 00000 n 0001744230 00000 n 0001748531 00000 n 0002224778 00000 n 0001749662 00000 n 0001749475 00000 n 0001748693 00000 n 0001749598 00000 n 0001752925 00000 n 0001752614 00000 n 0001749787 00000 n 0001752737 00000 n 0001752862 00000 n 0001757536 00000 n 0001757349 00000 n 0001753037 00000 n 0001757472 00000 n 0001761877 00000 n 0001761691 00000 n 0001757635 00000 n 0001761814 00000 n 0001766431 00000 n 0001766244 00000 n 0001761976 00000 n 0001766367 00000 n 0001770901 00000 n 0001770715 00000 n 0001766530 00000 n 0001770838 00000 n 0002224903 00000 n 0001771955 00000 n 0001771768 00000 n 0001771000 00000 n 0001771891 00000 n 0001773294 00000 n 0001773502 00000 n 0001773710 00000 n 0001773918 00000 n 0001774127 00000 n 0001774337 00000 n 0001774546 00000 n 0001774756 00000 n 0001774966 00000 n 0001775176 00000 n 0001775386 00000 n 0001775596 00000 n 0001775806 00000 n 0001776015 00000 n 0001776225 00000 n 0001776434 00000 n 0001776644 00000 n 0001776854 00000 n 0001777064 00000 n 0001777283 00000 n 0001777501 00000 n 0001777711 00000 n 0001777920 00000 n 0001778130 00000 n 0001779694 00000 n 0001779913 00000 n 0001780123 00000 n 0001780333 00000 n 0001780543 00000 n 0001780753 00000 n 0001780963 00000 n 0001781172 00000 n 0001781382 00000 n 0001781591 00000 n 0001781801 00000 n 0001782009 00000 n 0001782219 00000 n 0001778715 00000 n 0001772943 00000 n 0001772080 00000 n 0001778340 00000 n 0001778527 00000 n 0001778652 00000 n 0001782492 00000 n 0001779442 00000 n 0001778881 00000 n 0001782428 00000 n 0001783821 00000 n 0001783573 00000 n 0001782605 00000 n 0001783696 00000 n 0001785693 00000 n 0001785506 00000 n 0001783920 00000 n 0001785629 00000 n 0001787512 00000 n 0001787326 00000 n 0001785807 00000 n 0001787449 00000 n 0002225028 00000 n 0001789373 00000 n 0001789186 00000 n 0001787598 00000 n 0001789309 00000 n 0001790474 00000 n 0001790288 00000 n 0001789459 00000 n 0001790411 00000 n 0001790984 00000 n 0001790797 00000 n 0001790560 00000 n 0001790920 00000 n 0001792439 00000 n 0001792595 00000 n 0001792747 00000 n 0001792906 00000 n 0001793065 00000 n 0001793223 00000 n 0001793382 00000 n 0001793541 00000 n 0001793699 00000 n 0001793858 00000 n 0001794017 00000 n 0001794176 00000 n 0001794335 00000 n 0001794494 00000 n 0001794653 00000 n 0001794810 00000 n 0001794969 00000 n 0001795128 00000 n 0001795287 00000 n 0001795445 00000 n 0001795597 00000 n 0001795875 00000 n 0001792115 00000 n 0001791057 00000 n 0001795749 00000 n 0001795812 00000 n 0001796394 00000 n 0001796207 00000 n 0001795974 00000 n 0001796330 00000 n 0001798353 00000 n 0001798513 00000 n 0001798671 00000 n 0001798831 00000 n 0001798991 00000 n 0001799149 00000 n 0001799467 00000 n 0001799626 00000 n 0001799785 00000 n 0001799945 00000 n 0001800105 00000 n 0001800265 00000 n 0001800425 00000 n 0001800585 00000 n 0001800745 00000 n 0001800905 00000 n 0001801102 00000 n 0001801627 00000 n 0001801787 00000 n 0001801947 00000 n 0001802105 00000 n 0001802265 00000 n 0001802425 00000 n 0001802585 00000 n 0001802744 00000 n 0001802903 00000 n 0001803062 00000 n 0001803221 00000 n 0001803381 00000 n 0001803541 00000 n 0001803701 00000 n 0001805444 00000 n 0001803987 00000 n 0001797912 00000 n 0001796467 00000 n 0001803861 00000 n 0001803924 00000 n 0001799309 00000 n 0001801285 00000 n 0001801445 00000 n 0002225153 00000 n 0001805604 00000 n 0001805764 00000 n 0001805924 00000 n 0001806084 00000 n 0001806244 00000 n 0001806404 00000 n 0001806563 00000 n 0001806723 00000 n 0001806883 00000 n 0001807043 00000 n 0001807202 00000 n 0001807360 00000 n 0001807520 00000 n 0001807680 00000 n 0001807840 00000 n 0001807998 00000 n 0001808158 00000 n 0001808318 00000 n 0001808477 00000 n 0001808637 00000 n 0001808797 00000 n 0001809019 00000 n 0001805111 00000 n 0001804086 00000 n 0001808955 00000 n 0001809138 00000 n 0001809354 00000 n 0001809570 00000 n 0001809789 00000 n 0001810006 00000 n 0001810189 00000 n 0001810359 00000 n 0001810582 00000 n 0001810759 00000 n 0001810949 00000 n 0001811137 00000 n 0001811307 00000 n 0001811489 00000 n 0001811699 00000 n 0001811915 00000 n 0001812129 00000 n 0001812336 00000 n 0001812540 00000 n 0001812742 00000 n 0001812964 00000 n 0001813150 00000 n 0001813332 00000 n 0001813528 00000 n 0001813756 00000 n 0001813947 00000 n 0001814148 00000 n 0001814363 00000 n 0001814561 00000 n 0001814774 00000 n 0001814998 00000 n 0001815212 00000 n 0001815441 00000 n 0001815630 00000 n 0001815825 00000 n 0001816036 00000 n 0001816246 00000 n 0001816475 00000 n 0001816679 00000 n 0001816901 00000 n 0001817119 00000 n 0001817320 00000 n 0001817538 00000 n 0001817756 00000 n 0001817956 00000 n 0001818199 00000 n 0001818398 00000 n 0001818587 00000 n 0001818791 00000 n 0001819010 00000 n 0001819196 00000 n 0001819386 00000 n 0001819580 00000 n 0001819786 00000 n 0001820011 00000 n 0001820230 00000 n 0001820432 00000 n 0001820640 00000 n 0001820841 00000 n 0001821034 00000 n 0001821233 00000 n 0001821437 00000 n 0001821653 00000 n 0001821882 00000 n 0001822093 00000 n 0001822282 00000 n 0001822512 00000 n 0001822739 00000 n 0001822968 00000 n 0001823187 00000 n 0001823421 00000 n 0001823635 00000 n 0001823844 00000 n 0001824332 00000 n 0001824817 00000 n 0001825255 00000 n 0001826309 00000 n 0001826503 00000 n 0001826697 00000 n 0001826913 00000 n 0001827142 00000 n 0001827372 00000 n 0001827551 00000 n 0001827750 00000 n 0001827921 00000 n 0001828098 00000 n 0001828288 00000 n 0001828470 00000 n 0001828662 00000 n 0001828932 00000 n 0001829219 00000 n 0001829480 00000 n 0001829709 00000 n 0001829948 00000 n 0001830209 00000 n 0001830442 00000 n 0001830667 00000 n 0001830886 00000 n 0001831081 00000 n 0001831262 00000 n 0001831450 00000 n 0001831675 00000 n 0001831913 00000 n 0001832129 00000 n 0001832356 00000 n 0001832608 00000 n 0001832864 00000 n 0001833066 00000 n 0001833285 00000 n 0001833513 00000 n 0001833761 00000 n 0001833999 00000 n 0001834223 00000 n 0001834469 00000 n 0001834704 00000 n 0001834926 00000 n 0001835206 00000 n 0001835424 00000 n 0001835625 00000 n 0001835848 00000 n 0001836105 00000 n 0001836302 00000 n 0001836516 00000 n 0001836727 00000 n 0001836948 00000 n 0001837199 00000 n 0001837419 00000 n 0001837657 00000 n 0001837879 00000 n 0001838088 00000 n 0001838308 00000 n 0001838533 00000 n 0001838771 00000 n 0001839032 00000 n 0001839277 00000 n 0001839489 00000 n 0001839745 00000 n 0001840001 00000 n 0001840245 00000 n 0001840743 00000 n 0001841200 00000 n 0001841749 00000 n 0001842678 00000 n 0001842705 00000 n 0001843191 00000 n 0001843218 00000 n 0001843280 00000 n 0001843318 00000 n 0001843606 00000 n 0001843895 00000 n 0001844075 00000 n 0001844340 00000 n 0001844688 00000 n 0001845049 00000 n 0001845352 00000 n 0001845632 00000 n 0001845883 00000 n 0001846067 00000 n 0001846418 00000 n 0001846768 00000 n 0001847119 00000 n 0001847370 00000 n 0001847699 00000 n 0001848054 00000 n 0001848287 00000 n 0001848605 00000 n 0001848913 00000 n 0001849200 00000 n 0001849489 00000 n 0001849782 00000 n 0001850072 00000 n 0001850314 00000 n 0001850657 00000 n 0001850898 00000 n 0001851109 00000 n 0001851297 00000 n 0001851570 00000 n 0001851805 00000 n 0001852082 00000 n 0001852367 00000 n 0001852603 00000 n 0001852908 00000 n 0001853144 00000 n 0001853385 00000 n 0001853685 00000 n 0001854034 00000 n 0001854572 00000 n 0001854925 00000 n 0001855331 00000 n 0001855919 00000 n 0001855945 00000 n 0001856184 00000 n 0001856446 00000 n 0001856624 00000 n 0001856868 00000 n 0001857054 00000 n 0001857254 00000 n 0001857508 00000 n 0001857862 00000 n 0001858085 00000 n 0001858281 00000 n 0001858564 00000 n 0001858845 00000 n 0001859111 00000 n 0001859413 00000 n 0001859701 00000 n 0001859988 00000 n 0001860290 00000 n 0001860588 00000 n 0001860834 00000 n 0001861191 00000 n 0001861438 00000 n 0001861657 00000 n 0001861907 00000 n 0001862206 00000 n 0001862411 00000 n 0001862654 00000 n 0001862895 00000 n 0001863175 00000 n 0001863478 00000 n 0001863732 00000 n 0001864032 00000 n 0001864274 00000 n 0001864515 00000 n 0001864792 00000 n 0001865080 00000 n 0001865380 00000 n 0001865605 00000 n 0001865904 00000 n 0001866468 00000 n 0001866819 00000 n 0001867238 00000 n 0001867827 00000 n 0001867852 00000 n 0001868018 00000 n 0001868240 00000 n 0001868415 00000 n 0001868634 00000 n 0001868874 00000 n 0001869099 00000 n 0001869304 00000 n 0001869570 00000 n 0001869759 00000 n 0001869964 00000 n 0001870160 00000 n 0001870380 00000 n 0001870578 00000 n 0001870817 00000 n 0001871030 00000 n 0001871236 00000 n 0001871456 00000 n 0001871652 00000 n 0001871904 00000 n 0001872152 00000 n 0001872665 00000 n 0001872914 00000 n 0001873186 00000 n 0001873516 00000 n 0001873796 00000 n 0001874077 00000 n 0001874341 00000 n 0001874602 00000 n 0001874790 00000 n 0001874982 00000 n 0001875197 00000 n 0001875387 00000 n 0001875601 00000 n 0001875778 00000 n 0001876021 00000 n 0001876205 00000 n 0001876453 00000 n 0001876629 00000 n 0001876876 00000 n 0001877135 00000 n 0001877398 00000 n 0001877637 00000 n 0001877927 00000 n 0001878203 00000 n 0001878533 00000 n 0001878825 00000 n 0001879176 00000 n 0001879469 00000 n 0001879744 00000 n 0001879991 00000 n 0001880341 00000 n 0001880553 00000 n 0001880741 00000 n 0001880993 00000 n 0001881341 00000 n 0001881567 00000 n 0001881901 00000 n 0001882233 00000 n 0001882576 00000 n 0001882833 00000 n 0001883245 00000 n 0001883557 00000 n 0001883905 00000 n 0001884145 00000 n 0001884434 00000 n 0001884778 00000 n 0001885181 00000 n 0001885557 00000 n 0001885890 00000 n 0001886185 00000 n 0001886477 00000 n 0001886752 00000 n 0001887044 00000 n 0001887330 00000 n 0001887555 00000 n 0001887898 00000 n 0001888145 00000 n 0001888351 00000 n 0001888583 00000 n 0001888878 00000 n 0001889069 00000 n 0001889337 00000 n 0001889573 00000 n 0001889843 00000 n 0001890133 00000 n 0001890438 00000 n 0001890665 00000 n 0001890950 00000 n 0001891183 00000 n 0001891425 00000 n 0001891700 00000 n 0001892030 00000 n 0001892336 00000 n 0001892657 00000 n 0001892938 00000 n 0001893211 00000 n 0001893419 00000 n 0001893743 00000 n 0001894071 00000 n 0001894338 00000 n 0001894649 00000 n 0001894980 00000 n 0001895264 00000 n 0001895623 00000 n 0001896207 00000 n 0001896749 00000 n 0001897280 00000 n 0001898461 00000 n 0001898642 00000 n 0001898881 00000 n 0001899070 00000 n 0001899255 00000 n 0001899555 00000 n 0001899820 00000 n 0001900049 00000 n 0001900322 00000 n 0001900586 00000 n 0001900861 00000 n 0001901144 00000 n 0001901380 00000 n 0001901715 00000 n 0001901958 00000 n 0001902172 00000 n 0001902369 00000 n 0001902622 00000 n 0001902859 00000 n 0001903124 00000 n 0001903406 00000 n 0001903646 00000 n 0001903913 00000 n 0001904150 00000 n 0001904380 00000 n 0001904636 00000 n 0001904921 00000 n 0001905144 00000 n 0001905433 00000 n 0001905982 00000 n 0001906269 00000 n 0001906591 00000 n 0001907037 00000 n 0001907329 00000 n 0001907615 00000 n 0001907843 00000 n 0001908046 00000 n 0001908271 00000 n 0001908452 00000 n 0001908708 00000 n 0001908898 00000 n 0001909137 00000 n 0001909332 00000 n 0001909600 00000 n 0001909785 00000 n 0001910056 00000 n 0001910241 00000 n 0001910602 00000 n 0001910958 00000 n 0001911245 00000 n 0001911535 00000 n 0001911861 00000 n 0001912143 00000 n 0001912383 00000 n 0001912618 00000 n 0001912824 00000 n 0001913021 00000 n 0001913353 00000 n 0001913563 00000 n 0001913858 00000 n 0001914139 00000 n 0001914398 00000 n 0001914677 00000 n 0001914974 00000 n 0001915315 00000 n 0001915534 00000 n 0001915806 00000 n 0001916109 00000 n 0001916434 00000 n 0001916741 00000 n 0001917046 00000 n 0001917336 00000 n 0001917650 00000 n 0001917957 00000 n 0001918205 00000 n 0001918570 00000 n 0001918830 00000 n 0001919053 00000 n 0001919312 00000 n 0001919521 00000 n 0001919778 00000 n 0001920030 00000 n 0001920314 00000 n 0001920631 00000 n 0001920943 00000 n 0001921197 00000 n 0001921506 00000 n 0001921765 00000 n 0001922012 00000 n 0001922295 00000 n 0001922571 00000 n 0001922877 00000 n 0001923182 00000 n 0001923418 00000 n 0001923734 00000 n 0001924077 00000 n 0001924362 00000 n 0001924672 00000 n 0001925016 00000 n 0001925297 00000 n 0001925635 00000 n 0001926231 00000 n 0001926738 00000 n 0001927262 00000 n 0001928272 00000 n 0001928535 00000 n 0001928771 00000 n 0001928969 00000 n 0001929235 00000 n 0001929504 00000 n 0001929748 00000 n 0001930010 00000 n 0001930283 00000 n 0001930530 00000 n 0001930804 00000 n 0001931328 00000 n 0001931463 00000 n 0001931579 00000 n 0001931757 00000 n 0001932028 00000 n 0001932298 00000 n 0001932489 00000 n 0001932735 00000 n 0001932922 00000 n 0001933135 00000 n 0001933311 00000 n 0001933546 00000 n 0001933729 00000 n 0001933973 00000 n 0001934149 00000 n 0001934396 00000 n 0001934650 00000 n 0001934907 00000 n 0001935197 00000 n 0001935514 00000 n 0001935805 00000 n 0001936147 00000 n 0001936423 00000 n 0001936686 00000 n 0001936934 00000 n 0001937270 00000 n 0001937477 00000 n 0001937665 00000 n 0001937990 00000 n 0001938212 00000 n 0001938538 00000 n 0001938863 00000 n 0001939184 00000 n 0001939433 00000 n 0001939736 00000 n 0001940074 00000 n 0001940306 00000 n 0001940579 00000 n 0001940901 00000 n 0001941290 00000 n 0001941603 00000 n 0001941889 00000 n 0001942169 00000 n 0001942433 00000 n 0001942713 00000 n 0001942984 00000 n 0001943207 00000 n 0001943526 00000 n 0001943763 00000 n 0001943967 00000 n 0001944199 00000 n 0001944477 00000 n 0001944667 00000 n 0001944926 00000 n 0001945155 00000 n 0001945425 00000 n 0001945703 00000 n 0001945987 00000 n 0001946209 00000 n 0001946486 00000 n 0001946719 00000 n 0001946954 00000 n 0001947219 00000 n 0001947534 00000 n 0001947826 00000 n 0001948127 00000 n 0001948392 00000 n 0001948662 00000 n 0001948865 00000 n 0001949175 00000 n 0001949492 00000 n 0001949762 00000 n 0001950070 00000 n 0001950395 00000 n 0001950674 00000 n 0001951021 00000 n 0001951594 00000 n 0001952117 00000 n 0001952616 00000 n 0001953685 00000 n 0001953869 00000 n 0001954062 00000 n 0001954352 00000 n 0001954697 00000 n 0001954975 00000 n 0001955241 00000 n 0001955482 00000 n 0001955797 00000 n 0001956031 00000 n 0001956312 00000 n 0001956585 00000 n 0001956858 00000 n 0001957204 00000 n 0001957408 00000 n 0001957595 00000 n 0001957821 00000 n 0001958052 00000 n 0001958322 00000 n 0001958526 00000 n 0001958839 00000 n 0001959158 00000 n 0001959428 00000 n 0001959739 00000 n 0001960056 00000 n 0001960338 00000 n 0001960672 00000 n 0001961244 00000 n 0001961517 00000 n 0001961854 00000 n 0001962262 00000 n 0001962536 00000 n 0001962796 00000 n 0001962993 00000 n 0001963174 00000 n 0001963489 00000 n 0001963782 00000 n 0001964079 00000 n 0001964397 00000 n 0001964623 00000 n 0001964943 00000 n 0001965248 00000 n 0001965515 00000 n 0001965778 00000 n 0001966040 00000 n 0001966293 00000 n 0001966578 00000 n 0001966841 00000 n 0001967110 00000 n 0001967394 00000 n 0001967674 00000 n 0001967942 00000 n 0001968242 00000 n 0001968485 00000 n 0001968799 00000 n 0001969082 00000 n 0001969338 00000 n 0001969633 00000 n 0001969880 00000 n 0001970128 00000 n 0001970376 00000 n 0001970643 00000 n 0001970904 00000 n 0001971208 00000 n 0001971473 00000 n 0001972014 00000 n 0001972337 00000 n 0001972699 00000 n 0001973233 00000 n 0001973452 00000 n 0001973712 00000 n 0001973967 00000 n 0001974215 00000 n 0001974393 00000 n 0001974642 00000 n 0001974838 00000 n 0001975034 00000 n 0001975267 00000 n 0001975508 00000 n 0001975752 00000 n 0001975936 00000 n 0001976125 00000 n 0001976339 00000 n 0001976578 00000 n 0001976771 00000 n 0001976973 00000 n 0001977151 00000 n 0001977387 00000 n 0001977572 00000 n 0001977785 00000 n 0001977975 00000 n 0001978192 00000 n 0001978425 00000 n 0001978608 00000 n 0001978841 00000 n 0001979024 00000 n 0001979214 00000 n 0001979441 00000 n 0001979732 00000 n 0001980028 00000 n 0001980318 00000 n 0001980613 00000 n 0001980913 00000 n 0001981160 00000 n 0001981400 00000 n 0001981643 00000 n 0001981915 00000 n 0001982157 00000 n 0001982370 00000 n 0001982586 00000 n 0001982856 00000 n 0001983052 00000 n 0001983232 00000 n 0001983452 00000 n 0001983711 00000 n 0001983906 00000 n 0001984132 00000 n 0001984379 00000 n 0001984611 00000 n 0001984850 00000 n 0001985108 00000 n 0001985377 00000 n 0001985663 00000 n 0001985868 00000 n 0001986094 00000 n 0001986334 00000 n 0001986581 00000 n 0001986843 00000 n 0001987091 00000 n 0001987347 00000 n 0001987597 00000 n 0001987850 00000 n 0001988094 00000 n 0001988348 00000 n 0001988600 00000 n 0001988825 00000 n 0001989121 00000 n 0001989347 00000 n 0001989548 00000 n 0001989774 00000 n 0001990033 00000 n 0001990227 00000 n 0001990457 00000 n 0001990676 00000 n 0001990923 00000 n 0001991183 00000 n 0001991459 00000 n 0001991683 00000 n 0001991925 00000 n 0001992150 00000 n 0001992359 00000 n 0001992596 00000 n 0001992832 00000 n 0001993084 00000 n 0001993349 00000 n 0001993598 00000 n 0001993860 00000 n 0001994073 00000 n 0001994343 00000 n 0001994623 00000 n 0001994878 00000 n 0001995138 00000 n 0001995421 00000 n 0001995673 00000 n 0001995944 00000 n 0001996489 00000 n 0001997342 00000 n 0001997890 00000 n 0001999300 00000 n 0001999480 00000 n 0001999723 00000 n 0001999911 00000 n 0002000086 00000 n 0002000402 00000 n 0002000642 00000 n 0002000869 00000 n 0002001176 00000 n 0002001449 00000 n 0002001771 00000 n 0002002034 00000 n 0002002267 00000 n 0002002576 00000 n 0002002889 00000 n 0002003187 00000 n 0002003426 00000 n 0002003720 00000 n 0002004032 00000 n 0002004285 00000 n 0002004603 00000 n 0002004865 00000 n 0002005124 00000 n 0002005368 00000 n 0002005628 00000 n 0002005881 00000 n 0002006104 00000 n 0002006409 00000 n 0002006636 00000 n 0002006836 00000 n 0002007074 00000 n 0002007333 00000 n 0002007514 00000 n 0002007767 00000 n 0002007987 00000 n 0002008239 00000 n 0002008500 00000 n 0002008762 00000 n 0002008979 00000 n 0002009235 00000 n 0002009459 00000 n 0002009675 00000 n 0002009937 00000 n 0002010239 00000 n 0002010506 00000 n 0002010804 00000 n 0002011001 00000 n 0002011538 00000 n 0002011934 00000 n 0002012370 00000 n 0002013074 00000 n 0002013554 00000 n 0002013878 00000 n 0002014127 00000 n 0002014315 00000 n 0002014513 00000 n 0002014690 00000 n 0002014982 00000 n 0002015287 00000 n 0002015696 00000 n 0002016045 00000 n 0002016465 00000 n 0002016805 00000 n 0002017115 00000 n 0002017389 00000 n 0002017820 00000 n 0002018025 00000 n 0002018212 00000 n 0002018638 00000 n 0002018877 00000 n 0002019270 00000 n 0002019668 00000 n 0002019959 00000 n 0002020331 00000 n 0002020759 00000 n 0002021017 00000 n 0002021332 00000 n 0002021873 00000 n 0002022225 00000 n 0002022564 00000 n 0002022889 00000 n 0002023224 00000 n 0002023550 00000 n 0002023807 00000 n 0002024213 00000 n 0002024481 00000 n 0002024701 00000 n 0002024988 00000 n 0002025313 00000 n 0002025502 00000 n 0002025816 00000 n 0002026082 00000 n 0002026395 00000 n 0002026732 00000 n 0002026983 00000 n 0002027324 00000 n 0002027592 00000 n 0002027861 00000 n 0002028195 00000 n 0002028586 00000 n 0002028938 00000 n 0002029330 00000 n 0002029644 00000 n 0002029955 00000 n 0002030174 00000 n 0002030557 00000 n 0002030944 00000 n 0002031251 00000 n 0002031618 00000 n 0002032014 00000 n 0002032335 00000 n 0002032756 00000 n 0002033405 00000 n 0002033868 00000 n 0002034334 00000 n 0002035234 00000 n 0002035430 00000 n 0002035607 00000 n 0002035912 00000 n 0002036280 00000 n 0002036744 00000 n 0002037138 00000 n 0002037622 00000 n 0002037995 00000 n 0002038322 00000 n 0002038604 00000 n 0002039096 00000 n 0002039303 00000 n 0002039492 00000 n 0002039743 00000 n 0002040176 00000 n 0002040640 00000 n 0002040950 00000 n 0002041360 00000 n 0002041847 00000 n 0002042121 00000 n 0002042471 00000 n 0002042938 00000 n 0002043562 00000 n 0002044080 00000 n 0002044475 00000 n 0002044865 00000 n 0002045230 00000 n 0002045586 00000 n 0002045939 00000 n 0002046296 00000 n 0002046569 00000 n 0002047020 00000 n 0002047312 00000 n 0002047540 00000 n 0002047844 00000 n 0002048212 00000 n 0002048405 00000 n 0002048745 00000 n 0002049025 00000 n 0002049374 00000 n 0002049741 00000 n 0002050119 00000 n 0002050385 00000 n 0002050763 00000 n 0002051040 00000 n 0002051321 00000 n 0002051696 00000 n 0002052148 00000 n 0002052549 00000 n 0002053006 00000 n 0002053347 00000 n 0002053571 00000 n 0002053997 00000 n 0002054427 00000 n 0002054761 00000 n 0002055171 00000 n 0002055614 00000 n 0002055968 00000 n 0002056445 00000 n 0002057145 00000 n 0002057552 00000 n 0002057984 00000 n 0002058870 00000 n 0002059116 00000 n 0002059362 00000 n 0002059597 00000 n 0002059829 00000 n 0002060014 00000 n 0002060199 00000 n 0002060379 00000 n 0002060566 00000 n 0002060772 00000 n 0002061007 00000 n 0002061200 00000 n 0002061406 00000 n 0002061578 00000 n 0002061820 00000 n 0002062000 00000 n 0002062216 00000 n 0002062399 00000 n 0002062618 00000 n 0002062794 00000 n 0002063019 00000 n 0002063194 00000 n 0002063447 00000 n 0002063760 00000 n 0002064129 00000 n 0002064468 00000 n 0002064708 00000 n 0002064938 00000 n 0002065182 00000 n 0002065466 00000 n 0002065733 00000 n 0002066038 00000 n 0002066295 00000 n 0002066553 00000 n 0002066793 00000 n 0002067094 00000 n 0002067299 00000 n 0002067484 00000 n 0002067703 00000 n 0002068006 00000 n 0002068221 00000 n 0002068520 00000 n 0002068820 00000 n 0002069109 00000 n 0002069350 00000 n 0002069695 00000 n 0002069971 00000 n 0002070265 00000 n 0002070488 00000 n 0002070742 00000 n 0002071045 00000 n 0002071401 00000 n 0002071724 00000 n 0002072016 00000 n 0002072295 00000 n 0002072554 00000 n 0002072818 00000 n 0002073067 00000 n 0002073329 00000 n 0002073585 00000 n 0002073798 00000 n 0002074079 00000 n 0002074307 00000 n 0002074507 00000 n 0002074734 00000 n 0002075002 00000 n 0002075189 00000 n 0002075435 00000 n 0002075654 00000 n 0002075893 00000 n 0002076161 00000 n 0002076429 00000 n 0002076635 00000 n 0002076886 00000 n 0002077106 00000 n 0002077327 00000 n 0002077576 00000 n 0002077853 00000 n 0002078124 00000 n 0002078410 00000 n 0002078668 00000 n 0002078913 00000 n 0002079111 00000 n 0002079398 00000 n 0002079681 00000 n 0002079932 00000 n 0002080207 00000 n 0002080493 00000 n 0002080750 00000 n 0002081049 00000 n 0002081595 00000 n 0002082188 00000 n 0002082741 00000 n 0002084048 00000 n 0002084227 00000 n 0002084614 00000 n 0002085193 00000 n 0002085697 00000 n 0002086348 00000 n 0002086816 00000 n 0002087217 00000 n 0002087536 00000 n 0002088184 00000 n 0002088382 00000 n 0002088666 00000 n 0002089193 00000 n 0002089785 00000 n 0002090161 00000 n 0002090934 00000 n 0002091444 00000 n 0002091753 00000 n 0002092163 00000 n 0002092968 00000 n 0002093469 00000 n 0002093925 00000 n 0002094364 00000 n 0002094806 00000 n 0002095248 00000 n 0002095557 00000 n 0002096169 00000 n 0002096517 00000 n 0002096773 00000 n 0002097127 00000 n 0002097597 00000 n 0002097801 00000 n 0002098222 00000 n 0002098560 00000 n 0002098989 00000 n 0002099451 00000 n 0002099761 00000 n 0002100237 00000 n 0002100562 00000 n 0002100902 00000 n 0002101483 00000 n 0002101980 00000 n 0002102410 00000 n 0002102652 00000 n 0002103215 00000 n 0002103781 00000 n 0002104184 00000 n 0002104718 00000 n 0002105297 00000 n 0002105723 00000 n 0002106373 00000 n 0002107215 00000 n 0002107660 00000 n 0002108099 00000 n 0002108856 00000 n 0002109174 00000 n 0002109471 00000 n 0002109696 00000 n 0002110024 00000 n 0002110396 00000 n 0002110784 00000 n 0002111147 00000 n 0002111393 00000 n 0002111825 00000 n 0002112188 00000 n 0002112563 00000 n 0002112923 00000 n 0002113288 00000 n 0002113602 00000 n 0002113947 00000 n 0002114246 00000 n 0002114592 00000 n 0002114937 00000 n 0002115229 00000 n 0002115493 00000 n 0002115826 00000 n 0002116122 00000 n 0002116400 00000 n 0002116708 00000 n 0002116979 00000 n 0002117302 00000 n 0002117609 00000 n 0002118170 00000 n 0002118468 00000 n 0002118873 00000 n 0002119303 00000 n 0002119440 00000 n 0002119730 00000 n 0002120019 00000 n 0002120298 00000 n 0002120572 00000 n 0002120758 00000 n 0002120956 00000 n 0002121172 00000 n 0002121437 00000 n 0002121631 00000 n 0002121849 00000 n 0002122026 00000 n 0002122274 00000 n 0002122461 00000 n 0002122690 00000 n 0002122880 00000 n 0002123134 00000 n 0002123310 00000 n 0002123564 00000 n 0002123775 00000 n 0002123998 00000 n 0002124261 00000 n 0002124536 00000 n 0002124783 00000 n 0002125092 00000 n 0002125431 00000 n 0002125743 00000 n 0002126119 00000 n 0002126421 00000 n 0002126705 00000 n 0002126967 00000 n 0002127345 00000 n 0002127557 00000 n 0002127751 00000 n 0002128004 00000 n 0002128381 00000 n 0002128615 00000 n 0002128955 00000 n 0002129296 00000 n 0002129658 00000 n 0002129924 00000 n 0002130372 00000 n 0002130706 00000 n 0002131077 00000 n 0002131319 00000 n 0002131611 00000 n 0002131973 00000 n 0002132388 00000 n 0002132790 00000 n 0002133130 00000 n 0002133441 00000 n 0002133736 00000 n 0002134021 00000 n 0002134315 00000 n 0002134607 00000 n 0002134845 00000 n 0002135202 00000 n 0002135451 00000 n 0002135658 00000 n 0002135901 00000 n 0002136203 00000 n 0002136395 00000 n 0002136680 00000 n 0002136921 00000 n 0002137212 00000 n 0002137512 00000 n 0002137819 00000 n 0002138045 00000 n 0002138340 00000 n 0002138582 00000 n 0002138826 00000 n 0002139110 00000 n 0002139438 00000 n 0002139756 00000 n 0002140086 00000 n 0002140365 00000 n 0002140654 00000 n 0002140867 00000 n 0002141208 00000 n 0002141547 00000 n 0002141835 00000 n 0002142155 00000 n 0002142494 00000 n 0002142795 00000 n 0002143162 00000 n 0002143759 00000 n 0002144356 00000 n 0002144872 00000 n 0002146108 00000 n 0002146347 00000 n 0002146706 00000 n 0002147021 00000 n 0002147327 00000 n 0002147514 00000 n 0002147769 00000 n 0002147947 00000 n 0002148216 00000 n 0002148501 00000 n 0002148874 00000 n 0002149191 00000 n 0002149579 00000 n 0002149890 00000 n 0002150180 00000 n 0002150435 00000 n 0002150817 00000 n 0002151020 00000 n 0002151206 00000 n 0002151460 00000 n 0002151832 00000 n 0002152063 00000 n 0002152423 00000 n 0002152782 00000 n 0002153150 00000 n 0002153417 00000 n 0002153854 00000 n 0002154187 00000 n 0002154573 00000 n 0002154817 00000 n 0002155107 00000 n 0002155491 00000 n 0002155951 00000 n 0002156355 00000 n 0002156688 00000 n 0002157037 00000 n 0002157351 00000 n 0002157662 00000 n 0002157958 00000 n 0002158261 00000 n 0002158569 00000 n 0002158818 00000 n 0002159181 00000 n 0002159430 00000 n 0002159643 00000 n 0002159911 00000 n 0002160213 00000 n 0002160402 00000 n 0002160693 00000 n 0002160937 00000 n 0002161232 00000 n 0002161541 00000 n 0002161784 00000 n 0002162089 00000 n 0002162344 00000 n 0002162592 00000 n 0002162890 00000 n 0002163248 00000 n 0002163564 00000 n 0002163913 00000 n 0002164203 00000 n 0002164496 00000 n 0002164704 00000 n 0002165052 00000 n 0002165392 00000 n 0002165690 00000 n 0002166025 00000 n 0002166371 00000 n 0002166667 00000 n 0002167039 00000 n 0002167641 00000 n 0002168366 00000 n 0002168832 00000 n 0002169860 00000 n 0002170236 00000 n 0002170526 00000 n 0002170809 00000 n 0002171032 00000 n 0002171212 00000 n 0002171701 00000 n 0002172035 00000 n 0002172396 00000 n 0002172794 00000 n 0002173129 00000 n 0002173457 00000 n 0002173769 00000 n 0002174087 00000 n 0002174483 00000 n 0002174695 00000 n 0002174887 00000 n 0002175159 00000 n 0002175411 00000 n 0002175714 00000 n 0002175963 00000 n 0002176287 00000 n 0002176536 00000 n 0002176843 00000 n 0002177071 00000 n 0002177446 00000 n 0002178114 00000 n 0002178498 00000 n 0002178907 00000 n 0002179306 00000 n 0002179841 00000 n 0002180242 00000 n 0002180601 00000 n 0002180812 00000 n 0002181248 00000 n 0002181619 00000 n 0002182039 00000 n 0002182455 00000 n 0002182855 00000 n 0002183130 00000 n 0002183441 00000 n 0002183845 00000 n 0002184147 00000 n 0002184515 00000 n 0002184798 00000 n 0002185095 00000 n 0002185483 00000 n 0002185727 00000 n 0002186172 00000 n 0002186976 00000 n 0002187219 00000 n 0002187574 00000 n 0002187886 00000 n 0002194897 00000 n 0002195133 00000 n 0002202262 00000 n 0002202487 00000 n 0002209899 00000 n 0002210152 00000 n 0002217200 00000 n 0002217434 00000 n 0002221982 00000 n 0002225242 00000 n 0002225362 00000 n 0002225487 00000 n 0002225613 00000 n 0002225693 00000 n 0002225785 00000 n 0002236573 00000 n 0002236777 00000 n 0002236990 00000 n 0002237199 00000 n 0002237392 00000 n 0002237569 00000 n 0002237744 00000 n 0002237921 00000 n 0002238089 00000 n 0002238274 00000 n 0002238469 00000 n 0002238654 00000 n 0002238835 00000 n 0002239012 00000 n 0002239184 00000 n 0002239384 00000 n 0002239635 00000 n 0002239886 00000 n 0002240137 00000 n 0002240388 00000 n 0002240640 00000 n 0002240897 00000 n 0002241154 00000 n 0002241332 00000 n 0002241517 00000 n 0002241690 00000 n 0002241860 00000 n 0002242031 00000 n 0002242201 00000 n 0002242372 00000 n 0002242546 00000 n 0002242723 00000 n 0002242898 00000 n 0002243075 00000 n 0002243249 00000 n 0002243423 00000 n 0002243600 00000 n 0002243775 00000 n 0002243952 00000 n 0002244127 00000 n 0002244304 00000 n 0002244497 00000 n 0002244696 00000 n 0002244895 00000 n 0002245095 00000 n 0002245298 00000 n 0002245495 00000 n 0002245694 00000 n 0002245901 00000 n 0002246108 00000 n 0002246311 00000 n 0002246514 00000 n 0002246717 00000 n 0002246941 00000 n 0002247178 00000 n 0002247420 00000 n 0002247663 00000 n 0002247911 00000 n 0002248162 00000 n 0002248406 00000 n 0002248649 00000 n 0002248892 00000 n 0002249103 00000 n 0002249328 00000 n 0002249574 00000 n 0002249823 00000 n 0002249960 00000 n 0002250078 00000 n 0002250193 00000 n 0002250319 00000 n 0002250446 00000 n 0002250562 00000 n 0002250678 00000 n 0002250797 00000 n 0002250921 00000 n 0002251051 00000 n 0002251185 00000 n 0002251319 00000 n 0002251437 00000 n 0002251553 00000 n 0002251644 00000 n 0002251684 00000 n 0002251809 00000 n trailer << /Size 2906 /Root 2904 0 R /Info 2905 0 R /ID [<36108AC345591B7959D28A92A59C63A7> <36108AC345591B7959D28A92A59C63A7>] >> startxref 2252173 %%EOF mcu8051ide-1.4.7/doc/handbook/mcu8051ide.en.tex0000644000175000017500000104005512067167647021345 0ustar milleniummillenium\documentclass[a4paper,twoside,12pt]{book} \usepackage[utf8]{inputenc} \title{MCU 8051 IDE handbook draft} \author{Martin Ošmera } \newcommand{\mysubject}{MCU~8051~IDE handbook} \newcommand{\mykeywords}{8051, IDE, Linux} % \usepackage[light,condensed,math]{iwona} %\usepackage{lmodern} %\renewcommand*\familydefault{\sfdefault} %% Only if the base font of the document is to be sans serif \usepackage[T1]{fontenc} \usepackage{float} \usepackage{graphicx} \usepackage{fancyhdr} \usepackage{longtable} \usepackage[usenames,dvipsnames]{color} \usepackage{pifont} \usepackage{wrapfig} \usepackage[footnotesize,bf]{caption} \usepackage[pdftex,colorlinks=true,linkcolor=blue,urlcolor=blue,pdftitle={\title{}},pdfauthor={\author{}},pdfsubject={\mysubject{}},pdfkeywords={\mykeywords{}},bookmarksopen=false,pdfpagemode=None]{hyperref} \floatstyle{ruled} \newfloat{code}{thp}{lop} \floatname{code}{Code} \definecolor{highlight_constant}{rgb}{0.333, 0.666, 0.0} \definecolor{highlight_unknown_base}{rgb}{0.533, 0.133, 0.133} \definecolor{highlight_comment}{rgb}{0.533, 0.533, 0.533} \definecolor{highlight_symbol}{rgb}{0.666, 0.0, 1.0} \definecolor{highlight_oper_sep}{rgb}{0.866, 0.533, 0.0} \definecolor{highlight_directive}{rgb}{0.533, 0.533, 1.0} \definecolor{highlight_label}{rgb}{0.533, 0.333, 0.0} \definecolor{highlight_instruction}{rgb}{0.0, 0.0, 1.0} \definecolor{highlight_sfr}{rgb}{0.0, 0.0, 0.866} \definecolor{highlight_indirect}{rgb}{0.866, 0.0, 0.0} \definecolor{highlight_imm_hex}{rgb}{0.666, 0.0, 0.866} \definecolor{highlight_macro}{rgb}{0.8, 0.0, 0.866} \definecolor{highlight_imm_dec}{rgb}{0.0, 0.533, 0.866} \definecolor{highlight_hex}{rgb}{0.533, 0.0, 0.733} \definecolor{highlight_oct}{rgb}{0.533, 0.0, 0.0} \definecolor{highlight_dec}{rgb}{0.0, 0.333, 0.666} \definecolor{highlight_bin}{rgb}{0.2, 0.2, 0.333} \definecolor{highlight_string}{rgb}{0.533, 0.533, 0.0} \definecolor{highlight_control}{rgb}{1.0, 0.0, 0.0} \definecolor{highlight_imm_oct}{rgb}{0.666, 0.0, 0.0} \definecolor{highlight_imm_bin}{rgb}{0.333, 0.333, 0.666} \definecolor{highlight_char}{rgb}{0.0, 1.0, 1.0} \definecolor{highlight_imm_constant}{rgb}{0.937, 0.737, 0.168} \definecolor{highlight_imm_unknown}{rgb}{0.666, 0.2, 0.2} \definecolor{highlight_lst_number}{rgb}{0.0, 0.882, 1.0} \definecolor{highlight_lst_code}{rgb}{1.0, 0.2, 0.968} \definecolor{highlight_lst_address}{rgb}{0.349, 0.356, 1.0} \definecolor{highlight_lst_line}{rgb}{0.074, 0.003, 0.513} \definecolor{highlight_lst_macro}{rgb}{0.533, 0.533, 0.533} \definecolor{highlight_lst_include}{rgb}{0.533, 0.533, 0.533} \definecolor{highlight_lst_msg}{rgb}{0.0, 0.0, 0.0} \renewcommand{\chaptermark}[1]{\markboth{\thechapter.\ \MakeUppercase{#1}}{}} \renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}} \newcommand{\menuitem}[1]{\texttt{#1}} \newcommand{\fileextension}[1]{\texttt{#1}} \newcommand{\mysmallfont}{\fontsize{8pt}{10pt} \selectfont{}} \newcommand{\uC}{$\mu$C } \pdfadjustspacing=1 \raggedbottom \pagestyle{fancy} \fancyhf{} \fancyhead[EL,OR]{\bfseries\thepage} \fancyhead[LO]{\bfseries\rightmark} \fancyhead[RE]{\bfseries\leftmark} \fancypagestyle{plain}{ \fancyhead{} \fancyhead[EL,OR]{\bfseries\thepage} \renewcommand{\headrulewidth}{0pt} } \begin{document} \maketitle \thanks{ I would like to thank to the following people for their support during the project development: \begin{itemize} \item \textbf{Andre Cunha}~\textit{(Brazil)} for review of this document. \item \textbf{Yuanhui Zhang}~\textit{(China)} for bug reports and help with debugging. \item \textbf{Kara Blackowiak}~\textit{(USA)} for certain code reviews. \item \textbf{Marek Nožka}~\textit{(Moravia, CZ, EU)} for help with debugging. \item \textbf{Kostya V. Ivanov}~\textit{(Russia)} for bug fixes in the simulator engine. \item \textbf{Shakthi Kannan}~\textit{(India)} for adding this software to the FEL project and for a few patches. \item \textbf{Trevor Spiteri}~ for help with debugging (patches) the HD44780 simulator. \item \textbf{Miroslav Hradílek}~\textit{(EU)} for bug reports and suggestions \item \textbf{Fabricio Alcalde}~\textit{(Argentina)} for suggestions and bug reports. \item \textbf{Francisco Albani}~\textit{(Argentina)} for suggestions and a few bug reports. \end{itemize} } \tableofcontents \newpage \chapter*{Preface} \addcontentsline{toc}{chapter}{Preface} \section*{Goals of the project} \addcontentsline{toc}{section}{Goals of the project} MCU~8051~IDE is an integrated development environment for microcontrollers based on MCS-51 intended for Assembly language and C language. This IDE is currently available on GNU/Linux and Microsoft\textregistered\~Windows\textregistered\ (since version 1.3.6). This program was originally intended for education purposes, but now the area of potential usage is surely significantly wider. This program was created to fill a gap in the open source software of this kind. User interface, source codes, documentation, web pages, etc., are written in English in order to make this software available to as many user as possible, but there is support for internationalization using i18n since version 1.3.10. This documentation is written in \LaTeX. It is very important to note that this software was not developed for any company, person or something similar and it is completely noncommercial, open source software distributed under \href{http://gnu.cz/article/30/pdf/gpl-cz.pdf}{GNU GPLv2} license intended for a group of people with common interest, in this case 8051. \subsection*{MCU 8051 IDE should offer:} \begin{dingautolist}{172} \setlength{\itemsep}{-3pt} \item A transparent view on a simulated program for 8051; \item Easy source code editing even for an user with small knowledge of the assembly language; \item User friendly advanced IDE for MCS-51. \end{dingautolist} \subsection*{List of the most important parts of MCU 8051 IDE:} \begin{dinglist}{43} \setlength{\itemsep}{-3pt} \item Source code editor; \item Optimization capable macro-assembler; \item Advanced MCU simulator; \item Hexadecimal editor; \item Interface for hardware tool control plug-ins; \item Scientific calculator and special calculator optimized for 8051. \end{dinglist} \section*{Requirements} \addcontentsline{toc}{section}{Requirements} Hardware requirements are not defined. This program should run without problems on all POSIX systems (like GNU/Linux, etc.), where all of the software dependencies were satisfied. The IDE is officially distributed as a source code package (primary programming language is TCL), RPM package (currently available in official RHEL repositories), DEB package (currently available in official Debian repositories) and ebuild for Gentoo Linux (currently NOT available in the portage tree). \begin{table}[h] \centering{} \mysmallfont{} \begin{tabular}{|l|c|l|} \hline \textbf{Package} & \textbf{Min. version} & \textbf{Download location} \\\hline \multicolumn{2}{|l}{\textbf{Required packages:}} & (The IDE will not run without these packages) \\\hline tcl & 8.5 & \url{http://www.tcl.tk/software/tcltk/downloadnow85.html} \\\hline tk & 8.5 & \url{http://www.tcl.tk/software/tcltk/downloadnow85.html} \\\hline bwidget & 1.8 & \url{http://sourceforge.net/projects/tcllib} \\\hline itcl & 3.4 & \url{http://sourceforge.net/projects/incrtcl} \\\hline tdom & 0.8 & \url{http://www.tdom.org} \\\hline tkimg & 1.3 & \url{http://sourceforge.net/projects/tkimg} \\\hline tcllib & 1.6 & \url{http://sourceforge.net/projects/tcllib} \\\hline \multicolumn{2}{|l}{\textbf{Optional packages:}} & (Functionality might be unnecessarily limited without these packages) \\\hline Tclx & 8.4 & \url{http://tclx.sourceforge.net} \\ & \multicolumn{2}{l|}{\textit{(Signal handling (signals like SIGINT)}} \\\hline cmake & 2.6 & \url{http://www.cmake.org/HTML/Download.html} \\ & \multicolumn{2}{l|}{ \textit{(If you prefer this way of installation:} \texttt{``./configure \&\& make \&\& make install''}) } \\\hline rxvt-unicode & 8.3 & \url{http://software.schmorp.de} \\\hline & \multicolumn{2}{l|}{\textit{(If you want terminal emulator)}} \\\hline asem-51 & 1.3 & \url{http://plit.de/asem-51/download.htm} \\\hline & \multicolumn{2}{l|}{\textit{(If you want to use a really good assembler :) )}} \\\hline sdcc & 2.9 & \url{http://sdcc.sourceforge.net/} \\\hline & \multicolumn{2}{l|}{\textit{(If you want to used C language compiler)}} \\\hline doxygen & 1.3 & \url{www.doxygen.org/} \\\hline & \multicolumn{2}{l|}{\textit{(If you want to use doxygen directly from the IDE)}} \\\hline indent & 1.2 & \url{http://www.gnu.org/software/indent/} \\\hline & \multicolumn{2}{l|}{\textit{(If you want to use auto-indent function for C language)}}\\\hline hunspell & 1.2 & \url{http://hunspell.sourceforge.net} \\\hline & \multicolumn{2}{l|}{\textit{(If you want to have spell checker function available)}} \\\hline bash & 4.0 & \url{http://tiswww.case.edu/php/chet/bash/bashtop.html} \\\hline & \multicolumn{2}{l|}{\textit{(If you want to have spell checker function available)}} \\\hline gawk & 3.1 & \url{http://www.gnu.org/software/gawk/} \\\hline & \multicolumn{2}{l|}{\textit{(If you want to have spell checker function available)}} \\\hline \end{tabular} \caption{Software requirements} \end{table} \section*{Intended Audience} \addcontentsline{toc}{section}{Intended Audience} This manual is intended for any individual, regardless of his or her experience with assembler, C language, MCU~8051~IDE or Linux, but it is assumed here that the reader is familiar with basic concepts of assembly language programming and with 8051 processor architecture. Advanced users are not likely to read this manual, but all suggestions on documentation will be considered. If you would like to contribute to this project or the documentation, please consult the project web page. % The preferred way to ask technical questions or start a discussion is to use our mailing list: (mcu8051ide-devel AT lists.sourceforge.net). TODO: finish it Thanks for your cooperation which helps to make this software better. \chapter{Brief introduction} This chapter will provide you with a brief introduction about the main components that are part of MCU 8051 IDE. The purpose of this chapter is to contextualize you on the sofware, informing about the parts that composes it. The next chapter will cover rapidly the Graphical User Interface, which will be described in further details on chapter. \section{Main components of MCU 8051 IDE} \paragraph{Editor} The code editor is featured with syntax highlighting and validation, auto-completion and spell checking for comments \footnote{Spell checking for comments is available only if you have installed the Hunspell program. This feature is currently not available on MS\textregistered Windows\textregistered OS.}, as well as a command line that speeds up the access to various editor options. It also provides a panel showing line numbers, bookmarks, breakpoints and warnings from syntax validator. Editor is capable to export the source code within it as XHTML and \LaTeX\ and contains a number of useful tools like automatic indentation, searching and replacement of expressions, copy to clipboard, paste from clipboard, among others. \paragraph{Assembler} The assembler is one of the integral parts of MCU 8051 IDE. It is a macro assembler with support for dozens of directives and capable of performing peephole optimizations. Support for peephole optimizations means that the assembler can attempt to optimize the resulting code for higher execution speed and lower size without tempering with its very functionality. It is important to note that automatic peephole optimization can sometimes be harmful and so it is disabled by default. A macro assembler is a software that allows the user to define a \textbf{macro instruction}, which consists of a sequence of basic instructions, and use it later instead of repeatedly copying and pasting the set of instructions over and over along the source code. Assembler behavior can be configured either globally, using the proper configuration dialog, or locally in source code, by means of assembler directives and control sequences (e.g. \texttt{\$TITLE('Some title to show in the code listing')}). The assembler is capable of generating four kinds of output code: \begin{dinglist}{43} \setlength{\itemsep}{-3pt} \item Object code (machine code) as an hexadecimal file, with \fileextension{.hex} extension and in Intel\textregistered\ 8 HEX format; \item Object code (machine code) as a binary file, with \fileextension{.bin} extension and in format of raw binary data; \item Code listing, in \fileextension{.lst} extension; \item Code for integrated MCU simulator, in \fileextension{.adf} extension. \end{dinglist} \paragraph{Simulator} The simulator is a software component intended for the simulation of the chosen microcontroller in a virtual environment. It allows user to monitor precisely what is happening in the MCU in an exact moment in time, as well as to modify its components, for instance by altering the value of a register, canceling an interrupt or forcing a subprogram to return. In that way it might be possible to ferret out certain flaws in the program being debugged, which would be hard or nearly impossible to find and/or fix in other ways. Even though it is better to have ICD (In-Circuit Debugger) or ICE (In-Circuit Emulator) at hand, MCU~8051~IDE in current version does not support neither of them % \textcolor{blue}{[MARTIN, ARE YOU PLANNING TO ADD SUPPORT ON NEXT VERSIONS? IF SO, IT IS GOOD TO MENTION THIS HERE.]}. :) Sorry Andre, the only think I plan regarding this project is to "retire", I was working on it during my studies on the school, now I've got another responsibilities to attend to, I am really sorry. MCU simulator implemented in this IDE supports dozens of microcontrollers and most of them are treated in slightly different way allowing to take into account most of the nuances between the supported MCUs. User can adjust simulator behavior to fit his or her needs by modifying clock frequency, size of connected external code, data memory and others, or for instance by disabling or enabling certain warnings, which pops up when the simulated program do something ``strange'', like some kind of invalid access into memory or stack overflow or underflow. Besides that, it is possible for the user to modify all registers which the MCU deals with, including those which are not accessible by the running program, like the Program Counter. User have always an overview of all possible, pending and active interrupts and can temper with them at any time. The simulator also allows for altering code memory and all kinds of data memories. The program being simulated can be at any time "hibernated" into a file, preferably with \fileextension{.m5ihib} extension, and resumed later from this same file. Such a file contains the entire state of the simulator at the point in which the program was hibernated. \paragraph{Project management} It is a functionality that allows the IDE to remember certain set of source code files along with a set of configuration parameters. Projects are stored in XML (eXtensible Markup Language) files with extension \fileextension{.mcu8051ide}. These files are human readable and their precise formatting is described in their inline DTD (Document Type Declaration). Their encoding is UTF-8 (Unicode Transformation) and as EOL (End Of Line) character they use LF (Line Feed). The reason for that is to make it possible for the user to implement his or her own tools for manipulating with them. \paragraph{Scientific calculator} MCU 8051 IDE scientific calculator is implemented as a simple scientific calculator capable of computation in four number systems: hexadecimal, decimal, octal and binary, and with three angle units: radians, degrees and grad. Integral part of the calculator is also a simple tool intended solely for computing preset values for MCU timers. \paragraph{Special calculator} The experience in MCU programming shows that it is very useful to have some tools at hand, capable of performing recurrent boring calculations that spend time to be done by hand. MCU 8051 IDE special calculator is intended for performing certain simple specialized calculations related to 8051. For instance, this calculator is capable of generating assembly language code implementing a wait loop with specified parameters. \paragraph{Hexadecimal editor} This utility is used here for watching and modifying large blocks of raw data in various memory types of the simulated MCU (Code, IDATA, XDATA, EEPROM, etc.). There is also hexadecimal editor intended for editing Intel\textregistered{}~HEX~8 files. Other hexadecimal editors are specially designed to fit specific needs of the given purpose; for example, there is an hexadecimal editor for viewing and editing code memory, which displays the current position of the program counter in the machine code of the simulated program. \paragraph{Disassembler} This tool can translate once assembled code back to source code. It is important to note that it is somewhat improbable that the resulting source code will look "reasonable" It is due to \texttt{DB} and \texttt{DW} and not fixed instruction word length on 8051. Nevertheless, such a generated source code must posses exactly the same functionality when it gets assembled again. Disassembler implemented in this IDE is frankly speaking only a little more that just a toy. If you want a really capable disassembler, maybe you should try some tool like D52 \url{http://www.8052.com/users/disasm/}. \paragraph{Notepad} In this IDE, it is a simple rich text editor for writing user notes of whatever kind. Originally, it was intended for writing a list of things which remain to be done in your project. \paragraph{Command Line Interface (CLI)} It is an useful tool that allows the use of some IDE functions without entering it's GUI. You can get list of available options by typing \texttt{mcu8051ide -h} or \texttt{mcu8051ide --help} to your terminal emulator. You can, for example, use just the assembler of the IDE or convert an Intel\textregistered{}~HEX~8 file to a raw binary file. \section{What is MCS-51} \begin{wrapfigure}{r}{120pt} \centering{} \includegraphics[width=110pt]{img/545px-Intel_8051_arch.png} \caption{i8051 micro-architecture} \end{wrapfigure} The Intel MCS-51 is a Harvard architecture, single chip microcontroller series which was developed by Intel in 1980 for use in embedded systems. Today there is a vast range of enhanced 8051-compatible devices manufactured by a number of independent manufacturers. They have 8-bit ALU, accumulator and 8-bit Registers (hence they are an 8-bit microcontrollers), they have 16-bit address bus, 8-bit data bus, boolean processing engine which allows bit-level boolean logic operations to be carried out directly and efficiently on select internal registers and select RAM locations, etc. \enlargethispage{10\baselineskip} \section{What is the Assembly language} An assembly language is a low-level programming language for computers, microprocessors, microcontrollers and other integrated circuits. It implements a symbolic representation of the binary machine codes and other constants needed to program a given CPU architecture. Processors based on MSC-51 have compatible instruction set, similar registers and many other things are generally very similar among them. Here is an example of how a piece of 8051 assembly code looks like: \begin{code}[h] \mysmallfont{} {\color{highlight_label}\verb' main:'}\\ {\color{highlight_directive}\verb' if'}\verb' '{\color{highlight_constant}\verb'test'}\verb''{\color{highlight_symbol}\verb'='}\verb''{\color{highlight_unknown_base}\verb'2'}\\ \verb' '{\color{highlight_instruction}\verb'mov'}\verb' '{\color{highlight_sfr}\verb'R0'}\verb''{\color{highlight_oper_sep}\verb','}\verb' '{\color{highlight_imm_hex}\verb'#25h'}\\ \verb' '{\color{highlight_comment}\verb'; Configure EEPROM'}\\ \verb' '{\color{highlight_instruction}\verb'orl'}\verb' '{\color{highlight_sfr}\verb'EECON'}\verb''{\color{highlight_oper_sep}\verb','}\verb' '{\color{highlight_imm_hex}\verb'#38h'}\\ \verb' '{\color{highlight_instruction}\verb'inc'}\verb' '{\color{highlight_sfr}\verb'R0'}\\ {\color{highlight_directive}\verb' endif'}\\ {\color{highlight_label}\verb' X0MI:'}\\ \verb' '{\color{highlight_instruction}\verb'anl'}\verb' '{\color{highlight_sfr}\verb'EECON'}\verb''{\color{highlight_oper_sep}\verb','}\verb' #'{\color{highlight_symbol}\verb'('}\verb''{\color{highlight_hex}\verb'0FFh'}\verb' '{\color{highlight_symbol}\verb'-'}\verb' '{\color{highlight_hex}\verb'020h'}\verb''{\color{highlight_symbol}\verb')'}\\ \verb' '{\color{highlight_instruction}\verb'movx'}\verb' '{\color{highlight_indirect}\verb'@R0'}\verb''{\color{highlight_oper_sep}\verb','}\verb' '{\color{highlight_sfr}\verb'A'} \caption{An example piece of code written in 8051 assembly language} \end{code} \chapter{Quick start} \section{Demonstration project} The aim of the demonstration project is to provide an easy way to explore the IDE without reading long and boring documents like this one. :) The demonstration project can be opened from the welcome dialog ( ``\menuitem{Main Menu}'' $\rightarrow$ ``\menuitem{Help}'' $\rightarrow$ ``\includegraphics[height=8pt]{img/messagebox_info.png}~\menuitem{Welcome dialog}'' $\rightarrow$ ``\menuitem{Open demonstration project}''. ) Demonstration project should introduce new user into usage of the most common functions of the IDE like assembling the code, running simulator and so on. Demonstration project cannot be modified by the user in order to make it ``less volatile''. \begin{figure}[h!] \centering{} \includegraphics[width=\textwidth]{img/024.png} \caption{MCU~8051~IDE with the demonstration project opened within it} \end{figure} \section{Your first project in MCU~8051~IDE} \begin{wrapfigure}{r}{160pt} \centering{} \includegraphics[width=150pt]{img/025.png} \caption{Project creation dialog} \end{wrapfigure} At first let me explain what the MCU~8051~IDE's project really is. It is a set of some files in some directory, let's call this directory the project directory. And this along with the file with extension \fileextension{.mcu8051ide} forms the project. The file with \fileextension{.mcu8051ide} extension defines what source code files belongs to the project and contains additional information about the project, like who is the project author or for what exact MCU is the project intended. To create you project in you have to specify the project directory and the MCU type for which you will develop your code. This is done in project creation dialog. This dialog can be accessed from main menu ``\menuitem{Main Menu}'' $\rightarrow$ ``\menuitem{Project}'' $\rightarrow$ ``\includegraphics[height=8pt]{img/filenew.png} \menuitem{New}''. After this step you can specify some additional information about the project in project editing dialog. Once you have created a new project you can begin to develop you code from your chosen processor. When you want to save your code press Ctrl+S, Ctrl+N creates a new file and an existing file can be opened by Ctrl+O. Each opened file can be added or removed to/from your current project. Ctrl+B creates or deletes bookmark and Ctrl+Shift+B creates or deletes breakpoint. Project files, the files which are parts of the project, are opened each time you open the project. You can have more than one project opened at the time. Simulator can be started and shut down by pressing F2 key and assembler or compiler is run when F11 is pressed. Output from assembler or compiler is displayed on the bottom panel in tab ``Messages''. And main MCU simulator panel is also available on the bottom panel in tab ``Simulator''. On the left side you can find list of currently opened source code files and list of project files. And on the right side probably most useful tool at the beginning might be ``Instruction~details'', this tool displays help for instruction in the code editor on line with cursor. In the right panel you can find for example also list of bookmarks and breakpoints. \chapter{Detailed introduction to GUI} \section{Source code editor} \subsection{Syntax highlight and validation} \begin{wrapfigure}{r}{100pt} \centering{} \includegraphics[width=90pt]{img/036.png} \caption{Syntax validation configuration button} \end{wrapfigure} The editor is equipped with an implementation of a syntax highlighting algorithm based on simplified syntax analysis. And that enables a limited on-line syntax validation. That means that as the user writes down the code, editor tries to check it for syntactical correctness. Syntax validator marks ``strange looking'' lines with exclamation mark and tries to underline exact point of potential syntax errors. This feature can be disabled as well as syntax highlighting can be disabled. By disabling these features you can make the editor work faster, but it would probably mean only a unnecessary limitation. There are three levels of syntax validation:\\ \begin{itemize} \item 0: Disabled \item 1: Fast basic validation \item 2: Slow advanced validation \end{itemize} Syntax validation configuration button react to left and right click with the mouse pointer. Right button click decreases the level of validation and the left button click increases it. \subsection{Spell checking} \begin{wrapfigure}{l}{100pt} \centering{} \includegraphics[width=90pt]{img/037.png} \caption{Spell checker configuration button} \end{wrapfigure} There is also configurable spell checking function available. It underlines words which are marked by Hunspell\footnote{Hunspell is a spell checker and morphological analyzer. See \url{http://hunspell.sourceforge.net} for details.} as incorrectly spelled. This function applies to comments in the code or the entire code in case that the syntax highlight function has been disabled. User can choose from any of Hunspell or Myspell dictionaries installed on his or her system. This feature can also be turned off. It makes sense that this function is completely dependent on the Hunspell program, if it is not installed, spell checking won't work here. \subsection{Auto-completion} \begin{wrapfigure}{r}{180pt} \centering{} \includegraphics[width=170pt]{img/038.png} \caption{Syntax highlight, syntax validation and the pop-up based auto-completion all in action} \end{wrapfigure} Pop-up based auto-completion is function which should make it easier to use long names for labels, macros, variables, functions, constants, etc. This function is interconnected with syntax editor's analyzer used for syntax highlight and validation and for the table of symbols in the right panel. So it maintains an overview of all symbols defined in your source code file and then when you write just a few characters which a symbol starts with, this function will pop-up window offering you all defined symbols beginning with that letters. Note that this feature can be disabled in editor configuration dialog and note also that besides symbols it offers also list of assembly language instruction mnemonics and assembler directives. \subsection{Editor command line} Editor is featured with a command line, which can be invoked by pressing F10 key by default. The command line appears below the editor above its status bar. From the command line you can perform variety of operations like conversions between various numerical bases, run simulator, insert current date and many more. In the command line it is sufficient to write just a few characters which the requested command starts with and which are sufficient to uniquely identify the command and press enter. You can see help for each command by running command \texttt{help list}. Command line is featured with its own color highlight, history and auto-completion. { \mysmallfont{} \begin{longtable}{l|ll} \textbf{Command} & \textbf{Arguments} & \textbf{Description} \\\hline \endhead \texttt{d2h} & & Convert decimal number into hexadecimal \\ \texttt{d2o} & & Convert decimal number into octal \\ \texttt{d2b} & & Convert decimal number into binary \\ \texttt{h2d} & & Convert hexadecimal number into decimal \\ \texttt{h2o} & & Convert hexadecimal number into octal \\ \texttt{h2b} & & Convert hexadecimal number into binary \\ \texttt{o2h} & & Convert octal number into hexadecimal \\ \texttt{o2d} & & Convert octal number into decimal \\ \texttt{o2b} & & Convert octal number into binary \\ \texttt{b2h} & & Convert binary number into hexadecimal \\ \texttt{b2d} & & Convert binary number into decimal \\ \texttt{b2o} & & Convert binary number into octal \\ \texttt{animate} & & Animate simulated program \\ \texttt{assemble} & & Run assembler \\ \texttt{auto-indent} & & Automatically indent the edited code \\ \texttt{bookmark} & & Create or delete bookmark on the current line \\ \texttt{breakpoint} & & Create or delete breakpoint on the current line \\ \texttt{capitalize} & & Capitalize selected text \\ \texttt{clear} & & Clear history \\ \texttt{comment} & & Comment selection \\ \texttt{copy} & & Copy selection \\ \texttt{custom} & & Run user command \\ \texttt{cut} & & Cut selection \\ \texttt{date} & & Insert current time and/or date \\ \texttt{exit} & & Leave command line \\ \texttt{exit-program} & & Exit the IDE \\ \texttt{find} & & Find a string \\ \texttt{goto} & & Go to the specified line \\ \texttt{help} & & Display help for the specified command \\ \texttt{char} & & Insert a character \\ \texttt{indent} & & Indent selection \\ \texttt{kill-line} & & Delete current line \\ \texttt{open} & & Open the specified file \\ \texttt{paste} & & Paste text from clipboard \\ \texttt{redo} & & Take back last undo \\ \texttt{reload} & & Reload current document \\ \texttt{replace} & & Replace a string with another string \\ \texttt{run} & & Run simulator in animation mode \\ \texttt{save} & & Save the current file \\ \texttt{set-icon-border}& & Show/Hide icon border \\ \texttt{set-line-numbers}& & Show/Hide line numbers \\ \texttt{sim} & & Engage/Disengage simulator \\ \texttt{step} & & Step simulated program \\ \texttt{tolower} & & Convert selected text to lowercase \\ \texttt{toupper} & & Convert selected text to uppercase \\ \texttt{uncomment} & & Comment current line \\ \texttt{undo} & & Undo the last text editing operation \\ \texttt{unindent} & & Decrease indentation level of the current line \\ \texttt{hibernate} & [] & Hibernate simulated program \\ \texttt{resume} & [] & Resume hibernated program \\ \texttt{switch-mcu} & & Switch current MCU simulation mode to another MCU \\ \texttt{set-xcode} & & Set size external data memory for simulated MCU \\ \texttt{set-xdata} & & Set size external program memory for simulated MCU \\ % Caption: \caption{Available commands} \end{longtable} } \section{Bottom panel} \subsection{Main panel of the MCU simulator} This panel is the main part of the simulator user interface. It shows all MCU registers along with content of internal data memory. And contains small toolbar with 6 buttons: ``\includegraphics[height=8pt]{img/launch.png}~Start''/``\includegraphics[height=8pt]{img/exit.png}~Shutdown'', ``\includegraphics[height=8pt]{img/rebuild.png}~Reset'', ``\includegraphics[height=8pt]{img/undo.png}~Step~back'', ``\includegraphics[height=8pt]{img/goto.png}~Step'', ``\includegraphics[height=8pt]{img/goto2.png}~Step~over'', ``\includegraphics[height=8pt]{img/1rightarrow.png}~Animate'' and ``\includegraphics[height=8pt]{img/2rightarrow.png}~Run''. All visible registers can be modified from here and most SFR registers are represented by enumeration of bits, where each particular bit can be modified separately, green color means logical one and red means zero. Each bit has its own tooltip help with short description of its purpose and status bar tip with bit address and bit name. \begin{figure}[h!] \centering{} \caption{Main panel of the simulator} \includegraphics[width=\textwidth]{img/001.png} \end{figure} \begin{figure}[h!] \begin{minipage}[b]{.3\textwidth} \centering{} \includegraphics[width=50pt]{img/002.png} \caption{Highlighted SFR register} \end{minipage} \begin{minipage}[b]{.3\textwidth} \centering{} \includegraphics[width=130pt]{img/003.png} \caption{Tool tip help for a special function bit} \end{minipage} \begin{minipage}[b]{.3\textwidth} \centering{} \includegraphics[width=50pt]{img/004.png} \caption{Representation of a register value in various numeric bases} \end{minipage} \end{figure} \subsection{C variables} This panel is a part of simulator user interface that maintains a list of global static variables defined in your C language code. Names of variables are displayed along with their current values in simulated MCU. If you program is not written in C language then this tool has no purpose for you at all. Otherwise the purpose of this panel is to make it easier to simulate a program for 8051 written in C language and see what is ``really'' happening in there. This tool is capable of extracting variable values from multiple registers and the displaying them as one variable, one value. Alteration of variable values is also possible. And search panel in the top right corner of the panel might help you with finding exact variable which you need to see. But note that functionality of this tool is in fact severely limited, it supports only global static variables, integers and floats, but variable value modification is allowed only for integer variables, no floats. \subsection{Graph showing voltage levels} This panel might help you to see what is happening on simulated GPIO\footnote{General Purpose Input Output} lines. Resolution and grid can be adjusted to better fit your needs. There are three graphs, one for port latches, one for port outputs (without any virtual HW) and one for the most realistic GPIO simulation which this IDE can do. \begin{figure}[h!] \centering{} \includegraphics[width=\textwidth]{img/005.png} \caption{GPIO Graph} \end{figure} \subsection{Messages panel} This panel displays output from the build-in assembler, external assemblers, C compiler and other external tools used in this IDE, which prints something important to standard output. Output from assemblers and SDCC (C compiler) is parsed to highlight warnings and errors and convert them to hyperlinks pointing to source code if possible. The panel also implements a tool for searching strings in the displayed text. User can make this tools visible by pressing Ctrl+F. \begin{figure}[h!] \centering{} \includegraphics[width=\textwidth]{img/007.png} \caption{Messages panel} \end{figure} \subsection{Notes} This is your personal notes for whatever you want. Originally it was intended for writing down a list of things which you need to finish in your work, so some sort of a to do list. But it is just a simple rich text editor with separate file specific notepad. User can use it as he or she consider appropriate. \begin{figure}[h!] \centering{} \includegraphics[width=\textwidth]{img/006.png} \caption{Personal notes} \end{figure} \subsection{Calculator} Calculator is here more or less just for completeness. But you might still find it to a real asset to your efforts. This calculator is capable of performing common arithmetical operations, computing trigonometric functions, logical operations, etc. Supported numeral systems are hexadecimal, decimal, octal and binary in both integer and real numbers. Supported angular measurement units are degrees, radians and gradians. The calculator is also equipped with three memory cells where you can save arbitrary numbers for future computations. On the right side there is a simple calculator dedicated to calculation timers preset values for the specified time, clock frequency, etc. \footnote{Essentially the same but much more advanced function has also the special calculator.} \begin{figure}[h!] \centering{} \includegraphics[width=\textwidth]{img/009.png} \caption{Calculator} \end{figure} \subsection{Find in files} With this tool you can search all files in certain directory which names matches specified GLOB\footnote{An instance of pattern matching behavior, for example ``*.c++'' matches all files with ``.c++'' extension.} pattern. The search is made for a plain string or regular expression match. This tool might be very useful when you are dealing with many, possibly large, source code files and you suddenly want to find something specific in them. Each line printed in the list of found entries is a hypertext link which opens the file mentioned in it in the source code editor and navigates the editor to line matching the item. In other words it generally the same as well known Unix command ``grep''\footnote{A command line text search utility originally written for Unix. The name is taken from the first letters in global/regular expression/print. Its official date of creation is given as March 3, 1973.}, but with graphical user interface. \subsection{Terminal emulator} This is a common color VT102\footnote{A video terminal that was made by Digital Equipment Corporation (DEC). Its detailed attributes became the de facto standard for terminal emulators.} terminal emulator for the X Window System\footnote{Computer software system and network protocol that provides a basis for graphical user interfaces.} as you probably know. More precisely It's embedded \href{http://software.schmorp.de/pkg/rxvt-unicode.html}{rxvt-unicode} terminal emulator by Marc A. Lehmann and others. Background and foreground colors used in the terminal emulator are configurable in ``Terminal~configuration~Dialog''. Note that this feature in not available on Microsoft\textregistered{} Windows\textregistered{} operating system and probably will never be, because terminal emulator would have only a little use there. \begin{figure}[h!] \centering{} \includegraphics[width=\textwidth]{img/031.png} \caption{Embedded \href{http://software.schmorp.de/pkg/rxvt-unicode.html}{rxvt-unicode} terminal emulator, with the \href{http://www.midnight-commander.org/}{Midnight Commander} running in it} \end{figure} \section{Left panel} \subsection{List of opened files} Shows list of all files opened withing the current project. Each entry has its own pop-up menu. Noteworthy features are search bar, sorting by name, size, etc. and open with an external editor. Each file can be added or removed from the list of project files. There is not much to say about it, it's just a simple list with a few nice features but nothing complex. \subsection{List of project files} Shows list of all files assigned to the current project. Each entry has its own pop-up menu. Noteworthy features are search bar, sorting by name, size, etc. and open with an external editor. Each file can be excluded from the list of project files, opened or close withing the project. \subsection{SFR watches} \begin{wrapfigure}{l}{130pt} \centering{} \includegraphics[width=110pt]{img/032.png} \caption{SFR watches} \end{wrapfigure} From here you can see all special function registers on your chosen MCU in one compact list. Search panel might help you locating particular SFR in this panel and also in the main simulator panel. Each register has two numerical representations of its value in the simulated MCU, decimal and hexadecimal. \subsection{File system browser} This panel should help you quickly navigate in your file system in order to open files you want to see as quickly as possible. But many people generally don't like panels like this and will always use only file selection dialog instead. \section{Right panel} \subsection{List of bookmarks} From here you can easily navigate trough all bookmarks made in the current source code file. The panel also highlights item in the list which corresponds to the current line (line with cursor) in the source code editor. You can also remove all bookmarks at once by pressing the ``\includegraphics[height=8pt]{img/editdelete.png}~Clear~all'' button. \subsection{List of breakpoints} Pretty much the same as list of bookmarks, but this panel shows breakpoints instead of bookmarks, that is the only difference. \subsection{Instruction details} \begin{wrapfigure}{r}{210pt} \centering{} \includegraphics[width=200pt]{img/008.png} \caption{Instruction details} \end{wrapfigure} When you are writing a code in the assembly language, this panel might be a great help for you. It shows all valid sets of operands for the instruction on your current cursor position in the source code and highlights the set which you are probably using. The same works also for directives. Each line in list has its own help window which appears when user points at it by the pointer. This help window shows additional details regarding the exact instruction. Note also the ``\includegraphics[height=8pt]{img/help.png}~Show~legend'' button in the upper right corner of the panel. \subsection{Data register watches} \begin{wrapfigure}{l}{130pt} \centering{} \includegraphics[width=120pt]{img/033.png} \caption{Data register watches} \end{wrapfigure} This panel might help you to keep track of specific data registers, except for SFR and EEPROM. User can add arbitrary data memory registers which he or she consider to be the most important for his or her current work. You can add a register in the bottom part of the panel. And you can search for specific register, configure the panel and save or load the list of register in the top panel. This tool is capable of extraction of used symbols from a code listing file\footnote{File with \fileextension{.lst} file name extension.} generated by an assembler. This feature can enabled or disabled in the panel's configuration menu. The current list of watched registers can be saved into a file and loaded from a file\footnote{These file usually have extension \fileextension{.wtc}}. Memory segments are distinguished by format of the addresses. As you can seen in the example, the meaning is this: \begin{table}[h!] \mysmallfont{} \centering{} \begin{tabular}{l|l} \textbf{Address format} & \textbf{Memory segment} \\ \hline 1 or 2 digits & Internal RAM (not SFR) \\ 3 digits & Expanded RAM \\ 4 digits & External RAM \\ dot and 2 digits & Bit (including SFR area) \\ \end{tabular} \caption{Data register watches: Register address} \end{table} \subsection{Subprograms call monitor} \begin{wrapfigure}{r}{130pt} \centering{} \includegraphics[width=120pt]{img/034.png} \caption{Subprograms call monitor} \end{wrapfigure} From here you can monitor all subprogram and interrupt calls in your program. For each entry there is mentioned the type of call, \texttt{acall}, \texttt{lcall} or interrupt, return address and address from which the call was invoked. And you can force each of them to premature return. \subsection{List of symbols} This tools shows a list of symbols defined in source code of your program, works for both assembly language and C language. The list is managed automatically as the user edit the code and is featured with search panel for easy navigation. Types of symbols can be distinguished by their colors and icons. Colors of particular symbols corresponds to the colors used in the source code editor to highlight them. \begin{table}[h] \mysmallfont{} \centering{} \begin{tabular}{ll} \includegraphics[height=8pt]{img/symbol1.png} & {\color{highlight_label} Label} \\ \includegraphics[height=8pt]{img/symbol3.png} & {\color{highlight_constant} Constant} \\ \includegraphics[height=8pt]{img/symbol2.png} & {\color{highlight_macro} Macro} \\ \includegraphics[height=8pt]{img/symbol4.png} & {\color{black} C variable} \\ \includegraphics[height=8pt]{img/symbol0.png} & {\color{blue} C function} \\ \includegraphics[height=8pt]{img/symbol5.png} & {\color{black} Other} \\ \end{tabular} \caption{Symbol colors and icons in default settings} \end{table} \subsection{HW plug-ins manager} This tool does just one thing, allows user to use plug-ins in MCU~8051~IDE. Primary purpose of these plug-ins should be implementation of inter-operation with certain hardware tools, most probably MCU programmers. if you are interested in writing these plug-ins, please refer to chapter \ref{sec:WritingHardwareToolControlPlugIns}. \section{Other tools} \subsection{SFR map} A tabular overview of all available SFRs on your MCU. This tool has similar graphical form as tables of SFR often used in 8051 manuals, but the most important difference is that this one is connected to the simulator and is capable of representing and modifying current values of SFRs in the MCU simulator. \subsection{Map of bit addressable area} \begin{wrapfigure}{l}{160pt} \centering{} \includegraphics[width=130pt]{img/017.png} \caption{Map of the bit addressable area} \end{wrapfigure} This tool is a part of the simulator user interface. It shows all bits in the bit addressable area of the simulated MCU. Each square represents one bit, when simulator is on, you can also change value of each one of them by clicking on it. Labels and color used here should be hopefully clear from the legend at the bottom. \subsection{Stack monitor} \begin{wrapfigure}{r}{90pt} \centering{} \includegraphics[width=80pt]{img/022.png} \caption{Stack monitor} \end{wrapfigure} This tool makes it possible to see entire MCU stack in one view. You can also push any value you want onto the stack or pop a value from it at any time. However this particular tool does not allow for changing the values on the tack in any other way than these. Each line in the stack monitor represents one octet in the stack, each octet is represented in four numerical bases, hexadecimal, decimal, binary and octal and also as a character according to ACII chart. Newly added values are pushed on the top of the list. And their origins are distinguished by background color of the address. These colors are explained in the legend on bottom. Note that button ``Clear'' doe not clear the stack but instead it clear only the monitor! Buttons ``POP'' and ``PUSH'' are intended for manipulation with the stack's content. \subsection{Symbol viewer} \begin{wrapfigure}{l}{160pt} \centering{} \includegraphics[width=140pt]{img/019.png} \caption{Symbol viewer} \end{wrapfigure} Symbol viewer shows the table of symbols defined in your program, it works only for assembly language. The table content is taken from code listing generated by assembler. In the top part of the window you can find search bar, and in the bottom part you can specify filter criteria for what you want to see in the table and specify sorting order of the symbols displayed. Symbol in this context are various constants and labels. \begin{figure}[h!] \begin{minipage}[t]{.5\textwidth} \centering{} \caption{ASCII chart} \includegraphics[width=.9\textwidth]{img/039.png} \end{minipage} \begin{minipage}[t]{.5\textwidth} \centering{} \caption{8051 Instruction Table} \includegraphics[width=.9\textwidth]{img/040.png} \end{minipage} \end{figure} \clearpage \subsection{ASCII chart} Colorful interactive ASCII chart, it may proof handy especially when you are dealing with serial communication and this sort of things. \subsection{8051 Instruction Table} Colorful interactive 8051 instruction table, very much alike the ASCII chart. But instead of ASCII code you can find there the complete table of 8051 instruction mnemonics, OP codes and related things. \subsection{8-segment editor} \begin{wrapfigure}{r}{140pt} \centering{} \includegraphics[width=120pt]{img/020.png} \caption{8-segment editor} \end{wrapfigure} With this tool you can easily determine what value you have to set on a port to display a digit on a numerical LED display. In the left part of the dialog window, you can find numerical values corresponding to the digit displayed in the middle part. These values are represented for both common cathode and anode and in three numerical bases, hexadecimal, decimal and octal. Buttons on left side from entry boxes copies value from adjacent entry box into clipboard. In the right part of the window you can set what port pin is connected to what LED segment. \subsection{Stopwatch} Stopwatch is a tool which can measure certain things in the simulated processor, such as number of instructions processed so far, number of microseconds which would it take for a real processor to execute, number of breakpoints met so far etc. User can also set it to stop the simulation when certain limit in the measurement has been met or exceeded. \subsection{Scribble notepad} This is something like a small whiteboard, where you can draw of write your notes. It is a little bit more free than conventional text editor. You can also insert images, supported image formats are PNG and a few others. But don't rely on the scribble notepad to much, this tool has no save or load functions, anything you draw or write there is just temporary and it will not recover upon next start of the IDE. \subsection{Base converter} \begin{wrapfigure}{l}{120pt} \centering{} \includegraphics[width=110pt]{img/021.png} \caption{Base convertor} \end{wrapfigure} When you are programming micro-controllers, you might want to convert numbers between various numeric bases. One could say that everyone dealing with such things as micro-controllers would be able to do these conversion without use of any tool. But this doesn't mean that such a tool can never be useful. Values written in the entry boxes of the base converter are saved when user leaved the IDE and are recovered upon next start along with all opened base converter tool windows. \subsection{RS-232 debugger} \begin{wrapfigure}{r}{190pt} \centering{} \includegraphics[width=180pt]{img/035.png} \caption{UART/RS-232 debugger} \end{wrapfigure} This tool is capable of transmitting and receiving data to/from RS-232 port in your computer, today personal computers usually do not have this type of port, but you can always use something like a USB to RS-232 bridge. I assume here that the reader is familiar with the RS-232 communication protocol and related terms. This tool acts as a \texttt{DTE}\footnote{Data Terminal Equipment, the other side is \texttt{DCE} (Data Circuit-terminating Equipment).}. On the diagram in the upper left corner you can see current logical level on each of RS-232 wires except for \texttt{RxD} and \texttt{TxD}. You can also set value for wires \texttt{DTR}\footnote{Data Terminal Ready} and \texttt{RTS}\footnote{Ready To Send} and trigger the break by button \texttt{BREAK}. Right upper corner contains configuration controls, their functions should be mostly obvious. Check-box ``Enable~reception'' enables or disables writing to hexadecimal editor ``Received~data''. Button ``Close'' closes the opened physical port. And button ``\includegraphics[height=8pt]{img/reload.png}'' refreshes the list of available physical ports. In the bottom part you can see two hexadecimal editors: ``Data~to~send'' and ``Received~data''. These are representations of data which we are dealing with. By button ``Receive~here'' you can set address in the hexadecimal editor where the received data will be written. And by button ``Send~selected'' you can trigger transmission over the opened physical port, selected chunk of the data will be send then. Button ``Clear~selected'' are intended for removing data from the hexadecimal editors editors. \subsection{Hexadecimal editors} \begin{wrapfigure}{l}{200pt} \centering{} \includegraphics[width=190pt]{img/023.png} \caption{MCU code memory editor} \end{wrapfigure} In this IDE there are several hexadecimal editors used for various purposes. Each of these editors is equipped with a string search tool and address bars of the left and top side. And in some cases with file saving and loading capability, numerical base switch, ASCII view and a navigation bar at the bottom. Editing is allowed only in overwrite mode, copy and paste works as usual, search dialog can be invoked by pressing Ctrl+F and user can switch between view (left and right) by pressing Tab key. Non printable characters in ASCII view are displayed in red color. \paragraph{MCU code memory editor} allows user to see and modify contents of the CODE memory of the simulated micro-controller. Special feature of this particular editor is that instruction OP code currently pointed by program counter (PC) is highlighted with dark orange background along with the instruction's operands. And the same applies also for the previously executed instruction but highlight color is light orange in this case. \paragraph{MCU data/xdata/eeprom memory editor} allows user to see and modify contents of the IDATA/XDATA/EEPROM memory of the simulated micro-controller. Special features of this editors are that recently changed octets are highlighted with light orange foreground color and octets currently being written into the memory are highlighted with gray background color. \paragraph{MCU eeprom write buffer editor} allows to see and modify EEPROM write buffer. Current EEPROM write offset is displayed as well. \paragraph{Independent hexadecimal editor} is universal hexadecimal editor with maximum capacity of 64kB and support for Intel\textregistered 8 HEX file format. This tool is completely independent from your project in the IDE. This too might be particularly useful when you want to and possibly modify content of a Intel\textregistered 8 hex file, but do not alter the simulated MCU. \subsection{Hibernation of simulated program} The IDE is capable of saving execution state of the simulated program into a file and resuming the program from it anytime later. The file, usually with extension \fileextension{.m5ihib}, contains values of all data registers including SFR in the simulated MCU along with other values determining MCU state as for example list of active interrupts. The file is in XML format, human readable and usually occupies a few tens of kilobytes.The file does not contain content of the CODE memory, so it has to be available somewhere else in a separate file. \subsection{Interrupt monitor} Interrupts monitor is a specialized tool intended for viewing and manipulating with interrupts in simulated MCU. With interrupt monitor you can invoke any interrupt you want at any time, force any interrupt at any time to return, change interrupt priorities or disable or enable particular interrupts. You can also see all interrupts synoptically in one window and alter values of their configuration flags. \begin{figure}[h!] \centering{} \includegraphics[width=300pt]{img/018.png} \caption{Interrupt monitor} \end{figure} \subsection{Conversions between *.hex, *.bin and *.adf files} Sometimes it might prove helpful to have some tool to convert a binary file to Intel\textregistered 8 Hex and vice versa. For this purpose MCU~8051~IDE is equipped with a simple tool set for this purpose. In the ``\menuitem{Main Menu}'' $\rightarrow$ ``\menuitem{Utilities}'' you can find these tools: \begin{itemize} \setlength{\itemsep}{-3pt} \item \includegraphics[height=8pt]{img/hb.png} \textbf{HEX $\rightarrow$ BIN} \\ Convert Intel\textregistered 8 Hex file to raw binary file \item \includegraphics[height=8pt]{img/bh.png} \textbf{BIN $\rightarrow$ HEX} \\ Convert raw binary file to Intel\textregistered 8 Hex \item \includegraphics[height=8pt]{img/sh.png} \textbf{SIM $\rightarrow$ HEX} \\ Convert simulator assembler debug file (\fileextension{.adf}) to Intel\textregistered 8 Hex file \item \includegraphics[height=8pt]{img/sb.png} \textbf{SIM $\rightarrow$ BIN} \\ Convert simulator assembler debug file (\fileextension{.adf}) to raw binary file \item \includegraphics[height=8pt]{img/hh.png} \textbf{Normalize Hex} \\ Read and rewrite the given Intel\textregistered 8 Hex file, so that all records satisfies specified maximum length (can be set in the assembler configuration dialog), all records are in incremental order and no records overlaps with others. \end{itemize} \subsection{Normalization of source code indentation} Uniformly indented code is always more aesthetically pleasing and more readable. When you don't have the luxury of having such a code from the first hand, perhaps you will find this feature helpful. This function is available for assembly language and C language if program indent is installed on your system. User can access this function from the ``\menuitem{Main Menu}'' $\rightarrow$ ``\menuitem{Tools}'' $\rightarrow$ ``\menuitem{Auto indent}''. \noindent \begin{center} \small{A small example of the auto indent function in action} \end{center} \begin{minipage}{\textwidth} \twocolumn \begin{minipage}[t]{.5\textwidth} \mysmallfont{} \textbf{Original code:}\\ \verb' '{\color{highlight_constant}\verb'abc'}\verb' '{\color{highlight_directive}\verb'DATA'}\verb' '{\color{highlight_hex}\verb'7Fh'}\\ \verb' '{\color{highlight_comment}\verb'; Start at address 0x00'}\\ \verb' '{\color{highlight_directive}\verb'ORG'}\verb' '{\color{highlight_hex}\verb'0h'}\\ \verb' '{\color{highlight_label}\verb'label0:'}{\color{highlight_instruction}\verb'inc'}\verb' '{\color{highlight_sfr}\verb'R0'}\\ \verb' '{\color{highlight_instruction}\verb'inc'}\verb' '{\color{highlight_indirect}\verb'@R0'}\\ \verb' '{\color{highlight_instruction}\verb'cjne'}\verb' '{\color{highlight_sfr}\verb'R0'}\verb' '{\color{highlight_oper_sep}\verb','}\verb' '{\color{highlight_imm_constant}\verb'#abc'}\verb' '{\color{highlight_oper_sep}\verb','}{\color{highlight_constant}\verb'label0'}\\ \verb' '{\color{highlight_instruction}\verb'mov'}\verb' '{\color{highlight_sfr}\verb'R0'}{\color{highlight_oper_sep}\verb','}\verb' '{\color{highlight_imm_hex}\verb'#0h'}\\ \verb' '{\color{highlight_instruction}\verb'sjmp'}\verb' '{\color{highlight_constant}\verb'label0'}\\ \verb' '{\color{highlight_comment}\verb'; End of assembly'}\\ \verb' '{\color{highlight_directive}\verb'END'}\\ \end{minipage}\begin{minipage}[t]{.5\textwidth} \mysmallfont{} \textbf{Automatically intended code:}\\ {\color{highlight_constant}\verb'abc'}\verb' '{\color{highlight_directive}\verb'DATA'}\verb' '{\color{highlight_hex}\verb'7Fh'}\\ \verb' '{\color{highlight_comment}\verb'; Start at address 0x00'}\\ \verb' '{\color{highlight_directive}\verb'ORG'}\verb' '{\color{highlight_hex}\verb'0h'}\\ {\color{highlight_label}\verb'label0:'}\verb' '{\color{highlight_instruction}\verb'inc'}\verb' '{\color{highlight_sfr}\verb'R0'}\\ \verb' '{\color{highlight_instruction}\verb'inc'}\verb' '{\color{highlight_indirect}\verb'@R0'}\\ \verb' '{\color{highlight_instruction}\verb'cjne'}\verb' '{\color{highlight_sfr}\verb'R0'}{\color{highlight_oper_sep}\verb','}\verb' '{\color{highlight_imm_constant}\verb'#abc'}{\color{highlight_oper_sep}\verb','}\verb' '{\color{highlight_constant}\verb'label0'}\\ \verb' '{\color{highlight_instruction}\verb'mov'}\verb' '{\color{highlight_sfr}\verb'R0'}{\color{highlight_oper_sep}\verb','}\verb' '{\color{highlight_imm_hex}\verb'#0h'}\\ \verb' '{\color{highlight_instruction}\verb'sjmp'}\verb' '{\color{highlight_constant}\verb'label0'}\\ \verb' '{\color{highlight_comment}\verb'; End of assembly'}\\ \verb' '{\color{highlight_directive}\verb'END'}\\ \end{minipage} \onecolumn \end{minipage} \subsection{Change letter case} \begin{wrapfigure}{r}{150pt} \centering{} \includegraphics[width=140pt]{img/042.png} \caption{Change letter case dialog} \end{wrapfigure} This tool can change letter casing to upper or lower case of certain types tokens which your source consists of of. For example you can easily convert all instruction mnemonics in the code to uppercase. It is intended for users who strictly prefers one or another convention of letter casing in assembly language. You can invoke the tool from ``\menuitem{Main Menu}'' $\rightarrow$ ``\menuitem{Tools}'' $\rightarrow$ ``\menuitem{Change letter case}''. \begin{itemize} \setlength{\itemsep}{-3pt} \item \includegraphics[height=8pt]{img/up0.png} Convert to uppercase \item \includegraphics[height=8pt]{img/down0.png} Convert to lowercase \item \includegraphics[height=8pt]{img/button_cancel.png} Keep current case \end{itemize} \subsection{User defined commands} \paragraph{Introduction} This feature was added in order to enable for use of any auxiliary tools which might useful while working in this IDE. For instance, some hardware tools or some sort of a source code management system like Git or SVN. These custom commands are basically mere Bash scripts with some kind of pseudo-variables available in it. These pseudo-variables are formed as strings beginning with ``\texttt{\%}''. Before each script execution they are expanded to values corresponding to their meaning. For instance ``\texttt{\%filename}'' expands to the name of the current file. Note that ``\texttt{\%\%}'' is expanded as single ``\texttt{\%}''.\\ \begin{table}[htp] \centering{} \mysmallfont{} \begin{tabular}{|l|l|} \hline \textbf{Pseudo-variable} & \textbf{Meaning} \\ \hline \%URL & The full URL of the current file \\ \%URLS & List of the URLs of all open documents \\ \%directory & Project directory \\ \%filename & The file name of the current document \\ \%basename & Same as \%filename, but without extension \\ \%mainfile & Name of project main file \\ \%line & Number of the current line \\ \%column & Number of the current column \\ \%selection & The selected text in the current file \\ \%text & The full text of the current file \\ \hline \end{tabular} \caption{List of pseudo-variables} \end{table} \paragraph{Configuration} There is specialized configuration dialog for these custom commands. \begin{wrapfigure}{r}{150pt} \centering{} \includegraphics[width=140pt]{img/010.png} \caption{Custom commands configuration dialog} \end{wrapfigure} \paragraph{Execution} After the script is executed successfully or not, dialog showing the results will appear upon completion of the script. This dialog contains all textual output from the script caught on standard output and standard error output. If the script outputs anything to the standard error output it is considered unsuccessful. \subsection{Clean-up project folder} This tool can proof useful particularly when your project directory gets ``polluted'' with lots of unnecessary files, and you want to get rid of them easily and first of all safely. It removes files with certain file name extensions from the project folder. The list of removed files is then written in results dialog. Available from ``\menuitem{Main Menu}'' $\rightarrow$ ``\menuitem{Tools}'' $\rightarrow$ ``\menuitem{Clean up project folder}''. \subsection{File statistic} Display certain statistical information about the current source code file. ``\menuitem{Main Menu}'' $\rightarrow$ ``\menuitem{File}'' $\rightarrow$ ``\menuitem{File statistic}''. \section{Configuration dialogues} Configuration dialogues are graphical tools for customization of this integrated development environment. And they comprises of these components: \paragraph{Editor configuration} \begin{wrapfigure}{l}{100pt} \centering{} \includegraphics[width=90pt]{img/027.png} \caption{Editor configuration dialog} \end{wrapfigure} In editor configuration dialog user can change preferred editor from default built-in editor to for example Vim or Emacs and modify configuration the built-in editor. Configurable are colors used for syntax highlight, colors for text area background and so on, font used by editor, indentation mode, auto-save interval and others. \paragraph{Compiler configuration} Compiler configuration dialog allows user to configure behavior of the built-in assembler, chose another assembler instead of this one. Configure the preferred assembler and configure the C compiler (SDCC). Compiler configuration is stored in the project file (the file with \fileextension{.mcu8051ide} extension). So these setting are specific to the one specific MCU~8051~IDE project. Currently supported external assemblers are these: \begin{itemize} \setlength{\itemsep}{-3pt} \item ASEM-51 \footnote{A really useful assembler written by W.W. Heinz. You can find it at \url{http://plit.de/asem-51/home.htm}} \item ASL \footnote{Available at http://linux.maruhn.com/sec/asl.html} \item AS51 \footnote{Available at http://www.pjrc.com/tech/8051} \end{itemize} How to link multiple files when using C language:\footnote{This feature is not yet supported on MS Windows.} \begin{enumerate} \item Write makefile, \item set the IDE to use your makefile instead of calling the C compiler directly (Configuration -> Compiler~configuration -> GNU~make~utility), \item start compilation as usual. \end{enumerate} \paragraph{Simulator configuration} Simulator configuration dialog configures these: \begin{enumerate} \item How to treat indeterminable values in simulator engine \item How many steps will be remembered during the simulation for later backward steps. \item What warning conditions will be ignored during the simulation \end{enumerate} \paragraph{Right panel configuration} Configures colors used in tools ``Instruction details'' and ``Register watches'' in the right panel. \paragraph{Main toolbar configuration} Configures contents of main application tool bar. \begin{figure}[h!] \centering{} \includegraphics[width=\textwidth]{img/041.png} \caption{Main toolbar} \end{figure} \paragraph{Custom commands configuration} Configures user defined commands, which are essentially Bash scripts. This feature is currently not available on MS\textregistered Windows\textregistered OS. \paragraph{Shortcuts configuration} Configures key shortcuts used in the IDE. \paragraph{Terminal emulator configuration} Configures terminal emulator at the bottom panel. This terminal emulator is embedded \href{http://software.schmorp.de/pkg/rxvt-unicode.html}{rxvt-unicode}. User can set foreground color and background color of the terminal emulator window and the font. This feature is currently not available on MS\textregistered Windows\textregistered OS. \paragraph{Global MCU~8051~IDE configuration} \begin{wrapfigure}{r}{100pt} \centering{} \includegraphics[width=90pt]{img/028.png} \caption{Global configuration dialog} \end{wrapfigure} Changes settings like GUI language, size of fonts used in the GUI, GUI widget style, whether splash screen should be displayed each time when the IDE is started and so on. \chapter{Build-in macro-assembler} In this chapter we will be concerned with MCU~8051~IDE build-in assembler. \footnote{This assembler manual is inspired by ASEM-51 manual, a great work done by W.W. Heinz} With syntax of its statements, directives and 8051 assembler instructions. I assume that the reader is familiar with general concepts of assembly language programming and 8051 architecture. So I will not explain these here. \section{Statements} Source code files for this assembler must be text files where lines are formed like these:\\\bigskip { \mysmallfont{} \texttt{} \begin{tabular}[h!]{llll} \verb'[' { \color{highlight_label} label: } \verb']' & \verb'[' { \color{highlight_instruction} instruction } & \verb'[' { \color{highlight_symbol} operand } \verb'[' , { \color{highlight_symbol} operand } \verb'[' , { \color{highlight_symbol} operand } \verb']' \verb']' \verb']' & \verb'[' { \color{highlight_comment} ;comment } \verb']' \\ \verb'[' { \color{highlight_label} label: } \verb']' & { \color{highlight_directive} directive } & \verb'[' { \color{highlight_symbol} argument } \verb']' & \verb'[' { \color{highlight_comment} ;comment } \verb']' \\ { \color{highlight_constant} symbol } & { \color{highlight_directive} directive } & { \color{highlight_symbol} argument } & \verb'[' { \color{highlight_comment} ;comment } \verb']' \\ \end{tabular} } \bigskip Everything in square brackets is optional. Compilation does not go beyond line containing ``\texttt{end}'' directive, so after that directive the code do not have to be syntactically valid. Empty lines are allowed as well as line containing only comment or label. Statements can be separated by spaces, NBSP characters\footnote{No Breaking Space (0xC2)} and tabs. Statements are case insensitive and their length is not limited, overall line length is also not limited. \begin{code}[h!] \mysmallfont{} {\color{highlight_label}\verb'start:'}\verb' '{\color{highlight_comment}\verb'; Start timer 0 in mode 2'}\\ \verb' '{\color{highlight_instruction}\verb'mov'}\verb' '{\color{highlight_sfr}\verb'R5'}{\color{highlight_oper_sep}\verb','}\verb' '{\color{highlight_imm_hex}\verb'#0h'}\\ \verb' '{\color{highlight_instruction}\verb'mov'}\verb' '{\color{highlight_sfr}\verb'IE'}{\color{highlight_oper_sep}\verb','}\verb' '{\color{highlight_imm_hex}\verb'#0FFh'}\\ \verb' '{\color{highlight_instruction}\verb'mov'}\verb' '{\color{highlight_sfr}\verb'TL0'}{\color{highlight_oper_sep}\verb','}\verb' '{\color{highlight_imm_dec}\verb'#255d'}\\ \verb' '{\color{highlight_instruction}\verb'mov'}\verb' '{\color{highlight_sfr}\verb'TMOD'}{\color{highlight_oper_sep}\verb','}\verb' '{\color{highlight_imm_hex}\verb'#03h'}\\ \verb' '{\color{highlight_instruction}\verb'setb'}\verb' '{\color{highlight_sfr}\verb'TR0'}\\ \verb' '{\color{highlight_instruction}\verb'sjmp'}\verb' '{\color{highlight_constant}\verb'main'}\\ \verb''\\ {\color{highlight_comment}\verb'; Main loop'}\\ {\color{highlight_label}\verb'main:'}\verb' '{\color{highlight_instruction}\verb'sjmp'}\verb' '{\color{highlight_constant}\verb'$'}\verb' '{\color{highlight_comment}\verb'; Inifinite loop'}\\ \verb''\\ {\color{highlight_comment}\verb'; Program end'}\\ \verb' '{\color{highlight_directive}\verb'end'}\\ % Caption \caption{An example of well formed assembly language code} \end{code} \section{Symbols} Symbol names for numbers, macros or addresses defined by user in the code using appropriate directive. Like with ``\texttt{equ}'' directive you can define a new symbol and assign a value to it right away. Symbols may consist of upper and lower case letter, digits and underscore character (``\_''), their length is not limited, they are case insensitive and they can be the same as language keywords. Be aware of that there cannot coexists two or more symbols in the same memory segment which differs only by letter casing, in other words symbols ``\texttt{abc}'' and ``\texttt{ABC}'' are completely the same thing. \section{Constants} There are two types of constants numeric constants and character constants. Numeric constants consist of a sequence of digits allowed for the numeric base used and followed by the radix specifier. If the number begins with a letter, there must be the zero digit placed before the number. For example ``abh'' is not valid numeric constant, but ``0abh'' is. Character constants consist of sequence of one or more characters enclosed by quote character (\verb"'"). C escape sequences can be used in character constants. If you want to place quote character (\verb"'") into the constant, you can either place two quotes instead of one (``\verb"''''"'') or escape the quote, that means place backslash ``\\\\'' before it. There is significant difference between single character constant and multiple character one. Single character constant is regarded by assembler as 8 bin integer number and multiple character constant is a string, a sequence of characters. Since version 1.4.1 it is possible to use prefix ``0x'' (and ``0X'') as radix specifier for hexadecimal numbers, so ``0xaf'' is the same as ``0afh'', etc. \begin{table}[h!] \mysmallfont{} \centering{} \begin{tabular}{|l|l|l|} \hline Constant type & Allowed digits & Radix specifier \\ \hline Binary & 0 .. 1 & B \\ Octal & 0 .. 7 & O or Q \\ Decimal & 0 .. 9 & D or none \\ Hexadecimal & 0 .. 9, A .. F & H \\ \hline \end{tabular} \caption{Radix specifiers} \end{table} \begin{code}[h!] \mysmallfont{} {\color{highlight_comment}\verb'; These are the same number'}\\ {\color{highlight_constant}\verb'a'}\verb' '{\color{highlight_directive}\verb'set'}\verb' '{\color{highlight_bin}\verb'100111b'}\verb' '{\color{highlight_comment}\verb'; Binary'}\\ {\color{highlight_constant}\verb'a'}\verb' '{\color{highlight_directive}\verb'set'}\verb' '{\color{highlight_oct}\verb'47q'}\verb' '{\color{highlight_comment}\verb'; Octal'}\\ {\color{highlight_constant}\verb'a'}\verb' '{\color{highlight_directive}\verb'set'}\verb' '{\color{highlight_dec}\verb'39d'}\verb' '{\color{highlight_comment}\verb'; Decimal'}\\ {\color{highlight_constant}\verb'a'}\verb' '{\color{highlight_directive}\verb'set'}\verb' '{\color{highlight_hex}\verb'27h'}\verb' '{\color{highlight_comment}\verb'; Hexadecimal'}\\ {\color{highlight_constant}\verb'a'}\verb' '{\color{highlight_directive}\verb'set'}\verb' '{\color{highlight_string}\verb''\verb"'"\verb''\verb"'"\verb''\verb"'"\verb''\verb"'"\verb''}\verb' '{\color{highlight_comment}\verb'; Character'}\\ \verb''\\ {\color{highlight_comment}\verb'; This is an example of string'}\\ {\color{highlight_directive}\verb'db'}\verb' '{\color{highlight_string}\verb''\verb"'"\verb'string'\verb"'"\verb''}\verb' '{\color{highlight_comment}\verb'; String'}\\ % Caption \caption{An example of constants} \end{code} \section{Expressions} Arithmetical expressions are evaluated at compilation time and replaced by assembler with constant corresponding the their resulting value. Expressions comprises of arithmetical operators, constants, symbols and another expressions. An example of such expression might be \texttt{(~X~XOR~0FF00H~)} \begin{table}[h!] \mysmallfont{} \centering{} \begin{tabular}{|l|l|l|} \hline Operator & Description & Example \\\hline \multicolumn{3}{|l|}{\textbf{Unary Operators}} \\\hline NOT & one's complement & NOT 0a55ah \\\hline HIGH & high order byte & HIGH 0a55ah \\\hline LOW & low order byte & LOW 0a55ah \\\hline \multicolumn{3}{|l|}{\textbf{Binary Operators}} \\\hline + & unsigned addition & 11 + 12 \\\hline - & unsigned subtraction & 13 + 11 \\\hline * & unsigned multiplication & 3 * 5 \\\hline / & unsigned division & 20 / 4 \\\hline MOD & unsigned remainder & 21 MOD 4 \\\hline SHL & logical shift left & 32 SHL 2 \\\hline SHR & logical shift right & 32 SHR 2 \\\hline AND & logical and & 48 AND 16 \\\hline OR & logical or & 370q OR 7 \\\hline XOR & exclusive or & 00fh XOR 005h \\\hline . & bit operator & P1.4 \\\hline EQ, = & equal to & 11 EQ 11 \\\hline NE, <> & not equal to & 11 NE 11 \\\hline LT, < & less than & 11 LT 12 \\\hline LE, <= & less or equal than & 11 LT 11 \\\hline GT, > & greater than & 12 GT 11 \\\hline GE, >= & greater or equal than & 12 GT 11 \\\hline \end{tabular} \caption{Expression operators} \end{table} \begin{code}[h!] \mysmallfont{} {\color{highlight_constant}\verb'abc'}\verb' '{\color{highlight_directive}\verb'EQU'}\verb' '{\color{highlight_symbol}\verb'('}\verb' '{\color{highlight_unknown_base}\verb'2000'}\verb' '{\color{highlight_symbol}\verb'*'}\verb' '{\color{highlight_unknown_base}\verb'3'}\verb' '{\color{highlight_symbol}\verb'/'}\verb' '{\color{highlight_unknown_base}\verb'100'}\verb' '{\color{highlight_symbol}\verb')'}\\ {\color{highlight_constant}\verb'xyz'}\verb' '{\color{highlight_directive}\verb'SET'}\verb' '{\color{highlight_symbol}\verb'( LOW'}\verb' '{\color{highlight_constant}\verb'abc'}\verb' '{\color{highlight_symbol}\verb')'}\\ {\color{highlight_directive}\verb'IF'}\verb' '{\color{highlight_symbol}\verb'('}\verb' '{\color{highlight_constant}\verb'abc'}\verb' '{\color{highlight_symbol}\verb'>'}\verb' '{\color{highlight_symbol}\verb'('}\verb' '{\color{highlight_unknown_base}\verb'5'}{\color{highlight_symbol}\verb' MOD'}\verb' '{\color{highlight_unknown_base}\verb'2'}\verb' '{\color{highlight_symbol}\verb')'}\verb' '{\color{highlight_symbol}\verb')'}\\ \verb' '{\color{highlight_instruction}\verb'MOV'}\verb' '{\color{highlight_sfr}\verb'A'}{\color{highlight_oper_sep}\verb','}\verb' '{\color{highlight_symbol}\verb'#'}\verb' '{\color{highlight_symbol}\verb'('}\verb' '{\color{highlight_symbol}\verb'('}\verb' '{\color{highlight_hex}\verb'15h'}{\color{highlight_symbol}\verb' XOR'}\verb' '{\color{highlight_unknown_base}\verb'12'}\verb' '{\color{highlight_symbol}\verb') OR'}\verb' '{\color{highlight_constant}\verb'xyz'}\verb' '{\color{highlight_symbol}\verb')'}\\ {\color{highlight_directive}\verb'ELSE'}\\ \verb' '{\color{highlight_instruction}\verb'ADDC'}\verb' '{\color{highlight_sfr}\verb'A'}{\color{highlight_oper_sep}\verb','}\verb' '{\color{highlight_symbol}\verb'#'}\verb' '{\color{highlight_symbol}\verb'( HIGH'}\verb' '{\color{highlight_hex}\verb'1234h'}\verb' '{\color{highlight_symbol}\verb')'}\\ {\color{highlight_directive}\verb'ENDIF'} % Caption \caption{An example of expressions} \end{code} \section{The instruction set processing} This assembler is capable of translating all 8051 instructions with all possible sets of operands. And extends this set with 2 pseudo-instructions: ``CALL'' and ``JMP'' which do not stand for any operation code, but are translated according to the used operand. ``CALL'' can be translated as ``ACALL'' or ``LCALL'', ``JMP addr'' can be translated as ``SJMP'', ``AJMP'' or ``LJMP''. \twocolumn \section{Assembler directives} \begin{description} \mysmallfont{} \item[ifn] IF Not, conditional assembly\\ Syntax:\\ \verb' '{\color{highlight_directive}\verb'IFN'}\verb' '{\color{highlight_symbol}\verb'<'}{\color{highlight_constant}\verb'expr'}{\color{highlight_symbol}\verb'>'}\\ \verb''\\ Example:\\ \verb' '{\color{highlight_directive}\verb'IF'}{\color{highlight_symbol}\verb'('}{\color{highlight_unknown_base}\verb'2'}\verb' '{\color{highlight_symbol}\verb'*'}\verb' '{\color{highlight_unknown_base}\verb'4'}\verb' '{\color{highlight_symbol}\verb'-'}\verb' '{\color{highlight_constant}\verb'CND'}{\color{highlight_symbol}\verb')'}\\ \verb' '{\color{highlight_instruction}\verb'MOV'}\verb' '{\color{highlight_sfr}\verb'A'}{\color{highlight_oper_sep}\verb','}\verb' '{\color{highlight_imm_hex}\verb'#20h'}\\ \verb' '{\color{highlight_directive}\verb'ELSE'}\\ \verb' '{\color{highlight_instruction}\verb'MOV'}\verb' '{\color{highlight_sfr}\verb'A'}{\color{highlight_oper_sep}\verb','}\verb' '{\color{highlight_imm_hex}\verb'#40h'}\\ \verb' '{\color{highlight_directive}\verb'ENDIF'}\\ \item[ifdef] IF DEFined\\ Syntax:\\\\ \verb' '{\color{highlight_directive}\verb'IFDEF'}\verb' '{\color{highlight_symbol}\verb'<'}{\color{highlight_constant}\verb'symbol'}{\color{highlight_symbol}\verb'>'}\\ \verb''\\ Example:\\ \verb' '{\color{highlight_directive}\verb'IFDEF'}\verb' '{\color{highlight_constant}\verb'CND'}\\ \verb' '{\color{highlight_instruction}\verb'MOV'}\verb' '{\color{highlight_sfr}\verb'A'}{\color{highlight_oper_sep}\verb','}\verb' '{\color{highlight_imm_hex}\verb'#20h'}\\ \verb' '{\color{highlight_directive}\verb'ELSE'}\\ \verb' '{\color{highlight_instruction}\verb'MOV'}\verb' '{\color{highlight_sfr}\verb'A'}{\color{highlight_oper_sep}\verb','}\verb' '{\color{highlight_imm_hex}\verb'#40h'}\\ \verb' '{\color{highlight_directive}\verb'ENDIF'}\\ \item[ifndef] IF Not DEFined\\ Syntax:\\\\ \verb' '{\color{highlight_directive}\verb'IFNDEF'}\verb' '{\color{highlight_symbol}\verb'<'}{\color{highlight_constant}\verb'symbol'}{\color{highlight_symbol}\verb'>'}\\ Example:\\ \verb' '{\color{highlight_directive}\verb'IFNDEF'}\verb' '{\color{highlight_constant}\verb'CND'}\\ \verb' '{\color{highlight_instruction}\verb'MOV'}\verb' '{\color{highlight_sfr}\verb'A'}{\color{highlight_oper_sep}\verb','}\verb' '{\color{highlight_imm_hex}\verb'#20h'}\\ \verb' '{\color{highlight_directive}\verb'ELSE'}\\ \verb' '{\color{highlight_instruction}\verb'MOV'}\verb' '{\color{highlight_sfr}\verb'A'}{\color{highlight_oper_sep}\verb','}\verb' '{\color{highlight_imm_hex}\verb'#40h'}\\ \verb' '{\color{highlight_directive}\verb'ENDIF'}\\ \item[rept] REPeaT Macro\\ Syntax:\\\\ \verb' '{\color{highlight_directive}\verb'REPT'}\verb' '{\color{highlight_symbol}\verb'<'}{\color{highlight_constant}\verb'expr'}{\color{highlight_symbol}\verb'>'}\\ \verb''\\ Example:\\ \verb' '{\color{highlight_directive}\verb'REPT'}\verb' '{\color{highlight_unknown_base}\verb'5'}\\ \verb' '{\color{highlight_instruction}\verb'NOP'}\\ \verb' '{\color{highlight_directive}\verb'ENDM'}\\ \item[times] REPeaT Macro\\ Syntax:\\\\ \verb' '{\color{highlight_directive}\verb'TIMES'}\verb' '{\color{highlight_symbol}\verb'<'}{\color{highlight_constant}\verb'expr'}{\color{highlight_symbol}\verb'>'}\\ \verb''\\ Example:\\ \verb' '{\color{highlight_directive}\verb'TIMES'}\verb' '{\color{highlight_unknown_base}\verb'5'}\\ \verb' '{\color{highlight_instruction}\verb'NOP'}\\ \verb' '{\color{highlight_directive}\verb'ENDM'}\\ \item[if] Conditional assembly\\ Syntax:\\\\ \verb' '{\color{highlight_directive}\verb'IF'}\verb' '{\color{highlight_symbol}\verb'<'}{\color{highlight_constant}\verb'expr'}{\color{highlight_symbol}\verb'>'}\\ \verb''\\ Example:\\ \verb' '{\color{highlight_directive}\verb'IF'}{\color{highlight_symbol}\verb'('}{\color{highlight_unknown_base}\verb'2'}\verb' '{\color{highlight_symbol}\verb'*'}\verb' '{\color{highlight_unknown_base}\verb'4'}\verb' '{\color{highlight_symbol}\verb'-'}\verb' '{\color{highlight_constant}\verb'CND'}{\color{highlight_symbol}\verb')'}\\ \verb' '{\color{highlight_instruction}\verb'MOV'}\verb' '{\color{highlight_sfr}\verb'A'}{\color{highlight_oper_sep}\verb','}\verb' '{\color{highlight_imm_hex}\verb'#20h'}\\ \verb' '{\color{highlight_directive}\verb'ELSE'}\\ \verb' '{\color{highlight_instruction}\verb'MOV'}\verb' '{\color{highlight_sfr}\verb'A'}{\color{highlight_oper_sep}\verb','}\verb' '{\color{highlight_imm_hex}\verb'#40h'}\\ \verb' '{\color{highlight_directive}\verb'ENDIF'}\\ \item[else] Conditional assembly\\ Syntax:\\\\ \verb' '{\color{highlight_directive}\verb'ELSE'}\\ Example:\\ \verb' '{\color{highlight_directive}\verb'IF'}{\color{highlight_symbol}\verb'('}{\color{highlight_unknown_base}\verb'2'}\verb' '{\color{highlight_symbol}\verb'*'}\verb' '{\color{highlight_unknown_base}\verb'4'}\verb' '{\color{highlight_symbol}\verb'-'}\verb' '{\color{highlight_constant}\verb'CND'}{\color{highlight_symbol}\verb')'}\\ \verb' '{\color{highlight_instruction}\verb'MOV'}\verb' '{\color{highlight_sfr}\verb'A'}{\color{highlight_oper_sep}\verb','}\verb' '{\color{highlight_imm_hex}\verb'#20h'}\\ \verb' '{\color{highlight_directive}\verb'ELSE'}\\ \verb' '{\color{highlight_instruction}\verb'MOV'}\verb' '{\color{highlight_sfr}\verb'A'}{\color{highlight_oper_sep}\verb','}\verb' '{\color{highlight_imm_hex}\verb'#40h'}\\ \verb' '{\color{highlight_directive}\verb'ENDIF'}\\ \item[elseif] Conditional assembly\\ Syntax:\\\\ \verb' '{\color{highlight_directive}\verb'ELSEIF'}\verb' '{\color{highlight_symbol}\verb'<'}{\color{highlight_constant}\verb'expr'}{\color{highlight_symbol}\verb'>'}\\ Example:\\ \verb' '{\color{highlight_directive}\verb'IF'}{\color{highlight_symbol}\verb'('}{\color{highlight_unknown_base}\verb'2'}\verb' '{\color{highlight_symbol}\verb'*'}\verb' '{\color{highlight_unknown_base}\verb'4'}\verb' '{\color{highlight_symbol}\verb'-'}\verb' '{\color{highlight_constant}\verb'CND'}{\color{highlight_symbol}\verb')'}\\ \verb' '{\color{highlight_instruction}\verb'MOV'}\verb' '{\color{highlight_sfr}\verb'A'}{\color{highlight_oper_sep}\verb','}\verb' '{\color{highlight_imm_hex}\verb'#20h'}\\ \verb' '{\color{highlight_directive}\verb'ELSEIF'}\verb' '{\color{highlight_constant}\verb'SOMETHING_ELSE'}\\ \verb' '{\color{highlight_instruction}\verb'MOV'}\verb' '{\color{highlight_sfr}\verb'A'}{\color{highlight_oper_sep}\verb','}\verb' '{\color{highlight_imm_hex}\verb'#40h'}\\ \verb' '{\color{highlight_directive}\verb'ENDIF'}\\ \item[elseifn] Conditional assembly\\ Syntax:\\\\ \verb' '{\color{highlight_directive}\verb'ELSEIF'}\verb' '{\color{highlight_symbol}\verb'<'}{\color{highlight_constant}\verb'expr'}{\color{highlight_symbol}\verb'>'}\\ Example:\\ \verb' '{\color{highlight_directive}\verb'IF'}{\color{highlight_symbol}\verb'('}{\color{highlight_unknown_base}\verb'2'}\verb' '{\color{highlight_symbol}\verb'*'}\verb' '{\color{highlight_unknown_base}\verb'4'}\verb' '{\color{highlight_symbol}\verb'-'}\verb' '{\color{highlight_constant}\verb'CND'}{\color{highlight_symbol}\verb')'}\\ \verb' '{\color{highlight_instruction}\verb'MOV'}\verb' '{\color{highlight_sfr}\verb'A'}{\color{highlight_oper_sep}\verb','}\verb' '{\color{highlight_imm_hex}\verb'#20h'}\\ \verb' '{\color{highlight_directive}\verb'ELSEIF'}\verb' '{\color{highlight_constant}\verb'SOMETHING_ELSE'}\\ \verb' '{\color{highlight_instruction}\verb'MOV'}\verb' '{\color{highlight_sfr}\verb'A'}{\color{highlight_oper_sep}\verb','}\verb' '{\color{highlight_imm_hex}\verb'#40h'}\\ \verb' '{\color{highlight_directive}\verb'ENDIF'}\\ \item[elseifdef] Conditional assembly\\ Syntax:\\\\ \verb' '{\color{highlight_directive}\verb'ELSEIF'}\verb' '{\color{highlight_symbol}\verb'<'}{\color{highlight_constant}\verb'expr'}{\color{highlight_symbol}\verb'>'}\\ Example:\\ \verb' '{\color{highlight_directive}\verb'IF'}{\color{highlight_symbol}\verb'('}{\color{highlight_unknown_base}\verb'2'}\verb' '{\color{highlight_symbol}\verb'*'}\verb' '{\color{highlight_unknown_base}\verb'4'}\verb' '{\color{highlight_symbol}\verb'-'}\verb' '{\color{highlight_constant}\verb'CND'}{\color{highlight_symbol}\verb')'}\\ \verb' '{\color{highlight_instruction}\verb'MOV'}\verb' '{\color{highlight_sfr}\verb'A'}{\color{highlight_oper_sep}\verb','}\verb' '{\color{highlight_imm_hex}\verb'#20h'}\\ \verb' '{\color{highlight_directive}\verb'ELSEIFDEF'}\verb' '{\color{highlight_constant}\verb'SOMETHING_ELSE'}\\ \verb' '{\color{highlight_instruction}\verb'MOV'}\verb' '{\color{highlight_sfr}\verb'A'}{\color{highlight_oper_sep}\verb','}\verb' '{\color{highlight_imm_hex}\verb'#40h'}\\ \verb' '{\color{highlight_directive}\verb'ENDIF'}\\ \item[elseifndef] Conditional assembly\\ Syntax:\\\\ \verb' '{\color{highlight_directive}\verb'ELSEIF'}\verb' '{\color{highlight_symbol}\verb'<'}{\color{highlight_constant}\verb'expr'}{\color{highlight_symbol}\verb'>'}\\ Example:\\ \verb' '{\color{highlight_directive}\verb'IF'}{\color{highlight_symbol}\verb'('}{\color{highlight_unknown_base}\verb'2'}\verb' '{\color{highlight_symbol}\verb'*'}\verb' '{\color{highlight_unknown_base}\verb'4'}\verb' '{\color{highlight_symbol}\verb'-'}\verb' '{\color{highlight_constant}\verb'CND'}{\color{highlight_symbol}\verb')'}\\ \verb' '{\color{highlight_instruction}\verb'MOV'}\verb' '{\color{highlight_sfr}\verb'A'}{\color{highlight_oper_sep}\verb','}\verb' '{\color{highlight_imm_hex}\verb'#20h'}\\ \verb' '{\color{highlight_directive}\verb'ELSEIFNDEF'}\verb' '{\color{highlight_constant}\verb'SOMETHING_ELSE'}\\ \verb' '{\color{highlight_instruction}\verb'MOV'}\verb' '{\color{highlight_sfr}\verb'A'}{\color{highlight_oper_sep}\verb','}\verb' '{\color{highlight_imm_hex}\verb'#40h'}\\ \verb' '{\color{highlight_directive}\verb'ENDIF'}\\ \item[endif] Conditional assembly\\ Syntax:\\\\ \verb' '{\color{highlight_directive}\verb'ENDIF'}\\ \verb''\\ Example:\\ \verb' '{\color{highlight_directive}\verb'IF'}{\color{highlight_symbol}\verb'('}{\color{highlight_unknown_base}\verb'2'}\verb' '{\color{highlight_symbol}\verb'*'}\verb' '{\color{highlight_unknown_base}\verb'4'}\verb' '{\color{highlight_symbol}\verb'-'}\verb' '{\color{highlight_constant}\verb'CND'}{\color{highlight_symbol}\verb')'}\\ \verb' '{\color{highlight_instruction}\verb'MOV'}\verb' '{\color{highlight_sfr}\verb'A'}{\color{highlight_oper_sep}\verb','}\verb' '{\color{highlight_imm_hex}\verb'#20h'}\\ \verb' '{\color{highlight_directive}\verb'ELSE'}\\ \verb' '{\color{highlight_instruction}\verb'MOV'}\verb' '{\color{highlight_sfr}\verb'A'}{\color{highlight_oper_sep}\verb','}\verb' '{\color{highlight_imm_hex}\verb'#40h'}\\ \verb' '{\color{highlight_directive}\verb'ENDIF'}\\ \item[endm] END of Macro definition\\ Syntax:\\\\ \verb' '{\color{highlight_directive}\verb'ENDM'}\\ \verb''\\ Example:\\ \verb' '{\color{highlight_macro}\verb'ABC'}\verb' '{\color{highlight_directive}\verb'MACRO'}\\ \verb' '{\color{highlight_instruction}\verb'MOV'}\verb' '{\color{highlight_sfr}\verb'B'}{\color{highlight_oper_sep}\verb','}\verb' '{\color{highlight_imm_dec}\verb'#12d'}\\ \verb' '{\color{highlight_directive}\verb'ENDM'}\\ \item[end] END of the program\\ Syntax:\\\\ \verb' '{\color{highlight_directive}\verb'END'}\\ \verb''\\ Example:\\ \verb' '{\color{highlight_directive}\verb'END'}\\ \item[list] enable code LISTing\\ Syntax:\\\\ \verb' '{\color{highlight_directive}\verb'LIST'}\\ \verb''\\ Example:\\ \verb' '{\color{highlight_instruction}\verb'NOP'}\\ \verb' '{\color{highlight_directive}\verb'NOLIST'}\\ \verb' '{\color{highlight_instruction}\verb'NOP'}\\ \verb' '{\color{highlight_instruction}\verb'NOP'}\\ \verb' '{\color{highlight_directive}\verb'LIST'}\\ \verb' '{\color{highlight_instruction}\verb'NOP'}\\ \item[nolist] disabled code listing\\ Syntax:\\\\ \verb' '{\color{highlight_directive}\verb'NOLIST'}\\ \verb''\\ Example:\\ \verb' '{\color{highlight_instruction}\verb'NOP'}\\ \verb' '{\color{highlight_directive}\verb'NOLIST'}\\ \verb' '{\color{highlight_instruction}\verb'NOP'}\\ \verb' '{\color{highlight_instruction}\verb'NOP'}\\ \verb' '{\color{highlight_directive}\verb'LIST'}\\ \verb' '{\color{highlight_instruction}\verb'NOP'}\\ \item[dseg] switch to DATA segment [at address]\\ Syntax:\\\\ \verb' '{\color{highlight_directive}\verb'DSEG'}\verb' '{\color{highlight_constant}\verb'[AT'}\verb' '{\color{highlight_symbol}\verb'<'}{\color{highlight_constant}\verb'expr'}{\color{highlight_symbol}\verb'>'}{\color{highlight_constant}\verb']'}\\ \verb''\\ Example:\\ \verb' '{\color{highlight_directive}\verb'DSEG'}\verb' '{\color{highlight_constant}\verb'at'}\verb' '{\color{highlight_dec}\verb'20d'}\\ \item[iseg] switch to IDATA segment [at address]\\ Syntax:\\\\ \verb' '{\color{highlight_directive}\verb'ISEG'}\verb' '{\color{highlight_constant}\verb'[AT'}\verb' '{\color{highlight_symbol}\verb'<'}{\color{highlight_constant}\verb'expr'}{\color{highlight_symbol}\verb'>'}{\color{highlight_constant}\verb']'}\\ \verb''\\ Example:\\ \verb' '{\color{highlight_directive}\verb'ISEG'}\verb' '{\color{highlight_constant}\verb'at'}\verb' '{\color{highlight_dec}\verb'10d'}\\ \item[bseg] switch to BIT segment [at address]\\ Syntax:\\\\ \verb' '{\color{highlight_directive}\verb'BSEG'}\verb' '{\color{highlight_constant}\verb'[AT'}\verb' '{\color{highlight_symbol}\verb'<'}{\color{highlight_constant}\verb'expr'}{\color{highlight_symbol}\verb'>'}{\color{highlight_constant}\verb']'}\\ \verb''\\ Example:\\ \verb' '{\color{highlight_directive}\verb'BSEG'}\verb' '{\color{highlight_constant}\verb'at'}\verb' '{\color{highlight_dec}\verb'5d'}\\ \item[xseg] switch to XDATA segment [at address]\\ Syntax:\\\\ \verb' '{\color{highlight_directive}\verb'XSEG'}\verb' '{\color{highlight_constant}\verb'[AT'}\verb' '{\color{highlight_symbol}\verb'<'}{\color{highlight_constant}\verb'expr'}{\color{highlight_symbol}\verb'>'}{\color{highlight_constant}\verb']'}\\ \verb''\\ Example:\\ \verb' '{\color{highlight_directive}\verb'XSEG'}\verb' '{\color{highlight_constant}\verb'at'}\verb' '{\color{highlight_dec}\verb'30d'}\\ \item[cseg] switch to CODE segment [at address]\\ Syntax:\\\\ \verb' '{\color{highlight_directive}\verb'CSEG'}\verb' '{\color{highlight_constant}\verb'[AT'}\verb' '{\color{highlight_symbol}\verb'<'}{\color{highlight_constant}\verb'expr'}{\color{highlight_symbol}\verb'>'}{\color{highlight_constant}\verb']'}\\ \verb''\\ Example:\\ \verb' '{\color{highlight_directive}\verb'CSEG'}\verb' '{\color{highlight_constant}\verb'at'}\verb' '{\color{highlight_dec}\verb'40d'}\\ \item[flag] define a FLAG bit\\ Syntax:\\\\ \verb' '{\color{highlight_constant}\verb''}\verb' '{\color{highlight_directive}\verb'FLAG'}\verb' '{\color{highlight_symbol}\verb'<'}{\color{highlight_constant}\verb'expr'}{\color{highlight_symbol}\verb'>'}\\ \verb''\\ Example:\\ \verb' '{\color{highlight_constant}\verb'F4'}\verb' '{\color{highlight_directive}\verb'FLAG'}\verb' '{\color{highlight_hex}\verb'16h'}\\ \verb''\\ {\color{highlight_label}\verb'Note:'}\\ \verb' '{\color{highlight_macro}\verb'Deprecated'}\verb' '{\color{highlight_constant}\verb'directive. Consider directive BIT instead.}'}\\ \item[skip] SKIP bytes in the code memory\\ Syntax:\\\\ \verb' '{\color{highlight_directive}\verb'SKIP'}\verb' '{\color{highlight_symbol}\verb'<'}{\color{highlight_constant}\verb'expr'}{\color{highlight_symbol}\verb'>'}\\ \verb''\\ Example:\\ \verb' '{\color{highlight_directive}\verb'SKIP'}\verb' '{\color{highlight_unknown_base}\verb'5'}\\ \item[equ] EQUivalent\\ Syntax:\\\\ \verb' '{\color{highlight_constant}\verb''}\verb' '{\color{highlight_directive}\verb'EQU'}\verb' '{\color{highlight_symbol}\verb'<'}{\color{highlight_constant}\verb'expr'}{\color{highlight_symbol}\verb'>'}\\ \verb''\\ Example:\\ \verb' '{\color{highlight_constant}\verb'ABC'}\verb' '{\color{highlight_directive}\verb'EQU'}\verb' '{\color{highlight_sfr}\verb'R0'}\\ \verb' '{\color{highlight_constant}\verb'XYZ'}\verb' '{\color{highlight_directive}\verb'EQU'}\verb' '{\color{highlight_hex}\verb'4Eh'}{\color{highlight_symbol}\verb'+'}{\color{highlight_unknown_base}\verb'12'}\\ \item[bit] define BIT address\\ Syntax:\\\\ \verb' '{\color{highlight_constant}\verb''}\verb' '{\color{highlight_directive}\verb'BIT'}\verb' '{\color{highlight_symbol}\verb'<'}{\color{highlight_constant}\verb'expr'}{\color{highlight_symbol}\verb'>'}\\ \verb''\\ Example:\\ \verb' '{\color{highlight_constant}\verb'ABC'}\verb' '{\color{highlight_directive}\verb'BIT'}\verb' '{\color{highlight_sfr}\verb'P4'}{\color{highlight_symbol}\verb'.'}{\color{highlight_unknown_base}\verb'5'}\\ \item[set] SET numeric variable or variable register\\ Syntax:\\\\ \verb' '{\color{highlight_constant}\verb''}\verb' '{\color{highlight_directive}\verb'SET'}\verb' '{\color{highlight_symbol}\verb'<'}{\color{highlight_constant}\verb'expr'}{\color{highlight_symbol}\verb'>'}\\ \verb' '{\color{highlight_constant}\verb''}\verb' '{\color{highlight_directive}\verb'SET'}\verb' '{\color{highlight_symbol}\verb'<'}{\color{highlight_constant}\verb'register'}{\color{highlight_symbol}\verb'>'}\\ \verb''\\ Example:\\ \verb' '{\color{highlight_constant}\verb'ALPHA'}\verb' '{\color{highlight_directive}\verb'SET'}\verb' '{\color{highlight_sfr}\verb'R0'}\\ \verb' '{\color{highlight_constant}\verb'ALPHA'}\verb' '{\color{highlight_directive}\verb'SET'}\verb' '{\color{highlight_unknown_base}\verb'42'}{\color{highlight_symbol}\verb'*'}{\color{highlight_constant}\verb'BETA'}\\ \item[code] define address in the CODE memory\\ Syntax:\\\\ \verb' '{\color{highlight_constant}\verb''}\verb' '{\color{highlight_directive}\verb'CODE'}\verb' '{\color{highlight_symbol}\verb'<'}{\color{highlight_constant}\verb'expr'}{\color{highlight_symbol}\verb'>'}\\ \verb''\\ Example:\\ \verb' '{\color{highlight_constant}\verb'TBL'}\verb' '{\color{highlight_directive}\verb'CODE'}\verb' '{\color{highlight_hex}\verb'600h'}\\ \item[data] define address in the DATA memory\\ Syntax:\\\\ \verb' '{\color{highlight_constant}\verb''}\verb' '{\color{highlight_directive}\verb'DATA'}\verb' '{\color{highlight_symbol}\verb'<'}{\color{highlight_constant}\verb'expr'}{\color{highlight_symbol}\verb'>'}\\ Example:\\ \verb' '{\color{highlight_constant}\verb'UIV'}\verb' '{\color{highlight_directive}\verb'DATA'}\verb' '{\color{highlight_hex}\verb'20h'}\\ \item[idata] define address in the Internal DATA memory\\ Syntax:\\\\ \verb' '{\color{highlight_constant}\verb''}\verb' '{\color{highlight_directive}\verb'IDATA'}\verb' '{\color{highlight_symbol}\verb'<'}{\color{highlight_constant}\verb'expr'}{\color{highlight_symbol}\verb'>'}\\ Example:\\ \verb' '{\color{highlight_constant}\verb'UIV'}\verb' '{\color{highlight_directive}\verb'IDATA'}\verb' '{\color{highlight_hex}\verb'20h'}\\ \item[xdata] define address in the External DATA memory\\ Syntax:\\\\ \verb' '{\color{highlight_constant}\verb''}\verb' '{\color{highlight_directive}\verb'XDATA'}\verb' '{\color{highlight_symbol}\verb'<'}{\color{highlight_constant}\verb'expr'}{\color{highlight_symbol}\verb'>'}\\ Example:\\ \verb' '{\color{highlight_constant}\verb'UIV'}\verb' '{\color{highlight_directive}\verb'XDATA'}\verb' '{\color{highlight_hex}\verb'400h'}\\ \item[macro] MACRO definition\\ Syntax:\\\\ \verb' '{\color{highlight_macro}\verb''}\verb' '{\color{highlight_directive}\verb'MACRO'}\verb' '{\color{highlight_constant}\verb'[ ['}{\color{highlight_oper_sep}\verb','}{\color{highlight_constant}\verb' ... ]'}\\ Example:\\ \verb' '{\color{highlight_macro}\verb'ABC'}\verb' '{\color{highlight_directive}\verb'MACRO'}\verb' '{\color{highlight_constant}\verb'X'}\\ \verb' '{\color{highlight_instruction}\verb'MOV'}\verb' '{\color{highlight_constant}\verb'X'}{\color{highlight_oper_sep}\verb','}\verb' '{\color{highlight_imm_dec}\verb'#12d'}\\ \verb' '{\color{highlight_directive}\verb'ENDM'}\\ \item[local] define a LOCAL label inside a macro\\ Syntax:\\ \verb' '{\color{highlight_directive}\verb'LOCAL'}\verb' '{\color{highlight_label}\verb'

Z-f hbڵ9r#FZ-#GҧO2D@EE <Zٸq#O=T- p8Xf K@ 2jTg4k>?_ =GGk` 74V]-z@|~ kH g$pbcp@n##FSXhAQV޽v8qBGY(?u|}5.w_2;;=4:ZI߾OSUeGQxm 33Ejj*˖-#&&Ƴ<44Lވn ܪ 'DGNn5:6>`Μ9H'd QՄJDD6ͳιs8t={ٳ RRR5jNݻ 4 cǎ5:tND"!551c\DUUڵ7tԉ}p6?b/ٌFaўӥ\CCEEC o߾m|w͏wL+`|j`p'ȝN'xnV'pWpYDlyj>x5%  Ȭ,rss1cgYqq1:JŜ9suVLB\\N/'@"P^^֭[5kX,ocM[__~{ Zs֠ 9~DFQVNvя=KvuGVU]aa -@n|3۷Qԩ}FC]fCڷ傲2+z "/Dad~ZDJ@` ҥM1Vo-ѿ7~dm6-Չ ܄dR &':?p*,,l6{STTDٳgYHHm۶qwӡCz_^'88jrT*k%f?=bcc'&&s멨`ƌH$>c}ncYYY\ݻw'IIIݻ4 ?5e]v,魰ZW\\LbbgěFlߗۛbRSS=GFFp80kcXrDŽ <#;uneco.--EV@aa!IIIT*,%** :e?o秷{۾7^_|_om}uֿi_ZOSOH$xAnNEIIT2._6כ PH()zKKMOJrr8.(˚\/o4k%Jh^ə3z$%0PTdaĈ0f'6&Mz_^nRr$ֿ.] H<9{=jrrre-!/?Ent8yønN@^]ywogٲӏUzjGrDOLTĵ |V]ڳH&C:u $W+..殻ȁ8xgJ|СCoAӽ{wFIܛBtѣ=~fqF?p'x"Ǐ˅ju{lqqq#t:eeetSn4aƌ䓿rqm'W)> FyUHy ̉ئ[GuM|FUl`0ڤ[+**Z78GbZPY]]Mhh( ,h2p@Yr%BSTTĠA \g@zzz(.]/dƌׯrQRRR'!X3HԊ-''IɩgZ 52On(iP3JYt~ljX,.|zUCs:~aa|=r(--YYY/3 ^GTzyťK8pgƶ:TXXȠAj\.#CcoC[mU\\\gZ o:d_k//ې^kWkmrqY KAkԯ_0kRTda@ r+TJwo[#FcjjjؾBG+W,m/Y a CZKw"pʔ_>g:TJwbb9S'2{D$('M8q JƠArsM>ǯRxv,gժ+8.bbIL.ooe+VG6 IDATߧSNAce; L .`gFB#s0R\y%nj_OFF4!!~ju0|Wy3~֬LlzOrUyU(H}{s.nɷǼ"7 :.d<{7 >ͣ\g}q)}&?*00ыaQQaaa&H"##jdggӹsgl6/_&,,V+999$&&"=N`hpJ6mİaHII<'m_rp3gp%?rS^s;fYYQQQ\tlz"틊B{;qLشkHUUU4 /ҥKΟ?ٳgyG|vcOy=x &ɓLֿھry着ۛ l6/^cǎpĉZW4??$$HAA۷V[g.**"99Ndd$M&+WY{۾7_ȯocca2p8Z6_rҿ i_Zק#J띣WV{w57F*xq:TB~ͨPH8ǿA/_6#JP_>HSu@׮Hjjw6͕P/Mc|ki٭[8?4T'Yg%$$gϞ&]Sfx_;' Q,jr_߭wvF+:?J68 -z`f -S|Ӑ޽˗u'/+'! t<|~x`bdɯI0=t9ݒ;~~7Z_NNݺu9qX×[X#22QFm6F# &L?:t-[ J`ڴi}_.7͛b˖-lٲR3<{E^^~!W$z=SLZZׯ'$$!^/>'OYv~zk{-Grq\.O?{wXT*g?>OckZ_O{2qD+ALYJ*l6iINV7Rplڔw׋r*++P^o\W# =h[cH$v\%~k+>3R35B_W\湹qk鴘AjUh4&.`_͛|Gf3`@gU&;]wucӌ ŅR)瞛EuƇX7?Mh4TiUqEMӍ:.r^|~a}[r%gϮ^c[f:'|r%mƼy4 kXVƌs];y$gϞmZ˙2eJF <7nCӧC&{˘aݺu,\x{|-.ys)6d2 jƌ_|!&ܞ j:&OsUs&O˫s=MrJnS o[U튤׃C݊Fs+.eo_R{<77Ɲ\ z j4}\L\?{_^b(䪿wՍ3rd/4 J͛sHOkr)r+LpurUIeLturfrx Jx>/~ňLb$=/ܹ'ٰ~+D濿GT`iQv)htxʫZQY;V6p8wn| wuHsJѬE;hV<_H^*cn 8I9jp gC;ςBC񡝰eTBXL*d/ϰo=\_u{Wq}Oa2dРd֬y&2mگY J5g6}kwV[ͤh7 h KЄ}/AӰX`AAAK_n!?T~}߅v[y}N.2j""HJRZgϞ Μbqd̘""7aC ~[HK *f'ӧ=vcǪ)HÒ!;W7 Jhӝ  <\BʕFJJt +@dwѣU8OJT99&\`krrL>=ZHI !-5+km6_}UJfhؾE `-jy+93> C2ܓ\ʀ-Z4_nN2]e`~7(8_Sq r8LJڑf%W:t 1o4(e>橧ohџXdР[4 ?`hvG ۳mE00jQ*lq;-tOE]kt iAAAZMY SH nwY1M*TJ5rտZΜfҤ(͋# @'a`4:HK kv,gҤ(T:*bܸH.@߾|y16c7.'u|e j; YŹs("#<˳ $%JeeSS9˗h4 ,-oGby晎Sw*̬Y1{O Bk_'K1\M{[9vl*@ҬKP&DCD&D^:6ggq/ȡEdeͮsྫྷY>xsOOeɒUӟVᥗrg-b*j(\R΢Z'?p}{mE5 `)yq-th=?IAAX/2 _vP2s $?nZyCƎjz+ 9}ZI>T*;6j;FT*ǫ Ӯ8\p0:vtLL}ǘ%))dd=:v-%z6[}4c6?LRZFt,c'%3q㺚{" PHHJR{m=C$*ʏO BKF\rJ #riNcCUuE.WVW<(>N⣋',RPk^9^ԓ=C<,3kk&r1Vܳ[gt }7vw=ttzn}eҥdժ?sYߥ-RO}NϧW*:ϙ{eb- dkX8~6V$WoکX0Ʌ,p6p   MaCDGy/ZkOJrr ʻs|5=z5o?ckbv,'8XȑYSHA Gdee6v*sg5 de1/9\rj= ` ;Qp{!I,kUUzZbʕ+߻tS٭K{eIGhj`෿}>}Z7+՝?g: tu.?~]8f#Bq E+Cm   BPC`Ji""<^[()zKK-qqq,^ejVA|ͮ"/R>4IRb|*  pJ\~?uQ|+omkwzJKYرNNdϞA|myy&Z۶VYu ¾};WNg暼fsWeyg6p ͜9=r<1[,NRSWx~TdeKR=8xPKQ2+GTz\ F ­WAAA[T`:Fo*|+om?^GF1yr;ψʡC5lN6n,bqdƌ:6d@ r+TJwont1lXgY`Cٵ$o~YSVId_Tl^F|$o1"UV8PbЊDUnBj{P\b !>Bgm   B+@?S{+fذP m\*0rd8#G)W󟻧5]O;V_5i5 `uT.ѫWzaW5 wyCk+&Nq˗H+ kz;Ȩh/_~Muߌnv7:N\@jJ j/MAAALYJ*l6iINV7,AV7օ u-Chg_u   pCq8\[Iee 2D5cDuX-K    B}ڵS2o^\[!fn)~?#$ k֬iPAAAAAr !//ÇOjj*{mAAAAAh" s̞=2MhlAAAAAne sΜ:uV4hJxz-^|EwNN:t(SL!00 6p t(++c׮]L<_7]vy^ ..\NvXxl۶mt \Nxxa^AAAG.3~>@VAc{c8R|37anemX’%u~Ntj-[4իpv,ɦYv%KٺԳ’%|>Ah 7}ҥK<(JO=e:qƑkFϞ=y'ٶmYYY̞=DXz5Ǔ /<N"33Ejj*˖-#&&L=zz+Wҷo_^uoG:V^͒%KPT5    -̈́?ag ܻ%Bo͏?ꦕ7d\0~|$s2rd86eBbb̙W'%%S6= O>)htxʫZQimZFvU,.n#|8N^z%~#HXd [n/̝;ɓ'_Gdd$O?4?Lʕ+رb^u~_3zh ի=z4N?S6AA[ûܯWŽb¨vlKy}N.2lDIIZS3X,NbbAD&6l(!"b iia?^doر*Bw ==S/ )QQ~('<\Ax"+X=,+@dwѣUyvND5.5SAaR] .ΟYfsWdf1`X(> &ܠntdOYaa!կ %11rDT*["`=5'%%yFG&QZZJ>} l4N̓O>IPPjc`2/0o&RyǼyr[fsq\5 YYHLTSVfvݩ?_f4MOlZ7#K@ p1o殻PeDG+22`~QgΣŏoM!S%$$!DHQAHEpЏ8HGTy*ݠ4606",  ! ~\)!cL؟j{ݷʮshZPQq9 wϘn_HbbaaloO3/B\`իka4?-)) Jjj*&3c YbZaÆaݻ71ƍcŊһwoOիW3rHƍǼyu)؄-ZT?0={$<<]E^H4NZͭGߐ / h ./ZΝ !2,x5'aj(*mA R37'̀fMؿLk2RKB+b cB!B\_uy(-≕WeK &+ԩ2le<GU(,tT j4jՑc',˓sVpSX蠴gegu Ej.?uϑ (H|"I3iiŕ:B&~>}طl$Wϫ J.~ŵŚ5k<;t@BBBmYO2{l^z%&NHRR .ԙk׮#%%xF)p)UV1vX^~e"##YdEx'Xp!QQQ̟?Z'<k֬a…jg2>}:1m4ŢlQV^[`RZ9yp ':vط+{ℚ|.(,T|1Ϝb7cQF9evZ{k |#Z{?+pN$׶GoֲB!r9W0z,XQW6oNH̀f ;Ά 爎6(VBqٳVW^ @׮DG1l򘶺8~S+ tlgmmYOL8M'{w<;uĦMӧ'z~=v;w5kƍgĈ11Ȳe*ŋ/9VJJJq ؽNuѷO'56;yRڲ:kYHKS/CTz^~[4>D'RQTO'~l10s%B!DCેXol뗿NtXלѨhPVBSёUٔEA>>:L&tй{sH1fKHL 8X4ii'<^G^Yiʪ1`ɗ֘57ϋlߑ @dS M-:JJ[;P<=/ @MUNW_\\ŢpOך[Q8 ޕA^@Wp٥քB!hƴ羇! ߘZ&, E8R÷Ӥ~~:6nlm̙VŏodaɡC4on%"3rlb6W WGLoGU(/wѪfL{K]uknf3)ؑ]c$*DTTdp߾'՟S<OL~6S@yy)Ѫ'@1ԥH J𮥧B! ׄ8ȩ?CzVp#wnf`ό]|i&.4ᇛT7Z.]6o%?߁#mֽJǺv;.=ͷcG_/?ݞfY3eYը{<%KNc6kşu+,ĵ& V! --~/2afN)BEDOR՘ʳWko4ԩ5@| ,+1B!׍V56=zXѣzB>X-2رr[nжOjǎ~tW] ̠AO<~ ͚.y6m|hFͮǫӫW@5ݿ^p24Y6׏$Xhْ(D5FU8K1Ψ~W4xa ػZh[5k`hJM:P^3bX;hAC1IﰄB!ή 7Nd Ͷmyřk4K >e˖1tG릢w{~~CշBM##T;j-ֆBor% llm^VB!B{tٴ)LZ-uWP}%F`M?ӿ֬YS! !uԒ p8ЬY}G%B!RBB5*7I^۷lj';!u v\yye宅B!B{(P;w.DGGwUj۽{7]vˋHz-^|E{ 2oooV\ ={i$V+-Zt\Q4繢(8Ocbb*eee?f37|FèQ`ԨQ)B!Brnbb|U)ܓS7;GqN/ϳel}:> ;v`ڴi_"r'y?+HJG!B!Duj1#Xjj$3Uk7;{a!%GW,:ϭ#!`8q"'N~w<;uĦMӧ)))vmܹ;yd1#FT:f4=kwŋ_r72'6G0?̫B!AIH0з^:Ǯ]SD퍙^t2U:Ehi >473NC8?JJ\T{!B!Is{ALnvm[_iI3EoQ*Z=Ek=8K2)9 sh붟QC' V!8_  τB!:bcٺn݌|yUǎ^ו٬l~ꫴ7Lo*rP}@=VE&>B 7 \n(B!6cƨ3 !v.'&FO~: q3Ӛmd13њ1ES]`1c7$Xh "e+!B!̈́ ~/ z6jU(zRv!nv F ^7P~zNxEHoFW" 55Çl2Zq]N`~*B!u(@JJ q6#эl B䛯|`LΝjb0ر#_}U}%nB&-|˫䩒G!B!f^o/ >b~Z2e t:BBB>>4mڔKR\\̀HKKcʔ) w}VEQ.m۶-Rk;wctЁYfn:q:,]3gb2]؝8B!B!'Xk\.SNe̙;矓ͤIHNN7`ٲel6~i Bd={^xiӦo{{ػw/1͵ƺrJfΜτ ػw/nB0`s.N!B!B!Dj ֜bcc9sI&aZiѢE㊢h<EpxϟS@JJ o:Æ 5β2ƏfPZZ oFaԨQDDD0j(O6!B!B!WoreZȨ $$Pku]|ᇗv @zz:GI&̙3S2{ly*cdffraˆ`,^3qD:3<dԩ,Zg}>O!B!Ѿn:Gr22H.B!B3xu:97fL6+WӶח2tY~)-Zy|^~9UCL*{28p ?&JN~|}3t:YKPQ_@"">]͹deUp=19SNX{{ҭ: ٿG X52w0` ??yyV1"1"; &BI38<Ǐ'`ǎDEE`zYk[c̞=^z'… uڵkyHII >>#GVZ[UV1vX^~e"##Yd ۷gŊnN>͂ <}qORy֬Y… Yt)M&ӧO';; MF||ռ5B\SޛDYqwYXߡ\aʂF!B퓏?yǎ1v `Pxl+I'-Z?> [7#:br֯/%)W|}uN UEH>>: v'(H=7-@vܙOϞ.CF\rƍ99SN˖mˣIDad]ڕOa=w@{cY&ÇXtϺuٌY)|Yt: +E "6Varٸ1(/w]wd~3ŧ<ϟ}9^^5Wt=Z!! 2S~RW{{ Gxq 4onҧ!JNNf˖-5>|cǎa6klk|`ĉL8w<ԩ6mҧO>vmܹJ|#F`ĈFZ]zŗ+%%8+$݃ 2r9}RXd.׋<⺌- 'M3<ٳ1oKJ܌`4* [!B4 y$'gѵi""[&N{0RP"-͎ɤЭE}M]ή]uJ^(ǏVJXhYڱZVZʪl2|x8^^WٹSM`jՓ^elpS6, N?MGi AlۖgӢFaB!=k3X;v">= ^^ wmBl'Zfw =LuGU0./wqDw٬I/Jܹn_m7wmCW11fnؾ=~=1۷",[7/$1105y|%Y53yj&$xiSV=?PHN~4k^s#=8e]RfM?TLӦF{W*v̙%' fU2Y*""bC(-:-]R"`ؚ!QrN' O`NV_~oi IDAT%UR" 4G <>n99p4iO=?niΝHJ2{w9~(HM-dΜ l6-6#|XPB!F y%-7߄o3ysmEӦ` U7Rzz F&MeL:'HyOrBN>,>4 SXnwWZ>%37oxb8n 45ɹ69[mرRN*c˖\vK`xpϞjɄSX䆮XGr>}:=EEE55v`Zi UUtTǹGxd`_!gb `ާ՞L$x%O\=5X/%.MhzOǞ5_+qھ u =zip0^y^~g,P PX{ްL'[C귺Nrs]ngΜ|"#unmB!k3XWA&zPgH>|y 62q~ĈpBB.wy3AC\8 neXB(;/z5ӲCdﺬXZv{^pѲNr'.^c޼z=̘&O_y~B?~pgЦ鼾1_kIIh4/gTjQ:bѰtimHJ2{ !BQ:KAQ -Ny//S0|}5IKukݺKhǎuy9KpeN^ς,ZTȳ[͎^B!i3X}}5ukK֓4ocRzS_cs800-ډӯ_v/(pPV梸؉jeEEΞ-r&o P^U+ &Ӆ?<53V\kҫ_E.]\L&-FJJ:TL&77Ѻ[avȿk֭4i⅟s0DG_؀``6k9|=ZRjM -[zf" DE[:bb,|m~Hl6z̸qXb\m[c7B߾}ٻw/hт?<hj :MK8p)/߳qhAPNZ`5iٰ?ns:V50PCӦ:RRR^}53 bj8pv{Tpy !BOC ̳ϞcժsжZR?OGN IOwл#7[{q{_Njӹ>jZZ 6RruTT0qKt:͛sw!"IHyyKlҥ?֕F8wnw駙hċnRӯ_ _jgmZp#wn:qf30xp%gUǎ,_~rBCLiѢE<,\(ϟl1(//gذazVXȑ#ٳ'QQQIW_-qT]MZvp:*i\nYoPkV$k>vuJKYN]{w}ѣOe22 5}=Vx,&}x|LnW^ 0B!\Aqy}płWۮ(@Jʕ}.8j'OKoƇ6m*>՟]Mz;vcKo+{24_dVz4>}']+iʛV.gVzV޾/^MQ.mT。i֬7nƬQ;w.DGGwUj۽{7]vˋHz-^|E{ 2oooV\ ={N-+dj19߯C[㚳hRjF^~垾~W#?FT걧R_|tXO7BR~;cFz7?A.|HNeCB!BWvviiŔ(*rm[qq[q)Dg=z &C=?HNW_/dƟg^z%NӦMYt)cvL‡~СCٵkڵ{aժUZ٫;wM62k,Gbb"x{{tR طo_uqw} INn|KvLl|y4pBc<6}sm{]*4夽/}ĉ꣡ vWtpsYoB!r8n6m%77VE 3wu陵B4 >_r:u*cǎEQfΜ Nvv6g&99zj-[FDD6~^z!Ct:9}4ׯٳ̚5DzҥK= '|믿}WkM+WMii)65kְw^qRTTĀW]B!B!'!!^QaqC5999ZL1..v&MjE+*ˊ( ~3^;v,[||G5YVVl6ӿJKKx7h45F[]B!B!BVZx8u Q #O2 6xfͪv@ЫW/OիW3rHƍǼy<aőE*]gϞcjÞB!B!~4kll,g楗^bĉ$%%pB@ݺvZ{9RRRgȑbaժU;_~H,YB9tޤR^^N\\s[o1Gy5kְpB.]Jbbbv&((iӦߐ*B!B!~~SOeeKB^F $:ZN…A4UY_X q7)Xzٟ_ey)N.' OO^{H||tYxcWt.6l8GZZ ee.thao@-/kƇ~343ݔ]k V'2-yN:iӦ*}I_n?x`OmΝ;kٲ%۶m1#F0bĈJnjF#˖-t׋/X)))5)|!0*\B!7'#G dFWbSZx|^~9UCL*{28p ?&JN~|}3thz . $"lޜKVVə3儅yqp'Iػw ݺ y0O?E[cQ'|ӑȑImE#*oe4^yX()q}{|p1c"1JǏOcX`={1k V!McdeAPP}G#B!?X#vʕ+wߝ5%l\F^F/BHNؽKIJ2z __jS`Csux⅏;] RMK+f3Ю/;wӳg~~Т(uqcgΔӲm(*rad05YkW>vSX$ @ϝwТn֬b,-;n]6cDV:|rNcJjᮻrٸ1(/w]wd~3ŧ<ϟ}9^^5oEr9z!CB<d &R˥N'0P^oe23+hT7lٲQFGr1fsmYJUxGl'Zp{U6:wD҅pfd(Cxh(.-н'm6rN;B!UT .(Pg~}9.L ݺQWMU~]b2(piiXhLvvjdeUpDÇ;ٹ3$G7C_>,ΩذN1lXw\|yftg{[3jT>pch}9O>L]kr@QpX)boq͏?+lU Qvv66l`,X^x,6lPc[c'3Xh4 L pu[&:r;ߥ;qg;Fȇk֌-[8;x0~bTkoߎ];*Cc0k9/@ž}4MOǕ=EEᓜ\%B!i@P￯e_jA51"; @`3xF 3u]bjL&-EE]8Qw`6kiċ:wxWFQw a[#c@HJWn. _묺~QcPt)m1'%y !B򋃦MtHfTm^&|}5IKukݺK6jǎUBzz n,t^Bbbg bb|0u=[J;B0GMlNMBSj*p×])Wa!__6otwyK` -g[FwI ;vP{B!B4D/Ν2<7ܢA0f/=w3 r𠝘=mee.\&/^^TrN.orIH&(@zz .Z`fLך =~FQK?&IKD'ӼMn֭ylt:;ꚿu>|m>Mxcf-v74Z.& @VTZ?C˖ބytٿQQu ~(6޽{3n8VXA`` {l6W5ns% hJmwk׮xyy[o/HBBQQQtޝ!Cʕ+سg_ll,+V4nbb"c޼yL>NqN2t:!!!L<ӶvZt2z:)n^vٽ% dewXN&p5Z\ձ#e۶mSn]46% %mx8y EcR뷎OH!B!ĵԶL'}VŸϻ<&c4*;ĪUUVoryݓS@iw=ɻn0rsf:wcii%lJQPǏRQQ,ʫ_]sV6oe_ rrsz$,̋%KNi&u[JuOB7~…')*rM~ xc\jMÍޝŧHM=ͩSe ruձ/RFFF{h"u… ZX\k[cg=z &C=?ί HJJBꫯ_2~xbbbHKK3/ÇiӦ,]~1`v;SL?dСڵv0o<^{5nΝ[lΝ;yhӦ ̚5~Hrr2,]]Nuqw} Iޡ9;ܴjz_}\{wuڌ`4|R-#/kūS'J7n0Ʉ6, %XW>~& uwߍ37W^w"B!ĵS~<_))\8VmնtmxuO׮?_NUwGǎ~z{ >y FsC*63FO@ qViWaGW*oK`ZQ.mT。i֬7nƬ'Xk\.SNeر(̙3f$''3x`V^ͲeˈfOK/1dN'Of={YfϓH=Xt)ڵChт"{= đ#G 1֕+WMii)65kְw^qRTTĀW]VZu?BNZ IDATNl>/\ΐY~>YSO?yn 㡢B:}:lINLRFcx?XvgFF>$ s0cYcpys1cINQ B!h`+͵inwm[qq7k ֜u7_3%=s &MbҤIGDD( _+(8O-Zxf?Gyj׮cƌ/G6β2ƏϿo. T-o30j(EaȑםSܶnb붬w-4/}ĉ꣡ѷlsqOؽ;nwQD_wAA.fٵ+tJ0=T>V>ZTڵ(Iuђ3gd|駕g 993gtt  4T~z8p SNԩSL4ɱ>ʣ>ʉ'={6+WdU^>s_ `>~ٌ? =4AAA!__ 50uX{$I,ZV˲eeF֮]``086Na޼ygT*=z4L8; s߼y3L8w}(6oޜHV\Y={l@ylU.Mק>}z   (n '"" ԩS8ph4OHHse̙8qVZUۦ`o!447xb>C:v숋 ,]5kжm[n݊Om>5+Vо}ft:̙c=?I֭oAAAAᶻgL:%H\|Ν;k׮Ӈs(9p]2^LL 111iZ֭[W_Uܹs TS*O!  PW#CA#5    Bm>me {odYXOnݵ,[EDVmMǎp|ʔvxT* QMd3]-^֬&}6?? 7^*0)..*+L&orSn2HHJRR%%6TÇض-zڹ0p999)ugOvQMXAAAA Im[qŋsyFj!C8~<ƍtƯqd!Ff JKmIP˗MޝMFF)C,(j" @Cbb#Hػ'ݻ˛}9ϱcc|M^;Νc̘1߿f͚ӳg3`A6kG3o5W`|FCZG~]CCAA'#Izg̈́3T-૯]KΗ8tĎDGklUT(sUjӈrK>7)oo':tp\zMu]J _[;wfjeKPP`%(Hr\%?ߊ ,L~nf;[fXKwod_RIlRR xafsgǎ`20`^^N[;ڊ|4"=[Ĉr"<׽fS;:;TF6WDzz)!!n0vXøq/xHIIAW[֘ ܡDӦ;$ ֜(wrRP/?B XvNcϾtrԼﰺz4g^I'97)X>)6Qkm s.U͉j /"o rL(?EEӵ7 [:n.lOAAndiRСr5> HJ2ItEo_8xTk]5kCܹ paaz6o ;یXQ #^3(8wN{\}aoF5Elp <=$$\ҥF@: pt!O<ϰa>ۗÖ-Q($ر UŮ]Y|I/3ftBBQRLxᆴ ue69qZƀ(33?ӼysONBB]vl =۪]hڵHz(pK|u6*|0.^,"'th_B'%/̹J{S-_e|Z^Q&e^մvJ%8NEݮ[^rAQ}>MP|K!ʪ~ϻ^-la  v.NZzb ̔Gzz*7/r$=v[ƣTJtJ M&ϗGW!)j2AqvVVKsx!BBtѕ 'O`9v,=hq[7:s,tJn#tFpQXHN5Vf@o/`slt#GX*da RG7ߤ`A2Fj1cvvZjŒ%Kp3Xj j;K` ?JDx _BU2pZ4w/Y5wOn8߉ #ŀ1za; Mxgtߧxo(%ݟ5x34m d^q$h =G`3376c0X,v-j2׹ʴli 4TGJJ1.gO68fB9X!ܳ2ҥvJn1;nWX(Ol̙3iӦPPPPmYc'w{5Gps\](WL4 qBa{]ʿvīi_>EqAm*]sC_&QFbaD6ي/h?b6)ӯYt<2vĦ-'MMa&m^MKiҦWO3Xw;Ðp0I`)kwyGɐ6E4-6PUKOUǥ!> 6k~}ZJKae2d2yJLh5nTZDѽ%\~9S68A] Zy_H %v̙DY/AAmp5vlcǖ߷DTWZ:Tϰazf̐?ܞEVb+r$7)B+ ?vYkIҭ/TVMLL 7./ezsrRм tfdٲVc1L6 4 ݻw… )_1|p}^~e222HHH- w?ZѵXlmNx f Bh{aj7O9Fۿ5E<9B:TنRmyG6]^֐Gv_3mELMdplѺތns>؞ŒHk#oqEc:߲ C' jaH8 elqr9/TY~gPxi1W~,08N_byBήU:4Z7LSӦ`toVF`(rsꖆiPwJ5˫%ym  4+GG <@ٶmŸ*PS\lgv[ykNYExNrr{Dllc+kVENŒ*t_:T* U6KJlY* - d%ZVAIͥō,3gT>n$I:u Ǐмyj~ٳg2e >>>9{QGtt4*zo_|p?믿3EMIo?g6˿ؕJaaalvV.PuS(iV*;J۬m>lV e]U!o.f^|ғ'_nE\՛?x: > >5B~px^'Jt,/Ζk.CH VHJqfL+Nn0 RKuCVjoAA¶mr0sP=k&uD||s?ޕiӮ2xpJN4_ݨ˳PRbЊ͆#x W|?d錗EL6Z2ӕ6 ֑THէ:wDkW7~!NIP"+N#$DG6.ݛ*Q۶.S.Tܙ^$4|^Ibb! Pv>8- `9v< ͚D WW~)Mq'wlذ'gI޽U5vw}f1{l&L$I̟?-[… ;v,Çgͬ[ y饗x1bV˗/c\‚ Fy裏j ^???mۆF#ݲZw+9*n?gj!Z^EvGv117۬Rqv}"/V ZNiƳI)^.l|˟_όhq-!k b "RÖvphZ?ǵPYyUu;;fs{w/s BBĉȼz' pϊg[,YCLde٘2ō,++V䓜lwo˖yݐ*?ͱc V)!c;v\E0tȏTS(3)-T[_]RIޝMnFAP)?^kWwo7r=zc6tL&ק_?O>WMȡZ@-}?ÇV:ureTLݞ+W2fVXAfXl#eue]`ʒsDD3v*/>}:ӧOp<((IP(KHbq x-;^NZZzr;A=QQq wYQ~mzc8sfΜͧEsWө$8{!a=l %jrҴu[n+x6)-GTLe- `m07Th\Lϧf/Q՞Ї?pL `\c`o|ƌ*bv.kWqiT;QQե~uz;urSӢC?/PH:|ou:eLǓ>}j4iii>?3gd|駕g 993giՎE$HLL''yfsr+S$&&@hh-'\,h.?q23v_AhljlPýcExKָz3U_N:+~k϶()PWBiyGPd1'vyw21-*';ǧ{l+l6$ t7o>w g;Wy+Ͱw7LyF}sZ뫆FFc7i:h>U{N}u:QAAhV]NG 3`X%ԏ>ybkEDDpB^uNJtt4+V䙪L6sкukbcc]o0o0aoM6?cǎ5gΜ9vZ~:tPW7۟ PZdM0(>.&"﹦Hz(Ec>AAA#j7.!4Rbm4uTNz;w̮]nӧOGn7>|u/fuWSbbb?A(Wcz734!rxTwb_lCi'  X ww   pg3X pWe~כ'b$"_    H=zʲz'   B8sLD*D&JFv׍Tv;̞Ŋ]˲e^DDk7dpX ǧL nNqm4tKw~?/k͚K\lgqN. ⢪d)7u&$%QRbMEX}=8|8m2o׮ z㘓__'z (H{k%bkѦMZ/-- VM#   B<< żfM?ޕŋsyFj!C8~<թe|Hnk'O2jZ@~i|dd2d+&4$&:{{ҽ#G9v,' p3jZxaoTX8sbP[ &F^ZCynʏ?'^\v9ƌi֬>={>ɼy9s&JrS]gyu1jԨbY,yGظqcAN6=*9%6V n  wfԬ]+4_=3x²ey|ݻkرh}mpu 8p __ \\T|yQQxy&%D8KϞkCB!U~Ukk,RSMli`߾ i=Z<[PCύlg  1t홌ߴqT* RRQ*a/"" lvvرL&C! IDAT ˉ| yG[qqOFlvΞ-b_xy9~^nɛ;;TF6WDzz)!!n0vXøq/xHIIAW[Vg̪UhݺuCC$ z(]M;F0-8U!-͊$%#I(cLsK =;%j%v_,`.o3t\=  RR,d0jT:oK`v&/FRN{w-}AMe,͚$8wq,)paaz23K6ש[Q%]}Kw:{pXÆ0n\O>IbbƌP&Og1#3Bk (bOlĉj owL>|8>/2$$$T[V_jֶmC喩T*v*lQTT̏?R\܌// y /gqh)Mؽ;>cE݊RctӰR s3$ _Xy~AA߻zJ\\>\@IC4m"3 yr =(Nme,JN@dq| zz%jޭ/c4gg%jDx~1 $D] pd6cH@'u{ `#gid3Vrs}ɧsg7ujBrrݯ2zsxKcӦ+9R1joIgd-Tc:7jՊ%K8^]YcwXkr!h44mڔK:ʖ,Y/㯼 4k֌=z0bٴi3g$((J/3f`H $uVk$I3۷GVc0d$IB$ѣGh4t)S Iqqq5^lfڴi8ڸpB;ÎR|yfU~rM+=z s`0hXȻv:ײw4.]4DG9tHa|Nu[Ijbb\+pBwځojbںw݆t[s E}e.  ­IJQQ3^zɍe6⬷H'աbEh 弩zتqBs6?BqJ\p Vf{73sl.1َb'?RMVҭL˖&Lhʀ^س'ի/b2% bc*#8SO=E\\w ,`tڕUVql2VZE۶m+СCK9pkh۶-*cٲe{ 4g}WYhZb֬Ysz.nAӵkaXػ~,-[` X~ m6!27o+yV)!*J~f%;F6jy'  iƉ%C.s,SX2.+%6xy`. iGmBG_ 9CXϓ]iAAA$ƍs >//9zC,_MfX=!Nqgg襤" ,\ ƞ=9\TBQVj2JezĔ//{DG7}4onwoObc((rd S9p;tp%!j r.\RIFF;vٹڲƮQ'mܲe ,\c2|p6o̺uxl̞= & Iw楗^_gĈXVGprӦM8;;S\\7[nߟf͚_sAzJ&Nܹs+۷/qp3ذa&L`pUV^۶mC*Vk~ Bc0i[-[BL ,YW?Sx|/ƍ0p l$PXS^NEGP@vYܙ=[u@~h0(ڷw":Z8~Ғ39!|{x;w]*)i @ҵUAD$3{нosvꤹ-''aV;EEppH]&)]mVEN|}o|>\\t饎*JEEFFcyy 3Hkjj Z%%7R.ns.g:6꺛EDD IN4o޼ڲƮQ`MMM`Fdz/$I( $aX())_^(..BBBt*1c`ׯAAA5ֱѢE GppSMnѢܲ}TmǗ|2c+W擟/1pvٿ?>8^,6;{.PS J}ݛ>^Ihhd ''zBL& 9Tǩk>ر*yy5{* S> ۛ޽{a&NwՖ5v?UFjd293usF#?iii>Vn~z8p SNԩSL4 u)k{Jkʕ+_h4_ҷo_Gyzz:ϏDJKKqrl6GXev;\˷]!DzCACX\qTФs=bz+=Sb4*8~Ǐ y6 vZ,@ɆF)%5YQxf)h:YJܿ^fjj*  BmdeT* %G;3oSeeŊ|-c2V9vݾV]n؎WQ$F5]ѥ /vB89*8X화pr[_]RIޝMnFAP1;woOL >2z]پD}"zplL65< O~|}?!h45"0PˡCl.vbpJgVN_JZ ?3rJƌÊ+h֬˖-CX֘5k˖-ټy3&M"**nݺhdڵ  cӫ I-BղlٲZSm޼9\s|||x7hٲ%'006sssٰa6<^#<„ ᧟~Gرc7o&66':3f ,`РA׏}1k,vZ'UhP牳 77C?g_`\كʹT? Nt8y A>嗐 ӧ7oky+L↟va\ ғme||ӣBkUM'\u_'4;Ъ$͝9\׽{:҅?2(TOvGy|5|xݸRhesr1#gAAWcV{$ܹ̝QyU<؛G:cFUv\h׮(wo~uz;urS'JjC}__XB!nE3BOO񬶝Viժ?x,ѕ]+-S(J_`]&88;wֹ1k4SLBΝY|9$$$`4'$$s2sLN8AV`…$''3uTR<5+Vо}JgN0vX=Zm:>|Xf͚_|qر#s%%%_~ƱΙ3ɓ's^{5u /,̅8;AZ4w%NdMBT*غ eaxޣU^tH'|S;o[ 9O׮y9Ǝ/V~OBkas%v\˃֞jB;Owڹ07~B:㛮p_w AAᏓYJR4ʾ}94ov,AIvݞ}SF#u{ٱc/-!IMME8|'Uv&oQIP Eg"ax{Ԍ  ЀV-_WhW8|h?ϿT!&Px§~*w+WL|ufJ0=x69~,55_U:>=S~E\\\I  )Q:vK =AAApƍysnAhLAZ<vAAALXAAAAAnEia    pMT*øڵk$r=ł?111AAzK$&6Ŧ4o3WlY_}Ǒ#At!1̎ 9dAc;={ϒc=FQQQeY 3Ix8tQQQh46mҥKx7$BRMJJ $1l0:wNff͜9 T*̘1%K 44_~㮮ސ!CK^,>>֭[R^SUl63m4|||h4tޝ .깹Wtg&ǷPAx8:gØ<Fn(RXh̺O50AA^y{+yyWv,&/FRN{w-}8xԐC;Bff& >_~ -kUW_e͚53yyyDGGs9z-ڶmˋ/H||V㮩ޔ)SWiݱcbZ裏?>:ByUP6YU^}U-ZDV5k\|z2?_f" e*Ĥ|Aq=gq4 22gz$w^=AAz*OfIM)bT2o^1IzzKLLnӪU+,YB@@xue]|7Se233Yp!cǎel޼uֱzjvW_}b/DV3brrrׯ'Ndlڴ;vSOi&)..ۛ[raΟ?fcL0I?~c﫭׷o_, ƍn'??~a{ު:U]_|jzjضmZC{ێR:8ji5%cRj#Ax%g9@x8}õ{,_e?Fsҥ))0nk&@ж-l͚U_h%~GBRbd[. &GɛHoYt'.#NJfK_)0]kУb ֎+g\.؄  wH'աTֽw]\{(Bl6saڴiT[5knn.nnnl߾"z=rjL>qn'|I&c0`kYҲ{vv6%%%|A ""͛j7[?&MbܸqHDlllٮ]Cu>9n'--^z9ʛ+%8e@(J]]a^// ֬?~ZLokرd9q `xI8{V6Rk1K>YteC.qU9RG4sH);<|kXt 9q6 zhJ9;̻ly  pӒUJS^2ta̘!SEQQo*`0rL'##x-kM.]i&Ο?ϛo / MHHp<,XOh4~zѣ;D4UX裏rE?Έ#Xr%Gh4V+&Syj~ٽ{7Ɏc$Gbb"+,.^\N-_z8w,9P7U^ O? :TƤI,N &F>vJyK/CoSbn!Bs8-ѩ\pS,hz4sƇ k8j\λC.^AAjneryS^t*PS\lgv[y"KNꚪ@Wv}}v4 \֖$U|\qDz@ի3[)%JI8fw '$7$$,yDxR*XjAAWTd'4</Z1턅yY}LvPrp5jhU?oooz͆ 8q"}^_eYchf?>^z H||1Rɺu*S:6X|yz'ܼN\\\Vv e3[WAYLL 1ekŋYxq'*<2X,6FPTl~D IDATkS/Gϳ{;7-,p}-,#٫?$hٲ~,RB; !QX͞27AApwW`W!$ܹ̝{ϚΝ;\֘5͸r [laŸ3lذOq2FB!=mqE";TP4Wf6jVjX] w7/c7QNJ \-8gvd]n;x=5RU*T搑@!"8wAlݸn;-k(Mrj[A&EeB2dNTURI "1sY+g')A aB!B!ĥM9re˖ /مRv"//>\kv{eye_}q8=ֱo+1cF|I ij{;? 2fA=/zf !B!+6:cƌާ,0:cYzzy .zfB\ZZ7:vژB!BqybZUUL&ƌ3 !-_0~$B!BeK=S((h4%(oѯ2M\\\7{5!DW>ljꇄ8paB!B!ĥoX'X,X7F=ԡ pB!B!. SͦMu}WRK/BDB\uuر,]گF{ආj B!B!pTʢ4(2 h+,<{χW<6Rٳi/.w.O>JyS|YɅa̘n\./VPUQ qiկ!55kŋgݽ{NcĈ=sDFFƁo ,_hQ72zh4 f2Ea…L4 ^}݇s ?8h4bbbXr%oQ%Zh4ϟ?6{9!B!KӚ5BB0u$6P9k>gkkCA˖-Tx#>__5TT ˖%0kX,A̟o0%ӧLvv6;vꐆe`(..{/$44$^{^4551|~رcyٸq#'NFq /VK/uދ^cժUN| K.e޼yK}}Ϟ=?eݺuL0lڴ xz}8k#HO7DFSuk=?_Okյpd ?_Weċ/;FV>PK/}lj]oW)Ze'OjU Vt"ͪU%}>vnS9sXbO?4ϪU[xؿ?iiiL2?|VeŃn1 z6&]ŊFb|ysY$_(/`8zE+B!mv*x(65^\~l\|g*NsFA Y<Q[oUv+8M`(#[Գpa4zh`ϞFid| ߟĄ an5vRRgIdfy*v#FY2oR/4Tʕi

>^kmm$44yhi͛ٸq#]w&s=TtA+ֆ62Gq59J!B!ĕd9 U5Wx >4IIx7R؞zii""sѼy?<H<̤I$'뉈2oMI^&!!#kёLcƌssÈq䈽㎋1qb8aaM$(Hűc/\EEE|>y9!lhi>;"Nr^wus#""oGyOe}[[),,׿5/2=?~8KWOcx7XnGѣ ;G??ijj=@MM EEEǓ֯6{CO|=}d'yC$b4v}~w( $?!B!BeCyaﰭZ~<άj=WPNz`+)+kVvl`wߝZb ",LN|F@Q߫ nf7-->?;sW0Z?V\^'xG}N빲ذa/cԩ̟?^}UF#F1pӫ뮻EQHpp00}yw7:y$߉o;`ڴi$$$K}_|?ٳgn1(?Lrrrx;;&&Yfi&t:7|s 6l2VX'>k 29'(*n/eK!B!ą%>_ǚ ٞz o$fz3QQx1t *+Tdf42ujW;cƄ.M &Fw^b F#ֲqFBBB2!7,?̤IxYl[n%""7“O>?Naa!ٌ9~y2yײJ-[X6~-[y'ؽ{7o=ztʡC8r˗/ܨ1yu]]*=WG',,kW}A\\խ.`k#==DP$B!SCS>8; wUUXڑ#g&NT*UzhBC5ֶ[[45{jh^wߵ*uugg|P_6YEy9r$pQ> l 貟OOg/Z9Y4i;vGyGy$_WYoK׭[P䭷궬1>> Xt)K.t,886{C~++SVnGUqϿ35BQqP%B!C؈./]n.m`}q 9=iR|˚5L!Q,@O#h32ϙӯ~|ux<> 45IM0vl(_H\p ۷[1Ԥ=q(0eJ8ހ^&11ѣRRcEE+7n`&ڼdebP AMQH-j fX9s&.+V`ffΜ9ԡ >*W]]3p WNSQ jU ӧGwsٶW_xt:J/d֮]Kjj*W`0 uXCJԑ#GXl =2 fBB4DF_XpgEW3on<+ڼ146qB!BqiHٺ׺vE!'^uEDsduNt:UO?a;AAJoiCd3"IO7ʷoRY"+Ȯ]6vq(+k!,LܹQ8y_@Vx@O {w;w|ryn60 }W$*%jL1MDFPX wLAy{2]NMmD+B!**x(P>ddIO7aC- DDhǎ98.f.\GzJ/mY00 ;vXy*?P +Wryy2'X]u0}z$ܓݝ߳ǟ\ ZJJn5˖%b6 Aw'ө(/o ̞mf(ow1Bʕi8yN;>1tغu+r k֬!33{[`oH_KTlv/NgפjE9bh,B!_ᩮ&$%6]./'Oa`Pd=⡱LNr-Yݔ8Փ8&eTS}ƌ אF|#Gp}\5ZBFFg'810 ӦE1{%Gvv6=g>(**Ȇ`yM 1N5n NjJ_l6ؼN'a\2? nΆŋrf+Gahkkq!B!/~m*ݒ'*3/32 ;<9|̡ kIUPjjH\3BL{&YzVOle"rf374/lB!B؈.//`m;p^XI[֬A7e u+Vкs'Z;Wx=tX^,/omD?;[59YOq+ر|u#qq:5ln`Pv6A`PST 2RZ=TQ`ʔp>^Mbb0NGII9?w**Zٿt7%+3;>qY,fΜɻˊ+X~=f3guhCJB\:jd t|TfG6J3+5ʿ\ϼ8 W2B!B\| :yh?qo TW㩮FՏ%N,NU'X7mg\cryqq]C3̶mVʿRf_4FSܯo‰N>p &r WUJ>=<^~e,YڵkIMMe <IUK̄h/țbwcEM+j ;cZ 9Mrjj[{j򊓚 aaPRXp8{oGXo(B!e%csHcy' y=>n\(t*լ\xR)̚ef֬ޗeg5W'3qb ;>=׾{s-1}wBi|b%''}"!.Q6dTf9M]> =h஻ %͛Ҩta0 7Z 7 cx!B!B\ad7Ysfێ e,"n<}P\ٹ<;aڴB!B!.o2U!B!B!IB!B!B1H`B!B!BAB!B!B J!B!Wc۶JJ \A|_[YF/^ȑ>vjjzT {/;w{n gp&3XD11fH^9vK21ѝ`|/vB!Bq>_׿T>!AMSvz`fֳwoq1aQ(/o!*ʿ Aq #6l CFpvvZ%hG]][n[na͚5dffcuVLcق : Jf qtxP-ຈ !B!Wj}٬橧l$"Ÿ:x@V]./'Oa`P,Z\>?G5%TVX$!}ފ|dggs8[p'3XDmR M 166B!B Ul̛磺1{y8 V75#@q] IDAT/J}ϦKwB:5M$=ӭl\Oc;0;W o&h^'xG}kp' V!.c11z?6cM|U-oB!BKSOr֯AmϦ{& X @t{<>ZZ<..vpxxR?tzuZ >^T*P5AA%%vn'-̀ҿ{˘h@VS[[ƍ l5-x>RSB?.Ǘj:4!B!d=rF^}5lV0,LȑZV3ͭ&N '>$'x|8;7d}_UWAU=S'Og߾Fw0r).]#GDQ= Çl϶Vzo=˖* V!B!m<Fjaa;&Yca<ƣֳ`Aji'#C˜9nwS]7BTT%%N\./FM;LBX #_( +ba̙Xc69s&DzNnr%p޿B!B!hm=GSAA~{DpBI3|Ql}ټW_`&&O,y)9 iyy mmHֿP&N ԩVW_~|֮]KDDׯ`0Y6 V!.QWO0!2¿ %o}V<ϋFZ lCB!B\t|i(䓑Ϩ0 4bkldgժzo=hB!B!L`?z-罓'!B!B#I !B!B }Q$&_hrHU!B!b=1)F7ZAr;CQ(-ub{]ؿ ,kرުg?Kov7NF2v:>sl$>Pn4'u|?cF$FN_}e㭷*y j(//gɒ%޽T֬Yôi,$*EQ,MhFB>KӸ uH{n|L8ngǎ77nQQ'O_݅ĬYٜ0!]Ro>d&#cP"BM|a,Lt{]ls΋b߹Q7GfFGo"77Lrt޼(ד8n`߾. i5*ҩZ^L] fYVuNjjHIϽΝ;Y|9veee ^ˆ3I qW;'_ 19&ƌ6CQ`+';ܝιj\crLjiuyjwG6^Q >kVcĈAQ}ljǜ}6mr[2k?hhbu$$dSu݋'d6/F2In@۶ƢEؿG#?me۶׉KcԨ)_ק8;w Kh9vl$XBѧ&/ ( ̞g^|`R'cƄ=bcucaaF5UU~'Xnj kk#*k|ioQXhGUX.\?QWW֭[[Xf ǣ^lv/NS5HZj&zu\NJ4-7m^#&&ܾ祱)5WVw? f19w1:DΦn˭J̨ݿ,UU .86Z?gp8ٱM͸q3#jDZ؁ᡦz.e19'-|zͻϺZݎFB!uuf5O=e0jjΝ;]ׇ!,mNd^(V!'';7:jU"sOB`VGG5|̒% ĕGvv6==IUoжq%^c8v5h"-&ӴT5 5oh Egoy&X_ACC:Ӎsl;9u(]l3?}>UU%dȫX@44TJ1JD{QÆ^Jn\bbRUTdq|1ŧNg,ilkolN_o4mm͝Kttr' 9rd))c9y0͝gUP9FMۿ%8M*EQ]HD߶mEzzn͛+ړX̞=ȸ. G@Z+ FAXXnw{o8vl:sECCgz=l574Te˫Fvv~աsv]'EQa0=MلC_IN.pv|_7o9nw;7ck.Jvv>:|>B!DNNgQ7F5e„p^y4ӧGnw{FF}8mZ$Nnezt|8y^x }Qv{eÝ$X8|SzV:x\G ; txN)ya7ޔ~wc4j04ڸtujZZ<|N;ӑxLrC޽9IRR'/@piVلNge8}_6[ ӥ,7w.{y?2mڝ&m{/"":pɓ:̜AZxBC#qx<.IƆ*F={P|vSb˘6NOq^O >/'jm^O 6#F&**Rv|4o@++OLZaw}΍{MPs$66 DY!|>KS9uo`|m"B+*ʟMpM.4r%JmyMZZ:jiʔ?n6kqW}b b [IK3rm,j5lܸ^ˆ;I qfg{1o E})}/_ŒZICC~'v P&Oeę| 38cbRx(B[[ Q!,?VMRRv`p ^)ꟽ=H[[Kc7(*zL=4-^{7f|ˤI7fw\_J^sEQfB!zbH-|e+|Y 'CoRS 96-KB2$DMHլ,2ɍqv_`5n wO&Og߾Fw0rdȑ#QGpa233{-$*yVm*qc~n^."7%V2%uH22"ɈҁjkkD-&/|>L`Iq^B]v^{;&S mm-lv&ew|>;HIKpp'ΦN Ħ:^oK{Ĉс~(RS|44Ts7`$h;%=J6bcSZ[eV?} /շ٪;XEQξ<}vgT:UWJVk45PFUUifYUwJu|MM9fs*B~y0} WsH;VI~4_&4R'11:RR憱gO#:L&-۷[ Ӑ?-M޽MDEa09p F!)k|#Gz7`{N 5C$nX #_( Vba̙Xc69s&DzNB\MIKQڈDf֠KOp|U֢o:O'WC[[+BC#6..nZŔdލ$$$993[(,^HmUZCLL "8Hll*{hi/ :F"Pr/2&ٰa 'O6[5Xp8lDe zӦ8/nD_>ROIfFQȑ]G;SXKsCo}vrJV ̜nw#3NҌV;gYdeM9S0sNG|46v(&**/Q~}:_r99yܹgh|>9|NIɁ [Cd>(/?^!B{pVk6SRfL=WG՞&4ۭf%X\SFc:\./:n=6psزޫGLLKH) ƎXQoӱ<^ʼnxJ\/d֮]Kjj*W`0Y6IU DmТ+xfU/Б_N 6K̄hxMv{ٻJ'usimuo .ßs/~z`{TjHJʢNyy{nd„:B x44TQT 0M(BeqGr3k*w8l0judgOsGRZHH $-|]Q T__AX9𸼼Z 6We4S__ccbcS;KAddL$7wN-vI \-xn+44Tׇt<0qן&22q8ldFDK`#Ǐ諒#3TV'&&?k5ɓ|.Ip}ycqhhok_?&>9V;v{yy gl՝_OTT0!B+OFݯ۶y{cqmݖ) ̘Ɍөz _=^P+::ԩ.z|h.rHNw{\\پ}ˆ3I qh+66)5#ȬFxJJmPg?__xf{;AQRSBPNru[UmUU2bn3ׇGVV^Vk%uu߱~PԄHMGVV^ ܹݻݻ?$<fqeUc6'AeҤ3,}>;3fZl֞x/Fc8YdgO Fx>BZUlj¢3h[Zimutz~(()7 B!CFB\ A[}x۩K*ϟAꫯ8}4zG!B!ܔ,z$ V!.Q(/.uV+wء^PMMM ;KM6ϙ3bΝ;9z(˖-OGII ꫯ&))iP DUUQQQjt9ڵcraYYYr v؁jd21o޼LQņ 8}4L&ΝHvvs1/^LTTUUU꫌7Zl6;z(_~%6PΝKJJJ|ˉ ֲn:JKKZ3a6mDII MMM JKKQe˖j/E!B!-疟,3^%*eN2fv;EEE=בxLrCqaɹh%+++;ݷoj,[ FYx18p{+V( Nb IDAT,,XFa˖-lڴ"""x<j,YN 0zh)--&'' ?Χ~ʭJBBv_>` n x fsWUUHJJbԩ9r͛;>2gw لZ !^B/JDx(xĻS>> .]~>=Crr25d2h"1b3ˋm6lBPPǏwǁP~G&MHNN~άl]V,ڶm[~G?N@@?pB!BQŞ9Q$: V!j+W9=77~;wʠA*jZ}ћӿ2wٙ{#__b7*ܗkVhժNgqz*AAA 2߽{ww^ڵ]v޼KkӦ!B!nVwp!%_ BB^^.4kY=n$Th֯&B!UHB&JV>5&p>-7قSˀV<Ծ{/wj¯e_&BB:znEEӔB!BIdгY.Z-|8|%aKC:6S(u<@]gC*X53/n>jy'ެ?zWY KϤ0U4@6R|q26Eם|RK,Jo |uZtVAxs\*gSrI[xj0xiV~zu5Xv =Z8NfL3"|0[x_ߍ 9\k!B!:V;'27^#[Y MAso}O=oͮϱIAQ4jy|rv>>\+ X;kK;3 ,ZZPzh' ld׹kD`K[߷_Vw9c¼i//RV:CGR*jB`ZŅ2l_5B!Btz5|Sϕ6 |8ɽA{>F_w:Իp!;6l^n: u X 9?CC?ޅ)=RF.?M˽U=C(&ϧ2Ћ|~}4 q;$*B!BZaM|>s7m;5Sq`W{:?ڥieN%gq_nB!B!UJwpKqMǪB!B!Pzj%lU~jBD&IduGt`\15 B!@hhh.\P [7&Ԅ:MZB!B!߅ J VtpJ*+G$E[29r\C!B!`jeWmKƇ)qJ>J?`K[.'//}OI/8Ηoj$U9tx:vXB!BZ͑*U!*W5F`RL8H8x帻sYwi`k6 ztmb=a=qmC5塯mO^nu VQ8"=="Cx !B!Dfs͚{aEo<:kF1 th拗[*_ɤ2J$F՝5$* Gput@TT~)QQQ :w˝B!B!bWȵ\#Z\nr9;x̌"Uɳ t?w=rUI'}׎Kn](.$q-׿&տL:ã>ZԩS%U!B!f'ג{af V]ڗj4M4tЀCG]iUr՜}" W3W{vnt }Z\=z46lpK: c4=z*B!⥋]!{X6l bGC%|1;k7_VMԀ׵]f{N4>>F/O>Ĥjބp_ySV19.;g0|՞!P-U3HUjj6m8yd_B!BܚCb By~2dl3c0M䚯aD97WCd_V5)`HرLi&M|kn.>;85sڣ!A{ﴉj Zqê%)\ V@T )^* !B!`OLy ]lkͽ`0L-FSLM&Z7 NVMˏԘ:+\*!gcz^/aK  w:\ :Uǰ|aԨQ?BB!B`0Tw5iZgBfg9t6z^545k{Z?l6#h XF6.:#㯑n6~n&{^K]kކQͯg;<&%pϕiON(+ZkU!B!5|VŊn-: Z 2W5jPՎЀv{;x]Q@~WW`Dzkϓi1O1WvMǽ{7ܖ܏NXEQVw B!B!jE]Ⱦ) EA5\iEKז(P _`߽K;|}4m ;ۈ<#<Nq90=+HxjAzӲoUJF r6ڥSn%Z2XM& Nc2)ya+de]CSl{uWQ!B!Ud\ k=ȸWvSIjŃzۍٽrOP#{cY=zw^ֲe>""n&u[k"B!.iݔ>-hmhmq233ʼIxN^.&5_l.3 h:Q׃$8_] XVW '46ŋpuǛs~}Wo};w°aj3* P 7߄[~45`[B!uަM +9- w$ī-|p+;Y]ڡӹ`4quu-shyx(rzØ$ε/5P V!Urr:͚o]bР{jՏeTTrs[, qkgdAL:Vvyt:8w7U+3,QgEDDVq!oNXXXIձZ!j[=0ڝ:lzUёɤj/A~><$:nL(Sc|РAօ a6u٠ ={`":w#aXX~:,o7Bj*ؗ^R/oW~ xUuvg0|:0e Lٳj yQ TVR-Z0k\ce]hҤI$$$өS'ڷoO``ێ}q5j\&##iӦԩS`֭vt:]Իzl6~i4h{eڴiyvJΝټy3o }Nۇf#::FS%!BK/qƍǶmۘ6mwݽސ6ƇSSd3d04|4>L7 %ع>>lhk48EbH0wRаpEMzB[WUi߀Alڸ*W)~Uw*TMl@UŅ /ӭޢxzJƏͯO>> Ǚ5k'N~<޽{:t(sΥy̟?{2p2[oqFRSSc̘1K޽s7Æ cܹ7gy\_%˳wk00q+<$/[D[ M1[Y)51a&IQ4_!.!LCuW7@AXlvlw]\~OϳejHťYpNjܹj0s 0QX{RorUR5 \ @Η|g|9xx{7< }@&j6cjq?ә3j>jx[m_ttkB^at4 4Yv/ Ʃe[H1 dhOOOV\ba4/|uYd]wPŎ+lرc4k֌Ԃݺuc4i__*!t: >O ...̘1h^{55k ӟĒ%Kx衇hذ!7oW^L<3<7|?OfGQXj 4zx"##ٴi˗/wӇ3gE~s.WZ=`c8q3#00Zh[deJ,XOs]cnX&&jjqJMHغ1&Inu-nV-]! 9z }<k yZ kjQYy4\+%> g矫AC%eqdj4VJ%dR/ۢ7/{7jTRtƍoN%m_Y P>re+ IDAT)njĈlٲ;j*ΝYb&L`Μ9UZR;!r wtR.] G޽9pX׬YĉZ!B޽{L>I&hx]0ˌ7!C0`lBÆ gɒ% 2Frr2Ѥ2sLLB>}?~<7oO>(»SO=P,_gݜ}( ׮]#770arճhb%RI5_/W17w."9ǹl7n1a~"g58&&l: !X&ftCF"7r4$'Ҵ+()zYOBL7PAIGڵtY}j?6ٜ'jM}P/]R/_A3@߾;Ő!CذaC;w/̞=?>}0<' *^j^^^a߻u놗;vťH_QQQՋKU!E.|uՂg~)))4lyVѠhllwd8ߵZ-g7db֬Y|Efb̜9FرcY`sY^hҔ4ͼ9.ɞD6κ|%m7͟ǵs((zb~0g8E!nFBTHu_Z i$B.>^}PVl;wX^V,j5h ;jT 92D.UG5 -<غt:5yxG}v}~Զ۴ yNuʩk6f?9_g,#22'|ndAիe˖8qGᜧ{< :+V9-88իW/B%>'S Nz:]3y2+] k֨}Snڟi>˞4 >P3`WT~^CB`ѢV$jsmv:>Sc+جYHLL~ 11~<={ۛ4iC%88o N7֫SNfF#{A3r"t:N/̪UB!D]Fᣏ>͍ ׯlڴ www<<<8~8:u*޽{ec֭t:F?=z`۶m̚5[G=ܹ$*I(b4oka.+Dmj*q |2P. X fE}wL^knB!BT P5IXϭ.'BTtn `So(``WB!B!N`gS5~(vMAp`] j0:,B!B!n V!ɣ?B!B!57E!B!B!DI$*B!B!鎺xw*B!B!BQQzQk ꮂB!B*%K&WB!B!R%KV!B!B!M`B!B!B$]!]Nh4VwB!B2`B`b!VB!Bܒ JT(6=Ҏh4Jp?3*dvYC~WBq7^y /m\3{R1Oyҥ2ѣ{TdjAVQy_9]kO!B܍4(wzw74V9Xy=ҎUٗ.eұc٬`ErJJ UAڸrH,wq7nB!^VB{Hpj82DQİ*Q$vit:ڲajUJJcǮ)8~T8zΟ9w.[rܬ]vk$$sǹWBn^>v k[ݍݸB!QWM&I_Lf4nyp`\zUVV*3'mdk#/Bף骡fl`)cvLSNQÏqww`deeq࡛#e8CtފT>Ӟ<%5 E v@){̧ߪl-WR[ݻ@l6Wq鈍d2ѥK| VRZ,6R3IE `ٰ-]1x{a0huTYpwl6c11͘ff&ɌblR>9nB!ݠB2Xo&33'~ԩsԯO~9u8o7U QmV ,Y|U8ē[ {6 r;G1LmUEV1{w}p>_ce䒑K`}BB χzD_Uk޵ ٌd"ߤM&|3|1lb̙]e!BqJ *ogHLL!,9$4 ^w4 kW-bܴm۴cs ;FDp2n̈L>}'6o̗j|Ŋ,]E`̙3W /K,jK8p"׷ 6fR^6߱c;-b]}e wpp<޸剗кHM-ARRRz`۪ŋh΂󋌿v3mӚ?>t2jB1 R 5j2 ƙ1X`AO:IDpwCTn( Kkw!BQ~.Y5?}a&))EF9DÖQXDzzٛ >J,رc`~2l xl߱&N|V  ༼bلbl*fbݺ1|Μe˖qJZ^Usj_;.7??!Cr9>M6qA6nڄOe0` =?G}HDV=S}9rF$6|O]>o&*|i:YozIÇϏz.nѴ LV,..:~{GPgm/qÿ~~ȴK<=u*>gعcͥAR B^>Y{}t{˳ӧ/ٽ{ =]Vsϲ} n(j hlv-yZʠQ@ n ,[]߯hס}C=tk׊PA=k b92|*t۶Pz ouPS22 A0VMGrQ6mt5jD߾X~m_ 8'&Oߍ?/lQZ&oq[B!*-U}aY\Irr:):G< 4/~)?? o_L#==?_É'in"Z38p;gÂi߮-}fϞ=L 7ٷDuF֑~<PbfUiYXLE2nV}qcx:e ӧM33gīʜƛoh"Ŗp֭%44o}Ǣwaܹ3[l&-->;ᤧ-[FDp~2ۭ(>Áп;gΜXbSYn72>1Xf/G?Xx _)SĪU\x˖̞378~(pk{UcH{FyّԐI4YęLŴ1X,g7jРgFnn.vcǎ\don6y۶mۇn]Q߅j>(`6+t+WlѴ_K^DOUo}yMuVfg?Ņ 6ТE a˖_ɓd„9r8R"nEX /Y‹/x%)0c,z-3|uZ]bw{/1 4Zs|a۶m <|uMѠv Ə?0s_qeIOO';;Hu2{MS3rt9s=g 4(sVҶqF5GY͚"S}+B)Vb%Z.r N1DfFII=wZnlO#++\efMΝ|͚Q޶,lӹϻK)F5vĉjٌɜ_zqUB!(]Xث5Z,6;iY%peRR2HNa66]޲% .d>|q7[СC?w @tt4{ۛQQeCimQei 22/^]d#˭MpA> EQYnݺugs=[jPصk7P|Z-;? nyqv>ٿf|i0ѩup6= :ŏ?K%v?ұS'v;G%..l:u~MYڟ/ng1XRgf%#11tOW*gNSŇOff&qqd&NH-;"uutq^`0 իHNNK_#ZpeFɸ_Su߯ŲͮpOZd!ec6D<kZ>?^gڴ<3 `(ۦˣQh(Ś5\xx.]D||<Νٳlre}ڶ=ذa=ݺv]vر7}(6FACEF!4 =7-ԩS+?P|%moO3qqqa lظQRyRlyJ-&}L2)߄k7߼_|QnfXV3!B!.;N]lHg=>mȸFZZ&nnz.^Lb*$J6?_swkB֭]oI^^... :槦Laԧj|ч̟sARSSoi+7nܹݧ/dzv$'go̬Z}gV41zɆ xj›oU)w]b9fӧƂ,h,̎nK>"gdHݘS D?3d#eC(Re'N|YF^^z૯pO׮酳 )WSJrKNNfR1G%eiS1` ]OFELB'.6~:Z'Z>onf枮]iɆ_P mZo6[wޡ^OTތ~v;ۿ+/ t<== *sPx~ڽ'&O~XF Fx:vTfv[EQP 4h0 ]y>z@WҶ_| KttcǎG'՟|Rb͛7'* %7o\j!BQ\Xݭ1`#- >RskU$Z֯'u$z.n펃_..[?__֭[+Mb2J͌)OV۶m+% `6Y0լ= j6c6[MjJt77bJZI.\ !!:83ݻ?l63hGUyڭ(ϲ"pww'44Xpp[a,o;GҲ;\Rd|NNjYr>X|yh7irkUgHuA >_Ͱ/AM)v4=):edbevܙÇLǎ's?'\vQl׮ץ2`Xh4 m2{=0)r%2wQ >w7yQv؎juj9ˡ>b7O?;ehZ&Lֱx;?VZ y IDATNs~v*&Vbj4hXe5%^9(kyoM0h  @\rmEmmjj⊂^ϕxv؁Fv;<, Z9ӻ%og,Xz5|+EEhژ^fdž߭F,rFMPbmРA?ˊ+)YҶ;ڿUQʻ5vԂ~V-fFW5q܄b`W{ve9۶}[jCB!k<.Ť P/bE㣡K zӥKkZhb#j68^?W{]>Y("Z=֯lԒ l4||#Gvwhтx̒[ª + \%?nnnXV^ ;v_ MYz5nnny|Lgߙ$"# $(%Z)tJ7}ڢǞVk.R[H$Hf12LM6\|9Y=koD%ndϾq@VVgϞ^z6V|#?_IUUYp!&.]_TNNN:L^_ W#lAQ\ks?l)͚7'zu:tв5߬)gI:u ^o3yezL7juݛ3$|<<<:(L>޽U6~!~ /£`AY 1+,_͛673F&))[`͚oQy)1EnLrOA:R/+\LNntEUM%Xi_m7-ϛsc֯_ԩ/Z^4 INNިf3Ihg''|||0 t:F#ZDcwV,デe:FÆaxzzf4Ki BNzzar.~ҨV'OyuKxTvر̙3f2+ˇX- 7qSjIu݋B!p`i6[wQD;-TGv+Ws6l…T L:t… 8a.l߶ Ν*u|A-_^G=sO&OZ*rrr9v(rUªjժ曯yGZlcLjo߾6P.t:~{y܀[Q7::Y\vƎvS^-OzZZmPf-F޽Z"\<ǏVڌU]vUuT=sd>Lt 0s& BAqqkjvɀ&Jl޼9ii1id;~y5k -+ܵkW-\Ȍ/=ٸqCc997V booojԨE\\xEDG_q6qm"}СcMgQ9*v9koΚewJl&!̩x\cN:cWس&rr@qsўv#Xh/ϘA~/Va6^]O~6EQPrrr'''EAUUrrrFӑKE.ey, N_a~W3P&P5ӰQ33sj/ T<G/Ɋyޭ;ׯ/sSLcՀcMfݴiSUu B!w UUQ}GRn=x$Dvd^ڵݻO~o_uhڴ)K?ڵkn:חvڕ:aa5T6l`)OFA|W\ed$W\y״ę3g6 / Z麵VE+e='xӯ_?z#8pҏi?7_Wk2G}Cgaj_}Ui7ŕ|7g";W_E379l6nLt燪*(?ԮR!第%// U}r뙋 ^n*x{ŋk_m71o|rsM||hr]6EQ0b6h4t:pqq '''0fٺ;]zYADE`! :LJ<΃v$PjR^=$[_';iԨ~Mg嗫Pr?Gq*S[70 7&2f[&2% E_7!Bq'RTUU e8PҥT?tƮWlo~\x׀[+J9{,aaa['kyaƎWa絧8w e9oRC_U0Ursl۶~/wΚK`U b8Q qS rBWEg)ZY>d]hjW˸ W^%00=zoT]׬6n#d6,&%ImFU$߿%] }iVr6Q_SO8 B!w+WVyP154I1A0i6`(aaa0^K,q`$b7̜IޜȊ ikNܤ(Zi֓nKݿ! 3~/?^qq=nݺ,]-[:82:99{ť,#:׮qO3sHI'ɸ⬢I)pZbuy-&d2YfY1l(ɼnU51縿3^|rq#11wfrU!^R cTUY1ʹn!1I%o[FTE?vw/#t m͖O3dž}ψvtB!n[Օ&Ľ7V>Y-UUqrrbl $33'(wDUQƎW^C o#(BBB]F'U>bufӡ쉞Ʌ\R !Bqgm <\tk%[u:8:$!\]f Q}ڽsgc JQZwEU!B!Nt5e9$a9W0B.`VAL jj jq(B!B!Bp$Wh2{׀]+4έ8F9%ŭ[+pҾC9(jAG,B!BQBBB?\e˖H+/l@We;nAq.+qZRg%.V [MN`ҡ$~搐B!B!*R^r4I֋/ҥKm׭[PJEY\]]N8EQ5޷i۶-nnnxyy1bkم ӧ1fK̙3EQV`￷+,Z(߾yO?Tl|ű'Eaʔ)mw(ݻi۶-xyyѳgOΝ;g-r yL&wm>3k%Khڴ)ZEQHHH+v 3gi֬l6[/B!w&UKdU{ .OPe?p|-[2}rαN8رc dL0aU*Fc6FcF` h`40sLjӒTXt)OɤI/Xd ők2hh4S|"{ԩS RRRl)qvvf„ 駟;wgϞݻ.]w^kyٴi[VZ,_ɓ'#55eEwפI&LK.5j԰;qקʑ#Gx1b[l^O4.]7͠ a-۽{7T^T92&00>}pyf̘aS^B!L-iٙÇK/͚5khܸ1zZ{ND-~:;wuz0L4`j׮ͬYcdddЩS'RSS =yxhժU8pov),NaÆ;6lHڵm:_|4j^π7w؁< ͚5#88yꫯDÆ \~':vH`` M4aҥ͛1̙33fΝ;̴l6Jjر#{챖͚5?Q8+#1рh`4||F#S^Ȓn$X7UEUU\]yGHJJq 2i/dIjh5WBq:upyTUۛVZ͵kר]u;777-Zd]ϟo9z-f3˖-#&&oXoѼysvɮ]fժU6D5jĖ-[زe 7wױcG-Z|XyyǨ_>ՙB*U7jԨٸq#j*cԯ_iZgFJ7[oO8fpٿ?...,Z挱ey~ !B;ۙ3g ]J_?YXNG}D\\5j`ݺuhZ8@FFGw㩧`ӦM=zÇ/_ٜgժUxyyᅮV9l}a5Ÿq㬏;vȐ!C:oÆ СCmwww6mʯJlluzM6˓O>ÇmQR\|M68E_)k֬SN4oHkԩSdggӸqc6l؀^'((ǏݻqqqLJÇo P`RfMZhoFll5Y]Q_!B[<<<={6SNC6e[lO>1L_u4h@vvU[lsqO_{5BBB|2ׯ_'))ۇWuNF[oSZTUT5k`6Y|9[e˖9lPl~~~$''h"&Mɓh4,^ Ҽysŋظq# SOY;]]kLZܹ3gϞeʕ$&&XǶ5ԯ_O>D쉳2Z{j14h$ ʗHNMpͯ>>>`yj4(P@}ow:u`2غu+w7[nlF>f_{Xdff`M*##OOO뺼pwwuSco|),Oy4iiii,X|Mf͚;õkKx4iwwwrss1 N֭quueӦM̛7F{W!B!у/wy:/Xr5kִ>R nnntHNNf֭61\]]IOO'**sOre sTVT[A 6Wjϭs@x{{Yjy=΋cIJJZj˷ns=G:uF{#b߾}ٳg6loŅC UfOMOUDw#rrr=Y1Wh,(Xzt:@5_YnX *:u?mooo[6cĵ$t:\|ј/c^o$A׏Zj,m|ű7qG)|42ay~G>Cyk8++;vOu:[TwoqX5/NqB!Ľߦ}6ƪU ;peϏ0w\KСCp)?ORRG>+tyʕ2}88vZ2t:[nEryiذ!G;$ǩQiii$%%fԩShтSNhl .d޽өS'k8..G}ٳgo{'Ocef6b̹%jM1 *c`0ZrrrxkWڴiCll,GբhP2D"u###W*ONN~~~TUWVqJ>̴[.矨ʥKpԽ8pB!Ξ;K$ _&ҳuÆ ޽LfΜC=dsh4ҽ{w6o̮]0 |L2EQشi< 8;;cCA9gi'X22V}੧^cԩֲ(rssٿ?ӦMcɒ%ӧ...L}:;wdlvg IDATذUU믿8z(7G!--˗/SO{+(E]֭[ڵk޽;>cǎY3JO6499qɓۜ8q!Cc >MoߊB!c =1cꫯxw5joߞŋ[۴iCXX'OdL8"##Y2ȑ#߉ٙ>}0tBc(eQfBXx1j7Df͘7oo| }Nս{w|M,X5kh۶-s)2\:uzj^u}]y뭷۷/tR_ҥKӧOĉٳg}]vg߾}3qD.\͛Yj5kdѢET^NKՐc$ǘ!{a0X jzzzvJ}ES5((/ɡaÆQV- FA5s$_Q;`=֚5k3fLcBjԨAJJ $&&RN"##ٻw/`.X}ĉȯ_:w}oÇt.\`ܸqرgggς psscΜ9L:ǏX>`lB݋899Ɖ'lʊ8__:u*BdիgWݎ;Ƅ qrr[n,Y+W;v,7oŅ'xsjz*={ȑ#\v`Fj{Yf~w^"##O[XӥKoΙ3gX1b>7my!BqHLL57rFg-=V F#g`Qr #7n,\#Fx$X'A]í1XQUF;j4hn `6s_(n=$XB!Bq'KFh>gϝ%* oz2ƪZ6su ~&X20dzdegcF\W eɄ BB!B!Dik^+b0l_|c$W!c*C!cbvE f0TUd\bjVPsQ/\YQ9j"!nUUH!B!2y + Jj\0jg(i?c@1jX&Rbyj(ƫ#BBTbB!B!8$ qCݗ,B!B!B܁2B!B!B փU!B!B͚5kI.~Qs$B!B!l̘1A 1k;}Ξ;wW`T$*B!B!Bd V!B!B!(%`5D1,G1 \*I`R-?U-A:ţBB!B!BT {a8&j9&'s@/PA51 iߡlB ۄa !B!BL˗Yb]qͽrB4tt1=X _ـʏ8y4UE@UUmU\p:%3z,B!BQyzz 7?0/&00\ӷo_Fcn}v '/zcG&Y2b8y4AUUTn$VUocbXnu[@VVB!B!Dzjrrr8y$<~xΝ;qE?ŭ3ɕ)T|UU`Ǐ?r Lh54 h|{B!B!h4t:z޽{sakٲeˈÃƌcvŋyחHΟ?o-_n2zϿn:5k'zwyOƍCC||< , 2͛PZ5 C...hϽ|rL^P*Ue׾gΜt:"##ٳ<))M61g|}}qsscڴi]ْ, ŅP"00D_Ζ-[6m0a֮]kquuEҾ}{N8Qn'OTTZݝիߟ(9+`599PsU׃T!! !B!BTv.СCmۖ=zknq֭tԉڵk¼y0 }NJǎ4hUTa\vs_pu*T낃}ΐ!CpwwNjtt:\0d&@IIIV%'''OHHH닻?eQsY׃599oooVjsfV@`B!B!(z 0c 8ѣGr {f„ 9s3g̏9vGe߾},[sqԩR@zzuݭ%^wʼn'8qUUUFCbbu}bb(oΡR? QG;{,v-{HMMEբ D(,C!B!Bl6˕+WOqvv&((lF#͚5CQӉw۶m،ZѣGMLL r|vڴhтիWNx}zٓI&@||<֭t֍ٳgEJJ /o߾vϞSZ5RRRl&=,/;wh׃7~c魚\Lr%B!BQC^'&&u@`` sΥGtЁaÆ{qt邷7tf¤ I&Ν;rJ^~e_>ݱGGGvZZlm&Xz5IΝK4F'|BNN̙3޿иqc|I4iBpp0fͲܟ_)kEUU[_חs+5A]N րXFGGGŨ#o pcQf)WXfƌSXB!B!nDYCT߁\ʹoKI7Q۬bR+W2bĈ+DU]PrbVUrssп?(XƖPUQP i#BB!B!B8PZzC(CP=C\Ol 6eɄ BB!B!BPH縁CxfUU0!׬X2f5'A>>oݺuѣmʣyh֬z?~<ݺuN:_q/~_/~&443g0fBCC:thtԉ~ qh4t:z={ֲw({Ma[I\~ݻ3l0rss'ODrrt?x,=E~׾Ջӧ3h  }-oߞ?x̙S_!BTZ]`Jnn., [{nذhv-yzz_ѣGٽ{ Xcʕz∋㥗;x`7o˗Y`7o)9r$$N8={x7Çܹsƒdbĉ9s搕ERRiii,[ WWWׯqqq5*_Yy~b̚5 N8aso?}ظq#qqq899ܿ_Tۿ<_\+U˖-#..իW;N\\\&ۉ+}ŵoz*ݻwnݺZ E0Zn͗_~i=իy ~iO '0eN>ަO,W\!,,[Zˊk_TfttBhh(K,9r$ .`ժUL>sS^?KҾEEEѪU+([{￴B!2w&ٳgٻw/m۶͍uLppu7NNNXoݺzӧO( W^M$55 `222HKKl6SzukyIII~Uq(lݝL:u*׮]cРA$$$ЧO.]gԡ.\@׮] ,+ynVeE^?{'(w}>}pUϟO=ؽ{7:Eoڵk `?5j b:t\CÞYT׷(S!w7U;]3D@HH~mҮ];íoHrz̈́ 8s gΜgEUUEɷR[ǯCѐh]h//1k.N8'%55///2s9vGe߾},[ıKN:U`YqGYoyOQ4z= 4`ƌ8pGվ(}Wnox2d&zl(d|ZA;VoEվw}u:nOnoB!Da{ ֲ}R1 #Ľa VsߘBMy5#jbGQ>zj\'QO>*z6m0a֮] ܜ;_,p̙/nnnL6kb6qQTUUoں=|}})>2_{ 3tUvw{ \prrl2ut'\I4m=֚5k7B<#tؑW^yѡ!B"$&&}j}/%DnּHΝڵ+/rY&gϞN^2l0ٷoZ`0 s=GFF+V`DFFҠA8}u*!ۭ/iiv퓑QKqV\Ɉ#JC&R ? NMlC`@`2ɥ5ԟ#B!*={/駟::!B }`u[ ,s%[o߿B!ĝ1c($Wf3dgg^뤥hhC*","ĽeiӦ `r/-B!IY>)n{Gqcۗ\1 V`TՒdUU1t:Z-& ^O޽jh5-c"˽q/sߟ,"BQu掱gn{7}Y˅2D&@yoKTۛD^JZZ'OҸqcBԱ͝B!B!0`z=6m*t r/_cBBB q9zs^+T$RSS@Nn.{cҥ7{B!B!BTŚeZ*f̩'Uh47}B!B!p&KTt:t:|TvTRZ- eB !BTNo6{7mڔE~*ZEgB!4`5scKVUUٹs'Xd W_{]v@vh4KUUk  -ԩSُCBB导J3$_|^z:K/tj'0ᅶDEEtԨQ)S`4vRz|/(qڴiË/X`i۶m/ʡCضm:f͚oS{B!79f3`\U ~z?dߟSҳgO4eL›oi}(=۵kǎ;lֹ~zL&Kvwބ{B!oܸqhZc9x CzgI IDAT^sfzp;}4 ԯ_sCZvZhQw^>*CEg)=O!Bܛԃ՘ffL0%K| {=}Q$jV:N njquu....6劢ؔd}hlkNxo[BX̟?EY777￙;w.SLaٲe%Y$nruuȑ#xzzҴiS#Gpqq᭷D׳h"{E:uPcǎٔ=3b ֯_Ohh( 4 33Ӯ/_L~P$### _Qǿz*5k$88`Pd61114k 7775jTiҤ >>>1akڴ)]vLJ1cбcG|}}ٵk_~%M4n(\xѮSYƍAXX۶m9Gtt45bΜ94oޜի3iҤ]C!BQy9$ztBm0`|# C7䃨I;9"dQqqq;: !<37qƱdby~'ڷo+{Ҽykް~TUC|z;6e .hZmF\\xxxصjj* "..k׮#3a ֢M||< / x'v&Lo9+VpN>СC/;;cǎ1}t}]֯_ڵ5ɻ~FTVͮS-m޼Gq5x x y1={8 x~B!swC8K+и &UlV{?. ) (\EK]\- M֌45W73jJ(ײkb-5`;jw@DA: aG|sEK(Prb,bٲe$$$ϣ{M}>tPuΝ;w !hL0h-[5k=zW_ܹs 6=zWuܘ 8|0VVVO}ŶmیTUUy~|zMyw(//_dq1aΝ;G۶m<^EEE ޽Y8pwwwzMZZՕButz).寯޿3f0|5 4ٳgSTTD՘Fرcz>>>uB!X$je!p;MOP_}ӫJP TjV((>c9Y"رc9s됅_ZlB!nե]~k}֥uW3LZZh4joکߺ?___IJJBQ֭[ǚ5kft:ڷoe%B!ăAףj7w…i'O$;;+򨬬O>+WrJ,=jpZ-? .*-Z7>>>1h ٵkqbbbXz5Kn~ll,0u j8;;HnnYWi&~aZnm baooO۶mY|)/^d¼yشivk}UTTp!"""HKK#88[[[k@@F"44PTTD˖-2ߺ?OOO㉋Yf,[-[%͙,B!oEQUrqqueB!B!999lM^ϐ's̬:rѧe0K^D>5kpٻΞ###ѣϯ\.]ѣ-?O?m(=7|QF51cǎ cN߿_~Gy[Yߣ;Vk{AA7CI8zᄚqFo>4 aaa|e{|B!/4lHâ ֚V{{{4 UW\)h~$o&o!!!wmNW^1YW^|N`C;vg2lذF;ƽ Ks755GyV۠ ! ..ͦMĉmgϞ%))~!ޓ6l HHHW^~z\\\5"B!?YfZ(hk׮@UUGGG E"݈_~?~Ν;Ѷ322())݁Fȑ#[hѢQ`ҤI@bb"~~~o߾z}_3_`С۷oWG=~~~Ow46mʄ ѣ^^^X¨~rr2aaahZHIIQB,Yxjqss3ֶm[Əoh| qqq 4\]]S/9ǜk׮%(( ''OV7,]֭[ƒ%Kf_XXСCΎ@vܩ O>8991~x"##qqqafB!2$XN7˪f͚P`5 899aemFuY.\PgV鉗WeYv- 66\ɓ'.A_|9X[[}vN8qpp0+M61aV\Iqq1GfZ8qѣG3bN8'xHz#G?j*NJQQP}رcYt)L8aÆQUUHOOGQz]Xt)So~bb"3g믿q1O}o7`ҤIw^II }<W_RVVVksꧧsi\]]tdgg3uTl2qׯ&M#G0sL}]ILLO>H&B!r ֪|iDVE+FfVVVh AcOptt$00kNVŋh4|ݍ>|֏Bs͘1ӽ{w4  "77`NGDDo_O `˹x",^={bmm͸qܹs@aÆkڪ?ͩ?{lf͚Eǎ!::VZѲeNSS \f99!t \+Wڿf\?eV -Y^}U\]]?~>>@Oyy9:˖-}ӯ_?}???F#666DEEN޽r ՕB}B!Y&jw+ ~3fpy{9g, 3X]ZZ;viv@] H̙ԩSqwwgTV,=="##!CqttѨ}`5}^OgϞRRRc޼y@pp0899ƵMu::TӧOs˻MO} ÇSYYYk_s^9!tׯ_GQE!99?ry>}_~Au={6|;Fe_9?w~79kejٻw/EEEFֺz۷/x{{3rHs~׮]wMmOֳB! L_1U&Wk~=;jEkz߿7xdY^_ڙӦMcڴidddйsg~ Hrrru(Dsff&EEE 0ڟDdd$dgg_ؿQRөYMկYgu?ѤIa!YJJ gС.rڱciG!,,ҺS'SwS̩իWo';;'''uF``L>]-__7o&66[;==]RSS1cYYY ڵkg !Bq? &(嗫g* Ǐgo0yW>>c0(%wwiZ-Z|ƌV%;;ۨΝ;ɡM6 j?-- 6mڨj,YE퍏eee 4ooovT`\]]qqqa޼ylڴIvV^xzzO\\͚5cٲelٲVVgȚj_ӭ[7 i޼9ƍO?gϞ|rⰷm۶,_͛p:kTm2|Hdd$7oVh[chZqtt$77׬|{uE:лwoKsO|2ƍyxzzfks76t”)Sӧh4lllKM` ,,(233VTTp!"""HKK#88[[[I !BFQA\\\hhՑPUIU`eFT? 0k({@iն֯_@%'~_ONQQ~CBqn+V/ %%O!akzF~Al%C_i#y yr8 .U}ZSV^͘1c\"3X1n:Me4%g4Sp$UW,~/bwFU!zhB{|HKKSU9uSLi !B M+v7FEK۷o,B;v=>޽7x[[[xW>|xO!BB_nB! {~oaL~ !Bq?y7d=}t#GbL˗/3vX~almm믿Ljd֬Y&u҅ӧ1>FM)ѣ={6\r%Kp۾5z۱!,,cAF(,,T˼tЁ&M~jMiiih4zmeJcoB!B6&ӬvO`U8播+>ݢh4/¬Ypss#>>#GGo}NW^1YW^|NGǎo)ǎٳ 6юq8qb}kN#jo9!TqqqX[[ϛ6m … 6m=cƌ!//ׯ[*{裏r̙[nv/S{|B!^'3XT^^NvM GV}.Z:^.]:u*~~~8;;ӯ_?(++#gddPRRBΝ,3p@|||h49ru-Z0J"N4 ???HLLϏSRRbvׯ'88:t}ѣGlll?YmѴiS&L@=bŊFe֮]KPP .$<<OOO&OlV|yԊ!990Z-AAA?s < -Zyٓ<ל3CuSN7gAdG"/^L`` ۶mcѢE~{J|جMB!{u+(/_nVz\tIIi'?oW Y)ktJنUM3rJEyJ^;UOOO٣+UUUFۏ9+{UEQ 2JӦMC58$MIIIQ [o)`0*+(=\裏&M(?(w)M4Q^yWGGGO?U b0ŧ(+-2Pw IDATږ)?RYYXBP*++EQ+ٳ"RٸqRZZq;[TxG+Vn~աCPƍ /|TGQZhJ˖-;vX8{Knݔӧ+YYY \~]ݷj*V(|WJ˖-kqeǎʇ~)ʰaÔ(/|WJQQRQQLXBU;(={TZQ|__ӿB!Ľ(;;[Jiii~V>E"AW}|1>?7z,YK$߆6>mrYjRYmyZ>MK_0ٖVUUرcpk7--Ι7bee<ŋh40 899ѽ{w21cW4hgϦhNSO=z=O?4=sE5k=zhƎiP|PV믿>///_dq1aΝ;G۶m;w.̛7O7x`vok꿺lz}>s>?BGGG3a\#G9s&-[d59F}ƧLR1u1 ̞=1cƨ}aggǙ3gjNGxxxnvttUw޽}zIII,_L EEEju9ҘSJJ EEE_ݟ[jsW!B<85X-Y(++ȑ#iqj|Ž .+мZAW49b ll%XΞ=ݻ7m%~o,\pڴiL6 :wLttя[HNNnnnDf"effRTTDhhh7 8p$"##Gff&W^iճWqqqQeggѣGŋ:n+_}zz:AAA4ih9L~xn***PF ,nǎToڵ:{KcO8992 l޼ӧkT_!B`WgZ&W.]ɓDDDpb gezT۔c;`2H:TZu{!?vMdd$SLa޼yTTTPZZZ'|B@@O7/ JKKGeeQJ:TGVqq16lPc9o/>85kƲeزeKܭt֍B7oθqOLmn|P=^|rⰷm۶,_h>,\]] !!WWWvnMFSÇjqvvё\^!TK.%&&-[@/,%$$pʕZjݺ`9okk p:kWEE"""45Jb0 #**LZK u5^t”)Sӧh4lll6ǜB!zmEQUrqqunO?GŋhтMbѠ#Zw|04gҶ]N3~[Ea6|||jc ! `Ŋ|ܕ !&gTV2dX6ɋ]eȓNO[bի3fLXd(h%77r7Gۤ %h*JiR^N?11T+*Bi,| W\oc !5.r){=LhB!,`mȥKpuuERz:XYaggǹ9vܻeo>?8::+_6xX!O=>޽pz!ǫwM,!B!%LVVǎYfeEnm8;;h,wŋÇ7jB!L=>M<ɓ'71B!4$Xmllh߾=^^^>|G( ǏÃ4ibЄB!B!lIpppsspqqYB!B!BEwww-B!B!B4Enr%)o6km FÞ={,ٽ-""UVY: !%B!=P9s{ WWWlllawÇG=<<} 5j{K.w-1~7ޮ-5~ !BqdPjՊ]ҲeKt={cs):v숝hҤZfh8rMIMMSN7ݗLXXZ RRR[hѢ'NTO犢ЩS'ΝkVI&GBBѾ}{JJJ̊/44>}㉌ŅݻwZz=mڴaʔ)ERRQk… ӓɓ'ׯ_Opp0tЁ۷GUyyyhZLoN|B-Yxqcwry.--Ν;cccVeС\~]-s;㋩:~}㫩/4:ŋh4کk|.,,dСxxx`ggG`` ;wlk|!B!$I #ϧe˖h6nxNMMd֮]=usp7ndر,]b&NȰaè ##Xr 'OdԨQjpt:|ڵ\piӦUddd`mm9qz9JKK9r3gw%11DSG|]z= 2K.gT&==ӧON#;;Si&&Lʕ+)..fь=EQppp1WZŀ5?S !L4iqqqűb u;w.xzzZ0{SM3gģ> bSLJWsƟtxyyѲeKc5>3bN8Aqq1cҤI~SƘdB!" Va䥗^"557|+VԚr;j۷ 777\^'44KTUU5yYx1={ښqƑ˹s_ga0prr{j7&X˙5kf8|0VVVæ;pݛ+W0p@\]]),,۬tL4՗%0u:Gfرz>>>̘1ӽ{w4  "77"k\\ ,@Q>#^~ecc*>!i \+W߿3$%%ѷo_|}}fȑj!B!,Inr%n*??b<<ի7/''777u[bb"QQQXYY3Xy-[7V\Y+QW֕h5k_j9~cǎ[Fvݝ?ts LOpSsn gڵ 07oLll,[nU@]2~!B˳ s%LE'YpMƤ0w\>Lqq1㩧SNè'|B@@OnPgϞ… ̘TVVrС:$]tRJKK֭[Qk׮m6N< @qq16lP㥈6663n81>ɓ'fԘ_l˗/Cpp0iiiuz=~-_cfΜtokbmmMRRn:֬YёSNQRRBn&--#F?^gUg* /T'qwHKK3ټys"##o_9A)OuƟr4[oE~~~vK``իٲeKoj|y 2~!BKHuQl?tA $y˟$n~_Ώ?c=3фuZܹڴiӠcbggGxxM/Zooo|||(++cРAx{{k.rÇG쌣#|rⰷm۶,_͛-XWWW\\\7o6mm۶F퇇s9~m֏axzzҫW/u{}UTTp!"""HKK#88[['X —_~Ifٱc͎$>>85kƲeزe^{54 ?:STzL' V(_9A)_jQ eѲeKk|`0FTT,ooj|?B!iEQ TŅֹQߍ}9[zL6=nZ|v36n"26%mH藀Я_r,Bguּ;E!B!*''9 cM"AW}p.\6NQQ/^rXԱCZ^>2j>QݗWGd>>1šX|6%YOBܞ$vő#G,B!B!OX$Nѹ" v<{C|%kעӡEWC}x?}L7,-_ԩZbÆ 4k! !B!BEnێMpf~=V-`6^#JEFs&VsK!B!B!CI;aN=qSVLp^! !B!B!IV4ppXApN-^g๒\B!B!B,`iK (J,hyS.a,B!B!Bb  \ ;BchtFbƌC!}k׮$$$4ZolB!xY,  _|>y?pQsk-8p j/[- /,,ĉ7pG  {{{??ٱc[k1 !B!U?{6Ò0l0ԩkwÆ L0zEii)ׯE-ʢE0aʪiiijՊӧOSQQAbb"FwtiNcǎ w5;& V!F'ϧ!!!L8EQXbΌUM///eĈݻ͛7STTĮ]?7fͺ8]_iӦ8;;3qDuٳgIJJnбo``DEEcooOJJ:!B!)OI z)fΜIyy9wO>8 ũ |N:EǎSM4;wVСC~cGDEEڞV%++BvvvsNI#!!Dh߾=%%%j3g3ТE 7oNϞ=XYYB֭qqq!>>(djbݺuD-B߯ `0裏HNN&99;vI||>x6Y`~-}58^_%KǎGfm۶?ǿdffK/憽=}%22ǘ1c???yW׿wwwx駹r劺SN<3tޝ` BaaaLKK#00GGGW}G;Ǐ56~ׄ與Q7vO<>, Q!B+!<Ջnݺ{G?0_}~-eee8fj̜9 }QvppUV1`|}}gĈ8qbǤIpmddd`mm9qǏlvzM IDATgΜW^y'''zyEQhڴ)'OdΜ9̛7Omƍ;KR\\ĉ6l:,##Xr 'OTg !~ك->UV n`0gE}fչ|2NԩSTTTp5yqqQI&G\\+VVII }< V_~???F#666DEE(Q;?LΝKDDkkkLӦM_-ڵS,^={bmm͸qܹs\xFCQQ'''wޠ@੬ggguﰶOݻwgժUf{LJ,l٢>ꫯ&$$rJV\ɷ~[5kpܳۛ^x-ZͩS̪KRR .Vˌ3ذaA-3ϨѣٰaC|ޞ_~oFFIxx8-[/ W~< 8F3C 1j޽{Ŋ+h4 O!B3I ֯_w}ޥ855=g&##hMjj*C a߾}$--X~[Hee%G%==C}v@۷/x{{3rZ륦b`72z:c 0@})))1o< 88WWWuldd$saԩ3yd|S R^^~/bmmMvv6f?~<$&&En}5*{uEAQ0?斖ӧz?ˋxN8ӧ!&&ƬϟoXs9r$FKȴh :g^vMm۶m=_>_~%dggeU\\&bٽ{ɓlܸĭ[ؼy3Oƍ\LV"[oaeeСCѣ!!!Ν͛|駅+Ν;ǭ[6m={`0Ivv6`0JDDEߡC1Ln:s3f„  UȟVK|||899l2L¶m Uȟd2RSS Օy\VXQDDDD~5W^a%]A?W7B[𿄄Z\Dvz@}ٿ7,XZahH)`)߾VDDDD -&&KH+XEDDDDDDDDDHH)`'ZbzbvqoCE""""""gUDDhtۓdmnHb!((9sX2auܹ*U`4[C-2DDDDDw)q +++<== '##|NN\&NHJz,^ G53ݺuk{!"RlM 2N}wsܼ‡?~Hݙ}f6vlN{CϷ!C׹n݊cG⋏uߚ|,,, ֭["##Wvvv+W_k׮a0ؽ{?PԩStgggʔ)CIKK3ߺu0J.;ƍrk+))ܾ}vڶmhںg}7HVشiE֭[ϯuKSfdddŪU?~mݺudddЦM{oo_|˹q_5wdddAyW̏=Hq{*kNhKIKaή9\ْ3r   [IJJnݺ%]cӼysڴiϲey&vL25k0`ƎKZZF6XX\x'Np!~msoɡC8u;wdܹ̟?bǛ_W#C>(R}{paN:E~ !ou;vXj֧LRI&tԉ{lllʊRJaooo^ rUf̘ԩSiҤ ԭ[h;׺uk^~{"س1Y|7Ⱦds辺;#Gkhr {,B/Ϸ3gмys ʕ+涹sRF pwwg0 bȑtؑJ*nݺENׯo~hǎƆDIHHŋ`4qss㥗^"33Ӣ_o0aBCC~}jժ$$$0|pVjaCJz޽{O ؾ}C>qUVe\pURjջº_j*V=x7>>͛L۷oёǏzjuFRᄆbggo}/cǎѳgOqwwCd2xb^}Ug,Xb kkkޢiӦ__"?J*Er6l?y:)`}J]xM={'17O'6O+fk/9SK6b؅a G2֬YCDDIIIܸq3gۜYt)7o$66֮]K||<666󥥥ѩS'*W̢E qi4iҥKǖ,YBVs~5L&ʕ+M:ua7prrbҥ|899qF~G=z4_}caF#ׯ_d2}?ʕ#,,?O%Kw^ƌIOO/P?WWWL&~瓒b5kp8ɓs)>)u\' 0~|D)RlccCNN͛iݺ5< ~~~L:,7 #?O?DJغu+Ν+Tm{&>>_~{DϞ=-brss-J///.]T90? o]ŋӳC2e_Jxx`w;whժ 6ƍj^EoݺEtt4s͛ף}Pre Y|yqqq 29pMDDDDD>eܨX"޼רQ#lllرczlٲwW|y|||gHIhfpT&p 3\^ yDk~9JHH !!*;_L߾}->]0<,\Eѻwo([,VVV?|qww7?|EAWUk~tQ|sa|'wq^tiԩ>rrrprr*МN >'''<<< c͚5@^Xj%@ll,jպ666_q6dWtiJ:#R?~<3g4G-''Lrsss/ꫯ~n߾K]-Z`els^:k$F2luVҥIvv6`0JDDDouƌ0a„B#222tf͢Gs}QQQ~ 2qҥK^~QҨQ#>n߾Mll,6l(Ǝ̙3Yjٜ;w/[[[ׯ… IOO'%%^BF#';;t-[F͚5к_~|'\z'OW_1` Ӓ%KHNN&==׳`¹dffC̻V?ȃs/_f޼y,^7xL/| Xb:uVZL4 `6m;|ԩSӧݻwё'2cƌD0N>Mrrr)"Ҷf[ ?wXʠN#q)_999/_5jd9r5j/Ta:u0h ֭^?ǼyX|9~~~ԭ[cGDDp1bZz΄ pvv& 8s{MݩVL:@c;99Ν;)S *T ###|5kϏg}CqO?WWWFرc-Vn޼zɝ;wppp|~{Pvm*UĢEXz5۷h3æ cڈiצCС-[+\СCqss?|󈈈H9<ׯoKt oqL<_/>[~Fzy ?mU>Ż4QDD4ބ_Rea揆K<~VgϞeEFBDDDDiotIp_ XEDDr;vӧ]gŊԩS'''ٲej?z(YYYo?qqqsiٲ%O\v={鉽=5j`۶mGDDPvm&OLbԨQ`ԭ[ʖ-Kxxx^cyr凪 WE.?T-pCbb")))4jԨXݳgL&f͚]t`ݺu9kȤI #99SJٳ'ϸI\\7nĉ7G2b~G5k˗ݻ7 .ޞH˙3gpssc߾}{Ga|w4i҄ׯ[?DDDDDDCHU VQFi2ػw/xzz̙3ٹs'eʔ`̘1L8f͚a0… }߾}ѰaC*T@TT94hy/J*=t~K.a0HOO'775kVlXDDDDDDDD~ X.1114h+ϵk׈ٳ*U[op)9BHH˗qvv퐷499>`0o>6mjs``O }T\???K:u,ӧ=hٲ%ǏgѸ3jԨb &ɔZNb ^eٸ~>[~Frya,X ؃%]H],(?z<O VGUڃUDDDDDDDDDV"R*"""""""""RD XEDDDDDDDDD IDATHH)`)"""""""""""EUDDDDDDDDDV"R*"""""""""RDE4mڴCDDDDDDDDDSu]G[V"R*"""""""""RD XEDDDDDDDDDHH)`)"""""""""""EUDDDDDDDDDV"R*"""""""""RD XEDDDDDDDDDzڴi%]ɐ`ھymIжCwFcI!"""""""""OңWIQΜ=k _ҥ:i7J'nr%"""""""""RDnڴ.]GPPׯ_'66 XbEqL)"""""""""R%`ݲe qqq$&&дiSСqqq|رӧǔ""""""""""%Xָ8ƍݻ͏Cdd$>>>RbEvYS~zR ˸"""""""""R0&ƍSjUrrrǃ)[=3g5k֤|tԉ#G\<==߿?׮]38pnݺ兗=zرcfի;m۶nݺY @nn.ǏJ*xxxsݕC>rHRR+W$:::yf#MNN7`ҤIs/cHBWR*O󋈈\VZ˱sL2;;\2Æ q`gg۷_dikkˍ7z*>>>TX!C0p@6m=/v҅6mژ=r{ѣ4lؐ'ミ!Cpvvf˖-WΝ;+qKBB LZZ.999ذe7n̬Y]6!!!lڴ:;;dbÆ |q*Wѣh4d2Brr2ÇgĈ0tSH^z {CI|YS\[IL?)_-ԼUظyWo„ hذ#՟zFڿ@?(LJVyڽk,Y1/LKK#88sZY w%55Sy{w^Ϙ:u*G5&ɼB6;;M6+ƍ8+W΅ hҤ=WFF~~~߿[n7ׯ_RJ={gggVX&gn5 r='Č$^;bYk(6lhլ,KYv#Z*""""""""O֮]Kdd$;v`ǎX 6666ܹs8 7nܠG8q|3J*ʕ+ׯ-o߾EiԨ[nWcbb1? kkk.]ʜ9smYYY*U _؋ 5Od%BH1׊\ W'ן|7.]ݻl>ERy U3pvvYf  oT777l_ҥ ݻwO>Ԯ]><<<%$$(ʕ+;Àh۶-cƌO?%44vΝ;?~<999wFBCCIJJ2ŋ3f +Vۛӧmۖ!Cлwo*Vĉi߾>wmOqߓx V2ȹFqqqٳǼ8߾}([l!"""""""""j*vjW ]veʕ X֭G}K/DJJ ͛7/VZ=]C9r$˗gL0;wPfM̙C5;Cؽ{7ճĉtܙǏӽ{w_N˖-?>AAA͛7iӦ ӧO`FPL[҃/ehEnB.{~?Sa`)=X\l*uu^zWEDDDDDDDDDXVq:qU"""""""""*=XmBK ""\!AAET(E%hܒh܂Ch4Q*AFqA>@aYez}.~}NWuMU5"cf1Hvf@`ik{0s'0fvvfgԬ)mhk{0s'yI egB.͗Ԕ maXC~9mP3̍SSW^H- .߂~*~8ϦS@?U{6<\zQ>F9< Zʺڊ'gN VDZ ]_Y;edGB^1Е B Agӆ}A_ELL8QeӍ@U#e@A]jxޖAZh_ fa¶c5o^-(Z e|.5R űqɁeWIjym꤯~$iе#҆v}#|tn'iSسm+:Z'tQ B@*\`N3t!w>j!u2|8 eoa2h?LYHMl_2P+m3^$RDR&oJ|>qo|?R*tto+. WaW@dH9Wz11э,?JƑn eM52Q2Rv ~<Rȥ73>\hoœ)Qv:fc@P >:+VpjjBwBͿ4kc\[G':( f9.,af#Yjibи}5DIߟ v&=-H$/ZB\asӅ}}`TF} (T7Yf |dmČȘꇢui#`sqGP(@ޡc[#5r> $u"BG Xl_V)HMm BMxoV Nc}}]:4ߨgzEpXHJptQ%4*9ْ;`([,p9yb%*s бeRXFun2ԔiuѠjT}BlAԈ*nR#.ZٳY hQ!XbT\5ҽ߄oAh)ӗKAWS5?,g[ `4C%A|f`<4^GGIYPMki3'w`Y6SvEWP'ڱk2@ y(=\W]Q<ΞÒs͓MOM~8YJu$ye';؁]u2 D{wnUyi&e;i_I^]s<iRBI`QWw B׌z{/"p_#| 4ϫvM^s󠙦>yc̊Kʢ@}\~MllgsxN^GORNوgw!@*@,V~ K5A&F@PsröeIeRMc< Jڜ&5 V^Cb*&&1k {P+cc 9V,fm]5ol*qIY˧DiEk2ɝ>^#&13KzhD jϷoҝY*Rc%=l~v}}uR:kd"hrVaSYل eӹk@ȦOTk@( :y4T V\!B2c6<#1[_BKOb tUѺUԥyq2˷M_zk}vHTCڽ{4/HG:ZJG4 6l$G$˹2[SHT\9)nD;DOޭ:ZƓ8^ɓi( ĪUKuJ`+T@Mϟ[*. ylhPt&y[! +/'8O_uAY }+UY,m xQ#p}o]yh cjN[Ou6oͥh@}uP*ZJrO J@e2K}@5~DNb@Y4ъ,SqH)̈́ $%n] mPrWAKiv+W}ԉfYt'6}.6|J 7ЊE@,y "! '4J0BKSŦLJ.Tj*gY԰@UIUl!f?4m3zeIgNjH+>Z0 JgV@u >hTre*y^fCQLM(ISC؄tP*[P\fa9m;(xB벒.\:v2I#!VPbyhr @D,*|tPBqVB+{@}(O^1<4 6# X;Rl sCS\=S[V`*] =a]lPmY1macumVv!4ʦKSa0/}Q;=]e\qD 1 C"sC`0f 1 ڠ|C߄'aX JP3Z ƂXЄmUWmm`Z3@W/SO]n 1{wKo8Qܐ2iX=UJ#$`0/;|! pC:]Rt߿ߖ+;>|$jᥥO<9rȗ_~PM&|G999ǏgWZZZVVvرyݿOit=F 䓔69 Xܘy Νbmm)@"driai9tМZz+ m6c 1޸q#$$D}د_QF1P{Q3wޥߔc`zz:!CNNNO8ig<`"w%ѣG}]Ʀ=֭[^ZΟ?>lhhОo'Oee%r2QaQE 7#/L$„v?~<,,Ǐ=sNfffUU+**n߾D$:::;;{޽ATUU\rݻ[n}M%h=ƍ?RH$fjk13!66~݂{= l-믺б,~4Q)))>ߩSGR'''__߅ vЁ@ 8z:>|0''kZnz`Lɉ3OP(8q;wիW~h>#^؀&'L_7ss ƾe\8`/M9`+8p@&((H&1WtfBayNNN&4eOOO 4Ӽ#K,aFs~H2>L| $;K|f=%s؇L`^yc|-8 %8 x\vNbI֒gLiiӍ^S$qRSq>>KqA"G&6t3-o3Aq۴d.#?fgɠQ U,Xar03gb>/?s 8jV)7ey!0 6 eڻ CbNs13qzF(uWN A}F͊'UյeǼaҶ8Z  8`0Ɓ}13q`` cg0hq1Tݱ l e4qm9,#cRczx?e‚ߏ?}Ă-49m?FV,/K>e,M"H> 8 Lff&j^GBԩSkjjիH"///@GwSPT.Z;<<̯͛ bփY`Abb.]zDyʕŋ'\N?߳gϺurss7mڴf͚={;99ٳ'11Q)߿n:WW3*,[>^z?~W^;{,a779sܺuz bAS ҄m6qD}Nb)S8;;{zzΙcDϷt: _9Ă-$$$iii/=vۗ<\lYzzڵko߾M{䧗D"r,[ Hj۷# f`ܸqݻw뭷/"**l@``#MEEE4ᅮwkgg/&y͔W` ib8 SN͘1c<oĉ6mҊ#\.\t)..ͭt bĐτl#v֍б&AAA@a0Yjf l=8 8`0Ɓ}13ql}`A,ڂs.H q0_uAњ3?S m3 8`0agnܸ/ L"vލz͹thgϞ3fIgΜ٣GAedd0zwx9$;wؼy3s)J\6oxQjӦM5@]Ν_fM}}-[ V^9Xȉ6lؿOn O?_5_Z,xСgg1cՕ2ڼysϞ=7nܨ+;4n8DBO0AP1k׮1@YFFFuuuii[&M NIIINNNMMay48PPPPeiiDÇ{T[[.]00!!A,{P'NXxC 8СCə666]ve(׮]С3V>Cv\xYf8p$'֤&v?@.gh ~wY`M\.C Nr GSp޼y_|E׮]n¨+W,_aƍƶuo[ HC>ӻwSN:ur?-#ZgbڵkM%e˖-[J lllviBA5ׯ_7㯿j)6oBq`` cg0h3?S `W]2zm3K^Ca 8`0іfY `4=E-}f= F9}dômmvE3Y0Yy`0/g00gRSSBUv\]]?ʖ-[VXXh13zfՕ"-_ bϰN}R,X`oookk;w\RI8hРI& nݺ9bAuLct_… .]:w\p߾}Vڰaϟ9sf@@@JJJ޽Ϟ=q+W={'O...6 `DDD/_`_IDAT<<}t@@BIIIscd2D;`ZxPBBBhh{4(#Fl۶Ȯ]nٲڤc0m>3f̳Y~~~UW^zju4 r?55Dvb0 8`0Ɓ}1@%iҟm3>>=Eg Ƭ0 % cm3 cg>cͯ0 F6}r F'O}&?뷶yY@Ank3064IENDB`mcu8051ide-1.4.7/doc/handbook/img/022.png0000644000175000017500000005434712067167647020233 0ustar milleniummilleniumPNG  IHDRiY pHYs+(tEXtDescriptionWindow Class: stack_monitor1T[$tEXtTitleStack - MoniReg - MCU 8051 IDEb IDATxw|Ew\I @B" tD ?EEQ 6D@^^ DA^E" `$t)QzPJH/]%ײ)&d|ng晙yvfgGF9&.#-)ZBB{ϙ~ 2 J(]*#^f)$WfWY|E TlUOVy"2_bւJ2-'/]C.D7"Bۄ&2\V$d̎J'sbY+;&Vy+yN8o'Uf!ҔƭVsg9d;kq^V`|UٸiQ(p1WFNvW3yn2F>t pUo zGt:Ed(\\J5ds2lFAd; --76+-9c7 `U5YpGy}HXk/O{JykrZ1AbWF v"oQppW4Sc{/޷aZB qU*qQ(jh45 W+d5zVKaa!P(ihu:yyը.+;2iV((J˭nԈF&r;(̙pStGKCz vp\\\j4veWNa앫j),(Ƞ'uPxyze 𩋸d Ⱦ«Tj^KիD㎎lʲ+P7ZMzz:͛7yvMqss:+6JEzZ4 ;?/kWܴ)nnn3; T*nܸAӦM (;?+))mW7aiYnӊ޽{F?'Ƽ@Eaj\zZTjt*Tt:--[ʕ+hZrвe8z7ʾy3Nmfhjr aa-,])%r7oтdr;je=#˘Hw:uvt8omMG+/ΣO̷Lkj!2*rϻ̟BBXMDj=gK$)..uIq8)))U8EQQzQUz,d{zxϛx>FMqsSRTXh![ח]^XB ٻnpS-X'g`t#c5K7...6T^+տ;?g0axtVngG>]:dž}#r5qm[DOM~ "_&eV3^y?zF2cS&g2E kVe5FGX)7wfg_6.Hݫo-ŋ̟?OOOj5'OQF̚5 (W:yWcoo-̚Çyfݔbs=Ŕ}*q6k-$++_I\c#L~1>b^IftVjfJ?mQ5;wQRp^ӣ)$fYZfϛXa#. 9ZzM>sٍ%iOcGj]dPU뢲,ZV(oޫ|}:O_ V ;۰tNhjj ZA}Lq{uK@u%yhG+xӲS$-[ϑcxf2KUh+fP)\,9WQk<эdXYΜj4ݫoo^z%2224i*>kqԥi˯w V^GaڲJk׮\v;\.#J[6ד)}L=A[Dx!DEtx <,ƍ?fdiX=E>| W^]Ҟ|2NRf*YKJr%|"KP< ltkrt K()6τ珄\:);\UYiL͍t:]+))z WF.ǭo!CЯ_?"۴w 2 ZvsCa&T(dnr8)r-:A\Peܐ+&)@C5<6qHW ^]oL?E˜9 _aqj /0geGұKO\!9 'NJhr׋9 ?ˇ32LY9v2BBRW7IIWѳݬ^ϯpXm+np]mC׍ß8Ep32<#ܚ^FBRRk05C(w?v4w5k|Fr&W(WpWڕ+ZWX˧}f 60ӓ1աgϞlW4*5ɗ.Ö-Я_?S>l[TTϟǑ'4_mŔd^"իMŋ/K3>_6+P('44.D>Ϳwcv@3| Z\V]miqqߝP_v[8/{in|Vff)x_.twCn64!M,x ]h }n&r9hޜKX~~>ENn6Xٚw1/l  BBBLmGϞz#FCzz:TaaWۄ}ѧeY߽Azo_˾e^4 LV:uj{ѢE \]]+Z}Vˍ78;˷XTꊷ璒joߞM۱jHKԩS(e;^C٥巵_r#5N⢠ix[4jST?OСCBBB7mq @&7 z䎾w⪐#h+..:\!CRr.(rwrF sAœ@Ш+*c)ШTrd.єnXa&GR 7VMqZ78y$.ہNCiSaw4_ o֨'F=iaIIIU*ڵkWVry캤a(72җmc(κH3ܥ'H7va~ Џ@r2.͝7ٽ{/~~5ҕlvEhfna8r2nd7({4oќ֭[kyav+xzyNaA!ĿIc 9Yڻn3 -}PU,xq˂N7^g2 җ7^,\7z)LAzZuTVgc-˥?mi&"3w ٳg/~MTlvӼysSTX+ {a#YI[:+;yٳ?:dee3~'!!!u0*|>׊]P~<3ڵkd7ח |}}qqqv_3NKK#??kWQ\R;͛7ׇRٮpeeniZ՟W/S;HKK#/`\S\lWvOi;&Ʃ s^TTxs4-q3?k׮SRR{xW뒖;O*}hzWPzz̠3ìMJNB0ՉOt:jBSٽpswGPX&et:..nn( Krr-NߩL_)~vַzGiKt:*v`lcZ Y@)N:A7աȚ^>/XPa՛M"""LѣsνF^ϟ'66h ;NGDDEEEʳ.ݚƨn;ܿ?>>>>}ܪѦMbbbؽ{7O<YN_S(m۶{3j̚5]Ҷm[bccIMMrYzqxtƍ3y42rHڵk;c ٳ't֍9sl݇ m%221cƈѣG|2= .䭷BV/-[o'""ݻw;^۽(]߷o#F 88+}J%<?}۷f0`. gz-VZU0g۷/gϞgyk׮o̙3MmܹuCZZ|!%%;wо>̞=fǏ3tPڵkŋ8v?01۷믿f޽iPxܹ֭NEܹsAi׳cǎ|Gt>}QQQvo'y8Vm۶ wz='N'D&yꩧ4iR*HbbbÜvENNo&#Fo߾l޼޽{O?Ȋ+P* {RY |g|gr|Iz @Ϟ=tL6j;QFR8rׯ_UV|xzzRRRw&11{ǔ}ԩ;v@}'^wqq_y[SPТE v'x-֝Vەp߿,Ϯ]t7n //pZliJc/̜… ,ZRapM5jDza?Ν;F@FFZ25PjOKy'Xp!Gfʕ,Yĩt4T_j8c nvڷo3<@IIEZkaСo>vM^1FE-..YcVە0)q)/r Fŗ_~[oMA v2ơ{۶m _dժUcԩd2tm3, 4ӧP(Lbزe ׯK.,_P()(( NǏ \O٫_3݆I~^Ὑ  >N:h3ggĉd2-[{]we3.Ϲsصk>>> :|}}ٸq#xzzrI:uDtt4Æ 믿f̘1}9r &ЩmO_QRRɓ'tsMnjRׯO?˽kSQQÉdڵN# =zw^J%R:uDxx8?999۷Riz8FI{ëTJ)ocNo~ m۶ՕH'|›oӧW VX]$))7nЫW/&Olj`˗/g֬Y,X֭[ Ih4lܸÇӮ];\__oooԩSIOOgʔ)8L2 IDAT6mUk.֬YæM,ᡇb޽ݛF-7d֭G 8O>$ ,]N7|cW)7B&<֧-zkҋ$#>>q1o<z8 (RV:SX'd׮],[  oI 1VvFK;D… L2ƍ8Lu]\p.D bU[jU吐%l]ŀ;$$*yHHH2X궸$$$->55г;aNKYcժyU*hxxMaf|ڵ۝:u2Ȫ ڵՕ͛3w*痜L>}pww'::Dt̙j L_-=0`~~~Ŋ+qъOVӬY37oJr̷*w} 2LNlgMx8U%111g~:Fq̝;B^2Q(..fƌlْI&q*ϲo>FMff&&KiDl:2g{T*?8'N1cƘߌ3ݔVXי2e nnn*i7,$!!~3}b"7o2 1-2j-+ؕ:tFôixt+۷OL7ь1B8233g,^H&OL||<~C&^-Q2.^:JºPL~ݺuwᣏ>iӦ?ReU(ۢz$Aeh~q>F.^Ld֬LGqqR_T*ۉ0.**2Rok׮eϞ=mۖٳg`n6%%Ytt47;7AmN̪gG ;k׮eʕ&l͘1Z9hdܹUݻwɓ /TSI?Vyx| o௿ӳGA|PDׯ7SN <.WEMҥK?70gN__tgc|72pct_TsdggzjM#F]vdggxbwNLLc@@3g$--#Lf/00~aXngfo&999hZyڵ+cǎNLOOOVn^{Rɚ5kӧJI!v6a++)+)ܹsA͗ނR(ax!!Aݲ8&MkW=_.tUJУGa߾}zJpww|||#F7nܰ/ v-tQpqq„UB޽R)DEE f͚Uf#GR:2g[N>-t]\\\v ?cAs*~]gן SNG> ,sn;{ Mѻ-w0 ֮W_}UZ{/!Q0zuִ͛ =0 WeuFZ+!А^Ba+jNjy|4 eEDERz [zqDrj*}ƏǽgOcc?$$&"y׮ϐW_XRiN'&:ԗڮmw+)•dwzGw*(raB@B`&B޽oCD0{\.4Ҷn/ 0~x! @  b[VuohNomwzQJ} ɄGW_a˼y&:z $$_zI&M}TAO mb7&:ԗڮ{C^;}RJeK#y8q r` Z݈OlKXm]B<հ^xoRSS(b[jքVu(*HB!};hd|1T)hΝ Y15 '%.!sѦE xȰ q/zG֢ YLAkDVK8O6N$' )ɕwQ( #FA~~o!zU콋0a!((HVOlKXm׽!v"Ϩf+7ozJWW!ۄŋ!![xV9uXSК@l~bP_j Rzimf:~Z+d[+!QkZ{8p]Κ]ge I%$KH40$h`HJ/qKrS.D+-Z# ׮Ͱa(w'9XZL&C.ǐ!C8vXiyYG]Z[CZ{ފѩS'N>M۶m.cCPUyϾ.e!d;u*E!mDܜ9޼ɣbZ_y5Ҿ}{zN߾}IOO#ϴڣ.y!k-ؿpwwm۶ZtTKVn\ޯO'2,{ӕ+quqae CדU Ky52x`fϞ͜9s6m=|yeukg^k}pKݮvbN_DvhS_!Wł[Z[|03imyYE]Z[SCZpK8O">ɪ [^k @~~輜L[Y/ukm]ψ}pQʛ_֧:Z[*//J^k=<<zպ䵶.gXBzz{^DlD.^zj|*=wQ9sXүK^{ =ƌ ֦n/p)~77n\g۷j浶&K`Z"$_$$_TeZŔ)BD悋B!jL8Mky=|p)oƒ>(=zf<:j䵶&;Cǎ>}T*M]EiQO17{viD}t:Ν;"U >[: wѣGɆQ*nN/iĭ:tQGmyh[KHDCRz hOMNe|tIlt,6~..tu+Ϣw!Tq.y6K[RXm]B$ /]._hN_]B. ?\hXhD[WXmWxWwu083Q<%ϭu)ި۫KӋR/$ «2Ϥo~ $ .ᕏ_uɳi]Zj RzQ$im8GCMeqUjq&skm}KGLkl0-*(3/]Bi?Fm@7хKMֺVuJB ӓm^ZB^ܳQG_x~{Xp-}B%Ϧusk] K8Oyӷhc0|2OLk"˼Fvrvn)uɳi]ZjU v6})¥K/Tj^FL! f'}6Ix`U+MֺVuoh3|y;FpU E&,_,$ &7| w?xҦ*)}]lZ<֥ڮ{C^;{+B4ly*SwJ%$b4ݸaS;yG>H{p+kMG=TdMJ/H`ۆRO/!QϨ^BB~PٞdN`ǎ뉍xzz 3z|5_2ņ;72eEj|w~>73 cy$'p{LK>>7*a QJȴПNfXam?)I)_M>cܹ<a/<T9/0xR]r% ,ì_vܹ||׀c/udWիWʵkט^y }g}JcO<ڣ.6ʢhj||駨T*._ƍMJo؄.!9qssݟҥ_6} !h<ĐCDr޽kr9^xx o!((!CaݻzzzzVG۪& l-:eΟ.?We~ r\WmL[!04Piڵk+x<={ aҤIb3-kB*lm{[ws|}}A~Wψ55}榵t Vi/iDD> !͍{}?Z+h`HJ/!^B!)DL_`Þij(ݕywKMֺVuprmN,?wV8lv7E%LrТu /O_Ϧusk] 74~7 J7Y8tV8ZgW($ ' pBJ_<%ϭu) Ǐ5)}{upp ^*&+@Z[jS\\̱QJ0Chx(?|xCxJJD.%ϭu).<taj7upcL;N䭯xκdBZ<֥ڮD̖܊.ˑ&Mx'X0}ět%Һ乵.v%cǏ#4n8Q6wF8t^kqo{LP(ۻP#gӺ乵.v''aottyeZ $>tW ^>^½#ZeKMֺVuohUgcG^;{=h$Z :X;ͻP WBVÃU_)5{/!!Q^%$KH40LJ/'Ϟi_2r?Ȫ\P{&7ުR~[ռy*ס&j3mMx%<74v!f25v*%E%[BUb Iq*tdffkJ*008ѽ{*gjGϜS^cƌrj"^j"Llm4z5ƕx kmU‘ZOoO£ùwĽs k18iu;={zVSikk-ښMk欝=Gy, rxdΘX /Wśc_~%Jo*աLOk3mu{uVk* ۈ.˞i ̞0&AM|&]w勩_)ΘXfddxbӑ)>?G/2vX.]СCIKK][:Y]O쑳<;YfMvo3&wy' G%ꫯO)((?][唼V/V*12naIHH$$4KH40$h`@+-NB#KHH%$4KH40$h`HJ/!ȓG$$W:Myݖf%$G>("^BAcمDa979%@Rz z,m! %$KH40L雝Dud{aNYzz zHyvtI%$)I%$5FEwVARz zOe$hpH78&% +--ÕGҏ=* vDvf*wnYދ_@Hj(cv1l2V=L~>k=+e1dHS"cvd"Ie]mq_7 hZ97$u ??? U5YjA*c"}dggW_CCB}pww'::ݻwjdyʧ`_Tjƫҥ ᦣ[n,[Yl ""LBzz2<\|"ͺu5j'xLj"**'|sΙIMM?Zp^W_}E^hժݺu>C}W)ՅMWՌ9pN8w?n*8?̥K8<}3fѣ.ȳ>˾}=z4RTTd  #..ttԩy')o V?V;?9r.fĉ̘1˗3m48w}Gaa!Ç'//)YGh4ƌC߾}9|0;vdرm:OXns|l޼KVk>b׮]#''_~___>}:ڵh5???z!:t` O>$ӧO`IDATwXLyGXx1ӦM###xShKѷo*TS^i)J2 Ujkh兏M4'::SNqYV^ʕ+8p oߞ/P,YPFu_Nnn.?<>>>UkSҥKٳ'у,?JBѠ6ڗ*j j7{ GƍM'IKKiؒQqF'==۷+-޼y3{u:ƍY|II V8Ύ;,^nnn_͞={SJ)}:L249r$/R͚5cL<ׯӹsg:G}m۶CXXGfƌ_Z]Yd nM\M|M+uȰǪV6m*jSZFc+;8~7^h(ud7.Q<2N7fqx>uTT*uoa}Qٍ*:vKFR:Qi̙cΛ5zUz9v8P঎b><_`aK=-uU7*U,j] !p)>L"=èHr'%"{54g4# %O#KF%. z#aPaA@Lܿa޽w׻ZfvZ]1[BB.: SNeŊرc888зoN7.\t"h4;|'#dddpi_V5jO=&NȺu8r$''lm N8K/eYr%111۳gaܹ7ooojacԨQ̈#Pzj曮E.,,OOO~JHH<8/}Z WMEEuuu3jԨFBBt0epuuؘyuw5]s @bb"ݭZBB޽x^B Ux_\`{q?895+.~<>8U8.ڬ 'O#%$0$x^B w뗡P(e(뒐xwfժwhT>݇˶NX('Xv4Q~F]ݻw='B':%Pp֭loqG_m22R055o (..] ݙ81[$WuWN8_!Y3 ѣP3}>Z$:FFoMC.w`,Y5۷M ӇB̈́ زeASFd3}6cٲ(CY{ryyY(ɳ RiBBB0Z|Ə ?VNOЌ Yv;wbdlč( yOC!(8;Zjf<sCGpͼ`44?$yYy`V2BQ(INOg@[Ť!ػu[~FR椠lnPv)D_ͪwIB\Ct dt'Ǘx憆6!Ud$3gbMԲelAP(֘W vpi""R1hVoi<+/A`Vr2BC1Q* NHh iyOK3D$ 73?#;wdFrz QWw"2V[T3gKJYp@A͟qq֭RRrSrYYHb,;ND c ##ppqҜMX*J KpmcwϿ%gs*DWE&ٛ YN%qM"ÜKϥDΏĤ ͧh!UתX"4=ݦ=8u0 7,e )GJ.%ҜuۺCYa nْnn/Zqv-}`kj̙CɥK,}`bRR>p YYLeMb"Ü;]v?vJlnΞGmoެm,g;{̛AAބJHgSWW|gv(0uj4QQI-Y"s>:ٳGP*vfkY +&evnW&ELOBCP6frubSb 'X%3^wtV-ocniv=X>uzߝ#gfZ4I_~yvǏSz2cJr8TP@FC|P^YykG+(MTSfU6Vl1DR6n} 4e2 VTU]Ԝcf1<,/@jj<㿖L\{]]-))1۷[n:}m @:?b?b{vcxPY'1@*C[euEu YK-t7űA΃ڴ^uuĤo>nl(Hh[A1qJ}}:/J|jjM4 !ڢ1V#G#h e&mDÐL"6CZ@߾ ci+7LVT*8 ˗#44SWWƊ!Cx7)'J KR{pjnԴ\r94q"ںψaW,P$`X9{ifڐ_EX\ϜgnV<'M6##Q{y[[Z)۞&ćRMwu]۱1UsegO gylo`?J5vmSS Μ9a ]kAqrre/[X|.^xxxy"_d? Ǟ-bniӖ9_s80+^ɉWGʎ(Kg/SB9VM?/[Fޭ{126?;z_QcSvu5ah3A8:˝?•++c'llX880VDRame]03ԔgX%csN[=K9xJWG6Q[v>ۯ_l#a,t0 s޽[`eeV\uIh)..v+Z:j4vXGh0~Xؿ #ٱs/СssxGtno4>@tr4:Vב&qǓ9r@4)~(sjQffW*:=˗KDӓ$M~6؈7_WfǺ ٶm|OAmΕNw5u*CbF"/DQVVdk8$[|bwt첍 MVfklj"N;nj B5}Ԗ=PK^1rL⣴{+;_Fc gMff#c1dݱnII⃍nz*ee82kdva+q]SMXƉ<#酔?2 b;+k+~#c#H;HtNqoqr{ڔE¦ _dRs׿j^B~t:N<jweM'Cwu޸8>8=}G wwwȮ1Wo~fIHH<,t:\LMԣMBBtB{77w9Y#@nQ\F(!赵N~i= @?s޹OɰאxbЋ;8Ԉo"@lDiݽz󷿃-!!豵0f~YIENDB`mcu8051ide-1.4.7/doc/handbook/img/sdcc-0.png0000644000175000017500000000064012067167647020764 0ustar milleniummilleniumPNG  IHDR szzbKGDԂ pHYsHHFk> vpAg IDATXK D_PoVr視 QP̆6w,)lfHbF"),A{=>DKg/Krcdjhk~x+D2-.…&Qf6;ևG{j~.X$9+|sԗI+;g|I '&&261%tEXtcreate-date2010-10-02T07:00:14+02:00q%tEXtmodify-date2010-10-02T07:00:14+02:00KEIENDB`mcu8051ide-1.4.7/doc/handbook/img/009.png0000644000175000017500000010326312067167647020230 0ustar milleniummilleniumPNG  IHDRp pHYs D IDATxy< 3c-,EDB(%WZEqs[V7Wk%{H)JH2u}4!K_^FNhi]#)$Ze0KCCj1 BVr`o tRG 'Y~VXCoҙ%\\\޾{nq'=edJLݵee+u++/WWS:~TLLBGg'%D;**mN-7"ᓌg-iiOdg8Ϭry%D(8xE}@/ @#ic> {?狌|¬U· <ضͿy == eb۶-;}N{+uwed/?6.Clj֖3O*G>:^'E歭(>Px[@YJ)I0%ZDx[M=>?q5cؿ$DMM*J&MNhx,SGgvj57h{wtv$=U5kJ7W;w?Q(j!w66>>Ѯ&JA͘A).kf@P(z KI}paBB%nn457/Yl{ CU">9`cc".^__/",LKW| `@Ll2`J2>/_BbJaaneef[6o}Wȝ֯fDdreU& F c \@ BGYYA ^}}6繹ee(>PpݬȘ3B,[n(dӋ4T7nE'=*}FX__ RSG(ؤ0{h^{j**]CjxLVI̓i}*j)L70GqGx޳_qZjjکS^n[eˁОXRr +ګ::ci'&& ܹ*ںpl/ʂ6+B(KtR*XspW_!1st4խ$>y1gS__4 (qh<}:84?Tef}ѷAKԥKRN@xغ Tc3x?dMϟ,={NuL&_|oѢu?3)*?}KQ998Qxxxvnnc;HNZeexǟXYIܳ/~12pq&ɃiLm0M@__CWW;T+8߹_r,\]zr*+} T뗅8D[gǟWG? m8CC[uE ,{| P^=,ެyHSS9Vj>co?\"ɉqS S sCn_&%f_ _or^x>|0k\t  pp͠_㗬Yblk@M`1Nn7rxAQA u]6҇Dڽq#?/rr$ҧ>>WyXa刋 EjixZ,t&SL".)xn}%Ih< HH4]a:w\^~ޝvFߍ&t5fim9)NhSO1€L&LJ/Y$%,Nyyiy>K S'OGOttv' ^pr:  22Ӿ/eu hC7NRBLlӟƾ/MOuƍ8I/?7[߾8Z] L*a0vEee%ee%|\޾KL nnN>>|QQi~bu e9ϟ?vyٳUsxq_.g睞gyyoYYI8ϗpqYQYI,qѢe>>7\89AtzLH,uLJ~a⼏NXlͯ prq b1օ[!v:Su,߂g BW|#Λ .1[uvhyNGwzzzؿr`1m_ښj^Iq̜KwYRIdJ5B )FPx//$3c qL%..^[[0'!qT0´OI̟ofMTrr{898~_F궴B]c0KII+,ss߽;65QYS#5eJarSYEDKKd^o]FR__Ӎr o Lcӧ/|i35cfFK;; ?,ѿyӇ33V ))?0{ƍ޵_]) r&/uǎ/7X'))y[Rx-[S(xAA l~K${:w*C<P(ΞXL&u޻>m_ƤjhHJKnJnt"v=J,#~E:cirrI@Ow75JJKn޻V-<~-_cȲegN ȄgoXԚp'ANW"<T=Ќ'b ==ܜ;v89uju5*"@XX BWUԔɩLDVPd-)ZZʂLܲe5 &&URR\MMQMMYI}=qCYL!..d٪W';:99$Xs玶}MvDD6ryVYnáܹ~pII]o5޽4i HtWLLb>x_/<R=?4xI'-4[HⰚ9PUu9zYHO:︤SLB :t:w\ۗ6[o]kGOWnvmD22S,a5#iMx6׷o8qg{'=;}w_ /|S8ȓ'JJ#(~jf05]Qt\>~YNX@Xc!WB$YX'$<|C@H-(xvvя#z{{yI??KttBV(/Yh9( bkB)F3WA1dׅv#vvLhhpp/Ɔ`M\@YY+,Fj>}*dh(ק*Iy.~ϫ?B/Y۴tuv6X"=M~*j(kק*#91 B]σe+N7!48|9io05ǽfIv]/o,ΘEWn̜̯ ؙ0E .<\B1Nu>t46Kۗ/ W"nKd|y" Nttڬ(L4iۺu uϟzzn]F[ݍx ]].Nи8Ʀ&GPp|G2nn3jEӥLcg #\\x^oVPZZ}!Ɩ[[[N?{IX7--M>> ұkj*44ԸommTP+,,J71&gaaWYI,/\^덮_ߺF_+(}^T尉[YT+?.;|pB^B[hthF܋isG^Y^XT{?nt==)1)4=`&a4_a>1c}M='Vm\5SPjZWad;!$aBj ҷԏWQ6Z4m3r0mִ5W_?Cȣk/LLVW.!joy=,L]%á .>]FꞞ. Ǵ&)bJJ3ȯ?XS[[wrڱfa{{ǎ"7޽7d$:EEW4͛ggOϥή#;󗮷5q8 %*:ee_g?֛}pv]6A,B!=X̭3]nۮ@7k}C| MJBW|f4~N;iom_`X1L[nյqAzjnhaX_`uKSzz&& H ?H)4ucJPB gcmLLxd0FS@ ` % %2iJKMruҡ_cma==sRd(LҢr=V\'CJSJdҒ,U.%Beovw]_ttOܭ·@Wh-@ 4+BGƍ#_U5 PKO)tj -1IY)CpmS)op^z%0)H:p,B@Hl~O\nua sd"BCի(x4Tr1Ay>F4\z%9߈#fRҿO44XL"C`"*C 2h@94}ѴB~߈}#~ߤ]`@ Ș 0؞5,.@ CZZZ)S)$$$%%f͚~W*++ׯ_coo/&&v 277ݻӦMcggWSSA?~,''ᬭ[[[6ZWWWĝ;w ?8,%%ۆiF@@(J@&3,?̠իWwARffGTq_D"… _|&+W<HII@\xQVVVJJOAAh"*셅GRPPHNNF}ئM:::\]]KǏ߳gPPPŋ!7ɓ'mmm\\ߗJKK611ܷoHNMM?ܹ~@Xrzz:r%##͍޻wOQQQTTƦ:_~~~ӦMpUFf CYB(r$Hb @=АHsi%F |: Sgy@ ׯgΜy͚''@MMcǎ9;;<{Ν;SNݼys[[`:t޼ycaaQRRrţG{SN066 D+~;uꔆemmmmm ߿7ܹNMYl1r;...AAٳg#g&OXExx 22۷?ڵ֭[JJJpwwuVjjݻw%$$l2tS1aЀ270clw/%fN 5斮$ENycih']gRbm8ɏy~]J s+?B annKɓ h4رc &88x…HpsA))0GGGUUU9E@llNNM6hCC+W"""lll'N;w-[ZZZkkk555dmm=o򌍍]lټy쌌ttt;w.`kAE aի?U- oq5[>F3-#[&4ʌvK&2A7Z DD"QDDjjj̙\ H555H@A ͎@Pȥj999999fjjjyy9r@>}r}ݻ'OF| !!9ʲ & Q!555uttaaakQVVЭvZ!̌!d|Ғ1.b`z: sZFS|bjjb UUGEE%%%-Yd֭&&&5wyyyN ssUV\RBBСCzzzǏc09.H$~ gggj@n޼J {Q8 ==###ooo$~`,^ȑ#&&&V={''#Z;v X?4of(ˁ%`$'D@?,XA;t<{&:giEBBg۶mjjjcccggg+++ ꚕ5k]0颪w+V#!!&&m۶?322r{ܹCYk׮}U'OL6RWW'$$tggJC8fjoov似uttΝ;sssٻwo^^FLcc#5G!d<:q^n#goCRW|RTT/e֬YހB<<R?tog1_y5 _ᓞxKM Ioko<4ΝKLOL\LMAKV]WWĉ=z^]k4{6"eEM͘-@ ty葹C6aooO20!v qr-=pK<R r//ܘ|}rσ96%'/7S$TW*3Ɯ9NN}}}$$ ]3?O ?U7}|DG|6~*%RN)'GBLa` rPP* MM k<}lŋۛ0 @k1"],,,*++n Ҫg֋UUUgP\.~Wq/tq౐cnq ϏxYrLfa!QQ&iƍRXD*:D_Cq=ZZ_ :~dU1Sshi"~_p3"bwM}yAǏt<ņFo[ [2*Vh4AA'I93g^;uJAFuu54'KIVUcЭ~ ))+W㘘{RR2 0`kj*LMWL&H,b|]IYJs3itG)SScӝ+~[ɥP(ileZZZϟl1A!/^uVEE> R(N)nܸ!--Mb6 06!FH4F6Z<} (twu?6Wo.%Ly0:(F\8rNÔ LYfH hC* ;矑cc痦|2b3%ee= .!tPP5uC*+?7554ŧٚ@7n$؎ c\ P[[UV(dž"S`pZmZg6'O򒓓}7m"߷>}t~,[[[& B q1Ru 8494~65$19v5uecgtuH͔_ 8/_ (͜ 4)>-<,,AA~}άYK h3rrp~=6սx656~[:II+,߽[D]QYS3[V099YD]\X{G/OշnYQW?DEVlEX,7yGXb=S)޽N5k\dd=|iY *,RV|tmV&P(lh wFFRP.*x C.Z,!1ի91h[Ă@ <~Z.\pž>jbzzC444N<,/rƍӧOdww Y␵W?b/^'M1GW(<;je\r1/+X_YO& LJW6?n%~Cq&NtQwO7''NN==Vch>P%"35utv^}{mmCV^'gCSrWƦ&33ݻ83(d`࣌ ><c+((hIHu/_~FXx2''5˗}"&; yB}{}AevvۏcbL:=11ѣpAq4u<0{YQ^J[{wnBUursvm߹FST9?~)S][[秪zi77{y֭["""...C23YYYڕtuu$>r >vvgϞdirr 8؏c F_8pMP<1^d[s.YGKKOox+WO|()Yq/66+WX frsh03vP\LN}ٳn%6_"57wtv\\*kjVm}Z_⢷Tphۂw#GWBQ(6f1mc C&wuur ?2E [b8^`*~B85Az*5Y? 'b]v-ǎ;9 ,@"'EE樨([[ۙ3g6oSS FgillwQQǏ/Z)>yC !-5qvЄ (g̞q"gv֘]_U+*O?1f `tIzãD<TcWOvX &%33wwvp X/^m:sgssڵh4hsf8qDW34.ѓ'ϝp e񎌻xs{G77mlj  a*+?75շ( ͆Ui8YX&*:Y*" 7[M&3e<< a--M+q =iE `ndbi_ho#kaa,^&..gOR40j//ov\lڴ޾gǎqqǏܹREE̙3MM͛7[[[spplٲe<'7}ݻwԈo411K111y!eooo{{;gD  (!&N0)ʹ1vT/uo,k[=:"9Fx͛7oތSW266666HEEYӧ,u52ضo߾}vV RwXgann>pmׯ:uvV\t)0ۼm6NKfbb(((ptt|7'NSWWxٳ/Vr@ Ȉ߹sgSSSOO͛7Sv  ӧOo߾kjjݻqquuᏠzf,>}TgiijժF++78hhhe˖6+JK455-,,455h4nnnn>>>>>>4M=.++C~oNg2A=V\̦'o޼#<#kk/UZZjmmTWW;99!---acccgg.@P(!cb0K1h@94}ѴB!Q،rh}ECKta~PSS hoaD}xyyM>а055^b磢lUTTT^^$FFFcX ñ%quu;wƍݻgjjzQeeeQQQKKKu͙3êpFFc(!:W'%=NT ;S%HHHl۶\MMm͙f͚eee!,,k.d Yfae˖^zt |&CC;wx[\\\,XPQQ9{5kDa9[Zh?}pή|o~.s 0?)`f̿+66vYN<5 pM!WCG?a %_g޼᭭햖@&%q0)g:8D59`G Ah., 8˛@U&0q4&2 ,))zŦ A K+ѴҏRbiN`Ġ@q`д CKñ443p)quI̩Rb$ @ ?DKK~#c+!.!2-8v$dY Ze0KCCjaհ!R UA&ܿr!_@ 2!W:0@ 2Q7&.FP (!LTxz @ @&60@ 0LLn~L'B(Kյu9"$&QǯIŔňL-)JGKK-n7oP~`ৰeg_T^N!ɲJ(~%%=ܸcޓL\{㊋K}f2 11#?C22 /B4W& Oo$ $hiiIN}xyyK2xB]:|h`84  UW0ƫgllߣ fO{AA5%%utdӞcc2|J( //PZz6sʆڽ{z"H Nbft䶰ƿ}NMZjخ Y%'DkWJ,MN]7Nl@ $#(1XowAO  9ynqAA\<\x~<#ևMB7Of-Xr加ׯ\\abIow%4m9mo_߅wm),)Is1'/;ƍGZIqqS]*9g [{6(n "UW/%K"o񗁁z1@z{{ r(Ҋ܈F3yr^'..=0m^;m;P(ǏP(AALTX{' qii''6 _ :e=LM̈0@ɯeV>eTUj_ S| WXxÇe|OOÇ?KJlmE,y}wx h66bG7ojXZ^W37?r%LںƍzA M >@MMBEo6}tYYY77$}`=XBNNnԩ'OSWWgx~ullwGPR(l={O~~FhTq0]666,⥥EGo޼WEE\\<&+$%gf9;3.P ꬩ\jSk'`\@'f*((cHHȾ}222tww=}4111!!at4cff&&&vuo./˗[XX|׼ n==zѱ ++f0:CB7Jdg*/_Wz jzUJ 9rp66rX3mϟ}llZmlV{y5UUPSC 3 e`FP4TsMMsm$M `44uuQc`v,Vh4G`8@___OO=hoo{6iia{@||X__ߟ0.=@{z d*+ыjj: &(trCK5:@ 񍬬7l0jrr@PPرc+(LHHӧOϟgz_`ի}}yyzw ^9x%x)ʃ:f:5LBB:WgKJ|HdQ+%%:vv>'rrJssxj?}BY>jKnL!DIxNHv7rٳ2ZZr}|CFh0;;PXKDGSR?JWG^StϘ1 Dh4d\ &ܹS@@H$222EEEچ){iӦ!T>|}CAA;wn^^ao߾A ׬YSXX8ڤjiiQTTd\2EEEBj/+o߾ɝ;w) |Z3gāfΎgΜaccc7o,XzFutt޼y3:0L*|9hr:ce\=Lki>}*vUs硡ii=]]^^\\pa8P08ڲegeՅ`{X5r8;;58˗{ʼnO=[ݻ7<<昘ุ dBB›xy==;;FNNPY9##&''ٳd&;)ڵ[NN;""Wnk7}Cs8%8[Ns'BMIvvG d29..:::6lᑗqĉD .|ښspp줞ZZZZjƍ,x>Hٰa~VVֳg̙ ;@944@&idr @UUUn߾}03?fIY_ LzSTll%e%v._ɦ 7c9AA 䦀6ɉq1̌lrrn6m 暙hts͟,*5bqFH@VD)glmMȝ d3uts]ĤTUEz> &f\\<66޸$))ݻo޼2 [Tto`X,VYY9=kpVV 777ɓ'&MعsgXXrϚ5k7`ZZ ''}Dbu SLޙbn݊=<ninɄf!/qC+55=⮮VRWW 3g΄M:ҥK'N011III$$$lڴOUUnnnc)((=zt߾}.]k,==ŋSLqwwg@ /_Nghh˛|}}7o<{yy)))?~-bŊ!!!+Wưuc5XxqBBBOOB]t)N d9sS""" %""ÑdggSNnIc``&--mmmD #=<<\EEҥKvvvIIII&=zHFFL&xugѢEO>{w?` e-D.(BTޔjQѦh_$$$*7K=} ?;*fyq3Ϝ3aΜÇ%%%IIIFFF~~~͌-11qɒ%Hiii]]]榮N"nʨ "d GGO>|9lQIIFΘ1C__nZs)}}}_TTx۷dZ}}ŋ988XxgyC}HTUUFyyy;;;4 =J$kVUUBCC%$$,YR__O; F_pA>>J>qUz{{q8GoooRR͛\zܹ `gEEʅ 躺ChtSS?444y`0T*D" qΜ9șRRR :D#!!ÇA"""C3qqq FYY|___$14J_aa!3⑓9|܆@2Pʕ+'LcggG&I$ -sƌ%%%ח255uvv_icjSRRbccbbb  鱅˗/---#""󋋋cbb0LLL̃-,,RRRˑUcDҌD"Q>z% 940!!#gVTT0*`7AݳeWWW'&&ywuuP(eeeeee}}}NzU^^^ZZ''g^^y~~~DDDkkΝ;544΍l0'''88!&&&;;[OO),,8E|||QQ*innӞ;vg)֖zzzcbbrrrX찁-^ʕ+,\NXV(!$IYYH$2X799~???$ԩS##9:HiӦM&!!1m44M nܸ >}t"%DDD_jlls̙cǎ!+͙3gժU+999`ff1KJJcccϢQYY60OOիW !),)OƒYBDDH[,P 000Q Q!!?.\ȒA@@O[)HEhnjlhaDڵk׎3FPSʹ(<rU>4NfnWUԗ>A *.PN)/gh 0bRC?7$s"C6DOnc>k TCPB2H2/^d,cŐufBUUB $իQQQ?29}ʺٳg?ڌ={_ڡ6#0YQAA55YYYٱ͘>''璼H H7aҭ 瘚jEF x?ȝ=hEÈJy-s*0 ! V7JdTUz!h"ݼya``pȑb:/#WS _foNΥ))EEwzrӧKں506Dxa56q3ʰ7P^^A Wa3l97ǣr  }srrҧG:?,,j``ĄҤqyʦZ /VTQBB~||/`0h,Ţ'&B<Ϗpqq(ބsgJKIK <)^n޼FBNʁ h2װ:h,7IL|fŋ:1_`..**bD"@LN_n?ML<7ϝFs3k[6!++>&TTԡ˗Q\\6wMy򝔔ǁYb^TB A`dbNsQ@I.MI;.ta0iMHo8G@@G||<.=x,ھ^h4򐝝#7l8r*/))TTiN־(0^=݄fyyɟv';vsժ='[Z=eǎw֬ٛrIwf e) &SǙD$tsd0a itT*`,o"d"gLX2Hec4A!q&߂~wlݺu6)'***==I+++O>]PP~ɨ;…*o+X0p޽GKkh(|}Wݪfvx!!Ϛ%ki#3ʰ7aС_Ul__߶mkgDϞwu]PX ߹s"*O?i'%E3d T(7:~@åF6Fއo9Ww*TGkZ-AAԔƔ ? ەrJ=__k۶ðj8px<ӧ)>T1X,NFf:CJ7*2oe=yz?oY666mrhjj`HA4cι;> [wO'61"4< &-v-,G $d%VZU`OZʊZ]d&9^Dd-M aF@`ôi& C H${{uwd99mmsCCk!!_gozc2Pܷogώvz*B~zٳw|J޶VAAm)sܹCP(gTLã>{LAA9bOYr>R>յb;B~}:Fc&b1{,cGظ2خN...nn)Cjj2ciiw^ QE000u Z P$ގBPeeu֙&&&wvvup…nii)))166}o -11qɒ%Hs68777uuu֭[W\ɐի222/fm<F^^n]PPP\\ձL{-]]t^Ra'o0O[CuttJfKӞvCҜ\[\] [Khbab1ofVEE _jjḏĉ̙;H!5/2334\ʼ ޷=8-(ybXZZ۷ݻ_=9++ !=CEDD󻺺>_266577?|(2 fhhs`[[[,dGxyyyxxO3,,,\\\VIss@[[[ oy_/[LYYvvv lަRRR0~)33ŋSg#nnT_ߧ5Y4[3c͛H佤0äkMݭjkO56~I ~!GB"D4:ujyyy= Åo޼H$ڵk/b(ׯ9sرcJJJ˖-kkk3gΪU333rrr IJJ}gooo Jxzz^xT4/:thǎ۶mCӚ 3^vwQ]]ADeC*}}ħ==AA?d¼kr*?ʰ u޹s[^|Ixhk[蠞G }Я 7oޤ.[NLL?sѢE-g eeeCsF lÆ 6l@k׮g),)Oƒ! IFPSʹ(7)+0160q26sKOʨP']? jK\Aly A?+j!#=:1!3[4A!HvLwF$RW/g2<;\<" 1Lwn: ;# E) c_'rL:d0 141~ȫv?9-9LCO{!'LASG ߘݛcc(!hۻg/U2-2A7k֬j$FϟĉiӦ1rմ݃&{OA ASyIK8Mnz]ii'OwKNN!٬ PBTjM x~~~iii''w!bbb?See%֭[7ntuu522*,,Lӧ,XP\\ 3gNSSϴidddNJ ;:X005AXZr$" 9݄ɘc6hq,AfްTYDST"fL3;1*y˻aZ8Uahl8uww'''jkkׯ_sX@DDϞ={ ww'O|aeeeLHHݻwSN8%,,s2˂V˗+((0U0#}[S3+!v?91(d;Wl b]jDJ_q,Cq췏MOf=,'q+ғYrJyzr3bZ(aZBAwn!o”+$ܥ+`0ѡp@\\܂ LMM;wmjj̞={Ŋ??˗/={l?$55訩QVV!| Џ+CnK*'&FZ3IHlbψ;ߤ<e,˼Q[u-,{|#ba#?]͒Ha0שS4557nzkkkՑs0 JHI}{%%%Çab'OLMMbBBBWP(MMMvvvp&4:8 ؝ٳ^xttt͍TTT ﯨ̰W^%$$byyÓ'O_|yҥ }d+A4vŋݻ@___@nn7:D =J^|vhooo*300F]_V` &qq춶6))cǎyyyIII%&&;w9aQQQ򱱱/^Lgg綶6˗ttt1<2(F+1Q]]7} Bd aaaSSӂo)$[GGt%%%4ֆd޺uKNNBiii2A '''%%%%%+WL| 1e/gX/_?>pٲex<dɒϟN>9A@@ 22ÇH3Dbtt\^^|r@LLkjj(ʉ'&E ˗al8z %A̅Bii<@>***=ŋY>xL&䴴mݺk׮{(ڵk[[[mll|h<{,++K]]}ݺu}}} 1q*M55Ng֮ ݸщCYWԴF@`aDFFҚFeee>tuuEDDyPuuuZZ&Ӗ |kaabw Է+<==nݪP Қ>}ҥKVqijgzyy222LMMVXAۖQdš5k䰁555.\ hrq*.*7.sC@?qS+}QQQgg-XZII Y}ҥK ?~]׽{nMMMuuuAAA__A{(>>2C\SSSVVe˖kj?S_ZZz6ccc*3/ d{٭[WݼyNXXL_Ӈ+WVM| LF666Hʊ6ꫨDMaϝ;֭[X,~ֵJPlmm_dp8Ĝ}IIIIIIoo.NNΐ!!! rqdvhh("55ybBBM]]ݻfΜ޾}cǎ< Ͱedd={ҥKϟ?g` tyVGM9PtS6Phܹ))᛬, %% f\ҮhVV_g:NHȝH dvx\\\rrr#BP FVVv̙_477"MD"q8["(##4C"x...|QQիW/G +G.]TTTTCCիRRRL{rr*ZZ ,k Ep{歭ͷnNpeBBBoo@\\ҥK|</,,<00rA+\WW`H:;;H'IwZ[[Oq`S "ɚQQD~칵pBdzJJJ xyy [bb%KҺ ,..M]]D"!C/ hbL2j  l""tteQM|];__O: (HL>t_ʚTTTTjUW555"""xU(yy1wuww'&&~׳,--l`H8MMPڮ]mյk..)ٴll߿;00sO?!9ѺFFXa^\\Og۷m8C[_D& < QNA:XGXH#%HEEE,ZH3"=tjKHH zTJJ:;ۚ^hX,S`(fggG&ݻGtwwjii%%%ikkcQ.]5wuuqqq(**z ,..b]]])1&!innnKKKmm☘;wЯScaawD]ffffffFFƵkh#H]]]Ȥ顁 ц1J=KI^$ɲ˞$>6!^PPF]eZڻMEdd4/ȃõ64| *ipcMBBH$|rszzzxxxh4zhݱ |Eϝ;ӧOfffrrrox4 Ӈ}zCC2MHHhhjUU}3̚mnhnhjj @tu}jeBݳed>>> BPyYYY#eaaq;vXYYhcc؞Ç#C0#""]]])JYYYYYG& srrbbbhKm755/**=}'88xǎȂcYOOyLLLNNN{{5~h`/rJ~~~ccc@@xb]``wǏsss'%%Y'S-O`7jLut̊xB |J ֽ{d~(g\\\6Jx(411:iRqqJ\\\FFFFFF]]}ٲeմdddF>7|ϟx&5y/_>ksc=|O&_a{6F"D"ŋtSN!ӴebbuV33311ڐ ߼y3H۵k //ѣGrt= F"""ׯ_OMM5669s̱cǔ-[6gΜUVgffFEE2-ORRWEE%55 X(={x{{khhTVV sՆ( fؿ7Ν;ui&]FFF~cU%'hlVT 15Ǯtڶjݜ\f2rgk{?q;iZ66陬^-~OwvtlHHH竫pb55Ap8BAAAZǏ{{{aȠ΢v]]1GH۳ F_pH(QdY֬YceeuȑyUWW>|,,,l|WojD"sDannf.-=ѣD޽{(󍍄Dfffkk+rhaa!FH>###s=ztƍ%NKK3ʏ'zѣז/__SSepjןA4nʴ]pH͛7۶m;{۷o%%%g䄼Nd,ZvpΝaaaEEE555H'i #]%??_PP Y |T曚0zzod1w}=__$܌=vvKl(jΜ9s`rrr"_vv#(EEEEE1TZZJ|r #74...ooA;1҉xy 8@lчAЄ8[[[dٮ]/8998]TTDK_tiH;Ν;eee޽:th#]zzzrrr]xi7SB &8R&AAߎH$Ҷ@tuu]xq͚5>|-W$ b}EDD|Z6!!+RMMͬYd_tL`l$hvʁ ^aa!Gh!!!妦NdE--((蘟%++K"hWж-W bA4fzTNaJ&a|11׻>|x~~~ׯ䴴pqqQUUݽ{Хi/^|e˖͝;111...RRRv266FNMYB A`dbNsQ@I.MI;.ta޽{kjjDEE|}}JJJ\n]}}SF)DJJرc^^^ZZZΝ̝;~[lYKK52c]GGGII6MYB A ($n0x^4)M...?????ϳD(++6O,YdɒA% @+>Z/_2w 2ՂJ UN)`pMƘ!)n e9(+63j$fnWUԗ>A )y|2*A%)l A8CK B2'8A<$"-[#SA=88ƕ ʳ1@ԋ!1 )c)JdHQѐ#b{hJ)&'2b  +0B ס  Nʁ  !.o b ,MY_Q V(! qc(! qJ  h\`  X  V(! qJ  h\`  X  V(! qJ  h\hdOIENDB`mcu8051ide-1.4.7/doc/handbook/img/005.png0000644000175000017500000004303512067167647020224 0ustar milleniummilleniumPNG  IHDR] pHYs D IDATxw\Ѣ8jAquz8-8*8j)m+[vWk+Zlj*nDT"Q.@L+! $ŋWNH"(n)={^%<".ۿIM [A%ۧMa^ۉ^2tG-@ت =]0IB@ h S4qvl^Km[~9/Do I6 d0.,[K OzϹD$e"P$ }Q”)S~7;oܸѵkW=v:ucSU&"beTVB%G v*--vp2u?'MZIf~}v.e}vC f}ɴ[49h -)!"dH kƏWjϟhb&}VVVdggwرj.$$DAV_ B7yJD%TD0 l:H$D4bĈO?ۛlmm#,f%2,W#yw\6S&G֭3ٳWՠŬDYQ'0:c䣭6c D?1kTVTTVR*-XQ=Qܾ})S>裡CkMŋ 4}*YWWڭ[7WW׈"zץR/XUU_۷SNcǎR٪Y;f,r*/2( 0ׯlaakmֶ᯻M'_aoiiH߿nݘÖ-L{<8i,ުU^$" -Zm7XZ1o}HsfYy#/77n}"H yP/(E>y"+.ʊeEEl`rxё#G 4cƌB}Ϝ}-Y7|Fuƍ&w߯<={=22rРAΞ8qbDD[snkB$IʊYicFFFuu?·~{wy?~͛׮]KLLo=rҊlrܹ[4OUTQF%TQJTYJ깹iѹÇvih~[ܱϾN{j]]?f917Vi#׮ۿF|ND9QQ+W:{#љ3%ǏMuD$=޶myڽm$22O2ΝC+`><ʊFuyaaa_uNNQ++#GL4)''gĉ ,~+ɉqsOKK۲e˱c._| 55(33S ܽ{whAoakB(}***YUDJ5ӧO;v/lmmG58'WUUUPPн{TWWW]ttR߾}e2ʈWGMUQE)USe9UQ*[7fم3f+}|eii;g挌uuD0:;SsXLfii2|dԨ=<.>1 g55Dz|Р 477ݹZY)"*QNn۷g?~ӯڵkccck4 0g[[UVݺuKîjB cǂ&YZZp8W^y\_Ђ~Vɪee"DVR*-ɄlwܙWޜeYs)ʴD:tM`iӦ[N;v\xQyf*ʨߥThHlُF@DEϢpkk33Dԡ4?k筬,;+oˏEDݺЭ fup}JJ\M^43x_̐ߞ3g g֬J}leGdEE"9.ϟ'OowReSю2.\.ɓ'666wќ~G[{aaggg55cǎ\.9<<쳲֭민iǎY]eآY\{='l-<>)dBLX!hʟ" @gL&tssS ~}-^XG||EttPMyZQ.J5 688t:`gשZ핕*AUU&D|[\53LN>|mQ(|6177=//wo:1'8xݴΝ{dm:;6vIxˊHԬuy8::޻wO~ѣGQg=~_^^feexyM|[-|a !gN暜zUAVYArSꫯFGG_|rݺu/eQzz?XQQֶ_~M9]bֲҿ6x'OuP(ܱc|Vx9Cbl޼Nzy<{cvLmNIEĬDԯ_ӧ6lȑ;]\\w}wV孷޲ׯ{9g">|x߾}NZQQѻwo3g&$$:tHcǎj՗#2*ˈ}aJDݺ[ݺu[ou,. _oߗg=z^MM… Fͽ~Bb~E=f1ww[`:ur εIO?=,y˻pr5v OG ˊ47f%?}ݲe… #Sۛӯ^KDԖK>{~6ϥ+%%%Æ #ĈsioHHغ5\]F$Ϧϙsyb#RZ[*<ÍʛgDuii{;1HVVyx藂Sx<4ܯ9JaaJ+͟NدXy\aǎfDqM|.],<#1 F+Ν޻wѣ[X彗/ﭸI*e9Xjo757~qxUOQu?u[o] -6>ݙ+,49#gV]KK/r˗zE4ǧYbbmM^^s޸Q?$#T,ed,~K,Z➙Yq{ U>sf2f2Ih+@̘1cFKң Ä!@.$gPzrp0;t6>]@D\.yڅ qYzzɶmK?qw?eeōQ\U/Ykƌ䈈[فûwxIާU0Z۪=mUmm *s[呫Vm0A^~^o B[uYA=5WGm֢jjje-ʘå}V&aZ0cL7=Wj-^MPPՖ-Z4hס*4kgYt)KL͚e\[gDSkNDT$% ,sorXQD5',$QD؊-/wn, Usca&a5JMOXe KB.L?.)-봜j~H$RI=΋/w*[6*|޼ ,yv**y[@PdL<_-MI@>Uy꘦Jk?/5JЂaY-ƾ&M,1;D$2'mz!"GGdh#FxV[[]VS;e)1ODK /'S p(jgݺu΃K-XV"Zfδ)=뱌9Q4ݢAi#6os>}:77wڵaaav6_*?6"*(l]fŊss6/;rС ~@'BP(>rX~C}Q/G4pH$ ,puuHII!3f4ׅ ^{+W`6A45/I& kx$PX&@KPI@s$`(:f0˛sp፽{^p!***33s;w<XbȐ!g&}^zFz$V)2 Q3ھ}u뚬nݺPu)ZuQZExE KP+WTtR`` $İ0a;(jm~ o7@ S| gݤf֭dS ha0BB ݃B}RT*Ǧ*tc"d㧲!B`)YZmsɶ]vlԽAv,fdd,koo}!":zD"!"X.`ܸqǎdϟ:t(o@Kধ;I<2R蒬dի<{}Qe$͡b)1HLLtˉ'Xuww O\d~%t9RA3k֬c31eFDEc+fLhi5kVEFZ|Z5dȐ:;˖-?~k޽KDnnn*{mذaÆ -[}iF&KP+5$cGYZUjUuքL߿?{캺:av=h C{&EV4g1YIn+$^^|~\\Ֆ-2V$CulĈ@TlH(ؿ_F 0H.CS9#yI[m |W\ў=f'OQi~_ZuqW69TVӬZ)>F&Q&8=ÇKN.W hM$}FDD޽{ɒ%[[3 ULzhrZ~н%Hlmmooڠ}ȑ999 9yV-@kFغn:Kܮ[Nh%"V-4]~X9o977aaa8iҤfo9|W1|^i}&5#l m~h!$ 1tL 0mr=.] p8DTVV0?&=~*"\|&>(X fsnnfδ}^Fr("hUKݥR>>`Y6##eY{{{ooCѣG% lC0I@w3 'O)ѠAsʇ TC&CA&=JMMU\09qą &%%YYYEFFTUU͘1֭[SLpݻ]PPW_}URR@] 헹`XRdধ۽JͲekO ڲ68X6(o8 IDAT0ݻ q_^c#_ܮc*,( _Xlf-[⒔d^$i׬&ٺbF ?Pan Es(~ g$/IQ4bit Z֭6XNVו|~0LׯsG#~ܿ~E2  d{&i"|BÌyՖ3 >Kz߫ TT o+'޾}ٙvQSSrJNMM]|yllYS0^=%JȨ%4IZƲ!P3zPZJm䓟WNJJڵkgϞID۷o2eJmmmPP>rȜdeW\rl2}#CPVhF*K?,pZ8;X[q87nEP(N!!l۶w߽|˃NS>}3fhM/^GGG}GSLosss<FD111$''pĈ'O֖'T6KEr4 7bqΝ[w}Ν;7e55ƌuVDBDsaߟQ|||\\رcg͚r[/trz"< GFjה=u';ss~XZSSrbK_nccd#j2 ȑvb1u>yܾʕRWWՅI8hfP/))髯=z4jԨ ߾}7ޘ8q" 4(11^ˠAv޽ycǎԼxbjjj```xxxtt#Gvڵ|;nܸ̙3WH$zwG-ݫW/E< -Aڪ$hYwl;tsء8YYZ<.(*RRʎ/ON.ܻwo;w4?.O/\.QS 3Dz<UtBqKD='ssbو#F!mnn#.|>_iӦMFD{nܸ!qF":~eƏڵwٵkO %p_^c#VU0 ò0f|e| ssO9ujӧ2Z*9HES\~aÂ,$QD؊ YL$VdM54m43J2T&㛙|.99 e C}J|vF~<⒔d^νqsVVVffff'G֯_&QIxxHH&ylNqբE*5I@ 0uL2 Z"ݝ<H1K L&J^8(rDMpp֢DT\̌e$UVPyci5+KuyĬEӰܬߋ=/Ov)uuK\\Æ<уί7uԢ+W< vHɇVwﮚ!G[H==œ&8QϾ|ky7_?w7^/8v5#_֖?yE?ب[J<ݿ_/ÆaV+,oooE1""O?UGrبZg{L FLhWO# QlkŐjbbb~?3777<<|ɒ%gNMM>|x]],rh.e˖ӧ^:))i׮]-R}'OΟ?֭[e":{lDDDmm88qB4 011 Iscr4$ gm7U_8ѻmj2 (d4ymJ oʔᆱ_A/Wbiϟ"/FDDXXX|8rȜsi|I_~ׯ1bjsz${;>Z#2 su Vw]D))zP`_s֭[ ?n8++++++GD.]ڴi0}*g޽$++k̙PR"7I; .:ujQQ">x`]]ݻw]֯_?E;ҥK-Z"*o~ .\hxg{҈_m۹kƃl$b)1fffXtwhhr>,{/;;u׮]Xν{߹s'9::o۶&͝;wӦMcƌIKKOu%>}ܸq;vPΪ9%K6oܷoowU~-q m$QD؊ ^no?.ɚjwyy->f@iR ڃ#Gfdd(3yɓ'o߸qlllbbbp8]v)蘟/iڴiӦMSnyܸq o偲q,ADnjE*U߿͛7QSqMKnyt&ٳٳmTZ#Q&sp`vUDYsW `=rC<񺙕^2ae0IISm_zI}{ͪ!p0km֟G\h5xaX,R_1$>^|̛CXǔ3>#I==k.'MeMGI|鸔WF гoϻOq}AzM1PYEs(~ g$/IQ4bt_&~X:ԩK%üfգE;mMn8:CQ?-e!!!wٳg866v֬YoSSS#""tlKon,nH_Ŗ WI~jY֜a Jʜ:؉,-+*mT4HM&%)2uMϠg0aӧOgϞb 펢h7B[ A޽cE&=tC^ze=4gǢRv,`iYDz66gap80F pPxy&"(##ѣGy湹yyyY]b{>};FDѣǘ1cU^:))i׮]d)))ʝ֭[>={(_3::zҥnnn֭ =ztݿK"6mZ=zqĉ3gK[n֭[\\\4VI)ӷo߄":uo""Etrz"< GFjהakiwu򴋃}Lf0,k05 ;jo8!+K?~|cǎqǏh޽666+VؼyJ1&&F"$&&={̚5+77wرJQqM61bŹ QLƗ.]z̙3gΤϟ?_HDt٤!C$%%>}ʕ+۷o'˗/?󹹹?sc}yyy w}_8p4X'""DO?͜9EE4ñs߸ѳN6R+ZY[SeeF 61Qu}"bF/dY;w+x℄ŋ3 3s̩S(׮]7vX"rC]re]]믿>`Zb^t)00xzzQYY|S||J]tO&Lp匁k_n222ƍgeeeeeh̘1DpZk___cff">>>>>&&̙3vvvoUPq~DS>/ V_J\#GBCC{9]eX98n( luuuݹs/,xm"ď{akmmݜɇrXXVaձfwz̈́3gFP0 !8PjmMM6\`('O5jݻw֭$Psaecbb6lؠRݻwD"ʚ9s&0K.MHHXhQHHHffJQp`,fdd,kotWVVFDD$&&˿7RLNN^pԩSuqGQsRD4mڴ5k`h{}8]iF&:Y3&yccƍ{̸I bs[ZPI@(d)SlyoQRf0uMϠ3 o(IM2̙AAAiiirvvV.C>:22͛3f̐H$E777y/+,Yp¤$+++y d2W^dɒ_:u 7{ԌNIIϾOƍ#GJJJ3 (vޱcGJJW_}g4V322R!<sܖxM3 `{H;LtW^YzZɓ6AAU[kf3V5KoCN V<֦M|bn]uhh&& jm ۶m3tG ak;H;-j:IB-R.©n?/NYk臱˟4,K:SS\#"Ys{w}KioOۂ];ujU& UkZABo$n:8;w2ŶptU_1k}lƉ(--ӹk׮ k7=A \'O:摑5eDaK۫Wyޒѣ%wr$~I$ zxxQmm3܂i++Wsҥ@IDeeeؑa]2u-!!a ̜9sԩk׮;v,qK.mڴa^{ogg1 b=W##3?.)-HX1"HM&bOD$/(IHtpŸq+]M).jg}n5:.^Kx㍉'ѠA.\zj///DҫW{5W_}URRݻwwߍŋSRR6o{5uԏ?x,˺) ߾B-N>p8L&suuWo,cd }VYUyw~7ߨÇ+>NkqJ68peٌ e:DDGH$D$uoYyÇYٰa޽{%IVV̙3ݳg˲O~JAP5rjƍ;vL&;СC YL$V߯K#ƒ^LFICJDxShG###ݭ"##hɒ%3fpww2e|Ç#G,((hց귬ԫW/Cŋ{|f͚:h }ӷm۶dɒoڠAƌӿ4c [̨o_[[?Q.2C Zɐ!CT.'(blleƏڵw[1ECD|>_iӦM6,,,o&]v)mll״-HS۰aÆ l3LAAD4w̙6~g$͡XQ 0cmр<==ׯ_?lذ7;{IDATԆO 3$ޯZhreBBjʘ(xkSSܸq;M%))нhm@='cdT}zz*O\fPB;[k_)Wd,Ԋ$OE2_fgkd#j2 h E3 ghHV>|n"˲5u2޷-tqЩ%"\LѮnu@@u;@rZN`!Gr88;fdKSgC[%Y,Cdf˽w?%%jbqMRY5)SV?inz@`~=Ot 3 0P'GA),(͹sDZC17'"ozBcEU%"Vl9N 0D,0qqyc>,Jv ۳eۏs+@i&|$zaʳX|Pqf ۻV/m 3 lbeҥ57VߊLТ:_d@& )2 p^yE:`ˋϏڲ68X69OJ>C%llm2pƲ%qaκ/-RTF{:uifŝ\RQ֩qrr&93j+#S/@;TlYڵ'mnD㰕!"QLU-W7OPH`G;=VTpy yꩪ~$i;UʯgKZpϬ_TTTTTTTjqrlIE%mJ-[,i=RVZ@qJ`D(KAcL[婨o~ hD׶ytԉ,2JJJX,v &@ȱ'}A5W.CB.RL}_W{-'Y<{ A[h4Л? TTTTTvn=SؑGr%ge հ 茡WTTTTTvn$Iפ)ć,YL-5N7<ۯ}6'<<FY͆(t:BBBt#Itɣ,I棕W7bMǴ,${I?yͮ~̍Yt_(,FEEׂsq0r"V6oe۳/q%ϭ^eIL0.\<ʑd)hy"Jb}+UEgQi@`8{S2!GA)OŴ(nkE /R`Hsxzy*kiѦ t3%LQVƶsю"ҫ)cZh*l>ܛCJ󣈒~}\frJҔ'Imh1axHݠ3GqBb/3,.(ꘖ!UD ڽ!0!+ǣW2+ΊsX/;+)/ICŭ 腃KXS[e̡p䇓<@[UPn16V]/ pYWRIN]ĊƗ}UMX}?psSh4AAagYRo9NX[M"ؼqcUTlUySW|w_xuZ)$4z#mZ{[rTg+7=rlFLÆfnJh , R3H=gz9_Npoל7Y0KJ0Dkњ80k8Mfa)=;e_ I^ySʮ%oŰ0Ϯ9?k 8/Ƭ-&B^сb ZVFSXMp`w附(zJQG :0 zZ ʹFJ:l=809+ВoRIc#.RZEFh&w 厰l2- yّVH3;qfG@Ek <|k49z:9 H/Ϥ1m1ѢyTUH-Jok~G}:94V]D,4 $o8; 33X)0ED&Z ӔѤ媵-2A fl57' iF~}Y=؅@ !46"|ճve kcX$<{WVX!#O+zn;=7fm+UϮ9S,DxޯT_XHNnO:GY# z)G)/ܚH@E"s-D6{CWM$rmW%gJxH^₥Î(&neH$ $IIL3(iq5V7  G*9#BX$KX$ B iPfEd+!˴R|K$͍4rQ)\-R6'2oemyb'ȗ Є2x@iig,#hG kF'NK$KO'A Im[ 1 =iL"!4k%ܗRm~{i ?Gr_p+ӹu4 MB~}+I{/s?FjuKTxP璪'+x:~*oxڹ}͛朌guNƓ$ NK>N9"ih}_|L*j#/`|X(b%V_ۈs,P`H!hd+fmLE-A=`L~f vf|%i)$7,NA玐l>Z{m(k[Kxr+  6v|c&2:hDR,t)`Bd&YQ䫣zc( ޔ^ђ[Zƃcs^ /b2$D&Rhg9sҌ~ї8n6z6ŀ ;2hupP(: "!$PLQ^S%eTն+tڕ׺C(9ch2Rěk҈#;=Z;dxg*6&x EHXY6 ,UnùݕğOj-ヨ]W9\LK###g&{vL)cr%eG +U#Io'WVG'ʰJ Z %V=K+B)tแ&./gU.)WQOdF-elKb̷&J4jш9!~.vDV`G"\#Q+2ZcCB+,(zy4:=)Sʃ"ADdH`D=b(TϗJ@gMf}*W.N ;:FAbߎH#)P$qwp4YgR@]dl?ɑb$a WJv&Vh:ZIׄ1-gbA]8^a*_㝣ؿG3`/#ɳkpJYejdžHrÈY*r<%aD+0kl)!c[O3 hG:LY:-y$2ƍHh#f_jyscsZ"c 31Գ;}TetP$ӱU4t$ 1JߤI՗ZƆct@g20W8ri$C㩞}+3{/mJ!J>u ;SE.鹸r̨ްx=X{H![_̗[y=>%4: PL3%J/J3)kgF> 3^Hdl9.9@D?PR`wvECg7MxVo'\amyMzӹc4~-jIĒcڧuK xVŁáp8$= V< =5ZV :oج$yvB9- $Y$c: !, ,LEFI #OC"I`BJ,Ik(U XEe&I!d #9hdŊFH( Bb!2"8D.(A0%KrB9pEPDp ђ$ @Ao2^ gt4 50k8+wW܂w2dC B9h*3r^P$@ =%h9h0BFrx0OOC@;:#pHX,ʈ@l",a O8g={ 6V%MyP2&r**ׁsp=N|U xx&srj$ C -kT KK2F7<w f`m,N^aa!B***ui_uXӮ ~>s0Gi1B;P YFkEjTC+E.ŀsD+$ K"QoڹܳKvZߺf$Л7"OB"qENY)(;_G_~9GTTTTT SnaXlJEEEEEEdQ0n^-?^#e*******κUH`y_8{UTTTTTTꇂZS3TTTTTTT5ЫW|jWQQQQQ5 A??Lk~EEEEE8w\ |0#{uֽ J0#wo=ZZ AW^M}UбcYڱV4ݰ]۶.%zBZEj*C` 2,_Nk!h}Hnj+:tI(** ֝JQQ$0ϟOJJ YYYH˗[j@WlٲFŔ[رcUK|G qqwW_֧OtfW￿z,>+ nG$oNϞ=jՋG0bN&/11I&];wҷo_t:$&&@޽INNG#//˗/d"22ɓ'QgEVXA6m<:t^zhѣgΜ H~MbA$vM֭yWxHHHp+w/\|UҪU+Z-ڵ_i |ˆ#HOOwX$*=?> k_0;2w\ױ@Tm&mW_ק+^OcPT6V!Hqi%6svZiūVEn%7+\I‘]u;".G Jwm {V8 n6ʕ+FGBqABQZZ*Zl)F)'VZ%5k&fΜ)f @Nj۷'NÇ !XhC!Dqq0bÆ ~e @={Vv-N*RRRĖ-[DvK/䲣k׮bn\t79CNjD$6o,z!FGđ#GĦMN76lGm۶O=B<>*--֭3g8|غu0X!DFFeU짃 Y,~g /0QZZZ-E快? F#v*6o,6n(:v(nv(HOOt׿%׾`SSDllxGšCҥK^V OFMH_է/]$ń DRRXh f٣/*^^hܸ2e8t裏l۷HwM>lyTҥKbчVoK Y~YBv⫢7Ź'Of[.{,a=~c왙"ctb;+VpQXXg ,vc~駮/ݺuB%4سgBoF4iDl6+b1gJ;m41enݺ\v)"##bqKNNɩ棊m&#^~eYfD!+?Xy|Tqbܾ+N}B[nZ٪iŊl6toFT/m u/"))ɵo߾}Ǐ}jg}&bbbju{WS`K9sD6mfs .-Zp;ujޛ}2GEX,Am}ݺ6Q~O|HD_w/ܰ!xx!(yyA{]v|rǎ{ 0|mTݻ qŠAXbƍC,d2㏳zjcDzp ˙Laa!-[$&&.Ҽk֬o^[-?Pyh5 Fo7=/pwҪU+nf&M h5h4ҫW/={ǯ,믿&22H4iu_URRRӧ[]Ξ='x": >оO;voꔨ;ãra떷o߾A?Rޣdv툨t={DGңeTc<Ile(qqq˚Z IDAT/tNU$UILLd̞=+WnݺddddУGtˆ#iҤ eeԱcG6nXmTTjof}m66mĻˬYHJJ"66ikY=9}g:tZGUE-Z`ڗiY϶ GOj|k)JPl䈈Y)۳CaaD6}Lj3ޘ5k7xõcǎ$''S\\ڷcf3ML !!Çd6lH|||в׬YNcݺuL6p8.cǎ9uzuui&MbC b0c zE֭Zz5c8pڵk)mM)--@ ߃G.]\*}',,8hٲ}Uԩ^ib>̙3kO] ڗ:w̶mʶ}vؑ{۳;}ZʣR?Z6mJH~6mV0ކN2&ND׹3v"lx >y2͓Ȟ6-  ի]6lȄ 8pWfƌ,'f3ׯĉݛ3f[oqZ)%_İvZ9B~xwz4[k׮%))=zW_/c0_RAj;U1ᙤP~;\l{x~}ᦛhʹ &0vMyWٲe ?c}rCs)v{׾߿7T{IOOgݪeAb>Ϗcjښݫd|D/H^U7 "׷*@vv6?~!&Losn8T{KRXXȎ;?ɘJ_TQG}skӖz%ĬYSf'O{o߾<#m UV|DFFC3ϸUTfŋJq|=seرUO*@/>]fxTεJmkAGRw=oM] }EѫQʯK ^o{]s1[M-4xA`~Ӑ1>]4xA6nC5]acWtUlϗ6nrtn܋iܝ/$s&= {p]f}yeB/FhJi3Y^wy7СC9y|ד瓒@VV$qZSI8w\QHeܾTTT7_܁9 qˣi} Z F24v{ `I S76ktfw@᱄~f("_ d 4Oȡ1~e9rHHJJb޽,[TƍuAhd2պrzKeEE}QN9еF#i d&=U!=Av$Ë(%8.//+L(㠷Qp9gDiߎ~YABΤt[1ZWgtt4{vWRR¸q&44wyNk~FF۬s$i e{bGV4]HG`}Āt [I$ZEa0;(Úk;-v N;)Z1ۉADŨbi˗/d"22ɓ'Bرc 8^Oll,suw˖-t҅?Mb43f ݛdy{9n8q!C뉊bXVv;$}vzVW^=zciժZvyw z|k-Gѯ_?>:tPX,$IbݴnݚW^y}k3vĈL:-}bb"&M`ΝNGDD䟪KEEx;\^Ӹ΄v\M qdʧdsάA7)}}xIA֖o:䈛,_q;nzCg4~ivaK%>==)p}(vv;6T0zhf30j($Ib۶m|7:tbJVHJJ7`̙^o^g_rJ?O?D׮]Yx1{0vҥKy͘1srQF#fC?/0f&LbǛ@ĵ1??{w]o>{1?R?xꩧ|~r@bØ1cXjλMk׮e8FMn8p+Wȑ#{WRQQj|2|$]v;o]vp83:tm(N8Mtmz l-2Mw=a;15¯ ~_dCxupuMhQMFOOnݚΓ/¶m `t֍\֬Yn磏>Bѭ[7Μ9ŋ{…O?޽{s9$ FSmkגNXsoGx W~n Sٳg $,,_~zN_k_k/_``hZu޽{ٶmnF#O=#+S9ͮ]|t|l9r$SNe߾}dza"""8'%vu";UV| 6;3W7=쌍2>|}7iɭ\v҅Aϊ+7nZV?ʕ+_Xz5?m5i***uCzGIDIށe%]ahuv>yK2}@M t[1y2^Yvy(&Rw[>}y-`;aqLR%`x/~wؑ7VYWެ,ϯɲs\&}\fǶmشi.f"))k`'P;%7ʢOUy+X5/eee33{lV\ɺuR322ѣ]taĈ}4iҤ>#_AH'A~iOnۅ1Q,[֡o7%|ҍOSIwֈ0ڔj+SmjS>%s17$k`΄tx#**y>uzbbb8}4&MBҩS'ߏ~u2>̙3Z$%]WL^^:uicǎINNصoǎf6mzM_z5c8pڵku-v^k;v޽{]`Ϟ=nOMFn i8|0K,aÆ;@k֬Aӱn:MʪrQk_ƳnG G.?=}^ 8_ 웋#k7JYt̾B̀r-_'ÛOo66&|.Ԡt"??!~;m۶eرݻ[2ydڷo$I=O [/Aj;U1ᙤP~;]lY S_DYG{ac%onr-[@^ZwuSصkkm_ٿTκU'$u&=㘚&c*,i5K!f".I^f#{KRXXȎ;?ɘ1c4(5?ϵi=K{`M}RjՊ/_Hz!yQQQQ=W)H[54k۱OV 4Hm_nj;TTTT'ANׅJrϜoTTTTTnPZn}]ڬ{Gm4 ;j!;TQQQQQKʯ5Ы :!+Ε7nվ"ٽ;ktA9goUut.\h"=݌рT3晈:Ph@VVW~ x6СC9y2jJVV$U[ҳ6رckPOZZm8Z-5b„ ɞ۪U*]*EEEHĹs\ׯYoU?>)))u&_ΪSQU4r#z,yدj32foap^|3gڶ0cF#GFп!ii >Z[P.{fΜɸq\F?qhz!j+fN>o9sеkWRSSy׸뮻HIIq-KNnxWX~=۷owX5P۷*5>mѵk[fT3N}~bn[FF~tW$'8qwmf믭μy&ƌ)XPX-))aܸqdgg BCCywL?-{&M@ҥK\kr-ӴiSvɠAiذSNh JPMm'pܹg3ݺiV-ӧV(*ϥ$$hڊQqEXD˗ILLd2ɓw?vDܹs]|sj1bSNu#11I&dΝ;ٳ'zݻo߾Z){ lj7jԈ~;Ȏ@iժZvڹ_ٷ$>>NG~OnG$oNϞ=jՋGܹ}鈈 11:-vu ^'**ӧcZʳb ڴi^СC FC=8S]`Ӄ?r"Wz[{ݻ7<#|4ilf *.\ .1zh!CNjD$6o,z!F)HƊG}T:tH,]Tzj*ysss ŢEDLLp8B!h6l+ҥK"<<\L0A$%%E0a6=;в !Đ!CO?JWySE!G!I=zXxHMM/9|"44ԫc?^xAR7ƍ)SC>HfѾ}{!6M">>^l߾]8qB 0@ >\!nbԩ"%%ElٲEkNKB! ٳg(Uiihٲ9rطoXjh֬9s[yn6qi&Dƍņ ѣGE۶mSO=Uڣ?*[z'_^l6ڵXx~ܟm5@ۀ7aUd;w7o7n;vsO@JKK u&̙#>PTmZs#q%h߷%,,ny~h;UQrĊV6!I'{X@5D?n+LEL\pm[yyrܹSDFF ʗ,#>3#V+"ϟ7o写%4سgBoF4iDl6r̙#ڴi#l{ze=Ń>( :w,/^  +VfY !G|())q… E-3ujO?u_x֭K9sDnniĔ)Su}+VpW+қfa]ٴix>}/=k,V@kl79*ڋBtͥ_&}2vhf:;_~Gݻw۷e?}r!r۹VHT􀷃k>PO/رƎsdg&㥦:o 6$t`6K)SuBZFFO?4/|ҲeKWEqOKK#%%>}&̞=_>ƺGEE1h {YbƍCرc~n^S+6iӦȲ̃>ȃ>(߿ 2qDL&<@@r;UV| 6;3F#eeeto߾n۷/۶ms׽{w!!!M&?8+W_~aծ9 y'\2\q_U|tޝo 0|ӉYfzwe_{u͟ior |Zl'=`ٱcjW `̟>px={#GHWf IDATMMb\ǯ]nT ' :)w5U_d={DGKi֡={ӄ_~?cǎlܸZި(UOLLd̞=+WnݺȲ4H);Dw^͛ǧ~ 8~>}ӧ/^?+Sf3c۶mlڴw}YfG5x3o222ѣ]taĈ}4ibÇСC:*ڕUMW{?xhV૽Tܛm6L; kHSQ>*p+kw_39o]/ļd{y=z06w6{"**8O:^'&&N>ͤIjtԉc]}YfΜ7oU8|0K,aÆcr:w̶mljZMaaa|g_E,**62MV^ͼyBnvڶmرcٻw/[neɴoI=z46'xK,X!CJӦM߿?fb4]vY:EQ"* ME6%`OD1jOĂ-F#6`) `C Hew?7,,[|>{g̙3=Ν;m$==5/_5jك[n!44sAdd$̙#PVVK" III@jj*,--EM0/q}8pN===dee!** ޽qdggtQ$CB[[SNE\\yf7>Uw\6y_e/iiix}.Y1 oZ̙3q \zSL!C`ffV1#=*!؋*+T,ƩJ%.rq9pyVHBB+%y"dYWuaG% $2rHLE'''HڵkG~7&MR٪G*ټy3@>|(4""" p8ʊJ]'K%-ꫯ!˗;N\]]ɵkȩDx,_bffF6::6MLl,\c*Y`QWW'dΜ9ԩSDIIlڴQ"y\=y򄸹%%%K[fq899ݻw3WXQc1 <SR-Ɠ$GRVGx!e˖6M.]*eMIyǙc~Ү)ՑT #w&m۶%ÃdeeT_bgϞl}Vi)T]'j{iXkӔ%HRԩS"Ogt萏ڴC^r͈3gϪCW7FINNFdd$OΜ|GMi}~m9ܸqbSRGzz:.]<e.k܋ wiǒj QQ.x<JK!qwDM ӈ6Yf6NHH]aÆf֌RhR>5)S>_a͚R^]RW êݻqAi>LMMqqX>>>044… E)گO Y_y-1]nG*+oF˫@(&^^^jn5( ז}lOϟ<'//Z B4ZDOP( iwffrit.BP(M}P( #WS( Bi<^-p9FFD:6W \aU?]!kpb4ӒBܜ/kJ]Gtt`;'LӧщtήFFF`Xp`kk+߳ܺu ZZZ#11  OٺPUoYy&Mla~ .Hb_~97еkW_F}.]ٟ:pssc9Rd X,`Ȑ!xSÇXr%LLLpS"--V9U/g޼y6lK6 5$!sGjgY),,«WE~K@nܸ]]OK}iy7&&ȫr,8J]c?_ގNh{lY)ZX}\zFwWW^ 77{咙e˖!&&wAHHx<FOTQQ~ UUUԧl]իWGzz:݋Wb̙Xv-Z_ zuիWEݹsnի_D=z4bbbqp)`„ LŋǺup=ŋpss֭[k׮2;&&At/ 5$!s*1TZZ>M ő}wJ,#ʪ 'с;@Adc-,عsyq~1a{Ν;w;;;""" `&''f7hH߆ƏyY:Ivẖ-[ѣVҜ4I:IsDi|\kk(;8"7 ,,DβePsw[JxBYDSFs= OOO0#""ЫW/p\w% 6m-Z}5tG8 ]5.^nݺKJdGi߿?\.}vިQ0{l]<==) xzzBUUZZZ1c{Y1bΟ?b0ō'O`РArŋQVVƔ. Ief&z^|9!322bDƴ ޽{ajj .]0d000Ft&M1%i{}h8GS@UgP5"8:( jIɧloann3%׮B!lm[ (//Gnn.VZnݺcǎ5powU! T#MCC-bbJ;;;3>!!pqqA~x@@N ZZZ"O#>|4;g˪ĉɯZnUmqA GG˥Wj8Zie]FTUUIYYpqvv&$88%%%^k;*׎Hݻw36xEEE$00װ_u_Nݻw $6T-!)Lm}^Wsw$2R|Zq/>zzz"SŒx1z uuu朓󑞞.5Ȩβ@A\\cccDDD@SS\.J}U8p LMMѹsg >;TTTd*޽{3{MMM$%%kLI{LV9.KWz6zzP1e]]RTćJֺQ}1n޼z >35 >>|AAA[VG^UG^@PCNU 5c%%%ѣooom۶DXX,Yѣx?߾}Cq>}{Xc9r@lmmakkT_ kLR~􄿿?VZ .ҥKLZnpe4yƽ,#fUIKleeeaaa… ?0`\>>p]ʕ+ؼy3#F L[S}kar?ִf_'| r+KH۷e X\H>uu+ΝC,׷nY£K.apuuylee0+߷$u;w~v]VGOO#F5kj,X:qB 1O/ puuƍfa[u}F144f@GG߿ѣb?*,,lZiH_5s$ wwwܿ6Tdp\ϟ?O7$dee1@de޺u <R#xOuܹs̺/P=>>;((;v쀫+֭[8 88X&%%%"/C^^>3ǔq)`ch}kSSJx#PBHO e''h̘11P;e/^ ::ш¶m!++ QQQxߏ#G ;;>|ĉ3f 66ž=߅U8`„ Ǘ_~8uH7nWy3? y*pqqAll,E XG)CIX[[ӧ2!pwwǨQgܺu 3g"##1GY"m<;|>sEbb"N8={`РAɓ'A w͛71c XXX{.Ȫϓ'O`mm-QV- mmmL:qqq /͛6-5]}P*熨*7nuĉ1|p̜9Ce?|0.];wxM6a߾}>|8VXYf닎{mffHm3f@qZY-[I" ̐!Cj]]Ν;/ M' i!$$O} 60Orss1i$FPPпcȐ!ذaC:SPPgϞ¢PVVFHH oooL<?HZ$d)۽{w@lڵk &ǙX_o>;v &&&8~ nj___ k׮Ŏ;JK9s&0j(|g8tǔq/>,s5iGq MVԩSb_`@VVlllK{RZ'OqرVA/#Azz:.]XeQ%@nG_Ͱyo=J^^^j899ʕ+ Q`hhتHֶQ(-BP(P( #:z BP>bv􅅅`XxU##?KMMEΝk/((ԩS }}}lݺJP( EM'C]]]$ru tRi .D||} L2@T):wÇcpwwo"! 0Oʭ>={2W}oLR( PwݺuC||9 hjjJ8ji[ Budp\ϟ?8o(**ҥK?>\]]!AAAرc\]]n:AEEnX^H\xx8bZ}4Ӷ Bi=kQRR9s``XCVV`aa@9rƇPVVKB[[vvvFjj*,--:{XYPWWp|8qG. YlKP(Os5r1t:8$999$''ٳ /_$2rHLIii)!@@,X@Չ:3g9uQRR"6m",_bffF-[Fl6YtX]*9x 133)S #[nh|>@?~̜;q&P(J!n#rncÎH2t~b̽)K/4+ԩS3gNބP( )KOar;^#%Aհ2.] jCP( u B|PGOP(GܫYУ!Ms@P(JC) BBP(iB`}Uq:'/O QQP&gO6iuݮ\`dU?Dܿ_<mÎoӧ@Hdgkժȑ#bD 2Ϟ=c򹹹Wy>}@EМ+W:u*d#NŋlX,&hPcRXXW^5z]u֭[L0%q4Rb899zIE5FZ; i7$&&6O:gbokַ/ӦqqpD9Q͛kN̬caFx҄x!9J=ZHKϋe8rDMb}Gʕ+}K, 8q";uXx1qF)))Xv-ܐEEErzj@HH֮]p&OΝ%:***ovɴT{T>Eh_ԍ?ѣGuΎ>?vGf96lPٳ|מ[wbX,AU7o7772vX&ߠAȂ |UPH!䫯",;:tԨO98qI޽{DAAÇdҥD]]\<Ҷm[2sLOGx< W 'OOzA:DEj#Y/ɫ5B6cFu@9s\',xG/ECIRRX'_yde ɌE2;z5N:1N -._U&ɓ'㉎@ȡCS̙3㑂BH` $"'ƄƳgϮ 9¤:t STTD6nHrss瓙3gB$;k׮UUURVVF.\@1 &DIIKCR[qFbff&:+;;lrmB!D__|A`M@Ne'N08@z]C/Y6Y ѣG)++cέ^3g *x;TTT&aoo/:aaa"z9s… x!>} fM$@A\\cccDDD@SS\.TVpqqio~k.|NNNbupy̙30a8PPP;2Š1Lfڨrfuҏ'Obܹo߾{:j*?={B]/otڵkǤs\t5}GRjUYJzۦ"˘Nu<~X&)MQ k46_bRlެIjKZwv9Xa#.fWWE(*o//q>}{Ν;رc9믿G/IN]x{.pl޼~~~,KBQL>èQ0x`LԆ2뇰0DEEa… MMM 0RV##mǪz螞ǪUp\tI֭._\LM@5o?VgĈ}ĝ!Dl#\uٵUImGmrd+Ym 6ϯqNq'j#Y7dWk@Pdyh dÜ_;%$pv9lQ+¯9>d޿/s~uuu=zTsJ ѦMm;v֭C\\TTT,[ns32CQQ.]*"Knnn~:ܹ8;;۸~:,Sr\OeÇ ;;;LNN˅ s奾XuuuĄyw:_%K[nHHH@Q7nǫ̕<Է$M^=髖lJ:ʛAy\gFkYhG_RB71B!BobXYɓpr` %h@GD|*]x%,--QFaϞ=uBCC1gDFFbΜ92ɩ eeeXt)R$߄ /ǁp)CVV;߿GAvvLwۃFHHڶm }}}XZZBII !!!Vm*^dggcƌšCg TNqtt&O<^^^sn޼3fB'P~l(Ǝ >s"11'N={0h :ژ:u*___̛7l6uoHjZbҤI96 pwwǐ!CaK}x 'OЧObÆ 6lB8::'OO?$շ$MlSeee۷ǎ ?^.\g+VcCHVy-! ,s5iGq MXr)'J:tGJ m!/O5M3gϪCW7^HL>9?"66V蔖+JCKOar;^#%Aհ2.]Zx,BxM ?ER`٘5kڵaRdcRgGk֔bꒆԧ> OO.޽k7͍)?+VXpC@Ґo$vBX @CU{2^^^jn5(cp;^漯߼ƽڿ) Bi IIl=BP(:z BP>b=zCII m۶56EBTbիW^BPZV;dEnG/m"::wΝ;{nyE@EE~-TBP(6=(b8|Ѐ n޼gbAMM 6m BP>&^z%/,܎ֶF۷+US򢮮.>BP>M*}]^x B^:z BP>bP( #{S( Bi^y`$:BP(lHڻ^^juƍkJ( BFe\P( #Fw߿ǵs ENMMVB|P2诅+6.yuE4BT<>@U BP(Z'My]zV145 J@]M)TP( 哠I"ݺt9GAir՛ )ZS0eQ;65P((0$w6< m@ [^1@rӦem-Lr=Cj޿JĔ)GP(͆ڲPq? Dkb&aj6f`r9x*qMxr~)bq B!v t vvvزe ѣG2dHODҪfs֮qx!$bܹb߿GGGե BiY(0=Tm=5ܥ5&@>56NG d4U^sB~GR`AjLی|$?OWwڴiN> 6 &&۶mÅ &ҾuQj[Ν˗/E;6 ÁW(6Aa.=;QDif.RVyOTl@B9{vmXu՝999߱~8::BGGXf nSLwӧ0rH<}Z1L0?3\]]%ٳppp9ɤ=zzBϞ=qa899aaߕs.uuuxƍ2|KKiP<<@9Q~] ūg.Wl6V1QQQҥ LMME?33 ,ի]b…7o~É'#ى=x%%%طo_$''cʕضmѮ];,_[vX1}ξ4yIHH`ϟua?ptt?\HH<<<ÇLJR۷5k֯_ϟgϖӧOdٳh߾=@\\6l؀@ܾ}.\s)JPCK(бۚAEiFRKt~BuǏ`9rϟ?[ZMSQc O (}mAσh %v1999ӓ+W.]DC__/_9B!444P\\̔eXXj:w\˗/cĈc߸qx"&N]B[[͓YFCɏ5 &&&aiiɤ`ܹPPPAPPP044Ddd$,,,ڶwޘ4i444tRѣG"~ܻwyyy1cXj\RbڴinP(p|t(*R@YvR3Djyy8۷0227`ll,ѷ$vսr'v7 P ~Nȝl]}(hii!;;R?~&M9k׮L+))!//ػw/áeee0H6ӻwо}{7ǃ2rss {{L`h(QVcR} }~߾}b~܉030jwh;wס 2il6:t@NNo߾EhhzmꚕSKK ***۷oEU7 ҲKx_/))~Bu|ĈHMMW_}<9˖-[x<^[4R>B<(^bt$=N Q;;;}IIIx"1eQ%M-w~~>JKKmmm ITQՑf!7n@hh(|||DSRRRRR``` G[[ƍCBBp=9s&&&ꪫTw^^JJJЦM舼7 PI,;2t(1Z^^?!:1cի4'$D8J@9 VZ&i*V8zPxc̙GNNj*L> rssCpp0ܹ2cʕ`X())\.p |憋/ݻ(**ѯ_?`ذa?b޽Nw(,,D~~QVV&LU"ɓ'QXX 6@WW]t1l0\pm___7`Çٳgqma8p TTT0rHΝ;%B4=©0J(I1ixEP))qIDATPdn"QF]Dm`,Yyyyr.+ѷ$WNije ˀ|zPMI9J_TT5dC-_C>}h"c5oׯ/,--quoOOOW^>}:<<<3g>sssY ,@Ϟ=1o[&n@eQlq8ꊽ=F 777B899/hR>v-NNND߾}! ѿ,ZբP(v)RzHNUN^6ͻPQ,(!ȿ;BBb)o[;, | a yaXXl-[ܪP(Z+N^vћ鸑MQBP(*_yݘzP( C}@E&G?p\ =غPd1ͭB>e"kjjJBP('n5=BP(E^հFBP(JEհS3P( Bi0>3bsAP( `cY BP( b?)- 6IENDB`mcu8051ide-1.4.7/doc/handbook/img/goto2.png0000644000175000017500000000233612067167647020751 0ustar milleniummilleniumPNG  IHDRĴl;sRGBbKGD pHYs  @AtIME/E6e^IDAT8˥]lU̝ݙ~eW*ERc4E5A" }2/JI0>RVtw;nw/,BƓ_=s<@DD$ G"cS1ak$I%I$i@Axˌh}EQ "Al1iu]7n8  8F{dNQ& !`>ݧ*TUjBqzVJiN !ViM4Ȳ0 aY֩J[#"3nccz϶m0 &*%ũTT*VeY$IJf2'& @pM|~Iggl6 !_eyKl&{(!^`* BV ð8>>~lxxxӾ;D[KDDt/gOgۀMWpk(/' @,C,uuAc_D CH,KKt6__7]qBia8W%2ǹ8k+瘄HOכ-(JN5Z ښsd-!&}aY:qˎ|STB0eA @5o۟|/ L;tM:qcQؽYeIENDB`mcu8051ide-1.4.7/doc/handbook/img/001.png0000644000175000017500000012317312067167647020222 0ustar milleniummilleniumPNG  IHDRQE pHYs D IDATxyxUևU{gB6BBd [dG0( 0ʈ`A@( !a'$!!d_]UUTwz˂_O휮s9.ӷνev@DDDDDDDDD#&""""""""""- &""""""""""- &""""""""""- &""""""""""- &""""""""""- &""""""""""- &""""""""""- i˶mXmӞnUOxKtd$-_""r/l'3""""""""m˒f6^SUZ]i;ęf?=u:`pww#""nܸqϽz2]xݻ*555QQQ C7nܨP(> 6 UV7n}Ŋ7oϢu_~a>w=?x3g^yVQ]yI% <+gWvY5rGYW॔ȼZj1\zqSt3;\B>2$KN8]TB[bIѳXoU*pwZFBJNJ ٻVoxsn2 '%u+pkڝ_VA m0<ĤYYL]*۶U[dIf?qR#u7^guH8XS`ic !ՙ?@+m@MM… KF/R~o_|wm򮷷޽{MIkMG68<<ɓ SO=m۶zh͙^^^;wן={ߙ3g~%K4׿RO?]n]7ouDr2v\J U>zd~\.peDDϛ+֭Tj!iAH(( IJ("I$IS]up(i^:FZ( : HܵZ}ӧ!䴥z4CO>C xǣоZN0[GFfifKaa ömx1OH@RqAuooH$ Iܸ3w]XT*:~~~#F~eɓ'>|wSN2eʰa.]g>008t*l믿~f͚V'N8eC[) Pi&I3GC>ȼ?WJ[BvB{\3oPcy1.jt o~ı7,`zٳĀ`deݸ}`0ح^PADqE եR 'mlHT|%t4W G $] * W;ns[qLq1o0۶m ::%۷6u>̉zZ{9k9N2D8$wa%rNܡf^5FpݻG{%˖-kuAh;.M =gΜkڤ0Mm/n 0 ü lcFq֭7o޴EE*v޽kIIIo 2_6x7x^8x`޽:SN}-|n&fɔSڻ RSS?(sܸL{{{,L~GE!2.'N`$'DGô_ '͂W%:rE8iTɁ0ZSGQia)%mDPid$2;fRYY4 `+JJS7ΝX>x[FDR4| ̃$%TÎoM)\]ρ $mit5_pϭ{stӕg.qNN3H%ӈ bar?dskFzI#N0;~3LxЦ>3555&L8wYnޥ1uZv7TKE3E!-`iehfon. mRahai2ې2V#"""""!q]ĝӀiw^Z־v ׮5|n%?);R7;cSk46bIs#I)J{|^ddH(<+`pJ%$)JU/ \\~G㎀Fޥn 2$/X3M3R=YjH/EUϏhܨ: kuUt|/Zf6׿q 'tF}%Fu=[{E$IؔV4C7تafV~K/]W(f"""""md[62Kя?&>UsnrϻgդI<ˍN41b^"Fn׿ 0E/QD [h 'ԑjLR*8(* ~ MKp j/޽n, k꯽7y$2 Gbfhf;3eafV@,}d]nJDDa*oeuAC :&kͮxK:~>m0<ĤYjQLt@ilZZKJpT׭ Ipxt:Vt+.}HzQQQ_8{N*\[W7$$1m2ޜ;G!xwa`W~\Rm!6 x5k֘V9Ro3^scfM':io1]S̰VT~1Y8ٹiO :&,,ii+@!`4R$)(߿r^pÇòd2ɖ4_)Ҭ 淢n#n*}ovFfrTivV  M,xARPJAv۰aÖ-[/^XPP~4%RBV[JkI jI6S4aΘu__'~&N;JDDD\_`uʛȱ:&,Ѫ3"TjW&PNN"HB0$d̅OW_3k>cAٞ7Խ4󥙮^HpWz/X`߾}7o s^7EUoeYJ#ÝZ81}DDDDDD:.HgJ!Alc״Hyyy-_oQ&ydΏ~yrm]W''0ڸ]زeKkzgL[GYW Y#gyR$/ũso%N.ܮ˯6ޒgyAM݂%7~Ƚu]!7ӽ ;t lp,]z$5`t|i/^RxPZ(ʻRWK ?"S{巆FNŒslJ.ܝQCzwvI*I 3ml\LV-bHhKji=:(|w_ʇD t77rR2,QPU}1 ٷjg?^7[Xͅ4op8nݑk ҆uGzbWe]8;_ !n>iKujܭS|N_G &=N*Jg/U*\ᒓ($%I>Hս;rnz1s|BË/ggϻM1ClwO6㑑6l4h%a8laJJ8__"-Mۊyw%$PzMnra *=G"Ӓ:٢z݃#GO^^^V__oIؾf}}aG׬ћj]0111BBB5+gQ]5m&$H g8^ ݨ3jA%$c&2 Nad~ nպ79 <+Ӆofcr 塐ki?|ÌH5UZ&:sQ Z%)2E_Ǎ*UHO=L?ZkyNXn-t(Z)y5r ;[G<Goؑ :STe <7B!4ny4\cXYZ7QZ5J6ŷB0^40u7O ŋ tE/-KJ#GXуB w._|\\իMA]ᴆ1cDJJa w=gϞ[n=3XpӁr ,t^ˬܳQEDDS)ճxg F[PR8T5_l-/Ku,Keua^w+PM { [KjF IDATf[lDQ.С%Wcc E 4Z/d$Y%Kc/+;cЕ[ڋkOHF[_K*IsZ-}|FPhW8a[7Y͛#GJ_fΜPѼxZmӦMEM>B@&0 L YH蘖ܿDRwuv5? fmoڎ/O.́U-t(Z) o0zưRɰN A.z"9aWN ^{*"_.Mdݾ ySW3 lZǚJ􇮕:8ƁxB&#I". $28`0ZYáeT}⦟Eh/'OtIW[Q0A?Y￯_B rʞUpjEQeee&(+0csoS-S tW+a%ݻw5*(ȑcՅ;o!!-Kp.ۻP0uKa-^Bk":l%:sE“Kt_BJHp {-td[Ĝ]B I 'ԛ^ՙoH/ɟa옪L <|e4 BCZB4K?>=;0 E0670 aJߝ]duKF"|-Xrc|݃qE иCs!MvI8+ 7]ukRQ --Ncc-5᭔ONN*?_4_W Le_NVeW3+r z/iFgg#}PJ&#&$K}J܅&رc|󍯯oJJJj.˙0;ym]4Сҿ]UW']Kg}0vX, %ͦTʀ}7 B=;K]DDDD&++BXHh=y߻[2R9[W-,;K.9v9矗?Gaa\pb†g+w96m6mZFFFdd'|R, f s*L $ˮp ?~<''W_Jmzn9 @aCZB8@To/uY;Kt@%zRm"<<СC;`hɼs%@  |)JHCZB8@To/uX8d0 "OeZfm."A,up rN2hpմ̸^X틈t(,$@ {AZ {v H!Nv@q环'=*# ՝d环W3{aֶ/""ҡCgߙU%a#a4nnKE;w9[v%Z5^1i!MO/Le?pI+G.KAIOYZ; L ګI\`ҡK++fMqS棼vޒKȇ|ZFr \(ykX,I5z뭒5VcV(PHI!;{ ͭ]z$5`t|P#vFve%"$T!^^yfĞW5e]ywTR jM'2 Z =R |u֕zy^!T2;tob-{7<_q2٨79zwgdGs]S?mڴǏGFFnذaРAja+2G:u*[}1~j?N9rdiiijƞg7&N7ԗ_ۙƱn_zbGKe9njKnfXW crUz{_3fap,Bg,y.r"""ye(1  ©SC~jG~w^{/:]TUG[>]18xpr[R| ԛ=1BV0pV5hYUh[ *=G"Ӓ:٢zK1ܬML >}IDW3DW^^9q 6eeeV5bЕgzL OMC}Y]A&o˳7O ί QvܒKFLoK=j繒{'#Ma#ֆX<]I8Vw3< 9@ҬP 87n_pLïXո~%%8 h9!ߧmJ]gM??^lxRRGe]1 }U=@8Ip?Sy[C Z+uu3_J n59.-uϥg^jB>S䙟(v 0JDjc[wgkc݊j5z)_*w\|իW$V5 ߸ғn&*+/jk;&KF\ *.Eaɵ>nJ4ñqMՕKHG i*$$4h G@Gɏ Q>Uo"|ډGbjT<(|qK({)[xq0m/lzKʕ?nݪ-4_ZʛGOU޵w33bu&ݵkilcv>>Uk& oU-^lCo@˪U޽;>>^*vQ $R)z]ɀp &*;!ߧy:s!++쥺V~75~s⭔z(ʴtM {ua^K_yRY]ʱmܒ,ܝ}ԝ sM=I\xS(*++ի777Aa!jA[ )u#JQ{yh:ۧ!hW)3*m{Vk9僰;c4u? #xzn 9{;Vvjbenq<-5^o`ɸm&D 0 s -uHMX~cu׿cM?R_홤[8vXLL E턪¿/-z㫫aOiek[~=a$ۣׯׯY0]?UJ%fԶ8 Ǐ]2 ִVjڵ5kԽ{K֭mB6={y~ԩ:nɒ%  Zh ǖ-ܹA??dee5tطo}d~z_Wh*)s\_R?t1&y~{3}JEx 3P\W z*"_.MuqT덊p#]9Er*[t pۻ+VMi:VϾ;[O{S$h^aA\x@NNAaQxG"]yOܳ 728 (!h-9C鉏L057MQXi-!FFy8llx{".rDN"/c (ƍ~iZn*6)Hk@H+/^w??џ[CyDrj^x\qa#ת*qqu׹ {%B ٦ɲ?8///44433sҤI6lY`Afffrr1cEMv Ԅ Ұ024""T@8޾ͷX,#IMmXt27>2sWM^HY؍[kcǎڀ@\SaO_Ӻ@ޯN~dz{aB6hxOI jOF`YI=BzCsk*ٜ]B I '۵!j 7Ra]4|y`Wg Mw$yEp pA[5WY?C!qG=ejF69SRRv1{o7%%ER5=<򎂟fW]FuK!*a5qUom=~oq}Z&WKf(c[VJ+z($ͅv->u 4jbO]ܺ5LK)r٨M>g@rK \K =3г88q.8jӦMӦMȈOL3 V51zSe=#R?!*wFՔܳuh A#NvEP9[W-,;2Hה >S%KNޢ3~I3wɐիWHDzB.'&[͚%4.|tq+DotP_Vvf_mL @(c)9tmewAD ˜wJF0U-o$z0[h.O>GR5?>VZ:LnٳYYlvQ~\0~gAZ-N3u,-M gd )epvc 7lpGqJ5kV@@ڵklo7.(Ⱦ?7‘<Ƣ7lOxaz:f˓SuHxxClGx)M/yF?n1jKo7j3~8끻AcdOd$IQ6.ۇ]2n C}i͵]FI>>qOk7PeNh7Uc#b5g Ob_/$VR%`z[奥c z5.n9غ&IS;ʹ;Aظԉ҅lRˈ433s 7ai`[izi)Ib1"`x6DDDDD{2ׯ ̈́VL :"%ĘG֟Do׃3ܼ3{:L荒kt`|ȔjJ.^U~Fce)d{V[;nejۚ4[UUUTvm޼yW\1kQQQ6VRɲ۷>wҸCJi Y  *msMo_{)rxz.]2+4Ӹy[t۷oNĐ!CZLEa环™[Y;8hp 'X  {޸͸䖉X!:^;eܴՀ￷`ɸm&俶<Ӄd 6 eCKfė/[JKMݢ&ɢ&L-jPg.4?/**jOOO狋ӟl/lzKܹsnubidĐ۷7D *.lh6Ӹ966vС۷o_|4eI]eJcҥK6i:z[عiO;iĒe{޸͸9CUyIG0p]img:T#X2n{w -NFuc-w|nam/lDž D"챁9s)(fMx|Q#kE.1fs뉂Kn 2ȴB# ՝z;6\~YPI#5" 窝7pӎM7}YDDޓO<fwnn73f`dnlWTTSOō9~"DTwʏDDDDDDDDGg;uBM l7dq""#1bnm`oq|߾}gR*BFEXEiOO[WӪ(43-ZU(< jjз/QP˪cǎ\|cz\(׉ջwnra=lۦ(>zrÎLm~Ӵ^B9`727Qu]?!vqۗc :`6OڢcU'vN=|)""r^Nu_:x_Y 5͞PUߕy>**j͝:u2IL4 nzWoLw1 ؾy5[7'07I.];ٳ9S6lzanfX-M~:$۶M?o1*s3~<;r鵱W/FzuB;b3a[1Oi=\faޏwȴ5ifYylقΝJ̘&IĉWJ%(/ߧPX=jxLƿ.7ؽ;`(YY)ަ3+=Zl53Ruc|sGL m!Q5Ơli{{Ssڢ_)§[}caJpZlƌ!WٜEFz ׍fxm+(>w%f"""0qrBA}~80@ `v$5Kn98V [Gejp^8b舵Ҫ/墨3.l IO\GJU.Hvȑ OǢ;&Lq rxiq1W\myM fQd'4lF핐ЫWٳ !Z,)9УæD~~ MnJKhKdG @xޥ5k<~qBg&'"""鴇\DY.^Dq1""0`"#ף}۷oɒ%{۷Rl.lQTO :dvfbBAkR5z-B5ڿ ]M> [æ]}rBR6ubdž$ S+;<|}ɷR,]3ME5K.kzT6- or9̙&!A!0-[ƅpT9;!Ȑ7xL, olovIKcN56:9wqBgw}ni=}"""1388xo#647`Ŋ}ꫯ<==׭[gLP(~ENEK/)vp߱}y~>wukBc@W@cKr. H 4Rbk.l 7Tz_9%=4mcWtd(YY Y/ݼ~A ~h(5c~^&( jZ(v`v` v#a&Llۦٺ՘X± A@#*+MM`&ll۪ٚdLZXa1 *8pJ2f 7yupD.3tKL# hlE(i3gI]k~ܻ~RQt- A_[EUЃ~I3S/(ivեo$J_0BZ4>ڞ_ Ku#f$*RBۃݦyyR`JtJ~Meo &y'/0@A=lv젯\֬Q7HWNxLe:@m=v0LsDm-lJ|F{zS+6E cȔf%jSؔ)w-A?/ۺww:v3tKrKNn(($%I>HK(o$*ڄҥKlْ?vX%jՉ.ZhٲeBvD㐞۲))|}4o+jj;(uAED# \QAqA51J\q7$7 E͍7QDE"( ==8 ӳ%3sϯN#:o ҟի+W `vytEK:ˆyڪ!^AAٳ]\\ F~Ah#Zve?qB﫻?5~VgH^i3y'gݎY8[Qۘ}܈yV]F|ce=b pj"j_G[l?Y;6KLXZ{L.>}3@ђEu5ս;k+™0sx݄ow-eexnD릈`ي={@Y(+s{x{ RLR99s~rqiݤQ0U7n4Xh7.-n-_./K@EFJ\]%K:<<<>}ƍ:Сԩuksul,kהvD"=#F'O#_@葞M &p{NK!ܹs\2o޼İ'OBc?`nY\ȵcftuviQ1`N5Q~Svcdzm cqǎX|XlYllc{` Gu~~mowpyx%ٻwEy9㕊3R訜HWhsH&FEi 륜TNRWK뢊FEIՈPuM AC Ɛa %BF1&MLJEWztHO'=<=O?@Lmt<}4a|>u}vC ^9NN]l8;KN&^Y`%Ͷw!jRRR&OrʔPc?`,ivuu5@ BI UV!Xs>dfRS.:x… k֬ҥ6#䄆rv ^}̩ؿ_>{xNHcbaEE-PbcchKhh0ML3@ XYl 8,I'O*-]M*Ҏ(--[`pB:?f4"LNxVUj*qy*yIW_ ?RI?L U3aa<0TbPT6lXb֚|*JhL XnoQݻQQKXlƍ&')Iqc0}zmrr]]YtT™3뤧' :_676 333q̙3`nnQ`aϟ ,-A*۷Ν^{ v<' ~Oj 77VPG߈;AAN_~V,{P]"r^I Tw|xRRŋlmmZ>F5|Ţ!|(.&^I&ŭZ4%%"rohaY"䭚ۅ"c!8aO?GgΝ;6 %[D[gfou5޽k5sfcVbEQ:) ޽rQ#W5 畗ԥ3@Z /YXDr]%hqH$b)۩_M'7 ǒO Lm`B7d5&!]A6*nDtS1bDR)\ Կ˸W Ƚ ";{g\Pk^e&\eh;?r\ U۷/3{;uG TT4|DFJ.\ /PUE-_.޽Ch^J-ҹsehh!1`55?Cԡx^VIYxunN,W"adnM΅  /9F۶Y;;[w&شa >GGiqlhJG61te럫aܫhFN6㱫UUu322!!77d$LV3;&_XRzر1c%%wfYp:7T|ȐϙCv9sFlfӧaHL&ӥ@ᅬW9:r<:5UUWs.^9"[tsSyx BBot4Ymҵk)}}G#G1:6mp46$*aN X,@&~@ /paܫ( 70j۩;Ѧ`z [Rrr(C\9kפѲe@nxN,ƏRt5]iTl FFF)&NL,9B 0P`uM(9 eK?& BC~n5m= mhJިjj?//x0'`f`n^^p,.D/ByycϞ=;>>e^EF##ȽEI YQ߰5$M^ZCg>P( ߿.iPun\,$}ŋC}r(C\ٙ@ATH7op}VeeqY#N F_5II.6DS=| <#CO's&bPvva@DXICѫGMM) @oTbQǃ9igcq1=Kq"ܛɓ{,?z*8SIIQW"+$L<`0 tJ簑$pKY}*x*@is3@~̔L;xtRoҥFYt nGG186up4 0?M 6Ʈ_HG1wmD+sJ,9xu=ɓ'yxx\2%%_Ө4HsJU5hhx<(H(?p$t) usg#ѣ7LzГait41bD#[1@TgΔ-Y"3pP<ח{ &~~M1JǒoXycdž"ݎ`U#C.b5ATfG*Zj?Ӗp;4#Z(ػ׌qLTOQ9QQ&v?;.N퍫7n\\$y^SwKKou: :q%VY%%Jvz:;;7D_Tu۷UXH6J~\M5 !RἽ{7JI$DPj"ݎ`U#,4q~eҠu?p;CK!&dNRő#>`"S1.((zjv^/GպvA@[ ,q8|btnBTWS;vgά_dɖ-2oo_O+f^,V?9g ׬**۷%]HvYCYZ$$ܚ_5ʀP(4Gp)"8Xbo^޾}H"8G0npi鑁Mj8huL3ڵnN3g1c|kX:̙3QOZm4V91<5P)yˎ8"kk,6,6}R1:Z$۶ImS[_| T;ߒiAAlk>at4IQQ]Cj{شєG6AI3w}Pg77a<::3m4,((:t(JMMadS&,Y".(P}[7f=m۶ѥ:5zU[`(D*jZj‚DU4/__):eLI͕dzGpb{**?CCo{>Ka)ڛ ;\?/܆n6BJ7WcGeۋy-kS9ESImXGEn[ssΆ[BB6 aԨsBW3gNYYYXXD"fdSw+/wZ^;qB[ 4(>>^$%$$IkiGպ ђݾ]f '\\w)bKIB{ZZmШ:,~M@@.FPC^Z.Vԩk#z *TO|u:}hv%SӢJ5LC?6"kWp4yHp犟_=G)){t,LEH?OlP<γiơ+Ā>1|"z^R+gRy`W'Y}NQU#)cwpuܒ0,Ϩ#G P[ 1\UUiW3+!vޒOU @||Xѕ.Mݻ&M⤤( a"mШ''mb1/./gwQ+4s%RR~`_S1 ps$ųR&ZK50vIɵ%8k^zLyuӅ ׬YӥKmF!jAZBIT9%8+n MT IDAT0<+eX%Iw(1\&\ޘ_7ΛWϢ˕F6v.B=b(YoU1w-8_ir zt)yws~U+T;eY54 i9cGUJ]m7;~;Q[q%c-`g/R ;ɞyfVC@ Blӳ20+Ǜ]ܱCJywJKK^SVVh Y<+e/0ދxV4Q [|(*Lg9ۘ0x֕(nΘ&8jfPb(Uѕ PFEӳ]ǵrnP[ؑ" a>5hvDEQ ~Rr1 5h;л7\ E@m#\.̊`Ƚ#΁Z;6e0//;rD%=0/\hp S68T'YӦcr>EaJ(n+UQ$_UI#8vi=:Zpƹ}ڼYbAmz=W"4rcum0]6=y%%쓋 UlS.-UiN6@ ),CůTTf.kʘÎvu }g80Y}QQR)Kn|G;*T3syޡ'F5ϟ]X^Sp5Gʜ3luOl$ NWRv>sIh&f{{4$^gg ŋ7VJHH+X BM#cȽ<-`+2l䱤Msle & 746Gf s̩@ePŋM$8}o|.>gN⋊ Rpϛ7 [| aD%ٻec̬pxrZQϐ4%NlَÝ㗹q}rå5+i3wt~c50[IO.M` l-8BFcu˾Cc7wm9fx5OH_TIWl>];eJ͎܈o36 jׯ+siWw~` ;ZuGwffBG:9"WWǡap y'gNKKsqqٽ{aôA'iaR,D D p,IM@.] oM6_~iƊcI?( 㷶޽{Ɔ 5}$2mHȇ;?i<+Nô =J\w5,؏,.lk?t.#ּRs5w If{cgXeơ@  i ?i$-3@ 񶁒f@ BZKK~~mWW@ u0YҌ@ ~eҴ 6c;f@ L[PףlɊևӨ1$|~]i96!-%Hp6ܹرpʕg׮]7n8`mFF{;uG O}ѣu?Ӄ6l%%%&MzjC#FdffR>} &Li `LǍ>5jTvv6}@}æsss?ӧO[[[7n< x;멵v#`,E0\SG=,- *+!?l7***҂7me˖4___M#tȽI3Ѿ9rd~~~FFFsAxTF##ݻwwppxⅻ{;udii Æ k8@ f o3ږV3':BQ7|ԩ W@m^?(:u-F8{;uG 8,k֭_|JqY^^^׼ޕ.]8p^##مFx<ԉ''@6$'M*T WCAH$K$(￟?>ma42۩ SWq||}'<(.Vbaah̙/OZq{\ζrp`-[&>xPq玕#srVI *s,&)}}k* Ҽ u;C6Hׯ-^+]@Q W%͓n*?&w XekKIL,rwx|s8).WGTUU ֭8UUnnKӧ/x{TRvv`>c;#=pT- p;w^rF9sh^֯_=z:tH{PPPУGׯ߻[[[iVp3??bm۶\믿x"%%_b{x`0#VDk;л7\ ؀ƒPZ S@np^BX,֍7RSSi 9NMθqܐvi)ulrqD`V٬Y#׮)w풉DINV޽Kd 3tp`Ã-c0}<7W>ё{թG  pe}fbbh9ٷ/Ymҵk)}}q8(C;Ӧ[f)G`_۵K%VjkLm "{IO̔ϙru;fx1T3&8.(MrŋifjB!ҭ˅՜3Q˖-k3fx<ŻuF/_&bԩ/_4v҅$IAeWWWzMmmm:s3fzyyiv Ì@ Z 椹W/4ήxlvs53.yyyhdlSwÚ1.G${'N89vżQQ[HKK ܸ=}9>ƏWݽkPs~4*JbG ##{#GH__&&V 3WA)[[P([11?Lɞ=3fefƾv ^'Ȯ]iiCL8눊s;#C-[ d[ lQ̘_9sF1mUL*ULgG3C1./ wԍ!Yvܹdɒ&4pKJJ|ezzIIɱcvaŖ-[|||D"QAA˗/ի8Pru@U7Vpy9rOW3y C _~onݺ5o޼ݻw䈈Ǐ{zzݻO(..5k˗wdm ``,(/ 3gά]  4q vnrjk*+SNNPΎë}|pﲃ9ĺyYC! 1 cpKK/`i`w$XϞ^_OqU@_cbx"VI egG/~D"ͬY%%R\6[٧֣Õ>>w`,c5kRQ32@1~|k. ozB記8@gU:)\[XXHqppg[RՖJʰJT챩HXϡ}~Uϡ"s Tu%RSNKŤ 5jԄ fgg1g """^zhݻݿrss,--;uvT*=y?Ӫ*zGWZ5x`{{XbfaҐ{0\Z\ GrttkM˴iܰ0.yyXR /cr`d%q~AfÜ9{8 ɗ_çO$'2zJ)O<)[@>YwQuߵ6cŊg޽{k7M1-LeBD{BEP2K]&#Ip濤K9?s ԹٵkcR: \zCwwwMҙk׮ vT*y<~XT,_Gsss .]w^~,XMzmiG5XA V)k0WRB)e!l6&y޽Y v+)/-U5l&Ȟ=cx w?^p};MC|!+ؼT*L"!4Q9;vNJ m ޮ]XQ1aVRNK#5d 1zOq#PIJ$_7ߌaIUٯ_t_s#݂@ bA~xziSUEWz$T)"#ݛ۷>ڱc\.H$Fm <ŋ/^ptto~gb10aP(}]ixڴi?޽{wfhEN['u?vو8303ds7s^ O+V4bkP5k(K˚uE9zY`1t(1t<<2BV۷O#eexnbTu[lB!~@tK kOMHXux̙&bFo ƢQRRKVa>̱uvÇVVVRF6͛7s8???Ç7{obffFͫW.Ho߾ڌnnn׮]Ǐ+uM:up\nsV@0nܸ_AܹR;fAkw`ب5k[uyYQ8dH;mpwxZdǡMOf֕0]]Vwth7Verv駟wڵp³gnܸQT/>ȑ#ÇW^7oX,vttƏy`T`С|>ˋ>FNN"ޛڄGRmߌ .>J,=zCFǏgddl۶6mT\\\SSscǚ$Ν;?^*fggv<|P}n_zۄ9if#{l6 ,, {{x|5 4K\ϝ;ʕ+s)++ y2A@ BDvF=Z;^\eHOO|pp'O%Ϻ )++KII4iR\\ܪUJKKSRR-"v@ 6u#`H̛55@\SQz=,P@[!v@ 6u#ӧP3 OwmF+b1T 6Xjkk!v@ *ʊ[;DК4@NxxaB.tkKKKϜ9F{;uG N)fǛ}}5~<1S+_߆uC sC?<*.Vaaht{64ϗ|`b{ŋ։1c--Z$ݸU@ϯ `ag6W_w/X ]8Fs8?&F^^TIsi*rxl'O6ⴑ7u{_y0JFl>oOC`...qqq9ÌF̐a#%O1dHM#Cbyt@.ll΢ðݻwÃroD[&83~|M]'U]OF&&>$Q5j{`VY#׮vRD+u{aUUXu5E#I77`HL&3ue` ._oXx8g m] &XNK6!zuomwCˏ_ q;<^w Lϛ7/111,,ɓ'BΓfvmcKC Is0p | $ nn@QPT2x..u/ҡCÇ'%%-^8!!vBProD[Օ\4`|ݻV'=r\nblJި! '{RLrr"_:(0{1j2 iiI:`$&r`s7n"#I&0#3J(pC35$޽zuLA߮1)c̰kj?VMP%K=ܽKrڵ|.{=0M( xF?qPGUЦݻ&M⤤(JT"ϞQ &Fz:tbjw ҹt Ncbd4mܭkPC˩u#MQÇ$nbt͚+4VX1{lݻwC)mvƆII7$_~I+0>?þyw/1~<)ڵk&=LU;6-CtLE+q~Y!{{t⺖£[JXLP*\BX>uد_W")ɜgvXΙ3 W{:9x0wM`"w(\,0sUH{v333y\kJ= ]t\6R#o(iFfF!_Ň 1hmJEPӧ-p6lг&[SCl$δi"2"B)McuF;>}((R((.Wmp"#yw/['m"'O*-]Р%:λx(069C9S7₏9}ZϜ4sΜ9C?W(BC@`[7 ]]۷sm47F Uݸz) bMkjHUPggKldWs._^s;!+x{,2qAif˨^O,`\_ͦ:/O_ALJw^**Jr,!/v` 6TUQIO TnnKӧeb„ڡCى#"$IIZϨT9/O!!XEȖ.]UU ֭8UUnnKӧg_')yGZ!0I^%͈VcD·nm&cCEua*:X؇rKVPG6{&[_ ӹtIy"/6M^NbK*"7y2wIv",ݻQQK,=Zupf۳trUǎMCCu Um,eVU\L!xQs<(ө/rWWܐ ?)CzWgp޽͛*H$@@#Zk#5M. ʻwɨ(|=)w'32-[d/ذ֬FXh)Hzx}٣ shٲe ?20Peٻ7@SVV•+9/Fu#h/<9GG7춅 M9Ӧz-L ̙ 󽼼RSSuAԽXY 7IpvnLZg0vT`٦M3FL]EV^Z{OF4p;;z0kjŋ|۴I}x7Sp!iC'8b^}H2Km-P99dNĺsG G'rwg%%OP. xzn AD{iCq:#*7A32]32~K^`5:^߿o`uWu4fZ_Za,6 I3ݻfða`a0b8ܼ 550p h.gg̙SVV&HAԽ 89EuWEer!!t`XϷ.,ƚ.MG"֛6 l=!MlÇ gjÎBӧ|#Խ0Zrc{X;5c\TTz*)NA bceկ^AT5WmmY_|[;q-i.'{ʪ=p=7[l|}1bge33ho𯀥KԚfQ8ۘLC?:Y @£hl p2ӧ>n TƇ&M[jUiiiJJ EN*L=rQ,czZ}_ɺ usgc}0w.߾]OnR`bh.HxJ__DBFe=y^9}Zչѱ2;3=0VX?㏌U״1iX̱o߾QQm4aк1$@.8wBCaTKQ*8C.4kM{;uG  ͍p@PgO|zIe%աoPvv*<)I{yl6u`ҤuGTHoouBl*,Tp<߫;wJK~kT%rUַ1ٚqM6 ZOAgg<A*+WޱoHȽ#Ɛa#%nɃQfcWKvЧ`ђEu5ս;k™0sx݄4cqFԩwwoÇ܄]c]r.WٯoP ͿRr57VdžhMsr '<<`0pqWRS(-)S[7wf۩;@ ZwwcEŎx3M5ki3iGT۫Kj>%IwpDwЇVHÐ4Xk .責lvs5͜6G(ˊR8!Fu6N T:m* m?Ozoj%6 o Xᑆ!i/$ ( d2pqhT1ȽҘDMc*6 u6^E h50$b1(,TUի@B9{}|}A"AJ3͑{;u7S1N T:m* ъ0$͕påp.fN#v@ @ h;(iF NR̚%7ݛ_Eq||}'OhE<' >>#{dlm0It4x>l(.?_WV5/z[dz--Z$ݸU@ϯ `ag6W_w/X ]oFs8?&F^^TIsz"5͸u 4׭а*U#wҴM7N*-l*\\!غU>krk]T"lJ^hs"夛Zad$&zٳ'_P~=HX,cu=+ضMv-``:/qF!pΟ׫-xkZ|EW_~jѬ!3f;w+W͛Phl~uA3͈TiLӦAҭc>>3x{TWL! )-[h+UyPXWxVmQ?viEZX*E bEKPɶ@KK˜9sƍw AVP`I/[d8N2.ʲjCBO=~;jժZZZVJBBLȹwOilhV*ɸ8n˖-[f5ݐ@@P<`j5h-~lѱ\#ybz{LUn pn*|)(?lnnn֠1Y,>S]bc&##~+Vh4YA%=yV#bB@}18N2.ʲwKV&M^zϞ={ykiYHM޿/;mȸ8mFFd|91Wո67o™3Ə設ݲeo^[[d=: kGq֝):.e]e{  8;YPۼy/ JbbbbbkZZV011BAy{m2ݻZCD,GC4Z*͝+SoaT(֭,L&cbcS0Pgͩ}pIեۖۏ;ð+W˗ ((5 # |}G€yn&"?Lt``Rb"AQ Mw giRfEYy|%˭?v))Mw[DmSdeq/]Ҭ]KK$iH2>^zXuXjG?u:{M󚪆5͵QQp:Vj ÇW(+Vؾ}СC k)MP|&,sذ^ラsLN:=]=fLQQn={:fi2Lqv>I 33A8!ɤ2`>6on){lv>`==>>ܦUkxzҠ_9rhT&s[?{V*Ϛ\2L*n6%׭T#_9@>o9"_}eKnwj>jxk~#L" ǍWSSc!`ĉP_]]}ap⣈ Z 4M-YY}Ao*ME,KAeY*3fۍ0ۥ x.ر}]4Y[Tti 1w.Sʕڕ+s~Kc:~0L9ЊgXбDd* 3B/b qg[/--]`AII]/A'r?ZV]WRKF(ٳkjrRS  VPS̛g~bL[/:d^-p6 3Œ͛iHn`GJIIMʄDj*-O$$0mpxOa̘3PI ٳ1lYrg}[غ7//Xam< ,3́ DE  I4 w1bpBCCkJtr6X`W_-))J;y)踔tQ :ʕ+SNt"ׯ`RaR/;[%8|ِ!ܺUb_x |C^!^\pǘ1m۴y^a83!kN6L$uv&+lrb ϟ?ΔԾ;uʹxm?/ƽu}ݒ%Ԉ\f/Pb\ݼywEG2>9 /iLa@ə3s/̸9Pr9ONf3D"0(Z,&ccX^~~ oY0fWvAYUa L3?zx\̄7.LI.clqAV(}Х߼y(͛]Tl >2,2D1c/?_P<熇㯽rrg| @ 8M۹Sw5Ǖ+99ڼ<ͨQ^f=Hr a~Bn׿;sr  Hիлt -gJ%`V<&#Cx}=T@Q yϮ]hWQ,_x?RZq1-o%((?09sl昚˽tB{$sSIa>V,3WT*5>,Fhl4/Z*o\'?hp 2,nIDAT**رc7n]暂AI sʢ8o 45=tE6iҬ]zD/^PR"^2EϹuSSٚK-ySV~-2[3'^B .^̪0::?zWo>a„}I$H4P>ә21#SضM<;yRÄ J%A=J=x@.i %{bj|{Kګd5mh6=[>˚o"){2Cxpv&9e sP^^ŋ)\s-MPGS11Eꨠ II搚 lgϣn8tRQF}Qo)>  w*Vࡡ>P߿O}8˹/ҴPJ]S{NDZlQr)][ee' bwJկZ>2RXTd?~8! AqhV(Jک\5‚2&7{JU/b0qK2c#JdWgg{$'d!ܟ~◕a/+ø/j79f;k]ڡn|sWdeЌ@8giRfRf@@ecN1om>DWUEGl8W׫wt܊ @.{ zN~xΜ'yUU G7 NkOUUٲ{2S}Tw-wq8;q9s&ܫW˼cxǎ1?{rrL-'*mIfR9''Ӿ] 4Mhׯ[@َ_rY}u]t>4Z& `*R*̆Kc0Iqn;too{qM" ,e92iXw=PYn>yL6̌iv,Q6lS~RfRf@ 3„g R- OAo:0=A]&Fp4ӌ@ + .D>t@f@ "UР@ < Sr@ @c6@ 4hF @ @ ̋:IENDB`mcu8051ide-1.4.7/doc/handbook/img/reload.png0000644000175000017500000000071712067167647021166 0ustar milleniummilleniumPNG  IHDR&N:sBIT|dtEXtSoftwarewww.inkscape.org<aIDAT(mϋQ6%!)cG1KX(,d%XNl(;+KV6lc1=ssVqd'i7)\SvbxZU`ulk=jp3hXUE\!ɾ$J2T]/Ml"vij.apgڝ ީwURU} >pG6Q;ػz Ȁ/l$ZGJ9>kI槈UKxi,4= I<`ÿN[AD<3.awRJ"%gdg0 e9ۂ3*Z6SPUTq/4Mpp`SJN A;SK_b뺾oEo?WqmBIENDB`mcu8051ide-1.4.7/doc/handbook/img/002.png0000644000175000017500000000742712067167647020226 0ustar milleniummilleniumPNG  IHDRa80/ pHYs DIDATxPgǟl6 ?rUuꯢRu(K`bE YlmxX b*]{Q)(Iȯݽ?B#BAI $}y!y"2 KN@y7n!!0+.} %% |fnDjiQ?`4RT$rY׾v&zuɂPB!H>BkbR-ÊFقs I"2mMk1,]V˗>>ի@0l EG+3k$nL5UIo7YۿQ"F r)| I #Nyo(e`s&'Go]Cd$sk9'NX;:F>ץRSǶӋDrx샡* jofǍXL r㟗\$sP*4< .NGY6{͝;AGǃ##O~1Y^['$`R)U\RYwHȢիٛ6Nojj?~ggJNGFFZd CQT}sb"_?(cOG:h2kDkpx+CmmD@b{8 Ǣ1xe\*%͞ f{P@gggzzq~~x58zKJ4%%`Ç?99+X۷ffrwG"JˍӍ5+ZV9feۡHIpEBCY>>ٳGlڄ! y55`ᕭ7ئC( J%MZxsf;T##+EEj ٺ};:|sssr`hkkKOOOKKs@q@D3$nL6?wuu|({Mw;F󃃃G fő,)r_8VVk 7`M/뷕 ϙ|E m:_FUZ:jmuIMUn~h8팪x务egs . hn623};5px.h~Pl+ f 3?7$-ҽ @̞mx>=12CzWWX,oCSh]RY?*j(jƖ_><<\ѣٹ3`EYYcI$;v81|-f}0.uX]OsMMMV25GwJ ~˹s--kV{;6PY Vou:^Κn bitxM A}\wRϾzx-pkk/9k(ح[@,X`kήXxLhmFW_oBNvuQQXPkrC]]9XL: 0 ).%&>^2_Q?<|߰eLlgX?EΙîaR(ĺ}?sJGU|/+kձknاwj"0 \{jZxVuy,r-(PWW`1^}mfopax0[Q>zSUKCEEVѱ۷:vLk/G>)2n=[+n9 0W>?g^x &WL"`t`viI("L&K3 H/|Ez+ WDQ((ܻ@spa9Pts/:zxI>-/ 4涵޲ը^ͣ/'*[RX7l"EqyEE0aɧGRXbd9n΅K~GUULw_ʄB˾l |ܪT99} YQ߹ɦ/wޡC,Mv6Ob_8Q*yhš+LҢ;{VO~2$$,eEEPW.+\f\͕@Y'4Z#t鉑5`VܓN_Ikpf_e&0qw=yLF޺<ܳU/]ᰵcc=Z tW_1Ç|>gd.NkdўoXL2Ysx邂:7o~TW a>}7IR`.p,Ɩ|^@x<9ػw[&嚢&Mtz$C|Ysx'S_zam:>Ңhx7{K6 _qٰpߑ?> qӕ%&H }}@@LFz{O)Zs|ELw??9saQQܛ7. ݾ;p@(;w͞54 I$&mQpl. Ҥ#GڵʕǹVo͚#>ŘGDjH4뜤)Zs|SXz[R3Gz"nib=YHMuqwGAurpͫWUII xO6}Q8sOњȬǽ~3;O08Dxn;?]p9|^0Lozě^0Lozě^0Lozě^lxD.IENDB`mcu8051ide-1.4.7/doc/handbook/img/symbol2.png0000644000175000017500000000052512067167647021304 0ustar milleniummilleniumPNG  IHDRa pHYs+IDAT8=N1?܂+P+5. چ+HX)%% Ǜu2O[ڍ,?q2ɘ9bt.df:YC>ϠVlX4z!A"{83 ) _L n\Ǣmw:->cF|*F"P}<s5KιQwP%_#)gznhIny%GA6zq\OIENDB`mcu8051ide-1.4.7/doc/handbook/img/041.png0000644000175000017500000006704612067167647020234 0ustar milleniummilleniumPNG  IHDRXF|h pHYs D IDATxw\le HE+vXIK1,=/&/ɋ1=F1]Q*.w1"e]@gsgs:0 `0 [ `0 `0`0 `0 ;0 `0  `0 ` #`0 `0;`0 `0 ;0 `0 hmBݳ&M999GQj/_n`q 008WsiZlٲW^y &&QO?ԕ_>ܭ~*ܹs3f 3gN~~>|bݥ{-t-RSSj-[ִj׮]A֬Y3x{yћ7nln}M@VTT8>nذAaBgVkGLIIѶAoMےcǞ9sFȐJ?9sf^^^ ټyغ6m$nwnܺR)t]gQh `0?m:joJJJ{fܪ-mL6hРGϜ9RO>ٸqqWZJ]5m1cÇ-ZtqE9sf̘1QTb&Iv˻ZkY|y{;[8^nnnZN}Z6Ots~<ӦM{w"""8?d0aٳg~}􉌌/m4fͰ#Or `0̭Im˖-,X4nܸ .* .\reqqq~x E:thڵ[l9}c4):{+CpܹS޵k׬YHFe[U>11ɓ)ɲYǏAuzΝl?CAA /=3MҪV.\x76mڔ[UU%~*w:tn$/00>ɓ\ /ر###~hfիVJMM-++=z MTYYYu ϤKTТm1sLASSSgΜ)ngddFFF:4i["'ܖJXXX^fxС{'**#UZmEjjŋϟ?ȑz|tWZP}Zm.jTdggS.] OC |\*g>ydmm-B_~i6UǍwIPVVO>}…ݻ[=zL4iƍ$gݳf=zZ^bž}vs~~~~:R4==}ذaqgϞgϞf͜9S& 6l!!!{ X,΅?~<&&Foof mUq6\K@6c{eY!{3fuuuݺusQsw-59r%⋎1cƜ9s>..nĉ-++s7ESZ+ ZUUU=zlkQWݜEm Rh"$L&Sݱc?|r:4}(uI`0 :Z_z%јRC~qqq⶿AAA+FB~~~.V| >!!A, wQN[3&--mA :]Gs倀'nڴI*N0:hnݺIRuTOTt:ZUUU9NTLLLLL[0 R,YdaOn۶M"q ARtl7j)ݺuQ*Mj"/eDfh4gdd:b(4Mmmm=v7|#8Nܖnٲ%44T޾}Çcnذ!::zܸq$IN87HHH8pZmٳ]裏644̞=7nNN8el#CLXXX!{Or `0Lj_[_9E7y:k/;;;;;;++kbi*_T400Pj 1z׮]gn{nUy//*!!aO>uꔻrxI= LnhhlMwkU+Jqoܸ-}~駇zHܖd)))F:{CMMM6mtҥCݻGmm[ubɴKٖj;׶%g޹sgZZc^=… M#;zj1B0t:ށ[_PGKt1cΞ=~ >~ȼhp.JJJΝ{ԩÇ_xouXMiyz#1CiVC` `0վz7GRfE<0mڴ41ؚ5ky kVh9s ><11qܹ;}fsttܹs͛wѡ^xxʺK ={lv[ڶllFi$}ݷlٲ}.Z{ůV^3wܾ}=<ǯi[3&44_8q"#G@Vvc)AtXN.+->6Ouk.r~*3f̘zjG:u8yn^ `0?,&N}޽{|M"DӹBaa>(d`0(((hhhS99rwٻwV `0 sKٲe˞={֯_|7#0E}}}N q%Kza=`0  jVmY؉w:hVVtٶ嶜״uDLIM;]$X"ƌs9R?`0 ^7`0 `0 s#1 `0  `0 ` #`0 `0;`0 `0 ;0 `0  `0 ` #`0 `0;`0 `0 ;0 `0  `0 ` #`0 `0;`0 `0 Nq|ZFsg:K.13EW#?k0]gn/={|eXG`0 `0 `0 `($M?]˗/`0 `0 Zn0aL0A`0?={ð7rPZ^z8}z΢wS|;qʴ+`0 tf: vI=T!Ub! He(or Udix8eYYcY8J뺇?0ӫ+SyT?}ºHNO2'*ANs1<scxiӼ 8cu3<% ɤfE񫪮VT|_lLvŁqWJ"{ Zm^^=$n`۩ȨE AtuuӠcn k:|irkZ[c({.//$ۙYBI$I 0|py%&#s옑a%)( 4 l4&OU(ڗ|[R'IY!r,`0Z`>C5?3\JȀU39eeeݻwOLL.B*{OzQ_ucM^qZVU Ud0xĒKt?ǿ7o^'j)4sxpj ef6Zrnj⥐uP?H{Rs&~aʆ}>#g2_U>74m>ʷο."$~B} pr4Ug2uA@I$AP$nO$I N߽r>r눷xr v`v`   㦽{?~R*jlN.HEaXJ7uVZRnؘP8]/mL*~hYuv9pܹsm6i$ ;r8w*te>31~+ %%c]v-;;{Сya}:BR8}]?Bgd=:?m8IjZ" d98NVV}T-ᡇsDVN뙨̄ݻ%%%߿sD9]Pu.=oy ѫd4©SDA1~|7Of.EC&KK'M"}32ن Щt{_0i˵ dhN&j|>|p6Ӽm`cx033azI 4FB?\xM.Cy&Q*@@@ `@L '1X}A F=Uv= Sdz0*‰̊J}uc4,4_ɱ,q|s0{ 'c/&4Z 8[H4lMM=zjRL&C4q t9s&^>lG'Dk ( HdžEUvawCl/Jaaeee灿!\ѷse Zoi?k߷[E-[8"D]6&n-8H$-K:R[;$)RJ<AE)U>r)%r _Gqk:[h`hXo}ݕ3w\]׉Vtmqo Y\,9ȻCsں/Z_T*X|ypppmߎpYۻGwC{)58HX^+Lۭ2؟tK.ytdY{x+<" $(L:lHS 5)) ڷW>@F6 *E}W . +// #jjjuw }uvcRlڙ s-ӦDJ_ 9# ׉STt8I݃5/0\PˋEHݵ5 .u{e9GW;8,M>pC45k~()6lYcc{x]7YssK=y=#QQ_L&( Tzzzi`TW[ p `23)4#GƄ4jqs]clEWZ%PPBkUN35 u]R$n_#kf~Q?9l|W' ]r6?ǻk,]%q㧓cٚt/vPr 2lj/WL.\KbRR"kx0~%gQ('`îCܕoePL0yZ#κh`H)bVA=q O?MeY1~wDǦJA@^H.Wֳ11` II?^lB(,HJ)S4MQ .i*3S$AAxnۋ& CB bht'uɼZyjkSꫫ;Ac" *:u:7']I{üU}ZW}}öR#ZPFq<%  p="@*rH~߳nYRB0}R܈̢@wI*!쑽ZkSwq2Ft8O9#%^[ڵk'L0`ۣ[A IDAT_3V|BxT`"WT~na^88r!zln߫0 M.9I  gr?4"ލ7XuLs@PeziT58]C{K3(䔄"CC4*/EWpCqJJy`azXj-{c{,**8p`aaԨQ'NLmds3/4g1&v(,J˙Rw$ YINNR^+\}wv:ab[oA.G~s6v"YVvKpyhHD: '#9N0aDUeypH$s$sqMtPg%x]~FGhn(:a88-Kbo4Z~3Pn~'**d4DFF(WdX.rsajѮ]#h42D;#V"fF}:1dNP(G8K]?uq%ew[\ XN`8{"𓙺t߬~RA`fGLLq.a9m|?h}#Czh8 @h9ؕ:Yrhe9BG<_x,כjuV[;ma6[׬A&S<#AAz#բ󂷷3^zK@b e^^=7V =%!!Qznݻ/%`YB])1>c2ΔRkԆnɨGh <%^OTr,yJܼ)IyES**$5S8^p="CR/WW!E˿eI~!AgKVjtΣslR. !Z{F-^ˮF$u[F[v+G@~~={ 999&6̜;v>5Is@zka֘ɡCE G2^">*R\PkM5%RUUl$fvןВ}R:3*tlBr ''Ԛ,Gvymf‘/ ށ!~] $!g0\JI9)F(/kA*ŒmY<~\U]]=}aÆegg=:;;{ԨQكIiټ OkvWsx 14 CP+䛃yɵuAA3!?J@hB}b%L/Jmѣ!+K8{23~ .]"xu8 ^Sd}tzUn {3'jjJ~ NH}HFNg*}u(2k/z]جA8^if?jj,,_wS))~rA_]Xi|<XzόRR!(U zthWs93&5Uthfԧ6j@Go9[ɶmۚRm۶IܹsS`9fӡk+!'OS*|>r//B!Ui ʆD\T`0充N{E]v A\|Y +W|3σ3@P+^_5yc' 8`8lΰr<41:߲_z`tE I! \ya9P'^ʍm׮9>kSOkgv;M6~ז]SE_p!))III'NHLLWpWՌBɼ#_ g69A . :=+ |Ab0,(s||Q(dbWSgzca,&qϓ'aH6 CyW$_u_0ދPgv$?gLiPZ*;LQR_RJUCCBz( ˖^hKtGy6˻_֎fXnج17 +a`0l[o;$I2DPO޽EMb޽{4ȑݦMk񟜌^{ Qio.@^ hjp T.o,襄o[A@:*v@3<qzuA+VgB4FsTow-qaAo3m(VgkEQZnȊU f\ ~f*jieimz0**20hR)U*eϞܹsQлwhC u񴰕#F_}7B."{gKMJe99 KDSFJOx&$<8=6]Ҟ#IE^ieDIUWTWK$IR$IPE<_`"R]&??t<,YzۋHյCŽgUI$ qR0 ]-:xy谍vWh?fDaIyҘSl˻}Of%H-V@D9Wr*tnnw vۦmJtiyk ] @E0 g(,!3FJ?*.ZMWl)8숟7FtA{pBBBBffY?uԣGfggB9higRT?hf9B=:xB`TGkԏx) _𵂩 x)@D'f0p`A ps"SȲ\M.6aʱ{+H4lR*a~B"|,\zC{\!z-M_yE.=rgxv(ZPUՖ`l6rlAFVzUVB7mX?3 UpEΝ`F6+c6 {="l6#$8Fht1"% Dv{^^ޠA1VWYYX=w_f`PծL)>rUtE Aڛ},YfK:h(.*BEN HES#T96{ᚭ3&GDh=,MoXVk}h'xDj3_a9xNs,3 gF1#cYh9xYNx>P8;94Xr6t-ܐ~ j\J56ޤV)ZȞ:J gܹٳ=+*SSW v;;xpSMQT`r2KKΖnW0}:?zOe%$97'!ﭧkFYJU_Xun6u!_`8 ϮA{iԆAk*J" ਔX;ӧ^7m.zU"8[ikW .--KKaq1N$ !?8fӿJ 8A#W嫖 jS(G\.d#>{qv{oVf-K: X4B2AdPJ'%%RBZo/WLv+5}5DOQ ;b[-lrG>_=<߶=KGowpۗ<`F}j+2J(KӢ?}/؟sgxH$b BH >weJ?vQO!y)ի [o="KW=~Y€=R H`N_0tFzk xu eUpLJń:H]kxw>G!Yf8W(dH K(.ІOhws}x7 T70,cONq;^>W7nܑ#Gf͚w^qAwU)%Å羷{5/LՋNy` ڪrʃ@@ R'ٖZ9c³r}fؼ 7:_یqU+YRů>m;p@{~t"9$xU_oW֚O.>Ovv `Ff5WXgπ+XiV],O[ج79y9d0 (Y`AQw=AD0o1cbq1"!A勷4 ;Җu4r>w.ܝIT"]?aĶ9ޕ*a!my,(<6wZ "&s k><#fXemvxYg9a94k3&f4To.FC >) :xU xal61hq-4ArvA04"=6tn{i0a ˎSc' &JEtdjrjZ={2!TiݰރG]WjTZQY:>#(dԹG8uAAĕB|8whMLieqbh{Rj-amߎq1 $XsƉ谿]:^;?,FgH $I!3#/{N.fo>E 3WyʫC"z4|}N}ռbil6e9Tz"4OXaXhaOTj2H{gϞ8hЍ Je;y|rU`#v0H*Ge(@ 2YGSDYEPs/i6a$ |Pά BNwpĢsKꟵͧ/ۓ'}7;wzjT*TAeryyY9'>>!eЁ c"~-WW%ڻ}Әi O>z">y\xβ@Q wYLNw<%IBU9|y~qK|N=S7a^5yh,q.NRZ/6&u7yZM791u|RHz˃:#mUqDo#ƴVJ"?]Uoeeh\{SY+ؙl _[x`yBK%Se޲pkJT*JJ%e28#yeaH IYu}pLR)JBj}l%I5sTCjdK9 ʾAR2n/Iꌶposk }lSKN9:nk5gCHJ$E:,Y1i``,])y^Z7oOqM/Ĥ޽'/Oҧ:8H\Y 䶲[ҎBJ('ӟ]RZvכV岐{~;Z%5z $& VFGݛ9ujΝg9wɃw<'v4yZbb]x%ǶgNWzno!6lذ:dλڣX.Zʆq\QQQll\.H$/;}:Z"oz;Oüf{=&}-ۢJ$ B !oh}1HuM1pֆ3jV9W8 L V;R @P_b;u67Ȝ 7^sv p]\J(e V)ॗahc\}LЙmKL6$AwQ , U͓;%A)W vD8BHGh@G]ov<ɡÇ8 %CR ]PQQ /|֭[tiiiixxxhhhEEE@@@]]}}+Ҏ#g̱|TF?- 4?/{[SF+K}b>ƴrfr =q !)P=}Q`3+OW򬇭O}TL{sw݁ez,4k0H=pժ 3g #bhB_x?'Y][eԾigNO?Rnԩ }M,HHiӁ'ߟ<-qߞ]_2sHv33L/-Bsfyt_@s@j////5gI0e;85lre !҈[э߾UZ8 {=&K&vtB@$1UL_L <wkX_Zԙzt |]-m7W^^iY8"@lư,w#;@TouͲr8j,oo%D0en3bڬ61zx QiD45'n a7n _֮QbOg2VԻG~S(W}H $I d11`,+8䲛[e^֒ ٹe@F`5 ɒG??Ғ7=VmR%r&S$z+dk/MHh}k-HP9G}/10:yA@9hs߲d޽SNyP4j\jc# vXfI ))ZM"kVA,@c K!{/RǢOc"nq8]M#,G={#i/e^=Iv & 0WƕNJͅg=wՆ*վT2RSWgDv0D"P 0_rkRkθٸ!Ceu/PM&Z%Y!M!Ȩe:A|k. !Zgtͭ~6^ȽR!'u@}/O6vU^A@$I ؕP#NKsehھD<{t* 硡eeeʖ.]zܹA``>'''GhF)\?5kk^O2*{#Y y`yPyjw~N% LFeޫ-LO{ֳYiḳ?~-a!0::32:*Awu5EGT1,*{B,Z_99}:otwaSˋY3Y:ۑ7FF׷pP^^`G/9aB*v:Dקk oOY>kmgMXrT7~ ?&1 ʝ6/#uo7~zxqלwx9ҲtZF@Fy?wfhmݻ+vֆa|LVjTJU,߿eL^ CffX,F(Z)%j ywrlYVF< >୷5k@ژE|>\U,]Q@|@uy˷\9C(D,wﻕYwʾ(=5ͤՀ2Xy=(tUCc܂-BsѴibPF1~' ^nml yGnN(HZVRn?v.Ш%Q)T R-ݳX}}:H? {_qFբ9AvߧTA:>!fLk~' mm+>6zPs=fj BA˲s?&) :^^RRt:ǎ/>E NBCUJ( VP8&Vc$9 hw},\񡒦 K*דSH /Ihj]iVRT&[QӔn:biU @P XARA$`T d*L Ԙ1xhRwH) ,==px\J_N}o_3^k`dy_v4 *q鿛F>VZdAJDU%T2QMĖX3}ft*WgO0i֠Դ^At!驩ǎɓcB(l:oH_Gczl*kO>)3kmTh<;g.:xoٳU'8^ܶVs6!! `b! wx51>b.{V<`iE/d p<>;/$ R@ 1$8X Y4ќ 2&ezp)N,4 HĔ 'fXŻxbY~͜Xx ^8yP(BH<&ܵFq$u:c.JD|Cei@J%s< PV><_;U9yO i?.kk{n"I`ڴ =lYZر$Ϛ"IGAAHnn…v?s"I)GM /ZMjxuv6LR4qi=;Bd"* r/?}8n1-h{+CW{/p'Ӎvl+\HlVW ?4>>,JZoo/ PH"Xݿ1"1UPI"\)iD,̍{*+-TX3s%:9aIOQSF@n,}$_'3E/;{Dl6___ώ偗KV4$E"fUj%S+ ʨUR?uVޱ_yݾ]?ҥEMLLX`.J%Oz5V/4 Zh{17֠lNKK?#W*/}sB2?vO6ŨN~eff~0àZ;Dx$VSNxx0b F `jo*9d=* *܍f34OŮ*nXcYՑ 8K~O--v7h Mpuuu555III555)))EEE<$/ w)딗,oZ+ykYekeiUynk~-$N,DPH͉@hVt'/^=/vG:L ::8=n~@~ U7CD gl۟(lv`,"a[ 5!DN󧻵uE8w8]HfsI'8)#@LgYRQx^Pۚ(HH(8hA@J%q<'J0uMGa? A(bxOKn-{A,nZlٜ?$Ih4lR81ȑjҦ;׿MɓH9p1??t޼?_s>$M﹧KQU<eg* e<ӳ# J%?yj3>./v9o/ݧ#u  l±I!BI_R߂)g.55;zKjcL.T}~Fi}}כ# Lթֽܽa䀚3-$E0,"kʃ'gLQ kmBsE}|@50 *#q/K+}(yzr;(4j%Q+$/hsqHzRfPޡ5fόĎ 8XabÆAx@k>两3fYmsi~&azmݱcGPPuX!:oUD)IPY8u𽙁fctiE&g;,h(ȹƒtm6'jnGp5$(2*&HU1wo.xMcb!PGXR,'(J%b\^_R7$ f؎#,ARqHbEI|Һ;yqݚ0ņ˻QtVAW:teو1cƔdeegee]paرEEEuuu|F>\Xc֯E븵~¸~~VwALXpL— gLS FFTx(Ĝ9`j|d*81v|K$I^d,,<߾G0gjW[m!>X|S#Ͼ}q /|3w}*'g޽f)s?"xñvrOǺG.rv@ot:kjjF-54L㠠`Q5ɓ7oXWvͿ !IԤ+~PxA,P,zuE!fϘW3 n4`@` SY8AAg!\/%b]ǡ@ =`餱( Jݐc}Q}f]NZT*x^p; UXfub#$H H^? HDyng=-\8СSMM qj$ O~àF pկ/Gwig$:V'D$6=jαQ4'dD Q,o.8-}G6鲪0}Q<7Vlѽ/-4 11111|.9+7?-_`ׯ]tG=2shH΃_5ny{\ $]%66688{ĉի'*ROV>b] q'OG*D򼲦ƪ׫CMC`oeE+ SQ#j, #-@8Um KS( !#ċXR*D4[YRs7x`JyFN7յ?逈c꫾pKZ3gΩSO~qqԩ'Oܻw}vi-'Z7ZG;|ǣ5was3 A9voBz|G"6ЊGHD0} .m$|MkJ;\,4R)w-+٦9J^ϵŪ[Y飏ځyۿ_䦵kfevX&!]8;Y E\v@oHbPiiѣ)*//.[C\lZVv?Uz~{@+b@):Pyq*]>0$I~a0ϓ,+,8 #a8͎m,a p4͂AEEQD}Q})ix&'0u͡7p@, 鋢PP*"/ cAð;wEl7; a:+b0{*%%H'jՙ3Z=FE @QEi^BQEϟ{^/?ޚVK՘҇:أ?} HrGE. ظ2[il%Lh*/"Z$S`@`BAJrie [C/T7X: k0Faa>ǎߟEYnWRnmeg=< {1\W.⑓v9ig)# @;]v݌a &t:]TT4)KځݽqW $$$==/b @AfzmЉAb%TU:qdIBAJ zBQBA >p^Ɓq6r=#iNqi9t; ٸL镼DaYng]Nޭ-/t;G$?nݖʪO. ۸ #4إC3g'%^[R\\WPQT4I#:=j(9$3dE#) $bc׆b~x8X?_\w]xx eҝ KY VjҨ$JRJR so1Ԕ$0~Tx9gQH]rWm*3VNIrf)h(7'[@H W׀G~UG(}[oLjwyyK'8hfϹέ?n_up˒3:t f6HN׶\LyC %EކF(>K>珺1fPf4]}X6 @JڝF% Ɋl"~^+[ Dj|D`m}v#"q)^x+JH@- oէ':|oKWb[b;sȑiӦ۷oѢE~УKj5,k67Ϝ{MV##RZԝKFC?9F%¥:ge6ovsZ|=޷l޼ι9qѴaXXcayX^fsN@ K\BQ@Qr<Ͱ4ͻ\ò BYkL[%q[0,[_q \QZTꩻ9;;|*nfʒH=M_p]~ԩaaf0@S0~z=ER^I'S&)FAR 3 @A6p/t<5( #J"/^Z4] EԤJ֗fEDDT\b# kRe"\pS(#"TڶKw΍|)^` ({}3=F_^>uI;xoym_Zޱvѻߒ|!$&$lJ7[ Tbb*:A)IAF=PADE V0ٓRO;lb H (Lku&Q PRcn* Jbqר@XoW}Poz~!v/#B6) T1t'8.DZڂKSHwkDž׽+pPXb֬Y{ٲe˾}͛o߾{(&i^=kO9b[owKlL`5[P]2ؔ,-:gwW}N(رc111*w;s ^se8=_z |ףGt])UC ɫwܜlssKnNvyeunNss+ssM9+7'p?#@кS;kGICW6@WW^|If&zu v)x^5222n Di>G[Hʐ1bcǸwgόt1Re ;5A@T7fxoPjݡ(O8|ߙg ,EF<6_x94ܶmے%Ko߾f͚kZ}&:2pdd^N yyylʔ)^Pg r˱nsfxu`k)"bMiӵ`??b IEF&sőkŒ_cI?݋落| ?SHnј9+3#~~ڛo.-Od'~vVU؋^۷C22e-`'~;wNo2222?K$~?,ϽSnK\ȁ_r @FFFFFFFFFFFFFq=jx ############# B22222222222222 @/s%bIENDB`mcu8051ide-1.4.7/doc/handbook/img/045.png0000644000175000017500000003616512067167647020236 0ustar milleniummilleniumPNG  IHDRM2 pHYs D&tEXtDescriptionWindow Class: cgram_window^=Q@zTXtTitlexsvrUp1110TUTp,*.Q(JM.QUuU005Ttq@ )* IDATxwxTUwLzPJAApEײp"~Zvֵ|k_qׂmײ,6PDJ@JO &!!=3If~I&I#{̽ys=s== *D" S<@8;H"H7S<(^YS]s3$H$M6sN8H$>i[Րr^דԉ޽{:>=u[irOرc(Lb"""N_QQ֭ߑy{t8}I{ȟi:F:]nJKARR'͙).)eڴDDDhNS(F:W}E.NDh-sUUNJ*ED2l0wzhMPcvT"#u׎O"iv 4UUX BNIt .%/S/`04H_N(M.H]=ޭ#H]Eu˜(.*#7UEQKyfRH)!3A L`}C&: WVB TioOp`)#t:os:w/ .2>}3gd[䢋HHJ X?ќoLb?lp&T~"뮶4GICa_OsStҒ2N%gMl/V~Yh2E3D+W+訨(gr=O;_DQZT{oOܹ3%EX"yGWQSOϢxw)*<â^G{NjcذaY+h9uߘ(`k뤥 vy6| htBJ jTd&w߷N+(,,]ynvO|lӥ\d3sIo{nm~Ex+3/ߘl_@[`}7|]Ϲ#c41 nzoA0,f į2 AǘFOEiFSXf #`¸]Ge9ƍaTWVLNMAnʀ~} z嬩YSU+ᬩYS+DDs̙LyUTVaC flQ1D%SUf &3ѱ$$( F~o8Nn7NǪk7n cǞ?x NǦ-QeÇ0|`^Pt_+*((( 1!ق`RգX""K$&. 'p e%hk\5*L6vCt|3o> F.ɤϧDAgdo7n .)--krgֈ('q+PQQt:RRS8z(Κ\zoV'_m8VU֭[Ϥ+砡ͶjMB寮/'KAǎUTd-,( C1QVFLw8k\嗑qkouϦzeR Zw4y֗C OK&¡rEj1aZmӪr( f ɊjQYY(,__L"n7kl<[0mt]ǎ:EA9"rTy ~B>q$wԱWWgyYQQQnj^z%q`48s {F_fڴL<.y%n\UU!FoDSjz:E 22* J'NO_Ĉ G&6.>Æls.8|L=f D2yG):TEeƥ_gM ѣ ^Ç镚^]DZc<8׎eŅ fKCݟ?|.|Ç؜뮾 тhD74j@denz!v^} +!y1JEth6_2 'e$%Ϧk׮A's"I xlL:|{elB\[#oO{SO̤ ( 'sDOo6,-* ΊϿO4tz=(:s+穧760kl_Z3O?MUen cycؿCG`b^ɫwʡ/V~+>à7ѳG'= O8} >(ObbI%qۅ`$//m۶c4MFbǟp+QtYAϔv\N.">\ QҥKkP<Nܑ3gFuxUUbՕo 'MH~iDGEbZ1M <}S~٘rTڭ{]:=؋#]:aayév:R鍹N Xa攎dz~t:pЪn9_(F{>Gb^|iʕCEY1&MQ%3Ϣݧ}SǢSzg2}4c1Y-ƙ3/i<|\.7OV5{?8 R}n77;: :y(6+FDI)DGEbZQ]5=`0r C1Z͘M¹f{Q^X ^,@oУ.ncǯ݄l9s8oz#z*۶md2>Q1qA{zig\:/V~^^F dz=jA4׮_5Oӻ^oTM`Sl??Tg =my{n80* ^CōY͔ 1sqT9{êJ|hVG}ʅrT7@Ub.5'OeE_ӹt%W_ Ա%meE+5A>z`U8`pB:=q 'v믾tq"bX#LϘi~AyI1f*9^xY*++{t)L&zf?JΜv7) fIJra6"1La߮֯kL&9 шd ֩n!t6~{aPl2b- l0p8Xְn` :0D%b,TPtM zzDe8kq zLf E1|"bPt [Ec2Y>Q1q Pt&LV޺'(?^ITt)|DjC$ld1u:f1(:"P F3:]Г@tl*g͆bEQtb:WQ`j`0quSQV\ yMM__å2 EF`F`4΀ڸ]K[ϷEEyyh!//TCRYYɁ}{@Q99SYQ RLvq913ܹ3zifH"GHYO BuíK$vY8W_= 2{Uessi떙кUq!gH֡o)zun+EiEUDzD3O!W`vM") ]j Zȑqqbta! 99-okPbcA"ؽ2Gj1 ,KBqq8_jX0j8of3m08N`vxull;Ctәkz fεpU}imn:uӡ[xoi"%`+!L^ZޖFn=m] hq q9{3εpڕ<6VͩRk)u12_@$ =KMlpU`2 A55P^bkNAmjӸ\phKWgmuIMZ۾}5thN3[ .-6o,OU,zс=kpb4zT6.hiZڧv=:Z)gqyǁ :{"nǏy@elſ֭`si-ϊ-"#Ņ pTĸUq1|v)p0sl [{w7nM O)m#%E82mdSgcb.i"{ŹT5iq]Bp_keggi\p1=-ʏ@Npb<$?i^ZVϞl[pMpaGZl &n6lhmr8u-zq]Œ;lts׫%V@@[/^fGqǣwٻ}+KW"Tl]Ǧ8Tރ0ɍ#׌o'>9Yuh+ipe0٦Dž!zNpRC,ql:,Y"ltp-k'ޥzOr[\^f _a!Y]imp9giOvm `H1*+g:4ZlYp%6"#n(RJKś#X{1q*6ܹ-a 1qv MNZ\.Wm/{ז[@{Σ@[[FY}#΢9-&iZgv=4víp뭩=:L@z@Dxz]';4f`O$`.ᇆ:ZV]koEZږnx/oViipCh-W"J}nfglr,]pgvn{té-s4\M[0Δ"`߁{g[Ɉyca`6{F1f`eEF>s7fKQĿqR<۷Q.lЯxYV&6ӛw:{ܘ'=o];]JK<ӧj+7Wܪ%z;b\鄒0ֵK¹4yZW3h V& vO-Jk{rֿz .yy6!:2=TDnرvQ񯙜,Nj4I4/p-W_4VLXa|Xʥ^9p 1]-uRh5qԝeZ֏?=zԎ:NOݵ2lXnfG[PUA̻kNo7>[]i9Z_k];6=у!x=ReԳo 1i=Gj7սpUs@LPUq7[55a-.mDOZ.=Rkr:T?Μ/dF#TU)4)D-i 7eX ,z7ލ?^#[jWǏ{eҥvm|羵;hX}TFL{*XJrm95Z=n]SKh>IDJQQ\"liCk:(% NSk"RenLCĝAa[\=m% #\B:M- "#fC߷衮Y8olj2fƏ[oC=YF o~Ug9?':- {Q#qh* rH]2oBq7\EL{3+PĞz CMNcV.!G,^R.eol̞sfٜ9CɅFC- մ@ddd0ff3&L`7tF-X2GA =Ό=zhB0DEZ(t3bZmƚgU1rTi6/ MiE-ͺt:jz?msrrỴB܂[ JU9Ԙ[1`pPz'8oS\M[:~Ku \8"b+mԊBD*R/ -Zh6/i]4s7(8r$22UV1l0VXAdd$5558M2P](JH"JVsE+p"Qw]##U%qDێX6ąV-;k]^KUȰn5+6mVi$j%""hт[Gq#ߥs9\{(=qDh8"Fr1:y>'X*l֡YN{Q^fdz{nv؁hb(J2Pz:W9dzw10]«:mй+ZU#R[E#wPmO5K~BѦm^4ib9H{i b3p=/''RZdPcNXXӒB:PhC[z@s mRϣ5M˞y*rTi6/i]BitbKjz0@ ?cǎe=UUUaƍQcmFq = kQ4V:W9%mIb3(ױ qhi-~ڪ͛23z}L!192*xg&-AH9iXn,ۻz-.ٻ7̟/hb`̛7*NV^]w݅nnKF 桸|Nlūt.tn;%(j E+lZ5՗N_SIe:mBQ%G乾,a.nleZ\![lū96 9қ-V.2Zh6oٴbtI9`)h({KAbΫ}Bѣ=~;,Z-2Z1 k${·oƒJnE nt :Aapi(>rATdڛZ-nC,0tUCpeR.2Zh6/i]l5Jo?E"ih=Yj}j ̞sUȉu)*e-r5JD"iiJ$IybD"9cMr# ,]Z.Cz?.@X奵W4VijӁشI.N4--'-0f1m4>#^*@Y.VmŎN/W0eBr\:tv±msɏɴjO3;[lIIeet8? kd0@4 CSʪ՚Z*ڼ-mj˲w`Z<1ٷX#-vP3E⻳LjE!/D9 mN|[,:㊊ aąZ.T;iΗKYzsx|p=*nYh81lcC4e5%!a3'm5V,\[Z>H&~Ѳ|.ig{eXS'HLF#!ᱽB(H:YZʖ}I)izB s_o)m GFdzOsd(?Lkv]&/Y P5lJlbp_o|_]V,2h6VmKܹM\>Y#$]|󅢽f5`G04 ӋN=Ψ(0űD,}PSJw0`lmo-i\mi-ϗVY'|8C_7IF ҖlIZNs`Knotӧ$$}m8:UÇ9s&_~̚5Cukт%mu4[͡0Wz 5a˕mvU]X|uU=~\UUUUje2߇~r]wjEEjDuahAڒ~n2Q3 ˾DU|ua/W~f9.Yz=PC{^7&Ǐ^RkWٿ_$Ě5k##ɄjEQFe mI[͖ 4E]ݵh#>++E3qxsE,iKh$KP(<)I޾]#{0@0 Lڵkp_s%iKP_Ru6Ow˫ᇪrwTRm6z嗫|zWVU=x`X2Z4U* Uhf=/,cn7êUӒѻwo>S;w.?&---,-H[VG%i]dv'4 M.#K$I3NS"H@:MD" F'4ΎH$ݻw Mzk*)H$a"_χkc̜9t.R6l$-H[VG% ّ kq Բcǎ1|u+B^KF ҖlI3{UPGHw/,Y"w߅'2}Miۘfy?|{9V+oVX2ZfKҊ*M[0B:m #1c|[f3&L`ӦMahAڒ:-IҬyyo_DNN={rrr|hAڒ:-IҬ;wÇF#Gѣ rQYYIdd$VbذaXHjjjp8d mI[͖DAhv8HN=)^V+Dԍ\-H[VG% NkZ5+r;b>]eK4ԧl3~xv ;0X,EiTF ҖlI׳:KY  }tqFEXoJJ GۗCJJ/B-H[VG%юQ3Y].1i6U<]. {رl޼ٷ^UU6l`ܸqahAڒ:-Sf&Qᅬ)3Sh$yAfLxЯx#Ȼ]~د¡̘̙wfJyQUUŝwի뮻p ahAڒ:-˦M$=Ӕ:LKw32ĭ{EqVVƍу^{Ǐss-Z7EF ҖlIZ]"!#7BW#s<4D"-vnl ܹEVQ+t8P$/}寚n 2D"AR|q[E)g}!tX:5_}9We^$s4G&fH$胠Pq$!4%$ ڍ4ߜڨLɄe$5iN35RlL *v(]tbZ6̙D"s֝T6 bgt2k^$BBJvy嗙8q"{f֭[Yp!~)zF"9{e,\}ꫯl2^z饳giT>K:#x&p_?.#SMT(XTϙ3gx7x7n ;Gy-[>|rƎKZZ7x#p3p@O?K~zLBZZ]wNj H¤^zŋ3i$8q"O>$=smƴi|i޷o]v_5jqtޝ{1_>!CUW]EgA:zx6]8M'7pUT?9".6 G<aXͯ_~oIx7gffpBvE׮]}'xŊ۷7rJyg<ڵpw\EH$M`ƍӧOSLӤc׮]v'g{[x :{Yht֍+\}-Wv@ wEquzPtTs|W.4̙3$%%i_3c F?so+N^^o!**>'2i$_!CPRRBLLLJ-4:u,:Oee%m6x嗙5k/0C=D~|L] +h7=M/nG5CiCiݩ)mll,up8x7}rbPTTČ3={69sYp!N|֬Y?~<'Ol6S\\ܼK$ ..ӧO7p8x}:u9ٳg3w\n& SO=×&66ʙ3gҮì.(T{M?zhKVV͛7sE8]())p˱cǘ5kWݪ/Y8fϞƍٸq#ׯwW- ƍǏ?ȡCoذg}:JpWe֭[Ǟ={Mbb"ǏcۉkJq뇑<<шT!9[Oʼ v'=uPRGΝ~=gΜac۶mTTTO0i$V++W{兩dbԩ\j^y|X$dϟ5\ڵk)((`Æ ̟?Nf#33ǏSZZkT'|‚ (**d2*fK.˗e***xᇙ2e V5 ʚ?Řڡt?a>g|c9#zS%*N8JdxˣSN\},XlZZ< ,c3֭[5j&K/sb6y'{8y$#FozHG%:: KΝկ~=@zz:sa$%%q[ou7yf1L̚5뮻̓O>-BAA&L_ _|={2lذV)٠r?|sj%R2=/ 8"-#@0W9PT[d# ٺ%}-w!.vP|"ഢCIM%ȥc:LD>hc_ض0#9$H)H"i!_"{lnD"9s4!H$? :)gɅ!S:YH:4Aftt"H$cD~=ٺ%lE"Hnp{^_@"H$fFƦD"Iw%3* ;IENDB`mcu8051ide-1.4.7/doc/handbook/img/1rightarrow.png0000644000175000017500000000144712067167647022172 0ustar milleniummilleniumPNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?2PO9`߿~QbLxίD@%G\AD _Og`¿?@Ą._Imua, ;3Dl00wb  .c`ax? B 8/l8(~ |\I^l :a y >/1-(?00۲12 |^]&5bgO f/d,M8  ,a qq6;VjAY@X] hoJF_aQ`dgd*0 10(^~ŏM9SH0b܀f5#?*:1sk9Ă-b0(M3#86@,؂0yD߀r~C~ tĂ5$/ E.V@Ο /b mp9nB/:ߋQ8VsQ @XØgx; @X],߾3<93†@a c~vTo1ܚ6S  ``8g Wځ.hCA B;ϻw@ =@ @u g%`TEA& $20 B*IENDB`mcu8051ide-1.4.7/doc/handbook/img/035.png0000644000175000017500000015477412067167647020244 0ustar milleniummilleniumPNG  IHDRiF pHYs D(tEXtDescriptionWindow Class: rs232debugger1E1l(tEXtTitleUART/RS232 Debugger - MCU 8051 IDE0 IDATxwx?3[  !I^(""xE,(xm  BHBKHoͶ%KzB2y؝3wɜߜ9E:((((((((M j; *RPPPPPPȇ7}&NCJvPKs=x;(((((((pL5$J<13IU9 8{ QP;{ ~oqgiJ puu@eAj?qU CTk\|8ޥʙ1H:w6wn?~+9f-{rs">>$I* ̉#8?֔Av\j~7q1;qwn?~+9D3c˖- "IIIݛ>} %ܔS{|nSPPPP{-pA,(2 M(//FCVv6*aOUPHv;bp[P2!FCvv6"00YF  Fnhݦ % HYY|Bxs}" kͲT^e)^i,NqjKl]8Qsn) n+ڞòWnJeQy222puuEV;YVV+TkAx*(VW[IYݎXOh?e;W.WNOb;;J߶iF^$3<_1(7;"|$jYqm_dW/6 VЛ0fJ0+g9W!*\hI[tȖ/z:dTh79Nn$;@/0fG?{4ݠg m]˦@+Vo]3w eLꬭWpsLqf5a(lVS;W~ d/=+(Ju'D~waT\:'Rk6}+pLu/Ɯ4!iNa5P`@eNit-{TTun+o Ui{vAE$Ij""("2$aX0 Ȳ8wˡdf)%f D'GXq;B ,'KةRYR+7," 33Y͐DS{ %B6zD>YM}9}g\]̗^O"9: v%l4Ah_AӖgߊh1zNHx|FUZOJHFXeRdɆ T9Zp8yaHrԯkc7>b'Y#p_BY:Zjo_]PK&~y9|."߱cN*%N?ޭ_BJQntqT u?ZSFFn+ڞ=,V=n%9 {zCEj5x{{zz{nj56 IJeP\b&WpXvJ+\W`CQn(^|vTTnpXJ=冀" 1;_ t6#VByd&-\l: 6Y&dO3 k iÜB~n&F" Ix+u64Li,t7Oꖇ(87, H_a4**_Vd=H Ku~pֽ=?}dqpo|X~zH 9Xz?ǵ9ፁ&C/ fGOp~* cWV^܆Ό Jdތ_iSӳ ,ܬ ƽR:Zp Yr4*ik.-(h+x7Zw7C7;[g5{x- {/RBCi:=RNidgFo=V}S-n+TS )|8(v0Qox1mō3J)ޢa,Vٻ^}; ~|{-|m؛zqTT4*\nh|WKt\1ڟ, x72UMK2mˆ$JB3Yfc`QYGIa3_1mW'% J#p#BSv|{+MN=ɣ.gKCWUr8k̘sRL_(ڲ 2"\ '`zzde2b־M)K0K7x/?gwh4,{2"=e77z2ZƊCvh:" aICl|;oaŬ&j34l)To^w2eqjJ_}BLFZ28y8򟛞7 VGwdc?@V fc.yΡQ EWzM}>!y^=nOAM\ pͬ`SҩHB]r8o&CڸAѾE(Vy6 FIHӆ53iy:$D<4&j'6U%Ks^A(P]ɷQjAY&+#]Se5)ݼP Ѩ% @~^|쎹!3|m=nf=rz7]O+Ϧ,k=W\ teQr>ݽ"|iֈ #sqA?'~BB(r#L-Ls1(V~<VWt.\~ @ɸw` `E5 2H}NYhSY*ԝ} 5GmX؊ vo/FbYX_AUmt\*+w{P$~])'&1؂za2!6dh'pYގջ2޻dU0O!,*E,^J؛Fz ]5Z'wW`1d "$oN{s?gƜO:gS^Fhx+ 'biu"۵MZq8ӐBg"*yi=i؜H}ׯ5jڊ?~ІOznZ/iȓtڜPq^Y)H~nG}Mh^VEK}(c7pkDAo:Ѥ]?6]Nz>##3'Oe!^#[r87w,xx9s8rj2{f&ZQl+Z'GMaO+||'HּW:Z|Z'7N3K"+^xj,8%=mV#ZIWӺ ,  GCv1,#udd4}F6b) Sw-\4z8,R9G;WB1v5uo/G_pV}4DFFDwY;F>dZHŜ&} nM1HZQYd{g<1ph,"JKyh{ OFۘ9f6^g=")@TxE M]\lSa;AmPsɱؐu:މ\c$Yӿ wMXa:U-}'͟u a/cE",'e=!wAMDER⏳gXLyNQO`u#W ,1x9T\w^Qi2Hiڰq۩ o UV!j?z-RRh3iyqj4!8<8{5/{=J}cQֵ8[wTq~<;{/_AI"6drlZr:36- ksi3q)ύ,^d]ϥHlnNl_ΠCо&rZTVj#.hÆ$_{dZmX$GЊ.wM> o}@dMѦ0~aZSjLI9ȵȶ||FԂ:MC `K96-j$&:zL,f 6&\O:F|AX]_Uh+[ S(!2VDtHЊ6t\TVl, Xe+::jܔ 5al̗dulZft9 & d[uXuX$z1l} 6-V-FptdUVIRq.׋b,h+t͍1 ifg2L>^Jnzb @GՇfa̼I1e&"H5ƻODQlB f6EBWɴڧyMd3 6&IEEVɗ4X7t 6A@ٵfqBA1$8:Ҫu+l9YEtj@UX" F_Ҁ jvYe)NX5ZrmZDAF#Z0IJ/]zݖXe9V FI{}d[jnIّ_Ye ʆYRca$]ɗ6Lҍ2̺Orp+wwDzYV TJ[f(nRXd w hF-U"WPGKHbE *P J:2*3*Q&ߦ`^]6 *QF#_I$4\3=*K^_ދ CeEqMa4 J\OH{qHLID*1' &2d1H$ ݼ=[CC}ޠ)T Gclj-w'hfv¹SSKmפMO,8UґeL ,"eUA]йxٽfOଲ`L}TBpU"Q#ˢ'_RWPh[WGL|л(j-F+a5HNfIEUIoWQBo*j,1O WPP]aH`vr_M}K)((((((^&~{APiH u  Fmdg5V׏) 5㠠PPD||<0DF6sָpD$Ul@AA\AAAN`ٝQi,ȟfѴiC݉K*|AAANIJM\DffQnCrr2Ef͚o`nJ7O(111x{{E|4(㠠P'Xl>|kCt_4k77L& &Z?~i<,yy&2˷UAVdd$}-bŀ`. dYfϞ=x{{ҿ,YBشiӦM+ΦMԩ~~~ݛ;*J祗^W^3f޽;iii$$$0|RSSo8z#֭[ӴiS/^ ضm㎰%Is!,,y.fPP:ARR=OXX#2205AZiZ9r`rg̘1/믿Ά q,YBff& 4`Ŋs=El;w &j9s&iii"%$$0i$$IGe…U*ڼy3-{̜9K.9W^o6_ qPPPm۟ k`loˤfq'id\[;w???z-\]]yٰa& 2k,~j5Vr2dgԨQNÆ al6~!3g>s\|R<,XZŅMIoݺuf.\;S±jܸ1~)ͣ{hxZQo&_ e:A^ٸ|Z ٌ.N%rO\ důxF@ bxyy1fBBBv-[HJJrm۶m(b_o 3嫯bp1|}}KͳFq|)zuCV dĈ\|q͑#Gx t9sLׯ]vҷo_;۬Y3ׯW'B,= ]FE+?_gMl6i҄oooϟObb"cĈe7nϟ.re˖,[ ʼygժUtJ"ڴiL~~>| ƍ+eʔ)f͚ ә2e -Zoڵktڕ .]Tnk"_ Cp-=o٪U+>S:u,dgg3uT|}}ꫯ0ʹiӆg} &`XXd ?3(tڕoݻpBV^xg޼y?~u֕O S;AB@ÎFtvKQ.]ą hٲ%9snݺ1{lO~)b vǼp` ?<==iܸ1G&..+WiLJ^{-[Nm޽tԉ}y|2Ʉl2BBBwww*P?iN ///t:`%SOʎ;*Pi31[e~ML5*Ww}̞=%Kзo_7nG}Dnn4;jq9r$ҨQ#Μ9hرc:ubŴnݚÇm۶Rm,lٲ1c0|0|p^O?ͳ>[x G&+7`>'w7oGOӧIMMÌ?vRŋӾwgʕL8ٌ 'OfɘfmO?͏?HLL weر1uTcccqrr"88Nǔ)Sյx xxvPP#7nLƍiӦ ÇO<؍iOZ(uÇy駉'>>cb26lw}7k7K,q|7LT*4Mnb0 ۗh.\իWIIIaݺuٳ޽KX~=9˗/sE.^fo߾]'N؀EӕOAAAAAAq!00}?֭cǎt1}sɒ%hѢDǏo>ڵkW̤gϞL<ÇIJJcV+ބѬY3BBBx'HIIq\ɓi޼9M4a|*_nݺq]wѶm[}]Kf[jUdmR^~ahҤ 4 ,,0*N*sDD.\t*ZqPXVS\;w.ǏgƍȲLTT;w_FղqF^{5bbbPTƯn=ٓ[NNNcǎGGחx\\\ƃܹsVIKEy/@{E TdQtV'9""_~FF Mu%zzVZKjj*MkNRR?,,Z hԨnnnW\i߾=ΤTq.7eMNNYAAA:QzZUV>}K.ѥK;Lg-Xq(n`ݍロ{w^zѷo_zٻw/*ĔhӦMtV''?xL#qdB[,(,Z޽{ٽ{7gweȑ[$I"--˗V\-/ZoN3u?dѷ[MR%.TOZ_DFFw}$IEQF1~xZnֳerrrx߿?_~;9&&?:: &0lذ*ۺur2:sA,p+Pv|L&ΝKdd$aaa^Ϝ9sGe6lӧׯ_[#66;vyܹ3׮]C*]ռ:gDqDDD`Xի_}`r_z5/2ZBRѤI֬YcCY[wͫʣ>JVV н{w>R^<:;yVPPPNu:fhh(vÂ@yy?(5'ݻwd|}ϗߥ۷өSJ_@ƍkP}qf1wsvshO꥖K1w7/t:Ldlw<ڋdȑ#}x_aڭ撕UpB֬YSqrrQ奄 InAJ ~_צ _dR^`Y\Xw?ޞڤE$RK~Bz?2) $\NJ |?Zj7.\`ǎ䐟ju>ܭ[7>T*U[+G2&MɢE/ѣG6&M9֯__2%qZ~ML9% %s&n`4XJ6Wђu.G~#ZwHMDu' c~%{[R׈qhт/sUZ111?~ݻW-u3|D.r.;3vvc|.$&97?xO:{ҩ%-Z28bOW{ͣЬ/hE#R䑓˭>|}}jX,V+fBRRW?l6W{8Ǔ8GTTT=z={9[$~1z2h6_D~l6 fňbhP?6.FWlג&-({CfBzz#-2s㦅䟩Z*6l ..X,X9s8rH«Z6owQ-f O yf_>\Cm5S{dİ~ƴEyF´9wu<# ^X: 777Fi(tt4 V~ezBm}d#`2gc-$3&llrމ;k1ކ{b:tÇ!1 #~dAb ÈpOpkMTT[ȲB˖-ٹs'SNeѢE> fiӦѰaCBBBxwHHHs\j*ZjE`` < F?|}}ӧO.WڵkyyGwޜ8q?ЦM=z4׮]ԩSDEE1{l:uă>fC4 */|IGj7~Sm#~x)'_v\eL{dZOfqo{c󴇧eUnx) ~i=fD #5q4kƓBNfѻ cClɔ5+"%%x$ ƍGpp0fQFjbs VUQzBb9r,9ħH&ssgK;G%A䬸:v,fH{N ٌ0:!>f3Ҟg3]5cKZGӎϟ'((8Nעٱc#͛:t(7n䯿رc_ܹsE8qgfժU:u$K?>7ntޝŋW~`Ȑ!rO"IgϞe̙,]X1c#ޑ#G0|ϨT*>sڼ>Cg.X[3gdDGxvmvD=U+PT>yCصFw0h  q! ٱ|c>(tR|}J\/2m'H<=p[شy\xS~O -([ua08I&Ѷm[Zn/Lv0͘L*3 u~+oo2J""|f ײI Y j`4u_ 2șt 2 'IJ.E^P׵Q ։$ O>I޽ӓgyQXr%}#;;tҥ ֭#//$Zhqss㯿raFXF\v@Kpp0F777*ߦMƎ YXbN_eذas̡yz͛FS?=;Βwxg;QF*FBJJJ0OOO7??J; |A@'=%];6t|NNLf]1N#+=:\x~. 7:Ȟ{z*X''&c"1o~c|"w]5"2qg1v!`3: z;9 `_1##ٳgiݺuułb… դNs*0>8]"gjЫu 1zYV! &ytkq0?dF%/`%hXU['d1k,>aȑ$%%1qD}`wFo;v'N`69y$wF׳~z6mT˗/;>K˗ǧHh˱|eٳ}߇KqaW8>{x1l0~1סѨ݁0b6"|㧍/a<>З]wqE^xy"צlشjVob/h5G8piQFt OViOO'Q`ߥyv0>>ʡChժZI&9z! fٌSjSc4\W댺B]xTLIWpu %8ϠU.u^yO!)ІЪ B&- jBbo^(elٲX뀍72uT222jȲ\FVZʼn'bΜ9$''c4qqqAՒ+X,ꈉ7,X777ZhAX~= |M[nQ41+9v)|G'侨VKlGxٶn}K.d2>WѹidI2R3صy_+@ГC_t946Lh氓Cvf6YY;p'H:әkW{n,f >X?Pwо}{#G駟rQ[oEnn.̟?>>Z։: IOO.x++i_* ۔űh"xO-'z$WNA`XgDKKLc@ΝM0}ѢE Z-Æ cرEر#*=DEEb4_'44I&1k,֬YC˖-ѧO~gONdd$˗/GE"""?>O=ٳ]t!""3g i3@~=xgx'X,x{g 8$y_'_ūڞaI&yѩW'u {tK@|nԤ~A~tk_牁OE& dF_쏱lDÕҼusǚ _2AXfNz؋isS3n=AAADFF~f3'NСCXVN8K/{gW% Cp-=޻XzP_^Ys)]i4ٗ3N3]#dk#=S/dnYLDw8<KN"-?8k8p }`ڵl۶*(ڴ#y*jN+ٱ;fe7HK"Pt1- _5d2a2wL```%ĝ-5-_l!7=q; ݞ!<-j}~osaty7MZ<?i[ 1;IBvƭX6iFN<Ʌ j N<#g!\}8}ھ[߿F .$,,&MdɒR=uQQQ̞=N:ރ>fCk.:wL@@#Fʕ+5R6l߾AѱcGݙ9s&󎫲!C eRIIj#Gh?KUKs{ȍX{dq^.^_u}>9y>|._Lz>|8o… 4jLMM0a*MPPp?x7e (ܴX[B ^$ +… $&&~R9}4˗/g{U222ؾ}ߏW\,XӢE ƌSiPhii~萖Frr2aaa4i҄'ҹsg> i,+="++K[ecoo/T*>|3~x233en &^(BDUC֭I&L0)S5ϟՕ|HOO/5@FMv/WSSytzAAAt/// 9s&!!!$''W(ѥK ,Zl?ΩS`Ϟ=DBFFFHOOWVDDD鼠|VEqpp`ʕ/O *{uZÇ122B"p}ƎKӦMqwwgʕ:u ccciذaqH$O/~7mTnڍ5^zʤѣGy饗dHJJĤL׮,;v䣏>bذadeeV566FGGW^yΓ'O_>x +t """0P\8iF68|j0XA 4i҄ `ggǫ~:>}=== qqqDEE~GGGM[CCC}Ν +̌ϵkת=--}2j(nܸA@@ή5ihh#퓹ݿkkkUAG]رcl޼q ' uRY̲A RRRxɄpyزe 999U4<<RRRXn,>ooo֯_OHH ̛7@ Φw:tϓŲed+UEtt4}Ν;$$$pB H1HKKcɒ%h :uē'O8u999YooonU Uʅ6m"00}aaaQ]a(bzy饗ppp___FkIMMٙ;pvEׯ;vk׮ 0@_nݘ8q" ]vxyy˗@uuuܜKGѴiS;ڵk,?~< [nȺ+ Xl/楗^ի\v;̙3֭[\#I!LJ\$'yVK•ՂsFMVV_sss#=&eBlQ7,QKtς)ÚIlwLeOzq@ (+5uj5 ݻGNN-[,r^(0 C@ vF8,]ӧ90(@ +p'99Y^TK[Tt!!(*r#Z z衔ߪz5$ ^v_ՕxoKKK&N2§~ɓ'hkEu*T9jQϜ9äIWu DBᗜ:-$JmOFMΝiӦqVj; hժUnCHJL - ꎡ! 4 oooZlɍ7駟puu‚ݻsmf̙tЁHϟyyyk׎QFb YZ ,? ߧ,^VZ+pY{@@;wٙ#GT?///6l?kTj!*ӧOׯcdggĎB ?׮]… $&&~G߫Wۋı~r رc2~~ڮ2y&\v1cΌ3XlW^q|c„ ̞=Wĉv{{{ra۶m :`kk˩STb@ Ps///'֜?WWW122"==]NSSy"7ݻsRRR ..N{oMCOO455֭ϟ?رcۗ;b``i8}4 ?~]) wu={VGDD鼠免 )SOO{UxQ( fݺu`ddʕ+9uӰaC[FW¸ ԩO&&&oooB333O>շ 4@OO$8y$윮.4hР폈( DCRCVחG1sL[U!ZܹPN>:tH^%7xG?0mڴJwDEE~?{LLLLHOO___Ν @~~>7o,^TAʧ  `ͬ]K*f֦MFF萔Ė-[022R:|vv6ڼ,XzQ=zGi޼9 ,}}R-[ ڴi9rR{hjp/>|8;v^zhj*!/KkDIA8*u֪-B0|LPP3fMƮ]hݺ°:uՕ;w`gg;v:8;;3g&L@BB;w+5 ,`ʔ)WU:" T@s\7SSS.p/88Xm۶ş~"ጌ񩨹*YfE~~~9\^իWY-Njppvv^? *x&tjs*C!##ѣGsYv-:::6 m;ƸqXhQ30q}:t=j S33ڤ@PKxyM8꒖@ZZZ1{UT6A] @  ^z7LBB|̭aPmUM c]UPn""UmBAa̞=mƊ+2e\Uմ/*C%R0 vڌ rb{3_TʅCzzl p}ꟸZ3$j: *^> AQpbn3% J'Z=fffannNΝmP 2j޽z $$//r]lܸN:Dn&{~ѣG+̨bB-Z ++KĮ]xW;;;O^i*Kxx8=wޞ5kW_gU&Pjp ܹsY7npBM&׿dYq(I oM<AY0443l0>|Ȋ+d᧟~bٲe$&&ҲeKVZ~~~Ѯ];.\͛K"))) 8gŠ+hӦ ̟?={ٳ̜9Ř1cꫯ5ѡ~顯^ Poj|Wڵkٷo[luEDCADQYc jz "" HLL +WE9)ǹuׯ_ٳlذ{Um&=#F{rJR;/ hР(vʦ@@!X[[sy\]]Ȉbaо}{ ӦM#==P6lmmtvvv2p nʡC cԨQL2D"7LDDD j6*HMMeܸq`iiɪUVYe&wUuDLLLdW\ɩS066F__ NYZZZ4mڔD.?2{_`9 w޴j 'zj?3>P|fNI]TYF?+c8ƚI=mlJ..m7&GmIJJ̉[tZ[i055Q x7ؾ}{iǭB{o瑗ȨHB]cSrٲE*2̉_+Ŗ 2*Rj߀Tmq2?v)LdT4Qk<*.]fϞ'^^^\zWWR+lPQQ{RS%YْRA]%%-K)B(FP{Ppu'xNcǎ?~ܜUVWqP Pq8p@ TU@@ zT;fio] c׏;|Ofjf遪 aNf͊=z 88R9y$|A)PW[oamm5Ν;2w rss+%ݻw˽!!!xyyUIѣj/ ($+=%0p@$))'ҠA6l_|A-HLLϏ<ڵkGzz:{UVXYY1h bcciK:t(xzzrLIIaXZZҵkW^ HW?>@t8q"M4Ύoz2oW  Q>yDӖMem[ڒ@NfJѣ150PI/"H8z(nnn4h7nիcҤI̘1+WƤIfl߾7nбcG6lP$'O0zhڵkWWiҤ M6eќ>}L455ٶm߿---\BLL SNe͚5cccɓeqٳ}N޽'??XGϏp郿֍?~[nquΞ=ˆ Jرce4GTD@K/ҳ-4{f9]ҦMZjŴi@SS3fĉ'ҥ ԯ_Sr ={FFqrr"??CCC[/"%%#GҡC^uU]j^z;v:?ҲeK|}}9rH1AAAၡ!fdfJVZ1l06m)))+_zz: LOOɓ'r%*'2lvVEyxq&Fs%QWglꑝ-.UUjvڅ!ɓ'ccc>hkK8N:,.Ϟ=C__ubdd.2=;w2uT,--:"͑#G;v,{C24m_ zM6%>>X%&&bll\DEEOrr2̞=^mDDDiaR+Z^%%] ~x!MQUqƲ&mOOO:u$YQ`jjgϞٳ>}[ҴiSǝ;w8x {eСEڵ+_|}￯JLL̬n}o>}]oܹsq& 6$c !󉉉¢XѲyyyDGGcee%H ŋ9s nbeVUR hJP@ၔ%uZ0!f8w>pܹ"-GӇ.^HZZgK6P0$$;vʢE022yҼ|2v"55 ҰaC\\\J/;;@&L@RR:::H$";hj (L5Moԟ|jT'm۶]v{ 6.]gccüyhٲ%Ofɒ%t|jj*:-h&R IDATt`ȑqbZZZ3w\$I\_]8pcǎѾ}{YlW;uꄫ+M6e…=f͚òedquޝÇٴiūc9q7n,rU@AFOO͛ӦM6lXe@PNj{UmFbVVIWȍ ǎ+rgϞٳ_vQ\~d /rS =mUӾ}{:$_jww)џI2/2h  *yȶmrݵkx ."Z:F]nyG"ă@ (/B8u!ΠAJj;B8u!AY#k9Q8Gٖ$"RL blP9P1cMȺxXrob]S[9kUDߪ4xx!2 )3˧i!j1=zJ=K*j xRlMPw166DJJ 'TՆW/KW! !Gۯ5jQAXmޞ@ _~%o_SKA_t GGb_Mll,={dŊTEu!7jmqhѢYYY;vqƱk.^}UҺu" u-N/+'Of̙,_^! 5!uӈzWx< Dm@&* iРÆ ÇXp(Gۛ;0c u?PUM᭼^77Q< Mi۷['Aҥl@JJ͛7Ac44ٳ4~a'::GN/T1zb͚5 萚Jbb" 6,FKm{6aöך[w߾ M:B`Il9[o7Ѳ#:hh@vv>oGo'  ?7TmJQPfff$''9퍽hѢEa_{5y&)))|7E06-տknJ=غuk '''̊<(Mw>(ƍxxԬ--,,%$$ȦnʥK7Y~?ѿLL ?s}BCAKK?7l|ɍ/??UVѵkWر#K,!//PzU]W%T8$&&̸n:Ξ=+;9ڵkebbtܙO>~=Ru\prrYf1bNNN888`nnNNN-,,h֬,;;w,=+͖:wL֭y饗;w!T5/bGma֭r+?E;;5bggUmB2ز%Ν_U<{}#$|b`bR-HKK/1{pBo-[ơCX~}5_]աRpQ:tP䜕iӦ;"""6l׏{M޽qpp~%<~,mOHMM--SdǏOٺu+ׯ_ܹs\x={T8oeÇ˾b{I*|hiiq=zͷ~=E駟puu‚ݻsm[JJ Ғ]r>u;vʊ~b~f̙UQ;w5| ޽3tP,--͛Gv ctCVbРAoUIdCm4ZhA˖-Yx, 6ǏWMɡZCjj*Ϟ=#..۷|r&LPGvvv"##ڵ+aaa3gFQ]RcΜ9ܹs2o۶-חXTe㋋C___& X`͚5;*Bmx ^Lۗ>Cy뭷ωɓEt꒜\mAl]֭[)?$$;wp=dMh<>|]va``@Ϟ=;w.WfժUkenr4$(^D8,۹s'>}G_=:<*̌r5]FHH /La;377/?~uvQjZ1110(ݰa"aTaU5IK{ӧOЀIѬ  <s|H׮YYOױcGBCC~.\`Ŋ}ܜG~?{LLLLLJ'NȺ-v)kח???m۶Uu,M"66DR)(_F7o5*77SNR)vT$?5qCI< :::$%%e˖"S/_̮]HMMe…4lذXݻ7deel2LRKWQ8ooov͛7yf"..ԴBBBرc,Z###7o.Kӧ\x4fϞ mj:uzLrssiy&Ӽd̙ ;#ڴiENNYYjbYZZ2bFAbb".\`֬Y >=z_ҥK`<=='((S ]GLvv6Wfƌ*p4=6oޜrO РAߕbL>CJ˖-o;ʋMr1֮][* ׾}{ONqss‚qƕVٿ?>|M6^:uՕpBFMf͈aٲe^`M~~ܾD"a}='Wl622yRGǒg/3i$|}}MpvvfΜ9L06mC,Xヒ:tK.1p@lllX`SLE:u~JE4y$9SbId$j5@ O$Tw^Y㡖Be]9rbؽ{7GaÆ 6›\uz5NN.XZZaeeν{ spww&>>h®yv*eHz3rYä&>j Q JjuPG!} +_PС5>lv$-- 4"'' !..(""3fڋF@P! uDAI%?KiЂ -ϗG\\, йs @ $ umuTA[W6ЩSZp""!_!==ll޾ Ɔ6S-A Y!ZҪMQkpA!2*R&xpA'TՆW[8TB8N`llD|P@ F@ J#@ A ҈# ՇF;=j33Np51N >@ J#2=`MJDMAmFAFTuEMAmEAݷ@-eSP[APiblpQA Q6!*Obff&;iժ=D81bD.o1cƌ 5=`Cq#1Uʹ"uNѮ];.\P}]ũl]Q:E]ڀY4nܘ^zǙ;w.&&&=Zզx x=='<6O!A ~ˋ+ZPlZXXзo_$ >|)SpܹJO aÆ9^zJ?šqsscɒ%\SNʕ+H$3k,hԨC8qBy1ӧҒ֭[jժb|8;;ciiIϞ= oڴ-[beeyΝ̌)SеkW,--2dݻwwwؼysknn.gpAd%99s{C3yM<UMGGG,YҥKٶmNNNܾ}[.YiѡCyؼy3׮]cȑҥK133ɓl]!_Uԧ¡ ÃHXbL:h>3l@n-̋"""2d|'XXX_r"?Β%K`֬YD"̙3|駴nݚ3f̈#;wҹsgڴiÑ#G_uƍC[[ÇsJ4n=Kh}es/3< 6)2G3#+_UANe3>>7oYwFBGGSS}]e={ccct0e E>(誨bHJJ֖e˖ѽ{w"##ٲe ?ccc4iӧO-̋-[FVV˗/gϞ3777v܉,\||< UlܸǏ޽{Xr%fffƲrJeǏϗ_~ɝ;wܹ3DEEϺuر#۷gԨQ㟐L45%iGC^n}MZdh4ePuټx"fffߖZ @|AyWpwwgǎ(U N:[oŅ AGGGa{QP*SrP<}SSS233ٺu+'OLJ gjjТE @:@ʊ'Oׯ_? ~CWWaÆ+{BWWW/>Dݽ AvnR,KAC#MmM~Z&kdɳw ѣG4nܸlJBe[nq%.\@˖->uo&o&pEݻwɓ\t,[j,o}*(!Ǐ_agg}/_ŋ8;;kU+VPoa5j@XX666$&&\]] 7dѢE_,^72|pѣhiiCqww/0VVVҡC”ͪR#?<  Z8c|rerGY .T]6 8C?x>˗.] ""kkk_5kp/C9ru֡믿0e ERG>۷Oddd0a444`pu,,,da555s-Lp>>>,\?QFqrss2dH0Ga >-Zg6l@Yt) >\׏+V0f~m~嗊de2R #9X[7@&w>Ɲ"hmTT6Uzjj*gۛŋ3d֯_O~~>666 ýӧ[oQ~RVP䯪SẠGؼy3۷oGKK3fG}Dټy3+$%% ù>/oa spp`혙pB?~̼yׯ_0}#F_e$%%rJݻ7| G?ё{ʺ)ѦM,YBzz:7n7ި\ g'ԧQ!1ܸPJPihh.w%--MܢE ֭[Gnn.Ғ;w[:Ԕ.]Ⱥ)q([W(WUt4y$9SbId$OU$H\sEc.޸+D@)ͼYä&>]CI(XD=@-eSPAPc 컨(ڌ(ڈ(ڊ@ ج={LUa@P,[RX^p9l@%c _~%$֮U!* FFErbZ#Q(ʅc5nZI2p^ߤ嘎#oځ`QE] PD]P@q@4B8u{{{U Ԁ .eo..`d11ppӃ!1.\/3o栣))wV,ӳrP04wZl^855S'pr]]i@~~⳰qx@~xV_Ip94b욱4l/GekIGQ>/s]wAEaooODD|Չ D] @շ8F bQZZ³g QMySz㍍wo í[Bk҂YQׇW^xpX5jwCHIHߓ.WJ+WEG^>˯\.ԦA.u u 28L~6}S.) >/#O6zf*=Sh쌞K IBB Ғnn@zx@lW ⌉`+-9鵇T?ЀaäNl'<֩[t5cv)?s-_?W\JOI%?RSv*jiyu D]PZTphV>HU$@s`9P]@~Rաh!=+ִl IDATқ wo,8uJZ+سkoZ^7*TML`*6)jTJ|iۣH$4iބA568((u+ki|66V.nvK@.uAtULC/c< ̝-hBA Zz׮I].gVLe|hPrs+gTT=jiIRN^I]\zS; 4nߖ7}YЌgb"U=4kV1; pu>Х\Ɇ 8f^醠+_]wdTdՍ D] _Tp؅X͏" 9؈r=ҹ۫lL0¤{tKN~ggi!Tͥ*OQe(΂~}i\ܻP[^=6s%&V˃8CBy.3>^32*fٳeK_IlH:uoX9|%'֟C#Ƭn}]ґ_ 9Tw_sr糢Rb Q@.hOML&%.7l|*iauRTZrLavl]Sc@.@yvl]ï1v7߇IM|+G *g56A pb[m@PYTp͌u65A*u@]kuAEQ^@ j U0vlU,ulnZZ~ ԟ\Tx'1A :Bew+)vqAmߩ-{,\\MVɖ E\㝪ܹsՑ@P@-Z$׽͒[jʤ@ PKDW@P4iDϽD"BK)rVʟhqTǂ >}:ZZZjS[uX8D"]"%`L2S>VVV899ĭ[ҝq̰G__>|C%T IKKڵkH$:t耮ovv6m^JؠKVVo&5U^+ {FGG)6EZZ$Q....Exx8Ϟ=Shcy,/iӆ"""077yܿ 6HJJ"''_oX[uP;AL >t?cc鲸ׯÍeu#88¨Q}6&!!CCC<==ҥKqegg3m4vIbb"-[ŋԫW{{"Ϩ 111য়~bҥDFFҴiS~:tVqOKRaʕt֍>}p-~g~m틕/Ν;JU'(O`45>g㣨鍄@ A$EPQQ|W CQE.WQ4AK!6Xf&ْ&WS9gf̙,~wtt$$$j5JRΞ=J"** RI[l2bbb𠱱Z?mF.%|ݻXt:eeeM/^luݻC1m49BPP3gdڴiya}Y9BDD{m]GL?Qz f#/[U닯/o߾FӧٳH]\\帺L&VC* us6r9nnnԠ {h4MF\TOVK}}=^[U*4^nM6-#z: {FדR$&&***l:`S&?T*:TΊq7N^v Tx饗XhѺze˖0~xgR__OZZ>>>hZƍw}',,^ 7lMZMjj*600)=''Stͬ ==UP]]ȑ#qpp`޼yl۶{=zpt:FF_g͚5<LL+##R?S[[KCC 8xه9¸Y\\ } ,v455!_LX.Ɵ4_n/{̤2zl8(J"//JqYCb1A `ad𪢱 60bĈV^φ `>|͛7ӫNsT_NKKclݺkײzj&MDRR111֊cgϞ%((&ÇG׷36'M@II K^Lv4uKq'??h͛)--gʔ);M67qغu+EEExW1bC aժU:qJP!8}*K '''ķ堠 jkk ==]|'%%KwalB***ⶵRIIIM6WaKmSG.⡡;wNw r9(pBz:44kiᙽ0`\|{={6L<V;[n'O"Ɉ6kˋÇi&^}U34~;gΜaڴi\wuɭjM_|zrmqa~6.˝#GW_}%:tdZzɦM>}: 8xFA`` ϧkעP(x[ˁA$|0t 0`PsaDҩ455Jcc#ݺuCPn8qzz:UUUJff&t: %00zN:eU,)`edd@.qmڂbwrr"88Xө&88VKjjE-6a Z'OV '22777#I~~>u:SN@xx8rӧO[FUB^ daaB] `frD 4i^^^رZ=cSd/aÆs.\ȍ7ވ'UUU,Y+W/b1МM'|xzzzjrT|Wۼa˖-DFF2g^uRRRZ^|Ec=Ǝ;̮swwgƍDGG3w\T*_5]w]7)dIw= +.kU4Wiz9#=ql^~1cMPQVȑC_KY6¶*./j U!89t؝sm@J9-!!!!!q5y1;:MSǖ )^^Z!5<WGE u$$&N~]ۯr$$$JN|=j:.̈́ F ޽{۷/JR\Lbb" _~Fѿ "~nYCpp0C wⲈVm-bMKu0r,ٴ|vAAA 2iȐ!Fz 2(x]L4ݺu3n'!n777 b4={w> O<CkVeeeqD~ؾ}>;;n zŮ],J )&dFͭ?Lȑ%gϞMttt嶖yŦ:=Yb2իWL&3xd@dd(T6|(|Fݥu3q0';lCZ!ˈjU۪xW0'sm6DR٤}VY,IDbRLq)$;r>/J%ZCuu5555IMM 䄿?555X{89ڀ'AD9 o ***GPpBƌC^^J)Sgq֭[ǽKVV-dmCW_}gi-myŦ:3QWuVJ%G___qݐ!CHNNo_gߟӧex'SR..7L^U$'u[^Yu{%LIu:eȹ=hРvl,$Ic~`prr͍"""s$PUUEvv6*=zFAAx{{Oyy9QSk\{Aڶ **'NKJJXd cƏҥK_fǎy&v0's^ l^xd1{͛dbVY̝ YcRLљר((( 55zwy;vp=o&̙CLL < )))<3 >;w3j(xvN6CTWT@>Ueh.,o@HH&)):SRVmo-mŜD6:+רްhlllb˕R&3x"}mB&ۇR$>>3gΠիCseRl ,^'''2ZZg7駟Zg>4w^likUlݺ)SʶmZmVEäai : )PrFFFRȂyZ )**ٙQa:SXkju52eRD ɨk gРAcQs:lV ja-1cGO>ML Ŀ/ ܾm&%%3㏓ɘ1c(**<̞=]C)@bM{ԡ3{Wm6h4\{:sŅ/~ۢHWbӬ !^_~ B9Y{+EۜT儶ϋ6ryUW-=&-{{{_/kQ]]Vn%֐doػ0[ڂ9sGG͊+xGc{ m[mTա30r%,߶mƊoFظq# <Ф%s ye{\;,, \.Juw΋t])}% : VU LKKelWTUUJ:JSS_$,Z7|ӧcccdc,JskVˢEPdeeaÆv-bj#ukQ,!I|rixgXf ~!aСlذ8,X _8MK3FF!HRW6'sm9n0L'rpp@&F=1&o,$mhBٕۖDDDxUU8,Q\\LMM 2L mޡKhhh!]\\ @[v,|a]Uyw۷/Gd2݉;#GX|p666fnyyg eV:!C%Q[gnݺ\íziiiӇ~ ѰgϞ&"B%''#ĆYxuvv6zS͵hW''6jֵĜ\ ^ lkZVmkBXX*.>>>D@Pлwod2Jd2...bmNgQÃb [nTVV ry DE޽{BTc߼^60x̸k@ ߗmcٱc G6Zxb&Ö#`ӷo_t:v/o}:ݻw'66lt:YYY58;vロ={a>3̐!Cm֭[ǓO>?Lii)<888+w^fϞM/YCbv40b ƒ|tLL 3gPYYIddTJFF nh>ẽ9k9%mM;GrR9ے"{tJGGGٳd2GPPVEYY8,AA?"dmffGO0x@ CLRHK;6R__[o[5zz ???,Xy,׹sx;_駟moď9^K֬YB`Zgw}y\]]N^x?Y[S`~-Бrݛz &ǓO>i6vLosRRRoصkl޽2uTOλヒN$..,N8mw}Gff&111;`}3gocrRRRyy饗xxߩ',)sصxxxNqq1$%%k$UQQAaa!`Y=:::KEEf9)mMm\+mmɍ7BBɉj@ၓka \NLL ~~~Foa-;}-=\B8**-]|t#)X<\̵Umٱb 7ojsӻwoRRR7oǏ'11#G}vx6ax:t(7o&%%E ӧ?C[VVƎ;馛Zi5[g%K7| b+9x`Mm\ڪCG駟&$$ow^A[@VZGb'4"" ?'ԩSXjf͚/bkܲ,e޼y̛7O\nM^l8WxrU4䣅Zhp[5pQ5"T~4uEr3A1[p GPXT  00 Ο?[ŖS7oņ`$''Lҿ bرc[G[gz=EEEFµׯ~-|'c|ׯ_7|No*YST[NMM _}ׯ'>>+V/hmĶa_|ADDK,?Eݻs5dq;d|w5j7+V[n,Y nq-Hk$YjwTBh $ K0ײ-Z*$Ym .GRǔ [S9K-mEv웻ùm/}7>dܵ4T!!!!!!!a5RABBBBBBjLU72 S-￘ð>0jj Z]6lN"##qvv Uvviii22vv>}@P@nn8%[!a=DDDFXU= CX-8x`S׬Yý˚5k9s(pd7662sL1s>}8p(V?O̙cҞrFFF,^2&M#11 9 GRꩮm"&™<# }RUc,i!YlѬDJwT8`?j}KɎA8yzHL#᫯ `HK3$1VLsNNNSWW$;"--^핁,Ym\.Ω'..j1Q˺ $쇿?jrR 0$Ȁ&}0C砦 00iӦ7Μ9CXXdj5˗/硇O>AVq\9Fʼn'd>%%%,YLٱcǏgҥ/cΐJݨAou "BX,G!""yqRYY?Wfټ۷bu[x{~ߍ=s'1}(s˺[S+AF6L&Tvuu%77&;, &tJ%aaav@ ?Ѱcֶ`ӦMcѽ{R__,vϞ=K}}=iii:999L:Uge9/^رâMMM۷RI||cQ0dOťalૅQ 'o䈟B&|Рapu:?uuu5t^uxlqq(C$-(..fƍqXj 1yd~bԨQ<ӌ9kr&M@~8xs*'uԩSٶmؖ)̙G}G}$ mB-[jkxvRN x,mdXClL>nuʙ8q"ӧOg֭lٲn R)Ʃv mo &^&+. Ozl'/.J_!~ˊ}bJYѐO^^\dIRjۂe[e|R!FEEP(7Us-{U*1.Z6hBɶ`ʕh4Lb< ^;mJjNttxl9L9l^ho&>ӧ_E&S,ʢ7Wzjɫ` ? W^yj~1K(cΜ9… QxӱS%KrJ_ 4?^O~~Q^|9 bٲevZS1;. V}Mb|ǽ-W+ȑ#ŗGwww6nHtt4sER_su!xwIz=7m{kog+d%ll-ھ$$$pK2繣y[ aG$ i-ظq#GfժUb'SDZՖD$$@h EZ̃!!!qRTT͛Q*3R鲦K:4助{3&&~zV^-&Ȓc=/}~yGùs@ BNM~ bРAR6k<in 6U\r_'KBBBBBBG8HHHHHHHXͲT^^RpDW[BB=ri7'-Wm ڷb}!k;n.͑CՖ +`vi!}e%;gHvm( Q]y_S Wi L6ow„ ݻI$$$ F4 KeAj $$6lC^zʐn6? uaIDATZBBG[ W6j:vJJ{wh-!!qir]VV}ے.+ +6j J_*Wa1 k(jKmĕ-mM~]/-!!~6,5d@BJmM:Ano_pt(+!!qy#44d@Bʦ=mIùsgw,,￷86aR[ !qeӞNH)%$$$$$$ځqNՖ}%.W{3;'RABB2mAw$$$.=m囗G[ K9gPT^Iuq6 e?ءxW"v7^^^R[p#O| k=]Ysr*GDh ];^H\B2C!߿_qu#<4:'qkV-ɾqnPnٌ7żkxfODFFr~qĕCEYt\崼+^W#5559thQMVVeW7{WZ 9 9!!*]Q8:0F1Iog5v)a?+Lz=EGZG_]r\ˋ>I#e}:^{.D"o6.qc`I7/w&K{wۢ_Gε lҢN?B#U{ /_g8PXh+99HǤI$Ǐs]wVFFr]l]466")k LFei.0oV|yy[y8q&L >>x&MDzzMe3Euu5vm!111hv:tAדs:`@ 49 V\:755駟r7 7… t}ιRB/SW4 7$Lf+Vpq;t̛7Υ5K/)&rϜɉ|J= 0]vY,ӧywuˁ}߬"<.+C a9Q~:~b®enss+!nwBvR!)-vKk(Q<2y0Uvu5 }Vv4 y\sM>Jo&>.6]^^پsG s;ڟ:9AL?Ԫ.ϲ{?粭:e*(,揽J9Nc&g{_vq(TRT7%!4*4e7W_Lg0w lFXX?|Kb vm6mDjj*{aͬ\ 4\+WDPk.jkkMomŞZMjj*s/'/.LAUPrA8r֓|G\\QQQFˇC9ᣏ>o!%%nkѼAntt럛ʹb/C BM`?> /\J}L&cPhZWskI`멪n3eLNǴARPRJFۀ\EL 7Р@%א[q2 6vZ-[ /@^x>|я`̙$&&?_ ͛yᇹk1c&Mj *"ٹs'Yq̕y;PRRb5y:JEE 4>&?C+<*;~ܸYM=l`(.~앗`͝ ~7BBBPTxzzR\|1KhZ,ޱ{u;ǡR['NXX{}hh:p`0ܟ[$8hָGq510h4.lNpywemǏsq<N^ȑ#TTT˭rkͪ~5( ZnّhPа0wC%&̥ -[j*~m0L%%%|رc{_Yaa!DQQNrzk/3?_IDz{߿\222/9vټlڴD Xz5999^cڸq#[nEQwRLf(Qr+2D#.ty T^0m_BJ:8qI@l7j 4 ^[౽N#>H‘~CQ>hmkǪMgW;[_008Hll Rb۹VYCkmel}Y6l}Uz #u}to|=`.n.}K9]R j˕I瞣pmzzz(**g}sI.]n^dggs!***0|ƜhX|f͚5p8ؽ{755odyW(++#++ ^ϋ/Ȗ-[5krGcqYVÝ+V ++2jZq (\.!m@AAA4s1m)zOOľ{g:::05k_K/ę3g$99|ѣGLd&0zbY#֕pŇNJJƷלrrr6l><ƭl2N8̙3G3L{,>}HOOS[TqŋbX $5%ݑ#^n}q~[UYU\`J%0 յz= FR獿44EOFM0Ddy#.HWO/DRR<7rX X,PV%MB|,ZkYjNZj2W*tcbn!sJy~3^D&%9+WRR?^'o.cZAL>Lnt:ihhjb0h4J/]31 3dMr΁~H/MrUW_)-b LUMMX,fϞϪ ?zI~D$ ӛF?>Յ墺OWQ5 |qqqƭOSZ$'R~*+3?v$ I]io !##DSS .$==]at_ “)$$EQXU\(<&ev9LOb FCtt4K.%22R.M Iwd"ex1Al2fByý@q!fiBڀk§*xf%-e\OO dY!@ vC.N{3bxϛ̶vC.lڼm"i3ҸANB!͑B!cI B$qB!j8!B5IB$B!PM!B&B!TA!I B$qB!j8!B5IB$B!PM!B&B!TA!^0OMU]B1DS<B!=ġ싩B!_LuEB1]>g:kIENDB`mcu8051ide-1.4.7/doc/handbook/img/sb.png0000644000175000017500000000056612067167647020326 0ustar milleniummilleniumPNG  IHDRasRGBbKGD pHYs  tIME +R).IDAT8A+QHfR;߁ ,,n$JCXY6X(w( Ecaܔ֩sy+DaF*z38ý<1;0ecZv#$ 'Xxi} -넢\eaԓ1WXc8'}mrd ${Lt!iWxi~@jrIENDB`mcu8051ide-1.4.7/doc/handbook/img/editdelete.png0000644000175000017500000000166712067167647022035 0ustar milleniummilleniumPNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IIDATxb?ùK3112`~a7߿>~ 0Ǯ  j!h鏟Ə`eؼB!,ff(egce05O@5h 3 3@ "àp"b`D4;3")IA.  }GSy1(a@ J9`IW[f >b"dfwp?3v#g ~ dзo?9'6`x3p16@A@g23gh8(s Gq~?.^?f`=3~}t/ƣ2|~ l4ʊ`4Б> wkq בM ;fV.e36@LY0?p?|ײpC?0pefpabn0@~ 7%W0 B&L` B1 2=9_ؗ-``T9@X||'یfχo ̧2y20}NɈ=( H,`6u5F.o@˗=?~ěm+*dWSۚ !h8۱x  WLb'"𫴓O\>çÿLĂx  4\W@&̉=`6VDҁʲ#&0X-` HPZ@M`0O IENDB`mcu8051ide-1.4.7/doc/handbook/img/2rightarrow.png0000644000175000017500000000207412067167647022170 0ustar milleniummilleniumPNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@1%sz _Yb @zs  @ o]~ a`/.Eտ$41jO`b`e u20ϗv_ 7CeY r~ YTp@Lc7)9 ߍ쀆3͗_ 6߿ \,jƈ0D\-ہpbi7b` `ay~P'P}_(Df_Af  W_XK᧵;?&`P0ozgvhB l|(L˯Gӛ;v^ 5_10Yq0%3K`f/@k3{1$b=a`.5O`x5y/0gp P\ -`x0{g %?[ !&5 X y~d y0z"R/$I;3+fe 9OoLa 86$(dbLG@Ο4 / A4/SK/Xb+  D@^2ܸׯ {ތAGE1A)|OkAok/t+}]]\%ؗP 'Lpdh>z|?^|'t;^LFM9 h6/`N|6G-05 }['RG+XBߣ(pծ!Y[Z? Wp"0JHN_-_qơk#-B%h;.nXYMבJa@zN )NK{`Zqaq]qYN'k)= ed0jnƢBIjd:vú5Ug'~XUUQ Q7T9($.dQ򟆇#OhA־gRTWIwhэ|D\ kEkk8TEk ep;EUgSD "UǗI)! J6`pAC>%k\P 6 II;_Pka]5F0sF%3hY[ד Gv{ Rjn%]wHO|1~ ȋc6; & 4H-U)F]DR$dꤙ620!`SfqUmFD9f*]4k s<."9.\@ 7\lsU@Z|2j]Gi9N5n$,j+|t@PSU i\ V#96{T"\$J j*pU y`KIp}*Σ#u.ԍa9atGHZkC|{H; P1&TJwXtZt%Q/)ݝ|& u )˧;@4R[~"ɊW}GjǮꕠC~FHp [4Ҵjí ΅x2{0 ƫiWU% >J94%P 24mZgYXaeAcE + ؕJ=̼,u"t<*CIWnkQW~5ϽnU7:xSvptJ>כN>#<8=u|7em"tG<Aޕ|;+W=~0U4oJu(tU5~>O&ӝ E*ojRSIc:4t+(IHitY05Cu<7o̥Ht;iSC;-#ŝ}ꙌwN?iC?~W#|<.qK]'%Yx k>G' qD|ₛzÌn> m4cRqOuZ:*>r=od\&|1s1F5;dF,1ST+L+;{Gu 18_qEZͅi06_Dz>'2>9pXq#[L{ZE_I e^7΁jE_#}Xe,g|1|:tn76uh]4X\~&KḂY\\|1T@]>,Ú}ٿ8ῗ^\~]M)/l[A^䇜AyI^ %yYq^i%YJ@ZLfx^˓ ^૷Z[u-ޢn:oԾӟȩ4 .b?mcu8051ide-1.4.7/demo/0000755000175000017500000000000012067167651015016 5ustar milleniummilleniummcu8051ide-1.4.7/demo/keypad_display.vhw0000644000175000017500000000065012067167647020554 0ustar milleniummillenium# MCU 8051 IDE: Virtual HW configuration file # Date: 10/27/2009 # Project: Demo-project LedDisplay {{4 3 0 3 5 3 1 3 6 3 2 3 7 3 3 3} {4 3 0 7 5 2 1 6 6 0 2 5 7 - 3 4} 230x170+335+204 {Number of pressed key} red 1} MatrixKeyPad {{4 1 0 1 5 1 1 1 6 1 2 1 7 1 3 1} {4 7 0 3 5 6 1 2 6 5 2 1 7 4 3 0} 225x235+79+174 {Click on any button and wait ...} {0 0 1 0 2 1 3 0 4 0 5 0 6 0 7 0 8 0 9 0 10 0 11 0 12 0 13 0 14 0 15 0} 1} mcu8051ide-1.4.7/demo/demo4.lst0000644000175000017500000004220012067167647016555 0ustar milleniummilleniumdemo4 PAGE 1 1 ; MCU 8051 IDE - Demostration code 2 ; Interrupt monitor and list of active subprograms 3 4 ; 1) Press Ctrl+0 to show tab "List of subprograms" on righ panel 5 ; 2) Run interrupt monitor 6 ; (Main menu: Simulator -> Interrupt monitor) 7 ; 3) Press F2 to start simulator and F6 to run animation mode 8 9 ; Macro instructions 10 ; ------------------ 11 12 ;; Handle interrupt 13 intr macro 14 ; Set UART interrupt flags 15 setb RI 16 setb TI 17 18 ; Wait a while and return from interrupt 19 acall wait 20 reti 21 endm 22 23 24 ; Interrupt vectors 25 ; ----------------- 26 org 00h ; Reset 0000 0142 27 ajmp start 28 29 org 03h ; External 0 30 +1 intr 31 +1 0003 D298 32 +1 setb ri 0005 D299 33 +1 setb ti 34 +1 0007 113A 35 +1 acall wait 0009 32 36 +1 reti 37 38 org 0Bh ; Timer 0 39 +1 intr 40 +1 000B D298 41 +1 setb ri 000D D299 42 +1 setb ti 43 +1 000F 113A 44 +1 acall wait 0011 32 45 +1 reti 46 47 org 13h ; External 0 48 +1 intr 49 +1 0013 D298 50 +1 setb ri 0015 D299 51 +1 setb ti 52 +1 0017 113A 53 +1 acall wait 0019 32 54 +1 reti 55 56 org 1Bh ; Timer 1 57 +1 intr 58 +1 001B D298 59 +1 setb ri 001D D299 60 +1 setb ti 61 +1 001F 113A 62 +1 acall wait 0021 32 63 +1 reti 64 65 org 23h ; UART and SPI 66 +1 intr 67 +1 0023 D298 68 +1 setb ri 0025 D299 69 +1 setb ti 70 +1 0027 113A 71 +1 acall wait 0029 32 72 +1 reti 73 74 org 2Bh ; Timer 2 75 +1 intr 76 +1 002B D298 77 +1 setb ri 002D D299 78 +1 setb ti 79 +1 002F 113A 80 +1 acall wait 0031 32 81 +1 reti 82 83 org 33h ; Analog comparator 84 +1 intr 85 +1 0033 D298 86 +1 setb ri 0035 D299 87 +1 setb ti 88 +1 0037 113A 89 +1 acall wait 0039 32 90 +1 reti 91 92 ; Subprograms 93 ; ----------------- 94 wait: ; Wait for 24 cycles 003A 7F10 95 mov R7, #10h 003C 113F 96 acall wait_aux 003E 22 97 ret 98 99 wait_aux: 003F DFFE 100 djnz R7, $ 0041 22 101 ret 102 103 104 ; Program start 105 ; ----------------- 106 start: 107 ; Set some interrupt bits 0042 D28D 108 setb TF0 0044 D28F 109 setb TF1 0046 D289 110 setb IE0 0048 D28B 111 setb IE1 112 113 ; Enable all interrupts and set priorities 004A 75A8FF 114 mov IE, #0FFh 004D D2BC 115 setb PS 116 117 ; Infinite loop 004F 80FE 118 sjmp $ 119 120 121 ; End of code 122 ; ----------------- 123 end ASSEMBLY COMPLETE, NO ERRORS FOUND, NO WARNINGS SYMBOL TABLE: ??MCU_8051_IDE . . . . . . . . . . . N NUMB 8051H NOT USED ??VERSION. . . . . . . . . . . . . . N NUMB 0147H NOT USED AC . . . . . . . . . . . . . . . . . B ADDR 00D6H NOT USED ACC. . . . . . . . . . . . . . . . . D ADDR 00E0H NOT USED ACSR . . . . . . . . . . . . . . . . D ADDR 0097H NOT USED ADCF . . . . . . . . . . . . . . . . D ADDR 00F6H NOT USED ADCLK. . . . . . . . . . . . . . . . D ADDR 00F2H NOT USED ADCON. . . . . . . . . . . . . . . . D ADDR 00F3H NOT USED ADDH . . . . . . . . . . . . . . . . D ADDR 00F5H NOT USED ADDL . . . . . . . . . . . . . . . . D ADDR 00F4H NOT USED AUXR . . . . . . . . . . . . . . . . D ADDR 008EH NOT USED AUXR1. . . . . . . . . . . . . . . . D ADDR 00A2H NOT USED B. . . . . . . . . . . . . . . . . . D ADDR 00F0H NOT USED BDRCON . . . . . . . . . . . . . . . D ADDR 009BH NOT USED BDRCON_1 . . . . . . . . . . . . . . D ADDR 009CH NOT USED BRL. . . . . . . . . . . . . . . . . D ADDR 009AH NOT USED CCAP0H . . . . . . . . . . . . . . . D ADDR 00FAH NOT USED CCAP0L . . . . . . . . . . . . . . . D ADDR 00EAH NOT USED CCAP1H . . . . . . . . . . . . . . . D ADDR 00FBH NOT USED CCAP1L . . . . . . . . . . . . . . . D ADDR 00EBH NOT USED CCAP2H . . . . . . . . . . . . . . . D ADDR 00FCH NOT USED CCAP3H . . . . . . . . . . . . . . . D ADDR 00FDH NOT USED CCAP4H . . . . . . . . . . . . . . . D ADDR 00FEH NOT USED CCAPL2H. . . . . . . . . . . . . . . D ADDR 00FCH NOT USED CCAPL2L. . . . . . . . . . . . . . . D ADDR 00ECH NOT USED CCAPL3H. . . . . . . . . . . . . . . D ADDR 00FDH NOT USED CCAPL3L. . . . . . . . . . . . . . . D ADDR 00EDH NOT USED CCAPL4H. . . . . . . . . . . . . . . D ADDR 00FEH NOT USED CCAPL4L. . . . . . . . . . . . . . . D ADDR 00EEH NOT USED CCAPM0 . . . . . . . . . . . . . . . D ADDR 00DAH NOT USED CCAPM1 . . . . . . . . . . . . . . . D ADDR 00DBH NOT USED CCAPM2 . . . . . . . . . . . . . . . D ADDR 00DCH NOT USED CCAPM3 . . . . . . . . . . . . . . . D ADDR 00DDH NOT USED CCAPM4 . . . . . . . . . . . . . . . D ADDR 00DEH NOT USED CCF0 . . . . . . . . . . . . . . . . B ADDR 00D8H NOT USED CCF1 . . . . . . . . . . . . . . . . B ADDR 00D9H NOT USED CCF2 . . . . . . . . . . . . . . . . B ADDR 00DAH NOT USED CCF3 . . . . . . . . . . . . . . . . B ADDR 00DBH NOT USED CCF4 . . . . . . . . . . . . . . . . B ADDR 00DCH NOT USED CCON . . . . . . . . . . . . . . . . D ADDR 00D8H NOT USED CFINT. . . . . . . . . . . . . . . . C ADDR 0033H NOT USED CH . . . . . . . . . . . . . . . . . D ADDR 00F9H NOT USED CKCON. . . . . . . . . . . . . . . . D ADDR 008FH NOT USED CKCON0 . . . . . . . . . . . . . . . D ADDR 008FH NOT USED CKRL . . . . . . . . . . . . . . . . D ADDR 0097H NOT USED CKSEL. . . . . . . . . . . . . . . . D ADDR 0085H NOT USED CL . . . . . . . . . . . . . . . . . D ADDR 00E9H NOT USED CLKREG . . . . . . . . . . . . . . . D ADDR 008FH NOT USED CMOD . . . . . . . . . . . . . . . . D ADDR 00D9H NOT USED CPRL2. . . . . . . . . . . . . . . . B ADDR 00C8H NOT USED CR . . . . . . . . . . . . . . . . . B ADDR 00DEH NOT USED CT2. . . . . . . . . . . . . . . . . B ADDR 00C9H NOT USED CY . . . . . . . . . . . . . . . . . B ADDR 00D7H NOT USED DP0H . . . . . . . . . . . . . . . . D ADDR 0083H NOT USED DP0L . . . . . . . . . . . . . . . . D ADDR 0082H NOT USED DP1H . . . . . . . . . . . . . . . . D ADDR 0085H NOT USED DP1L . . . . . . . . . . . . . . . . D ADDR 0084H NOT USED DPH. . . . . . . . . . . . . . . . . D ADDR 0083H NOT USED DPL. . . . . . . . . . . . . . . . . D ADDR 0082H NOT USED EA . . . . . . . . . . . . . . . . . B ADDR 00AFH NOT USED EC . . . . . . . . . . . . . . . . . B ADDR 00AEH NOT USED EECON. . . . . . . . . . . . . . . . D ADDR 0096H NOT USED ES . . . . . . . . . . . . . . . . . B ADDR 00ACH NOT USED ET0. . . . . . . . . . . . . . . . . B ADDR 00A9H NOT USED ET1. . . . . . . . . . . . . . . . . B ADDR 00ABH NOT USED ET2. . . . . . . . . . . . . . . . . B ADDR 00ADH NOT USED EX0. . . . . . . . . . . . . . . . . B ADDR 00A8H NOT USED EX1. . . . . . . . . . . . . . . . . B ADDR 00AAH NOT USED EXEN2. . . . . . . . . . . . . . . . B ADDR 00CBH NOT USED EXF2 . . . . . . . . . . . . . . . . B ADDR 00CEH NOT USED EXTI0. . . . . . . . . . . . . . . . C ADDR 0003H NOT USED EXTI1. . . . . . . . . . . . . . . . C ADDR 0013H NOT USED F0 . . . . . . . . . . . . . . . . . B ADDR 00D5H NOT USED FE . . . . . . . . . . . . . . . . . B ADDR 009FH NOT USED IE . . . . . . . . . . . . . . . . . D ADDR 00A8H IE0. . . . . . . . . . . . . . . . . B ADDR 0089H IE1. . . . . . . . . . . . . . . . . B ADDR 008BH INT0 . . . . . . . . . . . . . . . . B ADDR 00B2H NOT USED INT1 . . . . . . . . . . . . . . . . B ADDR 00B3H NOT USED IP . . . . . . . . . . . . . . . . . D ADDR 00B8H NOT USED IPH. . . . . . . . . . . . . . . . . D ADDR 00B7H NOT USED IPH0 . . . . . . . . . . . . . . . . D ADDR 00B7H NOT USED IPH1 . . . . . . . . . . . . . . . . D ADDR 00B3H NOT USED IPL0 . . . . . . . . . . . . . . . . D ADDR 00B8H NOT USED IPL1 . . . . . . . . . . . . . . . . D ADDR 00B2H NOT USED IT0. . . . . . . . . . . . . . . . . B ADDR 0088H NOT USED IT1. . . . . . . . . . . . . . . . . B ADDR 008AH NOT USED KBE. . . . . . . . . . . . . . . . . D ADDR 009DH NOT USED KBF. . . . . . . . . . . . . . . . . D ADDR 009EH NOT USED KBLS . . . . . . . . . . . . . . . . D ADDR 009CH NOT USED OSCCON . . . . . . . . . . . . . . . D ADDR 0086H NOT USED OV . . . . . . . . . . . . . . . . . B ADDR 00D2H NOT USED P. . . . . . . . . . . . . . . . . . B ADDR 00D0H NOT USED P0 . . . . . . . . . . . . . . . . . D ADDR 0080H NOT USED P1 . . . . . . . . . . . . . . . . . D ADDR 0090H NOT USED P1M1 . . . . . . . . . . . . . . . . D ADDR 00D4H NOT USED P1M2 . . . . . . . . . . . . . . . . D ADDR 00E2H NOT USED P2 . . . . . . . . . . . . . . . . . D ADDR 00A0H NOT USED P3 . . . . . . . . . . . . . . . . . D ADDR 00B0H NOT USED P3M1 . . . . . . . . . . . . . . . . D ADDR 00D5H NOT USED P3M2 . . . . . . . . . . . . . . . . D ADDR 00E3H NOT USED P4 . . . . . . . . . . . . . . . . . D ADDR 00C0H NOT USED P4M1 . . . . . . . . . . . . . . . . D ADDR 00D6H NOT USED P4M2 . . . . . . . . . . . . . . . . D ADDR 00E4H NOT USED P5 . . . . . . . . . . . . . . . . . D ADDR 00E8H NOT USED PC . . . . . . . . . . . . . . . . . B ADDR 00BEH NOT USED PCON . . . . . . . . . . . . . . . . D ADDR 0087H NOT USED PPCL . . . . . . . . . . . . . . . . B ADDR 00BEH NOT USED PS . . . . . . . . . . . . . . . . . B ADDR 00BCH PSL. . . . . . . . . . . . . . . . . B ADDR 00BCH NOT USED PSW. . . . . . . . . . . . . . . . . D ADDR 00D0H NOT USED PT0. . . . . . . . . . . . . . . . . B ADDR 00B9H NOT USED PT0L . . . . . . . . . . . . . . . . B ADDR 00B9H NOT USED PT1. . . . . . . . . . . . . . . . . B ADDR 00BBH NOT USED PT1L . . . . . . . . . . . . . . . . B ADDR 00BBH NOT USED PT2. . . . . . . . . . . . . . . . . B ADDR 00BDH NOT USED PT2L . . . . . . . . . . . . . . . . B ADDR 00BDH NOT USED PX0. . . . . . . . . . . . . . . . . B ADDR 00B8H NOT USED PX0L . . . . . . . . . . . . . . . . B ADDR 00B8H NOT USED PX1. . . . . . . . . . . . . . . . . B ADDR 00BAH NOT USED PX1L . . . . . . . . . . . . . . . . B ADDR 00BAH NOT USED RB8. . . . . . . . . . . . . . . . . B ADDR 009AH NOT USED RCAP2H . . . . . . . . . . . . . . . D ADDR 00CBH NOT USED RCAP2L . . . . . . . . . . . . . . . D ADDR 00CAH NOT USED RCLK . . . . . . . . . . . . . . . . B ADDR 00CDH NOT USED RD . . . . . . . . . . . . . . . . . B ADDR 00B7H NOT USED REN. . . . . . . . . . . . . . . . . B ADDR 009CH NOT USED RESET. . . . . . . . . . . . . . . . C ADDR 0000H NOT USED RI . . . . . . . . . . . . . . . . . B ADDR 0098H RS0. . . . . . . . . . . . . . . . . B ADDR 00D3H NOT USED RS1. . . . . . . . . . . . . . . . . B ADDR 00D4H NOT USED RXD. . . . . . . . . . . . . . . . . B ADDR 00B0H NOT USED SADDR. . . . . . . . . . . . . . . . D ADDR 00A9H NOT USED SADDR_0. . . . . . . . . . . . . . . D ADDR 00A9H NOT USED SADDR_1. . . . . . . . . . . . . . . D ADDR 00AAH NOT USED SADEN. . . . . . . . . . . . . . . . D ADDR 00B9H NOT USED SADEN_0. . . . . . . . . . . . . . . D ADDR 00B9H NOT USED SADEN_1. . . . . . . . . . . . . . . D ADDR 00BAH NOT USED SBUF . . . . . . . . . . . . . . . . D ADDR 0099H NOT USED SCON . . . . . . . . . . . . . . . . D ADDR 0098H NOT USED SINT . . . . . . . . . . . . . . . . C ADDR 0023H NOT USED SM0. . . . . . . . . . . . . . . . . B ADDR 009FH NOT USED SM1. . . . . . . . . . . . . . . . . B ADDR 009EH NOT USED SM2. . . . . . . . . . . . . . . . . B ADDR 009DH NOT USED SP . . . . . . . . . . . . . . . . . D ADDR 0081H NOT USED SPCON. . . . . . . . . . . . . . . . D ADDR 00C3H NOT USED SPCR . . . . . . . . . . . . . . . . D ADDR 00D5H NOT USED SPDAT. . . . . . . . . . . . . . . . D ADDR 00C5H NOT USED SPDR . . . . . . . . . . . . . . . . D ADDR 0086H NOT USED SPSR . . . . . . . . . . . . . . . . D ADDR 00AAH NOT USED SPSTA. . . . . . . . . . . . . . . . D ADDR 00C4H NOT USED START. . . . . . . . . . . . . . . . C ADDR 0042H T0 . . . . . . . . . . . . . . . . . B ADDR 00B4H NOT USED T1 . . . . . . . . . . . . . . . . . B ADDR 00B5H NOT USED T2CON. . . . . . . . . . . . . . . . D ADDR 00C8H NOT USED T2MOD. . . . . . . . . . . . . . . . D ADDR 00C9H NOT USED TB8. . . . . . . . . . . . . . . . . B ADDR 009BH NOT USED TCLK . . . . . . . . . . . . . . . . B ADDR 00CCH NOT USED TCON . . . . . . . . . . . . . . . . D ADDR 0088H NOT USED TF0. . . . . . . . . . . . . . . . . B ADDR 008DH TF1. . . . . . . . . . . . . . . . . B ADDR 008FH TF2. . . . . . . . . . . . . . . . . B ADDR 00CFH NOT USED TH0. . . . . . . . . . . . . . . . . D ADDR 008CH NOT USED TH1. . . . . . . . . . . . . . . . . D ADDR 008DH NOT USED TH2. . . . . . . . . . . . . . . . . D ADDR 00CDH NOT USED TI . . . . . . . . . . . . . . . . . B ADDR 0099H TIMER0 . . . . . . . . . . . . . . . C ADDR 000BH NOT USED TIMER1 . . . . . . . . . . . . . . . C ADDR 001BH NOT USED TIMER2 . . . . . . . . . . . . . . . C ADDR 002BH NOT USED TL0. . . . . . . . . . . . . . . . . D ADDR 008AH NOT USED TL1. . . . . . . . . . . . . . . . . D ADDR 008BH NOT USED TL2. . . . . . . . . . . . . . . . . D ADDR 00CCH NOT USED TMOD . . . . . . . . . . . . . . . . D ADDR 0089H NOT USED TR0. . . . . . . . . . . . . . . . . B ADDR 008CH NOT USED TR1. . . . . . . . . . . . . . . . . B ADDR 008EH NOT USED TR2. . . . . . . . . . . . . . . . . B ADDR 00CAH NOT USED TXD. . . . . . . . . . . . . . . . . B ADDR 00B1H NOT USED WAIT . . . . . . . . . . . . . . . . C ADDR 003AH WAIT_AUX . . . . . . . . . . . . . . C ADDR 003FH WDTCON . . . . . . . . . . . . . . . D ADDR 00A7H NOT USED WDTPRG . . . . . . . . . . . . . . . D ADDR 00A7H NOT USED WDTRST . . . . . . . . . . . . . . . D ADDR 00A6H NOT USED WR . . . . . . . . . . . . . . . . . B ADDR 00B6H NOT USEDmcu8051ide-1.4.7/demo/LCD.hex0000644000175000017500000000046212067167647016135 0ustar milleniummillenium:1000000002001C57656C636F6D6520746F204D4353 :0F00100055203830353120494445210075900086 :10001F00C2B1900003C2B0D2B2759001C2B2D2B2D7 :0E002F00759002C2B2D2B2759006C2B2D2B2C1 :0E003D0075900FC2B2D2B275901EC2B2D2B28E :10004B0075903CC2B2D2B2759081C2B2D2B0780078 :0E005B00E80893D2B2F590C2B2B400F480BBB4 :00000001FF mcu8051ide-1.4.7/demo/ledmatrix.hashes0000644000175000017500000000006012067167647020205 0ustar milleniummillenium517133F895352F3918C3E1250EA990A5 "ledmatrix.c" mcu8051ide-1.4.7/demo/demo4.hex0000644000175000017500000000041412067167647016540 0ustar milleniummillenium:020000000142BB :07000300D298D299113A32A4 :07000B00D298D299113A329C :07001300D298D299113A3294 :07001B00D298D299113A328C :07002300D298D299113A3284 :07002B00D298D299113A327C :0F003300D298D299113A327F10113F22DFFE226C :0F004200D28DD28FD289D28B75A8FFD2BC80FE0F :00000001FF mcu8051ide-1.4.7/demo/demo2.lst0000644000175000017500000004004312067167647016556 0ustar milleniummilleniumdemo2 PAGE 1 1 ; MCU 8051 IDE - Demonstration code 2 ; Interrupts, hexadecimal editor and code validator 3 ; ------------------------------------------------------ 4 ; THIS REQUIRES ANOTHER MCU THAN AT89C2051 BECAUSE 5 ; AT89C2051 HAS NO XDATA MENORY. CLICK ON 6 ; [Main menu] -> [Project] -> [Edit project] AND SELECT 7 ; FOR INSTANCE AT89C51 AND SET XDATA TO SOME VALUE 8 ; ------------------------------------------------------ 9 10 ; * Click on [Main menu] -> [Simulator] -> [Show XDATA memory] 11 ; * Press F2 and F6 (start simulator and animate) 12 13 14 15 ; Code with syntax errors 16 nolist ; Disable code listing 23 list ; Enable code listing 24 25 ; Constants 26 ; -------------------- 27 cseg at 0D0h 00D0 57656C636F 28 string: db 'Welcome in MCU 8051 IDE ! ' 6D6520696E 204D435520 3830353120 4944452021 20 29 001A 30 string_legth equ 26d 31 32 ; Macro instructions 33 ; -------------------- 34 write_to_xdata macro str, code_ptr, xdata_ptr 35 mov A, code_ptr 36 mov DPTR, #str 37 movc A, @A+DPTR 38 mov DPL, xdata_ptr 39 movx @DPTR, A 40 inc xdata_ptr 41 inc code_ptr 42 endm 43 44 ; Program initialization 45 ; -------------------- 46 org 0h ; Reset vector ****WARNING: This ORG has lower value than the previous one 0000 801C 47 sjmp start 48 49 org 0Bh ; Interrupt vector - T0 000B 8000 50 sjmp T0_int 51 52 ; Sub-programs 53 ; -------------------- 54 55 ;; Handle interrupt from TF0 000D 7F1A 56 T0_int: mov R7, #string_legth 000F 7E00 57 mov R6, #0h 58 +1 loop: write_to_xdata string, R6, R5 0011 EE 59 +1 mov a , R6 0012 9000D0 60 +1 mov dptr , #string 0015 93 61 +1 movc a , @a+dptr 0016 8D82 62 +1 mov dpl , R5 0018 F0 63 +1 movx @dptr , a 0019 0D 64 +1 inc R5 001A 0E 65 +1 inc R6 001B DFF4 66 djnz R7, loop 001D 32 67 reti 68 69 ; Program start 70 ; -------------------- 71 start: ; Start timer 0 in mode 2 001E 7D00 72 mov R5, #0h 0020 75A8FF 73 mov IE, #0FFh 0023 758AFF 74 mov TL0, #255d 0026 758903 75 mov TMOD, #03h 0029 D28C 76 setb TR0 002B 8000 77 sjmp main 78 79 ; Main loop 80 ; -------------------- 002D 80FE 81 main: sjmp $ ; Infinite loop 82 83 ; Program end 84 ; -------------------- 85 end ASSEMBLY COMPLETE, NO ERRORS FOUND, 1 WARNING ERROR SUMMARY: Line 48, WARNING: This ORG has lower value than the previous one SYMBOL TABLE: ??MCU_8051_IDE . . . . . . . . . . . N NUMB 8051H NOT USED ??VERSION. . . . . . . . . . . . . . N NUMB 0147H NOT USED AC . . . . . . . . . . . . . . . . . B ADDR 00D6H NOT USED ACC. . . . . . . . . . . . . . . . . D ADDR 00E0H NOT USED ACSR . . . . . . . . . . . . . . . . D ADDR 0097H NOT USED ADCF . . . . . . . . . . . . . . . . D ADDR 00F6H NOT USED ADCLK. . . . . . . . . . . . . . . . D ADDR 00F2H NOT USED ADCON. . . . . . . . . . . . . . . . D ADDR 00F3H NOT USED ADDH . . . . . . . . . . . . . . . . D ADDR 00F5H NOT USED ADDL . . . . . . . . . . . . . . . . D ADDR 00F4H NOT USED AUXR . . . . . . . . . . . . . . . . D ADDR 008EH NOT USED AUXR1. . . . . . . . . . . . . . . . D ADDR 00A2H NOT USED B. . . . . . . . . . . . . . . . . . D ADDR 00F0H NOT USED BDRCON . . . . . . . . . . . . . . . D ADDR 009BH NOT USED BDRCON_1 . . . . . . . . . . . . . . D ADDR 009CH NOT USED BRL. . . . . . . . . . . . . . . . . D ADDR 009AH NOT USED CCAP0H . . . . . . . . . . . . . . . D ADDR 00FAH NOT USED CCAP0L . . . . . . . . . . . . . . . D ADDR 00EAH NOT USED CCAP1H . . . . . . . . . . . . . . . D ADDR 00FBH NOT USED CCAP1L . . . . . . . . . . . . . . . D ADDR 00EBH NOT USED CCAP2H . . . . . . . . . . . . . . . D ADDR 00FCH NOT USED CCAP3H . . . . . . . . . . . . . . . D ADDR 00FDH NOT USED CCAP4H . . . . . . . . . . . . . . . D ADDR 00FEH NOT USED CCAPL2H. . . . . . . . . . . . . . . D ADDR 00FCH NOT USED CCAPL2L. . . . . . . . . . . . . . . D ADDR 00ECH NOT USED CCAPL3H. . . . . . . . . . . . . . . D ADDR 00FDH NOT USED CCAPL3L. . . . . . . . . . . . . . . D ADDR 00EDH NOT USED CCAPL4H. . . . . . . . . . . . . . . D ADDR 00FEH NOT USED CCAPL4L. . . . . . . . . . . . . . . D ADDR 00EEH NOT USED CCAPM0 . . . . . . . . . . . . . . . D ADDR 00DAH NOT USED CCAPM1 . . . . . . . . . . . . . . . D ADDR 00DBH NOT USED CCAPM2 . . . . . . . . . . . . . . . D ADDR 00DCH NOT USED CCAPM3 . . . . . . . . . . . . . . . D ADDR 00DDH NOT USED CCAPM4 . . . . . . . . . . . . . . . D ADDR 00DEH NOT USED CCF0 . . . . . . . . . . . . . . . . B ADDR 00D8H NOT USED CCF1 . . . . . . . . . . . . . . . . B ADDR 00D9H NOT USED CCF2 . . . . . . . . . . . . . . . . B ADDR 00DAH NOT USED CCF3 . . . . . . . . . . . . . . . . B ADDR 00DBH NOT USED CCF4 . . . . . . . . . . . . . . . . B ADDR 00DCH NOT USED CCON . . . . . . . . . . . . . . . . D ADDR 00D8H NOT USED CFINT. . . . . . . . . . . . . . . . C ADDR 0033H NOT USED CH . . . . . . . . . . . . . . . . . D ADDR 00F9H NOT USED CKCON. . . . . . . . . . . . . . . . D ADDR 008FH NOT USED CKCON0 . . . . . . . . . . . . . . . D ADDR 008FH NOT USED CKRL . . . . . . . . . . . . . . . . D ADDR 0097H NOT USED CKSEL. . . . . . . . . . . . . . . . D ADDR 0085H NOT USED CL . . . . . . . . . . . . . . . . . D ADDR 00E9H NOT USED CLKREG . . . . . . . . . . . . . . . D ADDR 008FH NOT USED CMOD . . . . . . . . . . . . . . . . D ADDR 00D9H NOT USED CPRL2. . . . . . . . . . . . . . . . B ADDR 00C8H NOT USED CR . . . . . . . . . . . . . . . . . B ADDR 00DEH NOT USED CT2. . . . . . . . . . . . . . . . . B ADDR 00C9H NOT USED CY . . . . . . . . . . . . . . . . . B ADDR 00D7H NOT USED DP0H . . . . . . . . . . . . . . . . D ADDR 0083H NOT USED DP0L . . . . . . . . . . . . . . . . D ADDR 0082H NOT USED DP1H . . . . . . . . . . . . . . . . D ADDR 0085H NOT USED DP1L . . . . . . . . . . . . . . . . D ADDR 0084H NOT USED DPH. . . . . . . . . . . . . . . . . D ADDR 0083H NOT USED DPL. . . . . . . . . . . . . . . . . D ADDR 0082H EA . . . . . . . . . . . . . . . . . B ADDR 00AFH NOT USED EC . . . . . . . . . . . . . . . . . B ADDR 00AEH NOT USED EECON. . . . . . . . . . . . . . . . D ADDR 0096H NOT USED ES . . . . . . . . . . . . . . . . . B ADDR 00ACH NOT USED ET0. . . . . . . . . . . . . . . . . B ADDR 00A9H NOT USED ET1. . . . . . . . . . . . . . . . . B ADDR 00ABH NOT USED ET2. . . . . . . . . . . . . . . . . B ADDR 00ADH NOT USED EX0. . . . . . . . . . . . . . . . . B ADDR 00A8H NOT USED EX1. . . . . . . . . . . . . . . . . B ADDR 00AAH NOT USED EXEN2. . . . . . . . . . . . . . . . B ADDR 00CBH NOT USED EXF2 . . . . . . . . . . . . . . . . B ADDR 00CEH NOT USED EXTI0. . . . . . . . . . . . . . . . C ADDR 0003H NOT USED EXTI1. . . . . . . . . . . . . . . . C ADDR 0013H NOT USED F0 . . . . . . . . . . . . . . . . . B ADDR 00D5H NOT USED FE . . . . . . . . . . . . . . . . . B ADDR 009FH NOT USED IE . . . . . . . . . . . . . . . . . D ADDR 00A8H IE0. . . . . . . . . . . . . . . . . B ADDR 0089H NOT USED IE1. . . . . . . . . . . . . . . . . B ADDR 008BH NOT USED INT0 . . . . . . . . . . . . . . . . B ADDR 00B2H NOT USED INT1 . . . . . . . . . . . . . . . . B ADDR 00B3H NOT USED IP . . . . . . . . . . . . . . . . . D ADDR 00B8H NOT USED IPH. . . . . . . . . . . . . . . . . D ADDR 00B7H NOT USED IPH0 . . . . . . . . . . . . . . . . D ADDR 00B7H NOT USED IPH1 . . . . . . . . . . . . . . . . D ADDR 00B3H NOT USED IPL0 . . . . . . . . . . . . . . . . D ADDR 00B8H NOT USED IPL1 . . . . . . . . . . . . . . . . D ADDR 00B2H NOT USED IT0. . . . . . . . . . . . . . . . . B ADDR 0088H NOT USED IT1. . . . . . . . . . . . . . . . . B ADDR 008AH NOT USED KBE. . . . . . . . . . . . . . . . . D ADDR 009DH NOT USED KBF. . . . . . . . . . . . . . . . . D ADDR 009EH NOT USED KBLS . . . . . . . . . . . . . . . . D ADDR 009CH NOT USED LOOP . . . . . . . . . . . . . . . . C ADDR 0011H MAIN . . . . . . . . . . . . . . . . C ADDR 002DH OSCCON . . . . . . . . . . . . . . . D ADDR 0086H NOT USED OV . . . . . . . . . . . . . . . . . B ADDR 00D2H NOT USED P. . . . . . . . . . . . . . . . . . B ADDR 00D0H NOT USED P0 . . . . . . . . . . . . . . . . . D ADDR 0080H NOT USED P1 . . . . . . . . . . . . . . . . . D ADDR 0090H NOT USED P1M1 . . . . . . . . . . . . . . . . D ADDR 00D4H NOT USED P1M2 . . . . . . . . . . . . . . . . D ADDR 00E2H NOT USED P2 . . . . . . . . . . . . . . . . . D ADDR 00A0H NOT USED P3 . . . . . . . . . . . . . . . . . D ADDR 00B0H NOT USED P3M1 . . . . . . . . . . . . . . . . D ADDR 00D5H NOT USED P3M2 . . . . . . . . . . . . . . . . D ADDR 00E3H NOT USED P4 . . . . . . . . . . . . . . . . . D ADDR 00C0H NOT USED P4M1 . . . . . . . . . . . . . . . . D ADDR 00D6H NOT USED P4M2 . . . . . . . . . . . . . . . . D ADDR 00E4H NOT USED P5 . . . . . . . . . . . . . . . . . D ADDR 00E8H NOT USED PC . . . . . . . . . . . . . . . . . B ADDR 00BEH NOT USED PCON . . . . . . . . . . . . . . . . D ADDR 0087H NOT USED PPCL . . . . . . . . . . . . . . . . B ADDR 00BEH NOT USED PS . . . . . . . . . . . . . . . . . B ADDR 00BCH NOT USED PSL. . . . . . . . . . . . . . . . . B ADDR 00BCH NOT USED PSW. . . . . . . . . . . . . . . . . D ADDR 00D0H NOT USED PT0. . . . . . . . . . . . . . . . . B ADDR 00B9H NOT USED PT0L . . . . . . . . . . . . . . . . B ADDR 00B9H NOT USED PT1. . . . . . . . . . . . . . . . . B ADDR 00BBH NOT USED PT1L . . . . . . . . . . . . . . . . B ADDR 00BBH NOT USED PT2. . . . . . . . . . . . . . . . . B ADDR 00BDH NOT USED PT2L . . . . . . . . . . . . . . . . B ADDR 00BDH NOT USED PX0. . . . . . . . . . . . . . . . . B ADDR 00B8H NOT USED PX0L . . . . . . . . . . . . . . . . B ADDR 00B8H NOT USED PX1. . . . . . . . . . . . . . . . . B ADDR 00BAH NOT USED PX1L . . . . . . . . . . . . . . . . B ADDR 00BAH NOT USED RB8. . . . . . . . . . . . . . . . . B ADDR 009AH NOT USED RCAP2H . . . . . . . . . . . . . . . D ADDR 00CBH NOT USED RCAP2L . . . . . . . . . . . . . . . D ADDR 00CAH NOT USED RCLK . . . . . . . . . . . . . . . . B ADDR 00CDH NOT USED RD . . . . . . . . . . . . . . . . . B ADDR 00B7H NOT USED REN. . . . . . . . . . . . . . . . . B ADDR 009CH NOT USED RESET. . . . . . . . . . . . . . . . C ADDR 0000H NOT USED RI . . . . . . . . . . . . . . . . . B ADDR 0098H NOT USED RS0. . . . . . . . . . . . . . . . . B ADDR 00D3H NOT USED RS1. . . . . . . . . . . . . . . . . B ADDR 00D4H NOT USED RXD. . . . . . . . . . . . . . . . . B ADDR 00B0H NOT USED SADDR. . . . . . . . . . . . . . . . D ADDR 00A9H NOT USED SADDR_0. . . . . . . . . . . . . . . D ADDR 00A9H NOT USED SADDR_1. . . . . . . . . . . . . . . D ADDR 00AAH NOT USED SADEN. . . . . . . . . . . . . . . . D ADDR 00B9H NOT USED SADEN_0. . . . . . . . . . . . . . . D ADDR 00B9H NOT USED SADEN_1. . . . . . . . . . . . . . . D ADDR 00BAH NOT USED SBUF . . . . . . . . . . . . . . . . D ADDR 0099H NOT USED SCON . . . . . . . . . . . . . . . . D ADDR 0098H NOT USED SINT . . . . . . . . . . . . . . . . C ADDR 0023H NOT USED SM0. . . . . . . . . . . . . . . . . B ADDR 009FH NOT USED SM1. . . . . . . . . . . . . . . . . B ADDR 009EH NOT USED SM2. . . . . . . . . . . . . . . . . B ADDR 009DH NOT USED SP . . . . . . . . . . . . . . . . . D ADDR 0081H NOT USED SPCON. . . . . . . . . . . . . . . . D ADDR 00C3H NOT USED SPCR . . . . . . . . . . . . . . . . D ADDR 00D5H NOT USED SPDAT. . . . . . . . . . . . . . . . D ADDR 00C5H NOT USED SPDR . . . . . . . . . . . . . . . . D ADDR 0086H NOT USED SPSR . . . . . . . . . . . . . . . . D ADDR 00AAH NOT USED SPSTA. . . . . . . . . . . . . . . . D ADDR 00C4H NOT USED START. . . . . . . . . . . . . . . . C ADDR 001EH STRING . . . . . . . . . . . . . . . C ADDR 00D0H STRING_LEGTH . . . . . . . . . . . . N NUMB 001AH T0 . . . . . . . . . . . . . . . . . B ADDR 00B4H NOT USED T0_INT . . . . . . . . . . . . . . . C ADDR 000DH T1 . . . . . . . . . . . . . . . . . B ADDR 00B5H NOT USED T2CON. . . . . . . . . . . . . . . . D ADDR 00C8H NOT USED T2MOD. . . . . . . . . . . . . . . . D ADDR 00C9H NOT USED TB8. . . . . . . . . . . . . . . . . B ADDR 009BH NOT USED TCLK . . . . . . . . . . . . . . . . B ADDR 00CCH NOT USED TCON . . . . . . . . . . . . . . . . D ADDR 0088H NOT USED TF0. . . . . . . . . . . . . . . . . B ADDR 008DH NOT USED TF1. . . . . . . . . . . . . . . . . B ADDR 008FH NOT USED TF2. . . . . . . . . . . . . . . . . B ADDR 00CFH NOT USED TH0. . . . . . . . . . . . . . . . . D ADDR 008CH NOT USED TH1. . . . . . . . . . . . . . . . . D ADDR 008DH NOT USED TH2. . . . . . . . . . . . . . . . . D ADDR 00CDH NOT USED TI . . . . . . . . . . . . . . . . . B ADDR 0099H NOT USED TIMER0 . . . . . . . . . . . . . . . C ADDR 000BH NOT USED TIMER1 . . . . . . . . . . . . . . . C ADDR 001BH NOT USED TIMER2 . . . . . . . . . . . . . . . C ADDR 002BH NOT USED TL0. . . . . . . . . . . . . . . . . D ADDR 008AH TL1. . . . . . . . . . . . . . . . . D ADDR 008BH NOT USED TL2. . . . . . . . . . . . . . . . . D ADDR 00CCH NOT USED TMOD . . . . . . . . . . . . . . . . D ADDR 0089H TR0. . . . . . . . . . . . . . . . . B ADDR 008CH TR1. . . . . . . . . . . . . . . . . B ADDR 008EH NOT USED TR2. . . . . . . . . . . . . . . . . B ADDR 00CAH NOT USED TXD. . . . . . . . . . . . . . . . . B ADDR 00B1H NOT USED WDTCON . . . . . . . . . . . . . . . D ADDR 00A7H NOT USED WDTPRG . . . . . . . . . . . . . . . D ADDR 00A7H NOT USED WDTRST . . . . . . . . . . . . . . . D ADDR 00A6H NOT USED WR . . . . . . . . . . . . . . . . . B ADDR 00B6H NOT USEDmcu8051ide-1.4.7/demo/demo1.hex0000644000175000017500000000015412067167647016536 0ustar milleniummillenium:0F000000800075900F75B01E8000E50F04F50F9E :0E000F008590B085B090D3E59023F59080EDFC :0101FF0004FB :00000001FF mcu8051ide-1.4.7/demo/demo_c_0.cdb0000644000175000017500000001352212067167647017145 0ustar milleniummilleniumM:demo_c_0 F:G$someFunction$0$0({2}DF,SV:S),C,0,0,0,0,0 F:G$main$0$0({2}DF,SI:S),C,0,0,0,0,0 F:G$main$0$0({2}DF,SI:S),C,0,0,0,0,0 S:G$some_variable$0$0({4}SL:U),E,0,0 S:G$i$0$0({2}SI:S),E,0,0 S:LsomeFunction$somevalue$1$1({1}SC:U),R,0,0,[r2] S:G$P0$0$0({1}SC:U),I,0,0 S:G$SP$0$0({1}SC:U),I,0,0 S:G$DPL$0$0({1}SC:U),I,0,0 S:G$DPH$0$0({1}SC:U),I,0,0 S:G$PCON$0$0({1}SC:U),I,0,0 S:G$TCON$0$0({1}SC:U),I,0,0 S:G$TMOD$0$0({1}SC:U),I,0,0 S:G$TL0$0$0({1}SC:U),I,0,0 S:G$TL1$0$0({1}SC:U),I,0,0 S:G$TH0$0$0({1}SC:U),I,0,0 S:G$TH1$0$0({1}SC:U),I,0,0 S:G$P1$0$0({1}SC:U),I,0,0 S:G$SCON$0$0({1}SC:U),I,0,0 S:G$SBUF$0$0({1}SC:U),I,0,0 S:G$P2$0$0({1}SC:U),I,0,0 S:G$IE$0$0({1}SC:U),I,0,0 S:G$P3$0$0({1}SC:U),I,0,0 S:G$IP$0$0({1}SC:U),I,0,0 S:G$PSW$0$0({1}SC:U),I,0,0 S:G$ACC$0$0({1}SC:U),I,0,0 S:G$A$0$0({1}SC:U),I,0,0 S:G$B$0$0({1}SC:U),I,0,0 S:G$P0_0$0$0({1}SX:U),J,0,0 S:G$P0_1$0$0({1}SX:U),J,0,0 S:G$P0_2$0$0({1}SX:U),J,0,0 S:G$P0_3$0$0({1}SX:U),J,0,0 S:G$P0_4$0$0({1}SX:U),J,0,0 S:G$P0_5$0$0({1}SX:U),J,0,0 S:G$P0_6$0$0({1}SX:U),J,0,0 S:G$P0_7$0$0({1}SX:U),J,0,0 S:G$IT0$0$0({1}SX:U),J,0,0 S:G$IE0$0$0({1}SX:U),J,0,0 S:G$IT1$0$0({1}SX:U),J,0,0 S:G$IE1$0$0({1}SX:U),J,0,0 S:G$TR0$0$0({1}SX:U),J,0,0 S:G$TF0$0$0({1}SX:U),J,0,0 S:G$TR1$0$0({1}SX:U),J,0,0 S:G$TF1$0$0({1}SX:U),J,0,0 S:G$P1_0$0$0({1}SX:U),J,0,0 S:G$P1_1$0$0({1}SX:U),J,0,0 S:G$P1_2$0$0({1}SX:U),J,0,0 S:G$P1_3$0$0({1}SX:U),J,0,0 S:G$P1_4$0$0({1}SX:U),J,0,0 S:G$P1_5$0$0({1}SX:U),J,0,0 S:G$P1_6$0$0({1}SX:U),J,0,0 S:G$P1_7$0$0({1}SX:U),J,0,0 S:G$RI$0$0({1}SX:U),J,0,0 S:G$TI$0$0({1}SX:U),J,0,0 S:G$RB8$0$0({1}SX:U),J,0,0 S:G$TB8$0$0({1}SX:U),J,0,0 S:G$REN$0$0({1}SX:U),J,0,0 S:G$SM2$0$0({1}SX:U),J,0,0 S:G$SM1$0$0({1}SX:U),J,0,0 S:G$SM0$0$0({1}SX:U),J,0,0 S:G$P2_0$0$0({1}SX:U),J,0,0 S:G$P2_1$0$0({1}SX:U),J,0,0 S:G$P2_2$0$0({1}SX:U),J,0,0 S:G$P2_3$0$0({1}SX:U),J,0,0 S:G$P2_4$0$0({1}SX:U),J,0,0 S:G$P2_5$0$0({1}SX:U),J,0,0 S:G$P2_6$0$0({1}SX:U),J,0,0 S:G$P2_7$0$0({1}SX:U),J,0,0 S:G$EX0$0$0({1}SX:U),J,0,0 S:G$ET0$0$0({1}SX:U),J,0,0 S:G$EX1$0$0({1}SX:U),J,0,0 S:G$ET1$0$0({1}SX:U),J,0,0 S:G$ES$0$0({1}SX:U),J,0,0 S:G$EA$0$0({1}SX:U),J,0,0 S:G$P3_0$0$0({1}SX:U),J,0,0 S:G$P3_1$0$0({1}SX:U),J,0,0 S:G$P3_2$0$0({1}SX:U),J,0,0 S:G$P3_3$0$0({1}SX:U),J,0,0 S:G$P3_4$0$0({1}SX:U),J,0,0 S:G$P3_5$0$0({1}SX:U),J,0,0 S:G$P3_6$0$0({1}SX:U),J,0,0 S:G$P3_7$0$0({1}SX:U),J,0,0 S:G$RXD$0$0({1}SX:U),J,0,0 S:G$TXD$0$0({1}SX:U),J,0,0 S:G$INT0$0$0({1}SX:U),J,0,0 S:G$INT1$0$0({1}SX:U),J,0,0 S:G$T0$0$0({1}SX:U),J,0,0 S:G$T1$0$0({1}SX:U),J,0,0 S:G$WR$0$0({1}SX:U),J,0,0 S:G$RD$0$0({1}SX:U),J,0,0 S:G$PX0$0$0({1}SX:U),J,0,0 S:G$PT0$0$0({1}SX:U),J,0,0 S:G$PX1$0$0({1}SX:U),J,0,0 S:G$PT1$0$0({1}SX:U),J,0,0 S:G$PS$0$0({1}SX:U),J,0,0 S:G$P$0$0({1}SX:U),J,0,0 S:G$FL$0$0({1}SX:U),J,0,0 S:G$OV$0$0({1}SX:U),J,0,0 S:G$RS0$0$0({1}SX:U),J,0,0 S:G$RS1$0$0({1}SX:U),J,0,0 S:G$F0$0$0({1}SX:U),J,0,0 S:G$AC$0$0({1}SX:U),J,0,0 S:G$CY$0$0({1}SX:U),J,0,0 S:G$someFunction$0$0({2}DF,SV:S),C,0,0 S:G$main$0$0({2}DF,SI:S),C,0,0 L:G$P0$0$0:80 L:G$P0_0$0$0:80 L:G$P0_1$0$0:81 L:G$SP$0$0:81 L:G$DPL$0$0:82 L:G$P0_2$0$0:82 L:G$DPH$0$0:83 L:G$P0_3$0$0:83 L:G$P0_4$0$0:84 L:G$P0_5$0$0:85 L:G$P0_6$0$0:86 L:G$P0_7$0$0:87 L:G$PCON$0$0:87 L:G$IT0$0$0:88 L:G$TCON$0$0:88 L:G$IE0$0$0:89 L:G$TMOD$0$0:89 L:G$IT1$0$0:8A L:G$TL0$0$0:8A L:G$IE1$0$0:8B L:G$TL1$0$0:8B L:G$TH0$0$0:8C L:G$TR0$0$0:8C L:G$TF0$0$0:8D L:G$TH1$0$0:8D L:G$TR1$0$0:8E L:G$TF1$0$0:8F L:G$P1$0$0:90 L:G$P1_0$0$0:90 L:G$P1_1$0$0:91 L:G$P1_2$0$0:92 L:G$P1_3$0$0:93 L:G$P1_4$0$0:94 L:G$P1_5$0$0:95 L:G$P1_6$0$0:96 L:G$P1_7$0$0:97 L:G$RI$0$0:98 L:G$SCON$0$0:98 L:G$SBUF$0$0:99 L:G$TI$0$0:99 L:G$RB8$0$0:9A L:G$TB8$0$0:9B L:G$REN$0$0:9C L:G$SM2$0$0:9D L:G$SM1$0$0:9E L:G$SM0$0$0:9F L:G$P2$0$0:A0 L:G$P2_0$0$0:A0 L:G$P2_1$0$0:A1 L:G$P2_2$0$0:A2 L:G$P2_3$0$0:A3 L:G$P2_4$0$0:A4 L:G$P2_5$0$0:A5 L:G$P2_6$0$0:A6 L:G$P2_7$0$0:A7 L:G$EX0$0$0:A8 L:G$IE$0$0:A8 L:G$ET0$0$0:A9 L:G$EX1$0$0:AA L:G$ET1$0$0:AB L:G$ES$0$0:AC L:G$EA$0$0:AF L:G$P3$0$0:B0 L:G$P3_0$0$0:B0 L:G$RXD$0$0:B0 L:G$P3_1$0$0:B1 L:G$TXD$0$0:B1 L:G$INT0$0$0:B2 L:G$P3_2$0$0:B2 L:G$INT1$0$0:B3 L:G$P3_3$0$0:B3 L:G$P3_4$0$0:B4 L:G$T0$0$0:B4 L:G$P3_5$0$0:B5 L:G$T1$0$0:B5 L:G$P3_6$0$0:B6 L:G$WR$0$0:B6 L:G$P3_7$0$0:B7 L:G$RD$0$0:B7 L:G$IP$0$0:B8 L:G$PX0$0$0:B8 L:G$PT0$0$0:B9 L:G$PX1$0$0:BA L:G$PT1$0$0:BB L:G$PS$0$0:BC L:G$P$0$0:D0 L:G$PSW$0$0:D0 L:G$FL$0$0:D1 L:G$OV$0$0:D2 L:G$RS0$0$0:D3 L:G$RS1$0$0:D4 L:G$F0$0$0:D5 L:G$AC$0$0:D6 L:G$CY$0$0:D7 L:G$A$0$0:E0 L:G$ACC$0$0:E0 L:G$B$0$0:F0 L:G$some_variable$0$0:8 L:G$i$0$0:C L:A$demo_c_0$385:0 L:A$demo_c_0$415:3 L:A$demo_c_0$417:6 L:A$demo_c_0$402:61 L:C$demo_c_0.c$10$1$1:61 L:A$demo_c_0$403:62 L:A$demo_c_0$404:64 L:A$demo_c_0$405:66 L:A$demo_c_0$406:68 L:A$demo_c_0$408:6A L:A$demo_c_0$442:6D L:C$demo_c_0.c$20$0$0:6D L:G$someFunction$0$0:6D L:A$demo_c_0$445:6F L:C$demo_c_0.c$23$1$1:6F L:A$demo_c_0$448:71 L:C$demo_c_0.c$24$1$1:71 L:A$demo_c_0$449:73 L:A$demo_c_0$450:74 L:A$demo_c_0$453:76 L:C$demo_c_0.c$25$1$1:76 L:XG$someFunction$0$0:76 L:A$demo_c_0$470:77 L:C$demo_c_0.c$28$1$1:77 L:C$demo_c_0.c$31$1$1:77 L:G$main$0$0:77 L:A$demo_c_0$471:78 L:A$demo_c_0$472:7A L:A$demo_c_0$474:7C L:A$demo_c_0$475:7D L:A$demo_c_0$476:7F L:A$demo_c_0$477:81 L:A$demo_c_0$478:83 L:A$demo_c_0$479:85 L:A$demo_c_0$480:87 L:A$demo_c_0$483:89 L:C$demo_c_0.c$33$3$3:89 L:A$demo_c_0$484:8B L:A$demo_c_0$485:8D L:A$demo_c_0$486:8E L:A$demo_c_0$487:90 L:A$demo_c_0$490:93 L:C$demo_c_0.c$34$3$3:93 L:A$demo_c_0$491:95 L:A$demo_c_0$492:96 L:A$demo_c_0$493:99 L:A$demo_c_0$494:9B L:A$demo_c_0$495:9E L:A$demo_c_0$496:A0 L:A$demo_c_0$497:A3 L:A$demo_c_0$501:A5 L:C$demo_c_0.c$32$2$2:A5 L:A$demo_c_0$502:A7 L:A$demo_c_0$503:A8 L:A$demo_c_0$504:AB L:A$demo_c_0$505:AD L:A$demo_c_0$509:AF L:C$demo_c_0.c$36$2$2:AF L:A$demo_c_0$510:B1 L:A$demo_c_0$511:B3 L:A$demo_c_0$512:B5 L:A$demo_c_0$513:B7 L:A$demo_c_0$514:B9 L:A$demo_c_0$515:BB L:A$demo_c_0$516:BD L:A$demo_c_0$517:BF L:A$demo_c_0$518:C1 L:A$demo_c_0$519:C3 L:A$demo_c_0$520:C5 L:A$demo_c_0$525:C7 L:C$demo_c_0.c$40$1$1:C7 L:C$demo_c_0.c$41$1$1:C7 L:XG$main$0$0:C7 mcu8051ide-1.4.7/demo/keypad_display.c0000644000175000017500000000267712067167647020205 0ustar milleniummillenium/** * Demonstration code for MCU 8051 IDE * * Create virtual multiplexed LED display * [Main menu] -> [Virtual HW] -> [Open] * and open file keypad_display.vhw . * Then press F2 and F9 to start simulation. * * Notes: * F9 - stop simulation * F2 - shut down simulator * * @file keypad_display.c */ #include <8051.h> #define USE_INLINE_ASM 1 static const char keypad[] = { 0xEF, 0xDF, 0xBF, 0x7F }; static const char display_0[] = { 0xf9, 0x64, 0x70, 0x48 }; static const char display_1[] = { 0x59, 0x52, 0x42, 0x40 }; static const char display_2[] = { 0xf8, 0x40, 0x50, 0xc6 }; static const char display_3[] = { 0x79, 0xc0, 0x49, 0xc0 }; char state; int row; int main() { while(1) { for(row=0; row<4; row++) { P1=keypad[row]; #if USE_INLINE_ASM // Inline assembler _asm mov _state, P1 _endasm; #else state=P1; #endif state&=0x0f; state^=0x0f; if(state & 1) { state=0; } else if(state & 2) { state=1; } else if(state & 4) { state=2; } else if(state & 8) { state=3; } else { continue; } switch(row) { case 0: P3=display_0[state]; break; case 1: P3=display_1[state]; break; case 2: P3=display_2[state]; break; case 3: P3=display_3[state]; break; } } } } mcu8051ide-1.4.7/demo/mleddisplay.vhw0000644000175000017500000000045312067167647020062 0ustar milleniummillenium# MCU 8051 IDE: Virtual HW component configuration file # Date: 03/02/09 # Project: DEBUG # Component: Multiplexed LED display MultiplexedLedDisplay {{0 1 1 1 2 1 3 1 4 1 T0 3 5 1 T1 3 6 1 T2 3 7 1 T3 3} {0 7 1 6 2 5 3 4 4 3 T0 7 5 2 T1 6 6 1 T2 5 7 0 T3 4} {} {Demo for "leddisplay.asm"} blue 50} mcu8051ide-1.4.7/demo/Demo project.mcu8051ide0000644000175000017500000003347412067167651021052 0ustar milleniummillenium ]> WELCOME TO MCU 8051 IDE What does it consist of: Basic key shortcuts: LEFT: F2 - Initialize simulator 1. List of opened files F7 - Step program 2. List of project files F6 - Animate program 3. Filesystem browser F4 - Reset simulator 4. SFR watches CTRL+F7 - Step back RIGHT: Thank you for trying MCU 8051 IDE 1. Bookmarks 2. Breakpoints 3. Symbol list 4. Instruction details 5. Register watches 6. Subprograms monitor 7. HW plug-ins BOTTOM: 1. Simulator panel 2. C code debugger 3. Graph of voltage levels on processor ports 4. Messages text (Compiler output) 5. This text editor 6. Scientific calculator and calculator for computing timer preset 7. Terminal emulator 8. Tool for searching in files ]]> 16 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 mcu8051ide-1.4.7/demo/LCD.asm0000644000175000017500000000157512067167647016137 0ustar milleniummillenium; Very basic demonstration example for HD44780 simulator ; * Click on "Virtual HW" in the main menu, ; * choose "Open", ; * change filter to VH Component, ; * open "LCD.vhc", ; * press F2, ; * press F6, ; * enjoy ... :-) ; * press F2 to end. ; ; Note: simulated delays are skipped in this example. ; org 0 jmp start RS bit P3.0 RW bit P3.1 E bit P3.2 D equ P1 cmd macro cmd_code setb E mov D, cmd_code clr E endm string: db 'Welcome to MCU 8051 IDE!\0' start: mov D, #0 clr RW mov DPTR, #string main: clr RS cmd #00000001b ; Clear display cmd #00000010b ; Cursor home cmd #00000110b ; Entry mode set cmd #00001111b ; Display ON/OFF control cmd #00011110b ; Cursor/display shift cmd #00111100b ; Function set cmd #10000001b ; Set DDRAM address ; Print the string ... setb RS mov R0, #0 print: mov A, R0 inc R0 movc A, @A+DPTR cmd A cjne A, #0, print sjmp main end mcu8051ide-1.4.7/demo/demo0.lst0000644000175000017500000002775612067167647016574 0ustar milleniummilleniumdemo0 PAGE 1 1 ; MCU 8051 IDE - Demonstration code 2 ; Very simple code 3 4 ; Press F2 and F6 to run the program (start simulator and animate) 5 6 org 0h 7 0000 08 8 main: inc R0 0001 06 9 inc @R0 0002 B87FFB 10 cjne R0, #07Fh, main 0005 7800 11 mov R0, #0d 0007 80F7 12 sjmp main 13 14 end ASSEMBLY COMPLETE, NO ERRORS FOUND, NO WARNINGS SYMBOL TABLE: ??MCU_8051_IDE . . . . . . . . . . . N NUMB 8051H NOT USED ??VERSION. . . . . . . . . . . . . . N NUMB 0147H NOT USED AC . . . . . . . . . . . . . . . . . B ADDR 00D6H NOT USED ACC. . . . . . . . . . . . . . . . . D ADDR 00E0H NOT USED ACSR . . . . . . . . . . . . . . . . D ADDR 0097H NOT USED ADCF . . . . . . . . . . . . . . . . D ADDR 00F6H NOT USED ADCLK. . . . . . . . . . . . . . . . D ADDR 00F2H NOT USED ADCON. . . . . . . . . . . . . . . . D ADDR 00F3H NOT USED ADDH . . . . . . . . . . . . . . . . D ADDR 00F5H NOT USED ADDL . . . . . . . . . . . . . . . . D ADDR 00F4H NOT USED AUXR . . . . . . . . . . . . . . . . D ADDR 008EH NOT USED AUXR1. . . . . . . . . . . . . . . . D ADDR 00A2H NOT USED B. . . . . . . . . . . . . . . . . . D ADDR 00F0H NOT USED BDRCON . . . . . . . . . . . . . . . D ADDR 009BH NOT USED BDRCON_1 . . . . . . . . . . . . . . D ADDR 009CH NOT USED BRL. . . . . . . . . . . . . . . . . D ADDR 009AH NOT USED CCAP0H . . . . . . . . . . . . . . . D ADDR 00FAH NOT USED CCAP0L . . . . . . . . . . . . . . . D ADDR 00EAH NOT USED CCAP1H . . . . . . . . . . . . . . . D ADDR 00FBH NOT USED CCAP1L . . . . . . . . . . . . . . . D ADDR 00EBH NOT USED CCAP2H . . . . . . . . . . . . . . . D ADDR 00FCH NOT USED CCAP3H . . . . . . . . . . . . . . . D ADDR 00FDH NOT USED CCAP4H . . . . . . . . . . . . . . . D ADDR 00FEH NOT USED CCAPL2H. . . . . . . . . . . . . . . D ADDR 00FCH NOT USED CCAPL2L. . . . . . . . . . . . . . . D ADDR 00ECH NOT USED CCAPL3H. . . . . . . . . . . . . . . D ADDR 00FDH NOT USED CCAPL3L. . . . . . . . . . . . . . . D ADDR 00EDH NOT USED CCAPL4H. . . . . . . . . . . . . . . D ADDR 00FEH NOT USED CCAPL4L. . . . . . . . . . . . . . . D ADDR 00EEH NOT USED CCAPM0 . . . . . . . . . . . . . . . D ADDR 00DAH NOT USED CCAPM1 . . . . . . . . . . . . . . . D ADDR 00DBH NOT USED CCAPM2 . . . . . . . . . . . . . . . D ADDR 00DCH NOT USED CCAPM3 . . . . . . . . . . . . . . . D ADDR 00DDH NOT USED CCAPM4 . . . . . . . . . . . . . . . D ADDR 00DEH NOT USED CCF0 . . . . . . . . . . . . . . . . B ADDR 00D8H NOT USED CCF1 . . . . . . . . . . . . . . . . B ADDR 00D9H NOT USED CCF2 . . . . . . . . . . . . . . . . B ADDR 00DAH NOT USED CCF3 . . . . . . . . . . . . . . . . B ADDR 00DBH NOT USED CCF4 . . . . . . . . . . . . . . . . B ADDR 00DCH NOT USED CCON . . . . . . . . . . . . . . . . D ADDR 00D8H NOT USED CFINT. . . . . . . . . . . . . . . . C ADDR 0033H NOT USED CH . . . . . . . . . . . . . . . . . D ADDR 00F9H NOT USED CKCON. . . . . . . . . . . . . . . . D ADDR 008FH NOT USED CKCON0 . . . . . . . . . . . . . . . D ADDR 008FH NOT USED CKRL . . . . . . . . . . . . . . . . D ADDR 0097H NOT USED CKSEL. . . . . . . . . . . . . . . . D ADDR 0085H NOT USED CL . . . . . . . . . . . . . . . . . D ADDR 00E9H NOT USED CLKREG . . . . . . . . . . . . . . . D ADDR 008FH NOT USED CMOD . . . . . . . . . . . . . . . . D ADDR 00D9H NOT USED CPRL2. . . . . . . . . . . . . . . . B ADDR 00C8H NOT USED CR . . . . . . . . . . . . . . . . . B ADDR 00DEH NOT USED CT2. . . . . . . . . . . . . . . . . B ADDR 00C9H NOT USED CY . . . . . . . . . . . . . . . . . B ADDR 00D7H NOT USED DP0H . . . . . . . . . . . . . . . . D ADDR 0083H NOT USED DP0L . . . . . . . . . . . . . . . . D ADDR 0082H NOT USED DP1H . . . . . . . . . . . . . . . . D ADDR 0085H NOT USED DP1L . . . . . . . . . . . . . . . . D ADDR 0084H NOT USED DPH. . . . . . . . . . . . . . . . . D ADDR 0083H NOT USED DPL. . . . . . . . . . . . . . . . . D ADDR 0082H NOT USED EA . . . . . . . . . . . . . . . . . B ADDR 00AFH NOT USED EC . . . . . . . . . . . . . . . . . B ADDR 00AEH NOT USED EECON. . . . . . . . . . . . . . . . D ADDR 0096H NOT USED ES . . . . . . . . . . . . . . . . . B ADDR 00ACH NOT USED ET0. . . . . . . . . . . . . . . . . B ADDR 00A9H NOT USED ET1. . . . . . . . . . . . . . . . . B ADDR 00ABH NOT USED ET2. . . . . . . . . . . . . . . . . B ADDR 00ADH NOT USED EX0. . . . . . . . . . . . . . . . . B ADDR 00A8H NOT USED EX1. . . . . . . . . . . . . . . . . B ADDR 00AAH NOT USED EXEN2. . . . . . . . . . . . . . . . B ADDR 00CBH NOT USED EXF2 . . . . . . . . . . . . . . . . B ADDR 00CEH NOT USED EXTI0. . . . . . . . . . . . . . . . C ADDR 0003H NOT USED EXTI1. . . . . . . . . . . . . . . . C ADDR 0013H NOT USED F0 . . . . . . . . . . . . . . . . . B ADDR 00D5H NOT USED FE . . . . . . . . . . . . . . . . . B ADDR 009FH NOT USED IE . . . . . . . . . . . . . . . . . D ADDR 00A8H NOT USED IE0. . . . . . . . . . . . . . . . . B ADDR 0089H NOT USED IE1. . . . . . . . . . . . . . . . . B ADDR 008BH NOT USED INT0 . . . . . . . . . . . . . . . . B ADDR 00B2H NOT USED INT1 . . . . . . . . . . . . . . . . B ADDR 00B3H NOT USED IP . . . . . . . . . . . . . . . . . D ADDR 00B8H NOT USED IPH. . . . . . . . . . . . . . . . . D ADDR 00B7H NOT USED IPH0 . . . . . . . . . . . . . . . . D ADDR 00B7H NOT USED IPH1 . . . . . . . . . . . . . . . . D ADDR 00B3H NOT USED IPL0 . . . . . . . . . . . . . . . . D ADDR 00B8H NOT USED IPL1 . . . . . . . . . . . . . . . . D ADDR 00B2H NOT USED IT0. . . . . . . . . . . . . . . . . B ADDR 0088H NOT USED IT1. . . . . . . . . . . . . . . . . B ADDR 008AH NOT USED KBE. . . . . . . . . . . . . . . . . D ADDR 009DH NOT USED KBF. . . . . . . . . . . . . . . . . D ADDR 009EH NOT USED KBLS . . . . . . . . . . . . . . . . D ADDR 009CH NOT USED MAIN . . . . . . . . . . . . . . . . C ADDR 0000H OSCCON . . . . . . . . . . . . . . . D ADDR 0086H NOT USED OV . . . . . . . . . . . . . . . . . B ADDR 00D2H NOT USED P. . . . . . . . . . . . . . . . . . B ADDR 00D0H NOT USED P0 . . . . . . . . . . . . . . . . . D ADDR 0080H NOT USED P1 . . . . . . . . . . . . . . . . . D ADDR 0090H NOT USED P1M1 . . . . . . . . . . . . . . . . D ADDR 00D4H NOT USED P1M2 . . . . . . . . . . . . . . . . D ADDR 00E2H NOT USED P2 . . . . . . . . . . . . . . . . . D ADDR 00A0H NOT USED P3 . . . . . . . . . . . . . . . . . D ADDR 00B0H NOT USED P3M1 . . . . . . . . . . . . . . . . D ADDR 00D5H NOT USED P3M2 . . . . . . . . . . . . . . . . D ADDR 00E3H NOT USED P4 . . . . . . . . . . . . . . . . . D ADDR 00C0H NOT USED P4M1 . . . . . . . . . . . . . . . . D ADDR 00D6H NOT USED P4M2 . . . . . . . . . . . . . . . . D ADDR 00E4H NOT USED P5 . . . . . . . . . . . . . . . . . D ADDR 00E8H NOT USED PC . . . . . . . . . . . . . . . . . B ADDR 00BEH NOT USED PCON . . . . . . . . . . . . . . . . D ADDR 0087H NOT USED PPCL . . . . . . . . . . . . . . . . B ADDR 00BEH NOT USED PS . . . . . . . . . . . . . . . . . B ADDR 00BCH NOT USED PSL. . . . . . . . . . . . . . . . . B ADDR 00BCH NOT USED PSW. . . . . . . . . . . . . . . . . D ADDR 00D0H NOT USED PT0. . . . . . . . . . . . . . . . . B ADDR 00B9H NOT USED PT0L . . . . . . . . . . . . . . . . B ADDR 00B9H NOT USED PT1. . . . . . . . . . . . . . . . . B ADDR 00BBH NOT USED PT1L . . . . . . . . . . . . . . . . B ADDR 00BBH NOT USED PT2. . . . . . . . . . . . . . . . . B ADDR 00BDH NOT USED PT2L . . . . . . . . . . . . . . . . B ADDR 00BDH NOT USED PX0. . . . . . . . . . . . . . . . . B ADDR 00B8H NOT USED PX0L . . . . . . . . . . . . . . . . B ADDR 00B8H NOT USED PX1. . . . . . . . . . . . . . . . . B ADDR 00BAH NOT USED PX1L . . . . . . . . . . . . . . . . B ADDR 00BAH NOT USED RB8. . . . . . . . . . . . . . . . . B ADDR 009AH NOT USED RCAP2H . . . . . . . . . . . . . . . D ADDR 00CBH NOT USED RCAP2L . . . . . . . . . . . . . . . D ADDR 00CAH NOT USED RCLK . . . . . . . . . . . . . . . . B ADDR 00CDH NOT USED RD . . . . . . . . . . . . . . . . . B ADDR 00B7H NOT USED REN. . . . . . . . . . . . . . . . . B ADDR 009CH NOT USED RESET. . . . . . . . . . . . . . . . C ADDR 0000H NOT USED RI . . . . . . . . . . . . . . . . . B ADDR 0098H NOT USED RS0. . . . . . . . . . . . . . . . . B ADDR 00D3H NOT USED RS1. . . . . . . . . . . . . . . . . B ADDR 00D4H NOT USED RXD. . . . . . . . . . . . . . . . . B ADDR 00B0H NOT USED SADDR. . . . . . . . . . . . . . . . D ADDR 00A9H NOT USED SADDR_0. . . . . . . . . . . . . . . D ADDR 00A9H NOT USED SADDR_1. . . . . . . . . . . . . . . D ADDR 00AAH NOT USED SADEN. . . . . . . . . . . . . . . . D ADDR 00B9H NOT USED SADEN_0. . . . . . . . . . . . . . . D ADDR 00B9H NOT USED SADEN_1. . . . . . . . . . . . . . . D ADDR 00BAH NOT USED SBUF . . . . . . . . . . . . . . . . D ADDR 0099H NOT USED SCON . . . . . . . . . . . . . . . . D ADDR 0098H NOT USED SINT . . . . . . . . . . . . . . . . C ADDR 0023H NOT USED SM0. . . . . . . . . . . . . . . . . B ADDR 009FH NOT USED SM1. . . . . . . . . . . . . . . . . B ADDR 009EH NOT USED SM2. . . . . . . . . . . . . . . . . B ADDR 009DH NOT USED SP . . . . . . . . . . . . . . . . . D ADDR 0081H NOT USED SPCON. . . . . . . . . . . . . . . . D ADDR 00C3H NOT USED SPCR . . . . . . . . . . . . . . . . D ADDR 00D5H NOT USED SPDAT. . . . . . . . . . . . . . . . D ADDR 00C5H NOT USED SPDR . . . . . . . . . . . . . . . . D ADDR 0086H NOT USED SPSR . . . . . . . . . . . . . . . . D ADDR 00AAH NOT USED SPSTA. . . . . . . . . . . . . . . . D ADDR 00C4H NOT USED T0 . . . . . . . . . . . . . . . . . B ADDR 00B4H NOT USED T1 . . . . . . . . . . . . . . . . . B ADDR 00B5H NOT USED T2CON. . . . . . . . . . . . . . . . D ADDR 00C8H NOT USED T2MOD. . . . . . . . . . . . . . . . D ADDR 00C9H NOT USED TB8. . . . . . . . . . . . . . . . . B ADDR 009BH NOT USED TCLK . . . . . . . . . . . . . . . . B ADDR 00CCH NOT USED TCON . . . . . . . . . . . . . . . . D ADDR 0088H NOT USED TF0. . . . . . . . . . . . . . . . . B ADDR 008DH NOT USED TF1. . . . . . . . . . . . . . . . . B ADDR 008FH NOT USED TF2. . . . . . . . . . . . . . . . . B ADDR 00CFH NOT USED TH0. . . . . . . . . . . . . . . . . D ADDR 008CH NOT USED TH1. . . . . . . . . . . . . . . . . D ADDR 008DH NOT USED TH2. . . . . . . . . . . . . . . . . D ADDR 00CDH NOT USED TI . . . . . . . . . . . . . . . . . B ADDR 0099H NOT USED TIMER0 . . . . . . . . . . . . . . . C ADDR 000BH NOT USED TIMER1 . . . . . . . . . . . . . . . C ADDR 001BH NOT USED TIMER2 . . . . . . . . . . . . . . . C ADDR 002BH NOT USED TL0. . . . . . . . . . . . . . . . . D ADDR 008AH NOT USED TL1. . . . . . . . . . . . . . . . . D ADDR 008BH NOT USED TL2. . . . . . . . . . . . . . . . . D ADDR 00CCH NOT USED TMOD . . . . . . . . . . . . . . . . D ADDR 0089H NOT USED TR0. . . . . . . . . . . . . . . . . B ADDR 008CH NOT USED TR1. . . . . . . . . . . . . . . . . B ADDR 008EH NOT USED TR2. . . . . . . . . . . . . . . . . B ADDR 00CAH NOT USED TXD. . . . . . . . . . . . . . . . . B ADDR 00B1H NOT USED WDTCON . . . . . . . . . . . . . . . D ADDR 00A7H NOT USED WDTPRG . . . . . . . . . . . . . . . D ADDR 00A7H NOT USED WDTRST . . . . . . . . . . . . . . . D ADDR 00A6H NOT USED WR . . . . . . . . . . . . . . . . . B ADDR 00B6H NOT USEDmcu8051ide-1.4.7/demo/demo5.adf0000644000175000017500000000023512067167647016510 0ustar milleniummillenium# Assembler debug file for MCU 8051 IDE v1.4.7 # Used assembler: MCU 8051 IDE # Date: 12/28/2012 83FBE8C57ABDDCD92CDD70B3C5326563 "demo5.asm" 0 32 0 128 254mcu8051ide-1.4.7/demo/mleddisplay.hex0000644000175000017500000000033612067167647020042 0ustar milleniummillenium:1000000002002506B60A09760008B8240122110369 :0E0010002218E5F003F5F0E69375B0FFF590C9 :10001E0085F0B0B820ED2275200075210075220004 :0F002E0075230075F0EE900041782411117820B1 :0E003D00110380F6C0F9A4B0999282F8809069 :00000001FF mcu8051ide-1.4.7/demo/LCD.vhc0000644000175000017500000000037012067167647016127 0ustar milleniummillenium# MCU 8051 IDE: Virtual HW configuration file # Project: Demo project LcdHD44780 {2 24 633x172+515+234 {0 3 4 1 8 1 1 3 5 1 9 1 10 1 2 3 6 1 3 1 7 1} {0 7 4 1 8 5 1 6 5 2 9 6 10 7 2 5 6 3 3 0 7 4} {} 1 1 0 0 0 1 1x1+0+0 withdrawn {0 {}} {0 {}} 1} mcu8051ide-1.4.7/demo/ledmatrix.ihx0000644000175000017500000000122612067167647017527 0ustar milleniummillenium:03000000020008F3 :0300610002000397 :0500030012006480FE04 :040064007A007B00A3 :0E006800C3EA9408EB6480948050F17590FF19 :0A007600EA24A7F582EB3400F583BD :0E008000E493F5808AF005F07C017D00800697 :06008E00EC2CFCED33FD3B :0E009400D5F0F774FF6CF5900ABA00C80B8027 :0100A200C598 :0800A700B19DBDB1B7B711FF17 :06003700E478FFF6D8FD9D :080015007900E94400601B7A48 :05001D00009000AF7827 :030022000075A0C6 :0A00250000E493F2A308B8000205FE :08002F00A0D9F4DAF275A0FF7C :08003D007800E84400600A7934 :030045000075A0A3 :0600480000E4F309D8FCFE :08004E007800E84400600C7921 :0B00560000900000E4F0A3D8FCD9FAF1 :03000800758107F8 :0A000B001200A3E582600302000367 :0400A3007582002240 :00000001FF mcu8051ide-1.4.7/demo/demo5.lst0000644000175000017500000003173712067167647016573 0ustar milleniummilleniumdemo5 PAGE 1 1 ; Dissassebler 2 ; -------------------- 3 ; [Main menu] -> [Tools] -> [Dissasseble] 4 ; Choose some hex file and see result 5 6 ; Custom commands 7 ; -------------------- 8 ; They can be used for instance to load your program into a 9 ; real processor. 10 ; [Main menu] -> [Configure] -> [Edit cutom commands] 11 ; [Main menu] -> [Tools] -> [Cutom command N] 12 13 ; Tip of the day 14 ; -------------------- 15 ; You may find some useful advices how to use this 16 ; IDE more efficiently 17 ; [Main menu] -> [Help] -> [Tip of the day] 18 19 ; Project web page: 20 ; -------------------- 21 ; http://mcu8051ide.sf.net 22 23 24 25 ; AND NOW YOU ARE READY ! 26 ; Click on [Main menu] -> [Project] -> [New] and create your own 8051 project ... 27 28 29 ; !!! HAVE A GOOD LUCK WITH THIS IDE !!! 30 31 org 0 0000 80FE 32 sjmp $ 33 end ASSEMBLY COMPLETE, NO ERRORS FOUND, NO WARNINGS SYMBOL TABLE: ??MCU_8051_IDE . . . . . . . . . . . N NUMB 8051H NOT USED ??VERSION. . . . . . . . . . . . . . N NUMB 0147H NOT USED AC . . . . . . . . . . . . . . . . . B ADDR 00D6H NOT USED ACC. . . . . . . . . . . . . . . . . D ADDR 00E0H NOT USED ACSR . . . . . . . . . . . . . . . . D ADDR 0097H NOT USED ADCF . . . . . . . . . . . . . . . . D ADDR 00F6H NOT USED ADCLK. . . . . . . . . . . . . . . . D ADDR 00F2H NOT USED ADCON. . . . . . . . . . . . . . . . D ADDR 00F3H NOT USED ADDH . . . . . . . . . . . . . . . . D ADDR 00F5H NOT USED ADDL . . . . . . . . . . . . . . . . D ADDR 00F4H NOT USED AUXR . . . . . . . . . . . . . . . . D ADDR 008EH NOT USED AUXR1. . . . . . . . . . . . . . . . D ADDR 00A2H NOT USED B. . . . . . . . . . . . . . . . . . D ADDR 00F0H NOT USED BDRCON . . . . . . . . . . . . . . . D ADDR 009BH NOT USED BDRCON_1 . . . . . . . . . . . . . . D ADDR 009CH NOT USED BRL. . . . . . . . . . . . . . . . . D ADDR 009AH NOT USED CCAP0H . . . . . . . . . . . . . . . D ADDR 00FAH NOT USED CCAP0L . . . . . . . . . . . . . . . D ADDR 00EAH NOT USED CCAP1H . . . . . . . . . . . . . . . D ADDR 00FBH NOT USED CCAP1L . . . . . . . . . . . . . . . D ADDR 00EBH NOT USED CCAP2H . . . . . . . . . . . . . . . D ADDR 00FCH NOT USED CCAP3H . . . . . . . . . . . . . . . D ADDR 00FDH NOT USED CCAP4H . . . . . . . . . . . . . . . D ADDR 00FEH NOT USED CCAPL2H. . . . . . . . . . . . . . . D ADDR 00FCH NOT USED CCAPL2L. . . . . . . . . . . . . . . D ADDR 00ECH NOT USED CCAPL3H. . . . . . . . . . . . . . . D ADDR 00FDH NOT USED CCAPL3L. . . . . . . . . . . . . . . D ADDR 00EDH NOT USED CCAPL4H. . . . . . . . . . . . . . . D ADDR 00FEH NOT USED CCAPL4L. . . . . . . . . . . . . . . D ADDR 00EEH NOT USED CCAPM0 . . . . . . . . . . . . . . . D ADDR 00DAH NOT USED CCAPM1 . . . . . . . . . . . . . . . D ADDR 00DBH NOT USED CCAPM2 . . . . . . . . . . . . . . . D ADDR 00DCH NOT USED CCAPM3 . . . . . . . . . . . . . . . D ADDR 00DDH NOT USED CCAPM4 . . . . . . . . . . . . . . . D ADDR 00DEH NOT USED CCF0 . . . . . . . . . . . . . . . . B ADDR 00D8H NOT USED CCF1 . . . . . . . . . . . . . . . . B ADDR 00D9H NOT USED CCF2 . . . . . . . . . . . . . . . . B ADDR 00DAH NOT USED CCF3 . . . . . . . . . . . . . . . . B ADDR 00DBH NOT USED CCF4 . . . . . . . . . . . . . . . . B ADDR 00DCH NOT USED CCON . . . . . . . . . . . . . . . . D ADDR 00D8H NOT USED CFINT. . . . . . . . . . . . . . . . C ADDR 0033H NOT USED CH . . . . . . . . . . . . . . . . . D ADDR 00F9H NOT USED CKCON. . . . . . . . . . . . . . . . D ADDR 008FH NOT USED CKCON0 . . . . . . . . . . . . . . . D ADDR 008FH NOT USED CKRL . . . . . . . . . . . . . . . . D ADDR 0097H NOT USED CKSEL. . . . . . . . . . . . . . . . D ADDR 0085H NOT USED CL . . . . . . . . . . . . . . . . . D ADDR 00E9H NOT USED CLKREG . . . . . . . . . . . . . . . D ADDR 008FH NOT USED CMOD . . . . . . . . . . . . . . . . D ADDR 00D9H NOT USED CPRL2. . . . . . . . . . . . . . . . B ADDR 00C8H NOT USED CR . . . . . . . . . . . . . . . . . B ADDR 00DEH NOT USED CT2. . . . . . . . . . . . . . . . . B ADDR 00C9H NOT USED CY . . . . . . . . . . . . . . . . . B ADDR 00D7H NOT USED DP0H . . . . . . . . . . . . . . . . D ADDR 0083H NOT USED DP0L . . . . . . . . . . . . . . . . D ADDR 0082H NOT USED DP1H . . . . . . . . . . . . . . . . D ADDR 0085H NOT USED DP1L . . . . . . . . . . . . . . . . D ADDR 0084H NOT USED DPH. . . . . . . . . . . . . . . . . D ADDR 0083H NOT USED DPL. . . . . . . . . . . . . . . . . D ADDR 0082H NOT USED EA . . . . . . . . . . . . . . . . . B ADDR 00AFH NOT USED EC . . . . . . . . . . . . . . . . . B ADDR 00AEH NOT USED EECON. . . . . . . . . . . . . . . . D ADDR 0096H NOT USED ES . . . . . . . . . . . . . . . . . B ADDR 00ACH NOT USED ET0. . . . . . . . . . . . . . . . . B ADDR 00A9H NOT USED ET1. . . . . . . . . . . . . . . . . B ADDR 00ABH NOT USED ET2. . . . . . . . . . . . . . . . . B ADDR 00ADH NOT USED EX0. . . . . . . . . . . . . . . . . B ADDR 00A8H NOT USED EX1. . . . . . . . . . . . . . . . . B ADDR 00AAH NOT USED EXEN2. . . . . . . . . . . . . . . . B ADDR 00CBH NOT USED EXF2 . . . . . . . . . . . . . . . . B ADDR 00CEH NOT USED EXTI0. . . . . . . . . . . . . . . . C ADDR 0003H NOT USED EXTI1. . . . . . . . . . . . . . . . C ADDR 0013H NOT USED F0 . . . . . . . . . . . . . . . . . B ADDR 00D5H NOT USED FE . . . . . . . . . . . . . . . . . B ADDR 009FH NOT USED IE . . . . . . . . . . . . . . . . . D ADDR 00A8H NOT USED IE0. . . . . . . . . . . . . . . . . B ADDR 0089H NOT USED IE1. . . . . . . . . . . . . . . . . B ADDR 008BH NOT USED INT0 . . . . . . . . . . . . . . . . B ADDR 00B2H NOT USED INT1 . . . . . . . . . . . . . . . . B ADDR 00B3H NOT USED IP . . . . . . . . . . . . . . . . . D ADDR 00B8H NOT USED IPH. . . . . . . . . . . . . . . . . D ADDR 00B7H NOT USED IPH0 . . . . . . . . . . . . . . . . D ADDR 00B7H NOT USED IPH1 . . . . . . . . . . . . . . . . D ADDR 00B3H NOT USED IPL0 . . . . . . . . . . . . . . . . D ADDR 00B8H NOT USED IPL1 . . . . . . . . . . . . . . . . D ADDR 00B2H NOT USED IT0. . . . . . . . . . . . . . . . . B ADDR 0088H NOT USED IT1. . . . . . . . . . . . . . . . . B ADDR 008AH NOT USED KBE. . . . . . . . . . . . . . . . . D ADDR 009DH NOT USED KBF. . . . . . . . . . . . . . . . . D ADDR 009EH NOT USED KBLS . . . . . . . . . . . . . . . . D ADDR 009CH NOT USED OSCCON . . . . . . . . . . . . . . . D ADDR 0086H NOT USED OV . . . . . . . . . . . . . . . . . B ADDR 00D2H NOT USED P. . . . . . . . . . . . . . . . . . B ADDR 00D0H NOT USED P0 . . . . . . . . . . . . . . . . . D ADDR 0080H NOT USED P1 . . . . . . . . . . . . . . . . . D ADDR 0090H NOT USED P1M1 . . . . . . . . . . . . . . . . D ADDR 00D4H NOT USED P1M2 . . . . . . . . . . . . . . . . D ADDR 00E2H NOT USED P2 . . . . . . . . . . . . . . . . . D ADDR 00A0H NOT USED P3 . . . . . . . . . . . . . . . . . D ADDR 00B0H NOT USED P3M1 . . . . . . . . . . . . . . . . D ADDR 00D5H NOT USED P3M2 . . . . . . . . . . . . . . . . D ADDR 00E3H NOT USED P4 . . . . . . . . . . . . . . . . . D ADDR 00C0H NOT USED P4M1 . . . . . . . . . . . . . . . . D ADDR 00D6H NOT USED P4M2 . . . . . . . . . . . . . . . . D ADDR 00E4H NOT USED P5 . . . . . . . . . . . . . . . . . D ADDR 00E8H NOT USED PC . . . . . . . . . . . . . . . . . B ADDR 00BEH NOT USED PCON . . . . . . . . . . . . . . . . D ADDR 0087H NOT USED PPCL . . . . . . . . . . . . . . . . B ADDR 00BEH NOT USED PS . . . . . . . . . . . . . . . . . B ADDR 00BCH NOT USED PSL. . . . . . . . . . . . . . . . . B ADDR 00BCH NOT USED PSW. . . . . . . . . . . . . . . . . D ADDR 00D0H NOT USED PT0. . . . . . . . . . . . . . . . . B ADDR 00B9H NOT USED PT0L . . . . . . . . . . . . . . . . B ADDR 00B9H NOT USED PT1. . . . . . . . . . . . . . . . . B ADDR 00BBH NOT USED PT1L . . . . . . . . . . . . . . . . B ADDR 00BBH NOT USED PT2. . . . . . . . . . . . . . . . . B ADDR 00BDH NOT USED PT2L . . . . . . . . . . . . . . . . B ADDR 00BDH NOT USED PX0. . . . . . . . . . . . . . . . . B ADDR 00B8H NOT USED PX0L . . . . . . . . . . . . . . . . B ADDR 00B8H NOT USED PX1. . . . . . . . . . . . . . . . . B ADDR 00BAH NOT USED PX1L . . . . . . . . . . . . . . . . B ADDR 00BAH NOT USED RB8. . . . . . . . . . . . . . . . . B ADDR 009AH NOT USED RCAP2H . . . . . . . . . . . . . . . D ADDR 00CBH NOT USED RCAP2L . . . . . . . . . . . . . . . D ADDR 00CAH NOT USED RCLK . . . . . . . . . . . . . . . . B ADDR 00CDH NOT USED RD . . . . . . . . . . . . . . . . . B ADDR 00B7H NOT USED REN. . . . . . . . . . . . . . . . . B ADDR 009CH NOT USED RESET. . . . . . . . . . . . . . . . C ADDR 0000H NOT USED RI . . . . . . . . . . . . . . . . . B ADDR 0098H NOT USED RS0. . . . . . . . . . . . . . . . . B ADDR 00D3H NOT USED RS1. . . . . . . . . . . . . . . . . B ADDR 00D4H NOT USED RXD. . . . . . . . . . . . . . . . . B ADDR 00B0H NOT USED SADDR. . . . . . . . . . . . . . . . D ADDR 00A9H NOT USED SADDR_0. . . . . . . . . . . . . . . D ADDR 00A9H NOT USED SADDR_1. . . . . . . . . . . . . . . D ADDR 00AAH NOT USED SADEN. . . . . . . . . . . . . . . . D ADDR 00B9H NOT USED SADEN_0. . . . . . . . . . . . . . . D ADDR 00B9H NOT USED SADEN_1. . . . . . . . . . . . . . . D ADDR 00BAH NOT USED SBUF . . . . . . . . . . . . . . . . D ADDR 0099H NOT USED SCON . . . . . . . . . . . . . . . . D ADDR 0098H NOT USED SINT . . . . . . . . . . . . . . . . C ADDR 0023H NOT USED SM0. . . . . . . . . . . . . . . . . B ADDR 009FH NOT USED SM1. . . . . . . . . . . . . . . . . B ADDR 009EH NOT USED SM2. . . . . . . . . . . . . . . . . B ADDR 009DH NOT USED SP . . . . . . . . . . . . . . . . . D ADDR 0081H NOT USED SPCON. . . . . . . . . . . . . . . . D ADDR 00C3H NOT USED SPCR . . . . . . . . . . . . . . . . D ADDR 00D5H NOT USED SPDAT. . . . . . . . . . . . . . . . D ADDR 00C5H NOT USED SPDR . . . . . . . . . . . . . . . . D ADDR 0086H NOT USED SPSR . . . . . . . . . . . . . . . . D ADDR 00AAH NOT USED SPSTA. . . . . . . . . . . . . . . . D ADDR 00C4H NOT USED T0 . . . . . . . . . . . . . . . . . B ADDR 00B4H NOT USED T1 . . . . . . . . . . . . . . . . . B ADDR 00B5H NOT USED T2CON. . . . . . . . . . . . . . . . D ADDR 00C8H NOT USED T2MOD. . . . . . . . . . . . . . . . D ADDR 00C9H NOT USED TB8. . . . . . . . . . . . . . . . . B ADDR 009BH NOT USED TCLK . . . . . . . . . . . . . . . . B ADDR 00CCH NOT USED TCON . . . . . . . . . . . . . . . . D ADDR 0088H NOT USED TF0. . . . . . . . . . . . . . . . . B ADDR 008DH NOT USED TF1. . . . . . . . . . . . . . . . . B ADDR 008FH NOT USED TF2. . . . . . . . . . . . . . . . . B ADDR 00CFH NOT USED TH0. . . . . . . . . . . . . . . . . D ADDR 008CH NOT USED TH1. . . . . . . . . . . . . . . . . D ADDR 008DH NOT USED TH2. . . . . . . . . . . . . . . . . D ADDR 00CDH NOT USED TI . . . . . . . . . . . . . . . . . B ADDR 0099H NOT USED TIMER0 . . . . . . . . . . . . . . . C ADDR 000BH NOT USED TIMER1 . . . . . . . . . . . . . . . C ADDR 001BH NOT USED TIMER2 . . . . . . . . . . . . . . . C ADDR 002BH NOT USED TL0. . . . . . . . . . . . . . . . . D ADDR 008AH NOT USED TL1. . . . . . . . . . . . . . . . . D ADDR 008BH NOT USED TL2. . . . . . . . . . . . . . . . . D ADDR 00CCH NOT USED TMOD . . . . . . . . . . . . . . . . D ADDR 0089H NOT USED TR0. . . . . . . . . . . . . . . . . B ADDR 008CH NOT USED TR1. . . . . . . . . . . . . . . . . B ADDR 008EH NOT USED TR2. . . . . . . . . . . . . . . . . B ADDR 00CAH NOT USED TXD. . . . . . . . . . . . . . . . . B ADDR 00B1H NOT USED WDTCON . . . . . . . . . . . . . . . D ADDR 00A7H NOT USED WDTPRG . . . . . . . . . . . . . . . D ADDR 00A7H NOT USED WDTRST . . . . . . . . . . . . . . . D ADDR 00A6H NOT USED WR . . . . . . . . . . . . . . . . . B ADDR 00B6H NOT USEDmcu8051ide-1.4.7/demo/demo_c_0.ihx0000644000175000017500000000146212067167647017205 0ustar milleniummillenium:03000000020008F3 :06006100E4F508F509F5C5 :030067000AF50B8C :03006A000200038E :0500030012007780FEF1 :0A006D00AA828A9074FF6AF5B0229F :05007700E4F50CF50D9D :0A007C00C3E50C94FFE50D648094C9 :0B008600805026AA0C74022AF582129A :06009100006D0508E4B556 :05009700080C0509B58D :05009C000907050AB58B :0400A1000A02050B3F :0700A500050CE4B50CD105C8 :0300AC000D80CDF7 :0700AF00E50824EAF508E56D :0600B6000934FFF509E525 :0600BC000A34FFF50AE51D :0700C2000B34FFF50B80AECB :06003700E478FFF6D8FD9D :080015007900E94400601B7A48 :05001D00009000CD7809 :030022000075A0C6 :0A00250000E493F2A308B8000205FE :08002F00A0D9F4DAF275A0FF7C :08003D007800E84400600A7934 :030045000075A0A3 :0600480000E4F309D8FCFE :08004E007800E84400600C7921 :0B00560000900000E4F0A3D8FCD9FAF1 :0300080075810DF2 :0A000B001200C9E582600302000341 :0400C900758200221A :00000001FF mcu8051ide-1.4.7/demo/demo5.asm0000644000175000017500000000142312067167647016536 0ustar milleniummillenium; Dissassebler ; -------------------- ; [Main menu] -> [Tools] -> [Dissasseble] ; Choose some hex file and see result ; Custom commands ; -------------------- ; They can be used for instance to load your program into a ; real processor. ; [Main menu] -> [Configure] -> [Edit cutom commands] ; [Main menu] -> [Tools] -> [Cutom command N] ; Tip of the day ; -------------------- ; You may find some useful advices how to use this ; IDE more efficiently ; [Main menu] -> [Help] -> [Tip of the day] ; Project web page: ; -------------------- ; http://mcu8051ide.sf.net ; AND NOW YOU ARE READY ! ; Click on [Main menu] -> [Project] -> [New] and create your own 8051 project ... ; !!! HAVE A GOOD LUCK WITH THIS IDE !!! org 0 sjmp $ end ; !!! HAVE A GOOD LUCK WITH THIS IDE !!! mcu8051ide-1.4.7/demo/keypad_display.hashes0000644000175000017500000000006512067167647021223 0ustar milleniummillenium250BC76DCCF444C4F982EB733E057F5E "keypad_display.c" mcu8051ide-1.4.7/demo/demo1.asm0000644000175000017500000000235212067167647016534 0ustar milleniummillenium; MCU 8051 IDE - Demonstration code ; Macro instructions, conditional compilation and constants ; Try tab "Graph" on bottom panel ; Press F2 and F6 to run the program (start simulator and animate) $TITLE('DEMO 2') ; Set title for code listing $DATE(11/29/1182) ; Set date for code listing (the 29th of November 1182, welcome back to the Medieval Era) ; Constant definitions ; -------------------- counter idata 00Fh ; Counter of Px shifts x set 100 ; Some variable inc_dec equ 100 / X ; Flag: Increment/Decrement counter cseg at 1FFh ; Code segment starts at 0x1FF something: db 4d ; Reserve 4 bytes in this segment ; Macro instructions ; -------------------- ;; Shift the given registers shift macro reg0, reg1 ; Increment / Decrement counter mov A, counter if inc_dec <> 0 inc A else dec A endif $nolist ; <- Disable code listing mov counter, A $list ; <- Enable code listing ; Shift mov reg1, reg0 mov reg0, reg1 setb C mov A, reg0 rl A mov reg0, A endm ; Program initialization ; -------------------- org 0h sjmp start ; Program start ; -------------------- start: mov P1, #00Fh mov P3, #01Eh sjmp main ; Main loop ; -------------------- main: shift P1, P3 sjmp main ; Program end ; -------------------- end mcu8051ide-1.4.7/demo/keypad_display.cdb0000644000175000017500000001733312067167647020506 0ustar milleniummilleniumM:keypad_display F:G$main$0$0({2}DF,SI:S),C,0,0,0,0,0 S:G$state$0$0({1}SC:S),E,0,0 S:G$row$0$0({2}SI:S),E,0,0 S:G$P0$0$0({1}SC:U),I,0,0 S:G$SP$0$0({1}SC:U),I,0,0 S:G$DPL$0$0({1}SC:U),I,0,0 S:G$DPH$0$0({1}SC:U),I,0,0 S:G$PCON$0$0({1}SC:U),I,0,0 S:G$TCON$0$0({1}SC:U),I,0,0 S:G$TMOD$0$0({1}SC:U),I,0,0 S:G$TL0$0$0({1}SC:U),I,0,0 S:G$TL1$0$0({1}SC:U),I,0,0 S:G$TH0$0$0({1}SC:U),I,0,0 S:G$TH1$0$0({1}SC:U),I,0,0 S:G$P1$0$0({1}SC:U),I,0,0 S:G$SCON$0$0({1}SC:U),I,0,0 S:G$SBUF$0$0({1}SC:U),I,0,0 S:G$P2$0$0({1}SC:U),I,0,0 S:G$IE$0$0({1}SC:U),I,0,0 S:G$P3$0$0({1}SC:U),I,0,0 S:G$IP$0$0({1}SC:U),I,0,0 S:G$PSW$0$0({1}SC:U),I,0,0 S:G$ACC$0$0({1}SC:U),I,0,0 S:G$B$0$0({1}SC:U),I,0,0 S:G$P0_0$0$0({1}SX:U),J,0,0 S:G$P0_1$0$0({1}SX:U),J,0,0 S:G$P0_2$0$0({1}SX:U),J,0,0 S:G$P0_3$0$0({1}SX:U),J,0,0 S:G$P0_4$0$0({1}SX:U),J,0,0 S:G$P0_5$0$0({1}SX:U),J,0,0 S:G$P0_6$0$0({1}SX:U),J,0,0 S:G$P0_7$0$0({1}SX:U),J,0,0 S:G$IT0$0$0({1}SX:U),J,0,0 S:G$IE0$0$0({1}SX:U),J,0,0 S:G$IT1$0$0({1}SX:U),J,0,0 S:G$IE1$0$0({1}SX:U),J,0,0 S:G$TR0$0$0({1}SX:U),J,0,0 S:G$TF0$0$0({1}SX:U),J,0,0 S:G$TR1$0$0({1}SX:U),J,0,0 S:G$TF1$0$0({1}SX:U),J,0,0 S:G$P1_0$0$0({1}SX:U),J,0,0 S:G$P1_1$0$0({1}SX:U),J,0,0 S:G$P1_2$0$0({1}SX:U),J,0,0 S:G$P1_3$0$0({1}SX:U),J,0,0 S:G$P1_4$0$0({1}SX:U),J,0,0 S:G$P1_5$0$0({1}SX:U),J,0,0 S:G$P1_6$0$0({1}SX:U),J,0,0 S:G$P1_7$0$0({1}SX:U),J,0,0 S:G$RI$0$0({1}SX:U),J,0,0 S:G$TI$0$0({1}SX:U),J,0,0 S:G$RB8$0$0({1}SX:U),J,0,0 S:G$TB8$0$0({1}SX:U),J,0,0 S:G$REN$0$0({1}SX:U),J,0,0 S:G$SM2$0$0({1}SX:U),J,0,0 S:G$SM1$0$0({1}SX:U),J,0,0 S:G$SM0$0$0({1}SX:U),J,0,0 S:G$P2_0$0$0({1}SX:U),J,0,0 S:G$P2_1$0$0({1}SX:U),J,0,0 S:G$P2_2$0$0({1}SX:U),J,0,0 S:G$P2_3$0$0({1}SX:U),J,0,0 S:G$P2_4$0$0({1}SX:U),J,0,0 S:G$P2_5$0$0({1}SX:U),J,0,0 S:G$P2_6$0$0({1}SX:U),J,0,0 S:G$P2_7$0$0({1}SX:U),J,0,0 S:G$EX0$0$0({1}SX:U),J,0,0 S:G$ET0$0$0({1}SX:U),J,0,0 S:G$EX1$0$0({1}SX:U),J,0,0 S:G$ET1$0$0({1}SX:U),J,0,0 S:G$ES$0$0({1}SX:U),J,0,0 S:G$EA$0$0({1}SX:U),J,0,0 S:G$P3_0$0$0({1}SX:U),J,0,0 S:G$P3_1$0$0({1}SX:U),J,0,0 S:G$P3_2$0$0({1}SX:U),J,0,0 S:G$P3_3$0$0({1}SX:U),J,0,0 S:G$P3_4$0$0({1}SX:U),J,0,0 S:G$P3_5$0$0({1}SX:U),J,0,0 S:G$P3_6$0$0({1}SX:U),J,0,0 S:G$P3_7$0$0({1}SX:U),J,0,0 S:G$RXD$0$0({1}SX:U),J,0,0 S:G$TXD$0$0({1}SX:U),J,0,0 S:G$INT0$0$0({1}SX:U),J,0,0 S:G$INT1$0$0({1}SX:U),J,0,0 S:G$T0$0$0({1}SX:U),J,0,0 S:G$T1$0$0({1}SX:U),J,0,0 S:G$WR$0$0({1}SX:U),J,0,0 S:G$RD$0$0({1}SX:U),J,0,0 S:G$PX0$0$0({1}SX:U),J,0,0 S:G$PT0$0$0({1}SX:U),J,0,0 S:G$PX1$0$0({1}SX:U),J,0,0 S:G$PT1$0$0({1}SX:U),J,0,0 S:G$PS$0$0({1}SX:U),J,0,0 S:G$P$0$0({1}SX:U),J,0,0 S:G$F1$0$0({1}SX:U),J,0,0 S:G$OV$0$0({1}SX:U),J,0,0 S:G$RS0$0$0({1}SX:U),J,0,0 S:G$RS1$0$0({1}SX:U),J,0,0 S:G$F0$0$0({1}SX:U),J,0,0 S:G$AC$0$0({1}SX:U),J,0,0 S:G$CY$0$0({1}SX:U),J,0,0 S:G$main$0$0({2}DF,SI:S),C,0,0 S:Fkeypad_display$keypad$0$0({4}DA4,SC:S),D,0,0 S:Fkeypad_display$display_0$0$0({4}DA4,SC:S),D,0,0 S:Fkeypad_display$display_1$0$0({4}DA4,SC:S),D,0,0 S:Fkeypad_display$display_2$0$0({4}DA4,SC:S),D,0,0 S:Fkeypad_display$display_3$0$0({4}DA4,SC:S),D,0,0 L:G$P0$0$0:80 L:G$P0_0$0$0:80 L:G$P0_1$0$0:81 L:G$SP$0$0:81 L:G$DPL$0$0:82 L:G$P0_2$0$0:82 L:G$DPH$0$0:83 L:G$P0_3$0$0:83 L:G$P0_4$0$0:84 L:G$P0_5$0$0:85 L:G$P0_6$0$0:86 L:G$P0_7$0$0:87 L:G$PCON$0$0:87 L:G$IT0$0$0:88 L:G$TCON$0$0:88 L:G$IE0$0$0:89 L:G$TMOD$0$0:89 L:G$IT1$0$0:8A L:G$TL0$0$0:8A L:G$IE1$0$0:8B L:G$TL1$0$0:8B L:G$TH0$0$0:8C L:G$TR0$0$0:8C L:G$TF0$0$0:8D L:G$TH1$0$0:8D L:G$TR1$0$0:8E L:G$TF1$0$0:8F L:G$P1$0$0:90 L:G$P1_0$0$0:90 L:G$P1_1$0$0:91 L:G$P1_2$0$0:92 L:G$P1_3$0$0:93 L:G$P1_4$0$0:94 L:G$P1_5$0$0:95 L:G$P1_6$0$0:96 L:G$P1_7$0$0:97 L:G$RI$0$0:98 L:G$SCON$0$0:98 L:G$SBUF$0$0:99 L:G$TI$0$0:99 L:G$RB8$0$0:9A L:G$TB8$0$0:9B L:G$REN$0$0:9C L:G$SM2$0$0:9D L:G$SM1$0$0:9E L:G$SM0$0$0:9F L:G$P2$0$0:A0 L:G$P2_0$0$0:A0 L:G$P2_1$0$0:A1 L:G$P2_2$0$0:A2 L:G$P2_3$0$0:A3 L:G$P2_4$0$0:A4 L:G$P2_5$0$0:A5 L:G$P2_6$0$0:A6 L:G$P2_7$0$0:A7 L:G$EX0$0$0:A8 L:G$IE$0$0:A8 L:G$ET0$0$0:A9 L:G$EX1$0$0:AA L:G$ET1$0$0:AB L:G$ES$0$0:AC L:G$EA$0$0:AF L:G$P3$0$0:B0 L:G$P3_0$0$0:B0 L:G$RXD$0$0:B0 L:G$P3_1$0$0:B1 L:G$TXD$0$0:B1 L:G$INT0$0$0:B2 L:G$P3_2$0$0:B2 L:G$INT1$0$0:B3 L:G$P3_3$0$0:B3 L:G$P3_4$0$0:B4 L:G$T0$0$0:B4 L:G$P3_5$0$0:B5 L:G$T1$0$0:B5 L:G$P3_6$0$0:B6 L:G$WR$0$0:B6 L:G$P3_7$0$0:B7 L:G$RD$0$0:B7 L:G$IP$0$0:B8 L:G$PX0$0$0:B8 L:G$PT0$0$0:B9 L:G$PX1$0$0:BA L:G$PT1$0$0:BB L:G$PS$0$0:BC L:G$P$0$0:D0 L:G$PSW$0$0:D0 L:G$F1$0$0:D1 L:G$OV$0$0:D2 L:G$RS0$0$0:D3 L:G$RS1$0$0:D4 L:G$F0$0$0:D5 L:G$AC$0$0:D6 L:G$CY$0$0:D7 L:G$ACC$0$0:E0 L:G$B$0$0:F0 L:G$state$0$0:8 L:G$row$0$0:9 L:A$keypad_display$381:0 L:A$keypad_display$403:3 L:A$keypad_display$405:6 L:A$keypad_display$396:61 L:A$keypad_display$434:64 L:C$keypad_display.c$38$0$0:64 L:C$keypad_display.c$40$1$1:64 L:G$main$0$0:64 L:A$keypad_display$435:65 L:A$keypad_display$436:67 L:A$keypad_display$438:69 L:A$keypad_display$439:6A L:A$keypad_display$440:6C L:A$keypad_display$441:6E L:A$keypad_display$442:70 L:A$keypad_display$443:72 L:A$keypad_display$444:74 L:A$keypad_display$447:76 L:C$keypad_display.c$42$3$3:76 L:A$keypad_display$448:78 L:A$keypad_display$449:7A L:A$keypad_display$450:7C L:A$keypad_display$451:7E L:A$keypad_display$452:80 L:A$keypad_display$453:82 L:A$keypad_display$454:83 L:A$keypad_display$455:84 L:A$keypad_display$459:86 L:C$keypad_display.c$48$3$3:86 L:A$keypad_display$463:89 L:C$keypad_display.c$53$3$3:89 L:A$keypad_display$466:8C L:C$keypad_display.c$54$3$3:8C L:A$keypad_display$469:8F L:C$keypad_display.c$56$3$3:8F L:A$keypad_display$470:91 L:A$keypad_display$473:94 L:C$keypad_display.c$57$4$4:94 L:A$keypad_display$474:97 L:A$keypad_display$478:99 L:C$keypad_display.c$58$3$3:99 L:A$keypad_display$479:9B L:A$keypad_display$482:9E L:C$keypad_display.c$59$4$5:9E L:A$keypad_display$483:A1 L:A$keypad_display$487:A3 L:C$keypad_display.c$60$3$3:A3 L:A$keypad_display$488:A5 L:A$keypad_display$491:A8 L:C$keypad_display.c$61$4$6:A8 L:A$keypad_display$492:AB L:A$keypad_display$496:AD L:C$keypad_display.c$62$3$3:AD L:A$keypad_display$497:AF L:A$keypad_display$498:B2 L:A$keypad_display$502:B5 L:C$keypad_display.c$63$4$7:B5 L:A$keypad_display$508:B8 L:C$keypad_display.c$65$3$3:B8 L:C$keypad_display.c$68$3$3:B8 L:A$keypad_display$509:B9 L:A$keypad_display$510:BC L:A$keypad_display$511:BD L:A$keypad_display$512:C0 L:A$keypad_display$514:C2 L:A$keypad_display$515:C4 L:A$keypad_display$516:C7 L:A$keypad_display$517:C8 L:A$keypad_display$518:CB L:A$keypad_display$520:CD L:A$keypad_display$521:CF L:A$keypad_display$522:D2 L:A$keypad_display$523:D3 L:A$keypad_display$524:D6 L:A$keypad_display$526:D8 L:A$keypad_display$527:DA L:A$keypad_display$528:DD L:A$keypad_display$529:DE L:A$keypad_display$530:E1 L:A$keypad_display$534:E3 L:C$keypad_display.c$69$4$9:E3 L:A$keypad_display$538:E5 L:C$keypad_display.c$70$4$9:E5 L:A$keypad_display$539:E7 L:A$keypad_display$540:EA L:A$keypad_display$541:EB L:A$keypad_display$546:ED L:C$keypad_display.c$71$4$9:ED L:C$keypad_display.c$72$4$9:ED L:A$keypad_display$550:EF L:C$keypad_display.c$73$4$9:EF L:A$keypad_display$551:F1 L:A$keypad_display$552:F4 L:A$keypad_display$553:F5 L:A$keypad_display$558:F7 L:C$keypad_display.c$74$4$9:F7 L:C$keypad_display.c$75$4$9:F7 L:A$keypad_display$562:F9 L:C$keypad_display.c$76$4$9:F9 L:A$keypad_display$563:FB L:A$keypad_display$564:FE L:A$keypad_display$565:FF L:A$keypad_display$570:101 L:C$keypad_display.c$77$4$9:101 L:C$keypad_display.c$78$4$9:101 L:A$keypad_display$574:103 L:C$keypad_display.c$79$4$9:103 L:A$keypad_display$575:105 L:A$keypad_display$576:108 L:A$keypad_display$577:109 L:A$keypad_display$583:10B L:C$keypad_display.c$41$2$2:10B L:C$keypad_display.c$81$2$2:10B L:A$keypad_display$584:10D L:A$keypad_display$585:10E L:A$keypad_display$586:111 L:A$keypad_display$590:113 L:C$keypad_display.c$84$1$1:113 L:XG$main$0$0:113 L:Fkeypad_display$keypad$0$0:11A L:Fkeypad_display$display_0$0$0:11E L:Fkeypad_display$display_1$0$0:122 L:Fkeypad_display$display_2$0$0:126 L:Fkeypad_display$display_3$0$0:12A mcu8051ide-1.4.7/demo/mleddisplay.adf0000644000175000017500000000133112067167647020004 0ustar milleniummillenium# Assembler debug file for MCU 8051 IDE v1.4.7 # Used assembler: MCU 8051 IDE # Date: 12/28/2012 8BF7EBDCE29A2FCF7D73079108BBAD39 "mleddisplay.asm" 0 37 0 2 0 37 0 51 3 6 0 52 4 182 10 9 0 54 7 118 0 0 55 9 8 0 56 10 184 36 1 0 57 13 34 0 58 14 17 3 0 60 16 34 0 72 17 24 0 73 18 229 240 0 74 20 3 0 75 21 245 240 0 79 23 230 0 80 24 147 0 83 25 117 176 255 0 84 28 245 144 0 85 30 133 240 176 0 88 33 184 32 237 0 89 36 34 0 96 37 117 32 0 0 97 40 117 33 0 0 98 43 117 34 0 0 99 46 117 35 0 0 102 49 117 240 238 0 104 52 144 0 65 0 112 55 120 36 0 113 57 17 17 0 116 59 120 32 0 117 61 17 3 0 120 63 128 246 0 21 65 192 0 22 66 249 0 23 67 164 0 24 68 176 0 25 69 153 0 26 70 146 0 27 71 130 0 28 72 248 0 29 73 128 0 30 74 144mcu8051ide-1.4.7/demo/demo2.adf0000644000175000017500000000136312067167647016510 0ustar milleniummillenium# Assembler debug file for MCU 8051 IDE v1.4.7 # Used assembler: MCU 8051 IDE # Date: 12/28/2012 37AFD8BE8D1F3D6436C93B0B9616E95A "demo2.asm" 0 47 0 128 28 0 50 11 128 0 0 56 13 127 26 0 57 15 126 0 0 58 17 238 0 58 18 144 0 208 0 58 21 147 0 58 22 141 130 0 58 24 240 0 58 25 13 0 58 26 14 0 59 27 223 244 0 60 29 50 0 65 30 125 0 0 66 32 117 168 255 0 67 35 117 138 255 0 68 38 117 137 3 0 69 41 210 140 0 70 43 128 0 0 74 45 128 254 0 28 208 87 0 28 209 101 0 28 210 108 0 28 211 99 0 28 212 111 0 28 213 109 0 28 214 101 0 28 215 32 0 28 216 105 0 28 217 110 0 28 218 32 0 28 219 77 0 28 220 67 0 28 221 85 0 28 222 32 0 28 223 56 0 28 224 48 0 28 225 53 0 28 226 49 0 28 227 32 0 28 228 73 0 28 229 68 0 28 230 69 0 28 231 32 0 28 232 33 0 28 233 32mcu8051ide-1.4.7/demo/demo2.asm0000644000175000017500000000317712067167647016543 0ustar milleniummillenium; MCU 8051 IDE - Demonstration code ; Interrupts, hexadecimal editor and code validator ; ------------------------------------------------------ ; THIS REQUIRES ANOTHER MCU THAN AT89C2051 BECAUSE ; AT89C2051 HAS NO XDATA MENORY. CLICK ON ; [Main menu] -> [Project] -> [Edit project] AND SELECT ; FOR INSTANCE AT89C51 AND SET XDATA TO SOME VALUE ; ------------------------------------------------------ ; * Click on [Main menu] -> [Simulator] -> [Show XDATA memory] ; * Press F2 and F6 (start simulator and animate) ; Code with syntax errors nolist ; Disable code listing if 0 mov A, #55d, B ; too many operands inc 0FFh,, 04x4h ; invalid operands db (4 *** 5) ; invalid expression label?: mul B ; invalid label and invalid operand endif list ; Enable code listing ; Constants ; -------------------- cseg at 0D0h string: db 'Welcome in MCU 8051 IDE ! ' string_legth equ 26d ; Macro instructions ; -------------------- write_to_xdata macro str, code_ptr, xdata_ptr mov A, code_ptr mov DPTR, #str movc A, @A+DPTR mov DPL, xdata_ptr movx @DPTR, A inc xdata_ptr inc code_ptr endm ; Program initialization ; -------------------- org 0h ; Reset vector sjmp start org 0Bh ; Interrupt vector - T0 sjmp T0_int ; Sub-programs ; -------------------- ;; Handle interrupt from TF0 T0_int: mov R7, #string_legth mov R6, #0h loop: write_to_xdata string, R6, R5 djnz R7, loop reti ; Program start ; -------------------- start: ; Start timer 0 in mode 2 mov R5, #0h mov IE, #0FFh mov TL0, #255d mov TMOD, #03h setb TR0 sjmp main ; Main loop ; -------------------- main: sjmp $ ; Infinite loop ; Program end ; -------------------- end mcu8051ide-1.4.7/demo/ledmatrix.c0000644000175000017500000000212512067167647017160 0ustar milleniummillenium/** * Demonstration code for MCU 8051 IDE * * Virtual HW and C language * Requires MCU AT89C51 or similar ( [Project] -> [Edit project] -> [Select MCU] ) * @file demo_c_0.c */ // Create virtual LED matrix and load configuration file "ledmatrix.vhc" // [Virtual HW] -> [LED Matrix] // To compile the code press F11 (This code is precompiled) // To start simulator press F2 // To simulate the program press F6 (animate) or F7 (step) or F8 (step over) or F9 (run) // To save some time you can use program hibernation function // [Simulator] -> [Resume hibernated program] and select "ledmatrix.m5hib" #include static const char image[] = { 0xb1, 0x9d, 0xbd, 0xb1, 0xb7, 0xb7, 0x11, 0xff }; int main() { int i; while(1) { for(i=0; i<8; i++) { P1 = 0xff; P0 = image[i]; P1 = (1 << i) ^ 255; } } } // Note: Sometimes people wonder how it is possible to // write a program for MCU in C language. So please // study this code or SDCC manual or another documents. // And please do not ask me silly questions ... :) // By the way my email is mcu8051ide-1.4.7/demo/LCD.lst0000644000175000017500000003764312067167647016166 0ustar milleniummilleniumLCD PAGE 1 1 ; Very basic demonstration example for HD44780 simulator 2 ; * Click on "Virtual HW" in the main menu, 3 ; * choose "Open", 4 ; * change filter to VH Component, 5 ; * open "LCD.vhc", 6 ; * press F2, 7 ; * press F6, 8 ; * enjoy ... :-) 9 ; * press F2 to end. 10 ; 11 ; Note: simulated delays are skipped in this example. 12 ; 13 org 0 0000 02001C 14 jmp start 15 00B0 16 RS bit P3.0 00B1 17 RW bit P3.1 00B2 18 E bit P3.2 0090 19 D equ P1 20 21 cmd macro cmd_code 22 setb E 23 mov D, cmd_code 24 clr E 25 endm 26 0003 57656C636F 27 string: db 'Welcome to MCU 8051 IDE!\0' 6D6520746F 204D435520 3830353120 4944452100 28 001C 759000 29 start: mov D, #0 001F C2B1 30 clr RW 0021 900003 31 mov DPTR, #string 32 0024 C2B0 33 main: clr RS 34 +1 cmd #00000001b ; Clear display 0026 D2B2 35 +1 setb e 0028 759001 36 +1 mov d , #00000001b 002B C2B2 37 +1 clr e 38 +1 cmd #00000010b ; Cursor home 002D D2B2 39 +1 setb e 002F 759002 40 +1 mov d , #00000010b 0032 C2B2 41 +1 clr e 42 +1 cmd #00000110b ; Entry mode set 0034 D2B2 43 +1 setb e 0036 759006 44 +1 mov d , #00000110b 0039 C2B2 45 +1 clr e 46 +1 cmd #00001111b ; Display ON/OFF control 003B D2B2 47 +1 setb e 003D 75900F 48 +1 mov d , #00001111b 0040 C2B2 49 +1 clr e 50 +1 cmd #00011110b ; Cursor/display shift 0042 D2B2 51 +1 setb e 0044 75901E 52 +1 mov d , #00011110b 0047 C2B2 53 +1 clr e 54 +1 cmd #00111100b ; Function set 0049 D2B2 55 +1 setb e 004B 75903C 56 +1 mov d , #00111100b 004E C2B2 57 +1 clr e 58 +1 cmd #10000001b ; Set DDRAM address 0050 D2B2 59 +1 setb e 0052 759081 60 +1 mov d , #10000001b 0055 C2B2 61 +1 clr e 62 63 ; Print the string ... 0057 D2B0 64 setb RS 0059 7800 65 mov R0, #0 005B E8 66 print: mov A, R0 005C 08 67 inc R0 005D 93 68 movc A, @A+DPTR 69 +1 cmd A 005E D2B2 70 +1 setb e 0060 F590 71 +1 mov d , A 0062 C2B2 72 +1 clr e 0064 B400F4 73 cjne A, #0, print 0067 80BB 74 sjmp main 75 76 end ASSEMBLY COMPLETE, NO ERRORS FOUND, NO WARNINGS SYMBOL TABLE: ??MCU_8051_IDE . . . . . . . . . . . N NUMB 8051H NOT USED ??VERSION. . . . . . . . . . . . . . N NUMB 0147H NOT USED AC . . . . . . . . . . . . . . . . . B ADDR 00D6H NOT USED ACC. . . . . . . . . . . . . . . . . D ADDR 00E0H NOT USED ACSR . . . . . . . . . . . . . . . . D ADDR 0097H NOT USED ADCF . . . . . . . . . . . . . . . . D ADDR 00F6H NOT USED ADCLK. . . . . . . . . . . . . . . . D ADDR 00F2H NOT USED ADCON. . . . . . . . . . . . . . . . D ADDR 00F3H NOT USED ADDH . . . . . . . . . . . . . . . . D ADDR 00F5H NOT USED ADDL . . . . . . . . . . . . . . . . D ADDR 00F4H NOT USED AUXR . . . . . . . . . . . . . . . . D ADDR 008EH NOT USED AUXR1. . . . . . . . . . . . . . . . D ADDR 00A2H NOT USED B. . . . . . . . . . . . . . . . . . D ADDR 00F0H NOT USED BDRCON . . . . . . . . . . . . . . . D ADDR 009BH NOT USED BDRCON_1 . . . . . . . . . . . . . . D ADDR 009CH NOT USED BRL. . . . . . . . . . . . . . . . . D ADDR 009AH NOT USED CCAP0H . . . . . . . . . . . . . . . D ADDR 00FAH NOT USED CCAP0L . . . . . . . . . . . . . . . D ADDR 00EAH NOT USED CCAP1H . . . . . . . . . . . . . . . D ADDR 00FBH NOT USED CCAP1L . . . . . . . . . . . . . . . D ADDR 00EBH NOT USED CCAP2H . . . . . . . . . . . . . . . D ADDR 00FCH NOT USED CCAP3H . . . . . . . . . . . . . . . D ADDR 00FDH NOT USED CCAP4H . . . . . . . . . . . . . . . D ADDR 00FEH NOT USED CCAPL2H. . . . . . . . . . . . . . . D ADDR 00FCH NOT USED CCAPL2L. . . . . . . . . . . . . . . D ADDR 00ECH NOT USED CCAPL3H. . . . . . . . . . . . . . . D ADDR 00FDH NOT USED CCAPL3L. . . . . . . . . . . . . . . D ADDR 00EDH NOT USED CCAPL4H. . . . . . . . . . . . . . . D ADDR 00FEH NOT USED CCAPL4L. . . . . . . . . . . . . . . D ADDR 00EEH NOT USED CCAPM0 . . . . . . . . . . . . . . . D ADDR 00DAH NOT USED CCAPM1 . . . . . . . . . . . . . . . D ADDR 00DBH NOT USED CCAPM2 . . . . . . . . . . . . . . . D ADDR 00DCH NOT USED CCAPM3 . . . . . . . . . . . . . . . D ADDR 00DDH NOT USED CCAPM4 . . . . . . . . . . . . . . . D ADDR 00DEH NOT USED CCF0 . . . . . . . . . . . . . . . . B ADDR 00D8H NOT USED CCF1 . . . . . . . . . . . . . . . . B ADDR 00D9H NOT USED CCF2 . . . . . . . . . . . . . . . . B ADDR 00DAH NOT USED CCF3 . . . . . . . . . . . . . . . . B ADDR 00DBH NOT USED CCF4 . . . . . . . . . . . . . . . . B ADDR 00DCH NOT USED CCON . . . . . . . . . . . . . . . . D ADDR 00D8H NOT USED CFINT. . . . . . . . . . . . . . . . C ADDR 0033H NOT USED CH . . . . . . . . . . . . . . . . . D ADDR 00F9H NOT USED CKCON. . . . . . . . . . . . . . . . D ADDR 008FH NOT USED CKCON0 . . . . . . . . . . . . . . . D ADDR 008FH NOT USED CKRL . . . . . . . . . . . . . . . . D ADDR 0097H NOT USED CKSEL. . . . . . . . . . . . . . . . D ADDR 0085H NOT USED CL . . . . . . . . . . . . . . . . . D ADDR 00E9H NOT USED CLKREG . . . . . . . . . . . . . . . D ADDR 008FH NOT USED CMOD . . . . . . . . . . . . . . . . D ADDR 00D9H NOT USED CPRL2. . . . . . . . . . . . . . . . B ADDR 00C8H NOT USED CR . . . . . . . . . . . . . . . . . B ADDR 00DEH NOT USED CT2. . . . . . . . . . . . . . . . . B ADDR 00C9H NOT USED CY . . . . . . . . . . . . . . . . . B ADDR 00D7H NOT USED D. . . . . . . . . . . . . . . . . . N NUMB 0090H DP0H . . . . . . . . . . . . . . . . D ADDR 0083H NOT USED DP0L . . . . . . . . . . . . . . . . D ADDR 0082H NOT USED DP1H . . . . . . . . . . . . . . . . D ADDR 0085H NOT USED DP1L . . . . . . . . . . . . . . . . D ADDR 0084H NOT USED DPH. . . . . . . . . . . . . . . . . D ADDR 0083H NOT USED DPL. . . . . . . . . . . . . . . . . D ADDR 0082H NOT USED E. . . . . . . . . . . . . . . . . . B ADDR 00B2H EA . . . . . . . . . . . . . . . . . B ADDR 00AFH NOT USED EC . . . . . . . . . . . . . . . . . B ADDR 00AEH NOT USED EECON. . . . . . . . . . . . . . . . D ADDR 0096H NOT USED ES . . . . . . . . . . . . . . . . . B ADDR 00ACH NOT USED ET0. . . . . . . . . . . . . . . . . B ADDR 00A9H NOT USED ET1. . . . . . . . . . . . . . . . . B ADDR 00ABH NOT USED ET2. . . . . . . . . . . . . . . . . B ADDR 00ADH NOT USED EX0. . . . . . . . . . . . . . . . . B ADDR 00A8H NOT USED EX1. . . . . . . . . . . . . . . . . B ADDR 00AAH NOT USED EXEN2. . . . . . . . . . . . . . . . B ADDR 00CBH NOT USED EXF2 . . . . . . . . . . . . . . . . B ADDR 00CEH NOT USED EXTI0. . . . . . . . . . . . . . . . C ADDR 0003H NOT USED EXTI1. . . . . . . . . . . . . . . . C ADDR 0013H NOT USED F0 . . . . . . . . . . . . . . . . . B ADDR 00D5H NOT USED FE . . . . . . . . . . . . . . . . . B ADDR 009FH NOT USED IE . . . . . . . . . . . . . . . . . D ADDR 00A8H NOT USED IE0. . . . . . . . . . . . . . . . . B ADDR 0089H NOT USED IE1. . . . . . . . . . . . . . . . . B ADDR 008BH NOT USED INT0 . . . . . . . . . . . . . . . . B ADDR 00B2H NOT USED INT1 . . . . . . . . . . . . . . . . B ADDR 00B3H NOT USED IP . . . . . . . . . . . . . . . . . D ADDR 00B8H NOT USED IPH. . . . . . . . . . . . . . . . . D ADDR 00B7H NOT USED IPH0 . . . . . . . . . . . . . . . . D ADDR 00B7H NOT USED IPH1 . . . . . . . . . . . . . . . . D ADDR 00B3H NOT USED IPL0 . . . . . . . . . . . . . . . . D ADDR 00B8H NOT USED IPL1 . . . . . . . . . . . . . . . . D ADDR 00B2H NOT USED IT0. . . . . . . . . . . . . . . . . B ADDR 0088H NOT USED IT1. . . . . . . . . . . . . . . . . B ADDR 008AH NOT USED KBE. . . . . . . . . . . . . . . . . D ADDR 009DH NOT USED KBF. . . . . . . . . . . . . . . . . D ADDR 009EH NOT USED KBLS . . . . . . . . . . . . . . . . D ADDR 009CH NOT USED MAIN . . . . . . . . . . . . . . . . C ADDR 0024H OSCCON . . . . . . . . . . . . . . . D ADDR 0086H NOT USED OV . . . . . . . . . . . . . . . . . B ADDR 00D2H NOT USED P. . . . . . . . . . . . . . . . . . B ADDR 00D0H NOT USED P0 . . . . . . . . . . . . . . . . . D ADDR 0080H NOT USED P1 . . . . . . . . . . . . . . . . . D ADDR 0090H NOT USED P1M1 . . . . . . . . . . . . . . . . D ADDR 00D4H NOT USED P1M2 . . . . . . . . . . . . . . . . D ADDR 00E2H NOT USED P2 . . . . . . . . . . . . . . . . . D ADDR 00A0H NOT USED P3 . . . . . . . . . . . . . . . . . D ADDR 00B0H NOT USED P3M1 . . . . . . . . . . . . . . . . D ADDR 00D5H NOT USED P3M2 . . . . . . . . . . . . . . . . D ADDR 00E3H NOT USED P4 . . . . . . . . . . . . . . . . . D ADDR 00C0H NOT USED P4M1 . . . . . . . . . . . . . . . . D ADDR 00D6H NOT USED P4M2 . . . . . . . . . . . . . . . . D ADDR 00E4H NOT USED P5 . . . . . . . . . . . . . . . . . D ADDR 00E8H NOT USED PC . . . . . . . . . . . . . . . . . B ADDR 00BEH NOT USED PCON . . . . . . . . . . . . . . . . D ADDR 0087H NOT USED PPCL . . . . . . . . . . . . . . . . B ADDR 00BEH NOT USED PRINT. . . . . . . . . . . . . . . . C ADDR 005BH PS . . . . . . . . . . . . . . . . . B ADDR 00BCH NOT USED PSL. . . . . . . . . . . . . . . . . B ADDR 00BCH NOT USED PSW. . . . . . . . . . . . . . . . . D ADDR 00D0H NOT USED PT0. . . . . . . . . . . . . . . . . B ADDR 00B9H NOT USED PT0L . . . . . . . . . . . . . . . . B ADDR 00B9H NOT USED PT1. . . . . . . . . . . . . . . . . B ADDR 00BBH NOT USED PT1L . . . . . . . . . . . . . . . . B ADDR 00BBH NOT USED PT2. . . . . . . . . . . . . . . . . B ADDR 00BDH NOT USED PT2L . . . . . . . . . . . . . . . . B ADDR 00BDH NOT USED PX0. . . . . . . . . . . . . . . . . B ADDR 00B8H NOT USED PX0L . . . . . . . . . . . . . . . . B ADDR 00B8H NOT USED PX1. . . . . . . . . . . . . . . . . B ADDR 00BAH NOT USED PX1L . . . . . . . . . . . . . . . . B ADDR 00BAH NOT USED RB8. . . . . . . . . . . . . . . . . B ADDR 009AH NOT USED RCAP2H . . . . . . . . . . . . . . . D ADDR 00CBH NOT USED RCAP2L . . . . . . . . . . . . . . . D ADDR 00CAH NOT USED RCLK . . . . . . . . . . . . . . . . B ADDR 00CDH NOT USED RD . . . . . . . . . . . . . . . . . B ADDR 00B7H NOT USED REN. . . . . . . . . . . . . . . . . B ADDR 009CH NOT USED RESET. . . . . . . . . . . . . . . . C ADDR 0000H NOT USED RI . . . . . . . . . . . . . . . . . B ADDR 0098H NOT USED RS . . . . . . . . . . . . . . . . . B ADDR 00B0H RS0. . . . . . . . . . . . . . . . . B ADDR 00D3H NOT USED RS1. . . . . . . . . . . . . . . . . B ADDR 00D4H NOT USED RW . . . . . . . . . . . . . . . . . B ADDR 00B1H RXD. . . . . . . . . . . . . . . . . B ADDR 00B0H NOT USED SADDR. . . . . . . . . . . . . . . . D ADDR 00A9H NOT USED SADDR_0. . . . . . . . . . . . . . . D ADDR 00A9H NOT USED SADDR_1. . . . . . . . . . . . . . . D ADDR 00AAH NOT USED SADEN. . . . . . . . . . . . . . . . D ADDR 00B9H NOT USED SADEN_0. . . . . . . . . . . . . . . D ADDR 00B9H NOT USED SADEN_1. . . . . . . . . . . . . . . D ADDR 00BAH NOT USED SBUF . . . . . . . . . . . . . . . . D ADDR 0099H NOT USED SCON . . . . . . . . . . . . . . . . D ADDR 0098H NOT USED SINT . . . . . . . . . . . . . . . . C ADDR 0023H NOT USED SM0. . . . . . . . . . . . . . . . . B ADDR 009FH NOT USED SM1. . . . . . . . . . . . . . . . . B ADDR 009EH NOT USED SM2. . . . . . . . . . . . . . . . . B ADDR 009DH NOT USED SP . . . . . . . . . . . . . . . . . D ADDR 0081H NOT USED SPCON. . . . . . . . . . . . . . . . D ADDR 00C3H NOT USED SPCR . . . . . . . . . . . . . . . . D ADDR 00D5H NOT USED SPDAT. . . . . . . . . . . . . . . . D ADDR 00C5H NOT USED SPDR . . . . . . . . . . . . . . . . D ADDR 0086H NOT USED SPSR . . . . . . . . . . . . . . . . D ADDR 00AAH NOT USED SPSTA. . . . . . . . . . . . . . . . D ADDR 00C4H NOT USED START. . . . . . . . . . . . . . . . C ADDR 001CH STRING . . . . . . . . . . . . . . . C ADDR 0003H T0 . . . . . . . . . . . . . . . . . B ADDR 00B4H NOT USED T1 . . . . . . . . . . . . . . . . . B ADDR 00B5H NOT USED T2CON. . . . . . . . . . . . . . . . D ADDR 00C8H NOT USED T2MOD. . . . . . . . . . . . . . . . D ADDR 00C9H NOT USED TB8. . . . . . . . . . . . . . . . . B ADDR 009BH NOT USED TCLK . . . . . . . . . . . . . . . . B ADDR 00CCH NOT USED TCON . . . . . . . . . . . . . . . . D ADDR 0088H NOT USED TF0. . . . . . . . . . . . . . . . . B ADDR 008DH NOT USED TF1. . . . . . . . . . . . . . . . . B ADDR 008FH NOT USED TF2. . . . . . . . . . . . . . . . . B ADDR 00CFH NOT USED TH0. . . . . . . . . . . . . . . . . D ADDR 008CH NOT USED TH1. . . . . . . . . . . . . . . . . D ADDR 008DH NOT USED TH2. . . . . . . . . . . . . . . . . D ADDR 00CDH NOT USED TI . . . . . . . . . . . . . . . . . B ADDR 0099H NOT USED TIMER0 . . . . . . . . . . . . . . . C ADDR 000BH NOT USED TIMER1 . . . . . . . . . . . . . . . C ADDR 001BH NOT USED TIMER2 . . . . . . . . . . . . . . . C ADDR 002BH NOT USED TL0. . . . . . . . . . . . . . . . . D ADDR 008AH NOT USED TL1. . . . . . . . . . . . . . . . . D ADDR 008BH NOT USED TL2. . . . . . . . . . . . . . . . . D ADDR 00CCH NOT USED TMOD . . . . . . . . . . . . . . . . D ADDR 0089H NOT USED TR0. . . . . . . . . . . . . . . . . B ADDR 008CH NOT USED TR1. . . . . . . . . . . . . . . . . B ADDR 008EH NOT USED TR2. . . . . . . . . . . . . . . . . B ADDR 00CAH NOT USED TXD. . . . . . . . . . . . . . . . . B ADDR 00B1H NOT USED WDTCON . . . . . . . . . . . . . . . D ADDR 00A7H NOT USED WDTPRG . . . . . . . . . . . . . . . D ADDR 00A7H NOT USED WDTRST . . . . . . . . . . . . . . . D ADDR 00A6H NOT USED WR . . . . . . . . . . . . . . . . . B ADDR 00B6H NOT USEDmcu8051ide-1.4.7/demo/demo3.adf0000644000175000017500000000031112067167647016501 0ustar milleniummillenium# Assembler debug file for MCU 8051 IDE v1.4.7 # Used assembler: MCU 8051 IDE # Date: 12/28/2012 5B8A70E1D6517500E2AE4F4FA5B98BC5 "demo3.asm" 0 67 0 128 254 0 35 32 51 0 35 33 52 0 36 34 51 0 36 35 52mcu8051ide-1.4.7/demo/demo4.adf0000644000175000017500000000133412067167647016510 0ustar milleniummillenium# Assembler debug file for MCU 8051 IDE v1.4.7 # Used assembler: MCU 8051 IDE # Date: 12/28/2012 7E1BFADD8BDB7A40D6B8CA5161E3113A "demo4.asm" 0 27 0 1 66 0 30 3 210 152 0 30 5 210 153 0 30 7 17 58 0 30 9 50 0 33 11 210 152 0 33 13 210 153 0 33 15 17 58 0 33 17 50 0 36 19 210 152 0 36 21 210 153 0 36 23 17 58 0 36 25 50 0 39 27 210 152 0 39 29 210 153 0 39 31 17 58 0 39 33 50 0 42 35 210 152 0 42 37 210 153 0 42 39 17 58 0 42 41 50 0 45 43 210 152 0 45 45 210 153 0 45 47 17 58 0 45 49 50 0 48 51 210 152 0 48 53 210 153 0 48 55 17 58 0 48 57 50 0 53 58 127 16 0 54 60 17 63 0 55 62 34 0 58 63 223 254 0 59 65 34 0 66 66 210 141 0 67 68 210 143 0 68 70 210 137 0 69 72 210 139 0 72 74 117 168 255 0 73 77 210 188 0 76 79 128 254mcu8051ide-1.4.7/demo/ledmatrix.cdb0000644000175000017500000001240112067167647017464 0ustar milleniummilleniumM:ledmatrix F:G$main$0$0({2}DF,SI:S),C,0,0,0,0,0 S:Lmain$i$1$1({2}SI:S),R,0,0,[r2,r3] S:G$P0$0$0({1}SC:U),I,0,0 S:G$SP$0$0({1}SC:U),I,0,0 S:G$DPL$0$0({1}SC:U),I,0,0 S:G$DPH$0$0({1}SC:U),I,0,0 S:G$PCON$0$0({1}SC:U),I,0,0 S:G$TCON$0$0({1}SC:U),I,0,0 S:G$TMOD$0$0({1}SC:U),I,0,0 S:G$TL0$0$0({1}SC:U),I,0,0 S:G$TL1$0$0({1}SC:U),I,0,0 S:G$TH0$0$0({1}SC:U),I,0,0 S:G$TH1$0$0({1}SC:U),I,0,0 S:G$P1$0$0({1}SC:U),I,0,0 S:G$SCON$0$0({1}SC:U),I,0,0 S:G$SBUF$0$0({1}SC:U),I,0,0 S:G$P2$0$0({1}SC:U),I,0,0 S:G$IE$0$0({1}SC:U),I,0,0 S:G$P3$0$0({1}SC:U),I,0,0 S:G$IP$0$0({1}SC:U),I,0,0 S:G$PSW$0$0({1}SC:U),I,0,0 S:G$ACC$0$0({1}SC:U),I,0,0 S:G$A$0$0({1}SC:U),I,0,0 S:G$B$0$0({1}SC:U),I,0,0 S:G$P0_0$0$0({1}SX:U),J,0,0 S:G$P0_1$0$0({1}SX:U),J,0,0 S:G$P0_2$0$0({1}SX:U),J,0,0 S:G$P0_3$0$0({1}SX:U),J,0,0 S:G$P0_4$0$0({1}SX:U),J,0,0 S:G$P0_5$0$0({1}SX:U),J,0,0 S:G$P0_6$0$0({1}SX:U),J,0,0 S:G$P0_7$0$0({1}SX:U),J,0,0 S:G$IT0$0$0({1}SX:U),J,0,0 S:G$IE0$0$0({1}SX:U),J,0,0 S:G$IT1$0$0({1}SX:U),J,0,0 S:G$IE1$0$0({1}SX:U),J,0,0 S:G$TR0$0$0({1}SX:U),J,0,0 S:G$TF0$0$0({1}SX:U),J,0,0 S:G$TR1$0$0({1}SX:U),J,0,0 S:G$TF1$0$0({1}SX:U),J,0,0 S:G$P1_0$0$0({1}SX:U),J,0,0 S:G$P1_1$0$0({1}SX:U),J,0,0 S:G$P1_2$0$0({1}SX:U),J,0,0 S:G$P1_3$0$0({1}SX:U),J,0,0 S:G$P1_4$0$0({1}SX:U),J,0,0 S:G$P1_5$0$0({1}SX:U),J,0,0 S:G$P1_6$0$0({1}SX:U),J,0,0 S:G$P1_7$0$0({1}SX:U),J,0,0 S:G$RI$0$0({1}SX:U),J,0,0 S:G$TI$0$0({1}SX:U),J,0,0 S:G$RB8$0$0({1}SX:U),J,0,0 S:G$TB8$0$0({1}SX:U),J,0,0 S:G$REN$0$0({1}SX:U),J,0,0 S:G$SM2$0$0({1}SX:U),J,0,0 S:G$SM1$0$0({1}SX:U),J,0,0 S:G$SM0$0$0({1}SX:U),J,0,0 S:G$P2_0$0$0({1}SX:U),J,0,0 S:G$P2_1$0$0({1}SX:U),J,0,0 S:G$P2_2$0$0({1}SX:U),J,0,0 S:G$P2_3$0$0({1}SX:U),J,0,0 S:G$P2_4$0$0({1}SX:U),J,0,0 S:G$P2_5$0$0({1}SX:U),J,0,0 S:G$P2_6$0$0({1}SX:U),J,0,0 S:G$P2_7$0$0({1}SX:U),J,0,0 S:G$EX0$0$0({1}SX:U),J,0,0 S:G$ET0$0$0({1}SX:U),J,0,0 S:G$EX1$0$0({1}SX:U),J,0,0 S:G$ET1$0$0({1}SX:U),J,0,0 S:G$ES$0$0({1}SX:U),J,0,0 S:G$EA$0$0({1}SX:U),J,0,0 S:G$P3_0$0$0({1}SX:U),J,0,0 S:G$P3_1$0$0({1}SX:U),J,0,0 S:G$P3_2$0$0({1}SX:U),J,0,0 S:G$P3_3$0$0({1}SX:U),J,0,0 S:G$P3_4$0$0({1}SX:U),J,0,0 S:G$P3_5$0$0({1}SX:U),J,0,0 S:G$P3_6$0$0({1}SX:U),J,0,0 S:G$P3_7$0$0({1}SX:U),J,0,0 S:G$RXD$0$0({1}SX:U),J,0,0 S:G$TXD$0$0({1}SX:U),J,0,0 S:G$INT0$0$0({1}SX:U),J,0,0 S:G$INT1$0$0({1}SX:U),J,0,0 S:G$T0$0$0({1}SX:U),J,0,0 S:G$T1$0$0({1}SX:U),J,0,0 S:G$WR$0$0({1}SX:U),J,0,0 S:G$RD$0$0({1}SX:U),J,0,0 S:G$PX0$0$0({1}SX:U),J,0,0 S:G$PT0$0$0({1}SX:U),J,0,0 S:G$PX1$0$0({1}SX:U),J,0,0 S:G$PT1$0$0({1}SX:U),J,0,0 S:G$PS$0$0({1}SX:U),J,0,0 S:G$P$0$0({1}SX:U),J,0,0 S:G$FL$0$0({1}SX:U),J,0,0 S:G$OV$0$0({1}SX:U),J,0,0 S:G$RS0$0$0({1}SX:U),J,0,0 S:G$RS1$0$0({1}SX:U),J,0,0 S:G$F0$0$0({1}SX:U),J,0,0 S:G$AC$0$0({1}SX:U),J,0,0 S:G$CY$0$0({1}SX:U),J,0,0 S:G$main$0$0({2}DF,SI:S),C,0,0 S:Fledmatrix$image$0$0({8}DA8,SC:S),D,0,0 L:G$P0$0$0:80 L:G$P0_0$0$0:80 L:G$P0_1$0$0:81 L:G$SP$0$0:81 L:G$DPL$0$0:82 L:G$P0_2$0$0:82 L:G$DPH$0$0:83 L:G$P0_3$0$0:83 L:G$P0_4$0$0:84 L:G$P0_5$0$0:85 L:G$P0_6$0$0:86 L:G$P0_7$0$0:87 L:G$PCON$0$0:87 L:G$IT0$0$0:88 L:G$TCON$0$0:88 L:G$IE0$0$0:89 L:G$TMOD$0$0:89 L:G$IT1$0$0:8A L:G$TL0$0$0:8A L:G$IE1$0$0:8B L:G$TL1$0$0:8B L:G$TH0$0$0:8C L:G$TR0$0$0:8C L:G$TF0$0$0:8D L:G$TH1$0$0:8D L:G$TR1$0$0:8E L:G$TF1$0$0:8F L:G$P1$0$0:90 L:G$P1_0$0$0:90 L:G$P1_1$0$0:91 L:G$P1_2$0$0:92 L:G$P1_3$0$0:93 L:G$P1_4$0$0:94 L:G$P1_5$0$0:95 L:G$P1_6$0$0:96 L:G$P1_7$0$0:97 L:G$RI$0$0:98 L:G$SCON$0$0:98 L:G$SBUF$0$0:99 L:G$TI$0$0:99 L:G$RB8$0$0:9A L:G$TB8$0$0:9B L:G$REN$0$0:9C L:G$SM2$0$0:9D L:G$SM1$0$0:9E L:G$SM0$0$0:9F L:G$P2$0$0:A0 L:G$P2_0$0$0:A0 L:G$P2_1$0$0:A1 L:G$P2_2$0$0:A2 L:G$P2_3$0$0:A3 L:G$P2_4$0$0:A4 L:G$P2_5$0$0:A5 L:G$P2_6$0$0:A6 L:G$P2_7$0$0:A7 L:G$EX0$0$0:A8 L:G$IE$0$0:A8 L:G$ET0$0$0:A9 L:G$EX1$0$0:AA L:G$ET1$0$0:AB L:G$ES$0$0:AC L:G$EA$0$0:AF L:G$P3$0$0:B0 L:G$P3_0$0$0:B0 L:G$RXD$0$0:B0 L:G$P3_1$0$0:B1 L:G$TXD$0$0:B1 L:G$INT0$0$0:B2 L:G$P3_2$0$0:B2 L:G$INT1$0$0:B3 L:G$P3_3$0$0:B3 L:G$P3_4$0$0:B4 L:G$T0$0$0:B4 L:G$P3_5$0$0:B5 L:G$T1$0$0:B5 L:G$P3_6$0$0:B6 L:G$WR$0$0:B6 L:G$P3_7$0$0:B7 L:G$RD$0$0:B7 L:G$IP$0$0:B8 L:G$PX0$0$0:B8 L:G$PT0$0$0:B9 L:G$PX1$0$0:BA L:G$PT1$0$0:BB L:G$PS$0$0:BC L:G$P$0$0:D0 L:G$PSW$0$0:D0 L:G$FL$0$0:D1 L:G$OV$0$0:D2 L:G$RS0$0$0:D3 L:G$RS1$0$0:D4 L:G$F0$0$0:D5 L:G$AC$0$0:D6 L:G$CY$0$0:D7 L:G$A$0$0:E0 L:G$ACC$0$0:E0 L:G$B$0$0:F0 L:A$ledmatrix$376:0 L:A$ledmatrix$398:3 L:A$ledmatrix$400:6 L:A$ledmatrix$391:61 L:A$ledmatrix$430:64 L:C$ledmatrix.c$27$0$0:64 L:C$ledmatrix.c$30$1$1:64 L:G$main$0$0:64 L:A$ledmatrix$431:66 L:A$ledmatrix$433:68 L:A$ledmatrix$434:69 L:A$ledmatrix$435:6A L:A$ledmatrix$436:6C L:A$ledmatrix$437:6D L:A$ledmatrix$438:6F L:A$ledmatrix$439:71 L:A$ledmatrix$442:73 L:C$ledmatrix.c$32$3$3:73 L:A$ledmatrix$445:76 L:C$ledmatrix.c$33$3$3:76 L:A$ledmatrix$446:77 L:A$ledmatrix$447:79 L:A$ledmatrix$448:7B L:A$ledmatrix$449:7C L:A$ledmatrix$450:7E L:A$ledmatrix$451:80 L:A$ledmatrix$452:81 L:A$ledmatrix$453:82 L:A$ledmatrix$456:84 L:C$ledmatrix.c$34$3$3:84 L:A$ledmatrix$457:86 L:A$ledmatrix$458:88 L:A$ledmatrix$459:8A L:A$ledmatrix$460:8C L:A$ledmatrix$462:8E L:A$ledmatrix$463:8F L:A$ledmatrix$464:90 L:A$ledmatrix$465:91 L:A$ledmatrix$466:92 L:A$ledmatrix$467:93 L:A$ledmatrix$469:94 L:A$ledmatrix$470:97 L:A$ledmatrix$471:99 L:A$ledmatrix$472:9A L:A$ledmatrix$475:9C L:C$ledmatrix.c$31$2$2:9C L:A$ledmatrix$476:9D L:A$ledmatrix$477:A0 L:A$ledmatrix$480:A1 L:C$ledmatrix.c$37$1$1:A1 L:XG$main$0$0:A1 L:Fledmatrix$image$0$0:A7 mcu8051ide-1.4.7/demo/demo3.asm0000644000175000017500000000552312067167647016541 0ustar milleniummillenium; MCU 8051 IDE - Demonstration code ; Compiler directives $DATE(32/13/1907)   ; Places date in page header ; $EJECT ; Places a form feed in listing ; $INCLUDE(file.asm) ; Inserts file in source program ; $LIST ; Allows listing to be output ; $NOLIST ; Stops outputting the listing ; $NOMOD ; No predefined symbols used $OBJECT(file.hex) ; Places object output in file ; $NOOBJECT ; No object file is generated $PAGING ; Break output listing into pages ; $NOPAGING ; Print listing w/o page breaks $PAGELENGTH(10) ; No. of lines on a listing page $PAGEWIDTH(20)    ; No. of columns on a listing page $PRINT(file.lst) ; Places listing output in file ; $NOPRINT ; Listing will not be output ; $SYMBOLS ; Append symbol table to listing ; $NOSYMBOLS ; Symbol table will not be output $TITLE('demo - 3') ; Places string in page header ;; Summary of Cross Assembler Directives ;; ------------------------------------- a EQU 54d ; Define symbol b0 DATA a / 2 ; Define internal memory symbol c IDATA (b0*2-5) ; Define indirectly addressed internal memory d BIT 070Q ; Define internal bit memory symbol e CODE 0FFA5h ; Define program memory symbol var SET (A * 44) MOD 9 - 14 ; Variable defined by an expression CSEG at 20h ; Select program memory space x: DB '34' ; Store byte values in program memory y: DW 3334h ; Store word values in program memory DSEG at 5d ; Select internal memory data space m: DS 1 ; Reserve bytes of data memory xseg ; Select external memory data space n: DS 1 ; Reserve bytes of data memory ISEG ; Select indirectly addressed internal memory space o: DS 1 ; Reserve bytes of data memory NOLIST ; Disable code listing BSEG ; Select bit addressable memory space r: DBIT 4 ; Reserve bits of bit memory LIST ; Enable code listing mc macro label ; Define macro instruction IF 2 <> 2 OR 1 = 4 EXITM ; Exit macro ENDIF sjmp label endm ; End of definition CSEG ; <-- From now on, ORG refers to the code segment main: ORG 0 ; Set segment location counter IF 0 ; Begin conditional assembly block USING 2 ; Select register bank (define AR0..7) ELSE ; Alternative conditional assembly block USING 2 ; Select register bank (define AR0..7) ENDIF ; End conditional assembly block mc main ; Macro instruction END ; End of assembly language source file ; This is a very long line, try to avoid them. This is a very long line, try to avoid them. This is a very long line, try to avoid them. This is a very long line, try to avoid them. This is a very long line, try to avoid them. This is a very long line, try to avoid them. This is a very long line, try to avoid them.This is a very long line, try to avoid them. This is a very long line, try to avoid them.This is a very long line, try to avoid them. This is a very long line, try to avoid them. This is a very long line, try to avoid them. This is a very long line, try to avoid them. mcu8051ide-1.4.7/demo/demo_c_0.hashes0000644000175000017500000000005712067167647017667 0ustar milleniummilleniumA958F84B552CBBD6CB8D8FA776FEB327 "demo_c_0.c" mcu8051ide-1.4.7/demo/demo4.asm0000644000175000017500000000214312067167647016535 0ustar milleniummillenium; MCU 8051 IDE - Demostration code ; Interrupt monitor and list of active subprograms ; 1) Press Ctrl+0 to show tab "List of subprograms" on righ panel ; 2) Run interrupt monitor ; (Main menu: Simulator -> Interrupt monitor) ; 3) Press F2 to start simulator and F6 to run animation mode ; Macro instructions ; ------------------ ;; Handle interrupt intr macro ; Set UART interrupt flags setb RI setb TI ; Wait a while and return from interrupt acall wait reti endm ; Interrupt vectors ; ----------------- org 00h ; Reset ajmp start org 03h ; External 0 intr org 0Bh ; Timer 0 intr org 13h ; External 0 intr org 1Bh ; Timer 1 intr org 23h ; UART and SPI intr org 2Bh ; Timer 2 intr org 33h ; Analog comparator intr ; Subprograms ; ----------------- wait: ; Wait for 24 cycles mov R7, #10h acall wait_aux ret wait_aux: djnz R7, $ ret ; Program start ; ----------------- start: ; Set some interrupt bits setb TF0 setb TF1 setb IE0 setb IE1 ; Enable all interrupts and set priorities mov IE, #0FFh setb PS ; Infinite loop sjmp $ ; End of code ; ----------------- end mcu8051ide-1.4.7/demo/demo1.adf0000644000175000017500000000055612067167647016512 0ustar milleniummillenium# Assembler debug file for MCU 8051 IDE v1.4.7 # Used assembler: MCU 8051 IDE # Date: 12/28/2012 2078A8D0F7F402380D20B396DE54ECD6 "demo1.asm" 0 48 0 128 0 0 52 2 117 144 15 0 53 5 117 176 30 0 54 8 128 0 0 58 10 229 15 0 58 12 4 0 58 13 245 15 0 58 15 133 144 176 0 58 18 133 176 144 0 58 21 211 0 58 22 229 144 0 58 24 35 0 58 25 245 144 0 59 27 128 237 0 17 511 4mcu8051ide-1.4.7/demo/demo5.hex0000644000175000017500000000003412067167647016537 0ustar milleniummillenium:0200000080FE80 :00000001FF mcu8051ide-1.4.7/demo/mleddisplay.asm0000644000175000017500000000503112067167647020033 0ustar milleniummillenium; Demonstration code for MCU 8051 IDE ; ; Load virtual HW from "mleddisplay.vhc" ; and press F2 and F6 ; ; It should increment 4 digit number displayed ; on multiplexed LED display ; ----------------------------------------------- ; CONSTANTS ; ----------------------------------------------- data_ptr data 20h ; Number to display data_len equ 4h ; Number of digits ;; Codes for 8-segment LED display ; They can be easily determinated with ; 8-segment editor ( [Main menu] - > ; [Utilities] -> [8-segment editor] ) numbers:db 11000000b ; 0 db 11111001b ; 1 db 10100100b ; 2 db 10110000b ; 3 db 10011001b ; 4 db 10010010b ; 5 db 10000010b ; 6 db 11111000b ; 7 db 10000000b ; 8 db 10010000b ; 9 ; ----------------------------------------------- ; VECTORS ; ----------------------------------------------- ; Reset vector org 0 jmp start ; ----------------------------------------------- ; SUBPROGRAMS ; ----------------------------------------------- ;; Increment the number ; ; R0 must be set to data_ptr before call ; ; Affected registers: R0 ; Interrupts: None ; Notes: Recursive sub-program inrement_number: inc @R0 cjne @R0, #0Ah, inc_num_end mov @R0, #0 inc R0 cjne R0, #data_ptr+data_len, $+4 ret call inrement_number inc_num_end: ret ;; Display the number on the LED display ; ; DPTR must point to table numbers ; R0 must contain (data_ptr+data_len) ; ; Affected registers: A, B, R0, P1, P3 ; Interrupts: None ; Notes: Uses DPTR display_number: ; Select digit to display dec R0 ; In uC mov A, B rr A mov B, A ; Translate the digit to binary ; representation for the LED display mov A, @R0 movc A, @A+DPTR ; Display the digit on the display mov P3, #0ffh mov P1, A mov P3, B ; Display next digit cjne R0, #data_ptr, display_number ret ; ----------------------------------------------- ; PROGRAM START ; ----------------------------------------------- start: ; Data to zeroes mov data_ptr+0, #0h ; left-most mov data_ptr+1, #0h mov data_ptr+2, #0h mov data_ptr+3, #0h ; right-most ; Address 1st number on the display mov B, #0EEh ; Initialize DPTR (Data PoinTeR) mov DPTR, #numbers ; ----------------------------------------------- ; MAIN LOOP ; ----------------------------------------------- main: ; Show the number on the LED display mov R0, #data_ptr+data_len call display_number ; Increment the number mov R0, #data_ptr call inrement_number ; Close main loop jmp main ; ----------------------------------------------- ; PROGRAM END ; ----------------------------------------------- end mcu8051ide-1.4.7/demo/demo0.asm0000644000175000017500000000100512067167647016525 0ustar milleniummillenium; MCU 8051 IDE - Demonstration code ; Very simple code ; Press F2 and F6 to run the program (start simulator and animate) org 0h main: inc R0 inc @R0 cjne R0, #07Fh, main mov R0, #0d sjmp main end ; <-- Bookmark (try Alt+PgUp/Alt+PgDown) ; <-- Breakpoint ; ----------------------------------------- ; NOTICE: ; Simulator limitations: ; * SPI ; * Access to external code memory ; * Power down modes ; ----------------------------------------- ; IF YOU HAVE FOUND SOME BUG IN THIS IDE , PLEASE LET ME KNOW mcu8051ide-1.4.7/demo/demo1.lst0000644000175000017500000003762412067167647016570 0ustar milleniummilleniumdemo1 DEMO 2 11/29/1182 PAGE 1 1 ; MCU 8051 IDE - Demonstration code 2 ; Macro instructions, conditional compilation and constants 3 ; Try tab "Graph" on bottom panel 4 5 ; Press F2 and F6 to run the program (start simulator and animate) 6 7 $TITLE('DEMO 2') ; Set title for code listing 8 $DATE(11/29/1182) ; Set date for code listing (the 29th of November 1182, welcome back to the M 9 10 ; Constant definitions 11 ; -------------------- 000F 12 counter idata 00Fh ; Counter of Px shifts 0064 13 x set 100 ; Some variable 0001 14 inc_dec equ 100 / X ; Flag: Increment/Decrement counter 15 16 cseg at 1FFh ; Code segment starts at 0x1FF 01FF 04 17 something: db 4d ; Reserve 4 bytes in this segment 18 19 ; Macro instructions 20 ; -------------------- 21 22 ;; Shift the given registers 23 shift macro reg0, reg1 24 25 ; Increment / Decrement counter 26 mov A, counter 27 if inc_dec <> 0 28 inc A 29 else 30 dec A 31 endif 33 mov counter, A 34 $list ; <- Enable code listing 35 36 ; Shift 37 mov reg1, reg0 38 mov reg0, reg1 39 setb C 40 mov A, reg0 41 rl A 42 mov reg0, A 43 endm 44 45 ; Program initialization 46 ; -------------------- 47 org 0h ****WARNING: This ORG has lower value than the previous one 0000 8000 48 sjmp start 49 50 ; Program start 51 ; -------------------- 0002 75900F 52 start: mov P1, #00Fh 0005 75B01E 53 mov P3, #01Eh 0008 8000 54 sjmp main 55 56 ; Main loop 57 ; -------------------- 58 +1 main: shift P1, P3 59 +1 000A E50F 60 +1 mov a , counter 61 +1 if inc_dec <> 0 000C 04 62 +1 inc a 63 +1 else 64 +1 dec a 65 +1 endif 000D F50F 66 +1 mov counter , a 67 +1 000F 8590B0 68 +1 mov P3 , P1 0012 85B090 69 +1 mov P1 , P3 0015 D3 70 +1 setb c 0016 E590 71 +1 mov a , P1 0018 23 72 +1 rl a 0019 F590 73 +1 mov P1 , a 001B 80ED 74 sjmp main 75 76 ; Program end 77 ; -------------------- 78 end ASSEMBLY COMPLETE, NO ERRORS FOUND, 1 WARNING ERROR SUMMARY: Line 49, WARNING: This ORG has lower value than the previous one SYMBOL TABLE: ??MCU_8051_IDE . . . . . . . . . . . N NUMB 8051H NOT USED ??VERSION. . . . . . . . . . . . . . N NUMB 0147H NOT USED AC . . . . . . . . . . . . . . . . . B ADDR 00D6H NOT USED ACC. . . . . . . . . . . . . . . . . D ADDR 00E0H NOT USED ACSR . . . . . . . . . . . . . . . . D ADDR 0097H NOT USED ADCF . . . . . . . . . . . . . . . . D ADDR 00F6H NOT USED ADCLK. . . . . . . . . . . . . . . . D ADDR 00F2H NOT USED ADCON. . . . . . . . . . . . . . . . D ADDR 00F3H NOT USED ADDH . . . . . . . . . . . . . . . . D ADDR 00F5H NOT USED ADDL . . . . . . . . . . . . . . . . D ADDR 00F4H NOT USED AUXR . . . . . . . . . . . . . . . . D ADDR 008EH NOT USED AUXR1. . . . . . . . . . . . . . . . D ADDR 00A2H NOT USED B. . . . . . . . . . . . . . . . . . D ADDR 00F0H NOT USED BDRCON . . . . . . . . . . . . . . . D ADDR 009BH NOT USED BDRCON_1 . . . . . . . . . . . . . . D ADDR 009CH NOT USED BRL. . . . . . . . . . . . . . . . . D ADDR 009AH NOT USED CCAP0H . . . . . . . . . . . . . . . D ADDR 00FAH NOT USED CCAP0L . . . . . . . . . . . . . . . D ADDR 00EAH NOT USED CCAP1H . . . . . . . . . . . . . . . D ADDR 00FBH NOT USED CCAP1L . . . . . . . . . . . . . . . D ADDR 00EBH NOT USED CCAP2H . . . . . . . . . . . . . . . D ADDR 00FCH NOT USED CCAP3H . . . . . . . . . . . . . . . D ADDR 00FDH NOT USED CCAP4H . . . . . . . . . . . . . . . D ADDR 00FEH NOT USED CCAPL2H. . . . . . . . . . . . . . . D ADDR 00FCH NOT USED CCAPL2L. . . . . . . . . . . . . . . D ADDR 00ECH NOT USED CCAPL3H. . . . . . . . . . . . . . . D ADDR 00FDH NOT USED CCAPL3L. . . . . . . . . . . . . . . D ADDR 00EDH NOT USED CCAPL4H. . . . . . . . . . . . . . . D ADDR 00FEH NOT USED CCAPL4L. . . . . . . . . . . . . . . D ADDR 00EEH NOT USED CCAPM0 . . . . . . . . . . . . . . . D ADDR 00DAH NOT USED CCAPM1 . . . . . . . . . . . . . . . D ADDR 00DBH NOT USED CCAPM2 . . . . . . . . . . . . . . . D ADDR 00DCH NOT USED CCAPM3 . . . . . . . . . . . . . . . D ADDR 00DDH NOT USED CCAPM4 . . . . . . . . . . . . . . . D ADDR 00DEH NOT USED CCF0 . . . . . . . . . . . . . . . . B ADDR 00D8H NOT USED CCF1 . . . . . . . . . . . . . . . . B ADDR 00D9H NOT USED CCF2 . . . . . . . . . . . . . . . . B ADDR 00DAH NOT USED CCF3 . . . . . . . . . . . . . . . . B ADDR 00DBH NOT USED CCF4 . . . . . . . . . . . . . . . . B ADDR 00DCH NOT USED CCON . . . . . . . . . . . . . . . . D ADDR 00D8H NOT USED CFINT. . . . . . . . . . . . . . . . C ADDR 0033H NOT USED CH . . . . . . . . . . . . . . . . . D ADDR 00F9H NOT USED CKCON. . . . . . . . . . . . . . . . D ADDR 008FH NOT USED CKCON0 . . . . . . . . . . . . . . . D ADDR 008FH NOT USED CKRL . . . . . . . . . . . . . . . . D ADDR 0097H NOT USED CKSEL. . . . . . . . . . . . . . . . D ADDR 0085H NOT USED CL . . . . . . . . . . . . . . . . . D ADDR 00E9H NOT USED CLKREG . . . . . . . . . . . . . . . D ADDR 008FH NOT USED CMOD . . . . . . . . . . . . . . . . D ADDR 00D9H NOT USED COUNTER. . . . . . . . . . . . . . . I ADDR 000FH CPRL2. . . . . . . . . . . . . . . . B ADDR 00C8H NOT USED CR . . . . . . . . . . . . . . . . . B ADDR 00DEH NOT USED CT2. . . . . . . . . . . . . . . . . B ADDR 00C9H NOT USED CY . . . . . . . . . . . . . . . . . B ADDR 00D7H NOT USED DP0H . . . . . . . . . . . . . . . . D ADDR 0083H NOT USED DP0L . . . . . . . . . . . . . . . . D ADDR 0082H NOT USED DP1H . . . . . . . . . . . . . . . . D ADDR 0085H NOT USED DP1L . . . . . . . . . . . . . . . . D ADDR 0084H NOT USED DPH. . . . . . . . . . . . . . . . . D ADDR 0083H NOT USED DPL. . . . . . . . . . . . . . . . . D ADDR 0082H NOT USED EA . . . . . . . . . . . . . . . . . B ADDR 00AFH NOT USED EC . . . . . . . . . . . . . . . . . B ADDR 00AEH NOT USED EECON. . . . . . . . . . . . . . . . D ADDR 0096H NOT USED ES . . . . . . . . . . . . . . . . . B ADDR 00ACH NOT USED ET0. . . . . . . . . . . . . . . . . B ADDR 00A9H NOT USED ET1. . . . . . . . . . . . . . . . . B ADDR 00ABH NOT USED ET2. . . . . . . . . . . . . . . . . B ADDR 00ADH NOT USED EX0. . . . . . . . . . . . . . . . . B ADDR 00A8H NOT USED EX1. . . . . . . . . . . . . . . . . B ADDR 00AAH NOT USED EXEN2. . . . . . . . . . . . . . . . B ADDR 00CBH NOT USED EXF2 . . . . . . . . . . . . . . . . B ADDR 00CEH NOT USED EXTI0. . . . . . . . . . . . . . . . C ADDR 0003H NOT USED EXTI1. . . . . . . . . . . . . . . . C ADDR 0013H NOT USED F0 . . . . . . . . . . . . . . . . . B ADDR 00D5H NOT USED FE . . . . . . . . . . . . . . . . . B ADDR 009FH NOT USED IE . . . . . . . . . . . . . . . . . D ADDR 00A8H NOT USED IE0. . . . . . . . . . . . . . . . . B ADDR 0089H NOT USED IE1. . . . . . . . . . . . . . . . . B ADDR 008BH NOT USED INC_DEC. . . . . . . . . . . . . . . N NUMB 0001H NOT USED INT0 . . . . . . . . . . . . . . . . B ADDR 00B2H NOT USED INT1 . . . . . . . . . . . . . . . . B ADDR 00B3H NOT USED IP . . . . . . . . . . . . . . . . . D ADDR 00B8H NOT USED IPH. . . . . . . . . . . . . . . . . D ADDR 00B7H NOT USED IPH0 . . . . . . . . . . . . . . . . D ADDR 00B7H NOT USED IPH1 . . . . . . . . . . . . . . . . D ADDR 00B3H NOT USED IPL0 . . . . . . . . . . . . . . . . D ADDR 00B8H NOT USED IPL1 . . . . . . . . . . . . . . . . D ADDR 00B2H NOT USED IT0. . . . . . . . . . . . . . . . . B ADDR 0088H NOT USED IT1. . . . . . . . . . . . . . . . . B ADDR 008AH NOT USED KBE. . . . . . . . . . . . . . . . . D ADDR 009DH NOT USED KBF. . . . . . . . . . . . . . . . . D ADDR 009EH NOT USED KBLS . . . . . . . . . . . . . . . . D ADDR 009CH NOT USED MAIN . . . . . . . . . . . . . . . . C ADDR 000AH OSCCON . . . . . . . . . . . . . . . D ADDR 0086H NOT USED OV . . . . . . . . . . . . . . . . . B ADDR 00D2H NOT USED P. . . . . . . . . . . . . . . . . . B ADDR 00D0H NOT USED P0 . . . . . . . . . . . . . . . . . D ADDR 0080H NOT USED P1 . . . . . . . . . . . . . . . . . D ADDR 0090H P1M1 . . . . . . . . . . . . . . . . D ADDR 00D4H NOT USED P1M2 . . . . . . . . . . . . . . . . D ADDR 00E2H NOT USED P2 . . . . . . . . . . . . . . . . . D ADDR 00A0H NOT USED P3 . . . . . . . . . . . . . . . . . D ADDR 00B0H P3M1 . . . . . . . . . . . . . . . . D ADDR 00D5H NOT USED P3M2 . . . . . . . . . . . . . . . . D ADDR 00E3H NOT USED P4 . . . . . . . . . . . . . . . . . D ADDR 00C0H NOT USED P4M1 . . . . . . . . . . . . . . . . D ADDR 00D6H NOT USED P4M2 . . . . . . . . . . . . . . . . D ADDR 00E4H NOT USED P5 . . . . . . . . . . . . . . . . . D ADDR 00E8H NOT USED PC . . . . . . . . . . . . . . . . . B ADDR 00BEH NOT USED PCON . . . . . . . . . . . . . . . . D ADDR 0087H NOT USED PPCL . . . . . . . . . . . . . . . . B ADDR 00BEH NOT USED PS . . . . . . . . . . . . . . . . . B ADDR 00BCH NOT USED PSL. . . . . . . . . . . . . . . . . B ADDR 00BCH NOT USED PSW. . . . . . . . . . . . . . . . . D ADDR 00D0H NOT USED PT0. . . . . . . . . . . . . . . . . B ADDR 00B9H NOT USED PT0L . . . . . . . . . . . . . . . . B ADDR 00B9H NOT USED PT1. . . . . . . . . . . . . . . . . B ADDR 00BBH NOT USED PT1L . . . . . . . . . . . . . . . . B ADDR 00BBH NOT USED PT2. . . . . . . . . . . . . . . . . B ADDR 00BDH NOT USED PT2L . . . . . . . . . . . . . . . . B ADDR 00BDH NOT USED PX0. . . . . . . . . . . . . . . . . B ADDR 00B8H NOT USED PX0L . . . . . . . . . . . . . . . . B ADDR 00B8H NOT USED PX1. . . . . . . . . . . . . . . . . B ADDR 00BAH NOT USED PX1L . . . . . . . . . . . . . . . . B ADDR 00BAH NOT USED RB8. . . . . . . . . . . . . . . . . B ADDR 009AH NOT USED RCAP2H . . . . . . . . . . . . . . . D ADDR 00CBH NOT USED RCAP2L . . . . . . . . . . . . . . . D ADDR 00CAH NOT USED RCLK . . . . . . . . . . . . . . . . B ADDR 00CDH NOT USED RD . . . . . . . . . . . . . . . . . B ADDR 00B7H NOT USED REN. . . . . . . . . . . . . . . . . B ADDR 009CH NOT USED RESET. . . . . . . . . . . . . . . . C ADDR 0000H NOT USED RI . . . . . . . . . . . . . . . . . B ADDR 0098H NOT USED RS0. . . . . . . . . . . . . . . . . B ADDR 00D3H NOT USED RS1. . . . . . . . . . . . . . . . . B ADDR 00D4H NOT USED RXD. . . . . . . . . . . . . . . . . B ADDR 00B0H NOT USED SADDR. . . . . . . . . . . . . . . . D ADDR 00A9H NOT USED SADDR_0. . . . . . . . . . . . . . . D ADDR 00A9H NOT USED SADDR_1. . . . . . . . . . . . . . . D ADDR 00AAH NOT USED SADEN. . . . . . . . . . . . . . . . D ADDR 00B9H NOT USED SADEN_0. . . . . . . . . . . . . . . D ADDR 00B9H NOT USED SADEN_1. . . . . . . . . . . . . . . D ADDR 00BAH NOT USED SBUF . . . . . . . . . . . . . . . . D ADDR 0099H NOT USED SCON . . . . . . . . . . . . . . . . D ADDR 0098H NOT USED SINT . . . . . . . . . . . . . . . . C ADDR 0023H NOT USED SM0. . . . . . . . . . . . . . . . . B ADDR 009FH NOT USED SM1. . . . . . . . . . . . . . . . . B ADDR 009EH NOT USED SM2. . . . . . . . . . . . . . . . . B ADDR 009DH NOT USED SOMETHING. . . . . . . . . . . . . . C ADDR 01FFH NOT USED SP . . . . . . . . . . . . . . . . . D ADDR 0081H NOT USED SPCON. . . . . . . . . . . . . . . . D ADDR 00C3H NOT USED SPCR . . . . . . . . . . . . . . . . D ADDR 00D5H NOT USED SPDAT. . . . . . . . . . . . . . . . D ADDR 00C5H NOT USED SPDR . . . . . . . . . . . . . . . . D ADDR 0086H NOT USED SPSR . . . . . . . . . . . . . . . . D ADDR 00AAH NOT USED SPSTA. . . . . . . . . . . . . . . . D ADDR 00C4H NOT USED START. . . . . . . . . . . . . . . . C ADDR 0002H T0 . . . . . . . . . . . . . . . . . B ADDR 00B4H NOT USED T1 . . . . . . . . . . . . . . . . . B ADDR 00B5H NOT USED T2CON. . . . . . . . . . . . . . . . D ADDR 00C8H NOT USED T2MOD. . . . . . . . . . . . . . . . D ADDR 00C9H NOT USED TB8. . . . . . . . . . . . . . . . . B ADDR 009BH NOT USED TCLK . . . . . . . . . . . . . . . . B ADDR 00CCH NOT USED TCON . . . . . . . . . . . . . . . . D ADDR 0088H NOT USED TF0. . . . . . . . . . . . . . . . . B ADDR 008DH NOT USED TF1. . . . . . . . . . . . . . . . . B ADDR 008FH NOT USED TF2. . . . . . . . . . . . . . . . . B ADDR 00CFH NOT USED TH0. . . . . . . . . . . . . . . . . D ADDR 008CH NOT USED TH1. . . . . . . . . . . . . . . . . D ADDR 008DH NOT USED TH2. . . . . . . . . . . . . . . . . D ADDR 00CDH NOT USED TI . . . . . . . . . . . . . . . . . B ADDR 0099H NOT USED TIMER0 . . . . . . . . . . . . . . . C ADDR 000BH NOT USED TIMER1 . . . . . . . . . . . . . . . C ADDR 001BH NOT USED TIMER2 . . . . . . . . . . . . . . . C ADDR 002BH NOT USED TL0. . . . . . . . . . . . . . . . . D ADDR 008AH NOT USED TL1. . . . . . . . . . . . . . . . . D ADDR 008BH NOT USED TL2. . . . . . . . . . . . . . . . . D ADDR 00CCH NOT USED TMOD . . . . . . . . . . . . . . . . D ADDR 0089H NOT USED TR0. . . . . . . . . . . . . . . . . B ADDR 008CH NOT USED TR1. . . . . . . . . . . . . . . . . B ADDR 008EH NOT USED TR2. . . . . . . . . . . . . . . . . B ADDR 00CAH NOT USED TXD. . . . . . . . . . . . . . . . . B ADDR 00B1H NOT USED WDTCON . . . . . . . . . . . . . . . D ADDR 00A7H NOT USED WDTPRG . . . . . . . . . . . . . . . D ADDR 00A7H NOT USED WDTRST . . . . . . . . . . . . . . . D ADDR 00A6H NOT USED WR . . . . . . . . . . . . . . . . . B ADDR 00B6H NOT USED X. . . . . . . . . . . . . . . . . . NUMB 0064H NOT USED REDEFINABLEmcu8051ide-1.4.7/demo/keypad_display.lst0000644000175000017500000010047612067167647020561 0ustar milleniummillenium 1 ;-------------------------------------------------------- 2 ; File Created by SDCC : free open source ANSI-C Compiler 3 ; Version 2.9.0 #5416 (Feb 3 2010) (UNIX) 4 ; This file was generated Sun Dec 16 06:02:14 2012 5 ;-------------------------------------------------------- 6 .module keypad_display 7 .optsdcc -mmcs51 --model-small 8 9 ;-------------------------------------------------------- 10 ; Public variables in this module 11 ;-------------------------------------------------------- 12 .globl _main 13 .globl _CY 14 .globl _AC 15 .globl _F0 16 .globl _RS1 17 .globl _RS0 18 .globl _OV 19 .globl _F1 20 .globl _P 21 .globl _PS 22 .globl _PT1 23 .globl _PX1 24 .globl _PT0 25 .globl _PX0 26 .globl _RD 27 .globl _WR 28 .globl _T1 29 .globl _T0 30 .globl _INT1 31 .globl _INT0 32 .globl _TXD 33 .globl _RXD 34 .globl _P3_7 35 .globl _P3_6 36 .globl _P3_5 37 .globl _P3_4 38 .globl _P3_3 39 .globl _P3_2 40 .globl _P3_1 41 .globl _P3_0 42 .globl _EA 43 .globl _ES 44 .globl _ET1 45 .globl _EX1 46 .globl _ET0 47 .globl _EX0 48 .globl _P2_7 49 .globl _P2_6 50 .globl _P2_5 51 .globl _P2_4 52 .globl _P2_3 53 .globl _P2_2 54 .globl _P2_1 55 .globl _P2_0 56 .globl _SM0 57 .globl _SM1 58 .globl _SM2 59 .globl _REN 60 .globl _TB8 61 .globl _RB8 62 .globl _TI 63 .globl _RI 64 .globl _P1_7 65 .globl _P1_6 66 .globl _P1_5 67 .globl _P1_4 68 .globl _P1_3 69 .globl _P1_2 70 .globl _P1_1 71 .globl _P1_0 72 .globl _TF1 73 .globl _TR1 74 .globl _TF0 75 .globl _TR0 76 .globl _IE1 77 .globl _IT1 78 .globl _IE0 79 .globl _IT0 80 .globl _P0_7 81 .globl _P0_6 82 .globl _P0_5 83 .globl _P0_4 84 .globl _P0_3 85 .globl _P0_2 86 .globl _P0_1 87 .globl _P0_0 88 .globl _B 89 .globl _ACC 90 .globl _PSW 91 .globl _IP 92 .globl _P3 93 .globl _IE 94 .globl _P2 95 .globl _SBUF 96 .globl _SCON 97 .globl _P1 98 .globl _TH1 99 .globl _TH0 100 .globl _TL1 101 .globl _TL0 102 .globl _TMOD 103 .globl _TCON 104 .globl _PCON 105 .globl _DPH 106 .globl _DPL 107 .globl _SP 108 .globl _P0 109 .globl _row 110 .globl _state 111 ;-------------------------------------------------------- 112 ; special function registers 113 ;-------------------------------------------------------- 114 .area RSEG (DATA) 0080 115 G$P0$0$0 == 0x0080 0080 116 _P0 = 0x0080 0081 117 G$SP$0$0 == 0x0081 0081 118 _SP = 0x0081 0082 119 G$DPL$0$0 == 0x0082 0082 120 _DPL = 0x0082 0083 121 G$DPH$0$0 == 0x0083 0083 122 _DPH = 0x0083 0087 123 G$PCON$0$0 == 0x0087 0087 124 _PCON = 0x0087 0088 125 G$TCON$0$0 == 0x0088 0088 126 _TCON = 0x0088 0089 127 G$TMOD$0$0 == 0x0089 0089 128 _TMOD = 0x0089 008A 129 G$TL0$0$0 == 0x008a 008A 130 _TL0 = 0x008a 008B 131 G$TL1$0$0 == 0x008b 008B 132 _TL1 = 0x008b 008C 133 G$TH0$0$0 == 0x008c 008C 134 _TH0 = 0x008c 008D 135 G$TH1$0$0 == 0x008d 008D 136 _TH1 = 0x008d 0090 137 G$P1$0$0 == 0x0090 0090 138 _P1 = 0x0090 0098 139 G$SCON$0$0 == 0x0098 0098 140 _SCON = 0x0098 0099 141 G$SBUF$0$0 == 0x0099 0099 142 _SBUF = 0x0099 00A0 143 G$P2$0$0 == 0x00a0 00A0 144 _P2 = 0x00a0 00A8 145 G$IE$0$0 == 0x00a8 00A8 146 _IE = 0x00a8 00B0 147 G$P3$0$0 == 0x00b0 00B0 148 _P3 = 0x00b0 00B8 149 G$IP$0$0 == 0x00b8 00B8 150 _IP = 0x00b8 00D0 151 G$PSW$0$0 == 0x00d0 00D0 152 _PSW = 0x00d0 00E0 153 G$ACC$0$0 == 0x00e0 00E0 154 _ACC = 0x00e0 00F0 155 G$B$0$0 == 0x00f0 00F0 156 _B = 0x00f0 157 ;-------------------------------------------------------- 158 ; special function bits 159 ;-------------------------------------------------------- 160 .area RSEG (DATA) 0080 161 G$P0_0$0$0 == 0x0080 0080 162 _P0_0 = 0x0080 0081 163 G$P0_1$0$0 == 0x0081 0081 164 _P0_1 = 0x0081 0082 165 G$P0_2$0$0 == 0x0082 0082 166 _P0_2 = 0x0082 0083 167 G$P0_3$0$0 == 0x0083 0083 168 _P0_3 = 0x0083 0084 169 G$P0_4$0$0 == 0x0084 0084 170 _P0_4 = 0x0084 0085 171 G$P0_5$0$0 == 0x0085 0085 172 _P0_5 = 0x0085 0086 173 G$P0_6$0$0 == 0x0086 0086 174 _P0_6 = 0x0086 0087 175 G$P0_7$0$0 == 0x0087 0087 176 _P0_7 = 0x0087 0088 177 G$IT0$0$0 == 0x0088 0088 178 _IT0 = 0x0088 0089 179 G$IE0$0$0 == 0x0089 0089 180 _IE0 = 0x0089 008A 181 G$IT1$0$0 == 0x008a 008A 182 _IT1 = 0x008a 008B 183 G$IE1$0$0 == 0x008b 008B 184 _IE1 = 0x008b 008C 185 G$TR0$0$0 == 0x008c 008C 186 _TR0 = 0x008c 008D 187 G$TF0$0$0 == 0x008d 008D 188 _TF0 = 0x008d 008E 189 G$TR1$0$0 == 0x008e 008E 190 _TR1 = 0x008e 008F 191 G$TF1$0$0 == 0x008f 008F 192 _TF1 = 0x008f 0090 193 G$P1_0$0$0 == 0x0090 0090 194 _P1_0 = 0x0090 0091 195 G$P1_1$0$0 == 0x0091 0091 196 _P1_1 = 0x0091 0092 197 G$P1_2$0$0 == 0x0092 0092 198 _P1_2 = 0x0092 0093 199 G$P1_3$0$0 == 0x0093 0093 200 _P1_3 = 0x0093 0094 201 G$P1_4$0$0 == 0x0094 0094 202 _P1_4 = 0x0094 0095 203 G$P1_5$0$0 == 0x0095 0095 204 _P1_5 = 0x0095 0096 205 G$P1_6$0$0 == 0x0096 0096 206 _P1_6 = 0x0096 0097 207 G$P1_7$0$0 == 0x0097 0097 208 _P1_7 = 0x0097 0098 209 G$RI$0$0 == 0x0098 0098 210 _RI = 0x0098 0099 211 G$TI$0$0 == 0x0099 0099 212 _TI = 0x0099 009A 213 G$RB8$0$0 == 0x009a 009A 214 _RB8 = 0x009a 009B 215 G$TB8$0$0 == 0x009b 009B 216 _TB8 = 0x009b 009C 217 G$REN$0$0 == 0x009c 009C 218 _REN = 0x009c 009D 219 G$SM2$0$0 == 0x009d 009D 220 _SM2 = 0x009d 009E 221 G$SM1$0$0 == 0x009e 009E 222 _SM1 = 0x009e 009F 223 G$SM0$0$0 == 0x009f 009F 224 _SM0 = 0x009f 00A0 225 G$P2_0$0$0 == 0x00a0 00A0 226 _P2_0 = 0x00a0 00A1 227 G$P2_1$0$0 == 0x00a1 00A1 228 _P2_1 = 0x00a1 00A2 229 G$P2_2$0$0 == 0x00a2 00A2 230 _P2_2 = 0x00a2 00A3 231 G$P2_3$0$0 == 0x00a3 00A3 232 _P2_3 = 0x00a3 00A4 233 G$P2_4$0$0 == 0x00a4 00A4 234 _P2_4 = 0x00a4 00A5 235 G$P2_5$0$0 == 0x00a5 00A5 236 _P2_5 = 0x00a5 00A6 237 G$P2_6$0$0 == 0x00a6 00A6 238 _P2_6 = 0x00a6 00A7 239 G$P2_7$0$0 == 0x00a7 00A7 240 _P2_7 = 0x00a7 00A8 241 G$EX0$0$0 == 0x00a8 00A8 242 _EX0 = 0x00a8 00A9 243 G$ET0$0$0 == 0x00a9 00A9 244 _ET0 = 0x00a9 00AA 245 G$EX1$0$0 == 0x00aa 00AA 246 _EX1 = 0x00aa 00AB 247 G$ET1$0$0 == 0x00ab 00AB 248 _ET1 = 0x00ab 00AC 249 G$ES$0$0 == 0x00ac 00AC 250 _ES = 0x00ac 00AF 251 G$EA$0$0 == 0x00af 00AF 252 _EA = 0x00af 00B0 253 G$P3_0$0$0 == 0x00b0 00B0 254 _P3_0 = 0x00b0 00B1 255 G$P3_1$0$0 == 0x00b1 00B1 256 _P3_1 = 0x00b1 00B2 257 G$P3_2$0$0 == 0x00b2 00B2 258 _P3_2 = 0x00b2 00B3 259 G$P3_3$0$0 == 0x00b3 00B3 260 _P3_3 = 0x00b3 00B4 261 G$P3_4$0$0 == 0x00b4 00B4 262 _P3_4 = 0x00b4 00B5 263 G$P3_5$0$0 == 0x00b5 00B5 264 _P3_5 = 0x00b5 00B6 265 G$P3_6$0$0 == 0x00b6 00B6 266 _P3_6 = 0x00b6 00B7 267 G$P3_7$0$0 == 0x00b7 00B7 268 _P3_7 = 0x00b7 00B0 269 G$RXD$0$0 == 0x00b0 00B0 270 _RXD = 0x00b0 00B1 271 G$TXD$0$0 == 0x00b1 00B1 272 _TXD = 0x00b1 00B2 273 G$INT0$0$0 == 0x00b2 00B2 274 _INT0 = 0x00b2 00B3 275 G$INT1$0$0 == 0x00b3 00B3 276 _INT1 = 0x00b3 00B4 277 G$T0$0$0 == 0x00b4 00B4 278 _T0 = 0x00b4 00B5 279 G$T1$0$0 == 0x00b5 00B5 280 _T1 = 0x00b5 00B6 281 G$WR$0$0 == 0x00b6 00B6 282 _WR = 0x00b6 00B7 283 G$RD$0$0 == 0x00b7 00B7 284 _RD = 0x00b7 00B8 285 G$PX0$0$0 == 0x00b8 00B8 286 _PX0 = 0x00b8 00B9 287 G$PT0$0$0 == 0x00b9 00B9 288 _PT0 = 0x00b9 00BA 289 G$PX1$0$0 == 0x00ba 00BA 290 _PX1 = 0x00ba 00BB 291 G$PT1$0$0 == 0x00bb 00BB 292 _PT1 = 0x00bb 00BC 293 G$PS$0$0 == 0x00bc 00BC 294 _PS = 0x00bc 00D0 295 G$P$0$0 == 0x00d0 00D0 296 _P = 0x00d0 00D1 297 G$F1$0$0 == 0x00d1 00D1 298 _F1 = 0x00d1 00D2 299 G$OV$0$0 == 0x00d2 00D2 300 _OV = 0x00d2 00D3 301 G$RS0$0$0 == 0x00d3 00D3 302 _RS0 = 0x00d3 00D4 303 G$RS1$0$0 == 0x00d4 00D4 304 _RS1 = 0x00d4 00D5 305 G$F0$0$0 == 0x00d5 00D5 306 _F0 = 0x00d5 00D6 307 G$AC$0$0 == 0x00d6 00D6 308 _AC = 0x00d6 00D7 309 G$CY$0$0 == 0x00d7 00D7 310 _CY = 0x00d7 311 ;-------------------------------------------------------- 312 ; overlayable register banks 313 ;-------------------------------------------------------- 314 .area REG_BANK_0 (REL,OVR,DATA) 0000 315 .ds 8 316 ;-------------------------------------------------------- 317 ; internal ram data 318 ;-------------------------------------------------------- 319 .area DSEG (DATA) 0000 320 G$state$0$0==. 0000 321 _state:: 0000 322 .ds 1 0001 323 G$row$0$0==. 0001 324 _row:: 0001 325 .ds 2 326 ;-------------------------------------------------------- 327 ; overlayable items in internal ram 328 ;-------------------------------------------------------- 329 .area OSEG (OVR,DATA) 330 ;-------------------------------------------------------- 331 ; Stack segment in internal ram 332 ;-------------------------------------------------------- 333 .area SSEG (DATA) 0000 334 __start__stack: 0000 335 .ds 1 336 337 ;-------------------------------------------------------- 338 ; indirectly addressable internal ram data 339 ;-------------------------------------------------------- 340 .area ISEG (DATA) 341 ;-------------------------------------------------------- 342 ; absolute internal ram data 343 ;-------------------------------------------------------- 344 .area IABS (ABS,DATA) 345 .area IABS (ABS,DATA) 346 ;-------------------------------------------------------- 347 ; bit data 348 ;-------------------------------------------------------- 349 .area BSEG (BIT) 350 ;-------------------------------------------------------- 351 ; paged external ram data 352 ;-------------------------------------------------------- 353 .area PSEG (PAG,XDATA) 354 ;-------------------------------------------------------- 355 ; external ram data 356 ;-------------------------------------------------------- 357 .area XSEG (XDATA) 358 ;-------------------------------------------------------- 359 ; absolute external ram data 360 ;-------------------------------------------------------- 361 .area XABS (ABS,XDATA) 362 ;-------------------------------------------------------- 363 ; external initialized ram data 364 ;-------------------------------------------------------- 365 .area XISEG (XDATA) 366 .area HOME (CODE) 367 .area GSINIT0 (CODE) 368 .area GSINIT1 (CODE) 369 .area GSINIT2 (CODE) 370 .area GSINIT3 (CODE) 371 .area GSINIT4 (CODE) 372 .area GSINIT5 (CODE) 373 .area GSINIT (CODE) 374 .area GSFINAL (CODE) 375 .area CSEG (CODE) 376 ;-------------------------------------------------------- 377 ; interrupt vector 378 ;-------------------------------------------------------- 379 .area HOME (CODE) 0000 380 __interrupt_vect: 0000 02s00r00 381 ljmp __sdcc_gsinit_startup 382 ;-------------------------------------------------------- 383 ; global & static initialisations 384 ;-------------------------------------------------------- 385 .area HOME (CODE) 386 .area GSINIT (CODE) 387 .area GSFINAL (CODE) 388 .area GSINIT (CODE) 389 .globl __sdcc_gsinit_startup 390 .globl __sdcc_program_startup 391 .globl __start__stack 392 .globl __mcs51_genXINIT 393 .globl __mcs51_genXRAMCLEAR 394 .globl __mcs51_genRAMCLEAR 395 .area GSFINAL (CODE) 0000 02s00r03 396 ljmp __sdcc_program_startup 397 ;-------------------------------------------------------- 398 ; Home 399 ;-------------------------------------------------------- 400 .area HOME (CODE) 401 .area HOME (CODE) 0003 402 __sdcc_program_startup: 0003 12s00r00 403 lcall _main 404 ; return from main will lock up 0006 80 FE 405 sjmp . 406 ;-------------------------------------------------------- 407 ; code 408 ;-------------------------------------------------------- 409 .area CSEG (CODE) 410 ;------------------------------------------------------------ 411 ;Allocation info for local variables in function 'main' 412 ;------------------------------------------------------------ 413 ;------------------------------------------------------------ 0000 414 G$main$0$0 ==. 0000 415 C$keypad_display.c$38$0$0 ==. 416 ; keypad_display.c:38: int main() 417 ; ----------------------------------------- 418 ; function main 419 ; ----------------------------------------- 0000 420 _main: 0002 421 ar2 = 0x02 0003 422 ar3 = 0x03 0004 423 ar4 = 0x04 0005 424 ar5 = 0x05 0006 425 ar6 = 0x06 0007 426 ar7 = 0x07 0000 427 ar0 = 0x00 0001 428 ar1 = 0x01 0000 429 C$keypad_display.c$40$1$1 ==. 430 ; keypad_display.c:40: while(1) { 0000 431 00123$: 0000 432 C$keypad_display.c$41$2$2 ==. 433 ; keypad_display.c:41: for(row=0; row<4; row++) { 0000 E4 434 clr a 0001 F5*01 435 mov _row,a 0003 F5*02 436 mov (_row + 1),a 0005 437 00118$: 0005 C3 438 clr c 0006 E5*01 439 mov a,_row 0008 94 04 440 subb a,#0x04 000A E5*02 441 mov a,(_row + 1) 000C 64 80 442 xrl a,#0x80 000E 94 80 443 subb a,#0x80 0010 50 EE 444 jnc 00123$ 0012 445 C$keypad_display.c$42$3$3 ==. 446 ; keypad_display.c:42: P1=keypad[row]; 0012 E5*01 447 mov a,_row 0014 24r00 448 add a,#_keypad 0016 F5 82 449 mov dpl,a 0018 E5*02 450 mov a,(_row + 1) 001A 34s00 451 addc a,#(_keypad >> 8) 001C F5 83 452 mov dph,a 001E E4 453 clr a 001F 93 454 movc a,@a+dptr 0020 F5 90 455 mov _P1,a 0022 456 C$keypad_display.c$48$3$3 ==. 457 ; keypad_display.c:48: _endasm; 458 0022 85 90*00 459 mov _state, P1 460 0025 461 C$keypad_display.c$53$3$3 ==. 462 ; keypad_display.c:53: state&=0x0f; 0025 53r00 0F 463 anl _state,#0x0F 0028 464 C$keypad_display.c$54$3$3 ==. 465 ; keypad_display.c:54: state^=0x0f; 0028 63r00 0F 466 xrl _state,#0x0F 002B 467 C$keypad_display.c$56$3$3 ==. 468 ; keypad_display.c:56: if(state & 1) { 002B E5*00 469 mov a,_state 002D 30 E0 05 470 jnb acc.0,00111$ 0030 471 C$keypad_display.c$57$4$4 ==. 472 ; keypad_display.c:57: state=0; 0030 75*00 00 473 mov _state,#0x00 0033 80 1F 474 sjmp 00112$ 0035 475 00111$: 0035 476 C$keypad_display.c$58$3$3 ==. 477 ; keypad_display.c:58: } else if(state & 2) { 0035 E5*00 478 mov a,_state 0037 30 E1 05 479 jnb acc.1,00108$ 003A 480 C$keypad_display.c$59$4$5 ==. 481 ; keypad_display.c:59: state=1; 003A 75*00 01 482 mov _state,#0x01 003D 80 15 483 sjmp 00112$ 003F 484 00108$: 003F 485 C$keypad_display.c$60$3$3 ==. 486 ; keypad_display.c:60: } else if(state & 4) { 003F E5*00 487 mov a,_state 0041 30 E2 05 488 jnb acc.2,00105$ 0044 489 C$keypad_display.c$61$4$6 ==. 490 ; keypad_display.c:61: state=2; 0044 75*00 02 491 mov _state,#0x02 0047 80 0B 492 sjmp 00112$ 0049 493 00105$: 0049 494 C$keypad_display.c$62$3$3 ==. 495 ; keypad_display.c:62: } else if(state & 8) { 0049 E5*00 496 mov a,_state 004B 20 E3 03 497 jb acc.3,00142$ 004E 02s00rA7 498 ljmp 00120$ 0051 499 00142$: 0051 500 C$keypad_display.c$63$4$7 ==. 501 ; keypad_display.c:63: state=3; 0051 75*00 03 502 mov _state,#0x03 0054 503 C$keypad_display.c$65$3$3 ==. 504 ; keypad_display.c:65: continue; 0054 505 00112$: 0054 506 C$keypad_display.c$68$3$3 ==. 507 ; keypad_display.c:68: switch(row) { 0054 E4 508 clr a 0055 B5*01 06 509 cjne a,_row,00143$ 0058 E4 510 clr a 0059 B5*02 02 511 cjne a,(_row + 1),00143$ 005C 80 23 512 sjmp 00113$ 005E 513 00143$: 005E 74 01 514 mov a,#0x01 0060 B5*01 06 515 cjne a,_row,00144$ 0063 E4 516 clr a 0064 B5*02 02 517 cjne a,(_row + 1),00144$ 0067 80 22 518 sjmp 00114$ 0069 519 00144$: 0069 74 02 520 mov a,#0x02 006B B5*01 06 521 cjne a,_row,00145$ 006E E4 522 clr a 006F B5*02 02 523 cjne a,(_row + 1),00145$ 0072 80 21 524 sjmp 00115$ 0074 525 00145$: 0074 74 03 526 mov a,#0x03 0076 B5*01 06 527 cjne a,_row,00146$ 0079 E4 528 clr a 007A B5*02 02 529 cjne a,(_row + 1),00146$ 007D 80 20 530 sjmp 00116$ 007F 531 00146$: 007F 532 C$keypad_display.c$69$4$9 ==. 533 ; keypad_display.c:69: case 0: 007F 80 26 534 sjmp 00120$ 0081 535 00113$: 0081 536 C$keypad_display.c$70$4$9 ==. 537 ; keypad_display.c:70: P3=display_0[state]; 0081 E5*00 538 mov a,_state 0083 90s00r04 539 mov dptr,#_display_0 0086 93 540 movc a,@a+dptr 0087 F5 B0 541 mov _P3,a 0089 542 C$keypad_display.c$71$4$9 ==. 543 ; keypad_display.c:71: break; 0089 544 C$keypad_display.c$72$4$9 ==. 545 ; keypad_display.c:72: case 1: 0089 80 1C 546 sjmp 00120$ 008B 547 00114$: 008B 548 C$keypad_display.c$73$4$9 ==. 549 ; keypad_display.c:73: P3=display_1[state]; 008B E5*00 550 mov a,_state 008D 90s00r08 551 mov dptr,#_display_1 0090 93 552 movc a,@a+dptr 0091 F5 B0 553 mov _P3,a 0093 554 C$keypad_display.c$74$4$9 ==. 555 ; keypad_display.c:74: break; 0093 556 C$keypad_display.c$75$4$9 ==. 557 ; keypad_display.c:75: case 2: 0093 80 12 558 sjmp 00120$ 0095 559 00115$: 0095 560 C$keypad_display.c$76$4$9 ==. 561 ; keypad_display.c:76: P3=display_2[state]; 0095 E5*00 562 mov a,_state 0097 90s00r0C 563 mov dptr,#_display_2 009A 93 564 movc a,@a+dptr 009B F5 B0 565 mov _P3,a 009D 566 C$keypad_display.c$77$4$9 ==. 567 ; keypad_display.c:77: break; 009D 568 C$keypad_display.c$78$4$9 ==. 569 ; keypad_display.c:78: case 3: 009D 80 08 570 sjmp 00120$ 009F 571 00116$: 009F 572 C$keypad_display.c$79$4$9 ==. 573 ; keypad_display.c:79: P3=display_3[state]; 009F E5*00 574 mov a,_state 00A1 90s00r10 575 mov dptr,#_display_3 00A4 93 576 movc a,@a+dptr 00A5 F5 B0 577 mov _P3,a 00A7 578 C$keypad_display.c$81$2$2 ==. 579 ; keypad_display.c:81: } 00A7 580 00120$: 00A7 581 C$keypad_display.c$41$2$2 ==. 582 ; keypad_display.c:41: for(row=0; row<4; row++) { 00A7 05*01 583 inc _row 00A9 E4 584 clr a 00AA B5*01 02 585 cjne a,_row,00147$ 00AD 05*02 586 inc (_row + 1) 00AF 587 00147$: 00AF 588 C$keypad_display.c$84$1$1 ==. 00AF 589 XG$main$0$0 ==. 00AF 02s00r05 590 ljmp 00118$ 591 .area CSEG (CODE) 592 .area CONST (CODE) 0000 593 Fkeypad_display$keypad$0$0 == . 0000 594 _keypad: 0000 EF 595 .db #0xEF 0001 DF 596 .db #0xDF 0002 BF 597 .db #0xBF 0003 7F 598 .db #0x7F 0004 599 Fkeypad_display$display_0$0$0 == . 0004 600 _display_0: 0004 F9 601 .db #0xF9 0005 64 602 .db #0x64 0006 70 603 .db #0x70 0007 48 604 .db #0x48 0008 605 Fkeypad_display$display_1$0$0 == . 0008 606 _display_1: 0008 59 607 .db #0x59 0009 52 608 .db #0x52 000A 42 609 .db #0x42 000B 40 610 .db #0x40 000C 611 Fkeypad_display$display_2$0$0 == . 000C 612 _display_2: 000C F8 613 .db #0xF8 000D 40 614 .db #0x40 000E 50 615 .db #0x50 000F C6 616 .db #0xC6 0010 617 Fkeypad_display$display_3$0$0 == . 0010 618 _display_3: 0010 79 619 .db #0x79 0011 C0 620 .db #0xC0 0012 49 621 .db #0x49 0013 C0 622 .db #0xC0 623 .area XINIT (CODE) 624 .area CABS (ABS,CODE) mcu8051ide-1.4.7/demo/mleddisplay.lst0000644000175000017500000004465412067167647020073 0ustar milleniummilleniummleddisplay PAGE 1 1 ; Demonstration code for MCU 8051 IDE 2 ; 3 ; Load virtual HW from "mleddisplay.vhc" 4 ; and press F2 and F6 5 ; 6 ; It should increment 4 digit number displayed 7 ; on multiplexed LED display 8 9 10 ; ----------------------------------------------- 11 ; CONSTANTS 12 ; ----------------------------------------------- 13 0020 14 data_ptr data 20h ; Number to display 0004 15 data_len equ 4h ; Number of digits 16 17 ;; Codes for 8-segment LED display 18 ; They can be easily determinated with 19 ; 8-segment editor ( [Main menu] - > 20 ; [Utilities] -> [8-segment editor] ) 0041 C0 21 numbers:db 11000000b ; 0 0042 F9 22 db 11111001b ; 1 0043 A4 23 db 10100100b ; 2 0044 B0 24 db 10110000b ; 3 0045 99 25 db 10011001b ; 4 0046 92 26 db 10010010b ; 5 0047 82 27 db 10000010b ; 6 0048 F8 28 db 11111000b ; 7 0049 80 29 db 10000000b ; 8 004A 90 30 db 10010000b ; 9 31 32 ; ----------------------------------------------- 33 ; VECTORS 34 ; ----------------------------------------------- 35 ; Reset vector 36 org 0 0000 020025 37 jmp start 38 39 ; ----------------------------------------------- 40 ; SUBPROGRAMS 41 ; ----------------------------------------------- 42 43 ;; Increment the number 44 ; 45 ; R0 must be set to data_ptr before call 46 ; 47 ; Affected registers: R0 48 ; Interrupts: None 49 ; Notes: Recursive sub-program 50 inrement_number: 0003 06 51 inc @R0 0004 B60A09 52 cjne @R0, #0Ah, inc_num_end 53 0007 7600 54 mov @R0, #0 0009 08 55 inc R0 000A B82401 56 cjne R0, #data_ptr+data_len, $+4 000D 22 57 ret 000E 1103 58 call inrement_number 59 inc_num_end: 0010 22 60 ret 61 62 ;; Display the number on the LED display 63 ; 64 ; DPTR must point to table numbers 65 ; R0 must contain (data_ptr+data_len) 66 ; 67 ; Affected registers: A, B, R0, P1, P3 68 ; Interrupts: None 69 ; Notes: Uses DPTR 70 display_number: 71 ; Select digit to display 0011 18 72 dec R0 ; In uC 0012 E5F0 73 mov A, B 0014 03 74 rr A 0015 F5F0 75 mov B, A 76 77 ; Translate the digit to binary 78 ; representation for the LED display 0017 E6 79 mov A, @R0 0018 93 80 movc A, @A+DPTR 81 82 ; Display the digit on the display 0019 75B0FF 83 mov P3, #0ffh 001C F590 84 mov P1, A 001E 85F0B0 85 mov P3, B 86 87 ; Display next digit 0021 B820ED 88 cjne R0, #data_ptr, display_number 0024 22 89 ret 90 91 ; ----------------------------------------------- 92 ; PROGRAM START 93 ; ----------------------------------------------- 94 start: 95 ; Data to zeroes 0025 752000 96 mov data_ptr+0, #0h ; left-most 0028 752100 97 mov data_ptr+1, #0h 002B 752200 98 mov data_ptr+2, #0h 002E 752300 99 mov data_ptr+3, #0h ; right-most 100 101 ; Address 1st number on the display 0031 75F0EE 102 mov B, #0EEh 103 ; Initialize DPTR (Data PoinTeR) 0034 900041 104 mov DPTR, #numbers 105 106 ; ----------------------------------------------- 107 ; MAIN LOOP 108 ; ----------------------------------------------- 109 110 main: 111 ; Show the number on the LED display 0037 7824 112 mov R0, #data_ptr+data_len 0039 1111 113 call display_number 114 115 ; Increment the number 003B 7820 116 mov R0, #data_ptr 003D 1103 117 call inrement_number 118 119 ; Close main loop 003F 80F6 120 jmp main 121 122 ; ----------------------------------------------- 123 ; PROGRAM END 124 ; ----------------------------------------------- 125 end ASSEMBLY COMPLETE, NO ERRORS FOUND, NO WARNINGS SYMBOL TABLE: ??MCU_8051_IDE . . . . . . . . . . . N NUMB 8051H NOT USED ??VERSION. . . . . . . . . . . . . . N NUMB 0147H NOT USED AC . . . . . . . . . . . . . . . . . B ADDR 00D6H NOT USED ACC. . . . . . . . . . . . . . . . . D ADDR 00E0H NOT USED ACSR . . . . . . . . . . . . . . . . D ADDR 0097H NOT USED ADCF . . . . . . . . . . . . . . . . D ADDR 00F6H NOT USED ADCLK. . . . . . . . . . . . . . . . D ADDR 00F2H NOT USED ADCON. . . . . . . . . . . . . . . . D ADDR 00F3H NOT USED ADDH . . . . . . . . . . . . . . . . D ADDR 00F5H NOT USED ADDL . . . . . . . . . . . . . . . . D ADDR 00F4H NOT USED AUXR . . . . . . . . . . . . . . . . D ADDR 008EH NOT USED AUXR1. . . . . . . . . . . . . . . . D ADDR 00A2H NOT USED B. . . . . . . . . . . . . . . . . . D ADDR 00F0H BDRCON . . . . . . . . . . . . . . . D ADDR 009BH NOT USED BDRCON_1 . . . . . . . . . . . . . . D ADDR 009CH NOT USED BRL. . . . . . . . . . . . . . . . . D ADDR 009AH NOT USED CCAP0H . . . . . . . . . . . . . . . D ADDR 00FAH NOT USED CCAP0L . . . . . . . . . . . . . . . D ADDR 00EAH NOT USED CCAP1H . . . . . . . . . . . . . . . D ADDR 00FBH NOT USED CCAP1L . . . . . . . . . . . . . . . D ADDR 00EBH NOT USED CCAP2H . . . . . . . . . . . . . . . D ADDR 00FCH NOT USED CCAP3H . . . . . . . . . . . . . . . D ADDR 00FDH NOT USED CCAP4H . . . . . . . . . . . . . . . D ADDR 00FEH NOT USED CCAPL2H. . . . . . . . . . . . . . . D ADDR 00FCH NOT USED CCAPL2L. . . . . . . . . . . . . . . D ADDR 00ECH NOT USED CCAPL3H. . . . . . . . . . . . . . . D ADDR 00FDH NOT USED CCAPL3L. . . . . . . . . . . . . . . D ADDR 00EDH NOT USED CCAPL4H. . . . . . . . . . . . . . . D ADDR 00FEH NOT USED CCAPL4L. . . . . . . . . . . . . . . D ADDR 00EEH NOT USED CCAPM0 . . . . . . . . . . . . . . . D ADDR 00DAH NOT USED CCAPM1 . . . . . . . . . . . . . . . D ADDR 00DBH NOT USED CCAPM2 . . . . . . . . . . . . . . . D ADDR 00DCH NOT USED CCAPM3 . . . . . . . . . . . . . . . D ADDR 00DDH NOT USED CCAPM4 . . . . . . . . . . . . . . . D ADDR 00DEH NOT USED CCF0 . . . . . . . . . . . . . . . . B ADDR 00D8H NOT USED CCF1 . . . . . . . . . . . . . . . . B ADDR 00D9H NOT USED CCF2 . . . . . . . . . . . . . . . . B ADDR 00DAH NOT USED CCF3 . . . . . . . . . . . . . . . . B ADDR 00DBH NOT USED CCF4 . . . . . . . . . . . . . . . . B ADDR 00DCH NOT USED CCON . . . . . . . . . . . . . . . . D ADDR 00D8H NOT USED CFINT. . . . . . . . . . . . . . . . C ADDR 0033H NOT USED CH . . . . . . . . . . . . . . . . . D ADDR 00F9H NOT USED CKCON. . . . . . . . . . . . . . . . D ADDR 008FH NOT USED CKCON0 . . . . . . . . . . . . . . . D ADDR 008FH NOT USED CKRL . . . . . . . . . . . . . . . . D ADDR 0097H NOT USED CKSEL. . . . . . . . . . . . . . . . D ADDR 0085H NOT USED CL . . . . . . . . . . . . . . . . . D ADDR 00E9H NOT USED CLKREG . . . . . . . . . . . . . . . D ADDR 008FH NOT USED CMOD . . . . . . . . . . . . . . . . D ADDR 00D9H NOT USED CPRL2. . . . . . . . . . . . . . . . B ADDR 00C8H NOT USED CR . . . . . . . . . . . . . . . . . B ADDR 00DEH NOT USED CT2. . . . . . . . . . . . . . . . . B ADDR 00C9H NOT USED CY . . . . . . . . . . . . . . . . . B ADDR 00D7H NOT USED DATA_LEN . . . . . . . . . . . . . . N NUMB 0004H DATA_PTR . . . . . . . . . . . . . . D ADDR 0020H DISPLAY_NUMBER . . . . . . . . . . . C ADDR 0011H DP0H . . . . . . . . . . . . . . . . D ADDR 0083H NOT USED DP0L . . . . . . . . . . . . . . . . D ADDR 0082H NOT USED DP1H . . . . . . . . . . . . . . . . D ADDR 0085H NOT USED DP1L . . . . . . . . . . . . . . . . D ADDR 0084H NOT USED DPH. . . . . . . . . . . . . . . . . D ADDR 0083H NOT USED DPL. . . . . . . . . . . . . . . . . D ADDR 0082H NOT USED EA . . . . . . . . . . . . . . . . . B ADDR 00AFH NOT USED EC . . . . . . . . . . . . . . . . . B ADDR 00AEH NOT USED EECON. . . . . . . . . . . . . . . . D ADDR 0096H NOT USED ES . . . . . . . . . . . . . . . . . B ADDR 00ACH NOT USED ET0. . . . . . . . . . . . . . . . . B ADDR 00A9H NOT USED ET1. . . . . . . . . . . . . . . . . B ADDR 00ABH NOT USED ET2. . . . . . . . . . . . . . . . . B ADDR 00ADH NOT USED EX0. . . . . . . . . . . . . . . . . B ADDR 00A8H NOT USED EX1. . . . . . . . . . . . . . . . . B ADDR 00AAH NOT USED EXEN2. . . . . . . . . . . . . . . . B ADDR 00CBH NOT USED EXF2 . . . . . . . . . . . . . . . . B ADDR 00CEH NOT USED EXTI0. . . . . . . . . . . . . . . . C ADDR 0003H NOT USED EXTI1. . . . . . . . . . . . . . . . C ADDR 0013H NOT USED F0 . . . . . . . . . . . . . . . . . B ADDR 00D5H NOT USED FE . . . . . . . . . . . . . . . . . B ADDR 009FH NOT USED IE . . . . . . . . . . . . . . . . . D ADDR 00A8H NOT USED IE0. . . . . . . . . . . . . . . . . B ADDR 0089H NOT USED IE1. . . . . . . . . . . . . . . . . B ADDR 008BH NOT USED INC_NUM_END. . . . . . . . . . . . . C ADDR 0010H INREMENT_NUMBER. . . . . . . . . . . C ADDR 0003H INT0 . . . . . . . . . . . . . . . . B ADDR 00B2H NOT USED INT1 . . . . . . . . . . . . . . . . B ADDR 00B3H NOT USED IP . . . . . . . . . . . . . . . . . D ADDR 00B8H NOT USED IPH. . . . . . . . . . . . . . . . . D ADDR 00B7H NOT USED IPH0 . . . . . . . . . . . . . . . . D ADDR 00B7H NOT USED IPH1 . . . . . . . . . . . . . . . . D ADDR 00B3H NOT USED IPL0 . . . . . . . . . . . . . . . . D ADDR 00B8H NOT USED IPL1 . . . . . . . . . . . . . . . . D ADDR 00B2H NOT USED IT0. . . . . . . . . . . . . . . . . B ADDR 0088H NOT USED IT1. . . . . . . . . . . . . . . . . B ADDR 008AH NOT USED KBE. . . . . . . . . . . . . . . . . D ADDR 009DH NOT USED KBF. . . . . . . . . . . . . . . . . D ADDR 009EH NOT USED KBLS . . . . . . . . . . . . . . . . D ADDR 009CH NOT USED MAIN . . . . . . . . . . . . . . . . C ADDR 0037H NUMBERS. . . . . . . . . . . . . . . C ADDR 0041H OSCCON . . . . . . . . . . . . . . . D ADDR 0086H NOT USED OV . . . . . . . . . . . . . . . . . B ADDR 00D2H NOT USED P. . . . . . . . . . . . . . . . . . B ADDR 00D0H NOT USED P0 . . . . . . . . . . . . . . . . . D ADDR 0080H NOT USED P1 . . . . . . . . . . . . . . . . . D ADDR 0090H P1M1 . . . . . . . . . . . . . . . . D ADDR 00D4H NOT USED P1M2 . . . . . . . . . . . . . . . . D ADDR 00E2H NOT USED P2 . . . . . . . . . . . . . . . . . D ADDR 00A0H NOT USED P3 . . . . . . . . . . . . . . . . . D ADDR 00B0H P3M1 . . . . . . . . . . . . . . . . D ADDR 00D5H NOT USED P3M2 . . . . . . . . . . . . . . . . D ADDR 00E3H NOT USED P4 . . . . . . . . . . . . . . . . . D ADDR 00C0H NOT USED P4M1 . . . . . . . . . . . . . . . . D ADDR 00D6H NOT USED P4M2 . . . . . . . . . . . . . . . . D ADDR 00E4H NOT USED P5 . . . . . . . . . . . . . . . . . D ADDR 00E8H NOT USED PC . . . . . . . . . . . . . . . . . B ADDR 00BEH NOT USED PCON . . . . . . . . . . . . . . . . D ADDR 0087H NOT USED PPCL . . . . . . . . . . . . . . . . B ADDR 00BEH NOT USED PS . . . . . . . . . . . . . . . . . B ADDR 00BCH NOT USED PSL. . . . . . . . . . . . . . . . . B ADDR 00BCH NOT USED PSW. . . . . . . . . . . . . . . . . D ADDR 00D0H NOT USED PT0. . . . . . . . . . . . . . . . . B ADDR 00B9H NOT USED PT0L . . . . . . . . . . . . . . . . B ADDR 00B9H NOT USED PT1. . . . . . . . . . . . . . . . . B ADDR 00BBH NOT USED PT1L . . . . . . . . . . . . . . . . B ADDR 00BBH NOT USED PT2. . . . . . . . . . . . . . . . . B ADDR 00BDH NOT USED PT2L . . . . . . . . . . . . . . . . B ADDR 00BDH NOT USED PX0. . . . . . . . . . . . . . . . . B ADDR 00B8H NOT USED PX0L . . . . . . . . . . . . . . . . B ADDR 00B8H NOT USED PX1. . . . . . . . . . . . . . . . . B ADDR 00BAH NOT USED PX1L . . . . . . . . . . . . . . . . B ADDR 00BAH NOT USED RB8. . . . . . . . . . . . . . . . . B ADDR 009AH NOT USED RCAP2H . . . . . . . . . . . . . . . D ADDR 00CBH NOT USED RCAP2L . . . . . . . . . . . . . . . D ADDR 00CAH NOT USED RCLK . . . . . . . . . . . . . . . . B ADDR 00CDH NOT USED RD . . . . . . . . . . . . . . . . . B ADDR 00B7H NOT USED REN. . . . . . . . . . . . . . . . . B ADDR 009CH NOT USED RESET. . . . . . . . . . . . . . . . C ADDR 0000H NOT USED RI . . . . . . . . . . . . . . . . . B ADDR 0098H NOT USED RS0. . . . . . . . . . . . . . . . . B ADDR 00D3H NOT USED RS1. . . . . . . . . . . . . . . . . B ADDR 00D4H NOT USED RXD. . . . . . . . . . . . . . . . . B ADDR 00B0H NOT USED SADDR. . . . . . . . . . . . . . . . D ADDR 00A9H NOT USED SADDR_0. . . . . . . . . . . . . . . D ADDR 00A9H NOT USED SADDR_1. . . . . . . . . . . . . . . D ADDR 00AAH NOT USED SADEN. . . . . . . . . . . . . . . . D ADDR 00B9H NOT USED SADEN_0. . . . . . . . . . . . . . . D ADDR 00B9H NOT USED SADEN_1. . . . . . . . . . . . . . . D ADDR 00BAH NOT USED SBUF . . . . . . . . . . . . . . . . D ADDR 0099H NOT USED SCON . . . . . . . . . . . . . . . . D ADDR 0098H NOT USED SINT . . . . . . . . . . . . . . . . C ADDR 0023H NOT USED SM0. . . . . . . . . . . . . . . . . B ADDR 009FH NOT USED SM1. . . . . . . . . . . . . . . . . B ADDR 009EH NOT USED SM2. . . . . . . . . . . . . . . . . B ADDR 009DH NOT USED SP . . . . . . . . . . . . . . . . . D ADDR 0081H NOT USED SPCON. . . . . . . . . . . . . . . . D ADDR 00C3H NOT USED SPCR . . . . . . . . . . . . . . . . D ADDR 00D5H NOT USED SPDAT. . . . . . . . . . . . . . . . D ADDR 00C5H NOT USED SPDR . . . . . . . . . . . . . . . . D ADDR 0086H NOT USED SPSR . . . . . . . . . . . . . . . . D ADDR 00AAH NOT USED SPSTA. . . . . . . . . . . . . . . . D ADDR 00C4H NOT USED START. . . . . . . . . . . . . . . . C ADDR 0025H T0 . . . . . . . . . . . . . . . . . B ADDR 00B4H NOT USED T1 . . . . . . . . . . . . . . . . . B ADDR 00B5H NOT USED T2CON. . . . . . . . . . . . . . . . D ADDR 00C8H NOT USED T2MOD. . . . . . . . . . . . . . . . D ADDR 00C9H NOT USED TB8. . . . . . . . . . . . . . . . . B ADDR 009BH NOT USED TCLK . . . . . . . . . . . . . . . . B ADDR 00CCH NOT USED TCON . . . . . . . . . . . . . . . . D ADDR 0088H NOT USED TF0. . . . . . . . . . . . . . . . . B ADDR 008DH NOT USED TF1. . . . . . . . . . . . . . . . . B ADDR 008FH NOT USED TF2. . . . . . . . . . . . . . . . . B ADDR 00CFH NOT USED TH0. . . . . . . . . . . . . . . . . D ADDR 008CH NOT USED TH1. . . . . . . . . . . . . . . . . D ADDR 008DH NOT USED TH2. . . . . . . . . . . . . . . . . D ADDR 00CDH NOT USED TI . . . . . . . . . . . . . . . . . B ADDR 0099H NOT USED TIMER0 . . . . . . . . . . . . . . . C ADDR 000BH NOT USED TIMER1 . . . . . . . . . . . . . . . C ADDR 001BH NOT USED TIMER2 . . . . . . . . . . . . . . . C ADDR 002BH NOT USED TL0. . . . . . . . . . . . . . . . . D ADDR 008AH NOT USED TL1. . . . . . . . . . . . . . . . . D ADDR 008BH NOT USED TL2. . . . . . . . . . . . . . . . . D ADDR 00CCH NOT USED TMOD . . . . . . . . . . . . . . . . D ADDR 0089H NOT USED TR0. . . . . . . . . . . . . . . . . B ADDR 008CH NOT USED TR1. . . . . . . . . . . . . . . . . B ADDR 008EH NOT USED TR2. . . . . . . . . . . . . . . . . B ADDR 00CAH NOT USED TXD. . . . . . . . . . . . . . . . . B ADDR 00B1H NOT USED WDTCON . . . . . . . . . . . . . . . D ADDR 00A7H NOT USED WDTPRG . . . . . . . . . . . . . . . D ADDR 00A7H NOT USED WDTRST . . . . . . . . . . . . . . . D ADDR 00A6H NOT USED WR . . . . . . . . . . . . . . . . . B ADDR 00B6H NOT USEDmcu8051ide-1.4.7/demo/file.hex0000644000175000017500000000006012067167647016444 0ustar milleniummillenium:0200000080FE80 :04002000333433340E :00000001FF mcu8051ide-1.4.7/demo/keypad_display.ihx0000644000175000017500000000225012067167647020536 0ustar milleniummillenium:03000000020008F3 :0300610002000397 :0500030012006480FE04 :05006400E4F509F50AB6 :0A006900C3E5099404E50A648094DD :0A0073008050EEE509241AF582E53D :0A007D000A3401F583E493F5908541 :06008700900853080F630E :08008D00080FE50830E00575DD :040095000800801FC0 :0A009900E50830E105750801801547 :0A00A300E50830E205750802800B45 :0800AD00E50820E30302010B4A :0300B500750803C8 :0A00B800E4B50906E4B50A0280234E :0A00C2007401B50906E4B50A0280D6 :0100CC002211 :0A00CD007402B50906E4B50A0280CA :0100D7002107 :0A00D8007403B50906E4B50A0280BE :0100E20020FD :0200E300802675 :0A00E500E50890011E93F5B0801CA1 :0A00EF00E50890012293F5B080129D :0A00F900E50890012693F5B0800899 :08010300E50890012A93F5B014 :07010B000509E4B509020536 :010112000AE2 :030113000200697E :04011A00EFDFBF7FD5 :04011E00F9647048C8 :0401220059524240AC :04012600F84050C687 :04012A0079C049C08F :06003700E478FFF6D8FD9D :080015007900E94400601B7A48 :05001D000090012E78A7 :030022000075A0C6 :0A00250000E493F2A308B8000205FE :08002F00A0D9F4DAF275A0FF7C :08003D007800E84400600A7934 :030045000075A0A3 :0600480000E4F309D8FCFE :08004E007800E84400600C7921 :0B00560000900000E4F0A3D8FCD9FAF1 :0300080075810AF5 :0A000B00120116E5826003020003F3 :0401160075820022CC :00000001FF mcu8051ide-1.4.7/demo/file.lst0000644000175000017500000004313512067167647016474 0ustar milleniummilleniumdemo3 demo - 3 32/13/1907 PAGE 6 1 ; MCU 8051 IDE - Demonstration code 2 ; Compiler directives 3 4 5 $DATE(32/13/1907)   ; Places date 6 ; $EJECT ; Places a fo 7 ; $INCLUDE(file.asm) ; Inserts fil 8 ; $LIST ; Allows list 9 ; $NOLIST ; Stops outpu 10 ; $NOMOD ; No predefin demo3 demo - 3 32/13/1907 PAGE 7 11 $OBJECT(file.hex) ; Places obje 12 ; $NOOBJECT ; No object f 13 $PAGING ; Break outpu 14 ; $NOPAGING ; Print listi 15 $PAGELENGTH(10) ; No. of line 16 $PAGEWIDTH(20)    ; No. of colu 17 $PRINT(file.lst) ; Places list 18 ; $NOPRINT ; Listing wil 19 ; $SYMBOLS ; Append symb 20 ; $NOSYMBOLS ; Symbol tabl demo3 demo - 3 32/13/1907 PAGE 8 21 $TITLE('demo - 3') ; Places stri 22 23 24 ;; Summary of Cross Assembler Directi 25 ;; ---------------------------------- 26 0036 27 a EQU 54d ; Define symb 001B 28 b0 DATA a / 2 ; Define inte 0031 29 c IDATA (b0*2-5) ; Def 0038 30 d BIT 070Q ; Define inte demo3 demo - 3 32/13/1907 PAGE 9 FFA5 31 e CODE 0FFA5h ; Define prog FFF2 32 var SET (A * 44) MOD 9 - 14 ; 33 34 CSEG at 20h ; Select prog 0020 3334 35 x: DB '34' ; Store byte 0022 3334 36 y: DW 3334h ; Store word 37 38 DSEG at 5d ; Select inte 39 m: DS 1 ; Reserve byt 40 demo3 demo - 3 32/13/1907 PAGE 10 41 xseg ; Select exte 42 n: DS 1 ; Reserve byt 43 44 ISEG ; Select indi 45 o: DS 1 ; Reserve byt 46 47 NOLIST ; Disable code listin 50 LIST ; Enable code listing 51 52 mc macro label ; Define macr demo3 demo - 3 32/13/1907 PAGE 11 53 IF 2 <> 2 OR 1 = 4 54 EXITM ; Exit macro 55 ENDIF 56 sjmp label 57 endm ; End of defi 58 59 CSEG ; <-- From now on, OR 60 main: ORG 0 ; Set segment ****WARNING: This ORG has lower value than the previous one 61 IF 0 ; Begin conditional a demo3 demo - 3 32/13/1907 PAGE 12 62 USING 2 ; Sel 63 ELSE ; Alternative conditi 64 USING 2 ; Sel 65 ENDIF ; End conditional ass 66 67 +1 mc main ; Macro instr 68 +1 IF 2 <> 2 OR 69 +1 EXITM 70 +1 ENDIF 0000 80FE 71 +1 sjmp main demo3 demo - 3 32/13/1907 PAGE 13 72 73 END ; End of assembly lan ASSEMBLY COMPLETE, NO ERRORS FOUND, 1 WARNING demo3 demo - 3 32/13/1907 PAGE 2 ERROR SUMMARY: Line 62, WARNING: This ORG has lower value than the previous one demo3 demo - 3 32/13/1907 PAGE 3 demo3 demo - 3 32/13/1907 PAGE 4 SYMBOL TABLE: ??MCU_8051_IDE . . . . . . . . . . . N NUMB 8051H NOT USED ??VERSION. . . . . . . . . . . . . . N NUMB 0147H NOT USED A. . . . . . . . . . . . . . . . . . N NUMB 0036H NOT USED AC . . . . . . . . . . . . . . . . . B ADDR 00D6H NOT USED ACC. . . . . . . . . . . . . . . . . D ADDR 00E0H NOT USED ACSR . . . . . . . . . . . . . . . . D ADDR 0097H NOT USED ADCF . . . . . . . . . . . . . . . . D ADDR 00F6H NOT USED ADCLK. . . . . . . . . . . . . . . . D ADDR 00F2H NOT USED ADCON. . . . . . . . . . . . . . . . D ADDR 00F3H NOT USED ADDH . . . . . . . . . . . . . . . . D ADDR 00F5H NOT USED ADDL . . . . . . . . . . . . . . . . D ADDR 00F4H NOT USED AR0. . . . . . . . . . . . . . . . . NUMB 0010H NOT USED REDEFINABLE AR1. . . . . . . . . . . . . . . . . NUMB 0011H NOT USED REDEFINABLE AR2. . . . . . . . . . . . . . . . . NUMB 0012H NOT USED REDEFINABLE AR3. . . . . . . . . . . . . . . . . NUMB 0013H NOT USED REDEFINABLE AR4. . . . . . . . . . . . . . . . . NUMB 0014H NOT USED REDEFINABLE AR5. . . . . . . . . . . . . . . . . NUMB 0015H NOT USED REDEFINABLE AR6. . . . . . . . . . . . . . . . . NUMB 0016H NOT USED REDEFINABLE AR7. . . . . . . . . . . . . . . . . NUMB 0017H NOT USED REDEFINABLE AUXR . . . . . . . . . . . . . . . . D ADDR 008EH NOT USED AUXR1. . . . . . . . . . . . . . . . D ADDR 00A2H NOT USED B. . . . . . . . . . . . . . . . . . D ADDR 00F0H NOT USED B0 . . . . . . . . . . . . . . . . . D ADDR 001BH NOT USED BDRCON . . . . . . . . . . . . . . . D ADDR 009BH NOT USED BDRCON_1 . . . . . . . . . . . . . . D ADDR 009CH NOT USED BRL. . . . . . . . . . . . . . . . . D ADDR 009AH NOT USED C. . . . . . . . . . . . . . . . . . I ADDR 0031H NOT USED CCAP0H . . . . . . . . . . . . . . . D ADDR 00FAH NOT USED CCAP0L . . . . . . . . . . . . . . . D ADDR 00EAH NOT USED CCAP1H . . . . . . . . . . . . . . . D ADDR 00FBH NOT USED CCAP1L . . . . . . . . . . . . . . . D ADDR 00EBH NOT USED CCAP2H . . . . . . . . . . . . . . . D ADDR 00FCH NOT USED CCAP3H . . . . . . . . . . . . . . . D ADDR 00FDH NOT USED CCAP4H . . . . . . . . . . . . . . . D ADDR 00FEH NOT USED CCAPL2H. . . . . . . . . . . . . . . D ADDR 00FCH NOT USED CCAPL2L. . . . . . . . . . . . . . . D ADDR 00ECH NOT USED CCAPL3H. . . . . . . . . . . . . . . D ADDR 00FDH NOT USED CCAPL3L. . . . . . . . . . . . . . . D ADDR 00EDH NOT USED CCAPL4H. . . . . . . . . . . . . . . D ADDR 00FEH NOT USED CCAPL4L. . . . . . . . . . . . . . . D ADDR 00EEH NOT USED CCAPM0 . . . . . . . . . . . . . . . D ADDR 00DAH NOT USED CCAPM1 . . . . . . . . . . . . . . . D ADDR 00DBH NOT USED CCAPM2 . . . . . . . . . . . . . . . D ADDR 00DCH NOT USED CCAPM3 . . . . . . . . . . . . . . . D ADDR 00DDH NOT USED CCAPM4 . . . . . . . . . . . . . . . D ADDR 00DEH NOT USED CCF0 . . . . . . . . . . . . . . . . B ADDR 00D8H NOT USED CCF1 . . . . . . . . . . . . . . . . B ADDR 00D9H NOT USED CCF2 . . . . . . . . . . . . . . . . B ADDR 00DAH NOT USED CCF3 . . . . . . . . . . . . . . . . B ADDR 00DBH NOT USED CCF4 . . . . . . . . . . . . . . . . B ADDR 00DCH NOT USED CCON . . . . . . . . . . . . . . . . D ADDR 00D8H NOT USED CFINT. . . . . . . . . . . . . . . . C ADDR 0033H NOT USED CH . . . . . . . . . . . . . . . . . D ADDR 00F9H NOT USED CKCON. . . . . . . . . . . . . . . . D ADDR 008FH NOT USED CKCON0 . . . . . . . . . . . . . . . D ADDR 008FH NOT USED CKRL . . . . . . . . . . . . . . . . D ADDR 0097H NOT USED CKSEL. . . . . . . . . . . . . . . . D ADDR 0085H NOT USED CL . . . . . . . . . . . . . . . . . D ADDR 00E9H NOT USED CLKREG . . . . . . . . . . . . . . . D ADDR 008FH NOT USED CMOD . . . . . . . . . . . . . . . . D ADDR 00D9H NOT USED CPRL2. . . . . . . . . . . . . . . . B ADDR 00C8H NOT USED CR . . . . . . . . . . . . . . . . . B ADDR 00DEH NOT USED CT2. . . . . . . . . . . . . . . . . B ADDR 00C9H NOT USED CY . . . . . . . . . . . . . . . . . B ADDR 00D7H NOT USED D. . . . . . . . . . . . . . . . . . B ADDR 0038H NOT USED DP0H . . . . . . . . . . . . . . . . D ADDR 0083H NOT USED DP0L . . . . . . . . . . . . . . . . D ADDR 0082H NOT USED DP1H . . . . . . . . . . . . . . . . D ADDR 0085H NOT USED demo3 demo - 3 32/13/1907 PAGE 5 DP1L . . . . . . . . . . . . . . . . D ADDR 0084H NOT USED DPH. . . . . . . . . . . . . . . . . D ADDR 0083H NOT USED DPL. . . . . . . . . . . . . . . . . D ADDR 0082H NOT USED E. . . . . . . . . . . . . . . . . . C ADDR FFA5H NOT USED EA . . . . . . . . . . . . . . . . . B ADDR 00AFH NOT USED EC . . . . . . . . . . . . . . . . . B ADDR 00AEH NOT USED EECON. . . . . . . . . . . . . . . . D ADDR 0096H NOT USED ES . . . . . . . . . . . . . . . . . B ADDR 00ACH NOT USED ET0. . . . . . . . . . . . . . . . . B ADDR 00A9H NOT USED ET1. . . . . . . . . . . . . . . . . B ADDR 00ABH NOT USED ET2. . . . . . . . . . . . . . . . . B ADDR 00ADH NOT USED EX0. . . . . . . . . . . . . . . . . B ADDR 00A8H NOT USED EX1. . . . . . . . . . . . . . . . . B ADDR 00AAH NOT USED EXEN2. . . . . . . . . . . . . . . . B ADDR 00CBH NOT USED EXF2 . . . . . . . . . . . . . . . . B ADDR 00CEH NOT USED EXTI0. . . . . . . . . . . . . . . . C ADDR 0003H NOT USED EXTI1. . . . . . . . . . . . . . . . C ADDR 0013H NOT USED F0 . . . . . . . . . . . . . . . . . B ADDR 00D5H NOT USED FE . . . . . . . . . . . . . . . . . B ADDR 009FH NOT USED IE . . . . . . . . . . . . . . . . . D ADDR 00A8H NOT USED IE0. . . . . . . . . . . . . . . . . B ADDR 0089H NOT USED IE1. . . . . . . . . . . . . . . . . B ADDR 008BH NOT USED INT0 . . . . . . . . . . . . . . . . B ADDR 00B2H NOT USED INT1 . . . . . . . . . . . . . . . . B ADDR 00B3H NOT USED IP . . . . . . . . . . . . . . . . . D ADDR 00B8H NOT USED IPH. . . . . . . . . . . . . . . . . D ADDR 00B7H NOT USED IPH0 . . . . . . . . . . . . . . . . D ADDR 00B7H NOT USED IPH1 . . . . . . . . . . . . . . . . D ADDR 00B3H NOT USED IPL0 . . . . . . . . . . . . . . . . D ADDR 00B8H NOT USED IPL1 . . . . . . . . . . . . . . . . D ADDR 00B2H NOT USED IT0. . . . . . . . . . . . . . . . . B ADDR 0088H NOT USED IT1. . . . . . . . . . . . . . . . . B ADDR 008AH NOT USED KBE. . . . . . . . . . . . . . . . . D ADDR 009DH NOT USED KBF. . . . . . . . . . . . . . . . . D ADDR 009EH NOT USED KBLS . . . . . . . . . . . . . . . . D ADDR 009CH NOT USED M. . . . . . . . . . . . . . . . . . D ADDR 0005H NOT USED MAIN . . . . . . . . . . . . . . . . C ADDR 0000H N. . . . . . . . . . . . . . . . . . X ADDR 0000H NOT USED O. . . . . . . . . . . . . . . . . . I ADDR 0000H NOT USED OSCCON . . . . . . . . . . . . . . . D ADDR 0086H NOT USED OV . . . . . . . . . . . . . . . . . B ADDR 00D2H NOT USED P. . . . . . . . . . . . . . . . . . B ADDR 00D0H NOT USED P0 . . . . . . . . . . . . . . . . . D ADDR 0080H NOT USED P1 . . . . . . . . . . . . . . . . . D ADDR 0090H NOT USED P1M1 . . . . . . . . . . . . . . . . D ADDR 00D4H NOT USED P1M2 . . . . . . . . . . . . . . . . D ADDR 00E2H NOT USED P2 . . . . . . . . . . . . . . . . . D ADDR 00A0H NOT USED P3 . . . . . . . . . . . . . . . . . D ADDR 00B0H NOT USED P3M1 . . . . . . . . . . . . . . . . D ADDR 00D5H NOT USED P3M2 . . . . . . . . . . . . . . . . D ADDR 00E3H NOT USED P4 . . . . . . . . . . . . . . . . . D ADDR 00C0H NOT USED P4M1 . . . . . . . . . . . . . . . . D ADDR 00D6H NOT USED P4M2 . . . . . . . . . . . . . . . . D ADDR 00E4H NOT USED P5 . . . . . . . . . . . . . . . . . D ADDR 00E8H NOT USED PC . . . . . . . . . . . . . . . . . B ADDR 00BEH NOT USED PCON . . . . . . . . . . . . . . . . D ADDR 0087H NOT USED PPCL . . . . . . . . . . . . . . . . B ADDR 00BEH NOT USED PS . . . . . . . . . . . . . . . . . B ADDR 00BCH NOT USED PSL. . . . . . . . . . . . . . . . . B ADDR 00BCH NOT USED PSW. . . . . . . . . . . . . . . . . D ADDR 00D0H NOT USED PT0. . . . . . . . . . . . . . . . . B ADDR 00B9H NOT USED PT0L . . . . . . . . . . . . . . . . B ADDR 00B9H NOT USED PT1. . . . . . . . . . . . . . . . . B ADDR 00BBH NOT USED PT1L . . . . . . . . . . . . . . . . B ADDR 00BBH NOT USED PT2. . . . . . . . . . . . . . . . . B ADDR 00BDH NOT USED PT2L . . . . . . . . . . . . . . . . B ADDR 00BDH NOT USED PX0. . . . . . . . . . . . . . . . . B ADDR 00B8H NOT USED PX0L . . . . . . . . . . . . . . . . B ADDR 00B8H NOT USED demo3 demo - 3 32/13/1907 PAGE 6 PX1. . . . . . . . . . . . . . . . . B ADDR 00BAH NOT USED PX1L . . . . . . . . . . . . . . . . B ADDR 00BAH NOT USED R. . . . . . . . . . . . . . . . . . B ADDR 0000H NOT USED RB8. . . . . . . . . . . . . . . . . B ADDR 009AH NOT USED RCAP2H . . . . . . . . . . . . . . . D ADDR 00CBH NOT USED RCAP2L . . . . . . . . . . . . . . . D ADDR 00CAH NOT USED RCLK . . . . . . . . . . . . . . . . B ADDR 00CDH NOT USED RD . . . . . . . . . . . . . . . . . B ADDR 00B7H NOT USED REN. . . . . . . . . . . . . . . . . B ADDR 009CH NOT USED RESET. . . . . . . . . . . . . . . . C ADDR 0000H NOT USED RI . . . . . . . . . . . . . . . . . B ADDR 0098H NOT USED RS0. . . . . . . . . . . . . . . . . B ADDR 00D3H NOT USED RS1. . . . . . . . . . . . . . . . . B ADDR 00D4H NOT USED RXD. . . . . . . . . . . . . . . . . B ADDR 00B0H NOT USED SADDR. . . . . . . . . . . . . . . . D ADDR 00A9H NOT USED SADDR_0. . . . . . . . . . . . . . . D ADDR 00A9H NOT USED SADDR_1. . . . . . . . . . . . . . . D ADDR 00AAH NOT USED SADEN. . . . . . . . . . . . . . . . D ADDR 00B9H NOT USED SADEN_0. . . . . . . . . . . . . . . D ADDR 00B9H NOT USED SADEN_1. . . . . . . . . . . . . . . D ADDR 00BAH NOT USED SBUF . . . . . . . . . . . . . . . . D ADDR 0099H NOT USED SCON . . . . . . . . . . . . . . . . D ADDR 0098H NOT USED SINT . . . . . . . . . . . . . . . . C ADDR 0023H NOT USED SM0. . . . . . . . . . . . . . . . . B ADDR 009FH NOT USED SM1. . . . . . . . . . . . . . . . . B ADDR 009EH NOT USED SM2. . . . . . . . . . . . . . . . . B ADDR 009DH NOT USED SP . . . . . . . . . . . . . . . . . D ADDR 0081H NOT USED SPCON. . . . . . . . . . . . . . . . D ADDR 00C3H NOT USED SPCR . . . . . . . . . . . . . . . . D ADDR 00D5H NOT USED SPDAT. . . . . . . . . . . . . . . . D ADDR 00C5H NOT USED SPDR . . . . . . . . . . . . . . . . D ADDR 0086H NOT USED SPSR . . . . . . . . . . . . . . . . D ADDR 00AAH NOT USED SPSTA. . . . . . . . . . . . . . . . D ADDR 00C4H NOT USED T0 . . . . . . . . . . . . . . . . . B ADDR 00B4H NOT USED T1 . . . . . . . . . . . . . . . . . B ADDR 00B5H NOT USED T2CON. . . . . . . . . . . . . . . . D ADDR 00C8H NOT USED T2MOD. . . . . . . . . . . . . . . . D ADDR 00C9H NOT USED TB8. . . . . . . . . . . . . . . . . B ADDR 009BH NOT USED TCLK . . . . . . . . . . . . . . . . B ADDR 00CCH NOT USED TCON . . . . . . . . . . . . . . . . D ADDR 0088H NOT USED TF0. . . . . . . . . . . . . . . . . B ADDR 008DH NOT USED TF1. . . . . . . . . . . . . . . . . B ADDR 008FH NOT USED TF2. . . . . . . . . . . . . . . . . B ADDR 00CFH NOT USED TH0. . . . . . . . . . . . . . . . . D ADDR 008CH NOT USED TH1. . . . . . . . . . . . . . . . . D ADDR 008DH NOT USED TH2. . . . . . . . . . . . . . . . . D ADDR 00CDH NOT USED TI . . . . . . . . . . . . . . . . . B ADDR 0099H NOT USED TIMER0 . . . . . . . . . . . . . . . C ADDR 000BH NOT USED TIMER1 . . . . . . . . . . . . . . . C ADDR 001BH NOT USED TIMER2 . . . . . . . . . . . . . . . C ADDR 002BH NOT USED TL0. . . . . . . . . . . . . . . . . D ADDR 008AH NOT USED TL1. . . . . . . . . . . . . . . . . D ADDR 008BH NOT USED TL2. . . . . . . . . . . . . . . . . D ADDR 00CCH NOT USED TMOD . . . . . . . . . . . . . . . . D ADDR 0089H NOT USED TR0. . . . . . . . . . . . . . . . . B ADDR 008CH NOT USED TR1. . . . . . . . . . . . . . . . . B ADDR 008EH NOT USED TR2. . . . . . . . . . . . . . . . . B ADDR 00CAH NOT USED TXD. . . . . . . . . . . . . . . . . B ADDR 00B1H NOT USED VAR. . . . . . . . . . . . . . . . . NUMB FFF2H NOT USED REDEFINABLE WDTCON . . . . . . . . . . . . . . . D ADDR 00A7H NOT USED WDTPRG . . . . . . . . . . . . . . . D ADDR 00A7H NOT USED WDTRST . . . . . . . . . . . . . . . D ADDR 00A6H NOT USED WR . . . . . . . . . . . . . . . . . B ADDR 00B6H NOT USED X. . . . . . . . . . . . . . . . . . C ADDR 0020H NOT USED Y. . . . . . . . . . . . . . . . . . C ADDR 0022H NOT USEDmcu8051ide-1.4.7/demo/demo.wtc0000644000175000017500000000050112067167647016462 0ustar milleniummillenium# Watches definition file -- MCU 8051 IDE v1.3.1 # Date: 10/27/2009 FF Register watches 00FF Some XRAM reg 0FF Some ERAM reg 00 ---------------- 80 IDATA reg not SFR 90 IDATA reg not SFR A0 IDATA reg not SFR B0 IDATA reg not SFR D0 ---------------- .20 Some bit .21 Another bit 20 DATA_PTR 0F COUNTERmcu8051ide-1.4.7/demo/demo2.hex0000644000175000017500000000032412067167647016536 0ustar milleniummillenium:02000000801C62 :10000B0080007F1A7E00EE9000D0938D82F00D0E53 :10001B00DFF4327D0075A8FF758AFF758903D28CDA :04002B00800080FED3 :1000D00057656C636F6D6520696E204D4355203800 :0A00E000303531204944452021202D :00000001FF mcu8051ide-1.4.7/demo/demo0.adf0000644000175000017500000000031512067167647016502 0ustar milleniummillenium# Assembler debug file for MCU 8051 IDE v1.4.7 # Used assembler: MCU 8051 IDE # Date: 12/28/2012 477C5C6C6472852B9BCD48A6D3A103DF "demo0.asm" 0 8 0 8 0 9 1 6 0 10 2 184 127 251 0 11 5 120 0 0 12 7 128 247mcu8051ide-1.4.7/demo/demo0.hex0000644000175000017500000000005212067167647016532 0ustar milleniummillenium:090000000806B87FFB780080F7C8 :00000001FF mcu8051ide-1.4.7/demo/demo_c_0.lst0000644000175000017500000006751712067167647017234 0ustar milleniummillenium 1 ;-------------------------------------------------------- 2 ; File Created by SDCC : free open source ANSI-C Compiler 3 ; Version 2.9.0 #5416 (Feb 3 2010) (UNIX) 4 ; This file was generated Sun Dec 16 06:02:12 2012 5 ;-------------------------------------------------------- 6 .module demo_c_0 7 .optsdcc -mmcs51 --model-small 8 9 ;-------------------------------------------------------- 10 ; Public variables in this module 11 ;-------------------------------------------------------- 12 .globl _main 13 .globl _someFunction 14 .globl _CY 15 .globl _AC 16 .globl _F0 17 .globl _RS1 18 .globl _RS0 19 .globl _OV 20 .globl _FL 21 .globl _P 22 .globl _PS 23 .globl _PT1 24 .globl _PX1 25 .globl _PT0 26 .globl _PX0 27 .globl _RD 28 .globl _WR 29 .globl _T1 30 .globl _T0 31 .globl _INT1 32 .globl _INT0 33 .globl _TXD 34 .globl _RXD 35 .globl _P3_7 36 .globl _P3_6 37 .globl _P3_5 38 .globl _P3_4 39 .globl _P3_3 40 .globl _P3_2 41 .globl _P3_1 42 .globl _P3_0 43 .globl _EA 44 .globl _ES 45 .globl _ET1 46 .globl _EX1 47 .globl _ET0 48 .globl _EX0 49 .globl _P2_7 50 .globl _P2_6 51 .globl _P2_5 52 .globl _P2_4 53 .globl _P2_3 54 .globl _P2_2 55 .globl _P2_1 56 .globl _P2_0 57 .globl _SM0 58 .globl _SM1 59 .globl _SM2 60 .globl _REN 61 .globl _TB8 62 .globl _RB8 63 .globl _TI 64 .globl _RI 65 .globl _P1_7 66 .globl _P1_6 67 .globl _P1_5 68 .globl _P1_4 69 .globl _P1_3 70 .globl _P1_2 71 .globl _P1_1 72 .globl _P1_0 73 .globl _TF1 74 .globl _TR1 75 .globl _TF0 76 .globl _TR0 77 .globl _IE1 78 .globl _IT1 79 .globl _IE0 80 .globl _IT0 81 .globl _P0_7 82 .globl _P0_6 83 .globl _P0_5 84 .globl _P0_4 85 .globl _P0_3 86 .globl _P0_2 87 .globl _P0_1 88 .globl _P0_0 89 .globl _B 90 .globl _A 91 .globl _ACC 92 .globl _PSW 93 .globl _IP 94 .globl _P3 95 .globl _IE 96 .globl _P2 97 .globl _SBUF 98 .globl _SCON 99 .globl _P1 100 .globl _TH1 101 .globl _TH0 102 .globl _TL1 103 .globl _TL0 104 .globl _TMOD 105 .globl _TCON 106 .globl _PCON 107 .globl _DPH 108 .globl _DPL 109 .globl _SP 110 .globl _P0 111 .globl _i 112 .globl _some_variable 113 ;-------------------------------------------------------- 114 ; special function registers 115 ;-------------------------------------------------------- 116 .area RSEG (DATA) 0080 117 G$P0$0$0 == 0x0080 0080 118 _P0 = 0x0080 0081 119 G$SP$0$0 == 0x0081 0081 120 _SP = 0x0081 0082 121 G$DPL$0$0 == 0x0082 0082 122 _DPL = 0x0082 0083 123 G$DPH$0$0 == 0x0083 0083 124 _DPH = 0x0083 0087 125 G$PCON$0$0 == 0x0087 0087 126 _PCON = 0x0087 0088 127 G$TCON$0$0 == 0x0088 0088 128 _TCON = 0x0088 0089 129 G$TMOD$0$0 == 0x0089 0089 130 _TMOD = 0x0089 008A 131 G$TL0$0$0 == 0x008a 008A 132 _TL0 = 0x008a 008B 133 G$TL1$0$0 == 0x008b 008B 134 _TL1 = 0x008b 008C 135 G$TH0$0$0 == 0x008c 008C 136 _TH0 = 0x008c 008D 137 G$TH1$0$0 == 0x008d 008D 138 _TH1 = 0x008d 0090 139 G$P1$0$0 == 0x0090 0090 140 _P1 = 0x0090 0098 141 G$SCON$0$0 == 0x0098 0098 142 _SCON = 0x0098 0099 143 G$SBUF$0$0 == 0x0099 0099 144 _SBUF = 0x0099 00A0 145 G$P2$0$0 == 0x00a0 00A0 146 _P2 = 0x00a0 00A8 147 G$IE$0$0 == 0x00a8 00A8 148 _IE = 0x00a8 00B0 149 G$P3$0$0 == 0x00b0 00B0 150 _P3 = 0x00b0 00B8 151 G$IP$0$0 == 0x00b8 00B8 152 _IP = 0x00b8 00D0 153 G$PSW$0$0 == 0x00d0 00D0 154 _PSW = 0x00d0 00E0 155 G$ACC$0$0 == 0x00e0 00E0 156 _ACC = 0x00e0 00E0 157 G$A$0$0 == 0x00e0 00E0 158 _A = 0x00e0 00F0 159 G$B$0$0 == 0x00f0 00F0 160 _B = 0x00f0 161 ;-------------------------------------------------------- 162 ; special function bits 163 ;-------------------------------------------------------- 164 .area RSEG (DATA) 0080 165 G$P0_0$0$0 == 0x0080 0080 166 _P0_0 = 0x0080 0081 167 G$P0_1$0$0 == 0x0081 0081 168 _P0_1 = 0x0081 0082 169 G$P0_2$0$0 == 0x0082 0082 170 _P0_2 = 0x0082 0083 171 G$P0_3$0$0 == 0x0083 0083 172 _P0_3 = 0x0083 0084 173 G$P0_4$0$0 == 0x0084 0084 174 _P0_4 = 0x0084 0085 175 G$P0_5$0$0 == 0x0085 0085 176 _P0_5 = 0x0085 0086 177 G$P0_6$0$0 == 0x0086 0086 178 _P0_6 = 0x0086 0087 179 G$P0_7$0$0 == 0x0087 0087 180 _P0_7 = 0x0087 0088 181 G$IT0$0$0 == 0x0088 0088 182 _IT0 = 0x0088 0089 183 G$IE0$0$0 == 0x0089 0089 184 _IE0 = 0x0089 008A 185 G$IT1$0$0 == 0x008a 008A 186 _IT1 = 0x008a 008B 187 G$IE1$0$0 == 0x008b 008B 188 _IE1 = 0x008b 008C 189 G$TR0$0$0 == 0x008c 008C 190 _TR0 = 0x008c 008D 191 G$TF0$0$0 == 0x008d 008D 192 _TF0 = 0x008d 008E 193 G$TR1$0$0 == 0x008e 008E 194 _TR1 = 0x008e 008F 195 G$TF1$0$0 == 0x008f 008F 196 _TF1 = 0x008f 0090 197 G$P1_0$0$0 == 0x0090 0090 198 _P1_0 = 0x0090 0091 199 G$P1_1$0$0 == 0x0091 0091 200 _P1_1 = 0x0091 0092 201 G$P1_2$0$0 == 0x0092 0092 202 _P1_2 = 0x0092 0093 203 G$P1_3$0$0 == 0x0093 0093 204 _P1_3 = 0x0093 0094 205 G$P1_4$0$0 == 0x0094 0094 206 _P1_4 = 0x0094 0095 207 G$P1_5$0$0 == 0x0095 0095 208 _P1_5 = 0x0095 0096 209 G$P1_6$0$0 == 0x0096 0096 210 _P1_6 = 0x0096 0097 211 G$P1_7$0$0 == 0x0097 0097 212 _P1_7 = 0x0097 0098 213 G$RI$0$0 == 0x0098 0098 214 _RI = 0x0098 0099 215 G$TI$0$0 == 0x0099 0099 216 _TI = 0x0099 009A 217 G$RB8$0$0 == 0x009a 009A 218 _RB8 = 0x009a 009B 219 G$TB8$0$0 == 0x009b 009B 220 _TB8 = 0x009b 009C 221 G$REN$0$0 == 0x009c 009C 222 _REN = 0x009c 009D 223 G$SM2$0$0 == 0x009d 009D 224 _SM2 = 0x009d 009E 225 G$SM1$0$0 == 0x009e 009E 226 _SM1 = 0x009e 009F 227 G$SM0$0$0 == 0x009f 009F 228 _SM0 = 0x009f 00A0 229 G$P2_0$0$0 == 0x00a0 00A0 230 _P2_0 = 0x00a0 00A1 231 G$P2_1$0$0 == 0x00a1 00A1 232 _P2_1 = 0x00a1 00A2 233 G$P2_2$0$0 == 0x00a2 00A2 234 _P2_2 = 0x00a2 00A3 235 G$P2_3$0$0 == 0x00a3 00A3 236 _P2_3 = 0x00a3 00A4 237 G$P2_4$0$0 == 0x00a4 00A4 238 _P2_4 = 0x00a4 00A5 239 G$P2_5$0$0 == 0x00a5 00A5 240 _P2_5 = 0x00a5 00A6 241 G$P2_6$0$0 == 0x00a6 00A6 242 _P2_6 = 0x00a6 00A7 243 G$P2_7$0$0 == 0x00a7 00A7 244 _P2_7 = 0x00a7 00A8 245 G$EX0$0$0 == 0x00a8 00A8 246 _EX0 = 0x00a8 00A9 247 G$ET0$0$0 == 0x00a9 00A9 248 _ET0 = 0x00a9 00AA 249 G$EX1$0$0 == 0x00aa 00AA 250 _EX1 = 0x00aa 00AB 251 G$ET1$0$0 == 0x00ab 00AB 252 _ET1 = 0x00ab 00AC 253 G$ES$0$0 == 0x00ac 00AC 254 _ES = 0x00ac 00AF 255 G$EA$0$0 == 0x00af 00AF 256 _EA = 0x00af 00B0 257 G$P3_0$0$0 == 0x00b0 00B0 258 _P3_0 = 0x00b0 00B1 259 G$P3_1$0$0 == 0x00b1 00B1 260 _P3_1 = 0x00b1 00B2 261 G$P3_2$0$0 == 0x00b2 00B2 262 _P3_2 = 0x00b2 00B3 263 G$P3_3$0$0 == 0x00b3 00B3 264 _P3_3 = 0x00b3 00B4 265 G$P3_4$0$0 == 0x00b4 00B4 266 _P3_4 = 0x00b4 00B5 267 G$P3_5$0$0 == 0x00b5 00B5 268 _P3_5 = 0x00b5 00B6 269 G$P3_6$0$0 == 0x00b6 00B6 270 _P3_6 = 0x00b6 00B7 271 G$P3_7$0$0 == 0x00b7 00B7 272 _P3_7 = 0x00b7 00B0 273 G$RXD$0$0 == 0x00b0 00B0 274 _RXD = 0x00b0 00B1 275 G$TXD$0$0 == 0x00b1 00B1 276 _TXD = 0x00b1 00B2 277 G$INT0$0$0 == 0x00b2 00B2 278 _INT0 = 0x00b2 00B3 279 G$INT1$0$0 == 0x00b3 00B3 280 _INT1 = 0x00b3 00B4 281 G$T0$0$0 == 0x00b4 00B4 282 _T0 = 0x00b4 00B5 283 G$T1$0$0 == 0x00b5 00B5 284 _T1 = 0x00b5 00B6 285 G$WR$0$0 == 0x00b6 00B6 286 _WR = 0x00b6 00B7 287 G$RD$0$0 == 0x00b7 00B7 288 _RD = 0x00b7 00B8 289 G$PX0$0$0 == 0x00b8 00B8 290 _PX0 = 0x00b8 00B9 291 G$PT0$0$0 == 0x00b9 00B9 292 _PT0 = 0x00b9 00BA 293 G$PX1$0$0 == 0x00ba 00BA 294 _PX1 = 0x00ba 00BB 295 G$PT1$0$0 == 0x00bb 00BB 296 _PT1 = 0x00bb 00BC 297 G$PS$0$0 == 0x00bc 00BC 298 _PS = 0x00bc 00D0 299 G$P$0$0 == 0x00d0 00D0 300 _P = 0x00d0 00D1 301 G$FL$0$0 == 0x00d1 00D1 302 _FL = 0x00d1 00D2 303 G$OV$0$0 == 0x00d2 00D2 304 _OV = 0x00d2 00D3 305 G$RS0$0$0 == 0x00d3 00D3 306 _RS0 = 0x00d3 00D4 307 G$RS1$0$0 == 0x00d4 00D4 308 _RS1 = 0x00d4 00D5 309 G$F0$0$0 == 0x00d5 00D5 310 _F0 = 0x00d5 00D6 311 G$AC$0$0 == 0x00d6 00D6 312 _AC = 0x00d6 00D7 313 G$CY$0$0 == 0x00d7 00D7 314 _CY = 0x00d7 315 ;-------------------------------------------------------- 316 ; overlayable register banks 317 ;-------------------------------------------------------- 318 .area REG_BANK_0 (REL,OVR,DATA) 0000 319 .ds 8 320 ;-------------------------------------------------------- 321 ; internal ram data 322 ;-------------------------------------------------------- 323 .area DSEG (DATA) 0000 324 G$some_variable$0$0==. 0000 325 _some_variable:: 0000 326 .ds 4 0004 327 G$i$0$0==. 0004 328 _i:: 0004 329 .ds 2 330 ;-------------------------------------------------------- 331 ; overlayable items in internal ram 332 ;-------------------------------------------------------- 333 .area OSEG (OVR,DATA) 334 ;-------------------------------------------------------- 335 ; Stack segment in internal ram 336 ;-------------------------------------------------------- 337 .area SSEG (DATA) 0000 338 __start__stack: 0000 339 .ds 1 340 341 ;-------------------------------------------------------- 342 ; indirectly addressable internal ram data 343 ;-------------------------------------------------------- 344 .area ISEG (DATA) 345 ;-------------------------------------------------------- 346 ; absolute internal ram data 347 ;-------------------------------------------------------- 348 .area IABS (ABS,DATA) 349 .area IABS (ABS,DATA) 350 ;-------------------------------------------------------- 351 ; bit data 352 ;-------------------------------------------------------- 353 .area BSEG (BIT) 354 ;-------------------------------------------------------- 355 ; paged external ram data 356 ;-------------------------------------------------------- 357 .area PSEG (PAG,XDATA) 358 ;-------------------------------------------------------- 359 ; external ram data 360 ;-------------------------------------------------------- 361 .area XSEG (XDATA) 362 ;-------------------------------------------------------- 363 ; absolute external ram data 364 ;-------------------------------------------------------- 365 .area XABS (ABS,XDATA) 366 ;-------------------------------------------------------- 367 ; external initialized ram data 368 ;-------------------------------------------------------- 369 .area XISEG (XDATA) 370 .area HOME (CODE) 371 .area GSINIT0 (CODE) 372 .area GSINIT1 (CODE) 373 .area GSINIT2 (CODE) 374 .area GSINIT3 (CODE) 375 .area GSINIT4 (CODE) 376 .area GSINIT5 (CODE) 377 .area GSINIT (CODE) 378 .area GSFINAL (CODE) 379 .area CSEG (CODE) 380 ;-------------------------------------------------------- 381 ; interrupt vector 382 ;-------------------------------------------------------- 383 .area HOME (CODE) 0000 384 __interrupt_vect: 0000 02s00r00 385 ljmp __sdcc_gsinit_startup 386 ;-------------------------------------------------------- 387 ; global & static initialisations 388 ;-------------------------------------------------------- 389 .area HOME (CODE) 390 .area GSINIT (CODE) 391 .area GSFINAL (CODE) 392 .area GSINIT (CODE) 393 .globl __sdcc_gsinit_startup 394 .globl __sdcc_program_startup 395 .globl __start__stack 396 .globl __mcs51_genXINIT 397 .globl __mcs51_genXRAMCLEAR 398 .globl __mcs51_genRAMCLEAR 0000 399 G$main$0$0 ==. 0000 400 C$demo_c_0.c$10$1$1 ==. 401 ; demo_c_0.c:10: unsigned long some_variable=0; ///< Documentation for this variable comes here 0000 E4 402 clr a 0001 F5*00 403 mov _some_variable,a 0003 F5*01 404 mov (_some_variable + 1),a 0005 F5*02 405 mov (_some_variable + 2),a 0007 F5*03 406 mov (_some_variable + 3),a 407 .area GSFINAL (CODE) 0000 02s00r03 408 ljmp __sdcc_program_startup 409 ;-------------------------------------------------------- 410 ; Home 411 ;-------------------------------------------------------- 412 .area HOME (CODE) 413 .area HOME (CODE) 0003 414 __sdcc_program_startup: 0003 12s00r0A 415 lcall _main 416 ; return from main will lock up 0006 80 FE 417 sjmp . 418 ;-------------------------------------------------------- 419 ; code 420 ;-------------------------------------------------------- 421 .area CSEG (CODE) 422 ;------------------------------------------------------------ 423 ;Allocation info for local variables in function 'someFunction' 424 ;------------------------------------------------------------ 425 ;somevalue Allocated to registers r2 426 ;------------------------------------------------------------ 0000 427 G$someFunction$0$0 ==. 0000 428 C$demo_c_0.c$20$0$0 ==. 429 ; demo_c_0.c:20: void someFunction(unsigned char somevalue) 430 ; ----------------------------------------- 431 ; function someFunction 432 ; ----------------------------------------- 0000 433 _someFunction: 0002 434 ar2 = 0x02 0003 435 ar3 = 0x03 0004 436 ar4 = 0x04 0005 437 ar5 = 0x05 0006 438 ar6 = 0x06 0007 439 ar7 = 0x07 0000 440 ar0 = 0x00 0001 441 ar1 = 0x01 0000 AA 82 442 mov r2,dpl 0002 443 C$demo_c_0.c$23$1$1 ==. 444 ; demo_c_0.c:23: P1=somevalue; 0002 8A 90 445 mov _P1,r2 0004 446 C$demo_c_0.c$24$1$1 ==. 447 ; demo_c_0.c:24: P3=somevalue^0xFF; 0004 74 FF 448 mov a,#0xFF 0006 6A 449 xrl a,r2 0007 F5 B0 450 mov _P3,a 0009 451 C$demo_c_0.c$25$1$1 ==. 0009 452 XG$someFunction$0$0 ==. 0009 22 453 ret 454 ;------------------------------------------------------------ 455 ;Allocation info for local variables in function 'main' 456 ;------------------------------------------------------------ 457 ;------------------------------------------------------------ 000A 458 G$main$0$0 ==. 000A 459 C$demo_c_0.c$28$1$1 ==. 460 ; demo_c_0.c:28: int main() 461 ; ----------------------------------------- 462 ; function main 463 ; ----------------------------------------- 000A 464 _main: 000A 465 C$demo_c_0.c$31$1$1 ==. 466 ; demo_c_0.c:31: while(1) { 000A 467 00102$: 000A 468 C$demo_c_0.c$32$2$2 ==. 469 ; demo_c_0.c:32: for(i=0; i<255; i++) { 000A E4 470 clr a 000B F5*04 471 mov _i,a 000D F5*05 472 mov (_i + 1),a 000F 473 00104$: 000F C3 474 clr c 0010 E5*04 475 mov a,_i 0012 94 FF 476 subb a,#0xFF 0014 E5*05 477 mov a,(_i + 1) 0016 64 80 478 xrl a,#0x80 0018 94 80 479 subb a,#0x80 001A 50 26 480 jnc 00107$ 001C 481 C$demo_c_0.c$33$3$3 ==. 482 ; demo_c_0.c:33: someFunction(i+2); 001C AA*04 483 mov r2,_i 001E 74 02 484 mov a,#0x02 0020 2A 485 add a,r2 0021 F5 82 486 mov dpl,a 0023 12s00r00 487 lcall _someFunction 0026 488 C$demo_c_0.c$34$3$3 ==. 489 ; demo_c_0.c:34: some_variable++; 0026 05*00 490 inc _some_variable 0028 E4 491 clr a 0029 B5*00 0C 492 cjne a,_some_variable,00114$ 002C 05*01 493 inc (_some_variable + 1) 002E B5*01 07 494 cjne a,(_some_variable + 1),00114$ 0031 05*02 495 inc (_some_variable + 2) 0033 B5*02 02 496 cjne a,(_some_variable + 2),00114$ 0036 05*03 497 inc (_some_variable + 3) 0038 498 00114$: 0038 499 C$demo_c_0.c$32$2$2 ==. 500 ; demo_c_0.c:32: for(i=0; i<255; i++) { 0038 05*04 501 inc _i 003A E4 502 clr a 003B B5*04 D1 503 cjne a,_i,00104$ 003E 05*05 504 inc (_i + 1) 0040 80 CD 505 sjmp 00104$ 0042 506 00107$: 0042 507 C$demo_c_0.c$36$2$2 ==. 508 ; demo_c_0.c:36: some_variable-=22; 0042 E5*00 509 mov a,_some_variable 0044 24 EA 510 add a,#0xea 0046 F5*00 511 mov _some_variable,a 0048 E5*01 512 mov a,(_some_variable + 1) 004A 34 FF 513 addc a,#0xff 004C F5*01 514 mov (_some_variable + 1),a 004E E5*02 515 mov a,(_some_variable + 2) 0050 34 FF 516 addc a,#0xff 0052 F5*02 517 mov (_some_variable + 2),a 0054 E5*03 518 mov a,(_some_variable + 3) 0056 34 FF 519 addc a,#0xff 0058 F5*03 520 mov (_some_variable + 3),a 005A 521 C$demo_c_0.c$40$1$1 ==. 522 ; demo_c_0.c:40: return 0; 005A 523 C$demo_c_0.c$41$1$1 ==. 005A 524 XG$main$0$0 ==. 005A 80 AE 525 sjmp 00102$ 526 .area CSEG (CODE) 527 .area CONST (CODE) 528 .area XINIT (CODE) 529 .area CABS (ABS,CODE) mcu8051ide-1.4.7/demo/demo_c_0.c0000644000175000017500000000174412067167647016642 0ustar milleniummillenium/** * Very very simple demonstration code written in C language * @file demo_c_0.c */ // This file defines registers available in AT89x51 MCUs // See /usr/share/sdcc/include/mcs51/ for alternatives #include unsigned long some_variable=0; ///< Documentation for this variable comes here int i; ///< General purpose interator /** * These lines are a doxygen documentation for this function * See doxygen manual for more details (http://www.stack.nl/~dimitri/doxygen/manual.html) * Note: Try to click on the 1st line of the function declaration and then press Ctrl+E * Some bold text * @param somevalue Some agrument */ void someFunction(unsigned char somevalue) { // P1 and P3 are variables defined in "at89x51.h" P1=somevalue; P3=somevalue^0xFF; } /** Main loop */ int main() { // Infinite loop while(1) { for(i=0; i<255; i++) { someFunction(i+2); some_variable++; } some_variable-=22; } // Report success return 0; } mcu8051ide-1.4.7/demo/LCD.adf0000644000175000017500000000174512067167647016110 0ustar milleniummillenium# Assembler debug file for MCU 8051 IDE v1.4.7 # Used assembler: MCU 8051 IDE # Date: 12/28/2012 03C83A56F6DD9B68A2D385DD90C81D42 "LCD.asm" 0 14 0 2 0 28 0 27 3 87 0 27 4 101 0 27 5 108 0 27 6 99 0 27 7 111 0 27 8 109 0 27 9 101 0 27 10 32 0 27 11 116 0 27 12 111 0 27 13 32 0 27 14 77 0 27 15 67 0 27 16 85 0 27 17 32 0 27 18 56 0 27 19 48 0 27 20 53 0 27 21 49 0 27 22 32 0 27 23 73 0 27 24 68 0 27 25 69 0 27 26 33 0 27 27 0 0 29 28 117 144 0 0 30 31 194 177 0 31 33 144 0 3 0 33 36 194 176 0 34 38 210 178 0 34 40 117 144 1 0 34 43 194 178 0 35 45 210 178 0 35 47 117 144 2 0 35 50 194 178 0 36 52 210 178 0 36 54 117 144 6 0 36 57 194 178 0 37 59 210 178 0 37 61 117 144 15 0 37 64 194 178 0 38 66 210 178 0 38 68 117 144 30 0 38 71 194 178 0 39 73 210 178 0 39 75 117 144 60 0 39 78 194 178 0 40 80 210 178 0 40 82 117 144 129 0 40 85 194 178 0 43 87 210 176 0 44 89 120 0 0 45 91 232 0 46 92 8 0 47 93 147 0 48 94 210 178 0 48 96 245 144 0 48 98 194 178 0 49 100 180 0 244 0 50 103 128 187mcu8051ide-1.4.7/demo/ledmatrix.lst0000644000175000017500000006273712067167647017557 0ustar milleniummillenium 1 ;-------------------------------------------------------- 2 ; File Created by SDCC : free open source ANSI-C Compiler 3 ; Version 2.9.0 #5416 (Feb 3 2010) (UNIX) 4 ; This file was generated Sun Dec 16 06:02:13 2012 5 ;-------------------------------------------------------- 6 .module ledmatrix 7 .optsdcc -mmcs51 --model-small 8 9 ;-------------------------------------------------------- 10 ; Public variables in this module 11 ;-------------------------------------------------------- 12 .globl _main 13 .globl _CY 14 .globl _AC 15 .globl _F0 16 .globl _RS1 17 .globl _RS0 18 .globl _OV 19 .globl _FL 20 .globl _P 21 .globl _PS 22 .globl _PT1 23 .globl _PX1 24 .globl _PT0 25 .globl _PX0 26 .globl _RD 27 .globl _WR 28 .globl _T1 29 .globl _T0 30 .globl _INT1 31 .globl _INT0 32 .globl _TXD 33 .globl _RXD 34 .globl _P3_7 35 .globl _P3_6 36 .globl _P3_5 37 .globl _P3_4 38 .globl _P3_3 39 .globl _P3_2 40 .globl _P3_1 41 .globl _P3_0 42 .globl _EA 43 .globl _ES 44 .globl _ET1 45 .globl _EX1 46 .globl _ET0 47 .globl _EX0 48 .globl _P2_7 49 .globl _P2_6 50 .globl _P2_5 51 .globl _P2_4 52 .globl _P2_3 53 .globl _P2_2 54 .globl _P2_1 55 .globl _P2_0 56 .globl _SM0 57 .globl _SM1 58 .globl _SM2 59 .globl _REN 60 .globl _TB8 61 .globl _RB8 62 .globl _TI 63 .globl _RI 64 .globl _P1_7 65 .globl _P1_6 66 .globl _P1_5 67 .globl _P1_4 68 .globl _P1_3 69 .globl _P1_2 70 .globl _P1_1 71 .globl _P1_0 72 .globl _TF1 73 .globl _TR1 74 .globl _TF0 75 .globl _TR0 76 .globl _IE1 77 .globl _IT1 78 .globl _IE0 79 .globl _IT0 80 .globl _P0_7 81 .globl _P0_6 82 .globl _P0_5 83 .globl _P0_4 84 .globl _P0_3 85 .globl _P0_2 86 .globl _P0_1 87 .globl _P0_0 88 .globl _B 89 .globl _A 90 .globl _ACC 91 .globl _PSW 92 .globl _IP 93 .globl _P3 94 .globl _IE 95 .globl _P2 96 .globl _SBUF 97 .globl _SCON 98 .globl _P1 99 .globl _TH1 100 .globl _TH0 101 .globl _TL1 102 .globl _TL0 103 .globl _TMOD 104 .globl _TCON 105 .globl _PCON 106 .globl _DPH 107 .globl _DPL 108 .globl _SP 109 .globl _P0 110 ;-------------------------------------------------------- 111 ; special function registers 112 ;-------------------------------------------------------- 113 .area RSEG (DATA) 0080 114 G$P0$0$0 == 0x0080 0080 115 _P0 = 0x0080 0081 116 G$SP$0$0 == 0x0081 0081 117 _SP = 0x0081 0082 118 G$DPL$0$0 == 0x0082 0082 119 _DPL = 0x0082 0083 120 G$DPH$0$0 == 0x0083 0083 121 _DPH = 0x0083 0087 122 G$PCON$0$0 == 0x0087 0087 123 _PCON = 0x0087 0088 124 G$TCON$0$0 == 0x0088 0088 125 _TCON = 0x0088 0089 126 G$TMOD$0$0 == 0x0089 0089 127 _TMOD = 0x0089 008A 128 G$TL0$0$0 == 0x008a 008A 129 _TL0 = 0x008a 008B 130 G$TL1$0$0 == 0x008b 008B 131 _TL1 = 0x008b 008C 132 G$TH0$0$0 == 0x008c 008C 133 _TH0 = 0x008c 008D 134 G$TH1$0$0 == 0x008d 008D 135 _TH1 = 0x008d 0090 136 G$P1$0$0 == 0x0090 0090 137 _P1 = 0x0090 0098 138 G$SCON$0$0 == 0x0098 0098 139 _SCON = 0x0098 0099 140 G$SBUF$0$0 == 0x0099 0099 141 _SBUF = 0x0099 00A0 142 G$P2$0$0 == 0x00a0 00A0 143 _P2 = 0x00a0 00A8 144 G$IE$0$0 == 0x00a8 00A8 145 _IE = 0x00a8 00B0 146 G$P3$0$0 == 0x00b0 00B0 147 _P3 = 0x00b0 00B8 148 G$IP$0$0 == 0x00b8 00B8 149 _IP = 0x00b8 00D0 150 G$PSW$0$0 == 0x00d0 00D0 151 _PSW = 0x00d0 00E0 152 G$ACC$0$0 == 0x00e0 00E0 153 _ACC = 0x00e0 00E0 154 G$A$0$0 == 0x00e0 00E0 155 _A = 0x00e0 00F0 156 G$B$0$0 == 0x00f0 00F0 157 _B = 0x00f0 158 ;-------------------------------------------------------- 159 ; special function bits 160 ;-------------------------------------------------------- 161 .area RSEG (DATA) 0080 162 G$P0_0$0$0 == 0x0080 0080 163 _P0_0 = 0x0080 0081 164 G$P0_1$0$0 == 0x0081 0081 165 _P0_1 = 0x0081 0082 166 G$P0_2$0$0 == 0x0082 0082 167 _P0_2 = 0x0082 0083 168 G$P0_3$0$0 == 0x0083 0083 169 _P0_3 = 0x0083 0084 170 G$P0_4$0$0 == 0x0084 0084 171 _P0_4 = 0x0084 0085 172 G$P0_5$0$0 == 0x0085 0085 173 _P0_5 = 0x0085 0086 174 G$P0_6$0$0 == 0x0086 0086 175 _P0_6 = 0x0086 0087 176 G$P0_7$0$0 == 0x0087 0087 177 _P0_7 = 0x0087 0088 178 G$IT0$0$0 == 0x0088 0088 179 _IT0 = 0x0088 0089 180 G$IE0$0$0 == 0x0089 0089 181 _IE0 = 0x0089 008A 182 G$IT1$0$0 == 0x008a 008A 183 _IT1 = 0x008a 008B 184 G$IE1$0$0 == 0x008b 008B 185 _IE1 = 0x008b 008C 186 G$TR0$0$0 == 0x008c 008C 187 _TR0 = 0x008c 008D 188 G$TF0$0$0 == 0x008d 008D 189 _TF0 = 0x008d 008E 190 G$TR1$0$0 == 0x008e 008E 191 _TR1 = 0x008e 008F 192 G$TF1$0$0 == 0x008f 008F 193 _TF1 = 0x008f 0090 194 G$P1_0$0$0 == 0x0090 0090 195 _P1_0 = 0x0090 0091 196 G$P1_1$0$0 == 0x0091 0091 197 _P1_1 = 0x0091 0092 198 G$P1_2$0$0 == 0x0092 0092 199 _P1_2 = 0x0092 0093 200 G$P1_3$0$0 == 0x0093 0093 201 _P1_3 = 0x0093 0094 202 G$P1_4$0$0 == 0x0094 0094 203 _P1_4 = 0x0094 0095 204 G$P1_5$0$0 == 0x0095 0095 205 _P1_5 = 0x0095 0096 206 G$P1_6$0$0 == 0x0096 0096 207 _P1_6 = 0x0096 0097 208 G$P1_7$0$0 == 0x0097 0097 209 _P1_7 = 0x0097 0098 210 G$RI$0$0 == 0x0098 0098 211 _RI = 0x0098 0099 212 G$TI$0$0 == 0x0099 0099 213 _TI = 0x0099 009A 214 G$RB8$0$0 == 0x009a 009A 215 _RB8 = 0x009a 009B 216 G$TB8$0$0 == 0x009b 009B 217 _TB8 = 0x009b 009C 218 G$REN$0$0 == 0x009c 009C 219 _REN = 0x009c 009D 220 G$SM2$0$0 == 0x009d 009D 221 _SM2 = 0x009d 009E 222 G$SM1$0$0 == 0x009e 009E 223 _SM1 = 0x009e 009F 224 G$SM0$0$0 == 0x009f 009F 225 _SM0 = 0x009f 00A0 226 G$P2_0$0$0 == 0x00a0 00A0 227 _P2_0 = 0x00a0 00A1 228 G$P2_1$0$0 == 0x00a1 00A1 229 _P2_1 = 0x00a1 00A2 230 G$P2_2$0$0 == 0x00a2 00A2 231 _P2_2 = 0x00a2 00A3 232 G$P2_3$0$0 == 0x00a3 00A3 233 _P2_3 = 0x00a3 00A4 234 G$P2_4$0$0 == 0x00a4 00A4 235 _P2_4 = 0x00a4 00A5 236 G$P2_5$0$0 == 0x00a5 00A5 237 _P2_5 = 0x00a5 00A6 238 G$P2_6$0$0 == 0x00a6 00A6 239 _P2_6 = 0x00a6 00A7 240 G$P2_7$0$0 == 0x00a7 00A7 241 _P2_7 = 0x00a7 00A8 242 G$EX0$0$0 == 0x00a8 00A8 243 _EX0 = 0x00a8 00A9 244 G$ET0$0$0 == 0x00a9 00A9 245 _ET0 = 0x00a9 00AA 246 G$EX1$0$0 == 0x00aa 00AA 247 _EX1 = 0x00aa 00AB 248 G$ET1$0$0 == 0x00ab 00AB 249 _ET1 = 0x00ab 00AC 250 G$ES$0$0 == 0x00ac 00AC 251 _ES = 0x00ac 00AF 252 G$EA$0$0 == 0x00af 00AF 253 _EA = 0x00af 00B0 254 G$P3_0$0$0 == 0x00b0 00B0 255 _P3_0 = 0x00b0 00B1 256 G$P3_1$0$0 == 0x00b1 00B1 257 _P3_1 = 0x00b1 00B2 258 G$P3_2$0$0 == 0x00b2 00B2 259 _P3_2 = 0x00b2 00B3 260 G$P3_3$0$0 == 0x00b3 00B3 261 _P3_3 = 0x00b3 00B4 262 G$P3_4$0$0 == 0x00b4 00B4 263 _P3_4 = 0x00b4 00B5 264 G$P3_5$0$0 == 0x00b5 00B5 265 _P3_5 = 0x00b5 00B6 266 G$P3_6$0$0 == 0x00b6 00B6 267 _P3_6 = 0x00b6 00B7 268 G$P3_7$0$0 == 0x00b7 00B7 269 _P3_7 = 0x00b7 00B0 270 G$RXD$0$0 == 0x00b0 00B0 271 _RXD = 0x00b0 00B1 272 G$TXD$0$0 == 0x00b1 00B1 273 _TXD = 0x00b1 00B2 274 G$INT0$0$0 == 0x00b2 00B2 275 _INT0 = 0x00b2 00B3 276 G$INT1$0$0 == 0x00b3 00B3 277 _INT1 = 0x00b3 00B4 278 G$T0$0$0 == 0x00b4 00B4 279 _T0 = 0x00b4 00B5 280 G$T1$0$0 == 0x00b5 00B5 281 _T1 = 0x00b5 00B6 282 G$WR$0$0 == 0x00b6 00B6 283 _WR = 0x00b6 00B7 284 G$RD$0$0 == 0x00b7 00B7 285 _RD = 0x00b7 00B8 286 G$PX0$0$0 == 0x00b8 00B8 287 _PX0 = 0x00b8 00B9 288 G$PT0$0$0 == 0x00b9 00B9 289 _PT0 = 0x00b9 00BA 290 G$PX1$0$0 == 0x00ba 00BA 291 _PX1 = 0x00ba 00BB 292 G$PT1$0$0 == 0x00bb 00BB 293 _PT1 = 0x00bb 00BC 294 G$PS$0$0 == 0x00bc 00BC 295 _PS = 0x00bc 00D0 296 G$P$0$0 == 0x00d0 00D0 297 _P = 0x00d0 00D1 298 G$FL$0$0 == 0x00d1 00D1 299 _FL = 0x00d1 00D2 300 G$OV$0$0 == 0x00d2 00D2 301 _OV = 0x00d2 00D3 302 G$RS0$0$0 == 0x00d3 00D3 303 _RS0 = 0x00d3 00D4 304 G$RS1$0$0 == 0x00d4 00D4 305 _RS1 = 0x00d4 00D5 306 G$F0$0$0 == 0x00d5 00D5 307 _F0 = 0x00d5 00D6 308 G$AC$0$0 == 0x00d6 00D6 309 _AC = 0x00d6 00D7 310 G$CY$0$0 == 0x00d7 00D7 311 _CY = 0x00d7 312 ;-------------------------------------------------------- 313 ; overlayable register banks 314 ;-------------------------------------------------------- 315 .area REG_BANK_0 (REL,OVR,DATA) 0000 316 .ds 8 317 ;-------------------------------------------------------- 318 ; internal ram data 319 ;-------------------------------------------------------- 320 .area DSEG (DATA) 321 ;-------------------------------------------------------- 322 ; overlayable items in internal ram 323 ;-------------------------------------------------------- 324 .area OSEG (OVR,DATA) 325 ;-------------------------------------------------------- 326 ; Stack segment in internal ram 327 ;-------------------------------------------------------- 328 .area SSEG (DATA) 0000 329 __start__stack: 0000 330 .ds 1 331 332 ;-------------------------------------------------------- 333 ; indirectly addressable internal ram data 334 ;-------------------------------------------------------- 335 .area ISEG (DATA) 336 ;-------------------------------------------------------- 337 ; absolute internal ram data 338 ;-------------------------------------------------------- 339 .area IABS (ABS,DATA) 340 .area IABS (ABS,DATA) 341 ;-------------------------------------------------------- 342 ; bit data 343 ;-------------------------------------------------------- 344 .area BSEG (BIT) 345 ;-------------------------------------------------------- 346 ; paged external ram data 347 ;-------------------------------------------------------- 348 .area PSEG (PAG,XDATA) 349 ;-------------------------------------------------------- 350 ; external ram data 351 ;-------------------------------------------------------- 352 .area XSEG (XDATA) 353 ;-------------------------------------------------------- 354 ; absolute external ram data 355 ;-------------------------------------------------------- 356 .area XABS (ABS,XDATA) 357 ;-------------------------------------------------------- 358 ; external initialized ram data 359 ;-------------------------------------------------------- 360 .area XISEG (XDATA) 361 .area HOME (CODE) 362 .area GSINIT0 (CODE) 363 .area GSINIT1 (CODE) 364 .area GSINIT2 (CODE) 365 .area GSINIT3 (CODE) 366 .area GSINIT4 (CODE) 367 .area GSINIT5 (CODE) 368 .area GSINIT (CODE) 369 .area GSFINAL (CODE) 370 .area CSEG (CODE) 371 ;-------------------------------------------------------- 372 ; interrupt vector 373 ;-------------------------------------------------------- 374 .area HOME (CODE) 0000 375 __interrupt_vect: 0000 02s00r00 376 ljmp __sdcc_gsinit_startup 377 ;-------------------------------------------------------- 378 ; global & static initialisations 379 ;-------------------------------------------------------- 380 .area HOME (CODE) 381 .area GSINIT (CODE) 382 .area GSFINAL (CODE) 383 .area GSINIT (CODE) 384 .globl __sdcc_gsinit_startup 385 .globl __sdcc_program_startup 386 .globl __start__stack 387 .globl __mcs51_genXINIT 388 .globl __mcs51_genXRAMCLEAR 389 .globl __mcs51_genRAMCLEAR 390 .area GSFINAL (CODE) 0000 02s00r03 391 ljmp __sdcc_program_startup 392 ;-------------------------------------------------------- 393 ; Home 394 ;-------------------------------------------------------- 395 .area HOME (CODE) 396 .area HOME (CODE) 0003 397 __sdcc_program_startup: 0003 12s00r00 398 lcall _main 399 ; return from main will lock up 0006 80 FE 400 sjmp . 401 ;-------------------------------------------------------- 402 ; code 403 ;-------------------------------------------------------- 404 .area CSEG (CODE) 405 ;------------------------------------------------------------ 406 ;Allocation info for local variables in function 'main' 407 ;------------------------------------------------------------ 408 ;i Allocated to registers r2 r3 409 ;------------------------------------------------------------ 0000 410 G$main$0$0 ==. 0000 411 C$ledmatrix.c$27$0$0 ==. 412 ; ledmatrix.c:27: int main() 413 ; ----------------------------------------- 414 ; function main 415 ; ----------------------------------------- 0000 416 _main: 0002 417 ar2 = 0x02 0003 418 ar3 = 0x03 0004 419 ar4 = 0x04 0005 420 ar5 = 0x05 0006 421 ar6 = 0x06 0007 422 ar7 = 0x07 0000 423 ar0 = 0x00 0001 424 ar1 = 0x01 0000 425 C$ledmatrix.c$30$1$1 ==. 426 ; ledmatrix.c:30: while(1) { 0000 427 00102$: 0000 428 C$ledmatrix.c$31$2$2 ==. 429 ; ledmatrix.c:31: for(i=0; i<8; i++) { 0000 7A 00 430 mov r2,#0x00 0002 7B 00 431 mov r3,#0x00 0004 432 00104$: 0004 C3 433 clr c 0005 EA 434 mov a,r2 0006 94 08 435 subb a,#0x08 0008 EB 436 mov a,r3 0009 64 80 437 xrl a,#0x80 000B 94 80 438 subb a,#0x80 000D 50 F1 439 jnc 00102$ 000F 440 C$ledmatrix.c$32$3$3 ==. 441 ; ledmatrix.c:32: P1 = 0xff; 000F 75 90 FF 442 mov _P1,#0xFF 0012 443 C$ledmatrix.c$33$3$3 ==. 444 ; ledmatrix.c:33: P0 = image[i]; 0012 EA 445 mov a,r2 0013 24r00 446 add a,#_image 0015 F5 82 447 mov dpl,a 0017 EB 448 mov a,r3 0018 34s00 449 addc a,#(_image >> 8) 001A F5 83 450 mov dph,a 001C E4 451 clr a 001D 93 452 movc a,@a+dptr 001E F5 80 453 mov _P0,a 0020 454 C$ledmatrix.c$34$3$3 ==. 455 ; ledmatrix.c:34: P1 = (1 << i) ^ 255; 0020 8A F0 456 mov b,r2 0022 05 F0 457 inc b 0024 7C 01 458 mov r4,#0x01 0026 7D 00 459 mov r5,#0x00 0028 80 06 460 sjmp 00115$ 002A 461 00114$: 002A EC 462 mov a,r4 002B 2C 463 add a,r4 002C FC 464 mov r4,a 002D ED 465 mov a,r5 002E 33 466 rlc a 002F FD 467 mov r5,a 0030 468 00115$: 0030 D5 F0 F7 469 djnz b,00114$ 0033 74 FF 470 mov a,#0xFF 0035 6C 471 xrl a,r4 0036 F5 90 472 mov _P1,a 0038 473 C$ledmatrix.c$31$2$2 ==. 474 ; ledmatrix.c:31: for(i=0; i<8; i++) { 0038 0A 475 inc r2 0039 BA 00 C8 476 cjne r2,#0x00,00104$ 003C 0B 477 inc r3 003D 478 C$ledmatrix.c$37$1$1 ==. 003D 479 XG$main$0$0 ==. 003D 80 C5 480 sjmp 00104$ 481 .area CSEG (CODE) 482 .area CONST (CODE) 0000 483 Fledmatrix$image$0$0 == . 0000 484 _image: 0000 B1 485 .db #0xB1 0001 9D 486 .db #0x9D 0002 BD 487 .db #0xBD 0003 B1 488 .db #0xB1 0004 B7 489 .db #0xB7 0005 B7 490 .db #0xB7 0006 11 491 .db #0x11 0007 FF 492 .db #0xFF 493 .area XINIT (CODE) 494 .area CABS (ABS,CODE) mcu8051ide-1.4.7/demo/ledmatrix.vhc0000644000175000017500000000052112067167647017514 0ustar milleniummillenium# MCU 8051 IDE: Virtual HW component configuration file # Date: 02/27/09 # Project: Demo-project # Component: LED matrix LedMatrix {{C5 0 C6 0 C7 0 R0 1 R1 1 R2 1 R3 1 R4 1 R5 1 R6 1 R7 1 C0 0 C1 0 C2 0 C3 0 C4 0} {C5 2 C6 1 C7 0 R0 7 R1 6 R2 5 R3 4 R4 3 R5 2 R6 1 R7 0 C0 7 C1 6 C2 5 C3 4 C4 3} {} {Some user note ...} blue 500 {0 0}} mcu8051ide-1.4.7/CMakeLists.txt0000644000175000017500000000476312067167647016651 0ustar milleniummilleniumPROJECT(mcu8051ide "NONE") SET(mcu8051ide_version 1.4.7) # # INITIALIZE # CMAKE_MINIMUM_REQUIRED(VERSION 2.6) SET(CMAKE_BUILD_TYPE None) SET(CMAKE_COLOR_MAKEFILE ON) SET(CMAKE_VERBOSE_MAKEFILE ON) SET(CMAKE_INCLUDE_CURRENT_DIR TRUE) # target directory (for data files) SET(target_installation_directory share/mcu8051ide) # # PREPARATION # # create launcher FILE(WRITE mcu8051ide "#!/bin/sh\n" "exec tclsh8.5 ${CMAKE_INSTALL_PREFIX}/${target_installation_directory}/lib/main.tcl \"$@\" || \\\n" "\tprintf \"Unable to execute, TCL interpreter is not reachable.\n\" > /dev/stderr" ) # # INSTALLATION # # Install icons FOREACH(subdir mcu flag other 16x16 22x22 32x32) FILE(GLOB_RECURSE icons icons/${subdir}/*.png) INSTALL(FILES ${icons} DESTINATION ${target_installation_directory}/icons/${subdir}) ENDFOREACH(subdir) # Install source code files FOREACH(subdir . bottompanel compiler configdialogues dialogues editor leftpanel lib pale rightpanel simulator simulator/engine utilities) FILE(GLOB lib lib/${subdir}/*.tcl) INSTALL(FILES ${lib} DESTINATION ${target_installation_directory}/lib/${subdir}) ENDFOREACH(subdir) # Install contents of directory hwplugins FILE(GLOB file hwplugins/*) INSTALL(FILES ${file} DESTINATION ${target_installation_directory}/hwplugins) # Install documentation files FOREACH(subdir handbook) FOREACH(ext pdf) FILE(GLOB doc doc/${subdir}/*.${ext}) INSTALL(FILES ${doc} DESTINATION ${target_installation_directory}/doc/${subdir}) ENDFOREACH(ext) ENDFOREACH(subdir) # Install manual page(s) FILE(GLOB man doc/man/*) INSTALL(FILES ${man} DESTINATION share/man/man1) # Install demonstration project files FILE(GLOB demo demo/*) INSTALL(FILES ${demo} DESTINATION ${target_installation_directory}/demo) # Install data files FILE(GLOB data data/*) INSTALL(FILES ${data} DESTINATION ${target_installation_directory}/data) # Install translation files FILE(GLOB translations translations/*) INSTALL(FILES ${translations} DESTINATION ${target_installation_directory}/translations) # Install .desktop spec and application icon INSTALL(FILES mcu8051ide.png DESTINATION share/pixmaps/) INSTALL(FILES mcu8051ide.desktop DESTINATION share/applications/) INSTALL(FILES application-x-mcu8051ide.xml DESTINATION share/mime/packages/) # Install launcher INSTALL( FILES mcu8051ide DESTINATION bin PERMISSIONS WORLD_EXECUTE WORLD_READ OWNER_WRITE OWNER_READ OWNER_EXECUTE GROUP_EXECUTE GROUP_READ ) # Install misc. files INSTALL( FILES ChangeLog LICENSE DESTINATION ${target_installation_directory} ) mcu8051ide-1.4.7/regression_tests/0000755000175000017500000000000012067167650017473 5ustar milleniummilleniummcu8051ide-1.4.7/regression_tests/assembler/0000755000175000017500000000000012067167650021450 5ustar milleniummilleniummcu8051ide-1.4.7/regression_tests/assembler/modify_output_file.lst.awk0000644000175000017500000000072512067167650026667 0ustar milleniummillenium#! /usr/bin/gawk -f # -------------------------------------------------------------------------- # Auxiliary script for regression testing environment # # Modify code listing files generated by assembler, file extension is `.lst' # -------------------------------------------------------------------------- # Remove the firts line in the code listin 1 == NR { next } # Remove symbol table /ASSEMBLY COMPLETE/ { exit(0) } # Keep everyting else ... { print($0) } mcu8051ide-1.4.7/regression_tests/assembler/testcases/0000755000175000017500000000000012067167650023446 5ustar milleniummilleniummcu8051ide-1.4.7/regression_tests/assembler/testcases/001_Trivial_test.in0000644000175000017500000000176312067167650027036 0ustar milleniummillenium# --compile asm_file Compile asm file and exit # --iram-size size Set size of internal data memory (eg. 1K or 1024) (default: 0x100) # --code-size size Set size of program memory (eg. 1K or 1024) (default: 0x10000) # --xram-size size Set size of external data memory (eg. 1K or 1024) (default: 0x10000) # --no-opt Disable optimalizations # --comp-quiet Suppress compiler console output # --no-sim Do not generate SIM file (for MCU 8051 IDE simulator) # --no-bin Do not generate binary object code # --no-lst Do not generate code listing # --no-hex Do not generate IHEX8 object code # --warning-level N Set compiler warning level # 3 - Nothing # 2 - Errros only # 1 - Errors + Warnings # 0 - All (Default) #--no-sim # sdfsdf mcu8051ide-1.4.7/regression_tests/assembler/testcases/002_Dummy_test.in0000644000175000017500000000043712067167650026515 0ustar milleniummillenium # --no-sim # Do not generate SIM file (for MCU 8051 IDE simulator) # --no-bin # Do not generate binary object code # --no-lst # Do not generate code listing # --no-hex # Do not generate IHEX8 object codemcu8051ide-1.4.7/regression_tests/assembler/testcases/001_Trivial_test.asm0000644000175000017500000000005412067167650027200 0ustar milleniummillenium org 0 m: mov A, #55h cpl A sjmp m end mcu8051ide-1.4.7/regression_tests/assembler/testcases/001_Trivial_test.lst.exp0000644000175000017500000000045312067167650030020 0ustar milleniummillenium 1 org 0 2 0000 7455 3 m: mov A, #55h 0002 F4 4 cpl A 0003 80FB 5 sjmp m 6 7 end mcu8051ide-1.4.7/regression_tests/assembler/testcases/003 dummy test.asm0000644000175000017500000000005412067167650026525 0ustar milleniummillenium org 0 m: mov A, #55h cpl A sjmp m end mcu8051ide-1.4.7/regression_tests/assembler/testcases/001_Trivial_test.hex.exp0000644000175000017500000000004212067167650027774 0ustar milleniummillenium:050000007455F480FBC3 :00000001FF mcu8051ide-1.4.7/regression_tests/assembler/testcases/003 dummy test.lst.exp0000644000175000017500000000045312067167650027345 0ustar milleniummillenium 1 org 0 2 0000 7455 3 m: mov A, #55h 0002 F4 4 cpl A 0003 80FB 5 sjmp m 6 7 end mcu8051ide-1.4.7/regression_tests/assembler/testcases/002_Dummy_test.asm0000644000175000017500000000005412067167650026662 0ustar milleniummillenium org 0 m: mov A, #55h cpl A sjmp m end mcu8051ide-1.4.7/regression_tests/assembler/testcases/003 dummy test.in0000644000175000017500000000000012067167650026342 0ustar milleniummilleniummcu8051ide-1.4.7/regression_tests/assembler/testcases/003 dummy test.hex.exp0000644000175000017500000000004212067167650027321 0ustar milleniummillenium:050000007455F480FBC3 :00000001FF mcu8051ide-1.4.7/regression_tests/assembler/testcases/002_Dummy_test.lst.exp0000644000175000017500000000045312067167650027502 0ustar milleniummillenium 1 org 0 2 0000 7455 3 m: mov A, #55h 0002 F4 4 cpl A 0003 80FB 5 sjmp m 6 7 end mcu8051ide-1.4.7/regression_tests/assembler/testcases/002_Dummy_test.hex.exp0000644000175000017500000000004212067167650027456 0ustar milleniummillenium:050000007455F480FBC3 :00000001FF mcu8051ide-1.4.7/regression_tests/assembler/runtest0000755000175000017500000000167112067167650023107 0ustar milleniummillenium#! /bin/bash # -------------------------------------------------------------------------- # # MCU 8051 IDE assembler regression testing # # This script defines what and how is suppose to be tested and runs the tests. # See README files for more information. # # -------------------------------------------------------------------------- ## Prepare regression tests environment source "$(dirname $0)/../rte.lib.sh" # Load regression test environment RTE_TEST_NAME="Assembler" # Set name of the tested subject readonly ASSEMBLER_COMMAND="tclsh ../../../lib/main.tcl --assemble" function rte_before_test() { # Create symbolic link to the source code file ln -fs "../testcases/${1}.asm" . || return 1 } function rte_perform_test() { $ASSEMBLER_COMMAND "${1}.asm" $(bash ../process_in_file "../testcases/${1}.in") --nocolor || return 1 } function rte_after_test() { # Remove symbolic link to the source code file rm -f "${1}.asm" || return 1 } mcu8051ide-1.4.7/regression_tests/assembler/results/0000755000175000017500000000000012067167650023151 5ustar milleniummilleniummcu8051ide-1.4.7/regression_tests/assembler/process_in_file0000644000175000017500000000134012067167650024534 0ustar milleniummillenium#! /bin/bash # -------------------------------------------------------------------------- # Auxiliary script for regression testing environment # # This script transforms .in files for assembler regression testing into a list # of command line switches, which are then passed to the assembler. This # process is done in this way, all comments and empty lines are removed and the # rest in then concatenated to from a single line. After this all white space # is shortened. # # Software requirements: # - gawk # -------------------------------------------------------------------------- gawk ' BEGIN { ORS=" " } { sub(/#.*$/, "", $0) print($0) } ' "${1}" | gawk ' { gsub(/[[:space:]]+/, " ", $0) printf("%s", $0) } ' mcu8051ide-1.4.7/regression_tests/assembler/modify_output_file.hex.awk0000644000175000017500000000054212067167650026646 0ustar milleniummillenium#! /usr/bin/gawk -f # -------------------------------------------------------------------------- # Auxiliary script for regression testing environment # # Modify Intel® 8 HEX files generated by assembler, file extension is `.hex' # -------------------------------------------------------------------------- # Just copy input to output { print($0) } mcu8051ide-1.4.7/regression_tests/assembler/README0000644000175000017500000000165412067167650022336 0ustar milleniummilleniumMCU 8051 IDE built-in assembler regression testing -------------------------------------------------- Directory testcases contains .in files used by RTE (Regression Testing Environment) to formulate command line switches for assembler for each specific test case. Each of these files posses one test case along with an .asm file with the same base name as the .in file has. This .asm is be compiled by assembler during the test and the resulting .hex and .lst files are be then compared to their expected content, files .exp.hex and .exp.lst in the testcase directory. Each file generated by the assembler is stored in directory named results. Each file which is supposed to be compared to its .exp. file is processed by an AWK script before the file content comparison takes place. That allows to alter the file in a almost any way. Each test case can have its own specific AWK script to alter only its results and not others. mcu8051ide-1.4.7/regression_tests/simulator/0000755000175000017500000000000012067167650021512 5ustar milleniummilleniummcu8051ide-1.4.7/regression_tests/simulator/testcases/0000755000175000017500000000000012067167650023510 5ustar milleniummilleniummcu8051ide-1.4.7/regression_tests/simulator/testcases/001_Trivial_test.in0000644000175000017500000000045212067167650027072 0ustar milleniummilleniumecho-on set-mcu at89S52 set-clock 12000 # Load program code load-code-adf `../testcases/'TESTCASE()`.adf' read-sfr-by-name A step read-pc read-sfr-by-name A step read-position read-pc read-sfr 224 step read-pc read-sfr 224 step read-pc read-sfr 224 step-back read-pc step-back read-pc read-pc mcu8051ide-1.4.7/regression_tests/simulator/testcases/001_Trivial_test.adf0000644000175000017500000000027712067167650027223 0ustar milleniummillenium# Assembler debug file for MCU 8051 IDE v1.3.10 # Used assembler: MCU 8051 IDE # Date: 10/10/2010 16EA4033A0B463FBE37FF1204EA24808 "001_Trivial_test.asm" 0 3 0 116 85 0 4 2 244 0 5 3 128 251mcu8051ide-1.4.7/regression_tests/simulator/testcases/001_Trivial_test.out.exp0000644000175000017500000000075512067167650030074 0ustar milleniummilleniumMCU8051IDE SIM-ENGINE READY OK > set-mcu at89S52 OK > set-clock 12000 OK > load-code-adf ../testcases/001_Trivial_test.adf OK > read-sfr-by-name A 0 OK > step OK > read-pc 2 OK > read-sfr-by-name A 85 OK > step OK > read-position F: "./001_Trivial_test.asm" L: 5 V: 0 B: 0 OK > read-pc 3 OK > read-sfr 224 170 OK > step OK > read-pc 0 OK > read-sfr 224 170 OK > step OK > read-pc 2 OK > read-sfr 224 85 OK > step-back 1 OK > read-pc 0 OK > step-back 1 OK > read-pc 3 OK > read-pc 3 OK EXITING mcu8051ide-1.4.7/regression_tests/simulator/modify_output_file.out.awk0000644000175000017500000000064712067167650026741 0ustar milleniummillenium#! /usr/bin/gawk -f # -------------------------------------------------------------------------- # Auxiliary script for regression tests environment # # Modify ouput files from simulator, file extension is `.out' # -------------------------------------------------------------------------- # Ignore sim. engine version /^MCU8051IDE SIM-ENGINE/ { $0="MCU8051IDE SIM-ENGINE" } # Just copy input to output { print($0) } mcu8051ide-1.4.7/regression_tests/simulator/runtest0000755000175000017500000000136312067167650023147 0ustar milleniummillenium#! /bin/bash # -------------------------------------------------------------------------- # # MCU 8051 IDE assembler regression testing # # This script defines what and how is suppose to be tested and runs the tests. # See README files for more information. # # -------------------------------------------------------------------------- ## Prepare regression testing environment source "$(dirname $0)/../rte.lib.sh" # Load regression test environment RTE_TEST_NAME="Simulator engine" # Set name of the tested subject # Set other things ... readonly SIMULATOR_COMMAND="tclsh ../../../lib/main.tcl --simulator" set -o pipefail function rte_perform_test() { m4 -D TESTCASE="${1}" "../testcases/${1}.in" | $SIMULATOR_COMMAND &> "${1}.out" || return 1 } mcu8051ide-1.4.7/regression_tests/simulator/results/0000755000175000017500000000000012067167650023213 5ustar milleniummilleniummcu8051ide-1.4.7/regression_tests/simulator/README0000644000175000017500000000140612067167650022373 0ustar milleniummilleniumMCU 8051 IDE simulator engine regression testing ------------------------------------------------ Each .in file in the testcases directory is used by RTE (Regression Testing Environment) to run specific test on the simulator. The .in file is first processed by m4 macro-processor and then passed to the simulator command line interface. Commands contained in the .in file are processed by the engine and generated output is redirected into a file with the same base name as the .in file has, but with extension .out . This .out file is located in directory named results for comparison with an .exp file located in the same directory as the .in file. See MCU 8051 IDE handbook for information about the simulator command line interface and its commands, it is a long list. mcu8051ide-1.4.7/regression_tests/rte.lib.sh0000644000175000017500000005172612067167647021407 0ustar milleniummillenium#! /bin/bash ############################################################################ # Copyright (C) 2010 by Martin Osmera # # martin.osmera@gmail.com # # # # This program is free software; you can redistribute it and#or modify # # it under the terms of the GNU General Public License as published by # # the Free Software Foundation; either version 2 of the License, or # # (at your option) any later version. # # # # This program is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU General Public License for more details. # # # # You should have received a copy of the GNU General Public License # # along with this program; if not, write to the # # Free Software Foundation, Inc., # # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # ############################################################################ # -------------------------------------------------------------------------- # DESCRIPTION # # This file servers as a small simple library implementing regression testing # environment. It should be included in a bash script which runs the test. There # are a few Bash function which can be redefined in the client script to alter # behavior of the test environment. They are: rte_before_test, rte_after_test, # rte_modify_output_files, rte_check_result. Function rte_perform_test must be # redefined and this funtion defines how are the tests performed. # # See the README file provided along with this Bash script for details. # # Software requirements: # - Bash # - Gawk (recommended) # -------------------------------------------------------------------------- # ------------------------------------------------------------------------------ # SPECIAL VARIABLES, WHICH CAN BE REDEFINED IN CLIENT SCRIPTS # ------------------------------------------------------------------------------ # Name of the tested subject declare RTE_TEST_NAME=$'\b' # With of the terminal window (number of text columns) declare RTE_LINE_WIDTH= # Allow blinking texts to be printed declare -i RTE_ALLOW_BINKING_TEXT=0 # ------------------------------------------------------------------------------ # TEST FUNCTIONS TO BE USED IN CLIENT SCRIPTS # ------------------------------------------------------------------------------ ## Do something which has to be done prior to the test itself # @note This function can be redefined in the client code # @parm String - Name of the test case currently being evaluated # @return 0 == Success; 1 == failure function rte_before_test() { _implicit_rte_function return 0 } ## Perform the test # @warning This function MUST BE REDEFINED in the client code # @parm String - Name of the test case currently being evaluated # @return 0 == Success; 1 == failure function rte_perform_test() { _implicit_rte_function _last_error="ERROR: Function rte_perform_test was not redefined!" printf "ERROR: Function rte_perform_test was not redefined!\n" printf " Read the README file for more information.\n" return 1 } ## Do something which has to be done after the test case had been done # @note This function can be redefined in the client code # @parm String - Name of the test case currently being evaluated # @return 0 == Success; 1 == failure function rte_after_test() { _implicit_rte_function return 0 } ## Do something which has to be done with the test case output files, for #+ instance remove certain line from certain files # @note This function can be redefined in the client code # @parm String - Name of the test case currently being evaluated # @return 0 == Success; 1 == failure function rte_modify_output_files() { # Local variables local filetype # Mention that this is an implicit function in the log _implicit_rte_function # Ensure that we are in the directory with the temporary output files cd "${_TEST_DIR}/results" # Apply AWK scripts to all of the result files, which has to be compared #+ with .exp files (expected results) for exp_file in "../testcases/${1}."*.exp; do # Abort if there are no .exp files if [ "$exp_file" == "../testcases/${1}.*.exp" ]; then break fi # Determinate file extension of the output file to modify filetype="$(basename "$exp_file")" filetype="${filetype%.exp}" filetype="${filetype#*.}" # Apply common AWK script if [ -e "../modify_output_file.${filetype}.awk" ]; then # Make backup copy first (add extension `.original') cp -vf "${1}.${filetype}" "${1}.${filetype}.original" # Apply the script printf "gawk -f \"../modify_output_file.${filetype}.awk\" \"${1}.${filetype}.original\" > \"${1}.${filetype}\"\n" gawk -f "../modify_output_file.${filetype}.awk" "${1}.${filetype}.original" > "${1}.${filetype}" else printf "WARNING: File not found: modify_output_file.${filetype}.awk\n" fi # Apply file type specific AWK script if [ -e "../testcases/${1}.${filetype}.awk" ]; then # Make backup copy first (add extension `.modified') cp -vf "${1}.${filetype}" "${1}.${filetype}.modified" # Apply the script printf "gawk -f \"../testcases/${1}.${filetype}.awk\" \"${1}.${filetype}.modified\" > \"${1}.${filetype}\"" gawk -f "../testcases/${1}.${filetype}.awk" "${1}.${filetype}.modified" > "${1}.${filetype}" fi done } ## Compare output files with expected results in order to determinate whether it #+ was success or failure # @note This function can be redefined in the client code # @parm String - Name of the test case currently being evaluated # @return 0 == Success; 1 == failure function rte_check_result() { # Local variables local exit_status=0 # Exit status from the `diff' tool # Mention that this is an implicit function in the log _implicit_rte_function # Ensure that we are in the directory with the temporary output files cd "${_TEST_DIR}/results" # Compare expected results with outputs from the test for exp_file in "../testcases/${1}."*.exp; do # Check if there are any .exp files if [ "$exp_file" == "../testcases/${1}.*.exp" ]; then _last_error="No expected outputs (.exp files) to compare" return 1 fi # Determinate name of the output file out_file="$(basename "$exp_file")" out_file="${out_file%.exp}" # Use `diff' to perform the file comparison printf "\ndiff \"${out_file}\" \"../testcases/${out_file}.exp\"\n" diff "${out_file}" "../testcases/${out_file}.exp" || exit_status=$? # In case of error, specify the short description of it if (( $exit_status )); then _last_error="\"results/${out_file}\" differs from \"testcases/${out_file}.exp\"" fi done return $exit_status } # ============================================================================== # ===== EVERYTHING BEYOND THIS LINE IS INTERNAL IMPLEMENTATION OF THE RTE ====== # ============================================================================== # ------------------------------------------------------------------------------ # INTERNAL RTE CONSTANTS # ------------------------------------------------------------------------------ # Version of this regression testing environment readonly _RTE_VERSION="0.1" # Directory with the client script using this code (rte.lib.sh) readonly _TEST_DIR="$(cd "$(dirname $0)";pwd)" ## Terminal color codes declare _NORMAL_COLOR='\033[m' declare _NUMBER_COLOR='\033[1;33m' declare _SUCCESS_COLOR='\033[1;32m' declare _FAILURE_COLOR='\033[1;31m' declare _EMPHASIS_COLOR='\033[1;34m' declare _BLINKING_TEXT='\033[5m' declare _BOLD_FONT='\033[1m' # ------------------------------------------------------------------------------ # INTERNAL RTE VARIABLES # ------------------------------------------------------------------------------ # Number testcases to process declare -i _NUMBER_OF_TESTCASES=0 # Name of one speicific testcase to run, empty string means run all the test cases declare _run_specific_testcase="" # Last called RTE function, this can be useful when tracing the last error declare _last_rte_function_called="" # Short description of the last known cause of a test case failure declare _last_error="" # True width of the terminal window declare -i _terminal_width=0 # ------------------------------------------------------------------------------ # INTERNAL RTE FUNTIONS -- These function should not be called outside this file # ------------------------------------------------------------------------------ ## Determinate current width of the terminal window # @note Updates _terminal_width variable # @return always 0 function determinate_terminal_width() { _terminal_width=$(( $(tput cols) - 1 )) 2> /dev/null if (( $_terminal_width == -1 )); then _terminal_width=80 fi } ## Print message to inform used about usage of an implicit RTE function # @return always 0 function _implicit_rte_function() { printf " Note: this is RTE function was not redefined" } ## Wrapper for client test function # Purpose of this wrapper is to easily track what RTE function is being called # @parm String - Name of the test case # @return Exit status function _wrapper_rte() { # Local variables local exit_status # Return value of the wrapped function # Set some global variables _last_error="" # Short description of last known error _last_rte_function_called="$2" # Name of the wrapped RTE function # Print trace printf "\n>>> %s [ENTER]\n" "$_last_rte_function_called" printf " PWD == \"%s\"\n" "$PWD" printf " \$1 == \"%s\"\n" "$1" # Call the wrapped function $_last_rte_function_called "$1" exit_status=$? # Print final trace and return printf "<<< %s [LEAVE]\n\n" "$_last_rte_function_called" return $exit_status } ## Wrapper for function rte_before_test # @parm String - Name of the test case # @return Exit status function _wrapper_rte_before_test() { _wrapper_rte "$1" 'rte_before_test' return $? } ## Wrapper for function rte_perform_test # @parm String - Name of the test case # @return Exit status function _wrapper_rte_perform_test() { _wrapper_rte "$1" 'rte_perform_test' return $? } ## Wrapper for function rte_after_test # @parm String - Name of the test case # @return Exit status function _wrapper_rte_after_test() { _wrapper_rte "$1" 'rte_after_test' return $? } ## Wrapper for function rte_modify_output_files # @parm String - Name of the test case # @return Exit status function _wrapper_rte_modify_output_files() { _wrapper_rte "$1" 'rte_modify_output_files' return $? } ## Wrapper for function rte_check_result # @parm String - Name of the test case # @return Exit status function _wrapper_rte_check_result() { _wrapper_rte "$1" 'rte_check_result' return $? } ## Count number of files in test cases directory, which names ends with `.in' # @note # This function will terminate the script with exit status 2 if some of the # input files is found to unreadable. # @return always 0 function _determinate_no_of_testcases() { # If one specific test case was chosen to perform the test on then #+ set number of found test cases to 1 and return if [ ! -z "$_run_specific_testcase" ]; then _NUMBER_OF_TESTCASES=1 return fi # Go to directory containing input files cd "${_TEST_DIR}/testcases" # Determinate total number of all available test cases for i in *.in; do # Check whether the .in file is readable if [ ! -r "$i" ]; then # Check whether the .in file even exists if [ ! -e "$i" ]; then _NUMBER_OF_TESTCASES=0 break fi # Display error message and exit if some of the .in files is not readble printf "\n${_FAILURE_COLOR}FATAL ERROR:${_NORMAL_COLOR} Unable to read file: %s\n\n" "$i" exit 2 fi # Increment counter of testcases _NUMBER_OF_TESTCASES+=1 done } ## Write header for test case log file # The header will contain test case name and current date and time # @return always 0 function _create_log_file() { printf "Starting testcase \"%s\"\n" "${1}" printf "Current date and time: %s\n" "$(date '+%c')" } ## Print line of characters # @parm Char - Character, which the line will be made of # @return always 0 function _print_line() { determinate_terminal_width for((i=0; i<${RTE_LINE_WIDTH:-$_terminal_width}; i++)); do printf "%s" "$1" done printf "\n" } ## Make backups for all output files in the results directory # @note Names of backup files ends with `~' (tilda) character # @warning This function changes working directory to the `results' directory # @return always 0 function _make_backup_files() { # Go to directory with output files (these files are only temporary) cd "${_TEST_DIR}/results" # Make backup copies for result_file in *[^~]; do if [ ! -e "$result_file" ]; then continue fi cp -f "${result_file}" "${result_file}~" &> /dev/null done } ## Run regression test(s) # # @warning # This function must be run as the last thing in the script, because it will end # the script with `exit' command. The exit status depends on actual results of # the test, status 0 means that all test cases passed and 1 means that at least # of them failed. # # @return always 0 function _runtest() { # Print PROLOG (some introductory information) _print_line '=' printf "${_BOLD_FONT}Starting %s regression testing ... " "$RTE_TEST_NAME" printf "${_NUMBER_COLOR}%d${_NORMAL_COLOR} testcases to go\n" $_NUMBER_OF_TESTCASES _print_line '=' # Abort, with exit status 2, if there are no testcases to perform if (( ! $_NUMBER_OF_TESTCASES )); then printf "\n${_FAILURE_COLOR}NO TESTCASES FOUND!${_NORMAL_COLOR}\n\n" exit 2 fi # Make backups for all output files _make_backup_files # Move to the directory with input files cd "${_TEST_DIR}/testcases" # Decalare local variables declare -i failed_tescases=0 # Number of failed test cases declare -i successfull_tescases=0 # Number of successful test cases declare -i testcase_number=0 # Number of current test case (starts from 1) declare -i succussfull_so_far=1 # Status of the current test: 0 == Already failed; 1 == Ok so far # Iterate over available input files (.in) and run test for each of them, #+ unless there has been specified one particular test case to run for testcase in *.in; do # Set some local variables succussfull_so_far=1 # Status of the current test <-- Ok testcase="${testcase%.in}" # Name of the current test case # In case the user want to run any one specific test case, skip #+ all others if [[ ! -z "$_run_specific_testcase" && "${_run_specific_testcase}" != "${testcase}" ]]; then continue fi # Increment test case counter testcase_number+=1 # Print test case name printf "Testcase: \"${_EMPHASIS_COLOR}%s${_NORMAL_COLOR}\"" "$testcase" determinate_terminal_width for((i=11 + ${#testcase} + 16; i<${RTE_LINE_WIDTH:-$_terminal_width}; i++)); do printf " " done # Print text [IN PROGRESS] next to the test case name if (( $RTE_ALLOW_BINKING_TEXT )); then printf " ${_BLINKING_TEXT}[IN PROGRESS]${_NORMAL_COLOR}" else printf " ${_NUMBER_COLOR}[IN PROGRESS]${_NORMAL_COLOR}" fi # Go to directory with output files (these files are only temporary) cd "${_TEST_DIR}/results" # -------------------------------------------------------------- # Run the test # -------------------------------------------------------------- while true; do # Create header for the log file _create_log_file "$testcase" &> "${testcase}.log" || { succussfull_so_far=0 break } # Run client testing function -- rte_before_test # Purpose: Do something which has to be done prior to # the test itself. _wrapper_rte_before_test "$testcase" &>> "${testcase}.log" || { succussfull_so_far=0 break } # Run client testing function -- rte_perform_test # Purpose: Perform the test _wrapper_rte_perform_test "$testcase" &>> "${testcase}.log" || { succussfull_so_far=0 break } # Run client testing function -- rte_after_test # Purpose: Do something which has to be done after # the testcase had been done _wrapper_rte_after_test "$testcase" &>> "${testcase}.log" || { succussfull_so_far=0 break } # Run client testing function -- rte_modify_output_files # Purpose: Do something which has to be done with the test case # output files, for instance remove certain line from # certain files _wrapper_rte_modify_output_files "$testcase" &>> "${testcase}.log" || { succussfull_so_far=0 break } # Run client testing function -- rte_check_result # Purpose: Compare output files with expected results in # order to determinate whether it was success or # failure _wrapper_rte_check_result "$testcase" &>> "${testcase}.log" || { succussfull_so_far=0 break } # If we reached this line, that means that the test case was successful break done # Go back to directory with input files (these files are permanent) cd "${_TEST_DIR}/testcases" # Erase 15 characters from right, remove the text "[IN PROGRESS]" for((i=0; i<15; i++)); do printf "\b" done # Print test case status, that is "[OK]" or "[FAILED]" #+ and increment counter successful or failed test cases if (( $succussfull_so_far )) then # Testcase was successfull successfull_tescases+=1 printf "${_SUCCESS_COLOR} [OK]${_NORMAL_COLOR}\n" else # Testcase was unsuccessfull failed_tescases+=1 printf "${_FAILURE_COLOR} [FAILED]${_NORMAL_COLOR}\n" # Print some more information about the failure ... if [ ! -z "$_last_error" ]; then printf "\tLast known error: %s\n" "$_last_error" fi printf "\tTestcase failed during execution of: ${_BOLD_FONT}%s${_NORMAL_COLOR}\n" "$_last_rte_function_called" printf "\tLog saved in: ${_TEST_DIR}/results/${testcase}.log\n\n" fi done # Print EPILOG (some information at the end) _print_line '-' printf "Statistic:\n" printf "\tTOTAL: ${_NUMBER_COLOR}%3d${_NORMAL_COLOR}\n" $testcase_number printf "\tSUCCESSFUL: ${_SUCCESS_COLOR}%3d${_NORMAL_COLOR}\n" $successfull_tescases printf "\tFAILED: ${_FAILURE_COLOR}%3d${_NORMAL_COLOR}\n" $failed_tescases _print_line '=' # Exit script accordingly to the results if (( $failed_tescases )); then exit 1 else exit 0 fi } ## Print name of this environment # @return always 0 function _print_rte_name() { printf "Regression testing environment v%s\n" "$_RTE_VERSION" } ## Print help message # @parm Bool - Disable color output # @return always 0 function _print_help() { if (( ! ${1:-0} )); then local tc_end="\033[m" local tc_bld="\033[1m" local tc_opt="\033[32m" local tc_arg="\033[33;1m" local tc_dot="\033[32;1m" fi printf "${tc_bld}" _print_rte_name printf "${tc_end}" printf "\n" printf "${tc_bld}Options:${tc_end}\n" printf "\t${tc_opt}-t${tc_end} ${tc_arg}testcase${tc_end}\tRun specific test case\n" printf "\t${tc_opt}-V${tc_end}\t\tPrint version information\n" printf "\t${tc_opt}-n${tc_end}\t\tDisable color output\n" printf "\t${tc_opt}-h${tc_end}\t\tShow this message\n" printf "\n" printf " ${tc_dot}*${tc_end} See README files in directories containing regression tests for more information.\n" printf " ${tc_dot}*${tc_end} When run without any options it will run all found test cases.\n" printf "\n" } ## Parse command line options # @parm List - command line arguments ("$@") # @return always 0 function _parse_cmd_line_opts() { local -i print_help=0 local -i no_color=0 # Parse CLI options using `getopts' utility while getopts ":hVnt:" opt; do case $opt in n) # Disable color output no_color=1 unset _NORMAL_COLOR unset _NUMBER_COLOR unset _SUCCESS_COLOR unset _FAILURE_COLOR unset _EMPHASIS_COLOR unset _BLINKING_TEXT unset _BOLD_FONT ;; t) # Specify one test case to run _run_specific_testcase="$(basename "$OPTARG")" ;; h) # Help print_help=1 ;; V) # Print version information _print_rte_name exit ;; ?) # ERROR _print_rte_name printf "Unknown option. Try -h to get help.\n" exit 1 ;; esac done if (( print_help )); then _print_help $no_color exit fi } ## Main loop # @parm List - command line arguments ("$@") # @return always 0 function _main() { # Display error message and exit of this script was run #+ alone and not included into some another file if [ "$(basename $0)" == "rte.lib.sh" ]; then printf "${_FAILURE_COLOR}ERROR:${_NORMAL_COLOR} This file serves merely as a library for regression testing.\n" printf " It does not make sense to run it alone.\n" exit 2 fi # Parse command line options _parse_cmd_line_opts "$@" # Determinate number of test cases to proceed (count .in files in test cases directory) _determinate_no_of_testcases # Run regression test(s) _runtest } ## Run tests at the end of script execution trap '_main "$@"' 0 mcu8051ide-1.4.7/regression_tests/README0000644000175000017500000001244312067167647020365 0ustar milleniummilleniumRegression testing environment ============================== == THIS IS MERELY A PRELIMINARY DOCUMENT DRAFT == What is regression testing --------------------------- "Regression testing is any type of software testing that seeks to uncover software errors by partially retesting a modified program. The intent of regression testing is to provide a general assurance that no additional errors were introduced in the process of fixing other problems." – Wikipedia, Regression testing – Implementation of this regression testing environment ----------------------------------------------------- Each test have its own directory, like 'test_of_something' or 'another_test', let's call this directory the test directory. Each test consist of a set of test cases. Each test case should test one and only one specific function of the tested software. Test cases are represented by files with extension '.in' located in directory named 'testcases' inside the test directory. Directory 'results' inside the test directory should be left empty, it is used by the testing environment for storing temporary files generated during the test. The 'testcases' directory should also contain files intended for comparison with files generated during the test and stored in the 'results' directory, these files must have extension '..exp'. Where '' must be substituted with extension of a file which this file is supposed to be compared to. In another words, if I want to check whether for example './results/something.abc' was generated as it should be, I have to create file './testcases/something.abc.exp' and this file will be automatically compared with './results/something.abc'. And that's it! This is simple, isn't it? It's just about comparing files. But are the tests run and how the files in the 'results' directory gets generated? For that we need some Bash script, which is used to run the test, let's call this script the runtest script. The runtest script must be located in the test directory and must include the 'rte.lib.sh' file, using the 'source' command (or '.' command). this script should have set permissions to be executable and this script specifies how exactly should be the test performed and also runs the test itself. When the script is about to exit, this condition is trapped and the 'rte.lib.sh' reacts by starting the test. So there is no need to explicitly run the test by invocing some function or something like that. It runs the test automatically when there is nothing else to do. How to write the runtest script -- and example of such script ------------------------------------------------------------- #! /bin/bash cd "somewhere" # Load regression test environment source "rte.lib.sh" # Set name of the tested subject RTE_TEST_NAME="Some software" # Function to performing the test function rte_perform_test() { # This is will be executed in the 'results' directory the_program_which_I_need_to_test --option something || return 1 } An example output from the runtest script ----------------------------------------- =========================================================== Starting Assembler regression testing ... 3 testcases to go =========================================================== Testcase: "001_Trivial_test" [OK] Testcase: "002_Dummy_test" [OK] Testcase: "003 dummy test" [OK] ----------------------------------------------------------- Statistic: TOTAL: 3 SUCCESSFUL: 3 FAILED: 0 =========================================================== More about the runtest scripts ------------------------------ All client (user accessible) functions and variables are prefixed with either 'rte_' or 'RTE_' meaning Regression Testing Environment. And there are a few other functions like 'rte_perform_test', note that all these functions runs in the 'results' directory. Let's take a look at them: * function 'rte_before_test': Do something which has to be done prior to the test itself * function 'rte_perform_test': Perform the test * function 'rte_after_test': Do something which has to be done after the test case had been done * function 'rte_modify_output_files': Do something which has to be done with the test case output files, for instance remove certain line from certain files * function 'rte_check_result': Compare output files with expected results in order to determinate whether it You can also set these variables: RTE_TEST_NAME - String: Name of the tested program or functionality RTE_LINE_WIDTH - Integer: Width of the terminal window RTE_ALLOW_BINKING_TEXT - Boolean: Display '[IN PROGRESS]' as blinking text Note that, if you won't set RTE_LINE_WIDTH, the runtest script will use output from command 'tput cols' to determinate actual width of the terminal window. Command line options to the runtest script ------------------------------------------ Run './runtest -h' for more details ... -t testcase Run specific test case -V Print version information -n Disable color output -h Show help message * When run without any options it will run all found test cases. Software requirements --------------------- - Bash - gawk - m4 Notes ----- See the 'rte.lib.sh' file for more details. mcu8051ide-1.4.7/hwplugins/0000755000175000017500000000000012067167647016117 5ustar milleniummilleniummcu8051ide-1.4.7/hwplugins/plug-in_template.txt0000644000175000017500000000274412067167647022135 0ustar milleniummillenium#!/usr/bin/tclsh ############################################################################ # Copyright (C) by # # # ############################################################################ # -------------------------------------------------------------------------- # DESCRIPTION # # -------------------------------------------------------------------------- set AUTHOR "" set EMAIL "" set P_VERSION "0.1" set MIN_IDE_VER "1.3" ## Free resources occupied by this plug-in # @return void proc dispose {} { } ## Initialize the plug-in # @parm Widget main_frame - Frame for this plugin assigned by MCU 8051 IDE HW plugin manager # @parm Object project_object - Reference to MCU 8051 IDE project object # @parm String current_namespace - Namespace for this plugin assigned by MCU 8051 IDE HW plugin manager # @parm String directory - Directory location of this file (not all plugin files) # @return void proc init {main_frame project_object current_namespace directory} { } ## Restore previous session # @parm String session_data - Data returned by function save_session # @return void proc restore_session {session_data} { } ## Save plug-in session # @return String - Session data for function restore_session proc save_session {} { } ## Is plugin busy ? # @return Bool - 1 == Yes; 0 == No proc is_busy {} { return 0 } mcu8051ide-1.4.7/hwplugins/README0000644000175000017500000000025312067167647016777 0ustar milleniummilleniumThis directory contains HW control plug-ins for this IDE. Please refer to the official project documentation available in "../doc/handbook/mcu8051ide.en.pdf" for details. mcu8051ide-1.4.7/mcu8051ide.desktop0000644000175000017500000000077612067167647017270 0ustar milleniummillenium[Desktop Entry] Categories=Development; Comment=Graphical IDE for MCS-51 based microcontrollers Comment[en_US]=Graphical IDE for MCS-51 based microcontrollers Encoding=UTF-8 Exec=mcu8051ide GenericName=MCU 8051 IDE GenericName[en_US]=MCU 8051 IDE Icon=mcu8051ide MimeType=application/x-mcu8051ide-project Name=MCU 8051 IDE Name[en_US]=MCU 8051 IDE StartupNotify=false Terminal=false TerminalOptions= TryExec=mcu8051ide Type=Application Version=1.0 X-DCOP-ServiceType= X-KDE-SubstituteUID=false X-KDE-Username= mcu8051ide-1.4.7/ChangeLog0000644000175000017500000002175312067167647015661 0ustar milleniummilleniumChange log for MCU 8051 IDE 1.4.6 -> 1.4.7 * Bug fixes 1.4.5 -> 1.4.6 * Bug fixes * Added support for SDCC configuration on Windows * Added support for ASEM-51 on Windows * Added a few new shortcuts to editor 1.4.4 -> 1.4.5 * Bug fixes 1.4.3 -> 1.4.4 * Bug fixes 1.4.2 -> 1.4.3 * Bug fixes * Added support for configurable width of tabulator character * Minor improvements * A little more modern look (or at least I hope) 1.4.1 -> 1.4.2 * Bug fixes * Added support for watching for modifications made to the opened files by other programs * Improved handling of memory segmentation directives by the native assembler * Minor improvements 1.4 -> 1.4.1 * Bug fixes * Added support for 0x.. notation as radix specifier for hexadecimal numbers * Added support for makefiles 1.3.11 -> 1.4 * Bug fixes * Added new Virtual HW component: LCD display controlled by HD44780 * Added new Virtual HW component: simulated DS1620 temperature sensor * Added new Virtual HW component: File interface * Added AT89S51 * Improved performance of Virtual HW * Added support for spelling checker (Hunspell) * Added 8051 Instruction table * Improved table of symbols on the right panel * Final draft of the handbook 1.3.10 -> 1.3.11 * Bug fixes * New interface for hardware control plug-ins * Added new assembler directives: ELSEIF ELSEIFN ELSEIFDEF ELSEIFNDEF * Removed assembler directive: EXITM 1.3.9 -> 1.3.10 * Bug fixes * Extended help menu * Extended global configuration dialog * Added support for multiple widget styles and GUI background colors * Added draft of handbook * Added basic support for assembler and simulator regression testing * Added regular support for i18n (internationalization) * Modified welcome dialog * Added support for external links in the GUI 1.3.8 -> 1.3.9 * Bug fixes 1.3.7 -> 1.3.8 * Bug fixes * Added feature "Global Font Size Factor" (see MCU 8051 IDE configuration dialog) * Added breakpoint validation 1.3.6 -> 1.3.7 * Bug fixes 1.3.5 -> 1.3.6 * Bug fixes 1.3.4 -> 1.3.5 * Bug fixes 1.3.3 -> 1.3.4 * "Modernized" GUI * Bug fixes 1.3.1 -> 1.3.3 * Bug fixes 1.3.1 -> 1.3.2 * Bug fixes 1.3 -> 1.3.1 * Dependency on TclX is now only optional * Important chage !: Native assembler now expands macro instructions before doing conditional assembly and before defining constants and variables ! Control sequence $NOMACROSFIRST can be used to change this behavior to the state of previous versions. * Added support for AS31 assembler * Added files notepad * Improved instruction help panel * Native assembler was extended to support these directives: "IFN IFDEF IFNDEF BYTE FLAG REPT TIMES" and these constrol sequences: "$NOXR $NOXREF $XR $XREF $NOSB $SB $RESTORE $RS $SA $SAVE $PHILIPS $NOPI $PI $NOTABS $NOMOD51 $NOBUILTIN $NOMO $MO $MOD51 $NOMACRO $NOMR $LI $NOLI $GENONLY $GO $NOGEN $NOGE $GEN $GE $ $EJ $NODB $NODEBUG $DB $DEBUG $CONDONLY $NOCOND $COND $TT $PW $PL $MR $MACRO $INC $WARNING $ERROR $DA $NOMACROSFIRST" * Added stack monitor * Various bug fixes 1.2 -> 1.3 * New dependency: TclX (tested with v8.4) * Added RS232/UART debugger * A few changes in assembler * Bug fixes (Thanks to Miroslav Hradílek for many useful bug reports) 1.1.1 -> 1.2 * Bug fixes * Added tab bar 1.1 -> 1.1.1 * Added "Special calculator" * Added "Base converter" * Many tiny improvements 1.0.9 -> 1.1 * Added support for new MCUs from Intel®: 8031, 8751, 8032, 8752, 80C31, 87C51, 80C52, 87C52, 80C32, 80C54, 87C54, 80C58, 87C58 * Added support for simulating virtual hardware * Improved simulator (Implemented UART (experimental support), improved support for timers, etc.) * Improved register watches * Improved editor (improved autocompletion and many other things) * Improved panel "Instruction details" * Improved 8-segment editor * Bug fixes in assembler, disassembler and simulator engine * Some other bug fixes * Added utility "Scribble notepad" * Improved graph panel 1.0.7 -> 1.0.9 * Added support for C language * Added map of bit addressable area 1.0.6 -> 1.0.7 * Added Stopwatch * Improved code editor * Some bug fixes 1.0.5 -> 1.0.6 * Fixed critical bug in Assembler v1.0.5 (related to peephole code optimization) * Added 8 segment LED display editor * Added ASCII chart * Added Assembly symbol table viewer 1.0 -> 1.0.5 * Added support for external assemblers ("ASEM-51" and "ASL") * Added support for external editors ("emacs", "gvim", "kwrite" and "gedit") * Added support for embedded editors ("emacs", "vim", "nano", "dav" and "le") * Added embedded terminal emulator (rxvt-unicode) * Added function "File statistics" * Improved assembler * Added syntax highlight for code listing (*.lst) * Added search bars for "Messages" and "Todo" * Removed dependency on "tcl-thread" and "tclxml" * Added dependency on "TkImg" and "tdom" * Improved hex editor * Improved simulator (especially simulation across multiple files) * Added panel "Find in files" * Modified GUI * New error handling dialog * Some bug fixes (especially critical bug in disassembler and a few bugs in assembler) * All images are now in PNG (Portable Network Graphics) (Requires TkImg) * Some more improvements 0.9.5 -> 1.0 * MANY BUG FIXES ! (including critical) * Added support for some new MCUs ( AT89S52, AT89LS51, AT89LS52, AT89S8253, AT89S2051, AT89S4051, T87C5101, T83C5101, T83C5102, TS80C32X2, TS80C52X2, TS87C52X2, AT80C32X2, AT80C52X2, AT87C52X2, AT80C54X2, AT80C58X2, AT87C54X2, AT87C58X2, TS80C54X2, TS80C58X2, TS87C54X2, TS87C58X2, TS80C31X2, AT80C31X2 ) * Added support for peephole optimization * Faster project opening * Added interrupt monitor * Added subprograms monitor * Added SFR map * Added SFR watches * Extended command line interface * Compiler now checks for valid memory addressing (new CLI options --iram-size, --eram-size, --xram-size, --code-size) * Added program hibernation capability * Added editor commands hibernate, resume, switch-mcu, set-xcode and set-xdata * Added desktop file and application icon * Some more improvements 0.9.1 -> 0.9.5 * Implemented support for 80C51, 8052, AT89C2051, AT89C4051, AT89C51, AT89C51RC, AT89C52, AT89C55WD, AT89LV51, AT89LV52 and AT89LV55 * Simulator can now step back * Added popup-based completion for editor * Added tool tips for bits in simulator control panel * Added simulator configuration dialog * Added auto save function * Manual page * Added support for multi-view (editor can be now splitted vertically or horizontally) * Many bug fixes (in compiler, editor, file selection dialog, syntax highlight, simulator, etc.) * Some minor improvements (graph, disassembler, etc.) * Thread extension is no longer required to run this program (but custom commands will won't work without it) 0.9.0 -> 0.9.1 * New hexadecimal editor * New file selection dialog * Added file system browser tab on left panel * Added tips on start-up * Added editor command line * Improved editor configuration dialog * A few bug fixes * Removed dependency on IWidgets and Tix * Some minor improvements 0.8.7 -> 0.9.0 * Implemented graph * Many bug fixes (GUI, compiler, memory leaks) * Editable shortcuts * Bookmarks for opened and project files * Search panels in left and right panel * Modified GUI (checkboxes, radio buttons ...) * Support for various encodings and EOLs * Added "Tools" -> "Change letter case", "Normalize HEX" and "SIM -> BIN" * Added editor functions "Lowercase", "Uppercase" and "Capitalize" * Added help windows for opened and project files and opened projects * Added pop-up menus for entry and text widgets (globally) * Fixed problem with fonts (bad sizes) * Implemented support for line wrapping (experimental) * Added new command line options (see `mcu8051ide --help') * More status tips and tool tips * Added welcome dialog * Added demonstration project * Cleaner, faster and safer compiler * Some more minor improvements 0.8.5 -> 0.8.7 * Implemented code validation * Added tab "Instruction details" (on the right panel) * Added Clean Up dialog * Added Right Panel configuration dialog * Added Toolbar configuration dialog * Added support for custom commands * Fixed some bugs (in GUI) * Fixed many memory leaks * Cleaner code 0.8.4 -> 0.8.5 * Fixed many bugs in GUI * Improved editor * Extended calculator * Redesigned editor configuration dialog * Added functions "Tools -> Reformat code" and "Tools -> Sim2Hex" * Extended CLI (--reset-user-settings, --config-file, --compile, --hex2bin ...) 0.8.1 -> 0.8.4 * Fixed many bugs ... (including critical) * Added compiler configuration dialog * Added calculator timers preset * Added dialog about * Added support for exporting highlighted source code to LaTeX source * Added many ToolTips * Added StatusBar tips * Added splash screen * Added support for command line options * All images are now *.XPM (X PixMap) (require Tix package) * Changed installation procedure 0.8.0 -> 0.8.1 * Fixed some bugs in compiler (not critical) * Fixed bug in to do list (saving text as SGML) * Fixed bug in project management * Added pop-up menu to to do list mcu8051ide-1.4.7/pkgs/0000755000175000017500000000000012067167647015043 5ustar milleniummilleniummcu8051ide-1.4.7/pkgs/RedHat/0000755000175000017500000000000012067167647016212 5ustar milleniummilleniummcu8051ide-1.4.7/pkgs/RedHat/mcu8051ide.spec0000644000175000017500000000336412067167647020660 0ustar milleniummilleniumName: mcu8051ide Summary: IDE for MSC-51 based MCUs Version: 0.0 Release: 0 License: GPLv2 Group: Development/Tools/IDE Source: %{name}-%{version}.tar.gz Requires: tcl >= 8.5.9, tk >= 8.5.9, bwidget >= 1.8, tclx >= 8.4, itcl >= 3.4, tdom >= 0.8, tcllib >= 1.6, tkimg >= 1.3, rxvt-unicode >= 8.3, sdcc, doxygen, indent, hunspell Provides: mcu8051ide BuildRoot: /var/tmp/%{name}-buildroot Packager: Martin Ošmera Distribution: Fedora Url: http://mcu8051ide.sf.net %description MCU 8051 IDE is integrated development enviroment for MCS-51 based microcontrollers. Supported programming languages are C and assembly. It has its own assembler and support for 2 external assemblers. For C language it uses the SDCC compiler. %prep rm -rf $RPM_BUILD_ROOT mkdir $RPM_BUILD_ROOT %setup -q %build CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" \ cmake -DCMAKE_INSTALL_PREFIX=/usr . make -j 2 %install make DESTDIR=$RPM_BUILD_ROOT install cd $RPM_BUILD_ROOT find . -type d -fprint $RPM_BUILD_DIR/file.list.%{name}.dirs find . -type f -fprint $RPM_BUILD_DIR/file.list.%{name}.files.tmp find . -type l >> $RPM_BUILD_DIR/file.list.%{name}.files.tmp sed 's/^\./\."/g;s/$/"/g' $RPM_BUILD_DIR/file.list.%{name}.files.tmp > $RPM_BUILD_DIR/file.list.%{name}.files sed '1,2d;s,^\.,\%attr(-\,root\,root) \%dir ,' $RPM_BUILD_DIR/file.list.%{name}.dirs > $RPM_BUILD_DIR/file.list.%{name} sed 's,^\.,\%attr(-\,root\,root) ,' $RPM_BUILD_DIR/file.list.%{name}.files >> $RPM_BUILD_DIR/file.list.%{name} %clean rm -rf $RPM_BUILD_ROOT rm -rf $RPM_BUILD_DIR/file.list.%{name} rm -rf $RPM_BUILD_DIR/file.list.%{name}.files rm -rf $RPM_BUILD_DIR/file.list.%{name}.dirs %files -f ../file.list.%{name} %defattr(-,root,root,0755) %verifyscript mcu8051ide --check-libraries mcu8051ide-1.4.7/pkgs/Windows/0000755000175000017500000000000012067167647016475 5ustar milleniummilleniummcu8051ide-1.4.7/pkgs/Windows/setup_image.bmp0000644000175000017500000015751612067167647021516 0ustar milleniummilleniumBMN6(V3f333f3333f3ffffff3f̙3f3f333f333333333f33333333f33f3ff3f3f3f3333f33̙33333f3333333f3333f3ffffff3f33ff3f3f3f3fff3ffffffffffff3ffff̙fff3fffffff3ffffff3f333f3333f3ffffff3f̙̙3̙f̙̙̙̙3f3f333f3333f3ffffff3f̙3f3f3f333f3333f3ffffff3f̙3f3f`ߊRH<Qo޽dgdW!j|ӧ$7ކ߇׃׃׬~ת~ת~׬׫ת׫֪׫~׀րת~ת׫׫ת~ת~ת~׫~~~׃Y׬ת׫ת׬׫ת׫֪תրրת׫׫ת׬׫~׃׃׃׭׫ת׀֪׀׬ת׬ת׫֪~׀׬~׫׫׫׫~~׃Y׫׬׀׀׫׀׬׫ת׀׫ր~׫֪׬׀׫׫ր׫~׭׃׫׫׬~׬ת׫֪׫ր~֪׫׫~ת~ת׃׃׫׬׫~֫ת֫ת׬׀YY׬ת֬׫֫׫׫׫׬֫׬׬׫׫׬V֪׫ׁ׭Y׃׬~~~׀ת׫׬׫תת׫׫׫~׬~ת~׫֪֫׬~׀ת׫ׁ׬׃Yת~ת׬׀~~׀׬׬ת׀תր׫׫֪֫תתתׁ׃׃׃׭ת׀׀׬~րր~׀׫~~~֪~׫~֪֫~~תתׁ׃Yת׫׬׀׀ת׫׬׬ת׀ր֪ր׫׫֫׀րת׀ׁ׬׭׃׫׬~׫׬׫׬~ת׫׫~׫׬֪׫׬ת~ת׬׃׃ת׬~׀׀֪׀׬YY׬׀ת׬׃׭׭׃׃׭׆a׆קvvנצ|vv|||v׭׃׃׃YZׅZvv|vѠקv׃׭׃Yֆaaavvpvצvvv׭׃׭׃ײaavvvvנv|צ׭׭׭׭׫Z[ײZZavvצצvvpvZצ|vv|ׁׁ׬VV׬׬ׁ׬׬VׁׁV׬ׁ׬׬VV׬׬ׁׁ׬׬׬׬׬׬+ׁVV׬ׁ׬׭_______׬׬׬׬ׁ׬׬V׬׬׬׬ׁׁ׬ׁׁ׬׬Vׁ׬ׁׁ׬׬VVׁׁV׬V+׬Vׁׁ׬VׁV׬ׁ׬׬׬ׁV׬ׁׁ׬׬Vׁ׬VVVV׬׬׬׬V׬+׬V׬VVׁVVׁ׬VׁׁVׁV׬V׬׬ׁ׬׬V׬׬׬Vׁ׬ׁ׬ׁׁׁׁ׬׬׬+VׁVׁׁ׬׬׬VVׁׁV׬׬V׬VV׬׬VVVVV׬ׁV׬VV׬V׬V׬׬VV׬׬׬VVׁ׬׬׬Vׁ׬׬VVׁׁ׬V׬V׬ׁVׁ+V׬V׬׬V׬V׬ׁ׬VV׬׬׬VVׁ׬VVVV׬V׬+׬VׁV׬ׁ׬+ײײCChײC׬׬V׬VײײCײׁV׬VhCׁׁׁVCCCCC׬VׁVhhCCh׬V׬V׍׍ײCh׍׬׬׬ײײCײ׬׬׬hhײChׁ׬VCCCChCCׁ׬Vhhײhh׬׬V׍׍h׍C׬ׁVײײCײ׬ׁVhhCׁׁChCCײCCC׬VhCh׍hhC׬׬׬V׍׍ײ׍ׁ׬׬׬Vײײײhײׁ׬VׁׁVCׁׁVVVChChC׬׬V׬+VhChh׬VV׍׍Ch׍ׁ׬VׁײײײV׬Vׁׁ׬VVVׁV׬VVׁV׬+׬VV׬V׬׬׬VׁׁV׬ׁ׬V+V׬ׁVײײײVV׬׬V׬hChC׍CCh׬׬Vׁ׬׬ײCCײCChC׍ׁ׬׬V׬׬CC׍ײhׁ׬׬׬׬ײCײhCײhCCײChCCCCCCCCChV׬׬׍׍hhChhײh׬V׬׬׍CCCײ׍C׬ׁ׬ׁ׬ײhhChhh׬ׁ׬ׁׁCh׍Ch׍Cׁ׬ׁ׬VVײײײhײCׁ׬ׁV׬ײChhhChChhhhׁVׁ׬VVhhhChChhhhCCׁׁ׬׬׬׍C׍hCCh׬ׁ׬׬׬VhCײ׍hChh׬׬V+׬VV׬׍׍Chײ׍C׍C׬VV׬׬h׍hhCײײײׁׁVV׬Cײײײ׬V׬V׬hCײhC׍CCh׍Cׁׁ׬V׬׬׍hCCChhCCCCCCCCC׍CCh׬ׁCCײ׍ײC׬׬V׬VCײCײ׬׬VV׬׍Ch׍ChײhC׬V׬׬ײhײhײײׁ׬׬ׁVׁׁ׬ׁ׬׬V׬׬׬VVׁVׁ׬ׁ׬V׬׬ײײ׬VC׍CChײhh׬VײCײCh׍h׬hhCCײCׁC׍CChhhChhhChhh׍CײײhײhC׍ChhhhײhhײCChײChhCChײC׍׍CCCChhhײCChCh׍ChCCC׍hCײײCCChײ׍hײhhײhײChhhCCCChhhCh׍hhCCh׍C׍C׍hCײhhײh׍ײ׍h׍hhhhײC׍CײCChhCCײChCCh׍hײײhCh׍hCײײײhײײ//////////YYYYYYYYYY//////////YYYYYYYYYY//////////YYYYYYYYYY//////YYYYYY///////YYYYYYY////////YYYYYYYY////////YYYYYYYY////////YYYYYYYY////////YYYYYYYY////////YYYYYYYY//////////////YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY//////////////YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY//////////////YYYYYYYYYYYYYYYYYYYYYYYYYYYYYY///YYY///YYY///YYY///YYY///YYY///YYY///YYY//YYY/YYY/YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY׬YYY׬׬YYYׁ׬YYYׁVV׬VV////////////////////YYׁVׁV)////////////////////YYׁVׁV)///////////////////YYYׁ׬//YYYYYYVVVV//YYYYYYVVVV//YYYYYY׬V׬V//YYYYYYׁ׬//YYYYYYׁׁ//YYYYY׬׬׬//YYYY׬///////YYY׬׬׬׬///////YYYV׬ׁ////////YYׁׁVVV+׬ׁׁVV׬׬ׁV׬׬׬׬׬׬׬ׁׁV׬׬׬׬׬V׬VVׁVV׬VV׬ׁ׬׬VV׬׬׬V׬VׁVׁ׬ׁVVV׬׬V׬V׬׬׬V׬VV׬׬V׬V׬ׁVVׁVVVׁVVVׁV׬׬ׁVz׬V׬׬׬ׁ׬׬ץׁׁ׬ץ׬ׁׁ׬ׁ׬ׁׁׁ׬ׁ׬ׁ׬׬׬ׁVVVVVVVV+׬ׁ׬ׁ׬׬׻VVVVV+VVV+VVVV+ׁ׻VVVV+V׻V׻V׬׬׻V׬׬ׁ׻Vׁ+׬Vׁׁ׬OV׬׻׻V׬ׁ׬׬׬V׬zׁV׻׻VׁVVׁVVVׁׁzׁVV׬VVV׻Vׁ׬׬׬׬׬{׬׻V+׬V׬ׁׁׁ״V׬Vׁ׬ׁ״Vׁ׬ׁ׬״V׬׬ׁ׬ׁ״׻V׬ׁ״׻V״׻V׬׬׬״׻Vׁׁ׬׬״׻V׬V׬׬ׁ״׻Vׁ׬VV׬ׁ׬״׻VVVׁׁׁVV״VVVV+VVVׁV׬״VVׁV׬ׁVVVV+״VVׁV׬ׁVVVVVׁVVV״VVׁV׬ׁVV׬ׁׁ״V׬VׁV׬ׁVV׬ׁׁ״Vׁ{VVׁVV׬ׁׁ״Vׁ{VVV׬ׁׁ״Vׁׁ{{{VV״Vׁ׬ׁz{״VׁׁV+VׁׁV״Vׁ׬ׁ׬V׬׬׬״V׬ׁ׬׬׬V׬ׁ׬״V׬{ׁׁׁׁVV׬״Vׁ׬׬׬ׁ׬״V׬VV׬ׁ׬״V׬V׬ׁׁ׬״V׬׬ׁ׬׬+VVVVV״VׁVVׁVV׬V׬׬׬ׁ׬׬׬״VVׁׁVׁV׬׬ׁVׁ׬ׁ׬ׁ״V׬VׁV׬ׁׁVV׬V׬׬׬״׬׬׬VׁVׁ׬VVV׬׬V׬V׬׬V׬״ׁׁ׬VV׬׬׬VׁׁV׬׬ׁׁ׬Vׁׁׁ+׬׬ׁׁ״׬V׬׬V׬׬ׁ+ׁ׬׬V״V׬׬ׁ׬Vׁ׬״ׁV׬Vׁ׬ׁׁV׬ׁׁׁVVVVV׬ׁׁׁ׬׬׬ׁ׬ׁ׬ׁVV׬צ+VVVVVׁVV׬׬״ׁ׬ׁ׬ׁ׬ׁ׬׬׬ׁ׬V״VVׁׁ׬ׁ׬ׁ׬ׁ׬׬ׁ׬ׁ״ׁ׬VV׬ׁׁ׬׬׬׬z׬ׁׁVׁ׬ׁ׬ׁ׬OV׬״׬׬ׁ׬׬Vׁ׬ׁׁ׬׬״׬׬V׬ׁ׬ׁׁׁ׬״ׁ׬VVVV׬VVׁzׁ׬VVׁVׁ׬״׬׬׬׬VV׬׬׬׬V׬׬ׁׁ״ׁ׬׬VV׬׬V׬V׬׬׬׬VVׁ׬ׁ++׬׬׬ׁV׬ׁ׬VׁV׬VV׬V׬ׁVׁV׬+VVVVVׁ׬׬z׬ׁ׬׬V׬ׁׁׁ׬׬V+ׁ׬׬Vׁ׬ׁׁׁV׬VVV׬+Vׁ׬׬VVV׬׬׬Vׁ+׬+V׬׬׬VzVׁ׬V׬Vׁׁׁ+׬ׁׁ׬׬V׬׬ׁ׬ׁ׬V׬׬׬׬׬׬+VVVVVׁ׬ׁׁV׬mcu8051ide-1.4.7/pkgs/Windows/mcu8051ide_win_setup.iss0000644000175000017500000000630212067167647023077 0ustar milleniummillenium[Setup] AppId={{E0D2EFF2-AF92-403C-88F6-6188F369D6BB} AppName=MCU 8051 IDE AppVerName=MCU 8051 IDE 1.4.7 AppPublisher=Martin Osmera AppPublisherURL=http://mcu8051ide.sf.net/ AppSupportURL=http://mcu8051ide.sf.net/ AppUpdatesURL=http://mcu8051ide.sf.net/ DefaultDirName={pf}\MCU 8051 IDE DefaultGroupName=MCU 8051 IDE AllowNoIcons=yes LicenseFile=W:\mcu8051ide\LICENSE OutputDir=W:\mcu8051ide\pkgs OutputBaseFilename=mcu8051ide-1.4.7-setup Compression=lzma SolidCompression=yes SetupIconFile="W:\mcu8051ide\pkgs\Windows\mcu8051ide.ico" WizardImageFile="W:\mcu8051ide\pkgs\Windows\setup_image.bmp" WizardSmallImageFile="W:\mcu8051ide\pkgs\Windows\setup_small_image.bmp" [Registry] Root: HKCR; Subkey: ".mcu8051ide"; ValueType: string; ValueName: ""; ValueData: "MCU8051IDEProject"; Flags: uninsdeletevalue Root: HKCR; Subkey: "MCU8051IDEProject"; ValueType: string; ValueName: ""; ValueData: "MCU 8051 IDE project file"; Flags: uninsdeletekey Root: HKCR; Subkey: "MCU8051IDEProject\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\mcu8051ide.ico" Root: HKCR; Subkey: "MCU8051IDEProject\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\mcu8051ide.exe"" ""%1""" [Languages] Name: "english"; MessagesFile: "compiler:Default.isl" [Tasks] Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; OnlyBelowVersion: 0,6.1 [Files] Source: "W:\mcu8051ide\pkgs\installation_sandbox\win_pkg_files\demo\*"; DestDir: "{app}\demo"; Flags: ignoreversion Source: "W:\mcu8051ide\pkgs\installation_sandbox\win_pkg_files\data\tips.xml"; DestDir: "{app}\data"; Flags: ignoreversion Source: "W:\mcu8051ide\pkgs\installation_sandbox\win_pkg_files\doc\handbook\*.pdf"; DestDir: "{app}\doc\handbook"; Flags: ignoreversion Source: "W:\mcu8051ide\pkgs\installation_sandbox\win_pkg_files\translations\*"; DestDir: "{app}\translations"; Flags: ignoreversion Source: "W:\mcu8051ide\pkgs\installation_sandbox\win_pkg_files\hwplugins\*"; DestDir: "{app}\hwplugins"; Flags: ignoreversion Source: "W:\mcu8051ide\pkgs\installation_sandbox\win_pkg_files\*.exe"; DestDir: "{app}"; Flags: ignoreversion Source: "W:\mcu8051ide\pkgs\Windows\mcu8051ide.ico"; DestDir: "{app}"; Flags: ignoreversion Source: "W:\mcu8051ide\pkgs\Windows\*.bat"; DestDir: "{app}"; Flags: ignoreversion Source: "W:\mcu8051ide\pkgs\Windows\readme.txt"; DestDir: "{app}"; Flags: ignoreversion [Icons] Name: "{group}\MCU 8051 IDE"; Filename: "{app}\mcu8051ide.exe"; IconFilename: "{app}\mcu8051ide.ico" Name: "{commondesktop}\MCU 8051 IDE"; Filename: "{app}\mcu8051ide.exe"; Tasks: desktopicon; IconFilename: "{app}\mcu8051ide.ico" Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\MCU 8051 IDE"; Filename: "{app}\mcu8051ide.exe"; Tasks: quicklaunchicon; IconFilename: "{app}\mcu8051ide.ico" [Run] Filename: "{app}\mcu8051ide.exe"; Description: "{cm:LaunchProgram,MCU 8051 IDE}"; Flags: shellexec postinstall skipifsilent Filename: "{app}\readme.txt"; Description: "View the README file"; Flags: postinstall shellexec skipifsilent mcu8051ide-1.4.7/pkgs/Windows/exec.ico0000644000175000017500000001027612067167647020123 0ustar milleniummillenium  ( @   t";9)#\ GQ>AFBD4" RKVkk"k!P9A)G @<O$ Plv{:b]]1y!55 5私騅@<EV% PpūVӒ֚33txt¥43#!hvjfV#H밈ɮހUZquߝ|x5u$j"Dl)`LdY[ťUo0Xv=yz@~"9,z.=4\V`5z+|6δ}f$JӮ i6::y*C;0鴈R W6z-g跑YX~NvN O ?U"$,@6~/Um$p&ʔԋ=PM G C 1>y,Æ"vqÄ@q\?(\9l &CO>%ّ#. q%r=Rr|k"6I;83DLƄ>kdi07JDށ6q'y-GRW`N^e'[Zr)JCNp%z/4YKfiXj`-Ȼ- %Ecbn*o,f#+;bXg`m-?I)FvTcfZEseVRd#]Hl(_NMNW>N|J9حBFGFK%10;RR4 =x["DA@AU6`D]PsJ{A]>-D   ޜ:@<ޛ:ܘ:ܜL $B (L_^Oف=;<88;;7ڌ5؊4ԃ4ܗJLSa`z*n2z/}/}/|/{.y.t.m/H6D UmR[-Z+])])\*]0?!4YY$"17.Wb E!=~G\/_'Q j#2i!m 7cPYOBk +296@MLJ'u<;1n8))1[B91?;C8=8x6NB@F<?  ???O?? ?mcu8051ide-1.4.7/pkgs/Windows/readme.txt0000644000175000017500000000072212067167647020474 0ustar milleniummilleniumMCU 8051 IDE is an integrated development enviroment for MCS-51 based microcontrollers. Supported programming languages are C and the assembly language. For C language the IDE uses the SDCC compiler, you can download SDCC from: http://sdcc.sourceforge.net/snap.php#Windows. This IDE was originally written for GNU/Linux operating systems, this version Microsoft Windows operating systems, it has been tested on Microsoft Windows XP and Microsoft Windows 7. mcu8051ide-1.4.7/pkgs/Windows/startsdcc.bat0000644000175000017500000000040012067167647021151 0ustar milleniummillenium@echo off rem DESCRIPTION: rem Run SDCC compiler from the IDE silently, i.e. without showing any additional windows. SETLOCAL ENABLEEXTENSIONS cd %1 SHIFT :Loop IF "%1"=="" GOTO Continue SET args=%args% %1 SHIFT GOTO Loop :Continue sdcc -mmcs51 %args% mcu8051ide-1.4.7/pkgs/Windows/mcu8051ide.ico0000644000175000017500000004107612067167647020765 0ustar milleniummillenium@@ (B(@ @  LLLLLLLLLLLLLLLLLL}|LvuLppLhiLbbL[[LTTLNNLGHL@@L::L34L--L%&L LLL LLLLLLLLLLLLLLLLLLLLLLL||LvwLooLiiLbbL\[LUULNNLHGLAAL::L44L--L''L LLL LLLLLLLLLLLLLLLLLLLLLLL}}LwwLppLiiLbbL\\LUULOOLHHLAAL;:L44L--L''L LLL LLLL L!!LLL((L"!LL//L((L!!L mlssyz66L//L))Ltszz==L66L//Lghnmtt{zDCL==L76L\[aahhonuv{|KKLDEL>>L""()//55<>EDKKggL``LYYL88>>EEnnLhgL`aL2298?@uuLnoLhhL,-3399||LvuLonLyynnddYYOO&'-.44L}|LuvLxynncd!!((..LL}|LyxnnccYX"!((LLLxxmmcbYXMN""LLLmmbbXXMMCC98..$#LLLbbWXMMCC88-.## LLLWWMLBC88--#" LLLWWLLBB _^%LLLWVLKAA  LLLVVKKAA LLLVULK@A LLL߽VUKK@@LLLݸ߾TUJJ@@LLLݴݹ߿TUJJ??LLL۰ݵݻTUIJ?@LLLګ۱ݷTTJI??LLL٧ڬ۲SSIH>?44*)   ))34LLLآ٨ڮ}}]^SSIH>>33)( ''00::מأ٩|}gh]]RSHI>=34() ##--77@@֙מإ||qrgg\]RRGG **44==GFՕ֛ס{|qqgg\\RR ''00:9LMӐԖ֛{|qqff\\##--76SSҌԑ՘{{qqgf[[QRGF  *)33чҎԓ&&0099Ѓщҏ,-77@AЅъ43==FFz}πІ:9DCMMvx{~ρ@@JJTSqtvz}GFPPZZmpruy{MMWV``hlnqtvTS]]ggcgjlpsYZccmm`beikn &'00:9DCLMVW``jjss[^adfj##--66@@IJST\]gfppyyVY\`be  ))34==FGQPZZccmmwwRUX[^a}}NQSWY]IMORUXEIKNQTCGFJLOCGƿCGGJCGƾCGCGHMOSUX[^`dfiloruxz}͉̃ΏϕњҠӦԬձַ׾CGƿCGƿCGEHJNPTVY\_begjmpsvy|̅͊ΐЖМҡӨԭճֹ׿CGƾCGƾCGƾCGFJKORUX[]`cfhlortxz}ˀ̆͌ΒЗѝҤөԯյֺcccccccccccc??ƀ??`@????mcu8051ide-1.4.7/pkgs/Windows/setup_small_image.bmp0000644000175000017500000001034612067167647022673 0ustar milleniummilleniumBM6(7: 3f333f3333f3ffffff3f̙3f3f333f333333333f33333333f33f3ff3f3f3f3333f33̙33333f3333333f3333f3ffffff3f33ff3f3f3f3fff3ffffffffffff3ffff̙fff3fffffff3ffffff3f333f3333f3ffffff3f̙̙3̙f̙̙̙̙3f3f333f3333f3ffffff3f̙3f3f3f333f3333f3ffffff3f̙3f3f׭׭׭׭׭YYY׭YY׭YYYY׭YYYYYY׭////////YYYYYY׭////////YYYY׭////////Y׭///׭///׭///׭s///׭׍hhhhh///׭׍hhh///׭׍hhhh///׭׍hhhhh//׭׍hhhhCCCC/׭׍hhhCCCC׭hDCCCChCChCC/hCC)hCChCChCChCChCChCChCCCCC״hhhCCCCC׻hhhhCCCCC׵hhhhhC״hhhhh״hhhh״hhhhhC״״׻״׻״׻״׻״׻״׻״״״״״״״״״|״X״X״XXXXXXmcu8051ide-1.4.7/pkgs/Windows/startasem.bat0000644000175000017500000000037412067167647021174 0ustar milleniummillenium@echo off rem DESCRIPTION: rem Run ASEM-51 assembler from the IDE silently, i.e. without showing any additional windows. SETLOCAL ENABLEEXTENSIONS cd %1 SHIFT :Loop IF "%1"=="" GOTO Continue SET args=%args% %1 SHIFT GOTO Loop :Continue asem %args% mcu8051ide-1.4.7/pkgs/Windows/external_command.bat0000644000175000017500000000003312067167647022501 0ustar milleniummillenium@%1 %2 %3 %4 %5 %6 %7 %8 %9mcu8051ide-1.4.7/pkgs/Gentoo/0000755000175000017500000000000012067167647016276 5ustar milleniummilleniummcu8051ide-1.4.7/pkgs/Gentoo/mcu8051ide.ebuild0000644000175000017500000000163412067167647021254 0ustar milleniummillenium# Distributed under the terms of the GNU General Public License v2 # $Header: $ DESCRIPTION="Graphical IDE for microcontrollers based on 8051." HOMEPAGE="http://mcu8051ide.sourceforge.net" SRC_URI="mirror://sourceforge/${PN}/${PN}/${PV}/${PF}.tar.gz" LICENSE="GPLv2" SLOT="0" KEYWORDS="~alpha amd64 ~ia64 ~ppc ~sparc x86" RDEPEND=" >=x11-terms/rxvt-unicode-9.1 >=dev-embedded/sdcc-2.5 >=app-doc/doxygen-1.7 >=dev-util/indent-2.2 >=app-text/hunspell-1.3 >=dev-tcltk/bwidget-1.8 >dev-tcltk/itcl-3.3 >=dev-lang/tcl-8.5.9 >=dev-tcltk/tdom-0.8 >=dev-tcltk/tcllib-1.11 >=dev-lang/tk-8.5.9 >=dev-tcltk/tkimg-1.4 >=dev-tcltk/tclx-8.4 " DEPEND=" ${RDEPEND} >=dev-util/cmake-2.8 " src_unpack() { unpack ${A} } src_compile() { cd "${PF}" cmake -DCMAKE_INSTALL_PREFIX=/usr . || die "cmake failed" emake || die "emake failed" } src_install() { cd "${PF}" emake DESTDIR="${D}" install || die "Install failed" } mcu8051ide-1.4.7/pkgs/Gentoo/README0000644000175000017500000000312112067167647017153 0ustar milleniummillenium================================================================================ == MCU 8051 IDE - ebuild for Gentoo Linux == ================================================================================ === Installation steps === - Get superuser rights. # su - Create directory for local portage overlay, if you haven't it yet. # mkdir /usr/local/portage/ - Modify /etc/make.conf to make portage work with your new overlay. ... PORTDIR_OVERLAY="... /usr/local/portage" <-- Don't copy the "..." there. ... - Create category "dev-embedded" in the overlay. # mkdir /usr/local/portage/dev-embedded - Create directory for mcu8051ide ebuilds in your local overlay. # mkdir /usr/local/portage/dev-embedded/mcu8051ide - Copy the ebuild there. # cp mcu8051ide-0.0.0.ebuild /usr/local/portage/dev-embedded/mcu8051ide/ - Create ebuild manifest to let the portage know about the new ebuild. # ebuild /usr/local/portage/dev-embedded/mcu8051ide/mcu8051ide-0.0.0.ebuild digest - Install the software. # emerge mcu8051ide - Run it (as normal user). $ mcu8051ide === Useful links === * Writing Ebuilds: http://en.gentoo-wiki.com/wiki/Writing_Ebuilds * MCU 8051 IDE project web page: http://mcu8051ide.sf.net === Author(s) of the ebuild === * Martin Ošmera === Notes === * If you have found bug in the ebuild, or you just want to report any issue, or just write anything to the author, please don't hesitate to contact me at mailto:martin.osmera@gmail.com. mcu8051ide-1.4.7/pkgs/create_installation_packages.sh0000755000175000017500000012477112067167647023300 0ustar milleniummillenium#!/bin/bash declare -A options=( [help]=0 [nocolor]=0 [tests]=0 [version]=0 [pdf]=0 [demo]=0 [msg]=0 [tar]=0 [ebuild]=0 [rpm]=0 [deb]=0 [windows]=0 [clear]=0 [inno]=0 [arch]=0 [freeBSD]=0 [readme]=0 ) declare -A COLOR=( [none]="" [reg]="" [green]="" [yellow]="" [blue]="" [purple]="" [purple]="" [bold]="" ) declare ide_version="0.0" declare -a version declare results= declare cur_func="main" declare nc_opt_long declare nc_opt_short declare SOURCE_DIR declare PKG_DIR declare WORK_DIR declare SCRIPT_NAME function basic_tests() { cur_func="basic_tests" local -i failed_flag=0 print_info 0 "Running basic tests." print_info 1 "Checking for presence of the required programs." for p in tclsh wish bash cmake make pdflatex rpmbuild dpkg gawk m4 tee find locate grep md5sum sha256sum wine wc; do which $p &>/dev/null if [ "$?" == "0" ]; then printf "${COLOR[green]}[OK] ${COLOR[none]} $p\n" else printf "${COLOR[red]}[FAILED]${COLOR[none]} $p\n" failed_flag=1 fi done if (( failed_flag )); then die "Some of the required programs are missing, unable to continue!" fi print_info 1 "Running MCU 8051 IDE self testing tools." tclsh "${SOURCE_DIR}/lib/main.tcl" ${nc_opt_long} --check-libraries || die bash "${SOURCE_DIR}/regression_tests/assembler/runtest" ${nc_opt_short} || die bash "${SOURCE_DIR}/regression_tests/simulator/runtest" ${nc_opt_short} || die print_info 2 "Basic tests complete." } function create_launcher() { printf "#!/bin/sh\n" > "${2}/mcu8051ide" || die printf "exec tclsh8.5 ${1}/main.tcl \"\$@\" || \\\n" >> "${2}/mcu8051ide" || die printf "\tprintf \"Unable to execute, TCL interpreter is not reachable.\n\" > /dev/stderr" >> "${2}/mcu8051ide" || die chmod -v 0755 "${2}/mcu8051ide" || die } function update_msg_files() { cur_func="update_msg_files" print_info 0 "Updating translation files" tclsh "${SOURCE_DIR}/translations/tool.tcl" -t "${SOURCE_DIR}/translations/template.txt" || die for f in "${SOURCE_DIR}"/translations/*.msg; do if [ ! -e "$f" ]; then break fi print_info 1 "Updating $(basename "$f")" tclsh "${SOURCE_DIR}/translations/tool.tcl" -m "$f" || die done print_info 2 "Update complete." } function clear_source_dir() { cur_func="clear_source_dir" print_info 0 "Cleaning the source directory." for i in "${SOURCE_DIR}"/*~ "${SOURCE_DIR}"/*/*~ "${SOURCE_DIR}"/*/*/*~ "${SOURCE_DIR}"/*/*/*/*~; do if [ ! -f "$i" ]; then continue fi rm -fv "$i" done rm -fv "${SOURCE_DIR}/CMakeCache.txt" rm -fv "${SOURCE_DIR}/cmake_install.cmake" rm -fv "${SOURCE_DIR}/install_manifest.txt" rm -fv "${SOURCE_DIR}/Makefile" rm -rfv "${SOURCE_DIR}/mcu8051ide" rm -rfv "${SOURCE_DIR}/CMakeFiles" find "${SOURCE_DIR}" -name .directory | while read f; do rm -rfv "${f}" done rm -rfv "${SOURCE_DIR}"/doc/handbook/*.{aux,lof,lot,log,out,toc,backup} rm -rfv "${SOURCE_DIR}/regression_tests/"*/results/* rm -rfv "${SOURCE_DIR}/doc/handbook/doc" rm -v "${SOURCE_DIR}"/demo/{lnk,rel,mem,map,bin,sym} for f in "${SOURCE_DIR}"/demo/*.c; do if [ -e "${f%%.c}.asm" ]; then rm -v "${f%%.c}.asm" rm -v "${f%%.c}.hex" rm -v "${f%%.c}" fi done find "${SOURCE_DIR}" -type d | while read f; do chmod -v 0755 "${f}" done find "${SOURCE_DIR}" -type f | while read f; do chmod -v 0644 "${f}" done for i in lib/main.tcl translations/tool.tcl pkgs/create_installation_packages.sh; do chmod -v 0755 "${SOURCE_DIR}/${i}" done print_info 2 "Cleanup complete." } function create_pdf_doc() { cur_func="create_pdf_doc" print_info 0 "Creating documentation .pdf files using LaTeX." cd "${SOURCE_DIR}/doc/handbook" || die for f in ./mcu8051ide.*.tex; do print_info 1 "Building $(basename "$f")" pdflatex "$f" || die pdflatex "$f" || die done cd "${SOURCE_DIR}" || die print_info 2 "Documentation build complete." } function remove_sandbox() { cur_func="remove_sandbox" print_info 0 "Removing the temporary work directory." rm -rfv "${WORK_DIR}" || die print_info 2 "Removal complete." } function finalize_sandbox() { cur_func="finalize_sandbox" print_info 0 "Finalizing creation of the temporary work directory." print_info 1 "Compressing the manual page." gzip -v "${WORK_DIR}/doc/man/mcu8051ide.1" || die print_info 1 "Removing .asm files generated by SDCC (for ASX8051 assembler) from the demo project." for f in "${WORK_DIR}"/demo/*.c; do if [ -e "${f%%.c}.asm" ]; then rm -v "${f%%.c}.asm" rm -v "${f%%.c}.hex" rm -v "${f%%.c}" fi done print_info 1 "Normalizing the demo project file." gawk ' BEGIN { tag="" } // { tag="" } /\ "${WORK_DIR}/demo/Demo project.mcu8051ide.tmp" || die mv -v "${WORK_DIR}/demo/Demo project.mcu8051ide.tmp" "${WORK_DIR}/demo/Demo project.mcu8051ide" || die chmod -v 0644 "${WORK_DIR}/demo/Demo project.mcu8051ide" || die print_info 2 "Creation of temporary work directory finalized." } function create_sandbox() { cur_func="create_sandbox" print_info 0 "Creating temporary work directory: ${WORK_DIR}" if [ -e "${WORK_DIR}" ]; then print_info 1 "Work directory already exist, removing it." remove_sandbox fi print_info 1 "Coping project files to the work directory." mkdir -v "${WORK_DIR}" || die for f in ChangeLog README TODO LICENSE mcu8051ide.desktop application-x-mcu8051ide.xml CMakeLists.txt mcu8051ide.png; do cp -v "${SOURCE_DIR}/${f}" "${WORK_DIR}" || die done chmod -v 0644 "${WORK_DIR}"/* || die print_info 1 "Directory: data." mkdir -v "${WORK_DIR}/data" || die chmod -v 0755 "${WORK_DIR}/data" || die cp -v "${SOURCE_DIR}"/data/*.{txt,dtd,xml} "${WORK_DIR}/data" || die chmod -v 0644 "${WORK_DIR}"/data/* || die print_info 1 "Directory: demo." mkdir -v "${WORK_DIR}/demo" || die chmod -v 0755 "${WORK_DIR}/demo" || die cp -v "${SOURCE_DIR}"/demo/*.{adf,lst,ihx,mcu8051ide,hashes,hex,vhw,vhc,wtc,asm,c,cdb} "${WORK_DIR}/demo" || die chmod -v 0644 "${WORK_DIR}"/demo/* || die print_info 1 "Directory: doc." mkdir -v "${WORK_DIR}/doc" || die mkdir -v "${WORK_DIR}/doc/man" || die mkdir -v "${WORK_DIR}/doc/handbook" || die mkdir -v "${WORK_DIR}/doc/handbook/img" || die chmod -v 0755 "${WORK_DIR}/doc" || die chmod -v 0755 "${WORK_DIR}/doc/man" || die chmod -v 0755 "${WORK_DIR}/doc/handbook" || die chmod -v 0755 "${WORK_DIR}/doc/handbook/img" || die cp -v "${SOURCE_DIR}/doc/man/mcu8051ide.1" "${WORK_DIR}/doc/man" || die cp -v "${SOURCE_DIR}"/doc/handbook/mcu8051ide.*.{tex,pdf} "${WORK_DIR}/doc/handbook" || die cp -v "${SOURCE_DIR}"/doc/handbook/img/*.png "${WORK_DIR}/doc/handbook/img" || die chmod -v 0644 "${WORK_DIR}/doc/man/mcu8051ide.1" || die chmod -v 0644 "${WORK_DIR}"/doc/handbook/*.{tex,pdf} || die chmod -v 0644 "${WORK_DIR}"/doc/handbook/img/*.png || die print_info 1 "Directory: hwplugins." mkdir -v "${WORK_DIR}/hwplugins" || die chmod -v 0755 "${WORK_DIR}/hwplugins" || die cp -v "${SOURCE_DIR}"/hwplugins/{plug-in_template.txt,README} "${WORK_DIR}/hwplugins" || die chmod -v 0644 "${WORK_DIR}"/hwplugins/* || die print_info 1 "Directory: translations." mkdir -v "${WORK_DIR}/translations" || die chmod -v 0755 "${WORK_DIR}/translations" || die cp -v "${SOURCE_DIR}"/translations/*.{txt,msg,tcl} "${WORK_DIR}/translations" || die cp -v "${SOURCE_DIR}"/translations/README "${WORK_DIR}/translations/" || die chmod -v 0644 "${WORK_DIR}/"translations/* || die chmod -v 0755 "${WORK_DIR}/translations/tool.tcl" || die print_info 1 "Directory: icons." mkdir -v "${WORK_DIR}/icons" || die chmod -v 0755 "${WORK_DIR}/icons" || die for d in 16x16 22x22 32x32 flag mcu other; do mkdir -v "${WORK_DIR}/icons/${d}" || die chmod -v 0755 "${WORK_DIR}/icons/${d}" || die cp -v "${SOURCE_DIR}"/icons/${d}/*.png "${WORK_DIR}"/icons/${d} || die chmod -v 0644 "${WORK_DIR}"/icons/${d}/* || die done print_info 1 "Directory: lib." mkdir -v "${WORK_DIR}/lib/" || die chmod -v 0755 "${WORK_DIR}/lib" || die cp -v lib/*.tcl "${WORK_DIR}/lib/" || die chmod -v 0644 "${WORK_DIR}"/lib/*.tcl || die chmod -v 0755 "${WORK_DIR}"/lib/main.tcl || die for d in bottompanel compiler editor lib pale simulator simulator/engine configdialogues dialogues leftpanel rightpanel utilities; do mkdir -v "${WORK_DIR}/lib/${d}" || die chmod -v 0755 "${WORK_DIR}/lib/${d}" || die cp -v "${SOURCE_DIR}"/lib/${d}/*.tcl "${WORK_DIR}/lib/${d}" || die chmod -v 0644 "${WORK_DIR}"/lib/${d}/*.tcl || die done cp -v "${SOURCE_DIR}/lib/list_of_files.txt" "${WORK_DIR}/lib/list_of_files.txt" || die chmod 0644 "${WORK_DIR}/lib/list_of_files.txt" print_info 1 "Directory: pkgs." mkdir -v "${WORK_DIR}/pkgs" || die chmod 0755 "${WORK_DIR}/pkgs" || die cp -v "${SOURCE_DIR}/pkgs/README" "${WORK_DIR}/pkgs" || die cp -v "${SOURCE_DIR}"/pkgs/*.sh "${WORK_DIR}/pkgs" || die chmod 0644 "${WORK_DIR}/pkgs/README" || die chmod 0755 "${WORK_DIR}"/pkgs/*.sh || die for d in Debian Gentoo RedHat Windows; do mkdir -v "${WORK_DIR}/pkgs/${d}" || die chmod 0755 "${WORK_DIR}/pkgs/${d}" || die done cp -v "${SOURCE_DIR}"/pkgs/Debian/control "${WORK_DIR}/pkgs/Debian/" || die chmod 0644 "${WORK_DIR}"/pkgs/Debian/* || die cp -v "${SOURCE_DIR}/pkgs/Gentoo/README" "${WORK_DIR}/pkgs/Gentoo/" || die cp -v "${SOURCE_DIR}"/pkgs/Gentoo/*.ebuild "${WORK_DIR}/pkgs/Gentoo/" || die chmod 0644 "${WORK_DIR}"/pkgs/Gentoo/* || die cp -v "${SOURCE_DIR}/pkgs/RedHat/mcu8051ide.spec" "${WORK_DIR}/pkgs/RedHat/" || die chmod 0644 "${WORK_DIR}"/pkgs/RedHat/* || die cp -v "${SOURCE_DIR}"/pkgs/Windows/*.{bat,ico,iss,txt,bmp} "${WORK_DIR}/pkgs/Windows" || die chmod 0644 "${WORK_DIR}"/pkgs/Windows/* || die print_info 1 "Directory: regression_tests." mkdir -v "${WORK_DIR}/regression_tests/" || die chmod -v 0755 "${WORK_DIR}/regression_tests" || die cp -v "${SOURCE_DIR}"/regression_tests/{README,rte.lib.sh} "${WORK_DIR}/regression_tests/" || die chmod -v 0644 "${WORK_DIR}"/regression_tests/* || die # Assembler mkdir -v "${WORK_DIR}/regression_tests/assembler/" || die chmod -v 0755 "${WORK_DIR}/regression_tests/assembler/" || die cp -v "${SOURCE_DIR}"/regression_tests/assembler/*.awk "${WORK_DIR}/regression_tests/assembler/" || die cp -v "${SOURCE_DIR}"/regression_tests/assembler/{process_in_file,README,runtest} "${WORK_DIR}/regression_tests/assembler/" || die chmod -v 0755 "${WORK_DIR}/regression_tests/assembler/runtest" mkdir -v "${WORK_DIR}/regression_tests/assembler/results" || die chmod -v 0755 "${WORK_DIR}/regression_tests/assembler/results" || die mkdir -v "${WORK_DIR}/regression_tests/assembler/testcases" || die chmod -v 0755 "${WORK_DIR}/regression_tests/assembler/testcases" || die cp -v "${SOURCE_DIR}"/regression_tests/assembler/testcases/*.{in,asm,exp} "${WORK_DIR}/regression_tests/assembler/testcases/" || die # Simulator mkdir -v "${WORK_DIR}/regression_tests/simulator/" || die chmod -v 0755 "${WORK_DIR}/regression_tests/simulator/" || die cp -v "${SOURCE_DIR}"/regression_tests/simulator/*.awk "${WORK_DIR}/regression_tests/simulator/" || die cp -v "${SOURCE_DIR}"/regression_tests/simulator/{README,runtest} "${WORK_DIR}/regression_tests/simulator/" || die chmod -v 0755 "${WORK_DIR}/regression_tests/simulator/runtest" mkdir -v "${WORK_DIR}/regression_tests/simulator/results" || die chmod -v 0755 "${WORK_DIR}/regression_tests/simulator/results" || die mkdir -v "${WORK_DIR}/regression_tests/simulator/testcases" || die chmod -v 0755 "${WORK_DIR}/regression_tests/simulator/testcases" || die cp -v "${SOURCE_DIR}"/regression_tests/simulator/testcases/*.{in,adf,exp} "${WORK_DIR}/regression_tests/simulator/testcases/" || die cp -v "${SOURCE_DIR}"/regression_tests/simulator/testcases/*.asm "${WORK_DIR}/regression_tests/simulator/testcases/" || printf "No .asm files found, but it's ok.\n" } function recheck_RTE() { cur_func="recheck_RTE" print_info 0 "Rerunning the regression tests to ensure that they still work." print_info 1 "Preparing directory." cp -Rv "${WORK_DIR}/regression_tests/" "${WORK_DIR}/regression_tests.tmp" || die print_info 1 "Testing assembler." bash "${WORK_DIR}/regression_tests.tmp/assembler/runtest" ${nc_opt_short} || die print_info 1 "Testing simulator." bash "${WORK_DIR}/regression_tests.tmp/simulator/runtest" ${nc_opt_short} || die print_info 1 "Cleaning up." rm -rfv "${WORK_DIR}/regression_tests.tmp" print_info 2 "Regression tests complete." } function detect_version() { cur_func="detect_version" ide_version=$(grep "set VERSION" "${SOURCE_DIR}/lib/main.tcl" | gawk '{gsub(/\"/,"",$3);print($3)}') print_info 1 "Detected version of the IDE: ${ide_version}" if ! gawk '/^[0-9]\.[0-9](\.[0-9])?$/ {exit 0} {die}' <<< "${ide_version}"; then die "This is not a valid version specification, aborting!" fi } function create_tarball() { cur_func="create_tarball" local -r PKG_NAME="mcu8051ide-${ide_version}.tar.gz" print_info 0 "Creating source code tarball." if [ -e "${PKG_DIR}/${PKG_NAME}" ]; then rm -v "${PKG_DIR}/${PKG_NAME}" fi mv -v "${WORK_DIR}" "${PKG_DIR}/mcu8051ide-${ide_version}" || die cd "${PKG_DIR}" || die tar cvfz "${PKG_NAME}" "mcu8051ide-${ide_version}" || die mv -v "${PKG_DIR}/mcu8051ide-${ide_version}" "${WORK_DIR}" || die results+=" ${COLOR[green]}*${COLOR[none]} ${PKG_DIR}/${PKG_NAME}\n" print_info 2 "Tarball successfully created: ${PKG_DIR}/${PKG_NAME}" } function create_pacman_package() { cur_func="create_pacman_package" print_info 0 "Creating pacman \"package\"." local -r PKG_NAME="Arch-PKGBUILD-mcu8051ide-${ide_version}.tar.gz" local -r TARBALL="${PKG_DIR}/mcu8051ide-${ide_version}.tar.gz" local -r MD5_SUM=$(md5sum -b "${TARBALL}" | gawk ' { print($1); exit(0) } ') local -r DIR="${WORK_DIR}/Arch-PKGBUILD" mkdir -v "${DIR}" || die gawk " /<0.0.0>/ { sub(/<0.0.0>/,\"${ide_version}\", \$0) } // { sub(//,\"${MD5_SUM}\", \$0) } // { sub(//,\"$(date +%F)\", \$0) } { print(\$0) } " "${SOURCE_DIR}/pkgs/Arch/PKGBUILD" > "${DIR}/PKGBUILD" || die cp -v "${SOURCE_DIR}/pkgs/Arch/README" "${DIR}/" || die chmod -v 0644 "${DIR}"/* || die cd "${DIR}" || die tar cvfz "${PKG_NAME}" PKGBUILD README || die mv -vf "${PKG_NAME}" "${PKG_DIR}/" || die rm -rfv "${DIR}" || die results+=" ${COLOR[green]}*${COLOR[none]} ${PKG_DIR}/${PKG_NAME}\n" print_info 2 "pacman \"package\" successfully created: ${PKG_DIR}/${PKG_NAME}" } function rm_sctar_files() { cur_func="rm_sctar_files" print_info 0 "Removing files needed only for the source code tarball." rm -v "${WORK_DIR}/lib/list_of_files.txt" rm -rfv "${WORK_DIR}/pkgs" print_info 2 "Files needed only for source code tarball removed." } function check_version() { cur_func="check_version" print_info 0 "Checking for correct version number in CMakeLists.txt, README, and mcu8051ide_win_setup.iss" # Check CMakeLists.txt if gawk "/^[ \t]*SET[ \t]*\([ \t]*mcu8051ide_version[ \t]+${ide_version}[ \t]*\)[ \t]*$/ {die}" "${SOURCE_DIR}/CMakeLists.txt"; then print_info 1 "Version number in CMakeLists.txt doesn't match the detected version (${ide_version}), correcting." gawk "/^[ \t]*SET[ \t]*\([ \t]*mcu8051ide_version[ \t]+[0-9]+\.[0-9]+(\.[0-9]+)?[ \t]*\)[ \t]*$/ { \$0=\"SET(mcu8051ide_version ${ide_version})\" } { print(\$0) } " "${SOURCE_DIR}/CMakeLists.txt" > "/tmp/CMakeLists.txt" || die mv "/tmp/CMakeLists.txt" "${SOURCE_DIR}/CMakeLists.txt" || die else print_info 1 "CMakeLists.txt is OK!" fi # Check README if gawk "/^MCU 8051 IDE v${ide_version}[ \t]*$/ {die}" "${SOURCE_DIR}/README"; then print_info 1 "Version number in README doesn't match the detected version (${ide_version}), correcting." gawk "/^MCU 8051 IDE v[0-9]+\.[0-9]+(\.[0-9]+)?[ \t]*$/ { \$0=\"MCU 8051 IDE v${ide_version}\" } { print(\$0) } " "${SOURCE_DIR}/README" > "/tmp/README" || die mv "/tmp/README" "${SOURCE_DIR}/README" || die else print_info 1 "README is OK!" fi # Check mcu8051ide_win_setup.iss if gawk "/^AppVerName=MCU[ \t]+8051[ \t]+IDE[ \t]+${ide_version}[ \t]*/ {die}" "${SOURCE_DIR}/pkgs/Windows/mcu8051ide_win_setup.iss"; then print_info 1 "Version number in ${SOURCE_DIR}/pkgs/Windows/mcu8051ide_win_setup.iss doesn't match the detected version (${ide_version}), correcting." gawk " /^AppVerName=MCU[ \t]+8051[ \t]+IDE[ \t]+[0-9]+\.[0-9]+(\.[0-9]+)?[ \t]*/ { \$0=\"AppVerName=MCU 8051 IDE ${ide_version}\r\" # <-- On MS Windows we want '\r' before '\n' } /\OutputBaseFilename=mcu8051ide-[0-9]+\.[0-9]+(\.[0-9]+)?-setup/ { \$0=\"OutputBaseFilename=mcu8051ide-${ide_version}-setup\" } { print(\$0) } " "${SOURCE_DIR}/pkgs/Windows/mcu8051ide_win_setup.iss" > "/tmp/mcu8051ide_win_setup.iss" || die mv "/tmp/mcu8051ide_win_setup.iss" "${SOURCE_DIR}/pkgs/Windows/mcu8051ide_win_setup.iss" || die else print_info 1 "mcu8051ide_win_setup.iss is OK!" fi print_info 2 "Version check complete." } function build_rpm_pkg() { cur_func="build_rpm_pkg" print_info 0 "Building RPM package." print_info 1 "Preparing to build RPM package." version=($(sed 's/\./ /g' <<< ${ide_version})) if [ -z "${version[2]}" ]; then version[2]=0 fi version[2]=$(( ${version[2]} + 1 )) print_info 1 "Creating special tarball for the rpmbuild: mcu8051ide-${version[0]}.${version[1]}.tar.gz" cd "${PKG_DIR}" || die mv -v "${WORK_DIR}" "mcu8051ide-${version[0]}.${version[1]}" || die tar cvfz "mcu8051ide-${version[0]}.${version[1]}.tar.gz" "mcu8051ide-${version[0]}.${version[1]}" || die mv -v "mcu8051ide-${version[0]}.${version[1]}" "${WORK_DIR}" || die print_info 1 "Creating directory structure for rpmbuild." mkdir -v "${WORK_DIR}/rpmbuild" || die for d in BUILD BUILDROOT RPMS SOURCES SPECS SRPMS; do mkdir "${WORK_DIR}/rpmbuild/${d}" || die done mv -v "mcu8051ide-${version[0]}.${version[1]}.tar.gz" "${WORK_DIR}/rpmbuild/SOURCES/" || die print_info 1 "Preparing the .spec file." gawk " /^Version:/ { \$0=\"Version: ${version[0]}.${version[1]}\" } /^Release:/ { \$0=\"Release: ${version[2]}\" } { print(\$0) } " "${SOURCE_DIR}/pkgs/RedHat/mcu8051ide.spec" > "${WORK_DIR}/rpmbuild/SPECS/mcu8051ide-${ide_version}.spec" || die print_info 1 "Running rpmbuild." local -r PKG_NAME="mcu8051ide-${version[0]}.${version[1]}-${version[2]}.noarch.rpm" if [ -e "${PKG_DIR}/${PKG_NAME}" ]; then rm -v "${PKG_DIR}/${PKG_NAME}" fi cd "${WORK_DIR}/rpmbuild" || die rpmbuild --define "_topdir ${WORK_DIR}/rpmbuild" -bb --target noarch "./SPECS/mcu8051ide-${ide_version}.spec" || die mv -v "${WORK_DIR}/rpmbuild/RPMS/noarch/${PKG_NAME}" "${PKG_DIR}" || die results+=" ${COLOR[green]}*${COLOR[none]} ${PKG_DIR}/${PKG_NAME}\n" print_info 2 "RPM package successfully created: ${PKG_DIR}/${PKG_NAME}" } function build_deb_pkg() { cur_func="build_deb_pkg" print_info 0 "Building Debian package:" print_info 1 "Creating basic directory structure." mkdir -v "${WORK_DIR}/mcu8051ide_debian" || die mkdir -v "${WORK_DIR}/mcu8051ide_debian/DEBIAN" || die mkdir -v "${WORK_DIR}/mcu8051ide_debian/usr" || die mkdir -v "${WORK_DIR}/mcu8051ide_debian/usr/bin" || die mkdir -v "${WORK_DIR}/mcu8051ide_debian/usr/share" || die for d in applications man mcu8051ide pixmaps mime/packages; do mkdir -vp "${WORK_DIR}/mcu8051ide_debian/usr/share/${d}" || die done mkdir -v "${WORK_DIR}/mcu8051ide_debian/usr/share/man/man1" || die mkdir -vp "${WORK_DIR}/mcu8051ide_debian/usr/share/mcu8051ide/doc/handbook" || die chmod -vR 0755 "${WORK_DIR}/mcu8051ide_debian" || die print_info 1 "Creating program launcher." create_launcher "/usr/share/mcu8051ide/lib/" "${WORK_DIR}/mcu8051ide_debian/usr/bin/" print_info 1 "Coping program sources." cp -v "${WORK_DIR}/mcu8051ide.desktop" "${WORK_DIR}/mcu8051ide_debian/usr/share/applications/" || die cp -v "${WORK_DIR}/mcu8051ide.png" "${WORK_DIR}/mcu8051ide_debian/usr/share/pixmaps/" || die cp -v "${WORK_DIR}/application-x-mcu8051ide.xml" "${WORK_DIR}/mcu8051ide_debian/usr/share/mime/packages/" || die cp -v "${WORK_DIR}/doc/man/mcu8051ide.1.gz" "${WORK_DIR}/mcu8051ide_debian/usr/share/man/man1/" || die for i in data demo hwplugins icons lib translations LICENSE ChangeLog; do cp -vR "${WORK_DIR}/${i}" "${WORK_DIR}/mcu8051ide_debian/usr/share/mcu8051ide/" || die done cp -v "${WORK_DIR}"/doc/handbook/mcu8051ide.*.pdf "${WORK_DIR}/mcu8051ide_debian/usr/share/mcu8051ide/doc/handbook/" || die print_info 1 "Preparing the Debian control file and the md5sums file." # Compute MD5 hashes and generate the md5sums file cd "${WORK_DIR}/mcu8051ide_debian/" md5sum $(find . -type f | awk '/.\// {print(substr($0, 3))}') | tee "DEBIAN/md5sums" # Compute the installed size local -i total_size=$(ls -lR "${WORK_DIR}/mcu8051ide_debian/usr" | gawk ' BEGIN { sum=0 } END { print(int(sum/1024)) # <-- In kB } ($5 != "") { sum+=$5 }') # Automatically modify the control file gawk " /^Version:/ { \$0=\"Version: ${ide_version}\" } /^Installed-Size:/ { \$0=\"Installed-Size: ${total_size}\" } { print(\$0) } " "${SOURCE_DIR}/pkgs/Debian/control" > "${WORK_DIR}/mcu8051ide_debian/DEBIAN/control" || die local -r PKG_NAME="mcu8051ide-${ide_version}_all.deb" print_info 1 "Running dpkg-deb." if [ -e "${PKG_DIR}/${PKG_NAME}" ]; then rm -v "${PKG_DIR}/${PKG_NAME}" fi cd "${WORK_DIR}" || die dpkg-deb -b mcu8051ide_debian "${PKG_NAME}" || die mv -v "${WORK_DIR}/${PKG_NAME}" "${PKG_DIR}" || die results+=" ${COLOR[green]}*${COLOR[none]} ${PKG_DIR}/${PKG_NAME}\n" print_info 2 "Debian package successfully created: ${PKG_DIR}/${PKG_NAME}" } function build_freeBSD_pkg() { cur_func="build_deb_pkg" print_info 0 "Building freeBSD package:" local -r PKG_NAME="freeBSD-port-mcu8051ide-${ide_version}.tar.gz" print_info 1 "Creating basic directory structure." mkdir -v "${WORK_DIR}/freeBSD" || die mkdir -v "${WORK_DIR}/freeBSD/mcu8051ide" || die mkdir -v "${WORK_DIR}/freeBSD/share" || die for d in applications man mcu8051ide pixmaps mime/packages; do mkdir -vp "${WORK_DIR}/freeBSD/share/${d}" || die done mkdir -v "${WORK_DIR}/freeBSD/share/man/man1" || die mkdir -vp "${WORK_DIR}/freeBSD/share/mcu8051ide/doc/handbook" || die chmod -vR 0755 "${WORK_DIR}/freeBSD" || die print_info 1 "Creating program launcher." print_info 1 "Coping program sources." cp -v "${WORK_DIR}/mcu8051ide.desktop" "${WORK_DIR}/freeBSD/share/applications/" || die cp -v "${WORK_DIR}/mcu8051ide.png" "${WORK_DIR}/freeBSD/share/pixmaps/" || die cp -v "${WORK_DIR}/application-x-mcu8051ide.xml" "${WORK_DIR}/freeBSD/share/mime/packages/" || die cp -v "${WORK_DIR}/doc/man/mcu8051ide.1.gz" "${WORK_DIR}/freeBSD/share/man/man1/" || die for i in data demo hwplugins icons lib translations LICENSE ChangeLog; do cp -vR "${WORK_DIR}/${i}" "${WORK_DIR}/freeBSD/share/mcu8051ide/" || die done cp -v "${WORK_DIR}"/doc/handbook/mcu8051ide.*.pdf "${WORK_DIR}/freeBSD/share/mcu8051ide/doc/handbook/" || die cd "${WORK_DIR}/freeBSD" || die find . -type f | sort | gawk ' /\/pkg-plist$/ { next } { print(substr($0, 3, (length($0) - 2) )) } ' | tee mcu8051ide/pkg-plist || die find . -type d | sort -r | gawk ' /share\/mcu8051ide/ { printf("@dirrm %s\n", substr($0, 3, (length($0) - 2)) ) } ' | tee -a mcu8051ide/pkg-plist || die local -r tarball="mcu8051ide-${ide_version}.tar.gz" local -r md5_sum=$(md5sum -b "${PKG_DIR}/${tarball}" | gawk ' { print($1); exit(0) } ') local -r sha256_sum=$(sha256sum -b "${PKG_DIR}/${tarball}" | gawk ' { print($1); exit(0) } ') local -r tgz_size=$(wc -c "${PKG_DIR}/${tarball}" | gawk ' { print($1); exit(0) } ') printf "MD5 (${tarball}) = ${md5_sum}\n" > "${WORK_DIR}/freeBSD/mcu8051ide/distinfo" printf "SHA256 (${tarball}) = ${sha256_sum}\n" >> "${WORK_DIR}/freeBSD/mcu8051ide/distinfo" printf "SIZE (${tarball}) = ${tgz_size}\n" >> "${WORK_DIR}/freeBSD/mcu8051ide/distinfo" gawk " /<0.0.0>/ { sub(/<0.0.0>/,\"${ide_version}\", \$0) } // { sub(//,\"$(date +%F)\", \$0) } { print(\$0) } " "${SOURCE_DIR}/pkgs/freeBSD/Makefile" > "${WORK_DIR}/freeBSD/mcu8051ide/Makefile" || die cp -v "${SOURCE_DIR}/pkgs/freeBSD/pkg-descr" "${WORK_DIR}/freeBSD/mcu8051ide/" || die cp -v "${SOURCE_DIR}/pkgs/freeBSD/README" "${WORK_DIR}/freeBSD/" || die local -r PKG_NAME="freeBSD-port-mcu8051ide-${ide_version}.tar.gz" cd "${WORK_DIR}/freeBSD/" || die tar cvfz "${PKG_NAME}" "README" "mcu8051ide" || die mv -fv "${PKG_NAME}" "${PKG_DIR}/" || die results+=" ${COLOR[green]}*${COLOR[none]} ${PKG_DIR}/${PKG_NAME}\n" print_info 2 "freeBSD port files successfully created: ${PKG_DIR}/${PKG_NAME}" } function recompile_demo_project() { cur_func="recompile_demo_project" print_info 0 "Recompiling the Demo project." for f in "${SOURCE_DIR}"/demo/*.asm; do if [ ! -e "${f%%.asm}.c" ]; then tclsh "${SOURCE_DIR}/lib/main.tcl" ${nc_opt_long} --no-bin --assemble "$f" || die "Cannot assemble file: $f" fi done print_info 2 "Demo project recompiled." } function build_freewrapped_package() { cur_func="build_freewrapped_package" print_info 0 "Creating wrapped package for MS Windows." local -r lib_pkg_dir="${SOURCE_DIR}/pkgs/Windows/lib_pkg_dir" local -r fwrp_dir="${SOURCE_DIR}/pkgs/Windows/freewrap" local -r fwrp="${fwrp_dir}/freewrap" local -r fwrpw="${fwrp_dir}/freewrap.exe" local autopath="libraries" print_info 1 "Preparing libraries to wrap:" mkdir -v "${WORK_DIR}/libraries" || die chmod -v 0755 "${WORK_DIR}/libraries" || die # Bwidget: print_info 3 "Bwidget" bwidget_loaction=$(dirname $(locate pkgIndex.tcl | grep bwidget | grep '/usr')) if [ "${bwidget_loaction}" == "." ]; then die "Unable to find installed BWidget library, aborting!" fi mkdir -v "${WORK_DIR}/libraries/bwidget" || die chmod -v 0755 "${WORK_DIR}/libraries/bwidget" || die cp -vR "${bwidget_loaction}"/* "${WORK_DIR}/libraries/bwidget/" || die for f in "${WORK_DIR}"/libraries/bwidget/lang/*.rc; do printf "\n" >> $f || die done autopath+=" {libraries/bwidget}" # tcllib/md5 print_info 3 "tcllib/md5" md5_loaction=$(dirname $(locate pkgIndex.tcl | grep '/md5/' | grep '/usr')) if [ "${md5_loaction}" == "." ]; then die "Unable to find installed tcllib/md5 library, aborting!" fi mkdir -v "${WORK_DIR}/libraries/md5" || die chmod -v 0755 "${WORK_DIR}/libraries/md5" || die cp -vR "${md5_loaction}"/*.tcl "${WORK_DIR}/libraries/md5/" || die chmod -Rv 0644 "${WORK_DIR}"/libraries/md5/*.tcl || die autopath+=" {libraries/md5}" # tdom: ver=0.8.3 print_info 3 "tdom" mkdir -v "${WORK_DIR}/libraries/tdom" || die chmod -v 0755 "${WORK_DIR}/libraries/tdom" || die cp -vR "${lib_pkg_dir}"/tdom${ver}/*.{tcl,dll} "${WORK_DIR}/libraries/tdom/" || die chmod -Rv 0644 "${WORK_DIR}"/libraries/tdom/* || die autopath+=" {libraries/tdom}" # Itcl3.4: print_info 3 "Itcl3.4" mkdir -v "${WORK_DIR}/libraries/itcl" || die chmod -v 0755 "${WORK_DIR}/libraries/itcl" || die cp -v "${lib_pkg_dir}"/Itcl3.4/{itcl34.dll,itcl.tcl} "${WORK_DIR}/libraries/itcl/" || die printf "package ifneeded Itcl 3.4 [list load \"${WORK_DIR}/libraries/itcl/itcl34.dll\"]" > "${WORK_DIR}/libraries/itcl/pkgIndex.tcl" chmod -Rv 0644 "${WORK_DIR}"/libraries/itcl/* || die autopath+=" {libraries/itcl}" # TclX8.4: local -r ver="8.4" print_info 3 "TclX${ver}" mkdir -v "${WORK_DIR}/libraries/tclx${ver}" || die chmod -v 0755 "${WORK_DIR}/libraries/tclx${ver}" || die cp -v "${lib_pkg_dir}"/Tclx${ver}/*.{tcl,dll} "${WORK_DIR}/libraries/tclx${ver}/" || die printf "package ifneeded Tclx ${ver} [list load \"${WORK_DIR}/libraries/tclx${ver}/tclx84.dll\"]" > "${WORK_DIR}/libraries/tclx${ver}/pkgIndex.tcl" chmod -Rv 0644 "${WORK_DIR}"/libraries/tclx${ver}/* || die autopath+=" {libraries/tclx${ver}}" # imgpng: print_info 3 "imgpng-1.4.0.4" mkdir -v "${WORK_DIR}/libraries/img_png" || die chmod -v 0755 "${WORK_DIR}/libraries/img_png" || die cp -v "${lib_pkg_dir}"/img_png1.4.0.4/*.dll "${WORK_DIR}/libraries/img_png/" || die printf "package ifneeded img::png 1.4.0.4 {\n\tload \"${WORK_DIR}/libraries/img_png/zlibtcl12503.dll\"\n\tload \"${WORK_DIR}/libraries/img_png/pngtcl143.dll\"\n\tload \"${WORK_DIR}/libraries/img_png/tkimg1404.dll\"\n\tload \"${WORK_DIR}/libraries/img_png/tkimgpng1404.dll\"\n\tpackage provide img::png 1.4.0.4\n}" > "${WORK_DIR}/libraries/img_png/pkgIndex.tcl" chmod -Rv 0644 "${WORK_DIR}"/libraries/img_png/* || die autopath+=" {libraries/img_png}" print_info 1 "Preparing MCU 8051 IDE files and libraries to wrap." mv -vf "${WORK_DIR}/data/tips.xml" "${WORK_DIR}/tips.xml" || die # We don't want this file wrapped in the Windows package true > "${WORK_DIR}/list_of_files_to_wrap.txt" || die for d in lib icons data libraries; do find "${WORK_DIR}/${d}" -type f | tee -a "${WORK_DIR}/list_of_files_to_wrap.txt" || die done print_info 1 "Modifying main.tcl to contain proper LIB_DIRNAME and AUTO_PATH_FOR_MS_WINDOWS." gawk " // { sub(/\"\"/, \"[list ${autopath}]\", \$0) } // { sub(//, \"${WORK_DIR}/lib\", \$0) } { print(\$0) } " "${SOURCE_DIR}/lib/main.tcl" > "${WORK_DIR}/lib/main.tcl" || die chmod -v 0755 ${WORK_DIR}/lib/main.tcl || die print_info 1 "Running freewrap." cd "${WORK_DIR}" || die chmod -v 0755 "${fwrp}" || die "${fwrp}" lib/main.tcl -f list_of_files_to_wrap.txt -o mcu8051ide.exe -w "${fwrpw}" -i "${SOURCE_DIR}/pkgs/Windows/mcu8051ide.ico" 2>&1 "${fwrp}" lib/external_command.tcl -o external_command.exe -w "${fwrpw}" -i "${SOURCE_DIR}/pkgs/Windows/exec.ico" 2>&1 print_info 1 "Freewrap finished." if [ -e "${WORK_DIR}/win_pkg_files" ]; then printf "${WORK_DIR}/win_pkg_files directory (or file) already exists, removing." rm -rvf "${WORK_DIR}/win_pkg_files" || die fi mkdir -v "${WORK_DIR}/win_pkg_files" || die chmod 0755 "${WORK_DIR}/win_pkg_files" || die mv -vf "${WORK_DIR}/tips.xml" "${WORK_DIR}/data/tips.xml" || die # We didn't want this file wrapped in the Windows package mv -v "${WORK_DIR}"/*.exe "${WORK_DIR}/win_pkg_files/" || die mv -v "${WORK_DIR}/hwplugins" "${WORK_DIR}/win_pkg_files/" || die mv -v "${WORK_DIR}/data" "${WORK_DIR}/win_pkg_files/" || die mv -v "${WORK_DIR}/demo" "${WORK_DIR}/win_pkg_files/" || die mv -v "${WORK_DIR}/translations" "${WORK_DIR}/win_pkg_files/" || die mkdir -vp "${WORK_DIR}/win_pkg_files/doc/handbook" || die mv -v "${WORK_DIR}"/doc/handbook/*.pdf "${WORK_DIR}/win_pkg_files/doc/handbook" || die print_info 1 "Attempting to run the Inno Setup in Wine in order to create the Windows installation package." inno_setup_successful=0 inno_setup=$(locate Compil32.exe | grep 'Inno Setup') if [ ! -z "$inno_setup" ]; then local response="" if (( ! ${options[inno]} )); then printf "Inno Setup program found, make sure that you have set Widnows drive W: to \"${SOURCE_DIR}\".\nDo you want to proceed? [yes] " read response fi if [[ "$response" == "" || "$response" == "y" || "$response" == "yes" ]]; then rm -v "${PKG_DIR}/mcu8051ide-${ide_version}-setup.exe" printf "Attempting to run the Inno Setup" wine "$inno_setup" /cc "W:\\mcu8051ide\\pkgs\\Windows\\mcu8051ide_win_setup.iss" && inno_setup_successful=1 fi else printf "Inno Setup program not found." fi if [ -e "${PKG_DIR}/mcu8051ide-${ide_version}-setup.exe" ]; then results+=" ${COLOR[green]}*${COLOR[none]} ${PKG_DIR}/mcu8051ide-${ide_version}-setup.exe\n" print_info 2 "Windows package complete: ${PKG_DIR}/mcu8051ide-${ide_version}-setup.exe" else results+=" ${COLOR[green]}*${COLOR[none]} ${WORK_DIR}/win_pkg_files\n" print_info 2 "Windows package complete: ${WORK_DIR}/win_pkg_files" fi } function create_ebuild() { cur_func="create_ebuild" print_info 0 "Creating ebuild for Gentoo Linux." local -r PKG_NAME="Gentoo-ebuild-mcu8051ide-${ide_version}.tar.gz" if [ -e "${PKG_DIR}/${PKG_NAME}" ]; then rm -v "${PKG_DIR}/${PKG_NAME}" fi mkdir -v "${WORK_DIR}/gentoo-ebuild" || die gawk " /0\.0\.0/ { gsub(/0\.0\.0/, \"${ide_version}\", \$0) } { print(\$0) } " "${SOURCE_DIR}/pkgs/Gentoo/README" > "${WORK_DIR}/gentoo-ebuild/README" || die cp -v "${SOURCE_DIR}/pkgs/Gentoo/mcu8051ide.ebuild" "${WORK_DIR}/gentoo-ebuild/mcu8051ide-${ide_version}.ebuild" || die chmod -v 0644 "${WORK_DIR}"/gentoo-ebuild/* || die cd "${WORK_DIR}/gentoo-ebuild" || die tar cvfz "${PKG_NAME}" "README" "mcu8051ide-${ide_version}.ebuild" || die mv -v "${PKG_NAME}" "${PKG_DIR}" || die rm -rfv "${WORK_DIR}/gentoo-ebuild" || die results+=" ${COLOR[green]}*${COLOR[none]} ${PKG_DIR}/${PKG_NAME}\n" print_info 2 "Gentoo ebuild complete: ${PKG_DIR}/${PKG_NAME}" } function final_report() { cur_func="final_report" printf "\nProcess successfully finished, resulting packages are:\n${results}\n" } function create_final_readme() { local -r README_FILE="${PKG_DIR}/readme.txt" local source_pkg= local deb_pkg= local rpm_pkg= local ebuild_pkg= local arch_pkg= local windows_pkg= local bsd_pkg= if (( ${options[tar]} || ${options[arch]} )); then source_pkg="mcu8051ide-${ide_version}.tar.gz" fi if (( ${options[arch]} )); then arch_pkg="Arch-PKGBUILD-mcu8051ide-${ide_version}.tar.gz" fi if (( ${options[ebuild]} )); then ebuild_pkg="Gentoo-ebuild-mcu8051ide-${ide_version}.tar.gz" fi if (( ${options[rpm]} )); then rpm_pkg="mcu8051ide-${version[0]}.${version[1]}-${version[2]}.noarch.rpm" fi if (( ${options[deb]} )); then deb_pkg="mcu8051ide-${ide_version}_all.deb" fi if (( ${options[windows]} )); then windows_pkg="mcu8051ide-${ide_version}-setup.exe" fi if (( ${options[freeBSD]} )); then bsd_pkg="freeBSD-port-mcu8051ide-${ide_version}.tar.gz" fi if [ ! -z "${source_pkg}" ]; then printf "Source code package: %s\n" "${source_pkg}" > "${README_FILE}" || die fi printf "\n" >> "${README_FILE}" || die printf "Installation files\n" >> "${README_FILE}" || die printf " - Linux systems\n" >> "${README_FILE}" || die if [ ! -z "${deb_pkg}" ]; then printf " - Ubuntu, etc.: %s\n" "${deb_pkg}" >> "${README_FILE}" || die fi if [ ! -z "${rpm_pkg}" ]; then printf " - Fedora, etc.: %s\n" "${rpm_pkg}" >> "${README_FILE}" || die fi if [ ! -z "${ebuild_pkg}" ]; then printf " - Gentoo Linux: %s\n" "${ebuild_pkg}" >> "${README_FILE}" || die fi if [ ! -z "${arch_pkg}" ]; then printf " - Arch Linux: %s\n" "${arch_pkg}" >> "${README_FILE}" || die fi if [ ! -z "${windows_pkg}" ]; then printf " - Windows XP/7: %s\n" "${windows_pkg}" >> "${README_FILE}" || die fi if [ ! -z "${bsd_pkg}" ]; then printf " - freeBSD: %s\n" "${bsd_pkg}" >> "${README_FILE}" || die fi printf "\n" >> "${README_FILE}" || die printf "In case you trouble with any of these files, or you have a suggestion how to\n" >> "${README_FILE}" || die printf "make them better, please write an email to the author of the project:\n" >> "${README_FILE}" || die printf "martin \DOT osmera \AT gmail \DOT com.\n" >> "${README_FILE}" || die results+=" ${COLOR[green]}*${COLOR[none]} ${README_FILE}\n" } function die() { printf "\n${COLOR[red]}!!!${COLOR[none]} ${COLOR[bold]}Function %s() failed.${COLOR[none]}\n" "${cur_func}" if [ ! -z "${1}" ]; then printf "${COLOR[red]}!!!${COLOR[none]} ${COLOR[bold]}Message: %s${COLOR[none]}\n" "${1}" fi exit 1 } function print_info() { case "${1}" in 0) printf "\n${COLOR[blue]}...${COLOR[none]}\n" printf "${COLOR[blue]}...${COLOR[none]} ${COLOR[bold]}%s${COLOR[none]}\n" "${2}" printf "${COLOR[blue]}...${COLOR[none]}\n\n" ;; 1) printf "\n${COLOR[yellow]}>>>${COLOR[none]} ${COLOR[bold]}%s${COLOR[none]}\n\n" "${2}" ;; 2) printf "\n${COLOR[green]}###${COLOR[none]}\n" printf "${COLOR[green]}###${COLOR[none]} ${COLOR[bold]}%s${COLOR[none]}\n" "${2}" printf "${COLOR[green]}###${COLOR[none]}\n\n" ;; 3) printf "\n${COLOR[cyan]} * ${COLOR[none]} ${COLOR[bold]}%s${COLOR[none]}\n\n" "${2}" ;; ?) die "Invalid level specification: ${1}" ;; esac } function define_colors() { if (( ${options[nocolor]} == 0 )); then COLOR=( [none]="\033[m" [red]="\033[1;31m" [green]="\033[1;32m" [yellow]="\033[1;33m" [blue]="\033[1;34m" [purple]="\033[1;35m" [cyan]="\033[1;36m" [bold]="\033[1m" ) fi } function print_help() { local -r help_message=$(cat << EOF Script for automated creation of various installation packages, written for MCU 8051 IDE. This software is distributed under the terms of GNU GPLv2 license. This script is intended for ${COLOR[bold]}development purposes${COLOR[none]} concerning the MCU 8051 IDE project, if have found a bug in this script, please contact its author: Martin Ošmera . ${COLOR[bold]}Basic options:${COLOR[none]} ${COLOR[green]}-a${COLOR[none]} Do it all, it's equivalent to "${COLOR[green]}-sfpomterdwic${COLOR[none]}" ${COLOR[green]}-n${COLOR[none]} Disable color output. ${COLOR[green]}-h${COLOR[none]} Print this message. ${COLOR[bold]}Advanced options:${COLOR[none]} ${COLOR[green]}-s${COLOR[none]} Run tests: ${COLOR[blue]}a)${COLOR[none]} check whether all programs required to run this script are available, ${COLOR[blue]}b)${COLOR[none]} check for presence libraries required by MCU 8051 IDE, ${COLOR[blue]}c)${COLOR[none]} run regression test. ${COLOR[green]}-f${COLOR[none]} Check and fix version number in README, etc. files. ${COLOR[green]}-p${COLOR[none]} Rebuild PDF documentation files. ${COLOR[green]}-o${COLOR[none]} Rebuild demonstration project. ${COLOR[green]}-m${COLOR[none]} Update translation files and the translation template. ${COLOR[green]}-t${COLOR[none]} Create source code tarball. ${COLOR[green]}-e${COLOR[none]} Create tarball with Portage ebuild (for Gentoo Linux). ${COLOR[green]}-r${COLOR[none]} Create RPM package. ${COLOR[green]}-d${COLOR[none]} Create Deb package. ${COLOR[green]}-x${COLOR[none]} Create pacman package (for Arch Linux). ${COLOR[green]}-w${COLOR[none]} Create Windows .exe files. ${COLOR[green]}-i${COLOR[none]} Automatically run Inno Setup in Wine in order to build Windows installation package. ${COLOR[green]}-c${COLOR[none]} Clean up the source directory structure, i.e. remove redundant files. ${COLOR[green]}-j${COLOR[none]} Create readme.txt file explaining which package is for what. ${COLOR[bold]}Examples of usage:${COLOR[none]} ${COLOR[blue]}*${COLOR[none]} ${SCRIPT_NAME} ${COLOR[green]}-a${COLOR[none]} -- Simply do everything we can, recommended way of usage. ${COLOR[blue]}*${COLOR[none]} ${SCRIPT_NAME} ${COLOR[green]}-c${COLOR[none]} -- Don't build anything, just clean up the source directory. ${COLOR[blue]}*${COLOR[none]} ${SCRIPT_NAME} ${COLOR[green]}-mop${COLOR[none]} -- Update translations (${COLOR[green]}-m${COLOR[none]}), rebuild the Demo project (${COLOR[green]}-o${COLOR[none]}), rebuild PDF documentation (${COLOR[green]}-p${COLOR[none]}). ${COLOR[blue]}*${COLOR[none]} ${SCRIPT_NAME} ${COLOR[green]}-r${COLOR[none]} -- Skip all tests, rebuilds, etc., and build RPM package right away. This is strongly unrecommended. ${COLOR[bold]}Notes:${COLOR[none]} ${COLOR[blue]}*${COLOR[none]} If you are about to create Windows installer, ${COLOR[bold]}read the README file first!${COLOR[none]} ${COLOR[blue]}*${COLOR[none]} The order of operations is fixed, i.e. it is not affected by the order of provided command line switches. ${COLOR[blue]}*${COLOR[none]} When using the ${COLOR[green]}-w${COLOR[none]} switch, the script becomes interactive, to avoid that either use the switch along with the ${COLOR[green]}-i${COLOR[none]} switch, or don't use it at all. ${COLOR[blue]}*${COLOR[none]} Resulting packages will be created in the same directory as this script is located. ${COLOR[blue]}*${COLOR[none]} Location from which the script is run does not affect operations of the script in any way. ${COLOR[blue]}*${COLOR[none]} In case of an error, some temporary files or directories might remain at the location of this script. To get rid of them, you might use: "${SCRIPT_NAME} ${COLOR[green]}-c${COLOR[none]}". ${COLOR[blue]}*${COLOR[none]} This script counts on that you have already properly installed MCU 8051 IDE. EOF ) printf "${help_message}\n\n" } function_touch_all() { find "${SOURCE_DIR}" -type f | while read f; do touch --no-create "$f" done } function main() { cd "$(dirname "${0}")" PKG_DIR="$(pwd)" SOURCE_DIR="${PKG_DIR}/.." WORK_DIR="${PKG_DIR}/installation_sandbox" SCRIPT_NAME="$(basename "${0}")" local invalid_options="" if [ "$#" == "0" ]; then print_help exit 1 fi while getopts ":acdefhijkmnoprstwx" opt; do case "$opt" in h) options[help]=1;; n) options[nocolor]=1;; s) options[tests]=1;; f) options[version]=1;; p) options[pdf]=1;; o) options[demo]=1;; m) options[msg]=1;; t) options[tar]=1;; e) options[ebuild]=1;; r) options[rpm]=1;; d) options[deb]=1;; x) options[arch]=1;; w) options[windows]=1;; c) options[clear]=1;; i) options[inno]=1;; j) options[readme]=1;; k) options[freeBSD]=1;; a) options[tests]=1 options[version]=1 options[pdf]=1 options[demo]=1 options[msg]=1 options[tar]=1 options[ebuild]=1 options[rpm]=1 options[deb]=1 options[arch]=1 options[windows]=1 options[inno]=1 options[readme]=1 options[freeBSD]=1 options[clear]=1 ;; ?) invalid_options+=" ${OPTARG}";; esac done define_colors if (( ${options[nocolor]} )); then nc_opt_long="--nocolor" nc_opt_short="-n" fi if [ ! -z "$invalid_options" ]; then for opt in $invalid_options; do printf "${COLOR[reg]}ERROR:${COLOR[none]} Invalid option: %s\n" "${opt}" > /dev/stderr done printf "\n" print_help exit 1 fi if (( ${options[help]} )); then print_help exit 0 fi print_info 1 "Changing current directory to: ${SOURCE_DIR}" cd "${SOURCE_DIR}" || die function_touch_all detect_version if (( ${options[tests]} )); then basic_tests fi if (( ${options[version]} )); then check_version fi if (( ${options[pdf]} )); then create_pdf_doc fi if (( ${options[demo]} )); then recompile_demo_project fi if (( ${options[msg]} )); then update_msg_files fi create_sandbox if (( ${options[tests]} )); then recheck_RTE fi finalize_sandbox if (( ${options[tar]} || ${options[arch]} || ${options[freeBSD]} )); then create_tarball fi rm_sctar_files if (( ${options[arch]} )); then create_pacman_package fi if (( ${options[ebuild]} )); then create_ebuild fi if (( ${options[rpm]} )); then build_rpm_pkg fi if (( ${options[deb]} )); then build_deb_pkg fi if (( ${options[freeBSD]} )); then build_freeBSD_pkg fi if (( ${options[windows]} )); then build_freewrapped_package fi if (( ${options[clear]} )); then clear_source_dir fi if (( ${options[readme]} )); then create_final_readme fi remove_sandbox final_report } main "$@" mcu8051ide-1.4.7/pkgs/Debian/0000755000175000017500000000000012067167647016225 5ustar milleniummilleniummcu8051ide-1.4.7/pkgs/Debian/control0000644000175000017500000000122212067167647017625 0ustar milleniummilleniumPackage: mcu8051ide Version: 0.0.0 Installed-Size: 0 Priority: optional Architecture: all Homepage: http://mcu8051ide.sf.net Section: Development Depends: bwidget (>= 1.8.0), itcl3, tk8.5, tdom (>= 0.8), tcllib (>= 1.10), tk8.5, tclx8.4, libtk-img, rxvt-unicode, sdcc, doxygen, hunspell, make Maintainer: Martin Osmera Description: Graphical Integrated Development Enviroment for 8051. MCU 8051 IDE is integrated development enviroment for microcontrollers based on 8051. Supported programming languages are C and assembly. It has its own assembler and support for 2 external assemblers. For C language it uses the SDCC compiler. mcu8051ide-1.4.7/pkgs/README0000644000175000017500000000636012067167647015730 0ustar milleniummilleniumThis directory contains files for building various installation packages, the create_installation_packages.sh script can these files to create: - RPM package - Debian package - Windows installer - tarball with the source code - ebuild for Gentoo Linux - PKGBUILD file for Arch Linux - freeBSD port Microsoft Windows specific requiremens: --------------------------------------- 1) This part of te directory structure is NOT included in source tarball, nor it's in the project's GIT repository, however, it is required in order to build package for Windows. If you want to build the installer package for MS Windows, you have to obtain these files somewhere, freewrap can be just downloaded from the Internet, but the you would probably have to build all those .dll files. All version and file names must be met exactly! Windows/ ├── freewrap │   ├── docs │   │   ├── freeWrapDocs.pdf │   │   ├── license.winico │   │   ├── readme.txt │   │   ├── readme.winico │   │   └── winico.html │   ├── freewrap <-- Linux version of freeWrap │   ├── freewrap.exe <-- Windows version freeWrap │   └── tclpip85s.dll ├── lib_pkg_dir <-- Some of the MCU 8051 IDE dependencies │   ├── img_png1.4.0.4 <-- tkimg library │   │   ├── pngtcl143.dll │   │   ├── tkimg1404.dll │   │   ├── tkimgpng1404.dll │   │   └── zlibtcl12503.dll │   ├── Itcl3.4 <-- [Incr Tcl] (itcl) library │   │   ├── itcl34.dll │   │   ├── itcl.tcl │   │   └── pkgIndex.tcl │   ├── Tclx8.4 <-- TclX library │   │   ├── arrayprocs.tcl │   │   ├── autoload.tcl │   │   ├── buildhelp.tcl │   │   ├── compat.tcl │   │   ├── convlib.tcl │   │   ├── edprocs.tcl │   │   ├── events.tcl │   │   ├── fmath.tcl │   │   ├── forfile.tcl │   │   ├── globrecur.tcl │   │   ├── help.tcl │   │   ├── pkgIndex.tcl │   │   ├── profrep.tcl │   │   ├── pushd.tcl │   │   ├── setfuncs.tcl │   │   ├── showproc.tcl │   │   ├── stringfile.tcl │   │   ├── tcllib.tcl │   │   ├── tclx84.dll │   │   └── tclx.tcl │   └── tdom0.8.3 <-- tdom library │   ├── pkgIndex.tcl │   ├── tdom083.dll │   └── tdom.tcl : : 2) Inno Setup and the final Windows package: you can build even the Windows installer file (an .exe file) directly from GNU/Linux, the script can so this automatically, but you have to install Wine and Inno Setup in Wine (both can be easily obtained from the Internet). Run winecfg and set "W:" drive to the directory where you have located your local mcu8051ide development directory (it might/should be different from the installation directory), e.g. "/home/some_user_name/" (in case there is "/home/some_user_name/mcu8051ide/pkg/create_installation_packages.sh", ...) mcu8051ide-1.4.7/LICENSE0000644000175000017500000004306212067167647015111 0ustar milleniummillenium GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave, Cambridge, MA 02139, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundations software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each authors protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyones free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Programs source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS Appendix: How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 19yy This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) 19yy name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w. This is free software, and you are welcome to redistribute it under certain conditions; type `show c for details. The hypothetical commands `show w and `show c should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w and `show c; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. mcu8051ide-1.4.7/icons/0000755000175000017500000000000012067167647015212 5ustar milleniummilleniummcu8051ide-1.4.7/icons/32x32/0000755000175000017500000000000012067167647015773 5ustar milleniummilleniummcu8051ide-1.4.7/icons/32x32/wizard.png0000644000175000017500000000245512067167647020007 0ustar milleniummilleniumPNG  IHDR szzsBIT|dtEXtSoftwarewww.inkscape.org<IDATXmHg9:$OsiNw(dKX$Kik&QP ŢEЇGi"vrS[DHkN5s/:fRzsyܴԴ .\?>y7?}b D0GdeK(hGj똵"~ pz4uUv[6rQ b@'Moy_-jK aϔBUqYul 9JD"j(hΊx@<0toH)S -5mocJ ^ 31\'JDD.‘EŘwK~Y:}ڃh'$0J^4qջ7 _$ 1/6i}ODx,?P7-q}ĝH܋F{!P~sRϷ}>ǯ<Z?'ȿѧ; @|m{" Am7^¼9٠^ AAÜyqRRD<xl* 9֓Yy )e%mJFi*}+DCbs@)eb [B ֚NWCu$b 0p/v 4ᔛt Z;zrMMӤLRSS@*?GՌFM{oxoqcνeVk`0(".ܕHGm OBPrիAٴiddd\п2hv]@ycϞ=;P__/b4KwN@D9ڃA~ٳGrsswx`1,b2$Y/"S3>;p8䐗ŋI.8)p8R,F]IWIvĉ6t.]LRJM/^p:b秥iυcgggc6)))٫0M¤rJSmm՜Sm6cs!PSS.;;Mii釄ISOɓXhno'\B].;D`ާ;wk:::4 *L }.-[H&¸kΪ6Fc" tc`4?Aۍa1<@`NA,*x X _7CH/|@j>ȷb~yy[[& b؇ fx} ;1H" N30|b0Hf#?˗3ܛ5ާO P@-O`54xkj-,HJ\?~dPVpf^OG,`R|@BΎTmR O! 8_򹲕OS$>>}"V4w`h @p@S}& ,* 1AQؘ ŇANYiLas (Mb<( &xp@(10*}AL b9 60c 9 2sr2@ˏxPVSRb`}ـL(@E=`yd !^@y||8!S@,TlW%,`@[BWC1tX.}ϭ[ _d]!m@@}*^xeF»wCf !29$ck2e}:_vc nĉQq ,`UN@A|lgho;Lr0,Ï!!GPâ `! ߿6`@J`kLS5!L" P__A P7!"@%xp; .:+ 1^`0:`:m|f "Aj\! ;8Lj!c@Ľnb5J} a62I=@` x]jÁ=&wrsQw |H/ s@?@|!L @,LLʈaښ5 EESa0CBu|fE 7(AcBilTJ쀍NV&& h:N +>dx ;ː$$[m 1vV |?!sX‚hM2(] mXrsre'`U_,_PQ @8ˠ! ]UUMPp;v6w`c&@!ŠLr22 ‚Xտ#w8!`zseb`e?߿ 5:!^-R8dc2945޼{c3\zׯ Imӧ~@j=(A2:1 Zc֯?Ȱm.ϟ?,EG3.`s@au@1 P==eӧfZp`hٳ/; 0 @CVVY) ˖mgػw(}s> ; eCP+1$&3q3|fà(`eeȠPj6  &,=羾. <<… ::a/^S&Tq?2y1I`hl'@@=PQQa' z JJR`R <> ܜꘘr@ r! 5~cyy 0 ""Wgc0 ( 8:xx@ 05ĂIA.}uP 72Re03cX[32{ n85aDTԌd@AJDD3#d`v#1  1amd"r>'b1@ x Lq6IENDB`mcu8051ide-1.4.7/icons/32x32/button_ok.png0000644000175000017500000000256112067167647020511 0ustar milleniummilleniumPNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@p ###-]`@L, !As.bpXp}~1}z0 2gɰ!!sddh`.va3@11bxC) |@L52(2{q7 oZͰz@L@?oedr12t2̣#&- P\Yг_341LfT_@37CCZ<b1?CZpÑG>{a-C9P AQ@͖/_c;10|fPǐDTZ 8VvV # csc?0ۼO_\ư,P3PO @_3}g*e+[ Ku ; 4Y_TA[W Vb= '.Y6 -e' @GV V0313(0|fn2yl@-(% @HK, *˰a=> E @nƠ t)>4ف(|AkA@*y = Ӂy3chVr (;0;>cdx #bA fb/4Se ~|rH{NL. ,]Vpp7 W@, @!0"X-xaP@˷28Y I#(ϰnK$̔t+}e8 c "r `L{ЄAerpp X^ON @M񘖃r" ~ W$;9@;?01|D*4Ax-8]cl\b9JN l0VhN!pǰXȥE ^k# 03?_mb@ؚ~:.H}0 CTb9~W` V> @xFŠU+[G$b# @M@@;{+IENDB`mcu8051ide-1.4.7/icons/32x32/kcmmemory.png0000644000175000017500000000370212067167647020506 0ustar milleniummilleniumPNG  IHDR szzbKGDwIDATxkpU%'4Đ@p%@rFPFlڂ-Rӱ? "An-:A ! @$J\DcELgϚ=[}Y7_7S|9'w[|e?&m6SNi?Oe1EEʶn~^^S\̟'|?6ZZWx].gĉ7֘fs_jZ9e-ߋƖ.޹Ȫ/F~*~]ַ\/rݜ+b~0NJ0)v%R^?$n؆i) sKW;s%Ew(--/BHE`Y!,, ޵pؠɰar#m,o s?xʗnnvcYֵ2!B ܎(H}Wuڼ?^ͷr[͖a IμŒ46\F]R@(dP_ߊJW*mr\dd⋯2Np֪yy3o|ik$P  8|>`PGU5TUU:t@zk sUJSP蜘& Z~ri@MH<.S8o9vFtjk/pرnׇͦt %XeI(LX̎!k^:gu X:`&?ꗠ[ mW">0G  C߯ȑi$''gkhb,;tEE g4k:JT"e8Y@nTyO@3ztEQPUMPU Fbb,gJ;7]`u gYgGE]硹 0A- wfZe, ;8[ȤIwBtT5e~Փ3g5k%3fσ'Qmg0 pIm|Z [ft#1Kۈ]/rMhϧnݻl<#F "5$))/xmN"qY( Wz؃=@ ! e覡W,'pn t}'>} q\?11Qx<>ϟر̝;?aWu8Ȟ4$1 GGv$ Z߀ͨ HI\>~;L^@\\sPAN s1uaX9p<-lR}}UeJ?&* Os"HiȦ5_-ǒKm4M"I$b.EĮ]ί_i%^p0iӹ֗yh7|OAH8_ϣTaij&}Rb^9iiֈt=MMe@0αk;s  ಪ:;;}MӲqrDe BС#yרe}@.gBPօHO 424׬uM?Mk!`yhB 2`Ӂ=k6sFHB>ͦl**6o?IcGIENDB`mcu8051ide-1.4.7/icons/32x32/configure.png0000644000175000017500000000345712067167647020473 0ustar milleniummilleniumPNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbdv8. $ aB@o?߿ RZZ(r?e9Ó'/hmmx`Æ>|_~|J h͚VyS]N_rw?v>ɐ q#J b1Ο߿Q]=>}NX?}[pZ Pʚ̿e`g} \2egчsƚCQO='rK>P7_~g]]Un 33gPPkQ d#/? M-fH#x @,pP!g00-Gߢ ߹n vC##*4/.J~O J_>~gae`dޏ1|fcv/ &r)}?Gq9NF~qnF6n4!?g SF`B^Y!J70 +fdgfxi&pH\_@d;BalA^' \hyYP )qo.>|1788n`to ߀oC o酋AçL 3J bz)IVg*(>ro-AM'(=78to?->(b[V~@&@Q 4`,]o ! ,E:33_`7ml1&3mɶm,s͛fG5wuuKAL\&%< R0$n uqܚ9r.ˑ{ g|kå95bJ}eb*),Gq:݇r뗻86 iBܶP)A%I Ҩ${K13$ۦ/o !~, UӤ 'T`PO&yFAדRȗ$t/- A.NJR?+.OYyȧ{{ YU)S?rXEEsEH+ `8oKAWArߞ8R吙lzfp_9೐O/`~6Y9A;/ P ,H13L ]/)cwp4r,QPe_Jw=c|[ɶ"HPcY=ޚJT03}((P}In {ɭRg)85h4ű&֦j4ׄX`M+a<,f2y0=zK?Gx0y)vv읎m6iĢ1 rL0/- \״UzDM˨R!)E#OU|4۹{qQ "r[|`dRf>~iS72rƺ9Ib#V%?*RP>l=nPF04BAc'i|<~C/7, oKIENDB`mcu8051ide-1.4.7/icons/32x32/messagebox_info.png0000644000175000017500000000447212067167647021660 0ustar milleniummilleniumPNG  IHDR szzbKGDC pHYs  ~tIME ;tEXtCommentCreated with The GIMPd%nIDATxڕk̼9g rY֦KPXjPcL[RMmDk"[UiVMhH\첻g{ 8fr32yqq:#"v;|lxmZoE:8w"֮^|ߙ g}(""sd2SO08|짛x/"u,LK{fޚ>[,pdW1S,/JB*tJ~fK̙;ukbB :x}m/ǶgwҜzGn m:.={0&-΁dJ@h,[~x[ھ*Cks鍊}WӕTm9sB&J(1qlQ"LihAkqۯ9oʮY{wjC6\y[qQ@)j:Z shCJ#*1J^>H͛Y]M5RKߵ_M& X;Sal] 4\=(e997ӆslX'_/S0S< -\f1yNzch&Iy!KB1s8r9Mo\~)z8l{{_^}\Ӓk Dd,E38V$Ls0Y 陝a<~^Tz/'pj&7#W 9wIi_wF8q.IZ-1kVێ\a9 dV94D"#$[Kh8gc!IXA( +2Y 92^bQzi?txbiGrK vR`1JPZ"hmPʥfRE|2L2[8K:[OѨցOcrLY-"nҾGd3 枿/IRɀ}'آ$ւR|=zr QU. D >+zZ̛P(O9F&r;h|,t+,CXH71Q٩dfVn^KS7 `Bh%!q uC,\1`U]/8I<$Exz}~ ;Ɗd0Zj+I:PX9y\%&"@USv ʑ iBi8("UZYLk֧X(@,:!UʱÞ-V AWU^#.l%A-YԁURVE+D뚠4'(%3֢4>xPJlJ[cTmc"(R5d>q"m40ZF񃩂C)te2;S (TF%D @ e5ڄB+j%{^n4oFZOK2W&= B#r r[Ki_=LfuI9%+4f&e"+^"hNSBWd|EK$ޔVR mPar7蛋+NҜI" bRhc^[7$/yP kR?%RX*x7ʌ\.>;vpCosFbJEKƤ$}ظNC2|Do BdntB#'czqw^:ۚ˕ɗ*ʤW ƬO610xlͷl>7wnhki&[_GC}:y/[lL1rtfsWΖ/8pg_ ,ƚl},u,3lyKY4?.4IENDB`mcu8051ide-1.4.7/icons/32x32/help.png0000644000175000017500000000306312067167647017433 0ustar milleniummilleniumPNG  IHDR szzbKGD pHYs  #utIME 0u?IDATxŗMl\~sr*R&FTi iQ$"@Y{($ҫ{񢗢HQuZh+;b&vR5-ڪAR!%XÒ)&K0ٙy/rhil5 LJƜ KlA,#oܙ ,`":yVBH,)|2m@` DÉGDA(]2r80ui:c.|.k[,qMX{J|Je h |&x.F 2]4Ft?=چM4}RgQ7J| Ú=3} a|O|*Ǝ֎3zyyi/?ͥmt,^mDssA 8UHe+PlgΡgƨWn"0jv מwT d/A"7pk g;q!wZJ]Pxn丆S w;7pmY뫐/W}4~Ʌwu恳q('4MnsNn&aYP,Mpʕ=h<fM"C0S)i nBmIs|X%V] 7,5 $+Rzn : IMFy6|hl;4 %%(|kzTZG%W@C?)AxKZkQ1"5e1PǏ_=WXڄ(^ zuB .K)~Fwm[ʩG@x\AqޓJOJoۃaI|U(g~&"mk|L K{PyD4ug$ki e6LDlI!I٠*hC;(.Utʹd[5,%#ֿS16P,y5!0@suqfu+Ǘ823FOHd 2Wj'fNH.+*='~^yU #Cm2yĥʹ\~@&>zT.G29FO_ِǬ2L&C‘0Nkx rA3;fNHf$w#dRwU{iPr;ݾɛ#M@]񩜙>dM +cm|XSgφ~oӒɤ珆HDCu]ZH#~s#bL26$ yqP,qL 6伀;.&B\g̺][z^N[ K dw..z f\\ {St5s;Ft(_myCIENDB`mcu8051ide-1.4.7/icons/32x32/messagebox_warning.png0000644000175000017500000000323412067167647022365 0ustar milleniummilleniumPNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<.IDATxb?@"aP<ɠd21#9.2431ae tDP\21e`g`aW oI5 Hv5|f%] e%CDb#f1!0gTIjz  vAK=` btjJ3+PB-0ɉA0 &J- U@\ @&<` =+ lR l\~?Aa MD&r2ˆ20kOd8~9Ö-Μ?Y5+ֵ /bbc^taPO+" cbs.exǔa a19A0 %piS;@@ h9  P Ï_"߿`rb^ f" B|b" O_HJ00XA2A}C4[ pJ^c[K;`f7`ae`f?p,#JjM@z*dd eKL4p8`!e 2&|(6Pfi0T%5b•s;y+ b ?!r ]MޖW!&WA( &=0ݐ,/ L ߿g bOP d 30̈Td bYއuH81/`0 (3|AY?<~ k2P=@,X{Y'$gyŭ /߿lZ0(-dn-A ob'6B _3zy{ `4(z}"PځlEEFmmn lF]L >caXv0 0Vـ{9`b5'Z 2&fAGv !YQEP/ @s03h̎dwW?0<[!fx @PCjVJyD2rD3ۿ#S.@1t ެTIENDB`mcu8051ide-1.4.7/icons/32x32/exec.png0000644000175000017500000000437012067167647017431 0ustar milleniummilleniumPNG  IHDR szzbKGDIDATxڵypU?wykޒ&$$a1MZZKihu:PYR;.ԙi8UiuԂU bRH򶻜. (#̝=|sIA\'{zot&]8t[w } V'* WBq=g7`׭jMb5A#B,Eڊ&ńOŜŤPO|VZc\H5u'48#kРQ+tlJ5ǷSQ]i_UZRTrcX_ˀ @Ҁ ܐMcwُ܏Z,u3IrH98QO6@jˌ%&LnPd>S{=a9s* = ]C}l3B&GgT)Z:_5 rܶOmfu+4y(-ͷP6>%iEuU]HYP讇]E(6LG[+DԨqڑ/z`bi\< 12j$ ZO[*oEH0LGAd. DZ@ vkiIA vT*@,q|.X@]2zSs8+wh$çb8smD#n3Ig90Ӧa|i( (5wu+ ȒIK0mȒ) CJ3ysKv{1x;{O$~yة "H~>7 46?Or'S[gwy X:1sGSV/!~z1i^kUHDgL^mԿ5&prAbSW7_).j,u73;l$&딺ylb QA[3/|JqR&pl*+u]}-u3/>H_Øs3q? TI{\~HqH&[6$ 4 N*H.xᮽQ2[:z\WRz>T plsJ)ĝNXU p`5}ChIwm'q3JB q!_ӲCN-uWVeEb-EIw['BX`O4FZK<|0 _$Or0M2Gj}*%^f֏m=;˦"X: 68ڗ!  ۑEK<5&X!!{<=Z/2]MWTlHۨ*gv ,'|텣^τ~Oؐ<ޯϣ5h qi^r{cc=|fu^;hBH9և fh&F"sڐ谒w2'kfF=N綆k1%[B'M2q}?k~1+}=Ǜ^)GCpG(y^Uੵ<*ڜ F\S–L+9#[ԐBdQ`,7 l ɇw7}) D&Xn!2vSṼϵsW"]?)Գ!`QnpA'r:!<ŗWH)!nvTgo("-"vYٻxFfLE\X TJ0=u|YIENDB`mcu8051ide-1.4.7/icons/flag/0000755000175000017500000000000012067167647016123 5ustar milleniummilleniummcu8051ide-1.4.7/icons/flag/Lebanon.png0000644000175000017500000000577612067167647020226 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F+IDATxڔJAgvrI5T ؤI h!}2`ciJba+!sw&J^éc `x&4*# 1,l ;!s޹]q(Zӳ]ϗ8MN^q$S'&sN}ɮ){r<>VOxG(Q \ؐ^\[_4^no&3(gJ,*{ &G[La<rA8KDqe !ˆ|~|rDpIENDB`mcu8051ide-1.4.7/icons/flag/Rwanda.png0000644000175000017500000000572012067167647020051 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڜJQFgfWפH A+!o O!DDƿ`ݙxjvfm8 'P7a]Up0V3xwW/p=/딷Y(}&EZ.X {n*Fq.b }BFq͟Yui)='Ё r@(*k+-6j'?@YYo=*kFQ27] *torIENDB`mcu8051ide-1.4.7/icons/flag/France.png0000644000175000017500000000573512067167647020041 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F IDATx=N07YK٠]qJ @M ܊ ! %Ǔئجِt?G9rzrtuqaڛ[ww,׳YT<_.ʮq*0 9-Hӈъbֱ15rcs>>[D6$I0,i=f"vYF>bX*l JOoT;LAJDx[6tPMTn_:yk @S" o'CDMR%IENDB`mcu8051ide-1.4.7/icons/flag/Puerto_Rico.png0000644000175000017500000000610012067167647021060 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FmIDATxڌ+DQs;c1$ Ka#YXH(!+%JEVR&ԠY)w=9`}_=9XhM%Pbt`LZ]:WED0a.{^S,26Z*Sj6WHu/23` ;:Gڃ Bz,tƦ{#5#3YKk aO=09n %xܪeI) $ Imt zm{ա퉁O2\HF)HY8s'uP~t*$I9K%rS$Fz?u(~pWj%#):.T?|lzu$IENDB`mcu8051ide-1.4.7/icons/flag/Montserrat.png0000644000175000017500000000630012067167647020766 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڌ=kQ{gf7ˎD$%&X `!+ Ah %?RR " VJ ׍bV53s`PSx^^ΡRJl~#9j{צٞZJ:9# clA:yk҇'r0Q{vfc"a9y|m^7r t7evlጺ\  ߝюqn'^i\\;A90rc$sse'Y=thGVT u] ܋Nf,ׯoV-[ngqzU[/9jAU/I#Hi 8|'rA)YY"]@5~q~]8 z`K `VTF`~}7M;sw'a2|F?w)c軕xH8߷ʏq IENDB`mcu8051ide-1.4.7/icons/flag/American_Samoa.png0000644000175000017500000000641112067167647021472 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F6IDATxtKoQs 0Cʣ %P6BڅK]+wƍ'0ƅUR1 PQfWj?򍇢tR@`Չ_hd|JN5 ajv]jUNmaaʯ0;+x36 å$.P HB u~ԿT nDUeYX=d3$6#B$Oo{;e`*2ٯszQ<}JJ^h-[M^i]u=v(˛=v&Wanijt3uvg.Dp}؁A 6d98ͭoVJ?rD0.WٽbSEȜ%ܨUD)+ݢ1.L0M:y^iW__eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڤN@gnI +)4<O{DBh"!&Ȏ+"fV˯B1H5+L4{en8"VZ9}# a ,C(f驳zg?$HP*4܀Z(9[|{zr6OzlJAmA tT/c}<Bjk"Q:ڃ{KˤjԶ 1:-4QaY4oYxU)UOIENDB`mcu8051ide-1.4.7/icons/flag/Comoros.png0000644000175000017500000000612712067167647020260 0ustar milleniummilleniumPNG  IHDR n pHYs-_-_a` MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڌ+ao`DkȔrB! m8]H\HBR]ݺChKhCqAN˰egg_`wӏ,uL啻L@080+#{97iHunqDSH2H_/+qyӞks(ei @q_Ҳ/n} n@V,G&ק ]ΒpUl15K};u? ]_8_VVbm*rTNrCy]NIΞNI{v=mɡppkuHbwX8T|vpѰP%q, $3[<2;zX fgqEEhx?{1}`o(ؖo#<{IENDB`mcu8051ide-1.4.7/icons/flag/Suriname.png0000644000175000017500000000570412067167647020422 0ustar milleniummilleniumPNG  IHDR n pHYs--ѪSC MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڜѱNA8  [chOaKXc[ĄPaLH(Hwcaܑx'"UXQq<0lb!|t\0I_{eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F9IDATxďNBA; ;J&N mL &6{X_;盓CGKH"kf%C%Sq!A1Nڔ(lb :On"V@%b!XU;vι0QdTfn̾yDٕdxΗ+ek[UoZA$ ݌"gM4{r (PY)Y ]* Jwh8FRBP>^Y WV<.a c Õ#!IENDB`mcu8051ide-1.4.7/icons/flag/Oman.png0000644000175000017500000000573612067167647017536 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F IDATxڌMJAW=$ !xW;ĕ,ɕ "*3$=Is-L޺$_TW+BLuݹqwhKQ؎ϊH^>a8vqOY& Xq+4.j/P,7Cbz$Nr?>{y2G`BUiʝLs?3&[Fmu\i. EŊ f>s뤭s ⤿L5K34Zt؂k0 ljH(IENDB`mcu8051ide-1.4.7/icons/flag/Saint_Pierre.png0000644000175000017500000000652512067167647021225 0ustar milleniummilleniumPNG  IHDR n pHYs--&' MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATx|=Oarw=KۣB-!P^4F h8LMpVF'eԤJB@QlAz\ޟqu~qCJ M٥"91j.{W#symʼn \% #BD@p"n Ds<9 %leVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڤ1 @e?) h,x O`K+M" N? qhӲ,PŮ7?d&iW[&ޣy d:jRʓ%ێrwW#zeS}]Tr @%,mBIIENDB`mcu8051ide-1.4.7/icons/flag/Namibia.png0000644000175000017500000000650712067167647020201 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FtIDATx|[HawmfyhI 2":лȫ.)" !PeIԖۗ]xUXs{~hoc[݊1H+!C_ց_p3YS4G!W5L(/)2[g5YfGKh\c&Ny+EDVp~}My< 3 έtSdH_ۨM 'OL0iY0͌|!ΰ5;ޯZ0'TNq%4Ь]'<]~_O nPƛx"1@*@R<.ضuHstQ[H{߃Hd^/,&Z`x%UܰU"Ϗ*=[<>, DUSBiҦrcQg̣T4&ꌅGM;5;5j_\Q &5ƺ҅ہ)1Kg]- OQ4 A<@|"ݖk?&ZfssʒAӱ,iPShH Wxc_,݂ FZčPP? *=u.!WIENDB`mcu8051ide-1.4.7/icons/flag/Hungary.png0000644000175000017500000000551012067167647020247 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FuIDATxڤϱ 1 gl!(Rn+F'iPbGF+TPJ3ZŨU|ޑnlSf2#wGx)uCg)7eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F IDATx|;LSar.Pj4,]arqstrqrp0qIt0QB0 FLP# bH)9mL7<] [Jٰ ױVʛc1 }jkN}q϶2)&J;]]z[3E we&3wFƬ4ApқǵUs7_Zj33Ǧ;6Ha.)6&'ںO?u]՚\62R>[@]p͵0= *iLYS.B$@zϖOc/eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڔkSQ='1IeX'M:Eq/"PPAJ@ $&9:Ԡn7=,fK.s_Cդߚn=I1qZ+_q\~<(}ُ pdf ; A;20(t2\/DhT$ hMb5miRWb9ib=?5gJ][ܟ֥MIf/L]9<{`ݎXiϧ˥ձ \뫏V伛9tw4w DjB+/d\Oݲer /50;FAΧ{Xx'}OF `mP3vA0FrڊL3~Q.zj710m2Dתh.R`DA j) Ÿw[f 5WIENDB`mcu8051ide-1.4.7/icons/flag/Djibouti.png0000644000175000017500000000602012067167647020400 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F=IDATxڔR=OQ}8%DLl [+B X-v& 8B[ /@馘٥о&, Hխb?|]d %ny}^,?|sP/_#b!31uhNշ~sIy;Jj@KX_7N̊#'Q M)Ŭi5ϜęJiLg}2 a-*?q qk|v#Ia1*onl8Ƕ(ɔ"@[iOj xOJCYLSPIENDB`mcu8051ide-1.4.7/icons/flag/Czech_Republic.png0000644000175000017500000000601512067167647021514 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F:IDATxb\sמ('@ `bӯE{:u;43+DC}KY(͊L̿K򜏋MQfF5<l zx4}%30|ab醼00ǥ? ?X32>[tG?0c3##_F/LzߞV?wV.V|~fP_ٹ,yߟ0g ,09Qh{X3s,¿T=ۿk,>LIENDB`mcu8051ide-1.4.7/icons/flag/Uzbekistan.png0000644000175000017500000000565512067167647020763 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڤбJAsƛ !`&Z;7VyDVcܙٙ6b)ƿ.~j4nⲲ$ђ!?+'{i!_|` Î,m||{,uU!o.T\4Y8 `lcVLYHC]hM C:L/qLR2,uIENDB`mcu8051ide-1.4.7/icons/flag/Falkland_Islands.png0000644000175000017500000000642412067167647022030 0ustar milleniummilleniumPNG  IHDR n pHYs--&' MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FAIDATxڌ?hSa&ISRbTDQ*upqqRK EP.J*Z[/y!RpPM^\l?71kFu`ޒ) K 1oyO˶&wUؗMXϋ/ˈRJ^;T[ȮqM JE8,#1WDlCg12,.TT [ %AG 7m&C@-, rǶiϕGogr`Yb͵gzn=DЍ,驱G_X^*O?_25++O9٬noBjn;|dtz* 3yiPFugS7U- -7 kk|^̎R< @(y[@$@tvNJ=*kD=$juDdZD$j!"%J,w祟we!r 'D^XeM B 2$p@{ygg;ί:HIENDB`mcu8051ide-1.4.7/icons/flag/Panama.png0000644000175000017500000000611112067167647020025 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FvIDATxڌJAK4 PQFIl5+lT &1ݱ%I۟c2y:0ZR )}|['vjԮL8O7/8Y^3DШØnJHeOb޿yxN֗~k !aS[3f.̗|}B23LMWj8xunD&+5z}˰I@e!BtM"H*W'E$Xk[f&RuL$AYpwŴ=nR^= s{v B.A^]h'C1*:Y2lDN3~QQ&)IENDB`mcu8051ide-1.4.7/icons/flag/Myanmar.png0000644000175000017500000000575212067167647020246 0ustar milleniummilleniumPNG  IHDR n pHYs-_-_a` MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATx;N@sg&'' EjRXa@<Lb;KE Htz41ߕD7ɣX\74MBrTA`$K_6)'Ƅ@[c)Ω$=>ZN&çkFV6Z׵!u6vѳ۰FYO*<һqڟ=g_at{,6M3[TBhitaez[TݞNApL K!0TN@jHH9R-?kqeVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FwIDATx\KSq;glI'i|`JhMQ]tet}tE$2IƆڃs;2}yAʼn21@YB L`{TZ5HH7q `J**aD% RJDPId@Q@Na0@3E+OL% Ld@ecGX/F@(L0,2\yl0NV*Pa㮗;#6~V!5c B,xA YHf`ȳ4'~@) ojI)gwL ܸYi5dV x/N:;f26??(w*Gvn.Z ϻ]Z.:p!ꇙ%ܹ}ZbK ]rseawG2 QK%ؔJ %1~OQjfMfeQvynWB_N{{bas|gWSj6h/Ð_#Q\ (UǎľRcȹX|}1l$^Qtf'X*ՈIENDB`mcu8051ide-1.4.7/icons/flag/New_Zealand.png0000644000175000017500000000632312067167647021024 0ustar milleniummilleniumPNG  IHDR n pHYs--&' MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڌkQ}d&I?hHmT RX]nEppK7;]*(X$$7o>\,\HΏ=4Ջ߷_Shp`ۿr7筰 ) @n6/'.D?hWU{]CRX*>Q?]qLJ`c#+[OCs_fBLlrGN:N*6n \Mio0QdL ש`H„cc$_8zn:OD9γNB,]rڮNqvdj2XǴ6л{xapʉ6^=r+ EW<)-̯ 径/p c\A2KE? 2.Zeuʢ` aȂXR0@r$0 *"diJuM6\t HTGIYT0;o[ y -bIENDB`mcu8051ide-1.4.7/icons/flag/Estonia.png0000644000175000017500000000553412067167647020242 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڤ 0Da_:,q ؊K *Yr?uً,$˔2:ft\[&?~?%MV+.F13B RU1ƶePv J;O/CIENDB`mcu8051ide-1.4.7/icons/flag/Micronesia.png0000644000175000017500000000612412067167647020725 0ustar milleniummilleniumPNG  IHDR n pHYs--&' MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxt1OAΝϧ829"JHDtԤL?H ?hcKA BEBw{w;C"a^oyow^ !PSP5"cf"kx Kt QݴgDf&1E s Sɋj4!hcwt}?fLJJE]:hE+vDM`xM&VfT@PSq3 MV'Y;w_Dv9[s8.0cWrrz͒'n'ymw|`q!}N.x m =ʋ*h0̘2x5{G'e]fcu_7o}j̘;&sOcf? H=ܴƜ' IENDB`mcu8051ide-1.4.7/icons/flag/Grenada.png0000644000175000017500000000642712067167647020203 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FDIDATx,MoLQswd0ؐXH*4]Y,}ƊC$,ڠB:EtF;Sv<~_GʜW@2h`^C.©ahh!8eQ_v UT,Xr`5 ~N(Mǭj3Z/Z4v~ikViJI4nr]iơr07«nM1' '"K5rvwp_n8(~[ڙÙ,Nij1j韥9]i?kCL(?,acS !+h6s~xh RYΌw_hr$_:0ʪEeVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڤ @yac9Y$؃%.°ɬܯp'.$9i2[XJ0Xsoˡ?5lfuS"3*‰B ӎ5oh[o`:70B-IENDB`mcu8051ide-1.4.7/icons/flag/Democratic_Republic_of_the_Congo.png0000644000175000017500000000611712067167647025206 0ustar milleniummilleniumPNG  IHDR n pHYs--&' MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F|IDATxڌNAƿݻ. DL((J*H!T)F))"CDDEJP(!r:;wo'EgpFhջݗϸOqBĘ-~UWW(fyq}gHL*3v$.%<Ffa|P49pڋ xG 0-5Y淖;ƨP3uMjP:9gl|^=?x]q"کuwu&YsDggfV̘Op6V||Ӄ)Nǵ麞5"">hGr*  \$B`[GFSID _oѵY"IENDB`mcu8051ide-1.4.7/icons/flag/Uganda.png0000644000175000017500000000602612067167647020034 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FCIDATxڜ?KAgf7i1) Z) ~Jbao#" Q"&0wə pfeRJEX sL֒2 dYAZk H8gZ}q]Aa0,2sf [.~S9pܜM_ޛ4R2&yJήnVJNF4r z[`wvrb b 6bsyiq:=;:,ߍ)`JDp/v}4dS+ hXW;l tPӞIENDB`mcu8051ide-1.4.7/icons/flag/Swaziland.png0000644000175000017500000000631112067167647020566 0ustar milleniummilleniumPNG  IHDR n pHYs--ѪSC MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڔkSQ=潗A[4RP)P6( . IWqQA[QZTi6I^^zt(Y_vkC? Fġˍ "~joH84q+87'.>AH 1 JQ2|*y5n@Ш: YUBĵr:ˡ3y 3n96ܽv!W_? :jlBi,'`dtb ʺ}65/~$!{fk\~]DGCݝba\91,HsF^U) VYfv1mg7UJ6;9~6S*,nLrxСHt%`1fڣIT/WF_9U*T  CH+%meN[*]oׂ0"h?dk6IENDB`mcu8051ide-1.4.7/icons/flag/Russian_Federation.png0000644000175000017500000000551612067167647022424 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F{IDATxڤ1 1 ] y`'Giiϐe7X~ˊPZk e(#YZkcSJYU[,{K&w@1.L@eu D@b`M>30 ]IENDB`mcu8051ide-1.4.7/icons/flag/Saudi_Arabia.png0000644000175000017500000000621512067167647021141 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڔRjQ=u=ݓd&(BPF\Bp/'֥;AqF|&3Lޞ[U.:Bթǡ={b223ƘEp8B *@t5ɵ!M++3eJx 1jƴu1mYTwo|~tc@lQ=}`>{XcCl]ChN`Y40ǃb:ζ1,S+ӳm tM"ҥNb3oI$./Z^l ׿LD1mrNTEN[{DȲ%3Fgt,US"DPp<mZc[/ʪ4ưjo`ٺgh[r`{Aݛ&FJj*']Kw2;KʕNb3&)QZIENDB`mcu8051ide-1.4.7/icons/flag/San_Marino.png0000644000175000017500000000544012067167647020662 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FMIDATxb?Yׯ_L !dhcdd7 7ˣ7 33 Ѩ1XIENDB`mcu8051ide-1.4.7/icons/flag/Andorra.png0000644000175000017500000000613612067167647020225 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATx|n@Y&"rAR x>Wg@HH!$ 64wwv8|g4h@OO̫+a=S'Y殯uUMzc*(CQVkgmnvd1fdX]kv v9I etN92{wiu6vmXsLsW² Rn6MJ)߲YM(-p@lJI)i[}Ʃug`ZN.v{i@A ǤiYj3%qo A[OgG~E'pCPR-肤O?#$zQA$hxIENDB`mcu8051ide-1.4.7/icons/flag/Antigua_and_Barbuda.png0000644000175000017500000000632412067167647022470 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxl;hSqƿ$͍"4СH P:I Zt-"(tpppup7q**8t">'(>LWn8$>[;汣si'( CFFHp|/zrF:zjWF:ɂy6[tSUO luH z -=~]dCNN99' jaEmfsW}b ){ORHqUf1]Ϗyۓm,d|B_?H)<!x~#?ju%JgOW^8[S h0CK߯'P_Ə\)b@:RQGGN!ܛÖ~YZf;ىhNՖV*gVjT{"q^Vg.3B˫!J۷k=^SLeIENDB`mcu8051ide-1.4.7/icons/flag/Anguilla.png0000644000175000017500000000635612067167647020377 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڜ=hSQsν#I4i6~thjEJTD;H89JRp ^tAJ ZPU4&}}yu_Ct+s 4t1qFE3TrsE]ҝ/#lGDM?ԭ+GΟR 1 W{ʅ%̽Vȧ L7PJ)8']g-ۋ~4  nj>vK4LSx1b$<a77 LRQFdPVw(=1c~uk%Y=id3/eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FqHϒIENDB`mcu8051ide-1.4.7/icons/flag/Cote_dIvoire.png0000644000175000017500000000572212067167647021212 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxĐ=R0JHhp\p!@h8u:C3gkŽQ}oYQ| ѥ vefnTJΐYh}IlavVtVm*`N)Y+7m}>7хzN)7qGX$3'eaR1#M >4 s Oχ(vSЈ3NXpff0`IsiRC([DIENDB`mcu8051ide-1.4.7/icons/flag/Tunisia.png0000644000175000017500000000612312067167647020247 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڔ/lQ>L/WDW((HPh5* NAB#T :Hj &!>#C=l1&]Z054"!)㣢j.^J b sX79~ X@J־~\(P[Amb00Z6G")gmmB+A_^^r"8W<rt7Z\/SWvW 8eGR%;8.? t]!SKs|g/Z_ýο=2=A;lsjisӜ )JQ} 8$ERm#d#PEIP_6P}I_Կ-x@IENDB`mcu8051ide-1.4.7/icons/flag/Philippines.png0000644000175000017500000000607312067167647021123 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FhIDATxڌҿ/awk8Xb/Ff֡,5HB"h Bwm][1L>'y'郳W4ByȭTcv/ra `)]>lqV)u%,_='6^ދ}$[ffD)Nj&3ِK)칞Ɠ!hᡙɉaPD5Ѯ Ƞ:KX-VȄyADxPv?VTj@!P1lR#" Cg<|_ZVU}ʏ׼ Q8Vޥ5@QAx^-IENDB`mcu8051ide-1.4.7/icons/flag/Syria.png0000644000175000017500000000574412067167647017732 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڤ1N@Dd`Aý(8 *$:$" Ht!2c%"ᕣfPw9Z X% %,id_X Vjδ a",Yy4 =%Zϙ ; %Pd 6PuDX.y::;^ܼRrWo/OoǏ-Lioпb*#!y .;i9Mz}|yx"R"#(|8n0(Ս+`1hfm}:IENDB`mcu8051ide-1.4.7/icons/flag/Eritrea.png0000644000175000017500000000632212067167647020227 0ustar milleniummilleniumPNG  IHDR n pHYs--ѪSC MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڄJTa٣E1`ԁxt^Cx8:ML!NS{꤃(F;oQҐ`¿0d0Yam䋣$}w>4㝱~c4ĪR&*y׊HTn(LWmD;ɫ ,`=`BWtOi :))>y?wFYVTt.%X0Cנz :') %@#[F3E} M @h ȁR1GċܳV ' cêl:b`X!:~ ͛ҥNmoSuV*l:@v i^l>Mv!'H*fVadqk6$]laU^emqUkcQ 2Jw E$IENDB`mcu8051ide-1.4.7/icons/flag/Bahrain.png0000644000175000017500000000563012067167647020201 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڜнN0!wĕq ,]+fĆTц;J@c'LSeVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڜл @Ev$ Q*>rb1C /?*`dRLЖ2 ɜ2Dg0_9`\xv0l*|R2koIO֥ME}V\Ӆݎӧ'w[w41 uIENDB`mcu8051ide-1.4.7/icons/flag/Tonga.png0000644000175000017500000000573212067167647017710 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڤJAFϝF3рBl-;!V 6/bgca:!#X ZX%dCg\ œ+ν|h/fH yB{?&c9N eg]+['Q}:Uw/tPu2jtHvzAO:yJ ^ͅ=RZi ]E0tFe4ⰇQWI -3Hy4T%M1Zq^CLIENDB`mcu8051ide-1.4.7/icons/flag/Malawi.png0000644000175000017500000000571312067167647020051 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڜN`FRSh\tqwj>`Ҥ.@sY|9q6s7Tl=sǷ'Ԫ,u'ڃ > R5zWvlJq7biD.-amN3pX DgXlF$kf`qXx P(GːfEpxϿ&Be$ggp9.~i/_IENDB`mcu8051ide-1.4.7/icons/flag/Kazakhstan.png0000644000175000017500000000616612067167647020741 0ustar milleniummilleniumPNG  IHDR n pHYs--&' MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڌnAEou8W쀐PV"dH|Ă "x;twUtoxA 7R@`j!{i]L-*XhT<-q8wmiL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FzIDATxڤνK[ay{xs AQC;K.: WԵKQ;סC .Jmy "4D?{ΡK=O&Tݪ?^!k PљJ0^TK;ha>S7~d]X2kqArN|n2n&gjCM /a8r*''@Q}Itbn2"&2!Vi9>edGw4`ҳS}Z ԙNӟJw}`T}/Ȇ[2S5'HU)(2 Y4i 0:a AD`k/$,w3`$pճwq1#EXIENDB`mcu8051ide-1.4.7/icons/flag/Gabon.png0000644000175000017500000000555212067167647017666 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڤ 0EhN9439o,9V"IENDB`mcu8051ide-1.4.7/icons/flag/Taiwan.png0000644000175000017500000000576312067167647020067 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F IDATxĐJAE7;BP"`a(;[K:SDPC\;3s-@Hl_\zN#D"Cwvӥ PXFNuԇ9>%9Nyd¶-UY\ iғýӣƇkDz -W$4vMBロ}U9ۄ 4X']ԒX5+hbHݏy@dj7f3Z*%$HJ(MyNV\',ew~XT:t5/jRB %oQ' SƲ?IENDB`mcu8051ide-1.4.7/icons/flag/Peru.png0000644000175000017500000000570612067167647017554 0ustar milleniummilleniumPNG  IHDR n pHYs--ѪSC MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxĐN0Dgc)CDGAAY@AtN/EfvGkwtz 啺žý0Q.GXF۫奭 5a{|z*%QDA=DG4vk7q0Q*x=IENDB`mcu8051ide-1.4.7/icons/flag/Burundi.png0000644000175000017500000000653112067167647020246 0ustar milleniummilleniumPNG  IHDR n pHYs--&' MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxt;LSa@Jŀ" &QI8c111hp!Ņ& %.,`jyozsD^9eJRNjkG'J-J_ʑj륓e8f9fCYBMCU SERɡqY6"ͮaO%`A!d:hgr rfO"?uA0y: 4|@TUDV@QۑWejK\T#r(*n/9loQlgL̽&T$'̄r`r$Xː~yr`pfldD$ 1a1ei7&Xxr>{EIO~8Q;k=9$ % $80'MIYiY;k ]ߢ=$H9aDtƢ` ϻŒۛiFTxMkYZ|s~·i"""5;2 8Wg3X߮>ɗ q4 _c||t F])=wagxJ?`AϞF 8I[GO4ͿfAcIENDB`mcu8051ide-1.4.7/icons/flag/Libya.png0000644000175000017500000000552612067167647017701 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxͱ 1 Fa;gBH0۰ FI B\οG?=jfiJS.Y?kZxHZj1T:Z䩡y5*b3TU=[CiK3O[YIENDB`mcu8051ide-1.4.7/icons/flag/North_Korea.png0000644000175000017500000000604212067167647021046 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FOIDATxڜѯNA(-iހ πAӀ X 'A4TǵG{v?Lkd7BX_}YW3&RxӂޞS`cXk<8b&PSAl0G]!RG\,@JTFgp]%c!Ka P I)k݆&b&A mDJ<7PUҴ<-`^i l6s{ 備?0 k% \ut|~_P.R<`xS)<-l]M:1FAOlc >T$IENDB`mcu8051ide-1.4.7/icons/flag/Australia.png0000644000175000017500000000645012067167647020563 0ustar milleniummilleniumPNG  IHDR n pHYs--&' MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FUIDATx\KTQſ{5o$2*hZ²,)4,MDQk.hhڸj]f"~{[ 89|ꕅK[Oz)ţm\.s-eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڬ=N1ol'D,4\)X!Qieƞ؟8-0rJ4z<^WWY)Y}1q[Yuys*'ZJ(5XET ,̈%Q1{s3ffhZ`5-fưVw1r>%q(1 . MEw{{c5=B̮iZU!ڦnj89`޽~~u]>7s`dJYg,YE*S$# @i:2X@aIENDB`mcu8051ide-1.4.7/icons/flag/Nigeria.png0000644000175000017500000000576112067167647020220 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڤ=N@Y{LDp 8 '.DD@B `uvq%9susy{j TeVz{k1Ov˲>x7gd9Mj:k1`r 1E\֡dyOCZ#%7&1JDNgÒ:o!6>׍"nqAgJD.ݥa4C7",,= T3WT h(Z/:IENDB`mcu8051ide-1.4.7/icons/flag/Papua_New_Guinea.png0000644000175000017500000000634012067167647022003 0ustar milleniummilleniumPNG  IHDR n pHYs-7-7 j MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F IDATxlRMkQ=dƴVS .\JSp#ܸi~;A-/Xj) 1R4i7Hkkr=s9Wݯ' q du+xWW?SAPSxG 6r C |&nj׾c;áҌ 甔ӂvP<.9zndxsK9E" y oE[4zRdݶ02^5[o4Z ?viS~%܇M=A"8Hen8P̲ \Ng+ rN)|dXqhZב (<{bZ wG̓pmB;P4߄HZ4 (j&EVZ0ģk)"B?rEz] dzќ(2E9WV'''ȩgqGsOkgu2#t:FqRC|˯4!?2@X(yk?#VI-IENDB`mcu8051ide-1.4.7/icons/flag/Germany.png0000644000175000017500000000553512067167647020243 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڤI0 FE Æec#U@38G\o)%Xby,uA29׏Cr qVLeVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxď=N@n(DkpJ.e8P#! (^{E?()x}3ou8Q] Z>dOK{6EY8Yodw%m;s-peWN.:呓r`1iU΍!x Qd] a_D 1Xq9zCAmztsW\f]T;rVa^?(`RYP($U:IDƘ"ifmA)ͧnIENDB`mcu8051ide-1.4.7/icons/flag/Senegal.png0000644000175000017500000000605412067167647020214 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FYIDATxڤ=R0_O@ƛr 9ў pN H I(d[v@+}z]-9s-\'>%nW Dz:qk[{(JBJWA+QdQl*E) !]",rC6E _fm?NQ/]c1&? @L=lQW}3%B!2o%vK&QݬyH[V| Y1o8d.q,ށ\FG34i2Iv9V/3t.HhfruF@%Ȇa@ mYWV DK>} g5ˤIENDB`mcu8051ide-1.4.7/icons/flag/Cyprus.png0000644000175000017500000000566612067167647020133 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxb?@?PɂGYxoY8 i?`=# D̘UbXyb'b`b;+7J,yxd~:įj.[J̨zo%XnxOUBfabZ~ti;3QF__x齎*/7 'UB-IENDB`mcu8051ide-1.4.7/icons/flag/Fiji.png0000644000175000017500000000634612067167647017523 0ustar milleniummilleniumPNG  IHDR n pHYs--&' MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڔKqƟٙqMZ' QDBQ(̭KRePD:u.o].uH KPǍ!-D뺫;̼o}xNeVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FrIDATxڔnP9q8Icі:T]:L##V!QucBVJZ%J$rc;ɕO૷l Ū\!Eqs {hUDA]j63$2<ђ\ڷGxPUDip7(FjGA8Y\+HDHn=_fkSHbϓٍ\}3h|.O#92[jZ="رw= 1lq<~4:wfkaY&)"XD60r " l{l` ~DA@9M`TT 6Q͘IENDB`mcu8051ide-1.4.7/icons/flag/Vatican_City.png0000644000175000017500000000604112067167647021207 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FNIDATxڤJQxuRH" [DЦE]D=Dl" LRe:9V"<Ás(iQn bi+,GAؐ8uiD1f ѴJfDɢpĆQ2SyR*]J)8l>L,{>HVP0#d6sM،.0'Y=ծ8ḣm&ZI$ t#'%A[U/Aa z{ٺt.4ʛ eO0Xj{?_׭Zi4)UBH`]"MJ>}_k3?Џ IENDB`mcu8051ide-1.4.7/icons/flag/UAE.png0000644000175000017500000000567512067167647017260 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڜNQE̛g݀ @ia+cmTf17XH>=mNk$;SySs0 3f/4l9y1eȎw^Р PLmy[g h?qX.x@lQpK$F\Mb4b$w!^٩(* ]{&C;jm662e:.)yB|Z씘2Rff5i`#^IENDB`mcu8051ide-1.4.7/icons/flag/Thailand.png0000644000175000017500000000552712067167647020366 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڜ1@%Đx @7N-, tqya s˲B*I #?#P$ eV \o],%8=mIz?Khk>vf,Ss/lGx.UIENDB`mcu8051ide-1.4.7/icons/flag/Angola.png0000644000175000017500000000605012067167647020033 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FUIDATxڔNQ\.^11 ceccbobEk#&6cbbclDQ]vYQV &frf}ZLBE*N 0d-};A$E 0 )q"Ii{`BB;_uU' TZw`sdvչȵu;CNcݥZ5zRK[kMrAC2J+쨇hYpӯmynLcR"'JuP\ۚ)E%RcVjҍB-r~wPLc io,"D9G2f6_@? 3%.5͟H Q6IENDB`mcu8051ide-1.4.7/icons/flag/Guatemala.png0000644000175000017500000000610412067167647020532 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FqIDATxڤ=KAg.{1Fc@"P`o_b+ #DEBDL4jnovg,.Fl;3'o$nc7gy2ƢA^#+cS>F]19OsT2eu)#JEB,ܒCan!ڰ m+BԒ%Al_wOׯD3s(ՠOm-Ռw%ikU5LԂ0IQj#J:"g&,=>?-MZ->,jjKfpw@z2S+@kKԝ$f[Ehj-8̄|iD:J'S/ @)JZIENDB`mcu8051ide-1.4.7/icons/flag/Gibraltar.png0000644000175000017500000000565012067167647020546 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڤMjP?A=x]u J܈H5&&g L7 13 OS&6?tu/ɴ5p$_uM*z.=a9ҫm'^N_9$L0DzGqs&j6;&\ -XSXv%l a<ڃUL@0l ]-<SܐIENDB`mcu8051ide-1.4.7/icons/flag/Ecuador.png0000644000175000017500000000600012067167647020207 0ustar milleniummilleniumPNG  IHDR n pHYs--&' MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F-IDATxڜRJav/!IaÈQQZXZ3> X)jPw[ sw)t]fwfgoe H fPITC(&  5 Nfi1{EI5Ac m<pHL4i5,G[&eЧ S2٭ʌnݤ5N)dXO@&#Ȫ9޹<\l֯< #뽵+6ow!GypJQ󽲐7 |7 ťXÞI t՛I/by=aWIENDB`mcu8051ide-1.4.7/icons/flag/Turkey.png0000644000175000017500000000610712067167647020120 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FtIDATxڔjUQjrA $!"}+mbHZJA!J "˽zgDgjZ,^irJ ^NwM-S ]- F )`3D\מ&*rm%xݶ;ܘ}٠M"z kBܵJyQNCTJ FX}ɏs7n}*+oM23{cuk8q3wwHfWo( =RWO1;=rYͲS޾ DGʾ 9;KpUG@)CKH T_3s!)YIENDB`mcu8051ide-1.4.7/icons/flag/Moldova.png0000644000175000017500000000613612067167647020240 0ustar milleniummilleniumPNG  IHDR n pHYs--&' MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATx|Mn@Wm+2Jb ( dVa8\ pncHDȐdcǂxfޮKJ-/^)G))mg>moP1,{wRC;[0p H}"r4~Q˛Cg[*s1ۅd^Qa]:]TOC 4& VF]7Iu9t!_&lN" ]٬S KV:tSgfb/s(,M&΍>;ݷŃQ-N1`MXlTOBtw6G)jf,@\'5@Ÿ>rOBpI@^tF:H首?5?MIENDB`mcu8051ide-1.4.7/icons/flag/Dominican_Republic.png0000644000175000017500000000574612067167647022373 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڤ=N0?q(8BBb G@\&ib1CԺzO鑣p밐ڴ;ո{T `~p`Xk2 ! knʒ:Mc7/ m8yV0"]fQ+\2SgZ[œ&*Ikd9ڔ9RTgT$ j'{7܎N#MMׇw)xE?Mn\F0!S)Zl0Y 8jCIx/IENDB`mcu8051ide-1.4.7/icons/flag/Paraguay.png0000644000175000017500000000567412067167647020416 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڜ1KQgT6;J'K A];k.S..nqa(FσC2 Nu|6a`ZA l TNU]GDk-U]CY9>*;exgy9\w 4ދb$D}05shJ{uy& [͜7O鄆h%+t6_vtkx_dx] IENDB`mcu8051ide-1.4.7/icons/flag/Cameroon.png0000644000175000017500000000603112067167647020374 0ustar milleniummilleniumPNG  IHDR n pHYs--&' MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FFIDATxڤ;N[Q= ?$"`,#:"ldiR>H’es_g&);>9@UMR\MbHeUp4n qcї?BCRqۜ?O"82MIUT6aSLoqV9"Y8TTX#6+aU?Yf6e]%sNgIRaR[K o+9nWg վfV;'}Lv8Yg4!w6@DkW=M7 Q^W|QIENDB`mcu8051ide-1.4.7/icons/flag/China.png0000644000175000017500000000566712067167647017671 0ustar milleniummilleniumPNG  IHDR n pHYs--&' MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxĐ1N@.vXPTPA!HTTt(جui(cByz+f#QpvĶWAղtRRL$\X4d|iM4[n{tzu<@}o[n#ovcEL:T) kUܐgDal u(1=,iܜZRGc|LHR~v/P! rl' !g+ EIENDB`mcu8051ide-1.4.7/icons/flag/Republic_of_the_Congo.png0000644000175000017500000000623712067167647023057 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATx|=kQNv~,)qE h-dB-vV"Z@Yl&뺒~ܹw9$SxxxBtoHEQLbg%*@ew% QS`"g {EQuV-+Pe2AsXڐ (:e;'^[cx}WĠM6,@tg5B dibFư H @u&kK.TA$>G1u21_.ed%5cټ-nLKEx?-QjG! y>[l9OH~F C =,y]}1`) SUĤO~>f ?fjn\Lbqo>|P`nڣ9֩dT]VIآ3BIENDB`mcu8051ide-1.4.7/icons/flag/Mauritania.png0000644000175000017500000000617012067167647020727 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڔR=kQ=;3H@ Al  -FZ ^Q! ~Ę*,&쾙ٙwŮGT<8Gn?88c;sji\;#ڌwJq83/BV1D$(@bbx@-P]eV, X os)Il|Z1q>qpt% =XE31V›7q $!4S޺0y!;:/p"Og ڋWICPA{l&Nַ]7WߏݑX7+Nvu-l7dMi'0"4rcizR=ҍA;ߝ1@'%|yz6l%j:̷zjRύMsɠ+_:yXIENDB`mcu8051ide-1.4.7/icons/flag/Chad.png0000644000175000017500000000575712067167647017506 0ustar milleniummilleniumPNG  IHDR n pHYs--&' MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxKN0b'!!Đ%%"(fDğ2'n xʲ{PUBgno>OG*ZJ]dLr>~{3MP2#.Z|S5@MfؔLlѵN5mCߙXCm WB( AG &##CJ;n DniU8McO15K_^>3Z~;ėJؔ '5 JPj$[ۃap-TIENDB`mcu8051ide-1.4.7/icons/flag/Guinea_Bissau.png0000644000175000017500000000572612067167647021361 0ustar milleniummilleniumPNG  IHDR n pHYs--&' MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڔ=N@Fl!(.'Sp$#p*"X3vA)FHIuy\锓=nVx/F,X^)g6# ֯JCԖmqvVQ XVb|6I8LNfkGG Z=oSHoT2Rc˜=`Jzr'!%&U=f&P|zedY$"c*xP:?c\=HIENDB`mcu8051ide-1.4.7/icons/flag/Argentina.png0000644000175000017500000000565712067167647020556 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڜ-RA g6 @9܂Sq n@Q  Of'A wKW\K=c9Ltt'H[a'$I)Z.èh)"־dĖ7\{˫N )vc&iR/~v~ؚ03>wJ%ena,& ^EXLf2M$~ko?oIENDB`mcu8051ide-1.4.7/icons/flag/Sao_Tome_and_Principe.png0000644000175000017500000000617512067167647023023 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڔ1hTAE}3_W -1i,I:% V* J`gB"Vb-X,bYܟg< Qb# wy\>YxxU1Hs{ln4rb؈Ap6V3ݵAכijq_i8",/.d.! `` oWwcPKު c~Z /_[*ƈ46xzTBTEJ ̨, Z`*rZG!- :?'Klи 4!h |$Yd B`]ұwgӿ> BcLzw 6s6Ph9HIENDB`mcu8051ide-1.4.7/icons/flag/Ghana.png0000644000175000017500000000571012067167647017652 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڤ1NPDg.)BT\Q@OOICUr"QQ NRcŶ7/x4C`HQsx! Zj5"VWz` > +oGLv-oTpx n ,<^\Nitkd{(ew3}wM&RѰ (b˙DW&â/71ԎPn?> Q_1]6PCdIENDB`mcu8051ide-1.4.7/icons/flag/Central_African_Republic.png0000644000175000017500000000611612067167647023475 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F{IDATxlOnA=wvf3uM%|_J DA"mJ*:R@Z*Z2رlgݙ4%tx|?*wNZ08ʞ?_4SW]rL,T(iaڋ hv(aL,Z=Dejm5"ˈu  BfATo"A0CK|?S O!OH 2$IENDB`mcu8051ide-1.4.7/icons/flag/Poland.png0000644000175000017500000000543712067167647020057 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FLIDATxѱ @5\D ֋"#Y&ŕc4غ 3')Ϋ9:@=eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڤM 0yHPA'q-<VTjS&xǃn8EH 9kb̾'o "YŘfؘ.zCr.J\P|y*:L#W@ 1Nv^0Mfu+Hg_P2G;NT9qIENDB`mcu8051ide-1.4.7/icons/flag/Yemen.png0000644000175000017500000000547512067167647017721 0ustar milleniummilleniumPNG  IHDR n pHYs--ѪSC MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FjIDATx 0DљA%K{T$`Yg9\̳eݰsH)7FVU.αiccp ABA@6齧nG|g !wIENDB`mcu8051ide-1.4.7/icons/flag/US_Virgin_Islands.png0000644000175000017500000000635212067167647022161 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڔMHTQ{qǙq, -fi!& Z(hSh!@Evmڤ ,r*hc!2!F%(Ǯ^'vM=}Ws?B@(pڰ1Vg#Xu`W@J=t8,nxYDVpo[([EJ֪H&:Ƭ~<JidSmkբ%3\kEXLN!I 6fux3_;uuHio\ _ӦRK cϗhg{SW:pLgЕh^kMB[YݪgIP$M$c;X߮eә NQ"ٝù|m;y3LHۏjPWʯ @tTC`0;poɩclv1蚙`kA~t<eX46+ܝVnpW>Xd⧕i8v_-o0[kF40t2':\\ڥd I*Z.u>#&.ZIENDB`mcu8051ide-1.4.7/icons/flag/Liechtenstein.png0000644000175000017500000000571112067167647021433 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATx1NPcˁA\3q .BZ(HKNlgg1 +fx{XUՌ0#i-)˭gJhE=3PF}YTmTw7+UYzS"6ڟMlt@3fNI%ß[{IENDB`mcu8051ide-1.4.7/icons/flag/Gambia.png0000644000175000017500000000555112067167647020017 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڤα 0;aHPLh(` Zb AH.B`;LeVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڤ=jBQwGhg*!JقEl]X };n`N{̙C*IbkabvA0yЕv6"T7bkʴf{Ia0s~fYHu|u_(@LJ/jԛ: /GhnIENDB`mcu8051ide-1.4.7/icons/flag/Guyana.png0000644000175000017500000000642312067167647020062 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F@IDATx|KkQޛIZcS4[]'BE"t!n?qE$HJ #Iڙ$f3^tŏ޿|nܿ|ɩN/h~eyUNvNTh=D^B5)+v N_#Pы 6wٹeW6M .v T}:zIENDB`mcu8051ide-1.4.7/icons/flag/Mongolia.png0000644000175000017500000000610412067167647020377 0ustar milleniummilleniumPNG  IHDR n pHYs--ѪSC MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FqIDATxڌ͊@T*錢AZq@q+x.#0 6h;TNwxsğfIJb'/=mSdW>muSo+#Y"ڰK`IUlfC gR7)աcrW|wʘKӄdkVYcXy8|9qVepE5<80pw#8WtUU ~ie*h[p|rێ)8F۵Cg;ןzŏP^6?] ۅ_/sy´{W$%LRտ&h‚A)fSNKxK,Fcx }7XLLNFo?@8IENDB`mcu8051ide-1.4.7/icons/flag/Seychelles.png0000644000175000017500000000640112067167647020732 0ustar milleniummilleniumPNG  IHDR n pHYs--ѪSC MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F.IDATx\KTQƟsgԬLd1JHm l6ifef M Bmvm ڄfm!ȏrfu;ۢ><44Hm n %FEKC?5vPk@:\RDQa#@(.+Wv~d(a%' /;yLk#nu/t D!'Άo Z/D56`LH<7RSk[ ?[h[.GTc>xxY,CP]Kd:Єv0U  dOcãh<1R'7̄6$@lx"޻ _.3?3 {v{,eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڤ1JaߛMB0ȞBccx<PR "&d]wg$ڙo޼ax~y]U(7WjRt;Q讱8IF#RQ8]&|^Aٵ XA'3{:޾AQ5=eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڌjSAߜ{s؈"E7 Pp җpʅO ]Q\T(""473wfqi|af[12f܈h<1,YhU#&bb>g(ۇGWқ͏˽ @HXƕb'Y;ퟷoeVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxl=oAww@DM) J (BđEH㯻 ȌRy9@ xRA" ymvT56[flލq!QF7+Yns.NFA9,7ĹB5W&Tȇ˵ Mnߊo _YWZ( /"demdž'NXLjֶ>"?m3ai#j5Mqma2YUm s~5 bII'I+u;7K{? g7}U{?= ϼce3k3""AUVZuߺ{߆"LY/ɇS z+ ~7ƻ{ a"R(|vDi\"2%<@ D.IENDB`mcu8051ide-1.4.7/icons/flag/Jamaica.png0000644000175000017500000000650412067167647020163 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FqIDATxlKHTa~i6f u(r|*{AITl9nѦZd&QB%eJTY䋜4uνZhpVl ^g%8%)+5V΃UƒT0 }n9nic.UrH_t^ ?(הEkl,1"1ιnau4@X Z=xA1#biwQd%+)LtöK{&_W;e&&㖥}hkyybd!P"ْM0 @ "]ӨtI ^69NDHŬ7ϑHnab?iu 5 IC@V0!k5D@BǢ˦Bט1UU AeeQ{;u~ڛ‹};.&ɆXN4[.2eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F0IDATxl;LaϽ?;;,s-HĠ1F cA 4XXXPXXZ[Z *-`L,4 A@,F|oy9ߡOodZUh0Atfv-R QQ ζ+A-jH,BꮪNb0t.<߁ dgxW6b$kuhӮ*b dhw@?ⳓDs-?w*b-P!0מ2 Y V+{F+pv="s?^F{^pѺyaMtڳ=_K{SkWԒp5Hmls97%ݏo^Ί%K 7 _ro eMi`K3G{2O kREH[4[ߙ.FgjP71`F):>ɱhY _Yk1ΒLF5M.ݶ;_tBk۷\\;dR~ALi7$LW4.Q!,̈́ 4!eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڤ=oA߽8Cd#Q !Q"$t* h @C(((XNP'!Y=3vœŚef͇){xvT,TK޻QVsWIl j˘!HC(& "YUpk̅ J99 ^Gw!C)$"h,@k1=>^=[qw2Q)GЅaAS(K*K ;k9@vsuҏ4r\^$%Q+oEz:|SctJʅ( |+s=i|Y_I* ^ ``Yo//r;gܙ[WW3`cz?4<EIENDB`mcu8051ide-1.4.7/icons/flag/Italy.png0000644000175000017500000000572412067167647017723 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxĎ;N@DkٟDF8"d1Bk{gf?3*zVwE nsn1L|zg,Wwni8|heVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIIDATxڤ=/DQ9YV(D+:HU !!!dc {(vQ؛H̛y͌E#T%qdqt"Kbo6 HmUddb AAdVh61Y*ES1%U6 O.U[]n$`LLY;boX8IENDB`mcu8051ide-1.4.7/icons/flag/Saint_Vicent_and_the_Grenadines.png0000644000175000017500000000616312067167647025046 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڄjQ;YE"BSX[`H*+{WHc @"(jL\;3w[l!Y88őO^NnRكAR:\{ؿsx靟Χa0quc e8j1\94!f>T 4 eM;b@|ShNy!`%1=I9:`̬:s k4LO,DןG;WHD ԖlJו521zvƬ|oe}<+J'R>O%Duꮏbvџ)6/W>2vt{|kX(HcgTihߟoF[&3J3q ,@ZI??-[4mq^ƀ%y T`OǸ\IENDB`mcu8051ide-1.4.7/icons/flag/Zambia.png0000644000175000017500000000576512067167647020051 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F"IDATx=N@yƄ)rCM@6p.5\!eBBGuGn(bOS Ւ e"W~~>&Q9 0őEq}]q+lѾKP#N:;gY0,SwE~[JibB賜.>F"ߔaLz>Msuڂ,x|o'MPi>_@GVlXyVeVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F IDATxڜIkSQ@4y*Ebѝ NFtյ)\)(~QpR8@1 Hb f|彼ɅRY8?kk̗ºV8g&񇓽 ¿cBeb5xi%vqxhc @)1ލ˰%e>MeRJR)$=+l"DJHPLPJ-2{ %Z6 l7t?BX].d{yQ"Aҁn{. yCrDή;L)"OkJ_PM fҵLw {VG%a6x]ƀN94=b T(  *[P!֭sORc/Wg6JA@PJ Qk(DAk7㹩O> T\JV}fMRfL&^ 0_ئ`|aZL~TwHIENDB`mcu8051ide-1.4.7/icons/flag/Bulgaria.png0000644000175000017500000000550212067167647020361 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FoIDATxb?@f'o_31cĿXb'7s432}߾}Gb112~gd8,b?~`$m,S!' IENDB`mcu8051ide-1.4.7/icons/flag/Nauru.png0000644000175000017500000000574512067167647017736 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڔ=N@ X UZ8U:@@4T!"HVly4(%<EqPSJ-?r޶k]/eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F(IDATxڜпJPsNnrKZ0"B n.>n}B(. ](ET7MUo| 3@fJ%ZgR )MDM⧝uN"4:@q޸S/Lu!) ijW/~b91RؗXY߮!&Ll|=nP'}36_;k;Yj1 z؋tepuefwUE;3U"I"%@"\ s&Wh8߽C`p`IENDB`mcu8051ide-1.4.7/icons/flag/Iraq.png0000644000175000017500000000576512067167647017542 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F"IDATxڤ1KAg6;< E ]~˿aaag )$.X\(6&N7G]!$c -E.0@aHSoLJ A0Y!xd\C['S#?42@gW+ G~/[{kdM1qQwwT.7[뱵8h,ܟ6efÝu%afY6B/ɐu09B"[suSn04T64 uan9,ɪd1}IENDB`mcu8051ide-1.4.7/icons/flag/Cuba.png0000644000175000017500000000606112067167647017506 0ustar milleniummilleniumPNG  IHDR n pHYs--&' MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F^IDATxڌ+DQ;b#3DS2ClX lzvVRb'K56f؉y޽?x9tyмwjuХ/En(Z N:Mi.X JJs})ٷ2J [ ^sQwLi{yj/N/ě`1¾sNkTHb2NyMf}| O{eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڔQAka}m$j6Tk (b*ԓQ<؃weVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڤ=@ m  snQ:t QQ Q  coAG2BWxg*2Ӧͳj!UawqD@^cs" p?a"wi r( EIbi% eǯߟ.njKy+-7!F?X\(`xXC`V\0`FPIENDB`mcu8051ide-1.4.7/icons/flag/Laos.png0000644000175000017500000000605212067167647017532 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FWIDATxڜJqg~U1CPԡt!`{) | n" ]JqwM(W=0 0I ʶE,l΍!QxLpƔS\˝Bhu1X"O":}U!pmxzTɦP)oVϯͶ<SWu}2`@/ s3z&iɁmn_KoN8T<5h.j]X@ '0,/%Ctu|JZrH0;4$2&^)pp:g|-ULIENDB`mcu8051ide-1.4.7/icons/flag/Denmark.png0000644000175000017500000000573512067167647020224 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F IDATxڤJAFϝݸAHc)v"6`;X"/`!؈ *OvbMNuýHuy&;Ww\WLJ_f+5fp+(kMe/ is;{k}yf =2!pKN|'dEIpO}:G V"k#݅ xמ*1B=ֽSNG&Yme_yG9Q(_c ֒ol IENDB`mcu8051ide-1.4.7/icons/flag/Soloman_Islands.png0000644000175000017500000000641312067167647021722 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F8IDATxڌ;hSQs#6j5QJl5XD.VD`PqP!HGQ!RK]JJQ4h ڐ֐mr{{`}|uGcznXc Pδ |#WސboBIyž𫏩LN%ls-./G2c ө$ob(5*땊afctֱrwkf1k_ѥ< Y+h'丹}#:b0r8m;xN,p lǦpqsNGg벱~Kk2T5hpkyBǞ9xJllm/hjNlrRY;'G[ x#L`jE.*ZRQәs5t 7>-塳ӻ/T3A7l{Y 3@ey>ƭ[110`q HD39梾É3 @=1ŕx ܽxg թe ps۫=fڡ4Ĩz?Ԑ>,<   IENDB`mcu8051ide-1.4.7/icons/flag/Zimbabwe.png0000644000175000017500000000607112067167647020375 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FfIDATxڔKBaEhAKCDCEKS:5`BCC`4GJp( @ v?C<:~-zz{at7{{,U!xu{3ʵADP2Z>@mY/DWߥb|'i 8VTIV-7TԷ筐:rNWׄFIWW(-`BhCӄn߄jPst)3 eur Q\>k2qU>%ܺv sx' eG[a@*~sD%2w6WB4, !y"0`u2mIENDB`mcu8051ide-1.4.7/icons/flag/Albania.png0000644000175000017500000000606412067167647020166 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FaIDATxڔjAf $*"'fFv4Aar>U4vVс.KG)eMp?p2jQe;ow#z?~FUm odo! 7'ȶbIENDB`mcu8051ide-1.4.7/icons/flag/Somalia.png0000644000175000017500000000602712067167647020223 0ustar milleniummilleniumPNG  IHDR n pHYs--&' MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FDIDATxڤ?/QϹܷI w970-&&EH'Vcl> y BXG(C& L<<eFdEz,MXbC5"b"FʉX( Jc˳SJk2ZE6@ֹZzs673bVu8T0R b;Swc,rwEbRj`$}%l`jve2  YH!;ZkOn8]כ;5"+Ռ?2}")w<~IENDB`mcu8051ide-1.4.7/icons/flag/empty.png0000644000175000017500000000016612067167647017772 0ustar milleniummilleniumPNG  IHDR b pHYs--(IDAT(ceVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F)IDATx|OHa;cmq\tIKJ D  %C)].]tb]YBXdP36#{^?ܞ;h4*tLy!Si k5qӮ˲'ÑK\0V12]ux2cSnOY$⎍Hs8Ί8YQ|^k_?ͦ9J wWb4! @ߥ,K,1)驵mg_ox|?cZXpضa@HϼL59:E衺=<e@*dxˁ(cc4#CreVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxĎN0dD`uX+~<πTQ6N8 ѐ4 nZ'Id^?> TP mi,[][{w Sc;&fޯ7g1l(>C,E4]^Mε"}( MDr44ƴx>V B N,4>PĢd^cc+%e0nP7` {P ?](lIENDB`mcu8051ide-1.4.7/icons/flag/Tajikistan.png0000644000175000017500000000567012067167647020742 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڔMN0糝BB?,9Zπ q ΀R -Nm?v,#Էgd󴽻bA3r.}rKR:N^!&^VulۃYŗ헬Aa0vhgjZސvbO.%Wq-Js˟9 OU,TO]85<5Qs}ȴM_WXN>P?Ҙt-J6eO8iN'ߤMu X?1adIENDB`mcu8051ide-1.4.7/icons/flag/Wallis_and_Futuna.png0000644000175000017500000000624712067167647022241 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATx|=hSaI Mt*N"T " NE"8Y]EVR(B%&{8$%Cg:=r3SZGav:6*I @)2xju9p UU#1wa?G1r)ʡHcs3\\tzT1v>/0"T&!M%~_?5I?Eclэoܖf?+z֨L&rtVNI`du;ʈ-D~jo_Y61@lOdFϋjsGc}8GNIMR;%u(Jc:?sRW^Q*YUTlu_8f4Ҙ7[ʐ$ |hNACm'bhAk<&P>Lk ShCIENDB`mcu8051ide-1.4.7/icons/flag/Macao.png0000644000175000017500000000642112067167647017654 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F>IDATxTjao鞙8dh(q$d=.**>g£ xS$.$b:3ɌYzo)OQP7/Yka?!G"&@ `3,fv|DmDzx9NZ8ץLk8(%$P%gۺգ^C {8VHR6Z‘\>4bݽpmX~>X|܈x[;zK "KL D1'EV9uKrY8FFLQKı]tkf.g`|X_.勷gZ*eU7JPHQb#G4KnŁ\Q21>xѧkAH;ko+;(#`|"#D[/}Ml|W vomF:{oqwdY=7:,I?[)<,v?" ͩ+gG's^ւړo/W=.(wrƙ>o6}\7IV]%RIENDB`mcu8051ide-1.4.7/icons/flag/Tuvalu.png0000644000175000017500000000644312067167647020120 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FPIDATxtMHay睙5E`_ieEyKHǎ]KDuB yPqK*ʃV>: Ogʗ6/Z![dZì G:z\5: GRɽ8Q3Q+ٖEQ*Q@j:?ccJl݌9ɔ4n4c$we )meDXeVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڤKNa?aG5$< 6G7+q'IijL)tFMs*V/ ~?c(#bǹbm.]&w ,`"*B`ւ/uv;d5WL8QkRմbnfP"a`|/hpU7?dN˯@`=/׾.8CgY^03IENDB`mcu8051ide-1.4.7/icons/flag/Slovakia.png0000644000175000017500000000611212067167647020402 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FwIDATxڤҿ/CQs?-b"V X%610Iލ !$"aB=Em1`VYN9_$"S%:^ H. _r&WM]x~ (yP2b+d2DmG֎pwC >꯫rb?1c0,-ϻlIР)2Ii-2A3XKO|/=9seVT\ 05{'RıRkVo~j x@7ڿ<8_tOvL/%B=;::63٭mLZ'!CvZKH%#QnKZiSt tIENDB`mcu8051ide-1.4.7/icons/flag/Marshall_Islands.png0000644000175000017500000000643512067167647022061 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FJIDATx|KOQΝN- 0 VH1,45ѸD~.hJ%`}&2g<,!D]GtJ/sD$HuKO͡g"X%jOe'de}IENDB`mcu8051ide-1.4.7/icons/flag/Iran.png0000644000175000017500000000574212067167647017532 0ustar milleniummilleniumPNG  IHDR n pHYs--&' MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڜ?JCagv?bĀ6b!( <>v bߋ߷cR?vg]<he^ˑ729BZ,"SYڑ$iy652N _ӑ7 DP>?َ%\"N^_w8=[9ֽ$JOokfr$db׈X6D wCy4#@Dp|؆+hX`xS;rNiVdUeVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxl=kUAߙsOrs/IL'H+ V?a` ,֖B >MH~=zf K6+(0`^h>EU1ɉ3]\E@K}0nfk0920wΦ0*'` 0"N\URD923菟PWVlu@-FQW2yd#mnЅs ΁6A4䝕ez,%yF;v eiI+*xz4 4ށb"w`en_7z-&N{MA9_̟=_l<3yj :?d~[4U=/Υx{@9,OYme,wKiwIENDB`mcu8051ide-1.4.7/icons/flag/Tanzania.png0000644000175000017500000000635112067167647020403 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڄkQſd2I:*Mk$"DP5>ZAHˮqѥ )"EBq!i XD &mf2;FeVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATx=0 /.IrM9+WE&gf G3r ֢R4mJk50 9{! 9ȩy]L)+J  80?j1teOǃA=5- H?3laS ??x9ҭ?IENDB`mcu8051ide-1.4.7/icons/flag/Jordan.png0000644000175000017500000000607112067167647020052 0ustar milleniummilleniumPNG  IHDR n pHYs--&' MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FfIDATxڌҿ/CaWT ID" \ &E",VV+bT?&a{o}c='CK1>Rpa8r&Y+_ C]\vTZтxJzgBgmQX8kAmS?L`1A&̬VS40$"Bby={y./.VgVEwO^j5R@ь{mvnD$斷O_?d@:.=GQEHӿxdb[yN*C=$m-qJxpeVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FvIDATx10 @: bBT 31”IƜ0/~˕m#+q8r:F0U7KT0j%3xb{cD!) ,7 +IENDB`mcu8051ide-1.4.7/icons/flag/Sudan.png0000644000175000017500000000577612067167647017722 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F+IDATxڌ=OAgvVK ~F 1Ž῰0hA z;`wFv2ɛ[k4"@NR/Rpj 8{~}%glab/kA7 %6HEyM& ZanԂ]M]eyoh3R=ͿSw6hG~{fT '[#c E[]Z0 璈t LOR$bnwL',$$ QH@0 ̳;3C5'z8IENDB`mcu8051ide-1.4.7/icons/flag/Benin.png0000644000175000017500000000565712067167647017701 0ustar milleniummilleniumPNG  IHDR n pHYs--&' MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATx=JAW5+"{S9<`u0L uvo >G\ޜ brn瓹Z^PW. Jg0$"T5oksi3db#Yb;}ZY2T2BFt&X>>IRK9 Wg#՝N96PY&Q?zhIENDB`mcu8051ide-1.4.7/icons/flag/Sweden.png0000644000175000017500000000577012067167647020067 0ustar milleniummilleniumPNG  IHDR n pHYs--ѪSC MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F%IDATxڤJQg^4WFTJmZ;D-|/Anvs=glMj/¥ "H(Ӈݡ D[FvB@trw+`IJiiؘ`T8W5+B=N9 sfhqV(jՏfаnA6!& )@M[D&"T@Owfg5ذS@msy6Չl /ۣ'^g}nZ` &vDIENDB`mcu8051ide-1.4.7/icons/flag/French_Polynesia.png0000644000175000017500000000600512067167647022062 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F2IDATxڔRJQw.$Dt I %?`gc/~vTD*d &w*ޛS9<NZÿB#$"qa![P)'2X zhd%y9F=h{|qYo\ o=3%xm5.!%Izhrк^i=&ǻV8SpAIJ& _P$sխP7aB贓2W k͆dxU єq(RR8!3zDV_IENDB`mcu8051ide-1.4.7/icons/flag/Vanuatu.png0000644000175000017500000000616612067167647020265 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڌ?H[QϹgLhQAAh5Rn"]:,8 ""(Ҫ@--BkPJ%$9\㬿TN& CcBA@y&Rr!@)Y,w:zu9kb m55xoF<יQC;ZrQoFH@ٔ%{d{(v~;c]J︽?UG[06,'g[)uaޫ~3ʼn޽_8)}Rf&Rœ}햖̔jon<,+%cͳ^O5ClHI(##,qSY-;{ݻ/a!+5\)DK~xD53iSї:4a@?IENDB`mcu8051ide-1.4.7/icons/flag/Luxembourg.png0000644000175000017500000000552012067167647020764 0ustar milleniummilleniumPNG  IHDR n pHYs--J OiCCPPhotoshop ICC profilexڝSgTS=BKKoR RB&*! J!QEEȠQ, !{kּ> H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧc3- cHRMz%u0`:o_F{IDATxڤ;0Jh0I8P P ٞLiZZ29 w{~62;$ԂZcXv!( }L$;ǃn):,C5IENDB`mcu8051ide-1.4.7/icons/flag/Cambodia.png0000644000175000017500000000616112067167647020334 0ustar milleniummilleniumPNG  IHDR n pHYs--&' MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڜ=ka}wfv,V!6~160 Bl-!6"(16v A;3~]A/py.s>zz/ʲiWU]OJRZDoR>_2伏N҃+4zK*|3tOu:t dVF_6 X̍=Bu|,asSWUvE!F {m︲5!+?l=Y4*4uq޼໽.Ix۬Wۯ_1" !jwӕzg%C~4J:qJ `va#VJg(E$1̦ w μMbN:XtgZt@0g14}oIENDB`mcu8051ide-1.4.7/icons/flag/Saint_Kitts_and_Nevis.png0000644000175000017500000000641712067167647023063 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F{L*su+GԷ96c0y;^ ġڠƧBf<7rpɮNyefL@έ-9JF՝mKc ab!r5?)heoaQ/kW/.N7vj g+2T_OQ 2 AT-|_H31<yL7e끘[]{2Y*A$viyyEKKnjů6[?L#u3#<b覤0m!}Kw?a^Y5 IENDB`mcu8051ide-1.4.7/icons/flag/Guam.png0000644000175000017500000000607012067167647017525 0ustar milleniummilleniumPNG  IHDR n pHYs--&' MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FeIDATxڔNSa|3mDK4Hh`΄)<߀lEM`IBb1̸0ݜ_f2G7')#Ur6?73O w Z'7hysouLyW(, ؀`ϿA"_Cj*%Ue%͋y`~6&yANCwsu}2B2nR3_w96P{T4*8*nM]Wնvh/{WYK4u7D;pt]gJ$#(Uќ,] x&IENDB`mcu8051ide-1.4.7/icons/flag/South_Africa.png0000644000175000017500000000630312067167647021202 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATx|?hSQϹח䑔Hi*!*h  PqAGG &".BVZ&M6/M޻CqÏpn_:M4utVvO0b 2l4owM;3YmfEb@HJ"NvD^Y8 w.e9]2\*䲫ޞtZ[1i45uL턏$@tю9ɧ||-s"OX~$M=BuHtfז0ei榓ɋ3듯Jk_G6bLCх>wK-g;7yIENDB`mcu8051ide-1.4.7/icons/flag/Mozambique.png0000644000175000017500000000603612067167647020747 0ustar milleniummilleniumPNG  IHDR n pHYs--ѪSC MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FKIDATxڔҽJA{gUEbl  AQ+[; ++)YO`g! (H"X4bBdw dŹlT RlÓVp57ⴞ*dC1(;εgp( x9eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATx=N1w*l tHTpJ.!hHC."h[S0ri"uۛӧǫ(CMzQskUX-\:?Y@dCdэ(h on 4uN ~\_;gnuCUdU᷎jDtz^"K"Ǘa$1 /EHIENDB`mcu8051ide-1.4.7/icons/flag/Ukraine.png0000644000175000017500000000551412067167647020234 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FyIDATx 1 EQ!PM1  0csGrީ9EJ 59a]Et,b<޻18 Q ky*@Hɱ* Ǫ=S?j68R@IENDB`mcu8051ide-1.4.7/icons/flag/Bosnia.png0000644000175000017500000000636412067167647020055 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F!IDATxtRMHQ}?[TZ-*W -"EvREZk2 (*((HBȑȩ 1yJs'өXLO/{!p]s#?/Ľ:cm3i)+#;^s1"Ylr;eH\9lٷ t !\ҖEkz37뗳׆so5*"#|٫C{Ǫ%,brVDsiԹ)ub~j; Lx}ޚ:ũR W7&y,k=83/xQIEӕ͞cV Be,HIENDB`mcu8051ide-1.4.7/icons/flag/Qatar.png0000644000175000017500000000563612067167647017713 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڔj0ٕB(={=Q @mXZbZ IC׭:UQ5KkG2䥪}_t\$ca%1) 8x,1ys kۮn?̝ܘE ,Z#L S3!)b9}w?Ls;<=o,7i^:IENDB`mcu8051ide-1.4.7/icons/flag/Haiti.png0000644000175000017500000000553012067167647017672 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATx 0 @Q۱A 1 $'rߟ>ޮe23㸫ՍU Kd"c4k.LD2'ۼ1Qak^6 >N@PzyŠ/לȄFw܌IENDB`mcu8051ide-1.4.7/icons/flag/Timor-Leste.png0000644000175000017500000000612712067167647021003 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڌK[aƟ/BHiHtڥNC[*8i';!{'EM JDDT^o{sNŴl<9\׵EXԻaQS:`b+EM6 Cѻﳐ#lxL`&0n/ȳitޡϔivK^w_gGs~0D-/,`ngRX,v$宭ptXc4x:/K* *G /۾A-Autmm1>g N4t'1cl7֟d9IENDB`mcu8051ide-1.4.7/icons/flag/Cayman_Islands.png0000644000175000017500000000642712067167647021527 0ustar milleniummilleniumPNG  IHDR n pHYs--&' MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FDIDATxڄOHaݝnVHtK!:xcN֩C`#J"-Ia73vX;t9??yxli,"yps[t۲"/Pӥx`Ϋ7OǗz>5NL6e"mLl">0AH8 9F\ɓ{H6L]Bжfղ1ҵo3oˎ7K ߺO#!uVl]<yK~u836c!5` ">J|Wu @ףXXL_ 0x>}9LD ;+bmQ%05hnAp|&g2Q%v" I1Akv3F|֩.࿳hwE ĢwhIENDB`mcu8051ide-1.4.7/icons/flag/Azerbaijan.png0000644000175000017500000000601712067167647020703 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F`ac/`g+HJQPdCݹcfMV$93yϱEJݬ2LVĩFYDL۲I `ZgAl~"szwuHJeٰ#wfViuɞM.@(alI 2Znĝ{4BZ^G(Oo:$M'ǒ$ͭP+O& fj$2yt*%ߣPtA”2h)x<+;"Og̼IENDB`mcu8051ide-1.4.7/icons/flag/Netherlands.png0000644000175000017500000000552312067167647021105 0ustar milleniummilleniumPNG  IHDR n pHYs-_-_a` MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڜK A $lfтW,n΍ (t:#EX7OXWD:MqdX^y6a U||A>`"^ RD#`twޟ |ߚ޿8N&Q,hL*< IENDB`mcu8051ide-1.4.7/icons/flag/Indonesia.png0000644000175000017500000000547612067167647020556 0ustar milleniummilleniumPNG  IHDR n pHYs--&' MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FkIDATx10 L uiRx7T~deVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڤ=N@Yo'HC C4\#wkP@(BB4bwʟS ogŹMvI?4{mgBl;6u|7^d>Px!#mQ r8PzV_p ‰찠t3HD#؂7G^_-}.BP$ljzȖz([dŽ@7.ï"O0Ġ[ 1HlxhV}]*#ٺ2Xuۑd&*d䢫D@kqhK_IENDB`mcu8051ide-1.4.7/icons/flag/Martinique.png0000644000175000017500000000573512067167647020761 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F IDATx=N07YK٠]qJ @M ܊ ! %Ǔئجِt?G9rzrtuqaڛ[ww,׳YT<_.ʮq*0 9-Hӈъbֱ15rcs>>[D6$I0,i=f"vYF>bX*l JOoT;LAJDx[6tPMTn_:yk @S" o'CDMR%IENDB`mcu8051ide-1.4.7/icons/flag/Israel.png0000644000175000017500000000574412067167647020062 0ustar milleniummilleniumPNG  IHDR n pHYs--&' MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxb/##Yn߿Hgg/^fVfF߿`J133/L`cegg=qt/45g4̥_~{naȈnV/}u-1Ny)Wy N߾|~EY3+;:܉3K82322soav/2Fm4\Ȅt?@n c0ݎw3?IENDB`mcu8051ide-1.4.7/icons/flag/Saint_Lucia.png0000644000175000017500000000614212067167647021027 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxlOKag?v74&bP,x衭B{)^< ~"V𢅶T*&gz)$uoxx߼=s E@E1"ZT !C<pΙ^$ "{9k_\?'I*ij̈́Ij0oim֔&eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxb?wl  4>0;!Ǐ_?e`d'ɚ7eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڜ @@7R{K3E&5̼|>f )zH+(?fsĔJ5N$q-m!&weH1BՌ?_> 5Œ@T*1 ^ܰx70mIENDB`mcu8051ide-1.4.7/icons/flag/Nepal.png0000644000175000017500000000640212067167647017672 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F/IDATxڔkqƿQ)]ӽ3gbFtQk7QPwED*D`E)dhtP ~|s|8}l|icA?KeJxav#"Kdw,;,H쮹_H-[[scHHuen1VʹN6j4\+3M?*~fqŸTw";(_/\\oI~x/d nhXfSE~[`LSTR1V`[ VU`ƕr|t_/9Ѡm`[\Q4b5D p(ƏT 4G.B<@82UvԱGxuׯ䱎[.OەLIENDB`mcu8051ide-1.4.7/icons/flag/Austria.png0000644000175000017500000000550112067167647020242 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FnIDATxڤ 0w-}Cw`\)@$D`IwAw|h ]8)yQkRR_m[4 `@ +d^@3{&(V6pIENDB`mcu8051ide-1.4.7/icons/flag/Greenland.png0000644000175000017500000000605312067167647020534 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FXIDATxڜJQs6ldN}+o(J:V  _^ hTDP"jQ|BXd#Y=8L1 ?DJFBxGxE678 .K@Ȩ&8?iҨ9|_,h0D*K 3J yqW<+dK[Bm{ϋ@I,,jSӰmN^܁onԣٕ2,* #~Cב~ztmoj=ne0J`~ckt*UCtpr_^ȻR)h #fH ߗaK&;5ÔIENDB`mcu8051ide-1.4.7/icons/flag/United_States_of_America.png0000644000175000017500000000575112067167647023521 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڜJCAg$*MKa/Լ/S_`pn{v"^@rkcg7;- |^;\\JF, m;(^{4! 0ei,Q k4YaN|n+[(A‡[4m6*꺶VDI"F>F+M&Iͤ+r3Uj: a͓]It<,><xai9x1Wo TLjҬ1#AͿ3é U0IENDB`mcu8051ide-1.4.7/icons/flag/Lithuania.png0000644000175000017500000000554712067167647020562 0ustar milleniummilleniumPNG  IHDR n pHYs--&' MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڤϱ P ;iP@{0 b*a*44/!H g۩X{RHC(F.Uc ڦql緞/f[FkH,)")hj΄zk-B,F?-IENDB`mcu8051ide-1.4.7/icons/flag/Togo.png0000644000175000017500000000601012067167647017536 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F5IDATxڜнKBays5B"%Zڢ-h^$}{нp?ءR&1ZJշZs bR\)_bRL̙T!32@˫z{\]vV&TWRmS99&.Sc1 .# ~[;K:ov> |%-z0Lz]z4q\@$<ai4ր)ґEB.VԨƎ"Ar$/ O3Gyдxea|I WIENDB`mcu8051ide-1.4.7/icons/flag/Bermuda.png0000644000175000017500000000633012067167647020212 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڤKayfFwg]]\6[ "B@tR"nu% /E ]03eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxt=kQs5& ?X[H`!VP &quvqfg̝{, Ə9/eWHOA0@&H^\A$S>HeVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڔ?kQ}BR)d Q?~+;?BPRXhb! ƙg,6lOu=WE[[g]Ʃv/o;:rce! &<002xT6'tmgdePXиi23lwF$CE3Y4$ܟ8 m(hcDh&YOf$pbIz%o6]ھlbY#{uU"-mD}[5:*of37v+&މm֜.* -^Q DUU%g {\G}~R,U1xtRG,ڄ-ZE0o Q9IENDB`mcu8051ide-1.4.7/icons/flag/Belarus.png0000644000175000017500000000567112067167647020237 0ustar milleniummilleniumPNG  IHDR n pHYs--&' MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڔ1N0s^$-`qff.zXغf(b@EP(NM?`O5jzZ#%JQhd9]0͂q09FJ5|Dl;F1TFDDhAM_6Z?DdSaRL3UG`byf6I-beVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F6IDATxڔMJ#aDPPQPp͜Oz9ÀF\&ItWC:DZ/mAںg`A@`r""Sx4˰3`)Uɸh lNkYgkgtB'y bBh eu@3?aϵYТg8::h),FE<um'aopr٣qBLsmqjhՐZD8r8r~:g]F"i.Y ԰솂苑H be(DO$_²h}üTIENDB`mcu8051ide-1.4.7/icons/flag/Ethiopia.png0000644000175000017500000000602112067167647020372 0ustar milleniummilleniumPNG  IHDR n pHYs--&' MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F>IDATxڤ?Ja|JHb"o`)x/aa-,^R(h`FvFtuc|~̟7tpy^_Z簌9'f}֬٥`aȘ|^Y&Rb @qƱ15klR(O`X2ǂݙ"wu}kg{?=2"Ĵ r> CRЈ'Yg*yLzU. M_moA$,ӝ`5 FM#֯{G( qhaZȎ3V^R'E$="sdf`1B>Oc3CFY?eIENDB`mcu8051ide-1.4.7/icons/flag/United_Kingdom.png0000644000175000017500000000663412067167647021542 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATx,ILaδSZKEԊA#K" "1z@% Mb\8pM$%(i@ٱYڙv~ۋ\eiC}NA&ߑA8ڝS=&R#(io([¡r><ڗ+et&l>GŠlܗRwi@'$)6?w,y؟ FUDoeѥKpGmMx6,<]UL䝦>mv6`o^iO{{4U5(*ܯ+q_yntzN2(st-.Eeh0)5U\VkDУABJ@^p< W$F#hh h0@(0 !HHP^xcQ@a@8B)""0c7 "Ix_J!;DNUU.?WCi)mJs:S$X-JGiyK&FZMQe7=@(rW*5ݫUU/ ydUvC?tĖ׽s^V[;jRZ{|VP'^ﴦwִ < s],Njpw͙L.ۖH |C7󗁊sFsoV-(IENDB`mcu8051ide-1.4.7/icons/flag/Norfolk_Island.png0000644000175000017500000000625012067167647021540 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxlnSQؾvےX>EOKzx 6'1K8w=w@b?͢QO^<L;᤿1j4LC)gIhm$pԽET`hm(slJvcS+ ceI&&U"axX i.sR[.w{Yxxϗ?z=WHQK6Et.0UN)묳MH ffTB|L}=HTbm.]˩5lj9sѷ Ӆ0^|X? 5[afI+yxH$̋h11)(EJ+7c%.b6@Y\;& wt`bGq˶2FXDw33ǐ "k"O9jIENDB`mcu8051ide-1.4.7/icons/flag/Costa_Rica.png0000644000175000017500000000554312067167647020647 0ustar milleniummilleniumPNG  IHDR n pHYs--&' MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڜ PCIQ0R2-PgD)1ÿ?ٖٜ43 "}?~Wn7UJyrQp1?ȃ0~{9a)3Y|ԞwVKGN$T]<QaYS| 0\4IENDB`mcu8051ide-1.4.7/icons/flag/Japan.png0000644000175000017500000000571712067167647017674 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxb?Yׯ_L _w8g \:L XT2b:}`򙁉&Csbn} 1022@ிb̄an0lc?-AfԐ()/]xe>00ٻ0b,3gw!, 93|gaa 4e?dĚH]oՒ7239{02ppb&KaGIENDB`mcu8051ide-1.4.7/icons/flag/Kenya.png0000644000175000017500000000622112067167647017701 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxdOAǿofvvYZ6i^jG+^=zE $6ZVҲݙAv;>yЭC1@H7D# $ )// iiSqdffys67"=bet+WѭwZ{&Ta{jyYzv+E8@Toܨ uVn4l_\x&Mo8MxP֛_wN~VPm4R4SS" }>aIdzvZ^~xeD)//uYZ=|0K.ʿRe &Ԫ1};t6#'N1kMTdHvaMIENDB`mcu8051ide-1.4.7/icons/flag/Morocco.png0000644000175000017500000000570712067167647020243 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڤKJAP.D{OhƞGwۼDBjYGxx IENDB`mcu8051ide-1.4.7/icons/flag/Portugal.png0000644000175000017500000000612312067167647020430 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڄJAgvn@?FX>>/bg+ ÙXDEcԯ~}3w[Çĥ(ݩrPJj!U ^䟃@X$2Z$wg%x*r RI&ͻ=3dVfv4yE&`Qm†{ƒΪ2*_xhf"H,FŮÖV_ c3gJ"̀nW5 HLF؜{YEg.R#1+& n:ͬy5 =(6^ yzz5Y{:]poUHL?Í&ZGگO lE .86IENDB`mcu8051ide-1.4.7/icons/flag/Sri_Lanka.png0000644000175000017500000000633212067167647020500 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxTNSQFϹ- Ġ8PjtĹ8Lc@j"ic[JLpe=,:"zy!|(xJ}nOPd4)) A+WCˀ:_Je=Gb -.ၦM VeNY<8"()<9oF_nIENDB`mcu8051ide-1.4.7/icons/flag/Aruba.png0000644000175000017500000000564512067167647017675 0ustar milleniummilleniumPNG  IHDR n pHYs--&' MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڜ1JA᪞^ \c#L1SaeveeVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATx|KTq~= u`ŅR !RSt wN ح"^:E?((0VwUmwxhm0 3("ol~\\6ʇHщ>[P x%-N;}9\sĉ&Cr2ם[.ݯC uSS:scB׮nU?I I$1rΕXXD"+im%M^3=x~e! uQIE+[K*x>du3|JP8*:Gڏh=ڨ`rdjt=sVE#j2GړBz< /'*@_n}~x_k?w4~X@|3*렰t:m IENDB`mcu8051ide-1.4.7/icons/flag/Brunei.png0000644000175000017500000000631112067167647020056 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڄkRqƟ{qZsIei6D!RPXAW__MP]tgu .Znmk4Dl̰@ǣ]k>}H6iy@ rǻ,~@H'AtDeee^M[;IV:HۡA9gYXL N}o~f&" ׶*|~k MQp^Bwh `毦 ! ]Ӊdn2q4ogLOˈc8g1K%mғ 6 4Aܽ\zb|a=ًuXwjTPXjY("A؛z}LiDv> +zne  ST6rZQk!h/Xa,७UͶ~_0)H&?5.>0N `2"":ZZI(IENDB`mcu8051ide-1.4.7/icons/flag/Croatia.png0000644000175000017500000000605112067167647020215 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FVIDATx|;KAϝu1و!``%(KVKm,-E*AD7}͵H;z{7ܡpo>Y1 ւMQ "FӳH+ħU!?xD}hR¶8NvJR :ۜ.kRY7E$UƑ꟱:r} RL*  @;`;(ʶ\ $aj.[]c̵ՍS}m<%Q 0 ٓڿ,_eHLL%0EĖRa (2c?in#yOSIENDB`mcu8051ide-1.4.7/icons/flag/India.png0000644000175000017500000000570512067167647017664 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڤRAN@ zhFp WxB Q&!& ͡G{c͘{Z*-3J-X2|ϲo2(2BX a<$ AG⯦VϯG `'7ׅS0Q=mPmpE&R)vtk{!όs> Ƶ2׹"ԯVIFwʺ"rnDb皈Y*"eSυFfGG} dh;HIENDB`mcu8051ide-1.4.7/icons/flag/Christmas_Island.png0000644000175000017500000000641612067167647022067 0ustar milleniummilleniumPNG  IHDR n pHYs--&' MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F;IDATxtҽOQ{BK%|h$DQ7:7cb꟠..j`cBE[}Or+NuVÀ&tI )!EQ9HXsLr,$ fL7Xn8Q0mF( X fd.hT/h0=Z]"KClD(҂!)B rv$oyic|9<~SJ|tٮ\lEvll04e0 UOߚ߾jv;V=/i-">qjdVcEwƳuUϾpCM5@}_߹5JޮvdTq7a=1CVdQeGաBj4}*%H_ZHFO_^Km SbA`}vD2 "99ZNiS\Lq$;e*{M)!%ݽ}jDB%yңu$^Z9rH RJΒSBsvuLLif ? - 0 eBLtM3$DNQ<IENDB`mcu8051ide-1.4.7/icons/flag/Belize.png0000644000175000017500000000625312067167647020051 0ustar milleniummilleniumPNG  IHDR n pHYs--&' MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڔMOagy V *5$01%޼oɓ"'=5,ܭ]}yfW.T㴹m~ۧfkG1Z[qbQxq;=2]{Uyj4v\7ŦYJr|mox7i9Z}4;3̖v&,8iM-:|8p2^)'˻ b? r;HevQpnHV)BoӔA7FP ` $hb8AKW^IENDB`mcu8051ide-1.4.7/icons/flag/Uruguay.png0000644000175000017500000000575412067167647020305 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڜNQFwvWP#0%|؛`bih  1XP=!"$TsE$?fOnwwOt_(p8|ڌ@w֬:ZP",YfYD慄'fvS$mu^ty;<@Sc "R4f~h(\: 1|3|ꊀPJ̕ϯ?@aa\%Z?R<ϨM=+y7IENDB`mcu8051ide-1.4.7/icons/flag/Dominica.png0000644000175000017500000000623312067167647020360 0ustar milleniummilleniumPNG  IHDR n pHYs--&' MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxl?hAߛn7kr&Q 6@[ؤHi("Qc 9cz[&INӭ{Bv=?ބj& Xi $%(*0Qݨ?Qgf6E4% [39ѵm%˗?y͡,/E?]bQ#2 Ek>o0Uv5͜U:>y\0ݱp_ oxpj}󬻼Z`N|>2'7?wif dY?)|lR+gԅWAyoN\3,fgfG[ _n;u:9qXsWReaDʒ=bٛEbH 2`ۡM # Q]*ԞIiR:GYZ=cIENDB`mcu8051ide-1.4.7/icons/flag/Macedonia.png0000644000175000017500000000635712067167647020524 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATx$KoLa眙v:E5iqٹ$D؈&M .^H ФPV](b#k%DktϜ3s+(?1ls F*" fW3&Svy26n̬`͌/ (TZiLM|@M:uw42QmŒRN%%6jsYWɲg9XA;NYVǶPHJ_k+|xG=x3 i1{{rFx\zDU^(_-ՈCìn,Dj^أF>Q)x9f3xB7;vldŐ4,D?1))l+ 6dzӞ->GF]nhEeM)9AS HS<3^O̮5w 0hE N;z;Ӷ.T6U mN? F['q2UN:JP1Uf: C>ʖsI** *)Ewvj u)T &ئUIENDB`mcu8051ide-1.4.7/icons/flag/Ireland.png0000644000175000017500000000574512067167647020222 0ustar milleniummilleniumPNG  IHDR n pHYs--&' MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڤ1N@Ege$'BP tT܀ q:%BB@$ޝw۬qDi1iT ~+mRpq0;4?o$t,NLvO0E" !t0;rcXK6)®D"rXik&1 5/A-xDY;;f 3iUBо ojVLcV\V&DpoƘ>-Op_~ELdH_lx2P oGG ;h'4*=Dٓ4IENDB`mcu8051ide-1.4.7/icons/flag/Iceland.png0000644000175000017500000000605212067167647020173 0ustar milleniummilleniumPNG  IHDR n pHYs--&' MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FWIDATxڔλJA33 $M@tB;SX )l+-lRh(XXb!*"$ݝݱXB͊;>,wu/RG+KSc;;G=QJ`J C9cҁ/i[2BcИx(ը%Ji(DZ)ut0@|e!5'"ODq1k ߯ժ3w Bֆ5kՂWP>gO(bdM\ %aEw$`-[ondUxk{w[g/"'w B~Rm==wwOfx`Q `K'p[;_]SsiIENDB`mcu8051ide-1.4.7/icons/flag/Bangladesh.png0000644000175000017500000000614512067167647020667 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxljAϩCfF: A\$ []!>/֍nDqF/$?uu1խs:{OL"u X<@l;=hsH 5  <l콇jby1?_&[=V | shkPUeon=p_C}UUX.-qN*\`[ iuwu_B7Q8[Do`]a|>}["5AHcq#0SU 鉳$& Q0ɻR,`#N3$`:qл]e>cEt|}?rm1ܽ=-`7@NTCd~yo֧-֞IENDB`mcu8051ide-1.4.7/icons/flag/Algeria.png0000644000175000017500000000610312067167647020175 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FpIDATx|JAlvsK FQ4s+^D")@#`LL2;3VFs9|󟛲wp[BZIS5FJzN3eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F%IDATxڌkSao>F6UQAСvpAETpqtQ]Ă VhIژ67~CACx |e0ur`\)#٭upذ=(n|%|o(,g =~}ea_\iue=KvuE |ODVi;!߬笈~Xa5L4%2M L*mp#! "kBv(WN^sh_uo0̑c%ڃׁ|̏nˆe׺֮'vN~!yBU܆9Yqx@}\tlb,y^8:eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F]IDATx|MKTQ=޹sgˏpMfP!Q(-Z&D$ZaP m%(MԈi4)a>Ιs=o==ljuran9F^S!J*V3T*C}ױ Zls ?֘mh&D2^jF&l|O1{,  HH5qscveʼnۤ<'Z݈*5ngG3ѶյlඝHph rŘͣ]Tp\:9nH!}1f'TW7tN 7WDySm?ޯ>LN,XXnq\u+*/Y)WJ!J!Rtb<$rZ )d0 k_??1h֥\: G$"M' 2B]DdDNģ>}^,@Ad*@:y0ZǚQOk hT7],4;<iG7Zzq3M, ZhY 6dqNOteVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڤP]K@3`('Y|~(^$w>!m}ug$ \ *z3,l0Dt$VU秇rk"QwMs`*f!$UYwq]7"Sm.T&/뱧e/jqRLӛmcv4~Pf}p[bؠ?/>Y9lHUTJRِ:H;"_lkIENDB`mcu8051ide-1.4.7/icons/flag/Spain.png0000644000175000017500000000553212067167647017710 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڜα @D?EXH }P%P/9 g^jӌe&qt{ JJ?!}u˘nrݲ,AmtS-F+VLbñV#Q:m6΃gӎ@09IENDB`mcu8051ide-1.4.7/icons/flag/Liberia.png0000644000175000017500000000567612067167647020216 0ustar milleniummilleniumPNG  IHDR n pHYs--&' MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxb ~``d ","(%Cuo{v"#ß,~u01U{ML?~byݝOn޸&*~aˆA=;>ƿD9gaeFF~C~dI|N_ hgq8ѵ9}|_3rUC X\s IENDB`mcu8051ide-1.4.7/icons/flag/Faroe_Islands.png0000644000175000017500000000577512067167647021360 0ustar milleniummilleniumPNG  IHDR n pHYs--&' MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F*IDATxڤQJA|oo<E B+KA?i-mMo#؉ m*DPHF.> %10of$"Klmͯ4si)%Q^N%eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڤQJAD{zI ^7x>3 d{Ə`v"38&{/kQ1 B7l&K E܉j Fc [RN'ŰALbK5R {3k` &ȡ9WK֏V6bZ7cz}ؽ9rҪ6|\HWw%3XT(dj]4|99 L{-Udr IENDB`mcu8051ide-1.4.7/icons/flag/Kuwait.png0000644000175000017500000000574312067167647020106 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڔMJA_tdq.r΅Ѕz &H&L淫3lm&:˜뙥x4' M-\[nZBxXHHJMDDy֤W%HaeVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATx1N@5bD(((!G3pBCHrwv-%l| ^ UMɘAD2|I[#"n;؛u@Tv)#дb~{u}y{zUNB;ii<, ok銠8jL*zT '$nbLguŘ4Μcr:uMp3kSbLEbn.o mIENDB`mcu8051ide-1.4.7/icons/flag/Georgia.png0000644000175000017500000000641112067167647020210 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F6IDATx\MHTQ}ΛQə@)(hѦuZP l!ѢUlX %$#rˬd}{NB9=\.x3ag&w}>>5W( R-b@U-|}ӟ @H)3iiJZ-(.[h \) eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F1IDATxڜ1KPyyy/Im[(:ХtP:(o(8W t8u jZ;=*@;s9uiӱ(Vq('iA!$4Sՙ dWgE7#,ɉ(e*XI)tLZ0@.7cI2c|ܮ;ӵnmq:n1`Z^Z((e֚_#Y4%9h=Qf #'Rrm96u᷻/٬HW+}7ViX^ SeVIENDB`mcu8051ide-1.4.7/icons/flag/Egypt.png0000644000175000017500000000561012067167647017723 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڤ1@Dg]H&z;=WXkOa,@ 2&,&~gd>ÞB(A][m;,Ъ&%WI3kVoId9UW cljZJGHwL7Q*p,C:`)ך3ـ3P;%90%9 I? A^=pUJIENDB`mcu8051ide-1.4.7/icons/flag/Malaysia.png0000644000175000017500000000610012067167647020366 0ustar milleniummilleniumPNG  IHDR n pHYs--&' MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FmIDATxڜJAϝݍcL(W"AAJ,l| ; B|;+ATFјn6s-l$Mp8Kkd/oVdH DvJ6 CRTvy8Ntl vGO^&U[gɑ~.gGg7k^"niߵKׯoAxiT+KV2ɯg [t%ls7 [Ui4a9de)as uI(249LDA@m{Q?s9Fm!Rߗ*K_Tljٍc jVQt߲LW‘|lIENDB`mcu8051ide-1.4.7/icons/flag/Netherlands_Antilles.png0000644000175000017500000000605712067167647022743 0ustar milleniummilleniumPNG  IHDR n pHYs--&' MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F\IDATxڤR=na}߲k0klYPh& ('N\  Kvb{y&Rƛ̼7$v%3 @蟑(!F4N=B&muƓ`3v-l-ړ^AdRL|)CՍvI5! bkH,Q^׃~:I'do!~N3,Ph0<v8nVRIzhD?_quZ>Vt'Vf$Ut Te=br{g % 9 ݧh@$g(bl3?p?򉧣gxIENDB`mcu8051ide-1.4.7/icons/flag/Switzerland.png0000644000175000017500000000611312067167647021140 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FxIDATxڌnQEϼyYĶBZj~ @2R*Ti,!Ѥڻ&E H3s5sYǻt}X;]TwO&]뉸qfVƬOT3o!P{S0gwT%N{C,UEZR\ח;Qexke #R"%[NeuS*+={!MN㷬VϽ}b"f2MN)<4/@JtOۤHl d-p9E=N {g-@!m{؏)&8!_G# F֔P.5wHReʣcMI>dSeq IENDB`mcu8051ide-1.4.7/icons/flag/South_Korea.png0000644000175000017500000000627312067167647021064 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxlRk`~40nD0pC5]ۋ^&x(dym"WAŮui* 2tk/y=>}%BP1y&qZw}t,6ܵw0v' \P4mC>:6lfFammψ4(.&^eiP.&vR]Bcڴ(FlY#˜5+ldʏWk 69^?߰ǏH8€ܟ='8{Յ9i`?oQԫBqv Bn27o"|v]9yEuIv.k6(NHͿ666G^|g\.KD)(JlVeJ)"/{GDDJi:VUR~T*eyVQAClq<.e>AIENDB`mcu8051ide-1.4.7/icons/flag/Pitcairn_Islands.png0000644000175000017500000000641412067167647022064 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F9IDATxڌR;haݻ+rw5HRY`E,m-c#Z !N.!]nvoRN5 30C ^0Yxx"߿U9N$gVde@]8ktֽ>=>^CbvܲUV# ӄ"O =nZ* i 3n TO11[-ʢ?>P`dZ2tt|*m;lJnTRJS, c|9t;PzSG6W+o9u4*X| _ӓޭc8KǎD.]en6Quj08ɑF$e/1Iѵ?#+ԥTBCyquQ AH!`'4x3Fkr{GtFs%hwDℽ)1qom9EҩrIJ@,0РbDv>pfG<cvJj{(  }0IENDB`mcu8051ide-1.4.7/icons/flag/Hong_Kong.png0000644000175000017500000000614312067167647020506 0ustar milleniummilleniumPNG  IHDR n pHYs--&' MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڔjTQ\2C1*)b"a4 X36و!6A4c maprq,ܬn%?۳)FĹ2ݖ%1@V6V m0D^@@u(]ͻ]?E3l/L{ʂ|8cK`}L mYXLoҳ']*EmkR̨+Yʪ}_+ >MJmgG6NN?yZN[wea6zуzQaP)1H]grG\a @d$wr']QWrڴ "GFl E9,we +5c3bZ8GQ#nm)]IENDB`mcu8051ide-1.4.7/icons/flag/Cape_Verde.png0000644000175000017500000000617312067167647020635 0ustar milleniummilleniumPNG  IHDR n pHYs--&' MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڔjSQ>$7ͽi~UAZ;; ܡDP'DHPTK7߳ B ܳ=X{h^j:& n߯06Fi6_e1 KY9r1m.^9f"4ynfIaU\έQ;[d%8.L+1lk߇v:V="= v0\}q5bAOhOo ni4!$<=腶J@EOJppnX죳'| vpؖ_{ &ÑV"3&IE}wS[W|X{v;"(77~l^?{qC-NUIENDB`mcu8051ide-1.4.7/icons/flag/Singapore.png0000644000175000017500000000566312067167647020572 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxAJA00qr Bp+ !D$잉Fpet快`AT.2˘\ϱ,exf}cX%v{8q0o#݅ߝպַ bZ4pG,N'xX8`*1[UeqAKPĀGGUo?4[cIENDB`mcu8051ide-1.4.7/icons/flag/Mali.png0000644000175000017500000000575012067167647017522 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxAN0?Ӫ܀'܃pv# j&;3"qĒ#<핈m'B8Ղ^XPU۸Ø.V.*pe,&L9ЇַS23lEӜ:wė8Iy #y0h^숍22_1Cj7U0P͗}u{wưf:f;{9. P3z*dT b8Q@N~d! P)!gIENDB`mcu8051ide-1.4.7/icons/flag/Botswana.png0000644000175000017500000000552712067167647020420 0ustar milleniummilleniumPNG  IHDR n pHYs-- MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڤϱ @DѝBN` 樀 1|`? @*{*l]EZpv,8 .b p:FkÜ;}؆Zj S6 H.e5;IENDB`mcu8051ide-1.4.7/icons/flag/Maldives.png0000644000175000017500000000615112067167647020400 0ustar milleniummilleniumPNG  IHDR n pHYs--ʱ[ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FIDATxڔnA ?-;ݑ &iS <-O "APC#m.X'[Gqonm 6.F#DJVT)vNCEa:UQ^VY4ЕO+TWNnpƽ*I(-p wI K%IENDB`mcu8051ide-1.4.7/icons/mcu/0000755000175000017500000000000012067167647015776 5ustar milleniummilleniummcu8051ide-1.4.7/icons/mcu/80C32.png0000644000175000017500000000740112067167647017205 0ustar milleniummilleniumPNG  IHDR^sRGBPLTE3f3333f333ff3fffff3f3f̙3f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙333333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffffff3fffffff3fff̙ffff3fffff3f̙3333f33̙3ff3ffff̙f3f̙3f̙̙3f̙3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3fFFFWWW999(((iiiqqqRRR>>>777%%%hhhZtRNS@fbKGDH pHYs  tIME 3&3 mIDATxz8 u>%ٖư;i76~$ 7ȓ k~pM__l$k~!@ 獎9׿͐e2gj3@gl*lb/t xKTLoH'6G; FzGKtNP~a^g x?Qae1fuʬ瀒UёN~!PHM5d6oBi 2!zUeoq/u#ː71T(})2=#/ccs(LұDmV:כH`;zIk?LؿC2CН'GF!{띎e!FpCDY7-u [G'pKIőeŁ$PqDOTbLDrD DQ'y 1 +TtsvtD;V g+DEy3s"QC㓁{C3/O ٯKU@,CYmϚN@lC Į\&. NV8nTBF!gL50W8p 1@$<"f@@d">]@\tXr[BI !θ&A0 z.1}3#7h>D7@ 1:@D[@Tq~ D !StHeD @$e{9bּ+;V@L;xT?asq%z+4r iKhd bZ GdU+ٳBE5bRw6MVg.٨bʀYM"0bli~PH+x Oо KXw(\x#@ Dߚ D@$g0LgjDUz+@xE07 %^Bl""{)DO+*%@2zD' j1g1UMqM eΣPT3+Ⱥ5D_iZQMr q 9D?jBe}K&<{;)Dd@- .1CКO!>9X VO)@DT)D-Hy!)4Zo:^a=9GeN>,2슐iEya @LՐGoM`"؎T^Ch濾$a4!ősĺex Oڪ* QL@A!ZWgs,,C5y{>uѐu@:D+ė^GC"rXk6ZuX~!j!S폕&m 8jhhy}"\!!]5DŊ鴻7[H rȔB$PA^Qa~;|jeШ M]yE}G_*!(/Ovmɑ(Zh΀(d^+Dn:]/3#@D;ke#nadtV0qC5Qp:-vaMEqEܐ+ yTxUVym*S5xPFeŐ) |([b{<} bAj3pSہhq-FbTtĜCb0dAe"j1_u( x!(D&*fHobgDRD0UVIShy!>'kHyE7yBoH!. ~tb Qz"@9GTXJxO嗞%)K̀h{(D*x!rv V2ؐ tj&eMQIZwg>L!"H84)کySnġ9r2uNhHW b3Q)"q{ ġv hܰ8L(d*Y!Zql-f݀H2{T)ܔp8me" b !دZdDqi )@,8|CQ2e(? 1b{o B҆Lq7dZvR4#dp-Q*Nz:d 1wq ʨ\$p2-@W/LO9C4J(Z չ^TTC)b1IB P jSNBr" bQ*٘Z R4Q!R"B ##e^+Dbx' \e y@D G rsXcTV 3IQ%[ 6%$= j"=X8_sHq.Y!4m;ѸZC 6d[eoк9 ( " 2ŌVnL8p"zUl @!S_J i~G~bxM̆&r;Ɛ^!yaL2vL8cZD&dxCl5rh<>8wQ*)LDQ*M,^ʷ_y"st"7zXC^О9!v㮃B~.@CL'rѐ^-7Vʬ'@!R2=0bsxi2qс8y>>^^^tRNS@fbKGDH pHYs  tIME 00.IDATx] v: ~؏E>?dB+=(–~Zonecܒ~!nt1o(6G`p%>GVFD~V#ՈC_wFddDNͰLOLk:6 |D^aD,‚{w%H`;DUZS ν<₀6!ƴF afqs=§;2}{uLhجfR!8G&gr a7SFWTEv0MpawQPkzʜP4_T_XI%. PT$gdρU0cg C{EB3B4 c32h$2; atX>4_cp}?HnQllEu+[o9 `4ueTvHq{ * 8lȣ&!%]j7tD.v06׭ʙæwGĀ ShLsܔ8Gbw+IB(bJB^dpk]| !c5D%:]"bIZ2ǓG|DrBnS8*,(n?9ƻN""mFDE|:ǎՋTѪ~Ä@WVX\ߖBՒ_ %_|ȷ!DETiFFuz,! X _Ԟ8+ .%k͚GA0ST!ϐ=Q#$./I5.vOɹ v;OE=;_s<;2YI~(#9z㉩k4C52I?!]ˠ=<Γ!{ԣ1Z~9*Sҩn+?8;o欐M5ncB(VoSgU^Z8!O%ZO{6;;+)K7rDIbrEJxU$xcAwEsJ}SWuYw;!-![ X| PNڑM1sZvw O `(7+'h(EMH`+p YnCV&+%3$Z#b>s-"tAF&cS[9M3?DW*1\xĖpaQčw!dmj zg_(_K ^fL ѱ6ʿ hQsr^,6Y ]@t!ZݡE#o@VP݇ b^i.Z1CZ]z@ȸfi)~^+[s7~4axĭ~1@\'qQv 5yNg68+ND 4[T`7#L+2d-2"|s=a`ʭhY@%7 3Qݡs@2*x؂5P\c%CU8j¦,ռ G;VJNlU8f?b!]ĉm"Kǡk<W t!DHX󈚔?{ΎD:y~%hULs(4NjiB<ufg8"Ꜭd!^(dڀ*Qל8#V*!o+͛IC_^vNc4~)swW6>9^CIdq#9n?aZ4.[ߟՄmj6;ju+[bMYi/uף724 oMrQob;mGug)*,u?6*m/N~dיjRqVuҘ2;yG:^-g:)㠡#tq~$ u 9kJEJު+ZFw-.);9U@ 4ɛ{?E،H\GLw-YsЈ;OK 4vv;acɲuGQ]P.CRc9>)DGߨ-!K0Gh~ %{-\|-ZFKmW5Rpq,$o֗c%;.1{In-]?r¡-[׶cY@~MqJIENDB`mcu8051ide-1.4.7/icons/mcu/AT89S51.png0000644000175000017500000001252212067167647017464 0ustar milleniummilleniumPNG  IHDR^PLTE3f3333f333ff3fffff3f3f̙3f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙333333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffffff3fffffff3fff̙ffff3fffff3f̙3333f33̙3ff3ffff̙f3f̙3f̙̙3f̙3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3fez|tRNSəj pHYs+IDATx] v* }~؏y0NR1igFLG%lJg!?M>ee֐P썴k ѡSC|nZ(?T~QY QrN>颸Xs># >'{#""y\7$,6~! vEA\~` "GxÑ2G[%פil*^"ڞV43Ҁ,"Tr!oR;ސ4-?V"M~!j f#"#'Z#jxPVSeqyֶE~\ѣ% Q{y]/(-ezVNcHŬA9c@ZthHkZ9 %{Je?}srGA%p<0)9C5$;WWc<:MK*;(s &W/_ mKdFnKx" T/,bhg_i&} ]c/~] 8&B u 00uzf~(6C2Rp C4_%6:$s~]ԈGނ>v:FGBO r]j`!y_.E$P$VkP eCyrwҡ9U/ %L4lCRȡr z"S_hj+J<)CУpOi܋R ƖՓ'&hGFxH&'lV U3>$ ),$5 7AFgI 'd{ ';ۊoV>@wb 7Ɠ^Rfсu2#nzaAw=jl=jʖcCjnRCRE V0jj /6GsZ,ߩSUsCP @rtiOiZJSh5oFGq{_ ㉿04AggR*GKsD2Cq{V|a_=2GʏijrF"NsY¯#A#V% bf5C P'tĨb(/xd(p ;9yd?/:iPxNlr  Y ; "j!ڦyȮP_["GXekHtvsZA[^͞'oZ@YTqׁ4S߾ _ kRfVɥkUMD|)Hs$8#{ #K'"egWp ׃ CjD t K ~yˊvMk Vc#W^ц2#4DD,CțLfDhaoQD1=!a ӖQ[?KHDz&ZƐ(@3@GcO]eǟo=xgR$*\C]R7s,H+(I#5\;%_;@D'U*zZSCt@.a&.цPZ1_p-3 A(scB  ob~!LKIeMdՂ-[xm^!>Ȭ(Lh_b q%]_YFP`[7߮[Hj!iA Qulpt;--LljAլEcQ |A`B4jue+sbiC]}~ 5vha;C0yL/rψ3l_x3s0_3RC]0*vN5d~% 1;O W靝nw~ٽ3,gO/w"t8eސg8 1+ ¢D9I7Ƞ&Y@^B xGܯ"J}pP9}uA<Wwv6IG@gG|wӲ[}B7%}a]8ro+tG)r;u4SAޯNq~i g>` є2 sSش,/.&C5f\mT@<:T(#\WGFu*FsWng10,`DSV . (Px!z%~i![{#Hv~~UM,wUl&RȖdA{"۔V[̀fj܎p_]NcQצkC[yt> WV qaO5AP?4D~A~ey:ۮVP@caƊALÄ!^;~B_F 1!\zCpU~JC# Av(q2GJސZ 4gد ':__lh>a3#dͻd{Q+Y.E?_K{dپV8:ѣc|[4~VI|'[ _V@<*#6~=]LDn )k#dq 8 P{#sB]0QVEl[C~BXWՐu1ZZ@D:}t}D;Eo#g}ZCvCfh3C CPݍ o>좌j\A|-+ ۤ1:ZJ[} Lfgfq}[2"B1@﹍ .3@2ag(= cvC[[-o 8 /:#e lGD>#:k_Ťu5㽆XboUa&H!CdgQP>=-M{>`Q.v!&A|M+|1! W/ؼHjKT KRM}ޯnwǃ\0 9}D'f`92cˇ#@w;|PU0 'qyNqC)@_ףEQbKǎƒ`ܛwIc;ڃD!]s;=ܟ4hAi 0s{#EmC56Um-ܻ~{"3OQJHckGln>u%s %wzDS 0}d84P&_?Aee;%NʘU,(Sg#Idm3ڌ#k*4re>2ǐQJZܟY}РL^.hV^e!U%6Žy$c z!T^WFQ?m.z>;(%˳PSĤkg989sksִJDO_tJ2BkfZ1Q[}Qj/n-n;ƣrN'˩_x2i^u}nȻ1jzIENDB`mcu8051ide-1.4.7/icons/mcu/AT89LS51.png0000644000175000017500000001000012067167647017565 0ustar milleniummilleniumPNG  IHDR^sRGBPLTE3f3333f333ff3fffff3f3f̙3f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙333333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffffff3fffffff3fff̙ffff3fffff3f̙3333f33̙3ff3ffff̙f3f̙3f̙̙3f̙3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3fZZZIIIFFFfff]]]wwwPPP̴spq葎+f?tRNS@fbKGDH pHYs  tIME 2*" lIDATx]Yv8 }tfp3G !I't,E1, `O?!gƏ݆W>ݐ}<jHXL 7S }'Gl7~B_G,4P\(&^3ϐ'{ ٟ"ǟg}K~h\BLT ˞ q_\Ε޻5z} JCkߕ[ZywiwZH#l7:/@ph ;q߅#Jע ;zʆY,)J\j"X]<[E-Z4/E])pd\6/' ;Brv??pĐO%~;B҆x`|yR{\0|đp]`C C+z}hhMHulw=k%kտ=%ֿ?}‘7 %6x >bMCb1wI UpDHH| ,p2_t){kJ|pfKbPC dhHhATe8"dD"DI]N KCD WKL1{+s|狎m}v{ʏ&VB6I"YM ?VD&~4Y#++P7yjbe eC"V`0Öy;C8 :&32V i@dw\4=r++Ym@nI4pqSk)wXI^UA+CkaCq jCG*fGCRyh(][ZL;r:~ OsYLMpdvXJĪB-Ϛr{+䡈~p&*bE#!DZ+bHM W8a!2ZLRK`LʺlFuL :Vp^r@Ǫz G~!:-`M9!IĊT1`#1G+4@jb EFÑMz60C@yjOW%"l3D$]Ӛh+oHvn#Vc4c-I4* %Z8ĵ%4Z V)B녅!n$è^aJtDƛ1%@p2%Q͡b%GV3)DX8! Z3R+e kRqG<*AJ(WL($X.U q$@4bE%R@Ǒ(h/%CGƳT.3qXEgN$q$Ҟc/2=5j+Օ+ϱJýXaXGXX*V(BML 6X!>갚+Ia$bhXq#қu$V~"b&+u}(\ VВX2bCG-bpdzøu6yz@ft+Xǭgbjz\.n^b o8Ī!E^M 5DS ~G$>ĵ!:J800cP&VαsSq$1Do3$7ʇ'?Z87$O|Xxu+l:bG$?ubeJF;@PJP|EoGx>{$- {r+_!MC()vlLKg0ClHxʇ`~GZwDǏ 'avg4n;|hM+V%5|fSvr $t G~-B)oӱi'ʇJR頼[a>>777%%%hhhZtRNS@fbKGDH pHYs  tIME 3&3 mIDATxz8 u>%ٖư;i76~$ 7ȓ k~pM__l$k~!@ 獎9׿͐e2gj3@gl*lb/t xKTLoH'6G; FzGKtNP~a^g x?Qae1fuʬ瀒UёN~!PHM5d6oBi 2!zUeoq/u#ː71T(})2=#/ccs(LұDmV:כH`;zIk?LؿC2CН'GF!{띎e!FpCDY7-u [G'pKIőeŁ$PqDOTbLDrD DQ'y 1 +TtsvtD;V g+DEy3s"QC㓁{C3/O ٯKU@,CYmϚN@lC Į\&. NV8nTBF!gL50W8p 1@$<"f@@d">]@\tXr[BI !θ&A0 z.1}3#7h>D7@ 1:@D[@Tq~ D !StHeD @$e{9bּ+;V@L;xT?asq%z+4r iKhd bZ GdU+ٳBE5bRw6MVg.٨bʀYM"0bli~PH+x Oо KXw(\x#@ Dߚ D@$g0LgjDUz+@xE07 %^Bl""{)DO+*%@2zD' j1g1UMqM eΣPT3+Ⱥ5D_iZQMr q 9D?jBe}K&<{;)Dd@- .1CКO!>9X VO)@DT)D-Hy!)4Zo:^a=9GeN>,2슐iEya @LՐGoM`"؎T^Ch濾$a4!ősĺex Oڪ* QL@A!ZWgs,,C5y{>uѐu@:D+ė^GC"rXk6ZuX~!j!S폕&m 8jhhy}"\!!]5DŊ鴻7[H rȔB$PA^Qa~;|jeШ M]yE}G_*!(/Ovmɑ(Zh΀(d^+Dn:]/3#@D;ke#nadtV0qC5Qp:-vaMEqEܐ+ yTxUVym*S5xPFeŐ) |([b{<} bAj3pSہhq-FbTtĜCb0dAe"j1_u( x!(D&*fHobgDRD0UVIShy!>'kHyE7yBoH!. ~tb Qz"@9GTXJxO嗞%)K̀h{(D*x!rv V2ؐ tj&eMQIZwg>L!"H84)کySnġ9r2uNhHW b3Q)"q{ ġv hܰ8L(d*Y!Zql-f݀H2{T)ܔp8me" b !دZdDqi )@,8|CQ2e(? 1b{o B҆Lq7dZvR4#dp-Q*Nz:d 1wq ʨ\$p2-@W/LO9C4J(Z չ^TTC)b1IB P jSNBr" bQ*٘Z R4Q!R"B ##e^+Dbx' \e y@D G rsXcTV 3IQ%[ 6%$= j"=X8_sHq.Y!4m;ѸZC 6d[eoк9 ( " 2ŌVnL8p"zUl @!S_J i~G~bxM̆&r;Ɛ^!yaL2vL8cZD&dxCl5rh<>8wQ*)LDQ*M,^ʷ_y"st"7zXC^О9!v㮃B~.@CL'rѐ^-7Vʬ'@!R2=0bsxi2qс8y_7ٱ?? >}݆ПЇ!/7ؔ|>smaY? @δ# iuObAMiMv Z6dY*<^ݐz#Cƹ3}j3Ķ6#bij!m3b_fdǥUB'?ui}a'C^6WB\ҵ<Gz3rKI~纵+ ٹHd[m:s;t9|Ldr!=|G\=yBp1ȍ? }x xP @@] 8n?Ҍiqck!xݓ1b Y/)3עw^mrgHauRuMD͔S˶s>(<F!o"r2l XL8:}ZBйH^H5m1]ގ U'f1XP݀!k: 6Z,}Fm_ v."UH3 Q;A@m̐6ӶO-Zk1kAAD?Gy(.VQ]P!2:QDu &%A;ݐ($mP9+6,YWAz꼱6LbH@,[cȂ 8fh@ɍD;n*xnAneO@9 \IUXD+N)O@ pd*U7x0bm򁳛!-,nRgĖ֊VfD3*'h]na!"a{|۩r. ꌄ_[?7#RݜSk)~>dB-)(KXFƧ0#7CnXP%SI -0Y!*N.yXum).bǦDU+ߦΒiH5n111wQTx'M(7~yN) {>Օ&՘[!>[C%ĝj) LW\dF/ 1Du1R JvdOΞ0{ 0˪(I5'K6Og1b"ߕ8BNuy^Z=⩀1'iGʭlCZ0g0w*JHά JESvИ)|D “3I3"lb ]"Cihl!u`E7$2#N_9# ,9.c#{`H)dH ե;.R[!G2„X%SDɴ{C2V[L2=ǯAR٪$*>Tt1H uxDLSgOm 9[="{jg} WOqx2$'MC`h/9ֲ\R؊[y0/_!b03T|!g5I!o_Z wn с%栺pLhv$Jh(.YkC@QѮ/J7I5XIVĖ`Iʜ[AlG i -6W%=L䡙IgTA8xw 딆*b7Mr&c`6~{+zR]r5MctBTW3`rg:p;'+Jh _SƯ?^cpBm3VydYx-x m7 FkcdZ:TI>x$j$ ŰbTɮdU >\* TbRB]̆T6[ ;GKvwذgd"U4֭a x,Jܧ[U zs&枑[+JF@E&iN)"[qK)?>-CkA1H8r!Mhpg혟I`l^T^ܮ0_^q s' dDk1va/qT.$m̀XJ5'$7]¡|٫ xjtF%XwґU U+N-> urh< CNsp={U<}w O Tr%Ai+ KM2[}R-qm!2RA,(Hny:`޼bLJ4r 9E}֘$SYK+qEIh_aANvnHE+Қy.J 0?]( iNҼ""nȅ/R! ?fH!6%S 9/B[땡}8F_*Pյl2 n骶~8~g?14 a2ڃH,)GS(KU OŇ:CxIz}ȼ{(pxji^i| ۗk>nS'SҸGPS^D>ZQs|מ_IeӼt!b+m*YO#^x{dIb&Kp|F 1D6J*Wp@5.nəOƤz4~[ }/{)m^=y8d~kPV\N!ZsIٛ[h_|D4~[iRK)IF퍋 !4 ^`%نhoku#OPo7?T5$S#1VIENDB`mcu8051ide-1.4.7/icons/mcu/AT89S8253.png0000644000175000017500000001154112067167647017640 0ustar milleniummilleniumPNG  IHDR^sRGBPLTE3f3333f333ff3fffff3f3f̙3f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙333333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffffff3fffffff3fff̙ffff3fffff3f̙3333f33̙3ff3ffff̙f3f̙3f̙̙3f̙3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3fzzzpppdddQQQaaa>>>AAAMMMFFF;;;III<< M+KYHsXӏ #,]\aB*j$϶^t%>>Eδw%H2A\t,= èm_m "FS: "&5n6/4UMIFFBf;q^GPE6g k,,$ H"dkɛoXL۲EtvF$IVn T4/`@F>/ܙՔ;cHQOF#O 20v~|" 䛭(2NՎ6ӑuplng"a*en@.C:"92sW%Á*jl5;]Rư0~uQg}|S{GTģ1/bZ IOnВLZ%ZZ40޽-0^X[YH.PO\oKBkMQj`wqENOq"9RPZMtDouv Chs۷k Bĸ\_=~>$iH&?ݿ1 Hi=ͩ8JE";i-y A/j^߾<={ۊ)t,8Bl8y O+_I ̝ܱ4к~&=,1$r  dJf>]R9Aҩ\!wX:۱Bd? ț@J^!Ւ].~2hZO{˰`#xu \ۃj_l-/Y6H"2X Y$Vl-Op {RȮ8%SM2lCW=J-[4$m|ygܾJ]6ģJUn[ v}K:l@N)chyєT(,IUYud5AFMSSy{3i7R7@NPM L@Gҝ0f{jolSE9I'v0^ -ϫr'9#ASQ?s*{G94("؈ZM`̋#^1i$`QD4AZLLe|!?l#ٸV kma|xw|e%3a<{QޭZ"/x1[0^)1W;90;Tmt3is*~a06eo)x4 (_ Xeh(%Fq&ڪ.k4sNSݯq!HIauuL ʢ$q 3[~g?L묭a@Ώ# }짜qy`s*Wfb>^ m0>j| tk se+.o>±.9WxJ(޶q&Dz#h@9--CS 24vnXBej| ЪL Jk'x]qA0;idW)U+*\/EtўVڈݹؕ"7EAջom5]5L(ho_ 㘼&7[oh^L۳4ӪP2)VEk9aqD~-Zjo/֬C!EE H =$c)"y3`#ucl|v_'wlPx_:2Փc*[Ӣ*O'Vxq|4tg0JUҋRݝ8W@i9Zh(-h \-tW5C>"IjOx]5]Axekg :{~4T+ܯet0^*m]a Я~wh ,ڗ|?'/a|fZ5_x07M5 b(Gk8d?̶m$mo MSM UszoD7x㎝e߭V#;= v0^#8WM5t،8IP-g4vkvL." 7{_܁ #a]=ܲ7&m5@nyq?jVQ1US_WaNgxw-ĶK,)N][dr"LFa$GZ{"mO2AkU[uXu.:S>m4 9lƞb'vd2]"Lڂ:2;<2/5;X16 Cp4e%*Bz7{a}#`2~RKtWc{0y -Tn%h`?0hfww={8TIENDB`mcu8051ide-1.4.7/icons/mcu/87C51.png0000644000175000017500000000740112067167647017215 0ustar milleniummilleniumPNG  IHDR^sRGBPLTE3f3333f333ff3fffff3f3f̙3f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙333333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffffff3fffffff3fff̙ffff3fffff3f̙3333f33̙3ff3ffff̙f3f̙3f̙̙3f̙3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3fFFFWWW999(((iiiqqqRRR>>>777%%%hhhZtRNS@fbKGDH pHYs  tIME 3&3 mIDATxz8 u>%ٖư;i76~$ 7ȓ k~pM__l$k~!@ 獎9׿͐e2gj3@gl*lb/t xKTLoH'6G; FzGKtNP~a^g x?Qae1fuʬ瀒UёN~!PHM5d6oBi 2!zUeoq/u#ː71T(})2=#/ccs(LұDmV:כH`;zIk?LؿC2CН'GF!{띎e!FpCDY7-u [G'pKIőeŁ$PqDOTbLDrD DQ'y 1 +TtsvtD;V g+DEy3s"QC㓁{C3/O ٯKU@,CYmϚN@lC Į\&. NV8nTBF!gL50W8p 1@$<"f@@d">]@\tXr[BI !θ&A0 z.1}3#7h>D7@ 1:@D[@Tq~ D !StHeD @$e{9bּ+;V@L;xT?asq%z+4r iKhd bZ GdU+ٳBE5bRw6MVg.٨bʀYM"0bli~PH+x Oо KXw(\x#@ Dߚ D@$g0LgjDUz+@xE07 %^Bl""{)DO+*%@2zD' j1g1UMqM eΣPT3+Ⱥ5D_iZQMr q 9D?jBe}K&<{;)Dd@- .1CКO!>9X VO)@DT)D-Hy!)4Zo:^a=9GeN>,2슐iEya @LՐGoM`"؎T^Ch濾$a4!ősĺex Oڪ* QL@A!ZWgs,,C5y{>uѐu@:D+ė^GC"rXk6ZuX~!j!S폕&m 8jhhy}"\!!]5DŊ鴻7[H rȔB$PA^Qa~;|jeШ M]yE}G_*!(/Ovmɑ(Zh΀(d^+Dn:]/3#@D;ke#nadtV0qC5Qp:-vaMEqEܐ+ yTxUVym*S5xPFeŐ) |([b{<} bAj3pSہhq-FbTtĜCb0dAe"j1_u( x!(D&*fHobgDRD0UVIShy!>'kHyE7yBoH!. ~tb Qz"@9GTXJxO嗞%)K̀h{(D*x!rv V2ؐ tj&eMQIZwg>L!"H84)کySnġ9r2uNhHW b3Q)"q{ ġv hܰ8L(d*Y!Zql-f݀H2{T)ܔp8me" b !دZdDqi )@,8|CQ2e(? 1b{o B҆Lq7dZvR4#dp-Q*Nz:d 1wq ʨ\$p2-@W/LO9C4J(Z չ^TTC)b1IB P jSNBr" bQ*٘Z R4Q!R"B ##e^+Dbx' \e y@D G rsXcTV 3IQ%[ 6%$= j"=X8_sHq.Y!4m;ѸZC 6d[eoк9 ( " 2ŌVnL8p"zUl @!S_J i~G~bxM̆&r;Ɛ^!yaL2vL8cZD&dxCl5rh<>8wQ*)LDQ*M,^ʷ_y"st"7zXC^О9!v㮃B~.@CL'rѐ^-7Vʬ'@!R2=0bsxi2qс8y>>777%%%hhhZtRNS@fbKGDH pHYs  tIME 3&3 mIDATxz8 u>%ٖư;i76~$ 7ȓ k~pM__l$k~!@ 獎9׿͐e2gj3@gl*lb/t xKTLoH'6G; FzGKtNP~a^g x?Qae1fuʬ瀒UёN~!PHM5d6oBi 2!zUeoq/u#ː71T(})2=#/ccs(LұDmV:כH`;zIk?LؿC2CН'GF!{띎e!FpCDY7-u [G'pKIőeŁ$PqDOTbLDrD DQ'y 1 +TtsvtD;V g+DEy3s"QC㓁{C3/O ٯKU@,CYmϚN@lC Į\&. NV8nTBF!gL50W8p 1@$<"f@@d">]@\tXr[BI !θ&A0 z.1}3#7h>D7@ 1:@D[@Tq~ D !StHeD @$e{9bּ+;V@L;xT?asq%z+4r iKhd bZ GdU+ٳBE5bRw6MVg.٨bʀYM"0bli~PH+x Oо KXw(\x#@ Dߚ D@$g0LgjDUz+@xE07 %^Bl""{)DO+*%@2zD' j1g1UMqM eΣPT3+Ⱥ5D_iZQMr q 9D?jBe}K&<{;)Dd@- .1CКO!>9X VO)@DT)D-Hy!)4Zo:^a=9GeN>,2슐iEya @LՐGoM`"؎T^Ch濾$a4!ősĺex Oڪ* QL@A!ZWgs,,C5y{>uѐu@:D+ė^GC"rXk6ZuX~!j!S폕&m 8jhhy}"\!!]5DŊ鴻7[H rȔB$PA^Qa~;|jeШ M]yE}G_*!(/Ovmɑ(Zh΀(d^+Dn:]/3#@D;ke#nadtV0qC5Qp:-vaMEqEܐ+ yTxUVym*S5xPFeŐ) |([b{<} bAj3pSہhq-FbTtĜCb0dAe"j1_u( x!(D&*fHobgDRD0UVIShy!>'kHyE7yBoH!. ~tb Qz"@9GTXJxO嗞%)K̀h{(D*x!rv V2ؐ tj&eMQIZwg>L!"H84)کySnġ9r2uNhHW b3Q)"q{ ġv hܰ8L(d*Y!Zql-f݀H2{T)ܔp8me" b !دZdDqi )@,8|CQ2e(? 1b{o B҆Lq7dZvR4#dp-Q*Nz:d 1wq ʨ\$p2-@W/LO9C4J(Z չ^TTC)b1IB P jSNBr" bQ*٘Z R4Q!R"B ##e^+Dbx' \e y@D G rsXcTV 3IQ%[ 6%$= j"=X8_sHq.Y!4m;ѸZC 6d[eoк9 ( " 2ŌVnL8p"zUl @!S_J i~G~bxM̆&r;Ɛ^!yaL2vL8cZD&dxCl5rh<>8wQ*)LDQ*M,^ʷ_y"st"7zXC^О9!v㮃B~.@CL'rѐ^-7Vʬ'@!R2=0bsxi2qс8yBc(NHe φƤS!|@>fGL[t HL oBx?,  _\B3s!m?#aL3l7 [.RYmG.O)Ľq5t\؎D.gꀠ#b-o.l7Hl B@"e#j~b#uﴳGַ_; e'[)PHc(Ġ($:Ӊ*jyö,ZVuT)!ů/A^lƳeP"-d(:0hA[sR;eJ:|p|9~h- tfT O,(#M7\K>];FK{/kBN%`?_@H zw@l1yr)`ky2pK<@_1r,'H#_HZ -E ! (lǒFP֣TҲ %}atH%ƵG%|ɐ& O_\ߑq{i2G-ٙZ|>uQuH8-E t|P9:(?`4"gX.pDH02a͎Ⱥ9ٯ cih|%Jd(ZNM&aԅ;m"=9)ݴ#~h^0P+jIPP=ȩ˅)+& LK4F~-Q/3MB^ F̰X7 HIh]r=j% $ XiNufH%eyjIu`Y0f>l@V8Iŝ.R(y>G0@Xvgwfla ʨ@6/ iN{d,SN$SRPsX˴ٳ;(ob9ᴪ#'C5FJiJpN4PpÌ4GYk)Iͬ@6܁& ~ 6V+%j&\Ii )4bOdYVxrv7K%uK5UZ^ey dK-ǭT򳉏 [^7l|Zx74{ D*p[_MˮܺxW_7STǔ;ݴЃR0߃]a>.S{6w2SF,Aa4n<^\v[8}PE /v ³f2@|@K݊4$nV@)sp-(sҪ\_Sݍ4'o KH?=zNiHVO;Ʈx¹('#G!}m@dIps/QYQFWa%5gא>Ge~eS~.Ξ@H $+-O2#xNXIENDB`mcu8051ide-1.4.7/icons/mcu/AT89S4051.png0000644000175000017500000000725012067167647017632 0ustar milleniummilleniumPNG  IHDR^sRGBPLTE3f3333f333ff3fffff3f3f̙3f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙333333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffffff3fffffff3fff̙ffff3fffff3f̙3333f33̙3ff3ffff̙f3f̙3f̙̙3f̙3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3f{{{AAA666yyy$$$777VVVTtRNS@fbKGDH pHYs  tIME 1&_| IDATx v* Eh?ڏE~(w~-NwͶyfERH"E)RH"EKx7ݼt!w$x4p.$/~#̄~E|%B[U>yN[f|Fs9]\eBp_cƐ2x$)FyYׄ%TO;R _6弔??.0+UKUI%wD@Ur;VAo6ȇ7BօHQ]l%V-}-죦ժ6u!vLQVU[&ϭ:m!xu&hBP֑ӣ8\4c #r+HF!5kڛeT6 i{u!;=@Pڑ!$J V{zދ{ <1 @2f-J-~Z[;r|Z;bnlnJ^BJO8r&äE!:䉍=>͊-֋ \@K GN*o$p`oO'X;_0"7k?Q?NgG,$Z^BXFXu9'!v5؊(<ܳ]* V-Z"XK! NB8o%2Fö`;uBt>nHmZePWpT*0*Brv%ט )qZGܘs走攱vXstKK뜝t5)}ypB!l(|ţ[|vouP#w#B'_$LතBKaeQ.' @_3cˎ~LYZ64N[*Hzf~d" \y& Ft!$y t{UsF=T1EHvN{Q;5I7J>ʄD$RϾ);F~y:B-SǰQ@m G#n8үVZcv=~6"W۶xv2Q:Mޅo7BBH(B* F87M9  ڧO X{]s(Ge(hfC\|n}B Spku~e& g ׾`2e;!,퐩_+o,pr6:9j*[6Immiq5H(۸Q>dc>mУu~ҙvB2sJ&]85{B>VŢjʠB#R_I~d? P"Y:é얈+^HMؘB2t~]Ps`Gudo@k`:,-/ӆn_kSmf nkaC:r/AEbw_>w6n[M~$4LPK Bk!cQM`H jDv}N|7_ׇ(5/$iڛVH8Zq⊠-_ } ²B~<}bU_.BwH{+z$\_/)uH.s렑p4 Z+Z1Xu'OEXLST2_ TOuM Wzd:<< kD,nH<]!7K T:TngYsPd`m\uE?G .B=CWo$Q_#]m_VY~Я<`l~&.//@I*,/3]Z('~%э-X"{\ (3E6Zo+٪-Fb~QZe8W%jY^/.q#>=@B!HJ\}FT:twk9{z~) u7u> y{-1'eh<ę; 42fȍqJN p_ȳ )b:! b4x2 ʹfvzξ_t5p8kM|qhr`׋U.MRA~F!NlXP9b Z.5\ V~lkݪUsؚO[K?hتï?ī{) D !f\/e@;;ͳķJDM z:e7vO֎UBƗξI=\fR[%x5E  !!d2fmj]7G-o>>777%%%hhhZtRNS@fbKGDH pHYs  tIME 3&3 mIDATxz8 u>%ٖư;i76~$ 7ȓ k~pM__l$k~!@ 獎9׿͐e2gj3@gl*lb/t xKTLoH'6G; FzGKtNP~a^g x?Qae1fuʬ瀒UёN~!PHM5d6oBi 2!zUeoq/u#ː71T(})2=#/ccs(LұDmV:כH`;zIk?LؿC2CН'GF!{띎e!FpCDY7-u [G'pKIőeŁ$PqDOTbLDrD DQ'y 1 +TtsvtD;V g+DEy3s"QC㓁{C3/O ٯKU@,CYmϚN@lC Į\&. NV8nTBF!gL50W8p 1@$<"f@@d">]@\tXr[BI !θ&A0 z.1}3#7h>D7@ 1:@D[@Tq~ D !StHeD @$e{9bּ+;V@L;xT?asq%z+4r iKhd bZ GdU+ٳBE5bRw6MVg.٨bʀYM"0bli~PH+x Oо KXw(\x#@ Dߚ D@$g0LgjDUz+@xE07 %^Bl""{)DO+*%@2zD' j1g1UMqM eΣPT3+Ⱥ5D_iZQMr q 9D?jBe}K&<{;)Dd@- .1CКO!>9X VO)@DT)D-Hy!)4Zo:^a=9GeN>,2슐iEya @LՐGoM`"؎T^Ch濾$a4!ősĺex Oڪ* QL@A!ZWgs,,C5y{>uѐu@:D+ė^GC"rXk6ZuX~!j!S폕&m 8jhhy}"\!!]5DŊ鴻7[H rȔB$PA^Qa~;|jeШ M]yE}G_*!(/Ovmɑ(Zh΀(d^+Dn:]/3#@D;ke#nadtV0qC5Qp:-vaMEqEܐ+ yTxUVym*S5xPFeŐ) |([b{<} bAj3pSہhq-FbTtĜCb0dAe"j1_u( x!(D&*fHobgDRD0UVIShy!>'kHyE7yBoH!. ~tb Qz"@9GTXJxO嗞%)K̀h{(D*x!rv V2ؐ tj&eMQIZwg>L!"H84)کySnġ9r2uNhHW b3Q)"q{ ġv hܰ8L(d*Y!Zql-f݀H2{T)ܔp8me" b !دZdDqi )@,8|CQ2e(? 1b{o B҆Lq7dZvR4#dp-Q*Nz:d 1wq ʨ\$p2-@W/LO9C4J(Z չ^TTC)b1IB P jSNBr" bQ*٘Z R4Q!R"B ##e^+Dbx' \e y@D G rsXcTV 3IQ%[ 6%$= j"=X8_sHq.Y!4m;ѸZC 6d[eoк9 ( " 2ŌVnL8p"zUl @!S_J i~G~bxM̆&r;Ɛ^!yaL2vL8cZD&dxCl5rh<>8wQ*)LDQ*M,^ʷ_y"st"7zXC^О9!v㮃B~.@CL'rѐ^-7Vʬ'@!R2=0bsxi2qс8y>>777%%%hhhZtRNS@fbKGDH pHYs  tIME 3&3 mIDATxz8 u>%ٖư;i76~$ 7ȓ k~pM__l$k~!@ 獎9׿͐e2gj3@gl*lb/t xKTLoH'6G; FzGKtNP~a^g x?Qae1fuʬ瀒UёN~!PHM5d6oBi 2!zUeoq/u#ː71T(})2=#/ccs(LұDmV:כH`;zIk?LؿC2CН'GF!{띎e!FpCDY7-u [G'pKIőeŁ$PqDOTbLDrD DQ'y 1 +TtsvtD;V g+DEy3s"QC㓁{C3/O ٯKU@,CYmϚN@lC Į\&. NV8nTBF!gL50W8p 1@$<"f@@d">]@\tXr[BI !θ&A0 z.1}3#7h>D7@ 1:@D[@Tq~ D !StHeD @$e{9bּ+;V@L;xT?asq%z+4r iKhd bZ GdU+ٳBE5bRw6MVg.٨bʀYM"0bli~PH+x Oо KXw(\x#@ Dߚ D@$g0LgjDUz+@xE07 %^Bl""{)DO+*%@2zD' j1g1UMqM eΣPT3+Ⱥ5D_iZQMr q 9D?jBe}K&<{;)Dd@- .1CКO!>9X VO)@DT)D-Hy!)4Zo:^a=9GeN>,2슐iEya @LՐGoM`"؎T^Ch濾$a4!ősĺex Oڪ* QL@A!ZWgs,,C5y{>uѐu@:D+ė^GC"rXk6ZuX~!j!S폕&m 8jhhy}"\!!]5DŊ鴻7[H rȔB$PA^Qa~;|jeШ M]yE}G_*!(/Ovmɑ(Zh΀(d^+Dn:]/3#@D;ke#nadtV0qC5Qp:-vaMEqEܐ+ yTxUVym*S5xPFeŐ) |([b{<} bAj3pSہhq-FbTtĜCb0dAe"j1_u( x!(D&*fHobgDRD0UVIShy!>'kHyE7yBoH!. ~tb Qz"@9GTXJxO嗞%)K̀h{(D*x!rv V2ؐ tj&eMQIZwg>L!"H84)کySnġ9r2uNhHW b3Q)"q{ ġv hܰ8L(d*Y!Zql-f݀H2{T)ܔp8me" b !دZdDqi )@,8|CQ2e(? 1b{o B҆Lq7dZvR4#dp-Q*Nz:d 1wq ʨ\$p2-@W/LO9C4J(Z չ^TTC)b1IB P jSNBr" bQ*٘Z R4Q!R"B ##e^+Dbx' \e y@D G rsXcTV 3IQ%[ 6%$= j"=X8_sHq.Y!4m;ѸZC 6d[eoк9 ( " 2ŌVnL8p"zUl @!S_J i~G~bxM̆&r;Ɛ^!yaL2vL8cZD&dxCl5rh<>8wQ*)LDQ*M,^ʷ_y"st"7zXC^О9!v㮃B~.@CL'rѐ^-7Vʬ'@!R2=0bsxi2qс8y>>777%%%hhhZtRNS@fbKGDH pHYs  tIME 3&3 mIDATxz8 u>%ٖư;i76~$ 7ȓ k~pM__l$k~!@ 獎9׿͐e2gj3@gl*lb/t xKTLoH'6G; FzGKtNP~a^g x?Qae1fuʬ瀒UёN~!PHM5d6oBi 2!zUeoq/u#ː71T(})2=#/ccs(LұDmV:כH`;zIk?LؿC2CН'GF!{띎e!FpCDY7-u [G'pKIőeŁ$PqDOTbLDrD DQ'y 1 +TtsvtD;V g+DEy3s"QC㓁{C3/O ٯKU@,CYmϚN@lC Į\&. NV8nTBF!gL50W8p 1@$<"f@@d">]@\tXr[BI !θ&A0 z.1}3#7h>D7@ 1:@D[@Tq~ D !StHeD @$e{9bּ+;V@L;xT?asq%z+4r iKhd bZ GdU+ٳBE5bRw6MVg.٨bʀYM"0bli~PH+x Oо KXw(\x#@ Dߚ D@$g0LgjDUz+@xE07 %^Bl""{)DO+*%@2zD' j1g1UMqM eΣPT3+Ⱥ5D_iZQMr q 9D?jBe}K&<{;)Dd@- .1CКO!>9X VO)@DT)D-Hy!)4Zo:^a=9GeN>,2슐iEya @LՐGoM`"؎T^Ch濾$a4!ősĺex Oڪ* QL@A!ZWgs,,C5y{>uѐu@:D+ė^GC"rXk6ZuX~!j!S폕&m 8jhhy}"\!!]5DŊ鴻7[H rȔB$PA^Qa~;|jeШ M]yE}G_*!(/Ovmɑ(Zh΀(d^+Dn:]/3#@D;ke#nadtV0qC5Qp:-vaMEqEܐ+ yTxUVym*S5xPFeŐ) |([b{<} bAj3pSہhq-FbTtĜCb0dAe"j1_u( x!(D&*fHobgDRD0UVIShy!>'kHyE7yBoH!. ~tb Qz"@9GTXJxO嗞%)K̀h{(D*x!rv V2ؐ tj&eMQIZwg>L!"H84)کySnġ9r2uNhHW b3Q)"q{ ġv hܰ8L(d*Y!Zql-f݀H2{T)ܔp8me" b !دZdDqi )@,8|CQ2e(? 1b{o B҆Lq7dZvR4#dp-Q*Nz:d 1wq ʨ\$p2-@W/LO9C4J(Z չ^TTC)b1IB P jSNBr" bQ*٘Z R4Q!R"B ##e^+Dbx' \e y@D G rsXcTV 3IQ%[ 6%$= j"=X8_sHq.Y!4m;ѸZC 6d[eoк9 ( " 2ŌVnL8p"zUl @!S_J i~G~bxM̆&r;Ɛ^!yaL2vL8cZD&dxCl5rh<>8wQ*)LDQ*M,^ʷ_y"st"7zXC^О9!v㮃B~.@CL'rѐ^-7Vʬ'@!R2=0bsxi2qс8yv6o WJ„Hk>%}6I^7N:dT2ioЏ~ \{cA|cyˡZ\`eVTMBoo'̶z+O b:q*77Ytr#m5 ~G;o#a ˵2_ood_k}:!"F;naٴisgShw4] HDlT^Cÿ_3 DT2w g=/h5g~App9Vf)L6FÑO]ky D n <ňMn_d w;1l"r 6q88k@e4`[C9078%cYr;1>:e;H ӗ '~kdF~}Q)T+YxG'p$ A>|y .t6߭}r'QJT/^h82]؊?so~U?Y.l'. DpX!Gi'˅;xLKXM$E;X~;z":#g45lcW3IE"u}q؍m@5/΢٦&RlxY)ؘ1n5n:4MsmG`=AwxĈ\gvF Ѫ%Tv[41W H>U#ug!cK9  6{s<$h[2쑀l 汬qxXY]AԐE#!>XH^ HYc dleG PfAF/#mcWAjfy%.dO`z O9@$ۈkyEtƑiڑ(,v+slJ k91[Gj*'sG]J:H۲|sX"&rT8z-A5|jI$2VsJp"FV@6IN4@ĬZك;X:X, wހ-p*Ϣ k"w_~%._06AS:8yi)Hkb%:D(G@LPt`eJHJY+DȺv"KURPTǀv,(xnA=ϮR@_C)y@4 C| k>02(܍Z{FF=b#iyj5&@Q%wQ{7mpNJ(edl {8 JօM)M; N^TMuWBieonЌq{Q鵀g0+jUo WЙ$ BL"eHZcBK ou^?Rp|x[-ڑSՖ4U 2Di#ioqAu-CO>n}K%%~$ї%Y[KecX ED^2o%tP$Vdg&E|iоZ/TKxĢgBQFi)4+8k0ƀ^،#O5;v YxY vNlN|=ܛjQjf=4ޞ%OǐWl;2|Z8mQgS]:>KIFC6I.U;łXsS /%h^ y=)AXdy6)| ͦx̖\k%9N: TMc;kZ zN~d@>N+&DQƔmʵ+TvA#iԯN=C`f=W*Q9CL#{qEt,۳(X;,6e^ +lEUeo!0 Ls)T%AMdx rG^A4 .|DHaF\CЩکEⵉt&A4v% v i=i| ^]o0t8x8U"jM??ԢkEvE]OCoits- $h`ZN),QЦ "@f dNB<0"ci?EbZ%+H6Ӹ" sx-Nl=MY@O5͐lY@NZY|*$ 6>eS6n$w!]@4XD+Z˙E9_u\]DԱ (չgcw֔vA5iŦk#pD]Arr]L.g#>=2w@{<_%Ҝ(+1iwtA\Dl[DMRLұIiʒI¾ܰL'ߪs#}*m-fֈ`emoI[D_>TUlɉ4h#s`#N719Vʰqp,KR+Zѕo?Ct5EH?9xx?"/v'";]vrn|'[(zJzRLw /6׶h"u[oIPFK2##V jڈۅui;~s\z}3pG6D~إw~'{Vܩ#.76hinJ7Jjߛi#81sLݩ48nshj5"rm oLh|h#.U+0;Fm8v8&2HJ 1m[s]&sZ. “(7dž.3Ki%6AG5 ^v(,d<'̅I^<ǒu 4}f߿wӵysz\Cyy1QۏlT֛s$*ۈi|woo!(2,>h*7O5F,b7p,`PzNk_zi:Պ}0G4FOu5dlc7 7([*ˈ - )#g4K&/t {y'ކ='/#}ϑwDIENDB`mcu8051ide-1.4.7/icons/mcu/AT87C58X2.png0000644000175000017500000001043412067167647017663 0ustar milleniummilleniumPNG  IHDR^sRGBPLTE3f3333f333ff3fffff3f3f̙3f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙333333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffffff3fffffff3fff̙ffff3fffff3f̙3333f33̙3ff3ffff̙f3f̙3f̙̙3f̙3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3f9tRNS@fbKGDH pHYs  tIME 24E^} IDATx] v: ~؏EN6i'9-BjaIWR>v6o WJ„Hk>%}6I^7N:dT2ioЏ~ \{cA|cyˡZ\`eVTMBoo'̶z+O b:q*77Ytr#m5 ~G;o#a ˵2_ood_k}:!"F;naٴisgShw4] HDlT^Cÿ_3 DT2w g=/h5g~App9Vf)L6FÑO]ky D n <ňMn_d w;1l"r 6q88k@e4`[C9078%cYr;1>:e;H ӗ '~kdF~}Q)T+YxG'p$ A>|y .t6߭}r'QJT/^h82]؊?so~U?Y.l'. DpX!Gi'˅;xLKXM$E;X~;z":#g45lcW3IE"u}q؍m@5/΢٦&RlxY)ؘ1n5n:4MsmG`=AwxĈ\gvF Ѫ%Tv[41W H>U#ug!cK9  6{s<$h[2쑀l 汬qxXY]AԐE#!>XH^ HYc dleG PfAF/#mcWAjfy%.dO`z O9@$ۈkyEtƑiڑ(,v+slJ k91[Gj*'sG]J:H۲|sX"&rT8z-A5|jI$2VsJp"FV@6IN4@ĬZك;X:X, wހ-p*Ϣ k"w_~%._06AS:8yi)Hkb%:D(G@LPt`eJHJY+DȺv"KURPTǀv,(xnA=ϮR@_C)y@4 C| k>02(܍Z{FF=b#iyj5&@Q%wQ{7mpNJ(edl {8 JօM)M; N^TMuWBieonЌq{Q鵀g0+jUo WЙ$ BL"eHZcBK ou^?Rp|x[-ڑSՖ4U 2Di#ioqAu-CO>n}K%%~$ї%Y[KecX ED^2o%tP$Vdg&E|iоZ/TKxĢgBQFi)4+8k0ƀ^،#O5;v YxY vNlN|=ܛjQjf=4ޞ%OǐWl;2|Z8mQgS]:>KIFC6I.U;łXsS /%h^ y=)AXdy6)| ͦx̖\k%9N: TMc;kZ zN~d@>N+&DQƔmʵ+TvA#iԯN=C`f=W*Q9CL#{qEt,۳(X;,6e^ +lEUeo!0 Ls)T%AMdx rG^A4 .|DHaF\CЩکEⵉt&A4v% v i=i| ^]o0t8x8U"jM??ԢkEvE]OCoits- $h`ZN),QЦ "@f dNB<0"ci?EbZ%+H6Ӹ" sx-Nl=MY@O5͐lY@NZY|*$ 6>eS6n$w!]@4XD+Z˙E9_u\]DԱ (չgcw֔vA5iŦk#pD]Arr]L.g#>=2w@{<_%Ҝ(+1iwtA\Dl[DMRLұIiʒI¾ܰL'ߪs#}*m-fֈ`emoI[D_>TUlɉ4h#s`#N719Vʰqp,KR+Zѕo?Ct5EH?9xx?"/v'";]vrn|'[(zJzRLw /6׶h"u[oIPFK2##V jڈۅui;~s\z}3pG6D~إw~'{Vܩ#.76hinJ7Jjߛi#81sLݩ48nshj5"rm oLh|h#.U+0;Fm8v8&2HJ 1m[s]&sZ. “(7dž.3Ki%6AG5 ^v(,d<'̅I^<ǒu 4}f߿wӵysz\Cyy1QۏlT֛s$*ۈi|woo!(2,>h*7O5F,b7p,`PzNk_zi:Պ}0G4FOu5dlc7 7([*ˈ - )#g4K&/t {y'ކ='/#}ϑwDIENDB`mcu8051ide-1.4.7/icons/mcu/80C58.png0000644000175000017500000000740112067167647017215 0ustar milleniummilleniumPNG  IHDR^sRGBPLTE3f3333f333ff3fffff3f3f̙3f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙333333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffffff3fffffff3fff̙ffff3fffff3f̙3333f33̙3ff3ffff̙f3f̙3f̙̙3f̙3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3fFFFWWW999(((iiiqqqRRR>>>777%%%hhhZtRNS@fbKGDH pHYs  tIME 3&3 mIDATxz8 u>%ٖư;i76~$ 7ȓ k~pM__l$k~!@ 獎9׿͐e2gj3@gl*lb/t xKTLoH'6G; FzGKtNP~a^g x?Qae1fuʬ瀒UёN~!PHM5d6oBi 2!zUeoq/u#ː71T(})2=#/ccs(LұDmV:כH`;zIk?LؿC2CН'GF!{띎e!FpCDY7-u [G'pKIőeŁ$PqDOTbLDrD DQ'y 1 +TtsvtD;V g+DEy3s"QC㓁{C3/O ٯKU@,CYmϚN@lC Į\&. NV8nTBF!gL50W8p 1@$<"f@@d">]@\tXr[BI !θ&A0 z.1}3#7h>D7@ 1:@D[@Tq~ D !StHeD @$e{9bּ+;V@L;xT?asq%z+4r iKhd bZ GdU+ٳBE5bRw6MVg.٨bʀYM"0bli~PH+x Oо KXw(\x#@ Dߚ D@$g0LgjDUz+@xE07 %^Bl""{)DO+*%@2zD' j1g1UMqM eΣPT3+Ⱥ5D_iZQMr q 9D?jBe}K&<{;)Dd@- .1CКO!>9X VO)@DT)D-Hy!)4Zo:^a=9GeN>,2슐iEya @LՐGoM`"؎T^Ch濾$a4!ősĺex Oڪ* QL@A!ZWgs,,C5y{>uѐu@:D+ė^GC"rXk6ZuX~!j!S폕&m 8jhhy}"\!!]5DŊ鴻7[H rȔB$PA^Qa~;|jeШ M]yE}G_*!(/Ovmɑ(Zh΀(d^+Dn:]/3#@D;ke#nadtV0qC5Qp:-vaMEqEܐ+ yTxUVym*S5xPFeŐ) |([b{<} bAj3pSہhq-FbTtĜCb0dAe"j1_u( x!(D&*fHobgDRD0UVIShy!>'kHyE7yBoH!. ~tb Qz"@9GTXJxO嗞%)K̀h{(D*x!rv V2ؐ tj&eMQIZwg>L!"H84)کySnġ9r2uNhHW b3Q)"q{ ġv hܰ8L(d*Y!Zql-f݀H2{T)ܔp8me" b !دZdDqi )@,8|CQ2e(? 1b{o B҆Lq7dZvR4#dp-Q*Nz:d 1wq ʨ\$p2-@W/LO9C4J(Z չ^TTC)b1IB P jSNBr" bQ*٘Z R4Q!R"B ##e^+Dbx' \e y@D G rsXcTV 3IQ%[ 6%$= j"=X8_sHq.Y!4m;ѸZC 6d[eoк9 ( " 2ŌVnL8p"zUl @!S_J i~G~bxM̆&r;Ɛ^!yaL2vL8cZD&dxCl5rh<>8wQ*)LDQ*M,^ʷ_y"st"7zXC^О9!v㮃B~.@CL'rѐ^-7Vʬ'@!R2=0bsxi2qс8y_7ٱ?? >}݆ПЇ!/7ؔ|>smaY? @δ# iuObAMiMv Z6dY*<^ݐz#Cƹ3}j3Ķ6#bij!m3b_fdǥUB'?ui}a'C^6WB\ҵ<Gz3rKI~纵+ ٹHd[m:s;t9|Ldr!=|G\=yBp1ȍ? }x xP @@] 8n?Ҍiqck!xݓ1b Y/)3עw^mrgHauRuMD͔S˶s>(<F!o"r2l XL8:}ZBйH^H5m1]ގ U'f1XP݀!k: 6Z,}Fm_ v."UH3 Q;A@m̐6ӶO-Zk1kAAD?Gy(.VQ]P!2:QDu &%A;ݐ($mP9+6,YWAz꼱6LbH@,[cȂ 8fh@ɍD;n*xnAneO@9 \IUXD+N)O@ pd*U7x0bm򁳛!-,nRgĖ֊VfD3*'h]na!"a{|۩r. ꌄ_[?7#RݜSk)~>dB-)(KXFƧ0#7CnXP%SI -0Y!*N.yXum).bǦDU+ߦΒiH5n111wQTx'M(7~yN) {>Օ&՘[!>[C%ĝj) LW\dF/ 1Du1R JvdOΞ0{ 0˪(I5'K6Og1b"ߕ8BNuy^Z=⩀1'iGʭlCZ0g0w*JHά JESvИ)|D “3I3"lb ]"Cihl!u`E7$2#N_9# ,9.c#{`H)dH ե;.R[!G2„X%SDɴ{C2V[L2=ǯAR٪$*>Tt1H uxDLSgOm 9[="{jg} WOqx2$'MC`h/9ֲ\R؊[y0/_!b03T|!g5I!o_Z wn с%栺pLhv$Jh(.YkC@QѮ/J7I5XIVĖ`Iʜ[AlG i -6W%=L䡙IgTA8xw 딆*b7Mr&c`6~{+zR]r5MctBTW3`rg:p;'+Jh _SƯ?^cpBm3VydYx-x m7 FkcdZ:TI>x$j$ ŰbTɮdU >\* TbRB]̆T6[ ;GKvwذgd"U4֭a x,Jܧ[U zs&枑[+JF@E&iN)"[qK)?>-CkA1H8r!Mhpg혟I`l^T^ܮ0_^q s' dDk1va/qT.$m̀XJ5'$7]¡|٫ xjtF%XwґU U+N-> urh< CNsp={U<}w O Tr%Ai+ KM2[}R-qm!2RA,(Hny:`޼bLJ4r 9E}֘$SYK+qEIh_aANvnHE+Қy.J 0?]( iNҼ""nȅ/R! ?fH!6%S 9/B[땡}8F_*Pյl2 n骶~8~g?14 a2ڃH,)GS(KU OŇ:CxIz}ȼ{(pxji^i| ۗk>nS'SҸGPS^D>ZQs|מ_IeӼt!b+m*YO#^x{dIb&Kp|F 1D6J*Wp@5.nəOƤz4~[ }/{)m^=y8d~kPV\N!ZsIٛ[h_|D4~[iRK)IF퍋 !4 ^`%نhoku#OPo7?T5$S#1VIENDB`mcu8051ide-1.4.7/icons/mcu/AT89LV52.png0000644000175000017500000001071212067167647017603 0ustar milleniummilleniumPNG  IHDR^sRGBPLTE3f3333f333ff3fffff3f3f̙3f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙333333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffffff3fffffff3fff̙ffff3fffff3f̙3333f33̙3ff3ffff̙f3f̙3f̙̙3f̙3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3f_\]ebczwxb_`{xynklˍӜg1tRNS@fbKGDH pHYs  tIME 1.Q 6IDATx]Qv: ~X̼/-&|d-ɖ@CqH3HՕ,9nH_! gH9#pKדIoCϓ$a;ֽg(d f֒\h@"Hf$Od|# ci<ڽ&DžǬ=(fG*$^8gqDYGMqsťbvD q4oTc4GH pDe,XD4L>z3Wם ;Ypغ|Z4$| _gOީO>OHN?( #OR2R2W͗ қLtվEgK)ړCX^WQt{m5+NI#Cf &b&q~7%]T]4nE0dq@ H+#ɯ!V܌(S}P߅H*g%d?Q쌵Z@;خWT%Lcrg duzCME .) c3"Qo 9B['QV:rgZ7d33­Gn|`_m\5W/{! /`L?P?lZX^k [/A"4ڼ;xcjpoAH W\ VHblq]~)D AgN3+R~&ɋuHu {Wю|_mhQW (CK\?EmP d3SՂ~`Ղ$'HoBbGx4_E5*F=Rl&HS~s0H_rSR(bmz.=;s,Tӵ8Сox55Rdze2a{G4c@Nbuuv_*-0^s)'A x+tTŢ4.2xGZsjft쑲D4(ϓTՃWU R^aQ۪s$P{6?O@llG;+3 BfՐOHdP\$[G#Z&i%%(Ȭe Hp%_)Kx%GfL$y,79%5Tm !e=oD^%H(.H@+5 Y'Zŏ7P jVFb; Hld_BsW Wkk"}7A==Hy@OPCԋv󲛢42lW.O7b.`K7A&$v~HM,0-N#A| Xzj b@,T@/b[MB]|j~V]L;Q| ]y=NSNS:9i.J]]B IǞT5C͑2[. |o4U'פby&he~ƬI/n y[-ɝPvZ-b/sjI+̮zﵩL]ƶ>n xi\uj!r2W]=(")_`*S%Rh"gQۻZ[]_,CGڝ^jB!wa^am64?_AM9Ų=;%99Lht4˵_il]m|iʺh5$ wm12F] }Կqw޻WpDyΦ]GtoƋp]M1mh_#w]mӋI5 qĺi]xdQC0;n|J(T:F3r6vDjLHkۄ.hz6{H{z<ݪ՝s7]oo5>8h~zڗeEgREH\]{m\~`$Lfٸ*^}u@n?˾ W@ ǟC -13-3uVۏВ (O82V-(j$drC|9>>.btjIENDB`mcu8051ide-1.4.7/icons/mcu/AT80C54X2.png0000644000175000017500000001043412067167647017650 0ustar milleniummilleniumPNG  IHDR^sRGBPLTE3f3333f333ff3fffff3f3f̙3f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙333333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffffff3fffffff3fff̙ffff3fffff3f̙3333f33̙3ff3ffff̙f3f̙3f̙̙3f̙3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3f9tRNS@fbKGDH pHYs  tIME 24E^} IDATx] v: ~؏EN6i'9-BjaIWR>v6o WJ„Hk>%}6I^7N:dT2ioЏ~ \{cA|cyˡZ\`eVTMBoo'̶z+O b:q*77Ytr#m5 ~G;o#a ˵2_ood_k}:!"F;naٴisgShw4] HDlT^Cÿ_3 DT2w g=/h5g~App9Vf)L6FÑO]ky D n <ňMn_d w;1l"r 6q88k@e4`[C9078%cYr;1>:e;H ӗ '~kdF~}Q)T+YxG'p$ A>|y .t6߭}r'QJT/^h82]؊?so~U?Y.l'. DpX!Gi'˅;xLKXM$E;X~;z":#g45lcW3IE"u}q؍m@5/΢٦&RlxY)ؘ1n5n:4MsmG`=AwxĈ\gvF Ѫ%Tv[41W H>U#ug!cK9  6{s<$h[2쑀l 汬qxXY]AԐE#!>XH^ HYc dleG PfAF/#mcWAjfy%.dO`z O9@$ۈkyEtƑiڑ(,v+slJ k91[Gj*'sG]J:H۲|sX"&rT8z-A5|jI$2VsJp"FV@6IN4@ĬZك;X:X, wހ-p*Ϣ k"w_~%._06AS:8yi)Hkb%:D(G@LPt`eJHJY+DȺv"KURPTǀv,(xnA=ϮR@_C)y@4 C| k>02(܍Z{FF=b#iyj5&@Q%wQ{7mpNJ(edl {8 JօM)M; N^TMuWBieonЌq{Q鵀g0+jUo WЙ$ BL"eHZcBK ou^?Rp|x[-ڑSՖ4U 2Di#ioqAu-CO>n}K%%~$ї%Y[KecX ED^2o%tP$Vdg&E|iоZ/TKxĢgBQFi)4+8k0ƀ^،#O5;v YxY vNlN|=ܛjQjf=4ޞ%OǐWl;2|Z8mQgS]:>KIFC6I.U;łXsS /%h^ y=)AXdy6)| ͦx̖\k%9N: TMc;kZ zN~d@>N+&DQƔmʵ+TvA#iԯN=C`f=W*Q9CL#{qEt,۳(X;,6e^ +lEUeo!0 Ls)T%AMdx rG^A4 .|DHaF\CЩکEⵉt&A4v% v i=i| ^]o0t8x8U"jM??ԢkEvE]OCoits- $h`ZN),QЦ "@f dNB<0"ci?EbZ%+H6Ӹ" sx-Nl=MY@O5͐lY@NZY|*$ 6>eS6n$w!]@4XD+Z˙E9_u\]DԱ (չgcw֔vA5iŦk#pD]Arr]L.g#>=2w@{<_%Ҝ(+1iwtA\Dl[DMRLұIiʒI¾ܰL'ߪs#}*m-fֈ`emoI[D_>TUlɉ4h#s`#N719Vʰqp,KR+Zѕo?Ct5EH?9xx?"/v'";]vrn|'[(zJzRLw /6׶h"u[oIPFK2##V jڈۅui;~s\z}3pG6D~إw~'{Vܩ#.76hinJ7Jjߛi#81sLݩ48nshj5"rm oLh|h#.U+0;Fm8v8&2HJ 1m[s]&sZ. “(7dž.3Ki%6AG5 ^v(,d<'̅I^<ǒu 4}f߿wӵysz\Cyy1QۏlT֛s$*ۈi|woo!(2,>h*7O5F,b7p,`PzNk_zi:Պ}0G4FOu5dlc7 7([*ˈ - )#g4K&/t {y'ކ='/#}ϑwDIENDB`mcu8051ide-1.4.7/icons/mcu/AT89LS52.png0000644000175000017500000000624412067167647017605 0ustar milleniummilleniumPNG  IHDR^sRGBPLTE3f3333f333ff3fffff3f3f̙3f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙333333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffffff3fffffff3fff̙ffff3fffff3f̙3333f33̙3ff3ffff̙f3f̙3f̙̙3f̙3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3fbbb^^^)&tRNS@fbKGDH pHYs  tIME 2^ IDATx] v >!7F>6&@oWu&AIVX: O $o/Q斜j*0pZbBtt$ϵ&Ε~XtI@FL\-UPmՒ;rodL2rH>g&35 9ˌrrM Nϙ-9 }Tl~r> d5WntN# Y?V\3;,#|ۅո|xW mn:)~$ ^] i u%8aO1P!"3eRvB:qSuf({zRkg=%7GOwmj_GS?4[@HÿPK=8sSI$iZ;pvUIM)"DMRf-2e R7͡S/rPY>@3K"C IR}%HN-4g}-dwv;JXȥt@o!wdY@@eFyJOsM3(*P'QCiK! n`3ʉ,4EeQ (::b@_$[ kj'f@6-)pjϖk~ڶhI 6sxTǍĈ9 dGP䓆dQ*=*'Axc.#p+<"tVb]m (""Ywk{$#H d-VvU3j#3Got<3 /?x^`#QWB_O MFk{{k{7߹u ElL)FbtA8yxc`ߌzx%)7y‡#ˍ* C](f#1mxaT3EH@e4rVO! uuit?ǚh㯂;w4³4"c'q%TuI>Ƌ4ꈃ}v .4ȿdնB7zIJ$EY&낥('>d@&Ij.~M x6C MX q:3r#⑃8gI<V@03G#㑎3P0+"ufȞ5^#=+d$)z#Sg9Hbsͯ>2nǝs\0 0bEp\1HxD@ K{yм $z=Fψ³j'Kpf4jl? {y:ۼ岜8M, Nn ^[$RxEH1³ <9MUxkiA3Ca=^S',<[<@fZZ?2tv?~-L^H.V{i|@ryZ\H3x$tр,T- =գzƘՒ8-<2 sxdY@dy!LՊI\Z 졬V]V>[ a\3#zS.CP+EY#@@N[/j)!3_B{%Zq2gΐz9'/ JS֮>?% {u>lᡜ0Rs%9ܻ&lIGIZpђ s!hky{(kC+%;sM ,Ң\z {Ub}e}ru;Tk0U) 9KJ^}/[E>]=ޛ#euo4RCU2i}VٳJ?r誹,Mݚyp!o\93̈́k޵n{ .~je=awц\sp hw]څ%2IZ@ @Ӱ} ¡M>#7T Є+~>lF[s<2f%mO[[4rX:ֱu88G[GIENDB`mcu8051ide-1.4.7/icons/mcu/T83C5102.png0000644000175000017500000000776412067167647017513 0ustar milleniummilleniumPNG  IHDR^sRGBPLTE3f3333f333ff3fffff3f3f̙3f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙333333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffffff3fffffff3fff̙ffff3fffff3f̙3333f33̙3ff3ffff̙f3f̙3f̙̙3f̙3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3fiiiZZZ,,,[[[zzz===NNNyyyLLL...VVVjjj?|tRNS@fbKGDH pHYs  tIME 1ko `IDATx] * u~'|Z*My:}NTW$,_q'5wDB? + mu@f~SnZ#E$ynOi?|q$9mA孅oG@W͟O /|_Hy5B(HYHnCnH>o $ܞ=gA!耔w:rϤ+f@O0ܵY$٪.%'[;4/ %;ϮHy|U^eDl h H, _JZ k) Yx {@FZ( tEkYf% hF̷^H9^B{3܎ŝ;w}Y֫Qaf=i$4FOŇ9hA/i6 ǵIO"ŒFg/ÒdW L d_vZh7\T}q*7D'MT7WgNڞHl}1/Z|a^I#B=.Yt n>ҵ[c~a͢jWT  j -²ۣc`q\xKyx@4QDns U%B9ҸQCԣ\J7ԥET1ixrȔۆCIQIqj|JՏZ7DFw@E %$fH(07hBAؐFcb `@QQ~=Q.0;4oiAe64Z#>i&HTZ3X5@Uk}FM>*Q]Ţ`S5Py>k~Z+J]U&ڪ(7&ѤNX*.N 5طkq# %s.%_t(QUv]k+2;-ԿZܽ(/$ЧWMoL(aJc#B|* <8"̃_̵(בF3_I%9zSMkR8'zrߘ:쭤ATI$g_뻑QՄAXf)b1G fVohZm1C-q fIk "n=MQ;[H$'gq$1 4ҸHcժRҸIcz%p?7)iƛy8@S~ [$0@&~_j׺Hᯓ K ilrb$Q++c 'Bi*/-*Q?^&#!4*YR.o@N/`נ?+: Im4B!iOpRd\=^-PE֚X2g]11FmDx<&8:oVoӵ.biH#+`o FBN#~74 gKVq(%ě8oa`I@0 gOkA@Jec[i>a?4}wS HG.;(Ni KR9-'DE2n[ zWJON!9rl~# l(n5Zs|4r0y*gҚkkELݕR@f+r"L#D8 D^e] p\K{ꀇN (J3Z++`{v(i;b^4Fi\ '(nO˵CX܅PSMk0|mrD]J@0 \[Qa ="SkϞx~E//=$ ne\k)@@lTE-%8b2rZp1`^|h>4:{I+Ѝ xhYEc$4jPI24X<6qv^;UQc-H8XzScGbI֖}r--ZңJħD ;&C ;žE ;Ʊ.{)=u-z!{@.s21"'53e/i6 ] 3Vhiji<KxɶsZpzH׶+iIf(rPat+cH"e漫Sd"͝x:dZ2; Ǒ'g+l lv}"[2nix VJ#~%$VKH D.nӤGDKeVL.XvyIב,SzaC3H#2(%s 5 iv ˱@wK$P~Z̓T17*yGq[e͵jRcim/)\K擁`Z}]eayj˱dzO sIsG;R{4H6[HcU!3%GßAnj<. p6@o2YP2n_NX3˾{*fs#AcUa\X{VMB&g*/*r6|Uě|dگU5_NXEFd~ļ@<_ ejMX:+B ή ~QoIYhՖ=՝8'?ⓤ1>OFzIȿ`GJ#@m8Z;஺nV'o`叶\s[5@Ҩ4%7& l^֛diHm@&#P\k]irmY"7@\(@@HsE}}uIcɫQ,] $*"wc=̍#* v6o WJ„Hk>%}6I^7N:dT2ioЏ~ \{cA|cyˡZ\`eVTMBoo'̶z+O b:q*77Ytr#m5 ~G;o#a ˵2_ood_k}:!"F;naٴisgShw4] HDlT^Cÿ_3 DT2w g=/h5g~App9Vf)L6FÑO]ky D n <ňMn_d w;1l"r 6q88k@e4`[C9078%cYr;1>:e;H ӗ '~kdF~}Q)T+YxG'p$ A>|y .t6߭}r'QJT/^h82]؊?so~U?Y.l'. DpX!Gi'˅;xLKXM$E;X~;z":#g45lcW3IE"u}q؍m@5/΢٦&RlxY)ؘ1n5n:4MsmG`=AwxĈ\gvF Ѫ%Tv[41W H>U#ug!cK9  6{s<$h[2쑀l 汬qxXY]AԐE#!>XH^ HYc dleG PfAF/#mcWAjfy%.dO`z O9@$ۈkyEtƑiڑ(,v+slJ k91[Gj*'sG]J:H۲|sX"&rT8z-A5|jI$2VsJp"FV@6IN4@ĬZك;X:X, wހ-p*Ϣ k"w_~%._06AS:8yi)Hkb%:D(G@LPt`eJHJY+DȺv"KURPTǀv,(xnA=ϮR@_C)y@4 C| k>02(܍Z{FF=b#iyj5&@Q%wQ{7mpNJ(edl {8 JօM)M; N^TMuWBieonЌq{Q鵀g0+jUo WЙ$ BL"eHZcBK ou^?Rp|x[-ڑSՖ4U 2Di#ioqAu-CO>n}K%%~$ї%Y[KecX ED^2o%tP$Vdg&E|iоZ/TKxĢgBQFi)4+8k0ƀ^،#O5;v YxY vNlN|=ܛjQjf=4ޞ%OǐWl;2|Z8mQgS]:>KIFC6I.U;łXsS /%h^ y=)AXdy6)| ͦx̖\k%9N: TMc;kZ zN~d@>N+&DQƔmʵ+TvA#iԯN=C`f=W*Q9CL#{qEt,۳(X;,6e^ +lEUeo!0 Ls)T%AMdx rG^A4 .|DHaF\CЩکEⵉt&A4v% v i=i| ^]o0t8x8U"jM??ԢkEvE]OCoits- $h`ZN),QЦ "@f dNB<0"ci?EbZ%+H6Ӹ" sx-Nl=MY@O5͐lY@NZY|*$ 6>eS6n$w!]@4XD+Z˙E9_u\]DԱ (չgcw֔vA5iŦk#pD]Arr]L.g#>=2w@{<_%Ҝ(+1iwtA\Dl[DMRLұIiʒI¾ܰL'ߪs#}*m-fֈ`emoI[D_>TUlɉ4h#s`#N719Vʰqp,KR+Zѕo?Ct5EH?9xx?"/v'";]vrn|'[(zJzRLw /6׶h"u[oIPFK2##V jڈۅui;~s\z}3pG6D~إw~'{Vܩ#.76hinJ7Jjߛi#81sLݩ48nshj5"rm oLh|h#.U+0;Fm8v8&2HJ 1m[s]&sZ. “(7dž.3Ki%6AG5 ^v(,d<'̅I^<ǒu 4}f߿wӵysz\Cyy1QۏlT֛s$*ۈi|woo!(2,>h*7O5F,b7p,`PzNk_zi:Պ}0G4FOu5dlc7 7([*ˈ - )#g4K&/t {y'ކ='/#}ϑwDIENDB`mcu8051ide-1.4.7/icons/mcu/AT80C52X2.png0000644000175000017500000001070212067167647017644 0ustar milleniummilleniumPNG  IHDR^sRGBPLTE3f3333f333ff3fffff3f3f̙3f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙333333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffffff3fffffff3fff̙ffff3fffff3f̙3333f33̙3ff3ffff̙f3f̙3f̙̙3f̙3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3fCCC>>>^^^tRNS@fbKGDH pHYs  tIME 00.IDATx] v: ~؏E>?dB+=(–~Zonecܒ~!nt1o(6G`p%>GVFD~V#ՈC_wFddDNͰLOLk:6 |D^aD,‚{w%H`;DUZS ν<₀6!ƴF afqs=§;2}{uLhجfR!8G&gr a7SFWTEv0MpawQPkzʜP4_T_XI%. PT$gdρU0cg C{EB3B4 c32h$2; atX>4_cp}?HnQllEu+[o9 `4ueTvHq{ * 8lȣ&!%]j7tD.v06׭ʙæwGĀ ShLsܔ8Gbw+IB(bJB^dpk]| !c5D%:]"bIZ2ǓG|DrBnS8*,(n?9ƻN""mFDE|:ǎՋTѪ~Ä@WVX\ߖBՒ_ %_|ȷ!DETiFFuz,! X _Ԟ8+ .%k͚GA0ST!ϐ=Q#$./I5.vOɹ v;OE=;_s<;2YI~(#9z㉩k4C52I?!]ˠ=<Γ!{ԣ1Z~9*Sҩn+?8;o欐M5ncB(VoSgU^Z8!O%ZO{6;;+)K7rDIbrEJxU$xcAwEsJ}SWuYw;!-![ X| PNڑM1sZvw O `(7+'h(EMH`+p YnCV&+%3$Z#b>s-"tAF&cS[9M3?DW*1\xĖpaQčw!dmj zg_(_K ^fL ѱ6ʿ hQsr^,6Y ]@t!ZݡE#o@VP݇ b^i.Z1CZ]z@ȸfi)~^+[s7~4axĭ~1@\'qQv 5yNg68+ND 4[T`7#L+2d-2"|s=a`ʭhY@%7 3Qݡs@2*x؂5P\c%CU8j¦,ռ G;VJNlU8f?b!]ĉm"Kǡk<W t!DHX󈚔?{ΎD:y~%hULs(4NjiB<ufg8"Ꜭd!^(dڀ*Qל8#V*!o+͛IC_^vNc4~)swW6>9^CIdq#9n?aZ4.[ߟՄmj6;ju+[bMYi/uף724 oMrQob;mGug)*,u?6*m/N~dיjRqVuҘ2;yG:^-g:)㠡#tq~$ u 9kJEJު+ZFw-.);9U@ 4ɛ{?E،H\GLw-YsЈ;OK 4vv;acɲuGQ]P.CRc9>)DGߨ-!K0Gh~ %{-\|-ZFKmW5Rpq,$o֗c%;.1{In-]?r¡-[׶cY@~MqJIENDB`mcu8051ide-1.4.7/icons/mcu/87C54.png0000644000175000017500000000740112067167647017220 0ustar milleniummilleniumPNG  IHDR^sRGBPLTE3f3333f333ff3fffff3f3f̙3f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙333333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffffff3fffffff3fff̙ffff3fffff3f̙3333f33̙3ff3ffff̙f3f̙3f̙̙3f̙3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3fFFFWWW999(((iiiqqqRRR>>>777%%%hhhZtRNS@fbKGDH pHYs  tIME 3&3 mIDATxz8 u>%ٖư;i76~$ 7ȓ k~pM__l$k~!@ 獎9׿͐e2gj3@gl*lb/t xKTLoH'6G; FzGKtNP~a^g x?Qae1fuʬ瀒UёN~!PHM5d6oBi 2!zUeoq/u#ː71T(})2=#/ccs(LұDmV:כH`;zIk?LؿC2CН'GF!{띎e!FpCDY7-u [G'pKIőeŁ$PqDOTbLDrD DQ'y 1 +TtsvtD;V g+DEy3s"QC㓁{C3/O ٯKU@,CYmϚN@lC Į\&. NV8nTBF!gL50W8p 1@$<"f@@d">]@\tXr[BI !θ&A0 z.1}3#7h>D7@ 1:@D[@Tq~ D !StHeD @$e{9bּ+;V@L;xT?asq%z+4r iKhd bZ GdU+ٳBE5bRw6MVg.٨bʀYM"0bli~PH+x Oо KXw(\x#@ Dߚ D@$g0LgjDUz+@xE07 %^Bl""{)DO+*%@2zD' j1g1UMqM eΣPT3+Ⱥ5D_iZQMr q 9D?jBe}K&<{;)Dd@- .1CКO!>9X VO)@DT)D-Hy!)4Zo:^a=9GeN>,2슐iEya @LՐGoM`"؎T^Ch濾$a4!ősĺex Oڪ* QL@A!ZWgs,,C5y{>uѐu@:D+ė^GC"rXk6ZuX~!j!S폕&m 8jhhy}"\!!]5DŊ鴻7[H rȔB$PA^Qa~;|jeШ M]yE}G_*!(/Ovmɑ(Zh΀(d^+Dn:]/3#@D;ke#nadtV0qC5Qp:-vaMEqEܐ+ yTxUVym*S5xPFeŐ) |([b{<} bAj3pSہhq-FbTtĜCb0dAe"j1_u( x!(D&*fHobgDRD0UVIShy!>'kHyE7yBoH!. ~tb Qz"@9GTXJxO嗞%)K̀h{(D*x!rv V2ؐ tj&eMQIZwg>L!"H84)کySnġ9r2uNhHW b3Q)"q{ ġv hܰ8L(d*Y!Zql-f݀H2{T)ܔp8me" b !دZdDqi )@,8|CQ2e(? 1b{o B҆Lq7dZvR4#dp-Q*Nz:d 1wq ʨ\$p2-@W/LO9C4J(Z չ^TTC)b1IB P jSNBr" bQ*٘Z R4Q!R"B ##e^+Dbx' \e y@D G rsXcTV 3IQ%[ 6%$= j"=X8_sHq.Y!4m;ѸZC 6d[eoк9 ( " 2ŌVnL8p"zUl @!S_J i~G~bxM̆&r;Ɛ^!yaL2vL8cZD&dxCl5rh<>8wQ*)LDQ*M,^ʷ_y"st"7zXC^О9!v㮃B~.@CL'rѐ^-7Vʬ'@!R2=0bsxi2qс8y>>^^^tRNS@fbKGDH pHYs  tIME 00.IDATx] v: ~؏E>?dB+=(–~Zonecܒ~!nt1o(6G`p%>GVFD~V#ՈC_wFddDNͰLOLk:6 |D^aD,‚{w%H`;DUZS ν<₀6!ƴF afqs=§;2}{uLhجfR!8G&gr a7SFWTEv0MpawQPkzʜP4_T_XI%. PT$gdρU0cg C{EB3B4 c32h$2; atX>4_cp}?HnQllEu+[o9 `4ueTvHq{ * 8lȣ&!%]j7tD.v06׭ʙæwGĀ ShLsܔ8Gbw+IB(bJB^dpk]| !c5D%:]"bIZ2ǓG|DrBnS8*,(n?9ƻN""mFDE|:ǎՋTѪ~Ä@WVX\ߖBՒ_ %_|ȷ!DETiFFuz,! X _Ԟ8+ .%k͚GA0ST!ϐ=Q#$./I5.vOɹ v;OE=;_s<;2YI~(#9z㉩k4C52I?!]ˠ=<Γ!{ԣ1Z~9*Sҩn+?8;o欐M5ncB(VoSgU^Z8!O%ZO{6;;+)K7rDIbrEJxU$xcAwEsJ}SWuYw;!-![ X| PNڑM1sZvw O `(7+'h(EMH`+p YnCV&+%3$Z#b>s-"tAF&cS[9M3?DW*1\xĖpaQčw!dmj zg_(_K ^fL ѱ6ʿ hQsr^,6Y ]@t!ZݡE#o@VP݇ b^i.Z1CZ]z@ȸfi)~^+[s7~4axĭ~1@\'qQv 5yNg68+ND 4[T`7#L+2d-2"|s=a`ʭhY@%7 3Qݡs@2*x؂5P\c%CU8j¦,ռ G;VJNlU8f?b!]ĉm"Kǡk<W t!DHX󈚔?{ΎD:y~%hULs(4NjiB<ufg8"Ꜭd!^(dڀ*Qל8#V*!o+͛IC_^vNc4~)swW6>9^CIdq#9n?aZ4.[ߟՄmj6;ju+[bMYi/uף724 oMrQob;mGug)*,u?6*m/N~dיjRqVuҘ2;yG:^-g:)㠡#tq~$ u 9kJEJު+ZFw-.);9U@ 4ɛ{?E،H\GLw-YsЈ;OK 4vv;acɲuGQ]P.CRc9>)DGߨ-!K0Gh~ %{-\|-ZFKmW5Rpq,$o֗c%;.1{In-]?r¡-[׶cY@~MqJIENDB`mcu8051ide-1.4.7/icons/mcu/AT89C51.png0000644000175000017500000000713612067167647017451 0ustar milleniummilleniumPNG  IHDR^sRGBPLTE3f3333f333ff3fffff3f3f̙3f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙333333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffffff3fffffff3fff̙ffff3fffff3f̙3333f33̙3ff3ffff̙f3f̙3f̙̙3f̙3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3fyyywwwuuuՁ񨨨~CitRNS@fbKGDH pHYs  tIME 2(D2 IDATx] v( a?ڏE0`8-88kӠtk D'ZDCF^0}ΊqŇ>Hij˦"Bt"A8q]0 ]̘>sZɧcw|]"Z=i#"J>I΄>}ﺕZÀtSĒs2=D%}"LX*#;Їi_m%|8ByC?m!Lo qXঙ(/ 94;n2uD`4, }X:q:t#/ %{bd#ab:#؈۞4mH*<@eC@Mch./3R|wu7.ҒQavϑ1҄ `sn30wM*n-th=:#bd1y+"Zӑ}M`89q 6ldЫi-v`^Sͨa U:kK$Gy8#{}~޶M$0"8䣥ϊʏ-oH[i ^I< Gj d~ ~|xjc[c8H(PrODG lk C9q$CAF;Ĕ8c^د# G# yZv[^7 59"ǁY Sn?-h~W@j"7k<2FT[DGhJvp$,r #rYw #"o*{&‘#zա:Bdk2rwǑHW~8E!o-W/vHem#fƓ}+jrVwP4aT*(8GGl)1zM#\6p]8 kjJz:v!đ~#?#F{#vpDO E,ɘ|ͧGՌߩt~115\gGӪpxF*)hGdbd1Y1Fod׫~Wd:o/uOBD%M'p{)4=p]F$wGB%_@G|_0_ku~iT#dDN}A9P WN$jMhQ:NR׌KYiy1}2}cL~l]-Ftw[o_1 x̻V3E-]X|v FdfT]^!(kׅ5:\*Ϯ[KcVqIV7b Z豒tġ.;AʽsXdC.,m[sy'PaP^n{4[Mjɔ\`toQRo_3oMDlHa &RwkzVƏusWnFs[tpD]II:'Z={[{$hlN*Q= I(hO aȷYø^g[56CDnd ߤ\AXG3⽎N鏎 ؖ761Z+wؤ['닼IC\ݕ͇¼eBz[FO Wꚯe ܼiw[4H3qsZaõEK?C_\c5Xc5xr_ IENDB`mcu8051ide-1.4.7/icons/mcu/AT87C52X2.png0000644000175000017500000001070212067167647017653 0ustar milleniummilleniumPNG  IHDR^sRGBPLTE3f3333f333ff3fffff3f3f̙3f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙333333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffffff3fffffff3fff̙ffff3fffff3f̙3333f33̙3ff3ffff̙f3f̙3f̙̙3f̙3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3fCCC>>>^^^tRNS@fbKGDH pHYs  tIME 00.IDATx] v: ~؏E>?dB+=(–~Zonecܒ~!nt1o(6G`p%>GVFD~V#ՈC_wFddDNͰLOLk:6 |D^aD,‚{w%H`;DUZS ν<₀6!ƴF afqs=§;2}{uLhجfR!8G&gr a7SFWTEv0MpawQPkzʜP4_T_XI%. PT$gdρU0cg C{EB3B4 c32h$2; atX>4_cp}?HnQllEu+[o9 `4ueTvHq{ * 8lȣ&!%]j7tD.v06׭ʙæwGĀ ShLsܔ8Gbw+IB(bJB^dpk]| !c5D%:]"bIZ2ǓG|DrBnS8*,(n?9ƻN""mFDE|:ǎՋTѪ~Ä@WVX\ߖBՒ_ %_|ȷ!DETiFFuz,! X _Ԟ8+ .%k͚GA0ST!ϐ=Q#$./I5.vOɹ v;OE=;_s<;2YI~(#9z㉩k4C52I?!]ˠ=<Γ!{ԣ1Z~9*Sҩn+?8;o欐M5ncB(VoSgU^Z8!O%ZO{6;;+)K7rDIbrEJxU$xcAwEsJ}SWuYw;!-![ X| PNڑM1sZvw O `(7+'h(EMH`+p YnCV&+%3$Z#b>s-"tAF&cS[9M3?DW*1\xĖpaQčw!dmj zg_(_K ^fL ѱ6ʿ hQsr^,6Y ]@t!ZݡE#o@VP݇ b^i.Z1CZ]z@ȸfi)~^+[s7~4axĭ~1@\'qQv 5yNg68+ND 4[T`7#L+2d-2"|s=a`ʭhY@%7 3Qݡs@2*x؂5P\c%CU8j¦,ռ G;VJNlU8f?b!]ĉm"Kǡk<W t!DHX󈚔?{ΎD:y~%hULs(4NjiB<ufg8"Ꜭd!^(dڀ*Qל8#V*!o+͛IC_^vNc4~)swW6>9^CIdq#9n?aZ4.[ߟՄmj6;ju+[bMYi/uף724 oMrQob;mGug)*,u?6*m/N~dיjRqVuҘ2;yG:^-g:)㠡#tq~$ u 9kJEJު+ZFw-.);9U@ 4ɛ{?E،H\GLw-YsЈ;OK 4vv;acɲuGQ]P.CRc9>)DGߨ-!K0Gh~ %{-\|-ZFKmW5Rpq,$o֗c%;.1{In-]?r¡-[׶cY@~MqJIENDB`mcu8051ide-1.4.7/icons/mcu/80C52.png0000644000175000017500000000740112067167647017207 0ustar milleniummilleniumPNG  IHDR^sRGBPLTE3f3333f333ff3fffff3f3f̙3f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙333333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffffff3fffffff3fff̙ffff3fffff3f̙3333f33̙3ff3ffff̙f3f̙3f̙̙3f̙3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3fFFFWWW999(((iiiqqqRRR>>>777%%%hhhZtRNS@fbKGDH pHYs  tIME 3&3 mIDATxz8 u>%ٖư;i76~$ 7ȓ k~pM__l$k~!@ 獎9׿͐e2gj3@gl*lb/t xKTLoH'6G; FzGKtNP~a^g x?Qae1fuʬ瀒UёN~!PHM5d6oBi 2!zUeoq/u#ː71T(})2=#/ccs(LұDmV:כH`;zIk?LؿC2CН'GF!{띎e!FpCDY7-u [G'pKIőeŁ$PqDOTbLDrD DQ'y 1 +TtsvtD;V g+DEy3s"QC㓁{C3/O ٯKU@,CYmϚN@lC Į\&. NV8nTBF!gL50W8p 1@$<"f@@d">]@\tXr[BI !θ&A0 z.1}3#7h>D7@ 1:@D[@Tq~ D !StHeD @$e{9bּ+;V@L;xT?asq%z+4r iKhd bZ GdU+ٳBE5bRw6MVg.٨bʀYM"0bli~PH+x Oо KXw(\x#@ Dߚ D@$g0LgjDUz+@xE07 %^Bl""{)DO+*%@2zD' j1g1UMqM eΣPT3+Ⱥ5D_iZQMr q 9D?jBe}K&<{;)Dd@- .1CКO!>9X VO)@DT)D-Hy!)4Zo:^a=9GeN>,2슐iEya @LՐGoM`"؎T^Ch濾$a4!ősĺex Oڪ* QL@A!ZWgs,,C5y{>uѐu@:D+ė^GC"rXk6ZuX~!j!S폕&m 8jhhy}"\!!]5DŊ鴻7[H rȔB$PA^Qa~;|jeШ M]yE}G_*!(/Ovmɑ(Zh΀(d^+Dn:]/3#@D;ke#nadtV0qC5Qp:-vaMEqEܐ+ yTxUVym*S5xPFeŐ) |([b{<} bAj3pSہhq-FbTtĜCb0dAe"j1_u( x!(D&*fHobgDRD0UVIShy!>'kHyE7yBoH!. ~tb Qz"@9GTXJxO嗞%)K̀h{(D*x!rv V2ؐ tj&eMQIZwg>L!"H84)کySnġ9r2uNhHW b3Q)"q{ ġv hܰ8L(d*Y!Zql-f݀H2{T)ܔp8me" b !دZdDqi )@,8|CQ2e(? 1b{o B҆Lq7dZvR4#dp-Q*Nz:d 1wq ʨ\$p2-@W/LO9C4J(Z չ^TTC)b1IB P jSNBr" bQ*٘Z R4Q!R"B ##e^+Dbx' \e y@D G rsXcTV 3IQ%[ 6%$= j"=X8_sHq.Y!4m;ѸZC 6d[eoк9 ( " 2ŌVnL8p"zUl @!S_J i~G~bxM̆&r;Ɛ^!yaL2vL8cZD&dxCl5rh<>8wQ*)LDQ*M,^ʷ_y"st"7zXC^О9!v㮃B~.@CL'rѐ^-7Vʬ'@!R2=0bsxi2qс8y>~~}~liieccROO>;<ζEG$tRNS@fbKGDH pHYs  tIME 1a]CIDATx]]z: ~XLI!OZ }:;زl 3௓i#uts׸5qk\׸5Ύi5P|~DVVoU?ӇS cq4,p90mWY¿l~  Aj@)c1¼нcAe_"9^.8@ >ޒ7&MDI8Nk,8MBi.EoA( HoY)kN{ZN߀R}nqM~WuIa$[u[ÛjG #Thߚa ^ nE5LiayXMwƑjD`={bwl j>_HT8p kjpyc|/iF~ʣr|̰ GYD~ ? A1}:n9|GƑ ܼ`ڋE`Q6^6ck$/UH+uPS0'82Um3ڮyb<²ἯFjGZ֚:Ybp^xUr oq$Z,vf_Ov+J$0Ettr([Am ETJG8 B.#(qmd\#;Fdt&J`^dppԊzJpc#05zazOP烛Oi-]q/A#:Ut̄b2zԅ.ۥc(#\H&Hhz@O9%#l\QZ3}K=d^gG҇~JHS2>?‘f=q-sS,~n#B׾02: ̑Xߋ#;)‘B2TS G:"-A2LàB`3u8m'޲LjbpY'"tk|u |đ2>dp$9 tPqbpdGކ#Wy%tL'1@߯UytÉL'vN<+6 y',##'( P0Wqsq$4C2>I|FDij1ukhPik)xij_LuYاq9<Ǧ & ->3Ż-֔b<:a+wHpad-&,nM@&`J `hvЩs~3AZ~:@LJܵڽzM0+iuV€[JΞ.FpU kYAPXGxE+M.Tij忘@YPɼ왲;$d{.]`=%^iXHIT )wM1VM^?)D D9g*(VaA2XWA&\2?Ieכ(IZ/oqSaxp&[+y{kty+;ꋅz#L9W8N8 *Ѹ,yןeqɺLZ5(AiRKxLqPQv9S38rEj-$N/*O$?fdG0^ ~Y Ygh\8 Dh;~Y[+Ԋ1WQ5'K+]lZ#Ko|f\|/Vcx ~Ԥ$R0ޒ3g#U1M(Z SK#."#8ٍ-H$ƋLDx]X-.81| 7QDnO}bZDÂ%RcJh2&;FDn%E܁m^? T-kkGRUc4&i&jySUo :жTo0A|( lIlhnlmjKQPg;oY ldzGH=s\bgJE|$Gs|8^*dmHt*Vo  f),[A2 +l6 $ŭg"n P8"W#,!Ԋ8k@ >RR1mgΦ‘G·2gsG0<|d}&2g_8~AVRyQNUap$x6ʉv\xfݨH<# ŏ=x 9jg5UՉgag#q9qD06#Z8b 'Oja EAj؂JX7DV\uT&;gCsA@#[xC=]~i+jOZGNP>ݜL(73Q!I~~ G"<;V[C.*|L lYő*[|C4EG"[?D5#8-Ȧ̉gO q2O  U-Yx:tĿy?XdGbdp*#| yC?+8NzxOZ].Tk Y~:}K5$L}05MU82Z,;7Z91lBP%Oܖ ]I4#(u2Bq ;.GHqډgGB3o|e#XiWx6ڊJ-)8{ËB j*2K|d; $ BNmMWslvP>Rz>".:,Ziߨ:_-)mtd&C9uhԂ솜Yfw0 %3;:B$iHR.#;[W)12S4۱wĒL\9ZjWa/s]_z%`bG9~a#]bjpSuzii\C1ԳI mH~V)\=s Ggk- !izܺ@|W+'QN8"MȐi&>0P<5iH-0,e F#Sij57a{d-EglԚ.욏k0LaV,ś#M:@s-?y# &QsTI8kԳok7zfӱ&$ifa>g:qELΙ\]!&WhkS"1G ArYg900"s>4#_F~C]׸5qk\q%_6{IENDB`mcu8051ide-1.4.7/icons/mcu/80C31.png0000644000175000017500000000740112067167647017204 0ustar milleniummilleniumPNG  IHDR^sRGBPLTE3f3333f333ff3fffff3f3f̙3f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙333333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffffff3fffffff3fff̙ffff3fffff3f̙3333f33̙3ff3ffff̙f3f̙3f̙̙3f̙3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3fFFFWWW999(((iiiqqqRRR>>>777%%%hhhZtRNS@fbKGDH pHYs  tIME 3&3 mIDATxz8 u>%ٖư;i76~$ 7ȓ k~pM__l$k~!@ 獎9׿͐e2gj3@gl*lb/t xKTLoH'6G; FzGKtNP~a^g x?Qae1fuʬ瀒UёN~!PHM5d6oBi 2!zUeoq/u#ː71T(})2=#/ccs(LұDmV:כH`;zIk?LؿC2CН'GF!{띎e!FpCDY7-u [G'pKIőeŁ$PqDOTbLDrD DQ'y 1 +TtsvtD;V g+DEy3s"QC㓁{C3/O ٯKU@,CYmϚN@lC Į\&. NV8nTBF!gL50W8p 1@$<"f@@d">]@\tXr[BI !θ&A0 z.1}3#7h>D7@ 1:@D[@Tq~ D !StHeD @$e{9bּ+;V@L;xT?asq%z+4r iKhd bZ GdU+ٳBE5bRw6MVg.٨bʀYM"0bli~PH+x Oо KXw(\x#@ Dߚ D@$g0LgjDUz+@xE07 %^Bl""{)DO+*%@2zD' j1g1UMqM eΣPT3+Ⱥ5D_iZQMr q 9D?jBe}K&<{;)Dd@- .1CКO!>9X VO)@DT)D-Hy!)4Zo:^a=9GeN>,2슐iEya @LՐGoM`"؎T^Ch濾$a4!ősĺex Oڪ* QL@A!ZWgs,,C5y{>uѐu@:D+ė^GC"rXk6ZuX~!j!S폕&m 8jhhy}"\!!]5DŊ鴻7[H rȔB$PA^Qa~;|jeШ M]yE}G_*!(/Ovmɑ(Zh΀(d^+Dn:]/3#@D;ke#nadtV0qC5Qp:-vaMEqEܐ+ yTxUVym*S5xPFeŐ) |([b{<} bAj3pSہhq-FbTtĜCb0dAe"j1_u( x!(D&*fHobgDRD0UVIShy!>'kHyE7yBoH!. ~tb Qz"@9GTXJxO嗞%)K̀h{(D*x!rv V2ؐ tj&eMQIZwg>L!"H84)کySnġ9r2uNhHW b3Q)"q{ ġv hܰ8L(d*Y!Zql-f݀H2{T)ܔp8me" b !دZdDqi )@,8|CQ2e(? 1b{o B҆Lq7dZvR4#dp-Q*Nz:d 1wq ʨ\$p2-@W/LO9C4J(Z չ^TTC)b1IB P jSNBr" bQ*٘Z R4Q!R"B ##e^+Dbx' \e y@D G rsXcTV 3IQ%[ 6%$= j"=X8_sHq.Y!4m;ѸZC 6d[eoк9 ( " 2ŌVnL8p"zUl @!S_J i~G~bxM̆&r;Ɛ^!yaL2vL8cZD&dxCl5rh<>8wQ*)LDQ*M,^ʷ_y"st"7zXC^О9!v㮃B~.@CL'rѐ^-7Vʬ'@!R2=0bsxi2qс8yo $ܞ=gA!耔w:rϤ+f@O0ܵY$٪.%'[;4/ %;ϮHy|U^eDl h H, _JZ k) Yx {@FZ( tEkYf% hF̷^H9^B{3܎ŝ;w}Y֫Qaf=i$4FOŇ9hA/i6 ǵIO"ŒFg/ÒdW L d_vZh7\T}q*7D'MT7WgNڞHl}1/Z|a^I#B=.Yt n>ҵ[c~a͢jWT  j -²ۣc`q\xKyx@4QDns U%B9ҸQCԣ\J7ԥET1ixrȔۆCIQIqj|JՏZ7DFw@E %$fH(07hBAؐFcb `@QQ~=Q.0;4oiAe64Z#>i&HTZ3X5@Uk}FM>*Q]Ţ`S5Py>k~Z+J]U&ڪ(7&ѤNX*.N 5طkq# %s.%_t(QUv]k+2;-ԿZܽ(/$ЧWMoL(aJc#B|* <8"̃_̵(בF3_I%9zSMkR8'zrߘ:쭤ATI$g_뻑QՄAXf)b1G fVohZm1C-q fIk "n=MQ;[H$'gq$1 4ҸHcժRҸIcz%p?7)iƛy8@S~ [$0@&~_j׺Hᯓ K ilrb$Q++c 'Bi*/-*Q?^&#!4*YR.o@N/`נ?+: Im4B!iOpRd\=^-PE֚X2g]11FmDx<&8:oVoӵ.biH#+`o FBN#~74 gKVq(%ě8oa`I@0 gOkA@Jec[i>a?4}wS HG.;(Ni KR9-'DE2n[ zWJON!9rl~# l(n5Zs|4r0y*gҚkkELݕR@f+r"L#D8 D^e] p\K{ꀇN (J3Z++`{v(i;b^4Fi\ '(nO˵CX܅PSMk0|mrD]J@0 \[Qa ="SkϞx~E//=$ ne\k)@@lTE-%8b2rZp1`^|h>4:{I+Ѝ xhYEc$4jPI24X<6qv^;UQc-H8XzScGbI֖}r--ZңJħD ;&C ;žE ;Ʊ.{)=u-z!{@.s21"'53e/i6 ] 3Vhiji<KxɶsZpzH׶+iIf(rPat+cH"e漫Sd"͝x:dZ2; Ǒ'g+l lv}"[2nix VJ#~%$VKH D.nӤGDKeVL.XvyIב,SzaC3H#2(%s 5 iv ˱@wK$P~Z̓T17*yGq[e͵jRcim/)\K擁`Z}]eayj˱dzO sIsG;R{4H6[HcU!3%GßAnj<. p6@o2YP2n_NX3˾{*fs#AcUa\X{VMB&g*/*r6|Uě|dگU5_NXEFd~ļ@<_ ejMX:+B ή ~QoIYhՖ=՝8'?ⓤ1>OFzIȿ`GJ#@m8Z;஺nV'o`叶\s[5@Ҩ4%7& l^֛diHm@&#P\k]irmY"7@\(@@HsE}}uIcɫQ,] $*"wc=̍#* Dg "z=dӏIAw4. B$E=T ߲pwRG(O D9iD# 2HÌ*gU-Ȥ\Sc@+P|/mM"sdE"x'#'GǢhbE DAt` /mĢȻ@;vяg x>?e840qxP3,)xb@wHrLcM|`5"矤>k#P̚)jKDi M%0HlP8=iv᳓ 50g^ȑ K3 R_YK) _@LҹkPEENsA,5_X~[D9wm{r WNZ\ruYEQ{t4s|XGEG:(KdW{.!ʾ6q?Ψ@T&j:Y&0qD1m!JnxLb#+ b0D!:KF>{t@#rWja|e8`|!v3K}oxr+p di5HuZaMxZ,Bڙl9{q20MnŘj#9ܯX 0>__Բ.ﵤ짏3oß Weuni2oNrjXK^ vR(}J\a|`76~|m~n<ά;~C]b@̨IZt[ r;6B gQT/hZUKwW{\us;!dޗVABs׵q&jx B^ZēؽR02[!Z| 9S$A4vvt+$vGƴ 5z$v?o*だ4K=E ..9%q ŧ& P tCG>o~ ([WO o0>K )Cjd*ZgVr6hRr8*~C4YBX')ZlsƢsZF_-B&ˣؙl'NRYamt >7C\wze/oώAܯ*63e8k:VsTa| J)t֒,-b-u' gzRiA5 Gهj9{Zn0X H<ڀ%+?Z樲oT_>|˸L.D\|ZrߢbGPDQ0sVh_=kQ(m19+EpyW&\a:w?F0Ԣ"kqE>6¦njK jT:iV% Fqh룚a1(9Zb DG>}yT9_&!0`1>a|(I")O8j,Rt[C#w@&ZޮƑ +>aQ/:aJ B+1'Hl?IIIy+ntO:~$Ii)%zRU 亦oozغAmZsש@aUQBfa{ oOi81H$)kӍ @4gfR-tܑA>0MQl'莄oR#͇~ǴTzEz dkAC,Y T7K7wo4F)N40& U_6\k,ʣUu:3GGЅ`l &껧}cw~h̓H-aˆr6$Fy tGM'CsЙ%rؚ):w?$*KT*1Ww俄 &BgGٖCyI18-{3_+3I'✔Y|p3Ա偄įK\6ȟY_"r課lpcyIPuK:5A^U0j5PVzUX)f̾߻5YX/bWK ^UrATRUGЪp]0-/`9El-CfSvv[lRzեWb+g]Z^)`m)SԱđ lV"9wDf|un~iGjDҞq[Yd~cFoџ뫖X>xj*{{oRq4wIENDB`mcu8051ide-1.4.7/icons/mcu/87C52X2.png0000644000175000017500000001543112067167647017432 0ustar milleniummilleniumPNG  IHDRQfsRGBbKGD̿ pHYs  tIME - b}IDATx]kz* =)kk5Yk!;vR fCt~CS~Ub[QTT rL[tETIPh=Mghe$*Ztd1q*cK+ 0^(7e$-w6?SjZqhi!7exHQ#w+% ܼYXF&ܼ  5RQq[ghQ(`0mDEE)zz~1RFA!/7yLH]ZZWy!d0I~ͮZH. Z _" 2&Y DnQnT:dܦӄY*F7#x/Hyw&{@sb X1,T 2օ ŁbլgUޓ~VY;cO/Ѳny<5UAU&=٦HŊk[.IsI$ZtnHB^@XaT dAo)c-s:to 3%~%A cA2L??)x!5-y2e? (Qׯڱ˃T'1#&d=qA`P)U\.$K+P3* 4L A*.!*DAqMP@{)Z&l؛H0P| kQ hT0R[ݢ\]T (mEK>N& Hg Z R&\(aX|,w8L0 T}C3U zqΈVTT@ƢJ7_uV'ABZzU^6$򋕰^uCoϲľF)'OO.S47뉷=q fCoVl{2ռ#tg=6j Ե xE. 8rW= 4̣R{̿Tw-L]4U 3OvTo\#CVc[C:(̞.2o Li:!U][™It,]?g-c^`R]&+Z&j5$r4.1CEF&YXX6{dV`/T#$b %bK\zߊ@)$T: {FT=8*NdRp MMM6lyb"N{Ʒ:! |w;IEIڙ)X&LTXH̪qv#<硺mw`kYK=a\ٌ[ٹjΫyqru{a)kb4+IgWp? mҶF4% _7?ݷ㮨,RUaai4wx=4-tBt݌{8u毒cG폛yL#ot[%7DF6nߵS `q)1rԖjxImpL1 *@x$7i={m9&x҆o̽5BG[alTl"xG[*GWݎlGn=6ɲ'}v4y=~<][>]?k9 ҡ3#?|';$c1nщ^̶>] 0U% {cÆcDyL:V:&}Ni3mZ |'dEbkY^$3kwvf*KQ4"YMgM(+14ո&ùf?4 Y+[b2f 2/Qu=)oLSƙ;S5j4 ʢ&FUeGc]N{>3]t'\cGV@x . abIi!E(u XԳ?T@KEȿ5t=Ғ\\knyfH/I( GIqĹܦ9yTB$׿FgclI&]/bhzwP20xm ЎqIh>M'zUpۺ.j^,\3U&Q K}< > h"x~k{BDrSQ+h|U`$$%Yא8y(_!6d-UHJMcHzDrd63y S`%_CN.Y_n1udU~IbT9Abo'gҸs-5wy˗f-U0V5:i@M>hRCq&QLބUn\0V" 6FgF] Kuֽ+ӎ+,.-tIrUL,2I5^FV . k1tCT"j gnʐAlLM6 !gEZ>`1`xf,X YE2TPb2;ߏqyiW9 */1߭D0Vߏ,CNA6|Uu9bӢS^hVˊ9kOQ u ̈́[T*SzDrPCB7'J-l]Sޜ˷g% R=k횽RM_b{&Ǒ!8oMKMi\gԓI,e0qs]\Fj-nuyG w8!]vY]/~$nneLxo,E)mJt#~$ᧅqE=n7o.܄T{Αm3h|U^er0^yUCՁ>&k&?>Gd*(e6ř)*41tP KS aM;bOH7O8P=b=ssPc(SֽTZ,2yv!᷽Ѕ3*jx- qP-"87K$V䆹6 o (Wt>em7w^5?mS}Qj؊vH*(~vk;4gisR \S\t<W#LBgNaW iQGo`D`86랾0h _Z>g]qܘV ?ݷתbu_c]V5{pX&;l|ߍݟEƻ>23f~MP,zsQ.7/b߽&Jh=%tU" VO =[5oVLJpݫ gS[&ji"qiQe! VO*{QRβCp~3J2 3sڂhαFV-FhOcFݞ/wzHtڻ'Z3`B?-Pr b\>W~ɄP1<uKͽ}oƩ+ni(RC,=+OSL5Rƭ ]9<^'-7o6/KH?-}jNjZ6W%T⚓odջ_)`l#ٿ[#Q_!_Xc$++вIA[X -7Id=4ROZVY0_g&؋ghn$MIB'aCݱ$_H],#'X1P0+))F+:ΦHJ>[jK&8il4`Zш"d;r9jRIp2b]Ree3]3Ie!RfN5\ܗ#6c1 gAwEV{ŧ*}Hc+%R1>TC[|9 nw -jNWsmy}$+?1 n[2FߘhKLADE$a3OȞVeÑ.,'%c{=_֪s,VG :0ww/z{g \|E~բ6r>VRch2Ycl㪖O=S;;ߪM+|DS Yծδ͗h.zB"eyq`y%7&`e"|YDD_{dU`&Ty} ]0陳gL&g *5z5j,ÈElR?c9?OG匐1-E/hOX ZwX ws,I|̾/o+f^A9aΜ}zEjIosHYTK#IU,vn+rb)ޓ^I &PBU|SRB> YZ뉔-;/52)X8;"=b1Zx?_ e`D:>ٷw|R]G9'rgS-en+jֵ=6qժ)͚[W6фk%XVukČzH.߯ D/W?D Q۶)Fz5Xus+--s >Hל'Pn ]mQ&9b]-tITHDeǾ$M{ESo7U;,jU0zB֙rx@d>RmhYݚJoqѣm~vfE`W)I(<5s?ԫ<+M-s$=A\9/dI67e y/!SߤÄ kb1\cTJXJKg`F=C%:޻gKi|#k=!\LuH䥁%ł'q,|pxtJ0RԟV?G#Fz)s8n=HML-|黭[ -Vbyy:8w 8֕~:|_ t0,-ix.6ΟNأN=aa;5cii;]ݏz9EZ RSzϢ@Tk^7{I=GhxZ\ot_ תF(r1U}iR?IuǻUκqqy>F7y{\6HՐ1H[ePosiw{zy)qttA r=EVW/Ad=d Ve_=Ry4A :VM̵0(Mؖ-,FIt$Eq :Gv={V9?ܽ' z MR6=_\'H+] *-*t\hՋ7PLv&%V\lsK$TE,]ꅺtzgEɦrG2I),EP)NOLI0-n#E _o(j4jwzˤDSprH5wmì] pH} p/W~OTjAɱIAjriPSKMK(HG0eR2,"yċn^Uj}dftVP<[O =\}]<`ȇ}y u*[e:.)V^Pnn؀PqIENDB`mcu8051ide-1.4.7/icons/mcu/TS87C58X2.png0000644000175000017500000001043412067167647017705 0ustar milleniummilleniumPNG  IHDR^sRGBPLTE3f3333f333ff3fffff3f3f̙3f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙333333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffffff3fffffff3fff̙ffff3fffff3f̙3333f33̙3ff3ffff̙f3f̙3f̙̙3f̙3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3f9tRNS@fbKGDH pHYs  tIME 24E^} IDATx] v: ~؏EN6i'9-BjaIWR>v6o WJ„Hk>%}6I^7N:dT2ioЏ~ \{cA|cyˡZ\`eVTMBoo'̶z+O b:q*77Ytr#m5 ~G;o#a ˵2_ood_k}:!"F;naٴisgShw4] HDlT^Cÿ_3 DT2w g=/h5g~App9Vf)L6FÑO]ky D n <ňMn_d w;1l"r 6q88k@e4`[C9078%cYr;1>:e;H ӗ '~kdF~}Q)T+YxG'p$ A>|y .t6߭}r'QJT/^h82]؊?so~U?Y.l'. DpX!Gi'˅;xLKXM$E;X~;z":#g45lcW3IE"u}q؍m@5/΢٦&RlxY)ؘ1n5n:4MsmG`=AwxĈ\gvF Ѫ%Tv[41W H>U#ug!cK9  6{s<$h[2쑀l 汬qxXY]AԐE#!>XH^ HYc dleG PfAF/#mcWAjfy%.dO`z O9@$ۈkyEtƑiڑ(,v+slJ k91[Gj*'sG]J:H۲|sX"&rT8z-A5|jI$2VsJp"FV@6IN4@ĬZك;X:X, wހ-p*Ϣ k"w_~%._06AS:8yi)Hkb%:D(G@LPt`eJHJY+DȺv"KURPTǀv,(xnA=ϮR@_C)y@4 C| k>02(܍Z{FF=b#iyj5&@Q%wQ{7mpNJ(edl {8 JօM)M; N^TMuWBieonЌq{Q鵀g0+jUo WЙ$ BL"eHZcBK ou^?Rp|x[-ڑSՖ4U 2Di#ioqAu-CO>n}K%%~$ї%Y[KecX ED^2o%tP$Vdg&E|iоZ/TKxĢgBQFi)4+8k0ƀ^،#O5;v YxY vNlN|=ܛjQjf=4ޞ%OǐWl;2|Z8mQgS]:>KIFC6I.U;łXsS /%h^ y=)AXdy6)| ͦx̖\k%9N: TMc;kZ zN~d@>N+&DQƔmʵ+TvA#iԯN=C`f=W*Q9CL#{qEt,۳(X;,6e^ +lEUeo!0 Ls)T%AMdx rG^A4 .|DHaF\CЩکEⵉt&A4v% v i=i| ^]o0t8x8U"jM??ԢkEvE]OCoits- $h`ZN),QЦ "@f dNB<0"ci?EbZ%+H6Ӹ" sx-Nl=MY@O5͐lY@NZY|*$ 6>eS6n$w!]@4XD+Z˙E9_u\]DԱ (չgcw֔vA5iŦk#pD]Arr]L.g#>=2w@{<_%Ҝ(+1iwtA\Dl[DMRLұIiʒI¾ܰL'ߪs#}*m-fֈ`emoI[D_>TUlɉ4h#s`#N719Vʰqp,KR+Zѕo?Ct5EH?9xx?"/v'";]vrn|'[(zJzRLw /6׶h"u[oIPFK2##V jڈۅui;~s\z}3pG6D~إw~'{Vܩ#.76hinJ7Jjߛi#81sLݩ48nshj5"rm oLh|h#.U+0;Fm8v8&2HJ 1m[s]&sZ. “(7dž.3Ki%6AG5 ^v(,d<'̅I^<ǒu 4}f߿wӵysz\Cyy1QۏlT֛s$*ۈi|woo!(2,>h*7O5F,b7p,`PzNk_zi:Պ}0G4FOu5dlc7 7([*ˈ - )#g4K&/t {y'ކ='/#}ϑwDIENDB`mcu8051ide-1.4.7/icons/mcu/80C32X2.png0000644000175000017500000001543112067167647017421 0ustar milleniummilleniumPNG  IHDRQfsRGBbKGD̿ pHYs  tIME - b}IDATx]kz* =)kk5Yk!;vR fCt~CS~Ub[QTT rL[tETIPh=Mghe$*Ztd1q*cK+ 0^(7e$-w6?SjZqhi!7exHQ#w+% ܼYXF&ܼ  5RQq[ghQ(`0mDEE)zz~1RFA!/7yLH]ZZWy!d0I~ͮZH. Z _" 2&Y DnQnT:dܦӄY*F7#x/Hyw&{@sb X1,T 2օ ŁbլgUޓ~VY;cO/Ѳny<5UAU&=٦HŊk[.IsI$ZtnHB^@XaT dAo)c-s:to 3%~%A cA2L??)x!5-y2e? (Qׯڱ˃T'1#&d=qA`P)U\.$K+P3* 4L A*.!*DAqMP@{)Z&l؛H0P| kQ hT0R[ݢ\]T (mEK>N& Hg Z R&\(aX|,w8L0 T}C3U zqΈVTT@ƢJ7_uV'ABZzU^6$򋕰^uCoϲľF)'OO.S47뉷=q fCoVl{2ռ#tg=6j Ե xE. 8rW= 4̣R{̿Tw-L]4U 3OvTo\#CVc[C:(̞.2o Li:!U][™It,]?g-c^`R]&+Z&j5$r4.1CEF&YXX6{dV`/T#$b %bK\zߊ@)$T: {FT=8*NdRp MMM6lyb"N{Ʒ:! |w;IEIڙ)X&LTXH̪qv#<硺mw`kYK=a\ٌ[ٹjΫyqru{a)kb4+IgWp? mҶF4% _7?ݷ㮨,RUaai4wx=4-tBt݌{8u毒cG폛yL#ot[%7DF6nߵS `q)1rԖjxImpL1 *@x$7i={m9&x҆o̽5BG[alTl"xG[*GWݎlGn=6ɲ'}v4y=~<][>]?k9 ҡ3#?|';$c1nщ^̶>] 0U% {cÆcDyL:V:&}Ni3mZ |'dEbkY^$3kwvf*KQ4"YMgM(+14ո&ùf?4 Y+[b2f 2/Qu=)oLSƙ;S5j4 ʢ&FUeGc]N{>3]t'\cGV@x . abIi!E(u XԳ?T@KEȿ5t=Ғ\\knyfH/I( GIqĹܦ9yTB$׿FgclI&]/bhzwP20xm ЎqIh>M'zUpۺ.j^,\3U&Q K}< > h"x~k{BDrSQ+h|U`$$%Yא8y(_!6d-UHJMcHzDrd63y S`%_CN.Y_n1udU~IbT9Abo'gҸs-5wy˗f-U0V5:i@M>hRCq&QLބUn\0V" 6FgF] Kuֽ+ӎ+,.-tIrUL,2I5^FV . k1tCT"j gnʐAlLM6 !gEZ>`1`xf,X YE2TPb2;ߏqyiW9 */1߭D0Vߏ,CNA6|Uu9bӢS^hVˊ9kOQ u ̈́[T*SzDrPCB7'J-l]Sޜ˷g% R=k횽RM_b{&Ǒ!8oMKMi\gԓI,e0qs]\Fj-nuyG w8!]vY]/~$nneLxo,E)mJt#~$ᧅqE=n7o.܄T{Αm3h|U^er0^yUCՁ>&k&?>Gd*(e6ř)*41tP KS aM;bOH7O8P=b=ssPc(SֽTZ,2yv!᷽Ѕ3*jx- qP-"87K$V䆹6 o (Wt>em7w^5?mS}Qj؊vH*(~vk;4gisR \S\t<W#LBgNaW iQGo`D`86랾0h _Z>g]qܘV ?ݷתbu_c]V5{pX&;l|ߍݟEƻ>23f~MP,zsQ.7/b߽&Jh=%tU" VO =[5oVLJpݫ gS[&ji"qiQe! VO*{QRβCp~3J2 3sڂhαFV-FhOcFݞ/wzHtڻ'Z3`B?-Pr b\>W~ɄP1<uKͽ}oƩ+ni(RC,=+OSL5Rƭ ]9<^'-7o6/KH?-}jNjZ6W%T⚓odջ_)`l#ٿ[#Q_!_Xc$++вIA[X -7Id=4ROZVY0_g&؋ghn$MIB'aCݱ$_H],#'X1P0+))F+:ΦHJ>[jK&8il4`Zш"d;r9jRIp2b]Ree3]3Ie!RfN5\ܗ#6c1 gAwEV{ŧ*}Hc+%R1>TC[|9 nw -jNWsmy}$+?1 n[2FߘhKLADE$a3OȞVeÑ.,'%c{=_֪s,VG :0ww/z{g \|E~բ6r>VRch2Ycl㪖O=S;;ߪM+|DS Yծδ͗h.zB"eyq`y%7&`e"|YDD_{dU`&Ty} ]0陳gL&g *5z5j,ÈElR?c9?OG匐1-E/hOX ZwX ws,I|̾/o+f^A9aΜ}zEjIosHYTK#IU,vn+rb)ޓ^I &PBU|SRB> YZ뉔-;/52)X8;"=b1Zx?_ e`D:>ٷw|R]G9'rgS-en+jֵ=6qժ)͚[W6фk%XVukČzH.߯ D/W?D Q۶)Fz5Xus+--s >Hל'Pn ]mQ&9b]-tITHDeǾ$M{ESo7U;,jU0zB֙rx@d>RmhYݚJoqѣm~vfE`W)I(<5s?ԫ<+M-s$=A\9/dI67e y/!SߤÄ kb1\cTJXJKg`F=C%:޻gKi|#k=!\LuH䥁%ł'q,|pxtJ0RԟV?G#Fz)s8n=HML-|黭[ -Vbyy:8w 8֕~:|_ t0,-ix.6ΟNأN=aa;5cii;]ݏz9EZ RSzϢ@Tk^7{I=GhxZ\ot_ תF(r1U}iR?IuǻUκqqy>F7y{\6HՐ1H[ePosiw{zy)qttA r=EVW/Ad=d Ve_=Ry4A :VM̵0(Mؖ-,FIt$Eq :Gv={V9?ܽ' z MR6=_\'H+] *-*t\hՋ7PLv&%V\lsK$TE,]ꅺtzgEɦrG2I),EP)NOLI0-n#E _o(j4jwzˤDSprH5wmì] pH} p/W~OTjAɱIAjriPSKMK(HG0eR2,"yċn^Uj}dftVP<[O =\}]<`ȇ}y u*[e:.)V^Pnn؀PqIENDB`mcu8051ide-1.4.7/icons/mcu/AT87C54X2.png0000644000175000017500000001043412067167647017657 0ustar milleniummilleniumPNG  IHDR^sRGBPLTE3f3333f333ff3fffff3f3f̙3f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙333333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffffff3fffffff3fff̙ffff3fffff3f̙3333f33̙3ff3ffff̙f3f̙3f̙̙3f̙3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3f9tRNS@fbKGDH pHYs  tIME 24E^} IDATx] v: ~؏EN6i'9-BjaIWR>v6o WJ„Hk>%}6I^7N:dT2ioЏ~ \{cA|cyˡZ\`eVTMBoo'̶z+O b:q*77Ytr#m5 ~G;o#a ˵2_ood_k}:!"F;naٴisgShw4] HDlT^Cÿ_3 DT2w g=/h5g~App9Vf)L6FÑO]ky D n <ňMn_d w;1l"r 6q88k@e4`[C9078%cYr;1>:e;H ӗ '~kdF~}Q)T+YxG'p$ A>|y .t6߭}r'QJT/^h82]؊?so~U?Y.l'. DpX!Gi'˅;xLKXM$E;X~;z":#g45lcW3IE"u}q؍m@5/΢٦&RlxY)ؘ1n5n:4MsmG`=AwxĈ\gvF Ѫ%Tv[41W H>U#ug!cK9  6{s<$h[2쑀l 汬qxXY]AԐE#!>XH^ HYc dleG PfAF/#mcWAjfy%.dO`z O9@$ۈkyEtƑiڑ(,v+slJ k91[Gj*'sG]J:H۲|sX"&rT8z-A5|jI$2VsJp"FV@6IN4@ĬZك;X:X, wހ-p*Ϣ k"w_~%._06AS:8yi)Hkb%:D(G@LPt`eJHJY+DȺv"KURPTǀv,(xnA=ϮR@_C)y@4 C| k>02(܍Z{FF=b#iyj5&@Q%wQ{7mpNJ(edl {8 JօM)M; N^TMuWBieonЌq{Q鵀g0+jUo WЙ$ BL"eHZcBK ou^?Rp|x[-ڑSՖ4U 2Di#ioqAu-CO>n}K%%~$ї%Y[KecX ED^2o%tP$Vdg&E|iоZ/TKxĢgBQFi)4+8k0ƀ^،#O5;v YxY vNlN|=ܛjQjf=4ޞ%OǐWl;2|Z8mQgS]:>KIFC6I.U;łXsS /%h^ y=)AXdy6)| ͦx̖\k%9N: TMc;kZ zN~d@>N+&DQƔmʵ+TvA#iԯN=C`f=W*Q9CL#{qEt,۳(X;,6e^ +lEUeo!0 Ls)T%AMdx rG^A4 .|DHaF\CЩکEⵉt&A4v% v i=i| ^]o0t8x8U"jM??ԢkEvE]OCoits- $h`ZN),QЦ "@f dNB<0"ci?EbZ%+H6Ӹ" sx-Nl=MY@O5͐lY@NZY|*$ 6>eS6n$w!]@4XD+Z˙E9_u\]DԱ (չgcw֔vA5iŦk#pD]Arr]L.g#>=2w@{<_%Ҝ(+1iwtA\Dl[DMRLұIiʒI¾ܰL'ߪs#}*m-fֈ`emoI[D_>TUlɉ4h#s`#N719Vʰqp,KR+Zѕo?Ct5EH?9xx?"/v'";]vrn|'[(zJzRLw /6׶h"u[oIPFK2##V jڈۅui;~s\z}3pG6D~إw~'{Vܩ#.76hinJ7Jjߛi#81sLݩ48nshj5"rm oLh|h#.U+0;Fm8v8&2HJ 1m[s]&sZ. “(7dž.3Ki%6AG5 ^v(,d<'̅I^<ǒu 4}f߿wӵysz\Cyy1QۏlT֛s$*ۈi|woo!(2,>h*7O5F,b7p,`PzNk_zi:Պ}0G4FOu5dlc7 7([*ˈ - )#g4K&/t {y'ކ='/#}ϑwDIENDB`mcu8051ide-1.4.7/icons/mcu/TS80C32X2.png0000644000175000017500000001070212067167647017664 0ustar milleniummilleniumPNG  IHDR^sRGBPLTE3f3333f333ff3fffff3f3f̙3f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙333333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffffff3fffffff3fff̙ffff3fffff3f̙3333f33̙3ff3ffff̙f3f̙3f̙̙3f̙3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3fCCC>>>^^^tRNS@fbKGDH pHYs  tIME 00.IDATx] v: ~؏E>?dB+=(–~Zonecܒ~!nt1o(6G`p%>GVFD~V#ՈC_wFddDNͰLOLk:6 |D^aD,‚{w%H`;DUZS ν<₀6!ƴF afqs=§;2}{uLhجfR!8G&gr a7SFWTEv0MpawQPkzʜP4_T_XI%. PT$gdρU0cg C{EB3B4 c32h$2; atX>4_cp}?HnQllEu+[o9 `4ueTvHq{ * 8lȣ&!%]j7tD.v06׭ʙæwGĀ ShLsܔ8Gbw+IB(bJB^dpk]| !c5D%:]"bIZ2ǓG|DrBnS8*,(n?9ƻN""mFDE|:ǎՋTѪ~Ä@WVX\ߖBՒ_ %_|ȷ!DETiFFuz,! X _Ԟ8+ .%k͚GA0ST!ϐ=Q#$./I5.vOɹ v;OE=;_s<;2YI~(#9z㉩k4C52I?!]ˠ=<Γ!{ԣ1Z~9*Sҩn+?8;o欐M5ncB(VoSgU^Z8!O%ZO{6;;+)K7rDIbrEJxU$xcAwEsJ}SWuYw;!-![ X| PNڑM1sZvw O `(7+'h(EMH`+p YnCV&+%3$Z#b>s-"tAF&cS[9M3?DW*1\xĖpaQčw!dmj zg_(_K ^fL ѱ6ʿ hQsr^,6Y ]@t!ZݡE#o@VP݇ b^i.Z1CZ]z@ȸfi)~^+[s7~4axĭ~1@\'qQv 5yNg68+ND 4[T`7#L+2d-2"|s=a`ʭhY@%7 3Qݡs@2*x؂5P\c%CU8j¦,ռ G;VJNlU8f?b!]ĉm"Kǡk<W t!DHX󈚔?{ΎD:y~%hULs(4NjiB<ufg8"Ꜭd!^(dڀ*Qל8#V*!o+͛IC_^vNc4~)swW6>9^CIdq#9n?aZ4.[ߟՄmj6;ju+[bMYi/uף724 oMrQob;mGug)*,u?6*m/N~dיjRqVuҘ2;yG:^-g:)㠡#tq~$ u 9kJEJު+ZFw-.);9U@ 4ɛ{?E،H\GLw-YsЈ;OK 4vv;acɲuGQ]P.CRc9>)DGߨ-!K0Gh~ %{-\|-ZFKmW5Rpq,$o֗c%;.1{In-]?r¡-[׶cY@~MqJIENDB`mcu8051ide-1.4.7/icons/mcu/87C58X2.png0000644000175000017500000001506612067167647017444 0ustar milleniummilleniumPNG  IHDRQfsRGBbKGD̿ pHYs  tIME 2:`szIDATx][0 Ɏ5555@f2ɔBϙ_ 뺮SXTOo`D0@}uxЇ;_D#*ukeXtVbǻl~8e]%C"``S0>L@T5F@\DvMsIN2b {KtWT)D+UI2|`2pGiQ,.C4RIY{ؿ/#&Q PC ৰoˬ#_/CX9L+izti; Hs{@) = ͺ GhJ皐,"`QoV"c(sE'^`AsZ vwp%=Z]ݓLҀ?dr9&h,ow_>6 Է(&kD[aO{xͿfmk5^hnAΝI5tVhX):LʢfJ@O*q@ ܛ2iL?`? ԹtnD'7ʦ҈ } A@ԯCRT)C(j ` zﴬUYL~ŸџJ(ٲeTO2Cii\I2>$=ZNwdirei1 >D&#Aw hgr1h@[=ꡓʫ)CxЌQZN C͏4aݑ5sdEcPL@>6z ] 0#@N LփWT`@O EC߂=53HLbHLU*|zgT^zehC TʢnԀ3õC umNk7]ahw3Icc18^&J&3=3Nqy=$;ުeTlK> 50{uM>h(&p=uS9uCu]rMu]rMuZ J1oe2bkAyhY$lsBF \!C{/v?ɩ&!5vq 8n7@PҬ1}X·{ȻNQL ]+V_߲++鯟ӡw"&&& Tf-6/Az#Iw-CyxO"*?k\/jLCgQ1 jIY4XETXQL>PX$߼۲Q\Jhkg)+껽~~:rDIilUBH{qOj!uΈAz) %&1=U5g:lEڈI7JgLQu(*RH @~IvϝQOU8ayݩ*~jwUt |Pӻ2D O8o~ NNDp6ɩvS胺ǫX][)F!DcB~ͽRJu&`RQ;e2D+M ,R@! (` sdkN*teϸ~O_x 2rkk#$a6nA:VDX$ZC;2쀊e|^'kN\E=ysdQ"CIӡe쪢\3 ׀aHT(B 4][éW `xyQ : /w-9$?|#&r VsX#KA>^1E]V9K!;}kX=dcglQ4%j4[C_/jX_в+ V?z>}kZ'yW I:. V=|/5{}: W̽ :0R35x%EъUg-#B KkF䞴c!r[zl6t֐cV w` ›f:'pCUb?*alJ>ʤ Y浠GAg+䥂"+6.`1oYRR7\tfӿ³jo;3;:HS)u-,9o0D*865LQ d!L!{ 3 &SF֞x8p'J؉pBB0,G`LAĔr{5iSSΤWg1r֠F}ڻ m'#1גd^p= >Hc9ҼwcAҧ2kWJGFoEL|u/1$"5Mɪ=4gН@;$&]4j:׉z)̈/HCޮE $h`Cr|0!].Ma3ʕ=-'F #9+s8MߨdŒx.!&2*zzP c3Y~`uNI{zBCvݴM u6rTuGxS#*}K媼u q"oL!TgHڟ!8`z˄4*UBkCێm/K>/,W}{J: Z_lS[>.B+K&dJ0 #ZgO C[,8aSE 6aN&o+D/9k"c=rU`Vܜsd'Ŋ.)'eӋrVd]xh$({ŵ% +h⿽,#][$=Wi(wg*;7+3>Ř9hbpz0!<4 $&9lRfrV=h(xM/ [s%$el37G vR+]'a[F@Ig\NO3vȇCE7h ^AU}Zݷ m+mUlդEZ'B,:eiaխjLEoCt8U Fre|z?0^N$[)m_{!̦R?C2)=ƜfoJ)X)0KPrhB $4JNRQkE ֛tJ)鍊W{nfL!)*f©N2SsJRI5#`p0"f(m!CŤA+0yBcS43|8H=W> 6-y`KgEJ,Ǝ-ؑyU'EhE^D:7T0_ CXu<,QA0՜u~a:!w[8~;9tH>#d) AcU  i7:y^TSY˪-v5d |*x6ZN3M$m J6l)0\t2gS Kާҵ{Gy"1w&dIpAĜpZ N ͉Z3YIQ`fPG gT0c`c  hֈROCZ\6#CNTsN96? ԓ;bҒ]gb{S27L*r`Lj;Fjt0)53qIpρG0d(Ha̢Εphֳq5\֔ /Zs7n\ b,ER`3)m?^;\ׯ &~9xآM*$xEg-ϙUf"gI-Kܾω&DRXјm򯙜" Dzq# jZ)>jE9ф8PI#-LC>֢ Xi%,OQ))DIl\}>c8˾Դ81 J!R.DϿg4q%uc͓L1Ţ`D!s|r D[|H}/ LjӶdiIPڜ S3ӑZ22|g6{ "J3B}]̒Zd~T/={=Sqw!oqu֖v ,{УǞ:y|{&EZ :_2l?53 ̩-n8wbw0OJk[{N7!%DU|rTXoTKDž)8G2I22.^&亮 &~+)zo  [ ~9KZ? 纮>4ðP䧒O0Ov隈}x2~6m2D٨p|gl͞M>P=Ey,lzKu4«SY V˚tСeJ,) R3مb$ Q>5| nNHUN؜}Rot3ICWKTf&|X2AcO2!\}aT#x|x9z(SY@84߻4B:DEԜY[EoeH֮댫Nx{., Ș1eQg_:P=CUcNO`Κ T> ANcXY>-B")>PXRl [h}Lpjh.E+&S5f:-= dK!~"V醿?s񴏺[=mc;Or6,νf*XO!05c4h]Fc맖2 B@*zG#YDs9~NM?&WUI#sK.:kРZe?ߦf[]ZV :R }xGUdyąR]ymY* #ڎE2b'Cqv6;Y(͓7U1>UWZVy>a%VK_S뉑i5kAi{4i@ܑY$+wM]=t-= 4AК0ZkfzZUKssrN_R?'wyȟN)~ ODlTh0UJ, i*D—؏^ gw.w{ޯˌUTQ?>1}* ) )6V2:LE %7>D%oCkKw{{]u]/ItȟMIENDB`mcu8051ide-1.4.7/icons/mcu/80C58X2.png0000644000175000017500000001506612067167647017435 0ustar milleniummilleniumPNG  IHDRQfsRGBbKGD̿ pHYs  tIME 2:`szIDATx][0 Ɏ5555@f2ɔBϙ_ 뺮SXTOo`D0@}uxЇ;_D#*ukeXtVbǻl~8e]%C"``S0>L@T5F@\DvMsIN2b {KtWT)D+UI2|`2pGiQ,.C4RIY{ؿ/#&Q PC ৰoˬ#_/CX9L+izti; Hs{@) = ͺ GhJ皐,"`QoV"c(sE'^`AsZ vwp%=Z]ݓLҀ?dr9&h,ow_>6 Է(&kD[aO{xͿfmk5^hnAΝI5tVhX):LʢfJ@O*q@ ܛ2iL?`? ԹtnD'7ʦ҈ } A@ԯCRT)C(j ` zﴬUYL~ŸџJ(ٲeTO2Cii\I2>$=ZNwdirei1 >D&#Aw hgr1h@[=ꡓʫ)CxЌQZN C͏4aݑ5sdEcPL@>6z ] 0#@N LփWT`@O EC߂=53HLbHLU*|zgT^zehC TʢnԀ3õC umNk7]ahw3Icc18^&J&3=3Nqy=$;ުeTlK> 50{uM>h(&p=uS9uCu]rMu]rMuZ J1oe2bkAyhY$lsBF \!C{/v?ɩ&!5vq 8n7@PҬ1}X·{ȻNQL ]+V_߲++鯟ӡw"&&& Tf-6/Az#Iw-CyxO"*?k\/jLCgQ1 jIY4XETXQL>PX$߼۲Q\Jhkg)+껽~~:rDIilUBH{qOj!uΈAz) %&1=U5g:lEڈI7JgLQu(*RH @~IvϝQOU8ayݩ*~jwUt |Pӻ2D O8o~ NNDp6ɩvS胺ǫX][)F!DcB~ͽRJu&`RQ;e2D+M ,R@! (` sdkN*teϸ~O_x 2rkk#$a6nA:VDX$ZC;2쀊e|^'kN\E=ysdQ"CIӡe쪢\3 ׀aHT(B 4][éW `xyQ : /w-9$?|#&r VsX#KA>^1E]V9K!;}kX=dcglQ4%j4[C_/jX_в+ V?z>}kZ'yW I:. V=|/5{}: W̽ :0R35x%EъUg-#B KkF䞴c!r[zl6t֐cV w` ›f:'pCUb?*alJ>ʤ Y浠GAg+䥂"+6.`1oYRR7\tfӿ³jo;3;:HS)u-,9o0D*865LQ d!L!{ 3 &SF֞x8p'J؉pBB0,G`LAĔr{5iSSΤWg1r֠F}ڻ m'#1גd^p= >Hc9ҼwcAҧ2kWJGFoEL|u/1$"5Mɪ=4gН@;$&]4j:׉z)̈/HCޮE $h`Cr|0!].Ma3ʕ=-'F #9+s8MߨdŒx.!&2*zzP c3Y~`uNI{zBCvݴM u6rTuGxS#*}K媼u q"oL!TgHڟ!8`z˄4*UBkCێm/K>/,W}{J: Z_lS[>.B+K&dJ0 #ZgO C[,8aSE 6aN&o+D/9k"c=rU`Vܜsd'Ŋ.)'eӋrVd]xh$({ŵ% +h⿽,#][$=Wi(wg*;7+3>Ř9hbpz0!<4 $&9lRfrV=h(xM/ [s%$el37G vR+]'a[F@Ig\NO3vȇCE7h ^AU}Zݷ m+mUlդEZ'B,:eiaխjLEoCt8U Fre|z?0^N$[)m_{!̦R?C2)=ƜfoJ)X)0KPrhB $4JNRQkE ֛tJ)鍊W{nfL!)*f©N2SsJRI5#`p0"f(m!CŤA+0yBcS43|8H=W> 6-y`KgEJ,Ǝ-ؑyU'EhE^D:7T0_ CXu<,QA0՜u~a:!w[8~;9tH>#d) AcU  i7:y^TSY˪-v5d |*x6ZN3M$m J6l)0\t2gS Kާҵ{Gy"1w&dIpAĜpZ N ͉Z3YIQ`fPG gT0c`c  hֈROCZ\6#CNTsN96? ԓ;bҒ]gb{S27L*r`Lj;Fjt0)53qIpρG0d(Ha̢Εphֳq5\֔ /Zs7n\ b,ER`3)m?^;\ׯ &~9xآM*$xEg-ϙUf"gI-Kܾω&DRXјm򯙜" Dzq# jZ)>jE9ф8PI#-LC>֢ Xi%,OQ))DIl\}>c8˾Դ81 J!R.DϿg4q%uc͓L1Ţ`D!s|r D[|H}/ LjӶdiIPڜ S3ӑZ22|g6{ "J3B}]̒Zd~T/={=Sqw!oqu֖v ,{УǞ:y|{&EZ :_2l?53 ̩-n8wbw0OJk[{N7!%DU|rTXoTKDž)8G2I22.^&亮 &~+)zo  [ ~9KZ? 纮>4ðP䧒O0Ov隈}x2~6m2D٨p|gl͞M>P=Ey,lzKu4«SY V˚tСeJ,) R3مb$ Q>5| nNHUN؜}Rot3ICWKTf&|X2AcO2!\}aT#x|x9z(SY@84߻4B:DEԜY[EoeH֮댫Nx{., Ș1eQg_:P=CUcNO`Κ T> ANcXY>-B")>PXRl [h}Lpjh.E+&S5f:-= dK!~"V醿?s񴏺[=mc;Or6,νf*XO!05c4h]Fc맖2 B@*zG#YDs9~NM?&WUI#sK.:kРZe?ߦf[]ZV :R }xGUdyąR]ymY* #ڎE2b'Cqv6;Y(͓7U1>UWZVy>a%VK_S뉑i5kAi{4i@ܑY$+wM]=t-= 4AК0ZkfzZUKssrN_R?'wyȟN)~ ODlTh0UJ, i*D—؏^ gw.w{ޯˌUTQ?>1}* ) )6V2:LE %7>D%oCkKw{{]u]/ItȟMIENDB`mcu8051ide-1.4.7/icons/mcu/80C54X2.png0000644000175000017500000001506612067167647017431 0ustar milleniummilleniumPNG  IHDRQfsRGBbKGD̿ pHYs  tIME 2:`szIDATx][0 Ɏ5555@f2ɔBϙ_ 뺮SXTOo`D0@}uxЇ;_D#*ukeXtVbǻl~8e]%C"``S0>L@T5F@\DvMsIN2b {KtWT)D+UI2|`2pGiQ,.C4RIY{ؿ/#&Q PC ৰoˬ#_/CX9L+izti; Hs{@) = ͺ GhJ皐,"`QoV"c(sE'^`AsZ vwp%=Z]ݓLҀ?dr9&h,ow_>6 Է(&kD[aO{xͿfmk5^hnAΝI5tVhX):LʢfJ@O*q@ ܛ2iL?`? ԹtnD'7ʦ҈ } A@ԯCRT)C(j ` zﴬUYL~ŸџJ(ٲeTO2Cii\I2>$=ZNwdirei1 >D&#Aw hgr1h@[=ꡓʫ)CxЌQZN C͏4aݑ5sdEcPL@>6z ] 0#@N LփWT`@O EC߂=53HLbHLU*|zgT^zehC TʢnԀ3õC umNk7]ahw3Icc18^&J&3=3Nqy=$;ުeTlK> 50{uM>h(&p=uS9uCu]rMu]rMuZ J1oe2bkAyhY$lsBF \!C{/v?ɩ&!5vq 8n7@PҬ1}X·{ȻNQL ]+V_߲++鯟ӡw"&&& Tf-6/Az#Iw-CyxO"*?k\/jLCgQ1 jIY4XETXQL>PX$߼۲Q\Jhkg)+껽~~:rDIilUBH{qOj!uΈAz) %&1=U5g:lEڈI7JgLQu(*RH @~IvϝQOU8ayݩ*~jwUt |Pӻ2D O8o~ NNDp6ɩvS胺ǫX][)F!DcB~ͽRJu&`RQ;e2D+M ,R@! (` sdkN*teϸ~O_x 2rkk#$a6nA:VDX$ZC;2쀊e|^'kN\E=ysdQ"CIӡe쪢\3 ׀aHT(B 4][éW `xyQ : /w-9$?|#&r VsX#KA>^1E]V9K!;}kX=dcglQ4%j4[C_/jX_в+ V?z>}kZ'yW I:. V=|/5{}: W̽ :0R35x%EъUg-#B KkF䞴c!r[zl6t֐cV w` ›f:'pCUb?*alJ>ʤ Y浠GAg+䥂"+6.`1oYRR7\tfӿ³jo;3;:HS)u-,9o0D*865LQ d!L!{ 3 &SF֞x8p'J؉pBB0,G`LAĔr{5iSSΤWg1r֠F}ڻ m'#1גd^p= >Hc9ҼwcAҧ2kWJGFoEL|u/1$"5Mɪ=4gН@;$&]4j:׉z)̈/HCޮE $h`Cr|0!].Ma3ʕ=-'F #9+s8MߨdŒx.!&2*zzP c3Y~`uNI{zBCvݴM u6rTuGxS#*}K媼u q"oL!TgHڟ!8`z˄4*UBkCێm/K>/,W}{J: Z_lS[>.B+K&dJ0 #ZgO C[,8aSE 6aN&o+D/9k"c=rU`Vܜsd'Ŋ.)'eӋrVd]xh$({ŵ% +h⿽,#][$=Wi(wg*;7+3>Ř9hbpz0!<4 $&9lRfrV=h(xM/ [s%$el37G vR+]'a[F@Ig\NO3vȇCE7h ^AU}Zݷ m+mUlդEZ'B,:eiaխjLEoCt8U Fre|z?0^N$[)m_{!̦R?C2)=ƜfoJ)X)0KPrhB $4JNRQkE ֛tJ)鍊W{nfL!)*f©N2SsJRI5#`p0"f(m!CŤA+0yBcS43|8H=W> 6-y`KgEJ,Ǝ-ؑyU'EhE^D:7T0_ CXu<,QA0՜u~a:!w[8~;9tH>#d) AcU  i7:y^TSY˪-v5d |*x6ZN3M$m J6l)0\t2gS Kާҵ{Gy"1w&dIpAĜpZ N ͉Z3YIQ`fPG gT0c`c  hֈROCZ\6#CNTsN96? ԓ;bҒ]gb{S27L*r`Lj;Fjt0)53qIpρG0d(Ha̢Εphֳq5\֔ /Zs7n\ b,ER`3)m?^;\ׯ &~9xآM*$xEg-ϙUf"gI-Kܾω&DRXјm򯙜" Dzq# jZ)>jE9ф8PI#-LC>֢ Xi%,OQ))DIl\}>c8˾Դ81 J!R.DϿg4q%uc͓L1Ţ`D!s|r D[|H}/ LjӶdiIPڜ S3ӑZ22|g6{ "J3B}]̒Zd~T/={=Sqw!oqu֖v ,{УǞ:y|{&EZ :_2l?53 ̩-n8wbw0OJk[{N7!%DU|rTXoTKDž)8G2I22.^&亮 &~+)zo  [ ~9KZ? 纮>4ðP䧒O0Ov隈}x2~6m2D٨p|gl͞M>P=Ey,lzKu4«SY V˚tСeJ,) R3مb$ Q>5| nNHUN؜}Rot3ICWKTf&|X2AcO2!\}aT#x|x9z(SY@84߻4B:DEԜY[EoeH֮댫Nx{., Ș1eQg_:P=CUcNO`Κ T> ANcXY>-B")>PXRl [h}Lpjh.E+&S5f:-= dK!~"V醿?s񴏺[=mc;Or6,νf*XO!05c4h]Fc맖2 B@*zG#YDs9~NM?&WUI#sK.:kРZe?ߦf[]ZV :R }xGUdyąR]ymY* #ڎE2b'Cqv6;Y(͓7U1>UWZVy>a%VK_S뉑i5kAi{4i@ܑY$+wM]=t-= 4AК0ZkfzZUKssrN_R?'wyȟN)~ ODlTh0UJ, i*D—؏^ gw.w{ޯˌUTQ?>1}* ) )6V2:LE %7>D%oCkKw{{]u]/ItȟMIENDB`mcu8051ide-1.4.7/icons/mcu/87C52.png0000644000175000017500000000740112067167647017216 0ustar milleniummilleniumPNG  IHDR^sRGBPLTE3f3333f333ff3fffff3f3f̙3f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙333333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffffff3fffffff3fff̙ffff3fffff3f̙3333f33̙3ff3ffff̙f3f̙3f̙̙3f̙3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3fFFFWWW999(((iiiqqqRRR>>>777%%%hhhZtRNS@fbKGDH pHYs  tIME 3&3 mIDATxz8 u>%ٖư;i76~$ 7ȓ k~pM__l$k~!@ 獎9׿͐e2gj3@gl*lb/t xKTLoH'6G; FzGKtNP~a^g x?Qae1fuʬ瀒UёN~!PHM5d6oBi 2!zUeoq/u#ː71T(})2=#/ccs(LұDmV:כH`;zIk?LؿC2CН'GF!{띎e!FpCDY7-u [G'pKIőeŁ$PqDOTbLDrD DQ'y 1 +TtsvtD;V g+DEy3s"QC㓁{C3/O ٯKU@,CYmϚN@lC Į\&. NV8nTBF!gL50W8p 1@$<"f@@d">]@\tXr[BI !θ&A0 z.1}3#7h>D7@ 1:@D[@Tq~ D !StHeD @$e{9bּ+;V@L;xT?asq%z+4r iKhd bZ GdU+ٳBE5bRw6MVg.٨bʀYM"0bli~PH+x Oо KXw(\x#@ Dߚ D@$g0LgjDUz+@xE07 %^Bl""{)DO+*%@2zD' j1g1UMqM eΣPT3+Ⱥ5D_iZQMr q 9D?jBe}K&<{;)Dd@- .1CКO!>9X VO)@DT)D-Hy!)4Zo:^a=9GeN>,2슐iEya @LՐGoM`"؎T^Ch濾$a4!ősĺex Oڪ* QL@A!ZWgs,,C5y{>uѐu@:D+ė^GC"rXk6ZuX~!j!S폕&m 8jhhy}"\!!]5DŊ鴻7[H rȔB$PA^Qa~;|jeШ M]yE}G_*!(/Ovmɑ(Zh΀(d^+Dn:]/3#@D;ke#nadtV0qC5Qp:-vaMEqEܐ+ yTxUVym*S5xPFeŐ) |([b{<} bAj3pSہhq-FbTtĜCb0dAe"j1_u( x!(D&*fHobgDRD0UVIShy!>'kHyE7yBoH!. ~tb Qz"@9GTXJxO嗞%)K̀h{(D*x!rv V2ؐ tj&eMQIZwg>L!"H84)کySnġ9r2uNhHW b3Q)"q{ ġv hܰ8L(d*Y!Zql-f݀H2{T)ܔp8me" b !دZdDqi )@,8|CQ2e(? 1b{o B҆Lq7dZvR4#dp-Q*Nz:d 1wq ʨ\$p2-@W/LO9C4J(Z չ^TTC)b1IB P jSNBr" bQ*٘Z R4Q!R"B ##e^+Dbx' \e y@D G rsXcTV 3IQ%[ 6%$= j"=X8_sHq.Y!4m;ѸZC 6d[eoк9 ( " 2ŌVnL8p"zUl @!S_J i~G~bxM̆&r;Ɛ^!yaL2vL8cZD&dxCl5rh<>8wQ*)LDQ*M,^ʷ_y"st"7zXC^О9!v㮃B~.@CL'rѐ^-7Vʬ'@!R2=0bsxi2qс8yDxIjTť+R~ABrCͭ30j G{e!E/65O@/B![iWҤngc3s%X@qeqAey0e]hK=N;9B$A#ȗ~7 70Nd2pOH1Ylo_w*cd=P69ΒHCV3^(X]ٝU4@LfTD kejϱ%Jp;)}DbVu |C["5S EdY@>BhIvG(<_ujU5BNfN 1tw>IjGDAr~$#~iSh~w\5!7+T3$jxD<zb%Đ3xlR~pDy.G_`"II=^<AR#<"',xDͯWxD&7'@K~;Mucw>Gz7Mkff3GV/ (-o},ɪ##xbbY頿f#"IxGN.T,P8b3ԕG\tȯ v}Vy$G|CXl,y'}tiE}GHz<";~㦚6þK=a;bREl*G7^vf (xvnJ<闟 cHa[ 23?]˧Ex##鶏K%doy|[#@v OOq#9DȸS<zGFpG&ZGd/[]3Wޏυh-nHH3'0>/Z@&ñS!:}=G{9H3<9ꇵ2b4@b5rHztZSD /vcvk3[ *7-->#~_REIVQ֓i:Of#JUN^ZZyĠ&!؝Z2>mZys腜.^TV*inWAU,f~vQlE4Nkƀ^s-IENDB`mcu8051ide-1.4.7/icons/mcu/AT89S52.png0000644000175000017500000000733512067167647017473 0ustar milleniummilleniumPNG  IHDR^sRGBPLTE3f3333f333ff3fffff3f3f̙3f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙333333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffffff3fffffff3fff̙ffff3fffff3f̙3333f33̙3ff3ffff̙f3f̙3f̙̙3f̙3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3f9tRNS@fbKGDH pHYs  tIME 1q9 IIDATx] b* >C n 2HO+Jit }! f Kf|ϙHsηa ^ϗO_͐ὸ )!2N eOZZ pb5wGyWθJmiqzo3y7V}8q*c _QKp4^<"qwJX/2{7Ҷ a# |*,Yhs5?gQ$mdʸtKTvS\"fpDN6U 9stV]%my G݈aLa .7ZzlV<ApV{4鵡y31nz}jnSNIQr!؞j.|ra6dZ77œ>^@phf~zK!$!ٞ*#; x]޷J7nʭ@4D.}[dGoZp/"߂ ܾ2k2ӱY:8ٱQ77B?di }ZLv5g7è.cchD XVSn*d .ߍKegw>^x+!?!iY,B!g 6!$CoF_-ImYiD@]$MSr{2e q";S[ XWF2LL$DT/V?>‘8#GRđtK"Z;#H^3;KM3AG6‘E넔!͊2- IZ#[YEc{/]3.J-Jn`ZsHHSC0p;Va=.}~FuyB 8! )qn Up[SW6НЄBP2hJ82aBZ9 D=t[atPݽǑ4:D P aBD3Hoqdr‘E"d6B,mOS<;fӐw Oٽnț76cցgwm|;^Hߒ>‹Z^HΌmGHΠ=nf&x'M:jỵ[',#ǍIH%9|Ҳ f.t߄K%"=\h)sR?r:g|GT}N`5iJ[sטRhmngf-ݸ#?Fx%lBž^&f3F-Dמ/x~q^/-=4:;hzZ.l`:{g45j-wjMsH6i\ 3Vpۺ^ɦ߼b =$o{kx~[S5Jg?Ħ|:P ?~C{/x`G<]uE4On.]I ~Fr V!>yGz?[B~f4OQzh!2 26agu:Lt74XC l#ko9Iia~Œk?+k2Z{!p{ ;{3gF덖a*gh%ՌLw#C :ֱu|*%3IENDB`mcu8051ide-1.4.7/icons/mcu/T83C5101.png0000644000175000017500000000776412067167647017512 0ustar milleniummilleniumPNG  IHDR^sRGBPLTE3f3333f333ff3fffff3f3f̙3f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙333333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffffff3fffffff3fff̙ffff3fffff3f̙3333f33̙3ff3ffff̙f3f̙3f̙̙3f̙3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3fiiiZZZ,,,[[[zzz===NNNyyyLLL...VVVjjj?|tRNS@fbKGDH pHYs  tIME 1ko `IDATx] * u~'|Z*My:}NTW$,_q'5wDB? + mu@f~SnZ#E$ynOi?|q$9mA孅oG@W͟O /|_Hy5B(HYHnCnH>o $ܞ=gA!耔w:rϤ+f@O0ܵY$٪.%'[;4/ %;ϮHy|U^eDl h H, _JZ k) Yx {@FZ( tEkYf% hF̷^H9^B{3܎ŝ;w}Y֫Qaf=i$4FOŇ9hA/i6 ǵIO"ŒFg/ÒdW L d_vZh7\T}q*7D'MT7WgNڞHl}1/Z|a^I#B=.Yt n>ҵ[c~a͢jWT  j -²ۣc`q\xKyx@4QDns U%B9ҸQCԣ\J7ԥET1ixrȔۆCIQIqj|JՏZ7DFw@E %$fH(07hBAؐFcb `@QQ~=Q.0;4oiAe64Z#>i&HTZ3X5@Uk}FM>*Q]Ţ`S5Py>k~Z+J]U&ڪ(7&ѤNX*.N 5طkq# %s.%_t(QUv]k+2;-ԿZܽ(/$ЧWMoL(aJc#B|* <8"̃_̵(בF3_I%9zSMkR8'zrߘ:쭤ATI$g_뻑QՄAXf)b1G fVohZm1C-q fIk "n=MQ;[H$'gq$1 4ҸHcժRҸIcz%p?7)iƛy8@S~ [$0@&~_j׺Hᯓ K ilrb$Q++c 'Bi*/-*Q?^&#!4*YR.o@N/`נ?+: Im4B!iOpRd\=^-PE֚X2g]11FmDx<&8:oVoӵ.biH#+`o FBN#~74 gKVq(%ě8oa`I@0 gOkA@Jec[i>a?4}wS HG.;(Ni KR9-'DE2n[ zWJON!9rl~# l(n5Zs|4r0y*gҚkkELݕR@f+r"L#D8 D^e] p\K{ꀇN (J3Z++`{v(i;b^4Fi\ '(nO˵CX܅PSMk0|mrD]J@0 \[Qa ="SkϞx~E//=$ ne\k)@@lTE-%8b2rZp1`^|h>4:{I+Ѝ xhYEc$4jPI24X<6qv^;UQc-H8XzScGbI֖}r--ZңJħD ;&C ;žE ;Ʊ.{)=u-z!{@.s21"'53e/i6 ] 3Vhiji<KxɶsZpzH׶+iIf(rPat+cH"e漫Sd"͝x:dZ2; Ǒ'g+l lv}"[2nix VJ#~%$VKH D.nӤGDKeVL.XvyIב,SzaC3H#2(%s 5 iv ˱@wK$P~Z̓T17*yGq[e͵jRcim/)\K擁`Z}]eayj˱dzO sIsG;R{4H6[HcU!3%GßAnj<. p6@o2YP2n_NX3˾{*fs#AcUa\X{VMB&g*/*r6|Uě|dگU5_NXEFd~ļ@<_ ejMX:+B ή ~QoIYhՖ=՝8'?ⓤ1>OFzIȿ`GJ#@m8Z;஺nV'o`叶\s[5@Ҩ4%7& l^֛diHm@&#P\k]irmY"7@\(@@HsE}}uIcɫQ,] $*"wc=̍#* v6o WJ„Hk>%}6I^7N:dT2ioЏ~ \{cA|cyˡZ\`eVTMBoo'̶z+O b:q*77Ytr#m5 ~G;o#a ˵2_ood_k}:!"F;naٴisgShw4] HDlT^Cÿ_3 DT2w g=/h5g~App9Vf)L6FÑO]ky D n <ňMn_d w;1l"r 6q88k@e4`[C9078%cYr;1>:e;H ӗ '~kdF~}Q)T+YxG'p$ A>|y .t6߭}r'QJT/^h82]؊?so~U?Y.l'. DpX!Gi'˅;xLKXM$E;X~;z":#g45lcW3IE"u}q؍m@5/΢٦&RlxY)ؘ1n5n:4MsmG`=AwxĈ\gvF Ѫ%Tv[41W H>U#ug!cK9  6{s<$h[2쑀l 汬qxXY]AԐE#!>XH^ HYc dleG PfAF/#mcWAjfy%.dO`z O9@$ۈkyEtƑiڑ(,v+slJ k91[Gj*'sG]J:H۲|sX"&rT8z-A5|jI$2VsJp"FV@6IN4@ĬZك;X:X, wހ-p*Ϣ k"w_~%._06AS:8yi)Hkb%:D(G@LPt`eJHJY+DȺv"KURPTǀv,(xnA=ϮR@_C)y@4 C| k>02(܍Z{FF=b#iyj5&@Q%wQ{7mpNJ(edl {8 JօM)M; N^TMuWBieonЌq{Q鵀g0+jUo WЙ$ BL"eHZcBK ou^?Rp|x[-ڑSՖ4U 2Di#ioqAu-CO>n}K%%~$ї%Y[KecX ED^2o%tP$Vdg&E|iоZ/TKxĢgBQFi)4+8k0ƀ^،#O5;v YxY vNlN|=ܛjQjf=4ޞ%OǐWl;2|Z8mQgS]:>KIFC6I.U;łXsS /%h^ y=)AXdy6)| ͦx̖\k%9N: TMc;kZ zN~d@>N+&DQƔmʵ+TvA#iԯN=C`f=W*Q9CL#{qEt,۳(X;,6e^ +lEUeo!0 Ls)T%AMdx rG^A4 .|DHaF\CЩکEⵉt&A4v% v i=i| ^]o0t8x8U"jM??ԢkEvE]OCoits- $h`ZN),QЦ "@f dNB<0"ci?EbZ%+H6Ӹ" sx-Nl=MY@O5͐lY@NZY|*$ 6>eS6n$w!]@4XD+Z˙E9_u\]DԱ (չgcw֔vA5iŦk#pD]Arr]L.g#>=2w@{<_%Ҝ(+1iwtA\Dl[DMRLұIiʒI¾ܰL'ߪs#}*m-fֈ`emoI[D_>TUlɉ4h#s`#N719Vʰqp,KR+Zѕo?Ct5EH?9xx?"/v'";]vrn|'[(zJzRLw /6׶h"u[oIPFK2##V jڈۅui;~s\z}3pG6D~إw~'{Vܩ#.76hinJ7Jjߛi#81sLݩ48nshj5"rm oLh|h#.U+0;Fm8v8&2HJ 1m[s]&sZ. “(7dž.3Ki%6AG5 ^v(,d<'̅I^<ǒu 4}f߿wӵysz\Cyy1QۏlT֛s$*ۈi|woo!(2,>h*7O5F,b7p,`PzNk_zi:Պ}0G4FOu5dlc7 7([*ˈ - )#g4K&/t {y'ކ='/#}ϑwDIENDB`mcu8051ide-1.4.7/icons/mcu/TS87C52X2.png0000644000175000017500000001070212067167647017675 0ustar milleniummilleniumPNG  IHDR^sRGBPLTE3f3333f333ff3fffff3f3f̙3f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙333333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffffff3fffffff3fff̙ffff3fffff3f̙3333f33̙3ff3ffff̙f3f̙3f̙̙3f̙3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3fCCC>>>^^^tRNS@fbKGDH pHYs  tIME 00.IDATx] v: ~؏E>?dB+=(–~Zonecܒ~!nt1o(6G`p%>GVFD~V#ՈC_wFddDNͰLOLk:6 |D^aD,‚{w%H`;DUZS ν<₀6!ƴF afqs=§;2}{uLhجfR!8G&gr a7SFWTEv0MpawQPkzʜP4_T_XI%. PT$gdρU0cg C{EB3B4 c32h$2; atX>4_cp}?HnQllEu+[o9 `4ueTvHq{ * 8lȣ&!%]j7tD.v06׭ʙæwGĀ ShLsܔ8Gbw+IB(bJB^dpk]| !c5D%:]"bIZ2ǓG|DrBnS8*,(n?9ƻN""mFDE|:ǎՋTѪ~Ä@WVX\ߖBՒ_ %_|ȷ!DETiFFuz,! X _Ԟ8+ .%k͚GA0ST!ϐ=Q#$./I5.vOɹ v;OE=;_s<;2YI~(#9z㉩k4C52I?!]ˠ=<Γ!{ԣ1Z~9*Sҩn+?8;o欐M5ncB(VoSgU^Z8!O%ZO{6;;+)K7rDIbrEJxU$xcAwEsJ}SWuYw;!-![ X| PNڑM1sZvw O `(7+'h(EMH`+p YnCV&+%3$Z#b>s-"tAF&cS[9M3?DW*1\xĖpaQčw!dmj zg_(_K ^fL ѱ6ʿ hQsr^,6Y ]@t!ZݡE#o@VP݇ b^i.Z1CZ]z@ȸfi)~^+[s7~4axĭ~1@\'qQv 5yNg68+ND 4[T`7#L+2d-2"|s=a`ʭhY@%7 3Qݡs@2*x؂5P\c%CU8j¦,ռ G;VJNlU8f?b!]ĉm"Kǡk<W t!DHX󈚔?{ΎD:y~%hULs(4NjiB<ufg8"Ꜭd!^(dڀ*Qל8#V*!o+͛IC_^vNc4~)swW6>9^CIdq#9n?aZ4.[ߟՄmj6;ju+[bMYi/uף724 oMrQob;mGug)*,u?6*m/N~dיjRqVuҘ2;yG:^-g:)㠡#tq~$ u 9kJEJު+ZFw-.);9U@ 4ɛ{?E،H\GLw-YsЈ;OK 4vv;acɲuGQ]P.CRc9>)DGߨ-!K0Gh~ %{-\|-ZFKmW5Rpq,$o֗c%;.1{In-]?r¡-[׶cY@~MqJIENDB`mcu8051ide-1.4.7/icons/mcu/8031.png0000644000175000017500000000740112067167647017101 0ustar milleniummilleniumPNG  IHDR^sRGBPLTE3f3333f333ff3fffff3f3f̙3f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙333333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffffff3fffffff3fff̙ffff3fffff3f̙3333f33̙3ff3ffff̙f3f̙3f̙̙3f̙3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3fFFFWWW999(((iiiqqqRRR>>>777%%%hhhZtRNS@fbKGDH pHYs  tIME 3&3 mIDATxz8 u>%ٖư;i76~$ 7ȓ k~pM__l$k~!@ 獎9׿͐e2gj3@gl*lb/t xKTLoH'6G; FzGKtNP~a^g x?Qae1fuʬ瀒UёN~!PHM5d6oBi 2!zUeoq/u#ː71T(})2=#/ccs(LұDmV:כH`;zIk?LؿC2CН'GF!{띎e!FpCDY7-u [G'pKIőeŁ$PqDOTbLDrD DQ'y 1 +TtsvtD;V g+DEy3s"QC㓁{C3/O ٯKU@,CYmϚN@lC Į\&. NV8nTBF!gL50W8p 1@$<"f@@d">]@\tXr[BI !θ&A0 z.1}3#7h>D7@ 1:@D[@Tq~ D !StHeD @$e{9bּ+;V@L;xT?asq%z+4r iKhd bZ GdU+ٳBE5bRw6MVg.٨bʀYM"0bli~PH+x Oо KXw(\x#@ Dߚ D@$g0LgjDUz+@xE07 %^Bl""{)DO+*%@2zD' j1g1UMqM eΣPT3+Ⱥ5D_iZQMr q 9D?jBe}K&<{;)Dd@- .1CКO!>9X VO)@DT)D-Hy!)4Zo:^a=9GeN>,2슐iEya @LՐGoM`"؎T^Ch濾$a4!ősĺex Oڪ* QL@A!ZWgs,,C5y{>uѐu@:D+ė^GC"rXk6ZuX~!j!S폕&m 8jhhy}"\!!]5DŊ鴻7[H rȔB$PA^Qa~;|jeШ M]yE}G_*!(/Ovmɑ(Zh΀(d^+Dn:]/3#@D;ke#nadtV0qC5Qp:-vaMEqEܐ+ yTxUVym*S5xPFeŐ) |([b{<} bAj3pSہhq-FbTtĜCb0dAe"j1_u( x!(D&*fHobgDRD0UVIShy!>'kHyE7yBoH!. ~tb Qz"@9GTXJxO嗞%)K̀h{(D*x!rv V2ؐ tj&eMQIZwg>L!"H84)کySnġ9r2uNhHW b3Q)"q{ ġv hܰ8L(d*Y!Zql-f݀H2{T)ܔp8me" b !دZdDqi )@,8|CQ2e(? 1b{o B҆Lq7dZvR4#dp-Q*Nz:d 1wq ʨ\$p2-@W/LO9C4J(Z չ^TTC)b1IB P jSNBr" bQ*٘Z R4Q!R"B ##e^+Dbx' \e y@D G rsXcTV 3IQ%[ 6%$= j"=X8_sHq.Y!4m;ѸZC 6d[eoк9 ( " 2ŌVnL8p"zUl @!S_J i~G~bxM̆&r;Ɛ^!yaL2vL8cZD&dxCl5rh<>8wQ*)LDQ*M,^ʷ_y"st"7zXC^О9!v㮃B~.@CL'rѐ^-7Vʬ'@!R2=0bsxi2qс8y>>777%%%hhhZtRNS@fbKGDH pHYs  tIME 3&3 mIDATxz8 u>%ٖư;i76~$ 7ȓ k~pM__l$k~!@ 獎9׿͐e2gj3@gl*lb/t xKTLoH'6G; FzGKtNP~a^g x?Qae1fuʬ瀒UёN~!PHM5d6oBi 2!zUeoq/u#ː71T(})2=#/ccs(LұDmV:כH`;zIk?LؿC2CН'GF!{띎e!FpCDY7-u [G'pKIőeŁ$PqDOTbLDrD DQ'y 1 +TtsvtD;V g+DEy3s"QC㓁{C3/O ٯKU@,CYmϚN@lC Į\&. NV8nTBF!gL50W8p 1@$<"f@@d">]@\tXr[BI !θ&A0 z.1}3#7h>D7@ 1:@D[@Tq~ D !StHeD @$e{9bּ+;V@L;xT?asq%z+4r iKhd bZ GdU+ٳBE5bRw6MVg.٨bʀYM"0bli~PH+x Oо KXw(\x#@ Dߚ D@$g0LgjDUz+@xE07 %^Bl""{)DO+*%@2zD' j1g1UMqM eΣPT3+Ⱥ5D_iZQMr q 9D?jBe}K&<{;)Dd@- .1CКO!>9X VO)@DT)D-Hy!)4Zo:^a=9GeN>,2슐iEya @LՐGoM`"؎T^Ch濾$a4!ősĺex Oڪ* QL@A!ZWgs,,C5y{>uѐu@:D+ė^GC"rXk6ZuX~!j!S폕&m 8jhhy}"\!!]5DŊ鴻7[H rȔB$PA^Qa~;|jeШ M]yE}G_*!(/Ovmɑ(Zh΀(d^+Dn:]/3#@D;ke#nadtV0qC5Qp:-vaMEqEܐ+ yTxUVym*S5xPFeŐ) |([b{<} bAj3pSہhq-FbTtĜCb0dAe"j1_u( x!(D&*fHobgDRD0UVIShy!>'kHyE7yBoH!. ~tb Qz"@9GTXJxO嗞%)K̀h{(D*x!rv V2ؐ tj&eMQIZwg>L!"H84)کySnġ9r2uNhHW b3Q)"q{ ġv hܰ8L(d*Y!Zql-f݀H2{T)ܔp8me" b !دZdDqi )@,8|CQ2e(? 1b{o B҆Lq7dZvR4#dp-Q*Nz:d 1wq ʨ\$p2-@W/LO9C4J(Z չ^TTC)b1IB P jSNBr" bQ*٘Z R4Q!R"B ##e^+Dbx' \e y@D G rsXcTV 3IQ%[ 6%$= j"=X8_sHq.Y!4m;ѸZC 6d[eoк9 ( " 2ŌVnL8p"zUl @!S_J i~G~bxM̆&r;Ɛ^!yaL2vL8cZD&dxCl5rh<>8wQ*)LDQ*M,^ʷ_y"st"7zXC^О9!v㮃B~.@CL'rѐ^-7Vʬ'@!R2=0bsxi2qс8yv6o WJ„Hk>%}6I^7N:dT2ioЏ~ \{cA|cyˡZ\`eVTMBoo'̶z+O b:q*77Ytr#m5 ~G;o#a ˵2_ood_k}:!"F;naٴisgShw4] HDlT^Cÿ_3 DT2w g=/h5g~App9Vf)L6FÑO]ky D n <ňMn_d w;1l"r 6q88k@e4`[C9078%cYr;1>:e;H ӗ '~kdF~}Q)T+YxG'p$ A>|y .t6߭}r'QJT/^h82]؊?so~U?Y.l'. DpX!Gi'˅;xLKXM$E;X~;z":#g45lcW3IE"u}q؍m@5/΢٦&RlxY)ؘ1n5n:4MsmG`=AwxĈ\gvF Ѫ%Tv[41W H>U#ug!cK9  6{s<$h[2쑀l 汬qxXY]AԐE#!>XH^ HYc dleG PfAF/#mcWAjfy%.dO`z O9@$ۈkyEtƑiڑ(,v+slJ k91[Gj*'sG]J:H۲|sX"&rT8z-A5|jI$2VsJp"FV@6IN4@ĬZك;X:X, wހ-p*Ϣ k"w_~%._06AS:8yi)Hkb%:D(G@LPt`eJHJY+DȺv"KURPTǀv,(xnA=ϮR@_C)y@4 C| k>02(܍Z{FF=b#iyj5&@Q%wQ{7mpNJ(edl {8 JօM)M; N^TMuWBieonЌq{Q鵀g0+jUo WЙ$ BL"eHZcBK ou^?Rp|x[-ڑSՖ4U 2Di#ioqAu-CO>n}K%%~$ї%Y[KecX ED^2o%tP$Vdg&E|iоZ/TKxĢgBQFi)4+8k0ƀ^،#O5;v YxY vNlN|=ܛjQjf=4ޞ%OǐWl;2|Z8mQgS]:>KIFC6I.U;łXsS /%h^ y=)AXdy6)| ͦx̖\k%9N: TMc;kZ zN~d@>N+&DQƔmʵ+TvA#iԯN=C`f=W*Q9CL#{qEt,۳(X;,6e^ +lEUeo!0 Ls)T%AMdx rG^A4 .|DHaF\CЩکEⵉt&A4v% v i=i| ^]o0t8x8U"jM??ԢkEvE]OCoits- $h`ZN),QЦ "@f dNB<0"ci?EbZ%+H6Ӹ" sx-Nl=MY@O5͐lY@NZY|*$ 6>eS6n$w!]@4XD+Z˙E9_u\]DԱ (չgcw֔vA5iŦk#pD]Arr]L.g#>=2w@{<_%Ҝ(+1iwtA\Dl[DMRLұIiʒI¾ܰL'ߪs#}*m-fֈ`emoI[D_>TUlɉ4h#s`#N719Vʰqp,KR+Zѕo?Ct5EH?9xx?"/v'";]vrn|'[(zJzRLw /6׶h"u[oIPFK2##V jڈۅui;~s\z}3pG6D~إw~'{Vܩ#.76hinJ7Jjߛi#81sLݩ48nshj5"rm oLh|h#.U+0;Fm8v8&2HJ 1m[s]&sZ. “(7dž.3Ki%6AG5 ^v(,d<'̅I^<ǒu 4}f߿wӵysz\Cyy1QۏlT֛s$*ۈi|woo!(2,>h*7O5F,b7p,`PzNk_zi:Պ}0G4FOu5dlc7 7([*ˈ - )#g4K&/t {y'ކ='/#}ϑwDIENDB`mcu8051ide-1.4.7/icons/mcu/AT89S2051.png0000644000175000017500000000725012067167647017630 0ustar milleniummilleniumPNG  IHDR^sRGBPLTE3f3333f333ff3fffff3f3f̙3f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙333333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffffff3fffffff3fff̙ffff3fffff3f̙3333f33̙3ff3ffff̙f3f̙3f̙̙3f̙3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3f{{{AAA666yyy$$$777VVVTtRNS@fbKGDH pHYs  tIME 1&_| IDATx v* Eh?ڏE~(w~-NwͶyfERH"E)RH"EKx7ݼt!w$x4p.$/~#̄~E|%B[U>yN[f|Fs9]\eBp_cƐ2x$)FyYׄ%TO;R _6弔??.0+UKUI%wD@Ur;VAo6ȇ7BօHQ]l%V-}-죦ժ6u!vLQVU[&ϭ:m!xu&hBP֑ӣ8\4c #r+HF!5kڛeT6 i{u!;=@Pڑ!$J V{zދ{ <1 @2f-J-~Z[;r|Z;bnlnJ^BJO8r&äE!:䉍=>͊-֋ \@K GN*o$p`oO'X;_0"7k?Q?NgG,$Z^BXFXu9'!v5؊(<ܳ]* V-Z"XK! NB8o%2Fö`;uBt>nHmZePWpT*0*Brv%ט )qZGܘs走攱vXstKK뜝t5)}ypB!l(|ţ[|vouP#w#B'_$LතBKaeQ.' @_3cˎ~LYZ64N[*Hzf~d" \y& Ft!$y t{UsF=T1EHvN{Q;5I7J>ʄD$RϾ);F~y:B-SǰQ@m G#n8үVZcv=~6"W۶xv2Q:Mޅo7BBH(B* F87M9  ڧO X{]s(Ge(hfC\|n}B Spku~e& g ׾`2e;!,퐩_+o,pr6:9j*[6Immiq5H(۸Q>dc>mУu~ҙvB2sJ&]85{B>VŢjʠB#R_I~d? P"Y:é얈+^HMؘB2t~]Ps`Gudo@k`:,-/ӆn_kSmf nkaC:r/AEbw_>w6n[M~$4LPK Bk!cQM`H jDv}N|7_ׇ(5/$iڛVH8Zq⊠-_ } ²B~<}bU_.BwH{+z$\_/)uH.s렑p4 Z+Z1Xu'OEXLST2_ TOuM Wzd:<< kD,nH<]!7K T:TngYsPd`m\uE?G .B=CWo$Q_#]m_VY~Я<`l~&.//@I*,/3]Z('~%э-X"{\ (3E6Zo+٪-Fb~QZe8W%jY^/.q#>=@B!HJ\}FT:twk9{z~) u7u> y{-1'eh<ę; 42fȍqJN p_ȳ )b:! b4x2 ʹfvzξ_t5p8kM|qhr`׋U.MRA~F!NlXP9b Z.5\ V~lkݪUsؚO[K?hتï?ī{) D !f\/e@;;ͳķJDM z:e7vO֎UBƗξI=\fR[%x5E  !!d2fmj]7G-oL@T5F@\DvMsIN2b {KtWT)D+UI2|`2pGiQ,.C4RIY{ؿ/#&Q PC ৰoˬ#_/CX9L+izti; Hs{@) = ͺ GhJ皐,"`QoV"c(sE'^`AsZ vwp%=Z]ݓLҀ?dr9&h,ow_>6 Է(&kD[aO{xͿfmk5^hnAΝI5tVhX):LʢfJ@O*q@ ܛ2iL?`? ԹtnD'7ʦ҈ } A@ԯCRT)C(j ` zﴬUYL~ŸџJ(ٲeTO2Cii\I2>$=ZNwdirei1 >D&#Aw hgr1h@[=ꡓʫ)CxЌQZN C͏4aݑ5sdEcPL@>6z ] 0#@N LփWT`@O EC߂=53HLbHLU*|zgT^zehC TʢnԀ3õC umNk7]ahw3Icc18^&J&3=3Nqy=$;ުeTlK> 50{uM>h(&p=uS9uCu]rMu]rMuZ J1oe2bkAyhY$lsBF \!C{/v?ɩ&!5vq 8n7@PҬ1}X·{ȻNQL ]+V_߲++鯟ӡw"&&& Tf-6/Az#Iw-CyxO"*?k\/jLCgQ1 jIY4XETXQL>PX$߼۲Q\Jhkg)+껽~~:rDIilUBH{qOj!uΈAz) %&1=U5g:lEڈI7JgLQu(*RH @~IvϝQOU8ayݩ*~jwUt |Pӻ2D O8o~ NNDp6ɩvS胺ǫX][)F!DcB~ͽRJu&`RQ;e2D+M ,R@! (` sdkN*teϸ~O_x 2rkk#$a6nA:VDX$ZC;2쀊e|^'kN\E=ysdQ"CIӡe쪢\3 ׀aHT(B 4][éW `xyQ : /w-9$?|#&r VsX#KA>^1E]V9K!;}kX=dcglQ4%j4[C_/jX_в+ V?z>}kZ'yW I:. V=|/5{}: W̽ :0R35x%EъUg-#B KkF䞴c!r[zl6t֐cV w` ›f:'pCUb?*alJ>ʤ Y浠GAg+䥂"+6.`1oYRR7\tfӿ³jo;3;:HS)u-,9o0D*865LQ d!L!{ 3 &SF֞x8p'J؉pBB0,G`LAĔr{5iSSΤWg1r֠F}ڻ m'#1גd^p= >Hc9ҼwcAҧ2kWJGFoEL|u/1$"5Mɪ=4gН@;$&]4j:׉z)̈/HCޮE $h`Cr|0!].Ma3ʕ=-'F #9+s8MߨdŒx.!&2*zzP c3Y~`uNI{zBCvݴM u6rTuGxS#*}K媼u q"oL!TgHڟ!8`z˄4*UBkCێm/K>/,W}{J: Z_lS[>.B+K&dJ0 #ZgO C[,8aSE 6aN&o+D/9k"c=rU`Vܜsd'Ŋ.)'eӋrVd]xh$({ŵ% +h⿽,#][$=Wi(wg*;7+3>Ř9hbpz0!<4 $&9lRfrV=h(xM/ [s%$el37G vR+]'a[F@Ig\NO3vȇCE7h ^AU}Zݷ m+mUlդEZ'B,:eiaխjLEoCt8U Fre|z?0^N$[)m_{!̦R?C2)=ƜfoJ)X)0KPrhB $4JNRQkE ֛tJ)鍊W{nfL!)*f©N2SsJRI5#`p0"f(m!CŤA+0yBcS43|8H=W> 6-y`KgEJ,Ǝ-ؑyU'EhE^D:7T0_ CXu<,QA0՜u~a:!w[8~;9tH>#d) AcU  i7:y^TSY˪-v5d |*x6ZN3M$m J6l)0\t2gS Kާҵ{Gy"1w&dIpAĜpZ N ͉Z3YIQ`fPG gT0c`c  hֈROCZ\6#CNTsN96? ԓ;bҒ]gb{S27L*r`Lj;Fjt0)53qIpρG0d(Ha̢Εphֳq5\֔ /Zs7n\ b,ER`3)m?^;\ׯ &~9xآM*$xEg-ϙUf"gI-Kܾω&DRXјm򯙜" Dzq# jZ)>jE9ф8PI#-LC>֢ Xi%,OQ))DIl\}>c8˾Դ81 J!R.DϿg4q%uc͓L1Ţ`D!s|r D[|H}/ LjӶdiIPڜ S3ӑZ22|g6{ "J3B}]̒Zd~T/={=Sqw!oqu֖v ,{УǞ:y|{&EZ :_2l?53 ̩-n8wbw0OJk[{N7!%DU|rTXoTKDž)8G2I22.^&亮 &~+)zo  [ ~9KZ? 纮>4ðP䧒O0Ov隈}x2~6m2D٨p|gl͞M>P=Ey,lzKu4«SY V˚tСeJ,) R3مb$ Q>5| nNHUN؜}Rot3ICWKTf&|X2AcO2!\}aT#x|x9z(SY@84߻4B:DEԜY[EoeH֮댫Nx{., Ș1eQg_:P=CUcNO`Κ T> ANcXY>-B")>PXRl [h}Lpjh.E+&S5f:-= dK!~"V醿?s񴏺[=mc;Or6,νf*XO!05c4h]Fc맖2 B@*zG#YDs9~NM?&WUI#sK.:kРZe?ߦf[]ZV :R }xGUdyąR]ymY* #ڎE2b'Cqv6;Y(͓7U1>UWZVy>a%VK_S뉑i5kAi{4i@ܑY$+wM]=t-= 4AК0ZkfzZUKssrN_R?'wyȟN)~ ODlTh0UJ, i*D—؏^ gw.w{ޯˌUTQ?>1}* ) )6V2:LE %7>D%oCkKw{{]u]/ItȟMIENDB`mcu8051ide-1.4.7/icons/mcu/80C54.png0000644000175000017500000000740112067167647017211 0ustar milleniummilleniumPNG  IHDR^sRGBPLTE3f3333f333ff3fffff3f3f̙3f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙333333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffffff3fffffff3fff̙ffff3fffff3f̙3333f33̙3ff3ffff̙f3f̙3f̙̙3f̙3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3fFFFWWW999(((iiiqqqRRR>>>777%%%hhhZtRNS@fbKGDH pHYs  tIME 3&3 mIDATxz8 u>%ٖư;i76~$ 7ȓ k~pM__l$k~!@ 獎9׿͐e2gj3@gl*lb/t xKTLoH'6G; FzGKtNP~a^g x?Qae1fuʬ瀒UёN~!PHM5d6oBi 2!zUeoq/u#ː71T(})2=#/ccs(LұDmV:כH`;zIk?LؿC2CН'GF!{띎e!FpCDY7-u [G'pKIőeŁ$PqDOTbLDrD DQ'y 1 +TtsvtD;V g+DEy3s"QC㓁{C3/O ٯKU@,CYmϚN@lC Į\&. NV8nTBF!gL50W8p 1@$<"f@@d">]@\tXr[BI !θ&A0 z.1}3#7h>D7@ 1:@D[@Tq~ D !StHeD @$e{9bּ+;V@L;xT?asq%z+4r iKhd bZ GdU+ٳBE5bRw6MVg.٨bʀYM"0bli~PH+x Oо KXw(\x#@ Dߚ D@$g0LgjDUz+@xE07 %^Bl""{)DO+*%@2zD' j1g1UMqM eΣPT3+Ⱥ5D_iZQMr q 9D?jBe}K&<{;)Dd@- .1CКO!>9X VO)@DT)D-Hy!)4Zo:^a=9GeN>,2슐iEya @LՐGoM`"؎T^Ch濾$a4!ősĺex Oڪ* QL@A!ZWgs,,C5y{>uѐu@:D+ė^GC"rXk6ZuX~!j!S폕&m 8jhhy}"\!!]5DŊ鴻7[H rȔB$PA^Qa~;|jeШ M]yE}G_*!(/Ovmɑ(Zh΀(d^+Dn:]/3#@D;ke#nadtV0qC5Qp:-vaMEqEܐ+ yTxUVym*S5xPFeŐ) |([b{<} bAj3pSہhq-FbTtĜCb0dAe"j1_u( x!(D&*fHobgDRD0UVIShy!>'kHyE7yBoH!. ~tb Qz"@9GTXJxO嗞%)K̀h{(D*x!rv V2ؐ tj&eMQIZwg>L!"H84)کySnġ9r2uNhHW b3Q)"q{ ġv hܰ8L(d*Y!Zql-f݀H2{T)ܔp8me" b !دZdDqi )@,8|CQ2e(? 1b{o B҆Lq7dZvR4#dp-Q*Nz:d 1wq ʨ\$p2-@W/LO9C4J(Z չ^TTC)b1IB P jSNBr" bQ*٘Z R4Q!R"B ##e^+Dbx' \e y@D G rsXcTV 3IQ%[ 6%$= j"=X8_sHq.Y!4m;ѸZC 6d[eoк9 ( " 2ŌVnL8p"zUl @!S_J i~G~bxM̆&r;Ɛ^!yaL2vL8cZD&dxCl5rh<>8wQ*)LDQ*M,^ʷ_y"st"7zXC^О9!v㮃B~.@CL'rѐ^-7Vʬ'@!R2=0bsxi2qс8yN& Hg Z R&\(aX|,w8L0 T}C3U zqΈVTT@ƢJ7_uV'ABZzU^6$򋕰^uCoϲľF)'OO.S47뉷=q fCoVl{2ռ#tg=6j Ե xE. 8rW= 4̣R{̿Tw-L]4U 3OvTo\#CVc[C:(̞.2o Li:!U][™It,]?g-c^`R]&+Z&j5$r4.1CEF&YXX6{dV`/T#$b %bK\zߊ@)$T: {FT=8*NdRp MMM6lyb"N{Ʒ:! |w;IEIڙ)X&LTXH̪qv#<硺mw`kYK=a\ٌ[ٹjΫyqru{a)kb4+IgWp? mҶF4% _7?ݷ㮨,RUaai4wx=4-tBt݌{8u毒cG폛yL#ot[%7DF6nߵS `q)1rԖjxImpL1 *@x$7i={m9&x҆o̽5BG[alTl"xG[*GWݎlGn=6ɲ'}v4y=~<][>]?k9 ҡ3#?|';$c1nщ^̶>] 0U% {cÆcDyL:V:&}Ni3mZ |'dEbkY^$3kwvf*KQ4"YMgM(+14ո&ùf?4 Y+[b2f 2/Qu=)oLSƙ;S5j4 ʢ&FUeGc]N{>3]t'\cGV@x . abIi!E(u XԳ?T@KEȿ5t=Ғ\\knyfH/I( GIqĹܦ9yTB$׿FgclI&]/bhzwP20xm ЎqIh>M'zUpۺ.j^,\3U&Q K}< > h"x~k{BDrSQ+h|U`$$%Yא8y(_!6d-UHJMcHzDrd63y S`%_CN.Y_n1udU~IbT9Abo'gҸs-5wy˗f-U0V5:i@M>hRCq&QLބUn\0V" 6FgF] Kuֽ+ӎ+,.-tIrUL,2I5^FV . k1tCT"j gnʐAlLM6 !gEZ>`1`xf,X YE2TPb2;ߏqyiW9 */1߭D0Vߏ,CNA6|Uu9bӢS^hVˊ9kOQ u ̈́[T*SzDrPCB7'J-l]Sޜ˷g% R=k횽RM_b{&Ǒ!8oMKMi\gԓI,e0qs]\Fj-nuyG w8!]vY]/~$nneLxo,E)mJt#~$ᧅqE=n7o.܄T{Αm3h|U^er0^yUCՁ>&k&?>Gd*(e6ř)*41tP KS aM;bOH7O8P=b=ssPc(SֽTZ,2yv!᷽Ѕ3*jx- qP-"87K$V䆹6 o (Wt>em7w^5?mS}Qj؊vH*(~vk;4gisR \S\t<W#LBgNaW iQGo`D`86랾0h _Z>g]qܘV ?ݷתbu_c]V5{pX&;l|ߍݟEƻ>23f~MP,zsQ.7/b߽&Jh=%tU" VO =[5oVLJpݫ gS[&ji"qiQe! VO*{QRβCp~3J2 3sڂhαFV-FhOcFݞ/wzHtڻ'Z3`B?-Pr b\>W~ɄP1<uKͽ}oƩ+ni(RC,=+OSL5Rƭ ]9<^'-7o6/KH?-}jNjZ6W%T⚓odջ_)`l#ٿ[#Q_!_Xc$++вIA[X -7Id=4ROZVY0_g&؋ghn$MIB'aCݱ$_H],#'X1P0+))F+:ΦHJ>[jK&8il4`Zш"d;r9jRIp2b]Ree3]3Ie!RfN5\ܗ#6c1 gAwEV{ŧ*}Hc+%R1>TC[|9 nw -jNWsmy}$+?1 n[2FߘhKLADE$a3OȞVeÑ.,'%c{=_֪s,VG :0ww/z{g \|E~բ6r>VRch2Ycl㪖O=S;;ߪM+|DS Yծδ͗h.zB"eyq`y%7&`e"|YDD_{dU`&Ty} ]0陳gL&g *5z5j,ÈElR?c9?OG匐1-E/hOX ZwX ws,I|̾/o+f^A9aΜ}zEjIosHYTK#IU,vn+rb)ޓ^I &PBU|SRB> YZ뉔-;/52)X8;"=b1Zx?_ e`D:>ٷw|R]G9'rgS-en+jֵ=6qժ)͚[W6фk%XVukČzH.߯ D/W?D Q۶)Fz5Xus+--s >Hל'Pn ]mQ&9b]-tITHDeǾ$M{ESo7U;,jU0zB֙rx@d>RmhYݚJoqѣm~vfE`W)I(<5s?ԫ<+M-s$=A\9/dI67e y/!SߤÄ kb1\cTJXJKg`F=C%:޻gKi|#k=!\LuH䥁%ł'q,|pxtJ0RԟV?G#Fz)s8n=HML-|黭[ -Vbyy:8w 8֕~:|_ t0,-ix.6ΟNأN=aa;5cii;]ݏz9EZ RSzϢ@Tk^7{I=GhxZ\ot_ תF(r1U}iR?IuǻUκqqy>F7y{\6HՐ1H[ePosiw{zy)qttA r=EVW/Ad=d Ve_=Ry4A :VM̵0(Mؖ-,FIt$Eq :Gv={V9?ܽ' z MR6=_\'H+] *-*t\hՋ7PLv&%V\lsK$TE,]ꅺtzgEɦrG2I),EP)NOLI0-n#E _o(j4jwzˤDSprH5wmì] pH} p/W~OTjAɱIAjriPSKMK(HG0eR2,"yċn^Uj}dftVP<[O =\}]<`ȇ}y u*[e:.)V^Pnn؀PqIENDB`mcu8051ide-1.4.7/icons/mcu/80C51.png0000644000175000017500000000740112067167647017206 0ustar milleniummilleniumPNG  IHDR^sRGBPLTE3f3333f333ff3fffff3f3f̙3f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙333333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffffff3fffffff3fff̙ffff3fffff3f̙3333f33̙3ff3ffff̙f3f̙3f̙̙3f̙3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3fFFFWWW999(((iiiqqqRRR>>>777%%%hhhZtRNS@fbKGDH pHYs  tIME 3&3 mIDATxz8 u>%ٖư;i76~$ 7ȓ k~pM__l$k~!@ 獎9׿͐e2gj3@gl*lb/t xKTLoH'6G; FzGKtNP~a^g x?Qae1fuʬ瀒UёN~!PHM5d6oBi 2!zUeoq/u#ː71T(})2=#/ccs(LұDmV:כH`;zIk?LؿC2CН'GF!{띎e!FpCDY7-u [G'pKIőeŁ$PqDOTbLDrD DQ'y 1 +TtsvtD;V g+DEy3s"QC㓁{C3/O ٯKU@,CYmϚN@lC Į\&. NV8nTBF!gL50W8p 1@$<"f@@d">]@\tXr[BI !θ&A0 z.1}3#7h>D7@ 1:@D[@Tq~ D !StHeD @$e{9bּ+;V@L;xT?asq%z+4r iKhd bZ GdU+ٳBE5bRw6MVg.٨bʀYM"0bli~PH+x Oо KXw(\x#@ Dߚ D@$g0LgjDUz+@xE07 %^Bl""{)DO+*%@2zD' j1g1UMqM eΣPT3+Ⱥ5D_iZQMr q 9D?jBe}K&<{;)Dd@- .1CКO!>9X VO)@DT)D-Hy!)4Zo:^a=9GeN>,2슐iEya @LՐGoM`"؎T^Ch濾$a4!ősĺex Oڪ* QL@A!ZWgs,,C5y{>uѐu@:D+ė^GC"rXk6ZuX~!j!S폕&m 8jhhy}"\!!]5DŊ鴻7[H rȔB$PA^Qa~;|jeШ M]yE}G_*!(/Ovmɑ(Zh΀(d^+Dn:]/3#@D;ke#nadtV0qC5Qp:-vaMEqEܐ+ yTxUVym*S5xPFeŐ) |([b{<} bAj3pSہhq-FbTtĜCb0dAe"j1_u( x!(D&*fHobgDRD0UVIShy!>'kHyE7yBoH!. ~tb Qz"@9GTXJxO嗞%)K̀h{(D*x!rv V2ؐ tj&eMQIZwg>L!"H84)کySnġ9r2uNhHW b3Q)"q{ ġv hܰ8L(d*Y!Zql-f݀H2{T)ܔp8me" b !دZdDqi )@,8|CQ2e(? 1b{o B҆Lq7dZvR4#dp-Q*Nz:d 1wq ʨ\$p2-@W/LO9C4J(Z չ^TTC)b1IB P jSNBr" bQ*٘Z R4Q!R"B ##e^+Dbx' \e y@D G rsXcTV 3IQ%[ 6%$= j"=X8_sHq.Y!4m;ѸZC 6d[eoк9 ( " 2ŌVnL8p"zUl @!S_J i~G~bxM̆&r;Ɛ^!yaL2vL8cZD&dxCl5rh<>8wQ*)LDQ*M,^ʷ_y"st"7zXC^О9!v㮃B~.@CL'rѐ^-7Vʬ'@!R2=0bsxi2qс8yZIx-ktDiۯ%|DQn §': MveV iM#(ml$Ǥ4K-7  jǒv` : ݙ7W7!DoX \ TgàS蓝?Ac#5)@TǑ?'m׎5{ΫU0aXg%-Bry*Ӓ*hUݛ*$2w7s,bAinJw;Oy itDxqc,}6D0ZL%&~ҝ q ? 5g7onS8BU+6аѭ  ʁ9Zcy\lDLc U A(XzMDHJBL6\a>\^YNMu치픻 `Z] GPk]RCCSAPO W"w$pu׎Of&@b]so8Cms2ވ+~砕C3VtgQIh9ipY& R^_='\F@>`xpO*a=4MG^Ja, U!&[ǻjnNU8=đ[_fI3~ bZW@7&NvDBm~2 V Duhq9~5p낌^+>ȯ 9" |GQy* "CښcL'b9MPN9q8qnbصCF t$@5VYʯX"pD#(l90L+p O∧UAp X2HFEQ$ jP)8)Z'<;/m 7 ķ@3y^Bύ#*N]~Kxr9ȖƽWCxэ-ʔŒs8A#8V.s2 K)0Z]{)SArQXZ-pԆhCzw(Y7 ނ EN+=VR C]h, cYFIb. X]`TC^jkȋ,H t<]A B4.TP(vw 4R# j`K'D~I\4jPoSM… IOarq!hDlBo!v L7% Cypƌ"7%a59oЛt!2fqL!A09sW}iOqmDvp "c7lCo 7ӘVq;,_wBő$j荣\$28zCu\t۰zPh~dAJl7!hd@b|pNAz99aӳ-) o3eJl6J%o /.hi?cdVwF=ӈcMw2w ٗ}XA)ar< Bb7Ƒh+:Df'dnQBneɆxl:* j tio+.vKK0>N̮%ql4ʶ&Wђ1BruLaޔiꗆp04%-C4ONI7u b6Г3N[SwfW=СC4j:["|ݨ2i_&.޷nnӾunw7?O}fVSpdGHغ-6 AJ=k a<9ۡwQB[Еl| /^7T!_5Ѥ"@Qvxaڻl inwlJh<4(yE7+*K_;M^w` |;(rq;QUuiF^8/Ӷ5В9㟢N0K N:cDJ2 v?ۑZI*q31N%쎯j?>o:h$uvhq.=6AVn XM=lP d}I8:a:mnʝ.kly#+zb;VO(JsnGRap `1@v]Hqq{̆}}9<)|;GY|Uw]yh/`:2Uq3GR=%* R~Na[idQv65Q%Pu,t$F]j%=D_;g>T]HP&(5'ں!ֵތZԤыS6sD ۠L +5@)O|e#!_ƙ9Yk ڜC٩14+z7GT=,Mq\Ϧ~ǸWuk}ٵx}}}}?a;G)IENDB`mcu8051ide-1.4.7/icons/mcu/8052.png0000644000175000017500000000740112067167647017104 0ustar milleniummilleniumPNG  IHDR^sRGBPLTE3f3333f333ff3fffff3f3f̙3f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙333333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffffff3fffffff3fff̙ffff3fffff3f̙3333f33̙3ff3ffff̙f3f̙3f̙̙3f̙3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3fFFFWWW999(((iiiqqqRRR>>>777%%%hhhZtRNS@fbKGDH pHYs  tIME 3&3 mIDATxz8 u>%ٖư;i76~$ 7ȓ k~pM__l$k~!@ 獎9׿͐e2gj3@gl*lb/t xKTLoH'6G; FzGKtNP~a^g x?Qae1fuʬ瀒UёN~!PHM5d6oBi 2!zUeoq/u#ː71T(})2=#/ccs(LұDmV:כH`;zIk?LؿC2CН'GF!{띎e!FpCDY7-u [G'pKIőeŁ$PqDOTbLDrD DQ'y 1 +TtsvtD;V g+DEy3s"QC㓁{C3/O ٯKU@,CYmϚN@lC Į\&. NV8nTBF!gL50W8p 1@$<"f@@d">]@\tXr[BI !θ&A0 z.1}3#7h>D7@ 1:@D[@Tq~ D !StHeD @$e{9bּ+;V@L;xT?asq%z+4r iKhd bZ GdU+ٳBE5bRw6MVg.٨bʀYM"0bli~PH+x Oо KXw(\x#@ Dߚ D@$g0LgjDUz+@xE07 %^Bl""{)DO+*%@2zD' j1g1UMqM eΣPT3+Ⱥ5D_iZQMr q 9D?jBe}K&<{;)Dd@- .1CКO!>9X VO)@DT)D-Hy!)4Zo:^a=9GeN>,2슐iEya @LՐGoM`"؎T^Ch濾$a4!ősĺex Oڪ* QL@A!ZWgs,,C5y{>uѐu@:D+ė^GC"rXk6ZuX~!j!S폕&m 8jhhy}"\!!]5DŊ鴻7[H rȔB$PA^Qa~;|jeШ M]yE}G_*!(/Ovmɑ(Zh΀(d^+Dn:]/3#@D;ke#nadtV0qC5Qp:-vaMEqEܐ+ yTxUVym*S5xPFeŐ) |([b{<} bAj3pSہhq-FbTtĜCb0dAe"j1_u( x!(D&*fHobgDRD0UVIShy!>'kHyE7yBoH!. ~tb Qz"@9GTXJxO嗞%)K̀h{(D*x!rv V2ؐ tj&eMQIZwg>L!"H84)کySnġ9r2uNhHW b3Q)"q{ ġv hܰ8L(d*Y!Zql-f݀H2{T)ܔp8me" b !دZdDqi )@,8|CQ2e(? 1b{o B҆Lq7dZvR4#dp-Q*Nz:d 1wq ʨ\$p2-@W/LO9C4J(Z չ^TTC)b1IB P jSNBr" bQ*٘Z R4Q!R"B ##e^+Dbx' \e y@D G rsXcTV 3IQ%[ 6%$= j"=X8_sHq.Y!4m;ѸZC 6d[eoк9 ( " 2ŌVnL8p"zUl @!S_J i~G~bxM̆&r;Ɛ^!yaL2vL8cZD&dxCl5rh<>8wQ*)LDQ*M,^ʷ_y"st"7zXC^О9!v㮃B~.@CL'rѐ^-7Vʬ'@!R2=0bsxi2qс8y>>ZZZ=tRNS@fbKGDH pHYs  tIME 2 @u IDATx\Y $}t}tA xMCVTΓ^wV6a0 BH)} }jH c^շ$ }9{@ϾHi?:op|&|5@R qb{ĤN!2X}O!"s).3ۧxJ +8 cs 9'x'g#yG1|?/-2c!W#m_ϖE/׾J[ i ̠ÂZm'ik9٣Q^X8PΔ>p@k]~,o-?D [A@$tDV.|h2K=R.L~{LlչKc]e&o@t})rd3"@w{q~ֹ2/<{ '@8u:(&yPJzWIGl?iq0yOcVT 5T\-s+Np|·CT'9儕d*S:DzQpL+}3dr'3f w RLF?kbоV|4-z7;ba @gY|:鹡EXˌ>ݏo*PbZ4p #yLXc =2 aC.67C+٢Gb;$xH4,)_їIپJӛ=-_ JVQSfwj OS.&#w{K5:VɊQZ%7=%T$S?[I=nJ#zv7?u.}lMp%T:A^9iT=8򁢀͓ƽgVqtlg1iEKRFzvb wgZffoH1E{41 7I@NItEk$-Z`_x<-/iQBUn<' ³%n[Z45o$o0HG(r#.gCFzt߀>*}íS1 ϊ~4,u[] ɾ47IzFo_ AQJ#S `1MXaaz0a+_?kvjBxP!Hƀ@G\z&u1EZG[@i4Eq4nم"S&6=&vPTUHFBQ8q^.[6UYq³}}v\ r-c NTftϮ\b-A oq-6ׁ(׶ǖd5ANZ9#iGN6tr.X sC뾿M57gpCj+]@/r<=H_YIg`D,/Ƹ|=FӦ5T_G|곖rј%xKv&6^i ѹkMF8t(е@GM!?R vq MRlK tB[]6ÞFPv=مՅbٶ1]Ĵ qT=TyZT ^lӺBԲg;G8iԍ y2m/ r#i\9ou /uSi\@W$|'iĞ971`GuvbcޭxW'2{S (8я0/Fi~'Y"z HH#{qVHXHns-sNLO&{V؄SZεx$eaEg|`iE姑|Io>cFςǶ2BtN2_s"vIhTkfhLnt/G6v:jv,? SW 8hT}4֤ˤcJЀ`0dy7 6 |]Ȓ?:#$!Ɓjb{5׌{Y4EGuHaLQwj/ѳ)Ջ($|fNgUEc ^.lXN&Ԫ{?$ܪ.'6 Hcy'{5l1j[9!V zr٪X£54&*RF> N{v3ӞjF҈hq*= t5FF!虭+:&BDF'H#z׀@OaIGlhv-B^^';yiliZYo䵴z~j dz}GI?*oHQi&&KȽ!.nJRSpI-t2.(ؖ7 ܽaz+5[ C ,ZJaZѲlӡs=2ٕ7j.IjCOVJ~G4wVv7n(u^x=du ZjmVXްQ\7H_ 谗|Zˏ~Y ~/%@H@>.6q.IENDB`mcu8051ide-1.4.7/icons/mcu/AT89C51RC.png0000644000175000017500000000772712067167647017704 0ustar milleniummilleniumPNG  IHDR^sRGBPLTE3f3333f333ff3fffff3f3f̙3f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙333333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffffff3fffffff3fff̙ffff3fffff3f̙3333f33̙3ff3ffff̙f3f̙3f̙̙3f̙3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3f+++444///"""RtRNS@fbKGDH pHYs  tIME 2!꘺ CIDATx] :'a?E^͟VNRۣyN!$,}Ed !+SB?ZBgAנˈu$x,@֑4aŒ!! ckpgOG@>!*xkj;b'kG~.hXIeį;1X+,v1E_GU0>4FHG` xkFlT5 lDX-Y#׏]?o0i81du1ٴC Ɓԅ#~[@CgU1?aل-[h}?d67ėd[GuOxo`mSg3qBr B՟i|J!!ǂvVmš GBoRc-B';xVx]h ;;' K a4&k`׀4[B 2|F )ʍiؘ fM:b|}q\O&$;0+ȯHeuFI`%?DKOtMS;Q+@pqD!PvoX> :t~kf5aK819hZJFWrx>M | GH<\jKzGXиSҌy e 2?n5>Nyu@?35"_|aAM#EUQ@h(|%ć+ϑԂWHPxlA$2<<|O=3ل&̣ܠ% X9_B|ea=+2NHb2DLgCr-gž|_AN?J$!͟gs_V/>zNd' O] &}] bjd%gPIBJ_Ȏ'W)B0+Db $ɷ 1L1bL)HB0#AAjVLLs$@sNX#q,2FFD!!~K&֐eBZNjWBTSdiqį " qЪ_N"D4KS1%1fH@O(Dpm2@,!GjRs^@$!ҋVF^ y ŋҡ4&Ҩfk`ŕXW༗UWxāբfq## c? 9v Cjdbfbj9H<1D f-^4ǥ<0WBb=d╌kDIpQ + cO ’&$ĵg_FSgD4UBGf(BBoA'yp}BֱeBH +O"z dd]ATw—{ϰ1X[s?@ e &yʹjs1o\ ^0,<q Q^#z[_zۯ_zm/zrW)4NjeijLXkfj (6w0*IvG*`7_G:UGI(C-zLrc?K+%gA p%I P2PQqX9*fpK >fGm&ׇ I!b ;O/Wϵr\H%ݝ !{* J6JRTi73dP X<4h!0i٥g?Y*ߐCq']Wk?:f !|Qw.w@%@%DWdp(e]wǴΝ|s u:nQ /EoX[+# /D0-E]Nכho;@שcոcFDc-B1W)ՁzCuMۂkA{rmMHWʋUeۯ_nC#󾛦VqE$$맳;cDmBc(NHe φƤS!|@>fGL[t HL oBx?,  _\B3s!m?#aL3l7 [.RYmG.O)Ľq5t\؎D.gꀠ#b-o.l7Hl B@"e#j~b#uﴳGַ_; e'[)PHc(Ġ($:Ӊ*jyö,ZVuT)!ů/A^lƳeP"-d(:0hA[sR;eJ:|p|9~h- tfT O,(#M7\K>];FK{/kBN%`?_@H zw@l1yr)`ky2pK<@_1r,'H#_HZ -E ! (lǒFP֣TҲ %}atH%ƵG%|ɐ& O_\ߑq{i2G-ٙZ|>uQuH8-E t|P9:(?`4"gX.pDH02a͎Ⱥ9ٯ cih|%Jd(ZNM&aԅ;m"=9)ݴ#~h^0P+jIPP=ȩ˅)+& LK4F~-Q/3MB^ F̰X7 HIh]r=j% $ XiNufH%eyjIu`Y0f>l@V8Iŝ.R(y>G0@Xvgwfla ʨ@6/ iN{d,SN$SRPsX˴ٳ;(ob9ᴪ#'C5FJiJpN4PpÌ4GYk)Iͬ@6܁& ~ 6V+%j&\Ii )4bOdYVxrv7K%uK5UZ^ey dK-ǭT򳉏 [^7l|Zx74{ D*p[_MˮܺxW_7STǔ;ݴЃR0߃]a>.S{6w2SF,Aa4n<^\v[8}PE /v ³f2@|@K݊4$nV@)sp-(sҪ\_Sݍ4'o KH?=zNiHVO;Ʈx¹('#G!}m@dIps/QYQFWa%5gא>Ge~eS~.Ξ@H $+-O2#xNXIENDB`mcu8051ide-1.4.7/icons/mcu/80C31X2.png0000644000175000017500000001466212067167647017425 0ustar milleniummilleniumPNG  IHDRQfsRGBbKGD̿ pHYs  tIME +0(3|6IDATx][* ,;Rk55~H81sf8i0 TRI_k4AcDo3 )G>$ʒ~"zNdACD&>f +X#Tqtt׾o Iб=LHe ] 7kAHq"$,IIB'`$Y#bF$olX#AG:b:#P MPdDl=,6'yjË QN0 @Mr )n;*(y$8.{ [lwhƸ.4!DzTHÜӘ" S:T2^abGsNs&~H!K%,Ӎ.Ͱ*S:CwD2ij㳓e^&>+, LYcLz:ZAC'Ua抰bs1~6%o?ӏ\_wNEʂ @ 402Xj#)6)dadȄ 8Qg0=׌*1 dŞgw@0ts Dһ :WEx f(@DCu!~ NQ<5!DJ.\>")&.;!70ZEjzsFlC֊CgC}7jхp%5ǛL&9zMR:_.WWiASL+-(oؽ Pw[}$D).\p HIE4^Ao0x%Cs('|0\}jZ> }.odq)6pb)"fD~Μ(Uӈ.1׉N/}(m\qq[Þ1!{nj!s"4 ﬡYC'i7}-z[c?8OYB@hj"eO}rc%R~ꔀw{Z#WY^h`ԿJ@KZtLh<嶰J.l^RFRk8dMU &Мl-p8-gWzG+Od02W$s3HXtE=(ـ-P_ 3d>ݚJbѳ=]D@J˔37 ]uYչ7Kr\a'!E+u]y.܉;DerBN:Q.:!TnF-uC(K;4G&WSd7^Cj6ɢ{^W[o;Wl.զ0{תǚdq[lC*mΦfRپp~o@=8q̃}ℴ2(G`.QwiFCիiaexI#ԙL|EeQ܈{<'O uL3EBE- VX͊h2TXًt Msj5! ^=GڡN}b<5m#F0tYR0}UD `vAYc habRS{e? bڙz-pa~î]PH<ض tNN!뿃]WΤвBT]IE=TF k$J faS^m<|UGc}lRRH]2c!#RZ V_P(ɚHGQr6!Dtw m0w7bOLJ'x//߅Np&맘hBE;,̫dmMQdt"|m3L9+ՊrNHUV.ZhM*jH Whi}`Uu.;ã" !s^ArˑQ͍Ws޾krph=kU^uq"|wY s{*HE/~W㚘H jʊ,JUs-;G(14.)Oe;$IYyUO`陊d$su-T+u듍T}զϐ׭D}*4\@Q{uM$MW DwOYQ ]U6-B]q"\C/zᡞ XѭҀ1{_\lT0-”)!TywfFK–ZUYO'+}Ea>6Y .$pPtѺhL} %UO岡T9vxpNJ/V1=Wh[U;>EbaQYR0-b595_ r3Bg`l82}`!ѓ-BI@D`6CiQE=t\'/;CDM)[c/ yu9y 0dD]-& \UP:i=q>uVY!8=SgX#V?A.\y0u ߻dxCC-uwӘ1}!H(g]Rܗ^<^0!QPb< [ݙDj%)FԩuR2!Å՝fV]#v?ՐH^ W]EJeU#F}U?]y [{ˤ~d]K:Ƒ='[a}xh0.ҫ=X)wwkUtN6x`qȚi<@ZzoS?(<&g !"BtueS׳@W~=p1-r%` ;6p="qn<'dm] EJ/,ubaMՅLqֺ7ЭZDX|-;3=3*L!)xx@Fn t-4;ҭtj`ܶ~cؽwWJPo5s[[i[ζ—MݶzY1p \PDϙ&]5Tb5%>gɕj 1($jAkw/BcL,ԥ^q{;te[ H0<T$Jcz]v1ajGtxR& Jo+ZN&1%d S֑ngBxbzz5<='GRoځ^a'[by{C9Ay:}" 3ƨD H-$rʒ} d߷X+SEg [6m~;j~ϗͱ Z)9&Rzy{.?>YdQd$4L'=`L,S;a宬r200ECjup>,\{/jҌՖ] ZWIcT (/Cu8B_Gׯz@B_X^X(oVN7OVЛ)f#,mTӉ|* Kz#՗@AAaÆ WVRRt,."@R$;Œ`ӧOFFF6mbْ5D@MMMo7VWWC>@A&uuu0x`7H$gH#d=B.[싷$) J|9 :zֱc KKK_^\\q7o5J@@&o߲lT__?}t'''ggG!TØ1cΜ93nܸ~iɣF1bDHHHkk+?|  gcf``7bĈ_u4̙3V딗'$$/n߾ѣ/tssjii)((y%%%Xpvvy ^2Yx111 tuut:^rذa)nnn$I^^~я? -,,BJJJ=bbb"q"J]jUZZG%%%mmm<d-liip8ݽ{wÆ lSWWWII;Q P3ի3f̨'errrQQQ ]sEŋ...!~77vzyykax{{[XX\rëWD^vmРAYT*5$$ի/Z+V>}ȑ#mmmG=qD1tK,Zu'OoRD"mܸ0 ID eB}n~455/1bDUUɜ3gQTyy-[>}$m) >ڵk׮O|BB?5N:U]]=22 0&1--J%Nש0|O򗔕 xuXAAŋ۶m?>0K& wu$.+@@&ӧgeeݾ}!r жڴi/\<{lQQє)S.\c_yf>Vll~(++ XxLA&_r%,,R[[{[yyy8qbĈNqㆢ[TTomm=jԨP333.bcc>o 557VTT6mФ'=[[{ R(Bb~~~~~~~mO'f8ɓ'!҉'^*6qCy~ ͛SNXt)B"RSSKOOtHD8qĉsrr8dɒq.8;;'%%]|9//OGGgp tӧO_˳MMM555}i3iԨQqիW8q0i)))H:1 8W]rURR4iӧO233σ"P\\,***$}RNNԩSgϞ]VV&-i+L%{Ν;jjj >bH줤aÆ^|YZ+~ kVVzg, Esss7mdddTQQQQQ+%p[ںI$,\rrrΜ9s;wxF`d"@"Nb/133MJJ9pȑ#_>qDHcR~aaeeu1Bqppjkksrr233ϟ?+E>bEDDDEEh4|ILd \nuu5ki= n~^ׯp80W(b$ no3f"ro޼aXVLg`&@@p8M6eddŌ2 6 Ϧt4IWWWKKSKK >V 񱲲Zxq/zIz-`>c2sjkk,XL Ɔ 233sss% _/0 ɓ{?6i&GGI&UWW£Hd2: aFFF= e &@hah%Y}Ͻ<<<,,,L>QښD"1LSSSP^^`/-,,>}TQQ!8h{@&eG 0LKKx744d>ӧD!a0Vd2@{ҥ%k׮şzOII q8S(MMM33V"677s86$'''??S$35X,5Ё7n/7lnccL"=f<<<?.TXXX||<~m۶#F 6 _ /\bŊ+~-$'''f=ĉHfB캺:mm7t1 }}4_~SNO???I@_H7dd2PKKƍ,--(&&Ç+ihhtķ^wqq!):u,SA&ť `D"VRR—)B2EH\]Q5a"zdvW0j+WL`"zdQ5 Ы}2P+VRRbff˃e=`* >\J}u ?:㾶ժ" tdo[v&KCu3gΜ9x9y/^ jhh?'$$ڦ&OOϘYYن֭[***[l3f BJ7LOOJnٲ%##?.kii1|"*t:=00000N?~ʕGWhhh}}iӶnZTTTRR뤤$ܹs=zGOxjjjJm%''[[[?}T|?!_1d+0rHrS/^tvvvqqAH1L?4fii`llf&̜9ѣGbiA&_sxSNmݺ5""B`!C >ŋ7FQUUE ݺukeee{-:*d+USS3vآ+++tzLLγgϸ\.Q^VVƟ͹\nyyXCd2Z`AdddLL7|>}zVV۷B\.7::zÇa<޽;00;v/lx]_%.Q\\tttLNNrJppp}}}kk BׯUTT|PUUijj_266 … 7|cjjJW\Aׯ/_f d2"ݫƲ{-+,,p8w߿QQ^sݎԭL7[[[WTT_itvv.,,ʲE@;.yfC*++Ϛ5KCCcϞ=YZZ?~_~xo~:Uʍ7>y̙3ZZZ=cj 444t:N;vN_|-[h4Nohh8u^ʪܹsKcӧO#zE.k.eee Æ ܌":>D"yxxv?V/]8pimV\\gt< UWWw7X ޼y"JJJt+|U$Xuj{-[`l999͛7#G***۷ի^ W?^ } }vӦMB|lv``͛7544Y,VgBh߾}zzzB /(􈫋gΜr_lĉ&&&ݍhgdT*?pssc ?Fm۶mƍtf322Fխ0B}ed7kiiijj/sdpޠ tL@A& nH7dd2 2 tL@A&@*++éT2L633;|0Bݻ:..!|||B***r8**//`0BT*Ã7YZZ?x/OOOwtt1bl6^NP)ݻwBfff----[Biiid2L&ccaؙ3gc˷}wfff&L())plll كFFF: G0a hLcprr">ׯ_뷶"oN";T*B?ݏEϟ k:Qoݺu111 b KJJ.]Z[[;}tŋ=ݻ4MKKcǎwBHMM-::ObbbJJJ>|ؿ:>{҂E]vܜ[~JII 솆d???ߧ 0:ǏϜ9Hc4m9KJJ={W^X/ }!^~]SSZTTdee%`~~ɓ=z4ds&&&#.\0k,w̙E,[H"~ф _>55K1"S]]d2PSS ILLݻw*BhwE377oD=oؘfWVV1...::!2r5k֘#o~֭ׯ_w9sN8r;Θ1!<waoee%xW^ui}t3g̛7/11퉶iiiDKٳg}}}B>[jUtAUU˗/$ḓ[۶555L&Ԕ(1b~ Ǐuuu'NTWW7^'2B(44t֭m[f2Kkkk$Б~}s7s.駟N:E$0LFFFNN.''G,-{{p0** ɓ'1BsΟ?_'޾}͛7uuu0.>>~<B(++"ɷnR;;  2L&SMMmyuuСCSLWW?vww?҄ \RYYimmMT677r-kiiBCCL@G`}wo5!9N'~͚5+>>ibb"H<YZZ= k׮% #""x }t??\QQ!pK %sMJJpٳ1 rgΜ2e a ѹiXCCd~ rFB|˗!jkkCBB/_3f͛Ǎ0aΝ;]q;vh< `ڵ?~D秤hjjĔ"8)&BH__<'//O='$$(((@xSNAı": IDAT'}>~ "D0La„ wILL={6B(==o0!!A :jllTQQ f| 2vvv5<2Դj*1c \]]edd\n@@@PP^yL&s!igjj$peÆ 666 $ѣl6x͛7ϝ;7>>e˖-ZZZ͝;w۶my̙277OLL\dɇg̘1o޼ϝaСC.]]]]ۇZp2BL&8qGҒr=Yfm޼?o/%%8qbAA㉁> ~㯦SZZOtZRRիW4V;;;O_Fgg缼aبQ$$@`L@A& nH7@/f;W=aΝknnOkjjrpp#3`L@/bIBbcyyy&mt]F'o*,,ܱc˗i4ZSS?t2a/?~wٵkN=-z?d 2mw(Ȩ.((`٦SN511Al:Jq1b=Iijjc;}#GRɇo2҇BTWWK#nܸw!b#[*))EFFRԞ 22mw&M222KOaF9§<<$$/0 ?A422z 6JǎP(%atgggӝJ#GĄ؟Ldŋ%^t)++?ݻe˖=tPXXXuu5BӧOTA&@*ca؜9s𒨨(D[[/y}rrݻE@TTTK.9r7n566|?~b }}aÆEFFΛ75;;{Ŋ_*ERffň}!cc~)))ͪݹhaaAyDDDDD%\p8GB-vA& )7UϞ=kjjRTT$JZ[[߾}RWWo8mA&!f`"***43110`@^^Q3%2ҧE< }! W#Do7|G|||&M*))ٽ{wFFNA&/_{3Q7qk׮Offft:Eq]tV`` ɔtۛ7o1ĉN )yyy\.wh}YYY}UZZZAAAu@&@:TVVر~Ϟ=#ޥRmkGFFFFFVWW;w!VUU%tijk}۰aÆq'",@G  ֭[z̞=#,X~zzr7og=|{'O\r ?N"}yOd\.wĈJzxxdCCSN  f| Lqcc#+++0`5~ׯ_'&&jhhlٲ!tǏUUU|RKK#BCC?~jccuϝ؈q\777www^.;;;1135544]_iӦO 5KUUyk+c2[[sssEEcǎ L>}G7oL[ZZ!d[bصkݻ8 Pm…T ˗/#e'huuubyؘd̙=N<3#B@L`2jjjϞ=KLL|1߸qcCC---544BǏܘ@CCCɇk&&&+BhΜ9 n۶ٳ֭#N:u*Bh޼yÇ/,,k322LbQ@rqq!߿ b&##o : 2R@EEQII@QQ̬AYYx_"==ښtF!055e2x;?'OJKKu <F {-''׶F|ޏD"eddX ޽ǫ͚5KؿRvvvO> ppp;s >$"̝;Ʀ4,,(|پ}BBdaaQZZZdɚ5k֬Ydjaaafڹs'ѣG=z&GNNo-Z-c2]]#Oas}||$0ۖ9;qȑ---Dٳ/~bIIIQQQukNVNLLlC>K3**ᴭpBdq{511?~|MMM'c2ڵkSRRHJJʺu.I'u صkpJFsrr0a`FDD{:KL.[ӧ??𻛝9 |L@:̞=>Ueee<ЀOJ.thvvv=׷Ӈ222LLL$#dH F՝y:BkX !4y䖖| OX,Vaa_CCׯUSSt2ە+W-MJJs03> tL@A& _cǎuppyfuT2L633;|0Bݻ:..fܬ\WW7p@CR'7EݻwO0aժU>|UT*Bb\t);;[UUv222/=zݻw}}}i4ǎ{=WWW|}K55h<~`L"6{lА!CX_MM-$$$11166v޽9޽{71c'͛7gff"rrrF`llf+++{ Ȍ;VSS3''gʔ){AE[[d#FB|.33sĉ ?!BCC;kWE\.XG#?}$~;bw bBwC>/,++ŏϟ?4a„+WTVVocnnr{gE @:Ys(TWWWVVO?~ f 2ݻuttZ#(ñX={˗?O|rΘ1c~K"&L0n8CCC'MD$ d2zw!P䤧ץ'Mԥ8ggg4?!_cǎ/ Fc<2Դj*1c \]]edd\n@@@PP^yL&ĄD"_Zę:99|^ 2@xB 6|FF(JCC@!a!!!!!!mkhh`39SN s3>;va/XԀ1_\nnnv'뷝'be˖=ZQQQv/_tvvf#Lϟt~hhhn߾$\͛1 ~gΜaTnnn<///OWW577Xۛ孭 :::Ϳq/~`` O?|:eʔÇ^^^<Ç>|;w\kkkkkkJJ:}}J8;;{֗ERSSn!''¢k!:88쮞f,Y!$''}[n~aaax9a$i߾}qqq8pӢ ڵKYY0|h|K2rE[[[///|ooo +W^z۶mRT1cرiԩWWyQ(!bLtXfիa%KeDٹsgWOٵkFؖL^^`\.a222rrr999DyFFay"F?~'C8piBCC͛d2 $I rķBӧO.^x1swޅggg~IJJJBD2 ͚5+..K2uߖxp I~~>BD"ˈrݻ翺MϹwBVQQߓ:44d D*++Ox_,-- gffaOIIɓ'O BF|  5V^-ܰL`@rܹ?.\MH'NtǏ/YD`@ٳUV >1AAA111!~z |;uTII Bh͚5+Vx B9<<\! 999P@@ڵk?~OIIԜ6mZ~~ Ξ=[TT4e33V辶S^^򂃃 X,Į}R```jjo"dl6ԩSiiiB|Ʈ722 B.uV|#.{ƍ'N<|ѣl6!ss%K|AQQqƌCs8www~z}dd2~pBKKK|4DAA޽{ )//bŊ 6(((((($''㽧\_~iii122qaaa5kVO:5lذ777555}}}|\;+b$<ѣG;::%!!AFDGuna>|8p@KtЭ-%%%oo?j+Vzجvx(++I;G-^bq8L---!ZLQRRrwwyk ƌdɒ{UWW_zuΜ9Bur%Kt\gժUW&HΝ{Yqqʕ+$OG@"g۶mSN8qbՖ,YrA%Q<==B_AOO"''s;2߽{]`Mss]v!'\NNׯlp~/_vGz+0A}xwҥ"9s\ cEEEkmm}<&cFFFVUUUVVnܸ plj'󝜜D"f{? aUkkktttxBzzz\.`MW٢z[8 ͛7:::WU#~999ui`04MmJdH/w0b~,Y;AC"vܹsN DݻL&$'''66I۷o///=z4QݫRA&@Z}nXr嗞 [[[ew144쀌?O:(44.hbb_͛m۶wY^xecXmwCPm+LMM >}*...n׮]{%J×/_.ʟȻ [roQQQ`0O^RRܬ8yn~Q`ٓ&M:ujw逘A&@,YD`X~͛7-~`0L;;; @`@[zug%=DєX,ٳi4ڧOw[[[E2USSo'22СCC_.\pYYY/^0xBGG˖-hMMMk׮ER'1,H"!zA%~KlOPQQ \rԩ%%`|SM1**ؙl͚5O^f aDMڱc?AI .:uiӦ7ظ`]*22mR)~пǏ#""""":d[ntr***:S LiڴiOjjj?%]sR/555((O:;;gffy\\\~g]]gOݽ IDATϞ-YӧOSeoߖthd2tr>ڝ?QڵkFFFEEEFFF޽#*--``d2tҀ G0 ńzV/m'v횿$;88811q ?a)))_|@h\.Znd2۾}{FF'^Oǿ?%%'NTWWBO{e! UNNE^O[T4R 2@ZmذaРA x<aۭ}oo},'0`ț ՝;wXdbKNd"oL⦧'}2“'OݧlU]]v޾};h yyyIRSSb"̙#ZZZ555YYY]͋7o޴~o޼R ]jf9+@L@A%lsQ$Xi2L&drtt4JP(D֥K9ܼݭ#-- 0 ==BPTB{.B} Izd2Nvvvǎ6lsꂂٳLxzz cǶ[sʕGW+@DEEd###eeeL]]lJ0ܹsxM7bBorssBw ={"0@_abg6 #GD 2DR1ZǷcevT*522? =z>;vMիWfff+V ʉ/al6tԩy ! 1t.P2wӧOGGG={V 1H,]T eI^_0 55u֬Y^z%R_"}Б#G|||>heffx<憗Ԍ;(''J 1 6mڥKx<^ff&wwwR ddd177W &77ҥKYYYrrr c̙3,,,d2:m.⫮M6LJ#GOOtx g 䈡K̙#쾺;v8::,]胆(N{ΨQX[lC9tB;w{ʜ5jԨ7o"V\b mmwɻw'!###''gWh)))GOqСϟ_<@//^ohh:usw333܈x<|&Ç>?nkk# .\|y: [YYh4"͛7#,Y._nUUU_DWQ!QFgH!C <<<?۶5gx<~ee%~om?a SL+\.ԴGx-?~˫m>R֭[~mYYYii)~$>>BUU՜9s-[lٲ͛7o޴eL& 4h޽3f̐X!?ܿ˖-ll"сB tՐ!Ck۶mN<+"\@qϟ\]@ 0L555|k EEl~?PVVOIIƯ)((7!dggWXX(B˗/?{)S._|ɓ'_!4zh㽼mGCCdv3U/_, ܊/$&+fee***< jK2p.]q0&@ 466>|ÇvڴiB Nhll8pH@ x_!/nmm-~QEE ̰G_lmmݸq#~y_]MKK+//'N8 Zx_|2Rӧfff/NNN+sݻOKׯgffv٫WZZZg͚w͞yTW Bq;!,J $@Zc z999L05?Odn<oܹ^VSSSG.%X2K=:&&&11ԫ۷o>T4`(ʐg oo[._|̂A&ۯ\bIqqq ȑ#0m۶ڎ]H`6dg}&,tzL&nnnp8! 33SVs2EQ6mڴiXGT*$IAAE&{I9r$.."E\.=0~ /駟c D2se˖ݺuO]%H>3ggg3@ Ü0E"֪T*s0fk֬1O<`d,fee[l=|l.JNNꫯ.[[۷zkV9Z,t.+ʥK^| jݻw2EQfͪ7uQT*/_^QQш5k M0RLw ػwo52if{W*++ ꜜ}2{T*{~:d4v >l݇xX}2Vdq88PfnD"mNN }2V| %%E.,-KOOohh]%m2 >&.^8F>m1k[E hCC]YQ#L0dc!Y6B֮]K?qMt&*d21CFn2etmnn~o}%3L@&`WDEͲݲ۷;;;8qp*#L&&H$555?YSSsuS|ʢ!.+kx$**j߾} "))iLJƟ|TTO~w|>!dŊ&=ɓ'3f5*J\ۛGyzzOвe)`Y5Q3fnnn~1s1;d4[[[L&t%''Ę`~'` ,((5d&rﯯ߿S.t]~j"H$oɓUUUfΌF^d,0PLTfJ5m4SXXجY6oLujҺ ロ9sfTT!Åe---|iӊ(z={ S#0` -[׾p|Ɵ~gƌ/^T*0q=3==}^<#['{O0Q~ܹsw^ll^cKK^HՍmL0qܲ~rDndndndndndnd0P~[_XOhNchkks/^x%BȺu낃mllwƽ{Fx@a鐁[d$;;۰1ZZZ~>22r7quXl,Z6n߾=ๅ>#\.7!!Q`22Ƒ0ݽa2) 0!a"8aƣ>u Hn? x"224l={ /@0:d@'C&bGDDF!(@oooOO 61燄D"cnnX, 儐/>>>"(22ٳgSrssd2qرc ;wioog߿޾OPTVVnڴ)))IVرPPTǏ"|hM5͚5k͛'CMG 2 tvvRxyDpBBMII ϑ+VŰ=lvNFFGGB>cdkk벲2\zÃxԩ^{m7".!!/vޭ{411111Qzf3g>ޑGr̙g޽[$7662Gsss.kkk;s !$..yd2}ATZVVV\\VWW~Uww7!$%%*00a$O>=t萇w}W\\\VV_~U||||||CCCJJ !$::z˖-#L }꺻JӧOu),,H$gϖdt-Dkk .TUU?zh>^(d2BX,֣=N&IDATW0ldW_\RVWVV555m޼K\)Sܹ}Z[[GIccɓ'j'|pepzzzB!dɒ%c OݭRllllmmݫj?)ѽy=}GmkkmllT*ҥKSL7vHhdwΝ]vϟ?L]ݛo),XtRkƍ=kooy$BpժU~~~rO9f͊DqqqLscc7|CI$C T*???ʕ0H$!!!#k޼y}}}CF0$!""ĉ=<O0ddd|&j#㈟@G?~ؽN5QII)>>Eʎ ZJq-7WMw- ϗ'izbaڅ%MI_z Mm,m.^3D"QuuK,KKKE"QMM͟׮Do, m^߹3C+3.j{׹sYى'Ou_m*&ick2aBzMyō7ʤkתׯ#~h @vN}noO߼yٳׯ^Uy۶mcWdfdl69ٳ@7n#\ru /\X[[K]8dr2@zJ3zHMsv{۾Ӈ*1t0*|t @UXXX޺/=kkk)z⇖ geA7ڻ%Ka0V㇖!Tv3:o0NTO"?h:hvhvhGknF042 Fohd@͐YY]Oyw3 p##R4=~h1hڹ}-7wVu54h{ddeelŋ#X^|yEETqq߬Yi};/Oȅ93#gr2ZwΟ;7{6˗/ Y0ϛ7bbxydtMM;}9[;)'|~f]zD/_횙gblE:~iSyy>hС}% :lٻothμVh6ڍ=|7 ՝4uoR]F.w6oܫW/kkkkkkإKƌ[°pՅ KeeeVfqj)BчFq_~Y  2dշk:vHyEG2Zy*3@~KFFF<߿/Zccñym~C!C>yZ]]]KKKin zneb uVVV}xaK#B,--5ql8O.fE#]zf0]r{޿իi^ޝ;4Ņҫw胇***~}k81b;?~˄B*hڥgB}f\2tX^̷o=Twb~wCСC@P u|p._v0y#?x8ZWWWh7LwTTcgXY%%6x@#4= Sw0''G_RBY'ƟXs8WCFmzzz׭{RBR-Z B/ef9b* 6[QjzЂ c2GS qOO}|.*5MZ0gA؆@P_v= Ydωf,ej׎˟=svDo'@@~N΃wءBcSF8PPT_w.*ĒM tYhɔll $dμyJ`0X,YiicI@7mIqI']4=~D<n] HRb∡zʧ jk>dHTBHUUw9}1`@UI_z/)!dgeӂ=z?X"2R횅α5@6ӦLT]] q8_nliV|lBnK0KO.,kApHmmH$?=F>yk,Ht&̤/= ۦo]Dn޴g}c11JKKE"QuuY# ~iO޿ԈTjzqrԮ];E 1nn ٖ8 %=H=u*%[Ct //9ÆIaw{ocǍ;wʕ?ۼq7B!?`0>_}RgP"#;8$] ٖl7`t֍ݽ{YY!]'O^~ukkkK!ASL|no_UUEiVR\F Z @9KA\jO>QMS㗒۶!C~͛N[T$.6xRSN81dKzM ggmmsD,,"ɓ'Q?PçjY@|S*Nl4޶n?5nÆ~_?mW}X&&߅o ̛3۵knjml r~nwݽ{?`g1y0D"nf2QٽdPP2c_dCf>BQY~g6w#~Dz˧JSǏjKұg~ ''B`j uqvQ^V./oǏ?LiD4o<йM!zzzƟ#7(lO{JXKK|F.P96LM %izѐ@_κɅՒ4=~\H\R.g-ԪOr?h(gP.iq* N {!ܐaCf4=~DH ʿ2T>ʚ?hۋn޸_pN.\TyDΟ+BjW!۠zGLMMΕ^MZ8;L$seG~}iaa<9==kkk.#?^Migo77˗.6{İ23e0L^~Y6H$ݺeD8P]]kKQ 3?/1cP_d,[ Y$xc7ԩiϞ=P8;'t꯮^r.QƏ܂aG$]tyHv?'P_&ǏvwFgϜii9t0<Ȫo4eppONIٿo_P@@ Ply<,V|RƊC S]]]QQѱc Mk2ʭ[nQKn݊ hgΎgRP(\juHPpXojz =CiFOO铧u:#BHŋv *(* [)KP4:5=~hI86ӧYZZOOOpswW],gR3(P6:WԡCh4̐ݴ!/7oѝ:uqz~mG'7oo"l+99@dnҤ)gXi@KMNM?2ܤ+ǪUH$:wmH$9ܥG7/\Pٲ~R7ûuKQ0sc00c; h!JKfϜi|}XXcklx>^^#]G-]J`>=e*=Ǐj mP.OY[78[wvŪẗ́43(91H h45!';[݁W7 Vw khBP&LX} ({ql{;h'k''[##.{Mg ];vvM8|XQ6fͪչWJ(34hgΎ6BaP@(ĦFB+i6632.gm|)S䤝=KMJWk &[}ˏzMNBY[BD"Ǐ=O8{>I6.))wXQQ5͛Ϟ=P$qp91<|ͪ9MT255=7q~j%֯]Ѡ` ܽwOVnIqIB\W3fp##3C [ I`PҢ޷iӆ:+^ziiiBokf}mX8Xwl^/_8?EGݳe{t2 U=| Ӏ%JKS5?ZСSwyK,h1YiE qU)/l\J4(}J8K%S%dc.BR~(Q?䣌?9bdd?kW_UVVΜ5k>|xD ouՏQQf>qfK^Ү]k7eK=~>΃gϜick{;/O'!dqj OQX&EM..C K=u]?59+[lI .kppi2Ml0|7J)( ꕫ r`"bb߅K/>TIqh-5kpScBU߾X9#ף#7oܰ%ѳu}̘ ͦL`0ƌ웥555M Ң׮͚i}fCS)䔔 [-| - yGre2Hϭ=mڢ%O̔v{Q]umז9m4CC#꽮XH`0oӵNnӦͻ7jƞLU+>LdɢE07S <-l YM042pporzvmUҔ1F?M~ESI<44??YIC(gΝFF/?հ`MN9)}nnLM:&+WN\S[#*dnݪ@S1GDc11_|`0ޥ1Hll圜370$fBH$ [L5557ntWvm~|? w~;lBt&Bn޸bٲw|5cwk67–l%姟uaÇtgbY(w[)& -:iڵ{*+벝5'!.~[ېjC6H_@+ue$j{׹scGcOرG΋IS4xɴeJKK;wիwoBȋ/n\ؽLv~Kl:knW6EܹU^qӵש|}gֻX\WQ5YoE'>΍WI!DՑ\WSB57o<WomU555r>&t?{,s}!W\4Ȧo R:r:UQ5=~bو$a#8:9es(LCHP_Nvڟ\lT )y[u2nxQmPfrso`BIX&fS'M6|8 C۶ٓz>g!!.e=~6U֭[bԕMGu6[leƓz)p`˗RS|[o nAαǎݽ{Y&.wW?KER5 !=dgxy< }g= 󇹸ѱ:XYu&aA}!L x1;w_Zgq h{;wBz[j۷ !<8αiQ$]~ [zjY;¿ CQ/^Pw5@zQMg=r/eвty&=8뙖'LzHMsv{۾x'4IDATӇ*1t0 2rK-Jy B&}z*3߿?KZi H7 om:SЀi,]Tp_KCKDheDL`SN%ՓrK P}ltאM5?EzBj:SЀYIqC H)ܲ~o>w!=CMg  MрP.H&LٵW]F`04:~C#CWZ܆? !ևI G?j ? .zׯZInV,===6HϠ-i:CzYd\)|:|7۷ݼq#׽SN.e!>]MqHl~sn~ĉ_Λ7jN:UTTܸ~o~Tm й fcki˖M7o߾ǂE !iiNNZZR͇m 64@EZ7ysvh.cݻWK4Gln޷mc֮߮fw4]Z'Kml檪qcvoAQa~߿I{5)1F'6!^5=e\8cu%=\1&3{~b%=S2S+3};/G7 &k`0}@G;w!ZZZzVv@[ҷ\UR%=7EAQa?7YR$ !f,B3gy ս!CnݼvtЁboTUUYܺy3嶹Dgyٽ{݄]]1 wqW? ܸ!|vxDU \};6n zjͪUgBr?B81>yD˹[^pwջ'l.ʵk}8:|oAj y%%ѳBlmms^m 72@$:Ls/0u~bL-uVrJׯ9iR˗gqllKbcO9q".1cǎ _O[ZZ6mT {BQo-hNoG݃N&HW2Iط1ڽ3uI* -Scv ᲍QUUU]]e. ;2e}O<D k^(nD>X\lVA.U#u{h۷cŪUW¾?! 5~+}~o3nÇ]GUVVv55ݻ?@%R`K :hvhvhvhvhvhvhvhvhvhvhvJK䬡AG===zI I ll_ߑ\L0D"chjjjBBȎ*++C/ h3LdωE"ݻw=F%ijLL ROqcq4c26)O%`޽ !AcƎ3XA1e2)(*Tlz`jrikkmfR5 277+--"?@!|zzz32`#r 25';[(;:B@$xwZXXPGYXFzk٘L5r̹sA/\? {<Oݡ`YfL&~?f؎ͺ<(56+++[3f=];wy ?guw5?c3z! .R^l1S!*nb"=Di^t`Em۶ȯRNΜumv 555j!!dm!BL&3b+W xMhikUY|j̙y<޽ !"s#`TԚV^<2=_rgWrr!ƈuN:u̙iaQZ, d]ŀ*kd爿,/+]Xw ǹ[n.nUYb.{ :p ˴ +˭{6;+ˎÉpe ڎñpUޤׯ_+.W7r gvVlH)t. ԰YNNu۸˗'2!>̬C.]bc}L&RNvzO^n;vruqbiIͺPOOScO<<ܓSN&y2"!.^Orc6"=|S86f,3Ixqc11C! 80>.VBm؈_EʋO^e]\OۚÑ'Cjhd~Z9͍W!AAl3m] ߻{z);R77߼qw!ñi6i-YكQQ0mHaC'x)'x54t81V}O?+'e8}!@pft^~BD`!w PXspڻ@*rsw|;/s7HJأSqw[׏]i^R|Ľ ?"bC= ?s|Fe{s忿h<%8G`De /'R _'*4Z΀fOJ@MZrt,0<3Otc$BxM_\sBRA9\_҂$jx ğ₇H7^[{fA(+r.#<_ŸcUn{j | =8gxLJ+]vw^D"3#Bo5P['D@>F>fЏARkH%Z-p'JW;n^B?yD ?a(Ow_jx0פw9̿+VwԿ(Tw3!3 +𜉐\X @ w\DTYPޟߍ`]B4AqdHpW] H0AF|V(a)&,Q6(S J,A?D<(8oAxOJHgq*=Y͕I 1YHj[jcysV/5l4k`cceN̼_tW'*P" }!A1&J|%tAŧQT_TT]\ zi!*V^d: D:Ϝڸ꾰F`yȄ9tJD%#Agy{UZVhETXA).}{k(ǩ1JϭO6Y5Qee֍IFW !KUtj.*b#S_ ɨ.JUK~bDPH  CĭIF0S:F0p%Fڰ"¼+FfL xw0F3 ָ#YKxRSgHTJU:(W;zQ$*az@JЎ9aF2;wD2y^7H`Q8}WJ )GR'Li '@u#gFDwmi7T JRUUi@- zSv "HR&`Sai8'0SC*XPе_/'-ābQH hD/)Zshj*UВ@10r#IUϔ#҂LʈuL0AIa&L#sJ;I@0  {|Pj*UJ6"q$Wb֮Ju G])H :#NMEOl@OZ՗V`NYQsTkq,ODŪ(Ps28dW[U!(?S5f9փ<%0A%<,Ht-BJ~1gb݈m=&N"iܱ5,)(fҗV"t=!M6 U< q[Wt"%*WNm%bT`TJ/蘯74Z7h*SƩڄHXtP 4$i}` G }{JUKk7OQY>JRĬc5ɆTa0o_i¿DU cFˀ */(Z ZP>(=;x?x(HRշJU:$wA /ZNd)$ a1eU+uYF%S.OQepXIR/&͍ҫ˔`pA6Nx.IѕKU R^*,?ҠظbZX'z! QaĹ)0^dIME՗ Hsݥk)DtJeٹpL $ aY&zpkaa:ޞ($:T@Mׁ4 \JB0*ŭ6/uPJ6IT*tUX"|ku+mTTq~Fhy^ <QlI)}Yg;GHGdEvgnna%,d=CC"T! E$0-Pf麔*}7-0-r(B ;]^hNKi0HRiRT 0!o׀T*t%`;'c?rU'B`P6(bSUHQ͛`@ ~0MB4L_<|4558w>vN0_'_קmRF>\+(]YsR mTeJ !KQ!y|KTʑ7J8Ha@"&_D$*zauUd[\8 eE*Ŗ_pL ɪ6o:vUzIJYXX`a~ދdΝlpXb8Ֆ6 ؄ϼ\ hG##("F%!D8T*ZW&Q W+V_;f%a$)Y[Ţ*o333,3??`HICC=HCr;w`uLD('Uc6&!J?ts+\W* cRI B ?IiߧE>q vW3ӌ1^/r߿ѽp&BYyLV4PlvLdÆ XCTd5k֐NR0Z=t#Iu7|?Cvܹ Ur"Jk#җb||S1MLo&b,~a~b@WgGJIcCOm]-B֔@ JG9wC ۨɆ:6)*9*!-{X'J`qSe5HJ` E,ŽR~l)$M*/Xn^a۶mun-..Ztѽ{Ѐ]N /-a JlZGCN>524ՒIRLMMڒxٵs'ks?l=SLMOR[#1R%T_?hSŇ*ӁrURW+T\y?r.O=0;mr,\<ʣm ۸X}~/5(U|q'%(,z2.yx$Oj9 \νk \|R V| lH9\E1udx&ou=@)FGhoDy~Щ2{7!$(l55YzzSħ|OR[!`jz h\ uyT+uuwkNZZhimŞ` (:>4QD bS;_n@BbP^ax(a>ri,x ;G(?;W*rmDr]:łG1q܊_QF9ʶ51 ?vnHKlć_V睼[5Vl3|lQ|9SLqWOSYfWOhª8_o#q1SL: juTPI}*,!>1[tmuYtjF]kXz!R2kӕjZ_/En9ƍiY]E?>ahHV) UYNM_yX-m+ښJ/$ .H Ԅx)_8ή«ۮDRq:]ȯu@uB˱ʿFڬg=¿tR (wqw`\=G{fky-Yϫy5dp8A(?_z%EgFvsYs|{W9tmԚRKmd<7\߁Vj/ntܪ;)o*%^F cE^ښ CN86N+j>H4 CE䠓bl:ڱAr9"Ӕ҃啫͋evYl M84i-|Wh,_jyU]{Tr5W:^x .& s:3ZCkC lOS9U{gxF>FYnpVr>k=˖3Ӏ 0lEz9mÔ&A>r!{mJ IDAT,r LSܳp Q&E0S W4"{iAwOʋ(ɕR!) /1SvU'@^nի~9D7ʭ\\5<ȃ~$[f;"&G1*iC%t?k+Iy0Td+1Zw] \;yk?\+$iYNiX7]vq:θfز%}h\]2MHڄ1H1@1pU&obcp5`}b=(wT%/m!b K ~2_u },)>UK̴ z2'c]\a96n )])Mw]nu^KmX)s3o;6|!VFхLAR3Jnn'LMhIg[d22F+(rjZR AϱX|y2KWcI):OTqwܑIm`p%W.eҩҪlC:+I>vp Uyv0 @$_ n"/DI?C\8.3\{6`\p'mUYn1J8.SǯӪŒUs2Rm({UΦ! \D5TD *%?ݲ*e-.HxEt+ j3L0c "cr/k\tn匣x{GD!.yg;xNJPƩ (tI|0с.'Vt?LF5\8-[d&nl$|u|O%f5-*vtUz -xvrm`;yg _TN !_W {IY$lIĉqɾP G$ꞙsΩ99#a q6W4))J8RdP&2= x6IhZR+;e)流kLwtݹrV:iƹ/Ed߷6 06qT<嵑ck"ꈣ87F:`n6}|j~a:#"ۊ +86|1N0(´:h,b0>+۶|U N4ֱ:^~ů"h-"9rڬ彁߯u+:p`G p7E216( !x'e©*(၇ YϸY<~$Oএ?:{^Be 4KA|ӎ1Dd2H%1Ҥ& >nbHh=py]Z#,r]*N$-oY~OcϳPI>^DX`>qpJ.@NHɻ껃ͼHQ;tB 7pCbyv,Y%Wo*pؙeЗCgqpMl?+(ǟf체396~xfҢzGlfկ󸒢| "^Rt%̓ܣG8,qV$_JTX~X kUhJη餓;cE)p Wr岃Ż*fIt5W/;ܡ s%J˲$F6r;s.j/'2`F>kk[ 1|k~ 'K誱xvTJ`v,S[`~ACCDW:]I?7Q+j$WS82I&gU [UX]޲Vl r- j-kɪlJ$꥗l9^zk?mGqoml]K 4pq+r-wu-kyg;.1tN Ok|GJ]~2.)$|9 I$'s2Wr%Ot}9Y;nů{Β$K6d9ėxyGW4J蕼7I!)% &7a Uw\p\ej{TNaDsWS8>b^BD WIuR[^)VN*xj2"u.Իk48#'O=bٸH;fYRhOL rh3y=MMf55+6ncarhWk0LS@ aֶT&E XZ44L+0?m.k8Obַfzڌe~z9AJ, :eҐĥdno }Ee),ǝWT eEb\RTJU!Jy Pq裩=OU*-6lHK<Ee)L  eoLb!UqRQULIT&uO0%%ULCN*UJ/%>!&6^nr)3[fxw!'RN]TI0IUii*]( !gBA Xh񫞈u%(w h*UJ/&EkfȒZŪyb M԰ybnJLtT`֩%4'd /q3TZIUb牫 % p`AVFR@DRA0gJ aI$srRq5I֯O9EW0)nxlaUzJL]2GTm$/"8ԉRa,uCʃj*J!˵TJUzjT)/XTNH߸1ki1E/ U.P/% u ;P~W+.sٓla"9FвCRj*NjRt*lAMK`Hdb>.ID/ ÅƇ Θzu: 8uz!#y-E$TRzP'y h  ǮV*Urʟۋo!HI_4sbj`H%TԍrŨn-pϽKzp^|KdE=5؅*Fݥ+TF:$eWUR!g^6^;CB_i0i 'L3ǃ.ϫl__##Ez EA)j<DR-2uuJj[R"(Ie$HTCK/(S HCW?#m%<: VȓWy `Q o)R /w׿+:*C6+o:.B<, .04L*zm;~SKA`a#&%R6} 6Pgywb%I+ѱ"Yv$.,e-)Xm9FҘ¾c\o ,>q7=@߿B) ;>+*sm,e*U:FY8c*;_eIg[($v[>Prm[ʒ*C(R:Is!Q H%nPΎݷt=x)v}\I=xTn?.a yrv"Oi_{-ܟ=_o7> k@PS -)%͍tw~7UIbV>CGrZ!P>ň` n}T <2hl)N;\b~ޢA&ʥ0Tr=Sƴv<n%R L2 ejkJKb`mumW*4TQahF0Y 3@myټ처}6$'d'~;UX"F VZBoo}Kc (b&eY ҎTmUD0D\ TuB"a+]>bw|*bcH{oo]`͚#XXfDDH uQl ζ)ͨ c٤, `|r֙g"Idv4= HpR2=T)UgxR`6`Í?~* `-韯-:^ʬǭ8YJcqIu~5S2Е.q$Ui \JhaOS{X\ȱ@~q|.366FSS--X4ˬ4lRĪR5 ı= Ғ,쒦W_m-fg--AWRqñV"wW0Q%Q7U!pXjWF`~MP`!F#RYׇ2Mjkkcff:rk cccٳkײȶmۘczzRֆ^jkkŝZ[[>0mV<裁q)d2iO"J**Ɓ`{-}if[i)>{$> 1 ,*Y݅?B)pB^x[(AŀbA)rsllkQz͢gLR_brb"(9穯clC@sK3|bB:-ûo[/&ymx5sMsLFߐLgog67nL+}er"**92L=WJ%zJkxk9iRFܳ33,8f9No|t*EMmfRk޽F@rR@{@)19c0r&qvmm-;wD)ի}uuuO&avv˲ؾ};L)9|8,BcY0܈yk6VN@3l,4™3xpdoT)w/rZijJS| q|~l?y_[@q oWMuoOp[9O;SkNݿ翿;g/qkm,.|Inʵ;WOwm :7T6ƝbqS_SSjߞYԔ_NLOv1=O~I11iOGrϵ.zf+ Hܘ=$|+Kh|Q!3iLMOaV?b)ǮݻسgKY {9FGR(Xp, !==ݘf;_ݯ===YuOM^:  IDATzs`}%w`_Ө!kR(0 #Fdd6mDKK zիR288H'ahyxx۸Xr#AhWy/,TJ,P|Q^"~lnfGm .Siegm;-M<7ĵ?S8X{W8ActW33g-?[U58~4e'kUw=Y6Kӷ*]8RE}}pN74mʳs69+xs/[ζ=ZEm5X>7198W)N]Gm*(AmkLwa&kcH>[Mcvjkk,92ABZ[[~tec>L&63 -O:fddi8OE544x,;|>O]]X=JTfuJ"D(`f6Bz mܰM(__=4*"*5]/X9Gl~*ړSJL6/fiJ{2lO>L6nz;樨-LLZm-ƲУK|97a˵O:WOg}63厅@?I=e>{>{rSUj͍;w8=?_9呛J] \S,;iL+y^.҇RVP@ sbFƚfzzU=(#eiH{`jj.ٌwMM}} y2t."{{{{A@ccC+w5@|oaaX"t:EX$ Y덕dغu+tN:$/΃ઝRҋi@N/G # <BOFzUȎ<֖cGm Ev/=\dӆR"~Y?0 Nܓ[Q[yx8}}dO~z~<[Y\o#6]Ƨε{Mjםtnuh_6FXd=Yl&딫^<:}ϑah=:64B mB0 #*b0[>ƍub|8%R-XE:bnn&JX+Z*PXrW@jDR&Y/f)LOO13=2tغ8.͛9#32BKk t{ҿ?Dm&9Rmyl(<(_xp%;q6 Y5P;]p^O9ȬSg7Mc罥:/0}wͰ)SZ9fSռTMT5rspTHJ.Xtzg:tr"/Fط 06:Jk&CCۨ]outw'25<ܳ}fNa..v\%VbDpˆ^rME쨞@B!(sP^?E39\ljT q+ *jYMSc#A]m]D2HFח͔[!,ϓJfAm,,36:J~i6;꼣Qd͚5)ۇYCcS#fHmMn܍^NJ lp9=\#v jzJN6H4 D6dWZۉ?%۵ᶇT?PpY>*7ZKՉxTW%ύױKQz*qX6 ֕/MxlʗB&N,;x0ϳ{x7LVZZ΀34 {\?$MME]mSD-cT)fA##Y@;~oX4PR@-B4 $v]G8UA/7;;\AHa*҇ $v2[;!IӞ !b6o B}tcH?̚5Yg hp\sy51߫=?7].ب[}mE*Egg"W{< ba D)cIЭ L5\ QRx?KndXݤ_iOBʕשܚT*U0RG$ʉ%.xArܱFZZZعs6l'#N!RWoWꛝHdYL:`OO7;w젷wF`MR85CE\;OSa+\iEqaHfR)6QEgJrdqUgжDzc3ȿd/4W\yjk_ytaK  T:!DXXX33;ڵ >ښ6/Nbdd؉@WR))5344ĪU=466255IGGmv^k#5IfEG8҄ki'9(L%Px[lin"D%>F:X:RJ/ic8S}l }/: _=f&ٴ!'>q/nOdVxɶm̰m(RzSFN8֖ok;ct$WUg4л*~=s/? Ӎ4im5x u^K>RR"z-bOؖb8-m-dz)ۘcp Sd2֮ϓ-0;hL#N'xXk, 2RP[[a^ HsSO[[kiJ!$\oy%s ΥKR,CQO'I–&G:h$|SNw5텆!!!RWƨo ri7?%W<9# ^2;M{,74oncbryo_N32b[Yݗa~ȝ-ps^0="Gl&vz }m&Q=i)_r??nFmWzŠO[111Jqw3MmU-Y\$[\cp`) ~)_rw}%. P ƀ WEVu|]J6. }hwggfgޯϻv(.*2f|Z|^-` /܄I% Š"d`piH)F8'7G iB%4͚p# GVjm%#YYERb#քYCK@H$T 8/YιjRwU*\Y459ok\jo~H?~,JHߙ'-?=͈S[?%Om:lzӉ(W(#`QJ)T&N[yߣlV]5~JSgnc ä8F..qTϋiuƅB`-PӂIR~ Daa!ׇA^#)O~ FSNvc5RCdeeQb!:VU'BxQU*n:l1B+A9݈`a(N4ǎ,S/X4ƣ&AQgڵmMD^2Giyzm۫ Ѻ2q?WͧL> s t|>X߼?/ds|;}↌#@zsϬ+F?aɂL68-))]?mde]G Oxu2w~:u@Nw=|K981Z.|>Q!]UQդ"h?ŬPIMKUV|Lf3Y("fHs;iE Lz0$Z|4/j1c̄gk#B,KKltl?9xh %Ěb\k"ușbNV=%6>Ґ[}™Xkz$, $91?ޙH},¿8҅G+M =A tcQ[}dOӢy™i{zCgu~c㏖SMv!ntzu Fθ,61yPPeF5*ĺ^0Sob1ip0DQ1jZsʤ犭Tí +E`>ARc}~:s ?K4$J3p݄DU="d BqͧF# @`(JG B@+ ,.EȠ zmHHw( 3HDlJl<]GJRGA֮FWH"ZqBW~)ЅG /LA~}DE +Eo})k?ÿ죸ȼ9VR;z/=wǰq_v..~I7`$0<9ef 6? Jgg@" B0Lgf(.D ;5$*!KB>!BD{zxO|T,p@lD.NGi4+CsϦc}v}fd@=O$S)I]T;[8&<%.kx.!i ё-EG9<&5z,|2:(#/*Y_,!YeWjlPQKzDook%KM7}}~/@z\8%>RxyÈyJ/|&g S\`d|˅u_x")ʷ"rf4cC~! !va6GЊ&#I+JH*%\Ṿzg,ttqɅH& υ@r-X/.$tz[$b  [<2e@BL̿9w8X=BuHB K _}xЅGK~,JO*38=h{zqKv=Ff?eSmjk,o[9KSy!:;5b<5Nnw̛3kĩ'<kWe$3rtA1DRSe  A!vg"a B&<S#җC3 plx DBbe!6rŕ#<.,`!p/Hq 倂 H"v;h-YS+BJCDRbGsaE(UMwiXr<g-."AE.LMʃQ 1c)Ex=h{zqKv==c p pϝڱ]m >9`4s|fm+غņMNGBlusRtN&3LA! |8w~ɈSrB|[_ ~D^xH=uvQh[N $ "N=MSf$:sL? ~7]Gʙ3gHn3\8n!m" )py@!ЃbY\0EOc"pSz 474:㚨/`2a7o jqIW D(M%HL5l]hAQ׀>a,A:}y$&#Y p0[2-!PR14EhB(s,->!Y@Mcs\^T Sy9߇PZPŰcrGJ%%[Z,`PȲŸMf1+F0c]Y2)2A$I9!gCrsm+!-…ZvRU50&xŁ*Lt{ɤ%,+Aꅨéu 5m {nތa4G뱮Z!'Ռ<$QāM,_p\ єx .E#."j"7 E>-bSuGX*1&]3c3)2)HgVŠ5:fBeZq ;Oi >LVWݻJAOj!y/ N%a!#0"IԄc 4R|)<,+n PR$3 ~ ڊ(=@ w&22HYjt,],W^ CBVFFv^AG,Sƒq&%MJTUM U,VȤLIJ@D0."4DՕO|76aK tiOlVPU#"&4q+jEHaX AHF(|q!P+>ŌWs 44²t)Wփ曈PC~rz:͊o^3gz<֖K/3:ă(gq^Yw4I i|:YXד`1d.L o ? v4^' (R¯TT$)ǭ>7 FUS8qS]Dq9n߆kq 7tu"d#$} X/B)KL VOz;C`<$hLʤLh D*L }D4Ԋ T3B"IIzNV1Q [e,7τ,ͭ c&bYCX.E0͜cQabq1BzW/!(((D$$9e qJ?kR|x75=?r4$GOX7P Nrq>F$//RPP,K^ CC~233ilzwttݢ2)2)~Q.6y? ";"%!H=MbFV =dVXJ[ǣRd7`ϗ#T "z:@h)*X?XX_7v.^0Z,TH*fTä餼\LʤL%d}hj<08Js}l~,QI뿍k5U04\ 5\ Jt55٘" Xd}X&Xz{{uIA~?O rrrh)' =|^$Lɓ'IOO(VdL%b}^n25JwSp!𼠠PT`_W6 ~HKbbsqx@ˤt" $3iJ# J5GYz122©S_"33T.d2!IVk߇%PCA0JbOOO'==]Oύʲa-b%uuuQQQg 244Dff&MMMܹs'//hH{ƾW fΜꊽԪ6YdY\cAe2kR&C$D:HWBχ{@6`w ^/h :;[pՕYTGwf?|Mq/U ,NOȎ /Y\f -!J\vTg]Z*s6#Wp}gm"<;MO$v \0=V^ʜj65{'|̨p합gumG_֣$n}.;6E ȤPEv q4PG,؊Su??&*t_a <$80( NTUMDrdddŢZ2` :ɲՊdI B$IBHyWZJ0BXGG}oKQV =ҋ tZJzAA`pH>.}E.^`\ǻ@ M{mGhtm~ aȓw9]ncf*H)FNW²CRux929L)jV(ʔMyL$~^Zh ۧāt?5nj%\kٶ7w-Yp합ܼ&^62+vSwqm˶6#Gׄ %o%N*`V#4[wo5f);xu jlHz?rlJGGǘJzhhHv8豃>^JKKQUv222HOO0h)//g``NEE^=diȍu>V~[r`z<$IҦ'k (=1*KdK}*z?D?gv(laJVyMwܖO>=Hzf lUirr 4s䨏 ܜNQw8\ez2)bb`H^7̣Y2ADieFș-cJZ YOp;N|K(c=q~t;Kʧh<)ц~d|a Fgc)q׶/ 79t~|E&vrg]݉cDcRBk?Ofp&JKL Fr +l |u6ɒYu-~wy]2uHB5k֯2O bc ͢57GaR[ 81,dA8%8K}BA~~~tFSSǏN@KkͥјdF㡩ST`0$wYVv?ӐlsKåb#m#)‘J(CVŔ?f+obT2%ڵ٣n>%4t(b&&hmfY2<^XTg6BSeNfkWS)ֲ)&[4%zJ1 uEmq+pTX v}GXfD2 :})l}9ɷjlm!#1!o+nVȈKek#\sE*]A þw qu vm]EQk-KϷR9ՈHpM0!+X y2-AF\*omsS`7R>Ŭ.b#*j>d Q=̰#Dvp̙RyM\ P‰O"8F+ä# +8E$W,u VNgKz=!2%%%l6Nn 2en F>QE?. zaVSϰRBjBl=U|0M)r['^B#=@gW*(k PV5hi $;K1얨7]& 4Vq tv05E.-ْGOr]T'tp;ޕX1MƔd[m5l\xY-O2fH<1:tv30FF9r@{섟b#!EeĥR9͜xmqק;_k}Y:XSD{@`. Zʜj<`HzP` 3][h7"5MpϧnJgԄcn8x^AT<"+)55oT4#; dŃBezDC 1WEQhiiWSa7Fݑ'55UUq8\.=ֈdggq֛c⦈I 긱B؆J0"D( E!АdybM7!vs9՘xa^7!>6ή>6c SR `cltvIvC/DiPP0V@! ;:b`2^{I 6_>`N<~6ހ oa y7+3N, [ &֌}Uv :hr< imѲc FaB+7jqٲhjחTz v֝]A"sήF#{56l6o9ٲIiB_*f3|l%<6, :h Q3Ӥ=OsqުOh)o7{ucoixĶ,B4nTvE^^";FEE ̙3'~zIOOJTUݎfXV |>`yk< gLț _Ăffc<@ Bzo,<|F3䕍[|u]~=󌩞M->ʧhǃ=:LʤLDyPs*A3G~hiz gə|G[< mmYf***'??@ @ggӧ ^:݇ɤ&+**Ջ7/cNX D\Hf爌a*QWUY@Kk ^ ץ2o$xL!4gP"qXnH/bl3GQ;f{G;mm,iq`Zzjf}ȲDaa(pJ,l6=5vlv֬Yq"22.d|B)T$Y:)gpa%{)˒gɬY+.MjITD38TU$Dd5"~ҳYY\TDvv Utc#Af9FCI%aDdYF$Ofx?3 buW5ao YҪ%e\h cR&eR>GT !08SBhS(D6a&޾>B 477a022BUU% z=$##<^Bh̜>=IZ@Ţ3N> ƢO\MbLTR /\j]֠8+lH/ $Vlnnz{{;&դLPSħg$qc> ɓ "5n ;Y:ɲ* (((l6+]N)MVhϫNUU_0|D^B^O{[,( *FAJN\e(dA~{ٳ3p f3jR&HFC$c. CA *f R1}t<KNN6$Xhl<ŴiӨ:ŋz<멅b #D-HM`̐PC*}=x;C)&vy)F+֞35r8VP?jmr- |_f̙8I8I>j[4x ݵ`|>/@!KVŌ$AZZ*=]P9idggi *#Yg+A㨟?9Q 2i}օe!!U d+U"kaM”-.WY\lGOO88|͸es̡B[.uR&ebCDJv UUV1v?YfP׃lCkk b4IKK UEaa!)֔qӗ{OUUq'0j Tz`Js[P*h;, Nmf-[.LRkǧNH7ۥڱc6l W\wKii)]v'5֤L/a/R"Őc(i?Id1c L$ RR,X,:LJs]$47غC[[UUye7{XuVWȭRxsLjoomGb(GQ^t*Xr澚Y[5҅[R__0'O_=a'O#p7E@ 'tK*%R0FMMMdaXoTVN+MH5n^~W))z_yfey"-*E7h b1 VǃCɧy2+'9eR\Φc)--Mf``zٳg388ԩSZOʥ'7o]o`0tB.!h{DP)rEU>JS*IA%ξ=Y#XGw{Д X_bxX!#CB AU`,ȘcZf ULZ mlS{hbW˲tV A^ʲb z)z{{ihh ==ӧO3uT}{wSN*[,X`^D~~>x<^/n6;AerrrtP)))8/Bc,Ijqw1v_ & ^@kt*J͂HM$C )+;Z )@$I+r˸۵;NxvϟT:rfz 555x T:;;u 9viiitvvr)=#++JJJ.ƺ"9 [_RfUHed 6o,3;E5 B)ڷp)"* 8㔵,GzH֡(,$ $9B }m%Kוccם 9u]]]Jqqq\`,^_|cܹlQҥKپ};W_}5ӧOW^~7^nn.Fcǎʂ Ӳ />(XB0=顸 C#<~>Bp\q6m333uKeDLbW9+? ׬[ &hiQٻWPX+WK/ V]aXRkFζxq$Pپ݋$%55%W(h0Ee 33Zrrrظq#o]vq㤥Gyy9lڴ OQQ6=)O[oy7{{{!5u;wdZ\.}JvvWQQA__FZ0Ğ={طoNb```0řQ2`Iaˮ`BZ*^]ehX0g0V{#.-y錮Z <.;Çfttt7ndܹI|ygX`/2eJǑ#Gعs'===/sOj,里uQ]]MWW{/Jz-өӭ6$I#--m\y?R^^bYݟzLxp8tvvuV v: #w>@EUE|hhY U**DX9QT$.I HcBkqT 7LNDmÇ՝2l/+`DV: IDATIo~&6|3/ ʪUrrn tRzzzXEEE Q^^t̊ ֬Y_*---L:vMmm-===|I(݇zHW  w֭С!=tCCCL&qXSSC[[s=\sMn'\.*Nc^/fbʕS.10btM\[*f5D5~Z:gAB$u<4,''L֭޳ H夎W':x}͂y 5Zt'LT3fPVVh|6mڵk]wUUUFmO~o$.]Jii)`>233KG(o] q頓reLp044_ 7|3o[MMMtww3oX2|ˁ̞=`%k8NN'yf57qRB$K\M1n&Q \PIRwGbII,⦳3ʕQeFpx| ΜtYj\ҬYΰI $qIGD˄,iH MmA[rAb~233Yz5seÆ 455(Tc4ٿ?Geܹq}ٹs'CCC<߿?n|+\ve؈bR.|K_J"t߾}~\}}},[ӧSYY餴P(=^}>c8H L0={ <\.K,aƌ)B0k+&P)}.ه[<| &K 6n 1Ί詄vmz`_UVl6?0vsܘΌ3dxC᝝Z(;'÷1!3],۶y"QQa(D2dxDd#m j)o,ȲL dddtvv|rꢠ niӦq!ϟyg(((H0͛ǼycY_Ix''E/vW }U̙3u7xv==n~'O:')gaE.. '[H +Sjqӟ |(༻Ў)өPTti ̘aSq8.{% 5d3:ٲzI=T/pI1x鼋/f۶m9ra8~8ӧO?```}SJض^{^xc\.N:EGG^.\/++CkR_$y7֭[9|0[lիWmw&P룢̘kii{9v"ROdMhc nn*#6`& \xzˋ,ìY&22$ `6 ӧoQI˕W^W/vG:o"xľUfɤL̉^f랫%Yxa3ϗx 7tfvQZ //Qcʅ.M%KQ.hmf\ ;Lr&:z(b0رcv555ر~N';wdi,(Z ꫯS!].GTTU׵Kᢄ- O\öu g+y8`zCCF^:`k!Eyw)))3fE8}4˖-(Guq=^E11 ?}pBトmf͚өKuK SWWNJ+ȉ2Uq>88f͊s]B~/MMM PQQAmm-#==;wruȋ/HeezYr%;v`ٲeTUUw^@gg'˖-v-[>}:W_}uvp]SrvFQo*V') ]qn5<-!ÍF)$ctI0 ƹݻ_|fv;ON gsddӧOc0xw ''|3aŊ8NǘÇ{c6*++q8رDYhQRk駟fpp0)uʾ}xx7Yp!7Yp!fz222>? .$33C=cɓ>}y.r=yh"Nf԰h"N8A?n^֭[OXV>̴iॗ^bٲe\uUsN< ,`˖-|^f,U5m"?cw~"RpAT>+A,S旰\{B!/_Nss3.+k2GSEn:>ԩSYzIƑ.^/FUU^}:::عs'EEEw}HRq߿%K`Xvލ p!|>]w 6l 33o95iӨ套^J\,e׮]455j*hiiaڴil޼9|"Hd{ Y]]]ȲV]]] /`0i}2uTol6sW`ss3{ \^+ iiil۶$I˓m#-STWW}{G&ʢ.!N]5?D+$X! ==Fuu5-xNUU9ioo'?IYfk8x:t(^uuukڵkijj?aR ͥٳgϮ]Voݺر*.nٻw//8u1Ϛ5 q(_ƅ̙3ijjg ɣ>ʑ#G.{|ٲeqimme˖-tvv2{l^{5~cٸR?h={6eee/}KqI~?8_g̘AGGl6Xpa| $Nr[{7 AW'=*/G?}LFI"xĶ=JyhT)O<r _~9 8|0n\:::hjjJp|swA3=~8lٲxJPs(W ӟY~@qqqtzzzhnnkM{{{ 7ܠ,qFN8c=vV׹Yf /}Ge׮],^c<>(>n |566OQQQg9JJ`~hfϞ=s嗳j*Ev#I F !줵̎mۆ477cZ9}43gw孷ޢ?ݻj{!>~?O?4SN'Np k:|bؘon֭[IOO7tѢE|>oN}}̓,X֭[ tuu0޿?7nd֬Y,\Pث;蠡9oG˒lyxa$m4I}Ӽm߮74]$!@B6`6{Clyɒ%0zb!!i dy9>ʚ5k c||@ZZZDn eee<3Y$:;; `0w%ܳhkkL!~i✦7m.RGGǏn*ܰ%%%hZۇT*e…~'&&pqq͍'NR ---X,\\\H$wދ64 j̼yhmmV J͛Gtt4...UIz' qj`Μ9;oؘC lDEEP(عs'{aϞ=:tLgg猳=\\\ bVZh4,]hz= D\0pw]lA0}|v&YfC&111D"6]]]`JXlJ%K]4a5;F_PL1:kPsw~ 0ԐaS?aI䟃~" JcH38333JOxx8Nʺrł^VK]]ݴ^ܹsbBBBP(;v򢣣9sIHH{ell FT*<۹ŢED*ݻyWP(ZիW$mb>}Z(OOxxӮCQXX 2 TH$ˋ9sPWWJ9[oJ矧uM{{;6 rrr{ aNRWW~~~TUUSYrWSJ% 111`٨СCΝw Lʵk֬!;;f6l >˗s]wX,9y 1066Fpp0̙3HZXXHEECCCd2@hh(9uvvꫯtRٷo~ۭ};r֬Y'F>jP3??Vˁذa̝;D?ORREU6DRRRjOWW6M*++_dd$JAVor\]]J &&&HHH ,P9s :wwwf3;w|[\ºPJwq Y^ IDATahhA @Ǜ $""!H aZϫ֊1L.{9PH=[ĄՄTMaa-Os;,j~vYb2XqAߏX,fÆ <yqylc=7M-ZĢE> hhhl6"Zb1 Ӗy{ѣ,_|}}_~e=@TTDЌzihhرctM3 v8>^h4222rŔ/@O8=^__`$(fC.388-ٳg,aM{nh;KB$rVMOkjr&ӕ|u:pH$h4ٶmPUUDT*;w s  ˗/'::zc,))a޽ Xf ...D"zzzرcLJ7-eΜ9Zqq1۶mJYYYhZXii)d2ptRrrrbaǎ1>>.Ŀ//lf;Ԅ`J%%%$$$`2_J||<555p)7osԩSAtt4%%%H$O$<22R(_Ly/:ˋ^J///سg EMCM#~g5'GETbX@VSQQ!LӳNjAAAnFGG`Ԩ@m_>q!?{'QHX$2Od3W,3>1LP-!˼40w'AX$^2jF"1sWv(i7O||<˖-T˗SVVFss3-"!!aZVܹsX~~ gL-T*{1QT?~JKKbPZZ*ק/S\\Lxx8J 68Njjj0NX,YFF#7o7sMV kײi&vEbb09[ٳWWWΝ'RYh'N@.Bjj5)Y211L&c…ochh;S~JJJcN@&ҥKBn011F_śL&aׇ'6M9LlL0d2axx P&wс3(bE/lV"gsB<:7}CM/L~t @,a=GH\)fpS9tv 7 UUW#oǺu 7̎ɓ /YjϏe˖9xXz5)))W>rnnn<u*6vMGG e<qogg'%%%bZqqq )))3ƍill+B^Zp!]YjZzWW...R]]ի"??GT*쇰)eӦMz6oLss3ǎJ455 111VmVYPlFS\\`@ i :V N,, +A ô= !JD, ݸhB1mIA&)d>>>뉎fhh`J6 H}"qf5a(V&#^e/J'FIذR}0LQ4, tI[]]-,XCֆh5k֐3+f` _[c' ::J||Şi^+a0xWW«M7(}08YUU%]ޞѤ%龳[ފ44UՕbBBB0 1D\.G ^r}.[FI=x߳sALb5ӳŸ!'ʮRiGGG( f{j5_Wgdo{!vy2;v000@`` 7tp;v={P^^lٲ///\]]g/zgΜzlݝVORO-S1klL&۷og֭{f*̙7̙A>yf8y$DEEQZZJ__GRRAxޑ#GaŊ믿.О8r>5 JR?sN80=ܹBBBo,b`RQzat>F lhjddd`XZV9{Pz=X,!ؤ.&7s:ms #Mn]C T 밎u Sf!>F$F$u] EznN쨋S˗ ?Q(HR(++cٲeg vfcbb#p/,K8z(l۶'?v裏Gp?뜜6l؀L&ʦ .vݧOqZnRRggz^x鐚JII 'OԩS;w_ةkMWW}}}200@@@gϞ%&&5f]b՜;wUVh03_.n/^,Frssy׈q* FZZmmmBOAPQQqMo;}̤ 6oLee%Fkʕ7b^z%!qFu*/^Ahh]:х%,)[l6 PéfJ}}=( L&&IhQSSCHH*J*sqqfa2-֩_T i("c6HX(-q6a@,2RU3h ";b?H!Q C, TiՊD"ԹX,?~Ymp*ጌ/~B:mۆN?9!!!ӦMk:u |Abccޅ}AjNNN۷O S$ȘD"Ãs^bnDDZZ '88z_l޼?BquuLJ ~_SXX[ơ7JAkl6غu+DDD{nʰZx{{366FxxZ&::ڡe-X,aM ?~N7k){w{Nhz,:jhhAAAD{{;&a=b.֭[ѣ裏Y&i" T_} 'A2Hef9Q&˱w!GňgѤ Ռu€ձ 2 ϢI s?YgFIP._r!w6СCyp 9ɷO)--(ޫL۩l6 l̙3۷Hff& "-Z(O=gΜ͍իWrJ.\===Ç3::J~~>*cǎ=mp98 cMl2.]zE$<==򪪪GT +F#<7xyy,/ a2__Y#<f222H$ ̯^!Ct:, 3w\Q*!IOOF󅇇ޤsm%PwETT0@{qbbbPTGxx8,^~Mgıf ܴ NCV QAD"ccczaLՆX鋖b61e|EIbby^^i&uXFL7b6=MI5c-vI%Xbq "2%KXwwwqyyyٳ^x΅*&&#GT*iZAƒrn68z)ZZZP(lٲ D;j߾}(J&(nnn_n:cǨe||ܩ1gΜO-]W_}UDjBTT>6mbڵL󣽽]x 544Khh(wd2~zylB~~>˗/G.zUOf4r9LLL`$L;H$3}Q~FFFyw}W &x$>>鬸ˑNv/Vi |||]ͅl BqQe0:j„xFW^OBN@駜 R!L}j'3QD"1Re2#{|`$Q\x9ƱYM"ȩmUU{q/{3f27p߿ibccIǪ &&A}ΝKHRnfnٱ'O_ l۳իW8YNII mmmN4\\NjjU%hllϏF}}=qqqB.,,sN6mDVVoгY`%رnnvzʕ+y P, ɨT҂JbѢE_"%%Ep#M>ods=p 㟧h4r뭷2>>(YYYIBʹsov~.oX$S'E.a0>>>m#[*}`y.ޖZvc`!v â/6 G,VS?6j"dEuL55<eS555gŊ,X@(u\Ou+^kk+c9u<,]zFxPP5ZZZʾ}xwH$6>̋/fc|_uڝVWW҂7ٳ! ÌvEbJBvÒ%K鈫 \NJJ MMM3|l605jRYY7!!!瓟?kڧ===:ut_ 兏( Ϋw!vA__LLL>S؊ FNpjjjxױX, Sj{Rdٲe3fMDEHDD+MMUG"&KXL1t灠 &m,^@,1:j0bG\6zM2C2oR_G~'EbSvm$''Ddd$MMMDGGOꫯFZZڌ#;M2,,;v>칽)oonٲEKOOCy|_iE.SWWݻO~^TUU 233?2]+997|JERRNbgR <<Y"N:ő#GXj ,СCX,hizdʕcǕ <ㄆZvձqi=^f3nnn-_att#GHVV477_D"0wdVº>ȵ\]EtvZGi;EE#}:/i_Dz-$D"N"~fmmmHR|ɋ]Q7 ???bcc޽{ٱck׮u!馛زe 裏鉿?###=zn:Mt 6ҥKv===ɾ0J$g^{B__l޼!j sbbƘsMQ:tD!S E100@[[0)i],xi?.d uuu9]m6::Z[ZZx)..fŘL&<< ?~y%7=ϗ>i/]ɗ&Q} Q]]ͪUhhhNII vvtww .SwOٳtttڵkc>|.Z[[;w._WQcindr(z}oPTTDp>s뉈 ??"V+rGW_}e˖b@Te SdL.04iiZ99"ǡ_Z >>YJehE9u{B&M<͛םRRRBLLT[8*V++z_~~={'fܧхx Pߥ}bxǸ;P F\\ l'!ڐH%Kayz" ^rss/wiwϞ=d2d2'N ##y{T*̙7H <3h4HOOgѢE;q``ttFSDQRRBgg' `ܹD_()޽ooo 0X$9D^lr>""BWWXMMꪐW`l@/XjuNvv6fZթ7Rd˖-s=Gnn.7p?OvZha~ez,!,ZTHLL$/ϟ(O;@,OKNLL$))|`ܹ_n6ٻw/۷Q*l* f3{/W#<7Manbpp+//gAE322"0l6.Ofllڸ;S..nGZdڃd _Xlh4">:޽Zz{{F*p;-_b…dgg3o<dhh;vJbb"_v*k|FN<)LϴٳTTT`0d jyԽ٢a.?>wf޼yb6qy9y$QQQX,/_.X2؅Ϟ=+lXm62S]/!"88X^GhˁIaKNǞ={ضm]yWcҥ3a4QTw^iwlmmufM4l. x'>*''!"3fllvFGG1LR8{zzȑ#&TMM ,_?Ox֭[E='OFǏsZ[[Iݽ211;9s|W vO( OOON>ͮ]rEEgΜ{twwDll,zVB ))>7btڵ N|)HNNv(l6Z[[INN(Yo}[qww'<<\J?ҨLhh(H&BFo>ijjbZJz{{7oO<ӺMweeeO]N8AMM cccN,^;}Ccc# IHH7|3~!sYYYkB_ J;H\ .r9D"l6ukҸNMMeϞ=⋈D"}z= M6s!J/:WyCT:ɗhZinnJfY@_8qV,X*~1裏xɌI-,M|> ,Q[L6YOD̟/bpjjD'&\Ed֭['~!?ll۶0>֭[ɓ'qqqQ⮻b9͗LIJJJhiib8d2)))_ßkAΝ;'0ҦfvRPPŋYz5}ַG"̪j1 ǣT*y;w.b}QR),uuu?h4j9rMMMtvvu>t\HJJb۶m̝; D))d2KߑCj*Ȯ[b\m6*++yn6mDtt4K,!>>ZMll,۷o/ ߦN4r9=V˩SŅ!J%ddd8Ȕܹ"J~ozvFFFhiiAVMMM ތcX[r$LlقT*E$C₧%3 ijj[oBe^TwA$q 73otuu bVdfQ\\̯k{QWم:d&//Oeee|hZni=%t:àӧ 9BCC^)m6'O$11 1Lύݻzzz(**rjt:L& bV+K,!** DT*%//Byre6yGx嗱l={V8;!##c^thhhѣLLL# /LVVpMMM}Ꞹ<~Z[[)|R,M븎 կ%Kn:`} 7044Ns- hhhl6;6bˎ;3zzz(,,DVs))駟g?㭭X|||j ͆ `h4=ʲe.sbhoo۷ŋOxNuu5vBPPSS# <:u `0L~Q*t:Ν;jӄhriС %3ɦmi ĈD|>u\T|Ǵ ٴi9sV~L;aaa1<}NGmm-<3_﫻RF!==\0ٳڵ8aK/!B V!ٮg q!{=,Y›o)Reeej_䄺\.wᖖRVV) k"( 1xLŋwX,Fjj** F#.$%%!tYÇ ‹sttt s???Grr2!Hغu+7x#zzzx嗉f`cc#̙3"X4 6xZݝ={PWWǼyXlRMJt2pLfcq(,,d<.& BCC3ӟfeN yyy`4ѺåZSUUkFhh(?pRP(|ߤV^Mxx87n\ijIVc A [uuuaXžL&m-[ ZٳgnW0w\y'88XȲXz@J㏩FTRRRT*e˖-444D!Ir+A#r`b/e]u|1<<O4/zi}3=6ߎ `o4)3Y $ '!&Oڈ>y8Exڋ.#:ox?ӟ{|.\:sY{};k[ǔs~K&VG"}U ,..N B]m'&&Fopvi쳧U͜ۆ>|ׯH/6ݾi^=N?i=ǜ9s݌7u4|HN?ܼbq!Ɔb1_|GEFF nܹs>}'xXxXiN }E8b!`eI!/X x@[y ^ E'N N322'|8L#ȹ\~x'!k.Ur.}yaĹt)vR,ݻ:ѨǎP(ÇbΖY[{ _ w/Ř+S.05u?/lɚ}4p"n݆z"23pm1 29:jcoOXv>pNe±M 3X3SP#5Nʃ0$.\*T{ǹ}ӟ*SflY`5VśhNp[XMawDLiu.o2^uflZ{YF`!cE8̊F@$h۷jfzz^ŝEr ;)a||y8sShe<І%O:p]*'}N!QMM'OnƩSv0?3?/YZr93g2; Xb1o7xƝ+݃%)kEc|_]sq0YsVcjk%rH$B]]DQƸxMM "%v[?g2(uu5|$ ػw/bqA??8'_oR.,Ma5?y?ڨ::6ȩo$@iP8>׎M:ґإVQ f9&6؁4@Ghӿ!rqfgg=J)oؖ,<՛RLO]|$+X",Y)ۨ Vɔ$gi ,77ٳy3?~-Ύ,-fcxxp8$_}.]_K|}Yho{Q[Γ'O;|ZosK?|,_|tuuQ.ٺ#$ 5%d}bthBI2gΜd?XEt]Sb[uUz +1jf3 %mEV!*5G(T鐼wo'bEt]]]LO9teK~#;E"db.;NSƍ,,,F&`2*Za2[xYPfy+锇\u~M."H„tKTDx*5q Yda(IDS^t%1sO|9[orG*֭[<~!(BzȪ&M SyH Tܒ<_9}+Q >IDATK[PAc>IoVHQGH$0Gɓܼy|>Ooo=ߍIgڵkLNN200+W]CM2P:;kؿd2ի7͏^y]|eɓL=RtÁM̝;wbD*"ɰo.m jBKK/ٳGڪ2d2s444p\GZ.pBɮ Q*~%|r37k|Ojk9~%w"T mm]AֹR)E%%BKK:ϱc[?q@` XTjg *kr:TX`:'; tՀJTC Jڈu 78%ବ]t5'ձJW~,F*/Y~I4LLLNg6܄_~!Lf= M,2?! `Ou٤<)[*/K8>pȳ= #0 RS/GM@f HbE8dD__L&9{,|]dtd0_A p˗/sotvGꘛqU핸aff)VWWioo7djjH~mg_[[m'?3O׷~%/^"gfT*E,wQ(j>kV:f\7o$:۷R,/%=ʀbIENDB`mcu8051ide-1.4.7/icons/other/timer_01_1.png0000644000175000017500000003201612067167647020703 0ustar milleniummilleniumPNG  IHDR_ IDATx{UUU ɂF <{]tPR#BH$[[[;pBEE  v4$$fee߿?44t˖-#`,--_xq(QFFfx.ϒ䲲2w;y䄄III}}@ȑ0(cll,nHIIVIIIoo}}&@<@Clv NNN޽C988s]#zzzf5b5177߸q#6RK# H;[D"=zHKK+=={2%%kkkITYYYRROJJJeeemmk>|(G$ȑ0@teFygxL&իWZZZ}mDLq( G' <;FGGp8EEŞ+WbOΟ?UL&cOp8 ++]vq5144d5(FȑgH[~~>keĢ"V8Io۶Ǐ8zՉb 5W\F`Q9 jaa((FȑJAaBCCaC87X瑛7o^z5%օˑ˗/?{>HvP?>faG1 ]]]d2ydlllX}vTTTqq&Bܹsܹ}}2-[D_MhNNNT*5<<}ZXN^'999(({3<?vCMMM\!/^hxC)**"=zm@&MLLBc6xդI#(Fjkk8eeeccc݅X?jjjp8ܗ_~YTT$`H||| NOHH`Mj8AWQQ{n]]@ٱ!337>>> nll\^^d[[:4h}||m_PZZʽ߫`E`P\\\`ommmjjjhht~~ԩS z+IJJjΜ9]]]Nonn?z@n <;}[ !wddddbbgݼyΗ_|9sBVWZZZ^^^!HOOTzIYYyƍ`%m_*%ƍ{==S?~ &wD… VrҥUQQZUUUUU%))ýRoooGGGAD80\%%%?uTyyyyy96}̄ ܹ3vXSS۷o^qʕfz!vrǎn_=x𠺺ĉXj˗/.\7L&`4551L)(bssj [ZZ?srrvDGBBB&DFFHKKKl˗I$ҺuRϟ&%%mݺ[eHJJyׯz̙3߿d[[`mq8ܖ-[֮]}3̐ɦM Ɯ9s>}(J}}P#/d2ʕ+طTOroFPΞ=scǎر/_\`Abb@/555W游z(_U(/+Vo32aԻTWW?~Bb(--G&W\?[B`ۻ~笵BDqww/((={vaaaOO{mm_D°aS(LFFfƌܛ?7n9H3fpw.))J<,(FqϑQbbbD&\¯nLcn2=i$<OPΟ?|~adzs^x1w\;o޼Ç3{/L&s͚5k׮QKii ^ 6;jjj3 mxI&O3:Juuu7ONNquuTUU͑:`G Q``ĉҰׯ_lQwww}*V\]JJ %%@HKKLMM%%%O8A oYzunn'},|GF_~B=Ǐ_t {W[[{955]v/N0D...+ƍJÓ'O+Q{`rr2 -- !Z|BUn͛6m%髪fggs?= ѣoCp.\jhHiTLZبw6}>{FBkqttŋ Bw&cВ%Kz]I^XTj~~oH;wΛ7/33!xUª8.44N+++?z222QQQMMMqqqCmذ#ww#Z+MܳtXI$HF޽{TUUcbbJKK2%iii :::ªeeeƮěׯ_WVVDǼ{w޽|26ԹԈ ; h#vӈ;lkkk---9;6l d2yΝ|ޞcHGxxg}ےf ʗ;v`-)ꫯ<<<S~'N "Db_cfΜ)!!1o/qY P"B35vjj?2[[fGGDIII99'O`cǏ=244LMM]xm`` ']paيP :h---۶mf]xz׮]K,̔ioo޾}gbb?PNll[HHw^^hDcOvڱcǺu5SGJ...Öƌ3\D"͛fB9r˾͇nݺ`0͛we˖!1ׯ{{{"~g*?L2绺DhرcY70zzzYYY/_4118q"BQQQ3h4ZBBB¢Il# ,°pDAAA{ LUUرcV:s ;Wb#҉--L&o޼Bɋ ϝ;hѢ !?~9h"gooWWWP(|ώXMj]]SN&kjj>ˎ,.\ؿ+--j*V69yfHHȮ]*FKMMͽvvŇd"())544 Z[[ͥYs0=Q\\d^|yƍFFF?~466PRRD zzzrrrFFF2p,EEE.../_|)0c&"++sSSS&P"W^ ),,TWWui~ijjvttxS^xח4"B/iii禥X-cQTT{_|~; #++KӝfΜk###ADc9s`cV9jF[[[&L`=oddW_͞={̘1?B(:;;?~,Udrp|_^_ SSS"FL}}YII I?3s̎>wo޼y?{lջ={oܸ70kll477777WPP777߷omgggbb2uM6a F||3LMM ,**;99 x277733Ս܎j:111p^ܑd"x⠠JZ]BBb۶mYYY||EOOOGGN߿)^ձ"p)))$)00s޽UUU555_޼ .]?*++333YUUU/TYYYRR"Вx7o% ^z1ǍKx>>zzzCll,+QXZ]g/^;w.B'&&~!RQQ[r~:u*FT{着*IIIKK#G0EcM@&+l>+ c󓔔9sfrr2Īʎq49vXjj*kǏQUGsl{ (ghh$y՛$- 8q"ǠVEPtuuY?R(Iwܹw^l.7WWW&yԩ{uww-\pڵwqq)((8~aݿNw8+ofW^e:nuV?vBQ͞={ӦMB Nj&9TPPu)S<~{N[[1N﫤Xdree%V_;-//$Xq|n33gkVV־}˱ t",'L !!Ӄ᚛_lYˋIIIjoo"Hv'OL6M Jl#1cƌ?~Ϟ=XoM,ņ666vGDQ9cƌqttV/֬Y#.WrDF700hhhH͛7@ (**OVy?~s8>x|||ZABΎܕX JEE%--7W(򢎎θq /@DcF999eggS< p%%iӦJJJ dzzzZ[[UTTx \P޼y×/:th޼yW"ᨠёΞB}dž}lPz*IÇqh "BVVVx} n7"#""=G_yabb"wl~ݢ /oDCUs„ wA޾}{˖]vH]v444ٳ';;u8ce666px&W^*hwY#;:C!6ٱׯ_V &;IHHp"mii9 !&;;ȍY# # # #IlƬ΋/E/""" ;詯>}7ONNG###++^JJJ*//'AQQ@ ߿C={6))icQrF߲$˫!(J`` DB988DEE988IuueIIp"Hsر|YYY@8{lOOollޞF999eggS ;4ϟ?gsN P(ڽ6VVV&Mjhhpx|ʚ4iRccz_MUTT޽[WWuΝ(22xBG]veff/zY!qu WXXH"0"d2(oo aGL&y{{ ;QXIDAT WVNNpQdJRnj#( ; Ѕ ߿{l$]\\\֬YmZTT͛ӧOydjhhZJMM !t7o;`HKK\u6ƌ3g!!~xUTTdoo!4{n&mee%))֦`0 FVVFc2X'RT!Ho+F8r̟?!ĚE Kp8|3fr4?+WXDEEyyyݸqcܹ666/nmmEeeeϛ7o}iqq gΜAeeeX!DP8sjlldוQQQ)))eeeD"!!!ɓy4 LG33G"Lcmث444p(.//722pD"ѣG؝K;;;A dǑ-X`֭...ؒU.\68w\UUբE8VTT?)!!-@ K.|bs+iiOn`0Ǟ$6_rݻ7ܮ]&x ;0͹$Ǐ!))֞֫9"6ّƩS455BmmmK.}]ssC0Cqq1BaBx  tRrss:t٤$Wnjvښ[[[SSӚ7*))pBJٟ|2DZnݺuH$[UWW`r$))~AV[[[QH/d>eժUyyymmm666MMMᮮwﶷooogxرNH,7n 0(N$&11̙3QQQjjj/((pqqy&V/EIIiڴi}ueee6P( ˗zzzj5(/_\z5V(칣̊+fر˗/䉋KCC+..E uuuʄr*R=zaG>fu͚5nnnl뜜YfeddܹsҥKnnnQQQwvv>[DBhʔ)|:~qC ʕ+z`&H_GG̙3999] ;Ȏ'559H7o^ttt]bnnWvK@"FTVVж422x<Vpe>7E8믿UWYtzCCà  ;3fh4>N8A&Gϴȳgyxx p{=|J.]t˖-&ȎbJo:|sN Q9f(ͧM#~3R)((| *** ,RŽ dYԩ իW~.Ԥ6]ы/[ŋ6lmx<>((h̙p hN۷o [ZZUJJJ^^~Prrr_[[ۤ +(rqbb:/fmmmΝ{/bdG10 c0DxxVcc<䚚K<obbs ;3g֐FY[[>}v(ҨT i4ŋϟ?uƍŽ pq | ̃.\8UUU\rX;vlر݋uvvZ[[ +UUQUq=zt۶mjr9o-HR>'??[kB ~!9H2\VVM ĺ[SSp  *%(oD" vG&bee?c/1 ssu9r}QQ޾]H$'233+))u&"윞`ffvZL$ ݛL&1ciRR:Aedd`%%%v004g'OL2 N㊊ŋ͙3gGL_9Ԕ=~Z~',%$$2練0̷o?~!̈́gwlll®ڵ x֊?iii|ԩSLӧO֭[YxC?x|||'Tpb 2\UUUq E9rDYY!j_C``;fϞmiimŋϞ=̬x{v:ujmmmgg'BhϞ=L&3;;{N9sfѢE8?LOOsGatw,,,ҥKy#(F̌3OаﯿJ{sܸqQQQd2޽{eee{111?SRR( Q97o>| J駟B،,]4""bU.44lU,,G>}ظm~-455  O<9eʔǏ`ikkZȬX"-->ܹ=C&+++b:&L iHcVLLL'NJKKc]#533ٳ{@ `ܹ3:tyIϞ=6d~] ?ᒓ;::BϟWVVnii fof77^x`?]رC_ffO.%%e``ry$$$tz@@[III\֭[UTTdee"x<>**jʕ:::ZZZRRR?2W?#v>9CXgjwwwzzzttt{{;KS8}YDDd7nhhh`MMMSRR`\]rEAA)&&F]]]F;ᾎfx**///օrDzQQ/;~L&`rAL+`^ _v6mFЬYoy_vA^ЫQ:*nf1;B^пQ7fdby"LcDh # # # # # #.IENDB`mcu8051ide-1.4.7/icons/other/timer_brg.png0000644000175000017500000002705412067167647021023 0ustar milleniummilleniumPNG  IHDR+sRGBbKGD pHYs  tIME ;i3 IDATxl\u?q4.1Z.؈fQg ,.vTâHmEB *9hċbCI ;% RI8M9B6vt7iĢ-nc'+^>!gCrrޏ޼w߻{X!B]!BHP!y.B%W'Ckf6B>+@[uVa!B& %`p']ԀK_ hͬﳘ-;gf̦ @]AB!,f/ZZ%aX5sOQuQ3CHP!V3KB^nڙ@vQ' BfZ<Q ! a6:Kd&.j!1K>)A!i8h,!_7-U>D\l\Q/HomB !GG߯h3hjEঙ=RL"9P-P!_CwCu;0QkfV+$\0bsiҲkB!QYB!Bqiu] !BHP!BHP!BB!B!B!B!B!$(B!A!BpړQoJ&b܀= LeXJ;7xުK bTEN?土B!^1lgCk*[%A!bL!4! L!(*$&$(B!A!B!A!B !BHP!̬NpJ)6*_fK2B!_ne7ZB!E] !g>𜪅BN3|][7MNz!AgEjJSX5|}jyW !<ۃ!e!bw=9؟W@!N3u%9ތu¯ǮO;䛀!(bu3;Q7tm QobaٷXZX1Q16>BhMuDHPo S²>iv!8@fbY 3f53_6l}`&n/b_2@f͚ٲ͍ĸ-l$kC>K !ġr*%T 1.τEA u&)*f 4IHu%FRWl{ ̮z%+҇}C \*Tk?!BJa! #_.gDL@E 4 IBXhxX+!VvslGLw9~m\*¨Z(+!?od4SGB+Bq+P !&7>B8cX,?^j{Elx ?F&X.x鞾eD+'y6}{~.~طiǁ)хB>3EbK˖My~?}{Jm52p%;*[$̖?^6qؤHrY(~ofu n[8@*6cz;M3n)ZfVuJa۸ T!y$LlsD[lwjY0z ZU0(~p5!?ӜԲ}?GZ!\T{c"9ӏD 7Cnngm!i3{.\,٢o0ΚdJ8Sh$(B#f ۩,mf fÔh?D q#YGb,/7$A!b !\7@m@bL7#=7Do$3rP~!8tC_>3Ba緎A9! ABxxIih qWb5 6G]!ο~wN":S])6v1Ml \UB q1I>c}6RM1ji#MWv'] !\M۸kC#Twj ӡ𠐠#I75>Oz,.t{;%Mz[ -~uc_ԭ:& {ymDb$Y/2d)b^>^ط^ؾ[1=|~^Fb{g>!FG]'jůdsw. 1n/pf$a7k^g15p1xAP>:Lu-IK2ZhCe3[d{x7..Ljr"6SDֱfv}a&'#~Vٵb1TBbf!2JPc`xCY7ub '2,vaP1;a6̬Mb|+~pwR/x#;gfPt>ZtpGtuy11 ^Bz K31-3{'GlTUal A6fvo5\XVeYcg|\"$(tj U7$k 'Do%HSS6qnvp֑\LO_;"; x{э$W s2lZos7k;gqn 7K} x^CNA}!@ R1=8}' _f>k=ebl6Jݞ'1{ntS)׷s=| ռTfumgJC~Sĸ?.duYB!^Hw_mZa V[o{[.cԵ;WV=-[n^ 4U[ZU~p{71߾ifK53{a>֜ p}8$ہ*nqdFEB(A3[ȷu^fTvw 7 |,UOx)Ω^읍N ǵ>xo"dqPybiNXkY/}6j:]?`i fO=+ t*;W9_7 y@Yn=` ū]Z(,:w:Qf W)jd*D,BD@0{A|X "1z^SiG|ޱ蚺T>)u3;áYDʩ׋Ѫ[Nw'MkH3RFYy']Mi3ky[,El t-oWTfxgYϼβymfnK ɮrL)2NdAN~knʣ& DYͣ|G  l%C+P/SB'{ {)0FP^,Eo4JR4.&੒V3_$:V]xPC軐=*GqStF^:~P@IcCv3g٬g'g;HϞG iIzg|}\s-_F?}8Y /A!Dp/9ljHWT \zu!A!EإXM0v@v+NbH&&9Z#Ȣ6ͱ)A!Ɣ!=[5B @tiVE7@Qj^. OywÈq`3:) }P+\|-5=Xs:>Ǩ[%Ʋ$'\3G9.1"53BLUNt?'C{1ᝀ7`fDߩbܳ޸ooXbQx"3\t|ΎKc[5r*!fJP!3sh[[Ne"5>Q+$ۮy: n!r3Nf ec8-- 3k{g$xflf j渝ףK;VOq?:Nrn R(WCz?%($0./nxbExuQݗd-4n?fb!vjCD&H xbjQ;ݭ*w䜙]N&E>BћaQq"|\=+dN !\P-s!!+EB=}5Ҹ z+ XwkF{ĂXN%@SWY(OlX)e>ZqM,0O)>c n$F/cnde.(_Nۅr&V~Ys:b =:9ֈ'{cO1~MoзYbѓ?#4t$(CDr8K΃ \֨]36NzR;ycH&%C<G-&jļoUoS4tw0>3G̅ᙗ ]Bfy!BLT{zEʝ 1fmjw !LL90EQ`ȷG$t}Vn].naljo*-Ie9yG$(G7t"dJ e4ѕ}EblN v%kfNR>sFVA6Ou^5U{56%,s9;jYO֛fvDF[#[4!8lĤӪkfvw/ yE-nn1S5sdCnSB!'(lಙ *j['f+!PEb6zflvdqrFHY>^mAU}[{\H&[pt'I8h>,/OGB!:1K&`˻af ȱ0op\IYw`X XV W&x~-Dt\O5n)zo/{Xw4IT`5>Mp*=Q 6Lyf!-' a{#5hMx2YUgF`Yl:S)4č! v*jƷP󜋲|K54k>xϥoҭCem>-t`l^اFqX)Y3n5]!0&̷Itm3. Ⱈm'NxCq{rX)m4{̸ibY/:)9)n43Kȁ|τc~~w @i%`=ij=6ϯKfvv3eBa5b> ;sgԸ_qBF=x 1kiEWDB_+kb HY_5v !!!U9)S̖ԓ-L MWS;W1+4i*ey9m5 ߗ1p8nYkܧ :ՙ:Y(Cdg-1U&18SrG'\0>!W !DͅD )"BHP!(yld&\i!Y4!Dﴈc)|gv.B˷@5K=n{pŔ('* DҬu࢞| !R*שoWq H}_7tc _ ,v+l.R\A`^CpW"zK@x1MbQ?7< ̶V̶%NylΟߴnS?(Ƿ9 BCsTR,pcj⢌y'15GaMz ocwfd{P㷒pʴ !~`̞~CCDoE3{9,̮e-C'}Ydv?|s,B!A 8%\2X鼼ݬ%ņ $z;qOH> 7Vn%16&prB1jF^W:op}\ !\/[Ra~>GsqϿ2n_e^Yo<ӿO ޛ8mft6pޏ` =E4KUĂ [XRFuͽcBKupW0/ux j"=~3u&1(ԀN}Gl?l&laDD5\$<H5w|" Bà|ߟνמ|ԭee̾Be|p:MŻVr|Ժg $(N,DG|٤_*p.6!A!ka7M3{<7̪qG|1鉬1y_>Gq+Zj||m;ąB-wͬƈSbo+iA~o_=|,7bl˂Vfx0n*x N}lW*&WʱՖB -y_,MUDimiDѡ3zB@~hC$7OKu~i vr= UUO1t5. xjPDLз|J\8<[!.012> cS>))=(!A!8Vb_B@<B!A!B !BHP!BHP!b(jf6SFN<&pƇDT,IƘHQ[~ﮱ@\ՕK"&k[y;xdI |MON/ЋpYIENDB`mcu8051ide-1.4.7/icons/other/timer_01_0.png0000644000175000017500000003366412067167647020714 0ustar milleniummilleniumPNG  IHDRd IDATx{<83[b]Fkr$%]TK[mi+~RJWkꢋ_E)"T[3"a>ǭ{3)9C0 nh4Zee.|333~G_$K``"tD^45c eee^۵k233oD$q90 gggWWW:>2LJ`$''pѣG|||&(J@@ݻwGnQӧOxmrN]]B syƍ*((p/~af޽[YY->}ٖ-[`YXX 'Y644r/~UUUy~ƍ oҦ&###.68XUPP߿zgLLjHHƍFYYY6FZZzΝo߾EڵF;(VZgI"LMMuuuBvvvڦ@055511}(_` 5F.aaa?111NNNwnܸ!dddt9qqqKxKZ2uu ~G))))A4PDDD_V@0;VIIIOOOVVVYYN#RRRDmvv6TTT`mmmnn? hV`V__Sh4Z~~˗~*XjURRRaa!:uTsimm=XZZbBL&; N%$$ {O)?ծ1cz7BR !HC 8x7Gh*++0a@pwwwDuuu8pѱ3\uI:bT-[d0)CP[[;~/`kk8BS͛a2D,###**YϏ$''?0a`! *,}dٳBmmm"""UUU+D O;zhSSSFXBB~aرD"q̙W^;q{޽;vBÃD"yڧOlْr .Z÷_{uuu r}}N{nY3x'L0nܸYfzr:;;L&O8QBBb755ᏻ'N9__߷o v.'^{/B_1##cǎ4N;99EGGvaFFFHHɓ'wiggǛHG+#.>`޼yCH[nho˗?}~B ôΟ?iggǨm֭_-@ ?|coo75f n==o}>z?|xXvIeee=TWWΟ??..N^^~H?/_nccd2׬Y{;WUU511Qpcs.88]k؃>x 11Qyj\\ܦM%11}ݻwǏ{9tBzڴi,k֭3gΜ1c__kgg2mڴK. BCCeraaa,ta/^0LGG+^ ƍi߿INNB744 =~֭[ÇG3gA{|C! 0Lxܸq2?%BHNN.::}!^^^⚚ gŊIII %77Nϙ3gxy?<** !=|0???r333UUջwZZZǏ7+:::<<<00>կED*!!獴J--2oroooIII(7KSfoT*UJJ߁|C}/_d ~ HꞾy&===44oW[pꞥ޽{8N골ɓgϞ)-- r]]] m۶ u{ݻWOO/,,lӦMX[[Θ1ӫW6222008wҲeB^^^bbbdccc33333ӧ!\\\Z[[͛`0$LdddƎ?f0$}ÇhӧO>I-A&O<<@0PY \/z @bbbndccWKǑd&9sLvڛ7o_Zz5{vtPPPl~~~"""***eee| kTWW750޽SQQl!~y{U_Խƞ!ɹ/p ~ Jn@,JKK璒BFFF}^}g$ꂂc K?f[xCcuw566YݻwsҊ$x؛7o߿pǏ7Pff&H177~NVVVqxDϮ@bbb\i0555MM͆ c}"T*ðv?b+++uؗB8bEehpPh4ZLLL\\܁>|0;ݻllll1hWX_diiǟvUUUf9s u뜝mmm[zwҤI_>tPxxȸqmmƌݏ0?CRRROOoÆ 5%<+++>F۵kvUUO|9==}Μ9222?~訩a0}O>իW!''{'''M:U[[_܌oG)++"dZg655۫uHڵkB5/`FQ 6#G,\L^dW`?\nDIIsu[d2yѢE˗WWW)w{FFF䩂iӦ NBF]`{UUU#3633DDD~ܷoBhZZZO600o߾çFGGȔWUU]/#lmm}5n1zUvJ2|Ͱ0ee,]%%%GF4zoA 222"--]\\zzz?Sqqqwky`>}z NF@`%MA899>}5,,_@@@/YߢE,--k555ʭh[ -]tř˗/0aLSSSzCy_t'K0 CأðD"dN0wh4??!?WJJJ#3[gg'>"??_VVFGGKBA>|XVVv߾}wttp=ZЖ-[<<<ϟnPp`ﳴիW͛ggggaa1\QVVv8a F^$Fl555|azzcEE۷oW… xsM;=wYvŋ٣D555YB;N2666޽:uj3 Ο??hbe&FPHO#|W]]=??*''gd0mذ!&&*p޽{d4=˯`lmm<\z\*WZZ}sc|M6olcc#*****zisr+ڹs?sݺu---RRRΝӅqXXׯeF[PP_p!z_{T(**"0 c'y`Dm۶ٳzzzDd&OXQQ6pس+Wv?b?VK.=|0aʪ? ?>1h+**H$*q$b?~rFΟ]GڵkoO-FxAȠ'NE7oҾ\wĉ Ǐ{yy)**{yyQԋ/:88,[ݽ!ҲzjWWWWWիW {Ok_ٳgð۷kkklܹ3eʔ)SG \|YWWWSSsϞ=xS򋎎innӧO?@Ko{zvZmm`g!D$[h %8xT~VAA˜֯_6qnnnCe( viggWZZ/%%u֭5k֬_䧟~Blذ_`}.Pc2ׯ_B_vjΜ9/^q(^SScǎ1c888XXX7.%%HRRƍ7nصk'v4_ .<<… &z)ᖙ3grM^4xMJÇ׬Y'˝;wFFFx;v|YLL:44Ǐ _jkk=cpUPJJ?~6;;i1cBhŊ}`|Ԛ5kn޼uV&j*[[[;;;('HIIoŀ|]D]]]eee^ :gϞ-**a/_~ّ#G#Ǐ~qqqJJJ$򋒒~ð'OxyyTWWqttg?swrzuuull,;^Z^^ѣG^^^˗/_8 Yrvv~:^/##!777+:}tGwޱcGFjllL&$fjllDihhbuGGGCC÷oXxUD"ݝ`X; xVVV6m§QH}̙՜}1ӧ@TB}ӻO$`Dꄥ}KKKSSDKR|m,X@" #=~%KX &t*((8::C=hjj.[ÃbEFFX[[wxqݻww' HܹsD"qᇟ~_a|ǏEϝ;7~x===))u9)07K,w\@&pUBB`jkkRRRJHH都 ØLwCCÞ={ΰdff]gك|{{ҭ[凰%/`%^2e >Mʕ+G=m4$'''))I"H$^H$RDDDSSo޼I#""b%^|-{+!eaawO,((r力[MMMMM {={vݺut"nݺ?!*& EZ*..![JJJYH]]}݂|ZpiRSS$pN(cccg͚ehhػرcV^^1 1IOOϜ>'Jrrr]㭫k jgϞ vzgggss3^^{NOOo{LINNw<!(Y"TTeee5Jkljc2C8Z[[L2`ceۓB9r$77ex5?gϞJYYYgg'BHZZC&eR a{ =!(( FPPPkkD*3]5jggބ@ dddׯ_Ջ/w4 FajOw[l "LߧL&3//OUUu֬Y-x'OZ[[E!"L!d2nݺA$O Alii}dٛ.&dy}|;/b2h$RAA#d |$K Y_ |B˗RRR\iTQac_zj~G^744߁ ~g)BM7>pHDccʕ+I$]ii)%8m4$'''))I"H$҃l*555<4Her}BSSq=,oIDAT hP\\ܼuVZrǏBiii7o߼y399ɓ'6lx𡼼|ss3yyqzA~~)q[l3%a>}w577_|yݺugΜ!MMMFFF+WͅL za3%BH$Ϙ1 ©SLMM7nh``·x򥾾>#=WYZZfee!RSSYTT$IIb3YYY./r46mژ1c"##;;;Y,ٳg̙aXmm-DB:^PP//;w}v p-|= Y.//8q"DOOO(**266}̜9ɓ!!!O>9sf^^ެYF,~pPK8$&&; >XZ_,/d |,^ζ ; 9=KF+Jׯ"^^^ׯnooGKKKre˖999EGGYYYͫ'aR(9r$)) !t۷Bw@%KDDDܺu߇rpvvNOOGݺu ZXZZ!$""?tdڴiYYYo߾ mnn^pw}gii9 L%ddd?եz%,kF0 |oX,MMͣG]w ikk?566niiC5.]5֕BHHa%%%ۣV;|=g9z,^xڵ !11WnڴIJJiܹ~~~eee>}JNNݎWzz_GGٳgW\k''H `;?3**jٲeHpF+_0eʔYYYl2~|5г`ch#rرƻH| YZ`5kdeeQ ɒD"[qkkGdD"dddƎ?f0}65}tɓ>OPUU1 y3gZZZbcc'N(**:=˻w޿ M6߿L$dJKK>AMM-))NU>>> eDDDXXNvCC/^`hѢׯ.**>]UU455ʥϞ=1NE<(T]]}q===޽~o6o3T*hllotuu_z~ĉOjllTPP)&277OLL'D)))~G`xt/,,,//+WtuuKRW\,,YƷXhii@oAmXF+aϒdd 77799sΑ䦦&~`4dkjj*(((((w BP9 A43L1cx$KW#@a'vAKKKMMM}}}X# ,sJ)../++ \|9T0!gΜ ###+''GSSs޼y#'|=H;}ÇO{쩯yf{k|g9tuuuEqq1_fff}V0dP(`/R)))=KF+\$fΝ;d h7.TPPx/ +..%p00h eh+).\Tqq''3Ԑ-[xzzB&aEGGs+QH$ܹ3''UUUԌ*WZxp.WUUV$Ν;@ӨE$0!TWWx8WQQ1f̘$XvTAArƍ Y \NѼ'%n233Xð+''g8B"qqq111 X Y !g;lٲ 6p7U\\w Rpy0Ν;,_˗ @N&;;{͚5\Y\\ lгPUUUvvvC0===88@@ ۶m# . %44ϟ?f`ҿ4w !lYYY> H#0!!NboooWWWOOCqާ<yUUUCaxFQrrrHHgPK.>}`ݺu[Z[[---@@8'N o{{+V k^|u+uV)a222qqq@4 @ Y [ZZZZZnܸqK;vرcF짏?^r7oF86۶mH'44! ٳv/_twwˣg۷op ɼ~ BHOOoΝ4mӦM’)i4ھ}@@U[[K ի͛7Ϟ=[NNj?Ja:suun%KF}js~ð'Oxyy jkkt8 N:uҤI #--mP`0ܠp(YVTTXZZO|5 fjllğo߾v[v8E瓓 %1c9rDTTTKK+$$R&HHH }ovԩP(Ըo?&˔ Cƍ[hЮLNN9d׍xJ T*BhΜ9!ׯ_@TFFF萔tppضmܤ .xyyd(:x%H$B}+o7R&}O_yʤP(5Y 0 ƍQQQ?f2111K~~~ƏDEEhkk#233.]ZUU%##sĉYf ѠR&سgÇ3yC3%BTMMQpÇ `xl{555KKK1 cX&M_MNN^zN~Uff-mff`wA8dNɢ JJJQQQmmm=^366qRQQѼy92p ڢ @~qqq ޕ$>>>޽c7]x={ݻwG ˬڵkFc㓖pBidd' ǽTj^^~ aNNN˖-[hQyy9B@ 9so]F!&˚I&! @FՙܹsٻS( }bރ&'%%ܹ3))i񞞞ǎO<??[tpQ___999gggЁ _E>>>9sȁ=KNið6h4777}YYY !/tҮ.//; eɒ%'--]QQlaa#G={a Y ^VVv/vvpqqihhw~`&%%%6N0 O&ˁg&p+4 s_]4 `8 ejj-##cjjjjjH ֭[>'((%K鹺{?!22D"?|g`7ntuu]n݋/ SԠ(Bh̙>\t:\TTU]]=%%bXK.ijjh4 """"""k򔕕T0M\]]ݣGFCumܹ̹s"RSS<<<ʢZqݙ͝;ƍ#YYYﷶtuumnnF]tfժUC(SPP$!n믿B.]Z|9BSN~.L}jMMM#o޼OMM=sLNNwLLL}}}hhhFFÇ}4dill˶r2ɓ_zׯ_khh /fhhG ˵Bsf` 7YggM69::\/YDž-hDDB&Mz ayyy֭z5JE=zhŅ#:::/_ğfddlذaǎL&S[[cƌ_=q?`0$$$.]$//߻g._\RRR\\?TVVmmm444Ć3~w,{Ϟ='NܴiBرc WDϚ5:>>ANF=H@%0 IENDB`mcu8051ide-1.4.7/icons/other/ibrg_brg.png0000644000175000017500000001575412067167647020632 0ustar milleniummilleniumPNG  IHDRq|asRGBbKGD pHYs  tIME  lIDATxy\U/A0$Bb.CD#-mۄ0 ^@Z&A eePdNEh!2H4 A@"EQ:9C<:ګ]Ec12nc1Xlc1bc1bc1c0c0cņ1c,61c,61%m݃#iRc1}'ca=>NLwc 71o_^ G`|Dv+?k=0|jfFUn >וukm=FDUvd0lcz`9[/nIs}:mV "yIxfQۻyM-|IC7,ύq us_YW+pgovJ?M̀rat1 -Ƙ`4I{iWG!)~:9GO`È0XT$h\ iauscI |ߓEu  Ѷp``?7-Ƙa"`8MgJz&hK8pJFt"͈boެP*p(_MQp5!ij>g68޹dcuڈG )szݵ˼7-GD/PLp+J422SP x-dZFZwfȈI p=cDڅ}L/041-LĎq9'I3>>|)".poj_n6;"f /+iE5%"q0IPV_eig:;bHm6yK>Od|M/J6]vVDa;+"VD͉&Eǯ$ 'pz>TbGJ HI>-+JIVqNw{1rZ>7$pN8c&8G8TIg3&Fĝn>~ϩ$M[,=j. 2ߡ녤{PG)e(t:pv`Jtll71Bʞ*8T0JNJFH%JQ0R Jz w J5Q*О}s\? @CtL8bK~pyBb j02-2jy *αnD!N|ƪHe]M1ZR{,eb:lB u]i4)򈸨ɶJoS2~Jo2~"b:˞H ,v%$j)֠ۇb]>{-\]LjYk)j>{-rl蘘}^Ydу?LI#;*yW?\NX7z8˦uMiu%Im֩ompr/Hr͢qLϿOXJls93Ų188ecPZ6F`pŧ)9;"8j |TC_ҍm%|xRy=-ҺL%ML?M: s{#&WJ~{إئنSUIӍ%7ӻbˎMV $OW](A1.'ZBs(@RZq n|Ux)G#7kH>41Gz1<"NToDtl}2oC#Ceڲ?}tf"8l= kY>r'&`D.,鹓gjY3ԓN1}ײq OkaZc΢8M֧Dehs~'zIyNҲ(?Y͖a+FDɊ4}-fطbYF?ʩy, F}<*/Pɭp)ŲjrTw\N ڇU"t~]2ϬH?uHgL3ׁkؐ{`yଈ8/5LG^g?ccn7۫WWu#uhcI1U E}Hչ=T}@79"HZa5𩈘$i66bDK"%:Sm#)~58C`&Y7b#/k"bJΧOtWD3)gP"*Τ3-,#I`͌ 8Sa1/u86bOI p%s'Ѽ3_IyX-)5Ώu-6z݀"bJf*iwJ dhV"⇒FR%Q?#ʘoCjDxn%}8xUUY(ISr$RUj!5JvR sϬJ.@xBIRj9iNE]Q|{z^+~u'ܼ*;CԔ=,;(s#9Ҹ80"t,}P [,4AzݘN9B<8k.ɾwtޫ4X6]޿jn]ט[@%JIt(i Ŗ{3&/m6F~32y໔$wnxغSNqC8mJIED> ?1-m=DVVFr'IKI,g1wIn:}J唈rP[I%]gk_%muV'3V>lfPs=F YAq95/ɩ'K3DFŊEvy 4b:Y}O6xKҳ)?qfݮL}Sx/ɹٛ~ 9rO1 I~߉qˑ֌l+GqۿcDs`\/~ss,.@f? iÔsX3~1?"9M5{GĐ8%E5}uF1!22'x pGMDyu60+#"&J~V1Io٩s{t[6@c8%˒{ܘ|42#qm.4*z\#kbu&D!N)ctQ&2K/*W=M+QLw˧>%-o+(aq#\s=S,*}ڂC5:ņi]olJذ}!}4 x2R'Uge{Ζ*kƷ(f>=1bbI-ST 3мLuߍ[:7䃷ݭ3%ViG~!iӴ^\R,Ve4x2ur}ڛxCND ks6"iWr1R4JnQѶCYTybØV'"l|2emL $.x85<Ճ[߁$}]9"~ gߩ䷸b5>ņ1f ֌;DhNn0jdLi賰D/.iňxpcuנ!ˑ-!69DLZ\ ͌0q>,t/%=k5#L\3kV'5^D,fRjt73o41qk(ΜV'ua_C:FI"}7v{ 08R1*F3;p<ږ^4X6]1MbØukf.~71*vp+Xl3n\ đz2׺6 jqH6P"IZ%X@Bw)e߁#"\>{[AcLRj5eVe8Q') R/4j "bx.?VS,mņ1ƘN+wQ,߻RxlK)@DLwx0ߕ2eE4ņ1ƘN,9j`|>C-61}JV4Kn'W8f;4I ׁ"$/tZC+"݌1ݿH,11c,61ca1ca1 c1Xlc1Xlc1bc1c1c0cņ1cņ1c:GlH#i)-sxI[u*1IcSc1x "GqU.ecl7 cheu?Y<:02k[f1Ƙ`RnII_>V$I'l* c1b#be >lBDp7pqvNw0)Vu3czKl %ͤ""ޒ4Xβ i[1%6FIXdըe.b񴻄1M3M`Y1cz '2cņ1c,61c,61ca1 c1 c1ƴRy.o_IENDB`mcu8051ide-1.4.7/icons/other/timer_01_2.png0000644000175000017500000003555312067167647020715 0ustar milleniummilleniumPNG  IHDRd IDATx{su}. pvvf2GB]=hkkSTT;ݻwA&iooaX~~}mjjڸqѣ_/((P(cƌ1 kmmuss3fUpp`c aӦMikk4 䘘455xKݻW{-[ ðob=|"&&F__ĉεB644,_|ܸqƍ[bEcc#~=nٲeNAAAw:SYYW_a֦?Ƕjjj'O /,X0f}} Ã\!`@x<ތ3ܹ&Xz蘓C d  `PPP?yɓ'!SdȲllldED0@z@R,+;;UYYYJ/GPtttDiCGð ~a%%%nbaaazzzR}-C%Ù9sfBBd0vvv 'Kwww~Δ8CPX*(`PaL2%BHUUuɒ%}$**Џ urrbX,I& JCQ9::޻w/=HQUUell,ΧMP\]]!eDH(Bl"8qbVV &&&| L3hAVd0d2۷!*jddDGNNB@ dkkk&ֆ[l# syz)N#KooO$$$ 1c `AAAaaafffPPP~ KKKo޼}~A~'ҋpSfll,L &FFFjjj4~Ak{Ij:OYYY>>>B@< {.{.B0^:al3g>E NL( BCCCCC޽kaal2;wΝ;W__ԩS߿_x1B?&aT*FGGYv:X?{=6g Ammm$&&޺uӧiii111Ϟ=svv^~}FF~3ŢE6ob_.ҋeð <~8{^Uqܵkfddzxx?~|O )++GFFeI&)))*))c?oڴ !4n84MٳgEzQ#ҹs BcǎRt:".3̌@ 1LYG{ lvDDݻwo۶-44Ǐ"?F>|JLL{M2ӦL+tiذa, O;vtiݗ}VVVM|w577xݻwcǎ3Drѹs૬ܶm[EEa000tcǎE]ff͚SNwzKKK/\0a„@=blhhزeKAAaO&H!*`0T*~Zss?pmEEEuuPGGnZ9s] 6l})#GvsBFFK 1clذaԨQ3f055-++>eeeSSn1339r ;=zwǂ^jjjllyXXLׯ_;;;#***455VXq-_sjnnhwssC]pɩhĈ$++}Μ9xJge?Ek/ -/5k֬YB^^^F"dj*GGDŽ?n:+j#UUU3g,//?~lddTXXb>|܌F=zк *H"Y~ϷmfddYdҤIeeeG ҥKSSS===sss>|hB7JJJTTTMLLoݺenn.XTTA.'d9qĪ*N2k%?~<99חfK)~zRf/;w~ҋ-˻|2 kЪUy7755Ġ<,5H=joo߹sgHHw}/~isssSS3gܺu 3yy)**\RIIv魭lpgϞ9s|vB-X //ޞF=~m0IqϹs6mdbbdddjÆ x2|RQQqĈ'N 7ǭ]655ĉbk@%`Ndܹiii...ѵk:}_jذaOz `UX!/^1cF7[:&''gҥݟ&dI".^x7ȑ7DPNڝCe4额֣GgO ,i(++qgK*YVTTDGG,fsѢ"Y%|NAAi BLwҜ9s{9`|s566~իWK {Pg0@غu_|A&yű݇i9pq\CCM6M6ѣOV^DPe >dzxxL0D"deeu%H.\h" o6...;;N={,>>_&ձ !!!@ lw1 V^^.FQFZOVʄxOݳWVV&ɢ^0a/K rqSSS?Rgٯ_F}i֭R*܃au)&&&_FM8&::9))`񃔟-XM͛7!`0:R!Lŧ"#E',,,B%Eߜz%&jQFZOV^|-jN k?aӦM&MF'ܼyQ׿d1BOQܿ!4}t"/˗%$XvԨQ˗/?wx+&%[[[g̘!taÆ NNN]-S阤1 ߍ򚚚K}/1QTTdeeb2_}#d +Em5P%8>|H ɜEު4ݱcWhh(ŮѣGUTTg Topoذ9/^$?lzzz^^^T*511jjjqKW^z2uDQI+ǏeGGӧ~vq?V]by_~EqMMMK2YR(n͚x0lذgϦI*n - N#G,Zݻw /_ YXXcǎ͜9344!Y\\[ ˗I@ uSPPA{Q?9;;NJUUUJ2Y陙%&&$_K.4ĶtWЩA&q!!!$VW~ҥ'NHMM,..2 |kTEEś7o|ROO&==%ґ={ܸqC(++Nr:::999III5S"I$ٳgUTT^~keexs *#<==/^⒑IШ$|ϒH$充-X`ʕvvvdڵkL&sŊ)))b4SYY)٩I]]YGGY }Zg0 $!!!_:uԎ;ZZZ:ݱ|Ha)))rX\ #WD"q׮]vbB$ŋׯ}6mڴSNxd2YKv.a;>0??dٳGQQqȑR[[~'rfÆ 򹍒lo1ֆOICY@@ɓ'xxlĭ^_;=5|aljL&3&&F4Rpp+WꌌBpႢJLL ٢r۶m8p!DRMLL;? /eq]### ZZZ?o-q,>^{vj!@___RtAAAqqqӦM뻞ccc 6uT 6(UWW iSBMMMIss󜜜N;|UaaӧMMMϝ;uV__?s„ /^{ewE^^^1oٲ?Oaaw}ի5Yp͛7JJJ EM=R˰dJ 'N|9ˀI& )//̩]t6l^@ OgϞ-"{{{ x<ޮ]vލ)Ώ(}.[v… kaa`ŋ\.UUUaV"immM/Qq\i;s^^^;vHJJ1bD^^^rrrHHȢEvue777Ѕ /,x<,ˇW*DnhhX^^fI$Rfff~ uիWZZZBӅTUU}H|ԩ~aǎ H,--ΠS;bXO<LjFGG}%A---O<ёԭM!x?00ZEEEEEܹsx!m۶FFFn1b`Ý;w={nO<)X\KKk$I___III﬷B1kkk͞={ܸqMMԡrzǷYVV6uTUUU.w^MMRGܣP(VVV_-x%&!!JV ZrUffm߀ 44MN:޾|򊊊>:"0L MMM2zjСCF&KJJbbb`1#.}qݼyH$n޼?Ȁ#rNAAaΜ93fxݗ_~)TPP@J&MJIIwFVWW6$,6Mϟ?hggALmܸqƍBLfͺylׯ_d2fddD&Wݘ4iҝ;wgiiY^^!`E]]]7o\XX@eee9::fddfJDˋ `5F!*`0zcC"o߾׷J!A%++ۻĉ#DGGw5H$&%%%&&Λ7ի 8rβJrh|XA...]P(dʲf0K,qdJ \.ݽ1==Dž" bKtHݳXh͛Y,ׅrԲ!H<!#Qnmm}=W~}'++<%%EOOJHCWMJnFZZZfddt??l[r,B>>>ZZZgϞH$X%B2Jg`iӦ۷o:͕D"o۷o F$N."v޽m۶ЎE:>}Uô4ءT~ȑ#))))dEGG3|Ĩ(##yî}~ii 2|駟f"8=|t:F@\5kLMM̙ؕ3SSSg9'K~Yf͚5 !uuu4ӂ:/_;G:0P(*Aݳ}m&gO"=?PRRL)$oRvD"ݼyna97~. @BBBB߿Jʾoa*L @TVVV\. Y\.w̙YСC}$4H-**244Ɂ $@ dyYE$M}VFF֋}tC,@z$K`6,@-[LIII"]q8WJd5qDXHC{{}drYGAAQ00|p^]]-wNII)))پ}{TT#%@Ž=n:==쬬,YG@_Ay  \.wժU#D"1>>ӳ!YÇGe455;pf̘QSSx<p֭#Fܾ}{̙f͚mC,--MMM!Y Q]] xŋw<_UU^^^~~~qqq +W|urss/t0(ܸqD"u/t@@={lvGD@<&NsT>&D"V[[;>>~ĉΝ3008}4蟰f#"":}H$fddh4.ρ ,//;v|!]WWUc䔗Z*<<͛AAAL&%=ZnTHѣr7339wHrJ`Bo޼ٵkWTTԑ#G6lr drAAu?4ZOjQQQ$`]GXl"@ _D WTT痞ޛVBe}%w@&`d Vի<_UU5&&f͚5R d ߚ5k֊tΎD"ݸqCzQ qP TSSSKKKQFDDH#$P__/[[[ׯ_/(l4558qb%)))ӦM㧺~„ b煀@Ppp+WꌌBL&sر|Mtt4~w\\˭ܶm[EEa000@1Gjjjr\Yf] "?cER\yff&D0===9@'000L{{{/ ð6[[[EEŦ&==/x<l``p0 jiilhB'$$6GGǪ*IDtd"LBʕ+666K,!a橩B mll_?rӧ;::ݻ/P(߿G%''[[[Ϛ5kڵ]aCAQQQiiiGD"1))r0III+V MLL155VGGNȳg\M#""޼y뛞~}]]]i 8G\\Dz#H۷oHoH$ʪӧI& S^^.XfFhO --\333@KJJ>}jhhO={4 k "롬s,0o޼o rѢEyyy/_OpBQQ_-0//d.X@𠂂BHWWٳgn޼а5"33??^\\ܪU`h ` AӍKKK/ӷm?U=zի\.WYY999y;lذ3ghii߿ޞD"+)){fٳ'//O=@ x<N oBGuPrg/r666}Y+ҽɓ'J `d zEAAaΜ93fxݗ_~/@ 綾)B;wqrr Aŋ\.WQQ7'o:8tСCB555;w}v7b w&??'ߗj<te&ӧODyyyzzzƍ[__ߨ(\.w޼yțm#;?b`(Yn],Pb$KAZZZnnnӧO=ztnn'^z. Z)Y***N4Ν;_fW_}U]]* Z,J@R޽?ظq# }…d2YSSSSSL&/YcϟÇ.镔 =iUIOODzڵoooooK.ulU\\laa+}:O$ۇ$NZraaaݟz괴& R__ORw{n{{f(JW]Q(555Ʉ/iݳ477ɩhgg礤$1a„w:88ddd899ݾ}qͼ;ѣGίkmm}T^yll. =RrԨQ˗/?wSMM ɧbʗl6ӧO![[[9,/8fYG@LRǔ=^z2uD|L&3((H(S"8UWiiiBmI];w)qL&v<5%%%++Sl6#DaAɓ' `04GB WWה;;;s{HE B <7n\CC0 dScqqHD9 ӧOe!m,#ˡbu*l $իW>|۹Gl6/O{7&˛oKn߾Mф"ax 'O Tӝ }a@Bq\Q+|KnǏz);;[ @_RdddN>"\.N'4###pMHܳGaaa~~~\.D322}Z ׻w߬GYYYaaa%%%2%(((?2jԨ˗;wI  +XmBdggK*.)))%%/$$D f^JII:u* ,\OOVZ'cǎKF!R+6- ==7on߾7**JN@7x駟_1Ĺ/[LV;UYYi``/g $ӧOo޼^:--B:bXߟ?_JJJ{}捤:|H Y FYYY-\!윔`0&L Roޙ{Æ MswwG9,߿R&|$eX6˓[[[)fu\iiio߾UTTu {BCV&lv~~ g[n;wno=%%%)FDVQp: !2p4b6o,($HuNw^^^'OƋA]t ZUU:,, Wj-WOm'TUU\*33Ӯ_N444B[neآڿ:z N733355]`A}}=a</**2&&ad2&(w$?]KYG+1ܹs>}aXccclٲM="UwC} LVVVx"K˜ܹsۇÇ_ð(F fϞ}Q ØL0s 1c|ŋ/^}Wd"""BL4eʔL7b9~ĄiUUˀ~>ϟb>|ܼnݺݻwgeeE@>3{>i4Zxxxrrrrr2~b[̞=[Bdm۶*++}޾}Gee嶶6]]ݿK[=z'Q[ m{::: .LOOomm>y&;;{iY144455 [ZZB[nݺuKƌuV...OAAAWWٳ</66޽{4-33NlǏPSS ٻw/B… nnn!%%˗'%%}w]C&k}=Zt1B?ŋVczjRRR7(&.sΝ۴iQ\\BOfRPPr^^^BTLLL(Jmmm}\d"t:H<}ƍ_ i?=Ά~ kkkKHHnnn[YY IHHغux!1--->>~ʔ): &+++UUUOHpOOO{{ٳ&L8ܹs׭[3cccǎ:$M?}AA+WƎ.ox RVV&(,]SUURU`vFJ 3#iahUnuM4Ǜ8{#>]vC YүпogIENDB`mcu8051ide-1.4.7/icons/other/math0.png0000644000175000017500000000426212067167647020056 0ustar milleniummilleniumPNG  IHDR+hLPLTE3f3333f333ff3fffff3f3f̙3f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙333333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffffff3fffffff3fff̙ffff3fffff3f̙3333f33̙3ff3ffff̙f3f̙3f̙̙3f̙3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3f9tRNSAIDAThYmr Nn aG>ەhݼS7ʹ q`VbYַ8 "K2MH ")x RFD  ?w#)s9#"ͥMDJDB^=%"HiiEb%4YSW5-"cPf IG@5*>"U#H>""N/!Gm̵!RdLDNGl_T #JnZBEZʜF>qZ 7r5d;/"ȲwHZ΋ciNY,QH"-LiT4#o\W~-$s4GnNӄwb(c+VZc-*GhKP${PcB;1eUrJ)I) *|H 0}FyCd+V}J5-S."bXԴqre +q^["|Z:|UhBqq}_wi遴/}oՌGy-b+CM/1zl?zn  ,o]_\UU( ,Лi>Iߓ.4# y{T@*=v%95Qk΂q"_V٧PbCu^G!>M}@(p罹 .P"B|g"v|uF 0 aEEҊw{HDZ'q:jC=d74Ǻp S5Aw}5T9'3#54Nt״#m|Z鮒z1_뇨 }Uv:'δ{!{wlh&W*ڄ\IؿG#rcF' UG բ-jmj!!y 2Q؀3[ ֥ jtw"! ,uEd v Et@TĖf{HܼqA]t}QQsș1+RVc֑}r}թYrRy@齕})*%ehDnhOӦvXܔ6NmcYވ{{#roSQIENDB`mcu8051ide-1.4.7/icons/other/timer_01_2e.png0000644000175000017500000003073412067167647021056 0ustar milleniummilleniumPNG  IHDR,*m IDATx{\?ekm*MEGE$(tP)kUBKl%m`YԊ,RSAXNɱI{w>mfu_Gu}] |>A@~! m6HB@$! }.]qNFn~>Q1[8Z':q@$! Ih$A m6HB@$! Ih$Aڈ gh`C#Y.W߻2lp33oB8β&C~i4vqL$t?-XGQWB貥s<^͵lijѼ}ϫ3y捸/Ƌڵ)^z9qN ! JJJs<yy ˃!NN558=z@/m://\0Ծ56m鐡C[Z3w:%VVt. @%@6M/eKaAaQQ%&OWPPPT'_"@)'=!Ssg6saԶozd$UW;| X?|i/_@7mpĉ՝N?4:ӝ?x|>ʕ+:t-,bbkjjjkkcǼyv/ B #lq34(péC˃Wq1ppa!!/^RPP013 ׯPQ30hH9QP>7r1h$A m6HB@$! Ih$A mF/ ]1B/?_t .[ũ; .жPUUUUU; ?tШ{[ӧu~0 {5X$ q@ٸn}Vff]]ݗC|bbQ^z޼~siBHMMG}D9"=m_wiEEʼnVc=4/Ç>V/+++$'{͙s&#G/?aUh[7Ϟ?˸pĹ>b 'rui?:}Ո?X??o%=*@%$o253WPPqAm֪uҒzzԶ^IIIGj$$d+(((**^ڗCY+yy ;p`pj[Q?l>ߡp@! /䉓|>˂VXqťt=ehHp kpOH~[XTWWnypKKBHyYv5g6>q[TkkkGo2 Ϸ@ch /%% 01UPP013ݓЭ['OlO z?zhh 'zS ;S/ؿ/# |^Ԓ?h ɔّޞCeّIMNHyRK2bL1PLC꟩[Xtr<C5?#UftuHBA dPA dPA d1fH3$!$h $$% 64lh4@`C6c!n.(iǏ0A~! ,fsuw~[7͓zsY-~ݮ?ufxxXUf[Xl h! XEw, GYetG%q8CwMMMnɃ}$!UQqfaA݁t1Ǐ%pk@. ,SĤ}Q<pqK99ZZt dzbҾC]\Lw8R-+#nwkBB !W^;"~o/;wPYXR7Dgͪ`)+:.|EyYPgEEcZ:*[ahVjF}SOKKO߰n=Dr~~ǎ8ހ"|ql]g DmgV}kP-^HmBщM !|>۷OUSS&O6ojF 2u4)߹ٶ`VFgUUU !<ѣ0%h_kۂ!CR[ߓ@Sr+ԛ?'O{h͛7ٗ.rsr&Mvvt92/7brB!$I'X[Z͚TVVFd\6vlFQl;aܹf_{mÚB kΝ OLHhh[T>^޲8]`҆4x<:tw1Μ}!d}x~ ]nj6J^^{GR>Sy9!dwKt9 RQiIIl%{~M-}uhvĄ9ً,YbU`Ο&On_|Ŋ+y}4w%HBEK[+95"hm"4376_~Mm7[¸ Z$prl}b!nQlNNhik:`F8;i5x ;:KZrQɤNj.ke13߱iߐP,V8FMhÇ{,ߞ2AR|>!Zeej?<O$!9eb]ٸ~n.Zf >dbjJwhBgge‚/o_ؘY!pϗtT_rwD,:kjj|Nh.7ٳv~:ѱnk-/+w;UTTLL7n,3-]7(((TWW'khdx…fwRZRZ__k=j4_7߻ۿZJm9;N~1а;cVj?SShРߏ:}I?u>ݸV#ƍ?uQܜ\ S3ӡlFZ_!n.ssr߻sǎf+fD}j3;'5)k:Ϛ%=***V#G:{6q>3̥KKKǎ7i}?裏Z:aJ~~D;uu ξZZَ]57_aUY3jjjMLoݼ_f:tXb99s<ÿKmx񢶶6';uK|uˇJ߫M_a0v`]]]ãts=,a 4^La_++Ȩ{߿_VVRyWUIz¼ܼ57_߼q!d$QmFZHJ"ٳo߾99s9RB:[?=xviXdefBք|p!=.^@^b0'O wmƍlUM6\Ⱦ\B[ZffdXZYuH(eee=-m‚kp-myd҇5{BǬ u6-i=jݒw̛Ν-U'Oh,-)PRHUUU2E 3!g" ݽ{CkIIIK 1f<|xW ;;:R{xzD$$};~***!zz|VN)*,׿zjhРa*Q{UT'A.! ɬ‚аΟb e;6';eˎxkK 6E|ߴdNviZjŋb2KKK6m@Ymiө[D?FHJ@>HcG'EȚ![~&91&>6ehx,xKņ[/{,x\KP3*$ -!TXP@Mz<蜧;e' PTW~d l!HYZY_@BbK+K UrIH A4@j! ɠ Cm:~,i 1ԦCGHBi3H!$!l3"ZcHq\AdoY^xNH ̐\!vX˥V ^HMۯ9xOw )m~r8gef}9dw!,u?n7gN&P+Oq!%qϞ":*-JKOaNLH8{LdtTWP[]2 -!Ç>V/+++$'{͙s&#G/?aUh[7} ~Ç:t+rrMO/A>r뮍]STTXDMTSSYI%K[p>ƍ훂x}gk5>x)-|8U|떩yÅax0uu !jjj|c)%ڎ]pa\lԴ׭]l6]BKH~5]^AAAQQڟ׾:\f_kg߁-1H#}bZ /䉓|>˂VXqťq¢:.&6v{̛o[ZBʵ۬evXssr%8䗒{X*((IL֭ۓ'OzkjZ޽vhO>߮ZhͿo.9d6HB@$!񗇫FL ZիWBsǎY,7'e1GaA˥7sHBS߹޳]݊yGK!3#ٳ On89;; @#$!uNNS0=zZ/S_Mk3nRfFU^&?EIػkKJJ"+|<.&v͘m<\NōfOLMB 3uAAv7=%*=!a>| b]ŷn ^._`0J<.xuL|ܹ̘5KJJ2v&mф/o/^q#$ΟONM9w>kWz⃇9L@{< $FߺyMeeejZOiirK_),}s!9WH4TJٌx<?wId2'e=G1r7o6ީSs}|>cB o9l۷I0uw^1gt9Mf1555s %KssBHT$wܱm&= 4` ^|r[{4wBMg?z!d̈́uua=jiaxac)=:wlڰ_xy٠eSSRX[K&^#γf992t͘1_[)jjjcǍu5[GGTzzүZÇ/&ٽ{H55g $5(,(h+-Xc=vɩ)24H'i%"ҽ{w9VV ZZY2~::_n_K[ @iiko\~ŪNv_LaoXpWuuu6nhjKMg̙OVLlOӮ]t}xŋX; FL\4̥ )  lNȸئtQȆbAɼ{tŷn5=dVòdoehnbjnbjfldɻw-:%';G7a6p8aSXMR#W66 4g~*5%mHBbڵMQ#Rgϳ`0SBȫW[[9r6cmӧNO0qՈיݿ/iԈFS^^N6bRA tM{05<Ѯ2e渻q'p83Np<_W{~۷ٗ|,K/َ9s4捋8v'|g?ƍ}Ͽwɐ/d_F(4ByYq/] Vt[""͍M^x1t/^޽ !\'Rbb7mP__O?aF^zz $!ٷ?)yVvdLLM9v5L?Vt˃<[טuzQyݻwӢ=,k|]pA_?~Qwɪj$ ZT ]%4ңG33jMMM--+W䔰9^T~{ٳ=wOdw%/oyЊ&ܹsmlmOz!QyyZj*%9!#4EP SRTJMIzyQ=HHٹ2j߿kMh\j.YQ~ڵի7[O<'3LUP1R?x^^>aÆIϧ;3uea‚'lPOxk޾}ۨ@޽>,HG;$!Bd4 QD]]Cxd_x_^p_|Y<=!M F(|١#8uj4 ]lvTWX(:CÜ aV <}GS_ S|2Ɓ!2wOuǏ%B. cGG/ m6HB@Nr8U"YdWCrGW>tOoo__-m-F4BIIo {r7%E\V[)+Bz/XHp#G*V,zQʢ*NUJ::La---d'kb 9 #Nqsooş^|nx{)ZZ|>*_ƍ@[д8S̢ŋ/]CD<B7uuuq:ç~WQaabzt0 1i'Ozz{GE-LL==  D;wܿw_BرwKDE[9pk:+cb.ZqС]CֆyzyrLHB(؞4y'|RS %ěYUUU=t@@HB #TUUNݾs`CF,,viiiT$;>6NP,>6k?)3A:Ȏ9Szw( ~&!$*Ҟ ߽{kO HB ; Jqqr\^멮2 BQtIdlj4BHŋXM[""DD^.'-y#.S Idǎx = zcjkkȈŷwMw Kc(k! ,rS=<*@עEyY$$&$BL]T 釖ȂN  c+,(|^9ӓ@@h@Qp\ѣ+W]\;^%+BQ\1BEK<Djڎ4bp%@ׄ8ZVFfJ $.eۢXթw})'͠gyYƍa7nXf3P\f޿woV=:Hr j SJ-{X,{X&¹uuu'0tlh=f+Gft171u&Ͽ~adxvh/ŋڜY.KY.>|**;re5rg {VnNNJk+=nxUU,޼YYFFFݻw`<,}_Oy<^UG& -^64YE捛Vڿ/iO?}a={۷onNUg]2$!7u4N]UvkSVf9!dMh R;dG6-y}.!`<)߭[7F+WB6mp!r=Nni$b$rW~.r #$,T!ASK:LB&;W7#6}z֣FILx[Ν"oB==,`Oy)^ LxGt%%%Bݻw</ |>?>6Yp,¢^vDcLXYY9]O9]0qgeevMy.COY/Buuu2$:%GN *T:G޽5}2nɃ%XϞ_<!,$Dio+߷-LLUTx{$&SWW715#1,VȚD`0llǤ̺x;*M=TXP A[w[Cb~-BHc֣w'$P<\]S,z]q L>m܄ ֳ.8*M0qep05cJ;M8a[T4BB8{ ]5zi=:ЖC׮\?x!#˗ rRrwϗR+y}߾%Cٗ/vs537Bcԍw𾎪ӦNVXPx"{;K99"W9⤜F/ jkisX҃e@(Z'+++,aNhWn{4Mf¢yPoݢn_Չpz湌9n Gcb5ǞvXilvZI-m-;aomQQۢ! [EB"d_,h X]wg_#x4D6u4"@jMyYݤS ޹!ҁ Dq:޽{1K"ىZk't@'CjKLHp*w͎n`0u0BRtF;LVXPS0":nb9s*Wzz{/Z!„BaB\xh֭U*'笋NV`D-rak&BOJ:BML!U*V`0"4zi89h&t-'+#vĽ{Cֆ]FG+W.o!Vt]?|| XGy%^TcD<|ycڸa=:HBb2 lee5bb/#h$D!,KP7l bwjĈm۰f9H_ p襱;a/2H!$!.M F<݃  Mz*iyVx</Zh ;Ժb}ݻ1H3$!e_' "KllLjZC5Ոb0<4jĈOj i |>dé{W7eԔrWrXp%{J<8]5Bu<|# y/TV#FDFG!@xx{ u㍴TWHK?)ڛ..>Ľ{ !4=$xz{vV-:2ΟA4ҒR5ܚw~޽{wsXPa9CEt]HB%BG!$261,~:a#I"ZG!d}>!2 -!q\ѣ<*+7  2$!eedB0/@G;N\.q#h "xAA@$$4t ㄃81BKH8#$!!#@^; qb$.tǵ qҡYm;V6{iGB !JBZZwK+鄎8Aw\k QtHTPT$;>6ͿrGn. ! 3uAAuuua߅nmi><5sCC>|@gv$T#@ٳа;FߺyMeeejcsDݻ=q٬ǏبK_),}s!9frظysg)[rȐ~:$od%~~******,K>zjjj%J!愐HܹcGMz칸o q@VYŋ֋ӣJJJ-;shQ/_ʪQK+KOGmCG~D8!wАr=&٨򠠅_/jnݔ ! 퉇ݞb@ 1VQQY㏭>q[TkkkGo2MzJsBmF[Xo\ޚcGیիW/ob̘ @$! Ih$A m6HB@w,ϿtIENDB`mcu8051ide-1.4.7/icons/other/timer_01_0e.png0000644000175000017500000003335712067167647021060 0ustar milleniummilleniumPNG  IHDRx IDATxw\STSF&TTu ^֭*uTqoPTReuV VU@ ?niʖf|/s9st$ z:&C-hhD @#$Z!FH4B-X’8䗓DK2m-c!FH4B-hhD @#$Z!FH4B]?n~-?jׯ{n=ҙɪOoukזIw/;{WkwLϧ4E$ڢ cuttAԑ#U EE% -[ǏbbeC%oKOba䫩7wi D[op-[pv0p@HP0!ivvm f;tJHD5,+# D_~5/geBH۽sgVVVyykcn߾=zlm;vpIGJ㤅?~BL?1<}8<Bpa7n022"5|QB$=#CQ?hIxхÑNj| ۷lݵ}ǖ!Z/VYYYl6[n ^4 Ž fea_t1<2p#"A>z3!DWW[n_ϝ믿R;_zEڤrʕy$Вh}|JM]ӧO߽{U+n^{ !{EG>yҶW/So ׯ_zB<|:PZ'1ĕbimu6JR{ԔbhhstkCjׇjغuc'Odܹ3iAl6 @G"|P+ ˜mf5c5kƢ^X7يotO:v떢 f@.|cc-zEDEQ BaJ,]gai5kV\lPHڥȨIII.. $=-Soy:vק~ܥK^n|h*ܣ.[믿d|bҸ uuu'&I9 "]|!j.NaaaJ\P]]|6mWء^^^N왅DHE__y.w^ii76ϝ7?ͭ1'iԴWA<^EEE^^^ciy?j]Zgzz,ŋ_|inn;q$Bȥ ?ޘ34uLپkw+VmnhpB:LC:-hhPM  3s3eEVNJeELLM32T!jo,q.7%9L%iO=?ꂮc6Ԥc6lڨ`&$ZbV^S.^i@5H,j!jzZ*Du(gT j-jQB |P#GIMIt4-C,jQB\#>O#>?95&SV!(gil6ۀ6`W{]]8K Ae٢嬢Ʃ: 5Յ=zKPkH ! E-YE8~Qu h@  4(>6*jQO x𸛕r23Uh*$Z&066Nx1̙˖ C9+8g_} 244 S&NT {MDǎ2t9)T ɩ|Am  #ڹCS&Nrqt[UU%*I$J8H>6ňp_ooPpԑP(ŵkg/-dbҶJn|mfF +)+9 ?KG,?vl_HHԑ#.W(ecֆ.]p""Y׈ AM>T_Ps 6VS+*FPT b_7dxByvK||:w޲iP(Ox}jCPs:fl>k -z-U^KTAUT#"avXzlPTX`fc`$$Z l|;=}gNKL`XZJjF~Afx4{՚BC5l 1jޣe;e$UHH: ,kۮ헞^.Χb0 6a#yW\bBYVqS1g.^#jVpii-[H;9QȪJ<%;긚וi&(Gm߾sg!7<~7ǎ6-NMD@)SFݶekmn'DGGGQo@Se(j?***EhA9t`=Ro\CL/^T;G{G &&_^ʪʵQlH$Ҟ Rd!2 ̖͛Dg3==?53c#G9s]jآE WڴisF:;jf 9 RE-OGG۵+0Q=O8^\\,Hf-jm]Wò*+ńǏOb Qs~=<^Y|JmS~`biI1ݣ[UU5y„ T ![RPBZ~iShuQ]̲L L ;+S=E-4ӕpWW%\@me,Emhh5^,ÏF~5D*g)(jT VSRPCiٲy6 īgS&S^!(eD<]sLOOmX6>6]}?X,~UvmU;`$jnl̖FW`$TP]Wk߮HDvrkh:CCCCCCUG u$ɑ衃w̩н*++{KKKtf9u c\hNġGnں[sr[W^^9tis% D˾YNij*//|b)-hTET&  ؿ˖-m{ں}ۃŻefX͚:ivuoE D]'&E.*, :tB]8ܣ'N*cRRRbdTᤤ$WO1m>}?@.[믿d|bҸ uuu'&I9c҅),,W閫?^fM?1Uax̃D]Λx{w޼qcy! qcsjL24 XދzwIK.9~1g@1@!j]]9͙7j[6Y?~xh$onʚ500'=UEe"] y͛|{aԌO?%*v9yrr{ =}sqrF&Mzzz}zzׄvcFy3mA<'vCΨ@տ¥b4Ї{5flD"?%_vԔ |,zaO?/TP+##6mr!qq!AzSQܿfM0ٹ??|ew oo=gÝ]C ' ex=ϝ۷%U0Ls_ᷲml:9Bs޽z$NfgكwmX>Z !?_翾D6\ B7cV]3c&!dؐ!~JݳkwIIG95kfgӧ-XTbxe_oowq|AEٰ!|~}ak׭366aM lfhh(pP ?Fz=һ~捴[kD"ѝY;wڼa#!$BȕdjukWZ5yʔ97~̸ɧOR{RթS'BHb|B }IO R[:YYB=}fllL5422׷wN3Vr ҿWтbޡXP, e~8SUUu量l6[__wٲK.VUUQ|5gNf[\\\cǍ?`/ ::&M1223oTj W1T%s\BȰé-,k!dæ҆jXO"dXԬ& 9k ehhH5RD ꥞eiE}~ Vl܌庻8ej=WR MLMfzzV[oqhWiK1r$![`6ݣk9Һn,ۀM54xР٤lڲŪ6b!d(`^utt\WrDrƍCN<G9W۷o[\&BB ٛ2375fCK1rwdp\Y&4D^¢e3g w.552` 7JCQɾ>eoٵfS=yvgLh]]Ԕҿczٙh:XebA!!ڟ)5ڰ4:"!E4-ht]G: k3=r9\n6#+::B~X @>Ĥ¢U4@ 0 N`O(:[6o}IhFZlHLYE-Y`<$ZҠrV, Zh $ZҔrJWUx D LQ,geSlQaJJOK~|cׅ.QhwlpƏuOOKH$G3BTInhIj:X9y9yw>037 ؽ~`W.]3=ϙjWġM[} xoH|\\HP0<1!agD Xj^JYBjZh1ԯLiӦ]x!DT&  ؿ˖-m{ں}ۃ!Op|xmJ!0:T9klb\YU)RZZʥ~ܥW^B6mlmcMȮ`۫WDT! { UjO0نMLGձUζle`''etu V]]]>A!!oW8KuqsK)))122/NhHL&-j3G}f?~VmߺZ6us5,Y[|R?u߿?4nsm wjrvƏ315QuP2cK.B>N޵oFȫ?^, Nm,}_|wo^nnEEEjJj^nn?w޼ ݻ{ΛxA-N-UdhWI[6oRρQ/Ǖvp_@Ox/}|}'NhAM`wK}Ǎғ-!sǭ7|QD Z룣6`Buuu5 H!h;r:@m~=[mK?`EEY_HF 'Th9 }޺yS : ?rQUF137\]h3tMdbj+qz~70 :ͮ;<9jo;;G_*+KQtӔ|ȐFF -0;LLM]Pd3<K}U/_:9m=۶l?H$ZR1!sؿ^Ձj۶#>r=v<}`˗.HY|U/Kn# !=mm h!DGB&N@ip89yGOPu Pů^jZ[Ph``xdO9k!M;tcǨ¿x1h,_XPܴOtbĤBLzjT0-4VJbAq&.x ΝZ}{.W%+/026BD# BB>l>f=ZhPrE@P!b8+3y`'^NŜ扎>w7+Mp` B~łb}\ ttŪEhQVZFAS&N}\}쨝=f<Z1**,Zۄt;}ԔTaTX9ϓbA7 !.w?wBre^`gWs(wcjOV'5\C>niӦiӦn_ͲEKnCteU׌vuǏ=g͚2u njZ-4e"!.lwуăҌՌzݻ{lR`-))y#V;oK$5#Bi )$$6HK6lY;j#:*júq>4ݦxffW=/(]>K}h!A?9￾۶<|pkIIgp9yQzMXxqdDħff@12lȐk?V h>4f 4ݻ{ҾPiͥϰ `S]{],vYFt޽ O{215iZin^[ W1ԯ/ LLL:e[I$릎׭q!Y :NOkg@4:A},}&ܠ]pa)VO:͘:Ԯ o~S'O~hl4qur:/(]z&&{xiincU)B\\\#GBȽ{Eq1rh>_T?f͚-_ct'͛g;T!ߟҧo!r Y\>KthQQQ٩EQK,Yw.VQ։;KکEzX<ᬙ??|(HpX,.//Oko_Ȕk)&Oz%5[k:`HAK?.%K+V{;iƏuZ=۷nkɛѢ}ܹX.{_Ao-J~֭:(NcP-9Xw𡵍 !R,X$/v II$o9Omo⩓&m7yAQuؠ/O'ir+0O3r,UC bCF͢=gZ[ W.ؘ#?cΝi `1Po;)̜gڵoGRYpPx<}m͛Ovo#Vgc~SvHF )6g~?_Aw=g΂ŋtut ؽu̘jwm+`Ogh@h{ȑԓ!6-bE= 6}c}STuqqq?{ //osf%{H$6ROOmfuuu? <iifOVf R_ϸyU8\ۘ5Vffff|>ˋ0'/7'/G)ׯ']6&1>yk0t.ϯ"3<쐨L$Ϝ>m˶7G߷o_ }T u G:џNc ̸sߥC^\\:B  OP$ tD ǚ>N7>.5A'߰ic:7k."AQ4? o [ձXa{X3?N;{ "ã##NŜi Lep|sssZ/tQ]ZnMU@S)*c Ytwuj--U]G:ZQjhy*_[OWȐ+OE+Hx%+f%]hQƝ^=TRF215QJcbjj ڒheKlٶMp[XZB^QZXȁ_Ϟ~0=h.6ieb.Σ=<^_gWJxdт BF10?>gOz cc#G \ʤ]LJ""y>FFnޤ*.go`kչx4P'ZYVY bA~A`$ERu#m% *^P}.EE2eѪOF' 2K>EEb &'ZK4-Mf{ͺuizV۴iKoݼԗZ2POnJ^,ZD@H3gef~={IDT: jhi' ]{i yeiFYpbO+ y.^0cD(QQw+WcX|>1iMlCfeeQwlS{זM.^, Q˨cYG>۶m'ܹs{Ϯ'O&P{߽{{^ᷲs>슊bbV,jj !d.i J@n?a޾}+QGGmfuuu(nݣnzzzƏb1!]vmڴ4L,{͜y ,j Ei 嘚0><в4t^^^^BmVY/ ^4&9杍)..V%m\+ ˮD>e}@$)C HcP;Q[j5m4o\!s Uw%dw+$ %h#/U RR[bV)&4L&3so&3s޹qƳ>?8/f> 7~{pD&[<4uǺzP|#[P"ޏ?z蝟ɹL$r,r(r/~(@HZUyu-c0b[Xv!Jy*f lZߵΞW.4}ݎ8kR:CBÛ $۞5\TƉAb/>]"ֆ(6DG2L] BU3R7g]&pow$KH/AjQsbRHͮxS:!afī:K\Ed#*)Jr**x첣-6!V-mšVsnij$v؝\nV Zah'}moz!IrE|Si<6q1\Z͖6C= aMId]+CwU=)㑼 [lc%h31>ám$V .x o6t/t4[ +TGʾ:NۗĺDED[:u jbv>/Cw)L炗<qIENDB`mcu8051ide-1.4.7/icons/16x16/lock.png0000644000175000017500000000136712067167647017444 0ustar milleniummilleniumPNG  IHDRasBIT|dtEXtSoftwarewww.inkscape.org<IDAT8n[Ugfι:Nl7VܴjiTE@EEĢ`&XBBHT*P-)c_ǾpHi4̸7ot;oGۻn͝N;|J+ $A A ^*BijkNr>2ny. ьAա"v0em5Y c4Y`;_J)^;\>ΓC<16XUGF^N$޸3˓}{Wγ5~t,I΢48:beRϼcWl2cG{QIO's!2*beU, Ϯtrb&"YW eU/,l;ӭ0%w31u|O<{,S^;C fW(+lQ$&# ި|^eEMI [Wsi0]0fs fJQآH'I Y2S3Eı(4x>MPqD@Dp`EQa|>z~6/(/OH_=S^8l{I>97[U}wz4b}UlIENDB`mcu8051ide-1.4.7/icons/16x16/redo.png0000644000175000017500000000116412067167647017440 0ustar milleniummilleniumPNG  IHDRabKGD pHYs  d_tIME 8veIDATx͒;hQ{wfgggfwnVP4•DETXXXM"FERX(!ME K3{bIWuNq>klDe*PXH0ۺFďiPƢjZ(y3Cҹ\Ϸԛ!M L6/16mHPl ,]<]mܙ-^f<]~ 2q0vrB9ZhCW) E̬~z.}cLQׂ`gu,!ӛ1b]lP4lh;3N= )znldz=t@)!{ `ߎZº,*t#*AHā-eEWpߚ?/-p!;(ׅ=NߦddɈŤyו(:@YyǨ_ȀHta\msmQLU4*&Zekճ͍bhǧx$@@y|Ծԃe1wTq8dZTv)xn%A >cE&@rm:}N&1W;"q5%L%D9TTj@ ,w TZJϡoE|7>cdt5xd-OG|PM^rVs<֥sW=M/ZlWFRsb ީ+LdPhYAzO0/+gf +y6# = G]N)IENDB`mcu8051ide-1.4.7/icons/16x16/camera_test.png0000644000175000017500000000114312067167647020773 0ustar milleniummilleniumPNG  IHDRabKGD pHYs  d_tIME&&IDATx}ϋRQ?]692aiBbeEP"rQ 4ѪZԮ!LТZDA.!I 10-=ߏtr|΁ {s(]P(fdbAXeyqt֍o],Vu.ƷR鹹A|" Bc$1aG&sVCauOۛb<; "(%4]]d ʒye?rm@@xk5kAkm͉Wi"i]yNzr){ cu5?7|>~tV!:w>D}Dq4^#ewy_ϱY8Î5zضp% {ƠkuA'. ƍc71MP(lރ ׸<0xJ` 5hht?abpA4aň⡅ZmRi v *&6DTIENDB`mcu8051ide-1.4.7/icons/16x16/ledred.png0000644000175000017500000000124512067167647017746 0ustar milleniummilleniumPNG  IHDRa pHYs  gAMA|Q cHRMz%u0`:o_FIDATxڤKTQ7i 5p"m$+h9pӢ Dm ֑fRL"ߨ7Ni1Ψ;?wswQ"I`䮩g0# گ &yc.3'3+W\,S)&3p hB^ѝT6V2+o  !RɞlDPȷqzG#[lޱ?+f+m(%Ip`r+n:(wB0g[Djx QFz *2Cohzw"}3䂵ZE6ԂGbu * l1:}>Lku?6,])U6V6@T`nwx-6By@g  (anא|*xN Ak6@)l;UyY#let,ѺG  WFEd-H  c胀sp`(ZmZx/.NrCl6%i9; JXka vL>15+G-fsHA* mb$+L <Kt.%Y U4<>7%d7oeUIENDB`mcu8051ide-1.4.7/icons/16x16/source_c.png0000644000175000017500000000120712067167647020307 0ustar milleniummilleniumPNG  IHDRa pHYs  gAMA|Q cHRMz%u0`:o_FIDATxb@ QPPjg'27 ' _=10ڠ0ab z8p1?P@ ? C@px8V ?b巯_2|۷o ,,, @C@Q@L4ƍ >}bfõk޽{v V<}PCC ϟ3011A0`AN7333 a?  ?d(2 Q 0H1dǏaⳲ ƁB@GGAJJ pwe`ggg'Xd( """ ٢vH3 v܉7dr)((P@xx8%BbA@d@ B d~  ghE v*@ȚA :IENDB`mcu8051ide-1.4.7/icons/16x16/gvim.png0000644000175000017500000000161512067167647017452 0ustar milleniummilleniumPNG  IHDRagAMA abKGD pHYs  d_ vpAg\ƭIDAT8}1lU{gSc844*U*:"*N* :HE $DUFUja UnIRrqc득ݽǐFM}'pBF"e4]^q{'][=:DT|T>h+ʥ)={E'{CVgDum.'/^U:7 eKuúuy`G`Fڟ]3wO;pw"ˊE"e`< ؖzK%' i8巖m^l H@S)-Ό[ ]e RuOXfWّ|05zsB)2ȄyP^zQLUj%E~wZ׾\O,H(A2qpz{[}Z>Cd%C~R(IV2pzqٛ~aKMzӹգYCr`Di&6mv3Y=Lz9?/Zn ,z6'6:ʜs?\yXK,6!EjbcїkK]? `@@R*lj6?lK诒Wkl5`1!F|Wsf gƸE?ԐUUH/m}CMٷF/mWs Vxs vpAg\ƭIDAT8˕S[lK9=u]:6q u/Ճ' !HC6aYB&fv1:am]UY{z~/K "D_\qi38 }Cu8JA'/S?FeelqJ^K_>}9 Eް9p Ykwyu-V*hR4i-l(R<=>}6A5ڻ;zZXx 's,I !4+]愇M(਱ ݝrn r3S8N("%Qm+Cdqh@1,eȻ^{/&~0&N]=%J?pe$0tnk"#x*9J +p򫛇c"nء$ %b$IENDB`mcu8051ide-1.4.7/icons/16x16/info.png0000644000175000017500000000165012067167647017442 0ustar milleniummilleniumPNG  IHDRabKGD pHYs  d_tIME %9tEXtCommentCreated with The GIMPd%n IDATxeMh\eΝ;3ɤI̤FMZSVP'J PӅ.EnE•l "]KR`6`(EZCM:!3M&sHZ=r8G|12~ܖ@-J+կݱ7}{^l7n}׏va.j$8e& _>nZ?;28"a4[[SXa=F+xgLng>4(GG_z᩽M)rJHY)p*1G=];_:IW > Cp"{i(UPJst\=.^~'=݃\ODbpQk-RJ(DJHP~\S`yR"{z[ٿ+GkKuԣɃ=]o*V dbGl\V"r FKtR !@RHၵ8kY)d-sn4TRaA͢O=0a4Rk\VqA6{RPݸ@6#G**0 UUJ-;>!.wB*+R~ED:A1D8MzHR~%P ٭҅=F\j_HJϱSћbaQi>4?rvYi#mCY=L)mgS?Q~7:urOIENDB`mcu8051ide-1.4.7/icons/16x16/viewmag_in.png0000644000175000017500000000145212067167647020634 0ustar milleniummilleniumPNG  IHDRabKGD pHYs  tIME :irIDATxuKHTař3x#ENI-LAQ" ,jM",EPX"H"(b o9ʌm33"ӻzy95Jpvʁq9Ҵ=--Gt8tvv{yyϣʲ-'F_[Is3v{"~/D3dA% =wCK͏ _S}>/>T?ƠPvhtXK(0HFP$ nE,I`:'HRR/Bx] 8B` vpAg\ƭ IDATHՕ1n0 E餷CH7o1ItgR:Z%JlhQ.4}|}1Ƙ٭p -&BDvZ@!d0bDp>Cr_Y`D: "Qżg1soámsXdd'C@̎:u]w<6 ya LPψtNS>jxZkRw96 aYJ)T% fRǷkVrBf 2\ faV|B??5k,\IENDB`mcu8051ide-1.4.7/icons/16x16/ledgrayred.png0000644000175000017500000000125412067167647020631 0ustar milleniummilleniumPNG  IHDRasRGBbKGD pHYs  tIMEsս2,IDAT8˥KTQs:̔I6dE(- Z-VnZȂ wa.Ѽνw>9ma h9}) azJTx5ڋ;ߝ{-ۀ!kM$Ssdo?׹^|#'^Pӆhy62:==s@Mf!ec{IS-gIZD˝pvbj$b љdbj0d7~}x}Ÿ78hP:H')Ɲv<䌿W{yB# jjDAyW> \k)N_ӥ=8@V#X"N5Q!QS!"ԫ#DF 0aG(S˲ٸ930ҩb @\)/Zk}â<:6<@kyBX[vPRja 6>,Lx=b{ves"gJ 8|Iabn<߿$| F²@ZΠ{gҖas^+^NKCS:A scĎY3]  ϚSѽccwBj/T\&/aTnGoGY_IENDB`mcu8051ide-1.4.7/icons/16x16/sh.png0000644000175000017500000000055012067167647017117 0ustar milleniummilleniumPNG  IHDRasRGBbKGD pHYs  tIME mIDAT8ӱJAoc&dvv>֖&+}++BRm-'Xuݨp翇33w%*c8YnIXA}hZc-\Kć*L LqX- _c8Ţ4j I߇5* ?E3T竏U }T^K?,\ލ ZdV>\eI|h5v<ëgb 7.hoFKYh!v\7QO)܎&hܒ3cJ.v6O}@"b {Z[ZȚ+x-nPE1E[[+?'"G` .}مe6s5Dg%6)d} [Vf\L$rZ ۛdm%6-M 8A F . Ġj E)-7:)"hBtc@4LX,-Ǻ'ѰΣ޹]EQ;jg]}=pw$ VL{-^kb4jt.~'s3@.9Z== db@o*8ZMMy=~b85߃|9w FqTIENDB`mcu8051ide-1.4.7/icons/16x16/gohome.png0000644000175000017500000000063212067167647017764 0ustar milleniummilleniumPNG  IHDRabKGD@ pHYs  tIME  P2tEXtCommentCreated with The GIMPd%nIDAT8͑m0OAST@8}\9PE1x)Dlj xH/+8љGsH$ 䔂$,A(rR"LzC@9L.T׆i}rN!K)eH.vYlZro]XHmRX&"QARS 6kem=o\nD"ijr ˠڦ9מ<}p}5s-K` AKI[z6.IENDB`mcu8051ide-1.4.7/icons/16x16/text_x_makefile.png0000644000175000017500000000123612067167647021657 0ustar milleniummilleniumPNG  IHDR(-SPPLTE$$$ ())+++*++(((%%%CtRNS 249=>?@JMNy WƱIDATx=;Q5Դ EHBJ!Mhwsܼm(d6*B?pQ)N[iCѸ ]?:_ԡFcQ1ߤЕ>Q˲fjAT0Itf=U/"Cj4^L! ~Y6|UpYcf|WB9y6gGi.{7E9v\֬0H&IENDB`mcu8051ide-1.4.7/icons/16x16/grid0.png0000644000175000017500000000025512067167647017514 0ustar milleniummilleniumPNG  IHDRatIDAT8œQ 0 C_ăCNWa 1vM,S$AI$ij"k.oS\ ZB ב†'xy{RĞa3 F.FU+8? JRSIENDB`mcu8051ide-1.4.7/icons/16x16/compfile1.png0000644000175000017500000000661512067167647020374 0ustar milleniummilleniumPNG  IHDRa OiCCPPhotoshop ICC profilexڝSgTS=BKKoR RB&*! J!QEEȠQ, !{kּ> H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧc3-bKGD pHYs  tIME !/?IDAT8]Oh\e{$it$FHZܺ׺Jp.ܺvYB,Tw6$uc5h5f&7b$=\ǰJR)Y$3CAr IG5Y__EN#$FAKKKW'ѯl+VoY0BDG|_:Tۣ4手c73803N Oyzf*Ufgg8$I ;w~/bz,B8!1(b`͌oCD/ vvv0 0 ۀ?O'ᨑ$%rR" hfƟA\Jhdl퉏"=ez(#055JI=uӡr/Nޟc*26>M&|jys~@Aòa&+ "C 9@9VVV.SϭBrm5 sVc}>`7ȳKś>[w.-ki#=ytڒn#.;~S#.g9X\,˸~i3Nd`mm괚zj6B ja]-//_)3777ƫZ-!I>ȢEV+ԫl3IENDB`mcu8051ide-1.4.7/icons/16x16/filter.png0000644000175000017500000000146412067167647017777 0ustar milleniummilleniumPNG  IHDRa pHYs  gAMA|Q cHRMz%u0`:o_FIDATxb? @4---3 999$ V @`BFFGdջ^z:gΜ֬YWZw  0' ;?))鿦AqWWAzlܹs׽|DDyyyB---r֭@olWRR°_YYÇ q7^/^|dȑ#G£iii x57g ƍ?؝0 b۷߿>}?Nn"+  sÆ K. F7  EҥKO8w RÀ@z CAѱ XH/@H0g ej`;WW(Pt32c AzL1q@@7Uы/mS a^aaa(dKǏ?TB @`h.V4(߿Ȩ. \ PАB}}@&@0()~IENDB`mcu8051ide-1.4.7/icons/16x16/colorize.png0000644000175000017500000000177712067167647020347 0ustar milleniummilleniumPNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% 7BL@s~dedTR.l`*!+峿]+/]}2`2xj4;{.ϿŃ߯n,C2L?@ANRdiM8*vƜܦh>nAZ';>>ᮗ .) [ ˓$6/7+BApS$"'f{a }[(3IU '  # ̻EJ܆arie`b` L@çy '7ly f1V׼p-@'~Ŀ|' >/3@1O?'6e10|@/oO ?2?xpA( ;~IڱϾ37W՘:*+ ÿ DaXCG>\icĄ,bPmՓ7/r^Iu2; _0>bAOׁbYc0'/Êu~`fp'Č->v#uo}uh8?b߼_ q_9YQׯ v V_Yt?FEĢʛ/?  ??I d˗@'108:7@  &6V/L  ~`)_GRW[o?@C/ëtD,$0# 0@t oy0X(Á @/T~p)qn}fQUF  @~s2:O f/_ @sGt`e4{sßOXA?++fv1| r< : 21 A{! h4y؅N\g`xà wcxó><|{!#.c3d*Ѐ1ǯ ~gJ8l$.ƿs/by'*?P 3w0 70&_0>y;܀\4$8} 7`}H߿~,3#@U4733 D (yp{S3nv&`S_7d C0gdeamIENDB`mcu8051ide-1.4.7/icons/16x16/button_cancel.png0000644000175000017500000000141312067167647021324 0ustar milleniummilleniumPNG  IHDROc#"bKGD X pHYsHHFk> vpAg\ƭIDATHTN"Q=t#b#ؠ" q!5ư2,&\ICy4 ЈK,:!0,fjssQ眪SQ(mkQ,f P*,-}o4bmm@4qy>PzSS^!`2 IGG877,fy 6+Af;;2z=I`Xyoowda"xaac8NeY*UVfM1PX3ggv;KӋ t ӱ,"I ]]}{j1Cx# Р֝ i- h4^^ePBRHDfF%@#VBl6u`Yfbd:rV|pqEa~-5U YVl(Jլ4-5U:q q@4j63Ydr{{fu\jb ׫wCO4ʲ!OE[^WL@:=?*CN@J߭j]<x:OJd2׫f]te H\_77*P>\c itWP;IENDB`mcu8051ide-1.4.7/icons/16x16/_player_pause.png0000644000175000017500000000711512067167647021341 0ustar milleniummilleniumPNG  IHDRa pHYs   OiCCPPhotoshop ICC profilexڝSgTS=BKKoR RB&*! J!QEEȠQ, !{kּ> H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧc3-gAMA|Q cHRMz%u0`:o_FhIDATxDOu߼v.oQ -ҒHm$jƃf͛ =x&Zm#*ȣkؙٙRw|J4jAt]ʰAX.VšG?LJ93DfYϭ:ǩ},'eH*-"1ȉXC"F+k>Bӊ |2O8*)U xLX>2Hj5<@> ay6J<ևRt/,7JAn|{B5ǝ52l3hqQMBPk$@LRX-3RٶC 7iXZ8,ߛ1FH\F5|SqJDǨɑ_g5]'fN1!/p] ut$g̽4RRkZ/$2=Sm]|dFΛN=XNEɁ;k$zUq)A8nC%ln[\qI!2ET0r?g.![c9Vq/DqAIENDB`mcu8051ide-1.4.7/icons/16x16/find.png0000644000175000017500000000173312067167647017431 0ustar milleniummilleniumPNG  IHDRabKGD pHYs  tIME 0JhIDATxm[h[usrnI&mfu|qsy { :/xэ)">:D>`LƦtn ,MN'Ysr=PdǏ>O q/gOGȚ븗j}UǝÇ_mzlen!OBO<9])(vANR$I%1հsϏJ@m㺪Xs^TiF J)_ٵ|w#ܡҦK9(x3H'bZc!rBzzc;v!‰j@"! 0FE,AEzbp(d (eXU iQFDJ)jWK"C|#l0ׯ_D56ZmBg^o>3]p%-i-^q}Y`Sٻ;Lkpg z,-IENDB`mcu8051ide-1.4.7/icons/16x16/project_open.png0000644000175000017500000000125712067167647021201 0ustar milleniummilleniumPNG  IHDRabKGD pHYs  d_OIDATxڍ;hTAd`X1*LD,ll`aP++Q SX Z bIb%j!$6E"FUX};s7l\ׁ̜ϙw3|4R(Bzύ"o2Y<..jtea@|0} ]Gr^g)VP!z8/"hR\-u7ULjGZJìiBPJcGһwddp 7דNN l.,L}.4}p4Vzɿ?]n%$VN gKJqm䱪Ԧx}/>>nKK=;QQYp*߿^c ~e`x 00)me +ŕ? @5?a4 P ۷X!!Nׯ?0|6?~ xo&$  `VIIQ9..B0@ .. --4 X@l 0@1"_Nl`W߁~ ??`0?`z0b@y|XﺺNJʰ7,`q!#@9Y3f at2H߿62 A^ @(061+0m$sF7@ ٢,ˠNkdeeſ@X&8@ 'a` c8z<4]y v˗ blIENDB`mcu8051ide-1.4.7/icons/16x16/gear2.png0000644000175000017500000000224612067167647017511 0ustar milleniummilleniumPNG  IHDROc#"bKGD X pHYsHHFk> vpAg\ƭ1IDATHǕTOH;SB10)\8b"렆7$Aa9`tqɺxРi$D1͹!: z:|Y\=}?y(D^]~M4222mpWnmmm$x<4MXyfYQn4r`uuuuq;;;;GGlPl6 p:NMc *`02 (h::::X,[_'bR"e ~gD,׮@ [\@> @*J?~ r\>}%2=ylzzzzL&I_N4T_躮WU⩪j!`4(Q8pP4lnnn%yBbX `iii`eee'`kkk+88l|۷j5X|L&9HP( IENDB`mcu8051ide-1.4.7/icons/16x16/set_lcd_size.png0000644000175000017500000000027712067167647021162 0ustar milleniummilleniumPNG  IHDRa pHYs  d_qIDAT8Q0C'dЉ.vYǀ"iRz6YPU$}$"qrLuDJ/x:'bA\ bg"4IENDB`mcu8051ide-1.4.7/icons/16x16/8seg.png0000644000175000017500000000035012067167647017351 0ustar milleniummilleniumPNG  IHDRasRGBbKGD pHYs  tIME ZhIDAT8ݓ;0C1 }ݥ9,KB<1Q`ɇL"Qdgɓ ;N{ 8mS T_*bӕŇ&t;HΗmHIENDB`mcu8051ide-1.4.7/icons/16x16/fileclose.png0000644000175000017500000000200312067167647020445 0ustar milleniummilleniumPNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbtg@~-cbbr($?bbA W2??/##_n޼_u捣̌-LL;`z [Gxx=77؀_1ܸa}+Wn\ &&) }fwff ,, ? 5(py?}z  fe߿vpWÛ7?~tw 4 e/^Vz @1[[HHJEE @ACC7@1))aqqA;wAPP  3m/?00pr5IJ0((H׷a͚ >aЛ?^ 00!/G]!1яANN  ֮30,X0@B۷ O}d001ܿn0ܺu_s@͉l 04|X@aL!쌜 QQkӻIENDB`mcu8051ide-1.4.7/icons/16x16/compfile.png0000644000175000017500000000110512067167647020300 0ustar milleniummilleniumPNG  IHDRa pHYs  d_IDAT8kA%#r"AmSB4"ԂA ml"j~ Є3^vNy̳sn\"0 Ðm(YY:# ɤ:<1{aLc/nqD *1RXy3Gx3@)6_mK/R_"P-al|kpκ\UznmPP0juJBզwh4~t~e&k]lb] @[b~ @( 1'k.[|>mA#l0Za-/#:ɥ4kDZ+L`->h*be"kcT?H&>e2ksxjZP VP rzYX*QlwqCv2GDB6fZ%siH$lHt:>c#/a7߾n3k}IENDB`mcu8051ide-1.4.7/icons/16x16/kcmsystem.png0000644000175000017500000000160712067167647020530 0ustar milleniummilleniumPNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% A|_"85ߝg';7Gυ J@_@a/QN@޾e/2؝Ab b~3x0?pC*P;!3@c_{ ?y!hC P0@ g? ć?neXb{I+#9/-=?( 3 >b`|ti`Q ˪ed```cf`YA؞Oy̍@Laa`c8T>Z  >~`*qAm'FA+#?~ytl:Z30pB h3} 0{s[cg@L9W} 8w@|_'Nfx<J"#%n>S _|2w 'W3\=zHy44#?<'paf'9%Pb] WUNNdxHE  wub$3CwFdut;@1"%i3D11 n~!o pf`ė3޸ $oV2vLl22axLG4-'/m!@1`gҜ>3ʝɿr^eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3gAMA|Q cHRMz%u0`:o_FIDATxڄMhTW}̛yɌI&ij"J %R* Ɲv!QAARH]RkJ[Pbbd2o>޻H4:9+RNPA֦4(= ӠPJ&/\;sGeP !08&*.)!)DWc[Gl<SF1*mKw?^8Ÿi{Oqo/ ^=v0=sٯ"òUm&X@Z3["{5qz2+DQJ[oz?hn|'l2w677#uJ6w~= tωgd241S(0buTv[&سW2U8d}&ʂ]mlͬ!]4jj+? _0vت6ʐ (K+B/J?.DtR#ʗX0W ?fpt McYqp r>~BW'L 1så5&f/\mshkÞ=Ɉ/s7&f'*d1Vf~I:KWV_t)? X[HP!^YqWIENDB`mcu8051ide-1.4.7/icons/16x16/today.png0000644000175000017500000000154412067167647017631 0ustar milleniummilleniumPNG  IHDRagAMA7bKGD pHYsHHFk>IDATx}M[Uso2&L;ImfFkZB(*7 Rm)] +AE]H- RETԅ…RD;8inI9. p},>ܨ{֌BpKdbDI/FWdֻO>pb(p,`xغ݁f_˧=kk|@  jEM2Khl9xwt0%Z J%cRx2r ԁyc;r|Ȓd`#w2WIxZ8mp ]K}Zt#R ;mc7] U*;s[y՟xp_׎A4fz*K;]>mj'(l0q!L+M^:i@֭G 1@n&# *o_a^'>qSlY$_|;Bg PBs` 8fq? +),K6gt=w썫E0APTV!g٬%Y0YtJc[]`s& >εÙ1S.Ug!DcW,*daF7N>8|GB N?(t;D+H)<;W~ԉS|pT̂(N-(-g\B ! f^キM6 _g37?4~lfr@ w$OtEXtSoftwareAdobe ImageReadyqe<IENDB`mcu8051ide-1.4.7/icons/16x16/ledpurple.png0000644000175000017500000000131512067167647020501 0ustar milleniummilleniumPNG  IHDRa pHYs  gAMA|Q cHRMz%u0`:o_FCIDATxڤKTQ?缧:i8bY!N.*BAm,N\H"ĥ? ©MTXYQ{[ cʻ9sWo/,C_Fv*cN;.H9̝2HKӍsmhbWkZŷOΜw %td/FJZpɶ/C/N&&zl5ׅң[cX/fÐyE\b[rƘSH \ [Ths7@ N]k*Jf`JQL1`}b`1GSwp=_(T3O)Ch~Ʀ}Z2AoiZQWlEYSI\|Vu f`g*0jձ)"bH;Zlp 5 dWQ+&ஊ&IDGTwh.~'FZ̦*PXɂTTos*׾-Mx/5eX87Zi! kW5]9S`aL]g|\v $:aIENDB`mcu8051ide-1.4.7/icons/16x16/up0.png0000644000175000017500000000107412067167647017213 0ustar milleniummilleniumPNG  IHDRZbKGD pHYs B4tIME <IDATxҽkSQケBxdJu'EYDG!NY, b(B[ I{sK$mmyyH^QzEͪg!7WX2,?~r"u{,|W.NRIȽ*9,EDXh<\MC5B۷CgMVrnQ̞ƊmA< )8$5"Jkdhaa&n4ĉxAā/4|/akG5jU/4w_[7/v$,i0 6ZU3FOl/]W{tqYpM?c:޽~Q8 ::JI)%_0F&gRH x7c CC7d!s2@ʓo"u4>Si_sgdtM~_ތIENDB`mcu8051ide-1.4.7/icons/16x16/configure_shortcuts.png0000644000175000017500000000176112067167647022611 0ustar milleniummilleniumPNG  IHDRVΎW pHYs  #ugAMA|Q cHRMz%u0`:o_FgIDATxbY --_턦}ųg&~}222LM/2˷o?}KSS@Dk2 s/VF?~zΝc#--.,,`rk@ >}ebPV x9ϟ2\zΜvÇ`rrR <e,12 /Η-3d/{Dlj `H&<07Rƙ6(@[z+-m׏{}>x9 wQЅ.]uX,sJ7W&gx r$׻SmO>ygrV +#߸Kty9bhZuuX\R+}F>oI ^rtNp4x?ābA'LJeIss9 -5C aY ̀!gfook}T20 HD%R!I$ct}d +OwEQ2={r_S,X҉)]f~~5+16E&[9ty. tL"'ȄXetN2jIp_`7yӴmKMG:17YEcgOi`.p (j0fb9r167Wṟc"l6$X{T7b I R-IENDB`mcu8051ide-1.4.7/icons/16x16/ledgrayblue.png0000644000175000017500000000125312067167647021005 0ustar milleniummilleniumPNG  IHDRasRGBbKGD pHYs  tIME0כ+IDAT8˥KTq?7ǼF*4 6Mnh V."h_"0 M ZMXF2#l̛-f4G]~w˽s=Wy&Qc $zx8ŷ /tV4t8 $}|W| GQ -zwX,FۗH:}Hitd7kmZ W*nqpVY-q74$Ij3Ldu ,ʲnqޔp;Zo{-ސ(E3N u ՉĚkaL5  nj*k4 X t(F" @Ҥ^ʴ%-̣ P;V+|za;+$7IkK6?-ZJuy<^']^U?!F l`JעauJ~<7֒ Q/KZx+5<;5n} yF.)N- 8O!{9حNIENDB`mcu8051ide-1.4.7/icons/16x16/ledgrayyellow.png0000644000175000017500000000123012067167647021364 0ustar milleniummilleniumPNG  IHDRasRGBbKGD pHYs  tIME.۹IDAT8˥KTQmbJ2D0EFES7- ZeA?Qv FMQJ:sνm1*mTVI)$( ,˦u/,K0cz\cmHߡAVpR2ci]D3X2Qva&z\%Me)L-3D1B"BT  jԶPHs$tǺ*MeYkm[Z+T~/ l8o4뻸iO6u{$l8ߞNzqUȉa|]E[AT5ρI nC}?:<@Rac8QXt,SX &)msG`.Ȇˤi6IENDB`mcu8051ide-1.4.7/icons/16x16/rebuild.png0000644000175000017500000000124012067167647020130 0ustar milleniummilleniumPNG  IHDRabKGD pHYs  d_@IDATxڍMHTQo'4q C3ZL#ٲ huB(Jp!Ԣ*heEB-l!M~9̻h{XGνՄS7+i vpAg\ƭ=IDATHǕTMH[[Q7 E !hk-VZL1 M\Hh(*B]BҍTڍ v )XMTNyggs.7oK `kp8 w.pGGGG8Lr\`6&rjjBP(T*:=A$ B17+dz?8;;;+n7`EFo~*t: 65i|f304441>E"H? %Ƕ`m dů_ϟD}8q{X,ez=@Dd0[[[[{{>{Fx>t:f3PWWWgKKKK;;/r/s\Pc: I$A6|E%puuud2<{i2zD@Ӳ$Ihnnn+E{g,@bX,\8>>>fFх"-Q/IbKgHP <?ϟMMMM}Dv4M*JUYeAEQE6~@CCCǏ =6%Tz(F<m2Eaj%b F٦3;DZ%b5_.1_XD~ cMReY8 L&iT|t:V+ί_`K5 (iݼ <|n?~>L28:::d(*bDbXH$dX]]]]["#*5L} eP(-Q___߫WI.p@6IENDB`mcu8051ide-1.4.7/icons/16x16/spellcheck.png0000644000175000017500000000105212067167647020620 0ustar milleniummilleniumPNG  IHDRabKGD pHYs  tIME   ]IDATxڭAkA;+R{a{ꥇ=Dv Ӌg-.HC"VPEY&;xylՋ77h D,< #|cH ԁQ9@-vEdJnJ < j3 fjC Ok*G>W+xɢR]E} bmlr6d[Wg*|@K=%u%~x|˛`GoXo)>۝ji1U㆚w"谫7t}Gx~cB5s*:ٵ ze:3GYԿ Nd)TK`O1tYpI@_{|Mc6wT)b'cMw|ēҦO IENDB`mcu8051ide-1.4.7/icons/16x16/ledorange2.png0000644000175000017500000000100112067167647020517 0ustar milleniummilleniumPNG  IHDRasRGBbKGD pHYs  tIME#bIDAT8˥jQOfj $tբ.]7IWEDp*̺ "u![|ZWdeJ033.fI$E6s~繛x\29z'x*@+>-:<}u/mcgf^ćW@ྲྀDշ&3Mb0Νe u=иKM|$hyEM&":-;]9.lV"79'Ȉnж3L'MQIB6'v0ŇeNuNgp$1uB$F8́ 4uj\` > bҷQ1Fr:+?ZeStfAv?3 ֛7IENDB`mcu8051ide-1.4.7/icons/16x16/no.png0000644000175000017500000000135412067167647017124 0ustar milleniummilleniumPNG  IHDRabKGD pHYs  d_tIME  ?yIDATxmKawPjqpPT$ nPtRts:\2H MVtF/|H& _a Ax)ވaP:qva+:r,Z\/Z+KKoU4͐zg'.@R xYzkr2C[@>pw -D(퍽LXq] PUH BRa-?>F͛VBNOAWWaj ad$II`<\6l9]XY wMifL^Mu]X +>v@8! X^h la4꽬 xB@c#"Àk q}0 d:Ԅ( \ 8,, QqdJCV$I4m3eYBT?pVT:;s6Ȫi ;|?>>-ː(b4ɉs;l4MܪTrBaeSRRFDG6`ͯ];nÏ&㧯IENDB`mcu8051ide-1.4.7/icons/16x16/xcalc.png0000644000175000017500000000124412067167647017600 0ustar milleniummilleniumPNG  IHDR .IsRGBbKGD pHYs  tIME.3w$IDAT(unAgwy8D" D)(>DEQ !Qh H$HyQ2IPɝ{K iF>z\|Y26-9@8,0jomx,^ͮ\k'w|FyKU&/jX|/]Ƃܤ [y[C.D8qB2yоm56AJ@8D= mJ#>|__2ېɂ<v`~r&-u6#hY,)G/hWkT63`>C 8!5Mrxb4GwqRૄ*KLzL1'NRJȤ!?큵Ҝb4 0z@蘚ap.A9km#jRbs/ 0+9 C(ԪE- BD"[~\)$N`!i;mqx5lyωBNrbp+* EI^;j)B@|Y]1|k6Dl@d)/ȒKR/(5L_^s7bs+鄲{"h_;Wd<ЅIVV{%3i#:3$Uz9jƩ31z& Ȍaâ&$9zim5])Zc?wթ&t_բgUHj>C^tǁ?@WS 1]ƒ`ގM1j8} jyBlѾY%jϯ7lh!Bٜf:.4D9haJb#)Z o}e#j>Sg.gJdڠk`Ae:;;IENDB`mcu8051ide-1.4.7/icons/16x16/hh.png0000644000175000017500000000042612067167647017106 0ustar milleniummilleniumPNG  IHDRasRGBbKGD pHYs  tIME 5 IDAT8Œ10 E_L{/ԫp('j1Jjog;/8DFZC$<5RZC<eRCetFlqxw! KMDb(3O6 I94$oӐ44#e?>a+7IENDB`mcu8051ide-1.4.7/icons/16x16/player_time2.png0000644000175000017500000000165212067167647021105 0ustar milleniummilleniumPNG  IHDRasRGBbKGD pHYs  tIME  *IDAT8mMh\u͛8Gc4ӚE(، }RX4JkKX+ .U@\؉(Ec6%ichAaԤ1N&M2J)! 24=kTJ+?]V^/ayӅdzh;b?VK. "\^,hK~(<2 ˁ'eɢ/nUyE/VēݙbggLEqEf]srilV&E<'ޯE+@ oF˹Om ݼ4 Db#( G_L!tܚ*F n_;Z\ e6K>45v0ف3ly fʚ'l)J4&lmуi8+tpnr2M[KYZ5#:0ث dx1.4\qU0fn3PC 12d2813pfXWd Dg`~Ġ¹AP)eI K20I#@`:73\m8 P+~ρdQ:H0 ?X[SKDf` 300| d; ! 3 aÑΤ$Y((;[>v  ]6QaE֏og`x YbP@_2,~&#2P,ckx@`~z'P57Oy &00| /L-|+QԘar  ^b%?roYb`z8w_f 45tO64'obΐ ԛY6~;P>`g` m<3K&? l Bȱe_ٟ>3a t{߁J_@ 6bBؓ8c 410A C0 0WcfVaXp?W793He=&hB103$pN`x @NcHgT`@ RΰCi`it$vfֱoIENDB`mcu8051ide-1.4.7/icons/16x16/ledpanel.png0000644000175000017500000000221012067167647020264 0ustar milleniummilleniumPNG  IHDR(-SPLTE3f3333f333ff3fffff3f3f̙3f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙333333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffffff3fffffff3fff̙ffff3fffff3f̙3333f33̙3ff3ffff̙f3f̙3f̙̙3f̙3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3fez|tRNSəj7IDATch0( C lٲA[@XPLÐl /(YIENDB`mcu8051ide-1.4.7/icons/16x16/text_strike.png0000644000175000017500000000135112067167647021052 0ustar milleniummilleniumPNG  IHDRasBIT|dtEXtSoftwarewww.inkscape.org<{IDAT8UjGU=^[tX_c؏`%#87[s؇C!DAGD8>$f]vgfr9 *13IRk -H7@o`x*,7|*هnxG A"|kr09[u dY\(N+$Q/=3(NEY|8vR yJ|0N9??bt:bƧOD*T !~`0`>3LPU9Z#РK^%I{`0/@TP5mv,˘fL&>~dgg_4[0c<sqqAףP˪cqT$lllBX!7oP[K DQ)qvڢ\.qΡH4 izttl6#2:gggF#~|UڍQnloospp {1QZxPQX913ivs0`wwU]Qv!"H\ sF*̦,_ϟOiBjKuIENDB`mcu8051ide-1.4.7/icons/16x16/red_dot.png0000644000175000017500000000133312067167647020125 0ustar milleniummilleniumPNG  IHDRasRGBbKGD pHYs  tIME$J[IDAT8Mҿ]UϜ{$k$DE4` Lia/6Ft?Q!(5Mス3wEwLZTOB2[gZahL+#AikzD %W>W'wV Rw OzC OnvganVoWW">+>owe=J:[nhYݮ^Qm&Cx)™c5"1odPe*#~B[ܘZPL*MY5G C^=9:8/!Qb*m-gMfUQۤL*rpHlz偎_~otphVrꗍaN܍k~q 2Gb2>ZWڔF5̓]Oⱡc#0- YKP%cp oiφyqMf=dejC~Ʒ5ҭyp71FeF;|֌?ZV5UFk ً G7nt!±i3S8{>uxU'Oňt8̊ŝ'Nʶ> ;IENDB`mcu8051ide-1.4.7/icons/16x16/flag.png0000644000175000017500000000101012067167647017406 0ustar milleniummilleniumPNG  IHDRV% pHYs  #uIDAT(jQ;Ɍ4R,5T.Dmq.-.|qBĭВb)")03L0c w{ηe1,qp+ڶɦ)onbp ]*&;/:- փi4u(Yյ5I;T/!p Ǖ(4>SOh,7(J 1fsg=c.! (6MTr]Dmϋ0T/=[Ӫ5köY"JLFusƍO/XZ}ZQ`Gս{I#= 9 'D Nݦm;lpp(>VTma#LN(Ny{zPMt j IENDB`mcu8051ide-1.4.7/icons/16x16/amber_dot.png0000644000175000017500000000142612067167647020444 0ustar milleniummilleniumPNG  IHDRasRGBbKGD pHYs  tIME% ԌIDAT8MkWW?s{_TD ,ZDJAH+PpQAܸ]IuVKq!(o(].ZJ*4i~w_"8l9pFTW/~*硪0GJJ@V` t6sߤ0bXa`c9Q[ T)U}|Jc\+c, u͔1d umfJ||ʢׯ=M1+[ˢfSavȉ\{eM6ijVh4o=f1S UɒԶ|sp޿`|#9a*2#&FrfdSBJ4&%$nzR;rpB(Ą *Ng12SLՆ;շzq#`QSA_2!!08;7bDj*.l(MHT"<0= EQ pP-)75BCHNv@SBKa+6{ci08~ %6T]}ra7eH8x8@!) 05+_DɐOcd-~ Cp)Ex~ZǬް,ο4pxD5Ad*9mySf#pkmųҠ~w++IENDB`mcu8051ide-1.4.7/icons/16x16/locationbar_erase.png0000644000175000017500000000061412067167647022162 0ustar milleniummilleniumPNG  IHDRagAMA abKGDC oFFs1 pHYs  ~tIME #8IDATx͒1n0EQhbO 4t#X8JHig?B`W<7Ⱥl@;i+pn^y{(003RH)\.t]p;9m["uZ;nS೮keaG(v0 G,{$ !_qι,ߜCN!H +A̅bb1X? bz 0IENDB`mcu8051ide-1.4.7/icons/16x16/cancel.png0000644000175000017500000000157212067167647017737 0ustar milleniummilleniumPNG  IHDRabKGD pHYs  @AtIME ",ᢂIDATxm[hufg/&K.hR)mjԂ-TA` VWT)*QV+} ڠ^&-6YldRsٰl6dgƇhM?9ps>6sy[q>\\q]pv+Vn!y\RƝ4|,%)ׄJ}AD|sv u8Ͽ`>;Ux̩M%rwfу6(~v/NCNhm;L>+ǩ0qx G}><ݷZEFтAT k5_Yoڄ .B3e&ߦ}a&B y#t_~?~ɧWp2;+՝:Х"iG&cx;1&X:O]Z, -7b 07ov G/7W#\weSY"W|i@(dCuH^UtmleA4{}g |xu~l,_4 gk5Ȭ*8>utS8TڞAfя0?-;vt-ѵs E2R)X8w.S[Ӊzݙp:}ݍdׅ$dL&S [SqW65P/~-;NĮd2ʆo6:+՝.GDEs `1X_&јIENDB`mcu8051ide-1.4.7/icons/16x16/indent.png0000644000175000017500000000057512067167647017775 0ustar milleniummilleniumPNG  IHDR(-SgAMA7tEXtSoftwareAdobe ImageReadyqe<QPLTEԜhΖb֢nlS8nLeGoPd}ZX֧tșج~۬}Ң~XvtRNS'4 5IDATxbB ]@$,I $ b H"T$'B @1Hr31rHT ?# ;\ @1H qJ HZ B8 t @a # IENDB`mcu8051ide-1.4.7/icons/16x16/symbol1.png0000644000175000017500000000037412067167647020077 0ustar milleniummilleniumPNG  IHDRa pHYs+IDAT8咱 E+Sx 2a" AA((-w8$ms௔4nDV=:e_3PYwUa֋DV5,z4̷NfV8e6 J'r$5ͬ%:cY'%)%ǵm2NnGIENDB`mcu8051ide-1.4.7/icons/16x16/grid2.png0000644000175000017500000000021612067167647017513 0ustar milleniummilleniumPNG  IHDRaUIDAT81 0 OϯCtY#"3+*[Ri+TmUJլ,fyᮙ0 o=n$Ye[7L;z!2 vjIENDB`mcu8051ide-1.4.7/icons/16x16/filenew.png0000644000175000017500000000125612067167647020142 0ustar milleniummilleniumPNG  IHDRabKGD pHYs  tIMEl-;IDAT8ˍMkAM)1mEz((E/?1'ңŋz\DJmmi7m&&5m?0xb͆![!CfiٚiMt8: uU%-#pPU!1h]uBwK2H(_ !M9_ vŒ_h*}X 0*pJT9r+0D#ᨉqM]-ǧqW aM~:~-Li 4AklJ(@ TXaT=Jk|c}unxWjNoA&70#d7|&׭bH3m R/2֦(TCw= <_9>IENDB`mcu8051ide-1.4.7/icons/16x16/asem51.png0000644000175000017500000000130712067167647017601 0ustar milleniummilleniumPNG  IHDRabKGDԂ pHYsHHFk> vpAg\ƭIDAT8˥oRQ? 4M/::vpԄ,:87ѿ6&t.šbBThr}м/19'9=7|~۶mi].* _ONDQZ>OPUi:9Ms ۣQ @H |Htq#Mp28%p9MCe/-1, & -ׯhEEqsF',-` >p {3B5B Q+yC0 2wb1"M }kZ LGKOum k^8N$Y{eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3bKGD pHYs  tIME *aIDAT8˥kawgflJ4 > )$$ZAlQH-Qj#ڸXYXZhAlBvUj2Ify|kM!nqpG03"ۈ ƿwlڽõ+m9O_->T}`ƟY;Dc=4[*p@җ>k ^`Tmyۺ ļ1|MBjѭ &0B$QO IgSGp.L,jQr-?۾z:@CJyKtm#fA=n'z fS+r |ѝIENDB`mcu8051ide-1.4.7/icons/16x16/2leftarrow.png0000644000175000017500000000062312067167647020575 0ustar milleniummilleniumPNG  IHDRsO/bKGD@ pHYs  ~tIME 5k\ IDAT(ϵSq \2".i)&l}Dq1PEr >&RN ౻mƹ~%rvQDm6. t])"$dk#A ﻨL)߬@ e3!;I =$RLYs.Rf hST Q fkUKG 9hƔR`! -'1 jzpw&e. M޿&C/Se~00 ¯e u WW,pIENDB`mcu8051ide-1.4.7/icons/16x16/eraser.png0000644000175000017500000000144612067167647017773 0ustar milleniummilleniumPNG  IHDRasBIT|dtEXtSoftwarewww.inkscape.org<IDAT8KSqǟvqfKg!Mt.. Cb)v0(b]fM5ɲe\k[{a;6綳(Ry<a!uxn /}ѻosˁWl3鑓sG\V@cMj͹^ss[ lx̀3Z&,&l7 @F٣V14쏂h7 L!혇nq>UX.oOSejnX.BFd 3ʊ&.?BWW>ŋ>NZc:,a$@B Z>)K,-j@ l6L@@EC(Z,HP!攪c1CU,_}', Zm ,IQH$74BSrV<zwUpK]WI1"b(++)4& ҵ բ\%LڽSpIBlc%1 JALQh4*#ⳲS)"ƲL!8x:"Ew1>D)y 5E3*J>X<+VƘRP4=Z ݎ#3 qo_%n밥u:݉A\V菸>2^Rk_LB~(IENDB`mcu8051ide-1.4.7/icons/16x16/kcmmemory_BA.png0000644000175000017500000000156512067167647021061 0ustar milleniummilleniumPNG  IHDRasRGBbKGDRՆ pHYs  tIME $#*IDAT8˥]h[us朤Idڴ]uJ_ FdvyzaQo"C0?Ba0s[eEsB?E%ҜM&+MsI^t^ /HBnd}}Ӵ(71M3t*̤WO,0z#Bp @m۷P$r}G;'N_H 1Aol 0[v;ᖗ"MӂȲ#=͊sǶOgY@GJ5mU  )OKv晛ˑE>~WoPH?>hrvudueJl`}}t^ںx-Tź;Re/*WLOg%[fa~ѳxŕ8p8dc5*_ cEqXvb{շJJ~|{1>M4t!qsۭ￟&7ћ薡1g*.Vu20w9':jz]tu"a[eh ;5Sujpil|)ܓv?;'12BGT*ym.}>^gQ w.H\h$Tֵ6Fã :>~5n`}"cKXc}/'vrR@ݨH&Y]5t_9N_S|{|kMoʲeW ݼ}s#׳/6IIENDB`mcu8051ide-1.4.7/icons/16x16/1leftarrow.png0000644000175000017500000000045012067167647020572 0ustar milleniummilleniumPNG  IHDRsO/bKGD@ pHYs  ~tIME ?AIDAT(ϵ10 E&o]x")8cS͝ζ5q*CX~ &dX18;`ҶPA`g߷/H2&i=73aRQ`^M_!F:'~<ei>'(Vu޶~&oY-IENDB`mcu8051ide-1.4.7/icons/16x16/2uparrow.png0000644000175000017500000000060212067167647020264 0ustar milleniummilleniumPNG  IHDRV%bKGD@ pHYs  ~tIME 9IDAT(œm@E@4Xk,j("a|]0v"X>fxD*mh$}ye ~C ,Etpmkp$(8>Al #|&i4l?BT5vK#/!UZх(^oxWX'?xvI-@t`w`w~~ >G5[q#hmN=s9ta$ bIrH܅9)DQ2uQ9ZI+y.^YUzO]{&zG,ZU3I",Dn$-(9$B4GU5^pm쓓{K-/Ҧ(,0^/1U3XMle} E5Jd(]^'y]C .hmiߌBS$Sě>f:9[Y eb=?G}^ 4XTul6+Vډ>+Y)~&'/}0O(k_N='?dnt<+pm[c0lIENDB`mcu8051ide-1.4.7/icons/16x16/_1leftarrow.png0000644000175000017500000000622012067167647020732 0ustar milleniummilleniumPNG  IHDRa MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3bKGD pHYs  tIME *zIDAT8˥;kTav^9.J iDZ(Z(XIh$E%lc/)ӨDx!d> čf杇yaF8Jނ-@X.'kMw(|HFJ&K .c~AI Z뼌k84N1; jBCtprG}{ZkuL7XPR͟ɆF! Ν۲wN*eFO_ld'ݍ)0Ib;?_z#ۂ H~,>o~ŧ+) Zk5㈬K$D:U;^L}[z<+^0o&%Nf ʏgE_GMfIX ut;. {;Grb"Mn ǡ}ZZu4Pb.?b ^NQ}3q ( M1ZZ$IHӔݦpkS*\8MS&x<]^FU i3̌J166F0>>N^"A"dzQj8'.28'LC?׭}||9D.U3 Kݝ;{z{{CPڪR( af"h4PU @Ux)Xޏœ%spF+E弉pwfoFaOUEUp=d$63regʘdzz:GzrTמ+eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3gAMA|Q cHRMz%u0`:o_FAIDATxڌKq?Nwv[dn-{m2 jU=(j8|N@2IQI:O$)V9Kݓ9_}XSP@Vn?ʃZQIER HzSݱ()]h64*tFin77\z_ 196:5&%g^][[ena?]dn6Ɨ×BfXAs0T~GRQaw{px],/O쿥gm @b9(b'}a$VM>zbǡ㑛终'֒|xjcmMi&>pj ,-yYVRvՇwUiBY p~jna*۽)#OeE`˱GJm @h+S,:=y* B}+ƓVy,jrUSBe׏s$xIENDB`mcu8051ide-1.4.7/icons/16x16/bottom.png0000644000175000017500000000065012067167647020012 0ustar milleniummilleniumPNG  IHDRabKGD@ pHYs  tIME :tEXtCommentCreated with The GIMPd%n IDAT8˵q0 E3),['.@ .)\uݐd$0w9/g4. "qSYHJ$A2 _(sRJa[u]{UU~D}>v@]׾ @qM04*%bI.j[6a #Da9l utƢi n 2V&|i|`_g!?[5ٝ9bKǻ-8w?(KVIENDB`mcu8051ide-1.4.7/icons/16x16/corner.png0000644000175000017500000000020412067167647017771 0ustar milleniummilleniumPNG  IHDR(-SPLTEU~tRNS@f pHYs  ~IDATc`@T3RH>9)6"IENDB`mcu8051ide-1.4.7/icons/16x16/symbol3.png0000644000175000017500000000040712067167647020076 0ustar milleniummilleniumPNG  IHDRa pHYs+IDAT8Y0 C_Gs/zrp2G6fQ!l=+T棂g61w3/_ȽRqkWM¤ x,P$psP!ώ6VDhh< *[}=l aR 2l'+4)mljj F09U7c)OUUd6uK?_8psQ jIENDB`mcu8051ide-1.4.7/icons/16x16/view_top_bottom.png0000644000175000017500000000077612067167647021737 0ustar milleniummilleniumPNG  IHDRabKGD pHYs  tIME"9IDATxڥjTAsg"ufέ+Kmlܹ A:\..z.gшE]]գg\WRNJJl3)nKT4uh[sc|r?twF8mktVF]fNʆՎ=B<{fp6@7fM(q\Av@<r)*lte.#:*5av f%+jܯhv+\jxu _:_~_Ȅ<<%s4Ո0jPa5' 0 m_Y7q a3cŅw s.n6腊2N./$H$墓Iȱ* ;5 pG$M(IENDB`mcu8051ide-1.4.7/icons/16x16/emacs.png0000644000175000017500000000117012067167647017574 0ustar milleniummilleniumPNG  IHDRa pHYs  ~tIME'XHbKGDIDAT8OKq_#bҶõb(f-[Hq)iF$ PaL +ԨnV>oi:xqܽTuyk-/ H#Bk¥"j_E}ڙHP6sLv{ }H|csc 6GQ)7v,H?&ƞmql etup4v,(-Y "ˆv,(qeމ!}S"ˆv, k:nFq-Ufp]3tڱUP'57lnQtthwA%ꂭ̗W1T1>:-lhՕOBphn!q'ƐJm1u[ Y&cI/5pY,?ɫ7 4ЎO;:hc1;X\tv/r+- V=iǂ7^B IENDB`mcu8051ide-1.4.7/icons/16x16/ledyellow2.png0000644000175000017500000000113112067167647020563 0ustar milleniummilleniumPNG  IHDRasRGBbKGD pHYs  tIME! ,IDAT8˥jQɒP(XE*o h|"ҷB"To``Q )BC[{vƋMCJ:p.f~9cTH`չ\eLՄnE1:h:w ;/-9W{ރ$ h:x/gN]`lTA{_s}V8b*o"`OP;H,"f >dTW3ogrscNZ/~ɠ[?- g_3Dm`u4d7xj7 f _`Qs'alL5J}`Ǒ~ ؔ^|+9^IuQU4A xSzقʽ$Eg oڅ=QH lx|$4[7^\-gӖaGrh+;rc/fլIENDB`mcu8051ide-1.4.7/icons/16x16/leddisplay.png0000644000175000017500000000226312067167647020642 0ustar milleniummilleniumPNG  IHDR(-SPLTE3f3333f333ff3fffff3f3f̙3f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙333333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffffff3fffffff3fff̙ffff3fffff3f̙3333f33̙3ff3ffff̙f3f̙3f̙̙3f̙3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3fez|tRNSəjbIDATm ! dRz'N/8Mf! e2ȨӔ.~sT, ueo}IENDB`mcu8051ide-1.4.7/icons/16x16/graph.png0000644000175000017500000000030212067167647017601 0ustar milleniummilleniumPNG  IHDRaIDAT8͒Y0 D>ZN6* %?ی$@خl2~%Ț*Cd(<[$!i;*}P)4֦ZeT;3h<"!"Jlo | .) 0IENDB`mcu8051ide-1.4.7/icons/16x16/matrixkeypad.png0000644000175000017500000000217312067167647021212 0ustar milleniummilleniumPNG  IHDR(-SPLTE3f3333f333ff3fffff3f3f̙3f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙333333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffffff3fffffff3fff̙ffff3fffff3f̙3333f33̙3ff3ffff̙f3f̙3f̙̙3f̙3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3fez|tRNSəj*IDATcn02p" *$$@7LrIENDB`mcu8051ide-1.4.7/icons/16x16/kcmmemory_B.png0000644000175000017500000000155412067167647020756 0ustar milleniummilleniumPNG  IHDRasRGBbKGD pHYs  tIME )K`IDAT8˥[hS$KN$6iͮ]չ9WPUZE2=)MD\&S}6:/똒ef)mM$01~z;N9M&¡ק}S1y9pz} nqfw.icG{s 23䄳NbRTr#3y߉~z<> oعLpV4~l:%H$I&3RYr,a򍍋Ch-)Op0oe I&hZ]׉DdR h&₣ҩ$`E귫$( FGǙ%:9E.N} tFArnҡ "4l6 M(*qkכ9 fd x<(N8AjzZZeA|68z,V3"Nii. )*0V*nw5R :5G]Kv.v-uͮōe&`#7#KV\݊3(eMΆq-9*D*2*f;4tǟϧ;)@xĶ:ⷶuKݷҜS oI:|#o1վU('wJJ;+EG30IENDB`mcu8051ide-1.4.7/icons/16x16/ledgrayorange.png0000644000175000017500000000106212067167647021327 0ustar milleniummilleniumPNG  IHDRasRGBbKGD pHYs  tIMEIIDAT8˥=K#Q;w8FP#pw͂l6ZMJDDb łBrRi6A&AAp̝ca@\ sz'\~XA, '/KXP"tqbyqbQ&d (~[oV!0L<<*ּ3_8 PH/N~B:ff5vr~X\~ dm;ưA1T6(K Xe 9VAL,:&9 XMA *Z5p2(uKmt\ Dmڍ7poN H oHT!-;r^;u B?jk$R`vH;U} a&3;ʴU~3-ķ/ ` IENDB`mcu8051ide-1.4.7/icons/16x16/down.png0000644000175000017500000000062612067167647017460 0ustar milleniummilleniumPNG  IHDRabKGD@ pHYs  tIME tEXtCommentCreated with The GIMPd%nIDAT8˵S9r0 2TT9E~v#J&SGlьfH (ό'y9KL }ߟ% 6 &f 2G0ðf$DBc,Ѽ7RAiaDZiM 0t7ѡRJϾwUه`B4PJ %]vIm;hv}@.C&zpɪHnՇgr/mP Ɵ%IENDB`mcu8051ide-1.4.7/icons/16x16/gear0.png0000644000175000017500000000221612067167647017504 0ustar milleniummilleniumPNG  IHDROc#"bKGD X pHYsHHFk> vpAg\ƭIDATHǥUMH[=I&?h@0hJD҅Iq'R * ]҅P!Nq4RDZcn$J&4Q;w=g3 7:J B^]~M4999epK=6FvݚXV<<`6Ͳ v 8N//3333>:HP(eZUTUUUPE$@EQ>Dbs(H$Bu]H$-v$>wvN'P*J2fggя b27/J@]]] d2"W dY r9\.z <~ FDh4 rP y<ݻ@ tuŢ(ʗ/ڧON2 ,,,,LMqq<=i l60)5r\.B8999'be"]N@4\^+QCA`*pqqqfggg?~$z^&C5555 H$  ˲\.ZZZZ>|`.eV< 1H$ň4MӺ$e QddbU-9-+Z,__$'OD+lI$RT*cVp8T|D.u60<<}(bQNFBhVu Z4Cxet*b1fee9SbLŨ{Ѡv?7DӾ)>,mc: mc1DLΐRbUwԝb0Ur\io}7tK[ɣGOx͗9Y9zkn NbZ{UJ>ŋ]#@J ݏG8ǘzp銘"bĜ (eFIS ڦEtc!@2(MW3hB#:Ei?<{Oo9E`R3XX>KlggZ[mK ߟ7JY2bilQ d'n9R6^7ǂ3(r%όnWɻF7QjjhT1sv>hIQ@6duҒ @A 33 D؋C>1*Dikpl*Sm>! b uv^fj کFҾ2%2@U13#M(}mmnnUf{MJrx̌յwoP o4 bU07RPYHZмj Xaf$IډSs\(*y=fvyT'vpWU !xv>(dQ SCǃg;_>]$P>">\K//uzNsnIENDB`mcu8051ide-1.4.7/icons/16x16/html.png0000644000175000017500000000151712067167647017455 0ustar milleniummilleniumPNG  IHDRa pHYs  gAMA|Q cHRMz%u0`:o_FIDATxb@ QPPOf |\ }exĿ|fx1nja„ 3NL02hɰ0 l ??n?óA@$Ǡ"d 7 XW~1p0q21h+ÝU=7 |`0axӏ ag9cw]`  >g` cb t} 3Ѐ7pm?0FAR / V3f`  `z ?,tm~ : R J@^ u9.cde`gbd`paaafش%';^eA_,A IP |A1LA/?8jn>ó_?:?vVFfV9~`xyb3K @pgd`Aãh0@E  Ӡd\XX @pxla FP +P`7gc $ kIENDB`mcu8051ide-1.4.7/icons/16x16/filesaveas.png0000644000175000017500000000212012067167647020622 0ustar milleniummilleniumPNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb??Ç>~ ?} d2]`l}AIj'x{7.pz/7 @@L3ׯ?7Cwwz gq_.'BHN8?@\PT? _~ ×/߀ e`< w3dY h?bXO?iˎɞG`>=517L4?|7Éw0°Û/_ w0<|+Р?~2|3h@E@ge8~'7 ? @C!;++#?" qil e8^ /×ϯ0(>gPc0Ֆ8', pL~>4ޫ kϞ(   ߿d/ë@W * \ ?0y/^~e ` ?/0 /pS(mp?t> ~ ɯtw7o1q3|F)cp毟.-H`| wb%YP&*tO`f7މh1fd?~A3p9 X| ?U~hO?0q10@1cb/1Y ~P|fW ׏ ʱc``2>vIENDB`mcu8051ide-1.4.7/icons/16x16/player_pause.png0000644000175000017500000000047712067167647021206 0ustar milleniummilleniumPNG  IHDRabKGD@ pHYs  tIME ftEXtCommentCreated with The GIMPd%nIDAT8ő @vI Rm<8@ryOkwd{; 4Ɗw9 cu8k12؎c5">,BvK}=VF)=$_PuM%zuP7Kll ?7fK1eIENDB`mcu8051ide-1.4.7/icons/16x16/key_enter.png0000644000175000017500000000114612067167647020474 0ustar milleniummilleniumPNG  IHDRabKGD pHYs ,1tIME 6\0tEXtCommentCreated with The GIMPd%nIDAT8˅S=oA}AB@i( )ХкB!reSq!q@3;);8vg{og j<Zsz3puwwmP?K%ṁsz9"x|b 3(ل1aj0}GZ) "0<8Xka=%!`880Ll6y^T&ҰTqc8b6z6{TQAʮJc>Z(3>y4rN~nFv]HYj2$"Vz(ۚYCZ&Ä3>%>^^~%̷=1WubIENDB`mcu8051ide-1.4.7/icons/16x16/1downarrow.png0000644000175000017500000000046212067167647020612 0ustar milleniummilleniumPNG  IHDRV%bKGD@ pHYs  ~tIME !IDAT(m0B` .ރ~yd$;w -c-@꽱H|>%sU3B2F ;[ Pv@;.P4?WY_kCm(,$˲y+#I4,ºiL!-s=wfqXR7ܘ=^ IENDB`mcu8051ide-1.4.7/icons/16x16/compfile_this.png0000644000175000017500000000116112067167647021331 0ustar milleniummilleniumPNG  IHDRasRGBbKGD pHYs  d_tIME " AxIDAT8ˍ;hTA33f7K@YQYA|AZaK; k jNFAA[ Kh!)ք5ݻ>9qò"S8W-$IRfNt&ZQڿ0qJu=`7}P1Rh~q^,~rC(%Ym52<~"|Za#pc~Ꝉ.S|SsE2FQ,P((uD]cK^&ga] @ZR ay~̱%uMx""t%w'aMF+1x^1]̜ٔ H w.t$|a$XxYR!0Oe_k\ɭgHS1UHlF gwI<5BۡZ Jjk(/N<~l v&qZ)`zn֮lϝ>h%-ٮ(Uu { dUd[(6 IENDB`mcu8051ide-1.4.7/icons/16x16/fsview.png0000644000175000017500000000110012067167647020000 0ustar milleniummilleniumPNG  IHDRa pHYs KY IDAT8kTA ,,=FHcmiai6bccFA1 vg̝_o,dIs{nSk&pS' y9::RBk^s%CBE$7BJ)dAoTe.d\HX/\*0 9gRJZQJb)Tq!CyO{J Ƙ@{H-$xQH(c D5]]Op>aC9Opqյi3sc躎SDͭ:bTrH/̦_>i}~_-$-Wݿ&'r(čȤ]"[[yXbC?$V N0ku=-|>O:3cDd9yG75Vz+҉IENDB`mcu8051ide-1.4.7/icons/16x16/idea.png0000644000175000017500000000123512067167647017410 0ustar milleniummilleniumPNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe</IDATxb?022 5+;7ˏ~?_<:wnH L b߿^ѓfff`af`,k^ ] T=2 Ҝ6`p@$+CN/'箭gUacg`Vg?L dQa@w#3g0(|g/_;_Qׯ>ݹu 7 psg2|x7u._op11Űe/  ߼r @An0|qG  &d0{?P#:>:xp pBNYr >H]~/6acb"6}-]]=z \ nӱ@~`e`3óg֬Y5m._c`'ûwg @yy]\\333f0@K%IENDB`mcu8051ide-1.4.7/icons/16x16/clear_left_r.png0000644000175000017500000000056012067167647021127 0ustar milleniummilleniumPNG  IHDRasRGBbKGDC pHYs  d_tIME.nIDAT8œ=@ ? G`DH T#n!V4pFJF?o1IT ?!rUUq ,<}@%7MCQxqa!218S^Vڶv[VI$!ݣa`&ʲ88i<*饉"g,G66NMa]T!E{.\x>G9IENDB`mcu8051ide-1.4.7/icons/16x16/matrix2.png0000644000175000017500000000030512067167647020071 0ustar milleniummilleniumPNG  IHDRa pHYs  d_wIDAT8ݒ 0 D Ki.-v$2,R819d"GʘoN{C)Z+W /#ltU.Z'[C_P0VsZrf`zGgK\%Ji}w3T'!IENDB`mcu8051ide-1.4.7/icons/16x16/view_icon.png0000644000175000017500000000114212067167647020465 0ustar milleniummilleniumPNG  IHDRabKGD pHYs  tIME+*a${IDATxڥnA?7NHPIRHR'@BTy*^D4yEBa Qٝ{.N 4;Gs=thmIT #TQN+byOa1`I޿v{cu*"0qSδ#X er^By-vLzz0$0@`=*r;OwA ,*5rRrd%]F>X{GXY z"t *LCR:o7OXyq4O>A#9b"fLH"_,0{ 4|M9pwr_a8bZf7Z]h$nLԿ䍂kfeϿ"Ys9+xUڨOqg1HogmM nIyeŗ(EQr~k0!nϳ3,eE~)&RH㘰lڗT.IENDB`mcu8051ide-1.4.7/icons/16x16/view_remove.png0000644000175000017500000000074412067167647021041 0ustar milleniummilleniumPNG  IHDRabKGD pHYs  tIME"3zqIDATxڥjAtVYE\5WϾOxg7 "梨!3=]U?qf|տ/;8ep{6;yW~޲c?%C~'vM6AKHǴYǛ5 tХjH !o#m]cf"\߶}xWkkh7e΃'[rK`CY 8$`ou5ߟd@ӿ=*tkBfC†抌<[-?= r:S(4S//{"QwNIENDB`mcu8051ide-1.4.7/icons/16x16/1uparrow.png0000644000175000017500000000046112067167647020266 0ustar milleniummilleniumPNG  IHDRV%bKGD@ pHYs  ~tIME w[IDAT(i@Gmtu~"Tۇ̓J Xvcf?7֏$,@⿗e5En͇RK lˠ&¥ :oS2E "ɧ%j^ok}JJe R1",;>鰢6:73c=/xҧ!mgIENDB`mcu8051ide-1.4.7/icons/16x16/exclamation.png0000644000175000017500000000045112067167647021011 0ustar milleniummilleniumPNG  IHDRsO/sRGBbKGD pHYs  tIME3IDAT(ϵ;BA4t FYl ܊"&b0 X&=xn vr^'N ]~~ s1zĽ+Jٯ Zt&6VZ쓞j?8R\J~j*VdVD+6T n&,|IENDB`mcu8051ide-1.4.7/icons/16x16/bookmark_toolbar.png0000644000175000017500000000645112067167647022042 0ustar milleniummilleniumPNG  IHDRsO/ pHYs   9iCCPPhotoshop ICC profilexڝwTTϽwz0R޻{^Ea`(34!ED"HPĀP$VDT$(1ET,oF֋oZ/K<Qt`)LVF_{ͅ!r_zXp3NY|9,8%K.ϊ,f%f(Aˉ9a >,٩<9SbL!GĈ 3,F0+7T3IlpX"61"H _qW,d ėrIKst.ښAdp&+g]RәY2EE44432PuoJEzg`̉j- -b8o׿M]9La.+-%Mȧg3YះuAxEK i<:ŹPcu*@~(  ]o0 ~y*s7g%9%(3H*@C`-pn VH@ A1 jPA3hA'8΃Kn`Lg` a!2D!H҇ dAP B Byf*z: @]h ~L CUp΅ p%;56< ?" GxG iE>&2 oQEGlQP UFFuzQ7QcYG4G۠t]nB/o'Я1 xb"1I>Lf3bX} *QYvGĩp( &q x)&gsF|7:~@&h!$&B%pH$D.q#xx8F|K!\H$!i.%L";r3EHK-AFCbH$^RSIrdd 3Rx)-))zR#RsiSiT#Wd2Z2n2l2d)EBaQ6S))T UEMSPgeedɆfȞ!4--VJ;N g%K-sɵݖ{'OwO%)P_RRۥEK/+))U<د8䡔TtAiF쨜\|FyZbU)W9.Kw+YUEUOUjꂚZZZCu:C=^\G}VCEO#OE&^WOs^K[+\kV֔vv[]n>z^^u}XROm`m3h01$:fь|:kG23hbabhrT4ߴw3=3Y-s.q_vǂbgբ⃥%߲rJ*֪jAe0JOY6rvvtXLǎl&I']$NϝM.6.\ι"En2nnn[g=,=t٪E2}4\j5loDŽǞ~q=''Z^utv&vvEv >mяN9-{ LOgsΝK?7s>xOL n\x }N}g/]>uɫ,u[dS@u]7ot.<30tKn]p;;SwSyoEVU1_0b%A T:be lzZ0R@8 ``cgscrRfK@a5mC#cF  OD- u1A/Я9q3 "/cx>߿ _|d`` @= ƿ '0;Y%A}"@{N2~}Fo#P3Õi>[ha@}C|n+>L?ڼçmw2, J:x?Y"X Çw0l  JJ ~}'DR<?@p^KV>?z7Xw]?H@bBM- Ͷ//kq1r)CU%eCD`V޽=@p Y * bP5 }7`Ö^|>˗`AXHq٪/_bg>rmļIENDB`mcu8051ide-1.4.7/icons/16x16/ledblue.png0000644000175000017500000000133512067167647020123 0ustar milleniummilleniumPNG  IHDRa pHYs  gAMA|Q cHRMz%u0`:o_FSIDATxڤKQM&J$f2Y.J L "h[IQf!ZDIc Ce83~nQ1yGhQ5)$XdsQTnfE޳Mu*-w|[?TU 6gZu:24+m'zmxAǹqziJ}9"erԺC'>uOnnΒ$?JaYw9z8DtvZ* qvr4Db7im0 IU5镋>@R1mƓijJ0%0MT&z #u9D =@\rmig)1%ب[æ #/dLNaP'7*.u-?fRbO1d}GZZ<uM)u8Ð>@r`zji4hvwPUZR^|s F?BxՑHd޶PC{XXJ>:9TYRX<2iGlvPۗ @tE`mQIENDB`mcu8051ide-1.4.7/icons/16x16/exit.png0000644000175000017500000000147612067167647017466 0ustar milleniummilleniumPNG  IHDRasBIT|dtEXtSoftwarewww.inkscape.org<IDAT81lWo[H. v F$!20w #+HV !ni넄qؿX]9:s'cnP*=̥Ry:~{ms<57],-рhQJ)s:zm2dS.s8=1{&Ov:(Ɛi4{" ˌ2i6(Ϟ%ekm Y]%Z=F̙3Lܸə~}2YRt\("XYAE{u>)\/O"/^p:ћĴ*^1u";aXP9֌ul?~LjQvɅ<{F둮T&9ϟgg}ﶷv:H.(}Ztu 2(zqΑAD/_F>GVpΡbkIΝ$h="8΀N&IW*|`<" ~M2ĝ;YYᏥ%rF)R0U6ZњVcKԓ'{HyO6#}pa*!$Ẕ5*n1~IƄ!UG(%(#Gr>-/-- uJA  2F}^]EbL$BjmQf! Z;m></4IENDB`mcu8051ide-1.4.7/icons/16x16/contents.png0000644000175000017500000000212712067167647020344 0ustar milleniummilleniumPNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbe;_ L  VV|İ_o~002 cP95WG]\ϟ 2" &~.& )~m 䳀ˑ嬨c+&Xci +l*&ҕl @1kK112|pW32Y@L?疠/ -$x e@ ""),#k %bdצ㷿 _4dy%DExAWd`raz ׭xAS]D _ b *B "Pf  K=z;߿޼ ?2|AH \ z ~;3|@Le`ӗV}gs=Ý4А <@WAEVAAEǛ_&b~ƛ>ū@@?w?89X$E9dxT% @/VGO>3 r2<}_@W}AA}).+  3#'Ý$>o8, @,j $ OGNM^>v``22|ș /dx× Wog FC tTtěfax o1po[~ܺv?- F&M/`?C~E'3 ~39痟6wL`%JgXؙT4EsEݓm d}L; KK|UjIENDB`mcu8051ide-1.4.7/icons/16x16/unlock.png0000644000175000017500000000163312067167647020003 0ustar milleniummilleniumPNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<-IDATxb?Crr3fcccWVI?Û7_߽xߦ_έe ('9?*M]] 4O+-۷H0}7BƞD7a͛p?~SWU0gOH[:o @L ,>XZ((3[am]O5x֭S@Hӧ& = @`>|2@AEEV͛ _:eee:uֵkݼyANNLO = @`/UNd~^_¥12,'߿1U^  Z?R((L~K?@563 "L'&& 2`JL|b``ebU@afo&f |'I}{Y lW^Mt!E/+|a`x>0@ x t'P=@(hK`ûJl?@o? adhT ?@ R؀ I FmA5A "/$@ ف @?i }/$llwb?Ff(A d8wc Msn'!IENDB`mcu8051ide-1.4.7/icons/16x16/player_playlist.png0000644000175000017500000000050712067167647021724 0ustar milleniummilleniumPNG  IHDRabKGD@ pHYs  tIME  LNtEXtCommentCreated with The GIMPd%nIDAT8ݒ1 PDNTڥ*]js#7ŷH`,,¼]UZrXa`AF ˆ @4Iڵq$)D6"VE"odp]+F}ߗ\4X<2d0D+F]U@8P۽?Ų,o 6`OC?ɋVMvIENDB`mcu8051ide-1.4.7/icons/16x16/filesave.png0000644000175000017500000000150612067167647020305 0ustar milleniummilleniumPNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% X@ĒGqr }? _~g ×/~w Ow0\x @.XO?iˎɞG`>:z̟?oN+{ _a셯_1|:?>6V~c߿b7?116 s QTŘ!߽RĘ=*rǎ5C!Z @C!;++#3#';!^.W@O?  @; 4Xr`G(a= .]@@^ tf`|i ' Y_?>'v?A O80‚ hׯ ?;Û7؁3 LL@W`@~@Ac0?Pd 4ϟpb/^axSEׯO@ Z`F_??#Çׯ} @_7778l (Iׯ3 `2  IENDB`mcu8051ide-1.4.7/icons/16x16/queue.png0000644000175000017500000000145012067167647017631 0ustar milleniummilleniumPNG  IHDRaIDATxڵKhQNMj1>ZXDԅu >6 EąJEw\(Pt% hiŅn*J՚I2Md^w\Eqgqp( `?=a r;qQ\7nYNiZ80$W Cu0퍗ԜwlH%U(r%' 9sv7ShܾVu%@U4TU,ðJꖪv4ٱ6lk^Y0= HRkbsŢI!ݒN[$Dž%{ch (,(T=`WkfNanA)E, KT_iZHi<.beY̗*,l{w$J rYѣ7˳^D@7텿uO[M Mq%0F TszfvܯLv[Բ9ְ^-r e9s0DŽ?rT*3˗jkGgrGdv"i ˲վWjqNqzo<KԱi͓IENDB`mcu8051ide-1.4.7/icons/16x16/grid1.png0000644000175000017500000000017612067167647017517 0ustar milleniummilleniumPNG  IHDRaEIDAT8퓱 @L) p&#QbhJ*mFnJTfRe~8hK-g,IENDB`mcu8051ide-1.4.7/icons/16x16/status_unknown.png0000644000175000017500000000107312067167647021610 0ustar milleniummilleniumPNG  IHDRa pHYs  ~gAMA|Q cHRMz%u0`:o_FIDATxb?% qI fRP .@ÕOAbCk'00 j1l  \b .g`APA$ 4+|Vpq6'03"j!2 BR  5 9TqЂ?c?cw0/9@ =ุep30 (@1! U>0p  r8=A@N/ 7=v!B \j8 @.- Ý@| ~π"' PpȀM?H hǷY%]}D.3&(?@ QOffl FJ3@SͶAuIENDB`mcu8051ide-1.4.7/icons/16x16/launch_this.png0000644000175000017500000000147012067167647021010 0ustar milleniummilleniumPNG  IHDRasRGBbKGD pHYs  tIME ")zzIDAT8˕[Hq?E -sE7gQA.RYi%%ePDa/"DكB])hF{[e4܅_M꼜ÁP3> W+E/"_ИTU6a#΁m[].ݯ`'_kJ=@{vөӥ F?CzO8E@~1u &>%^`h~9ݎSº 1c R+wɹL6 u؇]3a%d-/PirKaYH iAz)Mz͗gLoa)[?ZF]'b%i8enǪwٱ2e.ߜg61QV/86}| TӲ_ɽw[]LN z3q ʆjU׍ @dUM.i! ] {R'S@xDܬk8eׂ .Ժ% ][WBVe\'bV<*}5-_cDkzk6*̑[Hǖ%%ByL:$m4jjAhDAЃ+Pc{ )WqEMG9:ĝ換tDIENDB`mcu8051ide-1.4.7/icons/16x16/ledgreen2.png0000644000175000017500000000126212067167647020355 0ustar milleniummilleniumPNG  IHDRasRGBbKGD pHYs  tIME&m2IDAT8˥KTQs|(5 CAI6B!hD$(D[­ 7-#ELu:ipx]={~y֚,- i tEXhVZayB G=h$@ņfr!D UP hso6r֚\$9~x+_4҈BF}aÆwosR!KuQZUBiR>EKEn,d@w ̣+qPzeO$ qLx(bJ5"4'UDUv8!1 ,b&j $!1xaFRAg.2::hL`a8q^ m xׄQvP6 L s*ٟhTh޺Mc$+=n Zȋ!ו*]\Aji{,h`䠅-i٩ yogR IENDB`mcu8051ide-1.4.7/icons/16x16/configure_toolbars.png0000644000175000017500000000221012067167647022366 0ustar milleniummilleniumPNG  IHDRVΎW pHYs  d_gAMA|Q cHRMz%u0`:o_FIDATxb?5@ @AvvJϞȈoSS-++=F@1A1AIIP-o>|a'/_  &(h_^Ig\;g?O666))1A6HFF0<~Пyw1|6Pg8 tVVZ޶Z_RQG?`23~˷➜{u>\3J`kpsq`8p0 'ï_' o>ep,,{33I: I $ʀQ7''=//U/$ Ld^Mb}Ah7NVGf.Ǥ2|@,0?2221lOqcd.o7)i}e(e,s]0 $@Ly8ٿKr}b|Ûrfd`f```cefάo02@ِ'vepp Ko& n ?|d`۲Qy~#P B1 o߽g`x=(q~ 7o߁ /8](ç ט@.`bF0302\y|  P\aˎo/^baeK~ ,$ȸlZ0/g FjlHRIENDB`mcu8051ide-1.4.7/icons/16x16/view_left_right.png0000644000175000017500000000101212067167647021660 0ustar milleniummilleniumPNG  IHDRabKGD pHYs  tIME#"c&AIDATxڥnAw>;F(Q"d)S T<MB7nvX&f髯OfGS%kIY#1 )qSN]M#i֢uᔅ.bx)rSu2,'Sh&z\@U@)ц墺x _$3/5dz#f)ADJMXr.ߔT'wxx>];fY}WP"qHl;[ }1? H #JAlRnhRQ=[_:-] -$+| =}U97ÒssyWs\B.\'\u^y>)$R]Ⱦ%믲oߧs-IENDB`mcu8051ide-1.4.7/icons/16x16/ledpurple2.png0000644000175000017500000000130412067167647020561 0ustar milleniummilleniumPNG  IHDRasRGBbKGD pHYs  tIMEhDIDAT8˥SMHTQιof=*cԶ'[vjBAˠEa-g!- \=(A[EAD.jSN̛y޽syn.X0}3z. eCT >WOE[UD`ZH[m7<4RYZI}t-IDpn<#s%aX- &Y聮_oP'}5q%""1;h+ieK^  "K1 c#ȗAj.E 7p}cw7%Sy({&H `Zp:L/n_#Yx(@ 7- }X5DQ;6ݵ& 4Rj ,!@+z 0 k `S_idy{ Y2<6waUM|ҳ͸0kw`%mƺk%mX{Ffź RTO-Z8Z7RKb6ptFn9]X>[~qv2wg88|'u `yYINIENDB`mcu8051ide-1.4.7/icons/16x16/filefind.png0000644000175000017500000000142612067167647020270 0ustar milleniummilleniumPNG  IHDRabKGD pHYs  tIME  kE]IDATxڅKQǿ8OQa"(PPIn-]ZEA@"hm2mEhdd#Qf{~3c|9cE& NyM~*<2ͻ% pPEdfvaXW,ys)SGMO JA-5% M7 n2MxB `:օX]hP P5!S"OVP˱}>0F0J)c) ĢQ4'GC|!'}suJq9x*NNABAyЎV8<4MsL&an;gH'_;iH4%oHȮ"6FflKo7@&5'08W p0H3~ez|\XK˃w+ePAPV^E$ڃVж,XWf}Zԏu4vK-e!B@h 8[Mێ(Zd_BőQWogvw90bH::TIENDB`mcu8051ide-1.4.7/icons/16x16/ds1620.png0000644000175000017500000000020612067167647017422 0ustar milleniummilleniumPNG  IHDRa pHYs  8IDAT8c`0bOd\a"`Y0XԈ͐Q/aQrȓP#IENDB`mcu8051ide-1.4.7/icons/16x16/__blockdevice.png0000644000175000017500000000142112067167647021253 0ustar milleniummilleniumPNG  IHDRaIDAT8keƟd'MlMk xMEE(^( Ex7A!65Qlv&;3;~h?ns<<FDxO |<%*px^A=Z߳'XT ~;OL`p2T@%ILNJڡt*$I:OW=gAp2wۏL2a OҤjlŷ4U/ts`5f҈Ͻ'Ө޽OSkg_,VˍL5w%M+}4ݨ--c_,9*眿|ݺf wWޥ&f޲nԝv0X>KƖ:]xݦ!nr;Mɷ ߒ?~߳IHY|ԪwJ'}gc ȭ\+d6N\LlQ)+xcX](a,hRHF mxƀufE'O޿W9O%6P2Jj|F,вg0^U#jn(` BiHy ZLj E[nn1s%f`ƘAIENDB`mcu8051ide-1.4.7/icons/16x16/kcmmemory_C.png0000644000175000017500000000155012067167647020753 0ustar milleniummilleniumPNG  IHDRasRGBbKGD pHYs  tIME ;`c(IDAT8˥[lSu眮lh)UGxY*E.@B(Qc 10+u:bBcdhdή[/&&}_> X@B@YY韦Ç}U}FT %`+}q_ r.ɬ8;o8-!Aybqaua0MSܘM~ѻ]EA!``i^&9:l~lKgjdfe*2duwK4|R"M+ں%`u)" J.X|V`?#'^/[ Gfqof:C6#K 2"(VJU`B$E4A%'K@b(ׇ]ӳfdw?u5(k] er|Z-  d_N{ZN#2Њ͓Ά#Љl6 =ׯioOv3mmʲz\k#+[9xg CpN~ IENDB`mcu8051ide-1.4.7/icons/16x16/kservices.png0000644000175000017500000000663112067167647020511 0ustar milleniummilleniumPNG  IHDRa pHYs   MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3gAMA|Q cHRMz%u0`:o_FIDATxēKqƟnnnsNLL-Y,1SK hxh ^D хVD'20ѨMdj yzw|߷ c ]z<&@B _7 m[k-%~RzdexŰՎ~C MP\~H4{Le$Dꃩz2ǐY) C%h/ 7(**sײ3Nh*r릙YUsG{;K.eW!:$ ( pP>&M#JmM{e,C#K(h2N"C%CӝTHpp1ܴ.?({@D"^Kyg6YFz$畤3ag&VTjjxYlt8$C]c˻:IENDB`mcu8051ide-1.4.7/icons/16x16/view_detailed.png0000644000175000017500000000112512067167647021311 0ustar milleniummilleniumPNG  IHDRabKGD pHYs  tIME%6NUIDATxڥNTA;ܹL$D&%a׾#qʅ>+$31 B?}~\e@֦:}9ٳ7?V6\(mPEp\m6ڝa N];MmԥSUF]9Uf2ia=r=@W Meuy z(`&{΋m0QP:ʬh#:*ۏ=>a)2zpG8-`WOFa<_8=E0}&M{w'B1X=T5?nubk{'3 ޜ~x<kݫM;| ӣ0ncfL&'nn>Aqga `cϫLQ ASC$$sTQ1T MY s1O?2_O.V HS 1^E;2iPcIENDB`mcu8051ide-1.4.7/icons/16x16/hd44780.png0000644000175000017500000000222412067167647017507 0ustar milleniummilleniumPNG  IHDR(-SPLTE3f3333f333ff3fffff3f3f̙3f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙333333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffffff3fffffff3fff̙ffff3fffff3f̙3333f33̙3ff3ffff̙f3f̙3f̙̙3f̙3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3fez|tRNSəj pHYs D.IDATcXSUW2[nPd6IENDB`mcu8051ide-1.4.7/icons/16x16/kcmmemory.png0000644000175000017500000000164312067167647020514 0ustar milleniummilleniumPNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<5IDATxb?% X/^ 3@{UΛ<՛@, ?hqpE)+ˇhh 2h+ DNon:{ܿ8  f&66Fzz" \l ’jҒ2~by=  87F!I 6vcçO|l Fv_?{tO7|_R>#Go ?exû78x$ 9x<z_=@13ʺž{pq~I%!^x `dÿ |B¼?~_`A +&' 8DZ!v] 7w10K2:3<~Txxtud%|A̡  22)""!&]AWN!0.(Ӱ@RO"3H  Af<+ֶ%4ơ=r6;*ɫ$tt?ן[}kׯZ@A@heGݿ F?Kgbb2Jq`S@H#ׁD!! !&bռ= 5IENDB`mcu8051ide-1.4.7/icons/16x16/source_h.png0000644000175000017500000000116412067167647020316 0ustar milleniummilleniumPNG  IHDRa pHYs  gAMA|Q cHRMz%u0`:o_FIDATxb@ QPPtG'~'?2 @ c`jk &0 $Ae_~O_ ~?f]@p8T1mb  6}ɓ'  ex9ï_$%%!6~'0 v PÏ?~ f bLLL a'XH#H Y3 E/^`x%2n8  fd600: !( rprr6$Ҍl@Y߾}c>ye A1  @NUPP`kRRRd 2\p֭[(@p@eccb#,,4(r rB\, d ,,,xs(E"i@,0Abf0uCsIENDB`mcu8051ide-1.4.7/icons/16x16/ledgray.png0000644000175000017500000000113412067167647020133 0ustar milleniummilleniumPNG  IHDRasRGBbKGD pHYs  tIME#.=TIDAT8˥?SA! -MX(͖+2AO`,Dm,$ a )$)#h#[ $ơXL4jN39pν9UJ|jAw'xι/qpιf8$I( MSfمRy_"4{fooh4xKjb<3NπGQz2Zv:RJ,ۂzNRy\>}i\&s;9J 1|^4oBk|>C׀E BZk,C)EEH)0Ɛ)Zk(^8C)RjgB6wGZyoXkm*xgyĝx[uϭRqLE;1ib}uxI_,ZFTښf2\.πk0 O$9"˲-~L~1]~D dDIENDB`mcu8051ide-1.4.7/icons/16x16/symbol.png0000644000175000017500000000062612067167647020016 0ustar milleniummilleniumPNG  IHDRasRGBbKGD pHYs  #utIME7%IDAT8˭JCAE "`b "Xhe~~RRT)CAP`Xi ykI0&\eJ#tSh`8M@O{N2Cn͸vHio LC;d7R_غD4bn5~$hzLظpŷ)P } hRT~+%/+C Qx3ga'ۀ +fP*Gx4q!jpn 4 u\?m{IENDB`mcu8051ide-1.4.7/icons/16x16/add.png0000644000175000017500000000122212067167647017232 0ustar milleniummilleniumPNG  IHDRabKGD pHYsHHFk> vpAg\ƭIDAT8ˍKTQtb Pk]B+7m"B#k"-MiF>D6I86ν1}p<|ѹQZ\⃃ހuթɡӉ&쪑lXgi#&?jYo\rVʗ q[HXi+04PrLL\9[>_I\ԥ$>! Q$%!҈zٛRPyECE<͠%>{zVg"//hHv_׳6mZ |\ey=."(3@sn>[_z{;Cm/Ċ(rھ0f>HwXBNXS+ P {+[ҝ[]q{%, wH Z2?t#8wQ =ݟ cloi__vpEQ"zTXtSoftwarex+//.NN,H/J6XS\IENDB`mcu8051ide-1.4.7/icons/16x16/sub.png0000644000175000017500000000051012067167647017272 0ustar milleniummilleniumPNG  IHDRaIDAT8풽JQ,7  Sx>";'nOb>Mɫ)j}6br6P D'0eO `Zk6TQ/E'E`$6рu@RA (_K5IENDB`mcu8051ide-1.4.7/icons/16x16/bh.png0000644000175000017500000000051512067167647017077 0ustar milleniummilleniumPNG  IHDRasRGBbKGD pHYs  tIME YxtIDAT8=JA߫ GH7ē\KE^_|Zop{kKp;\^h ى :0!,cq F¼O3 eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3gAMA|Q cHRMz%u0`:o_FIDATxԓ?hSQ&4U4͠ݤ!(ࢎ 8ur PX"JIJ˟wCk!PY#1F]lq%Rn m~T<@&`HZ#;7)>0r:6Rt!NԶ_')Z^1NdF-L Pa2ssfRIj^fuCFRɳN~1SC c>7FX,~+/wʛsX=< y`?|4[8u+K^Rn|G$A0s0XmDkjR B^Of&xR. D0Ek7rw܁ dZ3R7KT`.l_9 A_\l1y".@ktkII E:-ua 7o8~w|7T+%jIENDB`mcu8051ide-1.4.7/icons/16x16/clear_left.png0000644000175000017500000000060412067167647020605 0ustar milleniummilleniumPNG  IHDRagAMA abKGD oFFs1 pHYs  d_tIME- TCsIDATx1n0E  !ؽri(L"7{I"1Q/YbF|ȿĚ^<4mdY9u]p1mqα+9ڶ0 ZjuzTޯ i&>e*`&Ze1ޣ_{TU#ס7 !|Boi9g)ӃQTUb$0&9S4^""o/8k]IENDB`mcu8051ide-1.4.7/icons/16x16/ok.png0000644000175000017500000000122512067167647017116 0ustar milleniummilleniumPNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<'IDATxb?% (8Qc@7 @2@ĬHl(A!A X2lj okȧdP}گ? ?YB/oV qj $dIH6]'P"@10" H3]"rTW__WہÀꞀOS ; B׀&03$0Z11|88> F1  F " @aC/Gpr000r10 0`^1a8ph:P"A %^`` S @@14%$@ xjPM3 g 0f6Or n5]ex4ؿU |i X?=L ^5S(\ `N~` /, {b,HIflb47Ź QU!6IENDB`mcu8051ide-1.4.7/icons/16x16/oval.png0000644000175000017500000000022512067167647017445 0ustar milleniummilleniumPNG  IHDR(-SPLTEU~tRNS@f pHYs  ~(IDATc` 02A"3`,dh|`åX +IENDB`mcu8051ide-1.4.7/icons/16x16/2downarrow.png0000644000175000017500000000062712067167647020616 0ustar milleniummilleniumPNG  IHDRV%bKGD@ pHYs  ~tIME &K,$IDAT(͒;n0Dځk r NjD3if GR#E,@\po !\ڴm%$P$H% trYn^f 19RP4i嗯WO&/3_TLDs>;xII$BhH5ZWbvN }R(y!\[FUU>kҮG/>t)!3c]{jib'Pq"hu3x283 ]߹=>j"(&S`֯j ;,Aa0>=qtWh؁*IENDB`mcu8051ide-1.4.7/icons/16x16/ledblue2.png0000644000175000017500000000130612067167647020203 0ustar milleniummilleniumPNG  IHDRasRGBbKGD pHYs  tIME3FIDAT8˥AHTQ{}31M̚t1 ED 2B@j}.+!DMh뢭HQP!7xgwO urQ"YP/ƎODM>=VOٌ7RW߽>85f5?Sf`6h$=&2  {-]uY5cDJX1"kFץwYE1!"裗-k]8ZS4e BT(2Ku1,P;%"<ƒJ%h)mjh|0m}Â>Iw׹Y|_ (!&0AD9+[a?t{WqxZs)iBS8?K!vUKuq"+ފ3+@ɂ5u9 a@RWr`X ۈ%Q`fFXtZ 5XVM`l[fUs)Hɥ=xM.q~TUl<(\bnnf7NRv{RKc-ʳo,"äGG9S )3ϭS o>'wA)o D0ij_1e`xlIENDB`mcu8051ide-1.4.7/icons/16x16/next.png0000644000175000017500000000157712067167647017475 0ustar milleniummilleniumPNG  IHDRagAMA a pHYs B(x!IDAT8]_h[eݛ{onfkg*+v8ل0&Ô| A):An!hHmemIͽ7>tz<m]S=~\wFc>ba$Y.6%p#F~} 5,_'+j3, pOѷoWGQs} Mpq*ǫo^80P{ѣF r:5f Kdk;Ww\=MAdAWֈA{:bͧPi4@n279pN:gyMlRd5Mip('ɥwY-Cv,C+Ua2Ydn4DJJV5f+|ťP0@] hjbaxP(I %x;n|N~8/^ߤfh t'yfyEFАl *LfR7sW! v@q|_3G7/竫eBPMqV. %$ҴFt–"wN}۹*!K6$aKqR(!N/ {Gdpgg nO`K(XRzp0٣g>xmǮVS"dH!X/ȮVH_T}x'v!7^Gω` J}q |{DTIENDB`mcu8051ide-1.4.7/icons/16x16/configure.png0000644000175000017500000000203712067167647020470 0ustar milleniummilleniumPNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbY --_턦}ųg&~}222LMǏ_ ~adQ 7WW[E`xAggLuu50{υ̻_Z͛XYky{j~NKEE@bfx=×o=93}gx |54DD}``exÇ/ w$O1r 1& A((9: I 14˗/@ ?999yy4~BHL0AD$D}dexm_L/@ʲ[?}ؿ/ܦQ _ L?Xra@1kk[ǿ^`GC_>*gkƗ€g`diʑ3 l322  ¿ r7NQL[}0G_f`} ȸ ^`6i9[03gx#KDpzZh-N{/ 0{~ax`a&IENDB`mcu8051ide-1.4.7/icons/16x16/ledgraygreen.png0000644000175000017500000000131212067167647021152 0ustar milleniummilleniumPNG  IHDRasRGBbKGD pHYs  tIME.xJIDAT8˥OKQ㌖h IXNE-A*hmV̂O!᪭ 'qWQbdVΏs\a$D4PIqOFY20 {뤭C%݉gC磑IuK؛:6p5|FۣwofR/s-pUx,z=X 01#M~$͑1*Rlm# 玶ڞZS,0Z$M(y0'wRU8Re5]k(( $Rq8RFE{msl+jv\!C##jm l?;[HԋVc@J1 a1qm5ژ&O߂@#Hc#tŽ?w !ZS(-L7ϛ+WlXcPGTp)%Kˋ+ϛ;ԥJn] [cqT!@[OBAu GU[O#C.vrYV'MA$ߗ--Z5Ȱ7{.'XZpmIENDB`mcu8051ide-1.4.7/icons/16x16/goto.png0000644000175000017500000000064012067167647017455 0ustar milleniummilleniumPNG  IHDRabKGD pHYs ,tIME&#\-IDAT8ˍ=΂@!JD,4k3po8GoX٘ $L2fws4# B8!V} QJY),fcZA vd l6]ӯt2i(~w(v;zm+5IkcǷv[^!P)G*<˺lTJeCbfq<ϲh,3zRT7s{<jih)g@΁寡_+^p`<~?\،IENDB`mcu8051ide-1.4.7/icons/16x16/gear.png0000644000175000017500000000175312067167647017431 0ustar milleniummilleniumPNG  IHDRabKGD pHYs  tIME  /b*xIDATx][lSs휮tRbqa# ̨ Q>F%Fc"8^n ]n,m]K6[9gk{V_1׋0ص/5NDm9}sU ׮]8RU'.W dM$*AU$uƧoNGCoko{vHjh($Isi &`ޞx||C6(Y`$5uUF$ _ pM$@ ݡr>~P.WرE"1|~ gOE('zA྾z#,j,M۷3H$*#ߞ*ѱEd niy@`z45=Sd'pm[!(<Dh$kNm<0uLM!m/+{ M0Ld2VWM\], ǩTa&l81ُ~ݷkŠZD&SDݵ;w>Hrف]βn5>3 AT ,t]Fdcn.cf-0@77"e)<:iHy 8Nqj`YߘfgdO+G}> $ǣF4]0,k`cTUEkKXffFEkǎg)y4M"]F*G:(ci!< vf }^H9d,S02qWl{c pklӧ_rLfJ[WVrT((=i# xZNvvu4J*ÇԿ5z[0.QLIENDB`mcu8051ide-1.4.7/icons/16x16/player_time.png0000644000175000017500000000203112067167647021013 0ustar milleniummilleniumPNG  IHDRa pHYs  gAMA|Q cHRMz%u0`:o_FIDATxbd@*o*?}ߟ?^M 9{;8ß=p#_ן|O⻋`zԒW6&~6FV0ccc\@ }}P@LE) 6Ro~2|zEk@'@1XߞnYj" ʲ@00pꙇ r@g30:|*r''5O ī} "BtTp;eN =SqS { VE g&FIENDB`mcu8051ide-1.4.7/icons/16x16/terminal.png0000644000175000017500000000123212067167647020316 0ustar milleniummilleniumPNG  IHDRagAMA7QIDATxkQ۽gvrH@,$tBeE+2%E"l4 H-^rIs bHa03 “7]}1nbh9<<<_]]}777---6sehZ"bEvONNrv~Wl0jEQpzzZkbAٹ9>z=5^kc$9F)E~۷y)^}׶#"\^^h)[wcd}}o_2Q"7PJcl(e5F)E}T!Gz=f0eYC(pU1)G?ewB9GQ8FDP<9G!I!M&'')c UUf#"Yᜣnc%ID#9FFVju]B@)1$ILrBhڤiUU5BTUEYe333sjsppcqqqncc`nopq|| vpAg\ƭnIDAT8ՒQ @B_KʣdFMQD8"lm$;ҠXf:=2F*t^5UYLL7h )y+\i{d{W_93ԛ%tEXtcreate-date2010-10-02T07:00:14+02:00q%tEXtmodify-date2010-10-02T07:00:14+02:00KEIENDB`mcu8051ide-1.4.7/icons/16x16/source_cpp.png0000644000175000017500000000115612067167647020652 0ustar milleniummilleniumPNG  IHDRa pHYs  gAMA|Q cHRMz%u0`:o_FIDATxb@ QPP}6ϟ o00\9@#ç 0Bu&L@,p~b`222?H Pm0_0 @`ȥ`[ AlF&  00|c`c GVVVnnn?~0|D? |!X×/_@,A@ X,X! cff{/K ͌pnH!H/`Lpo+&&@` .IR(**  ...7 0]r"4} V @p`2"Ν;1 0 BfiP2.,, , JI% XC5Ý@,0Abf0X߈5IENDB`mcu8051ide-1.4.7/icons/16x16/launch.png0000644000175000017500000000147412067167647017765 0ustar milleniummilleniumPNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb` c`hxg<$ֿ͗Nwn h@8|ᲄ  s"JG?ݽ'[eC} Ⴕ @Jgf`W9;+8ݗ fq%3049Z101p r1p8 3|?vA ?>3L4BR\Su9$ t_d`+ οfx^s1@ }"e 3~g````ϣ W6df`WaX/A .g`(ñL/(?=k>031(1Qd8Hgdo8 j Ò4Xt=>1d`I \:3LZAC7ǯ `bb LA@טOFn1< Ë @`tK=9tE@/K.@?=^b:` ß jL /w1Z omx!C27ç ?ޱ0pͭNkԀA X~aȿꅏ>p0&gxi~/" G>IENDB`mcu8051ide-1.4.7/icons/16x16/vcs_commit.png0000644000175000017500000000161412067167647020652 0ustar milleniummilleniumPNG  IHDRasBIT|dtEXtSoftwarewww.inkscape.org<IDATx_h[U瞓{n,͚ج)+N b[E}"(> 'AD|*(Mo"eOnaM*ӵd]ǘMnVE|OJd2 8N.N5뻻ՃT*r||tTz}Z}\E)8ct:lnggg?RCCC&''X\\q]c RJָ֚t:-YC!qH)QJZ& C21ƌ)b̰AVM(0`!"rZ-bX\5ͺyG}'JQBP(</y]6Z(jD"^YY|9CR|իW. !&&&)uG>xֱ$m@{ ؝N^3֪ϬM,XnG$N>w0Q)spz'/!헟mÅ4*pm4IENDB`mcu8051ide-1.4.7/icons/16x16/symbol0.png0000644000175000017500000000047012067167647020073 0ustar milleniummilleniumPNG  IHDRa pHYs+IDAT8 0D"EJ`0@ a)3# (RRRP0Oac0,;}C.TG^}Y35w@ ]:rVm5d#n&Ggh޽rOt>Z)TR`BYN˹B_Qum}EN^!a2fer^tuLd?Bc옑#z2xE.U c$y1`;L­9eIENDB`mcu8051ide-1.4.7/icons/16x16/undo.png0000644000175000017500000000111112067167647017444 0ustar milleniummilleniumPNG  IHDRabKGD pHYs  ~tIME 97IDATx͒=kawNfYA]"a;FX(M ;!,I#kio!XDMuw2߳JOuܧ8Kҁ<DOVz}Yii_.ճ%˻~@Btxg!?S2㰿bGh7쌚c*p~ Hz~H=I~W˂tF2SUAp;';/-/8VAI +-pam> GDEW|/{VÐc(^ku VX,{>DhGrV Y#}k40,BXwS c$B @ЏO Zu{EuE_wOKĝHL,I˳Ŝ4M'E!͠kQRB<&18I8yN'h 1Hg3a,ZeT$i2#XGc G.h I֔?K18/#I;|U}2ќJ/ۛBǷ|Y?zM}7ikSA̡uw/iM~?3co&])%қОq'a1@GqHQ#H[Z]ӭ÷$0-ɍK 2CzdH.TјVO1Hq5* $D?ŵ IENDB`mcu8051ide-1.4.7/icons/16x16/help.png0000644000175000017500000000135212067167647017436 0ustar milleniummilleniumPNG  IHDRabKGD pHYs  #utIME 1q,(wIDATxuKawgFS#aFC:P@iUܹp^Z¶pmY,#$hS"[:::;-tF*=p6眗8ú$$BTJ܈JV y*} ]XS]lH4cjTRmPw ]\16˿ [|]uлRXe#L_GpDXZfAENxc 0Yc_N=M$d -8~G`;@Q#WP0*pa2, ڤw vE#0t Iȱl @h]20Q]E_Bрg9h39tCKajݽ-ucQ%\Cj| B&8FHeD!F#_EpHʚQC Kmk̲CbQx6G$Ɲ c[{s*^S9. Wnu8?&~lډaڧ%TҼe)Mbmܛp;iCwB.~+b<|ǂӂfvKL-YHC. !e1]̕2ekbڸs;*IENDB`mcu8051ide-1.4.7/icons/16x16/editpaste.png0000644000175000017500000000172312067167647020472 0ustar milleniummilleniumPNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<eIDATxb|քO'&ƿ o0L~,ŗl3oݡ qzO@1I؍6FMW$Mɰz^/Cr.n;^n;_  6~7&(n v|drA53pr30(>f` ?30  w@3&ρ/^KO1MC^ 00W/d*ùwF m0HP ~i 67k+^l@L @~_20a`xu/ 2 ffVbxf w>;7Эľ@Cؙο_ɰ//\  @W 0?`Y@ J,YY?e`X o/2C@LL`~20|ջ~ @@g@db A+~J dd r@A h_?@뀱 / ֟AB F_DAn` 4}@+#w`@,W*AB 趿 . _@CJ>=*F#@1B<ʠ Ē 7=e3ïoL 耕/ɾ6bJyhJ`i^bAA"o %'@=DIENDB`mcu8051ide-1.4.7/icons/16x16/bottom1.png0000644000175000017500000000107412067167647020074 0ustar milleniummilleniumPNG  IHDRabKGD pHYs  tIME-`IDATxSK[a=D41XE,UձANEt*TH^B^b|% !)}ι?L`&=" L8?LBa@EhB%1hH{QDܲ037 >u]5;{@u <_~~|UF:A*Tt]Nm^VAp=#NxW vF.y:UVpy5xjeHٝn5}ΰ^k %oɧxXzHrDBDԂ7!cw6D!f8 y6!f ,!^Џ@zPJX-zO`}lq50?$Y`xYI- F2)f֪uɼ>H"3W'ogP٣|IENDB`mcu8051ide-1.4.7/icons/16x16/diode.png0000644000175000017500000000033612067167647017573 0ustar milleniummilleniumPNG  IHDRa pHYs  IDAT8 1DOטlJeh3Cx?un1)03뚤IBN i`1&lxB%${$d@MX-IJ+]I,CJA-^*[8U}Izb`DIENDB`mcu8051ide-1.4.7/icons/16x16/bug.png0000644000175000017500000000212312067167647017260 0ustar milleniummilleniumPNG  IHDRa pHYs  gAMA|Q cHRMz%u0`:o_FIDATxb?:aTA芫i1032\~it"V:3r . a `TAYd5@=l@@`f\({O1a#뷕WCC@ /,s`4aF1R~OP?DY2QbPa;K}àa ڂ| 0|eVԡA=^aGn.s+NMyQnu>~!a!A?<( ;>=. Te:%?  AT!; A "3FdabX&>GI+3 z]Lpbx)'x^g``_ 4݀ &5m;^=&o>GA/?/ O\dL(ذK3L@ `.<#mw,L]l?"sK23XGQ:TE sA!OEm Lڌ,?%e,OeaYo~qg>&U> oڏ;3?} S?9MX$xD ~2 efeed}k8AD٘FV? 00|'O&,A'1B[c rǯw\?x+Tp ȗ>fɍNdJ2BIENDB`mcu8051ide-1.4.7/icons/16x16/vcs_update.png0000644000175000017500000000154512067167647020647 0ustar milleniummilleniumPNG  IHDRasBIT|dtEXtSoftwarewww.inkscape.org<IDATxk#eƟww&یulz".қ"ҫ<VSR*!jieqnenZ-h4>j/+x f!c0 RJq}{u-..6NNN!Rp!BpcϘRE˲@)G`(1\.98N(RJyqΥi@`0@$F1H)!DL&pA4}߳,!lۆy )Wp'|N# Mhi|ae4M BF9\rl<85O;*4Bcjp(J)wŭN˧F@E8_9o0(}K)!@l6C8,84 Ahup]sssi|[qTw@ŵ cNA^G$?{(P/;5L ƓXiZ&R/TUb6V.Xv'z86@W} VGqǷߠ{{{aL~w]sG0{Dz߶bp5u!8#8NiuuR\n !vn?\Wkg(|u 7>oFU1_0b%A T:be lzZ0R@8 ``cgscrRfK@a5mC#cF  OD- u1A/Я9q3 "/cx>߿ _|d`` @= ƿ '0;Y%A}"@{N2~}Fo#P3Õi>[ha@}C|n+>L?ڼçmw2, J:x?Y"X Çw0l  JJ ~}'DR<?@(zȞ 1#ïMP f0=bO_93 oB :L @5pO4\`hՋv_  x NdP>05 :+Pρ'^& óg   .԰A !nH Hiii...@ @ ;þ}0l333 A^p?2lذ!"" X`6sH敧O?r#P3LC5 yyyUBY3U J[IENDB`mcu8051ide-1.4.7/icons/16x16/_1downarrow.png0000644000175000017500000000627612067167647020762 0ustar milleniummilleniumPNG  IHDRa pHYs   MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3gAMA|Q cHRMz%u0`:o_FIDATxԓ?hSQƿ{k&Ʀb (&t,Rp?:8AWQI\8)VEiyw߿{iq ~wR ::l8ѽCKo)_N@ԁ):< ؕvѲ*!2< Yc֮$w^ԇPא)PEFd-x~-6䜞M2P&>W//x7Н[V\Nxneߵt;Jvߠ7ȧwɲ8>ӳ9Ti7pw<>9o7Q\q GGE<\WWkA G6|&rr_c_4K֞wiVmt0J e*2iᾆ"5ʘh~Cױ5!R(ؠ(UEA+Yp E~0_ p=g`yB @su ,1E%1N1JNZ$Q7i-ݥo__JdÃBƾL!8isww?D{[- hwJK&G(ew1uGBuPSW5[ XKy:[jƋcSӹ3{:|4_s^?A"gRYѰ*_VϞpD:7l N071=ܦ|k6WLJ^?7&e&'V` n&с>d})pJ.lxRo' H?fkO}{F|%!DPoq 5v CvLNkfIENDB`mcu8051ide-1.4.7/icons/16x16/kaboodleloop.png0000644000175000017500000000151412067167647021160 0ustar milleniummilleniumPNG  IHDRa pHYs  gAMA|Q cHRMz%u0`:o_FIDATxڤ_lTE3wZ?mu)[)IE P@k!!11&D0AcBH  T}4IEIA" eC٭ݽ6"m2'3}" Zq:8&89H]ͼ`++?9mS8ykcL{zsO5c65]ٖīOoN_a"p!\.]}CH*I-ad- /,".nM[jTx~G{ /HցX`+06'4ʻQ$m_B`BU=9Gz'A]|{:{}aGptɶGv4ݼ˅߮7 SM{{ڻֶ#L,ACԴv4jEN|8| M:?xa9AяLLemJA124c7'j ;9vΖ%5+EKYJƏ-r_w>EVL삎HVzijKVUWձG|uX[S(/Wt uu;K3%umFDIENDB`mcu8051ide-1.4.7/icons/16x16/gedit.png0000644000175000017500000000103512067167647017600 0ustar milleniummilleniumPNG  IHDRatEXtSoftwarewww.inkscape.org<IDAT8=SQs56W) `'"6Zo"jhkeŲ Gn>n=gf,H  yyg83czwǚ3ܽ-}0dY-z]I/|rUv>P_٪~(䃕{wبeA10tH7PQAEv8K=eFQel`fLTlhv<?%<s8wF"' !BEO.QhN5:UFʏ '2 #Y+1 Тtٔ+q|(W"Ȃ&ոkTLJOMFB=٠*N"X%P-O!ڃ mnG;\9\G@8N%xEe6[*FQxډXj ."{x f jxO0AIENDB`mcu8051ide-1.4.7/icons/16x16/reload_red.png0000644000175000017500000000074712067167647020615 0ustar milleniummilleniumPNG  IHDR&N:sRGBbKGD pHYs  tIME gIDAT(u=kTagnY-XD+ vbh* B%$5ke7w̙3Gf:6%7o>"z+XEh,35l  4shrqkY怙Ϛ6AUhEX2߱\ 1jp wp9 cgklcvli?e[=>ukr=:/6Q8B9SbSD7{Pz)Z[2hp v9e?p\3;-?Rsޮ৊'\˿^>QIENDB`mcu8051ide-1.4.7/icons/16x16/disasm.png0000644000175000017500000000107612067167647017771 0ustar milleniummilleniumPNG  IHDRaIDAT8;kTQ}ΙLF0#b"D6V vv"DP|i"E)Atdrg>ζΝUkEUM%򊢔(جqg=rFu]6(Jύvy9éa.@ڪ'++(8x16 ֛k<{H8Iro Zȟ >Ю?y׹6z(8@?JZJؠZ]\ysA''8rzϖ1"'J6ZRy桏oNQ-λ)Oӌ0ƧAP2p\urSn._מAX."a`%!NR\>sb "? rb< u! ."<@pu Go0xr2s0 !Jӷ? BT\܀`a !!&&F1aϞ=I 022Aq K2,Aɸ 033c-Ñ塚AzvvvY3ܹ$ kurT/OIIENDB`mcu8051ide-1.4.7/icons/16x16/usb.png0000644000175000017500000000126712067167647017304 0ustar milleniummilleniumPNG  IHDRh6gAMA a pHYs  ~tIME  ;<FIDATxeRMHTQνs9&8'EA$Q6-Upݢ]$ԢM(ȍZI6F8{b4>\}?ӆv B,  ~~(dOM/6Ja8ѡ>f\V86&6JCEf @b  r58NOz=zxŽ]/$X) DQErC#,?TV]#A6S4L>'Iqx__gԢsh"ZӥY/^5L֓⯡&1nųuVc[:X4x\Rz^?ӉȇCb(shQeWJ.k<riZkŽ`O) JU "z>>ӕB-U U Y p?ϭܿ8P ̑BY A+U Ă \inK}3,V ,C8@NLo\;VYjSBbا8 RI4D@ %,,${5N+?#IENDB`mcu8051ide-1.4.7/icons/16x16/bar5.png0000644000175000017500000000061412067167647017337 0ustar milleniummilleniumPNG  IHDRa pHYs  ~>IDAT8N1EO2ҲbH/ 7 u?C&%H-{{Dǧp;Z ՚<ϱql6㘛F׷w@?VtxL IsJ\R`0裔ZfZ)%Q!x|^AfLW,$%޿۷VJcSP:*bs6+]K8IB`Z}}B#֚4b1~*&Ia_7T*4IJ)9s!D1<0Uc 5@o,IENDB`mcu8051ide-1.4.7/icons/16x16/chardevice.png0000644000175000017500000000141212067167647020600 0ustar milleniummilleniumPNG  IHDRagAMA7IDATxmk\u?{N[u!E&DLDE!.\.T܈;AZ0DF IMfI53_i)svr{~JӔQ(""hlll+ R c ZDh4DQyVW 8looSV4dy:}GhAu(Z{LZDe||Jr<\^l6(hI8>$*uMDp]q0Ơc $`Z{bOqRaHX$>`Ek^K {=4=q)%"J)|' @)1f}( Ra:dPn/g{4_:^8OʭjZ9)q#Qc{cμIjx鲾?wD$0/Z~K?]{{J5jhe2{oͽ& xeH}xܳ?  :m:׮3jYP qW `U1_0b%A T:be lzZ0R@8 ``cgscrRfK@a5mC#cF  OD- u1A/Я9q3 "/cx>߿ _|d`` @= ƿ '0;Y%A}"@{N2~}FoXMfG_8qp60Lx_ïes[1p`1a} <\4" @@p ~cbPn< @,(!**ǟ@Vӊ%=}d Jfu  o\doGMK` PVœo02<T@  `u /lxDk%YL_e2R(C$Ig8pԍ~@r7v"x+ <QρA` CH38@1!zIENDB`mcu8051ide-1.4.7/icons/16x16/unindent.png0000644000175000017500000000057512067167647020340 0ustar milleniummilleniumPNG  IHDR(-SgAMA7tEXtSoftwareAdobe ImageReadyqe<QPLTEԜhΖb֢nlS8nLeGoPd}ZX֧tșج~۬}Ң~XvtRNS'4 5IDATxbB ]@$   b+ IQ&!n bdaa Vq.6a  6 a-T@!p:T@a 0| `'#qj+IENDB`mcu8051ide-1.4.7/icons/16x16/window_fullscreen.png0000644000175000017500000000142112067167647022234 0ustar milleniummilleniumPNG  IHDRabKGD pHYs  tIME1vIDATxڅOhWw73JVI!?B +֢-tBPiAZ즁\(W qJA]HTt&Nf{oL^9,~9\sڳ043h RV`=ƚ~gGӻr75x{xxQs@ց'bl<둔~26wBz+w)h8Fdy4e|@S͋#:QF7iri-ugN#u:&|Uة}c-$ _$er ƁV/PJ8#<@h}_a#hkއW#ocV9s2QJ'N긧8pR-S@t mCB:IN|\aGĬv-ΦggAC18BL(GqhF1`LᠺFFI-t/[dtf"K錧vk`P <5L)+T֯E[Mb,/5l@Myᢅt~5`= xh\+0K6'i`1 48?$(YK=?"n)2< =_f mU_H[ilIENDB`mcu8051ide-1.4.7/icons/16x16/up.png0000644000175000017500000000063412067167647017134 0ustar milleniummilleniumPNG  IHDRabKGD@ pHYs  tIME itEXtCommentCreated with The GIMPd%nIDAT8˵m0E? 4 n&@S8Hox͠\@2Ha٢mxx,E|N (8QMĿf9\ce!rE {,cſ'\)uw*~g+`WUWЍҭlq9'.I~}w]L}(|ii}Pkl"于q)S ?婉SVv[mOz$f=IENDB`mcu8051ide-1.4.7/icons/16x16/forward.png0000644000175000017500000000103712067167647020152 0ustar milleniummilleniumPNG  IHDRR;^jbKGD pHYs |tIME %zIDATxOSQszޖ~56/pbp!jb0q`auS!FSz -.i%gz90$knX727D % ?£ $ mwam=_x" f{>G[c6pHJM(QZk^$[ /F&`)gf&Ic޷[<OEW(*118Dq#7ƃ;$ `{w(hSt2pi|!"&E$cT7?AWxJ΁L\N9?h6[zŇՕB`~t3+>/q B#0M<Ϗ59m+kRJr4m6\nS6sϭbD"1Pu}\*(UP(0,͎Wn+6!KcLӭ|>SUk=8 !>Bp q}?(*=\g;ȏn](BuI UQ'L"XU LB7eOn< vpAg\ƭ2IDATHՕ10ESIW3H:ˆ`DDu`-0,qpH@s.xFȘHnpc"Hu]w>!5*Xn"DkUE,}pckꨀrCX]YzV(Tpfn~ύRN4@ s&F?+p㽉IENDB`mcu8051ide-1.4.7/icons/16x16/text_bold.png0000644000175000017500000000133612067167647020474 0ustar milleniummilleniumPNG  IHDRasBIT|dtEXtSoftwarewww.inkscape.org<pIDAT8]jQܙ%;)6eE1jc"JU@^B+AL M,h ]ڈD"+dvc+z{+fwSq;* D`o_k󫩹Z A*E,ьAgxq@%z.i0̌}~%S*Uœ13l29Yx5#6FyVVV8U9*baCqLZEUqBw:7J JHӔl6y+*FEZ4sssxDCKb@t9e8HӔ(r2ﳻ+A$At"#IpG6Q;ػz Ȁ/l$ZGJ9>kI槈UKxi,4= I<`ÿIpkSIX4.Tk899V;nִp04 !!6}pwcsZ d*NID,y'y3@2C1D;X[~,#ϲ je:EiV/ĸk/@V9=# *2t "&o : nGֶM>ݚדּx~׏nGŗtIENDB`mcu8051ide-1.4.7/icons/16x16/symbol5.png0000644000175000017500000000042612067167647020101 0ustar milleniummilleniumPNG  IHDRa pHYs+IDAT8 0 '(%𠌔@iEp |#QJ1U:wm+m>N[AD<3.awRJ"%gdg0 e9ۂ3*Z6SPUTq/4Mpp`SJN A;SK_b뺾oEo?WqmBIENDB`mcu8051ide-1.4.7/icons/16x16/edit.png0000644000175000017500000000126312067167647017434 0ustar milleniummilleniumPNG  IHDRabKGD pHYs  ~tIME  )b@IDATxڅOSA>lIF"bbnM\qᖕ;r_@]4= *PセqAKZk$w2{sg58Jsna|tud3r]58% _ZETGN;c"/!Ls}( $.]@#8m*6+}™O9fш@:x[hNWw&h,a%i}iI]40]?!APĶ^=&OU{дe▮c:,leE6:;$DUcYLb`M CǑRj,Pl-Rit;fۤ2%B Qo8@[khJjD4ԋW8 H%L99Y;5ύNchح4Cjɔ0$I]H7hS@ ղ}{9n/Rzr;C vkh`;q8ٙIWqA8l6$(DqT <}\[{gI\ǁ yY$[eڈ756#1bxnp\ҟOߥ>R)Z YkIѷsq v§iLBu^Ǥ]%It/V%j(6Tr#MDž/!IENDB`mcu8051ide-1.4.7/icons/16x16/green_dot.png0000644000175000017500000000131712067167647020455 0ustar milleniummilleniumPNG  IHDRasRGBbKGD pHYs  tIME% JOIDAT8];eL6n(D XbS D:& XX[,E!0a]{x3EjoI K55EKP契aYrV#6,=rd7R-)jHODҖxyŻr.*qd7h%=Au:VJIOz!.PVSZU,lhmCOL\Q[q.dvj]+)eR!tBQኙ7Ll)\fZ5SFS;sY9Kr'v.jh(3%DXȖjmKo1z4ҧ1n1alhIs)Yl Ȫ˱EOH#,'.{]\a.IT 3dlcA<ät0w2Ց bB'ŧNη1QEhbFe3-YT/}3L2# Hza_^%^׹c᯲0 -pO%oB:~ \ l|s ?οO+Xqt|<1IENDB`mcu8051ide-1.4.7/icons/16x16/symbol2.png0000644000175000017500000000052512067167647020076 0ustar milleniummilleniumPNG  IHDRa pHYs+IDAT8=N1?܂+P+5. چ+HX)%% Ǜu2O[ڍ,?q2ɘ9bt.df:YC>ϠVlX4z!A"{83 ) _L n\Ǣmw:->cF|*F"P}<s5KιQwP%_#)gznhIny%GA6zq\OIENDB`mcu8051ide-1.4.7/icons/16x16/exec.png0000644000175000017500000000152612067167647017435 0ustar milleniummilleniumPNG  IHDRabKGD pHYs  ~tIME yI~IDATxڍKh\u;37i&1W&& 6h)+"VDZ (*؊ EEK]p!5Vb" ӄ#!hMJrRU;yl;.cC mWsg2`0*Ț\ گ,9Wx;GjcæF؃l*`@ mhDJG?VL4 +|6Uk, (C[jl*`*J=ݰCcsBhh}c {w2/OW[GXW(w?xufe5:ICzcs*kGPf{JY*PB5~lϳǗu0@ ׮Փ1gHzLk0 ÞwsDt+Rǥ<+ߩxr6L@0H47"L\j2A;]LY[- wZܶڈhrPߙ#{zj)멉vw'H<>3S TF)V6xZ\^Kmn_\ أ|Bg_ּR {B+_C{3G?=aYewp~eP*t-?Y1 9IENDB`mcu8051ide-1.4.7/icons/16x16/math_matrix.png0000644000175000017500000000036612067167647021027 0ustar milleniummilleniumPNG  IHDRagAMA a pHYs  d_IDATxR  ^c4Fc3Y FEP`\9(=,H˜*^! bZM!|QSOL MEw`1-y-Jd%͉^IS ^|דM[WmboM|TD }[yb8fB*x!IENDB`mcu8051ide-1.4.7/icons/16x16/grid3.png0000644000175000017500000000021412067167647017512 0ustar milleniummilleniumPNG  IHDRaSIDAT8퐻0 m|Bl qR y $HZ$2 ^9 H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧc3-gAMA|Q cHRMz%u0`:o_FQIDATxTKlTuigmV'VE \aUB#;Sn+ QcY]PbbKt,Cj3Cۙ;wb۞|# j:NeH)m{[/v'=`y!;XsOhr pYƲJ<`hw=zp{Jf fSߍ]:Տ$W0Z('>\N2**\hs ;ɹ0ʨnKj~ɕA) N=UoRjD<D B 5ɜy ghP#`b5+e"뻩ԌǞa8X K|;,a.Z4NaVR/9꼢i fLwP:`7}w 6c.^vWm9*Yqy:mȶX+m( ,K>ҹĨǏ/ CaWό?ޱaɠiʠ݀A7 , 10o <\j $1<b5#~&1 a7N @,a231y&,wj ߘ00rs1|AWALOA߻@, ve R _0\8 ;/wx33X@ E 5ca5 g'pex[E >H0 #-) 1ߏPײo;#3;@L [of( 66o >

r믞/MnIZVLd^J%ܠpV$kIÉDQD%*.~P*K%*Bth၂:p-M ]!o/6𔏧j%$+u b&=B8tJmZ24fڡR&BBAU A۶MeY+BHޡ+AVΚ'~dUV@DGN(ᱻ}` eG[sRx*k0 0X]YlP [.Xֳ}hSl˛ l,RH }ȉR4S wmI 6wi0>Ba0Yn;И;WfE+f òοsdBIENDB`mcu8051ide-1.4.7/icons/16x16/editcut.png0000644000175000017500000000144412067167647020151 0ustar milleniummilleniumPNG  IHDRabKGD pHYs  ~tIME  *}IDATxڍKL}vXHPhA&hƃ!zx0Qc@<`7IOhHԾݶE0F̟2f=466{ebb>0::]/ ܝ,,'w{}}O z/MI F,SC~ؗ # ЂpnE[["B1BQx}jjqZW?EQp<7<<پ_[& !V^B& puv2 3:֒L.C\c[{. UiN=q:j;st](:Rhf0FJW( 5cכOZр`5u@@k=%'gt]>/y5׈y-$Ukp؃%:OĴ@k}JpO,)/NngUoMYQ9u.B:RZC\FNǥrw[*R쉒ȣ#|Q/~U+3e]d)ӥrRk}4Xq,S*A5Y J>I!J)( Fܫւ|IJ @Lf7- %^hsO<0LZ\'ʋU o  28Փũf%mSOS 8G:}+}_rB,OIENDB`mcu8051ide-1.4.7/icons/16x16/folder_new.png0000644000175000017500000000121112067167647020624 0ustar milleniummilleniumPNG  IHDRVΎWgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?5@1c0FDfdqbP=UR ?c`8@R  F!^(V.c`8Ud>C dT5 4d1c6#@ p7 luq A"~_׿1 kŀp+e_:ua5  7d{eH_ tb03< @`iI` 7&=C(.ZSL߄14. `| ?(1\0švIں1@ی=vO[OxC3ӯQtoZNs`MCX=<{;{.7'^LO2|Ζ[:hM-`pC0YHO[hݫBo~{Ǎ|UWI匕&BfDaJa'J|b5 ,?f4Y/e0T\MSVsU+kG<%(M|V_m*Y'[X1ugW? S fӵPQ-2qGm^P"^q;7imKVn1P.;HEAq޵wAD`hkvѣGz$:yX:s73.hIENDB`mcu8051ide-1.4.7/icons/16x16/asm.png0000644000175000017500000000102712067167647017265 0ustar milleniummilleniumPNG  IHDRasRGBbKGD pHYs  tIME07IDAT8˥A@ -20+Lwxn, ,7&EObz;oxW?U}?TN"%-4iHЅF^BwL?1F F0"FV rً ~P 1+w Q5z}3ωCϧfCg>0$ Zk1Yq:K@QyZ weOOOenc^Wfp8hG$u]81L*b C"Bӹt]6J)0d4].Պp}ED|>KYy.EQT,%2Y.?~8BUJjA0Zs VVms0UA<}6Ri2IENDB`mcu8051ide-1.4.7/icons/16x16/bm_ex.png0000644000175000017500000000122512067167647017577 0ustar milleniummilleniumPNG  IHDRsO/sRGBbKGD pHYs  tIME0)VhIDAT(ϕOSQ?}Tk#DApQ#4c1qq :;aԡtbcD'hbX l^߽סD lss*>${$s tkNV?aC굠QnjՎݣ]o 5BFYmDG1)gg5/"^K0γ+?P( /aEW 8u:< Ffa~!K="K/>F6?Swh5^{[qn Ȼ=g o?(m$< ;'W 8<*.s5%&ёYB ?&E0}_OmpF^N )@`0) ~C 8Q,GB0#K`3~?0zGrִ;XiIRm7ʦ:wլ%R2LOIm׈m̩ 2RIENDB`mcu8051ide-1.4.7/icons/16x16/kcmmemory_S.png0000644000175000017500000000157112067167647020776 0ustar milleniummilleniumPNG  IHDRasRGBbKGD pHYs  tIME  LIDAT8˥_lwWzm07:+`UA<5j/#H4!$#$$0f&N'u`-vkw1&&/B z tE92v:WбKLoI[mPF_n$guzW=p|?4<| qC'RD6ͪmYmY}Z>ylnDV2%m-ߑ[wío2*%-ϗ(Jf:{?˖:\I&yɳKR4|H.W M5Z՝&/VFu4Q<ү"O䆖%H$EI$'k0 | vIderdBd,;1 }t:nR3Džs'Ξu/a\}|m,L~ M<ĶAUkk k[Mk][t+ Tȩ,.JM]- 5z;0*]ꗆ gfsOvz\:{ZSx{TrK4+|52Z91tzx'2ڽp͚$=ԧͥAJ`rrpxًJ0,_KJpDqףMO{CeR!27"͜bw9rhmR][ H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧc3-gAMA|Q cHRMz%u0`:o_FIDATxڤK0 Dg"QnE%.!IEՑȉI$ te]$$$TXQKΚ&5$0-Ti+-$.>PeߗTmOޕt@03`f軾PA%x/T 3@RJΛo%){ HBIENDB`mcu8051ide-1.4.7/icons/16x16/viewmag_out.png0000644000175000017500000000144012067167647021032 0ustar milleniummilleniumPNG  IHDRabKGD pHYs  tIME-"IDATxڕKHTa;g(=$ljRڗ % E( Zhe.Zhː,ҞcƩqfw9F:9n@Hֶ쉂a\.x2 ENO^)  |6*=s^[c==Vv4-,(Wl%P*C(Q\`g.s*h+B $ƠPU>776AqTYbFP9WUpp}Uj`N)EPķG$2.@IDTVm! P@DFAȢ.ˀ4K٪)cрذlq@)$࢈ODU\"y9BA p]T2ϰ[jKBζpȫ*@ A"GT(քӱwZ=9ۻx]CMk!O+R*V cQ<5/η2B[U7GN9/ιo슬L_8i!d%ܝ~2^ zvټ#Oimw|ŷX<)={hn S)_[*^;9QVi}샾<.nm3mwFg?:Rl\k:? M[IENDB`mcu8051ide-1.4.7/icons/16x16/1rightarrow.png0000644000175000017500000000047212067167647020761 0ustar milleniummilleniumPNG  IHDRsO/bKGD@ pHYs  ~tIME '|SIDAT(ϵm0WA:Ԁ p+*GL[;? @6@#d[غ]yif>c3hJacB-p0$( ֽ]TwO6+UJhC~m,ҝ K}zSxIENDB`mcu8051ide-1.4.7/icons/16x16/editclear.png0000644000175000017500000000042512067167647020442 0ustar milleniummilleniumPNG  IHDR1_gAMA abKGD oFFsmT* pHYs  tIME "}IDATx= `g;ys ZXX8,[̻ʌڠR&oM{\ѼAhv A4 C>zWl\gxOKfd$3.ºc!ݐ LS~IENDB`mcu8051ide-1.4.7/icons/16x16/emptytrash.png0000644000175000017500000000126312067167647020707 0ustar milleniummilleniumPNG  IHDRagAMA7jIDATxmkQ$m#iFԂPPpEą݉"p+ѽ FDA*Mͳd3̸psֵ=酩1B2>Ġ]oR̗OW?EcyxQPCB*?•RQ(|0]`@8:`EMvI 8,^W kK g%p<ֶfk7JR! b@WBF AoH MC7LC` iPkPV%KQ4 #}v:'9`+P \W"a`:UN RAɂf34Mz˜ab8U9/(骄d"nbقj*C J G[t@1XKoө3>yePؠ/ /r>c?%>X-׭@` Npjihtn؇3{hj~ĩp/?}o| ~ALѼBIENDB`mcu8051ide-1.4.7/icons/16x16/sb.png0000644000175000017500000000056612067167647017120 0ustar milleniummilleniumPNG  IHDRasRGBbKGD pHYs  tIME +R).IDAT8A+QHfR;߁ ,,n$JCXY6X(w( Ecaܔ֩sy+DaF*z38ý<1;0ecZv#$ 'Xxi} -넢\eaԓ1WXc8'}mrd ${Lt!iWxi~@jrIENDB`mcu8051ide-1.4.7/icons/16x16/editdelete.png0000644000175000017500000000157412067167647020624 0ustar milleniummilleniumPNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb3? Ǐ fx#ӟŃ [73j[SM ?uO egg? FFFE L$$EuEUwC8 Xgb663zl>~X߿"t?H-@auL@WMb勏 w>f``cCL@auv&7àk00?dx9++éGjb`y? _c`*b`ݻ-Vfff6B-;~`Wo2Nb`߻Som3&1i` #\ @$c`9Q;wXd->YDԓ@,0& .O3دnf`xᷖû 5|a&&p4@0YX8b`xo;P3#,! B/œ;+^dkd[ aWm@qrAmG rdo~E&3|^k,| ̯^120z ^0sb`tc/+~2|Xkz?^abknA>`)V ï^ +J OuN>dj6?4gs531|LP`^nJxIENDB`mcu8051ide-1.4.7/icons/16x16/2rightarrow.png0000644000175000017500000000060112067167647020754 0ustar milleniummilleniumPNG  IHDRsO/bKGD@ pHYs  ~tIME LJ6IDAT(ϵq@掤mV 2h\8U&0Ĭoz]dU 匜{Q,  ([ 1fExLm B6m5r)B,ڦ$QdW]U߁Uj2x{×Z%gj[{{IENDB`mcu8051ide-1.4.7/icons/22x22/0000755000175000017500000000000012067167647015771 5ustar milleniummilleniummcu8051ide-1.4.7/icons/22x22/redo.png0000644000175000017500000000134012067167647017426 0ustar milleniummilleniumPNG  IHDRĴl;bKGD pHYs  ~tIME 48vD)mIDATxKa?tf+Kkݬ @rEbEDA/@wUT uMDo7܂tν}Д%"s8yLd;LfKB5u>nJ3Y3Ȝ}wg{},1xdwƩWPUa+$av&DdQjE(wnPy~E5ovaxtoJ\hBc?ʞ}+z:gBwUC{Mt.(HrPHGQuJqN2ԙMn/!ɭHrH]L#P[.\%+ o'^pٓ#n.m^>*H*rоRz4b=yw,W=:Xl`Y4tf)_\;l h.Xb$u5 dr~k$J%4L]t:7"S?pS,h-*.@=(D'nR"%a!])}0uubdZݖ^5$A$ȦtIENDB`mcu8051ide-1.4.7/icons/22x22/bookmark_folder.png0000644000175000017500000000211512067167647021636 0ustar milleniummilleniumPNG  IHDRĴl;bKGD pHYs  d_tIME  IDATxڵ[h\UuΙ3ˤjLc*1$1jb)"T*(A}PE JVDE jHVm4ĤdNL\ۘ4zX YZeG`w0jAew ݧ2ࢮy6Vy,*l"TJP LŶY*|Pޱx$A >E0.>ZK_QPRME@._1)E nEŏr1h !WYރN.v~p @q'a|M0U{ˈzRbvX5:i邛N>Ⱦ|dFB L֊׿A&n`fg(aE*ă4D04?(L]ٷhq1Mul?Z"s0i4rIcvbL>nQȫh ݶ v1xT}5b; G FHgnm+0yE0dmTPE'L::;T( *B~ЖPՄ_2*Ce3v8SMS*fd}삊k`C̴p%/|5ãDJ30^,kIlS %B%] Z?UW5խL, &ˮoa(/U/T %@BDP ^׮IENDB`mcu8051ide-1.4.7/icons/22x22/run.png0000644000175000017500000000251212067167647017303 0ustar milleniummilleniumPNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb`$GW` #6A8f8_K`ǐ߿[Ă̑?X?fO ?E~Kpp~7 짞s#Tހ`bD6x|xc G?7?31d3@7 K<<΀A!)r5w LXXXg y/=g`z1N߀a =A;.? Xy10b  J obb_?p|!Mh 轏 | a#0(^> éL @7 8]]?ص\3p`g <%}eOXY @@ ͕8[?Lx>"?mcA[Ÿ LLAl, 9^׎ &`( ߂Of 8D9&ps202H=Oᯉ*(Ajdwy{1$21Jl,ܬXX30m 2x"H ^ty 20 o۬B~12x5×$@v##ۻOnl`$9xsp'/p>t't90<4;b M g2]@(e߶FQ bǠANlYX|f48H9n M `#?X`F(ffyFg_ќ/ Hda#@ !~8䀜@U r Q(%7 YֲB $8 @r9?`! Tk@,u!Lr`ХO/`8 R@AIA%%9Y ̏Pͳ߁0W+͡@yDۭq`aЪ3l vpAgX (IDATch@ K8pr L( \D3NcmIENDB`mcu8051ide-1.4.7/icons/22x22/desktop.png0000644000175000017500000000225212067167647020151 0ustar milleniummilleniumPNG  IHDRĴl;sBIT|dtEXtSoftwarewww.inkscape.org<i.u)}*N&ꗧ~+X屔Jes>I֑tcˏuE.y^/ epbZw7*"5lO,b-끙RzDRrPT"&yBKD5)g2`ׄBz0?ׇGSdi5~}6p#y&(ze@:D^yNl] zeemwHOm:m _k,ňۨB2C Ks40O}{,`_s>[Q]jX $t"e;t<3*U.ʙ-c6ےIgGOLhǦ,v>jPܵ ?7mkrߗIENDB`mcu8051ide-1.4.7/icons/22x22/compfile1.png0000644000175000017500000000742012067167647020361 0ustar milleniummilleniumPNG  IHDRĴl; pHYs   OiCCPPhotoshop ICC profilexڝSgTS=BKKoR RB&*! J!QEEȠQ, !{kּ> H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧc3-gAMA|Q cHRMz%u0`:o_F+IDATxtoTUk9tzg0eZ AM !A_}?`5U1b<$DM %j$thg쳗3NiYIEUgU]!4 "Ddљz !L[###?:ԹhZ־eb hGLbjjJ> g-"A0;$LL3z b^p=p\FDɻЪ2tӍsX,<ΑIw׷'x}d׮@Mӣ4޼T{ R¶51N?iPaCaݤi\?gRs],҆OG#l6 /O 6jT1xXOׯa˹+$p=9 |YPwe|l /,o|`C@1*3Vz2kuoD~ lٴVSrKcj/8COȴ@KS|LڎP#ЉbZRqxi<ٕ |N7ps/ |70&([y*T]m е*Csc %ߋ[SSSE_HbWUQda(t/IENDB`mcu8051ide-1.4.7/icons/22x22/filter.png0000644000175000017500000000222012067167647017760 0ustar milleniummilleniumPNG  IHDRĴl; pHYs  gAMA|Q cHRMz%u0`:o_FIDATxb????0,]ŭu---- LL 0 ..61~e`ï? k?}`CzW'y~^V?3Lsp03ԴOťQ mWh0 bre01/`><҆W .9< @,PSOx`g=Ϡ&`k(ۅ{/1  x >. rx#? 7d:n[34)P X]'+SI~,,u _ab^IZjs  0l@[Ocg``8l0;y hB {^3(2I0p1|} ~gÏ j ?YYN݃wWeE @+[Kt޾/g7@9×@O ݇ o^d ><c޿ L˟?C` +[Dn=a`^ w |+o X-|d-@Wbcq`1?k1L@@?`|pp`a`xdx/@~  h·^𗅝50g˰ ps3?Ë/ <@H*$Y>A?x1( 03߷ 7`'W A/hAc&Hd[yC- F(4 IPBmK[ m^9Ci |ɼo?,u2;ctjsHY$B:B7t$#hYYt]G)%J)#J[kׯv[\EJ0lMp=T6iqשtuHdGgv,q=\o4,@uN40<H~?3,4)ƛO{[;[(-}zp\pcDů̑) nUこwXt&;L,/LNE]j Q׽|r{kUb?8WVV_-ϫߎSq H|V&uZ9X';n3y/f}gzNؽ~R3gP҈d*3y͌g[z,ױzTZ[/d1/G̏RT̝}ZQ>)˨2{GVIENDB`mcu8051ide-1.4.7/icons/22x22/project_open.png0000644000175000017500000000142612067167647021171 0ustar milleniummilleniumPNG  IHDRĴl; pHYs  ~tIME 7ÏWIDATxOhUW{=}SM "\D)ZT׮,(ӕBPpՍtbu!](ZQ4P".y4M{=3]潄G~on4vsr)(Ɔr'.gə@@ n-oFdUfP֕BZ4OA 8@ D*vKe\MށuB]mI @BC^mo+! )f6LDQDUe U ծZ FwBeTU "*(WvĿeM"ktsӟ~K&R\hlKD )%.NՅSm}cK}m@ЄofK8O.n{n/u?DJ>O+ߍ?;*-IENDB`mcu8051ide-1.4.7/icons/22x22/editcopy.png0000644000175000017500000000077312067167647020326 0ustar milleniummilleniumPNG  IHDRĴl;bKGD pHYs  tIME 0gIDATxڥJ@lA< =]{"l{ Dư=nDo'B3i`Lfd{u手IbaI"HOC kWBD$Iӊ,zOUEYn #,\,ˑE5r,BO*T숢5Q !,GQxtzgṴ\x(1 EQ$&O %ιԸnf]X5-aJT e^55ޗpNᜋSa@ Hk.q5gg!رpBD:[E Yk i,y>uRSW KBNNXtQSQc鸦-jbU_!5[1jl>jb,U!hIENDB`mcu8051ide-1.4.7/icons/22x22/gear2.png0000644000175000017500000000217612067167647017505 0ustar milleniummilleniumPNG  IHDRw=sRGBbKGD pHYs  tIME<\xIDATHǝoTU?7ҙVFLJk7. !HAiBP$]Mmʏh +  Ng޼wq1S2V{{ϱ1Y|sqұnenc;jOiCE:;YDu5-?8X^5yRYQRѲv]BE%6_7(.<1S%ֶ!IcQ4jقz:~߀َHZ;mIx,)7(`a}-L=7.\r#Ѹj::]]Y^M)z~0."av:C1 (R\?(I\1E<97vu >牴3YQ}˖"EDHrйB)`8T@Ǚoc)F 1[Uїܯ"1acl#ٯi^`ǑlВe}y\R@Liόmc4u} )B֭:!Uk1$6s~a@\x 0n0 $%̄P?1ܺuds> d] y1pp] *g+mm`0!&Ɵh`0bB˿|eA >}e*dg'%%)vv60ˇ@,$}eeyFx=2'-%% L .\` go6m: A,J޽غ(0Eȃ ` dW;0 @LXdeee pr.+`D6CAf0}Ðӧ1=xP+ pz=BKKcT? däIPĿ}w$@(`lffC.0Y y *P@yecCaMM3O_pe]]mXXX| .?] 6 3#,?-| Cob`aod8y:XD9sW`3` R1^6PSS}!Pn VsO/ů\ @YzL @B&&Al_ZZV@KKPt*0BׯBQl e̶K;w2\x? K 3 DXóg޼y L=P  y\5,qUMH `IENDB`mcu8051ide-1.4.7/icons/22x22/compfile.png0000644000175000017500000000133112067167647020273 0ustar milleniummilleniumPNG  IHDRĴl; pHYs  ~tIME )txIDATxŕkTA?;; bPJ-T"U0?J)D%T I N-%1܏3%/Dz~3XZ#P5qYiwAfj[Ukmjjݾ|a/,QK\R˼zъ,ὐx'12çOp҅B#3p(Z.y/?wypc~ 竟>ē/`9?@oiwŘكWNPVnD^:`xhSvvP397*[*5nU`lHh4ZryrıR)矓5/x3xsR3Ҡ5TQ=$ރIP`Cոxj%c I^A13BFe6J-7qvmR"#n-)MFE9v7Vm@U#K2$05eI4^3wf2k&mZ4s<la* >/cn:k&?;HԊN"C܍rz6qy~?N`r XzcUY?B e)3M0\+^ftS1i/X GIENDB`mcu8051ide-1.4.7/icons/22x22/kcmsystem.png0000644000175000017500000000300012067167647020507 0ustar milleniummilleniumPNG  IHDR pHYs  IDATHŖmpTw_In(Y$! RJR R 2ca(3A 3AL;jN@t$D &[iV&%0&n}Au3s?3ss=BJr[7߽x\+=U,\+i:௷˳;~O"dFx>]@o}܉Yzzhl5B1rVY0]Drep-_M/dn~.? /tmliyLG*e)B܈bCМ˨Dv>tAm"Ӻd,$=ΪZ~)' [tg>)?%,ymWskP3f]''ܲyk /R3I9-;wϒ VlRJ>lv{l, YZ'>)# )|q߳wB<\DbKܲQj\"_khV;Ӓ(ʝ5k3;VY;޵F\[< wNlLL*nnJc (lU O"">,cFo gRY1 )NbNAm :Ā+&\epCݐ0@&'/C1 bˆ%x,t;ϝkĢ+IYP]]rF&[ϝBphqصڤ{IǽDϑb%mn{)IfκY<5aoTSu 3m/2 Upxt;'mEVI mx:e_В(ԓj?ozh(ALO'fb|GyDV8VUL 8]ӌQ~b׫_;hH6=~c%'e&[93/{2-nǾoU]楧` w jUmRu/?<>(9v E9XMFK]@h47vߵ^0.(l'Nt3ZLb6 NFbxaNM;JuM3r& -M H$t4A8v3cFyR7o_rIHL 罵Û>WA"K$b'z _< lb(j\FǮgqi:LJQ>q k")JݕB<#mW_*tIENDB`mcu8051ide-1.4.7/icons/22x22/fork_this.png0000644000175000017500000000222712067167647020472 0ustar milleniummilleniumPNG  IHDRĴl;sRGBbKGD pHYs  tIME .IDAT8˭Luswpǯ aj,J?pmr ]$~%4JY&PSHT70ri}z>q-Lh^5aS<~mW׺,̓]/fXkɠG@0bx9ք*G<Ѓs}߇CMxrN3s~|,l{bʉ'w:O8ɍoa?_B`APŴLJ$E/rg;W␡ bh4g.J%ɜcD%@o ˳b J#m,ҼFh3TٜOS3ȢY NY73~סE[(z> 4?\UX0aY%QN{#mDJ4^Z~C& |n rcƇJ&yp!xĢڻH)sﹱӽ`.’Z_qsAŪ(XvOӾ]neѝ`4?^jőQMѬ-֡d(x nT:4,Bij"$ q :@ApyϛfqUj4w09jJd.3QYNtqZtIϻ`'NaAƽ`|̶r,n?sv SBbQ 8i[Q-wi!y[JOP^\8p!4l5 !?%a/ SOٳ%~>L G7jEӽB@Neg#gk }+m!dT$pĮTDsEu*q]me^VA~<+͚pS .sAV \X^ o|m}>&Lcif\\UJA0%n3qr&X鱡`(T5N"-|S>%3q />w +U2~.@|_?U5;%KN_|,@YNu]oknkS8ǭnIENDB`mcu8051ide-1.4.7/icons/22x22/memory_ST.png0000644000175000017500000000171312067167647020417 0ustar milleniummilleniumPNG  IHDRĴl;sRGBbKGD pHYs  tIME..?KIDAT8ՕmHeyѣlc؜ь a#XзbD`ڇbh#WF/ EŪ6wt<ϋyyys_}#}]ܿݷ ­??+Vj%==byvށW}N+'Rjf" ؄b YZlۑ[Jw_GGX" ```Tˋٹs;/uK]iiZ ei$)e"1ؿ..{љ5Gof>q4J".M44_3䶼on{[jdA,$Lc"l#{Q+"h&Һ֏[x) |4ifFd2y@z=:Z( \ fMƯPRZJq\&41 }b_yR`k͞x7X׺1IJ$)Ờ> \H$ʹ3os郭 Ù eZ ]s!vR(XXH >/RWq4520Pɡ/BQvS׶WM&$x) ^փ;/7?8Turv꜐' շ 4üh^`Cǣ+/+QDYAkj[Nޣ sMqirW2wq}J)'߸$cXmFU`Zh Q7_`whne]AB3Ž8^$ :{x1i& -d&Ξ{?'#aF#Υz^t'HL |'?In}5dUIENDB`mcu8051ide-1.4.7/icons/22x22/gear1.png0000644000175000017500000000223012067167647017473 0ustar milleniummilleniumPNG  IHDRw=sRGBbKGD pHYs  tIMEUIDATHǭ[UUڗ3ܼT8:1Q=e/= BQB8 N aFX/90jAAA>FDTLXe̙}{8 `[`q<^XGm7ٕW~YcgOfgOxӨдevsF8B_R,%{*kØ.TCM1[дXK[FlGC\W" _Xg䛏@/Pae^AYFG{w7N ha5->Y+4NIe)&JwP{,Mٯp6BLZ#OEl=tг%$FI{slHe dims(3tt1W8Tgd$dޥZ#@B3MXȘ9-gHgꩣ֭EhAYxב;o'ˆmi19Lλ ,<|j#?RAlRgɏmcV~z-J 2y !~(!C<sͶyܼw7[!\UGЇ)PչcU{BUa^Շ押IENDB`mcu8051ide-1.4.7/icons/22x22/hdd_unmount.png0000644000175000017500000000242012067167647021021 0ustar milleniummilleniumPNG  IHDRĴl;sBIT|dtEXtSoftwarewww.inkscape.org<IDAT8ndW\*㶻n (e xHHL2 e  0A0 H=Hw;vKฝ2˒ӯ%~7~i,Zg1TTTAD4-Nӳ٧G佟; zlО"s wp'n3ژg?zpG%USq=*(jתX%]qwn4+柞XcM1>99o~Y4 XX/ƔuַӻU{>(Yl1,,.4 WEpM!W}}ժcYU8kk8 nc,"²n33FySdϪqɳFm{m,q\t!P-yW=٢s(9Ò$I!B@T.*IiNF\MaA|v|NGl#]It:cs;NӔeݜlJDfݿu1Fx$ {7v99=l,!`!˲Ir#c`aPg0J%tlonRW *0*ɩffyV`T=D@4a]"gIOt]@!1'qI*][QQfKU5cXkJ=i]aEU8 5DCnl֚ (V:(*|)*5 |[Dժ]uU5 Upr6]uM|arq1u"ӋKKTZhۖ '"V!k8 #WxoغË%<2{t*`y&"0=9Sڭ|Ʋn% u^¨0Y/^'?c?*8Gsc Q4U9׾?f.m6_O8EUp||DY5~;>ko&wleť7>$\zwgO|1Oje E0Ơmְ,0 PSbe`9iG=A(Z+Pxb<~υP<5Jm[ @kiC&Kshg{B:ӉߨsSF2Y,kR(h1izr.bVK7ґtwEHuFp`%H%lFʠ$N1FPYY;ޜƫ+q/y5@)!N1(U/H85 ./+IxE"RqlZ+ضlQBwfgK$vlwѶš݄w ~`8~b [6t&GҔwU6y pcb=]4juN>ۍ7nR(%f XkDqT)L Pe:p,A",FBI(]1݂@QM$J)AKXm 8N'nqHcKnO>7窰DR\spjoiOhE&P))Еrv-+Ƙ ݧ-K |:ҕLajPLMk׻C2e IENDB`mcu8051ide-1.4.7/icons/22x22/kcmdf.png0000644000175000017500000000220012067167647017555 0ustar milleniummilleniumPNG  IHDRĴl;gAMA7bKGD pHYsHHFk>IDAT8˕}hU?}sknSF MZY"(0ј6&Ĩe ?*bph.dNݽ}ys{uw~|єRqHI@&θ yjP(DQQff… %Wa OA-[.MMMtttd*Rtwwcfn0Jo`_ȡښUq{c1]QpE>{0wk~]$" vC[b+Ep&/b+Sa#ho\*FOK0 ;nNXulhX16:m*'ОիqdOk+P8jkWUZm-iM]Q64KRE\ᣡ`Ysw6;5H520Ezb,uN w@(z{#d0(-/"Bmq gsux[ZP2%ɕh0@ZQH%<BޕRP-5%Df"D}=BU[[0cYDa֢Q66ЌmSIpzXN#u A*a5ed}/R47P#>SE+":`!)ĝw?$6؄"j|ݲJ^1:p{vIH@mǩ =OCw MIiq4MlbJO-} ɥ5X}ZURc1~՞̴"%2n:NU8>]zqCYV&X.)·xn{eO^RWpIiR2>9+cJ<oWU ?gf1jMG%IENDB`mcu8051ide-1.4.7/icons/22x22/filenew.png0000644000175000017500000000147112067167647020133 0ustar milleniummilleniumPNG  IHDRĴl;bKGD pHYs  tIME79HwIDAT8˵[Hau77-܊Xx&\)HlE=ehJ *5P9άjudP'Ȍ {TJZ[ycdRB3&1z 4%4"޳~V%+T7O'fRf[hu[^34.%Kl¸%\SK+xgE{S!=p~/IENDB`mcu8051ide-1.4.7/icons/22x22/bar1.png0000644000175000017500000000017612067167647017330 0ustar milleniummilleniumPNG  IHDRC pHYsHHFk> vpAggQIIDATc5D0kBhhzەIENDB`mcu8051ide-1.4.7/icons/22x22/ledmatrix.png0000644000175000017500000000021212067167647020463 0ustar milleniummilleniumPNG  IHDRj PLTEztRNS@f/IDATc`ᘉ L,l*F2xp7 T&< >3}QIENDB`mcu8051ide-1.4.7/icons/22x22/stop.png0000644000175000017500000000246212067167647017470 0ustar milleniummilleniumPNG  IHDRĴl;bKGD pHYs mtIME -1tIDATxڅoTE?3޽-DP)BA1"D#!!)ϼ !6IG4(,"T vnwvaP,xo&|9sbk,ujDUp2/x^Z eA CW yΦkkGx%1k̞h!A$B ꟿFU5V:[}-:Nik:J@Otr[zKX5~H-jǎS&,g/yM-lc,ZazC:00ڰ,5 =8&cLgL&`' !z7ڃњz*vit#L  _ol\Zz-eVfB)WkD-sҶQ~.1dudc7o@` stGH,ޏКq? `30L a6`gxS/X Y 1IH_- bpХ3JHe1ثp0;p x?QqY_G.`F,. l;$$0(s2PP{Ak\h蓯 |ǂӳy8rX\ @r^ g͜w@~氏@L-> GNc;Ыō4 pP_eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3gAMA|Q cHRMz%u0`:o_FhIDATxڴMhu_Nvi$Ʀ-IjmƵ5؃Eċ xB V _<-)詥B1mMb4VydMmٙ{hMr>~<<3փkE@@,I8/d6 W;x?ʲtR^#o},O|+ɪ:%j7bnxizێ}?MאR?|hH@R)WOooYXX^?Xb~M:1qѱ$Űt@Ne^8.I|()S;0T^^u`7aO܇D5ptɤ{(Mok,!TDbC/ub-!::XȓIV*:)ĝѪuSqml{׮qbqD%<|ۊJV_Xiٹ%ueΙGtW8xtoSq gwR􁪭^5KMW'y3z'z2łT9)b#pRS=sCoKe;UfX.rƏbCnnRJW'`nj#Y9ŗTP6I=?[>E䋆IENDB`mcu8051ide-1.4.7/icons/22x22/leddisplay.png0000644000175000017500000000051512067167647020632 0ustar milleniummilleniumPNG  IHDRĴl; pHYs  IDAT8A E?/lfқ BTPؤRhky$D@48´lRֽ$+_jC^T,2z?E4eYݲUƌ$|@_Xr|ytt 09by+Kڶˮ[;o:;FTU}2\NEqf948q`@y.ǕY [MHA  JXVjI[|7,T-"ZA%m6n~n6w9>i6}gf>gfG.s:[8&@ Kb}<Q6#dZ81Tky$|Kԇ1^`|>h M2poc򬱕ʌ,mTKhRٯCܞίv/ʯ  m{TEM1ФX|c»;D`ZK!^qG?~,WNuE eDgnn'54ebM G֋QE3*˯o,] D:"lbR*!Z3Sķq3+<\!@,vPC&O _)"G ^h0&MVRqRЕC.L>\+u$IicѰKBi\e剴,WO-7n+B76JՄ?GCY|X~^TAYH m9#7[G*?&-EPqL| bJ44!w $qn1yШ RVe}ꚊX9 i%sGبH1UZ "(cO<S":c=6Fky\0RD]ĝL6\PUAd?:NW' BLxGydeEReZYzrU)gSG. tac籥E|T~o' kzUK.'];z h(Y!-!SfnOo'O,э7}ԵLfz>o ²_<IENDB`mcu8051ide-1.4.7/icons/22x22/fork.png0000644000175000017500000000235712067167647017447 0ustar milleniummilleniumPNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb`xPsq/d?fc@xAԪnX?@kYJ00100"PC #r 20c 3| 4t?dzo?o6b004I.uf^&ß[1s1|3` z0 p!H) d`7=@04ӷ ?~d`|}˗ b9  K˪r%2*2`pf)2#?8xNc`ysŧ ?k >0pd@axP=#!Y>qA3c+c`&?rcL@C@1#:hXC"C] w1 l¬ '^K1 В~IENDB`mcu8051ide-1.4.7/icons/22x22/memory_BA.png0000644000175000017500000000211312067167647020346 0ustar milleniummilleniumPNG  IHDRĴl;sRGBbKGDRՆ pHYs  tIME %$ IDAT8͕mhesv6ڛkK[gN%ᰜoBP #C@D A\P)3,g:_6sg9;9ss;k.E?\}JD/DGZJ\D򕴭Q (D4ϏZǍ' j_pY #ŪU:}/yAͤ))\{jl6 &eZ,0{7rp&i/_ETUUpر,< bNcكglncYP˒Y50Lb4+HӄQޕoY'1M`0Fy|%OT+vR^pld Yd ']nol##R&ik 7eqvoM' 4LIDAT8Ք]le}vs1A&ƨ 1No.,\ptdBd%*[&l`ldeۺ=}۾}>^0\6 w?97'9'%Q  8v[s#@1P  fiѣm!ip DwA5<gδx|\Riwy( 14 owfE"7e"1%˶mZ<s <Aԃ蝆:…<7 n =(`3Bg垉߀ mB%ض)l{))l"~7ApVv~ /Ox/*)")T44EKWr/Pl' ` Xhq|^cd2HH( RΌ"0|꘻VY^y7ʅCx !LNR:dRVVB. VZᦟ2s3_mf2rx}><^7EUٷD"IQw ֱc?7\1;7HYDz!k۬yi3OQzmHPUULMömtuE<ԬЗOVRZ0:ӱbE\&5x]qQm &&v-BZ˱zrrdPh۷o#| ]7,4KV>g> 8o9D!:zXRrgqy?[_(eR&q] p:]cesck(p,xk`Eߔ~3ZCe53SpLε7U#b4.-qm""YDPw ӵ^8w ΝK2y֞xXq sIk6$8^XX_gxG Djem"fa1"bT>0xN1" *j,j=UPJ'"Y)jz}6(RJ.a15(r"r#˝6V3RHbo)%5.;3xt00x^PcL1cl*AD#=jMIԦ$Y-~g")eT bEfe!\9h3fjeT3Ex)Q5O%ьɤb0(Q:ͺYU!_0NOWt)jT󺿛&e;,XWs"ج1tgJ坟VLcb4&^%?3){ŝnV!pf<39CL L"IEIENDB`mcu8051ide-1.4.7/icons/22x22/html.png0000644000175000017500000000247012067167647017446 0ustar milleniummilleniumPNG  IHDRĴl; pHYs  gAMA|Q cHRMz%u0`:o_FIDATxb?Ì33Pddd0 '';ñ?o0( ~ٿ2o'Q-`880s ̀ R% $dvK6ViKBy'[q"ڨ`{UY @Zh%#3C9ëO ?~c`fZv忿@xy8΂@,aÄLýWv `dГg+"L[0WYQ#U6a+ـ*fx |cgg`6'A^׿@Weg^| aݹo@WBԟ?P 8/ .cccp5g߀p5ax^9L Z0i131/0Y<б0⅀r _ `exA_ 'F 0@gbx L?cG5 P ~ 40CҤI{9g~8HL &koq>d< js}=u飹Ǐ8ܝ~q7vՑW5ogN;Nց>~H\'x$#M*Xk1b׎׸)Q] vʋ? /wi5}wĕcys<0k/ d_^'1@ӳxu҃77MPRN&4kd[?JudZ v/1;tF,Fa02yh7 # ;좹Ph ]HDrs:>̆ޕfq .nzc4 u F,{/>AmpWT{`v^rm/KC忁-"VVr::uXxv4A Ը8-|-yRkUiq:<6vo\BpRk`6\ba}UŦ˝jmG6m `zMKhmpR &Z0"tGpS5l64 mFpȖ93q|1B!b*'XV?"K\#E@7!n5"Tih2@k-8BS/07FR @!lS=13Ac ;>1b)CDIP݅2۱"OƄ#_;^'Z Zɲf@ұ4O64@TD\>S̃,%La#Mch@=LD)M+| bq# w$Pݛb#Y|R ei{7r Ww3!ՑBG[k婢$[jaRerrd0&)saY]Yȿ_4n#tfs8#Ϧxh { KB ֌[ PTY{7 pk[_dr:/>x5scFfC lPQܮ!//Xyr"u\. p8wOoN(%FNM]M't"1}lZ?ŃAר}\811ZlVKdI!%tCOŀŀ€\4[00GյYX GW3#ܸmNO+9KJ4Z.lWw`!D^˜0p$dגumTx~&Y?b Y juXoKmtzWdo¶AX,hid/B[)wQo!@&RB7M ̶@muc 0^nhɍfn]Ͽ70Q%nbm0qU֒Tګ3tZYgULҎqѭifYW]qP{h囌囏 ^Z+/_V`jjʺjM}f><<-zf]UѰu"CJ|0oeLNZD:!H(ӓuL:|AOx\^= 47.%Ut÷yh4V dm%ql\oz8v(˿rl&'J#m#'iG/ecK`LLmmB`<{n 255% I:$(dSV ǁu&/? ,뻾 ph"Sh)Lԑ7w:|u?$B`IENDB`mcu8051ide-1.4.7/icons/22x22/memory_C.png0000644000175000017500000000210012067167647020242 0ustar milleniummilleniumPNG  IHDRĴl;sRGBbKGD pHYs  tIME : IDAT8ՕMlTU{;3L)L4"Q4*VmԠWF*q1*…& h0. XŒ`Ј)`;c `mOm;0-ܙs? !ĺ]{{LQv l hB@z XS xv>Un#'HL%L&+.Gߗ[qn9{$c2!uŶ9snHG>__/wʴi~fp]0J j;p&9#u+.tם( ض(!ֿ@ =@-xOsV܇_B:ecai:xwNU_KGG{C7mOps̨\p"I.*dT*LS:h$M*7gxJ' },~~ ( TQL bY63gr: d`ɝzk~|M*i9[4L))+rՃT7l`WΕ"E!leٓ,}-J r2ҊJUU9a165k%zrة]t:Ps' rt+^}?1x:JVϳdj ꩻMOq)^ Kܴ+cyiAdAf<8/jʦ1mY3W{M300 $K8qVZ*M-75oBC {Rqߐ0a6nyI$ttDF:ܲ*y!]tUh;w؈HX;;wnU[vl_l]LA?Q1uBܱةRzIENDB`mcu8051ide-1.4.7/icons/22x22/1downarrow.png0000644000175000017500000000132212067167647020600 0ustar milleniummilleniumPNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<dIDATxb?-@11   @j ? @@!G {@bG\ADS"W~ gO *3P!8Y.=@,@g3y[a.Vʌg`6@ 3mV q $8W l~-19ĝ@ Rgٸ1xjs327@=$;CW+>@`b7`$͆a`e: л^00fi  F"q09{3İ@E. 43@~ #f47w&vvH 4˂:S.#h-k8w@1bħ+E xâ98Pf4?ϰ Ĉ+湤.g1PNM``w}~:3 Df"hcڭ6!(խnd/03ʕ۲"ZѲnʆ}͞X13#k /dKnp+e?X{!򂏒9qϞɄ8c'©23NX*-TJɉP`9߻ @/_7ičtGW:G {7 Vvὠf{k\-X-0rnKMHͨכlq $1˱OVsxfA jıj!<~źPL< "({!,Rm5WX?tWL/{IKQuۍDc؃&YҁF #QӔ%zsWm8" << b("Γ U ud>Nnu ,P-VjNT1봜$6pKg?yX3VcIENDB`mcu8051ide-1.4.7/icons/22x22/fsview.png0000644000175000017500000000166612067167647020013 0ustar milleniummilleniumPNG  IHDRĴl;bKGDC pHYs KY tIME 1!==GCIDAT8ՓOh\UIB .e7рHu jJBE a즋 7.0J6uN+c TJDj)Mqbf^wo\̿ Iܹ޹|GT|bqZfybh;%*.^b"_x;Zz^>|G-(-Tl|/ 8"v{-(cmmfYk4ߎ+Z<.*!&$|Ly n9^UEUI)aavv!XSP-*>H)V4>8HDRD˘"ΠO.ƘQ}jZ?7  !< ,Ȳld 0umlc`Tg3Gä.nh4/8/HT<~y>Ͳlbi+Ll3S0SsGJϾ\e*jiVy6 Bp8!xAM(UޥwR҂3ln\j>~IE,ν.>}"+OW'pO,̽R|8 [[dݜ* E%y,t,3`FGtXۿ߿K_~2FSjÉ#8=tN qX;5֠6NT!I"I1D3XoSc 6Ix0M1a8sxhjPׇtxpK Nj' Awo:tlS*j#'~k|J7ޮ=1TʧO/MuK˷w~wS*?qiƺIENDB`mcu8051ide-1.4.7/icons/22x22/view_icon.png0000644000175000017500000000134612067167647020465 0ustar milleniummilleniumPNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<xIDATxb?-@XM{69 ~ 4 R? ~}Z@, Cݍ~b`O ߡ ~= 4?ĥ'а_ 47? FbC(@,|%@ FfFпȂ@/,^@, rGa0ϰ@`K?"l~ПӐ\|j ÿdU a( GՃAkP>eSq9 Xxpvjj*wA,Z4&<<#(a{:Ⰴ- &Be6lT?kP '7aP k5 .FS̡D0-: X y3 A" A>@ auυEEC52fݺp5ޡHA K? !+'E 2vw {; T@1_$ h !A጗[O3#<bb0ǚ’BLIENDB`mcu8051ide-1.4.7/icons/22x22/_chardevice.png0000644000175000017500000000217612067167647020741 0ustar milleniummilleniumPNG  IHDRĴl;sRGBbKGD pHYs  tIME5:-IDAT8˭kE?;N$KcTZJӦ J%["hmRADPTj bP⏀<}(6FmR$fD033GtwwݱcDZ"Czղ,lo=z􍉉ޓ1X\5޽+Wظ(ũ'NpA<#-q)H.^8AbMAPT*.e%Ŗe4bb!ry~<11AX$ɰ"} CZaxxz֋۶8B$3XJիW)Jr9mZk8&I$ann$I0Ɛ$ɝCq>Zk}cL!AEJ)h*muq]|>_Y۶}8")R2??_9WJ)Rr92 V1Z!0 etWK)QJfQJUT yAXӲ)Cllnqir }0DJmەL!4.jkdƶ9{fͭٹs'J)U! њṛǿcil%9d%}}}>}omm]u[YEZj Qq]fE4xQ۳:蓗8+m[kmMCC=ZkfcwRJ?qu͒:pfj˯2 {wCҩ~2~gAx9x?vݷL_A<":|r.iǭrC}=\:_ g̪K3D g{DOi^͋vu^ {$ Gq]L9PS(ҵW<*nG|.9(&`QDCD<ճG@ ޯ޴6D6ժMkK,*%}\67C7^RәVGR`0;40[KFf\IENDB`mcu8051ide-1.4.7/icons/22x22/1uparrow.png0000644000175000017500000000142312067167647020257 0ustar milleniummilleniumPNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@11   @:7^Uw 0 P?Ó?ŁXΠP1یaG<'s1833`\\ {p6n#WSZ{VϿF6P 632aRC5_͎ǭ2ܟ3p|6 % v G70N<{"gOu@M ʛ00?mF⫯ oD8O6z#@1õ ̼ ̬x= 4o ^=c`:o&#0hG,HS:30؀pV}.DyXSFQbx ߟ޽ F鿾~g~# 6z`RQ2 "S@@Af1@`2kIENDB`mcu8051ide-1.4.7/icons/22x22/exit.png0000644000175000017500000000230512067167647017450 0ustar milleniummilleniumPNG  IHDRĴl;sBIT|dtEXtSoftwarewww.inkscape.org<WIDAT8OTW;w`fbCC,,(X56qa⊅ѥ WKW$…[dƄQ:RT|̽3tq6&'My~%Ե]3d)eVTJ++#U+Ե+'O^.a)RJ`?ZWgObu8F.$z{?՟@!2RUωt8ΐeIi. r3юMMD 6>~dciܫWa pR*%mf6gۉ4Kǘsω T*E1 %XD,c(e2b;aK {ϞQYZ"c57}`wi,DA$}9 r {Zb1_bׯyN<4Df36hc_B(N?c7n>;Kc<:yu(L<{z̽{t9»F\J)NXh?+i,)1ZY!RlܺDyML`yCB 9v oa۷>Cñ9I$=B/>:ҝ;BJ!`ym''tj\[EMMQa6eelVBl6T.Ykb&sA 9{437zivyBa\M-._]B|0Ɣ҈6D,XUIENDB`mcu8051ide-1.4.7/icons/22x22/contents.png0000644000175000017500000000242412067167647020336 0ustar milleniummilleniumPNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@:qĪ &I0T@Hsb  & 0z?WsI;Y78V=tqk=;  64y@7ʰck_?-ƀw?^md7?33 r\,уf(訋0H Idqb_<JϾ/c`cfPS2؏0Š$) ;4/4/ -k "D\?s%|[E `-}M!@👁 " /=adxKKN((K8~!a篿2],\`-΀?@cP`v-4? ;'s> ĻqK{K90 0Ct^v~0) 2}HWLzcL=@ ߂10sq0F C` 3\YNƽw ʲ `p2_x$J? ; wC]HZA՛ \, a *Ą.x9Ex"/0;_(L *k@*А N_{C/bܥ ą &:b`(0t b,<** wgky5sC?çoP} {W.~ǯm.\aÑD=p&fF?] `KXX,~3ɂ 0/ؓ&H1<~A~](p |b8t9?vVy@=!ٙx >?  3ypKK{nm - FeQj Z8Y~/_2s3a;<<T1܉`T E o 33|ʰ s`ǰhtH*۬ y^C@KCG^z'2܈~K@1Ҫ20# uIENDB`mcu8051ide-1.4.7/icons/22x22/filesave.png0000644000175000017500000000146512067167647020303 0ustar milleniummilleniumPNG  IHDRĴl;bKGD pHYs  ~tIME/IDATxՔ=Eٝ5w>2?1"uEbH@ A!sB2ddɾw3U3;k;vK O[6?Q]OT3zBvĤd)f,jnq9wb7>_ẞʵKPq>~ &p]>}޺_ᔔ. հryzm/#&a{U _•O1)8w*,1z·x_dҳu/,,?,͔b4:Jq;x͌t!bfۈ{+;e2}Ƚ1bH4˖:p|\{?e8v3fhK%QIENDB`mcu8051ide-1.4.7/icons/22x22/__blockdevice.png0000644000175000017500000001006412067167647021250 0ustar milleniummilleniumPNG  IHDRĴl; pHYs   OiCCPPhotoshop ICC profilexڝSgTS=BKKoR RB&*! J!QEEȠQ, !{kּ> H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧc3-gAMA|Q cHRMz%u0`:o_FOIDATxڬK\GթsN{۞v|qȎLȆB%VYEbV* qA !"@pIˌ3qLNwWzY|Um~xp3f K͔K //d\&t{˭cVl;?}BRLkךYXjJ*:"=+K)q1ޝ_>@x)+0v>&3YzGMJ]M\#=' H;8~IU'?~tJGpDBɦ *# LȇӘz)R'ҡ~W$PVSއ1T+!uY[K`;?^/=,%z _:]7DH#q4U)֪D7'8Ktz[ݱIL[MLOvlܼVQ5 7nҸV\/;6 A%>H!mʱMTGXKa@P|xַ/,qgd@ÌDPjU6:(a3ׯtY"jrtl7OKWul]˹xr+۱.y|'2võ̰,cc:us$鹗WnzI|#wHW:Grn֓53YO>b|P>_ Gg#bTR2=vtV\A"T>Ňf?6@U  3fB1[bؠ)wiGf9'+):>6fgRm1J LHL,Ni6YAZ8ڨAy5˨M݃fw*1')h o(#Za(RTӍe梼~\MZ=7;Zd|9yejѩV:i`-*}T|`4*+3ٛNԯ[Vl?O Ҿ N2F`N!P_Φ+j7o I .v/{Usr$nROm0$%9ڈJ7Oڿm3rvqv^5yxՁU+}{}Ad3P^h)q;rV_[ F0}~P˲voz޿x,^yw†EDظ$=*ˍс> iIBE a 1A0 ҹJג<{ HNfIP%#Jb ԨjP+u"A#B)J">DW ejIENDB`mcu8051ide-1.4.7/icons/22x22/back.png0000644000175000017500000000250412067167647017400 0ustar milleniummilleniumPNG  IHDRĴl;bKGD pHYs ,tIME 4ٸIDATxڍۋ\U{Oթ[Wv3t0J 3 C-,B<"/ DP$q=L NtWwUr.{IO4`}ǷYk)~JG $")@]6]wa'A(L;#M`^Ò{R? .y9NMx|szͲjFSFoT*;A:OdٷCx$opTN吓!__'M{ÓwΏ|z>sqt}JhDeNõLVj*˾o깲3 >6yw[1榓|tζ-Q$[ ٔQa fsp{rەK* |O=R$i݈\DU8{KԈ9=H!-=mU,@Y =WuA9)t"2!͞el?hvő= K}(@'|eɺwa%*~ieԝ 5;|rv_~1x_\+PI4r ll|.!lo8p}X\ 1 $i[ƶk<59R]xΆs߃7#cmQd6FILҍԭr^nvnUߏK 򗱴g,2\Zxl[XeK2`,B^Hڄծ8Yw-?$*']r!i?I&i/$mh&U!7o?٧>~9jU~Uz(;;*P$0 bk#v|MF' #$\Arym֙‰\BϔL.3ݏf)֬]PoGxsƁV-Wg&sNj`Rěj*ʩF]fεNjtt#]\ Db=Nl2_8qZT*/ȑ#G4>_GkUCۚr2^t44zA+3*qj%Hr^ns@T*{/{hRhIENDB`mcu8051ide-1.4.7/icons/22x22/view_detailed.png0000644000175000017500000000127112067167647021305 0ustar milleniummilleniumPNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<KIDATxb?-@XM{69 ~ 4 R? ~}Z@, Cݍ~b`O ߡ ~= 4?ĥ'а_ 7? FbC(@,|%@ FfFпȂ@/,^@, rGa0ϰ@1*p c ?TLE8#Cc5g` Rk A4@ ~0]PP0q 5(Ę]X0#e "XCa| @ I#(6oHL CNn,9 1Pc᠀: X1HiI |sPbp`# y0--%|Fq` /DB. `l?h@e/iJBX @ ;@1Ҫ &_8NIENDB`mcu8051ide-1.4.7/icons/22x22/hd44780.png0000644000175000017500000000223012067167647017476 0ustar milleniummilleniumPNG  IHDRj PLTE3f3333f333ff3fffff3f3f̙3f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙333333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffffff3fffffff3fff̙ffff3fffff3f̙3333f33̙3ff3ffff̙f3f̙3f̙̙3f̙3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3fez|tRNSəj pHYs D2IDATc H5k׬/ 6 @0@EDHzz;qa@',IENDB`mcu8051ide-1.4.7/icons/22x22/_kcmdf.png0000644000175000017500000000206612067167647017726 0ustar milleniummilleniumPNG  IHDRĴl; pHYs  gAMA|Q cHRMz%u0`:o_FIDATx[h\Esn6$KiL5XP[)Z,*J)hP`_AEMDmhDmLkmTZRҔCk%sΞ5K``f~͟o8$VIV"LH`9ǐ!@KFy8u6M4Vmriɯ_͕mu.KWsls-~fno`[=ܶ!\XvAˢ M4t=\י䙹[)mg]x spv{['  GZoܰ}ѻmZՍ\rp,"`{hT0t괏r|^qﱧ|H<|4kb1ǧMȕ*Sl2 8w 4 . `7oA9ɇ{H<$~"u\@拯ӟ|$U$/FϢ9A?cRL/1斌SPWP dI,9V"A@UZa}s܉T jIba*c2,^.reR ='KNjM2N" a˓f:\y*=ɉp@d{V+A@Ĩj4~Me1 NH2$/%pR=sj1~q0Y C} 1c03Wگ|<F|ZHL'fZ;LIf%ɞĂbka3l_bZjtѦG@V$H5|o<nIENDB`mcu8051ide-1.4.7/icons/22x22/memory.png0000644000175000017500000000170012067167647020005 0ustar milleniummilleniumPNG  IHDRĴl;IDAT8ŕoHU?GΩfFۘsl5Jbb w#j#mD@AQtzө0NyyE+uH$p>9|""GB+e%=iIv*n11>lߗTvRY3YDꕑ12 C4MwoT}<8g6ܔ,+;wnj`'pfSRVA2Z+~;0 `0a,EMә%{P'SSԿ{xU5pd STyպy]7PQ1zb(l!jxኈ)o1ьc+lܼ9h4|"'{W[}\0e?Mٱenf @?D8'LjfJwomť4k2Do'Uo Focs8,$@P(J^̰bI=W‘Eu; /TKovVDT Ǔ,,q{Jed8/XgQݗ☝V2 /1uE$t+T`0LY6j()yx<?2@M{vL }`gE9 68WNv?bk1˱X̸SLfff$:nps[wrx 9=~ uQ MlFn%}|}yLNΡ*2s?(Taz$c/b+37Y 16p"!OIx8GR[WGsQK#R$[cW1;.ؿl~_qyy9f\HDtkܼru}@3zzEfu\X T5y H]A2U}?7L&jva0H$H4|3AJp199|@Hm珊Esh$Bq$Ybf5c~8"~y[$ֿp%_!w&f}Ab8, *(JYbyx=?*T461“7_L6@BQͅDTB(d,t]ΝK8V i bpj5lVD" c\NN' nŒfer|{p9ٵ]̀aP.z]eӊ2jSTWW=ar+4R9Kem9OdG԰ٙj%ݜ 0r^qMN(́Ք<&4(EO<'U *$0Füg%mu!HFC$R%yBY]CӟXࡁ^y1CaekSTX O^R)Xj!ݽ,٩<9SbL!GĈ 3,F0+7T3IlpX"61"H _qW,d ėrIKst.ښAdp&+g]RәY2EE44432PuoJEzg`̉j- -b8o׿M]9La.+-%Mȧg3YះuAxEK i<:ŹPcu*@~(  ]o0 ~y*s7g%9%(3H*@C`-pn VH@ A1 jPA3hA'8΃Kn`Lg` a!2D!H҇ dAP B Byf*z: @]h ~L CUp΅ p%;56< ?" GxG iE>&2 oQEGlQP UFFuzQ7QcYG4G۠t]nB/o'Я1 xb"1I>Lf3bX} *QYvGĩp( &q x)&gsF|7:~@&h!$&B%pH$D.q#xx8F|K!\H$!i.%L";r3EHK-AFCbH$^RSIrdd 3Rx)-))zR#RsiSiT#Wd2Z2n2l2d)EBaQ6S))T UEMSPgeedɆfȞ!4--VJ;N g%K-sɵݖ{'OwO%)P_RRۥEK/+))U<د8䡔TtAiF쨜\|FyZbU)W9.Kw+YUEUOUjꂚZZZCu:C=^\G}VCEO#OE&^WOs^K[+\kV֔vv[]n>z^^u}XROm`m3h01$:fь|:kG23hbabhrT4ߴw3=3Y-s.q_vǂbgբ⃥%߲rJ*֪jAe0JOY6rvvtXLǎl&I']$NϝM.6.\ι"En2nnn[g=,=t٪E2}4\j5loDŽǞ~q=''Z^utv&vvEv >mяN9-{ LOgsΝK?7s>xOL n\x }N}g/]>uɫ,u[dS@u]7ot.<30tKn]p;;SwSyoEV߽$k@aEVW@-^m#P E'F?@1̜nk ͞~ ='2 XO E1頤$_0 ϟ@ faѱl8n! _a`/BPOO+  Z 011 ƿ~O_,  >@ .))2fffK@雠Ĭgn ""Π*r߿Q0Obd}^b7&o{tE=>ym߿bx!L8k? /k7P FLmm S&AY7VVS~e`UGcp4)b1bbj qq!N`G ??sdA7GV .n]0 &4BH0(bqq~ad{ #g~wtn6 ɝkJekH`fcf`D_ygܫ"@ J_p\r7 1  &b Ԏ'3]x(  dΠ_Dli?ap"030|_~20÷ XY)Ei@bpk;(!٘1tldp 5x[LN%›+o``[BKAX]dx )e:CAe=~? }ibŚ S+FIENDB`mcu8051ide-1.4.7/icons/22x22/goto.png0000644000175000017500000000160012067167647017444 0ustar milleniummilleniumPNG  IHDRĴl;bKGD pHYs  @AtIME ^pA IDATxڥOhGƿ7][""jRL1mS[|) 9K [pzH$@!S{+!-)=^B1!>$XXڑxwvg'D,$2.߼}o )"pXDccL=7"ZP?xXhrrW84J)IcmрSJgY@o0c8;@{"IU۶Wr]{{{RTDt4M9L$zw4 CDiZVeY4 yaSJ=#|?4K?cs>`D,n }-~[^ᤒyuc ile\P(~!DCi+0 I\5TcH)ד$9y^u]9n'B[OeU$Yi۾a, No6_qثj8B߄Ap/B; Q5.o08߮iZHdžE,,:R((J0E/ X:YIENDB`mcu8051ide-1.4.7/icons/22x22/gear.png0000644000175000017500000000260012067167647017413 0ustar milleniummilleniumPNG  IHDRĴl;bKGD pHYs  ~tIME 7t\G IDATxڝYlTUƿsνwtfJ+T("HF7LDEb" ƨQF4Q!eQC ,M ;s%H%pޜSHR'6A 26Ž/Db96Y' ڵ}C:;ʌ/[N},~[i3M}2:#€*2[Ammu ZwQ5^qK-&|s9 Cp[V S(C8^1ly.o:}3X!q] 0h6G=$Kr6<ھ UcYpWj-=jzՄp H wz*{6 H&T%s%)ƄJ()x -!:Ӑ  Dd?d٩1/SPB$zli|;cs߮o0gZ3Z* Ց>me/8ɢK $'@qvQ P@^s-D7YP8` X/ Wyf޻~]U7iYdLhe*L3YQ裐 hI Ց():74Gǵi NKzb?5D>nyᛚ"ۦyTWlX9 ^II_Mȗ[}`э#]ݦs3v UqB :֨nICO6㾳I0"}qqMj*/챬S@`QWmԨt"sAAp|Q0|Jʕ2g$KёlEc){x?x s4_UӐEH{~jrK4FKZR%{c_m{1JvdIz2v}?O%uW )+k1˚`p }}t+(8ް+[ Lz[&5H9Dα b&ĉ Ɩ͋sK]\9q@USN4yEy-+|4="LqW "F\ &u5kGB_{8 @d#S=i<\D$FfDz&#KMw9\P$Q)a̭l`fR'hb9ŋHae`<7r-c/MSK̭laMI* m .Onx}-)J+'3t=f =LPfua~ !ٹܸ?ze"͒H#V[zBbG S/\1vx+TXOR3g!toy=!~lv|ͬCbf*j4+^ܼroj=ulMCm\?y\4ܩ IENDB`mcu8051ide-1.4.7/icons/22x22/undo.png0000644000175000017500000000125312067167647017445 0ustar milleniummilleniumPNG  IHDRĴl;bKGD pHYs  ~tIME 7"8IDATx=hawIsicZ$"MѡAD.{GRqs9(%.nP\[cl.܇CJҦZy}^<#D)= .`J%TˉrbP'Og |WJc\85l;Fs ĘS*s`#w\ aqL'ĽKGu$lN'ήmUB8W%sU-8pq1}O n|+c%_|+ -R.* P6dff?ñ={HbD@(MZyHvQ71W2l2BO8$w}OIEo3’efd(pi£4m'Zw"P^96h Vd #7;Fi9n%E.A{w+khUr_+`0"{㙦KHf0Lv)Vm+EȮɭSO1̾KhXxl/^5t0A"S!/IENDB`mcu8051ide-1.4.7/icons/22x22/resume.png0000644000175000017500000000152612067167647020003 0ustar milleniummilleniumPNG  IHDRĴl;bKGD pHYs ۻtIME"[^"IDATx?hPǿ/w+WmQCt`q" ":9R'E BQC)TA^%MryI}K ?ʽԹr$i;g;)R)gq~KϽ?| %np: 1~Wggq)&$H*Bnd#-8|(qXGܕv 5=rˀ ,ZRbnBӤ_{^'~RKV zÃCn聶lh*auʼnEv E5!6"AoqHRHfNz@v˦Qȍ#2gnR `x2,7^0>\+WP| zH2An('=2E`}//@#0Ey6tW/r=h I3_/R-=/GHC$TIM' D('#quR-k`ʧ IENDB`mcu8051ide-1.4.7/icons/22x22/help.png0000644000175000017500000000224212067167647017427 0ustar milleniummilleniumPNG  IHDRĴl;bKGD pHYs  #utIME 0% /IDATxڕMlTU)SH)iR@D DՄ& *1n`+bc T7&kS5A)!"R[;BiL3yxm%9=9Q9zZ|:ưϫqqQg4zH iq1]P!yRڌSfԎ|P*[ܚRg%=%jDѫGp֜i2Ǟ)j1FRwK&/pvcUyx%}`}MfL>a#+3ca "4s.![s>q_yF!,#]z\|WPvEx~oG7&'DZ%ӫÅm&{x++{*SҾ>nh%*d=j{&nDZн5O FX/e=V&gY'p3BM=rJ:l 'Bw KAӫXI/}p@Żf`@}&͵@L`6  6 b߿203sb-0s2oXvvV8 I rϟ?lVVf?A@ kDt\/f! a0@z߯D 2?`0(e\ ?e3@ hZ|&_1N "Ԑ] e-/p` [@, emF|.xQ 1!n8@I%yAqMIENDB`mcu8051ide-1.4.7/icons/22x22/history.png0000644000175000017500000000275312067167647020207 0ustar milleniummilleniumPNG  IHDRĴl; pHYs  #ugAMA|Q cHRMz%u0`:o_FaIDATxbd (l?{ɶ#. o@ Ca {O|}"6aZ>]_WYACEAUO Ooax|>YϿQ|@(% @Z!Z!@WdY|~gfX!yGt O3Дn(Ơ# 6/P   b B  ?+ߟ@p 3xD2 01123* 2p888!w?_m@`Uu C+Pk  K",^<{` 𒟗+v8 @ f6 h2B+/0y:2Ι× ?j(0KRL>L_0XoQ-dhE B >32x᧟ Z$7d&@(EnSU!~ `Z4 fn^ LXMق/v(e.+X$@L`0%~AAN+1l~@@2|.&5Pō <@ۛnn< "- `0 ('/?02p2|u5ŷ=``g0aÎtt7o }bf rt1(q3|-ފh@uJ j M 0p01 2Gav^ p(xzo'`dζ 9A4"Fo;3 +6`D 00O;ǰ~0 8U]ɇ@C dh+#/#| \l@q&0@|eyq@@A R`xv8!ek˸XAj2n" /^ς5ӎ0zN .f63 5 \,W =~}.+G&Ȱ}ǟ2\ " ??`h{0nө@E߃//-et1( gy)T\ pVM\@ в?rT`?@c",L@1S2 >0^@w6`BaIENDB`mcu8051ide-1.4.7/icons/22x22/bookmark.png0000644000175000017500000000174412067167647020312 0ustar milleniummilleniumPNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<vIDATxb` (ga>E3_AI  &"P!1 2?x6{G@ RǠ|Q4(FAg紱'W  *V G@Ea󠰴APN=-PWiS>~ A4?20H]r<;/U| L ?X:gß;ݺ'?3|ûA0v`-a`tqh$e~0\7DſF`g``@33fD w 0p`T p`Nd@1Yy~7H'snoc? 0i(+2.h4@{?_d`ÿ @acdPBƃKE7Gn3`eE # Ŀ!j@A4 j(OIK ُ!pbZV@)   iY1!`F@9b`gS{@>p?G- F 8>xp 0~~ g#Hnc ɨQclaxЊzYexqAY  ߁IXJ(21L7 =8?UIENDB`mcu8051ide-1.4.7/icons/22x22/kaboodleloop.png0000644000175000017500000000225712067167647021157 0ustar milleniummilleniumPNG  IHDRĴl; pHYs  gAMA|Q cHRMz%u0`:o_F%IDATxڴU[lE=_v[nmKVD. AcQ|#A1Lh_/cPQrkqWj-v3}>-kA _2O͙3;#w,Oﻝ^ 8#>ϡy*:=mb8ޓp.K03lee]d*k| \, >S`w Kg߁m}@9Št`W!0tá4a | FR[&Z/I6z( vpAgXIDATH=0BrFxX^@-51?`_8L_&=@)1(eY`iBs\yzkyU`Do۶m^-c1uuɦi(˲,KLAQEQzOĪaa03HV¶[D%e\686MeYHPwj ]78yMWm8Mq~qI$:fJi?vR r~/]v}ot K)?f?\sZd6?AM[=Ͼn`uS$P]uG~/3#aסq|$v࿦og"O4IENDB`mcu8051ide-1.4.7/icons/22x22/gear2_play.png0000644000175000017500000000230212067167647020521 0ustar milleniummilleniumPNG  IHDRw=sRGBbKGD pHYs  tIME&BIDATHǭMlTU羯i$DÂIHMHHX+[$!$0cB#%D\H)).@J&XB1 qcX ttt^s`Yo4̎+uz.;tiICp!jeBQXbq<"̣4N,E21WaTDW4"KY)}'/<@1 @K#V+wx%,T;"bGb1΅$B^-$Ϡ`{^%+%\yx43Oo$PFbH8G B!v2?\1Bs1G1#]#LpmŢBa D"Snf2+rcH@gSķq!>"Cd"D vPDLWl""9= d+=Ǯa"$U% |7JhcШV"%| LpTU;]?v@K|(.͆ !r|GwɑMPr^|牪pD\(-2V뀪rG"q%u"H1E~b/p"KTe?{59T@VC68J`úb/Ogf=㴵Oв l"SSK $P[Ibjkwcg"Xhk@y$AD2Kl]iIΑ)0zӯ1؇IIǖr3q9p eUAަיxIux%Eagu7O0ek,ޡKX6o!"6c>8sAP;4G^n_s!G>CҊgz"od )~;D¿'&={޼ORϱ;o^U/=A5X2kw"1ۀrIIENDB`mcu8051ide-1.4.7/icons/22x22/disasm.png0000644000175000017500000000205512067167647017761 0ustar milleniummilleniumPNG  IHDR$xbKGD X pHYsHHFk> vpAgXIDATHǵV=kQ=cDe *CY(H"Zҙ"6iM@kEItkއ70>sϻ2`{{ws Z\n7ϵsc,̻s֭ޕYju~n;wpkύsonnnmADUސ3XX/wDJڵ aBJ)9%*cB####i LLOMU' B@gNN< ^:==xiwv޿ѹ+W.^NHk9?|9eD ah,-uދJ%^Ax{ƼǍ1˗Fh6N`￱Fq%߼u09=TP.W u D,k}zm pn}}q#`iU4@h,Cs.*(BI$D㻻ccY;776,,-,/_Yi;וZv[k ˼';_1) *TgRߗ/1Fޝ;ql./˚R !Z(p*IR~ r! RmMݻ ,"BIIفҝEӤcTU:UP^}sǘ{,S0Yp\ԏ0 sy4y\kV8@ H;#95C<,RcP }?B8cmp.OYetAg5=&e Bx0Y-aL|Kk*^.H#|$ w } iN~*%LgϞ?{LIENDB`mcu8051ide-1.4.7/icons/22x22/window_nofullscreen.png0000644000175000017500000000163712067167647022574 0ustar milleniummilleniumPNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<1IDATxb?-@XM{69 ~ 4 R? ~}Z@, Cݍ~b`O ߡ ~= 4?ĥ'а_ 7? FbC(@,|%@ FfFпȂ@/,^@, rGa0ϰ@1!_r6?g1G-D~@ g%P?`i _b-÷@o5ZW1Y(R@(A}Go ?k(JJϲ[Hrb}dhhG$aTE X]̵ pi<,."PYM#:bA HU1 ̯3pU#d(sxPf`c`dl(X-T {B$Eyذx5102010 s0B & (%!7CP\(ucF1/0B `NVl#Xy#43/0,A 3Pb?`X0 +Ɔ{?~3`b4_IXK?!4"8HCÙDo=@F BIENDB`mcu8051ide-1.4.7/icons/22x22/tex.png0000644000175000017500000000233712067167647017304 0ustar milleniummilleniumPNG  IHDRĴl; pHYs  gAMA|Q cHRMz%u0`:o_FUIDATxb?Ì33Pddd0 d>3Ͽ ~a/_@>P/Dw_21m1aQ"!o2Bv`:{hC|-fJ`GX l=\@pݴ\HMc4z@K ` ?dcX4b@ #  d?$z:à@,D Ȑ@3 d r1 ,"W @(aad alи 2/+++\@ ^v+ / * *E,@֝xк)C(CC ⬯|j P`e1be8v='Y3LRO@W=>/2~p' ̏~F \ HJ00q>eAXǂ!]7>1TJ0*\ y k*5 .2L˰TA׎AHXn0@1a C`eafbef4#C0U~1(1x 0>B1 bL ߀aw Nv&n֟ ߿|&3A[$@XfJrϰ*Go  201H3|a NZ j\`pYۏ?@ f \d%?effRaa8'Û g2af?$(-! IH P4#!Ł!֜70XAe+;'ÜRӧ?b?7 AzĀf T3b2PB0>`ei *4G 0C-B`jbKA@  dah[r%P}  T4TH&`+о@IENDB`mcu8051ide-1.4.7/icons/22x22/memory_P.png0000644000175000017500000000204412067167647020266 0ustar milleniummilleniumPNG  IHDRĴl;sRGBbKGD pHYs  tIME ;&q9IDAT8ML\e{:0XQFJ#EK4`\Sm\ؘ&.\hEMmj\.j,)I R Rܙ3s#6v;''OĽkE(@'f @|=~দ]K[r]+>q]o|" B/|/BLbb*P'.~ɡiMx@x%K6a8, 4-fS&CczaP5@ ˲PZU$u\{8w洘Xn'ZcVN Q B@ !,SJ`` @m.H9<^Wpd2,D" @eX'/M(n U=K闸 . PhUՈd2:yɍl)t[m`¥㵔oqW:qy<8]iE';D$#7lj#ɮgvP^w=3=p{1,-m/u`;BȔiToR__Moxѕ! ܷV_,sAvor{ы\ HTVn4Mb1@` SQ(0 e=ȇu ۪'%e(+pde{+`qzYۉag||aX=աI6x{}^0F^vL"FZ7=DCB>=<EDB=<;FEC<;:555,$IENDB`mcu8051ide-1.4.7/icons/22x22/chardevice.png0000644000175000017500000000231512067167647020575 0ustar milleniummilleniumPNG  IHDRĴl; pHYs  gAMA|Q cHRMz%u0`:o_FCIDATxԕ[lTUϜ3C -joRX- BH@C4ꃉ"@|(BBj5 "Rj[*m^3\9{P(%bWחmNHrt=Hהl+1U'!1G^q=x}fd{~* 5G૏/ڊHB1H!RR'9RJjW͘v8H*2ؤ)$"x< !x5,W3_9rP+i i0>bt1a8k&+0%k~vtglG)DhmG"x<RH)0 (e`xkF6N.vvd4aLxJ)ס4dW^LYy9iy1- ˲Hp~1k^~P OZ`})O{Lk/ՆI8U.F bZ&2-&VՏw<$W9ʵ*mض륧GAB!(d;!TBF"] \9hQŅ*WHL^dg)))!ulF2[j+9rLhaerunsթKKxd։xjWa¶TT`̭d$c2gCz+}[) B>wV֔Ou߫ z |1 0(q XGo2 a_K2`/Z  },S? b? d؏_( ۤ`@E/hZ忒3BhEp6,3z iU@!1IENDB`mcu8051ide-1.4.7/icons/22x22/forward.png0000644000175000017500000000243712067167647020151 0ustar milleniummilleniumPNG  IHDRĴl;bKGD pHYs ,tIME 'VnIDATxڍk\E?4IhMZ[FRPQUA "*U" W b5X4mif{􇶶/3g>s93l^MlkSvnVt<~E<0"Ltd?GO/j$[CW_|fGxw*"A+A&wݞ;ٶa]Dv|\H](2^PA<=:Vd ¶6$Rpo1?-ӡr\_un@ў!Tw擃%)hJ:ܻ1ɑ5rkFKsn&웉7̄*6rψ,DZHgV:woH%%CZOGG55$Z˲s"$]ޝ|vloRkŭ5Q,j!9AeH'$J),RRVtw;nw/,BƓ_=s<@DD$ G"cS1ak$I%I$i@Axˌh}EQ "Al1iu]7n8  8F{dNQ& !`>ݧ*TUjBqzVJiN !ViM4Ȳ0 aY֩J[#"3nccz϶m0 &*%ũTT*VeY$IJf2'& @pM|~Iggl6 !_eyKl&{(!^`* BV ð8>>~lxxxӾ;D[KDDt/gOgۀMWpk(/' @,C,uuAc_D CH,KKt6__7]qBia8W%2ǹ8k+瘄HOכ-(JN5Z ښsd-!&}aY:qˎ|STB0eA @5o۟|/ L;tM:qcQؽYeIENDB`mcu8051ide-1.4.7/icons/22x22/history2.png0000644000175000017500000000254012067167647020263 0ustar milleniummilleniumPNG  IHDRĴl;sRGBbKGD pHYs  #utIME 6IDAT8ˍylUe(Hh+b3*`ր5j/bVDHTGK[Gy캱1_23y/3e F阑 T7w'ϷFF1r-UR -URNrK =zVAx,R1)B#h)@qȦjF^DI\7zgQpQlFs޺ '@̬(/fd?w}3AgZQЬ29g[x>f~oJu9/EHq|\U= !_cwk*wzyx\fдf1c)΢yhUBrhהQ0-r tMqXfd_K7S4k̓]tpae@8ݻ7RE(#Hip- Xٚikՙeuz#J٠`ҬR+}hRQX_ٱ! R w1x:I8Rbkvm{ 1HQ$'t:$}*֭[ǮoMu\vJfl_7jCGL݌ILׁTӧYԵçoHTP6<*~aگg|)g۩\>Z0ӿi;#ۂ%p,R؎ CZFaXJi8h|3 n9æ ,-U]Ox!lCā c\A4OPZ+PGԵD~}<\@?[/݇OdD#8`lЈ#c-8ژz@~p lC؂|;ڙ 3-Τa_C9`􊾞g>&,g--=,F}-|'^x*jXRU'ڎǟ\?q,hk\@ӏGxֵ,W80LkY*`:A?:"_7wn1l#fX3$il3?h󮁕fW40٦t@h|#%:P@ݯed߃>9/a{l} qX$2͹ ڀaA,IENDB`mcu8051ide-1.4.7/icons/22x22/reload.png0000644000175000017500000000261412067167647017750 0ustar milleniummilleniumPNG  IHDRĴl;bKGDC pHYs ,tIME 9'JIDATx}Ml\|8=ؐ n(i( 6jK VccSu_bbJiZ)H(Ăi%$D6:`;=3y>]L:ʕ_>o4Y̓l5nl,o'Og1g`!!&a:"LAO:u+ ^A |`g}Srj Viڽ 0iky4aw 8}x壇#%T'J RmVa:??Q|[rOȧ=&K ! S(PJ"858{mhuxҞ(t6|t⹒\%J4p X͑h^(V2P~PW;_]t8yh]՝&&7[ qbKZ&?vXk&s[zʬ|]- R*CA2[3MsRD)ɕ%bՍi0 *+r"[0צ密tR^bVB>;urnB3( }Q9,B֦J 6dLGIÔw>jFw슬J,sdH֓&4}q@YWs<2SȻ ]9xn4cxwx=,0UvxZܾmB䄡tХ޳<=|Z J%G' fB69 0`Q,Ւމ]1Uv¡>R䞫ST!~06$lbzodEY:]~Fs`F7z+!#!)ݴVU̅,W7S {۟&lW<`5q8_N  ^>I|DuQZFBPpF ;~VVV[?[#lz6PΤXri=KhR֛ o|t}V_sa-b8Yh3_N;ʌ^ ķVoGs_6"oFflg.\Ǭ6b8e OvBRSnekz?JJyɒJ\G*|ngzl6O_[Vwpa[Re>*%sQeTrHjZϿKka?S_x6$KKK/%P\vTm/ p}8 ]V1;{/IENDB`mcu8051ide-1.4.7/icons/22x22/binary.png0000644000175000017500000000223712067167647017767 0ustar milleniummilleniumPNG  IHDRĴl; pHYs  gAMA|Q cHRMz%u0`:o_FIDATxb?Ì33Pddd0 p53~ _~2_? e/_@ T?~`).l@@dAF Sd?163j5^y'+Oc͊tGdlA-Vt^n:dc2? L@3*t9(A?2bfZ>.s `P0;*6 n^dx+?>2<tY=u>`0@L䚏;OO-?> {`$ X`dd1())-?2 q <1 1J A<.!v`W<30D|]  UPU->gϟ?X%ȋ 9WA $W <(@j,08h@)@YYK!!!ٳg waxJ$޽ w%H(H`gggG  8 a=&KA | A4zPr߿^HFFY:H d(@>Y n0&P̃W iσاO.]p)0ŋ ׮]@ a/%%O'""E&,A9n0(@2 t:%Y;푐#OUewShD=@pRȋ$,@(`t rP} C@lxŋ,@=0n0(ܿlȀ2eOn?RГ1ٷâvQMYJ <>sY֐mIPw^b /PxFkM%rP`^;$ݙpBJE3hAxq 4@ܷ"!&3mm#|N^LM3hq{`}3P؆00E f22qrf͇_.Q-GLeqIjtHEe !d'-h+)< u[a > ;'$2JZ]Vx泔Bt;ni1_]I!4 Ub\Im?2CIt-ԣx+~@#6ZGWXi:LUH$1uۭ=fjf\XNtG7Ʋm0sՆ9.ŦmI.߬cbY,T̕܉ќ,\ljBE0j_[TĔ)@ť:YVT*эhq?ȈRS{8Gր/0FT*4oţ +9* Q()tIU;2PՌeAnZEIENDB`mcu8051ide-1.4.7/icons/22x22/editcut.png0000644000175000017500000000225412067167647020143 0ustar milleniummilleniumPNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<>IDATxb?0222[kk]`i`` S yr[M`2A|"`&&|A5x ï_> Y(5HÇpq" ߾}[ 0| `j;0| ʐҖb:Dɓ 7XS @$ŷo?[WWgx%üy/{1++L-@o~0=zdÃ/Vs(8iRd}2쬌l l, ; ?J0xxX ]l`~p\b,>V "@SYg`>A./SL V 6d{Ʌ:n$H[k6o%<afΜ6cx,Ý @pg̏vp ëOs6`ϩ _ J7?n0@S?\e2$ ?2AґABAݗ_ŝs>M. ?޽0_ssa75?.pf`/;U7VN<@I.)y)} a?gq?3/o _awLk 0n<$:DZ`d(`de%0L{\)3PQ# "_?1 +äYG>xpF Fˊ K~c`cӻO ba07Q`E߿" o@ŝo=!0`b`aPQ`bO8dHL6cgcbmK>-? #í; 6 p2@f@·n`.`dc铮0|Qb;we?sǟ1tO?. %Wc#; ?/;5@/LZ {'Cz& 20|onsˡ|@,J| k@}';P?@?O?'P /%΁iΉ`$r1@[P(b}q @\}lEnj(IENDB`mcu8051ide-1.4.7/icons/22x22/_blockdevice.png0000644000175000017500000000257212067167647021116 0ustar milleniummilleniumPNG  IHDRw=sRGBbKGD pHYs  tIME 1 CЂIDATHǭYleܹ BW`ր# PEq,5.ꃉ/jRB|P_P[ R+ (H[}w|WHw&}s9R:/hmOҺc֞(?y+ZDB?\FG ZjۏtnLk'g`&@r^?j\>rۉGLאuA,hhB<(U,~"U9j1q|>.r=n/*#>S-d,]< C,}d Ib#UC4؍ TNȌT iaz&k>2w P{0< /<;y0^C2~!gvlc(#nW Zc}od÷{/#b;(ԂXPR  5P P`r, G\ڂ<Ã9SHʆ I[rG{*3! )Gn,Of&А gd#r~Y2Q+v_eu;;h(T7C z{-}=̨*ꝵQ^P{XZa-{.#/Mcd =[#kCKOsjX4msݚdŠ~ VAN *NbtIENDB`mcu8051ide-1.4.7/icons/22x22/memory_E.png0000644000175000017500000000202012067167647020245 0ustar milleniummilleniumPNG  IHDRĴl;sRGBbKGD pHYs  tIME E|IDAT8oHu_lf2[B"[% G5zЈh ,|0V-za2D e\;.5E;9;~߷GdNFG}|xܥ>$"7zWdY5-8fga(>7{<2ͰgOv4_˟;xݢ7" )** ]725ϕs_rOl~xxxR[ٶ͍j0@U37μ*$bַɳd|B0 8;)Af5fgq8OzΡs,>*ZAF )R,/bc5{WZ?gxMbr';hN! ED(k <ZZ69p/Hi&lv D1qh4A&؅\®*QW4ɋ~*vX{6 tH$F,vrx;P\++?BEa}&\ Jiw5 jσϽk ==HPVVfX]_I+{u䐍ShXQcQc*fg J\ss_HTUDu8ջ8xQ4'(opHT7#"R^(l>YH}1FS44b1c2YXX&4߼.ϐ0HKK@|Q*4DtVz+Fq=O|C'%י[BQ悸yMCgWM.b+SYvNJ8Ko_ 'IRi,3^oŦBH\[N躂4[0ZRN\X<)Ցfք8vsN>,,/'KIENDB`mcu8051ide-1.4.7/icons/22x22/1rightarrow.png0000644000175000017500000000144712067167647020756 0ustar milleniummilleniumPNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?2PO9`߿~QbLxίD@%G\AD _Og`¿?@Ą._Imua, ;3Dl00wb  .c`ax? B 8/l8(~ |\I^l :a y >/1-(?00۲12 |^]&5bgO f/d,M8  ,a qq6;VjAY@X] hoJF_aQ`dgd*0 10(^~ŏM9SH0b܀f5#?*:1sk9Ă-b0(M3#86@,؂0yD߀r~C~ tĂ5$/ E.V@Ο /b mp9nB/:ߋQ8VsQ @XØgx; @X],߾3<93†@a c~vTo1ܚ6S  ``8g Wځ.hCA B;ϻw@ =@ @u g%`TEA& $20 B*IENDB`mcu8051ide-1.4.7/icons/22x22/gear1_play.png0000644000175000017500000000232712067167647020527 0ustar milleniummilleniumPNG  IHDRw=sRGBbKGD pHYs  tIME 2WIDATHǭMh\U羯N>I(~uѦB@ BlRP⪭%1RhhCҕ]v"~@mU$BF*HM2I&7=.f3iڸw=yPkMgYݻ3tgRG9G#jcYBQX=2>cK`Ƥ0f.ß*xat gCd9ߧȩU D¹ \ס&]-^ v0h$s"D ";Dnr-R&h|b0fMbðl(ĸ@W"BUz&dz*rՓh:ry-"o-n'BEP;!RPPg~ejR%btp|^)!R@m`L:oA BZUB@!`3W {G|u$1hԆeYV;h0@[>e=GNS|;)|:f&ډ=yS/Xv+OAuzOjp4&) ҏ腃)R*:ceV5$t!$!J4Ƙip\K/NF /M[2lsظH1%|?GMia\P).XQhj N/,5"x+-hC*1h ] >?M/2>ӃQQaL\$\Km#߰]Ϡ*ݦiښ."^$1hL>#]>L~D|Z/!^FWQ']T߃w%h%LSi"#2SAi?ڝ9VLfl|1Փ,Wx4- ~+, [`\z%: k9z8o_RUF.k?K<IENDB`mcu8051ide-1.4.7/icons/22x22/editclear.png0000644000175000017500000000031312067167647020430 0ustar milleniummilleniumPNG  IHDRĴl;gAMA abKGD pHYs  ~tIME V HIDATxԱ @! CFޏ ;&[T]jUrka8hC# [+ Wh % Y%IENDB`mcu8051ide-1.4.7/icons/22x22/emptytrash.png0000644000175000017500000000235012067167647020677 0ustar milleniummilleniumPNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<zIDATxb?2`ddq=B_?|d`c C |R  ,@Cj10ӧ|?31'Fh`l@a. d`?1@pLXX#@s0C\&ǀ0Y 0 ~H , !&FlAlX>]~=a`؜i`g6ïo0ga`aey׋| 0 D/Fl j \ @~o>3=U^ǟؽ@#)w ~ d\}p_2\}" 00`CS5. 0k0@a?T2/3˟o 2pb gFol 613018iXd 11;.f"?}by` 6&6_`QsL _,dPL LL , L/1c Tb@aXUHf@?d0`f ,,2|?2|aF6 0Sş? "@˧ߐ`a\2\ ,ޘ, | ĹQ 0\O/>2JO1$JB4>1 `3sbp*9a{< ]m>i32e]O =G1 00\ӧ ϟdx+ß?fzALTh(/õ?Rvt.@6 VM \`"c)h$ ,BXXXk{3míBdWe`N>pfGhc_fsPU4hr nrIENDB`mcu8051ide-1.4.7/icons/22x22/editdelete.png0000644000175000017500000000166712067167647020621 0ustar milleniummilleniumPNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IIDATxb?ùK3112`~a7߿>~ 0Ǯ  j!h鏟Ə`eؼB!,ff(egce05O@5h 3 3@ "àp"b`D4;3")IA.  }GSy1(a@ J9`IW[f >b"dfwp?3v#g ~ dзo?9'6`x3p16@A@g23gh8(s Gq~?.^?f`=3~}t/ƣ2|~ l4ʊ`4Б> wkq בM ;fV.e36@LY0?p?|ײpC?0pefpabn0@~ 7%W0 B&L` B1 2=9_ؗ-``T9@X||'یfχo ̧2y20}NɈ=( H,`6u5F.o@˗=?~ěm+*dWSۚ !h8۱x  WLb'"𫴓O\>çÿLĂx  4\W@&̉=`6VDҁʲ#&0X-` HPZ@M`0O IENDB`mcu8051ide-1.4.7/icons/22x22/2rightarrow.png0000644000175000017500000000207412067167647020754 0ustar milleniummilleniumPNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@1%sz _Yb @zs  @ o]~ a`/.Eտ$41jO`b`e u20ϗv_ 7CeY r~ YTp@Lc7)9 ߍ쀆3͗_ 6߿ \,jƈ0D\-ہpbi7b` `ay~P'P}_(Df_Af  W_XK᧵;?&`P0ozgvhB l|(L˯Gӛ;v^ 5_10Yq0%3K`f/@k3{1$b=a`.5O`x5y/0gp P\ -`x0{g %?[ !&5 X y~d y0z"R/$I;3+fe 9OoLa 86$(dbLG@Ο4 / A4/SK/Xb+  D@^2ܸׯ - *Zb"Q~_S߹~Lz /;~>Pi p ,0~& ,E0\ٳ~[(M4&zAaV*َ3x H8﫫cX8@kV@鼋,:t1U`q pF4| T^3YcjJy{Dj=Mh@r%B4j 1}C=>XG ɤZAIrr82rn@~E?s>+@ <>zkИ՟;G+u^NcmAU 4W pc(.9}ATCW~_ݼw.p(xv-ذ t%5Es+Dj] *}WѴIHyvOĂ+WnBUhF 7棛A!am X[#لtX`kk{xuJG9salM=mܱw)3T/Dr˳[._PG.]]\.Z,93T~d8Gmj`훯;S1m8`Oqe 5F`kpx@acT (^gr#n/hm.> /ΗX >tAxXK%`y΁A(iG C(rT^+ aP8gx-8]kXh Ī<ރ[Ώto4IENDB`mcu8051ide-1.4.7/translations/0000755000175000017500000000000012067167647016620 5ustar milleniummilleniummcu8051ide-1.4.7/translations/tool.tcl0000755000175000017500000005547312067167647020322 0ustar milleniummillenium#! /usr/bin/tclsh # Part of MCU 8051 IDE ( http://mcu8051ide.sf.net ) ############################################################################ # Copyright (C) 2011 by Martin Ošmera # # martin.osmera@gmail.com # # # # This program is free software; you can redistribute it and#or modify # # it under the terms of the GNU General Public License as published by # # the Free Software Foundation; either version 2 of the License, or # # (at your option) any later version. # # # # This program is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU General Public License for more details. # # # # You should have received a copy of the GNU General Public License # # along with this program; if not, write to the # # Free Software Foundation, Inc., # # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # ############################################################################ # -------------------------------------------------------------------------- # DESCRIPTION # # This is the translation manipulation tool written for the MCU 8051 IDE # project, purpose of this tool is to simplify maintenance of the # translation files. Since the template.txt might get updated every now and # then, we need to keep the translation files updated. # # This file is intended to be used as a stand-alone executable # # Command line options: # -t # Update a translation template file (e.g. template.txt). # -m # Update the given translation file () according to the # template.txt file located in the same directory as this script. # -h, --help, --usage # Print the help message. # -------------------------------------------------------------------------- namespace eval TranslationManipulationTool { variable orig_dir ;# String: Directory from which the script was executed variable tmp_dir ;# String: Temporary directory, e.g. "/tmp" variable error_code ;# Int: Auxiliary variable indicating error ## Initialize the tool, set some variables, etc. # @return void proc init {} { variable orig_dir ;# String: Directory from which the script was executed variable tmp_dir ;# String: Temporary directory, e.g. "/tmp" variable error_code ;# Int: Auxiliary variable indicating error set error_code 0 set orig_dir [pwd] set tmp_dir {/tmp} if {[string first {Windows} ${::tcl_platform(os)}] != -1} { set tmp_dir ${::env(TEMP)} } if {$tmp_dir == {}} { puts stderr "ERROR: Unable to determinate location of the temp directory." exit 1 } cd [file dirname $::argv0] } ## Update translation template file # # The update does these things: # - add IDs to translation strings which does not have any yet, # - remove duplicity translation strings, # - remove translation strings which clearly cannot be translated, e.g. "--- %s". # # @param String filename - Name of the subject for the update # @return void proc update_template {filename} { variable orig_dir ;# String: Directory from which the script was executed variable tmp_dir ;# String: Temporary directory, e.g. "/tmp" variable error_code ;# Int: Auxiliary variable indicating error # Inform user about what we are doing puts "" puts " * Updating the template file: $filename" # Open the translation template file (for reading) if {[catch { set f [file join $orig_dir $filename] set template_file [open $f {r}] }]} then { puts stderr "ERROR: Unable to open $f file, exiting." exit 1 } # Open a temporary file (for writing) if {[catch { set f [file join $tmp_dir "mcu8051ide_template_txt.tmp"] set template_file_tmp [open $f {w} 0644] }]} then { catch { close $template_file } puts stderr "ERROR: Unable to open mcu8051ide_template_txt.tmp file, exiting." exit 1 } # Determinate the highest value of translation string ID set highest_id 0 while {![eof $template_file]} { set line [gets $template_file] if {[regexp {^\s*##ID:\d{6}##\s*$} $line]} { regexp {\d{6}} $line id set id [string trimleft $id 0] if {![string length $id]} { set id 0 } if {$id > $highest_id} { set highest_id $id } } } # Increment the highest ID by 10 in order to make less probable #+ that we actually reuse an ID. if {$highest_id} { incr highest_id 10 } # Update the template file, the file itself will remain unchanged, #+ we write results to the previously created/opened temporary file seek $template_file 0 ;# Return at the beginning of the file set line {} ;# String: Line read from the file set prev_line {} ;# String: Line previously read from the file array set tr_str_in_ns {} ;# Array of Lists: Translation strings in a namespace set current_namespace {} ;# String: Current namespace set transl_count 0 ;# Int: Number of translation strings found in the template set rem_transl_count 0 ;# Int: Number of removed translation strings set add_ids_count 0 ;# Int: Number of added IDs while {![eof $template_file]} { set line_raw [gets $template_file] # Skip empty lines, or lines containing only white space if {[regexp {^\s*$} $line_raw]} { continue } set prev_line $line set line $line_raw # Detect white space if {[regexp {namespace\s+eval\s+[^\{]+} $line ns_name]} { regsub {namespace\s+eval\s+} $ns_name {} ns_name regsub {\s*$} $ns_name {} ns_name set current_namespace $ns_name } # Make the array with translation strings in a namespace aware of the current namespace if {[lsearch -ascii -exact [array names tr_str_in_ns] $current_namespace] == -1} { set tr_str_in_ns($current_namespace) [list] } # Attempt to extract the string for translation (original/source string) if {[regexp {^\s*mcset\s+\$l\s+} $line]} { set idx [string first {mcset} $line] } else { set idx -1 } set trans_str $line regsub -all {^\s*mcset\s+\$l\s*} $trans_str {} trans_str ;# Remove " mcset $l " regsub -all {\s*\\\s*$} $trans_str {} trans_str ;# Remove trailing backslash set trans_str_orig $trans_str regsub -all {\{} $trans_str "\\\{" trans_str regsub -all {\}} $trans_str "\\\}" trans_str regsub -all {\"} $trans_str "\\\"" trans_str if {$idx != -1} { # Check for possibly duplicity, this condition is not allowed and it has to fixed if {[lsearch -ascii -exact $tr_str_in_ns($current_namespace) $trans_str] != -1} { puts "Removing duplicity: $trans_str_orig from namespace $current_namespace" incr rem_transl_count # Remove the next line as well if {![eof $template_file]} { gets $template_file } continue } # Check for nonsense string for translation, e.g. "--- %s ---" if {![regexp {\w} $trans_str]} { puts "Removing nonsense: $trans_str_orig from namespace $current_namespace" incr rem_transl_count # Remove the next line as well if {![eof $template_file]} { gets $template_file } continue } # Remember this translation in order to be able to detect possible duplicities later lappend tr_str_in_ns($current_namespace) $trans_str incr transl_count # Generate and add a new ID if there is none yet if {![regexp {^\s*##ID:\d{6}##\s*$} $prev_line]} { incr add_ids_count puts $template_file_tmp [format "%s##ID:%06d##" [string repeat { } $idx] [incr highest_id]] } else { puts $template_file_tmp $prev_line } } # ID are handled separately, so we don't want them printed here if {![regexp {^\s*##ID:\d{6}##\s*$} $line]} { puts $template_file_tmp $line } } array unset tr_str_in_ns # Inform user about results puts "" puts "** Translation template updated" puts " * Current number of translation strings: $transl_count" puts " * Number of removed translation strings: $rem_transl_count" puts " * Number of added translation IDs: $add_ids_count" # Close all opened files if {[catch { close $template_file }]} then { puts stderr "ERROR: Unable to close the template file." set error_code 1 } if {[catch { close $template_file_tmp }]} then { puts stderr "ERROR: Unable to close the template tmp file." set error_code 1 } if {$error_code} { exit $error_code } # Move, copy, and/or remove files set s [file join $tmp_dir "mcu8051ide_template_txt.tmp"] set t "template.txt" catch { file rename -force $t "${t}~" } if {[catch { file copy -force $s $t }]} then { puts stderr "ERROR: Unable to copy $s --> $t." exit 1 } catch { file delete -force $s } } ## Update translation file (a .msg file) # # The update does these things: # - # # @param String filename - Name of the subject for the update # @return void proc update_msg_file {filename} { variable orig_dir ;# String: Directory from which the script was executed variable tmp_dir ;# String: Temporary directory, e.g. "/tmp" variable error_code ;# Int: Auxiliary variable indicating error # Local variables, all of them are Int: number of - set missing_id_count 0 ;# - translation strings without ID set not_trans_count 0 ;# - not translated strings set trans_count 0 ;# - translated strings set updated_count 0 ;# - updated translation strings set found_in_src 0 ;# - translation strings found in the translation file set found_in_tmpl 0 ;# - translation strings found in the template file set added_count 0 ;# - translation strings copied from the translation file to the translation file set id_dupl_count 0 ;# - duplicities in translation string ID # Inform user about what we are doing puts "" puts "* Updating translation file: $filename" if {$filename == {}} { puts stderr "No file name given." return } if {[catch { set f [file join $orig_dir $filename] set source_file [open $f {r}] }]} then { puts stderr "ERROR: Unable to open $f file, exiting." exit 1 } if {[catch { set f [file join . "template.txt"] set template_file [open $f {r}] }]} then { catch { close $source_file } puts stderr "ERROR: Unable to open $f file, exiting." exit 1 } if {[catch { set f [file tail $filename] set f [file join $tmp_dir "${f}.tmp"] set target_file [open $f {w} 0644] }]} then { catch { close $source_file } catch { close $template_file } puts stderr "ERROR: Unable to open $f file, exiting." exit 1 } array set trans_strs_by_id {} # Copy commets at the begining of the source file to the target file, #+ and load all translations into an array set header 1 while {![eof $source_file]} { set line [gets $source_file] # Copy only continuous block of comments at the beginning of the file if {$header && [regexp {^\s*#} $line] && ![regexp {^\s*##ID:\d{6}##\s*$} $line]} { puts $target_file $line continue } if {$header} { set header 0 } # Detect translation string ID if {[regexp {^\s*##ID:\d{6}##\s*$} $line]} { regexp {\d{6}} $line id # Get original string, the string for translation set trans_str_org [get_trans_str_org $source_file] if {$trans_str_org == {}} { break ;# We can still partially recover from here } set trans_str_org_raw [lindex $trans_str_org 1] set trans_str_org [lindex $trans_str_org 0] # Get translated string set trans_str_trn [get_trans_str_trn $source_file] if {$trans_str_trn == {}} { break ;# We can still partially recover from here } set update_flag [lindex $trans_str_trn 2] set trans_str_trn_raw [lindex $trans_str_trn 1] set trans_str_trn [lindex $trans_str_trn 0] # Check whether strings {} have the same length if { [string index [lindex $trans_str_org 0] 1] == "\{" && [string length $trans_str_trn] != [string length $trans_str_org] } then { puts stderr "Warning: Translation probably violates the translation rules: ``$trans_str_org_raw'' --> ``$trans_str_trn_raw''" } # Detect, and remove, strings with duplicit IDs if {[lsearch -ascii -exact [array names trans_strs_by_id] $id] != -1} { puts stderr "Warning: Duplicit ID found: $id, ignoring!" incr id_dupl_count } else { set trans_strs_by_id($id) [list $trans_str_org $trans_str_trn $update_flag] incr found_in_src } } # The mcset command should have been already handled when ID was detected if {[regexp {^\s*mcset\s+\$l\s+} $line]} { set idx [string first {mcset} $line] } else { set idx -1 } if {$idx != -1} { regsub -all {^\s*mcset\s+\$l\s*} $line {} line ;# Remove " mcset $l " regsub -all {\s*\\\s*$} $line {} line ;# Remove trailing backslash puts stderr "Warning: Missing translation string ID: ``$line'', removing!" } } # We don't need the source file opened for reading any more catch { close $source_file } # Copy the rest (not commets at the begining of the file) from the #+ template file to the target file, and update it from the #+ trans_strs_by_id array which was extracted from the source file set header 1 while {![eof $template_file]} { set line [gets $template_file] # Copy commets at the begining of the template file if {$header && [regexp {^\s*#} $line] && ![regexp {^\s*##ID:\d{6}##\s*$} $line]} { continue } if {$header} { set header 0 } # Detect translation string ID if {[regexp {^\s*##ID:\d{6}##\s*$} $line]} { regexp {\d{6}} $line id # Get original string, the string for translation set trans_str_org [get_trans_str_org $template_file] if {$trans_str_org == {}} { exit 1 ;# It would make no sense to continue from here } set mcset_idx [lindex $trans_str_org 2] set trans_str_org_raw [lindex $trans_str_org 1] set trans_str_org [lindex $trans_str_org 0] # Get translated string set trans_str_trn [get_trans_str_trn $template_file] if {$trans_str_trn == {}} { exit 1 ;# It would make no sense to continue from here } set trans_str_trn_raw [lindex $trans_str_trn 1] set trans_str_trn [lindex $trans_str_trn 0] # Regenerate the mcset command along with the string for translation set original_string [string repeat { } $mcset_idx] append original_string {mcset $l } $trans_str_org " \\" regsub -all {\\\{} $original_string "\{" original_string regsub -all {\\\}} $original_string "\}" original_string regsub -all {\\\"} $original_string "\"" original_string # Regenerate new translated string set translation [string repeat { } [expr {$mcset_idx + 9}]] if {[lsearch -ascii -exact [array names trans_strs_by_id] $id] == -1} { # The string was not even found in the given translation file append translation $trans_str_trn regsub -all {\\\{} $translation "\{" translation regsub -all {\\\}} $translation "\}" translation regsub -all {\\\"} $translation "\"" translation } else { # The string was found in the translation file append translation [lindex $trans_strs_by_id($id) 1] regsub -all {\\\{} $translation "\{" translation regsub -all {\\\}} $translation "\}" translation regsub -all {\\\"} $translation "\"" translation # But, it has not been translated (yet) if {$trans_str_trn == [lindex $trans_strs_by_id($id) 1]} { append translation " ;# <-- NOT TRANSLATED YET" incr not_trans_count } else { incr trans_count } # If the source string (string for translation) in the template differs from # the same string in the given translation file then add " ;# <-- UPDATE?" # comment there. if {$trans_str_org != [lindex $trans_strs_by_id($id) 0]} { set foo [lindex $trans_strs_by_id($id) 0] regsub -all {\\\{} $foo "\{" foo regsub -all {\\\}} $foo "\}" foo regsub -all {\\\"} $foo "\"" foo puts "Source strings does not match, translation might need an update: ``$trans_str_org_raw'' --> ``$foo''" append translation " ;# <-- UPDATE?" incr updated_count } elseif {[lindex $trans_strs_by_id($id) 2]} { append translation " ;# <-- UPDATE?" } } # Write results to the temporary file puts $target_file $line ;# <-- #ID:dddddd## puts $target_file $original_string ;# <-- mcset $l "original string" puts $target_file $translation ;# <-- "translated string" incr found_in_tmpl continue } # Copy the rest puts $target_file $line } array unset trans_strs_by_id {} set added_count [expr {$found_in_tmpl - $found_in_src}] # Inform user about results puts "" puts "** File: $filename updated" puts " * Number of translations without ID: $missing_id_count" puts " * Number of ID duplicities: $id_dupl_count" puts " * Translated strings: $trans_count" puts " * Not translated strings: $not_trans_count" puts " * Number of translation which might need to be updated: $updated_count" puts " * Number of strings added for translations: $added_count" # Close all opened files if {[catch { close $template_file }]} then { puts stderr "ERROR: Unable to close the template file." set error_code 1 } if {[catch { close $target_file }]} then { puts stderr "ERROR: Unable to close the target file." set error_code 1 } if {$error_code} { exit $error_code } # Move, copy, and/or remove files set s [file tail $filename] set s [file join $tmp_dir "${s}.tmp"] set t [file join $orig_dir $filename] catch { file rename -force $t "${t}~" } if {[catch { file copy -force $s $t }]} then { puts stderr "ERROR: Unable to copy $s --> $t." exit 1 } catch { file delete -force $s } } ## Attempt to extract string for translation from the given file # @param ChannelID source_file - File descriptor returned by "open" # @return List: # - {escaped_string raw_string index_of_mcset} <-- In case of success # - {} <-- In case of failure proc get_trans_str_org {source_file} { if {[eof $source_file]} { puts stderr "Warning: Unexpected end of file." return {} } set trans_str_org [gets $source_file] if {[regexp {^\s*mcset\s+\$l\s+} $trans_str_org]} { set idx [string first {mcset} $trans_str_org] } else { set idx -1 } if {$idx == -1} { puts stderr "ERROR: Expected ``mcset $l'' at the beginnig of the line!" return {} } regsub -all {^\s*mcset\s+\$l\s*} $trans_str_org {} trans_str_org ;# Remove " mcset $l " regsub -all {\s*\\\s*$} $trans_str_org {} trans_str_org ;# Remove trailing backslash set trans_str_org_raw $trans_str_org regsub -all {\{} $trans_str_org "\\\{" trans_str_org regsub -all {\}} $trans_str_org "\\\}" trans_str_org regsub -all {\"} $trans_str_org "\\\"" trans_str_org return [list $trans_str_org $trans_str_org_raw $idx] } ## Attempt to extract translated string from the given file # @param ChannelID source_file - File descriptor returned by "open" # @return List: # - {escaped_string raw_string update_flag} <-- In case of success # - {} <-- In case of failure # @note # update_flag == 1 means that there was ``;# <-- UPDATE?'' on the line, # it's important because that comment should be preserved proc get_trans_str_trn {source_file} { if {[eof $source_file]} { puts stderr "Warning: Unexpected end of file." return {} } set trans_str_trn [gets $source_file] if {[regexp ";# <-- UPDATE\?" $trans_str_trn]} { set update_flag 1 } else { set update_flag 0 } regsub -all ";#.*$" $trans_str_trn {} trans_str_trn ;# Remove commet regsub -all {\s*$} $trans_str_trn {} trans_str_trn ;# Remove trailing white space regsub -all {^\s*} $trans_str_trn {} trans_str_trn ;# Remove leading white space set trans_str_trn_raw $trans_str_trn regsub -all {\{} $trans_str_trn "\\\{" trans_str_trn regsub -all {\}} $trans_str_trn "\\\}" trans_str_trn regsub -all {\"} $trans_str_trn "\\\"" trans_str_trn return [list $trans_str_trn $trans_str_trn_raw $update_flag] } ## Print some information about what this tool is, and what's the license, etc. # @return void proc print_basic_info {} { puts "Translation manipulation tool written for MCU 8051 IDE." puts "" puts "This software is licensed under GNU GPLv2 and comes with no warranty, " puts "please report any bugs you encounter to the author of the script:" puts "." puts "" } ## Print help message to inform the user how to use this tool # @return void proc print_help {} { print_basic_info puts "Options:" puts " -t " puts " Update a translation template file (e.g. template.txt)." puts "" puts " -m " puts " Update the given translation file () according to the" puts " template.txt file located in the same directory as this script." puts "" puts " -h, --help, --usage" puts " Print this message." puts "" } ## Entry point to the tool functions # @return void proc main {} { # If no CLI arguments were provided, print the help message if {!$::argc} { print_help return 1 } # Initialize the tool TranslationManipulationTool::init # List: Operations to execute set command_list [list] # Iterate over provided CLI arguments list and process it for {set i 0} {$i < $::argc} {incr i} { set arg [lindex $::argv $i] switch -exact -- $arg { {-h} { ;# Print the help message print_help return 0 } {--help} { ;# Print the help message print_help return 0 } {--usage} { ;# Print the help message print_help return 0 } {-t} { ;# Update template file set filename [lindex $::argv [incr i]] if {![string length $filename]} { puts stderr "Argument expected after the $arg option." exit 1 } lappend command_list "update_template $filename" } {-m} { ;# Update translation file set filename [lindex $::argv [incr i]] if {![string length $filename]} { puts stderr "Argument expected after the $arg option." exit 1 } lappend command_list "update_msg_file $filename" } default { ;# Nonsense argument --> error puts stderr "Unknown option ``$arg''." puts stderr "Please type \"${::argv0} --help\" for help." return 1 } } } # Print some information about what this tool is, and what's the license, etc. print_basic_info # Execute required operations foreach cmd $command_list { eval $cmd } # Success return 0 } } # Start the tool exit [TranslationManipulationTool::main] mcu8051ide-1.4.7/translations/template.txt0000644000175000017500000225207412067167647021210 0ustar milleniummillenium# This is a template of MCU 8051 IDE translation file # # This file allows to localize the the user environment of the IDE to almost any # language. # # HOW TO MAKE IT WORK: # -------------------- # 1) Copy this file (template.txt) to .msg in the same directory. # Where ``'' is supposed to be replaced with language code of # the translation. For example ``ru'' means Russian, or ``es'' means # Spanish. The language code must be lowercase. # 2) Translate all sentences marked with by ``<-- NOT TRANSLATED YET''. # 3) Modify file ``languages.tcl'' and add name of language which you are # making the translation for. Name should be specified in that language. # # IMPORTANT RULES FOR THE TRANSLATION: # ------------------------------------ # 1) Be aware of that this file is very sensitive. # 2) Everything besides actual sentences for translation must not be modified # in any way! Otherwise the file might cause serious program instability. # 3) Escape sequences and all special characters must be preserved. # 4) Sentences enclosed with ``"'' (double quote) character, can be translated # into sentences with different length. But the same does not apply for # sentences enclosed with ``{'' and ``}'' (curly brackets) characters, # their lengths must remain preserved. # 5) Do not translate ``$'' dollar symbol, it has a special meaning here, not # related to currency. # 6) Keep UTF-8 encoding and if possible, please keep also Unix line ends. # 7) Do not remove ID marks, like ``##ID:12345##'', etc. # # NOTES: # ------ # 1) `` ;# <-- NOT TRANSLATED YET'' is just a comment and can be removed at # any time. # 2) Nothing is perfect ... if you have found anything strange or not # functional here, please report it as a regular bug. # 3) Recommended syntax highlight pattern for this file is "Tcl/Tk". # 4) Please don't hesitate to ask any questions. # # EXAMPLES: # -------- # # ##ID:000017## # mcset $l "Unable to save configuration file" \ # "无法保存配置文件" # | # \__ This is juts a basic example, note that the # ``" ;# <-- NOT TRANSLATED YET'' string was removed, but it's not # mandatory to remove it. (Translated to Chinese.) # # ##ID:666000## # mcset $l "%s\tBetter to reign in Hell than to serve in Heaven!" \ # "%s\tLepší vládnou v pekle než sloužit v nebi!" # | # \__ Note that formatting (%s) and escaped (\t) characters remained # here. (Translated to Czech.) # # ##ID:86900## # mcset $l {Just judge of revenge, give the gift of remission before the day of reckoning.} \ # {Iuste iudex ultionis, donum fac remissionis ante diem rationis. } # | # \__ Note that length of both strings is the same, it must be that # way because the strings are in brackets, not in double quotes. # (Translated to Latin.) # # # ------------------------------------------------------------------------------ # Thank you for your cooperation, which helps to make the software better! # ------------------------------------------------------------------------------ # # Translation file from English language to # by () <> # # Created: ... # Last update: ... # Notes to translation: ... # set l [file tail [file rootname [info script]]] # main.tcl # ============================================================================== namespace eval :: { ##ID:000001## mcset $l "Translated into _Language_ by _Name_ (_country_) <_email_>" \ "Translated into _Language_ by _Name_ (_country_) <_email_>" ;# <-- NOT TRANSLATED YET ##ID:000002## mcset $l "Initializing" \ "Initializing" ;# <-- NOT TRANSLATED YET ##ID:000003## mcset $l "\tLoading libraries" \ "\tLoading libraries" ;# <-- NOT TRANSLATED YET ##ID:000004## mcset $l "\tLoading program sources" \ "\tLoading program sources" ;# <-- NOT TRANSLATED YET ##ID:000005## mcset $l "FATAL ERROR" \ "FATAL ERROR" ;# <-- NOT TRANSLATED YET ##ID:000006## mcset $l "MCUs database file is corrupted,\nthis program cannot run without it.\nPlease reinstall MCU 8051 IDE." \ "MCUs database file is corrupted,\nthis program cannot run without it.\nPlease reinstall MCU 8051 IDE." ;# <-- NOT TRANSLATED YET ##ID:000007## mcset $l "\tOpening last session" \ "\tOpening last session" ;# <-- NOT TRANSLATED YET ##ID:000008## mcset $l "File not found" \ "File not found" ;# <-- NOT TRANSLATED YET ##ID:000009## mcset $l "Unable to open project file:\n\"%s\"" \ "Unable to open project file:\n\"%s\"" ;# <-- NOT TRANSLATED YET ##ID:000010## mcset $l "%s is now operational\n" \ "%s is now operational\n" ;# <-- NOT TRANSLATED YET ##ID:000011## mcset $l "Initializing %s" \ "Initializing %s" ;# <-- NOT TRANSLATED YET ##ID:000012## mcset $l "\nInitializing MCU 8051 IDE %s" \ "\nInitializing MCU 8051 IDE %s" ;# <-- NOT TRANSLATED YET ##ID:000013## mcset $l "\nInitializing \033\[1mMCU 8051 IDE \033\[32m%s\033\[m" \ "\nInitializing \033\[1mMCU 8051 IDE \033\[32m%s\033\[m" ;# <-- NOT TRANSLATED YET ##ID:000014## mcset $l "\nExiting on signal %s" \ "\nExiting on signal %s" ;# <-- NOT TRANSLATED YET ##ID:000015## mcset $l "\nERROR: Unable to exit the program correctly -- TERMINATING NOW!" \ "\nERROR: Unable to exit the program correctly -- TERMINATING NOW!" ;# <-- NOT TRANSLATED YET } # environment.tcl # ============================================================================== namespace eval :: { ##ID:000016## mcset $l "Permission denied" \ "Permission denied" ;# <-- NOT TRANSLATED YET ##ID:000017## mcset $l "Unable to save configuration file" \ "Unable to save configuration file" ;# <-- NOT TRANSLATED YET ##ID:000018## mcset $l " * Restoring default settings" \ " * Restoring default settings" ;# <-- NOT TRANSLATED YET ##ID:000019## mcset $l "Change level of syntax validation" \ "Change level of syntax validation" ;# <-- NOT TRANSLATED YET ##ID:000020## mcset $l "Configure spell checker" \ "Configure spell checker" ;# <-- NOT TRANSLATED YET ##ID:000021## mcset $l "Spell checker (hunspell) is not available." \ "Spell checker (hunspell) is not available." ;# <-- NOT TRANSLATED YET ##ID:000022## mcset $l "Show status bar history" \ "Show status bar history" ;# <-- NOT TRANSLATED YET ##ID:000023## mcset $l "MCU chosen for simulation" \ "MCU chosen for simulation" ;# <-- NOT TRANSLATED YET ##ID:000024## mcset $l "Syntax validation disabled" \ "Syntax validation disabled" ;# <-- NOT TRANSLATED YET ##ID:000025## mcset $l "Current validation level: %s" \ "Current validation level: %s" ;# <-- NOT TRANSLATED YET ##ID:000026## mcset $l "Custom command %s: %s" \ "Custom command %s: %s" ;# <-- NOT TRANSLATED YET ##ID:000027## mcset $l "Clear" \ "Clear" ;# <-- NOT TRANSLATED YET # Main menu / File ##ID:000028## mcset $l "File" \ "File" ;# <-- NOT TRANSLATED YET ##ID:000029## mcset $l "New" \ "New" ;# <-- NOT TRANSLATED YET ##ID:000030## mcset $l "Create new file" \ "Create new file" ;# <-- NOT TRANSLATED YET ##ID:000031## mcset $l "Open" \ "Open" ;# <-- NOT TRANSLATED YET ##ID:000032## mcset $l "Open an existing file" \ "Open an existing file" ;# <-- NOT TRANSLATED YET ##ID:000033## mcset $l "Open recent" \ "Open recent" ;# <-- NOT TRANSLATED YET ##ID:000034## mcset $l "Save" \ "Save" ;# <-- NOT TRANSLATED YET ##ID:000035## mcset $l "Save the current file" \ "Save the current file" ;# <-- NOT TRANSLATED YET ##ID:000036## mcset $l "Save as" \ "Save as" ;# <-- NOT TRANSLATED YET ##ID:000037## mcset $l "Save under a different name" \ "Save under a different name" ;# <-- NOT TRANSLATED YET ##ID:000038## mcset $l "Save all" \ "Save all" ;# <-- NOT TRANSLATED YET ##ID:000039## mcset $l "Save the current file under a different name" \ "Save the current file under a different name" ;# <-- NOT TRANSLATED YET ##ID:000040## mcset $l "Close" \ "Close" ;# <-- NOT TRANSLATED YET ##ID:000041## mcset $l "Close the current file" \ "Close the current file" ;# <-- NOT TRANSLATED YET ##ID:000042## mcset $l "Close all" \ "Close all" ;# <-- NOT TRANSLATED YET ##ID:000043## mcset $l "Close all opened files" \ "Close all opened files" ;# <-- NOT TRANSLATED YET ##ID:000044## mcset $l "File statistics" \ "File statistics" ;# <-- NOT TRANSLATED YET ##ID:000045## mcset $l "Display file statistics" \ "Display file statistics" ;# <-- NOT TRANSLATED YET ##ID:000046## mcset $l "Save session" \ "Save session" ;# <-- NOT TRANSLATED YET ##ID:000047## mcset $l "Save current session. Session file contains list of opened project, sizes of panels, etc." \ "Save current session. Session file contains list of opened project, sizes of panels, etc." ;# <-- NOT TRANSLATED YET ##ID:000048## mcset $l "Quit" \ "Quit" ;# <-- NOT TRANSLATED YET ##ID:000049## mcset $l "Exit program" \ "Exit program" ;# <-- NOT TRANSLATED YET # Main menu / Edit ##ID:000050## mcset $l "Edit" \ "Edit" ;# <-- NOT TRANSLATED YET ##ID:000051## mcset $l "Undo" \ "Undo" ;# <-- NOT TRANSLATED YET ##ID:000052## mcset $l "Take back last operation" \ "Take back last operation" ;# <-- NOT TRANSLATED YET ##ID:000053## mcset $l "Redo" \ "Redo" ;# <-- NOT TRANSLATED YET ##ID:000054## mcset $l "Take back last undo" \ "Take back last undo" ;# <-- NOT TRANSLATED YET ##ID:000055## mcset $l "Cut" \ "Cut" ;# <-- NOT TRANSLATED YET ##ID:000056## mcset $l "Move selected text into the clipboard" \ "Move selected text into the clipboard" ;# <-- NOT TRANSLATED YET ##ID:000057## mcset $l "Copy" \ "Copy" ;# <-- NOT TRANSLATED YET ##ID:000058## mcset $l "Copy selected text into the clipboard" \ "Copy selected text into the clipboard" ;# <-- NOT TRANSLATED YET ##ID:000059## mcset $l "Paste" \ "Paste" ;# <-- NOT TRANSLATED YET ##ID:000060## mcset $l "Paste text from clipboard" \ "Paste text from clipboard" ;# <-- NOT TRANSLATED YET ##ID:000061## mcset $l "Select all" \ "Select all" ;# <-- NOT TRANSLATED YET ##ID:000062## mcset $l "Select all text in the editor" \ "Select all text in the editor" ;# <-- NOT TRANSLATED YET ##ID:000063## mcset $l "Find" \ "Find" ;# <-- NOT TRANSLATED YET ##ID:000064## mcset $l "Find a string in the text" \ "Find a string in the text" ;# <-- NOT TRANSLATED YET ##ID:000065## mcset $l "Find next" \ "Find next" ;# <-- NOT TRANSLATED YET ##ID:000066## mcset $l "Find next occurrence of search string" \ "Find next occurrence of search string" ;# <-- NOT TRANSLATED YET ##ID:000067## mcset $l "Find previous" \ "Find previous" ;# <-- NOT TRANSLATED YET ##ID:004514## mcset $l "Fill with pseudo-random values" \ "Fill with pseudo-random values" ;# <-- NOT TRANSLATED YET ##ID:000068## mcset $l "Find previous occurrence of search string" \ "Find previous occurrence of search string" ;# <-- NOT TRANSLATED YET ##ID:000069## mcset $l "Replace" \ "Replace" ;# <-- NOT TRANSLATED YET ##ID:000070## mcset $l "Replace some string with another" \ "Replace some string with another" ;# <-- NOT TRANSLATED YET ##ID:000071## mcset $l "Go to line" \ "Go to line" ;# <-- NOT TRANSLATED YET ##ID:000072## mcset $l "Jump to line" \ "Jump to line" ;# <-- NOT TRANSLATED YET ##ID:000073## mcset $l "Comment" \ "Comment" ;# <-- NOT TRANSLATED YET ##ID:000074## mcset $l "Comment selected text" \ "Comment selected text" ;# <-- NOT TRANSLATED YET ##ID:000075## mcset $l "Uncomment" \ "Uncomment" ;# <-- NOT TRANSLATED YET ##ID:000076## mcset $l "Uncomment selected text" \ "Uncomment selected text" ;# <-- NOT TRANSLATED YET ##ID:000077## mcset $l "Indent" \ "Indent" ;# <-- NOT TRANSLATED YET ##ID:000078## mcset $l "Indent selected text" \ "Indent selected text" ;# <-- NOT TRANSLATED YET ##ID:000079## mcset $l "Unindent" \ "Unindent" ;# <-- NOT TRANSLATED YET ##ID:000080## mcset $l "Unindent selected text" \ "Unindent selected text" ;# <-- NOT TRANSLATED YET # Main menu / View ##ID:000081## mcset $l "View" \ "View" ;# <-- NOT TRANSLATED YET ##ID:000082## mcset $l "Read only mode" \ "Read only mode" ;# <-- NOT TRANSLATED YET ##ID:000083## mcset $l "Set current editor to read only/normal mode" \ "Set current editor to read only/normal mode" ;# <-- NOT TRANSLATED YET ##ID:000084## mcset $l "Switch to command line" \ "Switch to command line" ;# <-- NOT TRANSLATED YET ##ID:000085## mcset $l "Switch to editor command line" \ "Switch to editor command line" ;# <-- NOT TRANSLATED YET ##ID:000086## mcset $l "Show/Hide icon border" \ "Show/Hide icon border" ;# <-- NOT TRANSLATED YET ##ID:000087## mcset $l "Show/Hide editor's icon border (bookmark icons)" \ "Show/Hide editor's icon border (bookmark icons)" ;# <-- NOT TRANSLATED YET ##ID:000088## mcset $l "Show/Hide line numbers" \ "Show/Hide line numbers" ;# <-- NOT TRANSLATED YET ##ID:000089## mcset $l "Show/Hide editor's line numbers" \ "Show/Hide editor's line numbers" ;# <-- NOT TRANSLATED YET ##ID:000090## mcset $l "Reload" \ "Reload" ;# <-- NOT TRANSLATED YET ##ID:000091## mcset $l "Reload current file" \ "Reload current file" ;# <-- NOT TRANSLATED YET ##ID:000092## mcset $l "Highlight" \ "Highlight" ;# <-- NOT TRANSLATED YET ##ID:000093## mcset $l "None" \ "None" ;# <-- NOT TRANSLATED YET ##ID:000094## mcset $l "Assembly language" \ "Assembly language" ;# <-- NOT TRANSLATED YET ##ID:000095## mcset $l "Assembler ASX8051" \ "Assembler ASX8051" ;# <-- NOT TRANSLATED YET ##ID:000096## mcset $l "Reallocable assembler from SDCC project" \ "Reallocable assembler from SDCC project" ;# <-- NOT TRANSLATED YET ##ID:000097## mcset $l "C language" \ "C language" ;# <-- NOT TRANSLATED YET ##ID:000098## mcset $l "Code listing" \ "Code listing" ;# <-- NOT TRANSLATED YET ##ID:000099## mcset $l "Full screen mode" \ "Full screen mode" ;# <-- NOT TRANSLATED YET ##ID:000100## mcset $l "Toggle full screen mode" \ "Toggle full screen mode" ;# <-- NOT TRANSLATED YET ##ID:000101## mcset $l "Clear messages panel" \ "Clear messages panel" ;# <-- NOT TRANSLATED YET # Main menu / Project ##ID:000102## mcset $l "Project" \ "Project" ;# <-- NOT TRANSLATED YET ##ID:000103## mcset $l "Create new project" \ "Create new project" ;# <-- NOT TRANSLATED YET ##ID:000104## mcset $l "Open an existing project" \ "Open an existing project" ;# <-- NOT TRANSLATED YET ##ID:000105## mcset $l "Save the current project" \ "Save the current project" ;# <-- NOT TRANSLATED YET ##ID:000106## mcset $l "Edit project" \ "Edit project" ;# <-- NOT TRANSLATED YET ##ID:000107## mcset $l "Edit project details" \ "Edit project details" ;# <-- NOT TRANSLATED YET ##ID:000108## mcset $l "Save and close" \ "Save and close" ;# <-- NOT TRANSLATED YET ##ID:000109## mcset $l "Save the current project and close it" \ "Save the current project and close it" ;# <-- NOT TRANSLATED YET ##ID:000110## mcset $l "Close without saving" \ "Close without saving" ;# <-- NOT TRANSLATED YET ##ID:000111## mcset $l "Close current project" \ "Close current project" ;# <-- NOT TRANSLATED YET # Main menu / Simulator ##ID:000112## mcset $l "Simulator" \ "Simulator" ;# <-- NOT TRANSLATED YET ##ID:000113## mcset $l "Start / Shutdown" \ "Start / Shutdown" ;# <-- NOT TRANSLATED YET ##ID:000114## mcset $l "Start simulator engine" \ "Start simulator engine" ;# <-- NOT TRANSLATED YET ##ID:000115## mcset $l "Debug this file only" \ "Debug this file only" ;# <-- NOT TRANSLATED YET ##ID:000116## mcset $l "Start simulator engine and load current file only" \ "Start simulator engine and load current file only" ;# <-- NOT TRANSLATED YET ##ID:000117## mcset $l "Step back" \ "Step back" ;# <-- NOT TRANSLATED YET ##ID:000118## mcset $l "Step program back by 1 instruction" \ "Step program back by 1 instruction" ;# <-- NOT TRANSLATED YET ##ID:000119## mcset $l "Step" \ "Step" ;# <-- NOT TRANSLATED YET ##ID:000120## mcset $l "Step program by 1 instruction" \ "Step program by 1 instruction" ;# <-- NOT TRANSLATED YET ##ID:000121## mcset $l "Step over" \ "Step over" ;# <-- NOT TRANSLATED YET ##ID:000122## mcset $l "Step program by 1 line of code" \ "Step program by 1 line of code" ;# <-- NOT TRANSLATED YET ##ID:000123## mcset $l "Animate" \ "Animate" ;# <-- NOT TRANSLATED YET ##ID:000124## mcset $l "Run program and show results after each change" \ "Run program and show results after each change" ;# <-- NOT TRANSLATED YET ##ID:000125## mcset $l "Run" \ "Run" ;# <-- NOT TRANSLATED YET ##ID:000126## mcset $l "Run program and show results periodically in some interval" \ "Run program and show results periodically in some interval" ;# <-- NOT TRANSLATED YET ##ID:000127## mcset $l "Hiberante program" \ "Hiberante program" ;# <-- NOT TRANSLATED YET ##ID:000128## mcset $l "Save current state of simulator engine to a file for future resumption" \ "Save current state of simulator engine to a file for future resumption" ;# <-- NOT TRANSLATED YET ##ID:000129## mcset $l "Resume hibernated program" \ "Resume hibernated program" ;# <-- NOT TRANSLATED YET ##ID:000130## mcset $l "Interrupt monitor" \ "Interrupt monitor" ;# <-- NOT TRANSLATED YET ##ID:000131## mcset $l "Dialog in which you can control MCU interrupts" \ "Dialog in which you can control MCU interrupts" ;# <-- NOT TRANSLATED YET ##ID:000132## mcset $l "Stopwatch" \ "Stopwatch" ;# <-- NOT TRANSLATED YET ##ID:000133## mcset $l "Configurable stopwatch timer which can stop simulation on various conditions" \ "Configurable stopwatch timer which can stop simulation on various conditions" ;# <-- NOT TRANSLATED YET ##ID:000134## mcset $l "Find cursor" \ "Find cursor" ;# <-- NOT TRANSLATED YET ##ID:000135## mcset $l "Find simulator cursor in the editor" \ "Find simulator cursor in the editor" ;# <-- NOT TRANSLATED YET ##ID:000136## mcset $l "Translate line number to address in program memory and set PC to that address" \ "Translate line number to address in program memory and set PC to that address" ;# <-- NOT TRANSLATED YET ##ID:000137## mcset $l "Clear highlight" \ "Clear highlight" ;# <-- NOT TRANSLATED YET ##ID:000138## mcset $l "Clear highlight for changed values" \ "Clear highlight for changed values" ;# <-- NOT TRANSLATED YET ##ID:000139## mcset $l "Allow breakpoints" \ "Allow breakpoints" ;# <-- NOT TRANSLATED YET ##ID:000140## mcset $l "Enable simulator breakpoints (marks, where to stop program in animate or run mode)" \ "Enable simulator breakpoints (marks, where to stop program in animate or run mode)" ;# <-- NOT TRANSLATED YET # Main menu / Virtual MCU ##ID:000141## mcset $l "Virtual MCU" \ "Virtual MCU" ;# <-- NOT TRANSLATED YET ##ID:000142## mcset $l "Show SFR map" \ "Show SFR map" ;# <-- NOT TRANSLATED YET ##ID:000143## mcset $l "Show map of special function registers area" \ "Show map of special function registers area" ;# <-- NOT TRANSLATED YET ##ID:000144## mcset $l "Show bit area" \ "Show bit area" ;# <-- NOT TRANSLATED YET ##ID:000145## mcset $l "Show bit addressable area" \ "Show bit addressable area" ;# <-- NOT TRANSLATED YET ##ID:000146## mcset $l "Show stack" \ "Show stack" ;# <-- NOT TRANSLATED YET ##ID:000147## mcset $l "Invoke MCU stack monitor" \ "Invoke MCU stack monitor" ;# <-- NOT TRANSLATED YET ##ID:000148## mcset $l "Show Code memory" \ "Show Code memory" ;# <-- NOT TRANSLATED YET ##ID:000149## mcset $l "Invoke hex editor with program code" \ "Invoke hex editor with program code" ;# <-- NOT TRANSLATED YET ##ID:000150## mcset $l "Show XDATA memory" \ "Show XDATA memory" ;# <-- NOT TRANSLATED YET ##ID:000151## mcset $l "Invoke hex editor with external data memory" \ "Invoke hex editor with external data memory" ;# <-- NOT TRANSLATED YET ##ID:000152## mcset $l "Show ERAM" \ "Show ERAM" ;# <-- NOT TRANSLATED YET ##ID:000153## mcset $l "Invoke hex editor with expanded RAM" \ "Invoke hex editor with expanded RAM" ;# <-- NOT TRANSLATED YET ##ID:000154## mcset $l "Show Data EEPROM" \ "Show Data EEPROM" ;# <-- NOT TRANSLATED YET ##ID:000155## mcset $l "Invoke hex editor with data EEPROM" \ "Invoke hex editor with data EEPROM" ;# <-- NOT TRANSLATED YET ##ID:000156## mcset $l "Show EEPROM write buffer" \ "Show EEPROM write buffer" ;# <-- NOT TRANSLATED YET ##ID:000157## mcset $l "Invoke hex editor editor with data EEPROM write buffer" \ "Invoke hex editor editor with data EEPROM write buffer" ;# <-- NOT TRANSLATED YET ##ID:000158## mcset $l "Reset" \ "Reset" ;# <-- NOT TRANSLATED YET ##ID:000159## mcset $l "Only SFR" \ "Only SFR" ;# <-- NOT TRANSLATED YET ##ID:000160## mcset $l "Reset Special Function Registers only" \ "Reset Special Function Registers only" ;# <-- NOT TRANSLATED YET ##ID:000161## mcset $l "All zeros" \ "All zeros" ;# <-- NOT TRANSLATED YET ##ID:000162## mcset $l "Reset all internal registers to zeroes" \ "Reset all internal registers to zeroes" ;# <-- NOT TRANSLATED YET ##ID:000163## mcset $l "All ones" \ "All ones" ;# <-- NOT TRANSLATED YET ##ID:000164## mcset $l "Reset all internal registers to ones (0xFF)" \ "Reset all internal registers to ones (0xFF)" ;# <-- NOT TRANSLATED YET ##ID:000165## mcset $l "Random values" \ "Random values" ;# <-- NOT TRANSLATED YET ##ID:000166## mcset $l "Reset all internal registers to random values" \ "Reset all internal registers to random values" ;# <-- NOT TRANSLATED YET ##ID:000167## mcset $l "Virtual UART terminal" \ "Virtual UART terminal" ;# <-- NOT TRANSLATED YET ##ID:000168## mcset $l "Simulated UART terminal connected to the MCU simulator" \ "Simulated UART terminal connected to the MCU simulator" ;# <-- NOT TRANSLATED YET # Main menu / Virtual HW ##ID:000169## mcset $l "Virtual HW" \ "Virtual HW" ;# <-- NOT TRANSLATED YET ##ID:000170## mcset $l "LED Panel" \ "LED Panel" ;# <-- NOT TRANSLATED YET ##ID:000171## mcset $l "LED Display" \ "LED Display" ;# <-- NOT TRANSLATED YET ##ID:000172## mcset $l "LED Matrix" \ "LED Matrix" ;# <-- NOT TRANSLATED YET ##ID:000173## mcset $l "LCD display (HD44780)" \ "LCD display (HD44780)" ;# <-- NOT TRANSLATED YET ##ID:000174## mcset $l "Multiplexed LED Display" \ "Multiplexed LED Display" ;# <-- NOT TRANSLATED YET ##ID:000175## mcset $l "LCD display controlled by HD44780" \ "LCD display controlled by HD44780" ;# <-- NOT TRANSLATED YET ##ID:000176## mcset $l "DS1620 thermometer" \ "DS1620 thermometer" ;# <-- NOT TRANSLATED YET ##ID:000177## mcset $l "DS1620 temperature sensor" \ "DS1620 temperature sensor" ;# <-- NOT TRANSLATED YET ##ID:000178## mcset $l "Simple Keypad" \ "Simple Keypad" ;# <-- NOT TRANSLATED YET ##ID:000179## mcset $l "Matrix Keypad" \ "Matrix Keypad" ;# <-- NOT TRANSLATED YET ##ID:000180## mcset $l "Load VHW connections from a file" \ "Load VHW connections from a file" ;# <-- NOT TRANSLATED YET ##ID:000181## mcset $l "Load" \ "Load" ;# <-- NOT TRANSLATED YET ##ID:000182## mcset $l "Import VHW connections from a file" \ "Import VHW connections from a file" ;# <-- NOT TRANSLATED YET ##ID:000183## mcset $l "Load recent" \ "Load recent" ;# <-- NOT TRANSLATED YET ##ID:000184## mcset $l "Save current VHW connections to a file" \ "Save current VHW connections to a file" ;# <-- NOT TRANSLATED YET ##ID:000185## mcset $l "Save current VHW connections under a different name" \ "Save current VHW connections under a different name" ;# <-- NOT TRANSLATED YET ##ID:000186## mcset $l "Remove all" \ "Remove all" ;# <-- NOT TRANSLATED YET ##ID:000187## mcset $l "Remove all VHW" \ "Remove all VHW" ;# <-- NOT TRANSLATED YET # Main menu / Tools ##ID:000188## mcset $l "Tools" \ "Tools" ;# <-- NOT TRANSLATED YET ##ID:000189## mcset $l "Compile" \ "Compile" ;# <-- NOT TRANSLATED YET ##ID:000190## mcset $l "Compile the source code" \ "Compile the source code" ;# <-- NOT TRANSLATED YET ##ID:000191## mcset $l "Compile this file" \ "Compile this file" ;# <-- NOT TRANSLATED YET ##ID:000192## mcset $l "Compile current file only" \ "Compile current file only" ;# <-- NOT TRANSLATED YET ##ID:000193## mcset $l "Disassemble" \ "Disassemble" ;# <-- NOT TRANSLATED YET ##ID:000194## mcset $l "Disassemble object code and open new editor with the result" \ "Disassemble object code and open new editor with the result" ;# <-- NOT TRANSLATED YET ##ID:000195## mcset $l "Encoding" \ "Encoding" ;# <-- NOT TRANSLATED YET ##ID:000196## mcset $l "End of line" \ "End of line" ;# <-- NOT TRANSLATED YET ##ID:000197## mcset $l "Auto indent" \ "Auto indent" ;# <-- NOT TRANSLATED YET ##ID:000198## mcset $l "Reformat source code (Indention level etc.)" \ "Reformat source code (Indention level etc.)" ;# <-- NOT TRANSLATED YET ##ID:000199## mcset $l "Change letter case" \ "Change letter case" ;# <-- NOT TRANSLATED YET ##ID:000200## mcset $l "Change letter case in source code (with options)" \ "Change letter case in source code (with options)" ;# <-- NOT TRANSLATED YET ##ID:000201## mcset $l "Export as XHTML" \ "Export as XHTML" ;# <-- NOT TRANSLATED YET ##ID:000202## mcset $l "Export highlighted code as XHTML file" \ "Export highlighted code as XHTML file" ;# <-- NOT TRANSLATED YET ##ID:000203## mcset $l "Export as LaTeX" \ "Export as LaTeX" ;# <-- NOT TRANSLATED YET ##ID:000204## mcset $l "Export highlighted code as LaTeX source, using package color" \ "Export highlighted code as LaTeX source, using package color" ;# <-- NOT TRANSLATED YET ##ID:000205## mcset $l "Document current function" \ "Document current function" ;# <-- NOT TRANSLATED YET ##ID:000206## mcset $l "Create doxygen documentation for function on current line" \ "Create doxygen documentation for function on current line" ;# <-- NOT TRANSLATED YET ##ID:000207## mcset $l "Run doxywizard" \ "Run doxywizard" ;# <-- NOT TRANSLATED YET ##ID:000208## mcset $l "Run doxygen front-end" \ "Run doxygen front-end" ;# <-- NOT TRANSLATED YET ##ID:000209## mcset $l "Clear C API documentation" \ "Clear C API documentation" ;# <-- NOT TRANSLATED YET ##ID:000210## mcset $l "Remove C API documentation created by doxygen" \ "Remove C API documentation created by doxygen" ;# <-- NOT TRANSLATED YET ##ID:000211## mcset $l "Build C API documentation" \ "Build C API documentation" ;# <-- NOT TRANSLATED YET ##ID:000212## mcset $l "Run doxygen to create C API documentation" \ "Run doxygen to create C API documentation" ;# <-- NOT TRANSLATED YET ##ID:000213## mcset $l "Clean up project folder" \ "Clean up project folder" ;# <-- NOT TRANSLATED YET ##ID:000214## mcset $l "Invoke dialog to remove needless files the project directory" \ "Invoke dialog to remove needless files the project directory" ;# <-- NOT TRANSLATED YET ##ID:000215## mcset $l "Custom command 0" \ "Custom command 0" ;# <-- NOT TRANSLATED YET ##ID:000216## mcset $l "Custom command 1" \ "Custom command 1" ;# <-- NOT TRANSLATED YET ##ID:000217## mcset $l "Custom command 2" \ "Custom command 2" ;# <-- NOT TRANSLATED YET # Main menu / Utilities / Encoding ##ID:000218## mcset $l "Unicode" \ "Unicode" ;# <-- NOT TRANSLATED YET ##ID:000219## mcset $l "Western European" \ "Western European" ;# <-- NOT TRANSLATED YET ##ID:000220## mcset $l "Central European" \ "Central European" ;# <-- NOT TRANSLATED YET ##ID:000221## mcset $l "Baltic" \ "Baltic" ;# <-- NOT TRANSLATED YET ##ID:000222## mcset $l "Cyrillic" \ "Cyrillic" ;# <-- NOT TRANSLATED YET ##ID:000223## mcset $l "Arabic" \ "Arabic" ;# <-- NOT TRANSLATED YET ##ID:000224## mcset $l "Greek" \ "Greek" ;# <-- NOT TRANSLATED YET ##ID:000225## mcset $l "Hebrew" \ "Hebrew" ;# <-- NOT TRANSLATED YET ##ID:000226## mcset $l "Turkish" \ "Turkish" ;# <-- NOT TRANSLATED YET ##ID:000227## mcset $l "Northern European" \ "Northern European" ;# <-- NOT TRANSLATED YET ##ID:000228## mcset $l "South-Eastern Europe" \ "South-Eastern Europe" ;# <-- NOT TRANSLATED YET ##ID:000229## mcset $l "Vietnamese" \ "Vietnamese" ;# <-- NOT TRANSLATED YET # Main menu / Utilities ##ID:000230## mcset $l "Utilities" \ "Utilities" ;# <-- NOT TRANSLATED YET ##ID:000231## mcset $l "Hex -> Bin" \ "Hex -> Bin" ;# <-- NOT TRANSLATED YET ##ID:000232## mcset $l "Bin -> Hex" \ "Bin -> Hex" ;# <-- NOT TRANSLATED YET ##ID:000233## mcset $l "Sim -> Hex" \ "Sim -> Hex" ;# <-- NOT TRANSLATED YET ##ID:000234## mcset $l "Sim -> Bin" \ "Sim -> Bin" ;# <-- NOT TRANSLATED YET ##ID:000235## mcset $l "Convert Intel HEX 8 file to binary file" \ "Convert Intel HEX 8 file to binary file" ;# <-- NOT TRANSLATED YET ##ID:000236## mcset $l "Convert binary file to Intel HEX 8 file" \ "Convert binary file to Intel HEX 8 file" ;# <-- NOT TRANSLATED YET ##ID:000237## mcset $l "Convert simulator file to Intel HEX 8 file" \ "Convert simulator file to Intel HEX 8 file" ;# <-- NOT TRANSLATED YET ##ID:000238## mcset $l "Convert simulator file to binary file" \ "Convert simulator file to binary file" ;# <-- NOT TRANSLATED YET ##ID:000239## mcset $l "Normalize Intel 8 hex file" \ "Normalize Intel 8 hex file" ;# <-- NOT TRANSLATED YET ##ID:000240## mcset $l "Reformat the given IHEX8" \ "Reformat the given IHEX8" ;# <-- NOT TRANSLATED YET ##ID:000241## mcset $l "Hex Editor" \ "Hex Editor" ;# <-- NOT TRANSLATED YET ##ID:000242## mcset $l "Invoke project independent hexadecimal editor with capacity of 64KB" \ "Invoke project independent hexadecimal editor with capacity of 64KB" ;# <-- NOT TRANSLATED YET ##ID:000243## mcset $l "Symbol Table" \ "Symbol Table" ;# <-- NOT TRANSLATED YET ##ID:000244## mcset $l "Assembly language symbol table viewer" \ "Assembly language symbol table viewer" ;# <-- NOT TRANSLATED YET ##ID:000245## mcset $l "8-Segment Editor" \ "8-Segment Editor" ;# <-- NOT TRANSLATED YET ##ID:000246## mcset $l "8-Segment LED Display Editor" \ "8-Segment LED Display Editor" ;# <-- NOT TRANSLATED YET ##ID:000247## mcset $l "ASCII Chart" \ "ASCII Chart" ;# <-- NOT TRANSLATED YET ##ID:000248## mcset $l "8051 Instruction Table" \ "8051 Instruction Table" ;# <-- NOT TRANSLATED YET ##ID:000249## mcset $l "Interactive table of 8051 instructions" \ "Interactive table of 8051 instructions" ;# <-- NOT TRANSLATED YET ##ID:000250## mcset $l "Scribble Notepad" \ "Scribble Notepad" ;# <-- NOT TRANSLATED YET ##ID:000251## mcset $l "Base Converter" \ "Base Converter" ;# <-- NOT TRANSLATED YET ##ID:000252## mcset $l "Special Calculator" \ "Special Calculator" ;# <-- NOT TRANSLATED YET ##ID:000253## mcset $l "UART/RS232 Debugger" \ "UART/RS232 Debugger" ;# <-- NOT TRANSLATED YET # Main menu / Configure ##ID:000254## mcset $l "Configure" \ "Configure" ;# <-- NOT TRANSLATED YET ##ID:000255## mcset $l "Configure Editor" \ "Configure Editor" ;# <-- NOT TRANSLATED YET ##ID:000256## mcset $l "Editor configuration (colors, fonts, highlighting, etc.)" \ "Editor configuration (colors, fonts, highlighting, etc.)" ;# <-- NOT TRANSLATED YET ##ID:000257## mcset $l "Configure Compiler" \ "Configure Compiler" ;# <-- NOT TRANSLATED YET ##ID:000258## mcset $l "Various compilation options" \ "Various compilation options" ;# <-- NOT TRANSLATED YET ##ID:000259## mcset $l "Configure Simulator" \ "Configure Simulator" ;# <-- NOT TRANSLATED YET ##ID:000260## mcset $l "Opens simulator configuration dialog" \ "Opens simulator configuration dialog" ;# <-- NOT TRANSLATED YET ##ID:000261## mcset $l "Configure Right Panel" \ "Configure Right Panel" ;# <-- NOT TRANSLATED YET ##ID:000262## mcset $l "Right panel configuration (instruction details colors)" \ "Right panel configuration (instruction details colors)" ;# <-- NOT TRANSLATED YET ##ID:000263## mcset $l "Configure Main Toolbar" \ "Configure Main Toolbar" ;# <-- NOT TRANSLATED YET ##ID:000264## mcset $l "Adjust content of the main toolbar (under main menu)" \ "Adjust content of the main toolbar (under main menu)" ;# <-- NOT TRANSLATED YET ##ID:000265## mcset $l "Edit custom commands" \ "Edit custom commands" ;# <-- NOT TRANSLATED YET ##ID:000266## mcset $l "Set or modify user defined commands" \ "Set or modify user defined commands" ;# <-- NOT TRANSLATED YET ##ID:000267## mcset $l "Configure shortcuts" \ "Configure shortcuts" ;# <-- NOT TRANSLATED YET ##ID:000268## mcset $l "Set or modify key shortcuts" \ "Set or modify key shortcuts" ;# <-- NOT TRANSLATED YET ##ID:000269## mcset $l "Configure terminal emulator" \ "Configure terminal emulator" ;# <-- NOT TRANSLATED YET ##ID:000270## mcset $l "Configure embedded terminal emulator -- RXVT-UNICODE" \ "Configure embedded terminal emulator -- RXVT-UNICODE" ;# <-- NOT TRANSLATED YET ##ID:000271## mcset $l "Configure MCU 8051 IDE" \ "Configure MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:000272## mcset $l "Invoke global configuration dialog" \ "Invoke global configuration dialog" ;# <-- NOT TRANSLATED YET # Main menu / Help ##ID:000273## mcset $l "Help" \ "Help" ;# <-- NOT TRANSLATED YET ##ID:000274## mcset $l "About" \ "About" ;# <-- NOT TRANSLATED YET ##ID:000275## mcset $l "About MCU 8051 IDE" \ "About MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:000276## mcset $l "Display the documentation for MCU 8051 IDE" \ "Display the documentation for MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:000277## mcset $l "Welcome Dialog" \ "Welcome Dialog" ;# <-- NOT TRANSLATED YET ##ID:000278## mcset $l "Invoke dialog which you have seen on the first start" \ "Invoke dialog which you have seen on the first start" ;# <-- NOT TRANSLATED YET ##ID:000279## mcset $l "Tip of the Day" \ "Tip of the Day" ;# <-- NOT TRANSLATED YET ##ID:000280## mcset $l "Some tips about how to use this program more efficiently" \ "Some tips about how to use this program more efficiently" ;# <-- NOT TRANSLATED YET ##ID:000281## mcset $l "Project web page" \ "Project web page" ;# <-- NOT TRANSLATED YET ##ID:000282## mcset $l "Report a bug" \ "Report a bug" ;# <-- NOT TRANSLATED YET ##ID:000283## mcset $l "ASEM-51 manual" \ "ASEM-51 manual" ;# <-- NOT TRANSLATED YET ##ID:000284## mcset $l "SDCC manual" \ "SDCC manual" ;# <-- NOT TRANSLATED YET ##ID:000285## mcset $l "Handbook" \ "Handbook" ;# <-- NOT TRANSLATED YET # Toolbar ##ID:000286## mcset $l "Hide toolbar" \ "Hide toolbar" ;# <-- NOT TRANSLATED YET ##ID:000287## mcset $l "Show toolbar" \ "Show toolbar" ;# <-- NOT TRANSLATED YET ##ID:000288## mcset $l "Configure Toolbar" \ "Configure Toolbar" ;# <-- NOT TRANSLATED YET ##ID:000289## mcset $l "Configure main toolbar" \ "Configure main toolbar" ;# <-- NOT TRANSLATED YET ##ID:000290## mcset $l "Hide main toolbar" \ "Hide main toolbar" ;# <-- NOT TRANSLATED YET ##ID:000291## mcset $l "Configure custom commands" \ "Configure custom commands" ;# <-- NOT TRANSLATED YET ##ID:000292## mcset $l "Invoke custom commands configuration dialog" \ "Invoke custom commands configuration dialog" ;# <-- NOT TRANSLATED YET set ::TOOLBAR_TRANSLATIONS { ##ID:000293## mcset $l "Open file" \ "Open file" ;# <-- NOT TRANSLATED YET ##ID:000294## mcset $l "Save all opened files (in this project)" \ "Save all opened files (in this project)" ;# <-- NOT TRANSLATED YET ##ID:000295## mcset $l "Exit" \ "Exit" ;# <-- NOT TRANSLATED YET ##ID:000296## mcset $l "Exit application" \ "Exit application" ;# <-- NOT TRANSLATED YET ##ID:000297## mcset $l "Reload the current file" \ "Reload the current file" ;# <-- NOT TRANSLATED YET ##ID:000298## mcset $l "Open project" \ "Open project" ;# <-- NOT TRANSLATED YET ##ID:000299## mcset $l "Save project" \ "Save project" ;# <-- NOT TRANSLATED YET ##ID:000300## mcset $l "Save and close project" \ "Save and close project" ;# <-- NOT TRANSLATED YET ##ID:000301## mcset $l "Close project without saving" \ "Close project without saving" ;# <-- NOT TRANSLATED YET ##ID:000302## mcset $l "Show CODE memory" \ "Show CODE memory" ;# <-- NOT TRANSLATED YET ##ID:000303## mcset $l "Show data EEPROM" \ "Show data EEPROM" ;# <-- NOT TRANSLATED YET ##ID:000304## mcset $l "Start / Shutdown simulator" \ "Start / Shutdown simulator" ;# <-- NOT TRANSLATED YET ##ID:000305## mcset $l "Load debug file into simulator engine" \ "Load debug file into simulator engine" ;# <-- NOT TRANSLATED YET ##ID:000306## mcset $l "Perform HW reset" \ "Perform HW reset" ;# <-- NOT TRANSLATED YET ##ID:000307## mcset $l "Step program" \ "Step program" ;# <-- NOT TRANSLATED YET ##ID:000308## mcset $l "Step by 1 instruction" \ "Step by 1 instruction" ;# <-- NOT TRANSLATED YET ##ID:000309## mcset $l "Step by 1 line of code" \ "Step by 1 line of code" ;# <-- NOT TRANSLATED YET ##ID:000310## mcset $l "Animate program" \ "Animate program" ;# <-- NOT TRANSLATED YET ##ID:000311## mcset $l "Run program and show results after each instruction" \ "Run program and show results after each instruction" ;# <-- NOT TRANSLATED YET ##ID:000312## mcset $l "Run program" \ "Run program" ;# <-- NOT TRANSLATED YET ##ID:000313## mcset $l "Run program in simulator" \ "Run program in simulator" ;# <-- NOT TRANSLATED YET ##ID:000314## mcset $l "Hibernate program" \ "Hibernate program" ;# <-- NOT TRANSLATED YET ##ID:000315## mcset $l "Hibernate running program to a file" \ "Hibernate running program to a file" ;# <-- NOT TRANSLATED YET ##ID:000316## mcset $l "Resume program" \ "Resume program" ;# <-- NOT TRANSLATED YET ##ID:000317## mcset $l "Configurable stopwatch timer which stop simulation on various conditions" \ "Configurable stopwatch timer which stop simulation on various conditions" ;# <-- NOT TRANSLATED YET ##ID:000318## mcset $l "Compile source code" \ "Compile source code" ;# <-- NOT TRANSLATED YET ##ID:000319## mcset $l "Symbol table" \ "Symbol table" ;# <-- NOT TRANSLATED YET ##ID:000320## mcset $l "8-segment editor" \ "8-segment editor" ;# <-- NOT TRANSLATED YET ##ID:000321## mcset $l "8-segment LED display editor" \ "8-segment LED display editor" ;# <-- NOT TRANSLATED YET ##ID:000322## mcset $l "ASCII chart" \ "ASCII chart" ;# <-- NOT TRANSLATED YET ##ID:000323## mcset $l "Reformat source code (Indention level ...)" \ "Reformat source code (Indention level ...)" ;# <-- NOT TRANSLATED YET ##ID:000324## mcset $l "Switch to the next editor" \ "Switch to the next editor" ;# <-- NOT TRANSLATED YET ##ID:000325## mcset $l "Switch to the previous editor" \ "Switch to the previous editor" ;# <-- NOT TRANSLATED YET ##ID:000326## mcset $l "Tip of the day" \ "Tip of the day" ;# <-- NOT TRANSLATED YET ##ID:000327## mcset $l "Scribble notepad" \ "Scribble notepad" ;# <-- NOT TRANSLATED YET ##ID:000328## mcset $l "LED panel" \ "LED panel" ;# <-- NOT TRANSLATED YET ##ID:000329## mcset $l "LED display" \ "LED display" ;# <-- NOT TRANSLATED YET ##ID:000330## mcset $l "LED matrix" \ "LED matrix" ;# <-- NOT TRANSLATED YET ##ID:000331## mcset $l "Multiplexed LED display" \ "Multiplexed LED display" ;# <-- NOT TRANSLATED YET ##ID:000332## mcset $l "Simple keypad" \ "Simple keypad" ;# <-- NOT TRANSLATED YET ##ID:000333## mcset $l "Matrix keypad" \ "Matrix keypad" ;# <-- NOT TRANSLATED YET ##ID:000334## mcset $l "VHW Open" \ "VHW Open" ;# <-- NOT TRANSLATED YET ##ID:000335## mcset $l "VHW Load" \ "VHW Load" ;# <-- NOT TRANSLATED YET ##ID:000336## mcset $l "VHW Save" \ "VHW Save" ;# <-- NOT TRANSLATED YET ##ID:000337## mcset $l "VHW Save as" \ "VHW Save as" ;# <-- NOT TRANSLATED YET ##ID:000338## mcset $l "VHW Remove all" \ "VHW Remove all" ;# <-- NOT TRANSLATED YET ##ID:000339## mcset $l "Special calculator" \ "Special calculator" ;# <-- NOT TRANSLATED YET } namespace eval toolbar { eval ${::TOOLBAR_TRANSLATIONS} } } # asciichart.tcl # ============================================================================== namespace eval AsciiChart { ##ID:000340## mcset $l "ASCII chart" \ "ASCII chart" ;# <-- NOT TRANSLATED YET ##ID:000341## mcset $l "Exit" \ "Exit" ;# <-- NOT TRANSLATED YET ##ID:000342## mcset $l "Character: " \ "Character: " ;# <-- NOT TRANSLATED YET ##ID:000343## mcset $l "Hex address" \ "Hex address" ;# <-- NOT TRANSLATED YET ##ID:000344## mcset $l "Dec address" \ "Dec address" ;# <-- NOT TRANSLATED YET ##ID:000345## mcset $l "Oct address" \ "Oct address" ;# <-- NOT TRANSLATED YET ##ID:000346## mcset $l "Bin address" \ "Bin address" ;# <-- NOT TRANSLATED YET ##ID:000347## mcset $l "Caret notation" \ "Caret notation" ;# <-- NOT TRANSLATED YET ##ID:000348## mcset $l "C Escape Code" \ "C Escape Code" ;# <-- NOT TRANSLATED YET ##ID:000349## mcset $l "%s - Copy contents of entrybox to clipboard" \ "%s - Copy contents of entrybox to clipboard" ;# <-- NOT TRANSLATED YET ##ID:000350## mcset $l "Copy to clipboard" \ "Copy to clipboard" ;# <-- NOT TRANSLATED YET } # baseconverter.tcl # ============================================================================== namespace eval BaseConverter { ##ID:000351## mcset $l "Converter" \ "Converter" ;# <-- NOT TRANSLATED YET ##ID:000352## mcset $l "Enlarge" \ "Enlarge" ;# <-- NOT TRANSLATED YET ##ID:000353## mcset $l "More" \ "More" ;# <-- NOT TRANSLATED YET ##ID:000354## mcset $l "Shrink" \ "Shrink" ;# <-- NOT TRANSLATED YET ##ID:000355## mcset $l "Less" \ "Less" ;# <-- NOT TRANSLATED YET ##ID:000356## mcset $l "Bits" \ "Bits" ;# <-- NOT TRANSLATED YET ##ID:000357## mcset $l "BCD" \ "BCD" ;# <-- NOT TRANSLATED YET ##ID:000358## mcset $l "ASCII" \ "ASCII" ;# <-- NOT TRANSLATED YET ##ID:000359## mcset $l "HEX" \ "HEX" ;# <-- NOT TRANSLATED YET ##ID:000360## mcset $l "DEC" \ "DEC" ;# <-- NOT TRANSLATED YET ##ID:000361## mcset $l "BIN" \ "BIN" ;# <-- NOT TRANSLATED YET ##ID:000362## mcset $l "OCT" \ "OCT" ;# <-- NOT TRANSLATED YET } # bitmap.tcl # ============================================================================== namespace eval BitMap { ##ID:000363## mcset $l "Log. 0" \ "Log. 0" ;# <-- NOT TRANSLATED YET ##ID:000364## mcset $l "Log. 1" \ "Log. 1" ;# <-- NOT TRANSLATED YET ##ID:000365## mcset $l "Bit addr." \ "Bit addr." ;# <-- NOT TRANSLATED YET ##ID:000366## mcset $l "Reg. addr." \ "Reg. addr." ;# <-- NOT TRANSLATED YET ##ID:000367## mcset $l "Register: " \ "Register: " ;# <-- NOT TRANSLATED YET ##ID:000368## mcset $l " Bit address: " \ " Bit address: " ;# <-- NOT TRANSLATED YET ##ID:000369## mcset $l "Bit addressable area - %s - %s - %s" \ "Bit addressable area - %s - %s - %s" ;# <-- NOT TRANSLATED YET } # bottomnotebook.tcl # ============================================================================== namespace eval BottomNoteBook { ##ID:000370## mcset $l "Simulator" \ "Simulator" ;# <-- NOT TRANSLATED YET ##ID:000371## mcset $l "C variables" \ "C variables" ;# <-- NOT TRANSLATED YET ##ID:000372## mcset $l "IO Ports" \ "IO Ports" ;# <-- NOT TRANSLATED YET ##ID:000373## mcset $l "Messages" \ "Messages" ;# <-- NOT TRANSLATED YET ##ID:000374## mcset $l "Calculator" \ "Calculator" ;# <-- NOT TRANSLATED YET ##ID:000375## mcset $l "Notes" \ "Notes" ;# <-- NOT TRANSLATED YET ##ID:000376## mcset $l "Terminal" \ "Terminal" ;# <-- NOT TRANSLATED YET ##ID:000377## mcset $l "Find in files" \ "Find in files" ;# <-- NOT TRANSLATED YET ##ID:000378## mcset $l "Show" \ "Show" ;# <-- NOT TRANSLATED YET ##ID:000379## mcset $l "Hide" \ "Hide" ;# <-- NOT TRANSLATED YET ##ID:000380## mcset $l "Simulator panel %s" \ "Simulator panel %s" ;# <-- NOT TRANSLATED YET ##ID:000381## mcset $l "Variables from C source code %s" \ "Variables from C source code %s" ;# <-- NOT TRANSLATED YET ##ID:000382## mcset $l "Graph showing state of MCU ports %s" \ "Graph showing state of MCU ports %s" ;# <-- NOT TRANSLATED YET ##ID:000383## mcset $l "Compiler messages %s" \ "Compiler messages %s" ;# <-- NOT TRANSLATED YET ##ID:000384## mcset $l "Personal to do list & notepad %s" \ "Personal to do list & notepad %s" ;# <-- NOT TRANSLATED YET ##ID:000385## mcset $l "Scientific calculator %s" \ "Scientific calculator %s" ;# <-- NOT TRANSLATED YET ##ID:000386## mcset $l "Terminal emulator %s" \ "Terminal emulator %s" ;# <-- NOT TRANSLATED YET ##ID:000387## mcset $l "Find in files %s" \ "Find in files %s" ;# <-- NOT TRANSLATED YET ##ID:000388## mcset $l "Hide this panel" \ "Hide this panel" ;# <-- NOT TRANSLATED YET ##ID:000389## mcset $l "Show this panel" \ "Show this panel" ;# <-- NOT TRANSLATED YET ##ID:000390## mcset $l "Simulator panel" \ "Simulator panel" ;# <-- NOT TRANSLATED YET ##ID:000391## mcset $l "List of variables defined in C program" \ "List of variables defined in C program" ;# <-- NOT TRANSLATED YET ##ID:000392## mcset $l "Graph showing voltage levels" \ "Graph showing voltage levels" ;# <-- NOT TRANSLATED YET ##ID:000393## mcset $l "Compiler messages" \ "Compiler messages" ;# <-- NOT TRANSLATED YET ##ID:000394## mcset $l "Editable notepad" \ "Editable notepad" ;# <-- NOT TRANSLATED YET ##ID:000395## mcset $l "Scientific calculator" \ "Scientific calculator" ;# <-- NOT TRANSLATED YET ##ID:000396## mcset $l "Linux terminal emulator" \ "Linux terminal emulator" ;# <-- NOT TRANSLATED YET ##ID:000397## mcset $l "Search string in files" \ "Search string in files" ;# <-- NOT TRANSLATED YET ##ID:000398## mcset $l "Hide the panel" \ "Hide the panel" ;# <-- NOT TRANSLATED YET ##ID:000399## mcset $l "Show the panel" \ "Show the panel" ;# <-- NOT TRANSLATED YET } # calculator.tcl # ============================================================================== namespace eval Calculator { ##ID:000400## mcset $l "Save" \ "Save" ;# <-- NOT TRANSLATED YET ##ID:000401## mcset $l "Load" \ "Load" ;# <-- NOT TRANSLATED YET ##ID:000402## mcset $l "Calculator: M%s saved" \ "Calculator: M%s saved" ;# <-- NOT TRANSLATED YET ##ID:000403## mcset $l "Calculator: Unable to evaluate, missing argument" \ "Calculator: Unable to evaluate, missing argument" ;# <-- NOT TRANSLATED YET ##ID:000404## mcset $l "Calculator: Unable to evaluate, missing operator" \ "Calculator: Unable to evaluate, missing operator" ;# <-- NOT TRANSLATED YET ##ID:000405## mcset $l "Calculator: WARNING result is +/- infinity => operation terminated !" \ "Calculator: WARNING result is +/- infinity => operation terminated !" ;# <-- NOT TRANSLATED YET ##ID:000406## mcset $l "Calculator: This value is too high to invert (max. 0xFFFFFFFF)" \ "Calculator: This value is too high to invert (max. 0xFFFFFFFF)" ;# <-- NOT TRANSLATED YET ##ID:000407## mcset $l "Calculator: ERROR (result value is out of allowed range)" \ "Calculator: ERROR (result value is out of allowed range)" ;# <-- NOT TRANSLATED YET ##ID:000408## mcset $l "Calculator: Unable to evaluate, result value is too high" \ "Calculator: Unable to evaluate, result value is too high" ;# <-- NOT TRANSLATED YET ##ID:000409## mcset $l "Calculator: UNDO: previous state was: %s %s %s" \ "Calculator: UNDO: previous state was: %s %s %s" ;# <-- NOT TRANSLATED YET ##ID:000410## mcset $l "Calculator: REDO: previous state was: %s %s %s" \ "Calculator: REDO: previous state was: %s %s %s" ;# <-- NOT TRANSLATED YET ##ID:000411## mcset $l "Calculator: Value is too high to convert, value deleted !" \ "Calculator: Value is too high to convert, value deleted !" ;# <-- NOT TRANSLATED YET ##ID:000412## mcset $l "Calculator: ERROR, result is too high (cannot be displayed)" \ "Calculator: ERROR, result is too high (cannot be displayed)" ;# <-- NOT TRANSLATED YET ##ID:000413## mcset $l "Calculator: ERROR, value is too high" \ "Calculator: ERROR, value is too high" ;# <-- NOT TRANSLATED YET ##ID:000414## mcset $l "Buffer display" \ "Buffer display" ;# <-- NOT TRANSLATED YET ##ID:000415## mcset $l "Calculator buffer" \ "Calculator buffer" ;# <-- NOT TRANSLATED YET ##ID:000416## mcset $l "Selected operation" \ "Selected operation" ;# <-- NOT TRANSLATED YET ##ID:000417## mcset $l "Main display" \ "Main display" ;# <-- NOT TRANSLATED YET ##ID:000418## mcset $l "Numeric base" \ "Numeric base" ;# <-- NOT TRANSLATED YET ##ID:000419## mcset $l "Angle unit" \ "Angle unit" ;# <-- NOT TRANSLATED YET ##ID:000420## mcset $l "Clear both displays" \ "Clear both displays" ;# <-- NOT TRANSLATED YET ##ID:000421## mcset $l "Clear main display" \ "Clear main display" ;# <-- NOT TRANSLATED YET ##ID:000422## mcset $l "Negate value in main display" \ "Negate value in main display" ;# <-- NOT TRANSLATED YET ##ID:000423## mcset $l "Memory bank %s" \ "Memory bank %s" ;# <-- NOT TRANSLATED YET ##ID:000424## mcset $l "Save content of main display to this memory bank %s" \ "Save content of main display to this memory bank %s" ;# <-- NOT TRANSLATED YET ##ID:000425## mcset $l "Load content of this bank into main display" \ "Load content of this bank into main display" ;# <-- NOT TRANSLATED YET ##ID:000426## mcset $l "Load content of memory bank %s into calculator main display" \ "Load content of memory bank %s into calculator main display" ;# <-- NOT TRANSLATED YET ##ID:000427## mcset $l "Timers preset" \ "Timers preset" ;# <-- NOT TRANSLATED YET ##ID:000428## mcset $l "Invalid numerical base: '%s'" \ "Invalid numerical base: '%s'" ;# <-- NOT TRANSLATED YET ##ID:000429## mcset $l "Invalid angle unit: '%s'" \ "Invalid angle unit: '%s'" ;# <-- NOT TRANSLATED YET ##ID:000430## mcset $l "Calculator - timers preset: you are trying to insert an invalid value" \ "Calculator - timers preset: you are trying to insert an invalid value" ;# <-- NOT TRANSLATED YET ##ID:000431## mcset $l "Frequency \[kHz\]" \ "Frequency \[kHz\]" ;# <-- NOT TRANSLATED YET ##ID:000432## mcset $l "Mode" \ "Mode" ;# <-- NOT TRANSLATED YET ##ID:000433## mcset $l "Time \[us\]" \ "Time \[us\]" ;# <-- NOT TRANSLATED YET ##ID:000434## mcset $l "DEC" \ "DEC" ;# <-- NOT TRANSLATED YET ##ID:000435## mcset $l "HEX" \ "HEX" ;# <-- NOT TRANSLATED YET ##ID:000436## mcset $l "OCT" \ "OCT" ;# <-- NOT TRANSLATED YET ##ID:000437## mcset $l "Repeats" \ "Repeats" ;# <-- NOT TRANSLATED YET ##ID:000438## mcset $l "Correction" \ "Correction" ;# <-- NOT TRANSLATED YET ##ID:000439## mcset $l "Bit-wise AND" \ "Bit-wise AND" ;# <-- NOT TRANSLATED YET ##ID:000440## mcset $l "Bit-wise AND. Valid for integer operands only." \ "Bit-wise AND. Valid for integer operands only." ;# <-- NOT TRANSLATED YET ##ID:000441## mcset $l "Sine" \ "Sine" ;# <-- NOT TRANSLATED YET ##ID:000442## mcset $l "Cosine" \ "Cosine" ;# <-- NOT TRANSLATED YET ##ID:000443## mcset $l "Tangent" \ "Tangent" ;# <-- NOT TRANSLATED YET ##ID:000444## mcset $l "Bit-wise OR" \ "Bit-wise OR" ;# <-- NOT TRANSLATED YET ##ID:000445## mcset $l "Bit-wise OR. Valid for integer operands only." \ "Bit-wise OR. Valid for integer operands only." ;# <-- NOT TRANSLATED YET ##ID:000446## mcset $l "Arc sine" \ "Arc sine" ;# <-- NOT TRANSLATED YET ##ID:000447## mcset $l "Arc sine. Argument should be in the range \[-1,1\]." \ "Arc sine. Argument should be in the range \[-1,1\]." ;# <-- NOT TRANSLATED YET ##ID:000448## mcset $l "Arc cosine" \ "Arc cosine" ;# <-- NOT TRANSLATED YET ##ID:000449## mcset $l "Arc cosine. Argument should be in the range \[-1,1\]." \ "Arc cosine. Argument should be in the range \[-1,1\]." ;# <-- NOT TRANSLATED YET ##ID:000450## mcset $l "Arc tangent" \ "Arc tangent" ;# <-- NOT TRANSLATED YET ##ID:000451## mcset $l "Bit-wise NOT" \ "Bit-wise NOT" ;# <-- NOT TRANSLATED YET ##ID:000452## mcset $l "Bit-wise NOT. Valid for integer operands only." \ "Bit-wise NOT. Valid for integer operands only." ;# <-- NOT TRANSLATED YET ##ID:000453## mcset $l "Exponential of argument (e**arg)" \ "Exponential of argument (e**arg)" ;# <-- NOT TRANSLATED YET ##ID:000454## mcset $l "Square root" \ "Square root" ;# <-- NOT TRANSLATED YET ##ID:000455## mcset $l "Square root. Argument must be non-negative." \ "Square root. Argument must be non-negative." ;# <-- NOT TRANSLATED YET ##ID:000456## mcset $l "Power" \ "Power" ;# <-- NOT TRANSLATED YET ##ID:000457## mcset $l "Computes the value of x raised to the power y. If x is negative, y must be an integer value." \ "Computes the value of x raised to the power y. If x is negative, y must be an integer value." ;# <-- NOT TRANSLATED YET ##ID:000458## mcset $l "Bit-wise exclusive OR" \ "Bit-wise exclusive OR" ;# <-- NOT TRANSLATED YET ##ID:000459## mcset $l "Bit-wise exclusive OR. Valid for integer operands only." \ "Bit-wise exclusive OR. Valid for integer operands only." ;# <-- NOT TRANSLATED YET ##ID:000460## mcset $l "Base 10 logarithm" \ "Base 10 logarithm" ;# <-- NOT TRANSLATED YET ##ID:000461## mcset $l "Returns the base 10 logarithm of argument. Argument must be a positive value." \ "Returns the base 10 logarithm of argument. Argument must be a positive value." ;# <-- NOT TRANSLATED YET ##ID:000462## mcset $l "Natural logarithm" \ "Natural logarithm" ;# <-- NOT TRANSLATED YET ##ID:000463## mcset $l "Returns the natural logarithm of argument. Argument must be a positive value." \ "Returns the natural logarithm of argument. Argument must be a positive value." ;# <-- NOT TRANSLATED YET ##ID:000464## mcset $l "Constant Pi" \ "Constant Pi" ;# <-- NOT TRANSLATED YET ##ID:000465## mcset $l "Right shift" \ "Right shift" ;# <-- NOT TRANSLATED YET ##ID:000466## mcset $l "Right shift. Valid for integer operands only. A right shift always propagates the sign bit." \ "Right shift. Valid for integer operands only. A right shift always propagates the sign bit." ;# <-- NOT TRANSLATED YET ##ID:000467## mcset $l "Modulo" \ "Modulo" ;# <-- NOT TRANSLATED YET ##ID:000468## mcset $l "Computes remainder of integer division" \ "Computes remainder of integer division" ;# <-- NOT TRANSLATED YET ##ID:000469## mcset $l "Undo last operation" \ "Undo last operation" ;# <-- NOT TRANSLATED YET ##ID:000470## mcset $l "Undo last operation. Not all operations are supported." \ "Undo last operation. Not all operations are supported." ;# <-- NOT TRANSLATED YET ##ID:000471## mcset $l "Take back last undo operation" \ "Take back last undo operation" ;# <-- NOT TRANSLATED YET ##ID:000472## mcset $l "Take back last undo operation. Not all operations are supported." \ "Take back last undo operation. Not all operations are supported." ;# <-- NOT TRANSLATED YET } # innerwindow.tcl # ============================================================================== namespace eval InnerWindow { ##ID:000473## mcset $l "Shade/Unshade" \ "Shade/Unshade" ;# <-- NOT TRANSLATED YET ##ID:000474## mcset $l "Close" \ "Close" ;# <-- NOT TRANSLATED YET ##ID:000475## mcset $l "Shade" \ "Shade" ;# <-- NOT TRANSLATED YET } # configdialogues.tcl # ============================================================================== namespace eval ::configDialogues::editor { ##ID:000476## mcset $l "Editor configuration - %s" \ "Editor configuration - %s" ;# <-- NOT TRANSLATED YET ##ID:000477## mcset $l "Editor configuration" \ "Editor configuration" ;# <-- NOT TRANSLATED YET ##ID:000478## mcset $l "Editor" \ "Editor" ;# <-- NOT TRANSLATED YET ##ID:000479## mcset $l "Editor selection" \ "Editor selection" ;# <-- NOT TRANSLATED YET ##ID:000480## mcset $l "General" \ "General" ;# <-- NOT TRANSLATED YET ##ID:000481## mcset $l "General configuration" \ "General configuration" ;# <-- NOT TRANSLATED YET ##ID:000482## mcset $l "Colors" \ "Colors" ;# <-- NOT TRANSLATED YET ##ID:000483## mcset $l "Various colors in editor" \ "Various colors in editor" ;# <-- NOT TRANSLATED YET ##ID:000484## mcset $l "Fonts" \ "Fonts" ;# <-- NOT TRANSLATED YET ##ID:000485## mcset $l "Fonts used by editor" \ "Fonts used by editor" ;# <-- NOT TRANSLATED YET ##ID:000486## mcset $l "Syntax highlight" \ "Syntax highlight" ;# <-- NOT TRANSLATED YET ##ID:000487## mcset $l "Source code highlighting" \ "Source code highlighting" ;# <-- NOT TRANSLATED YET ##ID:000488## mcset $l "Apply" \ "Apply" ;# <-- NOT TRANSLATED YET ##ID:000489## mcset $l "Ok" \ "Ok" ;# <-- NOT TRANSLATED YET ##ID:000490## mcset $l "Cancel" \ "Cancel" ;# <-- NOT TRANSLATED YET ##ID:000491## mcset $l "Preferred editor:" \ "Preferred editor:" ;# <-- NOT TRANSLATED YET ##ID:000492## mcset $l "Native editor" \ "Native editor" ;# <-- NOT TRANSLATED YET ##ID:000493## mcset $l "(This change will take effect upon next start.)" \ "(This change will take effect upon next start.)" ;# <-- NOT TRANSLATED YET ##ID:000494## mcset $l "Editing" \ "Editing" ;# <-- NOT TRANSLATED YET ##ID:000495## mcset $l "File opening, saving, etc." \ "File opening, saving, etc." ;# <-- NOT TRANSLATED YET ##ID:000496## mcset $l "Command line" \ "Command line" ;# <-- NOT TRANSLATED YET ##ID:000497## mcset $l "Auto brackets" \ "Auto brackets" ;# <-- NOT TRANSLATED YET ##ID:000498## mcset $l "When you type a left bracket, editor\nwill automatically insert right bracket" \ "When you type a left bracket, editor\nwill automatically insert right bracket" ;# <-- NOT TRANSLATED YET ##ID:000499## mcset $l "Indentation mode" \ "Indentation mode" ;# <-- NOT TRANSLATED YET ##ID:000500## mcset $l "none" \ "none" ;# <-- NOT TRANSLATED YET ##ID:000501## mcset $l "normal" \ "normal" ;# <-- NOT TRANSLATED YET ##ID:000502## mcset $l "What to do when you press enter\n\tnone\t- start on the beginning of the next line\n\tnormal\t- keep indention of the previous line" \ "What to do when you press enter\n\tnone\t- start on the beginning of the next line\n\tnormal\t- keep indention of the previous line" ;# <-- NOT TRANSLATED YET ##ID:004467## mcset $l "Tab width" \ "Tab width" ;# <-- NOT TRANSLATED YET ##ID:004468## mcset $l "Maximum width of the tab character, measured in number of spaces" \ "Maximum width of the tab character, measured in number of spaces" ;# <-- NOT TRANSLATED YET ##ID:000503## mcset $l "Insert spaces instead of tabs" \ "Insert spaces instead of tabs" ;# <-- NOT TRANSLATED YET ##ID:000504## mcset $l "Use spaces instead of tabs" \ "Use spaces instead of tabs" ;# <-- NOT TRANSLATED YET ##ID:000505## mcset $l "Number of spaces" \ "Number of spaces" ;# <-- NOT TRANSLATED YET ##ID:000506## mcset $l "Number of spaces to use instead of tabs" \ "Number of spaces to use instead of tabs" ;# <-- NOT TRANSLATED YET ##ID:000507## mcset $l "Enable autocompletion" \ "Enable autocompletion" ;# <-- NOT TRANSLATED YET ##ID:000508## mcset $l "Enable popup-based autocompletion" \ "Enable popup-based autocompletion" ;# <-- NOT TRANSLATED YET ##ID:000509## mcset $l "Highlight trailing space" \ "Highlight trailing space" ;# <-- NOT TRANSLATED YET ##ID:000510## mcset $l "Show tab bar" \ "Show tab bar" ;# <-- NOT TRANSLATED YET ##ID:000511## mcset $l "Default encoding" \ "Default encoding" ;# <-- NOT TRANSLATED YET ##ID:000512## mcset $l "When you open file with unknown encoding\nthis encoding will be used" \ "When you open file with unknown encoding\nthis encoding will be used" ;# <-- NOT TRANSLATED YET ##ID:000513## mcset $l "Default EOL" \ "Default EOL" ;# <-- NOT TRANSLATED YET ##ID:000514## mcset $l "When you open file with unknown\nEOL (End Of Line) this EOL will be used" \ "When you open file with unknown\nEOL (End Of Line) this EOL will be used" ;# <-- NOT TRANSLATED YET ##ID:000515## mcset $l "Autosave interval \[minutes\]" \ "Autosave interval \[minutes\]" ;# <-- NOT TRANSLATED YET ##ID:000516## mcset $l "Autosave interval in minutes (0 means disabled)" \ "Autosave interval in minutes (0 means disabled)" ;# <-- NOT TRANSLATED YET ##ID:000517## mcset $l "Text area background" \ "Text area background" ;# <-- NOT TRANSLATED YET ##ID:000518## mcset $l "Normal text" \ "Normal text" ;# <-- NOT TRANSLATED YET ##ID:000519## mcset $l "Selected text" \ "Selected text" ;# <-- NOT TRANSLATED YET ##ID:000520## mcset $l "Current line" \ "Current line" ;# <-- NOT TRANSLATED YET ##ID:000521## mcset $l "Bookmark" \ "Bookmark" ;# <-- NOT TRANSLATED YET ##ID:000522## mcset $l "Simulator line" \ "Simulator line" ;# <-- NOT TRANSLATED YET ##ID:000523## mcset $l "Breakpoint" \ "Breakpoint" ;# <-- NOT TRANSLATED YET ##ID:000524## mcset $l "Invalid breakpoint" \ "Invalid breakpoint" ;# <-- NOT TRANSLATED YET ##ID:000525## mcset $l "Line with an error" \ "Line with an error" ;# <-- NOT TRANSLATED YET ##ID:000526## mcset $l "Trailing space" \ "Trailing space" ;# <-- NOT TRANSLATED YET ##ID:000527## mcset $l "Additional elements" \ "Additional elements" ;# <-- NOT TRANSLATED YET ##ID:000528## mcset $l "Icon border background" \ "Icon border background" ;# <-- NOT TRANSLATED YET ##ID:000529## mcset $l "Line numbers background" \ "Line numbers background" ;# <-- NOT TRANSLATED YET ##ID:000530## mcset $l "Line numbers foreground" \ "Line numbers foreground" ;# <-- NOT TRANSLATED YET ##ID:000531## mcset $l "The Quick Brown Fox Jumps Over The Lazy Dog" \ "The Quick Brown Fox Jumps Over The Lazy Dog" ;# <-- NOT TRANSLATED YET ##ID:000532## mcset $l "Searching for available fonts ..." \ "Searching for available fonts ..." ;# <-- NOT TRANSLATED YET ##ID:000533## mcset $l "Assembler" \ "Assembler" ;# <-- NOT TRANSLATED YET ##ID:000534## mcset $l "C language" \ "C language" ;# <-- NOT TRANSLATED YET ##ID:000535## mcset $l "Code listing" \ "Code listing" ;# <-- NOT TRANSLATED YET # Keep string length here! ##ID:000536## mcset $l {Color} \ {Color} ;# <-- NOT TRANSLATED YET # Keep string length here! ##ID:000537## mcset $l {Content} \ {Content} ;# <-- NOT TRANSLATED YET ##ID:000538## mcset $l "increment some register" \ "increment some register" ;# <-- NOT TRANSLATED YET ##ID:000539## mcset $l "close main loop" \ "close main loop" ;# <-- NOT TRANSLATED YET ##ID:000540## mcset $l "Comment" \ "Comment" ;# <-- NOT TRANSLATED YET ##ID:000541## mcset $l "String" \ "String" ;# <-- NOT TRANSLATED YET ##ID:000542## mcset $l "macro Some value" \ "macro Some value" ;# <-- NOT TRANSLATED YET ##ID:000543## mcset $l "Select color - %s" \ "Select color - %s" ;# <-- NOT TRANSLATED YET ##ID:000544## mcset $l "Invalid key: '%s'" \ "Invalid key: '%s'" ;# <-- NOT TRANSLATED YET ##ID:000545## mcset $l "Unable to use external embedded editor because rxvt-unicode is not available" \ "Unable to use external embedded editor because rxvt-unicode is not available" ;# <-- NOT TRANSLATED YET ##ID:000546## mcset $l "Program %s is not available. Using native editor." \ "Program %s is not available. Using native editor." ;# <-- NOT TRANSLATED YET ##ID:000547## mcset $l "Char" \ "Char" ;# <-- NOT TRANSLATED YET ##ID:000548## mcset $l "Hexadecimal number" \ "Hexadecimal number" ;# <-- NOT TRANSLATED YET ##ID:000549## mcset $l "Octal number" \ "Octal number" ;# <-- NOT TRANSLATED YET ##ID:000550## mcset $l "Decimal number" \ "Decimal number" ;# <-- NOT TRANSLATED YET ##ID:000551## mcset $l "Binary number" \ "Binary number" ;# <-- NOT TRANSLATED YET ##ID:000552## mcset $l "Constant" \ "Constant" ;# <-- NOT TRANSLATED YET ##ID:000553## mcset $l "Generic number" \ "Generic number" ;# <-- NOT TRANSLATED YET ##ID:000554## mcset $l "Control sequence" \ "Control sequence" ;# <-- NOT TRANSLATED YET ##ID:000555## mcset $l "Symbol" \ "Symbol" ;# <-- NOT TRANSLATED YET ##ID:000556## mcset $l "Operand separator" \ "Operand separator" ;# <-- NOT TRANSLATED YET ##ID:000557## mcset $l "Directive" \ "Directive" ;# <-- NOT TRANSLATED YET ##ID:000558## mcset $l "Label" \ "Label" ;# <-- NOT TRANSLATED YET ##ID:000559## mcset $l "Instruction" \ "Instruction" ;# <-- NOT TRANSLATED YET ##ID:000560## mcset $l "SFR register" \ "SFR register" ;# <-- NOT TRANSLATED YET ##ID:000561## mcset $l "Indirect address" \ "Indirect address" ;# <-- NOT TRANSLATED YET ##ID:000562## mcset $l "Immediate char" \ "Immediate char" ;# <-- NOT TRANSLATED YET ##ID:000563## mcset $l "Immediate hex" \ "Immediate hex" ;# <-- NOT TRANSLATED YET ##ID:000564## mcset $l "Immediate oct" \ "Immediate oct" ;# <-- NOT TRANSLATED YET ##ID:000565## mcset $l "Immediate dec" \ "Immediate dec" ;# <-- NOT TRANSLATED YET ##ID:000566## mcset $l "Immediate bin" \ "Immediate bin" ;# <-- NOT TRANSLATED YET ##ID:000567## mcset $l "Immediate const" \ "Immediate const" ;# <-- NOT TRANSLATED YET ##ID:000568## mcset $l "Immediate generic" \ "Immediate generic" ;# <-- NOT TRANSLATED YET ##ID:000569## mcset $l "Macro instruction" \ "Macro instruction" ;# <-- NOT TRANSLATED YET ##ID:000570## mcset $l "Keyword" \ "Keyword" ;# <-- NOT TRANSLATED YET ##ID:000571## mcset $l "Data type" \ "Data type" ;# <-- NOT TRANSLATED YET ##ID:000572## mcset $l "Decimal" \ "Decimal" ;# <-- NOT TRANSLATED YET ##ID:000573## mcset $l "Hexadecimal" \ "Hexadecimal" ;# <-- NOT TRANSLATED YET ##ID:000574## mcset $l "Octal" \ "Octal" ;# <-- NOT TRANSLATED YET ##ID:000575## mcset $l "Float" \ "Float" ;# <-- NOT TRANSLATED YET ##ID:000576## mcset $l "String char" \ "String char" ;# <-- NOT TRANSLATED YET ##ID:000577## mcset $l "Bracket" \ "Bracket" ;# <-- NOT TRANSLATED YET ##ID:000578## mcset $l "Preprocessor" \ "Preprocessor" ;# <-- NOT TRANSLATED YET ##ID:000579## mcset $l "Preprocessor lib." \ "Preprocessor lib." ;# <-- NOT TRANSLATED YET ##ID:000580## mcset $l "Doxygen: Comment" \ "Doxygen: Comment" ;# <-- NOT TRANSLATED YET ##ID:000581## mcset $l "Doxygen: Tag" \ "Doxygen: Tag" ;# <-- NOT TRANSLATED YET ##ID:000582## mcset $l "Doxygen: Word" \ "Doxygen: Word" ;# <-- NOT TRANSLATED YET ##ID:000583## mcset $l "Doxygen: Name" \ "Doxygen: Name" ;# <-- NOT TRANSLATED YET ##ID:000584## mcset $l "Doxygen: HTML" \ "Doxygen: HTML" ;# <-- NOT TRANSLATED YET ##ID:000585## mcset $l "Doxygen: HTML arg." \ "Doxygen: HTML arg." ;# <-- NOT TRANSLATED YET ##ID:000586## mcset $l "Doxygen: HTML val." \ "Doxygen: HTML val." ;# <-- NOT TRANSLATED YET ##ID:000587## mcset $l "Value" \ "Value" ;# <-- NOT TRANSLATED YET ##ID:000588## mcset $l "Processor code" \ "Processor code" ;# <-- NOT TRANSLATED YET ##ID:000589## mcset $l "Address" \ "Address" ;# <-- NOT TRANSLATED YET ##ID:000590## mcset $l "Line number" \ "Line number" ;# <-- NOT TRANSLATED YET ##ID:000591## mcset $l "Macro level" \ "Macro level" ;# <-- NOT TRANSLATED YET ##ID:000592## mcset $l "Inclusion level" \ "Inclusion level" ;# <-- NOT TRANSLATED YET ##ID:000593## mcset $l "Error / Warning" \ "Error / Warning" ;# <-- NOT TRANSLATED YET ##ID:000594## mcset $l "Message" \ "Message" ;# <-- NOT TRANSLATED YET } namespace eval ::configDialogues::compiler { ##ID:000595## mcset $l "Compiler configuration" \ "Compiler configuration" ;# <-- NOT TRANSLATED YET ##ID:000596## mcset $l "Assembly language" \ "Assembly language" ;# <-- NOT TRANSLATED YET ##ID:000597## mcset $l "Configure compiler for assembly language" \ "Configure compiler for assembly language" ;# <-- NOT TRANSLATED YET ##ID:000598## mcset $l "C language -- SDCC" \ "C language -- SDCC" ;# <-- NOT TRANSLATED YET ##ID:000599## mcset $l "GNU make utility" \ "GNU make utility" ;# <-- NOT TRANSLATED YET ##ID:000600## mcset $l "Make utility is not available, please install GNU make and restart the IDE." \ "Make utility is not available, please install GNU make and restart the IDE." ;# <-- NOT TRANSLATED YET ##ID:000601## mcset $l "Use this Makefile instead of calling C compiler directly:" \ "Use this Makefile instead of calling C compiler directly:" ;# <-- NOT TRANSLATED YET ##ID:000602## mcset $l "Makefile:" \ "Makefile:" ;# <-- NOT TRANSLATED YET ##ID:004491## mcset $l "Targets:" \ "Targets:" ;# <-- NOT TRANSLATED YET ##ID:004492## mcset $l "Options:" \ "Options:" ;# <-- NOT TRANSLATED YET ##ID:000603## mcset $l "Clear the entrybox" \ "Clear the entrybox" ;# <-- NOT TRANSLATED YET ##ID:000604## mcset $l "Select Makefile" \ "Select Makefile" ;# <-- NOT TRANSLATED YET ##ID:000605## mcset $l "Compiler" \ "Compiler" ;# <-- NOT TRANSLATED YET ##ID:000606## mcset $l "Reset to defaults" \ "Reset to defaults" ;# <-- NOT TRANSLATED YET ##ID:000607## mcset $l "Reset all settings to defaults" \ "Reset all settings to defaults" ;# <-- NOT TRANSLATED YET ##ID:000608## mcset $l "Ok" \ "Ok" ;# <-- NOT TRANSLATED YET ##ID:000609## mcset $l "Commit new settings" \ "Commit new settings" ;# <-- NOT TRANSLATED YET ##ID:000610## mcset $l "Cancel" \ "Cancel" ;# <-- NOT TRANSLATED YET ##ID:000611## mcset $l "Take changes back and close dialog" \ "Take changes back and close dialog" ;# <-- NOT TRANSLATED YET ##ID:000612## mcset $l "Configure compiler - %s" \ "Configure compiler - %s" ;# <-- NOT TRANSLATED YET ##ID:000613## mcset $l "General" \ "General" ;# <-- NOT TRANSLATED YET ##ID:000614## mcset $l "Code generation" \ "Code generation" ;# <-- NOT TRANSLATED YET ##ID:000615## mcset $l "Optimization" \ "Optimization" ;# <-- NOT TRANSLATED YET ##ID:000616## mcset $l "Linker" \ "Linker" ;# <-- NOT TRANSLATED YET ##ID:000617## mcset $l "Custom" \ "Custom" ;# <-- NOT TRANSLATED YET ##ID:000618## mcset $l "Standard:" \ "Standard:" ;# <-- NOT TRANSLATED YET ##ID:000619## mcset $l "Include path" \ "Include path" ;# <-- NOT TRANSLATED YET ##ID:000620## mcset $l "Add to the include path, as in -Ipath\nPaths are separated by semicolons (`;')" \ "Add to the include path, as in -Ipath\nPaths are separated by semicolons (`;')" ;# <-- NOT TRANSLATED YET ##ID:000621## mcset $l "Disable warning" \ "Disable warning" ;# <-- NOT TRANSLATED YET ##ID:000622## mcset $l "Disable specific warning (--disable-warning)\nNumbers are separated by semicolons (`;')" \ "Disable specific warning (--disable-warning)\nNumbers are separated by semicolons (`;')" ;# <-- NOT TRANSLATED YET ##ID:000623## mcset $l "Model:" \ "Model:" ;# <-- NOT TRANSLATED YET ##ID:000624## mcset $l "External data space is used" \ "External data space is used" ;# <-- NOT TRANSLATED YET ##ID:000625## mcset $l "External paged data space is used" \ "External paged data space is used" ;# <-- NOT TRANSLATED YET ##ID:000626## mcset $l "Internal data space is used" \ "Internal data space is used" ;# <-- NOT TRANSLATED YET ##ID:000627## mcset $l "Use this name for the code segment" \ "Use this name for the code segment" ;# <-- NOT TRANSLATED YET ##ID:000628## mcset $l "Use this name for the const segment" \ "Use this name for the const segment" ;# <-- NOT TRANSLATED YET ##ID:000629## mcset $l "Stack:" \ "Stack:" ;# <-- NOT TRANSLATED YET ##ID:000630## mcset $l "Include the given library in the link\nPaths are separated by semicolons (`;')" \ "Include the given library in the link\nPaths are separated by semicolons (`;')" ;# <-- NOT TRANSLATED YET ##ID:000631## mcset $l "Add the next field to the library search path\nPaths are separated by semicolons (`;')" \ "Add the next field to the library search path\nPaths are separated by semicolons (`;')" ;# <-- NOT TRANSLATED YET ##ID:000632## mcset $l "Use this path to search for libraries" \ "Use this path to search for libraries" ;# <-- NOT TRANSLATED YET ##ID:000633## mcset $l "External Ram start location" \ "External Ram start location" ;# <-- NOT TRANSLATED YET ##ID:000634## mcset $l "External Stack start location" \ "External Stack start location" ;# <-- NOT TRANSLATED YET ##ID:000635## mcset $l "Code Segment Location" \ "Code Segment Location" ;# <-- NOT TRANSLATED YET ##ID:000636## mcset $l "Stack pointer initial value" \ "Stack pointer initial value" ;# <-- NOT TRANSLATED YET ##ID:000637## mcset $l "Direct data start location" \ "Direct data start location" ;# <-- NOT TRANSLATED YET ##ID:000638## mcset $l "Tells the linker to allocate this space for stack" \ "Tells the linker to allocate this space for stack" ;# <-- NOT TRANSLATED YET ##ID:000641## mcset $l "Preferred assembler:" \ "Preferred assembler:" ;# <-- NOT TRANSLATED YET ##ID:000642## mcset $l "Notes to assemblers:\n" \ "Notes to assemblers:\n" ;# <-- NOT TRANSLATED YET ##ID:000643## mcset $l " a) MCU 8051 IDE has its own native assembler\n" \ " a) MCU 8051 IDE has its own native assembler\n" ;# <-- NOT TRANSLATED YET ##ID:000644## mcset $l " b) ASEM-51 is a great assembler written by W.W. Heinz.\n" \ " b) ASEM-51 is a great assembler written by W.W. Heinz.\n" ;# <-- NOT TRANSLATED YET ##ID:000645## mcset $l " You can find it at http://plit.de/asem-51/home.htm\n" \ " You can find it at http://plit.de/asem-51/home.htm\n" ;# <-- NOT TRANSLATED YET ##ID:000646## mcset $l " c) ASL: http://linux.maruhn.com/sec/asl.html\n" \ " c) ASL: http://linux.maruhn.com/sec/asl.html\n" ;# <-- NOT TRANSLATED YET ##ID:000647## mcset $l " d) AS31: http://www.pjrc.com/tech/8051/\n" \ " d) AS31: http://www.pjrc.com/tech/8051/\n" ;# <-- NOT TRANSLATED YET ##ID:000648## mcset $l "MCU 8051 IDE native assembler - Sophisticated but slow" \ "MCU 8051 IDE native assembler - Sophisticated but slow" ;# <-- NOT TRANSLATED YET ##ID:000649## mcset $l "Sophisticated and very fast assembler written by W.W. Heinz" \ "Sophisticated and very fast assembler written by W.W. Heinz" ;# <-- NOT TRANSLATED YET ##ID:000650## mcset $l "Multiplatform assembler written by Alfred Arnold" \ "Multiplatform assembler written by Alfred Arnold" ;# <-- NOT TRANSLATED YET ##ID:000651## mcset $l "Simple 8051 assembler" \ "Simple 8051 assembler" ;# <-- NOT TRANSLATED YET ##ID:000652## mcset $l "Generate an object file in absolute OMF-51 format" \ "Generate an object file in absolute OMF-51 format" ;# <-- NOT TRANSLATED YET ##ID:000653## mcset $l "Output additional column numbers after the line numbers of program error messages" \ "Output additional column numbers after the line numbers of program error messages" ;# <-- NOT TRANSLATED YET ##ID:000654## mcset $l "Output additional product, version, and error summary information" \ "Output additional product, version, and error summary information" ;# <-- NOT TRANSLATED YET ##ID:000655## mcset $l "Generate MCU 8051 IDE debug file" \ "Generate MCU 8051 IDE debug file" ;# <-- NOT TRANSLATED YET ##ID:000656## mcset $l "Generate .adb (MCU 8051 IDE Assembler Debug File) from .lst" \ "Generate .adb (MCU 8051 IDE Assembler Debug File) from .lst" ;# <-- NOT TRANSLATED YET ##ID:000657## mcset $l "Include paths:" \ "Include paths:" ;# <-- NOT TRANSLATED YET ##ID:000658## mcset $l "Option -i\nSeparate directories by colons (`:')" \ "Option -i\nSeparate directories by colons (`:')" ;# <-- NOT TRANSLATED YET ##ID:000659## mcset $l "Custom options:" \ "Custom options:" ;# <-- NOT TRANSLATED YET ##ID:000660## mcset $l "Generate a listing file, option `-l'" \ "Generate a listing file, option `-l'" ;# <-- NOT TRANSLATED YET ##ID:000661## mcset $l "This option tells the assembler to generate a listing file.\n\nTHIS OPTION IS REQUIRED BY THIS IDE TO GENERATE DEBUG FILE !" \ "This option tells the assembler to generate a listing file.\n\nTHIS OPTION IS REQUIRED BY THIS IDE TO GENERATE DEBUG FILE !" ;# <-- NOT TRANSLATED YET ##ID:000662## mcset $l "Generate .adb (MCU 8051 IDE Assembler Debug File)\nfrom .lst" \ "Generate .adb (MCU 8051 IDE Assembler Debug File)\nfrom .lst" ;# <-- NOT TRANSLATED YET ##ID:000663## mcset $l "This options specifies the output format that is to be used.\n\nSee AS31 manual page for more details ..." \ "This options specifies the output format that is to be used.\n\nSee AS31 manual page for more details ..." ;# <-- NOT TRANSLATED YET ##ID:000664## mcset $l "This option specifies a format specific string which is\npassed to the format generator. Both format \"tdr\" and the\nsrecord formats use this option." \ "This option specifies a format specific string which is\npassed to the format generator. Both format \"tdr\" and the\nsrecord formats use this option." ;# <-- NOT TRANSLATED YET ##ID:000665## mcset $l "Change the data structure that is internally used to store\nthe symbol table. By default, AS uses binary trees to store\nmacro and symbol definitions. Turning this option on will\nchange this to AVL-balanced trees. Depending on the ratio\nof symbol entries and lookups, this might speed up assembly.\nUsing AVL-balanced trees helps also reducing the stack usage,\nwhich is however irrelevant for the C version of AS." \ "Change the data structure that is internally used to store\nthe symbol table. By default, AS uses binary trees to store\nmacro and symbol definitions. Turning this option on will\nchange this to AVL-balanced trees. Depending on the ratio\nof symbol entries and lookups, this might speed up assembly.\nUsing AVL-balanced trees helps also reducing the stack usage,\nwhich is however irrelevant for the C version of AS." ;# <-- NOT TRANSLATED YET ##ID:000666## mcset $l "Instruct AS to write out the shared symbol definitions in\na format suitable for including into an AS assembler program.\nThe file's name is constructed by replacing the source file's\nextension with '.inc'. See the user manual for more\ninformation about symbol sharing." \ "Instruct AS to write out the shared symbol definitions in\na format suitable for including into an AS assembler program.\nThe file's name is constructed by replacing the source file's\nextension with '.inc'. See the user manual for more\ninformation about symbol sharing." ;# <-- NOT TRANSLATED YET ##ID:000667## mcset $l "Add a cross reference table to the assembler listing. A cross\nreference table lists all symbols that have been referenced\nat least once during assembly, including the source line\nnumber(s) and count of every reference. This option only makes\nsense when the generation of an assembly listing has been\nturned on via the -L or -l parameters. " \ "Add a cross reference table to the assembler listing. A cross\nreference table lists all symbols that have been referenced\nat least once during assembly, including the source line\nnumber(s) and count of every reference. This option only makes\nsense when the generation of an assembly listing has been\nturned on via the -L or -l parameters. " ;# <-- NOT TRANSLATED YET ##ID:000668## mcset $l "Instruct AS to write out the shared symbol definitions in a\nformat suitable for including into a C program. The file's\nname is constructed by replacing the source file's extension\nwith '.h'. See the user manual for more information about\nsymbol sharing." \ "Instruct AS to write out the shared symbol definitions in a\nformat suitable for including into a C program. The file's\nname is constructed by replacing the source file's extension\nwith '.h'. See the user manual for more information about\nsymbol sharing." ;# <-- NOT TRANSLATED YET ##ID:000669## mcset $l "Force AS to print all hexadecimal constants with lowercase\nletters, rather than with uppercase letters A..F which is\nthe default." \ "Force AS to print all hexadecimal constants with lowercase\nletters, rather than with uppercase letters A..F which is\nthe default." ;# <-- NOT TRANSLATED YET ##ID:000670## mcset $l "Add an include file list to the assembly listing. An include\nfile list contains all files that have been included while\nassembling the source files, including multiple and nested\ninclusion. Nesting of inclusion is identified by different\nindention. This option only makes sense when the generation of\nan assembly listing has been turned on via the -L or -l parameters." \ "Add an include file list to the assembly listing. An include\nfile list contains all files that have been included while\nassembling the source files, including multiple and nested\ninclusion. Nesting of inclusion is identified by different\nindention. This option only makes sense when the generation of\nan assembly listing has been turned on via the -L or -l parameters." ;# <-- NOT TRANSLATED YET ##ID:000671## mcset $l "Turn on generation of an assembly listing and send it to a\nfile whose name is constructed by replacing the source\nfile's extension with '.lst'." \ "Turn on generation of an assembly listing and send it to a\nfile whose name is constructed by replacing the source\nfile's extension with '.lst'." ;# <-- NOT TRANSLATED YET ##ID:000672## mcset $l "Turn on generation of a macro definition file. A macro\ndefinition file is a file that contains all macro definitions\nthat have been detected during assembly, in a format suitable\nfor an inclusion into another file. The macro definition file's\nname is constructed by replacing the source file's extension\nwith '.mac'." \ "Turn on generation of a macro definition file. A macro\ndefinition file is a file that contains all macro definitions\nthat have been detected during assembly, in a format suitable\nfor an inclusion into another file. The macro definition file's\nname is constructed by replacing the source file's extension\nwith '.mac'." ;# <-- NOT TRANSLATED YET ##ID:000673## mcset $l "Turn on generation of a macro output file. A macro output\nfile contains the intermediate source code that remains after\nmacro expansion and conditional assembly. The macro output\nfile's name is constructed by replacing the source file's\nextension with '.i'." \ "Turn on generation of a macro output file. A macro output\nfile contains the intermediate source code that remains after\nmacro expansion and conditional assembly. The macro output\nfile's name is constructed by replacing the source file's\nextension with '.i'." ;# <-- NOT TRANSLATED YET ##ID:000674## mcset $l "Force AS to extend all error and warning messages with their\ninternal error resp. warning number." \ "Force AS to extend all error and warning messages with their\ninternal error resp. warning number." ;# <-- NOT TRANSLATED YET ##ID:000675## mcset $l "Turn on silent assembly mode. In silent compilation mode, AS\nwill not do any console output except for warning and\nerror messages." \ "Turn on silent assembly mode. In silent compilation mode, AS\nwill not do any console output except for warning and\nerror messages." ;# <-- NOT TRANSLATED YET ##ID:000676## mcset $l "Add a section list to the assembly listing. A section list\ncontains all sections that have been defined in the source\nfiles, marking their nesting level by different levels of\nindentation. This option only makes sense when the generation\nof an assembly listing has been turned on via the\n-L or -l parameters." \ "Add a section list to the assembly listing. A section list\ncontains all sections that have been defined in the source\nfiles, marking their nesting level by different levels of\nindentation. This option only makes sense when the generation\nof an assembly listing has been turned on via the\n-L or -l parameters." ;# <-- NOT TRANSLATED YET ##ID:000677## mcset $l "Tell AS to do additional bookkeeping about which address\nranges have been used by the assembled program. This option\nenables the detection of overlapping memory usage. If an\nassembly listing has been turned on via the -L or -l parameters,\nit will also contain a list of all used memory areas." \ "Tell AS to do additional bookkeeping about which address\nranges have been used by the assembled program. This option\nenables the detection of overlapping memory usage. If an\nassembly listing has been turned on via the -L or -l parameters,\nit will also contain a list of all used memory areas." ;# <-- NOT TRANSLATED YET ##ID:000678## mcset $l "Force AS to operate in case-sensitive mode. By default,\nnames of symbols, macros, user-defined functions and sections\nare treated in a case-insensitive manner." \ "Force AS to operate in case-sensitive mode. By default,\nnames of symbols, macros, user-defined functions and sections\nare treated in a case-insensitive manner." ;# <-- NOT TRANSLATED YET ##ID:000679## mcset $l "Suppress output of warnings." \ "Suppress output of warnings." ;# <-- NOT TRANSLATED YET ##ID:000680## mcset $l "Turn on extended error reporting. With extended error\nreporting, several error and warning messages will also\nprint the item that created the message, e.g. the name of\nan unknown instruction. When this option is given twice,\nthe erroneous source line is additinally printed." \ "Turn on extended error reporting. With extended error\nreporting, several error and warning messages will also\nprint the item that created the message, e.g. the name of\nan unknown instruction. When this option is given twice,\nthe erroneous source line is additinally printed." ;# <-- NOT TRANSLATED YET ##ID:000681## mcset $l "Generate IHEX file" \ "Generate IHEX file" ;# <-- NOT TRANSLATED YET ##ID:000682## mcset $l "Use program p2hex to convert .p to .hex" \ "Use program p2hex to convert .p to .hex" ;# <-- NOT TRANSLATED YET ##ID:000683## mcset $l "Generate .adb (MCU 8051 IDE Assembler Debug File)\nfrom .hex and .map" \ "Generate .adb (MCU 8051 IDE Assembler Debug File)\nfrom .hex and .map" ;# <-- NOT TRANSLATED YET ##ID:000684## mcset $l "Set the target processor to .\nUse this option if the source file does\nnot contain a CPU statement." \ "Set the target processor to .\nUse this option if the source file does\nnot contain a CPU statement." ;# <-- NOT TRANSLATED YET ##ID:000685## mcset $l "-g \[MAP|Atmel|NoICE\]\n\tInstruct AS to write an additional file containing\n\tdebug information. This information covers the symbol\n\ttable and the relation between source line numbers\n\tand machine addresses. The argument specifies whether\n\tdebug info shall be written in AS's own MAP format,\n\tthe object format for Atmel's AVR tools, or a command\n\tfile suitable for John Hartman's NoICE. If no argument\n\tis given, MAP will be chosen. The file's name is\n\tconstructed by replacing the source file's extension\n\twith '.map', '.obj', or '.noi' respectively.\n\nMCU 8051 IDE requires MAP to be selected\nhere to generate debug file" \ "-g \[MAP|Atmel|NoICE\]\n\tInstruct AS to write an additional file containing\n\tdebug information. This information covers the symbol\n\ttable and the relation between source line numbers\n\tand machine addresses. The argument specifies whether\n\tdebug info shall be written in AS's own MAP format,\n\tthe object format for Atmel's AVR tools, or a command\n\tfile suitable for John Hartman's NoICE. If no argument\n\tis given, MAP will be chosen. The file's name is\n\tconstructed by replacing the source file's extension\n\twith '.map', '.obj', or '.noi' respectively.\n\nMCU 8051 IDE requires MAP to be selected\nhere to generate debug file" ;# <-- NOT TRANSLATED YET ##ID:000686## mcset $l "-r \[pass number\]\n\tTell AS to output warnings when a situation appears\n\tin a source file that forces another pass of assembly.\n\tSuch situations either take place when a symbol is\n\tundefined in the first pass or a symbol's value has\n\tchanged compared to the previous pass. This option\n\tis useful to track down sources of excessive\n\tmulti-passing, but be aware that it might yield a\n\tfairly large number of warnings, especially in the\n\tfirst pass. Optionally, a pass number may be added\n\tto this option to inhibit output until a certain\n\tpass is reached." \ "-r \[pass number\]\n\tTell AS to output warnings when a situation appears\n\tin a source file that forces another pass of assembly.\n\tSuch situations either take place when a symbol is\n\tundefined in the first pass or a symbol's value has\n\tchanged compared to the previous pass. This option\n\tis useful to track down sources of excessive\n\tmulti-passing, but be aware that it might yield a\n\tfairly large number of warnings, especially in the\n\tfirst pass. Optionally, a pass number may be added\n\tto this option to inhibit output until a certain\n\tpass is reached." ;# <-- NOT TRANSLATED YET ##ID:000687## mcset $l "-i \tAdd new entries to the list of paths that are\n\tsearched for include files. New entries are\n\tprepended to the current include path list,\n\tso if multiple paths are given with one\n\tcommand-line parameter, they will be entered\n\tinto the path list in reverse order." \ "-i \tAdd new entries to the list of paths that are\n\tsearched for include files. New entries are\n\tprepended to the current include path list,\n\tso if multiple paths are given with one\n\tcommand-line parameter, they will be entered\n\tinto the path list in reverse order." ;# <-- NOT TRANSLATED YET ##ID:000688## mcset $l "Trace calls to the preprocessor, assembler and linker" \ "Trace calls to the preprocessor, assembler and linker" ;# <-- NOT TRANSLATED YET ##ID:000689## mcset $l "Execute verbosely. Show sub commands as they are run" \ "Execute verbosely. Show sub commands as they are run" ;# <-- NOT TRANSLATED YET ##ID:000690## mcset $l "Compile only; do not assemble or link" \ "Compile only; do not assemble or link" ;# <-- NOT TRANSLATED YET ##ID:000691## mcset $l "Compile and assemble, but do not link" \ "Compile and assemble, but do not link" ;# <-- NOT TRANSLATED YET ##ID:000692## mcset $l "Preprocess only, do not compile" \ "Preprocess only, do not compile" ;# <-- NOT TRANSLATED YET ##ID:000693## mcset $l "Act in c1 mode. The standard input is preprocessed code, the output is assembly code." \ "Act in c1 mode. The standard input is preprocessed code, the output is assembly code." ;# <-- NOT TRANSLATED YET ##ID:000694## mcset $l "Display the directories in the compiler's search path" \ "Display the directories in the compiler's search path" ;# <-- NOT TRANSLATED YET ##ID:000695## mcset $l "Send errors to stdout instead of stderr" \ "Send errors to stdout instead of stderr" ;# <-- NOT TRANSLATED YET ##ID:000696## mcset $l "Do not include the standard library directory in the search path" \ "Do not include the standard library directory in the search path" ;# <-- NOT TRANSLATED YET ##ID:000697## mcset $l "Disable some of the more pedantic warnings" \ "Disable some of the more pedantic warnings" ;# <-- NOT TRANSLATED YET ##ID:000698## mcset $l "Enable debugging symbol output" \ "Enable debugging symbol output" ;# <-- NOT TRANSLATED YET ##ID:000699## mcset $l "Display complexity of compiled functions" \ "Display complexity of compiled functions" ;# <-- NOT TRANSLATED YET ##ID:000700## mcset $l "Permit '\$' as an identifier character" \ "Permit '\$' as an identifier character" ;# <-- NOT TRANSLATED YET ##ID:000701## mcset $l "Make \"char\" unsigned by default" \ "Make \"char\" unsigned by default" ;# <-- NOT TRANSLATED YET ##ID:000702## mcset $l "Use C89 standard only" \ "Use C89 standard only" ;# <-- NOT TRANSLATED YET ##ID:000703## mcset $l "Use C89 standard with SDCC extensions" \ "Use C89 standard with SDCC extensions" ;# <-- NOT TRANSLATED YET ##ID:000704## mcset $l "Use C99 standard only (incomplete)" \ "Use C99 standard only (incomplete)" ;# <-- NOT TRANSLATED YET ##ID:000705## mcset $l "Use C99 standard with SDCC extensions (incomplete)" \ "Use C99 standard with SDCC extensions (incomplete)" ;# <-- NOT TRANSLATED YET ##ID:000706## mcset $l "Use external stack" \ "Use external stack" ;# <-- NOT TRANSLATED YET ##ID:000707## mcset $l "Use reenterant calls on the int and long support functions" \ "Use reenterant calls on the int and long support functions" ;# <-- NOT TRANSLATED YET ##ID:000708## mcset $l "Use reenterant calls on the float support functions" \ "Use reenterant calls on the float support functions" ;# <-- NOT TRANSLATED YET ##ID:000709## mcset $l "Issue a return after main()" \ "Issue a return after main()" ;# <-- NOT TRANSLATED YET ##ID:000710## mcset $l "Use movc instead of movx to read xram (xdata)" \ "Use movc instead of movx to read xram (xdata)" ;# <-- NOT TRANSLATED YET ##ID:000711## mcset $l "On supported ports, generate extra profiling information" \ "On supported ports, generate extra profiling information" ;# <-- NOT TRANSLATED YET ##ID:000712## mcset $l "Leave out the frame pointer." \ "Leave out the frame pointer." ;# <-- NOT TRANSLATED YET ##ID:000713## mcset $l "Callee will always save registers used" \ "Callee will always save registers used" ;# <-- NOT TRANSLATED YET ##ID:000714## mcset $l "Insert call to function __stack_probe at each function prologue" \ "Insert call to function __stack_probe at each function prologue" ;# <-- NOT TRANSLATED YET ##ID:000715## mcset $l "Use Bank1 for parameter passing" \ "Use Bank1 for parameter passing" ;# <-- NOT TRANSLATED YET ##ID:000716## mcset $l "Don't memcpy initialized xram from code" \ "Don't memcpy initialized xram from code" ;# <-- NOT TRANSLATED YET ##ID:000717## mcset $l "Don't include c-code as comments in the asm file" \ "Don't include c-code as comments in the asm file" ;# <-- NOT TRANSLATED YET ##ID:000718## mcset $l "Don't include peephole optimizer comments" \ "Don't include peephole optimizer comments" ;# <-- NOT TRANSLATED YET ##ID:000719## mcset $l "Include code generator comments" \ "Include code generator comments" ;# <-- NOT TRANSLATED YET ##ID:000720## mcset $l "Make short 8 bits (for old times sake)" \ "Make short 8 bits (for old times sake)" ;# <-- NOT TRANSLATED YET ##ID:000721## mcset $l "Stack automatic variables" \ "Stack automatic variables" ;# <-- NOT TRANSLATED YET ##ID:000722## mcset $l "Disable overlaying leaf function auto variables" \ "Disable overlaying leaf function auto variables" ;# <-- NOT TRANSLATED YET ##ID:000723## mcset $l "Disable the GCSE optimisation" \ "Disable the GCSE optimisation" ;# <-- NOT TRANSLATED YET ##ID:000724## mcset $l "Disable label optimisation" \ "Disable label optimisation" ;# <-- NOT TRANSLATED YET ##ID:000725## mcset $l "Disable optimisation of invariants" \ "Disable optimisation of invariants" ;# <-- NOT TRANSLATED YET ##ID:000726## mcset $l "Disable loop variable induction" \ "Disable loop variable induction" ;# <-- NOT TRANSLATED YET ##ID:000727## mcset $l "Don't generate boundary check for jump tables" \ "Don't generate boundary check for jump tables" ;# <-- NOT TRANSLATED YET ##ID:000728## mcset $l "Disable the loop reverse optimisation" \ "Disable the loop reverse optimisation" ;# <-- NOT TRANSLATED YET ##ID:000729## mcset $l "Disable the peephole assembly file optimisation" \ "Disable the peephole assembly file optimisation" ;# <-- NOT TRANSLATED YET ##ID:000730## mcset $l "On some ports, disable passing some parameters in registers" \ "On some ports, disable passing some parameters in registers" ;# <-- NOT TRANSLATED YET ##ID:000731## mcset $l "Enable peephole optimization on inline assembly" \ "Enable peephole optimization on inline assembly" ;# <-- NOT TRANSLATED YET ##ID:000732## mcset $l "Optimize for code speed rather than size" \ "Optimize for code speed rather than size" ;# <-- NOT TRANSLATED YET ##ID:000733## mcset $l "Optimize for code size rather than speed" \ "Optimize for code size rather than speed" ;# <-- NOT TRANSLATED YET ##ID:000734## mcset $l "Output in Intel hex format" \ "Output in Intel hex format" ;# <-- NOT TRANSLATED YET ##ID:000735## mcset $l "Output in S19 hex format" \ "Output in S19 hex format" ;# <-- NOT TRANSLATED YET ##ID:000736## mcset $l "Output" \ "Output" ;# <-- NOT TRANSLATED YET ##ID:000737## mcset $l "Messages and output code" \ "Messages and output code" ;# <-- NOT TRANSLATED YET ##ID:000738## mcset $l "Directives" \ "Directives" ;# <-- NOT TRANSLATED YET ##ID:000739## mcset $l "Which directives accept and which do not" \ "Which directives accept and which do not" ;# <-- NOT TRANSLATED YET ##ID:000740## mcset $l "Source" \ "Source" ;# <-- NOT TRANSLATED YET ##ID:000741## mcset $l "Use value defined in source code" \ "Use value defined in source code" ;# <-- NOT TRANSLATED YET ##ID:000742## mcset $l "Always" \ "Always" ;# <-- NOT TRANSLATED YET ##ID:000743## mcset $l "Generate always" \ "Generate always" ;# <-- NOT TRANSLATED YET ##ID:000744## mcset $l "Never" \ "Never" ;# <-- NOT TRANSLATED YET ##ID:000745## mcset $l "Never generate" \ "Never generate" ;# <-- NOT TRANSLATED YET ##ID:000746## mcset $l "Generate code listing" \ "Generate code listing" ;# <-- NOT TRANSLATED YET ##ID:000747## mcset $l "Should compiler generate *.lst files" \ "Should compiler generate *.lst files" ;# <-- NOT TRANSLATED YET ##ID:000748## mcset $l "Table of symbols (in *.lst)" \ "Table of symbols (in *.lst)" ;# <-- NOT TRANSLATED YET ##ID:000749## mcset $l "Include table of used symbolic names to code listing" \ "Include table of used symbolic names to code listing" ;# <-- NOT TRANSLATED YET ##ID:000750## mcset $l "Generate object code (ihex8)" \ "Generate object code (ihex8)" ;# <-- NOT TRANSLATED YET ##ID:000751## mcset $l "Generate object code in format Intel Hex 8 (*.hex)" \ "Generate object code in format Intel Hex 8 (*.hex)" ;# <-- NOT TRANSLATED YET ##ID:000752## mcset $l "Generate code for simulator" \ "Generate code for simulator" ;# <-- NOT TRANSLATED YET ##ID:000753## mcset $l "Generate *.sim file for simulator" \ "Generate *.sim file for simulator" ;# <-- NOT TRANSLATED YET ##ID:000754## mcset $l "Generate binary object code" \ "Generate binary object code" ;# <-- NOT TRANSLATED YET ##ID:000755## mcset $l "Generate binary object code (*.bin)" \ "Generate binary object code (*.bin)" ;# <-- NOT TRANSLATED YET ##ID:000756## mcset $l "Warning level" \ "Warning level" ;# <-- NOT TRANSLATED YET ##ID:000757## mcset $l "All" \ "All" ;# <-- NOT TRANSLATED YET ##ID:000758## mcset $l "Errors + Warnings" \ "Errors + Warnings" ;# <-- NOT TRANSLATED YET ##ID:000759## mcset $l "Errros only" \ "Errros only" ;# <-- NOT TRANSLATED YET ##ID:000760## mcset $l "Nothing" \ "Nothing" ;# <-- NOT TRANSLATED YET ##ID:000761## mcset $l "What kind of messages should be included in compiler log output" \ "What kind of messages should be included in compiler log output" ;# <-- NOT TRANSLATED YET ##ID:000762## mcset $l "Verbose" \ "Verbose" ;# <-- NOT TRANSLATED YET ##ID:000763## mcset $l "Should compiler inform user about what it is doing" \ "Should compiler inform user about what it is doing" ;# <-- NOT TRANSLATED YET ##ID:000764## mcset $l "Enable optimization" \ "Enable optimization" ;# <-- NOT TRANSLATED YET ##ID:000765## mcset $l "Enable peephole optimization" \ "Enable peephole optimization" ;# <-- NOT TRANSLATED YET ##ID:000766## mcset $l "Maximum HEX record data length" \ "Maximum HEX record data length" ;# <-- NOT TRANSLATED YET ##ID:000767## mcset $l "Maximum length of Intel HEX 8 record data field.\n\nGenerally it doesn't matter what is set here. But some (badly written)\nprogrammers may refuse to load files containing records which exceeds\ncertain length.\n\nHigher value also results in smaller .hex files\n\nValue equal to 0 will be treated as 1" \ "Maximum length of Intel HEX 8 record data field.\n\nGenerally it doesn't matter what is set here. But some (badly written)\nprogrammers may refuse to load files containing records which exceeds\ncertain length.\n\nHigher value also results in smaller .hex files\n\nValue equal to 0 will be treated as 1" ;# <-- NOT TRANSLATED YET ##ID:000768## mcset $l "Ignore directives" \ "Ignore directives" ;# <-- NOT TRANSLATED YET ##ID:000769## mcset $l "Accept" \ "Accept" ;# <-- NOT TRANSLATED YET ##ID:000770## mcset $l "Ignore" \ "Ignore" ;# <-- NOT TRANSLATED YET ##ID:000771## mcset $l "Restore defaults" \ "Restore defaults" ;# <-- NOT TRANSLATED YET ##ID:000772## mcset $l "Are you sure that you want restore default settings ?" \ "Are you sure that you want restore default settings ?" ;# <-- NOT TRANSLATED YET } namespace eval ::configDialogues::rightPanel { ##ID:000773## mcset $l "Right panel configuration" \ "Right panel configuration" ;# <-- NOT TRANSLATED YET ##ID:000774## mcset $l "Register watches" \ "Register watches" ;# <-- NOT TRANSLATED YET ##ID:000775## mcset $l "Configure highlighting colors for register watches" \ "Configure highlighting colors for register watches" ;# <-- NOT TRANSLATED YET ##ID:000776## mcset $l "Instruction details" \ "Instruction details" ;# <-- NOT TRANSLATED YET ##ID:000777## mcset $l "Configure highlighting colors for instruction details" \ "Configure highlighting colors for instruction details" ;# <-- NOT TRANSLATED YET ##ID:000778## mcset $l "Bold" \ "Bold" ;# <-- NOT TRANSLATED YET ##ID:000779## mcset $l "Apply" \ "Apply" ;# <-- NOT TRANSLATED YET ##ID:000780## mcset $l "Ok" \ "Ok" ;# <-- NOT TRANSLATED YET ##ID:000781## mcset $l "Cancel" \ "Cancel" ;# <-- NOT TRANSLATED YET ##ID:000782## mcset $l "Configure right panel - %s" \ "Configure right panel - %s" ;# <-- NOT TRANSLATED YET ##ID:000783## mcset $l "Select color - %s" \ "Select color - %s" ;# <-- NOT TRANSLATED YET ##ID:000784## mcset $l "Bit" \ "Bit" ;# <-- NOT TRANSLATED YET ##ID:000785## mcset $l "Name" \ "Name" ;# <-- NOT TRANSLATED YET ##ID:000786## mcset $l " etc." \ " etc." ;# <-- NOT TRANSLATED YET } namespace eval ::configDialogues::toolbar { eval ${::TOOLBAR_TRANSLATIONS} ##ID:000787## mcset $l "Toolbar configuration" \ "Toolbar configuration" ;# <-- NOT TRANSLATED YET ##ID:000788## mcset $l "Search for a string in ListBox" \ "Search for a string in ListBox" ;# <-- NOT TRANSLATED YET ##ID:000789## mcset $l "Clear" \ "Clear" ;# <-- NOT TRANSLATED YET ##ID:000790## mcset $l "available items" \ "available items" ;# <-- NOT TRANSLATED YET ##ID:000791## mcset $l "Current toolbar items" \ "Current toolbar items" ;# <-- NOT TRANSLATED YET ##ID:000792## mcset $l "Defaults" \ "Defaults" ;# <-- NOT TRANSLATED YET ##ID:000793## mcset $l "Ok" \ "Ok" ;# <-- NOT TRANSLATED YET ##ID:000794## mcset $l "Apply" \ "Apply" ;# <-- NOT TRANSLATED YET ##ID:000795## mcset $l "Cancel" \ "Cancel" ;# <-- NOT TRANSLATED YET ##ID:000796## mcset $l "Configure Main Toolbar - %s" \ "Configure Main Toolbar - %s" ;# <-- NOT TRANSLATED YET ##ID:000797## mcset $l " -- SEPARATOR --" \ " -- SEPARATOR --" ;# <-- NOT TRANSLATED YET ##ID:000798## mcset $l "Restore defaults" \ "Restore defaults" ;# <-- NOT TRANSLATED YET ##ID:000799## mcset $l "Are you sure that you want restore default settings ?" \ "Are you sure that you want restore default settings ?" ;# <-- NOT TRANSLATED YET ##ID:000800## mcset $l "Save changes?" \ "Save changes?" ;# <-- NOT TRANSLATED YET ##ID:000801## mcset $l "The settings have been changed. Do you want to save the changes?" \ "The settings have been changed. Do you want to save the changes?" ;# <-- NOT TRANSLATED YET } namespace eval ::configDialogues::custom_commands { ##ID:000802## mcset $l "Edit custom commands" \ "Edit custom commands" ;# <-- NOT TRANSLATED YET ##ID:000803## mcset $l "Command %s" \ "Command %s" ;# <-- NOT TRANSLATED YET ##ID:000804## mcset $l "Short description" \ "Short description" ;# <-- NOT TRANSLATED YET ##ID:000805## mcset $l "This string will be used as status bar tip (max. 50 chars)" \ "This string will be used as status bar tip (max. 50 chars)" ;# <-- NOT TRANSLATED YET ##ID:000806## mcset $l "Options" \ "Options" ;# <-- NOT TRANSLATED YET ##ID:000807## mcset $l "Confirmation dialog" \ "Confirmation dialog" ;# <-- NOT TRANSLATED YET ##ID:000808## mcset $l "Invoke dialog to confirm command execution." \ "Invoke dialog to confirm command execution." ;# <-- NOT TRANSLATED YET ##ID:000809## mcset $l "Show results" \ "Show results" ;# <-- NOT TRANSLATED YET ##ID:000810## mcset $l "After finish show dialog with results." \ "After finish show dialog with results." ;# <-- NOT TRANSLATED YET ##ID:000811## mcset $l "Ignore errors" \ "Ignore errors" ;# <-- NOT TRANSLATED YET ##ID:000812## mcset $l "Do not invoke error dialog if the process fails." \ "Do not invoke error dialog if the process fails." ;# <-- NOT TRANSLATED YET ##ID:004493## mcset $l "Run in terminal" \ "Run in terminal" ;# <-- NOT TRANSLATED YET ##ID:004494## mcset $l "Run interactively in terminal emulator." \ "Run interactively in terminal emulator." ;# <-- NOT TRANSLATED YET ##ID:000813## mcset $l "Bash script to execute" \ "Bash script to execute" ;# <-- NOT TRANSLATED YET ##ID:000814## mcset $l "Show help" \ "Show help" ;# <-- NOT TRANSLATED YET ##ID:000815## mcset $l "Ok" \ "Ok" ;# <-- NOT TRANSLATED YET ##ID:000816## mcset $l "Cancel" \ "Cancel" ;# <-- NOT TRANSLATED YET ##ID:000817## mcset $l "Edit custom commands - %s" \ "Edit custom commands - %s" ;# <-- NOT TRANSLATED YET ##ID:000818## mcset $l "-- click to close --" \ "-- click to close --" ;# <-- NOT TRANSLATED YET ##ID:000819## mcset $l "Custom command %s: %s" \ "Custom command %s: %s" ;# <-- NOT TRANSLATED YET ##ID:000820## mcset $l "VARIABLES:" \ "VARIABLES:" ;# <-- NOT TRANSLATED YET ##ID:000821## mcset $l "\t\tThe full URL of the current file\n" \ "\t\tThe full URL of the current file\n" ;# <-- NOT TRANSLATED YET ##ID:000822## mcset $l "\t\tList of the URLs of all open documents\n" \ "\t\tList of the URLs of all open documents\n" ;# <-- NOT TRANSLATED YET ##ID:000823## mcset $l "\t\tProject directory\n" \ "\t\tProject directory\n" ;# <-- NOT TRANSLATED YET ##ID:000824## mcset $l "\t\tThe file name of the current document\n" \ "\t\tThe file name of the current document\n" ;# <-- NOT TRANSLATED YET ##ID:000825## mcset $l "\t\tSame as %filename, but without extension\n" \ "\t\tSame as %filename, but without extension\n" ;# <-- NOT TRANSLATED YET ##ID:000826## mcset $l "\t\tName of project main file\n" \ "\t\tName of project main file\n" ;# <-- NOT TRANSLATED YET ##ID:000827## mcset $l "\t\tNumber of the current line\n" \ "\t\tNumber of the current line\n" ;# <-- NOT TRANSLATED YET ##ID:000828## mcset $l "\t\tNumber of the current column\n" \ "\t\tNumber of the current column\n" ;# <-- NOT TRANSLATED YET ##ID:000829## mcset $l "\t\tThe selected text in the current file\n" \ "\t\tThe selected text in the current file\n" ;# <-- NOT TRANSLATED YET ##ID:000830## mcset $l "\t\tThe full text of the current file\n" \ "\t\tThe full text of the current file\n" ;# <-- NOT TRANSLATED YET ##ID:000831## mcset $l "\t\tPercent sign\n\n" \ "\t\tPercent sign\n\n" ;# <-- NOT TRANSLATED YET # Keep string length here! Also percent signs should remain at the same positions. ##ID:000832## mcset $l {Variables %line, %column, %selection and %text} \ {Variables %line, %column, %selection and %text} ;# <-- NOT TRANSLATED YET ##ID:000833## mcset $l "\nare not available if external editor is used" \ "\nare not available if external editor is used" ;# <-- NOT TRANSLATED YET } namespace eval ::configDialogues::global { ##ID:000834## mcset $l "MCU 8051 IDE configuration" \ "MCU 8051 IDE configuration" ;# <-- NOT TRANSLATED YET ##ID:000835## mcset $l "Display splash screen" \ "Display splash screen" ;# <-- NOT TRANSLATED YET ##ID:000836## mcset $l "Show splash screen on start-up" \ "Show splash screen on start-up" ;# <-- NOT TRANSLATED YET ##ID:000837## mcset $l "Show tips on start-up" \ "Show tips on start-up" ;# <-- NOT TRANSLATED YET ##ID:000838## mcset $l "Invoke dialog with tip of the day on start-up" \ "Invoke dialog with tip of the day on start-up" ;# <-- NOT TRANSLATED YET ##ID:000839## mcset $l "Language" \ "Language" ;# <-- NOT TRANSLATED YET ##ID:000840## mcset $l "Your preferred language" \ "Your preferred language" ;# <-- NOT TRANSLATED YET ##ID:000841## mcset $l "Do not always ask whether to add file to the project after the file is opened" \ "Do not always ask whether to add file to the project after the file is opened" ;# <-- NOT TRANSLATED YET ##ID:004479## mcset $l "Do not show performance warning when enabling external HW simulation." \ "Do not show performance warning when enabling external HW simulation." ;# <-- NOT TRANSLATED YET ##ID:000842## mcset $l "Reset to defaults" \ "Reset to defaults" ;# <-- NOT TRANSLATED YET ##ID:000843## mcset $l "Reset all settings to defaults" \ "Reset all settings to defaults" ;# <-- NOT TRANSLATED YET ##ID:000844## mcset $l "Ok" \ "Ok" ;# <-- NOT TRANSLATED YET ##ID:000845## mcset $l "Commit new settings" \ "Commit new settings" ;# <-- NOT TRANSLATED YET ##ID:000846## mcset $l "Cancel" \ "Cancel" ;# <-- NOT TRANSLATED YET ##ID:000847## mcset $l "Take changes back and close dialog" \ "Take changes back and close dialog" ;# <-- NOT TRANSLATED YET ##ID:000848## mcset $l "Configure MCU 8051 IDE" \ "Configure MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:000849## mcset $l "Unable to write to base configuration file" \ "Unable to write to base configuration file" ;# <-- NOT TRANSLATED YET ##ID:000850## mcset $l "Application language changed" \ "Application language changed" ;# <-- NOT TRANSLATED YET ##ID:000851## mcset $l "Language for this application has been changed. The change will take effect upon next start of application" \ "Language for this application has been changed. The change will take effect upon next start of application" ;# <-- NOT TRANSLATED YET ##ID:000852## mcset $l "Widget style" \ "Widget style" ;# <-- NOT TRANSLATED YET ##ID:000853## mcset $l "Your preferred widget style" \ "Your preferred widget style" ;# <-- NOT TRANSLATED YET ##ID:000854## mcset $l "Background color" \ "Background color" ;# <-- NOT TRANSLATED YET ##ID:000855## mcset $l "Common background color for almost everything in the GUI" \ "Common background color for almost everything in the GUI" ;# <-- NOT TRANSLATED YET ##ID:000856## mcset $l "Global font size factor" \ "Global font size factor" ;# <-- NOT TRANSLATED YET ##ID:000857## mcset $l "Allows you to adjust size of (almost) all fonts used in this IDE" \ "Allows you to adjust size of (almost) all fonts used in this IDE" ;# <-- NOT TRANSLATED YET ##ID:000858## mcset $l "Normal" \ "Normal" ;# <-- NOT TRANSLATED YET ##ID:000859## mcset $l "A little larger" \ "A little larger" ;# <-- NOT TRANSLATED YET ##ID:000860## mcset $l "Notably larger" \ "Notably larger" ;# <-- NOT TRANSLATED YET ##ID:000861## mcset $l "Much larger" \ "Much larger" ;# <-- NOT TRANSLATED YET ##ID:000862## mcset $l "Huge" \ "Huge" ;# <-- NOT TRANSLATED YET ##ID:000863## mcset $l "Too BIG" \ "Too BIG" ;# <-- NOT TRANSLATED YET } namespace eval ::configDialogues::terminal { ##ID:000864## mcset $l "Terminal configuration" \ "Terminal configuration" ;# <-- NOT TRANSLATED YET ##ID:000865## mcset $l "Foreground color" \ "Foreground color" ;# <-- NOT TRANSLATED YET ##ID:000866## mcset $l "Background color" \ "Background color" ;# <-- NOT TRANSLATED YET ##ID:000867## mcset $l "Font size" \ "Font size" ;# <-- NOT TRANSLATED YET ##ID:000868## mcset $l "Font family" \ "Font family" ;# <-- NOT TRANSLATED YET ##ID:000869## mcset $l "Use settings and restart terminal emulator" \ "Use settings and restart terminal emulator" ;# <-- NOT TRANSLATED YET ##ID:000870## mcset $l "Reset to defaults" \ "Reset to defaults" ;# <-- NOT TRANSLATED YET ##ID:000871## mcset $l "Reset all settings to defaults" \ "Reset all settings to defaults" ;# <-- NOT TRANSLATED YET ##ID:000872## mcset $l "Ok" \ "Ok" ;# <-- NOT TRANSLATED YET ##ID:000873## mcset $l "Commit new settings" \ "Commit new settings" ;# <-- NOT TRANSLATED YET ##ID:000874## mcset $l "Cancel" \ "Cancel" ;# <-- NOT TRANSLATED YET ##ID:000875## mcset $l "Take changes back and close dialog" \ "Take changes back and close dialog" ;# <-- NOT TRANSLATED YET ##ID:000876## mcset $l "Configure terminal emulator" \ "Configure terminal emulator" ;# <-- NOT TRANSLATED YET ##ID:000877## mcset $l "Select foreground color" \ "Select foreground color" ;# <-- NOT TRANSLATED YET ##ID:000878## mcset $l "Select background color" \ "Select background color" ;# <-- NOT TRANSLATED YET ##ID:000879## mcset $l "Invalid value of key: '%s'" \ "Invalid value of key: '%s'" ;# <-- NOT TRANSLATED YET } namespace eval ::configDialogues::simulator { ##ID:000880## mcset $l "Simulator configuration" \ "Simulator configuration" ;# <-- NOT TRANSLATED YET ##ID:000881## mcset $l "Warning dialogues" \ "Warning dialogues" ;# <-- NOT TRANSLATED YET ##ID:000882## mcset $l "Other" \ "Other" ;# <-- NOT TRANSLATED YET ##ID:000883## mcset $l "Undefined values" \ "Undefined values" ;# <-- NOT TRANSLATED YET ##ID:000884## mcset $l "Return random value" \ "Return random value" ;# <-- NOT TRANSLATED YET ##ID:000885## mcset $l "Return zero value" \ "Return zero value" ;# <-- NOT TRANSLATED YET ##ID:000886## mcset $l "Return highest possible value" \ "Return highest possible value" ;# <-- NOT TRANSLATED YET ##ID:000887## mcset $l "Reverse run" \ "Reverse run" ;# <-- NOT TRANSLATED YET ##ID:000888## mcset $l "Stack capacity" \ "Stack capacity" ;# <-- NOT TRANSLATED YET ##ID:000889## mcset $l "Number of steps which can be taken back" \ "Number of steps which can be taken back" ;# <-- NOT TRANSLATED YET ##ID:004547## mcset $l "Colors" \ "Colors" ;# <-- NOT TRANSLATED YET ##ID:004548## mcset $l "ON color" \ "ON color" ;# <-- NOT TRANSLATED YET ##ID:004549## mcset $l "OFF color" \ "OFF color" ;# <-- NOT TRANSLATED YET ##ID:004550## mcset $l "Color to display a bit name for a bit set to log. 1" \ "Color to display a bit name for a bit set to log. 1" ;# <-- NOT TRANSLATED YET ##ID:004551## mcset $l "Color to display a bit name for a bit set to log. 0" \ "Color to display a bit name for a bit set to log. 0" ;# <-- NOT TRANSLATED YET ##ID:000890## mcset $l "Defaults" \ "Defaults" ;# <-- NOT TRANSLATED YET ##ID:000891## mcset $l "Reset settings to defaults" \ "Reset settings to defaults" ;# <-- NOT TRANSLATED YET ##ID:000892## mcset $l "Ok" \ "Ok" ;# <-- NOT TRANSLATED YET ##ID:000893## mcset $l "Cancel" \ "Cancel" ;# <-- NOT TRANSLATED YET ##ID:000894## mcset $l "Simulator configuration - %s" \ "Simulator configuration - %s" ;# <-- NOT TRANSLATED YET ##ID:000895## mcset $l "Are you sure ?" \ "Are you sure ?" ;# <-- NOT TRANSLATED YET ##ID:000896## mcset $l "Are you sure you want to restore default settings" \ "Are you sure you want to restore default settings" ;# <-- NOT TRANSLATED YET ##ID:000897## mcset $l "Ignore stack overflow" \ "Ignore stack overflow" ;# <-- NOT TRANSLATED YET ##ID:000898## mcset $l "Ignore stack underflow" \ "Ignore stack underflow" ;# <-- NOT TRANSLATED YET ##ID:000899## mcset $l "Ignore invalid instructions" \ "Ignore invalid instructions" ;# <-- NOT TRANSLATED YET ##ID:000900## mcset $l "Ignore watchdog overflow" \ "Ignore watchdog overflow" ;# <-- NOT TRANSLATED YET ##ID:000901## mcset $l "Ignore invalid return from interrupt" \ "Ignore invalid return from interrupt" ;# <-- NOT TRANSLATED YET ##ID:000902## mcset $l "Ignore reading from write only register" \ "Ignore reading from write only register" ;# <-- NOT TRANSLATED YET ##ID:000903## mcset $l "Ignore invalid access to IDATA/SFR" \ "Ignore invalid access to IDATA/SFR" ;# <-- NOT TRANSLATED YET ##ID:000904## mcset $l "Ignore invalid access to EDATA" \ "Ignore invalid access to EDATA" ;# <-- NOT TRANSLATED YET ##ID:000905## mcset $l "Ignore invalid access to XDATA" \ "Ignore invalid access to XDATA" ;# <-- NOT TRANSLATED YET ##ID:000906## mcset $l "Ignore invalid access to bit" \ "Ignore invalid access to bit" ;# <-- NOT TRANSLATED YET ##ID:000907## mcset $l "Ignore invalid access to CODE" \ "Ignore invalid access to CODE" ;# <-- NOT TRANSLATED YET ##ID:000908## mcset $l "Ignore EEPROM write failure" \ "Ignore EEPROM write failure" ;# <-- NOT TRANSLATED YET ##ID:000909## mcset $l "Ignore EEPROM write abort" \ "Ignore EEPROM write abort" ;# <-- NOT TRANSLATED YET ##ID:000910## mcset $l "Ignore UART frame discard" \ "Ignore UART frame discard" ;# <-- NOT TRANSLATED YET ##ID:000911## mcset $l "Ignore illegal UART mode change" \ "Ignore illegal UART mode change" ;# <-- NOT TRANSLATED YET ##ID:000912## mcset $l "Ignore illegal Timer/Counter mode change" \ "Ignore illegal Timer/Counter mode change" ;# <-- NOT TRANSLATED YET ##ID:000913## mcset $l "Do not complain about invalid breakpoints" \ "Do not complain about invalid breakpoints" ;# <-- NOT TRANSLATED YET ##ID:000914## mcset $l "Check this to disable warning on stack overflow" \ "Check this to disable warning on stack overflow" ;# <-- NOT TRANSLATED YET ##ID:000915## mcset $l "Check this to disable warning on stack underflow" \ "Check this to disable warning on stack underflow" ;# <-- NOT TRANSLATED YET ##ID:000916## mcset $l "Check this to disable warning on\ninvalid instruction" \ "Check this to disable warning on\ninvalid instruction" ;# <-- NOT TRANSLATED YET ##ID:000917## mcset $l "Do not stop simulation on device reset\ninvoked by watchdog timer overflow" \ "Do not stop simulation on device reset\ninvoked by watchdog timer overflow" ;# <-- NOT TRANSLATED YET ##ID:000918## mcset $l "Do not show warning dialog when program trying to return from interrupt which has not been invoked" \ "Do not show warning dialog when program trying to return from interrupt which has not been invoked" ;# <-- NOT TRANSLATED YET ##ID:000919## mcset $l "Do not display warning dialog when\nreading from write-only register" \ "Do not display warning dialog when\nreading from write-only register" ;# <-- NOT TRANSLATED YET ##ID:000920## mcset $l "Do not display dialog \"Undefined result\" when simulated program\naccessing unimplemented Internal Data Memory (IDATA) or SFR area" \ "Do not display dialog \"Undefined result\" when simulated program\naccessing unimplemented Internal Data Memory (IDATA) or SFR area" ;# <-- NOT TRANSLATED YET ##ID:000921## mcset $l "Do not display dialog \"Undefined result\" when simulated program\naccessing unimplemented Expanded Data Memory (EDATA)" \ "Do not display dialog \"Undefined result\" when simulated program\naccessing unimplemented Expanded Data Memory (EDATA)" ;# <-- NOT TRANSLATED YET ##ID:000922## mcset $l "Do not display dialog \"Undefined result\" when simulated program\naccessing unimplemented External Data Memory (XDATA)" \ "Do not display dialog \"Undefined result\" when simulated program\naccessing unimplemented External Data Memory (XDATA)" ;# <-- NOT TRANSLATED YET ##ID:000923## mcset $l "Do not display dialog \"Undefined result\" when simulated program\naccessing unimplemented bit in IDATA or SFR area" \ "Do not display dialog \"Undefined result\" when simulated program\naccessing unimplemented bit in IDATA or SFR area" ;# <-- NOT TRANSLATED YET ##ID:000924## mcset $l "Do not display dialog \"Undefined result\" when simulated program\naccessing unimplemented Program Memory (CODE)" \ "Do not display dialog \"Undefined result\" when simulated program\naccessing unimplemented Program Memory (CODE)" ;# <-- NOT TRANSLATED YET ##ID:000925## mcset $l "Check this to disable warning on\ndata eeprom write failure" \ "Check this to disable warning on\ndata eeprom write failure" ;# <-- NOT TRANSLATED YET ##ID:000926## mcset $l "Check this to disable warning on\ndata eeprom write abort" \ "Check this to disable warning on\ndata eeprom write abort" ;# <-- NOT TRANSLATED YET ##ID:000927## mcset $l "Check this to disable warning on UART frame discard" \ "Check this to disable warning on UART frame discard" ;# <-- NOT TRANSLATED YET ##ID:000928## mcset $l "Check this to disable warning on illegal UART mode change" \ "Check this to disable warning on illegal UART mode change" ;# <-- NOT TRANSLATED YET ##ID:000929## mcset $l "Check this to disable warning on illegal Timer/Counter mode change" \ "Check this to disable warning on illegal Timer/Counter mode change" ;# <-- NOT TRANSLATED YET ##ID:000930## mcset $l "Disable warning: \"warning: Invalid breakpoint\"" \ "Disable warning: \"warning: Invalid breakpoint\"" ;# <-- NOT TRANSLATED YET } namespace eval ::configDialogues::shortcuts { # Strings in shortcuts configuration dialog ##ID:000931## mcset $l "Configure key shortcuts" \ "Configure key shortcuts" ;# <-- NOT TRANSLATED YET ##ID:000932## mcset $l "available items" \ "available items" ;# <-- NOT TRANSLATED YET ##ID:000933## mcset $l "" \ "" ;# <-- NOT TRANSLATED YET ##ID:000934## mcset $l "Search:" \ "Search:" ;# <-- NOT TRANSLATED YET ##ID:000935## mcset $l "Enter your search string here" \ "Enter your search string here" ;# <-- NOT TRANSLATED YET ##ID:000936## mcset $l "Clear" \ "Clear" ;# <-- NOT TRANSLATED YET ##ID:000937## mcset $l "Current shortcut:" \ "Current shortcut:" ;# <-- NOT TRANSLATED YET ##ID:000938## mcset $l "Default:" \ "Default:" ;# <-- NOT TRANSLATED YET ##ID:000939## mcset $l "Restore default" \ "Restore default" ;# <-- NOT TRANSLATED YET ##ID:000940## mcset $l "Accept" \ "Accept" ;# <-- NOT TRANSLATED YET ##ID:000941## mcset $l "Accept new shortcut" \ "Accept new shortcut" ;# <-- NOT TRANSLATED YET ##ID:000942## mcset $l "Original" \ "Original" ;# <-- NOT TRANSLATED YET ##ID:000943## mcset $l "Discard new shortcut" \ "Discard new shortcut" ;# <-- NOT TRANSLATED YET ##ID:000944## mcset $l "Defaults" \ "Defaults" ;# <-- NOT TRANSLATED YET ##ID:000945## mcset $l "Reset all settings to defaults" \ "Reset all settings to defaults" ;# <-- NOT TRANSLATED YET ##ID:000946## mcset $l "Ok" \ "Ok" ;# <-- NOT TRANSLATED YET ##ID:000947## mcset $l "Commit new settings" \ "Commit new settings" ;# <-- NOT TRANSLATED YET ##ID:000948## mcset $l "Take changes back and close dialog" \ "Take changes back and close dialog" ;# <-- NOT TRANSLATED YET ##ID:000949## mcset $l "Configure shortcuts - %s" \ "Configure shortcuts - %s" ;# <-- NOT TRANSLATED YET ##ID:000950## mcset $l "Modifier required (Control or Alt)" \ "Modifier required (Control or Alt)" ;# <-- NOT TRANSLATED YET ##ID:000951## mcset $l "This combination is hard-coded in the main window, so it cannot be used" \ "This combination is hard-coded in the main window, so it cannot be used" ;# <-- NOT TRANSLATED YET ##ID:000952## mcset $l "This combination is hard-coded, so it cannot be used" \ "This combination is hard-coded, so it cannot be used" ;# <-- NOT TRANSLATED YET ##ID:000953## mcset $l "The '%s' key combination has already been assigned to \"%s\"." \ "The '%s' key combination has already been assigned to \"%s\"." ;# <-- NOT TRANSLATED YET ##ID:000954## mcset $l "Removing key combination for action \"%s\"" \ "Removing key combination for action \"%s\"" ;# <-- NOT TRANSLATED YET ##ID:000955## mcset $l "Item changed" \ "Item changed" ;# <-- NOT TRANSLATED YET ##ID:000956## mcset $l "The previous item was modified. Do you want to save it ?" \ "The previous item was modified. Do you want to save it ?" ;# <-- NOT TRANSLATED YET ##ID:000957## mcset $l "Confirmation required" \ "Confirmation required" ;# <-- NOT TRANSLATED YET ##ID:000958## mcset $l "This will discard all shortcut settings and replace them with defaults. Are you sure by that ?" \ "This will discard all shortcut settings and replace them with defaults. Are you sure by that ?" ;# <-- NOT TRANSLATED YET ## Shortcut names # Main ##ID:000959## mcset $l "Main" \ "Main" ;# <-- NOT TRANSLATED YET ##ID:000960## mcset $l "Exit program" \ "Exit program" ;# <-- NOT TRANSLATED YET ##ID:000961## mcset $l "Save session" \ "Save session" ;# <-- NOT TRANSLATED YET ##ID:000962## mcset $l "File statistics" \ "File statistics" ;# <-- NOT TRANSLATED YET ##ID:000963## mcset $l "Toggle full screen mode" \ "Toggle full screen mode" ;# <-- NOT TRANSLATED YET # Project management ##ID:000964## mcset $l "Project management" \ "Project management" ;# <-- NOT TRANSLATED YET ##ID:000965## mcset $l "New project" \ "New project" ;# <-- NOT TRANSLATED YET ##ID:000966## mcset $l "Open project" \ "Open project" ;# <-- NOT TRANSLATED YET ##ID:000967## mcset $l "Save project" \ "Save project" ;# <-- NOT TRANSLATED YET ##ID:000968## mcset $l "Edit project" \ "Edit project" ;# <-- NOT TRANSLATED YET ##ID:000969## mcset $l "Save and close project" \ "Save and close project" ;# <-- NOT TRANSLATED YET ##ID:000970## mcset $l "Close project" \ "Close project" ;# <-- NOT TRANSLATED YET # Simulator ##ID:000971## mcset $l "Simulator" \ "Simulator" ;# <-- NOT TRANSLATED YET ##ID:000972## mcset $l "Start simulator" \ "Start simulator" ;# <-- NOT TRANSLATED YET ##ID:000973## mcset $l "Debug this file only" \ "Debug this file only" ;# <-- NOT TRANSLATED YET ##ID:000974## mcset $l "Show SFR map" \ "Show SFR map" ;# <-- NOT TRANSLATED YET ##ID:000975## mcset $l "Bit addressable array" \ "Bit addressable array" ;# <-- NOT TRANSLATED YET ##ID:000976## mcset $l "Show Code memory" \ "Show Code memory" ;# <-- NOT TRANSLATED YET ##ID:000977## mcset $l "Show XDATA memory" \ "Show XDATA memory" ;# <-- NOT TRANSLATED YET ##ID:000978## mcset $l "Show ERAM" \ "Show ERAM" ;# <-- NOT TRANSLATED YET ##ID:000979## mcset $l "Show Data EEPROM" \ "Show Data EEPROM" ;# <-- NOT TRANSLATED YET ##ID:000980## mcset $l "Show EEPROM write buffer" \ "Show EEPROM write buffer" ;# <-- NOT TRANSLATED YET ##ID:000981## mcset $l "Invoke MCU stack monitor" \ "Invoke MCU stack monitor" ;# <-- NOT TRANSLATED YET ##ID:000982## mcset $l "Reset - Only SFR" \ "Reset - Only SFR" ;# <-- NOT TRANSLATED YET ##ID:000983## mcset $l "Reset - All zeros" \ "Reset - All zeros" ;# <-- NOT TRANSLATED YET ##ID:000984## mcset $l "Reset - All ones" \ "Reset - All ones" ;# <-- NOT TRANSLATED YET ##ID:000985## mcset $l "Reset - Random" \ "Reset - Random" ;# <-- NOT TRANSLATED YET ##ID:000986## mcset $l "Simulator: Step" \ "Simulator: Step" ;# <-- NOT TRANSLATED YET ##ID:000987## mcset $l "Simulator: Step Back" \ "Simulator: Step Back" ;# <-- NOT TRANSLATED YET ##ID:000988## mcset $l "Simulator: Step over" \ "Simulator: Step over" ;# <-- NOT TRANSLATED YET ##ID:000989## mcset $l "Simulator: Animate" \ "Simulator: Animate" ;# <-- NOT TRANSLATED YET ##ID:000990## mcset $l "Simulator: Run" \ "Simulator: Run" ;# <-- NOT TRANSLATED YET ##ID:000991## mcset $l "Allow/Deny breakpoints" \ "Allow/Deny breakpoints" ;# <-- NOT TRANSLATED YET ##ID:000992## mcset $l "Clear highlight" \ "Clear highlight" ;# <-- NOT TRANSLATED YET ##ID:000993## mcset $l "Find cursor" \ "Find cursor" ;# <-- NOT TRANSLATED YET ##ID:000994## mcset $l "Jump to line" \ "Jump to line" ;# <-- NOT TRANSLATED YET ##ID:000995## mcset $l "Simulator: Hibernate" \ "Simulator: Hibernate" ;# <-- NOT TRANSLATED YET ##ID:000996## mcset $l "Simulator: Resume" \ "Simulator: Resume" ;# <-- NOT TRANSLATED YET ##ID:000997## mcset $l "Interrupt monitor" \ "Interrupt monitor" ;# <-- NOT TRANSLATED YET ##ID:000998## mcset $l "Stopwatch" \ "Stopwatch" ;# <-- NOT TRANSLATED YET # Virtual HW ##ID:000999## mcset $l "Virtual HW" \ "Virtual HW" ;# <-- NOT TRANSLATED YET ##ID:001000## mcset $l "LED panel" \ "LED panel" ;# <-- NOT TRANSLATED YET ##ID:001001## mcset $l "LED display" \ "LED display" ;# <-- NOT TRANSLATED YET ##ID:001002## mcset $l "LED matrix" \ "LED matrix" ;# <-- NOT TRANSLATED YET ##ID:001003## mcset $l "Multiplexed LED display" \ "Multiplexed LED display" ;# <-- NOT TRANSLATED YET ##ID:001004## mcset $l "Simple keypad" \ "Simple keypad" ;# <-- NOT TRANSLATED YET ##ID:001005## mcset $l "Matrix keypad" \ "Matrix keypad" ;# <-- NOT TRANSLATED YET ##ID:001006## mcset $l "Open" \ "Open" ;# <-- NOT TRANSLATED YET ##ID:001007## mcset $l "Load" \ "Load" ;# <-- NOT TRANSLATED YET ##ID:001008## mcset $l "Save" \ "Save" ;# <-- NOT TRANSLATED YET ##ID:001009## mcset $l "Save as" \ "Save as" ;# <-- NOT TRANSLATED YET ##ID:001010## mcset $l "Remove all" \ "Remove all" ;# <-- NOT TRANSLATED YET # Tools ##ID:001011## mcset $l "Tools" \ "Tools" ;# <-- NOT TRANSLATED YET ##ID:001012## mcset $l "Compile" \ "Compile" ;# <-- NOT TRANSLATED YET ##ID:001013## mcset $l "Compile this file only" \ "Compile this file only" ;# <-- NOT TRANSLATED YET ##ID:001014## mcset $l "Disassemble" \ "Disassemble" ;# <-- NOT TRANSLATED YET ##ID:001015## mcset $l "Auto indent" \ "Auto indent" ;# <-- NOT TRANSLATED YET ##ID:001016## mcset $l "Change letter case" \ "Change letter case" ;# <-- NOT TRANSLATED YET ##ID:001017## mcset $l "Cleanup dialog" \ "Cleanup dialog" ;# <-- NOT TRANSLATED YET ##ID:001018## mcset $l "Export as XHTML" \ "Export as XHTML" ;# <-- NOT TRANSLATED YET ##ID:001019## mcset $l "Export as LaTeX" \ "Export as LaTeX" ;# <-- NOT TRANSLATED YET ##ID:001020## mcset $l "Document current function" \ "Document current function" ;# <-- NOT TRANSLATED YET ##ID:001021## mcset $l "Run doxywizard" \ "Run doxywizard" ;# <-- NOT TRANSLATED YET ##ID:001022## mcset $l "Build C API documentation" \ "Build C API documentation" ;# <-- NOT TRANSLATED YET ##ID:001023## mcset $l "Clear C API documentation" \ "Clear C API documentation" ;# <-- NOT TRANSLATED YET ##ID:001024## mcset $l "Custom command 0" \ "Custom command 0" ;# <-- NOT TRANSLATED YET ##ID:001025## mcset $l "Custom command 1" \ "Custom command 1" ;# <-- NOT TRANSLATED YET ##ID:001026## mcset $l "Custom command 2" \ "Custom command 2" ;# <-- NOT TRANSLATED YET # Utilities ##ID:001027## mcset $l "Utilities" \ "Utilities" ;# <-- NOT TRANSLATED YET ##ID:001028## mcset $l "Hex -> Bin" \ "Hex -> Bin" ;# <-- NOT TRANSLATED YET ##ID:001029## mcset $l "Bin -> Hex" \ "Bin -> Hex" ;# <-- NOT TRANSLATED YET ##ID:001030## mcset $l "Sim -> Hex" \ "Sim -> Hex" ;# <-- NOT TRANSLATED YET ##ID:001031## mcset $l "Sim -> Bin" \ "Sim -> Bin" ;# <-- NOT TRANSLATED YET ##ID:001032## mcset $l "Normalize IHEX8" \ "Normalize IHEX8" ;# <-- NOT TRANSLATED YET ##ID:001033## mcset $l "Hex Editor" \ "Hex Editor" ;# <-- NOT TRANSLATED YET ##ID:001034## mcset $l "Symbol table" \ "Symbol table" ;# <-- NOT TRANSLATED YET ##ID:001035## mcset $l "8-segment editor" \ "8-segment editor" ;# <-- NOT TRANSLATED YET ##ID:001036## mcset $l "ASCII chart" \ "ASCII chart" ;# <-- NOT TRANSLATED YET ##ID:001037## mcset $l "Scribble notepad" \ "Scribble notepad" ;# <-- NOT TRANSLATED YET ##ID:001038## mcset $l "Base Converter" \ "Base Converter" ;# <-- NOT TRANSLATED YET ##ID:001039## mcset $l "UART/RS232 Debugger" \ "UART/RS232 Debugger" ;# <-- NOT TRANSLATED YET ##ID:001040## mcset $l "Help" \ "Help" ;# <-- NOT TRANSLATED YET ##ID:001041## mcset $l "About dialog" \ "About dialog" ;# <-- NOT TRANSLATED YET ##ID:001042## mcset $l "Welcome dialog" \ "Welcome dialog" ;# <-- NOT TRANSLATED YET ##ID:001043## mcset $l "Tip of the day" \ "Tip of the day" ;# <-- NOT TRANSLATED YET # Messages text ##ID:001044## mcset $l "Messages text" \ "Messages text" ;# <-- NOT TRANSLATED YET ##ID:001045## mcset $l "Clear messages" \ "Clear messages" ;# <-- NOT TRANSLATED YET ##ID:001046## mcset $l "Find" \ "Find" ;# <-- NOT TRANSLATED YET ##ID:001047## mcset $l "Find next" \ "Find next" ;# <-- NOT TRANSLATED YET ##ID:001048## mcset $l "Find previous" \ "Find previous" ;# <-- NOT TRANSLATED YET # Notes ##ID:001049## mcset $l "Notes" \ "Notes" ;# <-- NOT TRANSLATED YET ##ID:001050## mcset $l "Bold text" \ "Bold text" ;# <-- NOT TRANSLATED YET ##ID:001051## mcset $l "Italic text" \ "Italic text" ;# <-- NOT TRANSLATED YET ##ID:001052## mcset $l "Strikethrough text" \ "Striketrought text" ;# <-- NOT TRANSLATED YET ##ID:001053## mcset $l "Underline text" \ "Underline text" ;# <-- NOT TRANSLATED YET ##ID:001054## mcset $l "Erase tags" \ "Erase tags" ;# <-- NOT TRANSLATED YET ##ID:001055## mcset $l "Insert OK image" \ "Insert OK image" ;# <-- NOT TRANSLATED YET ##ID:001056## mcset $l "Register watches" \ "Register watches" ;# <-- NOT TRANSLATED YET ##ID:001057## mcset $l "Move to top" \ "Move to top" ;# <-- NOT TRANSLATED YET ##ID:001058## mcset $l "Move up" \ "Move up" ;# <-- NOT TRANSLATED YET ##ID:001059## mcset $l "Move down" \ "Move down" ;# <-- NOT TRANSLATED YET ##ID:001060## mcset $l "Move to bottom" \ "Move to bottom" ;# <-- NOT TRANSLATED YET ##ID:001061## mcset $l "Remove" \ "Remove" ;# <-- NOT TRANSLATED YET # Editor ##ID:001062## mcset $l "Editor" \ "Editor" ;# <-- NOT TRANSLATED YET ##ID:001063## mcset $l "Read only mode" \ "Read only mode" ;# <-- NOT TRANSLATED YET ##ID:001064## mcset $l "New" \ "New" ;# <-- NOT TRANSLATED YET ##ID:001065## mcset $l "Save all" \ "Save all" ;# <-- NOT TRANSLATED YET ##ID:001066## mcset $l "Close" \ "Close" ;# <-- NOT TRANSLATED YET ##ID:001067## mcset $l "Close all" \ "Close all" ;# <-- NOT TRANSLATED YET ##ID:001068## mcset $l "Show/Hide icon border" \ "Show/Hide icon border" ;# <-- NOT TRANSLATED YET ##ID:001069## mcset $l "Show/Hide line numbers" \ "Show/Hide line numbers" ;# <-- NOT TRANSLATED YET ##ID:001070## mcset $l "Reload" \ "Reload" ;# <-- NOT TRANSLATED YET ##ID:001071## mcset $l "Next editor" \ "Next editor" ;# <-- NOT TRANSLATED YET ##ID:001072## mcset $l "Previous editor" \ "Previous editor" ;# <-- NOT TRANSLATED YET ##ID:001073## mcset $l "Breakpoint" \ "Breakpoint" ;# <-- NOT TRANSLATED YET ##ID:001074## mcset $l "Bookmark" \ "Bookmark" ;# <-- NOT TRANSLATED YET ##ID:001075## mcset $l "Undo" \ "Undo" ;# <-- NOT TRANSLATED YET ##ID:001076## mcset $l "Redo" \ "Redo" ;# <-- NOT TRANSLATED YET ##ID:001077## mcset $l "Copy" \ "Copy" ;# <-- NOT TRANSLATED YET ##ID:001078## mcset $l "Cut" \ "Cut" ;# <-- NOT TRANSLATED YET ##ID:001079## mcset $l "Paste" \ "Paste" ;# <-- NOT TRANSLATED YET ##ID:001080## mcset $l "Select all" \ "Select all" ;# <-- NOT TRANSLATED YET ##ID:001081## mcset $l "Replace" \ "Replace" ;# <-- NOT TRANSLATED YET ##ID:001082## mcset $l "Go to line" \ "Go to line" ;# <-- NOT TRANSLATED YET ##ID:001083## mcset $l "Comment" \ "Comment" ;# <-- NOT TRANSLATED YET ##ID:001084## mcset $l "Uncomment" \ "Uncomment" ;# <-- NOT TRANSLATED YET ##ID:001085## mcset $l "Indent" \ "Indent" ;# <-- NOT TRANSLATED YET ##ID:001086## mcset $l "Unindent" \ "Unindent" ;# <-- NOT TRANSLATED YET ##ID:001087## mcset $l "Uppercase" \ "Uppercase" ;# <-- NOT TRANSLATED YET ##ID:001088## mcset $l "Lowercase" \ "Lowercase" ;# <-- NOT TRANSLATED YET ##ID:001089## mcset $l "Capitalize" \ "Capitalize" ;# <-- NOT TRANSLATED YET ##ID:001090## mcset $l "Go to next bookmark" \ "Go to next bookmark" ;# <-- NOT TRANSLATED YET ##ID:001091## mcset $l "Go to previous bookmark" \ "Go to previous bookmark" ;# <-- NOT TRANSLATED YET ##ID:001092## mcset $l "Program jump" \ "Program jump" ;# <-- NOT TRANSLATED YET ##ID:001093## mcset $l "Call subprogram" \ "Call subprogram" ;# <-- NOT TRANSLATED YET ##ID:001094## mcset $l "Editor command line" \ "Editor command line" ;# <-- NOT TRANSLATED YET ##ID:001095## mcset $l "Split vertical" \ "Split vertical" ;# <-- NOT TRANSLATED YET ##ID:001096## mcset $l "Split horizontal" \ "Split horizontal" ;# <-- NOT TRANSLATED YET ##ID:001097## mcset $l "Close current view" \ "Close current view" ;# <-- NOT TRANSLATED YET ##ID:001098## mcset $l "Block selection mode" \ "Block selection mode" ;# <-- NOT TRANSLATED YET } # instructiondetails.tcl # ============================================================================== namespace eval InstructionDetails { ##ID:001099## mcset $l "Note:" \ "Note:" ;# <-- NOT TRANSLATED YET ##ID:001100## mcset $l "OPCODE:" \ "OPCODE:" ;# <-- NOT TRANSLATED YET ##ID:001101## mcset $l "Time:" \ "Time:" ;# <-- NOT TRANSLATED YET ##ID:001102## mcset $l "Length:" \ "Length:" ;# <-- NOT TRANSLATED YET ##ID:001103## mcset $l "Flags:" \ "Flags:" ;# <-- NOT TRANSLATED YET ##ID:001104## mcset $l "Class:" \ "Class:" ;# <-- NOT TRANSLATED YET ##ID:001105## mcset $l "no help available for this directive" \ "no help available for this directive" ;# <-- NOT TRANSLATED YET ##ID:001106## mcset $l "\tCarry flag\n" \ "\tCarry flag\n" ;# <-- NOT TRANSLATED YET ##ID:001107## mcset $l "\tIndirect address" \ "\tIndirect address" ;# <-- NOT TRANSLATED YET ##ID:001108## mcset $l "\tRegisters of active bank\n" \ "\tRegisters of active bank\n" ;# <-- NOT TRANSLATED YET ##ID:001109## mcset $l "\tAccumulator\n" \ "\tAccumulator\n" ;# <-- NOT TRANSLATED YET ##ID:001110## mcset $l "\tPrimary work register\n" \ "\tPrimary work register\n" ;# <-- NOT TRANSLATED YET ##ID:001111## mcset $l "\tData PoinTeR register (16 bit)\n" \ "\tData PoinTeR register (16 bit)\n" ;# <-- NOT TRANSLATED YET ##ID:001112## mcset $l "\tbit memory direct address\n" \ "\tbit memory direct address\n" ;# <-- NOT TRANSLATED YET ##ID:001113## mcset $l "\tinternal data memory or SFR direct address\n" \ "\tinternal data memory or SFR direct address\n" ;# <-- NOT TRANSLATED YET ##ID:001114## mcset $l "\t16 bit constant data\n" \ "\t16 bit constant data\n" ;# <-- NOT TRANSLATED YET ##ID:001115## mcset $l "\t8 bit constant data\n" \ "\t8 bit constant data\n" ;# <-- NOT TRANSLATED YET ##ID:001116## mcset $l "\t16 bit program memory address\n" \ "\t16 bit program memory address\n" ;# <-- NOT TRANSLATED YET ##ID:001117## mcset $l "\t11 bit program memory address\n" \ "\t11 bit program memory address\n" ;# <-- NOT TRANSLATED YET ##ID:001118## mcset $l "\t8 bit offset for relative jump\n" \ "\t8 bit offset for relative jump\n" ;# <-- NOT TRANSLATED YET ##ID:001119## mcset $l "bit" \ "bit" ;# <-- NOT TRANSLATED YET ##ID:001120## mcset $l "data" \ "data" ;# <-- NOT TRANSLATED YET ##ID:001121## mcset $l "imm16" \ "imm16" ;# <-- NOT TRANSLATED YET ##ID:001122## mcset $l "imm8" \ "imm8" ;# <-- NOT TRANSLATED YET ##ID:001123## mcset $l "code16" \ "code16" ;# <-- NOT TRANSLATED YET ##ID:001124## mcset $l "code11" \ "code11" ;# <-- NOT TRANSLATED YET ##ID:001125## mcset $l "code8" \ "code8" ;# <-- NOT TRANSLATED YET ##ID:001126## mcset $l "-- click to close --" \ "-- click to close --" ;# <-- NOT TRANSLATED YET ##ID:001127## mcset $l "Instruction operands" \ "Instruction operands" ;# <-- NOT TRANSLATED YET ##ID:001128## mcset $l "Instruction name" \ "Instruction name" ;# <-- NOT TRANSLATED YET ##ID:001129## mcset $l "Show legend" \ "Show legend" ;# <-- NOT TRANSLATED YET ##ID:001130## mcset $l "Conditional assembly\n\nSyntax:\n ELSEIF \n\nExample:\n IF(2 * 4 - CND)\n MOV A, #20h\n ELSEIF SOMETHING_ELSE\n MOV A, #40h\n ENDIF\n\n" \ "Conditional assembly\n\nSyntax:\n ELSEIF \n\nExample:\n IF(2 * 4 - CND)\n MOV A, #20h\n ELSEIF SOMETHING_ELSE\n MOV A, #40h\n ENDIF\n\n" ;# <-- NOT TRANSLATED YET ##ID:001131## mcset $l "IF Not, conditional assembly\n\nSyntax:\n IFN \n\nExample:\n IF(2 * 4 - CND)\n MOV A, #20h\n ELSE\n MOV A, #40h\n ENDIF\n\n" \ "IF Not, conditional assembly\n\nSyntax:\n IFN \n\nExample:\n IF(2 * 4 - CND)\n MOV A, #20h\n ELSE\n MOV A, #40h\n ENDIF\n\n" ;# <-- NOT TRANSLATED YET ##ID:001132## mcset $l "ELSE IF Not\n\nSyntax:\n ELSEIFN \n\nExample:\n IF(2 * 4 - CND)\n MOV A, #20h\n ELSEIFN SOMETHING_ELSE\n MOV A, #40h\n ENDIF\n\n" \ "ELSE IF Not\n\nSyntax:\n ELSEIFN \n\nExample:\n IF(2 * 4 - CND)\n MOV A, #20h\n ELSEIFN SOMETHING_ELSE\n MOV A, #40h\n ENDIF\n\n" ;# <-- NOT TRANSLATED YET ##ID:001133## mcset $l "IF DEFined\n\nSyntax:\n IFDEF \n\nExample:\n IFDEF CND\n MOV A, #20h\n ELSE\n MOV A, #40h\n ENDIF\n\n" \ "IF DEFined\n\nSyntax:\n IFDEF \n\nExample:\n IFDEF CND\n MOV A, #20h\n ELSE\n MOV A, #40h\n ENDIF\n\n" ;# <-- NOT TRANSLATED YET ##ID:001134## mcset $l "ELSE IF DEFined\n\nSyntax:\n ELSEIFDEF \n\nExample:\n IFDEF(2 * 4 - CND)\n MOV A, #20h\n ELSEIFDEF SOMETHING_ELSE\n MOV A, #40h\n ENDIF\n\n" \ "ELSE IF DEFined\n\nSyntax:\n ELSEIFDEF \n\nExample:\n IFDEF(2 * 4 - CND)\n MOV A, #20h\n ELSEIFDEF SOMETHING_ELSE\n MOV A, #40h\n ENDIF\n\n" ;# <-- NOT TRANSLATED YET ##ID:001135## mcset $l "IF Not DEFined\n\nSyntax:\n IFNDEF \n\nExample:\n IFNDEF CND\n MOV A, #20h\n ELSE\n MOV A, #40h\n ENDIF\n\n" \ "IF Not DEFined\n\nSyntax:\n IFNDEF \n\nExample:\n IFNDEF CND\n MOV A, #20h\n ELSE\n MOV A, #40h\n ENDIF\n\n" ;# <-- NOT TRANSLATED YET ##ID:001136## mcset $l "ELSE IF Not DEFined\n\nSyntax:\n ELSEIFNDEF \n\nExample:\n IFDEF CND\n MOV A, #20h\n ELSEIFNDEF SOMETHING_ELSE\n MOV A, #40h\n ENDIF\n\n" \ "ELSE IF Not DEFined\n\nSyntax:\n ELSEIFNDEF \n\nExample:\n IFDEF CND\n MOV A, #20h\n ELSEIFNDEF SOMETHING_ELSE\n MOV A, #40h\n ENDIF\n\n" ;# <-- NOT TRANSLATED YET ##ID:001137## mcset $l "IF Black\n\nSyntax:\n IFB \n\nExample:\n IFB \n MOV A, #20h\n ELSE\n MOV A, #40h\n ENDIF\n\nNote:\n Supported by ASEM-51 only" \ "IF Black\n\nSyntax:\n IFB \n\nExample:\n IFB \n MOV A, #20h\n ELSE\n MOV A, #40h\n ENDIF\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001138## mcset $l "ELSE IF Black\n\nSyntax:\n ELSEIFB \n\nExample:\n IFB \n MOV A, #20h\n ELSEIFB \n MOV A, #40h\n ENDIF\n\literal:\n Supported by ASEM-51 only" \ "ELSE IF Black\n\nSyntax:\n ELSEIFB \n\nExample:\n IFB \n MOV A, #20h\n ELSEIFB \n MOV A, #40h\n ENDIF\n\literal:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001139## mcset $l "IF Not Black\n\nSyntax:\n IFNB \n\nExample:\n IFNB \n MOV A, #20h\n ELSE\n MOV A, #40h\n ENDIF\n\nNote:\n Supported by ASEM-51 only" \ "IF Not Black\n\nSyntax:\n IFNB \n\nExample:\n IFNB \n MOV A, #20h\n ELSE\n MOV A, #40h\n ENDIF\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001140## mcset $l "ELSE IF Not Black\n\nSyntax:\n ELSEIFNB \n\nExample:\n IFB \n MOV A, #20h\n ELSEIFNB \n MOV A, #40h\n ENDIF\n\nNote:\n Supported by ASEM-51 only" \ "ELSE IF Not Black\n\nSyntax:\n ELSEIFNB \n\nExample:\n IFB \n MOV A, #20h\n ELSEIFNB \n MOV A, #40h\n ENDIF\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001141## mcset $l "REPeaT Macro\n\nSyntax:\n REPT \n\nExample:\n REPT 5\n NOP\n ENDM\n\n" \ "REPeaT Macro\n\nSyntax:\n REPT \n\nExample:\n REPT 5\n NOP\n ENDM\n\n" ;# <-- NOT TRANSLATED YET ##ID:001142## mcset $l "REPeaT Macro\n\nSyntax:\n TIMES \n\nExample:\n TIMES 5\n NOP\n ENDM\n\nNote:\n Supported by native assembler only" \ "REPeaT Macro\n\nSyntax:\n TIMES \n\nExample:\n TIMES 5\n NOP\n ENDM\n\nNote:\n Supported by native assembler only" ;# <-- NOT TRANSLATED YET ##ID:001143## mcset $l "define module NAME\n\nSyntax:\n NAME \n\nExample:\n NAME my_2nd_program\n\nNote:\n Supported by ASEM-51 only" \ "define module NAME\n\nSyntax:\n NAME \n\nExample:\n NAME my_2nd_program\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001144## mcset $l "Conditional assembly\n\nSyntax:\n IF \n\nExample:\n IF(2 * 4 - CND)\n MOV A, #20h\n ELSE\n MOV A, #40h\n ENDIF\n\n" \ "Conditional assembly\n\nSyntax:\n IF \n\nExample:\n IF(2 * 4 - CND)\n MOV A, #20h\n ELSE\n MOV A, #40h\n ENDIF\n\n" ;# <-- NOT TRANSLATED YET ##ID:001145## mcset $l "Conditional assembly\n\nSyntax:\n ELSE\n\nExample:\n IF(2 * 4 - CND)\n MOV A, #20h\n ELSE\n MOV A, #40h\n ENDIF\n\n" \ "Conditional assembly\n\nSyntax:\n ELSE\n\nExample:\n IF(2 * 4 - CND)\n MOV A, #20h\n ELSE\n MOV A, #40h\n ENDIF\n\n" ;# <-- NOT TRANSLATED YET ##ID:001146## mcset $l "Conditional assembly\n\nSyntax:\n ENDIF\n\nExample:\n IF(2 * 4 - CND)\n MOV A, #20h\n ELSE\n MOV A, #40h\n ENDIF\n\n" \ "Conditional assembly\n\nSyntax:\n ENDIF\n\nExample:\n IF(2 * 4 - CND)\n MOV A, #20h\n ELSE\n MOV A, #40h\n ENDIF\n\n" ;# <-- NOT TRANSLATED YET ##ID:001147## mcset $l "END of Macro definition\n\nSyntax:\n ENDM\n\nExample:\n ABC MACRO\n MOV B, #12d\n ENDM\n\n" \ "END of Macro definition\n\nSyntax:\n ENDM\n\nExample:\n ABC MACRO\n MOV B, #12d\n ENDM\n\n" ;# <-- NOT TRANSLATED YET ##ID:001148## mcset $l "END of the program\n\nSyntax:\n END\n\nExample:\n END\n\n" \ "END of the program\n\nSyntax:\n END\n\nExample:\n END\n\n" ;# <-- NOT TRANSLATED YET ##ID:001149## mcset $l "premature end of macro expansion\n\nSyntax:\n EXITM\n\nExample:\n ABC MACRO\n MOV B, #12d\n EXITM\n NOP\n ENDM\n\n" \ "premature end of macro expansion\n\nSyntax:\n EXITM\n\nExample:\n ABC MACRO\n MOV B, #12d\n EXITM\n NOP\n ENDM\n\n" ;# <-- NOT TRANSLATED YET ##ID:001150## mcset $l "enable code LISTing\n\nSyntax:\n LIST\n\nExample:\n NOP\n NOLIST\n NOP\n NOP\n LIST\n NOP\n\n" \ "enable code LISTing\n\nSyntax:\n LIST\n\nExample:\n NOP\n NOLIST\n NOP\n NOP\n LIST\n NOP\n\n" ;# <-- NOT TRANSLATED YET ##ID:001151## mcset $l "disabled code listing\n\nSyntax:\n NOLIST\n\nExample:\n NOP\n NOLIST\n NOP\n NOP\n LIST\n NOP\n\n" \ "disabled code listing\n\nSyntax:\n NOLIST\n\nExample:\n NOP\n NOLIST\n NOP\n NOP\n LIST\n NOP\n\n" ;# <-- NOT TRANSLATED YET ##ID:001152## mcset $l "switch to DATA segment \[at address\]\n\nSyntax:\n DSEG \[AT \]\n\nExample:\n DSEG at 20d\n\n" \ "switch to DATA segment \[at address\]\n\nSyntax:\n DSEG \[AT \]\n\nExample:\n DSEG at 20d\n\n" ;# <-- NOT TRANSLATED YET ##ID:001153## mcset $l "switch to IDATA segment \[at address\]\n\nSyntax:\n ISEG \[AT \]\n\nExample:\n ISEG at 10d\n\n" \ "switch to IDATA segment \[at address\]\n\nSyntax:\n ISEG \[AT \]\n\nExample:\n ISEG at 10d\n\n" ;# <-- NOT TRANSLATED YET ##ID:001154## mcset $l "switch to BIT segment \[at address\]\n\nSyntax:\n BSEG \[AT \]\n\nExample:\n BSEG at 5d\n\n" \ "switch to BIT segment \[at address\]\n\nSyntax:\n BSEG \[AT \]\n\nExample:\n BSEG at 5d\n\n" ;# <-- NOT TRANSLATED YET ##ID:001155## mcset $l "switch to XDATA segment \[at address\]\n\nSyntax:\n XSEG \[AT \]\n\nExample:\n XSEG at 30d\n\n" \ "switch to XDATA segment \[at address\]\n\nSyntax:\n XSEG \[AT \]\n\nExample:\n XSEG at 30d\n\n" ;# <-- NOT TRANSLATED YET ##ID:001156## mcset $l "switch to CODE segment \[at address\]\n\nSyntax:\n CSEG \[AT \]\n\nExample:\n CSEG at 40d\n\n" \ "switch to CODE segment \[at address\]\n\nSyntax:\n CSEG \[AT \]\n\nExample:\n CSEG at 40d\n\n" ;# <-- NOT TRANSLATED YET ##ID:001157## mcset $l "define a FLAG bit\n\nSyntax:\n FLAG \n\nExample:\n F4 FLAG 16h\n\nNote:\n Deprecated directive. Consider directive BIT instead." \ "define a FLAG bit\n\nSyntax:\n FLAG \n\nExample:\n F4 FLAG 16h\n\nNote:\n Deprecated directive. Consider directive BIT instead." ;# <-- NOT TRANSLATED YET ##ID:001158## mcset $l "SKIP bytes in the code memory\n\nSyntax:\n SKIP \n\nExample:\n SKIP 5\n\n" \ "SKIP bytes in the code memory\n\nSyntax:\n SKIP \n\nExample:\n SKIP 5\n\n" ;# <-- NOT TRANSLATED YET ##ID:001159## mcset $l "EQUivalent\n\nSyntax:\n EQU \n\nExample:\n ABC EQU R0\n XYZ EQU 4Eh+12\n\n" \ "EQUivalent\n\nSyntax:\n EQU \n\nExample:\n ABC EQU R0\n XYZ EQU 4Eh+12\n\n" ;# <-- NOT TRANSLATED YET ##ID:001160## mcset $l "define BIT address\n\nSyntax:\n BIT \n\nExample:\n ABC BIT P4.5\n\n" \ "define BIT address\n\nSyntax:\n BIT \n\nExample:\n ABC BIT P4.5\n\n" ;# <-- NOT TRANSLATED YET ##ID:001161## mcset $l "SET numeric variable or variable register\n\nSyntax:\n SET \n SET \n\nExample:\n ALPHA SET R0\n ALPHA SET 42*BETA\n\n" \ "SET numeric variable or variable register\n\nSyntax:\n SET \n SET \n\nExample:\n ALPHA SET R0\n ALPHA SET 42*BETA\n\n" ;# <-- NOT TRANSLATED YET ##ID:001162## mcset $l "define address in the CODE memory\n\nSyntax:\n CODE \n\nExample:\n TBL CODE 600h\n\n" \ "define address in the CODE memory\n\nSyntax:\n CODE \n\nExample:\n TBL CODE 600h\n\n" ;# <-- NOT TRANSLATED YET ##ID:001163## mcset $l "define address in the DATA memory\n\nSyntax:\n DATA \n\nExample:\n UIV DATA 20h\n\n" \ "define address in the DATA memory\n\nSyntax:\n DATA \n\nExample:\n UIV DATA 20h\n\n" ;# <-- NOT TRANSLATED YET ##ID:001164## mcset $l "define address in the Internal DATA memory\n\nSyntax:\n IDATA \n\nExample:\n UIV IDATA 20h\n\n" \ "define address in the Internal DATA memory\n\nSyntax:\n IDATA \n\nExample:\n UIV IDATA 20h\n\n" ;# <-- NOT TRANSLATED YET ##ID:001165## mcset $l "define address in the External DATA memory\n\nSyntax:\n XDATA \n\nExample:\n UIV XDATA 400h\n\n" \ "define address in the External DATA memory\n\nSyntax:\n XDATA \n\nExample:\n UIV XDATA 400h\n\n" ;# <-- NOT TRANSLATED YET ##ID:001166## mcset $l "MACRO definition\n\nSyntax:\n MACRO \[ \[, ... \]\n\n\nExample:\n ABC MACRO X\n MOV X, #12d\n ENDM\n\n" \ "MACRO definition\n\nSyntax:\n MACRO \[ \[, ... \]\n\n\nExample:\n ABC MACRO X\n MOV X, #12d\n ENDM\n\n" ;# <-- NOT TRANSLATED YET ##ID:001167## mcset $l "Define Space\n\nSyntax:\n DS \n\nExample:\n DS 2+4\n\n" \ "Define Space\n\nSyntax:\n DS \n\nExample:\n DS 2+4\n\n" ;# <-- NOT TRANSLATED YET ##ID:001168## mcset $l "Define Words\n\nSyntax:\n DW \[, ... \]\n\nExample:\n DW 0,02009H,2009,4171\n\n" \ "Define Words\n\nSyntax:\n DW \[, ... \]\n\nExample:\n DW 0,02009H,2009,4171\n\n" ;# <-- NOT TRANSLATED YET ##ID:001169## mcset $l "Define Bytes\n\nSyntax:\n DB \[, ... \]\n\nExample:\n DB 24,'August',09,(2*8+24)/8\n\n" \ "Define Bytes\n\nSyntax:\n DB \[, ... \]\n\nExample:\n DB 24,'August',09,(2*8+24)/8\n\n" ;# <-- NOT TRANSLATED YET ##ID:001170## mcset $l "Define BITs\n\nSyntax:\n DBIT \n\nExample:\n DBIT 4+2\n\n" \ "Define BITs\n\nSyntax:\n DBIT \n\nExample:\n DBIT 4+2\n\n" ;# <-- NOT TRANSLATED YET ##ID:001171## mcset $l "INCLUDE an external source code\n\nSyntax:\n INCLUDE \n\nExample:\n INCLUDE 'my file.asm'\n\n" \ "INCLUDE an external source code\n\nSyntax:\n INCLUDE \n\nExample:\n INCLUDE 'my file.asm'\n\n" ;# <-- NOT TRANSLATED YET ##ID:001172## mcset $l "ORiGin of code segment location\n\nSyntax:\n ORG \n\nExample:\n ORG 0Bh\n\n" \ "ORiGin of code segment location\n\nSyntax:\n ORG \n\nExample:\n ORG 0Bh\n\n" ;# <-- NOT TRANSLATED YET ##ID:001173## mcset $l "USING register banks\n\nSyntax:\n USING \n\nExample:\n USING 2\n\n" \ "USING register banks\n\nSyntax:\n USING \n\nExample:\n USING 2\n\n" ;# <-- NOT TRANSLATED YET ##ID:001174## mcset $l "define BYTE address in the data memory\n\nSyntax:\n BYTE \n\nExample:\n UIV BYTE 20h\n\nNote:\n Deprecated directive. Consider directive DATA instead." \ "define BYTE address in the data memory\n\nSyntax:\n BYTE \n\nExample:\n UIV BYTE 20h\n\nNote:\n Deprecated directive. Consider directive DATA instead." ;# <-- NOT TRANSLATED YET ##ID:001175## mcset $l "List full IFxx .. ENDIF\n\nSyntax:\n \$COND\n\nExample:\n \$COND\n\nNote:\n Supported by ASEM-51 only" \ "List full IFxx .. ENDIF\n\nSyntax:\n \$COND\n\nExample:\n \$COND\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001176## mcset $l "Don't list lines in false branches\n\nSyntax:\n \$NOCOND\n\nExample:\n \$NOCOND\n\nNote:\n Supported by ASEM-51 only" \ "Don't list lines in false branches\n\nSyntax:\n \$NOCOND\n\nExample:\n \$NOCOND\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001177## mcset $l "List assembled lines only\n\nSyntax:\n \$CONDONLY\n\nExample:\n \$CONDONLY\n\nNote:\n Supported by ASEM-51 only" \ "List assembled lines only\n\nSyntax:\n \$CONDONLY\n\nExample:\n \$CONDONLY\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001178## mcset $l "Inserts date string into page header\n\nSyntax:\n \$DATE(string)\n\nExample:\n \$DATE(1965-12-31)\n\n" \ "Inserts date string into page header\n\nSyntax:\n \$DATE(string)\n\nExample:\n \$DATE(1965-12-31)\n\n" ;# <-- NOT TRANSLATED YET ##ID:001179## mcset $l "Include debug information\n\nSyntax:\n \$DEBUG\n\nExample:\n \$DEBUG\n\nNote:\n Supported by ASEM-51 only" \ "Include debug information\n\nSyntax:\n \$DEBUG\n\nExample:\n \$DEBUG\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001180## mcset $l "Include debug information\n\nSyntax:\n \$DB\n\nExample:\n \$DB\n\nNote:\n Supported by ASEM-51 only" \ "Include debug information\n\nSyntax:\n \$DB\n\nExample:\n \$DB\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001181## mcset $l "Don't include debug information\n\nSyntax:\n \$NODEBUG\n\nExample:\n \$NODEBUG\n\nNote:\n Supported by ASEM-51 only" \ "Don't include debug information\n\nSyntax:\n \$NODEBUG\n\nExample:\n \$NODEBUG\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001182## mcset $l "Don't include debug information\n\nSyntax:\n \$NODB\n\nExample:\n \$NODB\n\nNote:\n Supported by ASEM-51 only" \ "Don't include debug information\n\nSyntax:\n \$NODB\n\nExample:\n \$NODB\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001183## mcset $l "Start a new page in list file\n\nSyntax:\n \$EJECT\n\nExample:\n \$EJECT\n\n" \ "Start a new page in list file\n\nSyntax:\n \$EJECT\n\nExample:\n \$EJECT\n\n" ;# <-- NOT TRANSLATED YET ##ID:001184## mcset $l "Start a new page in list file\n\nSyntax:\n \$EJ\n\nExample:\n \$EJ\n\n" \ "Start a new page in list file\n\nSyntax:\n \$EJ\n\nExample:\n \$EJ\n\n" ;# <-- NOT TRANSLATED YET ##ID:001185## mcset $l "Force a user-defined error\n\nSyntax:\n \$ERROR(string)\n\nExample:\n \$ERROR(Impossible combination ...)\n\nNote:\n Supported by ASEM-51 only" \ "Force a user-defined error\n\nSyntax:\n \$ERROR(string)\n\nExample:\n \$ERROR(Impossible combination ...)\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001186## mcset $l "Force a user-defined warning\n\nSyntax:\n \$WARNING(string)\n\nExample:\n \$WARNING(Testing only !)\n\nNote:\n Supported by ASEM-51 only" \ "Force a user-defined warning\n\nSyntax:\n \$WARNING(string)\n\nExample:\n \$WARNING(Testing only !)\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001187## mcset $l "List macro calls and expansion lines\n\nSyntax:\n \$GE\n\nExample:\n \$GE\n\nNote:\n Supported by ASEM-51 only" \ "List macro calls and expansion lines\n\nSyntax:\n \$GE\n\nExample:\n \$GE\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001188## mcset $l "List macro calls and expansion lines\n\nSyntax:\n \$GEN\n\nExample:\n \$GEN\n\nNote:\n Supported by ASEM-51 only" \ "List macro calls and expansion lines\n\nSyntax:\n \$GEN\n\nExample:\n \$GEN\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001189## mcset $l "List macro calls only\n\nSyntax:\n \$NOGE\n\nExample:\n \$NOGE\n\nNote:\n Supported by ASEM-51 only" \ "List macro calls only\n\nSyntax:\n \$NOGE\n\nExample:\n \$NOGE\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001190## mcset $l "List macro calls only\n\nSyntax:\n \$NOGEN\n\nExample:\n \$NOGEN\n\nNote:\n Supported by ASEM-51 only" \ "List macro calls only\n\nSyntax:\n \$NOGEN\n\nExample:\n \$NOGEN\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001191## mcset $l "List expansion lines only\n\nSyntax:\n \$GO\n\nExample:\n \$GO\n\nNote:\n Supported by ASEM-51 only" \ "List expansion lines only\n\nSyntax:\n \$GO\n\nExample:\n \$GO\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001192## mcset $l "List expansion lines only\n\nSyntax:\n \$GENONLY\n\nExample:\n \$GENONLY\n\nNote:\n Supported by ASEM-51 only" \ "List expansion lines only\n\nSyntax:\n \$GENONLY\n\nExample:\n \$GENONLY\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001193## mcset $l "Include a source file\n\nSyntax:\n \$INCLUDE(string)\n\nExample:\n \$INCLUDE(somefile.asm)\n\n" \ "Include a source file\n\nSyntax:\n \$INCLUDE(string)\n\nExample:\n \$INCLUDE(somefile.asm)\n\n" ;# <-- NOT TRANSLATED YET ##ID:001194## mcset $l "Include a source file\n\nSyntax:\n \$INC(string)\n\nExample:\n \$INC(somefile.asm)\n\n" \ "Include a source file\n\nSyntax:\n \$INC(string)\n\nExample:\n \$INC(somefile.asm)\n\n" ;# <-- NOT TRANSLATED YET ##ID:001195## mcset $l "List subsequent source lines\n\nSyntax:\n \$LIST\n\nExample:\n \$LIST\n\n" \ "List subsequent source lines\n\nSyntax:\n \$LIST\n\nExample:\n \$LIST\n\n" ;# <-- NOT TRANSLATED YET ##ID:001196## mcset $l "List subsequent source lines\n\nSyntax:\n \$LI\n\nExample:\n \$LI\n\n" \ "List subsequent source lines\n\nSyntax:\n \$LI\n\nExample:\n \$LI\n\n" ;# <-- NOT TRANSLATED YET ##ID:001197## mcset $l "Don't list subsequent source lines\n\nSyntax:\n \$NOLI\n\nExample:\n \$NOLI\n\n" \ "Don't list subsequent source lines\n\nSyntax:\n \$NOLI\n\nExample:\n \$NOLI\n\n" ;# <-- NOT TRANSLATED YET ##ID:001198## mcset $l "Don't list subsequent source lines\n\nSyntax:\n \$NOLIST\n\nExample:\n \$NOLIST\n\n" \ "Don't list subsequent source lines\n\nSyntax:\n \$NOLIST\n\nExample:\n \$NOLIST\n\n" ;# <-- NOT TRANSLATED YET ##ID:001199## mcset $l "Reserve n % of free memory for macros\n\nSyntax:\n \$MACRO(int)\n\nExample:\n \$MACRO(50)\n\nNote:\n Supported by ASEM-51 only" \ "Reserve n % of free memory for macros\n\nSyntax:\n \$MACRO(int)\n\nExample:\n \$MACRO(50)\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001200## mcset $l "Reserve n % of free memory for macros\n\nSyntax:\n \$MR(int)\n\nExample:\n \$MR(50)\n\nNote:\n Supported by ASEM-51 only" \ "Reserve n % of free memory for macros\n\nSyntax:\n \$MR(int)\n\nExample:\n \$MR(50)\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001201## mcset $l "Reserve all for the symbol table\n\nSyntax:\n \$NOMR\n\nExample:\n \$NOMR\n\nNote:\n Supported by ASEM-51 only" \ "Reserve all for the symbol table\n\nSyntax:\n \$NOMR\n\nExample:\n \$NOMR\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001202## mcset $l "Reserve all for the symbol table\n\nSyntax:\n \$NOMACRO\n\nExample:\n \$NOMACRO\n\nNote:\n Supported by ASEM-51 only" \ "Reserve all for the symbol table\n\nSyntax:\n \$NOMACRO\n\nExample:\n \$NOMACRO\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001203## mcset $l "Enable predefined SFR symbols\n\nSyntax:\n \$MOD51\n\nExample:\n \$MOD51\n\nNote:\n Supported by ASEM-51 only" \ "Enable predefined SFR symbols\n\nSyntax:\n \$MOD51\n\nExample:\n \$MOD51\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001204## mcset $l "Enable predefined SFR symbols\n\nSyntax:\n \$MO\n\nExample:\n \$MO\n\nNote:\n Supported by ASEM-51 only" \ "Enable predefined SFR symbols\n\nSyntax:\n \$MO\n\nExample:\n \$MO\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001205## mcset $l "Disable predefined SFR symbols\n\nSyntax:\n \$NOMOD\n\nExample:\n \$NOMOD\n\n" \ "Disable predefined SFR symbols\n\nSyntax:\n \$NOMOD\n\nExample:\n \$NOMOD\n\n" ;# <-- NOT TRANSLATED YET ##ID:001206## mcset $l "Disable predefined SFR symbols\n\nSyntax:\n \$NOMO\n\nExample:\n \$NOMO\n\n" \ "Disable predefined SFR symbols\n\nSyntax:\n \$NOMO\n\nExample:\n \$NOMO\n\n" ;# <-- NOT TRANSLATED YET ##ID:001207## mcset $l "Disable predefined SFR symbols\n\nSyntax:\n \$NOMOD51\n\nExample:\n \$NOMOD51\n\n" \ "Disable predefined SFR symbols\n\nSyntax:\n \$NOMOD51\n\nExample:\n \$NOMOD51\n\n" ;# <-- NOT TRANSLATED YET ##ID:001208## mcset $l "Don't list predefined symbols\n\nSyntax:\n \$NOBUILTIN\n\nExample:\n \$NOBUILTIN\n\nNote:\n Supported by ASEM-51 only" \ "Don't list predefined symbols\n\nSyntax:\n \$NOBUILTIN\n\nExample:\n \$NOBUILTIN\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001209## mcset $l "Don't use tabs in list file\n\nSyntax:\n \$NOTABS\n\nExample:\n \$NOTABS\n\nNote:\n Supported by ASEM-51 only" \ "Don't use tabs in list file\n\nSyntax:\n \$NOTABS\n\nExample:\n \$NOTABS\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001210## mcset $l "Enable listing page formatting\n\nSyntax:\n \$LIST\n\nExample:\n \$PAGING\n\n" \ "Enable listing page formatting\n\nSyntax:\n \$LIST\n\nExample:\n \$PAGING\n\n" ;# <-- NOT TRANSLATED YET ##ID:001211## mcset $l "Enable listing page formatting\n\nSyntax:\n \$PI\n\nExample:\n \$PI\n\n" \ "Enable listing page formatting\n\nSyntax:\n \$PI\n\nExample:\n \$PI\n\n" ;# <-- NOT TRANSLATED YET ##ID:001212## mcset $l "Disable listing page formatting\n\nSyntax:\n \$NOPI\n\nExample:\n \$NOPI\n\n" \ "Disable listing page formatting\n\nSyntax:\n \$NOPI\n\nExample:\n \$NOPI\n\n" ;# <-- NOT TRANSLATED YET ##ID:001213## mcset $l "Disable listing page formatting\n\nSyntax:\n \$NOPAGING\n\nExample:\n \$NOPAGING\n\n" \ "Disable listing page formatting\n\nSyntax:\n \$NOPAGING\n\nExample:\n \$NOPAGING\n\n" ;# <-- NOT TRANSLATED YET ##ID:001214## mcset $l "Set lines per page for listing\n\nSyntax:\n \$PAGELENGTH(int)\n\nExample:\n \$PAGELENGTH(64)\n\n" \ "Set lines per page for listing\n\nSyntax:\n \$PAGELENGTH(int)\n\nExample:\n \$PAGELENGTH(64)\n\n" ;# <-- NOT TRANSLATED YET ##ID:001215## mcset $l "Set lines per page for listing\n\nSyntax:\n \$PL(int)\n\nExample:\n \$PL(64)\n\n" \ "Set lines per page for listing\n\nSyntax:\n \$PL(int)\n\nExample:\n \$PL(64)\n\n" ;# <-- NOT TRANSLATED YET ##ID:001216## mcset $l "Set columns per line for listing\n\nSyntax:\n \$PAGEWIDTH(int)\n\nExample:\n \$PAGEWIDTH(132)\n\n" \ "Set columns per line for listing\n\nSyntax:\n \$PAGEWIDTH(int)\n\nExample:\n \$PAGEWIDTH(132)\n\n" ;# <-- NOT TRANSLATED YET ##ID:001217## mcset $l "Set columns per line for listing\n\nSyntax:\n \$PW(int)\n\nExample:\n \$PW(132)\n\n" \ "Set columns per line for listing\n\nSyntax:\n \$PW(int)\n\nExample:\n \$PW(132)\n\n" ;# <-- NOT TRANSLATED YET ##ID:001218## mcset $l "Switch on 83C75x family support\n\nSyntax:\n \$PHILIPS\n\nExample:\n \$PHILIPS\n\nNote:\n Supported by ASEM-51 only" \ "Switch on 83C75x family support\n\nSyntax:\n \$PHILIPS\n\nExample:\n \$PHILIPS\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001219## mcset $l "Save current \$LIST/\$GEN/\$COND\n\nSyntax:\n \$SAVE\n\nExample:\n \$SAVE\n\nNote:\n Supported by ASEM-51 only" \ "Save current \$LIST/\$GEN/\$COND\n\nSyntax:\n \$SAVE\n\nExample:\n \$SAVE\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001220## mcset $l "Save current \$LIST/\$GEN/\$COND\n\nSyntax:\n \$SA\n\nExample:\n \$SA\n\nNote:\n Supported by ASEM-51 only" \ "Save current \$LIST/\$GEN/\$COND\n\nSyntax:\n \$SA\n\nExample:\n \$SA\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001221## mcset $l "Restore old \$LIST/\$GEN/\$COND\n\nSyntax:\n \$RESTORE\n\nExample:\n \$RESTORE\n\nNote:\n Supported by ASEM-51 only" \ "Restore old \$LIST/\$GEN/\$COND\n\nSyntax:\n \$RESTORE\n\nExample:\n \$RESTORE\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001222## mcset $l "Restore old \$LIST/\$GEN/\$COND\n\nSyntax:\n \$RS\n\nExample:\n \$RS\n\nNote:\n Supported by ASEM-51 only" \ "Restore old \$LIST/\$GEN/\$COND\n\nSyntax:\n \$RS\n\nExample:\n \$RS\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001223## mcset $l "Create symbol table\n\nSyntax:\n \$SYMBOLS\n\nExample:\n \$SYMBOLS\n\n" \ "Create symbol table\n\nSyntax:\n \$SYMBOLS\n\nExample:\n \$SYMBOLS\n\n" ;# <-- NOT TRANSLATED YET ##ID:001224## mcset $l "Create symbol table\n\nSyntax:\n \$SB\n\nExample:\n \$SB\n\n" \ "Create symbol table\n\nSyntax:\n \$SB\n\nExample:\n \$SB\n\n" ;# <-- NOT TRANSLATED YET ##ID:001225## mcset $l "Don't create symbol table\n\nSyntax:\n \$NOSYMBOLS\n\nExample:\n \$NOSYMBOLS\n\n" \ "Don't create symbol table\n\nSyntax:\n \$NOSYMBOLS\n\nExample:\n \$NOSYMBOLS\n\n" ;# <-- NOT TRANSLATED YET ##ID:001226## mcset $l "Don't create symbol table\n\nSyntax:\n \$NOSB\n\nExample:\n \$NOSB\n\n" \ "Don't create symbol table\n\nSyntax:\n \$NOSB\n\nExample:\n \$NOSB\n\n" ;# <-- NOT TRANSLATED YET ##ID:001227## mcset $l "Inserts title string into page header\n\nSyntax:\n \$TITLE(string)\n\nExample:\n \$TITLE(My firts code)\n\n" \ "Inserts title string into page header\n\nSyntax:\n \$TITLE(string)\n\nExample:\n \$TITLE(My firts code)\n\n" ;# <-- NOT TRANSLATED YET ##ID:001228## mcset $l "Inserts title string into page header\n\nSyntax:\n \$TT(string)\n\nExample:\n \$TT(My firts code)\n\n" \ "Inserts title string into page header\n\nSyntax:\n \$TT(string)\n\nExample:\n \$TT(My firts code)\n\n" ;# <-- NOT TRANSLATED YET ##ID:001229## mcset $l "Create cross reference\n\nSyntax:\n \$XREF\n\nExample:\n \$XREF\n\nNote:\n Supported by ASEM-51 only" \ "Create cross reference\n\nSyntax:\n \$XREF\n\nExample:\n \$XREF\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001230## mcset $l "Create cross reference\n\nSyntax:\n \$XR\n\nExample:\n \$XR\n\nNote:\n Supported by ASEM-51 only" \ "Create cross reference\n\nSyntax:\n \$XR\n\nExample:\n \$XR\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001231## mcset $l "Don't create cross reference\n\nSyntax:\n \$NOXREF\n\nExample:\n \$NOXREF\n\nNote:\n Supported by ASEM-51 only" \ "Don't create cross reference\n\nSyntax:\n \$NOXREF\n\nExample:\n \$NOXREF\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001232## mcset $l "Don't create cross reference\n\nSyntax:\n \$NOXR\n\nExample:\n \$NOXR\n\nNote:\n Supported by ASEM-51 only" \ "Don't create cross reference\n\nSyntax:\n \$NOXR\n\nExample:\n \$NOXR\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001233## mcset $l "Do not create Intel HEX file\n\nSyntax:\n \$NOOBJECT\n\nExample:\n \$NOOBJECT\n\nNote:\n Supported by native assembler only" \ "Do not create Intel HEX file\n\nSyntax:\n \$NOOBJECT\n\nExample:\n \$NOOBJECT\n\nNote:\n Supported by native assembler only" ;# <-- NOT TRANSLATED YET ##ID:001234## mcset $l "Specify file name for Intel HEX\n\nSyntax:\n \$OBJECT(string)\n\nExample:\n \$OBJECT(my_hex.hex)\n\nNote:\n Supported by native assembler only" \ "Specify file name for Intel HEX\n\nSyntax:\n \$OBJECT(string)\n\nExample:\n \$OBJECT(my_hex.hex)\n\nNote:\n Supported by native assembler only" ;# <-- NOT TRANSLATED YET ##ID:001235## mcset $l "Specify file name for list file\n\nSyntax:\n \$PRINT(string)\n\nExample:\n \$PRINT(my_list.lst)\n\nNote:\n Supported by native assembler only" \ "Specify file name for list file\n\nSyntax:\n \$PRINT(string)\n\nExample:\n \$PRINT(my_list.lst)\n\nNote:\n Supported by native assembler only" ;# <-- NOT TRANSLATED YET ##ID:001236## mcset $l "Do not create list file at all\n\nSyntax:\n \$NOPRINT\n\nExample:\n \$NOPRINT\n\nNote:\n Supported by native assembler only" \ "Do not create list file at all\n\nSyntax:\n \$NOPRINT\n\nExample:\n \$NOPRINT\n\nNote:\n Supported by native assembler only" ;# <-- NOT TRANSLATED YET ##ID:001237## mcset $l "Define and expand macro instruction after! conditional assembly and definitions of constants\n\nSyntax:\n \$NOMACROSFIRTS\n\nExample:\n \$NOMACROSFIRTS\n\nNote:\n Supported by native assembler only" \ "Define and expand macro instruction after! conditional assembly and definitions of constants\n\nSyntax:\n \$NOMACROSFIRTS\n\nExample:\n \$NOMACROSFIRTS\n\nNote:\n Supported by native assembler only" ;# <-- NOT TRANSLATED YET ##ID:001238## mcset $l "Add register to Accumulator" \ "Add register to Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001239## mcset $l "Add direct byte to Accumulator" \ "Add direct byte to Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001240## mcset $l "Add indirect RAM to Accumulator" \ "Add indirect RAM to Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001241## mcset $l "Add immediate data to Accumulator" \ "Add immediate data to Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001242## mcset $l "Add register to Accumulator with Carry" \ "Add register to Accumulator with Carry" ;# <-- NOT TRANSLATED YET ##ID:001243## mcset $l "Add direct byte to Accumulator with Carry" \ "Add direct byte to Accumulator with Carry" ;# <-- NOT TRANSLATED YET ##ID:001244## mcset $l "Add indirect RAM to Accumulator with Carry" \ "Add indirect RAM to Accumulator with Carry" ;# <-- NOT TRANSLATED YET ##ID:001245## mcset $l "Add immediate data to Acc with Carry" \ "Add immediate data to Acc with Carry" ;# <-- NOT TRANSLATED YET ##ID:001246## mcset $l "Subtract Register from Acc with borrow" \ "Subtract Register from Acc with borrow" ;# <-- NOT TRANSLATED YET ##ID:001247## mcset $l "Subtract direct byte from Acc with borrow" \ "Subtract direct byte from Acc with borrow" ;# <-- NOT TRANSLATED YET ##ID:001248## mcset $l "Subtract indirect RAM from ACC with borrow" \ "Subtract indirect RAM from ACC with borrow" ;# <-- NOT TRANSLATED YET ##ID:001249## mcset $l "Subtract immediate data from Acc with borrow" \ "Subtract immediate data from Acc with borrow" ;# <-- NOT TRANSLATED YET ##ID:001250## mcset $l "Increment Accumulator" \ "Increment Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001251## mcset $l "Increment register" \ "Increment register" ;# <-- NOT TRANSLATED YET ##ID:001252## mcset $l "Increment direct byte" \ "Increment direct byte" ;# <-- NOT TRANSLATED YET ##ID:001253## mcset $l "Increment direct RAM" \ "Increment direct RAM" ;# <-- NOT TRANSLATED YET ##ID:001254## mcset $l "Decrement Accumulator" \ "Decrement Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001255## mcset $l "Decrement Register" \ "Decrement Register" ;# <-- NOT TRANSLATED YET ##ID:001256## mcset $l "Decrement direct byte" \ "Decrement direct byte" ;# <-- NOT TRANSLATED YET ##ID:001257## mcset $l "Decrement indirect RAM" \ "Decrement indirect RAM" ;# <-- NOT TRANSLATED YET ##ID:001258## mcset $l "Increment Data Pointer" \ "Increment Data Pointer" ;# <-- NOT TRANSLATED YET ##ID:001259## mcset $l "Multiply A & B" \ "Multiply A & B" ;# <-- NOT TRANSLATED YET ##ID:001260## mcset $l "Divide A by B" \ "Divide A by B" ;# <-- NOT TRANSLATED YET ##ID:001261## mcset $l "Decimal Adjust Accumulator" \ "Decimal Adjust Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001262## mcset $l "AND Register to Accumulator" \ "AND Register to Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001263## mcset $l "AND direct byte to Accumulator" \ "AND direct byte to Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001264## mcset $l "AND indirect RAM to Accumulator" \ "AND indirect RAM to Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001265## mcset $l "AND immediate data to Accumulator" \ "AND immediate data to Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001266## mcset $l "AND Accumulator to direct byte" \ "AND Accumulator to direct byte" ;# <-- NOT TRANSLATED YET ##ID:001267## mcset $l "AND immediate data to direct byte" \ "AND immediate data to direct byte" ;# <-- NOT TRANSLATED YET ##ID:001268## mcset $l "OR register to Accumulator" \ "OR register to Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001269## mcset $l "OR direct byte to Accumulator" \ "OR direct byte to Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001270## mcset $l "OR indirect RAM to Accumulator" \ "OR indirect RAM to Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001271## mcset $l "OR immediate data to Accumulator" \ "OR immediate data to Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001272## mcset $l "OR Accumulator to direct byte" \ "OR Accumulator to direct byte" ;# <-- NOT TRANSLATED YET ##ID:001273## mcset $l "OR immediate data to direct byte" \ "OR immediate data to direct byte" ;# <-- NOT TRANSLATED YET ##ID:001274## mcset $l "Exclusive-OR register to Accumulator" \ "Exclusive-OR register to Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001275## mcset $l "Exclusive-OR direct byte to Accumulator" \ "Exclusive-OR direct byte to Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001276## mcset $l "Exclusive-OR indirect RAM to Accumulator" \ "Exclusive-OR indirect RAM to Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001277## mcset $l "Exclusive-OR immediate data to Accumulator" \ "Exclusive-OR immediate data to Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001278## mcset $l "Exclusive-OR Accumulator to direct byte" \ "Exclusive-OR Accumulator to direct byte" ;# <-- NOT TRANSLATED YET ##ID:001279## mcset $l "Exclusive-OR immediate data to direct byte" \ "Exclusive-OR immediate data to direct byte" ;# <-- NOT TRANSLATED YET ##ID:001280## mcset $l "Clear Accumulator" \ "Clear Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001281## mcset $l "Complement Accumulator" \ "Complement Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001282## mcset $l "Rotate Accumulator Left" \ "Rotate Accumulator Left" ;# <-- NOT TRANSLATED YET ##ID:001283## mcset $l "Rotate Accumulator Left through the Carry" \ "Rotate Accumulator Left through the Carry" ;# <-- NOT TRANSLATED YET ##ID:001284## mcset $l "Rotate Accumulator Right" \ "Rotate Accumulator Right" ;# <-- NOT TRANSLATED YET ##ID:001285## mcset $l "Rotate Accumulator Right through the Carry" \ "Rotate Accumulator Right through the Carry" ;# <-- NOT TRANSLATED YET ##ID:001286## mcset $l "Swap nibbles within the Accumulator" \ "Swap nibbles within the Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001287## mcset $l "Move register to Accumulator" \ "Move register to Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001288## mcset $l "Move direct byte to Accumulator" \ "Move direct byte to Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001289## mcset $l "Move indirect RAM to Accumulator" \ "Move indirect RAM to Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001290## mcset $l "Move immediate data to Accumulator" \ "Move immediate data to Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001291## mcset $l "Move Accumulator to register" \ "Move Accumulator to register" ;# <-- NOT TRANSLATED YET ##ID:001292## mcset $l "Move direct byte to register" \ "Move direct byte to register" ;# <-- NOT TRANSLATED YET ##ID:001293## mcset $l "Move immediate data to register" \ "Move immediate data to register" ;# <-- NOT TRANSLATED YET ##ID:001294## mcset $l "Move Accumulator to direct byte" \ "Move Accumulator to direct byte" ;# <-- NOT TRANSLATED YET ##ID:001295## mcset $l "Move register to direct byte" \ "Move register to direct byte" ;# <-- NOT TRANSLATED YET ##ID:001296## mcset $l "Move direct byte to direct" \ "Move direct byte to direct" ;# <-- NOT TRANSLATED YET ##ID:001297## mcset $l "Move indirect RAM to direct byte" \ "Move indirect RAM to direct byte" ;# <-- NOT TRANSLATED YET ##ID:001298## mcset $l "Move immediate data to direct byte" \ "Move immediate data to direct byte" ;# <-- NOT TRANSLATED YET ##ID:001299## mcset $l "Move Accumulator to indirect RAM" \ "Move Accumulator to indirect RAM" ;# <-- NOT TRANSLATED YET ##ID:001300## mcset $l "Move direct byte to indirect RAM" \ "Move direct byte to indirect RAM" ;# <-- NOT TRANSLATED YET ##ID:001301## mcset $l "Move immediate data to indirect RAM" \ "Move immediate data to indirect RAM" ;# <-- NOT TRANSLATED YET ##ID:001302## mcset $l "Load Data Pointer with a 16-bit constant" \ "Load Data Pointer with a 16-bit constant" ;# <-- NOT TRANSLATED YET ##ID:001303## mcset $l "Move Code byte relative to DPTR to Acc" \ "Move Code byte relative to DPTR to Acc" ;# <-- NOT TRANSLATED YET ##ID:001304## mcset $l "Move Code byte relative to PC to Acc" \ "Move Code byte relative to PC to Acc" ;# <-- NOT TRANSLATED YET ##ID:001305## mcset $l "Move External RAM (8-bit addr) to Acc" \ "Move External RAM (8-bit addr) to Acc" ;# <-- NOT TRANSLATED YET ##ID:001306## mcset $l "Move Exernal RAM (16-bit addr) to Acc" \ "Move Exernal RAM (16-bit addr) to Acc" ;# <-- NOT TRANSLATED YET ##ID:001307## mcset $l "Move Acc to External RAM (8-bit addr)" \ "Move Acc to External RAM (8-bit addr)" ;# <-- NOT TRANSLATED YET ##ID:001308## mcset $l "Move Acc to External RAM (16-bit addr)" \ "Move Acc to External RAM (16-bit addr)" ;# <-- NOT TRANSLATED YET ##ID:001309## mcset $l "Push direct byte onto stack" \ "Push direct byte onto stack" ;# <-- NOT TRANSLATED YET ##ID:001310## mcset $l "Pop direct byte from stack" \ "Pop direct byte from stack" ;# <-- NOT TRANSLATED YET ##ID:001311## mcset $l "Exchange register with Accumulator" \ "Exchange register with Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001312## mcset $l "Exchange direct byte with Accumulator" \ "Exchange direct byte with Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001313## mcset $l "Exchange indirect RAM with Accumulator" \ "Exchange indirect RAM with Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001314## mcset $l "Exchange low-order Digit indirect RAM with Acc" \ "Exchange low-order Digit indirect RAM with Acc" ;# <-- NOT TRANSLATED YET ##ID:001315## mcset $l "Clear Carry" \ "Clear Carry" ;# <-- NOT TRANSLATED YET ##ID:001316## mcset $l "Clear direct bit" \ "Clear direct bit" ;# <-- NOT TRANSLATED YET ##ID:001317## mcset $l "Set Carry" \ "Set Carry" ;# <-- NOT TRANSLATED YET ##ID:001318## mcset $l "Set direct bit" \ "Set direct bit" ;# <-- NOT TRANSLATED YET ##ID:001319## mcset $l "Complement Carry" \ "Complement Carry" ;# <-- NOT TRANSLATED YET ##ID:001320## mcset $l "Complement direct bit" \ "Complement direct bit" ;# <-- NOT TRANSLATED YET ##ID:001321## mcset $l "AND direct bit to CARRY" \ "AND direct bit to CARRY" ;# <-- NOT TRANSLATED YET ##ID:001322## mcset $l "AND complement of direct bit to Carry" \ "AND complement of direct bit to Carry" ;# <-- NOT TRANSLATED YET ##ID:001323## mcset $l "OR direct bit to Carry" \ "OR direct bit to Carry" ;# <-- NOT TRANSLATED YET ##ID:001324## mcset $l "OR complement of direct bit to Carry" \ "OR complement of direct bit to Carry" ;# <-- NOT TRANSLATED YET ##ID:001325## mcset $l "Move direct bit to Carry" \ "Move direct bit to Carry" ;# <-- NOT TRANSLATED YET ##ID:001326## mcset $l "Move Carry to direct bit" \ "Move Carry to direct bit" ;# <-- NOT TRANSLATED YET ##ID:001327## mcset $l "Jump if Carry is set" \ "Jump if Carry is set" ;# <-- NOT TRANSLATED YET ##ID:001328## mcset $l "Jump if Carry not set" \ "Jump if Carry not set" ;# <-- NOT TRANSLATED YET ##ID:001329## mcset $l "Jump if direct Bit is set" \ "Jump if direct Bit is set" ;# <-- NOT TRANSLATED YET ##ID:001330## mcset $l "Jump if direct Bit is Not set" \ "Jump if direct Bit is Not set" ;# <-- NOT TRANSLATED YET ##ID:001331## mcset $l "Jump if direct Bit is set & clear bit" \ "Jump if direct Bit is set & clear bit" ;# <-- NOT TRANSLATED YET ##ID:001332## mcset $l "Absolute Subroutine Call" \ "Absolute Subroutine Call" ;# <-- NOT TRANSLATED YET ##ID:001333## mcset $l "Long Subroutine Call" \ "Long Subroutine Call" ;# <-- NOT TRANSLATED YET ##ID:001334## mcset $l "Return from Subroutine" \ "Return from Subroutine" ;# <-- NOT TRANSLATED YET ##ID:001335## mcset $l "Return from interrupt" \ "Return from interrupt" ;# <-- NOT TRANSLATED YET ##ID:001336## mcset $l "Absolute Jump" \ "Absolute Jump" ;# <-- NOT TRANSLATED YET ##ID:001337## mcset $l "Long Jump" \ "Long Jump" ;# <-- NOT TRANSLATED YET ##ID:001338## mcset $l "Short Jump (relative addr)" \ "Short Jump (relative addr)" ;# <-- NOT TRANSLATED YET ##ID:001339## mcset $l "Jump indirect relative to the DPTR" \ "Jump indirect relative to the DPTR" ;# <-- NOT TRANSLATED YET ##ID:001340## mcset $l "Jump if Accumulator is Zero" \ "Jump if Accumulator is Zero" ;# <-- NOT TRANSLATED YET ##ID:001341## mcset $l "Jump if Accumulator is Not Zero" \ "Jump if Accumulator is Not Zero" ;# <-- NOT TRANSLATED YET ##ID:001342## mcset $l "Compare direct byte to Acc and Jump if Not Equal" \ "Compare direct byte to Acc and Jump if Not Equal" ;# <-- NOT TRANSLATED YET ##ID:001343## mcset $l "Compare immediate to Acc and Jump if Not Equal" \ "Compare immediate to Acc and Jump if Not Equal" ;# <-- NOT TRANSLATED YET ##ID:001344## mcset $l "Compare immediate to register and Jump if Not Equal" \ "Compare immediate to register and Jump if Not Equal" ;# <-- NOT TRANSLATED YET ##ID:001345## mcset $l "Compare immediate to indirect and Jump if Not Equal" \ "Compare immediate to indirect and Jump if Not Equal" ;# <-- NOT TRANSLATED YET ##ID:001346## mcset $l "Decrement register and Jump if Not Zero" \ "Decrement register and Jump if Not Zero" ;# <-- NOT TRANSLATED YET ##ID:001347## mcset $l "Decrement direct byte and Jump if Not Zero" \ "Decrement direct byte and Jump if Not Zero" ;# <-- NOT TRANSLATED YET ##ID:001348## mcset $l "Program Branching" \ "Program Branching" ;# <-- NOT TRANSLATED YET ##ID:001349## mcset $l "No Operation" \ "No Operation" ;# <-- NOT TRANSLATED YET ##ID:001350## mcset $l "Data Transfer" \ "Data Transfer" ;# <-- NOT TRANSLATED YET ##ID:001351## mcset $l "Boolean Variable Manipulation" \ "Boolean Variable Manipulation" ;# <-- NOT TRANSLATED YET ##ID:001352## mcset $l "Read-Modify-Write" \ "Read-Modify-Write" ;# <-- NOT TRANSLATED YET ##ID:001353## mcset $l "Logical Operations" \ "Logical Operations" ;# <-- NOT TRANSLATED YET ##ID:001354## mcset $l "Arithmetic Operations" \ "Arithmetic Operations" ;# <-- NOT TRANSLATED YET } # messages.tcl # ============================================================================== namespace eval Messages { ##ID:001355## mcset $l "Copy selected text into clipboard" \ "Copy selected text into clipboard" ;# <-- NOT TRANSLATED YET ##ID:001356## mcset $l "Clear all messages" \ "Clear all messages" ;# <-- NOT TRANSLATED YET ##ID:001357## mcset $l "Select all text in this TextBox" \ "Select all text in this TextBox" ;# <-- NOT TRANSLATED YET ##ID:001358## mcset $l "Find next" \ "Find next" ;# <-- NOT TRANSLATED YET ##ID:001359## mcset $l "Find previous" \ "Find previous" ;# <-- NOT TRANSLATED YET ##ID:001360## mcset $l "Match case" \ "Match case" ;# <-- NOT TRANSLATED YET ##ID:001361## mcset $l "Find:" \ "Find:" ;# <-- NOT TRANSLATED YET ##ID:001362## mcset $l "Hide search bar" \ "Hide search bar" ;# <-- NOT TRANSLATED YET ##ID:001363## mcset $l "Find previous occurrence of search string" \ "Find previous occurrence of search string" ;# <-- NOT TRANSLATED YET ##ID:001364## mcset $l "Find next occurrence of search string" \ "Find next occurrence of search string" ;# <-- NOT TRANSLATED YET } # hexeditor.tcl # ============================================================================== namespace eval HexEditor { ##ID:001365## mcset $l "Select all" \ "Select all" ;# <-- NOT TRANSLATED YET ##ID:001366## mcset $l "Text to find" \ "Text to find" ;# <-- NOT TRANSLATED YET ##ID:001367## mcset $l "Where" \ "Where" ;# <-- NOT TRANSLATED YET ##ID:001368## mcset $l "Left view" \ "Left view" ;# <-- NOT TRANSLATED YET ##ID:001369## mcset $l "Right view" \ "Right view" ;# <-- NOT TRANSLATED YET ##ID:001370## mcset $l "Options" \ "Options" ;# <-- NOT TRANSLATED YET ##ID:001371## mcset $l "From cursor" \ "From cursor" ;# <-- NOT TRANSLATED YET ##ID:001372## mcset $l "Backwards" \ "Backwards" ;# <-- NOT TRANSLATED YET ##ID:001373## mcset $l "Ok" \ "Ok" ;# <-- NOT TRANSLATED YET ##ID:001374## mcset $l "Cancel" \ "Cancel" ;# <-- NOT TRANSLATED YET ##ID:001375## mcset $l "Find" \ "Find" ;# <-- NOT TRANSLATED YET ##ID:001376## mcset $l "String not found" \ "String not found" ;# <-- NOT TRANSLATED YET ##ID:001377## mcset $l "Search string '%s' not found !" \ "Search string '%s' not found !" ;# <-- NOT TRANSLATED YET } # cvarsview.tcl # ============================================================================== namespace eval CVarsView { ##ID:001378## mcset $l "Unable to read file\n'%s'" \ "Unable to read file\n'%s'" ;# <-- NOT TRANSLATED YET ##ID:001379## mcset $l "Permission denied" \ "Permission denied" ;# <-- NOT TRANSLATED YET ##ID:001380## mcset $l "Search:" \ "Search:" ;# <-- NOT TRANSLATED YET ##ID:001381## mcset $l {Value Level Data type Variable name} \ {Value Level Data type Variable name} ;# <-- NOT TRANSLATED YET ##ID:001382## mcset $l {Value Data type Variable name} \ {Value Data type Variable name} ;# <-- NOT TRANSLATED YET ##ID:001383## mcset $l "Global static scalar variables" \ "Global static scalar variables" ;# <-- NOT TRANSLATED YET ##ID:001384## mcset $l "Local static scalar variables" \ "Local static scalar variables" ;# <-- NOT TRANSLATED YET } # my_tk_messageBox.tcl # ============================================================================== namespace eval my_tk_messageBox { ##ID:001385## mcset $l "Abort" \ "Abort" ;# <-- NOT TRANSLATED YET ##ID:001386## mcset $l "Retry" \ "Retry" ;# <-- NOT TRANSLATED YET ##ID:001387## mcset $l "Ignore" \ "Ignore" ;# <-- NOT TRANSLATED YET ##ID:001388## mcset $l "Ok" \ "Ok" ;# <-- NOT TRANSLATED YET ##ID:001389## mcset $l "Cancel" \ "Cancel" ;# <-- NOT TRANSLATED YET ##ID:001390## mcset $l "Yes" \ "Yes" ;# <-- NOT TRANSLATED YET ##ID:001391## mcset $l "No" \ "No" ;# <-- NOT TRANSLATED YET } # tips.tcl # ============================================================================== namespace eval Tips { ##ID:001392## mcset $l "Did you know ... " \ "Did you know ... " ;# <-- NOT TRANSLATED YET ##ID:001393## mcset $l "Show tips on start-up" \ "Show tips on start-up" ;# <-- NOT TRANSLATED YET ##ID:001394## mcset $l "Close" \ "Close" ;# <-- NOT TRANSLATED YET ##ID:001395## mcset $l "Next" \ "Next" ;# <-- NOT TRANSLATED YET ##ID:001396## mcset $l "Previous" \ "Previous" ;# <-- NOT TRANSLATED YET ##ID:001397## mcset $l "Tip of the day - MCU 8051 IDE" \ "Tip of the day - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:001398## mcset $l "Unable to open file containing tips,\nplease check your installation" \ "Unable to open file containing tips,\nplease check your installation" ;# <-- NOT TRANSLATED YET ##ID:001399## mcset $l "Unable to parse tips.xml" \ "Unable to parse tips.xml" ;# <-- NOT TRANSLATED YET ##ID:001400## mcset $l "File tips.xml is corrupted,\nplease check your installation" \ "File tips.xml is corrupted,\nplease check your installation" ;# <-- NOT TRANSLATED YET } # editor.tcl # ============================================================================== namespace eval Editor { ##ID:001401## mcset $l "LJMP this line" \ "LJMP this line" ;# <-- NOT TRANSLATED YET ##ID:001402## mcset $l "LCALL this line" \ "LCALL this line" ;# <-- NOT TRANSLATED YET ##ID:001403## mcset $l "Program jump" \ "Program jump" ;# <-- NOT TRANSLATED YET ##ID:001404## mcset $l "Call subprogram" \ "Call subprogram" ;# <-- NOT TRANSLATED YET ##ID:001405## mcset $l "Breakpoint" \ "Breakpoint" ;# <-- NOT TRANSLATED YET ##ID:001406## mcset $l "Bookmark" \ "Bookmark" ;# <-- NOT TRANSLATED YET ##ID:001407## mcset $l "Add/Remove breakpoint to/from current line" \ "Add/Remove breakpoint to/from current line" ;# <-- NOT TRANSLATED YET ##ID:001408## mcset $l "Add/Remove bookmark to/from current line" \ "Add/Remove bookmark to/from current line" ;# <-- NOT TRANSLATED YET ##ID:001409## mcset $l "Uppercase" \ "Uppercase" ;# <-- NOT TRANSLATED YET ##ID:001410## mcset $l "Lowercase" \ "Lowercase" ;# <-- NOT TRANSLATED YET ##ID:001411## mcset $l "Capitalize" \ "Capitalize" ;# <-- NOT TRANSLATED YET ##ID:001412## mcset $l "Save file" \ "Save file" ;# <-- NOT TRANSLATED YET ##ID:001413## mcset $l "Save this file" \ "Save this file" ;# <-- NOT TRANSLATED YET ##ID:001414## mcset $l "Configure panel" \ "Configure panel" ;# <-- NOT TRANSLATED YET ##ID:001415## mcset $l "Invoke editor configuration dialog" \ "Invoke editor configuration dialog" ;# <-- NOT TRANSLATED YET ##ID:001416## mcset $l "Hide this panel" \ "Hide this panel" ;# <-- NOT TRANSLATED YET ##ID:001417## mcset $l "Hide panel" \ "Hide panel" ;# <-- NOT TRANSLATED YET ##ID:001418## mcset $l "Split vertical" \ "Split vertical" ;# <-- NOT TRANSLATED YET ##ID:001419## mcset $l "Split the editor vertically" \ "Split the editor vertically" ;# <-- NOT TRANSLATED YET ##ID:001420## mcset $l "Split horizontal" \ "Split horizontal" ;# <-- NOT TRANSLATED YET ##ID:001421## mcset $l "Split the editor horizontally" \ "Split the editor horizontally" ;# <-- NOT TRANSLATED YET ##ID:001422## mcset $l "Close current view" \ "Close current view" ;# <-- NOT TRANSLATED YET ##ID:001423## mcset $l "Back" \ "Back" ;# <-- NOT TRANSLATED YET ##ID:001424## mcset $l "Go to previous file in the file list" \ "Go to previous file in the file list" ;# <-- NOT TRANSLATED YET ##ID:001425## mcset $l "Go to next file in the file list" \ "Go to next file in the file list" ;# <-- NOT TRANSLATED YET ##ID:001426## mcset $l "Forward" \ "Forward" ;# <-- NOT TRANSLATED YET ##ID:001427## mcset $l "Editor command line, type `help' for more" \ "Editor command line, type `help' for more" ;# <-- NOT TRANSLATED YET ##ID:001428## mcset $l "Icon border - click to add/remove bookmark" \ "Icon border - click to add/remove bookmark" ;# <-- NOT TRANSLATED YET ##ID:001429## mcset $l "Line numbers - click to add/remove breakpoint" \ "Line numbers - click to add/remove breakpoint" ;# <-- NOT TRANSLATED YET ##ID:001430## mcset $l "Insertion mode" \ "Insertion mode" ;# <-- NOT TRANSLATED YET ##ID:001431## mcset $l "Insertion mode -- OVR == overwrite; INS == insert" \ "Insertion mode -- OVR == overwrite; INS == insert" ;# <-- NOT TRANSLATED YET ##ID:001432## mcset $l "INS" \ "INS" ;# <-- NOT TRANSLATED YET ##ID:001433## mcset $l "OVR" \ "OVR" ;# <-- NOT TRANSLATED YET ##ID:001434## mcset $l "Selection mode" \ "Selection mode" ;# <-- NOT TRANSLATED YET ##ID:001435## mcset $l "Selection mode -- BLK == block; NORM == normal" \ "Selection mode -- BLK == block; NORM == normal" ;# <-- NOT TRANSLATED YET ##ID:001436## mcset $l "NORM" \ "NORM" ;# <-- NOT TRANSLATED YET ##ID:001437## mcset $l "BLK" \ "BLK" ;# <-- NOT TRANSLATED YET ##ID:001438## mcset $l "Line:" \ "Line:" ;# <-- NOT TRANSLATED YET ##ID:001439## mcset $l " Column:" \ " Column:" ;# <-- NOT TRANSLATED YET ##ID:001440## mcset $l " Total:" \ " Total:" ;# <-- NOT TRANSLATED YET ##ID:001441## mcset $l "Editor status bar" \ "Editor status bar" ;# <-- NOT TRANSLATED YET ##ID:001442## mcset $l "Starting simulator" \ "Starting simulator" ;# <-- NOT TRANSLATED YET ##ID:001443## mcset $l "Simulator mode " \ "Simulator mode " ;# <-- NOT TRANSLATED YET ##ID:001444## mcset $l "Editor disabled" \ "Editor disabled" ;# <-- NOT TRANSLATED YET ##ID:001445## mcset $l "File has been modified, click to save" \ "File has been modified, click to save" ;# <-- NOT TRANSLATED YET ##ID:001446## mcset $l "Name of the current file or \"untitled\" if the file has not yet been saved under any name" \ "Name of the current file or \"untitled\" if the file has not yet been saved under any name" ;# <-- NOT TRANSLATED YET ##ID:001447## mcset $l "File type\n C/H\tC source / header\n ASM\tAssembly language\n LST\tCode listing\n ASX\tASX8051 assembler" \ "File type\n C/H\tC source / header\n ASM\tAssembly language\n LST\tCode listing\n ASX\tASX8051 assembler" ;# <-- NOT TRANSLATED YET ##ID:001448## mcset $l "File type" \ "File type" ;# <-- NOT TRANSLATED YET ##ID:001449## mcset $l "Invalid command" \ "Invalid command" ;# <-- NOT TRANSLATED YET ##ID:001450## mcset $l "Ambiguous command" \ "Ambiguous command" ;# <-- NOT TRANSLATED YET ##ID:001451## mcset $l "This MCU cannot have connected external data memory" \ "This MCU cannot have connected external data memory" ;# <-- NOT TRANSLATED YET ##ID:001452## mcset $l "This MCU cannot have connected external program memory" \ "This MCU cannot have connected external program memory" ;# <-- NOT TRANSLATED YET ##ID:001453## mcset $l "EDITOR COMMAND LINE: invalid command, type `help list' to get list of available commands" \ "EDITOR COMMAND LINE: invalid command, type `help list' to get list of available commands" ;# <-- NOT TRANSLATED YET ##ID:001454## mcset $l "EDITOR COMMAND LINE: wrong # args (command: %s)" \ "EDITOR COMMAND LINE: wrong # args (command: %s)" ;# <-- NOT TRANSLATED YET ##ID:001455## mcset $l "EDITOR COMMAND LINE: This command takes no arguments" \ "EDITOR COMMAND LINE: This command takes no arguments" ;# <-- NOT TRANSLATED YET ##ID:001456## mcset $l "EDITOR COMMAND LINE: Invalid number format" \ "EDITOR COMMAND LINE: Invalid number format" ;# <-- NOT TRANSLATED YET ##ID:001457## mcset $l "EDITOR COMMAND LINE: This command requires exactly one argument" \ "EDITOR COMMAND LINE: This command requires exactly one argument" ;# <-- NOT TRANSLATED YET ##ID:001458## mcset $l "EDITOR COMMAND LINE: Unknown command: `%s'" \ "EDITOR COMMAND LINE: Unknown command: `%s'" ;# <-- NOT TRANSLATED YET ##ID:001459## mcset $l "EDITOR COMMAND LINE: Unsupported processor `%s'" \ "EDITOR COMMAND LINE: Unsupported processor `%s'" ;# <-- NOT TRANSLATED YET ##ID:001460## mcset $l "EDITOR COMMAND LINE: Expected integer but got `%s' (command: %s)" \ "EDITOR COMMAND LINE: Expected integer but got `%s' (command: %s)" ;# <-- NOT TRANSLATED YET ##ID:001461## mcset $l "EDITOR COMMAND LINE: This MCU has XDATA memory limit 0x10000 B (65536) (command: %s)" \ "EDITOR COMMAND LINE: This MCU has XDATA memory limit 0x10000 B (65536) (command: %s)" ;# <-- NOT TRANSLATED YET ##ID:001462## mcset $l "EDITOR COMMAND LINE: This MCU has CODE memory limit 0x10000 B (65536) (command: %s)" \ "EDITOR COMMAND LINE: This MCU has CODE memory limit 0x10000 B (65536) (command: %s)" ;# <-- NOT TRANSLATED YET ##ID:001463## mcset $l "EDITOR COMMAND LINE: Invalid format string" \ "EDITOR COMMAND LINE: Invalid format string" ;# <-- NOT TRANSLATED YET ##ID:001464## mcset $l "EDITOR COMMAND LINE: syntax error: expected integer (command: %s)" \ "EDITOR COMMAND LINE: syntax error: expected integer (command: %s)" ;# <-- NOT TRANSLATED YET ##ID:001465## mcset $l "Target line out of range" \ "Target line out of range" ;# <-- NOT TRANSLATED YET ##ID:001466## mcset $l "Invalid option: %s" \ "Invalid option: %s" ;# <-- NOT TRANSLATED YET ##ID:001467## mcset $l "String not found: %s" \ "String not found: %s" ;# <-- NOT TRANSLATED YET ##ID:001468## mcset $l "Found %s occurrences" \ "Found %s occurrences" ;# <-- NOT TRANSLATED YET ##ID:001469## mcset $l "Success" \ "Success" ;# <-- NOT TRANSLATED YET ##ID:001470## mcset $l "Help" \ "Help" ;# <-- NOT TRANSLATED YET ##ID:001471## mcset $l "This is MCU 8051 IDE command line\n\nusage: command \[arguments\]\n\nEnter help list for list of available commands or\nhelp for help for individual command" \ "This is MCU 8051 IDE command line\n\nusage: command \[arguments\]\n\nEnter help list for list of available commands or\nhelp for help for individual command" ;# <-- NOT TRANSLATED YET ##ID:001472## mcset $l "Close" \ "Close" ;# <-- NOT TRANSLATED YET ##ID:001473## mcset $l "Close this window" \ "Close this window" ;# <-- NOT TRANSLATED YET ##ID:001474## mcset $l "Replace: %s replacements made" \ "Replace: %s replacements made" ;# <-- NOT TRANSLATED YET ##ID:001475## mcset $l "Finishing highlight" \ "Finishing highlight" ;# <-- NOT TRANSLATED YET ##ID:001476## mcset $l "Invalid list of bookmarks -- bookmarks discarded" \ "Invalid list of bookmarks -- bookmarks discarded" ;# <-- NOT TRANSLATED YET ##ID:001477## mcset $l "Invalid list of breakpoints -- bookmarks discarded" \ "Invalid list of breakpoints -- bookmarks discarded" ;# <-- NOT TRANSLATED YET ##ID:001478## mcset $l "File switching locked" \ "File switching locked" ;# <-- NOT TRANSLATED YET ##ID:001479## mcset $l "File switching unlocked" \ "File switching unlocked" ;# <-- NOT TRANSLATED YET ##ID:001480## mcset $l "Lock file switching" \ "Lock file switching" ;# <-- NOT TRANSLATED YET ##ID:001481## mcset $l "Unlock file switching" \ "Unlock file switching" ;# <-- NOT TRANSLATED YET ##ID:001482## mcset $l "Unable to open file:\n\"%s\"\nfor writing" \ "Unable to open file:\n\"%s\"\nfor writing" ;# <-- NOT TRANSLATED YET ##ID:001483## mcset $l "File %s saved" \ "File %s saved" ;# <-- NOT TRANSLATED YET ##ID:001484## mcset $l "Unable to execute: nothing selected" \ "Unable to execute: nothing selected" ;# <-- NOT TRANSLATED YET ##ID:001485## mcset $l "FATAL ERROR" \ "FATAL ERROR" ;# <-- NOT TRANSLATED YET ##ID:001486## mcset $l "Unable to start embedded editor due to an unknown error. This error did not occurred in MCU 8051 IDE code but somewhere else. Please try to restart MCU 8051 IDE with --reset-user-settings" \ "Unable to start embedded editor due to an unknown error. This error did not occurred in MCU 8051 IDE code but somewhere else. Please try to restart MCU 8051 IDE with --reset-user-settings" ;# <-- NOT TRANSLATED YET ##ID:001487## mcset $l "No function to document" \ "No function to document" ;# <-- NOT TRANSLATED YET ##ID:001488## mcset $l "Read-only project" \ "Read-only project" ;# <-- NOT TRANSLATED YET ##ID:001489## mcset $l "This project has a special purpose, modifications to this project are not allowed." \ "This project has a special purpose, modifications to this project are not allowed." ;# <-- NOT TRANSLATED YET ##ID:001490## mcset $l "This editor is only for reading, to change that press alt+v and o" \ "This editor is only for reading, to change that press alt+v and o" ;# <-- NOT TRANSLATED YET ##ID:001491## mcset $l " READ ONLY " \ " READ ONLY " ;# <-- NOT TRANSLATED YET ##ID:001492## mcset $l "available commands" \ "available commands" ;# <-- NOT TRANSLATED YET ##ID:001493## mcset $l "DEC -> HEX" \ "DEC -> HEX" ;# <-- NOT TRANSLATED YET ##ID:001494## mcset $l "DEC -> OCT" \ "DEC -> OCT" ;# <-- NOT TRANSLATED YET ##ID:001495## mcset $l "DEC -> BIN" \ "DEC -> BIN" ;# <-- NOT TRANSLATED YET ##ID:001496## mcset $l "HEX -> DEC" \ "HEX -> DEC" ;# <-- NOT TRANSLATED YET ##ID:001497## mcset $l "HEX -> OCT" \ "HEX -> OCT" ;# <-- NOT TRANSLATED YET ##ID:001498## mcset $l "HEX -> BIN" \ "HEX -> BIN" ;# <-- NOT TRANSLATED YET ##ID:001499## mcset $l "OCT -> HEX" \ "OCT -> HEX" ;# <-- NOT TRANSLATED YET ##ID:001500## mcset $l "OCT -> DEC" \ "OCT -> DEC" ;# <-- NOT TRANSLATED YET ##ID:001501## mcset $l "OCT -> BIN" \ "OCT -> BIN" ;# <-- NOT TRANSLATED YET ##ID:001502## mcset $l "BIN -> HEX" \ "BIN -> HEX" ;# <-- NOT TRANSLATED YET ##ID:001503## mcset $l "BIN -> DEC" \ "BIN -> DEC" ;# <-- NOT TRANSLATED YET ##ID:001504## mcset $l "BIN -> OCT" \ "BIN -> OCT" ;# <-- NOT TRANSLATED YET ##ID:001505## mcset $l "Animate program" \ "Animate program" ;# <-- NOT TRANSLATED YET ##ID:001506## mcset $l "Compile current file" \ "Compile current file" ;# <-- NOT TRANSLATED YET ##ID:001507## mcset $l "Reformat code" \ "Reformat code" ;# <-- NOT TRANSLATED YET ##ID:001508## mcset $l "Bookmark current line" \ "Bookmark current line" ;# <-- NOT TRANSLATED YET ##ID:001509## mcset $l "Add/Remove breakpoint" \ "Add/Remove breakpoint" ;# <-- NOT TRANSLATED YET ##ID:001510## mcset $l "Capitalize selection" \ "Capitalize selection" ;# <-- NOT TRANSLATED YET ##ID:001511## mcset $l "Clear history" \ "Clear history" ;# <-- NOT TRANSLATED YET ##ID:001512## mcset $l "Comment selected text" \ "Comment selected text" ;# <-- NOT TRANSLATED YET ##ID:001513## mcset $l "Copy selection" \ "Copy selection" ;# <-- NOT TRANSLATED YET ##ID:001514## mcset $l "Custom command" \ "Custom command" ;# <-- NOT TRANSLATED YET ##ID:001515## mcset $l "Cut selection" \ "Cut selection" ;# <-- NOT TRANSLATED YET ##ID:001516## mcset $l "Insert date" \ "Insert date" ;# <-- NOT TRANSLATED YET ##ID:001517## mcset $l "Exit command line" \ "Exit command line" ;# <-- NOT TRANSLATED YET ##ID:001518## mcset $l "Exit program" \ "Exit program" ;# <-- NOT TRANSLATED YET ##ID:001519## mcset $l "Find string" \ "Find string" ;# <-- NOT TRANSLATED YET ##ID:001520## mcset $l "Go to line" \ "Go to line" ;# <-- NOT TRANSLATED YET ##ID:001521## mcset $l "Insert literal character" \ "Insert literal character" ;# <-- NOT TRANSLATED YET ##ID:001522## mcset $l "Indent selection" \ "Indent selection" ;# <-- NOT TRANSLATED YET ##ID:001523## mcset $l "Remove current line" \ "Remove current line" ;# <-- NOT TRANSLATED YET ##ID:001524## mcset $l "Open file" \ "Open file" ;# <-- NOT TRANSLATED YET ##ID:001525## mcset $l "Paste clipboard" \ "Paste clipboard" ;# <-- NOT TRANSLATED YET ##ID:001526## mcset $l "Take back last undo" \ "Take back last undo" ;# <-- NOT TRANSLATED YET ##ID:001527## mcset $l "Reload current document" \ "Reload current document" ;# <-- NOT TRANSLATED YET ##ID:001528## mcset $l "Replace strings" \ "Replace strings" ;# <-- NOT TRANSLATED YET ##ID:001529## mcset $l "Run simulation" \ "Run simulation" ;# <-- NOT TRANSLATED YET ##ID:001530## mcset $l "Save current line" \ "Save current line" ;# <-- NOT TRANSLATED YET ##ID:001531## mcset $l "Show/Hide icon border" \ "Show/Hide icon border" ;# <-- NOT TRANSLATED YET ##ID:001532## mcset $l "Show/Hide line n. bar" \ "Show/Hide line n. bar" ;# <-- NOT TRANSLATED YET ##ID:001533## mcset $l "Start/Stop simulator" \ "Start/Stop simulator" ;# <-- NOT TRANSLATED YET ##ID:001534## mcset $l "Step program" \ "Step program" ;# <-- NOT TRANSLATED YET ##ID:001535## mcset $l "To lowercase" \ "To lowercase" ;# <-- NOT TRANSLATED YET ##ID:001536## mcset $l "To uppercase" \ "To uppercase" ;# <-- NOT TRANSLATED YET ##ID:001537## mcset $l "Uncomment selection" \ "Uncomment selection" ;# <-- NOT TRANSLATED YET ##ID:001538## mcset $l "Take back last operation" \ "Take back last operation" ;# <-- NOT TRANSLATED YET ##ID:001539## mcset $l "Unindent selection" \ "Unindent selection" ;# <-- NOT TRANSLATED YET ##ID:001540## mcset $l "Hibernate running program" \ "Hibernate running program" ;# <-- NOT TRANSLATED YET ##ID:001541## mcset $l "Resume hibernated program" \ "Resume hibernated program" ;# <-- NOT TRANSLATED YET ##ID:001542## mcset $l "Change current MCU" \ "Change current MCU" ;# <-- NOT TRANSLATED YET ##ID:001543## mcset $l "Set XCODE memory size for current MCU" \ "Set XCODE memory size for current MCU" ;# <-- NOT TRANSLATED YET ##ID:001544## mcset $l "SET XDATA memory size for current MCU" \ "SET XDATA memory size for current MCU" ;# <-- NOT TRANSLATED YET ##ID:001545## mcset $l "Available commands" \ "Available commands" ;# <-- NOT TRANSLATED YET ##ID:001546## mcset $l "Command hibernate" \ "Command hibernate" ;# <-- NOT TRANSLATED YET ##ID:001547## mcset $l "hibernate \[\]\nHibernate running program (available only when simulator is stated).\n\nThis function saves current state of the simulator engine for future resumption. If no target is not specified it will invoke file selection dialog" \ "hibernate \[\]\nHibernate running program (available only when simulator is stated).\n\nThis function saves current state of the simulator engine for future resumption. If no target is not specified it will invoke file selection dialog" ;# <-- NOT TRANSLATED YET ##ID:001548## mcset $l "Command resume" \ "Command resume" ;# <-- NOT TRANSLATED YET ##ID:001549## mcset $l "resume \[\]\nResume hibernated program (available only when simulator is stated).\n\nThis function restores previous state of the simulator engine stored in the given file. If no source is not specified it will invoke file selection dialog" \ "resume \[\]\nResume hibernated program (available only when simulator is stated).\n\nThis function restores previous state of the simulator engine stored in the given file. If no source is not specified it will invoke file selection dialog" ;# <-- NOT TRANSLATED YET ##ID:001550## mcset $l "Command switch-mcu" \ "Command switch-mcu" ;# <-- NOT TRANSLATED YET ##ID:001551## mcset $l "switch-mcu \nChange current MCU. Type `switch-mcu list' for list of supported microcontrollers" \ "switch-mcu \nChange current MCU. Type `switch-mcu list' for list of supported microcontrollers" ;# <-- NOT TRANSLATED YET ##ID:001552## mcset $l "Command set-xcode" \ "Command set-xcode" ;# <-- NOT TRANSLATED YET ##ID:001553## mcset $l "set-xcode \nChange capacity of external program memory.\nNote: this command also close CODE memory hex editor" \ "set-xcode \nChange capacity of external program memory.\nNote: this command also close CODE memory hex editor" ;# <-- NOT TRANSLATED YET ##ID:001554## mcset $l "Command set-xdata" \ "Command set-xdata" ;# <-- NOT TRANSLATED YET ##ID:001555## mcset $l "set-xdata \nChange capacity of external data memory.\nNote: this command also close XDATA memory hex editor" \ "set-xdata \nChange capacity of external data memory.\nNote: this command also close XDATA memory hex editor" ;# <-- NOT TRANSLATED YET ##ID:001556## mcset $l "Command run" \ "Command run" ;# <-- NOT TRANSLATED YET ##ID:001557## mcset $l "Run simulation (available only when simulator is stated)" \ "Run simulation (available only when simulator is stated)" ;# <-- NOT TRANSLATED YET ##ID:001558## mcset $l "Command exit" \ "Command exit" ;# <-- NOT TRANSLATED YET ##ID:001559## mcset $l "Exits this command line" \ "Exits this command line" ;# <-- NOT TRANSLATED YET ##ID:001560## mcset $l "Command exit-program" \ "Command exit-program" ;# <-- NOT TRANSLATED YET ##ID:001561## mcset $l "Quit MCU 8051 IDE" \ "Quit MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:001562## mcset $l "Command set-icon-border" \ "Command set-icon-border" ;# <-- NOT TRANSLATED YET ##ID:001563## mcset $l "Sets the visibility of the icon border" \ "Sets the visibility of the icon border" ;# <-- NOT TRANSLATED YET ##ID:001564## mcset $l "Command set-line-numbers" \ "Command set-line-numbers" ;# <-- NOT TRANSLATED YET ##ID:001565## mcset $l "Sets the visibility of the line numbers." \ "Sets the visibility of the line numbers." ;# <-- NOT TRANSLATED YET ##ID:001566## mcset $l "Command help" \ "Command help" ;# <-- NOT TRANSLATED YET ##ID:001567## mcset $l "help \nShows help for the given command\n\nhelp list\nShows list of available command" \ "help \nShows help for the given command\n\nhelp list\nShows list of available command" ;# <-- NOT TRANSLATED YET ##ID:001568## mcset $l "Command open" \ "Command open" ;# <-- NOT TRANSLATED YET ##ID:001569## mcset $l "open \nOpens the given file in new editor" \ "open \nOpens the given file in new editor" ;# <-- NOT TRANSLATED YET ##ID:001570## mcset $l "Command indent" \ "Command indent" ;# <-- NOT TRANSLATED YET ##ID:001571## mcset $l "Indents current line or selected area" \ "Indents current line or selected area" ;# <-- NOT TRANSLATED YET ##ID:001572## mcset $l "Command unindent" \ "Command unindent" ;# <-- NOT TRANSLATED YET ##ID:001573## mcset $l "Unindents current line or selected area" \ "Unindents current line or selected area" ;# <-- NOT TRANSLATED YET ##ID:001574## mcset $l "Command comment" \ "Command comment" ;# <-- NOT TRANSLATED YET ##ID:001575## mcset $l "Comments current line or selected area" \ "Comments current line or selected area" ;# <-- NOT TRANSLATED YET ##ID:001576## mcset $l "Command uncomment" \ "Command uncomment" ;# <-- NOT TRANSLATED YET ##ID:001577## mcset $l "Uncomments current line or selected area" \ "Uncomments current line or selected area" ;# <-- NOT TRANSLATED YET ##ID:001578## mcset $l "Command kill-line" \ "Command kill-line" ;# <-- NOT TRANSLATED YET ##ID:001579## mcset $l "Removes the current line" \ "Removes the current line" ;# <-- NOT TRANSLATED YET ##ID:001580## mcset $l "Command date" \ "Command date" ;# <-- NOT TRANSLATED YET ##ID:001581## mcset $l "date \nInserts formatted date at the current position in text\n\nFormat string:\n%% => %\n%a => Weekday name (Mon, Tue, etc.)\n%A => Weekday name (Monday, Tuesday, etc.)\n%b => Month name (Jan, Feb, etc.)\n%B => Full month name\n%C => Year (19 or 20)\n%d => Day of month (01 - 31)\n%D => %m/%d/%y\n%h => Abbreviated month name.\n%H => Hour (00 - 23)\n%I => Hour (01 - 12)\n%j => Day of year (001 - 366)\n%k => Hour (0 - 23)\n%l => Hour (1 - 12).\n%m => Month (01 - 12)\n%M => Minute (00 - 59)\n%n => Newline\n%p => AM/PM\n%R => %H:%M.\n%s => Unix timestamp\n%S => Seconds (00 - 59)\n%t => Tab\n%T => %H:%M:%S.\n%u => Weekday number (Monday = 1, Sunday = 7)\n%w => Weekday number (Sunday = 0, Saturday = 6)\n%y => Year without century (00 - 99)\n%Y => Year with century (e.g. 1459)" \ "date \nInserts formatted date at the current position in text\n\nFormat string:\n%% => %\n%a => Weekday name (Mon, Tue, etc.)\n%A => Weekday name (Monday, Tuesday, etc.)\n%b => Month name (Jan, Feb, etc.)\n%B => Full month name\n%C => Year (19 or 20)\n%d => Day of month (01 - 31)\n%D => %m/%d/%y\n%h => Abbreviated month name.\n%H => Hour (00 - 23)\n%I => Hour (01 - 12)\n%j => Day of year (001 - 366)\n%k => Hour (0 - 23)\n%l => Hour (1 - 12).\n%m => Month (01 - 12)\n%M => Minute (00 - 59)\n%n => Newline\n%p => AM/PM\n%R => %H:%M.\n%s => Unix timestamp\n%S => Seconds (00 - 59)\n%t => Tab\n%T => %H:%M:%S.\n%u => Weekday number (Monday = 1, Sunday = 7)\n%w => Weekday number (Sunday = 0, Saturday = 6)\n%y => Year without century (00 - 99)\n%Y => Year with century (e.g. 1459)" ;# <-- NOT TRANSLATED YET ##ID:001582## mcset $l "Command clear" \ "Command clear" ;# <-- NOT TRANSLATED YET ##ID:001583## mcset $l "Clears command line history" \ "Clears command line history" ;# <-- NOT TRANSLATED YET ##ID:001584## mcset $l "Command char" \ "Command char" ;# <-- NOT TRANSLATED YET ##ID:001585## mcset $l "char \nInserts literal characters by their numerical identifier.\nIdentifier can be in decimal hexadecimal or octal form." \ "char \nInserts literal characters by their numerical identifier.\nIdentifier can be in decimal hexadecimal or octal form." ;# <-- NOT TRANSLATED YET ##ID:001586## mcset $l "Command goto" \ "Command goto" ;# <-- NOT TRANSLATED YET ##ID:001587## mcset $l "goto \nGo to the given line" \ "goto \nGo to the given line" ;# <-- NOT TRANSLATED YET ##ID:001588## mcset $l "Command replace" \ "Command replace" ;# <-- NOT TRANSLATED YET ##ID:001589## mcset $l "replace\[:options\] \n\noptions:\nb Search backwards\nc Search from cursor position\nr Regular expression search\ns Case sensitive search\np Ask before replacement" \ "replace\[:options\] \n\noptions:\nb Search backwards\nc Search from cursor position\nr Regular expression search\ns Case sensitive search\np Ask before replacement" ;# <-- NOT TRANSLATED YET ##ID:001590## mcset $l "Command find" \ "Command find" ;# <-- NOT TRANSLATED YET ##ID:001591## mcset $l "find\[:options\] \n\noptions:\nb Search backwards\nc Search from cursor position\ne Search in the selection only\nr Regular expression search\ns Case sensitive search" \ "find\[:options\] \n\noptions:\nb Search backwards\nc Search from cursor position\ne Search in the selection only\nr Regular expression search\ns Case sensitive search" ;# <-- NOT TRANSLATED YET ##ID:001592## mcset $l "Command cut" \ "Command cut" ;# <-- NOT TRANSLATED YET ##ID:001593## mcset $l "Cut selected text" \ "Cut selected text" ;# <-- NOT TRANSLATED YET ##ID:001594## mcset $l "Command copy" \ "Command copy" ;# <-- NOT TRANSLATED YET ##ID:001595## mcset $l "Copy selected text to clipboard" \ "Copy selected text to clipboard" ;# <-- NOT TRANSLATED YET ##ID:001596## mcset $l "Command paste" \ "Command paste" ;# <-- NOT TRANSLATED YET ##ID:001597## mcset $l "Paste clipboard content" \ "Paste clipboard content" ;# <-- NOT TRANSLATED YET ##ID:001598## mcset $l "Command tolower" \ "Command tolower" ;# <-- NOT TRANSLATED YET ##ID:001599## mcset $l "Convert selected text to lowercase" \ "Convert selected text to lowercase" ;# <-- NOT TRANSLATED YET ##ID:001600## mcset $l "Command toupper" \ "Command toupper" ;# <-- NOT TRANSLATED YET ##ID:001601## mcset $l "Convert selected text to uppercase" \ "Convert selected text to uppercase" ;# <-- NOT TRANSLATED YET ##ID:001602## mcset $l "Command capitalize" \ "Command capitalize" ;# <-- NOT TRANSLATED YET ##ID:001603## mcset $l "Capitalize the selected text (convert 1st character to uppercase)" \ "Capitalize the selected text (convert 1st character to uppercase)" ;# <-- NOT TRANSLATED YET ##ID:001604## mcset $l "Command save" \ "Command save" ;# <-- NOT TRANSLATED YET ##ID:001605## mcset $l "Save the current document" \ "Save the current document" ;# <-- NOT TRANSLATED YET ##ID:001606## mcset $l "Command bookmark" \ "Command bookmark" ;# <-- NOT TRANSLATED YET ##ID:001607## mcset $l "Bookmark the current line" \ "Bookmark the current line" ;# <-- NOT TRANSLATED YET ##ID:001608## mcset $l "Command custom" \ "Command custom" ;# <-- NOT TRANSLATED YET ##ID:001609## mcset $l "custom \nExecute custom command (see menu Configuration -> Custom commands)" \ "custom \nExecute custom command (see menu Configuration -> Custom commands)" ;# <-- NOT TRANSLATED YET ##ID:001610## mcset $l "Command breakpoint" \ "Command breakpoint" ;# <-- NOT TRANSLATED YET ##ID:001611## mcset $l "Add / Remove breakpoint to the current line" \ "Add / Remove breakpoint to the current line" ;# <-- NOT TRANSLATED YET ##ID:001612## mcset $l "Command undo" \ "Command undo" ;# <-- NOT TRANSLATED YET ##ID:001613## mcset $l "Command redo" \ "Command redo" ;# <-- NOT TRANSLATED YET ##ID:001614## mcset $l "Command auto-indent" \ "Command auto-indent" ;# <-- NOT TRANSLATED YET ##ID:001615## mcset $l "Command reload" \ "Command reload" ;# <-- NOT TRANSLATED YET ##ID:001616## mcset $l "Reload the current document" \ "Reload the current document" ;# <-- NOT TRANSLATED YET ##ID:001617## mcset $l "Command assemble" \ "Command assemble" ;# <-- NOT TRANSLATED YET ##ID:001618## mcset $l "Compile the current document" \ "Compile the current document" ;# <-- NOT TRANSLATED YET ##ID:001619## mcset $l "Command sim" \ "Command sim" ;# <-- NOT TRANSLATED YET ##ID:001620## mcset $l "Start / Stop simulator" \ "Start / Stop simulator" ;# <-- NOT TRANSLATED YET ##ID:001621## mcset $l "Command step" \ "Command step" ;# <-- NOT TRANSLATED YET ##ID:001622## mcset $l "Step program (available only when simulator is stated)" \ "Step program (available only when simulator is stated)" ;# <-- NOT TRANSLATED YET ##ID:001623## mcset $l "Command animate" \ "Command animate" ;# <-- NOT TRANSLATED YET ##ID:001624## mcset $l "Animate program (available only when simulator is stated)" \ "Animate program (available only when simulator is stated)" ;# <-- NOT TRANSLATED YET ##ID:001625## mcset $l "Command d2h" \ "Command d2h" ;# <-- NOT TRANSLATED YET ##ID:001626## mcset $l "Convert decimal number to hexadecimal and write result to editor" \ "Convert decimal number to hexadecimal and write result to editor" ;# <-- NOT TRANSLATED YET ##ID:001627## mcset $l "Command d2o" \ "Command d2o" ;# <-- NOT TRANSLATED YET ##ID:001628## mcset $l "Convert decimal number to octal and write result to editor" \ "Convert decimal number to octal and write result to editor" ;# <-- NOT TRANSLATED YET ##ID:001629## mcset $l "Command d2b" \ "Command d2b" ;# <-- NOT TRANSLATED YET ##ID:001630## mcset $l "Convert decimal number to binary and write result to editor" \ "Convert decimal number to binary and write result to editor" ;# <-- NOT TRANSLATED YET ##ID:001631## mcset $l "Command h2d" \ "Command h2d" ;# <-- NOT TRANSLATED YET ##ID:001632## mcset $l "Convert hexadecimal number to decimal and write result to editor" \ "Convert hexadecimal number to decimal and write result to editor" ;# <-- NOT TRANSLATED YET ##ID:001633## mcset $l "Command h2o" \ "Command h2o" ;# <-- NOT TRANSLATED YET ##ID:001634## mcset $l "Convert hexadecimal number to octal and write result to editor" \ "Convert hexadecimal number to octal and write result to editor" ;# <-- NOT TRANSLATED YET ##ID:001635## mcset $l "Command h2b" \ "Command h2b" ;# <-- NOT TRANSLATED YET ##ID:001636## mcset $l "Convert hexadecimal number to binary and write result to editor" \ "Convert hexadecimal number to binary and write result to editor" ;# <-- NOT TRANSLATED YET ##ID:001637## mcset $l "Command o2h" \ "Command o2h" ;# <-- NOT TRANSLATED YET ##ID:001638## mcset $l "Convert octal number to hexadecimal and write result to editor" \ "Convert octal number to hexadecimal and write result to editor" ;# <-- NOT TRANSLATED YET ##ID:001639## mcset $l "Command o2d" \ "Command o2d" ;# <-- NOT TRANSLATED YET ##ID:001640## mcset $l "Convert octal number to decimal and write result to editor" \ "Convert octal number to decimal and write result to editor" ;# <-- NOT TRANSLATED YET ##ID:001641## mcset $l "Command o2b" \ "Command o2b" ;# <-- NOT TRANSLATED YET ##ID:001642## mcset $l "Convert octal number to binary and write result to editor" \ "Convert octal number to binary and write result to editor" ;# <-- NOT TRANSLATED YET ##ID:001643## mcset $l "Command b2h" \ "Command b2h" ;# <-- NOT TRANSLATED YET ##ID:001644## mcset $l "Convert binary number to hexadecimal and write result to editor" \ "Convert binary number to hexadecimal and write result to editor" ;# <-- NOT TRANSLATED YET ##ID:001645## mcset $l "Command b2d" \ "Command b2d" ;# <-- NOT TRANSLATED YET ##ID:001646## mcset $l "Convert binary number to decimal and write result to editor" \ "Convert binary number to decimal and write result to editor" ;# <-- NOT TRANSLATED YET ##ID:001647## mcset $l "Command b2o" \ "Command b2o" ;# <-- NOT TRANSLATED YET ##ID:001648## mcset $l "Convert binary number to octal and write result to editor" \ "Convert binary number to octal and write result to editor" ;# <-- NOT TRANSLATED YET } # compiler.tcl # ============================================================================== namespace eval Compiler { ##ID:001649## mcset $l "%s errors, %s warnings" \ "%s errors, %s warnings" ;# <-- NOT TRANSLATED YET ##ID:001650## mcset $l "Unable to open the specified file. (%s)" \ "Unable to open the specified file. (%s)" ;# <-- NOT TRANSLATED YET ##ID:001651## mcset $l "Unable to open the specified file. (\033\[34;1m%s\033\[m)" \ "Unable to open the specified file. (\033\[34;1m%s\033\[m)" ;# <-- NOT TRANSLATED YET ##ID:001652## mcset $l "Compilation FAILED !" \ "Compilation FAILED !" ;# <-- NOT TRANSLATED YET ##ID:001653## mcset $l "\033\[31;1mCompilation FAILED !\033\[m" \ "\033\[31;1mCompilation FAILED !\033\[m" ;# <-- NOT TRANSLATED YET ##ID:001654## mcset $l "Compiling file: %s" \ "Compiling file: %s" ;# <-- NOT TRANSLATED YET ##ID:001655## mcset $l "Compiling file: \033\[34;1m%s\033\[m" \ "Compiling file: \033\[34;1m%s\033\[m" ;# <-- NOT TRANSLATED YET ##ID:001656## mcset $l "Initializing pre-processor ..." \ "Initializing pre-processor ..." ;# <-- NOT TRANSLATED YET ##ID:001657## mcset $l "Pre-processing FAILED !" \ "Pre-processing FAILED !" ;# <-- NOT TRANSLATED YET ##ID:001658## mcset $l "\033\[31;1mPre-processing FAILED !\033\[m" \ "\033\[31;1mPre-processing FAILED !\033\[m" ;# <-- NOT TRANSLATED YET ##ID:001659## mcset $l "Compiling ..." \ "Compiling ..." ;# <-- NOT TRANSLATED YET ##ID:001660## mcset $l "Creating IHEX8 ...\t\t\t-> \"%s\"" \ "Creating IHEX8 ...\t\t\t-> \"%s\"" ;# <-- NOT TRANSLATED YET ##ID:001661## mcset $l "Creating IHEX8 ...\t\t\t-> \"\033\[34;1m%s\033\[m\"" \ "Creating IHEX8 ...\t\t\t-> \"\033\[34;1m%s\033\[m\"" ;# <-- NOT TRANSLATED YET ##ID:001662## mcset $l "Error: Unable to open file \"%s\" for writing" \ "Error: Unable to open file \"%s\" for writing" ;# <-- NOT TRANSLATED YET ##ID:001663## mcset $l "\033\[31;1mError\033\[m: Unable to open file \"\033\[34;1m%s\033\[m\" for writing" \ "\033\[31;1mError\033\[m: Unable to open file \"\033\[34;1m%s\033\[m\" for writing" ;# <-- NOT TRANSLATED YET ##ID:001664## mcset $l "Creating object file ...\t\t-> \"%s\"" \ "Creating object file ...\t\t-> \"%s\"" ;# <-- NOT TRANSLATED YET ##ID:001665## mcset $l "Creating object file ...\t\t-> \"\033\[34;1m%s\033\[m\"" \ "Creating object file ...\t\t-> \"\033\[34;1m%s\033\[m\"" ;# <-- NOT TRANSLATED YET ##ID:001666## mcset $l "Creating assembler debug file ...\t-> \"%s\"" \ "Creating assembler debug file ...\t-> \"%s\"" ;# <-- NOT TRANSLATED YET ##ID:001667## mcset $l "Creating simulator data file ...\t-> \"\033\[34;1m%s\033\[m\"" \ "Creating simulator data file ...\t-> \"\033\[34;1m%s\033\[m\"" ;# <-- NOT TRANSLATED YET ##ID:001668## mcset $l "Number of optimization performed: %s" \ "Number of optimization performed: %s" ;# <-- NOT TRANSLATED YET ##ID:001669## mcset $l "Number of optimization performed: \033\[1m%s\033\[m" \ "Number of optimization performed: \033\[1m%s\033\[m" ;# <-- NOT TRANSLATED YET ##ID:001670## mcset $l "Compilation successful. (time: %s sec.)" \ "Compilation successful. (time: %s sec.)" ;# <-- NOT TRANSLATED YET ##ID:001671## mcset $l "\033\[32;1mCompilation successful.\033\[m (time: %s sec.)" \ "\033\[32;1mCompilation successful.\033\[m (time: %s sec.)" ;# <-- NOT TRANSLATED YET ##ID:001672## mcset $l "Creating code listing file ...\t\t-> \"%s\"" \ "Creating code listing file ...\t\t-> \"%s\"" ;# <-- NOT TRANSLATED YET ##ID:001673## mcset $l "Creating code listing file ...\t\t-> \"\033\[34;1m%s\033\[m\"" \ "Creating code listing file ...\t\t-> \"\033\[34;1m%s\033\[m\"" ;# <-- NOT TRANSLATED YET } # assembler.tcl # ============================================================================== namespace eval assembler { ##ID:001674## mcset $l "File access error:\n%s" \ "File access error:\n%s" ;# <-- NOT TRANSLATED YET ##ID:001675## mcset $l "Aborted" \ "Aborted" ;# <-- NOT TRANSLATED YET ##ID:001676## mcset $l "Unknown error %s" \ "Unknown error %s" ;# <-- NOT TRANSLATED YET ##ID:001677## mcset $l "Invalid address at %s" \ "Invalid address at %s" ;# <-- NOT TRANSLATED YET ##ID:001678## mcset $l "Invalid operand: '%s'" \ "Invalid operand: '%s'" ;# <-- NOT TRANSLATED YET ##ID:001679## mcset $l "Invalid value" \ "Invalid value" ;# <-- NOT TRANSLATED YET ##ID:001680## mcset $l "Invalid operand" \ "Invalid operand" ;# <-- NOT TRANSLATED YET ##ID:001681## mcset $l "Unknown instruction: %s" \ "Unknown instruction: %s" ;# <-- NOT TRANSLATED YET ##ID:001682## mcset $l "Compilation error at line %s: %s" \ "Compilation error at line %s: %s" ;# <-- NOT TRANSLATED YET ##ID:001683## mcset $l " in %s" \ " in %s" ;# <-- NOT TRANSLATED YET ##ID:001684## mcset $l "\033\[31;1mCompilation error at line \033\[31;1;4m%s\033\[m%s: %s" \ "\033\[31;1mCompilation error at line \033\[31;1;4m%s\033\[m%s: %s" ;# <-- NOT TRANSLATED YET } # external_compiler.tcl # ============================================================================== namespace eval ExternalCompiler { ##ID:001685## mcset $l "\n\nStarting compiler ..." \ "\n\nStarting compiler ..." ;# <-- NOT TRANSLATED YET ##ID:001686## mcset $l "\n\nStarting make ..." \ "\n\nStarting make ..." ;# <-- NOT TRANSLATED YET ##ID:001687## mcset $l "\nError: Unable to change working directory to '%s'" \ "\nError: Unable to change working directory to '%s'" ;# <-- NOT TRANSLATED YET ##ID:001688## mcset $l "\nUnable to create \"%s\"" \ "\nUnable to create \"%s\"" ;# <-- NOT TRANSLATED YET ##ID:001689## mcset $l "\nUnable to find \"%s\"" \ "\nUnable to find \"%s\"" ;# <-- NOT TRANSLATED YET ##ID:001690## mcset $l "\nUnable to find \"%s\"\n\tMCU 8051 IDE debug file (*.adf) could not be generated\n\tPLEASE CHECK YOUR %s CONFIGURATION" \ "\nUnable to find \"%s\"\n\tMCU 8051 IDE debug file (*.adf) could not be generated\n\tPLEASE CHECK YOUR %s CONFIGURATION" ;# <-- NOT TRANSLATED YET ##ID:001691## mcset $l "\nCompilation successful" \ "\nCompilation successful" ;# <-- NOT TRANSLATED YET ##ID:001692## mcset $l "\nCompilation FAILED" \ "\nCompilation FAILED" ;# <-- NOT TRANSLATED YET ##ID:001693## mcset $l "File access error:\n%s" \ "File access error:\n%s" ;# <-- NOT TRANSLATED YET ##ID:001694## mcset $l "Unable to understand formulation at line %s in file %s" \ "Unable to understand formulation at line %s in file %s" ;# <-- NOT TRANSLATED YET ##ID:001695## mcset $l "Compilation error:\nFile \"%s\" is not a valid Intel® HEX 8 file" \ "Compilation error:\nFile \"%s\" is not a valid Intel® HEX 8 file" ;# <-- NOT TRANSLATED YET } # disassembler.tcl # ============================================================================== namespace eval disassembler { ##ID:001696## mcset $l "Initializing disassembler ..." \ "Initializing disassembler ..." ;# <-- NOT TRANSLATED YET ##ID:001697## mcset $l "Disassembly FAILED ..." \ "Disassembly FAILED ..." ;# <-- NOT TRANSLATED YET ##ID:001698## mcset $l "\033\[31;1mDisassembly FAILED\033\[m ..." \ "\033\[31;1mDisassembly FAILED\033\[m ..." ;# <-- NOT TRANSLATED YET ##ID:001699## mcset $l "Aborted" \ "Aborted" ;# <-- NOT TRANSLATED YET ##ID:001700## mcset $l "Disassembly complete" \ "Disassembly complete" ;# <-- NOT TRANSLATED YET ##ID:001701## mcset $l "\033\[32;1mDisassembly complete\033\[m" \ "\033\[32;1mDisassembly complete\033\[m" ;# <-- NOT TRANSLATED YET ##ID:001702## mcset $l "Invalid line (line contain not allowed characters)" \ "Invalid line (line contain not allowed characters)" ;# <-- NOT TRANSLATED YET ##ID:001703## mcset $l "Line do not contain odd number of chars" \ "Line do not contain odd number of chars" ;# <-- NOT TRANSLATED YET ##ID:001704## mcset $l "Bad checksum, given: %s ; computed: %s" \ "Bad checksum, given: %s ; computed: %s" ;# <-- NOT TRANSLATED YET ##ID:001705## mcset $l "Unknown record type number `%s' (Intel HEX 8 can contain only 00 and 01)" \ "Unknown record type number `%s' (Intel HEX 8 can contain only 00 and 01)" ;# <-- NOT TRANSLATED YET ##ID:001706## mcset $l "Length field do not correspond true data length" \ "Length field do not correspond true data length" ;# <-- NOT TRANSLATED YET ##ID:001707## mcset $l "Unexpected address -- code is not well formatted" \ "Unexpected address -- code is not well formatted" ;# <-- NOT TRANSLATED YET ##ID:001708## mcset $l "Warning: %s" \ "Warning: %s" ;# <-- NOT TRANSLATED YET ##ID:001709## mcset $l "\033\[33mWarning\033\[m: %s" \ "\033\[33mWarning\033\[m: %s" ;# <-- NOT TRANSLATED YET ##ID:001710## mcset $l " at line %s" \ " at line %s" ;# <-- NOT TRANSLATED YET ##ID:001711## mcset $l " at line \033\[31;1;4m%s\033\[m" \ " at line \033\[31;1;4m%s\033\[m" ;# <-- NOT TRANSLATED YET ##ID:001712## mcset $l "Error%s: %s" \ "Error%s: %s" ;# <-- NOT TRANSLATED YET ##ID:001713## mcset $l "\033\[31;1mError%s\033\[m: %s" \ "\033\[31;1mError%s\033\[m: %s" ;# <-- NOT TRANSLATED YET ##ID:001714## mcset $l "Code address overflow, instruction: %s" \ "Code address overflow, instruction: %s" ;# <-- NOT TRANSLATED YET } # preprocessor.tcl # ============================================================================== namespace eval PreProcessor { ##ID:001716## mcset $l "Aborted" \ "Aborted" ;# <-- NOT TRANSLATED YET ##ID:001718## mcset $l "Inclusion nesting exceeded maximum allowed level" \ "Inclusion nesting exceeded maximum allowed level" ;# <-- NOT TRANSLATED YET ##ID:001721## mcset $l "Macro nesting exceeded maximum allowed level" \ "Macro nesting exceeded maximum allowed level" ;# <-- NOT TRANSLATED YET ##ID:001725## mcset $l "Invalid argument: %s" \ "Invalid argument: %s" ;# <-- NOT TRANSLATED YET ##ID:001726## mcset $l "Extra characters after control sequence: %s" \ "Extra characters after control sequence: %s" ;# <-- NOT TRANSLATED YET ##ID:001727## mcset $l "Control %s has been overridden (by compiler settings)" \ "Control %s has been overridden (by compiler settings)" ;# <-- NOT TRANSLATED YET ##ID:001728## mcset $l "Control `%s' expect exactly one argument, but no argument given" \ "Control `%s' expect exactly one argument, but no argument given" ;# <-- NOT TRANSLATED YET ##ID:001729## mcset $l "Control `%s' takes no arguments." \ "Control `%s' takes no arguments." ;# <-- NOT TRANSLATED YET ##ID:001730## mcset $l "Invalid argument (must be integer): %s" \ "Invalid argument (must be integer): %s" ;# <-- NOT TRANSLATED YET ##ID:001731## mcset $l "Unsupported control sequence: %s -- control sequence ignored" \ "Unsupported control sequence: %s -- control sequence ignored" ;# <-- NOT TRANSLATED YET ##ID:001732## mcset $l "You are using unusual directive 'BYTE', consider usage of 'DB' instead" \ "You are using unusual directive 'BYTE', consider usage of 'DB' instead" ;# <-- NOT TRANSLATED YET ##ID:001733## mcset $l "CSEG cannot take any label: %s" \ "CSEG cannot take any label: %s" ;# <-- NOT TRANSLATED YET ##ID:001734## mcset $l "Missing `AT' operator" \ "Missing `AT' operator" ;# <-- NOT TRANSLATED YET ##ID:001735## mcset $l "Argument value out of range: %s (%s)" \ "Argument value out of range: %s (%s)" ;# <-- NOT TRANSLATED YET ##ID:001736## mcset $l "Invalid expression `%s'" \ "Invalid expression `%s'" ;# <-- NOT TRANSLATED YET ##ID:001737## mcset $l "Using `%s', but active segment is `%s' (should be CSEG)" \ "Using `%s', but active segment is `%s' (should be CSEG)" ;# <-- NOT TRANSLATED YET ##ID:001738## mcset $l "Missing value" \ "Missing value" ;# <-- NOT TRANSLATED YET ##ID:001739## mcset $l "Invalid value" \ "Invalid value" ;# <-- NOT TRANSLATED YET ##ID:001740## mcset $l "Directive DW can take only one argument" \ "Directive DW can take only one argument" ;# <-- NOT TRANSLATED YET ##ID:001741## mcset $l "Unable to recognize character: `%s'" \ "Unable to recognize character: `%s'" ;# <-- NOT TRANSLATED YET ##ID:001742## mcset $l "Argument value out of range: %s" \ "Argument value out of range: %s" ;# <-- NOT TRANSLATED YET ##ID:001743## mcset $l "Expected bit address: %s" \ "Expected bit address: %s" ;# <-- NOT TRANSLATED YET ##ID:001744## mcset $l "Label is too far for 8-bit relative addressing." \ "Label is too far for 8-bit relative addressing." ;# <-- NOT TRANSLATED YET ##ID:001745## mcset $l "Operand value out of range: `%s' (`%s')" \ "Operand value out of range: `%s' (`%s')" ;# <-- NOT TRANSLATED YET ##ID:001746## mcset $l "Value out of range: `%s' (%s)" \ "Value out of range: `%s' (%s)" ;# <-- NOT TRANSLATED YET ##ID:001747## mcset $l "Invalid label declaration: `%s'\n\tLabels can contain alphanumeric characters only and must not begin with a digit" \ "Invalid label declaration: `%s'\n\tLabels can contain alphanumeric characters only and must not begin with a digit" ;# <-- NOT TRANSLATED YET ##ID:001748## mcset $l "Unknown keyword: `%s'\n\t`%s' is neither macro nor instruction nor directive" \ "Unknown keyword: `%s'\n\t`%s' is neither macro nor instruction nor directive" ;# <-- NOT TRANSLATED YET ##ID:001749## mcset $l "Invalid bit designator: %s" \ "Invalid bit designator: %s" ;# <-- NOT TRANSLATED YET ##ID:001750## mcset $l "Given register does not belong to the bit addressable area: %s" \ "Given register does not belong to the bit addressable area: %s" ;# <-- NOT TRANSLATED YET ##ID:001751## mcset $l "Invalid value: %s'" \ "Invalid value: %s'" ;# <-- NOT TRANSLATED YET ##ID:001752## mcset $l "Invalid numeric base `%s'\n\tPossible options are: __H (hex), __D (dec) __B (bin), __Q __O (oct) and 'char'" \ "Invalid numeric base `%s'\n\tPossible options are: __H (hex), __D (dec) __B (bin), __Q __O (oct) and 'char'" ;# <-- NOT TRANSLATED YET ##ID:001753## mcset $l "Special function register \"%s\" is not available on the target MCU" \ "Special function register \"%s\" is not available on the target MCU" ;# <-- NOT TRANSLATED YET ##ID:001754## mcset $l "Special function bit \"%s\" is not available on the target MCU" \ "Special function bit \"%s\" is not available on the target MCU" ;# <-- NOT TRANSLATED YET ##ID:001755## mcset $l "Symbol not defined: %s" \ "Symbol not defined: %s" ;# <-- NOT TRANSLATED YET ##ID:001756## mcset $l "Reserved keyword used as label" \ "Reserved keyword used as label" ;# <-- NOT TRANSLATED YET ##ID:001757## mcset $l "Invalid label: `%s' \n\t(labels can contain only alphanumeric characters and must not begin with a digit)" \ "Invalid label: `%s' \n\t(labels can contain only alphanumeric characters and must not begin with a digit)" ;# <-- NOT TRANSLATED YET ##ID:001758## mcset $l "Unable to overwrite already reserved program memory at address 0x%s -- compilation failed" \ "Unable to overwrite already reserved program memory at address 0x%s -- compilation failed" ;# <-- NOT TRANSLATED YET ##ID:001759## mcset $l "This instruction exceeding code memory capacity" \ "This instruction exceeding code memory capacity" ;# <-- NOT TRANSLATED YET ##ID:001760## mcset $l "No instruction found at address 0x00. Consider usage of appropriate ORG directive to clarify correct code placement." \ "No instruction found at address 0x00. Consider usage of appropriate ORG directive to clarify correct code placement." ;# <-- NOT TRANSLATED YET ##ID:001761## mcset $l "Label was already defined: `%s'" \ "Label was already defined: `%s'" ;# <-- NOT TRANSLATED YET ##ID:001762## mcset $l "Overwriting `%s' with `%s' (according to your previous definition!)" \ "Overwriting `%s' with `%s' (according to your previous definition!)" ;# <-- NOT TRANSLATED YET ##ID:001763## mcset $l "Too few operands, %s must take exactly %s operand" \ "Too few operands, %s must take exactly %s operand" ;# <-- NOT TRANSLATED YET ##ID:001764## mcset $l "Too few operands, %s must take exactly %s operands" \ "Too few operands, %s must take exactly %s operands" ;# <-- NOT TRANSLATED YET ##ID:001765## mcset $l "Too many operands, %s can take only %s operand" \ "Too many operands, %s can take only %s operand" ;# <-- NOT TRANSLATED YET ##ID:001766## mcset $l "Too many operands, %s can take only %s operands" \ "Too many operands, %s can take only %s operands" ;# <-- NOT TRANSLATED YET ##ID:001767## mcset $l "`%s' changed by compiler to `%s'" \ "`%s' changed by compiler to `%s'" ;# <-- NOT TRANSLATED YET ##ID:001768## mcset $l "Invalid set of operands: %s %s" \ "Invalid set of operands: %s %s" ;# <-- NOT TRANSLATED YET ##ID:001769## mcset $l "Direct value used as operand for %s" \ "Direct value used as operand for %s" ;# <-- NOT TRANSLATED YET ##ID:001770## mcset $l "Too many arguments, \$s extra argument(s)" \ "Too many arguments, \$s extra argument(s)" ;# <-- NOT TRANSLATED YET ##ID:001771## mcset $l "Too few arguments, %s argument(s) missing: %s ..." \ "Too few arguments, %s argument(s) missing: %s ..." ;# <-- NOT TRANSLATED YET ##ID:001772## mcset $l "Cannot define macro inside another one -- macro processing failed" \ "Cannot define macro inside another one -- macro processing failed" ;# <-- NOT TRANSLATED YET ##ID:001773## mcset $l "Missing number of repeats" \ "Missing number of repeats" ;# <-- NOT TRANSLATED YET ##ID:001774## mcset $l "Number of repeats is lower than zero" \ "Number of repeats is lower than zero" ;# <-- NOT TRANSLATED YET ##ID:001775## mcset $l "Zero number of repeats" \ "Zero number of repeats" ;# <-- NOT TRANSLATED YET ##ID:001776## mcset $l "Reserved keyword used as macro parameter: %s in macro %s" \ "Reserved keyword used as macro parameter: %s in macro %s" ;# <-- NOT TRANSLATED YET ##ID:001777## mcset $l "Reserved keyword substituted with macro argument: %s --> %s" \ "Reserved keyword substituted with macro argument: %s --> %s" ;# <-- NOT TRANSLATED YET ##ID:001778## mcset $l "Macro name is reserved keyword: %s" \ "Macro name is reserved keyword: %s" ;# <-- NOT TRANSLATED YET ##ID:001779## mcset $l "Macro `%s' is already defined" \ "Macro `%s' is already defined" ;# <-- NOT TRANSLATED YET ##ID:001780## mcset $l "Directive %s takes no arguments" \ "Directive %s takes no arguments" ;# <-- NOT TRANSLATED YET ##ID:001781## mcset $l "Label is not allowed here (%s)" \ "Label is not allowed here (%s)" ;# <-- NOT TRANSLATED YET ##ID:001782## mcset $l "Value of ``\$'' is not known at this point" \ "Value of ``\$'' is not known at this point" ;# <-- NOT TRANSLATED YET ##ID:001783## mcset $l "Unable to close macro, no macro is opened" \ "Unable to close macro, no macro is opened" ;# <-- NOT TRANSLATED YET ##ID:001784## mcset $l "Invalid label specification: ``%s''" \ "Invalid label specification: ``%s''" ;# <-- NOT TRANSLATED YET ##ID:001785## mcset $l "Missing name of macro" \ "Missing name of macro" ;# <-- NOT TRANSLATED YET ##ID:001786## mcset $l "Labels are not allowed before directives ENDM" \ "Labels are not allowed before directives ENDM" ;# <-- NOT TRANSLATED YET ##ID:001787## mcset $l "Missing file name" \ "Missing file name" ;# <-- NOT TRANSLATED YET ##ID:001788## mcset $l "Unable to open file: %s" \ "Unable to open file: %s" ;# <-- NOT TRANSLATED YET ##ID:001789## mcset $l "File not found: %s" \ "File not found: %s" ;# <-- NOT TRANSLATED YET ##ID:001790## mcset $l "Extra symbols after `END' directive" \ "Extra symbols after `END' directive" ;# <-- NOT TRANSLATED YET ##ID:001791## mcset $l "Missing `END' directive" \ "Missing `END' directive" ;# <-- NOT TRANSLATED YET ##ID:001792## mcset $l "Missing address" \ "Missing address" ;# <-- NOT TRANSLATED YET ##ID:001793## mcset $l "Label already defined: `%s'" \ "Label already defined: `%s'" ;# <-- NOT TRANSLATED YET ##ID:001794## mcset $l "Invalid label: `%s'" \ "Invalid label: `%s'" ;# <-- NOT TRANSLATED YET ##ID:001795## mcset $l "This ORG has lower value than the previous one" \ "This ORG has lower value than the previous one" ;# <-- NOT TRANSLATED YET ##ID:001796## mcset $l "This formulation is deprecated, consider usage of \" \" instead" \ "This formulation is deprecated, consider usage of \" \" instead" ;# <-- NOT TRANSLATED YET ##ID:001797## mcset $l "Missing name of constant to define" \ "Missing name of constant to define" ;# <-- NOT TRANSLATED YET ##ID:001798## mcset $l "Empty expression" \ "Empty expression" ;# <-- NOT TRANSLATED YET ##ID:001799## mcset $l "Missing expression" \ "Missing expression" ;# <-- NOT TRANSLATED YET ##ID:001800## mcset $l "Argument value is out of range ({0 1 2 3}) : `%s'" \ "Argument value is out of range ({0 1 2 3}) : `%s'" ;# <-- NOT TRANSLATED YET ##ID:001801## mcset $l "Missing size" \ "Missing size" ;# <-- NOT TRANSLATED YET ##ID:001802## mcset $l "Length of data area cannot be negative number: %s" \ "Length of data area cannot be negative number: %s" ;# <-- NOT TRANSLATED YET ##ID:001803## mcset $l "Using `DBIT' directive, but active segment is `%s' (should be BSEG)" \ "Using `DBIT' directive, but active segment is `%s' (should be BSEG)" ;# <-- NOT TRANSLATED YET ##ID:001804## mcset $l "Using `%s' directive, but currently active segment is `%s'" \ "Using `%s' directive, but currently active segment is `%s'" ;# <-- NOT TRANSLATED YET ##ID:001805## mcset $l "Exceeding %s segment boundary by %s bites." \ "Exceeding %s segment boundary by %s bites." ;# <-- NOT TRANSLATED YET ##ID:001806## mcset $l "Exceeding %s segment boundary by %s Bytes." \ "Exceeding %s segment boundary by %s Bytes." ;# <-- NOT TRANSLATED YET ##ID:001807## mcset $l "Nearing %s segment boundary" \ "Nearing %s segment boundary" ;# <-- NOT TRANSLATED YET ##ID:001808## mcset $l "Overwriting reserved memory -- in %s area at addresses: %s" \ "Overwriting reserved memory -- in %s area at addresses: %s" ;# <-- NOT TRANSLATED YET ##ID:001809## mcset $l "Unable redefine constant: %s" \ "Unable redefine constant: %s" ;# <-- NOT TRANSLATED YET ##ID:001810## mcset $l "Ambiguous symbol definition: %s" \ "Ambiguous symbol definition: %s" ;# <-- NOT TRANSLATED YET ##ID:001811## mcset $l "Unknown operator: `%s', should be `%s at

\7=<W޻woݏ?޻w@}R[K ~;22r˖-G}gd|xuaˡJ9WVVlD|M1` =(ǹn+矆_aEQ4uf>jժB;s@_*$ş$Ij4!ob1h p22 6΅#Gi^6&88800Pwdȑ;w?~vPXsk_K uJl;*Jh {x3ܾ]3tvt*+1DNNk  p|]U=~XV}L&քBX}L3` (+48//Ξ=L'øqp P s;v믿$0f .BVPLvSaC:{ٹhοc)><| wW/k܊L޽{KKK-[xgL6{_&͜9"" 9k>aapS~K4Zh;L0A*d2Ll4`C0e $%UmuJr9ro)HWn >nCF|ɓKh X, /熬5w۫dڵ0u*ܹԀiz Æ5 /^=Ɣ)0j,\}ƍճʬYз/lk<#n<?֎ln>Ν;_KѿwYw?R35iӦbR>Я|5@]&/??„ ˖-d111k׮=\=a4`˖}K4 ?Z>|\o14_cqFo.++5k[oU=_ý{з/\ kT3V?/y 3$H$*65,uCBjġ\ п'ɆL5XzX?~h `CzC^G%K@o o@ԩp0'Se8B55GB۶M7 GɄ5k޽8 ToyBVF;ab[!-zЗjbY8iÛ[D/MZX~5Bk7l}YCzC֏a8B!B&oB B!̇8B!Bw׿;0G!B&pBB!p ԩS#B!M`8B!Bt&L{M=SIa B!Qd¡)!B#B!dT=Zނ> B!S7hQB!zyqB!lqB!lqB!lqB!lqB!lqB!lqB!lqB!lqB!lqB!lqB!l7ou1B!z0$ˀB!K B!d#B!d#B!d#B!d[ܙV{IENDB`mcu8051ide-1.4.7/doc/handbook/img/004.png0000644000175000017500000001737212067167647020230 0ustar milleniummilleniumPNG  IHDRx0 pHYs D"tEXtDescriptionWindow Class: main.tclaH-tEXtTitleDEBUG : test05082010.asm - MCU 8051 IDE"#EIDATxy\$vd)[EJ R}Zgֶ۟ʫ}jյbk]jڊEZWpAQѺ)< –3?HBHHbg10sg"=A 7JJ .nX¦Sz麉v\|X.Si0 Q2.p~φ&3bs8i(4uUI{ZXUs:}mgܪi>u"Q]V)A#h()ԍ[NQP-~c .W;|J,a_ ,nT)JfSgm2ưKr I^n썧{48s*mzƗHV)n~Ɩ[0b%cf`7vz0 ,:/pP'*D:JW:$373-$DžaSfaԴwX?(M ! Uq]c81 )Wj 5Ir vʬIީ8pϕYܩ .k[+lTH/aPHSe>8?ժV U%2C*SKGbAKךǯ<%p5ׂ=31maנ$d\?֗5.$vOwq̗;$KMHcb& XBMH?+kmi1ЙKOd03yq|14Bv@9ymFtɌˈ>ї>\7WzSLCtͅR?~ B$))I_H"eɘJfVU~nW?{t_K,_xH$JNNκku%7A ((( %kL)5]\A2uUrfwt^sC$Ξ={߾}k֬͝6NUNҺZIȼ_[=6/4Xq# /+ t:ݠD7Ia @.~`Đ\7^Z,<:TR]>q)g̐;&DE9԰դI@ͥݽtv}Z-H-BkK`{ 2SJe{[mK7oFvwf4`1.C0RY +vww#o?UR*5Me _|jԨ{0@$+kGf֎-ϒ%;;[33~޽WVv""ƾ!0gUNwɂ>"Q!PhVݤC,x (koUʻBFrfC}m ]hCffB! & K'd?.cSd,{i%ef6ddF1kܶ|VVMrڲbfhK2gwtʛ; -%% L6'(rWhΝ<kgg^JJj^^&>}w8a7^P RP`h4ƤX~Ҥ /eu,100CS&rr<<&MZXWWni{=M\V^{&!A'8`ږf|//9~6Rޯ2-(00YTʟ{8>#;;+(>~@}觟y󂠠asqv2Vr$B(K}}]{غgq.Z~kҽ"~>R͍8,32bШgGk,ni^hR(zr)7o> .4n쐐XX[EZ77kjJ=//S%jNwJN^ZV^˖-/oې!`ݺ —'}`XXamſ͋/b%U |ӕVTxޢF:pbÇU.rռ#|hĚw=Ba/w/tvjk**nM&S48d2EV]xl˖||45BiΟ>/ͿRǍsKxKST:3 MGL(߿`AbA@!BÆ_QǎmKH*bWܽd]V86fK~wLyX.1g\O.3*j ڵg\T9//Νë5PhrW%.nÞ{)9YJNM D.nܸ7G[EZ1LMܳ筙39fѢ 54462r\bB Μ9rO?]8gG /رF蹋JK;sz/䝙GO{߿Y&H3ҡ7M ~=iD.WGGwoؠ=yrcO~^mkExhҴW8ڳξ1J=<}a3i bu@'rk\dd%*krY0ooٳ;/^C-}mȱ~InT L::=^yGh@~\B9w\TԽ~|jPM\\R1ЂSX~5y9U@3J^K4k`|&O +:&S5AF"=K/pin?9Tm&MlJͨZp`Ъ&:qc-{KK]bciaaXi4ut4oݸT&i 1ގѾTW;xg7!21zH}FPTr8c:Zz:P Glw_ʡ}5׮UMb0:>v*чJL²VzEM'80##e]ͦPd?hP}}ITժ γsl\#V~uYEOҘA,}׫?j2˛@LAVݦ7u\i}$'#3WyL*`!74T*j\ I%kI%˥nuOrTJ|n25o=873jDz)O3;pVr\SnY׹+hگ?UƓ ssNPcY(lӺ^C\? Εvշ+->Oە2yrÃtwjуXN^<V@d ?UN!\.Dx3&$"FdavW.~\*ᒺv#Մ0G]?իUh%[AyBkD^ n,4igf{L>R*xE Tmn!u _5S/؝ۗeKM o7B0| OZ(V \ qVKwuN:xU^ȣ?/ (jSmZH-a뽍GDml]tqzU c~wM_.̒*M4%ђ1@>-֟CNxL0?w:.<Vkn0|jI!MljY5Z#V.;R@ y^.vFs2^*.IHH@QT{*ttt䤧o޼yɅ~ԑ`y<_~唔I&CG~@0m4Hd2X,i?h0QQ=1T=FKHHx --ٹԙ.&6#-[DEEq8ꦦ&/60999|>0F󳳳M+--e0zhA@@E2A:و9hĢqƩT*4ٳgOww7☘۷oeauuu999۶m?TWWW{̙L&,)$&&._رcIII6mgzLΦz4vRd`x7.c6vʚ2hE̊*V>M&!^tt C(%ӧKoIJN}$%ӧKJzv9g ˉ]r[zoGxu4@hLZ ;+ VKCU4c4xQ}FyF˾DJw| O'ND^݋q85kzUM>]tt*UеA!45̚(#R:>HFkRΓ`w/'aP}b{b2MDr Ok 8UhH <'ԛCiTr ~s0LďKR!!n(^*n`[ݭ)vnFD/kcQ}w^т4=]5m} QQ(1{j)3=.Ft6grIw;f]OÎn eCzn͛Bӽ$ğGm6X;ıB͈@cB+D%l<sx|ÔlC*/2ھan,G!rOw+S^&t9R ʤ$`C7LI%5REBz0y9~AI͈HD..L\H$ZOi_BgP$} 3e9}NΝZ'T]JIyzjCN,5nPΟLNj=<=}qƴAN h<6ƥ7ϔC8垝S7c8fKKKKKCJk~ ˁU@p_kt`^G_bw8\bw8\bw8\bw8\bw8\bw8\bw8\bw8\bw8\bw?>|?IENDB`mcu8051ide-1.4.7/doc/handbook/img/047.png0000644000175000017500000005654412067167647020243 0ustar milleniummilleniumPNG  IHDR3A pHYs+.tEXtDescriptionWindow Class: lcd_display3_cgrom_2jMzTXtTitlexp1110PpH,JL.I-RpOK-J,/RUUpOIRp40TUuU005TtqET?- IDATxy|e̜5K$MҖ P& TP7DIJ܈ **⭷oA |UP,.e-BtM4{:c6͞sI#sN'\3s|5^=x+,Ͽ WXV@ Yݓwؽտ2&;ȈdSsɍF𳰜Pv齎a?Vӗ'""R  Wf<5%)]Bv؅e٤I/%͏gk'NWgp7J bơnl_z>A18 tkŷʌݻ%f{o39^xʅ凉 y;v즵ɜ~Yq v٪s9m {y-w(˻ 3XůN/;6rjyZ Wݱ%USA:r=\ܞ u"||RO)UKi?mndAeS@oJ1іLw9-e4cf Zy+ݱ$os9kN KmdPI?iPodz!^tܙ9ކ;\^]&mb'p{j ԏzur9u_2Scғl{_44¶mضX8N{?O殗Hqv852t?3ha{׮{_빜k9X=>w\=׊qYoccI%mlBxi 'g\r\|w>]ZT84c}?BM V#w8ndj8ASe'Uu=.$5YçJwq坵K|e=t;5at=1ߟ{>HزyQkәNPl|ȴle6{\s\yꚈZSVqlGb6L§O({x1mQZ=-;x|.=c&UoOȦ+sU;q]0qZ% ڜ4'Yrۢ0*f<$x>0/ZG:#Ѿ]l"gMNq[1==mT+w?b8GQ$_|.$74{5ʛ=uϴ;{nC+Rr>6ZYL`-.kSK"%?Wf?ܾ]׮sjWn|݇njf\MQÝpmD4aӦq87ȓ~W}Gf}\ZraY.ok?{S ;N/5gAYZvzxvzI: %j',n:J*i/sGyQx)/ۉOK5.<[J`F(wbO6cgV^yq7Scaܽ59}fJw5Q'Or=[YjklN؜tǔkxz{  qoGɄ8V)S,VPOuY\,f2+2'fѲ_ux'T˸cM3.czN>hM߿`GuL5̎2M;ֳ)>*aGp掕-Kq,omŏ ]GWy phw]֝.%(C1Nh=q4]TlmaO$\Wt9jΚͰfC=W!>Mؼ1/ _zw4=opùhVۼeYIrŻߑeQ:$¦5whI3BO(Uz Fd?BTy1X Jj>>=Cp?P[V$ƇCc1md&7nO5c(pl>ݯf^4M)6n*J9l7-qpٰ!C;KYf(íjG'q`bLx\cb1ZIظ>%yxXxN vؐ)d01G?Y8y;a}w{ϳ2܄EU/ {v>6T{?8`W4&}G]<J8w1#{g'V5[NmԹ/59,+7avOZ{TXzDz uv>oauwKFX.[j_NRJأ*6gu.r~ b3(oZC4fwX[g+浰r_Emեp2JpRvQ6֧h;l3Tf˩5+XwPEFDh,;L/]z{#55\|\Vvb&5I%GҼmYr-84 "lmiBY,s=[ɸ0mrVճ=O6(#/`Yܻ ώpsQ\KK.%!չڱ˞6ؕA0vl= pvmwW9]m q`rzֽ rfr?{;VK<>6d&P:PvZPYci,͔af6kLbIi=uut;N6XU|<).&Yx)'ga(c, /D0^l?l[tVdXz NOwlʼnq{bF?vXa?4x.NZ_gG'ʇ8lyVgMO ѐٴ!*qڷL ٔIHD'SnfR*Nҳuub[RKzNgox6tI9XDiM{ MlZ^l6)l1.y>@u?۞o(}ZVoƒLUQ]Ovk?<%̜Y "βEʹ,~ r^H~Z+2[:/)ϗp YyBP^SVN18-k-yaXdZy}O$';lY 7 Ӟyb~xbl>Mnh&Bq,Zm^ )+e)=npadui"hl^:7D6੷[4-]%L=귴1cёIvm 7SdH9tXiZ'pve^%Hz. 4Sp˶h"$ VKăd:^męQ>םaowab^siFi'3ryྏT;FKs]̶3l6Sq Cmr|`JG^%BkG LɜOo}sk2xz'{"ne\7LC6F3ЖhDBI* v4XbVeY`";wv~ hXxEg`Wd2Nr߫}w$^Y3Z-1-c/6eY`GK"ݺqZ){'sR$S :ZZy<ՎK(4f7JdV5?㞿틇mYd,i;>^"kBabwD[ݎ_s9D+oUosJWfj͞~a@3w4N^i[\}!㔸l>q!3V&, ]+e15-s`c!WEy6ٕ{]J5\zb a]:S_ ,p$Χ6Rf9l\|) S+8R ǹhtB_n c1ﰃc+';H:ܱH&rp i,BضqdI`Qb{+PVvqe-( Bxv)SrM) bn#А4%ΆoաdHdӤ22q< Y&兩ϔ=:h$ƧN? :*)Sen,leQ D"~Ee|Rî`R$X2znXdzTV6㹴d]'MmN [Btrj \O%MuEt}_(!m'y:uN_T'b?HĚzmuIaSX5P8B)n=0edIe$ve"x#1&ZQby) I{}EkiI4f=V/`ћlv=C-*TrQy ^kBD@" iRGDZpd:#@*= WNo/!9qs`8.ڝz}lCB.he3k oigՋ{82N)ɝmq({Џ|tھgr?,ie`۰f) Ss:~?7Pҝ7ؕ}L:i{߼=0KO 2j'jckk]\ވzzβiv$;7l/(vF6ʼn49KYRµl"N]̌ǶpMTU ]pXrh wzn.-x6ИA{8)K 0Kk,1bf<,M'y29:_P( WO:tXX{-z9|OsU yլwhio kx9{2O8)ӰCaPrl`wv%~ g4OWthNt%/+y%SB8x:&r*7塗"t5qkժ4$[XČ&rOϵeKY67e l*McsKQMt^d;I+47ɝ[->Eqa!^2q;,JalnI! v:l],\ΓHWZV",D9{Y6v*] !?a 12Fme$0UQ*vYzH5rN@S&Fuޮ/wPqBΜܶ(rˡ7mCZO!9},7K[x$4x!tlX v? =ˍo- \f[i|pw@Ip|kF?Hƍf_ 7p3}߆ll 3]xffnlB_3!+^GęhJ_8Oa^+7Y"ї׸9̢6 }qͻB<䛼؊il,+ĜyHx2wqڽI&:i"}A˰r{O;e//#cє;֝1ĔY,I[a2:~=[.1!u;mq@篡+lne+3{iBG^D⹷㬛u ^%Q5sab0Ф>= wW7s۷1 "e\pќY3Yުo75 ^ )bwam:$2msIR4RJL?[IʈSq7pg[l)DH[^:O7#z:l`G"okKSd7]=wN;RǢ=ŋoW/M컊ѹ4;N[<[뱻QK]g3H鹎wvvuk_?CWΌY^X5Q!m_k >}t5Gu3!.=d^\Եl> )/L`չ]OT[~{5>ƚv8Yo3~:SV/OdsYQI|E!@up&L\`Ñ"n5K&eϿ#qHlgra%T]-=s 70z֤8{r{_ MY ÝȎsյ7,\R(K^ڸk53+!uEGX>u"9v*U!?v.~nnds}Ct;ߵJuG;vh~,l絡g-{_Φ]䥓T :*);amz̐?o,3XV#'ْf/7_tP!B{!2M?7q(mmu~jݑ[2ؒʻG-rfc=a!Yd8[qvy!BV3ژE,n]y8VN3Ӭ ߔRnd8I]2Ãy]̲ÍHvM*6q=";1gX !F6NJsPERBBrlRXd=vy+!i5-{rv9L\<ҞE3y"vӐӽm6 󽃵F`~m0=v 5N%MG+vf4X̓A>1ю {ifng=U@{1-#KelGt,;\OvLdgA1d?O{ʜ&j6Jqh#Bffcj*oXXV:i6f&퟾!vlpKvnL q법ZwO8\ ;9z!Xx^ɔ-wb;q62lu?׌5YN;eEҳZ~Xލq#cG}V IDATvZ~QҋӍSf az!:8d4@ьoؽߝx::c9!ڧ-!:`J '̄SpPׅadR w.lnBSB]$D!eYo"!N1^˯rw-#kx6I/L+aCx4kiu4#vh#L?yI4%t%BgZeũ4uzaaBQZ(Ol J"cCʋLV´YRv$(])2Vai&Y`'V/N&keYdqH"HvimЌuOy"4z%4xMm^hHٿm$ڧ(-C,HE&Vjͦy#ݶ JWe<1C7G5"KluH>~*D|5;,L DDD Wue}[6LP.h@""""kЄɓ', ڳgOFPFDDDdti0#"""3"""ḧHi0#"""3"""hfYbʕpYwG|p~ Co4~ݮǮϚU'Nj }h_t<`achm>Zh; ^q>? 8\x!RcX":-;TWwM˂製>g67+>: p¯n?vr{'?/|6l(OZؿm/?.))| ?p IXee?")?yv?"(m xG/೟p;|>K/#?˿fݭ\_m_QâEq߄%KS W z׾8V}pA̬^wsg wCEEbX>a9­͛SᓟɓwmmAF{}p­kR7Y 0g\pAqp]x11,]G~B{848L0CSլI^Gz/N Sχ[n)`#}v32:sL.]6nTr aҤ§7N<sk_+@xIXz˿RWYYOm-ÂI Ck\rI'I~Qȫ2{ο"#suuǠ.$|睅S*88xᬳ W_O'﹟~S((F mQU 7@vLVKݹ.|;pp~\p~.|rRv!.4inpW' uzҗL˗6{g2嶐[Lo6 `ؽۧо]PW~­۶ ?bGg?+/ 芡[s3UUk]S,eU-| fGMMBzI5|6ٳa˖PY GgA텍aǎ~OG[][f^xO0cFacd 1O=U8/>ϢE~P9Ouȧ?]. B;}鮣.?NuP453'onQL)vTwM'/|E_(kZ6` v57 ^?M7x0o^ac8d746O=b¯W*/ *6,O~>Pڄ'/7ܰ{>cfvU$^g$-mBࡇZǕ+^X}tks3K [QqZ={I\~9|[o-A%6+uo,X>?]zI|Ŋ׭+@b?ͳbժxY rw.>}߸<?ӟ6q|#B)/k /k&M/p1t*ߪ* 5'`ZxϿڦfڷɓH/{+R2}>uOGbVeSMMᾢbP &`JA1p2#"""וs$"""2̈Hi0#"""3"""ḧHi0#"""3"""h'>x뭷s~bP c=,=1h[v]`FDDDM7FFǾc,'>X;5᮳0^dۢB; wG /rO LJbpjfDDDDjfDDD$0T33O0!/?u#/?Vc0!'>3T3c~k#k,5όh0#"""ߚl/8n:*553=tw_g>2f`Lc>vr&FTaB 8>ojfV%KsqanjDDDDf~BDDD|yp=UKaX(A453UU@u:jfL1!Z\p1TCU  b4΄Fc߄|N<{n~3x;aʔBDDD^9\?/ypy]HO7F~jf֬'멦nZ#a|&'0z sa(d!j0XFfSI""""нDDD$T3#"""1 53F?jfv͌ X[8^bDDD$4@S͌jfktH8N6+v0a\k꽙L&̘'Mg&J3Hi0#""" kfDDDdL_2!PIDDDN 4DDDgZ&A4 $ULf`FDDDMi&2^ń@WfDDD$2c&k1bP ` Lh0Kѕ 4 fDDD$tI o4ĚBαpk"j AO0O>a5c/LhPIDDDN 4̈H`ffhw1Q#aB AW1!kfk x ¶/1L"""p̈HNʕ3'J U3SWW\3X3c"&U3S un|`bN!r/V1h:>gfJ>>O~3{l 眓Ŋgtjf.֮U͌D߱RbB &M!ךbhHa[P3C K;-"""$"""5k`u׍88jfLξ H/\]a<c% bt|P`0SSWx"""" 4̈H`hA:jf<K!b/sYCk (xɄ@i& 8 fDDD$T3#"""A9b̷cB6ך2jfaa'M8>43"""h0fFDDD΄9Lf`FDDDMi&ꙖqPc fDDDɄzbDDD$4@SIDD$LW1!Е 8cFcJ1(Šxf4a[f* fDDD$tI o4ibps?h0ܼH w%j$CA>\hQ+q*AۢxJ3Hi0#""" c1riF}bPLSjfLg3F„>m1^43"""h /{3ko"""2n~/ -~;> o5ffy:LkEK &ucb &ڡu}c^ń `B 4pO>MMP[Ut+3W^~&MY ?όw ??G?`EDDd|L-U=[M1AaQc=˂P#1VjfL/Lg+~1^]3sM~e~=|3u""""̪U?N: .7F~jf֬{?_S]7T371vN: vL&Ԓvjj`PDDD$to& 4̈H`<39P͌1+&asOeX1LoDŽcX/̈3"""hP Ls8/m̌9Lh0#"""MH`}IjfrͻFv1#'^v*F ˛7N &l ۡ(ի|aB;L"""p̈HfFDDDC5357Vjfmk N#1\h`&& 걺-@i& 8 fDDD$[3S_W̙_5`Ff{'?/|6l[M1ax)Ƽ&ԫyyb0ʄ}ӄx)F4τv0!w_N; ΅x{e>{VEDDDzyfjk߆!O"""2~-o [VjfL^gB;p`1jL+D0!jLN3] ]hVɓaΜBDDDf.^z >y5 n"BDDD;ݛIDDD#?53k彟SL#sY1;V61L„ق0X=NP+9VFfg1$""" џg&;bjV;CkfL:F)|J3Hi0#""" „\p&ER;LaOœ?cfƄ}ӄyfLhPIDDDN 4̈H`]3#"""CgB 1L"""p̈H)$""@=2>j H PbB 43"""hJ3 *&2#"""g̕hR1(Š̏! wc?ʌ3"""hѤ7 B͌ 9Pb(D>ڄpcH-c?c[^"&C1Y43"""hP  n1"/_vB^%f&*&plbB($"""\}5|+HEDDd+LLK m&̘0DƱ56ļpJD5TcvȄ>jL8F-LF#t5h,)F7Xf߀p-9 Ug,"""'ñVjfL5aT+˵&bjEt|0' CUs 7 ˖!u""""w0}P^Ut{3H`ffX55pu#.53&yE1ߎ hkf/FLu#aB;P0cP!:FJ;HL55zW("""OδjfDDD$0 so2fƄ|ta<h^ńv0DAl&bݚDDD$4@S͌jfa&iX3<##aB/5&nbuk  5&uo&DDD$4@S͌53"""2tA@i& 8 fDDD$Дf i\5`FDD$LW1!PIDDDN 4DDDȄzb]3ʌ 74I1(0x ݬ73Cpn[]* fDDD$tI o4iB`9>  B;#}!r&'x 0O 5TmBqPKV!PIDDDN 4̈H`ff"k^616T3m1|Zͯ2kLDDD$4@o͌BI $3a˖E+"""l0㒒!Ě aQS!iSǥMF-49ۢ󫌗q|hr3. O~kfz ꠲EDDDzo̝wƒ…wF-"""̞ \ztt~tРo Bx7 ׿ۄՊL)F}B}ĹJ;tMpb\uTTyy]Hw2sn\t,X3D"y]Hw7F~jf֬{?_S]7L1a\scff3cB4rGh9'_[2VFfիGB|ҽDDD$T3#"""1/9X B;Nmyf&053J3Hi0#""" „|tF.+iAasm̘c8 J3Hi0#""" kfDDDdrW2^~A 8DDDgZ&A4 $ULf`FDDDMi&2^ń@WfDDD$2Mb*Šc(ƍMlpo:VA""""#n4)"""a&U3w Ïڀ1a?1-_F0?h[/RbB($"""jfDDD$0T33\Q+k|$rLa4|`B^>*&Ԋ_L-4|1^DDD$4@W^ \s ,[hEDDd\O?!4jL &&53cP3cb cff,'MŨ_yf;.X_]ŋߚZho `D.^DDD̜uZ#<ΝykDDD$Ff: NE̽kIDAT; f΄ۇ4Q͌ O0qΟGwv06Lm&nBf[G`$ȡGDDDd0̜}6<\z)TUWEDDDF$"""5k`UlC1&@5ό*"⌄ Mce|; 0SSWx""""{3HfFDDDcɁ 53&c" 53e#&֒:HfƧZ0^j,Ai& 8 fDDD$T3#"""A'&Ä|t!jQ`BLۡER͌953Ÿ^!&Գ43"""h0fFDDD:bJ3Hi0#"""4HL813"""dB 1L"""p̈H)$""@&ԫʌ1WftIŠbP #<5Е 8 fDDD$tI o49jfzeps?7<0!'>ܶ.D9qbԊhT =)$"""jfDDD$0T33kf[XG+_Cc6maB m`B &Qǥ>h0#"""ߚ}xN;-HEDDd.e[P33Xτ P2VrT0oF; 0VۡXw0to[|9y]HwS3s5%EDDDLfφE*"""^ayiر:kXo3ffk=B!r_%XQ; -bԫNc53lb̅fzish?YbEDDD{3H`ffX55pu#΄rA`R01b̘8Oꗊ1#^H>L"""h(<3#dBL籒4!/oB "n& cF"sa>iB 43"""hP L!y$ 1xGQc{~}f@`FDDDM53"""F̈ЙPbB 43"""hJ3PϴLh0#""H&ԫ($"""L"""dB 1̈Hse&7/TA1(rh`M`j]`FDDDM70FAn>r4bnL\s=?^c+9q#`¶P 든43"""hP L1!jB}bO cF„m1/}2mQs($"""Z~kfZ[ᢋ` 3__3s~ʕfN3 537#/?^L!_m9&Hc^\#&1@Lӧé 'EDDDFQ~3l&y792""""#ߚ/`&o"""2.~û ~kVjf'7? jPb/ K&οdB0q[v`[ooh:(.jka4X*+ to& ̬Y˗~nf4ό0L1ZU\^}rd`V EDDDIf{ ,7m(`R;vL);@3l /~ܦa dAD`BC d*llH [ d+am}gpkg`psͽ癛ݚ יYL*4P ١ Yf*\֙Y"f3ZڐBoL^p0ƵPUPU\_0z;c6М К F {s;cԐh3͙i3@C;2ZCb2-UȫT!f3Zf*U*Ԑx24WL&7%L5A f75655MmhCff^5TauaѱyT<'iT.*^F " 5D hdhMfhCff 5T':ljfF s}zNV 5$L@s&3@kff7<'W3b`c-?3sM7%_j']jX^zYtyT5쮆Y<*df*_$Co4'矟\tQr Ʌ&S'z 9[6{ݠxa33ߞw^?$Oz_'EgZ4yӒnK~KNGefvW*23a%3hCWӨ7SsB z]'g5$yMgϠxa'3W\yf$zTL@df~k+9p`*df*P!3Sa 5ЗPC{Tuf53f2:3[[s`HfZX:3 EŌDNqPldf*:R 㰌k3f3Zڐb>aў2j0_0jI}:3.CΌ6К К F {KjHLfִmE_w!1*U*Ԑh3͙i3@C*jH<+dFRԠ5 5-Mē95MmhRfF ԰:6.0^RCbʦC4g2&3!33E_f큯f"5!3S'+28T.}HLf֖9x0y&nJ~I箻833ߟ|w'roN^GhL>lhu:U6uƨaS3juɊaL74\{mr _O~rz dIOJ.,9{{Nr3\|0ef^d?С }1jn9 MHTuYb c|UdEpr&37ޘo~/0˙|sٓu;ޱ؛ hcvom%]\Ll@,36%;Tᜬ WY4KX. fJC7К ֙CLʦPaO,Ǭ]lʵa {3 К ІkO5*{tXWd뫬bm 9 CΌ6К К F {KjHLfִmE_w!1*U*Ԑh3͙i3@C*jH<+dFjPP V wqSē95Mmhcff=}eâ 5"0kC԰h~]t8'+\c'+\c١D hdhMfhCffMVTW.* 33Qaa]3u֙ oOn99oM*9633ޛۗ ̝w&hrI>}.*C̴5]f}= y 5TȊ,z y 㰊{Ԭ1ͣCfµqHh{K^{~=%v2%{$xő>APff2-yl10gf[oM9gޥ&KruъMͫTU<6 Y5̚ cu YE~]!tEi%_\qE_&_b z ;y~7ٿ?y{&?}ɻ=ado&a23ۓ'/;mm%]\L3cCff*ơ:3ITlm%}@!i53u'TBf8aC~BBfw㰌!f3Zڐb_~5^*S񻨐WYto!j0 23x԰ufLfdf6JgfݫPC4g2 l,k T!RD hdhM WPC \'36dRԠ5,~nʆj85Mmhbff5<ƴ˨aabnu9899؏ӘF5$L@s&3@k23@23St?k f$*U*԰} Yuɒ-^{xD hdhmG^?)W$W^9LF[]f}K8#O^dGHL*U*e1뿟G̢١uWt.iT8'guPU6+ɲL{&\|ɩ&_R '$~rK= #mO'H_g$ٷo!33Fq|܎LqX׌Dkbn9Ya YM,g2$Uo%wݕK9 r&3W_=)$DW/0f&3[[ɁsW13Sa y}'YgfkTȳU8*\PE2Oik+9|x L@k23@_gf33cU0!33a*U.uO"5쮆U3f2&3!33Eu$dffE6e /UȫOx>q]8]CqD hdhMfhtfؽ 5$L@s&3@kLζ̢֐@K*jHLfִ y 5$͕y2Sa A&5A j\ì1clPL<3Z$F&ef0F/xc<|W<*faڿ_E :O&L@s&3@k23@23SH쮆1pЏx>l8tX_B^eq 06М ڰ(9߿x̼]əgy}S?"3*@WY/l@|¢k:̣9YỨX4Uau.*CſV]$h򬳒׾pBgRx眓rRG>{'7d2,6lo'Vr1ӨЗߔĢ}uPOp]TȳUTbf:3[[s`HfZX:3s繊~tu5+Es EżJNuf^]D hdhMfhCff 1z 0Qao TU8';|XZ7cԐh3͙mW!VD hdhM ٖYuhB^B 6М К64T!Rē2Ofl45A jP К К&6Jo4)3S;x׵ Ej]Ta1+|cc5$L@s&3@k23@23Szf"a֞!R!CxB SPì߅{ufdhm̡Cɾ}YJcJ?~{ܮ>R!3a 'lj>B?zsw1kgaS֙Kb]ɲ6;99>"3s*TVT 5,Yq㪰2Tďf͙ٛ hcvom%]\L>+a+*C}4ܣ3s0g0$5խ33}yeEWdqq Lfdf6dfЏPC~*=0IP Eì58T!f3Z(vbjm&95m&hhg[f]kHLf y 5$L@s&3@kLPJOfLfLfLf֎{V]\69ɿU T':Nf~׏Y\K|`Bf_1t-6NIENDB`mcu8051ide-1.4.7/doc/handbook/img/023.png0000644000175000017500000016650512067167647020234 0ustar milleniummilleniumPNG  IHDR [Wp pHYs D%tEXtDescriptionWindow Class: hexeditdlg0C4'tEXtTitleCode memory - test - MCU 8051 IDET IDATxyxEǿ}}$@8A꺮׺+*"xªx"h! g!!w2'ÐLfb}y晩[UvUWWS̘> @ .23z`iS{RC •ǫA)Km@ W>[PUݮKk @ q'PTǎ},a32rsrh2E p\qm<?z4~>} գG/},˵s@jue(D@ Zp#ς4Ϸ}~w1nc=l6Fl6kݺu-2+CQ ˡ5N ~1.-+KO5g(m?ҥEO-u`0͍2Qd2MWB q 3gN:ŋ.!!Z.86/8]-֔+>qx_CK1c*(MTH(i+C!؄`ї z&"EnɒJHS[/3gN25%>O4ݹStFFܹo'V5rIt߇'O?uu;{a04m2;u5{7xW_hz *{waq֫i!7 ʒ$ghW\7睹.kO<1gegg7T 4 '܆#ϲ,5T=kU2(漾vy&u_HJҗчc8J&HȸQ*D$B=g= =weX2:wЩc뒼޹+,,dYve7-5m̘() >6I?Ysaz̙<4puZǧ>R,>Č;z} Eh}on=kzhї_hٽ{C=䓊=ϟOGsyIxkh*dfWzɒ%d2z-cǎ1''7bZy~}6l>''Og0|݆_GM!Oٙ%D^tDxN_cȠ6ÇyW\ZKmƍ3ѰiF_7N2Ĕ䤛oq!< N"8"nM5əO4T I!U{~1lBzw:ɹi׷Kk޲Ҫ)6ZR:޺{3Vqi*4Ү(mMQ* ױc0DPp *'^^h$r{=.4Ͳh5YSVh=4M/ڷw.Ț{~S{ssy\sλsުO O(Z⳧?`zښ|~("E!E8{vkO}o~UQVJQ$[6mп@ze?x/#6nw̛7o)~4W^jזq"J1-P4l۾sWTT?~{PnwS3"X'8)M|qK߾E-7cYVo0wbeY9O/XIo KьNo@S ՠklZ~;\Tr:U^o4RhaW+Cݞ_ :R>o}b Wz/sz k4M3 0_~?쵞o-NJgDžC~{*?l9C~$B=s|w jzF4aq?{TJJ҄[}‰ohvsߝ2TRR-Ǽmڴa)xo;?))PhpxӯO%Y~ dYקϚ׺5Z%"wZԌ=B}^u63pkuf I:iOh4Ϸy˖ߝSNeY=qX-fl%d)DcYFΙVzzj- w>WV5pP2.gSP(RꋢzjO>⥒$u!KN(YV՚LF+Kd)-?XZϝ;)EF@7\nIdY$OM(JsfݢEÆ+^IqF@dvEQu2I/Y;Ը*+ku:ɓ%?amF ϥfdtB~vSzv&e3 I(X!O*Ǚ(}!3 @= 7 6dK ݹ=6$Ӳ,<0,0^h4 -Fi67v;&kh\P;}NleYAf3,/# R%{~l8tzB}U ͌!4,=޹+VOnӝ䲲s ܾ{WߔNjtHu;C+lqGڷC(NA"hlE!uּܟw2OJ(m諪*SRRd@eEEvEIfglbY (H, Xq*u#ei[0AZFZj%b9e6Y+**S3R[ ʴˏ;S7H74_YF3zԌLf;ަMs)fiƚBQ0AQe4h*Lg;vbhZt(ZAyR_4.8 g  u}r>*pKi)"=+LƖ-ӆ 띓J2G*l^ur O%@C*9Rӏ[( -#^H )ǫ$JF| sQ>*=ai@xLM0"1k&/B:~vyfVg5zDo3,ŰyVEjД)Lf+vޥ1,I)FQ`.́ ~ȴJoпˏAIYFys^?55Mfn+V4 5|yk,EaaKxܕUKd Chijᄑ55 T|}{ ɢ ( (4݅"@SNse_[2t`Xz%)5CLfa.y?Ckچ+bsؾoyi[vu+eJ4? .dk+ֺO*^'%aTn aSB}u7Y+ CTht~bB4 Ck'f|Ţ/eM6Ǎs;O̘+?jXu30 Mx| /;hlqӧϙG<|jjѣMMcKT3:"v1bHki|@׭]?zM4MiX-hL%QƎ=gi~iOϏ?!IR6mOI6ss"ΝTIx9Ppl'~/=b6|ؑ#(Wio,gsNSy}+~N7n̘^=a=`V(摊{w߮2? $Ii2M&k.JZr``^e=36ʢKˡ5iS>h.!m\Q^2m/ jw_|c.wzQ2k[Uݥ%;q-Zt>nzB*JT]3+Uǎ}ۏ{N %DMk-6{ ju,њ C{YXFg0)&3E>jt L3,>(hj$3ZS)MDZI-]6hɨ74mEikq(`jh'auFB(j Z,FL48%|fÞ2^j|^UF7,[R|eV(Zo0A|^7 ьN7) _@(a3Re08xza.X֚ly(0V)(nBIdYbīFZʲ=Qq8]IDcCݜ0>7QC[{䬾Kn>Q9kշ2('nyN_ 3B[\Bl֢«` dhf1 C[SN ;HĈ^322ӬFVۨB7KH;M$#F$ RS3u+2l d1,z6TT}\4N}MCָ7 ̄*6@`D>LJܬqtyEo56tk?!BPPuU9I^CG87 MQbL7  :{$IO^;bM C &A4zV@rhnCTo~(z^(x<ӕ؈BHR8'7'܆FKrrC;t41v>x )9+C!X@'G;~Ȳ\QVfw%I>MV5-#+C!X@'І;G~(fef6ˌjI+[@ s9Ɖ!0pD@&C:xgラ@ |vnpd^.@ M @ 45K BSC/@ M @ 45K BSقhժUaa!Cݻ_~qZPOf;v,xlt ~YYf{ᇃOnN:1z u@ y`Ŋ]v E'Lfsڴi[,ˮ_yF@N@ IT#f9)'Oٸqc^7o>~g6ʈz 3gN^^^۶m}e@r(\s;W3inݺmٲEsvڙL&W_}եK͛O4T lzy$!@bw}ѣG;ut)ϙ3g;vعsgK.efFcY3f˕+W3fÏ?y󊊊Zl9up'<@=ztvK,i7|3x!CLg}&z#;u`ʕ{5\OG/#F[yYQF,;vl~fs=zސǙG@ Duw;wV~>|֭꫕z:999J#wVVVC iݺu:*\uU?crrr-ӕ~rr` zy$!@T޷yYYY*;l'$IڳgO 7OOOLH>}tR*7n婩agiii'NP~x<ǙG@ $M7ݴjժ[|ٳgO>]F ѣGf q\1bDAAUF|۷\oC 1 !S3@ Hmݺ[o5y֭[_~>vضA,_|РA<Ȅ !C4]ջw(<+v1%%%333ꫯ{ケgΜ={6ǙG@ P3Ocw^j{@2ٹ}[~۶m-]HV$0f5 JT!&'D BD95#@ d@ x_@ } @hj%!ޗ@ x_@ } @hjzwdGT...- ai:eAuz;Ӈ)zcEc5d&&_M\%ۮ6H).(JhO_M{x6mJ@}j4Շ(m Z6{yc2.Ϋ7ٻ轹k~kD2G^4Cjī_q,:Vwrd$^V:uO6L<:!bDIejV۶.=hpUVJKGkjP}u?33pIy߲ ߧ_bhwwIM֥&Xָ=xx9v-)q{ٮ%`۶+{}w9W^hJ`7O\.5dYv}a8ZsZZΝێrt(J@ ._ݧ>CnSyL8SEq2Gq/3'd4$r)`K24o<%':9n v7b6?JrCk6y?G~d2>hl?m66n,RNffںt۷M^Y᠋ٓYҘ,ˀD/@ \:ut}͛7o߾}+V?~-Rw9^e3,˲*ʷ Վ*+Qz_Q[nV+r@$9VkS̨b9\ڣ.5.FףAI/)ֻ7_z)XNgҭrQ[g8p9gP@ @FFƍt:>5kΜ9k1_׉' I]99ĨYv By޴ÒAՙdi2~q^ADDAAEgu\jE}NQD^QLv,<) Y~Or9>@ `&jul^Cni#Fn˖%%i矫6o hýk.:@ birh5k]wURRo,Z#FUoָ=<fIBv~sW`h~9xyAyAyDx^xs8|>8T/Q]W7@uWߗfS"qO[CDѱ!2MQ,X;wpl6v$IMӌƹEQ 3;u\+} A=O}$Ir\!4M ~O7pq-_>=} jGzd$$ $ʂ(I槪 #hӓ7$AǞZCߠm<'p(IѠDID(YвȢ^4 ]|Q/r(Iɠ4 >`Şmdpf`>v,jJ]nEFZ/AeY,)W8YnR7,ڪUVے<*[lڵ>eee;wi߾u׿~555yfgg7 To˳ۥwmɦݒdWv׋?oӰ;A@Ѩ<~笙~wBxN3rՒ$y_eex$Eu\044uW,D2Mt2Ȭ+@x<nvc"ĉz8E-e?OJe%3pd ը U5bE],L{ڦh8}Ax|…qUߗu(zy[Dalr.r{IJ+2v;Ode;ubogin@;$MQ|3gA(%=qdɒӧۧy?S8Y|I0(9rUW]nVqPJrπ.V Ma{zĹrB,+wS)997d1?GBne4p>EN}T8ɒD/@ \T.]eo֬YΝ;7cƌ+Wl5"z֕2i{՘l. >-%p{e|IZ& ZIg88AxCQ ^Nh qq|}s:4-Șh$B[d:䜮(IeY9xI0 m4ꓒ+igAƏZe+,t:U}g.j{pSi:yޗ@ GuU^зoѣG??h#^Ddwaj>\3UU)xZ9h9(TN8ޚݵncv8:ZwmYY,>7u[Jk$q:q<',[,FjuiV'C~8yEO M<}]=5{kMP-eiZ$} !NYWxgo(+EQcǎ֭~;a&s"Sk&[[ ,e+4r>{lji >#)rydIyAzVF9h<{<>#iXDQ$med~)'{-)JEAfMļaPe `iaٮM~Ԛ5;dzMT߾8KJN͙3l(J"s ᢱ~zeI&u M=91cŋ'A(rf,<^iOD9zg^i8NtKcӬ^/ ɂ Ȳ ˒$EsQ}9\ʜ={y?Β& YjYQxA2[iRda){4?曳Fȑv>zu{Q^;HQ@ $6l0p„ &L}wyCݻwf<9zԼ-8;;B`YZ$YE9a(AWs$Y#qt*ӛ9{.Zju9v~YS/o̘4$r\kvxmp?G7o u`mܿXAJ"} 5[Y0 2dI|<>ㅢ#ClW|(;Y$I[#d{O>yg4oz <?xBEI I,T>ZE 2xiLSun t.ABVۚe:KSEQ552IQ9MS3VdI\K $ /J$$.|sĬ@px  0~\] h5ƍ`1N-m((S6( (n?QV9jԥ@ }Vo2;~k x-֕+\aVc xɋc@ O .֖-GToJ%9@  JjJƱqFd/=R]]}R\ٹ#ˊ!._Pk{} {K mV V4rߗ@ x_@ } @hj%!ޗ@ x_@ } @hj%!ޗ@ 悵*RA M˞ܥ6#jN{lMV$K<`Km!ƍS'}%{?=@k|9B8褾[_T=bB-"Ăk/@ MR7+ z!) v;vĉlʀxͻiP*+QX~t튼<$'Q]={PT :X55 /ٸGe=Ѧ t:8g=Mz<쳸, ]l˅{o_\j4^ЮZTWcN>6)):ii)ne1UW!=>-[%ئ ibȐ? bht^/V'8 Q+zn. ł~Ю]\{kW,jjo`6t:hPS:uǫv~B둓 iF#rs1v,5KBۿi~-mKؒ4MhT= 8^ s^.ji|?4DZa B^vņ q(&q0 n -[cG=`Qv@y9X_lx4 Q+t)f(-ڵzb]MvpT\֭ط]h.>M˗}Kt邍2E a"3e\pMh uL/ؿf3:\ QĀHKC߾X<^~CywGTi뚷k>II͒<^,'bK&z Ww"dF,c*EGsz2F#&MV~ǠAy|N 8xQs{3+?'ŸDgΠeKq 8ߍp%ot(@0 *?^1 ڴy^]PbM Map qYG>Ğ= {EeN~;Ɠe*ƍCFFq &`7JP9gϱ=fJޒ !mV*5.\ݱX"Ԃhs 68hO?@n`Yt;wMlF#XL ,X;+CʨHFPR MX8|8FEvm6h w݅{a`<)m@ÁsTp^X?nsl|1V# lȲ,aH7MZTgw ƞ9^yxA44 H-ecl.$d%&ӆ5.\݉X "%32gD(B8xh7 eeWl6rgy}Fǀ>C` Aj>ՊnW A꫑ի7>1V+hkDD'Hxx5vmn+ik*HJBn N:A$ACv8~2R4ӚT,LI^*xBZRS#_F<\eeQ͐RTZj+H,Te|0w ?Iyxw{egb͚"*m]lµ$ۄ;zڰƅ; byY2,c!Ky FeUؼ!Iش,C"_)_l ȱ2>ąy ,ͣ RdB(*4p8K ѣG삁KCgXRe*t*))Y8UFFӚB q=~#E_PBR^,1 ABaGl\-B0.gXں(ڟDMW!k\^ "g \^}_Т0ꇫ|\tX* 1Z-m8v̟ݻ1d.Q0) ,\ M#pvl݊ MC "$ 4980aDTP!'4+8x0F^bdfbh /]p ؿ{Cz%6"+G޽ *(s[FLkٳ *dFnE@2Qpfti2YXo7E*rOi zlFf6,RPEz2 Q O(aDT:y//p~W{y˒$mJV!kz W /Jf2RZ{ wmyN޽hmw/hZ;(FSvPɲ-LJ2ռ}{o߹,C_29t( c*+eT"oڷGvhQmcq>ߡN9V\6w˟FU4Ԝq'㨺\-[wm݅}_@ ~ K BSC/@ Me4*;ኁܽ }_@ ˢX&@ ~k=fm9*Hߗ@ x_@ } @hjz߬,L{ĉ/ަ,M6f͒V#ݸqcnz}׮]ׯ_M~nݺ1 sz~lV;k֬h4 +W=X1,K]HWج^j@QE< EQ?xTUpʔ)6%+ $~ÄuHIСXܿh73wܙ3g>CݴiO?m4LرcF6l/;vϞ=ڵSީS,Y2p@g7Mz[lyꩧ:vw5k|4vUy U wkYs/B<+oP^u)e-KbaaÆFz~ذaF.:+v.\3jԨ@d(H \$ĊM0 fdd 2Q8Xn0SNtk׮mxB,$\ل(4D5kf͚?\ئMիWa݊p _ۻ^H+Ip:a6jݎ$p!);yd!;v?~mmmRRrs(Iu԰F5\?@bUO%Vm Mɭqm;wK.&xq'Sm4^ۗ/_zgIƴ A.FSO]^pa~~~h۶m@ϯf8aߏ[ѯ:ujĦ l[h"C;˗-V13/{$X{̙ӿ۷>2opͻO>r=#*YU---8nɒ%nV&N`w3gСþ} nQ@HxS ñr3fē;pVӽ֭xba cƌQ[sc<0AeoE8VVb:$رT kf2>裗^zYfӧOZjԩ'Nl׮݊+".@ʼnϿZ&܊+%%%Z# W$ z*bl2Wpڵkm6[{*=zh֬YAAAĤU,t8(//svᲢ}_jiS{}Di,˯jvvFiӦͬYQLtyyyӦMSPh~{c˲`l[Ō؊M48h3Rb;cn:P'u9r/'hE5%oj*AJ E4MEZUbsرQFegg/[}cǎ=rHMX,׿ͦp[=C=zjqZ,kFW_;w.qÆ ۻwozp333c;gΜsLo9;Ν;s?6l~ٳgy_|w߭͋T# Bز.ChFcM4MRauT [lgyedd 6,5'%)9x7|c]jC..*e„ {|ľ(43O+.>{߬7OV>ɲ,;&|,#7]+)o,˲t5XNj\.,'--IG}455T~8UVSL„gĉUUUF1kժU ϯ`8KKK{G# ;>-w!B%tL"((D)PYh>(D A%JhI džrevs9~wwvfwnf ڳgOkhh(j90-Z~pR侺&HZ lX111SN 6͵\?e=Sų.w3fիC͚/s9yo|oϩW.][oseװ< Ο!RSqE ;Z3 f8}F0&GzL` =G䌧~zÆ ƍ޽+RSS%wKꂇX ؽ{UonkrL,NNrƍ㋊6m4eʔٓ,yYfEFF> s5 'O?=`AApܞ"Lt` QbC{5J[lhd[2l_6o\XXX,JKv<<<6mGfD$j_C^UsM|d2N+,,:thAARh$3`  ܹsxxuR:ugYpѣmLzQO$(ʰ0=Xhh bccɂϟ8qo )))o7//O. Z  \?XL](؂nԴ8r0lF|ґ k\YYuiӦSL\|SNoGBitǏϾ^x.jEq1JKa6Lb_p_ٗ%]A0%a޽W^MJJsrr:w,<䌌#G;?ORBm֭!iii\H_>l8}tǎeAA^ b \r",,L7^|Y׳ccS\嘘xgJy|9O={v};RwKKeeexxȑ#m6t/t`뱱HM%3k֬իWO8q6l())yMdL&lK09#11q˖-]t^bEfͦO^ݞɓ''''so\xAHr6m&Lb26o|ԩ(AiӦ-[h4_ׯ嗹Ņ oߞb (f AW Lt` xzz,6lPg ˹\TT{zLq!<˗ݾ3]x>x`Q&HrO8 8\mcjf^&7XF]R tERuܙ.hr믿nlwT*1ׯ_nOMȚ\[63gvART=zDGG4Ln@@\.?~EEkbV(Fqٷnݪ j _(kI&V nܥ6X^xm k0ƍ;w&B69^mcr`/wp^y=zT'nԥI$$$rsچ7͞;TQqmp P(jRuGs&^׮]~1Oƈ0-vI 'xvl$Ҵi?ʕ+?3̙3]¼|| dW@,Z"nO20k֬qF&M&N+WV\/Ο?,%I;aܱdnʫ\y?óLw5a8K*:;Fe&ҔM1UWw+;S[' Z 'j;͉z>]bXXդu?ZíJ3ӭvќ有)PѽXx^\d۟X/ҌF|< ;0X_"#ͽ0cX ѿ#3xaL\lȔ6mڼ;bc v wѢE6lSN 7,64|z1mڴYf׬Yl2n3InjW'XIx/K h c}PXZeh577Y_d~4ϿWvFN۶V~iX7ޒ3zF +Ry'ڙ3|ڥ{ O}zhhoe˖3fϭ[& b&vY^N߅Ig7,64pZlyuׯ8<^$NjρJ`,<=%dzxh T#۵/!Gy3jTuY|}777ٳʪU4i"R֍IH#䲛9扣iO>Vw`vs{{.ܾ/}WEeO=* 3+6eUhHY沈[<ƻyQ;sԾcl탧D<|sϕѽe=e`Q4⃧ĜUI6FҜ3R;RٴiJ/4M߾}CCC7nȯcB嚠=dqVz Og7,64pZly -~&qҧǮ;"ؾ"L*-l9"b9a׮]>>>Z,yC%{b0PxrnI2 UWJӦMS*[}%ѻrmzT+2uir@IIӭj(ОC %j*0ïG S%YYD]3 mV}m)77a\=o۷r06zYt":&!!o߾<**,,ȑ#X û 6pB̯k]p㪷/FӪU,;w ܸqMG hPB4!$av=|p~͑٩S:1wW z1@b%KJJ oc 3D]Iqҡ҂24j4TXaTO>˞Ǔ}LمfbcXJKK=<<~ח_~yٲei J nYo|4`דܰ9ӲeGyܹs֭[wux9`2 Zu'vj޼yqA aÆB'w`1p`|6HA  q˝.^aD]I޳g… ͛ףG'O~Gcƌӻwo{^jӧ {LIޕ۲{ N#4:军_W{gY #5G]5x& ?{ԫ{'M7SUTUu2mPcEJ,Ny#@TōMx;wê}Fpho9CEȋ; F}b Ī]YXf Փݖ64|欬sέ\rƌ=ώj_= #\ (X@da6;{PzzzKp#w$@w Ȁ۵|`"6?% q6Έ`"$/]tԨQ3fлwﴴ%KÇK$N:vA&>|Xd$WM68}^oҌߞ@)io-־'p@v)p&ItZiauhnN(V*$a<<63tdnl+>J kJ3˰)-JawG@H[QU^R d2V[\\8qB /D%H\tJ\.ӧ8aosJaע IDATäI&*ɓVO>**11Q&߆!*vL%޿M9q|I{VT*0  W@\'uUܕdɔXRPP͛73 ҷo_Rb/MVHϩ a ~v\YYPd`]!I:sǜ($! wC#x:^xCҵ6K~P^cXV2h-\rTk^8SMwԲex6CCBB~ZsmȁBd``#}?襤/m;|~h4|^x*w'` 0a_zeQݎ; ?~ƍz:u֭[yLv|ke #m{6mϽ]VIB{ylYndgY:N+fkG+o4bv ف?mJtA J1@ڠ9WJiZku <֘a.`tj$q3bbp2J+0GC <:GoZyD]om_,磅7^1YvYfnzb"rM)))YYرcAmnO~^|wyGPL8qȐ!5WC|K+&YRZY:V\ۗ ޘ7{\SEŅRӇ>8b=[=(uCNJrA8M)l_L:A;$$9y⤈K BP }) BkhKP(J]`.a;#0̙b1 ])u*Hi0FBirp{<Ӷ/BP(uڷeK<$^xf3S.;ӦatiTA>&MV}p)b}֭[+ŋFpݺu}jo߾FܳgĎKdT*UPPмy]t-Sm6x`hփvMVwҥאaȀZݳgϸZ Ξ=&ɍ /q7r9BĻ\eglBh ņ.a,YҺukBѪUŋ1|j;wflH$۶mΆ $I+4H"[MH0|ᥔx~*i^^:;w-SVV2 \ŧd%""yyyiӦ˗/羊,8nܸwyCgΜy/>|xBBB^j!O>?yYfիիGYKAzo*ʺO2ǼyzM\ekIJ !]_}C>|wjyMk&iLћzbٳgrrro.< ]9xo1/33#}{^a.\`|YINfIN6s'v-~=s 0LZpիO>`0ddd0v,Z(00> A!~Bk#d2駟6:thϞ=9khhhk#Hų./>nܸѣGȟ)쮎O?7|~}'e2ڵk3LJ_J~mN'x:Bs5_5_s<7obKG¦s琕&YV!;w>fBxwt1F, `0 ϺEP<"۵k7d1]Cn1^^^7od <]WV6_uÊnBz!]I`X͛xbsYB(^lؤK.;z}Mӷqqq}h4K,y~UVJ}k׮L7nl߾Jj۶-m{1D/kw}7<<\ѰHFjj*B͚5o߾N>}:elG޵k;w= wN/c8}R=jI&h_ٳO>J[`ZYzzNS]v=p?.F?]>qZ (**ʿMIII9BBBog ܴnݺ_/]c]rs!4~ϰR¾ E!&SܞdWx'ȇe IJ !]3gLHHرcG^^ޞ={:$י`<GFݻy?pժUb>~uֽ111܅ݳgԩS{_~e/"jdi޼ٳ?㒒/b͚5.ѢE+W8r'OرcӦMb5|Cݺu#F]{ e}ƍU} fު~K2q*9sYN@> 6m /r>bџ~}vT*or7YPվd 2 sjվ3fΝd{v7d粠 bìYsrr1"##w)Hl'`{{\qΝ;KRKd_&Sy:N20b^p̈e SFC(6Zv-d+WCAAmzطo_~la3[/…TVV92d511[RSS$$$XVRyA1n`71ܺu+?W_O:MNY7;;P#AJ2,, c=`իV{rAqԩgyf…܋L ZPP !!ATĒ=LNN0`Ν;s/\NB4hdލ$\D0LqqFe+&kZm *6,5'[o} Bo/X a9 V{999~~~\5jԨmH$(b6T*5.AED"qR̞ѣGٳfn#,kS8}V /-YɄ'е+|}!l hHgayZb&AGǎxv;6n;v$ L1rȱc?ᇳoSA`0ݻڵkEEE۷W:]t7&ʕ+SCر~\ȂmlWKWEEEZZZpp0gСÚ5k j4{h0rÇ#z{{ggg3 couBkZ821n%1116gFWVU$[ʘ }f&C* B0) J!S'0 0`#GvQTyu͛7żo'N8{3 h-ˑ#G %H/=䓵t-SFѾ}{f!CZ^^z6hѢCYYY[l;vlk{ܽ{x#Gg|D2YеM( 8KJ2 gϞIIIZVp{T*뗔|'VN4hPAA޽{>zyA.\̋1n;gx@@2%55Up;^rV8s `4]sj3$!4V…A>f'O} JJJ^{xe˖.]dggXYfӧO d3'${zz۩6lP2YеM( 5mڴe˖ưk/`/AF.Zhذa*xĉ۷s?**oرcӦMx c=|AN.]i&Q̙3jԨ{FдnsSPX,UDfZQ|bccwT*###w=\-r#<"~ g Ôru.Μ9C*JR#::AqBa4gϞ}֭Z )6p]tQT;wϟgýyׯR~3ǯa?ٵ\v&Z&Rl2L.d?~EEEmگ׿FjfrS7xum۶Xׯo۶B 1ϕRnΝcgǎbpFkzWO1ƍyÍyf˗6m|炞3BNAz^Vw)22Rr'b ޼y3<<[n2L۶m|8!Mn!fM`zzmڷoߦMAKj%K|W&iذagΜaM/_9rd֭wѮ]ѣG'c޼y%|={m,k)(TSA2א rBʵ\䞠kODDK/b{zznݺ`0L&=K, j7>vN<>]$\t9S8r {Hm2^^^s&77׋ǸqD# ۛt:tKo((ѸqM6M2 kҤI1Ç7_~_M" ֒ݻwZjpN7#{nbO?aÆqu}Ŋb$L ),.v)Ajy[ ?49ۊi0=ڗۤ2/QQùFqc D` 8x/;eRd6{BCC,XksWXX߃bkʩSy晅 = d:pСJ%y pZZʕ+8(0l?Fd;wTkrC5k=PjJMoZ'˹ZSPYبQ#OOO3OԾV+R[bL]rH$H t֍eϑV œ1rȱc?ᇳ Brkʕ+e/ IDATU;v3`0ݻڵkEEE۷W:wL بQ#¹\`kHt{Hk:8}tǎk4$!~~~nqqsf&ڵCp023\B6efb͚j瞃Z-[fAd^X,#G4=6l6oӺyf||>+6ke{!Y!2R#k9<;÷nj߾}HHkpۓVXa4̙EN㏋K_2Fip\ 6}8zn 5f̘{SN^zmڴƍj:44t˖-2A2~xHseeD?~_ 8k49s?m۶vj۶ Á-[Ʈ駟2א sBp[V9 .0o޼O?'N|c p;abXmfPDfϝkp\jzq}C( _FJrw@&=7C6j!!'G B5P( /BP(u ]}s[BP$1>C۾ B5N۾-[&%&"5UԿ?:tCAp[) Bp20t()^bQ( rOW ."(] .NIJ};>scQ( rˮ|<,;r#L,V+,?n3AX B?8hJ`+(W\թ۰!#?ǏuAm( Bpԩ'8 hh#FY3A BPCH}fsuﱠ)5!7:D t  B?8hLUp իu V+p4n, HP(}jEq1 0I&{즓cQ( r?xsf&C*EppuԶ-gj<dg ǢP( ~{3gV+N6 d2`;&BP( mߜ"/V+미uKt !lgddǢP( ~to3) B{Q( RڗBP(־ B5#;BPWc}) Bk}[HLDj(F޽ѪT*1ǢP( q? oodС65 PP^~~±( Bp\@*ŕ+k\]:uBFBT _B, BP7<7ob !ڴ?Dy9W} ǢPꑞ׷ J½W*TB.d6Z#@.իGy9InsDGz>>lBip|7m Uc(zj1Is36'C0wY%4bL7nd ?byq^vjDJy^%y¿޸hn}ϜAPFkZ8}Z?hm" u/;ňBOlj UtjhR ||,<].*S2K*%* W+k쨎q VFF_5slO9=p8}sr>}2mϯrem@EImK1  Tɬ9ʋ>؜a|v5Pk쇡d7srruZJШTZCeHZUx67jtGtTw-wpTJP嫞oAQNئUoRR u*J0V7?Uit.780+k/hbRa_fDACK_X&H2D+2 T(d2Yiii Dahёm݊Afm%MĽ݄uX|[ "q`];Z}מ2y&A=x(FaZ_z4Ÿ3>`+̍|kKjuE🍉/[▋c [f:v7|־&YlZժP* B&K|%ϢȜ9{-cȁT"+,|c"bjP]LA<|;c)D*],d[dӳ5gRVL^.ћfAy.M=o Lu+J ĵCwI|]ص "΂x (⡗r_##WdRaEͺuJ> Mo g oJzmcU%ͳyt|jABz?))WZ%VRp_j9 {(6Y$?qnJst=S~A"g[o2c}[TMJLZ?`J1}HYVXB74#EV[VrʕyL_U}e~jsSxmFfoJi$[l/@wo{/ .|@wPX&_@Wr!L&W KKIE6x0嶯}ˆٛRl:ha7K\1rJTx׾͛׉<AAU!dҕЪ\$BGGTZ{1fJOmʙrŜ+*e?'lESʧ$ϾzWL)qA\pBJFYB*9gd$˪>Vj ʬue_u\'Wg9]u;s+SQ{(qPJPAV VSâVTj RطWxJoEVy+ʚ,JCaƃ?}]#+ӺF/0O"0W"QV{}p!lxW ,4 $;Vt]Y]*gGN}8x7|Ap7ƎV*7Ѡ %ڗR=q23s-,*mףsNFme ]cQb\iKy2_Є*-`N놳僫 Iɲ;3V#q  fܿ|_ٌ)L*ZxXJ`Z.#VaAqYE2u\n{pو_yʮ(D"8+7.ZC"T!/QQùhT[gk%ĢPU!ܛ^o%f]T&7*JUM4UHerH$BM#;Ek>P5Պb0JKa6L6dA ~-J4sF5TVVd]OUj ¿޸hn=ϙhDppU 5v;cQ({Gh>e%yHr ɽ >V޸h x׾g (F#FZq (-+H'}H$>G :|q훓XS0ѣRLp,&R_m›i 04nU./8^RxӶmNDE#7P^P( _F+ກ]P( /BP(u }) BkHk]1/_o( R}& bdmR( R8ml TQѥ <cɏ>hddd֭;uwe˂ڴin/ Bqj_C^[N0<Z-AT~ j5P]deeM>oJJJǎ_|E&Lm۶׷jG; a! 2DPu+jPZ-Z7jUE NTQ"*C&!$ IX9sϹsÅ={&!!Ad_ѣo߾Xz5{gϞ~䉂B>ңG&^.6lXҲ/_}Uw;[8 B!$h}B!AGWBWxB s_mmYYD",2`0PED"BC 諠@&˃\.,kk07&@Q&MR)]V վTNFgC|9 99NN`h3r"U޽N*Dh 0.MӋv%d}݊!sUWȀCY , PQ`n!oyTРnB:0qd2HITV-!`p"* OD@RH$ iA"|q{֏EyPZTXXӌR(QQ6 D^B!L&47٥fCCpvgٕ BCeRQ!! )ٖqY? ^50--J!4P%G~ w]+deedf~v#+}gxyHHB`@M HI TU,zGVSƶV $u^!BC |1G_}IL2ՔqwzW )[Fi{C ^y Ĥ-w BCraI -PLʡ8wu\wT`:!8} A_a> HM>v۶m...rʊ d2E 8`ePUyJc,Xк uu mI~a9;;666VXoiiyر04޽رcٲ&M}<8;;ZԩSd2/\@766޳gϒ%KJKK>J<P\ vR!F_BC7LhnnY4TVBK PnBù/  <.m'X$$Ǝ&>X !82PS # + @Cs3vQ ! 8_y.(012LLRxg*BXW/^!1%gf $%[.BhaO Js^ܹyi Bpee֭C&$K#@LTUuB^VV֍7ښH߿A6p;7dt3_s`F}8yy׍z=`-  nܸ1Z--7o(((tZ###SRRaa׮]zo1̙3gΜY`г⛡!1#!ABB5B|s!$@3gθ}tV:NܹsŋkGGGgӦM=BX"[kr>z & BNNqst=+++UUU__󫫫'L2f:NwibĴ}vVݻwUTTۛ5YHIIɲIOO 7n\t\UUu֬YEEEww {{wب]]͡fffjjj˗/KJJ8q"Zf\ccc@@ۉ5;6] р!aEvi EEEK.ݽ{wVV×-[gϞ~Ƀ={&!!AE2pƍӧɓ'DPRRR>}vל;&vuuuΝ{=[ ի[gy[NN\ѣsё^XXcBI"""^|{ĉ7opkHww|0??ʔ)yEvvshhȄ '>x_y>~L---"KNNN\\xDKLLH$Hej Y'%%rl6㓗xbm6n `A諭 VV/%&Bnn{AZ!;uޥ 㭭,X3;JΜ9s߾}`0RRRtuuy:ujTTTNNcU$<88j3gfGvzUUUSXqTQQ1Fg?AAAÇrjjjZZ+eܻw֬YSXXt?c*++Ez4p﫠@˃(*v&X2Āu݂w)===="GLɦ򣆆ȸuum鞞ׯ_OKKsttdOVٳg---bbbzo7N wɓ^_[[m6֙nBCC*++nZ\\,!!Ǐw,rʊ d2EEE?}́L8q޾m=4K] ?!"X8xBh( F DDD"Wcǎ(,,LKK~[bݻw;>cmmmllz ddd<<<]VNcccb|ر˾ݪٳd;vMf̘abb_ZYY988u,/&&fjj:j(}}s~JPEڰn5k23ss怔ܺ 0u*IBQ\vR||xLL L>e̘1N>M,8p`ɒ%޻wJUUz]bepB/~@FFFVV:dll윑Ajff|:V fff U:ӽǍ744;rQsccc@@_`EH@:}SrWϟ՝;w KHHHLL$r#""^|{ĉ7ožASW`ePUy1Q ч9uBG~~~@Ӈ va+W̟? ֮]K-_L&={cSL lhhtss{u-gggp``.FsttܷoLNN={vBB/H$ɓ$IMM-..NCCNZZ]6k, ػwoQQQ]]F󳵵c@&w)""rȑ%K3{___b:^XXhjj$--7* T* }ձNPVV2"!3g.^d޽xOzp}́L8q޾2,,:"DD+PZ 0~|WK!4\mmmmmmsss/^*((7emVAԩS]v*:s̔p]]] ss`KKK++tYSSS[[[GG....44իWߏZx1b 55}voo;v}űN`ʔ>߽{/_!8G_uu hiQ"wJJCee n3uZ MOO諧cQQΞ=u3gΤӊyzz^~=--8ckhh ZnϞ=kii ''cggFJgffVWW'))IP***N>^^^iii[n-..qqq]:yyy'''ܹ+WP(L&B8D_2uʶ%$@XWV;%%wB1U1ID:Ԟ󚚚aÆ}g+w`t܁H8D_ uJۮS(mvbQ{{o]ȀX^bE0D7Lhn&{Y=!:866.TT@HHJ};fBFFW+D~E_d.ǬJ{]ه. eethnCJ!zW+}ޯݞ~H>S$~t2BFv[%W LLLY5AHOK!mYܲ{xPD/:>̹R]\qIWWW1clذe˖݂"+nk-1nTF{9zj :%t;e0vpp׷_[:^zΏq~ 04}} ưd0 5,SWqNK!¤lHA*+.p~Q.jjٺu~QF:th7nTdG IDATЏ.W’KVX1H9t("kv,/ܹsgϞ=Ư_޼y4pp>-+(h4γxY)P/2EPhMO KjKB^z4+D#H35=dc̼xbHHĉ8~q:o޼y) X1aa 9i2T%qtcH1bҼbw2:*//?qDppx"788`ԩ_3f666ĚUqqq6lܹs?| ݀8yy׽^[Q!BH,-+i^o}{ꈡ˗K.INov9Xڬ2}*&&֭suu]hш#~a:JGTDCYBf]EY yt%v,p%K333{֭[,X@&$%%) F "GCCc׮]vvvӦM 5jTpp;w]LW("PЈa14L-:9mN>s\WW׿KNNe]p݀2BPDn~r^zdd6CTnnǂ7oްaCQQg}rJ1cݻwnjp­[9c FZv󫫫=<</^,&&{u=s@q`ePU~q˚8:\p:!$0S+z:|B ՕX^jժUzVif!B"WWL 9~8]NN… 3f b>6c``Z;w.ipwwo7ã>|WA݁J!!77PTUWȀ YZZtBC/C/E}d #^&aa`0f&,"fY 0`9B!4Н?sE8D_ uJۮS(mvbѣa ^bE.]_7a`o'{4=GL&47ٽUP%W9:wvqvK>]UmC}[** $$%YX>vs!222>~@4pxYY:yeгR!`sA IkJY<B!4PvL<>|2y=+B 0 -+(h4Yibc2}B!?}B!AB F_BH0"B!4!aE! /B!$hi1 Bh1<B!4!u#9pRM]2ɜiieLtC#CZ{W ˖VvFfDGkC<ÌGxLu7+Yv.n --(hLK{9{B31fc.Zm>tbF:urcKK)^H?~퉖؅9, 돦ƧԆ7nG]3ϒ=u%$$v%DgIO&>sѲ_YY˦_|hуD[X/[uKK t ҍ454F4=YLLLt( "7Mi^ v=nt!Q'%IE3>ee5,,uV **h˖ U+߼}[QAӕT43BIzMy6u7zId2 7}|Muo)Bţycrne566+*suד#(**pKABXdIIO1̨ў=ϒM(ϣ7h܅l{\xUVUu%kāg>۬5XYKaaFyi{G c=Bq݉kaaN"Fl|qkllbD,ԳJPţVAXCw[6]>ol"a$..EMMM_véGG0:E^WMA";N윥_|UWWϭQQjNJ 1q1GeeM | uQ'v,ݏ=zJe))+{0eǫWeo<|DDD<&M+/rrqLw8W:DהW^2s\IIq,,Tbꚪjqgnˎ]{_JwASYԲ֯njjnQWS[[UU]RRz+ǎXt1 ,v N>v<,m>M>vDaaQYY'׽p}+--he3"]` H\߸h.n;w8kO?ٻo_gky k݋|уQ, y7S<ةylmm$p:,_h/tb!mXv՚5 XyFp>~,GD! /B!$h}B!ASWx x4"4cýڋ~U |j "}_BH0"B!^T*J*((?,CCCegg =z]ZZZQ// L{{{1cƼzH РP(vvviiiW*ZPPxY___bc^~MSRRb``p֭.nd+**655ԵA@G#ذaujj*āEGEEEjjjx$ [ZZ&''WZ]]rn+~𡤤DWWwY[lKKKݏN}O<81b|8*++s+>~#Gvk7otqq544c2O>=tPRRRMMͷ~h"&NcccԆ س:`mm)""2aVb}葢ň#444ܹ| #q֬Yuuu+W?>D0G8Ng Lk׼8 *SLSnnn111L&ݻ&Mb̼}_rrrǏ733#I$˗?uԢE{EQQ &,]###kcǎ~a޽ZZZ=0uuub9<<%9sIRRرc]S 4ŋӦMkZZZ֭۱cGuuuAAAwY0GN'kkk@BBc"\x;>]QQtkrrr?SUUUTTd 255)))C oTTԸqXUUUWꫯ޼y3l0"Ç[|y϶~ِD"H$aaa֓ĩHH]]) Kuְ0iӦK.ݾ}222NJڵAG/@}}B؛]FFFO&3229&׻|}oK ˖-ill͛SLiWJEEeh^mfכGpMMMeeeqqs߿rvY,K.={{JKK>|qƥK_ǏSRRu77K.UWW5JUUOUU?vX :d̜9j ,Xb>ywvttTUUUUUurrRTTyf_um8iҤgϦh~aʔ)mA#7olll?3n.]3gN^^^nnnnnnwQDF]]۷o\|xǏĉo߾ч zӓX022:|0|ooo592k֬~IFFfʕ***'jkkw֯9s888=?7oއ&Lz`:N~̙3D͛mmm=_ |}}YH$υ ._'](v4N0aڵ555Ǐ8.!!qe˖L4i֭?C===Vْv4999ww}F n)T*ؘNG ֮Z!3#}x^|wu3 ;+0껜O?eW8~g$0BEYaOCML?K~NB!AB F_BH0"BƯ} 8C~Aw`.]_7aHq+a_:tV`^E ?݁Z}wknL{wWB!AH羱}|gumHtV`^E ?݁Zky.&Z?9b{@{lEj/X_P?.к67B F_BH0"Bkї`9rZIIiذa+W,**be=ZQQt׮]ļ`^^^ 0===aaaKKd"ɉkNVƍ#\\\"""TÇYEܹճyyyedd>WCG'ጌ ))vmhU ہzW7Իjkkuuuۥ3Ç;88[YY>2LggѣG777[CAEߍ7;vl۶m/_믿jjj&MD`ǎϟ JOO?vXxxC… 999999rW?rHuui MoH`~˗/ٳ'111(((22288˚P;}CBB'Olaaq MM̓:t󎎎JJJ{yHJJʒdym޼bccǏ?i$qq͛7666[[[ꪨ̙e˖/J*))}ŕ e}]ǂvÇn5h=|MMMt*{p@A~S'N*((?g! Qtt.+L&/\СC#F055500`eo}0y{{iii yyybbb/_ߴ333GA9bĈz11&yu333yyvY6l}6b8nӼ_z­_fW{FG'nᬬ#Gܼy3<<Հ_%?7!x+ёXf0N"H~~~;wP(na;ѷTMM]FQQQiirj?~<LfDDĊ+8 **ZRRbhhi& ;wN>=11NKJJލ]a` ?IDAT$ɓ$ {]~{z5Oo]OP(˖-۷oL} l ,?r%%%nIII&&&' uCD_EEv%%%NZhxXZZ_PPpE[[[?~|RRɽ^JJNhn޼IW ++/3fLu&O|ݻwFޯO\뉽Ы^"[===KKK{Ԟ.(Duɵ;ϟ??{lqq񈈈,KKK~:Fߎ4yq?m([)`Ũ"]X^- %3u͊8S6 7.sәY`˰TP ȋkmHmiy9>kO1L'NHMMMLLow 777K/!DT*JGy`XBV7nw[f/_pO?=ÇWTTtvvSrH.%(^NΛ:\b bYnNR,MGڅ|ZDJeHPUUu'O^parr҃N\.^ȨsNGGGNNNooonnnhhH$ڶm[}}Pcc{'Ynjjjoo7|}>FhF@vvk״Zx<^hhhRRҭ[z#Gl|jcccwUT bʕVcمeeeMrHރ,//Wmmm t:-..εSgW8eHY44>>^_t;rrr~瑑RYRR/>|>bX%K[mFps;RΝ;rBEjjj4>ìXe)0rh#}W$@ `X*܂3g~%KƒWkf͚'xB(ɳoFEEY~i`^NiЫP7L&fe˖h46Sv{S6)KJIIIbw^PXXXv|PG6mh6mقp;z%ݹ az6aP- 0N2Vg%gzޯFw _Ȭ^N/7|p?KM1ܦ&UO/P} @5|F==,d"\ 'aSo_0ͥs]}Q,egV]h^ st4; us]ywN̥͞6Gw *ٹI@o ۍ!4}_P jTsljˁ+w*7XPT`͏-َ=9sP jTC/aXAR 鑎D{Z.U o /p8G0Bq鉉 GӇ==" ^/_޸qC>㈈+WB222F#ǻ~ÇG&&&, [n2,***22>9TTTpbcc}Ym/d2555eZ[[`0 E"с&&&bc!X,!\zU,:u꣏>H$1꒒zRinnnqqqkk9htBxOOϜoڵo`DR;66vΝLv斖}uww/['//O*֭[ !Ν;~8IKK?^p.]JOQ*W޾}{xx8!䫯D6e2?`0;v:!C*?lOK 0,^X,{vU]]Ϛ ߿?""ݻr<''BۗYAAAO+TVVM~ҙ4L=$%%m޼yzDtUVmذV_}T.[ZZl3Owk#l;/uL&1d0f k֬1hѢkך#4̾r|ర0R[x1!޽{d2m۶ĉ4-!!aǎZBy !cccNILLsom+W_hng)CE"888++255bLmF_V!\xqxxcժU744TܹsbL{BF#!drrn߾- EJJk}\HJX,G>ѿhZ#_IKKT(:O?ݳgF{嗿 J544t!KYo߶ڋvt:]AAAiiiqq;55P7n4_~|pM???+W>ѣBcccjjj*++O:E׭[g#G #P}܋妧gy&33w8? Ov~…GBvޝeD"zՎ#ɞzꩄ쩩3g8 nwed2i4P(tϟ]3VUU}楗^ e2Y|CCZ=u_n\_O-cMM U } @5T_P jn˥&`Z pշIq,顃B ?IENDB`mcu8051ide-1.4.7/doc/handbook/img/037.png0000644000175000017500000002007212067167647020225 0ustar milleniummilleniumPNG  IHDR w pHYs+IDATx{XSW;HH"PjѢPZXQqG:-3\d +VˌNTq2X,xȸ͋a r`0lf Nc $))ikׄBaGGGUUZ>pϹMMM&СC/d"AN) f| XWWӧOȑ#=DDDj///DtҼyL B {zztfIIIvvv_}ը.\pwwgXqqqRTWQmmFիW'&&x/RSSuh4#***lll:::> ǎ+(( LII-uݥw6cELSd2?C"كZ͛Jre[n(H<==Ϝ9 =zD?(z "x}KT*>>> [[[ݻEѰs΍ۜQ }L&R̲vHLLifffllŋ'O`E*ko厎RdczDm^2#'0:.ry}}²eO:obs޽[(-XP(D"MZZZbcc6mt10-H$(ngggښF͝;wYOOcWWQvtt]~0+2"A L&JrKM3"Z[[#XiiV9y\.?Jrob......-zw+++l6{͍999nnn#KR-|͛+++߿_]]&+=_62ooUltE=4sTaHXJіXR)ݝӣRܨ!!9smmù x-k*kl?Oc(.wR@C V h'("H/t܁q$4a /6Pzc?;٤77j P.G>?c+W54߾-..vv&P,N'6'#].^li_6% DXeeXy9J(G]C(|̴<{&ӟP47~Ml`['Jr"]z@mPm퐹xYEY*(Qe& J`qtbq#ؽ{ߛ;aY{ KUJSDĄ@A & 1!P` @LbB,k~H|%sy% ߓŲb}0 1!P` @LbB (0Ą@A & 1!P` @LE <$$bX:#t:]2OQ,x<VXa܃q)ҥKqqq\d4,W` "***,,?::v*vС2rYTK\۷bq8^{p-???&vڶ6@DDZH$:IIIvvv_}~9r?pႻ;ŊJ::K.͛7dnذA(V^o޼[8;;􀀀GjkkCCC?__]v}ѣGli yy9J ԩSiii ,ܿ?((t䱾O ^ic efsrrrvv޶m[aaL&CQʕ+\.W(n߾=))I n߾aX]]|¤k׮UWW߻wo󪪪gff|@@psε;::~ Ç|c z{{SRRpˇJ+W'_=2ܘ-[j8cU^iiѣG򪪪A ̔hrF$-[;CBBBCC=Z^^.ؚ ++k>̌]xɓ'x }с >+((d*w^E^^^dJ7GQĉ .\f̓|~ggg@vuߺu+.HjjjU~xW^ݹs/ٷX^W> U0O,ˑ( P(rrrv? ¼HQQQiiieee===ob~/`yՒnF!JdH$JOOW(6ُ?֍:JKK/^888g.\и+5oKNNOhT#> 7r{uҾrfgg斔78;;dzg...U}_K_\.w޽://[:88m###nzΝ/quu$FOcccϟ?oooƍ .T#'((h߾}zxx8gӦM~~~7o6`t2%X&;ͪU<b"o&য়~:tPQQѴZII5' ` TZZZԴj*S+>>^$)ӧOOge7 燅;v _Tr{,Z ð?x:p(p, (0Ą@A & 1!P` @LE &tݬr@Io f,Q`N^ZZ:Lz37#+N? x޼0A{NJ df Io Gg0N#_~$ x޼0A{NJS.G2g0K׏`sad 7SLzc^?rqi3>n3fr7͕1{Lyқ2)RimmL~1{c@ `ޤ7/66Zd0m 1!P` SDdrLjqvɗ fqtsGy9ƍo߸6_p&i( c2n߸1%ș|m t5%`wצ}JRMb\ٛÇ(0c2Q@CQ++ZPh4@PL _ZETQtxHs֭ \?P(8EWZwߙ#.i Z>_VU4ժT_2PPRc V۷o\L&b$gSjl:388pP:]-h' ([Z??x_}^wwkWwAUIdJ:**رcFSSSS g.i KI k2Ь+U!ۚ {18γq(~NF>aÆŋ9sڵxUDc ?pG]?a,b]Ec @oߺlŞUVfZvxwO<Ν;?㏽ܹ3^`6$? Z8űfPz> ĹLjk?t؟X<8w]l(Waaaaaa#xxxܾ}[2#1S).˜T~հ|: em: $ٯy?LMm]:R? gрԺCRo$\4h;\HX$E jlHAX,,,_GR_<0$U%S)bq#nU<ȾI7PבB"|>| Hk(q  o^6gVٛG x|PO`^בSzS[?,Z| H-jh/=(呕O odFBT} ( R^Zڞy@19#_OssH{R-YճV#7M4w6}c!U߫G*0g WM)ɭ][EyMSGQ.-!>r$VZi`fÜon[ہC5`<oː |Ee:f. y*#>:X&yaROʣK^~:$=\V>{kϱ o8t[+_/s>ՈM*ee[SK @SP9nQvA1,;ҲCw0 i"eF5~c E=߶W֪ɷ[Xzb@ZAoWdkQ[ e:EWn=b˱֞VvC:oq;9Pi+*L=G&v߿iqi^a~4Be̗Z4*', E*J$J^h L-z=~H k"5`%L9sOV\d4jf6^JA 2pp{u,4rcDǹ+3;.ܠ~7.HК/2HAd2sFJqIрʅ<_)ڎh|1)wm5՘F .h%^=m`9{m5 B~FZgE0ٺe>7~vŖ5AՏ]Q?.oqT)岢lߕ֬ |:ڳƴX#hL-^.բBX*S=1|ѳäJ)I]>ߕҼ_(LȘB;@TМGPԽҖMGyŠ NJpI!iĄ`//=}èx 8LA|N?~(i4M4is5WhS1 H8MZuլBcKE8.A_dfd#Ҳſ#D(mz4$M|IXbiA\n큦$ _ 'Il6f+nI.-2JZb|,;)?߈U=ʅƶ>pRFa\i\c?j$\mzY!%\hC翉ڸc%[z1tT\!ұ菎uuoztxyɷka%.AĩeK.4? V=E*nX*Q1Ha ZwP6ޣ{YlHд->]CY!7^NYZ%$Vv<+D#C;/PVD$s [FJ;ikf F.~J\73xH PW:<~eQGX973fFyY)Zgi(ۇk^B(@S9P1aNSrrQo7)nf.h̑4\K!s65q< 8¬ڢtv!UM=V ,oj76Ƭ 6k<@6 גJ|B㔨UٳM5$3o2FSD|LKM˜{M"}c)6uU/? ڦ%jKCg">̑ e$l|ВP >NqeEה+8Q b+ zMϡ)K!'FArx N-Tq5E@76PʍR!FT\/ɲTQz5F(/l2CI4E*@T4V9*kZE0JJQ(3$(PP\1ΕF\^ NcH)Z 74MӀ%$OcrkbT%HBDT QwQHQW|\(~)k6es5 Ǻ.?[)oDG.ԭڢ53^,&a 70*:"]:0J˫yP5BBy$qw! | b y4@J`FA*! 1Fe* @%h$K^ (>"hIlY 2+)%F)AcVX1)LSZ 00p *Wi`Hp VeIyid} Q #9 PqZrS3pB4()LFq=cnJG"@PPDA@F`9 92OE JZHAB/J}{bS h,Ka(hiZ+' ~^!P{UMه4 en?:c٤7|D(QאTyYjfVظ]RhCL@qHqkaYG jPvv5T3r͐[4dB1!Դ0e@F}37de>f5 4 R@h5DFe䇶2њegЪJ3@МBяHU|%KМ|E@3QN ^ye^^&[>pڿ_囯×j Uլ- 5h~jctQt 6I>Um}^Y;g)|DSB*MQQP_'_4+D(P*zQbǭR )Յ HeFJ{1륲+^1_~ Ջ5C#E*>U)H.NaQbԀu Ua TWc\,uPՈ_=t =EbԄu U(7+ޙ˫C8J :R? gрԺf\hZ.2 &0|%)|| Hix0cܺ!,)|| HmkZinjm=[in9C gʤ7>eaaaa a0XXXXXu,,,,,zN*^'еcccM [SXꗂY"[K]]ݥa\auwԴԫ8d-C=Zz,ˬ n-Vaֆ702eݝ?[,_.&Էؼ7Oa|a8}v+yT]D="WKf- k?,Jٳg4Mc[,,,wuZc-7:)i%IxV]:|:u%%%%::XTT*@Sy|0]t ::Zt?$i}7Ȕ8QafPƍMFfIE(j޽AAA~~~?cnnnŔ颢Yf4ideW}aGK>|s9jQXZZx&66?eO|xPPϟ>}?rH$Kϼ'9#8oD{使!#U䥿.ޯd0b˖-111]vիW|||BBB|||^vjwB03ES%޴xoo3 PH̕L͌oNJP7))ĉ޽-[w1wI&5nܸwމL7ovmԨQ=Wf6mܸqC0lڵ\.Ww^233%ԩSΝ. QŘ!8烉,9"2JD=S1﷏C]֡C ~Ё׮]3g#..[nӧO(*777,,lqqqfbb={,>>~֭<M{Q7p:pppppp yB@Qt׮].ʕ+wII q5ms͚5#p8~ƍ֭[@E%ɐdɒM63 GZZƍ;{nyGaWqttlРĉ]Ç[YYL4iկ^=[t911111133YfWGa5kc<՟Hࠠ O?K %"I g/ H8 }2\A3ǘ{٢' lmm$hoo^^^Æ 9s=zŋ=رcN`>>>@ ?~<"`@dĉ.x IDATaؙ3gN:{YfyzzN81((څS[( JRx;,xcߏmƍ*իW7宮C|֒dtR߾}+ K.r###q…1c4oΝ;z:- \.ҥKǎ۶mۤI6m… ]tahYtD"s玃egg3(j*.Æ cڋ~-''LMMNhPPСC(m۶աj##[1gU9#.n9nJlmmAӺ2Ta4!p-ĊZrDNQbڠaSO'i SWiWj577/?cnn8::^z}K$&MDjc A"hɓ'O&˳g>x𠟟_M9BP"8U[___͛q׬Y4R?qرc+*Iw9880&&&@,[XXܹ͛FFF ԅӠA7 8n``0cƌ3f85eʔSN\xeB֭[Bslmm͌fgg{{{3FɎ/_ZXXT7,p;emNG5k AxT@t_V! tS"EҒbI+q ' g"$\(1KpI'5|Dq;w|֭4MGeòEeffZYY 8۷o߾yÇ 5gϞ2e sr{O 3QOtAAΝ;8Nw2뗐$ZXXP(LMMO:sEDD52==9Ȩxm>z|С?>}33`xڵ/?^PW=yѣPLȌJ]wXںHYX,.fߢEO00 Pdȷ@ԝ8J|"X~FLX=H}G|r~~~BBBXXXzz:3 ɓSNdM66iҤ[n.\x;vXdI5j]"i)8w166vǎYYY޽;wܽ{ڵkW©-7oRxɎ;={_U&+~5kN1QtdnΝ;+V^ݩS'P( xp@;ٳe˖xݻ*qy\f{>T=,Fyޢzl &//|.t9J\H*Jwr\ &nL˗7V  ᦦбcdzg6oŋ۷oGQa򊎎޸qc5Λ7erikk#GDGGn߰a{ mҤ HHH8rJJLL\xD"0m۶:u5[[[ .I77+V}F#ށd_Щg4} ~̿>rnNgN2BV9MhijzٙTa!)Te* +e%o36v"""\u*es@.e[]@Çceezzy).Zz,mwkٵVtE\_Z`E6y{Ujfff}Cttzb ̞ޯcdU;uqf&=xJJDF)`%rXF q\àgarcǎmРŋ333 `}W0XXXcSxM!SvonB@`r8M8N*8)wJF> p8nݺuuĉ2L  @7*y{Μ9UPYo!tIMK}_Kˢ&{;¢'aAT*>wލ2bĈ0m4AvQDE/>d333?޼Vhڴٳ{Y'baс捋__֥/ACCC  |r(˗oܸAP&{P$#]]]gΜ|U?ׯnii6mzΝzt֍̙3ׯaEU}^#888<<Ĥs%%%k׮%I F6m6n8z> E"xxx{{{׷Zݽy)3g:vح[h5kMӛ6mr(A''m۶o߾"Ӯ]'Od29'3*wfffIII/^LMMx";v@D;ݻwiܸ1s2ydCCk޼ӧ YXXX0@СC:eo߾#GTTtuǎ666fffz.fΜicc7o~ԩʔ&N+eڴimٲf͚gϞѣ~ED/^ddd4i$99yk}͛7͚577bSSS Ü,X+'= 8W=>rallRÇJ%tE#FȢ"QF1RRR/^ܤI mۦNp˗/?s ?~֭FFFw z捞`atXnqg@hhmۜCCC322 vҥOV.۷]v2dǏO.֯_ ꃕɓ:1h"ssspqq 4 DXX؉':t]v]k=QT oРÇ;VhCϸ; HqF3i$o6##LMM P(!""#H?Spp0ٳEm͸'N@VVR^?xyy՗H=y%L:uŊǎ;wTTOݻjmmE^sӦMKNN^l;`ܸqpɸׯ_n͍ry<x<.P(ԩ ׯ_?}6mژ|::?lRիWL~9a?Ti?~4(`>7":t(yĉm~Eti߾H$ Y4h|K={vϞ=+Vٳ]TT3c2A9XX>=?XzymРA0LmE:uiӦeaaa$Iٳgԩ<_{{{ $$$|&0>LsL/XYfN޻woDDDrrz" |b*wRȑ#&L(:883npFf͚m۶aW^4hիWŅQ޻w$227o622f]###CCCK.eR(Q%?~ƍݾ}suݵk辿ѣG||/dnnptt,;;;}cO>}}?ÇDqqqL=Դfr.\آE&ƍ[f I}viw|2 >aÆÆ ;qℿK O?É9rM߾}w^ͼ6:XXخ]nܸCӧ罼ڵkW\\|ɓ'^gȐ!96mژ1c~ 6oճgϨC;Eddd 2?mڴs8pvvvG}9 f,>>QF̽/35n8L@󔝳zr $$$"jѽN>T>abbdɒ ޽{7>>yS; ooo%1c*\ 6mDK.8p ۷o̙ׯ_o۶˗l[l9~M߯iYXjϟ?711Yt)3p9s$y7nGK^jUFF6lܸ.XT/h~o߾~;w :T${yyxDDDpp0ϗH$ر#mڴiƍVVVwf N:. d: }ܜ47uN8pjryÆ JeNNN} Z@ P*A`'ՖY|NcdUB+W޻w/??֬Y`O/V[}QXX~zE{?D [YD^KǷ-[^} da|V2Zl...UߺKkJR[[uֶNNN8whkkۨQǫ/ŋ5/QF5hqԨQ(޴JXkHR|yή(8z[CT]/c##CEFF=ZR[YY]t <HeJJ5$իW/f#<0a¸q㊋MMMի=z8{l/֬YciigfQ6fjد_VZ@XXݻ_xaoowޡC2Ut, Oy9N=lmmG5{l(MnOrцnQ T^;Э1UHL(xpTOTBNHZJ*&#jTPTҙ4 WߟHBNƑ܁\:Cc1óPEz-&N>p8 ɱ;uN1cRSS+/~Gܹ3Q,?xnKӧOkܽiT?  }|KxykzjRƍCBBLMMu~F2˗/ׯKxyyyE>}Ϗ$ɧOWo֬1k4h6}􂂂 APPavA`jTdO`*,ps N{7<1&~Et ʭJ6cDlzaJ2TP_26M1˯zyyyvuu.L&xPA~` uwwWGdEɓ'?|*.LJR[l:'+:8 dHuDjZ]O)T.**0`+s\.wРAJ**''A"-Zaӧb1W>qĝ;w͙J:vإKGGǤK=5gffj~+WhѢNRoOGϔ5jbBٚ/ߨӂ#"RyF),PlTW "?qr`g|ɥKBCCIlڴٳg9r|Æ 'Nd6Ԛ_ONN5ZYYݻ}Yðwr x#F(c4Qs:(UaرC.>>fffC}Y}k A_^A ˗`@M*\2|D B99^- ;FL*dSd)2u@͖N̯}h۶3337l0mڴp~J5ydkk˗3%IrѢEO.?±k׮ɓ';99a6vX؏V0i[7ҥZimFjj{o>gΜnݺo^>ePB\}۷5kΜ9N:{٦邂++2љzUGR,((ce0P7f{抾-MLňjx}׋2hڵkf$IN:5//LTQ~]]][*_gΜ "Y}"營8_fC_D*(u=R1}t=<<_5AAAŋ33 5_M,\.WT[AP-..p8M6arxRd$11$Ivԩ,_<ŪK"TuZJ,@(j*r53^ wg ۔&@Eر}رw}7j(j=sRTP&NTZ^-bcz;`PoҹrQ:z\^~"{y͛׹s'hΝ;ڵj<OfnnvZݻĉݻkٲ/Igy۶m<T*_>S[[7Yj222bqnn.3aL:ɓZjذajOY\\]My͓/SJ#z=zRQr{p{ Y|/ aT.E!]X`z^j ݻw7n455СݺukΝOvuu("Hs@Akkk[neee5nٳg˖-=zt9H^ lf4?arVNV'95d IDAT'?⼵H*eRRL&^gg .X"$$ ͛֬YhѢoF&5mɓ[C-\prI&cfG?v?Ag̘!HzO?1餥2+W\rE͛Wycǎ1LD… |̙3g̘C)`˖ p?/_=JB6DS q/# #F5Y7J!Cz}]/˕ .dΞ= t_%%%W>|6m*oE4ztkk/X2Ǐ\'{(.=]Ti?_>%_#H|4r9s氋|0#vms{^]񆱵YU{? 0XXXXX]vѢEZoӦw^Ϝw~TR}.BUaXXXXXu,, OW0daaϛ7uM4ٳ҅ݵڷnf&L^^k˖-i޽lڴ ݯ_?YYY3fhѢ{=V^ͼ٫W2ܿp L$xⅫ… k YV\\F_|QՇ׷nk)))=22rȑ̕bŊ&M4mtȐ!. _f%K|2H?EQÇwuu|/HHWWpuf/! `pHHOøys\]][nիٳg}"; }\:ЪU+..._0SN5JLL?G`ɑFFFmڴvb6Nquu)`ʕ/**2223fkX|g޽۶m#ݻ&Mb򉉉cVre˖?2e՛7o "=g8p@ll'Y9۟+a~(*##1c೟%ahƍG=tPvHdvjxO>ewsnam۶+%441۷ܹs̒a111yyy&&&/_>p͛78x&ƍڵkϝ;STTtIA"""޽ۦMDp8g2TY2է5+@ `@_Q"l., ޙ,ܜh0:ڙwuMy0eʔ & ٨GFEE5mڔ$eoܸ HΝҪT"vZfpYlI@wMH@cK'cccc===W|~fd2Yrr2: >-¸CCCW\\|СCum<{ E a:t J###W T4Z P m;Cn}U8%%E !¬ƬofccSs~mիWǏg%q]'%"=(jӧO4 +CJAy \\P(m>[0} &8;;߿_sMv=Q###ek{{`6l1c+::#88X(.YEх ,YDLR3L}ǎO-R5:_}^Y_8 0  'oh`=O;`FeMMMwѹsgȯlTkdd԰aCg+txӠUOE߿k֬)Bao;f4M̙=K۫ϖ*8ŋ(z!ˏm/og1_z%Zl3МP*Ν;/_477߹s'SCCCg͚effv`ܫʈ#߿,_#Y} ,!`[GHHWM\S?NcAT[vt4I޽D"ъ+bbbC߽{WuV=ZIOO_nӽ>6}1߇/HMMgvmoٲ%É:94))iĈbvvvgϾrJn Nt2@`سgϪ?tE"˗/ܹzO``pB'''9r@QY\:>>>~ٻ&{(DDp ""h2۪m]X[ :pTY=$qz4DHy>#s|{=fc)x;ɓ'ƒ0{c_Eb.M, `%J%cN-) ^z577?z`IyuuuXhl*Guuus 77777728*%autt>߿?%6D<kkPTxlRӹ&z NСC>}z555lPϷ}1cx 9s޽;&&槟~ڰaï:pflC5j6o@ddm۬NzI???--?S8p@EF X`߳m8p& p!TV3nl``off6bظqÇ}SN8044tĉeeeX [ff&7nQOnݺlٲN+TJǎq3f8;;o۶MEkT45aT8y@K >~9Id2^*۫hii9lZPP$ϼyԒJJJŒtz^^;ׯ_5777oϛ7OCCvȐ!ǎ㹉Yv7Hzk@*@8A,${#:cJ{CS޽{WVV?~{捶;ɩuvv>v옉 vMiccS͕J- VT(33Y !C1輛>IIJ*A sss@J ,A 0Av Aơ= AD,h@A"L xn1;i$mmmUU#F<{+D9K\\!WRawv<Mum۶HMMm„ Xj@ lllv}èCKʦh6=z ͝qo rE~m36<gΜ~8ݤA>$]MIȽKuVO5* :6~u^ *A޽{g͚5e?=zdoo/gժUVVV7o?e\?w +,,477:tUWW\xѾkܝIm?T; @Auw-bXt:}ذaS;;; k癜Fׯtkk1c6LfJI$Rw]xqPPP hΞ|+U\*)Qv!) ]*SV7nx{{;::bGJJJ̤\!TDO yPGVBlܸܼIWW\X;$L&466nٲe… im*,s/^\yo0Ɯ9 P .PJJJ"C 'r@oA %;-cmyW$12ljj$G 8?k֬Aٳ򫠭mƌQQQ"GjG>CCgɻkǗfXT*۷N ~CbxwՃ?L:RM" ƒ%K,Yp***Ld2+**뇵+++cRXYf^}m0s]vM& 4`cO)D ؕxVEؕҒ{n,Aɓ' KYL#t ʭLӻf,S`;,UQQwukkkYYk&ml6{Μ9;fF"֯_.PȈH2?4j{UZ̷0_^WW7uTDk|| ~G{{iӦEFF <; A-uʒ{%Z+JlЦ]ǰ/ 0`ҥKct:=++5k,\pŊcƌfٓ&MAϿyɓ'4ׯ:޽{MR  OK  z):ۥ>iRŒ%m{5;w*Իwڵ={yzʷv?`[[[s_]zǷ888xyyIZ} ZfX8E[:uv ,{s-.. ;v,7ad}FFF._k\hg0LHH022Aϟohhpqq[nݺ5rB;OU֭[n/~zDE*׭ÞXSW1$][lLPQoj?@I^! (!  AD,h@AI着*ԁ HC=:kVhA 0AH0`?L&t/^̘1̌JhϟnGSC"FUF#kG4ǰ?6_;\E}\̭],lڵ(00Dt{pp0_J T۷o̘1{ WX;nLjv`6mR뼽Y/_ʱN1;`t$ݻw4MII)666%%e„ +#H7Mu[frr枰0SFgI>MkSeQQQ۷ovZCCܹsEC:*--mڴi.]ڻwo^^^@@$q..+kKNilwê;wj^JPU2L'>qo蘔dee5o޼?s_*zzzn imm-A)*jhkhk`8~% %Ɋh5Oyޟ?ש Ba@0 њ >|xʔ)֭ؗ[]\\?~lkk+444?"K,ko߾իvYlɓ'ǎ+ġ+;[NK.33FQ(;;;T[[[YY)Oga H=zrJSʤ)( ;]G$)jkk[ZZtuuonggL& vltst:]thjjڵkWppYuuҴiCǏ::x kHMM"=<<\t] p:38<<[\Hڿs+(~ðlw>ֶpB}}M6h/--]v={ ZΜ˻k&&&2 ΔXP(߿督v 09Jv%@DaTml`8,AQ#iNE"***-Zh"SYYIPcSPRR_X,VHHPoǏܰL&sժU/^{NB~-g|zUؕJe˝XJiiiQQQW\q%&&( kG.5J[8-iiQjQZZZ+mWM(iB$ tsPӧOLK:il6͹sE5D"-_|Ϟ=2]`А``(aܺu?4zٳgGFF;6888<<\YYƍcǎ.EA)a}A__@D AA "4`  biw'o  @AĂ AD, ܍&MVUU1bijgWRRׯҥK𙦦1cnݺչ ]M(  jj6E6;w(9p&0?}.< /۶m322RSS0a‡Dhjjjhh@}}=ϙ7ɓ''Naaań/ᝉ o*,VUo UUǎm˓gw())-Y޼y3b%%W޽{ǧfϞ}ǿ{=vؑF;wyDu32k-Y3<o/agwRvoةnB##ttt@`8zMݻW__ }ԩo~!Ν;UUUi4 ꯯777?_rssKZfM奭Eƪ[kۻ5ROONs\ʓwتS7W׮]8ݻwڪpDZ؞JJJ A*Vs簧.ka`O~Vx&VMPQDqrr?>>|(wN癧ٳepp8ɓ'_.XuuJ&M*vqZS/ Zbkϫ]n<y{nw#>>+777??krIU IDAT功mDkD|ɓ(^h4"7]Ǟ7{{{y;;baÆaOTTT߿/l || dPh eܹP5iΞ|%7oaJJDCCb 7nwttĎJt&?v옱ԩS:Ԅ:w\EEE {eeev $2\*ZvjD}Gev2IڿSԴP(7755ꖗ k700߿޽{L?tAssѣG {Spuu=~[|}}[ 9sj oa1@&-D]]lXFRRL2dL8;O2h޽={駟jjjlBҍJIId!0Qmb|c; Iw.2ljjJ$m?u˗/_~b` Ǟ)`WVXDYR}1wޝ 񢃒z衫[,Yl٫W.]ԑDƒYrUum$7&۝mm HIhL6; H+W ƿ߾}{Uǝ2̼ϿQx]vv6J[`ɓTWVZ5j(a dY@&U,YV\=; SݻrZŞ=<=[aڽ6$$ƆCq8Ozyyijj*++>ٳggƍ RVVVVVvpp.㹬\v {&J:9Z! AA "4`  bA "4`  bA "/PrKlllvoJ ` 7D%ӔCd,M씕{]?fa߾}x\(Gљ/޹sgPЧ`aJ@$cX6n؉ RM(;w&Nzƍgggԟŋ+W, c۷#|}J sf֬Y ڳgÑmkf̘a``?Ñ#GxdȽNa%Ld2+**E+;X4˷******{lhhXVV&q,k֬Y)))JJJ#1tP ?wիWX(@?Y,+ ѷCQQں{ZVV& 6=gΜd %7773~zlC^uP.+..YYY?Y@XTA Pf…+V3fmtt4͞4i߼yɓXK~ !={c 0㭭BCC`ɒ%***}\|9<33sǏoiiqpp ,XBP7R;rro&Y1]?IwsUWW;ĉۅYhg0LHH022j744-n9rdW}D֢Eaz]˩®Uvv6LN&ȷv%A PBAd  XЏA 0{F! Q=~{}0KD m`vdrtAd2NǞԐd2ldd4rȘvxbƌfffT*F=~'_a:^WWo |j85*2lTe4vdLs O*2bn\?bec׮]FFF%%%ۏ9Bطoߘ1c {=j}ׯ_O&9"fY44T5VVxRCΝ,VӦM5UTj7K9)&q2:ݾm۶={a޽hJJJ)))&Ln***OVaAT%k&+a k8et݁s/ZZ!*!mqV:@_N>}k׮544̝;Wt;t.ViӦ]ti޽yyylS~ߌsN^u.+kKNilwê;wj^JPU2:^$^90͛KER3g\dɀ~W==Ca7-OpΜ9A*jhkhk`8~% %Ɋh5Oyޟ?ש =I D ZÇO2nc[[[aTY,ٳ߾}+w555˖-;yرc^J̃+@m׮kTĉ.͛7}FYYN ks $IWWW*E3f̰(Oږzoᔖr }}Vvl!-@.33FQ(;;;RԣGҶ2SSS 6\~ASSS DHRRe2iJ4ŎhQ&Iwږ]]۷577d!bqgSSӮ]eiy|8I]4m!#ޢ@&j lh1T$sy _9 ]2/^ryh K)^5>x{5:fϿlB"_Ҫ kii?[X Ggi58xr^|5cּQ;ǻ{ Zb\y455s d@ۉ~99mYaM'6J.'Ğr\\Lz͓ޑ"hw[OOM?m}gԃ{T?nY_xo>l6GCC FIN]]E+*:R$STT;?9z9Hk7 `ohc0>pC qzj5kjH$p8$ TZZVQQoֽaNn\>|DolloGTUU៼ObvE&#WhDc9C;>t#3OSQV6|w3` KK;fOCCPAA &ݹo||suAH)c~Ս6|s{ǵK~X8d˖s6*)?I.q+߰A"O_^VY][Et;\x?vJ:ᔩ39Э{ds/)A"ߦdhO,Io)ijj~7oʻA$|%1svȥ".eAA$`h]thD:ntMhD芇A.  XЀ EK̖te"ߔ/t }$C/%<-|gH~Y-QY e H-A @AĂ AD,h@AĂ AD,h@AĂ AD,h@AĂ AD,h@AĂ AD,h@AĂ AD,R9'OΒ޻wDw5]twޒźFvw0fX?Ò%KxVٳg/^tss+,,]bŅ n߾}Il$z~~gPPz+ߟolltRa5?~L&mٲ޼yPTT4|?) l߾\p#z&p;w+??Fl1b)#iӦ9bffF^^^))) sH]/;L&WWWctuu,--T*/,$,qYtrr211QRR;v|.RSSA^z\\\=zT[[͛rxҤI$חJ544v8KSSsժU>>>ÇظqcZZZss2TUUCBBƍWWWT*Ν;l6[SS)dWWWuu 6tݹkk3gb_[['z9;;lʕXJo?l߾{&&L`2/^pssA.ARÿbJqll˗/-,,… w~uF2^7oJJ#^x/_N6 0p*"HT7nxY%%I& ĉ.~kρߴ+UR8 v555'O  Ç1BWW?BCΝXA:9NDDĔ)Sjgg7gΜ0j業wCyYYY{]]] ƅ 233G IIIb^:3gGEE3>>>++aӦM⏯MMM$ѣ\L.]t&?G# ʡN߱c8Y5d2-[cǎqŊ8//˗/`?Z~~~QQQmm-M_|URG^^^{0`ݻ;bW%@򊍍8:wbZ''' ү_p ~mhh(6>^m޽}}}ϟ?vX1ߨ8{۷/X`pEFA .Ú5k&O<`9t /X?E@@֮]|iӦUTT,--lnn>sL;bĈ%Kxzz>;-o]*.uJ{ezd~^|Y]]=tPؼy3~-"BKݥ.A&S^^tҔuu#G3,([RywkBch2[?#F]W^GDD9255ٙJbY&keoo(s笭 qjcbbۻw}S3!cɣE]]=44ܹs}VŲ kkk;tP`d2 ,,l˖- d6;;ɓwÇnnn+Vp۷&븸8"ѣrqv_|bŊ/]kǫyfLLٳgݻ}@X=T_dzΚ[=lذG@QQf(Y&'#8TUUCBBƍWWWknڿ`ll})SLMM7n/J~ɓ';88_/_vJ:IKK ӧO4hЦM\]]|Y=<{hii011133ۼy3ȟ3 B$<<|ث۷o_zua˵SL1005jTvv6ȟ,rDLoafzkhhhkkϜ93""rn(ZI}O㿧h Ϟ={IFFơC^z%0gX`"b&&&N4 D-իW===X,dao%+l'www60!Jnt[R466ZZZ>x@SSԩSX0lذW^x"1[LT_[[[YYY^^TPP-J,lOV:zhnnױdظqcdao*C2Zy)cX?? |NA^FFIS9]!mllԤYZZ*pAo֋Wo>ϔJ*+>`p#Dcw}}}7mڄ cኊ!C`-x"hhh899ݼy L ={DSSJa9TFJʻڱ kOK晤ݔ7nhii \qR?SA)?o3TTTjkk񧕕'۷YYYϞ= L$<<|x̙(=={zzgee544$ |SDLofzԔs̎;DLuy|v;Oܗ$K-ߵ۶msxҝ"]zuz|һ?޵kב#G3 h[ޟ}Lc㧝2wܙe` Cr'Nюlҥc+VmmQA@B`)@ )tzNoy$:RVAwbSSSAۦ :EhXxN`0dhvIIZZp~~~[[m6ͭ)' 7oތK lboܸáPh``@O.((8vؕ+WkMKz["U} ڿ@?[ o*d2  UᨯrAڿ@?[c:UNo[ s<ڿ@ЇD`)@ B`)@ B`)@Jz|pdtDug& :_~~KmzlIwUqfˀ{)@ B`]`O??h@f_--Ŏ$mtYYf*y<55EۃݻǏO|7a!ēOoOǎBw.6\Y/.O[$:x||0h%w߄;~|xdL__xӦ{ZZoBtvn&>1#Jtd|\=p`w^xo!w߅O,~=]]s7nD]+Ù#&B`@lؠb^Vx`0]ur󕶶 ^oSf>6Z[WKJ!EΝz#[Zuuݺu'?f_~941 <%"0@wGv}_Up w~䑜r_3K,\@X,Yᄏ%dΞ-BXtEC %.[ -TzK9g|8K[ڦ;33GhdQLk0hWG5+HQPEвL5CC,^CV[乮|mxO8ArJ!@J1-)%H |>A%Ykbn 42SI%CMmj&Yf 4 nxefP͚/Ss<7M0~Y+J6űPS[|n+HO !> ~,1)έ+FPS[֢K!L~22 Y~%UZPS[1R94ݡ]p5()h9W?[*Er`6˳y;q#Ük?Wg@2(Mp]/D.oK+H'=b[+(g vpAg\ƭIDAT8˥oRQ? 4M/::vpԄ,:87ѿ6&t.šbBThr}м/19'9=7|~۶mi].* _ONDQZ>OPUi:9Ms ۣQ @H |Htq#Mp28%p9MCe/-1, & -ׯhEEqsF',-` >p {3B5B Q+yC0 2wb1"M }kZ LGKOum k^8N$Y{ yh6t>2<4MXhԬ-n|etT\Ӱ v $Ap JTZfq눠y-uc% wON$y ;kIDկܪ(vpBX7]2xoC+)aUEZL[;r2"d^A+Kv1ƩɧeݢR&ʖ'cƀ_▯FƟ_>{ؒ?:1asxVπJQ8S3:p "VW[rd} q7!Cf45͡u_¦W׭:;a>w~ZO@cc% A^?9ԦOV]U~hɇb/tH8Nb8auDеȤvioWIv9ﴍ¬gj'I#.aFZ%4SU@a8MC9| CcI6aҩM”>0 WoV/Ti]0UA0BP+Ej壏kH !i2p>dݲxxwqu%e+:(wlɻ$fm{M3@TŽqdm{,#3lɡQYљ.{ /um*໊̰OKeI s ;mcy*nYWIe$1cVڶH1 !vhӨL>Kq\{OZgFcTRZ47N`T"cujsj"-[)ݡm"'"xU&Kxy .#wjx$vO]:q`w"Q*ջ颲ihvlَ$O8O S5|sx[ jx_ORIUv_|ml:w Wn>|Sr`/[!VMV6,S."@kZc gmWws$ ,}8n_\g/M?2̷9=3s*wPVa{8 Y{` UX.ͯ "秉jխ7P+:0m;z~,}ϼJDӖ>_-i q^FôwdKHW]2Ҕ6geXؠON^wD12ǰGwt`HA 0z}6yBo9JJr1 4XʐUo)Nui1r!0̞AHIĤbʬ_|]$u }lj {F{j݈YہMIxܥ?vhǐDĖ`ǐ taK~ì=9EJk[Yþx%}=DҊFVXED}!׍mÖ+ #"h:U'$.g}H$=dWڡOI<&ˡ+^<[v(ÿM5$dL##I I6!<Kj\1Ƈq~8BF5iG3ٶjJ%4.SE7kB#JYt҆ %pĖ+f0UqdX\C㉙[?ǀ R*éDH牙e%F̤sE )"IfZJorݓMY?*&~+2X[pk/_ z)uX-MfN"gUgVSIVTsK* {("1 ~۸(.+*&:khG.Jߗ^;kwmBq^'"ռRhX.&@.Ѩm'8ME 65 Wʪ["fH[CVܰoUb ,3̷t!&گa1(_T.S߁s|oX[E-=dՉ0{oaJ4@!Nu!j#hf4(_b/]lϑ)a >5On eR6FX *[;vN.VQQ=iònT\S] /?qe4໯"lIZaUe,8ߤRaA~ ߎY `7 ;o2FPV#  1P7g?s.sFϻ(Y4wtKUEU=43 \M떨/+[G]1}&<±}~ɝF6~RArЭX'DFbR#Bxs 𶭢Ib V!KN R'%Rsa m1 ߿)Gv,KQJЂ8ϫybM}Vũ0dbD݊UFKEU5G({*&Lm5V#H1]V|1]1 &nj[&&0_I8<SwZ|3ŗ.A~"Kwg띌Qs:VQ`ԙNg?~~^ Dl/&E4))"2Imt Ī$ aX%܁!cIa4 ʋ_ 0lA ԩ h8KHza^(VPiEb:FѤIA+ "J 0C@ A-cɃ ȗڐB.aHF1LL-]]͕'$,{G;9WEŬ̜}=5<4xP{NȰ9XY{$$T\~JUHXV2[V\\ÿ1:@J'HLx؞(X̮4 ((d6oy'n 0{ P)WJ` L)]{.F+Uz" ͡;5^c}۽VRVD@jCkƽEϖ`I@Ɨ2@58JK΅A>y59`*m&Q?cK5U}RZ~bΗb 01AڈEa1sRp]*16>ì# I+,5 9| sZdq_l`25%^`0 BX7]2xߡ-,K"# 4a֞e0:"h^ aݘw9h,V`0sxQYPq'~re˟h|e0e|< H;. @ @ H;. @ @ H;D 8;;*p~ϟ?%,,Ӫ"oݺ*:p@BBBϞ=Ji QwQ.]֬YӳgO5;HLL quu ^fL&0怛T*}i׮]T#À$۶mS%[nUuE+MkU~Gii-[8֫WkצS>|}EEE̞=ۻgϞ/^޽ܹs}WUA\߿m۶.]arrr۶m===O^SS[l rss۷G`ȑ2,44T $wiFq ))) y۶m.55k׮#FW8Ih.J8kS y㐐.]:tׯt:ʕ+N<#===88ewvGFFRɓo߾=;;ov}vsrr\\\ϟرS礚wṲ5k֪UZlYrrÇ wŋkמ>>TŢ}8a,KMmyWU@ʮTʫQW7oܽ{aÆ?u[T7㖕[TTұcǎ;vֶBj#NNNuG>~zի6lquuˣ \nMMk*e\\\öw8p 99iii)))'N[n4ussͥ _zEm8;;3&333333##ѣ{;99>;vyZCc)S7.55ի .2e }oܸ!Hy?B7t㋋kjjl6ɬػwD",ʥq~猌իWS3hРSN]vM$%&&Λ7ϰqZ6 ~ &;رcKɇfhtvŊM60a¼y ((hڵ'O.--ٳ'5+:ܹs\\ܨQ*++bbbjjjΝ;תU+S.\|In݂$+=n޽gϞ=zhDG?Κ5+//>رcM6YJMiy{{_p/3";QYYy)儡E],4jևsѺpև2W_޽z5jF:{( V7|Dt;Tn/s_fܾ1|Bj]VF# ~%Çϟ?=2dHuu9m4٭^v q㯿p8ԼRӦM]]]Ϟ=;zh=,Y8L@A9E#2#FOHc6|p^m+hT߁ꌪugϞZ%7n4Tp%w tB"IK.hȍ7۪U3fPtW4T>]= L{a 4Qw7$̘1#>>>""oMJJ3lnH;Jڟ\Ґպemh|ô?mll=v\~ݝz?66666ihY*NQA=z=ԃ }9uU D"QJx&xxɉMTJ㴬^^:7tjV&~ݮQ7npqq G===/]GiXF~ `Guuu]xE-P8 Ɔ @Ued< tذY*E˱Ɨ?ɓ'TرckԆGCs+Eh4`2O旖VdgWJN*+4(ĉGiժnڢE?~왧.|h%`kLtL&!k׶-xjm#<~gϞ #44TFnsk(̚y{{pwwwww=z\xQݺu+,,LMMH$۷owYm VYY]S#vp` x߹2lƍ+//1bĴiT6"97,H>̯Gz˗A4*L)t h&qƆѴ(;[vgʔ)vZ|͚5<7K,{򆧑4B;bPi0AEO޻w}7]':qLZ\UUM$e[Tq  0 J 5h4a4i0hР׏5s[l9}_%̙qƗ/_Ο?ٳ8?vvv-|~ /A!bT|>!HcY4MY߿iӦ>|xРAVԩB;eK=`ڡ48))SNaaaݺu۵kǍO?ҎWrsߍDauBJ%L&qpPp8ꫯƏ߫W/`Fi!aDv!M̸}Chj5vr|0a& RN1B0 0 F`0 G0iJ#']Grs_߸F$I IH|]8-V:B B _ZF3T( f1)|||/[lmɓ'/^XGCaU#VFfffNNǏnj3i$Ly݌H~I^}%4Z;&&&!!9;;kX֭[Ҏ7 tMp(Sxj\ LB NK=H<}t۶m4iy-ʧJ~RO:I7B:@ |ҤI}ia wtttwwOgϞi&<55k׮#Fϧ ۶m9}tj=>lŚH';ߩY3oWWW//2Fz@ /iiiǏwqq<W\ 8p Zxqnnna_aϾs1<pr^|\׍qcްܺu Tgee-[,99Ç!|`޼y7oVvQڵ Æ ۿ?Uegg'RDX4<.@-+:ss\.|`ٲe\.ĉ:tu@XXXa>4'ܿO=Pf6!\\\'OΚ5kӦM/PnXD >T7 Z;˝@Ozaa|6(((ZW ⓮{{7sMiiI 陙Gwqqy5ݻw"_' }ҕ(_ѣG>>>,K(FFFv͛V%ph$42wTUUx>ܹs͛w+))quu68aX']='u}`ĉ'NT,1O:E^^>}I߰a*h{)OzH>q3O^ tD#IבF" #& C7 0,H;O0DCbfiӦ={z?_`V>}:!!mڴIHH0H;d ꘡B'ή9ZӉ=3g}ll ,Xm۶]n߾}ƌiiin0c>l,f~[UCg0 [lz*ڵkwءvܸq#444""fΜiӦM0Io8u͇ovcꃅ43===88Xw#22z\C @ \\\10O*Ktͩ[]Ϙ$KΨFLSaf͚EFFR*}ҕZkLz?%M ?PJ I2''ڵk_~eU{+b@tZQ1OI 4Y+ ʹ'].'&&O>wQ_E7"IWjuSCʲBLtj=޺!!!VZݼfqm'%ZJ V7FL#DJ>,S8L?R䓮/+ ÒI7u+KzÒCIn+#  `33{A| { 9j*dXv4OwP{{~P q.G+0u`|Xp]n??Ƞ؀$};ԇ4E.og#¼ԍQ.YdȐ!W'bڵj۶ڵk[6pi8z"1h1o|gC1o8sL6mD"ŋcbb<أG ^|9%%ԩSnnnV\}= .{|8X-X8>M6i-[LJJGDAځG0H?R-[8j1`۷k/>}:66fr{OU" oc&0U\ /oUC]|iB5tc-s<l11Q*-NNNׯ_ɜ6mڽ{((VĥP|s_e(aS)))]t|ÇK%KH$h C2 哎Tz*xOJJ|AIݻѣG>|XYYaÆ}*]I>߁ҟ_>sf|}EEE̞=ۻgϞ/^޽ܹs}WUA\߿m۶.lٲ%((ͭo߾=RSnpHJJ h޼m1SSSv1bĈz?%f"R Rn_;Ӄ[l)/ɓ'߾}{vv9۷o?''eǎKOO߿?uyWULggϟϚ5kժUxbڵ'O 駟TUQ<---))СC7o޼uUhʔ) Ϟ=kӦԩSFcRwwwo;wnذa( {СХKOOOV󮪀,k8o݊9xzz^vۻRu( ~ɓ'%KFAٷoHXl? h_;4iRRRX" w_PNNN,ZA֖*0Ln|]%5 B(yTJ֭4xYY|@-**JIIkkk[QQP1KxxxVV⒨W^ݰa|T.[SSӤI}QPzn:~7)Gkjjl6ɬػwD"*xTT?QZZzjJq tԩk׮Dy(kHY/8q"G???dDz XbŘ1cbcc[n=}1c̛7֮];y-[%&&ꙍǎ[UUժUѣG'/_>x{={ѣGFFFϏ?8k,/رCv#pѧPpٻw/5h ШY[Tέ,~7FFggg+]"=kN0ӇÇh^}GDSWX_|9q={ٳg}6Œ7j1ewVF#KTT${ Xhw}goof7ʩV@ځ@/;wlzZMM6('ad,e? Lj&mvZjjjHHA2,$$d׮]?#@ *]b;}<?>{O:B3I/a=m۶uV666j (/}}%OCEXWl8;;+^d1 H;Jڟ}8ۻ1$%G!, . ۼywrr}Μ9CD~-Z4hР>w*4äJ|ogw'FE^:$$dǎJ qܪ4WtЁV%O:_R`]ݽ-Io0w٭[իWO:ٳcǎݷoߑ#Gx<ߠA`̙zB8Fؼi *) >O"H$3L&痕)-tssӷ抗E|ے40'\>LݻwPDݻj? 6DGGcvJXXX I%t:Na)ftp8?W~ȑ#cbb/^ bXiES_ǁs\K;;; 0/ݍ0 '3lnBLϕ=zˠOZY;b0I806uqtegRW^K,߿P(3g899)-<1Rs9*`2@'d b ?G,ްaIuʞ>}z޽U{4t:t jMFTW dl; on߾~6Pb(--m  ӰOX$͙3gݺuK.?>A?dff2~Y'K$16fj2''cǎYYYEEE-6mBIo֬Vգ<+ }pRRRNºuk׮7~njU^nA66[PRɤ8:tH$'OF(J )|E;̦'N_ҖW^M6E ѵل &LxsgV|W~)))o&Ak<^J 4.4NV9sꪃBP>:TH$eee:uZ]st !R)F2h4 gi$˷џ|'>}cǎ˖-_PDOzX) &a0 &d2L:Z aYDEE,9yr3g&''s8ӧ+]mL4j7nz,DiieuvکBD>a4CB tƍѣ͛ ~F2谢p}|1 1cƌ3 O-v tBv#Zaq$ iYYϽ;toԬF2bXv tAxP#`5>aX``%K bcN~֭cֻw+WP<~vn݂> Ϟ=kӦԩS ++kٲe>,,, fΜ'YO:͒H|>Sd޼y7oV\)77v>>>F-ZtСC,kV0$uC-Q)v7UZ;)nO:^lYFF=qDttt֭[G=4L'֖'= }u^J))) KMMutt9rY蚚XY| 3߿ZcA脩S>J} Oi >J ͛7;99SyZ[ȅzaX4WIsncjHIIҥ Iwqqy5ݻwƏ>}ҕru֔?˼gD?P(hIaq|ySYx<^qqbccAOzTTTrrrVVNj/..+(::}hhۗr.]E\Ps^YpPm;Q$IرK.nnn'O*G0xOJ:tÇ###\n~<};wn~ sN?EirBއ%4*!!W֭[yyM L&:u_|w_~%..N+BM0v'N8qb)})ðE-Z> ,X`͑Zg &a zuRRRjj*uMw\ ۷o3 jY3f 0IZ=']Sgɉa+W1bC|h(3誤lǷmۦy6klٷn ^|ݐO{ t-0pP\r`ܹ&L%6 \`*{oR/1e&JAMkOMM ?|3Oz t0PP'M~޽{@*zꑫhV>Lqvvϧǩo.޽رc`ѢEm۶E>|uT{ ofdO#ݻܹs=zԺukK;w5'0 0n,)'G]\\***~Sã\`7|S{#P>>>ӧO^fM׮],/_\;zw̙>}l޼M6' 7hCeee  ͛n.] d/_OzOtҗ/_̘1cȐ!oְ:NLL\/Gx pIDATt_ݥKn\I4UU/L%gΜ 314l2!O͌9cǎSqꫯ  y^z8-v'dːh\P(pe"ln,L8uj0 .Xv(| eɇjd'] _l2111<<<##cܹ.]20_|yڴi/^ڳgBՍX|蓤ux|333srr?~жV#c'=&&&!!|r͚5~ӧOccc{?M6EFF'=--ӓ/ƍn:J)1sLu3Ɣ>馛 Im۶mҤ˗ZC}WZEi̙3=[T+>}ګ 2o<8~ڵ۵k+ ֭n jfQw9φhbShG0 H$Bp׮]gXӧOq_~w PNa|9kG]l6Mm:)&B/U Shٳg9IϞ=6m|P&cavvv:ujAAU6lLUrĉ:dɓ'uIƍ㏩/^\ހW;lvyyyưVZݼy*TV}O>uPZb":QQQڵwp I[j{)O:|葯/^je}|ҭP;> 'aYDEEQn`ĉr !bÆ jL%B@>aΝԵK+WZjf䓎<<&CCCv4h{cӦMi8z4 Pza)<~X;wuah @ځ@ tiB\)amXO:0%IGځ@X&w ]@ځ@ tiBv ]@ځ@ tiBv ]@" RN4tDaEځh,\J91|DtCga1}y)儚;ܑv QC`% @ ]zٓ&>YvjigW7g 4F8F88A=yrm.@ځ@ V"x~퍹۹$)(.~mcX5nR_]E $IB$+*;vlڻSܲ -4$k/N֭[{բE]d4Dt;!IR%{X6mn<ɿ|ޖ#1\E?\paڵAAAO}zEgPAR[h#G3gRk7WT0/\(ݻaBZN-?|7j;?~<,,UV_~eqq1H$ iӦ]vׯv###[j駟~4ͧ@ځ@h AtͩG@sMe%QV>dH# r1iM U+x_;͛K"""vڥOvvҥKܹxb8{Çϝ;o߾gϞ~wiݺٳM| 4fA FF,I9K|prLFd'O"1Kyy/^ܫWjxe2d2ܹ7om۶-]0}ĥ@hL&hҿ?ĉt:of-Is8/9م ͳ0Xx1Y`AQQ'|CV/_Z?g}v֭.]0̏?x̘1666 +(( ٸq>P:VZ}dǏYfH{vh_j;F}7|M6mڤP#G9rwUe u;Bk2znE$^LéMťKܫW}e2q vn|BkĶ؅ɤf:K _ ǫ2mCkv Zj޼a99I٭,0AJi5#FY40H;8|X0 ykEajEځh,888qEh @ H;. @ no+ 0stUo h[g6aY`Xi KϽ+chIENDB`mcu8051ide-1.4.7/doc/handbook/img/027.png0000644000175000017500000012334312067167647020231 0ustar milleniummilleniumPNG  IHDRfcr pHYs D.tEXtDescriptionWindow Class: editor_config_dialogƾ_:zTXtTitlexsM,/RHKL/-J,SUuU005TtqU(3334Cj u9 IDATxwxUۇٚ^! %$"wPBRVR|AziJ n|,Yɦf92ϞyfvFM,!####SbY7KP)wf*%N9>%ȔiFxӱbY%GFFFFwT E{ ^!WBP9{22e~< VUI"n%\1)<^2LD6;_  Ğ?F4嫔9{22e~>c %QbI4ju]9@BU9-.@CT՜KGwTٓ)+c893BV* !! !pN #9@vV2ڧq}YEH%#CkY'#SV(N1s:fAPdI*$rS$8M'HÇ@* :KAAn AD(NrQ9{22e~ 9kE}dw ʓ`["?7foceM. lsF̲şgoGrfvvk/d];3Yo"5*[f=7z۾{W%0߿J +JTܟ> mw&bV ߞğpCQnUt:*dn&AkG E*$Qhop蚼4?{{^enwH¦oFҸZ~Jڹ( u'T቏Vkptga_t1c5qr }g.*AܤD8*6)W\̯ e7}Q~çoұ{&>>5IJ"$>> F&I"̬;_@EK'#[82Ah3#Gb'KNܵӭ 73œn譪,|66V)V%m? Ucf$ю(L$EbU"Hj;)V%Z;:* y#6ˌ}fGqG E](:ĝy%oY u~z/b:on]8ʾv8!^jNqtv#ei>8mdn{4~t8 hfY)Q3y$Q洔\7*'GRfD1E$QdO I I$2ӭd^1mn?#f1ӭNCnWc]2)N\٠# mOp%v}ӥZ<>K:m[o_ΏA6ph drfʑ-`Բuhc ڷhSb$*Uo@IOZ;w2γ ŠÒJTnX$%‹&zqzTM#:՗Ûdj1ڴҟ7\Xdg>(SNEIR`mL,|[ű`97]o!"Ptidڄ (,;]9MޤAd3T$e)O`5?7{崥wTՓsmd_ϗ[{|3o#(LɳҲNE-B S҇sHz- =."<|~xPdvp!Z-ho2m)Ͼ5['sz0wm+W!RblVI>k\킴[-:9̓m᧶`IM 4jy@j JLX'>\5j]懻yyw@(#qdjf,s&6ꀏiRS2&dWb*+~j}*%*ҌF9@ρODHOr6*z{LE_;v69k5h X%5!uѪDvCQ9՛/+ ;rex P*)?m?jliJFnZ6U/?M:fY"|P?U&j+^RJۧR/ !f"?_+J i zfӠjFR(HJtVMɗ>m M=ۘV_OCj |4jAGhWco,&۶۱S-`ٞ%wCxCh8݆R)0juu\l񖠦iR`W9,ApNr /os Q.:(IwQFOw '3*0N #ޤDgՒ()G6QA͓kq)DoVbђUT]2PGYΪ"%ɩlHFBZ:FB$%Us-͆JBzyZ%FC~UZ HM]wܴ܁ݹcXmhlh6>K!!8u}J;z5>lBWS^Z8oׯcD,pGh@b;JcBP82:'=Qt8sRDZDJ6/ϟK4$6 vՄJvn߯t_wBx/!c=N4ifw,v4z+C M?$Qແ}w^ @H; p+΋u:gp8d)0Kҗ}EoUO>6&m$&I>)nU tl<&mU }rA9@]E ` U1jDA")QӾK3݆ۘ46'߾fZ$m6Li:gٌvdLqpW}K[IBTd/L:nO.G63 ,J\z p|ah} \Gq*?CU~AHH$%āӮ>1/ N;8nCo0I $M;a7[eC EǍk $I7 Pvwd>Z&W2K}nj/sNەrX? bhJK2et_ID96^<{}M,Z_n1fA s3 ׆M+!Z͘3s/xx""D4k LTN35?zxSNk6fds_ӏ|BPk8qt?2X&.""l6!xzYƱzxS܍sM %6hlƓ^/OgsoQX 662V,ډ :V/x^-/jHBb9'j$(\GA+1T\MQk6C# P[RToދ-k~CaKÔ]Qms:Q9 dTD1e}G^PFvVk*kC ;x( Ɋl%@ҹWo,?nn:Pk9m_vy c:2TQPق|̡ 7D@hU><0#M_dh,3/?jI>0XA\)6`_A $FMRQ@^sz'`RKӶm;ݬ;,e3)s.2iy|P[q{iMy VnptgݭKԬ߲us?V-srSim xV-j#Z&QM0r^URR;c )V5Q+lE5L~x),h X%JRoSb"ELLzJJv%jc{*mIEw  pA.I_|G>T/* ]Eh}@WLSe`ScThӈjSYŋdg/ŦͶ?sw"$aCVawQ VڰK$`Ph⡰R^cDPHEv $ R6-f111FI@hc23`۹};0s}_jKnry*U*G*!%RFFAGed@P^/^ʕX4__o6AvHJsR)###;LxҰa5>KL̍,>k]-222:cvMOqµ,jpj :7dddd 옳ϛV Ν幫Z jpҐ)\ʬc>w*.17g#ܺIAX< ) Ƣ*##S(we9s͎(JT^1|1#|!KZ"0З[Vͳ%Ȕ99YO^3?5 gqnN{xa]6Q$%PsF4jeߍ7 bذa%f1e5jD bܹe/Z{Ke1yC^ٷ$+޹(qqDE!8͖eZmX,Vv1Zrl6vĉ{m[.^HPPcƌ)3g櫯RJ;L4- y>l(C7bwZQ[7oNhl6[V يRyS 80{_\96nHPuV,Ysb)S})ϝ: A W^'/b2Y۷#z#ׯѪU{ٳNvh4Zn]dDQ*.N^_l(#0ЇgcZa`?zl$Ambn ̍\|EVZQBׯτ 0ǻ ONXjKdٲe.W\IϞ=R *T]vL>ĉK/͘1cU:t(v>|QFQn]BCCZ*}eYDSLL < 5jԠB t҅?%ĉ ̙3vgDFFfۗvfϞM˖-c0lBPPӦMs4k,}>k2tP֭[G6m8p 4`2g,k믿:EP~z} !!-[0j(>#ƍ}dGQCY:Fc""*PzeqbLz#99knѨi׮vAw3zF#=۴r1e{a4jԈ 6{G޽tZg:uh4L8p%9s&ժUc͔+WI&1|pl¬Yx7\۷^{I&N&88uQV-{ִgЧOF̙3QF4jԈӧs-]v믿}y\JN}|IBB\5eΈ#ȎL exxh֭!665p7Nrr*o'ㅗI7iZL@m3 W_(Zn׻]d 8N?裏s2믿0aR/Ee)W|yU(;@Gmr[TOgs.Q* IDAT 62s|:مXڳgOk׮qE""" 2U\K dСCn/*C 'O,cN5n8KΝ;mdGi1v*af"IR@:€NxժU_3f$9uPF>ZES@M67Ym*uZxsbTD Brh4K/e[O?<-С#F`…mۖ>}8c חf͚ /PZ5AW^ԭ[m/2gڴiC~d֭i&P^=MoMǎzꤥq!<<$o[sC,Y?e˖hhҤ ˖-Y3>дRסor+1{cIk*wgMYs5T%I;"x5h||ܿDGGӲeK{1͛WrdJc/$7O)ǘ Bƽ}Pr[,`W|iV"Th#zO%""NXVgwŬH~DeJMz!wDs[)!.&Y \I jÆ]iR )>3ڷoOrHHH`ӦM\pG}~D1z!J)djvVH 8GH#˱ 2Ν;si,YNCPfM&Os=Oed2";{$y/$\:r1nen܈͒Wo00`HΝKL3^rE$Vggdʴo]b2rb ϼFە$W3bKt='?˂_"bi* ˾'9GO<ЧFP<Ԡ)#Kt{YnB%u6S,d̙կAᵽ(_gRzU}^9 a!E)+_,u[.Bz5 |b4 ~Uk6:Ʊ'1/c2_<7 N%11 WqWho'$l~<Z@DD8_ujse9^g3a2 \vK0x$OxCGuϮX!O%^/:] +WIиQ}i԰>/>?'N9e7l6}FA#pIݼIgNq"f,II<3v4~~kPv-y;'gb'SpxAfik/Oz]c4iZH 7`Gr:I?;vf(IS?M[Ѷz^~]-[wy,e1m/ h,[)fp9>t" ?".63ǻDZ⷟(_.~p=}Gqk:kתNDD~Axg+ԩ]$~1ŊS52o3or | 9tr+=7coh2#֮|Bkgf8EDp*Wಿy|{\z=H'|۹{.^/?f}ɺ[zz3?:njsCGTŊT">={a2P(oLʕ ;s7vzDuԩ3p>Ǝ~o T*snNۙse|{- 8KZnK~[F>ޤ9V 0I|70G&~[~. Yٸq3 NZ3cm($c~רqwӥPN-А\m%' )VCjJ*ATcuʗ+f~ 5X,$&&# 3F!%U@3|#wmV.c{~_#GF! Pۚ__uY-6l^Q:g:uhí[q|פtІRt|}}LU& '/ӢEsm($☃ -e`?ߊՖkހlP$ޤq/_%""JIhhy$I\E֯]µ7ՕSWۺm'b0/j4k{Coԯ_W{r)/Y=s]真q#;0tc$$&1ut6lczj˜tM<ֿͯnFoO@Vս++V4iҘG̟;wqUƍ{YVȃ+W߹sY;lܸ-[9 III\Ù3g[Ny'007ޝj($0 fѮm+֮RX7N>hb_h޴Z􇆔g@^Lp*CrW9ފuf'Nj̜3/ɐrfOO4j5z6nކj+6q݃#R8v#}{wGCy/Q1ӧϠ7eС]QW_y%o\r~ӓA-ztJS?0rؐ"/P+u7үoz V+MDFiܴ_}=#{[}1#FX.\O)׌^snCMdTF}:ѻNtXܹ<9i>%]*Nx;4nT5ϋϏܝUX qp^߫׮p qȿr6leГcxQYo>sxߙ/՗MG1Wo(LL||B; ySO?O~CTi˖aylӬZ~~Ʊl6}FA#p ~ (2r\u/ܟ[YEoH}ݫ[؎b`歜=svmcx .^v\|<>]cǎөC{:@`P}) Ǧ k}J.zɡҥ#< v:yF}7VN"J8+>Ȧy|{9{Egv/4_;ӣ/\חKfc}Xqw.E1m$~~{ȓ֜fbbS΋ύbog7=Ou敼㕫י<?DrLGg5L>?03g{pe~;7K֭kӉ( 8 K;K9J`` ujעV_{&TD߾OڷoG7_St)TFTT7j5M7g(BCCBXX(4#5a+/b4qyեP(8]WV+  boRId295 D7k!- ]G.T-ƞS}9!5iD`OrzC펼ұ}ԯ'cG ࡣ-{>SV 9|Hrl6DhHyϛIɔ^-Ƽ~F.^DHIIeMt0zFquƍ{d=x7ϟ;wzZ :s .+A+WT*\II:VWro".Iɺ, 6AGjnJ +r1h49P(μ$&&Ѡ~=gOc}9LLLG\N5j )z||;?uwxjHMIEKnZδАBߩCn݊Ͼ&US65,ǷZcQ!Ξ>M[TZ/10MފO^oet@'0ɩgK1yv g7 j:T.F 97_/k |S,^}{f[v붝\o@Ѱ}ٗ mקJ]wrG;0gG_B]wL |}} tM_hoH  IL6 X^*Ky߾x{{ӢEsʗ/Ghٲ9AAڵ-[> YCр$hÝټ^:|;,VJ\Wa3oo/ :0r]tfC : aӃm;vSVl5lP[j4 ԟwpdD8:e̳SCq\{ )<Ǘ!.6u 2[?FTKϏaʴ$'hܰ>_w'6nxl6;#R̕B߻W7N>ːaϠVؾ5ݻ> C0dX>0 4v2'B>/K]ɭdR.3﵎y*ի`Aydm4i֪=zխ N2f|5TLK{koc.._:oNߍ_HnDxS~VFar?5)9/Mj[iҨ~)<:s[֯GkH 2h@)<%|?;p?UF ˆB pQؔɊrWFI?ޯNYFFtQ,*ȗ'###Sʐߒ]=wdrEaE%-ၢ0n?s1ӱ "ˬ^&ZݓBs6l-,S2222%w)s ӜL<|rPLCϣe!j~6@@.K9&Qu`i1?H+CHJlV}"yT-Q2I1K^1˔-U v(~<%3vl&?IބbDٚ @ |84;l薠IZNjߑ<TQ)}ȎYLhAwC$s3>slv;tAgH:Ki IDAT@~6 I& ٌ'jnǘpٞhaRwADEEa4Y&[Qڈ$&&)u1k׎5kңG.\p6g͚ń  A]ڔ)zT^n$IHqlĆYr3lh4gemPٶ}\mIIIܺuTҌFضmiF#gmDmKԺ=֝N'Ǟ{O?͓HEIZ1ϟ?_sRF <22݆ɲʔ;vP]f ݎRp8A?s~x ZPb[E 6ʕ+T*tD|6taÆuÛh4NCc۩(/G׷)sk7}G;7{tŚ43c.// $$I۩S矙;w.:+$v_~L&<ȑ#߿|@jj*_~9_~e>a pJDD8gnZG+O(**"<RwҥK9p@- c>LBB W_p_Ÿq722#G 0^xl|7^s5ק Ն%%%eN]mի7>Ѩ/>_z+W_%8fgŭ bt<*͹ӇGRRRvZI<M33fsbZ3gߟe˖?^{yýc͚5\tE_ʟg.B SO=uN} k$ޙkf6٦5t3ƻ+q*€Xv-nɃ>Ȕ)StRKgŽgEO?¥^JJ>ms0`ӧOg(7|CHH9jAwVVSYQ,X 57端r{߻ cM^>9~8p`w8Zt7CtrskΒEwRFBB7`(++СCQVVӧ>_~DDDPPP@ll+d[smQQQPXX@EEs pEòE?L.ܚrKkBt%̘6m_|_5f. HƍoNc\}vJKKѣΥ""""Zlh42zh}]V+AAA3hlQXXdbذa[ĕW^ɠA$:P r׆Bt$fTRSSm0a&Lhw\rsjwj(#Gdȑ׍ך[G+v2o޼f*o_bgyZ[h]aÆL+zo-EԙIWڡ7B$1 !R;B-,D7~FaF$1 !'; ]R,#3f#j]>3Hbnr>a`H哚=2~z .~|Isl x饎Ot _י vh+1? ?PQ<VkwG%H#FLCm%@p0 ~:_?xaRW))j_B}.C4HIQgFAb"v[kC`8u ?jɁWے`JW۾}٬`^ؿƵoTl{g 9YEɓ)ٷ&m·i'1ggCn.4s7n]Mp-P\j/./TNm-.;<̚>Ȁ@{6mRcHO|0a0ymtHMӧaFXٳ[3ZOh{/TV /]Ivsi54iɓNMh}_VAl;;s/ZT~~\3=d & j,?ƨ(j"lT{El7ձ;V7}.! oڹ*lV7(*11km[NNncxu&O=ssQ\VUaXBB~~:>=;uJ}=}.! oImu]ɲ@]Oṽ]V^20g|3ǫ3@9yRR]ﭫSx50\ P4}&>23>EZ?,euO?I{PXTM>6cp7DW<}}A] 0? CoZ룏S˖"׻LM;׫ǃ>[sV_ڥ͟KHȩSf:3x]suָhsC%XʋWe &+b[}zuEHf[o֭;?"o^ Gh𗿨W]W_m|׿C{! ]v۴Gن q, 8{-8"B9otVz몏%&3 ?zfر zʻ>[=hK>WufBJBt_'5zI̢Gպ|l{I̾(/#Bt"m'BfBJIBp%,wwI$1 !ؤݒlU/ktffegw](Y!ZP^eJb=哚=y?NK>S_[5_uVt;j]>shrM>{0aJ\(e[ROhf^ɳ`Z)\"/wRFq/~ Aс>RSۊw¶Plapi̓q`oO boֻu*8l04ޣn/?@>OCܤmE330EPGM "Ƃ! :@L!&M |N: L>~ {#CDV#@9IͿf>آ&-‡qpW{LZ>?tRGp_59@5[+w!ByBI('CP(8Dz~Btw~Lb0+ؿ 7m3!g p7aoT/?,HMFYmXORͿISI%ꦐ4 C!v]ШğX_޴}IE-h_I$28Tgo|:ܵOY!0Ah 3}IM¥{6!t(^ 8:W  elRĬ3AOi4 T 7H *~[ַyl[~#Tuw!sX8]sP}'| k?Bt7wrx}7 '޳ug@S2ԯ4z#y\JYP"5i&1{FpD2_'5zI(dM _'ɶgqO3!}ps1,C5گםb!$_!4OGXKx` <{߶ 8'0s3'?{a>:Sbf}Md9 sQF Fŏb1͏YcO@;vਯGg7chn쭍cM J?"_6fmgx>q RRRO3KjC6:xZ ^>)uECKPtFiD n}Z?P>@Ȱ0߈όD5FBaR{m B<\(@u@oؽC{kI :F-:Ch&4w>ѱM33fZaA1;_\°a Q0E81}[u(zlE8ls]suEלFVp(:ヘ-d#k4+"(ؽC{[MP>([{':VK5I$fclP_z }lUytxt$(KkI ?C_@܊6CaѸ^DOU?9chEiҏ> ܙmU;|c5We IξM3Ks~ c)8TvK9}~ܧ|8XvS{j'}~)js;qpحd}ڦ Eo9U)z:S5olUX(zx51xs. nh dLC)V-X}lO8wR3@Px6Ch >@l7FJp؈ cX_b(] )f$ѓ_x.cdys$^\zWQ<cgljsSU{=-g[kchi7cNA\b'(@bnxOP3≽]Q-It5v4H!i>CH"q\q3q߈oבs>Owmދ\~ H׽wY:7Z1@ aM3E -Jl|Z#5i*1 |.9$1WI|&1'ߗ!t^x6l]g-we,cI?eI |VAHHAKCj4Ah(L?99Ы}pM^~YTWCb"pTTޓ'v{:;nR_,p8qu߻X㏡e>ZEoHͿs ""@ṂG7hJKmkBBL%%;OprsDK_XzRg6;^z,BxKju< IDAT/>WձKGM̠N-9`(5)AQ3HW?cǪIԤy. CĜM,B$)wi7~Yz^M'z2_W}FG>\^&4b-_X}13:(.Vg:\p:rFb"Ba!9w],BxKju1arfUm+*Jcƨ6;[C¶mлꛏ>?~\]w6I+ 7iX?n-!E,cȌ@HM3\_]EWVG^_U ӧò3ɓÆW`Zrh lhl=4M.>!%5N1r9?!!_|ر90kVcIJj~,"ސ]WIͿgBt%_'ɶkɌY!4FfB1Um[,`NHb]ww1IB~Ch0F|.΋nĥKM9pj"3sW_'5zM-eDpi/3|B[|_g-CSY!-eXBuEdil?]>xj*nO炫W٫8yp ~\1)O]BVLbO` NȮ1eOOp:+r)Ƀ (F̔p_x}Ĵ )E?g.A7+#&q|φnBx33K./@驮(fwjPcԋXvwZ%8,pyVtzv[/m ͊ꩯBo0kGw? k}-'6!#ر&J(?<.bWLB"{<տWmV2_Y} Tb+j]>sHb=d3h?!$1 !Rǻ;ј$f!z3hSݝѫ<ݒL:ϲfͫwy!kB1!zv_ڶK|o̙p0fLwG3=2r W]'b'=$} mR-saɒs泥w]Uшxڲ_W˙;w~ܭ-CSy ؾt:?&SwGbbZO|ί mMSht%b=)O˖wm*W[f: 2mā0u*||Tu;u*^ g#k wށ)SK;!?\7=v'No~7}Gɛ ɹq2+D5rx55͞&0IM#FoG ~.-绒6n^[㣏cz~͜zG?,;v1=]9Ы|k.zS5KR>Tbp=Y*w 73ඈkEE߶c<)-UmPk[xAKc=W!(|O%Ĩ\3XWr(J]jW[T:m=_hzIUk[I 3xZS|~Tbw]gz֭P\>7ԥ1, Xa>-jl L߆,Ajڧ۶kݣF~y[S>;9 ߦuԫqo8Qz5h=W\:mp 0c{zΰ[;-We?OԶ%Ko~e,א)7NrUUrۺu_S-1+o:7*h{w7lE|N?A$MӷM%f!_[Ɨ_zW;-kվHb=Rg&-_[h֘BHbB锥5kr!|8lO)REѺŋǵ;xqwGе?!O<2٫X;dY!4Ff̢G[FJJ& 6mq;סCٜAll&?^]RRx2V$%%,i BߤĜb$<\ϢEEciW[oUg {MN&==IM5rto6ng"nn緿 $QbqݕCHf&L,'<9ѣHB5+d22 T<I390Pa˖\{mqq˗|8KukfC[(puT#ԱgOKD`4*4) :{E.]rsmZ T;֯c]K55}8}:jy۸\u>jT6ii'IK;ɖ-TW;(,Cw;s[RdɒpFѣs'߯jOxwiYQ;֏r@]CNLl9˖E1jT6>F\wo]/>^OxNj?3f]-ZRbju4ٯ9z׿X9s EqUZ, ]1y239v0|M d+xwn!& RWjuW5;Vϰa&"#ue˼?WSP΀F0:uO!OI&O?1zt'3p&Los_](RNEEeݺXv%::L/V`ժX+#**M];nHCdŁ̞]@JJk>< ~ފv;%v$&h)!I3K WǶ;1nOK3pu6qb%%)^7##퉉֯kmX?Rjkshj)#{P+Q[^ӟ0uH_)yIK%ڧ-zJB;4{}=}jj@'a6Ԡ&F VE !|b29q'ɽR2({yg[8Pzȭϲg%+%&5659gVJ /DΨQd%&RpmXsrȻz2f\ҽg!+9\t֓'EVJ eMƍ-\HѣT_"7ҧ^ ѣI 5 32P[>!͛SUESO+*oA(~~Xۇ=m7t"tjScj*uPgK4 |M7v,s[]waoDg6c=q{[ǧaŚXz6!DĬ r>WzZ>.:"|HC.61$ؖ @QLKdZ[8$Na\D IId`+*Q_q|ގ ?sF&Oy6!DQQ\압8VG4㬂yxt$sffzNI>'OR8g 7wEdĀq|^Ջ ի)3oE&1;ꜗ5~i0t!!T: DizJW_QwIҥ> e.u8[>UU(&A^[aak[_c+(Pw6QL&g&1\x!u;~<@ĮZEy(UC`–K(D$$76fHL$n {!š< @A_{<"7"7s>4>OmоEqꍶ_'5zM%f!哚=$f#j]>I=B!Y!4G2ROc$1 Gmw!,MH#ww]J֘Bcd,z$_'5zI̍7IG'cH pnȥ ۍdOyg ~";u_ϡ졟q\Ypzw#4i6SAIu_ϠskIr%~5[BGSY1ܞ7$w2)}Zuvj-&K?\bߘ95MBtF"NLOSb-gPalmඔQ VdH eW 3c/OH:0 %P1֔=s`+4(5`HRXWe!Ŗ_KxPBg {(O`˯B1ƵM4=H86~p J|$~#ZnA$v%XU3 D`Dm sR8,vBOI,6_!% oot8S(y j^v\ 8ePQ7^q``s݈߲4?^KEMۆyn_}qB\$~eMl?ijC`t1cH –oVw=D,baL !pRNaW=}@zK])A7&3xXZSfaq`~c#0l%@O(zkvq..\1!DW_XljxQe4,i h?Щ#M(*qTE jA`+਷{c׍)V(Fh+ĮG(zLCCݮ *+Z f#"}1O%gF yuDTIfz=IC ԷK+B~©7c+w^1-8ڤĜ/<7{t: )AHtfH nfI:_GJ oÈ0F"L$|}e<ҚP7(ܠwэ^Ǚ1]|.4 ZOjEu$ zO!$f!YB V0$1 Õ{V&,`ǻ;mb?]V,͘v-^ɞw$f#j]>׵ʫ6 &M" m8"K#Iy'q~WIͿCS}64q;u?aN3阃OޢNHt_'5zM͘; >[ޖ2Vy=YJJJmrNM%fIq{ސ3ߩӥو燽O8\b[?jrWDZ:?AL5ٞ^w.6Fy<[g˨͵1aCR%Kdß$aj %,lO}>U<@@c,)ogPochz87oϺ6>y?Gfs8"Ȓh69wVR-exb1Xj8~emۧjӽ|c<{Qy eZi ײICype=WlN`zU?7c>ڏ) | YLHfJF2@c,8µ?&rɿcbOK}"\z4UyEg,D;;3)% :c0boV~=u ]Ψf$nR 6TSB]>A^A]!1 7a4:axX j{m她YhcBkHƝAcK4WnV&MX3a9m/ZrO)RuͿw+9,E6ߤ7Lzs5;/#ϗ1hWBv芤 >JͿx=p~Nj\2WaRkݫ'SH]X4S,Z캧Bx1 S,ij)^p6~^!& L/^auPU fjꓫԩSꐾ4BIB9Ewz(#XGHDO)yܲZq{W/_^ʬsiTNJε!8y;yyJkk&>Ʊ:#tBUvk>⭛nvۿg]ǩ{V IDAT}jkP#|66Bjgz/_ ֊sJsi3Ik,Ԥ670-aKjIɷjm߲7Sf}%\1)D탢!y0.YAS69h~gnu `Zmk_/h9~VEP_ osWB[%fǨw>5>I)wo aoާ7?1NJ㍽e1ERga6L꿐2m=˃߆K]mvSp X,g*ܺU}-ChUG+ܷL@ q0_|y01WRQA~2kK?+59}j%5k۱ >Nc/MD6gy©^ Ѻt9&} mqAV mC[Ǡ". N`[ ÿҚSsו,x}(+/hظN 0` f~Pkm6ORYP@x?a`Tʀ 4=_K?+KO'68x?_YH^Q㷟|\W}ҽލ[iyOQPu:k5&ǐMj׃/RИPP?mVU9-*t;?550f ',p8K <SW Ʀ*oQ}u5z~ZL UW{lk,: E[rB~Vpt3.A3+$qsj۱-"Ȥ~L=68խ u%ޏ]iɾ4ys] ?jopUx}pM|zE&Kx@~ lzMX=v\W:s/T֪ܿ"Y]Z10ՊX=Da豭-p!n }vΆ7s}MJI6MYU$s;6*0X+GIiLd PgUڐ|pkc3w;y䬁SpʣDtz=Ǐտ?L"Xx>sGq;FL06CJX@Q׳|v%fD^ܕз((} ;m`f7Gvfϭ{pv͆ba۝ *v*vW/8^^豭7w@gT׹png%<$Lj氲++y5L>څ.]cx.~.5y40 b#FC?= q8̹EsMǖ5[l\TW]jc/\m۲⽘v t(|}+xf`\3=ukx<1|8{Wdڋ/3ZmkNPu\ C W[k?+_ǑYo?Ku&F>nP56Է}ê~%.DwG#|MM4ww9q~ Vg\zI 붅L;ѐ!C!B.'#5B M&7AƏ{gԕ7 h VQ@QFPDD um8ڊqtlӎ,]yN8:juu*V Z$M%@~xg{s|[ TUI[~ֶD\\Zj1Ox 6Ei&&&6Yؼy3Njm3w|k6&2=}L&}TFw>l'I|2.B#5?Xi^X66C~mҷo6jƶIKݯ )k8}tczVm'(,Mosz秔£'$~|R}[Eo hÈĵq3/A\y$#f|Hhn?7MsvǏ̙'R꫒sI C5FO^j7hYO{?p:;=4}auiOITx^~{9ذa<#_]]͊+|7@ff&SNɓARS~:{EѠP(2dQQQݻ@ee%TVV2w\ 'N -- ^O޽5jNNN|G~8s 7rܴiyyyuVbcc0`;IMMԩS T*'NGr ***gرFO޽{9wt҅*ƌcuk>h}!e)UƯesn7< oܼ~~Z)T%Uq +v]k[E$1˾/^v9XUI,/m&Yu?SB~wdC-oI}Qk=iPUU˗͎>8991w\bbbHh4z~a̙\.'++˜a /Ȍ3({U̳>˴iP(;vgϒs=Vܹs3f ]vS>*g &0~x7oͫS… ̘1_|&)?Mj-ڟy1n8N:eck^v{,qUQwp R sgGAM2~]l[өre7W`e17`̛'ɀJ:={ªU;wJF?01xAz#Cթ_]3 .lTYFC)i4bccQTd2\\$-0`zJ2);j( INNF4H)((@VZ jj9[vsc ^T*0L>|$D F6آi08y$sAPJ^v{,I&7vɑLR|CH۲R N29eUY&c2:f̿;Nh֣%! _hz@2p@sxc???r #F.N` 4R?777|c>WUUEtt4Z@222ZΚ7?"""h4]BAbb"!!!h4L&A(vzk4?]aL&z}P۸״޴ܓjJo\eL}k?A-Ҳ9)Ktdiz5ܺu шGݾ} gVYYIIIyVZZhۛJFcK&?t0iҤl۶.]PVV3 Pfg Z3#F`Ĉ~BBBtڵk|i-ӟgϞE<%''Ria{m~oM:ήtֲoTkK s0O6o͒iI_ss{g$11cw$չcmhX{ӮoaΝ .j9///@r Z͹s種Fӑ}WZјoח~ V>,֬,m5;k(--h-˹|2TUUQZZjPRR7}6;v ,, ooFOwwwZ-eeezmmiѽJ>"7rͻ]QݒKTt*wrW%<zMRl"/OiQéSqdC4[^RRo_e9oi3?UYO{ԩn1fNjU `0g9|0gΜ cҤI-hZ'x;vBǎ-vh4[:wLll,֭ JE\\&b|||2B|}}qqq\f'@>}ؼy3>>dzzjd2=z !!ImEC $$ݻgNڸ^z^,x8y$lmS_|a񰶾SW7ET2r6C K(--oEK6_@޵<~z$)) g+aZڈ @ p0cC,e4ow器% HYjy+֬YZۤ&rJҥiA[1 ΄V?Xz:t`޼y5+-t[176H/< ~LJ{]x5oRæMP^v_@t4tOSe$(ECǦ㧔 ؅Q?Xޖo/-:|k1{'C!ne21bcŸˌz`]W>}W.MbeMbk:|wc2ѣcǎE&5Io闺2228|0>>>ܸqWWW&M WGG;??^y Jd^? >={`z=)))1pE`lXar^'H괬9ɇ&}'C>!c֯_Ϛ5kx#22e˖?sĉZk8cN8}/|ԗ=ߎ_ۇm!Z?-R:[}a2|}6d >pѼa-on4k7k}K{nۍe*7ӀPTqTU J= e?l0V\ @nn.K.eݺug1><^^^9ss_>s(((`ժUh4ϟϛoӧ矷s=(3QD/穨`5=87১~H>:۷oC K.e2SNe߾}syyy̜9?߿8c8aH~Л_?)yD|F 7%eꈛ •bsUUU6j* *oãio7LQ+ۚ<\dr\dTst>ʝ?,_TT<ڵpL&ӕJ%3gD&#PVVmۘ0axxx?hvСC6l*W^yg>%j\w S9iUS)SxwPxXxj0c Hbb՚5ksȍGy0C$Y/IVz"k&# zWP\O!閷HF7 s^''':( i WWy\b* |qrrjr?7LPv dPz JuTUӓWTTvZ~ir9})))T*{\.FCDᄇƞ={xi _"*_}'IDATr!ܱr! Ov+\&Y7-]iii̙3uNgq3_KN),\%>F׀C2F!#G\l?FEh3** +  ʹ{F趷Wj̔+ Kp4]n6őNvv#Gl2 7nŋ?aӦM$''[ۛ ظq#^^^<:tCš5k~BvV@3x+,9x Yv-#FH[-믿Θ1cXd]ڴ ؉c(YEUy5B***3@pEpWWnܐ^//-E^+rT;L?_1xe LӢ  + )/A_EC3={6)))q/^3W^5oS*l߾۹UGXHBH". _:ըz 4ZP냷'2.f/"#{Q*v=Fy`4S'הsu T%ՄTܮ\E… )((ߟ)S0|صk111t҅3fxbk묷o߾wc锕1zhfΜRw_׏KŋLaa0 5?*A[!Yz7?o͕+WP$$$W_i700s?/]\om1mǧd@GC8Rjݫzw-q.."gJssScqٙ$J 'fܴxЧ:uB;r9 ,`{zz_ZKJJ2gߡ-}9IzΝ;kAapNŻě}>]\.g֬Y̚U $$$}"mb)QqoO ŃmMFeAgh^s* < tchDDmh mѦ6^ܸQDLzukUDWX}3ecҷ[_[]k.hS% '0T݋؉akN2mf)C 4cͱBkAUюyD6i9^t@F_91VGmcP혽}pPxj1m1V,p@`,p@`X{s0 "] Nne]  k鮀֭[wĠ.k m#9򾮌Vx{]++X\")b+U/W^^Az'p]1_W^^bK꒫?Gx`?q Ν7j]MMm{<9L(4[͒M7/m6)innH6k\\| c׺\) Vcx^qlfX&}wCI""ѼwO #AvV XXN  L'M| OaK9ڗa?]4O6mD̒_bݺu4M4C4E {G\2(u d4m孵X:;6^"@UWў={O=e͚5>p  I☃d!T_<9NlG~8D IF1'hXV)$  /ǾAQ1P4P4MѴW4Cݕ@Q p⊿*2Ak(i*no'[ZuEسg/MQ/e5Mb3_ŗKxKɬ?[@l --^m|)\/g9 p R4Lmizx 1.4;yA42Rȥ?ub)QfS_y Œ_x|(!ٞ[6[QCQ:}!>^7&qwZF扳s2~` qux!q]h_~8U(\cF== z{SX,Κ;ZU }M-.;:daUT oi&(kf4U: vybNA@ )JuQ2xU=E 9\oԝg@֏y^HZ0BK-66,_mmj7AEJ#p*Obcjh1W$7'7wݛ"k׮y})4M?8}D{{=XJ-ǀIm(ejô4$؇IjcsLiT t[yy[{; ef30 $ƃT&*lۡFZ\<c2Ǟ\SjaZ ~ɳ$S)4 9a}NNS%mܺg'W3x 0LN3/4E+z (0;nwA8@ieN8ˍ㸩ӌarfU$"`_4d? #sSp6as14fڭVu@%p9qHeb"-J6xzq~zE}mp yTJQGZ9x(.싍߶Ie26>e4)3}33n( 'o֬}ykr, kCuNM5xHMM mXOU"XgXM1I1!U ]IK ?ui޼ K^^VRR aaR^FwzkE0\Xxeѝ>vi8L22D".3r?Ds`7=&#rDE|b"R31, ED0kk4}B0<|2~8drsrsA))a |p&!zw(+BS"H3\\\\*~BwLljyt7WͻO,|\Sʣ+I7j"yt7veWʻ]C+ðǏW&% gd2qLQ$ 8c2a%@A$Kv)B˕ pQKљP]XVVܵ`` BDx4ϱ.fs9n"I<buս3 eNt?ێ$&oU}tq7VWOsWF)+hhtN7t!H~#5k=ȕxqOM9{С7ܐtkjZRScV>(͚7V%U:Yn=ZGأ+O~}z妭nAy(^o+RajRǸ'Hܝe 3 [ϝ.H7,3g'ݻl|(rݱxԨԨ(dg'm~$##`KH9tDrrtp+X:B#>\r.0;\ r.ҧ-ǡ )$~MwB h?$ĩiZh4x-u~\F4/)O[s6INXh Y"gNx8eSO7M zK'@2Dg=gv)#FܹsH$߁^3&u"WχHÑ#SSj%E1@Q4ðRi0n7pybMI,ikyO}|\:CzL2C2fb/vp`'y9:Nx^їZY\+}b͞m;ThATGQȟFW V{」G>o*J{}e2qa[dI6:;nO .SƥϞaqךOWuh?^޺hՑgv;~M7y]W( u͉'ݱG[WAe@Ys3d1 ,8pdR o),0CQTU! ^Θ1ٮ~^^W]]2//`AP䚘mۡxqHTv|KK_X2.7pT, &y().Պv;Q^'ɃWĀ >t:` 9 pHM-vbXN(Xldܡmj_OxAx흮` O3 kUR,gwO}Ӓ`줱y"c# *.tSLy6jj3OM;̝2m4_0:lb괯~겛awB#FDEEwOİbЮK04N:fӦ=}577]4-K Tx?jpUSlĄx`XdJf|N,p8q=N@XqǙҲԮ Yv82V oXbihynw<6"0(:ab![2A,U]߯'81RMUpia6kgGmGR&jHcje?oow<][wo=-iT&mZ6#7#)=Io{o1ӻ1̇ug**-L&ؙIiL\1\QjY_f^3)u!IpmE$C=nr=.%"0q_2N;4YNz7,W޻嗷0_ok7ۿ_Xk^oi|鑗Eik w81-=rjL"&r"\k 4fr\M\Etݤ)7} w,p6&ßsmi p"Po'N-@JNϰ$MH tV4%/_<?h[pQ 0RS1ԴD^ɪ9֙#t&Lsh4@}|r|DL셳&e_\Un֢?}ּ&7?wV[ȟ?!jB 幖*{aXw^vm_GW+j+40?G;rVåNIz/ۃcXտ^!w8(WTtzD* Iiary@64I`qrGCb)ȎЋD~=yA(tuQ(xp5X} "鿺3m>\~>Y?=~'}_yҨn\rcEhΜEs{pPP{T,)zcH0#rvMoLI@)F tKenm3I *-4MRP4i vF꯮z6u`fF$Ri YAՎ n7]<5Q&yKpT4-[5:w1w3c."oGx*1A^)PE6Rdl FsVN9 **V~G ~洴cGk5al tAOAD? "NZFNP gcX/CfWir +$#*)onStS8R5#ՇY~뎳m\,c V+8 FP-ee9x"i֎s\=xs;SLkFh fU$<wB\c]qAxM:q¦=;zu|"&9{V&=>qs94kիĊ[B?w>g6;>Ϝi\ OWw.+>l{I1F4qb؄ ao7M'$4+裏?099yժU(~СO3,tbgVkzf2.. "WMn@\02 "!06^x/(ZeLOt˗k>؏ +W֪բqW7jo O߽|%Q5^V"##%Ӧd4jL |L{olTTd={ί#zpo;ekו+mni!-Mk`A+vmm0 o' OJ%f$BC?S/nX\Nx']tFΜiJ11R_}eeu̘%Kb|ÆtVTrkby}PWW7}tLw~CaUvؼ94.?_ZQ%mH oVTW3UULvkTOq_JDxR q|lT)RY Uӗ^z=z Obaj󕕌\0 P\LE EEdV[m7l>Q]Μ)_(cq`@1/ Ïf^ގta3`ٻwวfkĉaS.˓YŻqOpIhbMέv#]t]/0^'$nkx` O?p !<F B$W"dNf^ӯB Z]=ɽOE9^^:#%ex02 "!`4ӗ9@9_iҐǏƅBѤH喛nJ}옩;7-Xnohdرƨ(Ŷm cʲD752`'=+L\$u:Inh,7rhx T]iwl2ٳcuS̍n+<]^2\f9o O!׶@hACp~ 0b`؅~J7 8; kjjgXF6NاLd^{P 1b)slR,ƛ\ܹqZGmcƌ_az=(=ܺwo pymjr]>,J65|r=z٫^'"$Dcs0b+(rSCI^ 3j~b1n0Z[IAFGؘ1ƪ*ɓheTVD"<,L{I$dfjRi 'NtT*R) |_z2Hrsu'X]SUUD55ZIj)i}~+W T-2P@S:5thpY*h UCdTb6GG+Nlk#;:Ho5;0 STJddDzB}S$´ڮ9j/Oonv(v;to_{kT@%`MNg1$A`{tĄaX|a.N=6X,TffR9𹴷7^| xe]0֟z ѣG X`YD",1QUUe3:r ÷{rrR)Kܙځ}FOz"q}g :toU5@hq/v HyCsh}MaBqdeU%^TVfdf^?p/;hEgb5jiiڝ;FRZ[ uhnv Y~_3Ա:=NKWb\E: a6}B]]A5~deEE)|DR).a,xYpo5x'Ov*Q {$&}ߎ  ZV+ۙ';jN'&?5> yKOֻ}W! Pfs$I Q+iP<`?t:d9*PO}F#^Yvm+3͌͘ WDŀ4MYYWx: 1c]FE)z9|*b4~$(o.i"h&:ݾ@m!Ր 8'(,oҾqP\lJOxkˑ# v{ڹ,B!QVT\dYbd>>^VI/ ? ۿ}D2k2l`zPO :;(EpkQ#c6S?x1;++Arrr9+-5(@4{X,hj%ݛwhf륅{Wsxuh91 ))(<@+B\o3ZN=;.N}{qbP+Ꮋ ))y!j #!+2*Pրʇtp $//L\~ : &aEilݰe8tRRb??\kٰ*?1^Uy2΅|T8`G3`[ O@<( ͆hyڟ`}zWH pɄ aII򊊮I|V^Rb3FΛgjw_G @r3P9F #-1rf>Bǀb7ܻHq%w+w:9 hDJ%ۦܭq c xVÃ)|yh4Ŏ&Dz4}Q3kZ[)?wOz{{ア^E]SCpCW-[ ɼ{+XI.'nNS~bPN/f9̋ ٷYS. yGJK~~YU^WGV AVjҤyӦSSMM;:m6vR*?"_{G.]Wb\?Nn1l)@@l(?UA e#pj.I}$/ ۭn9r{hѢ~C@C *pFy0%Qϝ;@w-9VTV*+K v;rqQQRkXۭdʔ)py_%Ibpi*q8 jƄc)3v|zPz{P*Ov+OOW'[L4,LgY(N  0a T;afUgV'4mhJuʺ-tN~[yk+5imLHo=&:'ht"t@ 8:zpOED "1@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDp-@\#-ϧc' &+1,,Z|G? &+1,|͆~>E+q jW"d@+2P@ vE BT"!]혇3@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HD @ C,+|J1@ vE Ϣwn50+1,-Da"d@rE BF +N ]ᢧ2* "Jw}U@rE J* "Wh\Ѓ"\͈@\ SDrۇ1qhaDȀ@ HD0t6n1n;3`5uKN~pxxteN=XGbr=hI)JA,UĨ%o-y[pz62J;3-D' C?wMs V}7$o92'#(HuٝlPTmBȔoN579TuLK B+Pb;dmszL.Ƭ ǯ=\hs]b-#u7fF7[H3#ԗٿ1 v=lɌP7I][&%Jm?ʼf ǟkwUm vsffզ0#GFinydf^<26ͨvΛNMSa֮v14=3GͽG\ v=dhXvDuzjxUsX `TlB,)%A+~0?l.%6;.Ü4[ir͌>nNUi#cbbVǛ~q dGj$.!p #\UΛХT ǰ08ŠN.}L|j1zXlB~uuˀa=S@"FǢJk7 <aaN42°K.7ZWz{Zޮn 5ZTuGLK1n95̗떷W똡T-ݨzcȿ779]4bT1 [l.)!cqa ;ŦTkM :2L?"Ir:}&s.).ͻDrE\ k4p9q2w||_}|1**ni$ Ln8pd*#ާ5KCfF\ >jW4s;d՞T^9m'{8]fq=?,H2!dz^={233R%KN`Ekk+a˖-cV[[3ό=8Gzҥ}xFRΟ?A\~YoviӦ3f`=hllRd2ٜ9s};Ϙ1VL0]N0%o_x2b[ʝrs&>l^Ϸr9E_FDb7T uo [P^, b% N3o^jnnvݯʠH$|67o,J_4ͫW~s΢+Vcm׮]n$''<> /X`…7O||͛111ߺub1=t -Y }IDAT^y^TRRbv5Kԗ߾sIkQ{䫯_FVu xW֬Y?ݻ׸7ݏ2KtIII.H$GH_|ůkCD}x?4 q|VIv.[ un}d&1Xb1aJk<2شaUS&çߑi]=6I&LG"]85 zܹ\qnnn}}?qh[dƍ,Y[o6mڟ_B裏{˗aa.wDQԶmۦOKy7o|YNׯ_tһo^֔~sIS#p<$ltgYt~uz}~y©vF[tK}-ϱE[&6%7iwn{?}PڱeX#U cǧ$O% m +]$x\.C+… l0 }ŋ~=/ 0=c _K_?)TlSRKlm1[#`G׫ ΠKF|rXyT.o'Eb MClAURnW~ ġO׏5qqq?MHHX|ĉ'O5##cݺux\␋xoܸh4l:;111III%=3[nųf͚?~FF`@tt/;8qe0ƍfff@yy |8A~`ӈ,9!ڮN>DŽ9I'5%OhD+ …uhD ˂Iz. $u`03uMMM[nizŊwy̭޺y毿n ĎviA_WǏ-[?FzJ=]%$$⋯Ν;jiӼӍF֭]mBsK_/خG,9خG*]6뤪9=R;<\۴T R H.dJ$㏊0:2Nx օQb1Yw撓l- P({LqK/ *q\^߽8f͚Ɔ ֬Ysٿ '.a~5}Q_ս~ŋc50lѢE!ܴ4O>8?fwn֮Qq[&yC@KR)`dt z,H*Ic"Um&$1ЬVӷ_}h:ſ{HpC'bDR8ārqP E)j'QKB\i:Or 98 es"=j{߯K,θSr7+mǃiG4ԥk^ݙťvGEkM~v5rrĢe YZf&YnE2;kƘqRNe[-;G힙*Yt>VAơs$ܸ$=Fê6x%YD7Fj3IM}{ڹ[k, ﮟ/QAb꿹,53QU2Y\׽XX䗥v eWH2TάQSgGď޸&4~kԼ1Hz9_C7K5A++++++++++`pX`?@\x@(q#WIENDB`mcu8051ide-1.4.7/doc/handbook/img/015.png0000644000175000017500000002467712067167647020240 0ustar milleniummilleniumPNG  IHDRH_ pHYs D#tEXtDescriptionWindow Class: ledpanel6 0-tEXtTitleLED Panel - Demo-project - MCU 8051 IDEl% IDATxy\TUǿ20($[j"kA.cOe=YiOOPeYT# Ugew%eG) յKϝ"V4rֿ5x '.+f_K;[-udN[FZ[x㬛` FNhqvp6uIJ SK4,&T}@Py-<|#+ߒו_x-l 8۳O}Lp/P©(v';~6#rW2(XƕjSN0`* * y7NT:*-_K7/4}K̴~)2ط㍳vV06aY:H0Ⱜję! e-"+2H2L[%~~'j5_RzOZ`Dvָ"sϟWtiDZ?; N@/s_;K=5ET`MK{{$6<1[$V8Lq{?JTSH,8e~IF<-vNs~'"qTQ1/N o^?b2h 3uF$HG7x9&d!`͎l(m꼛g}ߜS2UnC ~qC3.~ю&v?M*9HUǟ$~xѱGdtډM0wca>8PCJ*vwG~W{w/[-> CV]cCva\X 5ZpĂ lEPSu$R&Y_5~Ye U97Ab3amçO<2y? gа[)ۮQBҷ\Xu|8py{?IPW'me1/]QSE ʇ^]\vJɍ)7-ʐ~2ޘ_.Țv` @R囆 g 0&o^EEU7_&^}(1%y(,_O]jѼqAú BW#-Wm;bGG-Z3%ψgH%D[#N6ek&,oWʪ?;U+ )0/lQ Ti%T.Z3cf)l;DfJz틤@]I>Y W#=QBq/.LQHMo ޽əbw!1*qYzƍ604g3yμh_ldUO=}ĩy:;qTIKMSn_;x3BOr^c֡w?N@%a 1 1 Y*ˊ"Taaygg.fXJA_ 񿯗Df&4f};q42W[Y>>CBߴt)Fug)NN&CHI UN$ Ccoau厽 ѯ#gDžU,f XM0dESw mteRE*"UmS=ql(a?z,S/<(JRʈI!X |~a3wk;?$*1HtO$˵:cY\ă^ [ĥ&VѨCe"-nMYҲ()5I(M,o@`PQRj:&Qs}YC?7Q,ӱb1ÛXQjܪ.>w7+a|O e&@l #Jj߼Z^_!tj 5O`WoW89% znYxC*jvJƪbJl3 B).RpYR,),Kxly7mݾڒ*ʖ_,{[M(T7&*Lݥkr' Ëj+0郃сePQbw,~ Atl?'B*(W% XWE cP+iob@1TRfJdI+{"@OePЕ%Qz^L 1SoӰN eG*Ճёw }ՋgzVHJJ,PHՖ nݾz[p㬫閾 V&C{zىs>6ێ# 7; S2,;fK5Y6ϼ\Zp ?@59qf3 g,4BL['eqpSzPk1\([.<&Dj3GPZCd ۢ2'%%%n\UUmsYQQ$eSIom ڷ}Z͵#)bBGr#P6sQ-ӆԪoP@$@wT[5tOB~J%E;*>{巤"ċBzoܫ(o@ s7t%@HykG7@.s|2a82zf/;=Go;rSB!70ؼz]Ꮞ3h:'֪9SljLz֞)IS)aҦCWmOf@Fc*ڥUgUd PЖ)'!:;39WE=4tR7̃mxd)*WVv Uӣ؟|8 "wp&p{CyimPetMb0)Y\_76d y/-k OahS>ا.,7T\bR8Qb3xO2N1KgLD\;RD:bNJL\L"K?E,ԘcKADx2<0fqY.%vǙ5JXcZ @De&I)+A}(R +elvZy;mB6~L=CBT$|hͼDF C)eAa%zNWš)3[9y@%gċ 3[)ְ ,&<@ nZvǡ5JXc5&FN\IMz+#x3e9{k@}wRaJY9D"<y=RlOĚye"EYa+ǪfX8oԋMr$V='f`PM"M`[:ZU=ص֛3zNe=0y‚ōRW|S;٘ӵTImJYp@MZN2ݱǕ?kXW9/.5K׉kGRnߡN*fJYY)+Nr2-W]Ẃ0SQYVi*m}\vc]A&,Kb>4ȃ.¶_rT=_S #;PH ([E ʹcԌ!9.#8l6Ze=.| 5%:rdTs|Nc-ԭ,,/g}K}h#&D*9ku&##!MBm "78:GKuFkB T/UDDj;,BI4,_ Aj/4N ؊P$'&yKBE i/ }h QB`hs /4NOPmd]A^j;M~EO4?4S&&#dE'pw`7Y K*j3sa!x8U0|n}qYc:Ղ0M)%__Hg A*T Fb4>sf;w-==d2[2 ROK`YrM,t]F 0i&- HZ0 a;3gpסCB‘ vdk|k] 2h6"//۝Q5yOފ+2f@ޥw;2|=kgb;2j 'O^Ϸko4@7 3G6Ej얈^I%ICi&"AfH wm@JK:H7rrr5JsKs~:oD!+ :p 2qx?Xtꨎ n;2/1ف ,))uڂ"m6k*($5cha{K~ ggB4ֱAuTG:`;2ܹȣ#Z lffn{@ ~#d 0Eի&$ .:(([Zgҥsszؠ:zpp֭n~~ ɤPd~*!ii>a0C^.Ĭi2ҀCbgĞ\wP/Q놃&O~lĈ~EE%.]ӏde\y٥TZef_(,j٥^[o8 ; 4(h4d̛77M@Sho_N.#^qd9 &^zŨ1v~s_([?:pzS1 we}6:dRص7\^ӛ='-7w^I}&H^c#Y{QsO'(Z\fl ՜=I ~X{ Dz 휑;K=̊핽#QvNc9C? Meg-j3z zOBsa.Z HW!`0B'` O9#᯾z3T'}ƾ6j,Vk/z=ݻw333);vteq)(S>E8սǽYOLڥ kw'u_y=^t" ###==W^qKwVw;[4ݡ;O } T{T`D)ݷo_NNNddB?| zt<囁_'>6e@Ђ6w~zw?7:nϝ9sm۶2JBhΎ۷M)7OYb<wJL #!BÝ]!7Ou=MMMM8l64JΞ=ۺu6mXB;^9=uya8˟X8~ԥM:ġ7Ou|~zzhdYVјf ٬hX5Lo۾\C&`k{hp.P}Ѥ1Q7y&MP=UqnT:no"0Ft:FSPPP^^n6@V;,v[2sYVQ{{J/g^toOVQz0p$=ǽy[i@)yRj4F_k\fpl3 j4Ep, X?{X7Ku|+fee1 Bxvak[/!ї5 `+R( f*I&3 Yuz-T nrʄ٨@qo\0߿xxxffp722Lև)fwk{*m_PȔ=SQnqo> 22kО|$P]{T_Af #A| F 0!4`TPQ՛`0jGQ7`4 z3ToRTGftQS:*P&vTP՛-! Hw>zhGL vڡ:Ϫ[]'Lvg[k̓}ЮϬR,Mu|+ h/՘QB6 u0! F'O$T?PH=zBP*3f(--+z왛m({Vqܻ۹sÇ_|;Y[PQ<2;wnJJ,Xp ^?jԨs͟?ǖ-[~iK7|sƍ~iZZڪU>䓍70u7nLIIqӭݻwoݺO?mӦo]ǝ+}j9rȑݻw߻w۷ϟ?qرC@ddٳ^*d6lؘ1c/Yljgu߭3gCPRRrܙ3g٭b.-_/UgQTGuTouOӞzꩈO>,o6mZxxxϞ=;t0{vn:~oWׂQս%K߿ԩSw&۷_~?@~ .ܿ+_. FHHHqq1@-f  :{S]`ԯ_8H'NرI,Y;[9&$$<[g pʕ͛7ݺu vS :{S]w`>|W^YhT*}ꩧVZeG.K$۷o٭qƝ9s&)))22޾ TGuT`Ա}I۷%\.7L?mٲn˖-.yTGuT>x6 >#A| F |q=#*FuTGnnKp:77u6!iZs^Q[H9>IIDAT-b0;)sFѥK,W+iӦLB꼾;PJ[n :x> ;vl5 fԩ?|Q/?у>~֭[zj/<߹s稨zYV^ݣG={xY矏iڜ9sbcc322/^sN8InPTTg Ky-[O}̙sT5o&##믿^v I hڵkzs-dҥP(~+V,Y$--m޼yw̙3ǎ 'O~{S=55u]tQ+Wt6Rg;qD^} yG&O̲l~~7~+((HHHpA{\ͧiGU߿z)S<+?XBKbzJKKͬ(GS߶mO5̍7Ν;xg9B}ɒ%Z{quٛ۶m;pwءR"##>x;vl޼ɓJm۶T~E.x;H*JǍkm۶NCO?3ݜ#JŮ.5V$j SNenn΂QC7nܘ;wnxxU$WDDbB7޸s[oնm/xܹE\Ν;.oC`ԫW/5g̘1c :o&ywKY#QñbŊFMNNNNNniP*֭k,u /^hhhw}}]Hxŋ76 0!S>47|15Q՛\QG[Af.ȏ ρA >A\MLO;qK 5 ٱӃu+8#5 A; FQARRx(79#A| F F;w$X^ҦM_|>[~~… srr< ̓Z/_^TT"C~~E0!RjD"G}dܹsU*UPPМ9s8^k4)Siy,X0g-[-[dYfl߾W^ǎ[rs;O:5///88aGP`4r/ZHzȑ!6mذѣX?M0d2A&C-!dɒ%_be֬Y#| 4yjwicƌ^y>h464!j8ȇ~{n:uK,X@)3gӍFc_}痢5m۶Ɂ 9 M -ga=zy^^|-]&lܹӣ~"; 0!`0B'` OA1Wzp4%' :r[EAcБu.8cj7 M3B'` OA >#A| F 0!T k71 _+ PlAěT;A9R;vAfͅݫFOIENDB`mcu8051ide-1.4.7/doc/handbook/img/026.png0000644000175000017500000046757312067167647020250 0ustar milleniummilleniumPNG  IHDRQZ> pHYs D#tEXtDescriptionWindow Class: Navigatorl$tEXtTitleMCU 8051 IDE - Mozilla FirefoxI(| IDATxw|elnzOAiJ ( 4 `T,Yٕ]D* x`H63?n I@ݙ33{2f!B!B!!npZj0B!B!Gʙ]Ѩe,ʟ|+>rVG*V !B!BCv,[w&`%\=J!B!BMB!B!DS)όh6gN&:uŲ{ IB!B!![>3#kk[ФJ!B!{$hdxB!B!Dѩ{h++r]{Z&ctSbFnhV4U(K!B!ޖ -{8B7#++"gW$Г6z5Z++S4CqIlXb9$aqġZl(tB!Bqlǥaz3\^?ɸ8靇I!LSKiNghgi춆W nY-gJ+l1hB!BqѢSiv*Iᢱ >3h]LCWVHiNWΕ|noDfWfjV$M B!}:y%/nM-]t3O7XHaLчh{G!B!4t|bJ0|\ VZŢf!#JZt+32,$$XP5ܞ? EQ8q,glIhVB!B!D[ L]àq!64 ^*F'->Y,v ?`qbQCm-+[Z*NYDQQT =3US84RTTՂ-: jB!B F+,e)9!B!Bi{0qLẘ0"Ud~2:D˖-oD4, щIT\0DP1 Vk,wL,3Zm2`wNt ZfsV픕`ۻΟ{]Ϩ#LO1|*㯚grboŤyMcXNm:Ok e7of?Ug7AQ{[< FY>W1Q#Ç#%@L-BILJ[-:ܐ{Jk! šB!B!D"j}.< >%|TƇ&$%Z$'^L?I4ly摞ߊ˹+ٻy<,Y8d2\7zcƌ%'7{8q\:i{{sW}oyw~;(B3f,**#GYgn^?]vc`ټqSr 5jtjjy\KZК;w}voΎС#͛5}#*٬~R"|t+S-6n>bcӬ\2|^oL^$$&+;\vB!B!VkiRd!IN͠TɢFK&2{*LmرlJxW".l2e*f2[lo3{sϽҼysnf^}%ӹkСc⫔7_#tr.tБ-[6eft9nQUfa̐xݥA (Unc Wcv.d$~{.^aƟ98 iZFw~DZwO?a{9;L`ҥkWgt9͛7:ZELDCmm?|HfuyIi+bͰ j"GA^^rxqU*dr,*]rQ} ) B!B!«u)SZ._`wU{@rW^=:5׋E@VZѾ|lXƌjy(BJJJDEBQ.;;]8 /X@Iq1p8>#3?cN۷&M `qVJNN&??^uRYwm׮Gdl߱SiZ ]NoQTUڣ(>}R9(+:hBHج60tLÇ_{4%vW@p=jj=* 1u&(B!B!"Uh4ʟXAga`!' Z2*SJH V[ϤK/ck 0Mܜ\Q nuMB`Ťr7r[5WoiO|ƻ͚s0v̅BF+Z!$&&i}(D{~ctБ/o2|:ׯp>X**Vuuߣ{(jA:zAVxb;.Kh2DJ E7)hբS\ŤUrr27ftة}2͈44 Чo:YהJϞh۾YN>}OH9nPTM8)[Vbu3>'ӱ:ryf듃'?E0&CCn_jZ$S)B!B!D06^$U( $E hV*-f6o6뒒,TWd_m#L1qq5w}˫/̋/̰ssg%%%_wo2 yvun^_:t~I.F_rp{'/sUOz9u^y%26 e'y|ʫ9i*9ݛ`kF\:%Gjz{Aك>,MS1tHfuqp\႕{bxݨV{.B!Bمm2 wq)h=&RcTK|![p{-E\0I.'*>ΟB!B!1cƘen+_axݔh;<5ݨa2wVO:KMwUe;UQ\RĻ߁z%ݤGC ݻvrt%hւ>]r|>oL\ B!BTOie2gBjt+iӭȰ0#(CBtST3WyDUT*Xg0ZmlvTUEQל%`YJjŁ}YNT= M_łj!B!B!DB6Z჌4 ,Xe4J jޢ3j WS zRe bZ9)<}ͱcPST9J:E>ip$'odGLiC< j'i/WQ, VB!B!DL.]Y]SY-f&5uì6 t:!fcucq=Oլ=fjǑؼB!B!D0_Y!e(> h&P3Y% mVf7ͪ/*AUjq} BB!B!8ڂo`:2Q /ڠ%IRD LL<(Y8U ?Q+B!B! h&ڹ i׺a-_WR-&f*'UtZh pӂ&O!B!MCډ?شh*FInS4>Q^Zsu(G#B!BƓW᧬m4Zƴ'$@!B!B!T {4Zie$=PP!B!BFcAPI+!B!BqwV+!B!BqIO+!B!BqQ/0͆OY3TES4J9 .=(яѹF_a1K$I$I$I$IRC]D9eǟІ^ϖY%#)!px\q Oc,e<:>}ñ&\eea}:T?EC㎻h#h\#GJC*/4q\뒕kgSS$CmqB!BcEpU,yV>r*pqb6b^x+(-@U&hȺ:uMٺ~>y^^|if6A)~Tʭ>wg \!}B!X4<1}O UVƣ3cY6?x7;䶍%??4f˜?~õWg Y{}ۖ).8u?ͪ/9gȠ>#n[_0nCر}k\.1!zq; t>\]9geYyߏz@ >1Ӯ7^e?o (??SOxgQC:{MF= F fwhP +&wn tT.?n!hCu~U?‘gq}x_zBB!BѴ|NpyT]^<@Iq,!/7_|QE[w'}ų3gŧ ʇ2VSϿ|{X=whlv; ?/[3kumڞX:ڽi:LCYi)۴o QyyqߌYf1{ [3 MSrxc֯[۷maλ0|a,])ghv|'tͿk[_^渖'9>ZsGw>Z.ӢEK^.~q-[' [w5[qkT~.j"jޫyp;me+%I$I$I$I$(00GKe2|)S3(K.eK>?8j},Kf՗Lz#(;\r!!GbnL`O6|T,Y hvlʺ~שFV.~Z.]{j5YoՊbaw.JJKuv!l[TI\~|ha]5͆n')%.]{|iy}|'ҾCF?[n(H/oln%j*̡;ÿm}O@X8xlj*Щ=F/}a#u=n73O?0<\qG_aΜLr#IIui*1`X,6h{~_QOʭ5*4D]V$P5\;GQj !B!ğX>=Ь74w>#Ҹ8xiUUu#||vE>HHJWҽ'ZpDılڸǎo w֟>;sxggA[ylOzzfHJN oGdvLFgYFruWcFw$ O<=[oDNFȲk[x'}'yS`M\?uWS55D]Vͳ!롶kcf3녧p)g/7.6b  gɏke8!㏤Nڃ~\"55.toWQxm;4Y݆CUx,(_y).y~u˶ 4;٨xY4o2#ݯN's^]7o<&?ܚ[.tBk}{qzv8W^ds%I$I$I$I$hj|Npy?%cG2lPnz%;w[ 9Ԁ`~? uNn2=7dIx.>#ǎ[4tҕ2~FZ<I1gt ͚sZgUcn:_F9gʢavsg2Qtt2.ֲ_vpְ ϧ `y tڟԑ=ͿΚ ? IDAT'Wr핗0ihZ911 t#U격!TV_^5\u[MS9[o.; m0k%I$I$I$I$h1cƘen`?ѫBl&ˡL7,%oYYպB!B4|{鑆jp.a-]r>2j\jJSߙACqF9_x5c:Dmm_jB!$~-Y|ձWc#Ɔ*cAe6JWS:֯Hvn@h!B!hH J,Z~iSnK8DhUSpd;q1vt3e2/N3M%>.R$ V[pCnTMf SSOxB,XBJag`Q]yG]3qy|d甕YDaPHcN!B3W#FbU`nf }(B]&PHכi$&8ZTsʰdجzgεW^Y^xei䆫hPR%>J\Doĩs4MEQh2Ll%^⭡UrXAI%tcHSOxCXjWCwR? 鼯RWrʩ;&Ånb8Qv.W B!kiMQ:Enғa˓T!.atF28\&-9A`UܣƖ-5nv@̏?rW/sk LiHiq&>#v /eaf۹kخ맦x$ڏ]kpNw [~RU q{6>W&!BqjAp8lz1?,B}M}R}``Ut``lB W^_oc72 afM-e󚘆 5j|k)?K,6)j6^}zR)ndDž|1|]۔ʢu 4 WNW]Ţf!#JZt+22,$$X8P,B!Zpl\.~ 3M BS$ NJK=b% !{MPM5YQvuKx}>v7vCi 3vmZX+*|[?w`ic2V~bұgUd?X^_㊙C} A#W-u߷NZ"žY\j(N!B s}h,Al{4EQ"+I25=^+] _aߏNմST4T܊˄0r*Dc ꟯a(pV-V?՜pB dQQ25>~ˣC2Rc#/2HۘbKP-V4DjB,@y?qFdž+L<9VGcy|z#6geI EClGt~y>&7_Pصy WR}l7gt,!ȿճjӦM;knטh\[laI^ -XmذM=^|q^x^z퐄Bmض۟\Ȉ3:pfͿnE>YooWW2jz2zJiKfqO/REDjA=x* VB o~ob[i:w%gUUo:kD5\E4U]ƻ)9-c5nex|:fߡOِūyjև*bNLHHH ^xc >K؝K|n`&9Z7|4[ `ݼR^}6^Z @rfWٵZ?G@M;Z0sk%&?\?ay9DfӦMt]#u9ذaCMeڵoѣ'{ʔ)Sسg;ӧOs=ʺٳ?-Zҷo?:uꌮu:tքl駟fk V]7GB_nfqFG|Y._'_x}r[>&Yʟ1Fa hDw`:><:}jSطow>_@,Dé ;|66 >͓yn|2~ˋ{'Vw.Xc\@9 $ˈ)|,OVӑ]DsZaR12*/7_fcVd${T"*f!!6BY{c,WWEP?[wbK:p8c۳%.&2V5x-P4{–z>c) uf__>7|8h@_ߏ8Y߇=ZVm((W*"? D]Zy/;pݜ|!7bk+=un73fing߾},]b&ML.V:d5UU2d0ÇϿGzx1M7g\CД9/n'.ef"\do!u Uz}ߕgORBk(Tb!=! pAظE:a3|(蔘U5! wzAV\IVVJfիW8\mؼ9چ!;,_'|CRhpy֊@*'] e <=v-jbY%W/ڵCm6`e l A=fohv'I-|lu^U}$v/`>dizfh(4kW%uTRbi2gui1|P5Zqx'LGZj2|t.rC8WJFf&7]s^K?bɪh41tcrx흥GTnNԻ, '&t=T9ʕ+1b$=z`̘l߾b&MiNϞ5kVвs"9묡՛;Qoe˖2hЙy*o޼N:_0jhzر-[;=zpEc_rӿzŨQٺukt]g0nX, \tхر]L| Ѥ3a>ZRjj*]t[z|\uѓ;ul_RR]w};r–={l D=8AkuyyyL6޽ON硇fzCU*_ϟ ;^zzP[K.eĉ@96`c+u8gΜnu2/^tvLB]Ks\k@!ѷa~kU@u2r` VlgiCE3l=3~Mw)EkZ&jfp)E U`7oemv|~|Tz yW^EL:;3iӦѽ{wo^ϺXWk筻s0]:Gl߹9X,yUVi8>W`%EQ8y<E%?~whVW5Utq ΣYi;E% ׅnZ/-sqc/ YìX&;'qs9WŅz%d疒٬:Ԛ'??Xf!˾ހEa VALmC7|\9~hc(: ,Ě@{ѧZ8SG?Z\5{R2%ImۛPcOŋ0w[v^zkgfq=lӦMZ?~[o[n.cʕC,Y7ŋy7{cԩtޝٳ_/x7;/#==ݻwcͭZnMǎ;w.W^y%nw}#gJKK9ē9<3Ays0^/;n'&&ƲC;믿)S>0 /EQi<俹;ڻw/<(/}}z?/WPZZUW]3<pjr嗼;X,V4M {j}!ϻHbmFrr2V}Mii)]w}RkBSB'ҿG?2q` #3瓵V qF:UktS0 SAQ;T|J߮m`x?jͣai5孯~c9 .?v[nh ]7pzK兺OO9۷fCt sN4MOfС9@k[_XXȼyسgуEq]wxXh۶m0 N:$-m9"u>=9;ԘWma4}Z *dP<޽Pqk݋b EUZ,(JGV !zZݢ%yegVX0p -wMw=w=w=?~_WYJX `Cg;0Ϊ)~Kh5s}O aݘӴOdЯWgtkCuJK:MoIKIdmIWs%-#n@F VG⿯}Ȓ?Z0 C ̚yki $W8j= E]̟Y=^㞘dKrruY9ސ)*n$66E]ƍuMp5\ N:$ۀgz=7L\\\Elo>n%pY\@yy,Y$=hٲ%Ʈi> }9={O:=p:8NJKK͛7gOX|;ws=w1m4\q,YoKOCg4]vQTTLLLK}NN~m@Y\s qb!*^qkuj 999Y_=QQQ$%%qeֻ+V_s^!7b`yȔq5X-3f0q'Mݐt]y:: vrsX~pu1|| 1Q|3cMmdHf)ulix@3pEYX%.QEEEdggӹsZS#^t:[4i?sز͛bڴi|dɒI`[)۱k?qqZeֶ-Jl,޹s׬)up@{wb7m2hyE-oJ?ы4^+ ah K?zl i]X9;?\A4-|&Ee`躁iL2 仕*+k_!^=DO9pf{BTM{/]Q14O S9\Xfnlc&gٗ ݚa-Rڿ3o| bCXз3)ϑTX&_z/>V޻g}Novq+݂R `K,6[m'V >J| 2'rtt>(1~)vc96T56ު^)\7\m Tr2yW|JRRuTTLLf2kݴt2 b zl=T4ve $uz+9rW\q3fp-gYԌ2*zt:úHHHf\wTnaZcj[vv6irf>t.OsxӾ};nFzH]uS@ǡCc*?SuّapJmBqMݓb?[sr̐.rq IsًW[fE׊Hu_G[(.YsCOMUׇzrpSyu KbbZ>ڦ>PA3 bLS+0::ڿl˖-|L>vԩSZXVg}Ɛ!C(..u}VV]w}߾}y-[pu@裏V1\J#U}iWO<_v`WrO \FrZk̫3ʷظehC}п䓱 ڭn7e<$Q>n@'0QEeR1CU݇Z?tp_>Y⇰ͦa &C,YO _fXSc{0L+ZUZrLز*0k\= ^xs W\Wv' ee\o6qPq4$/|f_YQ¹gBZ3 \7/N'Ь(ϳ>) 'z pI*{Y}:ڗbit>>-sb2"g_4uJ#))A:G-4M Yjiݺu?CYd _}]oMY9S~wEVV\2ݎngرLT;E8NoF>}ضm;۷%~JJ XZ?|"sȐ! 2ìY/q7j!ڿaz Pk1u>8"1|~#=B4h;]5B4o|ΝGණ)2ޛaQ=jMt.;02R}j.~ڶ C{*-Iiۦ;ݿj1+ `S+KrX}5kiR\\>b&> 呮 XJQQf X:iܔD}pp +Zڸ7v:@ZJ K),*#=%O=VNxU2o_# [)7ԩ8}K~P1n7\yf Mϼ Vjx`nEd]?! ǃϧu'r Эcx ҃a–eyj ]ڧѹ]p.hZeƅ/\3A_C\5ωmZ`:Ogʟkgλ2W˫G,U\nIg'yt߫dʯ5u^t@7 Q60Mv|(Y7,ٳo׋bt{pꩧ5k,F Pk85Hb %55={sr|>qԤB]7 q !h\㇗?u+S+'e<.. q&麎V ,OvQ7GɵނZ8܌sNPTLV]"CS`c F Z#O%55)+* ו#]_Xua˚:u*~?M>]D`ve_mb9X/kVa >ɹrٸ}!ʫptR\UaT̋~:Jp< *zYA VU0LsF(Xwa5 2 3|Pg|2 meҵ4KOEfr@JO}~~G,8A);b V)1,B[^n qc;vjԘdqO?t˘v0sIq6:̴gq ;Q0uC70+RUχCk )i3Q: y $hRyu#\CKO/\BOYp7o3aorY}1jh=v2m u[lg^xPDOUOcy/=sS^H/ bխ{}Oݻw/ַٹs'\pg*J| _{<<}i>ϱg6nyǗeַ֧"-o}* _W;㘱>^ Ys]>:0?}aXö -fr[)'7~ט=l'?'ŭ_qz.1Svjދwx^Hoa3)|3x_W v_wuִF}"q/2kތ߾̿~cjx#UL^13ǏuN6j3BYc_]ll^_C8:{|Oݾ};\sMϱŖPڿa^Էէܹ4 ++^@Va>LO/ɰxKv3mSC[&WJ[E߅-^tŵ7ټLz> |HJĖc)+w^ޅ>|رu37y,*(Ay5;oW?G{jmlKOcٶu'8۶lE1ړ\ex~@a#뜸}8@wu9c6[:sw+dO޵_BM^233˛&8H..ݑVy 7S z~{[ EڟφbM+;g6je.ֳK@u!{F H{P zriTsk}O=pZl9묳QV>gǰerò5yp~/g|~øZ*A?s~e%gZˋ]}Rdz,/|Q2gm.)k#p/a 딉k-gb3i/k &N"r}dW9+"Qc#(k ҘĀ\9쌀ŗ?i<ݻwsk;U^9~a.#vqnX NӪK*^|? cȱ[GåcYj݌ellC|gO8v{fرy;;*1]7h̴鮵+JAaؙ+̠Z?0?p/}2_'`oEED~H'rnٽ3$=t'AM~K]{侧o; r=xK2Űz꯬[L+ӔUGNjJzr9^t>G2x726(f~PJ}8u4(ΌZ<#A=JAaxY/#œW_I7~4AgA7~ _%}@qUz#ֲJICaJUJiMX.Uٴ1, l]nW|=5;_!,]4׹bQk33 , QAAaH_ff(i%Sky0:&*58'FWoPco  G*U;<5<ڼh%v*GqO13)'nx<W&I)qY<.yL lL+"01¾%+1M{̓Z} U檔e6M@NfK l!\d[e,k\F;g,JȪg  Y' Ufg晞]s=U,Y32m#A;M[w5R} 3d5Ƕ*x\b|R3qAQ(29F.C-4Yxd,|FxTQݫ/  ,j󫦟y9uf>TA82TrŐSND> _a5mZ3 r|/lj(iWt.Lվ>V@1X*;OIA֟, p4[J,/%B >V,Ѵ1lSs=}EODODODODODODODOD$]e[ ========;BGUŎZ:4el1DODODODODODODODOD["٫v;P{{========cV<cHwLlqj۶yݶ>Mi艞艞艞艞艞艞艞艞zH G?h<523F@3bbDODODODODODODODOD(k<<3d۶m#W] w|n========cG/%5qgssy}e\ebWDyy艞艞艞艞艞艞艞1δzK_5\駟ƍ) a7M.Ҍdbe}M!ADODODODODODODODO $I'>ѵsL ֡2knm?S========;:H^J)TvpV#]de|'z'z'z'z'z'z'z'zw, 7;n}h艞艞艞艞艞艞艞ޱR 7Ħ#Yikom'z'z'z'z'z'z'z'zw ̚Vcǖ G6#kæ7AAAAU]r{%+03lUcFv75aAAAAXM֣_T=("bnkֺ/{z`m V?    *ay,A/뮻V=Dr9N;46l̴p-7y=AAAAfiٽ{7=qwsvefZe3VM.Zf\C'   dzJARa||Jh}f״jh&mj=AAAA5_biZGTMm*#&op}'=$z    kͰ%+0{lM#$CkAAAAւb LnӼaG"E    šє4~J͢VI=AAAA%Si Le U͎Z@MO$ 2˖8x" -Eeb)CRآ<^е1Lm~AAAa SZ4mYcbè7h\yT֚PP.eKaaccgX$enǍA?q`+RؙI6X9:/}$)[;:@Qs4JkYAAag/ _lL%ї ".%\8GRnJy"RqT[f\7`Qb QJ, $o08S!,~btR62&ĴAAA,KodV˼%f՝5մj7Lz)D3c/S ܤՎ, :OhIET;w?F4lP9I 6h*Lll AĸAAAXu BodbOT۠Rkj7 m}Pɸ.`LL`br#A0ݒI`jZ^LM"~4s$.c8*BX)3VffR 6lpss..ͤZXpT $qƍm3K@Q*)Wpݴ5՟ *J{8R%[*e"7$E?Q&[&q)GJ+Ġ4jlyu̦0CTIʞKkp4;G JcM0HSN :*I\Ȉ˚ZX]k 8t10 U.7֓aR,¡CrFG IbIWpQ^DkmhRrQ :-\[R+Lbc㌫Ȓ4Ȣ )̫4*GE;*5v۾oX- 1 IDATdX`s$)Le,9>xE]sSՖ*% zӱڱIۼo6iik6AAAai _zK!seqqE |̋NsؐTf* ( !$1I"?2R DlSQQ|c bQ|汴[i[Ug1$">{s)(̧8n*-,i5=hKW ]V)3[Eӌ,+y̌aaV^tVRm[Ř+ 9UrbG- =^[C`QJ-֌Q3&dΝ2ިB&WJ:QYQPAADot-VqnjteA3"W}q*QZ(bD&Uo^1y\AAAx MtPĦ%ԳAAAcLBZ] rMsA2=AX+T_IAAAaXTod~4VFG!aQZq\.]iȐTӺUe@:Txa~IbkcrK[/=5V   IVKV7h2Mf\kio6Ȉk=AX c֫ƫH)E[>0J##06z2k,IՂʻ1yy5it2m:gdJMcƒ1e ^05 /  uus˶߇ PVMr ]*P"^_5 WfT?]eA u Hu-H B/vΔrAVb\Xı"VK7XcmϯbbK\xU ,JktXb=Xؠcڽ $1ʩZww ZNAAAXԾ+[ ~yu <_5ŀڪ ߣoin5jZ-֋_2ѵ2tkuuw,a PvQʭ7}Ҿ0 iϯ∫;jf&Z(R* q C׀bQs!!Vm\:K ,<n&p)T hjJ:coXz`bET2xMc־;I0U"!.z(C "kSAAu4n5R,aRIEY}_7Sq_3cȰ%Vl5٦-yadlw1ΐw7c}{Bk3r atFF IZz 8S7n%T֚qM(T*vղ,` $eY~79Ebm&+q8MಭqAoT (Vߪ lx$ +LCM'  #=L_h L+5٦㷵v8,z3yrRJ9jlOL*c`vֵ;#چ޶mP()1R4&κ,J26e[ &)tA4 =1M6xeP'=@f1MeBR6DӦA)QQl>$e̫#b zW  P2)}/ δr^Ϛ˸#'Ԍ"T:c97}np 87Ö- uΰ}wFUW]K(*K[eCV(eQ L̂RMmyWn%A?mlOс+(L!Y~Qc"5Z[TȏiX9 hAAaPJէ X8}?Pq?6GF-㟰1! Boδ2>MOpeZDcgHMNǩqukK jTaX,,$>,,@ˁRnNwz^ŢRqK% Wg<ވ"7cmL\И990:58۠{{_$ "P+͸V9b׷   EjgZtumwwȰd:OSV0%+$3_GM9b}a-n\ӈQOVDܙLtjrYSaHm Tc:};<˸vu P 8ıZuS݊me*6.cA凨%|*y,ʷ X̪d[Z7Q9jTX ʰΟon"+7eAp5xrrS`Ypp!:M7>'/Cw)vǙ/mX-| ~gd/>x;p!_ a)~1Q Kμٵ?S&{;ow> 'wVGO_k6iF83r ~NȍQAztXHi%3|t| uiUca_2Ⱦ:JSԐ uvC76 W.[jtԭ X.;SJkl*ubgrL+l17g1Rڒ-tslL5Ml&δ^(/Dyxc#R A`so1egX)3|V<_ sӓژژSx97xڹĺ=bA[LaQ~M~tY8_yEѲ_ '?U7~ɐ/5fإnk'h*gFu϶";:LrٙY9Ϸ^f]V^'RUZ]yS 繓͊C{(/@HbXX"@) B|z+pYQ"eLy^-\6kfUmotj0b<^?zˤgIF= z),\aEkȈy>(m =[ivV# i~cr<nZGV/nXzlFw/X ݴ;?̮#}Eطj?)g6gvh\mZ~iOGMtY[n \Ӌ}*Wlw__l {T2x. _} &K_Vih+nq5C _8/ug>tilv{7,>{%|4I3\MtV.0qZg~<  [LRzKV7hmgћFjP "KnIx" aH"岭e7;Dne?զ756+lxLٺAUژMdIS\v+UbR֭X(p+ZMpfҏʇ:{S7he#k_׋p#\`˹}nl0v|},nnmIHA \\g9M)Cxg!ze/eCw-wᛖVX_A -{#Ͱh˟ݻٲeK}ǎڵp[B-#(ԫ ]"(ʣ}jBteu~8:QJy(rVJA>"cgL> Baa0::H+PZ b4 |F5Sh!xcpTyC`x9 .zVk xΌ,PՓea_ր/T-[h5RV,~+?0ylIfpc~(̊j9k+%XdЬ\>x¾[o| 'e pL8I:-n׋_2&>l.b&6nEƺ`E;lEOJj,J !LL7^{l}cv}w5Z PLNz ۶ycy衤f\Ą3gX Ax!F`_ֺ,h`JEbQEER+,hF6\VXR6ij6UEe#qUeOh")+iצ[9ծC\XCq%dpӡx3LRn(ָ]R2ars|FSpgi]*: Rjңipғ]nCno}߂M݊C] pL^}hVk:1~ j`4U{`_ͱ;i W2W* 9Xt*ϻ͛;ۂ`WZ+FF4k-ssQ]owni6U ,K"j[ D%e+9$e-ќ!ՙmJ)W ˷x!Xmk\~ > 8 w}"?։ۥ ЄWi5?egZӚVݒ/Y^;*XrӺ8pæ'&`g2{ aj1 RqS۷{]N8U*mcAy˰JS͹SS ^*ͦdž8$t5m^bS&qْ-6zfU2 *LuZi+:U:S&S@ O+帾h?HV%OYbZ +pӻYQƈw1atG*snEŦfsv]>Y524~OZ\f$fX5nǾ˝} t[UqU)v;RA8jI +o3z[ڷ/^XsR}[-"; ˒*`orS‚+l଄zՆJ3W>]ٖ>:S?fZiZ-_&c'|8}-vv懭8AvSR~gyg Sb/9hVjN`wkZ _b6Vgznt8nnmF=EweZA#۪TrT:/5elI׶w/RFZS)?XLLwkzN(;°QDej,m /BTx:mС%*X՞4joFIΘ6+L\v?tfoht;VB&缢iu+{/vV#[;WěKW33:lnd|*Lv7wV"$Uwc'v&֖s/!*&v+*fq¥k;Aak3_|xdQ(>g~`I~8zv jԧ~l`]遭6"1a&|FͪvbQӕM7LhԽ in۷{LMQe[5 rP*A+kL.C&4K2 pR&_+f;qM?FRnbў")[LO9=/j?1M?P>kݪ *OQ2`BɊB+[΅ھ1,Y.=nά w~~L :CkN*^pve޴t%rFS?}ptvgV]Ls}vDd? IDAT?eO8v/^$3!qQ}f2|Y YFAhm@U"*O]فzu\]JYQ.*CzKV׎1 rG^gN`||#rߺA'YT:Tn\vLiǩf7\4L(J [Zab1ebeYyEQ#V!x&[ C8̮Ldс57eTح luKl pW5Nyu/x#p&p\Vw!8|30uwwӟV?lcu 5l:=>cCWkIx*pϿ zcl`y9?/?ad)|\6Y;Bg~gFN8in\WdOyRج #A:6Aeʽ6߷)O}m;b(n º(Į>^ͫH ,.eϳ@i^b߷vX+S/Yiܞ_.[SqPUsڋl5ڶC',X*bV|_/z> &n: i_U]t5VO\Vb1q4x]?+> }3Ty{\ ߁wgܭ޵Wi:,/lZ1|{z1q۽cygݹĩ=~x ²b)ɡ;vruu7/ =5 /ŀUJ3sjpoZ4y`xBc:1l _2`izWsѭ%T=varEt~<պapA4.x/9jl:طu3qV_u/ ^?x_g}fu kYVocEjT5Un nJ`R*_M8j4˚3~ Mf!tI%42Ҍ%FOZ3DV ~^}ޣh;Lqgx _ Fgic&?3txt/ega|cy=(tHA!\UkU+ J}cA|_ 1`PoKtྲྀΡ#Lꉮ"au Lz-^ЁkGYLL=GL3wsfI,g"-{_׹:Z s1"gR\rg⊰J{ *M>̝ߩ̮7 K=7O>{oٟAANtW΋{܊{nn='e q 잫c yEopIxl8HPAXx˲ z̴sv/fՑ2lq1~Jq*P.δ|^VKqc@$Y3)q}:E k8Ɩ֧"3l &4&vTjlĒYl!+L%XL Az ~ w;aä[ _pw]>ftM-{ pD=[LCۤ#mZ Kk!:ME2{3z0|RuSA3Vn\1D222XG)E`H*[PWؠ}1{qZVE6tuN"W"5g ŴAAaQ^- (ZAk .0 #dt- _҇ޠYX_Mk?n=ae)mcyCgz>i_y}ibNVzI}M>oJ,an.* XtIB)ž} IbBWT@YwqTgfhe[ `c B\ )^%ȥ$ !p&PB0c Ֆ9ggwvwvҎ}?Y3g9yfJJNdZItҒjki!4uV*ҪCNUeTK(TQuL݈Ojz TJ%seJK'VODns<%UEU}}{:P[ b*1ߟH~!ԘAR__I7V4aW#hhlLJhf6$ 鴄@4*H[me6Tך0uHa#Ң hTWn`ٰU̲%`DD^ )Hw[cZ2(M = """"" ZHVQ@^!Cv1\!mKl{fCIL?qwY҇sgy`( #@ĕR¶{cm9V%3=FɓUTo'ƍ:4U*SxذAohPB!3d0US\j"%uu:;UcxR!`cj¢XvmAϗqw* +Zxz̯eݪUSzCFU"'V?\Ug:&U1r %08(Q[+idmz4pX^GԤmA H; izB<-$i% C gCdSvlXTS?p@:3TH^1uDRV` `#u!#F0BaPYޞ$ƭ9o%Kk}klP/4MU *icվ5[-4"5X7\e*lAil[4mH.:K 2nLJB*eY. 4RZ^ض -\ BTtp˟Q+`Ci@ˮf5:~uw@AamV ;ˠfR Xi ;nCBao3b*\spkq`W5)`UC2wTmm +و]df#]r_0 \hXVz:!UhdcgSkY({.Ii  "0>hrEIDDDDD0F~x~+Yi%OYU/v9H C%z{Uiuu7j*%a7]q% DQU*%bض=o j6vRڀS =IDHAFv?4$4=h>icRyI6q6!S=LC kƔsaRwEDDDDD ‘oJN|T^Y5X4pL@uWa#mS: SUDm:EA[Ң#H&%z{l%TCijE6nNKضDMZ;d *0F}_*hC)H3KBcB HK% + iMJdJ$46>izjgj€ie0  R!!-l`΅q>?M7$JDDDD4>D"j_8 D".mH{n㝴/#|5j:hBM%::kdR)umjoo. _ZW%&~46Dof.Cnaڦi\ 4ÀTI4UU .BN!to~5( یCTf]u 05ΫۤIIK%Ŭ08`' @d*TI*5gg>ڤ:4 =ٱ񈈈6uNbC2W0 !r=3ƸdqV@%AʡWZ.Q E͸s/.*MSURQN2Ͷ~u5hnV NL'_%"UqJgJ')HT*E/ka`@"R׮.wp3M !lr*E1U%jBh2` v"Ԩ*2UTj ҄4`'hBhj5XI@ "jQ4 MhFloAjPJb Q=iAiH32 By !+ = m BQ9m%]@3bH_EDDDDJX M%B!yH%$"!INep(<;/&Cx'*!_CJ+sLZQY_DmU(1ލ/1J7bw&TXɌY]6gLѨsKjH bko>UCb6jI[UTo#cY4FU1`c<F0"""""2 AϗTGޕV c=y$,#"""""xl{|V+'|Hde٤VaFnLAG)B/%"""""qn>\AϗxYF셊*\&]^Yâ[Q;EIiô2ͪ@hezDDDDDD~6`K r'=4 IDATԗ6?f\^D%#7偅66/xw-hh4``;MMȻ'KZd:\m ضT3s,̲}R?6%DZ%j8i9#(% 4rŠC0tZU]%LZ W؈b0V)+:*Hp%JXe*ILId2r5Sp +ɽ1jɻP"W6lp9ǣqNBYVna$aI\BC99WPv)+)K_kQؐHY m5^za- M3%8 m(V!=y.S!  nzO|0I D"a'{`{$e[%);)U⨿H&նHD%IhlTۜa}違NےIush@€&t a24!-[٤-M$~XEȈBL2+ꅭH BF(CDDDDDD#''Bxmcm{gd.Hn-lfcK|ϐ8ǣq'2S)O=w*LS%@<ML*qNjaj\2jjT_,V]BRh4,W\Y K3! MЄ ;4,ۄf@!@*eDQ#Vt.i g""""""B%U3 MMc=QX peEWODDDDDDD䛢U^AϗTO fԂhy%/A^Xԉ҄%X zďx>*YidɄ( Rx$2b4X zx>)]i,X(3xMmhL|ë|a,Acl#""""""" 9_Ri<WZJ&\Djh,M|I|<гNrch=_Rm[ t<"""""""0%Uu&z\rB2Ȃ}GDDDDDDD4&Bx>+وvgH}GDDDDDDD4&Rx>)d`KF3R\i5܍=*d!g@Mx k6Qy"vmzͤ zx>+ʜ)͛,1wI7Nf9.~i[yl;sx{#=u" aޣJ^'`SZ n-6@Sfw͏oEl>oNA g9id?¸vB hv?xmsy6+;x~*C zҎ3wû&}]X"p/V]??z =Gk٬=ċ8yz؟:l,8MSʣE_:4nN&a`MT k"3g8s563DH`F7z$XDo]R[e111yM@{́B1$6Ȥ.n˃I\> o"ҲgDG{H,LBiAVU'Ne|*!6ҁy-{>R@!ƔEv{^W%q:_:_ R]ˠEаh;葆i|sXyߙH@öb῁f˩df>~Z~ k4odC,c݄tʒv5~/Hv}ٗe"Hl\KtG{W@օ?_e!;Wsah?zH+RJx=fZ C=ﵼeALD7%:O*r=y=wxiijw -h^7b v{@Ӕ~ᨩmDY?;P]Zڷā\ !wFmgh ڙe75,]|Svx%111޸ =ڄȤY*Ayh@ژEX7_SvR}y P3-?>=4:v ob#bk`Զf]+A[NDZqP6k@'ÈMD&4p_F'C$6wK^W}+.Q7M;Ć7_[-pOt ?Ẹ`}p/z޹h;ϱ1n/:WbU2VXrg2׺٫8DVt,랺zM;OƗspfu-{>FmjĚG.BCk`#y-'6;_Rm~Yl;Caw 4Ѳq2niXy{aDe!y@sKV7E*Ja 61wװҟE^7䵶L.}v:o=o߉ ziDp~nm_;7AZI9vzLھ}$儖m|IU|晴;O$]sTen;?6H[[Y 6ǺOơg|sNaCƻBOjH+\ɐrl &O PUZZJҮ75]շ?\eogQ-+헏cwi[8b ,sXp ymhuX^xz{<{ywaGcpX-o-; {ycmƢk?B0um𸓱AG}M }w`d`bkc+5ht#چFm%vc{*3PkJDDM]Uizf샞2.:fz?w =ic=u+9]m;iر[ ٿl*ܬލ(f|}ɱIۍhL%װk1cNqfe;$aKZ -<Z.y(asߔ=_GSfl9ɻ o=/eL9:H)qu_J yP8LSUe[fADUkŤmYX8s۞U?Ow} ٤_qǍmÇ_=Xx}x{/ , cF޸oߖy^܄\coL;ht , kU'OAg_ÚG//"R>nӑӏS^ot5l^@#LUXkԵ#ݷ ey {L5g1kzqnҽ"~7jۇ}la܄>/ya}SU|ɈӒ,J 5[n@.;xlE;<>+k.1'aiFCN24MmzU`bv(:O%S83fŒoSXCzsQs`->y9w{Q׎`Ȇ-esb##BuHlxb`@}ްJmt3y |>׈T2J^fùV9_ź]gZw8Ri8V}S!] @K秢&JAe˂A74Gw;;8LzF{zD4F[ oQ,ro xgѵab ExKX|e2}3膁ISסG;m8Z@n^p$=>2-Mfу&Ǟ}>2GRJP+߱'aG cY;_ ظv5GDDTw n6@ڨmEiaŜ~icpRw^3 <Tv YDbRLG\-eb!?Gq u){_g`ѸIh]2Z_O0yoȯdL%5k6kuhУ~믐f-sis8V}|IT lZDɾ5L\ V{i{iel9{>^t?&o)m./{fHDm⡮C]W'p]y#¼ wB<{{z ^|~$ystg\M4|8v?.{z4?O} 4 Ӷ>}\O{<>|"JbV3qةgcy)v)gbӏ|ᙒ;͎s{n}@h.Eb3c9K5|fQ^)eW+>;Fo 91?f:-PfS|+y +Yf,Z Lw1&ϻ䈑ЯC1C=/6+||*0]|/uGX`M|rm?|a}~Mr7߸vuϦlNDDwsQf]hC4DʗTGCvv%r4WŒ{?P} o|wC(SSׄc^>+VRdD\SZ;YSSM[glv/] RJ̚;7Hk\d&R6E">p8o,/nG5mpMƢGv&4fFBy{%Z;1D-jxyY<3jE85qGD4M {xzKkZZ*]fih]Pr>~9ƶ)mD|]ew_`\ͷm[ #KgnNiy Uύ5;7_>P5i#+qKw}=_KJ+!P1(@ong67{Vaਲ਼ś/>ڷl#ϝx:^} !hnmGO}E*qƷ2-!e?zc=>Lr&_L[5o.=ERf5Vf3?cwޒIӰW\_! IDATũRO&_Re<3dR%c% Lxͭ8䔳<ǟ{ok./ڿ𸓳ws>>Xx{sΟө_}ni؉oo6H`9Ki|4',7+э /\t =к s/-Bu󸷹%;Ǻ@|󰓽" X?^-}-uəh1z1Χ03ziFF];j7[{_peQ:tW>+хpLp >hzx~+r~ ܏1WPm*s OZ;CWDIO0ho @[[mm{{=X%&aY;{wSXb9A64baƒc[po#w܌^|ZZ1{}q)gesgy^xC$0umcz7ƢO>Sǝ=:"on F_w>|l\ FC$̚;z6ZgmSz!P h|K8oyτ|巘z^Lx>Hu/Cq 4>J'ɓX0)HvH˶D |>0W< -\٧cXI{T'ÈM6}މ~5S@G'A "Yty?BmNyӷ!4<uY-j4/3+\]rAR̶(xa#MXS#xCFgbD4+:侾HXUZSwv6;!7sfE-eÎ)JNi=IJM[l/ &GTDD4^h3+RJtuh3DW޸ ]T2Ħ-N4 m#> `꡿Dfa`3XÑ%:@u`c:X}$,(>ĨZ\oǿ*%ܸ%&9ؘ*ͳUQ΂xUVZ+cWW)N^T7|}ncέ%""""hu:`MEìϣc y@a3__աy_b3n܊; Bj_P?l_}=Oħ8 3y@ZX 0b{޹3o[K߇cAm^R&D%#{ceyM:>**NJ`SQ-9_A#>B˜@h73}+KRf6eg 9w%vm B|sXy1ZDݴN v:^osn´~N}jxW`"U|if_:*gͣFöǎ\i M|I5|݈NLuEMoS1T7,`;asGU#f1#ysU Լ0Htv6.9:ˆFo%B #԰R=ˑX5mapsa~obfԠfj7cjລ͘uKFmB3]~+il󝴱gg^puMOir4ނ/3J' xuwosu?QxT{JXy2Rr3[|g=KzB۴p޵&FrFGh7oċ$\+5'6ၥ]xsE 4| \ˇ_ wcGI JLkq1\yR3&׏_^DDDDDQۊN{4+iպ , /?EݖAi |4fqXطHP3Qjgon˃1\<&6m^v̤=.DǏaW#]Hv;ՏQz}=W?Ԫw^ ӏð^7dZs:Ú Kw,k=cvWTKX9Mt6aN% +3y\(Q,ĉ2m% DTRi-ܷ|܌G^G}}yw"o[\ 5RO6pi-֍Xcᠫ&GDDDDDD//#<;߇ʒMɀTRi5Zutt|&l?=HH YWԌ~<5e cSqn1Lסk@cLü|&u@#"""""" zx>+i9SZDׄ omVB́WI[WؘTZpi-#?Zv|DDDDDDD(h tdV%,Q/g,|7+6ҊhS0%[qO³yL1AJ+"""""""0%~AqO+WI H;U]4Y;>`6""""""" K7Ϥ- ܗsy dM_V?oc n'(8?5YٳWBחaΜ3g%<¢B8If<3Ω,و4iGX@ mքٟ#Qw6$@ [:UС|I_#!e+BC<%~&9Y͒%iٳK]PRҥJ:ue`cϞR5Kk~ZbѯRC|˺_Ni)iS%{Æko Oy0L%+*eޭ%$DNǎ*֭5kӟ K ͫ1YЗCTs%z#(@{*2*@}G v}E]Jl߮ݪswrF m۪DᇍZ{o+93O=Ĵi!* F_/sf4 2z|''CZdĄ)T"#3—6$\8({n7;_}/_{+_68I%_r>J -hLV ҐPZ6R~%_sQ.cOsen4\v^ozz:cǎylܸThׯZWɓ'y9veeeĉdرT*r9v+Vr:uČ35$h---eɒ%޽JŰaØ8q|W^y} 8qEEE0?p\LB ::=z0zhҥ ?^|f=T[溦(ܝ|G}DBddTr]UN  c@IY| J%* zaL$IW#zr*++<qP}6`Y/6w]_(@f|8id,pعfwmwӫm$YӶmSoQ*  >aB!Љ WX8woMP)+KMR> h5"?+`_ |V@Xm/Ep}h9b3gC:}bhR4gUIWfnܛO:tڵk@ZZ5… 6gԩ̛7ٸq#鄆V[kט>}:O>$)))o2c >VXAVV۶m &ФIy Yvr9{ն(Ws3j(֬Ycr9RQQm_YNN$Ѻu/4 220W 5\E}4Ѭןiҡ/1{A[#v]M`6Ãޥj0wXM/N&'@ZC{jޓ<`'jŽ4<%aU[ xf> z-[ 7/]FRhݺ5AQQQA||~~~,Z;b*[p!|U^6:\qamNI̝yyKLLΝX_P<&v2O-Kb ],f6 "_jCYeKS ETqt gp5 Psɜ"+˻w+_zG!v~l=Zd>*zDCU[>`]I9J~hіÖmJ޽{ٽ{7}5Eߙ-{`}w<ϱ+ܝPfJ oVެLovI}{[㶚{Ǐ:9﬙ԑGzv =b qX,AId\/D2#q_{^۫" :ƩKMV&1LNƒy@ ycb`~L/,Rűti 87gx@)T*Vb…vgΜɚ5kLxxwٿ?t֍wyǴ0##5kڕZfÆ TVVhؼy3-[ Ț5kh4~zl?eggzj-5_WرcL22TTTT*Q_c<0+LKKߩS'V^MYY1FTR&%%VvDDDйsgVZEii)Npޕ>0D >|駤1hРj7k׮ػSRRjzcPayZ8cW;ա>u1g!ꞛ_RSy@0ɸ5~>^-QվS)mhԜZq[mhGڜhv%WX~ބHޛR\#%Eٔh˗/gСɰaLQlcΜ9$''ˠA8~(90DM69sPVVF\\ ȑ#c̙3>}СCM᪽+}?0k֬EoFF,XE۷/J~1yd6ݻwgĈһwoNu;T>k]#O0l]μVs(%@  Kj!ϓȆ.i5x7/IP0섂)sōy,Q;~LA5oXtݤꓞرcL G/h Ndb@0sFKj+/gJҴ 92̔VFכVK 8CWO.ɪ?JJV嶋#D^A8@s!I-Z 33?&L neD@ o$k7Kj)8LnsnOY䬏k H+@ 8ٳgJ"11iӦhn-uK< ϓFZa^f`vp]o$Vy G'NS.CP2P2Iҡ &̏cj@ {FqҮ];s Cz׍"_y6zxy- gev~^!(kG/0)2} G!(W)Ur ed0_ @ 3|E j/`Ŋdeem6JJJ0aM4G(BP.ӻwoϫZ/އJ%~\/<b7v[Zt76y GVK*ЖUP^Jq9? W@&<-ye4 #ԥ.-} RY 8_Rx&Οh%S2̺ľy1jk({{U塡, "[f5N\̫H;H'2HAV|bct'':W&33͛3g.]ʕ+ ..ӢE %FÊ+صkZh,X@ee%cǎe޼ydeewqU/^́_~<&#ymڴ!??a_]o+W$++͛3w\4i„ HNN`o߾F6:B[o{nz=̚5 ???}ֺ֯_Ϻuz*=1c8Ա}v}^JRR/ gr9]ve֬YDDD'8v\̙?Lll,Cu:5VZFGETT*iiilْ;w®]hݺ5 .wΜ9={uֱo>.]JHHkײ{n g`ǎlܸG{%U_4֬Yî]hѢ .$00Xkl#ΝKQQ_5۶m#''~ۢ˗/l2ΝϦM޽SgÆ l޼SNrJS]TT˗/g޽|\vt233reJ@@~-Vb֭N鵲G\\m۶eÆ S\\g}Ft֭[nݚ3g4h}^ڵkN @P,Z 6N+ U^2I8=UdQ+5^~y0?} %HD/IT ::ܢ2~2+fγ,ێfs&ڇW*9lڦTJJ4C| 7U~npxep~18I2o0~/T_JBEp[{#@zǐnsR#TJe%hL>`T*&++˦ĉ6 صk3f ** nƍL2|}}L:ZMxx8ƍc˖-.kg%((JvLultDaa!vbϘ1cرcC]* \)))! bI&V`ܸql߾TOӦMg8p.Wq!9;vC=} ˖-oW^ݛ+W/~0WF1E Ʋi&oڵk9w-r:@ u/jS?O[n>}n~,sD@ 7_r#![z5/7?;mnqEZ)2 K9 M#-Ÿ 6f!(7ʊrQ4⛟.X68 ?/j?j![+_}m+d2heO3ă@PSΝKfxHHH^ի/XNG߾}6l:t`ns111 >ǓȦMjl#ϟZfС$$$0aTVVrJ//v{1AѪU+N MƜ9sHHH`̙m]l?>Ӈ)S0`vZY[oŮ]xׯ999۟{98p Gf;>^8@ x_R[yF6|pI{!$'a&hf$O exut3vG U)ᣔJ)GSVG&JAJDy*JؽdCٲgyyh( FU- іK~K_ -Lur*K͇B WPxMϡːaȋed" 9䯉#X-G繪0^Q/1&>nBkn_ XDd ;^pN @ ƀh7;(J@d2R^I IDAT$I2(g>VHU7cTaawk 8i5~\ӠCAyDiy jשLfJdr9JmZ%c0&εkВX^]pXGX.-}> آmU]Z|}@hW?jv_VٜJd]Tlkc@ %alw2^uXl^.VQ$MuV(*sN uq|lKwؕ&vZw,@ Y%ՕIllZhvQ2{ond_Wk 8i%@ %al:0T5@o@C%@ a7"%Al#qdlMvy"J @ OFF%(*ҳdI:wQF[ ?#]Y ZÑ&ir8ֽKne"v1L*9e.zopi5trB| RQ<"؇! }k@ @p0:f 2~ن+ =MA_pIhl;f;J6ImyVΖ83Ȧk(8Re|t+挌1و.!.0*՟b@ y+1/Phܸ_/MsOg曶U2-SKuWYdgLY~GV.gp`2Y*`+E51fHpf!̑ӪG@FAF?Pof{_ ynMVey8KN°L"BGP`A6'@ wߍdϞ kj*;u6 ̞]@N턅~/(л%s;7ax^|1u\֙Hk68 @j=HMҵ/Z^x!6S'g'"_ op|{QjrKj%؍WI&齱̚%Ppio㫴 m^!@ 4dBB˨Qy뭫_jr9#?_ϩS co_˺w&U+ZJRS,ZFj+)+hҧf#TK2iPTi_k'~OAa j2z~~ ;p3Kj+|ۚYn "B;j/A6,{OZg{و4Mww!qMegip@ @Pd2س'ŋ 1{vTl٢ejtlݪ!)I]GV o2:5Nt+r]AC6r};=?C.(ކPknImy?Hf]97k 8 *N?k-+#窎_/UXiRоTa,\m5'@ )-}X()sR%:2yr0燱gmTp9w×_^`k$$~W,YRHϞ=XdM_V G(CY|~%z#(@{*2*@}G1nImyۜVK#21[xzGS?ɰfo@pijy`Mdž+i&jI-Iw9QޓZV^m,ֽڷںkO @ 3jT mf!XS]qİa))P(GʕnXO=uW^)qcwU*gu渫ߙ$5QirR%'?D^ 3z!C$#/1UΩpmm 𾺳H/jd]t/n52ח#GuV~sɋQ I-LG`Ĉv Aۆfw˲ؗ MK< ϓ=PVL ^4o̚xHD'یuFG=w^?Mӏ59rn|)ąr#"HMUYeW%aA,ͣ{,tY=q@ 4/6ӿd<$RU7Φ/p{`M2$Pw=N?I2D\ŷZ׫{Ogrwiޓdx*)H8@ ApOqKj#z $8sFk ie/{ajd_/iOhsw#-Ƿc7EI^>I}(y\|2vp@ @V x /<c?L $,㼮!a֬M./p`o)v3NC^%_"I=T֏dž%ʽ|V2T$ s(+@ A-~@P:/<c<eun0001@piaX9,]-lk]a 6Xg|a GQ;El`F-ak+6tNwMzN:E||<mu![psp|]7^Ou}QwǸ%INn.3KV\7R^Cf: F!>D) V(pCT!#\IӏMf @!m|gKeA"=Dĕ@P~g/_ΩSP*0qDz}MKzz:cǎ~@Rhswqfꈓ'Os1 #>>'z{̙3^h}q3~_+%@ _Û%Il-cv<=yYyf/k(Tw3yDƿ6vXh} -X:6c#\hZO{T*_)--Ѧ٥F` |<{]ܺ~9|0?cذa$$$Ȍ3˳#55#FЫW/qΜ9Þ={9r$={dќ={}Miii 6={2fΜ98]xkJ;csu~' 8={2`֭[W_\7'dԨQ"4i´i:j{Yt8Sgu&#۷ow}gdӦMܹs)**믿f۶mod߲j*nZqڽ{7 XfϞMhh(;wdժUi-3**˗w^>s]… -F˖-yٹs')))ڵ֭[{9iiiY]vѢE tߕ|gaff&˖-cܹ|lڴݻj.Wsrss~UL9u5UM>'7 @FF馲/ݻ<ݜ@RRRL'u,AAAT* bzvwpguە~W]݇hSRRB@@[\/[SPP@XXjjkTϢ3}YsUω _|^g˖- 2 |'e:S 4^%|C-dfƚoy GVka:˫KVwLfοRgOK|nhҤ<::|KO\oq^<ݒ$Yc.\NC$Mde:by^Mcq:nW]wuFFFd֯_;CVxgܹs:r%I quYtٜ:s5WG})S׿HHHp:uQ(5IYuoi%s_x/N+ zF%v[By G%]XZ?ʪ?rw:U ?QQQ=I&Uitn,;;͛έ#7GDDح7y 7Z8se:+c1ҬY3dpƕ+W5k , 11JšC2e͏ BMiuJ+C$(//磏>b̙zd.oNTT-[dǎ7eeNu?s6;WvѴiSvɮ]x衇P YRym5U_o!O$vsZ'q=ˬ6%5EZ)r._-Bvgr1OCva)-*3yZ.k#s\ZRa_ deen:ӃwII 7o; QXlܸ^˗M9IIIAՒϚ5k߿[tڕUVQZZjbpgddIHH`ŊUKz:wlǝĿeDFFҩS'V^MYY.m0F9R6Vj2N#+ݮgW]wufffrA***P*j •~{̜95kְa4~eNu?9Sgu5+wСCYn=>{߉ե6\]j*wO4v#Kv}СClrg\ָ˼y3g2h ?nlHll,ӦMcΜ9ǠA8rS;n4OיnB~vG9+++Yr%gϞEgyj.\}ܹ3W&%%իWS^^Nhh( kcvYgѕ>gsj;WRb :t`3r)~iRSSMpXj3ΰg[nj$ /< >|:XwڼkC]]GAVa,Re-Ȱvi =/\E1hFjPYr*u4BAF(+l>x=s1wx u9tƎ?`UR_v7,]a[9κPn$A1uTY=eu]p+jq4epR4maL&C$ӫ^Oyy9 8CC]DZE-rkE^Y\&RgTbdFG%Z&m׿q|˶\ŵy]k+?{Ox@ >Ν;$IhтL>CoYFu7k(;}'m6m@P@ZZk.,Qq SER٠ .@AʐEJ)GHڴY%R_s}ιVrzιFbb"EEE]愈T*B\cӮ_H<'iU6&'**g4ֱ|HWXt)pssa?mO$ uϳt@ {N]ݾ|2(Ę̋]G_ZՁVM)`X)y(p999; T*1zWy^k=W_ΝQ(j$:׻BKlXV+EGZҍ;0K$|G* Q)CD@5i9E͎ Y}̯aR2e QwǃYvL3L,V1]$oڍLZ)գu#],o3{>i9ZB܈M͒ax'RJxkY_F* &I}ۺoT\,q8g wgx?.k] {)Լys~+类V[lɚ5k\eה{(M6]*!pզđxNf &lmSaۘ39tL&&Vm-x09nWlW r.˟tkmTPooqZ=B!BW/q U<˸m&ac. ī) 4Gӡ;Aaq~M&3y}< /^ѡhJk ʹ'ؖPfգvddi3ӑNF5ȷL״-u?/5[˼<?ex%s4V:fjUiSacǎѮ];OW IDATԬ , ..h8pSmU6ngY!č:8Ok(Wy3͘\^*~6jK# OZu /Ow2r9j̟_UA߻}dC1-ǝKHfkL:v@S+NZnϲ-׍[yAgX.ߝ43N59VO!;ٽ{էedd0g-ZD-V~Ν;p*ロQFd*\Egj$}…DFF:?/~"^ i!:8,Oԙg\`\:3ۮCIa(sTGQR b6L u+:RBDPYzLs/'HhYw0IxAJ8k?}KkoߟG :TŴn2N {ͼX0bq`~Lz !\CII ׻FIIySSSt4m2wo:u*dgg3qD|M>+*j6vm8:'&&:Ai.W^aС?RRRXbǎv\!WKdXEwKÿqx55B<H`B< \KE@/P/O}v53Bc{Y(u:9|-<h/ʗ3eu;, }^@<ČK9{Q(}8 vO`> +2yoEU;K@ZGol8CSSpWh=0`Ӎ[lgϞƼsΥ]v;w?{FcVezETT ĉ^jz"&&XFMzzqҥKyk׮,YĮ}?8bccIHH(H>}ԩO>$'N`ۗ(x NXKjh^x. @||<ѬXl۶g}֘sU.ҽisϲ3~6mTiM+g]"YYYx{{]!WKlGZtXUYZF}NJV)^ Z7dJm`!0#%%ƍСo6tؑ`BCCYl4ire#5x78q"T*ϐ!C]?b\\qqqh"ƌCbb}!!+V 44􊯍9 (ߞkczX/ms_m]Ki)W6>Jʲdݺu̘13gҺukiZw}h>̚5kxGz5ڸ#mN~MY;+匶M7ƍygύ,)nK"+IZHKkxE1̞o~: RS5<vk|zUUfٷF(M@'avJTbH}SN> L$.V(,(˧+nϨ+;ִa$m@7M]ܘPp`ڷoϜ9s(,,$## CjՊ<֭[G諯k 0|}}QTZ7RZ6ֲ/((>#ia7oԥKJyQkcKpp0m۶5v=4h/+V@rRٺ6+O;OJJ\iY,_3f'XIMMc|￀smܑ6'?e#vnj… o?855>={8\Oa^vSp%aaQjZ:3Ҿc!y S vsS@WE'VMUj_`FZn{_6ТxG&N&Nɓܹ3JxdJE֭VK.uhለFq(**QFt֍PZZٳ9y$F1e&LYٳ'ńЫW/cەر#}!++{wCh=&LqgϞ=zl^kSR}WDFFҽ{w6kcm6XQݺuݻ)ÇW^v]eᅬ{onW~/^̢EPմiӆz_ŋ[Ǐ3h/gݶm3o<>s  &&Wa0iH6l'-M×_ ?mZ@eBrrn{#9|K~ZEhQ&^z)m Tzu8JʧfRV^>>]gG^e$NjwMYW:M=ai (#"+A x u{e͝Kω{ܡ8=nyWYE ۆKanj',i%VBܸ6_~}Nz8vdf/R?Ú5yo/eƌKAVHMmH`;3SK^RL1w1{v671_2w29y0ٳ y8Q__7&L$#CˇZ~؃ZoCn7y cѠ'4 i4um(,R\x&T*,)OPZbJKK>a=uׇTf違:ʧYa3%npt-ۑAAn<77/Dypyx7lu߀o!{\ +j -A_?]wj[@.KUvG9Iq 6i5|rx55=גƵxqbs-GN4gLB!FF~Ҳo .iUӳl T(`Lc34b2 tʜ9!=Z+)-z4b?sd4kAӦW0!(yhx|T7 u7d׿nZ'0do5צ%Ί,fbuʽUW>o5Ҫam5GOqsGOѰ~aUbK$c4*G:8!5oޜ_?[•Ѻ%Kri pܹRڴ0! v#XGI ԭ&qJKuC˗ew+p*yt ;ׂ<|HJ| {t~DU(IsAW[bZ8̏*Zjnp<=UD!BtiKrmI4o~s4Ldz]ےh*#ә=; 7[nNm$qm[!Z%aC>Ӧ.۠bY=W 77xayp-'<\?4[> M(뜪3F?b?|6w:W/q4X~zaCa0)ꧻ|EFZR@l@h_>l-Ƶ B!Ud7_^=ɂ)IKk@:fV- 5;Nق;h6-m+ `N<?TUhiZWu/q0UU=/~E JJJw׀_~բxV׫ 3̥jnpUyz`eiwNF,WO.XK5oе(CbժUՋbcc=z4@T-[ЫW/0`'N0ʐ!Cԩ}ekFcvj!M,V||ƏO\\$$$PXhy]쌌 y㉎fŊ[ҥKyk׮,YĘVݬ[޿BV<ddd0zhbbbg!LLLO>tԉ'|'N}vKTTO<'/xG!!!xM vO ǭ_={cBBWM!p@u/xNf~M=ifgfzXžV[Umn @KqAX>^l Aӵ(C",,Yf/wߑǤILlٲ uV4ibرyf̙O?mOHH ;;kײ~zRSSO˼yHLLdǎݻJHNNf̙$$$k.V\IǎcˋO{)*{=$ll/= Y;'y7n'Odɒ%ر3f_xرlܸ+Vp!Νkr|bb"_~%[lᦛnW^a̛7[ҴiJrϞ=|^Ǐ3{lܹŋm6+DqcqssK:v%sʧWV凚\H=dӬ7tnM͵տmnŷ[S*/WTvs ;OL3+:Q5Ett4 ((Aw^<ÇVZT*zcHOO 2///0`ʷ?++[2rH|||flܸGUT*8}4дiSf؊kK/Cݺб#\ VCF~E{X(33[2zh.X~}IOOg߾} :ZMPP< ?I#GJ{?RѣGM`,X`]2)l_͙3gh4t:j˦DѠhBCC+@⧦8p1MQRRVꎼ aԩ,_O?H F۶mmڱ|3|~9>\?갍^gX@EtNTtrOW+3ڵkԩC'm̰0~4C3"[ĠmXQ)-~:Bأ:8#3UUmvF{t|:g:j+}z'[eyб߫KˆyB׵(C --7x'Jb 2z /^Aco.߱`|[C.X¤c ت?@\\qqqh"ƌCbb]ut-0j~t[,/;okVYm+OEKJJ4Z,j)))4nظ]CJUh!čKtw%CW/q8UBߎdqdE< B.t\Y:(1Ovmq=ً-XͣҜ]5aD/*ZO M6|,&ޠA|}}Yb>,/^dvo+~PP111|G3???9 IDATСպJJIl?99$J%jڸY;+o_W.]y􋱛Ž{wپO>?Z ) fφ{/Oy0qDBCC9{,*pڷoϜ9s?~<,\rwޡ *9^7.i%֪CVڢgsyt.5KDD#F`ܸq0f#aIKK#>>s}P(pssCR1~x֮]KLL :>hʷ`„ jޞyZRn]z͠Aeʕتii)g6>~bʔ)f7lhBBMAACBo,Ol,l 60[ fOhР?8111\t 'hܹ3zUVo:vH>}֭ :1W^?Ntt٧ !|罊! W/q4)z+C?$<{,02Ws/!rB\ O 7mČ3bW;p}ǎc޽8mS!o3̞ !n,%y%:]x/ LBT>dV@ Z-Ŕ}z4ү>4šV&U?&kZ !jSNhҤ ,Xxӏ]-ByYtux5Vrl B}hu9EFu7v=aKQslْ5kTi޼9X^^΋%qUq's0 Ɲ ]2^MaêOWmҍ"n 'iwrwV+AB!FXjBء:8*O,W#K#LLәKwx5V{k/!RYkxuFSL=___eB!:w^,oBt_p<'3;ҪrV3:FZt:(,P\Rxy4YYY6;"ܹ:ju(kPϣB!BCu/qf<'4E*M/Ӯwb4'RI+{6#0~ZǓ15R-,%-9%|4CiiS'O)p}'L(eL>$GϖsdTY1y,"xTtz&&JR/ip(42!B!W\ʝV:LWWrZʥte :c(WSXZ\NV륤I7"ws9;A ѡvG46lhɫ:$ퟏY[v㧷jSK܋g*yz(XzmTWe^Mqrovp?%;G'oJG<hYw0f^6Rb[ZW1`؜ͱbB!BQeխx`EdiR$00ooo"""())AμsYV Ӣ+- 7hy#kl̃zt::|-<h~Q&)t.bUޝoc@t-nAbB!B!fij& $''Eqq1ZB{[j5aaaƞlWe{@Ǧ^l.-l^@.kyMqOs5߽M#:\7V ='SKQ5PrT8Q &B!B)z+C߳qpt]ԡ#\z!B!Mӿg\z\ #KBTRps3]ZPZbJKK>a=u@}h=M4B!¼ssjDItxerHJ*% IRBB_a[8|ZΗ~k kC[c(:y*/鴺H2!DU;vvQ\\lvlj_\5rkkhM姽: Gtt4Ҫ0"!iѢf̸ĪU{=_}FRR7,M.JR}ژW7} }Gɧ"7<鴺H+!DyWTTڵ3I[naǎTמU }FFsO>aǎm͍֮~opP_ll,/2gϚo>{9bbb{5jN2sa DTTs?8[n5)χ~hrexqCeڎ$$d!DD-{pk%čKW '7wѧYA pSG(h P-U[\GtV(˃]|Vg{u׮ēxU'cc8p ۶mݘ JJJp1t:6mzE=VQTdggoڵ7|7|Ν;SRRҥKyg믩WK<̝;R_Eaaa<<<8q"SNoߞ'NgSVzDeZRR4q5Nauf+^s'4 > !kVkqH+Bn1Cn˟iEeB'$xٹs'z"**p _.]ʃ>HTT]veɒ%fxG!!!ǰٓ4 =>}:%%%Ƹ 2N:ѷo_/_nf)Uի1112zhMꑘH>}ԩO>$'N`ۗ(x N4רظe˖J!77+->>hVX@~~>Ǐ'..X_4x"C5^#GZ|{/o۶m<ܹ3{nk\1o5 iiitܙ'$$0x`Z-+W㏛MJJC?ⱎs{۲9s˿=Ǫ???{1cڇ~ȠAڵ+xyy1h nΝkW999øli&M0l0HOOgرb~mzNeKV 9.d4 %pٸ^M1u>@Wa/[PymC\[29EVF\f@R~\Zm'$v-/lٲ ĉ4i .4ɓ̙3={6:t //dq÷~K~~>Çgټ;wd(J;v,>>>lܸ ܹs1bcǎ%88͛7ϫZ̊1˜5k###c2i$fΜi<&11////&O+B֭7o1mҤI̟?^5*}7o41HHH@ղvZ | Gwח{cO|[ǗkZjRѣiO&77ӼZ&88gy 62d>>>xzzξ}:t(j y~G9x C ˋ  P1AWz bРAݻ䘑#GJ{?RѣGm^+Fs غu+#Gooo ƍ튙Mox{غ#r+СO<*>&M"88l^kmLJΝ;G>iWs,{ўҹsgbccݻ7L:XOTȥKb1c tSO=eq4&ݶm[233y衇NsmZ7._ȹseC= F*,5-\{_z q#D.ѿӂƟ[?.w}e d87Q0_wqH+dS~&冏(xO♏'_<==h4ք0uT/_Χ~Jdd$Æ vڵu!##dxxq0e1fekΜ9FAQTTd2F TL3\k7g}00UHQRRb4w_;[mo[JZSklc=… i߾|c=Ɛ!C5jCcױ]I[iWs,{ўi&DVA;O>zol'N`ԟ w^:O:`n{DTeēxO8(..fѢE3DSRRhܸq;00b^È/^H .kx78q"T*ϐ!CNk5B*H+V0ȳ}:JP_K/튝,Zw}h>̚5kxG+27oNzؼy3[nFT7ic9gW/ߎ5KgM*KEiU_U~Oj+"##޽;`,^EViӦ O=:/4̞`XTUVуZm"[OII[n1;Ws`XTg9111L>/I&N֭?yyyqST*wqٟ}zj,Yb >|8wu&mG!Eѻwo]ppt];gMO211ٗ~%аYGzn1}uQLYJwVnn0:56_^&׷;v{n_jaӦM̘1ҢBT:nݺ1tP]ɓ;Us۹6fZ˓6MQp}q-x. Ri|Gy Ng|7j'N#ڇCdյrp2<9>:t ao{7,`QsM{~۾ 5 (6h'+,;3c11tyxzsdwdg0%ֻٗA!ԩSt:4iBrr2 , >>zWK+HQQQy뭷wjv7(O:Po2fA?cl3ZF}?TB`ך9&|~,4a;|}JV}4,$xYKpݛ 7w|¦B,999; T*1zWK*ܹ3 ~F7i;!ƤJ%HR&j.CEaxbN;౗f-z|?nX#㹹{}臸+=pBQykS۩e˖Yq6mt )i;B"VTw9_371=4=VcLoЬ IDATJ!BO_!pyiuq)= +Gi OEZMc38s5GvtŸ*W!BR !˓_Hϡ-( iez֎ocB! JYJ!\F%Jϳ4mo\ ]i25!-nؼK!u1ڵkFs快?Ntt4N,X89pN\{?/Au;FTBg㢪aes#}Wp 4l4̖neebf[ZYㆀlo D1nrt JjS@S'څEMIQ>7$m5?A;%&&/Ҹqc6oެ^TTD߾})..&..f͚qСZlqDGGfZj{QwaժU۷|8p #G4yg7a~gݶM6d>s(--cɒ%7KTwع_BBBt߫jJKKm_|Em4K%w 5[  #VQxg-{EQZ/{ Kߗ9&?`ӇchԼjwrcr۸iؒdART$&&Ҳ6W^z 6xt4 M6+BΝYf $%%tR;n4ć~Hjj*ڌxOj5;vNւb <~ujxݏcUUy2Di ~DLNA->߬3C'ĥLY~QscJ+-2jVތ Xwz X.~5Kft<>ːɟҨUw P 6P˜:u*YYY)3 6=z0rH.\?##'ҳgOyN:edmu?9U AHHÇܹsr;wdСRfԩһwo> УGuϙw+ݛݻ3vX!!!zdϧM6DFF2`BBB;v,>(|WF(00OOOm͉'?~nhYmڴA.[M;ScСCueW\IΝ~:zM545w;V߲e =crr2AAAݷ-**bܹFTT%%%k7&&ÇӳgO^x.\xgѣ?Sm(C%wpO>$6lt&L{-mڴIo~{}=(""0Z56a BA+A7˖-lݺB,XW&66իWo>5koDGGcׯ111(JRSSv.sȐٳg9tK.EÇYn.dƌ޽͛7sIV\ @JJ }QQQ9r-[ԾaaaZ =CSݎ;/{L6M61bvirtB||<OÃP\B^^ ZuhwsLE.]HNN&-- 84h@\\N:ammmvvL߿~g5sE^^۶mcΝg)&&/Xy|MݫشiJe\[;_GS%%w{ cǎ?rYVXaq̽cҤI[zg̘+{%::_UNS4={_^0AnCA="h% ! wwwF <{prrB&1d] ++&N\.ݝ_|1===i֬Gaǎo޼ɾ}:u*ԯ_zL0lmm">>^MFevd2|2888٘۷*222h4%KE@@7n0YGPP.<8%Ji׮;9sdX899Ѽys),,ҥKzA X~'@}v bQþ}xqppޞ#G{nr:d2z)RSS+mᅪ:kK\ud>Y^r7nrFŮ],j%%?saҥYToVV'N`„ ȑ#ugU;YUq-{ Gi%eڵ\zJFmmmQTT*?2p@vYt)Aå1iMdggڀ٢Eشi˗/I&L4N:ݷ*H$$''ݻӧcggu "++$6l;w&!!kkkhݺ:{,`pqqm۶уe˖QTTĩSxwc^ce~ &[oJ"44Ԣ}TPFAP}͔usQSY/εmxceU15i |߿kT//j,}߲aX-AA0smzI227rN 5L6L&#!! &h@ZZ70=T.,, @``Ť?&''[}`Miiiz 5k;cѾw2!JnXf cƌ!00f͚̙3IMMe&R^=4hÇ9u-A3gbeeEǎ0w, O xxxņ pqq!00PWؘXe˖w^Vg} [OOO6oެxUUݧ:%;I777`{_|)Seĉ[ȠA6PU~~ͩ`2 Bŋ owuQ_'l^S x=gIaJx d2tXÃN:MII FL&#::>nnn2%]f48A.]ڴzjx @~L||< T\.}kHz8͘1SNn:/_YYY(J3fq o~8;;мysٻwn ^U;wEv(,,dǎvvZuLyM%:sz)5tn O>ѭ+V>=AU6Wu꼗Tw,WZEqqׯEmߟ/}eTӓ;_PZZJNNk\?-~M`L&! n0*CN,\FSvȝUڲ*2/L[Na ɓ={6;۷Jư7|Ä ߿6o\`JTT 4#44~\ϟJ"""aÆѮ];ƏRdŊ;,\Т} #22ѣGƖ-[ty{{vZlmmy饗 ᭷ޢ}XB7m̔)@VVVtЁj372ckkK&MmЪPo-scw7V߿RRRh׮5gj_cv޼yrݝƎw8{,!!!zw«IisU{IuFF^q}G;)S)'*E)O<8NҽsA,7IOrPi4ĉu9¿Kbb"/"G([ҥK.*/ cb͍U |w}ɩ/kߪq^W~llA}$ue׋wE_.|2SAYLL vS:ҥKh4III믿w޵,AA:ؚVB[xb/chp <ٻ%6vn*y9Mcx9̉c W=iP tLM5VGXT V@龌ܙU{13|խjUCKudM&% O[~TT\e;\Re=USAYDDK,a|oAϞ=9r$-[dɵ,AADUf.Ӫwo.(Rz!}ciט.,_X"F[ӵ秺803ݦt~ }_g13ԕҎ!AtvI_e oݥYG1;kc*۳gOm7A-[fԶm[~n  <DUf.  5+4gへ;HQȅΧpz>9|&Ҽjz6|ڕ9}+#ꓝ8IX|iq )W6+JЖv;Wtt !N/u>UAMZU#<s)TW?UٟOs^炟5ȯq    "hUY|a]{O|{{.ْk_AEt6]i`'{8pkJ`h ; JԜSe#*X׿hshXsNSHbbwwd"nV1v   B]!VuL+JP4H$ȤKBT]PFF^)j$Vʊ)+Ȯv{{hgh`JV Ն-߫CgJ)Жv\TrV6%8˭h@ s]PUlwG@Taт*1AAAB0sVj2%2>^kȐֈ Gy3UU;טTco)Rb njL*Q_]kWH747 hP[+-|jSvLn={,Q)11Ν;Rjm+?NMr޼ylذV-Vz{}Uݵqm B0sV 2R%Jgp1SWsZ._k$&瑘GQI)ʒeUt-Sj @TeHPֺm-8|zV׵Jf\X͚Ul>S&TURɞBdgwsUh˝c*[f8t}K&KX6K?d_ 6… =zaÆ|!!!ЫW/&MDRR2aaa\vMH LHHl*>|MٓqqŻn\cǎeժUރ PSDЪdM2R%)7)U)U(UjY  5eگe9( TѮ?6ʎ).,x ݚ;,T%]Ϫ\ȭՁDYUS8Iڏlme㓝,UX1I7Mu}7nH1Y.&&Ccի{g/3ӦM{^R966//8x 111DEEɳ> |>&& V`-[d۶mAALA:TRv6֤唐S XAa"E J+/~U*$/P0o+M{ %rJ?0nM(Ϣrh4t{U=q>U Х*rsbSl_!Ǔ7=*(Sjpশ[Ѿu 14`ψ#DJJ ?Æ #440NJVVp;cΝ :PN:ԩS w|L;|w 0=zп֯__~V"**#Ge:^}XOxzz2|/^̥KضmGYfoFtt4;v0XXYjp;5Sp1{~GΞ=ˊ+1Yr~uUozz:4nluVZnmLnn.?͛7ޯ_?bbbP*rڵ0`ڷ;wҡCe,yMz}Xz=E^^۶mcΝg镩5k%nҤ gΜ1Z=P}˖Һu2'өuo7a^Enm:9YZh ;GqoTm_r.'pS:)?O;DЪ3iu-v/zy$(Jխ5 [>*ZCIuf>ݦ_',*_dpRq?`ML,_ʔFyؓǜ8OB[ءѠt{Ʋ2 Qn&WHG7*=.+ԏo$"<L7USA0ٙ^z/y'ueBBBݝѣGWτ pppV?1++x&N\.ݝQFe"ɰ@ӦM:NNNd2 7̜ y~m,Y‚ 0X6++1x nq!`ԨQڵ⾚b56Uo^^fAhh(8q~EDDFdd$%%%,ZHyOOO5kƑ#GرcCrp-DGG}D5mUz6$''}=#Gdzj͚cw7Osٺ#GnǛofq6#ΠUMk uQIW5G $$.\4 IDAT3p 6*Ur.M6/BJz׀mP{V2v?4B!B%4W]Vrk%7_oxGe _kߘNT}dI?~j.V,Θ 1 b֬Y8q|uƲvZ^JBPZZ^=q46___MdѢElڴ˗ӤI&MDNU=mmmQTUZ`駟fմiӆ.]-gh Wukrs,=ƺ*uvv{{{ڳg666?L2[2nܸJe-=p@vYti)lJvv̵R>#.\X)UΒ״sVِt4^FѠP(_׬.,,h9K2K}..aC)gdI!!>LI~퓱8kMv*"3Sŗ_zѻoL'gXR I=udƎuFvbxgm[A+U0pvI \|hlx`ߵx|$ν}'20swӵkWd2dDDD2v2336m#F_,]~4<(--M---M!CxQiw~8 /`޽tڕwy.zk%mR̚5^T3ܸqhyc,;MIjiZ퍛.]^DB֭S?̄kFf5ڬg8hJ{<6sCAyI]"hUL+A 4h'NϏVZ3ydfϞMhh(}RGRah׮ǏAsm6BCCywR*XBw_ MOI {ǜ9s^smJHH`ݺu,^\Nǎy饗xw)..6XyϧO>L0,g~~~DFF2zhزe} f <&M0qDj1M_sz~}Yvڥ;!ٳg 1(W_e֭T} ͛ӠAʦѬY3 w޺f͚+7nԭcT\HH1rHӇK.UZ\M-{޼yr/ǎ[wսf7naРAcWkS=%.Oѵ鲶j5XYI?K(go/ȌTAS}Q *&)+m0x~/uWNxd=$/7' u$22RSAz8}_&{zX3.PTDFJAVQѨUj%U W'ڵAy{oAX M͛G&Mxj)tUoM8c2bĈnP˖- VW* O嫯ˎl5~~W((hT*ѭKM}dfj3<툊rC"2 O+hNVi_Ak.-8AUH]]QUE`X{7P iXA o`Xb/8voݬlS&IF*nSD"A辖SպYOۉo#횧Buņs+5Eej J(+*#H8›(Q(EYZ@UVSAn͜9`; 3fvoRA)؀KK{'jww+}֑͓-nƍ޼V6Z]FBahJf B]dS6Ar `6`,FBpe 64* FB+w K~J;"hU$S54tTInb%r5r\k)VRVC"BR s$-  ƒ]xmϯYsL. SF|Ų"Jhx>,%kXJ!<DЪ3i.WK/Jjj 2JJLPQRk(QC#    UAAVN2޵ Ax艠UfjMr>.4qN6h,Ɗ4PVxkTj5{\g=uB[1qg4w7Zj|aAAA0ں[ <Ȭ̗/:wRWZ&-i倿;k\lsT[TF 7×Xӕ %/}Wy~0'1}C6~ʡ<\HS06:OT:%$Ó1h2#.d~K^ײ [Kl>c4*0WΗ{n*/\KJJX5$Ui ٳPVVvߏHΝ)++&}ׄkv|U*U LK"0@RW  VuL+u\fMq k+ ͚h* *{c:@>Jh+J:Εp;|EwTf>)fO~5W2tL%_Mb4ܥ<>/JaI9ox৩0dIi9=W'<90Ǐ豞ZMJ JDaF=J5_Wn=Ü8_mC5kơCn :ݍl8t:u: _ѣѣzc߾}ݸq#۶i&:wL\\n[ii)ݻwȑ#5vjKNNK,a0tPce%a!B0ckZUL;7OL}?Zgy䥜FZQ]]68/,YLY5ș2.& Csr;/zH2s@&3}q& k%%`k?]9[nZTN&aۻtSܥ̶EKϙBoqH^{-g\=vk&ҶkSx[/gI[R(TڞFiӦ5Z/J"11-[W^)S/rJR)gΜr(@PP~!O`` VرcHOOW^sάYoooXt)ǎ?Aw3/>* ?ÌeZ)TץJYŹwycd=#rp=9Ny0(Uiզ3J3?6-_+"2_{{?; JJFO9*L\q*պbe|?rJYs0u+g;h%mC Mыeذaу#Gr]УG)((`رݛ6o ?a %,,Se]EEE̝;pˆ|۹sNJhhh)nW^ѵ)""f_M:Pz|Brdmu?'''ϐ!CdXYYѲeK@<==IHH@Vs Ə@V6mU>wL8={3p)6X+rJ:wիn ]'͟?6m˴;v,>(|WI^JCjE)7s~2 RRvҼ Jr(JF,fZ)`"h п=wgg*eƛ2j|]pw|yYs%+_UrE+z<sh75W*sP`5Ƕ*mKƲzjG`` , %%>(9–-[ёUVáCt缽Yld֭3%**+sa֭[Ȱ06ٳ3f{n6oɓ'Yrׯ111(JRSSv. ~1{l8@ff>w҅xN>\r<@ҥ:;YfoFtt4;vt҅dAqqqt kkkI;/۶~MƦM1b;w4;^ T*07 ;֓{Mi;j x;niUGLw>ەdEjNvwrR#,. ^h4\Ƨm6M|lx:yn֤V{z`^E^{5W tC/_e˖8::zݝѣG3eo>~ȑ#5kSNՕ0ayKdee͛rFҥKcƍ "++$6l;w&!!kkkhݺ6;w^Mpp0qqqжm[ze(**ԩS{뗋 DBrr{2}t~:F(p/v Yi2 {"hU˴fñs֩R*PUJ4*NJjeEןla |*ޞRKl:Z/(]9ݴA)7ĕz6Tc|!M1e3:}2 IXVr::#Ch] G"*3c+f0T}C^O뷩 U̠%J%t}ME '<<2֬Y;CLL^QLM C& ИXx͛7Ucmо礥Ѹqc=U…  00Dey7n2գA>|SNh"@9s&VVVtES b6%cqqq!88ذa...zdƮWWWuƚ5k3f 0k,fΜIjj* rAj˖fNΈC"hU˴ؿ=9޼gGo"@muoF}R3cc6of W)}ژ4ȟYyL2U9X[^\rjЖsIJW"Z7zhfgvߊ:4el_oIG7M80Ǐ E&I)Ԡ>F"LJr]E;699Y(ϨrttD&[gwwwBCCOxwpvv&++/T{xxХK;w.EEE^'xZd2\jj*111DDDMAA?#-Z0YgPP~-YԼysٻw//RAN^qqtKƦ]vcK@}vZz+g:)7c ^y֭[˱"++ R3cƌV?AXH0F.AxUf,^A. ֐j%edYUc}tK;ΝۿxճF}MNOWn-PJ%+V )) JEFXp!~~~DFF2zh@ҰaØwm7C#/~.v$#Ju7H"ht_˩jP*<5o'O.VuX  a/Za"JAA slU !e/n-, Xe嗲O]" UAAAA:XΥjoL)RKEΘ{ %JJ9_CLfnMצ5ՍZրZAj-"   AiU[іT]DA|p^{[)bo+L:xX.) G]Kt~KʜOUtLs IDAT}aKotCW|J₭9H'MQ ObJǿsdx7dOͳI}Maq[e)T[Fl>c4*    ml8RTa;\ *ΦO N2ٟOi@D,%   &VuL+]IsWN @+e*R9{whK#, ZYOyjV*&sV=o}7ĕpBS\rwěmv=fnsuYxX@ZAAAZa22) iC߈7d!H$ʊ)Qq,KF-v;Zx[9o p1YnÑ^H7ݶ,eem^@A/K. ^h4\Ƨm6M|lx:XLAAAA:T ܅ma@ ǥ=iߺY+?ѾLo;)5X[?f'k JURVmok9Z՗Kwoe"h%  +8Uύ%VqtbJ@ yp}"xOU~-:T.vZaVwruЇ EDB40@Idd7ٖ7{sn2g=ssYС̶M=JJ{<Gv|;jk.@\b1]H$t򫑭@ ¦ :=8?NN=I{{h#jE 7iUqie'NmvZFh9J4/aڲ, ̄(y -OIL_,Fb@'?E'U`\Seoff ȫ1b cZ~X0|ڹ\t LǚDҧs@ u_y~P0ZZBsE6u4 6ddtK`ٓl̾-72Xy_e]䒡Zo3I |4J>[ n}ղYFj/-1%^ʭ9vs%zDb0iUJ =,rGFZ>~u /gG} GʢJ>λѨ(Õޞc⏒@ @ oI"ۮG1273 4<{ahXs2HhL̮l4ĠF|~)2,,yH#dJMXGxHcQi½u"gsPʂQV`6q{H#t EA$ K^}jk J$''ӣG  ʹ>];%)6y hF-E|m!r gHFv kPC"t>$pP\ &z5$[Y|mEFbzks2)0+ <˺/Ueάhc~.i%d?}rOD4̸MkTupZci%/qqq֧OzaW掶m۲{nt:]!πxɩt~qqqE11ZeFi֚xgK 0,*)7,@iT{C dOe).:#ʜ`uSDqwK>?1'#[ݻwɌ7;v奖])mۆNbp)>S/_Ntttvшw"WkMԖbccy7x"QQQ8pVZqz/b[n5Sp}n(婓I-3>*Gu 4!%d؄Wi,=$4OS.'KRk7֑n(\A+ e}/lEC /ΰtC)uJZA $h`w^6 ۩3r@PuDU=ƙj>kMbK,v??ƌ/M'λJ Ξ={HLLO><:u >;O> :+VT/FÍ7ȿotj]\\4hqqq3'999L>xkhWRRRq裏0p@Xz5_~%ӿONvvv%[o*tQ۶mc̘1ۗ|SNsNƎK>}9}t㭸rllyظq#F">>ޣnlILWYqq1g&!!3k,JJ*GX5 ɔ)S۷/cǎرcdWUW]gUNN=>pUlYٴiÇ'>>Yf9FZ"<<`X8r?Z#릛nO,Bj:ffQi2;ߎ3'x)t;{xҟ;*:5k|7lܸ ~mkr;K߳d[;U]{wW܃Ϡkuڿ?V⫯"%%ŋW\TVгgO;~#,,xΞ=K~~>8zY+ OʦJYny&#݂ן}s6 qWxc^KCm"ljrt lɠTب 5oc&iPAhsQ:_r؜batDM` *+B:1eH T@81N $zIxktC 7[%5ǓO>IPP:ANF̙3@6mHPʠA߿-Yᱹl߾ӧCdd$8p)SGhh(&L`Æ U-qqq4mT}ĉv_*L~UlYUO6`t:#Gŋʎ?r5~Oɓ h5[W?w:cL6yزeC5f9x]qTU]{w.=]]<]u>[&MϏ0&LM*j+}ƪQUVVs:tB~?\/. XԦ:fW>)guҨFQ. $Ȧԃe2i6xXX$KcݍC7vtö.}W<\ZgM=UV^\3C XjNKKi5d\.!#Qy#1MJl8$W ?BCC}fs'+\wy֭[Oн{jCp?y}G923pJuB7Vˢg%))?sa6eR,WŖUmV;V,s7!2 iu,vY1X,4njr:ճk?wŹנkU;[Xg˓kj+}jmh%66lN>ILLG>+jPq!!!eYfٳcǎ+_DЭ[Z(';zV+27X0,Mh@6a鰘n?7n?a9V^X:[^ۃY5>/]PU^(},uyݟK%-׾}u IKKFZ-~~~պ8{l~g&O\-}BBBHHH7P#XΟ?ϥK gϞ,YrrrX|9Æ H5PjjZf Dӑ*Uem͚5#00իWcXt˖-s٬Qt+ᮿ׊,44x-ZNsN,wѽ{wzDU]{wrνkյ᪮ K.E׫2dH6ߕBll,~)111jkva֭H@ UEDZciz ?-EF6 "*ėY߻M ѡ^ˏ70uY6O jy@.|}"ŊF ``ny!j$_ xdbŜ>}L-?8Ih44i҄޽{_T8p͛;Y5ko{/ƍ3g"##3gcРAhZ\)34iѣ8q"JLLdԩ̜9RZh#8r6R[t̞=7x>֭[3rH=Zmtt;YuCzz:m۶u8Mԝ=\W:{Yp!F`0Nbb\/23gn#::QFP.ڻʕ:AW׆릪^z1f0`SLqخ:UUe͚5v5FC׮]ٵkpZ #=ZwUf`cWY'lު8u8iut.][6Tߧfsb!f=M flnhM1LhZƜQ sOGdE\xi} 3+9N37ҺL[M[1|l&m\*̛7޽{pU\aĹa+@ ΂_]=SIEժ "IJ6b`0`2FZ(Z~zULx̜ңj0,4i:Y"233Φzm?^m79t( ;=D:/?/nįSĹa+@ WӪ*,Sb_K`$J- b#Uy=.-\D8Yg{w*&Lig@ @ Ki߸W@ @pVOrZ喰%|5!P?,e $ t^ӰaC{B|cz $#y~V,zo@ @pVO"J fR p6 Bۋ bi[Wk+iCPX"9fuQc@p-L=0bV] _J青B\\\W@ jRyUǎS,vZ}odY"+9جu{bp0zL\IQLFZ&ّ OpG(K"$PC/ `}Aݒ̸qطo:)Ge…jiҤ = m۶޽j\vR;ٽ7t:v@jj*3f&Nx5TupZcEZ5iVn ǀD^M FyWywj\mꄿh*Tg6 2e M6O?4ݺuc…sɰaî@ X$@ ~NZnÇ'>>Yfӂ7ndԨQc6a3p@^{5 &OL߾};v,+WT9_H||jr\vWog}wA>}:t(+Vpj#[RSS)((FӡhСݺu`o빺vs~{Y}U[hv5UVq}ٵOKK#664vlpdԨQ;w?I&f]֥@ jᴪxz@ ؿ?V⫯"%%ŋٳO>;vŌ3زe W槟~wUϘ1 uV,Y͛+YQfDD .d׮]]"Νkw̶mxIJJn駟f֭,]۷ӦM3k,oظq#.u'cIJJbl߾VZտK߳d[筦q̙39}4+V`,X xE]/,]T݌=ڣ>jr\ɵJZZo&fb޽Y^z2JLL !!!̜9;w>8kbGp9^sU_˲e*١cp!C8s挝o{4i.[kڵkGv4Wɓ']Nz4i~~~1a6mdW?yd!;;0e e„ lذl9ɓ%44xR2Aɥbĉ펙6mt:Fŋ+?~}vMF@@<lqe: IDATťd,O>$AAAt:nU^zz#GPPP@BB@&vڅ^gȐ!jF7_gȐ!DDD'`ei@ !Vg=?1aXI ´{xɛeM$==-[!!!Nۆ9`vNPӱ8K3Nbu:*GTR8Ou$$$`?ga۶mU5""￟I&UXG;cGOqf?Ow款:;=5 Æ / ))#Fu񙰒?`75ʟ^СC|#Znȑ#9zf֬Y[{ 7n̜9s՟I&=Z]}'Cne<9711ފdbŜ>}L-?Z#H-;wn9S;2f3rS,n) 4zhYUl\~Զ v\ii^Ր9ڕzyҶC9]0<빘k[SL=9J}vZqUdƍǾ}*8&} ,X jwkW{O +EN+',8iF#w8XI_]=SIEժ"Ir6b`0`2FZ(9!~zUDZg\EZkFl(1B~Efy$MNQcW'(4fM?I#2/*~3}a /x znhMa]%]Ks+˟,˴jՊ4-[Z@ \D0@P@PӪ*E"ZEdJj-]0Ij5輵SP/zQr#@N^42 7GWِϔVK@P70c rrrtߟS^m@ *rpZc\EZŷ0v dZEBaĮ ^z5 ?эҠHe_2-ӭ:m+_2>K-$@À~.e4Ҫ\ 5$tcv˜6qc7o>7>yȋ+sٗR<3~:,kNku)vҍΎYQh#RsL$̾ WYfBL|0>ט&Zn"GQf@ 2\ Gd$T iUqi|uGæ#Э<;|a8~0Cu 8зVV & ab,}$F kw>Ĉg\fݳ9hW'ͳh5 ez*.сtvM&Lv4to;J̤Iٳ'ׯgϞ=,]???cv"=fȲL6mHX`R+ڵ@ JKa. ={{릯y AJ8u${}(4_:[5"M7?݅LM?3nv]{L^3xg{~/a"[Qet磝gev&0sU.+v}NcCk涗/j{SJH1Vչu޿swa7|Ýwi^cs=(4nܘSr뭷V_Tu1|p5k:ZqFFE||<ǎSYmƘ1c۷/> NbΝ;>}psi/D߿?ӧO';;ۣ>mYf V?55X.^Xi;v` 4afON||<^SZ#l,Sؿ_ Jxe?<a|k@ǎ=zcntCnJZ+0qr԰!<끫zo޾ ;!!{7L7*9n$ؾvT ?#G矕ǎ)_kٳѣ(@GHo%bz`=>L'w #3;}i:沜JZmc}LBvgL&=/ѷ1&_f\.It¨"""Xp!M6%''3f0w\|M:t(-"99e m׭[G^Ծ,]qƱm6t:f۟3f -[y'xw:uj[q@{oCk2=0+|zC_*a$~o_k٤IJPfOԻ瞃ǩj@PϸJwG;@y:ѥ ||tJtork|^@hg߯6?͏^BL, J22g9 D}2x(O_`uqklbIǂ4_ζiNAC ZTe%&Ll18֮6sfˊ[m_;CrZk%:iUqi!,$"jQKĢuX>:wheԈ*<<ȋ/鶝~\N۶mٻw/'OdȐ!H6rsg"jĤIϏ &`;ɓ.GL6`Ł;rH6le&MSCCC8q"}RZw}0h k:tbaÆ L>;/;;zJvuZUuIKSқ|atx5sUa=#G}e(YYWV>?a8ʟk(!̙ /(O/jDOzreF4" e32ƶdO_mNsֱt0A3xMmאP^p6tF2+x\KBb>y`觎)bE*xЩ>lj-liLcyѡSQ[ Fxp&94BAL8i%wy'~-~m 6 //R!w\Nrݸqcu?**b[BCC}kefsY2ؤ$ƏOBBv7lBII {l6oWWlNUtg"|ѣOFЭQXL&epAY%(6Vذ!sT'z1/dG9gi=9\6XuX5 ig99!##?$`wJڡ u Mh/o=!o68F0BuXK(2UG8kl~a0yl` dV@%[ؒN:_De}欽VXIx%TD81"/ddG)q֮VU#22Mʓ\r?Oi^v U5+k#}LjH+@ Nǒ%K;wgy˗@Y /'<| mu8"k>gy JZZ;wvj2gf3 "11Ν;׊lPFݕH(6x0rRߢLުL[}򉒣m[ ~ǘ#RRRZ@ Uwƚ;*Fb9bDڦ79I~whA Γ죬$$oV0!!H"i|.p@ <}_uOCJ \%1֩~hVcŭj><ùVnmGo$_BRo!IUpp HG]ydf`cWY'Q\s%RdYZ!:uAպ6_rrpBE0C 9NAd N\_r3w% IDAT,`#hHC ;oy֮Eń}M]lO[O H00\ : *GuL}$VN2D$dYV_X, &/o$Ew~zUX J?I)k館⾐' yi%Vضm$$$o,NzVPAdwwMq`DACY%GTL$K])NQGO#ִ`.s$xsg!+g8[Z՚tOT0;UP?:B8j@ͪ2e"nj ]v𩘯͓$Zqʠ` Ӫ\ , wU /`[RNqVA#ьV˧1ͩS2 6Qԗtn=yx)FY=zſ<] iH1ŌgzT /_iJS5+* 3?s`I$9NBل&N#!I2$Vj V5rSxV<@ OUV%t4]n@2r?>35Ke?VhiHCq2 >/e3F=<#a DG[@< '9ɴ+o;!Ufe&3G?RI&nԦ=+Mw, 1WDPc f5 ̶aYJF+ANP 6={Dl,)k}blXƋy,ONJTKjA^m' yN @ >0=0\ QCiѕ9i^nv2?3f}l; b8#>Ѓ|G9tXY`sxL2 L9 A3fЄTJ QJ)xӚ|GD;InfiV(=ն%.ўHaўe+J0@zJe NPTչfTL'OuR} @ ʍy͓_Әjie]8"pͮbԔ^cv@aޠb-'|RV{ ߸s_<ү"I$$<*a%.M5dK ײn@ APo&0_{rVz\DL[|8rPuZO9ۇ)aSxscZ-?":=":~ٹ/=,'YX @ *HA^NSsZ #CPMq26m.b1ݺ =;?Mj˛SK뭖ml>>~A"}T^4[w|!n(B#tOI_`()FCD6odzz/FȌiۃgÏ1|kH @ _ɷ##cY6ȫQ*HRV,0Le+vj,c2Se+Uz^vS M2ƶmkBo7[*G]Iol9JzwU5o]he~`3Ґ9ڵmV;S?xaUYm&i)-.8{-iLr!:zWv&y?nC[*N @ Kkה)RH%U7X#\Ӂw7V :y+o_1Je^Z/ _WYjr~%$JP=  ;T*Ax@t."?{Ui$KH ЛTQFlHSl\AA,(_" A@ꥃ ] 5fXvɒ a>ΜygNٜyEFY|*o/0PᒴͻH8g @#7pu1dРEJ͜mK8mIʒ/^mrޠE6I߬# [yWm7,?|:}ŜӇ|<@ khN-Zڨ`ۉ͏̧" .3 P?e_ϥ)z|=cqZFDAU5fCYTA. } Wשߜ!c>g,5 !wv wnhHLdN-TmA#x_eo4MYۨ5oLu@ ՎKWw+~ý;i:aSl,_Ș1)y0+fL b&O1ca.q\(b:J+kn+gX]uE| II%IbL/L!IfЈ Y;FHÇW;@ҩW=\{˫=o@ (t)}wUv@pb4撛`^${TSs2>k1IMӡ$Ze$ ~%wVI]25\h5Wt)]Aj"k5<'zwoK< KA$\.p8Ay*fqߐ`\(B@| SV&nW1]ɨTMq)ŎAQޕig)Ȓ7_~3~~ȯZ;ceN@ @ TPHZ?LHpP'T͑VڴԳn[yq\"zDT UѴǬlnW8zʪu8p丕uhᄂ%6MLV7(йvT֙X׫ͣu;aIC?eӡDd= g +HEhm56ymS$+r /K0&ןןV@ JСCthufϞ-B^ػwoUS], ;HwJf:3/`&a>c#;/K PyِȡxQ#Q4Oq.?=|0R\U \]epqV"~wYZСC<#l߾V[(}Ν,ZtRo 6m_~%7x#V~1m4zq"w?>cǎ!2:ubرDFF͌38rj~i`pTTp 4h-x]&MXh7l6smΝ;Q]w}ǟj%$$^zOXSOY믿~M6d|WL4;ӛ^稠d*roP*EQ1<=Dݻ{Qmܿ Z=<ͽ}P;SߪEHWt(z( 'N+axP~͢oOw^f6Ǎvdxﱭ1+J( KTiU{+ W:oxp VʼnYѭ[7HJJڵ(vM믿p\t۴]ըjq-c^^/"zbӦM^Ǝ[j|^z%ƍٸq#ojnlݺe˖ĸq.ntr! 6PNm3KIIaٓ ХK lQu.^aÆѻwoرcIOOc1={sq6o}G=xpp{r-ۗI&aXJK駟4h=zog޼y> NGq@Ro&qO^^1R1 :ZĉEn_sΑ˽]u AAA :cǎ/sIvxXjUSAJ:7;~~_|G}ģ>ߏۻnݺ3o RcvӦM<8p`?b8p{L&z)sJ\߮[˘U7B+3Ä$ 9W~`=Y@aX Y/ȥu II \ DV5xZ]aa8pJ ڵ׫*..ڵkӻwoN>MNNvZb=;v`…,Y#GW_o۶si&T*&L`͚5,Z7x0a[իWj:˜1c[l!66}:&M_~N,+폒K7ߙ={wnՇƍӲeK.\f#77ŋS2 4 $$'yfJ>;;ŋӲe2ePsRbbbX~=$Ξ=s,r n)}e̙{<׮]+ᩣRbccׯQQQtؑŋchه5HeWUjU.e^ HjTl:)Ig"Iۚ0 $I⇟2$BYۜKVw><8bYcNb')䙝+<9z)d;yd9LyNoqG-D.83FVDH+AU 4O\h3`0]6=V=z4t:ٵk=c=HOOg߾}=^h䡇*f:zE0<ܹӧ̋/HPPZT(.ƍyϏz5k֔h{A<CNd2_(m_ھ)JbgϞ׏4Ə_j?z=fh4'èQ yx΃ÇcXJW˔Ŏ ~n\Jhh(-ZgŊxFdffRb=QPXTnʠA4hVjj J%WmyĘ.3C箻Um$kocHd\-f\^@Fc$9"ү+Y,Ys3ذĎyy=[MHĬyd$I|5+1o$Ş79yZbvbf$Ilj=fam&/f o6yp*r EZ)o;Ӱkica]|Pv_ O#k'?'_u!%XJ9\6+T+Ak0~Xp*JUS|6d ^ A(±$;~Τۉ}Z@IfڵEЭ[7Ӊg 6 .]{nT*zmۖNݺuիGFFO~xxgjQqe<,_\چ ˙3gp:(j^o4^z43e,X_|Att4?<;w.̥?JngogԨQXVMƸq>}z}mذ!oGo?{<( q<˨T2Qx\ wy'+Vرc|'>тWdyOm8|džKYt)!!!t [o>kr]wh]oTJl~w}0yUY Q3cj=nwq{Z?LhglNObF ޟӣy ,sD5CFfM+==Q~ө"Pv"xn<響OKKcܸq<^͛7'PQBCݫ-ZM6i&6oK)[nouѽ{w^uM|uQAiMQ>\ʩS8s #GDСCٶm[mGXXX8gGYr΍}{n iӦ%zx.@BBk_cT|*/.KMLL dȐ!8No@ \Y׷Y'MQ{S߫w$Pk_,JJ%1ZTp&Z:& IDAT@bjl4m;Ny 8uF(-Vϱx+ͣ%"ZljS6kՄ$;4>\sNǟѨd;fWP}zugfgèU|q*bzw6vmo?$(H&?l N_]IͧVo1TXO+X@n'SEiDsO2 NZ=1N~ݝWie'yBIn8K6t>qUOݧNsBnݺ?ҠAK#lْ ֭[}z_3g$?? ծ]]_cXe}cԩS'[V+YYYD@Ւr51ݛ>3E$&&k.v;j 6lH@@-rqyoL?/mgsΕ``…8f3K,iӦURR@&%KЪU߹ QsC__g…^A7%%/;vJn/ ϝ;糟s̖Oeǎ3fp?^9Z*V3Q*T*OQqz"COgP?80޸KG[i鄮Pd;k=1d|ȡ>k^]w% Ξs;jU GYi\Wb-iiLcϟQ I"}18w'4Jc6 2x_IgŔbڿF"N3?o'ѿ;Wغ#+͛x^~3T)Ӄ qR.ʤVs?x^W4L6~r_ϻŪ) |d(jDQVNJs/].ɢDvN}#S'LMG =K^ G-.$:N\j1@&1'eq˻I}tf771wLGۭSV̤!K&|/^KueO:>>jfCA櫵9 x/S"DWbc f͚,˴k׮iu͛dBұcb*+x.e97J ߹sg[fΜɷ~f#88޽{Ӻuk}f̘#X,ԪUAO%wCyϧxb[H馛h߾=Qϸ˽Dd*ӪuUצ$IGHă6Lҥ4%\8w`b|yĽ޲]P>})Xǝ](GmFGUioD6c3I:ţz~;=6͛15BTAQHÇW;ՍS{_*6cB{iʯuir)>S.Mijzxܿ񣗊mSϛΈXMcon@j4 SsxFga *'Eig+ Oγ㨅7 LfB1gHr,RT;p*済x4^ gXwo q} ŇO?/p6n{è>]SY5 @ ڿv^b#O|Lq\lxkT]I<1o^Aeڵ|'"o)?Vdz@ (/ubS^`ʍ~wpJcR$zaٔI.:Pkejj$ FAVFQШ%T@ă~ Kp}pD$]O,j0sj&YpeLpOml8z# ?V5bZE28o,˪(+OҘ$Kߣ5,}. j_ڃ 2wvcžZYGNN~ڐSgQX SbiSvbIj.JKtVJ5z3v~qe9J˜M7@ZFpIE!**DfϞM,BY Wdz U>=uLX*̙($XAU\#H6+ѪSc<"XS =VT;/썹yo0=Z'(p | |/*p'ҘQ-b\fj8o-åY67Z*^o\h[Z"77 &Vo߾3*8LWtzY*bIr T*j|0A<ΚDV5bZqU^+BTtiZ'4!*RSr>1@EZnRs MlKw+1@f@{/UEiT3{tU91_ iݺ5{z۷oϲe*ޚNiJ8Ay)=)&f YjYs1+f<͘]yذ ziUVe :@ DLqV󸂊yX].[YLU7Rnn]+=+ɷ)>1V7Y K WSU1몱O$ 42}Tm.ClB@ (3ϣ-4nz:LOȷpJVʁ,F#T ]g@p DLYqUQe`nȠI18EdcvЋ^Q}|"w}kwBQehTRb7ǜ͹C#`Ww3_ ^VH<OXC(O^m[r$t@ zFRJԉ==ln¬+EQHcFVQ#VK'O #C}(,_/K$+rHMs:ޔJ))YB<Շ} 8O+K%~/+¨z6L,]@"] t~.:ŵbUT|'M*,@:jBXOXN xfȑUm @ D$NɉU^a#WKCUŴ$ggT;c ٴL*bn `ݦp{L['پ};Æ +7{ltoޫW/Gt' ?gϞݛ_~oΝ瞣w0{l6oqzA>}9r$7n#P2U5K.l"SO1sL*N@ ^)}z ousW @+FS^Fl}(RK^BH5ZDH\'~2iNDX\'u yfh4Nڴҡ׻A QZ""4\p.NV:svZСVɜ9g#\{ \jvp*Mi@j JB$NtZs [INup QѦ,'!djQ.:+NZGmh.SoEs=zνD7&Z2͚i3^<=*smL4|p%%'^{M/)K'Adԗ?OrF:uo0wtj*e]b'OLPP/;rq=^/$*y8t<;wDua^^~;>(<6iӦq~'EaĈtԉW_}¸q;;gРA<裌9ZÇX,tԩƦ4r *ӦMcʔ)Ԯ]QcPWk|1LNAadIAվ"ˠ+Gڲe 4EUmR C(Bj@||өjLA|{^K ([`K.%$$nݺp뭷bZYvm< 0m۶qFBCC7n,3}tΞ=KLL O?4;v$00aÆ[,[+WRN|MvJRR-[k׮(-$<&Q= WU5E!11? p=pB=K}t-sB'i V!4 gpTyf@S ܀7F F *aaapIobҥdgg2dNLN:ř3g9r$Z@ʶmۼDEE_qF,X`(6xXX>'ߦW^9se˖)-$ĕ'N@P A=C*y@V(8e_$~wiܸwb:^)$I_~aܹ,]SNW%GĴpt: ӐcC%K4kq4<E*yiD|yKƆ3~`Jlb=JLZIVzni[8 4"C| ,.Iݻ7;wzر3g¼=z1cpqK7""… +-YMz9y$u`0g~Gf̘@RRׯga2Xd Z5k)))%.._~6mx(-xl>eY&55Ν;۷oAILUmEQk@@*ШTaX8x M6h42|p6l@pp06mo߾l۶8,5Rr\hZ Bvv6lٲ\tW>*RN UKuorɌg石9DU۱Ѿ<3-"ᣖ"xgQ&)ZI}LfpK/ϢhXx1}@n&ڷoOlll/5k,Ӯ];Lf̝;Nƍ2eM^ρ7o& VKǎyؽ{7s~z'57xsr ɴhѢ`T1pht+\9NZ%k#r<\ˬxk {Gtt4#G:FUNJݹ[ڔjɓjSI. ?ĭ(/8x+Z-UJh4Wxrk4흥JhϞsI]|VN:yf !44e69<[n%77Ʉw%%AWS'ْ%KH<Ϭ '9nwPE8ZRn dqVIȲDͅtڮézy󔍘i%b_ BY̜:A%㨅0zL6&e9'C4ǭ&5kpt{%U @  $ӠΞUQ]୷ 'U "#e"#e""ds֕ wdqBCejז1%F`KR`^'gθ l.NեX SbiSvbIM[@A~g6?`ж;qBFYFU @pPϵjlNv? +Vq@v"""Xf 5f)X)Bݺu;v,s̡K.mFCn݈`ʕ <JŠA $==VKPP6l`\9( 'qqq<X,z=}㏳sN .͂"b)TOhU)_FQ?4*\)9VsdhTǟ7`0F 9!"NǬ^.MR09TX` +",庨\rٗHg\޼7-Qme[(2!0[PP]:)@ Ƒ$/K̈́ Pzr"I% z dUٕ\Я_?̙h$22NWd\487o ^]$kגh~mۖ%Kpb2HOOϏ~tY\vv6&88Mh+.*E#DLqV 44 ~X.2I7Hϵk|V> ọ}iaod ӅT\` PSxa%i*(p2IąQ}8<ěv.=BUdc'@pq-ܗYJu1pV54222cƍ<# *@jj*zܢIhh(|X, `'noIHHছnB$Yj VZESvm߿şJVV^zI=زe aaa(¹sؼy3!!!,\xÇӬY"W,+9tڕ]vѤIN8/c8; qW],Y:t d'M]0p8]l?A~n&Kw'DZtdY"5,EZϊ}f2Y\Es7o{}e{< *"æ"K ҾR0@ :LUѺ-T4oY3V-@ 4BBBHNN]v_UԲeK>̙3gpX43S633ѣGBEѣGQ;bBQƌCpp0˖-?'55Ə޽{yxٻwo&'N`ӦM\.>EG;hl6ӽ{w1 4i҄PN8qYm1K`` ^ 44%-m {̭p!Z`JZ=psg;zwhZ@š?fsn÷\5nB?Y 2?"㇄b$V7bۧ&U^(o̼$q>_Έ4*\hG|&?l߫|ąZ* -"4|~?ba k}0$,s]54IJ@ |$I"** N$!!ɼy>}:NEQhѢGtp\II\\vBQvnM6^#`8pf͚!Ih4j vOqe߾}}݄3vXf3SLsxQڵe( ٳӷo_E!99cg69s DSTӵkWvʇ~?SNӬEуw}۳o>6mĉ'FQX P_P~Lq1څ)gzb-2~ZM4Ɋg޽UճDi)H/i浻jqCc-߬ks3wyjx L}GU ݙ$IOH B:%  ņuA ER BoP}$NI=sϽ3d<ܷ_ J>̕<+)7t51+2aC;~t>= ]l+ܤq<.B00+w<ǧ`C*ϵM[֎aܬ d/XX !Bۋϴթ-K,`0лwo(**y >|L&r1 `̈́PPPerImF "99ݻw={/;wd͚5=z{ΫJÆ wtt4ӧO',,s*\b!;;K/O ۷oצ6k֌M6fqpp`ٲeҧOIKKQFܹłGr%>>>ر]vÇINN&,,QF-'yYVɓ{%99-[ҪU+4mԩS_.]`cc_r,e8qsѦM4h/tS˖-HMMeǎlڴ^x"ZljKܙ$huB!7 UUi׮ .dȑxyy裏+ ?`ʕ :[[[233ׯaL&@L?-jW_O~~>oEEE8::rJ)..͍>} |@@@ϏMpB~af̘7;CNh޼9͛7aÆf|||8ڌʢ~KN d2ͣ> @Æ ; Zn`m۶ [lɹsVCxx N^ׂ]7ܹs:vX®]Xx1nݚ R\\L^Pt0 X,:; Z$`%B! h?PRR?^^^Fm|}}!88 .P\\MS ח 6PXXh{,\SNٳIJJbŊO{ܹs8r3g$##EQ֭͛7UU+l зo_m{nxgqvvd2Ό3ܹsҠA~a-VwBYYY 8X혩J`` ?Ⱥu2dGɓ̞=77zgZӧooo;v,AAA,_¹s簱Yz s;BH6VU~:ȶ  7( COB!}(JͿ[ReAlСM6@iY`s˗s-`mڴaʔ)ڲ~zȈ#1cL@@zHJJL߾}'}^ihnnnqy&Mѣqss|ѣۗt1.}bdeeѽ{w<==1*̙38ph3:uJܹٳgoNwJQZj ̙Cqq1w{8p~h"Z禄L䳹mx a`jU)XUN_GU =VU19Z]ZF}oQp572=uR%3.ޅ7s]!&̹@t ;bL7+B!=EQ%ѪL}z gW_KTT۷om]^jwڱX,׵kVvp0qDf͚To=R18I%PRUUUѣ'99Պ11cp ^~eprrb̘1}һwo/^  >ʁo7o2zht邃PsVE֖QFѲeK-*ׯ筷"//]v߳i&G^^]t(#:>s~W DAAA}[[[ZnͱcprrƆ={УGٲe k׮ȑ#Xb޲ef֭<6mħ~Yh7oۃ"Qiu*lkB*dcaב[P̮#)<^kIb[42`|ƁSŴ+]Hj1Jg՞|Tyw;-J"2gS.{iHDsʩvaÅ(@`;޾ߍW̫`cҊ,fY7mM?4tY&yV7 8Rs{!.z>;:+6Qֆ .DZ >>;"L5?gpu+**JjRXXt~2eV!!!lذfw㶕Ĉ#HHHv}t&MĴihٲu\?[Uv_9r^y+]{+о}{Vد( z:w̃` IDAT>xŔ%Qhт?JAA4c NCUUV+P@\{:C3p\ ƥm×O6ɤYxMoҶ-lck|MLxAwZUG B~ ̠W!X6}}M=m ^_<}Eo~ɡK-3PJ1~c<ȅ C]yc,G珗(k/pR9?.mzˏNiS6ŝ.֭CkۮO7_qqq˞={UUiK}no7=qqqܘ^t~ʑ#Go=wAl֯_O/$>>___-s)==իWo>ƍ'|¶m J̤(,_O>6mP\\L-hӦ uX[{%77Bhh(z(6oތ^ё8lmmJbb"۶mG/3|psu놫+=z@UU229v $Tԝ$}N9Lp?"۠ev6ݯ9Z `֯9<͡uU8X7ӯ=yh1qޅ eK,*K_O{Wq\uz΋0Ovb`{ߘ;ĆaTӎyE6ĵ':ʦl,Du~W B׮]>|8GoKLL &L˦,]xX,s˧|wӇ]̙3y2d/ViMOO_$::={{U𩪮ʦV… ߿?L0A+_zܹ3#GgϞDEE1gΜ+gݺu<#Z޽{׹k_*~ 6nݺCq~^vʃ>HrrrǪܓe{]TwU56Ν㩧[n{ݻWo͚5k?O6l@ǎ͍MG I͵6o̴iӴ [[[m*[O?ԩS,]EQcpʌ3,S>C&Lƍ;w.U䣏>b̟? }m?X|9saΝL<26m~СC|g_]7W_Y6l`СW'&&SjVXQgwV^_|5kh֬cǎeժUL:kti,瞬uQ{׿lfʕL4%Khe;tɓ'IMM`˖-evic\27VUPᾭ}\ݵ.ٳӤI:͛=z4?<?P{Zӧyo)jBnn.?{ 88#Gʂ ;w.-Z૯?d̘1tЁ-Zо} A倀/Yd ׏m۶*SU``6=OQFEa…̞=m۶āŅ-Z^-[{ qtt$'',?2o3gèݻ>}:}yyy\ JJJXٹ":׻Mq璠mLHTEOf:1Ѝ.P+'&b2WZݳý9q4R6ul1s&iٗ9ݚK*fBFD;jej[We.Zt򉆞Nzs*8U^.r^r/u9smOxqtth4r=h322Xv-cƌl6cooY|y|IfSшNرc`6EÆkܹ1rHC~mMKK#11z Ʉ?2?8& www~a~Zm__muƌFAq+۷15%>\U ݽW~lغuk1bVё͛Hnn.Go[Uǎ~]F\ڪ2eeeTȘɂ xOVwhM4cܴsmw]Hƍ{_$**֭[3k,yYh%%8BHHZ>ZɤG=>;tKbm몌Y+[g,9T˪õ^yq_łb9*ZUU+<}Kc[Ã̞=O?@FMv*-fObAUU x2NuM~MXڪjmZz׵hcU>,[mef\ޓU.z}cSx^>vlٲggg"""ڵ+}yyyݻ#_:7Vm_畩}\ݵ.ig>/8´mW>Y+VTUeӵsmw4.1QUz=[lԩS}X,^~e]2닪ٹs'&I[Gc֬YjOIIg|ծsI6Vݕ 8[Lضx{瓕U.?!!!WdVUo:ڔjUU]e iWD-WWZO_U^i,ރ̙}ر#ƍٙHiРfٙMֻv}@Z}2rZ)Sxg婧=Y_K.0z^o{iU-EQ8x g̝;{cϿ/?;Ǹq8p[n%##;;; Gk{Bۼy8|0!!!$$$ЫW/ Č3HLLqsI:D=ظq#H6mhٲ%նI@@Æ #??|ܰ#>>wߍ^',, ,YsN"""ػw/=vvvC˸~HIIa۶=>LN2XԝLUiեmK>yO޽2d6lZ_(N[|C-fS;6S+ƽn`ᮉaS.dG\961d+ߦFD;T_.x2y4KwdGqog?JsjΣ*!Vg^xM)LnnnDGGkiem1eRRRHLLL&e2-0jԥ^www:tI((( ==}ֹ.3gV3ghkJ7uTZk_K8OuA"u_"WLkwt#99B@@Nexg?~<0p@vQz|M~mm=/<uh7o!00Ai ΖdذadddУG-6W___=E駟fȐ!U/m].׳j2'+S{>? ???+d4iݺ5w}W!jگ\kWImε;44BW{_g'`S===y駙8q"?uOU&..N[ؽgϞ5nܸB`gϞ(NחN:kYg5]TBBB=vwMnYevܹ~VXuѣL@@YYYl޼~ UU ]vxzz)a6yqss6rH{97nرc1ͤH~(**K]g2s=Gaa!:t 55GGG!((Cj?瞫{VyNya07wa֬Y888E׮]AEBYyQ)l>>.]n5$DyʰdŻ}F č)%[^RR#F !!~5Xiĉj;oMN]%EDP\>cCzYA?(/^>>Q)k_9Vu]FJ شF~UUgʕX,8~8[l!54&0`bEQTSՎcUl3j@EAEXFھU_ٳi>Ŭ[=< ' CѺu,^٬';ǂz,XU (:L C}{1#XL9_s=(S ml ̤ys~-ƍ];}{8y۷I:h<~Jfsq#_R F+ ȨtZ]_tm+eAAu[EW>3p@vͶm((Ew$77ө耭[UbՋz1 S/V.4R֏ұ*;r1H.6宑\HWR.m))v/Bߋ:Hrr2Vgݻ-ؔPRlDQ8rg\]T9_Jpp Ҁ.;WNW؟RX``t)ecQvW鵽SZƗѨ89/K.'(([ۆtҘvBPP!kɹsIOOUDH6&+!B!nKSղHQ8xz)ps1GQNbC2 TPVBQĹ$*ZLU/js+iDiRYX\*P :T۟ͮ]سgzB22m^_T0* "iY?RT҆K,vO~(YtJqA}e*ߥ1- > _AJv݋$[x"rst:~Mxyyӵkot}lm3h`ߗ aDE…~07b͵\ !B!cH*}.-<z)%WCyY) I}R_U9!B!"A]XMEe $忯lK}RW{ Z !B!ĝEVW!*EjV.ehǫI}RwioZHJJbĈ$$$`4ovwn;B!BI*d^Ta}6/>Rw>BJwkl5j< l6_ !B! Z]+vJTڔ>OMhh(-B!BԂBv% pi{,┧dD~=_:ַa4 nC@hL&lO~#1:J/__}'I}״>qM9r￟￟<}֭[j%&&W^y;;;Ν˼y5kvɓ'g…w1sL233qrrdKUm0j(z 1c:t(yyy|Ǭ]||||x7 H֭['A+!B!n2Eݧ= Z]ܢSR\ĕlٻy=Nw~Y9q#l}-wB͛1RA IDAT?~-`ڵk3f f{{{0ݛ `ZYx1sFNDZcl6Tve.\ڵkyQFxyyUyl&''Z~ !B!n.ɴ6/;1غo^Lӈ e>|=q#:jD{[~ 'op̮_cշd_8?1Cq eN'eOEQiNAhyE[{nOօT:;3~m0/ >M*Lq|m;{,2bmcZt <'|D, xxxٳg駟ѣi׮]ʜ;w( TVnn.t!B! $hudx:}E#]/KAnvf:wK_3뽇iٹ?QW? 7z"I4FN\'1翏٨9}e_3Q<74hx)SbE6ӤBa/G^v:G%Z A+!nISLg֖* {xx0g4hPq4lؐUVvZ뇍ͥFbcciӦK/zSSەw/+wZgtԪB!?7@FU @Hޔϧi8. i\Fo02pi֕]k擼gVf/14iDc>df/*ԧ hم-"wt%x!{"ZغCoc9 !???? ֮]ᅬLVViii$&&V86>>3gqF mOII!11blll0LIIIoߞ+mggg4@UՕX}-ĉ9s޲e6R!Bq든 b4 ;&a8^@.y_eNAnlmF;3Mã8udgu"ոI}LΝ>hFő#G*GJJ Z_^RRg}FϞ=bٲe;TBBB\(}}}:t(#G$&&ssw2338tQQQZ̙3߿km^^F!BqmzF#F}-+#oIN&2n$yVٱf55ԝhWgE)QZ-%ڶ,NnWkrt '6;+0]~˼wr]^SB\Clvi;WWW[g̸q7n\uL&\\\3mڴ*ۼy3Mˆ+,ˀ'QWOR+9JmZ-[à+ŅlM摼WԺEQpiJ!cٳa>i)6ӻwoEaܸqUNB!B2KibڴiL0֭[ӬY3ZhjWEV7}RI4 ﭢw8v'}oAⲯk֚'cƅ՘,"ơu[dGg𗿢*˾0/N}Y}mRB%(uַbŊ!B!ğjEQ&L?\B7M1Jt 6[mA =l[9y<}*=6fX ({gD(!c't,e|l F}a*   7 ػ6kU!B!*%%%J>}PUU d)RСC6۞>>݈>TnlM:n[eovV]Y|Wӛ!B!Dw-sq#3L;ߕL+!B!Bq둠B!B!HJ!B!Brxz`L_nF?nW^צBZovB!movnm}Wt-!B!BQC~B!B!#A+!B!BqˑB!B!HJ!B!BrX*1): 6jF.=q}B!B!wZQ<M\=KB!B!ĝNALC^NVkp4˲9<:tEBf>QI3z >w&m/Vf!ll lB!B!ğUiؒԓG,NόQ/z(VjU B;ibm(.*'1bfWE!B!B'sA+;‚| ti1EYHR,ߒv%vF-m:B!B!O`kg*>7G'WmyϊN`j]\E\mB!B!-t+]u#5Lf.h ؛kdv@xhkvW-!B!B'138¶zO,,g$Lw`4ѸY [JIqyl۸jh#ykVDQaP}uvQ!B!B Ⱦ2NVNaŧQSyxkez_O^Gږ]z֪lZ寮CII1N_㠺tS!B!BN'cdgNdU:=P:tǶntB!B!cLv4r,WP:[ϴݫ_J!B!B*?%^J!B!B8V˰؄A06" %d+wrGRP1ɯ{]w<H|WL@GI<%@.KxCM>8G|-i5<""}{t\IENDB`mcu8051ide-1.4.7/doc/handbook/img/fork.png0000644000175000017500000000235712067167647020663 0ustar milleniummilleniumPNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb`xPsq/d?fc@xAԪnX?@kYJ00100"PC #r 20c 3| 4t?dzo?o6b004I.uf^&ß[1s1|3` z0 p!H) d`7=@04ӷ ?~d`|}˗ b9  K˪r%2*2`pf)2#?8xNc`ysŧ ?k >0pd@axP=#!Y>qA3c+c`&?rcL@C@1#:hXC"C] w1 l¬ '^K1 В~IENDB`mcu8051ide-1.4.7/doc/handbook/img/545px-Intel_8051_arch.png0000644000175000017500000012255512067167647023335 0ustar milleniummilleniumPNG  IHDR!WEl[bKGDtIME  q@W IDATxyxEoMIB8DE.OPPQ{UE\W#O0 * "tt/tWEQ`;w ΄dΞI̓tuW; ~ B!B!B!B!B!B!B!B!B!B!B!B!B$:<`0ܻ[ǿސ:~VWoesw=m_m:zPx@1B! [`}kºK2~~.z;P"ŗ$ފv?دuN.bMN6y+[v_'X'9B4Jr9F) kg5'Xutpg5Ny$16ΰo׿}%X!ޑ RFIzBBIBBIBBIBBIBBIBBIBBIBBIBB@SH:-~/wRx?rL0ZfT_?21W˭:I\Rä ƾ~]P kx̶`7'uIPpk,j*1k(.޸ŵn|<y x9PZ_P?A_;oxmC>rmpu|a?T-Mh W@_yaӷk ie.R-5|wwLX5_F7/;ߓ`q5ۧm]xOk_~myk#{$bSKTy=5sX x*o»!OUxa}iN&\aNV<qxP l5ۿxL5E*X5OM}sE.-!<8 oi p&=y~u7wXsӌ^7Ya.([ 7kYog~w&Y׀鋻ϸ3x*0gVDA eNx11B 0 "BÂpKeumt:!1$$5P!hR B/IHpRmm(B4v2©/! !"<!!rOB!BZ^߆u$D!!©/cPy8Bx'I֗$D) 8h uzmegzWޟ6x kN{yζ ԖFw+ful5lX'[6z} kHz7BĀ FZ_.!pQO9a:a%޲m@ m}?'j;yktvzm՘ !c Hv2{b_b[le-o5moXW,"h e1ٯUvoǯlV~3 x7>) GnNCӲe@kqSAmxRSRJ5K]jh.pq6]|@6{+ۼx-Z\L[TVT_/n޼yݞt=Kvt]7ʕ,}xv[,nmjղFdn]{SvmӶu,Zm۾cߖ-[q̭v/i! PKOT:y߮*ܼhs /kt'>$D8-G h^ռ^,DHO+=ovERu`4U4cҺuc"\Һ~8Bx}< R? rBѨi8I76o{/!wٻJ7,VB!DSI3X#< J6rȴ5"dpB!Db{Tnm9 XICLdn nk!!B)ѓbc%.yu}9'b/51kqB9rBd`v8= ̻yǰ`@K"BJуCuhZrȒap"PѱG_Zigy.1]{HBģpc"Jt,TsT^RZJzZ:veҥS]%p]\dim@KzB 6xęwLW/ g$#=70 xM8LTnl\0["``K۬hIms gc)QIB`B!B3r9&0.p:!"ipf% B= R~ա <0$!z-N!D4I6]o>Op"xN!DIfi늋xk Lt C76lwp-w1qԃ'ھav: yU,rvό_m^}J>fB4tk2Mk LVWo_vEiY;vW_O?Wkc3}]#!' ˀw^+/}/:Hrݭ^y=E!))zNf9ջ.o>d/kmͻ/~}yޕ1}BD|jDD`0 + \ \`9o$8#q :?'}!mSko}+)\AL$աi\pi<:sv ȁǟŀK/`klw;ywhIPéIk@>֤r=~TQ`wSmX#D\nu_~0~pƏpƔh*DI$c:\ |sa_Y|ђ0j]uI]<C^cY!9ʍ! y3*zrR` AH)B4U! ~e鶲K2 !MESMB:b+XW( B!D4$d)lXpklB!nc5֤;U9B`* vR +ۀ8o@0?zX!h{JhM: +&Vۢ4;FDv=Zܳ4cR\-(}[C_$?$]-c>Ĕ >##}y8՗_|?q\z}_}Gkw%%%۔v+%)?sw競n+. c:㌾G_ SQVhӦףq|rIB/rCwc"G*7MVR].aFk?>}zjjj'7_dFs?BDZIH"Ϣ+ٳgPJd\;/X 4;p,paaM'a\wP#D<$DAEExo0g̘qUAA) 80 a͔Rw{[cޟۣ!"NN;C/IM̙3[+F%''4U}L7Dk=hWta#Yf4Zf?"Z B/IHlw:!"rZي?䓇Dr?yyyg(N'//c$.0Z)=Z'f ]UUaBIBP/"Rf͚V)5"HrO.+zCn*Κ5+C gMn(IMiw);*1 7зCq#Poc4{#/T "IHT87&;r^TJ:Ok+QJ5)䟶U%ާCgfsak M6Jyr6 #%d 8!2 c%p_0Ǔ,.+x0wg(7x/dz5"d!B$>wB!B֤!"$ A2BB&IBPn T& !@ <PR_nL N*<BFl) h\DB'NM `7|tBO.**^ްa 8ֹh$ B\F"D%!b@Jl0;L]~˕F^(Ҵ 0#Rr<NXH"T^@G" i\T.@pP#B\Ғ!M>J,Bؕ֞w*(rOH*rtB$* chtC"(7<۶B@)5tٴiӿ:vxo;u2.ᨡ~*!M`'IHZ/:$#{UUU<y2 h#42r9&㜎C]~N:U9įz>eۜdO6oْ׫2-NN>jPôEo]a<tjF_TAVV;戼.+[k}ZJ3 1`{VVhTZG~،V2"xrUsý6lXt,$ _O7_{:;zsK qm>~瞖Q+9am˝OBֿ+'pHJJJVcrRIIꌌKRmm@0% {\A.@~$$!Dhv5:nSJ 42FYV2u !,pOycHq)#G,Z:U襤[x!"H [08$T>iJ&{4h1W4ɑc0"FZ_!8dzUkWTX@qb*PWСCv*!╆4j}IB+ݰ8ixOJ<Oo,.j#D%IH4LF%33/@)'\j2P ,xh]!III=7N⠎@;aÆ#߾@,W$D&zrg4vo߯o=Goq*T{EK,x' sՈ¼EA! >3q|rt{]ѻqm,^e8eҤoB!"E Y $!B!pm(LB!h $ B \[o8BH"BGH"BGH Tnկvǜ3/.^Waź¢2Wǣx]Q TϷ=- !UY֗$$8e 9s] ]Wc._x)_L)Ea(ڀֺV{ Kz;[> 9ϑ8f>\pvPFpN+$*@U˵nћsL4MLJ<% Eê/WVV&g4ND= Ws\YϺcL{hs}n˗2wk /{g}zqNrrSO ( L3C/IH!~'X]Ozz*-[4UQ83C;wVz;z$v*/䗯NEQJpRZv"O-xFb:t~ET}}!}O=_׭ل3l_\ygTՅj@9wυg֟>3zs]㫷'wȈ[ dZ_ @TũUT])' {7X2Tn,z} >N`R||ZW.:IIIQz"ި}ư>q qσ5u+lK/;A8co똜79Sp$hX߿~-דm7g_ToWWOGO$$8=4 v2$ƏΈ{ފu_.\+w?NSQQAke8[M$=- 4k-ռ1ݡ@bϸknQYYE]bZRZZ]ީc^)]:۠(qĩ<7}Z۠(PO=Q{qڝ`'ݏ>'a% IDAT)aRe52l{#ytWx_=a|klɢ艹&o7 rϟzX^yOp5eʔ􌌌L` `;4 CoU7'$8+E"֨cb(|񜡔:x:.KQ 7ACKqs%{l0u<˙sL;Gw^b&ͩqOk~1x%o_>8-o7ӳOL ˷._80JKKKg1,RF!78S9G3NeOrgИBRR % W_tQ%Ǥnnsxxx3swVV2`YAA)iv6,*0"#v$$zrQ͇mIIN87EKyޕWT֭[ڿrh2fXx<9O5{[4k6ESz/qµl0@_Q}%7̇琑iwTcj/:񤓇_;#n|)շ!w ܠsΣsrr~TB$+qt3 RCzkVV֪H+溴c69V,\r[AQ\0p9x$ iڵkw5p8zԔ)S)mٲe(ٻxaG8APJ]!E@3{¨/\RJSLIZQ%#DG)coR~ $!Aʡq}Wlţ7n7mq"!: CD[ouNW5$D.!Bq!~rñc.$'$&쯠q!V~9:`5R!e<(;;{Ԣ:V4hKD#'I6Z@'ҭ)))y1&x;'xjH9N\RJ*:?$ &;;{)¿L)%jzϝzA|7]Vx<7'eff~L)ӡD$DlJuu7Ig >uu7 ӀuZ뇕R2UMWZɎE"" PK"D/?(ʷ\.nnnpH?/:N\zo/R#O&al$!Art"rssM#ȷ:effxAUUdԿ*G^FmN"—'I֗$D:^sRZݪ> 6`ZYYYK>^dzq:>#hm0;s^!֩1+x<Ü'^`eK-N!B4!2wB!B]8% qHeenP*nw\F:hZ7ZA)ciW(4q\KGOk=V)ӱ4/Aԯ<{% DE5 # ^$≕>A'ac+ڑeDk (*5qPkvO4hP10 C1 N0gΜ44'8KZ 1 )y@EExD;pg% I0'\d0'.k,n/~` !"05gΜb$$A̜950*:}q{a]u)_].//!$ IIIIX}xve'޹'5|͸;Cèںl93[q]FG9\M IHPl;B}ư>$v*/䗯7 X<O;/. wJJ3fHJJbWI)u+<<e8n\ B9z q7afxz.Tczנv"Djժ۴ޕ\jOLCN,7] xܫoe{pQhQJUoc_\.mw_fᢥRf˅ŬY&Gaݼ*ݪ_9g^\T]aIia/ft?*B 2;ϾZp-|92lk1¯?m0}]X1UUerYC(&=Ncɤwi=!#'mGY5I08A*?WW)\78Q]^RZK_ 99;vFk]~zz*+!a~c:k^(??/Ҳdv:}]5A6GY-ؿ8'I > ^}3{]Me]o Pg"0KK9%̛n]F8Kgv?SY8oov?Q9أ/ۙbe]N WQv%Ѓ8= 5ӯIIN&))Vo}K.+)-XjGtETǸnd9@<y X.%e?{̩nw?[ fE'1qσ̟HQP0#OHZu#A{ ԗ$DDE]#ӵݿ}ۀB-7<+g<ṵ!ZV:$ӗx߿q]dSϿ4jK5AJ+69C,H"²y7onPu;\FݧMMSL}5j hղ>0&=K+lOgS !7IBDUUUԣV ZPJ]FޯKk}{U]]RgFeeeZ@޻#Z$!:^Sk=p'jJ+X[A1KQUUU|7wgeexbV|b;V/Zր63 %'%%M 7Φ())!4`a~uL 7l%otB X_ I7xiVJX uroFCۘzZ'9_gTJ=xelB/IH* ;N[ڢ;O0233?gJ}J)aش=Thʒnx!I)pR% I gI2ʺęl y<&1Sx<5s~ERjS! FZ_ @d oov䞶'}v?y+6rrrVh_.2Msrlª|,xu2vષ|l/JM 9'';cB4 8{3O;,֬ݬ]?};fxOUϺۆo>pYPLaWݭ=:sŴ'iRIȉO3|N3‰ﺆӆhꜾ~s^Eo~t k8% q@G:GJrR'*mfdWn2m1}Nxq:_KgHL/85p:[r'rOH\FC7S !6 BH"Bs`z('D!D˫^ .t"h7o^ƬY:i  B4epÕnXd C7Tn4;81Px?5 pu<{ep)ԃ:&\$ ^gYu=!wbAA[.>r-Jqy2b_$-\mƈMMZ ^0 gb \ 6 _bՏ?qCt*:~PJQXd G5|8(^݊/K(dU'%e Z 8Z+`a&RRRraWTT<~M7ݐ}4mX3<4vOf/_6mܾ}z(((4)(if(\Z++ VJM|/`"LCp{#41M`̰!{wƩ1)ʋ΍Y\By/1?{wD>p{" *".\eoP@A("kEWqA^+;]c钤ty?ϓ̜7oϜ=?X###G\nܡC'+QIZ[rpǖBt6lp-~@k]/knZߨ0mn:R$IHSw{0>:RѺeSl$vÙuๅ3>,]++ZfV!ֺ?Rą GW5acu[H(q#Jz؅^{}]uu9 6\\JJ`}Æ BdȘ *22M`ѹ^Wuȳ]Ȟt3gg9UaVj%7 JgRj[.ȑwQ|g=O=sY:,Y;'OTtcǎ6'+:v? Dn:}GDF Vǡc,z"1J&瓕Ey wEE߇(޿ep(k wZh?w87O8Òđ\fprp2DŽf|4 ])5hnY+4؏`Š*{xy^{R4oP-!!5aS)愁IQ X$bDJk=+!!!e Tt kdœ:_ږC5x_ܱ$/ [n]s+IB /')Ry޽{9Wj1ʕ]rϾX20P!DE&IH9SwSw~8=vvUZ !ʄf(8FgǸݧGV?:)V2|p_fOͤ t%CˢϿxs'qKWb/]@ҭSsR$'yP'?紺M+WUnmO[-Z)6}R8!w8}3/jE( ǎ( NXdR彭R,>)r ̞8x%NJcy<>f8テ=ujj5o"9-Qo!=?>l[cp¿5kμУ~C[<3 > 7WRB&o.,:thY0vL9SwN]( x<Ȉn~e{6|W!%z%UIB p;"Δ1y`Y[HЇW^+ж4j"_b.ުyS^WB!Dy"cNq }^vq_< 04iFg_iΘ{>ܔ4! IH᜻kSz5=pBIRA,13&YBKAHK"BdPK,$W/vZ?>V:!U$!ȂݸW6[BB!,S2aB0% 9!"kJcHT >:!2$$04Ա:!2$D!1!B!)B!B++;Y| huB! jYD)NYDqjù'`Kcip _i|S 3y<8o3.\0"&:VͦK3ٿ?_~k6-pٍV ۵翑}?Шalc) So:d“9O^T@ xXD6+/Z'-`MJGo*K/SzuX2cҝ!0yG}iuzH~VF T^Z1IB$V"ꫛh$"45kG;_xTB$ "(1Tḱ)˛4y(k!iDd Pd"ry&%v" Qp2RLwomFM@b tTt u?`_!==+[)3 >@V!ʗ~$"W4i2J!*67V'sc c#V'2;Rv",tj1];]3aRI5LcJIIvoMHHx㒓'y<}wޙe_ dLH<\MVQ)b֯&''Kk09q\-]. zpvvv P1^[[snсs{|ao(ߖΘ{~9p8#ٵSRR:yG)ձ֭R>crrV*we'DgM x+y뜯/'''2 c_r:( h < }vmZhbb;~6am_{=w7{˵=A'߿ ދ+4uRjR0ӴiZOKK`"ݾpȐ!)܀TDU!q~}6l0yُ0Vț\jUvSuGzΰG2u]@茧~A;2l7[tć5j<%=*:<ރ<.rGxu^:w~&УRϛ۰:^5/9)4>Q9-YZc/jy6tKNN F|p.xt>du Muk_^v;ǎ`ϮcˆnZUddfdj""Q44 RM۵'mJtͫ;c~*n)Y>ֺɓ'ev`SZW 0y"5ގQ:`5f-YF׻2hK@NG5$t:իWRjjq+V&cT8 =!B|;|ꑑԮV3W8ǃfP|{8TZQqj֓EOL` ;pV[4:^;xќJKmiӹ˟gp쉣\#םLVSy<^+9NJL; V8h/xC!qݳ'wGgCuye~9uVY)ȑP_:npYǶnєl.j,x5p{ʱˁ';ۀ(̤dai^DnOyOqxs71}ݸlIg1 *JiGi\GEPY{f.^%Qā4jׅ;?X`_I:w\˙ρr_N?lHOAXtT:ux)115Q2,Q[0*:oG:qc.s6YQۡAw\INW@ P ȝo?rb @,τNV![> KTVP-nbQ Ut mļ|BA^G瞄@gQY$ Q6 {IBL\F*ocJ|>oG2aOȊʒTG/ܝ穧˳ݷ *;(r1/X0ep+0 x X sܸGP$ @CQH*nbQQ"##T`UP Q_}_2 =nQd2&$:+HDK'22lGҬ8YF1i5Wϭ,>=o㙧 _nCEPVMVWд{T (a:ߦXñ5jԱѹg%FF+E|?'a4osݜ* {S# ȄPRUJ~˝nƣ-W\w]R~V $Mx;0w/(!,sju}n'961Jgɒ%@ݴwBѣ?~5 ߋkB^ oZ(f{򡜤D!D!mƼy]ZnJ @HR4x<lg"l]!*Gѣ93^q8%n `Y0חQq|=tҐBt9w\J93> $!`q/^J?jl!D%pȑ~aڷooY @9@sIHII)ԭBT-cN]5`z?J 6my\m6ۻVe}_0lvvdl6x%_OJWl̀$$6xSEen"^a\lE 9/++K㙄ԆCf{Bd "DIII9_k=(&ZGZqV? <.]fxD{׏ $!Sde$KϦ\23ww2(y? 8,c"$ @$ukV!DUlٲhԠ|me=6LbŊ/maz\[k=,/D8I"(R?Z{,YҪ,b0 9?Y&ôYO/IBDae)))}4%%}JJJ+[xy@\!mv2 I  R} } nR'DTZ<Ow?z<)%oeBTTT .H'Z+W ZkߔY IDATz{QDDDXfgg+~/f!>~F+ͥ1}uW]nu%|cVQL$!P ?zR_? :& È̷x >>Ͼb$8/o6oᔔ=AG͚ͅϞ8q|G:Jc,Xae&ʡďZ(pҫ]*BR 9 BRsMHHX d X9ؑo!D9$IH`iD9J>v8[BBI"*39BQ9Tt u?:*CQ8l`СC2@Q":u7oN 79]Q!4m5k,K-h߾֭[?Ӧug?vleB!*V>TiP)EvǍ]x7ynLaP;4{!sd{Ya/*7\ϦpJnjp o'cI8N}Ȅ顴$$0_)XnuUuWvx˄c$ xI?~άs-ID{gw[4`u\v] s's]+K<Ɯ+sf[c9#֓^O=JB֭[u\S(ņa;A~[JdV̇(cիGe;Nدi~!DiIbq27v`Cdge h"#"~_uo~'ZӺESecs:>|x2pQG:كas c/B{D$ BQQu&,f.4]׃Q~C;槬.h{]u:軴֏k}nh4.+P p!aAچXDA_o&fu,B! fʉn#L7>~[^ZYu]/?C)5Ek}@bOGk}aR+v$!PGV!U\-5K5`sbVYOxlR?DdTRꟘ:Dd\x[t`E\󏾹m&ZY s_BTw~iVt$#{2:q`?;+3p .ZJo` p9&=!ҩf޳6am_ЪyS{GBXc=]?KRq|Z6kŠ'%(9ñrMRjdQm=8wqɃ>`FPӰ ϛXZ?o .\۾ ۝M˦MZOrV-(/+W&φ c#Vl|f { RXtv֋/z\0jc@zݻwHfɂm1Ȃ>V!L*:N=gs}59̝<_梎];]ɇ۾ަ-yK7^~m>KIB(?Nrr2[nO> SxaԪY؋.M@mL `svSuGzΰG2u]@茧~A;2l7[tćjoi%$$|v)Xlp8GPέ ^ Z0ٳ5w^<9>cht^:|pmr׷uk`eB"|̙3XJN5Miv?#1]DŽfV3?e,Y:O᳴,X/oˠbꓙd% @ 8?:ZfSvI.wj96y PJ"w9F*(¹m۶1j(:v,ܮd8y~> Eʀ<˴\Բ٧tl6{Uu2&$CA"ku,U9#1"_s y%IIIw兗ΘRU1+|(XKsUONV͛ :FqnyRnEBb:`D6EEǠcG!D$Iʾٽe:uwKTG6_!D%I۾݋ u 2L!DE!cBDP1v^{^FzMBT,6y(Eyi(M=«nсca =Ȟml$B%~Nm_ZIH f͎V>-J}^_Mry;{l0.g[ Bc@M1+,Gf懲,X B=O |yyY1i_"_Gzܘs̬r?`UU[.jɒ%V^dI}* Z+0&'''Ϡ>3\.%V&DyQV7)Y%Qgu]v,6aXì']yEƘIΈbbsLةn7[tנd]Ƞۺ#=gأS4{!5)s>=qWvs'?\qW&-=CɚW 1) aL7 \00 &G6+g[,RQJiZ뱘R꡵w{MS=055&N̵]so.} r9;\/ o{1jcٓ0+]X68g=1A;|hT(v;ҙ>~$ziӹ˟=1x%NJcl砽q qKǍ[ydWBGlСCC@Y0g)|J)"v}gzСCOX ǟHBb7q""".\ {yo|m/`s5f>S/ߓSfLVaǔĩ饒iiݢ)YY\ԲlFvGQQ1Ɲv h˧sr :5X7tKp+,>vOo<1U6qqq?\JvTJ-$(V{A}'?-V(_wcBx+aۮ%ֽV˜b `8-0oq:*j]@$pCJ6skE7J`% E`&W^Ms bbw?&,[}۰DQ0")_0W*C 0՘ 0ZOs:Rhg(鄄?- KɅ/Hkk}s׭l1&nbЋ;.$ Tm1{'~x'.su[0_vv4\=70X·wj _$ vmGj(R:vŶ/wc٬=_w;2fx`>5Kv?Eq;Z#ޫv?ۍ:thUTF`CTJͳ*! k.FPJ# CWo Ysǯ@|n{>1̩@1E~h5v!Ϡ)ϜssW!#xlHrs?nw=w %t&W~J`RR@T)}JZ;"ȂY02R'$6دBj3&Wٳщg,> =7e̚Aq:.@dee= G޽+ur755R޹sgufY ec[o}g)*y0 nY-]ݒ%KZu̲eˢ].W>Uc ؘVQlx=:|?]xrqõWr+&tڒ{7lHlÆ K)8Yi{AZ,~FȲUVaÆ{ nݺg)zEֹ z;F߇loԮ oIm=λ:}qC@OII0u6 ޢcRJmHNNޕ| KH m/e+1Lp;t\a&EM}9W󵮹%:ꡔJw\cOkxfdd~_"bLxf /ߖSEpf3xn"y?;9'z5Qvvsc<3AƄT@j@kͦSxv`;yLXcΌٽe]XwsVus̉'C0+অ5pQeddXBvٮ%98=#_ sٳ7v.y\֯;v|5OMZ?-RcTȗK܁ hپ:r7O,PUk.c,_ZmaE;7r79.teeggO~tS/\c *ԩS̀zժUvZQd.ͷ̄Wl?0?WmݮŭR_D)ci\ׯ. 889Ԍ9Gacڊ$e)43-eW4F801l`z (6^MU3vKg=^[>֮yā\ҭZЁrIӳ6` 0 cRjt)]$3Y)uֺ,V>ԬY3Ϭ5jT|+%KSJ-:|@n#""“p8۠y2/^,""bf+rEw۝Ξc222DEEY$333߱RTV쉱^nu%1c<2-:pNAg{~,)))y<]]k3!!U+&0 NӹAXx)]zVzou:@LB|?c0}ǜƌ/xpaj6eUL~\=b "0hM k|r%˜<á\k+?}>s&=Lo3i"ָ!T2 毘 nN&Tŭ߇\ȱlX=!8a7pt"Fp8>*똄 rt1 |:I'Ȃmi~os=gd|?OHhZ5oZjqm5tT" S!]^ƄThz7l{/,;Y.ޯ{>T6w lfzor}uBTc2IBʳ}Ak9'r!ɆBH"5<4 IDATBH"RB*PK""ɆBLsiU1Ҁq9&0:oѼ@/-bBqZENB.:0cˆ3[_\uB( EXe\]b)/aVt+M}.u0י\/,!i[!Iʠ7b@܏Y ;"yC;\e.Z>kgBQU$D/sz5mcFPZvmhX BQT$`xx}u !"xz GQǗ%B!ʄ Ҿ"'!֫}OUΎ*s8~Mo땕8e/"|͎Iؘ _zxxN0[!;d0+z2`q9(@BTQ$$0Dcʛ0V"B$!4 .s^2!$ .RO1 ! L21+n, ?kB!JFx,B!D }Ci/IH ~q1o޼5k֜TZvqvvԡC">!*+uR/72 ZKHHjEllɘdLQ 5*M)U_)5W$%%I)D)SJ}9~S]xԉJLIBD՘ SJ'?fggO3hs֠HCf?~LMM}Ξ9>EC*B(]V!Jfgә]QE䌵z>YYYGXCQ}gVcB= 6/eO!L3|8p`eQE$%%}yxZm ^!#.ZPJ=xxD`2`A, V VQE ɕRL0agbرggZ9Rm {/^ޏ?ZaZr^$!Ȃ0xUO?0K8o_8u3Q8#D)sSwa5מvMݴj1gW~m7"ULLȄ $DT{;',E78(J?XGi/8 ¿41!AW!THjXBQH"BKȘ!B+Ē!"(M(vLy;fuB!DyPVaX:!< ^zBP WC! $ n08DTt *:F?o CdBT^܍rΤZKo0D'IBDSwdq*nNK%F(?wkxw$!QJnf\x׼Lv-:poèv}ߛrNPsPbbV-w ^Qe:U f0i"o^a4ٝ};غi Q)sO^gTl{!DB{j82.|#`KOHAjluB!De IHhEt|6DGG5]QrZ@SMSvhŢJ W^D]Q8DloZO6 #Ҋx ͛WC),a$ a IB{Ϯ2G*VZI@ەRN)37IBD;C&XzY#DUlٲ3n}_Y##٦k(x>맃+x* ٵ9>>~G#B4IB GV!JW!!sNgv#Dp86^L廊d$ L5 uB.?N<ҢpRZk=3߶sz'E!I|>5jԨ48tM RH"y> DEE,G*!眜;83eG6QqDEТTjq*nIPTEкKDEF+Q|||ܪuAK[]ꆂlB$q; l,5̙s=s̽sOe>8)\NQ_wg>"EYYRԲ,] URL% ٮGktm߾~ǰ!]Bw>!LG$ s[m2ao8|!Ggj?*]r$ N(Mf{uBvd/Zpl#>x-N=Mt4}N8 z6¾ezoe»FAy85 I@UzPǽZƅI-}JcB ܓzꄈHVt$łTW'DDDDR l1 klCDD%Б1MDDÙAx$ iF=d1Î:,2Jަ^|dx=zͱT"""^L 0+Y4YǤd,{o_ƛzs =wcm`ܨ&S/s/a&'Ң,Y'cH1! V#'goVכwSWTfZ"B*׫GwzQ܋d:!ҪXO>K i(gMs |ڽwC2wE499^jKe~X읥:H+bI\̼v>99^v36Vd"bѢEmc?gkᎥkƄsJQ9l+!&N?vm=mˏ,((wQyyyo>}3TI'lW')HluBҾf+B[2:<;_[뵃؏e7uVρdɒv^+*R7oQQQT , 0\\\*HC(aN8T~n%Yc4if&^)'sޔUnN/f:Xտ8[۶E8|٪K3nOcy0L(..~ƶyLGyW*>|%LێlWD^w&k WmÀaYXY,/BΖK,:&>CW^yi^ wt@D~sHڨ ۰&p67n`/a? %>|ra'{`)z衇~lv]Dbi̙ʶlGZ0iϽK-wǥ9|z%9^==nfnZ|/+9 ;"J۷k Ǎҩc<٘ (((uѢEw]dY+N+xݳzV~Ȯ =^lˁ;/^|OnnmOLjɘ9sX,{۶_>βǟ/qJl{i, "Dm=Xr W;sCYgS&_6^~-jvFcHI73c.f]EW\On#=oaλG0O'b̙E;v<(6u"qTUU-,,,<6 Hv{uBPK0;jOXT {~f.XT];wbΥa˗y4t;vv,LZ{Vu8LNNNG.,EEe%;v/OQ RtZ׮ȍW`k2R)S )((mFv re}i.' ? Jv{uBSI.]2ZyUyU̿bI :d\|w-O}A#t ~"h[JV<4㏯qQx5 n.ZƘxZ.{0&'[oZU(/ /_ضx}~z9ǗSUWY۾*=j~WUPU|Ұw.Ue/y+i֒35)yWH;~[Qս[FҶn+=Sp8tb=?jΝދ}dRn]{u3XY}޶H~xi3r7f̦`>pL1kuJNApgLZ~NY\i'Rif.J;(%Gb11+m"9nc>NOⒺLlףUP'`|?rIs6yJmԌk+ \ia`ފH1 \i]i;ޘXyޕܱqGCgSVwLqB&-D$-t$$1EDa_/\iӁs˝NވÜܧvrW$0qp+$'ͭx5&}HW4,>7_t$$1ژC""""uBt9EDD>ꄈHV""""YDDD$)AOe{uBSiKDDDRXcPK+/iratn H$%lx1u$$>YٮHKNHb $""""Y1!;ê`5/P@~͂A:0:f3 ^ GiC%PUp?;f6U³YD*fY粪*yOGܯQ^üv2(i =fUM{tV́ ɶJ*Ig?1Tl2l=<6 X ~B&B嶑mC0̆v>)y ؞oT{h?;?3ݞ8!.wʎϧ>p| 1E]9 ӦמP;&О&td]YgL3^LҞbrO)U潜^N{Cw\|&zH{,H|:?l6`Xo灮aϬ9dw\"3|O3g3}&BD.(eƈw +݆%>@U+ sGN,Xp]SK8(Z5K_G`>P8ۂp fǼ8_~=%A[[q〩1Mi[8_4cD=G>XW8Ͻ,fWLugp'y>Ea༏|{lO,z*i8_3V2 ='[p"@:?զ|)]eӞeC3מbY=؞=Iw{'&SlOwLٞNLrʙl\qweVc'Ҟ]=049Egw7&f;ڛBinHLkL~Ǒߌbͨ=Mq)-VMVi|ZEW1!"""ꄈHV""""YkH?,sX`Co`n`.VEDDD |zK%?yѼ3+v@W<Iaew\/IqA#i I6\gR~8yW*v^ XIy"wo䃱6tF4: s{n&uBmpwO[0G#y1۾ 0 Æ=І!~շ^>ʣOۤE@p.3zcf IDAT*B'`fi<-{0aN2ҹ褝䙊s*U4>3je\WP3+kgbb༘,SIۄ9Cxmہ[IM۞{bcDbJ+sbl/r;Hk J;ӹp/|WD,k1q#"ӶJ{#ˁ'\=ִ͌4=mY&rUèY-*sĠ%XI*N{=uʿc 'SD,p+'1Wہg<&WOb#&m&7]i+^XEJadUid}>v=IaΙ -@̯2w`Lͭ?VUY}@j64M%kHDʊϽJ]ifHqM=U`./}EDDN4=ACɞ3r*FDDDl23FϖƜՕv! f\uiMbcd61RUdH:! 謹1wfRifVu4LC 労1)5F{u =T'%޲^c'P9 ;l\f'^1{^嚾bHןY*Փǎw )̯O=gG:b/^k40黚IjB @6ع4Z\ 8ڇmC",ڸcdf61yRŞHF1Ӈ}oG֛s}KMAkaVOsPsY5b~-y=ث\Pd*Zi4&DDDDB uBDDD$+ vL`yg{ۨ5I:!WlV| o$@m E 3HNH73eq,EDD4\W|zКҞÔIENDB`mcu8051ide-1.4.7/doc/handbook/img/046.png0000644000175000017500000003565712067167647020244 0ustar milleniummilleniumPNG  IHDRM2 pHYs D&tEXtDescriptionWindow Class: ddram_window@zTXtTitlexsq rUp1110TUTp,*.Q(JM.QUuU005Ttq@W IDATxy|E3}pI8%) "ޢUe]q]uuWbQWAEQNK$+ ܓL53If&=XRTUW[ D"H|W4a lI$IF+`^*)oI$I%cj rDKfhH$UFܠBNq)*.p؃>_ߚv]jt-.>9ucZ%Mܓ{)ALrDh164 T^"2dՉ,/S!#ƈ(wJlHͽ^7FFoDQ:;#*˰M`f1^.5 u֖Dh6gm ފ>=h:VD4y-G|0.:4!($'4{nyMB?v(E(Z̕KL]+6~D?FhIoF0>8l|j |Vzz]] :݆4uRLlꤨ&I tJ_f;ZOoc)I)).ᰣ( )++'2&qm7phAuE:ģ ߫wWI灷N5C}㫞oW|(tu/M!4Z Q$׸9ĶNSEQM@b^zE9JazsR1%v5nd_Lᅓ2h@?-rr.{ԆתㅢqCFpW0݆6|38rNh֗3["mC'}w;Yq4J5>˧6Sy3j }j-w4Ę8|T˞y$ J().…KhZt: :~Vr'4ta+D?IE^v3NO^;F|1Z[|9/G?vF9*ٸm|yC oSQ}OZJ6mHzaHڧ$zZV)8(ZQB}.lx=\sRѥ޴b?ǞŔSQaŔ8x$;wb`_1}9oTOW#~"xjYǝ˜cz>}mr۰+q 0#'rwsƁnFPKr´~d@ q-l]G S{!hApz: n!`j,vt; F|h4O94@omKz슖˗.r5v"a6 XK/& ,'Sw1}͘)cİsz:-; H4Ze즦쳷xwW8qߡOBw;^Nh@}hjkl3VLc ݻ=PM\#ӻ 70WEZK^qifϭʬV[{|4PD[UX 建]]U-lm*FUMvY4pq ]8TرsI sWh WC9q |#ƳVb,圢_(xEJKvhYcU¼S=ZX*JJbH;ڎ_$w}KtڧvHD|;S{ՔU"o7SDP~ztٮI96rkӉYDtJ @ϻI\( ه63xuӗVcli 5s{sd\2"֐AO~Ɇ&VCxX2QD0p`O:wj'b)yx=U64Ķ9o mNCBdZw$nNO>DYO| ; ̾+5޿C&ӂٮJU=s]_uu 'n w *}[uG/g2ܑZQyK1[)OLleϞ}xQmh7l6 (P_B:3TO+/z8B,RjPf h۹htxT`F3qoX̃ +J8sh 8wP4lV,eDjmWLBRzuSg*c^CTq_́VmPk(Ses5<Pz,} ?ŤN.6qc>n]ux# X±(aQx$'YѢ8v*Slh`¹кh^ ]'@#P|)V)]PL%:`7| nV1|3_Mbx9GOӚ6~ITB[M(&NDui)B? vzs.%}~9[V=_ v  Sd$'m;]ͱcFw{0-% cOMt2}_s ցRԸ}(GkzAU(lu ?qSegt.¦h _@iS|Y fSa'p_SQib#ȸ"b8*voHB4V"tNj|IA6 W9>~񼟫i)G]::=gQPlpq=OȋINQ91}׶S)F52`R?E5}oXLfCq1ތ}xm?BzZEp0sP-I5zZ%ak40lUz\s׹ /jǡqV1sZ^}+Y+.'j͏cIl \^VHLHށ&6( /HLJΩ tz;\ן}Z-0?cSoo8xnF3c1b$v-Eb&=L}f{sxηD{_`ʾ)|Kfy#J!JVc}VAW<6}n'.֚ Bd NIq-aՙ);Mzĵ DF|J0xFJF Z0ɪHpfڅPKHs62Z+9[Cjd\ցFQŨ-Ӧ8JlÌv"tN;x8tpB*)s"PNkc99Q[ñ(g`W)#"@LRtV% ff-&f+.Y")8Y(ϟ/E@^e4&gƬu!ӗ}pb5mnވ96*ZMRLBhZ\|*:r*cfBtcKmz*h* nX#p(ӀšcSn[vr-UZ=X1Gyɘ{A".[,TZ"ުX (Tҡ9eMǡ\1pE/𻓤5J%p v#4Fr- : :nIЗSTbuyԥ[OL bĪƬu1ni\ʯ*J 8h> C2dT{!!<&w3j0ؔ$Bk!\gܮM}Y*X$2 =U1b)=Js )+0Cn( Bfx$}xƨ HVQNSlNf< ͽ^7`}=o'Yީ$cd|IQj '\kaĢu# &&H$9kb6H֨ H$q$^)ByN=m8nY"4?a,__g}&vFfwJ$WNs~@+j= .JL:H$мkN]顗IN}}{ >0:Bj*$8g4\ @v<vxj ްBF^0j'PT=z8xI:Cf4Bi) j:ǩ3Z-̝XE~q[ܓ҆Ofus53z>?喖FVVV4ߖ!`p1`&?RA.44{[Q6n &AJJRS!) Dj ƏN{MD [l͆0:z7 6v{ae9{,6s0j깚Lo}O)4Ҥ:dc`EGB+UR"~**į_Cr8!~-u:/EΟVF .wݻӵ]77.אZ%Z9.k\}hQ7߈6<bbBpoz3̙_ZV;f ݯZ}0PW`ꕚ:V)RmfbXx-F %2fm{w;VX +Kli=ڻΝ2<4 n L]φJt~ܡqsL܏\]Fj0B8~5v ڦer@3P >rFӌi \05"pHz_j~It+xŋph /G4Vl,}7z?r9.F_?эڶ~`06Vڷɓ7ii $)jEg؆keVV߳>s w'M,$P^S]Ǻ0VWA@$0F Wm[qjPV+>^ |mZ+,Lx\ (rȀ ;-]U`2#K'ēصkwדP˅( kZ Jm}:[)`h: p=U \q,*@ՖIRPP=jhED׋nĎpZ%%͑wBnPiʼnK>O3gVB Y]t8D~[mVז[e@Q[;w#?_]]pЫK/cqASM TևڮclՕ3+ooy3W9?gT Nsgqq]c0 AmZaadL <׌#TZX,U'tPk8YH M@jjyl5 3k w8LO U8LT2Y66jV˪! /Bd&n2=Ҁπn4{AsɢEXd 'rUff&SL!-->nݺ1m4N앪š?އ#3˜tOs }%&n"Ϟ?cj8 x -(zɮWS5_$Q_Ϡo㟽|NwCΗuN>QeGVz2ҥtp' 03 砸j  Y+(<}QHD^BRUdeey}/((P"##y͟?_ILLTL&(RQQ$%%yiZnrVu=e]Uc{([MC;Je|( _ձ[eM]P^?U2~>&|QQ>(Ged}R/W}?8eA'+IIDATrToTz}2]P2pJ1M5+BejǾ͈.t85+ToRRRxJl͌7H!ĉ߳+U .Zc}+ Dڴ"U CD!PkUGXWփF^́A|8O:<gQpaAz" `+҃4լU#).2@,8EբkulȠK!VZ*ĺvʩS Vx̥ )79 e)l_{:i)`+spt8;x-n4_C0&n.bek-KOT/uX)Ҭ"`}ňema԰kapc5h,Xhw L&bccYf 7x#1X,***ܿ-VZ,uJ[PEa:9[Vy@#VBiU1FӠ@zH]|M#X%1kE)Ū`:Pߖ)GjV몑!'8Xh-:x}I}9V"1XTT111DG_:$$ ׭m é`*0@!2q[V Y;a&HƬMF1\ K.e̝;wyC'vEj㪺O.]xx `K_{VkmPz̃ Ș~,TW[ aaqҘuɹ VHKYԿT?AT(?\1ݡk|L8Utc{@bCc hY.FC V?3be76طo̝-6vXVuܙ/3sLYf ]ZP찣S }`/*PX'@0CxkP4Ր~#ZCxa\F`l hď^YkCCEDvN5fe|I/GI8uRF%] !H/Gx D"4:hJ$IH)H$AwtVcIh㕍liJ$Ij4;vn{3!-f^[`\=z\jI%iXV`$HL`HJ ӥ `@L ]ΥjZdɦr/n0k׊qv`T_QΥjfZo2*sr xz#Ā_p.V3Ғ4i aPvajx#lp \4Mƍy饗s5_bI>}0aۋu8tPPNYԺҴӔ7^Ӕ4Nn_TQ֭SEPQer)á(&:(or{JJXk;vWM6)}UFһwoeAOhZRJӒ[/VfsP[ij)Hli֍P4#D" i4%$єH$ ẪllI䊠s>{*0ʭȖD"A@ ].~ϙ;[[o}ҫW/f͚Ş={j۹s'SLgϞp l۶MmjZ%lNxfګy׉GoV;'NÜ={s璒¿o:uįkʠԒZ-MKҰ&aE &|w^ ݺӰy3+|kfd.\43339<).bF̙3Y`O?4Vb۶mDDDPYYȑ#:u;ԺR\csi1ʭQifeUL—ww<qqqiӆ˗/رkh42j(~@IZRkIz=Rݽ68 >;wW᫬d۶m1B]ΤjZE׮Ѕ]TaTLcĉU`K/CQ㉉bbh~hm4H/,,d޼y>|￟sΑAFFtN:r1"##y9% .*Y|/,TE~:}\1* 'T|&33)Sg}Fnݘ6m'O \*RKjp-8K6`0ߑ ]Pf1o}iwM ~H$Fɍ4"F #r LȨa%ep':Uj pdFMΝ:t(׿;vI&5Tv$&pxb @RR={KBCʷ(? J"1h>n/mbcXHYϳrJ-ZĞ={Xx1_|_2ɕO?Yx1Ǐ_gժUkM+&7 6'T>16C`4sfy¿o<,[#FЪU+O<]_Zz5Ç'==˽ЕjGW^ݛsnIOOgΜ9䄶@$ ^c3dF͢Eؾ};{eĉs<?~S3d, =:t 55z}ފ+ӧm۶e֬Y9mƣ>X(4 `YK_niQѴѓ!]70p@N@ unԩ1c[oc=ŋ9x ۷w_௾Ǐ}v֭[ϩSx"c…"!!ӧ}vo֭[رch A"#Fȑ#HB:ܕk'H"i<}Z"n[&vQd索YNK#ȥeLD|:zTXtTitlexM,)ʬPN,HLQUpI-(JM.QUuU005Ttq> <>.t IDATxwX,ҖtA@i5-Qc$o13b1h1""cA$yݬ̺~{Μ{{/_P~@644 6h")S?/H?:h")ڛjJzH3vQ6ꓼk!Â䥈Fꂻv[~8Ww hJ^yF=,H^h.&v*a?&P*TYaA u݇7 [&rgn(zWRJ:qF=,G[ÿ9?9U.&vDpf3c;r*kmm.Xjl98p!l y~\V_OxL@;m.\>s+o[6ՎY|@^'vlxVw{J"=EH$AFAH$l3(n.I7lfU,(1#Í)f!$-6 1Y-L2Y^pvpATpzs<\yB$sD ;fD`Y -EGp w/҂ԗ}Xx1P?c&}ӁGסl/gQmwt '9' KgmT}g2x'c}9E T (Ї.ܜId0R3m$6aτh `WcC6Ԗ9ώwSY_&XR~u;be{/X=d/Tom6m(gSmfcC=`Qg18&dY;WaLV\ Ez;>+?gyw9Wm"# mFo<^0#-SV fRײvشQ?mk(?UW X}9mgɨCh&$@h,6KCЧXd)%7aur3$P![Y>>^STr< sNa 8O̵o `Ƣ7"$-|[o[# 0 #B3B >fN򉑛, H@.\vӧP@KS! z(-Lj}f  %ٺM˖ Vj5P$<# YKؙMx2Pc:"w^\ )NB~7bNaMhkބ1Hf`HG[D[$;h" z:!((E#-vR(}eA}Ny,_Tr_>`;VOo ޟwU)gaMR\-g0#n0x[SV?NȪZl&[ fl ;sBFu(hT:8GCgD|r3"?gy"wP탨{dw#BЍ"OݝTz {$ 9BAhEYOt M^qta$Da}zNqVyfMś$O=1\"ޞE(u>{^}GWE #F]⮴0 ƤQc_||Hoto. (1uR-}f .W͘=_N #!]A\9g2*Mv@+k|l>modR;IԹ[~m{,Z8%u>`'svD8JK,{sޛuwH$mk1B-q jΞ$$ix_/JC >܋RPՋkǠlrmѪc0u,-2 Ŋs[En6MiVw=#"0BE?!>p\xVJ e CxwO~dC-,3gm`Q;XwMvKg#5@hbl?EEZD}"8 ZėcwU+x !}M07퀗u9nY| }@m胨j#;^@Âle@ꂻ#Cj]z=$-2@ mAPդcPWSҎB-LfrAHaARD u1jc`,ْBL7$/E4P} πx``e >Ue!z?[۷UN?,Gㄯ]O@ Rc؅*0v!MN5ţ[PP)WWWeS0\;5]a)XNR[߅*0v!zDyEQ(Zrܨy"sLZrP+/ =r!Q wDN9!#`yEQѯ&)(G\~A>͘0-WWWW7Wi|0Ţq. Pob;7ׯ_Lell}vl{yyɓutttzdddKK ??{(''*GGGd9utt-Zd2? HyyRri prAAA .++h9E"EaƍIII[l)** {͛WXqԩsv/SRR={xxxXXX$%%q[JNNްaCJJ.޹s cX~CzzW^-5 fbb" eeerʉF,00000pȑϟ?/--X[[YѣGǏ >|r׮] X3fLHHHii֭[uuuڰaaa"JWZE __ߐ B\ppqも㏦&ℸIMMuuu={ڵmjjXYYffɓ'UQ[[㪪*#""ǎ5c Y!Gƾi uٲed2yРA ipaܸqǎ[nZ OBhw̙-L4i̘1ܟHo=-Ffіcbb?x!ɓ_zܬl!33F%*ofժUӧOёӚ胙4~ٳg 0@N9aHر#++ƍϛL322jLLLVV޽{DU QU***r.E?xGkzr<ݜ¦]8iTThmr1/HFyB9ys##}p4>z ɬ6\gJ2 )XN(m$J۱cǶnݺv?H4 \>S)RN™|xT 566߿/Ɏ#GBD>Kرc'O D3gsNllW7olnn>ydfffjjdw@677'O?4sL===El66M*kx '@N*XNL;Dyyy:thsshrq#&v9 Br1|I= @H)|>!Si9S,Bc?xZb6_kx!KzbS9"صsh Z#RD|TPP{-nF|>Ui9S,ߕkx J' Pi_Q!9&@r$L;zgϞ-bttth4F'ZpQ;;;TE;ZcWB\I?ŋ}=|0##/ Z_[[sέ_8!ɓ|///h <޽{D]pat:}Ĉؔ ښ8"~X,VTTT||<D +**>c\"*++]\\XbWĮ$o)@Ν;qI- nnnܙ .y S9hVAs?B UJ!(G0W @9R BTG޹R[Nr+f6 {lhaaqm9 #Y(ݠrR!QbR'(ׯ_S(8!]t)vqq_rh8ΕRYY8zh3eyɈܳ A9e@|7@\)b`'9rwÆ XC#C)9PDs 0`nnn]]]X%ןh;zqs\)GN ̕s(BJ+Eiq]+EId8R۷g͚ 9*))INNf2FFF}?~…ik׮yxxprr@Q%.]Z|9)))AAADOCȭX>44411%?6mŲ=qĮ]-GΟ?!333'' &̞-f~Dgl߾]aZ'NPL>uÇ~4݅MDY}&rhP Q3`BT+Xq\)J* QUzgQo9Qt'mmmaˉzgQo9πJEΝ;{CBB꫾>\B4񱛛C\.]4lذo߾ǸEL+׷髯Z`%Z޽{YYY/_^~=r#F1Br|Ammm]]]FF_|s`5믿f͚ERMGonRRRxx˗._J7Ç_roF}M@?r rnnnѡO\DDDYY?Gm-ǃɓ'WFh]]]]]]qK+HYYCyyÀjjjl6KOOP dffVTT<|,--ĄPEn=z4dkDT={fggg=rJJիWGq5Eg><|kJ<39;;9R__r/^4h^rǏ[XXl==}jJ*DfǏ(&A拁}AD[N gPl"-Ǐ5.DUR̕B8P `UE=w6EJYdINNg5))iܸqrATHX ˱>ׯ_x LnnnҥKlzcǎtvvmذR~DѹR0~&0Q ֤Fل2 >v%̕p"B+VJ5͎D⦫Q9}F޻w~ĉ[ETО!'D5A\){ 8kK4&W &$ 2kkkA4EJڵ /SM>*0v! ]cyR J1 QU`BTU3euм[*Rc52ߙ( >Gg[wF=ZJ3Q$rx}玀r.DU QUT&v_Ιxɓ'Ȗ@~~>…SUU#FarssV/('3*ݸq#N>e˖p;;͛7gffb;嗣G_n]||={***v-png('*#G|y~~~iiinnz͚5=v?~|hh(Õx w& @99QmjjZV++d}}}zfIDATάP'O^fM^^ިQ jb1#NNes̱4iҘ1cx>~8s.ZhNNNkֈH™(n(';nܸ [{{?}pwwVcbbN'X~F2C9aX캻O8KKK >hРYfرcӦM֭ : WW׉'.Y K;Iwy^rell,J3gN||<>4B<_iQŋ<8;h4&ԩSpB̨XsZ`#^ jα$ ,DCLfX٬N##};h$g*7Qc#eiٯe(*/漢ZZj?VPN~eZZ$4rCaaG:8Xw>^1|3Q@9]ÖGZ]cb%!vtt_^;Ҳիz==&FsOSYUyUva? T}:~t7ۂ?4c.U5ѥrC}?FFCضt䦦 8𔕫KDM$2000&}hѥrqSWejjh`tuuw3;j~RRy+?5ҕj@-X k xL @42ҥ[4GG뎎&ŋf@JsKDQT ݒ2/ǖ=>(7v=t_ͺwYEEMqqyUk P=߶滛_]Ir^Jѡ0߼]0dW-Wh:::-b2ǏG\x5_2xy% ^j?#ԴpBGGGooW!!9{FO^vIs}dV{meWb VKvR2BB\#]|`DEE%''oذ!%%l߳gOJJEJJJRӧO۷jÆ z%lDN믿?jԨ(ѣ?ݷ~Kgc:֦xVTrbں= "u<]B,+`>ļ`EJOΧK{67Ʃ:0f̘ҭ[궵a۱Mx۷o5*44TKKkʕ OxPj__PCCjCn… DHz̫M 6webGXޑ:} P,-`hmha}uՐ 0e)} bEIvg-xyy͘1}FSSؿUnTkD7_5p5:>`B<<<ӦM{jÂþzAy;ɸ"'NsO̭ʯ6_? iܟz|'TPP,UY^+Q޷o+P_9?7tww.'5C?gk]Oqd 0zI=Iʚ:{v;%X,΁_r% @‚&&&%%%033䙓q/?Ν;'O #N?DQ4<<<,,,55VX++@M]vuiCX2FA-$binn}ܹs%/ᑚzɴÇ ;%ܙ3g"""******BBB{EJJ --PDh{weQ|vf e̮zAJ:uիϜ9#aS޾};::ښ*17n8OOOaܧ~ZTTqS(;+hO2p ...HΪjd2y׮] Nwd cǎ*Xˊʊ ~@x9vw1o.LAcw#GARȀ-B4j9K`. w~5߅*0v! ]j/J^z}{Q:| !SkW5DH;{Zc}Q" w]c؅*nZZ lVVV˖ x.&&R*?,--{<ĝ'N/2ǽES|777lYˀݻEPWW+mrrr FCCCBB dv"[n}^H챫wqVlƍ X,6G}:w\foo9 LMMg̘\XXc??:paÆikkz d2-[ohhyf ɮO<<{{FFFVVV.],YdXh4---!!!T*:ݾ}<)`5h oool_֞4iRMM0dk.333ccci/\ؽ{7JcC%^|aéEGG=v꫄,tNڵkWLLL\\RSS{nnn3͛',){)63--f޼yhll5jǃ***߿?<{eee999755mjjZv-[ؙ͜9ۙs644L:u֬Y,Kϗ/_zō7>ĉ ֟~0d9;;{׮].\(..u3ׯ_ܾ}[[[޽{w &S 1;n``Wll,zgg稨+Vxzz`iSd]]]=}_~ӧ-t77Hl><===88x„ }]~~>6Bgg'6OQIIǚǏGft:!щ"H'Nlmm嵴~ۛ+:# TzzY|}} vܙ%|NMM]jՇ~د_m۶Hch~~~DD͛7l^^^AAANJHH000Gqʔ)׮]鉋[j K,ijjFQ{N}}}mmDsw;w羾<ݹs'%%-&&|zzzŕ---؄&8ϞS>}ƍ7n0a:J3:W__e?z'v=wҥqI(Ø)7|P84=q,@S} ܿ<=z4tPٳgdOqq1 cҤIT*`]]]LLLܒtzrrrQQ 2#G\|9)))Ǐ'nnnOv -$''[YYQ &TWW8 qqq&&&8p 7E˗;VD^^+O-8Ο?/pk%8۴ȄB߈Z)r$>ll%y+&&&88};0jΞI=G#{tvv>zdx q…ܹSo%1sL UE]C (EJ2 D R#D @U.DU QU`BTU.DU QU`BTMنGGl9da@ JΛ-˻~@AQu D: ?ѱ/d\rIENDB`mcu8051ide-1.4.7/doc/handbook/img/025.png0000644000175000017500000007734412067167647020240 0ustar milleniummilleniumPNG  IHDR+bK pHYs D%tEXtDescriptionWindow Class: project_newz4 tEXtTitleNew project - MCU 8051 IDE IDATxw|ntB@z& M)P^+v* ^^.(xQPJJ1"%H dۼ,lBy~#;9N93;GvB!*S߸H!ĵBqI4UwBB!G~]IvjB b|B\c.60y-ȡH89= ~+op$A5*.³:*sv?~BPUM4iؙAvd2ϟho%o%7(J@ ]~jځ?Z뺋' R@1||×T; ֳlk4.tOY[P9EQ]7R%g2CG !"փssSTBu9梪?o# JndRT4^.)IXxvDaO9czB` 5m%g\f)͝6V(ڷR)9njH<|b?ZDꙿv#Ѵ?դ\RN$v͇'EQuDoE;&RÙǞs8sp;:MnFc6:u 79+]+fr:\q/b**F?"귢y1F+\.^vne +\o֩_9QSdb?n4rXFFmeXhkޅ]O6uts*(J\cz|"qR,6F12_/Gԭװ\J6 >6}owi~5<.Vʾ 0g%fxKԈ"E_ ?D\UG7ѱ-['.rW{\S6;6Ǔ\|X.@NU_L!*W*qJ ЂzӵN-Ƚ#-q,VȲQA~m.%[LE)/TM'M )׼8{w\c翧\/4To¤Eo.-(+^z hiY~~1!F f~D['psΘm:FF-ɍ$q~!;[(z1d`1e1p@,MmA< L Ğu yp:6oJ4mߋ<[Ol+G'W/&~&j:[SKۚÙ8raFb0ۯAU]S/~ $ɉQM/M%ϔBd&7Vox*MG`(;߶og`+J9KapX͠(^^(~Xrxx4|g֧<6eĭPTrg,Z܊˳ȁ?_ST40Lx54Wç/ ᛩJ۳UTGU$^Unk=0ގ%廋LCK7`m<>dŷEcl 5߅NEqVe+3 ˕ozi(smS_PޞrghEeXs o40e9|>4:U!;<# p}$M~V ;|cG״V; t cpX)yz2LH'ܘ EU |VoR_5DRLo2 0*xn6 ka3byWX*i6k9/{sڨ׋ _vȞ?:,` Mb‚?v}ѸX)8g:I]؏Lj9ؼwȤ[o#/ºossϋ(46 v- vk.z/*z}kDń@!1&NeP~p]3e㏂*~K\JdsM.RWuYAܫt??Z8Pދ.j M9x3vr&n,gg:rq./%XIcڅ (nʋyq.4.ZHu<ǸрZ8cL!(K>Ag'׮TŁRD4jˑC[IM>G\cv6tۡ(id%ehH';- c@:tÙE?KBvz5= ESЫϤ;0(d̆^8zGLodFDc 29T~ߦ۾y(7P0V)~vQP44R΃O3nvj"h.OSyӣj*v7fqކ/gCd(*igZΆCQ\ s}qhjdq`^-͵PޟA-AѡPpe_!۪:NMC#W7[o8Ot˪J9+v~U^wނzε{o8Sܪ :6jIvCQ7nWI7=F }A]\|q"yy:?_·fᷭk/LR0hЦ/-[@jCGZZ:OՀD5jnͣVD0`L7GÀs+DZb4iMQѹ|С@7fdgoBtm6eyfH9|2SQ(B̀3V~aУs3x,+k;Q~X3~GO}o@6,š%ogDw쏦kV/ߠH}ؿm96=3U{Y;haW}j3¡_qc[j:PTŔ=9iĮO?ZJDՊj-rV5kn#}G["׮@CtAW[(:q)BvKӁ96*UJRp=Z\)WYY_jylS.z?h%5TO->J\(,adI9fPyJAl¿#$IQP.wupD,yFЬpb{YM:Mh?>^pΪ^QUTFZkb6Pm_1 UECu˫`ݛzO_ ^E)+.wDܪY(4En˛۠J@({(=!!El\Aw߯Z3feP.)j4u884=F3FOtX,yxҤm <+8 鼼sa.T-t߳4oZz/߉3Ь?ڵ&CSI:_gBCֽ<>,=_=Y޷-rkq9hxjԆOG[82ZY@д?:+ْ"SBPx sʛigϝ/1.Ɍa%11U՚P Ne_; jp$~)0aKu/Y!d ymF8i*vM%ECA8h]S L~x "Vg?w3+ɲ{W966#U L!'[mԙϼY;)+`}.Q4]Ϲ`ɒ%ٓz̙3_cL2Pۼy3:uF 6> ::z͡C>|8vva2J᪤x8p קEO%u-qc g.QQQ0d+r-[?ѣgϞ߿_ӲeKjԨQ8w.EΝcԩetRZhA͚5y1Ey1AŜRr_Zg@@@@)_~5r O>nl/ܹsL87|GҼysxN8̙3Yz5gΜk׮XNNVVV1\{ʱcxGyJͷG`x{{w^V+{o.R_͠A8rd8"<3|9rڵkOWZ~gʔ),]87o۾-yk.2k&N  g1J@dz0 x{{]\璓,s9UU1c^^^,\޽{ӧOLBIOOf͚رڵkc6  11Hkז#88ع\y*r ,(={2{l4M#66ロ;wE:uYfrZlɘ1cxXhqqq궟Νː!Cڵ+SNiӦ{_ZQFѪU+f͚< חm`& 1G>˥LX%?e3َ;qiϯ׃Le7Ho6luF#iii{yf!SZ~fҥ߿ NG̵\"zjH\{*"1s)$,X zSo 5~^ǐ<\p[#_ӥe>}:#GdҤI4k֌|#G2yb[.o6>(ueƍ̛7l4iˆ#;ٺu+ܹ3фUYʣ|!BdCt҅h׻woVXAÆ Yf ,(!f̙L0FqΝ{Ioߞ^x|+ IDAT4k֌z!}i2x?˽O9عJ}njb7ߌOK*¡lv ꉿтޞޚ#Ǘ3+ ە˖-c|Ϙ1cعsg%e&5OS>kcM9/^L fn¢^)SPNnG42220 .XQ>)))ŞQ*9Z`?2qD>̑#G4 """B!5cVw**R5 Ic_g2x`ZnŋjoJBTQFU{m۶:uG}׃i`|ZȂ[0E݉( 8u1n8Ο?Ͼ}s>B!խJ?ydxyyp8馛ҥ | p,F!խG`ݻwgĈݻZEK!S: C}}}iѢZbݺu{i;vqn?۷oO,%|AFFF_pGѹsg"""hҤ &Mr{VWUTs,Zkگwԉ}/f&lEPP?suCzx;jUc޼yL6|r0`UGE\/MUn:N70PhիoidggiZuV/_ΨQ>|8+VKqE\سg'O7(3bN:ԫW^{JRf)p}4mڔ;8{n\>y7nL 裏/Xbz+jՊO?:u}^999h/Lzh޼yƋ)n;\4KiƸvܔ㲼Ti.冠]ƲvJwE40Z~k׮p l޼~Er8X;3Ç_Hio@u_z5?d۶m|E4Y(믿[otRv֭[)l;òeعs'v*3M曋t}ǦM>/???=JZ8~8&M7>J磻qcJ˥x%9ʲl2 ¦MJ2ZcicX;%" ФIBBBn;] ~7hѢ111ԬYhY\cʔ):U +Ul?6mzIM&p ޽z깭_0Jtt4/UVI޷~˄ h߾=޷Sի0aڵ#""^zŎPvbL v\ OK {gԩlڴycM1:rˋp+%,зo_f̘'ܶU4-ZDKUi:t9q}^J7R䔘ɓ'<m v "ݫ vJWɷvѣ/9pE 4`ƍF4iڵkf۶mߟ]Idd$ݺu#,,7+Fy")Iq]卿zj&MDZZhԫrRzv| $'';!V#Gp233?~YYc7c $&&c2|p֭[GRRc„ Ҕ5KYΫVc,v5k0x`&Om޽r +svJvE50;v$&&Knn.f jb  v* AX|yb5>Hi\ผ?FڴiCÆ 1P.w[J[< 6ӹsgz111 6N:ѣGFQVZy7|3=#F]vjIc<L2hdݺuγϫ.w5KiwwsLeɒ%,^_| 60xOpwQUIG2N<6LE+ҭ[7:t(%$DanڭKBƍ*6HwXUv;xٽ{7'Nfd~*>ݸTku+rׯz)))!9X;Wd?lɒ%DDD0h TU!ĵʆL(oIBq"ȄB\B!i`Bx40B!N&yh۶ uwĴhýM !!ǎ31m߅n=Ͽ8㗴;7g~قEtړV 6#CBTn`+ZH&*z֭[q>)'+/];n֔'zƹqg&?PzGgx.:ug ]f !$}rJJ QQQOᎡ#'NGhh(ݻwGns>{nFvڍbaO:uz KKY/ל/ޤgdj^f !$}3O7fqԮUe@~Oj׮M_ڶi3ˌ{) >M?Dݩ[;W`DG7 !G~w?͹t2ϟ'zkEyBWl#0v!;5A#3B!˾/4BF`Bx40B!xsVOo!E&L|IIOJfΘ۷ۉiц{@BBsފoWѭGZlӓleefٹcuf\ڶB}_?[.]{ӊ!FĹވQy)lݞAcm u0ol˔˕B\Ḱ9r(k`ssw9z^}Lv5k+ӊ8ON敗_`ϮD7kʓO=@ܡxͷؾs/Y`>:?ǧPNqg&?gx.:ug 9ۻOnѝw`M{~V7+8TjBq.cCp80LNԅ#+/=^yrtg&?E.u㏛޽=zt_'i۾ ]CӼy ӦLRrrw,ҳgw~ 5k`6Ij֬hۦ Z$** 50%*) !5Un"SJIIv틕nPP >>>gKJJbܻsMFFIIIDG7uNoܸ7*5АPt:]EqNWO>]_vh ,49h0-k4ޗB\k΅. =44ӧO;gddb6 "drN a3)8n:pyw/1|hju0Ț5XaS6 !ĵL[zfzdb[٣;>>Fźٵk7y?e(€}Yb%q"33ftb;\s.x{{WzITZBqbƍ1yi߱+gxW,Wv-^m>-[w`˖m̞=֭[2̈́2kז7t4Æ!''N3~ v;~+W.6B\kv4R<OY#Zs|c׿&aE~!ĕ#ZNz۵Ԅ+ 4iii(t+ !ĕk`?1rNE!D).jyc 4B חL!A!! BF!GH##6mD !VݼUl۲)3B!o/~h^BJZr .`Bx40B!>>;TfBQ1b_1bΚ5kW\6Rٳʕ+oػw/'O?>СClذNѣG+5_~qqq<#|$''Sn]|"1;w.)))jՊѣGw^&Ow}ٳg9{,%(Uh`~V+j* ߯_?vEFFǎܹst֭Xzr;{YdIeTUeΜ9`28{,'>> sA9tЁqq-zjFIϞ= 7dڵfxW 0x vMZZ_5sm۶%$${;{ !Duk0nݚ-[J:ur[nlܸSN1|pt:],YBV9t25jp^5j'N`ԨQ2j(fΜw9Hhhhϟ?OzBBB%%%-^BB?,h4JBB65oޜ͛BT+ `ȑ|E ~evժU;_q\)c=z4qqq2o޼2u-ǵq)?""SN9ߧa2Θ1c8q'Nرclܸ \666 BT+2d}+V`E~ZÇӳgJ+wb04 ſ;Xl Be^NBq`|͛pmn{):vhύ7(wȈp{ifYT:yGL!Uy3_bbq0.Ç=vo`q-ĴhÄq>) I̜5sp;1-p}HH8oWѭGZlӓleef-y?CnЅ;>7sPl͡m-\/O>sƞ{LJl2U5rQj׮ 0чr1 5kWq>)'+/];n֔'zCƛo1ٱ} Ο_p|t:\3_v0og|Gl\?(1w\+ٳ nkY{bmy7ȭWcB.cCp80LNԅ#+/=^yrtg&?E.u㏛޽=zt_'i۾ ]CӼy ӦLRrr_cu|'NҥKNG!JtvdL#G T֭sx2!]u5TguQm@a*Pe \#BUE& BF!GH##BU~rjr۶lbгWk*o`mٔ!EvYrZר⊔XBW##Bl#dfY;7!UȱL֬?G˘ْ+oXp70~![lhcǎח5kСålȬCѬY Ũ|34>j㣍V>`ORͳ=ngȠf4nHpFWwNWӔo<2{N:(L>ݣeUT͚55kVu!":JJ& S_aԀڴ dl;8u 2RfCW+ &--9M7ĉ;,m"V,*{KcML4WcL1&ј5ƨ1Xر",~n\ S._Lǎpuu%33cbaa| ~~~P~}RRR ڵk9r$}Ȉ-Zp…|n:j׮1={$"oDDӧOWջg066K.ܻwO_f͚2l0RSSB7X>&@xkD&6deAv6C2l,:M\|q =' ߟ^zpiwN||D[oqAƌÄ 5ksښ{l2¨U*Yk׎֭[SF j֬IJJ ]veĈ$&&Kdd$^^^M__ŋSJIMM%<c\|}}}m-X_ϟiiijm߾???uy󰶶&>>M61|pXt)Vk셨 9`Ʀl<ù$2!' Dn'PYӫ`Ҭ&'OEbصzd̙3Ntt4֤)Pd///֭[yW000(u|TR2tP#s)rggg8;;g[QQQԩSGU333bccꋈgggquuĄ8"""hܸ1:u*QBUb.ul[`dgI9׮AvWJ.+xyhwB ܜ~ Bٳy&ׯ[+Ob IuC !44`.^KT_XXRݻwVZms]t||<ڪgggСCsw֭[ݻzaggǃTeYzuBh_nN. y7#ӨFTgJQ)fFph:??Β} 97j:{/%ѻwomƵkTCLÖ-[=z4qqqjyFFFu9sիW#̙%M6So߾lܸǏ̇~Hn033S+קOl‘#G`;+zj.\@BBӧOW"+NB304ձ>ai%'By%ӸNF|zԬkJ|SlRRR*u֥zCwi„ DݺuiРF GG"cÆ ڲm66mڄ~ޗq,Y7xUr]~<ԩ5jvZڴiܹs֭NNN8880y+zpB>-MҌrGI|l%陹$Ŧ 2qs1^m"$Ϗ!֭SMqU_|Vƍj Dc oLjժgΜiӦj۴?>\ذaÆ<>oT߿?woo]xw^&upr0 hۚ$eQ T rJl2Ryp? m141N&JMMҥK\~___=&ϷYϣ<ẘ|zӝ[hL֐$!iJSrIM 3ӄoeТCX & #FdYM6U iRQy19s={nBT|ət}qrs} UfCNvidfE|\&=7Tk1M6lÆ +SZ"))9E$( z]I@CVL232 3=L3sȦf{~B! tc{3mPjZK0ۄB{ ƧcEoV!]s_+[!\*B#$!I0B!4BB#B#$!I0B!4L +BJ kٺBSt#w !(B`Bh$!! F!FHB`Bh$!! F!FHB`Bh$!! F!FHB`Bh$!! F!FHB`Bh$!aXb"g:I!!D'G0B!4BB(@>Ī7n4QBoeJ0kBƍP*s8x&֭ZҴiBrCd(X[[ͯ ʵk2M/~ض}'/wQ6QѪzk^ޝh̃>$--cN׭7`1DD< ++>f/G.m?XBs=sJ7nܤF\|to 7o9_ <#3g}@7~鿜8vȨ(h?Y3?l \>`{zs֭n8?B+ِ#144DTʐh߮-ׯ@__YАGnn ϶HOOg׮߇ƍ٧3atu{˶$&&NdT ]\ؿw\U)pZB!ʮ曆}[C,,,R-SaRƿXY)055%!!h\]5hP toW2cc#ճ;|#J_I0BR)۠Ki٬6H0z*!9yJ>}/<}rjӧŅ &Z6p@G繎37o>}'* Zf5ؒ(dHeO7g_a7 ϯر~j 8;;)?sL>Jx{{S^=<==Yh999jxvn޼CZXGQF[ 9tZQ*߿###ռo͛7`ٱc+V(s rsssB___mz,YDUv̘17;0dU/_V;x 8::2`Bcھ}; O>l߾]-VBBPd###011C=hٲ% >;wT* '!!z B-SNՕxN>>>>Ntt4N~accäIرcҢE j֬I͚5S= RSS155- (+۠KiЖ V`!Xc斃kuR07(LQѣt JDDDuVn˖-mWWWLBZZÇ'''RSS222YfjLϝ;Gz077 ..+Wb ڷoOժUi׮sEâL1w^մ?}`ӦMՋ7nн{wFR$22c2|n޼Iƍ7nw}AMRɎ;xWӧw&33X9r$tR 100P522"%%jԨA54iG%==}}}~gW{5LLL֭[NFF<ؘQFѮ];~m!3w\|nd F<DwFDjc`Q HՎ$JE*UTbҤI|g?777{<V.44/+WHdd$W~#G`ffΞ={ﯚ޵k={TM#ZjPV-dϞ=j Ąx۹y&ZΝ;ڵkڵݻӬY3{=-[Çdĉ : Ǝ B ++ 333ƍǸqb߾}L<5kA\\ӧO'22KҲeKHKwxxxΝKfx!NNNEQ6Onx{z+.:μ0ޑfebG2I*k>bEM#E(8jccc' +j ...Ekkk5jɓ'Qmxښ<륧~z\;w| @nسgkݿ{{{lmmy׹p.\ 88?XY=;;֬Yî]صkk֬a޽joR JR5HАzŹsT'ԩ۷ogjOOO.\@FFC ݝm۶ @zԮy&NNNLppZg ٻ+| & 7nо}{`֯_Orr2_54jԈݻcN8AFF=ӦMCOOx999iӆrA駟ӧ111;\vd;6mCsWeI.P76GGGF5w%&RS:Nٸ2_7|y{ot®] $33e˖1k,޽;6m"44$͛Gttjvڕ}ӽ{weժUcȑ3GǩS={6#F@___UΕ+W,_=zot:u舧'___OL ԪU'r}ZjUvn߾nݺ5B===uƎ;|yZ&M;w.SL!**vڱtRxw8p 4H5Lu7o-BTw}+6m"((:mܹs3f'Ow7n0x`R#&ёQxK>FFuEuMqoUӦM#<<www/^5jXEL:Ç#D-[u{WWWRSS?R5A4i̗_~W_}ILLVZL8W^y}EgbnSK )*S|Ϳ=6Y Pnݘ1clܸݻwr2$%lƪoS.n;}H۔![{}z~!eXnݹ3MJTGP8VPquFHHn ^[J:4:ٹ[m(]>ѩs0{O>̞=*Uh;!D!Jsr99b۷ڕcO 8G„%}c{r$#9BT8eϹsĩ7oѪu{?{˶]\ҽg_ݗ΂2|_ ad>r_׬9Tt}+JVݺƵQsZG"*:(y_~OԊT4lB|||ϩpIf4i7rM7mf1n$}QTtԍnhՑ/Q{ڧP>]XӅ~B`֮sgNլYElXbΜlII2YV&$$d KN9R _׷#;}Ν9ʼnc3MNA``P\Gkvp/t]{/)))%٭FEos>_׬eS9v3)) 8$dmsjwǏ,VŬ,Ǝ>8y0Gyf{R'Eżra-Y˯:Ox} $s s K?ko Nnn.999Qs78v~zӨI FCDC]ΐao2t[P.mѣUqWڶQs xo/~[Y)Y!,,L̎ۇ޽z?@mM4Q/Pn]ͯj)ˆ?6qQ2kGjXv+7WR8T>L_a "k׮i֬^IξѸq#[;rjm<11 sss wQP[xH||ƎF֖Lյ! ŪY%qqqz ˖-]6TjK۶|:cϔhBtAOV ;}FjתINYppn%'3i̚gN֐󁪎˗β-ʕPll9t?p}~X#kAxn2339z8UJ%;߿/{`dff׽VM{ݻjԄۅ19rnѷKgAZ׫}|*о9WvԪUS>o zG:tߎ/8WwFL~ǎ ==}}};^IA4Z^GdYh_j2' Ί255ı1wΧ6zzzlc]u?H^x{{qoVuϬOf`hh[111faӁ7l]prr$-- sl/?FWşJfWgccckCUsjW;},<&NXaTwr"5- /vEmmcMbҿʼn EҀ/[d]MEnqqTz՝QM;~~Zྛ, ky[ʪ_~e͕QF֭GՑ9}ֳ} n~BEP5 ]pS[Ugh:˾εU~vX?%&&T-'IMxĦ2l`v ֭۴m@R#vq[[YʩӁX[YX'X,=?7k֬cԨƝB.N)j]cccrssIMMt˯ܾmmmN?-2*6xzz:zz`bb쾳055e73M:_V{ y'GjOչ'NVI11yDzz:oh>> ?m`9PF'=;^Q#7666ۛsQ*\ V\~# [?׮M7k@Ϟ <k7upmƎ@ZZZ==wc׮У8>777/,*rnЅ_oCzOںѧq-O?QPr3lĨ<~3{дiZjIKw֭vʀ~xxӦO/>cOK,\1 xMjժɈC3+nݎkâ+xJjXo?ڥ3;hC5Ɔ..;\򄡡!uj֬Ɇ?6q-t'ѣW?~]ѣF0xȿCfoNgagoЬY1V}̏X[m/;aa(,-?bmevΠ6CZZŻJ Sj_}93g׬^oڐΧaC(]_1}x&QQ3W:E' O~gbnSK )*S c?` XF++P077gA]dB)o}iea|4_^cAP[A$EW^={FrPxS_|.KI0:ή*-Jtͻ=z+Q񕧾4]/(&ǧ>>S^t_j4TxQ9Ip2D&B#$!I0B!4B'nMӛԊ{}A}(M01AawRv2iߢ<+k/sr!w QI"_rF!FHB`Bh$!! F!FHB`Bh$CזQDڷt" uQ:(O}J'~pI*K5k֐gA*U\ׯ_޽{t)ϲX8믿^E![TV:`W{Nm^*Ue![TV:`'FFFbjjZfiiV阘槦r]֯_g`` PҾE y}333S0q5xW100֭[ܾ}[ѣGsssINN Robb :tPAP(Q1IU:Eff_NNNueggSJ 44TsEEEqu8{,OԩS۷oANN.\رc%zN-* us<|}}*扆 ƚ5kP(4i҄'NpuÇSjU:w 9|0888{o}J'1bD 4Hjؘ޽{}r%Vv3Ŋ_T.ҾEeCdO=FqKPm-*+H0PhzQDڷt&!X$!I0B!4B'"kҥṘ8qC吴#%Km#>>^CNIVq:ͯʔ)S^@4BXk=lCpmP!H.?ZO0 |a Ft¶YسM!?~Cw"љ F"G^LL {e۶mT/_k}KNgmF=vX@NkLKG'ȄؘZjFPPM4rdܰxbINNJ5miiIjjjG"DE tFKNNiCC|HV+*i# FI'ksrxa$Q,ܽ{W5۵Ífb_:`DTZ4>|׮]F ]>)i#'EɥK_I LҹD!tF]vv?~N,*i% &nXe[!nXҵo"b׉| fy!QH|kȤ}L F*7 )KE*(rx$Q' JK}0B!4BB#B#$!䗻EE&[i4m8[7MQ&eRڷ(4}#Ə`NfQI`rF!FHB`Bh$!! F!F*2@!DAJ`!r)~`!s0B!4BB#B#$!I0B!4BB#B#$!I0B!4BB#B#$!I0B!4BB(+)){i; N~P(jMVB{${@m!v7ok{ zHAI)AVBL!I0B(EIPt!E#<5넥L*-9 ,39Nmkҵ L#wbldj$KB7q;I[NTj*:wL`DEE~ƍܞCyf<m0k ֽca>>Z wxb~wBBBT;|2666\pqƱpBBCC/Yr%DFFzj4i}ϟ͍{9Q}0"q+uw6 \/@R2:z4S|0.鸸8]VzuHLLdȑiӆ.]Dƀ9,>ncoP:vȱcǸ{\֯_ON/f̙уo> *Qf5^=== ͛jO:Œ%K066f\z;w_1tPO'r 7oƆsq?ѣGYvm!RQIjY%6l Hnc՝NKT+ bذa۷BBB4iS]lbbiصk/_~Ϫ|Q{ u0RX‚p| )eS[R\ Zj91cpQ8ugfĈ듖9FFF$$$ᅮUd|ݻwgӦMļy󈎎K.ڵ@233Ylf*0QK|5pl@CeCN>< ا`Lv(<~g|WܹsBAΝٲe je7n96loL9CSMG.p/$Nu%̽.<1lŝ;ciiӉA1i$^}U݋kfȑ̞=?^zz[hԩS>|8={5 ϟϴiݝŋ?#=>sJd\IQa*:KBlmYsuvH/\|CϞ |;8ԶvHRgn5 I2AAxq.>¡H!2Q0F޸EJ\/Duv_m'HrIDZm߳vkk\wpYYr#*,}+O}> m"r7YA97WRھ,CK&b(b)TH(.Q,q#,Я&#ŝ>}񸸸ѣGB֭_+[rЮՠ:kln.Jz]sJ+^jۺeSs h&WҜw_?8x Ș_ܼy3AAIψիW;^4jzo7Qk{)yt,㔇Ν ڷN+E$qOԐs 4-'OFP IövuHVcڹsԩq qO.]H.i؄3i#@9Ѡ~8C=ooaP lEvO[ijUlf9Ȕ]lT£ŒBSV9Ȕ^` ]zDx$N88Aa!AN LaqL J}4ɄV+)H9XVppkՈ1Xgf#ʱY10I 9<Aه~!AnӮkg泺 P_c )5k,y:DM@ P獻 1 M剤2 jAhOL/( Ŏoܝ|2 ^d>saE(-Z;(K|1Es:l~rw0 }1@۬W*>CQaXz@ {7 ?Q(0, +IZMVb7bv@(+&)i%+ #W\i;- ']~uȲaE 8OA'ΦR_` 9VX6, 8,^`p^T11#tx<yw< g )eY@ЄlEgPnM ,=D&&PHhZIR(||0 BcQ#-̨J̴Cݮw#9~kv >#A :m;/Y~?c7b?̕Ġ2lslA#9hblJ*-G@ &?&BgQdAECVX x< ˲l -u8`o'm_A8 ߽{0pRU$4S<|dB5 r77^o>CQ,'GKJPļa Y]uEa3OgEy`)Xy[{'IV+:^KU? aS;ޓty$*%.G1G~Ӝb٨-2OhrJ֥dH@EAA`1 E0,"gF8I$d7ADIO!VG^X^G ??J%-(_TM, vPH:[$`˚ S?@Kibtn)^`)mP'q4hrܺtM~Nγ)דEzB 鄞ku!AY@PAQE x §ia h.XO>u_`JZiThkus /SBy.CC|"2!Gcq#)A+Zx#!duOf8//]b<*L&p̙/8V@DKI0wnn?~Ë>^^ma-bwI8A8N+/'Kaq[\#S[ZbF,k44MLfEPVkyzU.jΤ&ڵ gF:,M|r[A:ȃ:P (0XEx< 0ufkN#ubvb = RpͰ2](R vN/])V&B[MCu*HkR uAAqbєͭKN{ǟvnj{jøDzssB!.^+(ijUʝ{DM;׸{w:;V݂[OƗ0 (w8q@soa;n+!!kH*5T(+B< "pA jG{/2! WDiQIGV lֿ5Ux{ t5:w[.ð^͝;BQJVE6wrնj=6 ,|qp4u8rpN!tz8rpN!tz\?t˖-6J>WrpTIlllF0SWrw^(h4~ǎ S8FδpOk_իP-y~5B&d6Yd U}zژ4 #]!ЋD*p&d(ÃzDHm{sUk$IREIyyyvZjUάƌ4@) /{o VVXDvg|1 mb;獶 284?ShStXm&doI2]&F[do`PZrIT*M\?/OgP;Wn+0Oޜ :o?E0k WIs:7:Ʌ|=_,u&\}iJHoVQ*$~^xc~/}'M&Wz5VE1*w6V\tٲGY#w){*Ac`ch ucު}p"Qi´TaR ($ɓ'O&&& go8 fԠASώslѲlGZ"1?bkU]ўc)>ol1dUhzSHR3u]Ӱ~^7d}&ZxvgO7A5I6Sq31zs;`6{mRY4$b*x';^aiècuG,kUU1>cş:1f_TwlX""~q=zСC7L ̙Ӿ}6m,^8:: ]FѰ,51^]UB mtzI;v?ꗼ%\}~:tJs[jժUXeY֐~/mᇡXTNm,v n鿶ͽ}w M؎D/n306uN2s~Ȣ?}HD*IGRcY*7VejٜuiQdi'h>.ckiO+VeL-cqjXb-'@j̵4˲,P.re {s'ů}pRAIlٲO>dɒ%yyy_㸸Ν;ifѪUlNYv_l)6N}3ʃ2%HiZ^Q! = ryw ΌE8RME+'r7@ oKoMN.dACO29e#HlxʼǼ}HVu1e9f ZևUjϙ0 zJ|{zx[wRpeʘ*s7/X8AlR3D"xIIIvԉ$I$SRRa@=^޶cf 7- 0 F2T޵}"wM]_üyW}$`οE$wK %^hЦ{n2I~s!}O )a*S9 dq>/)Z{ p14Z]-<1|ԉjd)GLy^ᱟm7'|ܣ&4-f.6NTQuƍ(Zs9sB0LJQ\_7K%GۼiSe?x첍)$h,E=ʧ&2g~W>){Ihcأ!6 F0F ÍHIߧ} rϯ8æSK \܃< z w@gvȽjS'X@'pg$]8z&PgaG~߉NC[n}/^\thBlٲ˗Y; }݋lask"淳Gm]T;|fIlx?~㣂ܽƷwze'!mBnKw'69_R(T_ֳ$e|mdUïcudqWw2;Te#>Yu?&?|vCʉrǰά`TBu5n*r쵯$bEpAeW[([~O( >8ŝ;w6mDQԝ;w-Zhx<^^ ]s^xUn[m랜8ϻ\n%o2l8e>>vzSz~[͛mdY]$q7n8jj*??e˖Ƽ6s0UK@  rE>|>&LP(DɎ$I 5w G1WMʛpi Æ 6dȐSFH4uԘj Ϡo\<8bjew-#7o_B$Yƌ#8 !G-wP(ܺu-y*9g̘\Q>xtz8rpN4mZRW/u/88jC]Cn98\C鐃p:p=uA›2[G\u?TΠA 6nQ=, $b&3 tlHGaIZG16 D띻dxi'N!˲ Bekء!X%52* +G|/Y";{5T7'Jb88' bV(P@j*_A'oh!˲$bƟ"[rb$N+dMI#CK}ymPxLll=E`hDKt ]O􆶊hXPvjG+Ċ3 |>l8޽ϛ CE;*' 59 C3f\23l ``ىQnዶ!ܤXT']%WsVP= P FX`IH҈ y满nwëOA)8 08́Rf2lXP. `b ¼1cf08 >Xwr^=)"Eh74x#ʍC*dH6|?EPpv4 i]EfDnf5'gXe(I Ty/6Bl9ēX0+IR)HВ #z`BzhGWhV}!Aq ` X+V@-,͐8e^7϶ ߆J?AG_~|M"*6I`Ap FOE)siq XtѡB"]xXr `dyN I9́ob݄sH"PY̴h`̀2b,2ZX5ph)L:O8&x[xa`0ZViY@@f;C`]s4&2Y(K.a=]@X 0o̭Ct= 0H^1y`J7<14jfƂC;9C7χjWlM&YFb `7"K,{`Ahz 2M 8\;?I4&C#\ɸb))  H77.́BjIDfaY`Xh IX4/0[Yig8C"  K֞VP, P+X#4C a@dmY~]f7`o[j]gEiGA?m&;Wc@mr4#NO la1@ IDAT@| p@PBV|sH/e(D 4 X*cmA0,C@3@3TJMXtI_h&i `AP'I1&h-}^ ^cos5 $ 7!p*^ ־ SG`t{Al6$'y1nk j0ͱ -Ƭ*wRgJu~+@iTб?l7-OaI0LS#Fm2\O>7/y4~26:~YVQuA]#I]eI{/[ _1$ݧEt"Y&%Pi7)TCzcJxHWC{pH*Lq*7wkZ.t`b+(ֈ3R>{/)OH6 gslVSy+z5z,V*Dt9@Qsh=^\Qp=O5J*1J%bVo4naN;uO"IڲeK WzΩ>󈰲EN,sWQOf̘M8rp{eXtQ_NO3zAh0+. Ugr_NSlX|T<"TVf3F (YTSd~µ{MX0jlHUgejRBD]f#NfBGp)V[' V5XK. }1B+YIxo=ʕ滋0zH-q(NjpcO &Du|/`)~QZe2KqrEら`2[V4L4Ih?UΒ3kF\(ȶŤL3tJtN}Wn\MLMQ鋌 uff(*cw'uXTFU} ° "Eh88 DqIrgQ>R1J`B!bFPU4&-GHEEF<]gxXcA'b7ޙ(aP5eCBL=._dyB)ZNE q' ٕKdKw`͜uBCbnȩ9NMC:B#\l|n.?L( iʀһ / ZU&5Nq}zp.,F$^as8n峂D X. T;k=" @.!x+Poj23,1r=ZE3JB[H H5e>gֻQy-#GyV2db(06t!յ2׮Awx֜@ՖDs+*6ncsxa5ZӀE^(,4YZDpt1AFZH#W;I]%"6+ޠfD~ۀYpo&,sXGI+P(<zul֦9s&.'t'Y˵pV6+– T UTᆑ[)2ʝO1t5⚿f*1_ Qu8~9>>2Zh21=gxӠS[{RKcP3u]Ӱ~Z{8 Iy粹 f'`{iiiF;m9c{)V'/:WccL{)oO<~)r'( ;&e/$WJ4|)Ds#OQqQ5ˎ=zСL&si߾}6m/^MwnX :<;Wxxx=yqͶ9W۱? [I+_s;t)_?`eWȝ=nUin_ߡO&0DnŚq^*.̓O ,/[e]-8 E K%˪7n,[\\f/4LAaOSLO Bὸg6a iƊu^Q>?͠q,:B `֓1Z($ͱ#eUasΦM(s΢E4 ի׀]miӰض)66vM[~R9%ۺFK<ǧOo)bV)7o/$q7n8jj*??Yb{mK'K) W闲s;[D4gϞ=aBa&$$ںi`~@ٜa1N40 6lؐ!CNj4E"ԩScbb\mZ4m 9Q7owZ$Yƌ#HjNtÑBp֭N4qh߇b|g&YΘ1WMZrpSi ˘ kfz;.3;949%Ɔ)!{ HzOɬ1AU~_\oԷo;f%">xNv -Z.Msrrڵkg}vAvrrj?KQKV._[_ٮ_1]1X_3|'shU㶌JܿAʙ2_䄛',m }nxQiʽmzK6>ލYrCݽ&+ҎGGsj|>bb/xCˤ`~xyXreG˪u־|""–: B׷w8_* =?|}+#W\v)ҭ"L_^ݺY(VH z+RX˽̻%AcعoOf-}XRS-*s?5tK翝&]+C`YAJeuUiiBϖ鵺>^7%s dW.6f*2(0U3{`\ڴPP,@ߓ.@,EJ,` 3nkz{ێj=pg6oC>9+N`#?}ػ}x`ho#Jf8ٱmG|0ӽT=h!~'Z56ZMOuJmrO'KyVܷ wXZ*#c\sPz!TQQGW}/Tf^IN&nۜxّ jቢP*6PMc^3Cg59kjY߿h NGdsM+K|}}͒:P:=8lp⨆&\r188!tz}hyÉp!C}44N>p=98\CSCD(l"p:p=O6(rYgWyׂccC'7I -A@Mgpak<"߰`RM Ӄ},`2e7I̛G[˹]ڊVꎜkQ'ֹZ˯eev_m,vh扢ltT\@S_g' mˡ4eI+2U?qBڽ&F,5x6~$NF+'& 譬owVe+{bg=;*}KfölsCF7M6ʋmvvi 2qy)6[:c5+r1Sirp;_ҵ8+ <p4Z|=M3B2e Q5˺dAq #IIh@Tcf 4,Co-7ƂfMrU6)Q/7b@%K8Wh_*mGh,T`K&*#q2Jd"4׊Y¼:2!tӞ?/fG'm_\l܁#<.0jۧ {pSQba t|ݩYsuxi IDATW[͵}/Q3oVj&n5J6\>3 Nͪ s*M(/G+*]wQUPr4SB[ Lr᪖e :08Q?Z]s:ƛɟ4s'5iې?G**2:SC500 :T,o!ai'ZkuhV)urVֱZ n(*xJBTCg5ؘoq﫪BQ"P_# DI#Y;hPRt F<(0=\,~3PӔw_%:'MQ/ĂZV'fUQ'neU7A+[Oo ~{_25oU7 oA#< 3?V&3) y:ѣU4-TSN۞8aܢf6\٧W1|f s,^(Gsr*I2l/?&`Nu!նڲI=Qa<>sJBuĽy'X4쥌BUNǐ`AFZH#K]eakxJHj/L ]Y&%0u̥7篍 "eUW1j٘T_鐃p:p=98\CSR΋)Cq!tz8rpN!y*t8߆2}HW_m{]{ ؼ?%K?m[z{Fu|={|h?.`ޥ oѷGW5#'ԇK{N~a)?5_m-n+?pSJ2rojڶd`䁳 Ö&g_춅w&rNxkꗷSr@ nW:ކ{/}*WJJ΍]:~und}LbFpA8 :D0ݼ: 悓K27vAa61t=]?eڥ« ijUh};_?S? "p",P~1E֘̿Cl/ߌy`.z[cH@߶q;iwm,]hˊMYmwd}H z?w~ƃ<lY7ٚn;}+0fH@?-aycoN[i{0(:{$n;K>{bvm t~2h"%. }ĴURsi"cѐb)L7Qo/ƙ<x"}yMc4v@ pvA>p>^՘Ryƪ5^ }e==@10-@]w'm'_x3w$gyc0TS1e6s^*aoO|d6B&ux(tI"ʤer>f; sߪ.H^+H~]^^w5xӬ>n/NNu'{ 0)O=oGYypRlmv֝scEgRog[K l"D>QSE/ߵ"gG( MoCHVx>@ؼhXRS}ʋ.tJ;?G&͕MUL?R`z0o=:5QABV§ m6έ]Ra*v."_Q@zBKԢa.Dcq,Z +=tǐw_wr[:J4˝: RT,ϞѸNWK+H>N3[n>5ysb.9e՗\ԶSعӔ.mI**1\^EQ@O rn!g,qxR)y0\՘(xCweLݧr4%fLKk&a]E/ EQẗF:<<:38ۂGx]V {dcZq:j?ؘxɭWVt }Zq<Ͷ׏.˳ƥ:ex}o0wP_uuQίv j=N싒@H|١o|s{Ur~Δ +#}}|||||ⷔMig~1c^,\~7t^EOTck>3qgz>>>C]i!jCDovڅ@Eǃt@8C "pC+gm bTДp?BNKEIM^0x[Ǻi3 X5kA8%6-3m ;WxAHt=|}Hp;scCBBCw"h-,qL>#|`lKYNDW`wI4EEW/ӳrW6-3mƝqLRfN?B7|WRS)\uCW?r* TQ?޽{ݻI׏t~mz[iӢg ZABCM̦U{nU'=ӡuNeQaQqEġ̢" ]})kLL~eC31]S<ߘvo;PY\eҲ;ᾂ0w=q9/kV?~( J!֔EWbNnZ,3mFl!8\tV]a8VW7P{+s3W{[wjYi4Тد7zhN~>y|jh;4>ޟԯǿEwG| AA1덃}߳>]*ϲi{i4jQK\+4J'Pe|1ADp[okm*&[g=Aq西OxkMrFc;BI>=_{[$92Ԩ?vŐ:1 I/f(mґʅ^(V;67\LGhg͞XD-yϬW7e67 5j@ yFT ME)kV7kh⣁K1B~WL:~Oßbki[rD\gЄO _}65FM?}1j*==mOlo~{ o]1S Ȋe-:2P& `C*Y^;Wxr!Nmhlk^1ќ.;g^vglܲu03ԨAG::HrQ ϬS>x&<'fk#gVWܿˀ>jQ 5l_ 䋁@@ HA:D !xǃt@8OcE vӀ!h[@C "p< 8?D3ĆӃAC "t8miHW'zwHy# ;ӌ{ Zv <~D:M8gm"0ZvIzN`PDu 0C~WvR'N';ī_Lca7\,@9+H)ٲS5 {p]47#ԇ4l),dXk1ֳU7VIrf(kc.rDؖ(L.aC51h>]h29ahDJޮ'TbplTa-Ѕ- J,w 7*\Gb@G XM {3Jbq% )6,޺ 6a.h9-{w dgƿi,LК D"ܰ[ƑC@~5vVH1^+їl=NsR G )Cq@kS.H07SOC\,a)"tc6/WiVB6dB^CpŌ@iʐ^^ iz7^W <&VIK57%JDh&^.;MLXOӯ_)&$dƘVOGNޔT鰾`8dq ov39:Dk鰾<7i:A=!pse%)+~{{ZRDzĶ6>:$ߚFa|OܹG;Mhn+x({夦 sV93 2}g <@8'dfa=-Yi{&rfbFd&d&dLFbXO.uU/BS}=go?y™]q1Q3FY~ϒ{qKջ3#rPOK_RdQ@Є><>M#` cIo9P[ȂSαR2S})EcQ[wME0]]ΰ~jݻ%ԉ6q8MnQ f1 0`$@.p2û_xʎ8ľ_a{mi,H`g[m pz$Rqq؟bvzŎUeMhBy(^^:uxh`@pD}ZWočecZ0e$gg߉2._8iUڠ&RN$u]fXw,pTkRrG>={ڤvNk!hbu5X ة,cS=Ə 1YlݽߐATu-{bOhH¾;.WA'& '0q +h2_'ܣ?ۈ&ܩ[Hb NA1@=ze}8gl\Q +K.#|RR=+*Dc]ISYN Dꯌ HRG:)ʛ\I!gt-8sE_ xG8pVm=Z ?oV)9DmIac0mpX.|s D%g*lns 緧?SztQՠY ^El!BRՙX_/EMJ6'=.)T\ FAA I<_{cic*pLJ۫f Pfb^뗫Ǖ H;aqXw tI"U%S=NS]iJJKFw?r+ʊӭS+v&g]{ Axt,cHI/^HJQ{z&t>RZC0x"_\a6eJSʼOt}ye ~3ۀaϜtPXD0[qbSޝ|Iܜ%y&㱫ۇ޾6~JʇŒ5nc˾NcNջDǥbXNyO#cr,"iʢm:isiii,ZZ/P?)`5?9o1 GX *,if;PYKSHVx>@NF`o4<NL5^0RDޤ\cx* ho--j.'\FǛs 9 \= Sڑ#EV劁F$(ۑX+. (M|#.́Tx$d)닝z͟z @e#F}OuVqYI/677u:؜w]pObpCy,Dg (:W\ץh3Z#5Vi c"Ze8y8f"\LRJH1 'z*Ռl 7kGN~KG)Οsc)W/itwOq6NӟZ/4Ƙ1gIE<ϗcUqY':+ś1ILc$I|v L3vm%L%^b2V0S(J.p)FHNJ@)! VP^j#ʇ݇ێ$} H?z@U)WbXV?MldQD/ N̂Gf{sH)1֞}S4it0|VbE^XqP/d mF/G͙]%\l:d!hnBOYu{t.0ZR c÷&vu8_\g@1lXE56M2OWzDN3[9yɽ^kѓhSIfZnUE[v>D]* 4iV}jpZL>{(?W:$Y)w.nVLx ;*⩱_S&Lza㎮ȌE?r2.&Y^7nxI/}eP\ NJTtߎ7?h.tU%Etb.7çk9%Ɵ7@ƭ)c}$vos '?4|z.geXri ]wG~#RLrݲϕpt驥}cGFpL`2Tod FdtiEk`Rr<|9:x88xAX^o]#3FN~P[N待dTD8A>#lg4S:!8ړfS6ZD 5#:):焁T) Msд-F -{tzkZQs<s|ZDuV3}#o~~"gC xF~\+đ:$"))IF A:4ϫ7 o2 }7os0bv+FrvR^Y3׵3b #g}1oU^da" |3?,ۀeQ"1Sx]:B1`+}xJF˞U;u` xSY-*N^Ѻ=:ZD%t$3[b6}_% äSc P]IH 51`EMy{1FvǮž5aG dkžylTᑧx[߾'ԡX,NOOqrr8?i#,rLDHAH@y{|#8G4PDiy+bibi LHEGPtKwXwbHpˤe{w97D3}DhtaQ~شpy+O&׾You"B1 p@KYkv/|v&o\)fI^cͨ膡4s*ۭTWA:ÉDE]F;9pA%u?}U6̘YYwgJ.zDA/)1Q:ũD^ f>Rs5oI⁔BӮmeFaOJ~cky}DTO? )j@ɍSd"lfqЭuwL`"1CUlatH߇c`fݛ_6i򽹻8-Clx5sOګT6dz N(8T*nh=Ex:khD*rhA"2UIs%:%P,4]Pd!pT&쟑.7sF#WY M G,c8VMO?K* x>%Ƈ9lPhHGÏ\M).YX"Yl8Q@tI#(0HC}5u%L""@,𤟷ٴSmy[~._2j|k{4%ɵY2-*H3. JgX׎s{.SǹYU\x%6xЉeׯU9cdJlDRߥO\B Sܣ]ƿ.g-u u(3@4=.t{okJA:D !x_Qȯ h "p<ȯ ׆@ ǃt@8ZvـAB 8 yֻp"rk>:U.yЍߤ a,X{!^bd  9b)OH%#ƺG0O[f5ĉ@.Ns& 6̉]O8ب'uD,Ot QՔ=#^c}":qV x\8K!_b2PLJi[so?T"fg6d碚 ᤷȘEStX)>cD;D$9P8/}J..zs78K$"΍ڨ5-R-r $c(z3+N+.H07?34UrB I1c>P2BZdդ@zRaM<G--*~J eӯ_)&$dƘyyuNUr.q"&i#8E*Ect[K&KY8~/ODXoA$2P`B-83S]O'UH $—^Dd.UWs)JRBb$uμ` L10_ƚ9U3eϼ>Du Qǻ hwQ5ƨA``R7|+ +Jcn*U?I \=Y:į]~mp?yu~\{l%=53vnQm.]鯪<R::<6L? ^0[ 1z<}q9V ?{W̞=z}f5cWOg7йʉl, :=f;HxqԽrdKo {mcyD&sM|en .Q)[ yG?D}j؛WVn !r0QM 8 ң~xb_%cq7/Y&.pDR94ռ2p28KCig>Lǥ0{ Ua:7hNN:-Dt"^ܰ}c GyɭS3VmtG99~'{O\n`WPMuP4kxkxKWTɲgw,|hLRяkxkU2y>g>ӄ4S&$\>+SQpJ},NOY_uF~bsƻYF *# 0m8dZ"!zT)Yi+§^pRE _y7ke]u~duUj4Gn4k̍۶UU4Y<puh79(Ꭵ mC "p`/owĸnbdy*ÖN9&OUn'kg-y,MZ0hݾ~SϤ{˛`3cG+t&4'..!H1oU6C~42shA8>}ٳ7nzwa^&V6펥Sj>̐b)L7Q=ɷi,HˆlHL8kN&~DÁ]######_Mգ[i1CAdRO>|3?,ۀeQ"1Sx]:˦}]ȱE{xܩJ3 V@_LrxX]IH%E'8,v`/,I(VZbqzzzNNqpOac" @ @ Łj͠mobE 0 ڜT儧 υHf,(bw1e7+yL7 @arnŌKy ޽t_w1; Nee-6}nY g͐js[:J4˝: RTRzzmJ*'Y-*XACѕ>ߦ $|T`HVqPDbo|Y:;:iɶIKC !=iNOfPP"ڷkWJ^rDF}5""ёxZ@,{zzzzz-n@A" $Q$|TpSk\xHHcl 0VԷ;<';:V3CȘ83888Z;G({͚;pݺu lJWZQVmJ~@bǃt@8Z|;ipd&h4"tF  ]irr ى*)]tvc {0miH8?o1K9R!^bd  9bim^@d~xX\wNee p{y|Pp"GE8:İIssl4<sfZ,\`1G&\|vKֵ\oыXK!3f 6=О4mKVҐ #b_~zRڐ'4&4:u ܃eH Sp% eࠗ6<]~xehjBQ8/0aX:$Hi[URmS=\!~j!bq 8Ś-'.fC hzm~!vzT :Th @?+AbRhV\u\6O7xƸFo9.]צ]WuSsI:Zݖ6+  J;Gzbɶ39_6q E,LD^4 *G|taB[I w`2 S #72\39 ' z͢uz!Jb9~EzH%EDm 3i\:"bmN~76i~^[p Lz$yz<;5;E1}[*Z|93_sɎ cZxّȲs&@=3{`˵.>'bSeQ} \QV0tLE55OcQj(*UFBV*$ pvzyrp\|U@h:IEq. ܶVO7Iƺr*u%iBP$VJru2G\SCf&[Q$VݓDBqɳymo-U5]<1v|DN>kYdz; @0M?84Ѻ ޟԉs;{.wPt /::ö-Kv>(|ܹčEme=qh;m#(-k_wլ>7z|Q굗v+=Мa^[.nP%*?T}m0n\QJ$.yoOIrg?4pzz|Dܽ@ oBJ*X!a^Bi`^B!ulf>MM 7G`Yf϶^|k8FqTrPUkd}20Ki5Tcr9#P+6ܶA{ׂSRy%~ǫ']*ww}ngEOID) MͦŴ8ї*->-۱k~>0sc?_ۺ`$;±nn4ak{rM5)V|'N|z C(l: ^t>HW$kh֡IJ"!R kQTkI%dH3^Ȭ" ~1>ϵ^=Nk Ά]:ݩЪ =NIAXa"VdSީwx|Mmi)-U⍚)# F5̾ZT64q_CI?ٲ匂UKO/b7ڬ_ĤnYTlWMhJMtW3RD!Pymɸo/?}5|a竍j:<NII U:KBﶜ%rC(,ڌFcj\=o?t>qwžd`}ytk~N=[~3by7p.l 6jym9&(,j,|2M^[]b66n- 0K?>D(?$%fyMLd!F|C,RuP&"kr2L:D(sZ J/$ U$uPmmm\1<.EH~X!a"$?Cu!B:DH~X!vtt 1XB)HɄ wC?JB{FIENDB`mcu8051ide-1.4.7/doc/handbook/img/048.png0000644000175000017500000006203012067167647020227 0ustar milleniummilleniumPNG  IHDR"/5 pHYs+.tEXtDescriptionWindow Class: pale_file_interface1@CzTXtTitlex WpIU+I-JKLNUUTp,*.Q(JM.QUuU005Ttq` IDATxwE=y6'XrQrAAә3k3g0 P ؜f1؅ťvwzGPEϛH$D"0A0 w#-kD"H$3 c{O QdWAD"H.SнG"H$H(|'914*3+е&]( $POyD"ӽ95zDd%ՊPn 0 7P v Bw禃I#G9橠xF*`Ot˓H$X}ϩ/ZAaz0v |^?6r"t U r Og_ tNb ' v7_Yla~̞!2vi u&g"lQ̜؝Sx0ssAOb:ydڸiّ$)Ljӽkg3=BA9}hvrJ99'e4ok.NH5a2qbQi Tń?`l6[nE0[Gg !ꕗYԬ-0"xyZg \jyG+dچ ٞA.YAE'Z?D^ba&w_<OQw/@׎W:d2wMKnKGʎVI?b֫eTI2]t`!eAܟ\mq }t 2ze\-Kʈݖ?Eپ0OQxvxeԣġb* ϼzPdqp͘6\΂S@>l /pt@Xn?>Yc9*_w> G<7pDuFFTlwJL6/ +~?S \2= \ 6KY#&XW9'Wɒ^ţa!Q6n_I$(mO A6`rU9 T1Xq2i* M<MmuwPY3 q _g_[5T^JL*I:s ȰOucBHrsrIjDZZ:;v#\Pz(qǂr5{`qPli9/V~' %|Z^-|^>QB\lJL8x Y֨`MPW RD.fJJHHbH<[ Fq~D) ^dBJI fmdĪ2Qc;r?P,݇( zi#cpszӿ7wu.gV~TJ.ם f+E_D8s}TJ%ed?&Ç޳->9gwj=~I@~ÚcΩJ=l\fw3NQ7ˢJLlv87lDUO=;p`v#tzb煣E&3 "}o.GnfĄܢlz"ܵѠRTI ҿ:WV3hj67_xՅe8 rC*I`.fk+YUôrDy(5*ޞAI` ơ/W6pd<͊ Q6C+ t 1 qf% fT}YsӐ}5C+ko jR 6Nb YN o -Fd&)i.0aE(~AggW1|doSɝk``P77uŤ*>JaEU|D+ Ad.4_4`5uuoGDT3*OJݝQys"&5 :d`pB!fs꾡Qǂ+xfjH^1ՅUdF1XLG+1t;(2>ZLJ6Es@(DRd#Ut|e;hQhR?~Æ08:tGVy(++OUA THS%IJfhP` 9F&ԭ<0@3|@87]8N=H 3.AzPA麝=s?' .CHx4?>#0$Sy(qfFp>tݘ; K5P}CTW|@(a퐮[/u&t Q\CO)X:ުN;ܠBucͤ dΫd\{j67gZ/D͕&"x^鳫/zA@u & 7NLƔgt؇GG'Z7^"U &j#0 Ze&&JVl.fĸ&;sŽю*+Mf fËOP9 㢹>>ȻEZ U> +V4ɾcQ*ITҡ h_48 ?ʫ^wyoH]muW35#O'M^]_9gã)͡oPV4BT7jx*HQSQa%IEk^~$7LVF* Pzݱ!@hawqr_%VnbG0UQ5@-5娔`-08RN@ziKR -S8<MVL VAm~ʄ uWN}t&&,U^xDXATlb*J1;^+`MbN%neGڰy)XX| (6ҍ1Z#"u]5UCW;\J5]Q1 V!lp?{>z]QIZ#r,Z"hO.p6ɾPBis_bΉtI1ŗBw;37p=fN d+u/.$$?~NArrIO})LeDHb?mx0F XA V:\lbpHLy53% Pk鯭#݆zX1>7 L߆HJC[$FQ"xWK~Z&C*fU'#cu)(U8r,&{T%p> LHg.LtLT[Վ&\JÄWhՏzOiX0Q6FiOwY^Afi#d9Al?"@s)qGC]kxc0Lc^U6W(P44^G;u}7؇;[1 &);>eQ1eWQ=2k٨ȣD &5m|~2 :;,`횈[Wxh{"Sg@"}-`uFp@B@ध݌_Q\:,%BBǦXUQjp׫ &a}Mmx PO}>D~ݏ4zAcKB\S#h}4̫3+I[f^4oų3o|j>s.Zw *h/K,99#PfAY,8Yrcp#UwlQ{kdU"Bv]Xp _<-9:7dmhNU`k ?zWW{*(#?Nyzsx{C6#wP ܕ'<5) (32?\C'pōWk@w>ѣɩ2z ~0YiS5ʡ&>OqRKfÂKQsCcۮL&F 8VJK+Ys6zg2<\*cA3<^[B/juiy]O{x<|mn)uTߎ#R7.ܬzOiܧ`kj.-%pJj=Ջ'AnA9C%pLwke2a"2)'F'h NI/u^gftd%飹_# s?uki#˙}*YdiF[ulD:Z_ $OS3'D=kycuVߠ1Ovg~T׋᤼e8#qÜEmY9`TSwlٮi/!pߜGW#UB JH7l5澃3Vh$ji8(20^ x~ DP`(ϱtǑ12V,J =J"Q! J"99*/F@wS>Ɋ[Q$J%>ڗ^z [q^OaG!T"<-v TSp46ҴX|BR2R]pr@Wk7cko՜׈fnf U5(TQ,$*^B'8$o`u#?\0,1 /N!(>#SGb`%]ůq7U~1Bnhh!6 %^B8 383S o50'vd%_ +fʱSJũۨEB"D& ||ÆiŮ6>U A}4*MJ HM$*^ЩN1j14!Vc1 )Մ@#M.k(0/Q蠃߰R`p& E8PփAŭ\1 bbBo)J!VCI$KSn(Vh8(DńJuN=I$g${s B``>xI$Z@[ Zq8mjnTfR$D"9\ўd$H$D"ԏE$id޸+HF%":`"H$əH$DbDD"Ɲ=> 妛o#+yGXKK:ltʔH$F%" vYYڷm;y镡}i$3y_7Ħ_ݷ_ㅖ6K"F4*=rl mFf3k׮ ۲e+ n}c?#G>~YG>xG8+?xm[~aqos&˾]v$H~{4*INnKNټy+LD_4] y6FU;vxxWۨʪRV^^oH$[nF3thNJz>VX8q8l߱RY"z莮DD8 N~2jH||>p_K(HNFGdԨy ޽{qGzNvv6g5,E?&;v)fx2thJJJI+gA(+-ُ1\5j3qJj .k\Gdd$6x2dp;ڷ;NI$fщ#t|w1Q`  @bB&Sâ BuHaڴ صk\rt2 t]gt؁O>}XxWI |:O~̶;(**ŗ^9)~.HN NDےȒ1vL0X,1/Xȑ5$IM6lܴ ڷo)fϟ8x8W|Y^BEE#G[ng֬Y'.qcprw0 8{8vG:&H&̨Q#Y~CبcYZ;Q2:k(L`5 !CAH"񇕵͘>ӧL>)ϫU.&:^ؾY3/ }ھbD71]%Tf*$kF"4w>.hnOa|ŻD"H$C&"D"HZ&H$ H$IciT""D"H$H$DbDD"H$I!׈H$&H$d74\T$3Ƌ-eᴓr(cHj$ rݢHMW| .tB2Ja_7>(*1EߝC]. z7'-||W""`)),(Vs7G=(*Cj:[cSm/@PtUmrG'f\уOؼy3&M`;-=6]Yx5 eNe9SL9!GaS*eH̐[W]7> fo.v}=EGҥEqեعuܺ~ݜƢ(z Ϧ-z]?ɶ~Xs˿af;[\q;4k""΄r8L* ġ ~W6m݅alڼu4'-СCΝ;ܹ3=XK$V~k2j6AxGUƵ>~x<vK+bs~ձK.{=Zy&c`@G'7qnsMswқC{:u,h;N<xv!?|SL7Lб/`l]eoIq H'e[ϽŰa {/Wo#F0,~L82Buݐ'])eR(.K(PZbʨ(wsl$=v吪c޽tJеC"*J%>#Ng߾CtC$n>ӘfODdPi=A1zj vM/>N;kr3!@?!}5b ۋBnn.v< _~~ꪫNHǤXxUh{e\x ~/$"*v}G\b\ر훶t7Yvoi?_r`}TUe8 /*/2s 61i$t]+ew OI^6l"c2{֒16[(W7õ .rxK/e=^'O$p1[G>4ZON̔f$ENRVV 4MUTL~a1yEs=5O̘1ݻYfPx'ҥKS3f 3~xaJp-&vm *bDDE4I^pS[o>E gf?3I# *<Cb *s^C~N~-.[-fa7n粛.cӺM-fujGm(). &5 ?~Lߏ>mv[AUn *׏.oZT`^ֽԠrX*\9F^b_KwZHt'~ٷo_esss’ FqqqU"y8# 7֒KP61tm\tEN=̽WދEW^ggc4]<%*t 0]y>T6:6Î0.G\f Kr1-Y ynSBE귔ߌ? ŎUTQFQA9FEKۿӁfODdPi=Aeڲ4x7G״h[NjJrw/@.΍?`{Q|Ԅ6Npm۶tԸQ8 4lݺ.]4MOb7H?OBD/`:_{1wnrryO[-/3dg&82fKKpW"?6!Kא̝c&Ē*k.voe7_ڷ}u&CGli{MbbæsgȔiC7Z´x+\ҷe;>+KOHzm/y&kJPJ mwU5kXW *ߛAtoH?>xʰؼ~3~=Σm9RXn|.RsDTwUPϢx ?c`PJ4> FPэ`P)N *e~WMbߴRUńw^QWZ^TnH \p|W[/?:ׯ_֭[OXYh9 KO譏*raZ1 :{}o>e2Nz U'g߰MTWܣ1a{XfKy>y'B0ҩo>U3 EzaCfSe/(/_K>_Bnf.S/ʧ};*toiύ|po,olxbb]Lqq[~e)}n1X!$dШ<}+>cH:5;eXXA?6 "DDǑxB>4-FD?4ys1dbbfͷkuΨz}:Kk *p@IPl<̇r,Da1|tؑ_|{;l2z_O?tHR$&_<|kju6F'fB tљoa1}| Eymk(JPޣ_|I>Ί?,kk߹=̾e6"zj^S7OɣOo;MyW7-=뿏mrC;խӬz3n`[_ ϦڛAO^)ܓ/[SУ} g`%i7 *fᵂJNNxYuP6vXk72:y4 /VPِc?FT 3q Ͼlr5JVzCG31ҩS *c&9y{ < ./2O Ɲ}$wcMâ sUҪ *E;A4ZOuP͸_~@ק&GӃJ^amy ظ=OBѫot>B8fRRR?tPV\ Yn]E]E]T>f-"* .巸0p@m\@XgYLTLs[?F鉊O^h]nŬfS攙S2w]{׵\{׵.}w̾#]sj{v (}衡:\r=G|Yx»wp[~ŧۢxR[dfs~.}v{*E;{gf.W%񯉏ҊeURR0cFqÔv8c+8iDD#0rHG^vL;OZiR̯?enGF]57݈G%1[{Iݟʘvgެau]/3bB4DqAq7<-Ean!|sNߛ/T^K|ܝzA.tٗ)Yt$w._Þ5Xs'[A Ly<:SzXs;j&#+ +<+0a}ۜ$OfdPi9NڂJhjf$Ĥ1:wۃ \wލ[9^o|'_}2׀^œɱ,p ؾq;N{e5#3T4Mcq?wY|ܝvBo 5X61;3 i7/LHLD1$wbnO'$ѭm,fU!5{1͵b9[l3{2DDt .-U936 ~0 68+|LzK\x'd1̼~ 8| J5E̓<su9|>z\/r_ +\` ߼؃ss2xO]o;!:ҿc4;r/(ȗ 3GF1m̦xi *-\Z[P)(/eaFp @#QK$ )_'ky1s~|< NjjTEap;'{~cDD"Ik *vbPqb ~D"i~Zu""D"i Ν/>ki3$-ȄskV*T$2HB\B23/͐HHZe""D"H$ Zϲ[D"H$9d""H$ŐD"H$UH$PZZ 0K鉊:!2AEz_ω"+[YW6/>kRPI=ROksDDGi[orZT^z=KLDim,H=RD" bUD"H$-LD$IѻwoB}oΛoɨQHLLgϞ{?LFrr2f̘1#xOVVVZ3O3J=ROk59iOW^L4[6RӪ -ZġCHII'd˖-<裼[5s:Pp澣9ʗz֨T0c L&SQQ-„ Xr%u~}aS_~9&S0UVVҳgϰi`ZILLj0~UR>53c tBN4i^{-&LIAK.t҅;w^mBmQo*1/H=Qf͚5]y$$$]wrrrHHHmY5kְb ErV=zz֨-QTT@qq1@8ʗz֨Tжm[:uDNFt&O_N0x9Cڴi1p@fΜO ;1?j/5·"2(`dX"=m/ -6gʾby4flJi1S?u:|OET $00KѶ۷ozA|+qFyCeС"Duсt*B!ŻB!F"B!#"Uj7{tP̙Cvvt888ݻOff1>Īzm ٳ;w(R<<9 %^366%B@D:!BT]!z#!BM9GD!RVbbc$<P"?YH]y3^<2OeTˁt*GT.6ٳG9[kmJS 6RmTˁ5^>:%y$OụmǏw B +`!' !Bod "BB!F"B|2FFF,XB/˗Ujk׮]t&Nr %&&һwo,,,x뭷tU"N~d "4⣏>ݻ邂hԨuƍ*w]:t蠍RO⢳8M*((`ڴilR9OPPfM~gԩ۞=s?PM4 3f *)qBypXG/KΝ3gU٦Mԩ 6T355믿EԩS3f@bbbݛbccS:ԉ|瘛3e>}%N8z/EM4!88 ```5oKعs'-Zё &@aa!s̡A4o޼C׮]kצGܺu (&_~,XZhQ"n͸ҨQ#iݺSNѡCˤ1eVZ+_FF&&&ddduVQϞ=85I"Bg/= >VZakkK`` o6L0CCCz9>>hтZj1uTe̱cѣ={ҒsAzz:$&&R~}~w4hPj] Yp!eu>v sXYYO?Dvvvs~ڶmʸ.]駟ၹ9~)6mQX???xw'͎3/ҬY3LMM4h#G,sjUlnnΒ%Kɓ'tڵI/zw:u*1k,rsoaaaիҷ/營駟$NCqc]F?LϑMK-w^Q QݹstΞ=˂ 8y+b!rO-سg<}Wj"!!ssR3E 7IpGrhF>̛7 PPPPn{cï?'Ox7d8.^WWsp$N@BԩSqww/q6oȑ#Yv-999̞=ܶSbC\qe:9)_q;VWK.a85kGBÇ9r֭+1?**LnݺE͚5UC !??pB iF3 '|mE8!!ٳgL4yR?[nzj e׮]eAoM 1E(j !*O"BHHHѣGL>ln߾͖-[0a_5ei%FL2o6Vz59"11ڬC#??3 cȐ! 3/jB 0 \qJTxywkBTa>gFU'Ndĉi[[[ݕիG_y"k߾}l6AB e2^챧=Y0q"oNx;!!(˷~/AAAذ|ruVnf6/DCԠض =*Cذ8!|WQEvvvV h,HJrB!F"B!!Bod "BQdՍ57R'5!i\k=OU$+B]* 6Z.CQͨ4lZ-$&6pj*cPSe+B$Nxxrzȑl߾(z*Νql޼ۗ]X|9~zjQ7N:%N"|wcU}cZU1]lRGO4 Xnܻwc㲻-{{{̙Þ={*Tq)qB[#OxM?4܉#61 }V0Egbb9昘Ç177gʔ)<}ϗ^޽8p 666C8u8![ D Uˆ,6mH-LZZiii8;;s!崓B'144DPаaC_+ psss%[ \"O{!f >n>^363Ʊ#R}sszjӑ9+渺i9i555LJ3gr={[oy1C APжm[2339u:tiQ={vXYYakk-O( 5jT".%%%ʓ'OHNN{{{~m,,,0`K.%//kbmmMN_eP(FP]q)qB#VZEJJ ZbĈݻHbbbz*k׮֭[u:~LaaaQrAHH/k׮8;;+mmm 559?ɓnZ9ܜ4lmm+/#Gpqq)#55ÇÕK,ԴbB}ԡڮ㯄RPۭvW:iuwر9%oWu>FݟY"1.Q ŝe_خD-b۶m\~]9VZ%VIOO'++5kcذaDFFIDD/1hZj1rH㏼ܿ#FpM"""v7nXn!B*5q3&?;+[g}]K,g]V^U+;4gĈ~녯@yjެ50p 3(sUn^zl2<'##yѳgO,,? #fIDAT/77~q!Ο?ONNVbAЅ Tkyzzo>Ξ=KNNK,aҤIo>ƌCjj*fff*T*Bm?d?w`@M; sRuБnV*W1 7Du[Bgy_vUDdzk.崛K,ח'OеkW֬Y|]:v͍۷ob w)Ě5k_~C7ՠA6nѣ]PO>s舙ތ=.]v^!)!AnD((R遈}c{>R8/M7eqʦSjm7R1l~A~!oU/ԩST'hllٳgK?+^>*"::ݦjUjG)9"Gv$}!֨ !^ofBUo-}"Bj%KB!E9IpB!4fB!Щ[ ~wIENDB`mcu8051ide-1.4.7/doc/handbook/img/014.png0000644000175000017500000004124412067167647020224 0ustar milleniummilleniumPNG  IHDR FELՐ pHYs D$tEXtDescriptionWindow Class: ledmatrix5+b7zTXtTitlexquQM,)ʬPUpI-(JM.QUuU005Ttq ;k* IDATxy\_r "*g"GhyWjL+M3KZZ#4*jgG' q,ȽuYvX>>tv=y|fP(DL^/ 1yaqTDL^xzː/v?SBEV8)y`J.'JfkQb[R"s(X\6AۂTLRW7*Sg܏MO9,_.NP`VūYJ stE.2]+ pV$só*-o@N;;pquk?.2rgC| rZ6nsm FQF_t'Og/zD fd=>%u*qitW%uukҡMq^uUV;='EchԪQ+G.>bЫh 0W% IeXZC4D*Jb^ ύQSJC-;ļc*Ohm*lohuDep"׵P,E) [SJthrJڿRZ;SwdQ~^G^멅蓔x*Oq>Zk9wc>mh P]teW]}י<42SG/=YH?'EI~ɘw[XiG  ժGM"CӁm{uyuXwl\٤73 v{Ahp"T=j D&o0zAlR `x.p<0%)7ϼxJCu|M;vdkڇے=ߴ'anO^vo:^;F.dkS陔HDQ 1vlxK&X7b̘Pȫ*)P"h>vQ"kPbGzfFL=j-C";89rF(s?iv3Դ(LO%{TJ\rF5Q!~>t o7qRZq@=y/d'K*se5;|0`F$?DdmƇ%ߺ'a.cG7ɡHo"88lg_\LS00LO1;L 0s{rNzc I&X%c{gs2 ]J뙥~vT%1o1u>^h@Y\phՐi+ڵi`7s)>*TQTH<Ք^i}ݪS/N4,&xAnޔHM{F"-;m,;1>z}0u8~yc'} PTܔKvIT.]Nnα\AwE<.ޔ~Vb/*.+Ө4`STRv:NQc2% [>!uELh15 M7RFӗR xiWg({AQc|Z]1!2%L.Q~Z&sR{N}ٷaHe§'Tf8D4qhL G٘Z0;x];LBoۉs*np[o@o.rmt|$T40k{Rx툷\rtӃht931 PG%Wiĭ<e4hFD3L%EMiST*)0jF$ѭz]%"TEJxI{滈JZ7vgWUhVr-(sq3 3rKvAc{K~bV3"G+;bc|sLvt7 (/lV)`P@Q) AQbJ7ά|hOw<\= RUI*/cRR2."2UDR֌D è!WKK4RFC= .2FQN!zҔJPђ'(g{IT'J7mV)TRZRJKKiz0 *6 AefΪɁgsNu+O 94r·[Ѳ`Ю795M1W1vϭDĐTCoTʝYq)=EƵHZYV !@ܺAv"H#3(hG71՝t& ,bSM孉D0rîKcZV)Uuݰ}uyfىgpA`NI'.wBNs*xiEKWm8>XЂYH,QRW)S)Eb (9]#ιUlER/ż3T*.r/9ki#@̿arOߒ M[EQ E}=;[V!εZt n̔بWT\6 $/,z/2.y\ Vw|1@JjMW6'bBhyuۯ> "Bþ֬ok;Y_9bsQCj/R[jֆH)Kl=.IFWIDw^5VTB (, iOSO3T. r=W'GbQe˒ʥ^^WfYwBl‰+/^tRv~rrArה)S>} !!ҡ}iii͛7ם)h4~i˖-{M{'RD XYqT-\*,/)2e֝rмyo޳g?Ν;%%%z ٳgZ>hΝV}ڵk曝;w֯_Ν۷yw{Z*00pܹMA,䐺IJʴ_J\<ʳe(<%\9Ѷm#Gܿ?!!!)))..O>fΜy-^t˗//Z(((("RPo&Mk׮ZcLRc%Ɋ+ؾG;!RD $]@-XJjʀ>U̷Ko'V+)a aA p:9m1RR-I1GWWs"D')d[Q#\@*;w.a{{{4n@*M`9D"-..ԩGok`+:.e]ME"mۦׯ߻|M߿ҦMӛ8¬@Z~:Nw*==;/@Æ陴55SVTTzLg&4jT()QTe&%0`rO#G.w @˖>-*.V(52lύ7%7rIT*նm(JNNv`MaÆ)RZZ:}-ZgΜGJPL8y={<{زeKƍcbbie˖7nܸqXXLӮ]7|Ν1S`ffnY:,CVyܧMQ⬬ܬ'=4:̚5+888))iɒ%o ׭[_-ðf͚{Ν;ĉxzj6%믿^رcfJLLtf8S]͛7oڴi…ϟDZM6쌖W*._\n8>W\Yren߾=j~{Ȑ!.^x-ZS޴lĉ_~[ZAEEJi:==T@O_wz/t*r; t2p@6 lᐚqqqSNiSN)hIOO|:N8Ѻuk mt@qqΝ`{0`a{صXv*J.wuuq>[;[?㼫IJuPb9'Of'z1bգa=z\r%**DާR~);qy///BCC7oތǫݻw9rDY(ӹsgHxbݰM*##4<<\P̟?„ 6KlݺU&ԱV̘1^~9$''ƍ;*@ROBk n|=i)YxSoߞc{*j4MZj۶m+W4iUqnȑ}YiiR6l5j;0j`R^^^6m ;wnqqR4MgggcƌYh[36)jz۶mL;;N:|֬?nҘ0oFJ\tfu8cǎ&MjӦӧm ,R?{n;L8?lذ'O,ӪUhc}BHO0k׮#G,))ǫڵkwرwcƌQՙ6KvZVVVdd1˥XzGY6{(h_TܶnQIgw%3gl۶uVvl iJ۷رcC IIIٿQQR>ݸqcZ4h`Բexќ9s6l~z{8pիWj׮m%=2VIiOwhËz5@&BnHYRmtԩҔ)SLꐚ,+W_dݺu֭_ז-[8ru;|}}wʼn3bxɒ%K,D&GסoIGz%y'T{n=#۳Nx"yx@ؕk[Fŕ+Q]sjAMLfE"Uݥ 59B!C*䨉f)C/O٢3Kcn{0GHsYYYsYvْO\Պ6Ƹ8س^(R$a]EDDDDDmȑ#OHHHJJӧ3g޺u5~饗 `lO\Պc!e݃) LHHݻ7tРAٯO|]^p]/ a.^رc+W믿7f&V8{;V3$e] :rȨѣGϚ5+??͚5СCBBȰٳg(ǩ̙3yyyO/R[,g†W5CbOct܃q ǜj] =$ƸFl86MN4ͧ~ڲe˾}Ab;utYz5'?|޽{WZ8w\N41.,...$$?d/_СǍw=v0r'Ę}8At{qʕ((7<శ mj+ڊsDlh\]]mD<c4_VϸZj^A1FpRjdG޻`tlߎƍs' \h8K.iL¤8 b3Lg!k<Ɵhby׬/g&hnpSB n IDATqKk|-,caj|χtÆh8kp:w|oM|%ll!{0]u?UQYY&l?g 4,_C8$Nz;&{wEl9f l܈-qe"C=c1B%шCcGA bLw&[QdQ_4Xm&̬},b'atL/A)+0y2<<0(+M ?GZ"g"o͙ 3P f:.<ʇT}!;rr^=PX+~}f^%ۉ;#A1)LY_K!C%zՄmDɘ\bӝuP'!|o,?alQ֏[5޽};6lks%[c;3Qcwq[|ˀم]>1s?a `mMq7;MĄxy'vnS8 hjzP=r9S4ݩS'7ϭTeg1s&4 _:k1`㛸6Dnv)imDI EXt`J34ۏGa\Y~ۅ]f/k.<ʭ7TYI${|kl6K`N-XC9ŭIiPO :Q09弌)7<£ܨQx \x5 # }w^YWxHGP8>T( 6k,((ȨuF*R ?`准-o?7c|oSv(~ nŽ7nP%$%%=xSN!ߩuw~<=.RnMw7^"oVZh7;p#GbHoH9zhjjjPP\էW^yN s ^3*;{7gv:ea 'x!c(1^_BB£G$JD^E5 hj?xȹ*A딅<ƔJ3z EE85--->>]єUBxxx\rT uE=vyx@TJ$|///=jJ~`` CZ.K.J  Q~CNY0£cZ*6͚vm}VC (++STJR&I$j=o ?b@䣨@Mb@ gjluʂC jW>%]qUiaJRMQT5 Pҩ#fnlu ܃Xdgc:SP]KӴ$4MU7^ux5gv:eeラS!@DĪUڨnѢ۷bdad2Y˖-qK$q< @{1VZ,jX P11P(ʣ ?"9Yw[ݺuS*r\V \^ZZV~^!pAR*hjluʂ`,+&յkd???T_VVբE!'ii4 uc|oShUEQ z͛7)bsJ%0]vh-BU/CW^xeڇUU>) Rx1Xn>|>zc} f]SfluʎuXYqZ74F|U[3;hC`8(! Ty $C ($]EC@iiG}tԩGEENA$n@2FpG @!*`Kr={믫WСìYT*'6YcΝ $C ($]E?ͧ]E ;X.Cf7_E^~fJl"P2@H1sQZZ0@b:~QBE)<5opXyr/<]E ;(jX6G,,D~{K`X,[L>]E ;(j@'|MOG\pr.tR͹_~```y6G}m6ZGIxn6\@*e6SZ0ڱ? ˿\並9j:??bRVVsY6ll+b ׂԎDCU¡mJ% od>]E ;(j|Qn6 ;~|}}E"S yӣb61oC/<-8yӧcx{O0{rOW +m9Tė_o >"c2 {>]E ;(\xTP̜9ۇ}|8}@vP `lQ>))i͛6mZp׬8}@vX`qqqSNiSNo><<<,,W^G qtcqpP͛7T^d$8k >ll=jT"q[*Vca0 3raÆ>yX{UՅGmEbtݺC|򉞉@F*H" IWK >|0***66vƍjjР-j<ym1>N[(J*>h6{-vu޼yk׮}aZ9L?v]"J2n ](\ڲe 'RB:yD 㶐U3B1 d$tjN\+`~*!JCU99'N 5G"#&./?cb`o__]"JSUjF*W/G"aM2|p4fͮ'^D jT"DOW/[ \tpŭT³U>);[*E #$G #$85Eߪ[=JJEO_{)_x177aZDӴם3ƭ+H<}Ȳ!Fn* B=}q =Ww\x>~X!jvQ#t\>榷͹hذ!ssykmhy .@ GyK  \*Ú ;!Gy`DzK~X!H/"|Kok"7 lٲeɒ%g~9|CU:uBD5|X!\x@QQѦM\\PmJ<}^=D ne˖Ar3xpA7~X!\x4//oG1`uTtuaJuG7l0j(www ;wbo k"7ix 4eJ}6$]£<0dH%T"aM?"G£T;7CMp $]芈Ø>ds.J\.UB.~a\'\ET^HrC8Լ,$]FX:uttio k"7-8CQDHJUpjLQ!E IW7K͸^tڜp(F` :zc&.u8 >.A\>¸Ui\}v8.:/Ѻ3:ϸ:l-VBlil999;wg?֪=]pMy8"/X7DJ)444444J⟻Ԑ?j\}.<9bĈ]v͝;_v4b]u)<*MC^q c]E]H|i΅o}PbEp$@]^G'Lжm҃>yiӦVSxeϷ]P!;sXsJPEEzX~APr3> ݷo,XpU(zA>BE"$5r&@ԚWpmzB?-[Ι3'--mopڠ6DW>+bKA%-ZrX,5X,~s>xVb<"|g£vD+l.@/1O$}#?/t^{F~\iƛquY8Ԁ79r.@-΀?)S1vFWG TAt!BD",܄]F-S  3Ƹ:,HS5ѥź 3B0.E_=ʛqu~ޘ2kdt75lǵ]]B 7rs 4D 8?o_zKJ 6 ׂUŕh^4*No,, 0E2؛i/wrzwY 8@AG9.~KR?¡BtA08pU]Æa-L 8ppN]Z2 aWWŋq:Т V~c ^reʕ˖-}rK@FWqzc£'Nhݺ,]~A-B.Ǝc FEE1X`ɚpB1 &أEE!X}gaQsXh/ƌhѢOڣB ׍Pv;{̘1j:335 DA8ӭMϞ=v޽vZ// qhBi-$\s0BxըڵkGGG[{$£bxɒ%K,DHtF*e$BL]! ] D/HQ]4fͮ'^D jC'5(.{0]FP%#E*j^"T!5(.BS "T=5(.C`$.1 f|:;w~ "8}j/^<~x-|.qpݻ(..^|ܹs,DA8(֭[e26$BGm۶ƪ[[xDA88(k׮eeeEFFڮFU,=J \xkԩӠA՘G s0KJ>z‘2(.< `Ŋ\IBA 8`#x#(#5('5(3@`#x#$!F osg>h/Xf-^X6s]: "f>xj`,kh3|w=X(G@`#xĖ;tEQK.e[233/^jxbbb޽r\.ׯ۷mPH$Zh/U-_c 333**ʪST HMM֭ې!C4N_~+MU֬Y4 ;ʋ/?vXL֤I~25rǏsrrΝ_o>;;]6l+ddd{nz-ww:=z^dӦMcN<ٺukWW׈Ǐnaaaz*ꭷUւ }[j{nϞ=,Xx v~eh5kVTTdCs`{͟?ݺubϞ=+VXxcbbo ...::իqqq#F7n\^^1͆ 6jhرN*))DWޝ;w{~!;;;((we\[N{ԩS-[222222ƍӡCǛݣ߼y3%%ƍ~ݻw$&&:tHwk׮*ٳg }IX|k=$T;lqر(ӧ;v8k,;v8sLnH$sΥ>\Rܾ}G5R+Wm۶jժqu?>>w8==]v<ںuke"h͚5RTw]\>k,HaݖÇmP=(ZlY^3FZدk6RgϞ={lJ?O0㙙5bm|||?JQ4#GhGfd uu̘1cƌQ(cƌY|Aׯ~~~b:ϩ αCBŮnxo޼v_|_fϳw~w޺uzT>|8;2r_|1>>OY[\\l"JYԩ3a„G:uiӦڸىG?Ν;ׯ_?6nhL3MmC`sK'ָq̙ϛ7o֬Y'OnҤI۶m{o?G۳gϺu<==ҥK+VHKKwپ}:t޽.]*,,7oހL;6dȐ+˗O>]7ݻӘvflloP(\]]quu5R IDAT-bn+J N ]̘)뮏XxqL[:˗/U"t;v 0 ==a;wjՊ]`E͚5{0lڴD"ի׽{tH;#5jyParss_yOO7xĠȭ[բte (,,4!0?s 6jW-5m3b)뮇Oo!3.Cf7_E^~fJlcJ ]}-( >3G]`f䢟6zPA^"x#$!V 7`e4[+J A7[n,k˫rF  0GHiV!rжf&X0/:y`2G,on\#5WиBW?ӿՒӧ75]!HG۾r4.ѥGcS, hf;͜k!mTӴTCGu02ɒ=ˑgIDUFeWwƥ$޹sg+sܓ'Od2raǏ5~BFDD,XCڵMhh(;vBѣGeeٳg{mcc3Jg϶wppX|jSeee (,,{Fx^zƍ+W[`„ -Q?ܹە[.]lllBBBӧO)///{{k~vvv;w>wܹs֞?3˲GafՋ- <{lEEa,Y" \B /_bmm{磻4V&$RT*H[ĩHyӶAזp\+ܷOe^nţl{8V>+|zե~RO8ku F.Mm͗k`ҐI b@xzX| ``ڢ#F (0esQ!]TV2RcƩwWF'N$7vT\ׅ ݫWnnn>[ZBBBΝmmmg̘QUU,~W:uRJn7:߽Bo/"%%㪅iii߼ysFFFv̙ƍeeeVzaN>CHJJsέ[Ο?믿+[۵kߢ@jjjUUU|||MkWw7nj;w̜9N81!|?{zz~W\4i˲䡿+ pgϞ?~|^^޲e 33>(((;w_~yLppp ,?ܰa󳲲 8uڵk}}},Y=eʔ^$'[v-\*9cV 6%?*$!ף]բܦ'ܚݼyѣGfܹsׯ߷oߕ+W^YiWcwޅ';Np8P "?ܽ=xFsoÒL``5 9Eӷ`uʱJGhgdf1P`TH^Y̴ʢOWm'ݵ k=zCѣGۙ}RRRvvM@-ѣG/NHHwH$=~O>Yjj/o߮Qk){B% cbbϟ:G{ر1c%K:uZс/NII)..JHԡCk׮Lu4b WW׆wnݺܿ?0[loRƍ&Mt ٳPذaի;uꔟH$ׯ޿?MHHH$ L2At᧟~Zbann. øl۶m [Evb[o^H o ?w,?WP8;UdƵVèQ_"O %3f4=hР2HJJ6mZ=G.eOɳw?~s B qz[ٮP[v&+”cl|1O u蘉#m.`B U{nsј6byY!%e7O>rQ^YuSwk>|'d2˲ǎ9r$)MNNvsscȨP:|phhILLLD9ko޽BoÇ{yy~/((h߾=mbbb``PTKgN8ѭ[nݺ[___,L2=&&FJR׬N:k4sЩS'Brƍ@y1p\ۤSe#fff666"2ƒtΝ^^^}KPPPDDǍ7vd̺?T*^v7 S-rh(- 1i˖-iiiʇ9P/>ETO  $Ѐ/BG~h w9OAfFmo϶*+yԼ;;;z\ xyKG\hlZ[T&L~j/On\KJlԴK./^411S=hƍgϞ566600PJ$)77777ڃvO>2eJqqq``ҥK^d[ebbҸ#zM\Oڷ 'TY,$$d͚50͛7=zF/u6[RRR{LӠiccwի׽{H9=qyYVVVΝܹS+++w^v튊D"ѣG=zxMӪ؆ _~e\?##cĈ111.]mۦaʦ <$R`#Id[ZX+U؛vިqlll:\I~FZZZ*?eee5ߧ?ĽGRܿuߛBZ5yeި4scXY-)3ſ;5pe6z&> 40\UHrF`57:pk GQmUUX,ޱc& JGp풒%KԻv:ۯ !>}P($ܾiӦu1;;~"}qss377_nݬYڷoIrԩS=<6}..i;bny|H&}q w RiyiyTQcĉ;wTf_RnsssJձ5,,رc...~att޽{ǍGI~YCȹ$B!ZHA"T"qֆ<7~D!Pk9HZ[!Bo I["BiwD=$[(` `X`(,(X3).ZB!7o^qq֭[_^eמ ];i71]@Iݑu{Ѻiޔ7M zn'(7-KzB!ѱ|>EQE ༼tޔ^ANov^Fڷۭ<7%:,˲$VM$IUU |2Bo>>|>7++KY^ZZ:m4KKK@VRRruupvv^hyHg``3_\?:t5WzzP(4iH$ BP5#G.\pܸqnnnvvvgΜQw4iHSj3ϭ'UUU۷oz*ݻwii!Cllm94F Bo*''Ւ___r[WW?$utt47uـ W^%.]0`X,޲e ő _BQwS 3**eX `v4N/mD?$66?'+={޽{G]PPn:[[M삂mr|>VԩSI+8pӧΝ|;B^lfRS]>gϞݻ{VZl^J$매(?0;vرd]jΝػwo@@@II ,,… Ǐ'iii'N5k֮]*##cСO>ζϷ:uH$2dȲeV\Ivuttq%K/SNM|\.'N 0qڵɋkΟ?ܸq&&&qvvn`$2*8$CCCǏ***r\./**b֖lnkk[PPG&5n-;nZiD>e)ׯ_x1_sl3]!ZsrrR('NԩÇ<2J7oVVVN&+**,--uuuU@e"7H!?ݻV WS;ug.**Z~}AA~|UV7i&OOO'%{޽֮]K?@~8f!llllll-ZԡC;w8::=z׮]E}7ɤ105dȐsjhѣG b5<$ ONN677ehС撖5а_5%1=QRRinFҞ<}Z @,R,566l׮݅ -ZD*R,!NNN_矠s rRT5=522` IDATA uر:t6_u4NxM]\DVV֟'3g~UVUUUO?ʓ&k;;}\MmyCsP`|tuu쪫REQb8!!A9bc޶mL&vss^t v:eOOO{{˗khDqS׎m>m繁eYi>oaaakcC4,P"(ٳɏ?hiiIN7zm 6(7U^.>֭… Ϟ=y!eܹӵk׾}2dHQQQqq~DF6PSջwoSS 6L,?xO>:uQ(޽8???55usΐ|a񼼼cǒ%.ǎ+//"M}wYYYw%/uM&fΜ駟߿?~ӧOK$>L9"2n9s̙S|ٳgϮ]G]!!!!!! :.,lB.H&R*MRR8UYuEl޼Yu-Ql7u;nB5Wx硖/[BQΗT*=~D"ׯM,oS@<==ɢ4կT^ǎS6lXn tȑe˖?~̜9Ӻʋh߆kDusx<ޡCϟ9.;dȐX Puᨨ͛7+_^"9rDOOO?%600i~+//'|פ{nԐsر|]qq͛ ̹<g)7iBu9UTChr; 빳Xiڐdz4n 0e0EԨ ?}DB!T[nn8,599.++AynX-C(lx˔ BZp͹i7!BMPZјk!jȹ)pth>00R  ,Cj6?@\\vZ<&iUBvȹi};96w;U#+2E 4ڨ}ks)Bm9 8/- B!BomύB!^7o^ddd[G^s#B!Բ_[m>B!B1F![-11ˋجZϘ1?xLJfee))--6m@  +))i=A0̹B!:w\DD߿NʧNJӴH$+W-[Fºw^\\~#G(ۉxiZZH$R(fjA0[p7mΡ|e($''gϞ 0,ˡi(`YKF!jN!!!!!!5 mlljWvuuxbr@e˖-[[X,էuMfI-Ɋmmm2ًTd)`?VB!^G xI,EQ, 333(~1Ͳ Z$^BZΜ8=Z$IyneY ^vXEQyn7!Bu 蓧OZ-z KX[d7BCixQrmؗ K(p(i(s(B!ԊpⴜVn E,P(\\\(2M2oa^D!j8ύ^qZ#-a(eXV.yTyJr !B&F8-r7VVC P47f]`bKB!pȹ>paF(ӉP,K)3 ʪTToŏ7a„3ؤ͛W\\uV諭zl?ϤI =ʽ#8M,]ڵkoքEΝ_l!~R/(P/p#JTPcs [*K/_~g6"SNM<5 TZ8i/^](n5`>#P4rmllF}-RX8ڿ^@^Æ 0a\.5σttt&YYY\.,F ƫ:[uS9r… Ǎfggw@_~!.] - V̹}& ŬYHիD"QQQQ\\~ǎ1m4Fܹ˗ݿ_y׮];|pFFx8oD322:tUFF$T*=uꔷ7[8ڿ^ԽN5+--6l]\.zgU|||5as0m͛  VAC;[Bז\&nbxxxܹի JMMRsO8Cp}R8~xr*$$ڵk=33355\.; WVV;v,99x+WDTSSS߱cMzzzb8##s=zhAƖ-[F &&&dM&-Oy~xGN?qLLL"""u$\P]'78xj8jM}jj͛7}||Nrg}:,99ԩSʅƟqeddܼyd=:<ABuz9D"}|||}}NQ%%%GXU>J~!ZZZXb^x̌\r777$yrr߿VXXhdd֭{;w]׈m$G(TƯ~oD@`cchѢ7nܹsG8שfCݷoߨQƏP(@CBBvܹk׮qil6z_uuU~W$foBU]2_wقȟgOشw٬ʇuDӮoҥorru~Rˋ(XUAAAg1C=ZἼxCTUUlڴ)((lmmfϞ]TTYYYʋ}zCj"@ 򒒒~MWWN8שfd .] :uj|||BBɓm\:sPw.^eeeIII9~B-rnFNW ;6ΔNGӑut)'Jωu8TP"v zicǎVVVsnkk5k >_~&Lqe]N2~#OHH8p@Ϟ=CCC'Nmd27yx\}޽A>???GG-[ݻQxZ?p;v|FFF...o:W*~m$?~Ӑ5PxxѣG---53ھ^ԽNehh￯YӠ~~ @[oڎWx9; ,wGxx_hk") /۹&u =|HQ,VWWK%}Fz½?Bwl~@2dW_}ց =~t`P R_ P`rH+kʙj`J#)ꫯU\\s{zz~/N[s_[j]vyoܸqɒ%0vرcΛ7Ou]KFFƩS&OHٳ{ުU-[!u,]tҥpI&򈈈ʴ4}}'Κ5k׮]_zuUUH$OII!s7:tӧO󭬬4tQ:9uT]]]HTQQ1dȐe˖\Rmێ=ګWz?f43ꭳgfIyM4e)K1  P,E JVt X]7nJn1bΝ˗-,,cǒ(Ͳ[(HN9|cǎ}(JRO??7oǏ'7BBB]֔b1c~H$JJJJMM555h;v~vAOOO,gddtܹG訧' ssssku*++;x<^TTTLLjثW/  797sa( p82y{ĉ+Vx1EQ}itS ",,lРA3g$%deHhh(9aWQQadd痗7.;;{̘1?/B \.p8ry߅nCQQ0䮭mAAjziwmv.)122ߝ;w>ss!<ݝ84hi:-X޽{5N_Cs۶m2ۛ?REO-j8qBf{^$0/ j  =tpj{I~Y9V B!B h?̄97B!Bw[܌!H~%, ,@rk>] D!Bo֛fdtp`@h> x/P+` ]8B!BVF59c y{Ney 킎h8B!B֛$cI슊 `YxD*JMכ.<!BZqRIR RSS""".^p/Y6E>ʕ+/]xbdddnnnnV][7o^zzz5Wܭ['O$''H!zuKmetut훖755f2(`Y(hOQ6nܸ{[nuˍn߿_~}]ӧ_~ lj˖-۶mtR!X8q7|ĦZǭ[zQo5 U8߼y3==SN^^^+B?x@D,ϙ3nnnk!==}.\`K.111 :ujm Bӊ mQ@Q ȲyofH ܸqcܹ* oƍ I=7:߆츆8_zSNMQh̙#ITTԾ}0 3|#Fڵ]xWBmڌb3'e)J P(E|Ms8MS, """ ֫WF7r޽:[9rEQwU-߻w@ 033S%'Bp֭ ޿׮] N5k{ ==](N4I$ BPj*Iiii,--AXXXII )|}}vX\\k Gpqƹٝ9sg̘Q]]M*gdd;|>w?~|ddv<<< ---O^UUruupvv^hٵ:!m45`{Zt'bǎ~meeeIIhڴi/yU͛ٷӧOۍn~UKxZvm9NddH$" 7_LVT_}՗_~٣G.`gggeeUoqBx4Anݺy͛7_w.))7ׅ9΅ g̘affH$JJJZzAtt|L8~`` yx<[[cǎEGGxx·ԪpzUU/'>̙3ͣP(U˹}F@6lܸy ֭[vDk="o <,==$78q¢G\B=joo"GIvrD,0ʕ+9\HbɾjLMMtٳgwMnrt:練Njwmmm  hiiyfqq1B(77W$YYYd6nܸ!J:cϟ?)dU׬Y3H6m(--1Bzzzuuu~zɊGd??NwqqٿkkkMMͱc̙2443f̾}D"Qvvv@ݵ B;;; R__…^+ x!&RR[9ml۾CG9zhXXرc<==bq PZZJh4Zmmi4Zee%599 i/:t!tAcccvccczKMMMpp0 dz`>>>111zzzN/?|G^~]2F\Z9<ѱAUUɓSLAYYYt##PUUUGYII !TQQ3--?0{l''k׮PֶyI؂ h4:ɬQ/[MMͯ:zhgg确@wuuhT*̙3&kk+Wٳ';wN[XX0̩SJk5kF }ɎѣG3'y… ѥc N yY {B@@KOuч t3-Rj"P$L# p6MXxx<&iffVVVE}UJ1 d9<222ۡ OYNoݺuԩC]#{fro#< *Hc@?i4@w A*` ]p̙m۶㦤XZZ㩵_aÆ΃"w>L2ؘB@^[(*gi;`ܸq6mb3gloooooG9mmm=vnٲe'O.))LONN^|Yȵ>hѢkѢE/}˗/[[[3ѣGߺu 'ɓ'Sԏ>f~ʓ(++Yf .XYY8p^OO/ @qBg٪>>SBBFJII!/^:eʔjlvtttll,677onnQ;{l }KZZژ1c$JKlll455_x:t(%.$$͛+V8x}vjjΝ;%cG)++O2EWW7,,vjjjVrrrи>Baܹ***8AG9r@KKСC***2ʑv^Үϟ߻[sׄ7~kK<~TvWID"Ѵi?OuWYEEΝ;dٳgUTT޽An?N>8n\\VJJX,޳gX,&n޼yŊ?**jذaw%ƍÆ {_3̓'ObX\TTq ORԤ--y߿ 'O\xQ tttXZZ>HJ3P^xxǏLBXN%:*++OFiɨ#a '@N3VW/ϖwX #Tښ (VzrF0[޼o~:;;W\ٳ_~%6J<ʳE,3 +++rSqq<ݺu?0a QUU%ȭ\.Arx<ޢE&M 8\.wٲe+WSMLLz=.B(33 _}UHHȔ)S>}ڽ{CPPTTTB }.|yo޼ɓ'# ^]>vvvnll={6jhh066F 2L*;DB2 H' wyQsss:>sLkkkrpQx^2s̍#gX2ֵ݅_:)yԨQ]zyy᷵L&d222䏹]\\rEEE]]]rӢEtܲzĔꠠ kkkzezRzz KηX<;;[$ؐ)2k.[D"k7dwoBBBN# 7n8mڴOVUOÍ7)wر|r]]]&B/IOO'Gls\7"}rǏ/3<Ԏ1c5WAWiRSSYNUUv/GyɸצoPj}<v9&QT`$waT)7ԉJ*//tvv޷o_;I2.|>!ƺzaa@ XC8'''(xK/Lccc ,//kjjR2ΗuAnee5l02EF=Bcǎuww'  B'F'wy…G=~8&&!ގcL2rÛ3mݺH,5ڵk wwwɧ/ TWYYFRq׮]#di%:y:ч~ϟ;884644Q˾pW2Muk?sQ'*IJ߿aÆ6ɭ'N(--Gutt _,** [[[ܹ# BА{ljjGĥKΞ={nr+˵Bdoiiw ۵kYy[òȐֶ011 7oMNjmm qqqJXWW$eeeuߟ?ZϦ+Ws ={~;w899}uttܹs{c\HDrr#OMMįcbb_.YNAF;ӣjkjj߿/曢"rxs婫b&7ͳpžݰc1 x|Olٲ+Vh4+9^099KFp8ҿ/ŋϟ?[Ο??##!piwwwWW_~$oh"\\\===7l zzzaaaÇ?z%cAy>^`G~ztt˹s熺F*::QǶ$%%%PEEųgpmǎ,cmmDƚbͭ!$9"{ @{ƍ۰aT*c9=x(uuurfw]]S@Q(aNCj,1vFF6|U3񽊸Rؖ-[ADD@hbbr177*ր{s:G{'&\^לOGzxuo >b27o><` Tw}{{{3g~ ,x2CXY[=~xIjĖZFNSWWUI\\PW)i_  WsSTsss}}켼< uuu$Dn\AY رckkk444{r BW;xݻ>L566P(<Z SN u-p_6{M4bQTq,X"Arиq[nQT%_Ǐ;::Fxe(7^ERCC5??`P(;TPP `{ս~ۃ\Ɩ9Q*((x++**Egg[ZZ^9#66vɒ%ƍأ `{%碶0ࠟ{9r#FPQQy9o_֖|*/̞=ĄBt+-- vvv4Jr=K.بijj]'N:Ư 3f sׯ_fccclyssN>]MMmժUNNNߗqx< X,.\:p9˗ ѣoݺ겆euu5F+**v^20H:8MpƎKRi4ܹsBxS1ieWH+vXZvyf]MM B&n744̝;WWWWEE299wo0hbu/22x_ٳG[[[IIi˖-+?@=ǭ<靝]'N.umH+ɡ驩A4446m/s477OP(TVVT*5)))""BKKv޼yq vڥGn믙Lɓ'bX,.**""..NKK+%%E,ٳGWWW,={vƌ۷oΜ92Kuv\ѣB~~~W^zcpzFFưaΟ?zjPZZsٳ ֍7ZYY B혌o42=[;,}ۼyqׯKӽ~ŋAGGG@@%Mj{UYYy2HNF e3su֥}ᒝ}277lmm6xcǎ%SBW_}2eEEE??O}-@,M0boor|;}#,,,z=ÇgϞbe\.~zWWWдi|~gg'iٲe+W@MLLB[n&L@P<<<D!` 6n(d\7i`DGGGFFFFFBsC]ޞO?jhhttt_JJJ}mdW2hPvXFuҽF 2L*F !1RSS322ڶmJ'iii^^^/u-8);;[$I>nR]]daaaaaammbBNNNvڴiv@@IBYYYaaa:::8]Z~Pzz 9Tq\q3@<OD 233̙>}T__<[hd\///H$KOOʺu떺qz<.$$$ ^#F9rpٳӧhʕ!33S$q8?o@}odW2hPvXZFdCe6B(..nƌ^0סd#KKK۾}A[y1cLаעTTTѣׯ_# ߶mBB|嗸WIyInҎ xu17B SvL^I#a훅Œ%Klmm]]]#ɣto}}}b2$yY_Z @3댫3ʏO8>prMuusN7W gF3ێ\|yժUVe-]`߾}C]|>?1ս<:k '󚳠^V,x驒.0qlÍO>'V7U''/?dDUZ[yH'wΝ3>Cme/x*hpoXuaU̔#FO?ͥ-QR)Ӌv;6xǓ'Oƌ3r+W >|vCme6*ua\VRSA"QFmnTUT{/>LmhT2D!ԁ0ة ,W&CT2B JB;5w 7=['O4Q=B!3ʇ,~*;o1Hs B]V;0i{ ,Yu֡bѯ^w}7{W/[̍r2sB߬/d0)**u^:a:`0&NXTT,X@r~pp:~1xփQ 4mx0J7o#MMٳgUB֭P( r¢K ]%eO}6)))``PbS^}puﲽzT__?o<:.{E\f͚iӦ]|YCCoJKK;x5k[%9rdiiiGGGll%KǍ7 CUǏC ?)ʬYBiii!kd~gg'Bt…׮]KJ_7]eeeuukqqq|+ŮnnngΜ)))ۨϭ{p˩?߾}P(\ON8`0X,?kkkKJJ>c2gرT*F͝;!*(777ɔjVTT0w\]]]KKdal6;:::66f777Meee/TUU2eJuu5BÇ )))aaah4UJJ ~%555MMMO;`Xrrr ;rBHGG',,,,, bffP( yr]=СCa/h4----^}`󫪪*,,\nN1cBɓ'l6{UUUl6fx/VSS[h91c/^}ޜ9s~NR蘘l޼999Y fff111۶mÛ|||󫪪:;;׭[G>zh၁͛IIIAD&yT2}Ϟ={A^^^16/^5k3g>X9JJ2Z4hϞ=;v숍UWWg+СC!!!_uyywHHD/cnOĉ/⯿RRRV8sn߾=**ԩS!܍ݼy+;;[AA_ݻw;88!'~rܾ ШQp. ꫐)S ֬YS## "bڄ wxgDfmmm|/KN7nB&L)#Ν;;_ ? lg666nذa`JEEŻwݻwե3g+B7n3gA o1b9~{E%սr띝lv*/=K{\|ƍoZZC{DwرcǎOO}ٳJfCeffD"3lذ1LHŋ[n۸qqqbX 8;;{ؐ;WJ!x<p#\=B(%%:((~X,wrrڵkצM***,YC=GR FCCP(?655uqq455sժUӧOG[p˖-!UZ[[UTTARX2}t9r…  BD<X%!TYYo*ٳg `466~ggΜ7oB߿OH _tR5g eO g܃?$^Һxd} ^ MJJ}-Nv횏Bٳggp8qUUU'']FL&ѱm8V~d]\\ǷH?uTkkP(PA:OOO&&&rbPSSӕ+WB do߮7g///i}Oϟ?'__ ɡ&hӦMYYY?GQSSCF!===ww:PyyoFn=ydEEEssѣG9/TTT>|xܹ M(Q( ..\@ċ/M8 }w}JEsC];.!t]%'''|CC^wSUU;{lBB¤IBiii***71ɘ!'|sH /w}}}bWX===IO>]TTbtuuqdzƒ)+++|>.*44ߟN"jjjY,FPPP||<s||͛_xǤaׯ_| ~Wy_G-9l׻h4[[[*zrʕ+mll ȓ:wN`2SN6k,ggg]\\fΜ9b*WvGpܱQ轺w^f.X8i$6C]04Jz_W꟱ss ox  }$u(xxn .\s0 `pA 17 bn .\.=ݰIENDB`mcu8051ide-1.4.7/doc/handbook/img/042.png0000644000175000017500000010527512067167647020232 0ustar milleniummilleniumPNG  IHDR-:b pHYs D,tEXtDescriptionWindow Class: change_letter_casenS'tEXtTitleChange letter case - MCU 8051 IDE{#k IDATxw|lK$@B(RDH ⫀ "WJQQx ^A0@K!=ly쒶MH)<{vٙ33NRAAc~k徇nF  eS~$,Wk;!AAR~#-f6AApzPP  Yg^E-_R IXkTAƶ_짇NN|ʾr ms;:w o,#A$IOpFOA_~:KoOspcNk {VyxѬNf. P4JMgo I.+=+g`St>BZ^EYW6x B+5"I*,#l`9g8U&r2JMHd' =C/‰Qkc(۰}5{k1sű_,BEpd':yߐ s+wb++/.H~Ռ$v7 ;"J>,LzҊ2{s\7q2YG۔jrYf2 :ϽV|q~IDVxk[4hʉV wr,6/K E c6^'O^F ~:R % 1 {o X߿CgcU}4z#)/$iS:/+ "yJLJMD;vl{i@Z$&3مxr\z :XG긚دy ٯ8˶}q-wWsU|7=R4_ܛ1.s$9>$Cwi-NY?~YFamE˺ūe:c'TܑK6IzZk)uV6ZFp-$'vc/ww`hm+Pk+dڷz(MkoQ4Cׇ^@ѕ[78ἻOEe(dźgp~6t*;9}&W*'>Cr_Qc1%epI!?7C]#*\&[;z|p+&C[h>~%Fnlsaњwi53e^/,9 FQy9f0'L+|r|8sh N| 7f7z'mm\3nbۜ{jMEmݖϡd9h4bj=н0r9g%]GNxe "VDMW$p/:_uWŝE}\bOg(.T'R9|NZ~O?euҪRӴ+ @eP6*!.Sʏ7+H?SV^o2J,ob7*{f$/Vd%'J T%9&#fso?< N̐š0n&//\ǔKv[̕*W^ֈ1'z(ej,+w)Zýܲ\Tؽc3Q୵@U ٴkݜL;ha,9I_ -W  EMڠȪR98wɃ3ޜ&ݜKN$K4y>W ZU=':ۏ-/.veW> $flxx=XjZE4ee (~DijY422*"īB/>$:L:LhQT*,uO*DvKgiᕋF moNc|OZz. 7Bo!rMd$@[`t |YZ=! f' qǤh i7VvXfZJuހ&0,/ʒ_2qUXn_q-Dv0縴X+bKYT<GӇZ,9.q߈gȷMz$4-ZI煱@V-U+x1lgLS7/@.OT#+J?7*B$??/V2Myf<77Oε^&{7&?o}'c9hU,y(ZR@-}  Et*kw ,GЗ3z,0{pQo`OA-|% /__dte-?C^& šp evGo֢QXSfz7c_<,/&n{H^ ڙ.jŢֶ@0hkeHpuT*넶 }l#Qb8(̮3m ݏ`d7+صf}{IgEb6bQ| иyBA7:\5tfٛg,CY`Syx#!WaR4lI}jQr-k|MGcq.ǁ t]5= =^oؙA煸d f~evЩN/%H.ld*橮yؼ- !]##Xo-ZdF}6ֽǐޣch?NEArH*3ݛPI2*ɂV%S kȑrը#Iy3$\dHHewB/k% Ɛa{[ ػs=z}+be eۤ_$z7jJ"H> u7kW=nnz (E46WȸtPPtt'/?x4f$隸yri IEƥ$¢7F$ 3jR ^(H\)DV Uޢ)̡r(bV.<6gkP/BYD]%'eyĎN7%dGܢ׶,_]8[/yS}_ '/;*Iq[-\/1k = ՔPqc'˙ܧǫ}Ґv8IcKL% $59XL(LYםP2ssylt"yFNZU8ZQc=t"ZworIK9GTGlKRzxZd#plRçeۖFs-1lX;F@Fǵ b>ΝC6tB_&솧kgrNI hČN%c,-oMqe _۾^5_J]\Yf泣QPuiiDYR]Fm^ 8W~Լ%8دHV^~%Eǹ)ϗR!N؎O]~|3.0.}ӴK:so4i SYqKmƢ((YQaFެ!#3zL:#n9%Hd1aU54"gёm֡hh㝎ڌYQa՜O`UJäh0d蒁\&kY\zkFO2WS jlş\ϙ ~+3؛OW( Jh@o4P I.P9FEC_w e5oOQL^ rjR Ǚ̗z(X/gÿ|} X _ +(*I)rʤ_y͒uZ_$㡶j[cB#xMd_rYdYQ *ֲaYd5Yf7f$IFVTdWTL\Quqؿ/$:bRTzk h#Z,n{bƠhpWPK`%r,nH)F_J!Ϣ+7FGdތx)ܴZRZįUAh,~:;6r/i]˦(20(.IZw/ܼ-O75Fjs$W+er/u%  XcۯTc~gm-~zگP'w OhЌwɈ$Ie59fw FtƤWj RWe_9[m "AhlO!)v:Y>}MHA,T"Z& B -  " B -  " B -  " B -  " B &deel&--+WM23AhDE I+Wdܸqdff?0{l"##pAi 8rJ~,X@zz:,X>͢E|Tqk[VVVm B=&B GVb~ H~~>qqq_HKK… i6nȕ+WXnvbݴjժ>Rٷo~-{k׮,[SGZ oҤ ?}yн{w>cN9z(;vCaͭRՋ'xSNU:ƹsN aApѢE8{,YYY,\Х#,'CM6qR]v]t?-Z ??ZMhhh5~Ѳe'r`00a\.B%N BI=G$p[':N>|fΜIxxx1mڴ$Rf&M].B&B K%ֿoSػw/Çw:>mVl^gڴiDFFҼys^yE_7d޼yw}'''`ˁy̙3X,{SO1sLvJ@@-Z 66͛7( k֬gSN,YT,Wolɳ>ˢE>}:. 4vH 7X}:`9s$AzzFqOt>>>k׮ذO0m4^{5.]J߾}ׯ&MԩSπ̳>wA6mpww'99Ç2zh;~ѳgO?ٺu+z+ӦMk׮7|@jj*}$3sLt:&L(K(/ޘ1cHNNf8J̣GvZ~W-[FLL ǎ`08sڵ||xzzFv8u]>~i^xbcc +ܪ._AhhđAYt2̱ӭ'Og;YtM=Chh(68`o6}a;@xx8;wgtЁ{ةxF=?> ʼyx{F ҥK+:1{MLL ?=۶mUG233:u*3f̰AAA;OW/b?r_m! 8"6mOFFf3 DE9/GY)ٽEp///߾ #xܹs'[l(v2mGJzT(vՍll mNPP;vb;,:uBe C唧U$3+mF^^:u*6W^)ޕ#66KrQΝKNWGyBC#-@ᩡ'ȰVӧUǴ8s Q4)c6DŽ x衇=j"ƎK||< .>CRqA^z%ҥKHĢEhn|Q+Jy7sXp!|Ӈq[oQ- BC#N BeeYN os7|U(|[ҥK)bѢElٲ~￿4ݺu7,ua>}BˬhO?ѣG׿ѣGiժ:ΥxQQQl۶\ƍFq8k׮O>!33We$ّ 2Ga׮]dee1sLXw}:t`dee .0|<==$R+ _GƥH]b')= g 8"ԪW]ư>%=CtzqnJZ<]Sh;6I[cӍQd"K$n:/qEB~) G +ԨW]#e.QbC)4@ uzHh5k4L[8ftN\$PDEUj|rILL$66Yfѭ[rRѣGKƉols5΍Sͺu4h!!!tԉ>͛GeÆ bХKzTG=87Rơ-L0wyd:tSO=1coXb-[d9sy~z.\@^ݻwh"֮]oƁ\Zֱcǘ5kW&11>R:t~qi>}:}{eժU:ϙ#GS4ioKeJN[neذa$%%1h ƏbqZ.F׳j*ȹ2ΦF&M;v{)uTR1n8vp_nj+WzXUqn> _\=ԳgOT@Ϟ=ؼy3}5kdffϨQ$[ƾ}GCJJ ׯ'K.̜9ٲ~FEN?~2dݺus΄0?g<<<8q"*{w+VTеkW~az`ʕ8qC9,ΝVu)nIKK%9#kAjJ4Z֮][FB֭cϞ=Ƕm۸[ϏӺukmx?Cvڅ/p5nvt-+%%;ڇGGGMBBBn[$<<9hETN-ZV ==i {=_U渔%ZJN5k֌-Z_q9#GpXnP޽{v?O8ݻٶmǏ ܹsϟwiY\|ɡG%>>RY~θArJ*ZZw,ftF;vlm]sԦ~gΜ9Sl(\zXUqn> _i8p 6l`߾} .\ȴiӐ$ ?ϟkӑe^: V\d 66O?Ҙ;w}lY^cǎ믿^鍨*ӓ$.\@vv6˗/TCfrss7oAAAmiԤ m䢢ʍ3vR\s#Զ裏2l0lիW?x'9{,=\hu#QH}joDDD0i$"""ؾ}E۸;5j,fƌCnn.mڴaĈ=={fLˆ#ҥ }ӳeuڕ3f0|pڵkGpp0*} :ݻÈ#*W||~׮]tޝPŋV^Mǎ cĉzΞ=o ɓ'߿?SL!<<۷ӳgO˜:u=֒%K&88>}:ɓ 89sIǎF<}g䔝ȑ#iڴ)111>|rILL$66Yfѭ[ uӧ+(mWW8F֦0gq ___4ib+W*U\''O\;nkjz8p>yy„ ;$''ӡCz);ƬYXz5yCѯ_?N>M`` ӧOc޽ZTΜ9üyX~=.\W^|Gz8u&M⭷r3֭[6lIII 4cX ÇZʥ|ꋊlj2N Mэn}( ر#;Z˫CE}v72dUQW]?UUCdffyfC߾}5kdff?0j(:unݺѹsgg߾}!%%\=<<8q"*{w+V]  .dڴiHDll,WرcdeeWzBӑʕ+1LL$%%qY|y:t5k֐˼y m۶N˥)**;Ԇ0gql$!!};Y֡i&իWrԵSUC4ZLTTڵc|yDDD0i$"""ؾ}m׮]1cÇ]v*c̘1ҦMFѣٳgk֬T3tPwNLL #Ft^jՊ;w8+vGd;fu;v,;v찿lz+QQQjՊz'x޽{<EP˖- eРAh4;,WkqG\Fյ;h;qޘ/ӧONEVD=)yG\hjE]{VxIzN81c8qZOյ#PR_*6@u-Nc}vyϟ/,X]? A*lȐ!A.rɳ  BUGZZQ΁sBcTꏨByDG\Fյ U BcTꏨ#UWe/^_| fرeֻ*s cqFʶ2eJSEa,_3gŽ?O7o^#9$$$0ubOMk׮eΝ,[SsZi(P~7ܧ孷">> '|ºuXdIU'4 6l(mmѯ_?dيƩl>u;ŋ5kǏg˖-RPPP#9lْ3fȲʫk!CP%--%KwMpp0111̛7{ڧ믹[ eԨQ'9.CO#:]2N\\}#kStqn$ve-Z_Mll,!!!Sw֍Ǐk.wNhh(CŋlDbcc5kݺuٳV^Mǎ cĉby;[}Iϔ)S箻bٓ0Nj/;;#GҴiSbbb8|p?WCSOCB͸F޽{i߾}r߾}ꫯYlIII>#GԩSL4z sq=O?g}ɓ'Ynj+W0o<֯_υ ի}Q"*"'WƗD>i׮]tܙvRXt)]v%55 &;Lxꩧ:+waz=V*cǎ1k,V^Mbb")))eFrs!ӧ d|wݻUVmݺaÆĠA?~<ҟk!Cf𑖐l޼|^z믿Ύ;쇬=<<8q"*{wТE >>Ŏ8- EZZaaagΜ!22zؼy3}o߾xyy1k,וST̝;m~`ԨQt ???ϟOΝK^:ΐ!Ctt֍z0ZjEf7{ᥗ^"??'NTs Pn?W^-5+VsU""" ==@{ݢO`}衇8wǏ'33zٳgZև~Ȯ]à 8G! ~`ٲe RSSٶmz}:www222uBBBʼ#nJJJ'LGGG]j:W먢(޻$ bmZha[VAzzz? 놎Ջcǎqbg} … qzg2bϞ={8~8_|EiV^͉'ؽ{7۶mcƋJSGл2$ْl]sԦ{{.VK-`ȑ9r#Gu눌ו˗=J*v IDAT|||\m\rq8qyZPԵP3nʄ xٵkiiiϼKL0JŠAٿ?yyy̞=}eT3yd222t(}hDN###+Wb2\h4V USTTTqƎ[j[tqn$ĉ5j7nի_LӾ}{n6Zj#<X;cEGG3drssiӦ #F`ٳ5k֔C\=TslwLNNv:m;`3vXva6S|ٳg3kѮ];F-{X6|&M"""۷1׵kWf̘i׮<3.3tPwNLL #FpyޢƌC||> '|ºuXdIU'4 6l(mmѯ_?ڊƩl>uZiHP~7%KwMpp0111̛7{ڧ믹[ eԨQƟk aZ#Znݺ7.w!//;FϞ=ٺuݱcseԨQ6_?صk!!! >kג7uB\-666ܸqwg_7n쬬ҒB,,,u&&&f9jS瓘SO=UsEEE)%v\Eyݻ7ݺuh4fCr +n~~>#FP׬*GOpWZ?Od"Dh!222ʪСC{t{{{rssuhZlllZRulmm1c餧Fll, T Asoi^8-mOGjjN>MXX)))-nh]wTwVXxxhܺu xWwwwz-^~eXdI[JRquN>E2,y(^i)//g̙L0sqiFūJEEEkQtT|{ʼnaĉʫzݻwCff& .d>|/_&el$1kѠڵkO<=:t(,Z>@)f|M4i899ϒĸqpttdɒ%gnݺŌ3ӧǏɓʺaÆ@HH-rrr5}C*NLL9VL_COлwo^{5Õ|2W 33""" 991c@`` ׮]Sj4<==qtt$,, VKPPxyy/P>0wFGP Z뇳3seܽ{SSSKT*&M"))I){nMǙ8q"999ٱl2vÇٲe2ٳgAAA\p)SJEEϟgٲe|G\p'''/^ܒ9\{ƩQVYI&qםxxxp!rssy饗޽:tQ!j7-?/~777ߟ~'N/XPs\zUW=ʺbZ-666-"֚3}{ƩٶMϐ$&&*׬U[[[f̘Azz:餥+vvv\~]){)nݪޗ_~YFOP ZHMMeݺuܸq;vp!{^^|E[.\O8~8۶m(qwwgʔ)ܹTXb~~~ͭY[ř={v2}q Eii)%%%e֭[ǢEɓ'%%{ҥK111FCFF%%%DFFRPP|^S7ߐKP ZÎ;HJJbԨQxzzƍ)Sx柍5k[ne||駘Vbܹ 8\[9U?2;;[oVqfϞ޽{WuGXC1uT2d|_yg3> .ٙ$6m!CRX`HZ͝;wj8p zb)(}u%y(Y<_7׷c bhOД'qGPRm:hj={YfqY.! mDtE?V>III,XkʀEZ˜ZHƴeڴitǐB!D]-W!7-Bbh\ -$Ec!!rׂ -$.z!nYYdeeaggm߾>Y>}0RRRTa vޭ;px2JYJ>}%Ko߾V+ZOgCn)&&'*\Wo,.G;ʟg5?DVRܹsʺ[n1c 9y.991c@`` ׮]kfvSk \6vm׍ӘcHc͚5dgg3tPϟVf'א\S4cHӱŋ,\wy8Μ9éS8x | YYYbffƉ'ѣ'ODղedddF!33<6mT/^ϳl2>#.\/nݢvJ>ί-VgϞ(5j*={7Ν;={|}}ʊ(..n ѩXZZ)&Lʺ;wG9v...>ojjʪUpww[Ϯ] aX[[vZF|BB >>>F?_sRPPlggוNb֭:eooOnn򾸸Vvc(,:Vܺuu=Z-VVVSTT_|?~m۶QZZJTT3ydIII޽{DGGtR:77Z\ݎTӘc,XhEEESUUEݕ>ӣG.\@nn.n?VhȠZLΝ;IMM+V燥elХ-Yt 2h5jnnnk̚5RLpp03gl۶ YfuV ϧ~ μ,\gggشiSk4St'Zfgg;{*z'`֍K{1sFx׀8ZםxxxȘ1c?~<ʺQF|rOΐ!CPT,X@g_GZ˜ZHcBad"B D0sr.]tE?1r!hWvܵ "CCK_{I~m?qXf8A)֣GrssDݻ3n8>Ҧ5(--%K4:J<|՚vޭ;pxי6mZ?SRRSO=ťKپ3,y(^i)//g̙L0sqie"Ċ ܮ]Q^gΜQm߾.^Hjj* ·Z\\\X|y4Rʼnaĉʫzfyt]h Z]FQQ<?Cv'ښ9Ldƌ\vM)駟㏕ /_իp뇋 +W (( szj-''YS7{P7NLLVqZCɓYr%xzzdݺu 47776nܨ,5F'jPM~!jJ/Νk}5r^3h;-gggΝ{.|嗨Tfǻw=>>> ?y$Z-[ϼyXf :p رc:Gqqq9sSNqA>̌'Npmmh\s:VG{ Izz:\x ;~֭[9rGADDLشiSѣҥKDEEGnn.>>>lذ5WWZYZt<mEnݺ76l'$ ={*믕urgggo7XSSVZ; 燕Q\\̎;/'zρ޹s<ϱcpqq^_=u$!$,, SSS&L۷Ν*zKgڮ] aX[[vZF3#)))j*++ٳM5t|c}*roo[ٳgo믕j?c<==)?oذAJJJo1o޼zݛnݺObbr‚"k}[`r Pz}m333ZO=Zy3FSs-//Vnj"|]֯_Orr2z{{FXۛ^]9ߔ@ZM?~_(駟ĉrﯼu}Q6N>`}5;`[[[f̘Azz:餥+vvvι ƻ|2rΜ9^zI49S7e}LuU/ojǐTT\rEy&h,jx)nݪ3Fٳ߿DBCCԾOgC6Z4h#55u?r vCxG{K)++kɓ'%%{ҥK111_&&&L Y~}1XhEEESUUEݕz֬ͭ8gϮ\8-igͤqMVZդc}9F!##"##)((P>[^^^+V sss/~kNWW7t&?]-E˴hҧOvARRFӓh6n܈#ttt_z9;;pBIJJbӦM<3wcʔ)0iҤ1g,,,`Ĉ 0^{ xxZNg=yh\yE IDATz]OgݻWyUw͍1?<兟_duїkFbL>!CRX`yЬY(--e3sL8m9m^]9/l -ZO=<Ō3rJ;eО)O]Хq;СC,^D cРAz*9ODWdh#y(jgyӧ3n8*++yy;Y -GP4SZLLLx7y7;)B!h%-W!toZ3sr.]tE?1B\a nkAtE?BqqqѶGVRR<6-- ??&}NR&דF-ݻ:u*&?;v,L:U%NGJyګc`hYPNwM ˗/fT϶]RLL 'NT^3V5;w8WQ<Ƭ-YYYL4pxgIJJbܸq8::dɒfHNNf̘1888Xk>u1h ظqˬ^ZyVQTr9ˋ;w譫*~m\\\:t(k^z****~w} {ݸ(E(cƎqq IWïaÆ@HH:F'jӕI c֪ߴ?~'˖-cǎ>|-[(KS3o<֬YCvv6Ce߿uֱ}v9ѣGlϥK"..\|||ذaq n߾۷/999,Z5kmYpqqaɭHβ!5;˦ij}mǐt<<<˖-㣏>… 899xb222@ѐI^^6mUOS.$jջ6mތ9GGGLؔrW9/+1w\x뭷 GGGRRRprrBҳgOKHHYuքajjʄ ֤!!!gϞe!y+s]vEHHÇ`ڵBVXXX(?`iiY}s瓘SO=UsEEEO=ZY쬳Mׯ'99^zaii}2;h̬65Ãbkka-tKRRƍё%K4@rr2cƌ@][n ͍7*/_ի~!jJ/Ν (( s޺jUoch4xzzHXXZ{84k mUsVs8[1c}a̖-[)R.??yf:t(`[۷s=`{.]DTTqqqÆ ̌'Npmuդ^} ""FCff&yyy͞&hN'מqvjvƢ!={ … L2P***KOO֖/pByFOPV{ɉiӦȑ#qtto߾5UOGDDJqq1qqq̝;///z-ёjٓztemmWv"$$ÇvZ!kBVXXX(?`iiY}s瓘SO=UsEEEO=ZY쬳Mׯ'99^zaii}2YW_<<==jZBDgC+?Laa!zU33z.0N{!-3f ==t҈Jŕ+WW^m0Fٳ߿DBCC]WMΎׯ+eO:֭[eLAߞqgzySl 1UQQիWqppWN* <`-'O&>>ݻGtt4K.6oLZZ7odժU vNZ+++)**/ʔ뭫&}6^FCFF%%%DFFRPPv;@5sssk8gϮa\/NgfyٶmDEEaoo{DP38;;pBIJJR.^} '88///ѣGf̙͢39p۶m^ԥVYWMQF|rOΐ!CPT,Xv~evvru=̞={*ꎲ8!aṷ[2`{>SV$1'vehOД'qGPR2h*9ODWdh#y(;h EhaL -$Ec !Bd"B D0sr.]tE?1r!hWvܵ "CCK q[|zϏh#+))Q]JŃڰeΐwfԩכlر3uT38M4g OgC:5-...,_!J7'&&'*aQ#yh&y(Y Z4i899ϒĸqpttdɒ%*̘1cppp 00k׮)֭[ǠApsscƍ˗/zj~ZFR˹s ///ܹ4 8::V૯bذa888✕ɓYr%xzzo>ׯ...\u999͚ʾsuԛξ沦iI{ IWO?www\kE]1墾effODDMW`$1koZ?ĉΎe˖c>̖-[?M)ϼyXf :~֭[9rGm=.]"**8rssaÆ bffƉ'}κj ""FCff&yyylڴϳl2>#.\/V>-/^d…;qN:Oʪնn̚95e}ݎZβ=cH:{8q(vAjjjtbc;y$Z-[j>I cժw9991m49r$ۗ&;x ʹ㈈\]])..&..s[oE```8::Z={W\BBκrv"$$ÇvZIHHW^Hݹ{.ajjʄ ϔw!//;FϞ=i Q;/'7Cb\lsZnݺEW h:hP~611Ҳ'11׾O?1zhe6_dzꅥ%諫fgtjZMbbb6X[[ciiIaa!vvv\rP `Ŋ:Ey_Msݛnݺk>A6 B\[[[f̘Azz:餥+*+W(e^` Fٳgٿ?6~ԩSlݺ{{{rsshZlllt>{eIMM9s?)h5g*;}SٷG{:+CÚ׺M+sC'y(Z&OL||<)))ܻwh.] l޼4n޼ɪUTZ-VVVSTT_|k)//[WMh4222())!22LΝ;IMM+VW?׆űh"077ݻj[g֬ͭ8gϮa\8-iOgfy/Cff&_I}GW`$13A3> .ٙ$pϯ Vg͚Eii)&883grm}:C AR`j5QQQ̝;Kttt8g,,,`Ĉ 0^{V:CO[z'`֍3{lݫ;ytf< 2e >>>L4{>v꣫O0d˜qE2'hʓ8)..f̘1Cj5* ___Ν;h4xzzHXXZLaÆ@HHH^|իWɓYr%xzzo>cׯ...\ ***p1^xڎ233}6f999͚kL*NLL2HVs8B!G=4m4vܩStQQQő6l ##4 )>y$Z-[py-[G}ą prrbō-==[[[.^… yw69sSNqA>̌'NУGZmGvԍWncלF{Ʃ;`Vs"cʠeʔ)$&&r}HHH_V;::Z={*sڵ5k׮eȑgjʪUpww'!!W^yq"##ٻw/w6KKK055e„ ܾ}[Yw߿?ǎť}mGC}B!V{Ɔ'|ÇcmmM߾}QTʬ_dzꅥ%驔Sըj233ݻ7ݺuƍ8;;+嬭}lfff@r +}fꪪR~ֵ}B!V{\@@;w$>>֩!xxٳgٿ?*~ԩSlݺޞ\}qq1Zʁ8s y9P9hHcY*͙=TH[W'ڠeʔ)|w{V sss/h4dddPRRBddd@;w$552VX޸8-ZDQQTUUպ۩gz ֭[|ʺƶnc֬[ř={vKe!h6hk5k <`fΜɁضmFbL>!CRX`Aj(Ν%::;g,,,`Ĉ 0^{ xxѥZVA`` cƌa+mGCZ{{A`6;;[oDVqfϞ޽{W8B!ڇª^]B~a1 .:MkhVym{B zp跔^A6g=$EG!DikZB!ڒ ZBad"B !B!(ȠE!FA-B!0 2hB!QAB! ZBad"B !B!(ȠE!FA-B!0 2hB!Qx9oݺž]mB~^W^13lř+!x4ti֠e_.C(._r9fKceKx^isɍ-ƦUee%_?~< `̘1m ki)I1Ieu`9߲hUVV駟2a)((g h-gΜ^zҪ$iyE\zZs5~|p{yh{chÆ#hcVUfw15-LMLڤٽO/q'~6oތvvv<J͛73zh/ffذa7*?qPռhZ~l'eDmq3 IDATodI\,Kb'V 4p<01!4Y?⇯Я <7v^nݭ'Xs7ܴ]~R5?OqssO?ʕ+/ApYƌS[ lllHOOg{dff;'p)((`ѢEX'O2d[y6ù}6|yK{kQ\\g'>V}tۿ?>,Ԕ߿_YvuBCCYr%FjMlSFyбcǰaȐ!888p^xGY}Koe|rܾ?T^\]EMlȸ'1'}EXaWiXQD1sfĩ?KmImqj\y8x LL)YL<,*ut-WT*eCRRhZz\`aaAhh(cƌARR;v,666$'762]W**1L+,/ukc:#Y8 ̅"4S[_<wO\>zK'or' KB`זoH'O>WbܹHfϞ)Z+++)..FpF7yd+233uWƍL89Byy97nOW2e6m(.Bv[ݬ Zf̙`޽ܼygϲh"^laK.%!!Vުat8^|Z&&&Ƿj]wrV97K)QUf]'jkcV=pIO} nOl X-Yχ=K{B&|w˱*>pK[k?ѣGE>}:xyy1{l8|0z1%K_ooo ɉ5kְtRJrr2_ZkApt< zmz/>#[bYjcƌ?9ݻwֵ:880|2/U/bn\f,%&0*~*M^A>*|PA֒ǯ<Ҏ֛-+3xxIгxr ixJuq[P୺e]qu wR?:XhƒW|]y[g~MjwUMr^]x[J 5-^'o\6f@v;`骞8t/SY|e ުkuWWlxhW#,s1Gw13!>!888-]2`1VI:U[qW#,6"kE-z: 5<_?$JAd" Z0@\&&ce98LLd&*i֬wu=|w0uXHIENDB`mcu8051ide-1.4.7/doc/handbook/img/exit.png0000644000175000017500000000230512067167647020664 0ustar milleniummilleniumPNG  IHDRĴl;sBIT|dtEXtSoftwarewww.inkscape.org<WIDAT8OTW;w`fbCC,,(X56qa⊅ѥ WKW$…[dƄQ:RT|̽3tq6&'My~%Ե]3d)eVTJ++#U+Ե+'O^.a)RJ`?ZWgObu8F.$z{?՟@!2RUωt8ΐeIi. r3юMMD 6>~dciܫWa pR*%mf6gۉ4Kǘsω T*E1 %XD,c(e2b;aK {ϞQYZ"c57}`wi,DA$}9 r {Zb1_bׯyN<4Df36hc_B(N?c7n>;Kc<:yu(L<{z̽{t9»F\J)NXh?+i,)1ZY!RlܺDyML`yCB 9v oa۷>Cñ9I$=B/>:ҝ;BJ!`ym''tj\[EMMQa6eelVBl6T.Ykb&sA 9{437zivyBa\M-._]B|0Ɣ҈6D,XUIENDB`mcu8051ide-1.4.7/doc/handbook/img/032.png0000644000175000017500000005620612067167647020230 0ustar milleniummilleniumPNG  IHDR& pHYs+"tEXtDescriptionWindow Class: main.tclaH$tEXtTitletest : test.asm - MCU 8051 IDE*: IDATxw|TULɤF= HEEW]Pg՟ݯ mYA"ґ^BKɤ `B1d9{gQ dd v@IG2ߎO{#sZ{l2N hߞ7LGd.:BqnCǸOE_\~/hw//8{1dgCDDDwrC#Q򃮣1lR--SɎTk\(5ک5:XV ltK9Ijvw%[IgxzFnݰMmj]@qDz̵yНi՗okBpt:b>|0ё{2x(n\9V+z\X,>1kLy/b''⊬ZLJZ%T1$7ޠM63Cu`z,,WU%0l*UvC&>-;vQ}j0x1"F'78-ffaUQPPP(trִ6#oDl|6Zⲃ}-3y|޼y-& Vr((#* EU@ 5F5ww ŁN&DyØ-d2՗^veNϡS*(HF\+Q((rK{o0nyF;Unm4.è#j#z/?2f\wCsqA55X -X,RP8ofEz)U{??>]O &;`Đ~|Sr98m31JAonevz*jx 3?w 1 ƍcshe~]+TGjjC9E7~o1&SήF.d_] j3罈"lj`1Or?_%FL|^^*f@NQ /o6pPPڥGà-R HWz KuÎp/,@]kgLH5F`rt+y$W C&Rx`)kɔJ6MkK /I nYzY1\0h lp(8TL!b64 pT<0#6B<>f`Vy|~6 Gd^Bwn8CF"ݎjp} @9VM~TC. OVCoB'wyT%a^? h5J` \\ӵ( 1P$wé5YTVү_wf~ Wb_.As+/r;V3K/ag;·A[rSs-=:{ Pd8W 'D^,eP[WADnm-nZ 6jE YndZ*9"w}GdKmw=S#wr+&Μ%`|뷄uݍW';Cj0}T?ğ ڮm!N:|JʆHʎ5656rslꏛǔmdbwةPȧ^g*Zkh s?j 0jgavA ,4&#D@[ j_'↙۠FnwyA!..h"2UV58czѣG]dU17ch@`q`䆱AuXŢf&x?gry-Ɉj8^7t^UhZZTV7fS+"4| /7)(SzQ-nyVv;3Iz冷:7N|ÁRٶzd\T@#lnN@:%*abcYXjXLԘZĿ={KJ6lNC*ຂ<z=W_iy;<(jV#.]J{W]ղTn o/$%v;c9N1l;fзe}0UƆUxٿUpW,Z%rv8F5@ی_e`O_{iu<4vQڶ_vG xxd<I1ZBhP_ _̥r.Pk9ed`F]FAvk9ed`F]FAvkzn̵w/XsLq)\)`xW7=mՃ2W%5m$u%nJavK'oAj]٥TBjE\ 0UԲ@UhT\ǜ⩭5*%oޖr֟T(0Y';;~iЕZxa1Z.MFF%}&xBA /k`喣T}!X'<1T3;ɅV24&Ҩ4[ k545GsI)T.rNVr4CwT`6}xw)j 5f>%iw1".߳?pwFJ=nLAg'::Wi`*ͫ!-*O'{/Gr#K0?$Qj|{$qAi$]ㅕ<7~m'H/ṵzf;(25E3{xFpw@p]9ǝYM]n$65r_{qev=7Gr9YT{[OR_mqBQ#hn>_/>To{PutB}@ ^GcU: 5fnJʌ}FO1.ϋ`7er_HGp !z/\Rt-6Ss t$t!ǝc,=]<K@TJjH+#4yu˭%iji0os*/gwf)36Y9[GDJ WOFl';3qAAwb=ؗ-Uc?o/dqP S^X2-,ߟɽ"ӻ?$$*>ޝ|,3{V)pB{hTpoHNxchU*(mB02>w1o1|k2}<4*MIV_1:>\enΞR}$m1WQDc3BGMɔBtT0x؟WQ b@쮦;WFG79|,Y7_eN[I5e%ܿUe-[WDY'IƇ%LloJ-22-E~ise:ӌV'WIIICFE!KFj?~|{pUs~4I~~~'4\\#.#s 5˂)SFO>^b E_Z~DD E Et/aϩOKrefѤΝJ9YS%dΰay<(:tLQ ǎIǦO7ȴ+. 'x$;v,O#55777Zi5o>\ZmF^@a!CX*-$'[x> >>Jo71fL>/\X傻6dff2bt:=z~k=8,322h4ݻ~{ NNN:tZn6nVlY0۶gɏ?xr !73QDҧ WP޽uf(wJK,]Z*XQ|UϴiرcSNI&a4_29sP* 4 &h"nz .n#8KrފX6meƪz-XݺGR 'Kkw_P1vr|SsI>%lٲ'`Ν``˖-M/˂}ٓvZz뭨Tv-ZB`ƌM{x" cbnMZ-쩾3RU=4~ZAN6(7ƍӳhQǫʟ>}!=z࣏>",,y)[{%ӱpYO4dmFII Gf [v-5.]:;L8`&:ڍ_㥗ZobZRS.Mrj7xLiWuuuKc`7 =z3tPչRޥéS곓##RC\BBJz|{[ VuCjvT* ӳI[{%ӱpIkZ gΜl:Nsƍ aĉرRu)-uP޽fԢV+8uʑ#HJJ)x/g_GK.( N< ڵkKc`fرлwoƎkZ;t`L6 ¶3>8xLxx&Yt͑#||LpeeK-Jg Қ> å]6AAA55k0k,Q_2 ٗ/_΃>``֭$&&fzbaҥ( {1We$$DΝaL^ ;NϞg0{J cӦN.H+>^ȑm#|9,Y!Ch"Xz5zY[{%qpt` ˗/oԮh(,,sr='.NͪU!i > >ַ!omC:w|AgKlmM{-r22r\#.#s 522r\#$˝bZ8׿RTT>͛7sw`ٚI!W_7dHFw+n/H`EE]{e2K]sirrrڵ+)))N٩0k׮ȑ# 0ӧO?*W9|؂S"ٸQl RAL; P(8sz,^!s9I=((9%_3gΐ!CP(tM۷8W[VNovGh7<;ǎYk`pTBDąSf;xft|%XV[+zi*J`t!!/HM>yBv1섆d;2xr{{M7tMKiL'IIW T1~%璕e#:ZZ qc-Zd>3 /W\.miii(KJJ?~< .tJ1 ,^}Տӧ#0A`g*޸ i9xBax&^TT… 1bt҅Zv܉_~.J}Vl+.qUY?~B~RY +v,^!sn4%''J\\SN$gyo0N8A||}s.#޸dFn; %% &VoIMMرcM[(fй])+[[o;Wrzjk6xzϷoͤZ:i tf]n  _=<;1 cc>B&B 6c&/K=99 ʆ ؾ};MGdShR0nTRY11j/ּZZvv[/s@ƌl $3aBkٶ`? |P;pΦtE?IAo4R1BӠx< ®Ip{%!pI5b!*++gU%*++8|phN Xs~t\KLHH 00Çӽ{wzΝ;Iɤ9{s4'NQGIe˪XI0~so9A{ns?[Y`̘|rXH>E$|λAgb{r 4"Q}|:I%apk֬o߾a6 f-)q: "D,Fc W385ã*6V_j9~BP/??V&DI DL53 IDATt >`9N!l%apYoСC9x VT"""2E[BcG}#0[F0СwoM Pa vm݃ITgBo0]GԭP>p*P`|=ټ_2{vv"uoٛ9qS_GDH>l&?_  lBV;)YdkRm^ܡqI}Vݳ JIJIM%ӡp/^c޽dzm6y֭[Mќ8EVzYys-cǺӭT5?|BLLJN<^krojo Ñ@.xzT~(XK9o=|A rYApxEҔHDS=:oϦ}6Ӝ>3E.e\,^b6)%\6<%+OH|^xRNY!8Ā:Lg\:e WxEДx6qq Wk4f)0HҧVW!1 D~9GTF2װmӇ 577p>OOfmr~>:̜!;{,i΃ksj-{guBh#6)%\Jޑ.!ߵ̯ xjK<j;+bSՙ^!/el6y<+\ldכLZ>h?%IIi皵fa޼۹[X2/̢[y8mw̚5eW_OzgtI;͹!Wȴ9Nq@cLՋ.è#j#jrD|Kw,^< HûǏ_+2ٸq? !̚uSFJ!_ҏ+gŊ7)f^^*ӦugzJ4aLz7O=?'@׮/#7k:mذk?Oo=8wR<7^ep)}Jv%瑚PNa~f3DAʉoٵ,S>Ett}LLEEYX,&nOl%?0Nb4h~'lU-G!WyQr~Fqu(oa <=NcŰ-?`(Ehlt7Zԗ@xx|| wa<<1X,&xz6i;͂NI0i3lvZ[o=[omg—q~;s-[.ab&L?ddfܿj[(T'ΰE!tnw=| F`),"Dʮ_*df&;ge$((V=rW*+9~|01b W2daaqtMexջ4 v{ԩ6w@@!!׹2bRRGv+JG,:7{wEt7ᅫ[& GkNE<-XSVN%,oJLAqq.{f#G H>xM< !3cF"(++dѢv ݔ\;Xm ˋغu%o_їtj-&͈2Wo ?IAAO#+}5mLVԚ~ \DRZ=/{<ʕoӵzFB]6}رSyVnQ&M뱱}'M,\8e^ӛshaYC*zKJeCoN'dǎ(JFG}Dll,ocƍFw/̤IZ_v._jŹqz~;iiV_~1QYkW5Ȑ!:f9|U5G! IcGHSdлw>ŢEA-/2r~M6nS,;,cxG#'+Ν[ 5*.zشicƌaܸq_oكODtt4cǎw}( ||hnv/,3dHVPS <\Erd+O?]‡VPQG&ƌɧa…ε(dff2bt:=z~k=j  z}W"8Ed[ѻqm3݅$Xz5ƍɓl߾ 4 {~nӼl7v"33;9Zn9vՐۙ(RR"GCEŋP(`p:3j;.n VrhL6;v0uT4iFY[{gXA^aGҥ?U4*ኈW̙3RɠA0a-[naСOZ"^i4ƪz-XݺGRY?'c)/w75t4ٲe 'Nd̝;-[_-A?Y920`={]!zkZ"^Qʭg }RU=4?S'UHzsYUO>=zG9>}I[{Zk s\ I&̶m())a̞=_EyD<[֒juiKMTp8dfJM/ˆ)x9i5PXXG2j(g}ƌlٲEkڡ^?#Wk~DFQZ*uPp"$0ԭk1~`U+=N;wTSKv=5@QՔ;:TLJ"'X{|#ٲU%,Y?O,Zϟ^o֞~5EIY_fS!k .j%zlYƮ*ed*]|SfOyQVc_}ᇄVC<2KH!DeM]ؗٲLVY}nc7C !R(~jSGM~A 'Ӎ27wV)Ûq1XRгԦ˖-[OI",22]2x6+**i.+/G9Z"^QC1dH3gJve懷5-X~=>g2`\qhxŎ&0Ƌ/KGhHĒ%KPTL:؞y4KNb :f̘R:ӧ#0A`g"QL1:oV_ެ"Dn:nV:utEkϼeZd.G9Z"^G%"_|ViӦ]q3oq)fΜ)EXXDHHHLL [Ț5k>|< 9|0gΜi6:(7v2qD K9+,Y!CXh~~~^)g?C=Z}e7Vw͜9sᇆF&O+B^^F_z'NOii)wusgҒϯSNP bBBYYYL&9BΝy6;l.-_?}ǚ5kRJcלNo'22{,NVX<رczZ2ш***X~=G~#>>I&zWٴvA`` }!!!p\1 ϳe|||BEpj[.l!zxzz6/n^G2rHOo%"qщ\Z_}'O$44rV\Ʉ \q xEs R2`S{w5h82$Ujq"9YK **(پĘ17-\ر6t<+_2+&^ќ)Ӄ}ٷ/=^4}Y"w-N߾rs;EJJ$}hpxq N^^gFrҥRU9+_29sP* 4 &hѢ/M$y^_X5_e~3[75}hP*adiv c)/w75.ɕԉWL8 0w\ [li֞~t,xE[[dgK6r<Z?4ө *ʍqnovhZW/hkq Wc^lZKj]i@S-~t,xŕJs +Um lu'8XJ+Z"l~t,xE[[xrJKeiiV53pZSVp@RT" pnGpMWDآ=`\)-eIb.S6$"&&S(bJ!A@jDHt0lq3 B!Μ"Í7%^ќE{%D)E&q41b3Čboz>uiBi^c]~M&"^['t1bRM_Ǧ 1yA(Ψ6ŔSIoT MQM9b0&O@WmgO=oo%ձiS'/ W3rdhJ)[{Rt,|3 ?ƅ8F:7{ZZ{cs1=X<5&Gp(Y-=I!6Pތ{lÝۚeY|%[ʾ}o>fժڴZI.\۷!bۼ&vܹͦlmiSPiTn!i5k0~m^:SPQ esTJ=:(P^yLXɹb.V dɎb5u&L`(BJF&+L{?[(3_XjW9PIDATطqt9e: a:&զJjl] a:tkӰT1i yBH{ ;&}s~qFtMw;g07EUVCdugƛ7G~j *>p?kct|)( M ˬ-EM~HN-v0,kٓ^?6Fy'Ld'BwO?{h'ŽjPmv x4YFzvكQ|@Odj8RA Mxmv.Z?{Ɏ_W̽%XJ $0[>Ϭa` O"3/>IQZZ*Z>)) e~Y;fLq ˪L2___4 }a IKK{%00FCBB;wl6EP(.7r E̝[BƫJ0!K =n̙5]F-b 2UVQSSCxx8 D%f9 >^͵qG6[\~1d ኉Wҷo_rssIOO'%%>}4vK+cJ֮ ȑ ۻ({, AAB@EPlK4`Z|z &i͉5&11xx*j>G4 D@ 8Ev:gϑefgg>!'Ç?ziiDx` W:t@SO=T I VȰahۈ0{T*0A<2=ݸ{eW*pdf6@iiG9snn][t:[/-iAW3Yx)8:$$ɟ>mp`;&Lp@L^`95_vFZ6n\ޢ3+L^'**KIKKS9;0`:'o#IPogNZxő#G D@tt~^Cƺ:gw..\`РAՊ+JJJ޽{Kdoo/=qƇ h+I<1_7$ȓV* ^ +I_<KWHҶmۤriҤISe˖I@w49k9cTUUI{1zWxzzrINVիw{wxmUDDj-ģ^J>}9s&nnn\R#ǏSSSuuZ׮]cٲeՊR[vAh[uI3g}M Z-uEvvh<ݶeCAA#˙hv䜜Za ƼꜦ^ΜD &7pV^p9M9fLnܸqo>_23'iZvҥKt455zjiI$fNnnnvmuu\Β$ JJB%K(-8pv0n\1ZmAҔccN+T*aFm)JW;vӧqq\Dxţ/==g}s*>+@~Caa!ŋ|έDxŲe.ܼ믷oDxţoĈTWWo(>+  }mhzΩ;@^qY222h4+/[ڵkJxu{N6>|yFsH[W/yfϾƥK=3vA0b;rbI~~EAAKʕcU*ǎ4xn77BB4hpp/S Pa+>&6T(ԩ:/IM2/8 {HK;jИ9,b^Tt ڎ4b 9ڵGQT?իt$2ґ={ٳǛ{7{xW|E57zo_?BB44rDC~|\Μ9~5rbt̜u Cf_HկFpؑOOd*zNN% `&Dr­[wt{{?=*vUV)LwoRQQƷߦt8fκˢXҿ0YY|^$I"<%"=8uu&4t4CR>Ŗ*ïЫ7ߧ!Al޼OϾ;3g]eQbx1;q FRNϙnn<©SR%d;h'@b!t>zw9,"^QQ?gQ1Wf\ߝk>8|\9{%tH; YAEEww>jrH-eScK,. ʒ+4{JpNNDFCp04NN6}[H<) t'D!rHO p̜u Ee;6G4Iĉ<?$ILͺue;cǒyw(={nqt޽ϼ9ә5kn0o^ \؈ѣ-F|ru`X:qqqc펙.(nVbbf=JPP?H=,lCgg UUJAee ŋrܹsAQqOcx0vHW/|1s%XUEE騬4H;w`…B[I%S M4 X `%9/- X `%kM vvv 2D9ŋT*CVoO?u~n|BTm> /] *]j7*o?fGb;xbv܉QQQ0c ZYwuue֬Y<󔗗f:ÆP Z$AԄj<ذcnst=..=wgˌ7{{{8zAcK_t ;;;ꫯX@(,l x'غu+v=W\tGӽIO&(HnMzͶmW,[͛~zϽܹs9qs̡Xjkk;3g]Pٗ/+F?OBB'N?o1c|̞=[:Է-M95~夤0eoRVVFJJJcK,5{hh(dddw^1iRKx7ؼy3;vDGGLi99rHDPPׯ>''1s%XŚ=66,;ƍ7?~.f8Gou7s[0\=L"]hvAJf+!]I+~ptt#+_ɟOTJϠAz <=/PرddgUU/p%K)-mRG$MMMFaOlPܺe9tww27J z-; ;;;^}U>c ŋ;={0i$87n\s8#_p1bDgԳiSoFo_ c$'2p z/yTMHHIcӦYVENeeMSLNN#~%Ko2JsHļy/ҥKhYWw8s[}ԙ$A>eZ&]uܠJ@x))׿j GΜA"0P͐!vԩo}6B?!ؖ9ٳdddh!!!ɠA%;;Y2v=[ȧV[.dgKJ]u/oOVc_{eo($Bӵ;6yd]4_{e'pI+4 III 6|1c\r8;0|Zqzƭ %+Z7!0YxŘ1cȠ<(ez7l/?ټonb7/?=nj"B0+ (--_!5j=g;ag.9bZ?4r\wΝ5w_y`&6n[e! X& HZZرc3sL(Cz0ήտ]]]BkFgohh`L0 .pyBCCy 6Ȩ 2>>}ظwkϾ.O?#3~x&NHff&YYYdff2qDƏOrr˵XF7{QQk wwwVXApp0KSO /@QQ~O>@}BsIvv6ѬZ_l߾ӧO-ZD]*I+Wח`gfŊm֮u⌳36668:9Z0Fܹs˗s)/_q5뇏#55۷occc֭[̟?kגGpp0 ,+{=RXXHXX6lwQWWǶmYj۷o';;>S۷/ꫬ]V?G\\ӧO7̠&;;b Ͷm2d(G0=ZСCl߾ 60|BBBxygؿ?#VϏ*ɓ'xذfj5.ӦM?su\\\Xh666L0-[5jߢ`&xyyR hˋ2Sأ 8::G\\ $''pB~:dСe?qpp]޽{VcrJ4)l$;{ 3z7~׮]̞=[ь5gԩS$33 Kؾ};YYYrA^zVsssskuݹs/x訬|m=/@ 5mˏmZ@4%'@ B|vWYADaTOV@ FD;9(;UUi5bHT7$X@ ZKmnH]}tf#]ʬ 3=sPk u(wTZi,n#;s)em_IE2'.iC2P; upb(B~[[7FVmo,9-F+u)S7$y~oȧ?iE cu(w(9;BF(H'Nn.^~Y(Jdwm)J$| 8|!;}8 Б~P__C];2;jwHbf8~e~!&n-nÿACCT{ɺ,:3s蛢J$of4W@K{zpH,mblWѝy:#҂ ;W߿aTEWQv]#Z5>#dG̮׬mEԆ : BE<'M! bdxث_u3Vv(!܄:`ͼU7LXR"TƁp2bw֦⬯#0)uW*sk ƟNnʢު[E.9Wܺšڴ*\tQEBp9yn_9+;cR<ˉۨ.kFtWs|_>d)HڼS.=̠{],rh7{n,@+em1B6LסK`.ZE9z.x%xpX0ReRaIȤHВ \s BLRB`>TQ%( L_|wmId//>9nFrk [,˳ ϵc"m+K tҷnYO ߺU$\eɅ]\Ē67eԫ9bёg`N:\jMZn}vFY"svkudW̵@GCG,`di7#[XOo{N*ȖQ- r I[DKtreO iE1*ӧ7ˋpiݵOz]:2d|?s蝋S*,Jg)i4S" ]extxEIQMmF-5 IUs"#Ӻy2! _&uX ^*:r;Tb+k#**L5񍦚,K;$E`o8:kmxC&,ZD*xwfg?K/MOqw=[_9k@S/"WKy><ǩ]u 128Z[~rs397o>}Av}}[nY6+Fo_Jewmkʶ[qzsxBFJJ۸bI b2gƴݔEyF0W,g-euY_fv^qqv#]:X0NHbJe??u1~a/°2"Zuqj)e.,iY_2RλYփl)++x[[iޥuw$29BZ @Qء(bE(K *rUE T{vdN}@$X3)[Z݅G~~˩BV Hg (bXbeִf\iB]±H/b!:֎odJ VbNFF:D[QB~4RmY.+r@*BZ²t?&cԋ}Gai7( W:0MrҖk Rpi+e|1/. ^+ɣtŁܤkrzJ5ʖ]N6x #ܕrDFW t.3[)7C銣i&I HV1{{~ZnTT$JUP7ؕ9QWj ͼunpJU%SYxxVB`#Ϝy?P{)QEN9 B6%[FkL3l"@)͋>YAJx@N$$"lRR}'%h(b(|qaBAEQXKE|bT\7"V,E (F9(G"\Jծ 4Xx8]V\nU͵T7ܱ"{Os2t*ˊx۩k}G{<\}5z6TŽZ^vA娜9NLʸvFvH̛g"Z]X*T[ŠU^$<Ԇ ќ:zN2  &>*J(xOt}>)+G4,*+̮Ne$MɺX)A@LU-\<c;1\y+.EI"ZK oݸZʨ <%H+P*wz/N}v έZ R^Ǩv/H8Jt6U)wvojh$ئF^7UJ)wЯe 3jV)-Oy4HG,˼}Bq$.bУ\ /K8Rs)+_{Cc8[r9qܯGFY*+N:q9Gg?S;Jѽ"DQ2Y5lT\k긐3 b:ot0}@W6>qI"QʀWQ~wF'bxyiKu7D ke:a[ЋyoTNlcAWBKr<^T7䜂w>{s#f_?~M;+4R@iwwlY#uܸK܃k"*AzdNny42VRAȏsGP"iD^Wk%ɌB jg%qe*7&Sek6ْsG`>cfK(d X(Kq܂,)4񳋇7gl]g@xΣ^}DQ4\R`+b/;%ȯ^$M{țDPDyIVIa 1VKOz 2?~g$חmksܧFI\>?| Xq_Eɍ[w5E^?f)ꋾv)(IJ7"u/ԶG`_^B]Em^d"!PH]&E)ee4ʽD&МIb"2VR:(NQ_]h+@QʳnF*M%Tsc4LSR5C#z oNlND 7ق0'XLChA2nBXPrW!ڊB+Vh _˨/Pg_jNM?Z>QprpbV(M?̃*8h̨pĂ YBY?Ƹ,֤-3P,P(K4k< 81~v3jJ*%D8J-3N[S0He/xB4+7[#M*ueXߴ@̟ˁ"ahϦ %XpKP-D"T{M5%p&#0@V_@6&'D Ry2YЁ*ҤmD"k2 菉[ݏj\wF2gw} }cK//PM4$K&u!u0!:\W[4N#K4 -#JX-]7$ؚ@pP9;`~@ l6LⓠE잓u70$\*f˜=(JT7$X@ ZKmCW(Hs(89ysPk u:Y@ B6L֡ PI]G%@Ux4Ѕ%PIow{@ 8oş@d.@ g@x @ g@xTdɒM6մVSڵk_8\+}-..Χ2aaaÇ|c 8q5i6IcCAMP;ow+ JֶZJV(UpZԪ<#PxZZYYYBB€n߾uqjam*=-vk֪*S%0N)YISV[[{:uyZ@ijs_LLLVw5sLZ.]J9%f%P}RBm_-CbU*VbJFyg{|y)fy/]S'??҃Kw\} ^Xbzը=˗/6lЧOaU_~7npL4M/^M6~~~7~wxիWZ*22/^*\|Yڵk_)SS)77w͛7󋈈3wUk׮˖-X\ݻ_~!!!/ʕ+ykӦ._ks-4F}OQ_(w„ QQQn޼ +9K8n͚5ZѣŋKh-K{CCxV:pop60~X`RI"mgfVhV2 W+$2wybA"PZ֏T1 A?>:Qa2bSjf͚bThΟ??ũT7 `̘1nnn<Ͽm۶MNN駟ĀAݻ/]2g22-ő7nؾ}KU8nW^͚5{#GN8qF]w'''%6u>SnnnnZpuVV^=|2ܹsG6.N_3ld25]Ü}W ˯^:iҤ*K4'C32SmO)cuTҾ۱vk aeU*e"ˮ.= APCQ % 6zϟZp!+W;m۶BBB>SSN ~FFq޽{NΞ={c$J,N2gϞ111w +nVܻw/M.\(L4믿NOOOHH`FVurr/zePLϘ1\#U}OQ_KII Տ0aºuPU0iiqdѢEr\.ϙ3gذa0)ɡV"5=e73g,ս{RBXhF cya{V pzO`D@AcV:Q t넖wl(((Xj~j+ g4iz]A~~~7o^| ~~ @֭iӦdeݭJbqXXCQTxxxzzzNNNNN\3ƍ/B[njc)kr<::/k4!*0 IDATQe&EYiTvH6Nڭ{nAc5GNnzi PnQ|FF< w ReD}vQ%-- @Ϟ=[jEQ_bRV-`6lhsGkvw,Λ7o%%%-O^xV2S@cu}MEWInǧ8 ;#<% f%\v6mӧOtt3gzϧ 皓'O^&EQ={>>s̙;w={?,ӧo߾E?߶mێ;4M,4H$2}cǎݴiƍmۦh>@^zQ=Yj3պ;o(k/iܸK/0wdRuVcƌ{=aH_bTObLmy'@Q͛,Ysd&M=zĉOZ5 1*`j"@xZp @ @x @ g @p~lecjTzFe"C*8v72%<8nM;@>x۩,Q0[%Fx%<m@@ 3q!q'`3ձ[~6e@= V1?ۑ8@f.5X̗,~!uOF!x?v@"u?kl>+ҟ?\B9EܴMĞ yԾrVPK˫> ~>q:Wc܊4+egpz׾[/x s & vKa"#1HvuM!؎BVafN\; ,?kc&Z(=*}U40X ob6uR~PܚC 7Y Mp,YG(/t506r_){<뵏 m~~ɷlR5k5Xn-ڭRp-˷gj(C5=G>Ti9>Uiaa` ?S6wX1g >iEgHk,>?pb^'j{75%~12N ){r YS`giu`pxӖa,c"%Qms|z\vOҩN]U8 M3ܗKg9es-A|ʷLC2(}<ƶĩ@b aPBpwnN!!Z#U|&/μ/h:OARӠǡ_*bN!≑-if&bWaџF%NrA^MǫJkԇJ;O5n D%/|2WttߵȘaoM tF$_2R8{Y'4ò ð 0]L~m!JJ~LWcrao2z -ȯ!Ƕx|¿9:w9K+_6wyh>aD*4\yXZ;Gp`8xJGH'P4N~ ,Pi8Rvk,Cq.RvZ+c!QSiW`iLj~70䑙*pBZyB!IEbP"&o0͸(eH_3*'V4<̦ L䙎T߼y7TL>VPPlgUKJVV,2f" a0W_1z$=nN,eDmu%n{N u_1'%zuϣWRR."O vÀHSSd+VwZtM#zJEZ IJo0<^@W4XT,TN͠ %e(Q*|X/5s}`L[Th _w+w,&}Ԥ%֧bX.m37)yt.ua- 0ӳ?`+b~<~. [̲GIGPZJΣ<%~wB@%2nq9#bX㪵plAg."xDR~}"nP*O.+[!Ys42&eYa?1'A0v~ DDk68@2x=WBIᅵ'p<؛yv2)Z8aRkTMg`a(nG09~ vD)GuK';GX:foگ6ቐ+uTʿ%WiʜU0ͥZ,jPp[I_36-b6F=Ze ;xshӝ;|\uGʼLkUsĻ1D_]GwL,x?:w~TM01ቋq><;m06%}dOCL:#e}V*G!=aE~cZv萔oD( &>_$ qͰ/aĮ򾧓/\U" yǝPHY()%bRܻ^ 쟸D&k1AluCo6 kAG-[@< |XPjbe*u<_(sS?RMhҝ[M&qη [pݪoche?6 k?:J6xiFxXPTs݄Xo<=OZB*S=`uNR,, bjh(T(v9vHIiibя$}M5v[N)[g`zw , ~ptK^MqWiai9[ڏIحe0?n#AeYUgfܔ 4 63O bME)t ,ߜCĿ &蠕5~z]I& Yޅ|MiOڑYP vK|K-^I}'oc, gؾBu2]u;شd5l}8 o Џmf-60/oLtaqNo2>XɚD B]d1?|GIR4 @ 8ǹ6"k= @ gD ݐL < @ VYM3z`7GJU}-5Ұ!/O+[ᩆ@x {`.Ǐw @ V9@AAAT!!! .\о}{kD駔H$&u L|)8 &W_ҥe%<[,B%]JHH(,,[f̙3/^oDDĂ c}JX ׁ7BUԒ(*ªU8wnsPܟ"Ok www///__aÆ=/_NJJ9sf&M͛'駟ryLٻwoV9jԨ/Rg{bccOتVX%} kzL&ܴMĞ y:rVPZ(^Ym v`K.]~=<<ŋJ]t޸qcԩ[l }xG)))F:pk׮Ç1coQz lY2J'͓k b^|uU@ ...4 `w}ԩS.]rn@{h@xj},jk} >PBľC^<B; nvöx|¿9:H-'!̣ґZ(k]w0 <2ߨС;PBwUk{} JuH.Sh B*B`q&y}HTW\ ed}vۦhzHiRr1,4дpKv +,040] hV`yWذ*VtttPPB ~ ,)w(}6%s=<73yo/ ٷb:T{?+d+iaZsah0W1zR1|i!jTjmٲe˛7o v\3f̘1֤8qZ by)-u0]B{jHhh̅n #H,r[(x?XJF''ִÇRktH-/QjĻ%t?G̦T" Q_@#oؗ-(P8u 긞wb`xƗ? wY4Ŵ`4ϗ#\ԏGt'Vɭ?lܹHZVDVxòBe?T@?zjnO"BaPju˟x3M+v9(ATœw;$>ʢOb}ct- 7|h9-*?̰BJΣ n Ş|)N?@!?u/N4t_m;W_Q1 K,KB଍G{zXrXcӣfY8udž3 e}m~U j[pj3Q+] 7PkooĤm90 ˰4˜ʗI*vg,9@!]@0͜%U-6Һ}K$K=蓷߸nG8G`_1zu_1 K5cu F B]㷿Q238k~Mx5%ElF  X'"h;hڬi\6oWAXc1sׯǏ_VyM4d={lܸ^zNNNBhʶl*Sfff<ݻᇍ7y~Ȑ!>_ŋy)*--]d >pwLyիW,nݺՄUҮ]_ƍ;wO<==իw!_ ɖ.]:j(|޽C yڵk;s o8.YkjRqFN&Ls߿Yfr|ɂ;5Gt]oVf%߾fs_2Y_._Lf͚%d? Ҥa<|@Xܶmۤ$7orX,NIIȘ:u-[BCC~mAŋJJ3fr*@8ˌy>##c͛7ꫯ?쳰0)M&7YYY˖- %ҥK3f̘;w. ڵ+..ƍ& nݺΝ;sŝ;wo߾~~~SN=zhRR/\U#RKI&/_޽{~va~ eeeݺu[br߾}qqqyyy1bV 1\XȫkCWWWk6nOd>"[x<ɘ4A˸-#1bČ3>|sNa޳gO޽Waa᯿:f̘6mXfMvvNȞ={Fѭ[7/PTD"Q||vƮ]@iNNNoJ%֭[׽{3g6o|R BbccǏ?jԨ۷oK$O:gg_$믿0dȐ3gꢢׯwժU&o߾ݺu4h}ʔ);vpB)ߒ%KL*_СCzԯ__P&SJ-kgg֭[xՓquu}LvHHHRRRhhRFzƎ `|իWo\޺cqf!k+RwW`(8ù5Z&߉E l;v\x^x@VVÛ4iTPPՠA!W_z%_...ûj+t֭]vL"̥LMMp႟߀ƍv}رCrL܆  y-h;|SPU?֨KԒf}15e֭W*>6EQ˖-k޼yϞ=O:ˮ3KXdsm!tGw)B.y<9@X{2sΑ#G ck&\lKMM=zhÆ i˗7nܨ! J\ @E"0C:tŋ"hŊYɔ˖-СcP&mС|{Ç3g4!ݻw\q[ }bkKHHHx:wXÍ7^zŋgϞ I۰ ~YЧkC;w9r3hРɓ4M/Ydʔ)waQ\] MTcc5b6 El+vY0-b0k(A vHDP) HY`?ו]`Y@3{9;ÞX3f +,,ܴioXL6/))quuԩSV޽\VNNNK.p¤IW\痚YWN&tvɒ%AAAfffݻwo~6[[=..nر28S~Ν.\s_A,++STTel?>ydqq֭[+"\uSgM.p˱\;svHCz ֔z51z˖-[ti~Ξ=mߎheX =Ld|-hn9N;Du&M$%%4] `С۷o`~XXXhjj۫fdd9rD8q.#LLLN8QRR8qcǎصkWjjEzs9'L͛'N3~k8={TRRa9LLL1 ~ƍ۴iĉEhO5џEy^ƌӕZ8::[[[;88ܼyɓUTT_~9zlXZZ*ɬ⽢ X.S.j;~j/ 2ҥK{6 @XXX޽eeeǍUuuuϟ_VV6a„*ccSNN<ܸqc^2τrҥj__;vمٳbmݺ(CCC 9J>ls|HJJ&%%YXXlٲEYYYWWƍLN///MMM))'$$0EEE&M߿TTTʅ`ٗ/_zxxdb艞<7_+&1W;va8(a$ig̘15k[333/o1bMӱjjjl6ӓiIII.tw-]ƆO***X"11;w03Yfif8޽{޽\.|#@_}UNn޼Y6qۿUU9M)))]tIHH(//_n… if<"777CCJ&BChY&|ɓ'Qc[&'p%pLhkͪsֿeI?nڪ]#0^Z|t;v"1Qmg.O$SB[B{D}SOlb;]4S\+ag @ "!TKDQQQD4I@ uXW !wݻwIJJjkk{xxTUU5숞pVX"--mnnF5Q+XmvTh'Q:OvGVQUņ ٳ`0jhbCA++l~oXXXY55&?Un*TYX0^u ,|hT@؈:/}h6/bJ: a:thƍvnnnAAAG:uԹs缼UmuvDO"BzɦhR X S'ߏ`̞ KKܽp!8a 4u+""[]e :`lKXp!.0hV4c":0:@OO :PUU=to&ͨf"(pȝ03{+W3FCC}6_D;7QgGā9rdɒ%jjj>&!N j D'Q>: ~}(˙={6#z~XfMc RPPxbEEE%%-[08v X,:II )8Afc1?X <XpHnps+?IBЁim۶ݺudԨQ̠?uֿ+))ŋBCCM6k,0IIɔ;884B[| ) aAg %DGG'&&DDDٓw:449)))cCCCfu֙x{{iii?М'ZXXZ*((HGG'++k߾}mvI+>kK/A\iuRQQQeee/_}ʕ+wl2&]0'rfϞ}Z͎&/_9sfc ť&%%Ǥ㬛bZ_.T/fv ߴik֌j&!ґNeر~~~uM=iVKKyϟ?~6 >/Pleߥ <էH&[P<ƏPTT[ ",33o߾]tA]&qX:wƂ1Wb^&E^@Qze1uq7Xi3:/@M ^ѦLBF/~55/^0BNXw.X[3JG;}X]taWQQy-Ç/]TpպhΎ艩l6lʔ)NNN{MNN55] aObCu"<<<##cƌ<Q bggfggfvBŔ)GG֤ŚBB>8IB15.ԗiS0 TȌ[ 5z#!<'@ E)0~E1BN^z ]L#ɝ>,ʨQ☑|;w2."Dgnn9l6oρ1ޥ$>ԩS^*8 :wgϞuĬO?WGplm1gBCO{5f ?OP#<:#9^m$z/ -^u Tb 'jx *,CtQgcQ} 4B|<Μ>dd0i8n M]$TdƌGLCP˝^jMXXXnnnDDիW\)!!Dmmm.Y$((LF+>k"jC\ԩS\sQ rŅ lYYYeee!J,_ ܉; -5kP"fDEddd=v@\؉;CkqE;-òo -vEWdLBRS~;F `8Pf"B&lz|231>[Pwqi$Tdћ6m1bD߾}N*zLCP˝0ݻw-Ԝ?yݙS"ڹ:;'N0͛7'N3fo&t55Zx.P[[{ڴiA^^^KKаG ;El,,)W WTEEEJJJ^^^m7 0v+ڎOF<7_+fL:`$)a#Q0PqH FMzxnnW5Ǩ/v쀝lA٬r=P '-6go޼9l0"$3{d~ 8z|x]1%))޽{ZZZ3g0g(k+h'Nq(Ā5f9߲ ]Wot@HBqYK /n.`S8&̏1)iVgϞ >[lC1 >|֭&Lh4۷oMJwzg ޷{颡Z ; &>Hb]tvH‹^ё$ы<]feec/;R"9@t^X,/Q*\'%(8 YX0 ,|@lEPg4DDFFX,f)yڰaCKw@ |23gk}̜9lѢEݑҹs綿}S`n8p mg~i{{#nA+0a= |Wв(7՗-[&;@ ZQ F?%))iѢE򋢢cǬxyyٳ'//'N0554h IDAT{7o_iӦKFuu͛ע"SSS__ÇWWW 4СCfffׯ_4i… oݺ߳l___7YM43Hh4i Ptt*^~=m۶[n5ˋjoo7mڴYfUUU*ʚ3g7wZS6,,LRR2%%EAAaw_[|$t->! )1 aH@FSlզP(Ǐ9rYhh'.\`ر7DcOxn&<ٗT0RSS7o_ndd_g=eGxtGla;sBzW~@ օ^Ѡ롢#tԤ"##cbbBBB||||P_|||"{}qBB$>믿 377󋋋km:%է6E  T\\\"Pԫ`bccs;wp8ݻwX_Ռ0k\r *Q% ;w`4`M J>RLkQ!mxzznذ(M ԟhggWYY/<~x^^^***̜ܹs7nܸrJ&'OY_~qqqa2 W^TZZ*))}$:$jm'g,x*%DIkN1O+!\1cߞw. MЮzԱҺrh ^`gHGUgf1U9/E:ø,峾jbPEQKq(%Mq(.8VJăLm4Ǧ8 Vۭ-B$5T}Yiױty|yY;ZgQT1 h\1gçRS,|ϔaژSo1k0ȌU(/dDwYjY䊻ǝĩP\.Eq 8\P5%G8"FOK@ J0&2Y סXcn,/'}**cYo*=-PDpu6~ )9^U4<I`a!B2(Hc!٣{諎k*ǏPWڰ#{*7! jtJD0mHŠ &]"'}vbu,͒)H{V[lZ.<>7SN\ Dj!x PE04 ?)2:I r'1Ɯ`%Pr2~/-$X/swU(k[73vic3`h:Ltqߤe>e 3  ,c1Z5BEm%%%,+//.@Utn\nο/w;4Al`g+̂_|!Nو(\Wzh`yvƦX{z %nD nL]ƺ,+q04,dH̃ 8 ԅ`%Pb񎃭$ J5X_rBFFa&LҡK^w.xp).aV=\ `?0-[UCQéY DQ3O&_}}֭[}ٳG9x`YCC۷R9[]N.aۏ_K8D##x$|s;a8:Fi B[t.ͬV~~—~\$ o?ʬ)H[^ *r] nuMbnY͞<[46 xqP^MQ}?/ЫFZ):=0#q>3*R}$ҍf(e>rƍzz򥇇ԩSzzz'O 4 gϞw^?fv&M$##ӿ(5,^XQQQIIi˖-LA[[uպ S" $$d„ vڥ\PPеkW$֜.kq5WA^GduLO1r >Qx)'1sϐ9eqKפ}<̺jK aQ?\x>P!3;-Y/py7\.snE jbFDVؕz<DuN>ݯ_?]tQQQa555?ZBwڵSNBsܹExxxFFƌ3$%?rz&yyyʵg+lݻedd,G82c-~Ó|c]]];uTO~#%%5u~AFF;'Oݳgz>}5\x1<<… 4M{ Ap%*c$vb.q1Nppa&)@ˏwrrrssd RTT$%U70dcc}9s :  f^pYiݭ`K%_HV3 4:Vb{? u͒r}PRnHDLLL|||srr볯fvvy_<.\8`s`jHJJw̙3߿o_"0l=s'w 0<*Ztуw|ȑnG윑1lذ`&]Dڵ{oZ]D= |LpZio^ ;W"IecoTbЌDLW=w&G4HGXlV-]Nu50*]i)>|֭&LtM aaao[#"a/-`^pv]O☨Ƕ3'~gAԁi)s#wA|jݷgNHo,EC?ɵvV닡=}499ʪ]# iiiGm§7OI[$׮]spp+LpV@ ̙3km~~ܹskwо|-siӦZ!...i ŸSJJBp]6YXW@q dZt O[KpFsBв#@$^@0{x{V277 9uꔇɓ:u{رc;/7l0337 ~g[[[ooT 8 w6Z(#OW4[@ Z#@d~@h->^ȍ+9,LGh 'ZfL mZ{aR@@h[^m #t4FYD KMv`ԩW\y9OwݻB L$'`)pBem֤e}{"(jݫS8|!0@hx>odҏ%r6mJU^2\.Jo2Tj2F !훔V7/X`}6/O.]<`A :n9MUV1F]_YYor)7Nb@Qq l܉Lڢt$=B3Bܹ0DI1N~ nav\㏙7kKz0\ T $nwU"f+65}ߜNURtXT$A峾jbPEq)Kq(%Mq(.];(D 4MߙEH{fy[FQ0@RS/@.Ċ0{ Ғרf6Tcl[Yhoo,h)ax0PP!N[S 6 3V9}eEofKʫ3+Fwfr9KQ[PZG@@VKkCD ]i6MґtH޷ϞƦ}(yY pQ3Mlk)譊HÜ>H)g#ea0?5z84O0z}Ѕ4ʄ UUǢ~09B.}C`K bp7؇4hb>" <n E"O=\Kơq@E%nASo222˻[􃢊|N }(Ь1Ak<2yegf Qd? P.ekvY$""|ƪNΉ1RTJRa: dMz"Ҽx9y0T0\/1䥐io}N`) yQ=/41x? 4b!8)5Z 4,`r =޻}TLg֘v1BR0LJ 'Yc7إߏYOFJ!tq:̨]N79 sCq7c.fCd)8årwՑd:d#`" 8]3%|JX;ϐI<]{+ީ%3C)Š', Kǝe'֟Gi;$'(4  dM1.4#%n- IDATnp@5u[-j5~n14p%{-!'eYK8mtӾoI 6FjKV:  0x UwBz"ZW zVQR{"%såFTrug֘/!c?CB3Oۓ"hz4-č89ñ) uvЊhMsbetԺZʸMo[)!Je+r _ Z"7ab䲼"#myMbET rNVDnJK=udTTӨF'9.@4У+rN__iv= :6ztO' #{3Jnts{lKQ벿`S3!V^)EQsN;á\HЧCV)N'83#Z^)w%EE}yZFu9@VZM΢`5@P}WS 5_7, BN#aa,)sL12~27ʡ4("6Q&VTB#^lOX]0`^{r"d2D^1iWwʝ2CQr9}0~]5bx?j&N2#CG_ïCi5@2;K5y9)T;,=Un#eAq4K<+uLV`l ZgxczO 9!N=8/gc3Ϡツfq,nh sTrp5'?\{#Cط֤ʽ5,~~ Fq8\Zp>lLW.5l N HŎ7;KhkTWP(.KJ"I>OZGJJ0p]gKᚃɸQ=+>>GYdxܹ2III[lQVVսqKSSSJJj 5s EEE&M߿TTTʅ`ٗ/_zxxsfd艞} ߃8}ا xV"2K{Xol 5'qaÝg)4n PKFd:[`@!Va:,gUϦ ,J]{Y#<T+s9ef͒ʚ3gӧ-,,<<<Ν{ݸ 6|7>>>aaaRRR)))+W 8p -[ **Ԕ_~B{ե`F\ iXnǽvޭ7wÇx%%޽{[XX=ztɒ%.\hFEGG7l6֩۶m{𡑑w}u1AAAΝۻwY?GjRV)˳Tfdx.pa!L`` # fh 4}C T Z/m"A鿊N8&[]XQ~?;ͬ@6ifZ~۷o544~ 0a5]v)++o ,8p Cegg* 5k֨QxzzjhhfPGYO78999r??ѣGoܸĄѣG=9sĉK,b*rvv={ϥҒWJAA͛7׮]+!!1qÇ֎޽{YYY.]x+`֭O>7IvPOY~7#Cx?SGpd36T R31(B&jSYh)0c*2_n}=O֭KX,СCdee]zW^rrrl6;++K__)ebb2f^%999S]vԩS~~>MMMuTTT(--奌5jVX!##d(js]r/H55)S899|EtN>jKJJ`j&Y,־}LLLƎ?c``HJJN 5)m,1ͼ Q\_;!  "P'̂vvvwڼyRSSÍԘ111AAA322も2y Li1^ˋ/$$$QQQ^^^̨Ree?|Aff߾}_8  E[[=}C^zzzMvUUUzz6PYO٦5IH~/ld7X@ 4#"ӧO'jvgx;w8ݻWXbf̘WXXi&Ù6m߿_RRjmmݩSZܽ{7:ӧKHH899-]… &MRPP(//_r_jj'szzzwuqqqqqɱ`kkdɒ 33EBdeeelv@@/ǏO}5)e`f 7#kְA pZ-H&Am %%I&EGGvpvv6lXpp0Cn߾ںhƌvA>>>999VVVB>o``0h }0119qw}8qDfM]RSSٳhѢxzzΛ7rJMMeذaÄ ===>}:f̘pIMqtt QWW722ZzիOс23ѳ'@YAD>U{LA|ڣ]\\ڶm+122?|03B4:JzG>?܀wq1fL; hI\r(b$E+a\vU,[6bIe~YHЅ.tOƘz^z<=94~c ~cC @ :z'}Γn߾}EEEvvvvgnnnnn.N\\<###''gʕ{3HJJspphM_nڧO?LWWWiӦʮYFAHNNVVV...vww߲e j۶m׮]c2&L%mmm g͚5o޼:M3u9#)''@5هUHIRSScGCC# G 11o|pKJHHֶm$64~& l@ X͛w킂6M1W5yy]v%&&r޽FQa׵kWooK.q簣cQ?K+++a'##cddX۷o<rnݺQy011LՋ.RG'w֍*uUQQ7Kq7L]np`/Zo>wvZIIIaa֭[3k'mvDC;֛|:N@ |Q|9bl6>++f;::62aI(-^g䩬T0XhjL{ykիWgϞ5fjǏF(,͓'OZ\ĥVΟ??&&.FK ag+KO ޱ@AZ-"mAfa Q˭`u7bj諚t˷V{7y$!qL@рS4lAEh=F`ĵ$ Zhj(:lUVRRtRyyyM6O]`6Yܻ@ۇ m$_0vsSWWѣw;---:rNNΡCw@c2sح_~ɒ%zzz|'u8>@z38Il¦ld%X=|L-jz4TW4L|6fy& q)'/\0tеk׺AhKrn… _nvN>}w 6lѢEzzz<gzh'ݴ 1KRS 4*mA3gϞ))WKnܸA,ZhѢ7qr/#e… ..پ};gɓ'ܗtuuQp%$$6ESn7~JJJׯ_p5q 4NuGAGAH0PhN\m牠SxSUU533>,▖6kaaqŌ ///# ǕtD¡- 'k`` g wޕݺu9N>tR˗h ifivl@$a} _e",F6wlds@Ehz&:eʔG]t|s&x{{у{[ NPVVVTTęx UVVw ˗AGǏ!l؀ HH `bp"$뗗oYAđg͚_/^xȐ!M-rb$$$,,,n*))Iu떜hWNǥ諄[YۧB |bpf[<>w\rEAAAFFG85{nePwG`#hBs&fPb,ց4Yς MVVMqqOۋ451s&()abPWǏ#G0d`87=sAj ZF gq D}}q9pV+utt444f͚WVB=8pЮ'y(QQQĊ1-ܞخxċC|0>@?aoe8Cijg nL;;'O!!!MD1`l55C\7O7y[?"x),E^|bbccDtMI޸q^2֭PTTT]m$xʢm@hG(;wÇ>|XTT8c3b 7x3s]`x{m@CзlaaqgϞq82hgϞolzo`\bj-obbΝ;I?SaTVV&$$O~Q2qDqXXX4-ܞ}WGp$*PDTLQM}vD׫ IDAThn߾moo *"""bccy '&& Ս``?py - &ah55\]]Ã'7wWGzҘ|x''`>tcCd nSQ4ޓ|u|hQ JNp y L¤Vx+W<}= iiiƛ6mRTTԼ|2333{n:JlcMM;w'뫢ҽ{}t`Μ9޽6l׹\ƎtR999CCØ}}}iiib=kБ9>5>,uCмu@>@ ,8}4̛7OLL,//o'N066u׮]7߿?..NBB"###==}ʕ.\:tڵk]\\.\ ))iРA?;^dddѡ_lvNNѣG峲|||W233]]]ldee׬Y]mox߾}[l155x񢳳3u[5W^͜93((믿\x㬬,΃kww@33+W޾}jРA B䰣(Eftu4_x:IFcʼuMlPWu+ĂM!4oGHL5['h Dz?TTT.\yʕ}?RRRp^T@zz:ϟѿٱIIIbbb~~~ES V^={=p͙35@;55ӧO߻w͛ٳ/躜/toߞg111GGGgg3gΘUUU\RYY9(((33ۻ)IZ :sOg?>ݥٹs3gz{޾}eAtķoF@ #FKBBBrrrƌC=zMMMΝK ]i7oL4),,q+{6l7n 333 k׮L__%K{{{/\$ tﯠ0~xz֔P~~z'8uT33۷7ik{c 95a-p/(.}&[C;k' Iduf$%XY7o@pҿBG}ՌpIQ>ۥ7ʼ,#0:H;O ?1@ @ @ 8A:{ @ 9 @ DonKU @ ֻΰܠݗN@ HEE|jjpMFDD&&&rbLKHH ) `EljTI-hIBymO5553}||+..YWWZ'OҒ477knLJ XX[[I[`Ayyyk{K  YG*Ðڨ͇ۖm ]v=^y?ttto.rl`o tGwZТGaX ל~9c*,,|G =z(++8p@[[G[YY!C/^xzz>}z]]]~***x4 Ffl0c^F[֣>;6qc)>tcRVV;w!CRRR޾}ɓ'cҤIˍ7hyGܹs;v찱c2 ˋ(99788W\1 zNZ$`k=˵q0<]хW 7kqe>txCSԋ<#ԐX:;u;9[(ȻPkLM=8*2PŶjM )C~aQbQ5nkIkitffm޽۷oߍ7믿9㹉>rȩSv=o޼tΥ8 wwwN&#pa :С_` G ђcmmAߟsԔ>p322Яl6;''ѣYYY>>>}+)x!LWWW6YY5k:@ G=0p|' VZD7)0Y _|(;)6>&Xpg Ŋ8~(te-bvn\U)}>97Uշu. \C~[5VX5,Eq`QKӗA  @}@CCÇ{֭qKX|9ѣG/^WHHHS)Ǐ;j5>*Pa@Ҝ*Tu@7DL)SԚpY,iiikUUdPPĉ׭[O$n۷6<555%%%@ tz d& V :*PjD<|o̚80 0Ka~ z| (38ǢCLbmpBR`h v xkyocC+t3'fE[]uN|W()6WxVjO2EP`QmmQ]AN8Yfq ƞ={Lr-0//O>y޽k,kkk }mg6f)ըP tg@TPP-SUUPYY)Z***8%&L>|8+VHJJ6%)x!ѣlv}}}VVvttl˘% Uq!"`NHnsPYXopɰ< _!έB;T';3|dBr%ɹsj@Nho4,۾&M@OeϗqZnjj(Ţ(a3oYѫV!y#Gâ={4pرr///UUՁ#nJNNnc[#|ga.vCj?444VZeiinʕbbbx̙#&&|sss99+W*++effz{{7%)x!:s)SQBV*J})!W_wpQ0(%)̯@M=cf?d-Gr3 af0 Ehw@޽~ɒ%jjj .ܲa#d2BCCڵ+33sK,~_I ih^zuƌ @/;[bp RުȠaN7:f1+vic" YeH}O`C8 +qRVu=87<~ _Mxb,s~uVY%1'*Ri \u#ώFOI45i쏯b8> ;p==|'OƌSZZ ڵkuB1bDbb"}٤%>Є&[ p! ??o֭[n#p… ?۷sB7=yI %$$l,@x8 `?d]w>h͗ _(Œ8(>iOFbN ǹg2j6N>#MT:قլ&v v%k4O2_5+EJS(iSx#2z\K&-j3Ooƌ5vIQPPT\\LQTpp0Y  @83>2 Ctv x_U6 ~q(c60 !qyqe,aeE('>R<yJrSSۨ Xa(0%ĉmmmNaÆh@ " !z9qX[xjÉfG'J4-D#*W&8)4KLj mAYUMvjs(7Dgr=%ד6iú3I44U.vb0۶mɓ'w@hot+S5Q _=?ɟ%Z?煉HHۖ!)wnwgH6x@ 4.R'w{̍MCӰKX,EQ뙇vY#Љz/v[4q(Ђnw,Sy[1@ҰUm@@>$s@! JQQwIzzmDDDFDDp[[711Օ(!!Q]]84L0LWp n< ؐ)~Sz?x\||<=PH`0|͙3gGcǎ͛7-l^Ͽ+wwwTB'R\] ڊK`׮]:t(m׮DGÉA*ԡ> RB/"gq?O$ȵHt/|X=yLuuu HPUUuqq6lXgu@ t k׮\oڴIQQQSS˴=j\)++3772dHRR8===))Srsh\ŋO^WWׯ_ +++77?#s @Ox#x36tyQa81Ѧc 7|Gыf0G`0v`0VX1dIIIKKˊ gϞ]t)+99[mppp޽_zE8qBSSSAAq z.]ݹs.ܴi1cyXdyyyڵW\~| &deebwww:fffmۮ]d2'LGKFGGΚ5k޼yuuu%yyy ,طo_QQO+ԍȐsww353UmAF/G?~#Ϝ9`ʔ)܆«W._|С?;wlh" e˖7QQQw0agvvU\t8qwNNμy8Ģ6m蘗GNvNvIQ~3 J]311ɽ~ի544>|ػwnݺUFxb^^^!!!~xРA˗/اO7o|ke IDAT2zzz ? ,,LYY9??Ϟ=O>=~x}}'QF͟?-mmCM>ŋ!!!huuuzzzNz5DX~޽{#Fܹs@;%B,D nϳ+:q℡!}`0UUUqqqgϞ+W(((у.֦Oŵ UTT蒼/r u[0ߢ dTZ2|p?&4GQVV@ c ++6[%--dccC+((L@spiQD8hhhp~59pGyARRӧϝ;Gggg'uuu*** . P__ܷo_nVVV m~ґ> Ĵծ- G G\\˗ن@#p&a3Y(B[υFg?}U݇!_Q÷-%ڨA,WM[^P\Ma t)^!>>S^ԙcVslKR^^`eG П[Nd aN+\ 1ԉI=)Ohm-;wQ_*EQŪaQ;}+Pۥ7ʼ,#0 RNZ$`Z].q0<]хW 7kqe>txCk7B ;fXe3"Ul[)'@E(UdC6At<쁑 8A$D7)0Y _|(;)6>&Xpg Ŋ8~{;/ys栝*WUJON>l,ͼbfU}nz谇G |<6Wx&@pX5,Eq`QKӗbAt@`|[.G#`;#B) JˇS0k8͇8.9,] 8Fc4Tdq z5G|V’Kہǁdl =eB,Rl=Wabyt}b2>5mx[{B^I=96.*x;wCxRF26WxVjO2EP`QmmQd*'0G / W6H_ہ8O0?HT7hk)Ա *j0'd*b1&GB7_⇑ z JvZA0 ÊaSD}(¯0 B!ah:'8ptA%S3.OΝW"wG gxgy5kz/{!mKPEqOPUâg޲W@@t4kBa}o:.ڠ n`}el:l'Ee7<.X PU}g#6ݤ e%!2|u<Uq: ?sS=/Ξd6Jsv07RmCW g0|hgnk>_vHae?Mb'5U_ʟjdPb|(E&^2@@tj@WIX=%B*\b`0`pe(:>IԂ$$a<HeK9:U ͦH2֮E] 5Ç8yZZ9Zd2¦ƪ7;y򤖖y^L @p fҦNگ_?=zdoo?rH___''XQ@ |,R9qX[xjÉfG'J5DÉp3՘t@C^RfH7?OF>(oêmڶP;'G)T!:s]) /wI=DW`Ld1| 't׮]Ν;dȐ[n/^%?ާO))3fг|%O^WWׯ_޽uݲ2sssII!C$%%hdҥ 6m+ZYY Fp(By3X Fp0P@! ag  Bp0BCؼƎEp0zb .6Op*--xӦM/_NKm۶mO?ܹs;v찱c@h;zy/ϒVHI-rҟDJQmˋ ֏;A3cz$))2**sɓ'+W(,,ݻKCƒqqqϏiemm\ttmaaY͛WWWXåK߿-Ԣ6 Iz\2@~e>E(B9 WE(tjkM%*W69m1[l`}ђӧ.\سg޽{_~@FFf爺@Kݭ^sc6#uSEe4pq|4EQvzA%0 z&:eʔGt%11p¼y&LۻGUUUKr6mCYYYQQQAA1ѣG/^WHHȃ[+++sss ӻu`.2 "OK 49U8`Z0j._'}}׮XD"L ?V9tȬ^ZLL.\0}tSSSvRTT,))޽{{UϞ=.\vZ;;@ZZZ%>A8f{];XaZhA7m;)ifv zAPĉu릤Du7כ7oOKKy왌 j 23@ zT t=A /%O)UULRII$7/^⹔MeggkhhTVVdff㏹ , iCC5~ 09AL ZHo"&!ѯc(<11h :C`? ONN۷/ߺ}#G߽{@VVvNOO5jĴDg9V Hгf:}d2ׯ_ojj*++ی30 EbbΝ;jrgg9ss :cJCm3XZZ={͛,gŊx$$$N:eiilٲC5J[[{Μ9bbbgΜ177@ t<"~[[7oL4),9O+ccc55| ZB?aaa~ѩSx1h iiioVWWvrrw^mmaÆ sGFl CB dQ]]G&33 :ctuu922j.ЧVHHSNNΘ1c"""Clٲ/^>|AAA C__?<<|ƍaaafff@ |v;tvfjwo5L(t^q믽OqMqqq7nܠwl>@ԙcVslKR^^`e݄#<-s$1;Nl]p[{1OZYY>iRc? lbkk! ,&&aMm\PVVSPP@h7y~tڵe!@$DgF 47Dy2뛋@AO 2D Wz_t?Db<>g*)XFm> lKP5T[4"ߝl,坖vym l-U `P,EX A @  W ;TWC_<ܕpPD~wrPwטzFqTd[;wQO2bQ5,bQ,-=i-"xz$P%Iq\Fl&O?{'=*`임j/ANƲm+W,{ãS |<6Wx./_CQ,ŢXEFeBwUt~ @ |9@`| zw |P-0H*(r ,8 `hO$M|IO<彍 !$]VQR_vXmH-Z?Y(_%9+SC#g޲`p"=@hcӼ@vN6%"|jsbV˕ @T>`Tk0rdKb,heW`8F;"8yaf(U7Nm֏EhXxf4fj m`QT `8>zb UCݝ}) "@%ŝՈs;qkR\Ohx `n_MJh~1e\jW*PlZw'z%x֭װύ-kxW!N@@83 TJyLL{wUvq2 ŋ Ժʸ%,/j]ͺi_(4* Mjm5[htDV,]buAg`f"`_d``sg79͹X@TJ+/=uB`?2Ѵ}sy|g?K?Cz} yP$Y7j-0\E01nOwQl>׏~Ӥ6L?Oz#"2l6wyPYgG0\Ń~OsTu0?WRSiK.9լZu5#V=J*0,"Zd /4G;Km `pT4q{ Fҏ` !f%cEl%ƸTdqKlTĸTdqKl qV{S-p /g[/.cK?~! 8>!!!!!!P::: r? :6AR3ɨ 7_ػ) wO`w 5@@v@ȅ}i]@Ȃek_ˌշi~O|UB)ߗ"VH]MK3ϣ%T>ĉWGBNL6Gu>s|ޫw-} b35Zc9rCegg_|9''gB dqFawW}T>32L|ֿM߷$Wq}kMYNɉ ̼yK.]FIDATcN'IMM YxÇ-݊6o8ާ< ra>M׺몔3|#~U054~7n h:}}***ӳ5ܹs҄W\w^III~~ٳg+++u:]rr5͢E3';<2ѭ櫷zt.\ͭ:MkgΜ9g^z5..NVL&!DWWWssQQQ@@k"##,޽n1^⿏x$::t˫t7Y===]]] C\\\]]ݮ]Fc||t:]aaʕ+-=Jh3@Ȉeճeڮ0(:_VWVV?~\T444XM&WmmmBB-.\흘XRRRRRR\\|ܹ;-o tqjl.jZ7wu8 iCfϞ};wҌm۶9;?111yyyoʊrss߷ohT(BB-|t''9qk@6-_\oYS40Y?zE$jLKKؿssY6lؐ|#G!lRVVP(֮]~zRwކK;vlB{p _*m?'gPs0NUM$ 7!$ 4mڴCBB ,IIIIIIUTgΜyIDm;F'ݿVIMBXG dmgV[%lҏ  Ӆ|~,@@vX$U]Sm(:6 UL%ѱ #L`2RTڻ  ; ; ; ;Afv,`f؞>G4=,b:&SohG]y8IENDB`mcu8051ide-1.4.7/doc/handbook/img/007.png0000644000175000017500000005165712067167647020237 0ustar milleniummilleniumPNG  IHDRA pHYs D IDATx{\T? ad." 0'-/ Dv!MꈞIIǼY&bbEx[vDI㈅P:"0\M#0kkouf8 B!<!B!>?!B! B!?!B! B!?!B! U+J>QGڄI!BH,xZ"U; ە =U` )Wq10 ^j|i8 _*~o_f>} /xjwygo/BN?!cL|+@dY0{٢{{ܧzJnݒdܴF7kG: э1ZqD@IIIO\ݦg'dsDeǓnGYO{Jпފ z}bll׵Ubee9cƌfB@ѿ`wuC|SKqr6&P6xPfQӕM?:th\\\O*$pUr8=pwfNjf^tY|Ƚ}655[[[']B!SN+vj@da5޷vm 7aݣ;Bv]|)S-[&>_vdΜ9K,\[k?vws0N.2핊 6|m%u?-Z.4Ң&!0<ψ+lA Z[ړږ|g: 2e nVECR%jux /|>Ǐg?Ç755e?nܸDž L>khhHIIqwwsa :tĈ:\J:te؂G3f7niB!n購ʌSX7;_'#>_YV][ngϞrʛo|rG]v]rrr~Wu7x#44Cg'&|my7Wo_}FqVj/>uYrsٲ f-xM)_>=RHk۷}KHz-'N c[,9$}'+G|iDLQykqj[zΝBe 描t/=\ZZsϱۅ+WLOO/..;v |<~r|r/@AA!C^[oX}+{OOO?~篾対+ FkioB!SBRC.ϐU)ndgeٽ{w]QQQ\.wĉocYYY-]T5jT}Gx$Pi30{TyG}s^3j(dG ٲ{f܄L&~n%В\|<&ۊDF[-<15J3N{yf=+v|eD\u7o+PYXSUzk9])}kP>0u4551 w@6ĉfff [9s'|\@]]ohh(++spp8}СC㩧255rsso޼wA!<WRupQ[z掆G͛mDr%.Dp ]UUnKR5WV=۞Up_~P(#gvxB RٕZ!RPЫ56g3؏ ô0Lkk+p[ԩS۷gϞg}VxSSS>_SSuV{Tg}6%%uV|||EE&:Xzz[oUSSSLٳgω'?XM!dw_(u264]-):Sbֿ_P2ȚPbq_<111!!!=SO=ebb¦oذoypykɼ9p_䱒% <1鉨§8L<P/ op̣Ig\``(5^]#ؽ ;P :E]}NK#RzH$nnnbVVWW7|𐐐cǎm\]]^x\nee oo5+=zذagϖJ|MTzAbB!d`TWw"O [;K[eEM{XȚ` Wk۸aNzHM3k,JH+L~KJJ^ڲ}8>C<+C frUsKksKݭjYh_B!׼i^u֛ʛE^i[^}B B 1wo^Hx!̞tyCBS>k{`|TW[XП2dH,؏t@{B!d;4Y4' 2D{YaC!'5B! ѿXa!B!@?jEG; H0Ҷ|B!@B!B:'55~A!B3t^DB!>PZZgv3tdO>.\:ޯB!tKm}cO|ow/VH!B?n`Yfɓ'GEDd2Yw ѿ\.p8222R5Jw̙7oEe˖EGGwNB!v/g 99YRj(SJ$ &&&r|Ϟ=N>-VZ6`͚52緟x|8$$Dfee₂ӧO x1c8;;=zٹP]p֬Y=/o߾3gZXXt3;;[(޽;//o׮]cƌ2dȱcd2YzzzhhhyyOaaeˊ?suC ,X`ѣ;Kuuϟ?bccϟبo[wwnlpL85EziT2iT'z^=Ƙ1<^§UQq"IPOfeON !B-ǫ5GGGHRggw}W#899&$$)Sdffj(///66N60l0Phmm"̛7ёDWvBCC s)hpBe]\={n߾#I$fyy~]q;;D" /\(w-+ZZܼY_TT5jԈO!B4ʕ+ ddd>A]RRۛX__ᡱ6Badd$؏ Bcx<'@JJJbbbEES(MMM="SSSu͕\.X,60uLLuu{ȰUjf?޹22766+*a(M [~lNCC@` !Bȃf@ dcc9²X K"(Z @EE/acǎfGlYvXYY)V.[SS~Ц믦T6p| 1_T)M|~e`hr9lƦ]N?~h{B!<8}K˗TGt0rDa233 o绹HOOTﲲoiind֭[;˥F 4̸NY]]9Hd\RRS]]bggɩޚz#r9Cu~sFFƽ%B!}\~LO5 {zJKK{׭xyy}WrDDDZ6%%.{yyٍ5J*w|7666FFF.]211qww/))3ggϞݹN.sιs.]7:~qba`@`PSS`C=OOաC+MMR]]߿qs'}䈮UTo߾DB!3zXZNR455U?ޅ \6ow/VH!BWZZFusǶM!/iyegg/JJJ8'B!DGqC-///88a''$9B!oh7>r9h!BfB!F՛O>|8;;PDaFuAG''^{a|cc;w8::nذPTT-N;;y1 S\\lnn~U6}С&Lf?d}[ZZ222̪t4ԹxRRҕ+WZ[[Ҍkkk曱c޾}$33sŊ-n;d̘1111*/_ff˖-.\`ɓlq9CCC-ZZ__Im:#{Ictrr jhhؿ?{uB!/>U/>6¯PmllRw pssΝS(g…]5k;;;j111bSQQQ^^^ll,˝6mÇu7Ծ8y9::r8 HtUÆ  ...2]8q`hh(˧L `˖-d2ϯkO^ֺ63<񊋋uB!+W4ȨOR񚛛+++---\.Xl`E7 :AP(D"ZPh}q)))<OP455!JJJx{{=<<:T K,122Zr̙3uԁum$ !uB!54hMv0۷a5&JPrܚCjeeeFyy ޖH$JVTTXZZn}񢢢cǎxhW[ڊ .tNv>9n 555""bƌH^z:ut'By@ ?T*uU~~~KKK!H6o `ݺu]ϔJ3gN:5ydyF0LfffAAA@@ |777镕=(=twwJ˗/WTG-((0wK.8}taa |ts/iks:n~sFFƽ%B!7n3f̉'s9Ws;;a}Μ92,99Yc+\.wΝWliirqԩ֭6ll))) 111)))l= 8tT*Sc:uJ"|l' 34-!B νFr/^<~]VsժUB׷@BB\.߳g><<|̘1...[la/^/lllDgg'Oۖ.\dN>-VZ,d2Ԛ5kd2o?G为u9K?~رBe߾}l'N4SqF``H$J;vB!ˀkT]]}#G,^XTغu !BGjiwv挛@ `ooٲ%66L&0o|8//^p8-b&$$)Sdffv7xB!ҏŊ3^577(--:th)))RT&)&6\P(_GG]vu7Hm UVVZZZ3bg9:B022DGkkkBQUUeee)H:KJJx{{r\?3!Bb@=kaaaooe6[[k׮O)**8v옯/kkka]eeeFyy mݺ@jjjDDČ38Ղax<;ˆ8z[ Ekk+˭a%ReTTTp899eggU*󫪪؏:6d֭[;scwpp9rdbb"0fff~wT*]|Jjnn>zhAA_윑qoB!gb^ϝ;/e 8qP(?>Ǔ 8tT*Ug厎SN]nݰa8ql۶mc}7n3f̉'$ȑ#Ν˾c֭[: `cccooΨqwwds̑dܹsՖ---BHII9pP(IIIx;w|wO<~}jZZکS$ɇ~tT V"!B鬶QO9wFFFv{{4D_JԴVl!BJKKLC3C^Җa@deggHJJ?!Bh@= f)))!B!({GTTTTTTGA!Bt4B!G6z謬B!8\p8eddR쭚ryoG-[_B! Hg 99YRKB!P.khh !!D.ٳGS&mܸ>,, ŋE"M||-VZ,d2Xc\;DO۷o5jMPPԩS%INNѹC4#ԓ8ܸq#00P$I;vmqB!ɩo֟CtI!PhT7o# DW^Ug??? pssΝS(g…nٲ%66L&+**ˋrӦMstt<|Ɔc\FΆ & ]\\d2Ɛ:wH[/$܄CCC\>eʔLmuI!P+WfddHIIJ2LP4553;88/}||:x͕\.X,60еBiiСCۧ( ###H~V(VڎsuC:x,!!uH[/$Βr\.I>鈓B!a1V4hcQQQDDıc|}}X[[3 pڗۺu+Ԉ3ftȠBhmmr555:lmm]>E"(Zvh[QQaii89N}u({0:wHz'qڊ .hlC舓B!a1wP__WVVȜQQQАwk!H6o `ݺu3ϝ;711ҥKN>]XX0rDa233 U~~z2zsq ݹs'::ѣ+L[H;Dcqmԓ8ݥRU*UssѣG u8_윑eh̩"!BH ѿ\.?W@@CR'N433[xmDwwwL?gL,ݹsի---[ZZ/'N ggȤ8p@(Ĥ1N!!!lllu읋haӦM/_]agB!iƙv)+++DmqTk1B!=Q^T*MMMkkk>8 !BQZZgzdMUYS!/i0Okmcԯy=,qB!O~0SRRRӇ-[!aB!~(!BхfB!_.wYYY!B!: ѿ\.紳sC\\\.B!5۶m3f`| 447J!BνFrUUURĉ***rrrۇ3e˖-lل\g6yǏj(SJ$6xqXjP(-**be2ƍ?~رBe߾}l/D"B!P$W_}5o޼zyW;!By SS/ssO?4:::<<\>S*gΜ9uɓ|JmMxxx:t=TC"l޼u[\[sMLLtӧOO2t0rDa233 dddTTT0440tvugg猌{K$B!h@Νk999ׯ/,YDPrqԩ֭6l\.?W@@CR&x<Ν;y'O+.̙#ɒ5r;w\zeKK@ =@['N o?ǩ˜'<==/^m61TSM$B!þaooӿa(JSSZB!hTZZgzidMUYS!/i0?ٷ$%%ПB!7j߇B^^^pp00NNNIII!By>𣎽^]Qk[^`!B+:^=jB!TVg{0zI&uTmmgCCÈ#=7B! t͜9sڿgsҥ˖-cryw+Dw^~=Glٲ?k B!Domv_Vhhh?ED!BHoOgvfL󳲲ٜ/^<~]MLHHppp011{n/^D666N>-VZ,d2YCCrrr\]]⌌oܸ(R;z=B!䡗.?]P;[` F!ϟ4222dȱcd2Yzzzhhhyy Ǐ7.;;Ν;ΝSXXyOLMMbccϟضᇂ'xb̘1=B!ywmڴi-';M ;;;ϛ7$^Ot 1 P(9… ?#644SĽ?$B!2мfϞ۶:rWxRRR+**xg|> @zzzeez󫪪tאQQQАCVVVH$7on:6T*]|Jjnn>zhAA_윑qoB!Q0G2,??Μ92{yy:tH*w9rܹB֭[:q℧ŋmۦN `cccooР!.sիW[ZZCZZکS$zF6*H!Bj;RSS###s4DT֪L B!tO=󧦪,̩ehO!B€zᕗ0SRRRC!B&?; B!2̟^Yn|D['!lͰ_?X {`Ξ :K}Aolso9{RBy1ȑ04x%[J_!!pPWw=L<̉aab?Gr ) #Fit}痷>/WViٯ !pNdUBB`nwEu5vFKK߿|56b,bnc8:jl`WQ}Ӻ<<};.^/1vy?\T^aa ؿ"!BzIW/];@B>Wp00)``06Νpw`f@\a`p u_C 6lhK'p8¨Q04lhLÇcn]5_aVD` ZX36້;Y7 , >N\\[[aj>HJ`ll݊'Axx?gaTjk1e ]oݺ>1jzL˗>aah,A602Bj*ouB|]zέQA.@3]ٹ ZZcVq[˗8qffJcG[zFZ孭テ'ܰy3vSsNOƞoqw揞bwϻ>B!ZM61'`8&2iiac,,&f АagYjx`nff~`Vdijb"F;ILdjj`^~af`yo;'1' 0̻j-5660g3/S_+gS0AAwSur55 2 3;-ĉ ws l0 25v-ck|sF[K!C*`yE& mWR0o Ɔ^e zu%m:#usiymټԿUϥ9"BÔ|ŧՕ:9jWWW#;gb|^|xeZZ4WT7afL w`$kbc!n K&P}"-Wq}_ذ֟ݢO']q}how N=QOy!{WWE% wEmi?ڰՏ ܉[ؿ~zwWy9 qll .G|IǶ4<\?[.-·JuwS q*;B}#@46}xb(+ZE~@{'xy|5Ν:ujԓ[еk&ź.?us4GB!}כ\1}:k 66x)<AA]Tbm ˗C.OW\\q&~AAxU;LM56e blSS=ec~O? kkXz m04g,\']'57t~)ױe ⮻Z sgۉӭCB5\L63π02L7nk31a<#PFry;E ':k5S'5{x !?t(LO?؈?ƴimǔ)mUs0|%F{o-Ca!/\X!a2!?nn.SSdd`0,_;w /nB!ogA"Z,-Exx\cn !uuX]5…Ǒ#HLĕ+x睶^+8ufuu%SNcHKB!}S|$555}6 ĎݻwNC.oB!迮meS᭷eGy[?W[zL 8x{i` `p8o8Yӧۖ@` Ξ"/c%B!>X66wGAO2̙mmYY07jXXou>>mkjgmfWCo\ض!B!7;_য় * F!!ږ VX=__WۖXo9|8vn ƎEQLj00D ?al_oKܽoeJ~}O` yĠO~n czdts[g@@[~ ˗M$'*N!BUzomʼn0hĭ[ظFS5|1<<ؿ_Wapsҥ07GI_y--ر+Wظ ⫯4y4^|^^3\*2+z _GttOq1de0d꺆Y_]R|%B!6f|x<~7em~ x#3))<yyw^kI<?,̞Dy9>ヒƸqرGc  @K v:ma4j['NDs3"":/χRl\GC> 33uuشm;:8thj¨Q8/*[XwZ]Ņ»B!G~r|6l 7nz * NNwSjkqTύw!PSN6gAY\]ۆx<[.;טH҂ʻtQu9Çc^\ naհ?uݘ@B!<_ mvLgiK`8͏'\t7g:ه_\ƥKP@k_x/|> Csj^}K]b̟Bq1.ġCxnף;}+1~ÆZB!!qOkj4e blSS=;j'jӰƊ0k̝O>ԩ4 XTk3gb١ @Ήn>~[@,FP  1X۽NeA?6㍶gQ\mE, &k?k̶; ss XSv;~B!0ѿXhQL#+ /9?1}gcr88 9^^GP};Ѱں1> ,-1Bs wEx85mlXV!0[]:t<^۽y>#GMߴ --W̛ww~'Fms~Ř< ]ꩫáC F؄B!d@TWWkܑ^TXGGDE;/ka,B!JKKe3C^Ҷ?:mmgOw@>sS -iʼnrċe,9qwfneā[,lednq²쏡؀ CGkq(2qmH9mO)/J>yyy'ܸ5 TJΜ!HUȿwv[.^]쟢؟8v;ܝ~1eIIIc1OPPMl6EQs_rDz*44!#dp0 ?֭>`k4ibɈbNWYY*-Y@&''_><<ڐқxy}9\is;}@|?g} SSSڡEy9diZiO`wo}QiiiRRR```ff5kEUVV&''d\Bȝ;w6o,ryMM SLPBFsEBHgg'EQGo((꯿"TTTP%f߇V6lu kCCCޥsQB!RSSz=!g"(..ʕ+LWLJ:t~.눸cQoooZZX,J%%%K V;114!V^f;yd~~~OOϼkP{ÙYIVuq}u hG_p`0BnݪRfsCCC~~~?!dժU---ccc999))):NtBRXXV3bXZ[[gffrss V+ϟpO?N&ر#33fUTTl߾bLOO߿xx8 ^'눸cQIIIzz@VV!d)4⢡ ̖-{j_|!kv!'Ng;ãxx޽{!*ƍeee|>_Ѽ /_&JKbx``.2w&$$$ _d2ٳ۷UUUdVKQ^:x𠟟_VVRV믿8lD^ 4FQ(jwk˛xcr~888XPPP]]T*t۵k!d˖-Ѯkv! md`]G:< عb1!dddUBah4B5F駟ϝ;,)2L] f~xx!$,,, տ. >b2qB"##M&l`H$LF%&aJIIQ*~""K 11Q"0H?!.F䢭~l6R}}{!|>_ د& qT;}'UUUoN{=M !*RWW7990 Zd`]G ַxY|u헛*,N>}igffJKKe2Y@@ڵk㱱,z_bxƍ4M7ݻW.O1$&&fllիW|T_47)8D{1w6ΕdAoݺjBJc]V ^lD. ag#:|T*Ds, z>00pֆXGQ@!Νobb)JMM=t}2c-2X-v5FϏ[qϏ;- b^־ {ǃm6FgHCCCW.fkmS7? pQBΞ=j" b=fQuuuegg4RΞ=Y~pXfw޽{rt\},Ys}?ArNKg}ٳ-wnڴ'HLLX>k4eiV*&('\D{7Vkm۶LiOd6mڲeKHHےwټyX,555EUVV&''d2U܃===ׯDqqqW\q}:>to?22rU֒2#MӡLPBFsE]REEE6l:qS(@0֒׮] -.. 2 ޴4X,JKJJBuVJe6/]p`0:;cǎLVQQ}ېԔRܷoАZe-iO$dUV䌎bimmmjj***'tիW;4Prff&77jPRR>22200}~|?nK5X7e N+ + d?@+ d?@+?sIENDB`mcu8051ide-1.4.7/doc/handbook/img/030.png0000644000175000017500000004422612067167647020225 0ustar milleniummilleniumPNG  IHDRA1 pHYs D!tEXtDescriptionWindow Class: konsoletEXtTitleassembler : bash_- IDATxw|efSIIH(D@@i'%(N))E<z)z"H< %!$dKredHd7^阶YYϲ>˸?~OmKSgnko 2)/<{"$$'MBNN.^2H07Z%Hv*F$˷3X>|C/!gnoS[y/~qly&6+Me@+&w(x~Za%Qr;@m@#o#ͷC(FHj$.8OuGlhb.VU6[Qytn/}7ٿvLC0IRa5qK4vj)x+&c~v2rrL_[1Ux62FxD:{ڂ4 nAstӧ: zD;g!5WeׁYPyx"7#?-GDb=<'@V$>9t5nMH?z&dy~ɏ^p=ѠiK yvKQ}*z:V!,&E(PՠBF^myf-{X_r EcXw'rIxf;TsaTAZO*a9N\Enn~߱c/EN`(ǭL U`s^۾¨_ڀkť8EH ()I =kqh<aLZÙ]c+w{gN7VC6`q֢)%AlWdŸxi!b?2S;/ܱGTx3MFYr ^>\S읓̯-}n,eױWRvXLb!%C$rPff;oq Ϥ.tB\an) z=BZiP)<i0x{lΓٍϢB? Cߝaw@_txёRm2&#̿{<<)4U>?=h[d3zS9zBPdWm8[O wl֧S-CqQ uk/*wSݚ_UuyU (+Iօb@O#b"5~<మ9 *b!@%Kh⩅$k(>PyE*޲^Q温@ aF3o-=+,ʻvpCF:E vti2 j44 W6Kw|<$X">>*#DΪavW0y(9/x%/8p1%hB@R']`h4h4Z[:N_@#knGc+;7k|X Ph\n+98u }a vWa{JBO;p`<-*~M 2漻*(6H%dd<.N(VȲ:bRdͬ2=_K\\<6}d8rdJGjN"##ݒfVXoj$2+^Mҗl:9(ݱ*G aT {`8; ĵ Gc/O*YByФq%ΊFh>1|AcB9Yȼ!H*TEH+7(."1n-:?B2#Isz*1[mg?&e(KHE+ϧw>OYk(W+fo˞Km5XTŨG5V EQ㆕~[.<45V·ڪcʷUu\۰} =q~2bDbmEaP/x |dy~F?qyB79:  v(P<|{+oWhNgPTXC1 (-bUheEWr$ h^R;&DNv^u,n86Sw9_sqy<ff$?Xcy6МKp_Xs.0uxD%>a@A @W!7B@WԲ!$(  yyO4Tg<$!(dոZ2^H.j'|T "e^/T&Q(0x! I\ٮ-jɈVXPGe[+t< B{Ln穪eM(ڜmu@U0P{VzN YVv\@u?bx@b?@ 9/4P I !#נFds$ <$EBH%P!Mڣ*fzdY!ɐ/:E<*(\ٮc"{_C^V}P 1!r~斠 oEyY;iqe(BGDDSUY䣻V* ʼYYNh nA_\5^~wrU<""rov%*KAۿSPrw޸\e#""")m,[ i{2.|Z+DDDDHw/[$B|R%&ADDD&Am7|G}̟?V!""f4|pbDd׳mذO?4_~8vX+fŠ+,Z9s&~w$%%!88ү}\r?3f̀Fh4h4O?h4ׯ`HJJBBB~mqv[̜1׬vi=ӳ-KKK?QF8vvBs) Z|9JY\\lޞ 00"N:n۶ k׮ݻcÆ ֭ ѪU+ܼyM6͛7!""g-nukѸqcܺu 0b˚xd'l7sٳ<@+>e|W jjv:t/^Dn3** .FѤI#ߏO?'N`Qm7֯C߾}wU>CZf~ :ᆱPj5N>|z%IBDDP%}VXA!..ɽ ""$!8-_{逷y9`Rl}IIIcLzi~Μ9SOۇׯ;\233ѢE tũM6(s=$!ի$IBhh(1oo<==Fxzyb_h4fh,>|x'"""w6uּֿmU={`Ϟ=U """rCnnr'O-DDDTq0"""rKL-Ui """ʒ+HzzJI KtnQj޾>p=#M0 """:!I ^ސ$r$N_fhDVV& 5\<&ADDDT'Z7'T I˵`4¨(0ڸ[jK/aĉe׮]Cll,Yr,gyUo0jڜɒddqWNZ ŨXaDDDD5-E쎋EK$H!/?z#"{X"[Xr,gymk g%jصk+4$2h,Z """rKL-1 """"$ """rK6 hn^ODNl&A ©Sq%/1ϋz_mX !_%BŋCauϽoJϞpC!;{4֭ __*;[WuD6mjy߿?V^}(cǎ E~~>"##+=+֬Y!Chj܁J V#;$g`0UƱ8Uԓg3 ĕ+W{n\ ӏFd `ܸqelقSNAᥗ^gʕBxgB`ΝHOOǹsٳ'.^48DFF"//;vHLTt:8q͛7[;w3gBZZ6oތ[nիHMMq%[֎-t5^:~jj*&Ol`jk{[NŲe믙L[zϘ1hhO?ǏCѠ_~ٳg#)) x BLL &Ncǎ!!!ǎC=d3vFBB>Ν;ۍձcG=zsw5U^^v@K.B!-Z$|||!֮]+"""BDDDbС駟#FqqqŋB7oI&#G(q:t """B̟?\!8q℘:uB3fb޽"55UDGGk׮ QbsoE||1c(**^^^(((k֬QQQ [m6hرco!"**J!DLLߙ3g !r7nr8tžWGO[mŷu<]o۶Mddd &?\FѣG[mUO͚y !bŊp!IױVm۶ѣG {ĉ(,,M6?)YEXX Zh!dYDǎEJJ+w^ ⩧{c׮]⩧2/ojNqJ,VfF}w"m⇘vw`~G6/ź/>)7I+AF(l&AŶmۄ(bA4iHOO&FQ%?4Y;B$!@ɏ| ;(I~5d8]rE,YD׼|Q֜9s.tr5>6Q|[qq\=EAAXl 7n,W^}7YZV!?x`'kw!!!Ah4hիW';1qDѰaC4nܸ\D||8qh4BQ+RWD___QXXh7FM1]É;NUټ&2~3}FekQ~$DFFbÆ x]Yz|lv޽;5k3gb޽`$6rHL:,_7|uYݮRQ.SO[[ox"Ӛǩ4k߇pq`0杄J%a#I"""p+V`РAs*~ƍXx1u놁Y[[*+/C0i$1}EZZy^~~>`ذa.@# tjDDD ""f~m#::&Lldd$Dqas`jݻѣ]vaСҥ GyǏcbHHH0gdd`N:U8+lwxڋ'{AQVh}\8U5īzeMSCTT, HN.t^aa {@ɉW^$ Ǽyq{qbcc1esVZp0"qe"33S `)-&&Fh47xCt:ѠAߊE˖-Zyf͛󒒒Ę1cuw֭"55U\zU 0\^xA!XvSmc:qx܃Ν;EqqHMM'O}7YZ:,]-/;=dk2B Df Yxb$~7Ѻukɓ'ũS[o%dYEBB8}_0NPP"!!A?^_Err8r+۹sgqaqqqaѹsg1:v(=*;&-[f]É;NUq9L5Elge#el]^z!$$Xd |}}yg]<EEEP +гgϚQr9vB?<bT:D"""al b9Yrl """"aUĎDDD䖘[bDDDDnI%&ADDD䖘Q*7$*ey""j FF!1c*M/xybxED>xy-8pƌ)Dt(+Ecsם7gu]w:v.-jk ռhhAqe <K)#2:ļl]]wXX4#WIЖ-[p0޶m[ IDAT62o޼װup]-7u }C/3vdϞtiqf5No?ʊCDDH`~eAF3GL/y1vW#`57d_MTa駟pqh40{l$%%!!!o6`ƌh4`nM !&&HHH'Nıcǐcǎᡇ^}̙3.[zzߒÑWnõk;壳ƕ+phy+KrZ$'(?se. 7!셴oKt/Jꘑ#̯M$VMAf4 :-~ 8DDTi,00^S 5$H$DDD֭[ÇO_D޽Ʋuƍ5a7-׾1!h]uЈ]%}:_qMt~3du>O6 8y$N^x ܃2IR9\Vƕ+ѣLJKH Nק,JDDpU7@ФI:v $d^F:o0!5u356_QpU7@58aTkKit/~ӧK2;wn)BVO>\pKa&*an޿#8!c+(QPM@uz}.~9(CDD P%jr-[瀨DDT8*9T m!"A@@Qx7Nѣѻ:TNoKKJDDNpT.oDR;hM=pP%""gqUp=s!3Wdf?ɺYA92#FarJDDuPr/f5<~%RR6fK  /#<|SDDT[qU7@U޽%hy4in #5u ^8UJDDPuT0{_A惝%]{P%"-[N@vS]dsrehE˖@"ʲ:?!,l2Ξ<*-Ǐu눹Q]Tְ6*Qe\TqƱc/2""JyNg i@o6UawcsP%"" @P%"""[bDDDDnI%&ADDD䖘[oӦMc9Yr,a3DDDDI%&ADDD䖘[bDDDDnI%IP޽qa8q+VAW&e/LKݺu3J.Y5mb\p,$5$!447o:uT8)Sj<}fOHLL|`,]of/c޽8r-bY[~ΝwIqF$$$ 66fͪP6mDh4cǎ;ZDDDToMDDDT[Tkh"""I%&ADDD䖘[IPttyx !1cТE ۷ǏG||<.k֬7,:^3zl^?٣n]ojZDDDwţ+Plق-[(IVJc1}t,ZSL$IѧOo޺gᣏ.tՈ*^3tPl۶ uV 6z¥K#G:0ӧsl9k&~-p떾kEDDtw. jѢnܸHOOGHHGݻwcN'Aa͚yh ~5+Wƍ)5]%""vIF8$&&"88aZuxX,=mRU"""+n!((d1&ZYٳ'֯_3g#F*71oITn^U"""+nJ;v,vesه~[nEǎѩS'L:թKbOЄ -1uj;DEaݩw3glڴ ӦMí[0aˎ9qqqO HMM7i$OZ-cΜN Av|p~xE""Z'Ae礥aN-_6ADÆ ƵͺnÆlDDT$V I`j,vn$"bDIcyF|'N@bb"&O $aܹ8~8~Zh46mګO8Y60:{4z P%"j0$I'oo 尯 &M其m]ov^z`0[nvX hc-Nm+rOq[!p.pU""f, IH $@ CCCOj`8e<ĉv]ݮ3gΠSN7t.rOB孂sU""!ܣh$+,TFej+WB૯“O>igIǎqYX\2 akS:NV*UFf^S4FHDDTC$Yvr]^{ FkuU6Ν;n^}JǹrJSie8,?M8*$AHM 11K,!C $I^_rY')) {o]ݮrklճ7qrIH* 9*gﶗâ֭?NRR#rxx8k֬믿:]ݮr[lӞ儖h7@j-Az1駟ʕ+ͷ? ^{b 4iǎ,C~l%}yLn݊ ܮr[l[eNs:'l=~p@j-AhרEucQ?"""Jr9?#r1u4BQ'F+@M՗ЬYs >hD~VZm """IL?'QKPDDDDSe]cK),UJK """Sx9[%߸qh4x sgP58qo5^^<ڱc/"F%""*kJH?~} .… !pz@S[˅V+wy;QK,ġCXիu튩Gt UzdK^p%`ȑUw}<󌹬fXcGZ]׮axppMWܔ$9DN L:rH޽w$%''}U9iU `|H+.FwMWTe vF3f 11 q8+K+۟*8\vj*DDƜ`zTV`` z̙3ڂSYڶm/VYtj57tMq xᇱuVt:uԩS_^}U|沺'hGCB+=DDDnJBG[J12Cdd$<==ͷE(4]\^OP5 {\^=yIط/Naɓ5]%""rWT}5M0}ff&6l-ĩHy kDDD'&ADDDT?IV[_"sۖ """M9ADDDD%˗+b7[N5yY QlK`DDDDPJf5 z饗0qDk׮!66,g9YrJ iT0רEucN&""".)Ï?"';^zӮBQEQ @ "Ю=hr4kÆǬ5#;Ɩ ,g9Y^U0QW%h%MX[|cZj*MDDDT[)¹$h4ڍÇ%Q"ʹ;-ADDDT(rWKTቈ8l%g[OQu&AÇGcADDDTa26l؀ٳׯZhZ Lz=BBB:/_= """X}ƍsكxrf3 ڿ? xw߹P="""atct[zi~ʫ=Q -<&~N… rӝQ%𸓲Xo '2[5j{oeK$[Jn,/QeT*hENCa^,I3Idu"""" j*5FsZf!I #Ν9 oT*xc~DRaL<ױwn#JlxZF A{JV$j<i??_\8Y+,T–$A@C4o-ZDMW.& """z=rиqzt:KOOOȒ[aDDDDu^CFƍJǻÈ-1 """"$ """ň.$U>3zjcDDDDu֖o`Νm۱sNeDDDDuRx[}EL޽;Vrj}&ADDDT$$Dzp=; 77,]-C޻"))a &ADDDTlڼ åKQTXEQrGæMyͷ `4 _ [T{X$@&=ʏ_[)8;4[bDDDDnI%&ADDD䖘Qvׯ_:kHO>4&ADDDT,_gkiiW\K^}0 """s^=Zm1ϛ@nn-ZE13`DDDDuN{~= .BNn..\λUP1Qjq}]9™3g0pkοp}]j`DDDDuRQa!FOz"jh ZfQ3gѣѺu+dg;.[N\J&ADDDT8,&ADDD䖘[*1zt++c%R Je~m42DT!"I咠M_gfܨQW7z]xW. MwdbkU4{KqFe^'tŻrIPe,CڪFD$ː$[Fpp0/Qw|[IDATÖ ;咠 zHY $ MŤH$GF DTȒIдiSÃ#Quj/$I y}; j5j5<<<,ʲ N^^Bln GGWQmf= Y +#e=e*FFrRRfj,e֭"v ӿ//̜> 8p`j!((***|&$_"M'A[pJz]Ӧ>3h4@ӡÝNG@Q@bDD t? O˳_BHH__PQf}18iAWۭ 88.:I7w NހB[sLQjlw+>oW F[+{m%cDDnP(%~" Lm$AXTvnZ*I+; A޽ /-DƍP*ҥ bڴi_gʕ߯͛5% 8\VŋѲeKɓ0}xWgXh1 bݺv|Xty  ƚի3',[ۭqM`gxB,^L[ֈ6qpwJe/wZ,[JLJZU/OW#77K.u=h[5C"8,?t0^M3ɱ܆FEN;X5r}HKflT0@5 ˗/^԰(ߛ<[Tzvii%>"M\xNPIK`\+Kal* ЫWO`СctR oߎO>n9ZYݖ[}Iߝt)L*7ϙz8ln">RQ--%Ι !T*y2f0( F+ ۻ&09C2۩i z+(`z!R((kE jo^n(l QRnڱi s5/8<9g9])Yl6+I~},,,ࡃn ս.IOIRXToo_:w488\.L-o;6+gFcJ^,mediiiI|^cd۶+P.gmB400 K:<ӱIzSoJE#Z^^Q~ruI659q_1:z躏7a9;Ve2׼Y>3C X}.V8{UZ5rK/^5??iݹ{WyaHDhTJER7l⢦3g~TAm[z5hKzTOW Z꒤{[Oo{e~d%AtZt)A'c.RMU7 2- >O$@+bvT% Оh5hfvFѨxXq̬MdQ,ӓuvv)T*F O1% 1Mޟ盞 b"3*ڕL$H7A3fuݧ6;.!')s\ :cL&DՎZ^Yiv\Buq9#Z¦,˒H~-׬aė'-գblRg7a'ATq4%I}.VY~io^;otIENDB`mcu8051ide-1.4.7/doc/handbook/img/bh.png0000644000175000017500000000051512067167647020305 0ustar milleniummilleniumPNG  IHDRasRGBbKGD pHYs  tIME YxtIDAT8=JA߫ GH7ē\KE^_|Zop{kKp;\^h ى :0!,cq F¼O3 :MЀ|y[D"H$f >:MQ @sV+$H$D")cv{rro>D"H$ -ӌl6gΜ!%2j ԬYJuɓH$NNN >VPԫGNn&S99L& 48z8Zs!PhѢA~&;;( TvɓH$NNN~;<lXKR4\JVZzݺu'00/YӲE4?m@J8yD"i雡ûԕip.]1 d d \H&O"H$;;;]P^JBQJr\w(sY"+*aXP`{o6u^nڴbӦMR)l;u&/sy1A4oNFA,y^Ϝor;==mYHZ8.C=LTN|MjjBu&/y9_e.v]'N:6ݽWOH$UqtZ- KYj|Q{ S_$o׎'N{;r# ݉|~P O"qrVEuST )%mQQ ڶiL'\>>Nc?z 7bV{jբF n|v{EhӦVd222R"ZHfJLFT*rO1:ys?#;#NeѢE yiEaż9df1X+,;k[N'Ù33?,EN:M Q5hz{Op5{߫*Va[**W!mۖÇ`Q6#P0^3{8w՝N{*oarnhaU  / ɷ/ QV^GD CܙTÜV{)\N Q~4p߽pwo!^N*fp_\"FύuaoyBخV rj`HHHR%:o͹si1ʏ?nP) Z}:xƱl67jĿ'G,dg(  ^NdBl FTrM&gVʅxL/XEǜٟQ+ oLp<&9< "<բwSԩ#"ZMVv`С37Rz;Ah~nԖo'tddgɧsO;n}WBOD:vUJOU{OZ_u (;y|We:MXa_u?ŕ遲gOLdq*VVDZ|O^ww"*Vq)}ON:=|_眦J$(c5wV,j(%^qkzm*+3`M`g֬YL*Nbz /Nwޅd"y3Z=EQ曓֭+];wlՒdƍ*!7 UkQ0kQ Q0MQ23 D`zHO ?;>l @` gZ@1z<wޝm۷L?vM_PdefF'D}wM8#El7l`!'#c x) ;#k*Bl2P;@rpzI\9//ҪM;:uڥwn{3\@ Udywjժto5ЕcYVI$(cThW\|m6c}~hSw~z /_&11خ}Ѽ$y oب#?Sǎ4j#:N>ŇᅢJQ!A7lbʄP*j3gPݨݯ? r+ HNIֽHMBpWRSQ+^+sR9[\iW.ۭpڵeDFFRbRR^-P̽CӐ6@Brrz\|rʡ@1/_.[T:QT I( fVVF?lTNigi`'hmW")j+N>SL}`\%"{嶼qZ AAa6QT ]'0"&+\z*-'˛3g~fMɽv{B?ۇ181kVA]ORuYZ>|]4jwU_/eTޘS{0"*TnYh\t}:4Z-##fog JÖb`odox(MgAADGG7… ΨT* @Zh7W2zY,^59 yFjL`42fMF07 +WBp{&L@VXr^EA\LJ/Q*)Ұ_Q]+W+KZn@fbX^;l1cZ1݊U׏-^%ozr7wUTa ,ﴧE )B= x@q->ōYG.^N?*O"qG*ʯm6CZ"0( 1}G Fo400X-v $8)W.m՜FaݺUժTDkУiQTz}bWViРc^zFV{O>NODhZEV;= Ekyh:vBG{֨PUL|m"|@Jջ7Ǐp[aC}{ eV|SXx ,|:3T^Li17 ӫÀ(( [v7&MDNN.:2 jսmym[(:[xmg*S#N /|JU0?hV@QZAX,fүgf{DV10K~>YihjEA1)^i2+*93 z} :=IlyTj4Z-NZά#N}CB1H\q}RrB`gd8&:{"--LVP,L`20J@nncȝ&O"F#4,S{)|_Z.s~Pi4jju!Wаp>'4Z=*uMQ $<s a2 (C"LdBht Ah47.Zncp(*Sn6qXKC0:? *FFp,][֨QuQQ0VOHx9YLE^FCd@bʵB^%F-x-؄裡ṔA讗+ϔ[a)zBrB%UL|ҥK u`HNNǏBŊ8yHHH`os55^Gyjj"JJ$ǝ.Kםܜ%6dثXJEHH(N'HnSn.WB81^RK$[ɝ.KLD"ܖX,f7Pcm,`I$;ݻwhH$;[D"jשicGie˖<$D"H$*%3=A 6DI$D"HJ$^9{܆C%D"HBdd畊T"H$D:D"H$aW^t H$D"R{N`j;Jxxii ˒v4^DDDB?]"H$NQǯz={% U}6W T}H$D")+#Xgφ&&M-Re#}rꝔH$D")msN6 g\dٷZ D"H$raD"H$t%D"H@!D"H$RwO`T !"I ̞md G0v FUDzj'(Ⱦw`WT)Ϲs$%bs\(3gx@'%%̣gΜa/_ZMZ2e V_SHIIAQ.^xU̞=C7X,(©S\ƽUs+:dee( gϞuxJQҸqc{ 4HŊ1cFw;٭_~!,{oφ{>f͚ViҤ gΜ)Q|/ҷo_F#aaa :t'y۷oiӦh45kƑ#G=JǎtDEE @ZZc9e˖hZZj_|A:uؓޫW\r$''۽T/( )))gϦSN4oޜ/d_ړ}8ާy嗋sѭ[7^u;F\(~FnHMM>JBvU@T1{I_f<)w H ! ݸ,bcMBIuT*óEjM(JCvKO={f HebzoڴI"##e w}ٳطoE*UĸqBfvډÇ7 V+*T 6l 9"^1bĈŷZe˖o߾"..NϢI&gϞNZl)o.?.ڶm+z!"++KDEEzJNj  N'{qU$rD 3<#.BCCEڵ]͛BcC !ݻ>|Oi=)))I"99ّ?ѱcG6l(KaXlk]7] N:bǎرcm۶rBRy~M"((HbHsωC-[Oji'.]!HNNF("ۋ7|IL{ߝfko69xB!VZ%Ķm|j8}(_8z9shԨ#lѢEJ*N/,3 S] @4jH|G_ZǮ6Fԅ Dpp4hAAA"44ԫnڌfl޼YFQ~}?~Iԭ[W<BllݺU -BRÇS_ .s+L&_9uv?[+~F,Y?v(S'Rʕb&PN+^~9[@?>G;fq\61thW'pŊBx5ʕ+EpptꫯDhhӇ|ƍ-Z_{o߾Bw;v0a2 y-r嗎W_}%*U$&Mgv3w\q]w z=sn@oz !ğ)o!*W,^SZOe !DF,l_ڝ|p,Y?h֬KBCCeggUVbydgg>aO!9rxgergiYF/;Ѯ];q]wu $zؾ}{f'pB׋+W:Җ cZEN| Ŝs犚5k:9|ŋQ^ ,nVǮ6FG}$jժ^8q ¹k O.͛ v߷og5k!=? IDAT{?e1Gph11:N,>sC$rT( 5AafGHHl/9~8ʕѣ4nܘ뫝۶mKzz:IIITT *U8u:OHH 33qf/111[x^w}!Zh$FEq'_%::zf۶mdwxx8ժUf|׎}z*Ӎ٨窭}Fs=}qߗ\?,FRL&G;}ǀ.ȳm۶0oucOB\tcfmSG}N:0k,(t~Gt:-[tnڴ)!!!>|1@Vczjz7|C_rgRNٳ6L11m=- ٳBdB&j(sg-Z-}{F9 U}m=EQtЁm۶k.Fŋo SNnf;'3g$55^{'| *ؿál!h4]jժq%f|ϟ'88B41[]vq=wS϶6RNesleq%S!ݻ7C !))[%WrpSN cX,ǽ^zq޽{Oܳ~C}fϞ… yL/eu퉵k2sL:w{ǁ0 [X~V9r$;wvO׮]ټy3{uִk׎={yfuV"f;C `TV7x|9t;M64mJΝ;ioN6m{ߺVAAAT^ի;z|8bɒ%|gt/=Gzz:#F_e,[z[,{9&L_tS`$&&W_/11 {Qױ|,\cǎpBΟ?Irr2vʕ+̝;EB^^OmSnݺ?RB*VHz㏥ÛM h1cs%!!gjժ4hqUR@ &((~s ~GfϞͿ.oQ}KRǞڦ7h߿?))) :_g@)'[wga˖-lڴҽ{wjժU,^G,^8Ʋ` Q C .EI?h@[xa<.Tq]ibc!p0ēݻw&MZ-u&OqQ'N*j׮$BBBĊ+T&!/+W,4x衇ļyL0Ajꫯ:@뺨c=&.wI']- Z^BRZj9rj_|Q 1l0l2ԩSگ,JHO8=#"**JlbvgaHrxI<裢SNfym(0D́ "##Ō3ܦQuOu omӛnMرC4iDh4Q~}j*!LIl*͛Ehh'*T D>} \=/D'7e0D?vxyh8~(-[lٲb]Tιsb-]; WHr)vɓO>;~iXV^x̙sUH$SlB^\.so͖-[ؼysj&$%%e%:1W`vڵ|884T! t >uj5>, .$33_~YfѧO[myoD+WشisaРAZmNgC0l`/  %>QF /^{GXXgԨQN=7nM6jH$ 'O$::ju$9~}q EZ11/&NLL 111Z D"ԩCZy,䦬H$D"^H'P"H$D:D"H$w ~;QQ*Gp&M8{/HK c׮`Ӹ! ݸ1!rs\#IIX;̙F"#^<!II s{^^oիWGAHLL'M;3%%EQnڲ ^odee( gϞ-[$D"RJ|(j\~V4 c|q.g4S/ۏ][$&ژ813gl{cB6$&xgѢ@y=UVGѰaCΝ;ǻK׮]9tG= cƌh4z )K"H$$ LOL[-|իͤw`>0E/0rnݲmfٱ#3Evik,\O>-[Rrevᱷ,00S Ҕ%H$DRlN`l4[o|/FԴnabgV`„\zRo0ͤ8݋`ӦMԭ[Xy8`w˖-4hЀyQre }!99kxaYEQؾ};M6EЬY39lVKV/SrرMhܸ1s x"}h4СCIOOw++::VKHH}%55_~^z9֭[$D"F2jT?0[*KU}iٌ-Zx?[Q}YƍG>}X`ϟCTX)իyoiԨQ1y;3f`|w;vicNoE;v,9rHOOaÆ۷g}W^yŭ$z!ׯΝ;y饗x76{ EQضmV">>&V޽{ӨQ#8w}Ç>}:}aÆ ?\rD"H$% |X#]fz^|QtWrй{-m۶%((7ҳgOV\I_!H$VR[ČC6jbbt.×.ͧE knrT(njg|ER_seK۶m2d˖-C111zN>VNe˖M6%$$Ç^ƍ;.p~Whn:z(۷wߡC dffrwSR%*UD׮] 0 6kkܹsj{իW7пI$D"}(Ӟ@gmLbb4?={,DF*4iq:w֢ž=f޽̜9EvEhтϳb &Lfc̙kORBʪR-v cZQx{ ٜ֭O?T,ms|2M4A5fW_qbaYYY^0|pU40վx^z>Jݺuٻw/VuGwϞ=nׯ_m۶a\G}v'yNB9zO>O?]j_#Gҹsg'=tdbر4k֌5kU>D"H$ ^y%=#B2$OhVСz)_^adիW^z裏g/a Ν;6lS|FÌ3;w. .e>3lٲM61p@wNZ|~Έ#_?c'%%C~K>3Gx{a޽lݺCRvb=$''k.\ܹsYh)))@^O=Xx\"H$_vlܚ5f6l01+͚ep萕3l?[h<}xb ɓر#}ԩSlذ&M߭[7z/\l744#Gү_?yԩ+˗gݺuѤI.]믿dJ*n:>LV:uZfڵұcGzEz衇xgx^:qqq,X'8EQx.D"H$[C |y޸bqrnpQС`s޸qcL&K[cxy.<,,ɩ,`߱ԩS?~iwvo6m {]jժw߹LOll,Nqbbb~8q;RJ:I$D"(qO`hB@e@GBVϲpB233_5k}ժq6mĜ9s4hЭVG"H$ <{6 J~Hi`~j:5j`ż{ѿFrsɓ'yD"H$ϟ(WB"&&!c_ԩSlvUVH$Dri C$D"H$ H$D"ND"H$N`T !"I ̞md2ص+5nFpx7n v*zEE;HRR(Vk8΅2s뫁/DpRR¼aڵ(B݋u EQNM6l޼DJX3~oϞ=11hРR(H$I{WOgV4 s^ҥhQ|پ tjY3 'ҹs&&Uþ}!Tj/SOYrl2 7o&55Xc޽ԪUnݺe˖+ N>̈́  !ݻ7ϬY}1tR_"H$ߋo.0[-|իͤw`>0E/0rnݲmfٱ#3Ev 3}>f^}U2d8*Uy]tb0fwf1tPjԨtȑ#q)qtf͢K.R\RA"H$ߋ2k"-M[%KQ#5[k=:Ù%0!^T{16mDZZO=m۶eŊ^(¨Q8p Yfa6oA6mY^ժU䐰D"H$F2jT+*KU}iٌ-Z_e˖ѨQ#W?̆ `.ޑ#GJ%9sI&1|jrnݚ;v(FΟ?*Ux݈n3AA ~h`3{f3V⩧"!!xYd [mZ!i֬ǹv_0׌39tC &p}O6mz*Æ O>aڴiH$D3e+xV B!9lΝ!Ln?lԮf8=AA <㓬=GE իkƊ+… ޽!iii,X+Wi&'+cǎ>|eU:VTRҥl6VZl^c%D"HqS@5kl`{w_ҬY&1~JHRիͼK||r6lH&MT*|IMdd,YFylذ;:5^{ĉгgbaDDDZ^D"H^νqaaxD]=-?m Z|>?̙3mؤI4iϧ}ũ 9r$#Gt~7y7oD"HxN`hB@}_n >D"H$3%vϞ e„R,X`s(H$Drp6jYrCd76d,H$Drx̙D"H$YM(H$D"'VУ⯡D"H$ɭ@J$D"܁H'P"H$o'0*JΤIf6~Yص+U" ~~7;dTNyΝk$))5sB9~zH˗"D8))anuGP2 tޝ'Ok IIIAQ.^X\4={6a9/K{eԨQT^ޯ(L<+]wRNQo^:urj:6mڰyf܈W# ̙3 0ˣVUSLj:Żp< *UBRQbE Ÿ5Rrej5ժU_$99o}}_NZv-н{baAAAY|իW( K{WOgV4 ڥKi"u8ڵ8Bf&N̥sL&M2ѵ}BZ^ᇳfǻtIoe_9~JnYm̙F";[>"##i޼ӽǕ+W(_W%%00S-fݾ}{8yt֍۷c2l6sxtTSҥ 1cưR{SNV=C%aԮ]~ ~xN\2#F`„ 0rH"""ؾ};AAGCÆ 裏6mZ1B~iG;t@~h۶-/"+WKo_xYf *o2dSVZzj:Y,{ZnW9%ߟ2k"-M[%?UQ#5[k=:Ù%0!^T|c(h>ŋ۷/F0Jzz#ѣGر#:(bccaҦ9 }Q{9'=O?;viӦt:7n̾}ܖpEQؾ};M6EЬY39?gjԨFc͚54oޜ/dBQvE͚54i/^DQRRRfϞMNگzWK.t:ʗ/ѣ\SNEQ\-XrejժŞ={llݺqơhصkd2Ѯ];/sR( F=DGGj o߾"Wzx_R˴?lf-/fb`X0͜;wݛPl6=m6VZE||$tޝ5jɓ7nk׮0}f{n:x rx衇_>;w䥗^r>cˑ#G0 ?x^xx :D>}4h&ݻwӰaCK^x#FƓ0L<k..\_믿S 3ƭnڵs8 {;.mb,AĈ TK4vMl11SѼ$X) bA"RlX؊9{;s-3s=zP\9ֿz}9>ԩڵkd2dʕ+XzrhK_OdrxyyX'1{l!..|>_韈M>`iie޽Xϱ\U7Jpvv=};v Ϟ=SwށҽWwRU/1 [uSfe9S3EJ)ڵe07琕%Ss chHXv۶mضmҲ֭[#)) @7 \۷o3paHRl޼pvvƝ;wCV4h&Oرc033C^o۶m@ @.]pMlذAv9s^ɓ'c͚5wB,?)+t1p>>D6mLZqmW\o3B?O4pC]KU꼽1w\r>}ݺu!P|p<==???__hWKKݟmidd@B!00&MR ۷/Xc?3??bXcyyyŊ})]V:\jHKKKm>}'D"Axx8f͚xh"x c/T*,,D˖-ѤI4i>>> \t nnnJ.]Sjݶ*kkk7ÇC h'55Jzsۻwoj 0~x_ӧl:OTtI钠 ^Ƴgpu>}Z0xA!_CbHRbcʔ)8t/^Vе*A*H|iiiΆ={UG||r#77LJ9T\ :t@f^޿?r9\\!o:=rC)V2ȑ55 Ɔ II5e .N ƍشi⽣#?^c[kkk0*4m[oذa ҥKqQ}xȕS5 ĉ'j*">>͚5S`mT-SW/]mAdd$,Xر#,,,W 65>.^h߾=:`EƍQVVr[}B쬸JJJJбcGlܸ={\.ɓ'{4@vv6.^WWO> D2}qT?Mw޽{TPYdx)`bbHۭ[7d2\p'NjwI!@==,  Xj'MM9 #C3X[[+qttĭ[  gkn߾C }HLLT}},XuqeرVVVpwwש NNNT*CTT ACaի;$%%zS5KNNV4qttDJJR }9Nqw +^zaŊjAFC~gt-[Ça``#G`ƌիWUoz]O˖-1x$$$R>>>/,Ybtctvv*ϟ?G`` z6UV/PNH$ رcd$''#$$%%%5>|> BXX!߫^9sɉ3%&/53g0퍶m" .\ٳg1a8888 2SNťK7O>Z ĨQi3b`„ HLL۱qƗXp!v܉ׯcΝxҙ7W!V^ ޽[qӔ~`eeѣG#)) 'ԸL3g`x{{#11JgDtEqU*QѣG8}`ڵ 999Jg*ˡkz}Ԧ֮]7oW^ػw/|rL>3fPy BFFvm۶ܹs͛-qؾ};^ OOOٳغu+S/zU[NgΚ5 :tP>CjJ%;wʕ+ׯu$!cewшC,77沍72U5g1faǀ\䲠RvH}~ Px2eG335 [T)Wl2䉜ed[7WJ׽3#g@ʲ'X0cg `‚͘1*'''3///f``6m֮]Xiۼ<eff*үZ`W^U*2DGG3& c*]u`!!!ٙ1ƘL&c/f6666mڰ EE1>.\JJJvMڵ1@{=e~U^iiiLJD"֨Q#6o<=;7?` >.Ik9ܜ)bSB!WYts,ZT@^;qB!DG<|(EY^H@@#B!et0!ByPH! B! wجY1K|uCsq?2-+FY:u1KV=qBȫY3>iczc3x^0f hr9hӦ ~1u.J ¥KTݷT*quʴ ? >T-qӕVj=INNa l[nPXXѣG7ƚ5k^^>kHΝSY32m BԩDxDsv`!v(W~VXU1QQbdd%sGm?_AY 9Ǝ-Ɩ-صˤF^'''lڴ ֈ~gϞa:dddyظR`jj;{Tݷ6 ? >Զ u]}6-Z~[iYG"##ǏGV^ʔnB^cT T}x?hp ԧ{!!AY8m3FZ ?-:9 5?zܹpppvvv6m-Z333mUm`ʕ ]*PW ϟ?oвC.c„ hժ޽?_J*!Tg[W|Kkٙn;F9âE%7jb/`|(*xLZZPkkk +/۷mڴP(|dt|>...sNǏ1l0&L@AAR~QQQpuu@ @Νq5xw! ѬY3[lK>/^; kNmk*wxx8 >b1nN?qQ BϞ=]tAJJ ƌٳg+}4Jxw ₫WشiZj@~Whxxxfff6lrss_};-[xtfQڶ6j˖-DJJ ǣ*6lD"1RRRb^J{X\Ψ^!66[_ @sv/zLEGGB:uBBBeJ1o[kk]k9s:t-[`gg### :T}Zٳks/Rm=.۷I990 uTS;xݺR&*x|N-brqrTؠAZ>y$={qnֲeK6h <Ț6m3rݻ+W'N0fkkˎ;Ʈ]ڶm˦MV2aÆxv) ;biiiK1GYfرcYrr2۹s' *VO~~>e'Ndlܜ988l7mf &02d:uNjSff&_sK$ֱcG}v&J@׾VFTwe~ڵcKQϪex"xl˖-իl…9bJƆM<]t9s/~>9ӧcl&q,?;ۛ}WJe(8޽&/^d"1XXX355e:ܾ}Y[[T~z9wŚ6m>11`*wFו#;;;+V˗/kcU4EG1XF֭[bt}>7Տ}B[[ߑӧO3cccN:Ŏ?Y~cLqYfddĊceee1Ǯ\O. e'%T̞]Ā\X̮_ +_r6aB b@k#۷bVXXX{nfnnC~ z777_*aÆ1Ƙ飣+--UOIIaXnn"]v)o߾]{n֤IV^^X_ A|Y-DOM/_DFFCr[ZZyXlΝ?C1O۶"#"ukumT[USu [j?xлwoȨFZcccL2իWq :t}DŽ&/}unݺEB!<<<emmD}b.rU7o1w\e144DYYҲR:u4u>qtt4N^$ɓ'MmmTjj*z 6sS5kL^|K pwwWwuu\|>p 4'FTA`z?PU0rd/wMC⤰GRR4zxgggŽ&WZWRR;bƍU rq߿HzGGG?~rkkkUb,:d5ʨ-_]#7tV:I$ڨt ĉ'j*">>ƏQVV\\\СC 8hܸ"з*144D=X̚5 ?Ɵ 333Smp/mmT'ׯGnn./^?t;+#11Qr0 p!4oO]ʡ-5u]ʓ8C2d78{,6oެWQ/2d7H$%E8)V6PԔO?a~ 22 -[VFߐHR)))Jg#Ν;sssUpttĭ[  ѤI4ioum߾=!J>3,X@r\pAqqq/T$aΝX|gmR_取.ulȾСCX~=zIII022BDDD/yIDAT93fW^JVc.Oƅ Э[7tqqq8}4|}}k*FSyXd ?˖-åKd#b WWWx<(?Wtljk=Teʦeu)//W@|o߾F>}GΝѺuZKXR0gN1/1`ܸb89cQ`Ű0cF]7oD^w^DEEa>}:f̘f͚_~ѣCaO޼Ѷm[… 8{,&L~0 DSҥK ƍѧO1|p`ڴi|2n݊Z[*bXhƌ̜9S1jRӶdaaCCC^ؽ{7gϔ^nmۦ1}kS^^ bΝ~:v܉·Avv6bccSc׮]AYYND]Ou8z(lmmѸqco"G})A`e=IUk֬App0RRR [СմiSC0557nѣ _Mk:6݋S#F@NN&LDl߾7nԩlT3MS[ĉq>>L$Fy)n755Uˋ믊_|E!gbŀ!`3fPh*ѓ300`M6ek׮e1C4sy|>eW8(BSW\333믿nNUc{l˖-JC-Z|>[pR0_Wo#6x`mRuߕݼySd2xbfccx<kӦb Gu2͜92SSS6eD"[rQUV6j(Ųf͚1\^RڤJd={dr\I!U裏ak֬QL]_W z1Uvljk= ɉ)aLM[h\ߑӧO3sss믿2[[[fhhȆ곱gqP* y}.p<6{\!z*<BCCk< 7/水G~ {wMѨQ>ԾQ֭[X7 11Q42 ~)6mE!K9s*l29sOÒ#C1zmgF¡#bccp1b/s04|bSǤIsNܹsذaE{^|ICBO>ɓ'i&=C^qͱhQL^;vaS NZj={テFYf)$ ͛7ѿxxx`̘1 ]qyuQPş/F.!z],Bet0!ByPH! B! wجY1K|u|AA8rA,9:%LM+F8!VUլOi4Lf̱~1ll w DNڲaɒ%@ @F0zhdddiB\9998檭tq9<<!==n E!UIQ v*1BQ6 {9V*<+b*8>ȐKpm1ӳr[-[ʱk}͝;aaaXb:vo.]FFF7o5̋B!o=;7jOZ gG#KPP>ݓ' 28ضii2>W/2R?(Gtc(*bxhj1ܹ >#;www!::Z2\Rz}̼!iݿqj=֕"?a?Kٙn;F9âE%7nՐH$QZ֨Q#7VJٳgs޽5k`Ϟ=8p_`Nm뫛?>֭[k׮;vDBB&M9s'33> K,Q>>%]SLCxb 88Xc1bڲB!Qg =]~(ŪUF9nIacŅiz2z.\c׮]*B777Ç믿h"r_Xx1>cTWUd2jQ0w˕;::5FY?dee:tƍ+2dƍL={7oV[6B!:<~*øq"|~DRRdbjc[*O15OFؿ_ gMMM{n̙3J?-Z8 7rHHRXd 6n9rGڷoh\GGG 9rDHJӧJKK1|t[֫~BϩcuJYC9sf=q#*J3^]{ppcLM9 PS^۷? NNN(..޽{k*Xf iӦe˖58q"~d2̚5 }E6mu/ӦMÌ3PبL?b,]&Lg}˗/+h۶-?SL{W㌡  a׮]EYYD"D"g}B;>&{KKp}hO\2t _m5k*f ̔#<\o)œ'{~<1p1 99Y)/0{l۷Oi9f̘Çٳgx-muemm|pqqA޽_bǎ*7i1cv l޼ƍPqߡC0m4044ѣ?ĉѯ_?Qc= ͛4h|."BH턇S:mgsQ^Vp Ŕ)Sjlмy<0e>w <1:ϙ3gubbb7 11v:-[ gΜӧ(BȿRff& â*Q vŤ?hnΡg O&&b5È_c|>&MP1#%%6lPy殾=}شi曆.!FxYgkcٲR|uImxv0ưaB<}j/KVg|?~<0k,wo7oD1p@&B`>|(Y (P4ugϞ/j[^]B"4t1!7J {!Bf`B!@B!RL !BYQD:P? -!Bע B! DA !B@B!7 !ByMh  !B^^Z^t9B! Dg !B^>(t!B!zX4!B5  !B@t9B!5coov]zzNyЙ@B!׌@O B!T='($BymU~B!B!o$  !B@B!Ľ^Z^̗#B!b4/A|vB!B^H!gϞԱu]}̬A! EI@ Ա <߫藗|jB}F?+*u!D^] 3 )PVZDg5LMDQ$B!7ZB8\ic rȤ`jbam)I}B!{mMט=iNC*4`O&vݭJ9<+nbB!d3xYoid:®[(}Kj M瓐r RI)o;_֭[WL&\v }uB `#O vF6# Zٝ1īA88<. 4t'b\{ŏ?x8pBe[Q|:A`={7]^6#tj YyPtQ Q.q)nѾ36$Gb˖-'ѭ[7,[ qqǨ(m۶G}4%^pp0t6m`q -- ÇѫW/ Gnжm[7YYYuw+:u;vK"BHSOݽl݀Inv= EBg~| ^WOmbu .DѡCXBUQA\^! e粒08& f~ZRZޣGlݺF,̜9_5Ѯ];̚5 p}]!!!vݕr JJJyfu,Yhڴ)/^ HII5kg:u !Bs>teBdb ;OGB!JL  7HMMEtt4"""k.ܾ}[c* oG|wP=^,-<۷qͅλ=qѣG… ;7aggbxaҥ7wwwE;wFii)<#F]vO>_|e'B?\Intp Ei;^ ~.^)O(ˇ}' @Né@www\v oVZ~y_"---hDGG#** wF-w^\~DXX>#k:%?x}AAJKKaaa+++u?֚!BTb39Z"VZ7 <'OT\ wJ%܉TH|0!, #}d<' *@xj7رc1qDDEE!77ϟҥKS"""p#((K,q()) B!DW|||pA$$$?z###;ҐM6xBG;I$)g =9O`T"E P^c!GDD`χP(Bqǫ^.W^$kvpa=7w_prXx1b1b9sfo~̟?= ֮] 6l?WWWhcǎҥKo>899Tmbٲe9s&rrrЭ[7\O>044ħ~;vvB8?gd\=\Z0)`wa6/}bMGF||<  >H$RwJsQ^VpV#Q]a')(;WӁB< AܳH5Gѳ۽?OGhܭ[PPPΝ;bbbb PyObbƼbB!z{@Wa-4jaҬ<)jk{ ` ]4VX8sDll .&]Q{>[d@Gs'.^Hr$''G~~>$ ~7zN !sNF֥jhr3wQ>ƛ~./34  ` @$pruA\///| ],B!brt8iz:Sz  UUA<0&cLŒ11p{8̙3siB!5M`% uW/A`fh!BсABy Q|)w0N_e!zwpCBWNA=B!J(>xϴqB!䕢t&С#b,B!8sTz_rpB!G4d9!BH= pmB!DV( D<#IENDB`mcu8051ide-1.4.7/doc/handbook/img/symbol4.png0000644000175000017500000000036712067167647021312 0ustar milleniummilleniumPNG  IHDRa pHYs+IDAT8c`Q?Fb5i F&r4f_pXP_Q b ې_/|N(2 sf/ƒR%0/z+F%300X-IΔNse(WIENDB`mcu8051ide-1.4.7/doc/handbook/img/029.png0000644000175000017500000004577212067167647020244 0ustar milleniummilleniumPNG  IHDRBRAP pHYs D IDATxy\ڀ$!BXME dD *BhZjMm׫֥ںVZO(Z +} kd;7LH<09sw7d@ ]2 @ ue ,ۛbbYÕ+ )@(9@_*]jF1Oݤ ‚ z_pxNw̓ |3NTTѼYӧ8Ĩm۠SՃ2+bk}k^T!E*.J]톞_gVPelȯ밷gE7ct*C"Bب׺IXiH  aӎOMN+W "##17y՜@2.Ƈ.2uu mb]R"F DZ&Auu ](Ҫ.T:m1nOV PV1rs |wOGQa|\ɓ'QTBET(Bwޭ~ S˩Ts^CQ3]mcAքs1U6߬+͜r2$;=AH3u1,~eb甅 _ P֭[nݪNYJYoEEo~ " &T "6Ғ"Px<؈R(׼5P:8[hPPT#RiMSY 7=mp4v;X]!XBP(@(VèP #Pz5 Z30ѧQ*zBd>FFB!JՌ5f{ooDbj'<ӛ=VXno:kO4XTvҀT*U3:rE7~Q5N{c+kASX N`3vd 1kԺeFTLs#6QѣFΖuY%}hF%TfTV46}"H4\(H( "H\%:4~㰁VT;}~ecZx{ "HQGN׳7X婯o(@*oUfV(nu~PHED=?y> ~7؟ǣU:f A5L 3@4 Mv/~&<|S fBzh شT\A s~+9U@b)[R( {mQwQ4l E E!F ίo> z52{_OP AQ~mfodhm60311%¶n[[ .KKccI .osUK a{9,Qrl1煙^eTPf̢ŋO4Be>@-?ՈJs=o Gwdah*@"54`5)z͹.n4 shRv8Ab}?ʖ3|zzzz% BՊ:±WDR*hT"J5h=#Q;ܱC ΌQT(K?Eb"l0dX5)+飨ٳssAGQ)jm-O2~FLFL-ϔYmҊ'O gyST5[= Bl~ MXFL3AOod]*<_k,xFrz[)Jm]]:zX @*^;'7vH[l 24@`(oLdfr, څ  @ zRT*D*H][@أP>HMPʰF"쒒N)ll~Ҵ[*66켼2OOBQDB6;_{6ItcPm ՜psp-f ꉋz"pgR钓,y39o:W0:P 5s Gni5@( & Yt>MjDѤ@JQ$D{ҿ|E2;A0@.X z(]0ŽƤ%7wՉ06]ȐAC4*BaIhz/)cMEԟ/Em۶{!r ]t=nsݳpAtZ]Cn{{...VjJ*xyJ(sNP'x Ԟ Q*D*) =~NG20-mmbB4""[[y4ޡ랙Nut4'NgЪ7y2z@t  g0H~%OFb?ZT e>CdekR1Hֳ^1tvI?Whvn,V!ߍch)]M7jj\.iQǻX;I;8H$SSe`E 1(];u5 /c*B>AJPhTH)FRT EJ WrU^LtSbxMyΤ7JZ^[.>5i$BA; f|,4f1;E]|JAT CLܱ&Nk۶m;tH8Jfݾ]ngg2$[+\8a}G5 Ĝ;wV4e|b泺:@^~Q, f)ohg0Dj_!Cb[_?z镤\ 4G|k@WWa]o}n17gܕƍS?\7SYOmzF4*H$ E8hAfϗ?jN΋,5q0P<v#K$Կo~;-/}^HO 4I|սIkQy@LDZCd$ Gb͜9~xvS>?Ap1T`tyay rQU[={<߽H}B B7pJ2@tXy`C :,cDe ;_<==dpww/**RfFƍ1|}}> SCB2BP$(* ݻwtsӧ߾}}ii4Znn.^T?MII)7nٽz+((/o~}P3Ȁb%$$lo޼o>5;dVTT\jժׯ ۷'HNO8؟wuttd2??/ܽ{KL 555| ,ؾ}{HHP(LLLtww0aW_}XdX,1cFc733p77^^^SL9y$6TTT}W'Nz0DhjjH$L&_EQW^qvvDB0;;ѣGDdڎ;!NNNncڵk,X@8ܹswl8##cܹ̙3˗P\\9rŒSNUTT:uJ^zU1BqqqYYѣC޽cffVXXr]v)?#–.]pBZZZww7`ʕ'O0aG}4eE/N>*?G} }v]]]KKGHHHNNNSSL6mdw̚5+;;[$IҬ9sG&((ӧSN3… 'C? [lqrrѣG~XoQQQ{>\pa…Ǐg٫W&o`0-[FP;;;C~``Bt+ >---U'T`gΜr 6<}SN9;;Ϙ1Bl޼{FFF}ߦVVV߅d2Nzڵpz{ussÆ***,,,rk׮x6mRb7###W`HRlN8l?nfXdj`hh&JKK'LөS BPXYYN2*mllP޽{? _t}Ƽy.^({D1sL#jKKNRSS3?;NIIQޛa؀uzl7޸=X# zIj`jj]sT*miiٿ?vݍ]Kߜ4Uzz~ _N:5 WϞ=믿fXO?sݻwaG*qڵ_GQT_ *++kkkY,։'k׮5jÇUK03??E{M4뵵|򉑑Ν;Qeꤡ1mll㍐Xmf 9gٮAx;;;KKٳg|k`0|||Onoo+Nly\]]BCCϟ[zu|||XX̙35xkd`cc3~x췥ǏD7hӧN2E(}kv*&6A_~ 6 vVv*--mhc>R_pNB099Ν;@ bZZZ޽<'Ox4߻wzڴiÝ 7nxB~R*AOOoŊ/ v&]֪+**H(㜜 &&&j񪟟_ttY(ʚ5k;#AR٣'ϟ?&X};wnbٰaÆ ;# toMrc @C #}}}'2eK 'ÝYơaϦc@)s6a Y<HtJ5!12@tX3K\P@:϶ w2PTxHie<@A ey`C :,cDe >>VVVK.^ ޘFeee BODr%s# {{?xhbe˖%&&>|'%% M\0JWq3gfee[KKK Tt:}ʔ)׮]߾}w}jaaĹ,<<|۶mيZ]\\ƍwQ999VVVϞ=DEEm޼G~RSS~EYZZΘ1XvgϞ-?,ɓ'HfA–(_~۶m#\e||<޸q#|ŋ*ejAAA7nBPx}gbpuuΝ;ӹ\n@@񅅅l6wݻwwܙvc644Xbǎ+W߻wO믿Λ7<<<|ٲe|E~!2==EEEW^=vXYY|kbܸ\.>HE2_5.qϘ1ƍRW_uVqqѣDDDdff BT~D"aX VZEPfΜ曰eZZڒ%K<<<ׯfFFFHHHhh(ܼysAAP(۷ĉ/^b;::JJJahYgA-{zznjooo/sOO2GcfL߿<$$$%%EOO綾^§2330aB^^srr Ws8|˷lhhBb 5jW*jgg$>gDŽe!B[<}tٲe</&&f֭S1L> c_j}AD %.N8ѣ޾nݺy&~DsGfff.[ /p8ة/f_y‚3g`oo%/'. H$.+Ed$,ʿ\'Oo޼yʕXpYY-P2"DGQBf̘q)ooocjj睃.]:|TT>3L:vIj<-###ᇒc-ϟ?u@wލ7׉>}+))b᧝CCr.ql$ahMnݺ6:.J}r BQt߾}R9 wuu566mpd_p®.gg \rEQ –nDDD@@@XX*F;;ݻw;vvvYYYVfBBBΜ9xǏS(]bnnnAAAHК7d0nnnSLqtt\x|ǎǎ+H5D;ה<pm۶effOjj˗;6!Eȿ|_6466nذ!33 IDATd?~ٸV.))ٳgO#!E2 H$ֆvss;t̃jd#P p@tXy`C :,cDe |3SSS\=(t:'&&Ʀܹs &M255MJJ${;v,;;fk׮JGG 6D˗/򲰰OΔ"w NL~B?ۋ H/ ʢp>-a3%=[ !' a-}}65??_~Ο?9eƍW[[Kp?!---PH)E<201qvvvHH6,o"E+NF.Bl$p8:lӄs'eWOOwh4 үEFMM3%ȝgCSF<\P%?-y3~\z-SwYRRR۷lH8GsMOO;;;m6yQF-[ѣΝ;wb-ѣ۷oC"q NL $V"ieQӒ4_#^K6 9SNƏoaazj94iRRRҪU>>+44;VmHgCSrB @j ظvڶ6EdQ XƐ:1*:&3jjDǀ12@tXy`C :ef׭[';rƍl6_NNNlF)B$ɎquuŻrss*jdNWh,P=<(H.]Ν4iX,V&/_>m4y:Nj:>eʔk׮a޾}ٙd֭[bwرiӦ>ȀbdM=򂘗_~Y,{yy"lvTTԄ ߿Frs %h8::ٳpzzztt469;>^pS ̙3T*ݻ=3f y~m5}c@TΝ;ӧO@m5qVVVTTԖ-[k@F{6=[>A6m$o[' 12@tXy`C :e<4v2+呗 /J6~W3D2_|1Q[^|y$*1n7o/Z__'Nheehhhزe CNNUll,taJJU|"|)&o>''c^{O>sƍ>{n,oQ_7o^yyyxxe$ 1~ᇇ*//ݰa +VرcGEEʕ+ś7oNII)))?|0GQ"a}޺u]vcy睤$SSӁ,{9ąvƌoooĉ/^b;::JJJ?mٲ?ŧ e27o.((xΝKHH4iiRR'yB'FǧSQb˗/򲰰O36mQuVްcgg PT;;&KKKԄ7055500hhh7}V__ \]]]]]SUB>1pCزۻ\C {c̰s+W87&4SPPp鮮$&iDDٳgo޼ݽuP=ϟ~@ ػwƍJII)..noo߲e nR$QB>1p}*Jѣ۷o.,,TbB Jnv 9s挣ŋ?NOhWWם;w._|ܸq\.w޽޽wޱ:|0`ԩq\\-,,V^ H>B'F–ׯ v_~|B 3@jj˗;6/^|-"*jA  kJJJgjZ̖>;mur 4\nnn:Ю >#MTH隐0I<==}m' 12@tXy`C :,cD6:=ܿ0m3r<++Kvww~^c\\Cce˖%&&>|'%% wFa`\\֯_okk;},kk>?{la"$$ѣGY#|E\...ƍ;r.OIQK=^e||<޸qcZZ`EΝ;fͪp8~aZZZ^^O? ;wLOOrF..K(`}*/{Ν;n޼yy[jU^^?rB\lYOɷy0qq8$%–x999=~.++ſ!/CR^CCr.qȑ>|&IN<) P%{)ByWdd?PRRں~[jXWW}bccAc\\+Ӆ vuu9;;/Xʕ+ 3rّ+00wߍ hR"lc>cJ$D+dd1D.Iii)^wm۶eff"..-`jcc 233Lǃo S H$-!"׈AM6mڴI-!O8A :,cDe *322hR>wwwY .r㗢(UUU$R1BzM^<׭[bwء2$k/wԷ~{ѢE3f(..r:4аeammj*>OC6*lȮwX8E6E[Q ITP@q)u #E+>*@fffXXƦjݺu;v*H_f S^/ (gXXXVVMp52yJ+//_lD"P"Yś7oNII)))?||mT*%X䊸NE6eB|O5*gdT͛7;88x-CH$\.BCE9N]]֠xѢE}ʷQa L^Z>`={W`ÎT`$n* Eg>*T\ G|C#D<̙srST#YOJJJbXU|e)ҕoٲAjb6"Wđ8G.c7GExђ~W*Hcll7WWׁ*7FKrÇӧO^MzS轥pQXt\/YYYWNJJ.kv5)-55u]$$$|GE^1x$$$$$$ hOOOË y`C :,cDe >>111֎ *J$%?kuvv`!΅liӦ;<*744glmmRja B&ЄLX?W򤤤x&-7GŃ~uHī)"@baaaIzJ ]MʣȫA"@QUZZ{0^m۶L봫 ,CjllܰaCff&<~xpp0y{mp5 $ Ce/H{=jITAAM6)z+贫 Ny`C :,cDe ZDKӘahÁ27r 4v؃bcpVdpX<ȈFI>sE0YâTUUL'O|F1ٳgc&L֭o;vPtSLv(~ѣGo۶ &Y ۷/55֭[oߖo'#;RޏZnݎ;HЅG!d)VI, (gXXXVV轭3|?x𠨨իǎ+++MN@HOO_|ŧ~*OFv+77^v.,O¹ q)ZxiIfVQ*P&ϐwvttTWW766)Cv׏3&??޾i}8ZZZ$# `N/y; qA-a΄HR|$٥A/77FEEa ( Rbbb>}l2u~MN㨸7&qq9sF#..§%ui,,,Gjjj(c QԞ|.!5(h)Y3gNff&"O{{{++lR7|`M2q@79]\afΜ96mRdAyy.,m?|r@+H6! FVVիKĚ]Aڰ *TC A'@ %e wI$Z ssl$n=ztq…K.lff%Iqq"TWWԫ2 ùAeeemmmgg'EEE[ww޽{\\\]va:\vRRRdew(Κ5+##֭[(>>fff;vظq{NNxn ~A۷o߾ Yz5&USSӟo >0<7h?ZtZ;{cEk'/Dwіqll6|aAtX%B Z*ϩ}_90to b*;D!.cccc_@ 詆@tXy`C :,cDe Oe˖Q(~4##cɒ%'Op8|I2R(..Ν;>0 B׮]cX `-,,hc,)D*(+[[[lĄ`L'ͦR)f ّ$joM>kF|_~|J h͚VyS]N_rw?v>ɐ q#J b1Ο߿Q]=>}NX?}[pZ Pʚ̿e`g} \2egчsƚCQO='rK>P7_~g]]Un 33gPPkQ d#/? M-fH#x @,pP!g00-Gߢ ߹n vC##*4/.J~O J_>~gae`dޏ1|fcv/ &r)}?Gq9NF~qnF6n4!?g SF`B^Y!J70 +fdgfxi&pH\_@d;BalA^' \hyYP )qo.>|1788n`to ߀oC o酋AçL 3J bz)IVg*(>ro-AM'(=78to?->(b[V~@&@Q 4`,]o ! ,E:33_`7$XXڑxwvg'D,$2.߼}o )"pXDccL=7"ZP?xXhrrW84J)IcmрSJgY@o0c8;@{"IU۶Wr]{{{RTDt4M9L$zw4 CDiZVeY4 yaSJ=#|?4K?cs>`D,n }-~[^ᤒyuc ile\P(~!DCi+0 I\5TcH)ד$9y^u]9n'B[OeU$Yi۾a, No6_qثj8B߄Ap/B; Q5.o08߮iZHdžE,,:R((J0E/ X:YIENDB`mcu8051ide-1.4.7/doc/handbook/img/messagebox_info.png0000644000175000017500000000447212067167647023072 0ustar milleniummilleniumPNG  IHDR szzbKGDC pHYs  ~tIME ;tEXtCommentCreated with The GIMPd%nIDATxڕk̼9g rY֦KPXjPcL[RMmDk"[UiVMhH\첻g{ 8fr32yqq:#"v;|lxmZoE:8w"֮^|ߙ g}(""sd2SO08|짛x/"u,LK{fޚ>[,pdW1S,/JB*tJ~fK̙;ukbB :x}m/ǶgwҜzGn m:.={0&-΁dJ@h,[~x[ھ*Cks鍊}WӕTm9sB&J(1qlQ"LihAkqۯ9oʮY{wjC6\y[qQ@)j:Z shCJ#*1J^>H͛Y]M5RKߵ_M& X;Sal] 4\=(e997ӆslX'_/S0S< -\f1yNzch&Iy!KB1s8r9Mo\~)z8l{{_^}\Ӓk Dd,E38V$Ls0Y 陝a<~^Tz/'pj&7#W 9wIi_wF8q.IZ-1kVێ\a9 dV94D"#$[Kh8gc!IXA( +2Y 92^bQzi?txbiGrK vR`1JPZ"hmPʥfRE|2L2[8K:[OѨցOcrLY-"nҾGd3 枿/IRɀ}'آ$ւR|=zr QU. D >+zZ̛P(O9F&r;h|,t+,CXH71Q٩dfVn^KS7 `Bh%!q uC,\1`U]/8I<$Exz}~ ;Ɗd0Zj+I:PX9y\%&"@USv ʑ iBi8("UZYLk֧X(@,:!UʱÞ-V AWU^#.l%A-YԁURVE+D뚠4'(%3֢4>xPJlJ[cTmc"(R5d>q"m40ZF񃩂C)te2;S (TF%D @ e5ڄB+j%{^n4oFZOK2W&= B#r r[Ki_=LfuI9%+4f&e"+^"hNSBWd|EK$ޔVR mPar7蛋+NҜI" bRhc^[7$/yP kR?%RX*x7ʌ\.>;vpCosFbJEKƤ$}ظNC2|Do BdntB#'czqw^:ۚ˕ɗ*ʤW ƬO610xlͷl>7wnhki&[_GC}:y/[lL1rtfsWΖ/8pg_ ,ƚl},u,3lyKY4?.4IENDB`mcu8051ide-1.4.7/doc/handbook/img/launch.png0000644000175000017500000000147412067167647021173 0ustar milleniummilleniumPNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb` c`hxg<$ֿ͗Nwn h@8|ᲄ  s"JG?ݽ'[eC} Ⴕ @Jgf`W9;+8ݗ fq%3049Z101p r1p8 3|?vA ?>3L4BR\Su9$ t_d`+ οfx^s1@ }"e 3~g````ϣ W6df`WaX/A .g`(ñL/(?=k>031(1Qd8Hgdo8 j Ò4Xt=>1d`I \:3LZAC7ǯ `bb LA@טOFn1< Ë @`tK=9tE@/K.@?=^b:` ß jL /w1Z omx!C27ç ?ޱ0pͭNkԀA X~aȿꅏ>p0&gxi~/" G>IENDB`mcu8051ide-1.4.7/doc/handbook/img/symbol0.png0000644000175000017500000000047012067167647021301 0ustar milleniummilleniumPNG  IHDRa pHYs+IDAT8 0D"EJ`0@ a)3# (RRRP0Oac0,;}C.TG^}Y35w@ ]:rVm5d#n&Ggh޽rOt>Z)TR`BYN˹B_Qum}EN^!a2fer^tuLd?Bc옑#z2xE.U c$y1`;L­9eIENDB`mcu8051ide-1.4.7/doc/handbook/img/undo.png0000644000175000017500000000125312067167647020661 0ustar milleniummilleniumPNG  IHDRĴl;bKGD pHYs  ~tIME 7"8IDATx=hawIsicZ$"MѡAD.{GRqs9(%.nP\[cl.܇CJҦZy}^<#D)= .`J%TˉrbP'Og |WJc\85l;Fs ĘS*s`#w\ aqL'ĽKGu$lN'ήmUB8W%sU-8pq1}O n|+c%_|+ -R.* P6dff?ñ={HbD@(MZyHvQ71W2l2BO8$w}OIEo3’efd(pi£4m'Zw"P^96h Vd #7;Fi9n%E.A{w+khUr_+`0"{㙦KHf0Lv)Vm+EȮɭSO1̾KhXxl/^5t0A"S!/IENDB`mcu8051ide-1.4.7/doc/handbook/img/043.png0000644000175000017500000006153512067167647020233 0ustar milleniummilleniumPNG  IHDR\ pHYs+&tEXtDescriptionWindow Class: lcd_display3=CzTXtTitlex3R`d좐Y\X[YT\P\`a`j =ߞAq IDATxy|TΞ 첈 .(V+R|EpVVpCkEb߫Q@"P$dcL2If0g>3s}rsQT' AAQk  ?/R`Vq6HAA3G.AO *;  MH >Jŝ\i$u8) $s k#C.dOz_y 6Rr`7֝^  K?¾h \w:ϏZyK 8s2`v$s9VclAAH\@VT—ܷK}ܷZףfz%i5 ]Zˋ¦UJ +/%/.O ּqid#W/N⥥i&3_;[ KؔU9Q䣾~4rܯ v.zKl!VFDSD]cW-kWTjerE`h lNI˞c>nk.9JLq,iqI2s;Hoׂ[`x+ I#,m+W_;hktoG:g&Hqrڼ4S(j`) P:ݓKleƄ6-<̍]Qʖ;3Js{3dIr,waw|ಪCuAqaeXZ87&uZˈ~iale0o|scEj3%0c5|d.`G_(b:0TM;AfAwh:Pw; .˝k>|~F 4 #ɩχj)9ሸ'ex`S|h^7zŠ"N3{W]˩|UNN !/`>4]UG3.õ{)*nup9g ]i)ឞ1vX ȯ(ڜў+2>2=a"tsYv|X"U+t ]WlGa:ֵ3wfc:=`brk%)&/>+ [?:eDX?퇵oc0u ,S;u Z ZJ SYY 'mIσJH Շmx^;mZ3$)P519q: 78dRL7k:D*aT7Y|h*CE(Lp((r uƄf&Ynvte`Wd'3eDjgA/-eN7&6~v[NUxضh֊7ƧN7BgϿT? Fyd:ENa>)gw9ܺrzە |SNԋ*)rf)7_g^V8FV[\ݗ2-{lx oچ7Hc,'KRXͥ=ShWzV~fۥEtrW E_Sv0}dK ֳcV?崷5gHDm=*qk kfG9ؕbmqI;ptfa ,5Fc-( fRVqѳEK|XI3Ӿ 5MkdwMsl G]~IrbM֔ξ+Ix}h(T˰~N8&>߻/))<߻S2R^~huʋHݿ| Zr'|0ޟN1!Jyᕙ9p%60fSikqϫ:WVNWs{q6Ǯ~ʚH/mR6oˡKsiT# Ȣ/|5G`O򙻩=E6lpS~_Uqϩ:lE6*3j&#~D˾`_BtEQo6͠AgӾc@؄h1uȻb:A| L8uH}CnF@SSQt$?ybw?ynÊfMxխ'm2@-&>u +>;E( qT7^y ۠T0in(ҵ9߫QP^̚Na`WUT Ã_,vٓ6M3 IWVdȐ$7!y%XOǸd'gsLPƺ3ZW]XtcvUYXSޞaJK#~<=P޲"dp]$z`M_ c 0}-۟asm°x0j-?(MQlX)  JXa + =zҽ,_U7_Vg \~;$Y6>vz{OfT3nUY} Д&9ق=ʶ_5û9BT_)E\UxM&,0"La[P$ gh!g2Rn_f /T!qiBڠ[+xAڏ5uЎ/՟O_}>wva'^ELߑsg%n׊#:-Ŵ.yZWFZuj!6]-/rLa+>aBOUrcFFa UK݆㲤p`;k$E8fhBbXA/(BnenG_+.weZwHL /?咳Zr]qmVBg7FW)r϶pcDt?<̰P'q4|۰Man'T5uWb}q庎aWlPbJ`H]6Ҭ6ntT8*`j.f!/>n#L!=O 'f|_1'V =n4:[?Y(Ču Clr%/)̸(!.vV j”֏.gZھD%ÆW\%)//k /ExT ΰLI&OMcw2PJǂkō*fg=—SH9 .jqes ilMSZS yѾ)/e[϶4̪?e73ƜCcZ`ݵm>Fߞ+UhNOa>+7ͼy" 鬩j?&̈́lf6a3>m*&OO&uܬP6ӸtN3U>06uVneX(SUOB3#nA; Hs)JQdp^Jt~8Cy9⤕6=SKτ$Gi&l W՜D-HIi(EV@\]Bʠ/9(5̸tH3y)KP./}X1SHհRDR<_3vzZӒ__ /& a'1k,dXjkud9Y1\.>*43WK:4=k:(ʥkBWwZݫ ; tnیBrw9ǨAg̜Naks 𲼎|3jM Mi8RSvJRlU}nY+;'$ikVW).UN[Œ38 &1ˏcū̴Lw`JNaT|`Q:v g4&mop۩>L0Hgu<_՟ps?~=b_ҀH$~Q KEZ@TvG?^ϭvA-M@g|b㞾IL /xhy;¬{=ݲ9$VvYF!V]^ bttCvS@2f";!T\6) /+W/G x[jmX|g_x6gCC؛S{_f]# 7&Pf&"r20T 0Yܧ%0c3,eCӽjXWԜia}c!z^#y{R9z0c\gw9m)2<)ސŰRL5sXOpLpm\6T'Tz+e RXf(f3C0-_Y<4v0ct/KW0]uЃΚu=#Lp`}<+?j$QA7mglRټ(1<&}sCqׯ '7qyNcW?:ھC:>(ir <./?d47p O9/~Ǭszap$X7{amíNv͌f1:֚ z\ݎ˖3F5^6R^zM>~)u4 k /=qoT) Ը0g/kOT-"Ou c/7Ncfw 8qF9sx猐s%{{hGۿ#},9|膉bÌakv\E9gK1tnj$ hetJ0Tvj\WM_[9mrB J0Z0Sf>9Vd⦓I[E5^e­[9>ZfJ 3^?c©;8j,:)BJHD VJ M2ݭɤs->I3`wvr;0kիǂ0a%qpQr EWK.6 Aϓ/ #91]ւ$rfe VT;iɾ(ʴUϢ=RrÄKO'r:lmXѕεlݎOTJR R RAQAy`tAae(t>A\ÌY9e.r4|(( ٔGO͋Е?e88;ѽm'MHռ膙26o (,9\T2"M ^R_Ki 'nc# |xwkF4h2ucڣ2>e2{\^x5nLjdfM9K+6, ?FH݂ OHOZtz1*f| 9PA %ܤHғا(Vek^l)5 ; Cix NlFyb2Q3(3ԡX) ?P l^|ʇ q (Гp#)T*9}xLe$1l +68#cYu[Ì 34|hu٣"*S=\ni U[׎ۧ7mHV "YHtV7Q7c7&22pvr ;z LEKfY\$+ b9?aaA.VͱZ۾ +٭\8SoܷVr5VBA!I3vL\8 ;Ba`6E3tc5f y$LJ)RM.t;h;Az]/]h%o(Ǒy7'0/J"20ӶCe.p>JҬUT^@cuYhP6;^Ԃ2Aa=$ꎊ۴(:+=-?)t ăDӾP~`???Vv0pWVaD(iXS[=D'Wyp`'/EOsidb{۴ص\z+7fا'cXCHA܏}9߭>5nBP`Mk i'=) TO޶ 4t ;E$۴H&)avAI~XǷi&["tUs6%e7 BRCwۤ  g+߄8qAAqAANA'$x]A0N(N`pAAH;N:8 :^Llڴ)v5jT  DNX}}7'$-[0`@nka޼yXֈUw=^+Wr]jƍ 9֭[7vi޽UK~.E"[dlXّ8*b'|rSy IDATh+jp}1p@vͬY7n7pCڂ@xU:K,+qc=ƙg @JJJAA8~8+B7{:sKN`RRRTʞ@SkLСC6lMA!wpVŢAyiE`>8 |p&V9fՇڵk# Xܴi>/ u'҇~#+(PJAAŢ~q媈, z/;u3bx뭷:ujt] x`m<=zDuɎ66.?ϺL29)e7> LNG}I,.#!r'+.,/:_KX~;v,[jUDN`o{9rdDYAA8U ldtc{k֬Çm6&MÇzg0`AA!: tJ :cV+կXpaT6-[:8XW_Ž'PbAAHTbXE%߿L/K~~>YYY8{;+.*+\`7t ]t?tҵkW;<y:,>c}>N&"1  $*q opqiiiu]ҷo_-[fEbJ [UA:k֬ ;cr׳n:.\`'0/XX,3+*M(G'jL`<#K8DlߓիWG裏RTTĀ4޽{GGݿb(YX?'|2ʕ+ٿ?˗/СCL2%2;!&nOnأDJơ 1M{twS)1wS!&0N$D51d̘1,[^;$++yq1w;Cn5w[t`撑rlΜ9ddd0{lƌ  'Q#JgX3gNj0Goo9r  TCn( BuPN8DD L$ <^\ox>^oTL2a1Q(  ( p Ҁ=} jkhbS A!QSLപN-NX IYHs%[`ƌMoƍ AAScK+< V[@c2uT-ZDvXpabAA8"&pV僳j__W7Uݳ?~bW_p DyOUW^wȢ4,!  BDV:cEUqyUzlݺ={&>AASgW9zUὲ+W~/_ΡC2eqӷj*rsshٲe  lDDL-i. ju̙@FFgf̘1MoƍKtx."E"[dWv$DwE%9rdl&O@ߠAd"  Bm  )HdAA8m'TTj,Qxe"ɩPM)i0Bd)璉-O26'}ye$p  )H=6m |xAASb;d/F;vp]wn:7oέʬY0LL.֬YbaĉKrua6)**nsm#FCqWOcбcGƏϼyB MbAAHPby)[d W^ye Mqq1ƍCuf͚Evv6O?4<1WVVƸq(((=Ns璓ÿY?C ٳoK˖-#*x3&0 %~BDvCdKL>d'6,&0`GWw/^Lvv69\p{ٽ{wN;{wm۶у 6Я_?mF=BL&?AA8jb 镫!ؾ};V5$~W^78_ 6 2 6m6ZlIǎC̜9W^yAA8ш8&pÆ =s>/fĉ3f_M~r>ϟ tgffҵkW͛Grr2]wsos+V@L9O$&PAV ņ :t(7tEEE17h ΝW_}}|xH| 9+0aڷoϤI;w.ӧOg <8.*u5\O?͌3x衇K۷o ]zz:gqK,ՖaÆqeQ^^  'Qӎ3&+Lu 55O?N:CpBf̘/))>O׿7,ZF!Cx4hPz[AdBn( B"{7_6 c=Ɵ'ȸqꫯbJL  J|b{oO j8xꩧ裏R7f-[V/ j׿5w}7|MTz!ko%R^ϸ.r]Dݔm1v'R;In}x`"e|b+(?d&L޽{uѿZ{Ǝ+=w  A   wp@AAHc'PAD@AAS'@AA q p#     ( p "1 BBU1ꂱt~v,IԼDί8 BB/V1k%cKHgBV7p ?񶅣] pުm=cKb&'Bq"7"'?rc}lwpk\  D9z7e nAAPdv S,XRL6n܈R*էO8 /"J)z)|>~;v={aÆXfk׆ަMy-yŋꫯ9cFju5H6lX{Ci;vgQP[w׆8 ByYp!?<;v`ܹQ(**f-Z[t҅o9fxGX`Fb̙ZU5yk<ŋO(++qƱk.f͚ŤIx_G?1X<`^}U~1|ʸk,\$rrrX~=/n'x"j'|: qA3zh&O<@n.]p7F$㥗^k!%%%p/`РA\{zl߾cǎc2uT-ZDvXpa\cTybٲeL6sxbYh3f`ܹNXRD<6l #>9nf{w';y9‘潶r>Q1a0䟼g>7s3ǃ)S>Ջ{?O]2uTRRR0 ǃL]"XgcV]4M>uF- yzhVæ`"͛nm۶85uJff&~)ׯg޼yfR1Uu(Ϭ@!3/0ƁXSɏmfoǮw#qf4<@7e/iqwq76osw]XF3 vlb.{GGg+[9b802.Ê5fk0v,L Avp! 'ÕW?CNUX2E,XB6nU^˜::щSxkH! {1g00L`.\tb3I1E HG3d6+ ߥ LFxTvз/ KpwO-fҗ$,J)H#&ѻ(haLfa \E e(C<$zg3,S>9c:^ Z6ju9Вᢊ3\Gl.ё No}M}dy{ooh֬vzgÆ k̝;~ѢEۿrJϟϤI8tPH_cTyW_}Enn.}}ZbҥL03i$ΝY`"[m#<<裼{OB4zJ'q׮]<^u\r=,K1Â̡01d ShG;Ї9{ %L^UzЃỵ?{w#5VylV#.h <ɓ|V7g5^xeNo(ttrWnf^ɏ4g"[($zY2R00AGJ>0;2ʚD,`vqkN[ $ ~ s~\pF;8K9TXJ>R7XqyLuVncX駟׿^uzbذa 6 iFjj*]wSL{ȑ#̟??.vϙ3[n?̞=1cHм5Uxbӹ[;vldRRROԩ= .dƌLo4oy1i$l;CnݢյkWz]w݅kt]:F=-Ia>iIKz%uџelLe֋ [¸q|V2qذ1g<!Nz\i `e6osəqջc]`B,fq |Bu Y0ɼ[ gpF\z2I|ɗf5#s}6%z-X0pb7\W\6Lv-8ZXR ˼h& OykX8u$g4_h-x㍁]t j]f IDAT!5333_97x7xȑ#k*4hPLfSPR8~P|`6ow` x1L00xG) >@CNv$O\ȅq6g9ójY~SB.,d!:iw,f1sBҒtk-Ep13IWa *_N'bY[9cNoSNo6ټɛk;-pQfnw 3hl'ž`3k*bM?woŠέ. K8mi|\K[q9]y5Ќ}g?7mtmرcO @Yc8FwЍ軅#їK.d?i{<VgCȏ?B:B!j wqQ_þb`Z ܈K[5LgPZ_۬pA,4AE-qMWݚ&- nD` 39ПQH 8M/VۙΜ,ӆ6leT[9B(qLe*8C^ Hz>r ) V"彵4sœ;qB K|RhjBAQ!1aa6!jwxA8:0qD>s'gvsǽ\+ʍ]+rN{=ǍTR ^GSL?}>c_)[V3J6$VO߹ֳ^fZ9`Ū.)濜؛&,lɯyafN BڭE`MqlC[tkAȝtZO!hhL2OdfeݪR遣sKn̓tBBaP:4_5lw-WV72n+9L:UWN5Cobdc_)j+]Ԅ1z"xmFoa,yBQ+i mv B0պLKOc`b"B!G"<~B٩JsB!*=<^ZZnW4 /_nv,+k,BQF'~B-UZ?-=yjJJQ !DUMX݂Jױ++u)W!IlBkOo߾XXXO0|HOOgĈҰaC&MDvvTr;w˗5mo۶ Jѣ56oތJܜ|^uT*^^^zs!ѝ BQ;ݹsV !##ŋckko/̛7|rrrrعsYfѽ{w233yw 44()[򰶶<'OIjj~w\#ՙG{wE4_x!C`mm=ܼyxm>u.\}-**ߧ}׏'OJJ¶m`ӦM̝;f͚EFF۶m? 66>`+5gĉyiӦ sN^{5޽˾}n߾=)))s)ڷoy|0&U{az͂ 8s yyy 0~3}t6o/\f"**˗si"""Xt)QQQxzzҼysذaVr ª:Qrw-[X|9̙3Gr%Wr$~W,,,,[lX[[kɡ_~lڴ sss999\v_˗/spnݺŻO?M|||=z©ShҤ Κ&L@߾}u!R.닛v'55sqA|||pqq! SNi۷o_ g}Fzzbb"L8Q8x SLAVӭ[BԷdtСC155eƌ+kLLLPT>fjjZFVcjjJ߾}5gE/]YoҤI(G6mhܸ1#66Bͺ=z>#55=zp=c~NSJE`vv6W^e׮]8;;qFӧf!C@JJ ]t.++˗/3ujo<ثW/N8ApppNÏ.^(CU2ɕ\ɭFAA)))xzAٳٵkÇgdeeYرc9{,ÃÇg0bU666$%%1c `ܸqDDDT~ww`1>dpqqyTr%Wrk_ܻ_H;+:}[8'dBU>,Zo1wwǾ;WDze˪/fffjFqKJ>Jqq16f X_[]49RQyB:Cf BzDR}$~9uGX"P!/nӼ{w/\P֭[|YeyĮzeimU6j\W~~W`!mL_>w%/`꺣ȵ*Α"P!/OrkyCnݯB:.jwd4ɕ\ɕz8S;G?˲]7~+f? Ԙʹ! U;[ܻz|T4^5qJJV[Y1'8];H֝|YpKE8Do\13B!jn0^CH=;I}X۬ɀ%;+20DWFSػc^?!~KOK/y>yj9%Wr%Wr%6ڇ{I xI}~'aF+0FSuuf}ɕ\ɕܺ[/j o2fA)GBs o z_oBLBک>J-hRm[m[j[IryաH?ӽ{wVVV3/&O̟/ϟ/\SSS ~QQ ,`֭8;;F׮]ؕ Նvj20:3Ԇ!lܸ9s7|SK'͛7'** 6T;زe ˗/ٙ9s( qaaazؼy3',,.])T4uT cԨQҮ];sO8ex}:ff*WVŧ~Ç Ҝ5R2ޞA1rH3gFիW3zhlmm)..ZIŽ5tYt)|ʪ"l_C 6 Ԩ uS!{=4k֌krGurrb„ O||<׮]{/.rSRRHMMeʕSnp۶mQFG\\׮]L1JWgc9^Tm퀈̨Q<$ 9pׯ?ԩStI'zzz/úuر#5yR}Pk˞={6liiilݺw* %E`ӦMy'~NMs{Mjj*111DDD`ooO˖-ύߟ֬Y....^x㱳_}?`Xf 6l̯igKlXXX0|pfΜIlll>|8BDD5&ǎ(ןgϞ* %d)t;x`~iܸ1UW]o.\wޡe˖|g+[377ImMsMƙ3gxprr"""B/ksu$אǫҳOgjQQ(Rv -ۼys733#44nb,[LyDFF5!Ǧ&M̿駟eooڵkWʐg!WeIJJ8sO~W#[Qu"uTٳxffhݣ[p2))섩iŽr&6 v@DufԨv t^uH(uTqq1EEjLMM011ͭ5?t_pukgܹ￧ѱcG0;zHeyui !B! GR}!._Yֽddd[r-[qZ6uBQGsn>GDFFI!xP*O=Ղ l)((WXQB.j7J -=Mr%Wr%RT˫;;wQ#;h)n޼ٹaeU`!.U;[ܻz|T4ݮhF^䩧\ɕ\5܊ZaüͽKff6۷H QLr:?JAO)0^"cԚɿqx@!URHJ:ŋW߿DZ&##;8u࿗MLL>X:]VY^mmۮykh4q3f!yҦ3WG~˖CNmX[[bim!g±?#i!{>F5f!%oѪ,7v@? X[[k>#hQFS3hPt}kCQMXʡisCoBLN5-[=|W+og뱴nu6C~2E<5)ÌO/"1V@!Du-LP麕-+O.k"01""~I#H!(Da}BTMe[S`<^0|xUa1<`߁OjK6 Bǿ߯ûWREvYe}}*WmSj[IryQ"p޼y,X@ͲTӧfِ!C %%Ν;?ҢӓlB(-*= D!W3U*}}}ٳg]Ĥ6{{lB!**ŋ兹9DDDpK٭[7|}}B!|={2tPoQf̘1r-VXҥK۷,׃YfU,!BQպYEرcP27))3fƍ#""B}})d:@WuiD]ϫ@??r/N:V5_jՊoml޼r!BCB!!)B!!)B(iӦaeeEHIIKݻ5!SR^^cƌҒ֭[k.E2330`渺gEJXidVL)hwhذ!͚5{ :is+V)B(nӦM[7ʫx R</$117΄ (((P,oŊ9s;vжm[fΜXV۷o|r,--ܜ(lZ]f,YQF1m4 ˛={f&M}0`[n%;;[3f 6lP]RX[[%"FSzЛ!c,U6W.YYYѼys+Z… Yr%[lJ̸8>x F+`ggGqq1<@VkյF1rH&MΔ)S6lj_7|w}G@@djIDAT欮R Yr%s0m=Cv^.9}47nS2~x>R4/**b&Mĉٸq#W\QѣG9vf@HHHVlЍ ӧO{_se~iE6m 'dŊ\zU"\v#G*Q)B>}aV^MLL ]vqƆ,Ynqqq̜9sq9F"yVhSzjn߾ ?~Hyg$1IENDB`mcu8051ide-1.4.7/doc/handbook/img/help.png0000644000175000017500000000306312067167647020645 0ustar milleniummilleniumPNG  IHDR szzbKGD pHYs  #utIME 0u?IDATxŗMl\~sr*R&FTi iQ$"@Y{($ҫ{񢗢HQuZh+;b&vR5-ڪAR!%XÒ)&K0ٙy/rhil5 LJƜ KlA,#oܙ ,`":yVBH,)|2m@` DÉGDA(]2r80ui:c.|.k[,qMX{J|Je h |&x.F 2]4Ft?=چM4}RgQ7J| Ú=3} a|O|*Ǝ֎3zyyi/?ͥmt,^mDssA 8UHe+PlgΡgƨWn"0jv מwT d/A"7pk g;q!wZJ]Pxn丆S w;7pmY뫐/W}4~Ʌwu恳q('4MnsNn&aYP,Mpʕ=h<fM"C0S)i nBmIs|X%V] 7,5 $+Rzn : IMFy6|hl;4 %%(|kzTZG%W@C?)AxKZkQ1"5e1PǏ_=WXڄ(^ zuB .K)~Fwm[ʩG@x\AqޓJOJoۃaI|U(g~&"mk|L K{PyD4ug$ki e6LDlI!I٠*hC;(.Utʹd[5,%#ֿS16P,y5!0@suqfu+Ǘ823FOHd 2Wj'fNH.+*='~^yU #Cm2yĥʹ\~@&>zT.G29FO_ِǬ2L&C‘0Nkx rA3;fNHf$w#dRwU{iPr;ݾɛ#M@]񩜙>dM +cm|XSgφ~oӒɤ珆HDCu]ZH#~s#bL26$ yqP,qL 6伀;.&B\g̺][z^N[ K dw..z f\\ {St5s;Ft(_myCIENDB`mcu8051ide-1.4.7/doc/handbook/img/036.png0000644000175000017500000000272312067167647020227 0ustar milleniummilleniumPNG  IHDR:y׏ pHYs+(tEXtDescriptionWindow Class: rs232debugger1E1l(tEXtTitleUART/RS232 Debugger - MCU 8051 IDE0IDATxoHg'2c&0,PWt&x͜ؼpH*a)s"nUN/|0+}1|%B4Q Cfvns,ꌍtkn/1Wyy/~yN.QIJ,:vG&|ps.:R0ĩ.j8888ى188 t!N'8||,+R]F T`8s)˲q<^T*UKH'~ݟccc.! p5RSc2#Yc2rAkzÇN[dp폩C,KqGLo)wʤw,X (177WWWmkZVKD ( V;11@Ph&Iruunnnv8j!d04RQTTT__OQ5 >0띜t!Zc2\.W8~>w``ڮp8c|\v$iFrPRRZYY(; 2QvˍFD"|<}\ҕB>vI._(juuUrYYY%$I&zz6aM&h777%RDž㒮>EZ>122r哧BF`}nYKǫƣV*JResssy,;^9?y_݋d[?^]x¡QD?nllLi% ]PA}g[{߻C:rfgc G(jii)++L(>/}8?ǹ[WԔtN9NLf6}> ++3MmL|\SV/_2);!Y__C|]ٿ B"$=aۛ7jZV~+Q"G˺?J( {o{‘9 weƫu @S$*:nnCAҜG[ɩ# G*I#|Ԙ|߹STo|9+BW܅#ҾiB>Ay;2;>$; =&x>6+nR쟝S]B80XF:S&q6H`4 0`8/YIENDB`mcu8051ide-1.4.7/doc/handbook/img/012.png0000644000175000017500000002371512067167647020225 0ustar milleniummilleniumPNG  IHDR C pHYs D%tEXtDescriptionWindow Class: leddisplay2Y8zTXtTitlexquQp,.ITUpI-(JM.QUuU005Ttq ."b IDATx{| W^sM"\" T5R<"xH+Y|5t(|WI`dlF&P Jʪ/֮=|LVm5}2"Ϲ_ 9Ȫ(x[ Xψ,_%W+DQgڴdUwO>v奡Lh5%ëQ!3vu£G͙-'R^$ `l/AQǃ\/lmmzz\ܺm,a@,G)g^&!M^0ou/}xpkKad /L67_*deecu$61}7Ծ"\L^^2ȱ@YH#/h?9*\Ccc3 c`[hjab?$dDaQQkKx ^k+U 򲾩_UD'G72ADaC|eU6(x=z^5^Jf@J:UOr-PD %L8ƾ (mED(.Y AyRՐmB!_$0 ī N2C%vPŃ\[r c} ;NE(^?lHVVaCY_j k[S-x1c^Pw',HObA9lEPEa0 FO,[%5D"7RīaM֯T&LtO\[>>-cN~'ӹ(CcY?<0+3s=́H7+yb;V} xȲ/|ZDRB*`$ HWt%ݻ{˛eYo  p]SxdXAEdgb5-sOKk[0a񪯩hA n~561|lƅSgL!iMF-u Y,#R}ה-.nGe},[ÜlOaʀlic'BQQ+`s !6 -KVZ! ,Y{/:tVoؾͲ`f1kmNXrgiK2 [7BBIUA>W&رnAVVvB6w??$=/*.}Q9'QQM7W|ӱ.$ ^5e0̞#KjSC-bf`bUc0YL  BYÏ[rBZJ=w4K8#kE$>`qJ\:"$-4!A#$}KTIȫPiZ(.y2pM k\r&mگwwXش@ЍU(#,VO5`q\6>Z YE,&HvJ(5Ex\`Qը,+#tDHVVa'Y_%J{WHWC^!rp7uL jς6@nk⛤o 5Ј#1$Q uH| ^(8X-'N,^_GID = K_Ui2't\[ @krC2Eɮ+}ZZ۰2@f|SAկ$F UQ-(Zhî\xTx qxZ;8V{THkF̎H ۙL&aAцCvv(M0_~y^6 mmyf(0ڰk@T{Dښ&PH&46>ܻw(ڿ mlmml)ݮm5z}O@A~]v! /3qDI.]լgB0WLH>U'Y,jqtY5ALTYyY`- (eq'Ս/W݈^]]5pP(hiiٞłP+} d2<=Q@~PX7n677߲e V^ZZ:i$SSy|)o]QQ&^|uB9stuu9rARY4WE}|\@y(\\8eDn|D\\wJJʆ bbbǎظ~DU^zСCy<ޚ5k曖;vH rJzرx9y+usܵwy0tǙ3766[X8.;?֗ԧM_al>ɮ]+T&Mq8qo~(b|rDDDDDOzzzaaafffQQիW+VxVyԨQQQQ}o߾8{daÆM0UCC%'O&inZ[;n jgg}ZQgg75"'^ZcוL4XND|˹.WU___UU}.233GsҤIc Տ?~&aܹVVV!!!SLQ=10`>>+V ?bĈŋKCjjAA<^cCKxuՅ&[WcLLU W ^8oyMnPF䨼u .ܼy_~A$ ?Ķ…;w_K~~~sߔsvmccckkgW_\\Q(g=;wH,; m,\,VWKWO_'OJ K j:;w8$ ,DR_%BKB*֬ܭۻMlMuuAK{3 _8|߈}惈}kR %4hŋ% \. tIC S.I) zz9\U`l Y _NlfF̊Mfӳf%`\exx]ɿy8-_EoW< @ 77 FkNNNN"pVSv{[lװURW.XDu{/: !pQV^6<\3Ψ.WӾNYL8r՚VQ=]e݊/ @|O>gϞ6bĈk׮D7/tww=ztnn.ᇢC9;;oܸ _RRR[k!s尰ЌFZ|hΝ;QQQ cҥ 2~nn={8;;KJVWWwttj5zLؿr$o111_}&D~?3f I_ԭA肮ߎCx %2"?|[[ɓ'777WW\V\w%%%;Mњ]^Ao|___hhhXZZbM9 YxcǎRSSeeٙܳwy! dɿ-.O'gΜ9qDjjW~T&%Kŕ&&&X,*OWuA#Co|LiӦ;vWV4>|XE#\ 2d  }<6_&}v,Q_P^]]N)ـ:2mP˵~:E)S4 PtAQpnnn喖ÁRR(,,eeeVGo,*ᷙʢ\ZBlѣl6kЭ*)O="ZNͱf赦a⨌ϟ?OII.]~F؅^*.WI);99Q<Ť*b"5{xx\?~,^c=RI"_8WV\( yy=}2: (e55+ e98dDe܍7 AyzD ̛u8*+R586J2EayA5!z2DOR 0BMu10'5pU **@d๹`x' ܺn|9HM}b|a&Oo\NЭ¹N -ڧ8O1>pᵭ(  0s&=`g1 |0`@ϟĕ+``c MjZZ^:ydZL]<-Zk׮]v)Ȑў**@^a=Sk]]ݮ]T#ve %$$]NEF7XZPT^Ġ7W^]pP(2d-]<1~G.;k,Z$\`͛{/zr͛7]O2y|#G>c&cǙ<5}%.3=Ss++ /7:+ʊ!{^U-<@oG@vv6Nj.@5]v(")'Z2yʅLlKKK;;a.A~s(jԒɓ:JXSUK,ˋ%gII#m~=L_|&O5y(:2ܹ^k3vׁ?\ D(eH$KeڪLc"Ih땪fيW'!L eJu z _ɓڢcSSq988¿MMM*QuE֮|]y"' AdL@BN\[t`0ϟz.fxxzݾ}+';^ .&xP( srrR)GRVig>}jcc ;v,]@p !!ާ"5>gVUU=yJGq!@)SBjnllW\^+/X,3>>^Ekա7'Owrʮ.ZЮLvvv|vT -[ֆVVVEEEWVV&;TY^^^WW7tPE{=UE]]?>Ҙ?F dggߺuKCo|Kl릦X@2yFFFٲe'N U2y:uŋׯI X=%CVkkJ|͚y>Z2y:u… s-+++++0at>UJJJ֬Y3p}i2o8}{QL| VQ} y&য়~VHtLrK?<GMJJJR[~hK>\_=z(IZ)..~ R_wzZ[[5>}:22rر|>) (eQOuuu-* v"I4Χ^"0'D&_B.WI);99^k!U^"d H WY)QU'O.PʯAEX5c*qG!4]vsX:%!:@SJBQԱڵk/_g-Yݝ/5C+212Rhu:9ib#ѮLvvv޻w/-h @fUub657P  <7nxu |xҤITiƗv]<O8~Y=j> ךڕ￟:uH$BPk1'p+ظgϞ\e)fԑ]S9<ՙɓ^khW&ϭ[b㏣In%\ܮ''$ЮLvY,-WhzK5 +'NNN6!J@o|դ kDOR P=J'LV|a&O_B.Ε!z2DOR P=J'@)C(e !z_= EB 8 P=J'@)C(e !zV~k/ ZGXx`J/Z"~+H2倾vE4+C(e rjj* [lVbccǗS\]] ݻ񒴴p%$''Ϟ=[$̞=аvˊد_?񒴴ɓ'?};H*l޼Y!)+**vLݤ[[[#P^ ?* V\)wmjj1c4hйsͲ+$2ݹs'((Hb9???888667##ۛ.] &l??,ҥK'""Ǐ?~|gĉUUU>i~FIDATذa<ںR?ߓ'On߾=>>>!!a޽?Wٳ޽{W^2e̙3-oܸ133Tܸ{ndddCCe._ÇcKKK1cFmmmttiAUU̙3SWWGavRSSqyyy˖-KNNutt\d ٳOW%8H$:wcssG)n߾Ǘ~k׮Ŗ]\\>}z1 Ϸٿ3Ž.[__#SSӮ.qm-3̶6Hdff܌W;v옿x/ {<~ÇB!.!ldɒ 6`333aaa>>>sJ455566|9! yU!g%w"yϕA[G$0Ϗܿ?ڿƣxs>q?jN\[[[UUc 0@bGjjjesssCCú:i$zyⅭ-nӧN>[NHH.!lG_zlݺޞЈ#._\^^>e!mGPb\PPPTTN1c&&&۷Ν;cƌr֭N*s!P ~EzO 2;;;KKYf\|=kee644rq=|Gyyy999>ᅬ-oڴiȑBЈH$Yh0iE%e]رc~a_{ k_{!͝AtG=}tԨQ} m{0D222Fm6LpTVٳgN2uTpGeEO @ h#AVHu7!B\'@)C(e;Wt1]@ _f=R}V"Xn@ *mySxIENDB`mcu8051ide-1.4.7/doc/handbook/img/003.png0000644000175000017500000002331612067167647020222 0ustar milleniummilleniumPNG  IHDRkQP pHYs D"tEXtDescriptionWindow Class: main.tclaH-tEXtTitleDEBUG : test05082010.asm - MCU 8051 IDE"# IDATxw\GǟGSzU0 "XD{CQQ`+DA ( آ"pHk.畽c<̳ss;%N9~O/ApppApppσ(G}]5~ =zwv֭Mܷoߎ;Ǝ`0LMM Smm/d)&MbXR+**U'%%رV`9r$ݻw;88ۻ m]#?ÿ gaʩSСCk׮ZKK˜fff6zhDUgϼ%.++KMMԼ~zDDDVVVgiÇBd!|DXjwtΝ?qp䂏 H$nذa#[EEcرb{l[\]]&J͛7FFF\\\h4sLL͛7h5?޸M%z^Ӧǃ@@OJM$ ,}\//N@AGw℄T6l`O6KKNhiQILl[X=o+|zH})ssʙ3j@0H۳r*'$fo>'ߠ!R52cfc- 5[LLXXFSܸpʃ?ݺuR\.WMM DA0:t <==lll$AfRzqQS#撞?'VV{ ~ޜ){wJVʊzRuIoa-Zӻ  99 )/sBB996NP8ap|+TH 'Mk׮%P(R]]]kjj򜝝kkkϜ9sN-khh$$$iii|FxI'55~?A--Zw;wLGxxhxzFF >>ZDW --'9?8F}Nr}}o߾"@v \ʕ+o޼hiit\K-%JM D{3g ͛7bKD*tR5k֬+}}} `0Əٮv Д=msLyTTD!ߺ=\X|EnU[2XX|Jo,,tN_sjq[ׯ488ڵk)L P~k͏XC5[S;6] ' 3q"p*6YfQϝ#YcR]ㄆ]}}Q#<''^ZáH`b~ݻӓUU0/>&OT={܉ qpp}uσ'Ԏ?<:ڹ}epMZ_W}2 ܇kJY5G׳njW''}q>|hwIApppApppApppAxݐyJ M,+-mmM/iBc6ʹHH oصwo-]ݮ ʕf-eDըO>h**zJt4?20=v D=4T֭Q>Î\26f ^,*ib?XrV^*oe= 0Ye7r|rСt:͛Lj;I{w9/G"Yн;z,p8@`-]Ez kR&DqƊ[Xܬ%"#Gʞ=[%.Zl"vCrKFa(YYr(mhV΋?*PKm$<<Ν;ӦM~ⅪĎ;EGv`nN4`ԨUU?5-ooPԌ ֒%_A~;wRjZˋw5F#$Z N.(`EE񭬔#եK1ho\;_ݓ4hf=eggٳjɒ%ΒMM#"Z8 9kx#V%KZMMMM-ja\ ʲ҂7TT`bAHLlѣ̬qݺv^'9miDg90bux*dMKKt= ׯ99 NP$*Yz(:)bIpQ=Ix¶xH3 Vdv$VQE`ExO&nfMGS`#bcc}vccc4Ejb{<+W]-%E-(HիW{{% Gٹ7o]FEEAmm9 Y kWӽzhFm~\5bmMZIIm} _`g>srxh~&lٓ@ PԏU#'& :ujKd$=5UJ%ppIݱC5:Z"c~<{;a-&FA\^.!$av` eUƍm!l6=z<=)ggǏHSr,w.p8]XH=]'dиUUh^F=]28pDi%sjreE)..31$$$smh°>gvLu{--mzN_ 7..zeU:gvLnmw'c ax:,=Y;;bXmBAOWJJ˖ׯW7v䈆+~f&7?rJRܹ4SiӧyE]PVիܫWJsq|}/!vӖ_>UhsNTQp 55^2|#zbv^olؠ7nP9N5.zeU|eiTW_0P J]꼼BgnܷKs3"uuR)ޟ$>qqm |뵄_WXArղ~mkeM-), TUU-lWoAN!qYpճo~A}+=MMi? zc"a|f`W{/cv,PII'O1bTT@&SwlaiIQQ#C_= LG 04pq7`礒sV\Ie6t^cƍ{%};rl/~C }|cSt}8c簉ee%VR"˯ym͌ӻz`D GeljoE23<{2hc#W+Vmp5.U0 Xje^i4dSAAa{.V5 :8@HjGFa\݇Nx vH#$~FaaW??j$yӧ|GǦT.\tX;}<s7oj9ޥ@ 4q1/K=T\T>ojhjj?nA/[ˬ'N ,fl KOqȑ̎f9\>qqdYFYdCxQ_d6wbGm}V 'O^jkku#G7?yR,r˽:f[B’;9'*5E]tcMlM'&Į>u/}[ F#)5Ckk۸ffFYѫn̼-Q#R3ٜo;wŞ9>ƅQ6%԰ jEuu6ؠdDŪ~쥅)H@# 'xMM]HHťϚ}BVH‚I ӓܫ).5!ᇖ7o)ۢZٝ.ǎ~533A'AWV:a/vX=thXcc t:-)i9Lz47/UT,ؿ d2@"?j7Ju]%l3KfHEj[~ݛq#o#kbgf46U-  K<'Xx #*@ Hذi]ΐJRܕCok_6p`?n#H̀ .!R3Ͽ~Cj3F۔\аfbb}=CokU1.@z&FSUUE5$''hE^FUVZB:|̉t-m͏[ʼ5BFV~^Ϳ?Ҫ+|>zx~UgzXDPcDHuOjfgm['I^ޣ.] tXlee.%]YGjbggC$+8>tЗ R"ů^9 XPx'˚IVqk}'}$7D_ pC4"*qqknaòJrrGDiF ?65G-M|Rs]+~9qREŋ'.UaX"2W4u;wܸ?g*__n ut5 3:s ϲ Ik<|1 w~~C'Ef}}N2F۲2sŋחTdd\N=pI4 H_aeRk~4׋[)2DWGꆨ?vvP7Vߙohx |~O?6351351rڹ{ w\h_Egd$N]2620z@Lzf&^nDwIuXWG[+.P-cuݤf~,{ly̪ A*e5SԸdTmܰ 5F+gϚĈae;9^6uj!no؅UGG=;r$=Ypw54<ŋͿ3l =;g uDbΤ 3^Xh)?_~N),|rC 888 B Xt>7L""=qRsskGO;#_MBdϞ-01c̙ Gppp5uuu2CAբL"_jb5nީڼEE w矂O?U7JHE[#DEԟ888_˗/Y}ɀ@ Xv0į27z%TD"^_jh/%%[\8:YKTh\ͷTao,^B,))+++Lӧ /5k,)'z- \igؗ-,l11Z_ޙm٢CАt>ك.'S(45{ՙxDA===ӧOϛ7/==ͯ*5+eX}ץ e߸۷޷aX5kRR>^:d}Ѣ>/_6Ջsg׼3dfY^νxٙwoӳg\Vzz߿)))&!@rɓ 3^BFR d_WnѢxQ])o)?o܇tq~^oD8tX3J" ]RD~ p!ckxOe&;{O| am KXPMjىoҒ;v0Z"">,^bgGmXæMwnzH;nff'};@_֭ׯ8S xĨA* t<}蒾[>͊[ifjb=a8N+WR{2bW/DJ|~ʹr77cǶxk  0R9sÆ(aehZi;wN:_npP7;bKK^CN ~­['=]'N[t Z,'Ewzu3{ÇjfjqU}YyF׳{$ƍF eeYF-%5ngϲkfXX ZjU= <-!AKWU@5`@_557}}.\fX[[BvjT+D HD"T+5eϞ\.~c>o|WphJr8܎hFψh-YN қRD,KA5T7,*jyV\ݝ?%?RAƖ>z[\\$;4 IDAT*G?/'RN SJ9˘1-@%й#,~C/]vLfoRRUd_i qr O+rߧa^# 5*ϱ7BfE7H]_34E?PCC=3Y $;;w M1o I'WNܣœKH mg[yCԏ1lmgle@PZbb#t"P}555u99l&UW4u`܇ϘZ[[wLA)r5dUzSԥj+ ;[M{rV(T*,Zؘ|Ty`zA?ڊ8kkikjsvޝVUŽ{nvJ.pj]4"hYT ,@fWlD)Nrkه*WXY~_aeP۷ <(url~żP3j;_)Ԍy `)5<7!z"zS^:uaYC Mdbb.Ҫǃ%'ex䚒!ԳC)eꝜhǎi]:qb-x{W9Ӳpa͛uLϻ .~~| SOJ!9}RԖpb{ @!X$TR^^O#>GR V~z/(FU۠W̨y!~Jih;ǭѭ&F;vwHjFY4t1K04V,`X?F>P9ZP 1Aމ{F͜Po .15thGO1Paӂu3v/0;aӧܹ͑-kJjDwuH=;dL"Qx$=[[}{OhtQ{֩!lظqcXwZ OB=!Iu0b IٳGhZZ||6mZ.;̙̀@)6w1[ p ii,J}ȟKyׯKf6~\3ƦVW}H$зgO38aqر;wΞrrڴtaI$ұc[&5N7bؕuR__ĉ˖mڳٖ- b%j_ #4UC&+6H;v'-]c!1\RP5%CvH=;d̙3CFݧNad_ܨ\7s=_v^C `y%g޼yA8JpY\9g}ѷ(sW׭:.4 B X:;~ |0F)-'o)w1888'w1888ʃ 888ʃ 888ʃ 888ʃ 888ʃ 888ʃ 888ʃ 888ʃ 888ʃ 888ʃ 888?w' I IENDB`mcu8051ide-1.4.7/doc/handbook/img/038.png0000644000175000017500000004745712067167647020246 0ustar milleniummilleniumPNG  IHDR pHYs+ tEXtDescriptionT?da okna: main.tclWrP?zTXtNzevxOLLMUpqu uWRIMI,.IK,UUuU005TtqǪ IDATxw|EswI.wz/I.% AM T6@ *E:A^.]H!z a7;;ϳ乙g~CZ*,,, G5j\E kl5YIŧ)ݑn*s`BL 9|ocD[|'ώ w~S{[`Z^Oqxac<tGd#vwjo]pGT3jeMY1A(,?XO^{ `^ڄ@ ?$ P\۝7)m6jttuΨ(ҚliQ:֙OPT4@E65u>\]iCn3,D_7qLekwɻݨ:6zsɕ4J@#* 6)=[Z&l hZHa%ιJF ٌ E%h۷ܸ&[[<\*J8(rC;歺t[2k+0nσҽW6 ͹sگ)n82;k4s_i>֯nw+dI.l_j+@+}߾+qA I`%I^! s2w0R@"*Fy~ 8]6+OM?9dה05IYeVfs( CcBjqCfm4DFd2mEM~O6~+ǧ)Jش)h)j%6RߨPvS _X"ׂ#6 0~?gS!^CaL漸ծlEq ˩M%ϑWr;[YTQ^ۉ241T;V'ohC VZ&y}UєwQuEc8VXߨjSvS֞cj/-*Rj0]5ms5ס􌘊.FJRti=v9Fև YcPPXQToAQTw#qR&c]*h d)Lye@"e zNJ Z}:ي2?ǒ {4l-0?JgZP\ߦdIoҍMX_QE`ڋB~x,y/*Y˰`. 7V7:L<'^y̱DrTEK">0"u(ծn)-(,9V}X\~:$~iG9| 6>?m_X=l&^uإq;y$yno%!eY^O۽ux@4([»FnGC6a!f(^>{5,#rz3{I~ʤӭtZȴw|ӶRh]N3X>_L :(tts?  62WKۇe ?BXό,#lIPou(Y4BJ (?xw ˇV}XP#4tiu.( >Cf q 2":Ȼ`i{iywT{6>^^OcÛI⻰,P/V 'L9Ca΁moxb{bxa ~XP:K.emW8oHZ )EAzv6g[y 3M{` fU0j\ב;7q:]0nNASdY}%Z+}ϥ1YY_6lDw Clbt,5諩q@0+Zp y 7ck'`fWDV ? :f=jcF ۮcD,%Bv4Kxn8׼hvGm M!~^5a|',Of5gu4`NL /;6M~rK/òc+78en k}eߨf?LlG{V姝e u"lo ky&}N BBK %#"R`PK RPX"6C ^t,A  9|aW4ˤ>KbǙ'.f*kP?s,zm]'r۲횭NX7?sHEo|jf\f4un),CiL l6BS+oA.Je乼W #ky#0kyO - &5z3T2ZӠr)7A')$p%N>c0 ϼ3ٰGC(3K2<:#7GCfMvqG):H]IX[i _{(-(x5zz2#_(N;wi3 ~N* ӄBmoص7Y(G9ceu354JyPay,zhU`(H׎}h'A0A(hn_/|ǡܢZU}TKUB{F[{[i#Ⱦg^m%t( ;c͏:aa '.Bl tsK"䓩3ѿgjȻB=i?/ςڒ Ok7߹镆Lc h)Foq GcI욣57wbK*Z|g(cg0׺Ӵ"]˩}-c+HsF12vzt*&W:bDON;v#]|D (Dq2ޚCS(~\|v  Ꙇ# s~BmdVKykܶIvW|jȝW= ~CUD Tjժ5YnMfUSj3Zr#UJoujYyeҠD5:ϭ}3:H 1$J.}o ", c  [.P^~.$d<_KPG%_ɴ"o~ц9m؂`–=<3opx]Bvy^6Nt $7{"kV(pw8&2<170CL%FUjGj w): mOi:^]l8/ pPF](ٶfiݧOn,$gs3WO$#4\L 39*`4-x$=2¦VtauVr_n?AV K3tYgnzӵԹރwsotJ*x۟Pδ:Am374{-fIa;mŕxM/PeuJ@s(H6'kfO"mс>-҂fӎ;)ﺉ.s Yiv r8/$5yn >:̓?+oܩ:2Zf(|tA@q|8X ) 9O"cLEvԩ3^{{nVOҴoncgcq]ʍ Oq%~\QOrEM iZUZXS݆DXfP5.!5ݨ'e K;Fł.m?GLڴ@"ݳiŸX7ը-~{}ѥ[39#+e=lw`Y7TKUҩ W\Vɰ<+;'dܭݧ/tM;9X798>hYݳ/ M?fUV/ }9/]ӴdkڷpbpABkp9!~ѧL9 K0<뉬٢2իW84obd)2$.#1Vs߽%,lׯ߸~VĽb>ԇ׮߼( 61t2];Nm DwHM%>>ȲU<smEA\HuLA 5xu?v3A- @(WMC3.:bՆR6Z<]g3E%q G6k"X@>0O,1'h+/ LKzp;||;hӴ,jFUVfX!MxRK̻/jd6uEcS|'<5+QEIP4SƼ]{S/zu+a2'UJ`?,KiY)WWLOiỌ;Q=莭gm},sQ':|͛[@V@ցd˪_Ù5&^,/S& )Z> 8Ŋ YWOŽ s(qN[mr5NSBAq|2o |8E"ڴ{V#R]Z@YXuJi&㘕Xiq O -P3gߪngNh =zg.v+/xrrS_+Z%6c&OS@djW=zvjSr).296!,Gq29~+o(<ڒɵSmUq[1NW8d4#2(Z PQa[br~X޼W >a1fjЈ]pdnω?; ofa Rm].D햎4 k HN}c`Pc7n(KF{O+rb5:cٜ1:> _Z˾ڴش푋]_j)3W#;hZQ!Cdv.GVCSu &j}=KP>5ܦ@ @<j8g2ʄ|>ں+JS뼜%hU% 3tMEsh? "^R̶{Mxh%W)-Wj {{Ϭz96մz.ZHK=7t5em=g $gy"i!㋓rW(s[~zZ' z<~?'}s.nv6E}@Zն-%U`t)3nڧS0"w˂R{Y.GqjBv ;ta@k "˙.ItDLMuJEN|r?I+,R"] |O.xinFhx,:e~+h6eb%/C4v!\NFƟd,0%̀7غN(gi@g;] a:έi1nԨ(FcA'$FuU4wkOyEN St} 2y> д]nǤܶpAK@S, _6$ Ɗ+,N!BK EE[B`Y_ r: hI=}6=_WQ9P0n죝+j ZPnxL;]EB ̘iP7Gŀh""V ϭwW]1^>u=ar~^Qx:|Ǭ6O ~3f7sӕ/Fykh*Qa1\8neXWGS/{J걜s2bWų72,,l֭hE*('?mVnmwIJ-Ώ?_Rjܽ]nej0/oD#h)?)eu駟8wQšuvQEFy̽a֯e2Yi1*/H"] >֧6*YjbNJh G;W'; \kT-lъ;5rK멣f}czmL3u M )<зb"] s.OH-1cٖ+ac g=NfJN/O;` ~+&eڡ8Nr4:w3hWǶJV2'Qݰ^u چBVi]9R] su+.uktw-Y()uԫ*ӎ{3[CGA+bl!mdm/ K-fFܿ|̇ad2իP}[:Le=Va#KIoneWl=Q90UUb-NEDz<[Vac\e9o**-c>-vnYN6ytJ'̏d>;6+LfQjV\zPch. toG@ W1JTݾ\ȩ֜īFS(h#(P,X ;" d$8|ʹ,_&xt1E%թ BAvN{wtvƞ=F+kW(@q\5b\ř_!bd4ܹ}>3tݻ?YG](zGAuxΛ%-ly2܅5)ծ1)O8C٠P6\FOpJ{• ߯qx=,]{G_gMgw _w%W˻&MFP+(4o`=um慶.f)~Uƚ8 32䍝dsG]%y.uyK¨c/'#J:duKƃBP4\+}?;(!ܙ3 wN(ſ3xs^+NϾ)(( ٠vm"qF-u%84eF\>pmuV.Mp[ǚ6nc, %4 RbtȨfVjS:5bW*>Ǽ"],iݣM%^gc[Py\ p_AXF] X~-Yr@hFCA-Xy$ʐfoEkg"7zо6+kzs5a-0([K}!ŵ.{j׶67hVRA F*SY?õWRJvLu۩OAȬFU~>u 㘕\[86mPPn^i;_&A&b@ӷ]v?9ˢ`ՄI-Glt*stvp۳mok3G T\F|Oc#tje *k|qkNSMx@\f)4,@8[I?.2pDqyhZt,3EK h<\e1/E.TSO0HhZٹ3ʣu4Z[`|.`R$~paG YhI"mM~ά9haV]%h/^; c//z,z@ ^'>ߚ&nlի5خ,lvӍU?t27WC۶s~2/ƽi5WV C%zC~ 2JHȞi(3cf15Z ܟ'cPo%=?+ۺ`sR _;W[M:qE +ZQ4zMySp_jv}Tn{}gO&efNkbۭџϭ+#PFU1M<OJ[M?+xg;8b>S:ww-e&[ep*#U?:'2ն[]ʴϗпˊT' =XحK%@Sͧa`FV .(*A):28"?A֯ tyy+.q YcF.=bw.lAfĵaQR^97Y[hQ$:'5H j8` Bu̿9*Fr/U=[{+cAQP<u.( >Cf q 2":Gj)P?VViwKeE-iqͥiN4aAEƋpE?RI0&359D;L(ߎ :$E/;ce\&vupF¬:SKD6v41@͙8Du,W O yEx/l̜mT&ٵMz ww>2+=N[i hIbiK>/:n_ByKKage3 m5\VFw Q wn)-`lH#@g]x8Mq"K`N^ւ|͇ӕEޟzY[`b&ՠOBtYX,:MPr)k*Q;);xGv}B}ˣLs;L"E)_m@d8,+:rÎS5˕lZ'Gf7@O >(ĒyrKy P3z(doА B@ @ H($$ržLn4-a}mz32`ɓ ?^LTy$( [xȚU^ӂS sdUꈾr=D4~ M>`a-,hth3ѱ5L-T_;(hXLyWA03fRʂg`LtLP w&c8H IJ{* P(iѮy;wwO)PQLG|^uwONO/3ao`(ҕsl"w~+j۱C|aQ-}e[Uϋwx:clwXQP:ye>.~#dAk90 ?mkE!}R<~vQZYqhn}M[4sn#PQ(TH6T|E\"].I2N4PX3ѭŻTY{ 0*'j+u1H6#844 x ] ֙cx&Q R7n#K E6Rqb5)O&i1HEsb#VET[B{_Xnz$ҕ6B~[*x%boi:+ 7'[__ `Aq3yխGYZu}y^H6L0Ӌt>W,۱kV4@yXEV=A/ğ4K6QJ B$t<&ͅ Mẁt|8]+鳚˩ᕶtB AɆ4C(+o9YfITLk;oiTZuqps8yQX G1*X]w~ruR)cb%{C:H޾pMeOyJ'.0IQzD({oc[?,Z/Y 뽊"]ʫ(^3M;h`(}'v[ե7#NҞoJa'x;|qy^GKeڶ1cX+}ǶgyU\M9!0V}jemZjUXXX䃚N][ZHa%ιJF 1K1&LL_XɹgΦ7$.U X<X^B|~*L,N qHMfI R].e˔UnLFBRdN`NP6#Oѿ\Ig|kHEs4ZPQ~wh?嶿2 7(mqu~"g?t/`~+-[GMKL0:ֻyrlzv-˜yq]7/يSWK# [v~EXa uwm`DBRS H<UC<6  i}ilݺzu9SŚ ,UQEDj%):o䴞TL"]dl(4$g E,MCG.;;o^˓k@d\IZvzC Ut^{!e.ыtm?'/TzwjCa]j*-b7"pm$+FB$"FtPccY )'c()zɬ@DB2sFEO/KFLP'8W>Q4~: lh}^<^ӗq`it$rB!/8dMsXY= bth%+:OIu/&޿hz}U޼VXKPsD jJ9|~kR6{I .Qc+eO{ GWvs{ibɼBb%R [fTZތ89ހ)+p4lIWvYk6 @-i9K@s+ҕmVlNT0& $ĠEl]VlH lȧӱD}Īi$ ˎ SX<)E;Xp !fӯRl4NV9[{[BC`훳5^P]wWظɳ:m;?z$a9JuW9JdRbAfTfdc"];.8Y/tL[Rzm" |X` ]%~huԄaS9v,xKʺdSCk 5yFțG~[g[_p̣sx}ukȑo.֑WĽ;UP_y#x!\nߗv~8(Y?{az?SHG/R̈To9$rks1 #ev#U Ba$oHWT>67)$nŞqi7z0^~-q=:$嫎ʔ@] O|e} K_n%Tnn^ћ5@_׹~D~{^@sxYfug }W>}'#mQNk~veeCR~҆/Dk\h-:gW6e*\#\ğ4K6XTȺ,0j\ב;7q:TF_hH[M`?룊fV1e r45ZSLꡧ5kmFPً@hu:_PNLNm1t[^Pv&bx([ G}<ۈ70/f=W*it{3SjJh93,Aec[* W>>>|y֊g߱٩n^u+4 k[Ejlj;ac%]<ʆbdV?%vT| RPV | 窈3jp`(*ef->͓}$ӷ5?ox6'gsPJsxwX 5'v7kkT+U ]'`bϗx'l*+yfi"w,(O{c4.vFv}B}ˣLsK`} /5 zD@ H($ fD=8ypX%O>y>S. /&ݾv6C톹ۧdlmGLlXJ0HW#k:X&*Z#s!*JKϣ.3EKVhm̞LYwR #jdM_|X`RO",{xsɋ cKhJ%ҥ(lGä{s+un^m*tLHi0Hu(ծn)-(Z{K (E0gnZB!|QEj^ ? J=Ev%AwB ߎbn/M,W !r/-CCw,J?ޛDg3&%C r>\c89eξȧ~'nE!BbPva-!BEE[B:oY" "aMcv._'>؈WYxkwڻ_ZҎ&-{xdglߜz횿@i[RV=*N<7cuPL 39*`4-[p]Ӳ@` bٗtuJ OK|E|4xQ?ӬG|_*]X;JCEsW .eGwWx rN :'qFijЩ 4U]Uν+ɤ{?Ye/U`73T"],h:%|`ί)gu+N7?ȽNt;c}_#~ϊ2N^ >#_y}ٝ{ ._l֌"x1?w߬g>|܇S5۱{ < E"kQ4D+$M*mGLSGʹMo3N;Mmƚ&R;\HD%jR#hLX. "mYv&+Gs}˳gy(TB0Iס..Ym0X̹KP1nA Sm4ץڊY @?&8~7D'BEs jP?rsY٣,n;Ϻs;h!򵂬a],7""P%鳍=q&yu^G_±>do_̾lndq~P ̾-oOHyg|geOҎR} 6t9"kBP b(\~G6q:6 Ƅ2A6;jT{Jj ޡ8쳤 !J[bӔŐغDtXX# ̱Mkz^B1MHκ텯L`&[MZH7Der}:O͊> }vɌ]," nMT~T2eC=O6_z.e967n{ owl*=s6,lo=7<{MV߆?3F9<6\˖b9/zfkϭz-&0dѺ!9h܈m۶>h\m8+/IgKOܬZr+ >M\ 塍 D4aIK!K!BӤ(13٤BtnLy˦L6 ]k`}|1y!8+\*u /in^Y6djsϮZ\i Ӌj oiQ@BP >i?.v_H4$p=&- ~㭥'"&Vo{ulX {$̑X_>mQQQ6!PQ?^(BGYxk|ӕ^fZwkZ_n8^[ < 5^cSY}xp%xGJHLhPu1lz@^Z Uj\?##3#DpSfT}Q^g7l _ b@NxLD$5ώ/[S}o;"G(V 5(0C.1"#@s mD " BЎ{c.ֶK8\52;eҴVQi n(cm踴I~5qJK!фmy//7R(E{z@N4cɔ;EĎGul.?ݻZ'Q{ύkD4T+}c GDtwؤ].wDD,DD,DD`)$"q+o(=IENDB`mcu8051ide-1.4.7/doc/handbook/img/024.png0000644000175000017500000052661712067167647020241 0ustar milleniummilleniumPNG  IHDRX|ۑ pHYs D"tEXtDescriptionWindow Class: main.tclaH-tEXtTitleDemo-project : demo0.asm - MCU 8051 IDESe IDATxwSU3ATE@Y׵⮊?ZU뺨4aNʹ{d&$3LPvy?ϓ'{oyM;(W[&~w,C~ĥ4#9b8B!B!x;rfM2cQ!LͲdf geII12ٟ,>@#S_zqshE%1)WB!B!۩3k߇`6I U,QF^(]s05 0-g2Sr !B!Bqj9ψbģ(56/QJAYP(^yB!B!BoZά 3*=Eu - #Ql&ht+O!B!BT˙5e|FEQHM5E\QTj[ʵj,?w^D-/ʩoyV^vVW=ުB!)WoaOt(5Ɨ/MaßPB!D=Yh3ӋgmU#X((Re`U5j7PLRK9j^ʵyfIXʫƖWU !"6%yX5VPTx2ڞNIjDw$efCid41ᱥM]N~*nVy~ nD3mk Q?[tfͯ}>}r>7?rt_u;Ijֆ΃/޼S׵$o_xcX mcR|p7jY}۳qD߰c~IӇ,-`'Qv|g1TS,H p/- ۅBxg}e]̢W=E!n#xT Vf nZѫU/EX^h^Srb-ˈPB!bT9| (cX۟M(x $[|8E-b qVſ>?x-t)!3 =VRS8>9rzU1VCc~2)\=>(S,v,y\ler~k>>ch~sml]:hfRm(p[޵SAJV{Μt i-|-.C'sz[_Us3{×tՁ"=AYحR,~~:-:u(8 vb1DhSSQʨG j\ȶJ v&ٿߏUg qFHJN!1JV/)CGY +3{z nOĄBXYmR++*OOzrf{ۻjUHEe,{LB/|f!sYcO%:#Tц*Ԟ N 4X3]̸:xZT#M}gWLc>c4Y!_usSkcBA'P}N%f~/=.& {V(*aseov4:~maǒWǗp if |bF_)s^y~vî#ҷq3IRCt~cp+IōxjwNr9?$!J47 FIrS^_/ƫp V^WҗȥF| }7q|ecDQ5e;K qWХCK\~bOd<,x߳[3WJ2l|:gJJ|`n}n]:sQT⣴6t;h/>y7\Rf̄kYUN 0\bfdzJp)di;p<:ZL3`CE^[z>zux:-E/W)~MC~Yf_!9ʫz~%GԢ749QU@IU7¿}axfsXg0MđڰHS^Ў ;E)jPy,7Mnrb~\+*-rM|'5ބncؽi%7z <1.B,m{ %oM,Gw qv\p%;q.(1^|ٕJfgWk2(/dxT+.OEz*`Em]N2HKM4kQj 4kį+T=bF+&>Ie5uWy$1ƥ0hD@Uu{\($X8& d0س:%.! b1um*0̨űӍbN --& @g{Zf9:~m{ 2g*RPmT8fUn5x__*C~k8獿 묳mI\z?oo1/4Eťzj{_}Y7utMどyKh|4J c&7MneӫRnw<@8S-8f*AC}خ(5Ajv-Vmf;5;pڬ S_͔B!Mc Rw- Oi'n@GAjvc5(->#.# DrrrXU?3pRdFJ<*Q(&ce=Mx|i FE!%-:Iը*IIqpxElЂvEmW::)p+8|V>FUëT|RC訔L$}\.6+<Get@Ut*ꈭ)>f]P{]-qﱻ.dъpk>>Gٲz6d펆!x?zH;/l߈?w0W/co2hJk$u<xH!RU5ah*u3[Q:n_|4E1{_-s|<, j>zQ.\x@ ic"CAQ G^݈DioWhb!Tu-?E\B /U}@wwG,!Y㐿33c{"{tݤ(ENK; MQˬBYQ8⎫ 38qY:ckʾO۱'q w4KE.RL$,,ݻp䷝;A13).V}ޛ|rZ]Tjg}cWYrxGl߶0Et؊ݿKHZlz_+uIJEGؒ".)=$ZEv2dtlc\d$dԿ> vǣpCKG7fOkj9=P5Ck$w~J}F~J!EqUϕEjIǺrf D\^#W'4g8"X}n |?փm?ǩ)VEhhSະP+V^}R_fVՉjέp,B!Dle"v]۟W0i\~0`&P($>uRBt%XAbU3wx=lY6A )Ygh |GZ{ 7r7[zN}EWT !#t 記muS5>j,V+{ a39s=h)NzX5 Gq!9C\, W+ؚ;/?k*-cʹyꁲڧ5tM݌ϧYgIй'vTv ë;^:z9l6۸hìjxes fy&;HٵfgNVww(, e?7]QQq0't8k}=-)&/qFe3ZcKLYϦoT(еy(FC*{ܦg "!%B!D -YUZV #78E6uw\Ի_ם?+9Rd"gdhcB!b( qߟ&bƓ١'%:MkES xxW]&.).g]Jb8ʵ@2F,/YD~|:Q޺RPM3cL>=Pը_t҃={u._<  }NUM x?}L@WTZ8V$me<-h(W8+%yXuL|%8g=Kɢ)m[L5uߟqMl(o?`ː4h0~)L|b)q~xۉKie7P5?[o]Hl˨ŬjUNkׅ}8|-?y 2J~4VvV~\|ly4]'%@+kyZ<7$:\N4=<>̈kd|1=PUW߅OW1D_MWu zF31h =,X_oP{\= {t|YV!EqՖ˫Ԓ3h9¦VW|j6ꢙs4qxNߘ"عuəNB;G|fD# ([(Z &f'FEçur" s|:8@ )OgnrRQFLx-8+ 9Rt}J|VEJm=O_3o||N4Lk9 :^݀o;MŘTnD+ ? &O~)|5$RK32Nv)Yk'=dYJ1(^=]%> UPv"lF>^H3KRpF[J1 {t^6l>ZIPt*VYRN_uDǂUav:~MůCLς[3V]dt\br9jz5f Ln9BLόoSB! :q>]ŭYfTh?x4Ylst-Q BNYSWsGa4*d43iYL,#))F~,U51eqPSN͌r~ d`Tt4t]AU2k}<*  -ucX귢?9Vϑ{IH̭k% K&5ѡ{ܫ&Ic6hqBݩ3kO_ߤӾ;K 1*͚܀7E\yB!8+ 1TMeL-+_y,B!S-g֔)iWSqu/ZQLx,@vT+O!SlNqk..$\ok/@ !B&p̚0>76mU!B niмũL.%2r!B!g,wcB!VƮ8܄ !B!G),,B!B!Bjݛ!B!B!DB!B!B@`B!B!BB!B!B4$XB!B!$*B!B! $ V!B!B!h I !B!B!DEMvؑ԰[˖-ٴi#F`˖- 4T~:ڶm @FF> 7[o{F=[NNNXtڕW_}ܹ7*1."fܸqO@ײ곿6Mj>k#GʭZcwAjj*@4ON^HOOk׮<8ogϞ8Y 55-5kV0ީS?) ^{M6IEEE3fLcfbuUSm9Oı9ACM2͛t#B!'ǣio#X?S㏴iӆ{GC6m>KYje>ŋ3nܸ]v30m4ԫL~cat'r9clB>}+'EK'>f4Yt)^7L4 ,Kp?ٳ>}:۷o7O>W^9fV:Z ˃֯_O^Ws '[h9s [mg}K}_'~-B!: $''˓O>q˗ӿ7noT7 ̘1;Ү]_]z~z]`[w|gek֬jҷoP[9.] /Hff&nK.s6g'551cpieoΘ1cxׯ~!=z ++ &pa>̴il9s޽;L2٨>޿?EEEL:dӹ{֭a}sNFԩSiѢguK.edggsa;`zW!##Çc~S[E>VW\͵3LϞ=\~z:uD||<+̞=C!CxYjU#V'se޽V\ɔ)SXzu~z\IUUk|믿zݻwӭ[7nᆦ"hŊ̘1>uօ '`0ظqcG\ve̟??xѢE\r%jxEk!CXf 85l޼gl@N IDAT]"ټy3;vu@{{?̝w믿ή]hѢ_j[ndΜ9l߾CGi5[lIVXb. UU׿EFFF{=\CZZwy'cժU{B_yY` 4_~orss]h?7DXBcJxַub[`_|qUڵ+:t{ވ#XM-h׮]b .R:vȺuq! hb=>,X~oz;w6iU{\mhǴjO,x)pnq p9Kbb"k֬!---ƍy駙7ok׮e…1~8B!Bq"? /d׮]5kMj-1ch۶mGպŋ>|8#F >>|M6Q\\C3c[n@뮣wdddp}5hƎ˚5kCu>쳈s7DkСCYf i& ֭[֭[iٲ% Zn͈#+:t(Oйsg/^%\ AHHH`ڴi|W\駟2aN?tRRRxgիWc0L,]~/si1vXˈ۷hт/L~;v,ٴoߞ͛S^^s٬^4M#111ܺ."}uHF͒%Kzŋ袋i֬Y̱4vܺ뮻}jld˖-/3|p̙dbذa/u͚5d2G)))l6 cnǡC^rrr!>>oo×_~ɍ7G}Zߊ`GzK,_$l65B!bSW6Hv;vV"%%͛,xb̙{o|͛7>OXreYgŬYԩCEUU΃>H߾}93HHHXEۏc=>;}q5P\\رcy衇4ΦT}PWXV]hѢmסc-B!'Jh?Յ ZjJ#XhݺuT.r6o͛ٴi| m۶j`FFFW~QK-Zرc#Fk{\\=z}[k6zz MBIzzz:8ω֎4<~`ٍ?w]lf̘1ylܸ&9q9sm6VX%Kk"nWWŒ K,X]uXYc2|.\6=Aغuk˪[{aYVJJJ¶),,ltd͛B/֍7_g׮]|M>=Dߏc=>ݻdzvZV\ɏ?oݠx>Q]cZS'ASG Kюum!B!8Q'M4rss#NeYI`5j . Xӹ;*++p<cƌ6m"??'x"j=1\tElذsz r]m:t(f͢o߾²eˎI"%ѣG3|֮]Kyy9=#F̈֎1c0gn݊`ڴia' #FvZf̘c޼y|+..]vKII ofN'fxwzax<1bjx9vF3zh .\Ș1ceeeqsW|ro^pd^|oѴhт,,X-  ?&Džhq [)**l6z0^_=T>1#]t.۷o^z).c`]#B!Ksi&fϞMYY< tڵֲ4ڪU+ynZjҥKy7U%\Bvnfԩ?޽{3bĈZe$%%qya4ٳgmj!CNk0p@rrrHJJjPLO?u]GejG>}{ҥ tM@833ytRCݙ>}:Z7]2n8ϐ!C?~|&MDYY:ubL8+WUV1]cIJERc6mjms]KZZ]vnG/G/[oK.L2/;#s=GNNǏK.{~L4)Fr2[]LS6|p~?l:BE;z|kZtڕ={Ҿ}{&Oܠxb'{\}cZSA}sm1zh ȑ#Sz c-B!' >O>3s̈?]E),,}JqJعs''OB?Lqqqо{1,Yr#B!Bn|_~%oViSAAA,Bˑ#G)**0sF-B!aHMMIYXVCm*M61a뮦N>>T'\,v,Dcu <.ig}6󟛴!B!oq3e!B!B!h .\!B!B!HB!B!B@`B!B!BB!B!B4$XB!B!$*B!B! $ V!B!B!h I !B!B!DIU!B!B!HB!B!B@`B!B!BB!B!B4$Xg`Otff m1z ?ݔf 5xかnzj!u|B!BqHaՆX| j15>0߃hٔQQ:`9SrFx~LFҲ \n~рVz5|>^i<?Ib9JgSOZ5,b=l$hD._S k<|w,׏ϣV<:}?~w2qX"/uFtgO.k>tx[Yiݺy}iO{vflS%77e˖om6, SNnf5y}a<Ť`4PAQRQ[n?v]ԩE,foNF[Zٻ6-Rjo :gڟ9k@cOc_}?_P!Pa/a!BGkc ɚyb }Qq~tԜ 8QQvaM^M?=׃ocQ͍b~[ 8J$%x>-̖ͻC]l=:{8ľ8k))5ݷ$[o$qmذiӦyf\.xXt)W]u-Ȯ8 Qb[ ,*) s,y&acٲe?>lG}Ĉ#x[c sW?ˁm͸0coken-uFW532? cKchkH*LF4賚S8,Bq2` ՐFvj+{J)t[i*$+}/of=_Λb+&>S}qH >ɨRRZ/P':m~F)]J\RG# rn 6ƞXYqIY 4N]|ߙ4n} /¬Y ꪋ.0ʕwΝI'lRR155:A`_@EXqZf}8 ƿC^eۏYubSRpcuG,&1Gƌ!m1> , R* La!BqTԳd)ZuvҊ#XwC;pHN-+ZQ谒:fTiQ;,)cVYv~C<I 2<[o ^-4~^@8RiEG y<>FP/Ҿ}KƎ3֭|߱Xl̝4E^rM?>«>Xz ~?$vB|v۵ÒA\j*>LΝ$CHҶ- 0y2'ca6W&X@\6mGe׳^Ǐ$Wv_׫NjuY4>PZZM[jMJJ 6V3k;y} (]sFzbj4>sC\\x2W4rrrHHHhT=ި6Jß0u3>;ÿg\X,'$$$ `O̕ΠUFn_iOif,F#?+blDDKer5̌DQ`x;X˞W>@zF |}.2p Mk"Iɔ80YiTc*(txIM>9~ƌ!sPs 8;׃J)'јINB!W_cakkսZҡ]#%h6p$Mt ~p-IM.LdD8n[W}VY$%&t|{Ɯ~ kF+Md{E<٧꫍NF[V懍?c2qNM *>/}Lv4 64MQR^1ԥ*?ر0KK't󖔠ym6;{5OHO'!=wgu6l렪(nwd]p&j $X}CuՉiY~ݺwla@44MGtt]Ymc'o#>FRR6p8t;G)c`DkVv3O^^!o'/RFK޼hҥKy70LGGq%8_i~Ճg3|ʃ-ގskU` dî|6-@8> Aj6b2۱c鋘~ۅQj8KըբBX:rujf̘a8ӏY<'NZul`OHNbK .>f-X":^5y`OrkE'HV1chy۟It%/_Wb*cb"m534w}3*L!BUGbl8:u<Ěs Vlz.i<|yv.S~cX}Sp%2%+c~ۏ%4(Ns}Lƥ!v9n l8l[6Bӌ}rp!Φa\VVA-i:TJVVb;)={?%L?{ ۍ9.6#[/'>Lł1;=h{晴ߟ9dM0dM(֗zt}hٚm?n#=GCFU7Ӯ=tɄjfha28xH\53 m;e۶}`%r=.//7xC| \u]GQN'#G_~'f: ;{Sy0ͦ͘{3fSF a|ZXj|W?~7,".?I֪ϙ &nRSfQb0`TUNnLnzj!aW0P-ҥΑ+V8a 1zsbNc4ظ[3HHJjd%!5#$XFZl iks86f mF`ogh8*$UNkǬ?6}~=]Y3>B!ukbn`'p?tQ+6=/;_R"ux}}ck#F;>_>_"Vk)Ng<ޙg7kTkzx}J u=h,ԔopLJsV@;fWج$$alb:0WcG]#X(+-ƵW]_7sUsO>^u!O<*$f,Ξs߾eNTq(y)+s_#}crrJ*ܞ˫ K+փ]̱:O5kE%\:OR;I. = PZnfw|8+\JViNy݁h.WӍ`4NիbРL&+^;]\jBJJ _~gР{]1Wރ1 @|td?3~MkN-y#Fٻ(ߝ@h!޻ R;ذ`b룠(bA `APEAD -eS6[fwf?6 )>ޟ59gf {ΩL dmwO|KPgz#:"D+~lu]&!nHZH9DW1x=9h IeϬ}5f oHО3b0"11$5NI^A=e/fo.axҪjos(.>Xa榳U>eI!) ;TeO2\KuR8v>HF.R;mwJs~}"]d8v^BA;pbqbyndKyO&?xv{Y~s5X7 ob |:f?[ʬ+8ϧ1` {_/Q)u1p9WddWߞ>]ѹmS>pDG؉4eT6n/3u|]tNcZ2VfH ѣ1]p, EjEcJ7[By JZ!@<2w0[ 4ofNlF#[K}pf"?cQ-N#v"#DTłbnbXX,E^35nP͇~ /@ [ E!**{ʧz&xt}dz>V~ϰ߳Jn7BޅÆXpDZQ 7' 7 D,Dڈ珝7?x|,@s=|ҥKIHH(t WY~˶zdžx>آEGbq8c C_G O#y/N{Ht:$:&'٤rfCGsiָ8Rv֞=%uzvn~$F0; nr/x&>I?#U>:|律xPNn:[/FB!T)\  )Uىq >lu-7܈QD\2m }6O*XibAg6 .wgFKmJNLJ߯,K_E 5@.%@qit>LCfRrŒ╺`ОjTmV->~}>Z 7W,sN߳Ubcm<3f<ϳd|tm0  Ll۶?躎IQP ] [rL ٌyZ8l4k#Ghp%߆V 6{r0xv; !X}t&O?+\4lT_a=i5jv6~4akQLV -qqt>%UCG<5!1NAPIWUhqeMdM*6ٌb7D={UN/DGG3}tn&nF,YB>}p:ܹUUILLN:}g+qUU `F1XoW+=GU bG36PT i/ܰV34=G2r9%K 7.DLɡϨC&&|Sara,v&=52|XS18>>fea ?BږpٸW>[5N]9zZ GDcl6>,5RTv^ UFFlĎ\Z6R3|4ő4OU:f m?ox3x%(6@ƑDJ &ʾU>}q >}xhl0?]Ŗ׼gw*#TB!5KLr?ɔZBK-'"s~h~q7j:QS("\XdBb~J<6dBC]m/r?GxSOnwuSʯN쬜"Z^Pğ',`WX3u#9~0TVpdHF;9Խ]\o?_d e+B!*eAz8>8QUdr~9[p|f*|ФSa::^oR.?UeUD;ܷ-xY8~!*!rT0uiPS?Nj'==`@k8*u@]Rq8,}*~5<^;x<_+ YU,\=y}ߟ7?mz^ՒPa6cV ( t䪰8tNQj u_cK_Izz6u07JTkNUZ/5xk np-=9eb.t0<Z 6&x=lX.-$lM˖- ;ҦM;v,GUK}v|X+m5ddP:&͞Y|Fε[vIKKb ~hw-6ZNPO$ɋuagb"X̡сq >H{cJ}Ll}B_fN`ܸ}"W^ Ӈ)O@?S b֯[G#wbGP+ȨPjp`qڞ:yjUZ_>v^:ס5?\E{ v?`&ʡ16mH`I惯4GhTO )8j6loM0 RU?o3xGmG_wq3V<7|sυdm}[s~N?ѩB!J*5|Éw|B+Eqթ?Q+VS+W0/NgkT6¾IʎsrN:x'wu1K'o]b;ǹh2, {>Vu`!?Oni叉 ^?^J ,!`-WqjZ+XPŬ=|ę`2ܠGJ#'2O%7KnNjc0Ulf@/7>d>gO`̘y뭇 f-`w Wgx!CneѢj]c}1٦ ի1Xgd 䭷l @yWQ<\-~:1;EUCs /F0L`^zI0 gh&`=$Wj cDJ`Iq:+twQQ"5W'6&M7z4]SiѢ8n?_;v,aÆԫWM6 /l2L&S΋R5 ~4EBprp#mM,GX9/3+jٌ3F݊Wӱ)BA=/B1K*22BaB[Jj gH~cؼ¸qފ2e s:tUNYB>lE]#Ƕ\:DDa[>@~Z*?j~:סpj"EDBS$dA\9۷o-G%^Cg/<vgQhYaCU燥OYi/8ߟpx).<Wr`׽gB!DMwʀ5jq$'ETa#ji2o#xL.v/& Wz$_^87# %I\L_\|{E ]: h7ϦP.W5=Lξn3+f-4 sH6@0T<02 82k(xٓƱc9AAԃ@-0Ђ xPU@WQN_AJ@ HNՔ.gka ôi2sbFTdX(z Entmj6lBLF4<\w,yU+X ]GQy!W/ҶlݎNK ՏvÔyb=\pj4´sF4U`UּkHl1;'OWh~P,lCQNbfS-YꧏߛŀsҦC; 4\iL&~eNԫWkubZO^pL& 6,z=GY䱆aЪU+NgI 3-:kX&Wm6[KXsHMja(zPȞ $6Q^=6lHڵq8a9"V{.=/b䐎8lVV͂͢qBNH(9,kqѡWO?DpjOOYZJs)O5?3gN26 7bĈ"Y}iAܾt:5OCg7r&W+ =G4NpMVf&h^wAj.!drhxJ {ڈŤl|0s7"|a"vDzyk/01&%l^#E<~FD3f+Y};B!I+XOh*6Ivv^؊ c|bDTcd&@侇j<8M TmRmv۝ZM&'}>ѝ\c<.d<ݰiZ) =LZ-KAB j&ATU@,f` 00 Wqm >JPUQH ŝ7[Ka_{{0X P5g6+6v Cia,X6]8f=_0<@~ 6ƝwN`qEB;'0}c z W1X͊{BB.ŋi_?qO@fEQuX.ݎ IDޘ~eKTՃiGzBG̘Nx&Z>1u[Bܕ 2o݅9:ïAl]WV(QH ã(ҧգG{ڶmƜ9 e{`&@lqYyz}INqY󥤤0qDrrr'1Lԭ[7lmʊ?yΫ&$i9?v3Y.mx"Nj/~q4hЀ pKң[SLPm4`䐎Eٰ[D-X-fb"KǿO?_8ۯp 8SprpQCA5$Nlr>2MVz_ ۗ:דSYHnn S"z b*U&g6͝oF6FT490UpV.z12Y/:xEGl$ܘIƇ$ppBƻqG*{IpB!I*eAzauD WK []cXrϜ}˽xZzhY "g m|(_wb tӃNFwr8;7;gE$.!cucÖmظ--+>.^>A q}dfz TC򗡊`*β\q{nYY T <&vՇ C%԰ZP `5,DpPTcRWCtT5c֬y{7o5_ܓ\+?Sb1!kλ%K/u{aYQ3Gz\@gϳ~=KM7=?\}hq#h ]KZ8PN`by E֜' OJ!?h5s5#jAz-Y&1DHtg}=x/U>O96T:۪-S8y-'^¨Qgc?QpDE%}ꏠ Y~?fb˖- u$*!Sa` kЊ'ń_3a” O9!\b _#qפE\7#+no)Ռn)7ss$ӃoSo򝷊r1^S5[S'>,c.]5ߜ9s8p` ѵU(<5t04Ao@[#zCӹ4'?1?\uDF`-ZjЂ ִZLG?&trqm@622 g;#>3#] ߞ=P̰:އBg񔋮82N2uI*BJdB֘ϜL\֯cY{t{}èk>,U[_++-l~G-N:bȆ.~5׹I&zOH|.~_ԔɆ:WhOb:@]Ui jycXgY*X^?\/B ,-n_Ay=;F&diAt-Iq Gkj( f_1w S>ų~ȓO7%g?d1EO>ycW^KONN.11 fr_W̒ IDATΝ_'k`ٳFU+L{9`Ç?e 1Lg|bHschIUUf=0j[djߝERl-r'_Y>۟vx ͐/itlΚ5߈Oc[2Zq&(ʯq1OX+7t-'}|KWv=OY6Zvl2 (61SORRRک 2>(fcRcyżb+;\Ck"tLƫ ꘄحfbVvfKJ&ܸ2Xf'S)_hN he&5S~(Zx>^Y KA|)H56FP+bf:\(>E֠Gs1meǩL^z_&'~_k}Ox>2۷E3Jݖ!f̊)77ߌI J}|6K2JF3P}°U bnibd b'K,Bd|Zy|llRWt_A  f9?XQx5jׂx p1 OM OƆ W0/\s5[u@g01Xfsh_PեL>ڵk"\Co14YnV9P TajyH+~ڌ=B&Y)dle롟yp o.ɉXnJ-|WUY+Ẍ́*Xʩ`;v&/hoHw9]aBQ|A N/NaGux>OWzI aJ O#cjm6 0kl|/BOP)\ ~U^Rֿ^vwMo7, T58f`߾ZEqc=z$jU:oƂ X- z|f&pg?z|,ҢZc8BlTBnno65BQhԼ">J8*u##|en,Mn)}Ə_p}W[z N+s E`-z1OĮ+P$U+b>p-[HYWddA_E>5/?>)00t6YEE%<O݉ЂZ@CZ/i1?َ]mjbUlD*,&+á1y$z?V|l"5=l^/s_q'mϹ@>zn27< Y;O* l!i̛7~oG}I&aq݌5kR VK9xйklO(Dn0#))U{瑋/}H+#UH=J0qф'?qn }ЪU nyxҶӨvKHDCiج1XuF7-`. =5j/{}aWk~/.3>Z} o\!B`2Uy*X /R0l Zt{&%MDB]4kŚGѭ?.ǹs5{kO!]ye~>Fq. /"U_WۑO>YJ `ֽ UJOhh2+u+wa̯y; B¤Ip={BV99eW χ3**U*&aO|1``DdSpU[ffbaRE-<~;/ok'/U~{jE6(*(W튭 d=^>srWpwРAz]j5Srx8N7nLZJ\_jJԗFfѲUp?:СC/%32pU$SթIv{hЉzg`GDPjD=h )ڭ>=YGWCąUw,\HƱ=_~/F\R>,BP)\в, ZC* } _pL;wjjSݴ4#-.YoQXݫ{*CteȐ\vi.$+QUWVԨQji|Lt?ٳ'n,\@\=Q /Ȳe@LDDAPZ84_FL-M&i=v^X.)PEmw˸La Wr=~\|>hY`- r0׸y;T/Nrrr̤I&l6+nFf̘AZ۫ s*0 (߿Obb"nW(3zP;0 N22\*jI+X R0pS@d3g UplD]gn3\+Xcb*XFEǒ.RJJva%kSi<0ٗCa8 l-ǿkԈ/Fۑ#OB!JjЀ^!iy`Phz0!e.^5)k?h M7X9IUWM7>|s2.]TxƏg%j<+1_L+ܯ|RmmW֯__LJ-\ط׏;;ക'12vnX?Hj}Dvʚ5k4]ҦM4ޠէWUUjwvg6DGG0 bbbBQׄO]vG kZ MEy4a!jƍU)SJگtiy&8pI'*} B.ТwHlĞqD6j=1 ^h8]Yj>,B!2eddK|_%'x)-['`ЃDEԻp-[]:Ӣy3Z4oF͹ڟj{n TmnՒ`0 !B!B!4ڶ- 3Ϊl *&݃$;{?={6*O?-Z*|3ѣg %&&GB!B!B*V ֈ;-Z81M 0+PU &(Lf33[wFdɪbۋ"66ڵk3|n6fLQp?̐h׶ 7ÇJ+Cv\x0/]۶<ۘ7ݏvm0z-7|͸om\|Elݺ۷sݵ2ᥗnyoݺ ^ieկ;v>l6ǥDDaB!B!BSjd#\ A-o f;Al$DCvLSnOVVhb\Ygo~{Сۺs!jת=6=OS?ѣG ߛٺe+^B!B!B,lV|D_(G! lvؿW)KXL 99rss&--s0}4F:h"~} gڴi<ԓj ߹Ǻ?ĉQ7n˹s7 ::-Z{!C/ٺu L0ԴCRB!B!5_ɬ^Uriݵ-Rq)fN;Z]u@t5nڴ)_~=zs?#CtԉIVj֬O<cKFF=zd„%>o߾_0f͚37J֠?Uߍ0 #7jڋ)Ԥtp|j߇B!tٹgMKMOMljjJQ[M;_5?^>X5pV44WzBKWQ}.)eou+WETe/L0tt5ؑ= :?kYSϿ]My!BQe-8gl7{bALL4w3.wkg9)+'SSSMG=`)5夕x4\x~ucp˥]֯A> r>j95KMc_=Z4oVz|32?(v:_bÆ]f/mw/[VMvJ97RS!5]a*%, sa_ݭ#Wjح\1 I<9JS ~UůUՏn 6/p89i +W"#C1/gWMjW̟?iӧWU^j5tVZV>ی{1TU宻7ެ>ܝr%z~6Qtͨm+498b5lŸRΞJGaYY9rGؾcgaݻ'۷&++]u8(*zlVhӦ9]4w[9;c!ϱ |$m53aS*!.<@¤IU֏-ʆXn-&@1A3`>L+fF6-*{ e#naɚtLЕMEq(S?_͝W> 1mZi픊ĜsΟkƗ hyWs[6RV47 9NOٽ{;XiݶR&LDZ+ UTϞW_}MhO@ W<<ӕ~EUK:k'yQ<7 IDATcU~U-!ܞE1n&MUݬV)t?uS!x}%WVlLIE@醎in>`f9cݟWiY{Cq΀L2*0vX=,_&YL2Yd3gw"˗EZagã?>tjH vѵa]{[ݵ*]VXf{ O&df2}CD`=gfΝ{=ަwXZ98__RZcp%6.Me5y.I0wIGi?D߷#PZZᣩcĈ:PUec7lR\l( $K(JХpo;w#ˡ8 | /Q4 &3 p/Q[&PcW: ]ݣe:ueJvd,ehn{ k(6PpkJ$Wsۋ,Ÿ(hƊ*!_ƭ)fDEžĄ!I2f(=LEkRa1sttU鑼}D:S=Ƭ+C" =x-}rn>i&tf<^"Jx EVIq&>  )JKQM:lDbG#cPra#GQgRYY,Bts\:Y!6aW>yYC˩۾Kck:<:F(TPOtr}ēO0r(~G6Ƅ ߴCG[EB||^'NEXQ03tk Yl5nYYfY aK10mF灰  N}?pTQtMTI;`iH>"xuuPs18 7` zᨭ[SץK&PCUYB JqX[Q$sUHRx>*k(T5>.B|srsK/;xNV?8$vh+VPvNqU8tąƣѨP*Hbqj%{IIt:'nW"> ÆWneJ3D%;/vb܀G/RIfDO>{v ڐA+t+^t$D% K7C24 GҢN;Jt&~)4oc82c0RQad"*J #(>غ9 :Xj=/n.: JDL&"Çyg8x`7o.C n~b[nBf:?q嗱z*.4\y@_~/E^nf̸ a $uJ+$..{~wKY5>Æ!'7S\Çpz=;$v5`QB%F\z۩פQ9T\, jF#PĀ'BvgwO&:%5CS˶嚋EiJ9ޫdO~L,f+FJ%*JKRY kgׇ>E *Õ$ $hӟqDBR„bk/wƍaӦMzdڵkyw<Fzp6:/9s^硇䣏Ovwgcǟt:l{}X,{Y~奿|y"zhg^vj%%oܹ3̟KXjlLrSLm}IIIA;v+*t |A3o\>:?~q ~ N/ ަ>dܬ kgf`0`Q$$$'#Is ]8G}`"_bߟ ש"Y ۝Vp\wRQQ$P( I2kDP(Tuiwn[UVV*%Y)1Nؼ{z*46mA Ǽ}n1>"2RĮ]%$&F -㑭*HNhW‘d22#2S@騡:_'0݂A)J(BhdF]x<@$9;sݸ<}]'xK}`4n4)Rd\VFTg(c`ffۓ ׾kp8٨1cر06toLe|!(ՂV:퉗F##Fd%A0aM&fkBmmmV,_oo~>Xw2bHFExx8<wlGR2q$Z-|dҥ )v[&]z) &""G~{֬Yp膸fkbcrr [,$I"22Xp80VU7|KFFF;tb[pOD7GG͛gQt:n**ʩ>F?Gy9ddfP@TT-,'pү32H !!Y;?9pN'BuN{ŋ5ry}xq"p9ݺϖ3McZSKmނc%cٹs'7p/Ə7.]x1_dY1媫Nڏ9۶-wʽOK~]f'+kߡfkTZ:5Tf*#̞}=z#`:s0jPn7* ATTD%|w ,{_UNl{ WAb,W:'Kj!)VC|Z$(ܑTDtN'oXjS Vesh 1XpQ7߲{aSWv;fPl`Rx4푨o/'IJaI,=t[¼k`Sn޽S9d))D!22y=t[OQQQNe\4j${'QQVVB ;;.]EZZJ?qe3%/;svz ?l945_ChZ;T*{سg7N{iS#K>#223;&td<تƌիV~7L4 /dzqf^2IZS%ZsYm%uĈ qx^bb$'3>=92`@_<.ѣ4;|"_uUCW boZ@VHއg . F#F Fv8t;?>=\sjg1Jayw,)X,eOA+b=z%Ѩ)U*$jPG(VZAJY!3I?ϓf?0w̘1o7L6/ &0f̘ ulxffIT*zLe,:wN ,LZ)j> J:j=a[ɞp#UMd2}^6mNώR:_= AQbjCU͗_~2[΄s&Κ5D㢪'E>z0b`-iSe g5?:)Z[OݸXT$ɘc0z*9F4:(F5׃,SjSOł$Ix<mƢExgXh۷oi9;!!ҲtYى8*~XV_^@ff6l6t:[nx"WXXHjjjad_ϸN\q,_/GپP#JG( !!You<3hM~ɓٽg7|3dUOQ[[K.]뮻xDFEq=;I`p8DDDVx>cٲe\uUKLL O?,}kL[GIgÙ15Btc1Jǟx=W( {y׿H}o6[t~?_[tʵt.k-&{LzD|t:8,˼\;p),,={fյMmN&Lferls S MOsD_éY9dq{`sJu}!"5tUY:^bá1-9TQ C‘cT j ZHHTĄk נi 0{li!8!5~NhTnw#"j)BbJ ^?Z$*JJhz>d- 9 @rhHRl[8 7p耒-;$>/g[m= ha`Dd\7j@+ =U89X#<Ӂ. s͵ל=~pZrDKPa?8Zb'en5Á2VAFY` N>ɇYjrȾť9vUHMb TVˮg̐x3Zmbm?,&rQ{\7ޔXeFa6)..g(rݞܳ}ra\wFEL`00LqAӹ馛}6l@~eئ`&NpcIOOcΜѝcǎ_q9g|mKqݵ0m4srxW9rzC`0Tz* μys<@˗3 ?Ixx:>˗nOheL{3xQg粎׋$IgHZhZ/|UUUd>1AVVYYO.gRpiLkh͇c$&&W^tڕظ8ONM֑~Mv|<#$''ΝpnZ˙8qQ[i'~*tkjֽ[~*D[˵v.klok5223G_#11/\ŦM9|(:%P(ؿujj*xG =^F}PϺW|qcPT( 8`0ՙQL`R2;Zʭ\s vDāpd ELj t{.ލE۶Q GVWP+DX 5*./Nn^t{xz뭐&J+Cxd25eڑάhj**طիggRB!sYj])&M: \ رDq%-EG= <^ [Ra1[ {Op>xN2WV]"\NCCQև90+4O* )Q)f_x,a zI8 IDATN "Vqsf)^dB`ȸwr=(-ۃ $$;8=q8=l޼l~$%%tSBQow~vщĠP(ذa\tW^^˗/ov$Ù1s&w~͡ /4xg=jkk8.?P=sx)Sw2t`233ϱd~߲uFFaҥ2}5&b!xڵaaa;D?V{ٙ6ROIqI{8XӱlRV\(ٳhS:?n77|_v9wΚbdPcxx94S~B;& Ep0LDGGc6)(( 33fGx C}{9Ӯ2ݺu=0.gRpiLkh͇mc`ӦԚL>rr4Yߑ~ȑ-њax"*</ Zj)..#wM9MN'5&zjL&|>6RIu?룶ZE[\QF礽XGbǏC V'eR2t9/oJ[?zpړyߔi dž'<ڝdGcPi\6lw<ԩSzr,_\nWVn7n/8?Uh_gƌ_׉H˗3bbEEKj'=1@hPa粓qeRVOxgTxeϽ|,'Oez!?T9!La\<6y2zEjӎ @]*1:䳰' {ūkQ]#YEN[n'333$3".^zm]p *222oGPxfeeѽ{w:̙W\Ѥ3d;o7{XMχ-}݉L”)SȐ!|'ܵ;6Yא `޻}#GQܑd+ R?α?Fg)1z@sjs|RSS;rHL_[utt:9r:Edd$8NdY>Z|0q"+t^ye o}c[GIg15֎ZK٧z^|R}Y>cJecbtͧM\|żj k,s&N{Kdd$={b-Z;5{njͶq 23SyOزeI$&&!I2UTUHIf3jTUwj 22JJ:e`ԭ¥I 6>%*K#88zNzRSN#K( ⶆ1"chHl0'Xݬ\CEʀykeY>BR9sCf:rDc-\|&e6nD\|9ǐ!C;曱9@YsK.#G Z 67x3PCЫW/, . VNcŊ#߿?~nĉZ-._<>7ivO2/`!,-1op!K,aڴic ?̤SNl?rH<deͿRy~?xh\lҀ #60bąۛ֬لfG%u7ѽ{gbbҕUTpn#UU|NX>t :orD6Gɾ=?WVvr̛$uu]$oyc5DJ\]gw9Lܙ.fԴLTH* Jx. ̾4i2qU܉Jb2&N̦Sseӵk$:%sq/*Bed2U%qqqm`r-Mub?ᅭÚ=Nفlc99=8u᧧G@svīKJYADG${\N'[ϣ׉/;i|0ik? ,`٧Ke-ZDEE7xc ihGCp0ptғ"N8888i?׾k9r$_|~9s8mӟ'5q\ͧJ~bD6w^K.pω=бZv: 6REv(zvG8(i#i`س``m/ /|P??UW'\.7^N-)yfjbj zFLM3Z3gNCD____tD:t:^ /2MG/sNr1 rVuF{$rU:fϠSo2Z͙KnN9ƏJ"{9CNP 8_EK~i{Nn_ @ Ζٳg\Ņ /Ygi@9sog'uďKB@ 4.$@L0%E8!vl-¡: Z➻z@ @ h_|s綷@ _]vmo)J`4^Xذ$ŋ%\XVQQό3j{$55{c2xwINNzh4v;@ qk׮=z]m@ADVa+v^=?Wf꠶nolݺuv(qK.!*V@ AyY_ 'vKa!`ղ ;LBR2k׮vm(mEu h4RXX̙3ˎ9š5k%66'6ݷoׯo߾ݻFvv6ƍ㣏>";; , ++#F~z, &LXgQ]]l; 111nSYYIvv6555Fө>_~F>|x{/6kߩTX,VZEQQ$̔)S[:?~| ݝ;wn:N'~>@ U @ =/UT8Z,STTB8-q 22Iu#66\lSN%##;vd BXXvfd C}a}AQQ9h@]$?Q__O~4it:\t֯__ͽ CXz5]wIII6z @ ~U U tW8رn3?22zjkk9|p zb .233߿?+Wj \7&& [l ԷfƌFi} Fet:'mg0ԩSh4N.] ++0\.W>@NNN 3)) χn,c0=ikג̨Qzj*.>geef\.:Ç=zP\\LxxxP@ ~7yg0LmJk ֬pјq'6?" VӥKNHʂ>S8N$IbDz2v;k׮eݺu2aaaKt ш$Il۶f#A["33#FwaZeر'E VVVXߐ`0|XV eHDRRR?q!Ə캺:jjjիW`YjX,TWW7dv{a@ @ X[Lհ俋26@A- ()rޖUӉf#..RsAf̘XW__O\\\|?J ( JKKY~=ӧO?- !Caуnݺ5`00p5 ::dY&66Y1>|&$&&Rߖ9v=k4D7СCtBb"yEEE}}@ @K%.1Mclo)- !Ai cN(dHtmt:4 =yyyM'%%QWWGaa!@~U-W*$%%l2u(m nzy]Y$ lkrrr@NJJ2 @x(((@eJKKٶm#GlR89޽׋磠 !66BAAAk޽|Րȑ#! @ ~}+>Mse *+M:TJqwl8UoS۸5m@CD 0J?hr;;v>}VO>***NdyRRƍcŊv4 iii\vemsDѣG]RIbb"ӧO6mb֭Ȳ?/'==jRRR )) RD`5 rx׉bɁ| dgg~̙Rd֬YDDDN_Ί+x7PdddУG]<~xVXW_}ENkstt4]t}111ֳO @c֍mITJcp8 R)_=lC*v7ϋlQ_onwp8]8.Lu6; 1cv[Y8۰?8}c^[cXӅ訶ͽq69`$'ܹ=@))Ϸi#Gz7n|[\v3hРӞT)&&[of-G֭[ 1c뫪ԩ&LhՎhnfםNEbb"7pCOUa6lXl@ ͳNkN,OBRT*#~NΣ{ UУ Z؉KV>]hsFn$Cioe˶lv W]M^-G@ٱgާ̠ɸPY%Yaex7-ms٣{?9h= ۩eƍM7lU &4dbDFF2u)``m@ @ hǶmHNN`ƽљ\..NjNwn9vV0̥csѰ\r{6?ׄX mv8y 2pulՎ:zpˮ6/XTk'>` =3jOqc1:SA'}se#!IF83Q[pniMΝ˝wI\\C a…p őܹsE@ ٳیV@ @ zQYd5:22Rի+f ZMmmvWlv'vra4(7'|2IjcX,3N!ZpC϶$vQL\ X%vio)3sRr J%x>DEGjcR@񱧗U&ldV6-vIgO+raΙG BOO/d"... 6|;E@ @ RYYeĈdeeb2 Bhցx&͉XY6ӅtcSk4Q[Sr#I3k1IuXd9׮Ox#dI-Iga;W> BCX:m4/^xo,6~6m`@ @ 8]tĊdbP*HDyyN]bⲯ'z!fw`w #CQRv(\.tJpn,3`mṊwH`/A45bmuzS-Y*@.E[fqy|Z}Nv'N@f߲oמ`=Y̕d@rz$H&kMQ[$/K=$=,Vvd I*u UT/9v!QwD{=K_`];&#:5r+)2E^bxH\/*.'{s_e_|A~|];aÆ1`6בs=rxB֦@ @ q啣ٲec2Y,eyȨz41嫧(Ԥ ]$pr2q8<8NvͅZVin1]o2k܌w|Ϸnb; q>z0ݰ\( IDATh5)QP{H SR)cpb*|Xn'SlSAMf!&-E%n9r OA nI&I'%&/mWo(ۥDFFC||SKJJ ^{-?t`03\RSS5kiӦ8p vE;_fn7?t҅^x!Po?8>nf[;<*{Z&3i )$@BH1 MlH]\+~-ۢ.EeW MDޥ@d2lFbLBB(S={6˗/>#22'Nԙ"ƍ={ӧOIOOg̙t҅'xZ}Mu |V(]Hm   W[ .8."p?F(t6c0MUVb41LLfF'!j2J#4o%s XP=s We%Ռ@.VZN}W~AdT&?rrmXlv'f ] SE^ϠJ:7=(=C)fP=3KS蔡{v_7_hyMk[hĉ8N s!-- R)* w} 2W^ydfsmݺ#F0rH^~e:vVeÆ ̘1s믿K5򗿐Xh4RTTDjj*ǎ#(=m-H 6F};̻JAAA|6y #M:0v=( H.z~`5jBYLL&h4& vd͛ dnu]Rg]u@d=&Պ\"!,LJ-~1(Bn'FNH{ ;v%!7&kEF&w/)&,?ƥ"c5Ova0Yy`46`b֛ASݻw ((POYTT R:t)h4T:YbZOee%EEE]6)Fp233]'OL~~>sA2yd~y_3p@w  3K%m   !$uc|̰$K҆b:#ݪ*uh(Vʰ$jaX,V3V\8M:l%;OZ)+P \٠Gvd Όz fL?0GF 9Fj !՟7VYG>qGRp8mfžl'ģ63$Pr&yEbMfVom\6No3%O]$rss=kZL& 0O_WN'};v$<<o>}4gΜlv?XL6_1|mAOqĨIL "/@fAAAa0'.;,bFVOWe+p:8Nrr0th›UWdEeG{2&;&c5.%H$vt8MUN^metwr@Rd29. Ձnj5a1mTVXWӬw?;.N'Nϭ6;D.: DQ4MK$4CeeOmᆙ1scǎe֬Yуw9ƍ7`ԩ׏~͛770qDf͚С Çj^տqFvͿop\(':tZfYv敛WMn^5 '2xPH   DVn]JDe@7>76Zeu8q8]DcM2媝̕HZ'(y|Z'lv'6ŊbjaX[X,vF"@ݼ|LZO U8 a"c*quG.V B]7Ek׮,YyQVVưax뭷סC.]ʓO>˗;Y|9^`ԩt:&NȢE8p ]v… ;w.&55???>z!z-EUT*vÅD'AAAO{{i0ZLƞ׵>D#r qy&_0S%ܖ,z…RSS9zhe3gdLOO0 &[6g̙Sg͛]ŋ.ӧ;wgϞ7tdIg\V{@OcجZ,N,ɦQ]7{B˨IIV`AAAᶓwo?O|IIOcLB'b4:Z4H?ƍlm />|8w^ZOmdAdeek.ĦM "==Cl6֮]Kzz:qqqmuwa :ujnwŊX,t:?0-M[]_[k[E~:Aw#5J W@eJ#%%V:vtoر*Bw ==D56*%3@@4l^ƢE7Džd~Nv:]]ٳ՘LB~!v~;߳ʕ?LGJ쩠BJJivϬYэo瓞FnuG޾fE I8xPKI bcp"#|Ʈ]p8\s==}e=[1c"%X.Νˁ7o}ӦM#77ZhYKi(ܝg[ VAiB9=\ʺO()m[O`6P(g-zlM6l ##ֲ|If3;w$77@HH$''QPZZJv|^X,˅ 0Lh4}QJu|w>}GyLk_qq1;wnn/۶m#!!Y>>*sRYYߤnזZ}$&&rQ`Ah%6sQ($DFp;y7~|$ |y1s`׮r ̚\.aZیWxqg|Yq:ϝi=ߎ0?Z:pO+xqg,'{.gҾ}QZjE#(RL^#6VIQNUc4:''wD~[ڵ>o29X 11

', e.g. `%s at X+0FFh'" \ "Unknown operator: `%s', should be `%s at
', e.g. `%s at X+0FFh'" ;# <-- NOT TRANSLATED YET ##ID:001812## mcset $l "Segment pointer is too high: %s / %s" \ "Segment pointer is too high: %s / %s" ;# <-- NOT TRANSLATED YET ##ID:001813## mcset $l "Segment pointer cannot be negative: `%s'" \ "Segment pointer cannot be negative: `%s'" ;# <-- NOT TRANSLATED YET ##ID:001814## mcset $l "Missing condition" \ "Missing condition" ;# <-- NOT TRANSLATED YET ##ID:001815## mcset $l "Unexpected `ELSE'" \ "Unexpected `ELSE'" ;# <-- NOT TRANSLATED YET ##ID:001816## mcset $l "Unexpected `ELSEIF'" \ "Unexpected `ELSEIF'" ;# <-- NOT TRANSLATED YET ##ID:001817## mcset $l "Unexpected `ENDIF'" \ "Unexpected `ENDIF'" ;# <-- NOT TRANSLATED YET ##ID:001818## mcset $l "Invalid symbolic name: %s" \ "Invalid symbolic name: %s" ;# <-- NOT TRANSLATED YET ##ID:001819## mcset $l "Invalid expression: `%s'" \ "Invalid expression: `%s'" ;# <-- NOT TRANSLATED YET ##ID:001820## mcset $l "Expected symbol to define, but got label: `%s'" \ "Expected symbol to define, but got label: `%s'" ;# <-- NOT TRANSLATED YET ##ID:001821## mcset $l "Invalid symbol name: `%s'" \ "Invalid symbol name: `%s'" ;# <-- NOT TRANSLATED YET ##ID:001822## mcset $l "Special value (with no numerical representation) assigned to constant: %s <- %s" \ "Special value (with no numerical representation) assigned to constant: %s <- %s" ;# <-- NOT TRANSLATED YET ##ID:001823## mcset $l "Trying to overwrite constant: %s" \ "Trying to overwrite constant: %s" ;# <-- NOT TRANSLATED YET ##ID:001824## mcset $l "Expression out of range" \ "Expression out of range" ;# <-- NOT TRANSLATED YET ##ID:001825## mcset $l "Exceeding code memory capacity: %s <- %s" \ "Exceeding code memory capacity: %s <- %s" ;# <-- NOT TRANSLATED YET ##ID:001826## mcset $l "Exceeding internal data memory capacity: %s <- %s" \ "Exceeding internal data memory capacity: %s <- %s" ;# <-- NOT TRANSLATED YET ##ID:001827## mcset $l "Exceeding external data memory capacity: %s <- %s" \ "Exceeding external data memory capacity: %s <- %s" ;# <-- NOT TRANSLATED YET ##ID:001828## mcset $l "Trying to change variable `%s' with wrong directive (EQU)" \ "Trying to change variable `%s' with wrong directive (EQU)" ;# <-- NOT TRANSLATED YET ##ID:001829## mcset $l "Setting new variable value: %s <- %s" \ "Setting new variable value: %s <- %s" ;# <-- NOT TRANSLATED YET ##ID:001830## mcset $l "Invalid expression - parentheses are not balanced: `%s'" \ "Invalid expression - parentheses are not balanced: `%s'" ;# <-- NOT TRANSLATED YET ##ID:001831## mcset $l "Invalid value: `%s' (should be char)" \ "Invalid value: `%s' (should be char)" ;# <-- NOT TRANSLATED YET ##ID:001832## mcset $l "Invalid numeric value: %s (should be decimal number)" \ "Invalid numeric value: %s (should be decimal number)" ;# <-- NOT TRANSLATED YET ##ID:001833## mcset $l "Invalid numeric value: %s (should be hexadecimal number)" \ "Invalid numeric value: %s (should be hexadecimal number)" ;# <-- NOT TRANSLATED YET ##ID:001834## mcset $l "Invalid numeric value: %s (should be binary number)" \ "Invalid numeric value: %s (should be binary number)" ;# <-- NOT TRANSLATED YET ##ID:001835## mcset $l "Invalid numeric value: %s (should be octal number)" \ "Invalid numeric value: %s (should be octal number)" ;# <-- NOT TRANSLATED YET ##ID:001836## mcset $l "Undefined symbol name: %s" \ "Undefined symbol name: %s" ;# <-- NOT TRANSLATED YET ##ID:001837## mcset $l "Floating point value converted to integer value `%s' -> `%s'" \ "Floating point value converted to integer value `%s' -> `%s'" ;# <-- NOT TRANSLATED YET ##ID:001838## mcset $l "Overflow `%s' -> `%s'" \ "Overflow `%s' -> `%s'" ;# <-- NOT TRANSLATED YET ##ID:001839## mcset $l "Cannot to use string `%s' as a valid value" \ "Cannot to use string `%s' as a valid value" ;# <-- NOT TRANSLATED YET ##ID:001840## mcset $l "Cannot to use string `%s' as value" \ "Cannot to use string `%s' as value" ;# <-- NOT TRANSLATED YET ##ID:001841## mcset $l "Compilation error at %s: %s" \ "Compilation error at %s: %s" ;# <-- NOT TRANSLATED YET ##ID:001842## mcset $l " in %s" \ " in %s" ;# <-- NOT TRANSLATED YET ##ID:001843## mcset $l "\033\[31;1mCompilation error\033\[m at \033\[31;1;4m%s\033\[m%s: %s" \ "\033\[31;1mCompilation error\033\[m at \033\[31;1;4m%s\033\[m%s: %s" ;# <-- NOT TRANSLATED YET ##ID:001844## mcset $l "Notice at %s: %s" \ "Notice at %s: %s" ;# <-- NOT TRANSLATED YET ##ID:001845## mcset $l "\033\[33;1mNotice\033\[m at \033\[33;1;4m%s\033\[m%s: %s" \ "\033\[33;1mNotice\033\[m at \033\[33;1;4m%s\033\[m%s: %s" ;# <-- NOT TRANSLATED YET ##ID:001846## mcset $l "Warning at %s: %s" \ "Warning at %s: %s" ;# <-- NOT TRANSLATED YET ##ID:001847## mcset $l "\033\[33mWarning\033\[m at \033\[33;4m%s\033\[m%s: %s" \ "\033\[33mWarning\033\[m at \033\[33;4m%s\033\[m%s: %s" ;# <-- NOT TRANSLATED YET ##ID:001848## mcset $l "Syntax error at %s: %s" \ "Syntax error at %s: %s" ;# <-- NOT TRANSLATED YET ##ID:001849## mcset $l "\033\[31;1mSyntax error\033\[m at \033\[31;1;4m%s\033\[m%s: %s" \ "\033\[31;1mSyntax error\033\[m at \033\[31;1;4m%s\033\[m%s: %s" ;# <-- NOT TRANSLATED YET } # errorhandler.tcl # ============================================================================== namespace eval ErrorHandler { ##ID:001850## mcset $l "PROGRAM ERROR " \ "PROGRAM ERROR " ;# <-- NOT TRANSLATED YET ##ID:001851## mcset $l "Error log saved in: %s\n" \ "Error log saved in: %s\n" ;# <-- NOT TRANSLATED YET ##ID:001852## mcset $l "Please send this file to %s or report this bug at http://mcu8051ide.sf.net/forum\n\n\n" \ "Please send this file to %s or report this bug at http://mcu8051ide.sf.net/forum\n\n\n" ;# <-- NOT TRANSLATED YET ##ID:001853## mcset $l "ERROR DETAILS:\n--------------\n" \ "ERROR DETAILS:\n--------------\n" ;# <-- NOT TRANSLATED YET ##ID:001854## mcset $l "Skip errors" \ "Skip errors" ;# <-- NOT TRANSLATED YET ##ID:001855## mcset $l "Close" \ "Close" ;# <-- NOT TRANSLATED YET ##ID:001856## mcset $l "PROGRAM ERROR - MCU 8051 IDE" \ "PROGRAM ERROR - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET } # notes.tcl # ============================================================================== namespace eval Notes { ##ID:001857## mcset $l "Pencil" \ "Pencil" ;# <-- NOT TRANSLATED YET ##ID:001858## mcset $l "Line" \ "Line" ;# <-- NOT TRANSLATED YET ##ID:001859## mcset $l "Arrow" \ "Arrow" ;# <-- NOT TRANSLATED YET ##ID:001860## mcset $l "Rectangle" \ "Rectangle" ;# <-- NOT TRANSLATED YET ##ID:001861## mcset $l "Oval" \ "Oval" ;# <-- NOT TRANSLATED YET ##ID:001862## mcset $l "Insert text" \ "Insert text" ;# <-- NOT TRANSLATED YET ##ID:001863## mcset $l "Move" \ "Move" ;# <-- NOT TRANSLATED YET ##ID:001864## mcset $l "Move canvas" \ "Move canvas" ;# <-- NOT TRANSLATED YET ##ID:001865## mcset $l "Eraser" \ "Eraser" ;# <-- NOT TRANSLATED YET ##ID:001866## mcset $l "Zoom in" \ "Zoom in" ;# <-- NOT TRANSLATED YET ##ID:001867## mcset $l "Zoom out" \ "Zoom out" ;# <-- NOT TRANSLATED YET ##ID:001868## mcset $l "Insert image" \ "Insert image" ;# <-- NOT TRANSLATED YET ##ID:001869## mcset $l "Select color" \ "Select color" ;# <-- NOT TRANSLATED YET ##ID:001870## mcset $l "Clear all" \ "Clear all" ;# <-- NOT TRANSLATED YET ##ID:001871## mcset $l "Really close ?" \ "Really close ?" ;# <-- NOT TRANSLATED YET ##ID:001872## mcset $l "Do you really want to close your notes ? (There is no save function ...)" \ "Do you really want to close your notes ? (There is no save function ...)" ;# <-- NOT TRANSLATED YET ##ID:001873## mcset $l "Close" \ "Close" ;# <-- NOT TRANSLATED YET ##ID:001874## mcset $l "Shade" \ "Shade" ;# <-- NOT TRANSLATED YET ##ID:001875## mcset $l "Draw ovals" \ "Draw ovals" ;# <-- NOT TRANSLATED YET ##ID:001876## mcset $l "Draw rectangles" \ "Draw rectangles" ;# <-- NOT TRANSLATED YET ##ID:001877## mcset $l "Draw arrows" \ "Draw arrows" ;# <-- NOT TRANSLATED YET ##ID:001878## mcset $l "Draw lines" \ "Draw lines" ;# <-- NOT TRANSLATED YET ##ID:001879## mcset $l "Text:" \ "Text:" ;# <-- NOT TRANSLATED YET ##ID:001880## mcset $l "Cancel" \ "Cancel" ;# <-- NOT TRANSLATED YET ##ID:001881## mcset $l "Ok" \ "Ok" ;# <-- NOT TRANSLATED YET ##ID:001882## mcset $l "Enter text" \ "Enter text" ;# <-- NOT TRANSLATED YET ##ID:001883## mcset $l "Are you sure ?" \ "Are you sure ?" ;# <-- NOT TRANSLATED YET ##ID:001884## mcset $l "Do you really want to clear this notepad\n(there is no undo action)" \ "Do you really want to clear this notepad\n(there is no undo action)" ;# <-- NOT TRANSLATED YET ##ID:001885## mcset $l "Insert image from file" \ "Insert image from file" ;# <-- NOT TRANSLATED YET ##ID:001886## mcset $l "Unable to read file" \ "Unable to read file" ;# <-- NOT TRANSLATED YET ##ID:001887## mcset $l "Scribble notepad" \ "Scribble notepad" ;# <-- NOT TRANSLATED YET ##ID:001888## mcset $l "Portable network graphics" \ "Portable network graphics" ;# <-- NOT TRANSLATED YET } # sfrwatches.tcl # ============================================================================== namespace eval SFRWatches { ##ID:001889## mcset $l "Set to 0x00" \ "Set to 0x00" ;# <-- NOT TRANSLATED YET ##ID:001890## mcset $l "Set this register to 0" \ "Set this register to 0" ;# <-- NOT TRANSLATED YET ##ID:001891## mcset $l "Set to 0xFF" \ "Set to 0xFF" ;# <-- NOT TRANSLATED YET ##ID:001892## mcset $l "Set this register to 255" \ "Set this register to 255" ;# <-- NOT TRANSLATED YET ##ID:001893## mcset $l "HEX" \ "HEX" ;# <-- NOT TRANSLATED YET ##ID:001894## mcset $l "DEC" \ "DEC" ;# <-- NOT TRANSLATED YET ##ID:001895## mcset $l "Register" \ "Register" ;# <-- NOT TRANSLATED YET ##ID:001896## mcset $l "Search:" \ "Search:" ;# <-- NOT TRANSLATED YET } # stackmonitor.tcl # ============================================================================== namespace eval StackMonitor { ##ID:001897## mcset $l "Do you really want to clear the list without any effect in simulator engine ?" \ "Do you really want to clear the list without any effect in simulator engine ?" ;# <-- NOT TRANSLATED YET ##ID:001898## mcset $l "Confirmation" \ "Confirmation" ;# <-- NOT TRANSLATED YET ##ID:001899## mcset $l "Push value onto stack." \ "Push value onto stack." ;# <-- NOT TRANSLATED YET ##ID:001900## mcset $l "Close" \ "Close" ;# <-- NOT TRANSLATED YET ##ID:001901## mcset $l "PUSH" \ "PUSH" ;# <-- NOT TRANSLATED YET ##ID:001902## mcset $l "POP" \ "POP" ;# <-- NOT TRANSLATED YET ##ID:001903## mcset $l "Clear" \ "Clear" ;# <-- NOT TRANSLATED YET ##ID:001904## mcset $l "SP: " \ "SP: " ;# <-- NOT TRANSLATED YET ##ID:001905## mcset $l "Push value onto stack (HEX)" \ "Push value onto stack (HEX)" ;# <-- NOT TRANSLATED YET ##ID:001906## mcset $l "Stack - %s - MCU 8051 IDE" \ "Stack - %s - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:001907## mcset $l "General" \ "General" ;# <-- NOT TRANSLATED YET ##ID:001908## mcset $l "Subprogram" \ "Subprogram" ;# <-- NOT TRANSLATED YET ##ID:001909## mcset $l "Interrupt" \ "Interrupt" ;# <-- NOT TRANSLATED YET ##ID:001910## mcset $l "Legend:" \ "Legend:" ;# <-- NOT TRANSLATED YET ##ID:001911## mcset $l "Show/Hide tool bar" \ "Show/Hide tool bar" ;# <-- NOT TRANSLATED YET ##ID:001912## mcset $l "Current stack pointer value" \ "Current stack pointer value" ;# <-- NOT TRANSLATED YET # Keep string length here! ##ID:001913## mcset $l {Addr HH Dec Binary Oct A} \ {Addr HH Dec Binary Oct A} ;# <-- NOT TRANSLATED YET } # terminal.tcl # ============================================================================== namespace eval Terminal { ##ID:001914## mcset $l "Unable to find urxvt" \ "Unable to find urxvt" ;# <-- NOT TRANSLATED YET ##ID:001915## mcset $l "Unable to execute program \"urxvt\", terminal emulator is eiter not available or badly configured." \ "Unable to execute program \"urxvt\", terminal emulator is eiter not available or badly configured." ;# <-- NOT TRANSLATED YET } # eightsegment.tcl # ============================================================================== namespace eval EightSegment { ##ID:001916## mcset $l "8 segment editor" \ "8 segment editor" ;# <-- NOT TRANSLATED YET ##ID:001917## mcset $l "Common cathode" \ "Common cathode" ;# <-- NOT TRANSLATED YET ##ID:001918## mcset $l "Hex:" \ "Hex:" ;# <-- NOT TRANSLATED YET ##ID:001919## mcset $l "Dec:" \ "Dec:" ;# <-- NOT TRANSLATED YET ##ID:001920## mcset $l "Bin:" \ "Bin:" ;# <-- NOT TRANSLATED YET ##ID:001921## mcset $l "Copy to clipboard" \ "Copy to clipboard" ;# <-- NOT TRANSLATED YET ##ID:001922## mcset $l "Copy contents of the entrybox to clipboard" \ "Copy contents of the entrybox to clipboard" ;# <-- NOT TRANSLATED YET ##ID:001923## mcset $l "Common anode" \ "Common anode" ;# <-- NOT TRANSLATED YET ##ID:001924## mcset $l "LED" \ "LED" ;# <-- NOT TRANSLATED YET ##ID:001925## mcset $l "PIN" \ "PIN" ;# <-- NOT TRANSLATED YET ##ID:001926## mcset $l "Close" \ "Close" ;# <-- NOT TRANSLATED YET } # symbol_viewer.tcl # ============================================================================== namespace eval SymbolViewer { ##ID:001927## mcset $l "Assembly symbol table - MCU 8051 IDE" \ "Assembly symbol table - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:001928## mcset $l "Copy symbol name" \ "Copy symbol name" ;# <-- NOT TRANSLATED YET ##ID:001929## mcset $l "Copy hex value" \ "Copy hex value" ;# <-- NOT TRANSLATED YET ##ID:001930## mcset $l "Copy dec value" \ "Copy dec value" ;# <-- NOT TRANSLATED YET ##ID:001931## mcset $l "Copy line" \ "Copy line" ;# <-- NOT TRANSLATED YET ##ID:001932## mcset $l "Open *.LST" \ "Open *.LST" ;# <-- NOT TRANSLATED YET ##ID:001933## mcset $l "Load table of symbols from list file (*.lst)\n\tOnly for: ASEM-51, MCU8051IDE and ASM51" \ "Load table of symbols from list file (*.lst)\n\tOnly for: ASEM-51, MCU8051IDE and ASM51" ;# <-- NOT TRANSLATED YET ##ID:001934## mcset $l "Open code listing" \ "Open code listing" ;# <-- NOT TRANSLATED YET ##ID:001935## mcset $l "Reload" \ "Reload" ;# <-- NOT TRANSLATED YET ##ID:001936## mcset $l "Reload opened file" \ "Reload opened file" ;# <-- NOT TRANSLATED YET ##ID:001937## mcset $l "Search:" \ "Search:" ;# <-- NOT TRANSLATED YET ##ID:001938## mcset $l "Search for symbol by its name or value" \ "Search for symbol by its name or value" ;# <-- NOT TRANSLATED YET ##ID:001939## mcset $l "Search for symbol" \ "Search for symbol" ;# <-- NOT TRANSLATED YET ##ID:001940## mcset $l "Clear search entry box" \ "Clear search entry box" ;# <-- NOT TRANSLATED YET ##ID:001941## mcset $l "Symbol\t\t\t\tType\tHEX\tDEC\tUsed" \ "Symbol\t\t\t\tType\tHEX\tDEC\tUsed" ;# <-- NOT TRANSLATED YET ##ID:001942## mcset $l "Display" \ "Display" ;# <-- NOT TRANSLATED YET ##ID:001943## mcset $l "Used symbols" \ "Used symbols" ;# <-- NOT TRANSLATED YET ##ID:001944## mcset $l "Unused symbols" \ "Unused symbols" ;# <-- NOT TRANSLATED YET ##ID:001945## mcset $l "Sort by" \ "Sort by" ;# <-- NOT TRANSLATED YET ##ID:001946## mcset $l "Incremental order" \ "Incremental order" ;# <-- NOT TRANSLATED YET ##ID:001947## mcset $l "Decremental order" \ "Decremental order" ;# <-- NOT TRANSLATED YET ##ID:001948## mcset $l "Load symbol table - MCU 8051 IDE" \ "Load symbol table - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:001949## mcset $l "Code listing" \ "Code listing" ;# <-- NOT TRANSLATED YET ##ID:001950## mcset $l "Invalid file" \ "Invalid file" ;# <-- NOT TRANSLATED YET ##ID:001951## mcset $l "Unable to use selected file. Please check your permissions. File: '%s'" \ "Unable to use selected file. Please check your permissions. File: '%s'" ;# <-- NOT TRANSLATED YET ##ID:001952## mcset $l "YES" \ "YES" ;# <-- NOT TRANSLATED YET ##ID:001953## mcset $l "NO" \ "NO" ;# <-- NOT TRANSLATED YET } # sfrmap.tcl # ============================================================================== namespace eval SFRMap { ##ID:001954## mcset $l "Map of SFR area" \ "Map of SFR area" ;# <-- NOT TRANSLATED YET ##ID:001955## mcset $l "Reserved" \ "Reserved" ;# <-- NOT TRANSLATED YET ##ID:001956## mcset $l "Bit addressable" \ "Bit addressable" ;# <-- NOT TRANSLATED YET ##ID:001957## mcset $l "HEX:" \ "HEX:" ;# <-- NOT TRANSLATED YET ##ID:001958## mcset $l "DEC:" \ "DEC:" ;# <-- NOT TRANSLATED YET ##ID:001959## mcset $l "BIN:" \ "BIN:" ;# <-- NOT TRANSLATED YET ##ID:001960## mcset $l "OCT:" \ "OCT:" ;# <-- NOT TRANSLATED YET } # hibernate.tcl # ============================================================================== namespace eval Hibernate { ##ID:001961## mcset $l "Abort" \ "Abort" ;# <-- NOT TRANSLATED YET ##ID:001962## mcset $l "Hibernation progress" \ "Hibernation progress" ;# <-- NOT TRANSLATED YET ##ID:001963## mcset $l "Interrupt at vector 0x%s " \ "Interrupt at vector 0x%s " ;# <-- NOT TRANSLATED YET ##ID:001964## mcset $l "Fatal error" \ "Fatal error" ;# <-- NOT TRANSLATED YET ##ID:001965## mcset $l "Version of this M5IHIB file is higher than %s\nUnable to continue." \ "Version of this M5IHIB file is higher than %s\nUnable to continue." ;# <-- NOT TRANSLATED YET ##ID:001966## mcset $l "The following problems must be \nresolved before program resumption" \ "The following problems must be \nresolved before program resumption" ;# <-- NOT TRANSLATED YET ##ID:001967## mcset $l "This file is indented for %s but the current MCU is %s" \ "This file is indented for %s but the current MCU is %s" ;# <-- NOT TRANSLATED YET ##ID:001968## mcset $l "Set current MCU to %s" \ "Set current MCU to %s" ;# <-- NOT TRANSLATED YET ##ID:001969## mcset $l "This file contains %s B of external data memory but but your processor has %s B" \ "This file contains %s B of external data memory but but your processor has %s B" ;# <-- NOT TRANSLATED YET ##ID:001970## mcset $l "Set current XDATA capacity to %s B" \ "Set current XDATA capacity to %s B" ;# <-- NOT TRANSLATED YET ##ID:001971## mcset $l "Ignore this difference" \ "Ignore this difference" ;# <-- NOT TRANSLATED YET ##ID:001972## mcset $l "Current file (%s) has different MD5 hash than MD5 recorded in this hibernation file" \ "Current file (%s) has different MD5 hash than MD5 recorded in this hibernation file" ;# <-- NOT TRANSLATED YET ##ID:001973## mcset $l "This hibernation file was generated from \"%s\" but current file is \"%s\"" \ "This hibernation file was generated from \"%s\" but current file is \"%s\"" ;# <-- NOT TRANSLATED YET ##ID:001974## mcset $l "Ok" \ "Ok" ;# <-- NOT TRANSLATED YET ##ID:001975## mcset $l "Cancel" \ "Cancel" ;# <-- NOT TRANSLATED YET ##ID:001976## mcset $l "Program resumption" \ "Program resumption" ;# <-- NOT TRANSLATED YET ##ID:001977## mcset $l "Options:" \ "Options:" ;# <-- NOT TRANSLATED YET } # find_in_files.tcl # ============================================================================== namespace eval FindInFiles { ##ID:001978## mcset $l "Go to" \ "Go to" ;# <-- NOT TRANSLATED YET ##ID:001979## mcset $l "Go to this line" \ "Go to this line" ;# <-- NOT TRANSLATED YET ##ID:001980## mcset $l "Clear" \ "Clear" ;# <-- NOT TRANSLATED YET ##ID:001981## mcset $l "Clear this panel" \ "Clear this panel" ;# <-- NOT TRANSLATED YET ##ID:001982## mcset $l "Search pattern" \ "Search pattern" ;# <-- NOT TRANSLATED YET ##ID:001983## mcset $l "File mask (e.g. \"*.c,*.asm\")" \ "File mask (e.g. \"*.c,*.asm\")" ;# <-- NOT TRANSLATED YET ##ID:001984## mcset $l "Select folder" \ "Select folder" ;# <-- NOT TRANSLATED YET ##ID:001985## mcset $l "Recursive" \ "Recursive" ;# <-- NOT TRANSLATED YET ##ID:001986## mcset $l "Search in all subfolders" \ "Search in all subfolders" ;# <-- NOT TRANSLATED YET ##ID:001987## mcset $l "Find" \ "Find" ;# <-- NOT TRANSLATED YET ##ID:001988## mcset $l "Start / Stop search" \ "Start / Stop search" ;# <-- NOT TRANSLATED YET ##ID:001989## mcset $l "Clear results" \ "Clear results" ;# <-- NOT TRANSLATED YET ##ID:001990## mcset $l "Case sensitive" \ "Case sensitive" ;# <-- NOT TRANSLATED YET ##ID:001991## mcset $l "Perform case sensitive search" \ "Perform case sensitive search" ;# <-- NOT TRANSLATED YET ##ID:001992## mcset $l "Regular expression" \ "Regular expression" ;# <-- NOT TRANSLATED YET ##ID:001993## mcset $l "Pattern is a regular expression" \ "Pattern is a regular expression" ;# <-- NOT TRANSLATED YET ##ID:001994## mcset $l "Pattern:" \ "Pattern:" ;# <-- NOT TRANSLATED YET ##ID:001995## mcset $l "Folder:" \ "Folder:" ;# <-- NOT TRANSLATED YET ##ID:001996## mcset $l "Mask:" \ "Mask:" ;# <-- NOT TRANSLATED YET ##ID:001997## mcset $l "Clear pattern entrybox" \ "Clear pattern entrybox" ;# <-- NOT TRANSLATED YET ##ID:001998## mcset $l "Show help for file mask" \ "Show help for file mask" ;# <-- NOT TRANSLATED YET ##ID:001999## mcset $l "Choose directory - MCU 8051 IDE" \ "Choose directory - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:002000## mcset $l "Folder not found" \ "Folder not found" ;# <-- NOT TRANSLATED YET ##ID:002001## mcset $l "The specified folder does not exist.\n'%s'" \ "The specified folder does not exist.\n'%s'" ;# <-- NOT TRANSLATED YET ##ID:002002## mcset $l "The string specified as a folder is not a folder.\n'%s'" \ "The string specified as a folder is not a folder.\n'%s'" ;# <-- NOT TRANSLATED YET ##ID:002003## mcset $l "Error" \ "Error" ;# <-- NOT TRANSLATED YET ##ID:002004## mcset $l "Invalid regular expression" \ "Invalid regular expression" ;# <-- NOT TRANSLATED YET ##ID:002005## mcset $l "Stop" \ "Stop" ;# <-- NOT TRANSLATED YET ##ID:002006## mcset $l "-- click to close --" \ "-- click to close --" ;# <-- NOT TRANSLATED YET ##ID:002007## mcset $l "Comma separated list of file masks (e.g \"*.c,*.h,*.asm\")\n" \ "Comma separated list of file masks (e.g \"*.c,*.h,*.asm\")\n" ;# <-- NOT TRANSLATED YET ##ID:002008## mcset $l "The mask may contain any of the following special characters:\n" \ "The mask may contain any of the following special characters:\n" ;# <-- NOT TRANSLATED YET ##ID:002009## mcset $l " ? Matches any single character.\n" \ " ? Matches any single character.\n" ;# <-- NOT TRANSLATED YET ##ID:002010## mcset $l " * Matches any sequence of zero or more characters.\n" \ " * Matches any sequence of zero or more characters.\n" ;# <-- NOT TRANSLATED YET ##ID:002011## mcset $l " \[chars\] Matches any single character in chars.\n" \ " \[chars\] Matches any single character in chars.\n" ;# <-- NOT TRANSLATED YET ##ID:002012## mcset $l " If chars contains a sequence of the form a-b then any\n" \ " If chars contains a sequence of the form a-b then any\n" ;# <-- NOT TRANSLATED YET ##ID:002013## mcset $l " character between a and b (inclusive) will match.\n" \ " character between a and b (inclusive) will match.\n" ;# <-- NOT TRANSLATED YET ##ID:002014## mcset $l " \\x Matches the character x." \ " \\x Matches the character x." ;# <-- NOT TRANSLATED YET } # fsbrowser.tcl # ============================================================================== namespace eval FSBrowser { ##ID:002015## mcset $l "Sorting" \ "Sorting" ;# <-- NOT TRANSLATED YET ##ID:002016## mcset $l "By Name" \ "By Name" ;# <-- NOT TRANSLATED YET ##ID:002017## mcset $l "Sort files by name" \ "Sort files by name" ;# <-- NOT TRANSLATED YET ##ID:002018## mcset $l "By Date" \ "By Date" ;# <-- NOT TRANSLATED YET ##ID:002019## mcset $l "Sort files by date" \ "Sort files by date" ;# <-- NOT TRANSLATED YET ##ID:002020## mcset $l "By Size" \ "By Size" ;# <-- NOT TRANSLATED YET ##ID:002021## mcset $l "Sort files by size" \ "Sort files by size" ;# <-- NOT TRANSLATED YET ##ID:002022## mcset $l "Reverse" \ "Reverse" ;# <-- NOT TRANSLATED YET ##ID:002023## mcset $l "Decremental sorting" \ "Decremental sorting" ;# <-- NOT TRANSLATED YET ##ID:002024## mcset $l "Case insensitive" \ "Case insensitive" ;# <-- NOT TRANSLATED YET ##ID:002025## mcset $l "Sorting mode ASCII / Dictionary" \ "Sorting mode ASCII / Dictionary" ;# <-- NOT TRANSLATED YET ##ID:002026## mcset $l "Show hidden files" \ "Show hidden files" ;# <-- NOT TRANSLATED YET ##ID:002027## mcset $l "Show / Ignore files starting with dot" \ "Show / Ignore files starting with dot" ;# <-- NOT TRANSLATED YET ##ID:002028## mcset $l "Up" \ "Up" ;# <-- NOT TRANSLATED YET ##ID:002029## mcset $l "Go to parent folder" \ "Go to parent folder" ;# <-- NOT TRANSLATED YET ##ID:002030## mcset $l "Back" \ "Back" ;# <-- NOT TRANSLATED YET ##ID:002031## mcset $l "Go back in history" \ "Go back in history" ;# <-- NOT TRANSLATED YET ##ID:002032## mcset $l "Forward" \ "Forward" ;# <-- NOT TRANSLATED YET ##ID:002033## mcset $l "Go forward in history" \ "Go forward in history" ;# <-- NOT TRANSLATED YET ##ID:002034## mcset $l "Home" \ "Home" ;# <-- NOT TRANSLATED YET ##ID:002035## mcset $l "Go to your home folder" \ "Go to your home folder" ;# <-- NOT TRANSLATED YET ##ID:002036## mcset $l "Reload" \ "Reload" ;# <-- NOT TRANSLATED YET ##ID:002037## mcset $l "Reload file list" \ "Reload file list" ;# <-- NOT TRANSLATED YET ##ID:002038## mcset $l "Rename" \ "Rename" ;# <-- NOT TRANSLATED YET ##ID:002039## mcset $l "Rename file" \ "Rename file" ;# <-- NOT TRANSLATED YET ##ID:002040## mcset $l "Delete" \ "Delete" ;# <-- NOT TRANSLATED YET ##ID:002041## mcset $l "Delete file" \ "Delete file" ;# <-- NOT TRANSLATED YET ##ID:002042## mcset $l "New folder" \ "New folder" ;# <-- NOT TRANSLATED YET ##ID:002043## mcset $l "Create new directory" \ "Create new directory" ;# <-- NOT TRANSLATED YET ##ID:002044## mcset $l "Bookmark folder" \ "Bookmark folder" ;# <-- NOT TRANSLATED YET ##ID:002045## mcset $l "Bookmark the current directory" \ "Bookmark the current directory" ;# <-- NOT TRANSLATED YET ##ID:002046## mcset $l "Properties" \ "Properties" ;# <-- NOT TRANSLATED YET ##ID:002047## mcset $l "Show file properties" \ "Show file properties" ;# <-- NOT TRANSLATED YET ##ID:002048## mcset $l "Add bookmark" \ "Add bookmark" ;# <-- NOT TRANSLATED YET ##ID:002049## mcset $l "Bookmark the current folder" \ "Bookmark the current folder" ;# <-- NOT TRANSLATED YET ##ID:002050## mcset $l "Edit bookmarks" \ "Edit bookmarks" ;# <-- NOT TRANSLATED YET ##ID:002051## mcset $l "Invoke bookmark editor" \ "Invoke bookmark editor" ;# <-- NOT TRANSLATED YET ##ID:002052## mcset $l "Back in history" \ "Back in history" ;# <-- NOT TRANSLATED YET ##ID:002053## mcset $l "Forward in history" \ "Forward in history" ;# <-- NOT TRANSLATED YET ##ID:002054## mcset $l "Bookmark" \ "Bookmark" ;# <-- NOT TRANSLATED YET ##ID:002055## mcset $l "Bookmark menu" \ "Bookmark menu" ;# <-- NOT TRANSLATED YET ##ID:002056## mcset $l "Current document folder" \ "Current document folder" ;# <-- NOT TRANSLATED YET ##ID:002057## mcset $l "Go to directory containing the current document" \ "Go to directory containing the current document" ;# <-- NOT TRANSLATED YET ##ID:002058## mcset $l "Configure" \ "Configure" ;# <-- NOT TRANSLATED YET ##ID:002059## mcset $l "File system browser configuration menu" \ "File system browser configuration menu" ;# <-- NOT TRANSLATED YET ##ID:002060## mcset $l "Current directory" \ "Current directory" ;# <-- NOT TRANSLATED YET ##ID:002061## mcset $l "Directory location bar" \ "Directory location bar" ;# <-- NOT TRANSLATED YET ##ID:002062## mcset $l "Confirm directory location" \ "Confirm directory location" ;# <-- NOT TRANSLATED YET ##ID:002063## mcset $l "Filter" \ "Filter" ;# <-- NOT TRANSLATED YET ##ID:002064## mcset $l "File filter" \ "File filter" ;# <-- NOT TRANSLATED YET ##ID:002065## mcset $l "Invalid directory" \ "Invalid directory" ;# <-- NOT TRANSLATED YET ##ID:002066## mcset $l "The specified directory does not exist:\n%s" \ "The specified directory does not exist:\n%s" ;# <-- NOT TRANSLATED YET ##ID:002067## mcset $l "Unable to compile" \ "Unable to compile" ;# <-- NOT TRANSLATED YET ##ID:002068## mcset $l "Unable to open source file while simulator is engaged." \ "Unable to open source file while simulator is engaged." ;# <-- NOT TRANSLATED YET ##ID:002069## mcset $l "Open file %s" \ "Open file %s" ;# <-- NOT TRANSLATED YET ##ID:002070## mcset $l "This file does not look like a source code.\nDo you really want to open it ?" \ "This file does not look like a source code.\nDo you really want to open it ?" ;# <-- NOT TRANSLATED YET ##ID:002071## mcset $l "Permission denied" \ "Permission denied" ;# <-- NOT TRANSLATED YET ##ID:002072## mcset $l "Unable to rename file:\n%s" \ "Unable to rename file:\n%s" ;# <-- NOT TRANSLATED YET ##ID:002073## mcset $l "Do you really want to delete file:\n%s" \ "Do you really want to delete file:\n%s" ;# <-- NOT TRANSLATED YET ##ID:002074## mcset $l "Unable to remove file:\n%s" \ "Unable to remove file:\n%s" ;# <-- NOT TRANSLATED YET ##ID:002075## mcset $l "Create new folder in:\n%s" \ "Create new folder in:\n%s" ;# <-- NOT TRANSLATED YET ##ID:002076## mcset $l "Clear" \ "Clear" ;# <-- NOT TRANSLATED YET ##ID:002077## mcset $l "Ok" \ "Ok" ;# <-- NOT TRANSLATED YET ##ID:002078## mcset $l "Cancel" \ "Cancel" ;# <-- NOT TRANSLATED YET ##ID:002079## mcset $l "Unable to create folder" \ "Unable to create folder" ;# <-- NOT TRANSLATED YET ##ID:002080## mcset $l "Unable to create the specified folder" \ "Unable to create the specified folder" ;# <-- NOT TRANSLATED YET ##ID:002081## mcset $l "Directory" \ "Directory" ;# <-- NOT TRANSLATED YET ##ID:002082## mcset $l "File" \ "File" ;# <-- NOT TRANSLATED YET ##ID:002083## mcset $l "Unknown Error" \ "Unknown Error" ;# <-- NOT TRANSLATED YET ##ID:002084## mcset $l "This file apparently does not exist" \ "This file apparently does not exist" ;# <-- NOT TRANSLATED YET ##ID:002085## mcset $l "General" \ "General" ;# <-- NOT TRANSLATED YET ##ID:002086## mcset $l "Permissions" \ "Permissions" ;# <-- NOT TRANSLATED YET ##ID:002087## mcset $l "Name:" \ "Name:" ;# <-- NOT TRANSLATED YET ##ID:002088## mcset $l "Access permissions" \ "Access permissions" ;# <-- NOT TRANSLATED YET ##ID:002089## mcset $l "Ownership" \ "Ownership" ;# <-- NOT TRANSLATED YET ##ID:002090## mcset $l "Owner" \ "Owner" ;# <-- NOT TRANSLATED YET ##ID:002091## mcset $l "Group" \ "Group" ;# <-- NOT TRANSLATED YET ##ID:002092## mcset $l "Item properties" \ "Item properties" ;# <-- NOT TRANSLATED YET ##ID:002093## mcset $l "Unable to change permissions for file:\n%s" \ "Unable to change permissions for file:\n%s" ;# <-- NOT TRANSLATED YET ##ID:002094## mcset $l "Unable to rename file:\n%s\n\t=>\n%s" \ "Unable to rename file:\n%s\n\t=>\n%s" ;# <-- NOT TRANSLATED YET } # ihextools.tcl # ============================================================================== namespace eval IHexTools { ##ID:002095## mcset $l "Line contains invalid characters" \ "Line contains invalid characters" ;# <-- NOT TRANSLATED YET ##ID:002096## mcset $l "Line contains even number of characters" \ "Line contains even number of characters" ;# <-- NOT TRANSLATED YET ##ID:002097## mcset $l "Unknown record type '%s'" \ "Unknown record type '%s'" ;# <-- NOT TRANSLATED YET ##ID:002098## mcset $l "Bad checksum" \ "Bad checksum" ;# <-- NOT TRANSLATED YET ##ID:002099## mcset $l "Bad length" \ "Bad length" ;# <-- NOT TRANSLATED YET ##ID:002100## mcset $l "Missing EOF" \ "Missing EOF" ;# <-- NOT TRANSLATED YET ##ID:002101## mcset $l "Data length exceeding limit 0x10000" \ "Data length exceeding limit 0x10000" ;# <-- NOT TRANSLATED YET ##ID:002102## mcset $l "Invalid address '%s'" \ "Invalid address '%s'" ;# <-- NOT TRANSLATED YET ##ID:002103## mcset $l "Invalid line number '%s'" \ "Invalid line number '%s'" ;# <-- NOT TRANSLATED YET ##ID:002104## mcset $l "Invalid data field" \ "Invalid data field" ;# <-- NOT TRANSLATED YET ##ID:002105## mcset $l "Error at line %s:\t" \ "Error at line %s:\t" ;# <-- NOT TRANSLATED YET } # project.tcl # ============================================================================== namespace eval Project { ##ID:002106## mcset $l "Project loading error" \ "Project loading error" ;# <-- NOT TRANSLATED YET ##ID:002107## mcset $l "ERROR:\nThe project file cannot be loaded correctly due to a xml parsing error. The file is either corrupted or it is not a project file acceptable by this environment." \ "ERROR:\nThe project file cannot be loaded correctly due to a xml parsing error. The file is either corrupted or it is not a project file acceptable by this environment." ;# <-- NOT TRANSLATED YET ##ID:002108## mcset $l "Converting old project file to new version" \ "Converting old project file to new version" ;# <-- NOT TRANSLATED YET } # simulator.tcl # ============================================================================== namespace eval Simulator { ##ID:002109## mcset $l "Simulator warning" \ "Simulator warning" ;# <-- NOT TRANSLATED YET ##ID:002110## mcset $l "Ok" \ "Ok" ;# <-- NOT TRANSLATED YET ##ID:002111## mcset $l "See simulator configuration dialog\nMain Menu -> Configure -> Simulator" \ "See simulator configuration dialog\nMain Menu -> Configure -> Simulator" ;# <-- NOT TRANSLATED YET ##ID:002112## mcset $l "Do not show this dialog again" \ "Do not show this dialog again" ;# <-- NOT TRANSLATED YET ##ID:002113## mcset $l "PC:" \ "PC:" ;# <-- NOT TRANSLATED YET ##ID:002114## mcset $l "Line:" \ "Line:" ;# <-- NOT TRANSLATED YET ##ID:002115## mcset $l "File:" \ "File:" ;# <-- NOT TRANSLATED YET ##ID:002116## mcset $l "Invalid return from interrupt" \ "Invalid return from interrupt" ;# <-- NOT TRANSLATED YET ##ID:002117## mcset $l "Unable to initialize EEPROM programming cycle\nbecause EEMWE, RDYBSY and WRTINH must be set\n" \ "Unable to initialize EEPROM programming cycle\nbecause EEMWE, RDYBSY and WRTINH must be set\n" ;# <-- NOT TRANSLATED YET ##ID:002118## mcset $l "Data EEPROM write cycle aborted\n" \ "Data EEPROM write cycle aborted\n" ;# <-- NOT TRANSLATED YET ##ID:002119## mcset $l "Unable to read write-only register.\nRandom value returned.\n\nRegister:\t\t0x%s" \ "Unable to read write-only register.\nRandom value returned.\n\nRegister:\t\t0x%s" ;# <-- NOT TRANSLATED YET ##ID:002120## mcset $l "Invalid instruction OP code\n" \ "Invalid instruction OP code\n" ;# <-- NOT TRANSLATED YET ##ID:002121## mcset $l "Stack overflow\n" \ "Stack overflow\n" ;# <-- NOT TRANSLATED YET ##ID:002122## mcset $l "Stack underflow\n" \ "Stack underflow\n" ;# <-- NOT TRANSLATED YET ##ID:002123## mcset $l "WATCHDOG OVERFLOW\n" \ "WATCHDOG OVERFLOW\n" ;# <-- NOT TRANSLATED YET ##ID:002124## mcset $l "Timer mode has been changed while timer was running.\nIt is important to stop timer/counter before changing modes.\n\nTimer number: %s\n" \ "Timer mode has been changed while timer was running.\nIt is important to stop timer/counter before changing modes.\n\nTimer number: %s\n" ;# <-- NOT TRANSLATED YET ##ID:002125## mcset $l "UART mode has been changed while UART was engaged.\n" \ "UART mode has been changed while UART was engaged.\n" ;# <-- NOT TRANSLATED YET ##ID:002126## mcset $l "UART: Frame discarded (according to MCS-51 manual)\n" \ "UART: Frame discarded (according to MCS-51 manual)\n" ;# <-- NOT TRANSLATED YET ##ID:002127## mcset $l "Unable to access file:\n%s" \ "Unable to access file:\n%s" ;# <-- NOT TRANSLATED YET ##ID:002128## mcset $l "Permission denied" \ "Permission denied" ;# <-- NOT TRANSLATED YET ##ID:002129## mcset $l "Specified file does already exist,\ndo you want to overwrite it ?" \ "Specified file does already exist,\ndo you want to overwrite it ?" ;# <-- NOT TRANSLATED YET ##ID:002130## mcset $l "Overwrite file ?" \ "Overwrite file ?" ;# <-- NOT TRANSLATED YET ##ID:002131## mcset $l "Save error log - MCU 8051 IDE" \ "Save error log - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:002132## mcset $l "Undefined result - MCU 8051 IDE" \ "Undefined result - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:002133## mcset $l "Save as XHTML" \ "Save as XHTML" ;# <-- NOT TRANSLATED YET ##ID:002134## mcset $l "Log files" \ "Log files" ;# <-- NOT TRANSLATED YET ##ID:002135## mcset $l "HTML files" \ "HTML files" ;# <-- NOT TRANSLATED YET ##ID:002136## mcset $l "Save as plain text" \ "Save as plain text" ;# <-- NOT TRANSLATED YET ##ID:002137## mcset $l "\"Undefined result\"" \ "\"Undefined result\"" ;# <-- NOT TRANSLATED YET ##ID:002138## mcset $l "Summary:" \ "Summary:" ;# <-- NOT TRANSLATED YET ##ID:002139## mcset $l "\nYour program tried access to register at address " \ "\nYour program tried access to register at address " ;# <-- NOT TRANSLATED YET ##ID:002140## mcset $l "\nYour program tried indirect access to register at address " \ "\nYour program tried indirect access to register at address " ;# <-- NOT TRANSLATED YET ##ID:002141## mcset $l "\nYour program tried direct access to register at address " \ "\nYour program tried direct access to register at address " ;# <-- NOT TRANSLATED YET ##ID:002142## mcset $l "CODE" \ "CODE" ;# <-- NOT TRANSLATED YET ##ID:002143## mcset $l "XDATA" \ "XDATA" ;# <-- NOT TRANSLATED YET ##ID:002144## mcset $l "Bit area" \ "Bit area" ;# <-- NOT TRANSLATED YET ##ID:002145## mcset $l "IDATA" \ "IDATA" ;# <-- NOT TRANSLATED YET ##ID:002146## mcset $l "SFR" \ "SFR" ;# <-- NOT TRANSLATED YET ##ID:002147## mcset $l "0x%s in program memory" \ "0x%s in program memory" ;# <-- NOT TRANSLATED YET ##ID:002148## mcset $l "0x%s in external data memory" \ "0x%s in external data memory" ;# <-- NOT TRANSLATED YET ##ID:002149## mcset $l "0x%s in internal data memory" \ "0x%s in internal data memory" ;# <-- NOT TRANSLATED YET ##ID:002150## mcset $l "0x%s in bit addressable area" \ "0x%s in bit addressable area" ;# <-- NOT TRANSLATED YET ##ID:002151## mcset $l "0x%s in special function registers area" \ "0x%s in special function registers area" ;# <-- NOT TRANSLATED YET ##ID:002152## mcset $l ". This register is not implemented on this processor (" \ ". This register is not implemented on this processor (" ;# <-- NOT TRANSLATED YET ##ID:002153## mcset $l ") in this configuration. You can continue in simulation but result of this operation is undefined." \ ") in this configuration. You can continue in simulation but result of this operation is undefined." ;# <-- NOT TRANSLATED YET ##ID:002154## mcset $l "\n\nError details:" \ "\n\nError details:" ;# <-- NOT TRANSLATED YET ##ID:002155## mcset $l "\n\tTarget memory:\t\t" \ "\n\tTarget memory:\t\t" ;# <-- NOT TRANSLATED YET ##ID:002156## mcset $l "\n\tTarget address: \t" \ "\n\tTarget address: \t" ;# <-- NOT TRANSLATED YET ##ID:002157## mcset $l "\n\tLine:\t\t\t" \ "\n\tLine:\t\t\t" ;# <-- NOT TRANSLATED YET ##ID:002158## mcset $l "\n\tFile:\t\t\t" \ "\n\tFile:\t\t\t" ;# <-- NOT TRANSLATED YET ##ID:002159## mcset $l "\n\tProject:\t\t" \ "\n\tProject:\t\t" ;# <-- NOT TRANSLATED YET ##ID:002160## mcset $l "\n\nProcessor details:" \ "\n\nProcessor details:" ;# <-- NOT TRANSLATED YET ##ID:002161## mcset $l "\n\tType:\t\t\t" \ "\n\tType:\t\t\t" ;# <-- NOT TRANSLATED YET ##ID:002162## mcset $l "\n\tRam size:\t\t" \ "\n\tRam size:\t\t" ;# <-- NOT TRANSLATED YET ##ID:002163## mcset $l "\n\tProgram memory: \t" \ "\n\tProgram memory: \t" ;# <-- NOT TRANSLATED YET ##ID:002164## mcset $l "\n\tExternal memory:\t" \ "\n\tExternal memory:\t" ;# <-- NOT TRANSLATED YET ##ID:002165## mcset $l "\n\tExpanded memory:\t" \ "\n\tExpanded memory:\t" ;# <-- NOT TRANSLATED YET } # ledmatrix.tcl # ============================================================================== namespace eval LedMatrix { ##ID:002166## mcset $l "Fade out interval" \ "Fade out interval" ;# <-- NOT TRANSLATED YET ##ID:002167## mcset $l "dim_interval_changed" \ "dim_interval_changed" ;# <-- NOT TRANSLATED YET ##ID:002168## mcset $l "Set LED dim interval to 0 instruction cycles" \ "Set LED dim interval to 0 instruction cycles" ;# <-- NOT TRANSLATED YET ##ID:002169## mcset $l "Set LED dim interval to 5 instruction cycles" \ "Set LED dim interval to 5 instruction cycles" ;# <-- NOT TRANSLATED YET ##ID:002170## mcset $l "Set LED dim interval to 10 instruction cycles" \ "Set LED dim interval to 10 instruction cycles" ;# <-- NOT TRANSLATED YET ##ID:002171## mcset $l "Set LED dim interval to 20 instruction cycles" \ "Set LED dim interval to 20 instruction cycles" ;# <-- NOT TRANSLATED YET ##ID:002172## mcset $l "Set LED dim interval to 50 instruction cycles" \ "Set LED dim interval to 50 instruction cycles" ;# <-- NOT TRANSLATED YET ##ID:002173## mcset $l "Set LED dim interval to 100 instruction cycles" \ "Set LED dim interval to 100 instruction cycles" ;# <-- NOT TRANSLATED YET ##ID:002174## mcset $l "Set LED dim interval to 200 instruction cycles" \ "Set LED dim interval to 200 instruction cycles" ;# <-- NOT TRANSLATED YET ##ID:002175## mcset $l "Set LED dim interval to 500 instruction cycles" \ "Set LED dim interval to 500 instruction cycles" ;# <-- NOT TRANSLATED YET ##ID:002176## mcset $l "Set LED dim interval to 1000 instruction cycles" \ "Set LED dim interval to 1000 instruction cycles" ;# <-- NOT TRANSLATED YET ##ID:002177## mcset $l "Mapping" \ "Mapping" ;# <-- NOT TRANSLATED YET ##ID:002178## mcset $l "Random" \ "Random" ;# <-- NOT TRANSLATED YET ##ID:002179## mcset $l "Random access to the matrix (default)" \ "Random access to the matrix (default)" ;# <-- NOT TRANSLATED YET ##ID:002180## mcset $l "Row" \ "Row" ;# <-- NOT TRANSLATED YET ##ID:002181## mcset $l "When a particular row is activated, it's previous state is forgotten" \ "When a particular row is activated, it's previous state is forgotten" ;# <-- NOT TRANSLATED YET ##ID:002182## mcset $l "Column" \ "Column" ;# <-- NOT TRANSLATED YET ##ID:002183## mcset $l "When a particular column is activated, it's previous state is forgotten" \ "When a particular column is activated, it's previous state is forgotten" ;# <-- NOT TRANSLATED YET ##ID:002184## mcset $l "Color" \ "Color" ;# <-- NOT TRANSLATED YET ##ID:002185## mcset $l "Red" \ "Red" ;# <-- NOT TRANSLATED YET ##ID:002186## mcset $l "Orange" \ "Orange" ;# <-- NOT TRANSLATED YET ##ID:002187## mcset $l "Yellow" \ "Yellow" ;# <-- NOT TRANSLATED YET ##ID:002188## mcset $l "Green" \ "Green" ;# <-- NOT TRANSLATED YET ##ID:002189## mcset $l "Blue" \ "Blue" ;# <-- NOT TRANSLATED YET ##ID:002190## mcset $l "Purple" \ "Purple" ;# <-- NOT TRANSLATED YET ##ID:002191## mcset $l "Light up when" \ "Light up when" ;# <-- NOT TRANSLATED YET ##ID:002192## mcset $l "Row 0 & Column 0" \ "Row 0 & Column 0" ;# <-- NOT TRANSLATED YET ##ID:002193## mcset $l "Light up LED when both wires are in low" \ "Light up LED when both wires are in low" ;# <-- NOT TRANSLATED YET ##ID:002194## mcset $l "Row 0 & Column 1" \ "Row 0 & Column 1" ;# <-- NOT TRANSLATED YET ##ID:002195## mcset $l "Light up LED when row wire is in low and column wire is in high" \ "Light up LED when row wire is in low and column wire is in high" ;# <-- NOT TRANSLATED YET ##ID:002196## mcset $l "Row 1 & Column 0" \ "Row 1 & Column 0" ;# <-- NOT TRANSLATED YET ##ID:002197## mcset $l "Light up LED when row wire is in high and column wire is in low" \ "Light up LED when row wire is in high and column wire is in low" ;# <-- NOT TRANSLATED YET ##ID:002198## mcset $l "Row 1 & Column 1" \ "Row 1 & Column 1" ;# <-- NOT TRANSLATED YET ##ID:002199## mcset $l "Light up LED when both wires are in high" \ "Light up LED when both wires are in high" ;# <-- NOT TRANSLATED YET ##ID:002200## mcset $l "All fade out" \ "All fade out" ;# <-- NOT TRANSLATED YET ##ID:002201## mcset $l "Dim all LEDs" \ "Dim all LEDs" ;# <-- NOT TRANSLATED YET ##ID:002202## mcset $l "Show help" \ "Show help" ;# <-- NOT TRANSLATED YET ##ID:002203## mcset $l "Show brief help" \ "Show brief help" ;# <-- NOT TRANSLATED YET ##ID:002204## mcset $l "Save configuration" \ "Save configuration" ;# <-- NOT TRANSLATED YET ##ID:002205## mcset $l "Save configuration into a file" \ "Save configuration into a file" ;# <-- NOT TRANSLATED YET ##ID:002206## mcset $l "Load configuration" \ "Load configuration" ;# <-- NOT TRANSLATED YET ##ID:002207## mcset $l "Load configuration from a file" \ "Load configuration from a file" ;# <-- NOT TRANSLATED YET ##ID:002208## mcset $l "BIT" \ "BIT" ;# <-- NOT TRANSLATED YET ##ID:002209## mcset $l "PORT" \ "PORT" ;# <-- NOT TRANSLATED YET ##ID:002210## mcset $l "Note" \ "Note" ;# <-- NOT TRANSLATED YET ##ID:002211## mcset $l "Turn HW simulation on/off" \ "Turn HW simulation on/off" ;# <-- NOT TRANSLATED YET ##ID:002212## mcset $l "Configure" \ "Configure" ;# <-- NOT TRANSLATED YET ##ID:002213## mcset $l "LED matrix" \ "LED matrix" ;# <-- NOT TRANSLATED YET ##ID:002214## mcset $l "This tool consists of 64 LED's. Each of them can be connected to any port pin of the simulated uC. Connections with the uC are made with ComboBoxes. Panel configuration can be saved to a file with extension vhc, and can be loaded from that file later. Condition on which a LED lights up and LED colors are configurable. Also fade out interval is configurable.\n\n" \ "This tool consists of 64 LED's. Each of them can be connected to any port pin of the simulated uC. Connections with the uC are made with ComboBoxes. Panel configuration can be saved to a file with extension vhc, and can be loaded from that file later. Condition on which a LED lights up and LED colors are configurable. Also fade out interval is configurable.\n\n" ;# <-- NOT TRANSLATED YET ##ID:002215## mcset $l "LED states:" \ "LED states:" ;# <-- NOT TRANSLATED YET ##ID:002216## mcset $l "\n " \ "\n " ;# <-- NOT TRANSLATED YET ##ID:002217## mcset $l " Off\n " \ " Off\n " ;# <-- NOT TRANSLATED YET ##ID:002218## mcset $l " Fast blinking\n " \ " Fast blinking\n " ;# <-- NOT TRANSLATED YET ##ID:002219## mcset $l " Shining\n " \ " Shining\n " ;# <-- NOT TRANSLATED YET ##ID:002220## mcset $l " Fading out" \ " Fading out" ;# <-- NOT TRANSLATED YET } # leddisplay.tcl # ============================================================================== namespace eval LedDisplay { ##ID:002221## mcset $l "Common electrode" \ "Common electrode" ;# <-- NOT TRANSLATED YET ##ID:002222## mcset $l "Common anode" \ "Common anode" ;# <-- NOT TRANSLATED YET ##ID:002223## mcset $l "Common cathode" \ "Common cathode" ;# <-- NOT TRANSLATED YET ##ID:002224## mcset $l "Color" \ "Color" ;# <-- NOT TRANSLATED YET ##ID:002225## mcset $l "Red" \ "Red" ;# <-- NOT TRANSLATED YET ##ID:002226## mcset $l "Orange" \ "Orange" ;# <-- NOT TRANSLATED YET ##ID:002227## mcset $l "Yellow" \ "Yellow" ;# <-- NOT TRANSLATED YET ##ID:002228## mcset $l "Green" \ "Green" ;# <-- NOT TRANSLATED YET ##ID:002229## mcset $l "Blue" \ "Blue" ;# <-- NOT TRANSLATED YET ##ID:002230## mcset $l "Purple" \ "Purple" ;# <-- NOT TRANSLATED YET ##ID:002231## mcset $l "Show help" \ "Show help" ;# <-- NOT TRANSLATED YET ##ID:002232## mcset $l "Show brief help" \ "Show brief help" ;# <-- NOT TRANSLATED YET ##ID:002233## mcset $l "Save configuration" \ "Save configuration" ;# <-- NOT TRANSLATED YET ##ID:002234## mcset $l "Save configuration into a file" \ "Save configuration into a file" ;# <-- NOT TRANSLATED YET ##ID:002235## mcset $l "Load configuration" \ "Load configuration" ;# <-- NOT TRANSLATED YET ##ID:002236## mcset $l "Load configuration from a file" \ "Load configuration from a file" ;# <-- NOT TRANSLATED YET ##ID:002237## mcset $l "LED Display" \ "LED Display" ;# <-- NOT TRANSLATED YET ##ID:002238## mcset $l "BIT" \ "BIT" ;# <-- NOT TRANSLATED YET ##ID:002239## mcset $l "PORT" \ "PORT" ;# <-- NOT TRANSLATED YET ##ID:002240## mcset $l "Note" \ "Note" ;# <-- NOT TRANSLATED YET ##ID:002241## mcset $l "Turn HW simulation on/off" \ "Turn HW simulation on/off" ;# <-- NOT TRANSLATED YET ##ID:002242## mcset $l "Configure" \ "Configure" ;# <-- NOT TRANSLATED YET ##ID:002243## mcset $l "Virtual LED display with common anode (default) or cathode. Each segment can be connected to any port pin of the simulated uC. Connections with the uC are made with ComboBoxes on the bottom of the panel. Panel configuration can be saved to a file with extension vhc, and can be loaded from that file later.\n\n" \ "Virtual LED display with common anode (default) or cathode. Each segment can be connected to any port pin of the simulated uC. Connections with the uC are made with ComboBoxes on the bottom of the panel. Panel configuration can be saved to a file with extension vhc, and can be loaded from that file later.\n\n" ;# <-- NOT TRANSLATED YET ##ID:002244## mcset $l "LED states:" \ "LED states:" ;# <-- NOT TRANSLATED YET ##ID:002245## mcset $l "\n " \ "\n " ;# <-- NOT TRANSLATED YET ##ID:002246## mcset $l " Off\n " \ " Off\n " ;# <-- NOT TRANSLATED YET ##ID:002247## mcset $l " Fast blinking\n " \ " Fast blinking\n " ;# <-- NOT TRANSLATED YET ##ID:002248## mcset $l " Shining\n " \ " Shining\n " ;# <-- NOT TRANSLATED YET } # ledpanel.tcl # ============================================================================== namespace eval LedPanel { ##ID:002249## mcset $l "Color" \ "Color" ;# <-- NOT TRANSLATED YET ##ID:002250## mcset $l "Red" \ "Red" ;# <-- NOT TRANSLATED YET ##ID:002251## mcset $l "Orange" \ "Orange" ;# <-- NOT TRANSLATED YET ##ID:002252## mcset $l "Yellow" \ "Yellow" ;# <-- NOT TRANSLATED YET ##ID:002253## mcset $l "Green" \ "Green" ;# <-- NOT TRANSLATED YET ##ID:002254## mcset $l "Blue" \ "Blue" ;# <-- NOT TRANSLATED YET ##ID:002255## mcset $l "Purple" \ "Purple" ;# <-- NOT TRANSLATED YET ##ID:002256## mcset $l "Show help" \ "Show help" ;# <-- NOT TRANSLATED YET ##ID:002257## mcset $l "Show brief help" \ "Show brief help" ;# <-- NOT TRANSLATED YET ##ID:002258## mcset $l "Save configuration" \ "Save configuration" ;# <-- NOT TRANSLATED YET ##ID:002259## mcset $l "Save configuration into a file" \ "Save configuration into a file" ;# <-- NOT TRANSLATED YET ##ID:002260## mcset $l "Load configuration" \ "Load configuration" ;# <-- NOT TRANSLATED YET ##ID:002261## mcset $l "Load configuration from a file" \ "Load configuration from a file" ;# <-- NOT TRANSLATED YET ##ID:002262## mcset $l "LED panel" \ "LED panel" ;# <-- NOT TRANSLATED YET ##ID:002263## mcset $l "BIT" \ "BIT" ;# <-- NOT TRANSLATED YET ##ID:002264## mcset $l "PORT" \ "PORT" ;# <-- NOT TRANSLATED YET ##ID:002265## mcset $l "Note" \ "Note" ;# <-- NOT TRANSLATED YET ##ID:002266## mcset $l "Turn HW simulation on/off" \ "Turn HW simulation on/off" ;# <-- NOT TRANSLATED YET ##ID:002267## mcset $l "Configure" \ "Configure" ;# <-- NOT TRANSLATED YET ##ID:002268## mcset $l "This tool consists of 8 LED's. Each of them can be connected to any port pin of the simulated uC. Connections with the uC are made with ComboBoxes on the bottom of the panel. Panel configuration can be saved to a file with extension vhc, and can be loaded from that file later. LED colors are configurable.\n\n" \ "This tool consists of 8 LED's. Each of them can be connected to any port pin of the simulated uC. Connections with the uC are made with ComboBoxes on the bottom of the panel. Panel configuration can be saved to a file with extension vhc, and can be loaded from that file later. LED colors are configurable.\n\n" ;# <-- NOT TRANSLATED YET ##ID:002269## mcset $l "LED states:" \ "LED states:" ;# <-- NOT TRANSLATED YET ##ID:002270## mcset $l "\n " \ "\n " ;# <-- NOT TRANSLATED YET ##ID:002271## mcset $l " Off\n " \ " Off\n " ;# <-- NOT TRANSLATED YET ##ID:002272## mcset $l " Fast blinking\n " \ " Fast blinking\n " ;# <-- NOT TRANSLATED YET ##ID:002273## mcset $l " Shining" \ " Shining" ;# <-- NOT TRANSLATED YET } # matrixkeypad.tcl # ============================================================================== namespace eval MatrixKeyPad { ##ID:002274## mcset $l "Radio buttons" \ "Radio buttons" ;# <-- NOT TRANSLATED YET ##ID:002275## mcset $l "Show help" \ "Show help" ;# <-- NOT TRANSLATED YET ##ID:002276## mcset $l "Show brief help" \ "Show brief help" ;# <-- NOT TRANSLATED YET ##ID:002277## mcset $l "Save configuration" \ "Save configuration" ;# <-- NOT TRANSLATED YET ##ID:002278## mcset $l "Save configuration into a file" \ "Save configuration into a file" ;# <-- NOT TRANSLATED YET ##ID:002279## mcset $l "Load configuration" \ "Load configuration" ;# <-- NOT TRANSLATED YET ##ID:002280## mcset $l "Load configuration from a file" \ "Load configuration from a file" ;# <-- NOT TRANSLATED YET ##ID:002281## mcset $l "Matrix Keypad" \ "Matrix Keypad" ;# <-- NOT TRANSLATED YET ##ID:002282## mcset $l "BIT" \ "BIT" ;# <-- NOT TRANSLATED YET ##ID:002283## mcset $l "PORT" \ "PORT" ;# <-- NOT TRANSLATED YET ##ID:002284## mcset $l "Note" \ "Note" ;# <-- NOT TRANSLATED YET ##ID:002285## mcset $l "Turn HW simulation on/off" \ "Turn HW simulation on/off" ;# <-- NOT TRANSLATED YET ##ID:002286## mcset $l "Configure" \ "Configure" ;# <-- NOT TRANSLATED YET ##ID:002287## mcset $l "This tool consists of 16 switches connected in matrix. Connections with the uC are made with ComboBoxes. Panel configuration can be saved to a file with extension vhc, and can be loaded from that file later. Wire colors are identical to colors used in graph representing IO ports.\n\n" \ "This tool consists of 16 switches connected in matrix. Connections with the uC are made with ComboBoxes. Panel configuration can be saved to a file with extension vhc, and can be loaded from that file later. Wire colors are identical to colors used in graph representing IO ports.\n\n" ;# <-- NOT TRANSLATED YET ##ID:002288## mcset $l "Keypad can be configured in two ways:" \ "Keypad can be configured in two ways:" ;# <-- NOT TRANSLATED YET ##ID:002289## mcset $l "\n " \ "\n " ;# <-- NOT TRANSLATED YET ##ID:002290## mcset $l "1)" \ "1)" ;# <-- NOT TRANSLATED YET ##ID:002291## mcset $l " To allow key combinations\n Menu -> Check \"Radio buttons\"\n " \ " To allow key combinations\n Menu -> Check \"Radio buttons\"\n " ;# <-- NOT TRANSLATED YET ##ID:002292## mcset $l "2)" \ "2)" ;# <-- NOT TRANSLATED YET ##ID:002293## mcset $l " To do not allow key combinations\n Menu -> Uncheck \"Radio buttons\"" \ " To do not allow key combinations\n Menu -> Uncheck \"Radio buttons\"" ;# <-- NOT TRANSLATED YET } # simplekeypad.tcl # ============================================================================== namespace eval SimpleKeyPad { ##ID:002294## mcset $l "Simple Keypad" \ "Simple Keypad" ;# <-- NOT TRANSLATED YET ##ID:002295## mcset $l "BIT" \ "BIT" ;# <-- NOT TRANSLATED YET ##ID:002296## mcset $l "PORT" \ "PORT" ;# <-- NOT TRANSLATED YET ##ID:002297## mcset $l "Note" \ "Note" ;# <-- NOT TRANSLATED YET ##ID:002298## mcset $l "Turn HW simulation on/off" \ "Turn HW simulation on/off" ;# <-- NOT TRANSLATED YET ##ID:002299## mcset $l "Configure" \ "Configure" ;# <-- NOT TRANSLATED YET ##ID:002300## mcset $l "Radio buttons" \ "Radio buttons" ;# <-- NOT TRANSLATED YET ##ID:002301## mcset $l "Show help" \ "Show help" ;# <-- NOT TRANSLATED YET ##ID:002302## mcset $l "Show brief help" \ "Show brief help" ;# <-- NOT TRANSLATED YET ##ID:002303## mcset $l "Save configuration" \ "Save configuration" ;# <-- NOT TRANSLATED YET ##ID:002304## mcset $l "Save configuration into a file" \ "Save configuration into a file" ;# <-- NOT TRANSLATED YET ##ID:002305## mcset $l "Load configuration" \ "Load configuration" ;# <-- NOT TRANSLATED YET ##ID:002306## mcset $l "Load configuration from a file" \ "Load configuration from a file" ;# <-- NOT TRANSLATED YET ##ID:002307## mcset $l "This tool consists of 8 switches. Each of them can connect any port pin of the simulated uC to ground. Connections with the uC are made with ComboBoxes on the bottom of the panel. Panel configuration can be saved to a file with extension vhc, and can be loaded from that file later. Wire colors are identical to colors used in graph representing IO ports.\n\n" \ "This tool consists of 8 switches. Each of them can connect any port pin of the simulated uC to ground. Connections with the uC are made with ComboBoxes on the bottom of the panel. Panel configuration can be saved to a file with extension vhc, and can be loaded from that file later. Wire colors are identical to colors used in graph representing IO ports.\n\n" ;# <-- NOT TRANSLATED YET ##ID:002308## mcset $l "Keypad can be configured in two ways:" \ "Keypad can be configured in two ways:" ;# <-- NOT TRANSLATED YET ##ID:002309## mcset $l "\n " \ "\n " ;# <-- NOT TRANSLATED YET ##ID:002310## mcset $l "1)" \ "1)" ;# <-- NOT TRANSLATED YET ##ID:002311## mcset $l " To allow key combinations\n Menu -> Check \"Radio buttons\"\n " \ " To allow key combinations\n Menu -> Check \"Radio buttons\"\n " ;# <-- NOT TRANSLATED YET ##ID:002312## mcset $l "2)" \ "2)" ;# <-- NOT TRANSLATED YET ##ID:002313## mcset $l " To do not allow key combinations\n Menu -> Uncheck \"Radio buttons\"" \ " To do not allow key combinations\n Menu -> Uncheck \"Radio buttons\"" ;# <-- NOT TRANSLATED YET } # multiplexedleddisplay.tcl # ============================================================================== namespace eval MultiplexedLedDisplay { ##ID:002314## mcset $l "Common electrode" \ "Common electrode" ;# <-- NOT TRANSLATED YET ##ID:002315## mcset $l "Common anode" \ "Common anode" ;# <-- NOT TRANSLATED YET ##ID:002316## mcset $l "Common cathode" \ "Common cathode" ;# <-- NOT TRANSLATED YET ##ID:002317## mcset $l "Fade out interval" \ "Fade out interval" ;# <-- NOT TRANSLATED YET ##ID:002318## mcset $l "Set LED dim interval to 0 instruction cycles" \ "Set LED dim interval to 0 instruction cycles" ;# <-- NOT TRANSLATED YET ##ID:002319## mcset $l "Set LED dim interval to 5 instruction cycles" \ "Set LED dim interval to 5 instruction cycles" ;# <-- NOT TRANSLATED YET ##ID:002320## mcset $l "Set LED dim interval to 10 instruction cycles" \ "Set LED dim interval to 10 instruction cycles" ;# <-- NOT TRANSLATED YET ##ID:002321## mcset $l "Set LED dim interval to 20 instruction cycles" \ "Set LED dim interval to 20 instruction cycles" ;# <-- NOT TRANSLATED YET ##ID:002322## mcset $l "Set LED dim interval to 50 instruction cycles" \ "Set LED dim interval to 50 instruction cycles" ;# <-- NOT TRANSLATED YET ##ID:002323## mcset $l "Set LED dim interval to 100 instruction cycles" \ "Set LED dim interval to 100 instruction cycles" ;# <-- NOT TRANSLATED YET ##ID:002324## mcset $l "Set LED dim interval to 200 instruction cycles" \ "Set LED dim interval to 200 instruction cycles" ;# <-- NOT TRANSLATED YET ##ID:002325## mcset $l "Set LED dim interval to 500 instruction cycles" \ "Set LED dim interval to 500 instruction cycles" ;# <-- NOT TRANSLATED YET ##ID:002326## mcset $l "Set LED dim interval to 1000 instruction cycles" \ "Set LED dim interval to 1000 instruction cycles" ;# <-- NOT TRANSLATED YET ##ID:002327## mcset $l "All fade out" \ "All fade out" ;# <-- NOT TRANSLATED YET ##ID:002328## mcset $l "Dim all LEDs" \ "Dim all LEDs" ;# <-- NOT TRANSLATED YET ##ID:002329## mcset $l "Color" \ "Color" ;# <-- NOT TRANSLATED YET ##ID:002330## mcset $l "Red" \ "Red" ;# <-- NOT TRANSLATED YET ##ID:002331## mcset $l "Orange" \ "Orange" ;# <-- NOT TRANSLATED YET ##ID:002332## mcset $l "Yellow" \ "Yellow" ;# <-- NOT TRANSLATED YET ##ID:002333## mcset $l "Green" \ "Green" ;# <-- NOT TRANSLATED YET ##ID:002334## mcset $l "Blue" \ "Blue" ;# <-- NOT TRANSLATED YET ##ID:002335## mcset $l "Purple" \ "Purple" ;# <-- NOT TRANSLATED YET ##ID:002336## mcset $l "Show help" \ "Show help" ;# <-- NOT TRANSLATED YET ##ID:002337## mcset $l "Show brief help" \ "Show brief help" ;# <-- NOT TRANSLATED YET ##ID:002338## mcset $l "Save configuration" \ "Save configuration" ;# <-- NOT TRANSLATED YET ##ID:002339## mcset $l "Save configuration into a file" \ "Save configuration into a file" ;# <-- NOT TRANSLATED YET ##ID:002340## mcset $l "Load configuration" \ "Load configuration" ;# <-- NOT TRANSLATED YET ##ID:002341## mcset $l "Load configuration from a file" \ "Load configuration from a file" ;# <-- NOT TRANSLATED YET ##ID:002342## mcset $l "Multiplexed LED display" \ "Multiplexed LED display" ;# <-- NOT TRANSLATED YET ##ID:002343## mcset $l "BIT" \ "BIT" ;# <-- NOT TRANSLATED YET ##ID:002344## mcset $l "PORT" \ "PORT" ;# <-- NOT TRANSLATED YET ##ID:002345## mcset $l "Note" \ "Note" ;# <-- NOT TRANSLATED YET ##ID:002346## mcset $l "Turn HW simulation on/off" \ "Turn HW simulation on/off" ;# <-- NOT TRANSLATED YET ##ID:002347## mcset $l "Configure" \ "Configure" ;# <-- NOT TRANSLATED YET ##ID:002348## mcset $l "Virtual Multiplexed LED Display with common anode (default) or cathode. Each segment can be connected to any port pin of the simulated uC. Connections with the uC are made with ComboBoxes. Panel configuration can be saved to a file with extension vhc, and can be loaded from that file later. LED fade out interval and LED colors are configurable.\n\n" \ "Virtual Multiplexed LED Display with common anode (default) or cathode. Each segment can be connected to any port pin of the simulated uC. Connections with the uC are made with ComboBoxes. Panel configuration can be saved to a file with extension vhc, and can be loaded from that file later. LED fade out interval and LED colors are configurable.\n\n" ;# <-- NOT TRANSLATED YET ##ID:002349## mcset $l "LED states:" \ "LED states:" ;# <-- NOT TRANSLATED YET ##ID:002350## mcset $l "\n " \ "\n " ;# <-- NOT TRANSLATED YET ##ID:002351## mcset $l " Off\n " \ " Off\n " ;# <-- NOT TRANSLATED YET ##ID:002352## mcset $l " Fast blinking\n " \ " Fast blinking\n " ;# <-- NOT TRANSLATED YET ##ID:002353## mcset $l " Shining\n " \ " Shining\n " ;# <-- NOT TRANSLATED YET ##ID:002354## mcset $l " Fading out\n " \ " Fading out\n " ;# <-- NOT TRANSLATED YET } # virtual_hw_component.tcl # ============================================================================== namespace eval VirtualHWComponent { ##ID:002355## mcset $l "Component modified" \ "Component modified" ;# <-- NOT TRANSLATED YET ##ID:002356## mcset $l "Do you want to save the configuration of this panel before closing?" \ "Do you want to save the configuration of this panel before closing?" ;# <-- NOT TRANSLATED YET ##ID:002357## mcset $l "Save configuration" \ "Save configuration" ;# <-- NOT TRANSLATED YET ##ID:002358## mcset $l "Load configuration" \ "Load configuration" ;# <-- NOT TRANSLATED YET ##ID:002359## mcset $l "Overwrite file" \ "Overwrite file" ;# <-- NOT TRANSLATED YET ##ID:002360## mcset $l "A file with name '%s' already exists. Do you want to overwrite it ?" \ "A file with name '%s' already exists. Do you want to overwrite it ?" ;# <-- NOT TRANSLATED YET ##ID:002361## mcset $l "IO Error" \ "IO Error" ;# <-- NOT TRANSLATED YET ##ID:002362## mcset $l "Unable to write to file:\n\"%s\"" \ "Unable to write to file:\n\"%s\"" ;# <-- NOT TRANSLATED YET ##ID:002363## mcset $l "Unable to read file:\n\"%s\"" \ "Unable to read file:\n\"%s\"" ;# <-- NOT TRANSLATED YET ##ID:002364## mcset $l "Unable to read configuration from file:\n\"%s\"" \ "Unable to read configuration from file:\n\"%s\"" ;# <-- NOT TRANSLATED YET ##ID:002365## mcset $l "File corrupted" \ "File corrupted" ;# <-- NOT TRANSLATED YET ##ID:002366## mcset $l "Close" \ "Close" ;# <-- NOT TRANSLATED YET ##ID:002367## mcset $l "Wire colors:" \ "Wire colors:" ;# <-- NOT TRANSLATED YET ##ID:002368## mcset $l "ON" \ "ON" ;# <-- NOT TRANSLATED YET ##ID:002369## mcset $l "OFF" \ "OFF" ;# <-- NOT TRANSLATED YET ##ID:002370## mcset $l "VH component" \ "VH component" ;# <-- NOT TRANSLATED YET } # hwmanager.tcl # ============================================================================== namespace eval HwManager { ##ID:002371## mcset $l "HW:" \ "HW:" ;# <-- NOT TRANSLATED YET ##ID:002372## mcset $l "available/installed plugins" \ "available/installed plugins" ;# <-- NOT TRANSLATED YET ##ID:002373## mcset $l "List available or installed HW plugins" \ "List available or installed HW plugins" ;# <-- NOT TRANSLATED YET ##ID:002374## mcset $l "Refresh list available or installed HW plugins" \ "Refresh list available or installed HW plugins" ;# <-- NOT TRANSLATED YET ##ID:002375## mcset $l "Refresh" \ "Refresh" ;# <-- NOT TRANSLATED YET ##ID:002376## mcset $l "Too old version" \ "Too old version" ;# <-- NOT TRANSLATED YET ##ID:002377## mcset $l "Plugin %s requires MCU 8051 IDE version %s and above, please upgrade your MCU 8051 IDE" \ "Plugin %s requires MCU 8051 IDE version %s and above, please upgrade your MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:002378## mcset $l "PLUGIN ERROR" \ "PLUGIN ERROR" ;# <-- NOT TRANSLATED YET ##ID:002379## mcset $l "Close" \ "Close" ;# <-- NOT TRANSLATED YET ##ID:002380## mcset $l "Plugin name:\t%s\n" \ "Plugin name:\t%s\n" ;# <-- NOT TRANSLATED YET ##ID:002381## mcset $l "Plugin version:\t%s\n" \ "Plugin version:\t%s\n" ;# <-- NOT TRANSLATED YET ##ID:002382## mcset $l "Author:\t\t%s <%s>\n" \ "Author:\t\t%s <%s>\n" ;# <-- NOT TRANSLATED YET ##ID:002383## mcset $l "PLUGIN ERROR - MCU 8051 IDE" \ "PLUGIN ERROR - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:002384## mcset $l "Hardware is busy" \ "Hardware is busy" ;# <-- NOT TRANSLATED YET ##ID:002385## mcset $l "Plugin \"%s\" is busy.\nDo you really want to close the program ?" \ "Plugin \"%s\" is busy.\nDo you really want to close the program ?" ;# <-- NOT TRANSLATED YET } # graph.tcl # ============================================================================== namespace eval Graph { ##ID:002386## mcset $l "ON" \ "ON" ;# <-- NOT TRANSLATED YET ##ID:002387## mcset $l "OFF" \ "OFF" ;# <-- NOT TRANSLATED YET ##ID:002388## mcset $l "True state" \ "True state" ;# <-- NOT TRANSLATED YET ##ID:002389## mcset $l "Port latches" \ "Port latches" ;# <-- NOT TRANSLATED YET ##ID:002390## mcset $l "True output" \ "True output" ;# <-- NOT TRANSLATED YET ##ID:002391## mcset $l "Legend" \ "Legend" ;# <-- NOT TRANSLATED YET ##ID:002392## mcset $l "Turn graph on/off" \ "Turn graph on/off" ;# <-- NOT TRANSLATED YET ##ID:002393## mcset $l "Enable/Disable graph" \ "Enable/Disable graph" ;# <-- NOT TRANSLATED YET ##ID:002394## mcset $l "Change grid" \ "Change grid" ;# <-- NOT TRANSLATED YET ##ID:002395## mcset $l "Change grid morphology" \ "Change grid morphology" ;# <-- NOT TRANSLATED YET ##ID:002396## mcset $l "Change bit length on X axis to a lower value" \ "Change bit length on X axis to a lower value" ;# <-- NOT TRANSLATED YET ##ID:002397## mcset $l "Zoom in (X axis)" \ "Zoom in (X axis)" ;# <-- NOT TRANSLATED YET ##ID:002398## mcset $l "Change bit length on X axis to a higher value" \ "Change bit length on X axis to a higher value" ;# <-- NOT TRANSLATED YET ##ID:002399## mcset $l "Zoom out (X axis)" \ "Zoom out (X axis)" ;# <-- NOT TRANSLATED YET ##ID:002400## mcset $l "Clear user marks" \ "Clear user marks" ;# <-- NOT TRANSLATED YET ##ID:002401## mcset $l "Clear marks" \ "Clear marks" ;# <-- NOT TRANSLATED YET ##ID:002402## mcset $l "-- click to close --" \ "-- click to close --" ;# <-- NOT TRANSLATED YET ##ID:002403## mcset $l "Log. 1 forced to log. 0" \ "Log. 1 forced to log. 0" ;# <-- NOT TRANSLATED YET ##ID:002404## mcset $l "Not connected" \ "Not connected" ;# <-- NOT TRANSLATED YET ##ID:002405## mcset $l "Access to external memory" \ "Access to external memory" ;# <-- NOT TRANSLATED YET ##ID:002406## mcset $l "Indeterminable state" \ "Indeterminable state" ;# <-- NOT TRANSLATED YET ##ID:002407## mcset $l "No voltage" \ "No voltage" ;# <-- NOT TRANSLATED YET ##ID:002408## mcset $l "Log. 1" \ "Log. 1" ;# <-- NOT TRANSLATED YET ##ID:002409## mcset $l "Log. 0" \ "Log. 0" ;# <-- NOT TRANSLATED YET } # graphwidget.tcl # ============================================================================== namespace eval GraphWidget { ##ID:002410## mcset $l "ON/OFF" \ "ON/OFF" ;# <-- NOT TRANSLATED YET ##ID:002411## mcset $l "Enable/Disable graph" \ "Enable/Disable graph" ;# <-- NOT TRANSLATED YET ##ID:002412## mcset $l "Change grid" \ "Change grid" ;# <-- NOT TRANSLATED YET ##ID:002413## mcset $l "Change grid morphology" \ "Change grid morphology" ;# <-- NOT TRANSLATED YET ##ID:002414## mcset $l "Zoom in" \ "Zoom in" ;# <-- NOT TRANSLATED YET ##ID:002415## mcset $l "Change bit length on X axis to a lower value" \ "Change bit length on X axis to a lower value" ;# <-- NOT TRANSLATED YET ##ID:002416## mcset $l "Zoom out" \ "Zoom out" ;# <-- NOT TRANSLATED YET ##ID:002417## mcset $l "Change bit length on X axis to a higher value" \ "Change bit length on X axis to a higher value" ;# <-- NOT TRANSLATED YET ##ID:002418## mcset $l "Remove marks" \ "Remove marks" ;# <-- NOT TRANSLATED YET ##ID:002419## mcset $l "Clear user marks" \ "Clear user marks" ;# <-- NOT TRANSLATED YET ##ID:002420## mcset $l "Performance warning" \ "Performance warning" ;# <-- NOT TRANSLATED YET ##ID:002421## mcset $l "You have just enabled simulation of external devices. Having this feature enabled causes serious reduction of simulator performance, the number of instructions executed per second in real time usually decreases by a factor of hundreds, maybe even thousands." \ "You have just enabled simulation of external devices. Having this feature enabled causes serious reduction of simulator performance, the number of instructions executed per second in real time usually decreases by a factor of hundreds, maybe even thousands." ;# <-- NOT TRANSLATED YET ##ID:004480## mcset $l "Do not display again" \ "Do not display again" ;# <-- NOT TRANSLATED YET } # hexeditdlg.tcl # ============================================================================== namespace eval HexEditDlg { ##ID:002422## mcset $l "LJMP this_address" \ "LJMP this_address" ;# <-- NOT TRANSLATED YET ##ID:002423## mcset $l "LCALL this_address" \ "LCALL this_address" ;# <-- NOT TRANSLATED YET ##ID:002424## mcset $l "Code memory" \ "Code memory" ;# <-- NOT TRANSLATED YET ##ID:002425## mcset $l "Expanded RAM" \ "Expanded RAM" ;# <-- NOT TRANSLATED YET ##ID:002426## mcset $l "Data EEPROM" \ "Data EEPROM" ;# <-- NOT TRANSLATED YET ##ID:002427## mcset $l "XDATA memory" \ "XDATA memory" ;# <-- NOT TRANSLATED YET ##ID:002428## mcset $l "untitled" \ "untitled" ;# <-- NOT TRANSLATED YET ##ID:002429## mcset $l "Hexadecimal editor" \ "Hexadecimal editor" ;# <-- NOT TRANSLATED YET ##ID:002430## mcset $l "Load IHEX8 file" \ "Load IHEX8 file" ;# <-- NOT TRANSLATED YET ##ID:002431## mcset $l "Open file" \ "Open file" ;# <-- NOT TRANSLATED YET ##ID:002432## mcset $l "Save current data to IHEX8 file" \ "Save current data to IHEX8 file" ;# <-- NOT TRANSLATED YET ##ID:002433## mcset $l "Save file" \ "Save file" ;# <-- NOT TRANSLATED YET ##ID:002434## mcset $l "Save current data to IHEX8 file under a different name" \ "Save current data to IHEX8 file under a different name" ;# <-- NOT TRANSLATED YET ##ID:002435## mcset $l "Save as" \ "Save as" ;# <-- NOT TRANSLATED YET ##ID:002436## mcset $l "Reload data from simulator" \ "Reload data from simulator" ;# <-- NOT TRANSLATED YET ##ID:002437## mcset $l "Reload" \ "Reload" ;# <-- NOT TRANSLATED YET ##ID:002438## mcset $l "Exit editor" \ "Exit editor" ;# <-- NOT TRANSLATED YET ##ID:002439## mcset $l "Exit" \ "Exit" ;# <-- NOT TRANSLATED YET ##ID:002440## mcset $l "Current view mode" \ "Current view mode" ;# <-- NOT TRANSLATED YET ##ID:002441## mcset $l "View mode" \ "View mode" ;# <-- NOT TRANSLATED YET ##ID:002442## mcset $l "VALUE" \ "VALUE" ;# <-- NOT TRANSLATED YET ##ID:002443## mcset $l "ADDRESS" \ "ADDRESS" ;# <-- NOT TRANSLATED YET ##ID:002444## mcset $l "DEC: " \ "DEC: " ;# <-- NOT TRANSLATED YET ##ID:002445## mcset $l "OCT: " \ "OCT: " ;# <-- NOT TRANSLATED YET ##ID:002446## mcset $l "HEX: " \ "HEX: " ;# <-- NOT TRANSLATED YET ##ID:002447## mcset $l "BIN: " \ "BIN: " ;# <-- NOT TRANSLATED YET ##ID:002448## mcset $l "LJMP" \ "LJMP" ;# <-- NOT TRANSLATED YET ##ID:002449## mcset $l "Perform program jump" \ "Perform program jump" ;# <-- NOT TRANSLATED YET ##ID:002450## mcset $l "Program jump" \ "Program jump" ;# <-- NOT TRANSLATED YET ##ID:002451## mcset $l "LCALL" \ "LCALL" ;# <-- NOT TRANSLATED YET ##ID:002452## mcset $l "Perform subprogram call" \ "Perform subprogram call" ;# <-- NOT TRANSLATED YET ##ID:002453## mcset $l "Subprogram call" \ "Subprogram call" ;# <-- NOT TRANSLATED YET ##ID:002454## mcset $l "Cursor:" \ "Cursor:" ;# <-- NOT TRANSLATED YET ##ID:002455## mcset $l "Address of entry under mouse cursor" \ "Address of entry under mouse cursor" ;# <-- NOT TRANSLATED YET ##ID:002456## mcset $l "Line\t%s:\tInvalid characters\n" \ "Line\t%s:\tInvalid characters\n" ;# <-- NOT TRANSLATED YET ##ID:002457## mcset $l "Line\t%s:\tInvalid chceksum\n" \ "Line\t%s:\tInvalid chceksum\n" ;# <-- NOT TRANSLATED YET ##ID:002458## mcset $l "Line\t%s:\tInvalid length\n" \ "Line\t%s:\tInvalid length\n" ;# <-- NOT TRANSLATED YET ##ID:002459## mcset $l "Line\t%s:\tUnknown record type: '%s'\n" \ "Line\t%s:\tUnknown record type: '%s'\n" ;# <-- NOT TRANSLATED YET ##ID:002460## mcset $l "Line\t%s:\tMissing EOF" \ "Line\t%s:\tMissing EOF" ;# <-- NOT TRANSLATED YET ##ID:002461## mcset $l "Close" \ "Close" ;# <-- NOT TRANSLATED YET ##ID:002462## mcset $l "Error(s) occurred while parsing IHEX file" \ "Error(s) occurred while parsing IHEX file" ;# <-- NOT TRANSLATED YET ##ID:002463## mcset $l "File modified" \ "File modified" ;# <-- NOT TRANSLATED YET ##ID:002464## mcset $l "File %s has been modifed.\nDo you want to save it ?" \ "File %s has been modifed.\nDo you want to save it ?" ;# <-- NOT TRANSLATED YET ##ID:004536## mcset $l "Content of the hex editor has been changed.\nDo you really want to reload without saving it?" \ "Content of the hex editor has been changed.\nDo you really want to reload without saving it?" ;# <-- NOT TRANSLATED YET ##ID:002465## mcset $l "Save file - MCU 8051 IDE" \ "Save file - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:002466## mcset $l "Open file - MCU 8051 IDE" \ "Open file - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:002467## mcset $l "Permission denied" \ "Permission denied" ;# <-- NOT TRANSLATED YET ##ID:002468## mcset $l "Unable to open file:\n%s" \ "Unable to open file:\n%s" ;# <-- NOT TRANSLATED YET ##ID:002469## mcset $l "Unable to access file: %s" \ "Unable to access file: %s" ;# <-- NOT TRANSLATED YET ##ID:002470## mcset $l "Overwrite file" \ "Overwrite file" ;# <-- NOT TRANSLATED YET ##ID:002471## mcset $l "A file name '%s' already exists. Are you sure you want to overwrite it ?" \ "A file name '%s' already exists. Are you sure you want to overwrite it ?" ;# <-- NOT TRANSLATED YET ##ID:002472## mcset $l "Saving file" \ "Saving file" ;# <-- NOT TRANSLATED YET ##ID:002473## mcset $l "Abort" \ "Abort" ;# <-- NOT TRANSLATED YET ##ID:002474## mcset $l "File %s saved" \ "File %s saved" ;# <-- NOT TRANSLATED YET ##ID:002475## mcset $l "Load IHEX8 file into editor and simulator XDATA memory" \ "Load IHEX8 file into editor and simulator XDATA memory" ;# <-- NOT TRANSLATED YET ##ID:002476## mcset $l "Save current content of XDATA memory to IHEX8 file" \ "Save current content of XDATA memory to IHEX8 file" ;# <-- NOT TRANSLATED YET ##ID:002477## mcset $l "Save current document under a different name" \ "Save current document under a different name" ;# <-- NOT TRANSLATED YET ##ID:002478## mcset $l "Reload data from simulator XDATA memory" \ "Reload data from simulator XDATA memory" ;# <-- NOT TRANSLATED YET ##ID:002479## mcset $l "Copy selected text to clipboard" \ "Copy selected text to clipboard" ;# <-- NOT TRANSLATED YET ##ID:002480## mcset $l "Paste clipboard contents" \ "Paste clipboard contents" ;# <-- NOT TRANSLATED YET ##ID:002481## mcset $l "Invoke dialog for searching strings in the text" \ "Invoke dialog for searching strings in the text" ;# <-- NOT TRANSLATED YET ##ID:002482## mcset $l "Find next occurrence of the search string" \ "Find next occurrence of the search string" ;# <-- NOT TRANSLATED YET ##ID:002483## mcset $l "Find previous occurrence of the search string" \ "Find previous occurrence of the search string" ;# <-- NOT TRANSLATED YET ##ID:002484## mcset $l "Switch view mode to hexadecimal" \ "Switch view mode to hexadecimal" ;# <-- NOT TRANSLATED YET ##ID:002485## mcset $l "Switch view mode to decimal" \ "Switch view mode to decimal" ;# <-- NOT TRANSLATED YET ##ID:002486## mcset $l "Switch view mode to octal" \ "Switch view mode to octal" ;# <-- NOT TRANSLATED YET ##ID:002487## mcset $l "Save current content of program (CODE) memory to IHEX8 file" \ "Save current content of program (CODE) memory to IHEX8 file" ;# <-- NOT TRANSLATED YET ##ID:002488## mcset $l "Save" \ "Save" ;# <-- NOT TRANSLATED YET ##ID:002489## mcset $l "Open ADF" \ "Open ADF" ;# <-- NOT TRANSLATED YET ##ID:002490## mcset $l "Open IHEX8" \ "Open IHEX8" ;# <-- NOT TRANSLATED YET ##ID:002491## mcset $l "Copy" \ "Copy" ;# <-- NOT TRANSLATED YET ##ID:002492## mcset $l "Paste" \ "Paste" ;# <-- NOT TRANSLATED YET ##ID:002493## mcset $l "Find" \ "Find" ;# <-- NOT TRANSLATED YET ##ID:002494## mcset $l "Find next" \ "Find next" ;# <-- NOT TRANSLATED YET ##ID:002495## mcset $l "Find previous" \ "Find previous" ;# <-- NOT TRANSLATED YET ##ID:002496## mcset $l "HEX" \ "HEX" ;# <-- NOT TRANSLATED YET ##ID:002497## mcset $l "DEC" \ "DEC" ;# <-- NOT TRANSLATED YET ##ID:002498## mcset $l "OCT" \ "OCT" ;# <-- NOT TRANSLATED YET ##ID:002499## mcset $l "File" \ "File" ;# <-- NOT TRANSLATED YET ##ID:002500## mcset $l "Edit" \ "Edit" ;# <-- NOT TRANSLATED YET ##ID:002501## mcset $l "Mode" \ "Mode" ;# <-- NOT TRANSLATED YET ##ID:002502## mcset $l "Intel 8 HEX" \ "Intel 8 HEX" ;# <-- NOT TRANSLATED YET ##ID:002503## mcset $l "Simulator file" \ "Simulator file" ;# <-- NOT TRANSLATED YET } # todo.tcl # ============================================================================== namespace eval Todo { ##ID:002504## mcset $l "Undo" \ "Undo" ;# <-- NOT TRANSLATED YET ##ID:002505## mcset $l "Undo last operation" \ "Undo last operation" ;# <-- NOT TRANSLATED YET ##ID:002506## mcset $l "Redo" \ "Redo" ;# <-- NOT TRANSLATED YET ##ID:002507## mcset $l "Take back last undo operation" \ "Take back last undo operation" ;# <-- NOT TRANSLATED YET ##ID:002508## mcset $l "Cut" \ "Cut" ;# <-- NOT TRANSLATED YET ##ID:002509## mcset $l "Copy" \ "Copy" ;# <-- NOT TRANSLATED YET ##ID:002510## mcset $l "Paste" \ "Paste" ;# <-- NOT TRANSLATED YET ##ID:002511## mcset $l "Clear" \ "Clear" ;# <-- NOT TRANSLATED YET ##ID:002512## mcset $l "Select all" \ "Select all" ;# <-- NOT TRANSLATED YET ##ID:002513## mcset $l "Find" \ "Find" ;# <-- NOT TRANSLATED YET ##ID:002514## mcset $l "Find next" \ "Find next" ;# <-- NOT TRANSLATED YET ##ID:002515## mcset $l "Find previous" \ "Find previous" ;# <-- NOT TRANSLATED YET ##ID:002516## mcset $l "Bold text" \ "Bold text" ;# <-- NOT TRANSLATED YET ##ID:002517## mcset $l "Use bold font" \ "Use bold font" ;# <-- NOT TRANSLATED YET ##ID:002518## mcset $l "Italic text" \ "Italic text" ;# <-- NOT TRANSLATED YET ##ID:002519## mcset $l "Use italic font" \ "Use italic font" ;# <-- NOT TRANSLATED YET ##ID:002520## mcset $l "Strikethrough font" \ "Strikethrough font" ;# <-- NOT TRANSLATED YET ##ID:002521## mcset $l "Strikethrough text" \ "Strikethrough text" ;# <-- NOT TRANSLATED YET ##ID:002522## mcset $l "Use strikethrough font" \ "Use strikethrough font" ;# <-- NOT TRANSLATED YET ##ID:002523## mcset $l "Underline text" \ "Underline text" ;# <-- NOT TRANSLATED YET ##ID:002524## mcset $l "Use underline font" \ "Use underline font" ;# <-- NOT TRANSLATED YET ##ID:002525## mcset $l "Erase tags" \ "Erase tags" ;# <-- NOT TRANSLATED YET ##ID:002526## mcset $l "Clear rich text tags" \ "Clear rich text tags" ;# <-- NOT TRANSLATED YET ##ID:002527## mcset $l "Insert OK image" \ "Insert OK image" ;# <-- NOT TRANSLATED YET ##ID:002528## mcset $l "Insert image \"Ok\"" \ "Insert image \"Ok\"" ;# <-- NOT TRANSLATED YET ##ID:002529## mcset $l "Notes for file:" \ "Notes for file:" ;# <-- NOT TRANSLATED YET ##ID:002530## mcset $l "Find next occurrence of search string" \ "Find next occurrence of search string" ;# <-- NOT TRANSLATED YET ##ID:002531## mcset $l "Find previous occurrence of search string" \ "Find previous occurrence of search string" ;# <-- NOT TRANSLATED YET ##ID:002532## mcset $l "Hide search bar" \ "Hide search bar" ;# <-- NOT TRANSLATED YET ##ID:002533## mcset $l "Find:" \ "Find:" ;# <-- NOT TRANSLATED YET ##ID:002534## mcset $l "Match case" \ "Match case" ;# <-- NOT TRANSLATED YET ##ID:002535## mcset $l "Bold font" \ "Bold font" ;# <-- NOT TRANSLATED YET ##ID:002536## mcset $l "Striketrought font" \ "Striketrought font" ;# <-- NOT TRANSLATED YET ##ID:002537## mcset $l "Underline font" \ "Underline font" ;# <-- NOT TRANSLATED YET ##ID:002538## mcset $l "Erase text tags" \ "Erase text tags" ;# <-- NOT TRANSLATED YET ##ID:002539## mcset $l "Remove formatting tags within selected area" \ "Remove formatting tags within selected area" ;# <-- NOT TRANSLATED YET ##ID:002540## mcset $l "Insert \"Ok\" image at the current cursor position" \ "Insert \"Ok\" image at the current cursor position" ;# <-- NOT TRANSLATED YET } # subprograms.tcl # ============================================================================== namespace eval SubPrograms { ##ID:002541## mcset $l "Go to source line" \ "Go to source line" ;# <-- NOT TRANSLATED YET ##ID:002542## mcset $l "Navigate code editor to the line from which this subprogram was invoked" \ "Navigate code editor to the line from which this subprogram was invoked" ;# <-- NOT TRANSLATED YET ##ID:002543## mcset $l "Go to target line" \ "Go to target line" ;# <-- NOT TRANSLATED YET ##ID:002544## mcset $l "Navigate code editor to the line from where this subprogram resides" \ "Navigate code editor to the line from where this subprogram resides" ;# <-- NOT TRANSLATED YET ##ID:002545## mcset $l "Copy source address to clipboard" \ "Copy source address to clipboard" ;# <-- NOT TRANSLATED YET ##ID:002546## mcset $l "Copy return address to clipboard (hexadecimal representation)" \ "Copy return address to clipboard (hexadecimal representation)" ;# <-- NOT TRANSLATED YET ##ID:002547## mcset $l "Copy target address to clipboard" \ "Copy target address to clipboard" ;# <-- NOT TRANSLATED YET ##ID:002548## mcset $l "Copy address where this subprogram begins to the clipboard" \ "Copy address where this subprogram begins to the clipboard" ;# <-- NOT TRANSLATED YET ##ID:002549## mcset $l "Remove this" \ "Remove this" ;# <-- NOT TRANSLATED YET ##ID:002550## mcset $l "Remove this entry" \ "Remove this entry" ;# <-- NOT TRANSLATED YET ##ID:002551## mcset $l "Enable" \ "Enable" ;# <-- NOT TRANSLATED YET ##ID:002552## mcset $l "Include interrupts" \ "Include interrupts" ;# <-- NOT TRANSLATED YET ##ID:002553## mcset $l "RETURN" \ "RETURN" ;# <-- NOT TRANSLATED YET ##ID:002554## mcset $l "Clear" \ "Clear" ;# <-- NOT TRANSLATED YET ##ID:002555## mcset $l "Save" \ "Save" ;# <-- NOT TRANSLATED YET ##ID:002556## mcset $l "TOTAL: " \ "TOTAL: " ;# <-- NOT TRANSLATED YET ##ID:002557## mcset $l "Line not found" \ "Line not found" ;# <-- NOT TRANSLATED YET ##ID:002558## mcset $l "There is no matching line in the source code" \ "There is no matching line in the source code" ;# <-- NOT TRANSLATED YET ##ID:002559## mcset $l " Return address:\t" \ " Return address:\t" ;# <-- NOT TRANSLATED YET ##ID:002560## mcset $l "Save file - MCU 8051 IDE" \ "Save file - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:002561## mcset $l "A file name '%s' already exists. Are you sure you want to overwrite it ?" \ "A file name '%s' already exists. Are you sure you want to overwrite it ?" ;# <-- NOT TRANSLATED YET ##ID:002562## mcset $l "Overwrite file" \ "Overwrite file" ;# <-- NOT TRANSLATED YET ##ID:002563## mcset $l "Unable to write to file:\n\"%s\"" \ "Unable to write to file:\n\"%s\"" ;# <-- NOT TRANSLATED YET ##ID:002564## mcset $l "Permission denied" \ "Permission denied" ;# <-- NOT TRANSLATED YET ##ID:002565## mcset $l "Plain text" \ "Plain text" ;# <-- NOT TRANSLATED YET } # stopwatch.tcl # ============================================================================== namespace eval Stopwatch { ##ID:002566## mcset $l "Micro seconds" \ "Micro seconds" ;# <-- NOT TRANSLATED YET ##ID:002567## mcset $l "Clock cycles" \ "Clock cycles" ;# <-- NOT TRANSLATED YET ##ID:002568## mcset $l "Instruction cycles" \ "Instruction cycles" ;# <-- NOT TRANSLATED YET ##ID:002569## mcset $l "Instructions passed" \ "Instructions passed" ;# <-- NOT TRANSLATED YET ##ID:002570## mcset $l "Program bytes" \ "Program bytes" ;# <-- NOT TRANSLATED YET ##ID:002571## mcset $l "Interrupts" \ "Interrupts" ;# <-- NOT TRANSLATED YET ##ID:002572## mcset $l "Subprogram calls" \ "Subprogram calls" ;# <-- NOT TRANSLATED YET ##ID:002573## mcset $l "RET" \ "RET" ;# <-- NOT TRANSLATED YET ##ID:002574## mcset $l "RETI" \ "RETI" ;# <-- NOT TRANSLATED YET ##ID:002575## mcset $l "Breakpoints" \ "Breakpoints" ;# <-- NOT TRANSLATED YET ##ID:002576## mcset $l "Stopwatch" \ "Stopwatch" ;# <-- NOT TRANSLATED YET ##ID:002577## mcset $l "Stop" \ "Stop" ;# <-- NOT TRANSLATED YET ##ID:002578## mcset $l "Start" \ "Start" ;# <-- NOT TRANSLATED YET ##ID:002579## mcset $l "Save as plain text" \ "Save as plain text" ;# <-- NOT TRANSLATED YET ##ID:002580## mcset $l "Save as XHTML" \ "Save as XHTML" ;# <-- NOT TRANSLATED YET ##ID:002581## mcset $l "Close window" \ "Close window" ;# <-- NOT TRANSLATED YET ##ID:002582## mcset $l "Current" \ "Current" ;# <-- NOT TRANSLATED YET ##ID:002583## mcset $l "Project:" \ "Project:" ;# <-- NOT TRANSLATED YET ##ID:002584## mcset $l "Date:" \ "Date:" ;# <-- NOT TRANSLATED YET ##ID:002585## mcset $l "Generated by %s" \ "Generated by %s" ;# <-- NOT TRANSLATED YET ##ID:002586## mcset $l "Clear all" \ "Clear all" ;# <-- NOT TRANSLATED YET ##ID:002587## mcset $l "Stop after" \ "Stop after" ;# <-- NOT TRANSLATED YET ##ID:002588## mcset $l "Overall" \ "Overall" ;# <-- NOT TRANSLATED YET ##ID:002589## mcset $l "Clear entrybox" \ "Clear entrybox" ;# <-- NOT TRANSLATED YET ##ID:002590## mcset $l "Clear" \ "Clear" ;# <-- NOT TRANSLATED YET ##ID:002591## mcset $l "Stop simulation" \ "Stop simulation" ;# <-- NOT TRANSLATED YET ##ID:002592## mcset $l "Save stopwatch state - MCU 8051 IDE" \ "Save stopwatch state - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:002593## mcset $l "Overwrite file" \ "Overwrite file" ;# <-- NOT TRANSLATED YET ##ID:002594## mcset $l "A file name '%s' already exists. Are you sure you want to overwrite it ?" \ "A file name '%s' already exists. Are you sure you want to overwrite it ?" ;# <-- NOT TRANSLATED YET ##ID:002595## mcset $l "Permission denied" \ "Permission denied" ;# <-- NOT TRANSLATED YET ##ID:002596## mcset $l "Unable to open file:\n'%s'" \ "Unable to open file:\n'%s'" ;# <-- NOT TRANSLATED YET } # simulator_engine.tcl # ============================================================================== namespace eval Simulator_ENGINE { ##ID:002597## mcset $l "Interrupt at vector 0x%s " \ "Interrupt at vector 0x%s " ;# <-- NOT TRANSLATED YET ##ID:002598## mcset $l "No instruction found at 0x%s" \ "No instruction found at 0x%s" ;# <-- NOT TRANSLATED YET ##ID:002599## mcset $l "Breakpoint reached at 0x%s" \ "Breakpoint reached at 0x%s" ;# <-- NOT TRANSLATED YET ##ID:002600## mcset $l "Out of memory" \ "Out of memory" ;# <-- NOT TRANSLATED YET ##ID:002601## mcset $l "%s has not enough program memory to load this program. Simulator will work but the loaded code is incomplete" \ "%s has not enough program memory to load this program. Simulator will work but the loaded code is incomplete" ;# <-- NOT TRANSLATED YET ##ID:002602## mcset $l "Interrupt PC: 0x%s; line: %s; vector 0x%s " \ "Interrupt PC: 0x%s; line: %s; vector 0x%s " ;# <-- NOT TRANSLATED YET ##ID:002603## mcset $l "Incomplete instruction OP code at 0x%s" \ "Incomplete instruction OP code at 0x%s" ;# <-- NOT TRANSLATED YET } # maintab.tcl # ============================================================================== namespace eval MainTab { ##ID:002604## mcset $l "FATAL ERROR" \ "FATAL ERROR" ;# <-- NOT TRANSLATED YET ##ID:002605## mcset $l "MCUs database file is corrupted,\nthis program cannot run without it.\nPlease reinstall MCU 8051 IDE." \ "MCUs database file is corrupted,\nthis program cannot run without it.\nPlease reinstall MCU 8051 IDE." ;# <-- NOT TRANSLATED YET ##ID:002606## mcset $l "IO Error" \ "IO Error" ;# <-- NOT TRANSLATED YET ##ID:002607## mcset $l "Unable to open VHW file:\n\"%s\"" \ "Unable to open VHW file:\n\"%s\"" ;# <-- NOT TRANSLATED YET ##ID:002867## mcset $l "Opening project files" \ "Opening project files" ;# <-- NOT TRANSLATED YET ##ID:002868## mcset $l "Abort" \ "Abort" ;# <-- NOT TRANSLATED YET ##ID:004495## mcset $l "Initializing ..." \ "Initializing ..." ;# <-- NOT TRANSLATED YET ##ID:004496## mcset $l "Finishing ..." \ "Finishing ..." ;# <-- NOT TRANSLATED YET } # selectmcu.tcl # ============================================================================== namespace eval SelectMCU { ##ID:002608## mcset $l "Choose MCU - MCU 8051 IDE" \ "Choose MCU - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:002609## mcset $l "Clear search bar" \ "Clear search bar" ;# <-- NOT TRANSLATED YET ##ID:002610## mcset $l "Search bar, enter something like \"C4051\"" \ "Search bar, enter something like \"C4051\"" ;# <-- NOT TRANSLATED YET ##ID:002611## mcset $l "Processor Type\t\tCODE/PMEM IDATA/IRAM GPIO Frequency" \ "Processor Type\t\tCODE/PMEM IDATA/IRAM GPIO Frequency" ;# <-- NOT TRANSLATED YET ##ID:002612## mcset $l "Search:" \ "Search:" ;# <-- NOT TRANSLATED YET ##ID:002613## mcset $l " Vendor:" \ " Vendor:" ;# <-- NOT TRANSLATED YET ##ID:002614## mcset $l "all" \ "all" ;# <-- NOT TRANSLATED YET ##ID:002615## mcset $l "One of available packages for selected microcontroller" \ "One of available packages for selected microcontroller" ;# <-- NOT TRANSLATED YET ##ID:002616## mcset $l {Vendor:} \ {Vendor:} ;# <-- NOT TRANSLATED YET ##ID:002617## mcset $l {UART:} \ {UART:} ;# <-- NOT TRANSLATED YET ##ID:002618## mcset $l {Operating voltage:} \ {Operating voltage:} ;# <-- NOT TRANSLATED YET ##ID:002619## mcset $l {Interrupt sources:} \ {Interrupt sources:} ;# <-- NOT TRANSLATED YET ##ID:002620## mcset $l {Timers:} \ {Timers:} ;# <-- NOT TRANSLATED YET ##ID:002621## mcset $l "External RAM (XDATA)" \ "External RAM (XDATA)" ;# <-- NOT TRANSLATED YET ##ID:002622## mcset $l "External ROM/FLASH (XCODE)" \ "External ROM/FLASH (XCODE)" ;# <-- NOT TRANSLATED YET ##ID:002623## mcset $l "NOT available" \ "NOT available" ;# <-- NOT TRANSLATED YET ##ID:002624## mcset $l "Enable" \ "Enable" ;# <-- NOT TRANSLATED YET ##ID:002625## mcset $l "Connect external data memory" \ "Connect external data memory" ;# <-- NOT TRANSLATED YET ##ID:002626## mcset $l "Amount of external data memory" \ "Amount of external data memory" ;# <-- NOT TRANSLATED YET ##ID:002627## mcset $l "Connect external program memory" \ "Connect external program memory" ;# <-- NOT TRANSLATED YET ##ID:002628## mcset $l "Amount of total program memory minus internal program memory" \ "Amount of total program memory minus internal program memory" ;# <-- NOT TRANSLATED YET ##ID:002629## mcset $l "Ok" \ "Ok" ;# <-- NOT TRANSLATED YET ##ID:002630## mcset $l "Cancel" \ "Cancel" ;# <-- NOT TRANSLATED YET ##ID:002631## mcset $l "Unable to open file containing supported MCUs,\nplease check your installation" \ "Unable to open file containing supported MCUs,\nplease check your installation" ;# <-- NOT TRANSLATED YET ##ID:002632## mcset $l "MCUs database file is corrupted ,\nplease check your installation" \ "MCUs database file is corrupted,\nplease check your installation" ;# <-- NOT TRANSLATED YET ##ID:002633## mcset $l "Error" \ "Error" ;# <-- NOT TRANSLATED YET ##ID:002634## mcset $l " Image not found" \ " Image not found" ;# <-- NOT TRANSLATED YET ##ID:002635## mcset $l "Loading image ..." \ "Loading image ..." ;# <-- NOT TRANSLATED YET } # regwatches.tcl # ============================================================================== namespace eval RegWatches { ##ID:002636## mcset $l "Move top" \ "Move top" ;# <-- NOT TRANSLATED YET ##ID:002637## mcset $l "Move this register watch to the top of list" \ "Move this register watch to the top of list" ;# <-- NOT TRANSLATED YET ##ID:002638## mcset $l "Move up" \ "Move up" ;# <-- NOT TRANSLATED YET ##ID:002639## mcset $l "Move this register watch up" \ "Move this register watch up" ;# <-- NOT TRANSLATED YET ##ID:002640## mcset $l "Move down" \ "Move down" ;# <-- NOT TRANSLATED YET ##ID:002641## mcset $l "Move this register watch down" \ "Move this register watch down" ;# <-- NOT TRANSLATED YET ##ID:002642## mcset $l "Move bottom" \ "Move bottom" ;# <-- NOT TRANSLATED YET ##ID:002643## mcset $l "Move this register watch to the bottom of list" \ "Move this register watch to the bottom of list" ;# <-- NOT TRANSLATED YET ##ID:002644## mcset $l "Remove" \ "Remove" ;# <-- NOT TRANSLATED YET ##ID:002645## mcset $l "Remove this register watch from the list" \ "Remove this register watch from the list" ;# <-- NOT TRANSLATED YET ##ID:002646## mcset $l "Remove all" \ "Remove all" ;# <-- NOT TRANSLATED YET ##ID:002647## mcset $l "Clear the list of register watches" \ "Clear the list of register watches" ;# <-- NOT TRANSLATED YET ##ID:002648## mcset $l "Save" \ "Save" ;# <-- NOT TRANSLATED YET ##ID:002649## mcset $l "Save this list to a file" \ "Save this list to a file" ;# <-- NOT TRANSLATED YET ##ID:002650## mcset $l "Configure" \ "Configure" ;# <-- NOT TRANSLATED YET ##ID:002651## mcset $l "Configure this panel" \ "Configure this panel" ;# <-- NOT TRANSLATED YET ##ID:002652## mcset $l "Sort by" \ "Sort by" ;# <-- NOT TRANSLATED YET ##ID:002653## mcset $l "Name" \ "Name" ;# <-- NOT TRANSLATED YET ##ID:002654## mcset $l "Address" \ "Address" ;# <-- NOT TRANSLATED YET ##ID:002655## mcset $l "Type" \ "Type" ;# <-- NOT TRANSLATED YET ##ID:002656## mcset $l "Incremental" \ "Incremental" ;# <-- NOT TRANSLATED YET ##ID:002657## mcset $l "Decremental" \ "Decremental" ;# <-- NOT TRANSLATED YET ##ID:002658## mcset $l "Autoload from code listing" \ "Autoload from code listing" ;# <-- NOT TRANSLATED YET ##ID:002659## mcset $l "Clear on auto-load" \ "Clear on auto-load" ;# <-- NOT TRANSLATED YET ##ID:002660## mcset $l "Save under a different file name" \ "Save under a different file name" ;# <-- NOT TRANSLATED YET ##ID:002661## mcset $l "Open *.wtc file" \ "Open *.wtc file" ;# <-- NOT TRANSLATED YET ##ID:002662## mcset $l "Import list of registers from code listing or WTC file" \ "Import list of registers from code listing or WTC file" ;# <-- NOT TRANSLATED YET ##ID:002663## mcset $l "Import list of registers from *.lst or *.wtc file" \ "Import list of registers from *.lst or *.wtc file" ;# <-- NOT TRANSLATED YET ##ID:002664## mcset $l "Enter your search string here" \ "Enter your search string here" ;# <-- NOT TRANSLATED YET ##ID:002665## mcset $l "Search for a name" \ "Search for a name" ;# <-- NOT TRANSLATED YET ##ID:002666## mcset $l "Clear search string" \ "Clear search string" ;# <-- NOT TRANSLATED YET ##ID:002667## mcset $l "Register address:\n 1 or 2 digits\tinternal RAM (not SFR)\n 3 digits\t\texpanded RAM\n 4 digits\t\texternal RAM\n dot and 2 digits\tBit" \ "Register address:\n 1 or 2 digits\tinternal RAM (not SFR)\n 3 digits\t\texpanded RAM\n 4 digits\t\texternal RAM\n dot and 2 digits\tBit" ;# <-- NOT TRANSLATED YET ##ID:002668## mcset $l "Register address or bit address" \ "Register address or bit address" ;# <-- NOT TRANSLATED YET ##ID:002669## mcset $l "Name of the watch. Any string." \ "Name of the watch. Any string." ;# <-- NOT TRANSLATED YET ##ID:002670## mcset $l "Add this entry to register watches" \ "Add this entry to register watches" ;# <-- NOT TRANSLATED YET ##ID:002671## mcset $l "New register watches entry" \ "New register watches entry" ;# <-- NOT TRANSLATED YET ##ID:002672## mcset $l "Create new register watch" \ "Create new register watch" ;# <-- NOT TRANSLATED YET ##ID:002673## mcset $l "Remove this entry" \ "Remove this entry" ;# <-- NOT TRANSLATED YET ##ID:002674## mcset $l "Addr" \ "Addr" ;# <-- NOT TRANSLATED YET ##ID:002675## mcset $l "Register name" \ "Register name" ;# <-- NOT TRANSLATED YET ##ID:002676## mcset $l "Unable to assign, address is already in use" \ "Unable to assign, address is already in use" ;# <-- NOT TRANSLATED YET ##ID:002677## mcset $l "You must specify the register address." \ "You must specify the register address." ;# <-- NOT TRANSLATED YET ##ID:002678## mcset $l "Specified address is already used." \ "Specified address is already used." ;# <-- NOT TRANSLATED YET ##ID:002679## mcset $l "Overwrite file" \ "Overwrite file" ;# <-- NOT TRANSLATED YET ##ID:002680## mcset $l "A file name '%s' already exists. Are you sure you want to overwrite it ?" \ "A file name '%s' already exists. Are you sure you want to overwrite it ?" ;# <-- NOT TRANSLATED YET ##ID:002681## mcset $l "Error - MCU 8051 IDE" \ "Error - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:002682## mcset $l "Unable to access file \"%s\", check your permissions." \ "Unable to access file \"%s\", check your permissions." ;# <-- NOT TRANSLATED YET ##ID:002683## mcset $l "Definitions saved to \"%s\"" \ "Definitions saved to \"%s\"" ;# <-- NOT TRANSLATED YET ##ID:002684## mcset $l "Save watches - MCU 8051 IDE" \ "Save watches - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:002685## mcset $l "File access error" \ "File access error" ;# <-- NOT TRANSLATED YET ##ID:002686## mcset $l "Unable to read file '%s'" \ "Unable to read file '%s'" ;# <-- NOT TRANSLATED YET ##ID:002687## mcset $l "Corrupted file" \ "Corrupted file" ;# <-- NOT TRANSLATED YET ##ID:002688## mcset $l "file: %s is either corrupted or it is not a file in expected format." \ "file: %s is either corrupted or it is not a file in expected format." ;# <-- NOT TRANSLATED YET ##ID:002689## mcset $l "Load watches from file - MCU 8051 IDE" \ "Load watches from file - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:002690## mcset $l "Import file - MCU 8051 IDE" \ "Import file - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:002691## mcset $l "Unknown file" \ "Unknown file" ;# <-- NOT TRANSLATED YET ##ID:002692## mcset $l "Unable to recognize file format" \ "Unable to recognize file format" ;# <-- NOT TRANSLATED YET ##ID:002693## mcset $l "Unable to open file:\n'%s'" \ "Unable to open file:\n'%s'" ;# <-- NOT TRANSLATED YET ##ID:002694## mcset $l "Are you sure ?" \ "Are you sure ?" ;# <-- NOT TRANSLATED YET ##ID:002695## mcset $l "Do you really want to clear the panel ?" \ "Do you really want to clear the panel ?" ;# <-- NOT TRANSLATED YET ##ID:002696## mcset $l "MCU 8051 IDE watches definition" \ "MCU 8051 IDE watches definition" ;# <-- NOT TRANSLATED YET ##ID:002697## mcset $l "Code listing" \ "Code listing" ;# <-- NOT TRANSLATED YET } # fsd.tcl # ============================================================================== namespace eval KIFSD::FSD { ##ID:002698## mcset $l " Name\t\t\t\t Size Rights Date " \ " Name\t\t\t\t Size Rights Date " ;# <-- NOT TRANSLATED YET ##ID:002699## mcset $l "Location:" \ "Location:" ;# <-- NOT TRANSLATED YET ##ID:002700## mcset $l "Filter:" \ "Filter:" ;# <-- NOT TRANSLATED YET ##ID:002701## mcset $l "Cancel" \ "Cancel" ;# <-- NOT TRANSLATED YET ##ID:002702## mcset $l "Ok" \ "Ok" ;# <-- NOT TRANSLATED YET ##ID:002703## mcset $l "Parent folder" \ "Parent folder" ;# <-- NOT TRANSLATED YET ##ID:002704## mcset $l "Back" \ "Back" ;# <-- NOT TRANSLATED YET ##ID:002705## mcset $l "Forward" \ "Forward" ;# <-- NOT TRANSLATED YET ##ID:002706## mcset $l "Reload" \ "Reload" ;# <-- NOT TRANSLATED YET ##ID:002707## mcset $l "New folder" \ "New folder" ;# <-- NOT TRANSLATED YET ##ID:002708## mcset $l "Short view" \ "Short view" ;# <-- NOT TRANSLATED YET ##ID:002709## mcset $l "Detailed view" \ "Detailed view" ;# <-- NOT TRANSLATED YET ##ID:002710## mcset $l "Bookmarks" \ "Bookmarks" ;# <-- NOT TRANSLATED YET ##ID:002711## mcset $l "Configure" \ "Configure" ;# <-- NOT TRANSLATED YET ##ID:002712## mcset $l "By name" \ "By name" ;# <-- NOT TRANSLATED YET ##ID:002713## mcset $l "By date" \ "By date" ;# <-- NOT TRANSLATED YET ##ID:002714## mcset $l "By size" \ "By size" ;# <-- NOT TRANSLATED YET ##ID:002715## mcset $l "Reverse" \ "Reverse" ;# <-- NOT TRANSLATED YET ##ID:002716## mcset $l "Folders first" \ "Folders first" ;# <-- NOT TRANSLATED YET ##ID:002717## mcset $l "Case insensitive" \ "Case insensitive" ;# <-- NOT TRANSLATED YET ##ID:002718## mcset $l "Sorting" \ "Sorting" ;# <-- NOT TRANSLATED YET ##ID:002719## mcset $l "Show hidden files" \ "Show hidden files" ;# <-- NOT TRANSLATED YET ##ID:002720## mcset $l "Quick access navigation panel" \ "Quick access navigation panel" ;# <-- NOT TRANSLATED YET ##ID:002721## mcset $l "Separate folders" \ "Separate folders" ;# <-- NOT TRANSLATED YET ##ID:002722## mcset $l "Add bookmark" \ "Add bookmark" ;# <-- NOT TRANSLATED YET ##ID:002723## mcset $l "Edit bookmarks" \ "Edit bookmarks" ;# <-- NOT TRANSLATED YET ##ID:002724## mcset $l "Up" \ "Up" ;# <-- NOT TRANSLATED YET ##ID:002725## mcset $l "Rename" \ "Rename" ;# <-- NOT TRANSLATED YET ##ID:002726## mcset $l "Delete" \ "Delete" ;# <-- NOT TRANSLATED YET ##ID:002727## mcset $l "Bookmark folder" \ "Bookmark folder" ;# <-- NOT TRANSLATED YET ##ID:002728## mcset $l "Properties" \ "Properties" ;# <-- NOT TRANSLATED YET ##ID:002729## mcset $l "Add entry" \ "Add entry" ;# <-- NOT TRANSLATED YET ##ID:002730## mcset $l "Hide panel" \ "Hide panel" ;# <-- NOT TRANSLATED YET ##ID:002731## mcset $l "Move up" \ "Move up" ;# <-- NOT TRANSLATED YET ##ID:002732## mcset $l "Move down" \ "Move down" ;# <-- NOT TRANSLATED YET ##ID:002733## mcset $l "Edit entry" \ "Edit entry" ;# <-- NOT TRANSLATED YET ##ID:002734## mcset $l "Remove entry" \ "Remove entry" ;# <-- NOT TRANSLATED YET ##ID:002735## mcset $l "Invalid folder" \ "Invalid folder" ;# <-- NOT TRANSLATED YET ##ID:002736## mcset $l "The specified folder does not exist:\n%s" \ "The specified folder does not exist:\n%s" ;# <-- NOT TRANSLATED YET ##ID:002737## mcset $l "Create new folder in:\n%s" \ "Create new folder in:\n%s" ;# <-- NOT TRANSLATED YET ##ID:002738## mcset $l "Clear" \ "Clear" ;# <-- NOT TRANSLATED YET ##ID:002739## mcset $l "Unable to create folder" \ "Unable to create folder" ;# <-- NOT TRANSLATED YET ##ID:002740## mcset $l "Unable to create the specified folder" \ "Unable to create the specified folder" ;# <-- NOT TRANSLATED YET ##ID:002741## mcset $l "Delete file" \ "Delete file" ;# <-- NOT TRANSLATED YET ##ID:002742## mcset $l "Do you really want to delete file:\n%s" \ "Do you really want to delete file:\n%s" ;# <-- NOT TRANSLATED YET ##ID:002743## mcset $l "Permission denied" \ "Permission denied" ;# <-- NOT TRANSLATED YET ##ID:002744## mcset $l "Unable to remove file:\n%s" \ "Unable to remove file:\n%s" ;# <-- NOT TRANSLATED YET ##ID:002745## mcset $l "Unable to rename file:\n%s" \ "Unable to rename file:\n%s" ;# <-- NOT TRANSLATED YET ##ID:002746## mcset $l "Unknown Error" \ "Unknown Error" ;# <-- NOT TRANSLATED YET ##ID:002747## mcset $l "This file apparently does not exist" \ "This file apparently does not exist" ;# <-- NOT TRANSLATED YET ##ID:002748## mcset $l "Unable to change permissions for file:\n%s" \ "Unable to change permissions for file:\n%s" ;# <-- NOT TRANSLATED YET ##ID:002749## mcset $l "Unable to rename file:%s" \ "Unable to rename file:%s" ;# <-- NOT TRANSLATED YET ##ID:002750## mcset $l "Remove" \ "Remove" ;# <-- NOT TRANSLATED YET ##ID:002751## mcset $l "Edit" \ "Edit" ;# <-- NOT TRANSLATED YET ##ID:002752## mcset $l "Down" \ "Down" ;# <-- NOT TRANSLATED YET ##ID:002753## mcset $l "New entry" \ "New entry" ;# <-- NOT TRANSLATED YET ##ID:002754## mcset $l "Name" \ "Name" ;# <-- NOT TRANSLATED YET ##ID:002755## mcset $l "URL" \ "URL" ;# <-- NOT TRANSLATED YET ##ID:002756## mcset $l "Icon" \ "Icon" ;# <-- NOT TRANSLATED YET ##ID:002757## mcset $l "Name:" \ "Name:" ;# <-- NOT TRANSLATED YET ##ID:002758## mcset $l "Ownership" \ "Ownership" ;# <-- NOT TRANSLATED YET ##ID:002759## mcset $l "Owner" \ "Owner" ;# <-- NOT TRANSLATED YET ##ID:002760## mcset $l "Group" \ "Group" ;# <-- NOT TRANSLATED YET ##ID:002761## mcset $l "Item properties" \ "Item properties" ;# <-- NOT TRANSLATED YET ##ID:002762## mcset $l "Type" \ "Type" ;# <-- NOT TRANSLATED YET ##ID:002763## mcset $l "Location" \ "Location" ;# <-- NOT TRANSLATED YET ##ID:002764## mcset $l "Size" \ "Size" ;# <-- NOT TRANSLATED YET ##ID:002765## mcset $l "Modified" \ "Modified" ;# <-- NOT TRANSLATED YET ##ID:002766## mcset $l "Accessed" \ "Accessed" ;# <-- NOT TRANSLATED YET ##ID:002767## mcset $l "Access permissions" \ "Access permissions" ;# <-- NOT TRANSLATED YET ##ID:002768## mcset $l "Class" \ "Class" ;# <-- NOT TRANSLATED YET ##ID:002769## mcset $l "Read" \ "Read" ;# <-- NOT TRANSLATED YET ##ID:002770## mcset $l "Write" \ "Write" ;# <-- NOT TRANSLATED YET ##ID:002771## mcset $l "Exec" \ "Exec" ;# <-- NOT TRANSLATED YET ##ID:002772## mcset $l "Others" \ "Others" ;# <-- NOT TRANSLATED YET } # filelist.tcl # ============================================================================== namespace eval FileList { ##ID:002773## mcset $l "Append to project" \ "Append to project" ;# <-- NOT TRANSLATED YET ##ID:002774## mcset $l "Append this file to the current project" \ "Append this file to the current project" ;# <-- NOT TRANSLATED YET ##ID:002775## mcset $l "New" \ "New" ;# <-- NOT TRANSLATED YET ##ID:002776## mcset $l "Create new file and open its editor" \ "Create new file and open its editor" ;# <-- NOT TRANSLATED YET ##ID:002777## mcset $l "Open" \ "Open" ;# <-- NOT TRANSLATED YET ##ID:002778## mcset $l "Open an existing file" \ "Open an existing file" ;# <-- NOT TRANSLATED YET ##ID:002779## mcset $l "Save" \ "Save" ;# <-- NOT TRANSLATED YET ##ID:002780## mcset $l "Save this file" \ "Save this file" ;# <-- NOT TRANSLATED YET ##ID:002781## mcset $l "Save as" \ "Save as" ;# <-- NOT TRANSLATED YET ##ID:002782## mcset $l "Save this file under different name" \ "Save this file under different name" ;# <-- NOT TRANSLATED YET ##ID:002783## mcset $l "Save all" \ "Save all" ;# <-- NOT TRANSLATED YET ##ID:002784## mcset $l "Save all file in the list" \ "Save all file in the list" ;# <-- NOT TRANSLATED YET ##ID:002785## mcset $l "Close" \ "Close" ;# <-- NOT TRANSLATED YET ##ID:002786## mcset $l "Close this file" \ "Close this file" ;# <-- NOT TRANSLATED YET ##ID:002787## mcset $l "Close All" \ "Close All" ;# <-- NOT TRANSLATED YET ##ID:002788## mcset $l "Close all files in the list" \ "Close all files in the list" ;# <-- NOT TRANSLATED YET ##ID:002789## mcset $l "Bookmark" \ "Bookmark" ;# <-- NOT TRANSLATED YET ##ID:002790## mcset $l "Add/Remove bookmark for this file" \ "Add/Remove bookmark for this file" ;# <-- NOT TRANSLATED YET ##ID:002791## mcset $l "Move up" \ "Move up" ;# <-- NOT TRANSLATED YET ##ID:002792## mcset $l "Move this file up in the list" \ "Move this file up in the list" ;# <-- NOT TRANSLATED YET ##ID:002793## mcset $l "Move down" \ "Move down" ;# <-- NOT TRANSLATED YET ##ID:002794## mcset $l "Move this file down in the list" \ "Move this file down in the list" ;# <-- NOT TRANSLATED YET ##ID:002795## mcset $l "Move to top" \ "Move to top" ;# <-- NOT TRANSLATED YET ##ID:002796## mcset $l "Move this file to the top of the list" \ "Move this file to the top of the list" ;# <-- NOT TRANSLATED YET ##ID:002797## mcset $l "Move to bottom" \ "Move to bottom" ;# <-- NOT TRANSLATED YET ##ID:002798## mcset $l "Move this file to the bottom of the list" \ "Move this file to the bottom of the list" ;# <-- NOT TRANSLATED YET ##ID:002799## mcset $l "Sort items by" \ "Sort items by" ;# <-- NOT TRANSLATED YET ##ID:002800## mcset $l "Document Name" \ "Document Name" ;# <-- NOT TRANSLATED YET ##ID:002801## mcset $l "File URL" \ "File URL" ;# <-- NOT TRANSLATED YET ##ID:002802## mcset $l "File Size in B" \ "File Size in B" ;# <-- NOT TRANSLATED YET ##ID:002803## mcset $l "Open with" \ "Open with" ;# <-- NOT TRANSLATED YET ##ID:002804## mcset $l "Hide the panel" \ "Hide the panel" ;# <-- NOT TRANSLATED YET ##ID:002805## mcset $l "Remove file from the project" \ "Remove file from the project" ;# <-- NOT TRANSLATED YET ##ID:002806## mcset $l "Remove this file from the project" \ "Remove this file from the project" ;# <-- NOT TRANSLATED YET ##ID:002807## mcset $l "Close file" \ "Close file" ;# <-- NOT TRANSLATED YET ##ID:002808## mcset $l "Open file" \ "Open file" ;# <-- NOT TRANSLATED YET ##ID:002809## mcset $l "Open this file" \ "Open this file" ;# <-- NOT TRANSLATED YET ##ID:002810## mcset $l "Move this item up" \ "Move this item up" ;# <-- NOT TRANSLATED YET ##ID:002811## mcset $l "Move this item down" \ "Move this item down" ;# <-- NOT TRANSLATED YET ##ID:002812## mcset $l "Move this item to the top of the list" \ "Move this item to the top of the list" ;# <-- NOT TRANSLATED YET ##ID:002813## mcset $l "Move this item to the bottom of the list" \ "Move this item to the bottom of the list" ;# <-- NOT TRANSLATED YET ##ID:002814## mcset $l "Add/Remove bookmark" \ "Add/Remove bookmark" ;# <-- NOT TRANSLATED YET ##ID:002815## mcset $l "Move file up" \ "Move file up" ;# <-- NOT TRANSLATED YET ##ID:002816## mcset $l "Move selected file up in the list" \ "Move selected file up in the list" ;# <-- NOT TRANSLATED YET ##ID:002817## mcset $l "Move file down" \ "Move file down" ;# <-- NOT TRANSLATED YET ##ID:002818## mcset $l "Move selected file down in the list" \ "Move selected file down in the list" ;# <-- NOT TRANSLATED YET ##ID:002819## mcset $l "Move item to top" \ "Move item to top" ;# <-- NOT TRANSLATED YET ##ID:002820## mcset $l "Move selected file to the top of the list" \ "Move selected file to the top of the list" ;# <-- NOT TRANSLATED YET ##ID:002821## mcset $l "Move item to bottom" \ "Move item to bottom" ;# <-- NOT TRANSLATED YET ##ID:002822## mcset $l "Move selected file to the bottom of the list" \ "Move selected file to the bottom of the list" ;# <-- NOT TRANSLATED YET ##ID:002823## mcset $l "Open this file and create its own editor" \ "Open this file and create its own editor" ;# <-- NOT TRANSLATED YET ##ID:002824## mcset $l "Close this file and close its editor" \ "Close this file and close its editor" ;# <-- NOT TRANSLATED YET ##ID:002825## mcset $l "Exclude this file from list of files of this project" \ "Exclude this file from list of files of this project" ;# <-- NOT TRANSLATED YET ##ID:002826## mcset $l "Hide this panel" \ "Hide this panel" ;# <-- NOT TRANSLATED YET ##ID:002827## mcset $l "Opened Files:" \ "Opened Files:" ;# <-- NOT TRANSLATED YET ##ID:002828## mcset $l "Opened files" \ "Opened files" ;# <-- NOT TRANSLATED YET ##ID:002829## mcset $l "Files in the project" \ "Files in the project" ;# <-- NOT TRANSLATED YET ##ID:002830## mcset $l "File system browser" \ "File system browser" ;# <-- NOT TRANSLATED YET ##ID:002831## mcset $l "List of SFR's" \ "List of SFR's" ;# <-- NOT TRANSLATED YET ##ID:002832## mcset $l "Files of the current project" \ "Files of the current project" ;# <-- NOT TRANSLATED YET ##ID:002833## mcset $l "Special Function Registers" \ "Special Function Registers" ;# <-- NOT TRANSLATED YET ##ID:002834## mcset $l "Bookmarks for opened files" \ "Bookmarks for opened files" ;# <-- NOT TRANSLATED YET ##ID:002835## mcset $l "List of opened files" \ "List of opened files" ;# <-- NOT TRANSLATED YET ##ID:002836## mcset $l "Search for file" \ "Search for file" ;# <-- NOT TRANSLATED YET ##ID:002837## mcset $l "Search for certain file name in list of opened files" \ "Search for certain file name in list of opened files" ;# <-- NOT TRANSLATED YET ##ID:002838## mcset $l "Search for certain file name in list of project files" \ "Search for certain file name in list of project files" ;# <-- NOT TRANSLATED YET ##ID:002839## mcset $l "Clear search entry box" \ "Clear search entry box" ;# <-- NOT TRANSLATED YET ##ID:002840## mcset $l "Previous editor" \ "Previous editor" ;# <-- NOT TRANSLATED YET ##ID:002841## mcset $l "Switch to the previous editor" \ "Switch to the previous editor" ;# <-- NOT TRANSLATED YET ##ID:002842## mcset $l "Next editor" \ "Next editor" ;# <-- NOT TRANSLATED YET ##ID:002843## mcset $l "Switch to the next editor" \ "Switch to the next editor" ;# <-- NOT TRANSLATED YET ##ID:002844## mcset $l "Bookmarks for project files" \ "Bookmarks for project files" ;# <-- NOT TRANSLATED YET ##ID:002845## mcset $l "List of project files" \ "List of project files" ;# <-- NOT TRANSLATED YET ##ID:002846## mcset $l "Project Files:" \ "Project Files:" ;# <-- NOT TRANSLATED YET ##ID:002847## mcset $l "Show the panel" \ "Show the panel" ;# <-- NOT TRANSLATED YET ##ID:002848## mcset $l "Currently opened files" \ "Currently opened files" ;# <-- NOT TRANSLATED YET ##ID:002849## mcset $l "Files in the current project" \ "Files in the current project" ;# <-- NOT TRANSLATED YET ##ID:002850## mcset $l "SFR watches" \ "SFR watches" ;# <-- NOT TRANSLATED YET ##ID:002851## mcset $l "(read only)" \ "(read only)" ;# <-- NOT TRANSLATED YET ##ID:002852## mcset $l "File does not exist" \ "File does not exist" ;# <-- NOT TRANSLATED YET ##ID:002853## mcset $l "Path:" \ "Path:" ;# <-- NOT TRANSLATED YET ##ID:002854## mcset $l "Size:" \ "Size:" ;# <-- NOT TRANSLATED YET ##ID:002855## mcset $l "Modified:" \ "Modified:" ;# <-- NOT TRANSLATED YET ##ID:002856## mcset $l "Owner:" \ "Owner:" ;# <-- NOT TRANSLATED YET ##ID:002857## mcset $l "Permissions:" \ "Permissions:" ;# <-- NOT TRANSLATED YET ##ID:002858## mcset $l "Encoding:" \ "Encoding:" ;# <-- NOT TRANSLATED YET ##ID:002859## mcset $l "EOL:" \ "EOL:" ;# <-- NOT TRANSLATED YET ##ID:002860## mcset $l "Are you sure ?" \ "Are you sure ?" ;# <-- NOT TRANSLATED YET ##ID:002861## mcset $l "Reload of the file will change contents of the current editor. Are you sure you want that ?" \ "Reload of the file will change contents of the current editor. Are you sure you want that ?" ;# <-- NOT TRANSLATED YET ##ID:002862## mcset $l "Reload aborted" \ "Reload aborted" ;# <-- NOT TRANSLATED YET ##ID:002863## mcset $l "Binary File Opened - MCU 8015 IDE" \ "Binary File Opened - MCU 8015 IDE" ;# <-- NOT TRANSLATED YET ##ID:002864## mcset $l "The file %s is binary, saving it will result corrupted file." \ "The file %s is binary, saving it will result corrupted file." ;# <-- NOT TRANSLATED YET ##ID:002865## mcset $l "Unknown error" \ "Unknown error" ;# <-- NOT TRANSLATED YET ##ID:004497## mcset $l "Checking for changes in files ..." \ "Checking for changes in files ..." ;# <-- NOT TRANSLATED YET ##ID:002866## mcset $l "Error raised during md5 checking of file:\n%s.\nMaybe md5 extension is not correctly loaded." \ "Error raised during md5 checking of file:\n%s.\nMaybe md5 extension is not correctly loaded." ;# <-- NOT TRANSLATED YET ##ID:002869## mcset $l "The following files could not be located:" \ "The following files could not be located:" ;# <-- NOT TRANSLATED YET ##ID:002870## mcset $l "Ok" \ "Ok" ;# <-- NOT TRANSLATED YET ##ID:002871## mcset $l "File(s) not found" \ "File(s) not found" ;# <-- NOT TRANSLATED YET ##ID:002872## mcset $l "The following files were modified since last save:" \ "The following files were modified since last save:" ;# <-- NOT TRANSLATED YET ##ID:002873## mcset $l "File(s) changed" \ "File(s) changed" ;# <-- NOT TRANSLATED YET ##ID:002874## mcset $l "File not found - MCU 8051 IDE" \ "File not found - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:002875## mcset $l "File %s not found !" \ "File %s not found !" ;# <-- NOT TRANSLATED YET ##ID:004498## mcset $l "Dangerously large file!" \ "Dangerously large file!" ;# <-- NOT TRANSLATED YET ##ID:004499## mcset $l "WARNING: The file you are about to open is larger than 10MB!\n\nOpening extremely big source code files might lead your system to run out of operating memory, then the MCU 8051 IDE might got killed by the operating system!\n\nARE YOU SURE you want to proceed?" \ "WARNING: The file you are about to open is larger than 10MB!\n\nOpening extremely big source code files might lead your system to run out of operating memory, then the MCU 8051 IDE might got killed by the operating system!\n\nARE YOU SURE you want to proceed?" ;# <-- NOT TRANSLATED YET ##ID:002876## mcset $l "File: %s is already opened." \ "File: %s is already opened." ;# <-- NOT TRANSLATED YET ##ID:002877## mcset $l "Do you want to add this file to the project ?\n%s" \ "Do you want to add this file to the project ?\n%s" ;# <-- NOT TRANSLATED YET ##ID:002878## mcset $l "Yes" \ "Yes" ;# <-- NOT TRANSLATED YET ##ID:002879## mcset $l "No" \ "No" ;# <-- NOT TRANSLATED YET ##ID:002880## mcset $l "Do not ask again" \ "Do not ask again" ;# <-- NOT TRANSLATED YET ##ID:002882## mcset $l "Add file ?" \ "Add file ?" ;# <-- NOT TRANSLATED YET ##ID:002883## mcset $l "Overwrite file" \ "Overwrite file" ;# <-- NOT TRANSLATED YET ##ID:002884## mcset $l "A file name '%s' already exists. Are you sure you want to overwrite it ?" \ "A file name '%s' already exists. Are you sure you want to overwrite it ?" ;# <-- NOT TRANSLATED YET ##ID:002885## mcset $l "Close document - MCU 8051 IDE" \ "Close document - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:002886## mcset $l "The document %s have been modified.\nDo you want to save it ?" \ "The document %s have been modified.\nDo you want to save it ?" ;# <-- NOT TRANSLATED YET ##ID:002887## mcset $l "Last editor window closed -> opening a new one ..." \ "Last editor window closed -> opening a new one ..." ;# <-- NOT TRANSLATED YET ##ID:002888## mcset $l "The following documents have been modified,\ndo you want to save them before closing ?" \ "The following documents have been modified,\ndo you want to save them before closing ?" ;# <-- NOT TRANSLATED YET ##ID:002889## mcset $l "Unsaved files" \ "Unsaved files" ;# <-- NOT TRANSLATED YET ##ID:002890## mcset $l "Save selected" \ "Save selected" ;# <-- NOT TRANSLATED YET ##ID:002891## mcset $l "Discard" \ "Discard" ;# <-- NOT TRANSLATED YET ##ID:002892## mcset $l "Cancel" \ "Cancel" ;# <-- NOT TRANSLATED YET ##ID:002893## mcset $l "Close files - MCU 8051 IDE" \ "Close files - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:002894## mcset $l "File not found" \ "File not found" ;# <-- NOT TRANSLATED YET ##ID:002895## mcset $l "File %s could not be located at the specified location." \ "File %s could not be located at the specified location." ;# <-- NOT TRANSLATED YET ##ID:002896## mcset $l "File changed" \ "File changed" ;# <-- NOT TRANSLATED YET ##ID:002897## mcset $l "File \"%s\" was modified since last project save\nTime: %s" \ "File \"%s\" was modified since last project save\nTime: %s" ;# <-- NOT TRANSLATED YET ##ID:002898## mcset $l "Raised error during md5 checking file %s. Maybe md5 extension is not correctly loaded." \ "Raised error during md5 checking file %s. Maybe md5 extension is not correctly loaded." ;# <-- NOT TRANSLATED YET ##ID:002899## mcset $l "Program not found" \ "Program not found" ;# <-- NOT TRANSLATED YET ##ID:002900## mcset $l "Unable to execute \"%s\"" \ "Unable to execute \"%s\"" ;# <-- NOT TRANSLATED YET ##ID:002901## mcset $l "Enter command to execute:" \ "Enter command to execute:" ;# <-- NOT TRANSLATED YET ##ID:002902## mcset $l "Open with other ..." \ "Open with other ..." ;# <-- NOT TRANSLATED YET ##ID:002903## mcset $l "Unable to find \"%s\" in list of opened files or project files" \ "Unable to find \"%s\" in list of opened files or project files" ;# <-- NOT TRANSLATED YET ##ID:002904## mcset $l "Simulator: unable to switch to file: '%s'" \ "Simulator: unable to switch to file: '%s'" ;# <-- NOT TRANSLATED YET } # rightpanel.tcl # ============================================================================== namespace eval RightPanel { ##ID:002905## mcset $l "Remove" \ "Remove" ;# <-- NOT TRANSLATED YET ##ID:002906## mcset $l "Add/Remove editor bookmark to/from current line" \ "Add/Remove editor bookmark to/from current line" ;# <-- NOT TRANSLATED YET ##ID:002907## mcset $l "Previous" \ "Previous" ;# <-- NOT TRANSLATED YET ##ID:002908## mcset $l "Go to previous bookmark" \ "Go to previous bookmark" ;# <-- NOT TRANSLATED YET ##ID:002909## mcset $l "Next" \ "Next" ;# <-- NOT TRANSLATED YET ##ID:002910## mcset $l "Go to next bookmark" \ "Go to next bookmark" ;# <-- NOT TRANSLATED YET ##ID:002911## mcset $l "Remove all" \ "Remove all" ;# <-- NOT TRANSLATED YET ##ID:002912## mcset $l "Remove all bookmarks from the editor" \ "Remove all bookmarks from the editor" ;# <-- NOT TRANSLATED YET ##ID:002913## mcset $l "Go to previous breakpoint" \ "Go to previous breakpoint" ;# <-- NOT TRANSLATED YET ##ID:002914## mcset $l "Go to next breakpoint" \ "Go to next breakpoint" ;# <-- NOT TRANSLATED YET ##ID:002915## mcset $l "Remove all breakpoints from the editor" \ "Remove all breakpoints from the editor" ;# <-- NOT TRANSLATED YET ##ID:002916## mcset $l "List of bookmarks in the current editor" \ "List of bookmarks in the current editor" ;# <-- NOT TRANSLATED YET ##ID:002917## mcset $l "List of breakpoints in the current editor" \ "List of breakpoints in the current editor" ;# <-- NOT TRANSLATED YET ##ID:002918## mcset $l "Details for instruction on the current line" \ "Details for instruction on the current line" ;# <-- NOT TRANSLATED YET ##ID:002919## mcset $l "Register watches (for internal data memory, external data memory, expanded data memory and bits)" \ "Register watches (for internal data memory, external data memory, expanded data memory and bits)" ;# <-- NOT TRANSLATED YET ##ID:002920## mcset $l "List of active subprograms" \ "List of active subprograms" ;# <-- NOT TRANSLATED YET ##ID:002921## mcset $l "Symbol list" \ "Symbol list" ;# <-- NOT TRANSLATED YET ##ID:002922## mcset $l "Hardware manager" \ "Hardware manager" ;# <-- NOT TRANSLATED YET ##ID:002923## mcset $l "Hide the panel" \ "Hide the panel" ;# <-- NOT TRANSLATED YET ##ID:002924## mcset $l "Bookmarks" \ "Bookmarks" ;# <-- NOT TRANSLATED YET ##ID:002925## mcset $l "List of bookmarks in editor (Ctrl+6)" \ "List of bookmarks in editor (Ctrl+6)" ;# <-- NOT TRANSLATED YET ##ID:002926## mcset $l "Breakpoints" \ "Breakpoints" ;# <-- NOT TRANSLATED YET ##ID:002927## mcset $l "List of breakpoints in editor (Ctrl+7)" \ "List of breakpoints in editor (Ctrl+7)" ;# <-- NOT TRANSLATED YET ##ID:002928## mcset $l "Symbols" \ "Symbols" ;# <-- NOT TRANSLATED YET ##ID:002929## mcset $l "Symbol List" \ "Symbol List" ;# <-- NOT TRANSLATED YET ##ID:002930## mcset $l "Instruction" \ "Instruction" ;# <-- NOT TRANSLATED YET ##ID:002931## mcset $l "Instruction details (Ctrl+8)" \ "Instruction details (Ctrl+8)" ;# <-- NOT TRANSLATED YET ##ID:002932## mcset $l "Watches" \ "Watches" ;# <-- NOT TRANSLATED YET ##ID:002933## mcset $l "Register watches (Ctrl+9)" \ "Register watches (Ctrl+9)" ;# <-- NOT TRANSLATED YET ##ID:002934## mcset $l "Subprograms" \ "Subprograms" ;# <-- NOT TRANSLATED YET ##ID:002935## mcset $l "Active subprograms (Ctrl+0)" \ "Active subprograms (Ctrl+0)" ;# <-- NOT TRANSLATED YET ##ID:002936## mcset $l "Hardware" \ "Hardware" ;# <-- NOT TRANSLATED YET ##ID:002937## mcset $l "Hide" \ "Hide" ;# <-- NOT TRANSLATED YET ##ID:002938## mcset $l "Show the panel" \ "Show the panel" ;# <-- NOT TRANSLATED YET ##ID:002939## mcset $l "Hardware tools" \ "Hardware tools" ;# <-- NOT TRANSLATED YET ##ID:002940## mcset $l "Hardware tools manager" \ "Hardware tools manager" ;# <-- NOT TRANSLATED YET ##ID:002941## mcset $l "MCU register watches (Ctrl+9)" \ "MCU register watches (Ctrl+9)" ;# <-- NOT TRANSLATED YET ##ID:002942## mcset $l "Register watches for internal data memory, external data memory and expanded data memory" \ "Register watches for internal data memory, external data memory and expanded data memory" ;# <-- NOT TRANSLATED YET ##ID:002943## mcset $l "Move to previous bookmark" \ "Move to previous bookmark" ;# <-- NOT TRANSLATED YET ##ID:002944## mcset $l "Go to to line of previous bookmark" \ "Go to to line of previous bookmark" ;# <-- NOT TRANSLATED YET ##ID:002945## mcset $l "Move to the next bookmark" \ "Move to the next bookmark" ;# <-- NOT TRANSLATED YET ##ID:002946## mcset $l "Go to to line of next bookmark" \ "Go to to line of next bookmark" ;# <-- NOT TRANSLATED YET ##ID:002947## mcset $l "Add/Remove bookmark on the current line" \ "Add/Remove bookmark on the current line" ;# <-- NOT TRANSLATED YET ##ID:002948## mcset $l "Add/Remove bookmark on the current line in editor" \ "Add/Remove bookmark on the current line in editor" ;# <-- NOT TRANSLATED YET ##ID:002949## mcset $l "Clear all bookmarks" \ "Clear all bookmarks" ;# <-- NOT TRANSLATED YET ##ID:002950## mcset $l "Clear all bookmarks from editor" \ "Clear all bookmarks from editor" ;# <-- NOT TRANSLATED YET ##ID:002951## mcset $l "Move to previous breakpoint" \ "Move to previous breakpoint" ;# <-- NOT TRANSLATED YET ##ID:002952## mcset $l "Go to to line of previous breakpoint" \ "Go to to line of previous breakpoint" ;# <-- NOT TRANSLATED YET ##ID:002953## mcset $l "Move to next breakpoint" \ "Move to next breakpoint" ;# <-- NOT TRANSLATED YET ##ID:002954## mcset $l "Go to to line of next breakpoint" \ "Go to to line of next breakpoint" ;# <-- NOT TRANSLATED YET ##ID:002955## mcset $l "Add/Remove breakpoint on the current line" \ "Add/Remove breakpoint on the current line" ;# <-- NOT TRANSLATED YET ##ID:002956## mcset $l "Add/Remove breakpoint on the current line in editor" \ "Add/Remove breakpoint on the current line in editor" ;# <-- NOT TRANSLATED YET ##ID:002957## mcset $l "Clear all breakpoints" \ "Clear all breakpoints" ;# <-- NOT TRANSLATED YET ##ID:002958## mcset $l "Clear all breakpoints from editor" \ "Clear all breakpoints from editor" ;# <-- NOT TRANSLATED YET ##ID:002959## mcset $l "Reevaluate" \ "Reevaluate" ;# <-- NOT TRANSLATED YET ##ID:002960## mcset $l "Reevaluate ..." \ "Reevaluate ..." ;# <-- NOT TRANSLATED YET ##ID:002961## mcset $l "Clear search string" \ "Clear search string" ;# <-- NOT TRANSLATED YET ##ID:002962## mcset $l "Search for a constant, variable, function or macro" \ "Search for a constant, variable, function or macro" ;# <-- NOT TRANSLATED YET ##ID:002963## mcset $l " Search:" \ " Search:" ;# <-- NOT TRANSLATED YET } # X.tcl # ============================================================================== namespace eval X { ##ID:002964## mcset $l "Options" \ "Options" ;# <-- NOT TRANSLATED YET ##ID:002965## mcset $l "Case sensitive" \ "Case sensitive" ;# <-- NOT TRANSLATED YET ##ID:002966## mcset $l "Backwards" \ "Backwards" ;# <-- NOT TRANSLATED YET ##ID:002967## mcset $l "From cursor" \ "From cursor" ;# <-- NOT TRANSLATED YET ##ID:002968## mcset $l "Regular expr." \ "Regular expr." ;# <-- NOT TRANSLATED YET ##ID:002969## mcset $l "Prompt on replace" \ "Prompt on replace" ;# <-- NOT TRANSLATED YET ##ID:002970## mcset $l "Case sensitive search" \ "Case sensitive search" ;# <-- NOT TRANSLATED YET ##ID:002971## mcset $l "Search backwards from the specified location" \ "Search backwards from the specified location" ;# <-- NOT TRANSLATED YET ##ID:002972## mcset $l "Start search from cursor instead of beginning" \ "Start search from cursor instead of beginning" ;# <-- NOT TRANSLATED YET ##ID:002973## mcset $l "Use search string as regular expression" \ "Use search string as regular expression" ;# <-- NOT TRANSLATED YET ##ID:002974## mcset $l "Selected text" \ "Selected text" ;# <-- NOT TRANSLATED YET ##ID:002975## mcset $l "Search within selected text only" \ "Search within selected text only" ;# <-- NOT TRANSLATED YET ##ID:002976## mcset $l "Save" \ "Save" ;# <-- NOT TRANSLATED YET ##ID:002977## mcset $l "Save this project" \ "Save this project" ;# <-- NOT TRANSLATED YET ##ID:002978## mcset $l "Edit project" \ "Edit project" ;# <-- NOT TRANSLATED YET ##ID:002979## mcset $l "Edit additional project detail" \ "Edit additional project detail" ;# <-- NOT TRANSLATED YET ##ID:002980## mcset $l "Save and close" \ "Save and close" ;# <-- NOT TRANSLATED YET ##ID:002981## mcset $l "Save and close this project" \ "Save and close this project" ;# <-- NOT TRANSLATED YET ##ID:002982## mcset $l "Close without saving" \ "Close without saving" ;# <-- NOT TRANSLATED YET ##ID:002983## mcset $l "Close this project" \ "Close this project" ;# <-- NOT TRANSLATED YET ##ID:002984## mcset $l "Move left" \ "Move left" ;# <-- NOT TRANSLATED YET ##ID:002985## mcset $l "Move this tab to right the beginning of the tab bar" \ "Move this tab to right the beginning of the tab bar" ;# <-- NOT TRANSLATED YET ##ID:002986## mcset $l "Move right" \ "Move right" ;# <-- NOT TRANSLATED YET ##ID:002987## mcset $l "Move this tab to right the end of the tab bar" \ "Move this tab to right the end of the tab bar" ;# <-- NOT TRANSLATED YET ##ID:002988## mcset $l "Move to beginning" \ "Move to beginning" ;# <-- NOT TRANSLATED YET ##ID:002989## mcset $l "Move to end" \ "Move to end" ;# <-- NOT TRANSLATED YET ##ID:002990## mcset $l "Export to XHTML - MCU 8051 IDE" \ "Export to XHTML - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:002991## mcset $l "Export to LaTeX - MCU 8051 IDE" \ "Export to LaTeX - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:002992## mcset $l "Export to XHTML file" \ "Export to XHTML file" ;# <-- NOT TRANSLATED YET ##ID:002993## mcset $l "Export to LaTeX file" \ "Export to LaTeX file" ;# <-- NOT TRANSLATED YET ##ID:002994## mcset $l "Hexadecimal number" \ "Hexadecimal number" ;# <-- NOT TRANSLATED YET ##ID:002995## mcset $l "Octal number" \ "Octal number" ;# <-- NOT TRANSLATED YET ##ID:002996## mcset $l "Decimal number" \ "Decimal number" ;# <-- NOT TRANSLATED YET ##ID:002997## mcset $l "Binary number" \ "Binary number" ;# <-- NOT TRANSLATED YET ##ID:002998## mcset $l "Constant" \ "Constant" ;# <-- NOT TRANSLATED YET ##ID:002999## mcset $l "Generic number" \ "Generic number" ;# <-- NOT TRANSLATED YET ##ID:003000## mcset $l "Comment" \ "Comment" ;# <-- NOT TRANSLATED YET ##ID:003001## mcset $l "Control sequence" \ "Control sequence" ;# <-- NOT TRANSLATED YET ##ID:003002## mcset $l "Symbol" \ "Symbol" ;# <-- NOT TRANSLATED YET ##ID:003003## mcset $l "Directive" \ "Directive" ;# <-- NOT TRANSLATED YET ##ID:003004## mcset $l "Label" \ "Label" ;# <-- NOT TRANSLATED YET ##ID:003005## mcset $l "Instruction" \ "Instruction" ;# <-- NOT TRANSLATED YET ##ID:003006## mcset $l "SFR register" \ "SFR register" ;# <-- NOT TRANSLATED YET ##ID:003007## mcset $l "Indirect address" \ "Indirect address" ;# <-- NOT TRANSLATED YET ##ID:003008## mcset $l "Immediate hex" \ "Immediate hex" ;# <-- NOT TRANSLATED YET ##ID:003009## mcset $l "Immediate oct" \ "Immediate oct" ;# <-- NOT TRANSLATED YET ##ID:003010## mcset $l "Immediate dec" \ "Immediate dec" ;# <-- NOT TRANSLATED YET ##ID:003011## mcset $l "Immediate bin" \ "Immediate bin" ;# <-- NOT TRANSLATED YET ##ID:003012## mcset $l "Immediate const" \ "Immediate const" ;# <-- NOT TRANSLATED YET ##ID:003013## mcset $l "Immediate generic" \ "Immediate generic" ;# <-- NOT TRANSLATED YET ##ID:003014## mcset $l "Macro instruction" \ "Macro instruction" ;# <-- NOT TRANSLATED YET ##ID:003015## mcset $l "Uppercase" \ "Uppercase" ;# <-- NOT TRANSLATED YET ##ID:003016## mcset $l "Lowercase" \ "Lowercase" ;# <-- NOT TRANSLATED YET ##ID:003017## mcset $l "Keep case" \ "Keep case" ;# <-- NOT TRANSLATED YET ##ID:003018## mcset $l "Code listing files" \ "Code listing files" ;# <-- NOT TRANSLATED YET ##ID:003019## mcset $l "Assembly debug files (before v1.0.5)" \ "Assembly debug files (before v1.0.5)" ;# <-- NOT TRANSLATED YET ##ID:003020## mcset $l "IHEX object code files" \ "IHEX object code files" ;# <-- NOT TRANSLATED YET ##ID:003021## mcset $l "Binary object code files" \ "Binary object code files" ;# <-- NOT TRANSLATED YET ##ID:003022## mcset $l "HTML files" \ "HTML files" ;# <-- NOT TRANSLATED YET ##ID:003023## mcset $l "TeX sources" \ "TeX sources" ;# <-- NOT TRANSLATED YET ##ID:003024## mcset $l "Hibernated programs" \ "Hibernated programs" ;# <-- NOT TRANSLATED YET ##ID:003025## mcset $l "ASL: NoICE-compatible command file" \ "ASL: NoICE-compatible command file" ;# <-- NOT TRANSLATED YET ##ID:003026## mcset $l "ASL: Atmel debug file used by the AVR tools" \ "ASL: Atmel debug file used by the AVR tools" ;# <-- NOT TRANSLATED YET ##ID:003027## mcset $l "SDCC: The memory map for the load module" \ "SDCC: The memory map for the load module" ;# <-- NOT TRANSLATED YET ##ID:003028## mcset $l "ASL object files" \ "ASL object files" ;# <-- NOT TRANSLATED YET ##ID:003029## mcset $l "Macro definition file" \ "Macro definition file" ;# <-- NOT TRANSLATED YET ##ID:003030## mcset $l "Macro output files" \ "Macro output files" ;# <-- NOT TRANSLATED YET ##ID:003031## mcset $l "SDCC IHEX8 object files" \ "SDCC IHEX8 object files" ;# <-- NOT TRANSLATED YET ##ID:003032## mcset $l "MCU 8051 IDE Assembler debug files" \ "MCU 8051 IDE Assembler debug files" ;# <-- NOT TRANSLATED YET ##ID:003033## mcset $l "SDCC Assembler debug files" \ "SDCC Assembler debug files" ;# <-- NOT TRANSLATED YET ##ID:003034## mcset $l "SDCC: Object file created by the assembler" \ "SDCC: Object file created by the assembler" ;# <-- NOT TRANSLATED YET ##ID:003035## mcset $l "SDCC debug files" \ "SDCC debug files" ;# <-- NOT TRANSLATED YET ##ID:003036## mcset $l "SDCC: A file with a summary of the memory usage" \ "SDCC: A file with a summary of the memory usage" ;# <-- NOT TRANSLATED YET ##ID:003037## mcset $l "SDCC: Linker script" \ "SDCC: Linker script" ;# <-- NOT TRANSLATED YET ##ID:003038## mcset $l "SDCC: Symbol listing for the source file" \ "SDCC: Symbol listing for the source file" ;# <-- NOT TRANSLATED YET ##ID:003039## mcset $l "OMF-51 object files" \ "OMF-51 object files" ;# <-- NOT TRANSLATED YET ##ID:003040## mcset $l "SDCC: Listing file updated with linkedit information" \ "SDCC: Listing file updated with linkedit information" ;# <-- NOT TRANSLATED YET ##ID:003041## mcset $l "MD5 hashes for C source files" \ "MD5 hashes for C source files" ;# <-- NOT TRANSLATED YET ##ID:003042## mcset $l "Doxygen backup file" \ "Doxygen backup file" ;# <-- NOT TRANSLATED YET ##ID:003043## mcset $l "Assembly language sources" \ "Assembly language sources" ;# <-- NOT TRANSLATED YET ##ID:003044## mcset $l "Register watches definition files" \ "Register watches definition files" ;# <-- NOT TRANSLATED YET ##ID:003045## mcset $l "MCU 8051 IDE hibernated program" \ "MCU 8051 IDE hibernated program" ;# <-- NOT TRANSLATED YET ##ID:003046## mcset $l "MCU 8051 IDE project" \ "MCU 8051 IDE roject" ;# <-- NOT TRANSLATED YET ##ID:003047## mcset $l "C sources" \ "C sources" ;# <-- NOT TRANSLATED YET ##ID:003048## mcset $l "C headers" \ "C headers" ;# <-- NOT TRANSLATED YET ##ID:003049## mcset $l "Virtual Hardware Component" \ "Virtual Hardware Component" ;# <-- NOT TRANSLATED YET ##ID:003050## mcset $l "Virtual Hardware" \ "Virtual Hardware" ;# <-- NOT TRANSLATED YET ##ID:003051## mcset $l "Text files" \ "Text files" ;# <-- NOT TRANSLATED YET ##ID:003052## mcset $l "All backup files" \ "All backup files" ;# <-- NOT TRANSLATED YET ##ID:003053## mcset $l "echo \"This is a custom command\"\necho \"\tYou can configure it in Main menu->Configure->Edit user commands.\"\necho \"\tCustom commands are intended for running external programs from this IDE (e.g. program uploaders)\"" \ "echo \"This is a custom command\"\necho \"\tYou can configure it in Main menu->Configure->Edit user commands.\"\necho \"\tCustom commands are intended for running external programs from this IDE (e.g. program uploaders)\"" ;# <-- NOT TRANSLATED YET ##ID:003054## mcset $l "More: Main menu -> Configure -> Edit user commands" \ "More: Main menu -> Configure -> Edit user commands" ;# <-- NOT TRANSLATED YET ##ID:003055## mcset $l "Unable to compile" \ "Unable to compile" ;# <-- NOT TRANSLATED YET ##ID:003056## mcset $l "Simulator is engaged, shutdown the simulator first." \ "Simulator is engaged, shutdown the simulator first." ;# <-- NOT TRANSLATED YET ##ID:003057## mcset $l "Open file - MCU 8051 IDE" \ "Open file - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:003058## mcset $l "New file - MCU 8051 IDE" \ "New file - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:003059## mcset $l "Assembly language" \ "Assembly language" ;# <-- NOT TRANSLATED YET ##ID:003060## mcset $l "C source" \ "C source" ;# <-- NOT TRANSLATED YET ##ID:003061## mcset $l "C header" \ "C header" ;# <-- NOT TRANSLATED YET ##ID:003062## mcset $l "Code listing" \ "Code listing" ;# <-- NOT TRANSLATED YET ##ID:003063## mcset $l "All files" \ "All files" ;# <-- NOT TRANSLATED YET ##ID:003064## mcset $l "File not found - MCU 8051 IDE" \ "File not found - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:003065## mcset $l "The selected file do not exist:\n%s" \ "The selected file do not exist:\n%s" ;# <-- NOT TRANSLATED YET ##ID:003066## mcset $l "Save file - MCU 8051 IDE" \ "Save file - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:003067## mcset $l "Text to find:" \ "Text to find:" ;# <-- NOT TRANSLATED YET ##ID:003068## mcset $l "Ok" \ "Ok" ;# <-- NOT TRANSLATED YET ##ID:003069## mcset $l "Cancel" \ "Cancel" ;# <-- NOT TRANSLATED YET ##ID:003070## mcset $l "Find - MCU 8051 IDE" \ "Find - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:003071## mcset $l "Unable to execute" \ "Unable to execute" ;# <-- NOT TRANSLATED YET ##ID:003072## mcset $l "Search result: %s matches found" \ "Search result: %s matches found" ;# <-- NOT TRANSLATED YET ##ID:003073## mcset $l "Find - %s" \ "Find - %s" ;# <-- NOT TRANSLATED YET ##ID:003074## mcset $l "Search string '%s' not found !" \ "Search string '%s' not found !" ;# <-- NOT TRANSLATED YET ##ID:003075## mcset $l "Beginning of document reached\n\nContinue from end ?" \ "Beginning of document reached\n\nContinue from end ?" ;# <-- NOT TRANSLATED YET ##ID:003076## mcset $l "End of document reached\n\nContinue from beginning ?" \ "End of document reached\n\nContinue from beginning ?" ;# <-- NOT TRANSLATED YET ##ID:003077## mcset $l "Editor: Nothing to search ..." \ "Editor: Nothing to search ..." ;# <-- NOT TRANSLATED YET ##ID:003078## mcset $l "Text to find: " \ "Text to find: " ;# <-- NOT TRANSLATED YET ##ID:003079## mcset $l "Replace with:" \ "Replace with:" ;# <-- NOT TRANSLATED YET ##ID:003080## mcset $l "Replace - MCU 8051 IDE" \ "Replace - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:003081## mcset $l "Replace - %s" \ "Replace - %s" ;# <-- NOT TRANSLATED YET ##ID:003082## mcset $l "Found an occurrence of your search term.\nWhat do you want to do ?" \ "Found an occurrence of your search term.\nWhat do you want to do ?" ;# <-- NOT TRANSLATED YET ##ID:003083## mcset $l "Replace" \ "Replace" ;# <-- NOT TRANSLATED YET ##ID:003084## mcset $l "Replace & close" \ "Replace & close" ;# <-- NOT TRANSLATED YET ##ID:003085## mcset $l "Replace all" \ "Replace all" ;# <-- NOT TRANSLATED YET ##ID:003086## mcset $l "Find next" \ "Find next" ;# <-- NOT TRANSLATED YET ##ID:003087## mcset $l "Close" \ "Close" ;# <-- NOT TRANSLATED YET ##ID:003088## mcset $l "Replace confirmation - %s" \ "Replace confirmation - %s" ;# <-- NOT TRANSLATED YET ##ID:003089## mcset $l "Go to line" \ "Go to line" ;# <-- NOT TRANSLATED YET ##ID:003090## mcset $l "Go to line - MCU 8051 IDE" \ "Go to line - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:003091## mcset $l "Choose directory - MCU 8051 IDE" \ "Choose directory - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:003092## mcset $l "Create a new project.\n All entries are required. Other options --> edit project." \ "Create a new project.\n All entries are required. Other options --> edit project." ;# <-- NOT TRANSLATED YET ##ID:003093## mcset $l "General" \ "General" ;# <-- NOT TRANSLATED YET ##ID:003094## mcset $l "Project name" \ "Project name" ;# <-- NOT TRANSLATED YET ##ID:003095## mcset $l "Project directory" \ "Project directory" ;# <-- NOT TRANSLATED YET ##ID:003096## mcset $l "Choose destination location" \ "Choose destination location" ;# <-- NOT TRANSLATED YET ##ID:003097## mcset $l "Processor" \ "Processor" ;# <-- NOT TRANSLATED YET ##ID:003098## mcset $l "External RAM (XDATA)" \ "External RAM (XDATA)" ;# <-- NOT TRANSLATED YET ##ID:003099## mcset $l "External ROM/FLASH (XCODE)" \ "External ROM/FLASH (XCODE)" ;# <-- NOT TRANSLATED YET ##ID:003100## mcset $l "Type:" \ "Type:" ;# <-- NOT TRANSLATED YET ##ID:003101## mcset $l "Selected uC" \ "Selected uC" ;# <-- NOT TRANSLATED YET ##ID:003102## mcset $l "Select MCU" \ "Select MCU" ;# <-- NOT TRANSLATED YET ##ID:003103## mcset $l "Choose processor from database" \ "Choose processor from database" ;# <-- NOT TRANSLATED YET ##ID:003104## mcset $l "Enable" \ "Enable" ;# <-- NOT TRANSLATED YET ##ID:003105## mcset $l "Connect external data memory" \ "Connect external data memory" ;# <-- NOT TRANSLATED YET ##ID:003106## mcset $l "Amount of external data memory" \ "Amount of external data memory" ;# <-- NOT TRANSLATED YET ##ID:003107## mcset $l "Connect external program memory" \ "Connect external program memory" ;# <-- NOT TRANSLATED YET ##ID:003108## mcset $l "Amount of total program memory minus internal program memory" \ "Amount of total program memory minus internal program memory" ;# <-- NOT TRANSLATED YET ##ID:003109## mcset $l "New project - MCU 8051 IDE" \ "New project - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:003110## mcset $l "Invalid request" \ "Invalid request" ;# <-- NOT TRANSLATED YET ##ID:003111## mcset $l "Both entries in section general must be filled." \ "Both entries in section general must be filled." ;# <-- NOT TRANSLATED YET ##ID:003112## mcset $l "Create directory - MCU 8051 IDE" \ "Create directory - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:003113## mcset $l "The specified directory does not exist do you want to create it ?" \ "The specified directory does not exist do you want to create it ?" ;# <-- NOT TRANSLATED YET ##ID:003114## mcset $l "File access error" \ "File access error" ;# <-- NOT TRANSLATED YET ##ID:003115## mcset $l "Creation of directory '%s' FAILED !\nPlease check your permissions." \ "Creation of directory '%s' FAILED !\nPlease check your permissions." ;# <-- NOT TRANSLATED YET ##ID:003116## mcset $l "File already exists - MCU 8051 IDE" \ "File already exists - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:003117## mcset $l "Some project with the same name already exists in the specified directory. \nDo you want to overwrite it ?" \ "Some project with the same name already exists in the specified directory. \nDo you want to overwrite it ?" ;# <-- NOT TRANSLATED YET ##ID:003118## mcset $l "Unable to write to file:\n\"%s\"" \ "Unable to write to file:\n\"%s\"" ;# <-- NOT TRANSLATED YET ##ID:003119## mcset $l "Open project - MCU 8051 IDE" \ "Open project - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:003120## mcset $l "Error - MCU 8051 IDE" \ "Error - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:003121## mcset $l "Unable to load file: %s" \ "Unable to load file: %s" ;# <-- NOT TRANSLATED YET ##ID:003122## mcset $l "Project saved to %s" \ "Project saved to %s" ;# <-- NOT TRANSLATED YET ##ID:003123## mcset $l "IO Error" \ "IO Error" ;# <-- NOT TRANSLATED YET ##ID:003124## mcset $l "General information" \ "General information" ;# <-- NOT TRANSLATED YET ##ID:003125## mcset $l "Version" \ "Version" ;# <-- NOT TRANSLATED YET ##ID:003126## mcset $l "Date" \ "Date" ;# <-- NOT TRANSLATED YET ##ID:003127## mcset $l "Copyright" \ "Copyright" ;# <-- NOT TRANSLATED YET ##ID:003128## mcset $l "License" \ "License" ;# <-- NOT TRANSLATED YET ##ID:003129## mcset $l "Authors:" \ "Authors:" ;# <-- NOT TRANSLATED YET ##ID:003130## mcset $l "List of project authors (one per line):" \ "List of project authors (one per line):" ;# <-- NOT TRANSLATED YET ##ID:003131## mcset $l "XDATA" \ "XDATA" ;# <-- NOT TRANSLATED YET ##ID:003132## mcset $l "XCODE" \ "XCODE" ;# <-- NOT TRANSLATED YET ##ID:003133## mcset $l "Clock \[kHz\]:" \ "Clock \[kHz\]:" ;# <-- NOT TRANSLATED YET ##ID:003134## mcset $l "Main file:" \ "Main file:" ;# <-- NOT TRANSLATED YET ##ID:003135## mcset $l "Project main file (e.g. main.c)\n(empty string means always compile current file)" \ "Project main file (e.g. main.c)\n(empty string means always compile current file)" ;# <-- NOT TRANSLATED YET ##ID:003136## mcset $l "Size of external data memory" \ "Size of external data memory" ;# <-- NOT TRANSLATED YET ##ID:003137## mcset $l "Project description" \ "Project description" ;# <-- NOT TRANSLATED YET ##ID:003138## mcset $l "Edit project - MCU 8051 IDE" \ "Edit project - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:003139## mcset $l "Select main file - %s - MCU 8051 IDE" \ "Select main file - %s - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:003140## mcset $l "New values saved." \ "New values saved." ;# <-- NOT TRANSLATED YET ##ID:003141## mcset $l "Requesting confirmation %s" \ "Requesting confirmation %s" ;# <-- NOT TRANSLATED YET ##ID:003142## mcset $l "Are you sure want to close the project without saving changes ?" \ "Are you sure want to close the project without saving changes ?" ;# <-- NOT TRANSLATED YET ##ID:003143## mcset $l "Unable to run assembler" \ "Unable to run assembler" ;# <-- NOT TRANSLATED YET ##ID:003144## mcset $l "Something is already running in background." \ "Something is already running in background." ;# <-- NOT TRANSLATED YET ##ID:003145## mcset $l "Compiling ..." \ "Compiling ..." ;# <-- NOT TRANSLATED YET ##ID:003146## mcset $l "Compiler not found" \ "Compiler not found" ;# <-- NOT TRANSLATED YET ##ID:003147## mcset $l "Unable to find sdcc, please install sdcc and restart MCU 8051 IDE" \ "Unable to find sdcc, please install sdcc and restart MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:003148## mcset $l "MCU 8051 IDE Native assembler" \ "MCU 8051 IDE Native assembler" ;# <-- NOT TRANSLATED YET ##ID:003149## mcset $l "%s assembler not found" \ "%s assembler not found" ;# <-- NOT TRANSLATED YET ##ID:003150## mcset $l "Unable to run program \"%s\". Please check if you have installed this assembler or choose a different one in compiler configuration dialog." \ "Unable to run program \"%s\". Please check if you have installed this assembler or choose a different one in compiler configuration dialog." ;# <-- NOT TRANSLATED YET ##ID:003151## mcset $l "Compiler crash - MCU 8051 IDE" \ "Compiler crash - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:003152## mcset $l "Compiler crashed, we are terribly sorry about that.\n\nPlease report this bug via project web or mail to author and please don't forget to include source code on which this error occurred." \ "Compiler crashed, we are terribly sorry about that.\n\nPlease report this bug via project web or mail to author and please don't forget to include source code on which this error occurred." ;# <-- NOT TRANSLATED YET ##ID:003153## mcset $l "Compilation successful" \ "Compilation successful" ;# <-- NOT TRANSLATED YET ##ID:003154## mcset $l "Compilation failed" \ "Compilation failed" ;# <-- NOT TRANSLATED YET ##ID:003155## mcset $l "Compilation failed, see messages for details." \ "Compilation failed, see messages for details." ;# <-- NOT TRANSLATED YET ##ID:003156## mcset $l "Compilation: " \ "Compilation: " ;# <-- NOT TRANSLATED YET ##ID:003157## mcset $l "Abort" \ "Abort" ;# <-- NOT TRANSLATED YET ##ID:003158## mcset $l "This editor seems to be empty" \ "This editor seems to be empty" ;# <-- NOT TRANSLATED YET ##ID:003159## mcset $l "Export dialog" \ "Export dialog" ;# <-- NOT TRANSLATED YET ##ID:003160## mcset $l "Finishing syntax highlight ..." \ "Finishing syntax highlight ..." ;# <-- NOT TRANSLATED YET ##ID:003161## mcset $l "Export as %s - MCU 8051 IDE" \ "Export as %s - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:003162## mcset $l "Permission denied" \ "Permission denied" ;# <-- NOT TRANSLATED YET ##ID:003163## mcset $l "Unable to access file: %s" \ "Unable to access file: %s" ;# <-- NOT TRANSLATED YET ##ID:003164## mcset $l "Overwrite file" \ "Overwrite file" ;# <-- NOT TRANSLATED YET ##ID:003165## mcset $l "A file name '%s' already exists. Are you sure you want to overwrite it ?" \ "A file name '%s' already exists. Are you sure you want to overwrite it ?" ;# <-- NOT TRANSLATED YET ##ID:003166## mcset $l "Unable to write to file: \"%s\"" \ "Unable to write to file: \"%s\"" ;# <-- NOT TRANSLATED YET ##ID:003167## mcset $l "\[lindex \$args 1\] - MCU 8051 IDE" \ "\[lindex \$args 1\] - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:003168## mcset $l "Converting ..." \ "Converting ..." ;# <-- NOT TRANSLATED YET ##ID:003169## mcset $l "Exported data saved to %s" \ "Exported data saved to %s" ;# <-- NOT TRANSLATED YET ##ID:003170## mcset $l "\nExiting program on user request ..." \ "\nExiting program on user request ..." ;# <-- NOT TRANSLATED YET ##ID:003171## mcset $l "An error occurred when saving the last session" \ "An error occurred when saving the last session" ;# <-- NOT TRANSLATED YET ##ID:003172## mcset $l "Saving project: %s" \ "Saving project: %s" ;# <-- NOT TRANSLATED YET ##ID:003173## mcset $l "Program terminated" \ "Program terminated" ;# <-- NOT TRANSLATED YET ##ID:003174## mcset $l "Unable to save running configuration" \ "Unable to save running configuration" ;# <-- NOT TRANSLATED YET ##ID:003175## mcset $l "Access denied" \ "Access denied" ;# <-- NOT TRANSLATED YET ##ID:003176## mcset $l "The following documents have been modified,\ndo you want to save them before closing ?" \ "The following documents have been modified,\ndo you want to save them before closing ?" ;# <-- NOT TRANSLATED YET ##ID:003177## mcset $l "Unsaved files" \ "Unsaved files" ;# <-- NOT TRANSLATED YET ##ID:003178## mcset $l "Project: \"%s\"" \ "Project: \"%s\"" ;# <-- NOT TRANSLATED YET ##ID:003179## mcset $l "Save selected" \ "Save selected" ;# <-- NOT TRANSLATED YET ##ID:003180## mcset $l "Save all" \ "Save all" ;# <-- NOT TRANSLATED YET ##ID:003181## mcset $l "Discard" \ "Discard" ;# <-- NOT TRANSLATED YET ##ID:003182## mcset $l "Attention" \ "Attention" ;# <-- NOT TRANSLATED YET ##ID:003183## mcset $l "You have to chose one action" \ "You have to chose one action" ;# <-- NOT TRANSLATED YET ##ID:003184## mcset $l "Exit program - MCU 8051 IDE" \ "Exit program - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:003185## mcset $l "Simulator is not started" \ "Simulator is not started" ;# <-- NOT TRANSLATED YET ##ID:003186## mcset $l "Simulator is busy" \ "Simulator is busy" ;# <-- NOT TRANSLATED YET ##ID:003187## mcset $l "Recompile ?" \ "Recompile ?" ;# <-- NOT TRANSLATED YET ##ID:003188## mcset $l "MD5 hashes verification failed. That probably means than some source files have been modified since last compilation.\n\nDo you want to recompile the code ?" \ "MD5 hashes verification failed. That probably means than some source files have been modified since last compilation.\n\nDo you want to recompile the code ?" ;# <-- NOT TRANSLATED YET ##ID:003189## mcset $l "File not found" \ "File not found" ;# <-- NOT TRANSLATED YET ##ID:003190## mcset $l "Simulator data file not found.\nDo you want create it ?" \ "Simulator data file not found.\nDo you want create it ?" ;# <-- NOT TRANSLATED YET ##ID:003191## mcset $l "Unable to start simulator" \ "Unable to start simulator" ;# <-- NOT TRANSLATED YET ##ID:003192## mcset $l "Unable to read simulator file. Possibly you have disabled generation of simulator file in compiler configuration dialog." \ "Unable to read simulator file. Possibly you have disabled generation of simulator file in compiler configuration dialog." ;# <-- NOT TRANSLATED YET ##ID:003193## mcset $l "Unable to find hex file" \ "Unable to find hex file" ;# <-- NOT TRANSLATED YET ##ID:003194## mcset $l "Unable to open:\n'%s'" \ "Unable to open:\n'%s'" ;# <-- NOT TRANSLATED YET ##ID:003195## mcset $l "Unable to gain unlimited access to the given file" \ "Unable to gain unlimited access to the given file" ;# <-- NOT TRANSLATED YET ##ID:003196## mcset $l "Parsing file ..." \ "Parsing file ..." ;# <-- NOT TRANSLATED YET ##ID:003197## mcset $l "Unable to open file:\n\"%s\"\nfor writing" \ "Unable to open file:\n\"%s\"\nfor writing" ;# <-- NOT TRANSLATED YET ##ID:003198## mcset $l "Error(s) occurred while parsing IHEX file - %s" \ "Error(s) occurred while parsing IHEX file - %s" ;# <-- NOT TRANSLATED YET ##ID:003199## mcset $l "grab release %s; destroy %s" \ "grab release %s; destroy %s" ;# <-- NOT TRANSLATED YET ##ID:003200## mcset $l "Input file" \ "Input file" ;# <-- NOT TRANSLATED YET ##ID:003201## mcset $l "Output file" \ "Output file" ;# <-- NOT TRANSLATED YET ##ID:003202## mcset $l "File where to save result" \ "File where to save result" ;# <-- NOT TRANSLATED YET ##ID:003203## mcset $l "Invoke dialog to select output file" \ "Invoke dialog to select output file" ;# <-- NOT TRANSLATED YET ##ID:003204## mcset $l "Convert Binary file to Intel HEX 8 - MCU 8051 IDE" \ "Convert Binary file to Intel HEX 8 - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:003205## mcset $l "Convert Intel HEX 8 to binary file - MCU 8051 IDE" \ "Convert Intel HEX 8 to binary file - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:003206## mcset $l "Convert sim file to Intel HEX 8 - MCU 8051 IDE" \ "Convert sim file to Intel HEX 8 - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:003207## mcset $l "Both entries must be filled" \ "Both entries must be filled" ;# <-- NOT TRANSLATED YET ##ID:003208## mcset $l "Unable to open file '%s'" \ "Unable to open file '%s'" ;# <-- NOT TRANSLATED YET ##ID:003209## mcset $l "Loading file ..." \ "Loading file ..." ;# <-- NOT TRANSLATED YET ##ID:003210## mcset $l "Saving file ..." \ "Saving file ..." ;# <-- NOT TRANSLATED YET ##ID:003211## mcset $l "Corrupted file - MCU 8051 IDE" \ "Corrupted file - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:003212## mcset $l "IHEX 8" \ "IHEX 8" ;# <-- NOT TRANSLATED YET ##ID:003213## mcset $l "The selected file %s does not exist." \ "The selected file %s does not exist." ;# <-- NOT TRANSLATED YET ##ID:003214## mcset $l "Disassembly failed" \ "Decompilation failed" ;# <-- NOT TRANSLATED YET ##ID:003215## mcset $l "Decompilation failed -- see messages for details" \ "Decompilation failed -- see messages for details" ;# <-- NOT TRANSLATED YET ##ID:003216## mcset $l "\nLoading IHEX file ..." \ "\nLoading IHEX file ..." ;# <-- NOT TRANSLATED YET ##ID:003217## mcset $l "Unable to open file" \ "Unable to open file" ;# <-- NOT TRANSLATED YET ##ID:003218## mcset $l "Unable to read file '%s'" \ "Unable to read file '%s'" ;# <-- NOT TRANSLATED YET ##ID:003219## mcset $l "Successful" \ "Successful" ;# <-- NOT TRANSLATED YET ##ID:003220## mcset $l "FAILED" \ "FAILED" ;# <-- NOT TRANSLATED YET ##ID:003221## mcset $l "About dialog" \ "About dialog" ;# <-- NOT TRANSLATED YET ##ID:003222## mcset $l "About" \ "About" ;# <-- NOT TRANSLATED YET ##ID:003223## mcset $l "An open source IDE for MCS-51 based microconrollers for POSIX Systems, this software is licenced under the GNU GPL v2 licence. You can find more at the project web page http://mcu8051ide.sourceforge.net\n" \ "An open source IDE for MCS-51 based microconrollers for POSIX Systems, this software is licenced under the GNU GPL v2 licence. You can find more at the project web page http://mcu8051ide.sourceforge.net\n" ;# <-- NOT TRANSLATED YET ##ID:003224## mcset $l "You are currently using version for Microsoft® Windows®.\n" \ "You are currently using version for Microsoft® Windows®.\n" ##ID:003226## mcset $l "Web: http://mcu8051ide.sourceforge.net\n" \ "Web: http://mcu8051ide.sourceforge.net\n" ;# <-- NOT TRANSLATED YET ##ID:003227## mcset $l "Thanks to SDCC development team for their great work !\n" \ "Thanks to SDCC development team for their great work !\n" ;# <-- NOT TRANSLATED YET ##ID:003228## mcset $l "Thanks to %s for their help during development\n" \ "Thanks to %s for their help during development\n" ;# <-- NOT TRANSLATED YET ##ID:003229## mcset $l "Thanks to" \ "Thanks to" ;# <-- NOT TRANSLATED YET ##ID:003230## mcset $l "SDCC developers:\n" \ "SDCC developers:\n" ;# <-- NOT TRANSLATED YET ##ID:003231## mcset $l "\n(Please post suggestions to %s)\n" \ "\n(Please post suggestions to %s)\n" ;# <-- NOT TRANSLATED YET ##ID:003232## mcset $l "FILE \"license.txt\" WAS NOT FOUND\n\n" \ "FILE \"license.txt\" WAS NOT FOUND\n\n" ;# <-- NOT TRANSLATED YET ##ID:003233## mcset $l "Text of the license agreement is not available,\n" \ "Text of the license agreement is not available,\n" ;# <-- NOT TRANSLATED YET ##ID:003234## mcset $l "please check your installation." \ "please check your installation." ;# <-- NOT TRANSLATED YET ##ID:003235## mcset $l "About - MCU 8051 IDE" \ "About - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:003236## mcset $l "Unable to indent C source without program indent, please install indent and restart MCU 8051 IDE." \ "Unable to indent C source without program indent, please install indent and restart MCU 8051 IDE." ;# <-- NOT TRANSLATED YET ##ID:003237## mcset $l "Unable to indent C source code.\n\n%s" \ "Unable to indent C source code.\n\n%s" ;# <-- NOT TRANSLATED YET ##ID:003238## mcset $l "Reformatting code" \ "Reformatting code" ;# <-- NOT TRANSLATED YET ##ID:003239## mcset $l "Options dialog" \ "Options dialog" ;# <-- NOT TRANSLATED YET ##ID:003240## mcset $l "Backup files" \ "Backup files" ;# <-- NOT TRANSLATED YET ##ID:003241## mcset $l "Other files" \ "Other files" ;# <-- NOT TRANSLATED YET ##ID:003242## mcset $l "Remove files" \ "Remove files" ;# <-- NOT TRANSLATED YET ##ID:003243## mcset $l "Cleanup project folder - MCU 8051 IDE" \ "Cleanup project folder - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:003244## mcset $l "Cleanup project folder" \ "Cleanup project folder" ;# <-- NOT TRANSLATED YET ##ID:003245## mcset $l "Are you sure ?" \ "Are you sure ?" ;# <-- NOT TRANSLATED YET ##ID:003246## mcset $l "These files will be removed" \ "These files will be removed" ;# <-- NOT TRANSLATED YET ##ID:003247## mcset $l "Proceed" \ "Proceed" ;# <-- NOT TRANSLATED YET ##ID:003248## mcset $l "%d file(s) removed." \ "%d file(s) removed." ;# <-- NOT TRANSLATED YET ##ID:003249## mcset $l "Confirm termination - MCU 8051 IDE" \ "Confirm termination - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:003250## mcset $l "This process is already in progress. Do you want to terminate it ?" \ "This process is already in progress. Do you want to terminate it ?" ;# <-- NOT TRANSLATED YET ##ID:003251## mcset $l "Confirmation required" \ "Confirmation required" ;# <-- NOT TRANSLATED YET ##ID:003252## mcset $l "Do you really want to execute\ncustom command %s ?" \ "Do you really want to execute\ncustom command %s ?" ;# <-- NOT TRANSLATED YET ##ID:003253## mcset $l "Warning - Custom command" \ "Warning - Custom command" ;# <-- NOT TRANSLATED YET ##ID:003254## mcset $l "Some variables in user command could not be resolved." \ "Some variables in user command could not be resolved." ;# <-- NOT TRANSLATED YET ##ID:003255## mcset $l "Custom command finished" \ "Custom command finished" ;# <-- NOT TRANSLATED YET ##ID:003256## mcset $l "Custom command failed" \ "Custom command failed" ;# <-- NOT TRANSLATED YET ##ID:003257## mcset $l "Custom command %s - MCU 8051 IDE" \ "Custom command %s - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:004500## mcset $l "Unknow error" \ "Unknow error" ;# <-- NOT TRANSLATED YET ##ID:004501## mcset $l "Unable to execute your script in the urxvt terminal emulator." \ "Unable to execute your script in the urxvt terminal emulator." ;# <-- NOT TRANSLATED YET ##ID:004502## mcset $l "Kill the script?" \ "Kill the script?" ;# <-- NOT TRANSLATED YET ##ID:004503## mcset $l "Closing this window terminates all child processes of the terminal.\n\nDo you want to proceed?" \ "Closing this window terminates all child processes of the terminal.\n\nDo you want to proceed?" ;# <-- NOT TRANSLATED YET ##ID:003258## mcset $l "Welcome dialog" \ "Welcome dialog" ;# <-- NOT TRANSLATED YET ##ID:003259## mcset $l "Welcome to MCU 8051 IDE !" \ "Welcome to MCU 8051 IDE !" ;# <-- NOT TRANSLATED YET ##ID:003260## mcset $l "Click here to open demonstration project." \ "Click here to open demonstration project." ;# <-- NOT TRANSLATED YET ##ID:003261## mcset $l "MCU 8051 IDE is a fully featured Integrated Development Environment" \ "MCU 8051 IDE is fully featured Integrated Development Environment" ;# <-- NOT TRANSLATED YET ##ID:003262## mcset $l " for MCS-51 based microcontrollers. It's written for POSIX Operating Systems (GNU/Linux, etc.) " \ " for MCS-51 based microcontrollers. It's written for POSIX Operating Systems (GNU/Linux, etc.) " ;# <-- NOT TRANSLATED YET ##ID:003263## mcset $l "and since version 1.3.5 it is also available for Microsoft® Windows® operating system." \ "and since version 1.3.5 it is also available for Microsoft® Windows® operating system." ;# <-- NOT TRANSLATED YET ##ID:003264## mcset $l "Main features:" \ "Main features:" ;# <-- NOT TRANSLATED YET ##ID:003265## mcset $l "Editor with syntax highlight, validation and popup-based completion\n\t" \ "Editor with syntax highlight, validation and popup-based completion\n\t" ;# <-- NOT TRANSLATED YET ##ID:003266## mcset $l "MCS-51 Assembler and Disassembler\n\t" \ "MCS-51 Assembler and Disassembler\n\t" ;# <-- NOT TRANSLATED YET ##ID:003267## mcset $l "MCS-51 Simulator (not all MCUs are fully supported !)\n\t" \ "MCS-51 Simulator (not all MCUs are fully supported !)\n\t" ;# <-- NOT TRANSLATED YET ##ID:003268## mcset $l "Support for C language (using C compiler SDCC)\n\t" \ "Support for C language (using C compiler SDCC)\n\t" ;# <-- NOT TRANSLATED YET ##ID:003269## mcset $l "Partial support for some HW tools\n\t" \ "Partial support for some HW tools\n\t" ;# <-- NOT TRANSLATED YET ##ID:003270## mcset $l "Project management\n\t" \ "Project management\n\t" ;# <-- NOT TRANSLATED YET ##ID:003271## mcset $l "Custom editable commands (using shell scripts)\n\t" \ "Custom editable commands (using shell scripts)\n\t" ;# <-- NOT TRANSLATED YET ##ID:003272## mcset $l "Dynamic help for instruction at the current line\n\t" \ "Dynamic help for instruction at the current line\n\t" ;# <-- NOT TRANSLATED YET ##ID:003273## mcset $l "Hexadecimal editor for eXternal RAM, Expanded RAM, Code memory, etc.\n\t" \ "Hexadecimal editor for eXternal RAM, Expanded RAM, Code memory, etc.\n\t" ;# <-- NOT TRANSLATED YET ##ID:003274## mcset $l "Scientific calculator\n\t" \ "Scientific calculator\n\t" ;# <-- NOT TRANSLATED YET ##ID:003275## mcset $l "Simple hardware simulation (LED's, etc.)\n\t" \ "Simple hardware simulation (LED's, etc.)\n\t" ;# <-- NOT TRANSLATED YET ##ID:003276## mcset $l "Graph showing voltage levels on ports\n\n" \ "Graph showing voltage levels on ports\n\n" ;# <-- NOT TRANSLATED YET ##ID:003277## mcset $l "Where to start:" \ "Where to start:" ;# <-- NOT TRANSLATED YET ##ID:003278## mcset $l "\n\t1. Create a new project" \ "\n\t1. Create a new project" ;# <-- NOT TRANSLATED YET ##ID:003279## mcset $l "Enter project name\n\t\t" \ "Enter project name\n\t\t" ;# <-- NOT TRANSLATED YET ##ID:003280## mcset $l "Choose project directory\n\t\t" \ "Choose project directory\n\t\t" ;# <-- NOT TRANSLATED YET ##ID:003281## mcset $l "Choose microcontroller (e.g. AT89S52)\n" \ "Choose microcontroller (e.g. AT89S52)\n" ;# <-- NOT TRANSLATED YET ##ID:003282## mcset $l "\t2. Write your code in the opened editor and click on " \ "\t2. Write your code in the opened editor and click on " ;# <-- NOT TRANSLATED YET ##ID:003283## mcset $l " to start the simulator\n" \ " to start the simulator\n" ;# <-- NOT TRANSLATED YET ##ID:003284## mcset $l "\t3. Step through your program by clicking on " \ "\t3. Step through your program by clicking on " ;# <-- NOT TRANSLATED YET ##ID:003285## mcset $l "Web site:" \ "Web site:" ;# <-- NOT TRANSLATED YET ##ID:003286## mcset $l "Author:" \ "Author:" ;# <-- NOT TRANSLATED YET ##ID:003287## mcset $l "Thank you for using/trying MCU 8051 IDE." \ "Thank you for using/trying MCU 8051 IDE." ;# <-- NOT TRANSLATED YET ##ID:003288## mcset $l "Welcome to MCU 8051 IDE" \ "Welcome to MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:003289## mcset $l "Change letter case" \ "Change letter case" ;# <-- NOT TRANSLATED YET ##ID:003290## mcset $l "U" \ "U" ;# <-- NOT TRANSLATED YET ##ID:003291## mcset $l "L" \ "L" ;# <-- NOT TRANSLATED YET ##ID:003292## mcset $l "All " \ "All " ;# <-- NOT TRANSLATED YET ##ID:003293## mcset $l "Change letter case - MCU 8051 IDE" \ "Change letter case - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:003294## mcset $l "Formatting ..." \ "Formatting ..." ;# <-- NOT TRANSLATED YET ##ID:003295## mcset $l "File name:" \ "File name:" ;# <-- NOT TRANSLATED YET ##ID:003296## mcset $l "Path:" \ "Path:" ;# <-- NOT TRANSLATED YET ##ID:003297## mcset $l "MCU:" \ "MCU:" ;# <-- NOT TRANSLATED YET ##ID:003298## mcset $l "XDATA:" \ "XDATA:" ;# <-- NOT TRANSLATED YET ##ID:003299## mcset $l "XCODE:" \ "XCODE:" ;# <-- NOT TRANSLATED YET ##ID:003300## mcset $l "Clock:" \ "Clock:" ;# <-- NOT TRANSLATED YET ##ID:003301## mcset $l "Default clock used by simulator engine" \ "Default clock used by simulator engine" ;# <-- NOT TRANSLATED YET ##ID:003302## mcset $l "Version:" \ "Version:" ;# <-- NOT TRANSLATED YET ##ID:003303## mcset $l "Project version (any string)" \ "Project version (any string)" ;# <-- NOT TRANSLATED YET ##ID:003304## mcset $l "Date:" \ "Date:" ;# <-- NOT TRANSLATED YET ##ID:003305## mcset $l "Project last update" \ "Project last update" ;# <-- NOT TRANSLATED YET ##ID:003306## mcset $l "Fill date entry with the current date" \ "Fill date entry with the current date" ;# <-- NOT TRANSLATED YET ##ID:003307## mcset $l "License:" \ "License:" ;# <-- NOT TRANSLATED YET ##ID:003308## mcset $l "Name of the license" \ "Name of the license" ;# <-- NOT TRANSLATED YET ##ID:003309## mcset $l "Copyright:" \ "Copyright:" ;# <-- NOT TRANSLATED YET ##ID:003310## mcset $l "Copyright information" \ "Copyright information" ;# <-- NOT TRANSLATED YET ##ID:003311## mcset $l "< Undefined >" \ "< Undefined >" ;# <-- NOT TRANSLATED YET ##ID:003312## mcset $l "%s - EEPROM write buffer" \ "%s - EEPROM write buffer" ;# <-- NOT TRANSLATED YET ##ID:003313## mcset $l "OFFSET = " \ "OFFSET = " ;# <-- NOT TRANSLATED YET ##ID:003314## mcset $l "Cursor: " \ "Cursor: " ;# <-- NOT TRANSLATED YET ##ID:003315## mcset $l "EEPROM write buffer - %s - MCU 8051 IDE" \ "EEPROM write buffer - %s - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:003316## mcset $l "This operation cannot be performed on an untitled file" \ "This operation cannot be performed on an untitled file" ;# <-- NOT TRANSLATED YET ##ID:003317## mcset $l "This file does not contain any part of the running program" \ "This file does not contain any part of the running program" ;# <-- NOT TRANSLATED YET ##ID:003319## mcset $l "Line to address" \ "Line to address" ;# <-- NOT TRANSLATED YET ##ID:003320## mcset $l "PC = " \ "PC = " ;# <-- NOT TRANSLATED YET ##ID:003321## mcset $l "Program jump" \ "Program jump" ;# <-- NOT TRANSLATED YET ##ID:003322## mcset $l "Subprogram call" \ "Subprogram call" ;# <-- NOT TRANSLATED YET ##ID:003323## mcset $l "Graphical representation of the line where to go" \ "Graphical representation of the line where to go" ;# <-- NOT TRANSLATED YET ##ID:003324## mcset $l "Line where to go" \ "Line where to go" ;# <-- NOT TRANSLATED YET ##ID:003325## mcset $l "Unable to resolve" \ "Unable to resolve" ;# <-- NOT TRANSLATED YET ##ID:003326## mcset $l "Hibernate running program - MCU 8051 IDE" \ "Hibernate running program - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:003327## mcset $l "Resume hibernated program - MCU 8051 IDE" \ "Resume hibernated program - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:003328## mcset $l "Hibernation failed" \ "Hibernation failed" ;# <-- NOT TRANSLATED YET ##ID:003329## mcset $l "Unable to write to file:\n%s\nCheck your permissions." \ "Unable to write to file:\n%s\nCheck your permissions." ;# <-- NOT TRANSLATED YET ##ID:003330## mcset $l "Resumption failed" \ "Resumption failed" ;# <-- NOT TRANSLATED YET ##ID:003331## mcset $l "Unable to read file:\n%s\nCheck your permissions." \ "Unable to read file:\n%s\nCheck your permissions." ;# <-- NOT TRANSLATED YET ##ID:003332## mcset $l "This hibernation is corrupted or it is not MCU 8051 IDE M5IHIB file." \ "This hibernation is corrupted or it is not MCU 8051 IDE M5IHIB file." ;# <-- NOT TRANSLATED YET ##ID:003333## mcset $l "Unable to change directory to '%s'." \ "Unable to change directory to '%s'." ;# <-- NOT TRANSLATED YET ##ID:003334## mcset $l "\nUnable to change directory to '%s'\n" \ "\nUnable to change directory to '%s'\n" ;# <-- NOT TRANSLATED YET ##ID:003335## mcset $l "Unable to find Doxygen" \ "Unable to find Doxygen" ;# <-- NOT TRANSLATED YET ##ID:003336## mcset $l "Unable to find Doxygen. Please install doxygen and restart MCU 8051 IDE." \ "Unable to find Doxygen. Please install doxygen and restart MCU 8051 IDE." ;# <-- NOT TRANSLATED YET ##ID:003337## mcset $l "Unable to find doxywizard" \ "Unable to find doxywizard" ;# <-- NOT TRANSLATED YET ##ID:003338## mcset $l "Unable to find doxywizard. Please install doxygen and restart MCU 8051 IDE." \ "Unable to find doxywizard. Please install doxygen and restart MCU 8051 IDE." ;# <-- NOT TRANSLATED YET ##ID:003339## mcset $l "\nError: Unable to change directory to '%s'\n" \ "\nError: Unable to change directory to '%s'\n" ;# <-- NOT TRANSLATED YET ##ID:003340## mcset $l "Unable to gain file statistics while external editor is used" \ "Unable to gain file statistics while external editor is used" ;# <-- NOT TRANSLATED YET ##ID:003341## mcset $l "Characters" \ "Characters" ;# <-- NOT TRANSLATED YET ##ID:003342## mcset $l "Words and numbers:" \ "Words and numbers:" ;# <-- NOT TRANSLATED YET ##ID:003343## mcset $l "Alphanumeric characters and connector punctuation characters" \ "Alphanumeric characters and connector punctuation characters" ;# <-- NOT TRANSLATED YET ##ID:003344## mcset $l "Comments:" \ "Comments:" ;# <-- NOT TRANSLATED YET ##ID:003345## mcset $l "Characters highlighted as comments" \ "Characters highlighted as comments" ;# <-- NOT TRANSLATED YET ##ID:003346## mcset $l "Other characters:" \ "Other characters:" ;# <-- NOT TRANSLATED YET ##ID:003347## mcset $l "All other characters without EOLs (e.g. spaces and brackets)" \ "All other characters without EOLs (e.g. spaces and brackets)" ;# <-- NOT TRANSLATED YET ##ID:003348## mcset $l "Total characters:" \ "Total characters:" ;# <-- NOT TRANSLATED YET ##ID:003349## mcset $l "All characters in the text without EOLs" \ "All characters in the text without EOLs" ;# <-- NOT TRANSLATED YET ##ID:003350## mcset $l "Strings" \ "Strings" ;# <-- NOT TRANSLATED YET ##ID:003351## mcset $l "Words:" \ "Words:" ;# <-- NOT TRANSLATED YET ##ID:003352## mcset $l "Just normal words (not keywords and not comments)" \ "Just normal words (not keywords and not comments)" ;# <-- NOT TRANSLATED YET ##ID:003353## mcset $l "Keywords:" \ "Keywords:" ;# <-- NOT TRANSLATED YET ##ID:003354## mcset $l "Instructions, Assembler directives, C directives, C keywords" \ "Instructions, Assembler directives, C directives, C keywords" ;# <-- NOT TRANSLATED YET ##ID:003355## mcset $l "Words in comments" \ "Words in comments" ;# <-- NOT TRANSLATED YET ##ID:003356## mcset $l "Total strings:" \ "Total strings:" ;# <-- NOT TRANSLATED YET ##ID:003357## mcset $l "Total number of words in the text" \ "Total number of words in the text" ;# <-- NOT TRANSLATED YET ##ID:003358## mcset $l "Lines" \ "Lines" ;# <-- NOT TRANSLATED YET ##ID:003359## mcset $l "Empty lines:" \ "Empty lines:" ;# <-- NOT TRANSLATED YET ##ID:003360## mcset $l "Totally empty lines (without even spaces)" \ "Totally empty lines (without even spaces)" ;# <-- NOT TRANSLATED YET ##ID:003361## mcset $l "Commented lines:" \ "Commented lines:" ;# <-- NOT TRANSLATED YET ##ID:003362## mcset $l "Lines which are all commented" \ "Lines which are all commented" ;# <-- NOT TRANSLATED YET ##ID:003363## mcset $l "Normal lines:" \ "Normal lines:" ;# <-- NOT TRANSLATED YET ##ID:003364## mcset $l "Just normal code lines" \ "Just normal code lines" ;# <-- NOT TRANSLATED YET ##ID:003365## mcset $l "Total lines:" \ "Total lines:" ;# <-- NOT TRANSLATED YET ##ID:003366## mcset $l "Total number of lines in the text" \ "Total number of lines in the text" ;# <-- NOT TRANSLATED YET ##ID:003367## mcset $l "Copy" \ "Copy" ;# <-- NOT TRANSLATED YET ##ID:003368## mcset $l "File statistics - MCU 8051 IDE" \ "File statistics - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:003369## mcset $l "Statistics for: %s\n\n" \ "Statistics for: %s\n\n" ;# <-- NOT TRANSLATED YET ##ID:003370## mcset $l "Characters:\n" \ "Characters:\n" ;# <-- NOT TRANSLATED YET ##ID:003371## mcset $l " Words and numbers:\t\t%s\n" \ " Words and numbers:\t\t%s\n" ;# <-- NOT TRANSLATED YET ##ID:003372## mcset $l " Comments:\t\t\t%s\n" \ " Comments:\t\t\t%s\n" ;# <-- NOT TRANSLATED YET ##ID:003373## mcset $l " Other characters:\t\t%s\n" \ " Other characters:\t\t%s\n" ;# <-- NOT TRANSLATED YET ##ID:003374## mcset $l " ------\n" \ " ------\n" ;# <-- NOT TRANSLATED YET ##ID:003375## mcset $l " Total characters:\t\t%s\n\n" \ " Total characters:\t\t%s\n\n" ;# <-- NOT TRANSLATED YET ##ID:003376## mcset $l "Strings:\n" \ "Strings:\n" ;# <-- NOT TRANSLATED YET ##ID:003377## mcset $l " Words:\t\t\t%s\n" \ " Words:\t\t\t%s\n" ;# <-- NOT TRANSLATED YET ##ID:003378## mcset $l " Keywords:\t\t\t%s\n" \ " Keywords:\t\t\t%s\n" ;# <-- NOT TRANSLATED YET ##ID:003379## mcset $l " Total strings:\t\t%s\n" \ " Total strings:\t\t%s\n" ;# <-- NOT TRANSLATED YET ##ID:003380## mcset $l "Lines:\n" \ "Lines:\n" ;# <-- NOT TRANSLATED YET ##ID:003381## mcset $l " Empty lines:\t\t\t%s\n" \ " Empty lines:\t\t\t%s\n" ;# <-- NOT TRANSLATED YET ##ID:003382## mcset $l " Commented lines:\t\t%s\n" \ " Commented lines:\t\t%s\n" ;# <-- NOT TRANSLATED YET ##ID:003383## mcset $l " Normal lines:\t\t\t%s\n" \ " Normal lines:\t\t\t%s\n" ;# <-- NOT TRANSLATED YET ##ID:003384## mcset $l " Total lines:\t\t\t%s\n" \ " Total lines:\t\t\t%s\n" ;# <-- NOT TRANSLATED YET ##ID:003385## mcset $l "Unable to read file:\n\"%s\"" \ "Unable to read file:\n\"%s\"" ;# <-- NOT TRANSLATED YET ##ID:003386## mcset $l "File modified" \ "File modified" ;# <-- NOT TRANSLATED YET ##ID:003387## mcset $l "The current VHW connections have been modified,\ndo you want to save them before closing ?" \ "The current VHW connections have been modified,\ndo you want to save them before closing ?" ;# <-- NOT TRANSLATED YET ##ID:003388## mcset $l "Open file - Virtual HW - MCU 8051 IDE" \ "Open file - Virtual HW - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:003389## mcset $l "Virtual HW" \ "Virtual HW" ;# <-- NOT TRANSLATED YET ##ID:003390## mcset $l "VH component" \ "VH component" ;# <-- NOT TRANSLATED YET ##ID:004525## mcset $l "All relevant" \ "All relevant" ;# <-- NOT TRANSLATED YET ##ID:003391## mcset $l "Load file - Virtual HW - MCU 8051 IDE" \ "Load file - Virtual HW - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:003392## mcset $l "Unable to save Virtual HW connections" \ "Unable to save Virtual HW connections" ;# <-- NOT TRANSLATED YET ##ID:003393## mcset $l "Save file - Virtual HW - MCU 8051 IDE" \ "Save file - Virtual HW - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:003394## mcset $l "A file name '%s' already exists. Do you want to overwrite it ?" \ "A file name '%s' already exists. Do you want to overwrite it ?" ;# <-- NOT TRANSLATED YET ##ID:003395## mcset $l "Unable to save file:\n\"%s\"" \ "Unable to save file:\n\"%s\"" ;# <-- NOT TRANSLATED YET ##ID:003396## mcset $l "Do you really want to remove all virtual hardware from the current simulation scenario ?" \ "Do you really want to remove all virtual hardware from the current simulation scenario ?" ;# <-- NOT TRANSLATED YET ##ID:003397## mcset $l "Set display size" \ "Set display size" ;# <-- NOT TRANSLATED YET } # simulator_gui.tcl # ============================================================================== namespace eval Simulator_GUI { set ::SFB_TRANSLATIONS { ##ID:003398## mcset $l "Bit address: 0xD7 -- Carry Flag" \ "Bit address: 0xD7 -- Carry Flag" ;# <-- NOT TRANSLATED YET ##ID:003399## mcset $l "Bit address: 0xD6 -- Auxiliary Carry Flag" \ "Bit address: 0xD6 -- Auxiliary Carry Flag" ;# <-- NOT TRANSLATED YET ##ID:003400## mcset $l "Bit address: 0xD5 -- Flag 0 available to the user for general purpose" \ "Bit address: 0xD5 -- Flag 0 available to the user for general purpose" ;# <-- NOT TRANSLATED YET ##ID:003401## mcset $l "Bit address: 0xD4 -- Register Bank selector bit 1" \ "Bit address: 0xD4 -- Register Bank selector bit 1" ;# <-- NOT TRANSLATED YET ##ID:003402## mcset $l "Bit address: 0xD3 -- Register Bank selector bit 0" \ "Bit address: 0xD3 -- Register Bank selector bit 0" ;# <-- NOT TRANSLATED YET ##ID:003403## mcset $l "Bit address: 0xD2 -- Overflow Flag" \ "Bit address: 0xD2 -- Overflow Flag" ;# <-- NOT TRANSLATED YET ##ID:003404## mcset $l "Bit address: 0xD1 -- Usable as a general purpose flag" \ "Bit address: 0xD1 -- Usable as a general purpose flag" ;# <-- NOT TRANSLATED YET ##ID:003405## mcset $l "Bit address: 0xD0 -- Parity flag" \ "Bit address: 0xD0 -- Parity flag" ;# <-- NOT TRANSLATED YET ##ID:003406## mcset $l "Bit address: 0x9F -- Framing Error bit" \ "Bit address: 0x9F -- Framing Error bit" ;# <-- NOT TRANSLATED YET ##ID:003407## mcset $l "Bit address: 0x8F -- Timer 1 overflow flag" \ "Bit address: 0x8F -- Timer 1 overflow flag" ;# <-- NOT TRANSLATED YET ##ID:003408## mcset $l "Bit address: 0x8E -- Timer 1 run control bit" \ "Bit address: 0x8E -- Timer 1 run control bit" ;# <-- NOT TRANSLATED YET ##ID:003409## mcset $l "Bit address: 0x8D -- Timer 0 overflow flag" \ "Bit address: 0x8D -- Timer 0 overflow flag" ;# <-- NOT TRANSLATED YET ##ID:003410## mcset $l "Bit address: 0x8C -- Timer 0 run control bit" \ "Bit address: 0x8C -- Timer 0 run control bit" ;# <-- NOT TRANSLATED YET ##ID:003411## mcset $l "Bit address: 0x8B -- External Interrupt 1 edge flag" \ "Bit address: 0x8B -- External Interrupt 1 edge flag" ;# <-- NOT TRANSLATED YET ##ID:003412## mcset $l "Bit address: 0x8A -- Interrupt 1 type control bit" \ "Bit address: 0x8A -- Interrupt 1 type control bit" ;# <-- NOT TRANSLATED YET ##ID:003413## mcset $l "Bit address: 0x89 -- External Interrupt 0 edge flag" \ "Bit address: 0x89 -- External Interrupt 0 edge flag" ;# <-- NOT TRANSLATED YET ##ID:003414## mcset $l "Bit address: 0x88 -- Interrupt 0 type control bit" \ "Bit address: 0x88 -- Interrupt 0 type control bit" ;# <-- NOT TRANSLATED YET ##ID:003415## mcset $l "Bit address: 0xA8 -- Enable or disable External Interrupt 0" \ "Bit address: 0xA8 -- Enable or disable External Interrupt 0" ;# <-- NOT TRANSLATED YET ##ID:003416## mcset $l "Bit address: 0xA9 -- Enable or disable the Timer 0 overflow interrupt" \ "Bit address: 0xA9 -- Enable or disable the Timer 0 overflow interrupt" ;# <-- NOT TRANSLATED YET ##ID:003417## mcset $l "Bit address: 0xAA -- Enable or disable External Interrupt 1" \ "Bit address: 0xAA -- Enable or disable External Interrupt 1" ;# <-- NOT TRANSLATED YET ##ID:003418## mcset $l "Bit address: 0xAB -- Enable or disable the Timer 1 overflow interrupt" \ "Bit address: 0xAB -- Enable or disable the Timer 1 overflow interrupt" ;# <-- NOT TRANSLATED YET ##ID:003419## mcset $l "Bit address: 0xAC -- Enable or disable the serial port interrupt" \ "Bit address: 0xAC -- Enable or disable the serial port interrupt" ;# <-- NOT TRANSLATED YET ##ID:003420## mcset $l "Bit address: 0xAD -- Enable or disable the Timer 2 overflow interrupt" \ "Bit address: 0xAD -- Enable or disable the Timer 2 overflow interrupt" ;# <-- NOT TRANSLATED YET ##ID:003421## mcset $l "Bit address: 0xAE -- Enable or disable the comparator interrupt" \ "Bit address: 0xAE -- Enable or disable the comparator interrupt" ;# <-- NOT TRANSLATED YET ##ID:003422## mcset $l "Bit address: 0xB8 -- Defines the External Interrupt 0 priority level" \ "Bit address: 0xB8 -- Defines the External Interrupt 0 priority level" ;# <-- NOT TRANSLATED YET ##ID:003423## mcset $l "Bit address: 0xB9 -- Defines the Timer 0 interrupt priority level" \ "Bit address: 0xB9 -- Defines the Timer 0 interrupt priority level" ;# <-- NOT TRANSLATED YET ##ID:003424## mcset $l "Bit address: 0xBA -- Defines External Interrupt 1 priority level" \ "Bit address: 0xBA -- Defines External Interrupt 1 priority level" ;# <-- NOT TRANSLATED YET ##ID:003425## mcset $l "Bit address: 0xBB -- Defines the Timer 1 interrupt priority level" \ "Bit address: 0xBB -- Defines the Timer 1 interrupt priority level" ;# <-- NOT TRANSLATED YET ##ID:003426## mcset $l "Bit address: 0xBC -- Defines the Serial Port interrupt priority level" \ "Bit address: 0xBC -- Defines the Serial Port interrupt priority level" ;# <-- NOT TRANSLATED YET ##ID:003427## mcset $l "Bit address: 0xBD -- Defines the Timer 2 interrupt priority level" \ "Bit address: 0xBD -- Defines the Timer 2 interrupt priority level" ;# <-- NOT TRANSLATED YET ##ID:003428## mcset $l "Bit address: 0xBE -- Defines the comparator interrupt priority level" \ "Bit address: 0xBE -- Defines the comparator interrupt priority level" ;# <-- NOT TRANSLATED YET ##ID:003429## mcset $l "Bit address: 0x98 -- Receive interrupt flag" \ "Bit address: 0x98 -- Receive interrupt flag" ;# <-- NOT TRANSLATED YET ##ID:003430## mcset $l "Bit address: 0x99 -- Transmit interrupt flag" \ "Bit address: 0x99 -- Transmit interrupt flag" ;# <-- NOT TRANSLATED YET ##ID:003431## mcset $l "Bit address: 0xCF -- Timer 2 overflow flag" \ "Bit address: 0xCF -- Timer 2 overflow flag" ;# <-- NOT TRANSLATED YET ##ID:003432## mcset $l "Bit address: 0xCE -- Timer 2 external flag" \ "Bit address: 0xCE -- Timer 2 external flag" ;# <-- NOT TRANSLATED YET ##ID:003433## mcset $l "Bit address: 0xBF -- Not implemented" \ "Bit address: 0xBF -- Not implemented" ;# <-- NOT TRANSLATED YET ##ID:003434## mcset $l "Bit address: 0xAF -- Disables all interrupts" \ "Bit address: 0xAF -- Disables all interrupts" ;# <-- NOT TRANSLATED YET ##ID:003435## mcset $l "Bit address: 0x9F -- Serial Port mode specifier" \ "Bit address: 0x9F -- Serial Port mode specifier" ;# <-- NOT TRANSLATED YET ##ID:003436## mcset $l "Bit address: 0x9E -- Serial Port mode specifier" \ "Bit address: 0x9E -- Serial Port mode specifier" ;# <-- NOT TRANSLATED YET ##ID:003437## mcset $l "Bit address: 0x9D -- Enables the multiprocessor communication feature" \ "Bit address: 0x9D -- Enables the multiprocessor communication feature" ;# <-- NOT TRANSLATED YET ##ID:003438## mcset $l "Bit address: 0x9C -- Enable/Disable reception" \ "Bit address: 0x9C -- Enable/Disable reception" ;# <-- NOT TRANSLATED YET ##ID:003439## mcset $l "Bit address: 0x9B -- The 9th bit that will be transmitted in modes 2 and 3" \ "Bit address: 0x9B -- The 9th bit that will be transmitted in modes 2 and 3" ;# <-- NOT TRANSLATED YET ##ID:003440## mcset $l "Bit address: 0x9A -- Receiver Bit 8" \ "Bit address: 0x9A -- Receiver Bit 8" ;# <-- NOT TRANSLATED YET ##ID:003441## mcset $l "Bit address: 0xCD -- Receive clock enable" \ "Bit address: 0xCD -- Receive clock enable" ;# <-- NOT TRANSLATED YET ##ID:003442## mcset $l "Bit address: 0xCC -- Transmit clock enable" \ "Bit address: 0xCC -- Transmit clock enable" ;# <-- NOT TRANSLATED YET ##ID:003443## mcset $l "Bit address: 0xCB -- Timer 2 external enable" \ "Bit address: 0xCB -- Timer 2 external enable" ;# <-- NOT TRANSLATED YET ##ID:003444## mcset $l "Bit address: 0xCA -- Start/Stop control for Timer 2" \ "Bit address: 0xCA -- Start/Stop control for Timer 2" ;# <-- NOT TRANSLATED YET ##ID:003445## mcset $l "Bit address: 0xC9 -- Timer or counter select for Timer 2" \ "Bit address: 0xC9 -- Timer or counter select for Timer 2" ;# <-- NOT TRANSLATED YET ##ID:003446## mcset $l "Bit address: 0xC8 -- Capture/Reload select" \ "Bit address: 0xC8 -- Capture/Reload select" ;# <-- NOT TRANSLATED YET } eval ${SFB_TRANSLATIONS} ##ID:003447## mcset $l "Set to 1" \ "Set to 1" ;# <-- NOT TRANSLATED YET ##ID:003448## mcset $l "Set this bit to 1" \ "Set this bit to 1" ;# <-- NOT TRANSLATED YET ##ID:003449## mcset $l "Set to 0" \ "Set to 0" ;# <-- NOT TRANSLATED YET ##ID:003450## mcset $l "Set this bit to 0" \ "Set this bit to 0" ;# <-- NOT TRANSLATED YET ##ID:003451## mcset $l "Start/Stop simulator" \ "Start/Stop simulator" ;# <-- NOT TRANSLATED YET ##ID:003452## mcset $l "Load program into the simulator engine, or shutdown the MCU simulator." \ "Load program into the simulator engine, or shutdown the MCU simulator." ;# <-- NOT TRANSLATED YET ##ID:003453## mcset $l "Reset" \ "Reset" ;# <-- NOT TRANSLATED YET ##ID:003454## mcset $l "Perform HW reset" \ "Perform HW reset" ;# <-- NOT TRANSLATED YET ##ID:003455## mcset $l "Step back" \ "Step back" ;# <-- NOT TRANSLATED YET ##ID:003456## mcset $l "Take MCU back to state before the last instruction" \ "Take MCU back to state before the last instruction" ;# <-- NOT TRANSLATED YET ##ID:003457## mcset $l "Step program" \ "Step program" ;# <-- NOT TRANSLATED YET ##ID:003458## mcset $l "Step by 1 instruction" \ "Step by 1 instruction" ;# <-- NOT TRANSLATED YET ##ID:003459## mcset $l "Step over" \ "Step over" ;# <-- NOT TRANSLATED YET ##ID:003460## mcset $l "Step by 1 line of code" \ "Step by 1 line of code" ;# <-- NOT TRANSLATED YET ##ID:003461## mcset $l "Animate program" \ "Animate program" ;# <-- NOT TRANSLATED YET ##ID:003462## mcset $l "Run program and show results after each instruction" \ "Run program and show results after each instruction" ;# <-- NOT TRANSLATED YET ##ID:003463## mcset $l "Run program" \ "Run program" ;# <-- NOT TRANSLATED YET ##ID:003464## mcset $l "Run program and show results after some time" \ "Run program and show results after some time" ;# <-- NOT TRANSLATED YET ##ID:003465## mcset $l "TIMERS 0 & 1" \ "TIMERS 0 & 1" ;# <-- NOT TRANSLATED YET ##ID:003466## mcset $l "INTERRUPTS" \ "INTERRUPTS" ;# <-- NOT TRANSLATED YET ##ID:003467## mcset $l "HEX DEC BIN OCT CHAR" \ "HEX DEC BIN OCT CHAR" ;# <-- NOT TRANSLATED YET ##ID:003468## mcset $l "SFR 0xE0: Primary Accumulator" \ "SFR 0xE0: Primary Accumulator" ;# <-- NOT TRANSLATED YET ##ID:003469## mcset $l "SFR 0xF0: Secondary Accumulator" \ "SFR 0xF0: Secondary Accumulator" ;# <-- NOT TRANSLATED YET ##ID:003470## mcset $l "Address: %s" \ "Address: %s" ;# <-- NOT TRANSLATED YET ##ID:003471## mcset $l "SFR 0xD0: Program Status Word" \ "SFR 0xD0: Program Status Word" ;# <-- NOT TRANSLATED YET ##ID:003472## mcset $l "SFR 0x81: Stack pointer" \ "SFR 0x81: Stack pointer" ;# <-- NOT TRANSLATED YET ##ID:003473## mcset $l "Carry Flag" \ "Carry Flag" ;# <-- NOT TRANSLATED YET ##ID:003474## mcset $l "Auxiliary Carry flag.\n(For BCD operations.)" \ "Auxiliary Carry flag.\n(For BCD operations.)" ;# <-- NOT TRANSLATED YET ##ID:003475## mcset $l "Flag 0\n(Available to the user for general purposes.)" \ "Flag 0\n(Available to the user for general purposes.)" ;# <-- NOT TRANSLATED YET ##ID:003476## mcset $l "Register bank Select control bit 1. Set/cleared\nby software to determine working register bank." \ "Register bank Select control bit 1. Set/cleared\nby software to determine working register bank." ;# <-- NOT TRANSLATED YET ##ID:003477## mcset $l "Register bank Select control bit 0. Set/cleared\nby software to determine working register bank." \ "Register bank Select control bit 0. Set/cleared\nby software to determine working register bank." ;# <-- NOT TRANSLATED YET ##ID:003478## mcset $l "Overflow flag" \ "Overflow flag" ;# <-- NOT TRANSLATED YET ##ID:003479## mcset $l "(reserved)" \ "(reserved)" ;# <-- NOT TRANSLATED YET ##ID:003480## mcset $l "Parity flag.\nSet/cleared by hardware each instruction cycle to\nindicate and odd/even number of “one” bits in the\naccumulator, i.e., even parity." \ "Parity flag.\nSet/cleared by hardware each instruction cycle to\nindicate and odd/even number of “one” bits in the\naccumulator, i.e., even parity." ;# <-- NOT TRANSLATED YET ##ID:003481## mcset $l "SFR 0x88: Timer/Counter control register" \ "SFR 0x88: Timer/Counter control register" ;# <-- NOT TRANSLATED YET ##ID:003482## mcset $l "Timer 1 Overflow Flag\nCleared by hardware when processor vectors to interrupt routine.\nSet by hardware on timer/counter overflow, when the timer 1 register overflows." \ "Timer 1 Overflow Flag\nCleared by hardware when processor vectors to interrupt routine.\nSet by hardware on timer/counter overflow, when the timer 1 register overflows." ;# <-- NOT TRANSLATED YET ##ID:003483## mcset $l "Timer 1 Run Control Bit\nClear to turn off timer/counter 1.\nSet to turn on timer/counter 1." \ "Timer 1 Run Control Bit\nClear to turn off timer/counter 1.\nSet to turn on timer/counter 1." ;# <-- NOT TRANSLATED YET ##ID:003484## mcset $l "Timer 0 Overflow Flag\nCleared by hardware when processor vectors to interrupt routine.\nSet by hardware on timer/counter overflow, when the timer 0 register overflows." \ "Timer 0 Overflow Flag\nCleared by hardware when processor vectors to interrupt routine.\nSet by hardware on timer/counter overflow, when the timer 0 register overflows." ;# <-- NOT TRANSLATED YET ##ID:003485## mcset $l "Timer 0 Run Control Bit\nClear to turn off timer/counter 0.\nSet to turn on timer/counter 0." \ "Timer 0 Run Control Bit\nClear to turn off timer/counter 0.\nSet to turn on timer/counter 0." ;# <-- NOT TRANSLATED YET ##ID:003486## mcset $l "Interrupt 1 Edge Flag\nCleared by hardware when interrupt is processed if edge-triggered (see IT1).\nSet by hardware when external interrupt is detected on INT1# pin." \ "Interrupt 1 Edge Flag\nCleared by hardware when interrupt is processed if edge-triggered (see IT1).\nSet by hardware when external interrupt is detected on INT1# pin." ;# <-- NOT TRANSLATED YET ##ID:003487## mcset $l "Interrupt 1 Type Control Bit\nClear to select low level active (level triggered) for external interrupt 1 (INT1#).\nSet to select falling edge active (edge triggered) for external interrupt 1." \ "Interrupt 1 Type Control Bit\nClear to select low level active (level triggered) for external interrupt 1 (INT1#).\nSet to select falling edge active (edge triggered) for external interrupt 1." ;# <-- NOT TRANSLATED YET ##ID:003488## mcset $l "Interrupt 0 Edge Flag\nCleared by hardware when interrupt is processed if edge-triggered (see IT0).\nSet by hardware when external interrupt is detected on INT0# pin." \ "Interrupt 0 Edge Flag\nCleared by hardware when interrupt is processed if edge-triggered (see IT0).\nSet by hardware when external interrupt is detected on INT0# pin." ;# <-- NOT TRANSLATED YET ##ID:003489## mcset $l "Interrupt 0 Type Control Bit\nClear to select low level active (level triggered) for external interrupt 0 (INT0#).\nSet to select falling edge active (edge triggered) for external interrupt 0." \ "Interrupt 0 Type Control Bit\nClear to select low level active (level triggered) for external interrupt 0 (INT0#).\nSet to select falling edge active (edge triggered) for external interrupt 0." ;# <-- NOT TRANSLATED YET ##ID:003490## mcset $l "Timer 1 Gating Control Bit" \ "Timer 1 Gating Control Bit" ;# <-- NOT TRANSLATED YET ##ID:003491## mcset $l "Timer 1 Counter/Timer Select Bit" \ "Timer 1 Counter/Timer Select Bit" ;# <-- NOT TRANSLATED YET ##ID:003492## mcset $l "Timer 1 Mode Select Bit" \ "Timer 1 Mode Select Bit" ;# <-- NOT TRANSLATED YET ##ID:003493## mcset $l "Timer 0 Gating Control Bit" \ "Timer 0 Gating Control Bit" ;# <-- NOT TRANSLATED YET ##ID:003494## mcset $l "Timer 0 Counter/Timer Select Bit" \ "Timer 0 Counter/Timer Select Bit" ;# <-- NOT TRANSLATED YET ##ID:003495## mcset $l "Timer 0 Mode Select Bit" \ "Timer 0 Mode Select Bit" ;# <-- NOT TRANSLATED YET ##ID:003496## mcset $l "SFR 0x89: Timer/Counter mode control register" \ "SFR 0x89: Timer/Counter mode control register" ;# <-- NOT TRANSLATED YET ##ID:003497## mcset $l "Timer 1 Gating Control Bit\nClear to enable timer 1 whenever the TR1 bit is set.\nSet to enable timer 1 only while the INT1# pin is high and TR1 bit is set." \ "Timer 1 Gating Control Bit\nClear to enable timer 1 whenever the TR1 bit is set.\nSet to enable timer 1 only while the INT1# pin is high and TR1 bit is set." ;# <-- NOT TRANSLATED YET ##ID:003498## mcset $l "Timer 1 Counter/Timer Select Bit\nClear for timer operation: timer 1 counts the divided-down system clock.\nSet for Counter operation: timer 1 counts negative transitions on external pin T1." \ "Timer 1 Counter/Timer Select Bit\nClear for timer operation: timer 1 counts the divided-down system clock.\nSet for Counter operation: timer 1 counts negative transitions on external pin T1." ;# <-- NOT TRANSLATED YET ##ID:003499## mcset $l "Timer 1 Mode Select Bits\nM11\tM01\tOperating mode\n 0\t 0\tMode 0: 8-bit timer/counter (TH1) with 5-bit prescaler (TL1).\n 0\t 1\tMode 1: 16-bit timer/counter.\n 1\t 0\tMode 2: 8-bit auto-reload timer/counter (TL1). Reloaded from TH1 at overflow.\n 1\t 1\tMode 3: timer 1 halted. Retains count." \ "Timer 1 Mode Select Bits\nM11\tM01\tOperating mode\n 0\t 0\tMode 0: 8-bit timer/counter (TH1) with 5-bit prescaler (TL1).\n 0\t 1\tMode 1: 16-bit timer/counter.\n 1\t 0\tMode 2: 8-bit auto-reload timer/counter (TL1). Reloaded from TH1 at overflow.\n 1\t 1\tMode 3: timer 1 halted. Retains count." ;# <-- NOT TRANSLATED YET ##ID:003500## mcset $l "Timer 0 Gating Control Bit\nClear to enable timer 0 whenever the TR0 bit is set.\nSet to enable timer/counter 0 only while the INT0# pin is high and the TR0 bit is set." \ "Timer 0 Gating Control Bit\nClear to enable timer 0 whenever the TR0 bit is set.\nSet to enable timer/counter 0 only while the INT0# pin is high and the TR0 bit is set." ;# <-- NOT TRANSLATED YET ##ID:003501## mcset $l "Timer 0 Counter/Timer Select Bit\nClear for timer operation: timer 0 counts the divided-down system clock.\nSet for counter operation: timer 0 counts negative transitions on external pin T0." \ "Timer 0 Counter/Timer Select Bit\nClear for timer operation: timer 0 counts the divided-down system clock.\nSet for counter operation: timer 0 counts negative transitions on external pin T0." ;# <-- NOT TRANSLATED YET ##ID:003502## mcset $l "Timer 0 Mode Select Bit\nM1\tM0\tOperating mode\n 0\t 0\tMode 0: 8-bit timer/counter (TH0) with 5-bit prescaler (TL0).\n 0\t 1\tMode 1: 16-bit timer/counter.\n 1\t 0\tMode 2: 8-bit auto-reload timer/counter (TL0). Reloaded from TH0 at overflow.\n 1\t 1\tMode 3: TL0 is an 8-bit timer/counter.\nTH0 is an 8-bit timer using timer 1’s TR0 and TF0 bits." \ "Timer 0 Mode Select Bit\nM1\tM0\tOperating mode\n 0\t 0\tMode 0: 8-bit timer/counter (TH0) with 5-bit prescaler (TL0).\n 0\t 1\tMode 1: 16-bit timer/counter.\n 1\t 0\tMode 2: 8-bit auto-reload timer/counter (TL0). Reloaded from TH0 at overflow.\n 1\t 1\tMode 3: TL0 is an 8-bit timer/counter.\nTH0 is an 8-bit timer using timer 1’s TR0 and TF0 bits." ;# <-- NOT TRANSLATED YET ##ID:003503## mcset $l "Timer 0 Mode Select Bit\nM10\tM00\tOperating mode\n 0\t 0\tMode 0: 8-bit timer/counter (TH0) with 5-bit prescaler (TL0).\n 0\t 1\tMode 1: 16-bit timer/counter.\n 1\t 0\tMode 2: 8-bit auto-reload timer/counter (TL0). Reloaded from TH0 at overflow.\n 1\t 1\tMode 3: TL0 is an 8-bit timer/counter.\nTH0 is an 8-bit timer using timer 1’s TR0 and TF0 bits." \ "Timer 0 Mode Select Bit\nM10\tM00\tOperating mode\n 0\t 0\tMode 0: 8-bit timer/counter (TH0) with 5-bit prescaler (TL0).\n 0\t 1\tMode 1: 16-bit timer/counter.\n 1\t 0\tMode 2: 8-bit auto-reload timer/counter (TL0). Reloaded from TH0 at overflow.\n 1\t 1\tMode 3: TL0 is an 8-bit timer/counter.\nTH0 is an 8-bit timer using timer 1’s TR0 and TF0 bits." ;# <-- NOT TRANSLATED YET ##ID:003504## mcset $l "SFR 0xA8: Interrupt enable register" \ "SFR 0xA8: Interrupt enable register" ;# <-- NOT TRANSLATED YET ##ID:003505## mcset $l "Global disable bit. If EA = O, all Interrupts are disabled. If EA = 1, each interrupt can be\nindividually enabled or disabled by setting or clearing its enable bit." \ "Global disable bit. If EA = O, all Interrupts are disabled. If EA = 1, each interrupt can be\nindividually enabled or disabled by setting or clearing its enable bit." ;# <-- NOT TRANSLATED YET ##ID:003506## mcset $l "Timer 0 interrupt enable bit." \ "Timer 0 interrupt enable bit." ;# <-- NOT TRANSLATED YET ##ID:003507## mcset $l "Timer 1 interrupt enable bit." \ "Timer 1 interrupt enable bit." ;# <-- NOT TRANSLATED YET ##ID:003508## mcset $l "Timer 2 interrupt enable bit." \ "Timer 2 interrupt enable bit." ;# <-- NOT TRANSLATED YET ##ID:003509## mcset $l "External interrupt 1 enable bit." \ "External interrupt 1 enable bit." ;# <-- NOT TRANSLATED YET ##ID:003510## mcset $l "External interrupt O enable bit." \ "External interrupt O enable bit." ;# <-- NOT TRANSLATED YET ##ID:003511## mcset $l "SFR 0xB8: Interrupt priority register" \ "SFR 0xB8: Interrupt priority register" ;# <-- NOT TRANSLATED YET ##ID:003512## mcset $l "Not implemented" \ "Not implemented" ;# <-- NOT TRANSLATED YET ##ID:003513## mcset $l "Timer 1 interrupt priority bit" \ "Timer 1 interrupt priority bit" ;# <-- NOT TRANSLATED YET ##ID:003514## mcset $l "External interrupt 1 priority bit" \ "External interrupt 1 priority bit" ;# <-- NOT TRANSLATED YET ##ID:003515## mcset $l "Timer 0 interrupt priority bit" \ "Timer 0 interrupt priority bit" ;# <-- NOT TRANSLATED YET ##ID:003516## mcset $l "External interrupt 0 priority bit" \ "External interrupt 0 priority bit" ;# <-- NOT TRANSLATED YET ##ID:003517## mcset $l "SFR 0x98: Serial port control register" \ "SFR 0x98: Serial port control register" ;# <-- NOT TRANSLATED YET ##ID:003518## mcset $l "Serial port Mode bit 0\nRefer to SM1 for serial port mode selection.\nSMOD0 must be cleared to enable access to the SM0 bit" \ "Serial port Mode bit 0\nRefer to SM1 for serial port mode selection.\nSMOD0 must be cleared to enable access to the SM0 bit" ;# <-- NOT TRANSLATED YET ##ID:003519## mcset $l "Serial port Mode bit 1\nSM0\tSM1\tMode\tDescription\t\tBaud Rate\n0\t0\t0\tShift Register\tFCPU PERIPH/6\n0\t1\t1\t8-bit UART\tVariable\n1\t0\t2\t9-bit UART\tFCPU PERIPH /32 or /16\n1\t1\t3\t9-bit UART\tVariable" \ "Serial port Mode bit 1\nSM0\tSM1\tMode\tDescription\t\tBaud Rate\n0\t0\t0\tShift Register\tFCPU PERIPH/6\n0\t1\t1\t8-bit UART\tVariable\n1\t0\t2\t9-bit UART\tFCPU PERIPH /32 or /16\n1\t1\t3\t9-bit UART\tVariable" ;# <-- NOT TRANSLATED YET ##ID:003520## mcset $l "Serial port Mode 2 bit / Multiprocessor Communication Enable bit\nClear to disable multiprocessor communication feature.\nSet to enable multiprocessor communication feature in mode 2 and 3, and eventually mode 1. This bit should be\ncleared in mode 0" \ "Serial port Mode 2 bit / Multiprocessor Communication Enable bit\nClear to disable multiprocessor communication feature.\nSet to enable multiprocessor communication feature in mode 2 and 3, and eventually mode 1. This bit should be\ncleared in mode 0" ;# <-- NOT TRANSLATED YET ##ID:003521## mcset $l "Reception Enable bit\nClear to disable serial reception.\nSet to enable serial reception." \ "Reception Enable bit\nClear to disable serial reception.\nSet to enable serial reception." ;# <-- NOT TRANSLATED YET ##ID:003522## mcset $l "Transmitter Bit 8 / Ninth bit to transmit in modes 2 and 3.\no transmit a logic 0 in the 9th bit.\nSet to transmit a logic 1 in the 9th bit." \ "Transmitter Bit 8 / Ninth bit to transmit in modes 2 and 3.\no transmit a logic 0 in the 9th bit.\nSet to transmit a logic 1 in the 9th bit." ;# <-- NOT TRANSLATED YET ##ID:003523## mcset $l "Receiver Bit 8 / Ninth bit received in modes 2 and 3\nCleared by hardware if 9th bit received is a logic 0.\nSet by hardware if 9th bit received is a logic 1.\nIn mode 1, if SM2 = 0, RB8 is the received stop bit. In mode 0 RB8 is not used." \ "Receiver Bit 8 / Ninth bit received in modes 2 and 3\nCleared by hardware if 9th bit received is a logic 0.\nSet by hardware if 9th bit received is a logic 1.\nIn mode 1, if SM2 = 0, RB8 is the received stop bit. In mode 0 RB8 is not used." ;# <-- NOT TRANSLATED YET ##ID:003524## mcset $l "Transmit Interrupt flag\nClear to acknowledge interrupt.\nSet by hardware at the end of the 8th bit time in mode 0 or at the beginning of the stop bit in the other modes." \ "Transmit Interrupt flag\nClear to acknowledge interrupt.\nSet by hardware at the end of the 8th bit time in mode 0 or at the beginning of the stop bit in the other modes." ;# <-- NOT TRANSLATED YET ##ID:003525## mcset $l "Receive Interrupt flag\nClear to acknowledge interrupt.\nSet by hardware at the end of the 8th bit time in mode 0, see Figure 2-26. and Figure 2-27. in the other modes." \ "Receive Interrupt flag\nClear to acknowledge interrupt.\nSet by hardware at the end of the 8th bit time in mode 0, see Figure 2-26. and Figure 2-27. in the other modes." ;# <-- NOT TRANSLATED YET ##ID:003526## mcset $l "Power Off Flag" \ "Power Off Flag" ;# <-- NOT TRANSLATED YET ##ID:003527## mcset $l "Power-Off Flag\nCleared to recognize next reset type.\nSet by hardware when VCC rises from 0 to its nominal voltage. Can also be set by software." \ "Power-Off Flag\nCleared to recognize next reset type.\nSet by hardware when VCC rises from 0 to its nominal voltage. Can also be set by software." ;# <-- NOT TRANSLATED YET ##ID:003528## mcset $l "General purpose flag bit" \ "General purpose flag bit" ;# <-- NOT TRANSLATED YET ##ID:003529## mcset $l "General purpose Flag\nCleared by user for general purpose usage.\nSet by user for general purpose usage." \ "General purpose Flag\nCleared by user for general purpose usage.\nSet by user for general purpose usage." ;# <-- NOT TRANSLATED YET ##ID:003530## mcset $l "Power down bit" \ "Power down bit" ;# <-- NOT TRANSLATED YET ##ID:003531## mcset $l "Power-Down mode bit\nCleared by hardware when reset occurs.\nSet to enter power-down mode." \ "Power-Down mode bit\nCleared by hardware when reset occurs.\nSet to enter power-down mode." ;# <-- NOT TRANSLATED YET ##ID:003532## mcset $l "Idle mode bit" \ "Idle mode bit" ;# <-- NOT TRANSLATED YET ##ID:003533## mcset $l "Idle mode bit\nCleared by hardware when interrupt or reset occurs.\nSet to enter idle mode." \ "Idle mode bit\nCleared by hardware when interrupt or reset occurs.\nSet to enter idle mode." ;# <-- NOT TRANSLATED YET ##ID:003534## mcset $l "Double baud rate bit" \ "Double baud rate bit" ;# <-- NOT TRANSLATED YET ##ID:003535## mcset $l "Serial port Mode bit 1 for UART\nSet to select double baud rate in mode 1, 2 or 3." \ "Serial port Mode bit 1 for UART\nSet to select double baud rate in mode 1, 2 or 3." ;# <-- NOT TRANSLATED YET ##ID:003536## mcset $l "Frame Error Select" \ "Frame Error Select" ;# <-- NOT TRANSLATED YET ##ID:003537## mcset $l "Frame Error Select. When SMOD0 = 0, SCON.7 is SM0. When SMOD0 = 1, SCON.7 is FE.\nNote that FE will be set after a frame error\nregardless of the state of SMOD0." \ "Frame Error Select. When SMOD0 = 0, SCON.7 is SM0. When SMOD0 = 1, SCON.7 is FE.\nNote that FE will be set after a frame error\nregardless of the state of SMOD0." ;# <-- NOT TRANSLATED YET ##ID:003538## mcset $l "Pulse Width Modulation Enable" \ "Pulse Width Modulation Enable" ;# <-- NOT TRANSLATED YET ##ID:003539## mcset $l "Pulse Width Modulation Enable. When PWMEN = 1, Timer 0 and Timer 1 are\nconfigured as an 8-bit PWM counter with 8-bit auto-reload prescaler.\nThe PWM outputs on T1 (P3.5)." \ "Pulse Width Modulation Enable. When PWMEN = 1, Timer 0 and Timer 1 are\nconfigured as an 8-bit PWM counter with 8-bit auto-reload prescaler.\nThe PWM outputs on T1 (P3.5)." ;# <-- NOT TRANSLATED YET ##ID:003540## mcset $l "SFR 0xC8: Timer/Counter 2 control register" \ "SFR 0xC8: Timer/Counter 2 control register" ;# <-- NOT TRANSLATED YET ##ID:003541## mcset $l "Timer 2 overflow Flag\nTF2 is not set if RCLK=1 or TCLK = 1.\nMust be cleared by software.\nSet by hardware on timer 2 overflow." \ "Timer 2 overflow Flag\nTF2 is not set if RCLK=1 or TCLK = 1.\nMust be cleared by software.\nSet by hardware on timer 2 overflow." ;# <-- NOT TRANSLATED YET ##ID:003542## mcset $l "Timer 2 External Flag\nSet when a capture or a reload is caused by a negative transition on T2EX pin if EXEN2=1.\nSet to cause the CPU to vector to timer 2 interrupt routine when timer 2 interrupt is enabled.\nMust be cleared by software." \ "Timer 2 External Flag\nSet when a capture or a reload is caused by a negative transition on T2EX pin if EXEN2=1.\nSet to cause the CPU to vector to timer 2 interrupt routine when timer 2 interrupt is enabled.\nMust be cleared by software." ;# <-- NOT TRANSLATED YET ##ID:003543## mcset $l "Receive Clock bit\nClear to use timer 1 overflow as receive clock for serial port in mode 1 or 3.\nSet to use timer 2 overflow as receive clock for serial port in mode 1 or 3." \ "Receive Clock bit\nClear to use timer 1 overflow as receive clock for serial port in mode 1 or 3.\nSet to use timer 2 overflow as receive clock for serial port in mode 1 or 3." ;# <-- NOT TRANSLATED YET ##ID:003544## mcset $l "Transmit Clock bit\nClear to use timer 1 overflow as transmit clock for serial port in mode 1 or 3.\nSet to use timer 2 overflow as transmit clock for serial port in mode 1 or 3." \ "Transmit Clock bit\nClear to use timer 1 overflow as transmit clock for serial port in mode 1 or 3.\nSet to use timer 2 overflow as transmit clock for serial port in mode 1 or 3." ;# <-- NOT TRANSLATED YET ##ID:003545## mcset $l "Timer 2 External Enable bit\nClear to ignore events on T2EX pin for timer 2 operation.\nSet to cause a capture or reload when a negative transition on T2EX pin is\ndetected, if timer 2 is not used to clock the serial port." \ "Timer 2 External Enable bit\nClear to ignore events on T2EX pin for timer 2 operation.\nSet to cause a capture or reload when a negative transition on T2EX pin is\ndetected, if timer 2 is not used to clock the serial port." ;# <-- NOT TRANSLATED YET ##ID:003546## mcset $l "Timer 2 Run control bit\nClear to turn off timer 2.\nSet to turn on timer 2." \ "Timer 2 Run control bit\nClear to turn off timer 2.\nSet to turn on timer 2." ;# <-- NOT TRANSLATED YET ##ID:003547## mcset $l "Timer/Counter 2 select bit\nClear for timer operation (input from internal clock system: FOSC).\nSet for counter operation (input from T2 input pin)." \ "Timer/Counter 2 select bit\nClear for timer operation (input from internal clock system: FOSC).\nSet for counter operation (input from T2 input pin)." ;# <-- NOT TRANSLATED YET ##ID:003548## mcset $l "Timer 2 Capture/Reload bit\nIf RCLK=1 or TCLK=1, CP/RL2# is ignored and timer is forced to auto-reload on timer 2 overflow.\nClear to auto-reload on timer 2 overflows or negative transitions on T2EX pin if EXEN2=1.\nSet to capture on negative transitions on T2EX pin if EXEN2=1." \ "Timer 2 Capture/Reload bit\nIf RCLK=1 or TCLK=1, CP/RL2# is ignored and timer is forced to auto-reload on timer 2 overflow.\nClear to auto-reload on timer 2 overflows or negative transitions on T2EX pin if EXEN2=1.\nSet to capture on negative transitions on T2EX pin if EXEN2=1." ;# <-- NOT TRANSLATED YET ##ID:003549## mcset $l "Reserved" \ "Reserved" ;# <-- NOT TRANSLATED YET ##ID:003550## mcset $l "Timer 2 Output Enable bit" \ "Timer 2 Output Enable bit" ;# <-- NOT TRANSLATED YET ##ID:003551## mcset $l "Down Counter Enable bit" \ "Down Counter Enable bit" ;# <-- NOT TRANSLATED YET ##ID:003552## mcset $l "SFR 0xC9: Timer/Counter 2 mode control register" \ "SFR 0xC9: Timer/Counter 2 mode control register" ;# <-- NOT TRANSLATED YET ##ID:003553## mcset $l "Reserved\nThe value read from this bit is indeterminate. Do not set this bit." \ "Reserved\nThe value read from this bit is indeterminate. Do not set this bit." ;# <-- NOT TRANSLATED YET ##ID:003554## mcset $l "Timer 2 Output Enable bit\nClear to program P1.0/T2 as clock input or I/O port.\nSet to program P1.0/T2 as clock output." \ "Timer 2 Output Enable bit\nClear to program P1.0/T2 as clock input or I/O port.\nSet to program P1.0/T2 as clock output." ;# <-- NOT TRANSLATED YET ##ID:003555## mcset $l "Down Counter Enable bit\nClear to disable timer 2 as up/down counter.\nSet to enable timer 2 as up/down counter." \ "Down Counter Enable bit\nClear to disable timer 2 as up/down counter.\nSet to enable timer 2 as up/down counter." ;# <-- NOT TRANSLATED YET ##ID:003556## mcset $l "Defines the Timer 2 interrupt priority level" \ "Defines the Timer 2 interrupt priority level" ;# <-- NOT TRANSLATED YET ##ID:003557## mcset $l "Timer 2 interrupt priority bit" \ "Timer 2 interrupt priority bit" ;# <-- NOT TRANSLATED YET ##ID:003558## mcset $l "Defines the Serial Port interrupt priority level" \ "Defines the Serial Port interrupt priority level" ;# <-- NOT TRANSLATED YET ##ID:003559## mcset $l "Serial Port interrupt enable bit" \ "Serial Port interrupt enable bit" ;# <-- NOT TRANSLATED YET ##ID:003560## mcset $l "Serial Port interrupt priority bit" \ "Serial Port interrupt priority bit" ;# <-- NOT TRANSLATED YET ##ID:003561## mcset $l "Defines the comparator interrupt priority level" \ "Defines the comparator interrupt priority level" ;# <-- NOT TRANSLATED YET ##ID:003562## mcset $l "Comparator Interrupt Priority bit" \ "Comparator Interrupt Priority bit" ;# <-- NOT TRANSLATED YET ##ID:003563## mcset $l "Power-down Exit Mode" \ "Power-down Exit Mode" ;# <-- NOT TRANSLATED YET ##ID:003564## mcset $l "Power-down Exit Mode. When PWDEX = 1, wake up from Power-down is externally controlled.\nWhen PWDEX = 0, wake up from Power-down is internally timed." \ "Power-down Exit Mode. When PWDEX = 1, wake up from Power-down is externally controlled.\nWhen PWDEX = 0, wake up from Power-down is internally timed." ;# <-- NOT TRANSLATED YET ##ID:003565## mcset $l "Internal/External RAM access using MOVX" \ "Internal/External RAM access using MOVX" ;# <-- NOT TRANSLATED YET ##ID:003566## mcset $l "Internal/External RAM access using MOVX @ Ri/@DPTR\nEXTRAM\tOperating Mode\n0\tInternal ERAM (00H-FFH) access using MOVX @ Ri/@DPTR\n1\tExternal data memory access" \ "Internal/External RAM access using MOVX @ Ri/@DPTR\nEXTRAM\tOperating Mode\n0\tInternal ERAM (00H-FFH) access using MOVX @ Ri/@DPTR\n1\tExternal data memory access" ;# <-- NOT TRANSLATED YET ##ID:003567## mcset $l "When set, this bit configures the interrupt driven exit from power-down\nto resume execution on the rising edge of the interrupt signal. When\nthis bit is cleared, the execution resumes after a self-timed interval\n(nominal 2 ms) referenced from the falling edge of the interrupt signal." \ "When set, this bit configures the interrupt driven exit from power-down\nto resume execution on the rising edge of the interrupt signal. When\nthis bit is cleared, the execution resumes after a self-timed interval\n(nominal 2 ms) referenced from the falling edge of the interrupt signal." ;# <-- NOT TRANSLATED YET ##ID:003568## mcset $l "Reserved for future expansion" \ "Reserved for future expansion" ;# <-- NOT TRANSLATED YET ##ID:003569## mcset $l "Disable/Enable Reset out" \ "Disable/Enable Reset out" ;# <-- NOT TRANSLATED YET ##ID:003570## mcset $l "Disable/Enable Reset out\nDISRTO\tOperating Mode\n0\tReset pin is driven High after WDT times out\n1\tReset pin is input only" \ "Disable/Enable Reset out\nDISRTO\tOperating Mode\n0\tReset pin is driven High after WDT times out\n1\tReset pin is input only" ;# <-- NOT TRANSLATED YET ##ID:003571## mcset $l "Disable/Enable WDT in IDLE mode" \ "Disable/Enable WDT in IDLE mode" ;# <-- NOT TRANSLATED YET ##ID:003572## mcset $l "Disable/Enable WDT in IDLE mode\nWDIDLE\tOperating Mode\n0\tWDT continues to count in IDLE mode\n1\tWDT halts counting in IDLE mode" \ "Disable/Enable WDT in IDLE mode\nWDIDLE\tOperating Mode\n0\tWDT continues to count in IDLE mode\n1\tWDT halts counting in IDLE mode" ;# <-- NOT TRANSLATED YET ##ID:003573## mcset $l "General purpose user flag" \ "General purpose user flag" ;# <-- NOT TRANSLATED YET ##ID:003574## mcset $l "SFR 0x8E: Auxiliary Register" \ "SFR 0x8E: Auxiliary Register" ;# <-- NOT TRANSLATED YET ##ID:003575## mcset $l "SFR 0xA2: Auxiliary Register 1" \ "SFR 0xA2: Auxiliary Register 1" ;# <-- NOT TRANSLATED YET ##ID:003576## mcset $l "SFR 0x97: Analog Comparator Control and Status Register" \ "SFR 0x97: Analog Comparator Control and Status Register" ;# <-- NOT TRANSLATED YET ##ID:003577## mcset $l "SFR 0x96: Data EEPROM Control Register" \ "SFR 0x96: Data EEPROM Control Register" ;# <-- NOT TRANSLATED YET ##ID:003578## mcset $l "SFR 0xD5: SPI Control Register" \ "SFR 0xD5: SPI Control Register" ;# <-- NOT TRANSLATED YET ##ID:003579## mcset $l "SFR 0xAA: SPI Status Register" \ "SFR 0xAA: SPI Status Register" ;# <-- NOT TRANSLATED YET ##ID:003580## mcset $l "SFR 0xA7: Watchdog Control Register" \ "SFR 0xA7: Watchdog Control Register" ;# <-- NOT TRANSLATED YET ##ID:003581## mcset $l "SFR 0xA7: Watchdog Prescaler Control Register" \ "SFR 0xA7: Watchdog Prescaler Control Register" ;# <-- NOT TRANSLATED YET ##ID:003582## mcset $l "SFR 0xB7: Interrupt Priority High Register" \ "SFR 0xB7: Interrupt Priority High Register" ;# <-- NOT TRANSLATED YET ##ID:003583## mcset $l "SFR 0x8F: Clock Register" \ "SFR 0x8F: Clock Register" ;# <-- NOT TRANSLATED YET ##ID:003584## mcset $l "Defines the Timer 1 interrupt priority level" \ "Defines the Timer 1 interrupt priority level" ;# <-- NOT TRANSLATED YET ##ID:003585## mcset $l "Defines External Interrupt 1 priority level" \ "Defines External Interrupt 1 priority level" ;# <-- NOT TRANSLATED YET ##ID:003586## mcset $l "Defines the Timer 0 interrupt priority level" \ "Defines the Timer 0 interrupt priority level" ;# <-- NOT TRANSLATED YET ##ID:003587## mcset $l "Defines the External Interrupt 0 priority level" \ "Defines the External Interrupt 0 priority level" ;# <-- NOT TRANSLATED YET ##ID:003588## mcset $l "X2 mode flag" \ "X2 mode flag" ;# <-- NOT TRANSLATED YET ##ID:003589## mcset $l "When X2 = 0, the frequency (at XTAL1 pin) is internally divided by 2 before it is used as the device system frequency.\nWhen X2 = 1, the divide by 2 is no longer used and the XTAL1 frequency becomes the device system frequency. This\nenables the user to use a 6 MHz crystal instead of a 12 MHz crystal in order to reduce EMI." \ "When X2 = 0, the frequency (at XTAL1 pin) is internally divided by 2 before it is used as the device system frequency.\nWhen X2 = 1, the divide by 2 is no longer used and the XTAL1 frequency becomes the device system frequency. This\nenables the user to use a 6 MHz crystal instead of a 12 MHz crystal in order to reduce EMI." ;# <-- NOT TRANSLATED YET ##ID:003590## mcset $l "EEPROM data memory load enable bit" \ "EEPROM data memory load enable bit" ;# <-- NOT TRANSLATED YET ##ID:003591## mcset $l "EEPROM data memory write enable bit" \ "EEPROM data memory write enable bit" ;# <-- NOT TRANSLATED YET ##ID:003592## mcset $l "Internal EEPROM access enable" \ "Internal EEPROM access enable" ;# <-- NOT TRANSLATED YET ##ID:003593## mcset $l "Data pointer register select" \ "Data pointer register select" ;# <-- NOT TRANSLATED YET ##ID:003594## mcset $l "RDY/BSY (Ready/Busy) flag for the data EEPROM memory (read-only)" \ "RDY/BSY (Ready/Busy) flag for the data EEPROM memory (read-only)" ;# <-- NOT TRANSLATED YET ##ID:003595## mcset $l "Write Inhibit (read-only)" \ "Write Inhibit (read-only)" ;# <-- NOT TRANSLATED YET ##ID:003596## mcset $l "EEPROM data memory load enable bit. Used to implement Page Mode Write. A MOVX\ninstruction writing into the data EEPROM will not initiate the programming cycle\nif this bit is set, rather it will just load data into the volatile data buffer\nof the data EEPROM memory. Before the last MOVX, reset this bit and the data\nEEPROM will program all the bytes previously loaded on the same page of the\naddress given by the last MOVX instruction." \ "EEPROM data memory load enable bit. Used to implement Page Mode Write. A MOVX\ninstruction writing into the data EEPROM will not initiate the programming cycle\nif this bit is set, rather it will just load data into the volatile data buffer\nof the data EEPROM memory. Before the last MOVX, reset this bit and the data\nEEPROM will program all the bytes previously loaded on the same page of the\naddress given by the last MOVX instruction." ;# <-- NOT TRANSLATED YET ##ID:003597## mcset $l "EEPROM data memory write enable bit. Set this bit to 1 before initiating byte\nwrite to on-chip EEPROM with the MOVX instruction. User software should set\nthis bit to 0 after EEPROM write is completed." \ "EEPROM data memory write enable bit. Set this bit to 1 before initiating byte\nwrite to on-chip EEPROM with the MOVX instruction. User software should set\nthis bit to 0 after EEPROM write is completed." ;# <-- NOT TRANSLATED YET ##ID:003598## mcset $l "Internal EEPROM access enable. When EEMEN = 1, the MOVX instruction with DPTR\nwill access on-chip EEPROM instead of external data memory if the address used\nis less than 2K. When EEMEN = 0 or the address used is ≥ 2K," \ "Internal EEPROM access enable. When EEMEN = 1, the MOVX instruction with DPTR\nwill access on-chip EEPROM instead of external data memory if the address used\nis less than 2K. When EEMEN = 0 or the address used is ≥ 2K," ;# <-- NOT TRANSLATED YET ##ID:003599## mcset $l "MOVX with DPTR accesses external data memory.\nData pointer register select. DPS = 0 selects the first bank of data pointer\nregister, DP0, and DPS = 1 selects the second bank, DP1." \ "MOVX with DPTR accesses external data memory.\nData pointer register select. DPS = 0 selects the first bank of data pointer\nregister, DP0, and DPS = 1 selects the second bank, DP1." ;# <-- NOT TRANSLATED YET ##ID:003600## mcset $l "RDY/BSY (Ready/Busy) flag for the data EEPROM memory. This is a read-only bit\nwhich is cleared by hardware during the programming cycle of the on-chip EEPROM.\nIt is also set by hardware when the programming is completed. Note that RDY/BSY\nwill be cleared long after the completion of the MOVX instruction which has\ninitiated the programming cycle." \ "RDY/BSY (Ready/Busy) flag for the data EEPROM memory. This is a read-only bit\nwhich is cleared by hardware during the programming cycle of the on-chip EEPROM.\nIt is also set by hardware when the programming is completed. Note that RDY/BSY\nwill be cleared long after the completion of the MOVX instruction which has\ninitiated the programming cycle." ;# <-- NOT TRANSLATED YET ##ID:003601## mcset $l "WRTINH (Write Inhibit) is a READ-ONLY bit which is cleared by hardware when Vcc is\ntoo low for the programming cycle of the on-chip EEPROM to be executed. When this\nbit is cleared, an ongoing programming cycle will be aborted or a new programming\ncycle will not start." \ "WRTINH (Write Inhibit) is a READ-ONLY bit which is cleared by hardware when Vcc is\ntoo low for the programming cycle of the on-chip EEPROM to be executed. When this\nbit is cleared, an ongoing programming cycle will be aborted or a new programming\ncycle will not start." ;# <-- NOT TRANSLATED YET ##ID:003602## mcset $l "Prescaler bit for the watchdog timer" \ "Prescaler bit for the watchdog timer" ;# <-- NOT TRANSLATED YET ##ID:003603## mcset $l "Enable/disable the Watchdog Timer in IDLE mode" \ "Enable/disable the Watchdog Timer in IDLE mode" ;# <-- NOT TRANSLATED YET ##ID:003604## mcset $l "Enable/disable the WDT-driven Reset Out" \ "Enable/disable the WDT-driven Reset Out" ;# <-- NOT TRANSLATED YET ##ID:003605## mcset $l "Hardware mode select for the WDT" \ "Hardware mode select for the WDT" ;# <-- NOT TRANSLATED YET ##ID:003606## mcset $l "Watchdog software reset bit" \ "Watchdog software reset bit" ;# <-- NOT TRANSLATED YET ##ID:003607## mcset $l "Watchdog software enable bit" \ "Watchdog software enable bit" ;# <-- NOT TRANSLATED YET ##ID:003608## mcset $l "Enable/disable the Watchdog Timer in IDLE mode. When WDIDLE = 0, WDT\ncontinues to count in IDLE mode. When WDIDLE = 1, WDT freezes while\nthe device is in IDLE mode." \ "Enable/disable the Watchdog Timer in IDLE mode. When WDIDLE = 0, WDT\ncontinues to count in IDLE mode. When WDIDLE = 1, WDT freezes while\nthe device is in IDLE mode." ;# <-- NOT TRANSLATED YET ##ID:003609## mcset $l "Enable/disable the WDT-driven Reset Out (WDT drives the RST pin). When\nDISRTO = 0, the RST pin is driven high after WDT times out and the entire\nboard is reset. When DISRTO = 1, the RST pin remains only as an input and the\nWDT resets only the microcontroller internally after WDT times out." \ "Enable/disable the WDT-driven Reset Out (WDT drives the RST pin). When\nDISRTO = 0, the RST pin is driven high after WDT times out and the entire\nboard is reset. When DISRTO = 1, the RST pin remains only as an input and the\nWDT resets only the microcontroller internally after WDT times out." ;# <-- NOT TRANSLATED YET ##ID:003610## mcset $l "Hardware mode select for the WDT. When HWDT = 0, the WDT can be turned on/off\nby simply setting or clearing WDTEN in the same register (this is the software\nmode for WDT). When HWDT = 1, the WDT has to be set by writing the sequence\n1EH/E1H to the WDTRST register (with address 0A6H) and after being set in this\nway, WDT cannot be turned off except by reset, warm or cold (this is the hardware\nmode for WDT). To prevent the hardware WDT from resetting the entire device,\nthe same sequence 1EH/E1H must be written to the same WDTRST SFR before the\ntimeout interval." \ "Hardware mode select for the WDT. When HWDT = 0, the WDT can be turned on/off\nby simply setting or clearing WDTEN in the same register (this is the software\nmode for WDT). When HWDT = 1, the WDT has to be set by writing the sequence\n1EH/E1H to the WDTRST register (with address 0A6H) and after being set in this\nway, WDT cannot be turned off except by reset, warm or cold (this is the hardware\nmode for WDT). To prevent the hardware WDT from resetting the entire device,\nthe same sequence 1EH/E1H must be written to the same WDTRST SFR before the\ntimeout interval." ;# <-- NOT TRANSLATED YET ##ID:003611## mcset $l "Watchdog software reset bit. If HWDT = 0 (i.e. WDT is in software controlled mode),\nwhen set by software, this bit resets WDT. After being set by software, WSWRST is\nreset by hardware during the next machine cycle. If HWDT = 1, this bit has no effect,\nand if set by software, it will not be cleared by hardware." \ "Watchdog software reset bit. If HWDT = 0 (i.e. WDT is in software controlled mode),\nwhen set by software, this bit resets WDT. After being set by software, WSWRST is\nreset by hardware during the next machine cycle. If HWDT = 1, this bit has no effect,\nand if set by software, it will not be cleared by hardware." ;# <-- NOT TRANSLATED YET ##ID:003612## mcset $l "Watchdog software enable bit. When HWDT = 0 (i.e. WDT is in software-controlled mode),\nthis bit enables WDT when set to 1 and disables WDT when cleared to 0 (it does not\nreset WDT in this case, but just freezes the existing counter state). If HWDT = 1, this\nbit is READ-ONLY and reflects the status of the WDT (whether it is running or not)." \ "Watchdog software enable bit. When HWDT = 0 (i.e. WDT is in software-controlled mode),\nthis bit enables WDT when set to 1 and disables WDT when cleared to 0 (it does not\nreset WDT in this case, but just freezes the existing counter state). If HWDT = 1, this\nbit is READ-ONLY and reflects the status of the WDT (whether it is running or not)." ;# <-- NOT TRANSLATED YET ##ID:003613## mcset $l "Do not try to set or clear this bit" \ "Do not try to set or clear this bit" ;# <-- NOT TRANSLATED YET ##ID:003614## mcset $l "WDT Time-out select bit" \ "WDT Time-out select bit" ;# <-- NOT TRANSLATED YET ##ID:003615## mcset $l "Prescaler bits for the watchdog timer (WDT). When all three bits are cleared\nto 0, the watchdog timer has a nominal period of 16K machine cycles,\n(i.e. 16 ms at a XTAL frequency of 12 MHz in normal mode or 6 MHz in x2 mode).\nWhen all three bits are set to 1, the nominal period is 2048K machine cycles,\n(i.e. 2048 ms at 12 MHz clock frequency in normal mode or 6 MHz in x2 mode)." \ "Prescaler bits for the watchdog timer (WDT). When all three bits are cleared\nto 0, the watchdog timer has a nominal period of 16K machine cycles,\n(i.e. 16 ms at a XTAL frequency of 12 MHz in normal mode or 6 MHz in x2 mode).\nWhen all three bits are set to 1, the nominal period is 2048K machine cycles,\n(i.e. 2048 ms at 12 MHz clock frequency in normal mode or 6 MHz in x2 mode)." ;# <-- NOT TRANSLATED YET ##ID:003616## mcset $l "SPI interrupt flag" \ "SPI interrupt flag" ;# <-- NOT TRANSLATED YET ##ID:003617## mcset $l "Write collision flag" \ "Write collision flag" ;# <-- NOT TRANSLATED YET ##ID:003618## mcset $l "Load enable" \ "Load enable" ;# <-- NOT TRANSLATED YET ##ID:003619## mcset $l "Disable slave output bit" \ "Disable slave output bit" ;# <-- NOT TRANSLATED YET ##ID:003620## mcset $l "Enhanced SPI mode select bit" \ "Enhanced SPI mode select bit" ;# <-- NOT TRANSLATED YET ##ID:003621## mcset $l "SPI interrupt flag. When a serial transfer is complete, the SPIF bit is set and an interrupt is generated if SPIE = 1 and ES\n= 1. The SPIF bit is cleared by reading the SPI status register followed by reading/writing the SPI data register." \ "SPI interrupt flag. When a serial transfer is complete, the SPIF bit is set and an interrupt is generated if SPIE = 1 and ES\n= 1. The SPIF bit is cleared by reading the SPI status register followed by reading/writing the SPI data register." ;# <-- NOT TRANSLATED YET ##ID:003622## mcset $l "When ENH = 0: Write collision flag. The WCOL bit is set if the SPI data register is written during a data transfer. During\ndata transfer, the result of reading the SPDR register may be incorrect, and writing to it has no effect. The WCOL bit (and\nthe SPIF bit) are cleared by reading the SPI status register followed by reading/writing the SPI data register.\nWhen ENH = 1: WCOL works in Enhanced mode as Tx Buffer Full. Writing during WCOL = 1 in enhanced mode will\noverwrite the waiting data already present in the Tx Buffer. In this mode, WCOL is no longer reset by the SPIF reset but\nis reset when the write buffer has been unloaded into the serial shift register." \ "When ENH = 0: Write collision flag. The WCOL bit is set if the SPI data register is written during a data transfer. During\ndata transfer, the result of reading the SPDR register may be incorrect, and writing to it has no effect. The WCOL bit (and\nthe SPIF bit) are cleared by reading the SPI status register followed by reading/writing the SPI data register.\nWhen ENH = 1: WCOL works in Enhanced mode as Tx Buffer Full. Writing during WCOL = 1 in enhanced mode will\noverwrite the waiting data already present in the Tx Buffer. In this mode, WCOL is no longer reset by the SPIF reset but\nis reset when the write buffer has been unloaded into the serial shift register." ;# <-- NOT TRANSLATED YET ##ID:003623## mcset $l "Load enable for the Tx buffer in enhanced SPI mode.\nWhen ENH is set, it is safe to load the Tx Buffer while LDEN = 1 and WCOL = 0. LDEN is high during bits 0 - 3 and is low\nduring bits 4 - 7 of the SPI serial byte transmission time frame." \ "Load enable for the Tx buffer in enhanced SPI mode.\nWhen ENH is set, it is safe to load the Tx Buffer while LDEN = 1 and WCOL = 0. LDEN is high during bits 0 - 3 and is low\nduring bits 4 - 7 of the SPI serial byte transmission time frame." ;# <-- NOT TRANSLATED YET ##ID:003624## mcset $l "Disable slave output bit.\nWhen set, this bit causes the MISO pin to be tri-stated so more than one slave device can share the same interface with\na single master. Normally, the first byte in a transmission could be the slave address and only the selected slave should\nclear its DISSO bit." \ "Disable slave output bit.\nWhen set, this bit causes the MISO pin to be tri-stated so more than one slave device can share the same interface with\na single master. Normally, the first byte in a transmission could be the slave address and only the selected slave should\nclear its DISSO bit." ;# <-- NOT TRANSLATED YET ##ID:003625## mcset $l "Enhanced SPI mode select bit. When ENH = 0, SPI is in normal mode, i.e. without write double buffering.\nWhen ENH = 1, SPI is in enhanced mode with write double buffering. The Tx buffer shares the same address with the\nSPDR register." \ "Enhanced SPI mode select bit. When ENH = 0, SPI is in normal mode, i.e. without write double buffering.\nWhen ENH = 1, SPI is in enhanced mode with write double buffering. The Tx buffer shares the same address with the\nSPDR register." ;# <-- NOT TRANSLATED YET ##ID:003626## mcset $l "SPI interrupt enable" \ "SPI interrupt enable" ;# <-- NOT TRANSLATED YET ##ID:003627## mcset $l "SPI enable" \ "SPI enable" ;# <-- NOT TRANSLATED YET ##ID:003628## mcset $l "Data order" \ "Data order" ;# <-- NOT TRANSLATED YET ##ID:003629## mcset $l "Master/slave select" \ "Master/slave select" ;# <-- NOT TRANSLATED YET ##ID:003630## mcset $l "Clock polarity" \ "Clock polarity" ;# <-- NOT TRANSLATED YET ##ID:003631## mcset $l "Clock phase" \ "Clock phase" ;# <-- NOT TRANSLATED YET ##ID:003632## mcset $l "SPI clock rate select" \ "SPI clock rate select" ;# <-- NOT TRANSLATED YET ##ID:003633## mcset $l "SPI interrupt enable.\nThis bit, in conjunction with the ES bit in the IE register,\nenables SPI interrupts: SPIE = 1 and ES = 1 enable SPI interrupts. SPIE = 0 disables SPI interrupts." \ "SPI interrupt enable.\nThis bit, in conjunction with the ES bit in the IE register,\nenables SPI interrupts: SPIE = 1 and ES = 1 enable SPI interrupts. SPIE = 0 disables SPI interrupts." ;# <-- NOT TRANSLATED YET ##ID:003634## mcset $l "SPI enable. SPI = 1 enables the SPI channel and connects\nSS, MOSI, MISO and SCK to pins P1.4, P1.5, P1.6, and P1.7.\nSPI = 0 disables the SPI channel." \ "SPI enable. SPI = 1 enables the SPI channel and connects\nSS, MOSI, MISO and SCK to pins P1.4, P1.5, P1.6, and P1.7.\nSPI = 0 disables the SPI channel." ;# <-- NOT TRANSLATED YET ##ID:003635## mcset $l "Data order. DORD = 1 selects LSB first data transmission.\nDORD = 0 selects MSB first data transmission." \ "Data order. DORD = 1 selects LSB first data transmission.\nDORD = 0 selects MSB first data transmission." ;# <-- NOT TRANSLATED YET ##ID:003636## mcset $l "Master/slave select. MSTR = 1 selects Master SPI mode.\nMSTR = 0 selects slave SPI mode." \ "Master/slave select. MSTR = 1 selects Master SPI mode.\nMSTR = 0 selects slave SPI mode." ;# <-- NOT TRANSLATED YET ##ID:003637## mcset $l "Clock polarity. When CPOL = 1, SCK is high when idle. When CPOL = 0,\nSCK of the master device is low when not transmitting. Please refer to\nfigure on SPI clock phase and polarity control." \ "Clock polarity. When CPOL = 1, SCK is high when idle. When CPOL = 0,\nSCK of the master device is low when not transmitting. Please refer to\nfigure on SPI clock phase and polarity control." ;# <-- NOT TRANSLATED YET ##ID:003638## mcset $l "Clock phase. The CPHA bit together with the CPOL bit controls the\nclock and data relationship between master and slave. Please refer\nto figure on SPI clock phase and polarity control." \ "Clock phase. The CPHA bit together with the CPOL bit controls the\nclock and data relationship between master and slave. Please refer\nto figure on SPI clock phase and polarity control." ;# <-- NOT TRANSLATED YET ##ID:003639## mcset $l "SPI clock rate select.\nThese two bits control the SCK rate of the device configured as master.\nSPR1 and SPR0 have no effect on the slave. The relationship between SCK and the\noscillator frequency, FOSC., is as follows:\n SPR1\tSPR0\tSCK\n 0\t0\tf/4 (f/2 in x2mode)\n 0\t1\tf/16 (f/8 in x2 mode)\n 1\t0\tf/64 (f/32 in x2 mode)\n 1\t1\tf/128 (f/64 in x2 mode)" \ "SPI clock rate select.\nThese two bits control the SCK rate of the device configured as master.\nSPR1 and SPR0 have no effect on the slave. The relationship between SCK and the\noscillator frequency, FOSC., is as follows:\n SPR1\tSPR0\tSCK\n 0\t0\tf/4 (f/2 in x2mode)\n 0\t1\tf/16 (f/8 in x2 mode)\n 1\t0\tf/64 (f/32 in x2 mode)\n 1\t1\tf/128 (f/64 in x2 mode)" ;# <-- NOT TRANSLATED YET ##ID:003640## mcset $l "Comparator Interrupt" \ "Comparator Interrupt" ;# <-- NOT TRANSLATED YET ##ID:003641## mcset $l "Comparator Enable" \ "Comparator Enable" ;# <-- NOT TRANSLATED YET ##ID:003642## mcset $l "Comparator Interrupt Mode" \ "Comparator Interrupt Mode" ;# <-- NOT TRANSLATED YET ##ID:003643## mcset $l "Comparator Interrupt Flag. Set when the comparator output meets the conditions specified by the CM \[2:0\] bits and CEN\nis set. The flag must be cleared by software. The interrupt may be enabled/disabled by setting/clearing bit 6 of IE." \ "Comparator Interrupt Flag. Set when the comparator output meets the conditions specified by the CM \[2:0\] bits and CEN\nis set. The flag must be cleared by software. The interrupt may be enabled/disabled by setting/clearing bit 6 of IE." ;# <-- NOT TRANSLATED YET ##ID:003644## mcset $l "Comparator Enable. Set this bit to enable the comparator. Clearing this bit will force the comparator output low and\nprevent further events from setting CF." \ "Comparator Enable. Set this bit to enable the comparator. Clearing this bit will force the comparator output low and\nprevent further events from setting CF." ;# <-- NOT TRANSLATED YET ##ID:003645## mcset $l "Comparator Interrupt Mode\n 2 1 0\tInterrupt Mode\n--- --- ---\t---------------------------------------\n 0 0 0\tNegative (Low) level\n 0 0 1\tPositive edge\n 0 1 0\tToggle with debounce\n 0 1 1\tPositive edge with debounce\n 1 0 0\tNegative edge\n 1 0 1\tToggle\n 1 1 0\tNegative edge with debounce\n 1 1 1\tPositive (High) level" \ "Comparator Interrupt Mode\n 2 1 0\tInterrupt Mode\n--- --- ---\t---------------------------------------\n 0 0 0\tNegative (Low) level\n 0 0 1\tPositive edge\n 0 1 0\tToggle with debounce\n 0 1 1\tPositive edge with debounce\n 1 0 0\tNegative edge\n 1 0 1\tToggle\n 1 1 0\tNegative edge with debounce\n 1 1 1\tPositive (High) level" ;# <-- NOT TRANSLATED YET ##ID:003646## mcset $l "Data Pointer Register Select" \ "Data Pointer Register Select" ;# <-- NOT TRANSLATED YET ##ID:003647## mcset $l "DPS\tData Pointer Register Select\n0\tSelects DPTR Registers DP0L, DP0H\n1\tSelects DPTR Registers DP1L, DP1H\n" \ "DPS\tData Pointer Register Select\n0\tSelects DPTR Registers DP0L, DP0H\n1\tSelects DPTR Registers DP1L, DP1H\n" ;# <-- NOT TRANSLATED YET ##ID:003648## mcset $l "Disable/Enable ALE" \ "Disable/Enable ALE" ;# <-- NOT TRANSLATED YET ##ID:003649## mcset $l "Disable/Enable ALE\nDISALE\tOperating Mode\n0\tALE is emitted at a constant rate of 1/6 the oscillator frequency\n1\tALE is active only during a MOVX or MOVC instruction" \ "Disable/Enable ALE\nDISALE\tOperating Mode\n0\tALE is emitted at a constant rate of 1/6 the oscillator frequency\n1\tALE is active only during a MOVX or MOVC instruction" ;# <-- NOT TRANSLATED YET ##ID:003650## mcset $l "Register %s: Located in IDATA, address depends on bits RS0 and RS1 in PSW" \ "Register %s: Located in IDATA, address depends on bits RS0 and RS1 in PSW" ;# <-- NOT TRANSLATED YET ##ID:003651## mcset $l "SFR 0x8D: 2nd part of 16-bit counting register for timer 1" \ "SFR 0x8D: 2nd part of 16-bit counting register for timer 1" ;# <-- NOT TRANSLATED YET ##ID:003652## mcset $l "SFR 0x8B: 1st part of 16-bit counting register for timer 1" \ "SFR 0x8B: 1st part of 16-bit counting register for timer 1" ;# <-- NOT TRANSLATED YET ##ID:003653## mcset $l "SFR 0x8C: 2nd part of 16-bit counting register for timer 0" \ "SFR 0x8C: 2nd part of 16-bit counting register for timer 0" ;# <-- NOT TRANSLATED YET ##ID:003654## mcset $l "SFR 0x8A: 1nd part of 16-bit counting register for timer 0" \ "SFR 0x8A: 1nd part of 16-bit counting register for timer 0" ;# <-- NOT TRANSLATED YET ##ID:003655## mcset $l "SFR 0x8D..0x8B: 16-bit counting register for timer 1" \ "SFR 0x8D..0x8B: 16-bit counting register for timer 1" ;# <-- NOT TRANSLATED YET ##ID:003656## mcset $l "SFR 0x8C..0x8A: 16-bit counting register for timer 0" \ "SFR 0x8C..0x8A: 16-bit counting register for timer 0" ;# <-- NOT TRANSLATED YET ##ID:003657## mcset $l "SFR 0x%s: Latch of port %s" \ "SFR 0x%s: Latch of port %s" ;# <-- NOT TRANSLATED YET ##ID:003658## mcset $l "SFR 0x87: Power control register" \ "SFR 0x87: Power control register" ;# <-- NOT TRANSLATED YET ##ID:003659## mcset $l "SFR 0x83: Data pointer register" \ "SFR 0x83: Data pointer register" ;# <-- NOT TRANSLATED YET ##ID:003660## mcset $l "SFR 0x82: Data pointer register" \ "SFR 0x82: Data pointer register" ;# <-- NOT TRANSLATED YET ##ID:003661## mcset $l "SFR 0x85: Data pointer register" \ "SFR 0x85: Data pointer register" ;# <-- NOT TRANSLATED YET ##ID:003662## mcset $l "SFR 0x84: Data pointer register" \ "SFR 0x84: Data pointer register" ;# <-- NOT TRANSLATED YET ##ID:003663## mcset $l "Clock:" \ "Clock:" ;# <-- NOT TRANSLATED YET ##ID:003664## mcset $l "Processor clock in kHz" \ "Processor clock in kHz" ;# <-- NOT TRANSLATED YET ##ID:003665## mcset $l "SFR 0x99: Serial Data Buffer - RECEIVE buffer" \ "SFR 0x99: Serial Data Buffer - RECEIVE buffer" ;# <-- NOT TRANSLATED YET ##ID:003666## mcset $l "SFR 0x99: Serial Data Buffer - TRANSMIT buffer" \ "SFR 0x99: Serial Data Buffer - TRANSMIT buffer" ;# <-- NOT TRANSLATED YET ##ID:003667## mcset $l "Program counter" \ "Program counter" ;# <-- NOT TRANSLATED YET ##ID:003668## mcset $l "Set PC (Program Counter) according to\nline number in source code" \ "Set PC (Program Counter) according to\nline number in source code" ;# <-- NOT TRANSLATED YET ##ID:003669## mcset $l "Set PC by line number" \ "Set PC by line number" ;# <-- NOT TRANSLATED YET ##ID:003670## mcset $l "HEX" \ "HEX" ;# <-- NOT TRANSLATED YET ##ID:003671## mcset $l "DEC" \ "DEC" ;# <-- NOT TRANSLATED YET ##ID:003672## mcset $l "Time:" \ "Time:" ;# <-- NOT TRANSLATED YET ##ID:003673## mcset $l "Overall time" \ "Overall time" ;# <-- NOT TRANSLATED YET ##ID:003674## mcset $l "SFR 0xCD: Part of 16-bit counting register for Timer/Counter 2" \ "SFR 0xCD: Part of 16-bit counting register for Timer/Counter 2" ;# <-- NOT TRANSLATED YET ##ID:003675## mcset $l "SFR 0xCC: Part of 16-bit counting register for Timer/Counter 2" \ "SFR 0xCC: Part of 16-bit counting register for Timer/Counter 2" ;# <-- NOT TRANSLATED YET ##ID:003676## mcset $l "SFR 0xCB: Part of 16-bit capture register for Timer/Counter 2" \ "SFR 0xCB: Part of 16-bit capture register for Timer/Counter 2" ;# <-- NOT TRANSLATED YET ##ID:003677## mcset $l "SFR 0xCA: Part of 16-bit capture register for Timer/Counter 2" \ "SFR 0xCA: Part of 16-bit capture register for Timer/Counter 2" ;# <-- NOT TRANSLATED YET ##ID:003678## mcset $l "SFR 0xCC..0xCD: 16-bit counting register for Timer/Counter 2" \ "SFR 0xCC..0xCD: 16-bit counting register for Timer/Counter 2" ;# <-- NOT TRANSLATED YET ##ID:003679## mcset $l "SFR 0xCA..0xCB: 16-bit capture register for Timer/Counter 2" \ "SFR 0xCA..0xCB: 16-bit capture register for Timer/Counter 2" ;# <-- NOT TRANSLATED YET ##ID:003680## mcset $l "Watchdog timer" \ "Watchdog timer" ;# <-- NOT TRANSLATED YET ##ID:003681## mcset $l "OFF" \ "OFF" ;# <-- NOT TRANSLATED YET ##ID:003682## mcset $l "ON " \ "ON " ;# <-- NOT TRANSLATED YET ##ID:003683## mcset $l "Simulator" \ "Simulator" ;# <-- NOT TRANSLATED YET ##ID:003684## mcset $l "Watchdog:" \ "Watchdog:" ;# <-- NOT TRANSLATED YET ##ID:003685## mcset $l "Watchdog timer ON/OFF switch" \ "Watchdog timer ON/OFF switch" ;# <-- NOT TRANSLATED YET ##ID:003686## mcset $l "Watchdog Prescaler (0-7 bits)" \ "Watchdog Prescaler (0-7 bits)" ;# <-- NOT TRANSLATED YET ##ID:003687## mcset $l "Reset watchdog timer" \ "Reset watchdog timer" ;# <-- NOT TRANSLATED YET ##ID:003688## mcset $l "Reset Watchdog" \ "Reset Watchdog" ;# <-- NOT TRANSLATED YET ##ID:003689## mcset $l "SFR 0xB9: Used to define which bits in the SADDR are to be used" \ "SFR 0xB9: Used to define which bits in the SADDR are to be used" ;# <-- NOT TRANSLATED YET ##ID:003690## mcset $l "SFR 0xA9: Define the slave's address" \ "SFR 0xA9: Define the slave's address" ;# <-- NOT TRANSLATED YET ##ID:003691## mcset $l "SFR 0x86: SPI Data Register" \ "SFR 0x86: SPI Data Register" ;# <-- NOT TRANSLATED YET ##ID:003692## mcset $l "SFR 0xA6: Watchdog reset" \ "SFR 0xA6: Watchdog reset" ;# <-- NOT TRANSLATED YET ##ID:003693## mcset $l "Writing to EEPROM" \ "Writing to EEPROM" ;# <-- NOT TRANSLATED YET ##ID:003694## mcset $l "Finalize data EEPROM write cycle" \ "Finalize data EEPROM write cycle" ;# <-- NOT TRANSLATED YET ##ID:003695## mcset $l "Finalize write cycle" \ "Finalize write cycle" ;# <-- NOT TRANSLATED YET ##ID:003696## mcset $l "Cancel data EEPROM write cycle" \ "Cancel data EEPROM write cycle" ;# <-- NOT TRANSLATED YET ##ID:003697## mcset $l "Cancel write cycle" \ "Cancel write cycle" ;# <-- NOT TRANSLATED YET ##ID:003698## mcset $l "EEPROM write cycle progress" \ "EEPROM write cycle progress" ;# <-- NOT TRANSLATED YET } # interruptmonitor.tcl # ============================================================================== namespace eval InterruptMonitor { eval ${SFB_TRANSLATIONS} ##ID:003699## mcset $l "Close" \ "Close" ;# <-- NOT TRANSLATED YET ##ID:003700## mcset $l "Interrupt monitor" \ "Interrupt monitor" ;# <-- NOT TRANSLATED YET ##ID:003701## mcset $l "Close this dialog window" \ "Close this dialog window" ;# <-- NOT TRANSLATED YET ##ID:003702## mcset $l {Vector:} \ {Vector:} ;# <-- NOT TRANSLATED YET ##ID:003703## mcset $l {Enable bit:} \ {Enable bit:} ;# <-- NOT TRANSLATED YET ##ID:003704## mcset $l {Flag bit:} \ {Flag bit:} ;# <-- NOT TRANSLATED YET ##ID:003705## mcset $l {Priority bits:} \ {Priority bits:} ;# <-- NOT TRANSLATED YET ##ID:003706## mcset $l { Line:} \ { Line:} ;# <-- NOT TRANSLATED YET ##ID:003707## mcset $l { File:} \ { File:} ;# <-- NOT TRANSLATED YET ##ID:003708## mcset $l { PC:} \ { PC:} ;# <-- NOT TRANSLATED YET ##ID:003709## mcset $l "Increase priority level" \ "Increase priority level" ;# <-- NOT TRANSLATED YET ##ID:003710## mcset $l "Decrease priority level" \ "Decrease priority level" ;# <-- NOT TRANSLATED YET ##ID:003711## mcset $l "Invoke this interrupt" \ "Invoke this interrupt" ;# <-- NOT TRANSLATED YET ##ID:003712## mcset $l "Priority level" \ "Priority level" ;# <-- NOT TRANSLATED YET ##ID:003713## mcset $l "SPSR.7 -- SPI interrupt flag" \ "SPSR.7 -- SPI interrupt flag" ;# <-- NOT TRANSLATED YET ##ID:003714## mcset $l "ACSR.4 -- Comparator Interrupt" \ "ACSR.4 -- Comparator Interrupt" ;# <-- NOT TRANSLATED YET ##ID:003715## mcset $l "IPH.0 -- Defines the External Interrupt 0 priority level" \ "IPH.0 -- Defines the External Interrupt 0 priority level" ;# <-- NOT TRANSLATED YET ##ID:003716## mcset $l "IPH.1 -- Defines the Timer 0 interrupt priority level" \ "IPH.1 -- Defines the Timer 0 interrupt priority level" ;# <-- NOT TRANSLATED YET ##ID:003717## mcset $l "IPH.2 -- Defines External Interrupt 1 priority level" \ "IPH.2 -- Defines External Interrupt 1 priority level" ;# <-- NOT TRANSLATED YET ##ID:003718## mcset $l "IPH.3 -- Defines the Timer 1 interrupt priority level" \ "IPH.3 -- Defines the Timer 1 interrupt priority level" ;# <-- NOT TRANSLATED YET ##ID:003719## mcset $l "IPH.4 -- Defines the Serial Port interrupt priority level" \ "IPH.4 -- Defines the Serial Port interrupt priority level" ;# <-- NOT TRANSLATED YET ##ID:003720## mcset $l "IPH.5 -- Defines the Timer 2 interrupt priority level" \ "IPH.5 -- Defines the Timer 2 interrupt priority level" ;# <-- NOT TRANSLATED YET ##ID:003721## mcset $l "IPH.6 -- Defines the comparator interrupt priority level" \ "IPH.6 -- Defines the comparator interrupt priority level" ;# <-- NOT TRANSLATED YET ##ID:003722## mcset $l "Interrupts in progress" \ "Interrupts in progress" ;# <-- NOT TRANSLATED YET ##ID:003723## mcset $l "Pending interrupts" \ "Pending interrupts" ;# <-- NOT TRANSLATED YET ##ID:003724## mcset $l "Interrupt priorities" \ "Interrupt priorities" ;# <-- NOT TRANSLATED YET ##ID:003725## mcset $l "Expand all" \ "Expand all" ;# <-- NOT TRANSLATED YET ##ID:003726## mcset $l "Collapse all" \ "Collapse all" ;# <-- NOT TRANSLATED YET ##ID:003727## mcset $l "Priority:" \ "Priority:" ;# <-- NOT TRANSLATED YET ##ID:003728## mcset $l "Invoked from:" \ "Invoked from:" ;# <-- NOT TRANSLATED YET } # rs232debugger.tcl # ============================================================================== namespace eval RS232Debugger { ##ID:003729## mcset $l "Special character file representing the target physical device" \ "Special character file representing the target physical device" ;# <-- NOT TRANSLATED YET ##ID:003730## mcset $l "Refresh list of relevant devices" \ "Refresh list of relevant devices" ;# <-- NOT TRANSLATED YET ##ID:003731## mcset $l "Connection speed in bps" \ "Connection speed in bps" ;# <-- NOT TRANSLATED YET ##ID:003732## mcset $l "Parity" \ "Parity" ;# <-- NOT TRANSLATED YET ##ID:003733## mcset $l "none" \ "none" ;# <-- NOT TRANSLATED YET ##ID:003734## mcset $l "odd" \ "odd" ;# <-- NOT TRANSLATED YET ##ID:003735## mcset $l "even" \ "even" ;# <-- NOT TRANSLATED YET ##ID:003736## mcset $l "mark" \ "mark" ;# <-- NOT TRANSLATED YET ##ID:003737## mcset $l "space" \ "space" ;# <-- NOT TRANSLATED YET ##ID:003738## mcset $l "Number of data bits" \ "Number of data bits" ;# <-- NOT TRANSLATED YET ##ID:003739## mcset $l "Number of stop bits" \ "Number of stop bits" ;# <-- NOT TRANSLATED YET ##ID:003740## mcset $l "Display incoming data or discard them" \ "Display incoming data or discard them" ;# <-- NOT TRANSLATED YET ##ID:003741## mcset $l "Remove selected data" \ "Remove selected data" ;# <-- NOT TRANSLATED YET ##ID:003742## mcset $l "Send selected data" \ "Send selected data" ;# <-- NOT TRANSLATED YET ##ID:003743## mcset $l "Error message" \ "Error message" ;# <-- NOT TRANSLATED YET ##ID:003744## mcset $l "Receive data on current cursor position" \ "Receive data on current cursor position" ;# <-- NOT TRANSLATED YET ##ID:003745## mcset $l "RS232 DBG: Invalid baud rate, setting to default: %s" \ "RS232 DBG: Invalid baud rate, setting to default: %s" ;# <-- NOT TRANSLATED YET ##ID:003746## mcset $l "RS232 DBG: Invalid parity, setting to default: %s" \ "RS232 DBG: Invalid parity, setting to default: %s" ;# <-- NOT TRANSLATED YET ##ID:003747## mcset $l "RS232 DBG: Invalid data length, setting to default: %s" \ "RS232 DBG: Invalid data length, setting to default: %s" ;# <-- NOT TRANSLATED YET ##ID:003748## mcset $l "RS232 DBG: Invalid stop bit length, setting to default: %s" \ "RS232 DBG: Invalid stop bit length, setting to default: %s" ;# <-- NOT TRANSLATED YET ##ID:003749## mcset $l "RS232 DBG: Invalid flag reception_enabled, setting to default: %s" \ "RS232 DBG: Invalid flag reception_enabled, setting to default: %s" ;# <-- NOT TRANSLATED YET ##ID:003750## mcset $l "RS232 DBG: Invalid reception address, setting to default: %s" \ "RS232 DBG: Invalid reception address, setting to default: %s" ;# <-- NOT TRANSLATED YET ##ID:003751## mcset $l "RS232 DBG: Invalid current cell address, setting to default: %s" \ "RS232 DBG: Invalid current cell address, setting to default: %s" ;# <-- NOT TRANSLATED YET ##ID:003752## mcset $l "RS232 Debugger" \ "RS232 Debugger" ;# <-- NOT TRANSLATED YET ##ID:003753## mcset $l "UART/RS232 Debugger - MCU 8051 IDE" \ "UART/RS232 Debugger - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:003754## mcset $l "RS-232\nDTE" \ "RS-232\nDTE" ;# <-- NOT TRANSLATED YET ##ID:003755## mcset $l "DE-9" \ "DE-9" ;# <-- NOT TRANSLATED YET ##ID:003756## mcset $l "DCD" \ "DCD" ;# <-- NOT TRANSLATED YET ##ID:003757## mcset $l "DSR" \ "DSR" ;# <-- NOT TRANSLATED YET ##ID:003758## mcset $l "CTS" \ "CTS" ;# <-- NOT TRANSLATED YET ##ID:003759## mcset $l "RI" \ "RI" ;# <-- NOT TRANSLATED YET ##ID:003760## mcset $l "DTR" \ "DTR" ;# <-- NOT TRANSLATED YET ##ID:003761## mcset $l "RTS" \ "RTS" ;# <-- NOT TRANSLATED YET ##ID:003762## mcset $l "Break" \ "Break" ;# <-- NOT TRANSLATED YET ##ID:003763## mcset $l "Port configuration" \ "Port configuration" ;# <-- NOT TRANSLATED YET ##ID:003764## mcset $l "Physical port" \ "Physical port" ;# <-- NOT TRANSLATED YET ##ID:003765## mcset $l "Baud rate" \ "Baud rate" ;# <-- NOT TRANSLATED YET ##ID:003766## mcset $l "Data bits" \ "Data bits" ;# <-- NOT TRANSLATED YET ##ID:003767## mcset $l "Stop bits" \ "Stop bits" ;# <-- NOT TRANSLATED YET ##ID:003768## mcset $l "Enable reception" \ "Enable reception" ;# <-- NOT TRANSLATED YET ##ID:003769## mcset $l "Terminate connection" \ "Terminate connection" ;# <-- NOT TRANSLATED YET ##ID:003770## mcset $l "Data to send" \ "Data to send" ;# <-- NOT TRANSLATED YET ##ID:003771## mcset $l "Received data" \ "Received data" ;# <-- NOT TRANSLATED YET ##ID:003772## mcset $l "Send selected" \ "Send selected" ;# <-- NOT TRANSLATED YET ##ID:003773## mcset $l "Clear selected" \ "Clear selected" ;# <-- NOT TRANSLATED YET ##ID:003774## mcset $l "Receive here" \ "Receive here" ;# <-- NOT TRANSLATED YET ##ID:003775## mcset $l "Unknown failure" \ "Unknown failure" ;# <-- NOT TRANSLATED YET ##ID:003776## mcset $l "Unable to change port configuration" \ "Unable to change port configuration" ;# <-- NOT TRANSLATED YET ##ID:003777## mcset $l "IO Error" \ "IO Error" ;# <-- NOT TRANSLATED YET ##ID:003778## mcset $l "No port opened." \ "No port opened." ;# <-- NOT TRANSLATED YET ##ID:003779## mcset $l "Unable to send the data\n\n%s" \ "Unable to send the data\n\n%s" ;# <-- NOT TRANSLATED YET ##ID:003780## mcset $l "Not enough space in the receive buffer !" \ "Not enough space in the receive buffer !" ;# <-- NOT TRANSLATED YET ##ID:003781## mcset $l "Ok" \ "Ok" ;# <-- NOT TRANSLATED YET ##ID:003782## mcset $l "Keep reception enabled" \ "Keep reception enabled" ;# <-- NOT TRANSLATED YET ##ID:003783## mcset $l "Data lost" \ "Data lost" ;# <-- NOT TRANSLATED YET ##ID:003784## mcset $l "There is something wrong with the port. Closing connection and disabling reception on this channel !" \ "There is something wrong with the port. Closing connection and disabling reception on this channel !" ;# <-- NOT TRANSLATED YET ##ID:003785## mcset $l "Access Error" \ "Access Error" ;# <-- NOT TRANSLATED YET ##ID:003786## mcset $l "Unable to open the specified file" \ "Unable to open the specified file" ;# <-- NOT TRANSLATED YET ##ID:003787## mcset $l "Unable to use the specified file" \ "Unable to use the specified file" ;# <-- NOT TRANSLATED YET ##ID:003788## mcset $l "RS232 pin: GND -- Common ground" \ "RS232 pin: GND -- Common ground" ;# <-- NOT TRANSLATED YET ##ID:003789## mcset $l "RS232 pin: DCD -- Carrier Detect" \ "RS232 pin: DCD -- Carrier Detect" ;# <-- NOT TRANSLATED YET ##ID:003790## mcset $l "RS232 pin: DSR -- Data Set Ready" \ "RS232 pin: DSR -- Data Set Ready" ;# <-- NOT TRANSLATED YET ##ID:003791## mcset $l "RS232 pin: CTS -- Clear To Send" \ "RS232 pin: CTS -- Clear To Send" ;# <-- NOT TRANSLATED YET ##ID:003792## mcset $l "RS232 pin: RI -- Ring Indicator" \ "RS232 pin: RI -- Ring Indicator" ;# <-- NOT TRANSLATED YET ##ID:003793## mcset $l "RS232 pin: DTR -- Data Terminal Ready" \ "RS232 pin: DTR -- Data Terminal Ready" ;# <-- NOT TRANSLATED YET ##ID:003794## mcset $l "RS232 pin: RTS -- Request To Send" \ "RS232 pin: RTS -- Request To Send" ;# <-- NOT TRANSLATED YET ##ID:003795## mcset $l "RS232 pin: TxD -- Transmitted Data" \ "RS232 pin: TxD -- Transmitted Data" ;# <-- NOT TRANSLATED YET ##ID:003796## mcset $l "RS232 pin: RxD -- Received Data" \ "RS232 pin: RxD -- Received Data" ;# <-- NOT TRANSLATED YET } # speccalc.tcl # ============================================================================== namespace eval SpecCalc { ##ID:003797## mcset $l "Loops" \ "Loops" ;# <-- NOT TRANSLATED YET ##ID:003798## mcset $l "Timer 0/1" \ "Timer 0/1" ;# <-- NOT TRANSLATED YET ##ID:003799## mcset $l "Timer 2" \ "Timer 2" ;# <-- NOT TRANSLATED YET ##ID:003800## mcset $l "SPI" \ "SPI" ;# <-- NOT TRANSLATED YET ##ID:003801## mcset $l "Calculate timer preset" \ "Calculate timer preset" ;# <-- NOT TRANSLATED YET ##ID:003802## mcset $l "Preset" \ "Preset" ;# <-- NOT TRANSLATED YET ##ID:003803## mcset $l "Clock out" \ "Clock out" ;# <-- NOT TRANSLATED YET ##ID:003804## mcset $l "Special Calculator - MCU 8051 IDE" \ "Special Calculator - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:003805## mcset $l "Time" \ "Time" ;# <-- NOT TRANSLATED YET ##ID:003806## mcset $l "Time unit" \ "Time unit" ;# <-- NOT TRANSLATED YET ##ID:003807## mcset $l "Clock \[kHz\]" \ "Clock \[kHz\]" ;# <-- NOT TRANSLATED YET ##ID:003808## mcset $l "MCU clock" \ "MCU clock" ;# <-- NOT TRANSLATED YET ##ID:003809## mcset $l "Clock cycles per machine cycle\n 12 - Common 8051\n 6 - Core 51X2\n 1 - Single cycle core" \ "Clock cycles per machine cycle\n 12 - Common 8051\n 6 - Core 51X2\n 1 - Single cycle core" ;# <-- NOT TRANSLATED YET ##ID:003810## mcset $l "Clock cycles per machine cycle" \ "Clock cycles per machine cycle" ;# <-- NOT TRANSLATED YET ##ID:003811## mcset $l "Registers to use" \ "Registers to use" ;# <-- NOT TRANSLATED YET ##ID:003812## mcset $l "Source code:" \ "Source code:" ;# <-- NOT TRANSLATED YET ##ID:003813## mcset $l "Evaluate" \ "Evaluate" ;# <-- NOT TRANSLATED YET ##ID:003814## mcset $l "Copy" \ "Copy" ;# <-- NOT TRANSLATED YET ##ID:003815## mcset $l "Create a wait loop" \ "Create a wait loop" ;# <-- NOT TRANSLATED YET ##ID:003816## mcset $l "Mode" \ "Mode" ;# <-- NOT TRANSLATED YET ##ID:003817## mcset $l "Timer mode" \ "Timer mode" ;# <-- NOT TRANSLATED YET ##ID:003818## mcset $l "Show functional block diagram" \ "Show functional block diagram" ;# <-- NOT TRANSLATED YET ##ID:003819## mcset $l "Enhanced timer/counter" \ "Enhanced timer/counter" ;# <-- NOT TRANSLATED YET ##ID:003820## mcset $l "Calculate for enhanced timers" \ "Calculate for enhanced timers" ;# <-- NOT TRANSLATED YET ##ID:003821## mcset $l "The number of active bits in TL1 minus 1" \ "The number of active bits in TL1 minus 1" ;# <-- NOT TRANSLATED YET ##ID:003822## mcset $l "Results:" \ "Results:" ;# <-- NOT TRANSLATED YET ##ID:003823## mcset $l "TH" \ "TH" ;# <-- NOT TRANSLATED YET ##ID:003824## mcset $l "TL" \ "TL" ;# <-- NOT TRANSLATED YET ##ID:003825## mcset $l "RH" \ "RH" ;# <-- NOT TRANSLATED YET ##ID:003826## mcset $l "RL" \ "RL" ;# <-- NOT TRANSLATED YET ##ID:003827## mcset $l "Repeats" \ "Repeats" ;# <-- NOT TRANSLATED YET ##ID:003828## mcset $l "Rest" \ "Rest" ;# <-- NOT TRANSLATED YET ##ID:003829## mcset $l "Do not change" \ "Do not change" ;# <-- NOT TRANSLATED YET ##ID:003830## mcset $l "Zero" \ "Zero" ;# <-- NOT TRANSLATED YET ##ID:003831## mcset $l "none" \ "none" ;# <-- NOT TRANSLATED YET ##ID:003832## mcset $l "Calculate timer 0/1 preset" \ "Calculate timer 0/1 preset" ;# <-- NOT TRANSLATED YET ##ID:003833## mcset $l "RCAL2H" \ "RCAL2H" ;# <-- NOT TRANSLATED YET ##ID:003834## mcset $l "RCAL2L" \ "RCAL2L" ;# <-- NOT TRANSLATED YET ##ID:003835## mcset $l "T2H" \ "T2H" ;# <-- NOT TRANSLATED YET ##ID:003836## mcset $l "T2L" \ "T2L" ;# <-- NOT TRANSLATED YET ##ID:003837## mcset $l "Calculate timer 2 preset" \ "Calculate timer 2 preset" ;# <-- NOT TRANSLATED YET ##ID:003838## mcset $l "Frequency" \ "Frequency" ;# <-- NOT TRANSLATED YET ##ID:003839## mcset $l "F osc" \ "F osc" ;# <-- NOT TRANSLATED YET ##ID:003840## mcset $l "X2" \ "X2" ;# <-- NOT TRANSLATED YET ##ID:003841## mcset $l "HEX" \ "HEX" ;# <-- NOT TRANSLATED YET ##ID:003842## mcset $l "DEC" \ "DEC" ;# <-- NOT TRANSLATED YET ##ID:003843## mcset $l "RCAP2H" \ "RCAP2H" ;# <-- NOT TRANSLATED YET ##ID:003844## mcset $l "RCAP2L" \ "RCAP2L" ;# <-- NOT TRANSLATED YET ##ID:003845## mcset $l "Error" \ "Error" ;# <-- NOT TRANSLATED YET ##ID:003846## mcset $l "Calculate clock output" \ "Calculate clock output" ;# <-- NOT TRANSLATED YET ##ID:003847## mcset $l "Baud rate" \ "Baud rate" ;# <-- NOT TRANSLATED YET ##ID:003848## mcset $l "UART mode" \ "UART mode" ;# <-- NOT TRANSLATED YET ##ID:003849## mcset $l "Generator" \ "Generator" ;# <-- NOT TRANSLATED YET ##ID:003850## mcset $l "Baud rate generator" \ "Baud rate generator" ;# <-- NOT TRANSLATED YET ##ID:003851## mcset $l "Bit PCON.7 -- Double baud rate" \ "Bit PCON.7 -- Double baud rate" ;# <-- NOT TRANSLATED YET ##ID:003852## mcset $l "SPD (SPeeD) in BDRCON register" \ "SPD (SPeeD) in BDRCON register" ;# <-- NOT TRANSLATED YET ##ID:003853## mcset $l "Calculate for enhanced timer 1" \ "Calculate for enhanced timer 1" ;# <-- NOT TRANSLATED YET ##ID:003854## mcset $l "T1 mode" \ "T1 mode" ;# <-- NOT TRANSLATED YET ##ID:003855## mcset $l "Timer 1 mode" \ "Timer 1 mode" ;# <-- NOT TRANSLATED YET ##ID:003856## mcset $l "UART baud rate" \ "UART baud rate" ;# <-- NOT TRANSLATED YET ##ID:003857## mcset $l "Mode X2 or single cycle core" \ "Mode X2 or single cycle core" ;# <-- NOT TRANSLATED YET ##ID:003858## mcset $l "SCK \[kHz\]" \ "SCK \[kHz\]" ;# <-- NOT TRANSLATED YET ##ID:003859## mcset $l "Set MCU oscillator to " \ "Set MCU oscillator to " ;# <-- NOT TRANSLATED YET ##ID:003860## mcset $l " kHz" \ " kHz" ;# <-- NOT TRANSLATED YET ##ID:003861## mcset $l "Calculate oscillator frequency" \ "Calculate oscillator frequency" ;# <-- NOT TRANSLATED YET ##ID:003862## mcset $l "Unable to evaluate" \ "Unable to evaluate" ;# <-- NOT TRANSLATED YET ##ID:003863## mcset $l "ERROR: Missing time\n" \ "ERROR: Missing time\n" ;# <-- NOT TRANSLATED YET ##ID:003864## mcset $l "ERROR: Time rate cannot be 0\n" \ "ERROR: Time rate cannot be 0\n" ;# <-- NOT TRANSLATED YET ##ID:003865## mcset $l "ERROR: Missing MCU clock rate\n" \ "ERROR: Missing MCU clock rate\n" ;# <-- NOT TRANSLATED YET ##ID:003866## mcset $l "ERROR: MCU clock rate cannot be 0\n" \ "ERROR: MCU clock rate cannot be 0\n" ;# <-- NOT TRANSLATED YET ##ID:003867## mcset $l "ERROR: Missing register name %s\n" \ "ERROR: Missing register name %s\n" ;# <-- NOT TRANSLATED YET ##ID:003868## mcset $l "ERROR: Ambiguous register name %s\n" \ "ERROR: Ambiguous register name %s\n" ;# <-- NOT TRANSLATED YET ##ID:003869## mcset $l "; START: Wait loop, time: %s %s\n; Clock: %s kHz (%s)\n; Used registers: " \ "; START: Wait loop, time: %s %s\n; Clock: %s kHz (%s)\n; Used registers: " ;# <-- NOT TRANSLATED YET ##ID:003870## mcset $l "; Rest: %s\n" \ "; Rest: %s\n" ;# <-- NOT TRANSLATED YET ##ID:003871## mcset $l "; END: Wait loop" \ "; END: Wait loop" ;# <-- NOT TRANSLATED YET ##ID:003872## mcset $l "Invalid time" \ "Invalid time" ;# <-- NOT TRANSLATED YET ##ID:003873## mcset $l "Invalid clock rate" \ "Invalid clock rate" ;# <-- NOT TRANSLATED YET ##ID:003874## mcset $l "Value is too high" \ "Value is too high" ;# <-- NOT TRANSLATED YET ##ID:003875## mcset $l "One" \ "One" ;# <-- NOT TRANSLATED YET ##ID:003876## mcset $l "Timer 0/1 in mode 0" \ "Timer 0/1 in mode 0" ;# <-- NOT TRANSLATED YET ##ID:003877## mcset $l "Timer 0/1 in mode 1" \ "Timer 0/1 in mode 1" ;# <-- NOT TRANSLATED YET ##ID:003878## mcset $l "Timer 0/1 in mode 2" \ "Timer 0/1 in mode 2" ;# <-- NOT TRANSLATED YET ##ID:003879## mcset $l "Timer 2 as up/down counter" \ "Timer 2 as up/down counter" ;# <-- NOT TRANSLATED YET ##ID:003880## mcset $l "Timer 1/2 as UART baud rate generator" \ "Timer 1/2 as UART baud rate generator" ;# <-- NOT TRANSLATED YET ##ID:003881## mcset $l "Internal baud rate generator" \ "Internal baud rate generator" ;# <-- NOT TRANSLATED YET ##ID:003882## mcset $l "Diagram or formula" \ "Diagram or formula" ;# <-- NOT TRANSLATED YET ##ID:003883## mcset $l "UART baud rate generator" \ "UART baud rate generator" ;# <-- NOT TRANSLATED YET ##ID:003884## mcset $l "All files" \ "All files" ;# <-- NOT TRANSLATED YET ##ID:003885## mcset $l "Text files" \ "Text files" ;# <-- NOT TRANSLATED YET ##ID:003886## mcset $l "HTML files" \ "HTML files" ;# <-- NOT TRANSLATED YET } # table_of_instructions.tcl # ============================================================================== namespace eval TableOfInstructions { ##ID:003887## mcset $l "Exit" \ "Exit" ;# <-- NOT TRANSLATED YET ##ID:003888## mcset $l "OP code (hex): " \ "OP code (hex): " ;# <-- NOT TRANSLATED YET ##ID:003889## mcset $l "Class: " \ "Class: " ;# <-- NOT TRANSLATED YET ##ID:003890## mcset $l "Description: " \ "Description: " ;# <-- NOT TRANSLATED YET ##ID:003891## mcset $l "Length: " \ "Length: " ;# <-- NOT TRANSLATED YET ##ID:003892## mcset $l "Time: " \ "Time: " ;# <-- NOT TRANSLATED YET ##ID:003893## mcset $l "Flags: " \ "Flags: " ;# <-- NOT TRANSLATED YET ##ID:003894## mcset $l "Note: " \ "Note: " ;# <-- NOT TRANSLATED YET ##ID:003895## mcset $l "OP code not defined" \ "OP code not defined" ;# <-- NOT TRANSLATED YET ##ID:003896## mcset $l "This instruction does not exist on 8051" \ "This instruction does not exist on 8051" ;# <-- NOT TRANSLATED YET ##ID:003897## mcset $l "Operands" \ "Operands" ;# <-- NOT TRANSLATED YET ##ID:003898## mcset $l "Length" \ "Length" ;# <-- NOT TRANSLATED YET ##ID:003899## mcset $l "Time" \ "Time" ;# <-- NOT TRANSLATED YET ##ID:003900## mcset $l "Mnemonics" \ "Mnemonics" ;# <-- NOT TRANSLATED YET } # spell_check.tcl # ============================================================================== namespace eval Editor { ##ID:003901## mcset $l "Hunspell error" \ "Hunspell error" ;# <-- NOT TRANSLATED YET ##ID:003902## mcset $l "Unable to start the spell checker. Please try to re-install the hunspell. Spell checking function will not be available" \ "Unable to start the spell checker. Please try to re-install the hunspell. Spell checking function will not be available" ;# <-- NOT TRANSLATED YET ##ID:003903## mcset $l "Refresh list of dictionaries" \ "Refresh list of dictionaries" ;# <-- NOT TRANSLATED YET ##ID:003904## mcset $l "Turn off spell checking" \ "Turn off spell checking" ;# <-- NOT TRANSLATED YET ##ID:003905## mcset $l "Set dictionary by language" \ "Set dictionary by language" ;# <-- NOT TRANSLATED YET ##ID:003906## mcset $l "Set dictionary by country" \ "Set dictionary by country" ;# <-- NOT TRANSLATED YET ##ID:003907## mcset $l "File changed on disk" \ "File changed on disk" ;# <-- NOT TRANSLATED YET ##ID:003908## mcset $l "The file '%s' was modified from outside of this program.\n\nWhat do you want to do with the modified file" \ "The file '%s' was modified from outside of this program.\n\nWhat do you want to do with the modified file" ;# <-- NOT TRANSLATED YET ##ID:003909## mcset $l "Reload in editor" \ "Reload in editor" ;# <-- NOT TRANSLATED YET ##ID:003910## mcset $l "Overwrite on disk" \ "Overwrite on disk" ;# <-- NOT TRANSLATED YET ##ID:003911## mcset $l "Do nothing" \ "Do nothing" ;# <-- NOT TRANSLATED YET # Names of languages ##ID:003912## mcset $l "Abkhazian" \ "Abkhazian" ;# <-- NOT TRANSLATED YET ##ID:003913## mcset $l "Afar" \ "Afar" ;# <-- NOT TRANSLATED YET ##ID:003914## mcset $l "Afrikaans" \ "Afrikaans" ;# <-- NOT TRANSLATED YET ##ID:003915## mcset $l "Akan" \ "Akan" ;# <-- NOT TRANSLATED YET ##ID:003916## mcset $l "Albanian" \ "Albanian" ;# <-- NOT TRANSLATED YET ##ID:003917## mcset $l "Amharic" \ "Amharic" ;# <-- NOT TRANSLATED YET ##ID:003918## mcset $l "Arabic" \ "Arabic" ;# <-- NOT TRANSLATED YET ##ID:003919## mcset $l "Aragonese" \ "Aragonese" ;# <-- NOT TRANSLATED YET ##ID:003920## mcset $l "Armenian" \ "Armenian" ;# <-- NOT TRANSLATED YET ##ID:003921## mcset $l "Assamese" \ "Assamese" ;# <-- NOT TRANSLATED YET ##ID:003922## mcset $l "Avaric" \ "Avaric" ;# <-- NOT TRANSLATED YET ##ID:003923## mcset $l "Avestan" \ "Avestan" ;# <-- NOT TRANSLATED YET ##ID:003924## mcset $l "Aymara" \ "Aymara" ;# <-- NOT TRANSLATED YET ##ID:003925## mcset $l "Azerbaijani" \ "Azerbaijani" ;# <-- NOT TRANSLATED YET ##ID:003926## mcset $l "Bambara" \ "Bambara" ;# <-- NOT TRANSLATED YET ##ID:003927## mcset $l "Bashkir" \ "Bashkir" ;# <-- NOT TRANSLATED YET ##ID:003928## mcset $l "Basque" \ "Basque" ;# <-- NOT TRANSLATED YET ##ID:003929## mcset $l "Belarusian" \ "Belarusian" ;# <-- NOT TRANSLATED YET ##ID:003930## mcset $l "Bengali" \ "Bengali" ;# <-- NOT TRANSLATED YET ##ID:003931## mcset $l "Bihari languages" \ "Bihari languages" ;# <-- NOT TRANSLATED YET ##ID:003932## mcset $l "Bislama" \ "Bislama" ;# <-- NOT TRANSLATED YET ##ID:003933## mcset $l "Bokmål, Norwegian" \ "Bokmål, Norwegian" ;# <-- NOT TRANSLATED YET ##ID:003934## mcset $l "Bosnian" \ "Bosnian" ;# <-- NOT TRANSLATED YET ##ID:003935## mcset $l "Breton" \ "Breton" ;# <-- NOT TRANSLATED YET ##ID:003936## mcset $l "Bulgarian" \ "Bulgarian" ;# <-- NOT TRANSLATED YET ##ID:003937## mcset $l "Burmese" \ "Burmese" ;# <-- NOT TRANSLATED YET ##ID:003938## mcset $l "Castilian" \ "Castilian" ;# <-- NOT TRANSLATED YET ##ID:003939## mcset $l "Catalan" \ "Catalan" ;# <-- NOT TRANSLATED YET ##ID:003940## mcset $l "Central Khmer" \ "Central Khmer" ;# <-- NOT TRANSLATED YET ##ID:003941## mcset $l "Chamorro" \ "Chamorro" ;# <-- NOT TRANSLATED YET ##ID:003942## mcset $l "Chechen" \ "Chechen" ;# <-- NOT TRANSLATED YET ##ID:003943## mcset $l "Chewa" \ "Chewa" ;# <-- NOT TRANSLATED YET ##ID:003944## mcset $l "Chichewa" \ "Chichewa" ;# <-- NOT TRANSLATED YET ##ID:003945## mcset $l "Chinese" \ "Chinese" ;# <-- NOT TRANSLATED YET ##ID:003946## mcset $l "Chuang" \ "Chuang" ;# <-- NOT TRANSLATED YET ##ID:003947## mcset $l "Church Slavic" \ "Church Slavic" ;# <-- NOT TRANSLATED YET ##ID:003948## mcset $l "Church Slavonic" \ "Church Slavonic" ;# <-- NOT TRANSLATED YET ##ID:003949## mcset $l "Chuvash" \ "Chuvash" ;# <-- NOT TRANSLATED YET ##ID:003950## mcset $l "Cornish" \ "Cornish" ;# <-- NOT TRANSLATED YET ##ID:003951## mcset $l "Corsican" \ "Corsican" ;# <-- NOT TRANSLATED YET ##ID:003952## mcset $l "Cree" \ "Cree" ;# <-- NOT TRANSLATED YET ##ID:003953## mcset $l "Croatian" \ "Croatian" ;# <-- NOT TRANSLATED YET ##ID:003954## mcset $l "Czech" \ "Czech" ;# <-- NOT TRANSLATED YET ##ID:003955## mcset $l "Danish" \ "Danish" ;# <-- NOT TRANSLATED YET ##ID:003956## mcset $l "Dhivehi" \ "Dhivehi" ;# <-- NOT TRANSLATED YET ##ID:003957## mcset $l "Divehi" \ "Divehi" ;# <-- NOT TRANSLATED YET ##ID:003958## mcset $l "Dutch" \ "Dutch" ;# <-- NOT TRANSLATED YET ##ID:003959## mcset $l "Dzongkha" \ "Dzongkha" ;# <-- NOT TRANSLATED YET ##ID:003960## mcset $l "English" \ "English" ;# <-- NOT TRANSLATED YET ##ID:003961## mcset $l "Esperanto" \ "Esperanto" ;# <-- NOT TRANSLATED YET ##ID:003962## mcset $l "Estonian" \ "Estonian" ;# <-- NOT TRANSLATED YET ##ID:003963## mcset $l "Ewe" \ "Ewe" ;# <-- NOT TRANSLATED YET ##ID:003964## mcset $l "Faroese" \ "Faroese" ;# <-- NOT TRANSLATED YET ##ID:003965## mcset $l "Fijian" \ "Fijian" ;# <-- NOT TRANSLATED YET ##ID:003966## mcset $l "Finnish" \ "Finnish" ;# <-- NOT TRANSLATED YET ##ID:003967## mcset $l "Flemish" \ "Flemish" ;# <-- NOT TRANSLATED YET ##ID:003968## mcset $l "French" \ "French" ;# <-- NOT TRANSLATED YET ##ID:003969## mcset $l "Fulah" \ "Fulah" ;# <-- NOT TRANSLATED YET ##ID:003970## mcset $l "Gaelic" \ "Gaelic" ;# <-- NOT TRANSLATED YET ##ID:003971## mcset $l "Galician" \ "Galician" ;# <-- NOT TRANSLATED YET ##ID:003972## mcset $l "Ganda" \ "Ganda" ;# <-- NOT TRANSLATED YET ##ID:003973## mcset $l "Georgian" \ "Georgian" ;# <-- NOT TRANSLATED YET ##ID:003974## mcset $l "German" \ "German" ;# <-- NOT TRANSLATED YET ##ID:003975## mcset $l "Gikuyu" \ "Gikuyu" ;# <-- NOT TRANSLATED YET ##ID:003976## mcset $l "Greek, Modern" \ "Greek, Modern" ;# <-- NOT TRANSLATED YET ##ID:003977## mcset $l "Greenlandic" \ "Greenlandic" ;# <-- NOT TRANSLATED YET ##ID:003978## mcset $l "Guarani" \ "Guarani" ;# <-- NOT TRANSLATED YET ##ID:003979## mcset $l "Gujarati" \ "Gujarati" ;# <-- NOT TRANSLATED YET ##ID:003980## mcset $l "Haitian" \ "Haitian" ;# <-- NOT TRANSLATED YET ##ID:003981## mcset $l "Haitian Creole" \ "Haitian Creole" ;# <-- NOT TRANSLATED YET ##ID:003982## mcset $l "Hausa" \ "Hausa" ;# <-- NOT TRANSLATED YET ##ID:003983## mcset $l "Hebrew" \ "Hebrew" ;# <-- NOT TRANSLATED YET ##ID:003984## mcset $l "Herero" \ "Herero" ;# <-- NOT TRANSLATED YET ##ID:003985## mcset $l "Hindi" \ "Hindi" ;# <-- NOT TRANSLATED YET ##ID:003986## mcset $l "Hiri Motu" \ "Hiri Motu" ;# <-- NOT TRANSLATED YET ##ID:003987## mcset $l "Hungarian" \ "Hungarian" ;# <-- NOT TRANSLATED YET ##ID:003988## mcset $l "Icelandic" \ "Icelandic" ;# <-- NOT TRANSLATED YET ##ID:003989## mcset $l "Ido" \ "Ido" ;# <-- NOT TRANSLATED YET ##ID:003990## mcset $l "Igbo" \ "Igbo" ;# <-- NOT TRANSLATED YET ##ID:003991## mcset $l "Indonesian" \ "Indonesian" ;# <-- NOT TRANSLATED YET ##ID:003992## mcset $l "Interlingue" \ "Interlingue" ;# <-- NOT TRANSLATED YET ##ID:003993## mcset $l "Inuktitut" \ "Inuktitut" ;# <-- NOT TRANSLATED YET ##ID:003994## mcset $l "Inupiaq" \ "Inupiaq" ;# <-- NOT TRANSLATED YET ##ID:003995## mcset $l "Irish" \ "Irish" ;# <-- NOT TRANSLATED YET ##ID:003996## mcset $l "Italian" \ "Italian" ;# <-- NOT TRANSLATED YET ##ID:003997## mcset $l "Japanese" \ "Japanese" ;# <-- NOT TRANSLATED YET ##ID:003998## mcset $l "Javanese" \ "Javanese" ;# <-- NOT TRANSLATED YET ##ID:003999## mcset $l "Kalaallisut" \ "Kalaallisut" ;# <-- NOT TRANSLATED YET ##ID:004000## mcset $l "Kannada" \ "Kannada" ;# <-- NOT TRANSLATED YET ##ID:004001## mcset $l "Kanuri" \ "Kanuri" ;# <-- NOT TRANSLATED YET ##ID:004002## mcset $l "Kashmiri" \ "Kashmiri" ;# <-- NOT TRANSLATED YET ##ID:004003## mcset $l "Kazakh" \ "Kazakh" ;# <-- NOT TRANSLATED YET ##ID:004004## mcset $l "Kikuyu" \ "Kikuyu" ;# <-- NOT TRANSLATED YET ##ID:004005## mcset $l "Kinyarwanda" \ "Kinyarwanda" ;# <-- NOT TRANSLATED YET ##ID:004006## mcset $l "Kirghiz" \ "Kirghiz" ;# <-- NOT TRANSLATED YET ##ID:004007## mcset $l "Komi" \ "Komi" ;# <-- NOT TRANSLATED YET ##ID:004008## mcset $l "Kongo" \ "Kongo" ;# <-- NOT TRANSLATED YET ##ID:004009## mcset $l "Korean" \ "Korean" ;# <-- NOT TRANSLATED YET ##ID:004010## mcset $l "Kuanyama" \ "Kuanyama" ;# <-- NOT TRANSLATED YET ##ID:004011## mcset $l "Kurdish" \ "Kurdish" ;# <-- NOT TRANSLATED YET ##ID:004012## mcset $l "Kwanyama" \ "Kwanyama" ;# <-- NOT TRANSLATED YET ##ID:004013## mcset $l "Kyrgyz" \ "Kyrgyz" ;# <-- NOT TRANSLATED YET ##ID:004014## mcset $l "Lao" \ "Lao" ;# <-- NOT TRANSLATED YET ##ID:004015## mcset $l "Latin" \ "Latin" ;# <-- NOT TRANSLATED YET ##ID:004016## mcset $l "Latvian" \ "Latvian" ;# <-- NOT TRANSLATED YET ##ID:004017## mcset $l "Letzeburgesch" \ "Letzeburgesch" ;# <-- NOT TRANSLATED YET ##ID:004018## mcset $l "Limburgan" \ "Limburgan" ;# <-- NOT TRANSLATED YET ##ID:004019## mcset $l "Limburger" \ "Limburger" ;# <-- NOT TRANSLATED YET ##ID:004020## mcset $l "Limburgish" \ "Limburgish" ;# <-- NOT TRANSLATED YET ##ID:004021## mcset $l "Lingala" \ "Lingala" ;# <-- NOT TRANSLATED YET ##ID:004022## mcset $l "Lithuanian" \ "Lithuanian" ;# <-- NOT TRANSLATED YET ##ID:004023## mcset $l "Luba-Katanga" \ "Luba-Katanga" ;# <-- NOT TRANSLATED YET ##ID:004024## mcset $l "Luxembourgish" \ "Luxembourgish" ;# <-- NOT TRANSLATED YET ##ID:004025## mcset $l "Macedonian" \ "Macedonian" ;# <-- NOT TRANSLATED YET ##ID:004026## mcset $l "Malagasy" \ "Malagasy" ;# <-- NOT TRANSLATED YET ##ID:004027## mcset $l "Malay" \ "Malay" ;# <-- NOT TRANSLATED YET ##ID:004028## mcset $l "Malayalam" \ "Malayalam" ;# <-- NOT TRANSLATED YET ##ID:004029## mcset $l "Maldivian" \ "Maldivian" ;# <-- NOT TRANSLATED YET ##ID:004030## mcset $l "Maltese" \ "Maltese" ;# <-- NOT TRANSLATED YET ##ID:004031## mcset $l "Manx" \ "Manx" ;# <-- NOT TRANSLATED YET ##ID:004032## mcset $l "Maori" \ "Maori" ;# <-- NOT TRANSLATED YET ##ID:004033## mcset $l "Marathi" \ "Marathi" ;# <-- NOT TRANSLATED YET ##ID:004034## mcset $l "Marshallese" \ "Marshallese" ;# <-- NOT TRANSLATED YET ##ID:004035## mcset $l "Moldavian" \ "Moldavian" ;# <-- NOT TRANSLATED YET ##ID:004036## mcset $l "Moldovan" \ "Moldovan" ;# <-- NOT TRANSLATED YET ##ID:004037## mcset $l "Mongolian" \ "Mongolian" ;# <-- NOT TRANSLATED YET ##ID:004038## mcset $l "Nauru" \ "Nauru" ;# <-- NOT TRANSLATED YET ##ID:004039## mcset $l "Navaho" \ "Navaho" ;# <-- NOT TRANSLATED YET ##ID:004040## mcset $l "Navajo" \ "Navajo" ;# <-- NOT TRANSLATED YET ##ID:004041## mcset $l "Ndebele, North" \ "Ndebele, North" ;# <-- NOT TRANSLATED YET ##ID:004042## mcset $l "Ndebele, South" \ "Ndebele, South" ;# <-- NOT TRANSLATED YET ##ID:004043## mcset $l "Ndonga" \ "Ndonga" ;# <-- NOT TRANSLATED YET ##ID:004044## mcset $l "Nepali" \ "Nepali" ;# <-- NOT TRANSLATED YET ##ID:004045## mcset $l "North Ndebele" \ "North Ndebele" ;# <-- NOT TRANSLATED YET ##ID:004046## mcset $l "Northern Sami" \ "Northern Sami" ;# <-- NOT TRANSLATED YET ##ID:004047## mcset $l "Norwegian" \ "Norwegian" ;# <-- NOT TRANSLATED YET ##ID:004048## mcset $l "Norwegian Bokmål" \ "Norwegian Bokmål" ;# <-- NOT TRANSLATED YET ##ID:004049## mcset $l "Norwegian Nynorsk" \ "Norwegian Nynorsk" ;# <-- NOT TRANSLATED YET ##ID:004050## mcset $l "Nuosu" \ "Nuosu" ;# <-- NOT TRANSLATED YET ##ID:004051## mcset $l "Nyanja" \ "Nyanja" ;# <-- NOT TRANSLATED YET ##ID:004052## mcset $l "Nynorsk, Norwegian" \ "Nynorsk, Norwegian" ;# <-- NOT TRANSLATED YET ##ID:004053## mcset $l "Occidental" \ "Occidental" ;# <-- NOT TRANSLATED YET ##ID:004054## mcset $l "Occitan" \ "Occitan" ;# <-- NOT TRANSLATED YET ##ID:004055## mcset $l "Ojibwa" \ "Ojibwa" ;# <-- NOT TRANSLATED YET ##ID:004056## mcset $l "Old Bulgarian" \ "Old Bulgarian" ;# <-- NOT TRANSLATED YET ##ID:004057## mcset $l "Old Church Slavonic" \ "Old Church Slavonic" ;# <-- NOT TRANSLATED YET ##ID:004058## mcset $l "Old Slavonic" \ "Old Slavonic" ;# <-- NOT TRANSLATED YET ##ID:004059## mcset $l "Oriya" \ "Oriya" ;# <-- NOT TRANSLATED YET ##ID:004060## mcset $l "Oromo" \ "Oromo" ;# <-- NOT TRANSLATED YET ##ID:004061## mcset $l "Ossetian" \ "Ossetian" ;# <-- NOT TRANSLATED YET ##ID:004062## mcset $l "Ossetic" \ "Ossetic" ;# <-- NOT TRANSLATED YET ##ID:004063## mcset $l "Pali" \ "Pali" ;# <-- NOT TRANSLATED YET ##ID:004064## mcset $l "Panjabi" \ "Panjabi" ;# <-- NOT TRANSLATED YET ##ID:004065## mcset $l "Pashto" \ "Pashto" ;# <-- NOT TRANSLATED YET ##ID:004066## mcset $l "Persian" \ "Persian" ;# <-- NOT TRANSLATED YET ##ID:004067## mcset $l "Polish" \ "Polish" ;# <-- NOT TRANSLATED YET ##ID:004068## mcset $l "Portuguese" \ "Portuguese" ;# <-- NOT TRANSLATED YET ##ID:004069## mcset $l "Punjabi" \ "Punjabi" ;# <-- NOT TRANSLATED YET ##ID:004070## mcset $l "Pushto" \ "Pushto" ;# <-- NOT TRANSLATED YET ##ID:004071## mcset $l "Quechua" \ "Quechua" ;# <-- NOT TRANSLATED YET ##ID:004072## mcset $l "Romanian" \ "Romanian" ;# <-- NOT TRANSLATED YET ##ID:004073## mcset $l "Romansh" \ "Romansh" ;# <-- NOT TRANSLATED YET ##ID:004074## mcset $l "Rundi" \ "Rundi" ;# <-- NOT TRANSLATED YET ##ID:004075## mcset $l "Russian" \ "Russian" ;# <-- NOT TRANSLATED YET ##ID:004076## mcset $l "Samoan" \ "Samoan" ;# <-- NOT TRANSLATED YET ##ID:004077## mcset $l "Sango" \ "Sango" ;# <-- NOT TRANSLATED YET ##ID:004078## mcset $l "Sanskrit" \ "Sanskrit" ;# <-- NOT TRANSLATED YET ##ID:004079## mcset $l "Sardinian" \ "Sardinian" ;# <-- NOT TRANSLATED YET ##ID:004080## mcset $l "Scottish Gaelic" \ "Scottish Gaelic" ;# <-- NOT TRANSLATED YET ##ID:004081## mcset $l "Serbian" \ "Serbian" ;# <-- NOT TRANSLATED YET ##ID:004082## mcset $l "Shona" \ "Shona" ;# <-- NOT TRANSLATED YET ##ID:004083## mcset $l "Sichuan Yi" \ "Sichuan Yi" ;# <-- NOT TRANSLATED YET ##ID:004084## mcset $l "Sindhi" \ "Sindhi" ;# <-- NOT TRANSLATED YET ##ID:004085## mcset $l "Sinhala" \ "Sinhala" ;# <-- NOT TRANSLATED YET ##ID:004086## mcset $l "Sinhalese" \ "Sinhalese" ;# <-- NOT TRANSLATED YET ##ID:004087## mcset $l "Slovak" \ "Slovak" ;# <-- NOT TRANSLATED YET ##ID:004088## mcset $l "Slovenian" \ "Slovenian" ;# <-- NOT TRANSLATED YET ##ID:004089## mcset $l "Somali" \ "Somali" ;# <-- NOT TRANSLATED YET ##ID:004090## mcset $l "Sotho, Southern" \ "Sotho, Southern" ;# <-- NOT TRANSLATED YET ##ID:004091## mcset $l "South Ndebele" \ "South Ndebele" ;# <-- NOT TRANSLATED YET ##ID:004092## mcset $l "Spanish" \ "Spanish" ;# <-- NOT TRANSLATED YET ##ID:004093## mcset $l "Sundanese" \ "Sundanese" ;# <-- NOT TRANSLATED YET ##ID:004094## mcset $l "Swahili" \ "Swahili" ;# <-- NOT TRANSLATED YET ##ID:004095## mcset $l "Swati" \ "Swati" ;# <-- NOT TRANSLATED YET ##ID:004096## mcset $l "Swedish" \ "Swedish" ;# <-- NOT TRANSLATED YET ##ID:004097## mcset $l "Tagalog" \ "Tagalog" ;# <-- NOT TRANSLATED YET ##ID:004098## mcset $l "Tahitian" \ "Tahitian" ;# <-- NOT TRANSLATED YET ##ID:004099## mcset $l "Tajik" \ "Tajik" ;# <-- NOT TRANSLATED YET ##ID:004100## mcset $l "Tamil" \ "Tamil" ;# <-- NOT TRANSLATED YET ##ID:004101## mcset $l "Tatar" \ "Tatar" ;# <-- NOT TRANSLATED YET ##ID:004102## mcset $l "Telugu" \ "Telugu" ;# <-- NOT TRANSLATED YET ##ID:004103## mcset $l "Thai" \ "Thai" ;# <-- NOT TRANSLATED YET ##ID:004104## mcset $l "Tibetan" \ "Tibetan" ;# <-- NOT TRANSLATED YET ##ID:004105## mcset $l "Tigrinya" \ "Tigrinya" ;# <-- NOT TRANSLATED YET ##ID:004106## mcset $l "Tonga" \ "Tonga" ;# <-- NOT TRANSLATED YET ##ID:004107## mcset $l "Tsonga" \ "Tsonga" ;# <-- NOT TRANSLATED YET ##ID:004108## mcset $l "Tswana" \ "Tswana" ;# <-- NOT TRANSLATED YET ##ID:004109## mcset $l "Turkish" \ "Turkish" ;# <-- NOT TRANSLATED YET ##ID:004110## mcset $l "Turkmen" \ "Turkmen" ;# <-- NOT TRANSLATED YET ##ID:004111## mcset $l "Twi" \ "Twi" ;# <-- NOT TRANSLATED YET ##ID:004112## mcset $l "Uighur" \ "Uighur" ;# <-- NOT TRANSLATED YET ##ID:004113## mcset $l "Ukrainian" \ "Ukrainian" ;# <-- NOT TRANSLATED YET ##ID:004114## mcset $l "Urdu" \ "Urdu" ;# <-- NOT TRANSLATED YET ##ID:004115## mcset $l "Uyghur" \ "Uyghur" ;# <-- NOT TRANSLATED YET ##ID:004116## mcset $l "Uzbek" \ "Uzbek" ;# <-- NOT TRANSLATED YET ##ID:004117## mcset $l "Valencian" \ "Valencian" ;# <-- NOT TRANSLATED YET ##ID:004118## mcset $l "Venda" \ "Venda" ;# <-- NOT TRANSLATED YET ##ID:004119## mcset $l "Vietnamese" \ "Vietnamese" ;# <-- NOT TRANSLATED YET ##ID:004120## mcset $l "Volapük" \ "Volapük" ;# <-- NOT TRANSLATED YET ##ID:004121## mcset $l "Walloon" \ "Walloon" ;# <-- NOT TRANSLATED YET ##ID:004122## mcset $l "Welsh" \ "Welsh" ;# <-- NOT TRANSLATED YET ##ID:004123## mcset $l "Western Frisian" \ "Western Frisian" ;# <-- NOT TRANSLATED YET ##ID:004124## mcset $l "Wolof" \ "Wolof" ;# <-- NOT TRANSLATED YET ##ID:004125## mcset $l "Xhosa" \ "Xhosa" ;# <-- NOT TRANSLATED YET ##ID:004126## mcset $l "Yiddish" \ "Yiddish" ;# <-- NOT TRANSLATED YET ##ID:004127## mcset $l "Yoruba" \ "Yoruba" ;# <-- NOT TRANSLATED YET ##ID:004128## mcset $l "Zhuang" \ "Zhuang" ;# <-- NOT TRANSLATED YET ##ID:004129## mcset $l "Zulu" \ "Zulu" ;# <-- NOT TRANSLATED YET # Names of countries ##ID:004130## mcset $l "Afghanistan" \ "Afghanistan" ;# <-- NOT TRANSLATED YET ##ID:004131## mcset $l "Åland Islands" \ "Åland Islands" ;# <-- NOT TRANSLATED YET ##ID:004132## mcset $l "Albania" \ "Albania" ;# <-- NOT TRANSLATED YET ##ID:004133## mcset $l "Algeria" \ "Algeria" ;# <-- NOT TRANSLATED YET ##ID:004134## mcset $l "American Samoa" \ "American Samoa" ;# <-- NOT TRANSLATED YET ##ID:004135## mcset $l "Andorra" \ "Andorra" ;# <-- NOT TRANSLATED YET ##ID:004136## mcset $l "Angola" \ "Angola" ;# <-- NOT TRANSLATED YET ##ID:004137## mcset $l "Anguilla" \ "Anguilla" ;# <-- NOT TRANSLATED YET ##ID:004138## mcset $l "Antarctica" \ "Antarctica" ;# <-- NOT TRANSLATED YET ##ID:004139## mcset $l "Antigua And Barbuda" \ "Antigua And Barbuda" ;# <-- NOT TRANSLATED YET ##ID:004140## mcset $l "Argentina" \ "Argentina" ;# <-- NOT TRANSLATED YET ##ID:004141## mcset $l "Armenia" \ "Armenia" ;# <-- NOT TRANSLATED YET ##ID:004142## mcset $l "Aruba" \ "Aruba" ;# <-- NOT TRANSLATED YET ##ID:004143## mcset $l "Australia" \ "Australia" ;# <-- NOT TRANSLATED YET ##ID:004144## mcset $l "Austria" \ "Austria" ;# <-- NOT TRANSLATED YET ##ID:004145## mcset $l "Azerbaijan" \ "Azerbaijan" ;# <-- NOT TRANSLATED YET ##ID:004146## mcset $l "Bahamas" \ "Bahamas" ;# <-- NOT TRANSLATED YET ##ID:004147## mcset $l "Bahrain" \ "Bahrain" ;# <-- NOT TRANSLATED YET ##ID:004148## mcset $l "Bangladesh" \ "Bangladesh" ;# <-- NOT TRANSLATED YET ##ID:004149## mcset $l "Barbados" \ "Barbados" ;# <-- NOT TRANSLATED YET ##ID:004150## mcset $l "Belarus" \ "Belarus" ;# <-- NOT TRANSLATED YET ##ID:004151## mcset $l "Belgium" \ "Belgium" ;# <-- NOT TRANSLATED YET ##ID:004152## mcset $l "Belize" \ "Belize" ;# <-- NOT TRANSLATED YET ##ID:004153## mcset $l "Benin" \ "Benin" ;# <-- NOT TRANSLATED YET ##ID:004154## mcset $l "Bermuda" \ "Bermuda" ;# <-- NOT TRANSLATED YET ##ID:004155## mcset $l "Bhutan" \ "Bhutan" ;# <-- NOT TRANSLATED YET ##ID:004156## mcset $l "Bolivia, Plurinational State Of" \ "Bolivia, Plurinational State Of" ;# <-- NOT TRANSLATED YET ##ID:004157## mcset $l "Bosnia And Herzegovina" \ "Bosnia And Herzegovina" ;# <-- NOT TRANSLATED YET ##ID:004158## mcset $l "Botswana" \ "Botswana" ;# <-- NOT TRANSLATED YET ##ID:004159## mcset $l "Bouvet Island" \ "Bouvet Island" ;# <-- NOT TRANSLATED YET ##ID:004160## mcset $l "Brazil" \ "Brazil" ;# <-- NOT TRANSLATED YET ##ID:004161## mcset $l "British Indian Ocean Territory" \ "British Indian Ocean Territory" ;# <-- NOT TRANSLATED YET ##ID:004162## mcset $l "Brunei Darussalam" \ "Brunei Darussalam" ;# <-- NOT TRANSLATED YET ##ID:004163## mcset $l "Bulgaria" \ "Bulgaria" ;# <-- NOT TRANSLATED YET ##ID:004164## mcset $l "Burkina Faso" \ "Burkina Faso" ;# <-- NOT TRANSLATED YET ##ID:004165## mcset $l "Burundi" \ "Burundi" ;# <-- NOT TRANSLATED YET ##ID:004166## mcset $l "Cambodia" \ "Cambodia" ;# <-- NOT TRANSLATED YET ##ID:004167## mcset $l "Cameroon" \ "Cameroon" ;# <-- NOT TRANSLATED YET ##ID:004168## mcset $l "Canada" \ "Canada" ;# <-- NOT TRANSLATED YET ##ID:004169## mcset $l "Cape Verde" \ "Cape Verde" ;# <-- NOT TRANSLATED YET ##ID:004170## mcset $l "Cayman Islands" \ "Cayman Islands" ;# <-- NOT TRANSLATED YET ##ID:004171## mcset $l "Central African Republic" \ "Central African Republic" ;# <-- NOT TRANSLATED YET ##ID:004172## mcset $l "Chad" \ "Chad" ;# <-- NOT TRANSLATED YET ##ID:004173## mcset $l "Chile" \ "Chile" ;# <-- NOT TRANSLATED YET ##ID:004174## mcset $l "China" \ "China" ;# <-- NOT TRANSLATED YET ##ID:004175## mcset $l "Christmas Island" \ "Christmas Island" ;# <-- NOT TRANSLATED YET ##ID:004176## mcset $l "Cocos (Keeling) Islands" \ "Cocos (Keeling) Islands" ;# <-- NOT TRANSLATED YET ##ID:004177## mcset $l "Colombia" \ "Colombia" ;# <-- NOT TRANSLATED YET ##ID:004178## mcset $l "Comoros" \ "Comoros" ;# <-- NOT TRANSLATED YET ##ID:004179## mcset $l "Congo" \ "Congo" ;# <-- NOT TRANSLATED YET ##ID:004180## mcset $l "Congo, The Democratic Republic Of The" \ "Congo, The Democratic Republic Of The" ;# <-- NOT TRANSLATED YET ##ID:004181## mcset $l "Cook Islands" \ "Cook Islands" ;# <-- NOT TRANSLATED YET ##ID:004182## mcset $l "Costa Rica" \ "Costa Rica" ;# <-- NOT TRANSLATED YET ##ID:004183## mcset $l "Côte D'Ivoire" \ "Côte D'Ivoire" ;# <-- NOT TRANSLATED YET ##ID:004184## mcset $l "Croatia" \ "Croatia" ;# <-- NOT TRANSLATED YET ##ID:004185## mcset $l "Cuba" \ "Cuba" ;# <-- NOT TRANSLATED YET ##ID:004186## mcset $l "Cyprus" \ "Cyprus" ;# <-- NOT TRANSLATED YET ##ID:004187## mcset $l "Czech Republic" \ "Czech Republic" ;# <-- NOT TRANSLATED YET ##ID:004188## mcset $l "Denmark" \ "Denmark" ;# <-- NOT TRANSLATED YET ##ID:004189## mcset $l "Djibouti" \ "Djibouti" ;# <-- NOT TRANSLATED YET ##ID:004190## mcset $l "Dominica" \ "Dominica" ;# <-- NOT TRANSLATED YET ##ID:004191## mcset $l "Dominican Republic" \ "Dominican Republic" ;# <-- NOT TRANSLATED YET ##ID:004192## mcset $l "Ecuador" \ "Ecuador" ;# <-- NOT TRANSLATED YET ##ID:004193## mcset $l "Egypt" \ "Egypt" ;# <-- NOT TRANSLATED YET ##ID:004194## mcset $l "El Salvador" \ "El Salvador" ;# <-- NOT TRANSLATED YET ##ID:004195## mcset $l "Equatorial Guinea" \ "Equatorial Guinea" ;# <-- NOT TRANSLATED YET ##ID:004196## mcset $l "Eritrea" \ "Eritrea" ;# <-- NOT TRANSLATED YET ##ID:004197## mcset $l "Estonia" \ "Estonia" ;# <-- NOT TRANSLATED YET ##ID:004198## mcset $l "Ethiopia" \ "Ethiopia" ;# <-- NOT TRANSLATED YET ##ID:004199## mcset $l "Falkland Islands (Malvinas)" \ "Falkland Islands (Malvinas)" ;# <-- NOT TRANSLATED YET ##ID:004200## mcset $l "Faroe Islands" \ "Faroe Islands" ;# <-- NOT TRANSLATED YET ##ID:004201## mcset $l "Fiji" \ "Fiji" ;# <-- NOT TRANSLATED YET ##ID:004202## mcset $l "Finland" \ "Finland" ;# <-- NOT TRANSLATED YET ##ID:004203## mcset $l "France" \ "France" ;# <-- NOT TRANSLATED YET ##ID:004204## mcset $l "French Guiana" \ "French Guiana" ;# <-- NOT TRANSLATED YET ##ID:004205## mcset $l "French Polynesia" \ "French Polynesia" ;# <-- NOT TRANSLATED YET ##ID:004206## mcset $l "French Southern Territories" \ "French Southern Territories" ;# <-- NOT TRANSLATED YET ##ID:004207## mcset $l "Gabon" \ "Gabon" ;# <-- NOT TRANSLATED YET ##ID:004208## mcset $l "Gambia" \ "Gambia" ;# <-- NOT TRANSLATED YET ##ID:004209## mcset $l "Georgia" \ "Georgia" ;# <-- NOT TRANSLATED YET ##ID:004210## mcset $l "Germany" \ "Germany" ;# <-- NOT TRANSLATED YET ##ID:004211## mcset $l "Ghana" \ "Ghana" ;# <-- NOT TRANSLATED YET ##ID:004212## mcset $l "Gibraltar" \ "Gibraltar" ;# <-- NOT TRANSLATED YET ##ID:004213## mcset $l "Greece" \ "Greece" ;# <-- NOT TRANSLATED YET ##ID:004214## mcset $l "Greenland" \ "Greenland" ;# <-- NOT TRANSLATED YET ##ID:004215## mcset $l "Grenada" \ "Grenada" ;# <-- NOT TRANSLATED YET ##ID:004216## mcset $l "Guadeloupe" \ "Guadeloupe" ;# <-- NOT TRANSLATED YET ##ID:004217## mcset $l "Guam" \ "Guam" ;# <-- NOT TRANSLATED YET ##ID:004218## mcset $l "Guatemala" \ "Guatemala" ;# <-- NOT TRANSLATED YET ##ID:004219## mcset $l "Guernsey" \ "Guernsey" ;# <-- NOT TRANSLATED YET ##ID:004220## mcset $l "Guinea" \ "Guinea" ;# <-- NOT TRANSLATED YET ##ID:004221## mcset $l "Guinea-Bissau" \ "Guinea-Bissau" ;# <-- NOT TRANSLATED YET ##ID:004222## mcset $l "Guyana" \ "Guyana" ;# <-- NOT TRANSLATED YET ##ID:004223## mcset $l "Haiti" \ "Haiti" ;# <-- NOT TRANSLATED YET ##ID:004224## mcset $l "Heard Island And Mcdonald Islands" \ "Heard Island And Mcdonald Islands" ;# <-- NOT TRANSLATED YET ##ID:004225## mcset $l "Holy See (Vatican City State)" \ "Holy See (Vatican City State)" ;# <-- NOT TRANSLATED YET ##ID:004226## mcset $l "Honduras" \ "Honduras" ;# <-- NOT TRANSLATED YET ##ID:004227## mcset $l "Hong Kong" \ "Hong Kong" ;# <-- NOT TRANSLATED YET ##ID:004228## mcset $l "Hungary" \ "Hungary" ;# <-- NOT TRANSLATED YET ##ID:004229## mcset $l "Iceland" \ "Iceland" ;# <-- NOT TRANSLATED YET ##ID:004230## mcset $l "India" \ "India" ;# <-- NOT TRANSLATED YET ##ID:004231## mcset $l "Indonesia" \ "Indonesia" ;# <-- NOT TRANSLATED YET ##ID:004232## mcset $l "Iran, Islamic Republic Of" \ "Iran, Islamic Republic Of" ;# <-- NOT TRANSLATED YET ##ID:004233## mcset $l "Iraq" \ "Iraq" ;# <-- NOT TRANSLATED YET ##ID:004234## mcset $l "Ireland" \ "Ireland" ;# <-- NOT TRANSLATED YET ##ID:004235## mcset $l "Isle Of Man" \ "Isle Of Man" ;# <-- NOT TRANSLATED YET ##ID:004236## mcset $l "Israel" \ "Israel" ;# <-- NOT TRANSLATED YET ##ID:004237## mcset $l "Italy" \ "Italy" ;# <-- NOT TRANSLATED YET ##ID:004238## mcset $l "Jamaica" \ "Jamaica" ;# <-- NOT TRANSLATED YET ##ID:004239## mcset $l "Japan" \ "Japan" ;# <-- NOT TRANSLATED YET ##ID:004240## mcset $l "Jersey" \ "Jersey" ;# <-- NOT TRANSLATED YET ##ID:004241## mcset $l "Jordan" \ "Jordan" ;# <-- NOT TRANSLATED YET ##ID:004242## mcset $l "Kazakhstan" \ "Kazakhstan" ;# <-- NOT TRANSLATED YET ##ID:004243## mcset $l "Kenya" \ "Kenya" ;# <-- NOT TRANSLATED YET ##ID:004244## mcset $l "Kiribati" \ "Kiribati" ;# <-- NOT TRANSLATED YET ##ID:004245## mcset $l "Korea, Democratic People'S Republic Of" \ "Korea, Democratic People'S Republic Of" ;# <-- NOT TRANSLATED YET ##ID:004246## mcset $l "Korea, Republic Of" \ "Korea, Republic Of" ;# <-- NOT TRANSLATED YET ##ID:004247## mcset $l "Kuwait" \ "Kuwait" ;# <-- NOT TRANSLATED YET ##ID:004248## mcset $l "Kyrgyzstan" \ "Kyrgyzstan" ;# <-- NOT TRANSLATED YET ##ID:004249## mcset $l "Lao People'S Democratic Republic" \ "Lao People'S Democratic Republic" ;# <-- NOT TRANSLATED YET ##ID:004250## mcset $l "Latvia" \ "Latvia" ;# <-- NOT TRANSLATED YET ##ID:004251## mcset $l "Lebanon" \ "Lebanon" ;# <-- NOT TRANSLATED YET ##ID:004252## mcset $l "Lesotho" \ "Lesotho" ;# <-- NOT TRANSLATED YET ##ID:004253## mcset $l "Liberia" \ "Liberia" ;# <-- NOT TRANSLATED YET ##ID:004254## mcset $l "Libyan Arab Jamahiriya" \ "Libyan Arab Jamahiriya" ;# <-- NOT TRANSLATED YET ##ID:004255## mcset $l "Liechtenstein" \ "Liechtenstein" ;# <-- NOT TRANSLATED YET ##ID:004256## mcset $l "Lithuania" \ "Lithuania" ;# <-- NOT TRANSLATED YET ##ID:004257## mcset $l "Luxembourg" \ "Luxembourg" ;# <-- NOT TRANSLATED YET ##ID:004258## mcset $l "Macao" \ "Macao" ;# <-- NOT TRANSLATED YET ##ID:004259## mcset $l "Macedonia, The Former Yugoslav Republic Of" \ "Macedonia, The Former Yugoslav Republic Of" ;# <-- NOT TRANSLATED YET ##ID:004260## mcset $l "Madagascar" \ "Madagascar" ;# <-- NOT TRANSLATED YET ##ID:004261## mcset $l "Malawi" \ "Malawi" ;# <-- NOT TRANSLATED YET ##ID:004262## mcset $l "Malaysia" \ "Malaysia" ;# <-- NOT TRANSLATED YET ##ID:004263## mcset $l "Maldives" \ "Maldives" ;# <-- NOT TRANSLATED YET ##ID:004264## mcset $l "Mali" \ "Mali" ;# <-- NOT TRANSLATED YET ##ID:004265## mcset $l "Malta" \ "Malta" ;# <-- NOT TRANSLATED YET ##ID:004266## mcset $l "Marshall Islands" \ "Marshall Islands" ;# <-- NOT TRANSLATED YET ##ID:004267## mcset $l "Martinique" \ "Martinique" ;# <-- NOT TRANSLATED YET ##ID:004268## mcset $l "Mauritania" \ "Mauritania" ;# <-- NOT TRANSLATED YET ##ID:004269## mcset $l "Mauritius" \ "Mauritius" ;# <-- NOT TRANSLATED YET ##ID:004270## mcset $l "Mayotte" \ "Mayotte" ;# <-- NOT TRANSLATED YET ##ID:004271## mcset $l "Mexico" \ "Mexico" ;# <-- NOT TRANSLATED YET ##ID:004272## mcset $l "Micronesia, Federated States Of" \ "Micronesia, Federated States Of" ;# <-- NOT TRANSLATED YET ##ID:004273## mcset $l "Moldova, Republic Of" \ "Moldova, Republic Of" ;# <-- NOT TRANSLATED YET ##ID:004274## mcset $l "Monaco" \ "Monaco" ;# <-- NOT TRANSLATED YET ##ID:004275## mcset $l "Mongolia" \ "Mongolia" ;# <-- NOT TRANSLATED YET ##ID:004276## mcset $l "Montenegro" \ "Montenegro" ;# <-- NOT TRANSLATED YET ##ID:004277## mcset $l "Montserrat" \ "Montserrat" ;# <-- NOT TRANSLATED YET ##ID:004278## mcset $l "Morocco" \ "Morocco" ;# <-- NOT TRANSLATED YET ##ID:004279## mcset $l "Mozambique" \ "Mozambique" ;# <-- NOT TRANSLATED YET ##ID:004280## mcset $l "Myanmar" \ "Myanmar" ;# <-- NOT TRANSLATED YET ##ID:004281## mcset $l "Namibia" \ "Namibia" ;# <-- NOT TRANSLATED YET ##ID:004282## mcset $l "Nepal" \ "Nepal" ;# <-- NOT TRANSLATED YET ##ID:004283## mcset $l "Netherlands" \ "Netherlands" ;# <-- NOT TRANSLATED YET ##ID:004284## mcset $l "Netherlands Antilles" \ "Netherlands Antilles" ;# <-- NOT TRANSLATED YET ##ID:004285## mcset $l "New Caledonia" \ "New Caledonia" ;# <-- NOT TRANSLATED YET ##ID:004286## mcset $l "New Zealand" \ "New Zealand" ;# <-- NOT TRANSLATED YET ##ID:004287## mcset $l "Nicaragua" \ "Nicaragua" ;# <-- NOT TRANSLATED YET ##ID:004288## mcset $l "Niger" \ "Niger" ;# <-- NOT TRANSLATED YET ##ID:004289## mcset $l "Nigeria" \ "Nigeria" ;# <-- NOT TRANSLATED YET ##ID:004290## mcset $l "Niue" \ "Niue" ;# <-- NOT TRANSLATED YET ##ID:004291## mcset $l "Norfolk Island" \ "Norfolk Island" ;# <-- NOT TRANSLATED YET ##ID:004292## mcset $l "Northern Mariana Islands" \ "Northern Mariana Islands" ;# <-- NOT TRANSLATED YET ##ID:004293## mcset $l "Norway" \ "Norway" ;# <-- NOT TRANSLATED YET ##ID:004294## mcset $l "Oman" \ "Oman" ;# <-- NOT TRANSLATED YET ##ID:004295## mcset $l "Pakistan" \ "Pakistan" ;# <-- NOT TRANSLATED YET ##ID:004296## mcset $l "Palau" \ "Palau" ;# <-- NOT TRANSLATED YET ##ID:004297## mcset $l "Palestinian Territory, Occupied" \ "Palestinian Territory, Occupied" ;# <-- NOT TRANSLATED YET ##ID:004298## mcset $l "Panama" \ "Panama" ;# <-- NOT TRANSLATED YET ##ID:004299## mcset $l "Papua New Guinea" \ "Papua New Guinea" ;# <-- NOT TRANSLATED YET ##ID:004300## mcset $l "Paraguay" \ "Paraguay" ;# <-- NOT TRANSLATED YET ##ID:004301## mcset $l "Peru" \ "Peru" ;# <-- NOT TRANSLATED YET ##ID:004302## mcset $l "Philippines" \ "Philippines" ;# <-- NOT TRANSLATED YET ##ID:004303## mcset $l "Pitcairn" \ "Pitcairn" ;# <-- NOT TRANSLATED YET ##ID:004304## mcset $l "Poland" \ "Poland" ;# <-- NOT TRANSLATED YET ##ID:004305## mcset $l "Portugal" \ "Portugal" ;# <-- NOT TRANSLATED YET ##ID:004306## mcset $l "Puerto Rico" \ "Puerto Rico" ;# <-- NOT TRANSLATED YET ##ID:004307## mcset $l "Qatar" \ "Qatar" ;# <-- NOT TRANSLATED YET ##ID:004308## mcset $l "Réunion" \ "Réunion" ;# <-- NOT TRANSLATED YET ##ID:004309## mcset $l "Romania" \ "Romania" ;# <-- NOT TRANSLATED YET ##ID:004310## mcset $l "Russian Federation" \ "Russian Federation" ;# <-- NOT TRANSLATED YET ##ID:004311## mcset $l "Rwanda" \ "Rwanda" ;# <-- NOT TRANSLATED YET ##ID:004312## mcset $l "Saint Barthélemy" \ "Saint Barthélemy" ;# <-- NOT TRANSLATED YET ##ID:004313## mcset $l "Saint Helena, Ascension And Tristan Da Cunha" \ "Saint Helena, Ascension And Tristan Da Cunha" ;# <-- NOT TRANSLATED YET ##ID:004314## mcset $l "Saint Kitts And Nevis" \ "Saint Kitts And Nevis" ;# <-- NOT TRANSLATED YET ##ID:004315## mcset $l "Saint Lucia" \ "Saint Lucia" ;# <-- NOT TRANSLATED YET ##ID:004316## mcset $l "Saint Martin" \ "Saint Martin" ;# <-- NOT TRANSLATED YET ##ID:004317## mcset $l "Saint Pierre And Miquelon" \ "Saint Pierre And Miquelon" ;# <-- NOT TRANSLATED YET ##ID:004318## mcset $l "Saint Vincent And The Grenadines" \ "Saint Vincent And The Grenadines" ;# <-- NOT TRANSLATED YET ##ID:004319## mcset $l "Samoa" \ "Samoa" ;# <-- NOT TRANSLATED YET ##ID:004320## mcset $l "San Marino" \ "San Marino" ;# <-- NOT TRANSLATED YET ##ID:004321## mcset $l "Sao Tome And Principe" \ "Sao Tome And Principe" ;# <-- NOT TRANSLATED YET ##ID:004322## mcset $l "Saudi Arabia" \ "Saudi Arabia" ;# <-- NOT TRANSLATED YET ##ID:004323## mcset $l "Senegal" \ "Senegal" ;# <-- NOT TRANSLATED YET ##ID:004324## mcset $l "Serbia" \ "Serbia" ;# <-- NOT TRANSLATED YET ##ID:004325## mcset $l "Seychelles" \ "Seychelles" ;# <-- NOT TRANSLATED YET ##ID:004326## mcset $l "Sierra Leone" \ "Sierra Leone" ;# <-- NOT TRANSLATED YET ##ID:004327## mcset $l "Singapore" \ "Singapore" ;# <-- NOT TRANSLATED YET ##ID:004328## mcset $l "Slovakia" \ "Slovakia" ;# <-- NOT TRANSLATED YET ##ID:004329## mcset $l "Slovenia" \ "Slovenia" ;# <-- NOT TRANSLATED YET ##ID:004330## mcset $l "Solomon Islands" \ "Solomon Islands" ;# <-- NOT TRANSLATED YET ##ID:004331## mcset $l "Somalia" \ "Somalia" ;# <-- NOT TRANSLATED YET ##ID:004332## mcset $l "South Africa" \ "South Africa" ;# <-- NOT TRANSLATED YET ##ID:004333## mcset $l "South Georgia And The South Sandwich Islands" \ "South Georgia And The South Sandwich Islands" ;# <-- NOT TRANSLATED YET ##ID:004334## mcset $l "Spain" \ "Spain" ;# <-- NOT TRANSLATED YET ##ID:004335## mcset $l "Sri Lanka" \ "Sri Lanka" ;# <-- NOT TRANSLATED YET ##ID:004336## mcset $l "Sudan" \ "Sudan" ;# <-- NOT TRANSLATED YET ##ID:004337## mcset $l "Suriname" \ "Suriname" ;# <-- NOT TRANSLATED YET ##ID:004338## mcset $l "Svalbard And Jan Mayen" \ "Svalbard And Jan Mayen" ;# <-- NOT TRANSLATED YET ##ID:004339## mcset $l "Swaziland" \ "Swaziland" ;# <-- NOT TRANSLATED YET ##ID:004340## mcset $l "Sweden" \ "Sweden" ;# <-- NOT TRANSLATED YET ##ID:004341## mcset $l "Switzerland" \ "Switzerland" ;# <-- NOT TRANSLATED YET ##ID:004342## mcset $l "Syrian Arab Republic" \ "Syrian Arab Republic" ;# <-- NOT TRANSLATED YET ##ID:004343## mcset $l "Taiwan, Province Of China" \ "Taiwan, Province Of China" ;# <-- NOT TRANSLATED YET ##ID:004344## mcset $l "Tajikistan" \ "Tajikistan" ;# <-- NOT TRANSLATED YET ##ID:004345## mcset $l "Tanzania, United Republic Of" \ "Tanzania, United Republic Of" ;# <-- NOT TRANSLATED YET ##ID:004346## mcset $l "Thailand" \ "Thailand" ;# <-- NOT TRANSLATED YET ##ID:004347## mcset $l "Timor-Leste" \ "Timor-Leste" ;# <-- NOT TRANSLATED YET ##ID:004348## mcset $l "Togo" \ "Togo" ;# <-- NOT TRANSLATED YET ##ID:004349## mcset $l "Tokelau" \ "Tokelau" ;# <-- NOT TRANSLATED YET ##ID:004350## mcset $l "Trinidad And Tobago" \ "Trinidad And Tobago" ;# <-- NOT TRANSLATED YET ##ID:004351## mcset $l "Tunisia" \ "Tunisia" ;# <-- NOT TRANSLATED YET ##ID:004352## mcset $l "Turkey" \ "Turkey" ;# <-- NOT TRANSLATED YET ##ID:004353## mcset $l "Turkmenistan" \ "Turkmenistan" ;# <-- NOT TRANSLATED YET ##ID:004354## mcset $l "Turks And Caicos Islands" \ "Turks And Caicos Islands" ;# <-- NOT TRANSLATED YET ##ID:004355## mcset $l "Tuvalu" \ "Tuvalu" ;# <-- NOT TRANSLATED YET ##ID:004356## mcset $l "Uganda" \ "Uganda" ;# <-- NOT TRANSLATED YET ##ID:004357## mcset $l "Ukraine" \ "Ukraine" ;# <-- NOT TRANSLATED YET ##ID:004358## mcset $l "United Arab Emirates" \ "United Arab Emirates" ;# <-- NOT TRANSLATED YET ##ID:004359## mcset $l "United Kingdom" \ "United Kingdom" ;# <-- NOT TRANSLATED YET ##ID:004360## mcset $l "United States" \ "United States" ;# <-- NOT TRANSLATED YET ##ID:004361## mcset $l "United States Minor Outlying Islands" \ "United States Minor Outlying Islands" ;# <-- NOT TRANSLATED YET ##ID:004362## mcset $l "Uruguay" \ "Uruguay" ;# <-- NOT TRANSLATED YET ##ID:004363## mcset $l "Uzbekistan" \ "Uzbekistan" ;# <-- NOT TRANSLATED YET ##ID:004364## mcset $l "Vanuatu" \ "Vanuatu" ;# <-- NOT TRANSLATED YET ##ID:004365## mcset $l "Vatican City State" \ "Vatican City State" ;# <-- NOT TRANSLATED YET ##ID:004366## mcset $l "Venezuela, Bolivarian Republic Of" \ "Venezuela, Bolivarian Republic Of" ;# <-- NOT TRANSLATED YET ##ID:004367## mcset $l "Viet Nam" \ "Viet Nam" ;# <-- NOT TRANSLATED YET ##ID:004368## mcset $l "Virgin Islands, British" \ "Virgin Islands, British" ;# <-- NOT TRANSLATED YET ##ID:004369## mcset $l "Virgin Islands, U.S." \ "Virgin Islands, U.S." ;# <-- NOT TRANSLATED YET ##ID:004370## mcset $l "Wallis And Futuna" \ "Wallis And Futuna" ;# <-- NOT TRANSLATED YET ##ID:004371## mcset $l "Western Sahara" \ "Western Sahara" ;# <-- NOT TRANSLATED YET ##ID:004372## mcset $l "Yemen" \ "Yemen" ;# <-- NOT TRANSLATED YET ##ID:004373## mcset $l "Zambia" \ "Zambia" ;# <-- NOT TRANSLATED YET ##ID:004374## mcset $l "Zimbabwe" \ "Zimbabwe" ;# <-- NOT TRANSLATED YET } # lcd_hd44780.tcl # ============================================================================== namespace eval LcdHD44780 { ##ID:004375## mcset $l "LCD display" \ "LCD display" ;# <-- NOT TRANSLATED YET ##ID:004376## mcset $l "NOTE" \ "NOTE" ;# <-- NOT TRANSLATED YET ##ID:004377## mcset $l "BIT" \ "BIT" ;# <-- NOT TRANSLATED YET ##ID:004378## mcset $l "PORT" \ "PORT" ;# <-- NOT TRANSLATED YET ##ID:004379## mcset $l "Set font" \ "Set font" ;# <-- NOT TRANSLATED YET ##ID:004380## mcset $l "ROM code A00" \ "ROM code A00" ;# <-- NOT TRANSLATED YET ##ID:004381## mcset $l "ROM code A02" \ "ROM code A02" ;# <-- NOT TRANSLATED YET ##ID:004382## mcset $l "Set character size" \ "Set character size" ;# <-- NOT TRANSLATED YET ##ID:004383## mcset $l "hd44780" \ "hd44780" ;# <-- NOT TRANSLATED YET ##ID:004384## mcset $l "Disable delays" \ "Disable delays" ;# <-- NOT TRANSLATED YET ##ID:004385## mcset $l "Ignore errors" \ "Ignore errors" ;# <-- NOT TRANSLATED YET ##ID:004386## mcset $l "Show HD44780 log" \ "Show HD44780 log" ;# <-- NOT TRANSLATED YET ##ID:004387## mcset $l "Display the log of events which are currently happening in the simulated HD44780 chip" \ "Display the log of events which are currently happening in the simulated HD44780 chip" ;# <-- NOT TRANSLATED YET ##ID:004388## mcset $l "Show CGROM" \ "Show CGROM" ;# <-- NOT TRANSLATED YET ##ID:004389## mcset $l "Display content of HD44780 Character Generator ROM" \ "Display content of HD44780 Character Generator ROM" ;# <-- NOT TRANSLATED YET ##ID:004390## mcset $l "Show CGRAM" \ "Show CGRAM" ;# <-- NOT TRANSLATED YET ##ID:004391## mcset $l "Display content of HD44780 Character Generator RAM" \ "Display content of HD44780 Character Generator RAM" ;# <-- NOT TRANSLATED YET ##ID:004392## mcset $l "Show DDRAM" \ "Show DDRAM" ;# <-- NOT TRANSLATED YET ##ID:004393## mcset $l "Display content of HD44780 Display data RAM" \ "Display content of HD44780 Display data RAM" ;# <-- NOT TRANSLATED YET ##ID:004394## mcset $l "Reset HD44780" \ "Reset HD44780" ;# <-- NOT TRANSLATED YET ##ID:004395## mcset $l "Reinitialize the simulated HD44780, but do not affect DDRAM and CGRAM" \ "Reinitialize the simulated HD44780, but do not affect DDRAM and CGRAM" ;# <-- NOT TRANSLATED YET ##ID:004396## mcset $l "Clear DDRAM & CGRAM" \ "Clear DDRAM & CGRAM" ;# <-- NOT TRANSLATED YET ##ID:004397## mcset $l "Clear the entire Display Data RAM and Character Generator RAM" \ "Clear the entire Display Data RAM and Character Generator RAM" ;# <-- NOT TRANSLATED YET ##ID:004398## mcset $l "Show help" \ "Show help" ;# <-- NOT TRANSLATED YET ##ID:004399## mcset $l "Show brief help" \ "Show brief help" ;# <-- NOT TRANSLATED YET ##ID:004400## mcset $l "Save configuration" \ "Save configuration" ;# <-- NOT TRANSLATED YET ##ID:004401## mcset $l "Save configuration into a file" \ "Save configuration into a file" ;# <-- NOT TRANSLATED YET ##ID:004402## mcset $l "Load configuration" \ "Load configuration" ;# <-- NOT TRANSLATED YET ##ID:004403## mcset $l "Load configuration from a file" \ "Load configuration from a file" ;# <-- NOT TRANSLATED YET ##ID:004404## mcset $l "Cursor blinking" \ "Cursor blinking" ;# <-- NOT TRANSLATED YET ##ID:004405## mcset $l "Accompanies display shift" \ "Accompanies display shift" ;# <-- NOT TRANSLATED YET ##ID:004406## mcset $l "Display ON/OFF" \ "Display ON/OFF" ;# <-- NOT TRANSLATED YET ##ID:004407## mcset $l "Cursor ON/OFF" \ "Cursor ON/OFF" ;# <-- NOT TRANSLATED YET ##ID:004408## mcset $l "2 lines display / 1 line display" \ "2 lines display / 1 line display" ;# <-- NOT TRANSLATED YET ##ID:004409## mcset $l "5 × 10 dots / 5 × 8 dots" \ "5 × 10 dots / 5 × 8 dots" ;# <-- NOT TRANSLATED YET ##ID:004410## mcset $l "Increment AC / Decrement AC" \ "Increment AC / Decrement AC" ;# <-- NOT TRANSLATED YET ##ID:004411## mcset $l "8-bit data transfer / 4-bit data transfer" \ "8-bit data transfer / 4-bit data transfer" ;# <-- NOT TRANSLATED YET ##ID:004412## mcset $l "One More Nibble to transfer / data transfer complete" \ "One More Nibble to transfer / data transfer complete" ;# <-- NOT TRANSLATED YET ##ID:004413## mcset $l "Internally operating / Instructions acceptable" \ "Internally operating / Instructions acceptable" ;# <-- NOT TRANSLATED YET ##ID:004414## mcset $l "Show or hide the bottom part" \ "Show or hide the bottom part" ;# <-- NOT TRANSLATED YET ##ID:004415## mcset $l "Show or hide the right part" \ "Show or hide the right part" ;# <-- NOT TRANSLATED YET ##ID:004416## mcset $l "Turn HW simulation on/off" \ "Turn HW simulation on/off" ;# <-- NOT TRANSLATED YET ##ID:004417## mcset $l "Configure" \ "Configure" ;# <-- NOT TRANSLATED YET ##ID:004418## mcset $l "Shift:" \ "Shift:" ;# <-- NOT TRANSLATED YET ##ID:004419## mcset $l "Close" \ "Close" ;# <-- NOT TRANSLATED YET ##ID:004420## mcset $l "Cursor: " \ "Cursor: " ;# <-- NOT TRANSLATED YET ##ID:004421## mcset $l "HD44780 Character Generator ROM (ROM Code: A0%d) - MCU 8051 IDE" \ "HD44780 Character Generator ROM (ROM Code: A0%d) - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:004422## mcset $l "Clear log" \ "Clear log" ;# <-- NOT TRANSLATED YET ##ID:004423## mcset $l "HD44780 log - MCU 8051 IDE" \ "HD44780 log - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:004424## mcset $l "\[INFO\] " \ "\[INFO\] " ;# <-- NOT TRANSLATED YET ##ID:004425## mcset $l "\[WARNING\] " \ "\[WARNING\] " ;# <-- NOT TRANSLATED YET ##ID:004426## mcset $l "\[ERROR\] " \ "\[ERROR\] " ;# <-- NOT TRANSLATED YET ##ID:004427## mcset $l "HD44780 ERROR" \ "HD44780 ERROR" ;# <-- NOT TRANSLATED YET ##ID:004428## mcset $l "Received instruction: %s" \ "Received instruction: %s" ;# <-- NOT TRANSLATED YET ##ID:004429## mcset $l "Clear Display" \ "Clear Display" ;# <-- NOT TRANSLATED YET ##ID:004430## mcset $l "Return Home" \ "Return Home" ;# <-- NOT TRANSLATED YET ##ID:004431## mcset $l "Entry Mode Set" \ "Entry Mode Set" ;# <-- NOT TRANSLATED YET ##ID:004432## mcset $l "Display On Off Control" \ "Display On Off Control" ;# <-- NOT TRANSLATED YET ##ID:004433## mcset $l "Cursor Or Display Shift" \ "Cursor Or Display Shift" ;# <-- NOT TRANSLATED YET ##ID:004434## mcset $l "Function Set" \ "Function Set" ;# <-- NOT TRANSLATED YET ##ID:004435## mcset $l "Set CGRAM Address" \ "Set CGRAM Address" ;# <-- NOT TRANSLATED YET ##ID:004436## mcset $l "Set DDRAM Address" \ "Set DDRAM Address" ;# <-- NOT TRANSLATED YET ##ID:004437## mcset $l "Read Busy Flag & Address" \ "Read Busy Flag & Address" ;# <-- NOT TRANSLATED YET ##ID:004438## mcset $l "Write Data To CG Or DDRAM" \ "Write Data To CG Or DDRAM" ;# <-- NOT TRANSLATED YET ##ID:004439## mcset $l "Neither \"Set DDRAM Address\" nor \"Set CGRAM Address\" instruction was issued prior to the write instruction" \ "Neither \"Set DDRAM Address\" nor \"Set CGRAM Address\" instruction was issued prior to the write instruction" ;# <-- NOT TRANSLATED YET ##ID:004440## mcset $l "Read Data From CG Or DDRAM" \ "Read Data From CG Or DDRAM" ;# <-- NOT TRANSLATED YET ##ID:004441## mcset $l "Neither \"Set DDRAM Address\" nor \"Set CGRAM Address\" instruction was issued prior to the read instruction" \ "Neither \"Set DDRAM Address\" nor \"Set CGRAM Address\" instruction was issued prior to the read instruction" ;# <-- NOT TRANSLATED YET ##ID:004442## mcset $l "Controller is busy, unable to execute requested instruction." \ "Controller is busy, unable to execute requested instruction." ;# <-- NOT TRANSLATED YET ##ID:004443## mcset $l "Commencing execution, this action will take %d micro-seonds to comply." \ "Commencing execution, this action will take %d micro-seonds to comply." ;# <-- NOT TRANSLATED YET ##ID:004444## mcset $l "Operation finished" \ "Operation finished" ;# <-- NOT TRANSLATED YET ##ID:004445## mcset $l "Skipping delay" \ "Skipping delay" ;# <-- NOT TRANSLATED YET ##ID:004446## mcset $l "Device reset" \ "Device reset" ;# <-- NOT TRANSLATED YET ##ID:004447## mcset $l "DDRAM address is too high: %d" \ "DDRAM address is too high: %d" ;# <-- NOT TRANSLATED YET ##ID:004448## mcset $l "CGRAM address is too high: %d" \ "CGRAM address is too high: %d" ;# <-- NOT TRANSLATED YET ##ID:004449## mcset $l "Value is too high: 0x%X" \ "Value is too high: 0x%X" ;# <-- NOT TRANSLATED YET ##ID:004450## mcset $l "Input is corrupted: %s" \ "Input is corrupted: %s" ;# <-- NOT TRANSLATED YET ##ID:004451## mcset $l "Invalid instruction: %2Xh" \ "Invalid instruction: %2Xh" ;# <-- NOT TRANSLATED YET ##ID:004452## mcset $l "Received an invalid input on signal %s" \ "Received an invalid input on signal %s" ;# <-- NOT TRANSLATED YET ##ID:004453## mcset $l "LCD display controled by HD44780 driver\n\n" \ "LCD display controled by HD44780 driver\n\n" ;# <-- NOT TRANSLATED YET ##ID:004454## mcset $l "Starting the HD44780 boot-up sequence." \ "Starting the HD44780 boot-up sequence." ;# <-- NOT TRANSLATED YET ##ID:004455## mcset $l "Receiving the Most Significant Nibble (%02Xh)" \ "Receiving the Most Significant Nibble (%02Xh)" ;# <-- NOT TRANSLATED YET ##ID:004456## mcset $l "Receiving the Less Significant Nibble (%02Xh)" \ "Receiving the Less Significant Nibble (%02Xh)" ;# <-- NOT TRANSLATED YET } mcu8051ide-1.4.7/translations/zh_CN.msg0000644000175000017500000210506512067167647020342 0ustar milleniummillenium# # Translation file from English language to Chinese # by:Yayi (China) ;asmwarrior # # Created: 2010.12.20. # Last update: 2012.7.29 # Notes to translation: 如果遇到翻译错误或者建议更改请发邮件给我 # set l [file tail [file rootname [info script]]] # main.tcl # ============================================================================== namespace eval :: { ##ID:000001## mcset $l "Translated into _Language_ by _Name_ (_country_) <_email_>" \ "Translated into chinese by Yayi (China) \n如果遇到翻译错误或者建议更改请发邮件给我." ##ID:000002## mcset $l "Initializing" \ "正在初始化" ##ID:000003## mcset $l "\tLoading libraries" \ "\t正在加载库" ##ID:000004## mcset $l "\tLoading program sources" \ "\t正在加载程序源" ##ID:000005## mcset $l "FATAL ERROR" \ "致命错误" ##ID:000006## mcset $l "MCUs database file is corrupted,\nthis program cannot run without it.\nPlease reinstall MCU 8051 IDE." \ "MCU的数据库已损坏,\n此程序离开它无法运行.\n请重新安装 MCU 8051 IDE." ##ID:000007## mcset $l "\tOpening last session" \ "\t打开最后一次会话" ##ID:000008## mcset $l "File not found" \ "文件没有找到" ##ID:000009## mcset $l "Unable to open project file:\n\"%s\"" \ "无法打开项目文件:\n\"%s\"" ##ID:000010## mcset $l "%s is now operational\n" \ "%s目前正在运行\n" ##ID:000011## mcset $l "Initializing %s" \ "正在初始化%s" ##ID:000012## mcset $l "\nInitializing MCU 8051 IDE %s" \ "\n正在初始化 MCU 8051 IDE %s" ##ID:000013## mcset $l "\nInitializing \033\[1mMCU 8051 IDE \033\[32m%s\033\[m" \ "\n正在初始化 \033\[1mMCU 8051 IDE \033\[32m%s\033\[m" ##ID:000014## mcset $l "\nExiting on signal %s" \ "\n正在退出 %s" ##ID:000015## mcset $l "\nERROR: Unable to exit the program correctly -- TERMINATING NOW!" \ "\n错误: 无法正常退出程序 -- 正在结束" ; } # environment.tcl # ============================================================================== namespace eval :: { ##ID:000016## mcset $l "Permission denied" \ "没有权限" ##ID:000017## mcset $l "Unable to save configuration file" \ "无法保存配置文件" ##ID:000018## mcset $l " * Restoring default settings" \ " * 恢复默认设置" ##ID:000019## mcset $l "Change level of syntax validation" \ "更改语法检查级别" ##ID:000020## mcset $l "Configure spell checker" \ "配置拼写检查" ##ID:000021## mcset $l "Spell checker (hunspell) is not available." \ "拼写检查(hunspell)不可用" ##ID:000022## mcset $l "Show status bar history" \ "显示历史状态条" ##ID:000023## mcset $l "MCU chosen for simulation" \ "选择用于仿真的单片机" ##ID:000024## mcset $l "Syntax validation disabled" \ "关闭语法检查" ##ID:000025## mcset $l "Current validation level: %s" \ "当前语法检查级别: %s" ##ID:000026## mcset $l "Custom command %s: %s" \ "自定义命令 %s: %s" ##ID:000027## mcset $l "Clear" \ "清除" # Main menu / File ##ID:000028## mcset $l "File" \ "文件" ##ID:000029## mcset $l "New" \ "新建" ##ID:000030## mcset $l "Create new file" \ "创建新文件" ##ID:000031## mcset $l "Open" \ "打开" ##ID:000032## mcset $l "Open an existing file" \ "打开文件" ##ID:000033## mcset $l "Open recent" \ "最近打开" ##ID:000034## mcset $l "Save" \ "保存" ##ID:000035## mcset $l "Save the current file" \ "保存当前文件" ##ID:000036## mcset $l "Save as" \ "另存为" ##ID:000037## mcset $l "Save under a different name" \ "根据不同的名称保存" ##ID:000038## mcset $l "Save all" \ "保存所有" ##ID:000039## mcset $l "Save the current file under a different name" \ "根据不同的名称保存当前文件" ##ID:000040## mcset $l "Close" \ "关闭" ##ID:000041## mcset $l "Close the current file" \ "关闭当前文件" ##ID:000042## mcset $l "Close all" \ "关闭全部" ##ID:000043## mcset $l "Close all opened files" \ "关闭所有打开的文件" ##ID:000044## mcset $l "File statistics" \ "文件统计" ##ID:000045## mcset $l "Display file statistics" \ "显示统计文件" ##ID:000046## mcset $l "Save session" \ "保存会话" ##ID:000047## mcset $l "Save current session. Session file contains list of opened project, sizes of panels, etc." \ "保存当前会话.项目中打开的会话文件,面板尺寸等" ##ID:000048## mcset $l "Quit" \ "退出" ##ID:000049## mcset $l "Exit program" \ "退出程序" # Main menu / Edit ##ID:000050## mcset $l "Edit" \ "编辑" ##ID:000051## mcset $l "Undo" \ "撤销" ##ID:000052## mcset $l "Take back last operation" \ "返回到最后操作" ##ID:000053## mcset $l "Redo" \ "取消撤销" ##ID:000054## mcset $l "Take back last undo" \ "取消最后的撤销" ##ID:000055## mcset $l "Cut" \ "剪切" ##ID:000056## mcset $l "Move selected text into the clipboard" \ "剪切选定的文本到剪贴板" ##ID:000057## mcset $l "Copy" \ "复制" ##ID:000058## mcset $l "Copy selected text into the clipboard" \ "复制选定的文本到剪贴板" ##ID:000059## mcset $l "Paste" \ "粘帖" ##ID:000060## mcset $l "Paste text from clipboard" \ "粘贴剪贴板中的文本" ##ID:000061## mcset $l "Select all" \ "选择所有" ##ID:000062## mcset $l "Select all text in the editor" \ "在编辑器中选择所有文本" ##ID:000063## mcset $l "Find" \ "查找" ##ID:000064## mcset $l "Find a string in the text" \ "在文本中查找" ##ID:000065## mcset $l "Find next" \ "查找下一个" ##ID:000066## mcset $l "Find next occurrence of search string" \ "查找下一个搜索字符" ##ID:000067## mcset $l "Find previous" \ "查找上一个" ##ID:004514## mcset $l "Fill with pseudo-random values" \ "伪随机值填充" ##ID:000068## mcset $l "Find previous occurrence of search string" \ "查找上一个搜索字符" ##ID:000069## mcset $l "Replace" \ "替换" ##ID:000070## mcset $l "Replace some string with another" \ "替换其他的字符" ##ID:000071## mcset $l "Go to line" \ "到达指定的行目" ##ID:000072## mcset $l "Jump to line" \ "转跳到指定的行目" ##ID:000073## mcset $l "Comment" \ "注释" ##ID:000074## mcset $l "Comment selected text" \ "注释选定的文本" ##ID:000075## mcset $l "Uncomment" \ "取消注释" ##ID:000076## mcset $l "Uncomment selected text" \ "取消指定文本的注释" ##ID:000077## mcset $l "Indent" \ "缩进" ##ID:000078## mcset $l "Indent selected text" \ "缩进指定的文本" ##ID:000079## mcset $l "Unindent" \ "取消缩进" ##ID:000080## mcset $l "Unindent selected text" \ "取消指定文本的缩进" # Main menu / View ##ID:000081## mcset $l "View" \ "查看" ##ID:000082## mcset $l "Read only mode" \ "只读模式" ##ID:000083## mcset $l "Set current editor to read only/normal mode" \ "当前编辑器设置为只读/正常模式" ##ID:000084## mcset $l "Switch to command line" \ "切换至命令行" ##ID:000085## mcset $l "Switch to editor command line" \ "切换至编辑器命令行" ##ID:000086## mcset $l "Show/Hide icon border" \ "显示/隐藏图标栏" ##ID:000087## mcset $l "Show/Hide editor's icon border (bookmark icons)" \ "显示/隐藏编辑器的图标栏(书签图标)" ##ID:000088## mcset $l "Show/Hide line numbers" \ "显示/隐藏行目" ##ID:000089## mcset $l "Show/Hide editor's line numbers" \ "显示/隐藏编辑器行目" ##ID:000090## mcset $l "Reload" \ "刷新" ##ID:000091## mcset $l "Reload current file" \ "刷新当前文件" ##ID:000092## mcset $l "Highlight" \ "高亮" ##ID:000093## mcset $l "None" \ "无" ##ID:000094## mcset $l "Assembly language" \ "汇编语言模式" ##ID:000095## mcset $l "Assembler ASX8051" \ "ASX8051汇编模式" ##ID:000096## mcset $l "Reallocable assembler from SDCC project" \ "从SDCC项目中分配汇编器" ##ID:000097## mcset $l "C language" \ "C语言模式" ##ID:000098## mcset $l "Code listing" \ "代码列表模式" ##ID:000099## mcset $l "Full screen mode" \ "全屏模式" ##ID:000100## mcset $l "Toggle full screen mode" \ "切换到全屏模式" ##ID:000101## mcset $l "Clear messages panel" \ "清除信息面板" # Main menu / Project ##ID:000102## mcset $l "Project" \ "项目" ##ID:000103## mcset $l "Create new project" \ "创建新项目" ##ID:000104## mcset $l "Open an existing project" \ "打开已有的项目" ##ID:000105## mcset $l "Save the current project" \ "保存当前项目" ##ID:000106## mcset $l "Edit project" \ "编辑项目" ##ID:000107## mcset $l "Edit project details" \ "编辑项目详情" ##ID:000108## mcset $l "Save and close" \ "保存关闭" ##ID:000109## mcset $l "Save the current project and close it" \ "保存并关闭当前项目" ##ID:000110## mcset $l "Close without saving" \ "不保存关闭" ##ID:000111## mcset $l "Close current project" \ "关闭当前项目" # Main menu / Simulator ##ID:000112## mcset $l "Simulator" \ "模拟器" ##ID:000113## mcset $l "Start / Shutdown" \ "启动 / 关闭" ##ID:000114## mcset $l "Start simulator engine" \ "启动模拟器引擎" ##ID:000115## mcset $l "Debug this file only" \ "只调试这个文件" ##ID:000116## mcset $l "Start simulator engine and load current file only" \ "启动模拟器引擎和只加载当前文件" ##ID:000117## mcset $l "Step back" \ "后退" ##ID:000118## mcset $l "Step program back by 1 instruction" \ "后退一条程序指令" ##ID:000119## mcset $l "Step" \ "单步" ##ID:000120## mcset $l "Step program by 1 instruction" \ "步测一条程序指令" ##ID:000121## mcset $l "Step over" \ "跟踪" ##ID:000122## mcset $l "Step program by 1 line of code" \ "步测每一行代码(进入函数)" ##ID:000123## mcset $l "Animate" \ "模式动画" ##ID:000124## mcset $l "Run program and show results after each change" \ "运行程序,并显示在每次更改后的结果" ##ID:000125## mcset $l "Run" \ "运行" ##ID:000126## mcset $l "Run program and show results periodically in some interval" \ "运行程序,并显示结果在指定的期间" ##ID:000127## mcset $l "Hiberante program" \ "冬眠程序" ##ID:000128## mcset $l "Save current state of simulator engine to a file for future resumption" \ "保存模拟器引擎的当前状态,以备将来恢复文件" ##ID:000129## mcset $l "Resume hibernated program" \ "恢复已冬眠的程序" ##ID:000130## mcset $l "Interrupt monitor" \ "中断监控" ##ID:000131## mcset $l "Dialog in which you can control MCU interrupts" \ "您可以在对话中控制单片机的中断" ##ID:000132## mcset $l "Stopwatch" \ "秒表" ##ID:000133## mcset $l "Configurable stopwatch timer which can stop simulation on various conditions" \ "配置的秒表定时器,可用模拟各种条件下停止" ##ID:000134## mcset $l "Find cursor" \ "查找指示器" ##ID:000135## mcset $l "Find simulator cursor in the editor" \ "在编辑器中找到模拟指示器" ##ID:000136## mcset $l "Translate line number to address in program memory and set PC to that address" \ "把寄存器地址翻译成PC行号地址" ##ID:000137## mcset $l "Clear highlight" \ "清除高亮" ##ID:000138## mcset $l "Clear highlight for changed values" \ "清除变动值的高亮" ##ID:000139## mcset $l "Allow breakpoints" \ "允许断点" ##ID:000140## mcset $l "Enable simulator breakpoints (marks, where to stop program in animate or run mode)" \ "启用模拟器断点(标记在哪里停止运行模式动画或程序)" # Main menu / Virtual MCU ##ID:000141## mcset $l "Virtual MCU" \ "虚拟单片机" ##ID:000142## mcset $l "Show SFR map" \ "显示SFR映射" ##ID:000143## mcset $l "Show map of special function registers area" \ "显示特殊功能寄存器区的地图" ##ID:000144## mcset $l "Show bit area" \ "显示位区域" ##ID:000145## mcset $l "Show bit addressable area" \ "显示位寻址区" ##ID:000146## mcset $l "Show stack" \ "显示堆栈" ##ID:000147## mcset $l "Invoke MCU stack monitor" \ "调用单片机堆栈监视器" ##ID:000148## mcset $l "Show Code memory" \ "显示代码存储器" ##ID:000149## mcset $l "Invoke hex editor with program code" \ "调用程序代码的十六进制编辑器" ##ID:000150## mcset $l "Show XDATA memory" \ "显示XDATA存储器" ##ID:000151## mcset $l "Invoke hex editor with external data memory" \ "调用与外部数据存储器的十六进制编辑器" ##ID:000152## mcset $l "Show ERAM" \ "显示ERAM" ##ID:000153## mcset $l "Invoke hex editor with expanded RAM" \ "调用扩展RAM的十六进制编辑器" ##ID:000154## mcset $l "Show Data EEPROM" \ "显示EEPROM数据" ##ID:000155## mcset $l "Invoke hex editor with data EEPROM" \ "调用EEPROM数据的十六进制编辑器" ##ID:000156## mcset $l "Show EEPROM write buffer" \ "显示EEPROM写入缓冲区" ##ID:000157## mcset $l "Invoke hex editor editor with data EEPROM write buffer" \ "调用编辑器与EEPROM数据写入缓冲区的十六进制编辑器" ##ID:000158## mcset $l "Reset" \ "复位" ##ID:000159## mcset $l "Only SFR" \ "只复位SFR" ##ID:000160## mcset $l "Reset Special Function Registers only" \ "只复位特殊功能寄存器" ##ID:000161## mcset $l "All zeros" \ "全部为0" ##ID:000162## mcset $l "Reset all internal registers to zeroes" \ "复位所有内部寄存器为零" ##ID:000163## mcset $l "All ones" \ "所有" ##ID:000164## mcset $l "Reset all internal registers to ones (0xFF)" \ "复位所有的内部寄存器(0xFF)" ##ID:000165## mcset $l "Random values" \ "随机值" ##ID:000166## mcset $l "Reset all internal registers to random values" \ "复位所有内部寄存器的随机值" ##ID:000167## mcset $l "Virtual UART terminal" \ "虚拟 UART 终端" ; ##ID:000168## mcset $l "Simulated UART terminal connected to the MCU simulator" \ "模拟UART终端连接到MCU的模拟器" # Main menu / Virtual HW ##ID:000169## mcset $l "Virtual HW" \ "虚拟硬件" ##ID:000170## mcset $l "LED Panel" \ "LED面板" ##ID:000171## mcset $l "LED Display" \ "数码管" ##ID:000172## mcset $l "LED Matrix" \ "矩阵LED" ##ID:000173## mcset $l "LCD display (HD44780)" \ "LCD 显示屏 (HD44780)" ##ID:000174## mcset $l "Multiplexed LED Display" \ "复用数码管" ##ID:000175## mcset $l "LCD display controlled by HD44780" \ "LCD HD44780 显示屏控制" ##ID:000176## mcset $l "DS1620 thermometer" \ "DS1620 温度计" ##ID:000177## mcset $l "DS1620 temperature sensor" \ "DS1620 温度计传感器" ##ID:000178## mcset $l "Simple Keypad" \ "简单按键" ##ID:000179## mcset $l "Matrix Keypad" \ "矩阵按键" ##ID:000180## mcset $l "Load VHW connections from a file" \ "从文件中载入VHW连接" ##ID:000181## mcset $l "Load" \ "加载" ##ID:000182## mcset $l "Import VHW connections from a file" \ "从文件加载VHW连接" ##ID:000183## mcset $l "Load recent" \ "最近的加载" ##ID:000184## mcset $l "Save current VHW connections to a file" \ "保存当前VHW连接到一个文件" ##ID:000185## mcset $l "Save current VHW connections under a different name" \ "根据不同的名称保存当前虚拟硬件连接" ##ID:000186## mcset $l "Remove all" \ "全部删除" ##ID:000187## mcset $l "Remove all VHW" \ "删除全部虚拟硬件" # Main menu / Tools ##ID:000188## mcset $l "Tools" \ "工具" ##ID:000189## mcset $l "Compile" \ "编译" ##ID:000190## mcset $l "Compile the source code" \ "编译的源代码" ##ID:000191## mcset $l "Compile this file" \ "编译当前文件" ##ID:000192## mcset $l "Compile current file only" \ "仅编译当前文件" ##ID:000193## mcset $l "Disassemble" \ "反汇编" ##ID:000194## mcset $l "Disassemble object code and open new editor with the result" \ "反汇编目标代码并在新的编辑器窗口打开反汇编结果" ##ID:000195## mcset $l "Encoding" \ "编码" ##ID:000196## mcset $l "End of line" \ "尾行" ##ID:000197## mcset $l "Auto indent" \ "自动缩进" ##ID:000198## mcset $l "Reformat source code (Indention level etc.)" \ "格式化源代码(缩进水平等)" ##ID:000199## mcset $l "Change letter case" \ "变更字母大小写" ##ID:000200## mcset $l "Change letter case in source code (with options)" \ "变动源代码的字母大小写(选项)" ##ID:000201## mcset $l "Export as XHTML" \ "导出为XHTML" ##ID:000202## mcset $l "Export highlighted code as XHTML file" \ "导出为XHTML代码文件" ##ID:000203## mcset $l "Export as LaTeX" \ "导出为LaTeX" ##ID:000204## mcset $l "Export highlighted code as LaTeX source, using package color" \ "导出着色的LaTeX源代码,采用color宏包" ##ID:000205## mcset $l "Document current function" \ "当前函数的文件" ##ID:000206## mcset $l "Create doxygen documentation for function on current line" \ "对当前行函数创建doxygen的文档" ##ID:000207## mcset $l "Run doxywizard" \ "运行doxywizard" ##ID:000208## mcset $l "Run doxygen front-end" \ "运行doxygen的前端" ##ID:000209## mcset $l "Clear C API documentation" \ "清除C语言API的文档" ##ID:000210## mcset $l "Remove C API documentation created by doxygen" \ "使用doxygen删除C语言API的文档" ##ID:000211## mcset $l "Build C API documentation" \ "构建C语言的API文档" ##ID:000212## mcset $l "Run doxygen to create C API documentation" \ "运行doxygen创建C语言的API文档" ##ID:000213## mcset $l "Clean up project folder" \ "清理项目文件夹" ##ID:000214## mcset $l "Invoke dialog to remove needless files the project directory" \ "删除不必要的文件对话框项目目录" ##ID:000215## mcset $l "Custom command 0" \ "自定义命令0" ##ID:000216## mcset $l "Custom command 1" \ "自定义命令1" ##ID:000217## mcset $l "Custom command 2" \ "自定义命令2" # Main menu / Utilities / Encoding ##ID:000218## mcset $l "Unicode" \ "Unicode" ;# <-- NOT TRANSLATED YET ##ID:000219## mcset $l "Western European" \ "Western European" ;# <-- NOT TRANSLATED YET ##ID:000220## mcset $l "Central European" \ "Central European" ;# <-- NOT TRANSLATED YET ##ID:000221## mcset $l "Baltic" \ "Baltic" ;# <-- NOT TRANSLATED YET ##ID:000222## mcset $l "Cyrillic" \ "Cyrillic" ;# <-- NOT TRANSLATED YET ##ID:000223## mcset $l "Arabic" \ "Arabic" ;# <-- NOT TRANSLATED YET ##ID:000224## mcset $l "Greek" \ "Greek" ;# <-- NOT TRANSLATED YET ##ID:000225## mcset $l "Hebrew" \ "Hebrew" ;# <-- NOT TRANSLATED YET ##ID:000226## mcset $l "Turkish" \ "Turkish" ;# <-- NOT TRANSLATED YET ##ID:000227## mcset $l "Northern European" \ "Northern European" ;# <-- NOT TRANSLATED YET ##ID:000228## mcset $l "South-Eastern Europe" \ "South-Eastern Europe" ;# <-- NOT TRANSLATED YET ##ID:000229## mcset $l "Vietnamese" \ "Vietnamese" ;# <-- NOT TRANSLATED YET # Main menu / Utilities ##ID:000230## mcset $l "Utilities" \ "实用工具集" ##ID:000231## mcset $l "Hex -> Bin" \ "Hex -> Bin" ;# <-- NOT TRANSLATED YET ##ID:000232## mcset $l "Bin -> Hex" \ "Bin -> Hex" ;# <-- NOT TRANSLATED YET ##ID:000233## mcset $l "Sim -> Hex" \ "Sim -> Hex" ;# <-- NOT TRANSLATED YET ##ID:000234## mcset $l "Sim -> Bin" \ "Sim -> Bin" ;# <-- NOT TRANSLATED YET ##ID:000235## mcset $l "Convert Intel HEX 8 file to binary file" \ "八进制文件转换为二进制文件" ##ID:000236## mcset $l "Convert binary file to Intel HEX 8 file" \ "二进制文件转换为八进制文件" ##ID:000237## mcset $l "Convert simulator file to Intel HEX 8 file" \ "模拟器文件转换为八进制文件" ##ID:000238## mcset $l "Convert simulator file to binary file" \ "模拟器文件转换为二进制文件" ##ID:000239## mcset $l "Normalize Intel 8 hex file" \ "Normalize Intel 8 hex file" ;# <-- NOT TRANSLATED YET ##ID:000240## mcset $l "Reformat the given IHEX8" \ "Reformat the given IHEX8" ;# <-- NOT TRANSLATED YET ##ID:000241## mcset $l "Hex Editor" \ "HEX编辑器" ##ID:000242## mcset $l "Invoke project independent hexadecimal editor with capacity of 64KB" \ "Invoke project independent hexadecimal editor with capacity of 64KB" ;# <-- NOT TRANSLATED YET ##ID:000243## mcset $l "Symbol Table" \ "符号表" ##ID:000244## mcset $l "Assembly language symbol table viewer" \ "汇编语言的符号表查看器" ##ID:000245## mcset $l "8-Segment Editor" \ "8段LED编辑器" ##ID:000246## mcset $l "8-Segment LED Display Editor" \ "8段LED编辑器" ##ID:000247## mcset $l "ASCII Chart" \ "ASCII表" ##ID:000248## mcset $l "8051 Instruction Table" \ "8051指令表" ; ##ID:000249## mcset $l "Interactive table of 8051 instructions" \ "交互式8051指令表" ##ID:000250## mcset $l "Scribble Notepad" \ "便利贴" ##ID:000251## mcset $l "Base Converter" \ "进制转换" ##ID:000252## mcset $l "Special Calculator" \ "特殊计算器" ##ID:000253## mcset $l "UART/RS232 Debugger" \ "UART/RS232调试器" # Main menu / Configure ##ID:000254## mcset $l "Configure" \ "配置" ##ID:000255## mcset $l "Configure Editor" \ "配置编辑器" ##ID:000256## mcset $l "Editor configuration (colors, fonts, highlighting, etc.)" \ "编辑器配置(颜色,字体,高亮,等等)" ##ID:000257## mcset $l "Configure Compiler" \ "配置编译器" ##ID:000258## mcset $l "Various compilation options" \ "不同的编译选项" ##ID:000259## mcset $l "Configure Simulator" \ "配置模拟器" ##ID:000260## mcset $l "Opens simulator configuration dialog" \ "打开模拟器配置对话框" ##ID:000261## mcset $l "Configure Right Panel" \ "配置右侧面板" ##ID:000262## mcset $l "Right panel configuration (instruction details colors)" \ "右面板配置(指令颜色)" ##ID:000263## mcset $l "Configure Main Toolbar" \ "配置主工具栏" ##ID:000264## mcset $l "Adjust content of the main toolbar (under main menu)" \ "调整的主要工具栏的内容(主菜单)" ##ID:000265## mcset $l "Edit custom commands" \ "编辑自定义命令" ##ID:000266## mcset $l "Set or modify user defined commands" \ "设置或修改用户定义的命令" ##ID:000267## mcset $l "Configure shortcuts" \ "配置快捷键" ##ID:000268## mcset $l "Set or modify key shortcuts" \ "设置或修改快捷键" ##ID:000269## mcset $l "Configure terminal emulator" \ "配置终端仿真器" ##ID:000270## mcset $l "Configure embedded terminal emulator -- RXVT-UNICODE" \ "配置嵌入式终端模拟器 -- RXVT-UNICODE" ##ID:000271## mcset $l "Configure MCU 8051 IDE" \ "配置8051单片机IDE" ##ID:000272## mcset $l "Invoke global configuration dialog" \ "调用全局配置对话框" # Main menu / Help ##ID:000273## mcset $l "Help" \ "帮助" ##ID:000274## mcset $l "About" \ "关于" ##ID:000275## mcset $l "About MCU 8051 IDE" \ "关于 MCU 8051 IDE" ##ID:000276## mcset $l "Display the documentation for MCU 8051 IDE" \ "打开MCU 8051 IDE文档" ##ID:000277## mcset $l "Welcome Dialog" \ "欢迎界面" ##ID:000278## mcset $l "Invoke dialog which you have seen on the first start" \ "调用您在第一次启动程序时看到的对话框" ##ID:000279## mcset $l "Tip of the Day" \ "每日提示" ##ID:000280## mcset $l "Some tips about how to use this program more efficiently" \ "关于如何更有效地使用这个程序的一些小技巧" ##ID:000281## mcset $l "Project web page" \ "项目主页" ##ID:000282## mcset $l "Report a bug" \ "报告bug" ##ID:000283## mcset $l "ASEM-51 manual" \ "ASEM-51手册" ##ID:000284## mcset $l "SDCC manual" \ "SDCC手册" ##ID:000285## mcset $l "Handbook" \ "手册" # Toolbar ##ID:000286## mcset $l "Hide toolbar" \ "隐藏工具栏" ##ID:000287## mcset $l "Show toolbar" \ "显示工具栏" ##ID:000288## mcset $l "Configure Toolbar" \ "配置工具栏" ##ID:000289## mcset $l "Configure main toolbar" \ "配置主工具栏" ##ID:000290## mcset $l "Hide main toolbar" \ "隐藏主工具栏" ##ID:000291## mcset $l "Configure custom commands" \ "配置自定义命令" ##ID:000292## mcset $l "Invoke custom commands configuration dialog" \ "调用自定义命令配置对话框" set ::TOOLBAR_TRANSLATIONS { ##ID:000293## mcset $l "Open file" \ "打开文件" ##ID:000294## mcset $l "Save all opened files (in this project)" \ "保存所有打开的文件(在本项目)" ##ID:000295## mcset $l "Exit" \ "退出" ##ID:000296## mcset $l "Exit application" \ "退出应用程序" ##ID:000297## mcset $l "Reload the current file" \ "刷新当前文件" ##ID:000298## mcset $l "Open project" \ "打开项目" ##ID:000299## mcset $l "Save project" \ "保存项目" ##ID:000300## mcset $l "Save and close project" \ "保存并关闭项目" ##ID:000301## mcset $l "Close project without saving" \ "不保存关闭" ##ID:000302## mcset $l "Show CODE memory" \ "显示代码存储器" ##ID:000303## mcset $l "Show data EEPROM" \ "显示EEPROM数据" ##ID:000304## mcset $l "Start / Shutdown simulator" \ "启动/关机模拟器" ##ID:000305## mcset $l "Load debug file into simulator engine" \ "加载调试文件到模拟器引擎" ##ID:000306## mcset $l "Perform HW reset" \ "执行硬件复位" ##ID:000307## mcset $l "Step program" \ "单步" ##ID:000308## mcset $l "Step by 1 instruction" \ "步测一条程序指令" ##ID:000309## mcset $l "Step by 1 line of code" \ "步测每一行代码(进入函数)" ##ID:000310## mcset $l "Animate program" \ "动画程序" ##ID:000311## mcset $l "Run program and show results after each instruction" \ "运行程序,并显示在每次更改后的结果" ##ID:000312## mcset $l "Run program" \ "运行程序" ##ID:000313## mcset $l "Run program in simulator" \ "运行程序,并显示结果在指定的期间" ##ID:000314## mcset $l "Hibernate program" \ "冬眠程序" ##ID:000315## mcset $l "Hibernate running program to a file" \ "冬眠正在运行的程序到一个文件" ##ID:000316## mcset $l "Resume program" \ "恢复已冬眠程序" ##ID:000317## mcset $l "Configurable stopwatch timer which stop simulation on various conditions" \ "配置的秒表定时器,可用模拟各种条件下停止" ##ID:000318## mcset $l "Compile source code" \ "编译源代码" ##ID:000319## mcset $l "Symbol table" \ "符号表" ##ID:000320## mcset $l "8-segment editor" \ "8段LED编辑器" ##ID:000321## mcset $l "8-segment LED display editor" \ "8段LED编辑器" ##ID:000322## mcset $l "ASCII chart" \ "ASCII表" ##ID:000323## mcset $l "Reformat source code (Indention level ...)" \ "重新格式化源代码(缩进)" ##ID:000324## mcset $l "Switch to the next editor" \ "切换到下一个编辑器" ##ID:000325## mcset $l "Switch to the previous editor" \ "切换到上一个编辑器" ##ID:000326## mcset $l "Tip of the day" \ "每日提示" ##ID:000327## mcset $l "Scribble notepad" \ "便利贴" ##ID:000328## mcset $l "LED panel" \ "LED面板" ##ID:000329## mcset $l "LED display" \ "数码管" ##ID:000330## mcset $l "LED matrix" \ "矩阵LED" ##ID:000331## mcset $l "Multiplexed LED display" \ "复用数码管" ##ID:000332## mcset $l "Simple keypad" \ "简单按键" ##ID:000333## mcset $l "Matrix keypad" \ "矩阵按键" ##ID:000334## mcset $l "VHW Open" \ "打开VHW" ##ID:000335## mcset $l "VHW Load" \ "加载VHW" ##ID:000336## mcset $l "VHW Save" \ "保存VHW" ##ID:000337## mcset $l "VHW Save as" \ "VHW另存为" ##ID:000338## mcset $l "VHW Remove all" \ "VHW全部删除" ##ID:000339## mcset $l "Special calculator" \ "特殊计算器" } namespace eval toolbar { eval ${::TOOLBAR_TRANSLATIONS} } } # asciichart.tcl # ============================================================================== namespace eval AsciiChart { ##ID:000340## mcset $l "ASCII chart" \ "ASCII码表" ##ID:000341## mcset $l "Exit" \ "退出" ##ID:000342## mcset $l "Character: " \ "字符: " ##ID:000343## mcset $l "Hex address" \ "Hex地址" ##ID:000344## mcset $l "Dec address" \ "Dec地址" ##ID:000345## mcset $l "Oct address" \ "Oct地址" ##ID:000346## mcset $l "Bin address" \ "Bin地址" ##ID:000347## mcset $l "Caret notation" \ "插入符号表示法" ##ID:000348## mcset $l "C Escape Code" \ "C转义代码" ##ID:000349## mcset $l "%s - Copy contents of entrybox to clipboard" \ "%s - 对entrybox的内容复制到剪贴板" ##ID:000350## mcset $l "Copy to clipboard" \ "复制到剪贴板" } # baseconverter.tcl # ============================================================================== namespace eval BaseConverter { ##ID:000351## mcset $l "Converter" \ "转换器" ##ID:000352## mcset $l "Enlarge" \ "放大" ##ID:000353## mcset $l "More" \ "更多" ##ID:000354## mcset $l "Shrink" \ "缩小" ##ID:000355## mcset $l "Less" \ "更少" ##ID:000356## mcset $l "Bits" \ "Bits" ;# <-- NOT TRANSLATED YET ##ID:000357## mcset $l "BCD" \ "BCD" ;# <-- NOT TRANSLATED YET ##ID:000358## mcset $l "ASCII" \ "ASCII" ;# <-- NOT TRANSLATED YET ##ID:000359## mcset $l "HEX" \ "HEX" ;# <-- NOT TRANSLATED YET ##ID:000360## mcset $l "DEC" \ "DEC" ;# <-- NOT TRANSLATED YET ##ID:000361## mcset $l "BIN" \ "BIN" ;# <-- NOT TRANSLATED YET ##ID:000362## mcset $l "OCT" \ "OCT" ;# <-- NOT TRANSLATED YET } # bitmap.tcl # ============================================================================== namespace eval BitMap { ##ID:000363## mcset $l "Log. 0" \ "Log. 0" ;# <-- NOT TRANSLATED YET ##ID:000364## mcset $l "Log. 1" \ "Log. 1" ;# <-- NOT TRANSLATED YET ##ID:000365## mcset $l "Bit addr." \ "Bit addr." ;# <-- NOT TRANSLATED YET ##ID:000366## mcset $l "Reg. addr." \ "Reg. addr." ;# <-- NOT TRANSLATED YET ##ID:000367## mcset $l "Register: " \ "Register: " ;# <-- NOT TRANSLATED YET ##ID:000368## mcset $l " Bit address: " \ " Bit address: " ;# <-- NOT TRANSLATED YET ##ID:000369## mcset $l "Bit addressable area - %s - %s - %s" \ "Bit addressable area - %s - %s - %s" ;# <-- NOT TRANSLATED YET } # bottomnotebook.tcl # ============================================================================== namespace eval BottomNoteBook { ##ID:000370## mcset $l "Simulator" \ "模拟器" ##ID:000371## mcset $l "C variables" \ "C变量" ##ID:000372## mcset $l "IO Ports" \ "IO端口" ##ID:000373## mcset $l "Messages" \ "消息" ##ID:000374## mcset $l "Calculator" \ "计算器" ##ID:000375## mcset $l "Notes" \ "注释" ##ID:000376## mcset $l "Terminal" \ "终端" ##ID:000377## mcset $l "Find in files" \ "在文件中查找" ##ID:000378## mcset $l "Show" \ "显示" ##ID:000379## mcset $l "Hide" \ "隐藏" ##ID:000380## mcset $l "Simulator panel %s" \ "模拟器面板 %s" ##ID:000381## mcset $l "Variables from C source code %s" \ "从C源代码中的变量 %s" ##ID:000382## mcset $l "Graph showing state of MCU ports %s" \ "显示MCU端口状态图表 %s" ##ID:000383## mcset $l "Compiler messages %s" \ "编译器消息 %s" ##ID:000384## mcset $l "Personal to do list & notepad %s" \ "私人待办事&记事本 %s" ##ID:000385## mcset $l "Scientific calculator %s" \ "科学计算器 %s" ##ID:000386## mcset $l "Terminal emulator %s" \ "终端仿真器 %s" ##ID:000387## mcset $l "Find in files %s" \ "在文件中查找 %s" ##ID:000388## mcset $l "Hide this panel" \ "隐藏这个面板" ##ID:000389## mcset $l "Show this panel" \ "显示这个面板" ##ID:000390## mcset $l "Simulator panel" \ "模拟器" ##ID:000391## mcset $l "List of variables defined in C program" \ "C程序里定义的变量列表" ##ID:000392## mcset $l "Graph showing voltage levels" \ "图表显示电压等级" ##ID:000393## mcset $l "Compiler messages" \ "编译器消息" ##ID:000394## mcset $l "Editable notepad" \ "可编辑记事本" ##ID:000395## mcset $l "Scientific calculator" \ "科学计算器" ##ID:000396## mcset $l "Linux terminal emulator" \ "Linux终端模拟器" ##ID:000397## mcset $l "Search string in files" \ "在文件中搜索" ##ID:000398## mcset $l "Hide the panel" \ "隐藏面板" ##ID:000399## mcset $l "Show the panel" \ "显示面板" } # calculator.tcl # ============================================================================== namespace eval Calculator { ##ID:000400## mcset $l "Save" \ "保存" ##ID:000401## mcset $l "Load" \ "加载" ##ID:000402## mcset $l "Calculator: M%s saved" \ "计算器: M%s 保存" ##ID:000403## mcset $l "Calculator: Unable to evaluate, missing argument" \ "计算器: 无法评估,缺少参数" ##ID:000404## mcset $l "Calculator: Unable to evaluate, missing operator" \ "计算器: 无法评估,缺少操作符" ##ID:000405## mcset $l "Calculator: WARNING result is +/- infinity => operation terminated !" \ "计算器: 警告的结果是+/-无穷=>操作终止!" ##ID:000406## mcset $l "Calculator: This value is too high to invert (max. 0xFFFFFFFF)" \ "计算器: 此值倒置太高(max. 0xFFFFFFFF)" ##ID:000407## mcset $l "Calculator: ERROR (result value is out of allowed range)" \ "计算器: 错误(结果值超出允许的范围内)" ##ID:000408## mcset $l "Calculator: Unable to evaluate, result value is too high" \ "计算器:无法评估,结果值过高" ##ID:000409## mcset $l "Calculator: UNDO: previous state was: %s %s %s" \ "计算器: 撤消:以前的状态: %s %s %s" ##ID:000410## mcset $l "Calculator: REDO: previous state was: %s %s %s" \ "计算器: 重做: 以前的状态: %s %s %s" ##ID:000411## mcset $l "Calculator: Value is too high to convert, value deleted !" \ "计算器: 值过高转换,删除值!" ##ID:000412## mcset $l "Calculator: ERROR, result is too high (cannot be displayed)" \ "计算器: 错误,结果是太高(无法显示)" ##ID:000413## mcset $l "Calculator: ERROR, value is too high" \ "计算器: 错误,值过高" ##ID:000414## mcset $l "Buffer display" \ "显示缓冲区" ##ID:000415## mcset $l "Calculator buffer" \ "计算器缓冲区" ##ID:000416## mcset $l "Selected operation" \ "所选操作" ##ID:000417## mcset $l "Main display" \ "主萤幕" ##ID:000418## mcset $l "Numeric base" \ "Numeric base" ;# <-- NOT TRANSLATED YET ##ID:000419## mcset $l "Angle unit" \ "角度单位" ##ID:000420## mcset $l "Clear both displays" \ "清除两个显示器" ##ID:000421## mcset $l "Clear main display" \ "清除主显示器" ##ID:000422## mcset $l "Negate value in main display" \ "在主显示屏显示否定值" ##ID:000423## mcset $l "Memory bank %s" \ "记忆库 %s" ##ID:000424## mcset $l "Save content of main display to this memory bank %s" \ "主要展示内容保存这个记忆库 %s" ##ID:000425## mcset $l "Load content of this bank into main display" \ "主要展示加载内容的记忆库" ##ID:000426## mcset $l "Load content of memory bank %s into calculator main display" \ "加载内容的记忆库 %s 到计算器主显示屏" ##ID:000427## mcset $l "Timers preset" \ "预设定时器" ##ID:000428## mcset $l "Invalid numerical base: '%s'" \ "无效的数值基地: '%s'" ##ID:000429## mcset $l "Invalid angle unit: '%s'" \ "无效的角度单位: '%s'" ##ID:000430## mcset $l "Calculator - timers preset: you are trying to insert an invalid value" \ "计算器-定时器预设:您尝试插入一个无效值" ##ID:000431## mcset $l "Frequency \[kHz\]" \ "频率 \[kHz\]" ##ID:000432## mcset $l "Mode" \ "模式" ##ID:000433## mcset $l "Time \[us\]" \ "时间 \[us\]" ##ID:000434## mcset $l "DEC" \ "DEC" ;# <-- NOT TRANSLATED YET ##ID:000435## mcset $l "HEX" \ "HEX" ;# <-- NOT TRANSLATED YET ##ID:000436## mcset $l "OCT" \ "OCT" ;# <-- NOT TRANSLATED YET ##ID:000437## mcset $l "Repeats" \ "重复数" ; ##ID:000438## mcset $l "Correction" \ "Correction" ;# <-- NOT TRANSLATED YET ##ID:000439## mcset $l "Bit-wise AND" \ "Bit-wise AND" ;# <-- NOT TRANSLATED YET ##ID:000440## mcset $l "Bit-wise AND. Valid for integer operands only." \ "Bit-wise AND.唯一有效的操作数为整数." ##ID:000441## mcset $l "Sine" \ "正弦" ##ID:000442## mcset $l "Cosine" \ "余弦" ##ID:000443## mcset $l "Tangent" \ "正切" ##ID:000444## mcset $l "Bit-wise OR" \ "Bit-wise OR" ;# <-- NOT TRANSLATED YET ##ID:000445## mcset $l "Bit-wise OR. Valid for integer operands only." \ "Bit-wise OR. 唯一有效的操作数为整数." ##ID:000446## mcset $l "Arc sine" \ "Arc sine" ;# <-- NOT TRANSLATED YET ##ID:000447## mcset $l "Arc sine. Argument should be in the range \[-1,1\]." \ "Arc sine. 参数应该是在范围 \[-1,1\]." ##ID:000448## mcset $l "Arc cosine" \ "Arc cosine" ;# <-- NOT TRANSLATED YET ##ID:000449## mcset $l "Arc cosine. Argument should be in the range \[-1,1\]." \ "Arc cosine. 参数应该是在范围 \[-1,1\]." ##ID:000450## mcset $l "Arc tangent" \ "Arc tangent" ;# <-- NOT TRANSLATED YET ##ID:000451## mcset $l "Bit-wise NOT" \ "Bit-wise NOT" ;# <-- NOT TRANSLATED YET ##ID:000452## mcset $l "Bit-wise NOT. Valid for integer operands only." \ "Bit-wise NOT. 唯一有效的操作数为整数." ##ID:000453## mcset $l "Exponential of argument (e**arg)" \ "Exponential of argument (e**arg)" ;# <-- NOT TRANSLATED YET ##ID:000454## mcset $l "Square root" \ "Square root" ;# <-- NOT TRANSLATED YET ##ID:000455## mcset $l "Square root. Argument must be non-negative." \ "Square root. 参数必须为非负值." ##ID:000456## mcset $l "Power" \ "Power" ;# <-- NOT TRANSLATED YET ##ID:000457## mcset $l "Computes the value of x raised to the power y. If x is negative, y must be an integer value." \ "Computes the value of x raised to the power y. If x is negative, y must be an integer value." ;# <-- NOT TRANSLATED YET ##ID:000458## mcset $l "Bit-wise exclusive OR" \ "Bit-wise exclusive OR" ;# <-- NOT TRANSLATED YET ##ID:000459## mcset $l "Bit-wise exclusive OR. Valid for integer operands only." \ "Bit-wise exclusive OR. 唯一有效的操作数为整数." ##ID:000460## mcset $l "Base 10 logarithm" \ "Base 10 logarithm" ;# <-- NOT TRANSLATED YET ##ID:000461## mcset $l "Returns the base 10 logarithm of argument. Argument must be a positive value." \ "Returns the base 10 logarithm of argument. Argument must be a positive value." ;# <-- NOT TRANSLATED YET ##ID:000462## mcset $l "Natural logarithm" \ "取自然对数" ##ID:000463## mcset $l "Returns the natural logarithm of argument. Argument must be a positive value." \ "Returns the natural logarithm of argument. Argument must be a positive value." ;# <-- NOT TRANSLATED YET ##ID:000464## mcset $l "Constant Pi" \ "Pi常数" ##ID:000465## mcset $l "Right shift" \ "右移位" ##ID:000466## mcset $l "Right shift. Valid for integer operands only. A right shift always propagates the sign bit." \ "Right shift. Valid for integer operands only. A right shift always propagates the sign bit." ;# <-- NOT TRANSLATED YET ##ID:000467## mcset $l "Modulo" \ "取模" ##ID:000468## mcset $l "Computes remainder of integer division" \ "计算整数除法的余数" ##ID:000469## mcset $l "Undo last operation" \ "撤消最后一次操作" ##ID:000470## mcset $l "Undo last operation. Not all operations are supported." \ "撤消最后一次操作. 并非所有操作都支持." ##ID:000471## mcset $l "Take back last undo operation" \ "重做上次撤销的操作" ##ID:000472## mcset $l "Take back last undo operation. Not all operations are supported." \ "重做上次撤销的操作.并非所有操作都支持." } # innerwindow.tcl # ============================================================================== namespace eval InnerWindow { ##ID:000473## mcset $l "Shade/Unshade" \ "色彩/取消色彩" ##ID:000474## mcset $l "Close" \ "关闭" ##ID:000475## mcset $l "Shade" \ "阴影" } # configdialogues.tcl # ============================================================================== namespace eval ::configDialogues::editor { ##ID:000476## mcset $l "Editor configuration - %s" \ "编辑器配置 - %s" ##ID:000477## mcset $l "Editor configuration" \ "编辑器配置" ##ID:000478## mcset $l "Editor" \ "编辑器" ##ID:000479## mcset $l "Editor selection" \ "编辑器选择" ##ID:000480## mcset $l "General" \ "常规" ##ID:000481## mcset $l "General configuration" \ "常规配置" ##ID:000482## mcset $l "Colors" \ "颜色" ##ID:000483## mcset $l "Various colors in editor" \ "多种颜色编辑器" ##ID:000484## mcset $l "Fonts" \ "字体" ##ID:000485## mcset $l "Fonts used by editor" \ "编辑器中使用的字体" ##ID:000486## mcset $l "Syntax highlight" \ "语法高亮" ##ID:000487## mcset $l "Source code highlighting" \ "源代码高亮" ##ID:000488## mcset $l "Apply" \ "应用" ##ID:000489## mcset $l "Ok" \ "确认" ##ID:000490## mcset $l "Cancel" \ "取消" ##ID:000491## mcset $l "Preferred editor:" \ "常用编辑器:" ##ID:000492## mcset $l "Native editor" \ "本机编辑器" ##ID:000493## mcset $l "(This change will take effect upon next start.)" \ "(此更改将在下次启动的效果.)" ##ID:000494## mcset $l "Editing" \ "正在编辑" ##ID:000495## mcset $l "File opening, saving, etc." \ "文件正在打开,保存等." ##ID:000496## mcset $l "Command line" \ "命令行" ##ID:000497## mcset $l "Auto brackets" \ "自动括号" ##ID:000498## mcset $l "When you type a left bracket, editor\nwill automatically insert right bracket" \ "当您输入一个左括号,编辑器\n会自动插入右括号" ##ID:000499## mcset $l "Indentation mode" \ "缩进模式" ##ID:000500## mcset $l "none" \ "无" ##ID:000501## mcset $l "normal" \ "正常" ##ID:000502## mcset $l "What to do when you press enter\n\tnone\t- start on the beginning of the next line\n\tnormal\t- keep indention of the previous line" \ "What to do when you press enter\n\tnone\t- start on the beginning of the next line\n\tnormal\t- keep indention of the previous line" ;# <-- NOT TRANSLATED YET ##ID:004467## mcset $l "Tab width" \ "Tab符宽度" ##ID:004468## mcset $l "Maximum width of the tab character, measured in number of spaces" \ "最大的TAB宽度,用空格数表示" ##ID:000503## mcset $l "Insert spaces instead of tabs" \ "插入空格以替代TAB符" ##ID:000504## mcset $l "Use spaces instead of tabs" \ "使用空格代替制表符" ##ID:000505## mcset $l "Number of spaces" \ "空格的数量" ##ID:000506## mcset $l "Number of spaces to use instead of tabs" \ "空格数,而不是使用制表符" ##ID:000507## mcset $l "Enable autocompletion" \ "启用自动完成功能" ##ID:000508## mcset $l "Enable popup-based autocompletion" \ "启用自动完成弹出" ##ID:000509## mcset $l "Highlight trailing space" \ "突出尾随空格" ##ID:000510## mcset $l "Show tab bar" \ "显示标签栏" ##ID:000511## mcset $l "Default encoding" \ "默认编码方式" ##ID:000512## mcset $l "When you open file with unknown encoding\nthis encoding will be used" \ "当您打开未知编码\n该文件将用于编码" ##ID:000513## mcset $l "Default EOL" \ "默认EOL" ##ID:000514## mcset $l "When you open file with unknown\nEOL (End Of Line) this EOL will be used" \ "当您打开未知\n EOL(行结束)文件将被用于这个停产" ##ID:000515## mcset $l "Autosave interval \[minutes\]" \ "自动保存时间间隔 \[分钟\]" ##ID:000516## mcset $l "Autosave interval in minutes (0 means disabled)" \ "自动保存时间间隔以分钟为单位 (0 means disabled)" ##ID:000517## mcset $l "Text area background" \ "文本区域的背景" ##ID:000518## mcset $l "Normal text" \ "普通文本" ##ID:000519## mcset $l "Selected text" \ "选定的文本" ##ID:000520## mcset $l "Current line" \ "当前行" ##ID:000521## mcset $l "Bookmark" \ "书签" ##ID:000522## mcset $l "Simulator line" \ "Simulator line" ;# <-- NOT TRANSLATED YET ##ID:000523## mcset $l "Breakpoint" \ "断点" ##ID:000524## mcset $l "Invalid breakpoint" \ "无效的断点" ##ID:000525## mcset $l "Line with an error" \ "行有错误" ##ID:000526## mcset $l "Trailing space" \ "后缘空白" ##ID:000527## mcset $l "Additional elements" \ "其他要素" ##ID:000528## mcset $l "Icon border background" \ "Icon border background" ;# <-- NOT TRANSLATED YET ##ID:000529## mcset $l "Line numbers background" \ "Line numbers background" ;# <-- NOT TRANSLATED YET ##ID:000530## mcset $l "Line numbers foreground" \ "Line numbers foreground" ;# <-- NOT TRANSLATED YET ##ID:000531## mcset $l "The Quick Brown Fox Jumps Over The Lazy Dog" \ "The Quick Brown Fox Jumps Over The Lazy Dog" ;# <-- NOT TRANSLATED YET ##ID:000532## mcset $l "Searching for available fonts ..." \ "正在搜索可用字体 ..." ##ID:000533## mcset $l "Assembler" \ "汇编器" ##ID:000534## mcset $l "C language" \ "C 语言" ##ID:000535## mcset $l "Code listing" \ "代码清单" # Keep string length here! ##ID:000536## mcset $l {Color} \ {颜色} # Keep string length here! ##ID:000537## mcset $l {Content} \ {内容} ##ID:000538## mcset $l "increment some register" \ "增加一些寄存器" ##ID:000539## mcset $l "close main loop" \ "关闭主循环" ##ID:000540## mcset $l "Comment" \ "注释" ##ID:000541## mcset $l "String" \ "字符串" ##ID:000542## mcset $l "macro Some value" \ "macro Some value" ;# <-- NOT TRANSLATED YET ##ID:000543## mcset $l "Select color - %s" \ "选择颜色 - %s" ##ID:000544## mcset $l "Invalid key: '%s'" \ "Invalid key: '%s'" ;# <-- NOT TRANSLATED YET ##ID:000545## mcset $l "Unable to use external embedded editor because rxvt-unicode is not available" \ "Unable to use external embedded editor because rxvt-unicode is not available" ;# <-- NOT TRANSLATED YET ##ID:000546## mcset $l "Program %s is not available. Using native editor." \ "程序 %s 不可用. 使用内置编辑器." ##ID:000547## mcset $l "Char" \ "字符" ##ID:000548## mcset $l "Hexadecimal number" \ "十六进制数" ##ID:000549## mcset $l "Octal number" \ "八进制数" ##ID:000550## mcset $l "Decimal number" \ "十进制数" ##ID:000551## mcset $l "Binary number" \ "二进制数" ##ID:000552## mcset $l "Constant" \ "常量" ##ID:000553## mcset $l "Generic number" \ "通用数" ##ID:000554## mcset $l "Control sequence" \ "Control sequence" ;# <-- NOT TRANSLATED YET ##ID:000555## mcset $l "Symbol" \ "符号" ##ID:000556## mcset $l "Operand separator" \ "Operand separator" ;# <-- NOT TRANSLATED YET ##ID:000557## mcset $l "Directive" \ "指令" ##ID:000558## mcset $l "Label" \ "标签" ##ID:000559## mcset $l "Instruction" \ "指令" ##ID:000560## mcset $l "SFR register" \ "SFR寄存器" ##ID:000561## mcset $l "Indirect address" \ "间接寻址" ##ID:000562## mcset $l "Immediate char" \ "Immediate char" ;# <-- NOT TRANSLATED YET ##ID:000563## mcset $l "Immediate hex" \ "Immediate hex" ;# <-- NOT TRANSLATED YET ##ID:000564## mcset $l "Immediate oct" \ "Immediate oct" ;# <-- NOT TRANSLATED YET ##ID:000565## mcset $l "Immediate dec" \ "Immediate dec" ;# <-- NOT TRANSLATED YET ##ID:000566## mcset $l "Immediate bin" \ "Immediate bin" ;# <-- NOT TRANSLATED YET ##ID:000567## mcset $l "Immediate const" \ "Immediate const" ;# <-- NOT TRANSLATED YET ##ID:000568## mcset $l "Immediate generic" \ "Immediate generic" ;# <-- NOT TRANSLATED YET ##ID:000569## mcset $l "Macro instruction" \ "宏指令" ##ID:000570## mcset $l "Keyword" \ "关键字" ##ID:000571## mcset $l "Data type" \ "数据类型" ##ID:000572## mcset $l "Decimal" \ "十进制" ##ID:000573## mcset $l "Hexadecimal" \ "十六进制" ##ID:000574## mcset $l "Octal" \ "八进制" ##ID:000575## mcset $l "Float" \ "浮点型" ##ID:000576## mcset $l "String char" \ "String char" ;# <-- NOT TRANSLATED YET ##ID:000577## mcset $l "Bracket" \ "Bracket" ;# <-- NOT TRANSLATED YET ##ID:000578## mcset $l "Preprocessor" \ "预编译器" ##ID:000579## mcset $l "Preprocessor lib." \ "预编译库." ##ID:000580## mcset $l "Doxygen: Comment" \ "Doxygen: Comment" ;# <-- NOT TRANSLATED YET ##ID:000581## mcset $l "Doxygen: Tag" \ "Doxygen: Tag" ;# <-- NOT TRANSLATED YET ##ID:000582## mcset $l "Doxygen: Word" \ "Doxygen: Word" ;# <-- NOT TRANSLATED YET ##ID:000583## mcset $l "Doxygen: Name" \ "Doxygen: Name" ;# <-- NOT TRANSLATED YET ##ID:000584## mcset $l "Doxygen: HTML" \ "Doxygen: HTML" ;# <-- NOT TRANSLATED YET ##ID:000585## mcset $l "Doxygen: HTML arg." \ "Doxygen: HTML arg." ;# <-- NOT TRANSLATED YET ##ID:000586## mcset $l "Doxygen: HTML val." \ "Doxygen: HTML val." ;# <-- NOT TRANSLATED YET ##ID:000587## mcset $l "Value" \ "Value" ;# <-- NOT TRANSLATED YET ##ID:000588## mcset $l "Processor code" \ "Processor code" ;# <-- NOT TRANSLATED YET ##ID:000589## mcset $l "Address" \ "Address" ;# <-- NOT TRANSLATED YET ##ID:000590## mcset $l "Line number" \ "Line number" ;# <-- NOT TRANSLATED YET ##ID:000591## mcset $l "Macro level" \ "Macro level" ;# <-- NOT TRANSLATED YET ##ID:000592## mcset $l "Inclusion level" \ "Inclusion level" ;# <-- NOT TRANSLATED YET ##ID:000593## mcset $l "Error / Warning" \ "错误 / 警告" ##ID:000594## mcset $l "Message" \ "消息" } namespace eval ::configDialogues::compiler { ##ID:000595## mcset $l "Compiler configuration" \ "编译器配置" ##ID:000596## mcset $l "Assembly language" \ "汇编语言" ##ID:000597## mcset $l "Configure compiler for assembly language" \ "汇编语言的编译器配置" ##ID:000598## mcset $l "C language -- SDCC" \ "C语言 -- SDCC" ##ID:000599## mcset $l "GNU make utility" \ "GNU make 工具" ##ID:000600## mcset $l "Make utility is not available, please install GNU make and restart the IDE." \ "Make工具不存在, 请安装GNU make然后重启程序." ##ID:000601## mcset $l "Use this Makefile instead of calling C compiler directly:" \ "使用这个Makefile而不是直接调用C编译器:" ##ID:000602## mcset $l "Makefile:" \ "Makefile:" ;# <-- NOT TRANSLATED YET ##ID:004491## mcset $l "Targets:" \ "目标:" ##ID:004492## mcset $l "Options:" \ "选项:" ##ID:000603## mcset $l "Clear the entrybox" \ "清除输入框中内容" ##ID:000604## mcset $l "Select Makefile" \ "选择 Makefile" ##ID:000605## mcset $l "Compiler" \ "编译器" ##ID:000606## mcset $l "Reset to defaults" \ "重设为默认值" ##ID:000607## mcset $l "Reset all settings to defaults" \ "重设所有设置为默认值" ##ID:000608## mcset $l "Ok" \ "确定" ; ##ID:000609## mcset $l "Commit new settings" \ "应用新的设置" ##ID:000610## mcset $l "Cancel" \ "取消" ##ID:000611## mcset $l "Take changes back and close dialog" \ "应用并关闭窗口" ##ID:000612## mcset $l "Configure compiler - %s" \ "配置编译器 - %s" ##ID:000613## mcset $l "General" \ "常规" ##ID:000614## mcset $l "Code generation" \ "代码生成" ##ID:000615## mcset $l "Optimization" \ "优化" ##ID:000616## mcset $l "Linker" \ "链接器" ##ID:000617## mcset $l "Custom" \ "自定义" ##ID:000618## mcset $l "Standard:" \ "标准:" ##ID:000619## mcset $l "Include path" \ "Include 路径" ##ID:000620## mcset $l "Add to the include path, as in -Ipath\nPaths are separated by semicolons (`;')" \ "Add to the include path, as in -Ipath\nPaths are separated by semicolons (`;')" ;# <-- NOT TRANSLATED YET ##ID:000621## mcset $l "Disable warning" \ "禁用警告" ##ID:000622## mcset $l "Disable specific warning (--disable-warning)\nNumbers are separated by semicolons (`;')" \ "Disable specific warning (--disable-warning)\nNumbers are separated by semicolons (`;')" ;# <-- NOT TRANSLATED YET ##ID:000623## mcset $l "Model:" \ "Model:" ;# <-- NOT TRANSLATED YET ##ID:000624## mcset $l "External data space is used" \ "使用外部数据空间" ##ID:000625## mcset $l "External paged data space is used" \ "External paged data space is used" ;# <-- NOT TRANSLATED YET ##ID:000626## mcset $l "Internal data space is used" \ "Internal data space is used" ;# <-- NOT TRANSLATED YET ##ID:000627## mcset $l "Use this name for the code segment" \ "Use this name for the code segment" ;# <-- NOT TRANSLATED YET ##ID:000628## mcset $l "Use this name for the const segment" \ "Use this name for the const segment" ;# <-- NOT TRANSLATED YET ##ID:000629## mcset $l "Stack:" \ "堆栈:" ##ID:000630## mcset $l "Include the given library in the link\nPaths are separated by semicolons (`;')" \ "Include the given library in the link\nPaths are separated by semicolons (`;')" ;# <-- NOT TRANSLATED YET ##ID:000631## mcset $l "Add the next field to the library search path\nPaths are separated by semicolons (`;')" \ "Add the next field to the library search path\nPaths are separated by semicolons (`;')" ;# <-- NOT TRANSLATED YET ##ID:000632## mcset $l "Use this path to search for libraries" \ "Use this path to search for libraries" ;# <-- NOT TRANSLATED YET ##ID:000633## mcset $l "External Ram start location" \ "External Ram start location" ;# <-- NOT TRANSLATED YET ##ID:000634## mcset $l "External Stack start location" \ "External Stack start location" ;# <-- NOT TRANSLATED YET ##ID:000635## mcset $l "Code Segment Location" \ "代码段的位置" ##ID:000636## mcset $l "Stack pointer initial value" \ "Stack pointer initial value" ;# <-- NOT TRANSLATED YET ##ID:000637## mcset $l "Direct data start location" \ "Direct data start location" ;# <-- NOT TRANSLATED YET ##ID:000638## mcset $l "Tells the linker to allocate this space for stack" \ "Tells the linker to allocate this space for stack" ;# <-- NOT TRANSLATED YET ##ID:000641## mcset $l "Preferred assembler:" \ "汇编首选项:" ##ID:000642## mcset $l "Notes to assemblers:\n" \ "汇编器注意事项:\n" ##ID:000643## mcset $l " a) MCU 8051 IDE has its own native assembler\n" \ " a) MCU 8051 IDE 拥有自己的汇编器了\n" ; ##ID:000644## mcset $l " b) ASEM-51 is a great assembler written by W.W. Heinz.\n" \ " b) ASEM-51 is a great assembler written by W.W. Heinz.\n" ;# <-- NOT TRANSLATED YET ##ID:000645## mcset $l " You can find it at http://plit.de/asem-51/home.htm\n" \ " 您可以在 http://plit.de/asem-51/home.htm 找到\n" ; ##ID:000646## mcset $l " c) ASL: http://linux.maruhn.com/sec/asl.html\n" \ " c) ASL: http://linux.maruhn.com/sec/asl.html\n" ;# <-- NOT TRANSLATED YET ##ID:000647## mcset $l " d) AS31: http://www.pjrc.com/tech/8051/\n" \ " d) AS31: http://www.pjrc.com/tech/8051/\n" ;# <-- NOT TRANSLATED YET ##ID:000648## mcset $l "MCU 8051 IDE native assembler - Sophisticated but slow" \ "MCU 8051 IDE native assembler - Sophisticated but slow" ;# <-- NOT TRANSLATED YET ##ID:000649## mcset $l "Sophisticated and very fast assembler written by W.W. Heinz" \ "Sophisticated and very fast assembler written by W.W. Heinz" ;# <-- NOT TRANSLATED YET ##ID:000650## mcset $l "Multiplatform assembler written by Alfred Arnold" \ "Multiplatform assembler written by Alfred Arnold" ;# <-- NOT TRANSLATED YET ##ID:000651## mcset $l "Simple 8051 assembler" \ "Simple 8051 assembler" ;# <-- NOT TRANSLATED YET ##ID:000652## mcset $l "Generate an object file in absolute OMF-51 format" \ "Generate an object file in absolute OMF-51 format" ;# <-- NOT TRANSLATED YET ##ID:000653## mcset $l "Output additional column numbers after the line numbers of program error messages" \ "Output additional column numbers after the line numbers of program error messages" ;# <-- NOT TRANSLATED YET ##ID:000654## mcset $l "Output additional product, version, and error summary information" \ "Output additional product, version, and error summary information" ;# <-- NOT TRANSLATED YET ##ID:000655## mcset $l "Generate MCU 8051 IDE debug file" \ "生成 MCU 8051 IDE 调试文件" ##ID:000656## mcset $l "Generate .adb (MCU 8051 IDE Assembler Debug File) from .lst" \ "Generate .adb (MCU 8051 IDE Assembler Debug File) from .lst" ;# <-- NOT TRANSLATED YET ##ID:000657## mcset $l "Include paths:" \ "Include 路径:" ##ID:000658## mcset $l "Option -i\nSeparate directories by colons (`:')" \ "Option -i\nSeparate directories by colons (`:')" ;# <-- NOT TRANSLATED YET ##ID:000659## mcset $l "Custom options:" \ "自定义选项:" ##ID:000660## mcset $l "Generate a listing file, option `-l'" \ "生成一个列表文件,选项 `-l'" ##ID:000661## mcset $l "This option tells the assembler to generate a listing file.\n\nTHIS OPTION IS REQUIRED BY THIS IDE TO GENERATE DEBUG FILE !" \ "This option tells the assembler to generate a listing file.\n\nTHIS OPTION IS REQUIRED BY THIS IDE TO GENERATE DEBUG FILE !" ;# <-- NOT TRANSLATED YET ##ID:000662## mcset $l "Generate .adb (MCU 8051 IDE Assembler Debug File)\nfrom .lst" \ "Generate .adb (MCU 8051 IDE Assembler Debug File)\nfrom .lst" ;# <-- NOT TRANSLATED YET ##ID:000663## mcset $l "This options specifies the output format that is to be used.\n\nSee AS31 manual page for more details ..." \ "This options specifies the output format that is to be used.\n\nSee AS31 manual page for more details ..." ;# <-- NOT TRANSLATED YET ##ID:000664## mcset $l "This option specifies a format specific string which is\npassed to the format generator. Both format \"tdr\" and the\nsrecord formats use this option." \ "This option specifies a format specific string which is\npassed to the format generator. Both format \"tdr\" and the\nsrecord formats use this option." ;# <-- NOT TRANSLATED YET ##ID:000665## mcset $l "Change the data structure that is internally used to store\nthe symbol table. By default, AS uses binary trees to store\nmacro and symbol definitions. Turning this option on will\nchange this to AVL-balanced trees. Depending on the ratio\nof symbol entries and lookups, this might speed up assembly.\nUsing AVL-balanced trees helps also reducing the stack usage,\nwhich is however irrelevant for the C version of AS." \ "Change the data structure that is internally used to store\nthe symbol table. By default, AS uses binary trees to store\nmacro and symbol definitions. Turning this option on will\nchange this to AVL-balanced trees. Depending on the ratio\nof symbol entries and lookups, this might speed up assembly.\nUsing AVL-balanced trees helps also reducing the stack usage,\nwhich is however irrelevant for the C version of AS." ;# <-- NOT TRANSLATED YET ##ID:000666## mcset $l "Instruct AS to write out the shared symbol definitions in\na format suitable for including into an AS assembler program.\nThe file's name is constructed by replacing the source file's\nextension with '.inc'. See the user manual for more\ninformation about symbol sharing." \ "Instruct AS to write out the shared symbol definitions in\na format suitable for including into an AS assembler program.\nThe file's name is constructed by replacing the source file's\nextension with '.inc'. See the user manual for more\ninformation about symbol sharing." ;# <-- NOT TRANSLATED YET ##ID:000667## mcset $l "Add a cross reference table to the assembler listing. A cross\nreference table lists all symbols that have been referenced\nat least once during assembly, including the source line\nnumber(s) and count of every reference. This option only makes\nsense when the generation of an assembly listing has been\nturned on via the -L or -l parameters. " \ "Add a cross reference table to the assembler listing. A cross\nreference table lists all symbols that have been referenced\nat least once during assembly, including the source line\nnumber(s) and count of every reference. This option only makes\nsense when the generation of an assembly listing has been\nturned on via the -L or -l parameters. " ;# <-- NOT TRANSLATED YET ##ID:000668## mcset $l "Instruct AS to write out the shared symbol definitions in a\nformat suitable for including into a C program. The file's\nname is constructed by replacing the source file's extension\nwith '.h'. See the user manual for more information about\nsymbol sharing." \ "Instruct AS to write out the shared symbol definitions in a\nformat suitable for including into a C program. The file's\nname is constructed by replacing the source file's extension\nwith '.h'. See the user manual for more information about\nsymbol sharing." ;# <-- NOT TRANSLATED YET ##ID:000669## mcset $l "Force AS to print all hexadecimal constants with lowercase\nletters, rather than with uppercase letters A..F which is\nthe default." \ "Force AS to print all hexadecimal constants with lowercase\nletters, rather than with uppercase letters A..F which is\nthe default." ;# <-- NOT TRANSLATED YET ##ID:000670## mcset $l "Add an include file list to the assembly listing. An include\nfile list contains all files that have been included while\nassembling the source files, including multiple and nested\ninclusion. Nesting of inclusion is identified by different\nindention. This option only makes sense when the generation of\nan assembly listing has been turned on via the -L or -l parameters." \ "Add an include file list to the assembly listing. An include\nfile list contains all files that have been included while\nassembling the source files, including multiple and nested\ninclusion. Nesting of inclusion is identified by different\nindention. This option only makes sense when the generation of\nan assembly listing has been turned on via the -L or -l parameters." ;# <-- NOT TRANSLATED YET ##ID:000671## mcset $l "Turn on generation of an assembly listing and send it to a\nfile whose name is constructed by replacing the source\nfile's extension with '.lst'." \ "Turn on generation of an assembly listing and send it to a\nfile whose name is constructed by replacing the source\nfile's extension with '.lst'." ;# <-- NOT TRANSLATED YET ##ID:000672## mcset $l "Turn on generation of a macro definition file. A macro\ndefinition file is a file that contains all macro definitions\nthat have been detected during assembly, in a format suitable\nfor an inclusion into another file. The macro definition file's\nname is constructed by replacing the source file's extension\nwith '.mac'." \ "Turn on generation of a macro definition file. A macro\ndefinition file is a file that contains all macro definitions\nthat have been detected during assembly, in a format suitable\nfor an inclusion into another file. The macro definition file's\nname is constructed by replacing the source file's extension\nwith '.mac'." ;# <-- NOT TRANSLATED YET ##ID:000673## mcset $l "Turn on generation of a macro output file. A macro output\nfile contains the intermediate source code that remains after\nmacro expansion and conditional assembly. The macro output\nfile's name is constructed by replacing the source file's\nextension with '.i'." \ "Turn on generation of a macro output file. A macro output\nfile contains the intermediate source code that remains after\nmacro expansion and conditional assembly. The macro output\nfile's name is constructed by replacing the source file's\nextension with '.i'." ;# <-- NOT TRANSLATED YET ##ID:000674## mcset $l "Force AS to extend all error and warning messages with their\ninternal error resp. warning number." \ "Force AS to extend all error and warning messages with their\ninternal error resp. warning number." ;# <-- NOT TRANSLATED YET ##ID:000675## mcset $l "Turn on silent assembly mode. In silent compilation mode, AS\nwill not do any console output except for warning and\nerror messages." \ "Turn on silent assembly mode. In silent compilation mode, AS\nwill not do any console output except for warning and\nerror messages." ;# <-- NOT TRANSLATED YET ##ID:000676## mcset $l "Add a section list to the assembly listing. A section list\ncontains all sections that have been defined in the source\nfiles, marking their nesting level by different levels of\nindentation. This option only makes sense when the generation\nof an assembly listing has been turned on via the\n-L or -l parameters." \ "Add a section list to the assembly listing. A section list\ncontains all sections that have been defined in the source\nfiles, marking their nesting level by different levels of\nindentation. This option only makes sense when the generation\nof an assembly listing has been turned on via the\n-L or -l parameters." ;# <-- NOT TRANSLATED YET ##ID:000677## mcset $l "Tell AS to do additional bookkeeping about which address\nranges have been used by the assembled program. This option\nenables the detection of overlapping memory usage. If an\nassembly listing has been turned on via the -L or -l parameters,\nit will also contain a list of all used memory areas." \ "Tell AS to do additional bookkeeping about which address\nranges have been used by the assembled program. This option\nenables the detection of overlapping memory usage. If an\nassembly listing has been turned on via the -L or -l parameters,\nit will also contain a list of all used memory areas." ;# <-- NOT TRANSLATED YET ##ID:000678## mcset $l "Force AS to operate in case-sensitive mode. By default,\nnames of symbols, macros, user-defined functions and sections\nare treated in a case-insensitive manner." \ "Force AS to operate in case-sensitive mode. By default,\nnames of symbols, macros, user-defined functions and sections\nare treated in a case-insensitive manner." ;# <-- NOT TRANSLATED YET ##ID:000679## mcset $l "Suppress output of warnings." \ "禁止输出警告." ##ID:000680## mcset $l "Turn on extended error reporting. With extended error\nreporting, several error and warning messages will also\nprint the item that created the message, e.g. the name of\nan unknown instruction. When this option is given twice,\nthe erroneous source line is additinally printed." \ "Turn on extended error reporting. With extended error\nreporting, several error and warning messages will also\nprint the item that created the message, e.g. the name of\nan unknown instruction. When this option is given twice,\nthe erroneous source line is additinally printed." ;# <-- NOT TRANSLATED YET ##ID:000681## mcset $l "Generate IHEX file" \ "生成IHEX文件" ##ID:000682## mcset $l "Use program p2hex to convert .p to .hex" \ "Use program p2hex to convert .p to .hex" ;# <-- NOT TRANSLATED YET ##ID:000683## mcset $l "Generate .adb (MCU 8051 IDE Assembler Debug File)\nfrom .hex and .map" \ "Generate .adb (MCU 8051 IDE Assembler Debug File)\nfrom .hex and .map" ;# <-- NOT TRANSLATED YET ##ID:000684## mcset $l "Set the target processor to .\nUse this option if the source file does\nnot contain a CPU statement." \ "Set the target processor to .\nUse this option if the source file does\nnot contain a CPU statement." ;# <-- NOT TRANSLATED YET ##ID:000685## mcset $l "-g \[MAP|Atmel|NoICE\]\n\tInstruct AS to write an additional file containing\n\tdebug information. This information covers the symbol\n\ttable and the relation between source line numbers\n\tand machine addresses. The argument specifies whether\n\tdebug info shall be written in AS's own MAP format,\n\tthe object format for Atmel's AVR tools, or a command\n\tfile suitable for John Hartman's NoICE. If no argument\n\tis given, MAP will be chosen. The file's name is\n\tconstructed by replacing the source file's extension\n\twith '.map', '.obj', or '.noi' respectively.\n\nMCU 8051 IDE requires MAP to be selected\nhere to generate debug file" \ "-g \[MAP|Atmel|NoICE\]\n\tInstruct AS to write an additional file containing\n\tdebug information. This information covers the symbol\n\ttable and the relation between source line numbers\n\tand machine addresses. The argument specifies whether\n\tdebug info shall be written in AS's own MAP format,\n\tthe object format for Atmel's AVR tools, or a command\n\tfile suitable for John Hartman's NoICE. If no argument\n\tis given, MAP will be chosen. The file's name is\n\tconstructed by replacing the source file's extension\n\twith '.map', '.obj', or '.noi' respectively.\n\nMCU 8051 IDE requires MAP to be selected\nhere to generate debug file" ;# <-- NOT TRANSLATED YET ##ID:000686## mcset $l "-r \[pass number\]\n\tTell AS to output warnings when a situation appears\n\tin a source file that forces another pass of assembly.\n\tSuch situations either take place when a symbol is\n\tundefined in the first pass or a symbol's value has\n\tchanged compared to the previous pass. This option\n\tis useful to track down sources of excessive\n\tmulti-passing, but be aware that it might yield a\n\tfairly large number of warnings, especially in the\n\tfirst pass. Optionally, a pass number may be added\n\tto this option to inhibit output until a certain\n\tpass is reached." \ "-r \[pass number\]\n\tTell AS to output warnings when a situation appears\n\tin a source file that forces another pass of assembly.\n\tSuch situations either take place when a symbol is\n\tundefined in the first pass or a symbol's value has\n\tchanged compared to the previous pass. This option\n\tis useful to track down sources of excessive\n\tmulti-passing, but be aware that it might yield a\n\tfairly large number of warnings, especially in the\n\tfirst pass. Optionally, a pass number may be added\n\tto this option to inhibit output until a certain\n\tpass is reached." ;# <-- NOT TRANSLATED YET ##ID:000687## mcset $l "-i \tAdd new entries to the list of paths that are\n\tsearched for include files. New entries are\n\tprepended to the current include path list,\n\tso if multiple paths are given with one\n\tcommand-line parameter, they will be entered\n\tinto the path list in reverse order." \ "-i \tAdd new entries to the list of paths that are\n\tsearched for include files. New entries are\n\tprepended to the current include path list,\n\tso if multiple paths are given with one\n\tcommand-line parameter, they will be entered\n\tinto the path list in reverse order." ;# <-- NOT TRANSLATED YET ##ID:000688## mcset $l "Trace calls to the preprocessor, assembler and linker" \ "Trace calls to the preprocessor, assembler and linker" ;# <-- NOT TRANSLATED YET ##ID:000689## mcset $l "Execute verbosely. Show sub commands as they are run" \ "Execute verbosely. Show sub commands as they are run" ;# <-- NOT TRANSLATED YET ##ID:000690## mcset $l "Compile only; do not assemble or link" \ "Compile only; do not assemble or link" ;# <-- NOT TRANSLATED YET ##ID:000691## mcset $l "Compile and assemble, but do not link" \ "Compile and assemble, but do not link" ;# <-- NOT TRANSLATED YET ##ID:000692## mcset $l "Preprocess only, do not compile" \ "只允许预编译器, 不编译" ##ID:000693## mcset $l "Act in c1 mode. The standard input is preprocessed code, the output is assembly code." \ "Act in c1 mode. The standard input is preprocessed code, the output is assembly code." ;# <-- NOT TRANSLATED YET ##ID:000694## mcset $l "Display the directories in the compiler's search path" \ "显示编译器的搜索路径" ##ID:000695## mcset $l "Send errors to stdout instead of stderr" \ "将错误报告发送到stdout而不是stderr" ##ID:000696## mcset $l "Do not include the standard library directory in the search path" \ "不包括在标准库的搜索路径目录" ##ID:000697## mcset $l "Disable some of the more pedantic warnings" \ "禁用一些迂腐警告" ##ID:000698## mcset $l "Enable debugging symbol output" \ "启用调试符号输出" ##ID:000699## mcset $l "Display complexity of compiled functions" \ "Display complexity of compiled functions" ;# <-- NOT TRANSLATED YET ##ID:000700## mcset $l "Permit '\$' as an identifier character" \ "Permit '\$' as an identifier character" ;# <-- NOT TRANSLATED YET ##ID:000701## mcset $l "Make \"char\" unsigned by default" \ "Make \"char\" unsigned by default" ;# <-- NOT TRANSLATED YET ##ID:000702## mcset $l "Use C89 standard only" \ "Use C89 standard only" ;# <-- NOT TRANSLATED YET ##ID:000703## mcset $l "Use C89 standard with SDCC extensions" \ "Use C89 standard with SDCC extensions" ;# <-- NOT TRANSLATED YET ##ID:000704## mcset $l "Use C99 standard only (incomplete)" \ "Use C99 standard only (incomplete)" ;# <-- NOT TRANSLATED YET ##ID:000705## mcset $l "Use C99 standard with SDCC extensions (incomplete)" \ "Use C99 standard with SDCC extensions (incomplete)" ;# <-- NOT TRANSLATED YET ##ID:000706## mcset $l "Use external stack" \ "使用外部堆栈" ##ID:000707## mcset $l "Use reenterant calls on the int and long support functions" \ "Use reenterant calls on the int and long support functions" ;# <-- NOT TRANSLATED YET ##ID:000708## mcset $l "Use reenterant calls on the float support functions" \ "Use reenterant calls on the float support functions" ;# <-- NOT TRANSLATED YET ##ID:000709## mcset $l "Issue a return after main()" \ "Issue a return after main()" ;# <-- NOT TRANSLATED YET ##ID:000710## mcset $l "Use movc instead of movx to read xram (xdata)" \ "Use movc instead of movx to read xram (xdata)" ;# <-- NOT TRANSLATED YET ##ID:000711## mcset $l "On supported ports, generate extra profiling information" \ "On supported ports, generate extra profiling information" ;# <-- NOT TRANSLATED YET ##ID:000712## mcset $l "Leave out the frame pointer." \ "Leave out the frame pointer." ;# <-- NOT TRANSLATED YET ##ID:000713## mcset $l "Callee will always save registers used" \ "Callee will always save registers used" ;# <-- NOT TRANSLATED YET ##ID:000714## mcset $l "Insert call to function __stack_probe at each function prologue" \ "Insert call to function __stack_probe at each function prologue" ;# <-- NOT TRANSLATED YET ##ID:000715## mcset $l "Use Bank1 for parameter passing" \ "Use Bank1 for parameter passing" ;# <-- NOT TRANSLATED YET ##ID:000716## mcset $l "Don't memcpy initialized xram from code" \ "Don't memcpy initialized xram from code" ;# <-- NOT TRANSLATED YET ##ID:000717## mcset $l "Don't include c-code as comments in the asm file" \ "Don't include c-code as comments in the asm file" ;# <-- NOT TRANSLATED YET ##ID:000718## mcset $l "Don't include peephole optimizer comments" \ "Don't include peephole optimizer comments" ;# <-- NOT TRANSLATED YET ##ID:000719## mcset $l "Include code generator comments" \ "Include code generator comments" ;# <-- NOT TRANSLATED YET ##ID:000720## mcset $l "Make short 8 bits (for old times sake)" \ "Make short 8 bits (for old times sake)" ;# <-- NOT TRANSLATED YET ##ID:000721## mcset $l "Stack automatic variables" \ "Stack automatic variables" ;# <-- NOT TRANSLATED YET ##ID:000722## mcset $l "Disable overlaying leaf function auto variables" \ "Disable overlaying leaf function auto variables" ;# <-- NOT TRANSLATED YET ##ID:000723## mcset $l "Disable the GCSE optimisation" \ "Disable the GCSE optimisation" ;# <-- NOT TRANSLATED YET ##ID:000724## mcset $l "Disable label optimisation" \ "Disable label optimisation" ;# <-- NOT TRANSLATED YET ##ID:000725## mcset $l "Disable optimisation of invariants" \ "Disable optimisation of invariants" ;# <-- NOT TRANSLATED YET ##ID:000726## mcset $l "Disable loop variable induction" \ "Disable loop variable induction" ;# <-- NOT TRANSLATED YET ##ID:000727## mcset $l "Don't generate boundary check for jump tables" \ "Don't generate boundary check for jump tables" ;# <-- NOT TRANSLATED YET ##ID:000728## mcset $l "Disable the loop reverse optimisation" \ "Disable the loop reverse optimisation" ;# <-- NOT TRANSLATED YET ##ID:000729## mcset $l "Disable the peephole assembly file optimisation" \ "Disable the peephole assembly file optimisation" ;# <-- NOT TRANSLATED YET ##ID:000730## mcset $l "On some ports, disable passing some parameters in registers" \ "On some ports, disable passing some parameters in registers" ;# <-- NOT TRANSLATED YET ##ID:000731## mcset $l "Enable peephole optimization on inline assembly" \ "Enable peephole optimization on inline assembly" ;# <-- NOT TRANSLATED YET ##ID:000732## mcset $l "Optimize for code speed rather than size" \ "Optimize for code speed rather than size" ;# <-- NOT TRANSLATED YET ##ID:000733## mcset $l "Optimize for code size rather than speed" \ "Optimize for code size rather than speed" ;# <-- NOT TRANSLATED YET ##ID:000734## mcset $l "Output in Intel hex format" \ "Output in Intel hex format" ;# <-- NOT TRANSLATED YET ##ID:000735## mcset $l "Output in S19 hex format" \ "Output in S19 hex format" ;# <-- NOT TRANSLATED YET ##ID:000736## mcset $l "Output" \ "Output" ;# <-- NOT TRANSLATED YET ##ID:000737## mcset $l "Messages and output code" \ "Messages and output code" ;# <-- NOT TRANSLATED YET ##ID:000738## mcset $l "Directives" \ "Directives" ;# <-- NOT TRANSLATED YET ##ID:000739## mcset $l "Which directives accept and which do not" \ "Which directives accept and which do not" ;# <-- NOT TRANSLATED YET ##ID:000740## mcset $l "Source" \ "Source" ;# <-- NOT TRANSLATED YET ##ID:000741## mcset $l "Use value defined in source code" \ "Use value defined in source code" ;# <-- NOT TRANSLATED YET ##ID:000742## mcset $l "Always" \ "总是" ##ID:000743## mcset $l "Generate always" \ "总是生成" ##ID:000744## mcset $l "Never" \ "从不" ##ID:000745## mcset $l "Never generate" \ "从不生成" ##ID:000746## mcset $l "Generate code listing" \ "生成的代码列表" ##ID:000747## mcset $l "Should compiler generate *.lst files" \ "Should compiler generate *.lst files" ;# <-- NOT TRANSLATED YET ##ID:000748## mcset $l "Table of symbols (in *.lst)" \ "Table of symbols (in *.lst)" ;# <-- NOT TRANSLATED YET ##ID:000749## mcset $l "Include table of used symbolic names to code listing" \ "Include table of used symbolic names to code listing" ;# <-- NOT TRANSLATED YET ##ID:000750## mcset $l "Generate object code (ihex8)" \ "Generate object code (ihex8)" ;# <-- NOT TRANSLATED YET ##ID:000751## mcset $l "Generate object code in format Intel Hex 8 (*.hex)" \ "Generate object code in format Intel Hex 8 (*.hex)" ;# <-- NOT TRANSLATED YET ##ID:000752## mcset $l "Generate code for simulator" \ "Generate code for simulator" ;# <-- NOT TRANSLATED YET ##ID:000753## mcset $l "Generate *.sim file for simulator" \ "Generate *.sim file for simulator" ;# <-- NOT TRANSLATED YET ##ID:000754## mcset $l "Generate binary object code" \ "Generate binary object code" ;# <-- NOT TRANSLATED YET ##ID:000755## mcset $l "Generate binary object code (*.bin)" \ "Generate binary object code (*.bin)" ;# <-- NOT TRANSLATED YET ##ID:000756## mcset $l "Warning level" \ "警告级别" ##ID:000757## mcset $l "All" \ "全部" ##ID:000758## mcset $l "Errors + Warnings" \ "错误 + 警告" ##ID:000759## mcset $l "Errros only" \ "只是错误" ##ID:000760## mcset $l "Nothing" \ "不使用警告" ##ID:000761## mcset $l "What kind of messages should be included in compiler log output" \ "What kind of messages should be included in compiler log output" ;# <-- NOT TRANSLATED YET ##ID:000762## mcset $l "Verbose" \ "详细" ##ID:000763## mcset $l "Should compiler inform user about what it is doing" \ "Should compiler inform user about what it is doing" ;# <-- NOT TRANSLATED YET ##ID:000764## mcset $l "Enable optimization" \ "启用优化" ##ID:000765## mcset $l "Enable peephole optimization" \ "启用peephole优化" ##ID:000766## mcset $l "Maximum HEX record data length" \ "Maximum HEX record data length" ;# <-- NOT TRANSLATED YET ##ID:000767## mcset $l "Maximum length of Intel HEX 8 record data field.\n\nGenerally it doesn't matter what is set here. But some (badly written)\nprogrammers may refuse to load files containing records which exceeds\ncertain length.\n\nHigher value also results in smaller .hex files\n\nValue equal to 0 will be treated as 1" \ "Maximum length of Intel HEX 8 record data field.\n\nGenerally it doesn't matter what is set here. But some (badly written)\nprogrammers may refuse to load files containing records which exceeds\ncertain length.\n\nHigher value also results in smaller .hex files\n\nValue equal to 0 will be treated as 1" ;# <-- NOT TRANSLATED YET ##ID:000768## mcset $l "Ignore directives" \ "忽略指令" ##ID:000769## mcset $l "Accept" \ "接受" ##ID:000770## mcset $l "Ignore" \ "忽略" ##ID:000771## mcset $l "Restore defaults" \ "恢复默认设置" ##ID:000772## mcset $l "Are you sure that you want restore default settings ?" \ "您确定要恢复默认设置?" } namespace eval ::configDialogues::rightPanel { ##ID:000773## mcset $l "Right panel configuration" \ "右面板配置" ##ID:000774## mcset $l "Register watches" \ "登记表" ##ID:000775## mcset $l "Configure highlighting colors for register watches" \ "配置登记表高亮颜色," ##ID:000776## mcset $l "Instruction details" \ "详细说明" ##ID:000777## mcset $l "Configure highlighting colors for instruction details" \ "详细配置指令的高亮颜色" ##ID:000778## mcset $l "Bold" \ "Bold" ;# <-- NOT TRANSLATED YET ##ID:000779## mcset $l "Apply" \ "应用" ##ID:000780## mcset $l "Ok" \ "好" ##ID:000781## mcset $l "Cancel" \ "取消" ##ID:000782## mcset $l "Configure right panel - %s" \ "右侧面板配置 - %s" ##ID:000783## mcset $l "Select color - %s" \ "选择颜色- %s" ##ID:000784## mcset $l "Bit" \ "Bit" ;# <-- NOT TRANSLATED YET ##ID:000785## mcset $l "Name" \ "Name" ;# <-- NOT TRANSLATED YET ##ID:000786## mcset $l " etc." \ " etc." ;# <-- NOT TRANSLATED YET } namespace eval ::configDialogues::toolbar { eval ${::TOOLBAR_TRANSLATIONS} ##ID:000787## mcset $l "Toolbar configuration" \ "工具栏配置" ##ID:000788## mcset $l "Search for a string in ListBox" \ "在ListBox中查找" ##ID:000789## mcset $l "Clear" \ "清除" ##ID:000790## mcset $l "available items" \ "可用项" ##ID:000791## mcset $l "Current toolbar items" \ "当前工具栏项目" ##ID:000792## mcset $l "Defaults" \ "默认" ##ID:000793## mcset $l "Ok" \ "Ok" ;# <-- NOT TRANSLATED YET ##ID:000794## mcset $l "Apply" \ "应用" ##ID:000795## mcset $l "Cancel" \ "取消" ##ID:000796## mcset $l "Configure Main Toolbar - %s" \ "配置的主工具栏 - %s" ##ID:000797## mcset $l " -- SEPARATOR --" \ " -- SEPARATOR --" ;# <-- NOT TRANSLATED YET ##ID:000798## mcset $l "Restore defaults" \ "恢复默认设置" ##ID:000799## mcset $l "Are you sure that you want restore default settings ?" \ "您确定要恢复默认设置?" ##ID:000800## mcset $l "Save changes?" \ "是否保存更改?" ##ID:000801## mcset $l "The settings have been changed. Do you want to save the changes?" \ "设置已更改,您是否想保存?" } namespace eval ::configDialogues::custom_commands { ##ID:000802## mcset $l "Edit custom commands" \ "编辑自定义命令" ##ID:000803## mcset $l "Command %s" \ "命令 %s" ##ID:000804## mcset $l "Short description" \ "简单说明" ##ID:000805## mcset $l "This string will be used as status bar tip (max. 50 chars)" \ "这个说明将会显示在状态栏提示(最多50个字符)" ##ID:000806## mcset $l "Options" \ "选项" ##ID:000807## mcset $l "Confirmation dialog" \ "配置界面" ##ID:000808## mcset $l "Invoke dialog to confirm command execution." \ "调用命令执行的确认界面" ;# <-- UPDATE? ##ID:000809## mcset $l "Show results" \ "显示结果" ##ID:000810## mcset $l "After finish show dialog with results." \ "完成后结果的显示界面" ;# <-- UPDATE? ##ID:000811## mcset $l "Ignore errors" \ "忽略错误" ##ID:000812## mcset $l "Do not invoke error dialog if the process fails." \ "如果这个过程失败不调用错误界面" ;# <-- UPDATE? ##ID:004493## mcset $l "Run in terminal" \ "运行终端" ##ID:004494## mcset $l "Run interactively in terminal emulator." \ "Run interactively in terminal emulator." ;# <-- NOT TRANSLATED YET ##ID:000813## mcset $l "Bash script to execute" \ "使用Shell脚本执行" ;# <-- UPDATE? ##ID:000814## mcset $l "Show help" \ "显示帮助" ##ID:000815## mcset $l "Ok" \ "确定" ##ID:000816## mcset $l "Cancel" \ "取消" ##ID:000817## mcset $l "Edit custom commands - %s" \ "编辑自定义命令 - %s" ##ID:000818## mcset $l "-- click to close --" \ "-- 点击关闭 --" ##ID:000819## mcset $l "Custom command %s: %s" \ "自定义命令 %s: %s" ##ID:000820## mcset $l "VARIABLES:" \ "变量:" ##ID:000821## mcset $l "\t\tThe full URL of the current file\n" \ "\t\t当前文件的完整URL\n" ##ID:000822## mcset $l "\t\tList of the URLs of all open documents\n" \ "\t\t列出所有打开文档的URL\n" ##ID:000823## mcset $l "\t\tProject directory\n" \ "\t\t项目目录\n" ##ID:000824## mcset $l "\t\tThe file name of the current document\n" \ "\t\t当前文件的文件名\n" ##ID:000825## mcset $l "\t\tSame as %filename, but without extension\n" \ "\t\tSame as %filename, but without extension\n" ;# <-- NOT TRANSLATED YET ##ID:000826## mcset $l "\t\tName of project main file\n" \ "\t\tName of project main file\n" ;# <-- NOT TRANSLATED YET ##ID:000827## mcset $l "\t\tNumber of the current line\n" \ "\t\tNumber of the current line\n" ;# <-- NOT TRANSLATED YET ##ID:000828## mcset $l "\t\tNumber of the current column\n" \ "\t\tNumber of the current column\n" ;# <-- NOT TRANSLATED YET ##ID:000829## mcset $l "\t\tThe selected text in the current file\n" \ "\t\tThe selected text in the current file\n" ;# <-- NOT TRANSLATED YET ##ID:000830## mcset $l "\t\tThe full text of the current file\n" \ "\t\tThe full text of the current file\n" ;# <-- NOT TRANSLATED YET ##ID:000831## mcset $l "\t\tPercent sign\n\n" \ "\t\tPercent sign\n\n" ;# <-- NOT TRANSLATED YET # Keep string length here! Also percent signs should remain at the same positions. ##ID:000832## mcset $l {Variables %line, %column, %selection and %text} \ {Variables %line, %column, %selection and %text} ;# <-- NOT TRANSLATED YET ##ID:000833## mcset $l "\nare not available if external editor is used" \ "\nare not available if external editor is used" ;# <-- NOT TRANSLATED YET } namespace eval ::configDialogues::global { ##ID:000834## mcset $l "MCU 8051 IDE configuration" \ "配置单片机IDE" ##ID:000835## mcset $l "Display splash screen" \ "显示启动画面" ##ID:000836## mcset $l "Show splash screen on start-up" \ "启动时显示启动画面" ##ID:000837## mcset $l "Show tips on start-up" \ "启动时显示提示" ##ID:000838## mcset $l "Invoke dialog with tip of the day on start-up" \ "在启动时调用每日提示界面" ##ID:000839## mcset $l "Language" \ "语言" ##ID:000840## mcset $l "Your preferred language" \ "您首选的语言" ##ID:000841## mcset $l "Do not always ask whether to add file to the project after the file is opened" \ "该文件被打开后,不要老是问是否添加文件到项目里," ##ID:004479## mcset $l "Do not show performance warning when enabling external HW simulation." \ "Do not show performance warning when enabling external HW simulation." ;# <-- NOT TRANSLATED YET ##ID:000842## mcset $l "Reset to defaults" \ "重设为默认值" ##ID:000843## mcset $l "Reset all settings to defaults" \ "重设所有设置为默认值" ##ID:000844## mcset $l "Ok" \ "Ok" ;# <-- NOT TRANSLATED YET ##ID:000845## mcset $l "Commit new settings" \ "应用新的设置" ##ID:000846## mcset $l "Cancel" \ "取消" ##ID:000847## mcset $l "Take changes back and close dialog" \ "Take changes back and close dialog" ;# <-- NOT TRANSLATED YET ##ID:000848## mcset $l "Configure MCU 8051 IDE" \ "配置 MCU 8051 IDE" ##ID:000849## mcset $l "Unable to write to base configuration file" \ "无法写入相应的配置文件" ##ID:000850## mcset $l "Application language changed" \ "改变应用程序语言" ##ID:000851## mcset $l "Language for this application has been changed. The change will take effect upon next start of application" \ "此应用程序的语言已被修改,\n这一变化将在下次启动时生效" ##ID:000852## mcset $l "Widget style" \ "控件样式" ##ID:000853## mcset $l "Your preferred widget style" \ "您首选的控件风格" ##ID:000854## mcset $l "Background color" \ "背景颜色" ##ID:000855## mcset $l "Common background color for almost everything in the GUI" \ "几乎所有的图形用户界面的共同背景颜色" ##ID:000856## mcset $l "Global font size factor" \ "全局字体的大小" ##ID:000857## mcset $l "Allows you to adjust size of (almost) all fonts used in this IDE" \ "允许您调整(几乎)所有的IDE中使用的字体大小" ##ID:000858## mcset $l "Normal" \ "Normal" ;# <-- NOT TRANSLATED YET ##ID:000859## mcset $l "A little larger" \ "A little larger" ;# <-- NOT TRANSLATED YET ##ID:000860## mcset $l "Notably larger" \ "Notably larger" ;# <-- NOT TRANSLATED YET ##ID:000861## mcset $l "Much larger" \ "Much larger" ;# <-- NOT TRANSLATED YET ##ID:000862## mcset $l "Huge" \ "Huge" ;# <-- NOT TRANSLATED YET ##ID:000863## mcset $l "Too BIG" \ "Too BIG" ;# <-- NOT TRANSLATED YET } namespace eval ::configDialogues::terminal { ##ID:000864## mcset $l "Terminal configuration" \ "终端配置" ##ID:000865## mcset $l "Foreground color" \ "前景颜色" ##ID:000866## mcset $l "Background color" \ "背景颜色" ##ID:000867## mcset $l "Font size" \ "字体大小" ##ID:000868## mcset $l "Font family" \ "字体" ##ID:000869## mcset $l "Use settings and restart terminal emulator" \ "应用设置并重新启动终端仿真器" ##ID:000870## mcset $l "Reset to defaults" \ "重设为默认值" ##ID:000871## mcset $l "Reset all settings to defaults" \ "重设所有设置为默认值" ##ID:000872## mcset $l "Ok" \ "确定" ##ID:000873## mcset $l "Commit new settings" \ "应用新的设置" ##ID:000874## mcset $l "Cancel" \ "取消" ##ID:000875## mcset $l "Take changes back and close dialog" \ "应用更改并关闭窗口" ##ID:000876## mcset $l "Configure terminal emulator" \ "配置终端仿真器" ##ID:000877## mcset $l "Select foreground color" \ "选择前景颜色" ##ID:000878## mcset $l "Select background color" \ "选择背景颜色" ##ID:000879## mcset $l "Invalid value of key: '%s'" \ "无效关键值: '%s'" } namespace eval ::configDialogues::simulator { ##ID:000880## mcset $l "Simulator configuration" \ "配置模拟器" ##ID:000881## mcset $l "Warning dialogues" \ "警告界面" ##ID:000882## mcset $l "Other" \ "其他" ##ID:000883## mcset $l "Undefined values" \ "未定义的值" ##ID:000884## mcset $l "Return random value" \ "返回随机值" ##ID:000885## mcset $l "Return zero value" \ "返回零值" ##ID:000886## mcset $l "Return highest possible value" \ "返回最高值" ##ID:000887## mcset $l "Reverse run" \ "反向运行" ##ID:000888## mcset $l "Stack capacity" \ "堆栈的容量" ##ID:000889## mcset $l "Number of steps which can be taken back" \ "Number of steps which can be taken back" ;# <-- NOT TRANSLATED YET ##ID:004547## mcset $l "Colors" \ "Colors" ;# <-- NOT TRANSLATED YET ##ID:004548## mcset $l "ON color" \ "ON color" ;# <-- NOT TRANSLATED YET ##ID:004549## mcset $l "OFF color" \ "OFF color" ;# <-- NOT TRANSLATED YET ##ID:004550## mcset $l "Color to display a bit name for a bit set to log. 1" \ "Color to display a bit name for a bit set to log. 1" ;# <-- NOT TRANSLATED YET ##ID:004551## mcset $l "Color to display a bit name for a bit set to log. 0" \ "Color to display a bit name for a bit set to log. 0" ;# <-- NOT TRANSLATED YET ##ID:000890## mcset $l "Defaults" \ "默认" ##ID:000891## mcset $l "Reset settings to defaults" \ "重设所有设置为默认值" ##ID:000892## mcset $l "Ok" \ "确定" ; ##ID:000893## mcset $l "Cancel" \ "取消" ##ID:000894## mcset $l "Simulator configuration - %s" \ "配置模拟器 - %s" ##ID:000895## mcset $l "Are you sure ?" \ "您确定吗?" ##ID:000896## mcset $l "Are you sure you want to restore default settings" \ "您确定要恢复默认设置?" ##ID:000897## mcset $l "Ignore stack overflow" \ "忽略堆栈溢出" ##ID:000898## mcset $l "Ignore stack underflow" \ "忽略堆栈下溢" ##ID:000899## mcset $l "Ignore invalid instructions" \ "忽略无效指令" ##ID:000900## mcset $l "Ignore watchdog overflow" \ "忽略看门狗溢出" ##ID:000901## mcset $l "Ignore invalid return from interrupt" \ "忽略无效的中断返回" ##ID:000902## mcset $l "Ignore reading from write only register" \ "忽略读取只写寄存器" ##ID:000903## mcset $l "Ignore invalid access to IDATA/SFR" \ "忽略IDATA/SFR无效访问" ##ID:000904## mcset $l "Ignore invalid access to EDATA" \ "忽略EDATA无效访问" ##ID:000905## mcset $l "Ignore invalid access to XDATA" \ "忽略XDATA无效访问" ##ID:000906## mcset $l "Ignore invalid access to bit" \ "忽略bit无效访问" ##ID:000907## mcset $l "Ignore invalid access to CODE" \ "忽略CODE无效访问" ##ID:000908## mcset $l "Ignore EEPROM write failure" \ "忽略EEPROM写入失败" ##ID:000909## mcset $l "Ignore EEPROM write abort" \ "忽略EEPROM写入中止" ##ID:000910## mcset $l "Ignore UART frame discard" \ "忽略丢弃的UART帧" ##ID:000911## mcset $l "Ignore illegal UART mode change" \ "忽略非法转变UART模式" ##ID:000912## mcset $l "Ignore illegal Timer/Counter mode change" \ "忽略非法改变定时器/计数器模式" ##ID:000913## mcset $l "Do not complain about invalid breakpoints" \ "不要抱怨无效的断点" ##ID:000914## mcset $l "Check this to disable warning on stack overflow" \ "检查禁用堆栈溢出的警告" ##ID:000915## mcset $l "Check this to disable warning on stack underflow" \ "检查禁用堆栈下溢警告" ##ID:000916## mcset $l "Check this to disable warning on\ninvalid instruction" \ "检查禁用警告\n无效的指令" ##ID:000917## mcset $l "Do not stop simulation on device reset\ninvoked by watchdog timer overflow" \ "Do not stop simulation on device reset\ninvoked by watchdog timer overflow" ;# <-- NOT TRANSLATED YET ##ID:000918## mcset $l "Do not show warning dialog when program trying to return from interrupt which has not been invoked" \ "Do not show warning dialog when program trying to return from interrupt which has not been invoked" ;# <-- NOT TRANSLATED YET ##ID:000919## mcset $l "Do not display warning dialog when\nreading from write-only register" \ "Do not display warning dialog when\nreading from write-only register" ;# <-- NOT TRANSLATED YET ##ID:000920## mcset $l "Do not display dialog \"Undefined result\" when simulated program\naccessing unimplemented Internal Data Memory (IDATA) or SFR area" \ "Do not display dialog \"Undefined result\" when simulated program\naccessing unimplemented Internal Data Memory (IDATA) or SFR area" ;# <-- NOT TRANSLATED YET ##ID:000921## mcset $l "Do not display dialog \"Undefined result\" when simulated program\naccessing unimplemented Expanded Data Memory (EDATA)" \ "Do not display dialog \"Undefined result\" when simulated program\naccessing unimplemented Expanded Data Memory (EDATA)" ;# <-- NOT TRANSLATED YET ##ID:000922## mcset $l "Do not display dialog \"Undefined result\" when simulated program\naccessing unimplemented External Data Memory (XDATA)" \ "Do not display dialog \"Undefined result\" when simulated program\naccessing unimplemented External Data Memory (XDATA)" ;# <-- NOT TRANSLATED YET ##ID:000923## mcset $l "Do not display dialog \"Undefined result\" when simulated program\naccessing unimplemented bit in IDATA or SFR area" \ "Do not display dialog \"Undefined result\" when simulated program\naccessing unimplemented bit in IDATA or SFR area" ;# <-- NOT TRANSLATED YET ##ID:000924## mcset $l "Do not display dialog \"Undefined result\" when simulated program\naccessing unimplemented Program Memory (CODE)" \ "Do not display dialog \"Undefined result\" when simulated program\naccessing unimplemented Program Memory (CODE)" ;# <-- NOT TRANSLATED YET ##ID:000925## mcset $l "Check this to disable warning on\ndata eeprom write failure" \ "Check this to disable warning on\ndata eeprom write failure" ;# <-- NOT TRANSLATED YET ##ID:000926## mcset $l "Check this to disable warning on\ndata eeprom write abort" \ "Check this to disable warning on\ndata eeprom write abort" ;# <-- NOT TRANSLATED YET ##ID:000927## mcset $l "Check this to disable warning on UART frame discard" \ "Check this to disable warning on UART frame discard" ;# <-- NOT TRANSLATED YET ##ID:000928## mcset $l "Check this to disable warning on illegal UART mode change" \ "Check this to disable warning on illegal UART mode change" ;# <-- NOT TRANSLATED YET ##ID:000929## mcset $l "Check this to disable warning on illegal Timer/Counter mode change" \ "Check this to disable warning on illegal Timer/Counter mode change" ;# <-- NOT TRANSLATED YET ##ID:000930## mcset $l "Disable warning: \"warning: Invalid breakpoint\"" \ "禁用警告: \"警告: 无效的断点\"" } namespace eval ::configDialogues::shortcuts { # Strings in shortcuts configuration dialog ##ID:000931## mcset $l "Configure key shortcuts" \ "配置快捷键" ##ID:000932## mcset $l "available items" \ "现有项目" ##ID:000933## mcset $l "" \ "<没有选中>" ##ID:000934## mcset $l "Search:" \ "搜索:" ##ID:000935## mcset $l "Enter your search string here" \ "在这里输入您的搜索字" ##ID:000936## mcset $l "Clear" \ "清除" ##ID:000937## mcset $l "Current shortcut:" \ "当前的快捷方式:" ##ID:000938## mcset $l "Default:" \ "默认:" ##ID:000939## mcset $l "Restore default" \ "恢复默认" ##ID:000940## mcset $l "Accept" \ "应用" ##ID:000941## mcset $l "Accept new shortcut" \ "接受新的快捷方式" ##ID:000942## mcset $l "Original" \ "原始" ##ID:000943## mcset $l "Discard new shortcut" \ "放弃新的快捷方式" ##ID:000944## mcset $l "Defaults" \ "默认" ##ID:000945## mcset $l "Reset all settings to defaults" \ "重设所有设置为默认值" ##ID:000946## mcset $l "Ok" \ "Ok" ;# <-- NOT TRANSLATED YET ##ID:000947## mcset $l "Commit new settings" \ "应用新的设置" ##ID:000948## mcset $l "Take changes back and close dialog" \ "Take changes back and close dialog" ;# <-- NOT TRANSLATED YET ##ID:000949## mcset $l "Configure shortcuts - %s" \ "配置快捷键 - %s" ##ID:000950## mcset $l "Modifier required (Control or Alt)" \ "Modifier required (Control or Alt)" ;# <-- NOT TRANSLATED YET ##ID:000951## mcset $l "This combination is hard-coded in the main window, so it cannot be used" \ "This combination is hard-coded in the main window, so it cannot be used" ;# <-- NOT TRANSLATED YET ##ID:000952## mcset $l "This combination is hard-coded, so it cannot be used" \ "This combination is hard-coded, so it cannot be used" ;# <-- NOT TRANSLATED YET ##ID:000953## mcset $l "The '%s' key combination has already been assigned to \"%s\"." \ "The '%s' key combination has already been assigned to \"%s\"." ;# <-- NOT TRANSLATED YET ##ID:000954## mcset $l "Removing key combination for action \"%s\"" \ "Removing key combination for action \"%s\"" ;# <-- NOT TRANSLATED YET ##ID:000955## mcset $l "Item changed" \ "改变项目" ##ID:000956## mcset $l "The previous item was modified. Do you want to save it ?" \ "The previous item was modified. Do you want to save it ?" ;# <-- NOT TRANSLATED YET ##ID:000957## mcset $l "Confirmation required" \ "确认" ##ID:000958## mcset $l "This will discard all shortcut settings and replace them with defaults. Are you sure by that ?" \ "This will discard all shortcut settings and replace them with defaults. Are you sure by that ?" ;# <-- NOT TRANSLATED YET ## Shortcut names # Main ##ID:000959## mcset $l "Main" \ "Main" ;# <-- NOT TRANSLATED YET ##ID:000960## mcset $l "Exit program" \ "退出程序" ##ID:000961## mcset $l "Save session" \ "保存会话" ##ID:000962## mcset $l "File statistics" \ "档案统计" ##ID:000963## mcset $l "Toggle full screen mode" \ "切换到全屏模式" # Project management ##ID:000964## mcset $l "Project management" \ "项目管理" ##ID:000965## mcset $l "New project" \ "新项目" ##ID:000966## mcset $l "Open project" \ "打开项目" ##ID:000967## mcset $l "Save project" \ "保存项目" ##ID:000968## mcset $l "Edit project" \ "编辑项目" ##ID:000969## mcset $l "Save and close project" \ "保存并关闭项目" ##ID:000970## mcset $l "Close project" \ "关闭项目" # Simulator ##ID:000971## mcset $l "Simulator" \ "模拟器" ##ID:000972## mcset $l "Start simulator" \ "启动模拟器" ##ID:000973## mcset $l "Debug this file only" \ "只调试这个文件" ##ID:000974## mcset $l "Show SFR map" \ "显示SFR映射p" ##ID:000975## mcset $l "Bit addressable array" \ "Bit addressable array" ;# <-- NOT TRANSLATED YET ##ID:000976## mcset $l "Show Code memory" \ "显示代码的内存" ##ID:000977## mcset $l "Show XDATA memory" \ "显示XDATA内存" ##ID:000978## mcset $l "Show ERAM" \ "显示ERAM" ##ID:000979## mcset $l "Show Data EEPROM" \ "显示EEPROM数据" ##ID:000980## mcset $l "Show EEPROM write buffer" \ "显示EEPROM写显示缓冲区" ##ID:000981## mcset $l "Invoke MCU stack monitor" \ "调用单片机堆栈监视器" ##ID:000982## mcset $l "Reset - Only SFR" \ "复位 - Only SFR" ##ID:000983## mcset $l "Reset - All zeros" \ "复位 - All zeros" ##ID:000984## mcset $l "Reset - All ones" \ "复位 - All ones" ##ID:000985## mcset $l "Reset - Random" \ "复位 - Random" ##ID:000986## mcset $l "Simulator: Step" \ "Simulator: Step" ;# <-- NOT TRANSLATED YET ##ID:000987## mcset $l "Simulator: Step Back" \ "Simulator: Step Back" ;# <-- NOT TRANSLATED YET ##ID:000988## mcset $l "Simulator: Step over" \ "Simulator: Step over" ;# <-- NOT TRANSLATED YET ##ID:000989## mcset $l "Simulator: Animate" \ "Simulator: Animate" ;# <-- NOT TRANSLATED YET ##ID:000990## mcset $l "Simulator: Run" \ "Simulator: Run" ;# <-- NOT TRANSLATED YET ##ID:000991## mcset $l "Allow/Deny breakpoints" \ "允许/拒绝断点" ##ID:000992## mcset $l "Clear highlight" \ "清除高亮" ##ID:000993## mcset $l "Find cursor" \ "查找光标" ##ID:000994## mcset $l "Jump to line" \ "转跳到指定的行目" ##ID:000995## mcset $l "Simulator: Hibernate" \ "Simulator: Hibernate" ;# <-- NOT TRANSLATED YET ##ID:000996## mcset $l "Simulator: Resume" \ "Simulator: Resume" ;# <-- NOT TRANSLATED YET ##ID:000997## mcset $l "Interrupt monitor" \ "Interrupt monitor" ;# <-- NOT TRANSLATED YET ##ID:000998## mcset $l "Stopwatch" \ "秒表" # Virtual HW ##ID:000999## mcset $l "Virtual HW" \ "虚拟硬件" ##ID:001000## mcset $l "LED panel" \ "LED面板" ##ID:001001## mcset $l "LED display" \ "数码管" ##ID:001002## mcset $l "LED matrix" \ "矩阵LED" ##ID:001003## mcset $l "Multiplexed LED display" \ "复用数码管" ##ID:001004## mcset $l "Simple keypad" \ "简单按键" ##ID:001005## mcset $l "Matrix keypad" \ "矩阵按键" ##ID:001006## mcset $l "Open" \ "打开" ##ID:001007## mcset $l "Load" \ "加载" ##ID:001008## mcset $l "Save" \ "保存" ##ID:001009## mcset $l "Save as" \ "另存为" ##ID:001010## mcset $l "Remove all" \ "删除所有" # Tools ##ID:001011## mcset $l "Tools" \ "工具" ##ID:001012## mcset $l "Compile" \ "编译" ##ID:001013## mcset $l "Compile this file only" \ "只编译这个文件" ##ID:001014## mcset $l "Disassemble" \ "反汇编" ##ID:001015## mcset $l "Auto indent" \ "自动缩进" ##ID:001016## mcset $l "Change letter case" \ "变更字母大小写" ##ID:001017## mcset $l "Cleanup dialog" \ "清理界面" ##ID:001018## mcset $l "Export as XHTML" \ "导出为XHTML" ##ID:001019## mcset $l "Export as LaTeX" \ "导出为LaTeX" ##ID:001020## mcset $l "Document current function" \ "当前文件的函数" ##ID:001021## mcset $l "Run doxywizard" \ "运行doxywizard" ##ID:001022## mcset $l "Build C API documentation" \ "构建C API文档" ##ID:001023## mcset $l "Clear C API documentation" \ "清除C API文档" ##ID:001024## mcset $l "Custom command 0" \ "自定义命令0" ##ID:001025## mcset $l "Custom command 1" \ "自定义命令1" ##ID:001026## mcset $l "Custom command 2" \ "自定义命令2" # Utilities ##ID:001027## mcset $l "Utilities" \ "Utilities" ;# <-- NOT TRANSLATED YET ##ID:001028## mcset $l "Hex -> Bin" \ "Hex -> Bin" ;# <-- NOT TRANSLATED YET ##ID:001029## mcset $l "Bin -> Hex" \ "Bin -> Hex" ;# <-- NOT TRANSLATED YET ##ID:001030## mcset $l "Sim -> Hex" \ "Sim -> Hex" ;# <-- NOT TRANSLATED YET ##ID:001031## mcset $l "Sim -> Bin" \ "Sim -> Bin" ;# <-- NOT TRANSLATED YET ##ID:001032## mcset $l "Normalize IHEX8" \ "Normalize IHEX8" ;# <-- NOT TRANSLATED YET ##ID:001033## mcset $l "Hex Editor" \ "Hex Editor" ;# <-- NOT TRANSLATED YET ##ID:001034## mcset $l "Symbol table" \ "符号表" ##ID:001035## mcset $l "8-segment editor" \ "8段LED编辑器" ##ID:001036## mcset $l "ASCII chart" \ "ASCII表" ##ID:001037## mcset $l "Scribble notepad" \ "便利贴" ##ID:001038## mcset $l "Base Converter" \ "进制转换" ##ID:001039## mcset $l "UART/RS232 Debugger" \ "UART/RS232调试" ##ID:001040## mcset $l "Help" \ "帮助" ##ID:001041## mcset $l "About dialog" \ "关于界面" ##ID:001042## mcset $l "Welcome dialog" \ "欢迎界面" ##ID:001043## mcset $l "Tip of the day" \ "每日提示" # Messages text ##ID:001044## mcset $l "Messages text" \ "消息文本" ##ID:001045## mcset $l "Clear messages" \ "清除消息" ##ID:001046## mcset $l "Find" \ "查找" ##ID:001047## mcset $l "Find next" \ "查找下一个" ##ID:001048## mcset $l "Find previous" \ "查找上一个" # Notes ##ID:001049## mcset $l "Notes" \ "注释" ##ID:001050## mcset $l "Bold text" \ "粗体" ##ID:001051## mcset $l "Italic text" \ "斜体" ##ID:001052## mcset $l "Strikethrough text" \ "删除线文本" ##ID:001053## mcset $l "Underline text" \ "下划线文本" ##ID:001054## mcset $l "Erase tags" \ "擦除标记" ##ID:001055## mcset $l "Insert OK image" \ "已经插入图片" ##ID:001056## mcset $l "Register watches" \ "登记表" ##ID:001057## mcset $l "Move to top" \ "移动到顶部" ##ID:001058## mcset $l "Move up" \ "向上移动" ##ID:001059## mcset $l "Move down" \ "向下移动" ##ID:001060## mcset $l "Move to bottom" \ "移动到底部" ##ID:001061## mcset $l "Remove" \ "删除" # Editor ##ID:001062## mcset $l "Editor" \ "编辑" ##ID:001063## mcset $l "Read only mode" \ "只读模式" ##ID:001064## mcset $l "New" \ "新建" ##ID:001065## mcset $l "Save all" \ "保存全部" ##ID:001066## mcset $l "Close" \ "关闭" ##ID:001067## mcset $l "Close all" \ "关闭所有" ##ID:001068## mcset $l "Show/Hide icon border" \ "显示/隐藏图标栏" ##ID:001069## mcset $l "Show/Hide line numbers" \ "显示/隐藏行目" ##ID:001070## mcset $l "Reload" \ "刷新" ##ID:001071## mcset $l "Next editor" \ "下一个的编辑" ##ID:001072## mcset $l "Previous editor" \ "上一个的编辑" ##ID:001073## mcset $l "Breakpoint" \ "断点" ##ID:001074## mcset $l "Bookmark" \ "书签" ##ID:001075## mcset $l "Undo" \ "撤消" ##ID:001076## mcset $l "Redo" \ "取消撤销" ##ID:001077## mcset $l "Copy" \ "复制" ##ID:001078## mcset $l "Cut" \ "剪切" ##ID:001079## mcset $l "Paste" \ "粘帖" ##ID:001080## mcset $l "Select all" \ "选择所有" ##ID:001081## mcset $l "Replace" \ "替换" ##ID:001082## mcset $l "Go to line" \ "到达指定的行目" ##ID:001083## mcset $l "Comment" \ "注释" ##ID:001084## mcset $l "Uncomment" \ "取消注释" ##ID:001085## mcset $l "Indent" \ "缩进" ##ID:001086## mcset $l "Unindent" \ "取消缩进" ##ID:001087## mcset $l "Uppercase" \ "大写" ##ID:001088## mcset $l "Lowercase" \ "小写" ##ID:001089## mcset $l "Capitalize" \ "大写" ##ID:001090## mcset $l "Go to next bookmark" \ "转到下一页书签" ##ID:001091## mcset $l "Go to previous bookmark" \ "转到上一页书签" ##ID:001092## mcset $l "Program jump" \ "程序跳转" ##ID:001093## mcset $l "Call subprogram" \ "调用子程序" ##ID:001094## mcset $l "Editor command line" \ "编辑命令行" ##ID:001095## mcset $l "Split vertical" \ "垂直分割" ##ID:001096## mcset $l "Split horizontal" \ "水平分割" ##ID:001097## mcset $l "Close current view" \ "关闭当前视图" ##ID:001098## mcset $l "Block selection mode" \ "块选择模式" } # instructiondetails.tcl # ============================================================================== namespace eval InstructionDetails { ##ID:001099## mcset $l "Note:" \ "注" ##ID:001100## mcset $l "OPCODE:" \ "OPCODE:" ;# <-- NOT TRANSLATED YET ##ID:001101## mcset $l "Time:" \ "Time:" ;# <-- NOT TRANSLATED YET ##ID:001102## mcset $l "Length:" \ "Length:" ;# <-- NOT TRANSLATED YET ##ID:001103## mcset $l "Flags:" \ "Flags:" ;# <-- NOT TRANSLATED YET ##ID:001104## mcset $l "Class:" \ "Class:" ;# <-- NOT TRANSLATED YET ##ID:001105## mcset $l "no help available for this directive" \ "no help available for this directive" ;# <-- NOT TRANSLATED YET ##ID:001106## mcset $l "\tCarry flag\n" \ "\tCarry flag\n" ;# <-- NOT TRANSLATED YET ##ID:001107## mcset $l "\tIndirect address" \ "\tIndirect address" ;# <-- NOT TRANSLATED YET ##ID:001108## mcset $l "\tRegisters of active bank\n" \ "\tRegisters of active bank\n" ;# <-- NOT TRANSLATED YET ##ID:001109## mcset $l "\tAccumulator\n" \ "\tAccumulator\n" ;# <-- NOT TRANSLATED YET ##ID:001110## mcset $l "\tPrimary work register\n" \ "\tPrimary work register\n" ;# <-- NOT TRANSLATED YET ##ID:001111## mcset $l "\tData PoinTeR register (16 bit)\n" \ "\tData PoinTeR register (16 bit)\n" ;# <-- NOT TRANSLATED YET ##ID:001112## mcset $l "\tbit memory direct address\n" \ "\tbit memory direct address\n" ;# <-- NOT TRANSLATED YET ##ID:001113## mcset $l "\tinternal data memory or SFR direct address\n" \ "\tinternal data memory or SFR direct address\n" ;# <-- NOT TRANSLATED YET ##ID:001114## mcset $l "\t16 bit constant data\n" \ "\t16 bit constant data\n" ;# <-- NOT TRANSLATED YET ##ID:001115## mcset $l "\t8 bit constant data\n" \ "\t8 bit constant data\n" ;# <-- NOT TRANSLATED YET ##ID:001116## mcset $l "\t16 bit program memory address\n" \ "\t16 bit program memory address\n" ;# <-- NOT TRANSLATED YET ##ID:001117## mcset $l "\t11 bit program memory address\n" \ "\t11 bit program memory address\n" ;# <-- NOT TRANSLATED YET ##ID:001118## mcset $l "\t8 bit offset for relative jump\n" \ "\t8 bit offset for relative jump\n" ;# <-- NOT TRANSLATED YET ##ID:001119## mcset $l "bit" \ "bit" ;# <-- NOT TRANSLATED YET ##ID:001120## mcset $l "data" \ "data" ;# <-- NOT TRANSLATED YET ##ID:001121## mcset $l "imm16" \ "imm16" ;# <-- NOT TRANSLATED YET ##ID:001122## mcset $l "imm8" \ "imm8" ;# <-- NOT TRANSLATED YET ##ID:001123## mcset $l "code16" \ "code16" ;# <-- NOT TRANSLATED YET ##ID:001124## mcset $l "code11" \ "code11" ;# <-- NOT TRANSLATED YET ##ID:001125## mcset $l "code8" \ "code8" ;# <-- NOT TRANSLATED YET ##ID:001126## mcset $l "-- click to close --" \ "-- 点击关闭 --" ##ID:001127## mcset $l "Instruction operands" \ "Instruction operands" ;# <-- NOT TRANSLATED YET ##ID:001128## mcset $l "Instruction name" \ "Instruction name" ;# <-- NOT TRANSLATED YET ##ID:001129## mcset $l "Show legend" \ "Show legend" ;# <-- NOT TRANSLATED YET ##ID:001130## mcset $l "Conditional assembly\n\nSyntax:\n ELSEIF \n\nExample:\n IF(2 * 4 - CND)\n MOV A, #20h\n ELSEIF SOMETHING_ELSE\n MOV A, #40h\n ENDIF\n\n" \ "Conditional assembly\n\nSyntax:\n ELSEIF \n\nExample:\n IF(2 * 4 - CND)\n MOV A, #20h\n ELSEIF SOMETHING_ELSE\n MOV A, #40h\n ENDIF\n\n" ;# <-- NOT TRANSLATED YET ##ID:001131## mcset $l "IF Not, conditional assembly\n\nSyntax:\n IFN \n\nExample:\n IF(2 * 4 - CND)\n MOV A, #20h\n ELSE\n MOV A, #40h\n ENDIF\n\n" \ "IF Not, conditional assembly\n\nSyntax:\n IFN \n\nExample:\n IF(2 * 4 - CND)\n MOV A, #20h\n ELSE\n MOV A, #40h\n ENDIF\n\n" ;# <-- NOT TRANSLATED YET ##ID:001132## mcset $l "ELSE IF Not\n\nSyntax:\n ELSEIFN \n\nExample:\n IF(2 * 4 - CND)\n MOV A, #20h\n ELSEIFN SOMETHING_ELSE\n MOV A, #40h\n ENDIF\n\n" \ "ELSE IF Not\n\nSyntax:\n ELSEIFN \n\nExample:\n IF(2 * 4 - CND)\n MOV A, #20h\n ELSEIFN SOMETHING_ELSE\n MOV A, #40h\n ENDIF\n\n" ;# <-- NOT TRANSLATED YET ##ID:001133## mcset $l "IF DEFined\n\nSyntax:\n IFDEF \n\nExample:\n IFDEF CND\n MOV A, #20h\n ELSE\n MOV A, #40h\n ENDIF\n\n" \ "IF DEFined\n\nSyntax:\n IFDEF \n\nExample:\n IFDEF CND\n MOV A, #20h\n ELSE\n MOV A, #40h\n ENDIF\n\n" ;# <-- NOT TRANSLATED YET ##ID:001134## mcset $l "ELSE IF DEFined\n\nSyntax:\n ELSEIFDEF \n\nExample:\n IFDEF(2 * 4 - CND)\n MOV A, #20h\n ELSEIFDEF SOMETHING_ELSE\n MOV A, #40h\n ENDIF\n\n" \ "ELSE IF DEFined\n\nSyntax:\n ELSEIFDEF \n\nExample:\n IFDEF(2 * 4 - CND)\n MOV A, #20h\n ELSEIFDEF SOMETHING_ELSE\n MOV A, #40h\n ENDIF\n\n" ;# <-- NOT TRANSLATED YET ##ID:001135## mcset $l "IF Not DEFined\n\nSyntax:\n IFNDEF \n\nExample:\n IFNDEF CND\n MOV A, #20h\n ELSE\n MOV A, #40h\n ENDIF\n\n" \ "IF Not DEFined\n\nSyntax:\n IFNDEF \n\nExample:\n IFNDEF CND\n MOV A, #20h\n ELSE\n MOV A, #40h\n ENDIF\n\n" ;# <-- NOT TRANSLATED YET ##ID:001136## mcset $l "ELSE IF Not DEFined\n\nSyntax:\n ELSEIFNDEF \n\nExample:\n IFDEF CND\n MOV A, #20h\n ELSEIFNDEF SOMETHING_ELSE\n MOV A, #40h\n ENDIF\n\n" \ "ELSE IF Not DEFined\n\nSyntax:\n ELSEIFNDEF \n\nExample:\n IFDEF CND\n MOV A, #20h\n ELSEIFNDEF SOMETHING_ELSE\n MOV A, #40h\n ENDIF\n\n" ;# <-- NOT TRANSLATED YET ##ID:001137## mcset $l "IF Black\n\nSyntax:\n IFB \n\nExample:\n IFB \n MOV A, #20h\n ELSE\n MOV A, #40h\n ENDIF\n\nNote:\n Supported by ASEM-51 only" \ "IF Black\n\nSyntax:\n IFB \n\nExample:\n IFB \n MOV A, #20h\n ELSE\n MOV A, #40h\n ENDIF\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001138## mcset $l "ELSE IF Black\n\nSyntax:\n ELSEIFB \n\nExample:\n IFB \n MOV A, #20h\n ELSEIFB \n MOV A, #40h\n ENDIF\n\literal:\n Supported by ASEM-51 only" \ "ELSE IF Black\n\nSyntax:\n ELSEIFB \n\nExample:\n IFB \n MOV A, #20h\n ELSEIFB \n MOV A, #40h\n ENDIF\n\literal:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001139## mcset $l "IF Not Black\n\nSyntax:\n IFNB \n\nExample:\n IFNB \n MOV A, #20h\n ELSE\n MOV A, #40h\n ENDIF\n\nNote:\n Supported by ASEM-51 only" \ "IF Not Black\n\nSyntax:\n IFNB \n\nExample:\n IFNB \n MOV A, #20h\n ELSE\n MOV A, #40h\n ENDIF\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001140## mcset $l "ELSE IF Not Black\n\nSyntax:\n ELSEIFNB \n\nExample:\n IFB \n MOV A, #20h\n ELSEIFNB \n MOV A, #40h\n ENDIF\n\nNote:\n Supported by ASEM-51 only" \ "ELSE IF Not Black\n\nSyntax:\n ELSEIFNB \n\nExample:\n IFB \n MOV A, #20h\n ELSEIFNB \n MOV A, #40h\n ENDIF\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001141## mcset $l "REPeaT Macro\n\nSyntax:\n REPT \n\nExample:\n REPT 5\n NOP\n ENDM\n\n" \ "REPeaT Macro\n\nSyntax:\n REPT \n\nExample:\n REPT 5\n NOP\n ENDM\n\n" ;# <-- NOT TRANSLATED YET ##ID:001142## mcset $l "REPeaT Macro\n\nSyntax:\n TIMES \n\nExample:\n TIMES 5\n NOP\n ENDM\n\nNote:\n Supported by native assembler only" \ "REPeaT Macro\n\nSyntax:\n TIMES \n\nExample:\n TIMES 5\n NOP\n ENDM\n\nNote:\n Supported by native assembler only" ;# <-- NOT TRANSLATED YET ##ID:001143## mcset $l "define module NAME\n\nSyntax:\n NAME \n\nExample:\n NAME my_2nd_program\n\nNote:\n Supported by ASEM-51 only" \ "define module NAME\n\nSyntax:\n NAME \n\nExample:\n NAME my_2nd_program\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001144## mcset $l "Conditional assembly\n\nSyntax:\n IF \n\nExample:\n IF(2 * 4 - CND)\n MOV A, #20h\n ELSE\n MOV A, #40h\n ENDIF\n\n" \ "Conditional assembly\n\nSyntax:\n IF \n\nExample:\n IF(2 * 4 - CND)\n MOV A, #20h\n ELSE\n MOV A, #40h\n ENDIF\n\n" ;# <-- NOT TRANSLATED YET ##ID:001145## mcset $l "Conditional assembly\n\nSyntax:\n ELSE\n\nExample:\n IF(2 * 4 - CND)\n MOV A, #20h\n ELSE\n MOV A, #40h\n ENDIF\n\n" \ "Conditional assembly\n\nSyntax:\n ELSE\n\nExample:\n IF(2 * 4 - CND)\n MOV A, #20h\n ELSE\n MOV A, #40h\n ENDIF\n\n" ;# <-- NOT TRANSLATED YET ##ID:001146## mcset $l "Conditional assembly\n\nSyntax:\n ENDIF\n\nExample:\n IF(2 * 4 - CND)\n MOV A, #20h\n ELSE\n MOV A, #40h\n ENDIF\n\n" \ "Conditional assembly\n\nSyntax:\n ENDIF\n\nExample:\n IF(2 * 4 - CND)\n MOV A, #20h\n ELSE\n MOV A, #40h\n ENDIF\n\n" ;# <-- NOT TRANSLATED YET ##ID:001147## mcset $l "END of Macro definition\n\nSyntax:\n ENDM\n\nExample:\n ABC MACRO\n MOV B, #12d\n ENDM\n\n" \ "END of Macro definition\n\nSyntax:\n ENDM\n\nExample:\n ABC MACRO\n MOV B, #12d\n ENDM\n\n" ;# <-- NOT TRANSLATED YET ##ID:001148## mcset $l "END of the program\n\nSyntax:\n END\n\nExample:\n END\n\n" \ "END of the program\n\nSyntax:\n END\n\nExample:\n END\n\n" ;# <-- NOT TRANSLATED YET ##ID:001149## mcset $l "premature end of macro expansion\n\nSyntax:\n EXITM\n\nExample:\n ABC MACRO\n MOV B, #12d\n EXITM\n NOP\n ENDM\n\n" \ "premature end of macro expansion\n\nSyntax:\n EXITM\n\nExample:\n ABC MACRO\n MOV B, #12d\n EXITM\n NOP\n ENDM\n\n" ;# <-- NOT TRANSLATED YET ##ID:001150## mcset $l "enable code LISTing\n\nSyntax:\n LIST\n\nExample:\n NOP\n NOLIST\n NOP\n NOP\n LIST\n NOP\n\n" \ "enable code LISTing\n\nSyntax:\n LIST\n\nExample:\n NOP\n NOLIST\n NOP\n NOP\n LIST\n NOP\n\n" ;# <-- NOT TRANSLATED YET ##ID:001151## mcset $l "disabled code listing\n\nSyntax:\n NOLIST\n\nExample:\n NOP\n NOLIST\n NOP\n NOP\n LIST\n NOP\n\n" \ "disabled code listing\n\nSyntax:\n NOLIST\n\nExample:\n NOP\n NOLIST\n NOP\n NOP\n LIST\n NOP\n\n" ;# <-- NOT TRANSLATED YET ##ID:001152## mcset $l "switch to DATA segment \[at address\]\n\nSyntax:\n DSEG \[AT \]\n\nExample:\n DSEG at 20d\n\n" \ "switch to DATA segment \[at address\]\n\nSyntax:\n DSEG \[AT \]\n\nExample:\n DSEG at 20d\n\n" ;# <-- NOT TRANSLATED YET ##ID:001153## mcset $l "switch to IDATA segment \[at address\]\n\nSyntax:\n ISEG \[AT \]\n\nExample:\n ISEG at 10d\n\n" \ "switch to IDATA segment \[at address\]\n\nSyntax:\n ISEG \[AT \]\n\nExample:\n ISEG at 10d\n\n" ;# <-- NOT TRANSLATED YET ##ID:001154## mcset $l "switch to BIT segment \[at address\]\n\nSyntax:\n BSEG \[AT \]\n\nExample:\n BSEG at 5d\n\n" \ "switch to BIT segment \[at address\]\n\nSyntax:\n BSEG \[AT \]\n\nExample:\n BSEG at 5d\n\n" ;# <-- NOT TRANSLATED YET ##ID:001155## mcset $l "switch to XDATA segment \[at address\]\n\nSyntax:\n XSEG \[AT \]\n\nExample:\n XSEG at 30d\n\n" \ "switch to XDATA segment \[at address\]\n\nSyntax:\n XSEG \[AT \]\n\nExample:\n XSEG at 30d\n\n" ;# <-- NOT TRANSLATED YET ##ID:001156## mcset $l "switch to CODE segment \[at address\]\n\nSyntax:\n CSEG \[AT \]\n\nExample:\n CSEG at 40d\n\n" \ "switch to CODE segment \[at address\]\n\nSyntax:\n CSEG \[AT \]\n\nExample:\n CSEG at 40d\n\n" ;# <-- NOT TRANSLATED YET ##ID:001157## mcset $l "define a FLAG bit\n\nSyntax:\n FLAG \n\nExample:\n F4 FLAG 16h\n\nNote:\n Deprecated directive. Consider directive BIT instead." \ "define a FLAG bit\n\nSyntax:\n FLAG \n\nExample:\n F4 FLAG 16h\n\nNote:\n Deprecated directive. Consider directive BIT instead." ;# <-- NOT TRANSLATED YET ##ID:001158## mcset $l "SKIP bytes in the code memory\n\nSyntax:\n SKIP \n\nExample:\n SKIP 5\n\n" \ "SKIP bytes in the code memory\n\nSyntax:\n SKIP \n\nExample:\n SKIP 5\n\n" ;# <-- NOT TRANSLATED YET ##ID:001159## mcset $l "EQUivalent\n\nSyntax:\n EQU \n\nExample:\n ABC EQU R0\n XYZ EQU 4Eh+12\n\n" \ "EQUivalent\n\nSyntax:\n EQU \n\nExample:\n ABC EQU R0\n XYZ EQU 4Eh+12\n\n" ;# <-- NOT TRANSLATED YET ##ID:001160## mcset $l "define BIT address\n\nSyntax:\n BIT \n\nExample:\n ABC BIT P4.5\n\n" \ "define BIT address\n\nSyntax:\n BIT \n\nExample:\n ABC BIT P4.5\n\n" ;# <-- NOT TRANSLATED YET ##ID:001161## mcset $l "SET numeric variable or variable register\n\nSyntax:\n SET \n SET \n\nExample:\n ALPHA SET R0\n ALPHA SET 42*BETA\n\n" \ "SET numeric variable or variable register\n\nSyntax:\n SET \n SET \n\nExample:\n ALPHA SET R0\n ALPHA SET 42*BETA\n\n" ;# <-- NOT TRANSLATED YET ##ID:001162## mcset $l "define address in the CODE memory\n\nSyntax:\n CODE \n\nExample:\n TBL CODE 600h\n\n" \ "define address in the CODE memory\n\nSyntax:\n CODE \n\nExample:\n TBL CODE 600h\n\n" ;# <-- NOT TRANSLATED YET ##ID:001163## mcset $l "define address in the DATA memory\n\nSyntax:\n DATA \n\nExample:\n UIV DATA 20h\n\n" \ "define address in the DATA memory\n\nSyntax:\n DATA \n\nExample:\n UIV DATA 20h\n\n" ;# <-- NOT TRANSLATED YET ##ID:001164## mcset $l "define address in the Internal DATA memory\n\nSyntax:\n IDATA \n\nExample:\n UIV IDATA 20h\n\n" \ "define address in the Internal DATA memory\n\nSyntax:\n IDATA \n\nExample:\n UIV IDATA 20h\n\n" ;# <-- NOT TRANSLATED YET ##ID:001165## mcset $l "define address in the External DATA memory\n\nSyntax:\n XDATA \n\nExample:\n UIV XDATA 400h\n\n" \ "define address in the External DATA memory\n\nSyntax:\n XDATA \n\nExample:\n UIV XDATA 400h\n\n" ;# <-- NOT TRANSLATED YET ##ID:001166## mcset $l "MACRO definition\n\nSyntax:\n MACRO \[ \[, ... \]\n\n\nExample:\n ABC MACRO X\n MOV X, #12d\n ENDM\n\n" \ "MACRO definition\n\nSyntax:\n MACRO \[ \[, ... \]\n\n\nExample:\n ABC MACRO X\n MOV X, #12d\n ENDM\n\n" ;# <-- NOT TRANSLATED YET ##ID:001167## mcset $l "Define Space\n\nSyntax:\n DS \n\nExample:\n DS 2+4\n\n" \ "Define Space\n\nSyntax:\n DS \n\nExample:\n DS 2+4\n\n" ;# <-- NOT TRANSLATED YET ##ID:001168## mcset $l "Define Words\n\nSyntax:\n DW \[, ... \]\n\nExample:\n DW 0,02009H,2009,4171\n\n" \ "Define Words\n\nSyntax:\n DW \[, ... \]\n\nExample:\n DW 0,02009H,2009,4171\n\n" ;# <-- NOT TRANSLATED YET ##ID:001169## mcset $l "Define Bytes\n\nSyntax:\n DB \[, ... \]\n\nExample:\n DB 24,'August',09,(2*8+24)/8\n\n" \ "Define Bytes\n\nSyntax:\n DB \[, ... \]\n\nExample:\n DB 24,'August',09,(2*8+24)/8\n\n" ;# <-- NOT TRANSLATED YET ##ID:001170## mcset $l "Define BITs\n\nSyntax:\n DBIT \n\nExample:\n DBIT 4+2\n\n" \ "Define BITs\n\nSyntax:\n DBIT \n\nExample:\n DBIT 4+2\n\n" ;# <-- NOT TRANSLATED YET ##ID:001171## mcset $l "INCLUDE an external source code\n\nSyntax:\n INCLUDE \n\nExample:\n INCLUDE 'my file.asm'\n\n" \ "INCLUDE an external source code\n\nSyntax:\n INCLUDE \n\nExample:\n INCLUDE 'my file.asm'\n\n" ;# <-- NOT TRANSLATED YET ##ID:001172## mcset $l "ORiGin of code segment location\n\nSyntax:\n ORG \n\nExample:\n ORG 0Bh\n\n" \ "ORiGin of code segment location\n\nSyntax:\n ORG \n\nExample:\n ORG 0Bh\n\n" ;# <-- NOT TRANSLATED YET ##ID:001173## mcset $l "USING register banks\n\nSyntax:\n USING \n\nExample:\n USING 2\n\n" \ "USING register banks\n\nSyntax:\n USING \n\nExample:\n USING 2\n\n" ;# <-- NOT TRANSLATED YET ##ID:001174## mcset $l "define BYTE address in the data memory\n\nSyntax:\n BYTE \n\nExample:\n UIV BYTE 20h\n\nNote:\n Deprecated directive. Consider directive DATA instead." \ "define BYTE address in the data memory\n\nSyntax:\n BYTE \n\nExample:\n UIV BYTE 20h\n\nNote:\n Deprecated directive. Consider directive DATA instead." ;# <-- NOT TRANSLATED YET ##ID:001175## mcset $l "List full IFxx .. ENDIF\n\nSyntax:\n \$COND\n\nExample:\n \$COND\n\nNote:\n Supported by ASEM-51 only" \ "List full IFxx .. ENDIF\n\nSyntax:\n \$COND\n\nExample:\n \$COND\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001176## mcset $l "Don't list lines in false branches\n\nSyntax:\n \$NOCOND\n\nExample:\n \$NOCOND\n\nNote:\n Supported by ASEM-51 only" \ "Don't list lines in false branches\n\nSyntax:\n \$NOCOND\n\nExample:\n \$NOCOND\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001177## mcset $l "List assembled lines only\n\nSyntax:\n \$CONDONLY\n\nExample:\n \$CONDONLY\n\nNote:\n Supported by ASEM-51 only" \ "List assembled lines only\n\nSyntax:\n \$CONDONLY\n\nExample:\n \$CONDONLY\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001178## mcset $l "Inserts date string into page header\n\nSyntax:\n \$DATE(string)\n\nExample:\n \$DATE(1965-12-31)\n\n" \ "Inserts date string into page header\n\nSyntax:\n \$DATE(string)\n\nExample:\n \$DATE(1965-12-31)\n\n" ;# <-- NOT TRANSLATED YET ##ID:001179## mcset $l "Include debug information\n\nSyntax:\n \$DEBUG\n\nExample:\n \$DEBUG\n\nNote:\n Supported by ASEM-51 only" \ "Include debug information\n\nSyntax:\n \$DEBUG\n\nExample:\n \$DEBUG\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001180## mcset $l "Include debug information\n\nSyntax:\n \$DB\n\nExample:\n \$DB\n\nNote:\n Supported by ASEM-51 only" \ "Include debug information\n\nSyntax:\n \$DB\n\nExample:\n \$DB\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001181## mcset $l "Don't include debug information\n\nSyntax:\n \$NODEBUG\n\nExample:\n \$NODEBUG\n\nNote:\n Supported by ASEM-51 only" \ "Don't include debug information\n\nSyntax:\n \$NODEBUG\n\nExample:\n \$NODEBUG\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001182## mcset $l "Don't include debug information\n\nSyntax:\n \$NODB\n\nExample:\n \$NODB\n\nNote:\n Supported by ASEM-51 only" \ "Don't include debug information\n\nSyntax:\n \$NODB\n\nExample:\n \$NODB\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001183## mcset $l "Start a new page in list file\n\nSyntax:\n \$EJECT\n\nExample:\n \$EJECT\n\n" \ "Start a new page in list file\n\nSyntax:\n \$EJECT\n\nExample:\n \$EJECT\n\n" ;# <-- NOT TRANSLATED YET ##ID:001184## mcset $l "Start a new page in list file\n\nSyntax:\n \$EJ\n\nExample:\n \$EJ\n\n" \ "Start a new page in list file\n\nSyntax:\n \$EJ\n\nExample:\n \$EJ\n\n" ;# <-- NOT TRANSLATED YET ##ID:001185## mcset $l "Force a user-defined error\n\nSyntax:\n \$ERROR(string)\n\nExample:\n \$ERROR(Impossible combination ...)\n\nNote:\n Supported by ASEM-51 only" \ "Force a user-defined error\n\nSyntax:\n \$ERROR(string)\n\nExample:\n \$ERROR(Impossible combination ...)\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001186## mcset $l "Force a user-defined warning\n\nSyntax:\n \$WARNING(string)\n\nExample:\n \$WARNING(Testing only !)\n\nNote:\n Supported by ASEM-51 only" \ "Force a user-defined warning\n\nSyntax:\n \$WARNING(string)\n\nExample:\n \$WARNING(Testing only !)\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001187## mcset $l "List macro calls and expansion lines\n\nSyntax:\n \$GE\n\nExample:\n \$GE\n\nNote:\n Supported by ASEM-51 only" \ "List macro calls and expansion lines\n\nSyntax:\n \$GE\n\nExample:\n \$GE\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001188## mcset $l "List macro calls and expansion lines\n\nSyntax:\n \$GEN\n\nExample:\n \$GEN\n\nNote:\n Supported by ASEM-51 only" \ "List macro calls and expansion lines\n\nSyntax:\n \$GEN\n\nExample:\n \$GEN\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001189## mcset $l "List macro calls only\n\nSyntax:\n \$NOGE\n\nExample:\n \$NOGE\n\nNote:\n Supported by ASEM-51 only" \ "List macro calls only\n\nSyntax:\n \$NOGE\n\nExample:\n \$NOGE\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001190## mcset $l "List macro calls only\n\nSyntax:\n \$NOGEN\n\nExample:\n \$NOGEN\n\nNote:\n Supported by ASEM-51 only" \ "List macro calls only\n\nSyntax:\n \$NOGEN\n\nExample:\n \$NOGEN\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001191## mcset $l "List expansion lines only\n\nSyntax:\n \$GO\n\nExample:\n \$GO\n\nNote:\n Supported by ASEM-51 only" \ "List expansion lines only\n\nSyntax:\n \$GO\n\nExample:\n \$GO\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001192## mcset $l "List expansion lines only\n\nSyntax:\n \$GENONLY\n\nExample:\n \$GENONLY\n\nNote:\n Supported by ASEM-51 only" \ "List expansion lines only\n\nSyntax:\n \$GENONLY\n\nExample:\n \$GENONLY\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001193## mcset $l "Include a source file\n\nSyntax:\n \$INCLUDE(string)\n\nExample:\n \$INCLUDE(somefile.asm)\n\n" \ "Include a source file\n\nSyntax:\n \$INCLUDE(string)\n\nExample:\n \$INCLUDE(somefile.asm)\n\n" ;# <-- NOT TRANSLATED YET ##ID:001194## mcset $l "Include a source file\n\nSyntax:\n \$INC(string)\n\nExample:\n \$INC(somefile.asm)\n\n" \ "Include a source file\n\nSyntax:\n \$INC(string)\n\nExample:\n \$INC(somefile.asm)\n\n" ;# <-- NOT TRANSLATED YET ##ID:001195## mcset $l "List subsequent source lines\n\nSyntax:\n \$LIST\n\nExample:\n \$LIST\n\n" \ "List subsequent source lines\n\nSyntax:\n \$LIST\n\nExample:\n \$LIST\n\n" ;# <-- NOT TRANSLATED YET ##ID:001196## mcset $l "List subsequent source lines\n\nSyntax:\n \$LI\n\nExample:\n \$LI\n\n" \ "List subsequent source lines\n\nSyntax:\n \$LI\n\nExample:\n \$LI\n\n" ;# <-- NOT TRANSLATED YET ##ID:001197## mcset $l "Don't list subsequent source lines\n\nSyntax:\n \$NOLI\n\nExample:\n \$NOLI\n\n" \ "Don't list subsequent source lines\n\nSyntax:\n \$NOLI\n\nExample:\n \$NOLI\n\n" ;# <-- NOT TRANSLATED YET ##ID:001198## mcset $l "Don't list subsequent source lines\n\nSyntax:\n \$NOLIST\n\nExample:\n \$NOLIST\n\n" \ "Don't list subsequent source lines\n\nSyntax:\n \$NOLIST\n\nExample:\n \$NOLIST\n\n" ;# <-- NOT TRANSLATED YET ##ID:001199## mcset $l "Reserve n % of free memory for macros\n\nSyntax:\n \$MACRO(int)\n\nExample:\n \$MACRO(50)\n\nNote:\n Supported by ASEM-51 only" \ "Reserve n % of free memory for macros\n\nSyntax:\n \$MACRO(int)\n\nExample:\n \$MACRO(50)\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001200## mcset $l "Reserve n % of free memory for macros\n\nSyntax:\n \$MR(int)\n\nExample:\n \$MR(50)\n\nNote:\n Supported by ASEM-51 only" \ "Reserve n % of free memory for macros\n\nSyntax:\n \$MR(int)\n\nExample:\n \$MR(50)\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001201## mcset $l "Reserve all for the symbol table\n\nSyntax:\n \$NOMR\n\nExample:\n \$NOMR\n\nNote:\n Supported by ASEM-51 only" \ "Reserve all for the symbol table\n\nSyntax:\n \$NOMR\n\nExample:\n \$NOMR\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001202## mcset $l "Reserve all for the symbol table\n\nSyntax:\n \$NOMACRO\n\nExample:\n \$NOMACRO\n\nNote:\n Supported by ASEM-51 only" \ "Reserve all for the symbol table\n\nSyntax:\n \$NOMACRO\n\nExample:\n \$NOMACRO\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001203## mcset $l "Enable predefined SFR symbols\n\nSyntax:\n \$MOD51\n\nExample:\n \$MOD51\n\nNote:\n Supported by ASEM-51 only" \ "Enable predefined SFR symbols\n\nSyntax:\n \$MOD51\n\nExample:\n \$MOD51\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001204## mcset $l "Enable predefined SFR symbols\n\nSyntax:\n \$MO\n\nExample:\n \$MO\n\nNote:\n Supported by ASEM-51 only" \ "Enable predefined SFR symbols\n\nSyntax:\n \$MO\n\nExample:\n \$MO\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001205## mcset $l "Disable predefined SFR symbols\n\nSyntax:\n \$NOMOD\n\nExample:\n \$NOMOD\n\n" \ "Disable predefined SFR symbols\n\nSyntax:\n \$NOMOD\n\nExample:\n \$NOMOD\n\n" ;# <-- NOT TRANSLATED YET ##ID:001206## mcset $l "Disable predefined SFR symbols\n\nSyntax:\n \$NOMO\n\nExample:\n \$NOMO\n\n" \ "Disable predefined SFR symbols\n\nSyntax:\n \$NOMO\n\nExample:\n \$NOMO\n\n" ;# <-- NOT TRANSLATED YET ##ID:001207## mcset $l "Disable predefined SFR symbols\n\nSyntax:\n \$NOMOD51\n\nExample:\n \$NOMOD51\n\n" \ "Disable predefined SFR symbols\n\nSyntax:\n \$NOMOD51\n\nExample:\n \$NOMOD51\n\n" ;# <-- NOT TRANSLATED YET ##ID:001208## mcset $l "Don't list predefined symbols\n\nSyntax:\n \$NOBUILTIN\n\nExample:\n \$NOBUILTIN\n\nNote:\n Supported by ASEM-51 only" \ "Don't list predefined symbols\n\nSyntax:\n \$NOBUILTIN\n\nExample:\n \$NOBUILTIN\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001209## mcset $l "Don't use tabs in list file\n\nSyntax:\n \$NOTABS\n\nExample:\n \$NOTABS\n\nNote:\n Supported by ASEM-51 only" \ "Don't use tabs in list file\n\nSyntax:\n \$NOTABS\n\nExample:\n \$NOTABS\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001210## mcset $l "Enable listing page formatting\n\nSyntax:\n \$LIST\n\nExample:\n \$PAGING\n\n" \ "Enable listing page formatting\n\nSyntax:\n \$LIST\n\nExample:\n \$PAGING\n\n" ;# <-- NOT TRANSLATED YET ##ID:001211## mcset $l "Enable listing page formatting\n\nSyntax:\n \$PI\n\nExample:\n \$PI\n\n" \ "Enable listing page formatting\n\nSyntax:\n \$PI\n\nExample:\n \$PI\n\n" ;# <-- NOT TRANSLATED YET ##ID:001212## mcset $l "Disable listing page formatting\n\nSyntax:\n \$NOPI\n\nExample:\n \$NOPI\n\n" \ "Disable listing page formatting\n\nSyntax:\n \$NOPI\n\nExample:\n \$NOPI\n\n" ;# <-- NOT TRANSLATED YET ##ID:001213## mcset $l "Disable listing page formatting\n\nSyntax:\n \$NOPAGING\n\nExample:\n \$NOPAGING\n\n" \ "Disable listing page formatting\n\nSyntax:\n \$NOPAGING\n\nExample:\n \$NOPAGING\n\n" ;# <-- NOT TRANSLATED YET ##ID:001214## mcset $l "Set lines per page for listing\n\nSyntax:\n \$PAGELENGTH(int)\n\nExample:\n \$PAGELENGTH(64)\n\n" \ "Set lines per page for listing\n\nSyntax:\n \$PAGELENGTH(int)\n\nExample:\n \$PAGELENGTH(64)\n\n" ;# <-- NOT TRANSLATED YET ##ID:001215## mcset $l "Set lines per page for listing\n\nSyntax:\n \$PL(int)\n\nExample:\n \$PL(64)\n\n" \ "Set lines per page for listing\n\nSyntax:\n \$PL(int)\n\nExample:\n \$PL(64)\n\n" ;# <-- NOT TRANSLATED YET ##ID:001216## mcset $l "Set columns per line for listing\n\nSyntax:\n \$PAGEWIDTH(int)\n\nExample:\n \$PAGEWIDTH(132)\n\n" \ "Set columns per line for listing\n\nSyntax:\n \$PAGEWIDTH(int)\n\nExample:\n \$PAGEWIDTH(132)\n\n" ;# <-- NOT TRANSLATED YET ##ID:001217## mcset $l "Set columns per line for listing\n\nSyntax:\n \$PW(int)\n\nExample:\n \$PW(132)\n\n" \ "Set columns per line for listing\n\nSyntax:\n \$PW(int)\n\nExample:\n \$PW(132)\n\n" ;# <-- NOT TRANSLATED YET ##ID:001218## mcset $l "Switch on 83C75x family support\n\nSyntax:\n \$PHILIPS\n\nExample:\n \$PHILIPS\n\nNote:\n Supported by ASEM-51 only" \ "Switch on 83C75x family support\n\nSyntax:\n \$PHILIPS\n\nExample:\n \$PHILIPS\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001219## mcset $l "Save current \$LIST/\$GEN/\$COND\n\nSyntax:\n \$SAVE\n\nExample:\n \$SAVE\n\nNote:\n Supported by ASEM-51 only" \ "Save current \$LIST/\$GEN/\$COND\n\nSyntax:\n \$SAVE\n\nExample:\n \$SAVE\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001220## mcset $l "Save current \$LIST/\$GEN/\$COND\n\nSyntax:\n \$SA\n\nExample:\n \$SA\n\nNote:\n Supported by ASEM-51 only" \ "Save current \$LIST/\$GEN/\$COND\n\nSyntax:\n \$SA\n\nExample:\n \$SA\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001221## mcset $l "Restore old \$LIST/\$GEN/\$COND\n\nSyntax:\n \$RESTORE\n\nExample:\n \$RESTORE\n\nNote:\n Supported by ASEM-51 only" \ "Restore old \$LIST/\$GEN/\$COND\n\nSyntax:\n \$RESTORE\n\nExample:\n \$RESTORE\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001222## mcset $l "Restore old \$LIST/\$GEN/\$COND\n\nSyntax:\n \$RS\n\nExample:\n \$RS\n\nNote:\n Supported by ASEM-51 only" \ "Restore old \$LIST/\$GEN/\$COND\n\nSyntax:\n \$RS\n\nExample:\n \$RS\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001223## mcset $l "Create symbol table\n\nSyntax:\n \$SYMBOLS\n\nExample:\n \$SYMBOLS\n\n" \ "Create symbol table\n\nSyntax:\n \$SYMBOLS\n\nExample:\n \$SYMBOLS\n\n" ;# <-- NOT TRANSLATED YET ##ID:001224## mcset $l "Create symbol table\n\nSyntax:\n \$SB\n\nExample:\n \$SB\n\n" \ "Create symbol table\n\nSyntax:\n \$SB\n\nExample:\n \$SB\n\n" ;# <-- NOT TRANSLATED YET ##ID:001225## mcset $l "Don't create symbol table\n\nSyntax:\n \$NOSYMBOLS\n\nExample:\n \$NOSYMBOLS\n\n" \ "Don't create symbol table\n\nSyntax:\n \$NOSYMBOLS\n\nExample:\n \$NOSYMBOLS\n\n" ;# <-- NOT TRANSLATED YET ##ID:001226## mcset $l "Don't create symbol table\n\nSyntax:\n \$NOSB\n\nExample:\n \$NOSB\n\n" \ "Don't create symbol table\n\nSyntax:\n \$NOSB\n\nExample:\n \$NOSB\n\n" ;# <-- NOT TRANSLATED YET ##ID:001227## mcset $l "Inserts title string into page header\n\nSyntax:\n \$TITLE(string)\n\nExample:\n \$TITLE(My firts code)\n\n" \ "Inserts title string into page header\n\nSyntax:\n \$TITLE(string)\n\nExample:\n \$TITLE(My firts code)\n\n" ;# <-- NOT TRANSLATED YET ##ID:001228## mcset $l "Inserts title string into page header\n\nSyntax:\n \$TT(string)\n\nExample:\n \$TT(My firts code)\n\n" \ "Inserts title string into page header\n\nSyntax:\n \$TT(string)\n\nExample:\n \$TT(My firts code)\n\n" ;# <-- NOT TRANSLATED YET ##ID:001229## mcset $l "Create cross reference\n\nSyntax:\n \$XREF\n\nExample:\n \$XREF\n\nNote:\n Supported by ASEM-51 only" \ "Create cross reference\n\nSyntax:\n \$XREF\n\nExample:\n \$XREF\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001230## mcset $l "Create cross reference\n\nSyntax:\n \$XR\n\nExample:\n \$XR\n\nNote:\n Supported by ASEM-51 only" \ "Create cross reference\n\nSyntax:\n \$XR\n\nExample:\n \$XR\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001231## mcset $l "Don't create cross reference\n\nSyntax:\n \$NOXREF\n\nExample:\n \$NOXREF\n\nNote:\n Supported by ASEM-51 only" \ "Don't create cross reference\n\nSyntax:\n \$NOXREF\n\nExample:\n \$NOXREF\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001232## mcset $l "Don't create cross reference\n\nSyntax:\n \$NOXR\n\nExample:\n \$NOXR\n\nNote:\n Supported by ASEM-51 only" \ "Don't create cross reference\n\nSyntax:\n \$NOXR\n\nExample:\n \$NOXR\n\nNote:\n Supported by ASEM-51 only" ;# <-- NOT TRANSLATED YET ##ID:001233## mcset $l "Do not create Intel HEX file\n\nSyntax:\n \$NOOBJECT\n\nExample:\n \$NOOBJECT\n\nNote:\n Supported by native assembler only" \ "Do not create Intel HEX file\n\nSyntax:\n \$NOOBJECT\n\nExample:\n \$NOOBJECT\n\nNote:\n Supported by native assembler only" ;# <-- NOT TRANSLATED YET ##ID:001234## mcset $l "Specify file name for Intel HEX\n\nSyntax:\n \$OBJECT(string)\n\nExample:\n \$OBJECT(my_hex.hex)\n\nNote:\n Supported by native assembler only" \ "Specify file name for Intel HEX\n\nSyntax:\n \$OBJECT(string)\n\nExample:\n \$OBJECT(my_hex.hex)\n\nNote:\n Supported by native assembler only" ;# <-- NOT TRANSLATED YET ##ID:001235## mcset $l "Specify file name for list file\n\nSyntax:\n \$PRINT(string)\n\nExample:\n \$PRINT(my_list.lst)\n\nNote:\n Supported by native assembler only" \ "Specify file name for list file\n\nSyntax:\n \$PRINT(string)\n\nExample:\n \$PRINT(my_list.lst)\n\nNote:\n Supported by native assembler only" ;# <-- NOT TRANSLATED YET ##ID:001236## mcset $l "Do not create list file at all\n\nSyntax:\n \$NOPRINT\n\nExample:\n \$NOPRINT\n\nNote:\n Supported by native assembler only" \ "Do not create list file at all\n\nSyntax:\n \$NOPRINT\n\nExample:\n \$NOPRINT\n\nNote:\n Supported by native assembler only" ;# <-- NOT TRANSLATED YET ##ID:001237## mcset $l "Define and expand macro instruction after! conditional assembly and definitions of constants\n\nSyntax:\n \$NOMACROSFIRTS\n\nExample:\n \$NOMACROSFIRTS\n\nNote:\n Supported by native assembler only" \ "Define and expand macro instruction after! conditional assembly and definitions of constants\n\nSyntax:\n \$NOMACROSFIRTS\n\nExample:\n \$NOMACROSFIRTS\n\nNote:\n Supported by native assembler only" ;# <-- NOT TRANSLATED YET ##ID:001238## mcset $l "Add register to Accumulator" \ "Add register to Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001239## mcset $l "Add direct byte to Accumulator" \ "Add direct byte to Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001240## mcset $l "Add indirect RAM to Accumulator" \ "Add indirect RAM to Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001241## mcset $l "Add immediate data to Accumulator" \ "Add immediate data to Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001242## mcset $l "Add register to Accumulator with Carry" \ "Add register to Accumulator with Carry" ;# <-- NOT TRANSLATED YET ##ID:001243## mcset $l "Add direct byte to Accumulator with Carry" \ "Add direct byte to Accumulator with Carry" ;# <-- NOT TRANSLATED YET ##ID:001244## mcset $l "Add indirect RAM to Accumulator with Carry" \ "Add indirect RAM to Accumulator with Carry" ;# <-- NOT TRANSLATED YET ##ID:001245## mcset $l "Add immediate data to Acc with Carry" \ "Add immediate data to Acc with Carry" ;# <-- NOT TRANSLATED YET ##ID:001246## mcset $l "Subtract Register from Acc with borrow" \ "Subtract Register from Acc with borrow" ;# <-- NOT TRANSLATED YET ##ID:001247## mcset $l "Subtract direct byte from Acc with borrow" \ "Subtract direct byte from Acc with borrow" ;# <-- NOT TRANSLATED YET ##ID:001248## mcset $l "Subtract indirect RAM from ACC with borrow" \ "Subtract indirect RAM from ACC with borrow" ;# <-- NOT TRANSLATED YET ##ID:001249## mcset $l "Subtract immediate data from Acc with borrow" \ "Subtract immediate data from Acc with borrow" ;# <-- NOT TRANSLATED YET ##ID:001250## mcset $l "Increment Accumulator" \ "Increment Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001251## mcset $l "Increment register" \ "Increment register" ;# <-- NOT TRANSLATED YET ##ID:001252## mcset $l "Increment direct byte" \ "Increment direct byte" ;# <-- NOT TRANSLATED YET ##ID:001253## mcset $l "Increment direct RAM" \ "Increment direct RAM" ;# <-- NOT TRANSLATED YET ##ID:001254## mcset $l "Decrement Accumulator" \ "Decrement Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001255## mcset $l "Decrement Register" \ "Decrement Register" ;# <-- NOT TRANSLATED YET ##ID:001256## mcset $l "Decrement direct byte" \ "Decrement direct byte" ;# <-- NOT TRANSLATED YET ##ID:001257## mcset $l "Decrement indirect RAM" \ "Decrement indirect RAM" ;# <-- NOT TRANSLATED YET ##ID:001258## mcset $l "Increment Data Pointer" \ "Increment Data Pointer" ;# <-- NOT TRANSLATED YET ##ID:001259## mcset $l "Multiply A & B" \ "Multiply A & B" ;# <-- NOT TRANSLATED YET ##ID:001260## mcset $l "Divide A by B" \ "Divide A by B" ;# <-- NOT TRANSLATED YET ##ID:001261## mcset $l "Decimal Adjust Accumulator" \ "Decimal Adjust Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001262## mcset $l "AND Register to Accumulator" \ "AND Register to Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001263## mcset $l "AND direct byte to Accumulator" \ "AND direct byte to Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001264## mcset $l "AND indirect RAM to Accumulator" \ "AND indirect RAM to Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001265## mcset $l "AND immediate data to Accumulator" \ "AND immediate data to Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001266## mcset $l "AND Accumulator to direct byte" \ "AND Accumulator to direct byte" ;# <-- NOT TRANSLATED YET ##ID:001267## mcset $l "AND immediate data to direct byte" \ "AND immediate data to direct byte" ;# <-- NOT TRANSLATED YET ##ID:001268## mcset $l "OR register to Accumulator" \ "OR register to Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001269## mcset $l "OR direct byte to Accumulator" \ "OR direct byte to Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001270## mcset $l "OR indirect RAM to Accumulator" \ "OR indirect RAM to Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001271## mcset $l "OR immediate data to Accumulator" \ "OR immediate data to Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001272## mcset $l "OR Accumulator to direct byte" \ "OR Accumulator to direct byte" ;# <-- NOT TRANSLATED YET ##ID:001273## mcset $l "OR immediate data to direct byte" \ "OR immediate data to direct byte" ;# <-- NOT TRANSLATED YET ##ID:001274## mcset $l "Exclusive-OR register to Accumulator" \ "Exclusive-OR register to Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001275## mcset $l "Exclusive-OR direct byte to Accumulator" \ "Exclusive-OR direct byte to Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001276## mcset $l "Exclusive-OR indirect RAM to Accumulator" \ "Exclusive-OR indirect RAM to Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001277## mcset $l "Exclusive-OR immediate data to Accumulator" \ "Exclusive-OR immediate data to Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001278## mcset $l "Exclusive-OR Accumulator to direct byte" \ "Exclusive-OR Accumulator to direct byte" ;# <-- NOT TRANSLATED YET ##ID:001279## mcset $l "Exclusive-OR immediate data to direct byte" \ "Exclusive-OR immediate data to direct byte" ;# <-- NOT TRANSLATED YET ##ID:001280## mcset $l "Clear Accumulator" \ "Clear Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001281## mcset $l "Complement Accumulator" \ "Complement Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001282## mcset $l "Rotate Accumulator Left" \ "Rotate Accumulator Left" ;# <-- NOT TRANSLATED YET ##ID:001283## mcset $l "Rotate Accumulator Left through the Carry" \ "Rotate Accumulator Left through the Carry" ;# <-- NOT TRANSLATED YET ##ID:001284## mcset $l "Rotate Accumulator Right" \ "Rotate Accumulator Right" ;# <-- NOT TRANSLATED YET ##ID:001285## mcset $l "Rotate Accumulator Right through the Carry" \ "Rotate Accumulator Right through the Carry" ;# <-- NOT TRANSLATED YET ##ID:001286## mcset $l "Swap nibbles within the Accumulator" \ "Swap nibbles within the Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001287## mcset $l "Move register to Accumulator" \ "Move register to Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001288## mcset $l "Move direct byte to Accumulator" \ "Move direct byte to Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001289## mcset $l "Move indirect RAM to Accumulator" \ "Move indirect RAM to Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001290## mcset $l "Move immediate data to Accumulator" \ "Move immediate data to Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001291## mcset $l "Move Accumulator to register" \ "Move Accumulator to register" ;# <-- NOT TRANSLATED YET ##ID:001292## mcset $l "Move direct byte to register" \ "Move direct byte to register" ;# <-- NOT TRANSLATED YET ##ID:001293## mcset $l "Move immediate data to register" \ "Move immediate data to register" ;# <-- NOT TRANSLATED YET ##ID:001294## mcset $l "Move Accumulator to direct byte" \ "Move Accumulator to direct byte" ;# <-- NOT TRANSLATED YET ##ID:001295## mcset $l "Move register to direct byte" \ "Move register to direct byte" ;# <-- NOT TRANSLATED YET ##ID:001296## mcset $l "Move direct byte to direct" \ "Move direct byte to direct" ;# <-- NOT TRANSLATED YET ##ID:001297## mcset $l "Move indirect RAM to direct byte" \ "Move indirect RAM to direct byte" ;# <-- NOT TRANSLATED YET ##ID:001298## mcset $l "Move immediate data to direct byte" \ "Move immediate data to direct byte" ;# <-- NOT TRANSLATED YET ##ID:001299## mcset $l "Move Accumulator to indirect RAM" \ "Move Accumulator to indirect RAM" ;# <-- NOT TRANSLATED YET ##ID:001300## mcset $l "Move direct byte to indirect RAM" \ "Move direct byte to indirect RAM" ;# <-- NOT TRANSLATED YET ##ID:001301## mcset $l "Move immediate data to indirect RAM" \ "Move immediate data to indirect RAM" ;# <-- NOT TRANSLATED YET ##ID:001302## mcset $l "Load Data Pointer with a 16-bit constant" \ "Load Data Pointer with a 16-bit constant" ;# <-- NOT TRANSLATED YET ##ID:001303## mcset $l "Move Code byte relative to DPTR to Acc" \ "Move Code byte relative to DPTR to Acc" ;# <-- NOT TRANSLATED YET ##ID:001304## mcset $l "Move Code byte relative to PC to Acc" \ "Move Code byte relative to PC to Acc" ;# <-- NOT TRANSLATED YET ##ID:001305## mcset $l "Move External RAM (8-bit addr) to Acc" \ "Move External RAM (8-bit addr) to Acc" ;# <-- NOT TRANSLATED YET ##ID:001306## mcset $l "Move Exernal RAM (16-bit addr) to Acc" \ "Move Exernal RAM (16-bit addr) to Acc" ;# <-- NOT TRANSLATED YET ##ID:001307## mcset $l "Move Acc to External RAM (8-bit addr)" \ "Move Acc to External RAM (8-bit addr)" ;# <-- NOT TRANSLATED YET ##ID:001308## mcset $l "Move Acc to External RAM (16-bit addr)" \ "Move Acc to External RAM (16-bit addr)" ;# <-- NOT TRANSLATED YET ##ID:001309## mcset $l "Push direct byte onto stack" \ "Push direct byte onto stack" ;# <-- NOT TRANSLATED YET ##ID:001310## mcset $l "Pop direct byte from stack" \ "Pop direct byte from stack" ;# <-- NOT TRANSLATED YET ##ID:001311## mcset $l "Exchange register with Accumulator" \ "Exchange register with Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001312## mcset $l "Exchange direct byte with Accumulator" \ "Exchange direct byte with Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001313## mcset $l "Exchange indirect RAM with Accumulator" \ "Exchange indirect RAM with Accumulator" ;# <-- NOT TRANSLATED YET ##ID:001314## mcset $l "Exchange low-order Digit indirect RAM with Acc" \ "Exchange low-order Digit indirect RAM with Acc" ;# <-- NOT TRANSLATED YET ##ID:001315## mcset $l "Clear Carry" \ "Clear Carry" ;# <-- NOT TRANSLATED YET ##ID:001316## mcset $l "Clear direct bit" \ "Clear direct bit" ;# <-- NOT TRANSLATED YET ##ID:001317## mcset $l "Set Carry" \ "Set Carry" ;# <-- NOT TRANSLATED YET ##ID:001318## mcset $l "Set direct bit" \ "Set direct bit" ;# <-- NOT TRANSLATED YET ##ID:001319## mcset $l "Complement Carry" \ "Complement Carry" ;# <-- NOT TRANSLATED YET ##ID:001320## mcset $l "Complement direct bit" \ "Complement direct bit" ;# <-- NOT TRANSLATED YET ##ID:001321## mcset $l "AND direct bit to CARRY" \ "AND direct bit to CARRY" ;# <-- NOT TRANSLATED YET ##ID:001322## mcset $l "AND complement of direct bit to Carry" \ "AND complement of direct bit to Carry" ;# <-- NOT TRANSLATED YET ##ID:001323## mcset $l "OR direct bit to Carry" \ "OR direct bit to Carry" ;# <-- NOT TRANSLATED YET ##ID:001324## mcset $l "OR complement of direct bit to Carry" \ "OR complement of direct bit to Carry" ;# <-- NOT TRANSLATED YET ##ID:001325## mcset $l "Move direct bit to Carry" \ "Move direct bit to Carry" ;# <-- NOT TRANSLATED YET ##ID:001326## mcset $l "Move Carry to direct bit" \ "Move Carry to direct bit" ;# <-- NOT TRANSLATED YET ##ID:001327## mcset $l "Jump if Carry is set" \ "Jump if Carry is set" ;# <-- NOT TRANSLATED YET ##ID:001328## mcset $l "Jump if Carry not set" \ "Jump if Carry not set" ;# <-- NOT TRANSLATED YET ##ID:001329## mcset $l "Jump if direct Bit is set" \ "Jump if direct Bit is set" ;# <-- NOT TRANSLATED YET ##ID:001330## mcset $l "Jump if direct Bit is Not set" \ "Jump if direct Bit is Not set" ;# <-- NOT TRANSLATED YET ##ID:001331## mcset $l "Jump if direct Bit is set & clear bit" \ "Jump if direct Bit is set & clear bit" ;# <-- NOT TRANSLATED YET ##ID:001332## mcset $l "Absolute Subroutine Call" \ "Absolute Subroutine Call" ;# <-- NOT TRANSLATED YET ##ID:001333## mcset $l "Long Subroutine Call" \ "Long Subroutine Call" ;# <-- NOT TRANSLATED YET ##ID:001334## mcset $l "Return from Subroutine" \ "Return from Subroutine" ;# <-- NOT TRANSLATED YET ##ID:001335## mcset $l "Return from interrupt" \ "Return from interrupt" ;# <-- NOT TRANSLATED YET ##ID:001336## mcset $l "Absolute Jump" \ "Absolute Jump" ;# <-- NOT TRANSLATED YET ##ID:001337## mcset $l "Long Jump" \ "Long Jump" ;# <-- NOT TRANSLATED YET ##ID:001338## mcset $l "Short Jump (relative addr)" \ "Short Jump (relative addr)" ;# <-- NOT TRANSLATED YET ##ID:001339## mcset $l "Jump indirect relative to the DPTR" \ "Jump indirect relative to the DPTR" ;# <-- NOT TRANSLATED YET ##ID:001340## mcset $l "Jump if Accumulator is Zero" \ "Jump if Accumulator is Zero" ;# <-- NOT TRANSLATED YET ##ID:001341## mcset $l "Jump if Accumulator is Not Zero" \ "Jump if Accumulator is Not Zero" ;# <-- NOT TRANSLATED YET ##ID:001342## mcset $l "Compare direct byte to Acc and Jump if Not Equal" \ "Compare direct byte to Acc and Jump if Not Equal" ;# <-- NOT TRANSLATED YET ##ID:001343## mcset $l "Compare immediate to Acc and Jump if Not Equal" \ "Compare immediate to Acc and Jump if Not Equal" ;# <-- NOT TRANSLATED YET ##ID:001344## mcset $l "Compare immediate to register and Jump if Not Equal" \ "Compare immediate to register and Jump if Not Equal" ;# <-- NOT TRANSLATED YET ##ID:001345## mcset $l "Compare immediate to indirect and Jump if Not Equal" \ "Compare immediate to indirect and Jump if Not Equal" ;# <-- NOT TRANSLATED YET ##ID:001346## mcset $l "Decrement register and Jump if Not Zero" \ "Decrement register and Jump if Not Zero" ;# <-- NOT TRANSLATED YET ##ID:001347## mcset $l "Decrement direct byte and Jump if Not Zero" \ "Decrement direct byte and Jump if Not Zero" ;# <-- NOT TRANSLATED YET ##ID:001348## mcset $l "Program Branching" \ "Program Branching" ;# <-- NOT TRANSLATED YET ##ID:001349## mcset $l "No Operation" \ "No Operation" ;# <-- NOT TRANSLATED YET ##ID:001350## mcset $l "Data Transfer" \ "Data Transfer" ;# <-- NOT TRANSLATED YET ##ID:001351## mcset $l "Boolean Variable Manipulation" \ "Boolean Variable Manipulation" ;# <-- NOT TRANSLATED YET ##ID:001352## mcset $l "Read-Modify-Write" \ "Read-Modify-Write" ;# <-- NOT TRANSLATED YET ##ID:001353## mcset $l "Logical Operations" \ "Logical Operations" ;# <-- NOT TRANSLATED YET ##ID:001354## mcset $l "Arithmetic Operations" \ "Arithmetic Operations" ;# <-- NOT TRANSLATED YET } # messages.tcl # ============================================================================== namespace eval Messages { ##ID:001355## mcset $l "Copy selected text into clipboard" \ "复制选定的文本到剪贴板" ##ID:001356## mcset $l "Clear all messages" \ "清除所有消息" ##ID:001357## mcset $l "Select all text in this TextBox" \ "Select all text in this TextBox" ;# <-- NOT TRANSLATED YET ##ID:001358## mcset $l "Find next" \ "查找下一个" ##ID:001359## mcset $l "Find previous" \ "查找上一个" ##ID:001360## mcset $l "Match case" \ "区分大小写" ##ID:001361## mcset $l "Find:" \ "查找:" ##ID:001362## mcset $l "Hide search bar" \ "隐藏搜索栏" ##ID:001363## mcset $l "Find previous occurrence of search string" \ "查找上一个出现的搜索字" ##ID:001364## mcset $l "Find next occurrence of search string" \ "查找下一个出现的搜索字" } # hexeditor.tcl # ============================================================================== namespace eval HexEditor { ##ID:001365## mcset $l "Select all" \ "选择所有" ##ID:001366## mcset $l "Text to find" \ "要查找的文本" ##ID:001367## mcset $l "Where" \ "Where" ;# <-- NOT TRANSLATED YET ##ID:001368## mcset $l "Left view" \ "左视图" ##ID:001369## mcset $l "Right view" \ "右视图" ##ID:001370## mcset $l "Options" \ "选项" ##ID:001371## mcset $l "From cursor" \ "从光标" ##ID:001372## mcset $l "Backwards" \ "向后" ##ID:001373## mcset $l "Ok" \ "Ok" ;# <-- NOT TRANSLATED YET ##ID:001374## mcset $l "Cancel" \ "取消" ##ID:001375## mcset $l "Find" \ "查找" ##ID:001376## mcset $l "String not found" \ "字符未找到" ##ID:001377## mcset $l "Search string '%s' not found !" \ "字符 '%s' 没有搜索到!" } # cvarsview.tcl # ============================================================================== namespace eval CVarsView { ##ID:001378## mcset $l "Unable to read file\n'%s'" \ "无法读取文件\n'%s'" ##ID:001379## mcset $l "Permission denied" \ "没有权限" ##ID:001380## mcset $l "Search:" \ "搜索:" ##ID:001381## mcset $l {Value Level Data type Variable name} \ {Value Level Data type Variable name} ;# <-- NOT TRANSLATED YET ##ID:001382## mcset $l {Value Data type Variable name} \ {Value Data type Variable name} ;# <-- NOT TRANSLATED YET ##ID:001383## mcset $l "Global static scalar variables" \ "Global static scalar variables" ;# <-- NOT TRANSLATED YET ##ID:001384## mcset $l "Local static scalar variables" \ "Local static scalar variables" ;# <-- NOT TRANSLATED YET } # my_tk_messageBox.tcl # ============================================================================== namespace eval my_tk_messageBox { ##ID:001385## mcset $l "Abort" \ "中止" ##ID:001386## mcset $l "Retry" \ "重试" ##ID:001387## mcset $l "Ignore" \ "忽略" ##ID:001388## mcset $l "Ok" \ "Ok" ;# <-- NOT TRANSLATED YET ##ID:001389## mcset $l "Cancel" \ "取消" ##ID:001390## mcset $l "Yes" \ "Yes" ;# <-- NOT TRANSLATED YET ##ID:001391## mcset $l "No" \ "No" ;# <-- NOT TRANSLATED YET } # tips.tcl # ============================================================================== namespace eval Tips { ##ID:001392## mcset $l "Did you know ... " \ "您知道吗 ... " ##ID:001393## mcset $l "Show tips on start-up" \ "在启动时显示" ##ID:001394## mcset $l "Close" \ "关闭" ##ID:001395## mcset $l "Next" \ "下一页" ##ID:001396## mcset $l "Previous" \ "上一页" ##ID:001397## mcset $l "Tip of the day - MCU 8051 IDE" \ "每日提示 - MCU 8051 IDE" ##ID:001398## mcset $l "Unable to open file containing tips,\nplease check your installation" \ "无法打开文件,其中包含提示,\n请检查您的安装" ##ID:001399## mcset $l "Unable to parse tips.xml" \ "无法解析tips.xml" ##ID:001400## mcset $l "File tips.xml is corrupted,\nplease check your installation" \ "文件tips.xml已损坏,\n请检查您的安装" } # editor.tcl # ============================================================================== namespace eval Editor { ##ID:001401## mcset $l "LJMP this line" \ "LJMP这一行" ##ID:001402## mcset $l "LCALL this line" \ "LCALL这一行" ##ID:001403## mcset $l "Program jump" \ "程序转跳" ##ID:001404## mcset $l "Call subprogram" \ "调用子程序" ##ID:001405## mcset $l "Breakpoint" \ "断点" ##ID:001406## mcset $l "Bookmark" \ "书签" ##ID:001407## mcset $l "Add/Remove breakpoint to/from current line" \ "Add/Remove breakpoint to/from current line" ;# <-- NOT TRANSLATED YET ##ID:001408## mcset $l "Add/Remove bookmark to/from current line" \ "Add/Remove bookmark to/from current line" ;# <-- NOT TRANSLATED YET ##ID:001409## mcset $l "Uppercase" \ "大写" ##ID:001410## mcset $l "Lowercase" \ "小写" ##ID:001411## mcset $l "Capitalize" \ "大写" ##ID:001412## mcset $l "Save file" \ "保存文件" ##ID:001413## mcset $l "Save this file" \ "保存这个文件" ##ID:001414## mcset $l "Configure panel" \ "配置面板" ##ID:001415## mcset $l "Invoke editor configuration dialog" \ "调用编辑器配置面板" ##ID:001416## mcset $l "Hide this panel" \ "隐藏这个面板" ##ID:001417## mcset $l "Hide panel" \ "隐藏面板" ##ID:001418## mcset $l "Split vertical" \ "垂直分割" ##ID:001419## mcset $l "Split the editor vertically" \ "垂直分割编辑器" ##ID:001420## mcset $l "Split horizontal" \ "水平分割" ##ID:001421## mcset $l "Split the editor horizontally" \ "水平分割编辑器" ##ID:001422## mcset $l "Close current view" \ "关闭当前视图" ##ID:001423## mcset $l "Back" \ "返回" ##ID:001424## mcset $l "Go to previous file in the file list" \ "移动到文件列表里的上一个文件" ##ID:001425## mcset $l "Go to next file in the file list" \ "移动到文件列表里的下一个文件" ##ID:001426## mcset $l "Forward" \ "向前" ##ID:001427## mcset $l "Editor command line, type `help' for more" \ "Editor command line, type `help' for more" ;# <-- NOT TRANSLATED YET ##ID:001428## mcset $l "Icon border - click to add/remove bookmark" \ "Icon border - click to add/remove bookmark" ;# <-- NOT TRANSLATED YET ##ID:001429## mcset $l "Line numbers - click to add/remove breakpoint" \ "Line numbers - click to add/remove breakpoint" ;# <-- NOT TRANSLATED YET ##ID:001430## mcset $l "Insertion mode" \ "Insertion mode" ;# <-- NOT TRANSLATED YET ##ID:001431## mcset $l "Insertion mode -- OVR == overwrite; INS == insert" \ "Insertion mode -- OVR == overwrite; INS == insert" ;# <-- NOT TRANSLATED YET ##ID:001432## mcset $l "INS" \ "INS" ;# <-- NOT TRANSLATED YET ##ID:001433## mcset $l "OVR" \ "OVR" ;# <-- NOT TRANSLATED YET ##ID:001434## mcset $l "Selection mode" \ "Selection mode" ;# <-- NOT TRANSLATED YET ##ID:001435## mcset $l "Selection mode -- BLK == block; NORM == normal" \ "Selection mode -- BLK == block; NORM == normal" ;# <-- NOT TRANSLATED YET ##ID:001436## mcset $l "NORM" \ "NORM" ;# <-- NOT TRANSLATED YET ##ID:001437## mcset $l "BLK" \ "BLK" ;# <-- NOT TRANSLATED YET ##ID:001438## mcset $l "Line:" \ "Line:" ;# <-- NOT TRANSLATED YET ##ID:001439## mcset $l " Column:" \ " Column:" ;# <-- NOT TRANSLATED YET ##ID:001440## mcset $l " Total:" \ " Total:" ;# <-- NOT TRANSLATED YET ##ID:001441## mcset $l "Editor status bar" \ "编辑器状态栏" ##ID:001442## mcset $l "Starting simulator" \ "启动模拟器" ##ID:001443## mcset $l "Simulator mode " \ "模拟器模式 " ##ID:001444## mcset $l "Editor disabled" \ "禁用编辑器" ##ID:001445## mcset $l "File has been modified, click to save" \ "文件已被修改,点击保存" ##ID:001446## mcset $l "Name of the current file or \"untitled\" if the file has not yet been saved under any name" \ "Name of the current file or \"untitled\" if the file has not yet been saved under any name" ;# <-- NOT TRANSLATED YET ##ID:001447## mcset $l "File type\n C/H\tC source / header\n ASM\tAssembly language\n LST\tCode listing\n ASX\tASX8051 assembler" \ "File type\n C/H\tC source / header\n ASM\tAssembly language\n LST\tCode listing\n ASX\tASX8051 assembler" ;# <-- NOT TRANSLATED YET ##ID:001448## mcset $l "File type" \ "文件类型" ##ID:001449## mcset $l "Invalid command" \ "无效的命令" ##ID:001450## mcset $l "Ambiguous command" \ "Ambiguous command" ;# <-- NOT TRANSLATED YET ##ID:001451## mcset $l "This MCU cannot have connected external data memory" \ "This MCU cannot have connected external data memory" ;# <-- NOT TRANSLATED YET ##ID:001452## mcset $l "This MCU cannot have connected external program memory" \ "This MCU cannot have connected external program memory" ;# <-- NOT TRANSLATED YET ##ID:001453## mcset $l "EDITOR COMMAND LINE: invalid command, type `help list' to get list of available commands" \ "EDITOR COMMAND LINE: invalid command, type `help list' to get list of available commands" ;# <-- NOT TRANSLATED YET ##ID:001454## mcset $l "EDITOR COMMAND LINE: wrong # args (command: %s)" \ "EDITOR COMMAND LINE: wrong # args (command: %s)" ;# <-- NOT TRANSLATED YET ##ID:001455## mcset $l "EDITOR COMMAND LINE: This command takes no arguments" \ "EDITOR COMMAND LINE: This command takes no arguments" ;# <-- NOT TRANSLATED YET ##ID:001456## mcset $l "EDITOR COMMAND LINE: Invalid number format" \ "EDITOR COMMAND LINE: Invalid number format" ;# <-- NOT TRANSLATED YET ##ID:001457## mcset $l "EDITOR COMMAND LINE: This command requires exactly one argument" \ "EDITOR COMMAND LINE: This command requires exactly one argument" ;# <-- NOT TRANSLATED YET ##ID:001458## mcset $l "EDITOR COMMAND LINE: Unknown command: `%s'" \ "EDITOR COMMAND LINE: Unknown command: `%s'" ;# <-- NOT TRANSLATED YET ##ID:001459## mcset $l "EDITOR COMMAND LINE: Unsupported processor `%s'" \ "EDITOR COMMAND LINE: Unsupported processor `%s'" ;# <-- NOT TRANSLATED YET ##ID:001460## mcset $l "EDITOR COMMAND LINE: Expected integer but got `%s' (command: %s)" \ "EDITOR COMMAND LINE: Expected integer but got `%s' (command: %s)" ;# <-- NOT TRANSLATED YET ##ID:001461## mcset $l "EDITOR COMMAND LINE: This MCU has XDATA memory limit 0x10000 B (65536) (command: %s)" \ "EDITOR COMMAND LINE: This MCU has XDATA memory limit 0x10000 B (65536) (command: %s)" ;# <-- NOT TRANSLATED YET ##ID:001462## mcset $l "EDITOR COMMAND LINE: This MCU has CODE memory limit 0x10000 B (65536) (command: %s)" \ "EDITOR COMMAND LINE: This MCU has CODE memory limit 0x10000 B (65536) (command: %s)" ;# <-- NOT TRANSLATED YET ##ID:001463## mcset $l "EDITOR COMMAND LINE: Invalid format string" \ "EDITOR COMMAND LINE: Invalid format string" ;# <-- NOT TRANSLATED YET ##ID:001464## mcset $l "EDITOR COMMAND LINE: syntax error: expected integer (command: %s)" \ "EDITOR COMMAND LINE: syntax error: expected integer (command: %s)" ;# <-- NOT TRANSLATED YET ##ID:001465## mcset $l "Target line out of range" \ "Target line out of range" ;# <-- NOT TRANSLATED YET ##ID:001466## mcset $l "Invalid option: %s" \ "无效的选项: %s" ##ID:001467## mcset $l "String not found: %s" \ "String not found: %s" ;# <-- NOT TRANSLATED YET ##ID:001468## mcset $l "Found %s occurrences" \ "Found %s occurrences" ;# <-- NOT TRANSLATED YET ##ID:001469## mcset $l "Success" \ "成功" ##ID:001470## mcset $l "Help" \ "帮助" ##ID:001471## mcset $l "This is MCU 8051 IDE command line\n\nusage: command \[arguments\]\n\nEnter help list for list of available commands or\nhelp for help for individual command" \ "This is MCU 8051 IDE command line\n\nusage: command \[arguments\]\n\nEnter help list for list of available commands or\nhelp for help for individual command" ;# <-- NOT TRANSLATED YET ##ID:001472## mcset $l "Close" \ "关闭" ##ID:001473## mcset $l "Close this window" \ "关闭这个窗口" ##ID:001474## mcset $l "Replace: %s replacements made" \ "Replace: %s replacements made" ;# <-- NOT TRANSLATED YET ##ID:001475## mcset $l "Finishing highlight" \ "Finishing highlight" ;# <-- NOT TRANSLATED YET ##ID:001476## mcset $l "Invalid list of bookmarks -- bookmarks discarded" \ "Invalid list of bookmarks -- bookmarks discarded" ;# <-- NOT TRANSLATED YET ##ID:001477## mcset $l "Invalid list of breakpoints -- bookmarks discarded" \ "Invalid list of breakpoints -- bookmarks discarded" ;# <-- NOT TRANSLATED YET ##ID:001478## mcset $l "File switching locked" \ "File switching locked" ;# <-- NOT TRANSLATED YET ##ID:001479## mcset $l "File switching unlocked" \ "File switching unlocked" ;# <-- NOT TRANSLATED YET ##ID:001480## mcset $l "Lock file switching" \ "Lock file switching" ;# <-- NOT TRANSLATED YET ##ID:001481## mcset $l "Unlock file switching" \ "Unlock file switching" ;# <-- NOT TRANSLATED YET ##ID:001482## mcset $l "Unable to open file:\n\"%s\"\nfor writing" \ "Unable to open file:\n\"%s\"\nfor writing" ;# <-- NOT TRANSLATED YET ##ID:001483## mcset $l "File %s saved" \ "File %s saved" ;# <-- NOT TRANSLATED YET ##ID:001484## mcset $l "Unable to execute: nothing selected" \ "Unable to execute: nothing selected" ;# <-- NOT TRANSLATED YET ##ID:001485## mcset $l "FATAL ERROR" \ "FATAL ERROR" ;# <-- NOT TRANSLATED YET ##ID:001486## mcset $l "Unable to start embedded editor due to an unknown error. This error did not occurred in MCU 8051 IDE code but somewhere else. Please try to restart MCU 8051 IDE with --reset-user-settings" \ "Unable to start embedded editor due to an unknown error. This error did not occurred in MCU 8051 IDE code but somewhere else. Please try to restart MCU 8051 IDE with --reset-user-settings" ;# <-- NOT TRANSLATED YET ##ID:001487## mcset $l "No function to document" \ "No function to document" ;# <-- NOT TRANSLATED YET ##ID:001488## mcset $l "Read-only project" \ "Read-only project" ;# <-- NOT TRANSLATED YET ##ID:001489## mcset $l "This project has a special purpose, modifications to this project are not allowed." \ "This project has a special purpose, modifications to this project are not allowed." ;# <-- NOT TRANSLATED YET ##ID:001490## mcset $l "This editor is only for reading, to change that press alt+v and o" \ "This editor is only for reading, to change that press alt+v and o" ;# <-- NOT TRANSLATED YET ##ID:001491## mcset $l " READ ONLY " \ " READ ONLY " ;# <-- NOT TRANSLATED YET ##ID:001492## mcset $l "available commands" \ "available commands" ;# <-- NOT TRANSLATED YET ##ID:001493## mcset $l "DEC -> HEX" \ "DEC -> HEX" ;# <-- NOT TRANSLATED YET ##ID:001494## mcset $l "DEC -> OCT" \ "DEC -> OCT" ;# <-- NOT TRANSLATED YET ##ID:001495## mcset $l "DEC -> BIN" \ "DEC -> BIN" ;# <-- NOT TRANSLATED YET ##ID:001496## mcset $l "HEX -> DEC" \ "HEX -> DEC" ;# <-- NOT TRANSLATED YET ##ID:001497## mcset $l "HEX -> OCT" \ "HEX -> OCT" ;# <-- NOT TRANSLATED YET ##ID:001498## mcset $l "HEX -> BIN" \ "HEX -> BIN" ;# <-- NOT TRANSLATED YET ##ID:001499## mcset $l "OCT -> HEX" \ "OCT -> HEX" ;# <-- NOT TRANSLATED YET ##ID:001500## mcset $l "OCT -> DEC" \ "OCT -> DEC" ;# <-- NOT TRANSLATED YET ##ID:001501## mcset $l "OCT -> BIN" \ "OCT -> BIN" ;# <-- NOT TRANSLATED YET ##ID:001502## mcset $l "BIN -> HEX" \ "BIN -> HEX" ;# <-- NOT TRANSLATED YET ##ID:001503## mcset $l "BIN -> DEC" \ "BIN -> DEC" ;# <-- NOT TRANSLATED YET ##ID:001504## mcset $l "BIN -> OCT" \ "BIN -> OCT" ;# <-- NOT TRANSLATED YET ##ID:001505## mcset $l "Animate program" \ "Animate program" ;# <-- NOT TRANSLATED YET ##ID:001506## mcset $l "Compile current file" \ "编译当前文件" ##ID:001507## mcset $l "Reformat code" \ "重新格式化代码" ##ID:001508## mcset $l "Bookmark current line" \ "当前行的书签" ##ID:001509## mcset $l "Add/Remove breakpoint" \ "添加/删除断点" ##ID:001510## mcset $l "Capitalize selection" \ "Capitalize selection" ;# <-- NOT TRANSLATED YET ##ID:001511## mcset $l "Clear history" \ "清除历史" ##ID:001512## mcset $l "Comment selected text" \ "注释选定的文本" ##ID:001513## mcset $l "Copy selection" \ "复制选取" ##ID:001514## mcset $l "Custom command" \ "自定义命令" ##ID:001515## mcset $l "Cut selection" \ "剪切选取" ##ID:001516## mcset $l "Insert date" \ "插入时间" ##ID:001517## mcset $l "Exit command line" \ "退出命令行" ##ID:001518## mcset $l "Exit program" \ "退出程序" ##ID:001519## mcset $l "Find string" \ "查找字符" ##ID:001520## mcset $l "Go to line" \ "到达指定的行目" ##ID:001521## mcset $l "Insert literal character" \ "插入文字字符" ##ID:001522## mcset $l "Indent selection" \ "选择缩进" ##ID:001523## mcset $l "Remove current line" \ "删除当前行" ##ID:001524## mcset $l "Open file" \ "打开文件" ##ID:001525## mcset $l "Paste clipboard" \ "粘贴剪贴板" ##ID:001526## mcset $l "Take back last undo" \ "Take back last undo" ;# <-- NOT TRANSLATED YET ##ID:001527## mcset $l "Reload current document" \ "Reload current document" ;# <-- NOT TRANSLATED YET ##ID:001528## mcset $l "Replace strings" \ "替换字符串" ##ID:001529## mcset $l "Run simulation" \ "模拟运行" ##ID:001530## mcset $l "Save current line" \ "保存当前行" ##ID:001531## mcset $l "Show/Hide icon border" \ "显示/隐藏图标栏" ##ID:001532## mcset $l "Show/Hide line n. bar" \ "显示/隐藏 line n. bar" ##ID:001533## mcset $l "Start/Stop simulator" \ "启动/停止模拟器" ##ID:001534## mcset $l "Step program" \ "Step program" ;# <-- NOT TRANSLATED YET ##ID:001535## mcset $l "To lowercase" \ "To lowercase" ;# <-- NOT TRANSLATED YET ##ID:001536## mcset $l "To uppercase" \ "To uppercase" ;# <-- NOT TRANSLATED YET ##ID:001537## mcset $l "Uncomment selection" \ "取消选中注释" ##ID:001538## mcset $l "Take back last operation" \ "Take back last operation" ;# <-- NOT TRANSLATED YET ##ID:001539## mcset $l "Unindent selection" \ "取消选择缩进" ##ID:001540## mcset $l "Hibernate running program" \ "Hibernate running program" ;# <-- NOT TRANSLATED YET ##ID:001541## mcset $l "Resume hibernated program" \ "Resume hibernated program" ;# <-- NOT TRANSLATED YET ##ID:001542## mcset $l "Change current MCU" \ "切换当前MCU" ##ID:001543## mcset $l "Set XCODE memory size for current MCU" \ "Set XCODE memory size for current MCU" ;# <-- NOT TRANSLATED YET ##ID:001544## mcset $l "SET XDATA memory size for current MCU" \ "SET XDATA memory size for current MCU" ;# <-- NOT TRANSLATED YET ##ID:001545## mcset $l "Available commands" \ "Available commands" ;# <-- NOT TRANSLATED YET ##ID:001546## mcset $l "Command hibernate" \ "Command hibernate" ;# <-- NOT TRANSLATED YET ##ID:001547## mcset $l "hibernate \[\]\nHibernate running program (available only when simulator is stated).\n\nThis function saves current state of the simulator engine for future resumption. If no target is not specified it will invoke file selection dialog" \ "hibernate \[\]\nHibernate running program (available only when simulator is stated).\n\nThis function saves current state of the simulator engine for future resumption. If no target is not specified it will invoke file selection dialog" ;# <-- NOT TRANSLATED YET ##ID:001548## mcset $l "Command resume" \ "Command resume" ;# <-- NOT TRANSLATED YET ##ID:001549## mcset $l "resume \[\]\nResume hibernated program (available only when simulator is stated).\n\nThis function restores previous state of the simulator engine stored in the given file. If no source is not specified it will invoke file selection dialog" \ "resume \[\]\nResume hibernated program (available only when simulator is stated).\n\nThis function restores previous state of the simulator engine stored in the given file. If no source is not specified it will invoke file selection dialog" ;# <-- NOT TRANSLATED YET ##ID:001550## mcset $l "Command switch-mcu" \ "Command switch-mcu" ;# <-- NOT TRANSLATED YET ##ID:001551## mcset $l "switch-mcu \nChange current MCU. Type `switch-mcu list' for list of supported microcontrollers" \ "switch-mcu \nChange current MCU. Type `switch-mcu list' for list of supported microcontrollers" ;# <-- NOT TRANSLATED YET ##ID:001552## mcset $l "Command set-xcode" \ "Command set-xcode" ;# <-- NOT TRANSLATED YET ##ID:001553## mcset $l "set-xcode \nChange capacity of external program memory.\nNote: this command also close CODE memory hex editor" \ "set-xcode \nChange capacity of external program memory.\nNote: this command also close CODE memory hex editor" ;# <-- NOT TRANSLATED YET ##ID:001554## mcset $l "Command set-xdata" \ "Command set-xdata" ;# <-- NOT TRANSLATED YET ##ID:001555## mcset $l "set-xdata \nChange capacity of external data memory.\nNote: this command also close XDATA memory hex editor" \ "set-xdata \nChange capacity of external data memory.\nNote: this command also close XDATA memory hex editor" ;# <-- NOT TRANSLATED YET ##ID:001556## mcset $l "Command run" \ "Command run" ;# <-- NOT TRANSLATED YET ##ID:001557## mcset $l "Run simulation (available only when simulator is stated)" \ "Run simulation (available only when simulator is stated)" ;# <-- NOT TRANSLATED YET ##ID:001558## mcset $l "Command exit" \ "Command exit" ;# <-- NOT TRANSLATED YET ##ID:001559## mcset $l "Exits this command line" \ "Exits this command line" ;# <-- NOT TRANSLATED YET ##ID:001560## mcset $l "Command exit-program" \ "Command exit-program" ;# <-- NOT TRANSLATED YET ##ID:001561## mcset $l "Quit MCU 8051 IDE" \ "退出MCU 8051 IDE" ##ID:001562## mcset $l "Command set-icon-border" \ "Command set-icon-border" ;# <-- NOT TRANSLATED YET ##ID:001563## mcset $l "Sets the visibility of the icon border" \ "Sets the visibility of the icon border" ;# <-- NOT TRANSLATED YET ##ID:001564## mcset $l "Command set-line-numbers" \ "Command set-line-numbers" ;# <-- NOT TRANSLATED YET ##ID:001565## mcset $l "Sets the visibility of the line numbers." \ "Sets the visibility of the line numbers." ;# <-- NOT TRANSLATED YET ##ID:001566## mcset $l "Command help" \ "Command help" ;# <-- NOT TRANSLATED YET ##ID:001567## mcset $l "help \nShows help for the given command\n\nhelp list\nShows list of available command" \ "help \nShows help for the given command\n\nhelp list\nShows list of available command" ;# <-- NOT TRANSLATED YET ##ID:001568## mcset $l "Command open" \ "Command open" ;# <-- NOT TRANSLATED YET ##ID:001569## mcset $l "open \nOpens the given file in new editor" \ "open \nOpens the given file in new editor" ;# <-- NOT TRANSLATED YET ##ID:001570## mcset $l "Command indent" \ "Command indent" ;# <-- NOT TRANSLATED YET ##ID:001571## mcset $l "Indents current line or selected area" \ "Indents current line or selected area" ;# <-- NOT TRANSLATED YET ##ID:001572## mcset $l "Command unindent" \ "Command unindent" ;# <-- NOT TRANSLATED YET ##ID:001573## mcset $l "Unindents current line or selected area" \ "Unindents current line or selected area" ;# <-- NOT TRANSLATED YET ##ID:001574## mcset $l "Command comment" \ "Command comment" ;# <-- NOT TRANSLATED YET ##ID:001575## mcset $l "Comments current line or selected area" \ "Comments current line or selected area" ;# <-- NOT TRANSLATED YET ##ID:001576## mcset $l "Command uncomment" \ "Command uncomment" ;# <-- NOT TRANSLATED YET ##ID:001577## mcset $l "Uncomments current line or selected area" \ "Uncomments current line or selected area" ;# <-- NOT TRANSLATED YET ##ID:001578## mcset $l "Command kill-line" \ "Command kill-line" ;# <-- NOT TRANSLATED YET ##ID:001579## mcset $l "Removes the current line" \ "Removes the current line" ;# <-- NOT TRANSLATED YET ##ID:001580## mcset $l "Command date" \ "Command date" ;# <-- NOT TRANSLATED YET ##ID:001581## mcset $l "date \nInserts formatted date at the current position in text\n\nFormat string:\n%% => %\n%a => Weekday name (Mon, Tue, etc.)\n%A => Weekday name (Monday, Tuesday, etc.)\n%b => Month name (Jan, Feb, etc.)\n%B => Full month name\n%C => Year (19 or 20)\n%d => Day of month (01 - 31)\n%D => %m/%d/%y\n%h => Abbreviated month name.\n%H => Hour (00 - 23)\n%I => Hour (01 - 12)\n%j => Day of year (001 - 366)\n%k => Hour (0 - 23)\n%l => Hour (1 - 12).\n%m => Month (01 - 12)\n%M => Minute (00 - 59)\n%n => Newline\n%p => AM/PM\n%R => %H:%M.\n%s => Unix timestamp\n%S => Seconds (00 - 59)\n%t => Tab\n%T => %H:%M:%S.\n%u => Weekday number (Monday = 1, Sunday = 7)\n%w => Weekday number (Sunday = 0, Saturday = 6)\n%y => Year without century (00 - 99)\n%Y => Year with century (e.g. 1459)" \ "date \nInserts formatted date at the current position in text\n\nFormat string:\n%% => %\n%a => Weekday name (Mon, Tue, etc.)\n%A => Weekday name (Monday, Tuesday, etc.)\n%b => Month name (Jan, Feb, etc.)\n%B => Full month name\n%C => Year (19 or 20)\n%d => Day of month (01 - 31)\n%D => %m/%d/%y\n%h => Abbreviated month name.\n%H => Hour (00 - 23)\n%I => Hour (01 - 12)\n%j => Day of year (001 - 366)\n%k => Hour (0 - 23)\n%l => Hour (1 - 12).\n%m => Month (01 - 12)\n%M => Minute (00 - 59)\n%n => Newline\n%p => AM/PM\n%R => %H:%M.\n%s => Unix timestamp\n%S => Seconds (00 - 59)\n%t => Tab\n%T => %H:%M:%S.\n%u => Weekday number (Monday = 1, Sunday = 7)\n%w => Weekday number (Sunday = 0, Saturday = 6)\n%y => Year without century (00 - 99)\n%Y => Year with century (e.g. 1459)" ;# <-- NOT TRANSLATED YET ##ID:001582## mcset $l "Command clear" \ "Command clear" ;# <-- NOT TRANSLATED YET ##ID:001583## mcset $l "Clears command line history" \ "Clears command line history" ;# <-- NOT TRANSLATED YET ##ID:001584## mcset $l "Command char" \ "Command char" ;# <-- NOT TRANSLATED YET ##ID:001585## mcset $l "char \nInserts literal characters by their numerical identifier.\nIdentifier can be in decimal hexadecimal or octal form." \ "char \nInserts literal characters by their numerical identifier.\nIdentifier can be in decimal hexadecimal or octal form." ;# <-- NOT TRANSLATED YET ##ID:001586## mcset $l "Command goto" \ "Command goto" ;# <-- NOT TRANSLATED YET ##ID:001587## mcset $l "goto \nGo to the given line" \ "goto \nGo to the given line" ;# <-- NOT TRANSLATED YET ##ID:001588## mcset $l "Command replace" \ "Command replace" ;# <-- NOT TRANSLATED YET ##ID:001589## mcset $l "replace\[:options\] \n\noptions:\nb Search backwards\nc Search from cursor position\nr Regular expression search\ns Case sensitive search\np Ask before replacement" \ "replace\[:options\] \n\noptions:\nb Search backwards\nc Search from cursor position\nr Regular expression search\ns Case sensitive search\np Ask before replacement" ;# <-- NOT TRANSLATED YET ##ID:001590## mcset $l "Command find" \ "Command find" ;# <-- NOT TRANSLATED YET ##ID:001591## mcset $l "find\[:options\] \n\noptions:\nb Search backwards\nc Search from cursor position\ne Search in the selection only\nr Regular expression search\ns Case sensitive search" \ "find\[:options\] \n\noptions:\nb Search backwards\nc Search from cursor position\ne Search in the selection only\nr Regular expression search\ns Case sensitive search" ;# <-- NOT TRANSLATED YET ##ID:001592## mcset $l "Command cut" \ "Command cut" ;# <-- NOT TRANSLATED YET ##ID:001593## mcset $l "Cut selected text" \ "Cut selected text" ;# <-- NOT TRANSLATED YET ##ID:001594## mcset $l "Command copy" \ "Command copy" ;# <-- NOT TRANSLATED YET ##ID:001595## mcset $l "Copy selected text to clipboard" \ "Copy selected text to clipboard" ;# <-- NOT TRANSLATED YET ##ID:001596## mcset $l "Command paste" \ "Command paste" ;# <-- NOT TRANSLATED YET ##ID:001597## mcset $l "Paste clipboard content" \ "Paste clipboard content" ;# <-- NOT TRANSLATED YET ##ID:001598## mcset $l "Command tolower" \ "Command tolower" ;# <-- NOT TRANSLATED YET ##ID:001599## mcset $l "Convert selected text to lowercase" \ "Convert selected text to lowercase" ;# <-- NOT TRANSLATED YET ##ID:001600## mcset $l "Command toupper" \ "Command toupper" ;# <-- NOT TRANSLATED YET ##ID:001601## mcset $l "Convert selected text to uppercase" \ "Convert selected text to uppercase" ;# <-- NOT TRANSLATED YET ##ID:001602## mcset $l "Command capitalize" \ "Command capitalize" ;# <-- NOT TRANSLATED YET ##ID:001603## mcset $l "Capitalize the selected text (convert 1st character to uppercase)" \ "Capitalize the selected text (convert 1st character to uppercase)" ;# <-- NOT TRANSLATED YET ##ID:001604## mcset $l "Command save" \ "Command save" ;# <-- NOT TRANSLATED YET ##ID:001605## mcset $l "Save the current document" \ "Save the current document" ;# <-- NOT TRANSLATED YET ##ID:001606## mcset $l "Command bookmark" \ "Command bookmark" ;# <-- NOT TRANSLATED YET ##ID:001607## mcset $l "Bookmark the current line" \ "Bookmark the current line" ;# <-- NOT TRANSLATED YET ##ID:001608## mcset $l "Command custom" \ "Command custom" ;# <-- NOT TRANSLATED YET ##ID:001609## mcset $l "custom \nExecute custom command (see menu Configuration -> Custom commands)" \ "custom \nExecute custom command (see menu Configuration -> Custom commands)" ;# <-- NOT TRANSLATED YET ##ID:001610## mcset $l "Command breakpoint" \ "Command breakpoint" ;# <-- NOT TRANSLATED YET ##ID:001611## mcset $l "Add / Remove breakpoint to the current line" \ "Add / Remove breakpoint to the current line" ;# <-- NOT TRANSLATED YET ##ID:001612## mcset $l "Command undo" \ "Command undo" ;# <-- NOT TRANSLATED YET ##ID:001613## mcset $l "Command redo" \ "Command redo" ;# <-- NOT TRANSLATED YET ##ID:001614## mcset $l "Command auto-indent" \ "Command auto-indent" ;# <-- NOT TRANSLATED YET ##ID:001615## mcset $l "Command reload" \ "Command reload" ;# <-- NOT TRANSLATED YET ##ID:001616## mcset $l "Reload the current document" \ "Reload the current document" ;# <-- NOT TRANSLATED YET ##ID:001617## mcset $l "Command assemble" \ "Command assemble" ;# <-- NOT TRANSLATED YET ##ID:001618## mcset $l "Compile the current document" \ "Compile the current document" ;# <-- NOT TRANSLATED YET ##ID:001619## mcset $l "Command sim" \ "Command sim" ;# <-- NOT TRANSLATED YET ##ID:001620## mcset $l "Start / Stop simulator" \ "启动/停止模拟器" ##ID:001621## mcset $l "Command step" \ "Command step" ;# <-- NOT TRANSLATED YET ##ID:001622## mcset $l "Step program (available only when simulator is stated)" \ "Step program (available only when simulator is stated)" ;# <-- NOT TRANSLATED YET ##ID:001623## mcset $l "Command animate" \ "Command animate" ;# <-- NOT TRANSLATED YET ##ID:001624## mcset $l "Animate program (available only when simulator is stated)" \ "Animate program (available only when simulator is stated)" ;# <-- NOT TRANSLATED YET ##ID:001625## mcset $l "Command d2h" \ "Command d2h" ;# <-- NOT TRANSLATED YET ##ID:001626## mcset $l "Convert decimal number to hexadecimal and write result to editor" \ "Convert decimal number to hexadecimal and write result to editor" ;# <-- NOT TRANSLATED YET ##ID:001627## mcset $l "Command d2o" \ "Command d2o" ;# <-- NOT TRANSLATED YET ##ID:001628## mcset $l "Convert decimal number to octal and write result to editor" \ "Convert decimal number to octal and write result to editor" ;# <-- NOT TRANSLATED YET ##ID:001629## mcset $l "Command d2b" \ "Command d2b" ;# <-- NOT TRANSLATED YET ##ID:001630## mcset $l "Convert decimal number to binary and write result to editor" \ "Convert decimal number to binary and write result to editor" ;# <-- NOT TRANSLATED YET ##ID:001631## mcset $l "Command h2d" \ "Command h2d" ;# <-- NOT TRANSLATED YET ##ID:001632## mcset $l "Convert hexadecimal number to decimal and write result to editor" \ "Convert hexadecimal number to decimal and write result to editor" ;# <-- NOT TRANSLATED YET ##ID:001633## mcset $l "Command h2o" \ "Command h2o" ;# <-- NOT TRANSLATED YET ##ID:001634## mcset $l "Convert hexadecimal number to octal and write result to editor" \ "Convert hexadecimal number to octal and write result to editor" ;# <-- NOT TRANSLATED YET ##ID:001635## mcset $l "Command h2b" \ "Command h2b" ;# <-- NOT TRANSLATED YET ##ID:001636## mcset $l "Convert hexadecimal number to binary and write result to editor" \ "Convert hexadecimal number to binary and write result to editor" ;# <-- NOT TRANSLATED YET ##ID:001637## mcset $l "Command o2h" \ "Command o2h" ;# <-- NOT TRANSLATED YET ##ID:001638## mcset $l "Convert octal number to hexadecimal and write result to editor" \ "Convert octal number to hexadecimal and write result to editor" ;# <-- NOT TRANSLATED YET ##ID:001639## mcset $l "Command o2d" \ "Command o2d" ;# <-- NOT TRANSLATED YET ##ID:001640## mcset $l "Convert octal number to decimal and write result to editor" \ "Convert octal number to decimal and write result to editor" ;# <-- NOT TRANSLATED YET ##ID:001641## mcset $l "Command o2b" \ "Command o2b" ;# <-- NOT TRANSLATED YET ##ID:001642## mcset $l "Convert octal number to binary and write result to editor" \ "Convert octal number to binary and write result to editor" ;# <-- NOT TRANSLATED YET ##ID:001643## mcset $l "Command b2h" \ "Command b2h" ;# <-- NOT TRANSLATED YET ##ID:001644## mcset $l "Convert binary number to hexadecimal and write result to editor" \ "Convert binary number to hexadecimal and write result to editor" ;# <-- NOT TRANSLATED YET ##ID:001645## mcset $l "Command b2d" \ "Command b2d" ;# <-- NOT TRANSLATED YET ##ID:001646## mcset $l "Convert binary number to decimal and write result to editor" \ "Convert binary number to decimal and write result to editor" ;# <-- NOT TRANSLATED YET ##ID:001647## mcset $l "Command b2o" \ "Command b2o" ;# <-- NOT TRANSLATED YET ##ID:001648## mcset $l "Convert binary number to octal and write result to editor" \ "Convert binary number to octal and write result to editor" ;# <-- NOT TRANSLATED YET } # compiler.tcl # ============================================================================== namespace eval Compiler { ##ID:001649## mcset $l "%s errors, %s warnings" \ "%s errors, %s warnings" ;# <-- NOT TRANSLATED YET ##ID:001650## mcset $l "Unable to open the specified file. (%s)" \ "Unable to open the specified file. (%s)" ;# <-- NOT TRANSLATED YET ##ID:001651## mcset $l "Unable to open the specified file. (\033\[34;1m%s\033\[m)" \ "Unable to open the specified file. (\033\[34;1m%s\033\[m)" ;# <-- NOT TRANSLATED YET ##ID:001652## mcset $l "Compilation FAILED !" \ "Compilation FAILED !" ;# <-- NOT TRANSLATED YET ##ID:001653## mcset $l "\033\[31;1mCompilation FAILED !\033\[m" \ "\033\[31;1mCompilation FAILED !\033\[m" ;# <-- NOT TRANSLATED YET ##ID:001654## mcset $l "Compiling file: %s" \ "Compiling file: %s" ;# <-- NOT TRANSLATED YET ##ID:001655## mcset $l "Compiling file: \033\[34;1m%s\033\[m" \ "Compiling file: \033\[34;1m%s\033\[m" ;# <-- NOT TRANSLATED YET ##ID:001656## mcset $l "Initializing pre-processor ..." \ "Initializing pre-processor ..." ;# <-- NOT TRANSLATED YET ##ID:001657## mcset $l "Pre-processing FAILED !" \ "Pre-processing FAILED !" ;# <-- NOT TRANSLATED YET ##ID:001658## mcset $l "\033\[31;1mPre-processing FAILED !\033\[m" \ "\033\[31;1mPre-processing FAILED !\033\[m" ;# <-- NOT TRANSLATED YET ##ID:001659## mcset $l "Compiling ..." \ "Compiling ..." ;# <-- NOT TRANSLATED YET ##ID:001660## mcset $l "Creating IHEX8 ...\t\t\t-> \"%s\"" \ "Creating IHEX8 ...\t\t\t-> \"%s\"" ;# <-- NOT TRANSLATED YET ##ID:001661## mcset $l "Creating IHEX8 ...\t\t\t-> \"\033\[34;1m%s\033\[m\"" \ "Creating IHEX8 ...\t\t\t-> \"\033\[34;1m%s\033\[m\"" ;# <-- NOT TRANSLATED YET ##ID:001662## mcset $l "Error: Unable to open file \"%s\" for writing" \ "Error: Unable to open file \"%s\" for writing" ;# <-- NOT TRANSLATED YET ##ID:001663## mcset $l "\033\[31;1mError\033\[m: Unable to open file \"\033\[34;1m%s\033\[m\" for writing" \ "\033\[31;1mError\033\[m: Unable to open file \"\033\[34;1m%s\033\[m\" for writing" ;# <-- NOT TRANSLATED YET ##ID:001664## mcset $l "Creating object file ...\t\t-> \"%s\"" \ "Creating object file ...\t\t-> \"%s\"" ;# <-- NOT TRANSLATED YET ##ID:001665## mcset $l "Creating object file ...\t\t-> \"\033\[34;1m%s\033\[m\"" \ "Creating object file ...\t\t-> \"\033\[34;1m%s\033\[m\"" ;# <-- NOT TRANSLATED YET ##ID:001666## mcset $l "Creating assembler debug file ...\t-> \"%s\"" \ "Creating assembler debug file ...\t-> \"%s\"" ;# <-- NOT TRANSLATED YET ##ID:001667## mcset $l "Creating simulator data file ...\t-> \"\033\[34;1m%s\033\[m\"" \ "Creating simulator data file ...\t-> \"\033\[34;1m%s\033\[m\"" ;# <-- NOT TRANSLATED YET ##ID:001668## mcset $l "Number of optimization performed: %s" \ "Number of optimization performed: %s" ;# <-- NOT TRANSLATED YET ##ID:001669## mcset $l "Number of optimization performed: \033\[1m%s\033\[m" \ "Number of optimization performed: \033\[1m%s\033\[m" ;# <-- NOT TRANSLATED YET ##ID:001670## mcset $l "Compilation successful. (time: %s sec.)" \ "Compilation successful. (time: %s sec.)" ;# <-- NOT TRANSLATED YET ##ID:001671## mcset $l "\033\[32;1mCompilation successful.\033\[m (time: %s sec.)" \ "\033\[32;1mCompilation successful.\033\[m (time: %s sec.)" ;# <-- NOT TRANSLATED YET ##ID:001672## mcset $l "Creating code listing file ...\t\t-> \"%s\"" \ "Creating code listing file ...\t\t-> \"%s\"" ;# <-- NOT TRANSLATED YET ##ID:001673## mcset $l "Creating code listing file ...\t\t-> \"\033\[34;1m%s\033\[m\"" \ "Creating code listing file ...\t\t-> \"\033\[34;1m%s\033\[m\"" ;# <-- NOT TRANSLATED YET } # assembler.tcl # ============================================================================== namespace eval assembler { ##ID:001674## mcset $l "File access error:\n%s" \ "文件访问错误:\n%s" ##ID:001675## mcset $l "Aborted" \ "中止" ##ID:001676## mcset $l "Unknown error %s" \ "未知错误 %s" ##ID:001677## mcset $l "Invalid address at %s" \ "无效地址 at %s" ##ID:001678## mcset $l "Invalid operand: '%s'" \ "无效的操作数: '%s'" ##ID:001679## mcset $l "Invalid value" \ "无效值" ##ID:001680## mcset $l "Invalid operand" \ "无效的操作数" ##ID:001681## mcset $l "Unknown instruction: %s" \ "未知的指令: %s" ##ID:001682## mcset $l "Compilation error at line %s: %s" \ "编译错误在行 %s: %s" ##ID:001683## mcset $l " in %s" \ " in %s" ;# <-- NOT TRANSLATED YET ##ID:001684## mcset $l "\033\[31;1mCompilation error at line \033\[31;1;4m%s\033\[m%s: %s" \ "\033\[31;1mCompilation error at line \033\[31;1;4m%s\033\[m%s: %s" ;# <-- NOT TRANSLATED YET } # external_compiler.tcl # ============================================================================== namespace eval ExternalCompiler { ##ID:001685## mcset $l "\n\nStarting compiler ..." \ "\n\nStarting compiler ..." ;# <-- NOT TRANSLATED YET ##ID:001686## mcset $l "\n\nStarting make ..." \ "\n\nStarting make ..." ;# <-- NOT TRANSLATED YET ##ID:001687## mcset $l "\nError: Unable to change working directory to '%s'" \ "\nError: Unable to change working directory to '%s'" ;# <-- NOT TRANSLATED YET ##ID:001688## mcset $l "\nUnable to create \"%s\"" \ "\nUnable to create \"%s\"" ;# <-- NOT TRANSLATED YET ##ID:001689## mcset $l "\nUnable to find \"%s\"" \ "\nUnable to find \"%s\"" ;# <-- NOT TRANSLATED YET ##ID:001690## mcset $l "\nUnable to find \"%s\"\n\tMCU 8051 IDE debug file (*.adf) could not be generated\n\tPLEASE CHECK YOUR %s CONFIGURATION" \ "\nUnable to find \"%s\"\n\tMCU 8051 IDE debug file (*.adf) could not be generated\n\tPLEASE CHECK YOUR %s CONFIGURATION" ;# <-- NOT TRANSLATED YET ##ID:001691## mcset $l "\nCompilation successful" \ "\nCompilation successful" ;# <-- NOT TRANSLATED YET ##ID:001692## mcset $l "\nCompilation FAILED" \ "\nCompilation FAILED" ;# <-- NOT TRANSLATED YET ##ID:001693## mcset $l "File access error:\n%s" \ "文件访问错误:\n%s" ##ID:001694## mcset $l "Unable to understand formulation at line %s in file %s" \ "Unable to understand formulation at line %s in file %s" ;# <-- NOT TRANSLATED YET ##ID:001695## mcset $l "Compilation error:\nFile \"%s\" is not a valid Intel® HEX 8 file" \ "Compilation error:\nFile \"%s\" is not a valid Intel® HEX 8 file" ;# <-- NOT TRANSLATED YET } # disassembler.tcl # ============================================================================== namespace eval disassembler { ##ID:001696## mcset $l "Initializing disassembler ..." \ "Initializing disassembler ..." ;# <-- NOT TRANSLATED YET ##ID:001697## mcset $l "Disassembly FAILED ..." \ "Disassembly FAILED ..." ;# <-- NOT TRANSLATED YET ##ID:001698## mcset $l "\033\[31;1mDisassembly FAILED\033\[m ..." \ "\033\[31;1mDisassembly FAILED\033\[m ..." ;# <-- NOT TRANSLATED YET ##ID:001699## mcset $l "Aborted" \ "Aborted" ;# <-- NOT TRANSLATED YET ##ID:001700## mcset $l "Disassembly complete" \ "Disassembly complete" ;# <-- NOT TRANSLATED YET ##ID:001701## mcset $l "\033\[32;1mDisassembly complete\033\[m" \ "\033\[32;1mDisassembly complete\033\[m" ;# <-- NOT TRANSLATED YET ##ID:001702## mcset $l "Invalid line (line contain not allowed characters)" \ "Invalid line (line contain not allowed characters)" ;# <-- NOT TRANSLATED YET ##ID:001703## mcset $l "Line do not contain odd number of chars" \ "Line do not contain odd number of chars" ;# <-- NOT TRANSLATED YET ##ID:001704## mcset $l "Bad checksum, given: %s ; computed: %s" \ "Bad checksum, given: %s ; computed: %s" ;# <-- NOT TRANSLATED YET ##ID:001705## mcset $l "Unknown record type number `%s' (Intel HEX 8 can contain only 00 and 01)" \ "Unknown record type number `%s' (Intel HEX 8 can contain only 00 and 01)" ;# <-- NOT TRANSLATED YET ##ID:001706## mcset $l "Length field do not correspond true data length" \ "Length field do not correspond true data length" ;# <-- NOT TRANSLATED YET ##ID:001707## mcset $l "Unexpected address -- code is not well formatted" \ "Unexpected address -- code is not well formatted" ;# <-- NOT TRANSLATED YET ##ID:001708## mcset $l "Warning: %s" \ "Warning: %s" ;# <-- NOT TRANSLATED YET ##ID:001709## mcset $l "\033\[33mWarning\033\[m: %s" \ "\033\[33mWarning\033\[m: %s" ;# <-- NOT TRANSLATED YET ##ID:001710## mcset $l " at line %s" \ " at line %s" ;# <-- NOT TRANSLATED YET ##ID:001711## mcset $l " at line \033\[31;1;4m%s\033\[m" \ " at line \033\[31;1;4m%s\033\[m" ;# <-- NOT TRANSLATED YET ##ID:001712## mcset $l "Error%s: %s" \ "Error%s: %s" ;# <-- NOT TRANSLATED YET ##ID:001713## mcset $l "\033\[31;1mError%s\033\[m: %s" \ "\033\[31;1mError%s\033\[m: %s" ;# <-- NOT TRANSLATED YET ##ID:001714## mcset $l "Code address overflow, instruction: %s" \ "Code address overflow, instruction: %s" ;# <-- NOT TRANSLATED YET } # preprocessor.tcl # ============================================================================== namespace eval PreProcessor { ##ID:001716## mcset $l "Aborted" \ "中止" ##ID:001718## mcset $l "Inclusion nesting exceeded maximum allowed level" \ "Inclusion nesting exceeded maximum allowed level" ;# <-- NOT TRANSLATED YET ##ID:001721## mcset $l "Macro nesting exceeded maximum allowed level" \ "Macro nesting exceeded maximum allowed level" ;# <-- NOT TRANSLATED YET ##ID:001725## mcset $l "Invalid argument: %s" \ "Invalid argument: %s" ;# <-- NOT TRANSLATED YET ##ID:001726## mcset $l "Extra characters after control sequence: %s" \ "Extra characters after control sequence: %s" ;# <-- NOT TRANSLATED YET ##ID:001727## mcset $l "Control %s has been overridden (by compiler settings)" \ "Control %s has been overridden (by compiler settings)" ;# <-- NOT TRANSLATED YET ##ID:001728## mcset $l "Control `%s' expect exactly one argument, but no argument given" \ "Control `%s' expect exactly one argument, but no argument given" ;# <-- NOT TRANSLATED YET ##ID:001729## mcset $l "Control `%s' takes no arguments." \ "Control `%s' takes no arguments." ;# <-- NOT TRANSLATED YET ##ID:001730## mcset $l "Invalid argument (must be integer): %s" \ "Invalid argument (must be integer): %s" ;# <-- NOT TRANSLATED YET ##ID:001731## mcset $l "Unsupported control sequence: %s -- control sequence ignored" \ "Unsupported control sequence: %s -- control sequence ignored" ;# <-- NOT TRANSLATED YET ##ID:001732## mcset $l "You are using unusual directive 'BYTE', consider usage of 'DB' instead" \ "You are using unusual directive 'BYTE', consider usage of 'DB' instead" ;# <-- NOT TRANSLATED YET ##ID:001733## mcset $l "CSEG cannot take any label: %s" \ "CSEG cannot take any label: %s" ;# <-- NOT TRANSLATED YET ##ID:001734## mcset $l "Missing `AT' operator" \ "Missing `AT' operator" ;# <-- NOT TRANSLATED YET ##ID:001735## mcset $l "Argument value out of range: %s (%s)" \ "Argument value out of range: %s (%s)" ;# <-- NOT TRANSLATED YET ##ID:001736## mcset $l "Invalid expression `%s'" \ "Invalid expression `%s'" ;# <-- NOT TRANSLATED YET ##ID:001737## mcset $l "Using `%s', but active segment is `%s' (should be CSEG)" \ "Using `%s', but active segment is `%s' (should be CSEG)" ;# <-- NOT TRANSLATED YET ##ID:001738## mcset $l "Missing value" \ "Missing value" ;# <-- NOT TRANSLATED YET ##ID:001739## mcset $l "Invalid value" \ "Invalid value" ;# <-- NOT TRANSLATED YET ##ID:001740## mcset $l "Directive DW can take only one argument" \ "Directive DW can take only one argument" ;# <-- NOT TRANSLATED YET ##ID:001741## mcset $l "Unable to recognize character: `%s'" \ "Unable to recognize character: `%s'" ;# <-- NOT TRANSLATED YET ##ID:001742## mcset $l "Argument value out of range: %s" \ "Argument value out of range: %s" ;# <-- NOT TRANSLATED YET ##ID:001743## mcset $l "Expected bit address: %s" \ "Expected bit address: %s" ;# <-- NOT TRANSLATED YET ##ID:001744## mcset $l "Label is too far for 8-bit relative addressing." \ "Label is too far for 8-bit relative addressing." ;# <-- NOT TRANSLATED YET ##ID:001745## mcset $l "Operand value out of range: `%s' (`%s')" \ "Operand value out of range: `%s' (`%s')" ;# <-- NOT TRANSLATED YET ##ID:001746## mcset $l "Value out of range: `%s' (%s)" \ "Value out of range: `%s' (%s)" ;# <-- NOT TRANSLATED YET ##ID:001747## mcset $l "Invalid label declaration: `%s'\n\tLabels can contain alphanumeric characters only and must not begin with a digit" \ "Invalid label declaration: `%s'\n\tLabels can contain alphanumeric characters only and must not begin with a digit" ;# <-- NOT TRANSLATED YET ##ID:001748## mcset $l "Unknown keyword: `%s'\n\t`%s' is neither macro nor instruction nor directive" \ "Unknown keyword: `%s'\n\t`%s' is neither macro nor instruction nor directive" ;# <-- NOT TRANSLATED YET ##ID:001749## mcset $l "Invalid bit designator: %s" \ "Invalid bit designator: %s" ;# <-- NOT TRANSLATED YET ##ID:001750## mcset $l "Given register does not belong to the bit addressable area: %s" \ "Given register does not belong to the bit addressable area: %s" ;# <-- NOT TRANSLATED YET ##ID:001751## mcset $l "Invalid value: %s'" \ "Invalid value: %s'" ;# <-- NOT TRANSLATED YET ##ID:001752## mcset $l "Invalid numeric base `%s'\n\tPossible options are: __H (hex), __D (dec) __B (bin), __Q __O (oct) and 'char'" \ "Invalid numeric base `%s'\n\tPossible options are: __H (hex), __D (dec) __B (bin), __Q __O (oct) and 'char'" ;# <-- NOT TRANSLATED YET ##ID:001753## mcset $l "Special function register \"%s\" is not available on the target MCU" \ "Special function register \"%s\" is not available on the target MCU" ;# <-- NOT TRANSLATED YET ##ID:001754## mcset $l "Special function bit \"%s\" is not available on the target MCU" \ "Special function bit \"%s\" is not available on the target MCU" ;# <-- NOT TRANSLATED YET ##ID:001755## mcset $l "Symbol not defined: %s" \ "Symbol not defined: %s" ;# <-- NOT TRANSLATED YET ##ID:001756## mcset $l "Reserved keyword used as label" \ "Reserved keyword used as label" ;# <-- NOT TRANSLATED YET ##ID:001757## mcset $l "Invalid label: `%s' \n\t(labels can contain only alphanumeric characters and must not begin with a digit)" \ "Invalid label: `%s' \n\t(labels can contain only alphanumeric characters and must not begin with a digit)" ;# <-- NOT TRANSLATED YET ##ID:001758## mcset $l "Unable to overwrite already reserved program memory at address 0x%s -- compilation failed" \ "Unable to overwrite already reserved program memory at address 0x%s -- compilation failed" ;# <-- NOT TRANSLATED YET ##ID:001759## mcset $l "This instruction exceeding code memory capacity" \ "This instruction exceeding code memory capacity" ;# <-- NOT TRANSLATED YET ##ID:001760## mcset $l "No instruction found at address 0x00. Consider usage of appropriate ORG directive to clarify correct code placement." \ "No instruction found at address 0x00. Consider usage of appropriate ORG directive to clarify correct code placement." ;# <-- NOT TRANSLATED YET ##ID:001761## mcset $l "Label was already defined: `%s'" \ "Label is already defined: `%s'" ##ID:001762## mcset $l "Overwriting `%s' with `%s' (according to your previous definition!)" \ "Overwriting `%s' with `%s' (according to your previous definition!)" ;# <-- NOT TRANSLATED YET ##ID:001763## mcset $l "Too few operands, %s must take exactly %s operand" \ "Too few operands, %s must take exactly %s operand" ;# <-- NOT TRANSLATED YET ##ID:001764## mcset $l "Too few operands, %s must take exactly %s operands" \ "Too few operands, %s must take exactly %s operands" ;# <-- NOT TRANSLATED YET ##ID:001765## mcset $l "Too many operands, %s can take only %s operand" \ "Too many operands, %s can take only %s operand" ;# <-- NOT TRANSLATED YET ##ID:001766## mcset $l "Too many operands, %s can take only %s operands" \ "Too many operands, %s can take only %s operands" ;# <-- NOT TRANSLATED YET ##ID:001767## mcset $l "`%s' changed by compiler to `%s'" \ "`%s' changed by compiler to `%s'" ;# <-- NOT TRANSLATED YET ##ID:001768## mcset $l "Invalid set of operands: %s %s" \ "Invalid set of operands: %s %s" ;# <-- NOT TRANSLATED YET ##ID:001769## mcset $l "Direct value used as operand for %s" \ "Direct value used as operand for %s" ;# <-- NOT TRANSLATED YET ##ID:001770## mcset $l "Too many arguments, \$s extra argument(s)" \ "Too many arguments, \$s extra argument(s)" ;# <-- NOT TRANSLATED YET ##ID:001771## mcset $l "Too few arguments, %s argument(s) missing: %s ..." \ "Too few arguments, %s argument(s) missing: %s ..." ;# <-- NOT TRANSLATED YET ##ID:001772## mcset $l "Cannot define macro inside another one -- macro processing failed" \ "Cannot define macro inside another one -- macro processing failed" ;# <-- NOT TRANSLATED YET ##ID:001773## mcset $l "Missing number of repeats" \ "Missing number of repeats" ;# <-- NOT TRANSLATED YET ##ID:001774## mcset $l "Number of repeats is lower than zero" \ "Number of repeats is lower than zero" ;# <-- NOT TRANSLATED YET ##ID:001775## mcset $l "Zero number of repeats" \ "Zero number of repeats" ;# <-- NOT TRANSLATED YET ##ID:001776## mcset $l "Reserved keyword used as macro parameter: %s in macro %s" \ "Reserved keyword used as macro parameter: %s in macro %s" ;# <-- NOT TRANSLATED YET ##ID:001777## mcset $l "Reserved keyword substituted with macro argument: %s --> %s" \ "Reserved keyword substituted with macro argument: %s --> %s" ;# <-- NOT TRANSLATED YET ##ID:001778## mcset $l "Macro name is reserved keyword: %s" \ "Macro name is reserved keyword: %s" ;# <-- NOT TRANSLATED YET ##ID:001779## mcset $l "Macro `%s' is already defined" \ "Macro `%s' is already defined" ;# <-- NOT TRANSLATED YET ##ID:001780## mcset $l "Directive %s takes no arguments" \ "Directive %s takes no arguments" ;# <-- NOT TRANSLATED YET ##ID:001781## mcset $l "Label is not allowed here (%s)" \ "Label is not allowed here (%s)" ;# <-- NOT TRANSLATED YET ##ID:001782## mcset $l "Value of ``\$'' is not known at this point" \ "Value of ``\$'' is not known at this point" ;# <-- NOT TRANSLATED YET ##ID:001783## mcset $l "Unable to close macro, no macro is opened" \ "Unable to close macro, no macro is opened" ;# <-- NOT TRANSLATED YET ##ID:001784## mcset $l "Invalid label specification: ``%s''" \ "Invalid label specification: ``%s''" ;# <-- NOT TRANSLATED YET ##ID:001785## mcset $l "Missing name of macro" \ "Missing name of macro" ;# <-- NOT TRANSLATED YET ##ID:001786## mcset $l "Labels are not allowed before directives ENDM" \ "Labels are not allowed before directives ENDM" ;# <-- NOT TRANSLATED YET ##ID:001787## mcset $l "Missing file name" \ "Missing file name" ;# <-- NOT TRANSLATED YET ##ID:001788## mcset $l "Unable to open file: %s" \ "无法打开文件: %s" ##ID:001789## mcset $l "File not found: %s" \ "文件没有找到: %s" ##ID:001790## mcset $l "Extra symbols after `END' directive" \ "Extra symbols after `END' directive" ;# <-- NOT TRANSLATED YET ##ID:001791## mcset $l "Missing `END' directive" \ "Missing `END' directive" ;# <-- NOT TRANSLATED YET ##ID:001792## mcset $l "Missing address" \ "Missing address" ;# <-- NOT TRANSLATED YET ##ID:001793## mcset $l "Label already defined: `%s'" \ "Label already defined: `%s'" ;# <-- NOT TRANSLATED YET ##ID:001794## mcset $l "Invalid label: `%s'" \ "Invalid label: `%s'" ;# <-- NOT TRANSLATED YET ##ID:001795## mcset $l "This ORG has lower value than the previous one" \ "This ORG has lower value than the previous one" ;# <-- NOT TRANSLATED YET ##ID:001796## mcset $l "This formulation is deprecated, consider usage of \" \" instead" \ "This formulation is deprecated, consider usage of \" \" instead" ;# <-- NOT TRANSLATED YET ##ID:001797## mcset $l "Missing name of constant to define" \ "Missing name of constant to define" ;# <-- NOT TRANSLATED YET ##ID:001798## mcset $l "Empty expression" \ "Empty expression" ;# <-- NOT TRANSLATED YET ##ID:001799## mcset $l "Missing expression" \ "Missing expression" ;# <-- NOT TRANSLATED YET ##ID:001800## mcset $l "Argument value is out of range ({0 1 2 3}) : `%s'" \ "Argument value is out of range ({0 1 2 3}) : `%s'" ;# <-- NOT TRANSLATED YET ##ID:001801## mcset $l "Missing size" \ "Missing size" ;# <-- NOT TRANSLATED YET ##ID:001802## mcset $l "Length of data area cannot be negative number: %s" \ "Length of data area cannot be negative number: %s" ;# <-- NOT TRANSLATED YET ##ID:001803## mcset $l "Using `DBIT' directive, but active segment is `%s' (should be BSEG)" \ "Using `DBIT' directive, but active segment is `%s' (should be BSEG)" ;# <-- NOT TRANSLATED YET ##ID:001804## mcset $l "Using `%s' directive, but currently active segment is `%s'" \ "Using `%s' directive, but currently active segment is `%s'" ;# <-- NOT TRANSLATED YET ##ID:001805## mcset $l "Exceeding %s segment boundary by %s bites." \ "Exceeding %s segment boundary by %s bites." ;# <-- NOT TRANSLATED YET ##ID:001806## mcset $l "Exceeding %s segment boundary by %s Bytes." \ "Exceeding %s segment boundary by %s Bytes." ;# <-- NOT TRANSLATED YET ##ID:001807## mcset $l "Nearing %s segment boundary" \ "Nearing %s segment boundary" ;# <-- NOT TRANSLATED YET ##ID:001808## mcset $l "Overwriting reserved memory -- in %s area at addresses: %s" \ "Overwriting reserved memory -- in %s area at addresses: %s" ;# <-- NOT TRANSLATED YET ##ID:001809## mcset $l "Unable redefine constant: %s" \ "Unable redefine constant: %s" ;# <-- NOT TRANSLATED YET ##ID:001810## mcset $l "Ambiguous symbol definition: %s" \ "Ambiguous symbol definition: %s" ;# <-- NOT TRANSLATED YET ##ID:001811## mcset $l "Unknown operator: `%s', should be `%s at
', e.g. `%s at X+0FFh'" \ "Unknown operator: `%s', should be `%s at
', e.g. `%s at X+0FFh'" ;# <-- NOT TRANSLATED YET ##ID:001812## mcset $l "Segment pointer is too high: %s / %s" \ "Segment pointer is too high: %s / %s" ;# <-- NOT TRANSLATED YET ##ID:001813## mcset $l "Segment pointer cannot be negative: `%s'" \ "Segment pointer cannot be negative: `%s'" ;# <-- NOT TRANSLATED YET ##ID:001814## mcset $l "Missing condition" \ "Missing condition" ;# <-- NOT TRANSLATED YET ##ID:001815## mcset $l "Unexpected `ELSE'" \ "Unexpected `ELSE'" ;# <-- NOT TRANSLATED YET ##ID:001816## mcset $l "Unexpected `ELSEIF'" \ "Unexpected `ELSEIF'" ;# <-- NOT TRANSLATED YET ##ID:001817## mcset $l "Unexpected `ENDIF'" \ "Unexpected `ENDIF'" ;# <-- NOT TRANSLATED YET ##ID:001818## mcset $l "Invalid symbolic name: %s" \ "Invalid symbolic name: %s" ;# <-- NOT TRANSLATED YET ##ID:001819## mcset $l "Invalid expression: `%s'" \ "Invalid expression: `%s'" ;# <-- NOT TRANSLATED YET ##ID:001820## mcset $l "Expected symbol to define, but got label: `%s'" \ "Expected symbol to define, but got label: `%s'" ;# <-- NOT TRANSLATED YET ##ID:001821## mcset $l "Invalid symbol name: `%s'" \ "Invalid symbol name: `%s'" ;# <-- NOT TRANSLATED YET ##ID:001822## mcset $l "Special value (with no numerical representation) assigned to constant: %s <- %s" \ "Special value (with no numerical representation) assigned to constant: %s <- %s" ;# <-- NOT TRANSLATED YET ##ID:001823## mcset $l "Trying to overwrite constant: %s" \ "Trying to overwrite constant: %s" ;# <-- NOT TRANSLATED YET ##ID:001824## mcset $l "Expression out of range" \ "Expression out of range" ;# <-- NOT TRANSLATED YET ##ID:001825## mcset $l "Exceeding code memory capacity: %s <- %s" \ "Exceeding code memory capacity: %s <- %s" ;# <-- NOT TRANSLATED YET ##ID:001826## mcset $l "Exceeding internal data memory capacity: %s <- %s" \ "Exceeding internal data memory capacity: %s <- %s" ;# <-- NOT TRANSLATED YET ##ID:001827## mcset $l "Exceeding external data memory capacity: %s <- %s" \ "Exceeding external data memory capacity: %s <- %s" ;# <-- NOT TRANSLATED YET ##ID:001828## mcset $l "Trying to change variable `%s' with wrong directive (EQU)" \ "Trying to change variable `%s' with wrong directive (EQU)" ;# <-- NOT TRANSLATED YET ##ID:001829## mcset $l "Setting new variable value: %s <- %s" \ "Setting new variable value: %s <- %s" ;# <-- NOT TRANSLATED YET ##ID:001830## mcset $l "Invalid expression - parentheses are not balanced: `%s'" \ "Invalid expression - parentheses are not balanced: `%s'" ;# <-- NOT TRANSLATED YET ##ID:001831## mcset $l "Invalid value: `%s' (should be char)" \ "Invalid value: `%s' (should be char)" ;# <-- NOT TRANSLATED YET ##ID:001832## mcset $l "Invalid numeric value: %s (should be decimal number)" \ "Invalid numeric value: %s (should be decimal number)" ;# <-- NOT TRANSLATED YET ##ID:001833## mcset $l "Invalid numeric value: %s (should be hexadecimal number)" \ "Invalid numeric value: %s (should be hexadecimal number)" ;# <-- NOT TRANSLATED YET ##ID:001834## mcset $l "Invalid numeric value: %s (should be binary number)" \ "Invalid numeric value: %s (should be binary number)" ;# <-- NOT TRANSLATED YET ##ID:001835## mcset $l "Invalid numeric value: %s (should be octal number)" \ "Invalid numeric value: %s (should be octal number)" ;# <-- NOT TRANSLATED YET ##ID:001836## mcset $l "Undefined symbol name: %s" \ "Undefined symbol name: %s" ;# <-- NOT TRANSLATED YET ##ID:001837## mcset $l "Floating point value converted to integer value `%s' -> `%s'" \ "Floating point value converted to integer value `%s' -> `%s'" ;# <-- NOT TRANSLATED YET ##ID:001838## mcset $l "Overflow `%s' -> `%s'" \ "Overflow `%s' -> `%s'" ;# <-- NOT TRANSLATED YET ##ID:001839## mcset $l "Cannot to use string `%s' as a valid value" \ "Cannot to use string `%s' as a valid value" ;# <-- NOT TRANSLATED YET ##ID:001840## mcset $l "Cannot to use string `%s' as value" \ "Cannot to use string `%s' as value" ;# <-- NOT TRANSLATED YET ##ID:001841## mcset $l "Compilation error at %s: %s" \ "Compilation error at %s: %s" ;# <-- NOT TRANSLATED YET ##ID:001842## mcset $l " in %s" \ " in %s" ;# <-- NOT TRANSLATED YET ##ID:001843## mcset $l "\033\[31;1mCompilation error\033\[m at \033\[31;1;4m%s\033\[m%s: %s" \ "\033\[31;1mCompilation error\033\[m at \033\[31;1;4m%s\033\[m%s: %s" ;# <-- NOT TRANSLATED YET ##ID:001844## mcset $l "Notice at %s: %s" \ "Notice at %s: %s" ;# <-- NOT TRANSLATED YET ##ID:001845## mcset $l "\033\[33;1mNotice\033\[m at \033\[33;1;4m%s\033\[m%s: %s" \ "\033\[33;1mNotice\033\[m at \033\[33;1;4m%s\033\[m%s: %s" ;# <-- NOT TRANSLATED YET ##ID:001846## mcset $l "Warning at %s: %s" \ "Warning at %s: %s" ;# <-- NOT TRANSLATED YET ##ID:001847## mcset $l "\033\[33mWarning\033\[m at \033\[33;4m%s\033\[m%s: %s" \ "\033\[33mWarning\033\[m at \033\[33;4m%s\033\[m%s: %s" ;# <-- NOT TRANSLATED YET ##ID:001848## mcset $l "Syntax error at %s: %s" \ "Syntax error at %s: %s" ;# <-- NOT TRANSLATED YET ##ID:001849## mcset $l "\033\[31;1mSyntax error\033\[m at \033\[31;1;4m%s\033\[m%s: %s" \ "\033\[31;1mSyntax error\033\[m at \033\[31;1;4m%s\033\[m%s: %s" ;# <-- NOT TRANSLATED YET } # errorhandler.tcl # ============================================================================== namespace eval ErrorHandler { ##ID:001850## mcset $l "PROGRAM ERROR " \ "程序错误 " ##ID:001851## mcset $l "Error log saved in: %s\n" \ "错误日志保存在: %s\n" ##ID:001852## mcset $l "Please send this file to %s or report this bug at http://mcu8051ide.sf.net/forum\n\n\n" \ "Please send this file to %s or report this bug at http://mcu8051ide.sf.net/forum\n\n\n" ;# <-- NOT TRANSLATED YET ##ID:001853## mcset $l "ERROR DETAILS:\n--------------\n" \ "错误详细信息:\n--------------\n" ##ID:001854## mcset $l "Skip errors" \ "跳过错误" ##ID:001855## mcset $l "Close" \ "关闭" ##ID:001856## mcset $l "PROGRAM ERROR - MCU 8051 IDE" \ "程序错误 - MCU 8051 IDE" } # notes.tcl # ============================================================================== namespace eval Notes { ##ID:001857## mcset $l "Pencil" \ "铅笔" ##ID:001858## mcset $l "Line" \ "线" ##ID:001859## mcset $l "Arrow" \ "箭头" ##ID:001860## mcset $l "Rectangle" \ "矩形" ##ID:001861## mcset $l "Oval" \ "椭圆形" ##ID:001862## mcset $l "Insert text" \ "插入文本" ##ID:001863## mcset $l "Move" \ "移动" ##ID:001864## mcset $l "Move canvas" \ "移动画布" ##ID:001865## mcset $l "Eraser" \ "橡皮擦" ##ID:001866## mcset $l "Zoom in" \ "放大" ##ID:001867## mcset $l "Zoom out" \ "缩小" ##ID:001868## mcset $l "Insert image" \ "插入图像" ##ID:001869## mcset $l "Select color" \ "选择颜色" ##ID:001870## mcset $l "Clear all" \ "清除所有" ##ID:001871## mcset $l "Really close ?" \ "真的关闭 ?" ##ID:001872## mcset $l "Do you really want to close your notes ? (There is no save function ...)" \ "Do you really want to close your notes ? (There is no save function ...)" ;# <-- NOT TRANSLATED YET ##ID:001873## mcset $l "Close" \ "关闭" ##ID:001874## mcset $l "Shade" \ "收缩" ##ID:001875## mcset $l "Draw ovals" \ "绘制椭圆" ##ID:001876## mcset $l "Draw rectangles" \ "绘制矩形" ##ID:001877## mcset $l "Draw arrows" \ "绘制箭头" ##ID:001878## mcset $l "Draw lines" \ "绘制线" ##ID:001879## mcset $l "Text:" \ "文本:" ##ID:001880## mcset $l "Cancel" \ "取消" ##ID:001881## mcset $l "Ok" \ "Ok" ;# <-- NOT TRANSLATED YET ##ID:001882## mcset $l "Enter text" \ "输入文本" ##ID:001883## mcset $l "Are you sure ?" \ "您确定吗?" ##ID:001884## mcset $l "Do you really want to clear this notepad\n(there is no undo action)" \ "您难道真的要清除这个记事本?\n(无法返回的操作)" ##ID:001885## mcset $l "Insert image from file" \ "从文件中插入图像" ##ID:001886## mcset $l "Unable to read file" \ "无法读取文件" ##ID:001887## mcset $l "Scribble notepad" \ "便利贴" ##ID:001888## mcset $l "Portable network graphics" \ "Portable network graphics" ;# <-- NOT TRANSLATED YET } # sfrwatches.tcl # ============================================================================== namespace eval SFRWatches { ##ID:001889## mcset $l "Set to 0x00" \ "Set to 0x00" ;# <-- NOT TRANSLATED YET ##ID:001890## mcset $l "Set this register to 0" \ "Set this register to 0" ;# <-- NOT TRANSLATED YET ##ID:001891## mcset $l "Set to 0xFF" \ "Set to 0xFF" ;# <-- NOT TRANSLATED YET ##ID:001892## mcset $l "Set this register to 255" \ "Set this register to 255" ;# <-- NOT TRANSLATED YET ##ID:001893## mcset $l "HEX" \ "HEX" ;# <-- NOT TRANSLATED YET ##ID:001894## mcset $l "DEC" \ "DEC" ;# <-- NOT TRANSLATED YET ##ID:001895## mcset $l "Register" \ "Register" ;# <-- NOT TRANSLATED YET ##ID:001896## mcset $l "Search:" \ "Search:" ;# <-- NOT TRANSLATED YET } # stackmonitor.tcl # ============================================================================== namespace eval StackMonitor { ##ID:001897## mcset $l "Do you really want to clear the list without any effect in simulator engine ?" \ "Do you really want to clear the list without any effect in simulator engine ?" ;# <-- NOT TRANSLATED YET ##ID:001898## mcset $l "Confirmation" \ "确认" ##ID:001899## mcset $l "Push value onto stack." \ "Push value onto stack." ;# <-- NOT TRANSLATED YET ##ID:001900## mcset $l "Close" \ "关闭" ##ID:001901## mcset $l "PUSH" \ "PUSH" ;# <-- NOT TRANSLATED YET ##ID:001902## mcset $l "POP" \ "POP" ;# <-- NOT TRANSLATED YET ##ID:001903## mcset $l "Clear" \ "清除" ##ID:001904## mcset $l "SP: " \ "SP: " ;# <-- NOT TRANSLATED YET ##ID:001905## mcset $l "Push value onto stack (HEX)" \ "Push value onto stack (HEX)" ;# <-- NOT TRANSLATED YET ##ID:001906## mcset $l "Stack - %s - MCU 8051 IDE" \ "Stack - %s - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:001907## mcset $l "General" \ "General" ;# <-- NOT TRANSLATED YET ##ID:001908## mcset $l "Subprogram" \ "Subprogram" ;# <-- NOT TRANSLATED YET ##ID:001909## mcset $l "Interrupt" \ "中断" ##ID:001910## mcset $l "Legend:" \ "Legend:" ;# <-- NOT TRANSLATED YET ##ID:001911## mcset $l "Show/Hide tool bar" \ "显示/隐藏工具栏" ##ID:001912## mcset $l "Current stack pointer value" \ "Current stack pointer value" ;# <-- NOT TRANSLATED YET # Keep string length here! ##ID:001913## mcset $l {Addr HH Dec Binary Oct A} \ {Addr HH Dec Binary Oct A} ;# <-- NOT TRANSLATED YET } # terminal.tcl # ============================================================================== namespace eval Terminal { ##ID:001914## mcset $l "Unable to find urxvt" \ "找不到urxvt" ##ID:001915## mcset $l "Unable to execute program \"urxvt\", terminal emulator is eiter not available or badly configured." \ "Unable to execute program \"urxvt\", terminal emulator is eiter not available or badly configured." ;# <-- NOT TRANSLATED YET } # eightsegment.tcl # ============================================================================== namespace eval EightSegment { ##ID:001916## mcset $l "8 segment editor" \ "8 segment editor" ;# <-- NOT TRANSLATED YET ##ID:001917## mcset $l "Common cathode" \ "Common cathode" ;# <-- NOT TRANSLATED YET ##ID:001918## mcset $l "Hex:" \ "Hex:" ;# <-- NOT TRANSLATED YET ##ID:001919## mcset $l "Dec:" \ "Dec:" ;# <-- NOT TRANSLATED YET ##ID:001920## mcset $l "Bin:" \ "Bin:" ;# <-- NOT TRANSLATED YET ##ID:001921## mcset $l "Copy to clipboard" \ "复制到剪贴板" ##ID:001922## mcset $l "Copy contents of the entrybox to clipboard" \ "Copy contents of the entrybox to clipboard" ;# <-- NOT TRANSLATED YET ##ID:001923## mcset $l "Common anode" \ "Common anode" ;# <-- NOT TRANSLATED YET ##ID:001924## mcset $l "LED" \ "LED" ;# <-- NOT TRANSLATED YET ##ID:001925## mcset $l "PIN" \ "PIN" ;# <-- NOT TRANSLATED YET ##ID:001926## mcset $l "Close" \ "关闭" } # symbol_viewer.tcl # ============================================================================== namespace eval SymbolViewer { ##ID:001927## mcset $l "Assembly symbol table - MCU 8051 IDE" \ "符号表集合 - MCU 8051 IDE" ##ID:001928## mcset $l "Copy symbol name" \ "复制符号名称" ##ID:001929## mcset $l "Copy hex value" \ "复制十六进制值" ##ID:001930## mcset $l "Copy dec value" \ "复制十进制值" ##ID:001931## mcset $l "Copy line" \ "复制行" ##ID:001932## mcset $l "Open *.LST" \ "打开*.LST" ##ID:001933## mcset $l "Load table of symbols from list file (*.lst)\n\tOnly for: ASEM-51, MCU8051IDE and ASM51" \ "Load table of symbols from list file (*.lst)\n\tOnly for: ASEM-51, MCU8051IDE and ASM51" ;# <-- NOT TRANSLATED YET ##ID:001934## mcset $l "Open code listing" \ "打开代码列表" ##ID:001935## mcset $l "Reload" \ "刷新" ##ID:001936## mcset $l "Reload opened file" \ "刷新打开的文件" ##ID:001937## mcset $l "Search:" \ "搜索:" ##ID:001938## mcset $l "Search for symbol by its name or value" \ "Search for symbol by its name or value" ;# <-- NOT TRANSLATED YET ##ID:001939## mcset $l "Search for symbol" \ "Search for symbol" ;# <-- NOT TRANSLATED YET ##ID:001940## mcset $l "Clear search entry box" \ "清除搜索输入框" ##ID:001941## mcset $l "Symbol\t\t\t\tType\tHEX\tDEC\tUsed" \ "Symbol\t\t\t\tType\tHEX\tDEC\tUsed" ;# <-- NOT TRANSLATED YET ##ID:001942## mcset $l "Display" \ "显示" ##ID:001943## mcset $l "Used symbols" \ "Used symbols" ;# <-- NOT TRANSLATED YET ##ID:001944## mcset $l "Unused symbols" \ "Unused symbols" ;# <-- NOT TRANSLATED YET ##ID:001945## mcset $l "Sort by" \ "Sort by" ;# <-- NOT TRANSLATED YET ##ID:001946## mcset $l "Incremental order" \ "Incremental order" ;# <-- NOT TRANSLATED YET ##ID:001947## mcset $l "Decremental order" \ "Decremental order" ;# <-- NOT TRANSLATED YET ##ID:001948## mcset $l "Load symbol table - MCU 8051 IDE" \ "载入符号表 - MCU 8051 IDE" ##ID:001949## mcset $l "Code listing" \ "代码列表" ##ID:001950## mcset $l "Invalid file" \ "无效文件" ##ID:001951## mcset $l "Unable to use selected file. Please check your permissions. File: '%s'" \ "Unable to use selected file. Please check your permissions. File: '%s'" ;# <-- NOT TRANSLATED YET ##ID:001952## mcset $l "YES" \ "Yes" ##ID:001953## mcset $l "NO" \ "NO" ;# <-- NOT TRANSLATED YET } # sfrmap.tcl # ============================================================================== namespace eval SFRMap { ##ID:001954## mcset $l "Map of SFR area" \ "Map of SFR area" ;# <-- NOT TRANSLATED YET ##ID:001955## mcset $l "Reserved" \ "Reserved" ;# <-- NOT TRANSLATED YET ##ID:001956## mcset $l "Bit addressable" \ "Bit addressable" ;# <-- NOT TRANSLATED YET ##ID:001957## mcset $l "HEX:" \ "HEX:" ;# <-- NOT TRANSLATED YET ##ID:001958## mcset $l "DEC:" \ "DEC:" ;# <-- NOT TRANSLATED YET ##ID:001959## mcset $l "BIN:" \ "BIN:" ;# <-- NOT TRANSLATED YET ##ID:001960## mcset $l "OCT:" \ "OCT:" ;# <-- NOT TRANSLATED YET } # hibernate.tcl # ============================================================================== namespace eval Hibernate { ##ID:001961## mcset $l "Abort" \ "中止" ##ID:001962## mcset $l "Hibernation progress" \ "Hibernation progress" ;# <-- NOT TRANSLATED YET ##ID:001963## mcset $l "Interrupt at vector 0x%s " \ "Interrupt at vector 0x%s " ;# <-- NOT TRANSLATED YET ##ID:001964## mcset $l "Fatal error" \ "致命错误" ##ID:001965## mcset $l "Version of this M5IHIB file is higher than %s\nUnable to continue." \ "Version of this M5IHIB file is higher than %s\nUnable to continue." ;# <-- NOT TRANSLATED YET ##ID:001966## mcset $l "The following problems must be \nresolved before program resumption" \ "The following problems must be \nresolved before program resumption" ;# <-- NOT TRANSLATED YET ##ID:001967## mcset $l "This file is indented for %s but the current MCU is %s" \ "This file is indented for %s but the current MCU is %s" ;# <-- NOT TRANSLATED YET ##ID:001968## mcset $l "Set current MCU to %s" \ "Set current MCU to %s" ;# <-- NOT TRANSLATED YET ##ID:001969## mcset $l "This file contains %s B of external data memory but but your processor has %s B" \ "This file contains %s B of external data memory but but your processor has %s B" ;# <-- NOT TRANSLATED YET ##ID:001970## mcset $l "Set current XDATA capacity to %s B" \ "Set current XDATA capacity to %s B" ;# <-- NOT TRANSLATED YET ##ID:001971## mcset $l "Ignore this difference" \ "Ignore this difference" ;# <-- NOT TRANSLATED YET ##ID:001972## mcset $l "Current file (%s) has different MD5 hash than MD5 recorded in this hibernation file" \ "Current file (%s) has different MD5 hash than MD5 recorded in this hibernation file" ;# <-- NOT TRANSLATED YET ##ID:001973## mcset $l "This hibernation file was generated from \"%s\" but current file is \"%s\"" \ "This hibernation file was generated from \"%s\" but current file is \"%s\"" ;# <-- NOT TRANSLATED YET ##ID:001974## mcset $l "Ok" \ "Ok" ;# <-- NOT TRANSLATED YET ##ID:001975## mcset $l "Cancel" \ "取消" ##ID:001976## mcset $l "Program resumption" \ "恢复计划" ##ID:001977## mcset $l "Options:" \ "选项:" } # find_in_files.tcl # ============================================================================== namespace eval FindInFiles { ##ID:001978## mcset $l "Go to" \ "转到" ##ID:001979## mcset $l "Go to this line" \ "前往此行" ##ID:001980## mcset $l "Clear" \ "清除" ##ID:001981## mcset $l "Clear this panel" \ "清除此面板" ##ID:001982## mcset $l "Search pattern" \ "搜索模式" ##ID:001983## mcset $l "File mask (e.g. \"*.c,*.asm\")" \ "File mask (e.g. \"*.c,*.asm\")" ;# <-- NOT TRANSLATED YET ##ID:001984## mcset $l "Select folder" \ "选择文件夹" ##ID:001985## mcset $l "Recursive" \ "递归" ##ID:001986## mcset $l "Search in all subfolders" \ "搜索所有子文件夹" ##ID:001987## mcset $l "Find" \ "查找" ##ID:001988## mcset $l "Start / Stop search" \ "开始/停止搜索" ##ID:001989## mcset $l "Clear results" \ "清除结果" ##ID:001990## mcset $l "Case sensitive" \ "区分大小写" ##ID:001991## mcset $l "Perform case sensitive search" \ "执行区分大小写的搜索" ##ID:001992## mcset $l "Regular expression" \ "正规表达式" ##ID:001993## mcset $l "Pattern is a regular expression" \ "正规表达式模式" ##ID:001994## mcset $l "Pattern:" \ "模式:" ##ID:001995## mcset $l "Folder:" \ "文件夹:" ##ID:001996## mcset $l "Mask:" \ "Mask:" ;# <-- NOT TRANSLATED YET ##ID:001997## mcset $l "Clear pattern entrybox" \ "Clear pattern entrybox" ;# <-- NOT TRANSLATED YET ##ID:001998## mcset $l "Show help for file mask" \ "Show help for file mask" ;# <-- NOT TRANSLATED YET ##ID:001999## mcset $l "Choose directory - MCU 8051 IDE" \ "选择目录 - MCU 8051 IDE" ##ID:002000## mcset $l "Folder not found" \ "没有找到文件夹" ##ID:002001## mcset $l "The specified folder does not exist.\n'%s'" \ "The specified folder does not exist.\n'%s'" ;# <-- NOT TRANSLATED YET ##ID:002002## mcset $l "The string specified as a folder is not a folder.\n'%s'" \ "The string specified as a folder is not a folder.\n'%s'" ;# <-- NOT TRANSLATED YET ##ID:002003## mcset $l "Error" \ "错误" ##ID:002004## mcset $l "Invalid regular expression" \ "Invalid regular expression" ;# <-- NOT TRANSLATED YET ##ID:002005## mcset $l "Stop" \ "停止" ##ID:002006## mcset $l "-- click to close --" \ "-- 点击关闭 --" ##ID:002007## mcset $l "Comma separated list of file masks (e.g \"*.c,*.h,*.asm\")\n" \ "Comma separated list of file masks (e.g \"*.c,*.h,*.asm\")\n" ;# <-- NOT TRANSLATED YET ##ID:002008## mcset $l "The mask may contain any of the following special characters:\n" \ "The mask may contain any of the following special characters:\n" ;# <-- NOT TRANSLATED YET ##ID:002009## mcset $l " ? Matches any single character.\n" \ " ? Matches any single character.\n" ;# <-- NOT TRANSLATED YET ##ID:002010## mcset $l " * Matches any sequence of zero or more characters.\n" \ " * Matches any sequence of zero or more characters.\n" ;# <-- NOT TRANSLATED YET ##ID:002011## mcset $l " \[chars\] Matches any single character in chars.\n" \ " \[chars\] Matches any single character in chars.\n" ;# <-- NOT TRANSLATED YET ##ID:002012## mcset $l " If chars contains a sequence of the form a-b then any\n" \ " If chars contains a sequence of the form a-b then any\n" ;# <-- NOT TRANSLATED YET ##ID:002013## mcset $l " character between a and b (inclusive) will match.\n" \ " character between a and b (inclusive) will match.\n" ;# <-- NOT TRANSLATED YET ##ID:002014## mcset $l " \\x Matches the character x." \ " \\x Matches the character x." ;# <-- NOT TRANSLATED YET } # fsbrowser.tcl # ============================================================================== namespace eval FSBrowser { ##ID:002015## mcset $l "Sorting" \ "排序" ##ID:002016## mcset $l "By Name" \ "按名称" ##ID:002017## mcset $l "Sort files by name" \ "按文件名称排序" ##ID:002018## mcset $l "By Date" \ "按日期" ##ID:002019## mcset $l "Sort files by date" \ "按文件日期排序" ##ID:002020## mcset $l "By Size" \ "俺大小" ##ID:002021## mcset $l "Sort files by size" \ "按文件大小排序" ##ID:002022## mcset $l "Reverse" \ "反向" ##ID:002023## mcset $l "Decremental sorting" \ "递减排序" ##ID:002024## mcset $l "Case insensitive" \ "不区分大小写" ##ID:002025## mcset $l "Sorting mode ASCII / Dictionary" \ "Sorting mode ASCII / Dictionary" ;# <-- NOT TRANSLATED YET ##ID:002026## mcset $l "Show hidden files" \ "显示隐藏文件" ##ID:002027## mcset $l "Show / Ignore files starting with dot" \ "显示/忽略文件开头点" ##ID:002028## mcset $l "Up" \ "向上" ##ID:002029## mcset $l "Go to parent folder" \ "转到父文件夹" ##ID:002030## mcset $l "Back" \ "后退" ##ID:002031## mcset $l "Go back in history" \ "转到上一个访问的位置" ##ID:002032## mcset $l "Forward" \ "向前" ##ID:002033## mcset $l "Go forward in history" \ "转到下一个访问的位置" ##ID:002034## mcset $l "Home" \ "主文件夹" ##ID:002035## mcset $l "Go to your home folder" \ "转到您的主文件夹" ##ID:002036## mcset $l "Reload" \ "刷新" ##ID:002037## mcset $l "Reload file list" \ "刷新文件列表" ##ID:002038## mcset $l "Rename" \ "重命名" ##ID:002039## mcset $l "Rename file" \ "重命名文件" ##ID:002040## mcset $l "Delete" \ "删除" ##ID:002041## mcset $l "Delete file" \ "删除文件" ##ID:002042## mcset $l "New folder" \ "新建文件夹" ##ID:002043## mcset $l "Create new directory" \ "新建目录" ##ID:002044## mcset $l "Bookmark folder" \ "书签文件夹" ##ID:002045## mcset $l "Bookmark the current directory" \ "Bookmark the current directory" ;# <-- NOT TRANSLATED YET ##ID:002046## mcset $l "Properties" \ "属性" ##ID:002047## mcset $l "Show file properties" \ "显示文件属性" ##ID:002048## mcset $l "Add bookmark" \ "添加书签" ##ID:002049## mcset $l "Bookmark the current folder" \ "书签当前文件夹" ##ID:002050## mcset $l "Edit bookmarks" \ "编辑书签" ##ID:002051## mcset $l "Invoke bookmark editor" \ "调用书签编辑器" ##ID:002052## mcset $l "Back in history" \ "转到上一个访问的位置" ##ID:002053## mcset $l "Forward in history" \ "转到下一个访问的位置" ##ID:002054## mcset $l "Bookmark" \ "书签" ##ID:002055## mcset $l "Bookmark menu" \ "书签菜单" ##ID:002056## mcset $l "Current document folder" \ "当前的文件夹" ##ID:002057## mcset $l "Go to directory containing the current document" \ "转到当前文档所在的目录" ##ID:002058## mcset $l "Configure" \ "配置" ##ID:002059## mcset $l "File system browser configuration menu" \ "文件系统浏览器的配置菜单" ##ID:002060## mcset $l "Current directory" \ "当前目录" ##ID:002061## mcset $l "Directory location bar" \ "目录位置栏" ##ID:002062## mcset $l "Confirm directory location" \ "目录位置确认" ##ID:002063## mcset $l "Filter" \ "过滤器" ##ID:002064## mcset $l "File filter" \ "文件过滤器" ##ID:002065## mcset $l "Invalid directory" \ "无效目录" ##ID:002066## mcset $l "The specified directory does not exist:\n%s" \ "The specified directory does not exist:\n%s" ;# <-- NOT TRANSLATED YET ##ID:002067## mcset $l "Unable to compile" \ "无法编译" ##ID:002068## mcset $l "Unable to open source file while simulator is engaged." \ "Unable to open source file while simulator is engaged." ;# <-- NOT TRANSLATED YET ##ID:002069## mcset $l "Open file %s" \ "打开文件 %s" ##ID:002070## mcset $l "This file does not look like a source code.\nDo you really want to open it ?" \ "This file does not look like a source code.\nDo you really want to open it ?" ;# <-- NOT TRANSLATED YET ##ID:002071## mcset $l "Permission denied" \ "没有权限" ##ID:002072## mcset $l "Unable to rename file:\n%s" \ "无法重命名文件:\n%s" ##ID:002073## mcset $l "Do you really want to delete file:\n%s" \ "您是否确定删除文件:\n%s" ##ID:002074## mcset $l "Unable to remove file:\n%s" \ "无法删除文件:\n%s" ##ID:002075## mcset $l "Create new folder in:\n%s" \ "在创建新文件夹:\n%s" ##ID:002076## mcset $l "Clear" \ "清除" ##ID:002077## mcset $l "Ok" \ "Ok" ;# <-- NOT TRANSLATED YET ##ID:002078## mcset $l "Cancel" \ "取消" ##ID:002079## mcset $l "Unable to create folder" \ "无法创建文件夹" ##ID:002080## mcset $l "Unable to create the specified folder" \ "无法创建指定的文件夹" ##ID:002081## mcset $l "Directory" \ "目录" ##ID:002082## mcset $l "File" \ "文件" ##ID:002083## mcset $l "Unknown Error" \ "未知错误" ##ID:002084## mcset $l "This file apparently does not exist" \ "此文件显然不存在" ##ID:002085## mcset $l "General" \ "General" ;# <-- NOT TRANSLATED YET ##ID:002086## mcset $l "Permissions" \ "权限" ##ID:002087## mcset $l "Name:" \ "名称:" ##ID:002088## mcset $l "Access permissions" \ "访问权限" ##ID:002089## mcset $l "Ownership" \ "所有权" ##ID:002090## mcset $l "Owner" \ "所有主" ##ID:002091## mcset $l "Group" \ "所有组" ##ID:002092## mcset $l "Item properties" \ "项目属性" ##ID:002093## mcset $l "Unable to change permissions for file:\n%s" \ "Unable to change permissions for file:\n%s" ;# <-- NOT TRANSLATED YET ##ID:002094## mcset $l "Unable to rename file:\n%s\n\t=>\n%s" \ "无法重命名文件:\n%s\n\t=>\n%s" } # ihextools.tcl # ============================================================================== namespace eval IHexTools { ##ID:002095## mcset $l "Line contains invalid characters" \ "Line contains invalid characters" ;# <-- NOT TRANSLATED YET ##ID:002096## mcset $l "Line contains even number of characters" \ "Line contains even number of characters" ;# <-- NOT TRANSLATED YET ##ID:002097## mcset $l "Unknown record type '%s'" \ "Unknown record type '%s'" ;# <-- NOT TRANSLATED YET ##ID:002098## mcset $l "Bad checksum" \ "Bad checksum" ;# <-- NOT TRANSLATED YET ##ID:002099## mcset $l "Bad length" \ "Bad length" ;# <-- NOT TRANSLATED YET ##ID:002100## mcset $l "Missing EOF" \ "Missing EOF" ;# <-- NOT TRANSLATED YET ##ID:002101## mcset $l "Data length exceeding limit 0x10000" \ "Data length exceeding limit 0x10000" ;# <-- NOT TRANSLATED YET ##ID:002102## mcset $l "Invalid address '%s'" \ "Invalid address '%s'" ;# <-- NOT TRANSLATED YET ##ID:002103## mcset $l "Invalid line number '%s'" \ "Invalid line number '%s'" ;# <-- NOT TRANSLATED YET ##ID:002104## mcset $l "Invalid data field" \ "Invalid data field" ;# <-- NOT TRANSLATED YET ##ID:002105## mcset $l "Error at line %s:\t" \ "Error at line %s:\t" ;# <-- NOT TRANSLATED YET } # project.tcl # ============================================================================== namespace eval Project { ##ID:002106## mcset $l "Project loading error" \ "项目加载错误" ##ID:002107## mcset $l "ERROR:\nThe project file cannot be loaded correctly due to a xml parsing error. The file is either corrupted or it is not a project file acceptable by this environment." \ "ERROR:\nThe project file cannot be loaded correctly due to a xml parsing error. The file is either corrupted or it is not a project file acceptable by this environment." ;# <-- NOT TRANSLATED YET ##ID:002108## mcset $l "Converting old project file to new version" \ "Converting old project file to new version" ;# <-- NOT TRANSLATED YET } # simulator.tcl # ============================================================================== namespace eval Simulator { ##ID:002109## mcset $l "Simulator warning" \ "模拟器错误" ##ID:002110## mcset $l "Ok" \ "Ok" ;# <-- NOT TRANSLATED YET ##ID:002111## mcset $l "See simulator configuration dialog\nMain Menu -> Configure -> Simulator" \ "See simulator configuration dialog\n主菜单 -> 配置 -> 模拟器" ##ID:002112## mcset $l "Do not show this dialog again" \ "不再显示此对话框" ##ID:002113## mcset $l "PC:" \ "PC:" ;# <-- NOT TRANSLATED YET ##ID:002114## mcset $l "Line:" \ "Line:" ;# <-- NOT TRANSLATED YET ##ID:002115## mcset $l "File:" \ "文件:" ##ID:002116## mcset $l "Invalid return from interrupt" \ "Invalid return from interrupt" ;# <-- NOT TRANSLATED YET ##ID:002117## mcset $l "Unable to initialize EEPROM programming cycle\nbecause EEMWE, RDYBSY and WRTINH must be set\n" \ "Unable to initialize EEPROM programming cycle\nbecause EEMWE, RDYBSY and WRTINH must be set\n" ;# <-- NOT TRANSLATED YET ##ID:002118## mcset $l "Data EEPROM write cycle aborted\n" \ "Data EEPROM write cycle aborted\n" ;# <-- NOT TRANSLATED YET ##ID:002119## mcset $l "Unable to read write-only register.\nRandom value returned.\n\nRegister:\t\t0x%s" \ "Unable to read write-only register.\nRandom value returned.\n\nRegister:\t\t0x%s" ;# <-- NOT TRANSLATED YET ##ID:002120## mcset $l "Invalid instruction OP code\n" \ "Invalid instruction OP code\n" ;# <-- NOT TRANSLATED YET ##ID:002121## mcset $l "Stack overflow\n" \ "Stack overflow\n" ;# <-- NOT TRANSLATED YET ##ID:002122## mcset $l "Stack underflow\n" \ "Stack underflow\n" ;# <-- NOT TRANSLATED YET ##ID:002123## mcset $l "WATCHDOG OVERFLOW\n" \ "看门狗溢出\n" ##ID:002124## mcset $l "Timer mode has been changed while timer was running.\nIt is important to stop timer/counter before changing modes.\n\nTimer number: %s\n" \ "Timer mode has been changed while timer was running.\nIt is important to stop timer/counter before changing modes.\n\nTimer number: %s\n" ;# <-- NOT TRANSLATED YET ##ID:002125## mcset $l "UART mode has been changed while UART was engaged.\n" \ "UART mode has been changed while UART was engaged.\n" ;# <-- NOT TRANSLATED YET ##ID:002126## mcset $l "UART: Frame discarded (according to MCS-51 manual)\n" \ "UART: Frame discarded (according to MCS-51 manual)\n" ;# <-- NOT TRANSLATED YET ##ID:002127## mcset $l "Unable to access file:\n%s" \ "无法访问文件:\n%s" ##ID:002128## mcset $l "Permission denied" \ "没有权限" ##ID:002129## mcset $l "Specified file does already exist,\ndo you want to overwrite it ?" \ "Specified file does already exist,\ndo you want to overwrite it ?" ;# <-- NOT TRANSLATED YET ##ID:002130## mcset $l "Overwrite file ?" \ "覆盖文件 ?" ##ID:002131## mcset $l "Save error log - MCU 8051 IDE" \ "保存错误日志 - MCU 8051 IDE" ##ID:002132## mcset $l "Undefined result - MCU 8051 IDE" \ "未定义的结果 - MCU 8051 IDE" ##ID:002133## mcset $l "Save as XHTML" \ "另存为XHTML" ##ID:002134## mcset $l "Log files" \ "Log files" ;# <-- NOT TRANSLATED YET ##ID:002135## mcset $l "HTML files" \ "HTML files" ;# <-- NOT TRANSLATED YET ##ID:002136## mcset $l "Save as plain text" \ "保存为纯文本" ##ID:002137## mcset $l "\"Undefined result\"" \ "\"未定义的结果\"" ##ID:002138## mcset $l "Summary:" \ "Summary:" ;# <-- NOT TRANSLATED YET ##ID:002139## mcset $l "\nYour program tried access to register at address " \ "\nYour program tried access to register at address " ;# <-- NOT TRANSLATED YET ##ID:002140## mcset $l "\nYour program tried indirect access to register at address " \ "\nYour program tried indirect access to register at address " ;# <-- NOT TRANSLATED YET ##ID:002141## mcset $l "\nYour program tried direct access to register at address " \ "\nYour program tried direct access to register at address " ;# <-- NOT TRANSLATED YET ##ID:002142## mcset $l "CODE" \ "CODE" ;# <-- NOT TRANSLATED YET ##ID:002143## mcset $l "XDATA" \ "XDATA" ;# <-- NOT TRANSLATED YET ##ID:002144## mcset $l "Bit area" \ "Bit area" ;# <-- NOT TRANSLATED YET ##ID:002145## mcset $l "IDATA" \ "IDATA" ;# <-- NOT TRANSLATED YET ##ID:002146## mcset $l "SFR" \ "SFR" ;# <-- NOT TRANSLATED YET ##ID:002147## mcset $l "0x%s in program memory" \ "0x%s in program memory" ;# <-- NOT TRANSLATED YET ##ID:002148## mcset $l "0x%s in external data memory" \ "0x%s in external data memory" ;# <-- NOT TRANSLATED YET ##ID:002149## mcset $l "0x%s in internal data memory" \ "0x%s in internal data memory" ;# <-- NOT TRANSLATED YET ##ID:002150## mcset $l "0x%s in bit addressable area" \ "0x%s in bit addressable area" ;# <-- NOT TRANSLATED YET ##ID:002151## mcset $l "0x%s in special function registers area" \ "0x%s in special function registers area" ;# <-- NOT TRANSLATED YET ##ID:002152## mcset $l ". This register is not implemented on this processor (" \ ". This register is not implemented on this processor (" ;# <-- NOT TRANSLATED YET ##ID:002153## mcset $l ") in this configuration. You can continue in simulation but result of this operation is undefined." \ ") in this configuration. You can continue in simulation but result of this operation is undefined." ;# <-- NOT TRANSLATED YET ##ID:002154## mcset $l "\n\nError details:" \ "\n\n错误的详细信息:" ##ID:002155## mcset $l "\n\tTarget memory:\t\t" \ "\n\tTarget memory:\t\t" ;# <-- NOT TRANSLATED YET ##ID:002156## mcset $l "\n\tTarget address: \t" \ "\n\tTarget address: \t" ;# <-- NOT TRANSLATED YET ##ID:002157## mcset $l "\n\tLine:\t\t\t" \ "\n\tLine:\t\t\t" ;# <-- NOT TRANSLATED YET ##ID:002158## mcset $l "\n\tFile:\t\t\t" \ "\n\tFile:\t\t\t" ;# <-- NOT TRANSLATED YET ##ID:002159## mcset $l "\n\tProject:\t\t" \ "\n\tProject:\t\t" ;# <-- NOT TRANSLATED YET ##ID:002160## mcset $l "\n\nProcessor details:" \ "\n\nProcessor details:" ;# <-- NOT TRANSLATED YET ##ID:002161## mcset $l "\n\tType:\t\t\t" \ "\n\tType:\t\t\t" ;# <-- NOT TRANSLATED YET ##ID:002162## mcset $l "\n\tRam size:\t\t" \ "\n\tRam size:\t\t" ;# <-- NOT TRANSLATED YET ##ID:002163## mcset $l "\n\tProgram memory: \t" \ "\n\tProgram memory: \t" ;# <-- NOT TRANSLATED YET ##ID:002164## mcset $l "\n\tExternal memory:\t" \ "\n\tExternal memory:\t" ;# <-- NOT TRANSLATED YET ##ID:002165## mcset $l "\n\tExpanded memory:\t" \ "\n\tExpanded memory:\t" ;# <-- NOT TRANSLATED YET } # ledmatrix.tcl # ============================================================================== namespace eval LedMatrix { ##ID:002166## mcset $l "Fade out interval" \ "Fade out interval" ;# <-- NOT TRANSLATED YET ##ID:002167## mcset $l "dim_interval_changed" \ "dim_interval_changed" ;# <-- NOT TRANSLATED YET ##ID:002168## mcset $l "Set LED dim interval to 0 instruction cycles" \ "Set LED dim interval to 0 instruction cycles" ;# <-- NOT TRANSLATED YET ##ID:002169## mcset $l "Set LED dim interval to 5 instruction cycles" \ "Set LED dim interval to 5 instruction cycles" ;# <-- NOT TRANSLATED YET ##ID:002170## mcset $l "Set LED dim interval to 10 instruction cycles" \ "Set LED dim interval to 10 instruction cycles" ;# <-- NOT TRANSLATED YET ##ID:002171## mcset $l "Set LED dim interval to 20 instruction cycles" \ "Set LED dim interval to 20 instruction cycles" ;# <-- NOT TRANSLATED YET ##ID:002172## mcset $l "Set LED dim interval to 50 instruction cycles" \ "Set LED dim interval to 50 instruction cycles" ;# <-- NOT TRANSLATED YET ##ID:002173## mcset $l "Set LED dim interval to 100 instruction cycles" \ "Set LED dim interval to 100 instruction cycles" ;# <-- NOT TRANSLATED YET ##ID:002174## mcset $l "Set LED dim interval to 200 instruction cycles" \ "Set LED dim interval to 200 instruction cycles" ;# <-- NOT TRANSLATED YET ##ID:002175## mcset $l "Set LED dim interval to 500 instruction cycles" \ "Set LED dim interval to 500 instruction cycles" ;# <-- NOT TRANSLATED YET ##ID:002176## mcset $l "Set LED dim interval to 1000 instruction cycles" \ "Set LED dim interval to 1000 instruction cycles" ;# <-- NOT TRANSLATED YET ##ID:002177## mcset $l "Mapping" \ "Mapping" ;# <-- NOT TRANSLATED YET ##ID:002178## mcset $l "Random" \ "Random" ;# <-- NOT TRANSLATED YET ##ID:002179## mcset $l "Random access to the matrix (default)" \ "Random access to the matrix (default)" ;# <-- NOT TRANSLATED YET ##ID:002180## mcset $l "Row" \ "Row" ;# <-- NOT TRANSLATED YET ##ID:002181## mcset $l "When a particular row is activated, it's previous state is forgotten" \ "When a particular row is activated, it's previous state is forgotten" ;# <-- NOT TRANSLATED YET ##ID:002182## mcset $l "Column" \ "Column" ;# <-- NOT TRANSLATED YET ##ID:002183## mcset $l "When a particular column is activated, it's previous state is forgotten" \ "When a particular column is activated, it's previous state is forgotten" ;# <-- NOT TRANSLATED YET ##ID:002184## mcset $l "Color" \ "Color" ;# <-- NOT TRANSLATED YET ##ID:002185## mcset $l "Red" \ "Red" ;# <-- NOT TRANSLATED YET ##ID:002186## mcset $l "Orange" \ "Orange" ;# <-- NOT TRANSLATED YET ##ID:002187## mcset $l "Yellow" \ "Yellow" ;# <-- NOT TRANSLATED YET ##ID:002188## mcset $l "Green" \ "Green" ;# <-- NOT TRANSLATED YET ##ID:002189## mcset $l "Blue" \ "Blue" ;# <-- NOT TRANSLATED YET ##ID:002190## mcset $l "Purple" \ "Purple" ;# <-- NOT TRANSLATED YET ##ID:002191## mcset $l "Light up when" \ "Light up when" ;# <-- NOT TRANSLATED YET ##ID:002192## mcset $l "Row 0 & Column 0" \ "Row 0 & Column 0" ;# <-- NOT TRANSLATED YET ##ID:002193## mcset $l "Light up LED when both wires are in low" \ "Light up LED when both wires are in low" ;# <-- NOT TRANSLATED YET ##ID:002194## mcset $l "Row 0 & Column 1" \ "Row 0 & Column 1" ;# <-- NOT TRANSLATED YET ##ID:002195## mcset $l "Light up LED when row wire is in low and column wire is in high" \ "Light up LED when row wire is in low and column wire is in high" ;# <-- NOT TRANSLATED YET ##ID:002196## mcset $l "Row 1 & Column 0" \ "Row 1 & Column 0" ;# <-- NOT TRANSLATED YET ##ID:002197## mcset $l "Light up LED when row wire is in high and column wire is in low" \ "Light up LED when row wire is in high and column wire is in low" ;# <-- NOT TRANSLATED YET ##ID:002198## mcset $l "Row 1 & Column 1" \ "Row 1 & Column 1" ;# <-- NOT TRANSLATED YET ##ID:002199## mcset $l "Light up LED when both wires are in high" \ "Light up LED when both wires are in high" ;# <-- NOT TRANSLATED YET ##ID:002200## mcset $l "All fade out" \ "All fade out" ;# <-- NOT TRANSLATED YET ##ID:002201## mcset $l "Dim all LEDs" \ "Dim all LEDs" ;# <-- NOT TRANSLATED YET ##ID:002202## mcset $l "Show help" \ "显示帮助" ##ID:002203## mcset $l "Show brief help" \ "Show brief help" ;# <-- NOT TRANSLATED YET ##ID:002204## mcset $l "Save configuration" \ "保存配置" ##ID:002205## mcset $l "Save configuration into a file" \ "保存配置到一个文件中" ##ID:002206## mcset $l "Load configuration" \ "导入配置" ##ID:002207## mcset $l "Load configuration from a file" \ "从一个文件中导入配置" ##ID:002208## mcset $l "BIT" \ "BIT" ;# <-- NOT TRANSLATED YET ##ID:002209## mcset $l "PORT" \ "PORT" ;# <-- NOT TRANSLATED YET ##ID:002210## mcset $l "Note" \ "Note" ;# <-- NOT TRANSLATED YET ##ID:002211## mcset $l "Turn HW simulation on/off" \ "Turn HW simulation on/off" ;# <-- NOT TRANSLATED YET ##ID:002212## mcset $l "Configure" \ "配置" ##ID:002213## mcset $l "LED matrix" \ "矩阵LED" ##ID:002214## mcset $l "This tool consists of 64 LED's. Each of them can be connected to any port pin of the simulated uC. Connections with the uC are made with ComboBoxes. Panel configuration can be saved to a file with extension vhc, and can be loaded from that file later. Condition on which a LED lights up and LED colors are configurable. Also fade out interval is configurable.\n\n" \ "This tool consists of 64 LED's. Each of them can be connected to any port pin of the simulated uC. Connections with the uC are made with ComboBoxes. Panel configuration can be saved to a file with extension vhc, and can be loaded from that file later. Condition on which a LED lights up and LED colors are configurable. Also fade out interval is configurable.\n\n" ;# <-- NOT TRANSLATED YET ##ID:002215## mcset $l "LED states:" \ "LED states:" ;# <-- NOT TRANSLATED YET ##ID:002216## mcset $l "\n " \ "\n " ;# <-- NOT TRANSLATED YET ##ID:002217## mcset $l " Off\n " \ " Off\n " ;# <-- NOT TRANSLATED YET ##ID:002218## mcset $l " Fast blinking\n " \ " Fast blinking\n " ;# <-- NOT TRANSLATED YET ##ID:002219## mcset $l " Shining\n " \ " Shining\n " ;# <-- NOT TRANSLATED YET ##ID:002220## mcset $l " Fading out" \ " Fading out" ;# <-- NOT TRANSLATED YET } # leddisplay.tcl # ============================================================================== namespace eval LedDisplay { ##ID:002221## mcset $l "Common electrode" \ "Common electrode" ;# <-- NOT TRANSLATED YET ##ID:002222## mcset $l "Common anode" \ "Common anode" ;# <-- NOT TRANSLATED YET ##ID:002223## mcset $l "Common cathode" \ "Common cathode" ;# <-- NOT TRANSLATED YET ##ID:002224## mcset $l "Color" \ "Color" ;# <-- NOT TRANSLATED YET ##ID:002225## mcset $l "Red" \ "Red" ;# <-- NOT TRANSLATED YET ##ID:002226## mcset $l "Orange" \ "Orange" ;# <-- NOT TRANSLATED YET ##ID:002227## mcset $l "Yellow" \ "Yellow" ;# <-- NOT TRANSLATED YET ##ID:002228## mcset $l "Green" \ "Green" ;# <-- NOT TRANSLATED YET ##ID:002229## mcset $l "Blue" \ "Blue" ;# <-- NOT TRANSLATED YET ##ID:002230## mcset $l "Purple" \ "Purple" ;# <-- NOT TRANSLATED YET ##ID:002231## mcset $l "Show help" \ "显示帮助" ##ID:002232## mcset $l "Show brief help" \ "Show brief help" ;# <-- NOT TRANSLATED YET ##ID:002233## mcset $l "Save configuration" \ "保存配置" ##ID:002234## mcset $l "Save configuration into a file" \ "保存配置到一个文件中" ##ID:002235## mcset $l "Load configuration" \ "导入配置" ##ID:002236## mcset $l "Load configuration from a file" \ "从一个文件中导入配置" ##ID:002237## mcset $l "LED Display" \ "数码管" ##ID:002238## mcset $l "BIT" \ "BIT" ;# <-- NOT TRANSLATED YET ##ID:002239## mcset $l "PORT" \ "PORT" ;# <-- NOT TRANSLATED YET ##ID:002240## mcset $l "Note" \ "Note" ;# <-- NOT TRANSLATED YET ##ID:002241## mcset $l "Turn HW simulation on/off" \ "Turn HW simulation on/off" ;# <-- NOT TRANSLATED YET ##ID:002242## mcset $l "Configure" \ "配置" ##ID:002243## mcset $l "Virtual LED display with common anode (default) or cathode. Each segment can be connected to any port pin of the simulated uC. Connections with the uC are made with ComboBoxes on the bottom of the panel. Panel configuration can be saved to a file with extension vhc, and can be loaded from that file later.\n\n" \ "Virtual LED display with common anode (default) or cathode. Each segment can be connected to any port pin of the simulated uC. Connections with the uC are made with ComboBoxes on the bottom of the panel. Panel configuration can be saved to a file with extension vhc, and can be loaded from that file later.\n\n" ;# <-- NOT TRANSLATED YET ##ID:002244## mcset $l "LED states:" \ "LED states:" ;# <-- NOT TRANSLATED YET ##ID:002245## mcset $l "\n " \ "\n " ;# <-- NOT TRANSLATED YET ##ID:002246## mcset $l " Off\n " \ " Off\n " ;# <-- NOT TRANSLATED YET ##ID:002247## mcset $l " Fast blinking\n " \ " Fast blinking\n " ;# <-- NOT TRANSLATED YET ##ID:002248## mcset $l " Shining\n " \ " Shining\n " ;# <-- NOT TRANSLATED YET } # ledpanel.tcl # ============================================================================== namespace eval LedPanel { ##ID:002249## mcset $l "Color" \ "颜色" ##ID:002250## mcset $l "Red" \ "红色" ##ID:002251## mcset $l "Orange" \ "橙色" ##ID:002252## mcset $l "Yellow" \ "黄色" ##ID:002253## mcset $l "Green" \ "绿色" ##ID:002254## mcset $l "Blue" \ "蓝色" ##ID:002255## mcset $l "Purple" \ "紫色" ##ID:002256## mcset $l "Show help" \ "显示帮助" ##ID:002257## mcset $l "Show brief help" \ "Show brief help" ;# <-- NOT TRANSLATED YET ##ID:002258## mcset $l "Save configuration" \ "保存配置" ##ID:002259## mcset $l "Save configuration into a file" \ "保存配置到一个文件中" ##ID:002260## mcset $l "Load configuration" \ "导入配置" ##ID:002261## mcset $l "Load configuration from a file" \ "从一个文件中导入配置" ##ID:002262## mcset $l "LED panel" \ "LED面板" ##ID:002263## mcset $l "BIT" \ "BIT" ;# <-- NOT TRANSLATED YET ##ID:002264## mcset $l "PORT" \ "PORT" ;# <-- NOT TRANSLATED YET ##ID:002265## mcset $l "Note" \ "Note" ;# <-- NOT TRANSLATED YET ##ID:002266## mcset $l "Turn HW simulation on/off" \ "Turn HW simulation on/off" ;# <-- NOT TRANSLATED YET ##ID:002267## mcset $l "Configure" \ "配置" ##ID:002268## mcset $l "This tool consists of 8 LED's. Each of them can be connected to any port pin of the simulated uC. Connections with the uC are made with ComboBoxes on the bottom of the panel. Panel configuration can be saved to a file with extension vhc, and can be loaded from that file later. LED colors are configurable.\n\n" \ "This tool consists of 8 LED's. Each of them can be connected to any port pin of the simulated uC. Connections with the uC are made with ComboBoxes on the bottom of the panel. Panel configuration can be saved to a file with extension vhc, and can be loaded from that file later. LED colors are configurable.\n\n" ;# <-- NOT TRANSLATED YET ##ID:002269## mcset $l "LED states:" \ "LED 状态:" ##ID:002270## mcset $l "\n " \ "\n " ;# <-- NOT TRANSLATED YET ##ID:002271## mcset $l " Off\n " \ " 关闭\n " ##ID:002272## mcset $l " Fast blinking\n " \ " 快速闪烁\n " ##ID:002273## mcset $l " Shining" \ " Shining" ;# <-- NOT TRANSLATED YET } # matrixkeypad.tcl # ============================================================================== namespace eval MatrixKeyPad { ##ID:002274## mcset $l "Radio buttons" \ "单选按钮" ##ID:002275## mcset $l "Show help" \ "显示帮助" ##ID:002276## mcset $l "Show brief help" \ "Show brief help" ;# <-- NOT TRANSLATED YET ##ID:002277## mcset $l "Save configuration" \ "保存配置" ##ID:002278## mcset $l "Save configuration into a file" \ "保存配置到一个文件中" ##ID:002279## mcset $l "Load configuration" \ "导入配置" ##ID:002280## mcset $l "Load configuration from a file" \ "从一个文件中导入配置" ##ID:002281## mcset $l "Matrix Keypad" \ "矩阵按键" ##ID:002282## mcset $l "BIT" \ "BIT" ;# <-- NOT TRANSLATED YET ##ID:002283## mcset $l "PORT" \ "PORT" ;# <-- NOT TRANSLATED YET ##ID:002284## mcset $l "Note" \ "Note" ;# <-- NOT TRANSLATED YET ##ID:002285## mcset $l "Turn HW simulation on/off" \ "Turn HW simulation 开/关" ##ID:002286## mcset $l "Configure" \ "配置" ##ID:002287## mcset $l "This tool consists of 16 switches connected in matrix. Connections with the uC are made with ComboBoxes. Panel configuration can be saved to a file with extension vhc, and can be loaded from that file later. Wire colors are identical to colors used in graph representing IO ports.\n\n" \ "This tool consists of 16 switches connected in matrix. Connections with the uC are made with ComboBoxes. Panel configuration can be saved to a file with extension vhc, and can be loaded from that file later. Wire colors are identical to colors used in graph representing IO ports.\n\n" ;# <-- NOT TRANSLATED YET ##ID:002288## mcset $l "Keypad can be configured in two ways:" \ "Keypad can be configured in two ways:" ;# <-- NOT TRANSLATED YET ##ID:002289## mcset $l "\n " \ "\n " ;# <-- NOT TRANSLATED YET ##ID:002290## mcset $l "1)" \ "1)" ;# <-- NOT TRANSLATED YET ##ID:002291## mcset $l " To allow key combinations\n Menu -> Check \"Radio buttons\"\n " \ " To allow key combinations\n Menu -> Check \"Radio buttons\"\n " ;# <-- NOT TRANSLATED YET ##ID:002292## mcset $l "2)" \ "2)" ;# <-- NOT TRANSLATED YET ##ID:002293## mcset $l " To do not allow key combinations\n Menu -> Uncheck \"Radio buttons\"" \ " To do not allow key combinations\n Menu -> Uncheck \"Radio buttons\"" ;# <-- NOT TRANSLATED YET } # simplekeypad.tcl # ============================================================================== namespace eval SimpleKeyPad { ##ID:002294## mcset $l "Simple Keypad" \ "简单按键" ##ID:002295## mcset $l "BIT" \ "BIT" ;# <-- NOT TRANSLATED YET ##ID:002296## mcset $l "PORT" \ "PORT" ;# <-- NOT TRANSLATED YET ##ID:002297## mcset $l "Note" \ "Note" ;# <-- NOT TRANSLATED YET ##ID:002298## mcset $l "Turn HW simulation on/off" \ "Turn HW simulation 开/关" ##ID:002299## mcset $l "Configure" \ "配置" ##ID:002300## mcset $l "Radio buttons" \ "单选按钮" ##ID:002301## mcset $l "Show help" \ "显示帮助" ##ID:002302## mcset $l "Show brief help" \ "Show brief help" ;# <-- NOT TRANSLATED YET ##ID:002303## mcset $l "Save configuration" \ "保存配置" ##ID:002304## mcset $l "Save configuration into a file" \ "保存配置到一个文件中" ##ID:002305## mcset $l "Load configuration" \ "导入配置" ##ID:002306## mcset $l "Load configuration from a file" \ "从一个文件中导入配置" ##ID:002307## mcset $l "This tool consists of 8 switches. Each of them can connect any port pin of the simulated uC to ground. Connections with the uC are made with ComboBoxes on the bottom of the panel. Panel configuration can be saved to a file with extension vhc, and can be loaded from that file later. Wire colors are identical to colors used in graph representing IO ports.\n\n" \ "This tool consists of 8 switches. Each of them can connect any port pin of the simulated uC to ground. Connections with the uC are made with ComboBoxes on the bottom of the panel. Panel configuration can be saved to a file with extension vhc, and can be loaded from that file later. Wire colors are identical to colors used in graph representing IO ports.\n\n" ;# <-- NOT TRANSLATED YET ##ID:002308## mcset $l "Keypad can be configured in two ways:" \ "Keypad can be configured in two ways:" ;# <-- NOT TRANSLATED YET ##ID:002309## mcset $l "\n " \ "\n " ;# <-- NOT TRANSLATED YET ##ID:002310## mcset $l "1)" \ "1)" ;# <-- NOT TRANSLATED YET ##ID:002311## mcset $l " To allow key combinations\n Menu -> Check \"Radio buttons\"\n " \ " To allow key combinations\n Menu -> Check \"Radio buttons\"\n " ;# <-- NOT TRANSLATED YET ##ID:002312## mcset $l "2)" \ "2)" ;# <-- NOT TRANSLATED YET ##ID:002313## mcset $l " To do not allow key combinations\n Menu -> Uncheck \"Radio buttons\"" \ " To do not allow key combinations\n Menu -> Uncheck \"Radio buttons\"" ;# <-- NOT TRANSLATED YET } # multiplexedleddisplay.tcl # ============================================================================== namespace eval MultiplexedLedDisplay { ##ID:002314## mcset $l "Common electrode" \ "Common electrode" ;# <-- NOT TRANSLATED YET ##ID:002315## mcset $l "Common anode" \ "Common anode" ;# <-- NOT TRANSLATED YET ##ID:002316## mcset $l "Common cathode" \ "Common cathode" ;# <-- NOT TRANSLATED YET ##ID:002317## mcset $l "Fade out interval" \ "Fade out interval" ;# <-- NOT TRANSLATED YET ##ID:002318## mcset $l "Set LED dim interval to 0 instruction cycles" \ "Set LED dim interval to 0 instruction cycles" ;# <-- NOT TRANSLATED YET ##ID:002319## mcset $l "Set LED dim interval to 5 instruction cycles" \ "Set LED dim interval to 5 instruction cycles" ;# <-- NOT TRANSLATED YET ##ID:002320## mcset $l "Set LED dim interval to 10 instruction cycles" \ "Set LED dim interval to 10 instruction cycles" ;# <-- NOT TRANSLATED YET ##ID:002321## mcset $l "Set LED dim interval to 20 instruction cycles" \ "Set LED dim interval to 20 instruction cycles" ;# <-- NOT TRANSLATED YET ##ID:002322## mcset $l "Set LED dim interval to 50 instruction cycles" \ "Set LED dim interval to 50 instruction cycles" ;# <-- NOT TRANSLATED YET ##ID:002323## mcset $l "Set LED dim interval to 100 instruction cycles" \ "Set LED dim interval to 100 instruction cycles" ;# <-- NOT TRANSLATED YET ##ID:002324## mcset $l "Set LED dim interval to 200 instruction cycles" \ "Set LED dim interval to 200 instruction cycles" ;# <-- NOT TRANSLATED YET ##ID:002325## mcset $l "Set LED dim interval to 500 instruction cycles" \ "Set LED dim interval to 500 instruction cycles" ;# <-- NOT TRANSLATED YET ##ID:002326## mcset $l "Set LED dim interval to 1000 instruction cycles" \ "Set LED dim interval to 1000 instruction cycles" ;# <-- NOT TRANSLATED YET ##ID:002327## mcset $l "All fade out" \ "All fade out" ;# <-- NOT TRANSLATED YET ##ID:002328## mcset $l "Dim all LEDs" \ "Dim all LEDs" ;# <-- NOT TRANSLATED YET ##ID:002329## mcset $l "Color" \ "Color" ;# <-- NOT TRANSLATED YET ##ID:002330## mcset $l "Red" \ "Red" ;# <-- NOT TRANSLATED YET ##ID:002331## mcset $l "Orange" \ "Orange" ;# <-- NOT TRANSLATED YET ##ID:002332## mcset $l "Yellow" \ "Yellow" ;# <-- NOT TRANSLATED YET ##ID:002333## mcset $l "Green" \ "Green" ;# <-- NOT TRANSLATED YET ##ID:002334## mcset $l "Blue" \ "Blue" ;# <-- NOT TRANSLATED YET ##ID:002335## mcset $l "Purple" \ "Purple" ;# <-- NOT TRANSLATED YET ##ID:002336## mcset $l "Show help" \ "显示帮助" ##ID:002337## mcset $l "Show brief help" \ "Show brief help" ;# <-- NOT TRANSLATED YET ##ID:002338## mcset $l "Save configuration" \ "保存配置" ##ID:002339## mcset $l "Save configuration into a file" \ "保存配置到一个文件中" ##ID:002340## mcset $l "Load configuration" \ "导入配置" ##ID:002341## mcset $l "Load configuration from a file" \ "从一个文件中导入配置" ##ID:002342## mcset $l "Multiplexed LED display" \ "复用数码管" ##ID:002343## mcset $l "BIT" \ "BIT" ;# <-- NOT TRANSLATED YET ##ID:002344## mcset $l "PORT" \ "PORT" ;# <-- NOT TRANSLATED YET ##ID:002345## mcset $l "Note" \ "Note" ;# <-- NOT TRANSLATED YET ##ID:002346## mcset $l "Turn HW simulation on/off" \ "Turn HW simulation on/off" ;# <-- NOT TRANSLATED YET ##ID:002347## mcset $l "Configure" \ "配置" ##ID:002348## mcset $l "Virtual Multiplexed LED Display with common anode (default) or cathode. Each segment can be connected to any port pin of the simulated uC. Connections with the uC are made with ComboBoxes. Panel configuration can be saved to a file with extension vhc, and can be loaded from that file later. LED fade out interval and LED colors are configurable.\n\n" \ "Virtual Multiplexed LED Display with common anode (default) or cathode. Each segment can be connected to any port pin of the simulated uC. Connections with the uC are made with ComboBoxes. Panel configuration can be saved to a file with extension vhc, and can be loaded from that file later. LED fade out interval and LED colors are configurable.\n\n" ;# <-- NOT TRANSLATED YET ##ID:002349## mcset $l "LED states:" \ "LED states:" ;# <-- NOT TRANSLATED YET ##ID:002350## mcset $l "\n " \ "\n " ;# <-- NOT TRANSLATED YET ##ID:002351## mcset $l " Off\n " \ " Off\n " ;# <-- NOT TRANSLATED YET ##ID:002352## mcset $l " Fast blinking\n " \ " Fast blinking\n " ;# <-- NOT TRANSLATED YET ##ID:002353## mcset $l " Shining\n " \ " Shining\n " ;# <-- NOT TRANSLATED YET ##ID:002354## mcset $l " Fading out\n " \ " Fading out\n " ;# <-- NOT TRANSLATED YET } # virtual_hw_component.tcl # ============================================================================== namespace eval VirtualHWComponent { ##ID:002355## mcset $l "Component modified" \ "Component modified" ;# <-- NOT TRANSLATED YET ##ID:002356## mcset $l "Do you want to save the configuration of this panel before closing?" \ "Do you want to save the configuration of this panel before closing?" ;# <-- NOT TRANSLATED YET ##ID:002357## mcset $l "Save configuration" \ "保存配置" ##ID:002358## mcset $l "Load configuration" \ "载入配置" ##ID:002359## mcset $l "Overwrite file" \ "覆盖文件" ##ID:002360## mcset $l "A file with name '%s' already exists. Do you want to overwrite it ?" \ "A file with name '%s' already exists. Do you want to overwrite it ?" ;# <-- NOT TRANSLATED YET ##ID:002361## mcset $l "IO Error" \ "IO Error" ;# <-- NOT TRANSLATED YET ##ID:002362## mcset $l "Unable to write to file:\n\"%s\"" \ "无法写入文件:\n\"%s\"" ##ID:002363## mcset $l "Unable to read file:\n\"%s\"" \ "无法读取文件:\n\"%s\"" ##ID:002364## mcset $l "Unable to read configuration from file:\n\"%s\"" \ "无法读取配置文件:\n\"%s\"" ##ID:002365## mcset $l "File corrupted" \ "文件损坏" ##ID:002366## mcset $l "Close" \ "关闭" ##ID:002367## mcset $l "Wire colors:" \ "Wire colors:" ;# <-- NOT TRANSLATED YET ##ID:002368## mcset $l "ON" \ "ON" ;# <-- NOT TRANSLATED YET ##ID:002369## mcset $l "OFF" \ "OFF" ;# <-- NOT TRANSLATED YET ##ID:002370## mcset $l "VH component" \ "VH component" ;# <-- NOT TRANSLATED YET } # hwmanager.tcl # ============================================================================== namespace eval HwManager { ##ID:002371## mcset $l "HW:" \ "HW:" ;# <-- NOT TRANSLATED YET ##ID:002372## mcset $l "available/installed plugins" \ "使用/安装的插件" ##ID:002373## mcset $l "List available or installed HW plugins" \ "列出可用的硬件或安装插件" ##ID:002374## mcset $l "Refresh list available or installed HW plugins" \ "刷新列表或安装硬件插件" ##ID:002375## mcset $l "Refresh" \ "刷新" ##ID:002376## mcset $l "Too old version" \ "太旧的版本" ##ID:002377## mcset $l "Plugin %s requires MCU 8051 IDE version %s and above, please upgrade your MCU 8051 IDE" \ "刷新Plugin %s requires MCU 8051 IDE version %s and above, please upgrade your MCU 8051 IDE刷新" ##ID:002378## mcset $l "PLUGIN ERROR" \ "插件错误" ##ID:002379## mcset $l "Close" \ "关闭" ##ID:002380## mcset $l "Plugin name:\t%s\n" \ "插件名称:\t%s\n" ##ID:002381## mcset $l "Plugin version:\t%s\n" \ "插件版本:\t%s\n" ##ID:002382## mcset $l "Author:\t\t%s <%s>\n" \ "作者:\t\t%s <%s>\n" ##ID:002383## mcset $l "PLUGIN ERROR - MCU 8051 IDE" \ "插件错误 - MCU 8051 IDE" ##ID:002384## mcset $l "Hardware is busy" \ "Hardware is busy" ;# <-- NOT TRANSLATED YET ##ID:002385## mcset $l "Plugin \"%s\" is busy.\nDo you really want to close the program ?" \ "Plugin \"%s\" is busy.\nDo you really want to close the program ?" ;# <-- NOT TRANSLATED YET } # graph.tcl # ============================================================================== namespace eval Graph { ##ID:002386## mcset $l "ON" \ "ON" ;# <-- NOT TRANSLATED YET ##ID:002387## mcset $l "OFF" \ "OFF" ;# <-- NOT TRANSLATED YET ##ID:002388## mcset $l "True state" \ "True state" ;# <-- NOT TRANSLATED YET ##ID:002389## mcset $l "Port latches" \ "Port latches" ;# <-- NOT TRANSLATED YET ##ID:002390## mcset $l "True output" \ "True output" ;# <-- NOT TRANSLATED YET ##ID:002391## mcset $l "Legend" \ "Legend" ;# <-- NOT TRANSLATED YET ##ID:002392## mcset $l "Turn graph on/off" \ "Turn graph on/off" ;# <-- NOT TRANSLATED YET ##ID:002393## mcset $l "Enable/Disable graph" \ "Enable/Disable graph" ;# <-- NOT TRANSLATED YET ##ID:002394## mcset $l "Change grid" \ "Change grid" ;# <-- NOT TRANSLATED YET ##ID:002395## mcset $l "Change grid morphology" \ "Change grid morphology" ;# <-- NOT TRANSLATED YET ##ID:002396## mcset $l "Change bit length on X axis to a lower value" \ "Change bit length on X axis to a lower value" ;# <-- NOT TRANSLATED YET ##ID:002397## mcset $l "Zoom in (X axis)" \ "Zoom in (X axis)" ;# <-- NOT TRANSLATED YET ##ID:002398## mcset $l "Change bit length on X axis to a higher value" \ "Change bit length on X axis to a higher value" ;# <-- NOT TRANSLATED YET ##ID:002399## mcset $l "Zoom out (X axis)" \ "Zoom out (X axis)" ;# <-- NOT TRANSLATED YET ##ID:002400## mcset $l "Clear user marks" \ "Clear user marks" ;# <-- NOT TRANSLATED YET ##ID:002401## mcset $l "Clear marks" \ "Clear marks" ;# <-- NOT TRANSLATED YET ##ID:002402## mcset $l "-- click to close --" \ "-- click to close --" ;# <-- NOT TRANSLATED YET ##ID:002403## mcset $l "Log. 1 forced to log. 0" \ "Log. 1 forced to log. 0" ;# <-- NOT TRANSLATED YET ##ID:002404## mcset $l "Not connected" \ "Not connected" ;# <-- NOT TRANSLATED YET ##ID:002405## mcset $l "Access to external memory" \ "Access to external memory" ;# <-- NOT TRANSLATED YET ##ID:002406## mcset $l "Indeterminable state" \ "Indeterminable state" ;# <-- NOT TRANSLATED YET ##ID:002407## mcset $l "No voltage" \ "No voltage" ;# <-- NOT TRANSLATED YET ##ID:002408## mcset $l "Log. 1" \ "Log. 1" ;# <-- NOT TRANSLATED YET ##ID:002409## mcset $l "Log. 0" \ "Log. 0" ;# <-- NOT TRANSLATED YET } # graphwidget.tcl # ============================================================================== namespace eval GraphWidget { ##ID:002410## mcset $l "ON/OFF" \ "ON/OFF" ;# <-- NOT TRANSLATED YET ##ID:002411## mcset $l "Enable/Disable graph" \ "Enable/Disable graph" ;# <-- NOT TRANSLATED YET ##ID:002412## mcset $l "Change grid" \ "Change grid" ;# <-- NOT TRANSLATED YET ##ID:002413## mcset $l "Change grid morphology" \ "Change grid morphology" ;# <-- NOT TRANSLATED YET ##ID:002414## mcset $l "Zoom in" \ "Zoom in" ;# <-- NOT TRANSLATED YET ##ID:002415## mcset $l "Change bit length on X axis to a lower value" \ "Change bit length on X axis to a lower value" ;# <-- NOT TRANSLATED YET ##ID:002416## mcset $l "Zoom out" \ "Zoom out" ;# <-- NOT TRANSLATED YET ##ID:002417## mcset $l "Change bit length on X axis to a higher value" \ "Change bit length on X axis to a higher value" ;# <-- NOT TRANSLATED YET ##ID:002418## mcset $l "Remove marks" \ "Remove marks" ;# <-- NOT TRANSLATED YET ##ID:002419## mcset $l "Clear user marks" \ "Clear user marks" ;# <-- NOT TRANSLATED YET ##ID:002420## mcset $l "Performance warning" \ "Performance warning" ;# <-- NOT TRANSLATED YET ##ID:002421## mcset $l "You have just enabled simulation of external devices. Having this feature enabled causes serious reduction of simulator performance, the number of instructions executed per second in real time usually decreases by a factor of hundreds, maybe even thousands." \ "You have just enabled simulation of external devices. Having this feature enabled causes serious reduction of simulator performance, the number of instructions executed per second in real time usually decreases by a factor of hundreds, maybe even thousands." ;# <-- NOT TRANSLATED YET ##ID:004480## mcset $l "Do not display again" \ "Do not display again" ;# <-- NOT TRANSLATED YET } # hexeditdlg.tcl # ============================================================================== namespace eval HexEditDlg { ##ID:002422## mcset $l "LJMP this_address" \ "LJMP this_address" ;# <-- NOT TRANSLATED YET ##ID:002423## mcset $l "LCALL this_address" \ "LCALL this_address" ;# <-- NOT TRANSLATED YET ##ID:002424## mcset $l "Code memory" \ "Code memory" ;# <-- NOT TRANSLATED YET ##ID:002425## mcset $l "Expanded RAM" \ "Expanded RAM" ;# <-- NOT TRANSLATED YET ##ID:002426## mcset $l "Data EEPROM" \ "Data EEPROM" ;# <-- NOT TRANSLATED YET ##ID:002427## mcset $l "XDATA memory" \ "XDATA memory" ;# <-- NOT TRANSLATED YET ##ID:002428## mcset $l "untitled" \ "untitled" ;# <-- NOT TRANSLATED YET ##ID:002429## mcset $l "Hexadecimal editor" \ "Hexadecimal editor" ;# <-- NOT TRANSLATED YET ##ID:002430## mcset $l "Load IHEX8 file" \ "Load IHEX8 file" ;# <-- NOT TRANSLATED YET ##ID:002431## mcset $l "Open file" \ "打开文件" ##ID:002432## mcset $l "Save current data to IHEX8 file" \ "Save current data to IHEX8 file" ;# <-- NOT TRANSLATED YET ##ID:002433## mcset $l "Save file" \ "保存文件" ##ID:002434## mcset $l "Save current data to IHEX8 file under a different name" \ "Save current data to IHEX8 file under a different name" ;# <-- NOT TRANSLATED YET ##ID:002435## mcset $l "Save as" \ "另存为" ##ID:002436## mcset $l "Reload data from simulator" \ "Reload data from simulator" ;# <-- NOT TRANSLATED YET ##ID:002437## mcset $l "Reload" \ "刷新" ##ID:002438## mcset $l "Exit editor" \ "退出编辑" ##ID:002439## mcset $l "Exit" \ "退出" ##ID:002440## mcset $l "Current view mode" \ "Current view mode" ;# <-- NOT TRANSLATED YET ##ID:002441## mcset $l "View mode" \ "View mode" ;# <-- NOT TRANSLATED YET ##ID:002442## mcset $l "VALUE" \ "VALUE" ;# <-- NOT TRANSLATED YET ##ID:002443## mcset $l "ADDRESS" \ "ADDRESS" ;# <-- NOT TRANSLATED YET ##ID:002444## mcset $l "DEC: " \ "DEC: " ;# <-- NOT TRANSLATED YET ##ID:002445## mcset $l "OCT: " \ "OCT: " ;# <-- NOT TRANSLATED YET ##ID:002446## mcset $l "HEX: " \ "HEX: " ;# <-- NOT TRANSLATED YET ##ID:002447## mcset $l "BIN: " \ "BIN: " ;# <-- NOT TRANSLATED YET ##ID:002448## mcset $l "LJMP" \ "LJMP" ;# <-- NOT TRANSLATED YET ##ID:002449## mcset $l "Perform program jump" \ "Perform program jump" ;# <-- NOT TRANSLATED YET ##ID:002450## mcset $l "Program jump" \ "程序转跳" ##ID:002451## mcset $l "LCALL" \ "LCALL" ;# <-- NOT TRANSLATED YET ##ID:002452## mcset $l "Perform subprogram call" \ "执行子程序调用" ##ID:002453## mcset $l "Subprogram call" \ "子程序调用" ##ID:002454## mcset $l "Cursor:" \ "光标:" ##ID:002455## mcset $l "Address of entry under mouse cursor" \ "Address of entry under mouse cursor" ;# <-- NOT TRANSLATED YET ##ID:002456## mcset $l "Line\t%s:\tInvalid characters\n" \ "Line\t%s:\tInvalid characters\n" ;# <-- NOT TRANSLATED YET ##ID:002457## mcset $l "Line\t%s:\tInvalid chceksum\n" \ "Line\t%s:\tInvalid chceksum\n" ;# <-- NOT TRANSLATED YET ##ID:002458## mcset $l "Line\t%s:\tInvalid length\n" \ "Line\t%s:\tInvalid length\n" ;# <-- NOT TRANSLATED YET ##ID:002459## mcset $l "Line\t%s:\tUnknown record type: '%s'\n" \ "Line\t%s:\tUnknown record type: '%s'\n" ;# <-- NOT TRANSLATED YET ##ID:002460## mcset $l "Line\t%s:\tMissing EOF" \ "Line\t%s:\tMissing EOF" ;# <-- NOT TRANSLATED YET ##ID:002461## mcset $l "Close" \ "关闭" ##ID:002462## mcset $l "Error(s) occurred while parsing IHEX file" \ "Error(s) occurred while parsing IHEX file" ;# <-- NOT TRANSLATED YET ##ID:002463## mcset $l "File modified" \ "File modified" ;# <-- NOT TRANSLATED YET ##ID:002464## mcset $l "File %s has been modifed.\nDo you want to save it ?" \ "File %s has been modifed.\nDo you want to save it ?" ;# <-- NOT TRANSLATED YET ##ID:004536## mcset $l "Content of the hex editor has been changed.\nDo you really want to reload without saving it?" \ "Content of the hex editor has been changed.\nDo you really want to reload without saving it?" ;# <-- NOT TRANSLATED YET ##ID:002465## mcset $l "Save file - MCU 8051 IDE" \ "保存文件 - MCU 8051 IDE" ##ID:002466## mcset $l "Open file - MCU 8051 IDE" \ "打开文件 - MCU 8051 IDE" ##ID:002467## mcset $l "Permission denied" \ "没有权限" ##ID:002468## mcset $l "Unable to open file:\n%s" \ "无法打开文件:\n%s" ##ID:002469## mcset $l "Unable to access file: %s" \ "无法访问文件: %s" ##ID:002470## mcset $l "Overwrite file" \ "覆盖文件" ##ID:002471## mcset $l "A file name '%s' already exists. Are you sure you want to overwrite it ?" \ "A file name '%s' already exists. Are you sure you want to overwrite it ?" ;# <-- NOT TRANSLATED YET ##ID:002472## mcset $l "Saving file" \ "正在保存文件" ##ID:002473## mcset $l "Abort" \ "中止" ##ID:002474## mcset $l "File %s saved" \ "文件 %s 已经保存" ##ID:002475## mcset $l "Load IHEX8 file into editor and simulator XDATA memory" \ "Load IHEX8 file into editor and simulator XDATA memory" ;# <-- NOT TRANSLATED YET ##ID:002476## mcset $l "Save current content of XDATA memory to IHEX8 file" \ "Save current content of XDATA memory to IHEX8 file" ;# <-- NOT TRANSLATED YET ##ID:002477## mcset $l "Save current document under a different name" \ "Save current document under a different name" ;# <-- NOT TRANSLATED YET ##ID:002478## mcset $l "Reload data from simulator XDATA memory" \ "Reload data from simulator XDATA memory" ;# <-- NOT TRANSLATED YET ##ID:002479## mcset $l "Copy selected text to clipboard" \ "复制选定的文本到剪贴板" ##ID:002480## mcset $l "Paste clipboard contents" \ "粘贴剪贴板内容" ##ID:002481## mcset $l "Invoke dialog for searching strings in the text" \ "Invoke dialog for searching strings in the text" ;# <-- NOT TRANSLATED YET ##ID:002482## mcset $l "Find next occurrence of the search string" \ "Find next occurrence of the search string" ;# <-- NOT TRANSLATED YET ##ID:002483## mcset $l "Find previous occurrence of the search string" \ "Find previous occurrence of the search string" ;# <-- NOT TRANSLATED YET ##ID:002484## mcset $l "Switch view mode to hexadecimal" \ "Switch view mode to hexadecimal" ;# <-- NOT TRANSLATED YET ##ID:002485## mcset $l "Switch view mode to decimal" \ "Switch view mode to decimal" ;# <-- NOT TRANSLATED YET ##ID:002486## mcset $l "Switch view mode to octal" \ "Switch view mode to octal" ;# <-- NOT TRANSLATED YET ##ID:002487## mcset $l "Save current content of program (CODE) memory to IHEX8 file" \ "Save current content of program (CODE) memory to IHEX8 file" ;# <-- NOT TRANSLATED YET ##ID:002488## mcset $l "Save" \ "保存" ##ID:002489## mcset $l "Open ADF" \ "打开ADF" ##ID:002490## mcset $l "Open IHEX8" \ "打开IHEX8" ##ID:002491## mcset $l "Copy" \ "复制" ##ID:002492## mcset $l "Paste" \ "粘帖" ##ID:002493## mcset $l "Find" \ "查找" ##ID:002494## mcset $l "Find next" \ "查找下一个" ##ID:002495## mcset $l "Find previous" \ "查找上一个" ##ID:002496## mcset $l "HEX" \ "HEX" ;# <-- NOT TRANSLATED YET ##ID:002497## mcset $l "DEC" \ "DEC" ;# <-- NOT TRANSLATED YET ##ID:002498## mcset $l "OCT" \ "OCT" ;# <-- NOT TRANSLATED YET ##ID:002499## mcset $l "File" \ "文件" ##ID:002500## mcset $l "Edit" \ "编辑" ##ID:002501## mcset $l "Mode" \ "模式" ##ID:002502## mcset $l "Intel 8 HEX" \ "Intel 8 HEX" ;# <-- NOT TRANSLATED YET ##ID:002503## mcset $l "Simulator file" \ "模拟器文件" } # todo.tcl # ============================================================================== namespace eval Todo { ##ID:002504## mcset $l "Undo" \ "撤消" ##ID:002505## mcset $l "Undo last operation" \ "撤消最后一次操作" ##ID:002506## mcset $l "Redo" \ "取消撤销" ##ID:002507## mcset $l "Take back last undo operation" \ "重做上次撤销的操作." ##ID:002508## mcset $l "Cut" \ "剪切" ##ID:002509## mcset $l "Copy" \ "复制" ##ID:002510## mcset $l "Paste" \ "粘帖" ##ID:002511## mcset $l "Clear" \ "清除" ##ID:002512## mcset $l "Select all" \ "选择所有" ##ID:002513## mcset $l "Find" \ "查找" ##ID:002514## mcset $l "Find next" \ "查找下一个" ##ID:002515## mcset $l "Find previous" \ "查找上一个" ##ID:002516## mcset $l "Bold text" \ "粗体" ##ID:002517## mcset $l "Use bold font" \ "使用粗体" ##ID:002518## mcset $l "Italic text" \ "斜体" ##ID:002519## mcset $l "Use italic font" \ "使用斜体" ##ID:002520## mcset $l "Strikethrough font" \ "删除线字体" ##ID:002521## mcset $l "Strikethrough text" \ "删除线文本" ##ID:002522## mcset $l "Use strikethrough font" \ "使用删除线字体" ##ID:002523## mcset $l "Underline text" \ "下划线字体" ##ID:002524## mcset $l "Use underline font" \ "使用下划线字体" ##ID:002525## mcset $l "Erase tags" \ "删除标记" ##ID:002526## mcset $l "Clear rich text tags" \ "Clear rich text tags" ;# <-- NOT TRANSLATED YET ##ID:002527## mcset $l "Insert OK image" \ "已经插入图片" ##ID:002528## mcset $l "Insert image \"Ok\"" \ "插入图片 \"Ok\"" ##ID:002529## mcset $l "Notes for file:" \ "注释文件:" ##ID:002530## mcset $l "Find next occurrence of search string" \ "查找下一个出现的搜索字" ##ID:002531## mcset $l "Find previous occurrence of search string" \ "查找上一个出现的搜索字" ##ID:002532## mcset $l "Hide search bar" \ "隐藏搜索栏" ##ID:002533## mcset $l "Find:" \ "查找:" ##ID:002534## mcset $l "Match case" \ "区分大小写" ##ID:002535## mcset $l "Bold font" \ "粗体字" ##ID:002536## mcset $l "Striketrought font" \ "删除线字体" ##ID:002537## mcset $l "Underline font" \ "下划线字体" ##ID:002538## mcset $l "Erase text tags" \ "删除文本标记" ##ID:002539## mcset $l "Remove formatting tags within selected area" \ "删除所选区域内的标记" ##ID:002540## mcset $l "Insert \"Ok\" image at the current cursor position" \ "Insert \"Ok\" image at the current cursor position" ;# <-- NOT TRANSLATED YET } # subprograms.tcl # ============================================================================== namespace eval SubPrograms { ##ID:002541## mcset $l "Go to source line" \ "Go to source line" ;# <-- NOT TRANSLATED YET ##ID:002542## mcset $l "Navigate code editor to the line from which this subprogram was invoked" \ "Navigate code editor to the line from which this subprogram was invoked" ;# <-- NOT TRANSLATED YET ##ID:002543## mcset $l "Go to target line" \ "Go to target line" ;# <-- NOT TRANSLATED YET ##ID:002544## mcset $l "Navigate code editor to the line from where this subprogram resides" \ "Navigate code editor to the line from where this subprogram resides" ;# <-- NOT TRANSLATED YET ##ID:002545## mcset $l "Copy source address to clipboard" \ "Copy source address to clipboard" ;# <-- NOT TRANSLATED YET ##ID:002546## mcset $l "Copy return address to clipboard (hexadecimal representation)" \ "Copy return address to clipboard (hexadecimal representation)" ;# <-- NOT TRANSLATED YET ##ID:002547## mcset $l "Copy target address to clipboard" \ "Copy target address to clipboard" ;# <-- NOT TRANSLATED YET ##ID:002548## mcset $l "Copy address where this subprogram begins to the clipboard" \ "Copy address where this subprogram begins to the clipboard" ;# <-- NOT TRANSLATED YET ##ID:002549## mcset $l "Remove this" \ "Remove this" ;# <-- NOT TRANSLATED YET ##ID:002550## mcset $l "Remove this entry" \ "Remove this entry" ;# <-- NOT TRANSLATED YET ##ID:002551## mcset $l "Enable" \ "Enable" ;# <-- NOT TRANSLATED YET ##ID:002552## mcset $l "Include interrupts" \ "Include interrupts" ;# <-- NOT TRANSLATED YET ##ID:002553## mcset $l "RETURN" \ "RETURN" ;# <-- NOT TRANSLATED YET ##ID:002554## mcset $l "Clear" \ "清除" ##ID:002555## mcset $l "Save" \ "保存" ##ID:002556## mcset $l "TOTAL: " \ "TOTAL: " ;# <-- NOT TRANSLATED YET ##ID:002557## mcset $l "Line not found" \ "Line not found" ;# <-- NOT TRANSLATED YET ##ID:002558## mcset $l "There is no matching line in the source code" \ "There is no matching line in the source code" ;# <-- NOT TRANSLATED YET ##ID:002559## mcset $l " Return address:\t" \ " Return address:\t" ;# <-- NOT TRANSLATED YET ##ID:002560## mcset $l "Save file - MCU 8051 IDE" \ "保存文件 - MCU 8051 IDE" ##ID:002561## mcset $l "A file name '%s' already exists. Are you sure you want to overwrite it ?" \ "A file name '%s' already exists. Are you sure you want to overwrite it ?" ;# <-- NOT TRANSLATED YET ##ID:002562## mcset $l "Overwrite file" \ "覆盖文件" ##ID:002563## mcset $l "Unable to write to file:\n\"%s\"" \ "无法写入文件:\n\"%s\"" ##ID:002564## mcset $l "Permission denied" \ "没有权限" ##ID:002565## mcset $l "Plain text" \ "纯文本" } # stopwatch.tcl # ============================================================================== namespace eval Stopwatch { ##ID:002566## mcset $l "Micro seconds" \ "Micro seconds" ;# <-- NOT TRANSLATED YET ##ID:002567## mcset $l "Clock cycles" \ "Clock cycles" ;# <-- NOT TRANSLATED YET ##ID:002568## mcset $l "Instruction cycles" \ "Instruction cycles" ;# <-- NOT TRANSLATED YET ##ID:002569## mcset $l "Instructions passed" \ "Instructions passed" ;# <-- NOT TRANSLATED YET ##ID:002570## mcset $l "Program bytes" \ "Program bytes" ;# <-- NOT TRANSLATED YET ##ID:002571## mcset $l "Interrupts" \ "Interrupts" ;# <-- NOT TRANSLATED YET ##ID:002572## mcset $l "Subprogram calls" \ "Subprogram calls" ;# <-- NOT TRANSLATED YET ##ID:002573## mcset $l "RET" \ "RET" ;# <-- NOT TRANSLATED YET ##ID:002574## mcset $l "RETI" \ "RETI" ;# <-- NOT TRANSLATED YET ##ID:002575## mcset $l "Breakpoints" \ "Breakpoints" ;# <-- NOT TRANSLATED YET ##ID:002576## mcset $l "Stopwatch" \ "Stopwatch" ;# <-- NOT TRANSLATED YET ##ID:002577## mcset $l "Stop" \ "停止" ##ID:002578## mcset $l "Start" \ "开始" ##ID:002579## mcset $l "Save as plain text" \ "Save as plain text" ;# <-- NOT TRANSLATED YET ##ID:002580## mcset $l "Save as XHTML" \ "另存为XHTML" ##ID:002581## mcset $l "Close window" \ "Close window" ;# <-- NOT TRANSLATED YET ##ID:002582## mcset $l "Current" \ "Current" ;# <-- NOT TRANSLATED YET ##ID:002583## mcset $l "Project:" \ "Project:" ;# <-- NOT TRANSLATED YET ##ID:002584## mcset $l "Date:" \ "Date:" ;# <-- NOT TRANSLATED YET ##ID:002585## mcset $l "Generated by %s" \ "Generated by %s" ;# <-- NOT TRANSLATED YET ##ID:002586## mcset $l "Clear all" \ "清除所有" ##ID:002587## mcset $l "Stop after" \ "Stop after" ;# <-- NOT TRANSLATED YET ##ID:002588## mcset $l "Overall" \ "Overall" ;# <-- NOT TRANSLATED YET ##ID:002589## mcset $l "Clear entrybox" \ "Clear entrybox" ;# <-- NOT TRANSLATED YET ##ID:002590## mcset $l "Clear" \ "清除" ##ID:002591## mcset $l "Stop simulation" \ "Stop simulation" ;# <-- NOT TRANSLATED YET ##ID:002592## mcset $l "Save stopwatch state - MCU 8051 IDE" \ "Save stopwatch state - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:002593## mcset $l "Overwrite file" \ "覆盖文件" ##ID:002594## mcset $l "A file name '%s' already exists. Are you sure you want to overwrite it ?" \ "A file name '%s' already exists. Are you sure you want to overwrite it ?" ;# <-- NOT TRANSLATED YET ##ID:002595## mcset $l "Permission denied" \ "没有权限" ##ID:002596## mcset $l "Unable to open file:\n'%s'" \ "无法打开文件:\n'%s'" } # simulator_engine.tcl # ============================================================================== namespace eval Simulator_ENGINE { ##ID:002597## mcset $l "Interrupt at vector 0x%s " \ "Interrupt at vector 0x%s " ;# <-- NOT TRANSLATED YET ##ID:002598## mcset $l "No instruction found at 0x%s" \ "No instruction found at 0x%s" ;# <-- NOT TRANSLATED YET ##ID:002599## mcset $l "Breakpoint reached at 0x%s" \ "Breakpoint reached at 0x%s" ;# <-- NOT TRANSLATED YET ##ID:002600## mcset $l "Out of memory" \ "Out of memory" ;# <-- NOT TRANSLATED YET ##ID:002601## mcset $l "%s has not enough program memory to load this program. Simulator will work but the loaded code is incomplete" \ "%s has not enough program memory to load this program. Simulator will work but the loaded code is incomplete" ;# <-- NOT TRANSLATED YET ##ID:002602## mcset $l "Interrupt PC: 0x%s; line: %s; vector 0x%s " \ "Interrupt PC: 0x%s; line: %s; vector 0x%s " ;# <-- NOT TRANSLATED YET ##ID:002603## mcset $l "Incomplete instruction OP code at 0x%s" \ "Incomplete instruction OP code at 0x%s" ;# <-- NOT TRANSLATED YET } # maintab.tcl # ============================================================================== namespace eval MainTab { ##ID:002604## mcset $l "FATAL ERROR" \ "致命错误" ##ID:002605## mcset $l "MCUs database file is corrupted,\nthis program cannot run without it.\nPlease reinstall MCU 8051 IDE." \ "MCUs database file is corrupted,\nthis program cannot run without it.\nPlease reinstall MCU 8051 IDE." ;# <-- NOT TRANSLATED YET ##ID:002606## mcset $l "IO Error" \ "IO Error" ;# <-- NOT TRANSLATED YET ##ID:002607## mcset $l "Unable to open VHW file:\n\"%s\"" \ "无法打开VHW文件:\n\"%s\"" ##ID:002867## mcset $l "Opening project files" \ "正在打开项目文件" ##ID:002868## mcset $l "Abort" \ "中止" ##ID:004495## mcset $l "Initializing ..." \ "Initializing ..." ;# <-- NOT TRANSLATED YET ##ID:004496## mcset $l "Finishing ..." \ "Finishing ..." ;# <-- NOT TRANSLATED YET } # selectmcu.tcl # ============================================================================== namespace eval SelectMCU { ##ID:002608## mcset $l "Choose MCU - MCU 8051 IDE" \ "选择 MCU - MCU 8051 IDE" ##ID:002609## mcset $l "Clear search bar" \ "清除搜索栏" ##ID:002610## mcset $l "Search bar, enter something like \"C4051\"" \ "Search bar, enter something like \"C4051\"" ;# <-- NOT TRANSLATED YET ##ID:002611## mcset $l "Processor Type\t\tCODE/PMEM IDATA/IRAM GPIO Frequency" \ "Processor Type\t\tCODE/PMEM IDATA/IRAM GPIO Frequency" ;# <-- NOT TRANSLATED YET ##ID:002612## mcset $l "Search:" \ "搜索:" ##ID:002613## mcset $l " Vendor:" \ " Vendor:" ;# <-- NOT TRANSLATED YET ##ID:002614## mcset $l "all" \ "全部" ##ID:002615## mcset $l "One of available packages for selected microcontroller" \ "One of available packages for selected microcontroller" ;# <-- NOT TRANSLATED YET ##ID:002616## mcset $l {Vendor:} \ {Vendor:} ;# <-- NOT TRANSLATED YET ##ID:002617## mcset $l {UART:} \ {UART:} ;# <-- NOT TRANSLATED YET ##ID:002618## mcset $l {Operating voltage:} \ {Operating voltage:} ;# <-- NOT TRANSLATED YET ##ID:002619## mcset $l {Interrupt sources:} \ {Interrupt sources:} ;# <-- NOT TRANSLATED YET ##ID:002620## mcset $l {Timers:} \ {Timers:} ;# <-- NOT TRANSLATED YET ##ID:002621## mcset $l "External RAM (XDATA)" \ "External RAM (XDATA)" ;# <-- NOT TRANSLATED YET ##ID:002622## mcset $l "External ROM/FLASH (XCODE)" \ "External ROM/FLASH (XCODE)" ;# <-- NOT TRANSLATED YET ##ID:002623## mcset $l "NOT available" \ "NOT available" ;# <-- NOT TRANSLATED YET ##ID:002624## mcset $l "Enable" \ "Enable" ;# <-- NOT TRANSLATED YET ##ID:002625## mcset $l "Connect external data memory" \ "Connect external data memory" ;# <-- NOT TRANSLATED YET ##ID:002626## mcset $l "Amount of external data memory" \ "Amount of external data memory" ;# <-- NOT TRANSLATED YET ##ID:002627## mcset $l "Connect external program memory" \ "Connect external program memory" ;# <-- NOT TRANSLATED YET ##ID:002628## mcset $l "Amount of total program memory minus internal program memory" \ "Amount of total program memory minus internal program memory" ;# <-- NOT TRANSLATED YET ##ID:002629## mcset $l "Ok" \ "Ok" ;# <-- NOT TRANSLATED YET ##ID:002630## mcset $l "Cancel" \ "取消" ##ID:002631## mcset $l "Unable to open file containing supported MCUs,\nplease check your installation" \ "Unable to open file containing supported MCUs,\nplease check your installation" ;# <-- NOT TRANSLATED YET ##ID:002632## mcset $l "MCUs database file is corrupted ,\nplease check your installation" \ "MCUs database file is corrupted,\nplease check your installation" ;# <-- NOT TRANSLATED YET ##ID:002633## mcset $l "Error" \ "错误" ##ID:002634## mcset $l " Image not found" \ " Image not found" ;# <-- NOT TRANSLATED YET ##ID:002635## mcset $l "Loading image ..." \ "Loading image ..." ;# <-- NOT TRANSLATED YET } # regwatches.tcl # ============================================================================== namespace eval RegWatches { ##ID:002636## mcset $l "Move top" \ "返移动顶部" ##ID:002637## mcset $l "Move this register watch to the top of list" \ "移动该寄存器到列表的顶部" ##ID:002638## mcset $l "Move up" \ "向上移动" ##ID:002639## mcset $l "Move this register watch up" \ "向上移动该寄存器" ##ID:002640## mcset $l "Move down" \ "向下移动" ##ID:002641## mcset $l "Move this register watch down" \ "向下移动该寄存器" ##ID:002642## mcset $l "Move bottom" \ "移动底部" ##ID:002643## mcset $l "Move this register watch to the bottom of list" \ "动该寄存器到列表的底部" ##ID:002644## mcset $l "Remove" \ "删除" ##ID:002645## mcset $l "Remove this register watch from the list" \ "从列表删中除该寄存器" ##ID:002646## mcset $l "Remove all" \ "删除所有" ##ID:002647## mcset $l "Clear the list of register watches" \ "清除列表中的所有寄存器" ##ID:002648## mcset $l "Save" \ "保存" ##ID:002649## mcset $l "Save this list to a file" \ "保存这个列表到一个文件" ##ID:002650## mcset $l "Configure" \ "配置" ##ID:002651## mcset $l "Configure this panel" \ "配置这个面板" ##ID:002652## mcset $l "Sort by" \ "按" ##ID:002653## mcset $l "Name" \ "名称" ##ID:002654## mcset $l "Address" \ "地址" ##ID:002655## mcset $l "Type" \ "类型" ##ID:002656## mcset $l "Incremental" \ "增量" ##ID:002657## mcset $l "Decremental" \ "递减" ##ID:002658## mcset $l "Autoload from code listing" \ "自动加载代码列表" ##ID:002659## mcset $l "Clear on auto-load" \ "清除自动加载" ##ID:002660## mcset $l "Save under a different file name" \ "除根据不同的文件名保存" ##ID:002661## mcset $l "Open *.wtc file" \ "打开*.wtc文件" ##ID:002662## mcset $l "Import list of registers from code listing or WTC file" \ "Import list of registers from code listing or WTC file" ;# <-- NOT TRANSLATED YET ##ID:002663## mcset $l "Import list of registers from *.lst or *.wtc file" \ "Import list of registers from *.lst or *.wtc file" ;# <-- NOT TRANSLATED YET ##ID:002664## mcset $l "Enter your search string here" \ "Enter your search string here" ;# <-- NOT TRANSLATED YET ##ID:002665## mcset $l "Search for a name" \ "Search for a name" ;# <-- NOT TRANSLATED YET ##ID:002666## mcset $l "Clear search string" \ "Clear search string" ;# <-- NOT TRANSLATED YET ##ID:002667## mcset $l "Register address:\n 1 or 2 digits\tinternal RAM (not SFR)\n 3 digits\t\texpanded RAM\n 4 digits\t\texternal RAM\n dot and 2 digits\tBit" \ "Register address:\n 1 or 2 digits\tinternal RAM (not SFR)\n 3 digits\t\texpanded RAM\n 4 digits\t\texternal RAM\n dot and 2 digits\tBit" ;# <-- NOT TRANSLATED YET ##ID:002668## mcset $l "Register address or bit address" \ "Register address or bit address" ;# <-- NOT TRANSLATED YET ##ID:002669## mcset $l "Name of the watch. Any string." \ "Name of the watch. Any string." ;# <-- NOT TRANSLATED YET ##ID:002670## mcset $l "Add this entry to register watches" \ "Add this entry to register watches" ;# <-- NOT TRANSLATED YET ##ID:002671## mcset $l "New register watches entry" \ "New register watches entry" ;# <-- NOT TRANSLATED YET ##ID:002672## mcset $l "Create new register watch" \ "Create new register watch" ;# <-- NOT TRANSLATED YET ##ID:002673## mcset $l "Remove this entry" \ "Remove this entry" ;# <-- NOT TRANSLATED YET ##ID:002674## mcset $l "Addr" \ "Addr" ;# <-- NOT TRANSLATED YET ##ID:002675## mcset $l "Register name" \ "Register name" ;# <-- NOT TRANSLATED YET ##ID:002676## mcset $l "Unable to assign, address is already in use" \ "无法分配, 地址正在使用" ##ID:002677## mcset $l "You must specify the register address." \ "您必须指定寄存器地址。" ##ID:002678## mcset $l "Specified address is already used." \ "指定的地址已经被使用" ##ID:002679## mcset $l "Overwrite file" \ "覆盖文件" ##ID:002680## mcset $l "A file name '%s' already exists. Are you sure you want to overwrite it ?" \ "文件 '%s' 已经存在. 您确认覆盖它吗?" ##ID:002681## mcset $l "Error - MCU 8051 IDE" \ "错误 - MCU 8051 IDE" ##ID:002682## mcset $l "Unable to access file \"%s\", check your permissions." \ "无法访问文件 \"%s\", 检请查您的权限." ##ID:002683## mcset $l "Definitions saved to \"%s\"" \ "Definitions saved to \"%s\"" ;# <-- NOT TRANSLATED YET ##ID:002684## mcset $l "Save watches - MCU 8051 IDE" \ "Save watches - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:002685## mcset $l "File access error" \ "文件访问错误" ##ID:002686## mcset $l "Unable to read file '%s'" \ "无法读取文件 '%s'" ##ID:002687## mcset $l "Corrupted file" \ "损坏的文件" ##ID:002688## mcset $l "file: %s is either corrupted or it is not a file in expected format." \ "file: %s is either corrupted or it is not a file in expected format." ;# <-- NOT TRANSLATED YET ##ID:002689## mcset $l "Load watches from file - MCU 8051 IDE" \ "Load watches from file - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:002690## mcset $l "Import file - MCU 8051 IDE" \ "导入文件 - MCU 8051 IDE" ##ID:002691## mcset $l "Unknown file" \ "未知文件" ##ID:002692## mcset $l "Unable to recognize file format" \ "Unable to recognize file format" ;# <-- NOT TRANSLATED YET ##ID:002693## mcset $l "Unable to open file:\n'%s'" \ "无法打开文件:\n'%s'" ##ID:002694## mcset $l "Are you sure ?" \ "您确定吗" ##ID:002695## mcset $l "Do you really want to clear the panel ?" \ "Do you really want to clear the panel ?" ;# <-- NOT TRANSLATED YET ##ID:002696## mcset $l "MCU 8051 IDE watches definition" \ "MCU 8051 IDE watches definition" ;# <-- NOT TRANSLATED YET ##ID:002697## mcset $l "Code listing" \ "Code listing" ;# <-- NOT TRANSLATED YET } # fsd.tcl # ============================================================================== namespace eval KIFSD::FSD { ##ID:002698## mcset $l " Name\t\t\t\t Size Rights Date " \ " Name\t\t\t\t Size Rights Date " ;# <-- NOT TRANSLATED YET ##ID:002699## mcset $l "Location:" \ "Location:" ;# <-- NOT TRANSLATED YET ##ID:002700## mcset $l "Filter:" \ "过滤器:" ##ID:002701## mcset $l "Cancel" \ "取消" ##ID:002702## mcset $l "Ok" \ "Ok" ;# <-- NOT TRANSLATED YET ##ID:002703## mcset $l "Parent folder" \ "父文件夹" ##ID:002704## mcset $l "Back" \ "返回" ##ID:002705## mcset $l "Forward" \ "向前" ##ID:002706## mcset $l "Reload" \ "刷新" ##ID:002707## mcset $l "New folder" \ "新建文件夹" ##ID:002708## mcset $l "Short view" \ "Short view" ;# <-- NOT TRANSLATED YET ##ID:002709## mcset $l "Detailed view" \ "Detailed view" ;# <-- NOT TRANSLATED YET ##ID:002710## mcset $l "Bookmarks" \ "书签" ##ID:002711## mcset $l "Configure" \ "配置" ##ID:002712## mcset $l "By name" \ "按名称" ##ID:002713## mcset $l "By date" \ "按日期" ##ID:002714## mcset $l "By size" \ "按大小" ##ID:002715## mcset $l "Reverse" \ "反向" ##ID:002716## mcset $l "Folders first" \ "Folders first" ;# <-- NOT TRANSLATED YET ##ID:002717## mcset $l "Case insensitive" \ "不区分大小写" ##ID:002718## mcset $l "Sorting" \ "排序" ##ID:002719## mcset $l "Show hidden files" \ "显示隐藏文件" ##ID:002720## mcset $l "Quick access navigation panel" \ "Quick access navigation panel" ;# <-- NOT TRANSLATED YET ##ID:002721## mcset $l "Separate folders" \ "单独文件夹" ##ID:002722## mcset $l "Add bookmark" \ "添加书签" ##ID:002723## mcset $l "Edit bookmarks" \ "编辑书签" ##ID:002724## mcset $l "Up" \ "向上" ##ID:002725## mcset $l "Rename" \ "重命名" ##ID:002726## mcset $l "Delete" \ "删除" ##ID:002727## mcset $l "Bookmark folder" \ "收藏夹" ##ID:002728## mcset $l "Properties" \ "属性" ##ID:002729## mcset $l "Add entry" \ "添加条目" ##ID:002730## mcset $l "Hide panel" \ "隐藏面板" ##ID:002731## mcset $l "Move up" \ "向上移动" ##ID:002732## mcset $l "Move down" \ "向下移动" ##ID:002733## mcset $l "Edit entry" \ "编辑录入" ##ID:002734## mcset $l "Remove entry" \ "重命名条目" ##ID:002735## mcset $l "Invalid folder" \ "无效的文件夹" ##ID:002736## mcset $l "The specified folder does not exist:\n%s" \ "指定的文件不存在:\n%s" ##ID:002737## mcset $l "Create new folder in:\n%s" \ "创建新文件夹:\n%s" ##ID:002738## mcset $l "Clear" \ "清除" ##ID:002739## mcset $l "Unable to create folder" \ "无法创建文件夹" ##ID:002740## mcset $l "Unable to create the specified folder" \ "无法创建指定的文件夹" ##ID:002741## mcset $l "Delete file" \ "删除文件" ##ID:002742## mcset $l "Do you really want to delete file:\n%s" \ "您真的确定删除文件:\n%s" ##ID:002743## mcset $l "Permission denied" \ "没有权限" ##ID:002744## mcset $l "Unable to remove file:\n%s" \ "无法删除文件:\n%s" ##ID:002745## mcset $l "Unable to rename file:\n%s" \ "无法重命名文件:\n%s" ##ID:002746## mcset $l "Unknown Error" \ "未知错误" ##ID:002747## mcset $l "This file apparently does not exist" \ "此文件显然不存在" ##ID:002748## mcset $l "Unable to change permissions for file:\n%s" \ "无法更改文件权限:\n%s" ##ID:002749## mcset $l "Unable to rename file:%s" \ "无法重命名文件:%s" ##ID:002750## mcset $l "Remove" \ "删除" ##ID:002751## mcset $l "Edit" \ "编辑" ##ID:002752## mcset $l "Down" \ "向下" ##ID:002753## mcset $l "New entry" \ "新条目" ##ID:002754## mcset $l "Name" \ "名称" ##ID:002755## mcset $l "URL" \ "URL" ;# <-- NOT TRANSLATED YET ##ID:002756## mcset $l "Icon" \ "图标" ##ID:002757## mcset $l "Name:" \ "名称:" ##ID:002758## mcset $l "Ownership" \ "所有权" ##ID:002759## mcset $l "Owner" \ "所有者" ##ID:002760## mcset $l "Group" \ "所有组" ##ID:002761## mcset $l "Item properties" \ "项目属性" ##ID:002762## mcset $l "Type" \ "类型" ##ID:002763## mcset $l "Location" \ "位置" ##ID:002764## mcset $l "Size" \ "大小" ##ID:002765## mcset $l "Modified" \ "Modified" ;# <-- NOT TRANSLATED YET ##ID:002766## mcset $l "Accessed" \ "Accessed" ;# <-- NOT TRANSLATED YET ##ID:002767## mcset $l "Access permissions" \ "访问权限" ##ID:002768## mcset $l "Class" \ "类型" ##ID:002769## mcset $l "Read" \ "读取" ##ID:002770## mcset $l "Write" \ "写入" ##ID:002771## mcset $l "Exec" \ "执行" ##ID:002772## mcset $l "Others" \ "其他" } # filelist.tcl # ============================================================================== namespace eval FileList { ##ID:002773## mcset $l "Append to project" \ "添加到项目" ##ID:002774## mcset $l "Append this file to the current project" \ "添加此文件到当前项目" ##ID:002775## mcset $l "New" \ "新建" ##ID:002776## mcset $l "Create new file and open its editor" \ "创建新的文件并打开它的编辑" ##ID:002777## mcset $l "Open" \ "打开" ##ID:002778## mcset $l "Open an existing file" \ "打开一个现有的文件" ##ID:002779## mcset $l "Save" \ "保存" ##ID:002780## mcset $l "Save this file" \ "保存这个文件" ##ID:002781## mcset $l "Save as" \ "另存为" ##ID:002782## mcset $l "Save this file under different name" \ "以不同的名称保存此文件" ##ID:002783## mcset $l "Save all" \ "保存全部" ##ID:002784## mcset $l "Save all file in the list" \ "保存列表中的所有文件" ##ID:002785## mcset $l "Close" \ "关闭" ##ID:002786## mcset $l "Close this file" \ "关闭这个文件" ##ID:002787## mcset $l "Close All" \ "关闭所有" ##ID:002788## mcset $l "Close all files in the list" \ "关闭列表中的所有的文件" ##ID:002789## mcset $l "Bookmark" \ "书签" ##ID:002790## mcset $l "Add/Remove bookmark for this file" \ "添加/删除这个文件书签" ##ID:002791## mcset $l "Move up" \ "向上移动" ##ID:002792## mcset $l "Move this file up in the list" \ "在列表中向上移动这个文件" ##ID:002793## mcset $l "Move down" \ "向下移动" ##ID:002794## mcset $l "Move this file down in the list" \ "在列表中向下移动这个文件" ##ID:002795## mcset $l "Move to top" \ "移动到顶部" ##ID:002796## mcset $l "Move this file to the top of the list" \ "将此文件移动到列表的顶部“" ##ID:002797## mcset $l "Move to bottom" \ "移动到底部" ##ID:002798## mcset $l "Move this file to the bottom of the list" \ "将此文件移动到列表的底部" ##ID:002799## mcset $l "Sort items by" \ "项目排序" ##ID:002800## mcset $l "Document Name" \ "文件名称" ##ID:002801## mcset $l "File URL" \ "文件 URL" ##ID:002802## mcset $l "File Size in B" \ "File Size in B" ;# <-- NOT TRANSLATED YET ##ID:002803## mcset $l "Open with" \ "打开" ##ID:002804## mcset $l "Hide the panel" \ "隐藏面板" ##ID:002805## mcset $l "Remove file from the project" \ "从项目中删除文件" ##ID:002806## mcset $l "Remove this file from the project" \ "从项目中移除此文件" ##ID:002807## mcset $l "Close file" \ "关闭文件" ##ID:002808## mcset $l "Open file" \ "打开文件" ##ID:002809## mcset $l "Open this file" \ "打开这个文件" ##ID:002810## mcset $l "Move this item up" \ "移动此项目" ##ID:002811## mcset $l "Move this item down" \ "向下移动此项目" ##ID:002812## mcset $l "Move this item to the top of the list" \ "移动此项目到列表的顶部" ##ID:002813## mcset $l "Move this item to the bottom of the list" \ "移动此项目到列表的底部" ##ID:002814## mcset $l "Add/Remove bookmark" \ "添加/删除书签" ##ID:002815## mcset $l "Move file up" \ "向上移动文件" ##ID:002816## mcset $l "Move selected file up in the list" \ "Move selected file up in the list" ;# <-- NOT TRANSLATED YET ##ID:002817## mcset $l "Move file down" \ "向下移动文件" ##ID:002818## mcset $l "Move selected file down in the list" \ "Move selected file down in the list" ;# <-- NOT TRANSLATED YET ##ID:002819## mcset $l "Move item to top" \ "移至项目顶部" ##ID:002820## mcset $l "Move selected file to the top of the list" \ "移动选定的文件到列表顶部" ##ID:002821## mcset $l "Move item to bottom" \ "移至项目底部" ##ID:002822## mcset $l "Move selected file to the bottom of the list" \ "选定的文件移动到列表的底部" ##ID:002823## mcset $l "Open this file and create its own editor" \ "打开这个文件并创建它的编辑器" ##ID:002824## mcset $l "Close this file and close its editor" \ "关闭该文件与其编辑器" ##ID:002825## mcset $l "Exclude this file from list of files of this project" \ "从此项目移除这个文件" ##ID:002826## mcset $l "Hide this panel" \ "隐藏这个面板" ##ID:002827## mcset $l "Opened Files:" \ "打开文件:" ##ID:002828## mcset $l "Opened files" \ "打开这个文件" ##ID:002829## mcset $l "Files in the project" \ "项目中的文件" ##ID:002830## mcset $l "File system browser" \ "文件系统浏览器" ##ID:002831## mcset $l "List of SFR's" \ "List of SFR's" ;# <-- NOT TRANSLATED YET ##ID:002832## mcset $l "Files of the current project" \ "文件中的当前项目" ##ID:002833## mcset $l "Special Function Registers" \ "特殊功能寄存器" ##ID:002834## mcset $l "Bookmarks for opened files" \ "打开的文件的书签" ##ID:002835## mcset $l "List of opened files" \ "打开的文件列表" ##ID:002836## mcset $l "Search for file" \ "搜索文件" ##ID:002837## mcset $l "Search for certain file name in list of opened files" \ "在打开的文件列表中搜索特定的文件名" ##ID:002838## mcset $l "Search for certain file name in list of project files" \ "在项目文件列表中搜索特定的文件名" ##ID:002839## mcset $l "Clear search entry box" \ "清除搜索输入框" ##ID:002840## mcset $l "Previous editor" \ "上一步的编辑" ##ID:002841## mcset $l "Switch to the previous editor" \ "切换到下一个编辑器" ##ID:002842## mcset $l "Next editor" \ "下一个的编辑" ##ID:002843## mcset $l "Switch to the next editor" \ "切换到下一个编辑器" ##ID:002844## mcset $l "Bookmarks for project files" \ "项目文件书签" ##ID:002845## mcset $l "List of project files" \ "项目文件列表" ##ID:002846## mcset $l "Project Files:" \ "项目:" ##ID:002847## mcset $l "Show the panel" \ "显示面板" ##ID:002848## mcset $l "Currently opened files" \ "当前打开的文件" ##ID:002849## mcset $l "Files in the current project" \ "当前项目中的文件" ##ID:002850## mcset $l "SFR watches" \ "SFR watches" ;# <-- NOT TRANSLATED YET ##ID:002851## mcset $l "(read only)" \ "(只读)" ##ID:002852## mcset $l "File does not exist" \ "文件不存在" ##ID:002853## mcset $l "Path:" \ "路径:" ##ID:002854## mcset $l "Size:" \ "大小:" ##ID:002855## mcset $l "Modified:" \ "Modified:" ;# <-- NOT TRANSLATED YET ##ID:002856## mcset $l "Owner:" \ "所有者:" ##ID:002857## mcset $l "Permissions:" \ "权限:" ##ID:002858## mcset $l "Encoding:" \ "编码:" ##ID:002859## mcset $l "EOL:" \ "EOL:" ;# <-- NOT TRANSLATED YET ##ID:002860## mcset $l "Are you sure ?" \ "您确定吗" ##ID:002861## mcset $l "Reload of the file will change contents of the current editor. Are you sure you want that ?" \ "Reload of the file will change contents of the current editor. Are you sure you want that ?" ;# <-- NOT TRANSLATED YET ##ID:002862## mcset $l "Reload aborted" \ "终止刷新" ##ID:002863## mcset $l "Binary File Opened - MCU 8015 IDE" \ "打开二进制文件 - MCU 8015 IDE" ##ID:002864## mcset $l "The file %s is binary, saving it will result corrupted file." \ "文件 %s 是二进制文件,保存它会导致文件损坏。" ##ID:002865## mcset $l "Unknown error" \ "未知错误" ##ID:004497## mcset $l "Checking for changes in files ..." \ "正在检查文件的更改 ..." ##ID:002866## mcset $l "Error raised during md5 checking of file:\n%s.\nMaybe md5 extension is not correctly loaded." \ "Raised error during md5 checking file %s. Maybe md5 extension is not correctly loaded." ;# <-- UPDATE? ##ID:002869## mcset $l "The following files could not be located:" \ "下列文件无法找到:" ##ID:002870## mcset $l "Ok" \ "确定" ##ID:002871## mcset $l "File(s) not found" \ "没有找到文件" ##ID:002872## mcset $l "The following files were modified since last save:" \ "The following files were modified since last save:" ;# <-- NOT TRANSLATED YET ##ID:002873## mcset $l "File(s) changed" \ "文件已被更改" ##ID:002874## mcset $l "File not found - MCU 8051 IDE" \ "文件没有找到 - MCU 8051 IDE" ##ID:002875## mcset $l "File %s not found !" \ "文件 %s 没有找到 !" ##ID:004498## mcset $l "Dangerously large file!" \ "Dangerously large file!" ;# <-- NOT TRANSLATED YET ##ID:004499## mcset $l "WARNING: The file you are about to open is larger than 10MB!\n\nOpening extremely big source code files might lead your system to run out of operating memory, then the MCU 8051 IDE might got killed by the operating system!\n\nARE YOU SURE you want to proceed?" \ "WARNING: The file you are about to open is larger than 10MB!\n\nOpening extremely big source code files might lead your system to run out of operating memory, then the MCU 8051 IDE might got killed by the operating system!\n\nARE YOU SURE you want to proceed?" ;# <-- NOT TRANSLATED YET ##ID:002876## mcset $l "File: %s is already opened." \ "文件 : %s 已经打开." ##ID:002877## mcset $l "Do you want to add this file to the project ?\n%s" \ "Do you want to add this file to the project ?\n%s" ;# <-- NOT TRANSLATED YET ##ID:002878## mcset $l "Yes" \ "Yes" ;# <-- NOT TRANSLATED YET ##ID:002879## mcset $l "No" \ "No" ;# <-- NOT TRANSLATED YET ##ID:002880## mcset $l "Do not ask again" \ "不要再询问" ##ID:002882## mcset $l "Add file ?" \ "添加文件?" ##ID:002883## mcset $l "Overwrite file" \ "覆盖文件" ##ID:002884## mcset $l "A file name '%s' already exists. Are you sure you want to overwrite it ?" \ "A file name '%s' already exists. Are you sure you want to overwrite it ?" ;# <-- NOT TRANSLATED YET ##ID:002885## mcset $l "Close document - MCU 8051 IDE" \ "关闭文档 - MCU 8051 IDE" ##ID:002886## mcset $l "The document %s have been modified.\nDo you want to save it ?" \ "The document %s have been modified.\nDo you want to save it ?" ;# <-- NOT TRANSLATED YET ##ID:002887## mcset $l "Last editor window closed -> opening a new one ..." \ "Last editor window closed -> opening a new one ..." ;# <-- NOT TRANSLATED YET ##ID:002888## mcset $l "The following documents have been modified,\ndo you want to save them before closing ?" \ "The following documents have been modified,\ndo you want to save them before closing ?" ;# <-- NOT TRANSLATED YET ##ID:002889## mcset $l "Unsaved files" \ "未保存文件" ##ID:002890## mcset $l "Save selected" \ "保存选定" ##ID:002891## mcset $l "Discard" \ "丢弃" ##ID:002892## mcset $l "Cancel" \ "取消" ##ID:002893## mcset $l "Close files - MCU 8051 IDE" \ "关闭文件 - MCU 8051 IDE" ##ID:002894## mcset $l "File not found" \ "文件没有找到" ##ID:002895## mcset $l "File %s could not be located at the specified location." \ "File %s could not be located at the specified location." ;# <-- NOT TRANSLATED YET ##ID:002896## mcset $l "File changed" \ "文件已经修改" ##ID:002897## mcset $l "File \"%s\" was modified since last project save\nTime: %s" \ "File \"%s\" was modified since last project save\nTime: %s" ;# <-- NOT TRANSLATED YET ##ID:002898## mcset $l "Raised error during md5 checking file %s. Maybe md5 extension is not correctly loaded." \ "Raised error during md5 checking file %s. Maybe md5 extension is not correctly loaded." ;# <-- NOT TRANSLATED YET ##ID:002899## mcset $l "Program not found" \ "找不到程序" ##ID:002900## mcset $l "Unable to execute \"%s\"" \ "无法执行 \"%s\"" ##ID:002901## mcset $l "Enter command to execute:" \ "输入要执行的命令:" ##ID:002902## mcset $l "Open with other ..." \ "Open with other ..." ;# <-- NOT TRANSLATED YET ##ID:002903## mcset $l "Unable to find \"%s\" in list of opened files or project files" \ "Unable to find \"%s\" in list of opened files or project files" ;# <-- NOT TRANSLATED YET ##ID:002904## mcset $l "Simulator: unable to switch to file: '%s'" \ "模拟器: 无法切换到文件: '%s'" } # rightpanel.tcl # ============================================================================== namespace eval RightPanel { ##ID:002905## mcset $l "Remove" \ "删除" ##ID:002906## mcset $l "Add/Remove editor bookmark to/from current line" \ "Add/Remove editor bookmark to/from current line" ;# <-- NOT TRANSLATED YET ##ID:002907## mcset $l "Previous" \ "上一页" ##ID:002908## mcset $l "Go to previous bookmark" \ "转到上一页书签" ##ID:002909## mcset $l "Next" \ "下一页" ##ID:002910## mcset $l "Go to next bookmark" \ "转到下一页书签" ##ID:002911## mcset $l "Remove all" \ "删除所有" ##ID:002912## mcset $l "Remove all bookmarks from the editor" \ "从编辑器中删除所有书签" ##ID:002913## mcset $l "Go to previous breakpoint" \ "转到上一个前断点" ##ID:002914## mcset $l "Go to next breakpoint" \ "转到下一个前断点" ##ID:002915## mcset $l "Remove all breakpoints from the editor" \ "从编译中删除所有断点" ##ID:002916## mcset $l "List of bookmarks in the current editor" \ "列出当前编辑器的书签" ##ID:002917## mcset $l "List of breakpoints in the current editor" \ "列出当前编辑器的书签" ##ID:002918## mcset $l "Details for instruction on the current line" \ "Details for instruction on the current line" ;# <-- NOT TRANSLATED YET ##ID:002919## mcset $l "Register watches (for internal data memory, external data memory, expanded data memory and bits)" \ "Register watches (for internal data memory, external data memory, expanded data memory and bits)" ;# <-- NOT TRANSLATED YET ##ID:002920## mcset $l "List of active subprograms" \ "List of active subprograms" ;# <-- NOT TRANSLATED YET ##ID:002921## mcset $l "Symbol list" \ "Symbol list" ;# <-- NOT TRANSLATED YET ##ID:002922## mcset $l "Hardware manager" \ "硬件管理" ##ID:002923## mcset $l "Hide the panel" \ "隐藏面板" ##ID:002924## mcset $l "Bookmarks" \ "书签" ##ID:002925## mcset $l "List of bookmarks in editor (Ctrl+6)" \ "编辑器中的书签列表 (Ctrl+6)" ##ID:002926## mcset $l "Breakpoints" \ "断点" ##ID:002927## mcset $l "List of breakpoints in editor (Ctrl+7)" \ "编辑器中的断点列表 (Ctrl+7)" ##ID:002928## mcset $l "Symbols" \ "符号" ##ID:002929## mcset $l "Symbol List" \ "符号列表" ##ID:002930## mcset $l "Instruction" \ "指令" ##ID:002931## mcset $l "Instruction details (Ctrl+8)" \ "Instruction details (Ctrl+8)" ;# <-- NOT TRANSLATED YET ##ID:002932## mcset $l "Watches" \ "Watches" ;# <-- NOT TRANSLATED YET ##ID:002933## mcset $l "Register watches (Ctrl+9)" \ "Register watches (Ctrl+9)" ;# <-- NOT TRANSLATED YET ##ID:002934## mcset $l "Subprograms" \ "子程序" ##ID:002935## mcset $l "Active subprograms (Ctrl+0)" \ "Active subprograms (Ctrl+0)" ;# <-- NOT TRANSLATED YET ##ID:002936## mcset $l "Hardware" \ "硬件" ##ID:002937## mcset $l "Hide" \ "隐藏" ##ID:002938## mcset $l "Show the panel" \ "显示面板" ##ID:002939## mcset $l "Hardware tools" \ "硬件工具" ##ID:002940## mcset $l "Hardware tools manager" \ "硬件工具管理" ##ID:002941## mcset $l "MCU register watches (Ctrl+9)" \ "MCU register watches (Ctrl+9)" ;# <-- NOT TRANSLATED YET ##ID:002942## mcset $l "Register watches for internal data memory, external data memory and expanded data memory" \ "Register watches for internal data memory, external data memory and expanded data memory" ;# <-- NOT TRANSLATED YET ##ID:002943## mcset $l "Move to previous bookmark" \ "Move to previous bookmark" ;# <-- NOT TRANSLATED YET ##ID:002944## mcset $l "Go to to line of previous bookmark" \ "Go to to line of previous bookmark" ;# <-- NOT TRANSLATED YET ##ID:002945## mcset $l "Move to the next bookmark" \ "Move to the next bookmark" ;# <-- NOT TRANSLATED YET ##ID:002946## mcset $l "Go to to line of next bookmark" \ "Go to to line of next bookmark" ;# <-- NOT TRANSLATED YET ##ID:002947## mcset $l "Add/Remove bookmark on the current line" \ "Add/Remove bookmark on the current line" ;# <-- NOT TRANSLATED YET ##ID:002948## mcset $l "Add/Remove bookmark on the current line in editor" \ "Add/Remove bookmark on the current line in editor" ;# <-- NOT TRANSLATED YET ##ID:002949## mcset $l "Clear all bookmarks" \ "清除所有书签" ##ID:002950## mcset $l "Clear all bookmarks from editor" \ "清除所有编辑器的书签" ##ID:002951## mcset $l "Move to previous breakpoint" \ "Move to previous breakpoint" ;# <-- NOT TRANSLATED YET ##ID:002952## mcset $l "Go to to line of previous breakpoint" \ "Go to to line of previous breakpoint" ;# <-- NOT TRANSLATED YET ##ID:002953## mcset $l "Move to next breakpoint" \ "Move to next breakpoint" ;# <-- NOT TRANSLATED YET ##ID:002954## mcset $l "Go to to line of next breakpoint" \ "Go to to line of next breakpoint" ;# <-- NOT TRANSLATED YET ##ID:002955## mcset $l "Add/Remove breakpoint on the current line" \ "Add/Remove breakpoint on the current line" ;# <-- NOT TRANSLATED YET ##ID:002956## mcset $l "Add/Remove breakpoint on the current line in editor" \ "Add/Remove breakpoint on the current line in editor" ;# <-- NOT TRANSLATED YET ##ID:002957## mcset $l "Clear all breakpoints" \ "清除所有断点" ##ID:002958## mcset $l "Clear all breakpoints from editor" \ "清除所有编辑器的断点" ##ID:002959## mcset $l "Reevaluate" \ "Reevaluate" ;# <-- NOT TRANSLATED YET ##ID:002960## mcset $l "Reevaluate ..." \ "Reevaluate ..." ;# <-- NOT TRANSLATED YET ##ID:002961## mcset $l "Clear search string" \ "Clear search string" ;# <-- NOT TRANSLATED YET ##ID:002962## mcset $l "Search for a constant, variable, function or macro" \ "Search for a constant, variable, function or macro" ;# <-- NOT TRANSLATED YET ##ID:002963## mcset $l " Search:" \ " 搜索:" } # X.tcl # ============================================================================== namespace eval X { ##ID:002964## mcset $l "Options" \ "选项" ##ID:002965## mcset $l "Case sensitive" \ "区分大小写" ##ID:002966## mcset $l "Backwards" \ "向后" ##ID:002967## mcset $l "From cursor" \ "从光标" ##ID:002968## mcset $l "Regular expr." \ "正规表达式." ##ID:002969## mcset $l "Prompt on replace" \ "替换时提示" ##ID:002970## mcset $l "Case sensitive search" \ "区分大小写的搜索" ##ID:002971## mcset $l "Search backwards from the specified location" \ "从指定位置反向搜索" ##ID:002972## mcset $l "Start search from cursor instead of beginning" \ "从头开始搜索" ##ID:002973## mcset $l "Use search string as regular expression" \ "Use search string as regular expression" ;# <-- NOT TRANSLATED YET ##ID:002974## mcset $l "Selected text" \ "所选文字" ##ID:002975## mcset $l "Search within selected text only" \ "仅在选定的文本中搜索" ##ID:002976## mcset $l "Save" \ "保存" ##ID:002977## mcset $l "Save this project" \ "保存这个项目" ##ID:002978## mcset $l "Edit project" \ "编辑这个项目" ##ID:002979## mcset $l "Edit additional project detail" \ "编辑附加项目细节" ##ID:002980## mcset $l "Save and close" \ "保存并关闭" ##ID:002981## mcset $l "Save and close this project" \ "保存并关闭这个项目" ##ID:002982## mcset $l "Close without saving" \ "不保存关闭" ##ID:002983## mcset $l "Close this project" \ "关闭这个项目" ##ID:002984## mcset $l "Move left" \ "Move left" ;# <-- NOT TRANSLATED YET ##ID:002985## mcset $l "Move this tab to right the beginning of the tab bar" \ "Move this tab to right the beginning of the tab bar" ;# <-- NOT TRANSLATED YET ##ID:002986## mcset $l "Move right" \ "Move right" ;# <-- NOT TRANSLATED YET ##ID:002987## mcset $l "Move this tab to right the end of the tab bar" \ "Move this tab to right the end of the tab bar" ;# <-- NOT TRANSLATED YET ##ID:002988## mcset $l "Move to beginning" \ "Move to beginning" ;# <-- NOT TRANSLATED YET ##ID:002989## mcset $l "Move to end" \ "Move to end" ;# <-- NOT TRANSLATED YET ##ID:002990## mcset $l "Export to XHTML - MCU 8051 IDE" \ "Export to XHTML - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:002991## mcset $l "Export to LaTeX - MCU 8051 IDE" \ "Export to LaTeX - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:002992## mcset $l "Export to XHTML file" \ "Export to XHTML file" ;# <-- NOT TRANSLATED YET ##ID:002993## mcset $l "Export to LaTeX file" \ "Export to LaTeX file" ;# <-- NOT TRANSLATED YET ##ID:002994## mcset $l "Hexadecimal number" \ "Hexadecimal number" ;# <-- NOT TRANSLATED YET ##ID:002995## mcset $l "Octal number" \ "Octal number" ;# <-- NOT TRANSLATED YET ##ID:002996## mcset $l "Decimal number" \ "Decimal number" ;# <-- NOT TRANSLATED YET ##ID:002997## mcset $l "Binary number" \ "Binary number" ;# <-- NOT TRANSLATED YET ##ID:002998## mcset $l "Constant" \ "Constant" ;# <-- NOT TRANSLATED YET ##ID:002999## mcset $l "Generic number" \ "Generic number" ;# <-- NOT TRANSLATED YET ##ID:003000## mcset $l "Comment" \ "注释" ##ID:003001## mcset $l "Control sequence" \ "Control sequence" ;# <-- NOT TRANSLATED YET ##ID:003002## mcset $l "Symbol" \ "Symbol" ;# <-- NOT TRANSLATED YET ##ID:003003## mcset $l "Directive" \ "Directive" ;# <-- NOT TRANSLATED YET ##ID:003004## mcset $l "Label" \ "Label" ;# <-- NOT TRANSLATED YET ##ID:003005## mcset $l "Instruction" \ "Instruction" ;# <-- NOT TRANSLATED YET ##ID:003006## mcset $l "SFR register" \ "SFR register" ;# <-- NOT TRANSLATED YET ##ID:003007## mcset $l "Indirect address" \ "Indirect address" ;# <-- NOT TRANSLATED YET ##ID:003008## mcset $l "Immediate hex" \ "Immediate hex" ;# <-- NOT TRANSLATED YET ##ID:003009## mcset $l "Immediate oct" \ "Immediate oct" ;# <-- NOT TRANSLATED YET ##ID:003010## mcset $l "Immediate dec" \ "Immediate dec" ;# <-- NOT TRANSLATED YET ##ID:003011## mcset $l "Immediate bin" \ "Immediate bin" ;# <-- NOT TRANSLATED YET ##ID:003012## mcset $l "Immediate const" \ "Immediate const" ;# <-- NOT TRANSLATED YET ##ID:003013## mcset $l "Immediate generic" \ "Immediate generic" ;# <-- NOT TRANSLATED YET ##ID:003014## mcset $l "Macro instruction" \ "Macro instruction" ;# <-- NOT TRANSLATED YET ##ID:003015## mcset $l "Uppercase" \ "大写" ##ID:003016## mcset $l "Lowercase" \ "小写" ##ID:003017## mcset $l "Keep case" \ "Keep case" ;# <-- NOT TRANSLATED YET ##ID:003018## mcset $l "Code listing files" \ "Code listing files" ;# <-- NOT TRANSLATED YET ##ID:003019## mcset $l "Assembly debug files (before v1.0.5)" \ "Assembly debug files (before v1.0.5)" ;# <-- NOT TRANSLATED YET ##ID:003020## mcset $l "IHEX object code files" \ "IHEX object code files" ;# <-- NOT TRANSLATED YET ##ID:003021## mcset $l "Binary object code files" \ "Binary object code files" ;# <-- NOT TRANSLATED YET ##ID:003022## mcset $l "HTML files" \ "HTML文件" ##ID:003023## mcset $l "TeX sources" \ "TeX sources" ;# <-- NOT TRANSLATED YET ##ID:003024## mcset $l "Hibernated programs" \ "Hibernated programs" ;# <-- NOT TRANSLATED YET ##ID:003025## mcset $l "ASL: NoICE-compatible command file" \ "ASL: NoICE-compatible command file" ##ID:003026## mcset $l "ASL: Atmel debug file used by the AVR tools" \ "ASL: Atmel debug file used by the AVR tools" ;# <-- NOT TRANSLATED YET ##ID:003027## mcset $l "SDCC: The memory map for the load module" \ "SDCC: The memory map for the load module" ;# <-- NOT TRANSLATED YET ##ID:003028## mcset $l "ASL object files" \ "ASL object files" ;# <-- NOT TRANSLATED YET ##ID:003029## mcset $l "Macro definition file" \ "Macro definition file" ;# <-- NOT TRANSLATED YET ##ID:003030## mcset $l "Macro output files" \ "Macro output files" ;# <-- NOT TRANSLATED YET ##ID:003031## mcset $l "SDCC IHEX8 object files" \ "SDCC IHEX8 object files" ;# <-- NOT TRANSLATED YET ##ID:003032## mcset $l "MCU 8051 IDE Assembler debug files" \ "MCU 8051 IDE Assembler debug files" ;# <-- NOT TRANSLATED YET ##ID:003033## mcset $l "SDCC Assembler debug files" \ "SDCC Assembler debug files" ;# <-- NOT TRANSLATED YET ##ID:003034## mcset $l "SDCC: Object file created by the assembler" \ "SDCC: Object file created by the assembler" ;# <-- NOT TRANSLATED YET ##ID:003035## mcset $l "SDCC debug files" \ "SDCC debug files" ;# <-- NOT TRANSLATED YET ##ID:003036## mcset $l "SDCC: A file with a summary of the memory usage" \ "SDCC: A file with a summary of the memory usage" ;# <-- NOT TRANSLATED YET ##ID:003037## mcset $l "SDCC: Linker script" \ "SDCC: Linker script" ;# <-- NOT TRANSLATED YET ##ID:003038## mcset $l "SDCC: Symbol listing for the source file" \ "SDCC: Symbol listing for the source file" ;# <-- NOT TRANSLATED YET ##ID:003039## mcset $l "OMF-51 object files" \ "OMF-51 object files" ;# <-- NOT TRANSLATED YET ##ID:003040## mcset $l "SDCC: Listing file updated with linkedit information" \ "SDCC: Listing file updated with linkedit information" ;# <-- NOT TRANSLATED YET ##ID:003041## mcset $l "MD5 hashes for C source files" \ "MD5 hashes for C source files" ;# <-- NOT TRANSLATED YET ##ID:003042## mcset $l "Doxygen backup file" \ "Doxygen backup file" ;# <-- NOT TRANSLATED YET ##ID:003043## mcset $l "Assembly language sources" \ "Assembly language sources" ;# <-- NOT TRANSLATED YET ##ID:003044## mcset $l "Register watches definition files" \ "Register watches definition files" ;# <-- NOT TRANSLATED YET ##ID:003045## mcset $l "MCU 8051 IDE hibernated program" \ "MCU 8051 IDE hibernated program" ;# <-- NOT TRANSLATED YET ##ID:003046## mcset $l "MCU 8051 IDE project" \ "MCU 8051 IDE roject" ;# <-- NOT TRANSLATED YET ##ID:003047## mcset $l "C sources" \ "C sources" ;# <-- NOT TRANSLATED YET ##ID:003048## mcset $l "C headers" \ "C headers" ;# <-- NOT TRANSLATED YET ##ID:003049## mcset $l "Virtual Hardware Component" \ "Virtual Hardware Component" ;# <-- NOT TRANSLATED YET ##ID:003050## mcset $l "Virtual Hardware" \ "Virtual Hardware" ;# <-- NOT TRANSLATED YET ##ID:003051## mcset $l "Text files" \ "文本文件" ##ID:003052## mcset $l "All backup files" \ "所有备份文件" ##ID:003053## mcset $l "echo \"This is a custom command\"\necho \"\tYou can configure it in Main menu->Configure->Edit user commands.\"\necho \"\tCustom commands are intended for running external programs from this IDE (e.g. program uploaders)\"" \ "echo \"This is a custom command\"\necho \"\tYou can configure it in Main menu->Configure->Edit user commands.\"\necho \"\tCustom commands are intended for running external programs from this IDE (e.g. program uploaders)\"" ;# <-- NOT TRANSLATED YET ##ID:003054## mcset $l "More: Main menu -> Configure -> Edit user commands" \ "More: Main menu -> Configure -> Edit user commands" ;# <-- NOT TRANSLATED YET ##ID:003055## mcset $l "Unable to compile" \ "Unable to compile" ;# <-- NOT TRANSLATED YET ##ID:003056## mcset $l "Simulator is engaged, shutdown the simulator first." \ "Simulator is engaged, shutdown the simulator first." ;# <-- NOT TRANSLATED YET ##ID:003057## mcset $l "Open file - MCU 8051 IDE" \ "打开文件 - MCU 8051 IDE" ##ID:003058## mcset $l "New file - MCU 8051 IDE" \ "新建文件 - MCU 8051 IDE" ##ID:003059## mcset $l "Assembly language" \ "Assembly language" ;# <-- NOT TRANSLATED YET ##ID:003060## mcset $l "C source" \ "C source" ;# <-- NOT TRANSLATED YET ##ID:003061## mcset $l "C header" \ "C header" ;# <-- NOT TRANSLATED YET ##ID:003062## mcset $l "Code listing" \ "Code listing" ;# <-- NOT TRANSLATED YET ##ID:003063## mcset $l "All files" \ "所有文件" ##ID:003064## mcset $l "File not found - MCU 8051 IDE" \ "文件没有找到 - MCU 8051 IDE" ##ID:003065## mcset $l "The selected file do not exist:\n%s" \ "The selected file do not exist:\n%s" ;# <-- NOT TRANSLATED YET ##ID:003066## mcset $l "Save file - MCU 8051 IDE" \ "保存文件 - MCU 8051 IDE" ##ID:003067## mcset $l "Text to find:" \ "要查找的文本:" ##ID:003068## mcset $l "Ok" \ "Ok" ;# <-- NOT TRANSLATED YET ##ID:003069## mcset $l "Cancel" \ "取消" ##ID:003070## mcset $l "Find - MCU 8051 IDE" \ "查找 - MCU 8051 IDE" ##ID:003071## mcset $l "Unable to execute" \ "无法执行" ##ID:003072## mcset $l "Search result: %s matches found" \ "Search result: %s matches found" ;# <-- NOT TRANSLATED YET ##ID:003073## mcset $l "Find - %s" \ "查找- %s" ##ID:003074## mcset $l "Search string '%s' not found !" \ "Search string '%s' not found !" ;# <-- NOT TRANSLATED YET ##ID:003075## mcset $l "Beginning of document reached\n\nContinue from end ?" \ "Beginning of document reached\n\nContinue from end ?" ;# <-- NOT TRANSLATED YET ##ID:003076## mcset $l "End of document reached\n\nContinue from beginning ?" \ "End of document reached\n\nContinue from beginning ?" ;# <-- NOT TRANSLATED YET ##ID:003077## mcset $l "Editor: Nothing to search ..." \ "Editor: Nothing to search ..." ;# <-- NOT TRANSLATED YET ##ID:003078## mcset $l "Text to find: " \ "Text to find: " ;# <-- NOT TRANSLATED YET ##ID:003079## mcset $l "Replace with:" \ "Replace with:" ;# <-- NOT TRANSLATED YET ##ID:003080## mcset $l "Replace - MCU 8051 IDE" \ "Replace - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:003081## mcset $l "Replace - %s" \ "Replace - %s" ;# <-- NOT TRANSLATED YET ##ID:003082## mcset $l "Found an occurrence of your search term.\nWhat do you want to do ?" \ "Found an occurrence of your search term.\nWhat do you want to do ?" ;# <-- NOT TRANSLATED YET ##ID:003083## mcset $l "Replace" \ "替换" ##ID:003084## mcset $l "Replace & close" \ "替换及关闭" ##ID:003085## mcset $l "Replace all" \ "全部替换" ##ID:003086## mcset $l "Find next" \ "查找下一个" ##ID:003087## mcset $l "Close" \ "关闭" ##ID:003088## mcset $l "Replace confirmation - %s" \ "Replace confirmation - %s" ;# <-- NOT TRANSLATED YET ##ID:003089## mcset $l "Go to line" \ "到达指定的行目" ##ID:003090## mcset $l "Go to line - MCU 8051 IDE" \ "到达指定的行目 - MCU 8051 IDE" ##ID:003091## mcset $l "Choose directory - MCU 8051 IDE" \ "选择目录 - MCU 8051 IDE" ##ID:003092## mcset $l "Create a new project.\n All entries are required. Other options --> edit project." \ "Create a new project.\n All entries are required. Other options --> edit project." ;# <-- NOT TRANSLATED YET ##ID:003093## mcset $l "General" \ "General" ;# <-- NOT TRANSLATED YET ##ID:003094## mcset $l "Project name" \ "项目名称" ##ID:003095## mcset $l "Project directory" \ "项目目录" ##ID:003096## mcset $l "Choose destination location" \ "选择目标位置" ##ID:003097## mcset $l "Processor" \ "Processor" ;# <-- NOT TRANSLATED YET ##ID:003098## mcset $l "External RAM (XDATA)" \ "External RAM (XDATA)" ;# <-- NOT TRANSLATED YET ##ID:003099## mcset $l "External ROM/FLASH (XCODE)" \ "External ROM/FLASH (XCODE)" ;# <-- NOT TRANSLATED YET ##ID:003100## mcset $l "Type:" \ "类型:" ##ID:003101## mcset $l "Selected uC" \ "Selected uC" ;# <-- NOT TRANSLATED YET ##ID:003102## mcset $l "Select MCU" \ "Select MCU" ;# <-- NOT TRANSLATED YET ##ID:003103## mcset $l "Choose processor from database" \ "Choose processor from database" ;# <-- NOT TRANSLATED YET ##ID:003104## mcset $l "Enable" \ "Enable" ;# <-- NOT TRANSLATED YET ##ID:003105## mcset $l "Connect external data memory" \ "Connect external data memory" ;# <-- NOT TRANSLATED YET ##ID:003106## mcset $l "Amount of external data memory" \ "Amount of external data memory" ;# <-- NOT TRANSLATED YET ##ID:003107## mcset $l "Connect external program memory" \ "Connect external program memory" ;# <-- NOT TRANSLATED YET ##ID:003108## mcset $l "Amount of total program memory minus internal program memory" \ "Amount of total program memory minus internal program memory" ;# <-- NOT TRANSLATED YET ##ID:003109## mcset $l "New project - MCU 8051 IDE" \ "新建项目 - MCU 8051 IDE" ##ID:003110## mcset $l "Invalid request" \ "无效的请求" ##ID:003111## mcset $l "Both entries in section general must be filled." \ "Both entries in section general must be filled." ;# <-- NOT TRANSLATED YET ##ID:003112## mcset $l "Create directory - MCU 8051 IDE" \ "创建目录 - MCU 8051 IDE" ##ID:003113## mcset $l "The specified directory does not exist do you want to create it ?" \ "The specified directory does not exist do you want to create it ?" ;# <-- NOT TRANSLATED YET ##ID:003114## mcset $l "File access error" \ "文件访问错误" ##ID:003115## mcset $l "Creation of directory '%s' FAILED !\nPlease check your permissions." \ "Creation of directory '%s' FAILED !\nPlease check your permissions." ;# <-- NOT TRANSLATED YET ##ID:003116## mcset $l "File already exists - MCU 8051 IDE" \ "文件已存在 - MCU 8051 IDE" ##ID:003117## mcset $l "Some project with the same name already exists in the specified directory. \nDo you want to overwrite it ?" \ "Some project with the same name already exists in the specified directory. \nDo you want to overwrite it ?" ;# <-- NOT TRANSLATED YET ##ID:003118## mcset $l "Unable to write to file:\n\"%s\"" \ "无法写入文件:\n\"%s\"" ##ID:003119## mcset $l "Open project - MCU 8051 IDE" \ "打开项目 - MCU 8051 IDE" ##ID:003120## mcset $l "Error - MCU 8051 IDE" \ "错误 - MCU 8051 IDE" ##ID:003121## mcset $l "Unable to load file: %s" \ "无法载入文件: %s" ##ID:003122## mcset $l "Project saved to %s" \ "项目保存到 %s" ##ID:003123## mcset $l "IO Error" \ "IO Error" ;# <-- NOT TRANSLATED YET ##ID:003124## mcset $l "General information" \ "General information" ;# <-- NOT TRANSLATED YET ##ID:003125## mcset $l "Version" \ "Version" ;# <-- NOT TRANSLATED YET ##ID:003126## mcset $l "Date" \ "Date" ;# <-- NOT TRANSLATED YET ##ID:003127## mcset $l "Copyright" \ "Copyright" ;# <-- NOT TRANSLATED YET ##ID:003128## mcset $l "License" \ "License" ;# <-- NOT TRANSLATED YET ##ID:003129## mcset $l "Authors:" \ "Authors:" ;# <-- NOT TRANSLATED YET ##ID:003130## mcset $l "List of project authors (one per line):" \ "List of project authors (one per line):" ;# <-- NOT TRANSLATED YET ##ID:003131## mcset $l "XDATA" \ "XDATA" ;# <-- NOT TRANSLATED YET ##ID:003132## mcset $l "XCODE" \ "XCODE" ;# <-- NOT TRANSLATED YET ##ID:003133## mcset $l "Clock \[kHz\]:" \ "Clock \[kHz\]:" ;# <-- NOT TRANSLATED YET ##ID:003134## mcset $l "Main file:" \ "Main file:" ;# <-- NOT TRANSLATED YET ##ID:003135## mcset $l "Project main file (e.g. main.c)\n(empty string means always compile current file)" \ "Project main file (e.g. main.c)\n(empty string means always compile current file)" ;# <-- NOT TRANSLATED YET ##ID:003136## mcset $l "Size of external data memory" \ "Size of external data memory" ;# <-- NOT TRANSLATED YET ##ID:003137## mcset $l "Project description" \ "项目说明" ##ID:003138## mcset $l "Edit project - MCU 8051 IDE" \ "编辑项目 - MCU 8051 IDE" ##ID:003139## mcset $l "Select main file - %s - MCU 8051 IDE" \ "Select main file - %s - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:003140## mcset $l "New values saved." \ "New values saved." ;# <-- NOT TRANSLATED YET ##ID:003141## mcset $l "Requesting confirmation %s" \ "Requesting confirmation %s" ;# <-- NOT TRANSLATED YET ##ID:003142## mcset $l "Are you sure want to close the project without saving changes ?" \ "Are you sure want to close the project without saving changes ?" ;# <-- NOT TRANSLATED YET ##ID:003143## mcset $l "Unable to run assembler" \ "Unable to run assembler" ;# <-- NOT TRANSLATED YET ##ID:003144## mcset $l "Something is already running in background." \ "Something is already running in background." ;# <-- NOT TRANSLATED YET ##ID:003145## mcset $l "Compiling ..." \ "正在编译 ..." ##ID:003146## mcset $l "Compiler not found" \ "没有找到编译器" ##ID:003147## mcset $l "Unable to find sdcc, please install sdcc and restart MCU 8051 IDE" \ "没有找到SDCC, 请安装SDCC和重新安装 MCU 8051 IDE" ##ID:003148## mcset $l "MCU 8051 IDE Native assembler" \ "MCU 8051 IDE Native assembler" ;# <-- NOT TRANSLATED YET ##ID:003149## mcset $l "%s assembler not found" \ "%s assembler not found" ;# <-- NOT TRANSLATED YET ##ID:003150## mcset $l "Unable to run program \"%s\". Please check if you have installed this assembler or choose a different one in compiler configuration dialog." \ "Unable to run program \"%s\". Please check if you have installed this assembler or choose a different one in compiler configuration dialog." ;# <-- NOT TRANSLATED YET ##ID:003151## mcset $l "Compiler crash - MCU 8051 IDE" \ "编译器崩溃 - MCU 8051 IDE" ##ID:003152## mcset $l "Compiler crashed, we are terribly sorry about that.\n\nPlease report this bug via project web or mail to author and please don't forget to include source code on which this error occurred." \ "Compiler crashed, we are terribly sorry about that.\n\nPlease report this bug via project web or mail to author and please don't forget to include source code on which this error occurred." ;# <-- NOT TRANSLATED YET ##ID:003153## mcset $l "Compilation successful" \ "编译成功" ##ID:003154## mcset $l "Compilation failed" \ "编译失败" ##ID:003155## mcset $l "Compilation failed, see messages for details." \ "编译失败,详见消息." ##ID:003156## mcset $l "Compilation: " \ "编辑:" ##ID:003157## mcset $l "Abort" \ "中止" ##ID:003158## mcset $l "This editor seems to be empty" \ "这个编辑器似乎是空的" ##ID:003159## mcset $l "Export dialog" \ "导出日志" ##ID:003160## mcset $l "Finishing syntax highlight ..." \ "正在完成语法高亮 ..." ##ID:003161## mcset $l "Export as %s - MCU 8051 IDE" \ "导出为 %s - MCU 8051 IDE" ##ID:003162## mcset $l "Permission denied" \ "没有权限" ##ID:003163## mcset $l "Unable to access file: %s" \ "无法访问文件: %s" ##ID:003164## mcset $l "Overwrite file" \ "覆盖文件" ##ID:003165## mcset $l "A file name '%s' already exists. Are you sure you want to overwrite it ?" \ "A file name '%s' already exists. Are you sure you want to overwrite it ?" ;# <-- NOT TRANSLATED YET ##ID:003166## mcset $l "Unable to write to file: \"%s\"" \ "无法写入文件: \"%s\"" ##ID:003167## mcset $l "\[lindex \$args 1\] - MCU 8051 IDE" \ "\[lindex \$args 1\] - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:003168## mcset $l "Converting ..." \ "Converting ..." ;# <-- NOT TRANSLATED YET ##ID:003169## mcset $l "Exported data saved to %s" \ "Exported data saved to %s" ;# <-- NOT TRANSLATED YET ##ID:003170## mcset $l "\nExiting program on user request ..." \ "\nExiting program on user request ..." ;# <-- NOT TRANSLATED YET ##ID:003171## mcset $l "An error occurred when saving the last session" \ "An error occurred when saving the last session" ;# <-- NOT TRANSLATED YET ##ID:003172## mcset $l "Saving project: %s" \ "Saving project: %s" ;# <-- NOT TRANSLATED YET ##ID:003173## mcset $l "Program terminated" \ "计划已终止" ##ID:003174## mcset $l "Unable to save running configuration" \ "无法保存正在运行的配置" ##ID:003175## mcset $l "Access denied" \ "拒绝访问" ##ID:003176## mcset $l "The following documents have been modified,\ndo you want to save them before closing ?" \ "The following documents have been modified,\ndo you want to save them before closing ?" ;# <-- NOT TRANSLATED YET ##ID:003177## mcset $l "Unsaved files" \ "未保存的文件" ##ID:003178## mcset $l "Project: \"%s\"" \ "项目: \"%s\"" ##ID:003179## mcset $l "Save selected" \ "保存所选" ##ID:003180## mcset $l "Save all" \ "保存全部" ##ID:003181## mcset $l "Discard" \ "丢弃" ##ID:003182## mcset $l "Attention" \ "Attention" ;# <-- NOT TRANSLATED YET ##ID:003183## mcset $l "You have to chose one action" \ "You have to chose one action" ;# <-- NOT TRANSLATED YET ##ID:003184## mcset $l "Exit program - MCU 8051 IDE" \ "退出程序 - MCU 8051 IDE" ##ID:003185## mcset $l "Simulator is not started" \ "模拟器没有启动" ##ID:003186## mcset $l "Simulator is busy" \ "模拟器正在运行" ##ID:003187## mcset $l "Recompile ?" \ "重新编译>" ##ID:003188## mcset $l "MD5 hashes verification failed. That probably means than some source files have been modified since last compilation.\n\nDo you want to recompile the code ?" \ "MD5 hashes verification failed. That probably means than some source files have been modified since last compilation.\n\nDo you want to recompile the code ?" ; ##ID:003189## mcset $l "File not found" \ "无法找到文件" ##ID:003190## mcset $l "Simulator data file not found.\nDo you want create it ?" \ "Simulator data file not found.\nDo you want create it ?" ;# <-- NOT TRANSLATED YET ##ID:003191## mcset $l "Unable to start simulator" \ "Unable to start simulator" ;# <-- NOT TRANSLATED YET ##ID:003192## mcset $l "Unable to read simulator file. Possibly you have disabled generation of simulator file in compiler configuration dialog." \ "Unable to read simulator file. Possibly you have disabled generation of simulator file in compiler configuration dialog." ;# <-- NOT TRANSLATED YET ##ID:003193## mcset $l "Unable to find hex file" \ "Unable to find hex file" ;# <-- NOT TRANSLATED YET ##ID:003194## mcset $l "Unable to open:\n'%s'" \ "无法打开文件:\n'%s'" ##ID:003195## mcset $l "Unable to gain unlimited access to the given file" \ "Unable to gain unlimited access to the given file" ;# <-- NOT TRANSLATED YET ##ID:003196## mcset $l "Parsing file ..." \ "分析文件 ..." ##ID:003197## mcset $l "Unable to open file:\n\"%s\"\nfor writing" \ "Unable to open file:\n\"%s\"\nfor writing" ;# <-- NOT TRANSLATED YET ##ID:003198## mcset $l "Error(s) occurred while parsing IHEX file - %s" \ "Error(s) occurred while parsing IHEX file - %s" ;# <-- NOT TRANSLATED YET ##ID:003199## mcset $l "grab release %s; destroy %s" \ "grab release %s; destroy %s" ;# <-- NOT TRANSLATED YET ##ID:003200## mcset $l "Input file" \ "Input file" ;# <-- NOT TRANSLATED YET ##ID:003201## mcset $l "Output file" \ "Output file" ;# <-- NOT TRANSLATED YET ##ID:003202## mcset $l "File where to save result" \ "File where to save result" ;# <-- NOT TRANSLATED YET ##ID:003203## mcset $l "Invoke dialog to select output file" \ "调用界面,选择输出文件" ##ID:003204## mcset $l "Convert Binary file to Intel HEX 8 - MCU 8051 IDE" \ "Convert Binary file to Intel HEX 8 - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:003205## mcset $l "Convert Intel HEX 8 to binary file - MCU 8051 IDE" \ "Convert Intel HEX 8 to binary file - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:003206## mcset $l "Convert sim file to Intel HEX 8 - MCU 8051 IDE" \ "Convert sim file to Intel HEX 8 - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:003207## mcset $l "Both entries must be filled" \ "这两个条目必须填写" ##ID:003208## mcset $l "Unable to open file '%s'" \ "无法打开文件 '%s'" ##ID:003209## mcset $l "Loading file ..." \ "正在打开文件 ..." ##ID:003210## mcset $l "Saving file ..." \ "正在保存文件 ..." ##ID:003211## mcset $l "Corrupted file - MCU 8051 IDE" \ "Corrupted file - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:003212## mcset $l "IHEX 8" \ "IHEX 8" ;# <-- NOT TRANSLATED YET ##ID:003213## mcset $l "The selected file %s does not exist." \ "The selected file %s does not exist." ;# <-- NOT TRANSLATED YET ##ID:003214## mcset $l "Disassembly failed" \ "Decompilation failed" ;# <-- NOT TRANSLATED YET ##ID:003215## mcset $l "Decompilation failed -- see messages for details" \ "Decompilation failed -- see messages for details" ;# <-- NOT TRANSLATED YET ##ID:003216## mcset $l "\nLoading IHEX file ..." \ "\nLoading IHEX file ..." ;# <-- NOT TRANSLATED YET ##ID:003217## mcset $l "Unable to open file" \ "无法打开文件" ##ID:003218## mcset $l "Unable to read file '%s'" \ "无法读取文件 '%s'" ##ID:003219## mcset $l "Successful" \ "成功" ##ID:003220## mcset $l "FAILED" \ "失败" ##ID:003221## mcset $l "About dialog" \ "关于界面" ##ID:003222## mcset $l "About" \ "关于" ##ID:003223## mcset $l "An open source IDE for MCS-51 based microconrollers for POSIX Systems, this software is licenced under the GNU GPL v2 licence. You can find more at the project web page http://mcu8051ide.sourceforge.net\n" \ "An open source IDE for MCS-51 based microconrollers for POSIX Systems, this software is licenced under the GNU GPL v2 licence. You can find more at the project web page http://mcu8051ide.sourceforge.net\n" ;# <-- NOT TRANSLATED YET ##ID:003224## mcset $l "You are currently using version for Microsoft® Windows®.\n" \ "You are currently using version for Microsoft® Windows®.\n" ;# <-- NOT TRANSLATED YET ##ID:003226## mcset $l "Web: http://mcu8051ide.sourceforge.net\n" \ "Web: http://mcu8051ide.sourceforge.net\n" ;# <-- NOT TRANSLATED YET ##ID:003227## mcset $l "Thanks to SDCC development team for their great work !\n" \ "Thanks to SDCC development team for their great work !\n" ;# <-- NOT TRANSLATED YET ##ID:003228## mcset $l "Thanks to %s for their help during development\n" \ "Thanks to %s for their help during development\n" ;# <-- NOT TRANSLATED YET ##ID:003229## mcset $l "Thanks to" \ "Thanks to" ;# <-- NOT TRANSLATED YET ##ID:003230## mcset $l "SDCC developers:\n" \ "SDCC developers:\n" ;# <-- NOT TRANSLATED YET ##ID:003231## mcset $l "\n(Please post suggestions to %s)\n" \ "\n(Please post suggestions to %s)\n" ;# <-- NOT TRANSLATED YET ##ID:003232## mcset $l "FILE \"license.txt\" WAS NOT FOUND\n\n" \ "FILE \"license.txt\" WAS NOT FOUND\n\n" ;# <-- NOT TRANSLATED YET ##ID:003233## mcset $l "Text of the license agreement is not available,\n" \ "Text of the license agreement is not available,\n" ;# <-- NOT TRANSLATED YET ##ID:003234## mcset $l "please check your installation." \ "please check your installation." ;# <-- NOT TRANSLATED YET ##ID:003235## mcset $l "About - MCU 8051 IDE" \ "关于 - MCU 8051 IDE" ##ID:003236## mcset $l "Unable to indent C source without program indent, please install indent and restart MCU 8051 IDE." \ "Unable to indent C source without program indent, please install indent and restart MCU 8051 IDE." ;# <-- NOT TRANSLATED YET ##ID:003237## mcset $l "Unable to indent C source code.\n\n%s" \ "无法缩进C源代码.\n\n%s" ##ID:003238## mcset $l "Reformatting code" \ "格式化代码" ##ID:003239## mcset $l "Options dialog" \ "选项界面" ##ID:003240## mcset $l "Backup files" \ "备份文件" ##ID:003241## mcset $l "Other files" \ "其他文件" ##ID:003242## mcset $l "Remove files" \ "删除文件" ##ID:003243## mcset $l "Cleanup project folder - MCU 8051 IDE" \ "清理项目文件夹 - MCU 8051 IDE" ##ID:003244## mcset $l "Cleanup project folder" \ "清理项目文件夹" ##ID:003245## mcset $l "Are you sure ?" \ "您确定吗?" ##ID:003246## mcset $l "These files will be removed" \ "These files will be removed" ;# <-- NOT TRANSLATED YET ##ID:003247## mcset $l "Proceed" \ "Proceed" ;# <-- NOT TRANSLATED YET ##ID:003248## mcset $l "%d file(s) removed." \ "%d file(s) removed." ;# <-- NOT TRANSLATED YET ##ID:003249## mcset $l "Confirm termination - MCU 8051 IDE" \ "终止确认 - MCU 8051 IDE" ##ID:003250## mcset $l "This process is already in progress. Do you want to terminate it ?" \ "这个过程已经在进行中,您想终止它吗?" ##ID:003251## mcset $l "Confirmation required" \ "需要确认" ##ID:003252## mcset $l "Do you really want to execute\ncustom command %s ?" \ "您真的要执行\n自定义命令 %s ?" ##ID:003253## mcset $l "Warning - Custom command" \ "警告 - 自定义命令" ##ID:003254## mcset $l "Some variables in user command could not be resolved." \ "Some variables in user command could not be resolved." ;# <-- NOT TRANSLATED YET ##ID:003255## mcset $l "Custom command finished" \ "自定义命令完成" ##ID:003256## mcset $l "Custom command failed" \ "自定义命令失败" ##ID:003257## mcset $l "Custom command %s - MCU 8051 IDE" \ "自定义命令 %s - MCU 8051 IDE" ##ID:004500## mcset $l "Unknow error" \ "Unknow error" ;# <-- NOT TRANSLATED YET ##ID:004501## mcset $l "Unable to execute your script in the urxvt terminal emulator." \ "Unable to execute your script in the urxvt terminal emulator." ;# <-- NOT TRANSLATED YET ##ID:004502## mcset $l "Kill the script?" \ "Kill the script?" ;# <-- NOT TRANSLATED YET ##ID:004503## mcset $l "Closing this window terminates all child processes of the terminal.\n\nDo you want to proceed?" \ "Closing this window terminates all child processes of the terminal.\n\nDo you want to proceed?" ;# <-- NOT TRANSLATED YET ##ID:003258## mcset $l "Welcome dialog" \ "欢迎界面" ##ID:003259## mcset $l "Welcome to MCU 8051 IDE !" \ "欢迎使用 8051 IDE !" ##ID:003260## mcset $l "Click here to open demonstration project." \ "Click here to open demonstration project." ;# <-- NOT TRANSLATED YET ##ID:003261## mcset $l "MCU 8051 IDE is a fully featured Integrated Development Environment" \ "MCU 8051 IDE is fully featured Integrated Development Environment" ;# <-- NOT TRANSLATED YET ##ID:003262## mcset $l " for MCS-51 based microcontrollers. It's written for POSIX Operating Systems (GNU/Linux, etc.) " \ " for MCS-51 based microcontrollers. It's written for POSIX Operating Systems (GNU/Linux, etc.) " ;# <-- NOT TRANSLATED YET ##ID:003263## mcset $l "and since version 1.3.5 it is also available for Microsoft® Windows® operating system." \ "and since version 1.3.5 it is also available for Microsoft® Windows® operating system." ;# <-- NOT TRANSLATED YET ##ID:003264## mcset $l "Main features:" \ "Main features:" ;# <-- NOT TRANSLATED YET ##ID:003265## mcset $l "Editor with syntax highlight, validation and popup-based completion\n\t" \ "Editor with syntax highlight, validation and popup-based completion\n\t" ;# <-- NOT TRANSLATED YET ##ID:003266## mcset $l "MCS-51 Assembler and Disassembler\n\t" \ "MCS-51 Assembler and Disassembler\n\t" ;# <-- NOT TRANSLATED YET ##ID:003267## mcset $l "MCS-51 Simulator (not all MCUs are fully supported !)\n\t" \ "MCS-51 Simulator (not all MCUs are fully supported !)\n\t" ;# <-- NOT TRANSLATED YET ##ID:003268## mcset $l "Support for C language (using C compiler SDCC)\n\t" \ "Support for C language (using C compiler SDCC)\n\t" ;# <-- NOT TRANSLATED YET ##ID:003269## mcset $l "Partial support for some HW tools\n\t" \ "Partial support for some HW tools\n\t" ;# <-- NOT TRANSLATED YET ##ID:003270## mcset $l "Project management\n\t" \ "Project management\n\t" ;# <-- NOT TRANSLATED YET ##ID:003271## mcset $l "Custom editable commands (using shell scripts)\n\t" \ "Custom editable commands (using shell scripts)\n\t" ;# <-- NOT TRANSLATED YET ##ID:003272## mcset $l "Dynamic help for instruction at the current line\n\t" \ "Dynamic help for instruction at the current line\n\t" ;# <-- NOT TRANSLATED YET ##ID:003273## mcset $l "Hexadecimal editor for eXternal RAM, Expanded RAM, Code memory, etc.\n\t" \ "Hexadecimal editor for eXternal RAM, Expanded RAM, Code memory, etc.\n\t" ;# <-- NOT TRANSLATED YET ##ID:003274## mcset $l "Scientific calculator\n\t" \ "Scientific calculator\n\t" ;# <-- NOT TRANSLATED YET ##ID:003275## mcset $l "Simple hardware simulation (LED's, etc.)\n\t" \ "Simple hardware simulation (LED's, etc.)\n\t" ;# <-- NOT TRANSLATED YET ##ID:003276## mcset $l "Graph showing voltage levels on ports\n\n" \ "Graph showing voltage levels on ports\n\n" ;# <-- NOT TRANSLATED YET ##ID:003277## mcset $l "Where to start:" \ "Where to start:" ;# <-- NOT TRANSLATED YET ##ID:003278## mcset $l "\n\t1. Create a new project" \ "\n\t1. Create a new project" ;# <-- NOT TRANSLATED YET ##ID:003279## mcset $l "Enter project name\n\t\t" \ "Enter project name\n\t\t" ;# <-- NOT TRANSLATED YET ##ID:003280## mcset $l "Choose project directory\n\t\t" \ "Choose project directory\n\t\t" ;# <-- NOT TRANSLATED YET ##ID:003281## mcset $l "Choose microcontroller (e.g. AT89S52)\n" \ "Choose microcontroller (e.g. AT89S52)\n" ;# <-- NOT TRANSLATED YET ##ID:003282## mcset $l "\t2. Write your code in the opened editor and click on " \ "\t2. Write your code in the opened editor and click on " ;# <-- NOT TRANSLATED YET ##ID:003283## mcset $l " to start the simulator\n" \ " to start the simulator\n" ;# <-- NOT TRANSLATED YET ##ID:003284## mcset $l "\t3. Step through your program by clicking on " \ "\t3. Step through your program by clicking on " ;# <-- NOT TRANSLATED YET ##ID:003285## mcset $l "Web site:" \ "Web site:" ;# <-- NOT TRANSLATED YET ##ID:003286## mcset $l "Author:" \ "Author:" ;# <-- NOT TRANSLATED YET ##ID:003287## mcset $l "Thank you for using/trying MCU 8051 IDE." \ "Thank you for using/trying MCU 8051 IDE." ;# <-- NOT TRANSLATED YET ##ID:003288## mcset $l "Welcome to MCU 8051 IDE" \ "欢迎使用 MCU 8051 IDE" ##ID:003289## mcset $l "Change letter case" \ "变更字母大小写" ##ID:003290## mcset $l "U" \ "U" ;# <-- NOT TRANSLATED YET ##ID:003291## mcset $l "L" \ "L" ;# <-- NOT TRANSLATED YET ##ID:003292## mcset $l "All " \ "All " ;# <-- NOT TRANSLATED YET ##ID:003293## mcset $l "Change letter case - MCU 8051 IDE" \ "变更字母大小写 - MCU 8051 IDE" ##ID:003294## mcset $l "Formatting ..." \ "Formatting ..." ;# <-- NOT TRANSLATED YET ##ID:003295## mcset $l "File name:" \ "File name:" ;# <-- NOT TRANSLATED YET ##ID:003296## mcset $l "Path:" \ "Path:" ;# <-- NOT TRANSLATED YET ##ID:003297## mcset $l "MCU:" \ "MCU:" ;# <-- NOT TRANSLATED YET ##ID:003298## mcset $l "XDATA:" \ "XDATA:" ;# <-- NOT TRANSLATED YET ##ID:003299## mcset $l "XCODE:" \ "XCODE:" ;# <-- NOT TRANSLATED YET ##ID:003300## mcset $l "Clock:" \ "Clock:" ;# <-- NOT TRANSLATED YET ##ID:003301## mcset $l "Default clock used by simulator engine" \ "Default clock used by simulator engine" ;# <-- NOT TRANSLATED YET ##ID:003302## mcset $l "Version:" \ "Version:" ;# <-- NOT TRANSLATED YET ##ID:003303## mcset $l "Project version (any string)" \ "Project version (any string)" ;# <-- NOT TRANSLATED YET ##ID:003304## mcset $l "Date:" \ "Date:" ;# <-- NOT TRANSLATED YET ##ID:003305## mcset $l "Project last update" \ "Project last update" ;# <-- NOT TRANSLATED YET ##ID:003306## mcset $l "Fill date entry with the current date" \ "Fill date entry with the current date" ;# <-- NOT TRANSLATED YET ##ID:003307## mcset $l "License:" \ "License:" ;# <-- NOT TRANSLATED YET ##ID:003308## mcset $l "Name of the license" \ "Name of the license" ;# <-- NOT TRANSLATED YET ##ID:003309## mcset $l "Copyright:" \ "Copyright:" ;# <-- NOT TRANSLATED YET ##ID:003310## mcset $l "Copyright information" \ "Copyright information" ;# <-- NOT TRANSLATED YET ##ID:003311## mcset $l "< Undefined >" \ "< Undefined >" ;# <-- NOT TRANSLATED YET ##ID:003312## mcset $l "%s - EEPROM write buffer" \ "%s - EEPROM write buffer" ;# <-- NOT TRANSLATED YET ##ID:003313## mcset $l "OFFSET = " \ "OFFSET = " ;# <-- NOT TRANSLATED YET ##ID:003314## mcset $l "Cursor: " \ "光标" ##ID:003315## mcset $l "EEPROM write buffer - %s - MCU 8051 IDE" \ "EEPROM写缓冲区 - %s - MCU 8051 IDE" ##ID:003316## mcset $l "This operation cannot be performed on an untitled file" \ "此操作无法对一个未命名的文件执行" ##ID:003317## mcset $l "This file does not contain any part of the running program" \ "此文件正在被其他程序使用" ##ID:003319## mcset $l "Line to address" \ "Line to address" ;# <-- NOT TRANSLATED YET ##ID:003320## mcset $l "PC = " \ "PC = " ;# <-- NOT TRANSLATED YET ##ID:003321## mcset $l "Program jump" \ "程序跳转" ##ID:003322## mcset $l "Subprogram call" \ "子程序调用" ##ID:003323## mcset $l "Graphical representation of the line where to go" \ "Graphical representation of the line where to go" ;# <-- NOT TRANSLATED YET ##ID:003324## mcset $l "Line where to go" \ "Line where to go" ;# <-- NOT TRANSLATED YET ##ID:003325## mcset $l "Unable to resolve" \ "无法解释" ##ID:003326## mcset $l "Hibernate running program - MCU 8051 IDE" \ "Hibernate running program - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:003327## mcset $l "Resume hibernated program - MCU 8051 IDE" \ "Resume hibernated program - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:003328## mcset $l "Hibernation failed" \ "休眠失败" ##ID:003329## mcset $l "Unable to write to file:\n%s\nCheck your permissions." \ "Unable to write to file:\n%s\nCheck your permissions." ;# <-- NOT TRANSLATED YET ##ID:003330## mcset $l "Resumption failed" \ "恢复失败" ##ID:003331## mcset $l "Unable to read file:\n%s\nCheck your permissions." \ "Unable to read file:\n%s\nCheck your permissions." ;# <-- NOT TRANSLATED YET ##ID:003332## mcset $l "This hibernation is corrupted or it is not MCU 8051 IDE M5IHIB file." \ "This hibernation is corrupted or it is not MCU 8051 IDE M5IHIB file." ;# <-- NOT TRANSLATED YET ##ID:003333## mcset $l "Unable to change directory to '%s'." \ "无法更改目录 '%s'." ##ID:003334## mcset $l "\nUnable to change directory to '%s'\n" \ "\n无法更改目录 '%s'\n" ##ID:003335## mcset $l "Unable to find Doxygen" \ "无法找到 Doxygen" ##ID:003336## mcset $l "Unable to find Doxygen. Please install doxygen and restart MCU 8051 IDE." \ "Unable to find Doxygen. Please install doxygen and restart MCU 8051 IDE." ;# <-- NOT TRANSLATED YET ##ID:003337## mcset $l "Unable to find doxywizard" \ "无法找到 doxywizard" ##ID:003338## mcset $l "Unable to find doxywizard. Please install doxygen and restart MCU 8051 IDE." \ "Unable to find doxywizard. Please install doxygen and restart MCU 8051 IDE." ;# <-- NOT TRANSLATED YET ##ID:003339## mcset $l "\nError: Unable to change directory to '%s'\n" \ "\n错误: 无法更改目录 '%s'\n" ##ID:003340## mcset $l "Unable to gain file statistics while external editor is used" \ "Unable to gain file statistics while external editor is used" ;# <-- NOT TRANSLATED YET ##ID:003341## mcset $l "Characters" \ "字符" ##ID:003342## mcset $l "Words and numbers:" \ "文字和数字:" ##ID:003343## mcset $l "Alphanumeric characters and connector punctuation characters" \ "Alphanumeric characters and connector punctuation characters" ;# <-- NOT TRANSLATED YET ##ID:003344## mcset $l "Comments:" \ "Comments:" ;# <-- NOT TRANSLATED YET ##ID:003345## mcset $l "Characters highlighted as comments" \ "Characters highlighted as comments" ;# <-- NOT TRANSLATED YET ##ID:003346## mcset $l "Other characters:" \ "Other characters:" ;# <-- NOT TRANSLATED YET ##ID:003347## mcset $l "All other characters without EOLs (e.g. spaces and brackets)" \ "All other characters without EOLs (e.g. spaces and brackets)" ;# <-- NOT TRANSLATED YET ##ID:003348## mcset $l "Total characters:" \ "Total characters:" ;# <-- NOT TRANSLATED YET ##ID:003349## mcset $l "All characters in the text without EOLs" \ "All characters in the text without EOLs" ;# <-- NOT TRANSLATED YET ##ID:003350## mcset $l "Strings" \ "Strings" ;# <-- NOT TRANSLATED YET ##ID:003351## mcset $l "Words:" \ "Words:" ;# <-- NOT TRANSLATED YET ##ID:003352## mcset $l "Just normal words (not keywords and not comments)" \ "Just normal words (not keywords and not comments)" ;# <-- NOT TRANSLATED YET ##ID:003353## mcset $l "Keywords:" \ "Keywords:" ;# <-- NOT TRANSLATED YET ##ID:003354## mcset $l "Instructions, Assembler directives, C directives, C keywords" \ "Instructions, Assembler directives, C directives, C keywords" ;# <-- NOT TRANSLATED YET ##ID:003355## mcset $l "Words in comments" \ "Words in comments" ;# <-- NOT TRANSLATED YET ##ID:003356## mcset $l "Total strings:" \ "Total strings:" ;# <-- NOT TRANSLATED YET ##ID:003357## mcset $l "Total number of words in the text" \ "Total number of words in the text" ;# <-- NOT TRANSLATED YET ##ID:003358## mcset $l "Lines" \ "Lines" ;# <-- NOT TRANSLATED YET ##ID:003359## mcset $l "Empty lines:" \ "Empty lines:" ;# <-- NOT TRANSLATED YET ##ID:003360## mcset $l "Totally empty lines (without even spaces)" \ "Totally empty lines (without even spaces)" ;# <-- NOT TRANSLATED YET ##ID:003361## mcset $l "Commented lines:" \ "Commented lines:" ;# <-- NOT TRANSLATED YET ##ID:003362## mcset $l "Lines which are all commented" \ "Lines which are all commented" ;# <-- NOT TRANSLATED YET ##ID:003363## mcset $l "Normal lines:" \ "Normal lines:" ;# <-- NOT TRANSLATED YET ##ID:003364## mcset $l "Just normal code lines" \ "Just normal code lines" ;# <-- NOT TRANSLATED YET ##ID:003365## mcset $l "Total lines:" \ "Total lines:" ;# <-- NOT TRANSLATED YET ##ID:003366## mcset $l "Total number of lines in the text" \ "文本总行数" ##ID:003367## mcset $l "Copy" \ "复制" ##ID:003368## mcset $l "File statistics - MCU 8051 IDE" \ "文件统计 - MCU 8051 IDE" ##ID:003369## mcset $l "Statistics for: %s\n\n" \ "统计: %s\n\n" ##ID:003370## mcset $l "Characters:\n" \ "字符:\n" ##ID:003371## mcset $l " Words and numbers:\t\t%s\n" \ "文字和数字:\t\t%s\n" ##ID:003372## mcset $l " Comments:\t\t\t%s\n" \ "注释:\t\t\t%s\n" ##ID:003373## mcset $l " Other characters:\t\t%s\n" \ " 其他字符:\t\t%s\n" ##ID:003374## mcset $l " ------\n" \ " ------\n" ;# <-- NOT TRANSLATED YET ##ID:003375## mcset $l " Total characters:\t\t%s\n\n" \ " 总字符:\t\t%s\n\n" ##ID:003376## mcset $l "Strings:\n" \ "Strings:\n" ;# <-- NOT TRANSLATED YET ##ID:003377## mcset $l " Words:\t\t\t%s\n" \ " Words:\t\t\t%s\n" ;# <-- NOT TRANSLATED YET ##ID:003378## mcset $l " Keywords:\t\t\t%s\n" \ " Keywords:\t\t\t%s\n" ;# <-- NOT TRANSLATED YET ##ID:003379## mcset $l " Total strings:\t\t%s\n" \ " Total strings:\t\t%s\n" ;# <-- NOT TRANSLATED YET ##ID:003380## mcset $l "Lines:\n" \ "Lines:\n" ;# <-- NOT TRANSLATED YET ##ID:003381## mcset $l " Empty lines:\t\t\t%s\n" \ " Empty lines:\t\t\t%s\n" ;# <-- NOT TRANSLATED YET ##ID:003382## mcset $l " Commented lines:\t\t%s\n" \ " Commented lines:\t\t%s\n" ;# <-- NOT TRANSLATED YET ##ID:003383## mcset $l " Normal lines:\t\t\t%s\n" \ " Normal lines:\t\t\t%s\n" ;# <-- NOT TRANSLATED YET ##ID:003384## mcset $l " Total lines:\t\t\t%s\n" \ " Total lines:\t\t\t%s\n" ;# <-- NOT TRANSLATED YET ##ID:003385## mcset $l "Unable to read file:\n\"%s\"" \ "无法读取文件:\n\"%s\"" ##ID:003386## mcset $l "File modified" \ "文件修改" ##ID:003387## mcset $l "The current VHW connections have been modified,\ndo you want to save them before closing ?" \ "目前VHW连接已被修改,\n您要关闭之前保存它们?" ##ID:003388## mcset $l "Open file - Virtual HW - MCU 8051 IDE" \ "打开文件 - Virtual HW - MCU 8051 IDE" ##ID:003389## mcset $l "Virtual HW" \ "虚拟硬件" ##ID:003390## mcset $l "VH component" \ "VH component" ;# <-- NOT TRANSLATED YET ##ID:004525## mcset $l "All relevant" \ "All relevant" ;# <-- NOT TRANSLATED YET ##ID:003391## mcset $l "Load file - Virtual HW - MCU 8051 IDE" \ "加载 - 虚拟硬件 - MCU 8051 IDE" ##ID:003392## mcset $l "Unable to save Virtual HW connections" \ "无法保存虚拟硬件连接" ##ID:003393## mcset $l "Save file - Virtual HW - MCU 8051 IDE" \ "保存文件 - 虚拟硬件 - MCU 8051 IDE" ##ID:003394## mcset $l "A file name '%s' already exists. Do you want to overwrite it ?" \ "文件名 '%s' 已经存在,您想覆盖它吗?" ##ID:003395## mcset $l "Unable to save file:\n\"%s\"" \ "无法保存文件:\n\"%s\"" ##ID:003396## mcset $l "Do you really want to remove all virtual hardware from the current simulation scenario ?" \ "您真的想删除目前所有虚拟硬件的模拟场景?" ##ID:003397## mcset $l "Set display size" \ "Set display size" ;# <-- NOT TRANSLATED YET } # simulator_gui.tcl # ============================================================================== namespace eval Simulator_GUI { set ::SFB_TRANSLATIONS { ##ID:003398## mcset $l "Bit address: 0xD7 -- Carry Flag" \ "Bit address: 0xD7 -- Carry Flag" ;# <-- NOT TRANSLATED YET ##ID:003399## mcset $l "Bit address: 0xD6 -- Auxiliary Carry Flag" \ "Bit address: 0xD6 -- Auxiliary Carry Flag" ;# <-- NOT TRANSLATED YET ##ID:003400## mcset $l "Bit address: 0xD5 -- Flag 0 available to the user for general purpose" \ "Bit address: 0xD5 -- Flag 0 available to the user for general purpose" ;# <-- NOT TRANSLATED YET ##ID:003401## mcset $l "Bit address: 0xD4 -- Register Bank selector bit 1" \ "Bit address: 0xD4 -- Register Bank selector bit 1" ;# <-- NOT TRANSLATED YET ##ID:003402## mcset $l "Bit address: 0xD3 -- Register Bank selector bit 0" \ "Bit address: 0xD3 -- Register Bank selector bit 0" ;# <-- NOT TRANSLATED YET ##ID:003403## mcset $l "Bit address: 0xD2 -- Overflow Flag" \ "Bit address: 0xD2 -- Overflow Flag" ;# <-- NOT TRANSLATED YET ##ID:003404## mcset $l "Bit address: 0xD1 -- Usable as a general purpose flag" \ "Bit address: 0xD1 -- Usable as a general purpose flag" ;# <-- NOT TRANSLATED YET ##ID:003405## mcset $l "Bit address: 0xD0 -- Parity flag" \ "Bit address: 0xD0 -- Parity flag" ;# <-- NOT TRANSLATED YET ##ID:003406## mcset $l "Bit address: 0x9F -- Framing Error bit" \ "Bit address: 0x9F -- Framing Error bit" ;# <-- NOT TRANSLATED YET ##ID:003407## mcset $l "Bit address: 0x8F -- Timer 1 overflow flag" \ "Bit address: 0x8F -- Timer 1 overflow flag" ;# <-- NOT TRANSLATED YET ##ID:003408## mcset $l "Bit address: 0x8E -- Timer 1 run control bit" \ "Bit address: 0x8E -- Timer 1 run control bit" ;# <-- NOT TRANSLATED YET ##ID:003409## mcset $l "Bit address: 0x8D -- Timer 0 overflow flag" \ "Bit address: 0x8D -- Timer 0 overflow flag" ;# <-- NOT TRANSLATED YET ##ID:003410## mcset $l "Bit address: 0x8C -- Timer 0 run control bit" \ "Bit address: 0x8C -- Timer 0 run control bit" ;# <-- NOT TRANSLATED YET ##ID:003411## mcset $l "Bit address: 0x8B -- External Interrupt 1 edge flag" \ "Bit address: 0x8B -- External Interrupt 1 edge flag" ;# <-- NOT TRANSLATED YET ##ID:003412## mcset $l "Bit address: 0x8A -- Interrupt 1 type control bit" \ "Bit address: 0x8A -- Interrupt 1 type control bit" ;# <-- NOT TRANSLATED YET ##ID:003413## mcset $l "Bit address: 0x89 -- External Interrupt 0 edge flag" \ "Bit address: 0x89 -- External Interrupt 0 edge flag" ;# <-- NOT TRANSLATED YET ##ID:003414## mcset $l "Bit address: 0x88 -- Interrupt 0 type control bit" \ "Bit address: 0x88 -- Interrupt 0 type control bit" ;# <-- NOT TRANSLATED YET ##ID:003415## mcset $l "Bit address: 0xA8 -- Enable or disable External Interrupt 0" \ "Bit address: 0xA8 -- Enable or disable External Interrupt 0" ;# <-- NOT TRANSLATED YET ##ID:003416## mcset $l "Bit address: 0xA9 -- Enable or disable the Timer 0 overflow interrupt" \ "Bit address: 0xA9 -- Enable or disable the Timer 0 overflow interrupt" ;# <-- NOT TRANSLATED YET ##ID:003417## mcset $l "Bit address: 0xAA -- Enable or disable External Interrupt 1" \ "Bit address: 0xAA -- Enable or disable External Interrupt 1" ;# <-- NOT TRANSLATED YET ##ID:003418## mcset $l "Bit address: 0xAB -- Enable or disable the Timer 1 overflow interrupt" \ "Bit address: 0xAB -- Enable or disable the Timer 1 overflow interrupt" ;# <-- NOT TRANSLATED YET ##ID:003419## mcset $l "Bit address: 0xAC -- Enable or disable the serial port interrupt" \ "Bit address: 0xAC -- Enable or disable the serial port interrupt" ;# <-- NOT TRANSLATED YET ##ID:003420## mcset $l "Bit address: 0xAD -- Enable or disable the Timer 2 overflow interrupt" \ "Bit address: 0xAD -- Enable or disable the Timer 2 overflow interrupt" ;# <-- NOT TRANSLATED YET ##ID:003421## mcset $l "Bit address: 0xAE -- Enable or disable the comparator interrupt" \ "Bit address: 0xAE -- Enable or disable the comparator interrupt" ;# <-- NOT TRANSLATED YET ##ID:003422## mcset $l "Bit address: 0xB8 -- Defines the External Interrupt 0 priority level" \ "Bit address: 0xB8 -- Defines the External Interrupt 0 priority level" ;# <-- NOT TRANSLATED YET ##ID:003423## mcset $l "Bit address: 0xB9 -- Defines the Timer 0 interrupt priority level" \ "Bit address: 0xB9 -- Defines the Timer 0 interrupt priority level" ;# <-- NOT TRANSLATED YET ##ID:003424## mcset $l "Bit address: 0xBA -- Defines External Interrupt 1 priority level" \ "Bit address: 0xBA -- Defines External Interrupt 1 priority level" ;# <-- NOT TRANSLATED YET ##ID:003425## mcset $l "Bit address: 0xBB -- Defines the Timer 1 interrupt priority level" \ "Bit address: 0xBB -- Defines the Timer 1 interrupt priority level" ;# <-- NOT TRANSLATED YET ##ID:003426## mcset $l "Bit address: 0xBC -- Defines the Serial Port interrupt priority level" \ "Bit address: 0xBC -- Defines the Serial Port interrupt priority level" ;# <-- NOT TRANSLATED YET ##ID:003427## mcset $l "Bit address: 0xBD -- Defines the Timer 2 interrupt priority level" \ "Bit address: 0xBD -- Defines the Timer 2 interrupt priority level" ;# <-- NOT TRANSLATED YET ##ID:003428## mcset $l "Bit address: 0xBE -- Defines the comparator interrupt priority level" \ "Bit address: 0xBE -- Defines the comparator interrupt priority level" ;# <-- NOT TRANSLATED YET ##ID:003429## mcset $l "Bit address: 0x98 -- Receive interrupt flag" \ "Bit address: 0x98 -- Receive interrupt flag" ;# <-- NOT TRANSLATED YET ##ID:003430## mcset $l "Bit address: 0x99 -- Transmit interrupt flag" \ "Bit address: 0x99 -- Transmit interrupt flag" ;# <-- NOT TRANSLATED YET ##ID:003431## mcset $l "Bit address: 0xCF -- Timer 2 overflow flag" \ "Bit address: 0xCF -- Timer 2 overflow flag" ;# <-- NOT TRANSLATED YET ##ID:003432## mcset $l "Bit address: 0xCE -- Timer 2 external flag" \ "Bit address: 0xCE -- Timer 2 external flag" ;# <-- NOT TRANSLATED YET ##ID:003433## mcset $l "Bit address: 0xBF -- Not implemented" \ "Bit address: 0xBF -- Not implemented" ;# <-- NOT TRANSLATED YET ##ID:003434## mcset $l "Bit address: 0xAF -- Disables all interrupts" \ "Bit address: 0xAF -- Disables all interrupts" ;# <-- NOT TRANSLATED YET ##ID:003435## mcset $l "Bit address: 0x9F -- Serial Port mode specifier" \ "Bit address: 0x9F -- Serial Port mode specifier" ;# <-- NOT TRANSLATED YET ##ID:003436## mcset $l "Bit address: 0x9E -- Serial Port mode specifier" \ "Bit address: 0x9E -- Serial Port mode specifier" ;# <-- NOT TRANSLATED YET ##ID:003437## mcset $l "Bit address: 0x9D -- Enables the multiprocessor communication feature" \ "Bit address: 0x9D -- Enables the multiprocessor communication feature" ;# <-- NOT TRANSLATED YET ##ID:003438## mcset $l "Bit address: 0x9C -- Enable/Disable reception" \ "Bit address: 0x9C -- Enable/Disable reception" ;# <-- NOT TRANSLATED YET ##ID:003439## mcset $l "Bit address: 0x9B -- The 9th bit that will be transmitted in modes 2 and 3" \ "Bit address: 0x9B -- The 9th bit that will be transmitted in modes 2 and 3" ;# <-- NOT TRANSLATED YET ##ID:003440## mcset $l "Bit address: 0x9A -- Receiver Bit 8" \ "Bit address: 0x9A -- Receiver Bit 8" ;# <-- NOT TRANSLATED YET ##ID:003441## mcset $l "Bit address: 0xCD -- Receive clock enable" \ "Bit address: 0xCD -- Receive clock enable" ;# <-- NOT TRANSLATED YET ##ID:003442## mcset $l "Bit address: 0xCC -- Transmit clock enable" \ "Bit address: 0xCC -- Transmit clock enable" ;# <-- NOT TRANSLATED YET ##ID:003443## mcset $l "Bit address: 0xCB -- Timer 2 external enable" \ "Bit address: 0xCB -- Timer 2 external enable" ;# <-- NOT TRANSLATED YET ##ID:003444## mcset $l "Bit address: 0xCA -- Start/Stop control for Timer 2" \ "Bit address: 0xCA -- Start/Stop control for Timer 2" ;# <-- NOT TRANSLATED YET ##ID:003445## mcset $l "Bit address: 0xC9 -- Timer or counter select for Timer 2" \ "Bit address: 0xC9 -- Timer or counter select for Timer 2" ;# <-- NOT TRANSLATED YET ##ID:003446## mcset $l "Bit address: 0xC8 -- Capture/Reload select" \ "Bit address: 0xC8 -- Capture/Reload select" ;# <-- NOT TRANSLATED YET } eval ${SFB_TRANSLATIONS} ##ID:003447## mcset $l "Set to 1" \ "Set to 1" ;# <-- NOT TRANSLATED YET ##ID:003448## mcset $l "Set this bit to 1" \ "Set this bit to 1" ;# <-- NOT TRANSLATED YET ##ID:003449## mcset $l "Set to 0" \ "Set to 0" ;# <-- NOT TRANSLATED YET ##ID:003450## mcset $l "Set this bit to 0" \ "Set this bit to 0" ;# <-- NOT TRANSLATED YET ##ID:003451## mcset $l "Start/Stop simulator" \ "启动/停止 模拟器" ; ##ID:003452## mcset $l "Load program into the simulator engine, or shutdown the MCU simulator." \ "加载SIM文件到模拟器" ; ##ID:003453## mcset $l "Reset" \ "复位" ##ID:003454## mcset $l "Perform HW reset" \ "执行硬件复位" ##ID:003455## mcset $l "Step back" \ "Step back" ;# <-- NOT TRANSLATED YET ##ID:003456## mcset $l "Take MCU back to state before the last instruction" \ "Take MCU back to state before the last instruction" ;# <-- NOT TRANSLATED YET ##ID:003457## mcset $l "Step program" \ "Step program" ;# <-- NOT TRANSLATED YET ##ID:003458## mcset $l "Step by 1 instruction" \ "Step by 1 instruction" ;# <-- NOT TRANSLATED YET ##ID:003459## mcset $l "Step over" \ "Step over" ;# <-- NOT TRANSLATED YET ##ID:003460## mcset $l "Step by 1 line of code" \ "Step by 1 line of code" ;# <-- NOT TRANSLATED YET ##ID:003461## mcset $l "Animate program" \ "Animate program" ;# <-- NOT TRANSLATED YET ##ID:003462## mcset $l "Run program and show results after each instruction" \ "Run program and show results after each instruction" ;# <-- NOT TRANSLATED YET ##ID:003463## mcset $l "Run program" \ "运行程序" ##ID:003464## mcset $l "Run program and show results after some time" \ "Run program and show results after some time" ;# <-- NOT TRANSLATED YET ##ID:003465## mcset $l "TIMERS 0 & 1" \ "TIMERS 0 & 1" ;# <-- NOT TRANSLATED YET ##ID:003466## mcset $l "INTERRUPTS" \ "INTERRUPTS" ;# <-- NOT TRANSLATED YET ##ID:003467## mcset $l "HEX DEC BIN OCT CHAR" \ "HEX DEC BIN OCT CHAR" ;# <-- NOT TRANSLATED YET ##ID:003468## mcset $l "SFR 0xE0: Primary Accumulator" \ "SFR 0xE0: Primary Accumulator" ;# <-- NOT TRANSLATED YET ##ID:003469## mcset $l "SFR 0xF0: Secondary Accumulator" \ "SFR 0xF0: Secondary Accumulator" ;# <-- NOT TRANSLATED YET ##ID:003470## mcset $l "Address: %s" \ "Address: %s" ;# <-- NOT TRANSLATED YET ##ID:003471## mcset $l "SFR 0xD0: Program Status Word" \ "SFR 0xD0: Program Status Word" ;# <-- NOT TRANSLATED YET ##ID:003472## mcset $l "SFR 0x81: Stack pointer" \ "SFR 0x81: Stack pointer" ;# <-- NOT TRANSLATED YET ##ID:003473## mcset $l "Carry Flag" \ "Carry Flag" ;# <-- NOT TRANSLATED YET ##ID:003474## mcset $l "Auxiliary Carry flag.\n(For BCD operations.)" \ "Auxiliary Carry flag.\n(For BCD operations.)" ;# <-- NOT TRANSLATED YET ##ID:003475## mcset $l "Flag 0\n(Available to the user for general purposes.)" \ "Flag 0\n(Available to the user for general purposes.)" ;# <-- NOT TRANSLATED YET ##ID:003476## mcset $l "Register bank Select control bit 1. Set/cleared\nby software to determine working register bank." \ "Register bank Select control bit 1. Set/cleared\nby software to determine working register bank." ;# <-- NOT TRANSLATED YET ##ID:003477## mcset $l "Register bank Select control bit 0. Set/cleared\nby software to determine working register bank." \ "Register bank Select control bit 0. Set/cleared\nby software to determine working register bank." ;# <-- NOT TRANSLATED YET ##ID:003478## mcset $l "Overflow flag" \ "Overflow flag" ;# <-- NOT TRANSLATED YET ##ID:003479## mcset $l "(reserved)" \ "(reserved)" ;# <-- NOT TRANSLATED YET ##ID:003480## mcset $l "Parity flag.\nSet/cleared by hardware each instruction cycle to\nindicate and odd/even number of “one” bits in the\naccumulator, i.e., even parity." \ "Parity flag.\nSet/cleared by hardware each instruction cycle to\nindicate and odd/even number of “one” bits in the\naccumulator, i.e., even parity." ;# <-- NOT TRANSLATED YET ##ID:003481## mcset $l "SFR 0x88: Timer/Counter control register" \ "SFR 0x88: Timer/Counter control register" ;# <-- NOT TRANSLATED YET ##ID:003482## mcset $l "Timer 1 Overflow Flag\nCleared by hardware when processor vectors to interrupt routine.\nSet by hardware on timer/counter overflow, when the timer 1 register overflows." \ "Timer 1 Overflow Flag\nCleared by hardware when processor vectors to interrupt routine.\nSet by hardware on timer/counter overflow, when the timer 1 register overflows." ;# <-- NOT TRANSLATED YET ##ID:003483## mcset $l "Timer 1 Run Control Bit\nClear to turn off timer/counter 1.\nSet to turn on timer/counter 1." \ "Timer 1 Run Control Bit\nClear to turn off timer/counter 1.\nSet to turn on timer/counter 1." ;# <-- NOT TRANSLATED YET ##ID:003484## mcset $l "Timer 0 Overflow Flag\nCleared by hardware when processor vectors to interrupt routine.\nSet by hardware on timer/counter overflow, when the timer 0 register overflows." \ "Timer 0 Overflow Flag\nCleared by hardware when processor vectors to interrupt routine.\nSet by hardware on timer/counter overflow, when the timer 0 register overflows." ;# <-- NOT TRANSLATED YET ##ID:003485## mcset $l "Timer 0 Run Control Bit\nClear to turn off timer/counter 0.\nSet to turn on timer/counter 0." \ "Timer 0 Run Control Bit\nClear to turn off timer/counter 0.\nSet to turn on timer/counter 0." ;# <-- NOT TRANSLATED YET ##ID:003486## mcset $l "Interrupt 1 Edge Flag\nCleared by hardware when interrupt is processed if edge-triggered (see IT1).\nSet by hardware when external interrupt is detected on INT1# pin." \ "Interrupt 1 Edge Flag\nCleared by hardware when interrupt is processed if edge-triggered (see IT1).\nSet by hardware when external interrupt is detected on INT1# pin." ;# <-- NOT TRANSLATED YET ##ID:003487## mcset $l "Interrupt 1 Type Control Bit\nClear to select low level active (level triggered) for external interrupt 1 (INT1#).\nSet to select falling edge active (edge triggered) for external interrupt 1." \ "Interrupt 1 Type Control Bit\nClear to select low level active (level triggered) for external interrupt 1 (INT1#).\nSet to select falling edge active (edge triggered) for external interrupt 1." ;# <-- NOT TRANSLATED YET ##ID:003488## mcset $l "Interrupt 0 Edge Flag\nCleared by hardware when interrupt is processed if edge-triggered (see IT0).\nSet by hardware when external interrupt is detected on INT0# pin." \ "Interrupt 0 Edge Flag\nCleared by hardware when interrupt is processed if edge-triggered (see IT0).\nSet by hardware when external interrupt is detected on INT0# pin." ;# <-- NOT TRANSLATED YET ##ID:003489## mcset $l "Interrupt 0 Type Control Bit\nClear to select low level active (level triggered) for external interrupt 0 (INT0#).\nSet to select falling edge active (edge triggered) for external interrupt 0." \ "Interrupt 0 Type Control Bit\nClear to select low level active (level triggered) for external interrupt 0 (INT0#).\nSet to select falling edge active (edge triggered) for external interrupt 0." ;# <-- NOT TRANSLATED YET ##ID:003490## mcset $l "Timer 1 Gating Control Bit" \ "Timer 1 Gating Control Bit" ;# <-- NOT TRANSLATED YET ##ID:003491## mcset $l "Timer 1 Counter/Timer Select Bit" \ "Timer 1 Counter/Timer Select Bit" ;# <-- NOT TRANSLATED YET ##ID:003492## mcset $l "Timer 1 Mode Select Bit" \ "Timer 1 Mode Select Bit" ;# <-- NOT TRANSLATED YET ##ID:003493## mcset $l "Timer 0 Gating Control Bit" \ "Timer 0 Gating Control Bit" ;# <-- NOT TRANSLATED YET ##ID:003494## mcset $l "Timer 0 Counter/Timer Select Bit" \ "Timer 0 Counter/Timer Select Bit" ;# <-- NOT TRANSLATED YET ##ID:003495## mcset $l "Timer 0 Mode Select Bit" \ "Timer 0 Mode Select Bit" ;# <-- NOT TRANSLATED YET ##ID:003496## mcset $l "SFR 0x89: Timer/Counter mode control register" \ "SFR 0x89: Timer/Counter mode control register" ;# <-- NOT TRANSLATED YET ##ID:003497## mcset $l "Timer 1 Gating Control Bit\nClear to enable timer 1 whenever the TR1 bit is set.\nSet to enable timer 1 only while the INT1# pin is high and TR1 bit is set." \ "Timer 1 Gating Control Bit\nClear to enable timer 1 whenever the TR1 bit is set.\nSet to enable timer 1 only while the INT1# pin is high and TR1 bit is set." ;# <-- NOT TRANSLATED YET ##ID:003498## mcset $l "Timer 1 Counter/Timer Select Bit\nClear for timer operation: timer 1 counts the divided-down system clock.\nSet for Counter operation: timer 1 counts negative transitions on external pin T1." \ "Timer 1 Counter/Timer Select Bit\nClear for timer operation: timer 1 counts the divided-down system clock.\nSet for Counter operation: timer 1 counts negative transitions on external pin T1." ;# <-- NOT TRANSLATED YET ##ID:003499## mcset $l "Timer 1 Mode Select Bits\nM11\tM01\tOperating mode\n 0\t 0\tMode 0: 8-bit timer/counter (TH1) with 5-bit prescaler (TL1).\n 0\t 1\tMode 1: 16-bit timer/counter.\n 1\t 0\tMode 2: 8-bit auto-reload timer/counter (TL1). Reloaded from TH1 at overflow.\n 1\t 1\tMode 3: timer 1 halted. Retains count." \ "Timer 1 Mode Select Bits\nM11\tM01\tOperating mode\n 0\t 0\tMode 0: 8-bit timer/counter (TH1) with 5-bit prescaler (TL1).\n 0\t 1\tMode 1: 16-bit timer/counter.\n 1\t 0\tMode 2: 8-bit auto-reload timer/counter (TL1). Reloaded from TH1 at overflow.\n 1\t 1\tMode 3: timer 1 halted. Retains count." ;# <-- NOT TRANSLATED YET ##ID:003500## mcset $l "Timer 0 Gating Control Bit\nClear to enable timer 0 whenever the TR0 bit is set.\nSet to enable timer/counter 0 only while the INT0# pin is high and the TR0 bit is set." \ "Timer 0 Gating Control Bit\nClear to enable timer 0 whenever the TR0 bit is set.\nSet to enable timer/counter 0 only while the INT0# pin is high and the TR0 bit is set." ;# <-- NOT TRANSLATED YET ##ID:003501## mcset $l "Timer 0 Counter/Timer Select Bit\nClear for timer operation: timer 0 counts the divided-down system clock.\nSet for counter operation: timer 0 counts negative transitions on external pin T0." \ "Timer 0 Counter/Timer Select Bit\nClear for timer operation: timer 0 counts the divided-down system clock.\nSet for counter operation: timer 0 counts negative transitions on external pin T0." ;# <-- NOT TRANSLATED YET ##ID:003502## mcset $l "Timer 0 Mode Select Bit\nM1\tM0\tOperating mode\n 0\t 0\tMode 0: 8-bit timer/counter (TH0) with 5-bit prescaler (TL0).\n 0\t 1\tMode 1: 16-bit timer/counter.\n 1\t 0\tMode 2: 8-bit auto-reload timer/counter (TL0). Reloaded from TH0 at overflow.\n 1\t 1\tMode 3: TL0 is an 8-bit timer/counter.\nTH0 is an 8-bit timer using timer 1’s TR0 and TF0 bits." \ "Timer 0 Mode Select Bit\nM1\tM0\tOperating mode\n 0\t 0\tMode 0: 8-bit timer/counter (TH0) with 5-bit prescaler (TL0).\n 0\t 1\tMode 1: 16-bit timer/counter.\n 1\t 0\tMode 2: 8-bit auto-reload timer/counter (TL0). Reloaded from TH0 at overflow.\n 1\t 1\tMode 3: TL0 is an 8-bit timer/counter.\nTH0 is an 8-bit timer using timer 1’s TR0 and TF0 bits." ;# <-- NOT TRANSLATED YET ##ID:003503## mcset $l "Timer 0 Mode Select Bit\nM10\tM00\tOperating mode\n 0\t 0\tMode 0: 8-bit timer/counter (TH0) with 5-bit prescaler (TL0).\n 0\t 1\tMode 1: 16-bit timer/counter.\n 1\t 0\tMode 2: 8-bit auto-reload timer/counter (TL0). Reloaded from TH0 at overflow.\n 1\t 1\tMode 3: TL0 is an 8-bit timer/counter.\nTH0 is an 8-bit timer using timer 1’s TR0 and TF0 bits." \ "Timer 0 Mode Select Bit\nM10\tM00\tOperating mode\n 0\t 0\tMode 0: 8-bit timer/counter (TH0) with 5-bit prescaler (TL0).\n 0\t 1\tMode 1: 16-bit timer/counter.\n 1\t 0\tMode 2: 8-bit auto-reload timer/counter (TL0). Reloaded from TH0 at overflow.\n 1\t 1\tMode 3: TL0 is an 8-bit timer/counter.\nTH0 is an 8-bit timer using timer 1’s TR0 and TF0 bits." ;# <-- NOT TRANSLATED YET ##ID:003504## mcset $l "SFR 0xA8: Interrupt enable register" \ "SFR 0xA8: Interrupt enable register" ;# <-- NOT TRANSLATED YET ##ID:003505## mcset $l "Global disable bit. If EA = O, all Interrupts are disabled. If EA = 1, each interrupt can be\nindividually enabled or disabled by setting or clearing its enable bit." \ "Global disable bit. If EA = O, all Interrupts are disabled. If EA = 1, each interrupt can be\nindividually enabled or disabled by setting or clearing its enable bit." ;# <-- NOT TRANSLATED YET ##ID:003506## mcset $l "Timer 0 interrupt enable bit." \ "Timer 0 interrupt enable bit." ;# <-- NOT TRANSLATED YET ##ID:003507## mcset $l "Timer 1 interrupt enable bit." \ "Timer 1 interrupt enable bit." ;# <-- NOT TRANSLATED YET ##ID:003508## mcset $l "Timer 2 interrupt enable bit." \ "Timer 2 interrupt enable bit." ;# <-- NOT TRANSLATED YET ##ID:003509## mcset $l "External interrupt 1 enable bit." \ "External interrupt 1 enable bit." ;# <-- NOT TRANSLATED YET ##ID:003510## mcset $l "External interrupt O enable bit." \ "External interrupt O enable bit." ;# <-- NOT TRANSLATED YET ##ID:003511## mcset $l "SFR 0xB8: Interrupt priority register" \ "SFR 0xB8: Interrupt priority register" ;# <-- NOT TRANSLATED YET ##ID:003512## mcset $l "Not implemented" \ "Not implemented" ;# <-- NOT TRANSLATED YET ##ID:003513## mcset $l "Timer 1 interrupt priority bit" \ "Timer 1 interrupt priority bit" ;# <-- NOT TRANSLATED YET ##ID:003514## mcset $l "External interrupt 1 priority bit" \ "External interrupt 1 priority bit" ;# <-- NOT TRANSLATED YET ##ID:003515## mcset $l "Timer 0 interrupt priority bit" \ "Timer 0 interrupt priority bit" ;# <-- NOT TRANSLATED YET ##ID:003516## mcset $l "External interrupt 0 priority bit" \ "External interrupt 0 priority bit" ;# <-- NOT TRANSLATED YET ##ID:003517## mcset $l "SFR 0x98: Serial port control register" \ "SFR 0x98: Serial port control register" ;# <-- NOT TRANSLATED YET ##ID:003518## mcset $l "Serial port Mode bit 0\nRefer to SM1 for serial port mode selection.\nSMOD0 must be cleared to enable access to the SM0 bit" \ "Serial port Mode bit 0\nRefer to SM1 for serial port mode selection.\nSMOD0 must be cleared to enable access to the SM0 bit" ;# <-- NOT TRANSLATED YET ##ID:003519## mcset $l "Serial port Mode bit 1\nSM0\tSM1\tMode\tDescription\t\tBaud Rate\n0\t0\t0\tShift Register\tFCPU PERIPH/6\n0\t1\t1\t8-bit UART\tVariable\n1\t0\t2\t9-bit UART\tFCPU PERIPH /32 or /16\n1\t1\t3\t9-bit UART\tVariable" \ "Serial port Mode bit 1\nSM0\tSM1\tMode\tDescription\t\tBaud Rate\n0\t0\t0\tShift Register\tFCPU PERIPH/6\n0\t1\t1\t8-bit UART\tVariable\n1\t0\t2\t9-bit UART\tFCPU PERIPH /32 or /16\n1\t1\t3\t9-bit UART\tVariable" ;# <-- NOT TRANSLATED YET ##ID:003520## mcset $l "Serial port Mode 2 bit / Multiprocessor Communication Enable bit\nClear to disable multiprocessor communication feature.\nSet to enable multiprocessor communication feature in mode 2 and 3, and eventually mode 1. This bit should be\ncleared in mode 0" \ "Serial port Mode 2 bit / Multiprocessor Communication Enable bit\nClear to disable multiprocessor communication feature.\nSet to enable multiprocessor communication feature in mode 2 and 3, and eventually mode 1. This bit should be\ncleared in mode 0" ;# <-- NOT TRANSLATED YET ##ID:003521## mcset $l "Reception Enable bit\nClear to disable serial reception.\nSet to enable serial reception." \ "Reception Enable bit\nClear to disable serial reception.\nSet to enable serial reception." ;# <-- NOT TRANSLATED YET ##ID:003522## mcset $l "Transmitter Bit 8 / Ninth bit to transmit in modes 2 and 3.\no transmit a logic 0 in the 9th bit.\nSet to transmit a logic 1 in the 9th bit." \ "Transmitter Bit 8 / Ninth bit to transmit in modes 2 and 3.\no transmit a logic 0 in the 9th bit.\nSet to transmit a logic 1 in the 9th bit." ;# <-- NOT TRANSLATED YET ##ID:003523## mcset $l "Receiver Bit 8 / Ninth bit received in modes 2 and 3\nCleared by hardware if 9th bit received is a logic 0.\nSet by hardware if 9th bit received is a logic 1.\nIn mode 1, if SM2 = 0, RB8 is the received stop bit. In mode 0 RB8 is not used." \ "Receiver Bit 8 / Ninth bit received in modes 2 and 3\nCleared by hardware if 9th bit received is a logic 0.\nSet by hardware if 9th bit received is a logic 1.\nIn mode 1, if SM2 = 0, RB8 is the received stop bit. In mode 0 RB8 is not used." ;# <-- NOT TRANSLATED YET ##ID:003524## mcset $l "Transmit Interrupt flag\nClear to acknowledge interrupt.\nSet by hardware at the end of the 8th bit time in mode 0 or at the beginning of the stop bit in the other modes." \ "Transmit Interrupt flag\nClear to acknowledge interrupt.\nSet by hardware at the end of the 8th bit time in mode 0 or at the beginning of the stop bit in the other modes." ;# <-- NOT TRANSLATED YET ##ID:003525## mcset $l "Receive Interrupt flag\nClear to acknowledge interrupt.\nSet by hardware at the end of the 8th bit time in mode 0, see Figure 2-26. and Figure 2-27. in the other modes." \ "Receive Interrupt flag\nClear to acknowledge interrupt.\nSet by hardware at the end of the 8th bit time in mode 0, see Figure 2-26. and Figure 2-27. in the other modes." ;# <-- NOT TRANSLATED YET ##ID:003526## mcset $l "Power Off Flag" \ "Power Off Flag" ;# <-- NOT TRANSLATED YET ##ID:003527## mcset $l "Power-Off Flag\nCleared to recognize next reset type.\nSet by hardware when VCC rises from 0 to its nominal voltage. Can also be set by software." \ "Power-Off Flag\nCleared to recognize next reset type.\nSet by hardware when VCC rises from 0 to its nominal voltage. Can also be set by software." ;# <-- NOT TRANSLATED YET ##ID:003528## mcset $l "General purpose flag bit" \ "General purpose flag bit" ;# <-- NOT TRANSLATED YET ##ID:003529## mcset $l "General purpose Flag\nCleared by user for general purpose usage.\nSet by user for general purpose usage." \ "General purpose Flag\nCleared by user for general purpose usage.\nSet by user for general purpose usage." ;# <-- NOT TRANSLATED YET ##ID:003530## mcset $l "Power down bit" \ "Power down bit" ;# <-- NOT TRANSLATED YET ##ID:003531## mcset $l "Power-Down mode bit\nCleared by hardware when reset occurs.\nSet to enter power-down mode." \ "Power-Down mode bit\nCleared by hardware when reset occurs.\nSet to enter power-down mode." ;# <-- NOT TRANSLATED YET ##ID:003532## mcset $l "Idle mode bit" \ "Idle mode bit" ;# <-- NOT TRANSLATED YET ##ID:003533## mcset $l "Idle mode bit\nCleared by hardware when interrupt or reset occurs.\nSet to enter idle mode." \ "Idle mode bit\nCleared by hardware when interrupt or reset occurs.\nSet to enter idle mode." ;# <-- NOT TRANSLATED YET ##ID:003534## mcset $l "Double baud rate bit" \ "Double baud rate bit" ;# <-- NOT TRANSLATED YET ##ID:003535## mcset $l "Serial port Mode bit 1 for UART\nSet to select double baud rate in mode 1, 2 or 3." \ "Serial port Mode bit 1 for UART\nSet to select double baud rate in mode 1, 2 or 3." ;# <-- NOT TRANSLATED YET ##ID:003536## mcset $l "Frame Error Select" \ "Frame Error Select" ;# <-- NOT TRANSLATED YET ##ID:003537## mcset $l "Frame Error Select. When SMOD0 = 0, SCON.7 is SM0. When SMOD0 = 1, SCON.7 is FE.\nNote that FE will be set after a frame error\nregardless of the state of SMOD0." \ "Frame Error Select. When SMOD0 = 0, SCON.7 is SM0. When SMOD0 = 1, SCON.7 is FE.\nNote that FE will be set after a frame error\nregardless of the state of SMOD0." ;# <-- NOT TRANSLATED YET ##ID:003538## mcset $l "Pulse Width Modulation Enable" \ "Pulse Width Modulation Enable" ;# <-- NOT TRANSLATED YET ##ID:003539## mcset $l "Pulse Width Modulation Enable. When PWMEN = 1, Timer 0 and Timer 1 are\nconfigured as an 8-bit PWM counter with 8-bit auto-reload prescaler.\nThe PWM outputs on T1 (P3.5)." \ "Pulse Width Modulation Enable. When PWMEN = 1, Timer 0 and Timer 1 are\nconfigured as an 8-bit PWM counter with 8-bit auto-reload prescaler.\nThe PWM outputs on T1 (P3.5)." ;# <-- NOT TRANSLATED YET ##ID:003540## mcset $l "SFR 0xC8: Timer/Counter 2 control register" \ "SFR 0xC8: Timer/Counter 2 control register" ;# <-- NOT TRANSLATED YET ##ID:003541## mcset $l "Timer 2 overflow Flag\nTF2 is not set if RCLK=1 or TCLK = 1.\nMust be cleared by software.\nSet by hardware on timer 2 overflow." \ "Timer 2 overflow Flag\nTF2 is not set if RCLK=1 or TCLK = 1.\nMust be cleared by software.\nSet by hardware on timer 2 overflow." ;# <-- NOT TRANSLATED YET ##ID:003542## mcset $l "Timer 2 External Flag\nSet when a capture or a reload is caused by a negative transition on T2EX pin if EXEN2=1.\nSet to cause the CPU to vector to timer 2 interrupt routine when timer 2 interrupt is enabled.\nMust be cleared by software." \ "Timer 2 External Flag\nSet when a capture or a reload is caused by a negative transition on T2EX pin if EXEN2=1.\nSet to cause the CPU to vector to timer 2 interrupt routine when timer 2 interrupt is enabled.\nMust be cleared by software." ;# <-- NOT TRANSLATED YET ##ID:003543## mcset $l "Receive Clock bit\nClear to use timer 1 overflow as receive clock for serial port in mode 1 or 3.\nSet to use timer 2 overflow as receive clock for serial port in mode 1 or 3." \ "Receive Clock bit\nClear to use timer 1 overflow as receive clock for serial port in mode 1 or 3.\nSet to use timer 2 overflow as receive clock for serial port in mode 1 or 3." ;# <-- NOT TRANSLATED YET ##ID:003544## mcset $l "Transmit Clock bit\nClear to use timer 1 overflow as transmit clock for serial port in mode 1 or 3.\nSet to use timer 2 overflow as transmit clock for serial port in mode 1 or 3." \ "Transmit Clock bit\nClear to use timer 1 overflow as transmit clock for serial port in mode 1 or 3.\nSet to use timer 2 overflow as transmit clock for serial port in mode 1 or 3." ;# <-- NOT TRANSLATED YET ##ID:003545## mcset $l "Timer 2 External Enable bit\nClear to ignore events on T2EX pin for timer 2 operation.\nSet to cause a capture or reload when a negative transition on T2EX pin is\ndetected, if timer 2 is not used to clock the serial port." \ "Timer 2 External Enable bit\nClear to ignore events on T2EX pin for timer 2 operation.\nSet to cause a capture or reload when a negative transition on T2EX pin is\ndetected, if timer 2 is not used to clock the serial port." ;# <-- NOT TRANSLATED YET ##ID:003546## mcset $l "Timer 2 Run control bit\nClear to turn off timer 2.\nSet to turn on timer 2." \ "Timer 2 Run control bit\nClear to turn off timer 2.\nSet to turn on timer 2." ;# <-- NOT TRANSLATED YET ##ID:003547## mcset $l "Timer/Counter 2 select bit\nClear for timer operation (input from internal clock system: FOSC).\nSet for counter operation (input from T2 input pin)." \ "Timer/Counter 2 select bit\nClear for timer operation (input from internal clock system: FOSC).\nSet for counter operation (input from T2 input pin)." ;# <-- NOT TRANSLATED YET ##ID:003548## mcset $l "Timer 2 Capture/Reload bit\nIf RCLK=1 or TCLK=1, CP/RL2# is ignored and timer is forced to auto-reload on timer 2 overflow.\nClear to auto-reload on timer 2 overflows or negative transitions on T2EX pin if EXEN2=1.\nSet to capture on negative transitions on T2EX pin if EXEN2=1." \ "Timer 2 Capture/Reload bit\nIf RCLK=1 or TCLK=1, CP/RL2# is ignored and timer is forced to auto-reload on timer 2 overflow.\nClear to auto-reload on timer 2 overflows or negative transitions on T2EX pin if EXEN2=1.\nSet to capture on negative transitions on T2EX pin if EXEN2=1." ;# <-- NOT TRANSLATED YET ##ID:003549## mcset $l "Reserved" \ "保留" ##ID:003550## mcset $l "Timer 2 Output Enable bit" \ "Timer 2 Output Enable bit" ;# <-- NOT TRANSLATED YET ##ID:003551## mcset $l "Down Counter Enable bit" \ "Down Counter Enable bit" ;# <-- NOT TRANSLATED YET ##ID:003552## mcset $l "SFR 0xC9: Timer/Counter 2 mode control register" \ "SFR 0xC9: Timer/Counter 2 mode control register" ;# <-- NOT TRANSLATED YET ##ID:003553## mcset $l "Reserved\nThe value read from this bit is indeterminate. Do not set this bit." \ "Reserved\nThe value read from this bit is indeterminate. Do not set this bit." ;# <-- NOT TRANSLATED YET ##ID:003554## mcset $l "Timer 2 Output Enable bit\nClear to program P1.0/T2 as clock input or I/O port.\nSet to program P1.0/T2 as clock output." \ "Timer 2 Output Enable bit\nClear to program P1.0/T2 as clock input or I/O port.\nSet to program P1.0/T2 as clock output." ;# <-- NOT TRANSLATED YET ##ID:003555## mcset $l "Down Counter Enable bit\nClear to disable timer 2 as up/down counter.\nSet to enable timer 2 as up/down counter." \ "Down Counter Enable bit\nClear to disable timer 2 as up/down counter.\nSet to enable timer 2 as up/down counter." ;# <-- NOT TRANSLATED YET ##ID:003556## mcset $l "Defines the Timer 2 interrupt priority level" \ "Defines the Timer 2 interrupt priority level" ;# <-- NOT TRANSLATED YET ##ID:003557## mcset $l "Timer 2 interrupt priority bit" \ "Timer 2 interrupt priority bit" ;# <-- NOT TRANSLATED YET ##ID:003558## mcset $l "Defines the Serial Port interrupt priority level" \ "Defines the Serial Port interrupt priority level" ;# <-- NOT TRANSLATED YET ##ID:003559## mcset $l "Serial Port interrupt enable bit" \ "Serial Port interrupt enable bit" ;# <-- NOT TRANSLATED YET ##ID:003560## mcset $l "Serial Port interrupt priority bit" \ "Serial Port interrupt priority bit" ;# <-- NOT TRANSLATED YET ##ID:003561## mcset $l "Defines the comparator interrupt priority level" \ "Defines the comparator interrupt priority level" ;# <-- NOT TRANSLATED YET ##ID:003562## mcset $l "Comparator Interrupt Priority bit" \ "Comparator Interrupt Priority bit" ;# <-- NOT TRANSLATED YET ##ID:003563## mcset $l "Power-down Exit Mode" \ "Power-down Exit Mode" ;# <-- NOT TRANSLATED YET ##ID:003564## mcset $l "Power-down Exit Mode. When PWDEX = 1, wake up from Power-down is externally controlled.\nWhen PWDEX = 0, wake up from Power-down is internally timed." \ "Power-down Exit Mode. When PWDEX = 1, wake up from Power-down is externally controlled.\nWhen PWDEX = 0, wake up from Power-down is internally timed." ;# <-- NOT TRANSLATED YET ##ID:003565## mcset $l "Internal/External RAM access using MOVX" \ "Internal/External RAM access using MOVX" ;# <-- NOT TRANSLATED YET ##ID:003566## mcset $l "Internal/External RAM access using MOVX @ Ri/@DPTR\nEXTRAM\tOperating Mode\n0\tInternal ERAM (00H-FFH) access using MOVX @ Ri/@DPTR\n1\tExternal data memory access" \ "Internal/External RAM access using MOVX @ Ri/@DPTR\nEXTRAM\tOperating Mode\n0\tInternal ERAM (00H-FFH) access using MOVX @ Ri/@DPTR\n1\tExternal data memory access" ;# <-- NOT TRANSLATED YET ##ID:003567## mcset $l "When set, this bit configures the interrupt driven exit from power-down\nto resume execution on the rising edge of the interrupt signal. When\nthis bit is cleared, the execution resumes after a self-timed interval\n(nominal 2 ms) referenced from the falling edge of the interrupt signal." \ "When set, this bit configures the interrupt driven exit from power-down\nto resume execution on the rising edge of the interrupt signal. When\nthis bit is cleared, the execution resumes after a self-timed interval\n(nominal 2 ms) referenced from the falling edge of the interrupt signal." ;# <-- NOT TRANSLATED YET ##ID:003568## mcset $l "Reserved for future expansion" \ "Reserved for future expansion" ;# <-- NOT TRANSLATED YET ##ID:003569## mcset $l "Disable/Enable Reset out" \ "Disable/Enable Reset out" ;# <-- NOT TRANSLATED YET ##ID:003570## mcset $l "Disable/Enable Reset out\nDISRTO\tOperating Mode\n0\tReset pin is driven High after WDT times out\n1\tReset pin is input only" \ "Disable/Enable Reset out\nDISRTO\tOperating Mode\n0\tReset pin is driven High after WDT times out\n1\tReset pin is input only" ;# <-- NOT TRANSLATED YET ##ID:003571## mcset $l "Disable/Enable WDT in IDLE mode" \ "Disable/Enable WDT in IDLE mode" ;# <-- NOT TRANSLATED YET ##ID:003572## mcset $l "Disable/Enable WDT in IDLE mode\nWDIDLE\tOperating Mode\n0\tWDT continues to count in IDLE mode\n1\tWDT halts counting in IDLE mode" \ "Disable/Enable WDT in IDLE mode\nWDIDLE\tOperating Mode\n0\tWDT continues to count in IDLE mode\n1\tWDT halts counting in IDLE mode" ;# <-- NOT TRANSLATED YET ##ID:003573## mcset $l "General purpose user flag" \ "General purpose user flag" ;# <-- NOT TRANSLATED YET ##ID:003574## mcset $l "SFR 0x8E: Auxiliary Register" \ "SFR 0x8E: Auxiliary Register" ;# <-- NOT TRANSLATED YET ##ID:003575## mcset $l "SFR 0xA2: Auxiliary Register 1" \ "SFR 0xA2: Auxiliary Register 1" ;# <-- NOT TRANSLATED YET ##ID:003576## mcset $l "SFR 0x97: Analog Comparator Control and Status Register" \ "SFR 0x97: Analog Comparator Control and Status Register" ;# <-- NOT TRANSLATED YET ##ID:003577## mcset $l "SFR 0x96: Data EEPROM Control Register" \ "SFR 0x96: Data EEPROM Control Register" ;# <-- NOT TRANSLATED YET ##ID:003578## mcset $l "SFR 0xD5: SPI Control Register" \ "SFR 0xD5: SPI Control Register" ;# <-- NOT TRANSLATED YET ##ID:003579## mcset $l "SFR 0xAA: SPI Status Register" \ "SFR 0xAA: SPI Status Register" ;# <-- NOT TRANSLATED YET ##ID:003580## mcset $l "SFR 0xA7: Watchdog Control Register" \ "SFR 0xA7: Watchdog Control Register" ;# <-- NOT TRANSLATED YET ##ID:003581## mcset $l "SFR 0xA7: Watchdog Prescaler Control Register" \ "SFR 0xA7: Watchdog Prescaler Control Register" ;# <-- NOT TRANSLATED YET ##ID:003582## mcset $l "SFR 0xB7: Interrupt Priority High Register" \ "SFR 0xB7: Interrupt Priority High Register" ;# <-- NOT TRANSLATED YET ##ID:003583## mcset $l "SFR 0x8F: Clock Register" \ "SFR 0x8F: Clock Register" ;# <-- NOT TRANSLATED YET ##ID:003584## mcset $l "Defines the Timer 1 interrupt priority level" \ "Defines the Timer 1 interrupt priority level" ;# <-- NOT TRANSLATED YET ##ID:003585## mcset $l "Defines External Interrupt 1 priority level" \ "Defines External Interrupt 1 priority level" ;# <-- NOT TRANSLATED YET ##ID:003586## mcset $l "Defines the Timer 0 interrupt priority level" \ "Defines the Timer 0 interrupt priority level" ;# <-- NOT TRANSLATED YET ##ID:003587## mcset $l "Defines the External Interrupt 0 priority level" \ "Defines the External Interrupt 0 priority level" ;# <-- NOT TRANSLATED YET ##ID:003588## mcset $l "X2 mode flag" \ "X2 mode flag" ;# <-- NOT TRANSLATED YET ##ID:003589## mcset $l "When X2 = 0, the frequency (at XTAL1 pin) is internally divided by 2 before it is used as the device system frequency.\nWhen X2 = 1, the divide by 2 is no longer used and the XTAL1 frequency becomes the device system frequency. This\nenables the user to use a 6 MHz crystal instead of a 12 MHz crystal in order to reduce EMI." \ "When X2 = 0, the frequency (at XTAL1 pin) is internally divided by 2 before it is used as the device system frequency.\nWhen X2 = 1, the divide by 2 is no longer used and the XTAL1 frequency becomes the device system frequency. This\nenables the user to use a 6 MHz crystal instead of a 12 MHz crystal in order to reduce EMI." ;# <-- NOT TRANSLATED YET ##ID:003590## mcset $l "EEPROM data memory load enable bit" \ "EEPROM data memory load enable bit" ;# <-- NOT TRANSLATED YET ##ID:003591## mcset $l "EEPROM data memory write enable bit" \ "EEPROM data memory write enable bit" ;# <-- NOT TRANSLATED YET ##ID:003592## mcset $l "Internal EEPROM access enable" \ "Internal EEPROM access enable" ;# <-- NOT TRANSLATED YET ##ID:003593## mcset $l "Data pointer register select" \ "Data pointer register select" ;# <-- NOT TRANSLATED YET ##ID:003594## mcset $l "RDY/BSY (Ready/Busy) flag for the data EEPROM memory (read-only)" \ "RDY/BSY (Ready/Busy) flag for the data EEPROM memory (read-only)" ;# <-- NOT TRANSLATED YET ##ID:003595## mcset $l "Write Inhibit (read-only)" \ "Write Inhibit (read-only)" ;# <-- NOT TRANSLATED YET ##ID:003596## mcset $l "EEPROM data memory load enable bit. Used to implement Page Mode Write. A MOVX\ninstruction writing into the data EEPROM will not initiate the programming cycle\nif this bit is set, rather it will just load data into the volatile data buffer\nof the data EEPROM memory. Before the last MOVX, reset this bit and the data\nEEPROM will program all the bytes previously loaded on the same page of the\naddress given by the last MOVX instruction." \ "EEPROM data memory load enable bit. Used to implement Page Mode Write. A MOVX\ninstruction writing into the data EEPROM will not initiate the programming cycle\nif this bit is set, rather it will just load data into the volatile data buffer\nof the data EEPROM memory. Before the last MOVX, reset this bit and the data\nEEPROM will program all the bytes previously loaded on the same page of the\naddress given by the last MOVX instruction." ;# <-- NOT TRANSLATED YET ##ID:003597## mcset $l "EEPROM data memory write enable bit. Set this bit to 1 before initiating byte\nwrite to on-chip EEPROM with the MOVX instruction. User software should set\nthis bit to 0 after EEPROM write is completed." \ "EEPROM data memory write enable bit. Set this bit to 1 before initiating byte\nwrite to on-chip EEPROM with the MOVX instruction. User software should set\nthis bit to 0 after EEPROM write is completed." ;# <-- NOT TRANSLATED YET ##ID:003598## mcset $l "Internal EEPROM access enable. When EEMEN = 1, the MOVX instruction with DPTR\nwill access on-chip EEPROM instead of external data memory if the address used\nis less than 2K. When EEMEN = 0 or the address used is ≥ 2K," \ "Internal EEPROM access enable. When EEMEN = 1, the MOVX instruction with DPTR\nwill access on-chip EEPROM instead of external data memory if the address used\nis less than 2K. When EEMEN = 0 or the address used is ≥ 2K," ;# <-- NOT TRANSLATED YET ##ID:003599## mcset $l "MOVX with DPTR accesses external data memory.\nData pointer register select. DPS = 0 selects the first bank of data pointer\nregister, DP0, and DPS = 1 selects the second bank, DP1." \ "MOVX with DPTR accesses external data memory.\nData pointer register select. DPS = 0 selects the first bank of data pointer\nregister, DP0, and DPS = 1 selects the second bank, DP1." ;# <-- NOT TRANSLATED YET ##ID:003600## mcset $l "RDY/BSY (Ready/Busy) flag for the data EEPROM memory. This is a read-only bit\nwhich is cleared by hardware during the programming cycle of the on-chip EEPROM.\nIt is also set by hardware when the programming is completed. Note that RDY/BSY\nwill be cleared long after the completion of the MOVX instruction which has\ninitiated the programming cycle." \ "RDY/BSY (Ready/Busy) flag for the data EEPROM memory. This is a read-only bit\nwhich is cleared by hardware during the programming cycle of the on-chip EEPROM.\nIt is also set by hardware when the programming is completed. Note that RDY/BSY\nwill be cleared long after the completion of the MOVX instruction which has\ninitiated the programming cycle." ;# <-- NOT TRANSLATED YET ##ID:003601## mcset $l "WRTINH (Write Inhibit) is a READ-ONLY bit which is cleared by hardware when Vcc is\ntoo low for the programming cycle of the on-chip EEPROM to be executed. When this\nbit is cleared, an ongoing programming cycle will be aborted or a new programming\ncycle will not start." \ "WRTINH (Write Inhibit) is a READ-ONLY bit which is cleared by hardware when Vcc is\ntoo low for the programming cycle of the on-chip EEPROM to be executed. When this\nbit is cleared, an ongoing programming cycle will be aborted or a new programming\ncycle will not start." ;# <-- NOT TRANSLATED YET ##ID:003602## mcset $l "Prescaler bit for the watchdog timer" \ "Prescaler bit for the watchdog timer" ;# <-- NOT TRANSLATED YET ##ID:003603## mcset $l "Enable/disable the Watchdog Timer in IDLE mode" \ "Enable/disable the Watchdog Timer in IDLE mode" ;# <-- NOT TRANSLATED YET ##ID:003604## mcset $l "Enable/disable the WDT-driven Reset Out" \ "Enable/disable the WDT-driven Reset Out" ;# <-- NOT TRANSLATED YET ##ID:003605## mcset $l "Hardware mode select for the WDT" \ "Hardware mode select for the WDT" ;# <-- NOT TRANSLATED YET ##ID:003606## mcset $l "Watchdog software reset bit" \ "Watchdog software reset bit" ;# <-- NOT TRANSLATED YET ##ID:003607## mcset $l "Watchdog software enable bit" \ "Watchdog software enable bit" ;# <-- NOT TRANSLATED YET ##ID:003608## mcset $l "Enable/disable the Watchdog Timer in IDLE mode. When WDIDLE = 0, WDT\ncontinues to count in IDLE mode. When WDIDLE = 1, WDT freezes while\nthe device is in IDLE mode." \ "Enable/disable the Watchdog Timer in IDLE mode. When WDIDLE = 0, WDT\ncontinues to count in IDLE mode. When WDIDLE = 1, WDT freezes while\nthe device is in IDLE mode." ;# <-- NOT TRANSLATED YET ##ID:003609## mcset $l "Enable/disable the WDT-driven Reset Out (WDT drives the RST pin). When\nDISRTO = 0, the RST pin is driven high after WDT times out and the entire\nboard is reset. When DISRTO = 1, the RST pin remains only as an input and the\nWDT resets only the microcontroller internally after WDT times out." \ "Enable/disable the WDT-driven Reset Out (WDT drives the RST pin). When\nDISRTO = 0, the RST pin is driven high after WDT times out and the entire\nboard is reset. When DISRTO = 1, the RST pin remains only as an input and the\nWDT resets only the microcontroller internally after WDT times out." ;# <-- NOT TRANSLATED YET ##ID:003610## mcset $l "Hardware mode select for the WDT. When HWDT = 0, the WDT can be turned on/off\nby simply setting or clearing WDTEN in the same register (this is the software\nmode for WDT). When HWDT = 1, the WDT has to be set by writing the sequence\n1EH/E1H to the WDTRST register (with address 0A6H) and after being set in this\nway, WDT cannot be turned off except by reset, warm or cold (this is the hardware\nmode for WDT). To prevent the hardware WDT from resetting the entire device,\nthe same sequence 1EH/E1H must be written to the same WDTRST SFR before the\ntimeout interval." \ "Hardware mode select for the WDT. When HWDT = 0, the WDT can be turned on/off\nby simply setting or clearing WDTEN in the same register (this is the software\nmode for WDT). When HWDT = 1, the WDT has to be set by writing the sequence\n1EH/E1H to the WDTRST register (with address 0A6H) and after being set in this\nway, WDT cannot be turned off except by reset, warm or cold (this is the hardware\nmode for WDT). To prevent the hardware WDT from resetting the entire device,\nthe same sequence 1EH/E1H must be written to the same WDTRST SFR before the\ntimeout interval." ;# <-- NOT TRANSLATED YET ##ID:003611## mcset $l "Watchdog software reset bit. If HWDT = 0 (i.e. WDT is in software controlled mode),\nwhen set by software, this bit resets WDT. After being set by software, WSWRST is\nreset by hardware during the next machine cycle. If HWDT = 1, this bit has no effect,\nand if set by software, it will not be cleared by hardware." \ "Watchdog software reset bit. If HWDT = 0 (i.e. WDT is in software controlled mode),\nwhen set by software, this bit resets WDT. After being set by software, WSWRST is\nreset by hardware during the next machine cycle. If HWDT = 1, this bit has no effect,\nand if set by software, it will not be cleared by hardware." ;# <-- NOT TRANSLATED YET ##ID:003612## mcset $l "Watchdog software enable bit. When HWDT = 0 (i.e. WDT is in software-controlled mode),\nthis bit enables WDT when set to 1 and disables WDT when cleared to 0 (it does not\nreset WDT in this case, but just freezes the existing counter state). If HWDT = 1, this\nbit is READ-ONLY and reflects the status of the WDT (whether it is running or not)." \ "Watchdog software enable bit. When HWDT = 0 (i.e. WDT is in software-controlled mode),\nthis bit enables WDT when set to 1 and disables WDT when cleared to 0 (it does not\nreset WDT in this case, but just freezes the existing counter state). If HWDT = 1, this\nbit is READ-ONLY and reflects the status of the WDT (whether it is running or not)." ;# <-- NOT TRANSLATED YET ##ID:003613## mcset $l "Do not try to set or clear this bit" \ "Do not try to set or clear this bit" ;# <-- NOT TRANSLATED YET ##ID:003614## mcset $l "WDT Time-out select bit" \ "WDT Time-out select bit" ;# <-- NOT TRANSLATED YET ##ID:003615## mcset $l "Prescaler bits for the watchdog timer (WDT). When all three bits are cleared\nto 0, the watchdog timer has a nominal period of 16K machine cycles,\n(i.e. 16 ms at a XTAL frequency of 12 MHz in normal mode or 6 MHz in x2 mode).\nWhen all three bits are set to 1, the nominal period is 2048K machine cycles,\n(i.e. 2048 ms at 12 MHz clock frequency in normal mode or 6 MHz in x2 mode)." \ "Prescaler bits for the watchdog timer (WDT). When all three bits are cleared\nto 0, the watchdog timer has a nominal period of 16K machine cycles,\n(i.e. 16 ms at a XTAL frequency of 12 MHz in normal mode or 6 MHz in x2 mode).\nWhen all three bits are set to 1, the nominal period is 2048K machine cycles,\n(i.e. 2048 ms at 12 MHz clock frequency in normal mode or 6 MHz in x2 mode)." ;# <-- NOT TRANSLATED YET ##ID:003616## mcset $l "SPI interrupt flag" \ "SPI interrupt flag" ;# <-- NOT TRANSLATED YET ##ID:003617## mcset $l "Write collision flag" \ "Write collision flag" ;# <-- NOT TRANSLATED YET ##ID:003618## mcset $l "Load enable" \ "Load enable" ;# <-- NOT TRANSLATED YET ##ID:003619## mcset $l "Disable slave output bit" \ "Disable slave output bit" ;# <-- NOT TRANSLATED YET ##ID:003620## mcset $l "Enhanced SPI mode select bit" \ "Enhanced SPI mode select bit" ;# <-- NOT TRANSLATED YET ##ID:003621## mcset $l "SPI interrupt flag. When a serial transfer is complete, the SPIF bit is set and an interrupt is generated if SPIE = 1 and ES\n= 1. The SPIF bit is cleared by reading the SPI status register followed by reading/writing the SPI data register." \ "SPI interrupt flag. When a serial transfer is complete, the SPIF bit is set and an interrupt is generated if SPIE = 1 and ES\n= 1. The SPIF bit is cleared by reading the SPI status register followed by reading/writing the SPI data register." ;# <-- NOT TRANSLATED YET ##ID:003622## mcset $l "When ENH = 0: Write collision flag. The WCOL bit is set if the SPI data register is written during a data transfer. During\ndata transfer, the result of reading the SPDR register may be incorrect, and writing to it has no effect. The WCOL bit (and\nthe SPIF bit) are cleared by reading the SPI status register followed by reading/writing the SPI data register.\nWhen ENH = 1: WCOL works in Enhanced mode as Tx Buffer Full. Writing during WCOL = 1 in enhanced mode will\noverwrite the waiting data already present in the Tx Buffer. In this mode, WCOL is no longer reset by the SPIF reset but\nis reset when the write buffer has been unloaded into the serial shift register." \ "When ENH = 0: Write collision flag. The WCOL bit is set if the SPI data register is written during a data transfer. During\ndata transfer, the result of reading the SPDR register may be incorrect, and writing to it has no effect. The WCOL bit (and\nthe SPIF bit) are cleared by reading the SPI status register followed by reading/writing the SPI data register.\nWhen ENH = 1: WCOL works in Enhanced mode as Tx Buffer Full. Writing during WCOL = 1 in enhanced mode will\noverwrite the waiting data already present in the Tx Buffer. In this mode, WCOL is no longer reset by the SPIF reset but\nis reset when the write buffer has been unloaded into the serial shift register." ;# <-- NOT TRANSLATED YET ##ID:003623## mcset $l "Load enable for the Tx buffer in enhanced SPI mode.\nWhen ENH is set, it is safe to load the Tx Buffer while LDEN = 1 and WCOL = 0. LDEN is high during bits 0 - 3 and is low\nduring bits 4 - 7 of the SPI serial byte transmission time frame." \ "Load enable for the Tx buffer in enhanced SPI mode.\nWhen ENH is set, it is safe to load the Tx Buffer while LDEN = 1 and WCOL = 0. LDEN is high during bits 0 - 3 and is low\nduring bits 4 - 7 of the SPI serial byte transmission time frame." ;# <-- NOT TRANSLATED YET ##ID:003624## mcset $l "Disable slave output bit.\nWhen set, this bit causes the MISO pin to be tri-stated so more than one slave device can share the same interface with\na single master. Normally, the first byte in a transmission could be the slave address and only the selected slave should\nclear its DISSO bit." \ "Disable slave output bit.\nWhen set, this bit causes the MISO pin to be tri-stated so more than one slave device can share the same interface with\na single master. Normally, the first byte in a transmission could be the slave address and only the selected slave should\nclear its DISSO bit." ;# <-- NOT TRANSLATED YET ##ID:003625## mcset $l "Enhanced SPI mode select bit. When ENH = 0, SPI is in normal mode, i.e. without write double buffering.\nWhen ENH = 1, SPI is in enhanced mode with write double buffering. The Tx buffer shares the same address with the\nSPDR register." \ "Enhanced SPI mode select bit. When ENH = 0, SPI is in normal mode, i.e. without write double buffering.\nWhen ENH = 1, SPI is in enhanced mode with write double buffering. The Tx buffer shares the same address with the\nSPDR register." ;# <-- NOT TRANSLATED YET ##ID:003626## mcset $l "SPI interrupt enable" \ "SPI interrupt enable" ;# <-- NOT TRANSLATED YET ##ID:003627## mcset $l "SPI enable" \ "SPI enable" ;# <-- NOT TRANSLATED YET ##ID:003628## mcset $l "Data order" \ "Data order" ;# <-- NOT TRANSLATED YET ##ID:003629## mcset $l "Master/slave select" \ "Master/slave select" ;# <-- NOT TRANSLATED YET ##ID:003630## mcset $l "Clock polarity" \ "Clock polarity" ;# <-- NOT TRANSLATED YET ##ID:003631## mcset $l "Clock phase" \ "Clock phase" ;# <-- NOT TRANSLATED YET ##ID:003632## mcset $l "SPI clock rate select" \ "SPI clock rate select" ;# <-- NOT TRANSLATED YET ##ID:003633## mcset $l "SPI interrupt enable.\nThis bit, in conjunction with the ES bit in the IE register,\nenables SPI interrupts: SPIE = 1 and ES = 1 enable SPI interrupts. SPIE = 0 disables SPI interrupts." \ "SPI interrupt enable.\nThis bit, in conjunction with the ES bit in the IE register,\nenables SPI interrupts: SPIE = 1 and ES = 1 enable SPI interrupts. SPIE = 0 disables SPI interrupts." ;# <-- NOT TRANSLATED YET ##ID:003634## mcset $l "SPI enable. SPI = 1 enables the SPI channel and connects\nSS, MOSI, MISO and SCK to pins P1.4, P1.5, P1.6, and P1.7.\nSPI = 0 disables the SPI channel." \ "SPI enable. SPI = 1 enables the SPI channel and connects\nSS, MOSI, MISO and SCK to pins P1.4, P1.5, P1.6, and P1.7.\nSPI = 0 disables the SPI channel." ;# <-- NOT TRANSLATED YET ##ID:003635## mcset $l "Data order. DORD = 1 selects LSB first data transmission.\nDORD = 0 selects MSB first data transmission." \ "Data order. DORD = 1 selects LSB first data transmission.\nDORD = 0 selects MSB first data transmission." ;# <-- NOT TRANSLATED YET ##ID:003636## mcset $l "Master/slave select. MSTR = 1 selects Master SPI mode.\nMSTR = 0 selects slave SPI mode." \ "Master/slave select. MSTR = 1 selects Master SPI mode.\nMSTR = 0 selects slave SPI mode." ;# <-- NOT TRANSLATED YET ##ID:003637## mcset $l "Clock polarity. When CPOL = 1, SCK is high when idle. When CPOL = 0,\nSCK of the master device is low when not transmitting. Please refer to\nfigure on SPI clock phase and polarity control." \ "Clock polarity. When CPOL = 1, SCK is high when idle. When CPOL = 0,\nSCK of the master device is low when not transmitting. Please refer to\nfigure on SPI clock phase and polarity control." ;# <-- NOT TRANSLATED YET ##ID:003638## mcset $l "Clock phase. The CPHA bit together with the CPOL bit controls the\nclock and data relationship between master and slave. Please refer\nto figure on SPI clock phase and polarity control." \ "Clock phase. The CPHA bit together with the CPOL bit controls the\nclock and data relationship between master and slave. Please refer\nto figure on SPI clock phase and polarity control." ;# <-- NOT TRANSLATED YET ##ID:003639## mcset $l "SPI clock rate select.\nThese two bits control the SCK rate of the device configured as master.\nSPR1 and SPR0 have no effect on the slave. The relationship between SCK and the\noscillator frequency, FOSC., is as follows:\n SPR1\tSPR0\tSCK\n 0\t0\tf/4 (f/2 in x2mode)\n 0\t1\tf/16 (f/8 in x2 mode)\n 1\t0\tf/64 (f/32 in x2 mode)\n 1\t1\tf/128 (f/64 in x2 mode)" \ "SPI clock rate select.\nThese two bits control the SCK rate of the device configured as master.\nSPR1 and SPR0 have no effect on the slave. The relationship between SCK and the\noscillator frequency, FOSC., is as follows:\n SPR1\tSPR0\tSCK\n 0\t0\tf/4 (f/2 in x2mode)\n 0\t1\tf/16 (f/8 in x2 mode)\n 1\t0\tf/64 (f/32 in x2 mode)\n 1\t1\tf/128 (f/64 in x2 mode)" ;# <-- NOT TRANSLATED YET ##ID:003640## mcset $l "Comparator Interrupt" \ "Comparator Interrupt" ;# <-- NOT TRANSLATED YET ##ID:003641## mcset $l "Comparator Enable" \ "Comparator Enable" ;# <-- NOT TRANSLATED YET ##ID:003642## mcset $l "Comparator Interrupt Mode" \ "Comparator Interrupt Mode" ;# <-- NOT TRANSLATED YET ##ID:003643## mcset $l "Comparator Interrupt Flag. Set when the comparator output meets the conditions specified by the CM \[2:0\] bits and CEN\nis set. The flag must be cleared by software. The interrupt may be enabled/disabled by setting/clearing bit 6 of IE." \ "Comparator Interrupt Flag. Set when the comparator output meets the conditions specified by the CM \[2:0\] bits and CEN\nis set. The flag must be cleared by software. The interrupt may be enabled/disabled by setting/clearing bit 6 of IE." ;# <-- NOT TRANSLATED YET ##ID:003644## mcset $l "Comparator Enable. Set this bit to enable the comparator. Clearing this bit will force the comparator output low and\nprevent further events from setting CF." \ "Comparator Enable. Set this bit to enable the comparator. Clearing this bit will force the comparator output low and\nprevent further events from setting CF." ;# <-- NOT TRANSLATED YET ##ID:003645## mcset $l "Comparator Interrupt Mode\n 2 1 0\tInterrupt Mode\n--- --- ---\t---------------------------------------\n 0 0 0\tNegative (Low) level\n 0 0 1\tPositive edge\n 0 1 0\tToggle with debounce\n 0 1 1\tPositive edge with debounce\n 1 0 0\tNegative edge\n 1 0 1\tToggle\n 1 1 0\tNegative edge with debounce\n 1 1 1\tPositive (High) level" \ "Comparator Interrupt Mode\n 2 1 0\tInterrupt Mode\n--- --- ---\t---------------------------------------\n 0 0 0\tNegative (Low) level\n 0 0 1\tPositive edge\n 0 1 0\tToggle with debounce\n 0 1 1\tPositive edge with debounce\n 1 0 0\tNegative edge\n 1 0 1\tToggle\n 1 1 0\tNegative edge with debounce\n 1 1 1\tPositive (High) level" ;# <-- NOT TRANSLATED YET ##ID:003646## mcset $l "Data Pointer Register Select" \ "Data Pointer Register Select" ;# <-- NOT TRANSLATED YET ##ID:003647## mcset $l "DPS\tData Pointer Register Select\n0\tSelects DPTR Registers DP0L, DP0H\n1\tSelects DPTR Registers DP1L, DP1H\n" \ "DPS\tData Pointer Register Select\n0\tSelects DPTR Registers DP0L, DP0H\n1\tSelects DPTR Registers DP1L, DP1H\n" ;# <-- NOT TRANSLATED YET ##ID:003648## mcset $l "Disable/Enable ALE" \ "Disable/Enable ALE" ;# <-- NOT TRANSLATED YET ##ID:003649## mcset $l "Disable/Enable ALE\nDISALE\tOperating Mode\n0\tALE is emitted at a constant rate of 1/6 the oscillator frequency\n1\tALE is active only during a MOVX or MOVC instruction" \ "Disable/Enable ALE\nDISALE\tOperating Mode\n0\tALE is emitted at a constant rate of 1/6 the oscillator frequency\n1\tALE is active only during a MOVX or MOVC instruction" ;# <-- NOT TRANSLATED YET ##ID:003650## mcset $l "Register %s: Located in IDATA, address depends on bits RS0 and RS1 in PSW" \ "Register %s: Located in IDATA, address depends on bits RS0 and RS1 in PSW" ;# <-- NOT TRANSLATED YET ##ID:003651## mcset $l "SFR 0x8D: 2nd part of 16-bit counting register for timer 1" \ "SFR 0x8D: 2nd part of 16-bit counting register for timer 1" ;# <-- NOT TRANSLATED YET ##ID:003652## mcset $l "SFR 0x8B: 1st part of 16-bit counting register for timer 1" \ "SFR 0x8B: 1st part of 16-bit counting register for timer 1" ;# <-- NOT TRANSLATED YET ##ID:003653## mcset $l "SFR 0x8C: 2nd part of 16-bit counting register for timer 0" \ "SFR 0x8C: 2nd part of 16-bit counting register for timer 0" ;# <-- NOT TRANSLATED YET ##ID:003654## mcset $l "SFR 0x8A: 1nd part of 16-bit counting register for timer 0" \ "SFR 0x8A: 1nd part of 16-bit counting register for timer 0" ;# <-- NOT TRANSLATED YET ##ID:003655## mcset $l "SFR 0x8D..0x8B: 16-bit counting register for timer 1" \ "SFR 0x8D..0x8B: 16-bit counting register for timer 1" ;# <-- NOT TRANSLATED YET ##ID:003656## mcset $l "SFR 0x8C..0x8A: 16-bit counting register for timer 0" \ "SFR 0x8C..0x8A: 16-bit counting register for timer 0" ;# <-- NOT TRANSLATED YET ##ID:003657## mcset $l "SFR 0x%s: Latch of port %s" \ "SFR 0x%s: Latch of port %s" ;# <-- NOT TRANSLATED YET ##ID:003658## mcset $l "SFR 0x87: Power control register" \ "SFR 0x87: Power control register" ;# <-- NOT TRANSLATED YET ##ID:003659## mcset $l "SFR 0x83: Data pointer register" \ "SFR 0x83: Data pointer register" ;# <-- NOT TRANSLATED YET ##ID:003660## mcset $l "SFR 0x82: Data pointer register" \ "SFR 0x82: Data pointer register" ;# <-- NOT TRANSLATED YET ##ID:003661## mcset $l "SFR 0x85: Data pointer register" \ "SFR 0x85: Data pointer register" ;# <-- NOT TRANSLATED YET ##ID:003662## mcset $l "SFR 0x84: Data pointer register" \ "SFR 0x84: Data pointer register" ;# <-- NOT TRANSLATED YET ##ID:003663## mcset $l "Clock:" \ "Clock:" ;# <-- NOT TRANSLATED YET ##ID:003664## mcset $l "Processor clock in kHz" \ "Processor clock in kHz" ;# <-- NOT TRANSLATED YET ##ID:003665## mcset $l "SFR 0x99: Serial Data Buffer - RECEIVE buffer" \ "SFR 0x99: Serial Data Buffer - RECEIVE buffer" ;# <-- NOT TRANSLATED YET ##ID:003666## mcset $l "SFR 0x99: Serial Data Buffer - TRANSMIT buffer" \ "SFR 0x99: Serial Data Buffer - TRANSMIT buffer" ;# <-- NOT TRANSLATED YET ##ID:003667## mcset $l "Program counter" \ "Program counter" ;# <-- NOT TRANSLATED YET ##ID:003668## mcset $l "Set PC (Program Counter) according to\nline number in source code" \ "Set PC (Program Counter) according to\nline number in source code" ;# <-- NOT TRANSLATED YET ##ID:003669## mcset $l "Set PC by line number" \ "Set PC by line number" ;# <-- NOT TRANSLATED YET ##ID:003670## mcset $l "HEX" \ "HEX" ;# <-- NOT TRANSLATED YET ##ID:003671## mcset $l "DEC" \ "DEC" ;# <-- NOT TRANSLATED YET ##ID:003672## mcset $l "Time:" \ "Time:" ;# <-- NOT TRANSLATED YET ##ID:003673## mcset $l "Overall time" \ "Overall time" ;# <-- NOT TRANSLATED YET ##ID:003674## mcset $l "SFR 0xCD: Part of 16-bit counting register for Timer/Counter 2" \ "SFR 0xCD: Part of 16-bit counting register for Timer/Counter 2" ;# <-- NOT TRANSLATED YET ##ID:003675## mcset $l "SFR 0xCC: Part of 16-bit counting register for Timer/Counter 2" \ "SFR 0xCC: Part of 16-bit counting register for Timer/Counter 2" ;# <-- NOT TRANSLATED YET ##ID:003676## mcset $l "SFR 0xCB: Part of 16-bit capture register for Timer/Counter 2" \ "SFR 0xCB: Part of 16-bit capture register for Timer/Counter 2" ;# <-- NOT TRANSLATED YET ##ID:003677## mcset $l "SFR 0xCA: Part of 16-bit capture register for Timer/Counter 2" \ "SFR 0xCA: Part of 16-bit capture register for Timer/Counter 2" ;# <-- NOT TRANSLATED YET ##ID:003678## mcset $l "SFR 0xCC..0xCD: 16-bit counting register for Timer/Counter 2" \ "SFR 0xCC..0xCD: 16-bit counting register for Timer/Counter 2" ;# <-- NOT TRANSLATED YET ##ID:003679## mcset $l "SFR 0xCA..0xCB: 16-bit capture register for Timer/Counter 2" \ "SFR 0xCA..0xCB: 16-bit capture register for Timer/Counter 2" ;# <-- NOT TRANSLATED YET ##ID:003680## mcset $l "Watchdog timer" \ "看门狗定时器" ##ID:003681## mcset $l "OFF" \ "关" ##ID:003682## mcset $l "ON " \ "开 " ##ID:003683## mcset $l "Simulator" \ "模拟器" ##ID:003684## mcset $l "Watchdog:" \ "看门狗:" ##ID:003685## mcset $l "Watchdog timer ON/OFF switch" \ "看门狗定时器 开/关 选项" ##ID:003686## mcset $l "Watchdog Prescaler (0-7 bits)" \ "看门狗预分频器 (0-7 bits)" ##ID:003687## mcset $l "Reset watchdog timer" \ "复位看门狗定时器" ##ID:003688## mcset $l "Reset Watchdog" \ "复位看门狗" ##ID:003689## mcset $l "SFR 0xB9: Used to define which bits in the SADDR are to be used" \ "SFR 0xB9: Used to define which bits in the SADDR are to be used" ;# <-- NOT TRANSLATED YET ##ID:003690## mcset $l "SFR 0xA9: Define the slave's address" \ "SFR 0xA9: Define the slave's address" ;# <-- NOT TRANSLATED YET ##ID:003691## mcset $l "SFR 0x86: SPI Data Register" \ "SFR 0x86: SPI Data Register" ;# <-- NOT TRANSLATED YET ##ID:003692## mcset $l "SFR 0xA6: Watchdog reset" \ "SFR 0xA6: Watchdog reset" ;# <-- NOT TRANSLATED YET ##ID:003693## mcset $l "Writing to EEPROM" \ "Writing to EEPROM" ;# <-- NOT TRANSLATED YET ##ID:003694## mcset $l "Finalize data EEPROM write cycle" \ "Finalize data EEPROM write cycle" ;# <-- NOT TRANSLATED YET ##ID:003695## mcset $l "Finalize write cycle" \ "Finalize write cycle" ;# <-- NOT TRANSLATED YET ##ID:003696## mcset $l "Cancel data EEPROM write cycle" \ "Cancel data EEPROM write cycle" ;# <-- NOT TRANSLATED YET ##ID:003697## mcset $l "Cancel write cycle" \ "Cancel write cycle" ;# <-- NOT TRANSLATED YET ##ID:003698## mcset $l "EEPROM write cycle progress" \ "EEPROM write cycle progress" ;# <-- NOT TRANSLATED YET } # interruptmonitor.tcl # ============================================================================== namespace eval InterruptMonitor { eval ${SFB_TRANSLATIONS} ##ID:003699## mcset $l "Close" \ "关闭" ##ID:003700## mcset $l "Interrupt monitor" \ "中断监控" ##ID:003701## mcset $l "Close this dialog window" \ "关闭此对话框窗口" ##ID:003702## mcset $l {Vector:} \ {Vector:} ;# <-- NOT TRANSLATED YET ##ID:003703## mcset $l {Enable bit:} \ {Enable bit:} ;# <-- NOT TRANSLATED YET ##ID:003704## mcset $l {Flag bit:} \ {Flag bit:} ;# <-- NOT TRANSLATED YET ##ID:003705## mcset $l {Priority bits:} \ {Priority bits:} ;# <-- NOT TRANSLATED YET ##ID:003706## mcset $l { Line:} \ { Line:} ;# <-- NOT TRANSLATED YET ##ID:003707## mcset $l { File:} \ { 文件:} ##ID:003708## mcset $l { PC:} \ { PC:} ;# <-- NOT TRANSLATED YET ##ID:003709## mcset $l "Increase priority level" \ "增加优先级" ##ID:003710## mcset $l "Decrease priority level" \ "减少优先级" ##ID:003711## mcset $l "Invoke this interrupt" \ "调用此中断" ##ID:003712## mcset $l "Priority level" \ "优先级" ##ID:003713## mcset $l "SPSR.7 -- SPI interrupt flag" \ "SPSR.7 -- SPI interrupt flag" ;# <-- NOT TRANSLATED YET ##ID:003714## mcset $l "ACSR.4 -- Comparator Interrupt" \ "ACSR.4 -- Comparator Interrupt" ;# <-- NOT TRANSLATED YET ##ID:003715## mcset $l "IPH.0 -- Defines the External Interrupt 0 priority level" \ "IPH.0 -- Defines the External Interrupt 0 priority level" ;# <-- NOT TRANSLATED YET ##ID:003716## mcset $l "IPH.1 -- Defines the Timer 0 interrupt priority level" \ "IPH.1 -- Defines the Timer 0 interrupt priority level" ;# <-- NOT TRANSLATED YET ##ID:003717## mcset $l "IPH.2 -- Defines External Interrupt 1 priority level" \ "IPH.2 -- Defines External Interrupt 1 priority level" ;# <-- NOT TRANSLATED YET ##ID:003718## mcset $l "IPH.3 -- Defines the Timer 1 interrupt priority level" \ "IPH.3 -- Defines the Timer 1 interrupt priority level" ;# <-- NOT TRANSLATED YET ##ID:003719## mcset $l "IPH.4 -- Defines the Serial Port interrupt priority level" \ "IPH.4 -- Defines the Serial Port interrupt priority level" ;# <-- NOT TRANSLATED YET ##ID:003720## mcset $l "IPH.5 -- Defines the Timer 2 interrupt priority level" \ "IPH.5 -- Defines the Timer 2 interrupt priority level" ;# <-- NOT TRANSLATED YET ##ID:003721## mcset $l "IPH.6 -- Defines the comparator interrupt priority level" \ "IPH.6 -- Defines the comparator interrupt priority level" ;# <-- NOT TRANSLATED YET ##ID:003722## mcset $l "Interrupts in progress" \ "Interrupts in progress" ;# <-- NOT TRANSLATED YET ##ID:003723## mcset $l "Pending interrupts" \ "Pending interrupts" ;# <-- NOT TRANSLATED YET ##ID:003724## mcset $l "Interrupt priorities" \ "Interrupt priorities" ;# <-- NOT TRANSLATED YET ##ID:003725## mcset $l "Expand all" \ "Expand all" ;# <-- NOT TRANSLATED YET ##ID:003726## mcset $l "Collapse all" \ "Collapse all" ;# <-- NOT TRANSLATED YET ##ID:003727## mcset $l "Priority:" \ "Priority:" ;# <-- NOT TRANSLATED YET ##ID:003728## mcset $l "Invoked from:" \ "Invoked from:" ;# <-- NOT TRANSLATED YET } # rs232debugger.tcl # ============================================================================== namespace eval RS232Debugger { ##ID:003729## mcset $l "Special character file representing the target physical device" \ "Special character file representing the target physical device" ;# <-- NOT TRANSLATED YET ##ID:003730## mcset $l "Refresh list of relevant devices" \ "Refresh list of relevant devices" ;# <-- NOT TRANSLATED YET ##ID:003731## mcset $l "Connection speed in bps" \ "Connection speed in bps" ;# <-- NOT TRANSLATED YET ##ID:003732## mcset $l "Parity" \ "Parity" ;# <-- NOT TRANSLATED YET ##ID:003733## mcset $l "none" \ "none" ;# <-- NOT TRANSLATED YET ##ID:003734## mcset $l "odd" \ "odd" ;# <-- NOT TRANSLATED YET ##ID:003735## mcset $l "even" \ "even" ;# <-- NOT TRANSLATED YET ##ID:003736## mcset $l "mark" \ "mark" ;# <-- NOT TRANSLATED YET ##ID:003737## mcset $l "space" \ "space" ;# <-- NOT TRANSLATED YET ##ID:003738## mcset $l "Number of data bits" \ "Number of data bits" ;# <-- NOT TRANSLATED YET ##ID:003739## mcset $l "Number of stop bits" \ "Number of stop bits" ;# <-- NOT TRANSLATED YET ##ID:003740## mcset $l "Display incoming data or discard them" \ "Display incoming data or discard them" ;# <-- NOT TRANSLATED YET ##ID:003741## mcset $l "Remove selected data" \ "删除选定的数据" ##ID:003742## mcset $l "Send selected data" \ "发送选定的数据" ##ID:003743## mcset $l "Error message" \ "错误消息" ##ID:003744## mcset $l "Receive data on current cursor position" \ "Receive data on current cursor position" ;# <-- NOT TRANSLATED YET ##ID:003745## mcset $l "RS232 DBG: Invalid baud rate, setting to default: %s" \ "RS232 DBG: Invalid baud rate, setting to default: %s" ;# <-- NOT TRANSLATED YET ##ID:003746## mcset $l "RS232 DBG: Invalid parity, setting to default: %s" \ "RS232 DBG: Invalid parity, setting to default: %s" ;# <-- NOT TRANSLATED YET ##ID:003747## mcset $l "RS232 DBG: Invalid data length, setting to default: %s" \ "RS232 DBG: Invalid data length, setting to default: %s" ;# <-- NOT TRANSLATED YET ##ID:003748## mcset $l "RS232 DBG: Invalid stop bit length, setting to default: %s" \ "RS232 DBG: Invalid stop bit length, setting to default: %s" ;# <-- NOT TRANSLATED YET ##ID:003749## mcset $l "RS232 DBG: Invalid flag reception_enabled, setting to default: %s" \ "RS232 DBG: Invalid flag reception_enabled, setting to default: %s" ;# <-- NOT TRANSLATED YET ##ID:003750## mcset $l "RS232 DBG: Invalid reception address, setting to default: %s" \ "RS232 DBG: Invalid reception address, setting to default: %s" ;# <-- NOT TRANSLATED YET ##ID:003751## mcset $l "RS232 DBG: Invalid current cell address, setting to default: %s" \ "RS232 DBG: Invalid current cell address, setting to default: %s" ;# <-- NOT TRANSLATED YET ##ID:003752## mcset $l "RS232 Debugger" \ "RS232 Debugger" ;# <-- NOT TRANSLATED YET ##ID:003753## mcset $l "UART/RS232 Debugger - MCU 8051 IDE" \ "UART/RS232调试 - MCU 8051 IDE" ##ID:003754## mcset $l "RS-232\nDTE" \ "RS-232\nDTE" ;# <-- NOT TRANSLATED YET ##ID:003755## mcset $l "DE-9" \ "DE-9" ;# <-- NOT TRANSLATED YET ##ID:003756## mcset $l "DCD" \ "DCD" ;# <-- NOT TRANSLATED YET ##ID:003757## mcset $l "DSR" \ "DSR" ;# <-- NOT TRANSLATED YET ##ID:003758## mcset $l "CTS" \ "CTS" ;# <-- NOT TRANSLATED YET ##ID:003759## mcset $l "RI" \ "RI" ;# <-- NOT TRANSLATED YET ##ID:003760## mcset $l "DTR" \ "DTR" ;# <-- NOT TRANSLATED YET ##ID:003761## mcset $l "RTS" \ "RTS" ;# <-- NOT TRANSLATED YET ##ID:003762## mcset $l "Break" \ "Break" ;# <-- NOT TRANSLATED YET ##ID:003763## mcset $l "Port configuration" \ "Port configuration" ;# <-- NOT TRANSLATED YET ##ID:003764## mcset $l "Physical port" \ "Physical port" ;# <-- NOT TRANSLATED YET ##ID:003765## mcset $l "Baud rate" \ "Baud rate" ;# <-- NOT TRANSLATED YET ##ID:003766## mcset $l "Data bits" \ "Data bits" ;# <-- NOT TRANSLATED YET ##ID:003767## mcset $l "Stop bits" \ "Stop bits" ;# <-- NOT TRANSLATED YET ##ID:003768## mcset $l "Enable reception" \ "Enable reception" ;# <-- NOT TRANSLATED YET ##ID:003769## mcset $l "Terminate connection" \ "Terminate connection" ;# <-- NOT TRANSLATED YET ##ID:003770## mcset $l "Data to send" \ "Data to send" ;# <-- NOT TRANSLATED YET ##ID:003771## mcset $l "Received data" \ "Received data" ;# <-- NOT TRANSLATED YET ##ID:003772## mcset $l "Send selected" \ "Send selected" ;# <-- NOT TRANSLATED YET ##ID:003773## mcset $l "Clear selected" \ "Clear selected" ;# <-- NOT TRANSLATED YET ##ID:003774## mcset $l "Receive here" \ "Receive here" ;# <-- NOT TRANSLATED YET ##ID:003775## mcset $l "Unknown failure" \ "Unknown failure" ;# <-- NOT TRANSLATED YET ##ID:003776## mcset $l "Unable to change port configuration" \ "Unable to change port configuration" ;# <-- NOT TRANSLATED YET ##ID:003777## mcset $l "IO Error" \ "IO Error" ;# <-- NOT TRANSLATED YET ##ID:003778## mcset $l "No port opened." \ "No port opened." ;# <-- NOT TRANSLATED YET ##ID:003779## mcset $l "Unable to send the data\n\n%s" \ "Unable to send the data\n\n%s" ;# <-- NOT TRANSLATED YET ##ID:003780## mcset $l "Not enough space in the receive buffer !" \ "Not enough space in the receive buffer !" ;# <-- NOT TRANSLATED YET ##ID:003781## mcset $l "Ok" \ "Ok" ;# <-- NOT TRANSLATED YET ##ID:003782## mcset $l "Keep reception enabled" \ "Keep reception enabled" ;# <-- NOT TRANSLATED YET ##ID:003783## mcset $l "Data lost" \ "Data lost" ;# <-- NOT TRANSLATED YET ##ID:003784## mcset $l "There is something wrong with the port. Closing connection and disabling reception on this channel !" \ "There is something wrong with the port. Closing connection and disabling reception on this channel !" ;# <-- NOT TRANSLATED YET ##ID:003785## mcset $l "Access Error" \ "Access Error" ;# <-- NOT TRANSLATED YET ##ID:003786## mcset $l "Unable to open the specified file" \ "Unable to open the specified file" ;# <-- NOT TRANSLATED YET ##ID:003787## mcset $l "Unable to use the specified file" \ "Unable to use the specified file" ;# <-- NOT TRANSLATED YET ##ID:003788## mcset $l "RS232 pin: GND -- Common ground" \ "RS232 pin: GND -- Common ground" ;# <-- NOT TRANSLATED YET ##ID:003789## mcset $l "RS232 pin: DCD -- Carrier Detect" \ "RS232 pin: DCD -- Carrier Detect" ;# <-- NOT TRANSLATED YET ##ID:003790## mcset $l "RS232 pin: DSR -- Data Set Ready" \ "RS232 pin: DSR -- Data Set Ready" ;# <-- NOT TRANSLATED YET ##ID:003791## mcset $l "RS232 pin: CTS -- Clear To Send" \ "RS232 pin: CTS -- Clear To Send" ;# <-- NOT TRANSLATED YET ##ID:003792## mcset $l "RS232 pin: RI -- Ring Indicator" \ "RS232 pin: RI -- Ring Indicator" ;# <-- NOT TRANSLATED YET ##ID:003793## mcset $l "RS232 pin: DTR -- Data Terminal Ready" \ "RS232 pin: DTR -- Data Terminal Ready" ;# <-- NOT TRANSLATED YET ##ID:003794## mcset $l "RS232 pin: RTS -- Request To Send" \ "RS232 pin: RTS -- Request To Send" ;# <-- NOT TRANSLATED YET ##ID:003795## mcset $l "RS232 pin: TxD -- Transmitted Data" \ "RS232 pin: TxD -- Transmitted Data" ;# <-- NOT TRANSLATED YET ##ID:003796## mcset $l "RS232 pin: RxD -- Received Data" \ "RS232 pin: RxD -- Received Data" ;# <-- NOT TRANSLATED YET } # speccalc.tcl # ============================================================================== namespace eval SpecCalc { ##ID:003797## mcset $l "Loops" \ "Loops" ;# <-- NOT TRANSLATED YET ##ID:003798## mcset $l "Timer 0/1" \ "定时器 0/1" ##ID:003799## mcset $l "Timer 2" \ "定时器 2" ##ID:003800## mcset $l "SPI" \ "SPI" ;# <-- NOT TRANSLATED YET ##ID:003801## mcset $l "Calculate timer preset" \ "计算定时器的预置" ##ID:003802## mcset $l "Preset" \ "预设" ##ID:003803## mcset $l "Clock out" \ "Clock out" ;# <-- NOT TRANSLATED YET ##ID:003804## mcset $l "Special Calculator - MCU 8051 IDE" \ "特殊计算器 - MCU 8051 IDE" ##ID:003805## mcset $l "Time" \ "Time" ;# <-- NOT TRANSLATED YET ##ID:003806## mcset $l "Time unit" \ "Time unit" ;# <-- NOT TRANSLATED YET ##ID:003807## mcset $l "Clock \[kHz\]" \ "Clock \[kHz\]" ;# <-- NOT TRANSLATED YET ##ID:003808## mcset $l "MCU clock" \ "MCU clock" ;# <-- NOT TRANSLATED YET ##ID:003809## mcset $l "Clock cycles per machine cycle\n 12 - Common 8051\n 6 - Core 51X2\n 1 - Single cycle core" \ "Clock cycles per machine cycle\n 12 - Common 8051\n 6 - Core 51X2\n 1 - Single cycle core" ;# <-- NOT TRANSLATED YET ##ID:003810## mcset $l "Clock cycles per machine cycle" \ "Clock cycles per machine cycle" ;# <-- NOT TRANSLATED YET ##ID:003811## mcset $l "Registers to use" \ "使用寄存器" ##ID:003812## mcset $l "Source code:" \ "Source code:" ;# <-- NOT TRANSLATED YET ##ID:003813## mcset $l "Evaluate" \ "Evaluate" ;# <-- NOT TRANSLATED YET ##ID:003814## mcset $l "Copy" \ "复制" ##ID:003815## mcset $l "Create a wait loop" \ "Create a wait loop" ;# <-- NOT TRANSLATED YET ##ID:003816## mcset $l "Mode" \ "模式" ##ID:003817## mcset $l "Timer mode" \ "定时器模式" ##ID:003818## mcset $l "Show functional block diagram" \ "Show functional block diagram" ;# <-- NOT TRANSLATED YET ##ID:003819## mcset $l "Enhanced timer/counter" \ "Enhanced timer/counter" ;# <-- NOT TRANSLATED YET ##ID:003820## mcset $l "Calculate for enhanced timers" \ "Calculate for enhanced timers" ;# <-- NOT TRANSLATED YET ##ID:003821## mcset $l "The number of active bits in TL1 minus 1" \ "The number of active bits in TL1 minus 1" ;# <-- NOT TRANSLATED YET ##ID:003822## mcset $l "Results:" \ "结果:" ##ID:003823## mcset $l "TH" \ "TH" ;# <-- NOT TRANSLATED YET ##ID:003824## mcset $l "TL" \ "TL" ;# <-- NOT TRANSLATED YET ##ID:003825## mcset $l "RH" \ "RH" ;# <-- NOT TRANSLATED YET ##ID:003826## mcset $l "RL" \ "RL" ;# <-- NOT TRANSLATED YET ##ID:003827## mcset $l "Repeats" \ "重复" ##ID:003828## mcset $l "Rest" \ "休息" ##ID:003829## mcset $l "Do not change" \ "不要更改" ##ID:003830## mcset $l "Zero" \ "Zero" ;# <-- NOT TRANSLATED YET ##ID:003831## mcset $l "none" \ "无" ##ID:003832## mcset $l "Calculate timer 0/1 preset" \ "Calculate timer 0/1 preset" ;# <-- NOT TRANSLATED YET ##ID:003833## mcset $l "RCAL2H" \ "RCAL2H" ;# <-- NOT TRANSLATED YET ##ID:003834## mcset $l "RCAL2L" \ "RCAL2L" ;# <-- NOT TRANSLATED YET ##ID:003835## mcset $l "T2H" \ "T2H" ;# <-- NOT TRANSLATED YET ##ID:003836## mcset $l "T2L" \ "T2L" ;# <-- NOT TRANSLATED YET ##ID:003837## mcset $l "Calculate timer 2 preset" \ "Calculate timer 2 preset" ;# <-- NOT TRANSLATED YET ##ID:003838## mcset $l "Frequency" \ "Frequency" ;# <-- NOT TRANSLATED YET ##ID:003839## mcset $l "F osc" \ "F osc" ;# <-- NOT TRANSLATED YET ##ID:003840## mcset $l "X2" \ "X2" ;# <-- NOT TRANSLATED YET ##ID:003841## mcset $l "HEX" \ "HEX" ;# <-- NOT TRANSLATED YET ##ID:003842## mcset $l "DEC" \ "DEC" ;# <-- NOT TRANSLATED YET ##ID:003843## mcset $l "RCAP2H" \ "RCAP2H" ;# <-- NOT TRANSLATED YET ##ID:003844## mcset $l "RCAP2L" \ "RCAP2L" ;# <-- NOT TRANSLATED YET ##ID:003845## mcset $l "Error" \ "错误" ##ID:003846## mcset $l "Calculate clock output" \ "Calculate clock output" ;# <-- NOT TRANSLATED YET ##ID:003847## mcset $l "Baud rate" \ "波特率" ##ID:003848## mcset $l "UART mode" \ "UART模式" ##ID:003849## mcset $l "Generator" \ "Generator" ;# <-- NOT TRANSLATED YET ##ID:003850## mcset $l "Baud rate generator" \ "Baud rate generator" ;# <-- NOT TRANSLATED YET ##ID:003851## mcset $l "Bit PCON.7 -- Double baud rate" \ "Bit PCON.7 -- Double baud rate" ;# <-- NOT TRANSLATED YET ##ID:003852## mcset $l "SPD (SPeeD) in BDRCON register" \ "SPD (SPeeD) in BDRCON register" ;# <-- NOT TRANSLATED YET ##ID:003853## mcset $l "Calculate for enhanced timer 1" \ "Calculate for enhanced timer 1" ;# <-- NOT TRANSLATED YET ##ID:003854## mcset $l "T1 mode" \ "T1模式" ##ID:003855## mcset $l "Timer 1 mode" \ "Timer 1 mode" ;# <-- NOT TRANSLATED YET ##ID:003856## mcset $l "UART baud rate" \ "UART baud rate" ;# <-- NOT TRANSLATED YET ##ID:003857## mcset $l "Mode X2 or single cycle core" \ "Mode X2 or single cycle core" ;# <-- NOT TRANSLATED YET ##ID:003858## mcset $l "SCK \[kHz\]" \ "SCK \[kHz\]" ;# <-- NOT TRANSLATED YET ##ID:003859## mcset $l "Set MCU oscillator to " \ "设置MCU振荡器 " ##ID:003860## mcset $l " kHz" \ " kHz" ;# <-- NOT TRANSLATED YET ##ID:003861## mcset $l "Calculate oscillator frequency" \ "振荡频率计算" ##ID:003862## mcset $l "Unable to evaluate" \ "Unable to evaluate" ;# <-- NOT TRANSLATED YET ##ID:003863## mcset $l "ERROR: Missing time\n" \ "ERROR: Missing time\n" ;# <-- NOT TRANSLATED YET ##ID:003864## mcset $l "ERROR: Time rate cannot be 0\n" \ "ERROR: Time rate cannot be 0\n" ;# <-- NOT TRANSLATED YET ##ID:003865## mcset $l "ERROR: Missing MCU clock rate\n" \ "ERROR: Missing MCU clock rate\n" ;# <-- NOT TRANSLATED YET ##ID:003866## mcset $l "ERROR: MCU clock rate cannot be 0\n" \ "ERROR: MCU clock rate cannot be 0\n" ;# <-- NOT TRANSLATED YET ##ID:003867## mcset $l "ERROR: Missing register name %s\n" \ "ERROR: Missing register name %s\n" ;# <-- NOT TRANSLATED YET ##ID:003868## mcset $l "ERROR: Ambiguous register name %s\n" \ "ERROR: Ambiguous register name %s\n" ;# <-- NOT TRANSLATED YET ##ID:003869## mcset $l "; START: Wait loop, time: %s %s\n; Clock: %s kHz (%s)\n; Used registers: " \ "; START: Wait loop, time: %s %s\n; Clock: %s kHz (%s)\n; Used registers: " ;# <-- NOT TRANSLATED YET ##ID:003870## mcset $l "; Rest: %s\n" \ "; Rest: %s\n" ;# <-- NOT TRANSLATED YET ##ID:003871## mcset $l "; END: Wait loop" \ "; END: Wait loop" ;# <-- NOT TRANSLATED YET ##ID:003872## mcset $l "Invalid time" \ "无效的时间" ##ID:003873## mcset $l "Invalid clock rate" \ "无效的时钟频率" ##ID:003874## mcset $l "Value is too high" \ "值过高" ##ID:003875## mcset $l "One" \ "One" ;# <-- NOT TRANSLATED YET ##ID:003876## mcset $l "Timer 0/1 in mode 0" \ "Timer 0/1 in mode 0" ;# <-- NOT TRANSLATED YET ##ID:003877## mcset $l "Timer 0/1 in mode 1" \ "Timer 0/1 in mode 1" ;# <-- NOT TRANSLATED YET ##ID:003878## mcset $l "Timer 0/1 in mode 2" \ "Timer 0/1 in mode 2" ;# <-- NOT TRANSLATED YET ##ID:003879## mcset $l "Timer 2 as up/down counter" \ "Timer 2 as up/down counter" ;# <-- NOT TRANSLATED YET ##ID:003880## mcset $l "Timer 1/2 as UART baud rate generator" \ "Timer 1/2 as UART baud rate generator" ;# <-- NOT TRANSLATED YET ##ID:003881## mcset $l "Internal baud rate generator" \ "Internal baud rate generator" ;# <-- NOT TRANSLATED YET ##ID:003882## mcset $l "Diagram or formula" \ "Diagram or formula" ;# <-- NOT TRANSLATED YET ##ID:003883## mcset $l "UART baud rate generator" \ "UART baud rate generator" ;# <-- NOT TRANSLATED YET ##ID:003884## mcset $l "All files" \ "所有文件" ##ID:003885## mcset $l "Text files" \ "文本文件" ##ID:003886## mcset $l "HTML files" \ "HTML文件" } # table_of_instructions.tcl # ============================================================================== namespace eval TableOfInstructions { ##ID:003887## mcset $l "Exit" \ "退出" ##ID:003888## mcset $l "OP code (hex): " \ "OP code (hex): " ;# <-- NOT TRANSLATED YET ##ID:003889## mcset $l "Class: " \ "Class: " ;# <-- NOT TRANSLATED YET ##ID:003890## mcset $l "Description: " \ "Description: " ;# <-- NOT TRANSLATED YET ##ID:003891## mcset $l "Length: " \ "Length: " ;# <-- NOT TRANSLATED YET ##ID:003892## mcset $l "Time: " \ "Time: " ;# <-- NOT TRANSLATED YET ##ID:003893## mcset $l "Flags: " \ "Flags: " ;# <-- NOT TRANSLATED YET ##ID:003894## mcset $l "Note: " \ "Note: " ;# <-- NOT TRANSLATED YET ##ID:003895## mcset $l "OP code not defined" \ "OP code not defined" ;# <-- NOT TRANSLATED YET ##ID:003896## mcset $l "This instruction does not exist on 8051" \ "This instruction does not exist on 8051" ;# <-- NOT TRANSLATED YET ##ID:003897## mcset $l "Operands" \ "Operands" ;# <-- NOT TRANSLATED YET ##ID:003898## mcset $l "Length" \ "Length" ;# <-- NOT TRANSLATED YET ##ID:003899## mcset $l "Time" \ "Time" ;# <-- NOT TRANSLATED YET ##ID:003900## mcset $l "Mnemonics" \ "Mnemonics" ;# <-- NOT TRANSLATED YET } # spell_check.tcl # ============================================================================== namespace eval Editor { ##ID:003901## mcset $l "Hunspell error" \ "Hunspell error" ;# <-- NOT TRANSLATED YET ##ID:003902## mcset $l "Unable to start the spell checker. Please try to re-install the hunspell. Spell checking function will not be available" \ "Unable to start the spell checker. Please try to re-install the hunspell. Spell checking function will not be available" ;# <-- NOT TRANSLATED YET ##ID:003903## mcset $l "Refresh list of dictionaries" \ "Refresh list of dictionaries" ;# <-- NOT TRANSLATED YET ##ID:003904## mcset $l "Turn off spell checking" \ "Turn off spell checking" ;# <-- NOT TRANSLATED YET ##ID:003905## mcset $l "Set dictionary by language" \ "Set dictionary by language" ;# <-- NOT TRANSLATED YET ##ID:003906## mcset $l "Set dictionary by country" \ "Set dictionary by country" ;# <-- NOT TRANSLATED YET ##ID:003907## mcset $l "File changed on disk" \ "File changed on disk" ;# <-- NOT TRANSLATED YET ##ID:003908## mcset $l "The file '%s' was modified from outside of this program.\n\nWhat do you want to do with the modified file" \ "The file '%s' was modified from outside of this program.\n\nWhat do you want to do with the modified file" ;# <-- NOT TRANSLATED YET ##ID:003909## mcset $l "Reload in editor" \ "Reload in editor" ;# <-- NOT TRANSLATED YET ##ID:003910## mcset $l "Overwrite on disk" \ "Overwrite on disk" ;# <-- NOT TRANSLATED YET ##ID:003911## mcset $l "Do nothing" \ "Do nothing" ;# <-- NOT TRANSLATED YET # Names of languages ##ID:003912## mcset $l "Abkhazian" \ "Abkhazian" ;# <-- NOT TRANSLATED YET ##ID:003913## mcset $l "Afar" \ "Afar" ;# <-- NOT TRANSLATED YET ##ID:003914## mcset $l "Afrikaans" \ "Afrikaans" ;# <-- NOT TRANSLATED YET ##ID:003915## mcset $l "Akan" \ "Akan" ;# <-- NOT TRANSLATED YET ##ID:003916## mcset $l "Albanian" \ "Albanian" ;# <-- NOT TRANSLATED YET ##ID:003917## mcset $l "Amharic" \ "Amharic" ;# <-- NOT TRANSLATED YET ##ID:003918## mcset $l "Arabic" \ "Arabic" ;# <-- NOT TRANSLATED YET ##ID:003919## mcset $l "Aragonese" \ "Aragonese" ;# <-- NOT TRANSLATED YET ##ID:003920## mcset $l "Armenian" \ "Armenian" ;# <-- NOT TRANSLATED YET ##ID:003921## mcset $l "Assamese" \ "Assamese" ;# <-- NOT TRANSLATED YET ##ID:003922## mcset $l "Avaric" \ "Avaric" ;# <-- NOT TRANSLATED YET ##ID:003923## mcset $l "Avestan" \ "Avestan" ;# <-- NOT TRANSLATED YET ##ID:003924## mcset $l "Aymara" \ "Aymara" ;# <-- NOT TRANSLATED YET ##ID:003925## mcset $l "Azerbaijani" \ "Azerbaijani" ;# <-- NOT TRANSLATED YET ##ID:003926## mcset $l "Bambara" \ "Bambara" ;# <-- NOT TRANSLATED YET ##ID:003927## mcset $l "Bashkir" \ "Bashkir" ;# <-- NOT TRANSLATED YET ##ID:003928## mcset $l "Basque" \ "Basque" ;# <-- NOT TRANSLATED YET ##ID:003929## mcset $l "Belarusian" \ "Belarusian" ;# <-- NOT TRANSLATED YET ##ID:003930## mcset $l "Bengali" \ "Bengali" ;# <-- NOT TRANSLATED YET ##ID:003931## mcset $l "Bihari languages" \ "Bihari languages" ;# <-- NOT TRANSLATED YET ##ID:003932## mcset $l "Bislama" \ "Bislama" ;# <-- NOT TRANSLATED YET ##ID:003933## mcset $l "Bokmål, Norwegian" \ "Bokmål, Norwegian" ;# <-- NOT TRANSLATED YET ##ID:003934## mcset $l "Bosnian" \ "Bosnian" ;# <-- NOT TRANSLATED YET ##ID:003935## mcset $l "Breton" \ "Breton" ;# <-- NOT TRANSLATED YET ##ID:003936## mcset $l "Bulgarian" \ "Bulgarian" ;# <-- NOT TRANSLATED YET ##ID:003937## mcset $l "Burmese" \ "Burmese" ;# <-- NOT TRANSLATED YET ##ID:003938## mcset $l "Castilian" \ "Castilian" ;# <-- NOT TRANSLATED YET ##ID:003939## mcset $l "Catalan" \ "Catalan" ;# <-- NOT TRANSLATED YET ##ID:003940## mcset $l "Central Khmer" \ "Central Khmer" ;# <-- NOT TRANSLATED YET ##ID:003941## mcset $l "Chamorro" \ "Chamorro" ;# <-- NOT TRANSLATED YET ##ID:003942## mcset $l "Chechen" \ "Chechen" ;# <-- NOT TRANSLATED YET ##ID:003943## mcset $l "Chewa" \ "Chewa" ;# <-- NOT TRANSLATED YET ##ID:003944## mcset $l "Chichewa" \ "Chichewa" ;# <-- NOT TRANSLATED YET ##ID:003945## mcset $l "Chinese" \ "Chinese" ;# <-- NOT TRANSLATED YET ##ID:003946## mcset $l "Chuang" \ "Chuang" ;# <-- NOT TRANSLATED YET ##ID:003947## mcset $l "Church Slavic" \ "Church Slavic" ;# <-- NOT TRANSLATED YET ##ID:003948## mcset $l "Church Slavonic" \ "Church Slavonic" ;# <-- NOT TRANSLATED YET ##ID:003949## mcset $l "Chuvash" \ "Chuvash" ;# <-- NOT TRANSLATED YET ##ID:003950## mcset $l "Cornish" \ "Cornish" ;# <-- NOT TRANSLATED YET ##ID:003951## mcset $l "Corsican" \ "Corsican" ;# <-- NOT TRANSLATED YET ##ID:003952## mcset $l "Cree" \ "Cree" ;# <-- NOT TRANSLATED YET ##ID:003953## mcset $l "Croatian" \ "Croatian" ;# <-- NOT TRANSLATED YET ##ID:003954## mcset $l "Czech" \ "Czech" ;# <-- NOT TRANSLATED YET ##ID:003955## mcset $l "Danish" \ "Danish" ;# <-- NOT TRANSLATED YET ##ID:003956## mcset $l "Dhivehi" \ "Dhivehi" ;# <-- NOT TRANSLATED YET ##ID:003957## mcset $l "Divehi" \ "Divehi" ;# <-- NOT TRANSLATED YET ##ID:003958## mcset $l "Dutch" \ "Dutch" ;# <-- NOT TRANSLATED YET ##ID:003959## mcset $l "Dzongkha" \ "Dzongkha" ;# <-- NOT TRANSLATED YET ##ID:003960## mcset $l "English" \ "English" ;# <-- NOT TRANSLATED YET ##ID:003961## mcset $l "Esperanto" \ "Esperanto" ;# <-- NOT TRANSLATED YET ##ID:003962## mcset $l "Estonian" \ "Estonian" ;# <-- NOT TRANSLATED YET ##ID:003963## mcset $l "Ewe" \ "Ewe" ;# <-- NOT TRANSLATED YET ##ID:003964## mcset $l "Faroese" \ "Faroese" ;# <-- NOT TRANSLATED YET ##ID:003965## mcset $l "Fijian" \ "Fijian" ;# <-- NOT TRANSLATED YET ##ID:003966## mcset $l "Finnish" \ "Finnish" ;# <-- NOT TRANSLATED YET ##ID:003967## mcset $l "Flemish" \ "Flemish" ;# <-- NOT TRANSLATED YET ##ID:003968## mcset $l "French" \ "French" ;# <-- NOT TRANSLATED YET ##ID:003969## mcset $l "Fulah" \ "Fulah" ;# <-- NOT TRANSLATED YET ##ID:003970## mcset $l "Gaelic" \ "Gaelic" ;# <-- NOT TRANSLATED YET ##ID:003971## mcset $l "Galician" \ "Galician" ;# <-- NOT TRANSLATED YET ##ID:003972## mcset $l "Ganda" \ "Ganda" ;# <-- NOT TRANSLATED YET ##ID:003973## mcset $l "Georgian" \ "Georgian" ;# <-- NOT TRANSLATED YET ##ID:003974## mcset $l "German" \ "German" ;# <-- NOT TRANSLATED YET ##ID:003975## mcset $l "Gikuyu" \ "Gikuyu" ;# <-- NOT TRANSLATED YET ##ID:003976## mcset $l "Greek, Modern" \ "Greek, Modern" ;# <-- NOT TRANSLATED YET ##ID:003977## mcset $l "Greenlandic" \ "Greenlandic" ;# <-- NOT TRANSLATED YET ##ID:003978## mcset $l "Guarani" \ "Guarani" ;# <-- NOT TRANSLATED YET ##ID:003979## mcset $l "Gujarati" \ "Gujarati" ;# <-- NOT TRANSLATED YET ##ID:003980## mcset $l "Haitian" \ "Haitian" ;# <-- NOT TRANSLATED YET ##ID:003981## mcset $l "Haitian Creole" \ "Haitian Creole" ;# <-- NOT TRANSLATED YET ##ID:003982## mcset $l "Hausa" \ "Hausa" ;# <-- NOT TRANSLATED YET ##ID:003983## mcset $l "Hebrew" \ "Hebrew" ;# <-- NOT TRANSLATED YET ##ID:003984## mcset $l "Herero" \ "Herero" ;# <-- NOT TRANSLATED YET ##ID:003985## mcset $l "Hindi" \ "Hindi" ;# <-- NOT TRANSLATED YET ##ID:003986## mcset $l "Hiri Motu" \ "Hiri Motu" ;# <-- NOT TRANSLATED YET ##ID:003987## mcset $l "Hungarian" \ "Hungarian" ;# <-- NOT TRANSLATED YET ##ID:003988## mcset $l "Icelandic" \ "Icelandic" ;# <-- NOT TRANSLATED YET ##ID:003989## mcset $l "Ido" \ "Ido" ;# <-- NOT TRANSLATED YET ##ID:003990## mcset $l "Igbo" \ "Igbo" ;# <-- NOT TRANSLATED YET ##ID:003991## mcset $l "Indonesian" \ "Indonesian" ;# <-- NOT TRANSLATED YET ##ID:003992## mcset $l "Interlingue" \ "Interlingue" ;# <-- NOT TRANSLATED YET ##ID:003993## mcset $l "Inuktitut" \ "Inuktitut" ;# <-- NOT TRANSLATED YET ##ID:003994## mcset $l "Inupiaq" \ "Inupiaq" ;# <-- NOT TRANSLATED YET ##ID:003995## mcset $l "Irish" \ "Irish" ;# <-- NOT TRANSLATED YET ##ID:003996## mcset $l "Italian" \ "Italian" ;# <-- NOT TRANSLATED YET ##ID:003997## mcset $l "Japanese" \ "Japanese" ;# <-- NOT TRANSLATED YET ##ID:003998## mcset $l "Javanese" \ "Javanese" ;# <-- NOT TRANSLATED YET ##ID:003999## mcset $l "Kalaallisut" \ "Kalaallisut" ;# <-- NOT TRANSLATED YET ##ID:004000## mcset $l "Kannada" \ "Kannada" ;# <-- NOT TRANSLATED YET ##ID:004001## mcset $l "Kanuri" \ "Kanuri" ;# <-- NOT TRANSLATED YET ##ID:004002## mcset $l "Kashmiri" \ "Kashmiri" ;# <-- NOT TRANSLATED YET ##ID:004003## mcset $l "Kazakh" \ "Kazakh" ;# <-- NOT TRANSLATED YET ##ID:004004## mcset $l "Kikuyu" \ "Kikuyu" ;# <-- NOT TRANSLATED YET ##ID:004005## mcset $l "Kinyarwanda" \ "Kinyarwanda" ;# <-- NOT TRANSLATED YET ##ID:004006## mcset $l "Kirghiz" \ "Kirghiz" ;# <-- NOT TRANSLATED YET ##ID:004007## mcset $l "Komi" \ "Komi" ;# <-- NOT TRANSLATED YET ##ID:004008## mcset $l "Kongo" \ "Kongo" ;# <-- NOT TRANSLATED YET ##ID:004009## mcset $l "Korean" \ "Korean" ;# <-- NOT TRANSLATED YET ##ID:004010## mcset $l "Kuanyama" \ "Kuanyama" ;# <-- NOT TRANSLATED YET ##ID:004011## mcset $l "Kurdish" \ "Kurdish" ;# <-- NOT TRANSLATED YET ##ID:004012## mcset $l "Kwanyama" \ "Kwanyama" ;# <-- NOT TRANSLATED YET ##ID:004013## mcset $l "Kyrgyz" \ "Kyrgyz" ;# <-- NOT TRANSLATED YET ##ID:004014## mcset $l "Lao" \ "Lao" ;# <-- NOT TRANSLATED YET ##ID:004015## mcset $l "Latin" \ "Latin" ;# <-- NOT TRANSLATED YET ##ID:004016## mcset $l "Latvian" \ "Latvian" ;# <-- NOT TRANSLATED YET ##ID:004017## mcset $l "Letzeburgesch" \ "Letzeburgesch" ;# <-- NOT TRANSLATED YET ##ID:004018## mcset $l "Limburgan" \ "Limburgan" ;# <-- NOT TRANSLATED YET ##ID:004019## mcset $l "Limburger" \ "Limburger" ;# <-- NOT TRANSLATED YET ##ID:004020## mcset $l "Limburgish" \ "Limburgish" ;# <-- NOT TRANSLATED YET ##ID:004021## mcset $l "Lingala" \ "Lingala" ;# <-- NOT TRANSLATED YET ##ID:004022## mcset $l "Lithuanian" \ "Lithuanian" ;# <-- NOT TRANSLATED YET ##ID:004023## mcset $l "Luba-Katanga" \ "Luba-Katanga" ;# <-- NOT TRANSLATED YET ##ID:004024## mcset $l "Luxembourgish" \ "Luxembourgish" ;# <-- NOT TRANSLATED YET ##ID:004025## mcset $l "Macedonian" \ "Macedonian" ;# <-- NOT TRANSLATED YET ##ID:004026## mcset $l "Malagasy" \ "Malagasy" ;# <-- NOT TRANSLATED YET ##ID:004027## mcset $l "Malay" \ "Malay" ;# <-- NOT TRANSLATED YET ##ID:004028## mcset $l "Malayalam" \ "Malayalam" ;# <-- NOT TRANSLATED YET ##ID:004029## mcset $l "Maldivian" \ "Maldivian" ;# <-- NOT TRANSLATED YET ##ID:004030## mcset $l "Maltese" \ "Maltese" ;# <-- NOT TRANSLATED YET ##ID:004031## mcset $l "Manx" \ "Manx" ;# <-- NOT TRANSLATED YET ##ID:004032## mcset $l "Maori" \ "Maori" ;# <-- NOT TRANSLATED YET ##ID:004033## mcset $l "Marathi" \ "Marathi" ;# <-- NOT TRANSLATED YET ##ID:004034## mcset $l "Marshallese" \ "Marshallese" ;# <-- NOT TRANSLATED YET ##ID:004035## mcset $l "Moldavian" \ "Moldavian" ;# <-- NOT TRANSLATED YET ##ID:004036## mcset $l "Moldovan" \ "Moldovan" ;# <-- NOT TRANSLATED YET ##ID:004037## mcset $l "Mongolian" \ "Mongolian" ;# <-- NOT TRANSLATED YET ##ID:004038## mcset $l "Nauru" \ "Nauru" ;# <-- NOT TRANSLATED YET ##ID:004039## mcset $l "Navaho" \ "Navaho" ;# <-- NOT TRANSLATED YET ##ID:004040## mcset $l "Navajo" \ "Navajo" ;# <-- NOT TRANSLATED YET ##ID:004041## mcset $l "Ndebele, North" \ "Ndebele, North" ;# <-- NOT TRANSLATED YET ##ID:004042## mcset $l "Ndebele, South" \ "Ndebele, South" ;# <-- NOT TRANSLATED YET ##ID:004043## mcset $l "Ndonga" \ "Ndonga" ;# <-- NOT TRANSLATED YET ##ID:004044## mcset $l "Nepali" \ "Nepali" ;# <-- NOT TRANSLATED YET ##ID:004045## mcset $l "North Ndebele" \ "North Ndebele" ;# <-- NOT TRANSLATED YET ##ID:004046## mcset $l "Northern Sami" \ "Northern Sami" ;# <-- NOT TRANSLATED YET ##ID:004047## mcset $l "Norwegian" \ "Norwegian" ;# <-- NOT TRANSLATED YET ##ID:004048## mcset $l "Norwegian Bokmål" \ "Norwegian Bokmål" ;# <-- NOT TRANSLATED YET ##ID:004049## mcset $l "Norwegian Nynorsk" \ "Norwegian Nynorsk" ;# <-- NOT TRANSLATED YET ##ID:004050## mcset $l "Nuosu" \ "Nuosu" ;# <-- NOT TRANSLATED YET ##ID:004051## mcset $l "Nyanja" \ "Nyanja" ;# <-- NOT TRANSLATED YET ##ID:004052## mcset $l "Nynorsk, Norwegian" \ "Nynorsk, Norwegian" ;# <-- NOT TRANSLATED YET ##ID:004053## mcset $l "Occidental" \ "Occidental" ;# <-- NOT TRANSLATED YET ##ID:004054## mcset $l "Occitan" \ "Occitan" ;# <-- NOT TRANSLATED YET ##ID:004055## mcset $l "Ojibwa" \ "Ojibwa" ;# <-- NOT TRANSLATED YET ##ID:004056## mcset $l "Old Bulgarian" \ "Old Bulgarian" ;# <-- NOT TRANSLATED YET ##ID:004057## mcset $l "Old Church Slavonic" \ "Old Church Slavonic" ;# <-- NOT TRANSLATED YET ##ID:004058## mcset $l "Old Slavonic" \ "Old Slavonic" ;# <-- NOT TRANSLATED YET ##ID:004059## mcset $l "Oriya" \ "Oriya" ;# <-- NOT TRANSLATED YET ##ID:004060## mcset $l "Oromo" \ "Oromo" ;# <-- NOT TRANSLATED YET ##ID:004061## mcset $l "Ossetian" \ "Ossetian" ;# <-- NOT TRANSLATED YET ##ID:004062## mcset $l "Ossetic" \ "Ossetic" ;# <-- NOT TRANSLATED YET ##ID:004063## mcset $l "Pali" \ "Pali" ;# <-- NOT TRANSLATED YET ##ID:004064## mcset $l "Panjabi" \ "Panjabi" ;# <-- NOT TRANSLATED YET ##ID:004065## mcset $l "Pashto" \ "Pashto" ;# <-- NOT TRANSLATED YET ##ID:004066## mcset $l "Persian" \ "Persian" ;# <-- NOT TRANSLATED YET ##ID:004067## mcset $l "Polish" \ "Polish" ;# <-- NOT TRANSLATED YET ##ID:004068## mcset $l "Portuguese" \ "Portuguese" ;# <-- NOT TRANSLATED YET ##ID:004069## mcset $l "Punjabi" \ "Punjabi" ;# <-- NOT TRANSLATED YET ##ID:004070## mcset $l "Pushto" \ "Pushto" ;# <-- NOT TRANSLATED YET ##ID:004071## mcset $l "Quechua" \ "Quechua" ;# <-- NOT TRANSLATED YET ##ID:004072## mcset $l "Romanian" \ "Romanian" ;# <-- NOT TRANSLATED YET ##ID:004073## mcset $l "Romansh" \ "Romansh" ;# <-- NOT TRANSLATED YET ##ID:004074## mcset $l "Rundi" \ "Rundi" ;# <-- NOT TRANSLATED YET ##ID:004075## mcset $l "Russian" \ "Russian" ;# <-- NOT TRANSLATED YET ##ID:004076## mcset $l "Samoan" \ "Samoan" ;# <-- NOT TRANSLATED YET ##ID:004077## mcset $l "Sango" \ "Sango" ;# <-- NOT TRANSLATED YET ##ID:004078## mcset $l "Sanskrit" \ "Sanskrit" ;# <-- NOT TRANSLATED YET ##ID:004079## mcset $l "Sardinian" \ "Sardinian" ;# <-- NOT TRANSLATED YET ##ID:004080## mcset $l "Scottish Gaelic" \ "Scottish Gaelic" ;# <-- NOT TRANSLATED YET ##ID:004081## mcset $l "Serbian" \ "Serbian" ;# <-- NOT TRANSLATED YET ##ID:004082## mcset $l "Shona" \ "Shona" ;# <-- NOT TRANSLATED YET ##ID:004083## mcset $l "Sichuan Yi" \ "Sichuan Yi" ;# <-- NOT TRANSLATED YET ##ID:004084## mcset $l "Sindhi" \ "Sindhi" ;# <-- NOT TRANSLATED YET ##ID:004085## mcset $l "Sinhala" \ "Sinhala" ;# <-- NOT TRANSLATED YET ##ID:004086## mcset $l "Sinhalese" \ "Sinhalese" ;# <-- NOT TRANSLATED YET ##ID:004087## mcset $l "Slovak" \ "Slovak" ;# <-- NOT TRANSLATED YET ##ID:004088## mcset $l "Slovenian" \ "Slovenian" ;# <-- NOT TRANSLATED YET ##ID:004089## mcset $l "Somali" \ "Somali" ;# <-- NOT TRANSLATED YET ##ID:004090## mcset $l "Sotho, Southern" \ "Sotho, Southern" ;# <-- NOT TRANSLATED YET ##ID:004091## mcset $l "South Ndebele" \ "South Ndebele" ;# <-- NOT TRANSLATED YET ##ID:004092## mcset $l "Spanish" \ "Spanish" ;# <-- NOT TRANSLATED YET ##ID:004093## mcset $l "Sundanese" \ "Sundanese" ;# <-- NOT TRANSLATED YET ##ID:004094## mcset $l "Swahili" \ "Swahili" ;# <-- NOT TRANSLATED YET ##ID:004095## mcset $l "Swati" \ "Swati" ;# <-- NOT TRANSLATED YET ##ID:004096## mcset $l "Swedish" \ "Swedish" ;# <-- NOT TRANSLATED YET ##ID:004097## mcset $l "Tagalog" \ "Tagalog" ;# <-- NOT TRANSLATED YET ##ID:004098## mcset $l "Tahitian" \ "Tahitian" ;# <-- NOT TRANSLATED YET ##ID:004099## mcset $l "Tajik" \ "Tajik" ;# <-- NOT TRANSLATED YET ##ID:004100## mcset $l "Tamil" \ "Tamil" ;# <-- NOT TRANSLATED YET ##ID:004101## mcset $l "Tatar" \ "Tatar" ;# <-- NOT TRANSLATED YET ##ID:004102## mcset $l "Telugu" \ "Telugu" ;# <-- NOT TRANSLATED YET ##ID:004103## mcset $l "Thai" \ "Thai" ;# <-- NOT TRANSLATED YET ##ID:004104## mcset $l "Tibetan" \ "Tibetan" ;# <-- NOT TRANSLATED YET ##ID:004105## mcset $l "Tigrinya" \ "Tigrinya" ;# <-- NOT TRANSLATED YET ##ID:004106## mcset $l "Tonga" \ "Tonga" ;# <-- NOT TRANSLATED YET ##ID:004107## mcset $l "Tsonga" \ "Tsonga" ;# <-- NOT TRANSLATED YET ##ID:004108## mcset $l "Tswana" \ "Tswana" ;# <-- NOT TRANSLATED YET ##ID:004109## mcset $l "Turkish" \ "Turkish" ;# <-- NOT TRANSLATED YET ##ID:004110## mcset $l "Turkmen" \ "Turkmen" ;# <-- NOT TRANSLATED YET ##ID:004111## mcset $l "Twi" \ "Twi" ;# <-- NOT TRANSLATED YET ##ID:004112## mcset $l "Uighur" \ "Uighur" ;# <-- NOT TRANSLATED YET ##ID:004113## mcset $l "Ukrainian" \ "Ukrainian" ;# <-- NOT TRANSLATED YET ##ID:004114## mcset $l "Urdu" \ "Urdu" ;# <-- NOT TRANSLATED YET ##ID:004115## mcset $l "Uyghur" \ "Uyghur" ;# <-- NOT TRANSLATED YET ##ID:004116## mcset $l "Uzbek" \ "Uzbek" ;# <-- NOT TRANSLATED YET ##ID:004117## mcset $l "Valencian" \ "Valencian" ;# <-- NOT TRANSLATED YET ##ID:004118## mcset $l "Venda" \ "Venda" ;# <-- NOT TRANSLATED YET ##ID:004119## mcset $l "Vietnamese" \ "Vietnamese" ;# <-- NOT TRANSLATED YET ##ID:004120## mcset $l "Volapük" \ "Volapük" ;# <-- NOT TRANSLATED YET ##ID:004121## mcset $l "Walloon" \ "Walloon" ;# <-- NOT TRANSLATED YET ##ID:004122## mcset $l "Welsh" \ "Welsh" ;# <-- NOT TRANSLATED YET ##ID:004123## mcset $l "Western Frisian" \ "Western Frisian" ;# <-- NOT TRANSLATED YET ##ID:004124## mcset $l "Wolof" \ "Wolof" ;# <-- NOT TRANSLATED YET ##ID:004125## mcset $l "Xhosa" \ "Xhosa" ;# <-- NOT TRANSLATED YET ##ID:004126## mcset $l "Yiddish" \ "Yiddish" ;# <-- NOT TRANSLATED YET ##ID:004127## mcset $l "Yoruba" \ "Yoruba" ;# <-- NOT TRANSLATED YET ##ID:004128## mcset $l "Zhuang" \ "Zhuang" ;# <-- NOT TRANSLATED YET ##ID:004129## mcset $l "Zulu" \ "Zulu" ;# <-- NOT TRANSLATED YET # Names of countries ##ID:004130## mcset $l "Afghanistan" \ "Afghanistan" ;# <-- NOT TRANSLATED YET ##ID:004131## mcset $l "Åland Islands" \ "Åland Islands" ;# <-- NOT TRANSLATED YET ##ID:004132## mcset $l "Albania" \ "Albania" ;# <-- NOT TRANSLATED YET ##ID:004133## mcset $l "Algeria" \ "Algeria" ;# <-- NOT TRANSLATED YET ##ID:004134## mcset $l "American Samoa" \ "American Samoa" ;# <-- NOT TRANSLATED YET ##ID:004135## mcset $l "Andorra" \ "Andorra" ;# <-- NOT TRANSLATED YET ##ID:004136## mcset $l "Angola" \ "Angola" ;# <-- NOT TRANSLATED YET ##ID:004137## mcset $l "Anguilla" \ "Anguilla" ;# <-- NOT TRANSLATED YET ##ID:004138## mcset $l "Antarctica" \ "Antarctica" ;# <-- NOT TRANSLATED YET ##ID:004139## mcset $l "Antigua And Barbuda" \ "Antigua And Barbuda" ;# <-- NOT TRANSLATED YET ##ID:004140## mcset $l "Argentina" \ "Argentina" ;# <-- NOT TRANSLATED YET ##ID:004141## mcset $l "Armenia" \ "Armenia" ;# <-- NOT TRANSLATED YET ##ID:004142## mcset $l "Aruba" \ "Aruba" ;# <-- NOT TRANSLATED YET ##ID:004143## mcset $l "Australia" \ "Australia" ;# <-- NOT TRANSLATED YET ##ID:004144## mcset $l "Austria" \ "Austria" ;# <-- NOT TRANSLATED YET ##ID:004145## mcset $l "Azerbaijan" \ "Azerbaijan" ;# <-- NOT TRANSLATED YET ##ID:004146## mcset $l "Bahamas" \ "Bahamas" ;# <-- NOT TRANSLATED YET ##ID:004147## mcset $l "Bahrain" \ "Bahrain" ;# <-- NOT TRANSLATED YET ##ID:004148## mcset $l "Bangladesh" \ "Bangladesh" ;# <-- NOT TRANSLATED YET ##ID:004149## mcset $l "Barbados" \ "Barbados" ;# <-- NOT TRANSLATED YET ##ID:004150## mcset $l "Belarus" \ "Belarus" ;# <-- NOT TRANSLATED YET ##ID:004151## mcset $l "Belgium" \ "Belgium" ;# <-- NOT TRANSLATED YET ##ID:004152## mcset $l "Belize" \ "Belize" ;# <-- NOT TRANSLATED YET ##ID:004153## mcset $l "Benin" \ "Benin" ;# <-- NOT TRANSLATED YET ##ID:004154## mcset $l "Bermuda" \ "Bermuda" ;# <-- NOT TRANSLATED YET ##ID:004155## mcset $l "Bhutan" \ "Bhutan" ;# <-- NOT TRANSLATED YET ##ID:004156## mcset $l "Bolivia, Plurinational State Of" \ "Bolivia, Plurinational State Of" ;# <-- NOT TRANSLATED YET ##ID:004157## mcset $l "Bosnia And Herzegovina" \ "Bosnia And Herzegovina" ;# <-- NOT TRANSLATED YET ##ID:004158## mcset $l "Botswana" \ "Botswana" ;# <-- NOT TRANSLATED YET ##ID:004159## mcset $l "Bouvet Island" \ "Bouvet Island" ;# <-- NOT TRANSLATED YET ##ID:004160## mcset $l "Brazil" \ "Brazil" ;# <-- NOT TRANSLATED YET ##ID:004161## mcset $l "British Indian Ocean Territory" \ "British Indian Ocean Territory" ;# <-- NOT TRANSLATED YET ##ID:004162## mcset $l "Brunei Darussalam" \ "Brunei Darussalam" ;# <-- NOT TRANSLATED YET ##ID:004163## mcset $l "Bulgaria" \ "Bulgaria" ;# <-- NOT TRANSLATED YET ##ID:004164## mcset $l "Burkina Faso" \ "Burkina Faso" ;# <-- NOT TRANSLATED YET ##ID:004165## mcset $l "Burundi" \ "Burundi" ;# <-- NOT TRANSLATED YET ##ID:004166## mcset $l "Cambodia" \ "Cambodia" ;# <-- NOT TRANSLATED YET ##ID:004167## mcset $l "Cameroon" \ "Cameroon" ;# <-- NOT TRANSLATED YET ##ID:004168## mcset $l "Canada" \ "Canada" ;# <-- NOT TRANSLATED YET ##ID:004169## mcset $l "Cape Verde" \ "Cape Verde" ;# <-- NOT TRANSLATED YET ##ID:004170## mcset $l "Cayman Islands" \ "Cayman Islands" ;# <-- NOT TRANSLATED YET ##ID:004171## mcset $l "Central African Republic" \ "Central African Republic" ;# <-- NOT TRANSLATED YET ##ID:004172## mcset $l "Chad" \ "Chad" ;# <-- NOT TRANSLATED YET ##ID:004173## mcset $l "Chile" \ "Chile" ;# <-- NOT TRANSLATED YET ##ID:004174## mcset $l "China" \ "China" ;# <-- NOT TRANSLATED YET ##ID:004175## mcset $l "Christmas Island" \ "Christmas Island" ;# <-- NOT TRANSLATED YET ##ID:004176## mcset $l "Cocos (Keeling) Islands" \ "Cocos (Keeling) Islands" ;# <-- NOT TRANSLATED YET ##ID:004177## mcset $l "Colombia" \ "Colombia" ;# <-- NOT TRANSLATED YET ##ID:004178## mcset $l "Comoros" \ "Comoros" ;# <-- NOT TRANSLATED YET ##ID:004179## mcset $l "Congo" \ "Congo" ;# <-- NOT TRANSLATED YET ##ID:004180## mcset $l "Congo, The Democratic Republic Of The" \ "Congo, The Democratic Republic Of The" ;# <-- NOT TRANSLATED YET ##ID:004181## mcset $l "Cook Islands" \ "Cook Islands" ;# <-- NOT TRANSLATED YET ##ID:004182## mcset $l "Costa Rica" \ "Costa Rica" ;# <-- NOT TRANSLATED YET ##ID:004183## mcset $l "Côte D'Ivoire" \ "Côte D'Ivoire" ;# <-- NOT TRANSLATED YET ##ID:004184## mcset $l "Croatia" \ "Croatia" ;# <-- NOT TRANSLATED YET ##ID:004185## mcset $l "Cuba" \ "Cuba" ;# <-- NOT TRANSLATED YET ##ID:004186## mcset $l "Cyprus" \ "Cyprus" ;# <-- NOT TRANSLATED YET ##ID:004187## mcset $l "Czech Republic" \ "Czech Republic" ;# <-- NOT TRANSLATED YET ##ID:004188## mcset $l "Denmark" \ "Denmark" ;# <-- NOT TRANSLATED YET ##ID:004189## mcset $l "Djibouti" \ "Djibouti" ;# <-- NOT TRANSLATED YET ##ID:004190## mcset $l "Dominica" \ "Dominica" ;# <-- NOT TRANSLATED YET ##ID:004191## mcset $l "Dominican Republic" \ "Dominican Republic" ;# <-- NOT TRANSLATED YET ##ID:004192## mcset $l "Ecuador" \ "Ecuador" ;# <-- NOT TRANSLATED YET ##ID:004193## mcset $l "Egypt" \ "Egypt" ;# <-- NOT TRANSLATED YET ##ID:004194## mcset $l "El Salvador" \ "El Salvador" ;# <-- NOT TRANSLATED YET ##ID:004195## mcset $l "Equatorial Guinea" \ "Equatorial Guinea" ;# <-- NOT TRANSLATED YET ##ID:004196## mcset $l "Eritrea" \ "Eritrea" ;# <-- NOT TRANSLATED YET ##ID:004197## mcset $l "Estonia" \ "Estonia" ;# <-- NOT TRANSLATED YET ##ID:004198## mcset $l "Ethiopia" \ "Ethiopia" ;# <-- NOT TRANSLATED YET ##ID:004199## mcset $l "Falkland Islands (Malvinas)" \ "Falkland Islands (Malvinas)" ;# <-- NOT TRANSLATED YET ##ID:004200## mcset $l "Faroe Islands" \ "Faroe Islands" ;# <-- NOT TRANSLATED YET ##ID:004201## mcset $l "Fiji" \ "Fiji" ;# <-- NOT TRANSLATED YET ##ID:004202## mcset $l "Finland" \ "Finland" ;# <-- NOT TRANSLATED YET ##ID:004203## mcset $l "France" \ "France" ;# <-- NOT TRANSLATED YET ##ID:004204## mcset $l "French Guiana" \ "French Guiana" ;# <-- NOT TRANSLATED YET ##ID:004205## mcset $l "French Polynesia" \ "French Polynesia" ;# <-- NOT TRANSLATED YET ##ID:004206## mcset $l "French Southern Territories" \ "French Southern Territories" ;# <-- NOT TRANSLATED YET ##ID:004207## mcset $l "Gabon" \ "Gabon" ;# <-- NOT TRANSLATED YET ##ID:004208## mcset $l "Gambia" \ "Gambia" ;# <-- NOT TRANSLATED YET ##ID:004209## mcset $l "Georgia" \ "Georgia" ;# <-- NOT TRANSLATED YET ##ID:004210## mcset $l "Germany" \ "Germany" ;# <-- NOT TRANSLATED YET ##ID:004211## mcset $l "Ghana" \ "Ghana" ;# <-- NOT TRANSLATED YET ##ID:004212## mcset $l "Gibraltar" \ "Gibraltar" ;# <-- NOT TRANSLATED YET ##ID:004213## mcset $l "Greece" \ "Greece" ;# <-- NOT TRANSLATED YET ##ID:004214## mcset $l "Greenland" \ "Greenland" ;# <-- NOT TRANSLATED YET ##ID:004215## mcset $l "Grenada" \ "Grenada" ;# <-- NOT TRANSLATED YET ##ID:004216## mcset $l "Guadeloupe" \ "Guadeloupe" ;# <-- NOT TRANSLATED YET ##ID:004217## mcset $l "Guam" \ "Guam" ;# <-- NOT TRANSLATED YET ##ID:004218## mcset $l "Guatemala" \ "Guatemala" ;# <-- NOT TRANSLATED YET ##ID:004219## mcset $l "Guernsey" \ "Guernsey" ;# <-- NOT TRANSLATED YET ##ID:004220## mcset $l "Guinea" \ "Guinea" ;# <-- NOT TRANSLATED YET ##ID:004221## mcset $l "Guinea-Bissau" \ "Guinea-Bissau" ;# <-- NOT TRANSLATED YET ##ID:004222## mcset $l "Guyana" \ "Guyana" ;# <-- NOT TRANSLATED YET ##ID:004223## mcset $l "Haiti" \ "Haiti" ;# <-- NOT TRANSLATED YET ##ID:004224## mcset $l "Heard Island And Mcdonald Islands" \ "Heard Island And Mcdonald Islands" ;# <-- NOT TRANSLATED YET ##ID:004225## mcset $l "Holy See (Vatican City State)" \ "Holy See (Vatican City State)" ;# <-- NOT TRANSLATED YET ##ID:004226## mcset $l "Honduras" \ "Honduras" ;# <-- NOT TRANSLATED YET ##ID:004227## mcset $l "Hong Kong" \ "Hong Kong" ;# <-- NOT TRANSLATED YET ##ID:004228## mcset $l "Hungary" \ "Hungary" ;# <-- NOT TRANSLATED YET ##ID:004229## mcset $l "Iceland" \ "Iceland" ;# <-- NOT TRANSLATED YET ##ID:004230## mcset $l "India" \ "India" ;# <-- NOT TRANSLATED YET ##ID:004231## mcset $l "Indonesia" \ "Indonesia" ;# <-- NOT TRANSLATED YET ##ID:004232## mcset $l "Iran, Islamic Republic Of" \ "Iran, Islamic Republic Of" ;# <-- NOT TRANSLATED YET ##ID:004233## mcset $l "Iraq" \ "Iraq" ;# <-- NOT TRANSLATED YET ##ID:004234## mcset $l "Ireland" \ "Ireland" ;# <-- NOT TRANSLATED YET ##ID:004235## mcset $l "Isle Of Man" \ "Isle Of Man" ;# <-- NOT TRANSLATED YET ##ID:004236## mcset $l "Israel" \ "Israel" ;# <-- NOT TRANSLATED YET ##ID:004237## mcset $l "Italy" \ "Italy" ;# <-- NOT TRANSLATED YET ##ID:004238## mcset $l "Jamaica" \ "Jamaica" ;# <-- NOT TRANSLATED YET ##ID:004239## mcset $l "Japan" \ "Japan" ;# <-- NOT TRANSLATED YET ##ID:004240## mcset $l "Jersey" \ "Jersey" ;# <-- NOT TRANSLATED YET ##ID:004241## mcset $l "Jordan" \ "Jordan" ;# <-- NOT TRANSLATED YET ##ID:004242## mcset $l "Kazakhstan" \ "Kazakhstan" ;# <-- NOT TRANSLATED YET ##ID:004243## mcset $l "Kenya" \ "Kenya" ;# <-- NOT TRANSLATED YET ##ID:004244## mcset $l "Kiribati" \ "Kiribati" ;# <-- NOT TRANSLATED YET ##ID:004245## mcset $l "Korea, Democratic People'S Republic Of" \ "Korea, Democratic People'S Republic Of" ;# <-- NOT TRANSLATED YET ##ID:004246## mcset $l "Korea, Republic Of" \ "Korea, Republic Of" ;# <-- NOT TRANSLATED YET ##ID:004247## mcset $l "Kuwait" \ "Kuwait" ;# <-- NOT TRANSLATED YET ##ID:004248## mcset $l "Kyrgyzstan" \ "Kyrgyzstan" ;# <-- NOT TRANSLATED YET ##ID:004249## mcset $l "Lao People'S Democratic Republic" \ "Lao People'S Democratic Republic" ;# <-- NOT TRANSLATED YET ##ID:004250## mcset $l "Latvia" \ "Latvia" ;# <-- NOT TRANSLATED YET ##ID:004251## mcset $l "Lebanon" \ "Lebanon" ;# <-- NOT TRANSLATED YET ##ID:004252## mcset $l "Lesotho" \ "Lesotho" ;# <-- NOT TRANSLATED YET ##ID:004253## mcset $l "Liberia" \ "Liberia" ;# <-- NOT TRANSLATED YET ##ID:004254## mcset $l "Libyan Arab Jamahiriya" \ "Libyan Arab Jamahiriya" ;# <-- NOT TRANSLATED YET ##ID:004255## mcset $l "Liechtenstein" \ "Liechtenstein" ;# <-- NOT TRANSLATED YET ##ID:004256## mcset $l "Lithuania" \ "Lithuania" ;# <-- NOT TRANSLATED YET ##ID:004257## mcset $l "Luxembourg" \ "Luxembourg" ;# <-- NOT TRANSLATED YET ##ID:004258## mcset $l "Macao" \ "Macao" ;# <-- NOT TRANSLATED YET ##ID:004259## mcset $l "Macedonia, The Former Yugoslav Republic Of" \ "Macedonia, The Former Yugoslav Republic Of" ;# <-- NOT TRANSLATED YET ##ID:004260## mcset $l "Madagascar" \ "Madagascar" ;# <-- NOT TRANSLATED YET ##ID:004261## mcset $l "Malawi" \ "Malawi" ;# <-- NOT TRANSLATED YET ##ID:004262## mcset $l "Malaysia" \ "Malaysia" ;# <-- NOT TRANSLATED YET ##ID:004263## mcset $l "Maldives" \ "Maldives" ;# <-- NOT TRANSLATED YET ##ID:004264## mcset $l "Mali" \ "Mali" ;# <-- NOT TRANSLATED YET ##ID:004265## mcset $l "Malta" \ "Malta" ;# <-- NOT TRANSLATED YET ##ID:004266## mcset $l "Marshall Islands" \ "Marshall Islands" ;# <-- NOT TRANSLATED YET ##ID:004267## mcset $l "Martinique" \ "Martinique" ;# <-- NOT TRANSLATED YET ##ID:004268## mcset $l "Mauritania" \ "Mauritania" ;# <-- NOT TRANSLATED YET ##ID:004269## mcset $l "Mauritius" \ "Mauritius" ;# <-- NOT TRANSLATED YET ##ID:004270## mcset $l "Mayotte" \ "Mayotte" ;# <-- NOT TRANSLATED YET ##ID:004271## mcset $l "Mexico" \ "Mexico" ;# <-- NOT TRANSLATED YET ##ID:004272## mcset $l "Micronesia, Federated States Of" \ "Micronesia, Federated States Of" ;# <-- NOT TRANSLATED YET ##ID:004273## mcset $l "Moldova, Republic Of" \ "Moldova, Republic Of" ;# <-- NOT TRANSLATED YET ##ID:004274## mcset $l "Monaco" \ "Monaco" ;# <-- NOT TRANSLATED YET ##ID:004275## mcset $l "Mongolia" \ "Mongolia" ;# <-- NOT TRANSLATED YET ##ID:004276## mcset $l "Montenegro" \ "Montenegro" ;# <-- NOT TRANSLATED YET ##ID:004277## mcset $l "Montserrat" \ "Montserrat" ;# <-- NOT TRANSLATED YET ##ID:004278## mcset $l "Morocco" \ "Morocco" ;# <-- NOT TRANSLATED YET ##ID:004279## mcset $l "Mozambique" \ "Mozambique" ;# <-- NOT TRANSLATED YET ##ID:004280## mcset $l "Myanmar" \ "Myanmar" ;# <-- NOT TRANSLATED YET ##ID:004281## mcset $l "Namibia" \ "Namibia" ;# <-- NOT TRANSLATED YET ##ID:004282## mcset $l "Nepal" \ "Nepal" ;# <-- NOT TRANSLATED YET ##ID:004283## mcset $l "Netherlands" \ "Netherlands" ;# <-- NOT TRANSLATED YET ##ID:004284## mcset $l "Netherlands Antilles" \ "Netherlands Antilles" ;# <-- NOT TRANSLATED YET ##ID:004285## mcset $l "New Caledonia" \ "New Caledonia" ;# <-- NOT TRANSLATED YET ##ID:004286## mcset $l "New Zealand" \ "New Zealand" ;# <-- NOT TRANSLATED YET ##ID:004287## mcset $l "Nicaragua" \ "Nicaragua" ;# <-- NOT TRANSLATED YET ##ID:004288## mcset $l "Niger" \ "Niger" ;# <-- NOT TRANSLATED YET ##ID:004289## mcset $l "Nigeria" \ "Nigeria" ;# <-- NOT TRANSLATED YET ##ID:004290## mcset $l "Niue" \ "Niue" ;# <-- NOT TRANSLATED YET ##ID:004291## mcset $l "Norfolk Island" \ "Norfolk Island" ;# <-- NOT TRANSLATED YET ##ID:004292## mcset $l "Northern Mariana Islands" \ "Northern Mariana Islands" ;# <-- NOT TRANSLATED YET ##ID:004293## mcset $l "Norway" \ "Norway" ;# <-- NOT TRANSLATED YET ##ID:004294## mcset $l "Oman" \ "Oman" ;# <-- NOT TRANSLATED YET ##ID:004295## mcset $l "Pakistan" \ "Pakistan" ;# <-- NOT TRANSLATED YET ##ID:004296## mcset $l "Palau" \ "Palau" ;# <-- NOT TRANSLATED YET ##ID:004297## mcset $l "Palestinian Territory, Occupied" \ "Palestinian Territory, Occupied" ;# <-- NOT TRANSLATED YET ##ID:004298## mcset $l "Panama" \ "Panama" ;# <-- NOT TRANSLATED YET ##ID:004299## mcset $l "Papua New Guinea" \ "Papua New Guinea" ;# <-- NOT TRANSLATED YET ##ID:004300## mcset $l "Paraguay" \ "Paraguay" ;# <-- NOT TRANSLATED YET ##ID:004301## mcset $l "Peru" \ "Peru" ;# <-- NOT TRANSLATED YET ##ID:004302## mcset $l "Philippines" \ "Philippines" ;# <-- NOT TRANSLATED YET ##ID:004303## mcset $l "Pitcairn" \ "Pitcairn" ;# <-- NOT TRANSLATED YET ##ID:004304## mcset $l "Poland" \ "Poland" ;# <-- NOT TRANSLATED YET ##ID:004305## mcset $l "Portugal" \ "Portugal" ;# <-- NOT TRANSLATED YET ##ID:004306## mcset $l "Puerto Rico" \ "Puerto Rico" ;# <-- NOT TRANSLATED YET ##ID:004307## mcset $l "Qatar" \ "Qatar" ;# <-- NOT TRANSLATED YET ##ID:004308## mcset $l "Réunion" \ "Réunion" ;# <-- NOT TRANSLATED YET ##ID:004309## mcset $l "Romania" \ "Romania" ;# <-- NOT TRANSLATED YET ##ID:004310## mcset $l "Russian Federation" \ "Russian Federation" ;# <-- NOT TRANSLATED YET ##ID:004311## mcset $l "Rwanda" \ "Rwanda" ;# <-- NOT TRANSLATED YET ##ID:004312## mcset $l "Saint Barthélemy" \ "Saint Barthélemy" ;# <-- NOT TRANSLATED YET ##ID:004313## mcset $l "Saint Helena, Ascension And Tristan Da Cunha" \ "Saint Helena, Ascension And Tristan Da Cunha" ;# <-- NOT TRANSLATED YET ##ID:004314## mcset $l "Saint Kitts And Nevis" \ "Saint Kitts And Nevis" ;# <-- NOT TRANSLATED YET ##ID:004315## mcset $l "Saint Lucia" \ "Saint Lucia" ;# <-- NOT TRANSLATED YET ##ID:004316## mcset $l "Saint Martin" \ "Saint Martin" ;# <-- NOT TRANSLATED YET ##ID:004317## mcset $l "Saint Pierre And Miquelon" \ "Saint Pierre And Miquelon" ;# <-- NOT TRANSLATED YET ##ID:004318## mcset $l "Saint Vincent And The Grenadines" \ "Saint Vincent And The Grenadines" ;# <-- NOT TRANSLATED YET ##ID:004319## mcset $l "Samoa" \ "Samoa" ;# <-- NOT TRANSLATED YET ##ID:004320## mcset $l "San Marino" \ "San Marino" ;# <-- NOT TRANSLATED YET ##ID:004321## mcset $l "Sao Tome And Principe" \ "Sao Tome And Principe" ;# <-- NOT TRANSLATED YET ##ID:004322## mcset $l "Saudi Arabia" \ "Saudi Arabia" ;# <-- NOT TRANSLATED YET ##ID:004323## mcset $l "Senegal" \ "Senegal" ;# <-- NOT TRANSLATED YET ##ID:004324## mcset $l "Serbia" \ "Serbia" ;# <-- NOT TRANSLATED YET ##ID:004325## mcset $l "Seychelles" \ "Seychelles" ;# <-- NOT TRANSLATED YET ##ID:004326## mcset $l "Sierra Leone" \ "Sierra Leone" ;# <-- NOT TRANSLATED YET ##ID:004327## mcset $l "Singapore" \ "Singapore" ;# <-- NOT TRANSLATED YET ##ID:004328## mcset $l "Slovakia" \ "Slovakia" ;# <-- NOT TRANSLATED YET ##ID:004329## mcset $l "Slovenia" \ "Slovenia" ;# <-- NOT TRANSLATED YET ##ID:004330## mcset $l "Solomon Islands" \ "Solomon Islands" ;# <-- NOT TRANSLATED YET ##ID:004331## mcset $l "Somalia" \ "Somalia" ;# <-- NOT TRANSLATED YET ##ID:004332## mcset $l "South Africa" \ "South Africa" ;# <-- NOT TRANSLATED YET ##ID:004333## mcset $l "South Georgia And The South Sandwich Islands" \ "South Georgia And The South Sandwich Islands" ;# <-- NOT TRANSLATED YET ##ID:004334## mcset $l "Spain" \ "Spain" ;# <-- NOT TRANSLATED YET ##ID:004335## mcset $l "Sri Lanka" \ "Sri Lanka" ;# <-- NOT TRANSLATED YET ##ID:004336## mcset $l "Sudan" \ "Sudan" ;# <-- NOT TRANSLATED YET ##ID:004337## mcset $l "Suriname" \ "Suriname" ;# <-- NOT TRANSLATED YET ##ID:004338## mcset $l "Svalbard And Jan Mayen" \ "Svalbard And Jan Mayen" ;# <-- NOT TRANSLATED YET ##ID:004339## mcset $l "Swaziland" \ "Swaziland" ;# <-- NOT TRANSLATED YET ##ID:004340## mcset $l "Sweden" \ "Sweden" ;# <-- NOT TRANSLATED YET ##ID:004341## mcset $l "Switzerland" \ "Switzerland" ;# <-- NOT TRANSLATED YET ##ID:004342## mcset $l "Syrian Arab Republic" \ "Syrian Arab Republic" ;# <-- NOT TRANSLATED YET ##ID:004343## mcset $l "Taiwan, Province Of China" \ "Taiwan, Province Of China" ;# <-- NOT TRANSLATED YET ##ID:004344## mcset $l "Tajikistan" \ "Tajikistan" ;# <-- NOT TRANSLATED YET ##ID:004345## mcset $l "Tanzania, United Republic Of" \ "Tanzania, United Republic Of" ;# <-- NOT TRANSLATED YET ##ID:004346## mcset $l "Thailand" \ "Thailand" ;# <-- NOT TRANSLATED YET ##ID:004347## mcset $l "Timor-Leste" \ "Timor-Leste" ;# <-- NOT TRANSLATED YET ##ID:004348## mcset $l "Togo" \ "Togo" ;# <-- NOT TRANSLATED YET ##ID:004349## mcset $l "Tokelau" \ "Tokelau" ;# <-- NOT TRANSLATED YET ##ID:004350## mcset $l "Trinidad And Tobago" \ "Trinidad And Tobago" ;# <-- NOT TRANSLATED YET ##ID:004351## mcset $l "Tunisia" \ "Tunisia" ;# <-- NOT TRANSLATED YET ##ID:004352## mcset $l "Turkey" \ "Turkey" ;# <-- NOT TRANSLATED YET ##ID:004353## mcset $l "Turkmenistan" \ "Turkmenistan" ;# <-- NOT TRANSLATED YET ##ID:004354## mcset $l "Turks And Caicos Islands" \ "Turks And Caicos Islands" ;# <-- NOT TRANSLATED YET ##ID:004355## mcset $l "Tuvalu" \ "Tuvalu" ;# <-- NOT TRANSLATED YET ##ID:004356## mcset $l "Uganda" \ "Uganda" ;# <-- NOT TRANSLATED YET ##ID:004357## mcset $l "Ukraine" \ "Ukraine" ;# <-- NOT TRANSLATED YET ##ID:004358## mcset $l "United Arab Emirates" \ "United Arab Emirates" ;# <-- NOT TRANSLATED YET ##ID:004359## mcset $l "United Kingdom" \ "United Kingdom" ;# <-- NOT TRANSLATED YET ##ID:004360## mcset $l "United States" \ "United States" ;# <-- NOT TRANSLATED YET ##ID:004361## mcset $l "United States Minor Outlying Islands" \ "United States Minor Outlying Islands" ;# <-- NOT TRANSLATED YET ##ID:004362## mcset $l "Uruguay" \ "Uruguay" ;# <-- NOT TRANSLATED YET ##ID:004363## mcset $l "Uzbekistan" \ "Uzbekistan" ;# <-- NOT TRANSLATED YET ##ID:004364## mcset $l "Vanuatu" \ "Vanuatu" ;# <-- NOT TRANSLATED YET ##ID:004365## mcset $l "Vatican City State" \ "Vatican City State" ;# <-- NOT TRANSLATED YET ##ID:004366## mcset $l "Venezuela, Bolivarian Republic Of" \ "Venezuela, Bolivarian Republic Of" ;# <-- NOT TRANSLATED YET ##ID:004367## mcset $l "Viet Nam" \ "Viet Nam" ;# <-- NOT TRANSLATED YET ##ID:004368## mcset $l "Virgin Islands, British" \ "Virgin Islands, British" ;# <-- NOT TRANSLATED YET ##ID:004369## mcset $l "Virgin Islands, U.S." \ "Virgin Islands, U.S." ;# <-- NOT TRANSLATED YET ##ID:004370## mcset $l "Wallis And Futuna" \ "Wallis And Futuna" ;# <-- NOT TRANSLATED YET ##ID:004371## mcset $l "Western Sahara" \ "Western Sahara" ;# <-- NOT TRANSLATED YET ##ID:004372## mcset $l "Yemen" \ "Yemen" ;# <-- NOT TRANSLATED YET ##ID:004373## mcset $l "Zambia" \ "Zambia" ;# <-- NOT TRANSLATED YET ##ID:004374## mcset $l "Zimbabwe" \ "Zimbabwe" ;# <-- NOT TRANSLATED YET } # lcd_hd44780.tcl # ============================================================================== namespace eval LcdHD44780 { ##ID:004375## mcset $l "LCD display" \ "LCD 显示屏" ; ##ID:004376## mcset $l "NOTE" \ "NOTE" ;# <-- NOT TRANSLATED YET ##ID:004377## mcset $l "BIT" \ "BIT" ;# <-- NOT TRANSLATED YET ##ID:004378## mcset $l "PORT" \ "PORT" ;# <-- NOT TRANSLATED YET ##ID:004379## mcset $l "Set font" \ "设置字体" ##ID:004380## mcset $l "ROM code A00" \ "ROM code A00" ;# <-- NOT TRANSLATED YET ##ID:004381## mcset $l "ROM code A02" \ "ROM code A02" ;# <-- NOT TRANSLATED YET ##ID:004382## mcset $l "Set character size" \ "设置字符大小" ##ID:004383## mcset $l "hd44780" \ "hd44780" ;# <-- NOT TRANSLATED YET ##ID:004384## mcset $l "Disable delays" \ "禁止延迟" ##ID:004385## mcset $l "Ignore errors" \ "忽略错误" ##ID:004386## mcset $l "Show HD44780 log" \ "显示 HD44780 日志" ##ID:004387## mcset $l "Display the log of events which are currently happening in the simulated HD44780 chip" \ "Display the log of events which are currently happening in the simulated HD44780 chip" ;# <-- NOT TRANSLATED YET ##ID:004388## mcset $l "Show CGROM" \ "Show CGROM" ;# <-- NOT TRANSLATED YET ##ID:004389## mcset $l "Display content of HD44780 Character Generator ROM" \ "Display content of HD44780 Character Generator ROM" ;# <-- NOT TRANSLATED YET ##ID:004390## mcset $l "Show CGRAM" \ "Show CGRAM" ;# <-- NOT TRANSLATED YET ##ID:004391## mcset $l "Display content of HD44780 Character Generator RAM" \ "Display content of HD44780 Character Generator RAM" ;# <-- NOT TRANSLATED YET ##ID:004392## mcset $l "Show DDRAM" \ "Show DDRAM" ;# <-- NOT TRANSLATED YET ##ID:004393## mcset $l "Display content of HD44780 Display data RAM" \ "Display content of HD44780 Display data RAM" ;# <-- NOT TRANSLATED YET ##ID:004394## mcset $l "Reset HD44780" \ "复位 HD44780" ##ID:004395## mcset $l "Reinitialize the simulated HD44780, but do not affect DDRAM and CGRAM" \ "Reinitialize the simulated HD44780, but do not affect DDRAM and CGRAM" ;# <-- NOT TRANSLATED YET ##ID:004396## mcset $l "Clear DDRAM & CGRAM" \ "Clear DDRAM & CGRAM" ;# <-- NOT TRANSLATED YET ##ID:004397## mcset $l "Clear the entire Display Data RAM and Character Generator RAM" \ "Clear the entire Display Data RAM and Character Generator RAM" ;# <-- NOT TRANSLATED YET ##ID:004398## mcset $l "Show help" \ "显示帮助" ##ID:004399## mcset $l "Show brief help" \ "Show brief help" ;# <-- NOT TRANSLATED YET ##ID:004400## mcset $l "Save configuration" \ "保存设置" ##ID:004401## mcset $l "Save configuration into a file" \ "保存设置至文件" ##ID:004402## mcset $l "Load configuration" \ "加载配置" ##ID:004403## mcset $l "Load configuration from a file" \ "从文件加载配置" ; ##ID:004404## mcset $l "Cursor blinking" \ "光标闪烁" ##ID:004405## mcset $l "Accompanies display shift" \ "Accompanies display shift" ;# <-- NOT TRANSLATED YET ##ID:004406## mcset $l "Display ON/OFF" \ "显示 开/关" ##ID:004407## mcset $l "Cursor ON/OFF" \ "光标 开/关" ##ID:004408## mcset $l "2 lines display / 1 line display" \ "2 lines display / 1 line display" ;# <-- NOT TRANSLATED YET ##ID:004409## mcset $l "5 × 10 dots / 5 × 8 dots" \ "5 × 10 dots / 5 × 8 dots" ;# <-- NOT TRANSLATED YET ##ID:004410## mcset $l "Increment AC / Decrement AC" \ "Increment AC / Decrement AC" ;# <-- NOT TRANSLATED YET ##ID:004411## mcset $l "8-bit data transfer / 4-bit data transfer" \ "8-bit data transfer / 4-bit data transfer" ;# <-- NOT TRANSLATED YET ##ID:004412## mcset $l "One More Nibble to transfer / data transfer complete" \ "One More Nibble to transfer / data transfer complete" ;# <-- NOT TRANSLATED YET ##ID:004413## mcset $l "Internally operating / Instructions acceptable" \ "Internally operating / Instructions acceptable" ;# <-- NOT TRANSLATED YET ##ID:004414## mcset $l "Show or hide the bottom part" \ "Show or hide the bottom part" ;# <-- NOT TRANSLATED YET ##ID:004415## mcset $l "Show or hide the right part" \ "Show or hide the right part" ;# <-- NOT TRANSLATED YET ##ID:004416## mcset $l "Turn HW simulation on/off" \ "Turn HW simulation on/off" ;# <-- NOT TRANSLATED YET ##ID:004417## mcset $l "Configure" \ "配置" ##ID:004418## mcset $l "Shift:" \ "Shift:" ;# <-- NOT TRANSLATED YET ##ID:004419## mcset $l "Close" \ "关闭" ##ID:004420## mcset $l "Cursor: " \ "光标: " ##ID:004421## mcset $l "HD44780 Character Generator ROM (ROM Code: A0%d) - MCU 8051 IDE" \ "HD44780 Character Generator ROM (ROM Code: A0%d) - MCU 8051 IDE" ;# <-- NOT TRANSLATED YET ##ID:004422## mcset $l "Clear log" \ "清除日志" ##ID:004423## mcset $l "HD44780 log - MCU 8051 IDE" \ "HD44780 日志 - MCU 8051 IDE" ##ID:004424## mcset $l "\[INFO\] " \ "\[信息\] " ##ID:004425## mcset $l "\[WARNING\] " \ "\[警告\] " ##ID:004426## mcset $l "\[ERROR\] " \ "\[错误\] " ##ID:004427## mcset $l "HD44780 ERROR" \ "HD44780 错误" ##ID:004428## mcset $l "Received instruction: %s" \ "Received instruction: %s" ;# <-- NOT TRANSLATED YET ##ID:004429## mcset $l "Clear Display" \ "Clear Display" ;# <-- NOT TRANSLATED YET ##ID:004430## mcset $l "Return Home" \ "Return Home" ;# <-- NOT TRANSLATED YET ##ID:004431## mcset $l "Entry Mode Set" \ "Entry Mode Set" ;# <-- NOT TRANSLATED YET ##ID:004432## mcset $l "Display On Off Control" \ "Display On Off Control" ;# <-- NOT TRANSLATED YET ##ID:004433## mcset $l "Cursor Or Display Shift" \ "Cursor Or Display Shift" ;# <-- NOT TRANSLATED YET ##ID:004434## mcset $l "Function Set" \ "Function Set" ;# <-- NOT TRANSLATED YET ##ID:004435## mcset $l "Set CGRAM Address" \ "Set CGRAM Address" ;# <-- NOT TRANSLATED YET ##ID:004436## mcset $l "Set DDRAM Address" \ "Set DDRAM Address" ;# <-- NOT TRANSLATED YET ##ID:004437## mcset $l "Read Busy Flag & Address" \ "Read Busy Flag & Address" ;# <-- NOT TRANSLATED YET ##ID:004438## mcset $l "Write Data To CG Or DDRAM" \ "Write Data To CG Or DDRAM" ;# <-- NOT TRANSLATED YET ##ID:004439## mcset $l "Neither \"Set DDRAM Address\" nor \"Set CGRAM Address\" instruction was issued prior to the write instruction" \ "Neither \"Set DDRAM Address\" nor \"Set CGRAM Address\" instruction was issued prior to the write instruction" ;# <-- NOT TRANSLATED YET ##ID:004440## mcset $l "Read Data From CG Or DDRAM" \ "Read Data From CG Or DDRAM" ;# <-- NOT TRANSLATED YET ##ID:004441## mcset $l "Neither \"Set DDRAM Address\" nor \"Set CGRAM Address\" instruction was issued prior to the read instruction" \ "Neither \"Set DDRAM Address\" nor \"Set CGRAM Address\" instruction was issued prior to the read instruction" ;# <-- NOT TRANSLATED YET ##ID:004442## mcset $l "Controller is busy, unable to execute requested instruction." \ "Controller is busy, unable to execute requested instruction." ;# <-- NOT TRANSLATED YET ##ID:004443## mcset $l "Commencing execution, this action will take %d micro-seonds to comply." \ "Commencing execution, this action will take %d micro-seonds to comply." ;# <-- NOT TRANSLATED YET ##ID:004444## mcset $l "Operation finished" \ "操作完成" ##ID:004445## mcset $l "Skipping delay" \ "跳过延迟" ##ID:004446## mcset $l "Device reset" \ "复位设备" ##ID:004447## mcset $l "DDRAM address is too high: %d" \ "DDRAM address is too high: %d" ;# <-- NOT TRANSLATED YET ##ID:004448## mcset $l "CGRAM address is too high: %d" \ "CGRAM address is too high: %d" ;# <-- NOT TRANSLATED YET ##ID:004449## mcset $l "Value is too high: 0x%X" \ "Value is too high: 0x%X" ;# <-- NOT TRANSLATED YET ##ID:004450## mcset $l "Input is corrupted: %s" \ "Input is corrupted: %s" ;# <-- NOT TRANSLATED YET ##ID:004451## mcset $l "Invalid instruction: %2Xh" \ "无效的指令: %2Xh" ##ID:004452## mcset $l "Received an invalid input on signal %s" \ "收到无效的信号输入 %s" ##ID:004453## mcset $l "LCD display controled by HD44780 driver\n\n" \ "LCD HD44780 显示屏驱动程序\n\n" ##ID:004454## mcset $l "Starting the HD44780 boot-up sequence." \ "Starting the HD44780 boot-up sequence." ;# <-- NOT TRANSLATED YET ##ID:004455## mcset $l "Receiving the Most Significant Nibble (%02Xh)" \ "Receiving the Most Significant Nibble (%02Xh)" ;# <-- NOT TRANSLATED YET ##ID:004456## mcset $l "Receiving the Less Significant Nibble (%02Xh)" \ "Receiving the Less Significant Nibble (%02Xh)" ;# <-- NOT TRANSLATED YET } mcu8051ide-1.4.7/translations/languages.txt0000644000175000017500000000043212067167647021326 0ustar milleniummillenium# # This file contains names of languages corresponding to their codes # # Encoding: UTF-8 # End of line character: LF (0x0a) (\n) (^J) # "en" "English language" # English "cs" "Český jazyk" # Czech "ru" "Pусский язык" # Russian "zh_CN" "简体中文" # chinese mcu8051ide-1.4.7/translations/README0000644000175000017500000000415412067167647017504 0ustar milleniummilleniumThis directory contains translation files for the MCU 8051 IDE. == What is this directory good for == Each file is named after the locale. The locale is specified by a locale string. The locale string consists of a language code, an optional country code, and an optional system-specific code, each separated by `_'. The country and language codes are specified in standards ISO-639 and ISO-3166. For example, the locale `en' specifies English and `en_US' specifies U.S. English. Please see file template.txt for more details. Also note that a complete translation comprise also translation of this file: "../data/tips.xml", documentation translation is also possible. == Note to the Tip of the day == Some people wonder why the Tip of the day stops working when they start using their translation, well, the cause of this is that the tips are stored file named tips.xml, the file is located in the "data" directory located in that directory where you have installed the IDE, on Linux it's usually "/usr/share/mcu8051ide/data", on Windows it's usually "C:\Program Files\MCU 8051 IDE\data". The problem is that the tips won't work until they are all translated, or rewritten, however there is a simple solution, just copy all the tips in English and change "" to "". This solution apparently doesn't do anything else than making the tips in English appear as they have been already translated, so you get the Tip of the day working again but with English tips in it. == The translation manipulation tool == You should see file named tool.tcl in this directory, it's a tool which might help with maintenance of the translation files. Since the template.txt might get updated every now and then, we need to keep the translation files updated as well, the tool.tcl was written in order to make that a lot easier, here are the instructions how to use it: - (This applies to Windows users only.) Make sure you can run Tcl scripts, you might need to install some Tcl distribution, e.g. ActiveTcl. - Go to this directory. - Run "./tool.tcl -m my_translation_file.msg". - Wait a moment, and it's done. :) mcu8051ide-1.4.7/lib/0000755000175000017500000000000012067167647014645 5ustar milleniummilleniummcu8051ide-1.4.7/lib/custom_command.tcl0000644000175000017500000000547512067167647020374 0ustar milleniummillenium#!/bin/sh # the next line restarts using wish \ exec tclsh "$0" "$@" # Part of MCU 8051 IDE ( http://mcu8051ide.sf.net ) ############################################################################ # Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012 by Martin Ošmera # # martin.osmera@gmail.com # # # # This program is free software; you can redistribute it and#or modify # # it under the terms of the GNU General Public License as published by # # the Free Software Foundation; either version 2 of the License, or # # (at your option) any later version. # # # # This program is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU General Public License for more details. # # # # You should have received a copy of the GNU General Public License # # along with this program; if not, write to the # # Free Software Foundation, Inc., # # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # ############################################################################ # -------------------------------------------------------------------------- # DESCRIPTION # Execute custom command # USAGE: # set pid [exec -- tclsh custom_command.tcl [tk appname] $custom_command_NUM($cmd_num) &] # -------------------------------------------------------------------------- # Initialize encoding system {utf-8} package require Tk wm withdraw . wm command . "$argv0 $argv" wm client . [info hostname] ## Perform secure send command # Secure means that it will not crash or something like that in case of any errors. # But instead it will popup an error message to the user (Tk dialog). # @parm List args - Arguments for the send command # @return void proc secure_send args { if {[catch { eval "send $args" } result]} then { puts stderr "Unknown IO Error :: $result" return 1 } else { return 1 } } # Load command from standard input set cmd {} while {![eof stdin]} { append cmd [gets stdin] "\n" } # Execute loaded command if {[catch {exec bash << $cmd} result] && ![string equal $::errorCode NONE]} { secure_send [lindex $argv 0] ::X::custom_cmd_error [lindex $argv 1] "{" [regsub -all {[\{\}]} $result {\\&}] "}" } else { secure_send [lindex $argv 0] ::X::custom_cmd_finish [lindex $argv 1] "{" [regsub -all {[\{\}]} $result {\\&}] "}" } exit 0 mcu8051ide-1.4.7/lib/receive_and_print.tcl0000644000175000017500000000721212067167647021033 0ustar milleniummillenium#!/bin/sh # the next line restarts using wish \ exec tclsh "$0" "$@" # Part of MCU 8051 IDE ( http://mcu8051ide.sf.net ) ############################################################################ # Copyright (C) 2011 by Martin Ošmera # # martin.osmera@gmail.com # # # # This program is free software; you can redistribute it and#or modify # # it under the terms of the GNU General Public License as published by # # the Free Software Foundation; either version 2 of the License, or # # (at your option) any later version. # # # # This program is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU General Public License for more details. # # # # You should have received a copy of the GNU General Public License # # along with this program; if not, write to the # # Free Software Foundation, Inc., # # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # ############################################################################ # >>> File inclusion guard if { ! [ info exists _RECEIVE_AND_PRINT_TCL ] } { set _RECEIVE_AND_PRINT_TCL _ # <<< File inclusion guard # -------------------------------------------------------------------------- # DESCRIPTION # Send input read the send command to stdout # # USAGE: # set pid [exec -- tclsh receive_and_print.tcl [tk appname] final_cmd | some_command ?args? &] # * pid - Process identifier of $some_command # * args - Arguments for $some_command # * final_cmd - Command in local Tcl program to execute once when the script exits # # Once the receive_and_print (RAP) is started you can invoke ``print_line'' command available in it # to print any string to stdout. The command takes any number of arguments and prints them all into # the standard output. # -------------------------------------------------------------------------- # Initialize encoding system {utf-8} package require Tk wm withdraw . wm command . "$argv0 $argv" wm client . [info hostname] # Parse agruments set source_app [lindex $argv 0] set final_cmd [lindex $argv 1] unset argv ## Determinate the host OS set ::MICROSOFT_WINDOWS 0 if {[string first {Windows} ${tcl_platform(os)}] != -1} { # Note: # Microsoft Windows is NOT a POSIX system and because of that we need # to do some workarounds here in order to make the IDE functional there. set ::MICROSOFT_WINDOWS 1 } # Load dde - Dynamic Data Exchange on Microsoft Windows if {$::MICROSOFT_WINDOWS} { package require dde } ## Perform secure send command # Secure means that it will not crash or something like that in case of any errors. # But instead it will pop-up an error message to the user (Tk dialog). # @parm List args - Arguments for the send command # @return void proc secure_send args { if {[catch { eval "send $args" } result]} then { puts stderr "Unknown IO Error :: $result" return 1 } else { return 1 } } proc print_line {args} { puts $args } if {!${::MICROSOFT_WINDOWS}} { secure_send $source_app $final_cmd "{[tk appname]}" } else { dde eval $source_app $final_cmd "{[tk appname]}" } # >>> File inclusion guard } # <<< File inclusion guard mcu8051ide-1.4.7/lib/external_command.tcl0000644000175000017500000001041512067167647020672 0ustar milleniummillenium#!/bin/sh # the next line restarts using wish \ exec tclsh "$0" "$@" # Part of MCU 8051 IDE ( http://mcu8051ide.sf.net ) ############################################################################ # Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012 by Martin Ošmera # # martin.osmera@gmail.com # # # # This program is free software; you can redistribute it and#or modify # # it under the terms of the GNU General Public License as published by # # the Free Software Foundation; either version 2 of the License, or # # (at your option) any later version. # # # # This program is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU General Public License for more details. # # # # You should have received a copy of the GNU General Public License # # along with this program; if not, write to the # # Free Software Foundation, Inc., # # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # ############################################################################ # >>> File inclusion guard if { ! [ info exists _EXTERNAL_COMMAND_TCL ] } { set _EXTERNAL_COMMAND_TCL _ # <<< File inclusion guard # -------------------------------------------------------------------------- # DESCRIPTION # Send input read from strandard input to certain Tk application via # send command # # USAGE: # set pid [exec -- some_command ?args? |& tclsh external_command.tcl [tk appname] final_cmd line_cmd &] # * pid - Process indentifier of $some_command # * some_command - Command which output should be couth # * args - Arguments for $some_command # * final_cmd - Command in local Tcl program to execute once when $some_command finish # * line_cmd - Command in local Tcl program to execute everytime when $some_command outputs one line # -------------------------------------------------------------------------- # Initialize encoding system {utf-8} package require Tk wm withdraw . wm command . "$argv0 $argv" wm client . [info hostname] # Parse agruments set target_app [lindex $argv 0] set final_cmd [lindex $argv 1] set line_cmd [lindex $argv 2] unset argv ## Determinate the host OS set ::MICROSOFT_WINDOWS 0 if {[string first {Windows} ${tcl_platform(os)}] != -1} { # Note: # Microsoft Windows is NOT a POSIX system and because of that we need # to do some workarounds here in order to make the IDE functional there. set ::MICROSOFT_WINDOWS 1 } # Load dde - Dynamic Data Exchange on Microsoft Windows if {$::MICROSOFT_WINDOWS} { package require dde } ## Perform secure send command # Secure means that it will not crash or something like that in case of any errors. # But instead it will popup an error message to the user (Tk dialog). # @parm List args - Arguments for the send command # @return void proc secure_send args { if {[catch { eval "send $args" } result]} then { puts stderr "Unknown IO Error :: $result" return 1 } else { return 1 } } ## Read standard input # All output will be sended at once if {$line_cmd == {}} { set result {} while {![eof stdin]} { append result [gets stdin] "\n" } if {!${::MICROSOFT_WINDOWS}} { secure_send $target_app $final_cmd "{" [regsub -all {[\{\}]} $result {\\&}] "}" } else { dde eval $target_app $final_cmd "{ [regsub -all {[\{\}]} $result {\\&}] }" } # Output will be sended line by line as executed command generates it } else { while {![eof stdin]} { if {!${::MICROSOFT_WINDOWS}} { secure_send $target_app $line_cmd "{" [regsub -all {[\{\}]} [gets stdin] {\\&}] "}" } else { dde eval $target_app $line_cmd "{ [regsub -all {[\{\}]} [gets stdin] {\\&}] }" } } if {!${::MICROSOFT_WINDOWS}} { secure_send $target_app $final_cmd } else { dde eval $target_app $final_cmd } } exit 0 # >>> File inclusion guard } # <<< File inclusion guard mcu8051ide-1.4.7/lib/editor/0000755000175000017500000000000012067167647016133 5ustar milleniummilleniummcu8051ide-1.4.7/lib/editor/spell_check.tcl0000644000175000017500000012452312067167647021122 0ustar milleniummillenium#!/usr/bin/tclsh # Part of MCU 8051 IDE ( http://mcu8051ide.sf.net ) ############################################################################ # Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012 by Martin Ošmera # # martin.osmera@gmail.com # # # # This program is free software; you can redistribute it and#or modify # # it under the terms of the GNU General Public License as published by # # the Free Software Foundation; either version 2 of the License, or # # (at your option) any later version. # # # # This program is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU General Public License for more details. # # # # You should have received a copy of the GNU General Public License # # along with this program; if not, write to the # # Free Software Foundation, Inc., # # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # ############################################################################ # >>> File inclusion guard if { ! [ info exists _SPELL_CHECK_TCL ] } { set _SPELL_CHECK_TCL _ # <<< File inclusion guard # -------------------------------------------------------------------------- # DESCRIPTION # Spell checker interface used by the source code editor. # # Used spell checker is Hunspell. # # # COMMUNICATION CONNECTIONS WITH HUNSPELL: # ----------------------------------------- # # +-------------------+ (4) +----------+ (5) +------------------+ # | receive_and_print | | | Hunspell | | | external_command | # | (RAP) | ---> | | ---> | | # +-------------------+ +----------+ +------------------+ # ^ |--(2) |--3 # (1)--| v v # +--------------------------------------------------------+ # | spell_check | # +--------------------------------------------------------+ # # 1: Send a word to check along with commands to execute in case of correct and wrong spelling # 2: Receive the identifier for IPC with the RAP (variable spellchecker_RAP_ID) # 3: Receive response from the Hunspell via IPC # 4: Send a word to check to the Hunspell via a pipe # 5: Receive response from the Hunspell via a pipe # # -------------------------------------------------------------------------- ## COMMON common spellchecker_enabled 0 ;# Bool: Flag spell checking enabled common spellchecker_dictionary {} ;# String: Dictionary to use (e.g. en_US or cs_CZ) common spellchecker_process_pid [list] ;# List of Ints: Process identifiers of the spell checker and support processes common spellchecker_command_LIFO [list] ;# List: LIFO for commands invoked by spell checker {correct_spelling_cmd wrong_spelling_cmd} common spellchecker_RAP_ID {} ;# String: Application name of ``receive_and_print'' for IPC common spellchecker_attempts_to_restart 0 ;# Int: Number of failed attempts to restart the spell checker process common spellchecker_started_flag ;# None: When this variable is set that means that the spell checker process has been started common spellchecker_start_failed 0 ;# Bool: Flag spellchecker_started_flag was set but the spell checker process was not actually started common spellchecker_start_timer {} ;# AfterTimer: Watch dog timer for start of of the spell checker process common available_dictionaries [list] ;# List of Strings: Dictionaries available to the Hunspell common hunspell_process {} ;# Channel: Hunspell process invoked by command open in order to gain list of dictionaries ## PRIVATE private variable spellcheck_line_pre {} ;# String: Content of the line where change_detected_pre was performed private variable spellcheck_line_number {} ;# Int: Number of the last line where change_detected_pre was performed, see spellcheck_check_all private variable spellcheck_lock 0 ;# Bool: Inhibit method ``spellcheck_check_all'' ## COMMON ## List: Language codes and language names according to: ISO-639-1 # Format: # { # { Language_Name Language_Code } # ... # } common LANGUAGE_CODES_AND_NAMES { {{Abkhazian} {ab}} {{Afar} {aa}} {{Afrikaans} {af}} {{Akan} {ak}} {{Albanian} {sq}} {{Amharic} {am}} {{Arabic} {ar}} {{Aragonese} {an}} {{Armenian} {hy}} {{Assamese} {as}} {{Avaric} {av}} {{Avestan} {ae}} {{Aymara} {ay}} {{Azerbaijani} {az}} {{Bambara} {bm}} {{Bashkir} {ba}} {{Basque} {eu}} {{Belarusian} {be}} {{Bengali} {bn}} {{Bihari languages} {bh}} {{Bislama} {bi}} {{Bokmål, Norwegian} {nb}} {{Bosnian} {bs}} {{Breton} {br}} {{Bulgarian} {bg}} {{Burmese} {my}} {{Castilian} {es}} {{Catalan} {ca}} {{Central Khmer} {km}} {{Chamorro} {ch}} {{Chechen} {ce}} {{Chewa} {ny}} {{Chichewa} {ny}} {{Chinese} {zh}} {{Chuang} {za}} {{Church Slavic} {cu}} {{Church Slavonic} {cu}} {{Chuvash} {cv}} {{Cornish} {kw}} {{Corsican} {co}} {{Cree} {cr}} {{Croatian} {hr}} {{Czech} {cs}} {{Danish} {da}} {{Dhivehi} {dv}} {{Divehi} {dv}} {{Dutch} {nl}} {{Dzongkha} {dz}} {{English} {en}} {{Esperanto} {eo}} {{Estonian} {et}} {{Ewe} {ee}} {{Faroese} {fo}} {{Fijian} {fj}} {{Finnish} {fi}} {{Flemish} {nl}} {{French} {fr}} {{Fulah} {ff}} {{Gaelic} {gd}} {{Galician} {gl}} {{Ganda} {lg}} {{Georgian} {ka}} {{German} {de}} {{Gikuyu} {ki}} {{Greek, Modern} {el}} {{Greenlandic} {kl}} {{Guarani} {gn}} {{Gujarati} {gu}} {{Haitian} {ht}} {{Haitian Creole} {ht}} {{Hausa} {ha}} {{Hebrew} {he}} {{Herero} {hz}} {{Hindi} {hi}} {{Hiri Motu} {ho}} {{Hungarian} {hu}} {{Icelandic} {is}} {{Ido} {io}} {{Igbo} {ig}} {{Indonesian} {id}} {{Interlingue} {ie}} {{Inuktitut} {iu}} {{Inupiaq} {ik}} {{Irish} {ga}} {{Italian} {it}} {{Japanese} {ja}} {{Javanese} {jv}} {{Kalaallisut} {kl}} {{Kannada} {kn}} {{Kanuri} {kr}} {{Kashmiri} {ks}} {{Kazakh} {kk}} {{Kikuyu} {ki}} {{Kinyarwanda} {rw}} {{Kirghiz} {ky}} {{Komi} {kv}} {{Kongo} {kg}} {{Korean} {ko}} {{Kuanyama} {kj}} {{Kurdish} {ku}} {{Kwanyama} {kj}} {{Kyrgyz} {ky}} {{Lao} {lo}} {{Latin} {la}} {{Latvian} {lv}} {{Letzeburgesch} {lb}} {{Limburgan} {li}} {{Limburger} {li}} {{Limburgish} {li}} {{Lingala} {ln}} {{Lithuanian} {lt}} {{Luba-Katanga} {lu}} {{Luxembourgish} {lb}} {{Macedonian} {mk}} {{Malagasy} {mg}} {{Malay} {ms}} {{Malayalam} {ml}} {{Maldivian} {dv}} {{Maltese} {mt}} {{Manx} {gv}} {{Maori} {mi}} {{Marathi} {mr}} {{Marshallese} {mh}} {{Moldavian} {ro}} {{Moldovan} {ro}} {{Mongolian} {mn}} {{Nauru} {na}} {{Navaho} {nv}} {{Navajo} {nv}} {{Ndebele, North} {nd}} {{Ndebele, South} {nr}} {{Ndonga} {ng}} {{Nepali} {ne}} {{North Ndebele} {nd}} {{Northern Sami} {se}} {{Norwegian} {no}} {{Norwegian Bokmål} {nb}} {{Norwegian Nynorsk} {nn}} {{Nuosu} {ii}} {{Nyanja} {ny}} {{Nynorsk, Norwegian} {nn}} {{Occidental} {ie}} {{Occitan} {oc}} {{Ojibwa} {oj}} {{Old Bulgarian} {cu}} {{Old Church Slavonic} {cu}} {{Old Slavonic} {cu}} {{Oriya} {or}} {{Oromo} {om}} {{Ossetian} {os}} {{Ossetic} {os}} {{Pali} {pi}} {{Panjabi} {pa}} {{Pashto} {ps}} {{Persian} {fa}} {{Polish} {pl}} {{Portuguese} {pt}} {{Punjabi} {pa}} {{Pushto} {ps}} {{Quechua} {qu}} {{Romanian} {ro}} {{Romansh} {rm}} {{Rundi} {rn}} {{Russian} {ru}} {{Samoan} {sm}} {{Sango} {sg}} {{Sanskrit} {sa}} {{Sardinian} {sc}} {{Scottish Gaelic} {gd}} {{Serbian} {sr}} {{Shona} {sn}} {{Sichuan Yi} {ii}} {{Sindhi} {sd}} {{Sinhala} {si}} {{Sinhalese} {si}} {{Slovak} {sk}} {{Slovenian} {sl}} {{Somali} {so}} {{Sotho, Southern} {st}} {{South Ndebele} {nr}} {{Spanish} {es}} {{Sundanese} {su}} {{Swahili} {sw}} {{Swati} {ss}} {{Swedish} {sv}} {{Tagalog} {tl}} {{Tahitian} {ty}} {{Tajik} {tg}} {{Tamil} {ta}} {{Tatar} {tt}} {{Telugu} {te}} {{Thai} {th}} {{Tibetan} {bo}} {{Tigrinya} {ti}} {{Tonga} {to}} {{Tsonga} {ts}} {{Tswana} {tn}} {{Turkish} {tr}} {{Turkmen} {tk}} {{Twi} {tw}} {{Uighur} {ug}} {{Ukrainian} {uk}} {{Urdu} {ur}} {{Uyghur} {ug}} {{Uzbek} {uz}} {{Valencian} {ca}} {{Venda} {ve}} {{Vietnamese} {vi}} {{Volapük} {vo}} {{Walloon} {wa}} {{Welsh} {cy}} {{Western Frisian} {fy}} {{Wolof} {wo}} {{Xhosa} {xh}} {{Yiddish} {yi}} {{Yoruba} {yo}} {{Zhuang} {za}} {{Zulu} {zu}} } ## List: Country codes with names of their flags file in directory ``${::ROOT_DIRNAME}/icons/flag/'' # Format: # { # { Country_Name Country_Code Flag_File_Name_Without_Extension } # ... # } common COUNTRY_CODES_AND_FLAGS { {{Afghanistan} AF Afghanistan} {{Åland Islands} AX {}} {{Albania} AL Albania} {{Algeria} DZ Algeria} {{American Samoa} AS American_Samoa} {{Andorra} AD Andorra} {{Angola} AO Angola} {{Anguilla} AI Anguilla} {{Antarctica} AQ {}} {{Antigua And Barbuda} AG Antigua_and_Barbuda} {{Argentina} AR Argentina} {{Armenia} AM Armenia} {{Aruba} AW Aruba} {{Australia} AU Australia} {{Austria} AT Austria} {{Azerbaijan} AZ Azerbaijan} {{Bahamas} BS Bahamas} {{Bahrain} BH Bahrain} {{Bangladesh} BD Bangladesh} {{Barbados} BB Barbados} {{Belarus} BY Belarus} {{Belgium} BE Belgium} {{Belize} BZ Belize} {{Benin} BJ Benin} {{Bermuda} BM Bermuda} {{Bhutan} BT Bhutan} {{Bolivia, Plurinational State Of} BO Bolivia} {{Bosnia And Herzegovina} BA Bosnia} {{Botswana} BW Botswana} {{Bouvet Island} BV {}} {{Brazil} BR Brazil} {{British Indian Ocean Territory} IO {}} {{Brunei Darussalam} BN Brunei} {{Bulgaria} BG Bulgaria} {{Burkina Faso} BF Burkina_Faso} {{Burundi} BI Burundi} {{Cambodia} KH Cambodia} {{Cameroon} CM Cameroon} {{Canada} CA Canada} {{Cape Verde} CV Cape_Verde} {{Cayman Islands} KY Cayman_Islands} {{Central African Republic} CF Central_African_Republic} {{Chad} TD Chad} {{Chile} CL Chile} {{China} CN China} {{Christmas Island} CX Christmas_Island} {{Cocos (Keeling) Islands} CC {}} {{Colombia} CO Colombia} {{Comoros} KM Comoros} {{Congo} CG Republic_of_the_Congo} {{Congo, The Democratic Republic Of The} CD Democratic_Republic_of_the_Congo} {{Cook Islands} CK Cook_Islands} {{Costa Rica} CR Costa_Rica} {{Côte D'Ivoire} CI Cote_dIvoire} {{Croatia} HR Croatia} {{Cuba} CU Cuba} {{Cyprus} CY Cyprus} {{Czech Republic} CZ Czech_Republic} {{Denmark} DK Denmark} {{Djibouti} DJ Djibouti} {{Dominica} DM Dominica} {{Dominican Republic} DO Dominican_Republic} {{Ecuador} EC Ecuador} {{Egypt} EG Egypt} {{El Salvador} SV El_Salvador} {{Equatorial Guinea} GQ Equatorial_Guinea} {{Eritrea} ER Eritrea} {{Estonia} EE Estonia} {{Ethiopia} ET Ethiopia} {{Falkland Islands (Malvinas)} FK Falkland_Islands} {{Faroe Islands} FO Faroe_Islands} {{Fiji} FJ Fiji} {{Finland} FI Finland} {{France} FR France} {{French Guiana} GF {}} {{French Polynesia} PF French_Polynesia} {{French Southern Territories} TF {}} {{Gabon} GA Gabon} {{Gambia} GM Gambia} {{Georgia} GE Georgia} {{Germany} DE Germany} {{Ghana} GH Ghana} {{Gibraltar} GI Gibraltar} {{Greece} GR Greece} {{Greenland} GL Greenland} {{Grenada} GD Grenada} {{Guadeloupe} GP {}} {{Guam} GU Guam} {{Guatemala} GT Guatemala} {{Guernsey} GG {}} {{Guinea} GN Guinea} {{Guinea-Bissau} GW Guinea_Bissau} {{Guyana} GY Guyana} {{Haiti} HT Haiti} {{Heard Island And Mcdonald Islands} HM {}} {{Holy See (Vatican City State)} VA {}} {{Honduras} HN Honduras} {{Hong Kong} HK Hong_Kong} {{Hungary} HU Hungary} {{Iceland} IS Iceland} {{India} IN India} {{Indonesia} ID Indonesia} {{Iran, Islamic Republic Of} IR Iran} {{Iraq} IQ Iraq} {{Ireland} IE Ireland} {{Isle Of Man} IM {}} {{Israel} IL Israel} {{Italy} IT Italy} {{Jamaica} JM Jamaica} {{Japan} JP Japan} {{Jersey} JE {}} {{Jordan} JO Jordan} {{Kazakhstan} KZ Kazakhstan} {{Kenya} KE Kenya} {{Kiribati} KI Kiribati} {{Korea, Democratic People'S Republic Of} KP North_Korea} {{Korea, Republic Of} KR South_Korea} {{Kuwait} KW Kuwait} {{Kyrgyzstan} KG Kyrgyzstan} {{Lao People'S Democratic Republic} LA Laos} {{Latvia} LV Latvia} {{Lebanon} LB Lebanon} {{Lesotho} LS Lesotho} {{Liberia} LR Liberia} {{Libyan Arab Jamahiriya} LY Libya} {{Liechtenstein} LI Liechtenstein} {{Lithuania} LT Lithuania} {{Luxembourg} LU Luxembourg} {{Macao} MO Macao} {{Macedonia, The Former Yugoslav Republic Of} MK Macedonia} {{Madagascar} MG Madagascar} {{Malawi} MW Malawi} {{Malaysia} MY Malaysia} {{Maldives} MV Maldives} {{Mali} ML Mali} {{Malta} MT Malta} {{Marshall Islands} MH Marshall_Islands} {{Martinique} MQ Martinique} {{Mauritania} MR Mauritania} {{Mauritius} MU Mauritius} {{Mayotte} YT {}} {{Mexico} MX Mexico} {{Micronesia, Federated States Of} FM Micronesia} {{Moldova, Republic Of} MD Moldova} {{Monaco} MC Monaco} {{Mongolia} MN Mongolia} {{Montenegro} ME {}} {{Montserrat} MS Montserrat} {{Morocco} MA Morocco} {{Mozambique} MZ Mozambique} {{Myanmar} MM Myanmar} {{Namibia} NA Namibia} {{Nauru} NR Nauru} {{Nepal} NP Nepal} {{Netherlands} NL Netherlands} {{Netherlands Antilles} AN Netherlands_Antilles} {{New Caledonia} NC {}} {{New Zealand} NZ New_Zealand} {{Nicaragua} NI Nicaragua} {{Niger} NE Niger} {{Nigeria} NG Nigeria} {{Niue} NU Niue} {{Norfolk Island} NF Norfolk_Island} {{Northern Mariana Islands} MP {}} {{Norway} NO Norway} {{Oman} OM Oman} {{Pakistan} PK Pakistan} {{Palau} PW Palau} {{Palestinian Territory, Occupied} PS {}} {{Panama} PA Panama} {{Papua New Guinea} PG Papua_New_Guinea} {{Paraguay} PY Paraguay} {{Peru} PE Peru} {{Philippines} PH Philippines} {{Pitcairn} PN Pitcairn_Islands} {{Poland} PL Poland} {{Portugal} PT Portugal} {{Puerto Rico} PR Puerto_Rico} {{Qatar} QA Qatar} {{Réunion} RE {}} {{Romania} RO Romania} {{Russian Federation} RU Russian_Federation} {{Rwanda} RW Rwanda} {{Saint Barthélemy} BL {}} {{Saint Helena, Ascension And Tristan Da Cunha} SH {}} {{Saint Kitts And Nevis} KN Saint_Kitts_and_Nevis} {{Saint Lucia} LC Saint_Lucia} {{Saint Martin} MF {}} {{Saint Pierre And Miquelon} PM Saint_Pierre} {{Saint Vincent And The Grenadines} VC Saint_Vicent_and_the_Grenadines} {{Samoa} WS Samoa} {{San Marino} SM San_Marino} {{Sao Tome And Principe} ST Sao_Tome_and_Principe} {{Saudi Arabia} SA Saudi_Arabia} {{Senegal} SN Senegal} {{Serbia} RS {}} {{Seychelles} SC Seychelles} {{Sierra Leone} SL Sierra_Leone} {{Singapore} SG Singapore} {{Slovakia} SK Slovakia} {{Slovenia} SI Slovenia} {{Solomon Islands} SB Soloman_Islands} {{Somalia} SO Somalia} {{South Africa} ZA South_Africa} {{South Georgia And The South Sandwich Islands} GS South_Georgia} {{Spain} ES Spain} {{Sri Lanka} LK Sri_Lanka} {{Sudan} SD Sudan} {{Suriname} SR Suriname} {{Svalbard And Jan Mayen} SJ {}} {{Swaziland} SZ Swaziland} {{Sweden} SE Sweden} {{Switzerland} CH Switzerland} {{Syrian Arab Republic} SY Syria} {{Taiwan, Province Of China} TW Taiwan} {{Tajikistan} TJ Tajikistan} {{Tanzania, United Republic Of} TZ Tanzania} {{Thailand} TH Thailand} {{Timor-Leste} TL Timor-Leste} {{Togo} TG Togo} {{Tokelau} TK {}} {{Tonga} TO Tonga} {{Trinidad And Tobago} TT Trinidad_and_Tobago} {{Tunisia} TN Tunisia} {{Turkey} TR Turkey} {{Turkmenistan} TM Turkmenistan} {{Turks And Caicos Islands} TC Turks_and_Caicos_Islands} {{Tuvalu} TV Tuvalu} {{Uganda} UG Uganda} {{Ukraine} UA Ukraine} {{United Arab Emirates} AE UAE} {{United Kingdom} GB United_Kingdom} {{United States} US United_States_of_America} {{United States Minor Outlying Islands} UM {}} {{Uruguay} UY Uruguay} {{Uzbekistan} UZ Uzbekistan} {{Vanuatu} VU Vanuatu} {{Vatican City State} VA Vatican_City} {{Venezuela, Bolivarian Republic Of} VE Venezuela} {{Viet Nam} VN Vietnam} {{Virgin Islands, British} VG British_Virgin_Islands} {{Virgin Islands, U.S.} VI US_Virgin_Islands} {{Wallis And Futuna} WF Wallis_and_Futuna} {{Western Sahara} EH {}} {{Yemen} YE Yemen} {{Zambia} ZM Zambia} {{Zimbabwe} ZW Zimbabwe} } ## Kill spell checker and its support processes # @return void proc kill_spellchecker_process {} { # Reset some class variables set ::Editor::spellchecker_RAP_ID {} set ::Editor::spellchecker_command_LIFO [list] # Abort if the spell checker process is not running if {${::Editor::spellchecker_process_pid} == {}} { return } # Kill the spell checker and its support processes foreach pid ${::Editor::spellchecker_process_pid} { if {$pid == [pid] || $pid == 0} { continue } catch { exec -- kill $pid 2>/dev/null } } set ::Editor::spellchecker_process_pid {} } ## Restart the spell checker process with new new configuration # @return void proc restart_spellchecker_process {} { # This function was not yet ported to MS Windows if {$::MICROSOFT_WINDOWS} { return } kill_spellchecker_process if {[lsearch -ascii -exact ${::Editor::available_dictionaries} ${::Editor::spellchecker_dictionary}] == -1} { set ::Editor::spellchecker_enabled 0 set ::Editor::spellchecker_dictionary {} } else { start_spellchecker_process wait_for_spellchecker_process } } ## Start the spell checker (Hunspell) and its support processes # @return void proc start_spellchecker_process {} { # Abort if either the feature is disabled or the Hunspell is not available if {!${::Editor::spellchecker_enabled} || !${::PROGRAM_AVAILABLE(hunspell)}} { return } # This function was not yet ported to MS Windows if {$::MICROSOFT_WINDOWS} { return } # Start watch dog timer set ::Editor::spellchecker_start_timer [after 10000 { set ::Editor::spellchecker_start_failed 1 set ::Editor::spellchecker_started_flag 1 }] # Attempt to start the processes if {[catch { set ::Editor::spellchecker_process_pid [exec -- \ tclsh ${::LIB_DIRNAME}/receive_and_print.tcl \ [tk appname] \ ::Editor::set_spellchecker_RAP_ID \ | hunspell \ -a \ -i utf8 \ -d ${::Editor::spellchecker_dictionary} \ | tclsh ${::LIB_DIRNAME}/external_command.tcl \ [tk appname] \ ::Editor::spellchecker_exit_callback \ ::Editor::spellchecker_receive_response \ & \ ] }]} then { # FAILURE set ::Editor::spellchecker_start_failed 1 set ::Editor::spellchecker_started_flag 1 } } ## Wait until the spell checker (Hunspell) and its support processes are started # @return void proc wait_for_spellchecker_process {} { # Abort if either the feature is disabled or the Hunspell is not available if {!${::Editor::spellchecker_enabled} || !${::PROGRAM_AVAILABLE(hunspell)}} { return } # This function was not yet ported to MS Windows if {$::MICROSOFT_WINDOWS} { return } # Wait until the spell checker (Hunspell) and its support processes are started vwait ::Editor::spellchecker_started_flag unset ::Editor::spellchecker_started_flag # Stop the watch dog timer catch { after cancel ${::Editor::spellchecker_start_timer} } # Handle spellchecker start-up failure if {${::Editor::spellchecker_start_failed}} { # Set some class variables set ::Editor::spellchecker_RAP_ID {} set ::Editor::spellchecker_enabled 0 set ::Editor::spellchecker_start_failed 0 # Destroy the splash screen if displayed if {[winfo exists .splash]} { destroy .splash } # Display graphical error message tk_messageBox \ -parent . \ -type ok \ -icon error \ -title [mc "Hunspell error"] \ -message [mc "Unable to start the spell checker. Please try to re-install the hunspell. Spell checking function will not be available"] } } ## Receive the identifier for IPC with the RAP # @parm String id - Appname of the receive_and_print process # @return void proc set_spellchecker_RAP_ID {id} { set ::Editor::spellchecker_RAP_ID $id } ## Handle Hunspell process termination # # It is assumed that the process terminates only on some error condition or # on an explicit request for termination. Aim of this method is attempt to # restart the Hunspell process and its support processes if it crashed for any # reason. # # @parm List args - Anything, it doesn't matter # @return void proc spellchecker_exit_callback {args} { # Abort if the termination was intentional if {${::Editor::spellchecker_RAP_ID} == {}} { return } # This function was not yet ported to MS Windows if {$::MICROSOFT_WINDOWS} { return } set ::Editor::spellchecker_RAP_ID {} puts stderr "Spell checker process exited -- attempting to restart" # Attempt to restart incr ::Editor::spellchecker_attempts_to_restart if {${::Editor::spellchecker_attempts_to_restart} < 10} { start_spellchecker_process } else { puts stderr "Attempt to restart failed, to many attempts -- aborting" set spellchecker_attempts_to_restart 0 } } ## Receive response from the Hunspell # @parm List args - One line of the response # @return void proc spellchecker_receive_response {args} { # This function was not yet ported to MS Windows if {$::MICROSOFT_WINDOWS} { return } # We are interested only in the first field of the response set response [string trim [lindex $args 0]] # Handle the initial response (sent once the Hunspell is started) if {[lindex $response 0] == {@(#)}} { set spellchecker_command_LIFO [list] set ::Editor::spellchecker_started_flag 1 return } # Decide what to do with the response switch -- $response { {} { ;# Empty response -- means nothing } {*} { ;# Word is correct catch { eval [lindex $spellchecker_command_LIFO {0 0}] } set spellchecker_command_LIFO [lreplace $spellchecker_command_LIFO 0 0] } default { ;# Everything else catch { eval [lindex $spellchecker_command_LIFO {0 1}] } set spellchecker_command_LIFO [lreplace $spellchecker_command_LIFO 0 0] } } } ## Send a word to the Hunspell process for evaluation # @parm String word - Work to check for correct spelling # @parm String wrong_command = {} - Command to execute here if the word is badly spelled # @parm String correct_command = {} - Command to execute here if the word is correctly spelled # @return void proc spellchecker_check_word {word {wrong_command {}} {correct_command {}}} { # This function was not yet ported to MS Windows if {$::MICROSOFT_WINDOWS} { return } # Abort if receive and print process has not been initialized if {${::Editor::spellchecker_RAP_ID} == {}} { return } # Append command to their queue lappend spellchecker_command_LIFO [list $correct_command $wrong_command] # Send the word to the Hunspell process if {!${::MICROSOFT_WINDOWS}} { ::X::secure_send ${::Editor::spellchecker_RAP_ID} print_line "{$word}" } else { dde eval ${::Editor::spellchecker_RAP_ID} print_line "{$word}" } } ## Refresh list of available spell checker dictionaries (refresh in GUI) # @return void proc refresh_available_dictionaries {} { # Abort if the Hunspell program is not available if {!${::PROGRAM_AVAILABLE(hunspell)}} { return } # This function was not yet ported to MS Windows if {$::MICROSOFT_WINDOWS} { return } # Set widget descriptor for the dictionary selection menu set m {.spell_checker_conf_menu} # Destroy the dictionary selection menu if it exists if {[winfo exists $m]} { destroy $m } # Create new dictionary selection menu menu $m ;# Main part menu $m.by_country ;# Cascade "Set dictionary by country" menu $m.by_language ;# Cascade "Set dictionary by language" # Define contents of the newly created menu $m add command \ -label [mc "Refresh list of dictionaries"] \ -image ::ICONS::16::reload \ -compound left \ -command { ::Editor::refresh_available_dictionaries ::Editor::adjust_spell_checker_config_button } $m add command \ -label [mc "Turn off spell checking"] \ -image ::ICONS::16::exit \ -compound left \ -command {::Editor::switch_SC_dictionary {}} $m add separator $m add cascade \ -label [mc "Set dictionary by language"] \ -menu $m.by_language $m add cascade \ -label [mc "Set dictionary by country"] \ -menu $m.by_country ## Get list of available Hunspell dictionaries set ::Editor::available_dictionaries [list] # Start watchdog timer for the Hunspell process set spellchecker_start_timer [after 10000 { catch { close ${::Editor::hunspell_process} } }] if {[catch { # Run Hunspell in a mode in which it prints available dictionaries if {!${::MICROSOFT_WINDOWS}} { set hunspell_process [open {| /bin/sh -c "hunspell -D 2>&1 | awk '{print(\$0)} /^LOADED DICTIONARY/ {exit 0}' || exit 1"} "r"] } else { puts stderr "Sorry, this feature is not implemented on MS Windows yet." error "Not available on Windows." } }]} then { # Error condition puts stderr "Unable to start the Hunspell process" } else { # Bool: Accept this line of output from the process set accept_flag 0 # Read list of dictionaries (file names along with pats) while {![eof $hunspell_process]} { # Read line from the process set line [gets $hunspell_process] # Ignore everything besides section ``AVAILABLE DICTIONARIES'' if {![string first {AVAILABLE DICTIONARIES} $line]} { set accept_flag 1 continue } elseif {![string first {LOADED DICTIONARY:} $line]} { break } elseif {!$accept_flag} { continue } # Determinate language code and country code and append it to the #+ list of available dictionaries set line [lindex [split $line [file separator]] end] set line [split $line {_}] if {[lindex $line 0] == {hyph}} { continue # set line [lreplace $line 0 0] } if {![string length [lindex $line 0]] || ![string length [lindex $line 1]]} { continue } if {![string is alpha [lindex $line 0]] || ![string is alpha [lindex $line 1]]} { continue } set dictionary [string tolower [lindex $line 0]]_[string toupper [lindex $line 1]] if {[lsearch -ascii -exact ${::Editor::available_dictionaries} $dictionary] == -1} { lappend ::Editor::available_dictionaries $dictionary } } } # Cancel the watchdog timer catch { after cancel $spellchecker_start_timer } # If there are no dictionaries available to use then abort right away if {![llength ${::Editor::available_dictionaries}]} { return } ## Enrich the gained list with some additional information # # Format of the resulting list: # { # {Language_code Country_code Country_name Language_name Flag_icon} # ... # } set available_dictionaries_complex [list] foreach dictionary ${::Editor::available_dictionaries} { # Determinate language code and country code set dictionary [split $dictionary {_}] ;# List: Language and country codes, e.g. {en GB} set language_code [lindex $dictionary 0] ;# String: Language code, e.g. "en" set country_code [lindex $dictionary 1] ;# String: County code, e.g. "GB" set country_and_flag {} ;# List: Country name and flag icon name, e.g. {"United Kingdom" United_Kingdom} set country_name {} ;# String: Country name, e.g. "United Kingdom" set flag_icon {} ;# String: Flag icon name, e.g. "United_Kingdom" set language_name {} ;# String: Language name, e.g. "English" # Determinate country name and flag file name set idx [lsearch -ascii -exact -index 1 ${::Editor::COUNTRY_CODES_AND_FLAGS} $country_code] if {$idx != -1} { set country_and_flag [lindex ${::Editor::COUNTRY_CODES_AND_FLAGS} $idx] set country_name [lindex $country_and_flag 0] set flag_icon [lindex $country_and_flag 2] } else { set country_name $country_code } if {$flag_icon == {}} { set flag_icon {empty} } # Determinate language name set idx [lsearch -ascii -exact -index 1 ${::Editor::LANGUAGE_CODES_AND_NAMES} $language_code] if {$idx != -1} { set language_name [lindex ${::Editor::LANGUAGE_CODES_AND_NAMES} [list $idx 0]] } else { set language_name $language_code } if {$country_name == {}} { set country_name {???} } if {$language_name == {}} { set language_name {???} } # Append item to the resulting list lappend available_dictionaries_complex [list $language_code $country_code [mc $country_name] [mc $language_name] $flag_icon] } # Generate content of the "Set by country" menu set local_menu {} set capital_leter {} set last_capital_leter {} foreach dictionary [lsort -dictionary -index 2 [lsort -dictionary -index 3 $available_dictionaries_complex]] { # Gain some facts about the dictionary file set language_code [lindex $dictionary 0] set country_code [lindex $dictionary 1] set country_name [lindex $dictionary 2] set language_name [lindex $dictionary 3] set flag_icon [lindex $dictionary 4] # Create sub-menu if necessary set capital_leter [string toupper [string index $country_name 0]] if {$capital_leter != $last_capital_leter} { set last_capital_leter $capital_leter set local_menu [menu $m.by_country.m_[string tolower $capital_leter]] $m.by_country add cascade -label "$capital_leter ..." -menu $local_menu } # Create the menu item $local_menu add command \ -command "::Editor::switch_SC_dictionary {${language_code}_${country_code}}" \ -label "$country_name ($language_name)" \ -image ::ICONS::flag::$flag_icon \ -compound left } # Generate content of the "Set by language" menu set local_menu {} set capital_leter {} set last_capital_leter {} foreach dictionary [lsort -dictionary -index 3 [lsort -dictionary -index 2 $available_dictionaries_complex]] { # Gain some facts about the dictionary file set language_code [lindex $dictionary 0] set country_code [lindex $dictionary 1] set country_name [lindex $dictionary 2] set language_name [lindex $dictionary 3] set flag_icon [lindex $dictionary 4] # Create sub-menu if necessary set capital_leter [string toupper [string index $language_name 0]] if {$capital_leter != $last_capital_leter} { set last_capital_leter $capital_leter set local_menu [menu $m.by_language.m_[string tolower $capital_leter]] $m.by_language add cascade -label "$capital_leter ..." -menu $local_menu } # Create the menu item $local_menu add command \ -command "::Editor::switch_SC_dictionary {${language_code}_${country_code}}" \ -label "$language_name ($country_name)" \ -image ::ICONS::flag::$flag_icon \ -compound left } } ## Switch current dictionary # @parm String dictionary - Dictionary name like: ``en_GB'' or ``en_AU'' # @return void proc switch_SC_dictionary {dictionary} { # Abort if the Hunspell program is not available if {!${::PROGRAM_AVAILABLE(hunspell)}} { return } # This function was not yet ported to MS Windows if {$::MICROSOFT_WINDOWS} { return } # Chech whether the requested dictionary is available if {[lsearch -ascii -exact ${::Editor::available_dictionaries} $dictionary] == -1} { set dictionary {} } # Empty dictionary name means disable the feature if {[string length $dictionary]} { set ::Editor::spellchecker_enabled 1 } else { set ::Editor::spellchecker_enabled 0 } # Adjust configuration button .statusbarSB configure \ -image ::ICONS::16::player_time \ -text "<>" # Clear spell checker's tags in all text editors foreach project ${::X::openedProjects} { foreach editor [$project cget -editors] { $editor spellchecker_clear_tags } } # Switch the dictionary set ::Editor::spellchecker_dictionary $dictionary restart_spellchecker_process adjust_spell_checker_config_button # Refresh all editors foreach project ${::X::openedProjects} { foreach editor [$project cget -editors] { $editor parseAll } } } ## Adjust spell checker configuration button to current spell checker configuration # @return void proc adjust_spell_checker_config_button {} { # Abort if the Hunspell program is not available if {!${::PROGRAM_AVAILABLE(hunspell)}} { return } # This function was not yet ported to MS Windows if {$::MICROSOFT_WINDOWS} { return } # Spell checker configuration menu set m {.spell_checker_conf_menu} ## Spell checker is DISABLED if {!$::Editor::spellchecker_enabled} { $m entryconfigure [mc "Turn off spell checking"] -state disabled .statusbarSB configure \ -image ::ICONS::flag::empty \ -text "none" ## Spell checker is ENABLED } else { $m entryconfigure [mc "Turn off spell checking"] -state normal set c_l [split ${::Editor::spellchecker_dictionary} {_}] set idx [lsearch -ascii -exact -index 1 ${::Editor::COUNTRY_CODES_AND_FLAGS} [lindex $c_l 1]] if {$idx != -1} { set flag_icon [lindex ${::Editor::COUNTRY_CODES_AND_FLAGS} [list $idx 2]] } else { set flag_icon {empty} } .statusbarSB configure \ -image ::ICONS::flag::$flag_icon \ -text [lindex $c_l 0] } } ## By calling this method we mark the target line as something which is a subject for a change # Purpose is to handle insertions of single characters and deletions of single characters # @note This method inhibits method spellcheck_check_all until spellcheck_change_detected_post is called # @see spellcheck_change_detected_post # @parm Int line_number = {} - Number of the target line, {} means the current line # @return void private method spellcheck_change_detected_pre {{line_number {}}} { # This function was not yet ported to MS Windows if {$::MICROSOFT_WINDOWS} { return } # Abort conditions if {!$spellchecker_enabled || !${::PROGRAM_AVAILABLE(hunspell)}} { return } # Inhibit method spellcheck_check_all until spellcheck_change_detected_post is called set spellcheck_lock 1 # Adjust parameters if {$line_number == {}} { set line_number [expr {int([$editor index insert])}] } # Store the target line set spellcheck_line_number $line_number set spellcheck_line_pre [$editor get [list $line_number.0 linestart] [list $line_number.0 lineend]] } ## By calling this method we finalize the process started by calling to method spellcheck_change_detected_pre # Purpose is to handle insertions of single characters and deletions of single characters # @see spellcheck_change_detected_pre # @parm Int line_number = {} - Number of the target line, {} means the current line # @return void private method spellcheck_change_detected_post {{line_number {}}} { # This function was not yet ported to MS Windows if {$::MICROSOFT_WINDOWS} { return } # Abort conditions if {!$spellchecker_enabled || !${::PROGRAM_AVAILABLE(hunspell)}} { return } # cancel the inhibition of method spellcheck_check_all set spellcheck_lock 0 # Adjust parameters if {$line_number == {}} { set line_number [expr {int([$editor index insert])}] } # Determinate ranges of text indexes delimiting strings to check for spelling if {$prog_language == -1} { set target_ranges [list [list $line_number.0 [$editor index [list $line_number.0 lineend]]]] } else { set target_ranges [list] set range [list $line_number.0 $line_number.0] while {1} { set range [concat \ [$editor tag nextrange tag_comment [lindex $range 1] [list $line_number.0 lineend]] \ [$editor tag nextrange tag_c_comment [lindex $range 1] [list $line_number.0 lineend]] \ [$editor tag nextrange tag_c_dox_comment [lindex $range 1] [list $line_number.0 lineend]] \ ] if {![llength $range]} { break } lappend target_ranges $range } } # Gain entire line from the editor set line [$editor get [list $line_number.0 linestart] [list $line_number.0 lineend]] if {[string length $line] > [string length $spellcheck_line_pre]} { set new_longer_that_org 1 } else { set new_longer_that_org 0 } # Compare the line to its previous content and check changed word(s) set fixed_shift 0 ;# Total pre string shift from all cycles set force_check 0 ;# Enforce spell check of the next word regardless the comparison foreach range $target_ranges { # Determinate start and end column scan [lindex $range 0] {%d.%d} _ start scan [lindex $range 1] {%d.%d} _ end set word {} ;# String: Word to check set char {} ;# Char: Character gained from the source line set idx_pre $start ;# Int: Index in $spellcheck_line_pre set word_len 0 ;# Int: Length of the word set skip_word 0 ;# Bool: Flag skip this one word set change_detected 0 ;# Bool: Flag the word was changed set char_next [string index $line $start] ;# Char: Same as char but maybe a little ahead # Take into accound shift from previous cycles incr idx_pre $fixed_shift for {set idx $start} {$idx < $end} {incr idx; incr idx_pre} { set char $char_next set char_next [string index $line [expr {$idx + 1}]] set char_pre_next [string index $spellcheck_line_pre [expr {$idx_pre + 1}]] set char_pre [string index $spellcheck_line_pre $idx_pre] if {[string is alnum $char]} { # If the word contains one or more digits, skip it, digits in a word #+ would cause Hunspell to behave in a way that we don't want here if {[string is digit $char]} { set skip_word 1 } # Lines are different if {$char_pre != $char} { set change_detected 1 # Character deleted -- shift the pre string >> 1 if {$char_pre_next == $char && !$new_longer_that_org} { incr idx_pre incr fixed_shift # Character inserted -- shift the pre string << 1 } elseif {$char_pre == $char_next && $new_longer_that_org} { incr idx_pre -1 incr fixed_shift -1 } # Character appended at the end of the word -- shift the pre string << 1, #+ and check for the next word unconditionally } elseif { [string is alnum $char_pre_next] && ![string is alnum $char_next] && $char_pre_next != $char_next } then { incr idx_pre -1 incr fixed_shift -1 set change_detected 1 set force_check 1 } # Append the character to the word append word $char incr word_len # This is not the last character in the line if {$idx < ($end - 1)} { continue # This IS the last character in the line } else { incr idx } } # Skip empty words if {!$word_len} { continue } # Send the word to the spell checker if {$change_detected && !$skip_word} { set change_detected 0 $editor tag remove tag_wrong_spelling $line_number.$idx-${word_len}c-1c $line_number.$idx spellchecker_check_word $word \ [list $editor tag add tag_wrong_spelling $line_number.$idx-${word_len}c $line_number.$idx] \ [list $editor tag remove tag_wrong_spelling $line_number.$idx-${word_len}c $line_number.$idx] } # Enforce spell check of the next word regardless the comparison if {$force_check} { set force_check 0 set change_detected 1 } # Reset set word {} set word_len 0 set skip_word 0 } } } ## Check spelling on the specified line # # This method will not perform the task if $spellcheck_line_number is equal to # the given source line, unless the force parameter is set to true. # @note # Spell checking is performed only for comments unless the programming language # is not specified # @parm Int line_number - Number of line to check # @parm Int force = 0 - 1: Force the method to perform the spell check; 2: Force even over $spellcheck_lock # @return void public method spellcheck_check_all {line_number {force 0}} { # This function was not yet ported to MS Windows if {$::MICROSOFT_WINDOWS} { return } # Abort conditions if {($force != 2 && $spellcheck_lock) || !$spellchecker_enabled || !${::PROGRAM_AVAILABLE(hunspell)}} { return } if {!$force && ($spellcheck_line_number != $line_number)} { return } set spellcheck_line_number {} # Remove bad spelling tags $editor tag remove tag_wrong_spelling $line_number.0 [list $line_number.0 lineend] # Determinate ranges of text indexes delimiting strings to check for spelling if {$prog_language == -1} { set target_ranges [list [list $line_number.0 [$editor index [list $line_number.0 lineend]]]] } else { set target_ranges [list] set range [list $line_number.0 $line_number.0] while {1} { set range [concat \ [$editor tag nextrange tag_comment [lindex $range 1] [list $line_number.0 lineend]] \ [$editor tag nextrange tag_c_comment [lindex $range 1] [list $line_number.0 lineend]] \ [$editor tag nextrange tag_c_dox_comment [lindex $range 1] [list $line_number.0 lineend]] \ ] if {![llength $range]} { break } lappend target_ranges $range } } # Gain entire line from the editor set line [$editor get $line_number.0 [list $line_number.0 lineend]] # Check spelling for the given ranges foreach range $target_ranges { # Determinate start and end column scan [lindex $range 0] {%d.%d} _ start scan [lindex $range 1] {%d.%d} _ end set word {} ;# String: Word to check set char {} ;# Char: Character gained from the source line set word_len 0 ;# Int: Length of the word set skip_word 0 ;# Bool: Flag skip this one word # Iterate over characters in the source line for {set idx $start} {$idx < $end} {incr idx} { set char [string index $line $idx] if {[string is alnum $char]} { # If the word contains one or more digits, skip it digits in a word #+ would cause Hunspell to behave in a way that we don't want here if {[string is digit $char]} { set skip_word 1 } # Append the character to the word append word $char incr word_len # This is not the last character in the line if {$idx < ($end - 1)} { continue # This IS the last character in the line } else { incr idx } } # Skip empty words if {!$word_len} { continue } # Send the word to the spell checker if {!$skip_word} { spellchecker_check_word \ $word \ [list $editor tag add tag_wrong_spelling $line_number.$idx-${word_len}c $line_number.$idx] } # Reset set word {} set word_len 0 set skip_word 0 } } } ## Clear all tags marking the misspelled words # @return void public method spellchecker_clear_tags {} { $editor tag remove tag_wrong_spelling 0.0 end } # >>> File inclusion guard } # <<< File inclusion guard mcu8051ide-1.4.7/lib/editor/autocompletion.tcl0000644000175000017500000006610512067167647021711 0ustar milleniummillenium#!/usr/bin/tclsh # Part of MCU 8051 IDE ( http://mcu8051ide.sf.net ) ############################################################################ # Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012 by Martin Ošmera # # martin.osmera@gmail.com # # # # This program is free software; you can redistribute it and#or modify # # it under the terms of the GNU General Public License as published by # # the Free Software Foundation; either version 2 of the License, or # # (at your option) any later version. # # # # This program is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU General Public License for more details. # # # # You should have received a copy of the GNU General Public License # # along with this program; if not, write to the # # Free Software Foundation, Inc., # # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # ############################################################################ # >>> File inclusion guard if { ! [ info exists _AUTOCOMPLETION_TCL ] } { set _AUTOCOMPLETION_TCL _ # <<< File inclusion guard # -------------------------------------------------------------------------- # DESCRIPTION # Implements autocompletion related procedures # This file should be loaded into class Editor in file "editor.tcl" # -------------------------------------------------------------------------- common invoke_com_win_in_p 0 ;# Bool: invoke_completion_popup_window in progress common completion_win_opened 0 ;# Bool: Editor popup-based completion window opended ## Array: Strings available for autocompletion # Index 0 - Labels in assembly # Index 1 - Constants/variables # Index 2 - C variables # Index 3 - Macros # Index 4 - SFR's # Index 5 - Expression symbols # Index 6 - Doxygen tags # Index 7 - C Functions private variable autocompletion_list private variable completion_win_str_i 1.0 ;# TextIndex: String to complete - start index private variable completion_win_end_i 1.0 ;# TextIndex: String to complete - end index private variable completion_win_mode 0 ;# Int: Completion window mode private variable comp_win_loading_in_p 0 ;# Bool: Completion window list loading is in progress private variable comp_win_loading_max 1 ;# Int: Maximum for progressbar in the completion window private variable macl_invocations 0 ;# Int: Number of invocations of "manage_autocompletion_list" private variable doxytag_fg {#000000} ;# Color: Highlight color for doxygen tag private variable indirect_fg {#000000} ;# Color: Highlight color for indirect address private variable symbol_fg {#000000} ;# Color: Highlight color for asm. symbol private variable sfr_fg {#000000} ;# Color: Highlight color for SFR private variable label_fg {#000000} ;# Color: Highlight color for asm. label private variable macro_fg {#000000} ;# Color: Highlight color for asm. macro private variable const_fg {#000000} ;# Color: Highlight color for asm. const private variable dir_fg {#000000} ;# Color: Highlight color for asm. directive private variable cs_fg {#000000} ;# Color: Highlight color for constrol sequence private variable ins_fg {#000000} ;# Color: Highlight color for instruction private variable doxytag_font ${::Editor::defaultFont} ;# Font: Font for doxygen tag private variable indirect_font ${::Editor::defaultFont} ;# Font: Font for indirect address private variable symbol_font ${::Editor::defaultFont} ;# Font: Font for asm. symbol private variable sfr_font ${::Editor::defaultFont} ;# Font: Font for SFR private variable label_font ${::Editor::defaultFont} ;# Font: Font for asm. label private variable macro_font ${::Editor::defaultFont} ;# Font: Font for asm. macro private variable const_font ${::Editor::defaultFont} ;# Font: Font for asm. const private variable dir_font ${::Editor::defaultFont} ;# Font: Font for asm. directive private variable cs_font ${::Editor::defaultFont} ;# Font: Font for constrol sequence private variable ins_font ${::Editor::defaultFont} ;# Font: Font for instruction ## Refresh list of available SFR's and SFB's on the target uC # @return void public method refresh_available_SFR {} { set autocompletion_list(4) [lsort -ascii [$parentObject cget -available_SFR]] } ## Clear list of words for autocompletion window # @return void public method clear_autocompletion_list {} { foreach i {0 1 2 3 7} { set autocompletion_list($i) {} } $parentObject rightPanel_clear_symbol_list } ## Delete some string in the editor # It's important to delete strings in this way in order to keep #+ autocompletion list up to date # @parm TextIndex start_index - Start # @parm TextIndex end_index - End # @parm Bool do_spellcheck - Perform spell check # @return void public method detete_text_in_editor {start_index end_index {do_spellcheck 1}} { autocompletion_maybe_important_change $start_index $end_index if {$do_spellcheck} { spellcheck_change_detected_pre } $editor delete $start_index $end_index if {$do_spellcheck} { spellcheck_change_detected_post } } ## Inform autocompletion mechanism about possibly deleted symbol # @parm TextIndex start_index - Beginning on area to to analyze # @parm TextIndex end_index - End on area to to analyze # @return void public method autocompletion_maybe_important_change {start_index end_index} { set start_index [$editor index $start_index] set end_index [$editor index $end_index] # Detect new symvol foreach tag_name {tag_label tag_constant_def c_lang_var tag_macro_def c_lang_func} \ index {0 1 2 3 7} \ { set linestart_tmp [list $start_index linestart] while {1} { # Detect ... set range [$editor tag nextrange $tag_name \ $linestart_tmp [list $end_index lineend] \ ] set linestart_tmp [lindex $range 1] # Nothing detected ... if {![llength $range]} { break } # Get symbol name set string [$editor get [lindex $range 0] [lindex $range 1]] # Adjust case (all to uppercase except C lang. symbols) if {$index != 2 && $index != 7} { set string [string toupper $string] } # Remove semicolon from labels in assembly if {!$index} { set string [string replace $string end end] } # Adjust autocompletion list set idx [lsearch -ascii -exact $autocompletion_list($index) $string] if {$idx != -1} { $parentObject rightPanel_adjust_symbol_list \ all $string $index 0 $this set autocompletion_list($index) \ [lreplace $autocompletion_list($index) $idx $idx] } } } } ## Significant part of autocompletion mechanism related to C language # Creates tags "c_lang_var" and "c_lang_func" to mark C symbols # @parm Int line_number - Line number # @return void private method autocompletion_c_syntax_analyze {line_number} { # Find word after data type specification set prev_range {} set range [list $line_number.0 $line_number.0] while {1} { set range [$editor tag nextrange tag_c_data_type \ [lindex $range 1] [list $line_number.0 lineend] \ ] if {![llength $range]} { break } set prev_range $range # Nothing found -> abort if {![llength $prev_range]} { return } # Gain details about the word set range $prev_range set line [$editor get $line_number.0 [list $line_number.0 lineend]] set start [lindex [split [lindex $range 1] {.}] 1] set end 0 set string {} # Find part which consist of alphanumeric characters while {1} { if {![regexp -start $start -- {\w+} $line string]} { return } incr start set end [expr {$start + [string length $string]}] if {[string is digit [string index $string 0]]} { incr start [string length $string] } else { break } } # Mark the word if {[regexp -start $end -- {\s*\(} $line]} { $editor tag add c_lang_func $line_number.$start $line_number.$end } else { $editor tag add c_lang_var $line_number.$start $line_number.$end } } } ## Inform autocompletion mechanism about possibly newly defined symbol # @parm Int line_number - Line number # @return void public method manage_autocompletion_list {line_number} { # Detect new symbol foreach tag_name {tag_label tag_constant_def c_lang_var tag_macro_def c_lang_func} \ index {0 1 2 3 7} \ { set linestart_tmp $line_number.0 while {1} { # Detect ... set range [$editor tag nextrange $tag_name \ $linestart_tmp [list $line_number.0 lineend] \ ] set linestart_tmp [lindex $range 1] # Nothing detected ... if {![llength $range]} { break } # Get symbol name set string [$editor get [lindex $range 0] [lindex $range 1]] # Check if it not already defined if {$index != 2 && $index != 7} { set string [string toupper $string] } else { if { [lsearch -ascii -exact ${::CsyntaxHighlight::data_types} $string] != -1 || [lsearch -ascii -exact ${::CsyntaxHighlight::keywords} $string] != -1 } then { continue } } # Remove semicolon from labels in assembly if {!$index} { set string [string replace $string end end] } # Append to the autocompletion list if {[lsearch -ascii -exact $autocompletion_list($index) $string] == -1} { lappend autocompletion_list($index) $string $parentObject rightPanel_adjust_symbol_list \ $line_number $string $index 1 $this $parentObject rightPanel_sm_select $line_number } } } # Sort autocompletion list every 20nd iteration incr macl_invocations if {$macl_invocations > 20} { set macl_invocations 0 foreach i {0 1 2 3 7} { set autocompletion_list($i) [lsort -ascii $autocompletion_list($i)] } } } ## Invoke popup menu completon window # @parm Bool mode - Mode of autocompletion # 0 - Instructions, directives and macro's # 1 - Constants and labels # 2 - C functions # 3 - Indirect values # 4 - Doxygen tags # @parm String str - Incomplete instruction or directive # @parm Int x - Relative X position of the popup window (relative to editor) # @parm Int y - Relative Y position of the popup window (relative to editor) # @return void private method invoke_completion_popup_window {mode start_idx end_idx} { if {$invoke_com_win_in_p} { update return } set invoke_com_win_in_p 1 set bbox [$editor bbox $start_idx] if {![llength $bbox]} { set invoke_com_win_in_p 0 return } set x [lindex $bbox 0] set y [expr {[lindex $bbox 1] + [lindex $bbox 3]}] set str [$editor get $start_idx $end_idx] if {![string length $str]} { close_completion_popup_window set invoke_com_win_in_p 0 return } set loading 0 if {!$comp_win_loading_in_p && [string first 0 $highlighted_lines 1] > 0} { set loading 1 set ::X::compilation_progress 0 set comp_win_loading_max [highlight_all_count_of_iterations] } # Close current window if any close_completion_popup_window # Adjust arguments set str_org $str # Set opened flag set completion_win_opened 1 set do_not_hide_comp_win 1 set completion_win_str_i $start_idx set completion_win_end_i $end_idx set completion_win_mode $mode # Create window if {![winfo exists .completion_win]} { set win [frame .completion_win -background {#000000}] bind $win "catch {$this completion_popup_window_but1 %X %Y}" bind $win "$this close_completion_popup_window" bind $win " catch {$this detete_text_in_editor sel.first sel.last} $this parse \[expr {int(\[$editor index insert\])}\]" bind $win " catch {$this detete_text_in_editor sel.first sel.last} $this close_completion_popup_window" # Create lisbox and scrollbar set frame [frame $win.frame] set listbox [ListBox $frame.listbox \ -relief flat -bd 0 -selectfill 0 \ -selectbackground {#AAAAFF} \ -bg white -cursor left_ptr \ -yscrollcommand "$frame.scrollbar set" \ -selectmode single -width 0 -height 0 \ -highlightthickness 0 -padx 2 \ -font $defaultFont_bold \ ] set completion_listbox $listbox pack $listbox -side left -fill both -expand 1 pack [ttk::scrollbar $frame.scrollbar \ -orient vertical \ -command "$listbox yview" \ ] -side right -after $listbox -fill y ProgressBar .completion_win.progress_bar \ -troughcolor #DDDDDD \ -type normal -height 4 -bd 0 \ -variable {::X::compilation_progress} \ pack $frame -padx 1 -pady 1 -fill both -expand 1 $listbox bindText "$this completion_accept" $listbox bindText "$this close_completion_popup_window" bind $listbox "$this completion_accept \[$listbox selection get\]" bind $listbox "$this completion_accept \[$listbox selection get\]" bind $listbox "$this close_completion_popup_window" if {[winfo exists $listbox.c]} { bind $listbox.c {%W yview scroll +1 units; break} bind $listbox.c {%W yview scroll -1 units; break} } } set listbox ".completion_win.frame.listbox" $listbox selection clear $listbox delete [$listbox items] update idletasks if {$loading || $comp_win_loading_in_p} { if {!($comp_win_loading_max > 1)} { set comp_win_loading_max 1 } .completion_win.progress_bar configure -maximum $comp_win_loading_max catch { pack .completion_win.progress_bar -fill x -pady 0 } } # Fill up listbox set end [string length $str] incr end -1 set last_inserted {} set string_width 0 set required_width 70 if {$mode != 2 && $mode != 4} { set str [string toupper $str] } if {$mode == 3} { foreach command {@R0 @R1 @DPTR @A+DPTR @A+PC} { set shortcmd [string range $command 0 $end] if {$shortcmd == $str} { set last_inserted $command $listbox insert end #auto \ -text $command \ -fg $indirect_fg \ -font $indirect_font set string_width [font measure $defaultFont_bold $command] if {$required_width < $string_width} { set required_width $string_width } } } } else { for {set i 0} {$i < 8} {incr i} { switch -- $i { 0 { if {$mode != 1} { continue } set color $label_fg set font $label_font } 1 { if {$mode != 1} { continue } set color $const_fg set font $const_font } 2 { if {$mode != 2 || $prog_language != 1} { continue } set color {black} set font $defaultFont } 3 { if {$mode != 0} { continue } set color $macro_fg set font $macro_font } 4 { if {$mode != 1} { continue } set color $sfr_fg set font $sfr_font } 5 { if {$mode != 1} { continue } set color $symbol_fg set font $symbol_font } 6 { if {$mode != 4} { continue } set color $doxytag_fg set font $doxytag_font } 7 { if {$mode != 2 || $prog_language != 1} { continue } set color {#0000DD} set font $defaultFont } } foreach command $autocompletion_list($i) { set shortcmd [string range $command 0 $end] if {$shortcmd == $str} { set last_inserted $command $listbox insert end #auto \ -text $command \ -fg $color \ -font $font set string_width [font measure $defaultFont_bold $command] if {$required_width < $string_width} { set required_width $string_width } } } } } if {$mode == 0} { # Instructions and directives if {[string index $str 0] != {$}} { foreach command ${::ASMsyntaxHighlight::instructions} { set shortcmd [string range $command 0 $end] if {$shortcmd == $str} { set last_inserted $command $listbox insert end #auto \ -text $command \ -fg $ins_fg \ -font $ins_font } } foreach command ${::ASMsyntaxHighlight::all_directives} { set shortcmd [string range $command 0 $end] if {$shortcmd == $str} { set last_inserted $command $listbox insert end #auto \ -text $command \ -fg $dir_fg \ -font $dir_font } } # Control sequences } else { foreach command ${::ASMsyntaxHighlight::all_controls__with_dolar} { set shortcmd [string range $command 0 $end] if {$shortcmd == $str} { set last_inserted $command $listbox insert end #auto \ -text $command \ -fg $cs_fg \ -font $cs_font } } } } set num_of_items [llength [$listbox items]] # If the listbox is empty -> delete window set do_not_show 0 if {!$num_of_items} { set do_not_show 1 } elseif {$num_of_items == 1 && $last_inserted == $str} { set do_not_show 1 # Automaticaly complete the incomplete command } else { set command [$listbox itemcget [$listbox item 0] -text] set insert [$editor index insert] set cmd_len [string length $command] set str_len [string length $str] if {$mode != 2 && ![string is upper [regsub -all {[_\d@]} $str_org {}]]} { set command [string tolower $command] } $editor configure -autoseparators 0 catch {$editor tag remove sel 1.0 end} $editor insert insert [string range $command $str_len end] $editor mark set insert $insert $editor tag add sel insert insert+[expr {$cmd_len - $str_len}]c $editor edit separator $editor configure -autoseparators 1 parse [expr {int([$editor index insert])}] } # Do not display the window if {$do_not_show} { set invoke_com_win_in_p 0 close_completion_popup_window # Display the window } else { place .completion_win -width [expr {$required_width + 30}] \ -height 105 -anchor nw -x $x -y $y -in $editor raise .completion_win update catch { grab -global .completion_win } } set invoke_com_win_in_p 0 # Highlight all in background to gain autocompletion list if {$loading && !$comp_win_loading_in_p} { comp_win_highlight_all_in_background } } ## Auxiliary method for "comp_win_highlight_all_in_background" #+ (Highlight all in background), part of autocompletion mechanism # @return void public method comp_win_highlight_all_in_background_AUX {} { if {!$comp_win_loading_in_p} { set comp_win_loading_in_p 1 highlight_all set comp_win_loading_in_p 0 catch { pack forget .completion_win.progress_bar } } } ## Highlight all in background # @return void public method comp_win_highlight_all_in_background {} { after idle "catch {$this comp_win_highlight_all_in_background_AUX}" } ## Informs editor about that than autocompletion has been turned on # @return void public method autocompletion_turned_on {} { set highlighted_lines [string repeat 0 [string bytelength $highlighted_lines]] } ## Completion -- accept selection # @parm Sring item - Listbox item # @return void public method completion_accept {item} { if {$item == {}} { return } if {[llength [$editor tag nextrange sel 1.0]]} { $editor delete sel.first sel.last } set item [$completion_listbox itemcget $item -text] set text_org [$editor get $completion_win_str_i $completion_win_end_i] if {$completion_win_mode != 2 && ![string is upper [regsub -all {[_\d@]} $text_org {}]]} { set item [string tolower $item] } $editor delete $completion_win_str_i $completion_win_end_i $editor insert $completion_win_str_i $item set line [expr {int([$editor index insert])}] recalc_status_counter {} 0 parse $line close_completion_popup_window } ## Close completion popup window if user clicked out of it # @parm Int X - absolute horizontal position of mouse pointer # @parm Int Y - absolute vertical position of mouse pointer # @retrun void public method completion_popup_window_but1 {X Y} { set min_x [winfo rootx .completion_win] set min_y [winfo rooty .completion_win] set max_x [expr {$min_x + [winfo width .completion_win]}] set max_y [expr {$min_y + [winfo height .completion_win]}] if {$X > $max_x || $X < $min_x || $Y > $max_y || $Y < $min_y} { close_completion_popup_window } } ## Unconditionaly safely close completion popup window # @return void public method close_completion_popup_window {} { if {$invoke_com_win_in_p} {return} set invoke_com_win_in_p 1 if {$completion_win_opened} { catch {$editor delete sel.first sel.last} grab release .completion_win place forget .completion_win focus -force $editor parse [expr {int([$editor index insert])}] } set completion_win_opened 0 set invoke_com_win_in_p 0 } ## Unconditionaly safely close completion popup window regardless #+ state of this object # @return void proc close_completion_popup_window_NOW {} { if {${::Editor::invoke_com_win_in_p}} {return} set ::Editor::invoke_com_win_in_p 1 if {${::Editor::completion_win_opened}} { catch { grab release .completion_win } catch { place forget .completion_win } } set ::Editor::completion_win_opened 0 set ::Editor::invoke_com_win_in_p 0 } ## Auxiliary method for method "Key" # Invokes autocompletion menu # @parm TextIndex wordstart - Index of {insert-1c wordstart} # @parm TextIndex wordstart - Index of {insert-1c wordend} # @return void private method aux_Key_autocompletion_0 {wordstart wordend} { # Get range of tag MACRO (possibly incomplete instruction) on the curent line set mc_range [$editor tag nextrange tag_macro $wordstart $wordend] if {![llength $mc_range]} { set mc_range [$editor tag nextrange tag_directive $wordstart $wordend] } if {![llength $mc_range]} { set mc_range [$editor tag nextrange tag_instruction $wordstart $wordend] } if {![llength $mc_range]} { set mc_range [$editor tag nextrange tag_control $wordstart $wordend] } # Open completion window if {[llength $mc_range] && [$editor compare insert == [lindex $mc_range 1]]} { invoke_completion_popup_window 0 \ [lindex $mc_range 0] [lindex $mc_range 1] # Try comething else ... } else { aux_Key_autocompletion_1 $wordstart $wordend } } ## Auxiliary method for method "aux_Key_autocompletion_0" # Invokes autocompletion menu # @parm TextIndex wordstart - Index of {insert-1c wordstart} # @parm TextIndex wordstart - Index of {insert-1c wordend} # @return void private method aux_Key_autocompletion_1 {wordstart wordend} { # Get range of tag CONSTANT or SFR on the curent line set mc_range [$editor tag nextrange tag_constant $wordstart $wordend] if {![llength $mc_range]} { set mc_range [$editor tag nextrange tag_sfr $wordstart $wordend] } # Open completion window if {[llength $mc_range] && [$editor compare insert == [lindex $mc_range 1]]} { invoke_completion_popup_window 1 \ [lindex $mc_range 0] [lindex $mc_range 1] # Try comething else ... } else { aux_Key_autocompletion_2 $wordstart $wordend } } ## Auxiliary method for method "aux_Key_autocompletion_1" # Invokes autocompletion menu # @parm TextIndex wordstart - Index of {insert-1c wordstart} # @parm TextIndex wordstart - Index of {insert-1c wordend} # @return void private method aux_Key_autocompletion_2 {wordstart wordend} { # Get range of tag indirect on the curent line set mc_range [$editor tag nextrange tag_indirect $wordstart-1c $wordend] # Open completion window if {[llength $mc_range] && [$editor compare insert == [lindex $mc_range 1]]} { invoke_completion_popup_window 3 \ [lindex $mc_range 0] [lindex $mc_range 1] # Try comething else ... } else { aux_Key_autocompletion_3 $wordstart $wordend } } ## Auxiliary method for method "aux_Key_autocompletion_2" # Invokes autocompletion menu # @parm TextIndex wordstart - Index of {insert-1c wordstart} # @parm TextIndex wordstart - Index of {insert-1c wordend} # @return void private method aux_Key_autocompletion_3 {wordstart wordend} { # Get range of tag IMMEDIATE CONSTANT on the curent line set mc_range [$editor tag nextrange tag_imm_constant $wordstart-1c $wordend] # Open completion window if {[llength $mc_range] && [$editor compare insert == [lindex $mc_range 1]]} { invoke_completion_popup_window 1 \ [$editor index [list [lindex $mc_range 0] + 1c]] \ [lindex $mc_range 1] # Try comething else ... } else { aux_Key_autocompletion_4 $wordstart $wordend } } ## Auxiliary method for method "aux_Key_autocompletion_3" # Invokes autocompletion menu # @parm TextIndex wordstart - Index of {insert-1c wordstart} # @parm TextIndex wordstart - Index of {insert-1c wordend} # @return void private method aux_Key_autocompletion_4 {wordstart wordend} { # Get range of tag DOXYGEN TAG on the curent line set mc_range [$editor tag nextrange tag_c_dox_tag $wordstart-1c $wordend] # Open completion window if { $prog_language == 1 && [llength $mc_range] && [$editor compare insert == [lindex $mc_range 1]] } then { invoke_completion_popup_window 4 \ [lindex $mc_range 0] [lindex $mc_range 1] # Try comething else ... } else { aux_Key_autocompletion_5 $wordstart $wordend } } ## Auxiliary method for method "aux_Key_autocompletion_4" # Invokes autocompletion menu # @parm TextIndex wordstart - Index of {insert-1c wordstart} # @parm TextIndex wordstart - Index of {insert-1c wordend} # @return void private method aux_Key_autocompletion_5 {wordstart wordend} { # Find word with no tags if { $prog_language == 1 && [$editor compare insert == $wordend] } then { set tags [$editor tag names insert-1c] # Remove unimportant tags if {[llength $tags]} { foreach lm [concat $line_markers {tag_current_line}] { set idx [lsearch -ascii -exact $tags $lm] if {$idx != -1} { set tags [lreplace $tags $idx $idx] } } } # Open auto-completion window if {[llength $tags]} { invoke_completion_popup_window 2 $wordstart $wordend } # Close completion window } else { close_completion_popup_window } } ## Determinate color for instructions, directives, etc. # @return void private method refresh_highlighting_for_autocompletion {} { foreach key ${::ASMsyntaxHighlight::highlight_tags} { if {[lindex $key 0] == {tag_instruction}} { set ins_fg [lindex $key 1] set ins_font [$editor tag cget tag_instruction -font] } elseif {[lindex $key 0] == {tag_directive}} { set dir_fg [lindex $key 1] set dir_font [$editor tag cget tag_directive -font] } elseif {[lindex $key 0] == {tag_constant}} { set const_fg [lindex $key 1] set const_font [$editor tag cget tag_constant -font] } elseif {[lindex $key 0] == {tag_macro}} { set macro_fg [lindex $key 1] set macro_font [$editor tag cget tag_macro -font] } elseif {[lindex $key 0] == {tag_label}} { set label_fg [lindex $key 1] set label_font [$editor tag cget tag_label -font] } elseif {[lindex $key 0] == {tag_sfr}} { set sfr_fg [lindex $key 1] set sfr_font [$editor tag cget tag_sfr -font] } elseif {[lindex $key 0] == {tag_symbol}} { set symbol_fg [lindex $key 1] set symbol_font [$editor tag cget tag_symbol -font] } elseif {[lindex $key 0] == {tag_indirect}} { set indirect_fg [lindex $key 1] set indirect_font [$editor tag cget tag_indirect -font] } elseif {[lindex $key 0] == {tag_control}} { set cs_fg [lindex $key 1] set cs_font [$editor tag cget tag_control -font] } } if {$prog_language == 1} { foreach key ${::CsyntaxHighlight::highlight_tags} { if {[lindex $key 0] == {tag_c_dox_tag}} { set doxytag_fg [lindex $key 1] set doxytag_font [$editor tag cget tag_c_dox_tag -font] } } } } # >>> File inclusion guard } # <<< File inclusion guard mcu8051ide-1.4.7/lib/editor/generalproc.tcl0000644000175000017500000020514412067167647021146 0ustar milleniummillenium#!/usr/bin/tclsh # Part of MCU 8051 IDE ( http://mcu8051ide.sf.net ) ############################################################################ # Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012 by Martin Ošmera # # martin.osmera@gmail.com # # # # This program is free software; you can redistribute it and#or modify # # it under the terms of the GNU General Public License as published by # # the Free Software Foundation; either version 2 of the License, or # # (at your option) any later version. # # # # This program is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU General Public License for more details. # # # # You should have received a copy of the GNU General Public License # # along with this program; if not, write to the # # Free Software Foundation, Inc., # # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # ############################################################################ # >>> File inclusion guard if { ! [ info exists _GENERALPROC_TCL ] } { set _GENERALPROC_TCL _ # <<< File inclusion guard # -------------------------------------------------------------------------- # DESCRIPTION # Implements general purpose procedures # This file should be loaded into class Editor in file "editor.tcl" # -------------------------------------------------------------------------- ## Insure than simulator cursor is in visible area # @return void public method see_sim_cursor {} { if {[llength [$editor tag nextrange tag_simulator_curr 1.0 end]]} { $editor see tag_simulator_curr.first } } ## Switch betweeen selection modes (Normal / Block) # @return void public method switch_sel_mode {} { set selection_mode [expr {!$selection_mode}] if {$selection_mode} { adjust_selection_to_block $sel_mode_lbl configure -text [mc "BLK"] -fg #0088CC } else { if {[llength [$editor tag nextrange sel 1.0]]} { $editor tag add sel sel.first sel.last } $sel_mode_lbl configure -text [mc "NORM"] -fg #000000 } } ## Switch between modes "Insert" and "Overwrite" # @return void public method switch_ins_ovr {} { if {$ro_mode} {return} set ins_ovr_mode [expr {!$ins_ovr_mode}] adjust_INS_OVR_label } ## Get list of breapoints # @return List - result (eg. '{0 1 1 0 0 0}') public method getBreakpoints {} { return $breakpoints } ## Find a string in the text, scroll to it and select it # @parm Bool fromCursor - Search from cursor / whole document # @parm Bool Backwards - Search backwards from cursor / forwards # @parm Bool regExp - Use regular expressions / exact matching # @parm Bool noCase - Case insensitive / sensitive # @parm Bool inSelection - Search in the selected block / search globaly # @parm String Sindex - index in the text where the search should start # @parm String String - String to search # @return List - {indexMatchBeginning indexMatchEnd matchesCount} public method find {fromCursor Backwards regExp noCase inSelection Sindex String} { ## adjust search options # set Stop-Index (and Start-index) depending on variable $inSelection if {![llength [$editor tag nextrange sel 1.0]]} { set inSelection 0 } if {$inSelection} { set Sindex sel.first set Eindex sel.last } else { if {$Backwards} { set Eindex 1.0 } else { set Eindex {end} } } # set direction and possibly Start-index too if {$fromCursor} { # Sindex set Sindex {insert} } else { # Sindex if {$Sindex == {}} { if {$Backwards} { set Sindex end } else { set Sindex 1.0 } } } # direction if {$Backwards} { append Sindex -[expr {[string length $String] - 1}]c set direction {-backwards} } else { set direction {-forwards} } # set exact or regexp based on search and case sensitivity if {$regExp} {set regexp {-regexp}} {set regexp {-exact}} ## Perform search if {[catch { if {$noCase} { set index [$editor search $direction $regexp -nocase \ -count {::editor_search_count} -- \ $String $Sindex $Eindex] } else { set index [$editor search $direction $regexp \ -count {::editor_search_count} -- \ $String $Sindex $Eindex] } } result]} then { return [list -1 $result] } ## Focus on the found string if {$index != {}} { # Determinate number of column (begin) and row of matched string set lineNumber [expr {int($index)}] regexp {\d+$} $index colNumber # Determinate lenght of matched string if {$regExp} { regexp $String [$editor get $Sindex $Eindex] String } # Determinate number of end column of matched string set end_col [string length $String] set end_col [expr {$end_col + $colNumber}] # Goto line with the found match and select that matched string if {$Backwards} { goto $lineNumber.$colNumber } else { goto $lineNumber.$end_col } $editor tag remove sel 1.0 end $editor tag add sel $index $lineNumber.$end_col # set result according to values determinated above set matches "$index $lineNumber.$end_col ${::editor_search_count}" } else { # set result to something like 'nothing found' set matches "$Sindex $Sindex 0" } # return result (see procedure header for details) return $matches } ## Find a string in the text and replce it by something else ... # note: using 'find' procedure # @parm Bool fromCursor - Search from cursor / whole document # @parm Bool inSelection - Search in the selected block / search globaly # @parm Bool Backwards - Search backwards from cursor / forwards # @parm Bool regExp - Use regular expressions / exact matching # @parm Bool noCase - Case insensitive / sensitive # @parm String SearchString - String to search # @parm String Replacement - String to replace SearchString # @parm Bool confirm - (see attribute confirmCMD below) # @parm String confirmCMD - command which will be executed on each match if cofirm is 1, # acceptable return values are: # 0 : Replace and search next # 1 : Replace and close # 2 : Replace all without prompt # 3 : Search next # 4 : Close # @return Bool - 1 == Ok; 0 == last replacement was refused by user public method replace {fromCursor Backwards regExp noCase SearchString Replacement confirm confirmCMD} { # Local variables set remaining 1 ;# Int - Count of remaining matches to replace set repl_made 0 ;# Int - Count of replacements made set close 0 ;# Bool - Close after this replace set cnd 1 ;# Bool - Perform replacement in this iteration # Save the current insertion cursor index set ins_index [$editor index insert] if {$critical_edit_proc} {return 0} set critical_edit_proc 1 ## Derminate indexes of the area to be affected if {$fromCursor} { # from actual cursor position set index {insert} } else { if {$Backwards} { set index {end} } else { set index 1.0 } } ## Perform replacement for each match set index_org {} set index_new {} while {1} { # Initiate search and determinate count of remaining matches set last_chance 0 while {1} { set result [find $fromCursor $Backwards $regExp $noCase 0 $index $SearchString] set remaining [lindex $result 2] if {$remaining == 0} {break} # Determinate index where to reinitiate search set index_org $index_new set index [lindex $result [expr {!$Backwards}]] set index_new $index if {$index_org == $index} { if {$last_chance} { break } else { if {!$Backwards} { set index [$editor index [list $index {+1c}]] } else { set index [$editor index [list $index {-1c}]] } set last_chance 1 } } else { set last_chance 0 break } } if {$last_chance || $remaining == 0 || $remaining == {}} { break } # Ask user if there is requested confirmation before each replace if {$confirm} { # invoke confirmation command and setup new parameters switch -- [$confirmCMD] { 0 { ;# Replace set cnd 1 } 1 { ;# Replace & close set cnd 1 set close 1 } 2 { ;# Replace all set cnd 1; set confirm 0 } 3 { ;# Find next set cnd 0 } 4 { ;# Close set cnd 1 break } } } else { # automatically replace all without any prompt set cnd 1 } # Perform replace if it's allowed if {$cnd} { # Determinate indexes of string to replace set start [lindex $result 0] set end [lindex $result 1] # Replace $editor configure -autoseparators 0 detete_text_in_editor $start $end $editor insert $start $Replacement if {!$Backwards} { set index [$editor index insert] } $editor edit separator $editor configure -autoseparators 1 # restore syntax highlight on all affected lines set start [expr {int($start)}] set end [expr {int($end)}] if {$confirm} { for {set line $start} {$line <= $end} {incr line} { parse $line } } else { for {set line $start} {$line <= $end} {incr line} { restore_line_markers $line } set highlighted_lines [string replace $highlighted_lines \ $start $end [string repeat 0 [expr {$end - $start + 1}]]] } # increment counter of made replacemetns incr repl_made # contitionaly break replacing loop if {$close} {break} } # decrease counter of remining replacements incr remaining -1 } $editor tag remove sel 1.0 end ## Change application status bar (show results) Sbar [mc "Replace: %s replacements made" $repl_made] goto $ins_index highlight_visible_area set critical_edit_proc 0 return $cnd } ## Select all content of the editor's text widget # @return void public method select_all {} { catch { $editor tag remove sel 1.0 end } $editor tag add sel 1.0 end } ## Comment the selected area or current line # @return void public method comment {} { if {$editor_to_use} {return} if {$completion_win_opened} {return} set start [expr {int([$editor index insert])}] $editor configure -autoseparators 0 # Assembly language if {$prog_language == 0 || $prog_language == 3 || [string index $highlighted_lines $start] == 6} { # determinate indexes of area to comment if {[getselection] == {}} { set restore_sel 0 set end $start } else { set restore_sel 1 set start [expr {int([$editor index sel.first])}] set end_o [$editor index sel.last] set end [expr {int($end_o)}] if {$end == $end_o} {incr end -1} } # comment each line in the block autocompletion_maybe_important_change $start.0 $end.0 for {set line $start} {$line <= $end} {incr line} { $editor insert $line.0 {;} restore_line_markers $line } # C language } elseif {$prog_language == 1} { # determinate indexes of area to comment if {[getselection] == {}} { set by_lines 1 set restore_sel 0 set end $start } else { set start_o [$editor index sel.first] set start [expr {int($start_o)}] set end_o [$editor index sel.last] set end [expr {int($end_o)}] if {$end == $end_o && $start == $start_o} { set restore_sel 1 set by_lines 1 } else { set restore_sel 0 set by_lines 0 } if {$end == $end_o} { incr end -1 } } # Comment each line in the block autocompletion_maybe_important_change $start.0 $end.0 if {$by_lines} { for {set line $start} {$line <= $end} {incr line} { $editor insert $line.0 {// } restore_line_markers $line } # Comment only selected characters } else { $editor insert $end_o { */} $editor insert $start_o {/* } $editor tag add sel sel.first-3c sel.last+3c } } else { $editor edit separator $editor configure -autoseparators 1 return } $editor edit separator $editor configure -autoseparators 1 if {$prog_language != -1} { # Restore highlight if {$prog_language == 1 && ![string index $highlighted_lines $start] == 6} { parse $start } else { for {set i $start} {$i <= $end} {incr i} { parse $i } } # Restore selection shape if {$restore_sel} { $editor tag add sel "$start.0 linestart" "$end.0 lineend" } } } ## Remove first semicolon in selected area or current line # @return bool - result public method uncomment {} { if {$editor_to_use} {return} if {$completion_win_opened} {return} set succesful 0 set start [expr {int([$editor index insert])}] $editor configure -autoseparators 0 # Assembly language if {$prog_language == 0 || $prog_language == 3 || [string index $highlighted_lines $start] == 6} { # determinate indexes of area to uncomment if {[getselection] == {}} { set restore_sel 0 set end $start } else { set restore_sel 1 set start [expr {int([$editor index sel.first])}] set end_o [$editor index sel.last] set end [expr {int($end_o)}] if {$end == $end_o} {incr end -1} } # Uncomment each line in the block for {set line $start} {$line <= $end} {incr line} { # get line set line_data [$editor get $line.0 "$line.0 lineend"] if {[regexp {^\s*;\s*} $line_data comment]} { detete_text_in_editor $line.0 $line.[string length $comment] 0 regsub {;} $comment {} comment $editor insert $line.0 $comment restore_line_markers $line manage_autocompletion_list $line set succesful 1 } } # C language } elseif {$prog_language == 1} { # determinate indexes of area to comment if {[getselection] == {}} { set by_lines 1 set restore_sel 0 set end $start } else { set start_o [$editor index sel.first] set start [expr {int($start_o)}] set end_o [$editor index sel.last] set end [expr {int($end_o)}] if {$end == $end_o && $start == $start_o} { set restore_sel 1 set by_lines 1 } else { set restore_sel 0 set by_lines 0 } if {$end == $end_o} { incr end -1 } } # Uncomment only selected characters if {!$by_lines} { set start_data [$editor get $start_o [list $start_o lineend]] set end_data [$editor get [list $end_o linestart] $end_o] if { [regexp {^\s*/\* ?} $start_data start_data] && [regexp { ?\*/\s*$} $end_data end_data] } then { set succesful 1 set start_data [string length $start_data] set end_data [string length $end_data] detete_text_in_editor $end_o-${end_data}c $end_o 0 detete_text_in_editor $start_o $start_o+${start_data}c 0 } } # Uncomment each line in the block for {set line $start} {$line <= $end} {incr line} { set line_data [$editor get $line.0 [list $line.0 lineend]] if {[regexp {^\s*// ?} $line_data line_data]} { set line_data [string length $line_data] detete_text_in_editor $line.0 $line.$line_data 0 manage_autocompletion_list $line set succesful 1 } restore_line_markers $line } } else { $editor edit separator $editor configure -autoseparators 1 return $succesful } $editor edit separator $editor configure -autoseparators 1 if {$prog_language != -1} { # Restore highlight if {$prog_language == 1 && ![string index $highlighted_lines $start] == 6} { parse $start } else { for {set i $start} {$i <= $end} {incr i} { parse $i } } # Restore selection shape if {$restore_sel} { $editor tag add sel "$start.0 linestart" "$end.0 lineend" } } # Perform spell checking for all the affected lines if {$spellchecker_enabled} { for {set i $start} {$i <= $end} {incr i} { spellcheck_check_all $i } } # Return result return $succesful } ## Go to line number or text index in the text # @parm Number textIndex - Can be line number (like 154) or text index (like 32.17) # @return void public method goto {textIndex} { if {$editor_to_use} {return} # Check for validity of the given argument if {![regexp {^\d+(\.\d+)?$} $textIndex]} { return } # Adjust the given parameter if {![regexp {\.} $textIndex]} { set textIndex "$textIndex.0" } # Scroll to the required index and move cursor there rightPanel_adjust [expr {int($textIndex)}] $editor mark set insert $textIndex if {!$frozen} { $editor tag remove tag_current_line 1.0 end $editor tag add tag_current_line \ [$editor index "$textIndex linestart"] \ [$editor index "$textIndex +1 line linestart"] } recalc_status_counter {} 0 update idletasks $editor see insert } ## Delete all selected characters # @return Bool - Anything deleted public method deleteselection {{parse_lines 0}} { set ranges [$editor tag ranges sel] set len [llength $ranges] for {set i 0; set j 1} {$i < $len} {incr i 2; incr j 2} { detete_text_in_editor [lindex $ranges $i] [lindex $ranges $j] if {$prog_language == 1} { c_syntax_highlight [expr {int([lindex $ranges $i])}] } if {$parse_lines} { set first [expr {int([lindex $ranges $i])}] set last [expr {int([lindex $ranges $j])}] set highlighted_lines [string replace $highlighted_lines \ $first $last [string repeat 0 [expr {$last - $first + 1}]]] $this parse $first } } return [expr {!(!$len)}] } ## Get currently selected text # @return String - content of the selected area public method getselection {} { set data {} set ranges [$editor tag ranges sel] set len [llength $ranges] for {set i 0; set j 1} {$i < $len} {incr i 2; incr j 2} { if {$i} { append data "\n" } append data [$editor get [lindex $ranges $i] [lindex $ranges $j]] } return $data } ## Indent content of the selected area or current line # @return void public method indent {} { if {$completion_win_opened} {return} # Determinate indexes of area to be affected if {[getselection] == {}} { set restore_sel 0 set start [expr {int([$editor index insert])}] set end $start } else { set restore_sel 1 set start [expr {int([$editor index sel.first])}] set end_o [$editor index sel.last] set end [expr {int($end_o)}] if {$end == $end_o} {incr end -1} } # indent each line in the block if {$spaces_no_tabs} { set indent_char [string repeat { } $number_of_spaces] } else { set indent_char "\t" } for {set line $start} {$line <= $end} {incr line} { $editor insert $line.0 $indent_char rightPanel_changeLineContent $line restore_line_markers $line } # Restore selection shape if {$restore_sel} { $editor tag add sel "$start.0 linestart" "$end.0 lineend" } $editor tag add sel $start.0 [expr {$end + 1}].0 } ## Unindent content of the selected area or current line # @return void public method unindent {} { if {$completion_win_opened} {return} # Determinate indexes of area to be affected if {[getselection] == {}} { set restore_sel 0 set start [expr {int([$editor index insert])}] set end [expr {int([$editor index insert])}] } else { set restore_sel 1 set start [expr {int([$editor index sel.first])}] set end_o [$editor index sel.last] set end [expr {int($end_o)}] if {$end == $end_o} {incr end -1} } # unindent each line in the block for {set line $start} {$line <= $end} {incr line} { set line_data [$editor get $line.0 "$line.0 lineend"] if {$spaces_no_tabs} { if {[regexp {^ +} $line_data space]} { set space [string length $space] if {$space > $number_of_spaces} { set space $number_of_spaces } detete_text_in_editor $line.0 $line.$space } elseif {[regexp {^\t} $line_data]} { detete_text_in_editor $line.0 $line.1 } } else { if {[regexp {^[\t( )]} $line_data]} { detete_text_in_editor $line.0 $line.1 } } rightPanel_changeLineContent $line } # Restore selection shape if {$restore_sel} { $editor tag add sel "$start.0 linestart" "$end.0 lineend" } $editor tag add sel $start.0 [expr {$end + 1}].0 } ## Get contents of the text widget # EOL: LF # Encoding: UTF-8 # @return String public method getdata {} { return [regsub {\n$} [$editor get 1.0 end] {}] } ## Get contents of the text widget # EOL: $eol # Encoding: $encoding # @return String public method getdata_adjusted_ENC_and_EOL {} { switch -- $eol { {lf} {set eol_char "\n"} {cr} {set eol_char "\r"} {crlf} {set eol_char "\r\n"} } return [encoding convertto $encoding \ [regsub -all {\n} \ [regsub {\n$} \ [$editor get 1.0 end] \ {}] \ $eol_char] \ ] \ } ## Get MD5 of the opened file # @return String - MD5 hash public method get_md5 {} { switch -- $eol { {lf} {set eol_char "\n"} {cr} {set eol_char "\r"} {crlf} {set eol_char "\r\n"} } return [md5::md5 -hex \ [encoding convertto $encoding \ [regsub -all {\n} \ [regsub {\n$} \ [$editor get 1.0 end] \ {}] \ $eol_char] \ ] \ ] } ## Add/Remove bookmark to/from current line # Directly depends on variable "bookmarks" (managed by proc. recalc_left_frame) # @parm Int idx=NULL - target text index # @return bool - 0: bookmark removed; 1: bookmark created public method Bookmark {{idx {}}} { if {$editor_to_use} {return} # Determinate line number if {$idx != {}} { set lineNumber [expr {int($idx)}] } else { set lineNumber [expr {int([$editor index insert])}] } # Check for maximum line number value if {[expr {$lineNumber - [llength $bookmarks]}] > -1} { recalc_left_frame return } # Add or remove bookmark ? if {[lindex $bookmarks $lineNumber] == 1} {set make 0} {set make 1} lset bookmarks $lineNumber $make # Adjust line number set lineNumber_i [wrap_aux_idx2line $lineNumber] ## Add/remove bookmark icon to/from iconBorder $iconBorder configure -state normal ;# Enable the text widget set scroll_in_progress 1 ;# Disable scrolling # Add icon if {$make} { $iconBorder delete $lineNumber_i.0 $lineNumber_i.2 if {$defaultCharHeight < 9} { $iconBorder insert $lineNumber_i.0 {*} } elseif {$defaultCharHeight < 15} { $iconBorder image create $lineNumber_i.0 \ -image ::ICONS::16::dot \ -align center } else { if {[llength [$editor tag nextrange tag_error $lineNumber.0 [list $lineNumber.0 lineend]]]} { set image {bm_ex} } else { set image {bookmark} } $iconBorder image create $lineNumber_i.0 \ -image ::ICONS::16::$image \ -align center } # Remove icon } else { $iconBorder delete $lineNumber_i.0 $lineNumber_i.2 if { [llength [$editor tag nextrange tag_error $lineNumber.0 [list $lineNumber.0 lineend]]] && $defaultCharHeight >= 15 } then { $iconBorder image create $lineNumber_i.0 \ -image ::ICONS::16::exclamation \ -align center } } # Disable the text widget $iconBorder configure -state disabled # Take care of bookmark tag set tmp $lineNumber incr tmp # Add the tag if {$make} { $editor tag add tag_bookmark $lineNumber.0 $tmp.0 $parentObject rightPanel_add_bookmark $lineNumber $parentObject rightPanel_bm_select $lineNumber # Remove the tag } else { $editor tag remove tag_bookmark $lineNumber.0 $tmp.0 $parentObject rightPanel_remove_bookmark $lineNumber $parentObject rightPanel_bm_unselect } # Enable scrolling update idletasks set scroll_in_progress 0 # Done ... return $make } ## Add/Remove breapoint to/from current line # Directly depends on variable "breakpoints" (managed by proc. recalc_left_frame) # @parm Int idx=NULL - target text index # @return bool - 0: breakpoint removed; 1: breakpoint created; or {} public method Breakpoint {{idx {}}} { # Determinate line number if {$idx != {}} { set lineNumber [expr {int($idx)}] } else { set lineNumber [expr {int([$editor index insert])}] } # Check for maximum line number value if {[expr {$lineNumber - [llength $breakpoints]}] > -1} { recalc_left_frame return } # Add or remove breakpoint ? if {[lindex $breakpoints $lineNumber] == 1} {set make 0} {set make 1} # Set breakpoint flag lset breakpoints $lineNumber $make # Adjust line number set lineNumber_i [wrap_aux_idx2line $lineNumber] ## Add/remove breakpoint tag to/from LineNumbers set tmp $lineNumber_i incr tmp $lineNumbers configure -state normal ;# Enable the text widget set scroll_in_progress 1 ;# Disable scrolling # Add the tag if {$make} { # Detereminate whether the breakpoint will be valid or not if {[is_breakpoint_valid $lineNumber]} { set tag {tag_breakpoint} } else { set tag {tag_breakpoint_INVALID} } $lineNumbers tag add $tag $lineNumber_i.0 $tmp.0 $parentObject rightPanel_add_breakpoint $lineNumber $parentObject rightPanel_bp_select $lineNumber # Remove the tag } else { $lineNumbers tag remove tag_breakpoint $lineNumber_i.0 $tmp.0 $lineNumbers tag remove tag_breakpoint_INVALID $lineNumber_i.0 $tmp.0 $parentObject rightPanel_remove_breakpoint $lineNumber $parentObject rightPanel_bp_unselect } # Disable the text widget $lineNumbers configure -state disabled # Refresh breakpoint settings in simulator engine if {[lindex ${::X::simulator_enabled} ${::X::actualProjectIdx}] == 1} { $parentObject Simulator_import_breakpoints $fullFileName [getBreakpoints] } # Enable scrolling update idletasks set scroll_in_progress 0 # done ... return $make } ## Remove all bookmarks from the editor and from right panel # @return void public method clear_all_bookmarks {} { if {$editor_to_use} {return} # Clear icon border $iconBorder configure -state normal set idx -1 foreach bool $bookmarks { incr idx if {!$bool} {continue} $iconBorder delete $idx.0 $idx.1 } $iconBorder configure -state disabled # Clear text tags $editor tag remove tag_bookmark 1.0 end # Clear list of bookmarks set len [llength $bookmarks] incr len -1 set bookmarks 0 append bookmarks [string repeat { 0} $len] # Clear list of bookmakrs in the right panel $parentObject rightPanel_clear_all_bookmarks } ## Remove all breakpoints from the editor and from right panel # @return void public method clear_all_breakpoints {} { # Clear breakpoints in object variable set len [llength $bookmarks] incr len -1 set breakpoints 0 append breakpoints [string repeat { 0} $len] # Clear breakpoint tags from line numbers $lineNumbers tag remove tag_breakpoint 1.0 end $lineNumbers tag remove tag_breakpoint_INVALID 1.0 end # Clear right panel $parentObject rightPanel_clear_all_breakpoints } ## Get number of the current line # @return Int - current line num. public method get_current_line_number {} { set line [expr {int([$editor index insert])}] return $line } ## Call ::X::__show_hine_IconB # @return void public method show_hine_IconB {} { ::X::__show_hine_IconB } ## Call ::X::__show_hine_LineN # @return void public method show_hine_LineN {} { ::X::__show_hine_LineN } ## Show the Icon Border # @return bool - result public method showIconBorder {} { if {!$show_iconBorder} { pack $left_frame_L -fill y -side left set show_iconBorder 1 recalc_left_frame return 1 } return 0 } ## Hide the Icon Border # @return bool - result public method hideIconBorder {} { if {$show_iconBorder} { pack forget $left_frame_L set show_iconBorder 0 return 1 } return 0 } ## Show the Line Numbers # @return bool - result public method showLineNumbers {} { if {!$show_lineNum} { pack $left_frame_R -fill y -side right set show_lineNum 1 recalc_left_frame return 1 } return 0 } ## Hide the Line Numbers # @return bool - result public method hideLineNumbers {} { if {$show_lineNum} { pack forget $left_frame_R set show_lineNum 0 return 1 } return 0 } ## Insert given data into the text # @parm String data - Data to insert # @parm TextIndex position - Target text index ({} == "end") # @return void public method insertData {data position} { if {$position == ""} { set position end } # Insert data $editor insert $position [regsub -all {[\u0000-\u0008\u000B-\u000C\u000E-\u001F\u007F-\u009F]} $data {}] # Highlight update idletasks parseAll } ## Restore syntax highlight in whole text # @return void public method parseAll {} { if {$editor_to_use} {return} # Disable this function set enable_parseAll 0 # Determinate number of the last line in the editor set lastEnd [expr {int([$editor index end])}] # Initialize list of highlighted lines set highlighted_lines [string repeat 0 $lastEnd] # Reevaluate bookmarks and breakpoints $lineNumbers configure -state normal $lineNumbers delete 1.0 end $lineNumbers insert end 1 $lineNumbers tag add right 1.0 end import_line_markers_data [join $bookmarks {}] [join $breakpoints {}] # Highlight all visible lines highlight_visible_area # Recalculate left frame and status bar counters scrollSet [lindex [$editor yview] 0] [lindex [$editor yview] 1] set lastEnd [expr {int([$editor index end])}] recalc_status_counter {} 0 # Enable this function set enable_parseAll 1 } ## Get content of the given line # @parm Int lineNumber - number of the target line # @return String - result public method getLineContent {lineNumber} { # Check lineNumber validity set end [$editor index end] if {$end <= $lineNumber} {return {}} # Return the data return [$editor get $lineNumber.0 "$lineNumber.0 lineend"] } ## Parse the current line # @return void public method parse_current_line {} { if {$editor_to_use} {return} set line [expr {int([$editor index insert])}] parse $line set highlighted_lines [string replace $highlighted_lines $line $line 0] } ## Get number of lines between the given indexes # @parm TextIndex index0 - Start index # @parm TextIndex index1 - End index # @return Int - lines count private method get_count_of_lines {index0 index1} { # Check if editor width is properly set if {$editor_width <= 0} {return 1} # Determinate text between the given indexes set lineText [$editor get $index0 $index1] # Line contains tabulators if {[regexp {\t} $lineText]} { # Translate tabulators to spaces set idx -1 set cor 0 while {1} { set idx [string first "\t" $lineText [expr {$idx + 1}]] if {$idx == -1} {break} incr cor [expr {7 - (($idx + $cor) % 8)}] } regsub -all {\t} $lineText { } lineText # Determinate line width in pixels set line_width [font measure $defaultFont_bold -displayof $editor $lineText] incr line_width [expr {$cor * $defaultCharWidth}] # Line doesn't contain tabulators } else { set line_width [font measure $defaultFont_bold -displayof $editor $lineText] } # Determinate number of lines set new_wrap [expr {$line_width / $editor_width}] if {[expr {$line_width % $editor_width}]} { incr new_wrap } # Return result return $new_wrap } ## Get total number of lines in editor # @return Int - result public method getLinesCount {} { if {$editor_to_use} {return 0} set result [$editor index end] return [expr {int($result) - 1}] } ## Get data of bookmarks and breapoints # @return List - {bookmarks breakpoints} (eg. {{1 15 96} {2 45}}) public method export_line_markers_data {} { set foo [lsearch -ascii -exact -all $bookmarks 1] if {![llength $foo]} { set foo 0 } set bar [lsearch -ascii -exact -all $breakpoints 1] if {![llength $bar]} { set bar 0 } return [list $foo $bar] } ## Import list of bookmarks and breapoints # This function also validates given input data # This function does not do anything with the right panel # @parm String Bookmarks - bookmakrs (eg. {1 15 96}) # @parm String Breakpoints - breakpoints (eg. {2 45}) # @return void public method import_line_markers_data {Bookmarks Breakpoints} { if {$editor_to_use} {return} # Determinate number of the last line in the editor set lastEnd [expr {int([$editor index end])}] # Check validity of the given data if {[string index $Bookmarks 0] == {0}} { if {![regexp {^[01]*$} $Bookmarks]} { puts stderr [mc "Invalid list of bookmarks -- bookmarks discarded"] set Bookmarks {} } } else { set foo $Bookmarks set Bookmarks {} for {set i 0} {$i <= $lastEnd} {incr i} { if {[lsearch -ascii -exact $foo $i] != -1} { append Bookmarks 1 } else { append Bookmarks 0 } } } if {[string index $Breakpoints 0] == {0}} { if {![regexp {^[01]*$} $Breakpoints]} { puts stderr [mc "Invalid list of breakpoints -- bookmarks discarded"] set Breakpoints {} } } else { set foo $Breakpoints set Breakpoints {} for {set i 0} {$i <= $lastEnd} {incr i} { if {[lsearch -ascii -exact $foo $i] != -1} { append Breakpoints 1 } else { append Breakpoints 0 } } } # Initialize list of highlighted lines set highlighted_lines [string repeat 0 $lastEnd] # Enable left panel $iconBorder configure -state normal $lineNumbers configure -state normal # Fill in text widgets in left frame $iconBorder delete 1.0 end $iconBorder insert end [string repeat "\n" [expr {$lastEnd-2}]] for {set i 2} {$i < $lastEnd} {incr i} { $lineNumbers insert end "\n$i" } $lineNumbers configure -width [string length [expr {$lastEnd-1}]] ## Import bookmarks set len [string bytelength $Bookmarks] ;# Number of bookmark flags set bookmarks [split $Bookmarks {}] ;# Bookmarks -> List # Adjust given input data (length) if {$lastEnd > $len} { append bookmarks [string repeat { 0} [expr {$lastEnd - $len}]] } elseif {$lastEnd < $len} { set bookmarks [lrange $bookmarks 0 [expr {$lastEnd - 1}]] } # Determinate list of bookmarked lines foreach line [lsearch -ascii -exact -all $bookmarks 1] { if {!$line} {continue} # Create bookmark image if {$defaultCharHeight < 9} { $iconBorder insert $line.0 {*} } elseif {$defaultCharHeight < 15} { $iconBorder image create $line.0 \ -image ::ICONS::16::dot \ -align center } else { $iconBorder image create $line.0 \ -image ::ICONS::16::bookmark \ -align center } # Create bookmark text tag $editor tag add tag_bookmark $line.0 [expr {$line + 1}].0 parse $line } ## Import breakpoints set len [string bytelength $Breakpoints] ;# Number of breakpoint flags set breakpoints [split $Breakpoints {}] ;# Breakpoints -> List # Adjust given input data (length) if {$lastEnd > $len} { set ins [string repeat { 0} [expr {$lastEnd - $len}]] append breakpoints $ins } elseif {$lastEnd < $len} { set breakpoints [lrange $breakpoints 0 [expr {$lastEnd - 1}]] } # Determinate list of lines marked with bookmark foreach line [lsearch -ascii -exact -all $breakpoints 1] { if {!$line} {continue} set line_1 $line incr line_1 $lineNumbers tag add tag_breakpoint $line.0 $line_1.0 parse $line } # Disable left panel $lineNumbers tag add right 1.0 end $iconBorder tag add center 1.0 end $iconBorder configure -state disabled $lineNumbers configure -state disabled reset_wraped_lines } ## Execute any editor procedure # @parm String null - anything (doesn't matter) # @parm String procedure - procudure name # @parm String arguments - procedure arguments # @return String - procedure result public method editor_procedure {null procedure arguments} { # call editor's procedure return [eval "$procedure $arguments"] } ## Jump to the bookmark below the current line # @return Bool - result public method goto_next_bookmark {} { if {$editor_to_use} {return} # Local varibales set line $last_cur_line ;# Current line set linesMax [llength $bookmarks] ;# Maximal line number incr line # Search for the nearest bookmark for {set i $line} {$i < $linesMax} {incr i} { if {[lindex $bookmarks $i] == 1} { goto $i return 1 } } # Failed return 0 } ## Jump to the bookmark above the current line # @return Bool - result public method goto_prev_bookmark {} { if {$editor_to_use} {return} # Local varibales set line $last_cur_line ;# Current line set linesMax [llength $bookmarks] ;# Maximal line number incr line -1 # Search for the nearest bookmark for {set i $line} {$i > 0} {incr i -1} { if {[lindex $bookmarks $i] == 1} { goto $i return 1 } } # Failed return 0 } ## Set state of editor lock on status bar # @parm Bool bool - 1 == Locked; 0 == Unlocked # @return void public method set_lock {bool} { if {$bool} { setStatusTip -widget $Sbar_lock_file -text [mc "File switching locked"] Sbar -freeze [mc "File switching locked"] DynamicHelp::add $Sbar_lock_file -text [mc "Unlock file switching"] $Sbar_lock_file configure \ -image ::ICONS::16::lock } else { setStatusTip -widget $Sbar_lock_file -text [mc "File switching unlocked"] Sbar -freeze [mc "File switching unlocked"] DynamicHelp::add $Sbar_lock_file -text [mc "Lock file switching"] $Sbar_lock_file configure \ -image ::ICONS::16::unlock } set auto_switching_lock $bool } ## Invert simulator lock # @return void public method invert_lock {} { set_lock [expr {!$auto_switching_lock}] $parentObject set_editor_lock $this $auto_switching_lock } ## Get value of internal flag "frozen" # @return Bool - True if the editor is in simulator mode, or disabled mode public method get_flag_frozen {} { return $frozen } ## Switch from editor mode to simulator mode # This operation will cause error if editor is in mode disabled # @return void public method freeze {} { if {$editor_to_use} {return} close_completion_popup_window # Adjust editor $editor configure -state disabled $editor tag remove tag_current_line 1.0 end pack forget $Sbar_CRT_frame catch { pack forget $Sbar_dis_mode } catch { pack forget $Sbar_ssim_mode } catch { pack forget $Sbar_sim_mode } if {!$frozen} { pack $Sbar_ssim_mode -side right pack $Sbar_lock_file -side left } else { pack $Sbar_sim_mode -side right } # Disable some popup menu items foreach entry $freezable_menu_items { $menu entryconfigure [::mc $entry] -state disabled } # Set mode flag set frozen 1 } ## Switch from editor mode to disabled # This operation will cause error if editor is in simulator mode # @return void public method disable {} { if {$editor_to_use} {return} close_completion_popup_window # Adjust editor $editor configure -state disabled $editor tag remove tag_current_line 1.0 end pack forget $Sbar_CRT_frame catch { pack forget $Sbar_sim_mode } pack $Sbar_dis_mode -side right if {!$frozen} { pack $Sbar_lock_file -side left } # Disable some popup menu items foreach entry $freezable_menu_items { $menu entryconfigure [::mc $entry] -state disabled } # Set mode flag set frozen 1 } ## Switch from simulator mode to editor mode # @return void public method thaw {} { if {$editor_to_use} {return} # Set mode flag set frozen 0 # Adjust editor if {!$ro_mode} { $editor configure -state normal } set idx [$editor index "insert linestart"] $editor tag add tag_current_line $idx "$idx + 1 line" pack $Sbar_CRT_frame pack forget $Sbar_lock_file catch { pack forget $Sbar_sim_mode } catch { pack forget $Sbar_ssim_mode } catch { pack forget $Sbar_dis_mode } # Enable all popup menu items if {!$ro_mode} { foreach entry $freezable_menu_items { $menu entryconfigure [::mc $entry] -state normal } } # Recalculate counters recalc_status_counter {} 0 # Check the flag "file_change_notif_flg" and if set, inform the user #+ about modification to the currently opened file done by another #+ program. check_file_change_notif } ## Move simulator line (line representing current position in simulator engine) # @parm Int lineNum - target line number # @return void public method move_simulator_line {lineNum} { if {$editor_to_use} {return} set lineNum_1 $lineNum incr lineNum_1 unset_simulator_line $editor tag add tag_simulator_curr $lineNum.0 $lineNum_1.0 $editor see $lineNum.0 } ## Unset simulator line tag and restore current line tag # @return void public method unset_simulator_line {} { $editor tag remove tag_simulator_curr 1.0 end } ## IDE is now in "Simulator mode" (previous state was "Starting simulator") # @return void public method now_frozen {} { if {$editor_to_use} {return} if {[winfo ismapped $Sbar_ssim_mode]} { pack forget $Sbar_ssim_mode pack $Sbar_sim_mode -side right } } ## Highlight lines which hasn't been highlighted yet # @return void public method highlight_visible_area {} { # Abort if the call is not relevant if {!$editor_height} { return } # Determinate indexes of the current view set lastLine [expr {int([$editor index end])}] set start [expr {int([$editor index @5,5])}] set end [expr {$start + $editor_height - 1}] # Adjust start and end index if {$start < 1} { set start 1 } if {$end > $lastLine} { set end $lastLine } # Abort if there is nothing to do if {[string first 0 [string range $highlighted_lines $start $end]] == -1} { return } # Enable editor if it's disabled if {$frozen} {$editor configure -state normal} # Highlight the current view for {set line $start} {$line <= $end} {incr line} { if {[string index $highlighted_lines $line] == 0} { if {![parse $line 1]} { if {$line != $start} {break} } } } # Ensure that the current line is also checked for correct spelling spellcheck_check_all [expr {int([$editor index insert])}] 1 # Restore previous editor state if {$frozen} {$editor configure -state disabled} } ## Save content of editor text widget # note: Name of the target file should be stored in $fullFileName, # if it is not then invoke procedure 'X::__save_as' # @return Bool - result public method save {} { if {$ro_mode} {return 1} if {$editor_to_use} {return 1} if {$save_in_progress} {return 1} set save_in_progress 1 # Check previously set filename if {$fullFileName == {}} { # Ask user for a new filename set ::X::critical_procedure_in_progress 0 set save_in_progress 0 X::__save_as } else { # save data to file if {[file exists $fullFileName]} { catch { file rename -force $fullFileName "$fullFileName~" } # Stop watching for modification of this file on disk (we will reenable it later) FSnotifications::forget $fullFileName } if {[catch { set chanel [open $fullFileName w 0640] }]} then { tk_messageBox \ -parent . \ -icon warning \ -type ok \ -title [mc "Permission denied"] \ -message [mc "Unable to open file:\n\"%s\"\nfor writing" $fullFileName] set save_in_progress 0 # Again start watching for modification of this file on disk FSnotifications::watch $fullFileName [list ::Editor::file_change_notif $this] return 0 } fconfigure $chanel -translation $eol -encoding $encoding puts -nonewline $chanel [getdata] close $chanel pack forget $Sbar_image $editor edit modified 0 set modified 0 # Again start watching for modification of this file on disk FSnotifications::watch $fullFileName [list ::Editor::file_change_notif $this] # Stop autosave timer catch { after cancel $autosave_timer } } # Change application status ::X::adjust_title set save_in_progress 0 if {$fullFileName == {}} { return 0 } else { if {$::MICROSOFT_WINDOWS} { ;# "/" --> "\" regsub -all {/} $fullFileName "\\" fullFileName_win } else { set fullFileName_win $fullFileName } Sbar [mc "File %s saved" $fullFileName_win] return 1 } } ## Set internal flag "file_change_notif_flg" to true # # The flag indicates that the file opened in this editor was modified on disk # by another program. The flag is automatically cleared when the user is # informed about the modification to the file. # # @return void public method set_file_change_notif_flg {} { set file_change_notif_flg 1 } ## Check flag "file_change_notif_flg" and if set, inform the user about this. # # The flag file_change_notif_flg indicates that the file opened in this editor # was modified on disk by another program. The flag is automatically cleared by # this method. The user is informed via a dialog window giving him three # options, reload the file, overwrite it on disk, and ignore it. # # @return void public method check_file_change_notif {} { # Check the flag, and clear it if it was set if {!$file_change_notif_flg} { return } set file_change_notif_flg 0 # Create the dialog window set dialog [toplevel .file_change_notif_dlg] # Create top frame (dialog icon and text of the message) set dlg_top_frame [frame $dialog.top_frame] pack [label $dlg_top_frame.image -image ::ICONS::32::messagebox_warning] -side left -padx 5 pack [label $dlg_top_frame.label \ -justify left \ -text [mc "The file '%s' was modified from outside of this program.\n\nWhat do you want to do with the modified file?" [file tail $fullFileName]] \ ] -side left -fill x -expand 1 -padx 5 # Create bottom bar with dialog buttons set button_frame [frame $dialog.button_frame] pack [ttk::button $button_frame.button_reload \ -text [mc "Reload in editor"] \ -compound left \ -image ::ICONS::16::reload \ -command " $parentObject filelist_reload_file $this 1 grab release $dialog destroy $dialog " \ ] -side left -padx 2 pack [ttk::button $button_frame.button_overwrt \ -text [mc "Overwrite on disk"] \ -compound left \ -image ::ICONS::16::filesave \ -command " $this save grab release $dialog destroy $dialog " \ ] -side left -padx 2 pack [ttk::button $button_frame.button_cancel \ -text [mc "Do nothing"] \ -compound left \ -image ::ICONS::16::cancel \ -command " grab release $dialog destroy $dialog " \ ] -side left -padx 2 # Pack window frames pack $dlg_top_frame -side top -fill x -expand 1 -padx 5 -pady 10 pack $button_frame -side bottom -side right -padx 5 -pady 5 bind $dialog " grab release $dialog destroy $dialog " # Set dialog attributes (modal window) wm iconphoto $dialog ::ICONS::16::status_unknown wm title $dialog [mc "File changed on disk"] wm state $dialog normal wm minsize $dialog 400 110 wm transient $dialog . wm protocol $dialog WM_DELETE_WINDOW " grab release $dialog destroy $dialog " update catch { grab $dialog } raise $dialog focus -force $button_frame.button_cancel tkwait window $dialog } ## File change notification callback # # This function is supposed to be called by the FSnotifications component when # a modification to the currently opened file was made by another program. # # @return void proc file_change_notif {editor_ref filename} { # This call is invalid if there are no projects opened if {![llength ${::X::openedProjects}]} { return } # Attempt to find the corresponding project and editor index number foreach project ${::X::openedProjects} { set list_of_editors [$project cget -editors] set actual_editor [$project cget -actualEditor] set actual_editor2 [$project cget -actualEditor2] set editor_idx [lsearch -ascii -exact $list_of_editors $editor_ref] if {$editor_idx == -1} { # Editor editor index number not found, move on to another project continue } # Try to get the "frozen" flag from the editor if {[catch { set editor_frozen [$editor_ref get_flag_frozen] }]} then { # Unable to comply, that probably means that the editor # does not exist any more return } # Set the "file_change_notif_flg" flag $project editor_procedure $editor_idx set_file_change_notif_flg {} # Check the "file_change_notif_flg" flag right away, if the #+ editor is currently visible to the user if { ($project == ${::X::actualProject}) && ($editor_idx == $actual_editor || $editor_idx == $actual_editor2) } then { # If the editor is in frozen state, i.e. the MCU # simulator is engaged, then don't annoy with nonsense # messages, and instead inform the user later. if {!$editor_frozen} { $project editor_procedure $editor_idx check_file_change_notif {} } } break } } ## Set variable 'fullFileName' for later file save (method 'save') # note: also change editors status bar # @parm String full_filename - the full filename (including path) # @parm String rootName - only filename with extension # @return void public method set_FileName {full_filename rootName} { if {$editor_to_use} {return} # Start watching for changes in the file (on disk) if {$fullFileName != {}} { # Stop watching the old file FSnotifications::watch forget $fullFileName } if {$full_filename != {}} { # Start watching the new file FSnotifications::watch $full_filename [list ::Editor::file_change_notif $this] } # set variables set fullFileName $full_filename set filename $rootName # change etitor status bar $Sbar_fileName configure -text $filename -helptext $filename # Determinate programming language determinate_prog_lang 1 } ## Get current filename # @return String - the filename public method getFileName {} { return [list [file dirname $fullFileName] $filename] } ## Change letter case according to the given options # @parm List options - list of 21 values, each must be one of {- L -U} # '-' - keep case # 'U' - Uppercase # 'L' - Lowercase # @return void public method change_letter_case {options} { # Reset abort condition set changeLCase_abort 0 # Initialize conter of iterations set i 0 # Perform case change foreach option $options \ tags { tag_hex tag_oct tag_dec tag_bin tag_constant tag_unknown_base tag_comment tag_control tag_symbol tag_directive tag_label tag_instruction tag_sfr tag_indirect tag_imm_hex tag_imm_oct tag_imm_dec tag_imm_bin tag_imm_constant tag_imm_unknown tag_macro } \ { # Evaluate option if {$option == {-}} {continue} if {$option == {U}} { set option {toupper} } else { set option {tolower} } if {$tags == {tag_constant}} { lappend tags {tag_constant_def} } elseif {$tags == {tag_macro}} { lappend tags {tag_macro_def} } # Iterate over tag ranges and change their letter case foreach tag $tags { set ranges [$editor tag ranges $tag] for {set j 0} {$j < [llength $ranges]} {incr j} { # Determinate string indexes set firts [lindex $ranges $j] incr j set last [lindex $ranges $j] # Perform letter case change set string [string $option [$editor get $firts $last]] $editor delete $firts $last $editor insert $firts $string $editor tag add $tag $firts $last # Manage GUI if {![expr {$i % 50}]} { # Update progress bar incr ::X::compilation_progress update # Conditional abort if {$changeLCase_abort} { return } } # Increment counter of iterations incr i } } } } ## Abort procedure 'change_letter_case' # @return void public method change_letter_case_abort_now {} { set changeLCase_abort 1 } ## Get maximum value for progressbar showing change letter case progress (proc. 'change_letter_case') # @parm List options - same as with proc. 'change_letter_case' # @return Int - Number of iterations divided by 50 public method change_letter_case_get_count_of_iterations {options} { set result 0 foreach option $options \ tag { tag_hex tag_oct tag_dec tag_bin tag_constant tag_unknown_base tag_comment tag_control tag_symbol tag_directive tag_label tag_instruction tag_sfr tag_indirect tag_imm_hex tag_imm_oct tag_imm_dec tag_imm_bin tag_imm_constant tag_imm_unknown tag_macro} \ { if {$option == {-}} {continue} incr result [llength [$editor tag ranges $tag]] if {![expr {$result % 1000}]} {update} } return [expr {$result / 50}] } ## Convert selected text to lowercase # @retrun void public method lowercase {} { # Nothing to do -> terminate if {![llength [$editor tag nextrange sel 1.0]]} { Sbar [mc "Unable to execute: nothing selected"] return 0 } $editor configure -autoseparators 0 set ranges [$editor tag ranges sel] set len [llength $ranges] for {set i 0; set j 1} {$i < $len} {incr i 2; incr j 2} { set first [lindex $ranges $i] set last [lindex $ranges $j] set data [$editor get $first $last] $editor tag remove $first $last detete_text_in_editor $first $last $editor insert $first [string tolower $data] $editor tag add sel $first $last set first [expr {int($first)}] set last [expr {int($last)}] set highlighted_lines [string replace $highlighted_lines \ $first $last [string repeat 0 [expr {$last - $first + 1}]]] } highlight_visible_area $editor edit separator $editor configure -autoseparators 1 return 1 } ## Convert selected text to uppercase # @retrun void public method uppercase {} { # Nothing to do -> terminate if {![llength [$editor tag nextrange sel 1.0]]} { Sbar [mc "Unable to execute: nothing selected"] return 0 } $editor configure -autoseparators 0 set ranges [$editor tag ranges sel] set len [llength $ranges] for {set i 0; set j 1} {$i < $len} {incr i 2; incr j 2} { set first [lindex $ranges $i] set last [lindex $ranges $j] set data [$editor get $first $last] $editor tag remove $first $last detete_text_in_editor $first $last $editor insert $first [string toupper $data] $editor tag add sel $first $last set first [expr {int($first)}] set last [expr {int($last)}] set highlighted_lines [string replace $highlighted_lines \ $first $last [string repeat 0 [expr {$last - $first + 1}]]] } highlight_visible_area $editor edit separator $editor configure -autoseparators 1 return 1 } ## Convert the first character of selected text to uppercase # @retrun void public method capitalize {} { # Nothing to do -> terminate if {![llength [$editor tag nextrange sel 1.0]]} { Sbar [mc "Unable to execute: nothing selected"] return 0 } $editor configure -autoseparators 0 set first [$editor index sel.first] set last [$editor index sel.last] set data [string toupper [$editor get $first $first+1c]] detete_text_in_editor $first $first+1c $editor insert $first $data $editor tag add sel $first $last parse [expr {int($first)}] $editor edit separator $editor configure -autoseparators 1 return 1 } ## Copy the selected text to the clipboard # @return bool - 1: successful; 0: failed public method copy {} { # get selected text set data [getselection] # Nothing to do -> terminate if {$data == {}} { Sbar [mc "Unable to execute: nothing selected"] return 0 # Adjust clipboard content } else { clipboard clear clipboard append $data return 1 } } ## Paste clipboard content to the text at the cursor position # @parm Bool use_X_sel=0 - Use X selection instead of the clipboard # @parm Int x - X coordinate # @parm Int y - Y coordinate # @return bool - 1: successful; 0: failed public method paste {{use_X_sel 0} {x {}} {y {}}} { if {$critical_edit_proc} {return} set critical_edit_proc 1 # Restore original cursor position in block selection mode if {$selection_mode} { set original_cur_pos [$editor index insert] } if {$use_X_sel} { set cmd {selection} } else { set cmd {clipboard} } # Get clipboard content if {[catch { set data [regsub -all {[\u0000-\u0008\u000B-\u000C\u000E-\u001F\u007F-\u009F]} [$cmd get] {}] }]} then { # Clipboard empty -> abort set critical_edit_proc 0 return 0 } if {$use_X_sel} { $editor mark set insert @$x,$y catch { $editor tag remove sel 0.0 end } } # delete selected block $editor configure -autoseparators 0 deleteselection recalc_left_frame # insert data to the text, restore syntax highlight $editor insert [$editor index insert] $data recalc_left_frame recalc_status_counter {} $editor see [$editor index insert] update idletasks set line [expr {int([$editor index insert])}] rightPanel_adjust $line parse $line spellcheck_check_all $line 2 ;# Perform spell check for the current line highlight_visible_area $editor edit separator $editor configure -autoseparators 1 # Reevaluate highlight on the next line if C language is used if {$prog_language == 1} { incr line c_syntax_highlight $line } # Restore original cursor position in block selection mode if {$selection_mode} { $editor see $original_cur_pos $editor mark set insert $original_cur_pos } rewrite_breakpoint_tags update set critical_edit_proc 0 return 1 } ## Take back last editor operation # @return void public method undo {} { if {$critical_edit_proc} {return} set critical_edit_proc 1 if {![catch {$editor edit undo}]} { # Inform autocompletion mechanism $editor edit redo parse_current_line autocompletion_maybe_important_change insert insert $editor edit undo manage_autocompletion_list [expr {int([$editor index insert])}] recalc_left_frame recalc_status_counter {} recalc_status_modified 1 rightPanel_adjust [expr {int([$editor index insert])}] $editor see [$editor index insert] set highlighted_lines [string repeat 0 [string bytelength $highlighted_lines]] update highlight_visible_area catch { $editor tag remove sel 0.0 end } } set critical_edit_proc 0 } ## Take back last Undo operation # @return void public method redo {} { if {$critical_edit_proc} {return} set critical_edit_proc 1 if {![catch {$editor edit redo}]} { # Inform autocompletion mechanism $editor edit undo parse_current_line autocompletion_maybe_important_change insert insert $editor edit redo manage_autocompletion_list [expr {int([$editor index insert])}] recalc_left_frame recalc_status_counter {} recalc_status_modified 1 rightPanel_adjust [expr {int([$editor index insert])}] $editor see [$editor index insert] set highlighted_lines [string repeat 0 [string bytelength $highlighted_lines]] update highlight_visible_area catch { $editor tag remove sel 1.0 end } } set critical_edit_proc 0 } ## Cut the selected text and put it into the clipboard # @return bool - 1: successful; 0: failed public method cut {} { if {$critical_edit_proc} {return} set critical_edit_proc 1 # get selected text set data [getselection] # Nothing to do -> terminate if {$data == {}} { Sbar [mc "Unable to execute: nothing selected"] set critical_edit_proc 0 return 0 # Cut } else { # Adjust clipboard content deleteselection clipboard clear clipboard append $data $editor see insert set line [expr {int([$editor index insert])}] parse $line update recalc_left_frame rightPanel_adjust $line set critical_edit_proc 0 return 1 } } ## Delete current line # @return void public method delete_current_line {} { if { [$editor compare {insert linestart} == {insert lineend}] && [$editor compare {insert linestart} == {end-1l}] } then { return } detete_text_in_editor {insert linestart} {insert linestart + 1l} $this resetUpDownIndex $this recalc_left_frame $this parse [expr {int([$editor index insert])}] update } ## Insure that command line is focused # @retrun void public method cmd_line_force_on {} { if {$editor_to_use} {return} if {![winfo viewable $cmd_line]} { pack $cmd_line -side top -fill x } update } ## Insure that command line is NOT focused # @retrun void public method cmd_line_force_off {} { if {$editor_to_use} {return} if {!${::APPLICATION_LOADED}} {return} if {[winfo viewable $cmd_line]} { pack forget $cmd_line focus $editor } update } ## Kill child processes # @return void public method kill_childern {} { if {$editor_to_use} { bind $top_frame {} if {!$::MICROSOFT_WINDOWS} { ;# There is no kill command on Microsoft Windows if {$pid != [pid] && $pid != 0} { catch { exec -- kill $pid } } } catch { file delete -force -- [file join [${::X::actualProject} cget -ProjectDir] .#special:tmp] } } } ## Get ID of file type (programming language used) # @return Int - 0 == Assembly language; 1 == C language public method get_language {} { if {$prog_language == -1} { set ext [string trimleft [file extension $filename] {.}] if {$ext == {c} || $ext == {h} || $ext == {cxx} || $ext == {cpp} || $ext == {cc}} { return 1 } elseif {$ext == {lst}} { return 2 } else { return 0 } } else { return $prog_language } } ## Set file type (programming language used) # @parm Int lang - -1 == unknown; 0 == Assembly language; 1 == C language # @return void public method force_language {lang} { set prog_language_old $prog_language set prog_language $lang if {$prog_language_old != $prog_language} { prog_lang_changed } } ## Document current function # @return void public method document_current_func {} { # Critical procedure if {$critical_edit_proc} {return} set critical_edit_proc 1 # Check if this procedure can be done if {$editor_to_use || $prog_language != 1} {return} # Determinate line content set line_number [expr {int([$editor index insert])}] set line_content [$editor get {insert linestart} {insert lineend}] set line_n $line_number for {set i 0} {$i < 50} {incr i} { if {[string first {)} $line_content] != -1} { break } incr line_n append line_content { } [$editor get [list $line_n.0 linestart] [list $line_n.0 lineend]] } # Check if line content is valid function declaration if {![regexp {^\s*(\w+\s+)+\w+\(.*\)} $line_content]} { Sbar [mc "No function to document"] set critical_edit_proc 0 return } # Determinate leading space to keep indention level if {![regexp {^\s+} $line_content space]} { set space {} } # Insert '/**' $editor insert $line_number.0 "${space}/**\n" incr line_number # Document arguments set args {} if {[regexp {\(.*\)} $line_content args]} { set args [string range $args 1 end-1] foreach word [split $args {,}] { set word [split [string trim $word "\t  "]] if {[llength $word] < 2} { continue } set word [lindex $word end] regsub {\[.*\]$} $word {} word regsub {^(\&|\*\*?)} $word {} word $editor insert $line_number.0 "${space} * @param ${word}\n" incr line_number } } # Document return value if {![regexp {^\s*void\s+} $line_content]} { $editor insert $line_number.0 "${space} * @return\n" incr line_number } $editor insert $line_number.0 "${space} */\n" incr line_number # Highlight recalc_left_frame recalc_status_counter {} $editor see $line_number.0 update rightPanel_adjust $line_number parse $line_number highlight_visible_area incr line_number c_syntax_highlight $line_number set critical_edit_proc 0 } ## Get file statistics # @return List - List of integers in this format: # Index Meaning # 0 Words and numbers (Characters) # 1 Comments (Characters) # 2 Others (Characters) # 3 Total characters (Characters) # 4 Words (Strings) # 5 Keywords (Strings) # 6 Comments (Strings) # 7 Total strings (Strings) # 8 Empty lines (Lines) # 9 Commented lines (Lines) # 10 Normal lines (Lines) # 11 Total lines (Lines) public method getFileStatistics {} { if {$editor_to_use} {return {0 0 0 0 0 0 0 0}} set last_line [expr {int([$editor index end])}] set words_and_numbers 0 set chars_comments 0 set others 0 set words 0 set keywords 0 set comments 0 set empty_lines 0 set commented_lines 0 set normal_lines 0 # List of highlighting tags related to comments set comment_tags { tag_comment tag_c_comment tag_c_dox_comment tag_c_dox_tag tag_c_dox_word tag_c_dox_name tag_c_dox_html } # List of highlighting tags related to keywords set keyword_tags { tag_directive tag_instruction tag_control tag_c_keyword tag_c_directive } # Iterate over lines in editor for {set line_num 1} {$line_num < $last_line} {incr line_num} { # Get line length and content set line [string trimright [$editor get $line_num.0 [list $line_num.0 lineend]]] set len [string length $line] # Handle empty lines if {!$len} { incr empty_lines continue } # Save some values for purpose of section "Lines" set last_words $words set last_keywords $keywords set last_comments $comments # Iterate over characters on the line set char {} set found 0 set last_wordstart -1 for {set i 0} {$i < $len} {incr i} { # Determinate word type set found 0 set wordstart [$editor index [list $line_num.$i wordstart]] if {$wordstart != $last_wordstart} { set wordend [$editor index [list $line_num.$i wordend]] set last_wordstart $wordstart set tag_names [$editor tag names $line_num.$i] foreach tags [list $comment_tags $keyword_tags] \ var {comments keywords} \ { foreach tag $tag_names { if {[lsearch $tags $tag] != -1} { incr $var set found 1 break } } if {$found} {break} } if {!$found} { incr words } } # Determinate character type set found 0 set char [string index $line $i] foreach tag [$editor tag names $line_num.$i] { if {[lsearch $comment_tags $tag] != -1} { incr chars_comments set found 1 break } } if {$found} {continue} if {[string is wordchar -strict $char]} { incr words_and_numbers } else { incr others } } # Determinate line type excluding empty lines if {$last_words == $words && $last_keywords == $keywords && $last_comments < $comments} { incr commented_lines } else { incr normal_lines } } # Composite and return results return [list \ $words_and_numbers $chars_comments $others \ [expr {$words_and_numbers + $chars_comments + $others}] \ \ $words $keywords $comments \ [expr {$words + $keywords + $comments}] \ \ $empty_lines $commented_lines $normal_lines \ [expr {$empty_lines + $commented_lines + $normal_lines}] \ ] } ## Set read only mode # @parm Bool mode_frag - 1 == Read only; 0 == Read and write # @return Bool - true == ok; false == cannot comply! public method change_RO_MODE {mode_frag} { if {$editor_to_use} {return} set ro_mode $mode_frag if {!$ro_mode && [$parentObject cget -S_flag_read_only]} { tk_messageBox \ -parent . \ -type ok \ -icon warning \ -title [mc "Read-only project"] \ -message [mc "This project has a special purpose, modifications to this project are not allowed."] return 0 } # Set to read only if {$ro_mode} { $editor configure -state disabled $ins_mode_lbl configure \ -bg {#DD0000} \ -fg {#FFFFFF} \ -text [mc " READ ONLY "]\ -cursor left_ptr setStatusTip -widget $ins_mode_lbl \ -text [mc "This editor is only for reading, to change that press alt+v and o"] bind $ins_mode_lbl {} set state {disabled} # Set to normal mode } else { $editor configure -state normal $ins_mode_lbl configure \ -bg {#DDDDDD} \ -cursor hand2 setStatusTip -widget $ins_mode_lbl \ -text [mc "Insertion mode -- OVR == overwrite; INS == insert"] bind $ins_mode_lbl "$this switch_ins_ovr" adjust_INS_OVR_label set state {normal} } # Adjust menus and main toolbar foreach entry $read_na_only_menu_items { $menu entryconfigure [::mc $entry] -state $state } ::X::adjust_mainmenu_and_toolbar_to_editor $ro_mode {} return 1 } ## Perform program jump # @return void public method ljmp_this_line {} { if {$editor_to_use} {return} # Determinate target address set address [$parentObject simulator_line2address \ [expr {int([$editor index insert])}] \ [$parentObject simulator_get_filenumber $fullFileName] \ ] if {$address == {}} { return } # Perform program jump $parentObject setPC $address set lineNum [$parentObject simulator_getCurrentLine] if {$lineNum != {}} { $parentObject move_simulator_line $lineNum } else { $parentObject editor_procedure {} unset_simulator_line {} } $parentObject Simulator_sync_PC_etc } ## Perform subprogram call # @return void public method lcall_this_line {} { if {$editor_to_use} {return} # Determinate target address set address [$parentObject simulator_line2address \ [expr {int([$editor index insert])}] \ [$parentObject simulator_get_filenumber $fullFileName] \ ] if {$address == {}} { return } # Perform subprogram call $parentObject simulator_subprog_call $address set lineNum [$parentObject simulator_getCurrentLine] if {$lineNum != {}} { $parentObject move_simulator_line $lineNum } else { $parentObject editor_procedure {} unset_simulator_line {} } $parentObject Simulator_sync_PC_etc } # >>> File inclusion guard } # <<< File inclusion guard mcu8051ide-1.4.7/lib/editor/R_ASMsyntaxhighlight.tcl0000644000175000017500000010640212067167647022702 0ustar milleniummillenium#!/usr/bin/tclsh # Part of MCU 8051 IDE ( http://mcu8051ide.sf.net ) ############################################################################ # Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012 by Martin Ošmera # # martin.osmera@gmail.com # # # # This program is free software; you can redistribute it and#or modify # # it under the terms of the GNU General Public License as published by # # the Free Software Foundation; either version 2 of the License, or # # (at your option) any later version. # # # # This program is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU General Public License for more details. # # # # You should have received a copy of the GNU General Public License # # along with this program; if not, write to the # # Free Software Foundation, Inc., # # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # ############################################################################ # >>> File inclusion guard if { ! [ info exists _R_ASMSYNTAXHIGHLIGHT_TCL ] } { set _R_ASMSYNTAXHIGHLIGHT_TCL _ # <<< File inclusion guard # -------------------------------------------------------------------------- # DESCRIPTION # Implements syntax highlighting interface for reallocable assembly # -------------------------------------------------------------------------- namespace eval R_ASMsyntaxHighlight { ## COMPILER DIRECTIVES # directives without arguments variable directive_type0 { .ELSE .ENDIF .PAGE .EVEN .ODD } # directives with argument(s) but without any label variable directive_type1 { .OPTSDCC .WORD .DW .INCLUDE .SETDP .GLOBL .IF .ORG .AREA .MODULE .TITLE .SBTTL .ASCII .ASCIS .ASCIZ .RADIX .BYTE .DB .BLKB .BLKW .DS } # symbol operators variable expr_symbols { = + - * / > < % & | % ^ } # control sequencies without any argument variable controls_type0 { NOLIST NOMOD NOOBJECT NOPAGING NOPRINT NOSYMBOLS EJECT LIST PAGING SYMBOLS } # control sequencies with exactly 1 argument variable controls_type1 { PAGEWIDTH PAGELENGTH PRINT TITLE OBJECT DATE INCLUDE } # list of all reserved keywords variable keyword_lists [list \ ${::ASMsyntaxHighlight::instructions} \ $directive_type0 $directive_type1 \ ] variable inline_asm ;# Is inline assembler variable editor ;# ID of the text widget variable lineNumber ;# Number of current line variable lineStart ;# Index of line start variable lineEnd ;# Index of line end variable data ;# Content of the line variable data_backup ;# Original content of the line variable last_index ;# Last parse index variable last_index_backup ;# Auxiliary variable (some index) variable seg_0 ;# 1st field of the line variable seg_1 ;# 2nd field of the line variable seg_2 ;# 3rd field of the line variable seg_0_start ;# Start index of seg_0 variable seg_1_start ;# Start index of seg_1 variable seg_2_start ;# Start index of seg_2 variable seg_0_end ;# End index of seg_0 variable seg_1_end ;# End index of seg_1 variable seg_2_end ;# End index of seg_2 variable operand ;# Data of the current operand variable opr_end ;# End index of the current operand variable opr_start ;# Start index of the current operand variable validation_L0 1 ;# Bool: Basic validation enabled variable validation_L1 1 ;# Bool: Advancet validation enabled ## Define highlighting text tags in the given text widget # @parm Widget text_widget - ID of the target text widget # @parm Int fontSize - font size # @parm String fontFamily - font family # @parm List highlight=default - Highlighting tags definition # @parm Bool nobold=0 - Ignore bold flag # @return void proc create_tags {text_widget fontSize fontFamily {highlight {}} {nobold 0}} { # Handle arguments if {$highlight == {}} { ;# highlighting definition set highlight $::ASMsyntaxHighlight::highlight_tags } # Iterate over highlighting tags definition foreach item $highlight { # Create array of tag attributes for {set i 0} {$i < 5} {incr i} { set tag($i) [lindex $item $i] } # Foreground color if {$tag(1) == {}} { set tag(1) black } # Fonr slant if {$tag(3) == 1} { set tag(3) italic } else { set tag(3) roman } # Font weight if {$tag(4) == 1 && !$nobold} { set tag(4) bold } else { set tag(4) normal } # Create the tag in the target text widget $text_widget tag configure $tag(0) \ -foreground $tag(1) \ -font [font create \ -overstrike $tag(2) \ -slant $tag(3) \ -weight $tag(4) \ -size -$fontSize \ -family $fontFamily \ ] } # Add tag error $text_widget tag configure tag_error -underline 1 } ## Perform syntax highlight on the given line in the given widget # @parm Widget p_editor - Text widget # @parm Int linenumber - Number of line to highlight # @parm Bool inlineasm=0 - Inline assembler # @parm Int linestart=0 - Start index # @parm Int lineend=end - End index # @return Bool - result proc highlight {p_editor linenumber {inlineasm 0} {linestart {}} {lineend {}}} { variable editor ;# ID of the text widget variable lineNumber ;# Number of current line variable lineStart ;# Index of line start variable lineEnd ;# Index of line end variable inline_asm ;# Is inline assembler variable seg_0 {} ;# 1st field of the line variable seg_1 {} ;# 2nd field of the line variable seg_2 {} ;# 3rd field of the line variable seg_0_start ;# Start index of seg_0 variable seg_1_start ;# Start index of seg_1 variable seg_2_start ;# Start index of seg_2 variable seg_0_end ;# End index of seg_0 variable seg_1_end ;# End index of seg_1 variable seg_2_end ;# End index of seg_2 variable last_index ;# Last parse index variable data ;# Content of the line variable validation_L0 ;# Bool: Basic validation enabled # Parse input arguments set editor $p_editor set lineNumber $linenumber set inline_asm $inlineasm if {$linestart == {}} { set lineStart $lineNumber.0 } else { set lineStart $lineNumber.$linestart } if {$lineend == {}} { set lineEnd [$editor index "$lineStart lineend"] } else { set lineEnd $lineNumber.$lineEnd } if {$linestart != {}} { set start_offset $linestart } else { set start_offset 0 } set data [$editor get $lineStart $lineEnd] set ::ASMsyntaxHighlight::operands_count 0 set ::ASMsyntaxHighlight::opr_types {} if {$inline_asm} { delete_tags } # check if the line is not empty if {[regexp {^\s*$} $data]} { return 0 } set line_length [string length $data] if {$line_length == 0} { return 0 } # determinate comment field and highlight it (the last field) set comment_start {} if {[regexp {;} $data]} { # remove 'string' from the line set comment_data [hide_strings $data] if {[regexp {;.*$} $comment_data comment_start]} { set comment_start [string length $comment_start] set comment_start [expr {$line_length - $comment_start}] # remove comment and trailing space from the line if {$comment_start == 0} { set data {} delete_tags } else { set data [string range $data 0 [expr {$comment_start - 1}]] regsub {\s+$} $data {} data } incr comment_start $start_offset } } # Handle line containing only comment if {![string length $data]} { if {!$inline_asm} { delete_tags } $editor tag add tag_comment $lineNumber.$comment_start $lineEnd return 1 } # determinate 1st segment of the line regexp {^\s*[^\s:\=]+:?:?} $data seg_0 set seg_0_end [string length $seg_0] regsub {^\s+} $seg_0 {} seg_0 set seg_0_start [string length $seg_0] set seg_0_start [expr {$seg_0_end - $seg_0_start}] set data [string replace $data 0 [expr {$seg_0_end - 1}]] incr seg_0_end $start_offset incr seg_0_start $start_offset set last_index $seg_0_end # # SYNTAX HIGHLIGHT # # delete existing tags within the line if {!$inline_asm} { delete_tags } # highlight comment if {$comment_start != {}} { $editor tag add tag_comment $lineNumber.$comment_start $lineEnd } # highlight 1st and 2nd field set seg_0_info [parse_segment $seg_0_start $seg_0_end $seg_0] # Conditional parsing with validation switch -- [lindex $seg_0_info 0] { {label} { determinate_segment_1 set seg_1_info [parse_segment $seg_1_start $seg_1_end $seg_1] switch -- [lindex $seg_1_info 0] { {label} { put_error_on_segment 1 } {instruction} { determinate_segment_2 parse_operands } {directive_1} {} {directive_0} {} {unknown} { $editor tag add tag_macro \ $lineNumber.$seg_1_start $lineNumber.$seg_1_end if { $validation_L0 && ([regexp {^\d} $seg_1] || ![regexp {^\w+$} $seg_1]) } then { put_error_on_segment 1 } determinate_segment_2 parse_operands } default { put_error_on_segment 1 } } } {instruction} { determinate_segment_2 parse_operands } {directive_1} { determinate_segment_2 if {[string tolower $seg_0] == {.optsdcc}} { $editor tag add tag_string $lineNumber.$seg_0_end $lineEnd } else { parse_expressions } } {directive_0} { determinate_segment_1 put_error_on_segment 1 determinate_segment_2 put_error_on_segment 2 } {unknown} { determinate_segment_1 set seg_1_info [parse_segment $seg_1_start $seg_1_end $seg_1] switch -- [lindex $seg_1_info 0] { {label} { put_error_on_segment 0 } {instruction} { put_error_on_segment 0 determinate_segment_2 parse_operands } {directive_1} { put_error_on_segment 0 determinate_segment_2 parse_expressions } {directive_0} { put_error_on_segment 0 determinate_segment_2 put_error_on_segment 2 } {unknown} { } {assignment} { determinate_segment_2 incr seg_0_start -1 parse_expressions $editor tag add tag_constant $lineNumber.$seg_0_start $lineNumber.$seg_0_end } default { } } } default {} } return 1 } ## Remove previously defined syntax highlighting tags # @return void proc delete_tags {} { variable editor ;# ID of the text widget variable lineStart ;# Index of line start variable lineEnd ;# Index of line end set lineStart_truestart [$editor index [list $lineStart linestart]] # Remove tag error $editor tag remove tag_error $lineStart_truestart $lineEnd # Remove tags according to pattern foreach tag $::ASMsyntaxHighlight::highlight_tags { $editor tag remove [lindex $tag 0] $lineStart_truestart $lineEnd } } ## Take back extraction of segment 1 # @return void proc determinate_segment_1_take_back {} { variable data ;# Content of the line variable data_backup ;# Original content of the line variable last_index ;# Last parse index variable last_index_backup ;# Auxiliary variable (some index) set data $data_backup set last_index $last_index_backup } ## Extract segment 1 from the line # @return void proc determinate_segment_1 {} { variable seg_1 ;# 2nd field of the line variable seg_1_start ;# Start index of seg_1 variable seg_1_end ;# End index of seg_1 variable last_index ;# Last parse index variable data ;# Content of the line variable data_backup ;# Original content of the line variable last_index_backup ;# Auxiliary variable (some index) # Line is empty if {![regexp {^\s*[^\s\.]+} $data seg_1]} { set seg_1 {} set seg_1_end $last_index set seg_1_start $last_index # Line is not empty } else { set data_backup $data set last_index_backup $last_index set seg_1_end [string length $seg_1] set data [string replace $data 0 $seg_1_end] incr seg_1_end $last_index regsub {^\s+} $seg_1 {} seg_1 set seg_1_start [string length $seg_1] set seg_1_start [expr {$seg_1_end - $seg_1_start}] set last_index $seg_1_end incr last_index } } ## Extract segment 2 from the line # @return void proc determinate_segment_2 {} { variable seg_2 ;# 3rd field of the line variable seg_2_start ;# Start index of seg_2 variable seg_2_end ;# End index of seg_2 variable last_index ;# Last parse index variable data ;# Content of the line # determinate the last segment of the line set seg_2_start $last_index if {[regexp {^\s+} $data space]} { incr seg_2_start [string length $space] } regsub {^\s+} $data {} seg_2 regsub {\s+$} $seg_2 {} seg_2 set seg_2_end [string length $seg_2] incr seg_2_end $last_index set data {} } ## Shorthand for 'parse_expression $seg_2 $seg_2_start $seg_2_end' # @return void proc parse_expressions {} { variable seg_2 ;# 3rd field of the line variable seg_2_start ;# Start index of seg_2 variable seg_2_end ;# End index of seg_2 parse_expression $seg_2 $seg_2_start $seg_2_end } ## Parse given segment, highlight it and determinate its type # @parm Int start - start column # @parm int end - end column # @parm String segment_data - content of segment to parse # @return List - {segment_type expression_length} or {segment_type {}} or {{} {}} proc parse_segment {start end segment_data} { variable controls_type0 ;# control sequencies without any argument variable controls_type1 ;# control sequencies with exactly 1 argument variable inline_asm ;# Is inline assembler variable keyword_lists ;# list of all reserved keywords variable editor ;# ID of the text widget variable lineNumber ;# Number of current line variable lineStart ;# Index of line start variable lineEnd ;# Index of line end variable data ;# Content of the line variable validation_L0 ;# Bool: Basic validation enabled # Local variables set seg_type {} ;# segment type set expr_len 0 ;# length of expression # Handle empty segments if {$segment_data == {}} { return "$seg_type $expr_len" } # Convert segment data to uppre case (patterns are uppper-case) set segment_data [string toupper $segment_data] # Try to determinate segment type and perform highlight foreach keyword_list $keyword_lists \ tag {tag_instruction tag_directive tag_directive} \ type {instruction directive_0 directive_1} { if {[lsearch -ascii -exact $keyword_list $segment_data] != -1} { $editor tag add $tag $lineNumber.$start $lineNumber.$end set seg_type $type break } } if {$seg_type == {}} { if {[regexp -nocase {^[^\s]+\:\:?$} $segment_data]} { $editor tag add tag_label $lineNumber.$start $lineNumber.$end set seg_type label } elseif {$segment_data == {=} || $segment_data == {==}} { $editor tag add tag_symbol $lineNumber.$start $lineNumber.$end set seg_type {assignment} } else { set seg_type {unknown} } } # Return result return "$seg_type $expr_len" } ## Tag the given segment as error # @parm Int segment_number - number of the target segment # @return void proc put_error_on_segment {segment_number} { variable editor ;# ID of the text widget variable lineNumber ;# Number of current line variable validation_L0 ;# Bool: Basic validation enabled variable seg_0_start ;# Start index of seg_0 variable seg_1_start ;# Start index of seg_1 variable seg_2_start ;# Start index of seg_2 variable seg_0_end ;# End index of seg_0 variable seg_1_end ;# End index of seg_1 variable seg_2_end ;# End index of seg_2 return if {!$validation_L0} { return } # Determinate start and end index switch -- $segment_number { 0 { set start $seg_0_start set end $seg_0_end } 1 { set start $seg_1_start set end $seg_1_end } 2 { set start $seg_2_start set end $seg_2_end } } } ## Parse attributes in defintion of macro instruction # @retunr void proc parse_arguments {} { variable editor ;# ID of the text widget variable lineNumber ;# Number of current line variable seg_2_start ;# Start index of seg_2 variable seg_2 ;# 3rd field of the line variable validation_L0 ;# Bool: Basic validation enabled if {[regexp {^\s*$} $seg_2]} {return 0} while {1} { # Handle redutant commas while {1} { if {![regexp {^\s*\,} $seg_2]} {break} set space_len 0 if {[regexp {^\s+} $seg_2 space_len]} { set space_len [string length $space_len] } incr seg_2_start $space_len set seg_2 [string range $seg_2 [expr {$space_len + 1}] end] $editor tag add tag_oper_sep \ $lineNumber.$seg_2_start \ $lineNumber.[expr {$seg_2_start + 1}] incr seg_2_start } # Determinate argument if {![regexp {^[^\,]+} $seg_2 argument]} {break} set argument_len_org [string length $argument] set seg_2 [string range $seg_2 $argument_len_org end] set argument [string trimleft $argument] set argument_len [string length $argument] incr seg_2_start [expr {$argument_len_org - $argument_len}] # Highlight argument $editor tag add tag_constant \ $lineNumber.$seg_2_start \ $lineNumber.[expr {$seg_2_start + $argument_len}] set argument [string trimright $argument] incr seg_2_start $argument_len # highlight argument separator if {[string index $seg_2 0] == {,}} { set sep_end $seg_2_start incr sep_end $editor tag add tag_oper_sep $lineNumber.$seg_2_start $lineNumber.$sep_end incr seg_2_start set seg_2 [string range $seg_2 1 end] } } } ## Highlight all operands (segment 2) and their separators # @return void proc parse_operands {} { variable editor ;# ID of the text widget variable lineNumber ;# Number of current line variable seg_2_start ;# Start index of seg_2 variable seg_2 ;# 3rd field of the line variable operand ;# Data of the current operand variable opr_end ;# End index of the current operand variable opr_start ;# Start index of the current operand variable validation_L0 ;# Bool: Basic validation enabled variable validation_L1 ;# Bool: Advancet validation enabled if {[regexp {^\s*$} $seg_2]} {return 0} set ::ASMsyntaxHighlight::operands_count 0 set ::ASMsyntaxHighlight::opr_types {} # split data into single operands set i 0 set last_index $seg_2_start set original_data $seg_2 set data [hide_strings $seg_2] while {1} { # Handle redutant commas while {1} { if {![regexp {^\s*\,} $data]} {break} set space_len 0 if {[regexp {^\s+} $data space_len]} { set space_len [string length $space_len] } incr last_index $space_len set data [string range $data [expr {$space_len + 1}] end] set original_data [string range $original_data [expr {$space_len + 1}] end] $editor tag add tag_oper_sep \ $lineNumber.$last_index \ $lineNumber.[expr {$last_index + 1}] incr last_index } # gain operand data if {![regexp {^[^\,]+} $data operand]} {break} set operand_len [string length $operand] set data [string range $data $operand_len end] set operand [string range $original_data 0 [expr {$operand_len - 1}]] set original_data [string range $original_data $operand_len end] # determinate start index if {[regexp {^\s+} $operand space]} { set space_len [string length $space] set opr_start [expr {$last_index + $space_len}] set operand [string range $operand $space_len end] } else { set opr_start $last_index } # determinate end index if {[regexp {\s+$} $operand space]} { set space_len [string length $space] set opr_end [expr {$operand_len - $space_len}] set operand [string range $operand 0 $opr_end] } else { set opr_end $operand_len } incr opr_end $last_index incr last_index $operand_len set operand [string trimright $operand "\t "] if {$validation_L1} { add_aperand_to__opr_types } highlight_operand incr ::ASMsyntaxHighlight::operands_count # highlight operand separator if {[string index $data 0] == {,}} { set sep_end $last_index incr sep_end $editor tag add tag_oper_sep $lineNumber.$last_index $lineNumber.$sep_end incr last_index set data [string range $data 1 end] set original_data [string range $original_data 1 end] } incr i } } ## Append current operand (variable operand) to list of operand types in ::ASMsyntaxHighlight::opr_types # Purpose of this function is to enable searching in instruction #+ details panel while this syntaxt highlight pattern is used # @return void proc add_aperand_to__opr_types {} { variable operand ;# Data of the current operand set opr [string toupper $operand] switch -- [string index $opr 0] { {#} {lappend ::ASMsyntaxHighlight::opr_types {#}} {/} {lappend ::ASMsyntaxHighlight::opr_types {/}} {@} {lappend ::ASMsyntaxHighlight::opr_types $opr} default { if {[lsearch -ascii -exact {R0 R1 R2 R3 R4 R5 R6 R7 DPTR A AB C} $opr] != -1} { lappend ::ASMsyntaxHighlight::opr_types $opr } else { lappend ::ASMsyntaxHighlight::opr_types {D} } } } } ## Highlight current operand # @return void proc highlight_operand {} { variable editor ;# ID of the text widget variable operand ;# Data of the current operand variable opr_end ;# End index of the current operand variable opr_start ;# Start index of the current operand variable validation_L0 ;# Bool: Basic validation enabled variable inline_asm ;# Is inline assembler variable lineNumber ;# Number of current line ## Determinate addressing type set addr_type [string index $operand 0] # Immediate adresing if {$addr_type == {#}} { set operand [string range $operand 1 end] # Immediate char value if {[string index $operand 0] == {'} && [string index $operand end] == {'}} { set len [string length $operand] if {$len > 3} { put_tag_on_operand tag_string } else { put_tag_on_operand tag_imm_char } # Label in inline assembler } elseif {[regexp {^\d+\$$} $operand]} { put_tag_on_operand tag_imm_constant # Operand has no value => incorrect operand } elseif {[regexp { |\(|\)|\+|\-|\%|\=|\>|\<|\*|\/} $operand]} { parse_expression $operand $opr_start $opr_end $editor tag add tag_symbol \ $lineNumber.$opr_start $lineNumber.$opr_start+1c } elseif { $validation_L0 && ([string length $operand] == 0 || ![regexp {^[\w\.\\]+$} $operand]) } then { # put_tag_on_operand tag_error # Operand value determinated successfully } else { parse_operand_auxiliary2 { tag_imm_unknown tag_imm_hex tag_imm_dec tag_imm_oct tag_imm_bin tag_imm_char tag_imm_constant tag_string } } # Indirect adresing } elseif {$addr_type == {@}} { set operand [string range $operand 1 end] put_tag_on_operand tag_indirect # Check for operand validity if {!$validation_L0} {return} set operand [string toupper $operand] # Direct bit adresing } elseif {$addr_type == {/}} { set operand [string range $operand 1 end] if {[regexp {\(|\)|\+|\-|\%|\=|\>|\<|\*|\/} $operand]} { parse_expression $operand $opr_start $opr_end $editor tag add tag_symbol \ $lineNumber.$opr_start $lineNumber.$opr_start+1c } elseif { $validation_L0 && ([string length $operand] == 0 || ![regexp {^'?[\w\.]+'?$} $operand]) } then { # Operand has no value => incorrect operand # put_tag_on_operand tag_error } else { parse_operand_auxiliary $::ASMsyntaxHighlight::spec_bits { tag_unknown_base tag_hex tag_dec tag_oct tag_bin tag_char tag_constant tag_string } } # Another kind of direct adresing } else { parse_operand_auxiliary $::ASMsyntaxHighlight::spec_registers { tag_unknown_base tag_hex tag_dec tag_oct tag_bin tag_char tag_constant tag_string } } } ## Auxiliary procedure for procedure highlight_operand # @parm List SFR_set - List of SFR keywords # @parm List tag_list - List of tags for procedure parse_operand_auxiliary2 # @return void proc parse_operand_auxiliary {SFR_set tag_list} { variable operand ;# Data of the current operand # SFR if {[lsearch -ascii -exact $SFR_set [string toupper $operand]] != -1} { put_tag_on_operand tag_sfr # Something else than SFR } else { parse_operand_auxiliary2 $tag_list } } ## Auxiliary procedure for procedures highlight_operand and parse_operand_auxiliary # @parm List tag_list - list of text tags (see code) # @return void proc parse_operand_auxiliary2 {tag_list} { variable operand ;# Data of the current operand variable opr_start ;# Start index of the current operand variable opr_end ;# End index of the current operand variable editor ;# ID of the text widget variable lineNumber ;# Number of current line variable validation_L0 ;# Bool: Basic validation enabled variable inline_asm ;# Is inline assembler # Label if {[regexp {^\d+\$$} $operand]} { put_tag_on_operand [lindex $tag_list 6] # Expression } elseif {[regexp {\(|\)|\+|\-|\%|\=|\>|\<|\*|\/} $operand]} { parse_expression $operand $opr_start $opr_end # Dot notation (bit addressing) } elseif {[regexp {^\w+\.\w+$} $operand]} { set opr [split $operand {.}] set operand [lindex $opr 0] set opr_true_end $opr_end set opr_end $opr_start incr opr_end [string length $operand] parse_operand_auxiliary $::ASMsyntaxHighlight::spec_registers $tag_list set opr_start [expr {$opr_end + 1}] $editor tag add tag_symbol $lineNumber.$opr_end $lineNumber.$opr_start set opr_end $opr_true_end set operand [lindex $opr 1] parse_operand_auxiliary2 $tag_list # Direct value } elseif {[regexp {^(\d|')} $operand]} { # gain information about the openand (radix and decimal value) set opr_info [which_radix 0 $operand] set opr_base [lindex $opr_info 0] set opr_in_dec [lindex $opr_info 1] # Radix determinated incorrectly => unknown number if {$opr_base == {}} { put_tag_on_operand [lindex $tag_list 0] # Radix determinated correctly - continue normaly } else { # highlight according to numeric base switch -- $opr_base { {hex} {put_tag_on_operand [lindex $tag_list 1]} {dec} {put_tag_on_operand [lindex $tag_list 2]} {oct} {put_tag_on_operand [lindex $tag_list 3]} {bin} {put_tag_on_operand [lindex $tag_list 4]} {ascii} {put_tag_on_operand [lindex $tag_list 5]} {string} {put_tag_on_operand [lindex $tag_list 7]} } } # defined by a symbolic name } else { put_tag_on_operand [lindex $tag_list 6] } } ## Highlight current operand by the given tag # @parm String tag_name - tag name # @return void proc put_tag_on_operand {tag_name} { variable lineNumber ;# Number of current line variable opr_end ;# End index of the current operand variable opr_start ;# Start index of the current operand variable editor ;# ID of the text widget $editor tag add $tag_name $lineNumber.$opr_start $lineNumber.$opr_end } ## Determinate numeric base of the given number # @parm Bool norange - 1 == determinate decimal value (sometimes...) and validate it (see code) # @parm String number - number to analyze # @return List - {base decimal_value} or {base "error"} proc which_radix {norange number} { set original_len [string length $number] set len [string length [string trimleft $number {0}]] if {$original_len > 1 && $len == 1} { incr len } incr len -1 set radix [string index $number end] set number [string range $number 0 {end-1}] set dec_val error set base {} # Character or string if {$radix == {'}} { if {[string index $number 0] == {'}} { set number [string range $number 1 end] set base ascii if {[string length $number] == 1} { set dec_val 0 } elseif {[string length $number] > 1} { set base string set dec_val 0 } } # Prefix hexadecimal notation } elseif {[string range $number 0 1] == {0x} || [string range $number 0 1] == {0X}} { append number $radix set base hex if {[regexp {^0[Xx][A-Fa-f0-9]+$} $number]} { set dec_val 0 } # Regular numbers } else { set radix [string tolower $radix] switch -- $radix { {h} { ;# Hexadecimal set base hex if {$norange || ($len <= 4 && $len >= 1)} { if {[regexp {^[A-Fa-f0-9]*$} $number]} { set dec_val 0 } } } {d} { ;# Decimal set base dec if {$norange || ($len <= 5 && $len >= 1)} { if {[regexp {^[0-9]*$} $number]} { set dec_val $number } } } {o} { ;# Octal set base oct if {$norange} { if {[regexp {^[0-7]*$} $number]} { set dec_val 0 } } elseif {$len <= 6 && $len >= 1} { if {[regexp {^[0-7]*$} $number]} { if {$len != 3} { set dec_val 0 } else { if {[string index $number 0] <= 3} { set dec_val 0 } } } } } {q} { ;# Octal set base oct if {$norange} { if {[regexp {^[0-7]*$} $number]} { set dec_val 0 } } elseif {$len <= 6 && $len >= 1} { if {[regexp {^[0-7]*$} $number]} { if {$len != 3} { set dec_val 0 } else { if {[string index $number 0] <= 3} { set dec_val 0 } } } } } {b} { ;# Binary set base bin if {$norange || ($len <= 16 && $len >= 1)} { if {[regexp {^[01]*$} $number]} { set dec_val 0 } } } default { ;# Default set dec_val {} } } } # done ... return [list $base $dec_val] } ## Highlight expressions (eg. '( 10d - X MOD 55h)') # @parm String data - expression to highlight # @parm Int start_index - expresssion start index # @parm Int end_index - expresssion end index # @return void proc parse_expression {data start_index end_index} { variable editor ;# ID of the text widget variable lineNumber ;# Number of current line variable expr_symbols ;# symbol operators variable validation_L0 ;# Bool: Basic validation enabled variable validation_L1 ;# Bool: Advancet validation enabled # Adjust data to fit the given boundaries set data_len [string length $data] set dif [expr {$end_index - $start_index - $data_len}] if {$dif != 0} { set space [string repeat { } $dif] set data $space$data } # Remove strings set e_idx 0 while {1} { if {![regexp -start $e_idx -- {'[^']*'} $data string_data]} { break } set len [string length $string_data] set s_idx [string first {'} $data $e_idx] set e_idx [expr {$s_idx + $len}] if {$len > 2} { set data [string replace $data \ [expr {$s_idx + 1}] [expr {$e_idx - 2}] \ [string repeat { } [expr {$len - 2}]] \ ] } } # remove and highlight '(' set opened_par 0 while {1} { set symbol_idx [string first {(} $data] if {$symbol_idx == -1} {break} incr opened_par set data [string replace $data $symbol_idx $symbol_idx { }] incr symbol_idx $start_index $editor tag add tag_symbol $lineNumber.$symbol_idx $lineNumber.[expr {$symbol_idx + 1}] } # remove and highlight ')' while {1} { set symbol_idx [string first {)} $data] if {$symbol_idx == -1} {break} incr opened_par -1 set data [string replace $data $symbol_idx $symbol_idx { }] incr symbol_idx $start_index $editor tag add tag_symbol $lineNumber.$symbol_idx $lineNumber.[expr {$symbol_idx + 1}] } # highlight expr. symbols (+1 chars) and remove them from the string set adjusted_data [string toupper $data] regsub {\t} $adjusted_data { } adjusted_data # highlight expr. symbols (1 char) and remove them from the string foreach symbol $expr_symbols { while {1} { set symbol_idx [string first $symbol $data] if {$symbol_idx == -1} {break} set original_symbol_idx $symbol_idx set symbol_idx_org_1 [expr {$symbol_idx + 1}] set data [string replace $data $symbol_idx $symbol_idx { }] incr symbol_idx $start_index set symbol_idx_1 [expr {$symbol_idx + 1}] $editor tag add tag_symbol $lineNumber.$symbol_idx $lineNumber.$symbol_idx_1 } } # highlight other parts set last_index $start_index set original_data $data set data [hide_strings $data] while {1} { if {![regexp {[^\s]+} $data value]} {break} set value_S_idx [string first $value $data] set value_len [string length $value] set value_E_idx $value_len incr value_E_idx $value_S_idx set value [string range $original_data $value_S_idx $value_E_idx] set data [string range $data $value_E_idx end] set original_data [string range $original_data $value_E_idx end] set tmp_idx $value_E_idx incr value_S_idx $last_index incr value_E_idx $last_index incr last_index $tmp_idx highlight_value [string trimright $value] $value_S_idx $value_E_idx } } ## Highlight constant values # @parm String data - string to highlight # @parm Int start_index - start index # @parm Int end_index - end index # @return void proc highlight_value {data start_index end_index} { variable editor ;# ID of the text widget variable lineNumber ;# Number of current line variable validation_L0 ;# Bool: Basic validation enabled # Dot notation -- bit addressing if {[regexp {^\w+\.\w+$} $data]} { set data [split $data {.}] set end_index_org $end_index set end_index $start_index incr end_index [string length [lindex $data 0]] highlight_value [lindex $data 0] $start_index $end_index $editor tag add tag_symbol $lineNumber.$end_index $lineNumber.[expr {$end_index + 1}] incr end_index highlight_value [lindex $data 1] $end_index $end_index_org return } elseif {[regexp {^(\d|')} $data]} { # Gain information about the value set opr_info [which_radix 1 $data] set opr_base [lindex $opr_info 0] set opr_in_dec [lindex $opr_info 1] # Highlight value according to info if {$opr_base == {}} { $editor tag add tag_unknown_base $lineNumber.$start_index $lineNumber.$end_index return } # Highlight according to numeric base switch -- $opr_base { {hex} { ;# Hexadecimal $editor tag add tag_hex $lineNumber.$start_index $lineNumber.$end_index } {dec} { ;# Decimal $editor tag add tag_dec $lineNumber.$start_index $lineNumber.$end_index } {oct} { ;# Octal $editor tag add tag_oct $lineNumber.$start_index $lineNumber.$end_index } {bin} { ;# Binary $editor tag add tag_bin $lineNumber.$start_index $lineNumber.$end_index } {ascii} { ;# Char $editor tag add tag_char $lineNumber.$start_index $lineNumber.$end_index } {string} { ;# String $editor tag add tag_string $lineNumber.$start_index $lineNumber.$end_index } } return } # Constant $editor tag add tag_constant $lineNumber.$start_index $lineNumber.$end_index } ## Replace all single quoted string with underscores (''abc'' -> '_____') # @parm String data - input data # @return String - output data proc hide_strings {data} { # Return string which dowsn't contain ''' if {[string first {'} $data] == -1} {return $data} # Perform replacement while {1} { if {![regexp {'[^']*'} $data string]} { break } regsub {'[^']*'} $data [string repeat {_} \ [string length $string] \ ] data } # Return result return $data } } # >>> File inclusion guard } # <<< File inclusion guard mcu8051ide-1.4.7/lib/editor/ASMsyntaxhighlight.tcl0000644000175000017500000014355412067167647022432 0ustar milleniummillenium#!/usr/bin/tclsh # Part of MCU 8051 IDE ( http://mcu8051ide.sf.net ) ############################################################################ # Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012 by Martin Ošmera # # martin.osmera@gmail.com # # # # This program is free software; you can redistribute it and#or modify # # it under the terms of the GNU General Public License as published by # # the Free Software Foundation; either version 2 of the License, or # # (at your option) any later version. # # # # This program is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU General Public License for more details. # # # # You should have received a copy of the GNU General Public License # # along with this program; if not, write to the # # Free Software Foundation, Inc., # # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # ############################################################################ # >>> File inclusion guard if { ! [ info exists _ASMSYNTAXHIGHLIGHT_TCL ] } { set _ASMSYNTAXHIGHLIGHT_TCL _ # <<< File inclusion guard # -------------------------------------------------------------------------- # DESCRIPTION # Implements syntax highlighting interface for assembly language # -------------------------------------------------------------------------- namespace eval ASMsyntaxHighlight { ## Highlight colors and font styles - highlight tags definition # { # {tag_name ?foreground? ?overstrike? ?italic? ?bold?} # } variable highlight_tags { {tag_char #880066 0 0 0} {tag_hex #8800BB 0 0 0} {tag_oct #880000 0 0 0} {tag_dec #0055AA 0 0 0} {tag_bin #333355 0 0 0} {tag_constant #55AA00 0 0 0} {tag_unknown_base #882222 0 0 0} {tag_string #888800 0 0 0} {tag_comment #888888 0 1 0} {tag_control #FF0000 0 0 1} {tag_symbol #AA00FF 0 0 1} {tag_oper_sep #DD8800 0 0 1} {tag_directive #8888FF 0 0 1} {tag_label #885500 0 0 0} {tag_instruction #0000FF 0 0 1} {tag_sfr #0000DD 0 0 0} {tag_indirect #DD0000 0 0 0} {tag_imm_char #DD00AA 0 0 0} {tag_imm_hex #AA00DD 0 0 0} {tag_imm_oct #AA0000 0 0 0} {tag_imm_dec #0088DD 0 0 0} {tag_imm_bin #5555AA 0 0 0} {tag_imm_constant #EFBC2B 0 0 0} {tag_imm_unknown #AA3333 0 0 0} {tag_macro #CC00DD 0 0 1} } # Instructions keywords variable instructions { ACALL ADD ADDC AJMP ANL CJNE CLR CPL DA DEC DIV DJNZ INC JB JBC JC JMP JNB JNZ SJMP JNC CALL JZ LCALL LJMP MOV MOVC MOVX MUL NOP ORL POP PUSH RET RETI RL RLC RR RRC SETB SUBB SWAP XCH XCHD XRL } # SFR bits variable spec_bits { C Z P OV RS0 RS1 F0 AC CY PX0 PT0 PX1 PT1 PS RXD TXD INT0 INT1 T0 T1 WR RD EX0 ET0 EX1 ET1 ES EA RI TI RB8 TB8 REN SM2 SM1 SM0 IT0 IE0 IT1 IE1 TR0 TF0 TR1 TF1 TF2 EXF2 RCLK TCLK EXEN2 TR2 CT2 CPRL2 EC PC ET2 PT2 FE CR CCF4 CCF3 CCF2 CCF1 CCF0 PPCL PT2L PSL PT1L PX1L PT0L PX0L } # SFR registers and bits variable spec_registers [concat { A ACC B AB P0 P1 P2 P3 TL0 TL1 TH0 TH1 TMOD TCON SCON DPL PCON PSW SP DPH SBUF IE IP R0 R1 R2 R3 R4 R5 R6 R7 DPTR DP0L DP0H T2CON T2MOD RCAP2L RCAP2H TL2 TH2 AUXR1 WDTRST AUXR P4 DPH DPL DP1H DP1L WDTCON EECON CLKREG ACSR IPH SADDR SADEN SPCR SPSR SPDR CKCON WDTPRG CH CCAP0H CCAP1H CCAPL2H CCAPL3H CCAPL4H ADCLK ADCON ADDL ADDH ADCF CL CCAP0L CCAP1L CCAPL2L CCAPL3L CCAPL4L P1M2 P3M2 P4M2 P1M1 P3M1 P4M1 SPCON SPSTA SPDAT CMOD CCAPM0 CCAPM1 CCAPM2 CCAPM3 CCAPM4 IPL1 IPH1 IPH0 BRL BDRCON KBLS KBE KBF WDTRST WDTPRG CKRL CKCON0 IPL0 CCON } $spec_bits] ## COMPILER DIRECTIVES # directives without arguments variable directive_type0 { ENDIF ENDM END ELSE EXITM LIST NOLIST } # directives with argument(s) but without any label variable directive_type1 { DSEG ISEG BSEG XSEG CSEG SKIP NAME LOCAL } # directives for symbol definitions variable directive_type2 { EQU BIT SET CODE DATA IDATA XDATA MACRO FLAG } # directives with argument and optional label variable directive_type3 { DS DW DB DBIT INCLUDE ORG IF USING BYTE NAME REPT TIMES ELSEIF IFN ELSEIFN IFDEF ELSEIFDEF IFNDEF ELSEIFNDEF IFB ELSEIFB IFNB ELSEIFNB } # all known directives variable all_directives [concat $directive_type0 $directive_type1 $directive_type2 $directive_type3] # word operators variable expr_instructions { MOD SHR SHL NOT AND OR LE XOR EQ NE GT GE LT HIGH LOW } # symbol operators variable expr_symbols { = + - * / > < % } # control sequencies without any argument variable controls_type0 { NOLIST NOMOD NOOBJECT NOPAGING NOPRINT NOSYMBOLS EJECT LIST PAGING SYMBOLS NOMACROSFIRST NOXR NOXREF XR XREF NOSB SB RESTORE RS SA SAVE PHILIPS NOPI PI NOTABS NOMOD51 NOBUILTIN NOMO MO MOD51 NOMACRO NOMR LI NOLI GENONLY GO NOGEN NOGE GEN GE EJ NODB NODEBUG DB DEBUG CONDONLY NOCOND COND } # control sequencies with exactly 1 argument variable controls_type1 { PAGEWIDTH PAGELENGTH PRINT TITLE OBJECT DATE INCLUDE TT PW PL MR MACRO INC WARNING ERROR DA } # all known control sequencies variable all_controls [concat $controls_type0 $controls_type1] # all known control sequencies with preceeding dolar character variable all_controls__with_dolar # all known directives and control sequencies variable all_directives_and_controls [concat $all_directives $all_controls] # list of all reserved keywords variable keyword_lists [list \ $instructions \ $directive_type0 \ $directive_type1 \ $directive_type2 \ $directive_type3 \ ] variable inline_asm ;# Is inline assembler variable editor ;# ID of the text widget variable lineNumber ;# Number of current line variable lineStart ;# Index of line start variable lineEnd ;# Index of line end variable data ;# Content of the line variable data_backup ;# Original content of the line variable last_index ;# Last parse index variable last_index_backup ;# Auxiliary variable (some index) variable seg_0 ;# 1st field of the line variable seg_1 ;# 2nd field of the line variable seg_2 ;# 3rd field of the line variable seg_0_start ;# Start index of seg_0 variable seg_1_start ;# Start index of seg_1 variable seg_2_start ;# Start index of seg_2 variable seg_0_end ;# End index of seg_0 variable seg_1_end ;# End index of seg_1 variable seg_2_end ;# End index of seg_2 variable operands_count 0 ;# Number of operands at the line variable operand ;# Data of the current operand variable opr_end ;# End index of the current operand variable opr_start ;# Start index of the current operand ## List of operand types on the line (eg. '{D # DPTR}') # Possible values are: # - '#' : Immediate addressing # - @$x : Indirect addressing (one of {@R0 @R1 @DPTR @A+DPTR @A+PC}) # - '/' : Inverted bit # - 'D' : Direct addressing # - $sfr : One of {R0 R1 R2 R3 R4 R5 R6 R7 DPTR A AB C} variable opr_types variable validation_L0 1 ;# Bool: Basic validation enabled variable validation_L1 1 ;# Bool: Advancet validation enabled ## Define highlighting text tags in the given text widget # @parm Widget text_widget - ID of the target text widget # @parm Int fontSize - font size # @parm String fontFamily - font family # @parm List highlight=default - Highlighting tags definition # @parm Bool nobold=0 - Ignore bold flag # @return void proc create_tags {text_widget fontSize fontFamily {highlight {}} {nobold 0}} { variable highlight_tags ;# Highlight tags definition # Handle arguments if {$highlight == {}} { ;# highlighting definition set highlight $highlight_tags } # Iterate over highlighting tags definition foreach item $highlight { # Create array of tag attributes for {set i 0} {$i < 5} {incr i} { set tag($i) [lindex $item $i] } # Foreground color if {$tag(1) == {}} { set tag(1) black } # Fonr slant if {$tag(3) == 1} { set tag(3) italic } else { set tag(3) roman } # Font weight if {$tag(4) == 1 && !$nobold} { set tag(4) bold } else { set tag(4) normal } # Tag "tag_constant" is copied as "tag_constant_def" #+ and "tag_macro" as "tag_macro_def" if {$tag(0) == {tag_constant}} { lappend tag(0) {tag_constant_def} } elseif {$tag(0) == {tag_macro}} { lappend tag(0) {tag_macro_def} } # Create the tag in the target text widget foreach tag_name $tag(0) { $text_widget tag configure $tag_name \ -foreground $tag(1) \ -font [font create \ -overstrike $tag(2) \ -slant $tag(3) \ -weight $tag(4) \ -size -$fontSize \ -family $fontFamily \ ] } } # Add tag error $text_widget tag configure tag_error -underline 1 } ## Perform syntax highlight on the given line in the given widget # @parm Widget p_editor - Text widget # @parm Int linenumber - Number of line to highlight # @parm Bool inlineasm - Inline assembler # @parm Int linestart=0 - Start index # @parm Int lineend=end - End index # @return Bool - result proc highlight {p_editor linenumber {inlineasm 0} {linestart {}} {lineend {}}} { variable editor ;# ID of the text widget variable lineNumber ;# Number of current line variable lineStart ;# Index of line start variable lineEnd ;# Index of line end variable inline_asm ;# Is inline assembler variable seg_0 {} ;# 1st field of the line variable seg_1 {} ;# 2nd field of the line variable seg_2 {} ;# 3rd field of the line variable seg_0_start ;# Start index of seg_0 variable seg_1_start ;# Start index of seg_1 variable seg_2_start ;# Start index of seg_2 variable seg_0_end ;# End index of seg_0 variable seg_1_end ;# End index of seg_1 variable seg_2_end ;# End index of seg_2 variable last_index ;# Last parse index variable data ;# Content of the line variable operands_count ;# Number of operand in the line variable validation_L0 ;# Bool: Basic validation enabled # Parse input arguments set editor $p_editor set lineNumber $linenumber set inline_asm $inlineasm if {$linestart == {}} { set lineStart $lineNumber.0 } else { set lineStart $lineNumber.$linestart } if {$lineend == {}} { set lineEnd [$editor index [list $lineStart lineend]] } else { set lineEnd $lineNumber.$lineEnd } if {$linestart != {}} { set start_offset $linestart } else { set start_offset 0 } set data [$editor get $lineStart $lineEnd] set operands_count 0 set opr_types {} if {$inline_asm} { delete_tags } # check if the line is not empty if {[regexp {^\s*$} $data]} { return 0 } set line_length [string length $data] if {$line_length == 0} { return 0 } # determinate comment field and highlight it (the last field) set comment_start {} if {[regexp {;} $data]} { # remove 'string' from the line set comment_data [hide_strings $data] if {[regexp {;.*$} $comment_data comment_start]} { set comment_start [string length $comment_start] set comment_start [expr {$line_length - $comment_start}] # remove comment and trailing space from the line if {$comment_start == 0} { set data {} delete_tags } else { set data [string range $data 0 [expr {$comment_start - 1}]] regsub {\s+$} $data {} data } incr comment_start $start_offset } } # Handle line containing only comment if {![string length $data]} { if {!$inline_asm} { delete_tags } $editor tag add tag_comment $lineNumber.$comment_start $lineEnd return 1 } # Determinate 1st segment of the line regexp {^\s*[^\s]+:?} $data seg_0 if {[regexp {\w\(} $seg_0]} { regsub {\(.*$} $seg_0 {} seg_0 } if {[string last {:} $seg_0] != -1} { set seg_0 [string range $seg_0 0 [string last {:} $seg_0]] } set seg_0_end [string length $seg_0] regsub {^\s+} $seg_0 {} seg_0 set seg_0_start [string length $seg_0] set seg_0_start [expr {$seg_0_end - $seg_0_start}] set data [string replace $data 0 [expr {$seg_0_end - 1}]] incr seg_0_end $start_offset incr seg_0_start $start_offset set last_index $seg_0_end # # SYNTAX HIGHLIGHT # # delete existing tags within the line if {!$inline_asm} { delete_tags } # highlight comment if {$comment_start != {}} { $editor tag add tag_comment $lineNumber.$comment_start $lineEnd } # highlight 1st and 2nd field set seg_0_info [parse_segment $seg_0_start $seg_0_end $seg_0] # Conditional parsing with validation switch -- [lindex $seg_0_info 0] { {control_0} {} {control_1} {} {control_incorrect} {} {label} { determinate_segment_1 set seg_1_info [parse_segment $seg_1_start $seg_1_end $seg_1] switch -- [lindex $seg_1_info 0] { {control_0} { determinate_segment_2 put_error_on_segment 2 } {control_1} { determinate_segment_2 put_error_on_segment 2 } {label} { put_error_on_segment 1 } {instruction} { determinate_segment_2 parse_operands } {directive_3} { determinate_segment_2 if {![string length $seg_2]} { put_error_on_segment 1 } set seg_1 [string tolower $seg_1] if {$seg_1 == {db} || $seg_1 == {.db} || $seg_1 == {byte} || $seg_1 == {.byte}} { parse_operands } elseif {$seg_1 == {include} || $seg_1 == {.include}} { $editor tag add tag_string \ $lineNumber.$seg_2_start \ [list $lineNumber.0 lineend] } else { parse_expressions } } {directive_2} { put_error_on_segment 0 } {directive_1} {} {directive_0} { determinate_segment_2 if {[string length $seg_2]} { incr seg_2_end put_error_on_segment 2 } } {unknown} { $editor tag add tag_macro \ $lineNumber.$seg_1_start $lineNumber.$seg_1_end if { $validation_L0 && ([regexp {^\d} $seg_1] || ![regexp {^\w+$} $seg_1]) } then { put_error_on_segment 1 } determinate_segment_2 parse_operands } default { put_error_on_segment 1 } } } {instruction} { determinate_segment_2 parse_operands } {directive_3} { determinate_segment_2 if {![string length $seg_2]} { put_error_on_segment 0 } set seg_0 [string tolower $seg_0] if {$seg_0 == {db} || $seg_0 == {.db} || $seg_0 == {byte} || $seg_0 == {.byte}} { parse_operands } elseif {$seg_0 == {include} || $seg_0 == {.include}} { $editor tag add tag_string \ $lineNumber.$seg_2_start \ [list $lineNumber.0 lineend] } else { parse_expressions } } {directive_2} { determinate_segment_2 parse_expressions put_error_on_segment 0 } {directive_1} { determinate_segment_2 parse_expressions } {directive_0} { determinate_segment_1 put_error_on_segment 1 determinate_segment_2 put_error_on_segment 2 } {unknown} { determinate_segment_1 set seg_1_info [parse_segment $seg_1_start $seg_1_end $seg_1] switch -- [lindex $seg_1_info 0] { {control_0} { determinate_segment_2 put_error_on_segment 2 } {control_1} { determinate_segment_2 put_error_on_segment 2 } {label} { put_error_on_segment 0 } {instruction} { put_error_on_segment 0 determinate_segment_2 parse_operands } {directive_3} { put_error_on_segment 0 determinate_segment_2 set seg_1 [string tolower $seg_1] if {$seg_1 == {db} || $seg_1 == {.db} || $seg_1 == {byte} || $seg_1 == {.byte}} { parse_operands } elseif {$seg_1 == {include} || $seg_1 == {.include}} { $editor tag add tag_string \ $lineNumber.$seg_2_start \ [list $lineNumber.0 lineend] } else { parse_expressions } } {directive_2} { if { $validation_L0 && ([regexp {^\d} $seg_0] || ![regexp {^\w+$} $seg_0]) } then { put_error_on_segment 0 } set sg [string tolower $seg_1] if {$sg == {macro} || $sg == {.macro}} { $editor tag add tag_macro_def \ $lineNumber.$seg_0_start \ $lineNumber.$seg_0_end determinate_segment_2 parse_arguments } else { $editor tag add tag_constant_def \ $lineNumber.$seg_0_start \ $lineNumber.$seg_0_end determinate_segment_2 parse_expressions } } {directive_1} { put_error_on_segment 0 determinate_segment_2 parse_expressions } {directive_0} { put_error_on_segment 0 determinate_segment_2 put_error_on_segment 2 } {unknown} { $editor tag add tag_macro $lineNumber.$seg_0_start $lineNumber.$seg_0_end if { $validation_L0 && ([regexp {^\d} $seg_0] || ![regexp {^\w+$} $seg_0]) } then { put_error_on_segment 0 } determinate_segment_1_take_back determinate_segment_2 parse_operands } default { $editor tag add tag_macro $lineNumber.$seg_0_start $lineNumber.$seg_0_end if { $validation_L0 && ([regexp {^\d} $seg_0] || ![regexp {^\w+$} $seg_0]) } then { put_error_on_segment 0 } } } } default {} } return 1 } ## Remove previously defined syntax highlighting tags # @return void proc delete_tags {} { variable editor ;# ID of the text widget variable highlight_tags ;# Highlight tags definition variable lineStart ;# Index of line start variable lineEnd ;# Index of line end set lineStart_truestart [$editor index [list $lineStart linestart]] # Remove tag error, tag_constant_def and tag_macro_def foreach tag {tag_error tag_constant_def tag_macro_def} { $editor tag remove $tag $lineStart_truestart $lineStart_truestart+1l } # Remove tags according to pattern foreach tag $highlight_tags { $editor tag remove [lindex $tag 0] $lineStart_truestart $lineEnd } } ## Take back extraction of segment 1 # @return void proc determinate_segment_1_take_back {} { variable data ;# Content of the line variable data_backup ;# Original content of the line variable last_index ;# Last parse index variable last_index_backup ;# Auxiliary variable (some index) set data $data_backup set last_index $last_index_backup } ## Extract segment 1 from the line # @return void proc determinate_segment_1 {} { variable seg_1 ;# 2nd field of the line variable seg_1_start ;# Start index of seg_1 variable seg_1_end ;# End index of seg_1 variable last_index ;# Last parse index variable data ;# Content of the line variable data_backup ;# Original content of the line variable last_index_backup ;# Auxiliary variable (some index) # Line is empty # if {![regexp {^\s*[^\s\(]+} $data seg_1]} if {![regexp {^\s*[^\s]+} $data seg_1]} { set seg_1 {} set seg_1_end $last_index set seg_1_start $last_index # Line is not empty } else { set data_backup $data set last_index_backup $last_index set seg_1_end [string length $seg_1] set data [string replace $data 0 [expr {$seg_1_end - 1}]] incr seg_1_end $last_index regsub {^\s+} $seg_1 {} seg_1 set seg_1_start [string length $seg_1] set seg_1_start [expr {$seg_1_end - $seg_1_start}] set last_index $seg_1_end } } ## Extract segment 2 from the line # @return void proc determinate_segment_2 {} { variable seg_2 ;# 3rd field of the line variable seg_2_start ;# Start index of seg_2 variable seg_2_end ;# End index of seg_2 variable last_index ;# Last parse index variable data ;# Content of the line # determinate the last segment of the line set seg_2_start $last_index if {[regexp {^\s+} $data space]} { incr seg_2_start [string length $space] } regsub {^\s+} $data {} seg_2 regsub {\s+$} $seg_2 {} seg_2 set seg_2_end [string length $seg_2] incr seg_2_end $last_index set data {} } ## Shorthand for 'parse_expression $seg_2 $seg_2_start $seg_2_end' # @return void proc parse_expressions {} { variable seg_2 ;# 3rd field of the line variable seg_2_start ;# Start index of seg_2 variable seg_2_end ;# End index of seg_2 parse_expression $seg_2 $seg_2_start $seg_2_end } ## Parse given segment, highlight it and determinate its type # @parm Int start - start column # @parm int end - end column # @parm String segment_data - content of segment to parse # @return List - {segment_type expression_length} or {segment_type {}} or {{} {}} proc parse_segment {start end segment_data} { variable controls_type0 ;# control sequencies without any argument variable controls_type1 ;# control sequencies with exactly 1 argument variable keyword_lists ;# list of all reserved keywords variable editor ;# ID of the text widget variable lineNumber ;# Number of current line variable lineStart ;# Index of line start variable lineEnd ;# Index of line end variable data ;# Content of the line variable validation_L0 ;# Bool: Basic validation enabled variable inline_asm ;# Bool: Is inline assembler # Local variables set seg_type {} ;# segment type set expr_len 0 ;# length of expression # Handle empty segments if {$segment_data == {}} { return [list $seg_type $expr_len] } # Convert segment data to uppre case (patterns are uppper-case) set segment_data [string toupper $segment_data] # Try to determinate segment type and perform highlight set keyword $segment_data if {[string index $keyword 0] == {.}} { set keyword [string replace $keyword 0 0] } foreach keyword_list $keyword_lists \ tag {tag_instruction tag_directive tag_directive tag_directive tag_directive} \ type {instruction directive_0 directive_1 directive_2 directive_3} { if {$type != {instruction}} { if {[lsearch -ascii -exact $keyword_list $keyword] != -1} { $editor tag add $tag $lineNumber.$start $lineNumber.$end set seg_type $type break } } else { if {[lsearch -ascii -exact $keyword_list $segment_data] != -1} { $editor tag add $tag $lineNumber.$start $lineNumber.$end set seg_type $type break } } } # If segment type could not be recognized -> check for labels, macro's and controls if {$seg_type == {}} { # Handle compiler control sequences if {[string index $segment_data 0] == {$}} { set segment_data [string range $segment_data 1 end] set expr_data {} set segment_data "$segment_data $data" set segment_data [string trimright $segment_data {  }] set end [string length $segment_data] incr end [expr {$start + 1}] set ctrl_end $end set data {} if {[regexp {\(.*$} $segment_data expr_data]} { set expr_len [string length $expr_data] set expr_start [expr {$end - $expr_len - 1}] set expr_end [expr {$expr_start + $expr_len}] set end $expr_start regsub {\(.*$} $segment_data {} segment_data set segment_data [string trimright $segment_data] } # Control type 1 if {[lsearch -ascii -exact $controls_type1 $segment_data] != -1} { set seg_type control_1 # Control type 0 } elseif {[lsearch -ascii -exact $controls_type0 $segment_data] != -1} { set seg_type control_0 # Incorrect control sequence } else { set seg_type control_incorrect if {$validation_L0} { $editor tag add tag_error $lineNumber.$start $lineNumber.$end } } # Puts tag "control" $editor tag add tag_control $lineNumber.$start $lineNumber.$end # Control sequence argument if {$expr_data != {}} { parse_argument $expr_start $expr_end $expr_data $start $end if {$validation_L0 && $seg_type == {control_0}} { $editor tag add tag_error $lineNumber.$expr_start $lineNumber.$expr_end } } elseif {$validation_L0 && $seg_type == {control_1}} { $editor tag add tag_error $lineNumber.$start $lineNumber.$end } # Labels } elseif {[regexp -nocase {^[^\s]*:$} $segment_data]} { $editor tag add tag_label $lineNumber.$start $lineNumber.$end set seg_type label if {$inline_asm} { if {![regexp -nocase {^\w+\$:$} $segment_data]} { $editor tag add tag_error $lineNumber.$start $lineNumber.$end } } else { if {![regexp -nocase {^[a-zA-Z]\w*:$} $segment_data]} { $editor tag add tag_error $lineNumber.$start $lineNumber.$end } } # Unknown type - possibly macro instruction } else { set seg_type unknown } } # Return result return [list $seg_type $expr_len] } ## Highlight argument (eg. '("some string")') # @parm Int start_index - start column of the argument # @parm Int end_index - end column of the argument # @parm String data - argument data # @return void proc parse_argument {start_index end_index data control_start control_end} { variable editor ;# ID of the text widget variable lineNumber ;# Number of current line variable validation_L0 ;# Bool: Basic validation enabled if {[regexp {^\(.*\)$} $data]} { $editor tag add tag_symbol $lineNumber.$start_index $lineNumber.[expr {$start_index + 1}] set end [expr {$end_index - 1}] $editor tag add tag_symbol $lineNumber.$end $lineNumber.$end_index $editor tag add tag_string $lineNumber.[expr {$start_index + 1}] $lineNumber.$end } else { if {$validation_L0} { $editor tag add tag_error \ $lineNumber.$control_start $lineNumber.$control_end } } } ## Tag the given segment as error # @parm Int segment_number - number of the target segment # @return void proc put_error_on_segment {segment_number} { variable editor ;# ID of the text widget variable lineNumber ;# Number of current line variable validation_L0 ;# Bool: Basic validation enabled variable seg_0_start ;# Start index of seg_0 variable seg_1_start ;# Start index of seg_1 variable seg_2_start ;# Start index of seg_2 variable seg_0_end ;# End index of seg_0 variable seg_1_end ;# End index of seg_1 variable seg_2_end ;# End index of seg_2 if {!$validation_L0} { return } # Determinate start and end index switch -- $segment_number { 0 { set start $seg_0_start set end $seg_0_end } 1 { set start $seg_1_start set end $seg_1_end } 2 { set start $seg_2_start set end $seg_2_end } } # Add error tag $editor tag add tag_error $lineNumber.$start $lineNumber.$end } ## Parse attributes in defintion of macro instruction # @retunr void proc parse_arguments {} { variable editor ;# ID of the text widget variable lineNumber ;# Number of current line variable seg_2_start ;# Start index of seg_2 variable seg_2 ;# 3rd field of the line variable validation_L0 ;# Bool: Basic validation enabled if {[regexp {^\s*$} $seg_2]} {return 0} while {1} { # Handle redutant commas while {1} { if {![regexp {^\s*\,} $seg_2]} {break} set space_len 0 if {[regexp {^\s+} $seg_2 space_len]} { set space_len [string length $space_len] } incr seg_2_start $space_len set seg_2 [string range $seg_2 [expr {$space_len + 1}] end] $editor tag add tag_oper_sep \ $lineNumber.$seg_2_start \ $lineNumber.[expr {$seg_2_start + 1}] if {$validation_L0} { $editor tag add tag_error \ $lineNumber.$seg_2_start \ $lineNumber.[expr {$seg_2_start + 1}] } incr seg_2_start } # Determinate argument if {![regexp {^[^\,]+} $seg_2 argument]} {break} set argument_len_org [string length $argument] set seg_2 [string range $seg_2 $argument_len_org end] set argument [string trimleft $argument] set argument_len [string length $argument] incr seg_2_start [expr {$argument_len_org - $argument_len}] # Highlight argument $editor tag add tag_constant \ $lineNumber.$seg_2_start \ $lineNumber.[expr {$seg_2_start + $argument_len}] set argument [string trimright $argument] if {$validation_L0 && ([regexp {^\d} $argument] || ![regexp {^\w+$} $argument])} { $editor tag add tag_error \ $lineNumber.$seg_2_start \ $lineNumber.[expr {$seg_2_start + $argument_len}] } incr seg_2_start $argument_len # highlight argument separator if {[string index $seg_2 0] == {,}} { set sep_end $seg_2_start incr sep_end $editor tag add tag_oper_sep $lineNumber.$seg_2_start $lineNumber.$sep_end if {$validation_L0 && ![regexp {[\w$]} $seg_2]} { $editor tag add tag_error $lineNumber.$seg_2_start $lineNumber.$sep_end } incr seg_2_start set seg_2 [string range $seg_2 1 end] } } } ## Highlight all operands (segment 2) and their separators # @return void proc parse_operands {} { variable editor ;# ID of the text widget variable lineNumber ;# Number of current line variable seg_2_start ;# Start index of seg_2 variable seg_2 ;# 3rd field of the line variable operands_count ;# Number of operands at the line variable operand ;# Data of the current operand variable opr_end ;# End index of the current operand variable opr_start ;# Start index of the current operand variable opr_types ;# List of operand types variable validation_L0 ;# Bool: Basic validation enabled variable validation_L1 ;# Bool: Advancet validation enabled if {[regexp {^\s*$} $seg_2]} {return 0} set operands_count 0 set opr_types {} # split data into single operands set i 0 set last_index $seg_2_start set original_data $seg_2 set data [hide_strings $seg_2] while {1} { # Handle redutant commas while {1} { if {![regexp {^\s*\,} $data]} {break} set space_len 0 if {[regexp {^\s+} $data space_len]} { set space_len [string length $space_len] } incr last_index $space_len set data [string range $data [expr {$space_len + 1}] end] set original_data [string range $original_data [expr {$space_len + 1}] end] $editor tag add tag_oper_sep \ $lineNumber.$last_index \ $lineNumber.[expr {$last_index + 1}] if {$validation_L0} { $editor tag add tag_error \ $lineNumber.$last_index \ $lineNumber.[expr {$last_index + 1}] } incr last_index } # gain operand data if {![regexp {^[^\,]+} $data operand]} {break} set operand_len [string length $operand] set data [string range $data $operand_len end] set operand [string range $original_data 0 [expr {$operand_len - 1}]] set original_data [string range $original_data $operand_len end] # determinate start index if {[regexp {^\s+} $operand space]} { set space_len [string length $space] set opr_start [expr {$last_index + $space_len}] set operand [string range $operand $space_len end] } else { set opr_start $last_index } # determinate end index if {[regexp {\s+$} $operand space]} { set space_len [string length $space] set opr_end [expr {$operand_len - $space_len}] set operand [string range $operand 0 $opr_end] } else { set opr_end $operand_len } incr opr_end $last_index incr last_index $operand_len set operand [string trimright $operand "\t "] if {$validation_L1} { add_aperand_to__opr_types } highlight_operand incr operands_count # highlight operand separator if {[string index $data 0] == {,}} { set sep_end $last_index incr sep_end $editor tag add tag_oper_sep $lineNumber.$last_index $lineNumber.$sep_end if {$validation_L0 && ![regexp {[\w$]} $data]} { $editor tag add tag_error $lineNumber.$last_index $lineNumber.$sep_end } incr last_index set data [string range $data 1 end] set original_data [string range $original_data 1 end] } incr i } } ## Append current operand (var. operand) to list of operand types #+ on current line # @return void proc add_aperand_to__opr_types {} { variable opr_types ;# List of operand types variable operand ;# Data of the current operand set opr [string toupper $operand] switch -- [string index $opr 0] { {#} {lappend opr_types {#}} {/} {lappend opr_types {/}} {@} {lappend opr_types $opr} default { if {[lsearch -ascii -exact {R0 R1 R2 R3 R4 R5 R6 R7 DPTR A AB C} $opr] != -1} { lappend opr_types $opr } else { lappend opr_types {D} } } } } ## Highlight current operand # @return void proc highlight_operand {} { variable editor ;# ID of the text widget variable operand ;# Data of the current operand variable opr_end ;# End index of the current operand variable opr_start ;# Start index of the current operand variable spec_registers ;# SFR registers variable spec_bits ;# SFR bits variable validation_L0 ;# Bool: Basic validation enabled variable inline_asm ;# Is inline assembler variable lineNumber ;# Number of current line ## Determinate addressing type set addr_type [string index $operand 0] # Immediate adresing if {$addr_type == {#}} { set operand [string range $operand 1 end] # Immediate char value if {[string index $operand 0] == {'} && [string index $operand end] == {'}} { set len [string length $operand] if {$validation_L0 && $len < 3} { put_tag_on_operand tag_error } if {$len > 3 && [string index $operand 1] != "\\"} { put_tag_on_operand tag_string } else { put_tag_on_operand tag_imm_char } # Label in inline assembler } elseif {[regexp {^\w+\$$} $operand]} { put_tag_on_operand tag_imm_constant # Operand has no value => incorrect operand } elseif {[regexp { |\(|\)|\+|\-|\%|\=|\>|\<|\*|\/} $operand]} { parse_expression $operand $opr_start $opr_end $editor tag add tag_symbol \ $lineNumber.$opr_start $lineNumber.$opr_start+1c } elseif { $validation_L0 && ([string length $operand] == 0 || ![regexp {^(\?\?)?[\w\$\.\\]+$} $operand]) } then { put_tag_on_operand tag_error # Operand value determinated successfully } else { parse_operand_auxiliary2 { tag_imm_unknown tag_imm_hex tag_imm_dec tag_imm_oct tag_imm_bin tag_imm_char tag_imm_constant tag_string } } # Indirect adresing } elseif {$addr_type == {@}} { set operand [string range $operand 1 end] put_tag_on_operand tag_indirect # Check for operand validity if {!$validation_L0} {return} set operand [string toupper $operand] if { $operand != {R0} && $operand != {R1} && $operand != {DPTR} && $operand != {A+PC} && $operand != {A+DPTR} } then { put_tag_on_operand tag_error } # Direct bit adresing } elseif {$addr_type == {/}} { set operand [string range $operand 1 end] if {[regexp {\(|\)|\+|\-|\%|\=|\>|\<|\*|\/} $operand]} { parse_expression $operand $opr_start $opr_end $editor tag add tag_symbol \ $lineNumber.$opr_start $lineNumber.$opr_start+1c } elseif { $validation_L0 && ([string length $operand] == 0 || ![regexp {^'?[\w\.]+'?$} $operand]) } then { # Operand has no value => incorrect operand put_tag_on_operand tag_error } else { parse_operand_auxiliary $spec_bits { tag_unknown_base tag_hex tag_dec tag_oct tag_bin tag_char tag_constant tag_string } } # Another kind of direct adresing } else { parse_operand_auxiliary $spec_registers { tag_unknown_base tag_hex tag_dec tag_oct tag_bin tag_char tag_constant tag_string } } } ## Auxiliary procedure for procedure highlight_operand # @parm List SFR_set - List of SFR keywords # @parm List tag_list - List of tags for procedure parse_operand_auxiliary2 # @return void proc parse_operand_auxiliary {SFR_set tag_list} { variable operand ;# Data of the current operand # SFR if {[lsearch -ascii -exact $SFR_set [string toupper $operand]] != -1} { put_tag_on_operand tag_sfr # Something else than SFR } else { parse_operand_auxiliary2 $tag_list } } ## Auxiliary procedure for procedures highlight_operand and parse_operand_auxiliary # @parm List tag_list - list of text tags (see code) # @return void proc parse_operand_auxiliary2 {tag_list} { variable operand ;# Data of the current operand variable opr_start ;# Start index of the current operand variable opr_end ;# End index of the current operand variable editor ;# ID of the text widget variable lineNumber ;# Number of current line variable spec_registers ;# SFR registers variable validation_L0 ;# Bool: Basic validation enabled variable inline_asm ;# Is inline assembler # Label in inline assembler if {$inline_asm && [regexp {^\w+\$$} $operand]} { put_tag_on_operand [lindex $tag_list 6] # Expression } elseif {[regexp {\(|\)|\+|\-|\%|\=|\>|\<|\*|\/} $operand]} { parse_expression $operand $opr_start $opr_end # Dot notation (bit addressing) } elseif {[regexp {^\w+\.\w+$} $operand]} { set opr [split $operand {.}] set operand [lindex $opr 0] set opr_true_end $opr_end set opr_end $opr_start incr opr_end [string length $operand] parse_operand_auxiliary $spec_registers $tag_list set opr_start [expr {$opr_end + 1}] $editor tag add tag_symbol $lineNumber.$opr_end $lineNumber.$opr_start set opr_end $opr_true_end set operand [lindex $opr 1] parse_operand_auxiliary2 $tag_list # Direct value } elseif {[regexp {^(\d|')} $operand]} { # gain information about the openand (radix and decimal value) set opr_info [which_radix 0 $operand] set opr_base [lindex $opr_info 0] set opr_in_dec [lindex $opr_info 1] # Radix determinated incorrectly => unknown number if {$opr_base == {}} { put_tag_on_operand [lindex $tag_list 0] if {$validation_L0 && ![regexp {^\d+$} $operand]} { put_tag_on_operand tag_error } # Radix determinated correctly - continue normaly } else { # check for allowed operand value range if {$validation_L0 && $opr_in_dec == {error}} { ## Operand value is invalid => incorrect operand put_tag_on_operand tag_error } else { if {$validation_L0 && ($opr_in_dec > 65535 || $opr_in_dec < 0)} { ## Operand value is out of range => incorrect operand put_tag_on_operand tag_error } } # highlight according to numeric base switch -- $opr_base { {hex} {put_tag_on_operand [lindex $tag_list 1]} {dec} {put_tag_on_operand [lindex $tag_list 2]} {oct} {put_tag_on_operand [lindex $tag_list 3]} {bin} {put_tag_on_operand [lindex $tag_list 4]} {ascii} {put_tag_on_operand [lindex $tag_list 5]} {string} {put_tag_on_operand [lindex $tag_list 7]} } } # Defined as a symbolic name } else { put_tag_on_operand [lindex $tag_list 6] if { $validation_L0 && ($operand != {$}) && ![regexp {^(\?\?)?\w+$} $operand] } then { put_tag_on_operand tag_error } } } ## Highlight current operand by the given tag # @parm String tag_name - tag name # @return void proc put_tag_on_operand {tag_name} { variable lineNumber ;# Number of current line variable opr_end ;# End index of the current operand variable opr_start ;# Start index of the current operand variable editor ;# ID of the text widget $editor tag add $tag_name $lineNumber.$opr_start $lineNumber.$opr_end } ## Determinate numeric base of the given number # @parm Bool norange - 1 == determinate decimal value (sometimes...) and validate it (see code) # @parm String number - number to analyze # @return List - {base decimal_value} or {base "error"} proc which_radix {norange number} { # Handle prefix notation for hexadecimal numbers, like 0xfa if { [string index $number 0] == {0} && ([string index $number 1] == {x} || [string index $number 1] == {X}) && [string is xdigit [string index $number 2]] } then { set number [string replace $number 0 1] append number {h} } set original_len [string length $number] set len [string length [string trimleft $number {0}]] if {$original_len > 1 && $len == 1} { incr len } incr len -1 set radix [string index $number end] set number [string range $number 0 {end-1}] set dec_val error set base {} # Character or string if {$radix == {'}} { if {[string index $number 0] == {'}} { set number [string range $number 1 end] set base {ascii} if {[string length $number] == 1 || [string index $number 0] == "\\"} { set dec_val 0 } elseif {[string length $number] > 1} { set base {string} set dec_val 0 } } # Regular numbers } else { set radix [string tolower $radix] switch -- $radix { {h} { ;# Hexadecimal set base hex if {$norange || ($len <= 4 && $len >= 1)} { if {[regexp {^[A-Fa-f0-9]*$} $number]} { set dec_val 0 } } } {d} { ;# Decimal set base dec if {$norange || ($len <= 5 && $len >= 1)} { if {[regexp {^[0-9]*$} $number]} { set dec_val $number } } } {o} { ;# Octal set base oct if {$norange} { if {[regexp {^[0-7]*$} $number]} { set dec_val 0 } } elseif {$len <= 6 && $len >= 1} { if {[regexp {^[0-7]*$} $number]} { if {$len != 3} { set dec_val 0 } else { if {[string index $number 0] <= 3} { set dec_val 0 } } } } } {q} { ;# Octal set base oct if {$norange} { if {[regexp {^[0-7]*$} $number]} { set dec_val 0 } } elseif {$len <= 6 && $len >= 1} { if {[regexp {^[0-7]*$} $number]} { if {$len != 3} { set dec_val 0 } else { if {[string index $number 0] <= 3} { set dec_val 0 } } } } } {b} { ;# Binary set base bin if {$norange || ($len <= 16 && $len >= 1)} { if {[regexp {^[01]*$} $number]} { set dec_val 0 } } } default { ;# Default set dec_val {} } } } # done ... return [list $base $dec_val] } ## Highlight expressions (eg. '( 10d - X MOD 55h)') # @parm String data - expression to highlight # @parm Int start_index - expresssion start index # @parm Int end_index - expresssion end index # @return void proc parse_expression {data start_index end_index} { variable editor ;# ID of the text widget variable lineNumber ;# Number of current line variable expr_symbols ;# symbol operators variable expr_instructions ;# word operators variable validation_L0 ;# Bool: Basic validation enabled variable validation_L1 ;# Bool: Advancet validation enabled # Adjust data to fit the given boundaries set data_len [string length $data] set dif [expr {$end_index - $start_index - $data_len}] if {$dif != 0} { set space [string repeat { } $dif] set data $space$data } # Remove strings set e_idx 0 while {1} { if {![regexp -start $e_idx -- {'[^']*'} $data string_data]} { break } set len [string length $string_data] set s_idx [string first {'} $data $e_idx] set e_idx [expr {$s_idx + $len}] if {$len > 2} { set data [string replace $data \ [expr {$s_idx + 1}] [expr {$e_idx - 2}] \ [string repeat { } [expr {$len - 2}]] \ ] } } # remove and highlight '(' set opened_par 0 while {1} { set symbol_idx [string first {(} $data] if {$symbol_idx == -1} {break} incr opened_par set data [string replace $data $symbol_idx $symbol_idx { }] incr symbol_idx $start_index $editor tag add tag_symbol $lineNumber.$symbol_idx $lineNumber.[expr {$symbol_idx + 1}] } # remove and highlight ')' while {1} { set symbol_idx [string first {)} $data] if {$symbol_idx == -1} {break} incr opened_par -1 set data [string replace $data $symbol_idx $symbol_idx { }] incr symbol_idx $start_index $editor tag add tag_symbol $lineNumber.$symbol_idx $lineNumber.[expr {$symbol_idx + 1}] } # chcek if parenthesies are balanced if {$validation_L0 && $opened_par != 0} { $editor tag add tag_error $lineNumber.$start_index $lineNumber.$end_index } # Highlight exprression symbols (+1 chars) and remove them from the string set adjusted_data [string toupper $data] regsub -all {\t} $adjusted_data { } adjusted_data append adjusted_data { } foreach symbol $expr_instructions { while {1} { set symbol_idx [string first " $symbol " $adjusted_data] if {$symbol_idx == -1} {break} set original_symbol_idx $symbol_idx set space_len [string length $symbol] incr space_len 1 set symbol_end_index $symbol_idx incr symbol_end_index $space_len set symbol_end_index_org_1 [expr {$symbol_end_index + 1}] incr space_len set space [string repeat { } $space_len] set adjusted_data [string replace $adjusted_data $symbol_idx $symbol_end_index $space] set data [string replace $data $symbol_idx $symbol_end_index $space] incr symbol_idx $start_index incr symbol_end_index $start_index $editor tag add tag_symbol $lineNumber.$symbol_idx $lineNumber.$symbol_end_index if {$validation_L1} { set tmp [string range $data $symbol_end_index_org_1 end] set tmp [string toupper [string trim $tmp]] if {![string length $tmp]} { $editor tag add tag_error \ $lineNumber.[expr {$symbol_idx + 1}] \ $lineNumber.$symbol_end_index } else { foreach smb $expr_instructions { if {![string first $smb $tmp]} { $editor tag add tag_error \ $lineNumber.[expr {$symbol_idx + 1}] \ $lineNumber.$symbol_end_index break } } } } } } # Highlight expression symbols (1 char) and remove them from the string foreach symbol $expr_symbols { while {1} { set symbol_idx [string first $symbol $data] if {$symbol_idx == -1} {break} set original_symbol_idx $symbol_idx set symbol_idx_org_1 [expr {$symbol_idx + 1}] set data [string replace $data $symbol_idx $symbol_idx { }] incr symbol_idx $start_index set symbol_idx_1 [expr {$symbol_idx + 1}] $editor tag add tag_symbol $lineNumber.$symbol_idx $lineNumber.$symbol_idx_1 if { $validation_L0 && ( !$original_symbol_idx || ![regexp {^\s*((\'\\?[^']+\')|\w|\$)} [string range $data $symbol_idx_org_1 end]] ) } then { $editor tag add tag_error \ $lineNumber.$symbol_idx \ $lineNumber.$symbol_idx_1 } } } # Highlight other parts set last_index $start_index set original_data $data set data [hide_strings $data] while {1} { if {![regexp {[^\s]+} $data value]} {break} set value_S_idx [string first $value $data] set value_len [string length $value] set value_E_idx $value_len incr value_E_idx $value_S_idx set value [string range $original_data $value_S_idx $value_E_idx] set data [string range $data $value_E_idx end] set original_data [string range $original_data $value_E_idx end] set tmp_idx $value_E_idx incr value_S_idx $last_index incr value_E_idx $last_index incr last_index $tmp_idx highlight_value [string trimright $value] $value_S_idx $value_E_idx } } ## Highlight constant values # @parm String data - string to highlight # @parm Int start_index - start index # @parm Int end_index - end index # @return void proc highlight_value {data start_index end_index} { variable editor ;# ID of the text widget variable lineNumber ;# Number of current line variable validation_L0 ;# Bool: Basic validation enabled variable spec_registers ;# SFR registers # Dot notation -- bit addressing if {[regexp {^\w+\.\w+$} $data]} { set data [split $data {.}] set end_index_org $end_index set end_index $start_index incr end_index [string length [lindex $data 0]] highlight_value [lindex $data 0] $start_index $end_index $editor tag add tag_symbol $lineNumber.$end_index $lineNumber.[expr {$end_index + 1}] incr end_index highlight_value [lindex $data 1] $end_index $end_index_org return } elseif {[regexp {^(\d|')} $data]} { # Gain information about the value set opr_info [which_radix 1 [$editor get $lineNumber.$start_index $lineNumber.$end_index]] set opr_base [lindex $opr_info 0] set opr_in_dec [lindex $opr_info 1] # Highlight value according to info if {$opr_base == {}} { $editor tag add tag_unknown_base $lineNumber.$start_index $lineNumber.$end_index if {$validation_L0 && ![regexp {^[0-9A-Fa-f]+$} $data]} { $editor tag add tag_error $lineNumber.$start_index $lineNumber.$end_index } return } if {$validation_L0 && $opr_in_dec == {error}} { $editor tag add tag_error $lineNumber.$start_index $lineNumber.$end_index } # Highlight according to numeric base switch -- $opr_base { {hex} { ;# Hexadecimal $editor tag add tag_hex $lineNumber.$start_index $lineNumber.$end_index } {dec} { ;# Decimal $editor tag add tag_dec $lineNumber.$start_index $lineNumber.$end_index } {oct} { ;# Octal $editor tag add tag_oct $lineNumber.$start_index $lineNumber.$end_index } {bin} { ;# Binary $editor tag add tag_bin $lineNumber.$start_index $lineNumber.$end_index } {ascii} { ;# Char $editor tag add tag_char $lineNumber.$start_index $lineNumber.$end_index } {string} { ;# String $editor tag add tag_string $lineNumber.$start_index $lineNumber.$end_index } } return } # Constant if {[lsearch -ascii -exact $spec_registers [string toupper $data]] != -1} { set tag tag_sfr } else { set tag tag_constant } $editor tag add $tag $lineNumber.$start_index $lineNumber.$end_index if {$validation_L0 && ![regexp {^(((\?\?)?\w+)|\$)$} $data]} { $editor tag add tag_error $lineNumber.$start_index $lineNumber.$end_index } } ## Replace all single quoted string with underscores (''abc'' -> '_____') # @parm String data - input data # @return String - output data proc hide_strings {data} { # Return string which dowsn't contain ''' if {[string first {'} $data] == -1} {return $data} # Perform replacement while {1} { if {![regexp {'[^']*'} $data string]} { break } regsub {'[^']*'} $data [string repeat {_} \ [string length $string] \ ] data } # Return result return $data } } # Initialize some namespace variables foreach item ${::ASMsyntaxHighlight::all_controls} { lappend ::ASMsyntaxHighlight::all_controls__with_dolar "\$$item" } # >>> File inclusion guard } # <<< File inclusion guard mcu8051ide-1.4.7/lib/editor/LSTsyntaxhighlight.tcl0000644000175000017500000003644412067167647022453 0ustar milleniummillenium#!/usr/bin/tclsh # Part of MCU 8051 IDE ( http://mcu8051ide.sf.net ) ############################################################################ # Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012 by Martin Ošmera # # martin.osmera@gmail.com # # # # This program is free software; you can redistribute it and#or modify # # it under the terms of the GNU General Public License as published by # # the Free Software Foundation; either version 2 of the License, or # # (at your option) any later version. # # # # This program is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU General Public License for more details. # # # # You should have received a copy of the GNU General Public License # # along with this program; if not, write to the # # Free Software Foundation, Inc., # # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # ############################################################################ # >>> File inclusion guard if { ! [ info exists _LSTSYNTAXHIGHLIGHT_TCL ] } { set _LSTSYNTAXHIGHLIGHT_TCL _ # <<< File inclusion guard # -------------------------------------------------------------------------- # DESCRIPTION # Implements syntax highlighting interface for code listing # -------------------------------------------------------------------------- namespace eval LSTsyntaxHighlight { ## Highlight pattern - highlight tags definition # { # {tag_name ?foreground? ?overstrike? ?italic? ?bold?} # } variable highlight_tags { {tag_lst_number #000000 0 0 1} {tag_lst_code #000000 0 0 1} {tag_lst_address #000000 0 0 1} {tag_lst_line #000000 0 0 1} {tag_lst_macro #888888 0 0 0} {tag_lst_include #888888 0 0 0} {tag_lst_error #FF0000 0 0 1} {tag_lst_msg #000000 0 0 1} } # Fixed messages variable const_messages { {SYMBOL TYPE VALUE LINE} {------------------------------------------------------------} { Line I Addr Code Source} { L I S T O F S Y M B O L S} { =============================} { =====================================================} } # Fixed messages with unknown end variable half_cont_msg { { MCS-51 Family Macro Assembler A S E M - 5 1} { Source File:} { Object File:} { List File:} { register banks used:} {ASSEMBLY COMPLETE,} {ERROR SUMMARY:} {SYMBOL TABLE:} {ASEM-51} } variable editor ;# Widget: Editor text widget variable line_number ;# Int: Line number variable line_content ;# String: Line content variable line_start ;# Index of line start variable line_end ;# Index of line end ## Define highlighting text tags in the given text widget # @parm Widget text_widget - ID of the target text widget # @parm Int fontSize - font size # @parm String fontFamily - font family # @parm List highlight=default - Highlighting tags definition # @parm Bool nobold=0 - Ignore bold flag # @return void proc create_tags {text_widget fontSize fontFamily {highlight {}} {nobold 0}} { variable highlight_tags ;# Highlight tags definition # Handle arguments if {$highlight == {}} { ;# highlighting definition set highlight $highlight_tags } # Iterate over highlighting tags definition foreach item $highlight { # Create array of tag attributes for {set i 0} {$i < 5} {incr i} { set tag($i) [lindex $item $i] } # Foreground color if {$tag(1) == {}} { set tag(1) black } # Fonr slant if {$tag(3) == 1} { set tag(3) italic } else { set tag(3) roman } # Font weight if {$tag(4) == 1 && !$nobold} { set tag(4) bold } else { set tag(4) normal } # Create the tag in the target text widget $text_widget tag configure $tag(0) \ -foreground $tag(1) \ -font [ font create \ -overstrike $tag(2) \ -slant $tag(3) \ -weight $tag(4) \ -size -$fontSize \ -family $fontFamily \ ] } } ## Perform syntax highlight on the given line in the given widget # @parm Widget Editor - Text widget # @parm Int LineNumber - Number of line to highlight # @return Bool - result proc highlight {Editor LineNumber} { variable editor ;# Widget: Editor text widget variable line_number ;# Int: Line number variable line_content ;# String: Line content variable line_start ;# Index of line start variable line_end ;# Index of line end variable const_messages ;# Fixed messages variable half_cont_msg ;# Fixed messages with unknown end # Set NS variables set editor $Editor set line_number $LineNumber set line_start $line_number.0 set line_end [$editor index [list $line_number.0 lineend]] set line_content [$editor get $line_start $line_end] # Remove current highlighting tags if {[string length [string trim $line_content]]} { delete_tags } else { return 0 } # Search for constant messages if {[lsearch -ascii -exact $const_messages $line_content] != -1} { $editor tag add tag_lst_msg $line_start $line_end return 1 } foreach msg $half_cont_msg { set idx [string first $msg $line_content] set len [string length $msg] if {!$idx} { $editor tag add tag_lst_msg $line_start $line_number.$len return 1 } } # Search for error/warning messages if {[regexp {^(\s+@@@@@)|^(\*\*\*\*)|^(\s+\^)} $line_content]} { $editor tag add tag_lst_error $line_start $line_end } # Apply some rules, except for AS31 if {${::ExternalCompiler::selected_assembler} != 3} { # Line must start eiter with a digit or equation mark if {![regexp {^\s*\=?[[:xdigit:]]} $line_content]} { return 0 } if {[regexp {^\s+\d+ error detected} $line_content]} { return 0 } # Don't highlight lines in symbol table if {[regexp {^\w+\s?\.} $line_content] || [regexp {^[\w\?]+\t} $line_content]} { return 0 } } # AS31 if {${::ExternalCompiler::selected_assembler} == 3} { set asm_start_index 19 as31_highlight 19 # ASEM-51 } elseif { [regexp {^\s*\d+(\:|\+)} $line_content] || [regexp {^(\t )|( [\d ]\d )[[:xdigit:]]{4}} $line_content] } then { # Determinate ASM code start index set lineText $line_content set asm_start_index 33 set idx -1 set cor 0 while {1} { set idx [string first "\t" $lineText [expr {$idx + 1}]] if {$idx == -1} {break} incr cor [expr {8 - (($idx + $cor) % 8)}] if {$idx + $cor >= 32} { break } } incr asm_start_index -$cor # Highlight asem_51_highlight $asm_start_index # SDCC assembler -- ASX8051 } elseif {[string is digit -strict [string index $line_content 30]]} { sdcc_highlight 32 ::R_ASMsyntaxHighlight::highlight $editor $line_number 1 32 return 1 # MCU 8051 IDE Assembler } else { set asm_start_index 31 mcu8051ide_highlight $asm_start_index } # Highlight remaining assembly code ::ASMsyntaxHighlight::highlight $editor $line_number 1 $asm_start_index # Make sure there are no ASM error tags, they don't make sense here $editor tag remove tag_error $line_number.$asm_start_index $line_end return 1 } ## Remove previously put syntax highlighting tags # @return void proc delete_tags {} { variable highlight_tags ;# Highlight tags definition variable editor ;# Widget: Editor text widget variable line_start ;# Index of line start variable line_end ;# Index of line end # Remove tags according to pattern foreach tag $highlight_tags { $editor tag remove [lindex $tag 0] $line_start $line_end } } ## Highlight AS31 code listing line # @parm Int asm_start_index - Assembly code start index # @return void proc as31_highlight {asm_start_index} { variable editor ;# Widget: Editor text widget variable line_number ;# Int: Line number variable line_content ;# String: Line content variable line_start ;# Index of line start variable line_end ;# Index of line end set idx 0 ;# Regular expression match start index # Alter line set line_content [string range $line_content 0 [expr {$asm_start_index - 1}]] # Address field present if {[regexp -start $idx -- {\A[[:xdigit:]]{4}\:} $line_content substring]} { # Highlight address set substr_len [string length $substring] set idx [string first $substring $line_content $idx] $editor tag add tag_lst_address $line_number.$idx $line_number.[expr {$idx + $substr_len}] incr idx $substr_len } # Highlight processor code if {[regexp -start $idx -- {\A\s+([[:xdigit:]]{2} )*[[:xdigit:]]{2}} $line_content substring]} { set substr_len [string length $substring] set idx [string first $substring $line_content $idx] $editor tag add tag_lst_code $line_number.$idx $line_number.[expr {$idx + $substr_len}] incr idx $substr_len } } ## Highlight ASEM-51 code listing line # @parm Int asm_start_index - Assembly code start index # @return void proc asem_51_highlight {asm_start_index} { variable editor ;# Widget: Editor text widget variable line_number ;# Int: Line number variable line_content ;# String: Line content variable line_start ;# Index of line start variable line_end ;# Index of line end set idx 0 ;# Regular expression match start index set foo 0 ;# Foo :) # Alter line set line_content [string range $line_content 0 [expr {$asm_start_index - 1}]] # Highlight for LST line number if {[regexp -start $idx -- {\A\s*\d+[\:\+]} $line_content substring]} { set substr_len [string length $substring] set idx [string first $substring $line_content $idx] $editor tag add tag_lst_line $line_number.$idx $line_number.[expr {$idx + $substr_len}] incr idx $substr_len } else { set idx 6 set foo 1 } # Highlight for inclusion level if {[regexp -start $idx -- {\A[ \d]\d} $line_content substring]} { set substr_len [string length $substring] set idx [string first $substring $line_content $idx] $editor tag add tag_lst_include $line_number.$idx $line_number.[expr {$idx + $substr_len}] incr idx $substr_len } elseif {$idx == 6 && $foo} { set idx 0 } ## Address field present if {[regexp -start $idx -- {\A\s*[[:xdigit:]]{2,4}} $line_content substring]} { # Highlight address set substr_len [string length $substring] set idx [string first $substring $line_content $idx] $editor tag add tag_lst_address $line_number.$idx $line_number.[expr {$idx + $substr_len}] incr idx $substr_len } ## Constant definition if {[regexp -start $idx -- {\A\s*[NBCDX]} $line_content substring]} { # Highlight letter 'N', 'B', etc. as processor code set substr_len [string length $substring] set idx [string first $substring $line_content $idx] $editor tag add tag_lst_code $line_number.$idx $line_number.[expr {$idx + $substr_len}] incr idx $substr_len # Highlight value of defined constant if {[regexp -start $idx -- {\A\s+[[:xdigit:]]{2,4}} $line_content substring]} { set substr_len [string length $substring] set idx [string first $substring $line_content $idx] $editor tag add tag_lst_number $line_number.$idx $line_number.[expr {$idx + $substr_len}] incr idx $substr_len } # Highlight processor code } elseif {[regexp -start $idx -- {\A\s+([[:xdigit:]]{2} )*[[:xdigit:]]{2}} $line_content substring]} { set substr_len [string length $substring] set idx [string first $substring $line_content $idx] $editor tag add tag_lst_code $line_number.$idx $line_number.[expr {$idx + $substr_len}] incr idx $substr_len } } ## Highlight SDCC ASX8051 Assembler code listing line # @parm Int asm_start_index - Assembly code start index # @return void proc sdcc_highlight {asm_start_index} { variable editor ;# Widget: Editor text widget variable line_number ;# Int: Line number $editor tag add tag_lst_address $line_number.3 $line_number.7 $editor tag add tag_lst_code $line_number.8 $line_number.19 $editor tag add tag_lst_number $line_number.20 $line_number.24 $editor tag add tag_lst_line $line_number.25 $line_number.31 } ## Highlight MCU 8051 IDE Assembler code listing line # @parm Int asm_start_index - Assembly code start index # @return void proc mcu8051ide_highlight {asm_start_index} { variable editor ;# Widget: Editor text widget variable line_number ;# Int: Line number variable line_content ;# String: Line content variable line_start ;# Index of line start variable line_end ;# Index of line end set idx 0 ;# Regular expression match start index # Alter line set line_content [string range $line_content 0 [expr {$asm_start_index - 1}]] # Highlight processor code if {[regexp -start $idx -- {\A [[:xdigit:]]{2,}} $line_content substring]} { set substr_len [string length $substring] set idx [string first $substring $line_content $idx] $editor tag add tag_lst_code $line_number.$idx $line_number.[expr {$idx + $substr_len}] incr idx $substr_len return } ## Address field present -> Address Code ... if {[regexp -start $idx -- {\A[[:xdigit:]]{4}} $line_content substring]} { # Highlight address field set substr_len [string length $substring] set idx [string first $substring $line_content $idx] $editor tag add tag_lst_address $line_number.$idx $line_number.[expr {$idx + $substr_len}] incr idx $substr_len # Highlight processor code if {[regexp -start $idx -- {\A\s+[[:xdigit:]]{2,}} $line_content substring]} { set substr_len [string length $substring] set idx [string first $substring $line_content $idx] $editor tag add tag_lst_code $line_number.$idx $line_number.[expr {$idx + $substr_len}] incr idx $substr_len } # Address field not present -> " Number" } elseif {[regexp -start $idx -- {\A [[:xdigit:]]{4}} $line_content substring]} { # Highlight number (value of defined constant) set substr_len [string length $substring] set idx [string first $substring $line_content $idx] $editor tag add tag_lst_number $line_number.$idx $line_number.[expr {$idx + $substr_len}] incr idx $substr_len } # Highlight inclusion level if {[regexp -start $idx -- {\A\s+\=\d+} $line_content substring]} { set substr_len [string length $substring] set idx [string first $substring $line_content $idx] $editor tag add tag_lst_include $line_number.$idx $line_number.[expr {$idx + $substr_len}] incr idx $substr_len } # Highlight line number in code listing if {[regexp -start $idx -- {\A\s*\d+} $line_content substring]} { set substr_len [string length $substring] set idx [string first $substring $line_content $idx] $editor tag add tag_lst_line $line_number.$idx $line_number.[expr {$idx + $substr_len}] incr idx $substr_len } # Highlight macro expansion level if {[regexp -start $idx -- {\A\s*\+\d+} $line_content substring]} { set substr_len [string length $substring] set idx [string first $substring $line_content $idx] $editor tag add tag_lst_macro $line_number.$idx $line_number.[expr {$idx + $substr_len}] incr idx $substr_len } } } # >>> File inclusion guard } # <<< File inclusion guard mcu8051ide-1.4.7/lib/editor/Csyntaxhighlight.tcl0000644000175000017500000006204312067167647022165 0ustar milleniummillenium#!/usr/bin/tclsh # Part of MCU 8051 IDE ( http://mcu8051ide.sf.net ) ############################################################################ # Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012 by Martin Ošmera # # martin.osmera@gmail.com # # # # This program is free software; you can redistribute it and#or modify # # it under the terms of the GNU General Public License as published by # # the Free Software Foundation; either version 2 of the License, or # # (at your option) any later version. # # # # This program is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU General Public License for more details. # # # # You should have received a copy of the GNU General Public License # # along with this program; if not, write to the # # Free Software Foundation, Inc., # # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # ############################################################################ # >>> File inclusion guard if { ! [ info exists _CSYNTAXHIGHLIGHT_TCL ] } { set _CSYNTAXHIGHLIGHT_TCL _ # <<< File inclusion guard # -------------------------------------------------------------------------- # DESCRIPTION # Implements syntax highlighting interface for ISO C language # -------------------------------------------------------------------------- namespace eval CsyntaxHighlight { variable editor ;# Widget: Editor text widget variable line_number ;# Int: Line number variable line_content ;# String: Line content variable line_start ;# Index of line start variable line_end ;# Index of line end variable validation_L0 1 ;# Bool: Basic validation enabled variable validation_L1 1 ;# Bool: Advanced validation enabled # List of compiler directives variable directives { #define #error #include #if #ifdef #ifndef #else #elif #endif #line #pragma #undef #warning } # List of data type specifiers variable data_types { void int float double char signed unsigned long short uchar ushort uint ulong const export extern static mutable volatile __data __near __xdata __far __idata __pdata __code __bit __sfr __sfr16 __sfr32 __sbit __at } # List of C keywords variable keywords { auto break case _endasm while union continue default do else enum sizeof for namespace if goto return struct switch typedef using _asm __asm __endasm } # List of doxygen tags -- No argument variable doxy_tags_type0 { @return @see @sa @arg @li @nosubgrouping @subpage @f$ @f[ @f] @interface } # List of doxygen tags -- Word after tag variable doxy_tags_type1 { @param @defgroup @addtogroup @weakgroup @ref @page @struct @union @enum @def @file @namespace @package } # List of doxygen tags -- Name after tag variable doxy_tags_type2 { @brief @ingroup @name @mainpage @fn @var @typedef @author @authors } # List of HTML tags (HTML 4.0 Strict) variable html_tags { a abbr acronym address area b base bdo big blockquote body br button caption cite code col colgroup dd del dfn div dl dt em fieldset form frame frameset h1 h2 h3 h4 h5 h6 head hr html i img input ins kbd label legend li link map meta noscript object ol optgroup option p param pre q samp script select small span strong style sub sup table tbody td textarea tfoot th thead title tr tt ul var } ## Highlight pattern - highlight tags definition # { # {tag_name ?foreground? ?overstrike? ?italic? ?bold?} # } variable highlight_tags { {tag_c_keyword #0000DD 0 0 1} {tag_c_data_type #00CC00 0 0 1} {tag_c_dec #0000FF 0 0 0} {tag_c_hex #8800FF 0 0 0} {tag_c_bin #5555AA 0 0 0} {tag_c_oct #883300 0 0 0} {tag_c_char #DD00DD 0 0 0} {tag_c_float #AA00AA 0 0 0} {tag_c_string #BB0000 0 0 0} {tag_c_string_char #DD00DD 0 0 0} {tag_c_comment #888888 0 1 0} {tag_c_symbol #FF0000 0 0 1} {tag_c_bracket #EE6600 0 0 1} {tag_c_preprocessor #008800 0 0 0} {tag_c_directive #558800 0 0 0} {tag_c_prep_lib #885500 0 0 0} {tag_normal #000000 0 0 0} {tag_c_dox_comment #4444FF 0 1 0} {tag_c_dox_tag #AA00DD 0 0 1} {tag_c_dox_word #0088FF 0 0 1} {tag_c_dox_name #FF0000 0 0 0} {tag_c_dox_html #000000 0 0 1} {tag_c_dox_harg #008800 0 0 0} {tag_c_dox_hargval #DD0000 0 0 0} } ## Define highlighting text tags in the given text widget # @parm Widget text_widget - ID of the target text widget # @parm Int fontSize - font size # @parm String fontFamily - font family # @parm List highlight=default - Highlighting tags definition # @parm Bool nobold=0 - Ignore bold flag # @return void proc create_tags {text_widget fontSize fontFamily {highlight {}} {nobold 0}} { variable highlight_tags ;# Highlight tags definition # Handle arguments if {$highlight == {}} { ;# highlighting definition set highlight $highlight_tags } # Iterate over highlighting tags definition foreach item $highlight { # Create array of tag attributes for {set i 0} {$i < 5} {incr i} { set tag($i) [lindex $item $i] } # Foreground color if {$tag(1) == {}} { set tag(1) black } # Fonr slant if {$tag(3) == 1} { set tag(3) italic } else { set tag(3) roman } # Font weight if {$tag(4) == 1 && !$nobold} { set tag(4) bold } else { set tag(4) normal } # Create the tag in the target text widget $text_widget tag configure $tag(0) \ -foreground $tag(1) \ -font [font create \ -overstrike $tag(2) \ -slant $tag(3) \ -weight $tag(4) \ -size -$fontSize \ -family $fontFamily \ ] } # Set tag priorities $text_widget tag raise tag_c_dox_tag tag_c_dox_comment $text_widget tag raise tag_c_dox_word tag_c_dox_comment $text_widget tag raise tag_c_dox_html tag_c_dox_comment foreach t { tag_c_bracket tag_c_symbol tag_c_keyword tag_c_data_type tag_c_char tag_c_dec tag_c_oct tag_c_hex tag_c_float tag_c_bin } { $text_widget tag raise $t tag_normal } } ## Perform syntax highlight on the given line in the given widget # @parm Widget Editor - Text widget # @parm Int LineNumber - Number of line to highlight # @parm Int status - Exit status of previous line # @return Int - Exit status # 1 - Normal # 2 - Doxygen # 3 - Comment # 4 - String # 5 - Assembly # 6 - Assembly within # 7 - Preprocessor proc highlight {Editor LineNumber status} { variable validation_L0 ;# Bool: Basic validation enabled variable editor ;# Widget: Editor text widget variable line_number ;# Int: Line number variable line_content ;# String: Line content variable line_start ;# Index of line start variable line_end ;# Index of line end variable directives ;# List of compiler directives # Set NS variables set editor $Editor set line_number $LineNumber set line_start $line_number.0 set line_end [$editor index [list $line_number.0 lineend]] set line_content [$editor get $line_start $line_end] # Validate input arguments if {!$status} { set status 1 } # Local variables set last_idx_s 0 ;# Int: Last search index set incr_last_i 0 ;# Int: Increment last_idx by set last_idx 0 ;# Int: Last index set idx 0 ;# Int: Current index set this_line_only 0 ;# Bool: Status is valid for this line only set last_status $status ;# Int: Last highlight status # Remove existing highlighting tags delete_tags # Handle status "preprocessor" if {$status == 7} { if {[string index $line_content end] == "\\"} { $editor tag add tag_c_preprocessor $line_start $line_end-1c $editor tag add tag_c_symbol $line_end-1c $line_end return 7 } else { $editor tag add tag_c_preprocessor $line_start $line_end return 1 } # Search for preprocessor directive } elseif {$status == 1} { # Common directive if {[regexp {^\s*#\w+} $line_content directive]} { # Local variables set dir_start [string first {#} $line_content] ;# Int: Directive start index set dir_end [string length $directive] ;# Int: Directive end index set directive [string trim $directive] ;# String: Directive itself # Highlight directive $editor tag add tag_c_directive \ $line_number.$dir_start $line_number.$dir_end # Validate directive if {$validation_L0} { if {[lsearch -ascii -exact $directives $directive] == -1} { $editor tag add tag_error \ $line_number.$dir_start $line_number.$dir_end } } # Highlight directive argument if {$directive == {#include}} { set prep_tag {tag_c_prep_lib} } else { set prep_tag {tag_c_preprocessor} } # Determinate start of comment set com_start [string first {//} $line_content] if {$com_start != -1} { set cur_line_end $com_start incr cur_line_end -1 set cur_line_end $line_number.$cur_line_end } else { set cur_line_end $line_end } # Determinate whether the directive continue on the next line or not if {[string index [regsub {\s+$} $line_content {}] end] == "\\"} { $editor tag add $prep_tag $line_number.$dir_end $cur_line_end-1c $editor tag add tag_c_symbol $cur_line_end-1c $cur_line_end set cur_status 7 } else { $editor tag add $prep_tag $line_number.$dir_end $cur_line_end set cur_status 1 } # There is a comment on the line if {$com_start != -1} { $editor tag add tag_c_comment \ $line_number.$com_start \ [list $line_number.0 lineend] } return $cur_status # Inline assembler } elseif {[regexp {^\s*_?_asm\s*$} $line_content]} { $editor tag add tag_c_keyword $line_start $line_end return 5 } } # Split line into fields with different highlight status while {1} { set incr_last_i 0 switch -- $status { 1 { ;# Normal set i 0 set idx [list {} {} {} {} {} {}] foreach str {{/**} {///} {/*} {//} \"} { lset idx $i [string first $str $line_content $last_idx_s] incr i } set min_idx 0 set val 0 set min 0xFFFF for {set i 0} {$i < 5} {incr i} { set val [lindex $idx $i] if {$val != -1 && $val < $min} { set min_idx $i set min $val } } set idx [lindex $idx $min_idx] if {$idx == -1} {break} set last_status $status switch -- $min_idx { 0 { set status 2 set incr_last_i 3 set this_line_only 0 } 1 { set status 2 set incr_last_i 3 set this_line_only 1 } 2 { set status 3 set incr_last_i 2 set this_line_only 0 } 3 { set status 3 set incr_last_i 2 set this_line_only 1 } 4 { set status 4 set incr_last_i 1 set this_line_only 0 } } } 2 { ;# Doxygen set idx [string first {*/} $line_content $last_idx_s] if {$idx == -1} {break} incr idx 2 set last_status $status set status 1 } 3 { ;# Comment set idx [string first {*/} $line_content $last_idx_s] if {$idx == -1} {break} incr idx 2 set last_status $status set status 1 } 4 { ;# String set l_idx $last_idx_s while {1} { set idx [string first "\"" $line_content $l_idx] if {$idx < 1} {break} if {[string index $line_content [expr {$idx - 1}]] == "\\"} { incr l_idx } else { break } } if {$idx == -1} {break} incr idx set last_status $status set status 1 } 5 { ;# Inline assembler if {[regexp {^\s*_?_endasm[^\w]*} $line_content]} { mode_normal 0 [string length $line_content] return 1 } set idx 0 set last_status $status set status 6 break } 6 { ;# Inline assembler -- within asm block if {[regexp {^\s*_?_endasm[^\w]*} $line_content]} { mode_normal 0 [string length $line_content] return 1 } else { break } } } # Highliht this chunk if {$last_idx != $idx} { highlight_aux $last_status $last_idx $idx } set last_idx $idx if {$this_line_only} {break} set last_idx_s $last_idx incr last_idx_s $incr_last_i } # Highlight last remaining chunk if {$last_idx != [string length $line_content]} { highlight_aux $status $last_idx [string length $line_content] } # Return final status if {$this_line_only} { return 1 } else { return $status } } ## Auxiliary procedure for procedure highlight # This procedure calls other procedures to perform syntax #+ highlight according to the given highlight status # @parm Int status - Highlight status # @parm Int idx0 - Start index # @parm Int idx1 - End index # @return void proc highlight_aux {status idx0 idx1} { variable editor ;# Widget: Editor text widget variable line_number ;# Int: Line number # Validate input arguments if {$idx0 < 0} { set idx0 0 } if {$idx1 < 0} { set idx1 0 } # Determinate what to do switch -- $status { 1 { ;# Normal mode_normal $idx0 $idx1 } 2 { ;# Doxygen mode_doxygen $idx0 $idx1 } 3 { ;# Comment $editor tag add tag_c_comment $line_number.$idx0 $line_number.$idx1 } 4 { ;# String mode_string $idx0 $idx1 } 5 { ;# Inline assembly mode_normal $idx0 $idx1 } 6 { ;# Inline assembly -- within ::ASMsyntaxHighlight::highlight $editor $line_number 1 } } } ## Highlight text within specified indexes as string # @parm Int idx0 - Start index # @parm Int idx1 - End index # @return void proc mode_string {idx0 idx1} { variable editor ;# Widget: Editor text widget variable line_number ;# Int: Line number variable line_content ;# String: Line content # Local variables set idx 0 ;# Int: Index of backslash in the string set idx_idx0 0 ;# Int: ($idx0 + $idx) set last_idx 0 ;# Int: Last value of $idx # String to highlight set string [string range $line_content $idx0 [expr {$idx1 - 1}]] # Highlight escaped characters and character between them while {1} { # Search for backslash set idx [string first "\\" $string $idx] if {$idx == -1} {break} # Highlight set idx_idx0 [expr {$idx + $idx0}] $editor tag add tag_c_string $line_number.[expr {$last_idx + $idx0}] $line_number.$idx_idx0 $editor tag add tag_c_string_char $line_number.$idx_idx0 $line_number.$idx_idx0+2c incr idx 2 set last_idx $idx } # Highlight remaining chunk of the string $editor tag add tag_c_string $line_number.[expr {$last_idx + $idx0}] $line_number.$idx1 } ## Highlight text within specified indexes as doxygen document # @parm Int idx0 - Start index # @parm Int idx1 - End index # @return void proc mode_doxygen {idx0 idx1} { variable validation_L1 ;# Bool: Advanced validation enabled variable editor ;# Widget: Editor text widget variable line_number ;# Int: Line number variable line_content ;# String: Line content variable doxy_tags_type0;# List of doxygen tags -- No argument variable doxy_tags_type1;# List of doxygen tags -- Word after tag variable doxy_tags_type2;# List of doxygen tags -- Name after tag variable html_tags ;# List of HTML tags (HTML 4.0 Strict) # Local variables set tag_present 0 ;# Bool: Doxygen tag present on line set asterix_p 0 ;# Bool: Leading asterix present on line set i -1 ;# Int: Number of iteration set idx -1 ;# Int: Word start index set len 0 ;# Int: Word length set tags {} ;# List: Highlight tags to put on current word set is_word 0 ;# Bool: This word is doxygen tag word # Determinate string to highlight set string [string range $line_content $idx0 [expr {$idx1 - 1}]] # Split line into words set words [split [regsub -all {>} [regsub -all {<} $string { &}] {& }]] # Adjust HTML tags with argument(s) (they must be represented as a single word) set tag_opened 0 set result_words {} foreach word $words { if {!$tag_opened} { append result_words { } ;# Insert a common space } else { append result_words "\xA0" ;# Insert NBSP } if {!$tag_opened && [regexp {^<\w+$} $word]} { set tag_opened 1 } elseif {$tag_opened && [string index $word end] == {>}} { set tag_opened 0 } append result_words [regsub -all {[\{\}]} $word {\\&}] } set words $result_words set result_words {} # Iterate over string words foreach word $words { # Skip empty words if {$word == {}} {continue} incr i set idx [string first [regsub -all "\xA0" $word { }] $string [expr {$idx + $len}]] set len [string length $word] # Detect doxygen tag word if {$is_word} { set is_word 0 set tags {tag_c_dox_word} # Detect dogygen tag } elseif {[string index $word 0] == {@}} { # Tags without argument if {[lsearch $doxy_tags_type0 $word] != -1 || $word == {@f[}} { set tags {tag_c_dox_tag} # Tags with one argument } elseif {[lsearch $doxy_tags_type1 $word] != -1} { set tags {tag_c_dox_tag} set is_word 1 # Tags witch has name after } elseif {[lsearch $doxy_tags_type2 $word] != -1} { $editor tag add tag_c_dox_tag \ $line_number.[expr {$idx0 + $idx}] \ $line_number.[expr {$idx0 + $idx + $len}] $editor tag add tag_c_dox_name \ $line_number.[expr {$idx0 + $idx + $len}] \ $line_number.$idx1 break # Invalid tag } else { set tags {tag_c_dox_tag} if {$validation_L1} { lappend tags {tag_error} } } # Detect HTML tags } elseif {[string index $word 0] == {<} && [string index $word end] == {>}} { set tags {} # Adjust word set word [string replace $word 0 0 { }] if {[string index $word 1] == {/}} { set word [string replace $word 1 1 { }] } set word [string replace $word end end { }] set word [regsub -all "\xA0" $word { }] # Mark empty tags as errors if {$validation_L1 && ![string length [string trim $word]]} { $editor tag add tag_error \ $line_number.[expr {$idx0 + $idx}] \ $line_number.[expr {$idx0 + $idx + $len}] $editor tag add tag_c_dox_html \ $line_number.[expr {$idx0 + $idx}] \ $line_number.[expr {$idx0 + $idx + $len}] } # Highlight each part of word separately (tag argument="value" ...) set sub_len 0 set sub_idx -1 set w_idx -1 foreach w [split $word] { if {$w == {}} {continue} incr w_idx set sub_len [string length $w] incr sub_idx set sub_idx [string first $w $word $sub_idx] # Highlight and validate HTML tag if {!$w_idx} { # Highlight tagname $editor tag add tag_c_dox_html \ $line_number.[expr {$idx0 + $idx}] \ $line_number.[expr {$idx0 + $idx + $sub_idx + $sub_len}] # Check if HTML tag is valid HTML-4.0 Strict tag if {$validation_L1 && [lsearch $html_tags [string tolower $w]] == -1} { $editor tag add tag_error \ $line_number.[expr {$idx0 + $idx + $sub_idx}] \ $line_number.[expr {$idx0 + $idx + $sub_idx + $sub_len}] } # Highlight arguments } else { set first_equ_mark [string first {=} $w] incr first_equ_mark # Check if argument notation is valid if {$validation_L1 && $first_equ_mark == $sub_len} { $editor tag add tag_error \ $line_number.[expr {$idx0 + $idx + $sub_idx}] \ $line_number.[expr {$idx0 + $idx + $sub_idx + $sub_len}] } # Highlight argument value if {$first_equ_mark} { $editor tag add tag_c_dox_hargval \ $line_number.[expr {$idx0 + $idx + $sub_idx + $first_equ_mark}] \ $line_number.[expr {$idx0 + $idx + $sub_idx + $sub_len}] } else { set first_equ_mark $sub_len } # Highlight argument name $editor tag add tag_c_dox_harg \ $line_number.[expr {$idx0 + $idx + $sub_idx}] \ $line_number.[expr {$idx0 + $idx + $sub_idx + $first_equ_mark}] } } # Highlight last ">" $editor tag add tag_c_dox_html \ $line_number.[expr {$idx0 + $idx + $len - 1}] \ $line_number.[expr {$idx0 + $idx + $len}] # Doxygen comment } else { set tags {tag_c_dox_comment} } # Create chosen highlighting tags foreach tag $tags { $editor tag add $tag \ $line_number.[expr {$idx0 + $idx}] \ $line_number.[expr {$idx0 + $idx + $len}] } } } ## Highlight text within specified indexes as normal text # @parm Int idx0 - Start index # @parm Int idx1 - End index # @return void proc mode_normal {idx0 idx1} { variable validation_L0 ;# Bool: Basic validation enabled variable editor ;# Widget: Editor text widget variable line_number ;# Int: Line number variable line_content ;# String: Line content variable data_types ;# List of data type specifiers variable keywords ;# List of C keywords # Determinate string to highligh and its length set string [string range $line_content $idx0 [expr {$idx1 - 1}]] set len [string length $string] # At first highlight all as a normal text $editor tag add tag_normal $line_number.$idx0 $line_number.$idx1 # Highlight symbols set char {} for {set i 0; set j $idx0} {$i < $len} {incr i; incr j} { set char [string index $string $i] # Brackets if { $char == {(} || $char == {)} || $char == "\{" || $char == "\}" || $char == {[} || $char == {]} } then { $editor tag add tag_c_bracket $line_number.$j $line_number.$j+1c # Other symbols } elseif {[lsearch {; = , + - < > ! | & * / ? : % ^} $char] != -1} { $editor tag add tag_c_symbol $line_number.$j $line_number.$j+1c } } # Highlight keywords and data types set idx 0 foreach words [list $keywords $data_types] \ tag {tag_c_keyword tag_c_data_type} \ { set idx -1 foreach word $words { while {1} { incr idx set idx [string first $word $string $idx] if {$idx == -1} {break} set len [string length $word] if {[string is wordchar -strict [string index $string [expr {$idx - 1}]]]} { continue } if {[string is wordchar -strict [string index $string [expr {$idx + $len}]]]} { continue } $editor tag add $tag \ $line_number.[expr {$idx0 + $idx}] \ $line_number.[expr {$idx0 + $idx + $len}] } } } # Highlight numbers set idx -1 set len 0 set tags {} foreach word [split $string {   ;=,+-<>!|&*/?:%^{}[]()}] { if {$word == {}} {continue} incr idx set len [string length $word] set idx [string first $word $string $idx] # Char if {![string is digit -strict [string index $word 0]]} { if {$word == {''}} { set tags {tag_error} } elseif {[regexp {^'[^']+'$} $word]} { set tags {tag_c_char} } else { continue } # Oct | Dec } elseif {[string is digit -strict $word]} { if {[string index $word 0] == {0}} { if {$len == 1} { set tags {tag_c_dec} } elseif {!$validation_L0 || [regexp {^0[0-7]+$} $word]} { set tags {tag_c_oct} } else { set tags {tag_c_oct tag_error} } } else { set tags {tag_c_dec} } # Hex } elseif { [string index $word 0] == {0} && ( [string index $word 1] == {x} || [string index $word 1] == {X} ) } then { if {!$validation_L0 || [string is xdigit -strict [string range $word 2 end]]} { set tags {tag_c_hex} } else { set tags {tag_c_hex tag_error} } # Bin } elseif { [string index $word 0] == {0} && ( [string index $word 1] == {b} || [string index $word 1] == {B} ) } then { if {!$validation_L0 || [regexp {^[01]+$} [string range $word 2 end]]} { set tags {tag_c_bin} } else { set tags {tag_c_bin tag_error} } # Float } elseif {[regexp {^\d+\.\d+$} $word]} { set tags {tag_c_float} # Invalid number } else { if {$validation_L0} { set tags {tag_error} } } # Put tags on text widget foreach tag $tags { $editor tag add $tag \ $line_number.[expr {$idx0 + $idx}] \ $line_number.[expr {$idx0 + $idx + $len}] } } } ## Remove previously defined syntax highlighting tags # @return void proc delete_tags {} { variable editor ;# Widget: Editor text widget variable highlight_tags ;# Highlight tags definition variable line_start ;# Index of line start variable line_end ;# Index of line end # Remove tag error $editor tag remove tag_error $line_start $line_end $editor tag remove tag_error_line $line_start $line_start+1l $editor tag remove c_lang_func $line_start $line_start+1l $editor tag remove c_lang_var $line_start $line_start+1l # Remove tags according to pattern foreach tag $highlight_tags { $editor tag remove [lindex $tag 0] $line_start $line_end } foreach tag $::ASMsyntaxHighlight::highlight_tags { $editor tag remove [lindex $tag 0] $line_start $line_end } } } # >>> File inclusion guard } # <<< File inclusion guard mcu8051ide-1.4.7/lib/editor/editor.tcl0000644000175000017500000027024712067167647020141 0ustar milleniummillenium#!/usr/bin/tclsh # Part of MCU 8051 IDE ( http://mcu8051ide.sf.net ) ############################################################################ # Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012 by Martin Ošmera # # martin.osmera@gmail.com # # # # This program is free software; you can redistribute it and#or modify # # it under the terms of the GNU General Public License as published by # # the Free Software Foundation; either version 2 of the License, or # # (at your option) any later version. # # # # This program is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU General Public License for more details. # # # # You should have received a copy of the GNU General Public License # # along with this program; if not, write to the # # Free Software Foundation, Inc., # # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # ############################################################################ # >>> File inclusion guard if { ! [ info exists _EDITOR_TCL ] } { set _EDITOR_TCL _ # <<< File inclusion guard # -------------------------------------------------------------------------- # DESCRIPTION # Implements source code editor with syntax highligh and # lightweight syntax validation. # This GUI component consist of line numbers border, icon border, # editor, command line and status bar. # # Consist of: # * PROCEDURES RELATED TO EDITOR COMMAND LINE # * GENERAL PURPOSE PROCEDURES # * EXPORTS TO OTHER DATA FORMATS (XHTML && LATEX) # * KEY EVENT HANDLERS # * AUTOCOMPLETION RELATED PROCEDURES # -------------------------------------------------------------------------- # Load syntax highlighting source "${::LIB_DIRNAME}/editor/ASMsyntaxhighlight.tcl" source "${::LIB_DIRNAME}/editor/R_ASMsyntaxhighlight.tcl" source "${::LIB_DIRNAME}/editor/Csyntaxhighlight.tcl" source "${::LIB_DIRNAME}/editor/LSTsyntaxhighlight.tcl" # Initialize variable containing count of matched strings set ::editor_search_count 0 class Editor { ## COMMON ## Editor to use # 0 - Native editor # 1 - Vim # 2 - Emacs # 3 - Nano # 4 - dav # 5 - le common editor_to_use 0 common intentation_mode {normal};# Editor indentation mode common spaces_no_tabs 0 ;# Bool: Use spaces instead of tabs common number_of_spaces 8 ;# Number of spaces to use instead of tab common auto_brackets 1 ;# Automaticaly insert oposite brackets, quotes, etc. common auto_completion 1 ;# Enable popup-base completion for code editor common cline_completion 1 ;# Enable popup-base completion for command line common autosave 0 ;# Int: 0 == Disable autosave; N > 0 == minutes common hg_trailing_sp 1 ;# Bool: Highlight trailing spaces common finishigh_hg_dlg_max ;# Int: Highlight dialog -- maximum value for progress bar common finishigh_hg_dlg_const ;# Int: Highlight dialog -- current value for progress bar common set_shortcuts {} ;# Currently set shortcut bindigs common shortcuts_cat {edit} ;# Key shortcut categories related to this segment common count 0 ;# Counter of class instances common bookmark 0 ;# Auxiliary variable for popup menu for Icon Border common breakpoint 0 ;# Auxiliary variable for popup menu for Line Numbers common pmenu_cline 0 ;# Auxiliary variable for popup menu for Icon Border and Line Numbers common wrap_char "\uB7" ;# Character intended for marking wrapped lines # Commands supported by editor command line common editor_commands { animate assemble auto-indent bookmark breakpoint capitalize clear comment copy custom cut date exit exit-program find goto help char indent kill-line open paste redo reload replace run save set-icon-border sim set-line-numbers step tolower toupper uncomment undo unindent d2h d2o d2b h2d h2o h2b o2h o2d o2b b2h b2d b2o hibernate resume switch-mcu set-xcode set-xdata } # Editor commands wich can take options common commands_with_option {find replace} ## Tags which defines background color for specific type of lines # {{tagname bg-color bool-priority} ...} common line_markers { {sel #AAAAFF} {tag_current_line #FFFF88} {tag_bookmark #DDDDFF} {tag_breakpoint #FF0000} {tag_simulator_curr #AAFFAA} {tag_error_line #FFDDDD} {tag_trailing_space #E8FFF0} {tag_breakpoint_INVALID #888888} } # Font for command line: Normal help window text common cl_hw_nrml_font [font create \ -family $::DEFAULT_FIXED_FONT \ -size [expr {int(-14 * $::font_size_factor)}] \ ] # Font for command line: Bold help window text common cl_hw_bold_font [font create \ -family $::DEFAULT_FIXED_FONT \ -size [expr {int(-14 * $::font_size_factor)}] \ -weight bold \ ] # Font for command line: Subheader in help window text common cl_hw_hdr_font [font create \ -family $::DEFAULT_FIXED_FONT \ -size [expr {int(-14 * $::font_size_factor)}] \ -weight bold \ ] # Font for command line: Main header in help window text common cmd_line_win_font [font create \ -size [expr {int(-17 * $::font_size_factor)}] \ -weight bold \ -family {helvetica} \ ] # Font size for command line common cmd_line_fontSize [expr {int(14 * $::font_size_factor)}] # Font family for command line common cmd_line_fontFamily $::DEFAULT_FIXED_FONT # Font for editor command line common cmd_line_font [font create \ -family $cmd_line_fontFamily \ -size -$cmd_line_fontSize \ ] ## Highlight tags for command line # { # {tag_name ?foreground? ?overstrike? ?italic? ?bold?} # } common cmd_line_highlighting { {tag_cmd #0000DD 0 0 1} {tag_argument #00DD00 0 0 0} {tag_option #DD0000 0 0 1} } common normal_text_bg #FFFFFF ;# Default background color for editor common iconBorder_bg #C8C5FF ;# Default background color for icon border common lineNumbers_bg #9497D8 ;# Default background color for line numbers common lineNumbers_fg #FFFFFF ;# Default foreground color for line numbers # Items in editor menu, which should be disabled when editor goes to simulator mode common freezable_menu_items { Cut Paste Undo Redo Comment Uncomment Indent Unindent Uppercase Lowercase Capitalize } # Items in editor menu, which should be disabled when editor is in read only mode common read_na_only_menu_items { Cut Paste Undo Redo Comment Uncomment Indent Unindent Uppercase Lowercase Capitalize } # Maximum width of the tab character, measured in number of spaces common tab_width 8 # Default font size common fontSize [expr {int(13 * $::font_size_factor)}] # Default font family common fontFamily $::DEFAULT_FIXED_FONT # Default font for editor common defaultFont \ [font create \ -size -$fontSize \ -family $fontFamily \ -weight {normal} \ ] common defaultFont_bold \ [font create \ -size -$fontSize \ -family $fontFamily \ -weight {bold} \ ] common defaultCharWidth 0 ;# Width of one character of the default font common defaultCharHeight 0 ;# Height of one character of the default font # Font for status bar (Normal) common statusBarFont \ [font create \ -size [expr {int(-12 * $::font_size_factor)}] \ -family $::DEFAULT_FIXED_FONT \ ] # Font for status bar (Bold) common statusBarBoldFont \ [font create \ -size [expr {int(-12 * $::font_size_factor)}] \ -weight bold \ -family $::DEFAULT_FIXED_FONT \ ] # Definition of editor popup menu common EDITORMENU { {command {LJMP this line} {$edit:jmp} 2 "ljmp_this_line {}" {exec} "Program jump"} {command {LCALL this line} {$edit:call} 4 "lcall_this_line {}" {exec} "Call subprogram"} {separator} {command {Breakpoint} {$edit:breakpoint} 0 "Breakpoint {}" {flag} "Add/Remove breakpoint to/from current line"} {command {Bookmark} {$edit:bookmark} 1 "Bookmark {}" {bookmark_add} "Add/Remove bookmark to/from current line"} {separator} {command {Undo} {$edit:undo} 0 "undo {}" {undo} "Take back last operation"} {command {Redo} {$edit:redo} 2 "redo {}" {redo} "Take back last undo"} {separator} {command {Cut} {$edit:cut} 2 "cut {}" {editcopy} "Move selected text into the clipboard"} {command {Copy} {$edit:copy} 0 "copy {}" {editcut} "Copy selected text into the clipboard"} {command {Paste} {$edit:paste} 0 "paste {}" {editpaste} "Paste text from clipboard"} {separator} {command {Select all} {$edit:select_all} 0 "select_all {}" {} "Select all text in the editor"} {separator} {command {Comment} {$edit:comment} 1 "comment {}" {} "Comment selected text"} {command {Uncomment} {$edit:uncomment} 4 "uncomment {}" {} "Uncomment selected text"} {separator} {command {Indent} {$edit:indent} 2 "indent {}" {indent} "Indent selected text"} {command {Unindent} {$edit:unindent} 1 "unindent {}" {unindent} "Unindent selected text"} {separator} {command {Uppercase} {$edit:uppercase} 0 "lowercase {}" {up0} "Indent selected text"} {command {Lowercase} {$edit:lowercase} 2 "uppercase {}" {down0} "Unindent selected text"} {command {Capitalize} {$edit:capitalize} 4 "capitalize {}" {} "Unindent selected text"} {separator} {command {Save file} {$edit:save} 0 "save {}" {filesave} "Save this file"} } # Definition of popup menu for icon border common IBMENU { {checkbutton "Bookmark" {$edit:bookmark} {::Editor::bookmark} 1 0 0 {Bookmark ${::Editor::pmenu_cline}}} {separator} {command "Configure panel" "" 0 {configDialogues_mkDialog Colors} {configure} "Invoke editor configuration dialog"} {command "Hide" "" 0 {show_hine_IconB} {2leftarrow} "Hide this panel"} } # Definition of popup menu for line numbers common LNMENU { {checkbutton "Breakpoint" {$edit:breakpoint} {::Editor::breakpoint} 1 0 0 {Breakpoint ${::Editor::pmenu_cline}}} {separator} {command "Configure panel" "" 0 {configDialogues_mkDialog Colors} {configure} "Invoke editor configuration dialog"} {command "Hide panel" "" 0 {show_hine_LineN} {2leftarrow} "Hide this panel"} } # Definition of popup menu for editor statis bar common STATMENU { {command "Split vertical" {$edit:split_v} 8 {__split_vertical} {view_left_right} "Split the editor vertically"} {command "Split horizontal" {$edit:split_h} 6 {__split_horizontal} {view_top_bottom} "Split the editor horizontally"} {separator} {command "Close current view" {$edit:close_cv} 2 {__close_current_view_from_pmenu} {view_remove} ""} {separator} {command "Back" {$edit:prev} 0 {__prev_editor_from_pmenu} {left} "Go to previous file in the file list"} {command "Forward" {$edit:next} 0 {__next_editor_from_pmenu} {right} "Go to next file in the file list"} } ## PUBLIC public variable editor ;# text widget identifier public variable ed_sc_frame ;# frame identifier (need packing) public variable show_iconBorder 1 ;# on/off indicator for Icon Border (bool) public variable show_lineNum 1 ;# on/off indicator for Line Numbers (bool) public variable iconBorder ;# Identifier of Icon Border text widget public variable lineNumbers ;# Identifier of Line Numbers text widget public variable scrollbar ;# Identifier of scrollbar widget public variable lastEnd 2 ;# Last end index of Editor text widget (for speed optimization) public variable Sbar_lock_file ;# Identifier of image label widget at the left site of status bar public variable Sbar_sim_mode ;# Identifier of label widget at the left site of status bar public variable Sbar_ssim_mode public variable Sbar_dis_mode ;# Identifier of label widget at the left site of status bar public variable Sbar_CRT_frame ;# ID of frame on statusbar containing labels "Line: x Col: x Total: x" public variable Sbar_row ;# ID of label showing current line number public variable Sbar_col ;# ID of label showing current column public variable Sbar_total ;# ID of label showing total number of lines public variable Sbar_image ;# Identifier of floppy disk icon at the middle site of status bar public variable Sbar_fileName ;# Identifier of the text of filename at the right site of status bar public variable Sbar_prog_lang ;# ID of text specifying file type at the right site of status bar public variable fullFileName ;# Full file name of the current file ("" == untitled) public variable filename ;# Name of currently opened file or 'untitled' public variable modified 0 ;# Boolean value indicating than the text has been modified since last save public variable encoding ;# Current character encoding (eg. 'utf-8') public variable eol ;# Current End of Line character (one of {lf crlf cr}) public variable ro_mode 0 ;# Bool: Read only mode ## PRIVATE private variable file_change_notif_flg 0 ;# Bool: The opened file was modified on disk by another program private variable finishigh_hg_dlg_wdg {} ;# Widget: Finishing highlight dialog private variable finishigh_hg_dlg_tmr {} ;# Timer: Finishing highlight dialog private variable object_initialized 0 ;# Bool: Flag "Object initialized" private variable c_hg_tags_created 0 ;# Bool: C language highlight tags created private variable lst_hg_tags_created 0 ;# Bool: Code listing highlight tags created private variable cmd_prefix ;# Command prefix for popup menu private variable last_cur_line 1 ;# Number of the last current line in the editor private variable last_sim_line 1 ;# Number of the last simulator line in the editor private variable enable_parseAll 1 ;# Enable reparese whole document (used by: parse_all) private variable bookmarks {0} ;# List of boolean bookmarks, eg. {0 0 0 1 1 0 0} private variable breakpoints {0} ;# List of boolean breakpoint, eg. {0 0 0 1 1 0 0} private variable menu ;# Identifier of popup menu for editor text widget private variable stat_menu ;# Identifier of popup menu for editor statusbar private variable IB_menu ;# Identifier of popup menu for icon border private variable ins_mode_lbl ;# Identifier of insertion mode label (on status bar) private variable sel_mode_lbl ;# Identifier of selection mode label (on status bar) private variable left_frame_L ;# ID of frame containing Line Numbers private variable left_frame_R ;# ID of frame containing Icon Border private variable LN_menu ;# Identifier of popup menu for line numbers private variable frozen 0 ;# Bool: True if the editor is in simulator mode private variable getDataAsXHTML_abort 0 ;# Set this variable to 1 to immediate stop export to XHTML private variable getDataAsLaTeX_abort 0 ;# Set this variable to 1 to immediate stop export to LaTeX private variable changeLCase_abort 0 ;# Set this variable to 1 to immediate stop changing letter case private variable parentObject ;# Identifier parent GUI component (some frame widget) private variable lastUpDownIndex 0 ;# Last column index (for Up and Down actions) private variable scroll_in_progress 0 ;# Bool: scroll procedure in progress private variable highlighted_lines {0} ;# String/array of highlighted lines (eg. 00011111110001111) private variable critical_edit_proc 0 ;# Bool: Critical edit procedure in progess private variable map_of_wraped_lines {} ;# Map of wrapped lines (eg. {0 0 5 0 0 2 0}) private variable number_of_wraps 0 ;# Number of line wraps private variable ins_ovr_mode 1 ;# Current insertion mode (1 == INS; 0 == OVR) private variable editor_width 0 ;# Width of active area of the editor widget private variable editor_height 0 private variable cmd_line ;# ID of command line entry widget private variable cmd_line_listbox {} ;# Widget: ListBox of command line auto-completion window private variable completion_listbox ;# Widget: ListBox of editor popup-based completion private variable do_not_hide_comp_win 0 ;# Bool: Disable highing of editor completion win. on KeyRelease private variable autosave_timer {} ;# ID of autosave timer (command "after") private variable key_handler_buffer {} ;# List: Buffer for event handler private variable key_handler_in_progress 0 ;# Bool: event handler in progress private variable statusbar_menu_config {} ;# List: Status bar menu configuration list private variable auto_switching_lock 0 ;# Bool: Automatic file switching enabled private variable selection_in_progress 0 ;# Bool: Procedure "editor_selection" in progress private variable selection_mode 0 ;# Bool: Block selection mode flag private variable save_in_progress 0 ;# Bool: Saving in progress ## Programming language # 0 - Assembly language # 1 - C # 2 - Code listing # 3 - ASX8051 private variable prog_language 0 private variable top_frame ;# Widget: Container frame for embedded external editor private variable terminal_created 0 ;# Bool: Terminal emulator to run embedded editor has been created private variable top_frame_idx 0 ;# Int: Unique number of container frame for embedded editor private variable pid {} ;# Int: Process indentifier of embedded external editor (e.g. Vim) # Load procedures related to editor command line source "${::LIB_DIRNAME}/editor/commandline.tcl" # Load procedures related to exports to other data formats source "${::LIB_DIRNAME}/editor/exports.tcl" # Load autocompletion related procedures source "${::LIB_DIRNAME}/editor/autocompletion.tcl" # Load general purpose procedures source "${::LIB_DIRNAME}/editor/generalproc.tcl" # Load event handlers source "${::LIB_DIRNAME}/editor/eventhandlers.tcl" # Spell checker interface source "${::LIB_DIRNAME}/editor/spell_check.tcl" ## Object constructor # @parm Bool create_tags - Create highlighting tags # @parm String eol_char - EOL (one of {lf cr crlf}) # @parm String enc - Character encoding (some iso-8859-x or utf-8) # @parm Bool read_only - Read only flag # @parm Bool switch_lock - Automatic file switching enabled # @parm widget parentobject - Reference to parent object # @parm String fileName - filename to be showed in statusbar # @parm String filepath - location where to optionaly save the data, "" == untitled document # @parm String cmd_prefix - command prefix for popup menu # @parm String data - an input text data # @parm Int sh - Syntax highlight constructor {create_tags eol_char enc read_only switch_lock parentobject fileName filepath Cmd_prefix data sh} { close_completion_popup_window_NOW set bold_font [font create -size -$fontSize -family $fontFamily -weight {bold}] set italic_font [font create -size -$fontSize -family $fontFamily -slant {italic}] if {[font metrics $bold_font -displayof . -linespace] < [font metrics $italic_font -displayof . -linespace]} { set defaultFont_bold $italic_font } else { set defaultFont_bold $bold_font } # Configure specific ttk styles ttk::style configure Editor_DarkBg.TButton \ -background {#DDDDDD} \ -padding 0 \ -borderwidth 1 \ -relief flat ttk::style map Editor_DarkBg.TButton \ -relief [list active raised !active flat] # increment instance counter incr count # Set object variables array set autocompletion_list {0 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {}} set autocompletion_list(5) [lsort -ascii ${::ASMsyntaxHighlight::expr_instructions}] set autocompletion_list(6) [lsort -ascii [concat\ ${::CsyntaxHighlight::doxy_tags_type2} \ ${::CsyntaxHighlight::doxy_tags_type1} \ ${::CsyntaxHighlight::doxy_tags_type0} \ ]] set auto_switching_lock [expr {!$switch_lock}] set ro_mode $read_only set encoding $enc set eol $eol_char set cmd_prefix $Cmd_prefix set parentObject $parentobject ;# Identifier parent GUI component (some frame widget) set fullFileName $filepath ;# Full file name (including path) of current file set filename $fileName ;# Name of currently opened file or 'untitled' refresh_available_SFR if {$sh == {}} { determinate_prog_lang 0 } else { set prog_language_old $prog_language set prog_language $sh } if {$editor_to_use} { set ed_sc_frame [frame .editor_frame$count -bd 2 -relief sunken] recreate_terminal $fullFileName set editor [text .editor_frame$count.dummy_editor] return } # Create frames set ed_sc_frame [frame .editor_frame$count] set top_frame [frame $ed_sc_frame.editor_top_frame -relief sunken -bd 1] set left_frame [frame $top_frame.editor_left_frame] set left_frame_L [frame $left_frame.left -bg $iconBorder_bg] set left_frame_R [frame $left_frame.right -bg $lineNumbers_bg] set bottom_frame [frame $ed_sc_frame.bottom_frame] set statusbar [frame $bottom_frame.editor_status -bg #DDDDDD] # Create command line set cmd_line [text $bottom_frame.cmd_line \ -bd 1 \ -bg {#FFFFFF} \ -highlightcolor {#8888FF} \ -highlightthickness 1 \ -height 1 \ -font $cmd_line_font \ ] setStatusTip -widget $cmd_line \ -text [mc "Editor command line, type `help' for more"] $cmd_line delete 1.0 end ## Create "Icon border" set iconBorder [text $left_frame_L.editor_iconB \ -font $defaultFont_bold \ -width 2 \ -bd 0 \ -highlightthickness 0 \ -bg $iconBorder_bg \ -exportselection 0 \ -state disabled \ -takefocus 0 \ -cursor hand2 \ -relief flat \ ] $iconBorder tag configure center -justify center setStatusTip -widget $iconBorder \ -text [mc "Icon border - click to add/remove bookmark"] # Create poup menu for "Icon border" set IB_menu $iconBorder.editor_iconB_menu ## Create "Line numbers" set lineNumbers [text $left_frame_R.editor_lines \ -font $defaultFont_bold \ -width 0 \ -bd 0 \ -highlightthickness 0 \ -exportselection 0 \ -bg $lineNumbers_bg \ -fg $lineNumbers_fg \ -state normal \ -takefocus 0 \ -cursor hand2 \ -relief flat \ ] $lineNumbers delete 1.0 end $lineNumbers insert end {1} $lineNumbers configure -state disabled $lineNumbers tag configure right -justify right $lineNumbers tag configure center -justify center $lineNumbers tag raise center right setStatusTip -widget $lineNumbers \ -text [mc "Line numbers - click to add/remove breakpoint"] # Create poup menu for "Line numbers" set LN_menu $lineNumbers.editor_lines_menu # Create "Editor" frame $top_frame.f -bd 0 -bg $normal_text_bg -cursor xterm set tab_width_un [expr {$tab_width * [font measure $defaultFont_bold 0]}] set editor [text $top_frame.f.editor \ -bg $normal_text_bg \ -font $defaultFont_bold \ -undo 1 -exportselection 1 \ -wrap word \ -maxundo 0 \ -selectborderwidth 1 \ -bd 0 -relief flat \ -tabstyle wordprocessor \ -tabs [list $tab_width_un left] \ ] bind $top_frame.f "$this click_under_editor %x %y; break" bind $top_frame.f "$this scroll scroll -3 units; break" bind $top_frame.f "$this scroll scroll +3 units; break" # Create scrollbar set scrollbar [ttk::scrollbar \ $top_frame.editor_scrollbar \ -orient vertical \ -command "$this scroll_0" \ ] # Set new font attributes set defaultCharWidth [font measure $defaultFont_bold -displayof $editor { }] set defaultCharHeight [font metrics $defaultFont_bold -displayof $editor -linespace] ## Pack that all into mainframe # Parts of Left frame pack $lineNumbers -fill none -expand 1 -side right -anchor n pack $iconBorder -fill none -expand 1 -side left -anchor n pack [frame $left_frame.editor_redutant_frame] -side left pack $left_frame_L -side left -fill y pack $left_frame_R -side right -fill y # Parts of Top frame pack $left_frame -side left -fill y -expand 0 pack $scrollbar -fill y -expand 0 -side right pack $top_frame.f -fill both -expand 1 -side left pack $editor -fill x -expand 1 -side left -anchor nw # Parts of Bottom frame pack $statusbar -side bottom -fill x # Bottom and Top frame$ins_mode_lbl pack $bottom_frame -side bottom -fill x pack $top_frame -side top -fill both -expand 1 ## Create statusbar set stat_menu $statusbar.popup_menu set status_left [frame $statusbar.editor_status_left -bg #DDDDDD] set status_middle [frame $statusbar.editor_status_middle -width 16 -bg #DDDDDD] set status_right [frame $statusbar.editor_status_right -bg #DDDDDD] set ins_mode_lbl [Label $statusbar.ins_mode_lbl \ -text [mc "INS"] -fg #000000 -pady 0 \ -bg #DDDDDD -cursor hand2 \ -helptext [mc "Insertion mode"] \ -font $statusBarBoldFont \ ] set sel_mode_lbl [Label $statusbar.sel_mode_lbl \ -text [mc "NORM"] -fg #000000 -pady 0 \ -bg #DDDDDD -cursor hand2 \ -helptext [mc "Selection mode"] \ -font $statusBarBoldFont -width 7 \ ] setStatusTip -widget $sel_mode_lbl -text [mc "Selection mode -- BLK == block; NORM == normal"] bind $sel_mode_lbl "$this switch_sel_mode" pack $status_left -side left -padx 10 pack $status_middle -side left pack $ins_mode_lbl -side left -padx 5 pack $sel_mode_lbl -side left -padx 5 -pady 3 pack $status_right -side right -fill x -padx 10 # Frame for "Line: x Col: x Total: x" set Sbar_CRT_frame [frame $status_left.sbar_crt_frame -bg #DDDDDD] # Labels "Line:" pack [label $Sbar_CRT_frame.sbar_row_lbl \ -text [mc "Line:"] -fg {#444444} \ -bg #DDDDDD \ -font $statusBarFont -pady 0 \ ] -side left -pady 0 set Sbar_row [label $Sbar_CRT_frame.sbar_row_val \ -fg {#0000AA} -font $statusBarBoldFont -pady 0 \ -bg #DDDDDD -anchor e -bd 1 \ ] pack $Sbar_row -side left -pady 0 # Labels "Column:" pack [label $Sbar_CRT_frame.sbar_col_lbl \ -text [mc " Column:"] -fg {#444444} \ -bg #DDDDDD \ -font $statusBarFont -pady 0 \ ] -side left -pady 0 set Sbar_col [label $Sbar_CRT_frame.sbar_col_val \ -fg {#0000AA} -font $statusBarBoldFont -pady 0 \ -bg #DDDDDD -anchor e \ ] pack $Sbar_col -side left -pady 0 # Labels "Total:" pack [label $Sbar_CRT_frame.sbar_total_lbl \ -text [mc " Total:"] -fg {#444444} \ -bg #DDDDDD \ -font $statusBarFont -pady 0 \ ] -side left -pady 0 set Sbar_total [label $Sbar_CRT_frame.sbar_total_val \ -fg {#006600} -font $statusBarBoldFont -pady 0 \ -bg #DDDDDD -anchor e \ ] pack $Sbar_total -side left -pady 0 # Image label: Lock/Unlock file set Sbar_lock_file [ttk::button $status_left.editor_status_left_lock \ -style Editor_DarkBg.TButton \ -command "$this invert_lock" \ ] set_lock $auto_switching_lock # Label: "Simulator mode" set Sbar_sim_mode [Label $status_left.editor_status_left_l0 \ -font $statusBarBoldFont \ -fg #DD0000 -bg #DDDDDD \ -helptext [mc "Editor status bar"] \ -padx 5 -pady 0 \ -text [mc "Simulator mode "] \ ] # Label: "Simulator mode" set Sbar_ssim_mode [Label $status_left.editor_status_left_l2 \ -font $statusBarBoldFont \ -fg #555555 -bg #DDDDDD \ -helptext [mc "Editor status bar"] \ -padx 5 -pady 0 \ -text [mc "Starting simulator"] \ ] # Label: "Editor disabled" set Sbar_dis_mode [Label $status_left.editor_status_left_l1 \ -font $statusBarBoldFont \ -fg #3333DD -bg #DDDDDD \ -helptext [mc "Editor status bar"] \ -padx 5 -pady 0 \ -text [mc "Editor disabled"] \ ] set Sbar_image [Label $status_middle.editor_status_middle_l \ -bg #DDDDDD \ -pady 0 \ -cursor hand2 \ ] bind $Sbar_image "$this save" bind $Sbar_image "$this save" setStatusTip -widget $Sbar_image \ -text [mc "File has been modified, click to save"] pack $Sbar_CRT_frame set Sbar_fileName [Label $status_right.editor_status_right_l \ -text $filename \ -helptext $filename \ -font $statusBarBoldFont \ -bg #DDDDDD \ ] pack $Sbar_fileName -side left setStatusTip -widget $Sbar_fileName \ -text [mc "Name of the current file or \"untitled\" if the file has not yet been saved under any name"] set Sbar_prog_lang [Label $status_right.sbar_prog_lang \ -helptext [mc "File type\n C/H\tC source / header\n ASM\tAssembly language\n LST\tCode listing\n ASX\tASX8051 assembler"] \ -font $statusBarBoldFont \ -bg #DDDDDD \ ] adjust_sbar_to_prog_lang pack $Sbar_prog_lang -side right -padx 5 setStatusTip -widget $Sbar_prog_lang -text [mc "File type"] # Set status bar event bindings bind $statusbar "$this statusbar_popup_menu $editor %X %Y; break" foreach widget [winfo children $statusbar] { bind $widget "$this statusbar_popup_menu $editor %X %Y; break" foreach wdg [winfo children $widget] { bind $wdg "$this statusbar_popup_menu $editor %X %Y; break" foreach w [winfo children $wdg] { bind $w "$this statusbar_popup_menu $editor %X %Y; break" } } } # Create text tags $editor tag configure tag_wrong_spelling -underline 1 if {$create_tags} { create_highlighting_tags } define_line_markers $editor tag configure c_lang_var $editor tag configure c_lang_func $editor tag raise sel tag_current_line $editor tag raise sel tag_bookmark $editor tag raise sel tag_simulator_curr $editor tag raise sel tag_trailing_space $editor tag raise tag_error_line tag_bookmark $editor tag raise tag_error_line tag_trailing_space $editor tag raise tag_current_line tag_bookmark $editor tag raise tag_current_line tag_error_line $editor tag raise tag_trailing_space tag_current_line $editor tag raise tag_simulator_curr tag_current_line $editor tag raise tag_simulator_curr tag_error_line $editor tag raise tag_simulator_curr tag_bookmark $editor tag raise tag_simulator_curr tag_trailing_space # Insert the given data if {$data != {}} { $editor insert end $data $editor edit modified 0 $editor edit reset } # Reset status modified set modified 0 ## Set unredefinable event bindings for editor # Set priorities bindtags $editor [list $editor . all] # Special keys for {set i 1} {$i < 21} {incr i} { bind $editor "" {continue} } bind $editor {continue} bind $editor {continue} # Keep default foreach key { } { bind $editor $key [bind Text $key] } # Scroll wheel bind $editor "$this scroll scroll -3 units; break" bind $editor "$this scroll scroll +3 units; break" bind $editor {::X::__prev_editor} bind $editor {::X::__next_editor} bind $editor {::X::__reload} # Other foreach key { } { bind $editor $key " [bind Text $key] $this rightPanel_adjust \[expr {int(\[%W index insert\])}\] $this recalc_status_counter {} $this resetUpDownIndex break" } bind $editor " $this scroll scroll +30 lines break " bind $editor " $this scroll scroll -30 lines break " bind $editor " if {\[string is alnum -strict \[%W get insert-1c insert\]\]} { [bind Text ] } $this rightPanel_adjust \[expr {int(\[%W index insert\])}\] $this recalc_status_counter {} $this resetUpDownIndex break" bind $editor " if {\[catch {$this shift_down}\]} { [bind Text ] $this rightPanel_adjust \[expr {int(\[%W index insert\])}\] $this recalc_status_counter {} } break" bind $editor " if {\[catch {$this shift_up}\]} { [bind Text ] $this rightPanel_adjust \[expr {int(\[%W index insert\])}\] $this recalc_status_counter {} } break" bind $editor "$this control_shift_updown 1; break" bind $editor "$this control_shift_updown 0; break" bind $editor "$this copy; break" bind $editor "$this paste; break" bind $editor "$this cut; break" bind $editor "$this control_down; break" bind $editor "$this control_up; break" bind $editor "$this down; break" bind $editor "$this up; break" bind $editor "$this control_home; break" bind $editor "$this control_end; break" bind $editor "$this home_press; break" bind $editor "$this shift_home; break" bind $editor "$this switch_ins_ovr; break" bind $editor "$this tab_press; break" if {!$::MICROSOFT_WINDOWS} { bind $editor "$this unindent; break" } bind $editor "$this paste 1 %x %y; break" bind $editor <> "$this paste; break" bind $editor <> "$this cut; break" bind $editor <> "$this copy; break" bind $editor "$this paste; break" bind $editor "$this cut; break" bind $editor "$this copy; break" bind $editor <> "$this undo; break" bind $editor <> "$this redo; break" bind $editor "$this shift_enter; break" bind $editor "$this shift_enter; break" bind $editor "$this enter; break" bind $editor "$this enter; break" bind $editor "$this Key %A %K; break" bind $editor "$this KeyRelease %K; break" bind $editor "$this popupMenu %X %Y %x %y; break" bind $editor "$this Key_Menu; break" bind $editor "$this key_escape" bind $editor "$this delete_current_line; break" bind $editor "$this key_backspace; break" bind $editor "$this key_delete; break" bind $editor " %W mark set insert {insert-30l} $this scroll scroll -30 lines $this resetUpDownIndex $this rightPanel_adjust \[expr {int(\[%W index insert\])}\] $this recalc_status_counter {} break" bind $editor " %W mark set insert {insert+30l} $this scroll scroll +30 lines $this resetUpDownIndex $this rightPanel_adjust \[expr {int(\[%W index insert\])}\] $this recalc_status_counter {} break" bind $editor "break" bind $editor "break" bind $editor " [bind Text ] $this resetUpDownIndex $this recalc_status_counter {} $this rightPanel_adjust \[expr {int(\[%W index insert\])}\] break" bind $editor " [bind Text ] $this resetUpDownIndex $this recalc_status_counter {} $this rightPanel_adjust \[expr {int(\[%W index insert\])}\] break" bind $editor " set ln \[expr {int(\[$editor index insert\])}\] $this autocompletion_maybe_important_change \$ln.0 \$ln.0 [bind Text ] $this resetUpDownIndex $this parse \$ln $this manage_autocompletion_list \$ln update break" bind $editor <> " [bind Text <>] $this resetUpDownIndex $this recalc_left_frame $this parse \[expr {int(\[$editor index insert\])}\] catch {$editor tag remove sel sel.first sel.last} update break" bind $editor " # Check spelling on the line which we are now leaving $this spellcheck_check_all \[expr {int(\[%W index insert\])}\] [bind Text ] $this rightPanel_adjust \[expr {int(\[%W index insert\])}\] $this resetUpDownIndex $this recalc_status_counter focus -force $editor break" bind $editor " [bind Text ] $this rightPanel_adjust \[expr {int(\[%W index @%x,%y\])}\] $this resetUpDownIndex $this recalc_status_counter break" bind $editor <> "$this editor_selection; break" # Set event bindings for editor command line bind $cmd_line " \${::X::actualProject} cmd_line_off pack forget $cmd_line catch {$this cmd_line_menu_close_now} focus $editor update break" for {set i 1} {$i < 21} {incr i} { bind $cmd_line {continue} bind $cmd_line {continue} } bind $cmd_line {continue} bind $cmd_line {continue} bind $cmd_line {%W tag add sel {insert linestart} {insert lineend}; break} bind $cmd_line "$this cmd_line_enter; break" bind $cmd_line "$this cmd_line_enter; break" bind $cmd_line "$this cmd_line_key_press %A; break" bind $cmd_line "$this cmd_line_key Delete; break" bind $cmd_line "$this cmd_line_key BackSpace; break" bind $cmd_line "$this cmd_line_key Home; break" bind $cmd_line "$this cmd_line_key End; break" bind $cmd_line "$this cmd_line_key Left; break" bind $cmd_line "$this cmd_line_key Right; break" bind $cmd_line "if {\[$this cmd_line_down\]} {break}" bind $cmd_line "if {!\[$this cmd_line_key SLeft\]} {break}" bind $cmd_line "if {!\[$this cmd_line_key SRight\]} {break}" foreach keysym {Shift-Home Shift-End Up} { bind $cmd_line <$keysym> "[bind Text <$keysym>];break" } foreach keysym {Undo Redo Cut Copy Paste} { bind $cmd_line <<$keysym>> "[bind Text <<$keysym>>];break" } # Create bindings for defined key shortcuts shortcuts_reevaluate # Create editor popup menu set menu $editor.editor_menu makePopupMenu bind $editor "$this Configure" bind $editor "$parentObject filelist_editor_selected $this" bind $cmd_line "$parentObject filelist_editor_selected $this" # Set event bindings for "Line numbers" bind $lineNumbers " $parentObject filelist_editor_selected $this focus -force $editor $this lineNumbers_click %x %y break" bind $lineNumbers " $parentObject filelist_editor_selected $this focus -force $editor $this lineNumbers_popup_menu %X %Y %x %y break" bind $lineNumbers "$this scroll scroll -20 units; break" bind $lineNumbers "$this scroll scroll +20 units; break" bindtags $lineNumbers [list $lineNumbers . all] # Set event bindings for "Icon border" bind $iconBorder " $parentObject filelist_editor_selected $this focus -force $editor $this iconBorder_click %x %y break" bind $iconBorder " $parentObject filelist_editor_selected $this focus -force $editor $this iconBorder_popup_menu %X %Y %x %y break" bind $iconBorder "$this scroll scroll -20 units; break" bind $iconBorder "$this scroll scroll +20 units; break" bindtags $iconBorder [list $iconBorder . all] # Finalize initialization $editor configure -yscrollcommand "$this scrollSet" set object_initialized 1 change_RO_MODE $ro_mode # Start watching for changes in the file FSnotifications::watch $fullFileName [list ::Editor::file_change_notif $this] } ## Object destructor destructor { if {$editor_to_use} { kill_childern } else { # Stop autosave timer catch { after cancel $autosave_timer } # Cancel highlight dialog timer if {$finishigh_hg_dlg_tmr != {}} { after cancel $finishigh_hg_dlg_tmr } # Unregister statusbar tips menu_Sbar_remove $menu menu_Sbar_remove $IB_menu menu_Sbar_remove $LN_menu } # Destroy main frame destroy $ed_sc_frame } ## Adjust number of lines (height) in the editor text widget # This function ensures that the editor text widget height conforms to #+ height of its scrollbar / line_height # @return void private method adjust_editor_height {} { set editor_height [$editor cget -height] set nh [expr {int([winfo height $scrollbar] / $defaultCharHeight)}] if {$nh == $editor_height} { return } $editor configure -height $nh $lineNumbers configure -height $nh $iconBorder configure -height $nh } ## Refresh color setting (excluding highlightind) # @return void public method change_colors {} { if {$editor_to_use} {return} $lineNumbers configure -bg $lineNumbers_bg -fg $lineNumbers_fg $left_frame_R configure -bg $lineNumbers_bg $iconBorder configure -bg $iconBorder_bg $left_frame_L configure -bg $iconBorder_bg $editor configure -bg $normal_text_bg $top_frame.f configure -bg $normal_text_bg } ## Refresh font setting (excluding highlightind) # @return void public method refresh_font_settings {} { if {$editor_to_use} {return} # Set new font specification variables set defaultCharHeight_org $defaultCharHeight set defaultFont [font create -size -$fontSize -family $fontFamily] set bold_font [font create -size -$fontSize -family $fontFamily -weight {bold}] set italic_font [font create -size -$fontSize -family $fontFamily -slant {italic}] if {[font metrics $bold_font -displayof $editor -linespace] < [font metrics $italic_font -displayof $editor -linespace]} { set defaultFont_bold $italic_font } else { set defaultFont_bold $bold_font } set defaultCharWidth [font measure $defaultFont_bold -displayof $editor { }] set defaultCharHeight [font metrics $defaultFont_bold -displayof $editor -linespace] # Remove all text tags foreach tag [$editor tag names] { if {[lsearch { sel tag_current_line tag_bookmark tag_breakpoint tag_breakpoint_INVALID tag_simulator_curr tag_error_line } $tag] != -1 } then { break } $editor tag remove $tag 1.0 end } # Change fonts and tab width set tab_width_un [expr {$tab_width * [font measure $defaultFont_bold 0]}] $iconBorder configure -font $defaultFont_bold $lineNumbers configure -font $defaultFont_bold $editor configure -font $defaultFont_bold -tabs [list $tab_width_un left] $lineNumbers tag configure right -justify right $lineNumbers tag configure center -justify center $lineNumbers tag raise center right $iconBorder tag configure center -justify center # Enable writing to the left border $iconBorder configure -state normal # Adjust bookmark images if {$defaultCharHeight_org != $defaultCharHeight} { set indexes {} if {$defaultCharHeight_org < 9} { set idx 1.0 set idx_prev $idx while {1} { set idx [$iconBorder search -exact -- {*} $idx] if {$idx == {}} {break} if {[$iconBorder compare $idx_prev >= $idx]} {break} lappend indexes $idx set idx_prev $idx set idx [$iconBorder index "$idx+1c"] } } else { foreach img [$iconBorder image names] { lappend indexes [$iconBorder index $img] } } if {$defaultCharHeight < 9} { foreach idx $indexes { $iconBorder delete $idx "$idx+1c" $iconBorder insert $idx {*} } } else { if {$defaultCharHeight < 15} { set image {dot} } else { set image {bookmark} } foreach idx $indexes { $iconBorder delete $idx "$idx+1c" $iconBorder image create $idx \ -image ::ICONS::16::$image \ -align center } } } # Disable writing to the left border $iconBorder configure -state disabled # Reset line wrap settings set highlighted_lines [string repeat 0 [string bytelength $highlighted_lines]] update idletasks highlight_visible_area # Adjust editor height adjust_editor_height } ## Adjust Insert/Overwrite label on status bar # @return void private method adjust_INS_OVR_label {} { if {$ins_ovr_mode} { $ins_mode_lbl configure -text [mc "INS"] -fg #000000 $editor configure -blockcursor 0 } else { $ins_mode_lbl configure -text [mc "OVR"] -fg #FF0000 $editor configure -blockcursor 1 } } ## This function should be called after each column change # -- Close popup completion menu # @return void public method resetUpDownIndex {} { set lastUpDownIndex 0 } ## Restore tags "Bookmark" and "Error" on the given line # @parm Int line - line number # @return void private method restore_line_markers {line} { # Restore bookmark if {[lindex $bookmarks $line] == 1} { $editor tag add tag_bookmark $line.0 "$line.0+1l" } # Restore tag error if { $prog_language != 2 && [llength [$editor tag nextrange tag_error $line.0 "$line.0 lineend"]] } then { $editor tag add tag_error_line $line.0 "$line.0+1l" } } ## Determinate whether editor text has been modified # and adjust internal variables # @parm bool force - 1: "I'm sure it has been modified !" # 0: "discover it automatically" # @return bool - a new modified flag or {} public method recalc_status_modified {force} { # Modified if {[$editor edit modified] || $force} { # Adjust editor status bar $Sbar_image configure \ -image ::ICONS::16::filesave \ -helptext [mc "File has been modified, click to save"] pack $Sbar_image -side left # Set modified flag set modified 1 # Start autosave timer if {$autosave} { catch { after cancel $autosave_timer } set autosave_timer [after [expr {$autosave * 60000}] "catch {$this save}"] } # Not modifed } else { # Adjust editor status bar pack forget $Sbar_image # Set modified flag set modified 0 # Stop autosave timer catch { after cancel $autosave_timer } } ::X::adjust_title # Return modified flag return $modified } ## Call ::configDialogues::mkDialog $args # @return void public method configDialogues_mkDialog args { ::configDialogues::editor::mkDialog $args } ## Recalculate variables related to bookmarks, line numbers and list of highlighted lines # @parm Bool force=1 - perform recalcutaion even if length of text wasn't changed # @return bool - 0: failed; 1: successful public method recalc_left_frame {{force 0}} { if {$editor_to_use} {return} # Determinate editor lines count and End index set End [$editor index end] set Tlines [expr {int($End)}] # Current line number -> Actline set insert [$editor index insert] set Actline [expr {int($insert)}] # Return if lines count has not been changed if {!$force && $lastEnd == $Tlines} { return 0 } incr Tlines -1 # Determinate iconBorder lines count - 1 set Ilines [expr {int([$iconBorder index end]) - $number_of_wraps - 1}] # Remove wrap markers from line numbers if {$number_of_wraps && ($Ilines != $Tlines)} { $lineNumbers configure -state normal set remaining $number_of_wraps set i 1 foreach wrap $map_of_wraped_lines { if {$wrap > 0} { $lineNumbers delete $i.0 $i.0+${wrap}l incr remaining -$wrap } if {!$remaining} {break} incr i } } ## Some lines have been removed if {$Ilines > $Tlines} { # Determinate how many lines should be removed regexp {\d+$} $insert cur_line_col if {$cur_line_col != 0} { set Actline_m1 $Actline incr Actline restore_line_markers $Actline_m1 } set diff $Actline incr diff -$Tlines incr diff $Ilines # Delete bookmark icon(s) from left bar $iconBorder configure -state normal set Actline_tmp $Actline set diff_tmp $diff if {$number_of_wraps} { set remaining $number_of_wraps for {set i 1} {$i < $diff} {incr i} { set wrap [lindex $map_of_wraped_lines $i] if {$wrap < 0} { set wrap 0 } incr diff_tmp $wrap if {$i < $Actline} { incr Actline_tmp $wrap } incr remaining -$wrap if {!$remaining} {break} } } $iconBorder delete $Actline_tmp.0 $diff_tmp.0 $iconBorder configure -state disabled # Unregister bookmarks for deletion incr diff -1 set bookmarks [lreplace $bookmarks $Actline $diff] set breakpoints [lreplace $breakpoints $Actline $diff] for {set i $Actline} {$i <= $diff} {incr i} { set number_of_wraps [expr {$number_of_wraps - [lindex $map_of_wraped_lines $i]}] } set map_of_wraped_lines [lreplace $map_of_wraped_lines $Actline $diff] set highlighted_lines [string replace $highlighted_lines $Actline $diff] # Adjust the right panel $parentObject rightPanel_remove_bookmarks $Actline $diff $parentObject rightPanel_remove_breakpoints $Actline $diff $parentObject rightPanel_shift_symbols $Actline [expr {$Actline - $diff - 1}] # rewrite breakpoints rewrite_breakpoint_tags 1 ## Some lines have been added } elseif {$Ilines < $Tlines} { # Determinate how many lines should be added set diff [expr {$Tlines - $Ilines}] set ins [string repeat "\n" $diff] set BMStr [string range [string repeat {0 } $diff] 0 end-1] set insIndex $Actline incr insIndex -$diff if {$insIndex == 0} {incr insIndex} set insLineEnd [$editor index "$insIndex.0 lineend"] regexp {\d+$} $insLineEnd ins_line_col set insIndex_1 $insIndex incr insIndex_1 if {$ins_line_col != 0} { # Remove tag "Bookmark" if {[lindex $bookmarks $insIndex] == 1} { $editor tag remove tag_bookmark $insIndex.0 [expr {$Actline + 1}].0 } # Adjust insert index incr insIndex incr insIndex_1 # Prepare lists if {[string length $highlighted_lines] == $insIndex} { append highlighted_lines 0 } if {[llength $bookmarks] == $insIndex} { lappend bookmarks 0 } if {[llength $breakpoints] == $insIndex} { lappend breakpoints 0 } if {[llength $map_of_wraped_lines] == $insIndex} { lappend map_of_wraped_lines 0 } # Adjust list of highlighted lines set highlighted_lines [string replace $highlighted_lines \ [expr {$insIndex - 1}] [expr {$insIndex - 1}] \ [string repeat 0 [expr {$diff + 1}]]] # Adjust bookmark and breakpoint lists set map_of_wraped_lines [linsert $map_of_wraped_lines $insIndex $BMStr] set bookmarks [linsert $bookmarks $insIndex $BMStr] set breakpoints [linsert $breakpoints $insIndex $BMStr] regsub -all {[\{\}]} $map_of_wraped_lines {} map_of_wraped_lines regsub -all {[\{\}]} $bookmarks {} bookmarks regsub -all {[\{\}]} $breakpoints {} breakpoints # Shift bookmarks and breakpoints on the right panel $parentObject rightPanel_shift_bookmarks $insIndex $diff $parentObject rightPanel_shift_breakpoints $insIndex $diff $parentObject rightPanel_shift_symbols $insIndex $diff if {[lindex $bookmarks [expr {$insIndex - 1}]] == 1} { $editor tag add tag_bookmark [expr {$insIndex - 1}].0 $insIndex.0 } } else { # Adjust list of lighted lines set highlighted_lines [string replace \ $highlighted_lines $insIndex $insIndex \ [string repeat 0 [expr {$diff + 1}]]] # Adjust bookmark and breakpoint lists set map_of_wraped_lines [linsert $map_of_wraped_lines $insIndex $BMStr] set bookmarks [linsert $bookmarks $insIndex $BMStr] set breakpoints [linsert $breakpoints $insIndex $BMStr] regsub -all {[\{\}]} $map_of_wraped_lines {} map_of_wraped_lines regsub -all {[\{\}]} $bookmarks {} bookmarks regsub -all {[\{\}]} $breakpoints {} breakpoints $parentObject rightPanel_shift_bookmarks $insIndex $diff $parentObject rightPanel_shift_breakpoints $insIndex $diff $parentObject rightPanel_shift_symbols $insIndex $diff } $iconBorder configure -state normal if {$number_of_wraps} { set insIndex_tmp $insIndex for {set i 1} {$i < $insIndex_tmp} {incr i} { incr insIndex [lindex $map_of_wraped_lines $i] } } $iconBorder insert $insIndex.0 $ins $iconBorder configure -state disabled # rewrite breakpoints rewrite_breakpoint_tags 1 } ## Recalculate Line Numbers # Prepare Line Numbers if {$Tlines != [expr {int([$lineNumbers index end]) - 1}]} { # Enable the widget $lineNumbers configure -state normal } # Determinate LineNumbers lines count - 1 set Llines [expr {int([$lineNumbers index end])}] incr Llines -1 if {$Llines > $Tlines} { ;# too many lines -> remove some ones $lineNumbers delete $End end } elseif {$Llines < $Tlines} { ;# not enough lines -> add some ones # Create string to insert to Line Numbers set ins {} for {set i [expr {$Llines + 1}]} {$i <= $Tlines} {incr i} { append ins "\n$i" } # Insert it at the end of widget and adjust widget width $lineNumbers insert end $ins } # Finalize if {$Llines != $Tlines} { # Adjust widget width $lineNumbers configure -width [string length [expr {int([$lineNumbers index end]) - 1}]] # Restore wrap markers if {$number_of_wraps} { set remaining $number_of_wraps for {set i [expr {[llength $map_of_wraped_lines] - 1}]} {$i > 0} {incr i -1} { set wrap [lindex $map_of_wraped_lines $i] if {$wrap > 0} { set ln [expr {$i + 1}] $lineNumbers insert $ln.0 [string repeat "$wrap_char\n" $wrap] $lineNumbers tag add center $ln.0 [expr {$ln + $wrap}].0 incr remaining -$wrap } if {!$remaining} {break} } } # Disable Line Numbers $lineNumbers configure -state disabled } scrollSet [lindex [$editor yview] 0] [lindex [$editor yview] 1] $lineNumbers tag add right 1.0 end $iconBorder tag add center 1.0 end # Parse the current line parse $Actline highlight_visible_area # Save last lines count set lastEnd [expr {int($End)}] # done ... return 1 } ## Select appropriate item in right panel lists (bookmarks and breapoints) # @parm Int lineNumber - current line # @return void public method rightPanel_adjust {lineNumber} { # Adjust list of bookmarks if {[lindex $bookmarks $lineNumber] == 1} { $parentObject rightPanel_bm_select $lineNumber } else { $parentObject rightPanel_bm_unselect } # Adjust list of breakpoints if {[lindex $breakpoints $lineNumber] == 1} { $parentObject rightPanel_bp_select $lineNumber } else { $parentObject rightPanel_bp_unselect } # Adjust list of symbols $parentObject rightPanel_sm_select $lineNumber } ## Line wrapping manager - variant 2 # Adjust map of wrapped lines and left border to wrap of the specified line # This function using function 'get_count_of_lines' (slow) # @parm Int line_number - Line number # @return Bool - result private method wrap_mgr2 {line_number} { # Check if editor is properly initialized if {$editor_width <= 0 || $map_of_wraped_lines == {}} {return 1} # Not empty line if {[$editor compare [$editor index "$line_number.0 linestart"] != "$line_number.0 lineend"]} { set new_wrap [get_count_of_lines $line_number.0 "$line_number.0 lineend"] incr new_wrap -1 # Empty line } else { set new_wrap 0 } # Determinate the current wrap factor set wrap [lindex $map_of_wraped_lines $line_number] if {$new_wrap == $wrap} {return 1} # Adjust map of wrapped lines if {$line_number >= [llength $map_of_wraped_lines]} { Configure return } else { lset map_of_wraped_lines $line_number $new_wrap } # Adjust line number set line_number_tmp $line_number for {set i 1} {$i < $line_number_tmp} {incr i} { incr line_number [lindex $map_of_wraped_lines $i] } incr line_number # Adjust left border and number of line wraps set scroll_in_progress 1 $lineNumbers configure -state normal $iconBorder configure -state normal if {$new_wrap > $wrap} { set diff [expr {$new_wrap - $wrap}] incr number_of_wraps $diff $lineNumbers insert $line_number.0 [string repeat "$wrap_char\n" $diff] $iconBorder insert $line_number.0 [string repeat "\n" $diff] $lineNumbers tag add center $line_number.0 [expr {$line_number + $diff}].0 } elseif {$new_wrap < $wrap} { set diff [expr {$wrap - $new_wrap}] incr number_of_wraps $diff $lineNumbers delete $line_number.0 $line_number.0+${diff}l $iconBorder delete $line_number.0 $line_number.0+${diff}l } $lineNumbers configure -state disabled $iconBorder configure -state disabled set scroll_in_progress 0 # Success return 1 } ## Line wrapping manager - variant 1 # Adjust map of wrapped lines and left border to wrap of the specified line # This function is using method 'dlineinfo' (fast) # @parm Int line_number - Line number # @return Bool - result private method wrap_mgr {line_number} { # Check if editor is properly initialized if {$editor_width <= 0 || $map_of_wraped_lines == {}} {return 1} # Deterinate current and previous wrap factor set new_wrap [lindex [$editor dlineinfo $line_number.0+1l] 1] set wrap [lindex [$editor dlineinfo $line_number.0] 1] if {$wrap == {} || $new_wrap == {}} { return 0 } set new_wrap [expr {($new_wrap - $wrap) / $defaultCharHeight - 1}] set wrap [lindex $map_of_wraped_lines $line_number] if {$new_wrap == $wrap} {return 1} # Adjust map of wrapped lines if {$line_number >= [llength $map_of_wraped_lines]} { Configure return } else { lset map_of_wraped_lines $line_number $new_wrap } # Adjust line number set line_number_tmp $line_number for {set i 1} {$i < $line_number_tmp} {incr i} { incr line_number [lindex $map_of_wraped_lines $i] } incr line_number # Adjust left border set scroll_in_progress 1 $lineNumbers configure -state normal $iconBorder configure -state normal if {$new_wrap > $wrap} { set diff [expr {$new_wrap - $wrap}] incr number_of_wraps $diff $lineNumbers insert $line_number.0 [string repeat "$wrap_char\n" $diff] $iconBorder insert $line_number.0 [string repeat "\n" $diff] $lineNumbers tag add center $line_number.0 [expr {$line_number + $diff}].0 } elseif {$new_wrap < $wrap} { set diff [expr {$wrap - $new_wrap}] set number_of_wraps [expr {$number_of_wraps - $diff}] $lineNumbers delete $line_number.0 $line_number.0+${diff}l $iconBorder delete $line_number.0 $line_number.0+${diff}l } $lineNumbers configure -state disabled $iconBorder configure -state disabled set scroll_in_progress 0 # Success return 1 } ## Reset map of wrapped lines and count of line wraps # @return void public method reset_wraped_lines {} { set number_of_wraps 0 set map_of_wraped_lines [string repeat {0 } [expr {int([$editor index end])}]] return } ## Create highlight dialog # @return void public method open_highlight_wait_dialog {} { # Create dialog frame set finishigh_hg_dlg_wdg [frame $ed_sc_frame.hg_dialog \ -bg {#EEEEFF} -bd 2 -relief raised \ ] # Create heder label pack [label $finishigh_hg_dlg_wdg.label \ -text [mc "Finishing highlight"]\ -bg {#EEEEFF} -fg {#0000FF} \ ] -fill x # Create progress bar pack [ttk::progressbar $finishigh_hg_dlg_wdg.progressbar\ -mode determinate -orient horizontal \ -maximum $finishigh_hg_dlg_max \ -variable ::Editor::finishigh_hg_dlg_const \ ] -fill x -pady 5 -padx 5 # Show dialog place $finishigh_hg_dlg_wdg \ -width 200 -height 45 -in $ed_sc_frame \ -x -100 -y -25 -relx 0.5 -rely 0.5 raise $finishigh_hg_dlg_wdg grab $finishigh_hg_dlg_wdg update } ## Close highlight dialog # @return void private method close_highlight_wait_dialog {} { if {$finishigh_hg_dlg_tmr != {}} { after cancel $finishigh_hg_dlg_tmr set finishigh_hg_dlg_tmr {} } if {[winfo exists $finishigh_hg_dlg_wdg]} { grab release $finishigh_hg_dlg_wdg destroy $finishigh_hg_dlg_wdg } } ## Perform syntax highlight for C language on specified line # @return void private method c_syntax_highlight {lineNumber} { # Get highlight status of the previous line if {$lineNumber > 1} { set highlight_status [string index $highlighted_lines [expr {$lineNumber - 1}]] if {$highlight_status == {}} { set highlight_status 0 } } else { set highlight_status 1 } # Highlighted all lines before the current one if {!$highlight_status} { # determinate highlight status of previous line set i [string first 0 $highlighted_lines 1] set highlight_status [string index $highlighted_lines [expr {$i - 1}]] if {$highlight_status == {}} { set highlight_status 1 } # Highlight dialog set finishigh_hg_dlg_const 0 set finishigh_hg_dlg_max [expr {($lineNumber - $i) / 500}] if {$object_initialized && $finishigh_hg_dlg_tmr == {}} { set finishigh_hg_dlg_tmr [after 500 "$this open_highlight_wait_dialog"] } # Highlight preceeding lines for {set j 0} {$i < $lineNumber} {incr i; incr j} { highlight_trailing_space $i set highlight_status [CsyntaxHighlight::highlight $editor $i $highlight_status] autocompletion_c_syntax_analyze $i set highlighted_lines [string replace $highlighted_lines $i $i $highlight_status] if {$j > 500} { set j 0 incr finishigh_hg_dlg_const update } } # Close highlight dialog if {$object_initialized} { close_highlight_wait_dialog } } # Highlight this line set i $lineNumber set last_visible_line [expr {int([lindex [$editor yview] 1] * int([$editor index end])) + 1}] # Highlight all line after the current one until it is not nessesary while {1} { autocompletion_maybe_important_change $i.0 $i.0 set highlight_status_org [string index $highlighted_lines $i] set highlight_status [CsyntaxHighlight::highlight $editor $i $highlight_status] autocompletion_c_syntax_analyze $i if {$i == $lineNumber} { manage_autocompletion_list $i } set highlighted_lines \ [string replace $highlighted_lines $i $i $highlight_status] if { $highlight_status_org != 0 && $highlight_status_org != {} && $highlight_status_org != $highlight_status } then { incr i } else { break } if {$i > $last_visible_line} { set highlighted_lines \ [string replace $highlighted_lines $i end \ [string repeat 0 [expr { \ [string length $highlighted_lines] - $i }] \ ] \ ] break } } } ## Highlight trailing space # @parm Int lineNumber - number of the target line # @return void private method highlight_trailing_space {lineNumber} { $editor tag remove tag_trailing_space $lineNumber.0 [list $lineNumber.0 lineend] if {$hg_trailing_sp && [regexp {[\t  ]+$} [$editor get $lineNumber.0 [list $lineNumber.0 lineend]] space]} { $editor tag add tag_trailing_space \ [list $lineNumber.0 lineend]-[string length $space]c \ [list $lineNumber.0 lineend] } } ## Parse given line # Restore highlight, recalculate counters on status bar, adjust right panel # @parm Int lineNumber - Number of the target line # @parm Bool force_spell_check - Force spelling check # @return Bool - result from wrap manager public method parse {lineNumber {force_spell_check 0}} { # Check if the given line number is valid if {$lineNumber >= int([$editor index end])} { set lineNumber [expr {int([$editor index end]) - 1}] } # Is the given line number is the current line ? if {int([$editor index insert]) == $lineNumber} { set curLine 1 } else { set curLine 0 } # Highlight trailing space highlight_trailing_space $lineNumber # Basic validation if {!$curLine || !${::ASMsyntaxHighlight::validation_L1}} { ## Restore highlight # Assembly language if {$prog_language == 0} { ASMsyntaxHighlight::highlight $editor $lineNumber # Adjust list of highlighted lines if {[string index $highlighted_lines $lineNumber] == 0} { set highlighted_lines \ [string replace $highlighted_lines $lineNumber $lineNumber 1] } # C language } elseif {$prog_language == 1} { c_syntax_highlight $lineNumber # Code listing } elseif {$prog_language == 2} { LSTsyntaxHighlight::highlight $editor $lineNumber # Adjust list of highlighted lines if {[string index $highlighted_lines $lineNumber] == 0} { set highlighted_lines \ [string replace $highlighted_lines $lineNumber $lineNumber 1] } # ASX8051 } elseif {$prog_language == 3} { R_ASMsyntaxHighlight::highlight $editor $lineNumber # Adjust list of highlighted lines if {[string index $highlighted_lines $lineNumber] == 0} { set highlighted_lines \ [string replace $highlighted_lines $lineNumber $lineNumber 1] } # No highlighting } else { set highlight_status 1 } manage_autocompletion_list $lineNumber # Finalize validation validate_line $lineNumber 0 } # Check spelling if not current line and if enabled if {!$curLine || $force_spell_check} { spellcheck_check_all $lineNumber 1 } # Recalculate counters on status bar if {$curLine} { recalc_status_counter {} } # Put tag "tag_error_line" (but not for code listing) if {$prog_language != 2} { set add 0 set remove 0 if {${::ASMsyntaxHighlight::validation_L0}} { if {[llength [$editor tag nextrange tag_error $lineNumber.0 [list $lineNumber.0 lineend]]]} { set add 1 } else { set remove 1 } # Remove tag "tag_error_line" } elseif {!${::ASMsyntaxHighlight::validation_L1}} { set remove 1 } if {$add || $remove} { $iconBorder configure -state normal if {$add} { $editor tag add tag_error_line $lineNumber.0 $lineNumber.0+1l if {$defaultCharHeight >= 15} { set lineNumber_i [wrap_aux_idx2line $lineNumber] $iconBorder delete $lineNumber_i.0 $lineNumber_i.2 if {[lindex $bookmarks $lineNumber] == 1} { set image {bm_ex} } else { set image {exclamation} } $iconBorder image create $lineNumber_i.0 \ -image ::ICONS::16::$image \ -align center } } else { $editor tag remove tag_error_line $lineNumber.0 $lineNumber.0+1l if {$defaultCharHeight >= 15} { set lineNumber_i [wrap_aux_idx2line $lineNumber] $iconBorder delete $lineNumber_i.0 $lineNumber_i.2 if {[lindex $bookmarks $lineNumber] == 1} { $iconBorder image create $lineNumber_i.0 \ -image ::ICONS::16::bookmark \ -align center } } } $iconBorder configure -state disabled } } if {$curLine} { resetUpDownIndex recalc_status_modified 0 } # Agjust right panel rightPanel_changeLineContent $lineNumber set result [wrap_mgr $lineNumber] if {!$result} { wrap_mgr2 $lineNumber } return $result } ## Finalize syntax validation on the given line (validates operands only) # @parm Int line - Number of line in source code # @parm Bool ins_det=1 - Affect panel "Instruction details" # @return void private method validate_line {line {ins_det 1}} { # Check if basic validation is enabled if {!${::ASMsyntaxHighlight::validation_L0}} { return } # Validate breakpoint first if {[is_breakpoint_valid $line]} { mark_breakpoint_as_valid $line } else { mark_breakpoint_as_invalid $line } # Detereminate range of instruction tag set ins_range [$editor tag nextrange tag_instruction $line.0 "$line.0 lineend"] # Detereminate instruction name if {[llength $ins_range]} { set instruction [$editor get [lindex $ins_range 0] [lindex $ins_range 1]] set instruction [string tolower $instruction] if {[lsearch -ascii -exact ${CompilerConsts::AllInstructions} $instruction] == -1} { return } } else { return } # Unset selection in "Instruction details" tab on the Right Panel if {$ins_det} { $parentObject rightPanel_ins_unselect } # Check for allowed number of operands if { ${::ASMsyntaxHighlight::operands_count} != [lindex $::CompilerConsts::InstructionDefinition($instruction) 0] } then { $editor tag add tag_error [lindex $ins_range 0] [lindex $ins_range 1] return } # Handle instruction without operands if {!${::ASMsyntaxHighlight::operands_count}} { if {$ins_det} { $parentObject rightPanel_ins_select 1 0 } return } # Check for valid operand types if {${::ASMsyntaxHighlight::validation_L1}} { # Local variables set matches {} ;# List of matched operand sets set matches0 {} ;# List of not perfectly matched operand sets # Iterate over simple definitions and find matches set operands ${::ASMsyntaxHighlight::opr_types} set operands_org $operands for {set i 0} {$i < 3} {incr i} { set idx 0 foreach opr_set $CompilerConsts::SimpleOperandDefinitions($instruction) { if {$opr_set == $operands} { if {$i} { lappend matches0 $idx } else { lappend matches $idx } } incr idx } # Try to change operand set without changing meaning while {$i < 2} { if { [lindex $operands $i] != {A} && [lindex $operands $i] != {C} } then { incr i continue } set operands $operands_org if {[lindex $operands $i] == {A}} { lset operands $i {D} } elseif {[lindex $operands $i] == {C}} { lset operands $i {D} } break } } # Highlight corresponding operand sets in "Instruction details" if {[llength $matches] || [llength $matches0]} { if {$ins_det} { if {[llength $matches]} { $parentObject rightPanel_ins_select 1 $matches } if {[llength $matches0]} { $parentObject rightPanel_ins_select 0 $matches0 } } } else { $editor tag add tag_error [lindex $ins_range 0] [lindex $ins_range 1] } # Check for legal usege of SFRs and SFBs set sfr_range_start $line.0 set sfr_range {} set sfr_name {} while {1} { # Try to find SFR set sfr_range [$editor tag nextrange tag_sfr $sfr_range_start [list $line.0 lineend]] if {![llength $sfr_range]} { break } # Check for its legality set sfr_range_start [lindex $sfr_range 1] set sfr_name [$editor get [lindex $sfr_range 0] [lindex $sfr_range 1]] if {[string index $sfr_name 0] == {/}} { set sfr_name [string range $sfr_name 1 end] } if { [lsearch -ascii -exact \ [$parentObject cget -available_SFR] \ [string toupper $sfr_name] \ ] == -1 } then { $editor tag add tag_error [lindex $sfr_range 0] [lindex $sfr_range 1] } } } } ## Adjust content of the given line in list of bookmarks and list of breakpoint (in right panel) # This function should be called after change in content of a line # @parm Int lineNumber - line number # @return void private method rightPanel_changeLineContent {lineNumber} { # Adjust list of bookmarks if {[lindex $bookmarks $lineNumber] == 1} { $parentObject rightPanel_remove_bookmark $lineNumber $parentObject rightPanel_add_bookmark $lineNumber $parentObject rightPanel_bm_select $lineNumber } # Adjust list of breakpoints if {[lindex $breakpoints $lineNumber] == 1} { $parentObject rightPanel_remove_breakpoint $lineNumber $parentObject rightPanel_add_breakpoint $lineNumber $parentObject rightPanel_bp_select $lineNumber } } ## Convert editor line number to left border line number # @parm Int idx - line number (in editor) # @return Int - line number (in left border) private method wrap_aux_idx2line {idx} { if {$number_of_wraps} { set remaining $number_of_wraps set line $idx for {set i 1} {$i < $idx} {incr i} { set wrap [lindex $map_of_wraped_lines $i] if {$wrap < 0} { set wrap 0 } incr line $wrap incr remaining -$wrap if {!$remaining} {break} } return $line } else { return $idx } } ## Convert left border line number to editor line number # @parm Int idx - line number (in left border) # @return Int - line number (in editor) private method wrap_aux_line2idx {line} { if {$number_of_wraps} { set i 1 while {1} { incr line [expr { -1 - [lindex $map_of_wraped_lines $i]}] if {$line < 1 || $line == {}} {break} incr i } return $i } else { return $line } } ## Focus on the editor widget # @return void public method focus_in {} { focus -force $editor } ## Get ranges for all highlighting tags on the given line # @parm Int lineNum - line number # @return List - tag ranges {{tag_name {start_idx end_idx ...}} ... } public method getTagsRanges {lineNum} { # Initialize resulting ranges set ranges {} # Determnate end index set endIdx [$editor index "$lineNum.0 lineend"] # Iterate over defined highlighting tags foreach tag [concat \ ${ASMsyntaxHighlight::highlight_tags} \ ${CsyntaxHighlight::highlight_tags} \ ${LSTsyntaxHighlight::highlight_tags} \ {tag_macro_def tag_constant_def} \ ] { # Determinate tag name set tag [lindex $tag 0] # Determinate range of the tag set range {} while {1} { # Determinate start index set startIdx [lindex $range [expr {[llength $range] - 1}]] if {$startIdx == {}} { set startIdx $lineNum.0 } # Gain tag range set rng [$editor tag nextrange $tag $startIdx $endIdx] if {![llength $rng]} {break} # Append range append range $rng append range { } } set range [string range $range 0 {end-1}] # Skip empty ranges if {[llength $range] == 0} {continue} # Append the range to result lappend tag $range lappend ranges $tag } # Return resulting range return $ranges } ## Make breakpoint on the specified line as VALID (reachable) # @param Int line_number - line number # @return void private method mark_breakpoint_as_valid {line_number} { if {[lindex $breakpoints $line_number] != 1} { return } set line_number [wrap_aux_idx2line $line_number] $lineNumbers tag remove tag_breakpoint_INVALID $line_number.0 [list $line_number.0+1l] $lineNumbers tag add tag_breakpoint $line_number.0 [list $line_number.0+1l] } ## Make breakpoint on the specified line as INVALID (unreachable) # @param Int line_number - line number # @return void private method mark_breakpoint_as_invalid {line_number} { if {[lindex $breakpoints $line_number] != 1} { return } set line_number [wrap_aux_idx2line $line_number] $lineNumbers tag remove tag_breakpoint $line_number.0 [list $line_number.0+1l] $lineNumbers tag add tag_breakpoint_INVALID $line_number.0 [list $line_number.0+1l] } ## Determinate whether breakpoint on the specified line is valid or could be #+ valid in case there is no breakpoint yet # @param Int line_number - line number # @return Bool - 1 == is valid; 0 == is NOT valid private method is_breakpoint_valid {line_number} { if {$prog_language == 2 || $prog_language == 3} { return 0 } if { !$prog_language && ${::ASMsyntaxHighlight::validation_L0} && ![llength [$editor tag nextrange tag_instruction $line_number.0 [list $line_number.0 lineend]]] && ![llength [$editor tag nextrange tag_macro $line_number.0 [list $line_number.0 lineend]]] } then { return 0 } return 1 } ## Restore breakpoint tags in "Line numbers" # @parm Bool ignore_wrap=0 - Ignore line wrapping (see recalc_left_frame) # @return void private method rewrite_breakpoint_tags {{ignore_wrap 0}} { if {$editor_to_use} {return} # Enable line numbers $lineNumbers configure -state normal # Remove current tags $lineNumbers tag remove tag_breakpoint 1.0 end $lineNumbers tag remove tag_breakpoint_INVALID 1.0 end # Restore tags if {!$ignore_wrap && $number_of_wraps} { set i 0 set line 0 foreach wrap $map_of_wraped_lines { if {[lindex $breakpoints $line] == 1} { if {[is_breakpoint_valid $line]} { $lineNumbers tag add tag_breakpoint $i.0 "$i.0+1l" } else { $lineNumbers tag add tag_breakpoint_INVALID $i.0 "$i.0+1l" } } incr wrap incr i $wrap incr line } } else { foreach line [lsearch -ascii -exact -all $breakpoints 1] { if {[is_breakpoint_valid $line]} { $lineNumbers tag add tag_breakpoint $line.0 "$line.0+1l" } else { $lineNumbers tag add tag_breakpoint_INVALID $line.0 "$line.0+1l" } } } # Disable line numbers $lineNumbers configure -state disabled } ## Define line markers (bookmark, breakpoint, simulator line, etc.) # @return void public method define_line_markers {} { if {$editor_to_use} {return} # Iterate over definition foreach tag_definition $line_markers { # Create tag in editor $editor tag configure [lindex $tag_definition 0] -background [lindex $tag_definition 1] # Create tag in line numbers if {[lsearch {tag_breakpoint_INVALID tag_breakpoint} [lindex $tag_definition 0]] != -1} { $lineNumbers tag configure [lindex $tag_definition 0] \ -background [lindex $tag_definition 1] -relief raised -borderwidth 1 } } $editor tag configure tag_current_line -borderwidth 0 -relief flat } ## Create bindings for defined key shortcuts # @return void public method shortcuts_reevaluate {} { # Unset previous configuration foreach key $set_shortcuts { bind $editor <$key> {} } set set_shortcuts {} # Iterate over shortcuts definition foreach block ${::SHORTCUTS_LIST} { # Determinate category set category [lindex $block 0] if {[lsearch $shortcuts_cat $category] == -1} {continue} # Determinate definition list and its length set block [lreplace $block 0 2] set len [llength $block] # Iterate over definition list and create bindings for {set i 0; set j 1} {$i < $len} {incr i 2; incr j 2} { # Determinate key sequence set key [lindex $block $i] if {$key == {cmd_line}} { catch { bind $cmd_line <$::SHORTCUTS_DB($category:$key)> \ "$this cmd_line_focus; break" bind . <$::SHORTCUTS_DB($category:$key)> \ "\${::X::actualProject} cmd_line_on; break" } continue } if {[catch { set key $::SHORTCUTS_DB($category:$key) }]} then { continue } if {$key == {}} {continue} # Create and register new binding lappend set_shortcuts $key set cmd [subst [lindex $block [list $j 1]]] append cmd {;break} bind $editor <$key> $cmd } } } ## Define popup menu # @return void public method makePopupMenu {} { if {[winfo exists $menu]} {destroy $menu} menuFactory $EDITORMENU $menu 0 $cmd_prefix 0 {} [namespace current] if {[winfo exists $stat_menu]} {destroy $stat_menu} menuFactory $STATMENU $stat_menu 0 {::X::} 0 {} [namespace current] if {[winfo exists $IB_menu]} {destroy $IB_menu} menuFactory $IBMENU $IB_menu 0 "$this " 0 {} [namespace current] if {[winfo exists $LN_menu]} {destroy $LN_menu} menuFactory $LNMENU $LN_menu 0 "$this " 0 {} [namespace current] } ## Configure state of statusbar popup menu entries # @parm Bool split - Enable Spit vertial / horizontal or {} == keep previous value # @parm Bool close - Enable "Close current view" or {} == keep previous value # @parm Bool prev - Enable "Back" or {} == keep previous value # @parm Bool next - Enable "Forward" or {} == keep previous value # @return void public method configure_statusbar_menu {split close prev next} { if {[llength $statusbar_menu_config] != 4} { set statusbar_menu_config [list 1 1 1 1] } if {$split != {}} { lset statusbar_menu_config 0 [expr "$split"] } if {$close != {}} { lset statusbar_menu_config 1 [expr "$close"] } if {$prev != {}} { lset statusbar_menu_config 2 [expr "$prev"] } if {$next != {}} { lset statusbar_menu_config 3 [expr "$next"] } } ## Rewrite left site of editor status bar # @parm List coord={} - Relative mouse cursor coordinates ({%x,%y}) # {} == keyboard input (eg. leftArrow pressed) # @parm Bool perform_highlight=1 - Highlight current line and such things # @return void public method recalc_status_counter {{coord {}} {perform_highlight 1}} { if {$editor_to_use} {return} # # Procedure can executed only in normal editor mode # if {$frozen} {return} # Parse arguments if {$coord == {}} { set coord insert } else { set coord "@[lindex $coord 0],[lindex $coord 1]" } # Translate text index into number set Index [$editor index $coord] # Determinate line number and column set line [expr {int($Index)}] regexp {\d+$} $Index col # Adjust column number set lineText [$editor get "$Index linestart" $Index] set Index $col if {[regexp {\t} $lineText]} { set idx -1 set cor 0 while {1} { set idx [string first "\t" $lineText [expr {$idx + 1}]] if {$idx == -1 || $idx > $Index} {break} incr cor [expr {7 - (($idx + $cor) % 8)}] } incr col $cor } # Restore tag current line set tmp $last_cur_line incr tmp if {$perform_highlight || $last_cur_line != $line} { $editor tag remove tag_current_line 1.0 end set tmp $line incr tmp $editor tag add tag_current_line $line.0 $tmp.0 set last_cur_line $line } else { $editor tag add tag_current_line $line.0 $tmp.0 } # Restore highlight if {$perform_highlight && ${::ASMsyntaxHighlight::validation_L1}} { if {$prog_language == 0} { ASMsyntaxHighlight::highlight $editor $line } elseif {$prog_language == 1} { if {$line > 1 && [string index $highlighted_lines [expr {$line - 1}]] != 0} { c_syntax_highlight $line } elseif {$line == 1} { c_syntax_highlight 1 } } elseif {$prog_language == 2} { LSTsyntaxHighlight::highlight $editor $line } elseif {$prog_language == 3} { R_ASMsyntaxHighlight::highlight $editor $line } manage_autocompletion_list $line } # Highlight trailing space if {$perform_highlight} { highlight_trailing_space $line } # Adjust content of "Instruction details" on Right Panel adjust_instruction_details # Advanced validation if {$perform_highlight && ${::ASMsyntaxHighlight::validation_L1}} { validate_line $line } restore_line_markers $line # Change content of editor status bar incr col set total [expr {$lastEnd - 1}] set line_len [string length $line] set col_len [string length $col] set total_len [string length $total] if {$line_len < $total_len} { set line "[string repeat { } [expr {$total_len - $line_len}]]$line" } if {$col_len < 3} { set col "[string repeat { } [expr {3 - $col_len}]]$col" } $Sbar_row configure -text $line $Sbar_col configure -text $col $Sbar_total configure -text $total } ## Adjust content of "Instruction details" on Right Panel # @return void public method adjust_instruction_details {} { set ins_range [$editor tag nextrange tag_instruction {insert linestart} {insert lineend}] if {[llength $ins_range]} { $parentObject rightPanel_ins_change [$editor get [lindex $ins_range 0] [lindex $ins_range 1]] } else { set ins_range [$editor tag nextrange tag_directive {insert linestart} {insert lineend}] if {[llength $ins_range]} { $parentObject rightPanel_dir_change D [$editor get [lindex $ins_range 0] [lindex $ins_range 1]] } else { set ins_range [$editor tag nextrange tag_control {insert linestart} {insert lineend}] if {[llength $ins_range]} { $parentObject rightPanel_dir_change C [$editor get [lindex $ins_range 0] [lindex $ins_range 1]] } else { $parentObject rightPanel_ins_clear } } } } ## Determinate new cursor position when moving by one line up or down # @return TextIndex - New cursor position private method get_up_down_idx {up__down} { # Local variables set insertIndex [$editor index insert] ;# Insert index set lineNum [expr {int($insertIndex)}] ;# Line number # Line start if { !$lastUpDownIndex && $insertIndex == [$editor index {insert linestart}] } then { if {$up__down} { return [$editor index {insert-1l linestart}] } else { return [$editor index {insert+1l linestart}] } # Somewhere else } else { # Determinate true column number set col [text_index_to_column $insertIndex] # Determinate target column number if {!$lastUpDownIndex} { set lastUpDownIndex $col } else { set col $lastUpDownIndex } # Traslate column number to text index if {$up__down} { incr lineNum -1 } else { incr lineNum } return [$editor index $lineNum.[column_to_text_index $lineNum $col]] } } ## Translate text index (e.g. 5.11) to column number # @parm TextIndex insertIndex - Text index to translate # @return Int - Resulting column private method text_index_to_column {insertIndex} { set col [lindex [split $insertIndex {.}] 1] set lineText [$editor get [list $insertIndex linestart] $insertIndex] if {[string first "\t" $lineText] != -1} { set idx -1 set cor 0 while {1} { set idx [string first "\t" $lineText [expr {$idx + 1}]] if {$idx == -1} {break} incr cor [expr {7 - (($idx + $cor) % 8)}] } incr col $cor } return $col } ## Translate column number to text index # @parm Int lineNum - Line number # @parm Int col - Column number # @return TextIndex - Resulting insertIndex private method column_to_text_index {lineNum col} { if {!$col} { return 0 } set lineText [$editor get $lineNum.0 [list $lineNum.0 lineend]] if {[string first "\t" $lineText] != -1} { set col_x 0 set i 0 set l [string length $lineText] for {set i 0} {$i < $l} {incr i} { switch -- [string index $lineText $i] { "\t" { incr col_x [expr {8 - ($col_x % 8)}] } default { incr col_x } } if {$col_x >= $col} { if {($col_x - $col) < 2} { incr i } break } } return $i } else { return $col } } ## Adjust current selection (tag "sel") to block selection mode # @return void private method adjust_selection_to_block {} { # Nothing selected -> abort if {![llength [$editor tag nextrange sel 1.0]]} { return } # Get current selection shape set sel_range_s [$editor tag nextrange sel 1.0] set sel_range_e [$editor tag prevrange sel end] scan [lindex $sel_range_s 0] %d.%d row_s0 col_s0 scan [lindex $sel_range_s 1] %d.%d row_s1 col_s1 scan [lindex $sel_range_e 0] %d.%d row_e0 col_e0 scan [lindex $sel_range_e 1] %d.%d row_e1 col_e1 # This is only a speed improvement (may cause unexected probles) if {$row_s0 == $row_s1 && $row_e0 == $row_e1 && $col_s0 == $col_e0 && $col_s1 == $col_e1} { return } # Translate column numbers to real column numbers set col_s0 [text_index_to_column $row_s0.$col_s0] set col_s1 [text_index_to_column $row_s1.$col_s1] set col_e0 [text_index_to_column $row_e0.$col_e0] set col_e1 [text_index_to_column $row_e1.$col_e1] # Adjust column numbers if {$col_s0 > $col_s1} { set tmp $col_s0 set col_s0 $col_s1 set col_s1 $tmp } if {$col_e0 > $col_e1} { set tmp $col_e0 set col_e0 $col_e1 set col_e1 $tmp } # Adjust row numbers set row_s1 $row_s0 if {$row_s0 != $row_s1} { col_s0 $col_s1 } set row_e0 $row_e1 if {$row_e0 != $row_e1} { col_e1 $col_e0 } # Determinate width of the selected block if {abs($col_s1 - $col_s0) < abs($col_e1 - $col_e0)} { set width [expr {abs($col_s1 - $col_s0)}] } else { set width [expr {abs($col_e1 - $col_e0)}] } # Regerate selection tags $editor tag remove sel 0.0 end set col 0 for {set row $row_s0} {$row <= $row_e1} {incr row} { set col0 [column_to_text_index $row $col_s0] set col1 [column_to_text_index $row [expr {$col_s0 + $width}]] if {[$editor compare $row.$col0 >= [list $row.0 lineend]]} { continue } if {[$editor compare $row.$col1 > [list $row.0 lineend]]} { $editor tag add sel $row.$col0 [list $row.0 lineend] } else { $editor tag add sel $row.$col0 $row.$col1 } } } ## Define highlighting tags in editor text widget and command line text widget # @retrun void public method create_highlighting_tags {} { if {$editor_to_use} {return} if {$prog_language == 1} { CsyntaxHighlight::create_tags $editor $fontSize $fontFamily } elseif {$prog_language == 2} { LSTsyntaxHighlight::create_tags $editor $fontSize $fontFamily } ASMsyntaxHighlight::create_tags $editor $fontSize $fontFamily ASMsyntaxHighlight::create_tags $cmd_line $cmd_line_fontSize \ $cmd_line_fontFamily $cmd_line_highlighting refresh_highlighting_for_autocompletion } ## Create terminal emulator with external editor embedded into editor frame # IMPORTANT: This is only an auxiliary function for "recreate_terminal" # @parm String filename - Name of file to open with the external editor # @return void public method create_terminal {filename} { if {$terminal_created} {return} set terminal_created 1 if {$filename == {untitled}} { set filename {} } # Determinate editor command set opt {} switch -- $editor_to_use { 1 {set cmd {vim}} 2 { set cmd {emacs} set opt {-nw} } 3 {set cmd {nano}} 4 {set cmd {dav}} 5 {set cmd {le}} default { error "Unknown internal error in ::Editor::create_terminal($filename)" } } # Change directory set cur_dir [pwd] if {[catch { if {$filename == {}} { cd [$parentObject cget -projectPath] } else { cd [file dirname $filename] } }]} then { cd ~ } # Run embedded editor if {[catch { if {$opt == {}} { if {$filename == {}} { set pid [exec -- urxvt -embed [expr [winfo id $top_frame]] \ +sb -bg "$normal_text_bg" -b 0 -w 0 -sl 0 \ -fn "xft:$fontFamily:pixelsize=$fontSize" \ -e $cmd &] } else { set pid [exec -- urxvt -embed [expr [winfo id $top_frame]] \ +sb -bg "$normal_text_bg" -b 0 -w 0 -sl 0 \ -fn "xft:$fontFamily:pixelsize=$fontSize" \ -e $cmd "$filename" &] } } else { if {$filename == {}} { set pid [exec -- urxvt -embed [expr [winfo id $top_frame]] \ +sb -bg "$normal_text_bg" -b 0 -w 0 -sl 0 \ -fn "xft:$fontFamily:pixelsize=$fontSize" \ -e $cmd $opt &] } else { set pid [exec -- urxvt -embed [expr [winfo id $top_frame]] \ +sb -bg "$normal_text_bg" -b 0 -w 0 -sl 0 \ -fn "xft:$fontFamily:pixelsize=$fontSize" \ -e $cmd $opt "$filename" &] } } } result]} then { puts stderr $result tk_messageBox \ -parent . \ -icon error \ -type ok \ -title [mc "FATAL ERROR"] \ -message [mc "Unable to start embedded editor due to an unknown error. This error did not occurred in MCU 8051 IDE code but somewhere else. Please try to restart MCU 8051 IDE with --reset-user-settings"] } # Return to previous directory cd $cur_dir } ## Create terminal emulator with external editor embedded into editor frame # @parm String filename - Name of file to open with the external editor # @return void public method recreate_terminal {filename} { update idletasks if {![winfo exists $ed_sc_frame]} {return} set top_frame [frame $ed_sc_frame.top_frame_$top_frame_idx -container 1] pack $top_frame -expand 1 -fill both bind $top_frame "update; $this create_terminal {$filename}" bind $top_frame "$this recreate_terminal {$filename}" set terminal_created 0 incr top_frame_idx } ## Determinate file type according to its name extension # @parm Bool reset - Reset syntax highlight # @return void private method determinate_prog_lang {reset} { # Determinate file type set ext [string replace [file extension $filename] 0 0] set prog_language_old $prog_language # - C language if {$ext == {c} || $ext == {h} || $ext == {cxx} || $ext == {cpp} || $ext == {cc}} { set prog_language 1 # - Code listing } elseif {$ext == {lst}} { set prog_language 2 # - Unknown -> Assembly language } else { set prog_language 0 } # Reset highlight if {$reset && ($prog_language_old != $prog_language)} { prog_lang_changed } } ## This function shoul be called after each change of file type # Reset syntax highlight and adjust editor status bar # @return void private method prog_lang_changed {} { if {$editor_to_use} {return} # Clear current highlighting tags $editor tag remove tag_error 0.0 end $editor tag remove tag_error_line 0.0 end $editor tag remove tag_constant_def 0.0 end $editor tag remove tag_macro_def 0.0 end $editor tag remove c_lang_func 0.0 end $editor tag remove c_lang_var 0.0 end foreach tag [concat \ ${::CsyntaxHighlight::highlight_tags} \ ${::ASMsyntaxHighlight::highlight_tags} \ ${::LSTsyntaxHighlight::highlight_tags} \ ] { $editor tag remove [lindex $tag 0] 0.0 end } # Create C highlighting tags if {$object_initialized && $prog_language == 1 && !$c_hg_tags_created} { set c_hg_tags_created 1 CsyntaxHighlight::create_tags $editor $fontSize $fontFamily $parentObject rightPanel_bm_bp_create_c_hg_tags refresh_highlighting_for_autocompletion # Create LST highlighting tags } elseif {$object_initialized && $prog_language == 2 && !$lst_hg_tags_created} { set lst_hg_tags_created 1 ::LSTsyntaxHighlight::create_tags $editor $fontSize $fontFamily $parentObject rightPanel_bm_bp_create_lst_hg_tags } # Create new highlight parseAll # Adjust status bar adjust_sbar_to_prog_lang # Adjust main menu and main toolbar if {$prog_language == 1} { set uses_c 1 } else { set uses_c 0 } ::X::adjust_mainmenu_and_toolbar_to_editor {} $uses_c $parentObject filelist_editor_sh_changed $this $prog_language } ## Adjust editor status bar the language used (file type) # @return void private method adjust_sbar_to_prog_lang {} { if {$editor_to_use} {return} if {$prog_language == -1} { $Sbar_prog_lang configure -text {} } elseif {$prog_language == 1} { $Sbar_prog_lang configure -fg {#AA8800} -text "C/H" } elseif {$prog_language == 2} { $Sbar_prog_lang configure -fg {#00DDEE} -text "LST" } elseif {$prog_language == 3} { $Sbar_prog_lang configure -fg {#0000DD} -text "ASX" } else { $Sbar_prog_lang configure -fg {#00CC00} -text "ASM" } } } # >>> File inclusion guard } # <<< File inclusion guard mcu8051ide-1.4.7/lib/editor/commandline.tcl0000644000175000017500000011454612067167647021140 0ustar milleniummillenium#!/usr/bin/tclsh # Part of MCU 8051 IDE ( http://mcu8051ide.sf.net ) ############################################################################ # Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012 by Martin Ošmera # # martin.osmera@gmail.com # # # # This program is free software; you can redistribute it and#or modify # # it under the terms of the GNU General Public License as published by # # the Free Software Foundation; either version 2 of the License, or # # (at your option) any later version. # # # # This program is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU General Public License for more details. # # # # You should have received a copy of the GNU General Public License # # along with this program; if not, write to the # # Free Software Foundation, Inc., # # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # ############################################################################ # >>> File inclusion guard if { ! [ info exists _COMMANDLINE_TCL ] } { set _COMMANDLINE_TCL _ # <<< File inclusion guard # -------------------------------------------------------------------------- # DESCRIPTION # Implements procedures related to editor command line # This file should be loaded into class Editor in file "editor.tcl" # -------------------------------------------------------------------------- ## Binding for command line event # @parm String key - text/binary code of pressed key # @retrun void public method cmd_line_key_press {key} { if {![string is print -strict $key]} { return } catch { $cmd_line delete sel.first sel.last } $cmd_line insert insert $key cmd_line_highlight } ## Binding for various KeyPress events on command line # @parm key - ID of presses key # @retrun Bool - event accepted public method cmd_line_key {key} { set result 0 switch -- $key { {Delete} { if {[llength [$cmd_line tag nextrange sel 1.0]]} { $cmd_line delete sel.first sel.last } else { if {[$cmd_line index insert] != [$cmd_line index {insert lineend}]} { $cmd_line delete insert {insert+1c} } } } {BackSpace} { if {[llength [$cmd_line tag nextrange sel 1.0]]} { $cmd_line delete sel.first sel.last } else { if {[$cmd_line index insert] != [$cmd_line index {insert linestart}]} { $cmd_line delete {insert-1c} insert } } } {Home} { $cmd_line tag remove sel 1.0 end $cmd_line mark set insert {insert linestart} } {End} { $cmd_line tag remove sel 1.0 end $cmd_line mark set insert {insert lineend} } {Left} { $cmd_line tag remove sel 1.0 end if {[$cmd_line index insert] != [$cmd_line index {insert linestart}]} { $cmd_line mark set insert {insert-1c} } } {Right} { $cmd_line tag remove sel 1.0 end if {[$cmd_line index insert] != [$cmd_line index {insert lineend}]} { $cmd_line mark set insert {insert+1c} } } {SLeft} { if {[$cmd_line index insert] != [$cmd_line index {insert linestart}]} { set result 1 } } {SRight} { if {[$cmd_line index insert] != [$cmd_line index {insert lineend}]} { set result 1 } } default { error "Unrecognized key: $key" return 0 } } cmd_line_highlight 1 return $result } ## Get list of commands which starts with the given string # @parm String cmd - (in)complite command # @retrun List - possible command private method cmd_line_get_possible_cmds {cmd} { set result {} set end [string length $cmd] incr end -1 foreach command $editor_commands { set shortcmd [string range $command 0 $end] if {$command == $cmd} { return $cmd } elseif {$shortcmd == $cmd} { lappend result $command } } return $result } ## Binding for command line event and # @return void public method cmd_line_enter {} { if {[winfo exists .editor_cmd_help_widow]} { grab release .editor_cmd_help_widow destroy .editor_cmd_help_widow } set line [$cmd_line get {insert linestart} {insert lineend}] if {$line == {}} {return} if {[catch { set command [string tolower [lindex $line 0]] }]} then { Sbar [mc "Invalid command"] return } set options {} if {[regexp {\:\w*$} $command options]} { set options [string range $options 1 end] set options [split $options {}] regsub {\:\w*$} $command {} command } set command [cmd_line_get_possible_cmds $command] if {$command == {}} { Sbar [mc "EDITOR COMMAND LINE: invalid command, type `help list' to get list of available commands"] return } elseif {[llength $command] > 1} { Sbar [mc "Ambiguous command"] return } regsub {^[\w\-:]+\s*} $line {} args set args [string trim $args] switch -- $command { {help} { if {[llength $args] > 1} { Sbar [mc "EDITOR COMMAND LINE: wrong # args (command: %s)" "char"] } if {![llength $args]} { cmd_line_help_window [mc "Help"] [mc \ "This is MCU 8051 IDE command line\n\nusage: command \[arguments\]\n\nEnter help list for list of available commands or\nhelp for help for individual command"] return } set command [lindex $args 0] if {$command != {list}} { set command [cmd_line_get_possible_cmds $command] } if {[llength $command] > 1} { Sbar [mc "Ambiguous command"] return } switch -- $command { {list} { cmd_line_help_window [mc "Available commands"] \ "d2h [mc {DEC -> HEX}] d2o [mc {DEC -> OCT}] d2b [mc {DEC -> BIN}] h2d [mc {HEX -> DEC}] h2o [mc {HEX -> OCT}] h2b [mc {HEX -> BIN}] o2h [mc {OCT -> HEX}] o2d [mc {OCT -> DEC}] o2b [mc {OCT -> BIN}] b2h [mc {BIN -> HEX}] b2d [mc {BIN -> DEC}] b2o [mc {BIN -> OCT}] animate [mc {Animate program}] assemble [mc {Compile current file}] auto-indent [mc {Reformat code}] bookmark [mc {Bookmark current line}] breakpoint [mc {Add/Remove breakpoint}] capitalize [mc {Capitalize selection}] clear [mc {Clear history}] comment [mc {Comment selected text}] copy [mc {Copy selection}] custom [mc {Custom command}] cut [mc {Cut selection}] date [mc {Insert date}] exit [mc {Exit command line}] exit-program [mc {Exit program}] find [mc {Find string}] goto [mc {Go to line}] help [mc {Help}] char [mc {Insert literal character}] indent [mc {Indent selection}] kill-line [mc {Remove current line}] open [mc {Open file}] paste [mc {Paste clipboard}] redo [mc {Take back last undo}] reload [mc {Reload current document}] replace [mc {Replace strings}] run [mc {Run simulation}] save [mc {Save current line}] set-icon-border [mc {Show/Hide icon border}] set-line-numbers [mc {Show/Hide line n. bar}] sim [mc {Start/Stop simulator}] step [mc {Step program}] tolower [mc {To lowercase}] toupper [mc {To uppercase}] uncomment [mc {Uncomment selection}] undo [mc {Take back last operation}] unindent [mc {Unindent selection}] hibernate [mc {Hibernate running program}] resume [mc {Resume hibernated program}] switch-mcu [mc {Change current MCU}] set-xcode [mc {Set XCODE memory size for current MCU}] set-xdata [mc {SET XDATA memory size for current MCU}]" } {hibernate} { cmd_line_help_window [mc "Command hibernate"] [mc \ "hibernate \[\]\nHibernate running program (available only when simulator is stated).\n\nThis function saves current state of the simulator engine for future resumption. If no target is not specified it will invoke file selection dialog"] } {resume} { cmd_line_help_window [mc "Command resume"] [mc \ "resume \[\]\nResume hibernated program (available only when simulator is stated).\n\nThis function restores previous state of the simulator engine stored in the given file. If no source is not specified it will invoke file selection dialog"] } {switch-mcu} { cmd_line_help_window [mc "Command switch-mcu"] [mc \ "switch-mcu \nChange current MCU. Type `switch-mcu list' for list of supported microcontrollers"] } {set-xcode} { cmd_line_help_window [mc "Command set-xcode"] [mc \ "set-xcode \nChange capacity of external program memory.\nNote: this command also close CODE memory hex editor"] } {set-xdata} { cmd_line_help_window [mc "Command set-xdata"] [mc \ "set-xdata \nChange capacity of external data memory.\nNote: this command also close XDATA memory hex editor"] } {run} { cmd_line_help_window [mc "Command run"] [mc \ "Run simulation (available only when simulator is stated)"] } {exit} { cmd_line_help_window [mc "Command exit"] [mc \ "Exits this command line"] } {exit-program} { cmd_line_help_window [mc "Command exit-program"] [mc \ "Quit MCU 8051 IDE"] } {set-icon-border} { cmd_line_help_window [mc "Command set-icon-border"] [mc \ "Sets the visibility of the icon border"] } {set-line-numbers} { cmd_line_help_window [mc "Command set-line-numbers"] [mc \ "Sets the visibility of the line numbers."] } {help} { cmd_line_help_window [mc "Command help"] [mc \ "help \nShows help for the given command\n\nhelp list\nShows list of available command"] } {open} { cmd_line_help_window [mc "Command open"] [mc \ "open \nOpens the given file in new editor"] } {indent} { cmd_line_help_window [mc "Command indent"] [mc \ "Indents current line or selected area"] } {unindent} { cmd_line_help_window [mc "Command unindent"] [mc \ "Unindents current line or selected area"] } {comment} { cmd_line_help_window [mc "Command comment"] [mc \ "Comments current line or selected area"] } {uncomment} { cmd_line_help_window [mc "Command uncomment"] [mc \ "Uncomments current line or selected area"] } {kill-line} { cmd_line_help_window [mc "Command kill-line"] [mc \ "Removes the current line"] } {date} { cmd_line_help_window [mc "Command date"] [mc \ "date \nInserts formatted date at the current position in text\n\nFormat string:\n%% => %\n%a => Weekday name (Mon, Tue, etc.)\n%A => Weekday name (Monday, Tuesday, etc.)\n%b => Month name (Jan, Feb, etc.)\n%B => Full month name\n%C => Year (19 or 20)\n%d => Day of month (01 - 31)\n%D => %m/%d/%y\n%h => Abbreviated month name.\n%H => Hour (00 - 23)\n%I => Hour (01 - 12)\n%j => Day of year (001 - 366)\n%k => Hour (0 - 23)\n%l => Hour (1 - 12).\n%m => Month (01 - 12)\n%M => Minute (00 - 59)\n%n => Newline\n%p => AM/PM\n%R => %H:%M.\n%s => Unix timestamp\n%S => Seconds (00 - 59)\n%t => Tab\n%T => %H:%M:%S.\n%u => Weekday number (Monday = 1, Sunday = 7)\n%w => Weekday number (Sunday = 0, Saturday = 6)\n%y => Year without century (00 - 99)\n%Y => Year with century (e.g. 1459)"] } {clear} { cmd_line_help_window [mc "Command clear"] [mc \ "Clears command line history"] } {char} { cmd_line_help_window [mc "Command char"] [mc \ "char \nInserts literal characters by their numerical identifier.\nIdentifier can be in decimal hexadecimal or octal form."] } {goto} { cmd_line_help_window [mc "Command goto"] [mc \ "goto \nGo to the given line"] } {replace} { cmd_line_help_window [mc "Command replace"] [mc \ "replace\[:options\] \n\noptions:\nb Search backwards\nc Search from cursor position\nr Regular expression search\ns Case sensitive search\np Ask before replacement"] } {find} { cmd_line_help_window [mc "Command find"] [mc \ "find\[:options\] \n\noptions:\nb Search backwards\nc Search from cursor position\ne Search in the selection only\nr Regular expression search\ns Case sensitive search"] } {cut} { cmd_line_help_window [mc "Command cut"] [mc \ "Cut selected text"] } {copy} { cmd_line_help_window [mc "Command copy"] [mc \ "Copy selected text to clipboard"] } {paste} { cmd_line_help_window [mc "Command paste"] [mc \ "Paste clipboard content"] } {tolower} { cmd_line_help_window [mc "Command tolower"] [mc \ "Convert selected text to lowercase"] } {toupper} { cmd_line_help_window [mc "Command toupper"] [mc \ "Convert selected text to uppercase"] } {capitalize} { cmd_line_help_window [mc "Command capitalize"] [mc \ "Capitalize the selected text (convert 1st character to uppercase)"] } {save} { cmd_line_help_window [mc "Command save"] [mc \ "Save the current document"] } {bookmark} { cmd_line_help_window [mc "Command bookmark"] [mc \ "Bookmark the current line"] } {custom} { cmd_line_help_window [mc "Command custom"] [mc \ "custom \nExecute custom command (see menu Configuration -> Custom commands)"] } {breakpoint} { cmd_line_help_window [mc "Command breakpoint"] [mc \ "Add / Remove breakpoint to the current line"] } {undo} { cmd_line_help_window [mc "Command undo"] [mc \ "Take back last operation"] } {redo} { cmd_line_help_window [mc "Command redo"] [mc \ "Take back last undo"] } {auto-indent} { cmd_line_help_window [mc "Command auto-indent"] [mc \ "Reformat code"] } {reload} { cmd_line_help_window [mc "Command reload"] [mc \ "Reload the current document"] } {assemble} { cmd_line_help_window [mc "Command assemble"] [mc \ "Compile the current document"] } {sim} { cmd_line_help_window [mc "Command sim"] [mc \ "Start / Stop simulator"] } {step} { cmd_line_help_window [mc "Command step"] [mc \ "Step program (available only when simulator is stated)"] } {animate} { cmd_line_help_window [mc "Command animate"] [mc \ "Animate program (available only when simulator is stated)"] } {d2h} { cmd_line_help_window [mc "Command d2h"] [mc \ "Convert decimal number to hexadecimal and write result to editor"] } {d2o} { cmd_line_help_window [mc "Command d2o"] [mc \ "Convert decimal number to octal and write result to editor"] } {d2b} { cmd_line_help_window [mc "Command d2b"] [mc \ "Convert decimal number to binary and write result to editor"] } {h2d} { cmd_line_help_window [mc "Command h2d"] [mc \ "Convert hexadecimal number to decimal and write result to editor"] } {h2o} { cmd_line_help_window [mc "Command h2o"] [mc \ "Convert hexadecimal number to octal and write result to editor"] } {h2b} { cmd_line_help_window [mc "Command h2b"] [mc \ "Convert hexadecimal number to binary and write result to editor"] } {o2h} { cmd_line_help_window [mc "Command o2h"] [mc \ "Convert octal number to hexadecimal and write result to editor"] } {o2d} { cmd_line_help_window [mc "Command o2d"] [mc \ "Convert octal number to decimal and write result to editor"] } {o2b} { cmd_line_help_window [mc "Command o2b"] [mc \ "Convert octal number to binary and write result to editor"] } {b2h} { cmd_line_help_window [mc "Command b2h"] [mc \ "Convert binary number to hexadecimal and write result to editor"] } {b2d} { cmd_line_help_window [mc "Command b2d"] [mc \ "Convert binary number to decimal and write result to editor"] } {b2o} { cmd_line_help_window [mc "Command b2o"] [mc \ "Convert binary number to octal and write result to editor"] } default { Sbar [mc "EDITOR COMMAND LINE: Unknown command: `%s'" [lindex $args 0]] } } } {hibernate} { if {[llength $args] > 2} { Sbar [mc "EDITOR COMMAND LINE: wrong # args (command: %s)" "hibernate"] return } if {![llength $args]} { ::X::__hibernate } else { ::X::__hibernate_to [lindex $args 0] $filename } Sbar [mc "Success"] } {resume} { if {[llength $args] > 2} { Sbar [mc "EDITOR COMMAND LINE: wrong # args (command: %s)" "resume"] return } if {![llength $args]} { ::X::__resume } else { ::X::__resume_from [lindex $args 0] $filename } Sbar [mc "Success"] } {switch-mcu} { if {[llength $args] > 2 || ![llength $args]} { Sbar [mc "EDITOR COMMAND LINE: wrong # args (command: %s)" "switch-mcu"] return } set arg [string toupper [lindex $args 0]] if {$arg == {list}} { set arg {} foreach mcu ${::X::available_processors} { append arg $mcu append arg "\n" } cmd_line_help_window {Supported microcontrollers} $arg } else { if {[lsearch ${::X::available_processors} $arg] == -1} { Sbar [mc "EDITOR COMMAND LINE: Unsupported processor `%s'" "$arg"] } else { ::X::change_processor $arg } } Sbar [mc "Success"] } {set-xcode} { if {[llength $args] > 2 || ![llength $args]} { Sbar [mc "EDITOR COMMAND LINE: wrong # args (command: %s)" "set-xcode"] return } set arg [lindex $args 0] set error 0 if {![string first {0x} $arg]} { if {![string is xdigit -strict [string range $arg 2 end]]} {set error 1} set arg [expr "$arg"] } elseif {[string index $arg 0] == {0}} { if {![regexp {^[0-7]+$} $arg]} {set error 1} set arg [expr "$arg"] } else { if {![string is digit -strict $arg]} {set error 1} } if {$error} { Sbar [mc "EDITOR COMMAND LINE: Expected integer but got `%s' (command: %s)" $arg "set-xcode"] return } set icode [expr {[lindex [${::X::actualProject} cget -procData] 2] * 1024}] if {$arg > (0xFFFF - $icode)} { Sbar [mc "EDITOR COMMAND LINE: This MCU has CODE memory limit 0x10000 B (65536) (command: %s)"] "set-xcode" return } if {[lindex [${::X::actualProject} cget -procData] 1] != {yes}} { Sbar [mc "This MCU cannot have connected external program memory"] } else { ${::X::actualProject} configure -P_option_mcu_xcode $arg ::X::close_hexedit code ${::X::actualProject} ${::X::actualProject} simulator_resize_code_memory $arg Sbar [mc "Success"] } } {set-xdata} { if {[llength $args] > 2 || ![llength $args]} { Sbar [mc "EDITOR COMMAND LINE: wrong # args (command: %s)" "set-xdata"] return } set arg [lindex $args 0] set error 0 if {![string first {0x} $arg]} { if {![string is xdigit -strict [string range $arg 2 end]]} {set error 1} set arg [expr "$arg"] } elseif {[string index $arg 0] == {0}} { if {![regexp {^[0-7]+$} $arg]} {set error 1} set arg [expr "$arg"] } else { if {![string is digit -strict $arg]} {set error 1} } if {$error} { Sbar [mc "EDITOR COMMAND LINE: Expected integer but got `%s' (command: %s)" $arg "set-xdata"] return } if {$arg > 0xFFFF} { Sbar [mc "EDITOR COMMAND LINE: This MCU has XDATA memory limit 0x10000 B (65536) (command: %s)" "set-xdata"] return } if {[lindex [${::X::actualProject} cget -procData] 0] != {yes}} { Sbar [mc "This MCU cannot have connected external data memory"] } else { ${::X::actualProject} configure -P_option_mcu_xdata $arg ::X::close_hexedit xdata ${::X::actualProject} ${::X::actualProject} simulator_resize_xdata_memory $arg Sbar [mc "Success"] } } {d2h} {command_line_X2X_command {d2h} $args} {d2o} {command_line_X2X_command {d2o} $args} {d2b} {command_line_X2X_command {d2b} $args} {h2d} {command_line_X2X_command {h2d} $args} {h2o} {command_line_X2X_command {h2o} $args} {h2b} {command_line_X2X_command {h2b} $args} {o2h} {command_line_X2X_command {o2h} $args} {o2d} {command_line_X2X_command {o2d} $args} {o2b} {command_line_X2X_command {o2b} $args} {b2h} {command_line_X2X_command {b2h} $args} {b2d} {command_line_X2X_command {b2d} $args} {b2o} {command_line_X2X_command {b2o} $args} {set-icon-border} { ::X::__show_hine_IconB command_without_args $args } {set-line-numbers} { ::X::__show_hine_LineN command_without_args $args } {open} { if {![llength $args] || [llength $args] > 1} { Sbar [mc "EDITOR COMMAND LINE: wrong # args (command: %s)" "open"] } if {$fullFileName != {}} { set dir [file dirname $fullFileName] } else { set dir $projectPath } set filename [file join $dir [lindex $args 0]] if {![file exists $filename] || ![file isfile $filename]} { Sbar [mc "EDITOR COMMAND LINE: wrong # args (command: %s)" "unindent"] } if {[${::X::actualProject} openfile $filename 1 . def def 0 0 {}] != {}} { ${::X::actualProject} switch_to_last update idletasks ${::X::actualProject} editor_procedure {} parseAll {} Sbar [mc "Success"] } } {indent} { indent command_without_args $args } {unindent} { unindent command_without_args $args } {comment} { comment command_without_args $args } {uncomment} { uncomment command_without_args $args } {kill-line} { detete_text_in_editor {insert linestart} {insert+1l linestart} goto [expr {int([$editor index insert])}] Sbar [mc "Success"] } {date} { if {[catch {$editor insert insert [clock format [clock seconds] -format $args]}]} { Sbar [mc "EDITOR COMMAND LINE: Invalid format string"] } else { parse [expr {int([$editor index insert])}] Sbar [mc "Success"] } } {char} { if {[llength $args] > 1} { Sbar [mc "EDITOR COMMAND LINE: wrong # args (command: %s)" "char"] } else { Sbar [mc "Success"] } set char [lindex $args 0] if {![regexp {^(0|0x|0X)?[0-9]+$} $char]} { Sbar [mc "EDITOR COMMAND LINE: syntax error: expected integer (command: %s)" "char"] return } $editor insert insert [format %c $char] parse [expr {int([$editor index insert])}] } {goto} { if {[llength $args] > 1} { Sbar [mc "EDITOR COMMAND LINE: wrong # args (command: %s)" "goto"] } else { Sbar [mc "Success"] } set target_line [lindex $args 0] if {![regexp {^(0|0x|0X)?[0-9]+$} $target_line]} { Sbar [mc "EDITOR COMMAND LINE: syntax error: expected integer (command: %s)" "goto"] return } if {$target_line > [editor_linescount]} { Sbar [mc "Target line out of range"] } else { goto $target_line Sbar [mc "Success"] } } {replace} { if {[llength $args] > 2} { Sbar [mc "EDITOR COMMAND LINE: wrong # args (command: %s)" "replace"] } else { Sbar [mc "Success"] } set pattern [lindex $args 0] set replacement [lindex $args 1] set Backwards 0 set fromCursor 0 set regExp 0 set noCase 0 set confirm 0 set options {} foreach opt $options { switch -- $opt { {b} { ;# Search backwards set Backwards 1 } {c} { ;# Search from cursor position set fromCursor 1 } {r} { ;# Regular expression search set regExp 1 } {s} { ;# Do case sensitive search set noCase 1 } {p} { ;# Prompt before replacement set confirm 1 } default { Sbar [mc "Invalid option: %s" $opt] } } } replace $fromCursor $Backwards $regExp \ $noCase $pattern $replacement \ $confirm ::X::replace_prompt } {find} { if {[llength $args] > 1} { Sbar [mc "EDITOR COMMAND LINE: wrong # args (command: %s)" "find"] } set pattern [lindex $args 0] set Backwards 0 set fromCursor 0 set regExp 0 set noCase 0 set confirm 0 set inSelection 0 set options {} foreach opt $options { switch -- $opt { {b} { ;# Search backwards set Backwards 1 } {e} { ;# Search in the selection only set inSelection 1 } {c} { ;# Search from cursor position set fromCursor 1 } {r} { ;# Regular expression search set regExp 1 } {s} { ;# Do case sensitive search set noCase 1 } default { Sbar [mc "Invalid option: %s" $opt] } } } set result [find $fromCursor $Backwards $regExp $noCase $inSelection 1.0 $pattern] if {[lindex $result 0] == -1} { Sbar [mc "String not found: %s" [lindex $result 1]] } else { Sbar [mc "Found %s occurrence" [lindex $result 2]] } } {cut} { cut command_without_args $args } {copy} { copy command_without_args $args } {paste} { paste command_without_args $args } {tolower} { lowercase command_without_args $args } {toupper} { uppercase command_without_args $args } {capitalize} { capitalize command_without_args $args } {save} { save command_without_args $args } {bookmark} { Bookmark command_without_args $args } {breakpoint} { Breakpoint command_without_args $args } {undo} { undo command_without_args $args } {redo} { redo command_without_args $args } {auto-indent} { ::X::__reformat_code command_without_args $args } {reload} { ::X::__reload command_without_args $args } {assemble} { ::X::__compile 0 command_without_args $args } {sim} { ::X::__initiate_sim command_without_args $args } {step} { ::X::__step command_without_args $args } {animate} { ::X::__animate command_without_args $args } {run} { ::X::__run command_without_args $args } {custom} { set cmd [lindex $args 0] if {$cmd != 0 && $cmd != 1 && $cmd != 2} __exec_custom_cmd $cmd Sbar [mc "Success"] } {clear} { $cmd_line delete 1.0 end command_without_args $args return } {exit-program} { ::X::__exit } {exit} { pack forget $cmd_line focus $editor command_without_args $args } default { Sbar [mc "EDITOR COMMAND LINE: invalid command, type `help list' to get list of available commands"] } } # Manage command line history if {int([$cmd_line index end-1l]) == int([$cmd_line index insert])} { $cmd_line insert {insert lineend} "\n" } else { set txt [$cmd_line get {insert linestart} {insert lineend}] $cmd_line mark set insert end $cmd_line insert insert $txt cmd_line_highlight 1 $cmd_line insert insert "\n" } $cmd_line mark set insert end $cmd_line see end } ## Auxiliary procedure for "cmd_line_enter" # Performs number base conversions # @parm String command - Type of conversion (e.g h2b, d2o) # @parm String argument - Number to convert # @retrun void private method command_line_X2X_command {command argument} { set len [llength $argument] if {!$len} { Sbar [mc "EDITOR COMMAND LINE: This command requires exactly one argument"] return } set argument [lindex $argument 0] switch -- $command { {d2h} { ;# DEC -> HEX set ver_cmd {isdec} set conv_cmd {dec2hex} } {d2o} { ;# DEC -> OCT set ver_cmd {isdec} set conv_cmd {dec2oct} } {d2b} { ;# DEC -> BIN set ver_cmd {isdec} set conv_cmd {dec2bin} } {h2d} { ;# HEX -> DEC set ver_cmd {ishex} set conv_cmd {hex2dec} } {h2o} { ;# HEX -> OCT set ver_cmd {ishex} set conv_cmd {hex2oct} } {h2b} { ;# HEX -> BIN set ver_cmd {ishex} set conv_cmd {hex2bin} } {o2h} { ;# OCT -> HEX set ver_cmd {isoct} set conv_cmd {oct2hex} } {o2d} { ;# OCT -> BIN set ver_cmd {isoct} set conv_cmd {oct2dec} } {o2b} { ;# OCT -> BIN set ver_cmd {isoct} set conv_cmd {oct2bin} } {b2h} { ;# BIN -> HEX set ver_cmd {isbin} set conv_cmd {bin2hex} } {b2d} { ;# BIN -> DEC set ver_cmd {isbin} set conv_cmd {bin2dec} } {b2o} { ;# BIN -> OCT set ver_cmd {isbin} set conv_cmd {bin2oct} } default { error "Unknown error in Editor.command_line_X2X_command()" } } if {![::NumSystem::$ver_cmd $argument]} { Sbar [mc "EDITOR COMMAND LINE: Invalid number format"] return } $editor insert insert [::NumSystem::$conv_cmd $argument] parse [expr {int([$editor index insert])}] Sbar [mc "Success"] } ## Check if the given list of arguments is empty and display result on main statusbar # @parm List args - list of arguments # @retrun void private method command_without_args {args} { if {[llength $args]} { if {[llength $args] != 1 || [lindex $args 0] != {}} { Sbar [mc "EDITOR COMMAND LINE: This command takes no arguments"] } } Sbar [mc "Success"] } ## Highlight current contents of editor command line # @parm Bool no_completion=0 - Disable popup-based completion # @return void private method cmd_line_highlight {{no_completion 0}} { # Remove all tags from command line foreach tag {tag_cmd tag_argument tag_option tag_error} { $cmd_line tag remove $tag {insert linestart} {insert lineend} } # Get line contents and line number set line [$cmd_line get {insert linestart} {insert lineend}] set lineNumber [expr {int([$cmd_line index insert])}] # Split line into command and arguments set cmd {} set opt {} if {[regexp {^[\w:-]+} $line cmd]} { if {[regexp {\:\w*$} $cmd opt]} { set cmd [regsub {\:\w*$} $cmd {}] } } # Resolve possible commands, start index and end index set command [cmd_line_get_possible_cmds $cmd] set startIdx [$cmd_line index {insert linestart}] set endIdx [string length $cmd] # Highlight command (+ post down list of possible commands | + return) if {[llength $command] == 1} { $cmd_line tag add tag_cmd $startIdx $lineNumber.$endIdx } elseif {$endIdx && [llength $command] > 1 && [$cmd_line compare $lineNumber.$endIdx == insert]} { if {$cline_completion && !$no_completion} { # Automaticaly complete command set possible_cmd [lindex $command 0] set insert [$cmd_line index insert] $cmd_line insert insert [string range $possible_cmd $endIdx end] $cmd_line tag remove sel 1.0 end $cmd_line tag add sel $lineNumber.$endIdx $lineNumber.[string length $possible_cmd] $cmd_line mark set insert $insert # Postdown completion menu cmd_line_menu_postdown $command } return } else { $cmd_line tag add tag_error $startIdx $lineNumber.$endIdx } # Insure than list of possible commands is not visible cmd_line_menu_close # Highlight command options (characters after colon) if {$opt != {}} { set startIdx $endIdx incr endIdx [string length $opt] if {[lsearch $commands_with_option $command] != -1} { $cmd_line tag add tag_option $lineNumber.$startIdx $lineNumber.$endIdx } else { $cmd_line tag add tag_error $lineNumber.$startIdx $lineNumber.$endIdx } } # Highlight remaining as arguments $cmd_line tag add tag_argument $lineNumber.$endIdx {insert lineend} } ## Postdown list of possible commands for command line # @parm List commands - contents of the list # @retrun void private method cmd_line_menu_postdown {commands} { # List is not mapped -> create new toplevel window if {![winfo exists $cmd_line_listbox]} { # Determinate window coordinates and width set x [winfo rootx $cmd_line] set y [expr {[winfo rooty $cmd_line] + [winfo height $cmd_line]}] set width [winfo width $cmd_line] # Create window set win {.editor_cmd_help_widow} if {[winfo exists $win]} { grab release $win destroy $win } toplevel $win -background {#000000} -class {Help window} wm overrideredirect $win 1 wm geometry $win "=${width}x100+${x}+${y}" bind $win "$this cmd_line_win_B1 %X %Y" bind $win "$this cmd_line_menu_close_now" # Create listbox of possible commands set frame [frame $win.frame] set cmd_line_listbox [ListBox $frame.lisbox \ -relief flat -bd 0 -selectfill 1 \ -selectbackground {#AAAAFF} \ -yscrollcommand "$frame.scrollbar set" \ -selectmode single -highlightthickness 0\ -bg {#FFFFFF} \ ] pack $cmd_line_listbox -fill both -expand 1 -side left # Create scrollbar pack [ttk::scrollbar $frame.scrollbar \ -orient vertical \ -command "$cmd_line_listbox yview" \ ] -side right -after $cmd_line_listbox -fill y pack $frame -padx 1 -pady 1 -fill both -expand 1 # Configure listbox event bindings if {[winfo exists $cmd_line_listbox.c]} { bind $cmd_line_listbox.c {%W yview scroll +5 units; break} bind $cmd_line_listbox.c {%W yview scroll -5 units; break} } bind $cmd_line_listbox "$this cmd_line_menu_close_now" bind $cmd_line_listbox \ "$this cmd_line_listbox_sel \[$cmd_line_listbox selection get\]" bind $cmd_line_listbox \ "$this cmd_line_listbox_sel \[$cmd_line_listbox selection get\]" $cmd_line_listbox bindText "$this cmd_line_listbox_sel" $cmd_line_listbox bindText " update %W selection clear %W selection set" # Finalize window initialization (global grab) update idletasks catch { grab -global $win raise $win } } # Fill listbox with the given list of commands $cmd_line_listbox delete [$cmd_line_listbox items] foreach cmd $commands { $cmd_line_listbox insert end #auto -text $cmd } } ## Binding for command line event # Possible results: # A) Focus on list of possible commands # C) Return 0 # @retrun Bool - $cmd_line_listbox focused public method cmd_line_down {} { if {![winfo exists $cmd_line_listbox]} { return 0 } else { $cmd_line_listbox selection set [$cmd_line_listbox item 0] focus -force $cmd_line_listbox return 1 } } ## Clear command line and write there text # of the given item in list of possible commands. # This procedure also closes command line help window # @parm String item - ID of choosen item # @retrun void public method cmd_line_listbox_sel {item} { $cmd_line delete {insert linestart} {insert lineend} $cmd_line insert end [$cmd_line_listbox itemcget $item -text] $cmd_line tag add tag_cmd {insert linestart} {insert lineend} cmd_line_menu_close } ## Binding common for all command line help windows: event # This procedure will close help window if user click outside it. # @parm Int X - absolute horizontal position of mouse pointer # @parm Int Y - absolute vertical position of mouse pointer # @retrun void public method cmd_line_win_B1 {X Y} { set win {.editor_cmd_help_widow} set min_x [winfo rootx $win] set min_y [winfo rooty $win] set max_x [expr {$min_x + [winfo width $win]}] set max_y [expr {$min_y + [winfo height $win]}] if {$X > $max_x || $X < $min_x || $Y > $max_y || $Y < $min_y} { cmd_line_menu_close_now } } ## Close command line help window if opened # @retrun void public method cmd_line_menu_close {} { if {![winfo exists $cmd_line_listbox]} { return } cmd_line_menu_close_now } ## Unconditionaly close command line help window # @retrun void public method cmd_line_menu_close_now {} { grab release .editor_cmd_help_widow destroy .editor_cmd_help_widow if {[winfo viewable $cmd_line]} { focus -force $cmd_line } } ## Create command line help window for purpose of help # @parm String header - Window header # @parm String content - Window contents (can contain tags bold) # @return Widget - Text widget private method cmd_line_help_window {header content} { # Destroy the previous window if {[winfo exists .editor_cmd_help_widow]} { grab release .editor_cmd_help_widow destroy .editor_cmd_help_widow } # Create window set win [toplevel .editor_cmd_help_widow -bg ${::COMMON_BG_COLOR}] wm overrideredirect $win 1 bind $win "$this cmd_line_win_B1 %X %Y" bind $win "$this cmd_line_menu_close_now" # Create header set header_frame [frame $win.header -bg {#AAAAFF}] pack [label $header_frame.lbl_heder \ -text $header -fg {#FF0000} \ -bg {#AAAAFF} -bd 0 -anchor w \ -relief flat \ -font $cmd_line_win_font \ ] -fill x -expand 1 -side left -ipadx 5 pack [Button $header_frame.lbl_close \ -text [mc "Close"] -bd 0 -pady 0\ -compound left -cursor hand2 \ -bg {#AAAAFF} -relief flat \ -fg {#FFFFFF} -anchor e \ -image ::ICONS::16::button_cancel\ -font $cmd_line_win_font \ -helptext [mc "Close this window"]\ -command "destroy $win" \ ] -fill none -side left -pady 0 -ipady 0 pack $header_frame -fill x -side top # Create text widget set text [text $win.text \ -bg {#FFFFFF} \ -cursor left_ptr \ -bd 1 \ -width 0 -height 0 \ -font $cl_hw_nrml_font \ -yscrollcommand "$win.scrollbar set" \ ] $text tag configure tag_bold -font $cl_hw_bold_font # Create map of bold font tags regsub -all -line {^\t+} $content {} content set bold_tag_map {} while {1} { set tag_pair {} set idx [string first {} $content] if {$idx == -1} {break} regsub {} $content {} content lappend tag_pair $idx set idx [string first {} $content] if {$idx == -1} {break} regsub {} $content {} content lappend tag_pair $idx lappend bold_tag_map $tag_pair } # Adjust content and insert tags set start [$text index insert] $text insert end $content foreach pair $bold_tag_map { $text tag add tag_bold $start+[lindex $pair 0]c $start+[lindex $pair 1]c } $text configure -state disabled # Create and pack scrollbar pack $text -side left -fill both -expand 1 pack [ttk::scrollbar $win.scrollbar \ -orient vertical \ -command "$text yview" \ ] -side right -fill y -after $text # Show the window set x [winfo rootx $cmd_line] set y [expr {[winfo rooty $cmd_line] + [winfo height $cmd_line]}] update idletasks if {150 > ([winfo height .] - $y)} { incr y -150 incr y -[winfo height $cmd_line] } catch { wm transient $win . grab -global $win update wm geometry $win "=[winfo width $cmd_line]x150+${x}+${y}" } } ## Focus on editor / editor command line # @parm Bool no_cmd_line_on=0 - Do not call proc. "cmd_line_on" # @return void public method cmd_line_focus {{no_cmd_line_on 0}} { # Show command line if {![winfo viewable $cmd_line]} { pack $cmd_line -side top -fill x if {!$no_cmd_line_on} { ${::X::actualProject} cmd_line_on } } if {[focus] == $cmd_line} { focus $editor } else { focus $cmd_line } update } # >>> File inclusion guard } # <<< File inclusion guard mcu8051ide-1.4.7/lib/editor/exports.tcl0000644000175000017500000003540312067167647020350 0ustar milleniummillenium#!/usr/bin/tclsh # Part of MCU 8051 IDE ( http://mcu8051ide.sf.net ) ############################################################################ # Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012 by Martin Ošmera # # martin.osmera@gmail.com # # # # This program is free software; you can redistribute it and#or modify # # it under the terms of the GNU General Public License as published by # # the Free Software Foundation; either version 2 of the License, or # # (at your option) any later version. # # # # This program is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU General Public License for more details. # # # # You should have received a copy of the GNU General Public License # # along with this program; if not, write to the # # Free Software Foundation, Inc., # # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # ############################################################################ # >>> File inclusion guard if { ! [ info exists _EXPORTS_TCL ] } { set _EXPORTS_TCL _ # <<< File inclusion guard # -------------------------------------------------------------------------- # DESCRIPTION # Implements exports to other data formats (XHTML && LaTeX) # This file should be loaded into class Editor in file "editor.tcl" # -------------------------------------------------------------------------- ## Get maximum value for progressbar showing highlightion progress (proc. highlight_all) # @return Int - Number of lines to highlight divided by 50 public method highlight_all_count_of_iterations {} { set result 0 for {set i 1} {$i < [string bytelength $highlighted_lines]} {incr i} { if {[string index $highlighted_lines $i] == 0} { incr result } if {![expr {$i % 1000}]} {update} } return [expr {$result / 50}] } ## Highlight all lines in the editor (can take a long time !) # @return void public method highlight_all {} { # Reset abort variables set getDataAsLaTeX_abort 0 # Highlight all lines set len [string bytelength $highlighted_lines] for {set i 1} {$i < $len} {incr i} { if {[string index $highlighted_lines $i]} {continue} # Highlight line parse $i # Update progress bar if {![expr {$i % 50}]} { incr ::X::compilation_progress update } # Conditional abort if {$getDataAsLaTeX_abort} { set getDataAsLaTeX_abort 0 return } } } ## Get maximum value for export progress bar # @return Int - the value public method getDataAsXHTML_count_of_iterations {} { set result 0 foreach tag_def [concat \ ${ASMsyntaxHighlight::highlight_tags} \ ${CsyntaxHighlight::highlight_tags} \ ${LSTsyntaxHighlight::highlight_tags} \ ] { set range [$editor tag ranges [lindex $tag_def 0]] incr result [llength $range] if {![expr {$result % 1000}]} {update} } return [expr {$result / 50}] } ## Abort export to LaTeX # @return void public method getDataAsLaTeX_abort_now {} { set getDataAsLaTeX_abort 1 } ## Export editor content as LaTeX source (include colors) # @parm File file - Target data channel public method getDataAsLaTeX {file} { # Reset abort variables set getDataAsLaTeX_abort 0 # Local variables set end [$editor index end] ;# Editor end index set last_index 0 ;# Current position (by characters) set line(1) 0 ;# Map of indexes ($line(num) == scalar_index) # Create map of indexes for {set i 1; set j 2} {$i < $end} {incr i; incr j} { # Conditional abort if {$getDataAsLaTeX_abort} { set getDataAsLaTeX_abort 0 return {} } # Determinate last column of the line set idx [$editor index "$i.0 lineend"] regexp {\d+$} $idx idx # Adjust map of indexes incr last_index $idx incr last_index set line($j) $last_index } # Create LaTeX preamble puts -nonewline $file "\\documentclass\[a4paper,12pt\]{article}" puts -nonewline $file "\n\n% Creator: ${::APPNAME}\n\n" puts -nonewline $file "\\usepackage\[utf8\]{inputenc}\n" puts -nonewline $file "\\usepackage\[T1\]{fontenc}\n" puts -nonewline $file "\\usepackage{color}\n" puts -nonewline $file "\\title{$filename}\n" puts -nonewline $file "\\date{[clock format [clock seconds] -format {%D}]}\n" puts -nonewline $file "\n% define highlighting\n" ## Determinate highlighting tag ranges and define colors for 'color' package set ranges {} # Iterate over predefined highlighting tags foreach tag_def [concat \ ${ASMsyntaxHighlight::highlight_tags} \ ${CsyntaxHighlight::highlight_tags} \ ${LSTsyntaxHighlight::highlight_tags} \ ] { # Conditional abort if {$getDataAsLaTeX_abort} { set getDataAsLaTeX_abort 0 return {} } # Local variables set color [lindex $tag_def 1] ;# RGB color set tag [lindex $tag_def 0] ;# Tag name set range [$editor tag ranges $tag] ;# List of tag ranges set len [llength $range] ;# Number of ranges set mirror_tag {} ;# Tag with exatly the same highlight # Convert 48b color format to 24b format if {[string length $color] == 13} { set new_color {#} for {set i 1} {$i < [string length $color]} {incr i 4} { append new_color [string range $color $i [expr {$i + 1}]] } set color $new_color } # Decompose the color code set red [string range $color 1 2] ;# Color - RED set green [string range $color 3 4] ;# Color - GREEN set blue [string range $color 5 6] ;# Color - BLUE # Determinate mirror tag switch -- $tag { {tag_constant} {set mirror_tag tag_constant_def} {tag_macro} {set mirror_tag tag_macro_def} } if {$mirror_tag != {}} { set mirror_range [$editor tag ranges $mirror_tag] } else { set mirror_range {} } # If the tag isn't present in the text -> skip if {$len == 0 && ![llength $mirror_range]} { continue } # Adjust tag name set tag [string replace $tag 0 3] # Convert hexadecimal color values to decimal representation set red [string range [expr "0x$red / 255.0"] 0 4] set green [string range [expr "0x$green / 255.0"] 0 4] set blue [string range [expr "0x$blue / 255.0"] 0 4] # Define color (for package color) puts -nonewline $file "\\definecolor{highlight_$tag}{rgb}{$red, $green, $blue}\n" # Adjust map of text tags set mirror_tag {} switch -- $tag { {constant} {set mirror_tag tag_constant_def} {macro} {set mirror_tag tag_macro_def} } for {set i 0} {$i < $len} {incr i} { lappend ranges [list [lindex $range $i] $tag 1] incr i lappend ranges [list [lindex $range $i] $tag 0] } if {$mirror_tag != {}} { set range [$editor tag ranges $mirror_tag] set len [llength $range] for {set i 0} {$i < $len} {incr i} { lappend ranges [list [lindex $range $i] $tag 1] incr i lappend ranges [list [lindex $range $i] $tag 0] } } } # Sort map of text tags (recursive) set ranges [lsort -command "::FileList::editor__sort_tag_ranges" $ranges] # Get plain text set text [$editor get 1.0 end] regsub -all {'} $text "\a" text ## Create map of tabulators ("\t") set tab_map {} # Iterate ovet lines in editor foreach textLine [split $text "\n"] { if {$textLine == {}} {continue} set idx -1 set spaces 0 set correction 0 while {1} { set idx [string first "\t" $textLine [expr {$idx + 1}]] if {$idx == -1} {break} set spaces [expr {8 - (($idx + $correction) % 8)}] incr correction [expr {$spaces - 1}] lappend tab_map $spaces } } # Write LaTeX control sequences set i 0 foreach range $ranges { # Conditional abort if {$getDataAsLaTeX_abort} { set getDataAsLaTeX_abort 0 return {} } # Update progress bar if {![expr {$i % 50}]} { incr ::X::compilation_progress update } set idx [split [lindex $range 0] {.}] ;# Text index set row [lindex $idx 0] ;# Line number set col [lindex $idx 1] ;# Column number # Determinate scalar text index set idx [expr {$line($row) + $col}] if {$idx < 0} {set idx 0} # Determinate string to insert if {[lindex $range 2]} { set tag "'\{\\color{highlight_[lindex $range 1]}\\verb'" } else { set tag "'\}\\verb'" } # Insert control sequence into plain text set char [string index $text $idx] set text [string replace $text $idx $idx "$tag$char"] incr i } # Covert tabs to spaces set i 0 foreach spaces $tab_map { set idx [string first "\t" $text] if {$idx == -1} {break} set text [string replace $text $idx $idx [string repeat { } $spaces]] if {![expr {$i % 1000}]} {update} incr i } # Adjust lines regsub -all -line {^} $text {\\verb'} text regsub -all -line {$} $text "'\\\\\\" text regsub -all -line {\s+'\\\\$} $text {'\\\\} text regsub -all {\\verb''} $text {} text regsub -all -line {^\\\\$} $text {\\verb''&} text regsub -all "\a" $text {'\\verb"'"\\verb'} text # Create final LaTeX document puts -nonewline $file "\n\n\\begin{document}\n" puts -nonewline $file "\\ \\\\\n" puts -nonewline $file $text puts -nonewline $file "\n\\end{document}" } ## Abort export to XHTML # @return void public method getDataAsXHTML_abort_now {} { set getDataAsXHTML_abort 1 } ## Export editor content as XHTML source (include colors) # @parm File file - Target data channel public method getDataAsXHTML {file} { # Reset abort variables set getDataAsXHTML_abort 0 # Local variables set end [$editor index end] ;# Editor end index set last_index 0 ;# Current position (by characters) set line(1) 0 ;# Map of indexes ($line(num) == scalar_index) # Create map of indexes for {set i 1; set j 2} {$i < $end} {incr i; incr j} { # Conditional abort if {$getDataAsXHTML_abort} { set getDataAsXHTML_abort 0 return {} } # Determinate last column of the line set idx [$editor index [list $i.0 lineend]] regexp {\d+$} $idx idx # Adjust map of indexes incr last_index $idx incr last_index set line($j) $last_index } # Create XHTML header puts -nonewline $file "\n" puts -nonewline $file "\n" puts -nonewline $file "\n" puts -nonewline $file "\n" puts -nonewline $file "\t\n" puts -nonewline $file "\t\t$filename\n" puts -nonewline $file "\t\t\n" puts -nonewline $file "\t\t\n" puts -nonewline $file "\t\t\n" puts -nonewline $file "\t\n" # Sort tag ranges (recursive) set ranges [lsort -command "::FileList::editor__sort_tag_ranges" $ranges] # Get plain text set text [$editor get 1.0 end] # Translate '<' and '>' to '\a' and '\b' regsub -all {<} $text "\a" text regsub -all {>} $text "\b" text # Write XHTML tags to plain text set i 0 foreach range $ranges { # Conditional abort if {$getDataAsXHTML_abort} { set getDataAsXHTML_abort 0 return {} } # Update progress bar if {![expr {$i % 50}]} { incr ::X::compilation_progress update } # Local variables set idx [split [lindex $range 0] {.}] ;# Text index set row [lindex $idx 0] ;# Line number set col [lindex $idx 1] ;# Column number # Determinate scalar text index set idx [expr {$line($row) + $col}] # Skip unused tags if {$idx < 0} {set idx 0} # Deterinate string to insert if {[lindex $range 2]} { set tag "span class='[lindex $range 1]'" } else { set tag {/span} } # Insert XHTML tag into the text set char [string index $text $idx] set text [string replace $text $idx $idx "<$tag>$char"] incr i } # Translate '&' -> & regsub -all "&" $text {\&} text # Traslate '\a', '\b' -> '<', '>' regsub -all "\a" $text {\<} text regsub -all "\b" $text {\>} text # Create final XHTML document puts -nonewline $file "\t\n\t\t
\n"
	puts -nonewline $file "\t\t\n"
	puts -nonewline $file $text
	puts -nonewline $file "\t\t\n"
	puts -nonewline $file "\t\t
\n\t\n" } # >>> File inclusion guard } # <<< File inclusion guard mcu8051ide-1.4.7/lib/editor/eventhandlers.tcl0000644000175000017500000005602412067167647021510 0ustar milleniummillenium#!/usr/bin/tclsh # Part of MCU 8051 IDE ( http://mcu8051ide.sf.net ) ############################################################################ # Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012 by Martin Ošmera # # martin.osmera@gmail.com # # # # This program is free software; you can redistribute it and#or modify # # it under the terms of the GNU General Public License as published by # # the Free Software Foundation; either version 2 of the License, or # # (at your option) any later version. # # # # This program is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU General Public License for more details. # # # # You should have received a copy of the GNU General Public License # # along with this program; if not, write to the # # Free Software Foundation, Inc., # # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # ############################################################################ # >>> File inclusion guard if { ! [ info exists _EVENTHANDLERS_TCL ] } { set _EVENTHANDLERS_TCL _ # <<< File inclusion guard # -------------------------------------------------------------------------- # DESCRIPTION # Implements event handlers # This file should be loaded into class Editor in file "editor.tcl" # -------------------------------------------------------------------------- ## Binding for event # Commit new width of the editor widget -- for correct line wrapping # @return void public method Configure {} { if {$editor_to_use} {return} # Check if program is loaded if {!${::APPLICATION_LOADED}} {return} # Adjust editor height set eh_org $editor_height adjust_editor_height # Determinate width and height of the active area set width [winfo width $editor] incr width -6 incr width [expr {-($width % $defaultCharWidth)}] # If width changed then adjust line wrapping if {$editor_width != $width} { set editor_width $width set highlighted_lines [string repeat 0 [string bytelength $highlighted_lines]] highlight_visible_area } elseif {$eh_org != $editor_height} { highlight_visible_area } } ## This function handles mouse click in frame which wraps the editor text widget # This should happen much often, so this function ensures that everything # is still ok. # @parm Int x - X coordinate # @parm Int y - Y coordinate # @return void public method click_under_editor {x y} { Configure catch { $editor tag remove sel 0.0 end } # Move insertion cursor $editor mark set insert [$editor index @$x,$y+1l] # Adjust meters rightPanel_adjust [expr {int([$editor index insert])}] recalc_status_counter {} 1 $editor see insert } ## Handle click on "Line numbers" # Add/Remove breakpoint # @parm Int x - realative X coordinate # @parm Int y - realative Y coordinate # @return void public method lineNumbers_click {x y} { Breakpoint [wrap_aux_line2idx [expr {int([$lineNumbers index @$x,$y])}]] } ## Handle click on "Icon border" # Add/Remove bookmarks # @parm Int x - realative X coordinate # @parm Int y - realative Y coordinate # @return void public method iconBorder_click {x y} { Bookmark [wrap_aux_line2idx [expr {int([$iconBorder index @$x,$y])}]] } ## Do the same as scroll + set up the scollbar # @parm Float fraction0 - Freaction where to move # @parm Float fraction1 - Freaction where to setup end of visible area for the scrollbar # @return void public method scrollSet {fraction0 fraction1} { if {$editor_to_use} {return} $scrollbar set $fraction0 $fraction1 scroll moveto $fraction0 } public method scroll_0 args { if {$editor_to_use} {return} if {[lindex $args 0] != {moveto}} { eval "$this scroll $args" return } scroll [expr {int([lindex $args 1] * [$editor index end] + 1)}] } ## Scroll simultaneously Icon border, Lines count and editor widget # @parm String - Scroll command (eg. 'moveto') # @parm Float - Scroll fraction # @parm String = {} - Units # @return void public method scroll args { if {$editor_to_use} {return} # This function cannot be caled recursively if {$scroll_in_progress} {return} set scroll_in_progress 1 set line 0 if {[lindex $args 0] == {scroll}} { set line [expr {int([$editor index @5,5])}] set unit [string index [lindex $args end] 0] if {$unit != {p}} { incr line [lindex $args 1] } else { incr line [expr {30 * [lindex $args 1]}] } incr line -1 $editor yview $line set row $line incr row set col 0 } else { eval "$editor yview $args" set idx [$editor index @5,5] scan $idx "%d.%d" row col $editor see $idx } highlight_visible_area ;# Highlight lines which hasn't been highlighted yet update idletasks set tmp_row $row if {$number_of_wraps} { set remaining $number_of_wraps for {set i 1} {$i < $row} {incr i} { set wrap [lindex $map_of_wraped_lines $i] if {$wrap < 0} { set wrap 0 } incr tmp_row $wrap incr remaining -$wrap if {!$remaining} {break} } } if {$col != 0} { incr tmp_row [get_count_of_lines "$idx linestart" "$idx"] } incr tmp_row -1 $iconBorder yview $tmp_row $lineNumbers yview $tmp_row if {$number_of_wraps} { if {$tmp_row != $line} { highlight_visible_area ;# Highlight lines which hasn't been highlighted yet } } # Done ... update idletasks set scroll_in_progress 0 } ## Invoke editor popup menu # @parm Int X - absolute X coordinate # @parm Int Y - absolute Y coordinate # @parm Int x - relative X coordinate # @parm Int y - relative Y coordinate # @return void public method popupMenu {X Y x y} { if {![winfo exists $menu]} {return} if {$frozen} { set address [$parentObject simulator_line2address \ [expr {int([$editor index @$x,$y])}] \ [$parentObject simulator_get_filenumber $fullFileName] \ ] if {$address == {}} { set state {disabled} } else { set state {normal} } $menu entryconfigure [::mc "LJMP this line"] -state $state $menu entryconfigure [::mc "LCALL this line"] -state $state } else { $menu entryconfigure [::mc "LJMP this line"] -state disabled $menu entryconfigure [::mc "LCALL this line"] -state disabled } tk_popup $menu $X $Y $editor mark set insert "@$x,$y" recalc_status_counter {} 0 } ## Invoke Icon Border popup menu # @parm Int X - absolute X coordinate # @parm Int Y - absolute Y coordinate # @parm Int x - relative X coordinate # @parm Int y - relative Y coordinate # @return void public method iconBorder_popup_menu {X Y x y} { if {![winfo exists $IB_menu]} {return} set line [expr {int([$iconBorder index @$x,$y])}] set line [wrap_aux_line2idx $line] set pmenu_cline $line set bookmark [lindex $bookmarks $line] tk_popup $IB_menu $X $Y } ## Invoke Line Numbers popup menu # @parm Int X - absolute X coordinate # @parm Int Y - absolute Y coordinate # @parm Int x - relative X coordinate # @parm Int y - relative Y coordinate # @return void public method lineNumbers_popup_menu {X Y x y} { if {![winfo exists $LN_menu]} {return} set line [expr {int([$lineNumbers index @$x,$y])}] set line [wrap_aux_line2idx $line] set pmenu_cline $line set breakpoint [lindex $breakpoints $line] tk_popup $LN_menu $X $Y } ## Invoke statusbar popup menu # @parm Widget editor - Editor widget # @parm Int X - absolute X coordinate # @parm Int Y - absolute Y coordinate # @return void public method statusbar_popup_menu {editor X Y} { if {![winfo exists $stat_menu]} {return} if {[lindex $statusbar_menu_config 0] != 0} { set state normal } else { set state disabled } $stat_menu entryconfigure [::mc "Split vertical"] -state $state $stat_menu entryconfigure [::mc "Split horizontal"] -state $state if {[lindex $statusbar_menu_config 1] != 0} { set state normal } else { set state disabled } $stat_menu entryconfigure [::mc "Close current view"] -state $state if {[lindex $statusbar_menu_config 2] != 0} { set state normal } else { set state disabled } $stat_menu entryconfigure [::mc "Back"] -state $state if {[lindex $statusbar_menu_config 3] != 0} { set state normal } else { set state disabled } $stat_menu entryconfigure [::mc "Forward"] -state $state set ::X::selectedView $this focus $editor tk_popup $stat_menu $X $Y } ## Handles pseudo-event: "Selection" # @return void public method editor_selection {} { if {$selection_in_progress} {return} set selection_in_progress 1 switch -- $selection_mode { 0 { ;# Normal selection mode } 1 { ;# Block selection mode adjust_selection_to_block } } set selection_in_progress 0 } ## Handles event: "Control-Key-Up" # @return void public method control_down {} { $editor yview scroll 1 units } ## Handles event: "Control-Key-Up" # @return void public method control_up {} { $editor yview scroll -1 units } ## Handles event: "Control-Shift-Key-Up" and "Control-Shift-Key-Down" # @parm Bool up__down - 1 == Control-Shift-Key-Up; 0 == Control-Shift-Key-Down # @return void public method control_shift_updown {up__down} { if {$up__down} { if {int([$editor index insert]) == 1} { return } } else { if {(int([$editor index insert]) + 1) == int([$editor index end])} { return } } $editor configure -autoseparators 0 if {$up__down} { set target_idx [$editor index {insert-1l}] autocompletion_maybe_important_change [$editor index {insert-1l linestart}] [$editor index {insert lineend}] } else { set target_idx [$editor index {insert+1l}] autocompletion_maybe_important_change [$editor index {insert linestart}] [$editor index {insert+1l lineend}] } catch { $editor tag remove sel 1.0 end } set line0 [$editor get {insert linestart} {insert lineend}] if {$up__down} { set line1 [$editor get {insert-1l linestart} {insert-1l lineend}] } else { set line1 [$editor get {insert+1l linestart} {insert+1l lineend}] } $editor delete {insert linestart} {insert lineend} if {$up__down} { $editor delete {insert-1l linestart} {insert-1l lineend} } else { $editor delete {insert+1l linestart} {insert+1l lineend} } $editor insert insert $line1 if {$up__down} { $editor insert {insert-1l} $line0 } else { $editor insert {insert+1l} $line0 } set idx [expr {int([$editor index insert])}] parse $idx manage_autocompletion_list $idx if {$up__down} { set idx [expr {int([$editor index insert-1l])}] } else { set idx [expr {int([$editor index insert+1l])}] } parse $idx manage_autocompletion_list $idx # Check spelling on the other line update spellcheck_check_all [expr {int([$editor index insert])}] 1 # Move insertion cursor $editor mark set insert $target_idx $editor see insert $editor edit separator $editor configure -autoseparators 1 } ## Handles event: "Shift-Key-Down" # @return void public method shift_down {} { # Check spelling on the line which we are noe leaving spellcheck_check_all [expr {int([$editor index insert])}] tk::TextKeySelect $editor [get_up_down_idx 0] # Adjust selection in list of bookmarks and list of breakpoints rightPanel_adjust [expr {int([$editor index insert])}] # Adjust status bar counters recalc_status_counter {} $editor see insert } ## Handles event: "Shift-Key-Up" # @return void public method shift_up {} { # Check spelling on the line which we are noe leaving spellcheck_check_all [expr {int([$editor index insert])}] tk::TextKeySelect $editor [get_up_down_idx 1] # Adjust selection in list of bookmarks and list of breakpoints rightPanel_adjust [expr {int([$editor index insert])}] # Adjust status bar counters recalc_status_counter {} $editor see insert } ## Handles event: "Key-Up" # @return void public method up {} { # Check spelling on the line which we are now leaving spellcheck_check_all [expr {int([$editor index insert])}] # Move insertion cursor $editor mark set insert [get_up_down_idx 1] # Remove selection catch { $editor tag remove sel 1.0 end } # Adjust selection in list of bookmarks and list of breakpoints rightPanel_adjust [expr {int([$editor index insert])}] # Adjust status bar counters recalc_status_counter {} 1 $editor see insert } ## Handles event: "Key-Down" # @return void public method down {} { # Check spelling on the line which we are now leaving spellcheck_check_all [expr {int([$editor index insert])}] # Focus completion popup window if {$completion_win_opened} { catch { focus -force $completion_listbox $completion_listbox selection set [$completion_listbox items 0] } return } # Move insertion cursor $editor mark set insert [get_up_down_idx 0] # Remove selection catch { $editor tag remove sel 1.0 end } # Adjust selection in list of bookmarks and list of breakpoints rightPanel_adjust [expr {int([$editor index insert])}] # Adjust status bar counters recalc_status_counter {} $editor see insert } ## Handles event: "Key-Escape" # @return void public method key_escape {} { if {$completion_win_opened} { catch { detete_text_in_editor sel.first sel.last } } catch { $editor tag remove sel 1.0 end } } ## Handles event: "Shift-Key-Home" # @return void public method shift_home {} { # Selection tag defined if {[llength [$editor tag nextrange sel 1.0]]} { set sel_f [$editor index sel.first] set sel_l [$editor index sel.last] set idx0 [$editor index insert] $editor tag remove sel 1.0 end home_press set idx1 [$editor index insert] if {[$editor compare $idx0 == $sel_f]} { $editor tag add sel $idx1 $sel_l } elseif {[$editor compare $idx0 == $sel_l]} { $editor tag add sel $sel_f $idx1 } # Nothing selected } else { set idx [$editor index insert] home_press catch { $editor tag remove sel 1.0 end } if {[$editor compare $idx < insert]} { $editor tag add sel $idx insert } else { $editor tag add sel insert $idx } } } ## Handles event: "Control-Key-Home" # @return void public method control_home {} { $editor mark set insert 1.0 rightPanel_adjust [expr {int([$editor index insert])}] resetUpDownIndex recalc_status_counter {} 0 $editor see insert } ## Handles event: "Control-Key-End" # @return void public method control_end {} { $editor mark set insert end rightPanel_adjust [expr {int([$editor index insert])}] resetUpDownIndex recalc_status_counter {} 0 $editor see insert } ## Handles event: "Key-Home" # @return void public method home_press {} { # Local variables set idx [$editor index insert] ;# Insert index set row [expr {int($idx)}] ;# Current row regexp {\d+$} $idx col_original ;# Current column # Determinate start line index (true line start) if {[regexp {^\s+} [$editor get $row.0 "$row.0 lineend"] space]} { set col [string length $space] if {$col_original == $col} { $editor mark set insert $row.0 } else { $editor mark set insert $row.$col } } else { $editor mark set insert $row.0 } # Unset selection catch { $editor tag remove sel 1.0 end } # Adjust status bar counters resetUpDownIndex recalc_status_counter {} 0 $editor see insert } ## Handles event: "Key-Tab" # @return void public method tab_press {} { if {$spaces_no_tabs} { set indent_char [string repeat { } $number_of_spaces] } else { set indent_char "\t" } # Nothing selected or popup completion window is opened -> insert tab character if {$completion_win_opened || [$editor tag ranges sel] == {}} { Key $indent_char # Something selected -> indent } else { # convert selection indexes to line numbers set start [expr {int([$editor index sel.first])}] set end_o [$editor index sel.last] set end [expr {int($end_o)}] if {$end == $end_o} {incr end -1} # perform indent on each line in the block for {set line $start} {$line <= $end} {incr line} { $editor insert $line.0 $indent_char rightPanel_changeLineContent $line restore_line_markers $line } $editor tag add sel $start.0 [expr {$end + 1}].0 # Recalculate status bar recalc_status_counter {} 0 $editor see insert } } ## Handles event: "Shift-Key-Return", "Shift-Key-KP_Enter" # Smart new line # @return void public method shift_enter {} { if {$critical_edit_proc} {return} set critical_edit_proc 1 # Check spelling on the line which we are noe leaving spellcheck_check_all [expr {int([$editor index insert])}] deleteselection $editor insert insert "\n" set line [$editor get [list insert-1l linestart] [list insert-1l lineend]] if {![regexp {^\s*[^\w]+} $line line]} { set critical_edit_proc 0 return } $editor insert insert $line # Recalcutlate Left frame, status bar and right panel $editor see insert update recalc_left_frame recalc_status_counter {} rightPanel_adjust [expr {int([$editor index insert])}] set critical_edit_proc 0 # Reevaluate highlight on the next line if C language is used if {$prog_language == 1} { c_syntax_highlight [expr {int([$editor index insert])+1}] } } ## Handles event: "Key-Return", "Key-KP_Enter" # @return void public method enter {} { if {$critical_edit_proc} {return} set critical_edit_proc 1 $editor configure -autoseparators 0 set idx [$editor index insert] ;# Determinate insert index $editor insert $idx "\n" ;# Insert EOL resetUpDownIndex ;# Column changed set idx [expr {int($idx)}] incr idx # Check spelling on the line which we are noe leaving spellcheck_check_all $idx # Keep indention of the previous line if {$intentation_mode == {normal}} { # Determinate indetication characters set prev_line [$editor get \ [$editor index {insert-1l linestart}] \ [$editor index {insert-1l lineend}] \ ] if {[string length $prev_line]} { set indent_chars {} regexp {^\s+} $prev_line indent_chars # Insert indentication characers from the previous line if {$indent_chars != {}} { $editor insert $idx.0 $indent_chars } if {$prev_line == $indent_chars} { $editor delete {insert-1l linestart} {insert-1l lineend} } } } # Remove selected text deleteselection # Recalcutlate Left frame, status bar and right panel $editor see $idx.0 update recalc_left_frame recalc_status_counter {} rightPanel_adjust $idx set critical_edit_proc 0 # Reevaluate highlight on the next line if C language is used if {$prog_language == 1} { incr idx c_syntax_highlight $idx } $editor edit separator $editor configure -autoseparators 1 } ## Handles event: 'Menu' # @return void public method Key_Menu {} { # Close autocompletion popup window if {$completion_win_opened} { close_completion_popup_window } # Invoke popup menu $editor see insert set bbox [$editor bbox [$editor index insert]] tk_popup $menu \ [expr {[winfo rootx $editor] + [lindex $bbox 0] + 10}] \ [expr {[winfo rooty $editor] + [lindex $bbox 1] + 10}] } ## Handles event: 'KeyRelease' # @parm String key - Key name # @return void public method KeyRelease {key} { if {[lsearch {ISO_Next_Group ISO_Prev_Group Alt_R Alt_L Control Meta Shift_L Shift_R} $key] == -1} { if {$do_not_hide_comp_win} { set do_not_hide_comp_win 0 } else { close_completion_popup_window } } } ## Handles event: 'Key' # @return void public method Key {key {key_k {}}} { # Skip values with no meaning for us herw if {![string is print -strict $key] && $key != "\t"} { return } if {$key_handler_in_progress} { if {[llength $key_handler_buffer] < 4} { lappend key_handler_buffer $key } return } set key_handler_in_progress 1 set scroll_in_progress 1 ;# Block scrolling spellcheck_change_detected_pre autocompletion_maybe_important_change insert insert $editor configure -autoseparators 0 if { $auto_brackets && ($key == {'} || $key == "\"" || $key == {(} || $key == "\[" || $key == "\{") } then { # Enclose selected text by the selected charactere if {[llength [$editor tag nextrange sel 1.0]]} { $editor insert sel.first $key switch -- $key { {(} {$editor insert sel.last {)}} {[} {$editor insert sel.last {]}} "\{" {$editor insert sel.last "\}"} default { $editor insert sel.last $key } } $editor mark set insert sel.last $editor tag remove sel 1.0 end # Insert the selected character twice } else { set next_char [$editor get insert insert+1c] $editor insert insert $key switch -- $key { {(} {$editor insert insert {)}} {[} {$editor insert insert {]}} "\{" {$editor insert insert "\}"} {'} { if {$next_char != {'}} { $editor insert insert {'} } } "\"" { if {$next_char != "\""} { $editor insert insert "\"" } } default { $editor insert insert $key } } $editor mark set insert {insert - 1c} } } else { # Delete selected text deleteselection # Mode overwrite if {!$ins_ovr_mode} { if {[$editor compare insert != {insert lineend}]} { detete_text_in_editor insert insert+1c } } # Insert the given character $editor insert insert $key } # Restore highlight on the current line parse [expr {int([$editor index insert])}] set scroll_in_progress 1 ;# Block scrolling recalc_left_frame set scroll_in_progress 1 ;# Block scrolling # Invoke popup completion menu if {$auto_completion} { aux_Key_autocompletion_0 \ [$editor index {insert-1c wordstart}] \ [$editor index {insert-1c wordend}] } $editor edit separator $editor configure -autoseparators 1 if {[llength $key_handler_buffer]} { set key [lindex $key_handler_buffer 0] set key_handler_buffer [lreplace $key_handler_buffer 0 0] update set scroll_in_progress 0 ;# Unblock scrolling set key_handler_in_progress 0 Key $key } set key_handler_in_progress 0 update set scroll_in_progress 0 ;# Unblock scrolling spellcheck_change_detected_post } ## Handles event: 'Key-Delete' # @return void public method key_delete {} { if {![$this deleteselection 1]} { if {[$editor compare {insert linestart} != {insert+1c linestart}]} { set remove_trailing_space 1 } else { set remove_trailing_space 0 } $this detete_text_in_editor insert insert+1c if {$remove_trailing_space && [regexp {\s+$} [$editor get {insert linestart} {insert lineend}] space]} { set line_end [$editor index {insert lineend}] $editor delete $line_end-[string length $space]c {insert lineend} } } $this resetUpDownIndex $this recalc_left_frame $this parse [expr {int([$editor index insert])}] update } ## Handles event: 'Key-Backspace' # @return void public method key_backspace {} { if {$auto_brackets} { set char0 [$editor get insert-1c insert] set char1 [$editor get insert insert+1c] if { ($char0 == "\{" && $char1 == "\}") || ($char0 == {(} && $char1 == {)}) || ($char0 == {[} && $char1 == {]}) } then { $this detete_text_in_editor insert insert+1c } elseif {$char0 == $char1 && ($char0 == "\"" || $char1 == {'})} { $this detete_text_in_editor insert insert+1c } } if {![$this deleteselection]} { $this detete_text_in_editor insert-1c insert } $this resetUpDownIndex $this recalc_left_frame $this parse [expr {int([$editor index insert])}] update } # >>> File inclusion guard } # <<< File inclusion guard mcu8051ide-1.4.7/lib/dialogues/0000755000175000017500000000000012067167647016621 5ustar milleniummilleniummcu8051ide-1.4.7/lib/dialogues/selectmcu.tcl0000644000175000017500000014260712067167647021323 0ustar milleniummillenium#!/usr/bin/tclsh # Part of MCU 8051 IDE ( http://mcu8051ide.sf.net ) ############################################################################ # Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012 by Martin Ošmera # # martin.osmera@gmail.com # # # # This program is free software; you can redistribute it and#or modify # # it under the terms of the GNU General Public License as published by # # the Free Software Foundation; either version 2 of the License, or # # (at your option) any later version. # # # # This program is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU General Public License for more details. # # # # You should have received a copy of the GNU General Public License # # along with this program; if not, write to the # # Free Software Foundation, Inc., # # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # ############################################################################ # >>> File inclusion guard if { ! [ info exists _SELECTMCU_TCL ] } { set _SELECTMCU_TCL _ # <<< File inclusion guard # -------------------------------------------------------------------------- # DESCRIPTION # This namespace implements "MCU selection" dialog. # # Usage: # # Invocation of MCU selection dialog # ================================== # SelectMCU::activate # -> {mcu_type xdata xcode} # # # Other functions # ================================== # # SelectMCU::get_available_processors # -> List of available processors (e.g. {80C51 AT89C52 AT89C4051}) # # SelectMCU::get_processor_details processor_type # -> List of MCU definition (see proc. xml_data_parser1) # -------------------------------------------------------------------------- namespace eval SelectMCU { # String: Path to MCUs definition file variable definition_file "${::ROOT_DIRNAME}/data/mcus.xml" # List: available MCU vendors variable vendors [list [mc "all"] "Atmel" "Intel"] variable selected_mcu {} ;# List: Dialog return value {mcu_type xdata xcode} variable definition_data {} ;# List: Values gained from $definition_file variable local_definition_data {} ;# List: Basically the same as $definition_data but containing only the shown items variable mcu_names {} ;# List: Available processors (and show in the list) variable maximum_xcode 0x10000 ;# Int: Maximum external program memory (0x10000 - internal) variable vendor [mc "all"] ;# String: Selected vendor ## Variables related to GUI variable parent ;# Widget: Dialog parent (another window) variable win ;# Widget: Dialog window variable search_bar ;# Widget: Search bar entry box variable search_bar_clear ;# Widget: Search bar clear button variable listbox_widget ;# Widget: List box containing available MCUs variable value_lbl_uart ;# Widget: Label "UART:" - value variable value_lbl_voltage ;# Widget: Label "Operating voltage:" - value variable value_lbl_interrupts ;# Widget: Label "Interrupts:" - value variable value_lbl_timers ;# Widget: Label "Timers:" - value variable value_lbl_vendor ;# Widget: Label "Vendor" - value variable more_details_text ;# Widget: TextWidget "More details:" variable more_details_scrollbar ;# Widget: Scrollbar for $more_details_text variable details_xdata_aval ;# Widget: Frame containing scale and spinbox for XDATA memory variable details_xdata_note ;# Widget: Frame containing label "NOT available" for XDATA memory variable details_xcode_aval ;# Widget: Frame containing scale and spinbox for XCODE memory variable details_xcode_nota ;# Widget: Frame containing label "NOT available" for XCODE memory variable name_label ;# Widget: Label containing name of selected MCU variable image_label ;# Widget: Label with image for selected MCU variable xdata_scale ;# Widget: Scale for XDATA memory variable xdata_spinbox ;# Widget: SpinBox for XDATA memory variable xcode_scale ;# Widget: Scale for XCODE memory variable xcode_spinbox ;# Widget: SpinBox for XCODE memory ## Variables related to XML parser variable current_element ;# String: Current XML element variable expected ;# String: Expected next XML element variable take_data ;# Bool: Take element data on next parsing cycle variable mcu_definition ;# List: Definition of MCU currently being parsed variable current_mcu ;# String: Name of MCU currently being parsed ## Fonts used in the selection dialog if {$::GUI_AVAILABLE} { # ListBox containing available fonts variable listbox_widget_font [font create \ -family $::DEFAULT_FIXED_FONT \ -size [expr {int(-14 * $::font_size_factor)}] \ -weight bold \ ] # ListBox header -- label widget above the ListBox variable listbox_header_font [font create \ -family $::DEFAULT_FIXED_FONT \ -size [expr {int(-14 * $::font_size_factor)}] \ ] # Label with the MCU name variable name_font [font create \ -family {helvetica} \ -size [expr {int(-20 * $::font_size_factor)}] \ -weight bold \ ] # Labels like "Vendor:", "UART:", "Timers:", etc. variable normal_font [font create \ -family {helvetica} \ -size [expr {int(-12 * $::font_size_factor)}] \ ] # Labels with values like for "Vendor:", "Timers:", etc. variable bold_font [font create \ -family {helvetica} \ -size [expr {int(-12 * $::font_size_factor)}] \ -weight bold \ ] } ## Invoke MCU selection dialog # @parm Widget Parent - Dialog parent (some window) # @parm String initial - {Initial_MCU Initial_XDATA Initial_XCODE} # @return List - {mcu_type xdata xcode} or {} proc activate {Parent initial} { variable parent ;# Widget: Dialog parent (another window) variable selected_mcu ;# List: Dialog return value {mcu_type xdata xcode} variable mcu_definition ;# List: Definition of MCU currently being parsed variable win ;# Widget: Dialog window variable search_bar ;# Widget: Search bar entry box # Initialize NS variables set parent $Parent set selected_mcu {} set mcu_definition {} # Load MCU definition file if {![load_definition]} {return} set mcu_definition {} create_gui ;# Create dialog GUI elements fill_gui ;# Initialize GUI elements # Finalize window creation wm iconphoto $win ::ICONS::16::kcmmemory wm title $win [mc "Choose MCU - MCU 8051 IDE"] if {$::font_size_factor > 1.0} { wm minsize $win 870 500 } else { wm minsize $win 720 500 } wm protocol $win WM_DELETE_WINDOW { ::SelectMCU::cancel } wm transient $win $parent raise $win catch { grab $win } # Initialize search bar $search_bar insert end [lindex $initial 0] focus -force $search_bar $search_bar selection range 0 end set selected_mcu [lindex $initial 0] # Initialize XDATA & XCODE scales if {[lindex $initial 1]} { set ::SelectMCU::xdata_ena 1 set ::SelectMCU::xdata_value [lindex $initial 1] } else { set ::SelectMCU::xdata_ena 0 set ::SelectMCU::xdata_value 0 xdata_disena } if {[lindex $initial 2]} { set ::SelectMCU::xcode_ena 1 set ::SelectMCU::xcode_value [lindex $initial 2] } else { set ::SelectMCU::xcode_ena 0 set ::SelectMCU::xcode_value 0 xcode_disena } # Wait until the window is destroyed tkwait window $win # Create resulting string if {$selected_mcu == {}} { set result {} } else { if {${::SelectMCU::xdata_ena}} { set xdata ${::SelectMCU::xdata_value} } else { set xdata 0 } if {${::SelectMCU::xcode_ena}} { set xcode ${::SelectMCU::xcode_value} } else { set xcode 0 } if {$xdata == {}} { set xdata 0 } if {$xcode == {}} { set xcode 0 } set result [list $selected_mcu $xdata $xcode] } return $result } ## Load MCU definitions into the ListBox # @return void proc fill_gui {} { variable definition_data ;# List: Values gained from $definition_file variable local_definition_data ;# List: Basically the same as $definition_data but containing only the shown items variable listbox_widget ;# Widget: List box containing available MCUs variable listbox_widget_font ;# ListBox containing available fonts variable mcu_names ;# List: available processors variable vendor ;# String: Selected vendor set mcu_names {} set local_definition_data {} # Iterate over defined MCUs foreach mcu $definition_data { # Filter specific vendors if {$vendor != [mc "all"] && [lindex $mcu 11] != $vendor} { continue } lappend local_definition_data $mcu # MCU type set mcu_type [lindex $mcu 0] lappend mcu_names $mcu_type set text $mcu_type set len [string length $mcu_type] append text [string repeat { } [expr {24 - $len}]] # Size of program memory set str [lindex $mcu 3] append str { KB} set len [string length $str] append text [string repeat { } [expr {8 - $len}]] $str # Size of internal data memory set str [expr {[lindex $mcu 5] + [lindex $mcu 10]}] append str { B} set len [string length $str] append text [string repeat { } [expr {13 - $len}]] $str # Number of IO lines + processor frequency set str [lindex $mcu 6] set len [string length $str] append text [string repeat { } [expr {12 - $len}]] $str { } [lindex $mcu 4] # Insert the text into the ListBox $listbox_widget insert end #auto \ -text $text -data $mcu_type \ -font $listbox_widget_font \ -image ::ICONS::16::kcmmemory } } ## Create GUI elements of the selection dialog window # @return void proc create_gui {} { variable win ;# Widget: Dialog window variable search_bar ;# Widget: Search bar entry box variable search_bar_clear ;# Widget: Search bar clear button variable listbox_widget ;# Widget: List box containing available MCUs variable value_lbl_uart ;# Widget: Label "UART:" - value variable value_lbl_voltage ;# Widget: Label "Operating voltage:" - value variable value_lbl_interrupts ;# Widget: Label "Interrupts:" - value variable value_lbl_timers ;# Widget: Label "Timers:" - value variable value_lbl_vendor ;# Widget: Label "Vendor" - value variable more_details_text ;# Widget: TextWidget "More details:" variable more_details_scrollbar ;# Widget: Scrollbar for $more_details_text variable details_xdata_aval ;# Widget: Frame containing scale and spinbox for XDATA memory variable details_xdata_note ;# Widget: Frame containing label "NOT available" for XDATA memory variable details_xcode_aval ;# Widget: Frame containing scale and spinbox for XCODE memory variable details_xcode_nota ;# Widget: Frame containing label "NOT available" for XCODE memory variable listbox_widget_font ;# ListBox containing available fonts variable listbox_header_font ;# ListBox header -- label widget above the ListBox variable bold_font ;# Labels with values like for "Vendor:", "Timers:", etc. variable normal_font ;# Labels like "Vendor:", "UART:", "Timers:", etc. variable name_font ;# Label with the MCU name variable name_label ;# Widget: Label containing name of selected MCU variable image_label ;# Widget: Label with image for selected MCU variable xdata_scale ;# Widget: Scale for XDATA memory variable xdata_spinbox ;# Widget: Scale for XDATA memory variable xcode_spinbox ;# Widget: SpinBox for XCODE memory variable xcode_scale ;# Widget: Scale for XCODE memory variable vendors ;# List: available MCU vendors # Create toplevel window set win [toplevel .selectmcu_dialog -class {Select MCU} -bg ${::COMMON_BG_COLOR}] # Create search bar widgets (but don't pack them) set search_bar_frame [frame $win.search_bar_frame] set search_bar_clear [ttk::button $search_bar_frame.clear_but \ -image ::ICONS::16::clear_left \ -command ::SelectMCU::clear_search_bar \ -state disabled \ -style Flat.TButton \ ] DynamicHelp::add $search_bar_frame.clear_but \ -text [mc "Clear search bar"] set search_bar [ttk::entry $search_bar_frame.search_bar \ -validate all \ -validatecommand {::SelectMCU::search %P} \ ] DynamicHelp::add $search_bar \ -text [mc "Search bar, enter something like \"C4051\""] # Create ListBox and its scrollbar set top_frame [frame $win.top_frame] set top_left_frame [frame $top_frame.left -bd 1 -relief sunken] set top_left_top_frame [frame $top_left_frame.top] set listbox_widget [ListBox $top_left_frame.listbox \ -selectfill 1 -bg {#FFFFFF} -bd 0 -height 0 \ -selectbackground {#CCCCFF} -selectmode single \ -selectforeground {#0000AA} \ -highlightcolor {#BBBBFF} \ -highlightthickness 0 -padx 20 -deltay 20 \ -yscrollcommand "$top_frame.scrollbar set" \ ] if {[winfo exists $listbox_widget.c]} { bind $listbox_widget.c {%W yview scroll +5 units; break} bind $listbox_widget.c {%W yview scroll -5 units; break} } bind $listbox_widget <> {::SelectMCU::select_item} $listbox_widget bindImage {::SelectMCU::close_window;#} $listbox_widget bindText {::SelectMCU::close_window;#} set tree_scrollbar [ttk::scrollbar $top_frame.scrollbar \ -orient vertical \ -command [list $listbox_widget yview] \ ] # Create ListBox header pack [label $top_left_frame.header \ -font $listbox_header_font \ -bg {#DDDDDD} -bd 0 -padx 25 \ -justify left -anchor w \ -text [mc "Processor Type\t\tCODE/PMEM IDATA/IRAM GPIO Frequency"] \ ] -fill x # Create remaining parts of top frame and pack them pack [label $search_bar_frame.search_label \ -text [mc "Search:"] \ ] -side left -padx 5 pack $search_bar -fill x -expand 1 -side left pack $search_bar_clear -after $search_bar -side left pack [label $search_bar_frame.vendor_label \ -text [mc " Vendor:"] \ ] -side left -padx 5 -after $search_bar_clear pack [ttk::combobox $search_bar_frame.vendor_cb \ -state readonly \ -textvariable {::SelectMCU::vendor} \ -values $vendors \ ] -side left -padx 5 -after $search_bar_frame.vendor_label bind $search_bar_frame.vendor_cb <> {::SelectMCU::change_vendor} pack $search_bar_frame -fill x -pady 10 -padx 5 # Pack all frames except the bottom frame and the details frame pack $top_left_top_frame -fill x pack $listbox_widget -fill both -expand 1 pack $top_left_frame -fill both -expand 1 -side left pack $tree_scrollbar -fill y -after $top_left_frame -side right pack $top_frame -fill both -expand 1 -padx 5 # Create parts of details frame set details_frame [frame $win.details_frame] set details_left [frame $details_frame.left] set details_middle [frame $details_frame.middle -width 300] set details_right [frame $details_frame.right] set details_middle_top [frame $details_middle.top] set details_middle_bottom [frame $details_middle.bottom] # Left side set name_label [label $details_left.name \ -text "" -font $name_font \ ] set image_label [label $details_left.image \ -image [image create photo] -text { } \ -width 200 -height 200 -compound left \ ] DynamicHelp::add $image_label -text [mc "One of available packages for selected microcontroller"] pack $name_label -fill x pack $image_label -padx 5 # General features set i 0 foreach text {{Vendor:} {UART:} {Operating voltage:} {Interrupt sources:} {Timers:}} { grid [label $details_middle_top.lbl_$i \ -text [mc $text] \ -justify left \ -font $normal_font \ ] -row $i -column 0 -sticky w incr i } set value_lbl_vendor [label $details_middle_top.value_lbl_vendor \ -justify left -anchor w -font $bold_font \ ] set value_lbl_uart [label $details_middle_top.value_lbl_uart \ -justify left -anchor w -font $bold_font \ ] set value_lbl_voltage [label $details_middle_top.value_lbl_voltage \ -justify left -anchor w -font $bold_font \ ] set value_lbl_interrupts [label $details_middle_top.value_lbl_interr \ -justify left -anchor w -font $bold_font \ ] set value_lbl_timers [label $details_middle_top.value_lbl_timers \ -justify left -anchor w -font $bold_font \ ] grid $value_lbl_vendor -row 0 -column 1 -sticky we grid $value_lbl_uart -row 1 -column 1 -sticky we grid $value_lbl_voltage -row 2 -column 1 -sticky we grid $value_lbl_interrupts -row 3 -column 1 -sticky we grid $value_lbl_timers -row 4 -column 1 -sticky we grid columnconfigure $details_middle_top 0 -minsize 140 grid columnconfigure $details_middle_top 1 -weight 1 # Details set more_details_text [text $details_middle_bottom.text \ -yscrollcommand ::SelectMCU::details_scrollbar_set \ -width 0 -heigh 0 -bd 0 -relief flat -font $bold_font \ -highlightthickness 0 -state disabled -bg ${::COMMON_BG_COLOR} \ -cursor left_ptr -fg {#555555} -wrap word \ ] set more_details_scrollbar [ttk::scrollbar \ $details_middle_bottom.scrollbar \ -command "$more_details_text yview" \ -orient vertical \ ] pack $more_details_text -side left -fill both -expand 1 # Pack general & details frames pack $details_middle_top -fill both -pady 10 pack $details_middle_bottom -fill both -expand 1 # Cretate XDATA and XCODE scales and such set details_right_top [ttk::labelframe $details_right.top \ -text [mc "External RAM (XDATA)"] \ ] set details_right_bottom [ttk::labelframe $details_right.bottom \ -text [mc "External ROM/FLASH (XCODE)"] \ ] set details_xdata_note [label $details_right_top.not_available \ -text [mc "NOT available"] -fg {#FF8888} \ ] set details_xdata_aval [frame $details_right_top.available] pack [checkbutton $details_xdata_aval.checkbutton \ -variable ::SelectMCU::xdata_ena \ -text [mc "Enable"] \ -command ::SelectMCU::xdata_disena \ ] -anchor w DynamicHelp::add $details_xdata_aval.checkbutton \ -text [mc "Connect external data memory"] set details_right_top_btm [frame $details_xdata_aval.btm] set xdata_scale [ttk::scale $details_right_top_btm.scale \ -orient horizontal \ -variable ::SelectMCU::xdata_value \ -from 0 -to 0x10000 \ -command " set ::SelectMCU::xdata_value \[expr {int(\${::SelectMCU::xdata_value})}\] $details_right_top_btm.spinbox selection range 0 end #" \ ] DynamicHelp::add $details_right_top_btm.scale \ -text [mc "Amount of external data memory"] pack $xdata_scale -fill x -side left -expand 1 -padx 2 set xdata_spinbox [ttk::spinbox $details_right_top_btm.spinbox \ -textvariable ::SelectMCU::xdata_value \ -width 5 -from 0 -to 0x10000 \ -validate all \ -validatecommand {::SelectMCU::validate_xdata %P} \ ] DynamicHelp::add $details_right_top_btm.spinbox \ -text [mc "Amount of external data memory"] pack $xdata_spinbox -side right -after $details_right_top_btm.scale pack $details_right_top_btm -fill both -expand 1 set details_xcode_nota [label $details_right_bottom.not_available \ -text [mc "NOT available"] -fg {#FF8888} \ ] set details_xcode_aval [frame $details_right_bottom.available] pack [checkbutton $details_xcode_aval.checkbutton \ -variable ::SelectMCU::xcode_ena \ -text [mc "Enable"] \ -command ::SelectMCU::xcode_disena \ ] -anchor w DynamicHelp::add $details_xcode_aval.checkbutton \ -text [mc "Connect external program memory"] set details_right_bottom_btm [frame $details_xcode_aval.btm] set xcode_scale [ttk::scale $details_right_bottom_btm.scale \ -orient horizontal \ -variable ::SelectMCU::xcode_value \ -from 0 -to 0x10000 \ -command " set ::SelectMCU::xcode_value \[expr {int(\${::SelectMCU::xcode_value})}\] #" \ ] DynamicHelp::add $details_right_bottom_btm.scale \ -text [mc "Amount of total program memory minus internal program memory"] pack $xcode_scale -fill x -side left -expand 1 -padx 2 set xcode_spinbox [ttk::spinbox $details_right_bottom_btm.spinbox \ -textvariable ::SelectMCU::xcode_value \ -width 5 -from 0 -to 0x10000 \ -validate all \ -validatecommand {::SelectMCU::validate_xcode %P} \ ] DynamicHelp::add $details_right_bottom_btm.spinbox \ -text [mc "Amount of total program memory minus internal program memory"] pack $xcode_spinbox -side right -after $details_right_bottom_btm.scale pack $details_right_bottom_btm -fill both -expand 1 grid $details_right_top -row 0 -column 0 -sticky wens -padx 5 -pady 10 grid $details_right_bottom -row 1 -column 0 -sticky wens -padx 5 -pady 10 grid rowconfigure $details_right 0 -minsize 100 grid rowconfigure $details_right 1 -minsize 100 grid columnconfigure $details_right 0 -weight 1 -minsize 180 # Pack parts of details frame pack $details_left -side left pack $details_middle -side left -fill both -expand 1 -padx 15 -pady 10 pack $details_right -side right -fill y -after $details_middle -padx 5 pack $details_frame -fill x -padx 5 -pady 10 # Create and pack 'OK' and 'CANCEL' buttons set buttonFrame [frame $win.buttonFrame] pack [ttk::button $buttonFrame.ok \ -text [mc "Ok"] \ -compound left \ -image ::ICONS::16::ok \ -command {::SelectMCU::close_window} \ ] -side left -padx 2 pack [ttk::button $buttonFrame.cancel \ -text [mc "Cancel"] \ -compound left \ -image ::ICONS::16::button_cancel \ -command {::SelectMCU::cancel} \ ] -side left -padx 2 pack [ttk::separator $win.sep -orient horizontal] -fill x pack $buttonFrame -side bottom -after $details_frame -anchor e -padx 5 -pady 5 } ## Close MCU selection dialog and force its return value to an empty string # @return void proc close_window {} { variable definition_data ;# List: Values gained from $definition_file variable mcu_names ;# List: available processors variable win ;# Widget: Dialog window set definition_data {} set mcu_names {} grab release $win destroy $win } ## Load MCU database # @return void proc load_definition {} { variable parent ;# Widget: Dialog parent (another window) variable definition_file ;# String: Path to MCUs definition file variable definition_data ;# List: Values gained from $definition_file variable mcu_definition ;# List: Definition of MCU currently being parsed variable expected ;# String: Expected next XML element variable take_data ;# Bool: Take element data on next parsing cycle # Initialize NS variables set definition_data {} set mcu_definition {} set expected {mcus} set current_element {} set take_data 0 # Open definition file if {[catch { set file [open $definition_file {r}] }]} then { tk_messageBox \ -parent $parent \ -type ok \ -icon warning \ -title mcus.xml \ -message [mc "Unable to open file containing supported MCUs,\nplease check your installation"] return 0 } # Create XML parser set parser [::xml::parser -final 1 -ignorewhitespace 1 \ -elementstartcommand {::SelectMCU::xml_data_parser0_element} \ -characterdatacommand {::SelectMCU::xml_data_parser0_data} \ ] # Start XML parser if {[catch { $parser parse [read $file] if {$mcu_definition != {}} { foreach val $mcu_definition { if {$val == {}} { error "Incomplete definition for [lindex $mcu_definition 0]" } } lappend definition_data $mcu_definition } } result]} then { set definition_data {} tk_messageBox \ -parent $parent \ -icon warning \ -type ok \ -title [mc "Error"] \ -message [mc "MCUs database file is corrupted (code:600),\nplease check your installation"] puts stderr $result close $file return 0 } # Close file and free parser close $file $parser free return 1 } ## Get list of MCUs defined in the database # @return List - Defined processors (e.g. {8051 AT89C2051 ...}) proc get_available_processors {} { variable definition_data ;# List: Values gained from $definition_file variable definition_file ;# String: Path to MCUs definition file variable expected ;# String: Expected next XML element # Initialize NS variables set expected {mcus} set definition_data {} ;# <-- Result will be stored here # Open database file if {[catch { set file [open $definition_file {r}] }]} then { puts stderr "Unable to open file containing supported MCUs, please check your installation" return {} } # Create XML parser set parser [::xml::parser -final 1 -ignorewhitespace 1 \ -elementstartcommand {::SelectMCU::xml_data_parser2_element} \ ] # Start XML parser if {[catch { $parser parse [read $file] } result]} then { set definition_data {} puts stderr "MCUs database file is corrupted (code:641),\nplease check your installation" puts stderr $result } # Close file and free parser close $file $parser free return $definition_data } ## Gain detail description for the given processor # @parm String mcu_name - Processor type (e.g. AT89C51RC) # @return List - (see proc. xml_data_parser1) proc get_processor_details {mcu_name} { variable definition_file ;# String: Path to MCUs definition file variable definition_data ;# List: Values gained from $definition_file variable expected ;# String: Expected next XML element variable take_data ;# Bool: Take element data on next parsing cycle variable mcu_definition ;# List: Definition of MCU currently being parsed variable current_mcu ;# String: Name of MCU currently being parsed # Initialize NS variables set mcu_definition $mcu_name set expected {mcus} set definition_data {} ;# <-- Result will be stored here set take_data 0 set current_mcu {} # Open database file if {[catch { set file [open $definition_file {r}] }]} then { puts stderr "Unable to open file containing supported MCUs, please check your installation" return {} } # Create XML parser set parser [::xml::parser -final 1 -ignorewhitespace 1 \ -elementstartcommand {::SelectMCU::xml_data_parser1_element} \ -characterdatacommand {::SelectMCU::xml_data_parser1_data} \ ] # Start XML parser if {[catch { $parser parse [read $file] } result]} then { set definition_data {} puts stderr "MCUs database file is corrupted (code:688),\nplease check your installation" puts stderr $result } # Close file and free parser close $file $parser free return $definition_data } ## XML parser handler for procedure get_available_processors -- Takes XML tags # @parm String arg1 - name of the element # @parm List attrs - list of attributes '{attr0 val0 attr1 val1 ...}' # @return void proc xml_data_parser2_element {arg1 attrs} { variable definition_data ;# List: Values gained from $definition_file variable expected ;# String: Expected next XML element # Check for consistent formatting if {$arg1 != $expected} { error "Bad element `$arg1'" } switch -- $arg1 { {mcus} { set expected {mcu} } {mcu} { set expected {timers} set len [llength $attrs] # Search for attribute "name" for {set i 0} {$i < $len} {incr i 2} { set val [lindex $attrs $i] if {$val == {name}} { # Append MCU name to result incr i lappend definition_data [lindex $attrs $i] break } } } {timers} {set expected {more}} {more} {set expected {bits}} {bits} {set expected {writeonly}} {writeonly} {set expected {sfr}} {sfr} {set expected {mcu}} } } ## XML parser handler for procedure get_processor_details -- Takes XML data # @parm String arg1 - content of the element # @return void proc xml_data_parser1_data {arg1} { variable definition_data ;# List: Values gained from $definition_file variable expected ;# String: Expected next XML element variable mcu_definition ;# List: Definition of MCU currently being parsed variable current_element ;# String: Current XML element variable take_data ;# Bool: Take element data on next parsing cycle # Take data only if they were expected if {!$take_data} {return} set take_data 0 # Take data section only for 1 processor if {$mcu_definition == {} || ![llength $definition_data]} { return } # Adjust data string set arg1 [string trim $arg1] regsub {\s+} $arg1 { } arg1 # Validate and store data switch -- $current_element { {bits} { ;# Incomplete registers if {![regexp {([0-9A-Fa-f]{4})?(\s+[0-9A-Fa-f]{4})*} $arg1]} { error "MCUs database file corrupted" } lset definition_data 18 $arg1 } {writeonly} { ;# Write only registers if {![regexp {([0-9A-Fa-f]{2})?(\s+[0-9A-Fa-f]{2})*} $arg1]} { error "MCUs database file corrupted" } lset definition_data 19 $arg1 } {sfr} { ;# available special function registers and bit addressable bits in SFR lset definition_data 43 $arg1 set mcu_definition {} ;# This is the last tag } } } ## XML parser handler for procedure get_processor_details -- Takes XML tags # @parm String arg1 - name of the element # @parm List attrs - list of attributes '{attr0 val0 attr1 val1 ...}' # @return void proc xml_data_parser1_element {arg1 attrs} { variable definition_data ;# List: Values gained from $definition_file variable expected ;# String: Expected next XML element variable mcu_definition ;# List: Definition of MCU currently being parsed variable current_mcu ;# String: Name of MCU currently being parsed variable current_element ;# String: Current XML element variable take_data ;# Bool: Take element data on next parsing cycle set take_data 0 ## Take tag attributes set current_element $arg1 if {$arg1 != $expected} { error "Bad element `$arg1'" } switch -- $arg1 { {mcus} { set expected {mcu} } {mcu} { set expected {timers} set len [llength $attrs] for {set i 0} {$i < $len} {incr i 2} { set val [lindex $attrs $i] if {$val == {name}} { incr i set current_mcu [lindex $attrs $i] if {$mcu_definition != $current_mcu} { return } } } set definition_data [list \ {} {} {} {} {} {} {} {} \ {} {} {} {} {} {} {} {} \ {} {} {} {} {} {} {} {} \ {} {} {} {} {} {} {} {} \ {} {} {} {} {} {} {} {} \ {} {} {} {} \ ] for {set i 0} {$i < $len} {incr i} { switch -- [lindex $attrs $i] { {xdata} { incr i xml_dp1_attr_yes_no 0 [lindex $attrs $i] } {xcode} { incr i xml_dp1_attr_yes_no 1 [lindex $attrs $i] } {code} { incr i set val [lindex $attrs $i] if {![string is digit -strict $val] || $val < 0 || $val > 0x10000} { error "MCUs database file corrupted" } lset definition_data 2 $val } {ram} { incr i set val [lindex $attrs $i] if {![string is digit -strict $val] || $val < 0 || $val > 256} { error "MCUs database file corrupted" } lset definition_data 3 $val } {portbits} { incr i set val [lindex $attrs $i] if {![string is digit -strict $val] || $val < 0 || $val > 256} { error "MCUs database file corrupted" } lset definition_data 4 $val } {uart} { incr i xml_dp1_attr_yes_no 5 [lindex $attrs $i] } {timer2} { incr i xml_dp1_attr_yes_no 6 [lindex $attrs $i] } {watchdog} { incr i xml_dp1_attr_yes_no 7 [lindex $attrs $i] } {eram} { incr i set val [lindex $attrs $i] if {![string is digit -strict $val] || $val < 0 || $val > 0x10000} { error "MCUs database file corrupted" } lset definition_data 8 $val } {dualdtpr} { incr i xml_dp1_attr_yes_no 9 [lindex $attrs $i] } {auxr} { incr i xml_dp1_attr_yes_no 10 [lindex $attrs $i] } {t2mod} { incr i xml_dp1_attr_yes_no 11 [lindex $attrs $i] } {port0} { incr i set val [lindex $attrs $i] if {$val != {} && ![regexp {^[01]{8}$} $val]} { error "MCUs database file corrupted" } lset definition_data 12 $val } {port1} { incr i set val [lindex $attrs $i] if {$val != {} && ![regexp {^[01]{8}$} $val]} { error "MCUs database file corrupted" } lset definition_data 13 $val } {port2} { incr i set val [lindex $attrs $i] if {$val != {} && ![regexp {^[01]{8}$} $val]} { error "MCUs database file corrupted" } lset definition_data 14 $val } {port3} { incr i set val [lindex $attrs $i] if {$val != {} && ![regexp {^[01]{8}$} $val]} { error "MCUs database file corrupted" } lset definition_data 15 $val } {port4} { incr i set val [lindex $attrs $i] if {$val != {} && ![regexp {^[01]{8}$} $val]} { error "MCUs database file corrupted" } lset definition_data 16 $val } {pof} { incr i xml_dp1_attr_yes_no 17 [lindex $attrs $i] } {gf0} { incr i xml_dp1_attr_yes_no 20 [lindex $attrs $i] } {gf1} { incr i xml_dp1_attr_yes_no 21 [lindex $attrs $i] } {pd} { incr i xml_dp1_attr_yes_no 22 [lindex $attrs $i] } {idl} { incr i xml_dp1_attr_yes_no 23 [lindex $attrs $i] } {smod0} { incr i xml_dp1_attr_yes_no 24 [lindex $attrs $i] } {iph} { incr i xml_dp1_attr_yes_no 25 [lindex $attrs $i] } {acomparator} { incr i xml_dp1_attr_yes_no 26 [lindex $attrs $i] } {euart} { incr i xml_dp1_attr_yes_no 27 [lindex $attrs $i] } {clkreg} { incr i xml_dp1_attr_yes_no 28 [lindex $attrs $i] } {pwdex} { incr i xml_dp1_attr_yes_no 29 [lindex $attrs $i] } {spi} { incr i xml_dp1_attr_yes_no 30 [lindex $attrs $i] } {wdtcon} { incr i xml_dp1_attr_yes_no 31 [lindex $attrs $i] } {eeprom} { incr i set val [lindex $attrs $i] if {![string is digit -strict $val]} { error "MCUs database file corrupted" } lset definition_data 32 $val } {intelpe} { incr i xml_dp1_attr_yes_no 33 [lindex $attrs $i] } {pwm} { incr i xml_dp1_attr_yes_no 34 [lindex $attrs $i] } {x2reset} { incr i xml_dp1_attr_yes_no 35 [lindex $attrs $i] } {ckcon} { incr i xml_dp1_attr_yes_no 36 [lindex $attrs $i] } {auxr1gf3} { incr i xml_dp1_attr_yes_no 37 [lindex $attrs $i] } {ao} { incr i xml_dp1_attr_yes_no 38 [lindex $attrs $i] } {wdtprg} { incr i xml_dp1_attr_yes_no 39 [lindex $attrs $i] } {hddptr} { incr i xml_dp1_attr_yes_no 40 [lindex $attrs $i] } {auxrwdidle} { incr i xml_dp1_attr_yes_no 41 [lindex $attrs $i] } {auxrdisrto} { incr i xml_dp1_attr_yes_no 42 [lindex $attrs $i] } default { incr i } } } } {timers} { set expected {more} } {more} { set expected {bits} } {bits} { if {$mcu_definition == $current_mcu} { set take_data 1 } set expected {writeonly} } {writeonly} { if {$mcu_definition == $current_mcu} { set take_data 1 } set expected {sfr} } {sfr} { if {$mcu_definition == $current_mcu} { set take_data 1 } set expected {mcu} } } } ## Auxiliary procedure for xml_data_parser1 # Invoke error if the given value was neither "yes" nor "no" # @parm Int index - Index in list $definition_data # @parm String value - Value to set in $definition_data # @return void proc xml_dp1_attr_yes_no {index value} { variable definition_data ;# List: Values gained from $definition_file if {$value != {yes} && $value != {no}} { error "MCUs database file corrupted" } lset definition_data $index $value } ## XML parser handler for procedure load_definition -- takes XML tags # @parm String arg1 - name of the element # @parm List attrs - list of attributes '{attr0 val0 attr1 val1 ...}' # @return void proc xml_data_parser0_element {arg1 attrs} { variable definition_data ;# List: Values gained from $definition_file variable expected ;# String: Expected next XML element variable current_element ;# String: Current XML element variable take_data ;# Bool: Take element data on next parsing cycle variable mcu_definition ;# List: Definition of MCU currently being parsed variable vendors ;# List: available MCU vendors if {$arg1 != $expected} { error "Bad element `$arg1'" } set current_element $arg1 switch -- $arg1 { {mcus} { set expected {mcu} } {mcu} { if {$mcu_definition != {}} { foreach val $mcu_definition { if {$val == {}} { error "Incomplete definition for [lindex $mcu_definition 0]" } } lappend definition_data $mcu_definition } set expected {timers} set mcu_definition [list {} {} {} {} {} {} {} {} {} {} {} {}] for {set i 0} {$i < [llength $attrs]} {incr i} { switch -- [lindex $attrs $i] { {name} { incr i set val [lindex $attrs $i] if {![string is alnum -strict $val]} { error "MCU name must match ^\[\w\d\]+$" } lset mcu_definition 0 $val } {xdata} { incr i set val [lindex $attrs $i] if {$val != {yes} && $val != {no}} { error "Attribute XDATA must have value \"yes\" or \"no\"" } lset mcu_definition 1 $val } {xcode} { incr i set val [lindex $attrs $i] if {$val != {yes} && $val != {no}} { error "Attribute XCODE must have value \"yes\" or \"no\"" } lset mcu_definition 2 $val } {code} { incr i set val [lindex $attrs $i] if {![string is digit -strict $val] || $val < 0 || $val > 65536} { error "CODE memory capacity must be an integer value \[0;65536\]" } lset mcu_definition 3 $val } {frequency} { incr i set val [lindex $attrs $i] if {[string length $val] > 16 || ![string is print $val]} { error "Attribute FREQUENCY must be printable string (max. 16 characters)" } lset mcu_definition 4 $val } {ram} { incr i set val [lindex $attrs $i] if {![string is digit -strict $val] || $val < 0 || $val > 256} { error "RAM capacity must be an integer value \[0;256\]" } lset mcu_definition 5 $val } {portbits} { incr i set val [lindex $attrs $i] if {![string is digit -strict $val] || $val < 0 || $val > 256} { error "Attribute PORTBITS must be an integer value \[0;256\]" } lset mcu_definition 6 $val } {uart} { incr i set val [lindex $attrs $i] if {$val != {yes} && $val != {no}} { error "Attribute UART must be either \"yes\" or \"no\"" } lset mcu_definition 7 $val } {interrupts} { incr i set val [lindex $attrs $i] if {![string is digit -strict $val] || $val < 0 || $val > 99} { error "Attribute INTERRUPTS must be an integer value \[0;99\]" } lset mcu_definition 8 $val } {voltage} { incr i set val [lindex $attrs $i] if {[string length $val] > 11 || ![string is print $val]} { error "Attribute VOLTAGE must be printable string (max. 11 characters)" } lset mcu_definition 9 $val } {eram} { incr i set val [lindex $attrs $i] if {![string is digit -strict $val] || $val < 0 || $val > 65536} { error "ERAM capacity must be an integer value \[0;65536\]" } lset mcu_definition 10 $val } {vendor} { incr i set val [lindex $attrs $i] if {[lsearch $vendors $val] == -1} { error "Undefined vendor \"$val\"" } lset mcu_definition 11 $val } default { incr i } } } } {timers} { set expected {more} set take_data 1 } {more} { set expected {bits} set take_data 1 } {bits} { set expected {writeonly} set take_data 0 } {writeonly} { set expected {sfr} set take_data 0 } {sfr} { set expected {mcu} set take_data 0 } } } ## XML parser handler for procedure load_definition -- takes data section # @parm String arg1 - content of the element # @return void proc xml_data_parser0_data {arg1} { variable definition_data ;# List: Values gained from $definition_file variable expected ;# String: Expected next XML element variable current_element ;# String: Current XML element variable take_data ;# Bool: Take element data on next parsing cycle variable mcu_definition ;# List: Definition of MCU currently being parsed variable vendors ;# List: available MCU vendors if {!$take_data} { return } set take_data 0 regsub -all {^\s+} $arg1 {} arg1 regsub -all {\s+$} $arg1 {} arg1 regsub -all -line {^\t+} $arg1 {} arg1 switch -- $current_element { {timers} { lappend mcu_definition $arg1 } {more} { lappend mcu_definition $arg1 } } } ## Event handler for ListBox with list of processors # Handles <> -- Change contents of details frame # @parm String - "noclear" == do not clear search EntryBox # @return void proc select_item args { variable definition_data ;# List: Values gained from $definition_file variable local_definition_data ;# List: Basically the same as $definition_data but containing only the shown items variable selected_mcu ;# List: Dialog return value {mcu_type xdata xcode} variable listbox_widget ;# Widget: List box containing available MCUs variable value_lbl_uart ;# Widget: Label "UART:" - value variable value_lbl_voltage ;# Widget: Label "Operating voltage:" - value variable value_lbl_interrupts ;# Widget: Label "Interrupts:" - value variable value_lbl_timers ;# Widget: Label "Timers:" - value variable value_lbl_vendor ;# Widget: Label "Vendor" - value variable more_details_text ;# Widget: TextWidget "More details:" variable details_xdata_aval ;# Widget: Frame containing scale and spinbox for XDATA memory variable details_xdata_note ;# Widget: Frame containing label "NOT available" for XDATA memory variable details_xcode_aval ;# Widget: Frame containing scale and spinbox for XCODE memory variable details_xcode_nota ;# Widget: Frame containing label "NOT available" for XCODE memory variable name_label ;# Widget: Label containing name of selected MCU variable image_label ;# Widget: Label with image for selected MCU variable xcode_spinbox ;# Widget: SpinBox for XCODE memory variable xcode_scale ;# Widget: Scale for XCODE memory variable maximum_xcode ;# Int: Maximum external program memory (0x10000 - internal) # Get MCU definition for the selected processor set mcu [lindex $local_definition_data \ [$listbox_widget index [$listbox_widget selection get]] \ ] set mcu_name [lindex $mcu 0] if {$selected_mcu == $mcu_name} { return } set selected_mcu $mcu_name set maximum_xcode [expr {0x10000 - ([lindex $mcu 3] * 1024)}] # Configure detail labels $name_label configure -text $mcu_name $value_lbl_vendor configure -text [lindex $mcu 11] $value_lbl_uart configure -text [lindex $mcu 7] $value_lbl_voltage configure -text [lindex $mcu 9] $value_lbl_interrupts configure -text [lindex $mcu 8] $value_lbl_timers configure -text [lindex $mcu 12] # Configure details text $more_details_text configure -state normal $more_details_text delete 1.0 end foreach line [split [lindex $mcu 13] "\n"] { $more_details_text image create end -image ::ICONS::16::bookmark -padx 2 -pady 2 $more_details_text insert end $line $more_details_text insert end "\n" } $more_details_text configure -state disabled # Configure XDATA scale if {[lindex $mcu 1] != {yes}} { if {[winfo ismapped $details_xdata_aval]} { pack forget $details_xdata_aval } pack $details_xdata_note -fill both -expand 1 } else { if {[winfo ismapped $details_xdata_note]} { pack forget $details_xdata_note } pack $details_xdata_aval -fill both -expand 1 -padx 2 } # Configure XCODE scale if {[lindex $mcu 2] != {yes}} { if {[winfo ismapped $details_xcode_aval]} { pack forget $details_xcode_aval } pack $details_xcode_nota -fill both -expand 1 } else { $xcode_spinbox configure -to $maximum_xcode $xcode_scale configure -to $maximum_xcode if {[winfo ismapped $details_xcode_nota]} { pack forget $details_xcode_nota } pack $details_xcode_aval -fill both -expand 1 -padx 2 } # Clear search bar if {$args != {noclear}} { clear_search_bar } # Load image set image [$image_label cget -image] $image_label configure \ -fg {#888888} \ -text [mc "Loading image ..."] \ -image ::ICONS::16::exec if {$image != {} && $image != {::ICONS::16::no} && $image != {::ICONS::16::exec}} { image delete $image } update if {[catch { $image_label configure -text { } -image [image create photo \ -format png -file "${::ROOT_DIRNAME}/icons/mcu/$mcu_name.png" ] }]} then { $image_label configure \ -fg {#DD0000} \ -text [mc " Image not found"] \ -image ::ICONS::16::no } } ## Set scrollbar for details text # If frac0 == 0 && frac1 == 1 -> hide scrollbar # @parm Float frac0 - Fraction of the topmost visible area # @parm Float frac1 - Fraction of the bottommost visible area # @return void proc details_scrollbar_set {frac0 frac1} { variable more_details_scrollbar ;# Widget: Scrollbar for $more_details_text variable more_details_text ;# Widget: TextWidget "More details:" # Hide scrollbar if {$frac0 == 0 && $frac1 == 1} { if {[winfo ismapped $more_details_scrollbar]} { pack forget $more_details_scrollbar } # Show scrollbar } else { if {![winfo ismapped $more_details_scrollbar]} { pack $more_details_scrollbar \ -side right -fill y \ -after $more_details_text } $more_details_scrollbar set $frac0 $frac1 } } ## Clear search entry box # @return void proc clear_search_bar {} { variable search_bar ;# Widget: Search bar entry box $search_bar delete 0 end } ## Search for the give string in the listbox of available processors # Primary purpose is validator for search entry box, it also #+ ajusts search entry box background color # @parm String string - Part of MCU name # @return Bool - allways 1 proc search {string} { variable search_bar ;# Widget: Search bar entry box variable search_bar_clear ;# Widget: Search bar clear button variable listbox_widget ;# Widget: List box containing available MCUs variable mcu_names ;# List: Available processors (and show in the list) # Search for empty string -> abort if {![string length $string]} { $search_bar_clear configure -state disabled $search_bar configure -style TEntry return 1 } $search_bar_clear configure -state normal # Do a case-insensitive search set string [string toupper $string] set i 0 foreach mcu $mcu_names { if {[string first $string [string toupper $mcu]] != -1} { $search_bar configure -style StringFound.TEntry set item [$listbox_widget items $i] $listbox_widget selection set $item $listbox_widget see $item select_item noclear return 1 } incr i } $search_bar configure -style StringNotFound.TEntry return 1 } ## Close MCU selection dialog and discart its result # @return void proc cancel {} { variable selected_mcu ;# List: Dialog return value {mcu_type xdata xcode} set selected_mcu {} close_window } ## Disable/Enable XDATA memory # @return void proc xdata_disena {} { variable xdata_scale ;# Widget: Scale for XDATA memory variable xdata_spinbox ;# Widget: Scale for XDATA memory if {${::SelectMCU::xdata_ena}} { $xdata_scale state !disabled $xdata_spinbox configure -state normal } else { $xdata_scale state disabled $xdata_spinbox configure -state disabled } } ## Disable/Enable XCODE memory # @return void proc xcode_disena {} { variable xcode_spinbox ;# Widget: SpinBox for XCODE memory variable xcode_scale ;# Widget: Scale for XCODE memory if {${::SelectMCU::xcode_ena}} { $xcode_scale state !disabled $xcode_spinbox configure -state normal } else { $xcode_scale state disabled $xcode_spinbox configure -state disabled } } ## Validate XDATA memory spinbox # @parm String string - String to validate # @return Bool - Validation result proc validate_xdata {string} { if {![string is digit $string]} { return 0 } if {$string == {}} { return 1 } if {$string < 0 || $string > 0x10000} { return 0 } return 1 } ## Validate XCODE memory spinbox # @parm String string - String to validate # @return Bool - Validation result proc validate_xcode {string} { variable maximum_xcode ;# Int: Maximum external program memory (0x10000 - internal) if {![string is digit $string]} { return 0 } if {$string == {}} { return 1 } if {$string < 0 || $string > $maximum_xcode} { return 0 } return 1 } ## This functionshould be changecmd for vendor comboBox # @return void proc change_vendor {} { variable listbox_widget ;# Widget: List box containing available MCUs clear_search_bar $listbox_widget delete [$listbox_widget items] fill_gui } } # >>> File inclusion guard } # <<< File inclusion guard mcu8051ide-1.4.7/lib/dialogues/errorhandler.tcl0000644000175000017500000001560612067167647022024 0ustar milleniummillenium#!/usr/bin/tclsh # Part of MCU 8051 IDE ( http://mcu8051ide.sf.net ) ############################################################################ # Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012 by Martin Ošmera # # martin.osmera@gmail.com # # # # This program is free software; you can redistribute it and#or modify # # it under the terms of the GNU General Public License as published by # # the Free Software Foundation; either version 2 of the License, or # # (at your option) any later version. # # # # This program is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU General Public License for more details. # # # # You should have received a copy of the GNU General Public License # # along with this program; if not, write to the # # Free Software Foundation, Inc., # # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # ############################################################################ # >>> File inclusion guard if { ! [ info exists _ERRORHANDLER_TCL ] } { set _ERRORHANDLER_TCL _ # <<< File inclusion guard # -------------------------------------------------------------------------- # DESCRIPTION # Background error handler # -------------------------------------------------------------------------- namespace eval ErrorHandler { variable num_of_opened 0 ;# Int: Number of currently opened dialogues variable count 0 ;# Int: Counter of ivokations variable enabled 1 ;# Bool: Dialog window enabled ## Open dialog window # @parm String message - Error message # @return void proc open_dialog {message} { variable count ;# Int: Counter of ivokations variable enabled ;# Bool: Dialog window enabled variable num_of_opened ;# Int: Number of currently opened dialogues if {$num_of_opened > 2} { puts stderr "ERROR MESSAGE SUPPRESED (too many error dialogues opened at the time)" return } incr num_of_opened # Send error message to standard error output puts stderr [string repeat # 64] puts stderr "# PROGRAM ERROR #" puts stderr [string repeat # 64] puts stderr $::errorInfo puts stderr [string repeat # 64] # Save log file if {![catch {set log_file [open [file join ${::X::defaultDirectory} mcu8051ide_errors.log] a]}]} { puts $log_file [string repeat # 64] puts $log_file "Program version:\t${::VERSION}" puts $log_file "Tcl version:\t\t${::tcl_version}" puts $log_file "Tk version:\t\t${::tk_version}" puts $log_file [string repeat - 64] puts $log_file $::errorInfo close $log_file } # Create dialog window if {!$enabled} {return} incr count set win [toplevel .error_dialog$count -bg {#EE0000} -class {Error message} -bg ${::COMMON_BG_COLOR}] # Create window frames set main_frame [frame $win.main_frame] set top_frame [frame $main_frame.top_frame -bg {#EE0000}] set middle_frame [frame $main_frame.middle_frame] set bottom_frame [frame $main_frame.bottom_frame] # Create window header pack [label $top_frame.header_lbl \ -text [mc "PROGRAM ERROR "] \ -bg {#EE0000} -fg {#FFFFFF} \ -font [font create \ -family helvetica \ -size [expr {int(-24 * $::font_size_factor)}] \ -weight bold \ ] \ ] -side left -fill x -expand 1 # Create error message text and scrollbar pack [text $middle_frame.text \ -bg {white} -bd 0 \ -yscrollcommand "$middle_frame.scrollbar set" \ -width 0 -height 0 -relief flat -wrap word \ ] -side left -fill both -expand 1 -padx 5 -pady 5 bind $middle_frame.text {focus %W} pack [ttk::scrollbar $middle_frame.scrollbar \ -orient vertical \ -command "$middle_frame.text yview" \ ] -fill y -side right # Create text tags $middle_frame.text tag configure tag_bold \ -font [font create \ -family $::DEFAULT_FIXED_FONT \ -weight bold \ -size [expr {int(-12 * $::font_size_factor)}] \ ] $middle_frame.text tag configure tag_tt \ -font [font create \ -family $::DEFAULT_FIXED_FONT \ -size [expr {int(-12 * $::font_size_factor)}] \ ] $middle_frame.text tag configure tag_big_bold \ -font [font create \ -family {helvetica} \ -weight bold \ -size [expr {int(-17 * $::font_size_factor)}] \ ] # Write error message $middle_frame.text insert end [mc "Error log saved in: %s\n" "${::X::defaultDirectory}[file separator]mcu8051ide_errors.log"] $middle_frame.text insert end [mc "Please send this file to %s\nor report this bug at: http://sourceforge.net/tracker/?group_id=185864&atid=914981\n\n\n" {}] create_link_tag_in_text_widget $middle_frame.text convert_all_https_to_links $middle_frame.text $middle_frame.text tag add tag_big_bold 1.0 4.0 $middle_frame.text insert end [mc "ERROR DETAILS:\n--------------\n"] $middle_frame.text tag add tag_bold 6.0 8.0 $middle_frame.text insert end $::errorInfo $middle_frame.text tag add tag_tt 8.0 end $middle_frame.text configure -state disabled # Create button frame pack [ttk::button $bottom_frame.skip \ -text [mc "Skip errors"] \ -compound left \ -command " set ::ErrorHandler::enabled 0 ::ErrorHandler::close_dialog $count " \ ] -side left pack [ttk::button $bottom_frame.ok \ -text [mc "Close"] \ -style GreenBg.TButton \ -command "::ErrorHandler::close_dialog $count" \ ] -side right focus -force $bottom_frame.ok # Pack window frames pack $top_frame -fill x -anchor n pack $middle_frame -fill both -expand 1 pack $bottom_frame -fill x pack $main_frame -fill both -expand 1 -padx 5 -pady 5 # Configure dialog window set x [expr {[winfo screenwidth $win] / 2 - 225}] set y [expr {[winfo screenheight $win] / 2 - 125}] wm iconphoto $win ::ICONS::16::bug wm title $win [mc "PROGRAM ERROR - MCU 8051 IDE"] wm minsize $win 450 250 wm geometry $win =550x250+$x+$y wm protocol $win WM_DELETE_WINDOW "::ErrorHandler::close_dialog $count" update raise $win catch {grab $win} } ## Close dialog window # @parm Int number - Dialog unique number # @return void proc close_dialog {number} { variable num_of_opened ;# Int: Number of currently opened dialogues incr num_of_opened -1 destroy .error_dialog$number } } # Register error handler proc bgerror {message} { ::ErrorHandler::open_dialog $message } # >>> File inclusion guard } # <<< File inclusion guard mcu8051ide-1.4.7/lib/dialogues/my_tk_messageBox.tcl0000644000175000017500000002237212067167647022633 0ustar milleniummillenium#!/usr/bin/tclsh # Part of MCU 8051 IDE ( http://mcu8051ide.sf.net ) ############################################################################ # Copyright (C) 2009, 2010, 2011, 2012 by Martin Ošmera # # martin.osmera@gmail.com # # # # This program is free software; you can redistribute it and#or modify # # it under the terms of the GNU General Public License as published by # # the Free Software Foundation; either version 2 of the License, or # # (at your option) any later version. # # # # This program is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU General Public License for more details. # # # # You should have received a copy of the GNU General Public License # # along with this program; if not, write to the # # Free Software Foundation, Inc., # # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # ############################################################################ # >>> File inclusion guard if { ! [ info exists _MY_TK_MESSAGEBOX_TCL ] } { set _MY_TK_MESSAGEBOX_TCL _ # <<< File inclusion guard # -------------------------------------------------------------------------- # DESCRIPTION # Replacement for Tk's tk_messageBox. Usage is the same as tk_messageBox, # except for one thing, this one supports also "-icon ok". # -------------------------------------------------------------------------- ## This namespace implements dialog itself, but does not contain the # "tk_messageBox" function to invoke it. This function is defined onwards, but # still in this file. namespace eval my_tk_messageBox { ## Namespace variables variable return_value {} ;# String: Dialog return value (e.g. "abort") variable dialog ;# Widget: Dialog toplevel window variable count 0 ;# Int: Counter of object instances # Buttons available in the dialog variable available_buttons { abort retry ignore ok cancel yes no } # Icons for available buttons variable button_icons { button_cancel reload forward ok cancel ok no } ## Invoke the dialog # @parm Int arg_default - Number of default button (0..2) # @parm String arg_icon - Dialog icon (one of values mentioned in variable button_icons) # @parm String arg_message - Message to display to the user # @parm Widget arg_parent - GUI parent # @parm String arg_title - Dialog title # @parm String arg_type - Name of big icon displyed beside the message (one of {error info question warning ok}) # @return String - Dialog return value, name of pressed button proc create {arg_default arg_icon arg_message arg_parent arg_title arg_type} { variable return_value {} ;# String: Dialog return value (e.g. "abort") variable button_icons ;# Icons for available buttons variable available_buttons ;# Buttons available in the dialog variable dialog ;# Widget: Dialog toplevel window variable count ;# Int: Counter of object instances set dialog [toplevel .my_tk_messageBox_${count}] set buttons [list] incr count # Translate icon name switch -- $arg_icon { {error} { set iconphoto {cancel} set arg_icon {messagebox_critical} } {info} { set iconphoto {info} set arg_icon {messagebox_info} } {question} { set iconphoto {help} set arg_icon {help} } {warning} { set iconphoto {status_unknown} set arg_icon {messagebox_warning} } {ok} { set iconphoto {ok} set arg_icon {button_ok} } } # Determinate list of buttons switch -- $arg_type { {abortretryignore} { set buttons [list abort retry ignore] } {ok} { set buttons [list ok] } {okcancel} { set buttons [list ok cancel] } {retrycancel} { set buttons [list retry cancel] } {yesno} { set buttons [list yes no] } {yesnocancel} { set buttons [list yes no cancel] } } # Adjuts argument "default" if {$arg_default == {}} { set arg_default [lindex $buttons 0] } elseif {[lsearch -ascii -exact $buttons $arg_default] == -1} { error "my_tk_messageBox: Invalid value of agument -default, must be one of: $buttons" } # Create top frame (dialog icon and text of the message) set top_frame [frame $dialog.top] pack [label $top_frame.img -image ::ICONS::32::$arg_icon] -side left -padx 5 pack [label $top_frame.txt -text $arg_message -wraplength 300 -justify left] -side left -fill both -padx 5 # Create bottom bar with dialog buttons set bottom_frame [frame $dialog.bottom] foreach button $buttons { set button_icon [lindex $button_icons [ \ lsearch $available_buttons $button \ ]] set text [string toupper [string index $button 0]] append text [string range $button 1 end] pack [ttk::button $bottom_frame.button_${button} \ -text [mc $text] -compound left \ -image ::ICONS::16::$button_icon \ -command "::my_tk_messageBox::button_press $button" \ ] -side left -padx 2 bind $bottom_frame.button_${button} "::my_tk_messageBox::button_press $button" bind $bottom_frame.button_${button} "::my_tk_messageBox::button_press $button" bind $bottom_frame.button_${button} " grab release $dialog destroy $dialog set ::my_tk_messageBox::return_value {} " } # Pack window frames pack $top_frame -expand 1 -pady 10 -padx 5 pack $bottom_frame -padx 5 -pady 10 # Window manager options -- modal window wm iconphoto $dialog ::ICONS::16::$iconphoto wm title $dialog $arg_title wm state $dialog normal focus -force $bottom_frame.button_${arg_default} if {$arg_parent != {}} { wm transient $dialog $arg_parent } wm protocol $dialog WM_DELETE_WINDOW " grab release $dialog destroy $dialog set ::my_tk_messageBox::return_value {} " update catch { grab $dialog } # Wait for user response tkwait window $dialog # Destroy dialog and return name of pressed button catch { grab release $dialog destroy $dialog } return $return_value } ## Handles button press # @parm String value - Name of pressed button # @return void proc button_press {value} { variable return_value ;# String: Dialog return value (e.g. "abort")g variable dialog ;# Widget: Dialog toplevel window grab release $dialog destroy $dialog set return_value $value } ## Load needed images from the specified directory # @parm String directory - Source directory # @return void proc load_images {directory} { foreach subdir {16x16 32x32} ns {16 32} icons { {cancel info help status_unknown ok button_cancel reload forward no} {messagebox_critical messagebox_info help messagebox_warning button_ok} } \ { foreach icon $icons { set filename [file join $directory {../icons} $subdir "${icon}.png"] if {[catch { image create photo ::ICONS::${ns}::${icon} -format png -file $filename } result]} then { puts stderr {} puts -nonewline stderr $result image create photo ::ICONS::${ns}::${icon} } } } } } ## Replacement for Tk's command "tk_messageBox" # Usage is the same as "tk_messageBox" ... proc my_tk_messageBox args { set length [llength $args] if {$length % 2} { error "my_tk_messageBox: Odd number of arguments given" } set arg_default {} set arg_icon {info} set arg_message {} set arg_parent {} set arg_title {} set arg_type {} for {set i 0; set j 1} {$i < $length} {incr i 2; incr j 2} { set attr [lindex $args $i] set val [lindex $args $j] switch -- $attr { {-default} { set arg_default $val } {-icon} { if {[lsearch -ascii -exact {error info question warning ok} $val] == -1} { error "my_tk_messageBox: Invalid message box icon: $val" } set arg_icon $val } {-message} { set arg_message $val } {-parent} { if {![winfo exists $val]} { error "my_tk_messageBox: Window $val does not exist." } set arg_parent $val } {-title} { set arg_title $val } {-type} { if {[lsearch -ascii -exact {abortretryignore ok okcancel retrycancel yesno yesnocancel} $val] == -1} { error "my_tk_messageBox: Invalid message box type: $val" } set arg_type $val } default { error "my_tk_messageBox: Unknown argument: $attr" } } } if {![string length $arg_message]} { error "my_tk_messageBox: No message box text specified" } if {![string length $arg_title]} { if {![string length $arg_icon]} { set arg_title {Message} } else { set arg_title [string toupper [string index $arg_icon 0]] append arg_title [string range $arg_icon 1 end] } } if {![string length $arg_type]} { set arg_type {ok} } return [my_tk_messageBox::create $arg_default $arg_icon $arg_message $arg_parent $arg_title $arg_type] } # Replace Tk's command "tk_messageBox" rename tk_messageBox old_tk_messageBox rename my_tk_messageBox tk_messageBox # >>> File inclusion guard } # <<< File inclusion guard mcu8051ide-1.4.7/lib/dialogues/fsd.tcl0000644000175000017500000026634112067167647020115 0ustar milleniummillenium#!/usr/bin/tclsh # Part of MCU 8051 IDE ( http://mcu8051ide.sf.net ) ############################################################################ # Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012 by Martin Ošmera # # martin.osmera@gmail.com # # # # This program is free software; you can redistribute it and#or modify # # it under the terms of the GNU General Public License as published by # # the Free Software Foundation; either version 2 of the License, or # # (at your option) any later version. # # # # This program is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU General Public License for more details. # # # # You should have received a copy of the GNU General Public License # # along with this program; if not, write to the # # Free Software Foundation, Inc., # # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # ############################################################################ # >>> File inclusion guard if { ! [ info exists _FSD_TCL ] } { set _FSD_TCL _ # <<< File inclusion guard # -------------------------------------------------------------------------- # DESCRIPTION # This class provides file selection dialog # Usage: # KIFSD::FSD ;# Create dialog object # setokcmd {set filename [ get]} ;# Set command for Ok button # activate ;# Show up the dialog # # Constructor options: # -title String = {} ;# Dialog title # -initialfile String = {} ;# Initial file # -directory String = {~} ;# Initiali directory # -multiple Bool = 0 ;# Allow selection of multiple files (get will return list instead of string) # -filetypes List = {{All} {*}} ;# { {{Some string} {GLOB}} ... } # -defaultmask Int = 0 ;# Number of detault mask (see -filetypes) (1st is zero) # -modal Bool = 1 ;# Create as modal window # -doubleclick Bool = 0 ;# Use double click to open folder instead of single click # -autoclose Bool = 1 ;# Close dialog after pressure of Ok button # -master Widget = . ;# Master window (wm transient $master) # -fileson Bool = 1 ;# 1 == Select file(s); 0 == Select directory/ies # # Other public methods: # set_bookmark_change_command Command ;# Set command to invoke when bookmarks changes # deactivate ;# Deactivate the dialog # close_dialog ;# Close dialog window but keep object alive # get_config_array -> List ;# Get dialog configuration array for proc. load_config_array # load_config_array List ;# Load dialog configuration array # get_window_name -> Widget ;# Get path to dialog window # -------------------------------------------------------------------------- itcl::class KIFSD::FSD { common bookmark_change_command {} ;# Command to invoke on bokmark change # Font for quick navigation panel common quick_nav_panel_font [font create \ -family {helvetica} \ -size [expr {int(-12 * $::font_size_factor)}] \ -weight bold \ ] # Font for files listbox in mode (Short view) common listbox_font_short [font create \ -family {helvetica} \ -size [expr {int(-14 * $::font_size_factor)}] \ -weight normal \ ] # Font for files listbox in mode (Detailed view) and directories listbox common listbox_font_detailed [font create \ -family $::DEFAULT_FIXED_FONT \ -size [expr {int(-12 * $::font_size_factor)}] \ -weight normal \ ] # Font for listbox header common listbox_header_font [font create \ -family $::DEFAULT_FIXED_FONT \ -size [expr {int(-12 * $::font_size_factor)}] \ -weight bold \ ] ## Values given by constructor arguments private variable option_title {Select file} ;# Dialog title private variable option_filetypes {{All} {*}} ;# File types if {!$::MICROSOFT_WINDOWS} { variable option_directory ${::env(HOME)} ;# Initial directory } else { variable option_directory ${::env(USERPROFILE)} ;# Initial directory } private variable option_master {.} ;# Window master private variable option_fileson {1} ;# 1 == Files on (select file); 0 == Files off (select directory) private variable option_doubleclick {0} ;# Use doble click instead of single clicks private variable option_modal {1} ;# Open dialog windown as modal window private variable option_initialfile {} ;# Initial file private variable option_multiple {0} ;# Allow mulstiple selection private variable option_defaultmask {0} ;# Index of default mask in $option_filetypes private variable option_autoclose {1} ;# 1 == Close dialog after press of Ok button private variable bookmark_edit_listbox {} ;# Widget: ListBox in bookmarks editor private variable bookmark_menu {} ;# Widget: Bookmarks menu private variable config_menu {} ;# Widget: Configuration menu private variable listbox_font {} ;# Font: Current font for files listbox private variable current_directory {} ;# String: Current directory private variable back_history {} ;# List: Backward history private variable forward_history {} ;# List: Forward hitory private variable ok_command {} ;# String: Ok command private variable current_mask {*} ;# GLOB: Current fileter mask private variable item_menu_request 0 ;# Bool: Item popup menu request private variable current_item {} ;# String: ID of currenly selected item private variable current_item_index 0 ;# Int: Index of currently selected item private variable cur_listbox {} ;# String currently selected listbox {dir} or {file} private variable dialog_loaded 0 ;# Bool: Dialog is completely loaded private variable win ;# Widget: Dialog window private variable ok_button ;# Widget: Button "Ok" private variable location_cb ;# Widget: Location ComboBox private variable filter_cb ;# Widget: Filter ComboBox private variable dir_combobox ;# Widget: Directory ComboBox private variable toolbar ;# Widget: Frame containing toolbar private variable quick_access_bar ;# Widget: Quick access bar ListBox private variable dir_listbox_scrollbar {} ;# Widget: Directory ListBox scrollbar private variable dir_listbox {} ;# Widget: Directory ListBox private variable main_paned_window ;# Widget: Paned window for quick access bar and other LBs private variable leftframe ;# Widget: Frame contaning quick access bar and its scrollbar private variable rightframe ;# Widget: Frame containing directory & file ListBoxes private variable right_top_right_frame ;# Widget: files ListBox private variable right_top_left_frame ;# Widget: Frame for files ListBox private variable right_top_frame ;# Widget: Frame for $right_paned_window private variable right_paned_window ;# Widget: Paned window for directories ListBox and files ListBox private variable file_listbox ;# Widget: Files ListBox private variable file_listbox_header ;# Widget: Header for files ListBox private variable file_listbox_frame ;# Widget: Frame for $file_listbox_header and $file_listbox private variable file_listbox_vscrollbar {} ;# Widget: Vertical scollbar for files ListBox private variable file_listbox_hscrollbar {} ;# Widget: Hotizontal scollbar for files ListBox private variable right_top_right_top_frame ;# Widget: Frame for $file_listbox_frame and scrollbars proc static_reload {object args} { catch [list $object reload] } ## Dialog constructor # For complite list of possible arguments see desctiption above constructor args { # Configure local ttk styles ttk::style configure FSD_RedBg.TCombobox -fieldbackground {#FFDDDD} ttk::style configure FSD_RedBg.TEntry -fieldbackground {#FFDDDD} ## Parse given arguments and set appropriate object variables set arglen [llength $args] set arg {} for {set i 0} {$i < $arglen} {incr i} { set arg [lindex $args $i] switch -- $arg { -modal { incr i set option_modal [lindex $args $i] if {![string is boolean -strict $option_modal]} { error "-modal must have value either 0 or 1" } } -doubleclick { incr i set option_doubleclick [lindex $args $i] if {![string is boolean -strict $option_doubleclick]} { error "-doubleclick must have value either 0 or 1" } } -autoclose { incr i set option_autoclose [lindex $args $i] if {![string is boolean -strict $option_autoclose]} { error "-autoclose must have value either 0 or 1" } } -initialfile { incr i set option_initialfile [lindex $args $i] } -multiple { incr i set option_multiple [lindex $args $i] if {![string is boolean -strict $option_multiple]} { error "-multiple must have value either 0 or 1" } } -defaultmask { incr i set option_defaultmask [lindex $args $i] if {![string is integer -strict $option_defaultmask]} { error "-defaultmask must be an integer" } } -title { incr i set option_title [lindex $args $i] } -filetypes { incr i set option_filetypes [lindex $args $i] } -directory { incr i set option_directory [lindex $args $i] } -master { incr i set option_master [lindex $args $i] } -fileson { incr i set option_fileson [lindex $args $i] if {![string is boolean -strict $option_modal]} { error "-fileson must have value either 0 or 1" } } default { error "Option '$arg' is not valid" } } } set args {} set current_directory [file normalize $option_directory] # Cretate dialog window create_dialog # Initalize window key shortcuts create_shortcuts # Finalize set dialog_loaded 1 } ## Destrurtor destructor { catch { # Save position of right paned window sash if {[winfo ismapped $right_paned_window]} { set ::KIFSD::FSD::config(right_PW_size) \ [lindex [$right_paned_window sash coord 0] 0] } # Save position of main paned window sash if {[winfo ismapped $main_paned_window]} { set ::KIFSD::FSD::config(main_PW_size) \ [lindex [$main_paned_window sash coord 0] 0] } # Save window geometry set ::KIFSD::FSD::config(win_geometry) [wm geometry $win] } # Destroy dialog window grab release $win destroy $win } ## Create dialog GUI elements # @return void private method create_dialog {} { # Determinate window name (path) set win_base {} if {$option_master != {.}} { set win_base $option_master } append win_base .[string tolower [regsub -all {:} $this {}]] set win $win_base set i 0 while [winfo exists $win] { set win $win_base append win $i incr i } # Create and configure dialog window toplevel $win -bg ${::COMMON_BG_COLOR} wm iconphoto $win ::ICONS::16::fileopen wm withdraw $win wm title $win $option_title wm minsize $win 540 290 wm protocol $win WM_DELETE_WINDOW "catch {itcl::delete object $this}" wm transient $win $option_master wm geometry $win ${::KIFSD::FSD::config(win_geometry)} wm resizable $win 0 0 raise $win update if {$option_modal} { catch { grab $win } } create_popup_menus ;# Create popup menus set topframe [frame $win.topframe] ;# Create frame above ListBoxes set toolbar [frame $topframe.toobar] ;# Create toolbar frame create_tool_bar ;# Create toolbar # Create directory ComboBox set dir_combobox [ttk::combobox $topframe.dir_cb \ -values {} \ -exportselection 0 \ -validate all \ -validatecommand "::KIFSD::FSD::dir_validate $topframe.dir_cb %W %P" \ ] bind $dir_combobox <> [list $this dir_cb_modify] bind $dir_combobox [list $this dir_cb_modify] bind $dir_combobox [list $this dir_cb_modify] DynamicHelp::add $dir_combobox -text [mc "Current directory"] pack $dir_combobox -side right -expand 1 -fill x -padx 5 # Create main paned window and some frames set mainframe [frame $win.mainframe] set main_paned_window [panedwindow $mainframe.main_paned_window \ -orient horizontal -opaqueresize 1 -sashwidth 2 \ -showhandle 0 -sashrelief flat \ ] set leftframe [frame $mainframe.leftframe] set rightframe [frame $mainframe.rightframe] # Create quick access bar set quick_access_bar [ListBox $leftframe.quick_access_bar \ -selectfill 1 -selectbackground white -bd 1 -padx 30 -width 15 \ -selectmode single -highlightthickness 0 -bg white -deltay 30 \ -selectforeground black -highlightcolor {#BBBBFF} \ ] refresh_quick_access_bar $quick_access_bar bindText [list $this quick_access_bar_item_menu %X %Y ] $quick_access_bar bindImage [list $this quick_access_bar_item_menu %X %Y ] $quick_access_bar bindText [list $this quick_access_bar_doubleclick ] $quick_access_bar bindImage [list $this quick_access_bar_doubleclick ] bind $quick_access_bar <> [list $this quick_access_bar_select ] if {[winfo exists $quick_access_bar.c]} { bind $quick_access_bar.c {%W yview scroll +5 units; break} bind $quick_access_bar.c {%W yview scroll -5 units; break} bind $quick_access_bar.c [list $this quick_access_bar_menu %X %Y ] } pack $quick_access_bar -fill both -expand 1 # Create right paned window set right_top_frame [frame $rightframe.topframe] set right_bottom_frame [frame $rightframe.bottomframe] set right_paned_window [panedwindow $right_top_frame.right_paned_window \ -orient horizontal -opaqueresize 1 -sashwidth 2 \ -showhandle 0 -sashrelief flat \ ] set right_top_left_frame [frame $win.left_frame] set right_top_right_frame [frame $win.right_frame] # Create directories ListBox if {$option_fileson} { set dir_listbox [ListBox $right_top_left_frame.dir_listbox \ -bd 1 -padx 19 -selectfill 1 -width 1 -highlightcolor {#BBBBFF} \ -selectmode single -highlightthickness 0 -bg white -deltay 18 \ -yscrollcommand "$this dir_listbox_scroll" \ ] set dir_listbox_scrollbar [ttk::scrollbar \ $right_top_left_frame.scrollbar \ -orient vertical -command "$dir_listbox yview" \ ] $dir_listbox bindText [list $this dir_listbox_doubleclick ] $dir_listbox bindImage [list $this dir_listbox_doubleclick ] $dir_listbox bindText [list $this dir_listbox_item_menu %X %Y ] $dir_listbox bindImage [list $this dir_listbox_item_menu %X %Y ] bind $dir_listbox <> [list $this dir_listbox_select ] if {[winfo exists $dir_listbox.c]} { bind $dir_listbox.c {%W yview scroll +5 units; break} bind $dir_listbox.c {%W yview scroll -5 units; break} bind $dir_listbox.c [list $this dir_listbox_menu %X %Y ] } pack $dir_listbox -side left -fill both -expand 1 } # Create files ListBox if {$option_multiple} { set selmode {multiple} } else { set selmode {single} } set right_top_right_top_frame [frame $right_top_right_frame.right_top_right_top_frame] set file_listbox_frame [frame $right_top_right_top_frame.file_listbox_frame] set file_listbox_header [text $file_listbox_frame.text \ -width 1 -height 1 -takefocus 0 -bg white \ -font $listbox_header_font -bd 1 -relief sunken \ -cursor left_ptr -wrap none \ ] $file_listbox_header delete 1.0 end if {!$::MICROSOFT_WINDOWS} { $file_listbox_header insert end \ [mc " Name Size Rights Date "] } else { $file_listbox_header insert end \ [mc " Name Size Date "] } bindtags $file_listbox_header $file_listbox_header $file_listbox_header configure -state disabled set file_listbox [ListBox $file_listbox_frame.file_listbox \ -bd 1 \ -padx 17 \ -width 1 \ -height 1 \ -bg white \ -deltay 18 \ -selectfill 1 \ -selectmode $selmode \ -highlightthickness 0 \ -selectbackground {#88AAFF} \ -highlightcolor {#BBBBFF} \ -yscrollcommand "$this file_listbox_vscroll" \ -xscrollcommand "$this file_listbox_hscroll" \ ] pack $file_listbox -fill both -expand 1 if {${::KIFSD::FSD::config(detailed_view)}} { $file_listbox configure -multicolumn 0 set listbox_font $listbox_font_detailed pack $file_listbox_header -before $file_listbox -fill x -expand 0 } else { $file_listbox configure -multicolumn 1 set listbox_font $listbox_font_short } set file_listbox_vscrollbar [ttk::scrollbar \ $right_top_right_top_frame.vscrollbar \ -orient vertical -command "$file_listbox yview" \ ] set file_listbox_hscrollbar [ttk::scrollbar \ $right_top_right_frame.hscrollbar \ -orient horizontal \ -command "$this file_listbox_hscrollbar_cmd" \ ] $file_listbox bindText [list $this file_listbox_doubleclick] $file_listbox bindImage [list $this file_listbox_doubleclick] $file_listbox bindText [list $this file_listbox_item_menu %X %Y] $file_listbox bindImage [list $this file_listbox_item_menu %X %Y] bind $file_listbox <> [list $this file_listbox_select] if {[winfo exists $file_listbox.c]} { bind $file_listbox.c [list $this file_listbox_scroll +5 units] bind $file_listbox.c [list $this file_listbox_scroll -5 units] bind $file_listbox.c [list $this file_listbox_menu %X %Y] } pack $file_listbox_frame -fill both -expand 1 -side left pack $right_top_right_top_frame -fill both -expand 1 -side top pack $right_top_frame -side top -fill both -expand 1 # Create Location Label+ComboBox and Filter Label+ComboBox grid [label $right_bottom_frame.location_label \ -text [mc "Location:"] \ ] -sticky w -column 0 -row 0 grid [label $right_bottom_frame.filter_label \ -text [mc "Filter:"] \ ] -sticky w -column 0 -row 1 set location_cb [ttk::combobox $right_bottom_frame.location_cb \ -values {} \ -exportselection 0 \ ] bind $location_cb <> "$file_listbox selection clear" DynamicHelp::add $location_cb -text [mc "Selected file(s)"] bind $location_cb "$file_listbox selection clear" bind $location_cb [list $this ok] bind $location_cb [list $this ok] set tmp_option_filetypes {} foreach type $option_filetypes { set glob_masks [lindex $type 1] if {[regexp {^\*\.\{\w+(,\w+)*\}$} $glob_masks]} { set glob_masks [split $glob_masks {{,}}] set glob_masks [lreplace $glob_masks 0 0] set glob_masks [lreplace $glob_masks end end] set glob_masks_new [list] foreach ext $glob_masks { lappend glob_masks_new [format "*.%s" $ext] } set glob_masks [join $glob_masks_new {, }] } lappend tmp_option_filetypes "[lindex $type 0] ($glob_masks)" } set filter_cb [ttk::combobox $right_bottom_frame.filter_cb \ -state readonly \ -values $tmp_option_filetypes \ -exportselection 0 \ ] DynamicHelp::add $right_bottom_frame.filter_cb -text [mc "Filter"] set tmp_option_filetypes {} foreach type $option_filetypes { lappend tmp_option_filetypes [lindex $type 1] } set option_filetypes $tmp_option_filetypes $filter_cb current $option_defaultmask set current_mask [lindex $option_filetypes $option_defaultmask] bind $filter_cb <> [list $this filter_cb_modify] grid $location_cb -sticky ew -column 1 -row 0 grid $filter_cb -sticky ew -column 1 -row 1 if {!$option_fileson} { $filter_cb configure -state disabled } # Create buttons "Ok" and "Cancel" set ok_button [ttk::button $right_bottom_frame.ok_button\ -text [mc "Ok"] \ -compound left \ -width 8 \ -image ::ICONS::16::ok \ -command [list $this ok] \ ] grid $ok_button -sticky w -column 2 -row 0 -padx 7 -pady 2 grid [ttk::button $right_bottom_frame.cancel_button \ -text [mc "Cancel"] \ -compound left \ -width 8 \ -image ::ICONS::16::button_cancel \ -command "itcl::delete object $this" \ ] -sticky w -column 2 -row 1 -padx 7 -pady 2 grid columnconfigure $right_bottom_frame 1 -weight 1 pack $right_bottom_frame -side bottom -fill x -expand 0 -anchor w pack $topframe -side top -fill x -padx 12 -pady 10 pack $mainframe -side bottom -fill both -expand 1 -padx 12 # Adjust paned windows to current configuration quick_access_panel_onoff separate_folders_onoff # Finalize $location_cb set $option_initialfile focus -force $location_cb catch { $location_cb.e selection range 0 end } } ## Create dialog toolbar # @return void private method create_tool_bar {} { set si 0 foreach item { {up "Parent folder" {1uparrow} {up}} {back "Back" {1leftarrow} {back}} {forward "Forward" {1rightarrow} {forward}} {reload "Reload" {reload} {reload}} {separator} {newdir "New folder" {folder_new} {newdir}} {separator} {short "Short view" {view_icon} {short_view}} {detail "Detailed view" {view_detailed} {detail_view}} {separator} {bookmark "Bookmarks" {bookmark} {bookmark_menu}} {configure "Configure" {configure} {config_menu}} } \ { # Create separator if {$item == {separator}} { pack [ttk::separator $toolbar.sep$si \ -orient vertical \ ] -side left -padx 4 -fill both -expand 1 incr si continue } # Create button if {[lindex $item 0] == {bookmark}} { set buttonWidget [ttk::menubutton $toolbar.[lindex $item 0] \ -image ::ICONS::22::[lindex $item 2] \ -menu $bookmark_menu \ -style Flat.TMenubutton \ ] } elseif {[lindex $item 0] == {configure}} { set buttonWidget [ttk::menubutton $toolbar.[lindex $item 0] \ -image ::ICONS::22::[lindex $item 2] \ -menu $config_menu \ -style Flat.TMenubutton \ ] } else { set buttonWidget [ttk::button $toolbar.[lindex $item 0] \ -command "$this [lindex $item 3]" \ -style Flat.TButton \ -image ::ICONS::22::[lindex $item 2] \ ] } DynamicHelp::add $buttonWidget -text [mc [lindex $item 1]] # Pack it pack $buttonWidget -side left -padx 2 } # Disable button for manipulating history $toolbar.back configure -state disabled $toolbar.forward configure -state disabled # Pack toolbar frame pack $toolbar -side left -expand 0 -fill none } ## Create dialog popup menus # @return void private method create_popup_menus {} { # Create configuration menu set config_menu [menu $win.config_menu -tearoff 0] ## Create menu: Configuration -> Sorting set sorting_menu [menu $win.config_menu.sorting_menu -tearoff 0] # Entry: "By name" $sorting_menu add radiobutton -label [mc "By name"] \ -variable ::KIFSD::FSD::config(sorting) \ -indicatoron 0 -compound left -image ::ICONS::raoff -selectimage ::ICONS::raon \ -value {name} -underline 3 -command [list $this reload] # Entry: "By date" $sorting_menu add radiobutton -label [mc "By date"] \ -variable ::KIFSD::FSD::config(sorting) \ -indicatoron 0 -compound left -image ::ICONS::raoff -selectimage ::ICONS::raon \ -value {date} -underline 3 -command [list $this reload] # Entry: "By size" $sorting_menu add radiobutton -label [mc "By size"] \ -variable ::KIFSD::FSD::config(sorting) \ -indicatoron 0 -compound left -image ::ICONS::raoff -selectimage ::ICONS::raon \ -value {size} -underline 3 -command [list $this reload] $sorting_menu add separator # Entry: "Reverse" $sorting_menu add checkbutton -label [mc "Reverse"] \ -variable ::KIFSD::FSD::config(reverse_sorting) \ -indicatoron 0 -compound left -image ::ICONS::choff -selectimage ::ICONS::chon \ -command "$this reload" -underline 0 # Entry: "Folders first" $sorting_menu add checkbutton -label [mc "Folders first"] \ -variable ::KIFSD::FSD::config(folders_first) \ -indicatoron 0 -compound left -image ::ICONS::choff -selectimage ::ICONS::chon \ -command "$this reload" -underline 0 # Entry: "Case insensitive" $sorting_menu add checkbutton -label [mc "Case insensitive"] \ -variable ::KIFSD::FSD::config(case_insensitive) \ -indicatoron 0 -compound left -image ::ICONS::choff -selectimage ::ICONS::chon \ -command "$this reload" -underline 0 ## Create entries for configuraion menu (accessable from toolbar) # Entry: "Sorting" $win.config_menu add cascade -label [mc "Sorting"] -underline 1 -menu $sorting_menu -image ::ICONS::16::sort_incr -compound left $win.config_menu add separator # Entry: "Short view" $win.config_menu add command -label [mc "Short view"] -compound left \ -accelerator "F6" -command "$this short_view" -underline 0 \ -image ::ICONS::16::view_icon # Entry: "Detailed view" $win.config_menu add command -label [mc "Detailed view"] -compound left \ -accelerator "F7" -command "$this detail_view" -underline 0 \ -image ::ICONS::16::view_detailed $win.config_menu add separator # Entry: "Show hidden files" $win.config_menu add checkbutton -label [mc "Show hidden files"] \ -accelerator "F8" -variable ::KIFSD::FSD::config(show_hidden_files) \ -indicatoron 0 -compound left -image ::ICONS::choff -selectimage ::ICONS::chon \ -command "$this reload" -underline 5 # Entry: "Quick access navigation panel" $win.config_menu add checkbutton -label [mc "Quick access navigation panel"] \ -accelerator "F9" -variable ::KIFSD::FSD::config(quick_access_panel) \ -indicatoron 0 -compound left -image ::ICONS::choff -selectimage ::ICONS::chon \ -command "$this quick_access_panel_onoff" -underline 0 # Entry: "Separate folders" $win.config_menu add checkbutton -label [mc "Separate folders"] \ -accelerator "F12" -variable ::KIFSD::FSD::config(separate_folders) \ -indicatoron 0 -compound left -image ::ICONS::choff -selectimage ::ICONS::chon \ -command "$this separate_folders_onoff" -underline 9 if {!$option_fileson} { $win.config_menu entryconfigure [mc "Separate folders"] -state disabled $sorting_menu entryconfigure [mc "Folders first"] -state disabled $sorting_menu entryconfigure [mc "By size"] -state disabled } ## Create bookmarks menu (accessable from toolbar) set bookmark_menu [menu $win.bookmark_menu -tearoff 0] # Entry: "Add bookmark" $bookmark_menu add command -label [mc "Add bookmark"] \ -command "$this add_bookmark" \ -underline 0 -image ::ICONS::16::bookmark_add -compound left # Entry: "Edit bookmarks" $bookmark_menu add command -label [mc "Edit bookmarks"] -compound left \ -command "$this edit_bookmarks" -underline 0 -image ::ICONS::16::bookmark $bookmark_menu add separator refresh_bookmarks ## Create ListBox item menu menu $win.listbox_menu -tearoff 0 # Entry: "Up" $win.listbox_menu add command -label [mc "Up"] -compound left \ -underline 0 -command [list $this up] \ -image ::ICONS::16::up # Entry: "Back" $win.listbox_menu add command -label [mc "Back"] -compound left \ -underline 0 -command [list $this back] \ -image ::ICONS::16::left -state disabled # Entry: "Forward" $win.listbox_menu add command -label [mc "Forward"] -compound left \ -underline 0 -command [list $this forward] \ -image ::ICONS::16::right -state disabled $win.listbox_menu add separator # Entry: "Rename" $win.listbox_menu add command -label [mc "Rename"] \ -underline 0 -command [list $this rename_item_command] \ -compound left -image ::ICONS::16::edit # Entry: "Delete" $win.listbox_menu add command -label [mc "Delete"] \ -underline 0 -command [list $this delete_item_command] \ -compound left -image ::ICONS::16::editdelete # Entry: "New folder" $win.listbox_menu add command -label [mc "New folder"] \ -accelerator "F10" \ -underline 0 -command [list $this newdir] \ -compound left -image ::ICONS::16::folder_new # Entry: "Bookmark folder" $win.listbox_menu add command -label [mc "Bookmark folder"] \ -underline 0 -command [list $this item_bookmark_add] \ -compound left -image ::ICONS::16::bookmark_add $win.listbox_menu add separator # Entry: "Properties" $win.listbox_menu add command -label [mc "Properties"] \ -underline 0 -command [list $this properties_item_command] ## Create quick access bar popup menu menu $win.quick_access_panel_menu -tearoff 0 # Entry: "Add entry" $win.quick_access_panel_menu add command -label [mc "Add entry"] \ -underline 0 -image ::ICONS::16::filenew -compound left \ -command "$this quick_access_panel_add_entry" $win.quick_access_panel_menu add separator # Entry: "Hide panel" $win.quick_access_panel_menu add command -label [mc "Hide panel"] \ -underline 0 -image ::ICONS::16::2leftarrow -compound left \ -accelerator "F9" -command " set ::KIFSD::FSD::config(quick_access_panel) \ \[expr {!\${::KIFSD::FSD::config(quick_access_panel)}}\] $this quick_access_panel_onoff" ## Create quick access bar ITEM popup menu menu $win.quick_access_panel_item_menu -tearoff 0 # Entry: "Move up" $win.quick_access_panel_item_menu add command -label [mc "Move up"] \ -underline 0 -image ::ICONS::16::1uparrow -compound left \ -command "$this quick_access_panel_up" # Entry: "Move down" $win.quick_access_panel_item_menu add command -label [mc "Move down"] \ -underline 0 -image ::ICONS::16::1downarrow -compound left \ -command "$this quick_access_panel_down" $win.quick_access_panel_item_menu add separator # Entry: "Edit entry" $win.quick_access_panel_item_menu add command -label [mc "Edit entry"] \ -underline 0 -image ::ICONS::16::edit -compound left \ -command "$this quick_access_panel_edit_entry" $win.quick_access_panel_item_menu add separator # Entry: "Add entry" $win.quick_access_panel_item_menu add command -label [mc "Add entry"] \ -underline 0 -image ::ICONS::16::filenew -compound left \ -command "$this quick_access_panel_add_entry" # Entry: "Remove entry" $win.quick_access_panel_item_menu add command -label [mc "Remove entry"]\ -underline 0 -image ::ICONS::16::editdelete -compound left \ -command "$this quick_access_panel_remove_entry" $win.quick_access_panel_item_menu add separator # Entry: "Hide panel" $win.quick_access_panel_item_menu add command -label [mc "Hide panel"] \ -underline 0 -image ::ICONS::16::2leftarrow -compound left \ -accelerator "F9" \ -command " set ::KIFSD::FSD::config(quick_access_panel) \ \[expr {!\${::KIFSD::FSD::config(quick_access_panel)}}\] $this quick_access_panel_onoff" } ## Define key shortcuts for the dialog # @return void private method create_shortcuts {} { bind $win "$this reload; break" bind $win "$this short_view; break" bind $win "$this detail_view; break" bind $win " set ::KIFSD::FSD::config(show_hidden_files) \ \[expr {!\${::KIFSD::FSD::config(show_hidden_files)}}\] $this reload break " bind $win " set ::KIFSD::FSD::config(quick_access_panel) \ \[expr {!\${::KIFSD::FSD::config(quick_access_panel)}}\] $this quick_access_panel_onoff break " bind $win "$this newdir; break" if {$option_fileson} { bind $win " set ::KIFSD::FSD::config(separate_folders) \ \[expr {!\${::KIFSD::FSD::config(separate_folders)}}\] $this separate_folders_onoff break " } } ## Change current directory # This function checks for directory validity # @parm String dir - New directory # @return void public method change_directory {dir} { if {$::MICROSOFT_WINDOWS} { # Transform for instance "C:" to "C:/" if {[regexp {^\w+:$} $dir]} { append dir {/} } } # Check if the specified directory is valid if {![file exists $dir] || ![file isdirectory $dir]} { tk_messageBox \ -parent $win \ -type ok \ -icon warning \ -title [mc "Invalid folder"] \ -message [mc "The specified folder does not exist:\n%s" $dir] return } set dir [file normalize $dir] # Adjust history if {$dir != $current_directory} { lappend back_history $current_directory set forward_history {} $win.listbox_menu entryconfigure [mc "Forward"] -state disabled $win.listbox_menu entryconfigure [mc "Back"] -state normal $toolbar.forward configure -state disabled $toolbar.back configure -state normal } # Option separate_folders ON FSnotifications::forget $current_directory FSnotifications::watch $dir [list KIFSD::FSD::static_reload $this] set current_directory $dir if {${::KIFSD::FSD::config(separate_folders)} && $option_fileson} { # Fill up directory ListBox with directories $dir_listbox delete [$dir_listbox items] foreach folder [dir_cmd $dir 1] { if {$folder == {..}} { set image {up} } else { set image {fileopen} } $dir_listbox insert end #auto \ -text $folder \ -image ::ICONS::16::$image \ -font $listbox_font_short } # Fill up file ListBox with files $file_listbox delete [$file_listbox items] foreach file [file_cmd $dir $current_mask] { if {${::KIFSD::FSD::config(detailed_view)}} { set filename [lindex $file 1] set file [lindex $file 0] } else { set filename $file } $file_listbox insert end #auto \ -text $file \ -image ::ICONS::16::ascii \ -font $listbox_font \ -data [list $filename {}] } # Option separate_folders OFF } else { # Option folders_first ON or option_fileson OFF $file_listbox delete [$file_listbox items] if {!$option_fileson || ${::KIFSD::FSD::config(folders_first)}} { # Fill up files ListBox with directories foreach folder [dir_cmd $dir] { if {${::KIFSD::FSD::config(detailed_view)}} { set fullname [lindex $folder 1] set folder [lindex $folder 0] } else { set fullname $folder } if {$folder == {..}} { set image {up} set fullname $folder } else { set image {fileopen} } $file_listbox insert end #auto \ -text $folder \ -image ::ICONS::16::$image \ -font $listbox_font \ -data [list {} $fullname] } # Option: option_fileson ON if {$option_fileson} { # Fill up files ListBox with files foreach file [file_cmd $dir $current_mask] { if {${::KIFSD::FSD::config(detailed_view)}} { set filename [lindex $file 1] set file [lindex $file 0] } else { set filename $file } $file_listbox insert end #auto \ -text $file \ -image ::ICONS::16::ascii \ -font $listbox_font \ -data [list $filename {}] } } # Option NOT ( folders_first ON or option_fileson OFF ) } else { # Fill up files ListBox with files and directories foreach file [dir_file_cmd $dir $current_mask] { set filename {} set folder {} if {${::KIFSD::FSD::config(detailed_view)}} { set fullname [lindex $file {0 1}] set text [lindex $file {0 0}] } else { set fullname [lindex $file 0] set text $fullname } switch -- [lindex $file 1] { u { set image {up} set folder {..} } d { set image {fileopen} set folder $fullname } f { set image {ascii} set filename $fullname } } $file_listbox insert end #auto \ -text $text \ -image ::ICONS::16::$image \ -font $listbox_font \ -data [list $filename $folder] } } } # Fill up location ComboBox with available files or directories if {$option_fileson} { $location_cb configure -values [file_cmd $dir $current_mask 1] } else { $location_cb configure -values [dir_cmd $dir 1] } $location_cb set {} # Fill up directory ComboBox set values {} set folder $dir while {1} { lappend values $folder if {$folder == [file separator]} {break} if {$::MICROSOFT_WINDOWS} { if {[regexp {^\w+:[\\\/]?$} $folder]} {break} } set folder [file normalize [file join $folder {..}]] } foreach folder [dir_cmd $dir 1] { if {$folder == {..}} {continue} lappend values [file join $dir $folder] } if {$::MICROSOFT_WINDOWS} { ;# Include drive letters on Microsoft Windows foreach drive_letter {A B C D E F G H I J K L M N O P Q R S T U V W X Y Z} { if {[file exists "${drive_letter}:/"]} { lappend values "${drive_letter}:/" } } } $dir_combobox configure -values $values $dir_combobox current 0 $dir_combobox icursor end # Enable / Disable button "Up (Parent folder)" if {$dir == {/} || $dir == "\\"} { $toolbar.up configure -state disabled $win.listbox_menu entryconfigure [mc "Up"] -state disabled } else { $toolbar.up configure -state normal $win.listbox_menu entryconfigure [mc "Up"] -state normal } } ## This function shoul be called after Filter ComboBox change # @return void public method filter_cb_modify {} { set current_mask [lindex $option_filetypes [$filter_cb current]] reload } ## Show / Hide quick access bar according to configuration variable quick_access_panel # @return void public method quick_access_panel_onoff {} { # Show the panel if {${::KIFSD::FSD::config(quick_access_panel)}} { pack $main_paned_window -fill both -expand 1 $main_paned_window add $leftframe $main_paned_window add $rightframe $main_paned_window paneconfigure $leftframe -minsize 100 $main_paned_window paneconfigure $rightframe -minsize 300 if {$dialog_loaded} {update} $main_paned_window sash place 0 ${::KIFSD::FSD::config(main_PW_size)} 0 if {$dialog_loaded} {update} # Hide the panel } else { if {[winfo ismapped $main_paned_window]} { set ::KIFSD::FSD::config(main_PW_size) \ [lindex [$main_paned_window sash coord 0] {0 0}] $main_paned_window forget $leftframe $main_paned_window forget $rightframe pack forget $main_paned_window } pack $rightframe -fill both -expand 1 -padx 5 } } ## Show / Hide folders ListBox according to configuration variable separate_folders # This function will show folders ListBox only if option_fileson == 1 # @return void public method separate_folders_onoff {} { # Show folders ListBox if {${::KIFSD::FSD::config(separate_folders)} && $option_fileson} { pack $right_paned_window -fill both -expand 1 $right_paned_window add $right_top_left_frame $right_paned_window add $right_top_right_frame $right_paned_window paneconfigure $right_top_left_frame -minsize 150 $right_paned_window paneconfigure $right_top_right_frame -minsize 200 if {$dialog_loaded} {update} $right_paned_window sash place 0 ${::KIFSD::FSD::config(right_PW_size)} 0 if {$dialog_loaded} {update} # Hide folders ListBox } else { if {[winfo ismapped $right_paned_window]} { set ::KIFSD::FSD::config(right_PW_size) \ [lindex [$right_paned_window sash coord 0] {0 0}] $right_paned_window forget $right_top_left_frame $right_paned_window forget $right_top_right_frame pack forget $right_paned_window } pack $right_top_right_frame -expand 1 -fill both -in $right_top_frame } # Refresh files and folders ListBoxes change_directory $current_directory } ## Invoke bookmark menu # @return void public method bookmark_menu {} { set x [winfo rootx $toolbar.bookmark] set y [winfo rooty $toolbar.bookmark] incr y [winfo height $toolbar.bookmark] tk_popup $win.bookmark_menu $x $y } ## Invoke configuration menu # @return void public method config_menu {} { set x [winfo rootx $toolbar.configure] set y [winfo rooty $toolbar.configure] incr y [winfo height $toolbar.configure] tk_popup $win.config_menu $x $y } ## Scroll folders ListBox and (Un)Map its scrollbar # @parm Float frac0 - 1st fraction # @parm Float frac0 - 2nd fraction # @return void public method dir_listbox_scroll {frac0 frac1} { # Hide scrollbar if {$frac0 == 0 && $frac1 == 1} { if {[winfo ismapped $dir_listbox_scrollbar]} { pack forget $dir_listbox_scrollbar } # Show scrollbar } else { if {![winfo ismapped $dir_listbox_scrollbar]} { pack $dir_listbox_scrollbar -fill y -expand 1 -after $dir_listbox } $dir_listbox_scrollbar set $frac0 $frac1 } } ## Switch to mode "Short View" # @return void public method short_view {} { if {!${::KIFSD::FSD::config(detailed_view)}} {return} set ::KIFSD::FSD::config(detailed_view) 0 $file_listbox configure -multicolumn 1 set listbox_font $listbox_font_short pack forget $file_listbox_header reload } ## Switch to mode "Detailed View" # @return void public method detail_view {} { if {${::KIFSD::FSD::config(detailed_view)}} {return} set ::KIFSD::FSD::config(detailed_view) 1 $file_listbox configure -multicolumn 0 set listbox_font $listbox_font_detailed pack $file_listbox_header -before $file_listbox -fill x -expand 0 reload } ## Bookmark current folder # @return void public method add_bookmark {} { lappend ::KIFSD::FSD::config(bookmarks) $current_directory $bookmark_menu add command \ -label $current_directory -compound left \ -image ::ICONS::16::fileopen \ -command "$this change_directory {$current_directory}" uplevel #0 $bookmark_change_command } ## Invoke bookmark editor # @return void public method edit_bookmarks {} { # Create dialog window set dialog [toplevel $win.edit_bookmarks -class {Edit bookmarks} -bg ${::COMMON_BG_COLOR}] # Create top frame (ListBox containing bookmarks and its scrollbar) set top_frame [frame $dialog.top_frame] set bookmark_edit_listbox [ListBox $top_frame.listbox \ -yscrollcommand "$top_frame.scrollbar set" \ -bg white -selectfill 1 -selectmode single \ -highlightcolor {#BBBBFF} \ ] $bookmark_edit_listbox bindText "$this edit_bookmarks_edit" pack $bookmark_edit_listbox -side left -fill both -expand 1 pack [ttk::scrollbar $top_frame.scrollbar \ -orient vertical \ -command "$bookmark_edit_listbox yview" \ ] -fill y -expand 1 # Fill up ListBox with defined bookmarks foreach item ${::KIFSD::FSD::config(bookmarks)} { $bookmark_edit_listbox insert end #auto -text $item } ## Create bottom frame (buttons) set bottom_frame [frame $dialog.bottom_frame] # Button: "Remove" pack [ttk::button $bottom_frame.remove \ -text [::mc "Remove"] \ -compound left \ -image ::ICONS::16::editdelete \ -command "$this edit_bookmarks_remove" \ -width 8 \ ] -side left -padx 2 # Button: "Edit" pack [ttk::button $bottom_frame.edit \ -text [::mc "Edit"] \ -compound left \ -image ::ICONS::16::edit \ -command "$this edit_bookmarks_edit" \ -width 8 \ ] -side left -padx 2 # Button: "Up" pack [ttk::button $bottom_frame.up \ -text [::mc "Up"] \ -compound left \ -image ::ICONS::16::up \ -command "$this edit_bookmarks_up" \ -width 8 \ ] -side left -padx 2 # Button: "Down" pack [ttk::button $bottom_frame.down \ -text [::mc "Down"] \ -compound left \ -image ::ICONS::16::down \ -command "$this edit_bookmarks_down" \ -width 8 \ ] -side left -padx 2 # Button: "Ok" pack [ttk::button $bottom_frame.ok \ -text [::mc "Ok"] \ -compound left \ -image ::ICONS::16::ok \ -width 8 \ -command " $this bookmark_edit_ok grab release $dialog destroy $dialog " \ ] -side right -padx 2 # Button: "Cancel" pack [ttk::button $bottom_frame.cancel \ -text [::mc "Cancel"] \ -compound left \ -image ::ICONS::16::button_cancel \ -width 8 \ -command " grab release $dialog destroy $dialog " \ ] -side right -padx 2 # Pack dialog frames (top and bottom) pack $top_frame -side top -fill both -expand 1 -pady 5 -padx 5 pack $bottom_frame -side top -after $top_frame -fill x -expand 0 -pady 5 -padx 5 # Configure dialog window wm iconphoto $dialog ::ICONS::16::bookmark wm title $dialog "Edit bookmarks" wm minsize $dialog 550 240 wm geometry $dialog 550x340 wm protocol $dialog WM_DELETE_WINDOW " grab release $dialog destroy $dialog " if {[winfo ismapped $win]} { wm transient $dialog $win } else { wm transient $dialog . } grab $dialog raise $dialog tkwait window $dialog } ## Auxiliary procedure for bookmark editor # Remove current bookmark # @return void public method edit_bookmarks_remove {} { set item [$bookmark_edit_listbox selection get] if {$item == {}} {return} $bookmark_edit_listbox delete $item } ## Auxiliary procedure for bookmark editor # Edit current bookmark # @return void public method edit_bookmarks_edit args { set item [$bookmark_edit_listbox selection get] if {$item == {}} {return} set text [$bookmark_edit_listbox edit $item \ [$bookmark_edit_listbox itemcget $item -text]] if {$text == {}} {return} $bookmark_edit_listbox itemconfigure $item -text $text } ## Auxiliary procedure for bookmark editor # Move current bookmark up # @return void public method edit_bookmarks_up {} { set item [$bookmark_edit_listbox selection get] if {$item == {}} {return} if { ![$bookmark_edit_listbox index $item] || ([llength [$bookmark_edit_listbox items]] < 2) } then { return } $bookmark_edit_listbox move $item [expr {[$bookmark_edit_listbox index $item] - 1}] } ## Auxiliary procedure for bookmark editor # Move current bookmark down # @return void public method edit_bookmarks_down {} { set item [$bookmark_edit_listbox selection get] if {$item == {}} {return} if { [$bookmark_edit_listbox index $item] >= ([llength [$quick_access_bar items]] - 1) } then { return } $bookmark_edit_listbox move $item [expr {[$bookmark_edit_listbox index $item] + 1}] } ## Auxiliary procedure for bookmark editor # Confirm bookmark edit dialog # @return void public method bookmark_edit_ok {} { set ::KIFSD::FSD::config(bookmarks) {} foreach item [$bookmark_edit_listbox items] { lappend ::KIFSD::FSD::config(bookmarks) \ [$bookmark_edit_listbox itemcget $item -text] } refresh_bookmarks uplevel #0 $bookmark_change_command } ## Reload items to bookmarks menu # @return void private method refresh_bookmarks {} { if {[$bookmark_menu index end] > 2} { $bookmark_menu delete 3 end } foreach dir ${::KIFSD::FSD::config(bookmarks)} { $bookmark_menu add command \ -label $dir -compound left \ -image ::ICONS::16::fileopen \ -command "$this change_directory {$dir}" } } ## Set command to execute when bookmark list changes # @parm String command - Command to invoke from root namespace # @return void proc set_bookmark_change_command {command} { set bookmark_change_command $command } ## Unmap dialog window (but keep object alive) # @return void public method deactivate {} { wm withdraw $win } ## Activate (map) dialog window # And wait until window is unmapped # @return void public method activate {} { wm resizable $win 1 1 wm deiconify $win update idletasks if {[winfo ismapped $right_paned_window]} { $right_paned_window sash place 0 ${::KIFSD::FSD::config(right_PW_size)} 0 } if {[winfo ismapped $main_paned_window]} { $main_paned_window sash place 0 ${::KIFSD::FSD::config(main_PW_size)} 0 } tkwait window $win } ## Get selected item(s) # @return String/List - Full path(s) to selected item(s) public method get {} { # Return List if {$option_multiple} { set result {} foreach item [$file_listbox selection get] { lappend result [file join $current_directory \ [lindex [$file_listbox itemcget $item -data] 0]] } if {$result == {}} { lappend result [file join $current_directory [$location_cb get]] } return $result # Return String } else { return [file join $current_directory [$location_cb get]] } } ## Destroy dialog object # @return void public method close_dialog {} { catch { itcl::delete object $this } } ## Set command to invoke from root namespace on action "Ok" # @parm String command - Command (with arguments) # @return void public method setokcmd {cmd} { set ok_command $cmd } ## Ok action - command for button "Ok" # @return void public method ok {} { if {$option_autoclose} { wm withdraw $win set ok_command_tmp $ok_command set ok_command {} uplevel #0 $ok_command_tmp close_dialog } else { uplevel #0 $ok_command } } ## Command for files ListBox horizontal scrollbar # Takes any list of arguments (see code) # @return void public method file_listbox_hscrollbar_cmd args { eval "$file_listbox xview $args" eval "$file_listbox_header xview $args" } ## Scroll files ListBox vertically # This function manages scrollbar visibility # @parm Float frac0 - 1st fraction (see Tk manual) # @parm Float frac1 - 2nd fraction (see Tk manual) # @return void public method file_listbox_vscroll {frac0 frac1} { # Hide scrollbar if {$frac0 == 0 && $frac1 == 1} { if {[winfo ismapped $file_listbox_vscrollbar]} { pack forget $file_listbox_vscrollbar update } # Show scrollbar } else { if {![winfo ismapped $file_listbox_vscrollbar]} { pack $file_listbox_vscrollbar \ -after $file_listbox_frame \ -fill y -expand 1 update } $file_listbox_vscrollbar set $frac0 $frac1 } } ## Scroll files ListBox horizontaly # This function manages scrollbar visibility # @parm Float frac0 - 1st fraction (see Tk manual) # @parm Float frac1 - 2nd fraction (see Tk manual) # @return void public method file_listbox_hscroll {frac0 frac1} { # Hide scrollbar if {$frac0 == 0 && $frac1 == 1} { if {[winfo ismapped $file_listbox_hscrollbar]} { pack forget $file_listbox_hscrollbar update } # Show scrollbar } else { if {![winfo ismapped $file_listbox_hscrollbar]} { pack $file_listbox_hscrollbar \ -after $right_top_right_top_frame \ -side bottom -fill x -expand 0 update } catch { $file_listbox_hscrollbar set $frac0 $frac1 } } } ## Event handler for quick access bar ListBox, event <> # @return void public method quick_access_bar_select {} { if {$option_doubleclick} {return} catch { change_directory \ [$quick_access_bar itemcget \ [$quick_access_bar selection get] -data] } } ## Event handler for quick access bar ListBox, item event # @parm String item - Item identifier # @return void public method quick_access_bar_doubleclick {item} { if {!$option_doubleclick} {return} catch { change_directory \ [$quick_access_bar itemcget \ [$quick_access_bar selection get] -data] } } ## Event handler for directories ListBox, item event # @parm String item - Item identifier # @return void public method dir_listbox_doubleclick {item} { # Abort if dirs ListBox widget is no longer available if {![winfo exists $dir_listbox]} { return } if {!$option_doubleclick} {return} catch { change_directory [file join $current_directory \ [$dir_listbox itemcget $item -text]] } } ## Event handler for directories ListBox, event <> # @return void public method dir_listbox_select {} { # Abort if dirs ListBox widget is no longer available if {![winfo exists $dir_listbox]} { return } if {$option_doubleclick} {return} catch { change_directory [file normalize [file join $current_directory \ [$dir_listbox itemcget [$dir_listbox selection get] -text]]] } } ## Event handler for files ListBox, item event # @parm String item - Item identifier # @return void public method file_listbox_doubleclick {item} { # Abort if files ListBox widget is no longer available if {![winfo exists $file_listbox]} { return } # Item directory or {} if it's a file if {[catch { set folder [lindex [$file_listbox itemcget $item -data] 1] }]} then { return } if {!$option_fileson} { if {$folder != {}} { change_directory [file join $current_directory $folder] } return } if {$option_doubleclick && !${::KIFSD::FSD::config(separate_folders)}} { if {$folder != {}} { change_directory [file join $current_directory $folder] } } if {!$option_doubleclick && ($folder == {})} { ok } } ## Scroll files listbox # Arguments are passed to yview or xview command # @return void public method file_listbox_scroll args { if {${::KIFSD::FSD::config(detailed_view)}} { set cmd {yview} } else { set cmd {xview} } eval "$file_listbox.c $cmd scroll $args" } ## Event handler for files ListBox, event <> # @return void public method file_listbox_select {} { set selection [$file_listbox selection get] # Change directory if the item represents a directory if {$option_fileson && !${::KIFSD::FSD::config(separate_folders)}} { set folder [$file_listbox itemcget [lindex $selection end] -data] set folder [lindex $folder 1] if {$folder != {}} { if {!$option_doubleclick} { change_directory [file join $current_directory $folder] } return } } # Change content of location ComboBox if item is a file if {[llength $selection] == 1} { set index [lindex [$file_listbox itemcget $selection -data] [expr {$option_fileson ? 0 : 1}]] if {$index != {..}} { set index [lsearch -ascii [$location_cb cget -values] $index] if {$index != -1} { $location_cb current $index } } } elseif {[llength $selection] > 1} { set text {} foreach item $selection { append text "\"" append text [lindex [$file_listbox itemcget $item -data] [expr {$option_fileson ? 0 : 1}]] append text "\" " } $location_cb set $text } } ## Reload content of quick access bar ListBox # @return void private method refresh_quick_access_bar {} { # Remove existing items $quick_access_bar delete [$quick_access_bar items] # Create new items foreach item ${::KIFSD::FSD::config(quick_access_bar_data)} { # Determinate item icon switch -- [lindex $item 0] { 0 {set image hdd_unmount} 1 {set image folder_home} 2 {set image desktop} 3 {set image bookmark_folder} } # Insert item $quick_access_bar insert end #auto \ -font $quick_nav_panel_font \ -image ::ICONS::22::$image \ -text [lindex $item 1] \ -data [lindex $item 2] \ } } ## Invoke popup menu for ListBox of Quick access bar # @parm Int x - Relative position of mouse pointer # @parm Int y - Relative position of mouse pointer # @return void public method quick_access_bar_menu {x y} { if {$item_menu_request} { set item_menu_request 0 return } catch { tk_popup $win.quick_access_panel_menu $x $y } } ## Invoke popup menu for particular item in ListBox of Quick access bar # @parm Int x - Relative position of mouse pointer # @parm Int y - Relative position of mouse pointer # @parm String item - Item identifier # @return void public method quick_access_bar_item_menu {x y item} { set item_menu_request 1 set current_item $item set current_item_index [$quick_access_bar index $item] set len [llength [$quick_access_bar items]] # Enable / Disabled entry "Move down" if {$current_item_index >= ($len - 1)} { $win.quick_access_panel_item_menu entryconfigure [mc "Move down"] -state disabled } else { $win.quick_access_panel_item_menu entryconfigure [mc "Move down"] -state normal } # Enable / Disabled entry "Move up" if {!$current_item_index || ($len < 2)} { $win.quick_access_panel_item_menu entryconfigure [mc "Move up"] -state disabled } else { $win.quick_access_panel_item_menu entryconfigure [mc "Move up"] -state normal } # Invoke the menu tk_popup $win.quick_access_panel_item_menu $x $y } ## Move current item in quick access bar down # @return void public method quick_access_panel_down {} { # Check if the item is not the topmost one if {$current_item_index >= ([llength [$quick_access_bar items]] - 1)} { return } set ::KIFSD::FSD::config(quick_access_bar_data) [lreplace \ ${::KIFSD::FSD::config(quick_access_bar_data)} \ $current_item_index [expr {$current_item_index + 1}] \ [lindex ${::KIFSD::FSD::config(quick_access_bar_data)} \ [expr {$current_item_index + 1}]] \ [lindex ${::KIFSD::FSD::config(quick_access_bar_data)} \ $current_item_index] ] refresh_quick_access_bar } ## Move current item in quick access bar up # @return void public method quick_access_panel_up {} { # Check if the item is not the bottommost one if {!$current_item_index || ([llength [$quick_access_bar items]] < 2)} { return } set ::KIFSD::FSD::config(quick_access_bar_data) [lreplace \ ${::KIFSD::FSD::config(quick_access_bar_data)} \ [expr {$current_item_index - 1}] $current_item_index \ [lindex ${::KIFSD::FSD::config(quick_access_bar_data)} \ $current_item_index] \ [lindex ${::KIFSD::FSD::config(quick_access_bar_data)} \ [expr {$current_item_index - 1}]] ] refresh_quick_access_bar } ## Invoke dialog to add entry to quick access bar # @return void public method quick_access_panel_add_entry {} { set data [qa_panel_dialog "Add entry" {3} [::mc "New entry"] {~}] if {![string length [lindex $data 1]]} {return} if {![string length [lindex $data 2]]} {return} lappend ::KIFSD::FSD::config(quick_access_bar_data) $data refresh_quick_access_bar } ## Invoke dialog to edit current entry in quick access bar # @return void public method quick_access_panel_edit_entry {} { set data [lindex ${::KIFSD::FSD::config(quick_access_bar_data)} $current_item_index] set data [qa_panel_dialog "Edit entry" [lindex $data 0] [lindex $data 1] [lindex $data 2]] if {![string length [lindex $data 1]]} {return} if {![string length [lindex $data 2]]} {return} set ::KIFSD::FSD::config(quick_access_bar_data) [lreplace \ ${::KIFSD::FSD::config(quick_access_bar_data)} \ $current_item_index $current_item_index $data \ ] refresh_quick_access_bar } ## Select icon in quick access bar edit dialog # @parm Int index - Icon index [0; 4] # @return void public method qa_panel_dialog_icon {index} { for {set i 0} {$i < 4} {incr i} { ${win}.qa_panel_dialog.labelframe.button_$i configure -style Flat.TButton } ${win}.qa_panel_dialog.labelframe.button_$index configure -style TButton set ::KIFSD::FSD::qa_panel_dialog_icon $index } ## EntryBox validator # If the content was an empty string then set entry background color to red # @parm Widget widget - EntryBox widget # @parm String content - EntryBox content # @return Bool - Always 1 proc not_empty_entry_validator {widget content} { if {![string length $content]} { $widget configure -style StringNotFound.TEntry } else { $widget configure -style TEntry } return 1 } ## Invoke dialog for editing entries in the quick access bar # Auxiliary procedure for: # * quick_access_panel_add_entry # * quick_access_panel_edit_entry # @parm String title - Dialog title # @parm Int icon - Icon number [0;3] # @parm String name - Item name # @parm String url - Target URL # @return List - {new_icon_number new_name new_url} private method qa_panel_dialog {title icon name url} { # Create dialog window set dialog [toplevel ${win}.qa_panel_dialog -class {Configuration dialog} -bg ${::COMMON_BG_COLOR}] # Set dialog variables set ::KIFSD::FSD::qa_panel_dialog_icon $icon set ::KIFSD::FSD::qa_panel_dialog_name_entry $name set ::KIFSD::FSD::qa_panel_dialog_url_entry $url ## Create main frame (Name: and URL:) set mid_frame [frame $dialog.middle] # Label: "Name" grid [label $mid_frame.name_lbl \ -text [::mc "Name"] \ ] -row 0 -column 0 -sticky w # Label: "URL" grid [label $mid_frame.url_lbl \ -text [::mc "URL"] \ ] -row 1 -column 0 -sticky w # EntryBox: "Name" grid [ttk::entry $mid_frame.name_entry \ -width 1 \ -validate all \ -validatecommand "::KIFSD::FSD::not_empty_entry_validator %W %P" \ -textvariable ::KIFSD::FSD::qa_panel_dialog_name_entry \ ] -row 0 -column 1 -sticky we # EntryBox: "URL" grid [ttk::entry $mid_frame.url_entry \ -width 1 \ -validate all \ -textvariable ::KIFSD::FSD::qa_panel_dialog_url_entry \ -validatecommand "::KIFSD::FSD::dir_validate {} %W %P" \ ] -row 1 -column 1 -sticky we grid columnconfigure $mid_frame 1 -weight 1 pack $mid_frame -padx 10 -pady 5 -fill x -expand 1 # Create frame for selecting icon pack [ttk::labelframe $dialog.labelframe \ -text [::mc "Icon"] \ ] -fill none -expand 1 -anchor w -padx 10 foreach icon {hdd_unmount folder_home desktop bookmark_folder} index {0 1 2 3} { pack [ttk::button $dialog.labelframe.button_$index \ -image ::ICONS::22::$icon \ -command "$this qa_panel_dialog_icon $index" \ -width 6 \ -style Flat.TButton \ ] -side left -padx 5 -pady 5 } $dialog.labelframe.button_${::KIFSD::FSD::qa_panel_dialog_icon} \ configure -style TButton ## Create bottom frame (Buttons "Ok" and "Cancel") set bot_frame [frame $dialog.bot] # Button: "Ok" pack [ttk::button $bot_frame.ok \ -text [::mc "Ok"] \ -compound left \ -image ::ICONS::16::ok \ -command " if \[string length \${::KIFSD::FSD::qa_panel_dialog_name_entry}\] { if \[string length \${::KIFSD::FSD::qa_panel_dialog_url_entry}\] { grab release $dialog destroy $dialog } }" \ ] -side left -fill none -expand 0 -padx 2 # Button: "Cancel" pack [ttk::button $bot_frame.cancel \ -text [::mc "Cancel"] \ -compound left \ -image ::ICONS::16::button_cancel \ -command " set ::KIFSD::FSD::qa_panel_dialog_url_entry {} set ::KIFSD::FSD::qa_panel_dialog_name_entry {} set ::KIFSD::FSD::qa_panel_dialog_icon {} grab release $dialog destroy $dialog" \ ] -side left -fill none -expand 0 -padx 2 pack $bot_frame -anchor e -padx 10 -pady 5 # Configure dialog window wm title $dialog $title wm resizable $dialog 0 0 wm geometry $dialog 380x160 wm protocol $dialog WM_DELETE_WINDOW " set ::KIFSD::FSD::qa_panel_dialog_url_entry {} set ::KIFSD::FSD::qa_panel_dialog_name_entry {} set ::KIFSD::FSD::qa_panel_dialog_icon {} grab release $dialog destroy $dialog " wm transient $dialog $win grab $dialog raise $dialog focus -force $mid_frame.name_entry tkwait window $dialog # Return results return [list \ ${::KIFSD::FSD::qa_panel_dialog_icon} \ ${::KIFSD::FSD::qa_panel_dialog_name_entry} \ ${::KIFSD::FSD::qa_panel_dialog_url_entry} \ ] } ## Remove entry from quick access bar (popup menu action) # @return void public method quick_access_panel_remove_entry {} { set ::KIFSD::FSD::config(quick_access_bar_data) \ [lreplace ${::KIFSD::FSD::config(quick_access_bar_data)} \ $current_item_index $current_item_index] refresh_quick_access_bar } ## Invoke popup menu for directories ListBox # @parm Int x - Relative position of mouse pointer # @parm Int y - Relative position of mouse pointer # @return void public method dir_listbox_menu {x y} { if {$item_menu_request} { set item_menu_request 0 return } foreach entry {Rename Delete Properties {Bookmark folder}} { $win.listbox_menu entryconfigure [mc $entry] -state disabled } tk_popup $win.listbox_menu $x $y } ## Invoke popup menu for item in directories ListBox # @parm Int x - Relative position of mouse pointer # @parm Int y - Relative position of mouse pointer # @parm String item - Item identifier # @return void public method dir_listbox_item_menu {x y item} { set item_menu_request 1 foreach entry {Rename Delete Properties {Bookmark folder}} { $win.listbox_menu entryconfigure [mc $entry] -state normal } set cur_listbox {dir} set current_item $item set current_item_index [$dir_listbox index $item] tk_popup $win.listbox_menu $x $y } ## Invoke popup menu for files ListBox # @parm Int x - Relative position of mouse pointer # @parm Int y - Relative position of mouse pointer # @return void public method file_listbox_menu {x y} { if {$item_menu_request} { set item_menu_request 0 return } foreach entry {Rename Delete Properties} { $win.listbox_menu entryconfigure [mc $entry] -state disabled } $win.listbox_menu entryconfigure [mc {Bookmark folder}] -state normal tk_popup $win.listbox_menu $x $y } ## Invoke popup menu for item in files ListBox # @parm Int x - Relative position of mouse pointer # @parm Int y - Relative position of mouse pointer # @parm String item - Item identifier # @return void public method file_listbox_item_menu {x y item} { set item_menu_request 1 set current_item $item set current_item_index [$dir_listbox index $item] foreach entry {Rename Delete Properties {Bookmark folder}} { $win.listbox_menu entryconfigure [mc $entry] -state normal } set cur_listbox {file} set current_item $item set current_item_index [$dir_listbox index $item] tk_popup $win.listbox_menu $x $y } ## Remove selected file or directory # @return void public method delete_item_command {} { # Determinate URL to delete if {$cur_listbox == {dir}} { set filename [$dir_listbox itemcget $current_item -text] } else { set data [$file_listbox itemcget $current_item -data] if {[lindex $data 0] == {}} { set filename [lindex $data 1] } else { set filename [lindex $data 0] } } if {$filename == {}} {return} # Invoke confirmation dialog if {[tk_messageBox \ -parent $win \ -type yesno \ -icon question \ -title [::mc "Delete file"] \ -message [::mc "Do you really want to delete file:\n%s" $filename]] == {yes} } then { # Delete file/directory (+ invoke error dialog) if {[catch {file delete -force -- [file join $current_directory $filename]}]} { tk_messageBox \ -parent $win \ -type ok \ -icon warning \ -title [::mc "Permission denied"] \ -message [::mc "Unable to remove file:\n%s" $filename] } } reload } ## Bookmark selected folder # @return void public method item_bookmark_add {} { set tmp $current_directory if {$cur_listbox == {dir}} { set current_directory [file join $current_directory \ [$dir_listbox itemcget $current_item -text]] } add_bookmark set current_directory $tmp } ## Rename selected file or directory # @return void public method rename_item_command {} { if {$cur_listbox == {dir}} { set listbox $dir_listbox } else { set listbox $file_listbox } # Determinate old and new name set original [$listbox itemcget $current_item -text] set newname [$listbox edit $current_item \ [$listbox itemcget $current_item -text]] if {$newname == {}} { return } # Adjust old and new name set original [file join $current_directory $original] set newname [file join $current_directory $newname] # Rename file if {[catch {file rename -force $original $newname}]} { tk_messageBox \ -parent $win \ -type ok \ -icon warning \ -title [::mc "Permission denied"] \ -message [::mc "Unable to rename file:\n%s" $original] } reload } ## Invoke item properties dialog # @return void public method properties_item_command {} { # Determinate item name, type (File or Directory) if {$cur_listbox == {dir}} { set name [$dir_listbox itemcget $current_item -text] set type "Directory" } else { set name [$file_listbox itemcget $current_item -data] if {[lindex $name 0] == {}} { set name [lindex $name 1] set type "Directory" } else { set name [lindex $name 0] set type "File" } } # Determinate full name set fullname [file join $current_directory $name] if {![file exists $fullname]} { tk_messageBox \ -parent $win \ -type ok \ -icon warning \ -title [::mc "Unknown Error"] \ -message [::mc "This file apparently does not exist"] return } # Determinate size set size [file size $fullname] append size { B} # Determinate time of the last mofication set modified [clock format [file mtime $fullname] -format {%D %R}] # Determinate time of the last access set accessed [clock format [file atime $fullname] -format {%D %R}] # Determinate group, owner and permissions if {!$::MICROSOFT_WINDOWS} { ;# Microsoft Windows has no file rights (compatible with posix rights) set perms [file attributes $fullname] set group [lindex $perms 1] set owner [lindex $perms 3] set perms [lindex $perms 5] set perms [string range $perms {end-3} end] foreach var {ur uw ux gr gw gx or ow ox} \ mask {0400 0200 0100 040 020 010 04 02 01} \ { set ::KIFSD::FSD::item_properties($var) [expr {($perms & $mask) > 0}] } } # Create dialog window and Notebook set dialog [toplevel $win.properties_dialog -class {Configuration dialog} -bg ${::COMMON_BG_COLOR}] set nb [NoteBook $dialog.nb -bg ${::COMMON_BG_COLOR}] $nb insert end general -text "General" if {!$::MICROSOFT_WINDOWS} { ;# Microsoft Windows has no file rights (compatible with posix rights) $nb insert end permission -text "Permissions" } $nb raise general ## Create GUI elements for tag "General" set frame [frame [$nb getframe general].frame] pack $frame -side top -anchor n -fill x -expand 1 # Name: set row 0 grid [label $frame.lbl_$row \ -text [::mc "Name:"] -anchor w \ -font $listbox_font_short \ ] -column 0 -row $row -sticky w -pady 3 set ::KIFSD::FSD::item_properties(name) $name grid [ttk::entry $frame.val_lbl_$row \ -validate all \ -textvariable ::KIFSD::FSD::item_properties(name) \ -validatecommand "::KIFSD::FSD::not_empty_entry_validator %W %P" \ ] -column 1 -row $row -sticky w -pady 3 # Type, Location, Size, Modified, Accessed incr row foreach lbl [list "Type" "Location" "Size" "Modified" "Accessed"] \ value [list $type $current_directory $size $modified $accessed] \ { grid [label $frame.lbl_$row \ -text "[::mc $lbl]:" -anchor w \ -font $listbox_font_short \ ] -column 0 -row $row -sticky w -pady 3 grid [label $frame.val_lbl_$row \ -text $value -anchor w \ ] -column 1 -row $row -sticky w -pady 3 incr row } grid columnconfigure $frame 0 -minsize 100 ## Create GUI elements for tag "Permissions" if {!$::MICROSOFT_WINDOWS} { ;# Microsoft Windows has no file rights (compatible with posix rights) set frame [$nb getframe permission] set ap_frame [ttk::labelframe $frame.ap_frame \ -text [::mc "Access permissions"] \ ] set i 0 foreach text [list "Class" "Read" "Write" "Exec" "Owner" "Group" "Others"] \ row {0 0 0 0 1 2 3} \ col {0 1 2 3 0 0 0} \ { grid [label $ap_frame.lbl_$i \ -text [::mc $text] \ -justify center \ ] -row $row -column $col -sticky w -padx 4 -pady 4 incr i } foreach var {ur uw ux gr gw gx or ow ox} \ row {1 1 1 2 2 2 3 3 3} \ col {1 2 3 1 2 3 1 2 3} \ { grid [checkbutton $ap_frame.check_$i \ -variable ::KIFSD::FSD::item_properties($var) ] -row $row -column $col incr i } grid columnconfigure $ap_frame 0 -minsize 70 grid columnconfigure $ap_frame 0 -weight 1 pack $ap_frame -side top -fill x -expand 1 -padx 5 -pady 5 -anchor nw set own_frame [ttk::labelframe $frame.own_frame \ -text [::mc "Ownership"] \ ] grid [label $own_frame.owner_lbl \ -text [::mc "Owner"] -font $listbox_font_short \ ] -row 0 -column 0 -padx 10 -pady 3 -sticky w grid [label $own_frame.owner_val_lbl \ -text $owner -anchor w \ ] -row 0 -column 1 -padx 10 -pady 3 -sticky we grid [label $own_frame.group_lbl \ -text [::mc "Group"] -font $listbox_font_short \ ] -row 1 -column 0 -padx 10 -pady 3 -sticky w grid [label $own_frame.group_val_lbl \ -text $group -anchor w \ ] -row 1 -column 1 -padx 10 -pady 3 -sticky we grid columnconfigure $own_frame 0 -minsize 70 grid columnconfigure $own_frame 1 -weight 1 pack $own_frame -side top -fill x -expand 1 -padx 5 -pady 5 } # Create bottom frame (buttons: "Ok" and "Cancel") set bottom_frame [frame $dialog.bottom_frame] pack [ttk::button $bottom_frame.ok \ -text [::mc "Ok"] \ -compound left \ -image ::ICONS::16::ok \ -command "$this properties_ok $dialog $fullname" \ ] -side left -padx 2 pack [ttk::button $bottom_frame.cancel \ -text [::mc "Cancel"] \ -compound left \ -image ::ICONS::16::button_cancel \ -command " grab release $dialog destroy $dialog " \ ] -side left -padx 2 # Pack notebook and bottom frame pack $nb -fill both -expand 1 -padx 10 -pady 5 pack $bottom_frame -anchor e -after $nb -padx 10 -pady 5 # Configure dialog window wm title $dialog [::mc "Item properties"] wm minsize $dialog 280 320 wm protocol $dialog WM_DELETE_WINDOW " grab release $dialog destroy $dialog" wm transient $dialog $win grab $dialog raise $dialog tkwait window $dialog } ## Confirm item properties dialog # @parm Widget dialog - Dialog window # @parm String file - File URL # @return void public method properties_ok {dialog file} { set error 0 set perm 0 if {!$::MICROSOFT_WINDOWS} { ;# Microsoft Windows has no file rights (compatible with posix rights) foreach var {ur uw ux gr gw gx or ow ox} \ val {256 128 64 32 16 8 4 2 1} { if {$::KIFSD::FSD::item_properties($var)} { incr perm $val } } if {[catch {file attributes $file -permissions "0[format {%o} $perm]"}]} { set error 1 tk_messageBox \ -type ok \ -icon warning \ -parent $dialog \ -title [::mc "Permission denied"] \ -message [::mc "Unable to change permissions for file:\n%s" [file tail $file]] } } set dir [file dirname $file] if {${::KIFSD::FSD::item_properties(name)} != [file tail $file]} { if {[catch { file rename -force -- \ $file [file join $dir \ ${::KIFSD::FSD::item_properties(name)}]}] } then { set error 1 tk_messageBox \ -type ok \ -icon warning \ -parent $dialog \ -title [::mc "Permission denied"] \ -message [::mc "Unable to rename file:%s" "\n[file tail $file]\n\t=>\n${::KIFSD::FSD::item_properties(name)}"] } reload } if {!$error} { grab release $dialog destroy $dialog } } ## Validate EntryBox containing directory location (set background color: red/white) # @parm widget combobox - ComboBox widget or {} # @parm Widget widget - EntryBox widget # @parm String content - EntryBox content # @return Bool - Always 1 proc dir_validate {combobox widget content} { if {![file exists $content] || ![file isdirectory $content]} { if {$combobox != {}} { $combobox configure -style FSD_RedBg.TCombobox } else { $widget configure -style FSD_RedBg.TEntry } } else { if {$combobox != {}} { $combobox configure -style TCombobox } else { $widget configure -style TEntry } # Fill directory location combobox if {$combobox != {}} { set folder $content set values {} while {1} { lappend values $folder if {$folder == [file separator]} {break} if {$::MICROSOFT_WINDOWS} { if {[regexp {^\w+:[\\\/]?$} $folder]} {break} } set folder [file normalize [file join $folder {..}]] } foreach folder [::KIFSD::FSD::dir_cmd $content 1] { if {$folder == {..}} {continue} lappend values [file join $content $folder] } if {$::MICROSOFT_WINDOWS} { ;# Include drive letters on Microsoft Windows foreach drive_letter {A B C D E F G H I J K L M N O P Q R S T U V W X Y Z} { if {[file exists "${drive_letter}:/"]} { lappend values "${drive_letter}:/" } } } $combobox configure -values $values } } return 1 } ## Reload content of directories ListBox and files ListBox # @param List args - all arguments are ignored # @return void public method reload {args} { update idletasks change_directory $current_directory } ## Modify command for directory ComboBox # @return void public method dir_cb_modify {} { change_directory [$dir_combobox get] } ## Go to parrent folder # @return void public method up {} { change_directory [file normalize [file join $current_directory {..}]] } ## Go back in history # @return void public method back {} { # Determinate new folder set folder [lindex $back_history end] if {$folder == {}} {return} # Adjust backward and forward history set back_history [lreplace $back_history end end] lappend forward_history $current_directory # Make backup copy of backward and forward history set tmp_forw_hist $forward_history set tmp_back_hist $back_history # Change current directory change_directory $folder # Restore backward and forward history set forward_history $tmp_forw_hist set back_history $tmp_back_hist # Enable / Disable buttons "Back" and "Forward" if {![llength $back_history]} { $toolbar.back configure -state disabled $win.listbox_menu entryconfigure [mc "Back"] -state disabled } else { $toolbar.back configure -state normal $win.listbox_menu entryconfigure [mc "Back"] -state normal } $win.listbox_menu entryconfigure [mc "Forward"] -state normal $toolbar.forward configure -state normal } ## Go forward in history # @return void public method forward {} { # Determinate new folder set folder [lindex $forward_history end] if {$folder == {}} {return} # Adjust backward and forward history set forward_history [lreplace $forward_history end end] lappend back_history $current_directory # Make backup copy of backward and forward history set tmp_forw_hist $forward_history set tmp_back_hist $back_history # Change current directory change_directory $folder # Restore backward and forward history set forward_history $tmp_forw_hist set back_history $tmp_back_hist # Enable / Disable buttons "Back" and "Forward" if {![llength $forward_history]} { $toolbar.forward configure -state disabled $win.listbox_menu entryconfigure [mc "Forward"] -state disabled } else { $toolbar.forward configure -state normal $win.listbox_menu entryconfigure [mc "Forward"] -state normal } $toolbar.back configure -state normal $win.listbox_menu entryconfigure [mc "Back"] -state normal } ## Invoke dialog to create a new directory # @return void public method newdir {} { # Create dialog window set dialog [toplevel $win.new_dir -class {New directory} -bg ${::COMMON_BG_COLOR}] # Create dialog header and EntryBox pack [label $dialog.header -justify left -text [mc "Create new folder in:\n%s" $current_directory]] \ -side top -anchor w -padx 15 -pady 5 pack [ttk::entry $dialog.entry \ ] -side top -fill x -expand 1 -padx 5 -pady 5 # Bind button enter to confirmation action bind $dialog.entry "[list $this create_new_folder]; break" bind $dialog.entry "[list $this create_new_folder]; break" # Create bottom frame (Buttons: "Clear", "Ok" and "Cancel") set button_frame [frame $dialog.bottom] pack [ttk::button $button_frame.clear \ -text [mc "Clear"] \ -compound left \ -image ::ICONS::16::clear_left \ -command "$dialog.entry delete 0 end" \ ] -side left -expand 0 -padx 2 pack [ttk::button $button_frame.ok \ -text [mc "Ok"] \ -compound left \ -image ::ICONS::16::ok \ -command [list $this create_new_folder] \ ] -side left -expand 0 -padx 2 pack [ttk::button $button_frame.cancel \ -text [mc "Cancel"] \ -compound left \ -image ::ICONS::16::button_cancel \ -command " grab release $dialog destroy $dialog " \ ] -side left -expand 0 -padx 2 pack $button_frame -side bottom -anchor e -expand 0 -padx 5 -pady 5 # Configure dialog window wm iconphoto $dialog ::ICONS::16::folder_new wm title $dialog [mc "New folder"] wm resizable $dialog 1 0 wm minsize $dialog 340 120 wm geometry $dialog 340x120 wm protocol $dialog WM_DELETE_WINDOW " grab release $dialog destroy $dialog " wm transient $dialog $win grab $dialog raise $dialog focus -force $dialog.entry tkwait window $dialog } ## Confirm dialog "Create new folder" # @return void public method create_new_folder {} { set dialog ${win}.new_dir set folder [$dialog.entry get] set error 0 if {$folder == {}} { set error 1 } if {$error || [catch {file mkdir [file join $current_directory $folder]}]} { tk_messageBox \ -parent $dialog \ -icon warning \ -type ok \ -title [mc "Unable to create folder"] \ -message [mc "Unable to create the specified folder"] } else { grab release $dialog destroy $dialog reload } } ## Sort the given list of strings # This procedure is closely related to inner logic of this #+ class and it is difficult to properly explain its function # @parm List items - List to sort # @return void proc sort_items {items} { # Determinate sorting order if {${::KIFSD::FSD::config(reverse_sorting)}} { set order "-decreasing" } else { set order "-increasing" } if {${::KIFSD::FSD::config(sorting)} == {name}} { if {${::KIFSD::FSD::config(case_insensitive)}} { set method "-dictionary" } else { set method "-ascii" } return [lsort $method $order $items] } else { if {${::KIFSD::FSD::config(sorting)} == {size}} { # Sort by size set index 2 } else { # Sort by date set index 1 } set items [lsort -index $index $order $items] set result {} foreach file $items { lappend result [lindex $file 0] } return $result } } ## Get unsorted list of subdirectories in the given directory # @parm String dir - Directory # @return List - List of relative URLs proc get_dirs_simple {dir} { # Search for directories set result [list] catch { ;# For Microsoft Windows it has to be enclosed by catch set result [glob -nocomplain -tails -directory $dir -types d *] } # Include hidden directories if {${::KIFSD::FSD::config(show_hidden_files)}} { catch { ;# For Microsoft Windows it has to be enclosed by catch set result [concat $result [glob -nocomplain -tails -directory $dir -types {d hidden} *]] } # Filter "." and ".." set foo_idx [lsearch $result {..}] if {$foo_idx != -1} { set result [lreplace $result $foo_idx $foo_idx] set foo_idx [lsearch $result {.}] if {$foo_idx != -1} { set result [lreplace $result $foo_idx $foo_idx] } } } return $result } ## Get unsorted list of subdirectories in the given directory # @parm String dir - Directory # @return List - {{relative_URL mtime size_in_B} ... } proc get_dirs_extended {dir} { set result {} # Search for directories catch { ;# For Microsoft Windows it has to be enclosed by catch foreach file [glob -nocomplain -tails -directory $dir -types d *] { lappend result [list $file [file mtime [file join $dir $file]] 0] } } # Include hidden directories if {${::KIFSD::FSD::config(show_hidden_files)}} { catch { ;# For Microsoft Windows it has to be enclosed by catch foreach file [glob -nocomplain -tails -directory $dir -types {d hidden} *] { # Filter "." and ".." if {$file == {.} || $file == {..}} { continue } # Translate to full URL lappend result [list $file [file mtime [file join $dir $file]] 0] } } } return $result } ## Get unsorted list of files in the given directory matching the given GLOB # @parm String dir - Directory # @parm GLOB mask - Glob expression # @return List - List of relative URLs proc get_files_simple {dir mask} { set result [list] catch { ;# For Microsoft Windows it has to be enclosed by catch set result [glob -nocomplain -tails -directory $dir -types f $mask] } if {${::KIFSD::FSD::config(show_hidden_files)}} { catch { ;# For Microsoft Windows it has to be enclosed by catch set result [concat $result \ [glob -nocomplain -tails -directory $dir -types {f hidden} $mask]] } } return $result } ## Get unsorted list of files in the given directory matching the given GLOB # @parm String dir - Directory # @parm GLOB mask - Glob expression # @return List - {{relative_URL mtime size_in_B} ... } proc get_files_extended {dir mask} { set result {} # Search for files matching the given GLOB catch { ;# For Microsoft Windows it has to be enclosed by catch foreach file [glob -nocomplain -tails -directory $dir -types f $mask] { if {[catch { lappend result [list \ $file \ [file mtime [file join $dir $file]] \ [file size [file join $dir $file]] \ ] }]} then { lappend result [list $file 0 0] } } } # Include hidden files if {${::KIFSD::FSD::config(show_hidden_files)}} { catch { ;# For Microsoft Windows it has to be enclosed by catch foreach file [glob -nocomplain -tails -directory $dir -types {f hidden} $mask] { if {[catch { lappend result [list \ $file \ [file mtime [file join $dir $file]] \ [file size [file join $dir $file]] \ ] }]} then { lappend result [list $file 0 0] } } } } return $result } ## Get list of items to load to directories ListBox # @parm String dir - Source directory # @parm Bool no_detail=0 - No details # @return List - {text text ...} proc dir_cmd {dir {no_detail 0}} { # Normalize directory and determinate its parent set dir [file normalize $dir] if {$dir != {/}} { set parent {..} } else { set parent {} } if {${::KIFSD::FSD::config(sorting)} == {name}} { set result [sort_items [get_dirs_simple $dir]] } else { set result [sort_items [get_dirs_extended $dir]] } if {!$no_detail && ${::KIFSD::FSD::config(detailed_view)}} { return [concat $parent [add_details $result $dir]] } else { return [concat $parent $result] } } ## Get list of items to load to files ListBox # @parm String dir - Source directory # @parm GLOB mask - GLOB expression which must match each returned file # @parm Bool no_detail=0 - Detailed view # @return List - {text text ...} proc file_cmd {dir mask {no_detail 0}} { if {${::KIFSD::FSD::config(sorting)} == {name}} { set result [sort_items [get_files_simple $dir $mask]] } else { set result [sort_items [get_files_extended $dir $mask]] } if {!$no_detail && ${::KIFSD::FSD::config(detailed_view)}} { return [add_details $result $dir] } else { return $result } } ## Adjust list of files/directories returned by proc. file_cmd to #+ format required to display in detailed view mode # @parm List filelist - List returned by procedure file_cmd # @parm String dir - Directory # @return List - {{text text text ... } ... } proc add_details {filelist dir} { set result {} foreach filename $filelist { set line $filename set fullfilename [file join $dir $filename] if {[string length $line] > 31} { set line [string range $line 0 27] append line {...} } if {[catch { append line [string repeat { } [expr {35 - [string length $line]}]] set size [file size $fullfilename] if {$size < 1024} { append size { B} } elseif {$size < 1048576} { set size [expr {($size * 10) / 1024}] if {$size > 1023} { set size [expr {$size / 10}] } else { set size [string range $size 0 {end-1}].[string range $size end end] } append size { kB} } elseif {$size < 1073741824} { set size [expr {($size * 10) / 1048576}] if {$size > 1023} { set size [expr {$size / 10}] } else { set size [string range $size 0 {end-1}].[string range $size end end] } append size { MB} } elseif {$size < 1099511627776} { set size [expr {($size * 10) / 1073741824}] if {$size > 1023} { set size [expr {$size / 10}] } else { set size [string range $size 0 {end-1}].[string range $size end end] } append size { GB} } else { set size {>1TB} } }]} then { append line { - ---- -------- -----} } else { if {!$::MICROSOFT_WINDOWS} { append line [string repeat { } [expr {8 - [string length $size]}]] $size " " \ [string range [lindex [file attributes $fullfilename] 5] {end-3} end] " " \ [clock format [file mtime $fullfilename] -format {%D %R}] } else { append line [string repeat { } [expr {8 - [string length $size]}]] $size " " \ [clock format [file mtime $fullfilename] -format {%D %R}] } } lappend result [list $line $filename] } return $result } ## Get list of items to load to files ListBox (mode "Separate folders" OFF) # @parm String dir - Source directory # @parm GLOB mask - GLOB expression which must match each returned file # @return List - {text text ...} proc dir_file_cmd {dir mask} { set dir [file normalize $dir] set result {} # Determinate list of directories if {${::KIFSD::FSD::config(sorting)} == {name}} { set result [concat [get_dirs_simple $dir] [get_files_simple $dir $mask]] } else { set result [concat [get_dirs_extended $dir] [get_files_extended $dir $mask]] } if {$dir != {/}} { set parent [list [list {..} {u}]] } else { set parent {} } set tmp_result {} # Determinate list of files if {${::KIFSD::FSD::config(detailed_view)}} { foreach item [sort_items $result] { if {![file exists [file join $dir $item]]} {continue} if {[file isdirectory [file join $dir $item]]} { lappend tmp_result [concat [add_details [list $item] $dir] d] } else { lappend tmp_result [concat [add_details [list $item] $dir] f] } } } else { foreach item [sort_items $result] { if {![file exists [file join $dir $item]]} {continue} if {[file isdirectory [file join $dir $item]]} { lappend tmp_result [list $item d] } else { lappend tmp_result [list $item f] } } } return [concat $parent $tmp_result] } ## Get configuration list for procedure load_config_array # @return List - (List which specifies bookmarks, settings and such things) proc get_config_array {} { return [regsub -all "\n" [array get ::KIFSD::FSD::config] { }] } ## Load configuration list returned by procedure get_config_array # @parm List config - (List which specifies bookmarks, settings and such things) # @return void proc load_config_array {config} { if {$config == {}} { return } if {[catch { array set ::KIFSD::FSD::config $config }]} then { puts stderr "KI File Selection Dialog: Unable to load the given configuration string -- using default" return 0 } else { return 1 } } ## Get descriptor of dialog window # @return Widget - Dialog window public method get_window_name {} { return $win } ## Determinate path to the "Desktop" folder. # @return String - The path, e.g. "~/Arbeitsfläche" in case of German Ubuntu. proc get_desktop_dir {} { if {![catch { set f [open "~/.config/user-dirs.dirs" "r"] }]} then { while {![eof $f]} { set l [gets $f] if {[string first "XDG_DESKTOP_DIR=" $l] != -1} { if {[regexp {"[^\"]+"} $l d]} { set d [string range $d 1 end-1] regsub {\$HOME} $d {~} d return $d } } } close $f } return "~/Desktop" } } ## Text variables for dialog "Edit entry in Quick access bar" set KIFSD::FSD::qa_panel_dialog_url_entry {} ;# Entry URL set KIFSD::FSD::qa_panel_dialog_name_entry {} ;# Entry name set KIFSD::FSD::qa_panel_dialog_icon {} ;# Icon number [0;3] ## Dialog configuration array (these values are daults) # Invalid configuration list may cause program error ! array set KIFSD::FSD::config { win_geometry {720x380} detailed_view 0 separate_folders 1 quick_access_panel 1 sorting name reverse_sorting 0 folders_first 1 case_insensitive 1 show_hidden_files 0 right_PW_size 200 main_PW_size 180 bookmarks {} } if {$::MICROSOFT_WINDOWS} { set KIFSD::FSD::config(quick_access_bar_data) [subst { {0 {System Drive ${::env(SystemDrive)}} {${::env(SystemDrive)}}} {1 {Documents and Settings} {${::env(USERPROFILE)}}} }] } else { set KIFSD::FSD::config(quick_access_bar_data) [subst { {0 {/} {/}} {0 {Removable media} {/media}} {1 {Home} {~}} {2 {Desktop} {[KIFSD::FSD::get_desktop_dir]}} }] } # >>> File inclusion guard } # <<< File inclusion guard mcu8051ide-1.4.7/lib/dialogues/tips.tcl0000644000175000017500000003065712067167647020317 0ustar milleniummillenium#!/usr/bin/tclsh # Part of MCU 8051 IDE ( http://mcu8051ide.sf.net ) ############################################################################ # Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012 by Martin Ošmera # # martin.osmera@gmail.com # # # # This program is free software; you can redistribute it and#or modify # # it under the terms of the GNU General Public License as published by # # the Free Software Foundation; either version 2 of the License, or # # (at your option) any later version. # # # # This program is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU General Public License for more details. # # # # You should have received a copy of the GNU General Public License # # along with this program; if not, write to the # # Free Software Foundation, Inc., # # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # ############################################################################ # >>> File inclusion guard if { ! [ info exists _TIPS_TCL ] } { set _TIPS_TCL _ # <<< File inclusion guard # -------------------------------------------------------------------------- # DESCRIPTION # Provides facility to show tips on start-up # * Tips are readed from file deindef in NS variable "tips_file" # * Format of definition file is XML and it supports mutiple languages # * Usage is simple: execute procedure "::Tips::show_tip_of_the_day_win" # * It requires NS ConfigDialogues (see ${::GLOBAL_CONFIG(tips)}) # -------------------------------------------------------------------------- namespace eval Tips { variable tip_of_the_day_win ;# ID of window "Tip of the day" variable tip_of_the_day_text ;# ID of text widget in "Tip of the day" variable tip_of_the_day_show_again ;# Bool: Show "Tip of the day" variable tips_data ;# List containing tips data variable number_of_tips ;# Number of tips available variable current_tip ;# Number of the currently displayed tip variable expected ;# Expeceted element variable take_data ;# Bool: Append data section to $tips_data # File containing tips data variable tips_file "${::INSTALLATION_DIR}/data/tips.xml" ## Invoke dialog "Tip on start-up" # @return void proc show_tip_of_the_day_win {} { variable tip_of_the_day_win ;# ID of window "Tip of the day" variable tip_of_the_day_text ;# ID of text widget in "Tip of the day" variable tip_of_the_day_show_again ;# Bool: Show "Tip of the day" variable number_of_tips ;# Number of tips available variable tip_of_the_day_show_again ;# Bool: Show "Tip of the day" # Set value of checkbox "Show again" set tip_of_the_day_show_again ${::GLOBAL_CONFIG(tips)} # Load tips definition file load_tips_file # Create toplevel window set win [toplevel .tip_of_the_day -class {Tip of the day} -bg ${::COMMON_BG_COLOR}] set tip_of_the_day_win $win # Create window header pack [label $win.header \ -text [mc "Did you know ... "] \ -font [font create \ -family {times} \ -size [expr {int(-25 * $::font_size_factor)}] \ -weight bold \ ] \ -compound right \ -image ::ICONS::32::help \ ] -pady 5 # Create middle frame (text windget and scrollbar) set middle_frame [frame $win.middle_frame] set text [text $middle_frame.text \ -width 0 -height 0 -bg white \ -wrap word \ -yscrollcommand "$middle_frame.scrollbar set" \ -font [font create \ -family {helvetica} \ -size [expr {int(-14 * $::font_size_factor)}] \ -weight normal \ ] \ ] pack $text -side left -fill both -expand 1 pack [ttk::scrollbar $middle_frame.scrollbar \ -orient vertical \ -command [list $text yview] \ ] -side left -fill y -after $text set tip_of_the_day_text $text ## Create bottom frame set bottom_frame [frame $win.bottom_frame] # - CheckButton "Show tips on start-up" pack [checkbutton $bottom_frame.chbutton \ -variable ::Tips::tip_of_the_day_show_again \ -command {::Tips::tip_otd_show_again} \ -text [mc "Show tips on start-up"] \ ] -side left -anchor e # - Button "Close" pack [ttk::button $bottom_frame.close_but \ -compound left \ -text [mc "Close"] \ -image ::ICONS::16::button_cancel \ -command {::Tips::tip_otd_CLOSE} \ -width 8 \ ] -side right -anchor w -padx 2 # - Button "Next" pack [ttk::button $bottom_frame.next_but \ -compound left \ -text [mc "Next"] \ -image ::ICONS::16::right \ -command {::Tips::tip_otd_NEXT} \ -width 8 \ ] -side right -anchor w -padx 2 # - Button "Previous" pack [ttk::button $bottom_frame.prev_but \ -compound left \ -text [mc "Previous"] \ -image ::ICONS::16::left \ -command {::Tips::tip_otd_PREV} \ -width 8 \ ] -side right -anchor w -padx 2 # Pack window frames pack $middle_frame -side top -fill both -expand 1 -padx 10 -pady 5 pack $bottom_frame -side bottom -fill x -after $middle_frame -padx 10 -pady 5 # Configure text tags $text tag configure tag_bold -font [font create \ -family {helvetica} \ -size [expr {int(-14 * $::font_size_factor)}] \ -weight bold \ ] # Configure text tags $text tag configure tag_code -font [font create \ -family $::DEFAULT_FIXED_FONT \ -size [expr {int(-14 * $::font_size_factor)}] \ -weight normal \ ] -foreground {#DD8800} # Create tag for external hyperlinks create_link_tag_in_text_widget $text # Determinate random number of tip to show expr {srand([clock seconds])} display_tip [expr {int(rand() * $number_of_tips)}] # Configure dialog window wm iconphoto $win ::ICONS::16::info wm title $win [mc "Tip of the day - MCU 8051 IDE"] wm minsize $win 520 250 wm protocol $win WM_DELETE_WINDOW { ::Tips::tip_otd_CLOSE } wm transient $win . raise $win catch { grab $win } } ## Load definition of tips # @return void proc load_tips_file {} { variable tips_data ;# List containing tips data variable number_of_tips ;# Number of tips available variable tips_file ;# File containing tips data variable expected ;# Expeceted element variable take_data ;# Bool: Append data section to $tips_data # Initialize NS variables set take_data 0 set number_of_tips 0 set expected {tips} set tips_data {} # Open file if {[catch { set file [open $tips_file {r}] }]} then { tk_messageBox \ -parent . \ -type ok \ -icon warning \ -title "tips.xml" \ -message [mc "Unable to open file containing tips,\nplease check your installation"] return } # Create XML parser set parser [::xml::parser -final 1 -ignorewhitespace 1 \ -elementstartcommand ::Tips::xml_data_parser_element \ -characterdatacommand ::Tips::xml_data_parser_data \ ] # Start XML parser if {[catch { $parser parse [read $file] } result]} then { set number_of_tips 0 set tips_data {} tk_messageBox \ -parent . \ -type ok \ -icon warning \ -title [mc "Unable to parse tips.xml"] \ -message [mc "File tips.xml is corrupted,\nplease check your installation"] puts stderr $result return } # Close file and free parser close $file $parser free } ## Universal parser handler - handles XML tags and data # @parm String arg1 - content of the element # @return void proc xml_data_parser_data {arg1} { variable tips_data ;# List containing tips data variable number_of_tips ;# Number of tips available variable current_tip ;# Number of the currently displayed tip variable expected ;# Expeceted element variable take_data ;# Bool: Append data section to $tips_data if {!$take_data} { return } set take_data 0 incr number_of_tips regsub -all {^\s+} $arg1 {} arg1 regsub -all {\s+$} $arg1 {} arg1 lappend tips_data [regsub -all -line {^\t+} $arg1 {}] } ## XML parser handler - handles XML tags # @parm String arg1 - name of the element # @parm List attrs - list of attributes '{attr0 val0 attr1 val1 ...}' # @return void proc xml_data_parser_element {arg1 attrs} { variable tips_data ;# List containing tips data variable number_of_tips ;# Number of tips available variable current_tip ;# Number of the currently displayed tip variable expected ;# Expeceted element variable take_data ;# Bool: Append data section to $tips_data if {$arg1 != $expected} { error "Bad element `$arg1'" } if {$arg1 == {tips}} { set expected {tip} } # Iterate over element attributes for {set i 0} {$i < [llength $attrs]} {incr i} { if {[lindex $attrs $i] != {lang}} { incr i continue } incr i # Take data only if some translation has been loaded and it conforms with the text if {[string tolower [lindex $attrs $i]] == [string tolower ${::GLOBAL_CONFIG(language)}]} { set take_data 1 } else { set take_data 0 } } } ## Close dialog # @return void proc tip_otd_CLOSE {} { variable tips_data ;# List containing tips data variable number_of_tips ;# Number of tips available variable current_tip ;# Number of the currently displayed tip variable tip_of_the_day_win ;# ID of window "Tip of the day" # Remove dialog grab release $tip_of_the_day_win destroy $tip_of_the_day_win # Free dialog resources set tips_data {} set number_of_tips {} set current_tip {} } ## Display tip with the given number in the window # @parm Int tip_number - number of the tip to show (can overlap allowed range) # @return void proc display_tip {tip_number} { variable tips_data ;# List containing tips data variable number_of_tips ;# Number of tips available variable current_tip ;# Number of the currently displayed tip variable tip_of_the_day_text ;# ID of text widget in "Tip of the day" set current_tip $tip_number # Clear text widget $tip_of_the_day_text configure -state normal $tip_of_the_day_text delete 1.0 end # Validate tip number if {!$number_of_tips} { $tip_of_the_day_text configure -state disabled return } if {$tip_number >= $number_of_tips} { set current_tip $number_of_tips incr current_tip -1 } # Create map of bold and code font tags set bold_tag_map [list] set code_tag_map [list] set content [lindex $tips_data $current_tip] foreach map {bold_tag_map code_tag_map} \ tag {b c} \ { while {1} { set tag_pair {} set idx [string first "<$tag>" $content] if {$idx == -1} {break} regsub "<$tag>" $content {} content lappend tag_pair $idx set idx [string first "" $content] if {$idx == -1} {break} regsub "" $content {} content lappend tag_pair $idx lappend $map $tag_pair } } # Fill text widget set start [$tip_of_the_day_text index insert] $tip_of_the_day_text insert end $content foreach pair $bold_tag_map { $tip_of_the_day_text tag add tag_bold $start+[lindex $pair 0]c $start+[lindex $pair 1]c } foreach pair $code_tag_map { $tip_of_the_day_text tag add tag_code $start+[lindex $pair 0]c $start+[lindex $pair 1]c } $tip_of_the_day_text configure -state disabled # Detect external hyperlinks and make the functional convert_all_https_to_links $tip_of_the_day_text } ## Show next tip # @return void proc tip_otd_NEXT {} { variable number_of_tips ;# Number of tips available variable current_tip ;# Number of the currently displayed tip incr current_tip if {$current_tip >= $number_of_tips} { set current_tip 0 } display_tip $current_tip } ## Show previous tip # @return void proc tip_otd_PREV {} { variable number_of_tips ;# Number of tips available variable current_tip ;# Number of the currently displayed tip incr current_tip -1 if {$current_tip < 0} { set current_tip [expr {$number_of_tips - 1}] } display_tip $current_tip } ## Adjust base configuration file to variable "tip_of_the_day_show_again" # @return void proc tip_otd_show_again {} { variable tip_of_the_day_show_again ;# Bool: Show "Tip of the day" ::configDialogues::global::set_variable tips $tip_of_the_day_show_again } } # >>> File inclusion guard } # <<< File inclusion guard mcu8051ide-1.4.7/lib/project.tcl0000644000175000017500000007472512067167647017036 0ustar milleniummillenium#!/usr/bin/tclsh # Part of MCU 8051 IDE ( http://mcu8051ide.sf.net ) ############################################################################ # Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012 by Martin Ošmera # # martin.osmera@gmail.com # # # # This program is free software; you can redistribute it and#or modify # # it under the terms of the GNU General Public License as published by # # the Free Software Foundation; either version 2 of the License, or # # (at your option) any later version. # # # # This program is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU General Public License for more details. # # # # You should have received a copy of the GNU General Public License # # along with this program; if not, write to the # # Free Software Foundation, Inc., # # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # ############################################################################ # >>> File inclusion guard if { ! [ info exists _PROJECT_TCL ] } { set _PROJECT_TCL _ # <<< File inclusion guard # -------------------------------------------------------------------------- # DESCRIPTION # Implements project files management # -------------------------------------------------------------------------- namespace eval Project { variable xml_data_tk_mcuide_project {} ;# Attributes of variable xml_data_authors {} ;# Content of variable xml_data_copyright {} ;# Content of variable xml_data_license {} ;# Content of variable xml_data_processor {} ;# Attributes of variable xml_data_options {} ;# Attributes of variable xml_data_graph {} ;# Attributes of variable xml_data_description {} ;# Content of variable xml_data_todo {} ;# Content of variable xml_data_calculator {} ;# Attributes of variable xml_data_other_options {} ;# Content of variable xml_data_compiler_options {} ;# Content of variable xml_data_files {} ;# Contents of variable xml_data_file_notes {} ;# Contents of variable xml_data_files_count {} ;# Number of files variable xml_data_file {} ;# Auxiliary variable for xml_data_files variable xml_attlist ;# Auxiliary variable - List of current tag attributes variable xml_expect {} ;# XML tag expected to be the next variable xml_curTag {} ;# Currenly parsed XML tag variable xml_start {} ;# Bool: True at start of parsing variable expect_data_part 1 ;# Bool: True if on the next comes data variable xml_warning 0 ;# Bool: True if an error occurred during parsing process ## Create string which can be saved as a project definition file (format: XML) # @parm List inputData - requested format: { # {version date creator_ver} # tag: tk_mcuide_project # {authors copyright license} # tag: authors copyright license # {type clock xdata xcode} # tag: processor # {watches_file scheme main_file auto_sw_enabled} # tag: options # {grid_mode magnification drawing_on # mark_flags_true_state mark_flags_latched # mark_flags_output active_page} # tag: graph # {description todo} # tag: descriptin todo # {radix angle_unit # tag: calculator # display0 display1 display2 # memory0 memory1 memory2 # frequency time mode} # {other_options} # tag: other_options # {compiler_options} # {files_count {current_file # tag: files # current_file2 pwin_sash pwin_orient} # { # tag: file actual_line md5_hash path bookmarks breakpoints # name active o_bookmark p_bookmark # file_index read_only actual_line md5_hash # path bookmarks breakpoints eol # enc highlight notes # } # ... # } # } # @return String - outpud data (formatted as XML) proc create_project_file_as_string {inputData} { # Initialize variables related to content of the file if {$inputData != {}} { # Definition of file structure (except of ) set dataPartStructure { {version date creator_ver} {authors copyright license} {mcu_type clock xdata xcode} {watches_file scheme main_file auto_sw_enabled} {graph_grid_mode graph_magnification graph_drawing_on graph_mark_flags_s graph_mark_flags_l graph_mark_flags_o active_page} {description todo} {calc_radix angle_unit display0 display1 display2 memory0 memory1 memory2 freq time mode} {other_options} {compiler_options} } # Parse part of input list set i 0 foreach record $dataPartStructure { set data [lindex $inputData $i] incr i foreach value $data var $record { set $var $value } } # Parse remain of input list set files [lindex $inputData 9] set files_count [lindex $files 0] set current_file [lindex $files {1 0}] set current_file2 [lindex $files {1 1}] set pwin_sash [lindex $files {1 2}] set pwin_orient [lindex $files {1 3}] set selected_view [lindex $files {1 4}] set files [lreplace $files 0 1] # Set all variables to defaults } else { foreach var { version date creator_ver authors copyright license other_options files_count mcu_type xdata watches_file files description todo calc_radix angle_unit display0 display1 display2 memory0 memory1 memory2 clock freq time mode graph_grid_mode graph_magnification graph_drawing_on auto_sw_enabled current_file2 graph_mark_flags_o active_page xcode scheme graph_mark_flags graph_mark_flags_l pwin_sash main_file compiler_options graph_mark_flags_s } \ { set $var {} } } # Discard input data unset inputData # Initialize resulting string set result {} ## Create XML string append result "\n" if {[file exists "${::ROOT_DIRNAME}/data/project.dtd"]} { if {[catch { set dtd [open "${::ROOT_DIRNAME}/data/project.dtd" r] }]} then { puts stderr "Unable to open project DTD, please check your installation." } else { append result "\n" } } append result "\n" append result "\t\n" append result "\t\t\n" append result "\t\t\n" append result "\t\t\n" append result "\t\t\n" append result "\t\t\n" append result "\t\t\n" append result "\t\t\n" append result "\t\t\n" append result "\t\t\n" append result "\t\n" append result "\t\n" append result "\t\n" append result "\t\n\n" foreach file $files { foreach value $file \ var { name active o_bookmark p_bookmark file_index read_only actual_line md5_hash path bookmarks breakpoints eol enc highlight notes } \ { set $var $value } append result "\t\t\n" append result "\t\t\t\n" append result "\t\t\t\n" append result "\t\t\t\n" append result "\t\t\t\n\t\t\t\t[adjust_to_xml $bookmarks]\n" append result "\t\t\t\n" append result "\t\t\t\n\t\t\t\t[adjust_to_xml $breakpoints]\n" append result "\t\t\t\n" append result "\t\t\t\n" append result "\t\t\t\n" append result "\t\t\t\n" append result "\t\t\n\n" } append result "\t\n" append result "\n" # Return resulting XML String return $result } ## Open project (open project file, parse it and Initialize new instance of MainTab class) # @parm String filename # @return Bool - result proc open_project_file {filename} { set filename [file normalize $filename] # Check for file existance if {![file exists $filename]} {return 0} # Retreive project data list from the file if {[catch { set projectFile [open $filename r] set dataList [create_list_from_project_string [read $projectFile]] close $projectFile }]} then { return 0 } # Check for project data list validity if {$dataList == {}} {return 0} # Local variables regexp {^.*[\\\/]} $filename projectPath ;# Path to project file regsub {[\\\/]$} $projectPath {} projectPath regexp {[^\\\/]*$} $filename projectFileName ;# Name of project definition file regexp {[^\\\/]+$} $filename project_new_name ;# Name of the project regsub {\.[^\.]+$} $project_new_name {} project_new_name set projectDescriptor [regsub -all -- {\s} $project_new_name {-}] regsub -all {[\\\/\.\,`\!@#\$%\^&:\;\|\*\"\(\)\[\]\{\}]} \ $projectDescriptor {_} projectDescriptor # Take care of opening multiple instances of the same project if {[lsearch ${::X::openedProjects} $projectDescriptor] != -1} { append project_new_name "(0)" append projectDescriptor "_0" while {1} { if {[lsearch ${::X::openedProjects} $projectDescriptor] == -1} {break} regexp {\d+$} $projectDescriptor index regsub {_\d+$} $projectDescriptor {} projectDescriptor regexp {\d+\)$} $project_new_name index set index [string trimright $index {\)}] regsub {\(\d+\)$} $project_new_name {} project_new_name incr index append project_new_name "($index)" append projectDescriptor "_$index" } } # Show project notebook if {${::X::project_menu_locked}} { pack .mainFrame.mainNB -expand 1 -fill both } # Adjust project related variables in NS ::X:: lappend ::X::openedProjects $projectDescriptor lappend ::X::simulator_enabled 0 # Initialize project object MainTab ::$projectDescriptor $project_new_name $projectPath $projectFileName $dataList # Unlock all menu items if {${::X::project_menu_locked}} { ::X::Unlock_project_menu } ::X::disaena_menu_toolbar_for_current_project # Done ... return 1 } ## Parse given project definition (XML) and return resulting data-list # @parm String inputData - content of the project file # @return List - result or {} proc create_list_from_project_string {inputData} { variable xml_data_tk_mcuide_project ;# Attributes of variable xml_data_authors ;# Content of variable xml_data_copyright ;# Content of variable xml_data_license ;# Content of variable xml_data_processor ;# Attributes of variable xml_data_options ;# Attributes of variable xml_data_graph ;# Attributes of variable xml_data_description ;# Content of variable xml_data_todo ;# Content of variable xml_data_calculator ;# Attributes of variable xml_data_other_options ;# Content of variable xml_data_compiler_options ;# Content of variable xml_data_files ;# Contents of variable xml_data_files_count ;# Number of files variable xml_expect ;# XML tag expected to be the next variable xml_curTag ;# Currenly parsed XML tag variable xml_data_file ;# Auxiliary variable for xml_data_files variable xml_warning ;# Bool: True if an error occurred during parsing process variable xml_start ;# Bool: True at start of parsing # Setup XML parser set parser [::xml::parser -final 1 -ignorewhitespace 1 \ -elementstartcommand Project::project_xml_parser_handler_element \ -elementendcommand Project::project_xml_parser_handler_element_end \ -characterdatacommand Project::project_xml_parser_handler_data \ ] set xml_warning 0 ;# No error so far set xml_start 1 ;# Parsing just begun # Start XML parser if {[catch { $parser parse $inputData } result]} then { puts stderr "XML parse error: $result" report_project_loading_error return {} } # Unload XML parser $parser free if {$xml_warning} { free_resources return {} } # Composite resulting string set result {} lappend result [unescape_tags $xml_data_tk_mcuide_project] lappend result [list \ [unescape_tags $xml_data_authors ] \ [unescape_tags $xml_data_copyright ] \ [unescape_tags $xml_data_license ] \ ] lappend result $xml_data_processor lappend result [unescape_tags $xml_data_options] lappend result $xml_data_graph lappend result [list \ [unescape_tags $xml_data_description ] \ [unescape_tags $xml_data_todo ] \ ] lappend result [unescape_tags $xml_data_calculator ] lappend result [unescape_tags $xml_data_other_options ] lappend result [unescape_curlies [unescape_tags $xml_data_compiler_options]] lappend__xml_data_files__xml_data_file ;# Note that this is an important function lappend result [concat \ $xml_data_files_count \ [unescape_tags $xml_data_files] \ ] # Free used memory free_resources # Return resulting List return $result } ## Free memory used during parsing # @return void proc free_resources {} { variable xml_data_tk_mcuide_project ;# Attributes of variable xml_data_authors ;# Content of variable xml_data_copyright ;# Content of variable xml_data_license ;# Content of variable xml_data_processor ;# Attributes of variable xml_data_options ;# Attributes of variable xml_data_graph ;# Attributes of variable xml_data_description ;# Content of variable xml_data_todo ;# Content of variable xml_data_calculator ;# Attributes of variable xml_data_other_options ;# Content of variable xml_data_compiler_options ;# Content of variable xml_data_files ;# Contents of variable xml_data_file_notes ;# Contents of variable xml_data_files_count ;# Number of files variable xml_expect ;# XML tag expected to be the next variable xml_curTag ;# Currenly parsed XML tag variable xml_data_file ;# Auxiliary variable for xml_data_files variable xml_start ;# Bool: True at start of parsing # Set all listed variables to empty string foreach var { xml_data_tk_mcuide_project xml_data_authors xml_data_copyright xml_data_license xml_curTag xml_data_processor xml_data_options xml_data_description xml_data_todo xml_data_files xml_data_calculator xml_data_other_options xml_data_files_count xml_data_current_file xml_data_file xml_expect xml_data_graph xml_data_compiler_options xml_data_file_notes } \ { set $var {} } } ## Invoke dialog to report error occcured while parsing data # @return void proc report_project_loading_error {} { variable xml_warning ;# Bool: True if an error occurred during parsing process # Ensure than there is only one error message dialog if {$xml_warning} {return} # Invoke dialog tk_messageBox \ -icon error \ -type ok \ -parent . \ -title [mc "Project loading error"] \ -message [mc "ERROR:\nThe project file cannot be loaded correctly due to a xml parsing error. The file is either corrupted or it is not a project file acceptable by this environment."] set xml_warning 1 } ## Escape curly brackets and convert '<' and '>' to HTML entities # @parm String data - input # @return String - output proc adjust_to_xml {data} { set data [unescape_curlies $data] return [escape_tags $data] } ## Unescape curly brackets # @parm String data - input # @return String - output proc unescape_curlies {data} { regsub -all {\\\{} $data "{" data regsub -all {\\\}} $data "}" data return $data } ## Escape curly brackets # @parm String data - input # @return String - output proc escape_curlies {data} { regsub -all {\{} $data "\\{" data regsub -all {\}} $data "\\}" data return $data } ## Convert '<' -> '<' and '>' -> '>' # @parm String data - input # @return String - output proc unescape_tags {data} { regsub -all {&} $data "\\&" data regsub -all {<} $data "<" data regsub -all {>} $data ">" data regsub -all {"} $data "\"" data regsub -all {\\\"} $data "\"" data regsub -all {\\\\} $data "\\" data return $data } ## Convert '<' -> '<' and '>' -> '>' # @parm String data - input # @return String - output proc escape_tags {data} { regsub -all {&} $data "\\&" data regsub -all {<} $data "\\<" data regsub -all {>} $data "\\>" data regsub -all {\"} $data "\\"" data regsub -all {\\\"} $data "\"" data return $data } ## Parse attributes of current tab # @parm String nextTag - name of XML tag which is expected to be the next # @parm List Attrlist - list of attributes to process # @return List - result proc project_xml_attr_parser {nextTag Attrlist} { variable xml_attlist ;# Auxiliary variable - List of attributes of current tag # Set expected tag project_xml_expect $nextTag # Create array of attributes for {set i 0} {$i <= [llength $xml_attlist]} {incr i} { set name [lindex $xml_attlist $i] incr i set value [lindex $xml_attlist $i] set attr($name) [escape_curlies $value] } # Parse attributes and composite result set result {} foreach attrName $Attrlist { if {![info exists attr($attrName)]} {set attr($attrName) {}} lappend result $attr($attrName) } # Return result return $result } ## Set name of XML tag which must follow the cuurent one # @parm String nextTag - XML tag # @return Bool - result proc project_xml_expect {nextTag} { variable xml_expect ;# XML tag expected to be the next variable xml_curTag ;# Currenly parsed XML tag # Check if the current tag was expected if {$xml_expect != $xml_curTag && [lsearch $xml_expect $xml_curTag] == -1} { puts stderr "Expected XML tag was: \"$xml_expect\", but \"$xml_curTag\" was given" set xml_expect $nextTag report_project_loading_error return 0 } # Set expected tag set xml_expect $nextTag return 1 } ## XML parser handler - Handles XML tag end # @return void proc project_xml_parser_handler_element_end args { variable expect_data_part ;# Bool: True if on the next comes data set expect_data_part 0 } ## XML parser handler - handles XML data # @parm String arg1 - content of the element # @return void proc project_xml_parser_handler_data {data} { variable expect_data_part ;# Bool: True if on the next comes data variable xml_expect ;# XML tag expected to be the next variable xml_curTag ;# Currenly parsed XML tag variable xml_start ;# Bool: True at start of parsing variable xml_attlist ;# Auxiliary variable - List of current tag attributes variable xml_warning ;# Bool: True if an error occurred during parsing process variable xml_data_tk_mcuide_project ;# Attributes of variable xml_data_authors ;# Content of variable xml_data_copyright ;# Content of variable xml_data_license ;# Content of variable xml_data_processor ;# Attributes of variable xml_data_options ;# Attributes of variable xml_data_graph ;# Attributes of variable xml_data_description ;# Content of variable xml_data_todo ;# Content of variable xml_data_calculator ;# Attributes of variable xml_data_other_options ;# Content of variable xml_data_compiler_options ;# Content of variable xml_data_files ;# Contents of variable xml_data_files_count ;# Number of files variable xml_data_file ;# Contents of variable xml_data_file_notes ;# Contents of # Abort on error if {$xml_warning} {return} # Inicalize on parser start up if {$xml_start} { set xml_start 0 set xml_expect "xml_data_tk_mcuide_project" } # Check if data part is expected if {!$expect_data_part} { return } # Adjust given data if {$xml_curTag != {todo}} { regsub -all {^\s+} $data {} data } regsub -all {\s+$} $data {} data set data [escape_curlies $data] # Parse given data switch -- $xml_curTag { {authors} { append xml_data_authors $data "\n" } {copyright} { set xml_data_copyright $data } {license} { set xml_data_license $data } {description} { append xml_data_description $data "\n" } {todo} { append xml_data_todo $data "\n" } {other_options} { append xml_data_other_options $data "\n" } {compiler_options} { append xml_data_compiler_options $data "\n" } {bookmarks} { # Append an empty file path if the path was empty if {[llength $xml_data_file] == 9} { lappend xml_data_file {} } regsub -all {[ \t\n\r]+} $data { } data regsub {^ } $data { } data regsub { $} $data { } data lappend xml_data_file $data } {breakpoints} { regsub -all {[ \t\n\r]+} $data { } data regsub {^ } $data { } data regsub { $} $data { } data lappend xml_data_file $data } {path} { lappend xml_data_file $data } {notes} { append xml_data_file_notes $data "\n" } } } ## XML parser handler - handles XML tags # @parm String arg1 - name of the element # @parm List arg2 - list of attributes '{attr0 val0 attr1 val1 ...}' # @return void proc project_xml_parser_handler_element args { variable expect_data_part ;# Bool: True if on the next comes data variable xml_expect ;# XML tag expected to be the next variable xml_curTag ;# Currenly parsed XML tag variable xml_start ;# Bool: True at start of parsing variable xml_attlist ;# Auxiliary variable - List of current tag attributes variable xml_warning ;# Bool: True if an error occurred during parsing process variable xml_data_tk_mcuide_project ;# Attributes of variable xml_data_authors ;# Content of variable xml_data_copyright ;# Content of variable xml_data_license ;# Content of variable xml_data_processor ;# Attributes of variable xml_data_options ;# Attributes of variable xml_data_graph ;# Attributes of variable xml_data_description ;# Content of variable xml_data_todo ;# Content of variable xml_data_calculator ;# Attributes of variable xml_data_other_options ;# Content of variable xml_data_compiler_options ;# Content of variable xml_data_files ;# Contents of variable xml_data_files_count ;# Number of files variable xml_data_file ;# Contents of variable xml_data_file_notes ;# Contents of # Abort on error if {$xml_warning} {return} # Inicalize on parser start up if {$xml_start} { set xml_start 0 set xml_expect "xml_data_tk_mcuide_project" } # At next expect data part set expect_data_part 1 # Local variables set tag [lindex $args 0] ;# Element name set xml_attlist [lindex $args 1] ;# List of attributes # Parse attributes switch $tag { {tk_mcuide_project} { set xml_curTag "xml_data_tk_mcuide_project" set xml_data_tk_mcuide_project [project_xml_attr_parser \ "general" {version date creator_ver} \ ] } {general} { set xml_curTag "general" project_xml_expect "authors" } {authors} { set xml_curTag "authors" project_xml_expect "copyright" } {copyright} { set xml_curTag "copyright" project_xml_expect "licence license" } {license} { set xml_curTag "license" project_xml_expect "processor" } {licence} { set xml_curTag "license" project_xml_expect "processor" } {processor} { set xml_curTag "processor" set xml_data_processor [project_xml_attr_parser \ "options" {type clock xdata xcode} \ ] } {options} { set xml_curTag "options" set xml_data_options [project_xml_attr_parser \ "graph description" { watches_file scheme main_file auto_sw_enabled } \ ] } {graph} { set xml_curTag "graph" set xml_data_graph [project_xml_attr_parser \ "description" {grid magnification enabled marks_s marks_l marks_o active_page} \ ] } {description} { set xml_curTag "description" project_xml_expect "todo" } {todo} { set xml_curTag "todo" project_xml_expect "calculator" } {calculator} { set xml_curTag "calculator" set xml_data_calculator [project_xml_attr_parser \ "other_options" { radix angle_unit display0 display1 display2 memory0 memory1 memory2 freq time mode } \ ] } {other_options} { set xml_curTag "other_options" project_xml_expect "compiler_options files" } {compiler_options} { set xml_curTag "compiler_options" project_xml_expect "files" } {files} { set xml_curTag "files" set files_attrs [project_xml_attr_parser \ "file" {count current_file current_file2 pwin_sash pwin_orient selected_view} \ ] set xml_data_files_count [list \ [lindex $files_attrs 0] \ [lrange $files_attrs 1 end] \ ] } {file} { lappend__xml_data_files__xml_data_file ;# Note that this is important function set xml_curTag "file" set xml_data_file [project_xml_attr_parser \ "actual_line" {name active o_bookmark p_bookmark file_index read_only highlight} \ ] } {actual_line} { set xml_curTag "actual_line" lappend xml_data_file [project_xml_attr_parser \ "md5_hash" {value} \ ] } {md5_hash} { set xml_curTag "md5_hash" lappend xml_data_file [project_xml_attr_parser \ "path" {value} \ ] } {path} { set xml_curTag "path" project_xml_expect "bookmarks" } {bookmarks} { set xml_curTag "bookmarks" project_xml_expect "breakpoints" } {breakpoints} { set xml_curTag "breakpoints" project_xml_expect "eol file" } {eol} { set xml_curTag "eol" lappend xml_data_file [project_xml_attr_parser \ "encoding" {value} \ ] } {encoding} { set xml_curTag "encoding" lappend xml_data_file [project_xml_attr_parser \ "file notes" {value} \ ] } {notes} { set xml_curTag "notes" project_xml_expect "file" } } } ## This procedure is a product of bad software design # Variable xml_data_file must be modified by this function when xml_data_file is complete. # It's because of some changes in the project file format in recent versions of the IDE # # THIS MUST BE ALWAYS CALLED INSTEAD OF DOING THIS: "lappend xml_data_files $xml_data_file" ! proc lappend__xml_data_files__xml_data_file {} { variable xml_data_files ;# Contents of variable xml_data_file ;# Contents of variable xml_data_file_notes ;# Contents of if {$xml_data_file == {}} { return } if {[llength $xml_data_file] == 12} { puts stderr [mc "Converting old project file to new version"] # eol enc lappend xml_data_file {} {} } # Move attribute "highlight" from index 6 to 13 set xml_data_file [linsert $xml_data_file 14 [lindex $xml_data_file 6]] set xml_data_file [lreplace $xml_data_file 6 6] # Append file notes lappend xml_data_file [unescape_tags $xml_data_file_notes] set xml_data_file_notes {} lappend xml_data_files $xml_data_file } } # >>> File inclusion guard } # <<< File inclusion guard mcu8051ide-1.4.7/lib/bottompanel/0000755000175000017500000000000012067167647017171 5ustar milleniummilleniummcu8051ide-1.4.7/lib/bottompanel/terminal.tcl0000644000175000017500000001171312067167647021513 0ustar milleniummillenium#!/usr/bin/tclsh # Part of MCU 8051 IDE ( http://mcu8051ide.sf.net ) ############################################################################ # Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012 by Martin Ošmera # # martin.osmera@gmail.com # # # # This program is free software; you can redistribute it and#or modify # # it under the terms of the GNU General Public License as published by # # the Free Software Foundation; either version 2 of the License, or # # (at your option) any later version. # # # # This program is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU General Public License for more details. # # # # You should have received a copy of the GNU General Public License # # along with this program; if not, write to the # # Free Software Foundation, Inc., # # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # ############################################################################ # >>> File inclusion guard if { ! [ info exists _TERMINAL_TCL ] } { set _TERMINAL_TCL _ # <<< File inclusion guard # -------------------------------------------------------------------------- # DESCRIPTION # Provides terminal emulator for bottom notebook # -------------------------------------------------------------------------- class Terminal { # Terminal emulator configuration common configuration common configuration_def [subst { bg #FFFFFF fg #000000 font_size 12 font_family {$::DEFAULT_FIXED_FONT} }] private variable terminal_counter 0 ;# Int: Counter of terminal emulator instances private variable terminal_frame ;# Widget: ID of terminal container frame private variable wrapper_frame ;# Widget: Wrapper frame for $terminal_frame private variable parent ;# Widget: Parent frame private variable term_gui_initialized 0 ;# Bool: GUI initialized private variable terminal_pid {} ;# Int: PID of terminal emulator destructor { terminal_kill_childern } ## Prepare this tab for GUI creation # @parm Widget _parent - # @return void public method PrepareTerminal {_parent} { set parent $_parent set term_gui_initialized 0 } ## Inform this tab than it has became active # @return void public method TerminalTabRaised {} { focus $terminal_frame } ## Create GUI # @return void public method CreateTerminalEmulGUI {} { if {$term_gui_initialized || !${::PROGRAM_AVAILABLE(urxvt)}} {return} set term_gui_initialized 1 set wrapper_frame [frame $parent.wrapper_frame -relief sunken -bd 2] pack $wrapper_frame -fill both -expand 1 terminal_recreate_terminal unset parent } ## Internal procedure -- (re)create frame with terminal emulator # @return void public method terminal_recreate_terminal {} { if {![winfo exists $wrapper_frame]} {return} set terminal_frame [frame $wrapper_frame.terminal_frame_${terminal_counter} -container 1] bind $terminal_frame "$this terminal_recreate_terminal" set pwd [pwd] if {[catch { cd [$this cget -projectPath] }]} then { cd ~ } if {[catch { set terminal_pid [exec -- urxvt \ -embed [expr [winfo id $terminal_frame]] \ -sr -b 0 -w 0 -bg ${configuration(bg)} \ -fg ${configuration(fg)} \ -fn "xft:$configuration(font_family):pixelsize=$configuration(font_size)" & \ ] } result]} then { tk_messageBox \ -parent . \ -icon warning \ -type ok \ -title [mc "Unable to find urxvt"] \ -message [mc "Unable to execute program \"urxvt\", terminal emulator is eiter not available or badly configured."] puts stderr $result } cd $pwd pack $terminal_frame -fill both -expand 1 incr terminal_counter } ## Restart terminal emulator # @return void public method terminal_restart {} { if {!$term_gui_initialized} {return} if {!${::PROGRAM_AVAILABLE(urxvt)}} {return} foreach pid $terminal_pid { if {$pid == [pid] || $pid == 0} { continue } catch { exec -- kill $pid } } } ## Kill terminal emulator # @return void public method terminal_kill_childern {} { if {$term_gui_initialized} { if {[info exists terminal_frame] && [winfo exists $terminal_frame]} { bind $terminal_frame {} } foreach pid $terminal_pid { if {$pid == [pid] || $pid == 0} { continue } catch { exec -- kill $pid } } } } } # Initialize NS variables array set ::Terminal::configuration ${::Terminal::configuration_def} # >>> File inclusion guard } # <<< File inclusion guard mcu8051ide-1.4.7/lib/bottompanel/messages.tcl0000644000175000017500000005714412067167647021517 0ustar milleniummillenium#!/usr/bin/tclsh # Part of MCU 8051 IDE ( http://mcu8051ide.sf.net ) ############################################################################ # Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012 by Martin Ošmera # # martin.osmera@gmail.com # # # # This program is free software; you can redistribute it and#or modify # # it under the terms of the GNU General Public License as published by # # the Free Software Foundation; either version 2 of the License, or # # (at your option) any later version. # # # # This program is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU General Public License for more details. # # # # You should have received a copy of the GNU General Public License # # along with this program; if not, write to the # # Free Software Foundation, Inc., # # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # ############################################################################ # >>> File inclusion guard if { ! [ info exists _MESSAGES_TCL ] } { set _MESSAGES_TCL _ # <<< File inclusion guard # -------------------------------------------------------------------------- # DESCRIPTION # Implements messages text for the bottom panel of the project tab # -------------------------------------------------------------------------- class Messages { ## COMMON common set_shortcuts {} ;# Currently set shortcut bindigs for messages text common shortcuts_cat {messages} ;# Key shortcut categories related to messages text # Normal font for messages text common messages_normal_font [font create \ -family $::DEFAULT_FIXED_FONT \ -size [expr {int(-12 * $::font_size_factor)}] \ ] # Bold font for messages text common messages_bold_font [font create \ -family $::DEFAULT_FIXED_FONT \ -size [expr {int(-12 * $::font_size_factor)}] \ -weight bold \ ] # Definition of popup menu for messages text common MESSAGESMENU { {command {Select all} {Ctrl+A} 0 "select_all_messages_text" {} "Select all text in this TextBox"} {command {Copy} {Ctrl+C} 0 "copy_messages_text" {editcopy} "Copy selected text into clipboard"} {command {Clear} {$messages:clear_mess} 1 "clear_messages_text" {editdelete} "Clear all messages"} {separator} {command {Find} {$messages:mess_find} 0 "messages_text_find_dialog" {find} {}} {command {Find next} {$messages:mess_find_n} 5 "messages_text_find_next" {down0} {}} {command {Find previous} {$messages:mess_find_p} 8 "messages_text_find_prev" {up0} {}} } private variable main_frame ;# Widget: Main frame private variable messages_text ;# Widget: text widget private variable menu {} ;# Widget: popup menu private variable hyperlink_line_start ;# TextIndex: Active hyperlink line start index # Variables related to object initialization private variable parent ;# Widget: parent widget private variable msg_gui_initialized 0 ;# Bool: GUI initialized # Variables related to search bar private variable search_frame ;# Widget: Search bar frame private variable last_find_index {} ;# String: Index of last found occurrence of the search string private variable search_string {} ;# String: Search string private variable search_string_length 0 ;# Int: Length of the search string private variable search_entry ;# Widget: Search bar entry box private variable search_find_next ;# Widget: Button "Next" private variable search_find_prev ;# Widget: Button "Prev" constructor {} { } destructor { # Remove status bar help for popup menus if {$menu != {}} { menu_Sbar_remove $menu } } ## Prepare object for creating its GUI # @parm Widget _parent - GUI parent widget # @return void public method PrepareMessages {_parent} { set parent $_parent set msg_gui_initialized 0 } ## Inform this tab than it has became active # @return void public method MessagesTabRaised {} { $this bottomnotebook_pageconfigure {Messages} "-image ::ICONS::16::kcmsystem" focus $messages_text } ## Create GUI of messages tab # @return void public method CreateMessagesGUI {} { if {$msg_gui_initialized} {return} set msg_gui_initialized 1 if {${::DEBUG}} { puts "CreateMessagesGUI \[ENTER\]" } ## Create GUI of main frame set main_frame [frame $parent.main_frame] # Create messages text and its scrollbar set messages_text [text $main_frame.messages_text \ -state disabled -cursor xterm \ -yscrollcommand "$main_frame.msg_text_scrl set" \ -font $messages_normal_font -wrap word \ -tabstyle wordprocessor \ ] set messages_text_scrl [ttk::scrollbar $main_frame.msg_text_scrl \ -command "$messages_text yview" -orient vertical \ ] # Text tags for messages text $messages_text tag configure error \ -foreground #FF0000 \ -underline 1 \ -font $messages_bold_font $messages_text tag configure error_nu \ -foreground #FF0000 \ -underline 0 \ -font $messages_bold_font $messages_text tag configure warning \ -foreground #FF8800 \ -underline 1 \ -font $messages_bold_font $messages_text tag configure warning_nu \ -foreground #FF8800 \ -underline 0 \ -font $messages_bold_font $messages_text tag configure successful \ -foreground #00DD00 \ -font $messages_bold_font $messages_text tag configure hyper_link_over \ -foreground #0055FF -underline 0 \ -font $messages_bold_font $messages_text tag raise hyper_link_over $messages_text tag bind error "$this messages_text_anchor %x %y" $messages_text tag bind error "$this messages_text_hyperlink_enter %x %y" $messages_text tag bind error "$this messages_text_hyperlink_leave" $messages_text tag bind error "$this messages_text_hyperlink_motion %x %y" $messages_text tag bind warning "$this messages_text_anchor %x %y" $messages_text tag bind warning "$this messages_text_hyperlink_enter %x %y" $messages_text tag bind warning "$this messages_text_hyperlink_leave" $messages_text tag bind warning "$this messages_text_hyperlink_motion %x %y" # Popup menu for messages text set menu $messages_text.messages_text_menu messages_text_makePopupMenu # Bindings for messages text bind $messages_text "focus $messages_text" bind $messages_text "$this select_all_messages_text" bind $messages_text "tk_popup $menu %X %Y; break" bind $messages_text "$this messages_text_key_menu; break" # Pack parts of main frame pack $messages_text -fill both -expand 1 -side left pack $messages_text_scrl -fill y -side right pack $main_frame -fill both -expand 1 ## Create GUI components in search bar frame set search_frame [frame $parent.search_frame] # Search entry box set search_entry [ttk::entry $search_frame.entry \ -width 30 \ -validate all \ -validatecommand "$this messages_text_search %P" \ ] bind $search_entry "$this messages_text_hide_find_dialog" # Button: "Next" set search_find_next [ttk::button $search_frame.find_next_but \ -image ::ICONS::16::down0 \ -style Flat.TButton \ -command "$this messages_text_find_next" \ -state disabled \ ] DynamicHelp::add $search_frame.find_next_but \ -text [mc "Find next occurrence of search string"] # Button: "Prev" set search_find_prev [ttk::button $search_frame.find_prev_but \ -image ::ICONS::16::up0 \ -style Flat.TButton \ -command "$this messages_text_find_prev" \ -state disabled \ ] DynamicHelp::add $search_frame.find_prev_but \ -text [mc "Find previous occurrence of search string"] # Button: "Close" pack [ttk::button $search_frame.close_but \ -image ::ICONS::16::button_cancel \ -style Flat.TButton \ -command "$this messages_text_hide_find_dialog" \ ] -side left DynamicHelp::add $search_frame.close_but \ -text [mc "Hide search bar"] # Separator pack [ttk::separator $search_frame.sep \ -orient vertical \ ] -fill y -padx 5 -side left -pady 2 # Label: "Find" pack [label $search_frame.find_lbl \ -text [mc "Find:"] \ ] -side left # Pack entry and buttons next and prev pack $search_entry -side left pack $search_find_next -side left -padx 5 pack $search_find_prev -side left # Checkbutton: "Match case" pack [checkbutton $search_frame.match_case_chb \ -text [mc "Match case"] \ -variable ::Todo::match_case \ -command "$this messages_text_perform_search 1 1.0" \ ] -side left -padx 5 # Show the search bar frame messages_text_find_dialog 0 messages_text_shortcuts_reevaluate unset parent } ## Select all text in messages text # @return void public method select_all_messages_text {} { if {!$msg_gui_initialized} {CreateMessagesGUI} $messages_text tag add sel 1.0 end } ## Copy selected text in messages text into clipboard # @return void public method copy_messages_text {} { if {!$msg_gui_initialized} {CreateMessagesGUI} clipboard clear if {[llength [$messages_text tag nextrange sel 1.0]]} { clipboard append [$messages_text get sel.first sel.last] } else { clipboard append [$messages_text get 1.0 end] } } ## Create bindings for defined key shortcuts for messages text # @return void public method messages_text_shortcuts_reevaluate {} { if {!$msg_gui_initialized} {CreateMessagesGUI} # Unset previous configuration foreach key $set_shortcuts { bind $messages_text <$key> {} } set set_shortcuts {} # Iterate over shortcuts definition foreach block ${::SHORTCUTS_LIST} { # Determinate category set category [lindex $block 0] if {[lsearch $shortcuts_cat $category] == -1} {continue} # Determinate definition list and its length set block [lreplace $block 0 2] set len [llength $block] # Iterate over definition list and create bindings for {set i 0; set j 1} {$i < $len} {incr i 2; incr j 2} { # Determinate key sequence set key [lindex $block $i] if {[catch { set key $::SHORTCUTS_DB($category:$key) }]} then { continue } if {$key == {}} {continue} # Create and register new binding lappend set_shortcuts $key set cmd [subst [lindex $block [list $j 1]]] append cmd {;break} bind $messages_text <$key> $cmd bind $search_entry <$key> $cmd } } } ## Define popup menu for messages text # @return void public method messages_text_makePopupMenu {} { if {!$msg_gui_initialized} {return} if {[winfo exists $menu]} { destroy $menu } menuFactory $MESSAGESMENU $menu 0 "$this " 0 {} [namespace current] $menu entryconfigure [::mc "Find next"] -state disabled $menu entryconfigure [::mc "Find previous"] -state disabled } ## Handles event: 'Menu' on messages text -- invoke popup menu # @return void public method messages_text_key_menu {} { $messages_text see insert set bbox [$messages_text bbox [$messages_text index insert]] tk_popup $menu \ [expr {[winfo rootx $messages_text] + [lindex $bbox 0] + 10}] \ [expr {[winfo rooty $messages_text] + [lindex $bbox 1] + 10}] } ## Clear all content of messages text # @return void public method clear_messages_text {} { if {!$msg_gui_initialized} {CreateMessagesGUI} $messages_text configure -state normal $messages_text delete 0.0 end $messages_text configure -state disabled } ## Go to line (in editor) which is somehow related to some tag in messages text # @parm int x - relative x coordinate in messages text widget # @parm int y - relative y coordinate in messages text widget # @return void public method messages_text_anchor {x y} { # Determinate line number for editor set idx [$messages_text index @$x,$y] set line [$messages_text get "$idx linestart" "$idx lineend"] # Focus on editor and go to that line # Message from As31 assembler if {[regexp {^(Error)|(Warning)\, line \d+} $line line]} { if {![regexp {\d+$} $line lineNum]} { set lineNum 0 } if {!$lineNum} { return } # Message from ASEM-51 assembler } elseif {[regexp {^([^\(\)]+\(\d+(\,\d+)?\)\: \w+)} $line line]} { if {![regexp {\(\d+(\,\d+)?\):} $line lineNum]} { set lineNum 0 } else { set lineNum [string range $lineNum 1 end-2] set lineNum [lindex [split $lineNum {,}] 0] } if {[regexp {^.+\(\d+(\,\d+)?\):} $line target_filename]} { set target_filename [regsub {\(\d+(\,\d+)?\):$} $target_filename {}] set current_filename [lindex [$this editor_procedure {} getFileName {}] 1] if {$target_filename != $current_filename} { if {![$this fucus_specific_editor $target_filename 0]} { return } } } if {!$lineNum} { return } # GNU error message (from SDCC or ASL) } elseif {[regexp {\:\d+\:} $line linenum]} { if {[regexp {[^\:]+\:} $line target_filename]} { set target_filename [string trim [string range $target_filename 0 {end-1}]] set current_filename [lindex [$this editor_procedure {} getFileName {}] 1] if {$target_filename != $current_filename} { if {![$this fucus_specific_editor $target_filename 0]} { return } } } set lineNum [string trim $linenum {:}] # Message from MCU8051IDE assembler } elseif {[regexp {at \d+ in [^\:]+\:} $line line]} { if {[regexp { in [^\:]+\:} $line target_filename]} { set target_filename [string trim [string range $target_filename 4 {end-1}] "\""] set current_filename [lindex [$this editor_procedure {} getFileName {}] 1] if {$target_filename != $current_filename} { if {![$this fucus_specific_editor $target_filename 0]} { return } } } regexp {\d+} $line lineNum } else { return } $this editor_procedure {} goto $lineNum after idle " $this editor_procedure {} focus_in {} " } ## Append text at the end of messages text # @parm String txt - Text to append # @return Bool - True if error occurred public method messages_text_append {txt} { if {!$msg_gui_initialized} {CreateMessagesGUI} # Enable the messages text widget $messages_text configure -state normal set ern 0 ;# The text is some error, but text should not be underlined and linked to certain line set err 0 ;# The text is some error set war 0 ;# The text is some warning which points to specific line in source code set warn 0 ;# The text is some warning set suc 0 ;# The text is success message foreach text [split $txt "\n"] { set ern 0 set err 0 set war 0 set warn 0 set suc 0 set spec 0 # Determinate number of the last line in the widget set row [expr {int([$messages_text index end]) - 1}] ## Determinate what kind of text will be inserted # check for error which points to specific line in source code if {[regexp {^(\|EL\|.*)|^(Compilation error at \d+ in [^\:]+\:)|^(Syntax error at \d+ in [^\:]+\:)|^(Error at\s+\d+ in [^\:]+\:)|^(.+:\d+: .*error.*)|^(.+\(\d+(\,\d+)?\): \w+.*)|^(Error\, line \d+)} $text error]} { set len [string length $error] set err 1 # check for an error } elseif {[regexp {^(\|EN\|.*)|^(File access error:)|^(FAILED)|^(Compilation FAILED)|^(Pre-processing FAILED !)|^(Error:)|(^@@@@@ .+ @@@@@$)|(^.*returned errorcode.*)|^(Cannot open input file)|^(Cannot open file)|^(Errors in pass1, assembly aborted)|^(Errors in pass2, assembly aborted)|(: command not found)|(cannot generate code for target 'mcs51')} $text error]} { set len [string length $error] set ern 1 if {[regexp {: command not found} $text error]} { set spec 2 set len [string length $text] } elseif {[regexp {cannot generate code for target 'mcs51'} $text error]} { set spec 3 set len [string length $text] } # a special case of error; unable to find C debug file -- relevant only if user wants to start #+ simulation right after compilation } elseif {[regexp {^Unable to find \".*\"$} $text error]} { set spec 1 set len [string length $error] if {$::X::compilation_start_simulator} { set ern 1 } else { set warn 1 } # check for warning which points to specific line in source code } elseif {[regexp {^(\|WL\|.*)|^(Notice at \d+ in [^\:]+\:)|^(Warning at \d+ in [^\:]+\:)|^(.+:\d+: warning.*)|^(Warning\, line \d+)} $text warning]} { set len [string length $warning] set war 1 # check for a warning } elseif {[regexp {^(\|WN\|.*)|^(.*: Warning:.*)|^(Warning:)} $text warning]} { set len [string length $warning] set warn 1 # check for success } elseif {[regexp {^(\|SN\|.*)|^((Dec|C)ompilation successful)|(Successful)|(Starting compiler ...)} $text success]} { set len [string length $success] set suc 1 # check for error which points to specific line in source code } elseif {[regexp {^(\|EL\|.*)|^(.+:\d+: .*)} $text error]} { set len [string length $error] set err 1 } regsub {^(\|[EWS][LN]\|)} $text {} text # Insert specified text $messages_text insert end [regsub -all "\a" [regsub -all {\\} [regsub -all {\\\\} $text "\a"] {}] {\\}] $messages_text insert end "\n" switch -- $spec { 0 {} 1 { ;# Unable to find ".cdb" $messages_text insert end [mc " |\n"] $messages_text insert end [mc " +-- Most probably that indicates that you have disabled debugging switch, if it is not that what you want then go to\n"] $messages_text insert end [mc " \[Main Menu\] --> \[Configure\] --> \[Compiler configuration\] --> \[C language\] --> \[General\] and enable \"--debug\" compiler switch.\n"] } 2 { ;# /bin/sh: sdcc: command not found $messages_text insert end [mc " |\n"] $messages_text insert end [mc " +-- Most probably that indicates that you have not installed SDCC compiler\n"] } 3 { ;# cannot generate code for target 'mcs51' $messages_text insert end [mc " |\n"] $messages_text insert end [mc " +-- That means that your SDCC compiler does not support MCS-51 architecture, please install SDCC with support for 8051\n"] } } # Insert appropriate text tags if {$err || $ern || $war || $warn || $suc} { # Insert error tag if {$ern} { set tag {error_nu} # Insert error tag } elseif {$err} { set tag {error} # Insert warning tag } elseif {$warn} { set tag {warning_nu} # Insert warning tag } elseif {$war} { set tag {warning} # Insert success tag } elseif {$suc} { set tag successful } $messages_text tag add $tag $row.0 $row.$len } } $messages_text see end $messages_text configure -state disabled # Change tab icon if some warning or error was displayed there if {$err || $ern || $warn || $war} { $this bottomnotebook_pageconfigure {Messages} "-image ::ICONS::16::status_unknown" } return [expr {$err || $ern}] } ## Hide search bar # @return void public method messages_text_hide_find_dialog {} { if {[winfo ismapped $search_frame]} { pack forget $search_frame } } ## Show search bar # @parm Bool do_focus_entrybox - Automatically focus the search EntryBox # @return void public method messages_text_find_dialog {{do_focus 1}} { if {![winfo ismapped $search_frame]} { pack $search_frame -before $main_frame -side top -anchor w $search_entry delete 0 end if {$do_focus} { focus -force $search_entry } } else { if {$do_focus} { focus -force $search_entry } } } ## Search for the given string within the text # @parm String string - Text to find # @return Bool - Always 1 public method messages_text_search {string} { if {$string == {}} { $search_entry configure -style TEntry $search_find_next configure -state disabled $search_find_prev configure -state disabled $menu entryconfigure [::mc "Find next"] -state disabled $menu entryconfigure [::mc "Find previous"] -state disabled return 1 } set search_string $string messages_text_perform_search 1 1.0 return 1 } ## Perform search for $search_string in the text widget # @parm Bool forw__back - 1 == Search forwards; 0 == Search backard # @parm String from - Start index # @return void public method messages_text_perform_search {forw__back from} { if {$search_string == {}} {return} if {$forw__back} { set direction {-forwards} } else { set direction {-backwards} } if {${::Todo::match_case}} { set last_find_index [$messages_text search $direction -- $search_string $from] } else { set last_find_index [$messages_text search $direction -nocase -- $search_string $from] } if {$last_find_index == {}} { $search_entry configure -style StringNotFound.TEntry $search_find_next configure -state disabled $search_find_prev configure -state disabled $menu entryconfigure [::mc "Find next"] -state disabled $menu entryconfigure [::mc "Find previous"] -state disabled } else { $search_entry configure -style StringFound.TEntry $search_find_next configure -state normal $search_find_prev configure -state normal $menu entryconfigure [::mc "Find next"] -state normal $menu entryconfigure [::mc "Find previous"] -state normal set search_string_length [string length $search_string] $messages_text see $last_find_index catch { $messages_text tag remove sel 0.0 end } $messages_text tag add sel $last_find_index $last_find_index+${search_string_length}c } } ## Find next occurrence of the search string # @return void public method messages_text_find_next {} { if {![winfo ismapped $search_frame]} { pack $search_frame -before $main_frame -side top -anchor w } if {$last_find_index == {}} { return } messages_text_perform_search 1 $last_find_index+${search_string_length}c } ## Find previous occurrence of the search string # @return void public method messages_text_find_prev {} { if {![winfo ismapped $search_frame]} { pack $search_frame -before $main_frame -side top -anchor w } if {$last_find_index == {}} { return } messages_text_perform_search 0 $last_find_index } ## Enter hyperlink # @parm Int x - Relative pointer position # @parm Int x - Relative pointer position # @return void public method messages_text_hyperlink_enter {x y} { set hyperlink_line_start [$messages_text index [list @$x,$y linestart]] hyperlink_active } ## Leave hyperlink # @return void public method messages_text_hyperlink_leave {} { $messages_text config -cursor xterm $messages_text tag remove hyper_link_over 0.0 end } ## Enter pointer motion # @parm Int x - Relative pointer position # @parm Int x - Relative pointer position # @return void public method messages_text_hyperlink_motion {x y} { set line_start [$messages_text index [list @$x,$y linestart]] if {$hyperlink_line_start == $line_start} { return } set hyperlink_line_start $line_start $messages_text tag remove hyper_link_over 0.0 end hyperlink_active } ## Highlight hyperlink on line $hyperlink_line_start # @return void private method hyperlink_active {} { set range [$messages_text tag nextrange error $hyperlink_line_start [list $hyperlink_line_start lineend]] if {![llength $range]} { set range [$messages_text tag nextrange warning $hyperlink_line_start [list $hyperlink_line_start lineend]] } if {![llength $range]} { return } $messages_text config -cursor hand2 $messages_text tag add hyper_link_over [lindex $range 0] [lindex $range 1] } } # >>> File inclusion guard } # <<< File inclusion guard mcu8051ide-1.4.7/lib/bottompanel/calculator.tcl0000644000175000017500000020166612067167647022041 0ustar milleniummillenium#!/usr/bin/tclsh # Part of MCU 8051 IDE ( http://mcu8051ide.sf.net ) ############################################################################ # Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012 by Martin Ošmera # # martin.osmera@gmail.com # # # # This program is free software; you can redistribute it and#or modify # # it under the terms of the GNU General Public License as published by # # the Free Software Foundation; either version 2 of the License, or # # (at your option) any later version. # # # # This program is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU General Public License for more details. # # # # You should have received a copy of the GNU General Public License # # along with this program; if not, write to the # # Free Software Foundation, Inc., # # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # ############################################################################ # >>> File inclusion guard if { ! [ info exists _CALCULATOR_TCL ] } { set _CALCULATOR_TCL _ # <<< File inclusion guard # -------------------------------------------------------------------------- # DESCRIPTION # # -------------------------------------------------------------------------- class Calculator { common calc_count 0 ;# counter of instances # Font for numerical keypad common large_font [font create \ -family {helveticat} \ -size [expr {int(-12 * $::font_size_factor)}] \ -weight {bold} \ ] common oper_fg_color {#0000FF} ;# Foreground color for operator display common error_bg_color {#FF6666} ;# Background color for display containing too many characters common display_bg_color {#DDFFDD} ;# Background color for main display common buffer_bg_color {#DDDDFF} ;# Background color for buffer display # Variables related to object initialization private variable parent ;# Teportary variable -- GUI parent private variable calculatorList ;# Teportary variable -- COnfiguration list private variable calc_gui_initialized 0 ;# Bool: GUI created # GUI variables private variable calc_num_keypad ;# Container of left side of calc. (keypad) private variable calc_num_display ;# Container for right side (displays etc.) private variable calc_timers_calc ;# ID of label frame of timer preset calculator private variable calc_display_widget ;# ID of main display widget private variable calc_oper_widget ;# ID of operator display widget private variable calc_buffer_widget ;# ID of buffer display widget private variable timerscalc_THxDec_label ;# ID of THx (dec) label private variable timerscalc_THxHex_label ;# ID of THx (hex) label private variable timerscalc_THxOct_label ;# ID of THx (oct) label private variable timerscalc_TLxDec_label ;# ID of TLx (dec) label private variable timerscalc_TLxHex_label ;# ID of TLx (hex) label private variable timerscalc_TLxOct_label ;# ID of TLx (oct) label private variable timerscalc_RepeatDec_label ;# ID of Repeat (dec) label private variable timerscalc_RepeatHex_label ;# ID of Repeat (hex) label private variable timerscalc_RepeatOct_label ;# ID of Repeat (oct) label private variable timerscalc_CorrectionDec_label ;# ID of Correction (dec) label private variable timerscalc_CorrectionHex_label ;# ID of Correction (hex) label private variable timerscalc_CorrectionOct_label ;# ID of Correction (oct) label private variable timerscalc_freq_entry ;# ID of frequency entry widget private variable timerscalc_mode_spinbox ;# ID of mode spinbox widget private variable timerscalc_time_entry ;# ID of tim entry widget private variable mem_entry_0 ;# ID of memory 0 entry widget private variable mem_entry_1 ;# ID of memory 1 entry widget private variable mem_entry_2 ;# ID of memory 2 entry widget # Core variables private variable base ;# Numeric base (Hex, Dec. Oct, Bin) private variable last_base ;# Last numeric base private variable angle ;# Angle unit (rad, deg, grad) private variable last_angle ;# Last angle unit private variable calc_oper {} ;# Chosen mathematical operation private variable calc_oper_h ;# Human readible $calc_oper private variable calc_last_oper ;# Last $calc_oper private variable calc_display ;# Actual display text variable private variable calc_buffer ;# Last display text variable private variable calc_last_display ;# Var. for UNDO/REDO (takes back $calc_display) private variable calc_last_buffer ;# Var. for UNDO/REDO (takes back $calc_buffer) private variable ena_undo 0 ;# Undo enabled private variable ena_redo 0 ;# Redo enabled private variable after_eval 0 ;# Clear display if actual display val. is result of last operation private variable scrollable_frame ;# Widget: Scrollable area (parent for all other widgets) private variable horizontal_scrollbar ;# Widget: Horizontal scrollbar for scrollable area # other public variables private variable calc_idx ;# number of current instance private variable timerscalc_validation_dis 1 ;# Disabled validation of timers calc # definition of calculator keyboard # { # # row # { # button # {text path_part command_postfix # columnspan rowspan # helptext width # height bgColor # activeBackground bool_large_font # } # {separator} # } # } common calculator_keyboard { { {{AND} {and} {calc_opr and 1} {} {} {Bit-wise AND} {5} {} {} {Calculator_GREEN} {#CCFFCC} 0 {Bit-wise AND. Valid for integer operands only.}} {{Sin} {S} {calc_opr Sin 1} {} {} {Sine} {5} {} {} {Calculator_RED} {#FFDDDD} 0 {Sine}} {{Cos} {Cs} {calc_opr Cos 1} {} {} {Cosine} {5} {} {} {Calculator_RED} {#FFDDDD} 0 {Cosine}} {{Tan} {T} {calc_opr Tan 1} {} {} {Tangent} {5} {} {} {Calculator_RED} {#FFDDDD} 0 {Tangent}} {{A} {A} {calc_val A} {} {} {} {} {} {5} {Calculator_PURPLE} {#DDDDFF} 1} {{F} {F} {calc_val F} {} {} {} {} {} {} {Calculator_PURPLE} {#DDDDFF} 1} {{/} {div} {calc_opr div 1} {} {} {} {} {} {} {Calculator_YELLOW} {#FFFFDD} 1} {{*} {mul} {calc_opr mul 1} {} {} {} {} {} {} {Calculator_YELLOW} {#FFFFDD} 1} {{-} {min} {calc_opr min 1} {} {} {} {} {} {} {Calculator_YELLOW} {#FFFFDD} 1} } { {{OR} {or} {calc_opr or 1} {} {} {Bit-wise OR} {5} {} {} {Calculator_GREEN} {#CCFFCC} 0 {Bit-wise OR. Valid for integer operands only.}} {{ASin} {AS} {calc_opr ASin 1} {} {} {Arc sine} {5} {} {} {Calculator_RED} {#FFDDDD} 0 {Arc sine. Argument should be in the range [-1,1].}} {{ACos} {AC} {calc_opr ACos 1} {} {} {Arc cosine} {5} {} {} {Calculator_RED} {#FFDDDD} 0 {Arc cosine. Argument should be in the range [-1,1].}} {{ATan} {AT} {calc_opr ATan 1} {} {} {Arc tangent} {5} {} {} {Calculator_RED} {#FFDDDD} 0 {Arc tangent}} {{B} {B} {calc_val B} {} {} {} {} {} {} {Calculator_PURPLE} {#DDDDFF} 1} {{7} {7} {calc_val 7} {} {} {} {} {} {} {Calculator_PURPLE} {#DDDDFF} 1} {{8} {8} {calc_val 8} {} {} {} {} {} {} {Calculator_PURPLE} {#DDDDFF} 1} {{9} {9} {calc_val 9} {} {} {} {} {} {} {Calculator_PURPLE} {#DDDDFF} 1} {{+} {add} {calc_opr add 1} {} {2} {} {} {2} {} {Calculator_YELLOW} {#FFFFDD} 1} } { {{NOT} {not} {calc_opr not 1} {} {} {Bit-wise NOT} {5} {} {} {Calculator_GREEN} {#CCFFCC} 0 {Bit-wise NOT. Valid for integer operands only.}} {{e**} {exp} {calc_opr Exp 1} {} {} {Exponential of argument (e**arg)} {5} {} {} {Calculator_CYAN} {#AAFFFF} 0 {Exponential of argument (e**arg)}} {{sqrt} {sqr} {calc_opr Sqr 1} {} {} {Square root} {5} {} {} {Calculator_CYAN} {#AAFFFF} 0 {Square root. Argument must be non-negative.}} {{pow} {power} {calc_opr pow 1} {} {} {Power} {5} {} {} {Calculator_CYAN} {#AAFFFF} 0 {Computes the value of x raised to the power y. If x is negative, y must be an integer value.}} {{C} {C} {calc_val C} {} {} {} {} {} {} {Calculator_PURPLE} {#DDDDFF} 1} {{4} {4} {calc_val 4} {} {} {} {} {} {} {Calculator_PURPLE} {#DDDDFF} 1} {{5} {5} {calc_val 5} {} {} {} {} {} {} {Calculator_PURPLE} {#DDDDFF} 1} {{6} {6} {calc_val 6} {} {} {} {} {} {} {Calculator_PURPLE} {#DDDDFF} 1} } { {{XOR} {xor} {calc_opr xor 1} {} {} {Bit-wise exclusive OR} {5} {} {} {Calculator_GREEN} {#CCFFCC} 0 {Bit-wise exclusive OR. Valid for integer operands only.}} {{Log} {L} {calc_opr Log 1} {} {} {Base 10 logarithm} {5} {} {} {Calculator_CYAN} {#AAFFFF} 0 {Returns the base 10 logarithm of argument. Argument must be a positive value.}} {{Ln} {Ln} {calc_opr Ln 1} {} {} {Natural logarithm} {5} {} {} {Calculator_CYAN} {#AAFFFF} 0 {Returns the natural logarithm of argument. Argument must be a positive value.}} {{PI} {P} {calc_val PI} {} {} {Constant Pi} {5} {} {} {Calculator_CYAN} {#AAFFFF} 0 {Constant Pi}} {{D} {D} {calc_val D} {} {} {} {} {} {} {Calculator_PURPLE} {#DDDDFF} 1} {{1} {1} {calc_val 1} {} {} {} {} {} {} {Calculator_PURPLE} {#DDDDFF} 1} {{2} {2} {calc_val 2} {} {} {} {} {} {} {Calculator_PURPLE} {#DDDDFF} 1} {{3} {3} {calc_val 3} {} {} {} {} {} {} {Calculator_PURPLE} {#DDDDFF} 1} {{=} {=} {calc_Evaluate} {} {2} {} {} {2} {} {Calculator_YELLOW} {#FFFFDD} 1} } { {{>>} {right} {calc_opr right 1} {} {} {Right shift} {5} {} {} {Calculator_GREEN} {#CCFFCC} 0 {Right shift. Valid for integer operands only. A right shift always propagates the sign bit.}} {{Mod} {M} {calc_opr mod 1} {} {} {Modulo} {5} {} {} {Calculator_CYAN} {#AAFFFF} 0 {Computes remainder of integer division}} {{UNDO} {U} {calc_UNDO} {} {} {Undo last operation} {5} {} {} {Calculator_GRAY} {#F8F8F8} 0 {Undo last operation. Not all operations are supported.}} {{REDO} {RE} {calc_REDO} {} {} {Take back last undo operation} {5} {} {} {Calculator_GRAY} {#F8F8F8} 0 {Take back last undo operation. Not all operations are supported.}} {{E} {E} {calc_val E} {} {} {} {} {} {} {Calculator_PURPLE} {#DDDDFF} 1} {{0} {0} {calc_val 0} {2} {} {} {5} {} {} {Calculator_PURPLE} {#DDDDFF} 1} {{.} {dot} {calc_val .} {} {} {} {} {} {} {Calculator_PURPLE} {#DDDDFF} 1} } } ## object constructor constructor {} { # Initialize some variables incr calc_count ;# Instance counter set calc_idx $calc_count;# Index of this object set base Dec ;# Default numeric base set angle rad ;# Default angle unit set last_base $base ;# Last numeric base set last_angle $angle ;# Last angle unit # Configure ttk styles ttk::style configure Calculator_Buffer.TEntry \ -fieldbackground $buffer_bg_color ttk::style configure Calculator_Oper.TEntry \ -fieldbackground {#FFDDDD} \ -fieldforeground $oper_fg_color \ -justify center ttk::style configure Calculator_OperError.TEntry\ -fieldbackground {#FFDDDD} \ -foreground {#FF0000} \ -justify center ttk::style configure Calculator_Display.TEntry \ -fieldbackground $display_bg_color ttk::style configure Calculator_Error.TEntry \ -fieldbackground $error_bg_color ttk::style configure Calculator_GREEN.TButton -padding 2 ttk::style map Calculator_GREEN.TButton \ -background [list active {#AAFFAA} {!active !disabled} {#CCFFCC} disabled {#DDEEDD}] ttk::style configure Calculator_RED.TButton -padding 2 ttk::style map Calculator_RED.TButton \ -background [list active {#FFAAAA} {!active !disabled} {#FFDDDD} disabled {#EEDDDD}] ttk::style configure Calculator_CYAN.TButton -padding 2 ttk::style map Calculator_CYAN.TButton \ -background [list active {#88EEEE} {!active !disabled} {#AAFFFF} disabled {#DDEEEE}] ttk::style configure Calculator_GRAY.TButton -padding 2 ttk::style map Calculator_GRAY.TButton \ -background [list active {#DDDDDD} {!active !disabled} {#F8F8F8} disabled ${::COMMON_BG_COLOR}] ttk::style configure Calculator_PURPLE.TButton -padding 2 -font $large_font ttk::style map Calculator_PURPLE.TButton \ -background [list active {#AAAAFF} {!active !disabled} {#DDDDFF} disabled {#DDDDEE}] ttk::style configure Calculator_YELLOW.TButton -padding 2 -font $large_font ttk::style map Calculator_YELLOW.TButton \ -background [list active {#FFFFAA} {!active !disabled} {#FFFFDD} disabled {#EEEEDD}] } ## object destructor destructor { # Unallocate GUI related variables catch { unset ::Calculator::calc_base$calc_idx unset ::Calculator::calc_angle$calc_idx unset ::Calculator::calc_buffer$calc_idx unset ::Calculator::calc_oper$calc_idx unset ::Calculator::calc_displ$calc_idx unset ::Calculator::calc_mem0_$calc_idx unset ::Calculator::calc_mem1_$calc_idx unset ::Calculator::calc_mem2_$calc_idx } } ## Append given value to the end of the display # Use carefully, it does not check value validity ! # @parm String value - value to append # @return String - new display content public method calc_val {value} { # Read raw content of the main display reread_display 1 # Insert PI if {$value == {PI}} { # Conver PI to selected numeric base switch -- $base { {Hex} {set value [NumSystem::dec2hex ${Angle::PI}]} {Dec} {set value ${Angle::PI}} {Oct} {set value [NumSystem::dec2oct ${Angle::PI}]} {Bin} {set value [NumSystem::dec2bin ${Angle::PI}]} } # Save current values set calc_last_display [reread_display] ;# Main display set calc_last_buffer [reread_buffer] ;# Buffer # Clear main display set calc_display {} # Save current opetaror set calc_last_oper $calc_oper enable_undo ;# enable UNDO operation # Clear main display if current value is result of the last operation } elseif {$after_eval} { set calc_last_display $calc_display ;# Save current content of display set calc_last_buffer {} set calc_last_oper {} set calc_display {} set after_eval 0 enable_undo ;# enable UNDO operation } # Append given value to the end of main display set tmp "$calc_display$value" if {[calc_validate $calc_display_widget $tmp]} { set ::Calculator::calc_displ$calc_idx $tmp catch { $calc_display_widget delete sel.first sel.last } } $calc_display_widget icursor end $calc_buffer_widget icursor end return $calc_display } ## Choose mathematical operation # @parm String operation - Selected operation # @parm Bool external - Evaluate result # @return void public method calc_opr {operation external} { # Save current operator and set the new one set calc_last_oper $calc_oper set calc_oper $operation # Clear displays if external if {$external} { set calc_last_display [reread_display] set calc_last_buffer [reread_buffer] set calc_buffer $calc_display set calc_display {} enable_undo rewrite_buffer rewrite_display } # Evaluate specified operation switch -- $operation { {div} { ;# Division set calc_oper_h {/} } {mul} { ;# Multiplication set calc_oper_h {*} } {min} { ;# Subtraction set calc_oper_h {-} } {add} { ;# Addition set calc_oper_h {+} } {pow} { ;# Power set calc_oper_h {**} } {mod} { ;# Modulo set calc_oper_h {mod} } {and} { ;# Bit-wise and set calc_oper_h {&} } {or} { ;# Bit-wise inclusive or set calc_oper_h {|} } {xor} { ;# Bit-wise exclusive or set calc_oper_h {^} } {right} { ;# Right shift set calc_oper_h {>>} } {not} { ;# Bit-wise inversion set calc_oper_h {~} if {$external} {calc_Evaluate} } {Exp} { ;# Exponential of argument set calc_oper_h {e**} if {$external} {calc_Evaluate} } {Sqr} { ;# Square root set calc_oper_h {sqrt} if {$external} {calc_Evaluate} } {Log} { ;# Decimal logarithm set calc_oper_h {lg} if {$external} {calc_Evaluate} } {Ln} { ;# Natural logarithm set calc_oper_h {ln} if {$external} {calc_Evaluate} } {Sin} { ;# Sine set calc_oper_h {sin} if {$external} {calc_Evaluate} } {Cos} { ;# Cosine set calc_oper_h {cos} if {$external} {calc_Evaluate} } {Tan} { ;# Tangent set calc_oper_h {tan} if {$external} {calc_Evaluate} } {ASin} { ;# Arc sine set calc_oper_h {asin} if {$external} {calc_Evaluate} } {ACos} { ;# Arc cosine set calc_oper_h {acos} if {$external} {calc_Evaluate} } {ATan} { ;# Acr cotangent set calc_oper_h {atan} if {$external} {calc_Evaluate} } default { ;# No operand set calc_oper_h {} } } # Display selected operand set ::Calculator::calc_oper$calc_idx $calc_oper_h } ## Perform operation with calulator memory # @parm String action - "Save" (to main display) or "Load" (from main display) # @parm Int cell - Index of memory cell # @return void public method mem {action cell} { if {$action == {Save}} { # Show message on status bar Sbar [mc "Calculator: M%s saved" $cell] # Save content of main display set calc_mem [reread_display] if {[regexp {\.0$} $calc_mem]} { set calc_mem [string range $calc_mem 0 {end-2}] } set ::Calculator::calc_mem${cell}_$calc_idx $calc_mem } else { # Load memory content into main display set calc_display [subst -nocommands "\$::Calculator::calc_mem${cell}_$calc_idx"] rewrite_display } } ## Perform evaluation of given mathematical expression # @return void public method calc_Evaluate {} { ## Check for presence of nessesary values # * For unary operations set display [reread_display] set buffer [reread_buffer] if {$buffer == {} || $buffer == {-}} { Sbar [mc "Calculator: Unable to evaluate, missing argument"] return 0 } if {$calc_oper == {}} { Sbar [mc "Calculator: Unable to evaluate, missing operator"] return 0 } # * For binary operations if { $calc_oper == {div} || $calc_oper == {mul} || $calc_oper == {min} || $calc_oper == {add} || $calc_oper == {pow} || $calc_oper == {mod} || $calc_oper == {and} || $calc_oper == {or} || $calc_oper == {xor} || $calc_oper == {nand} } then { # Check display value length if {$display == {}} { Sbar [mc "Calculator: Unable to evaluate, missing argument"] return 0 } } # Make backup for display, buffer and operator enable_undo ;# enable UNDO operation set calc_last_display $display set calc_last_buffer $buffer # Load up content of buffer and display read_buffer_inDec read_display_inDec # Perform evaluation in safe environment if {[catch { switch -- $calc_oper { {and} { ;# Bit-wise and set calc_display [expr {wide($calc_buffer) & wide($calc_display)}] } {or} { ;# Bit-wise or set calc_display [expr {wide($calc_buffer) | wide($calc_display)}] } {xor} { ;# Bit-wise xor set calc_display [expr {wide($calc_buffer) ^ wide($calc_display)}] } {right} { ;# Right shift set tmp [expr {wide($calc_display)}] if {$tmp > 0} { set calc_display [expr {wide($calc_buffer) >> $tmp}] } elseif {$tmp < 0} { set calc_display [expr {wide($calc_buffer) << abs($tmp)}] } else { set calc_display [expr {wide($calc_buffer)}] } } {mul} { ;# Multiplication set calc_display [expr {$calc_buffer * $calc_display}] } {min} { ;# Subtraction set calc_display [expr {$calc_buffer - $calc_display}] } {add} { ;# Addtion set calc_display [expr {$calc_buffer + $calc_display}] } {mod} { ;# Modulo set calc_display [expr {int(fmod($calc_buffer,$calc_display))}] } {pow} { ;# Power set calc_display [expr {pow($calc_buffer, $calc_display)}] } {div} { ;# Division if {$calc_display == 0} { Sbar [mc "Calculator: WARNING result is +/- infinity => operation terminated !"] return } if {![regexp {\.} $calc_buffer]} { set calc_buffer "$calc_buffer.0" } set calc_display [expr {$calc_buffer / $calc_display}] } {not} { ;# Bit-wise inversion set len [string length [format {%X} [expr {int($calc_buffer)}]]] if {$len > 8} { Sbar [mc "Calculator: This value is too high to invert (max. 0xFFFFFFFF)"] return } incr len -1 set calc_display [expr {0x7FFFFFFF ^ int($calc_buffer)}] set calc_display [format {%X} $calc_display] set calc_display [string range $calc_display end-$len end] set calc_display [expr "0x$calc_display"] } {Exp} { ;# Exponential of argument set calc_display [expr {exp($calc_buffer)}] } {Sqr} { ;# Square root set calc_display [expr {sqrt($calc_buffer)}] } {Log} { ;# Decimal logarithm set calc_display [expr {log10($calc_buffer)}] } {Ln} { ;# Natiral logarithm set calc_display [expr {log($calc_buffer)}] } {ASin} { ;# Arc sine set calc_display [expr {asin($calc_buffer)}] set calc_display [rad_to_Xangle $calc_display] } {ACos} { ;# Arc cosine set calc_display [expr {acos($calc_buffer)}] set calc_display [rad_to_Xangle $calc_display] } {ATan} { ;# Arc Tangent set calc_display [expr {atan($calc_buffer)}] set calc_display [rad_to_Xangle $calc_display] } {Sin} { ;# Sine set calc_buffer [Xangle_to_rad $calc_buffer] set calc_display [expr {sin($calc_buffer)}] } {Cos} { ;# Cosine set calc_buffer [Xangle_to_rad $calc_buffer] set calc_display [expr {cos($calc_buffer)}] } {Tan} { ;# Arc tangent set calc_buffer [Xangle_to_rad $calc_buffer] set calc_display [expr {tan($calc_buffer)}] } } }]} then { # If error occurred -> show error message Sbar [mc "Calculator: ERROR (result value is out of allowed range)"] return } # If result value contain exponent -> show error message if {[regexp {e} $calc_display]} { Sbar[mc "Calculator: Unable to evaluate, result value is too high"] return } # Display result set calc_buffer {} set after_eval 1 rewrite_buffer calc_opr {} 0 write_display_inXbase $calc_display } ## Safely clear display # @return void public method calc_ClearActual {} { # enable UNDO operation enable_undo # save actual values set calc_last_display [reread_display] set calc_display {} set calc_last_buffer [reread_buffer] # show new values rewrite_display } ## Safely clear display and buffer # @return void public method calc_Clear {} { # enable UNDO operation enable_undo # save actual values set calc_last_display [reread_display] set calc_display {} set calc_last_buffer [reread_buffer] set calc_buffer {} calc_opr {} 0 # show new values rewrite_display rewrite_buffer } ## Enable execution of UNDO operation and disable REDO # @return void private method enable_undo {} { # set status set ena_undo 1 set ena_redo 0 # enable/disable UNDO and REDO buttons enable_buttons {U} disable_buttons {RE} } ## Enable execution of REDO operation and disable UNDO # @return void private method enable_redo {} { # set status set ena_undo 0 set ena_redo 1 # enable/disable UNDO and REDO buttons enable_buttons {RE} disable_buttons {U} } ## Take back the last operation # @return void public method calc_UNDO {} { # enable REDO operation enable_redo # .... set after_eval 0 # save actual status and restore previous calc_opr $calc_last_oper 0 set tmp [reread_display] set calc_display $calc_last_display set calc_last_display $tmp set tmp [reread_buffer] set calc_buffer $calc_last_buffer set calc_last_buffer $tmp # show new values rewrite_display rewrite_buffer # inform user by starts bar Sbar [mc "Calculator: UNDO: previous state was: %s %s %s" $calc_last_buffer $calc_last_oper $calc_last_display] } ## Take back the UNDO operation # @return void public method calc_REDO {} { # enable UNDO operation enable_undo # save actual status and restore previous calc_opr $calc_last_oper 0 set tmp [reread_display] set calc_display $calc_last_display set calc_last_display $tmp set tmp [reread_buffer] set calc_buffer $calc_last_buffer set calc_last_buffer $tmp # show new values rewrite_display rewrite_buffer # inform user by starts bar Sbar [mc "Calculator: REDO: previous state was: %s %s %s" $calc_last_buffer $calc_last_oper $calc_last_display] } ## Convert content of both displays and all merory cells using given command # @parm String command - command to use for converion # @return void private method convert_displays {command} { # Determinate what displays aren't empty if {[reread_display] == {}} {set dis 0} {set dis 1} if {[reread_buffer] == {}} {set buf 0} {set buf 1} # Determinate what memory cells aren't empty for {set i 0} {$i < 3} {incr i} { set mem [[subst -nocommands "\$mem_entry_$i"] get] if {[string index $mem end] == {.}} { append mem 0 } set memory$i $mem if {$mem == {} || $mem == 0} { set mem$i 0 } else { set mem$i 1 } } # Convert all non empty displays foreach cnd [list $dis $buf $mem0 $mem1 $mem2] \ var {calc_display calc_buffer memory0 memory1 memory2} { if {$cnd} { if {[catch { set $var [$command [subst -nocommands "\$$var"]] }]} then { Sbar [mc "Calculator: Value is too high to convert, value deleted !"] set $var 0 } } } # Display new content of memory cells for {set i 0} {$i < 3} {incr i} { [subst -nocommands "\$mem_entry_$i"] delete 0 end [subst -nocommands "\$mem_entry_$i"] insert end [subst -nocommands "\$memory$i"] } } ## Switch numeric base # @return void public method cal_switchBase {} { # Get chosen value set base [subst -nocommands "\$::Calculator::calc_base$calc_idx"] # Convert display content to setected numeric system if {$base == $last_base} { set last_base $base return } # Adjust value in display and buffer if {[regexp {\.0$} $calc_display]} { set calc_display [string range $calc_display 0 {end-2}] } if {[regexp {\.0$} $calc_buffer]} { set calc_buffer [string range $calc_buffer 0 {end-2}] } # Covert content of all displays to new numeric base switch -- $base { {Hex} { ;# to Hexadecimal enable_buttons {0 1 2 3 4 5 6 7 8 9 A B C D E F} switch -- $last_base { {Dec} {convert_displays NumSystem::dec2hex} {Oct} {convert_displays NumSystem::oct2hex} {Bin} {convert_displays NumSystem::bin2hex} } } {Dec} { ;# to Decimal disable_buttons {A B C D E F} enable_buttons {0 1 2 3 4 5 6 7 8 9} switch -- $last_base { {Hex} {convert_displays NumSystem::hex2dec} {Oct} {convert_displays NumSystem::oct2dec} {Bin} {convert_displays NumSystem::bin2dec} } } {Oct} { ;# to Octal disable_buttons {8 9 A B C D E F} enable_buttons {0 1 2 3 4 5 6 7} switch -- $last_base { {Hex} {convert_displays NumSystem::hex2oct} {Dec} {convert_displays NumSystem::dec2oct} {Bin} {convert_displays NumSystem::bin2oct} } } {Bin} { ;# to Binary disable_buttons {2 3 4 5 6 7 8 9 A B C D E F} enable_buttons {0 1} switch -- $last_base { {Hex} {convert_displays NumSystem::hex2bin} {Dec} {convert_displays NumSystem::dec2bin} {Oct} {convert_displays NumSystem::oct2bin} } } } # Display new values rewrite_display rewrite_buffer # set last value set last_base $base } ## Disable buttons specified in the given list # example: disable_buttons {1 2} ;# disable .calc_1_0 and .calc_2_0 # @return void private method disable_buttons {buttons_list} { foreach path $buttons_list { $calc_num_keypad.calc_${path} \ configure -state disabled } } ## Enable buttons specified in the given list # example: enable_buttons {1 2} ;# enable .calc_1_0 and .calc_2_0 # @return void private method enable_buttons {buttons_list} { foreach path $buttons_list { $calc_num_keypad.calc_${path} \ configure -state normal } } ## Switch angle unit # @return void public method cal_switchAngle {} { # Get chosen unit set angle [subst -nocommands "\$::Calculator::calc_angle$calc_idx"] # Convert all displays if {$angle == $last_angle} { set last_angle $angle return } # Convert display if is not empty if {[read_display_inDec] != {}} { write_display_inXbase [Angle::${last_angle}2${angle} $calc_display] } # Convert buffer if is not empty if {[read_buffer_inDec] != {}} { write_buffer_inXbase [Angle::${last_angle}2${angle} $calc_buffer] } # Conver memory cells for {set i 0} {$i <3} {incr i} { # Get memory cell value set mem [[subst -nocommands "\$mem_entry_$i"] get] # Convert to decimal value if {$base != {Dec}} { switch -- $base { {Hex} { ;# from Hexadecimal set mem [NumSystem::hex2dec $mem] } {Oct} { ;# from Octal set mem [NumSystem::oct2dec $mem] } {Bin} { ;# from Binary set mem [NumSystem::bin2dec $mem] } } } # Adjust that value if {[string index $mem end] == {.}} { append mem 0 } # Display new value if {$mem != {}} { set mem [Angle::${last_angle}2${angle} $mem] # Convert to back from decimal value if {$base != {Dec}} { switch -- $base { {Hex} { ;# to Hexadecimal set mem [NumSystem::dec2hex $mem] } {Oct} { ;# to Octal set mem [NumSystem::dec2oct $mem] } {Bin} { ;# to Binary set mem [NumSystem::dec2bin $mem] } } } [subst -nocommands "\$mem_entry_$i"] delete 0 end [subst -nocommands "\$mem_entry_$i"] insert end $mem } } # Set last unit set last_angle $angle } ## Read content of main display in decimal system # @return Float result private method read_display_inDec {} { # get display content if {[reread_display] != {}} { # convert to decimal value if {$base != {Dec}} { switch -- $base { {Hex} { ;# from Hexadecimal set calc_display [NumSystem::hex2dec $calc_display] } {Oct} { ;# from Octal set calc_display [NumSystem::oct2dec $calc_display] } {Bin} { ;# from Binary set calc_display [NumSystem::bin2dec $calc_display] } } } } # done return $calc_display } ## Write the given number (in dec) to main display (in selected base) # @parm Float dec_content - number to display # @return void private method write_display_inXbase {dec_content} { # If selected numeric base isn't Dec -> perform conversion if {$base != {Dec}} { switch -- $base { {Hex} { ;# to Hexadecimal if {[catch { set calc_display [NumSystem::dec2hex $dec_content] }]} then { Sbar [mc "Calculator: ERROR, result is too high (cannot be displayed)"] set calc_display 0 } } {Oct} { ;# to Octal if {[catch { set calc_display [NumSystem::dec2oct $dec_content] }]} then { Sbar [mc "Calculator: ERROR, result is too high (cannot be displayed)"] set calc_display 0 } } {Bin} { ;# to Binary if {[catch { set calc_display [NumSystem::dec2bin $dec_content] }]} then { Sbar [mc "Calculator: ERROR, result is too high (cannot be displayed)"] set calc_display 0 } } } # If selected numeric base is Dec -> do nothing } else { set calc_display $dec_content } # display (new) value rewrite_display } ## Read content of buffer in decimal system # @return Float result private method read_buffer_inDec {} { # Get content buffer display if {[reread_buffer] != {}} { # Convert to decimal value if {$base != {Dec}} { switch -- $base { {Hex} { ;# from Hexadecimal set calc_buffer [NumSystem::hex2dec $calc_buffer] } {Oct} { ;# from Octal set calc_buffer [NumSystem::oct2dec $calc_buffer] } {Bin} { ;# from BInary set calc_buffer [NumSystem::bin2dec $calc_buffer] } } } } # done return $calc_buffer } ## Write the given number (in dec) to buffer display (in selected base) # @parm Float dec_content - number to display # @return void private method write_buffer_inXbase {dec_content} { # If selected numeric base isn't Dec -> perform conversion if {$base != {Dec}} { switch -- $base { {Hex} { ;# to Hexadecimal if {[catch { set calc_buffer [NumSystem::dec2hex $dec_content] }]} then { Sbar [mc "Calculator: ERROR, value is too high"] set calc_buffer 0 } } {Oct} { ;# to Octal if {[catch { set calc_buffer [NumSystem::dec2oct $dec_content] }]} then { Sbar [mc "Calculator: ERROR, value is too high"] set calc_buffer 0 } } {Bin} { ;# to Binary if {[catch { set calc_buffer [NumSystem::dec2bin $dec_content] }]} then { Sbar [mc "Calculator: ERROR, value is too high"] set calc_buffer 0 } } } # If selected numeric base is Dec -> do nothing } else { set calc_buffer $dec_content } # display (new) value rewrite_buffer } ## Write adjusted content of variable calc_display to main display widget # @return void private method rewrite_display {} { # Adust content of source variable if {[regexp {\.0$} $calc_display]} { set calc_display [string range $calc_display 0 {end-2}] } # Show its content set ::Calculator::calc_displ$calc_idx $calc_display } ## Write adjusted content of variable calc_buffer to buffer display widget # @return void private method rewrite_buffer {} { # Adust content of source variable if {[regexp {\.0$} $calc_buffer]} { set calc_buffer [string range $calc_buffer 0 {end-2}] } # Show its content set ::Calculator::calc_buffer$calc_idx $calc_buffer } ## Read true content of main display widget converted # @parm args atf=0 - do not adjust to float # @return Float - content of the main display private method reread_display {{atf 0}} { # Get content of the widget set calc_display [$calc_display_widget get] regsub {\,} $calc_display {.} calc_display # Adjust to float (if requested) if {!$atf} { if {[regexp {^\.} $calc_display]} { set calc_display "0$calc_display" } elseif {[regexp {\.$} $calc_display]} { append calc_display 0 } if {[string first {.} $calc_display] == -1} { append calc_display {.0} } } # Remove trailing '.0' if {[regexp {^\.0$} $calc_display]} { set calc_display {} } # Return result return $calc_display } ## Read true content of buffer display widget converted # @return Float - content of the buffer private method reread_buffer {} { # Get content of the widget set calc_buffer [$calc_buffer_widget get] regsub {\,} $calc_buffer {.} calc_buffer # Adhust to float if {[regexp {^\.} $calc_buffer]} { set calc_buffer "0$calc_buffer" } elseif {[regexp {\.$} $calc_buffer]} { append calc_buffer 0 } if {[string first {.} $calc_buffer] == -1} { append calc_buffer {.0} } # Remove trailing '.0' if {[regexp {^\.0$} $calc_buffer]} { set calc_buffer {} } # Return result return $calc_buffer } ## Covert given angle to current angle unit # @parm Float dec_angle - angle to convert in decimal # @return Float - angle in radians private method Xangle_to_rad {dec_angle} { # If current angle unit isn't radians -> perform converison if {$angle != {rad}} { # From grad if {$angle == {grad}} { set dec_angle [Angle::grad2rad $dec_angle] # From degrees } else { set dec_angle [Angle::deg2rad $dec_angle] } } # return result return $dec_angle } ## Convert given angle in radians to current angle unit # @parm Float dec_angle - angle to conver in radians (decimal) # @return Float - converted angle private method rad_to_Xangle {dec_angle} { # If current angle unit isn't radians -> perform converison if {$angle != {rad}} { # To grad if {$angle == {grad}} { set dec_angle [Angle::rad2grad $dec_angle] # To degrees } else { set dec_angle [Angle::rad2deg $dec_angle] } } # return result return $dec_angle } ## Validate display content # @parm Widget widget - entry widget # @parm String content - content to validate # @return bool - result public method calc_validate {widget content} { # Set default background color for that widget if {$widget == $calc_display_widget} { $widget configure -style Calculator_Display.TEntry } elseif {$widget == $calc_buffer_widget} { $widget configure -style Calculator_Buffer.TEntry } else { $widget configure -style TEntry } # Valid if content is empty set len [string length $content] if {$len == 0 || $content == {-}} { return 1 } # Invalid if content is too wide if {$len > 40} { Sbar [mc "Calculator: ERROR, value is too high"] if {[string length [$widget get]] > 13} { $widget configure -style Calculator_Error.TEntry } return 0 } # Adjust content regsub {\,} $content {.} content if {[regexp {\.$} $content]} { append content 0 } # Check for valid numeric base switch -- $base { {Hex} {set content [NumSystem::ishex $content]} {Dec} {set content [NumSystem::isdec $content]} {Oct} {set content [NumSystem::isoct $content]} {Bin} {set content [NumSystem::isbin $content]} default {set content 0} } # Evaluate filan result if {$content} { if {$len > 13} { $widget configure -style Calculator_Error.TEntry } return 1 } else { Sbar [mc "Calculator: Trying to insert invalid value"] return 0 } } ## Validate content of operator diaplay # @parm String content - string to validate # @return Bool - result of validation public method calc_oper_validate {content} { # Check for length if {[string length $content] > 4} { return 0 } # Check for allowed content switch -- $content { {/} {set calc_oper {div}} {*} {set calc_oper {mul}} {-} {set calc_oper {min}} {+} {set calc_oper {add}} {**} {set calc_oper {pow}} {mod} {set calc_oper {mod}} {&} {set calc_oper {and}} {|} {set calc_oper {or}} {^} {set calc_oper {xor}} {>>} {set calc_oper {right}} {~} {set calc_oper {not}} {e**} {set calc_oper {Exp}} {sqrt} {set calc_oper {Sqr}} {lg} {set calc_oper {Log}} {ln} {set calc_oper {Ln}} {sin} {set calc_oper {Sin}} {cos} {set calc_oper {Cos}} {tan} {set calc_oper {Tan}} {asin} {set calc_oper {ASin}} {acos} {set calc_oper {ACos}} {atan} {set calc_oper {ATan}} default { # Set foteground color to #FF0000 if content is invalid set calc_oper {} $calc_oper_widget configure -style Calculator_OperError.TEntry return 1 } } # Set foreground color to default and return result (True) $calc_oper_widget configure -style Calculator_Oper.TEntry return 1 } ## Negate content of the main display # @return void public method calc_NegateDis {} { # Empty display -> abort if {[reread_display] == {}} { return # Negate value } else { if {[regexp {^\-} $calc_display]} { set calc_display [string range $calc_display 1 end] } else { set calc_display "-$calc_display" } } # Write result rewrite_display } ## Prepare object for creating its GUI # @parm Widget _parent - parent widget (some frame) # @parm List _calculatorList - List of initial values (displays,, memory, radix, angle unit) # @return void public method PrepareCalculator {_parent _calculatorList} { set parent $_parent set calculatorList $_calculatorList set calc_gui_initialized 0 } ## Inform this tab than it has became active # @return void public method CalculatorTabRaised {} { $calc_display_widget selection range 0 end $calc_display_widget icursor end focus $calc_display_widget update idletasks $scrollable_frame yview scroll 0 units } ## Initialize calculator GUI # @return void public method CreateCalculatorGUI {} { if {$calc_gui_initialized} {return} set calc_gui_initialized 1 if {${::DEBUG}} { puts "CreateCalculatorGUI \[ENTER\]" } # Create scrollable area set scrollable_frame [ScrollableFrame $parent.scrollable_frame \ -xscrollcommand "$this calc_gui_scroll_set" \ ] set horizontal_scrollbar [ttk::scrollbar $parent.horizontal_scrollbar \ -orient horizontal -command "$scrollable_frame xview" \ ] pack $scrollable_frame -fill both -side bottom -expand 1 set parent [$scrollable_frame getframe] # LEFT HALF # create numeric keypad set calc_num_keypad [frame $parent.calc_num_keypad] makeKeypad $calc_num_keypad $calculator_keyboard # RIGHT HALF # create display set calc_num_display [frame $parent.calc_num_display] set frame0 [frame $calc_num_display.calc_num_display0] set frame1 [frame $calc_num_display.calc_num_display1] # Buffer display set calc_buffer_widget [ttk::entry $frame0.calc_buffer \ -textvariable ::Calculator::calc_buffer$calc_idx \ -validate key \ -validatecommand [list $this calc_validate %W %P] \ -width 13 \ -style Calculator_Buffer.TEntry \ ] DynamicHelp::add $frame0.calc_buffer -text [mc "Buffer display"] setStatusTip -widget $calc_buffer_widget \ -text [mc "Calculator buffer"] # Operator display set calc_oper_widget [ttk::entry $frame0.calc_oper \ -textvariable ::Calculator::calc_oper$calc_idx \ -validate all \ -width 3 \ -validatecommand [list $this calc_oper_validate %P] \ -style Calculator_Oper.TEntry \ ] DynamicHelp::add $frame0.calc_oper -text [mc "Selected operation"] setStatusTip -widget $calc_oper_widget \ -text [mc "Selected operation"] # Main display set calc_display_widget [ttk::entry $frame0.calc_displ \ -textvariable ::Calculator::calc_displ$calc_idx \ -validate key \ -validatecommand [list $this calc_validate %W %P] \ -width 13 \ -style Calculator_Display.TEntry \ ] DynamicHelp::add $frame0.calc_displ -text [mc "Main display"] setStatusTip -widget $calc_display_widget \ -text [mc "Main display"] # Pack displays pack $calc_buffer_widget -side left pack $calc_oper_widget -side left pack $calc_display_widget -side left # Create binding for displays bind $calc_buffer_widget [list $this calc_Evaluate] bind $calc_oper_widget [list $this calc_Evaluate] bind $calc_display_widget [list $this calc_Evaluate] bind $calc_buffer_widget [list $this calc_Evaluate] bind $calc_oper_widget [list $this calc_Evaluate] bind $calc_display_widget [list $this calc_Evaluate] ## Create: numeric base and angle unit switch + CA + C frame $frame1.lf # Numeric base switch pack [ttk::combobox $frame1.lf.calc_base_CB \ -state readonly \ -values {Hex Dec Oct Bin} \ -textvariable ::Calculator::calc_base$calc_idx \ -width 4 \ ] -side left -padx 2 bind $frame1.lf.calc_base_CB <> "$this cal_switchBase" DynamicHelp::add $frame1.lf.calc_base_CB -text [mc "Numeric base"] setStatusTip -widget $frame1.lf.calc_base_CB \ -text [mc "Numeric base"] # Angle unit switch pack [ttk::combobox $frame1.lf.calc_angle_CB \ -state readonly \ -values {rad deg grad} \ -textvariable ::Calculator::calc_angle$calc_idx \ -width 4 \ ] -side left -padx 2 bind $frame1.lf.calc_angle_CB <> "$this cal_switchAngle" DynamicHelp::add $frame1.lf.calc_angle_CB -text [mc "Angle unit"] setStatusTip -widget $frame1.lf.calc_angle_CB \ -text [mc "Angle unit"] pack $frame1.lf -side left -padx 5 frame $frame1.rf # Button "Clear" pack [ttk::button $frame1.rf.calc_Clear \ -text {C} \ -command [list $this calc_Clear] \ -width 3 \ ] -side left -padx 2 DynamicHelp::add $frame1.rf.calc_Clear \ -text [mc "Clear both displays"] setStatusTip -widget $frame1.rf.calc_Clear \ -text [mc "Clear both displays"] # Button "Clear actual" pack [ttk::button $frame1.rf.calc_Clear_act \ -text {CA} \ -command [list $this calc_ClearActual] \ -width 3 \ ] -side left -padx 2 DynamicHelp::add $frame1.rf.calc_Clear_act \ -text [mc "Clear main display"] setStatusTip -widget $frame1.rf.calc_Clear_act \ -text [mc "Clear main display"] # Button "Negate" pack [ttk::button $frame1.rf.calc_Negate_dis \ -text {+/-} \ -command [list $this calc_NegateDis] \ -width 3 \ ] -side left -padx 2 DynamicHelp::add $frame1.rf.calc_Negate_dis \ -text [mc "Negate value in main display"] setStatusTip -widget $frame1.rf.calc_Negate_dis \ -text [mc "Negate value in main display"] pack $frame1.rf -side right -padx 5 # Create calculator memory cells for {set i 0} {$i < 3} {incr i} { # Determinate ID of target frame set frame_id [frame $calc_num_display.calc_num_display[expr $i + 2]] # Label "Mx:" pack [Label $frame_id.calc_mem_label_${i} \ -text "M$i: " -helptext [mc "Memory bank %s" $i]\ ] -side left setStatusTip -widget $frame_id.calc_mem_label_${i} \ -text [mc "Memory bank %s" $i] # Entry widget set entry [ttk::entry $frame_id.calc_mem_entry_${i} \ -textvariable ::Calculator::calc_mem${i}_${calc_idx} \ -validate all \ -validatecommand [list $this calc_validate %W %P] \ ] DynamicHelp::add $frame_id.calc_mem_entry_${i} -text [mc "Memory bank %s" $i] pack $entry -side left set mem_entry_$i $entry setStatusTip -widget $entry -text [mc "Memory bank %s" $i] # Button "Save" pack [ttk::button $frame_id.calc_mem_save_button_${i} \ -text [mc "Save"] \ -command "$this mem Save $i" \ -width 5 \ ] -side left -padx 2 -pady 2 DynamicHelp::add $frame_id.calc_mem_save_button_${i} \ -text [mc "Save content of main display to this memory bank %s" $i] setStatusTip -widget $frame_id.calc_mem_save_button_${i} \ -text [mc "Save content of main display to this memory bank %s" $i] # Button "Load" pack [ttk::button $frame_id.calc_mem_load_button_${i} \ -text [mc "Load"] \ -command "$this mem Load $i" \ -width 5 \ ] -side left -padx 2 -pady 2 DynamicHelp::add $frame_id.calc_mem_load_button_${i} \ -text [mc "Load content of this bank into main display"] setStatusTip -widget $frame_id.calc_mem_load_button_${i} \ -text [mc "Load content of memory bank %s into calculator main display" $i] } bind $mem_entry_0 "focus $mem_entry_2" bind $mem_entry_0 "focus $mem_entry_1" bind $mem_entry_1 "focus $mem_entry_0" bind $mem_entry_1 "focus $mem_entry_2" bind $mem_entry_2 "focus $mem_entry_1" bind $mem_entry_2 "focus $mem_entry_0" # TIMERS CALC set calc_timers_calc [ttk::labelframe $parent.calc_timers_calc -text [mc "Timers preset"]] makeTimersCalc $calc_timers_calc # INNER INITIALIZATION # pack "left side" of calculator pack $calc_num_keypad -side left # pack "right side" of calculator for {set i 0} {$i < 5} {incr i} { if {$i == 1} { pack $calc_num_display.calc_num_display${i} -pady 10 } else { pack $calc_num_display.calc_num_display${i} } } pack $calc_num_display -side left -padx 10 # pack timres calc pack $calc_timers_calc -side left -expand 0 -anchor nw ## save data given by $calculatorList # "$base $angle $calc_display $calc_oper $calc_buffer $calc_mem0 $calc_mem1 $calc_mem2" set base [lindex $calculatorList 0] set angle [lindex $calculatorList 1] if { $base != {Hex} && $base != {Dec} && $base != {Oct} && $base != {Bin} } then { set base [lindex ${X::project_edit_defaults} {3 1}] puts stderr [mc "Invalid numerical base: '%s'" $base] } if {$angle != {rad} && $angle != {deg} && $angle != {grad}} { puts stderr [mc "Invalid angle unit: '%s'" $angle] set angle [lindex ${X::project_edit_defaults} {4 1}] } set ::Calculator::calc_base$calc_idx $base set ::Calculator::calc_angle$calc_idx $angle set last_base $base set last_angle $angle # Enable/Disable buttons on numeric keypad switch -- $base { {Hex} { enable_buttons {0 1 2 3 4 5 6 7 8 9 A B C D E F} disable_buttons {U RE}} {Dec} { enable_buttons {0 1 2 3 4 5 6 7 8 9} disable_buttons {A B C D E F U RE}} {Oct} { enable_buttons {0 1 2 3 4 5 6 7} disable_buttons {8 9 A B C D E F U RE}} {Bin} { enable_buttons {0 1} disable_buttons {2 3 4 5 6 7 8 9 A B C D E F U RE}} } # Fill displays set calc_display [lindex $calculatorList 2] rewrite_display calc_opr [lindex $calculatorList 3] 0 set calc_buffer [lindex $calculatorList 4] rewrite_buffer set ::Calculator::calc_mem0_$calc_idx [lindex $calculatorList 5] set ::Calculator::calc_mem1_$calc_idx [lindex $calculatorList 6] set ::Calculator::calc_mem2_$calc_idx [lindex $calculatorList 7] # Set frequenci and mode in timers calculator set freq [lindex $calculatorList 8] set mode [lindex $calculatorList 10] if {$freq == {} || [regexp {^\d\+$} $freq] || $freq < 0 || $freq > 99999} { set freq 12000 } if {$mode != 0 && $mode != 1 && $mode != 2} { set mode 0 } $timerscalc_freq_entry insert 0 $freq $timerscalc_time_entry insert 0 [lindex $calculatorList 9] $timerscalc_mode_spinbox delete 0 end $timerscalc_mode_spinbox insert 0 $mode # Unset teportary variables unset parent unset calculatorList } ## Get calculator list for later initialization # @return List - resulting list of values public method get_calculator_list {} { if {!$calc_gui_initialized} {CreateCalculatorGUI} return [list $base $angle \ [$calc_display_widget get] \ $calc_oper \ [$calc_buffer_widget get] \ [subst -nocommands "\$::Calculator::calc_mem0_$calc_idx"] \ [subst -nocommands "\$::Calculator::calc_mem1_$calc_idx"] \ [subst -nocommands "\$::Calculator::calc_mem2_$calc_idx"] \ [$timerscalc_freq_entry get] \ [$timerscalc_time_entry get] \ [$timerscalc_mode_spinbox get]] } ## Validate and evaluate content of Frequency entry (timers calculator) # @parm String content - String to validate (and evaluate) # @return Bool - result of validation public method calc_timerscalc_freq_validate {content} { # If validation disabled -> abort if {$timerscalc_validation_dis} { return 1 } # Ignore empty value if {$content == {}} { return 1 } # If content is decimal number (max 5. digits) -> evaluate and return True if {[regexp {^\d+(\.\d*)?$} $content] && ([string length $content] < 9)} { calc_timerscalc_evaluate \ $content \ [$timerscalc_time_entry get] \ [$timerscalc_mode_spinbox get] \ return 1 } # Otherwise -> return False Sbar [mc "Calculator - timers preset: you are trying to insert an invalid value"] return 0 } ## Validate and evaluate content of Mode entry (timers calculator) # @parm String content - String to validate (and evaluate) # @return Bool - result of validation public method calc_timerscalc_mode_validate {content} { # If validation disabled -> abort if {$timerscalc_validation_dis} { return 1 } # If the given value is one of {0 1 2} the evaluate and return True if {[regexp {^\d?$} $content]} { if {$content > 2} { return 0 } calc_timerscalc_evaluate \ [$timerscalc_freq_entry get] \ [$timerscalc_time_entry get] \ $content return 1 } # Otherwise -> return False Sbar [mc "Calculator - timers preset: you are trying to insert an invalid value"] return 0 } ## Validate and evaluate content of Time entry (timers calculator) # @parm String content - String to validate (and evaluate) # @return Bool - result of validation public method calc_timerscalc_time_validate {content} { # If validation disabled -> abort if {$timerscalc_validation_dis} { return 1 } # If content is decimal number (max 9. digits) -> evaluate and return True if {[regexp {^\d*$} $content] && ([string length $content] < 10)} { calc_timerscalc_evaluate \ [$timerscalc_freq_entry get] \ $content \ [$timerscalc_mode_spinbox get] return 1 } # Otherwise -> return False Sbar [mc "Calculator - timers preset: you are trying to insert an invalid value"] return 0 } ## Highlight result of timer preset calculator # @parm Bool valid - highlight for valid results # @return void private method calc_timerscalc_highlight {valid} { # List of widgets to highlight set widgets " $timerscalc_THxDec_label $timerscalc_THxHex_label $timerscalc_THxOct_label $timerscalc_TLxDec_label $timerscalc_TLxHex_label $timerscalc_TLxOct_label $timerscalc_RepeatDec_label $timerscalc_RepeatHex_label $timerscalc_RepeatOct_label $timerscalc_CorrectionDec_label $timerscalc_CorrectionHex_label $timerscalc_CorrectionOct_label " # Perform highlighting if {$valid} { foreach widget $widgets { $widget configure -state normal } } else { foreach widget $widgets { $widget configure -state disabled } } } ## Evaluate tmers preset (timers preset calculator) # @parm Int freq - Frequency # @parm Int time - Time in miliseconds # @parm Int mode - Mode {0 1 2} # @return Bool - Resulting status private method calc_timerscalc_evaluate {freq time mode} { # Set default results set TLx 0 set THx 0 set repeat 0 set correction 0 # Remove leading dot from the frequency value set freq [string trimright $freq {.}] # Check for validity of given values if {$freq == {} || $freq == 0 || $time == {} || $mode == {} } { set mode {invalid} } else { # Compute time in machine cycles set time [expr {int($time * ($freq / 12000.0))}] } # Perform computation for the given mode switch -- $mode { 0 { # Determinate apparent number of repeats set repeat [expr {($time >> 13) + 1}] # Compute tempotary results if {[expr {!($time & 0x1FFF)}]} { incr repeat -1 set stepsPerIter 0x1FFF } else { set stepsPerIter [expr {$time / $repeat}] set tmp [expr {0x2000 - $stepsPerIter}] set TLx [expr {$tmp & 0x1F}] set THx [expr {$tmp >> 5}] set correction [expr {$time - ((0x1FFF - $tmp) * $repeat)}] } } 1 { # Determinate apparent number of repeats set repeat [expr {($time >> 16) + 1}] # Compute tempotary results if {[expr {!($time & 0xFFFF)}]} { incr repeat -1 set stepsPerIter 0xFFFF } else { set stepsPerIter [expr {$time / $repeat}] set tmp [expr {0x10000 - $stepsPerIter}] set TLx [expr {$tmp & 0xFF}] set THx [expr {$tmp >> 8}] set correction [expr {$time - ((0x10000 - $tmp) * $repeat)}] } } 2 { # Determinate apparent number of repeats set repeat [expr {($time >> 8) + 1}] # Compute tempotary results if {[expr {!($time & 0xFF)}]} { incr repeat -1 set stepsPerIter 0xFF } else { set stepsPerIter [expr {$time / $repeat}] set TLx [expr {0x100 - $stepsPerIter}] set THx $TLx set correction [expr {$time - ((0xFF - $THx) * $repeat)}] } } {invalid} { ;# Invalid input data calc_timerscalc_highlight 0 } default { ;# Something went wrong error "Calculator error: Invalid timer mode $mode" return 0 } } # If pre-computation was performed succesfully -- finish the results if {$mode != {invalid}} { # Highlight results as valid calc_timerscalc_highlight 1 # Perform correction if {$correction >= $stepsPerIter} { incr repeat [expr {$correction / $stepsPerIter}] set correction [expr {$correction % $stepsPerIter}] } } # Check for allowed length of results (string representation) if { [string length [format "%o" $repeat]] > 6 || [string length [format "%o" $correction]] > 6 } then { set TLx 0 set THx 0 set repeat 0 set correction 0 calc_timerscalc_highlight 0 Sbar [mc "Calculator: Unable to evaluate, result value is too high"] } ## Write results # THx values $timerscalc_THxDec_label configure -text $THx $timerscalc_THxHex_label configure -text [format "%X" $THx] $timerscalc_THxOct_label configure -text [format "%o" $THx] # TLx values $timerscalc_TLxDec_label configure -text $TLx $timerscalc_TLxHex_label configure -text [format "%X" $TLx] $timerscalc_TLxOct_label configure -text [format "%o" $TLx] # Repeat values $timerscalc_RepeatDec_label configure -text $repeat $timerscalc_RepeatHex_label configure -text [format "%X" $repeat] $timerscalc_RepeatOct_label configure -text [format "%o" $repeat] # Correction values $timerscalc_CorrectionDec_label configure -text $correction $timerscalc_CorrectionHex_label configure -text [format "%X" $correction] $timerscalc_CorrectionOct_label configure -text [format "%o" $correction] return 1 } ## Create widgets of timers preset calculator # @parm widget parent - parent contaner (some frame) # @return void private method makeTimersCalc {parent} { # TOP HALF set top_frame [frame $parent.calc_timerscalc_top_frame] # frequency grid [label $top_frame.calc_timerscalc_freq_label \ -text [mc "Frequency \[kHz\]"] \ ] -row 0 -column 0 -sticky w set timerscalc_freq_entry [ttk::entry \ $top_frame.calc_timerscalc_freq_entry \ -width 5 \ -validate all \ -validatecommand "$this calc_timerscalc_freq_validate %P" \ ] grid $timerscalc_freq_entry -row 0 -column 1 -sticky we # mode grid [label $top_frame.calc_timerscalc_mode_label \ -text [mc "Mode"] \ ] -row 0 -column 2 -sticky w set timerscalc_mode_spinbox [ttk::spinbox \ $top_frame.calc_timerscalc_mode_spinbox \ -from 0 -to 2 -width 1 -validate key \ -validatecommand "$this calc_timerscalc_mode_validate %P" \ -command "$this calc_timerscalc_mode_validate \[$top_frame.calc_timerscalc_mode_spinbox get\]" ] grid $timerscalc_mode_spinbox -row 0 -column 3 -sticky we # time grid [label $top_frame.calc_timerscalc_time_label \ -text [mc "Time \[us\]"] \ ] -row 1 -column 0 -sticky w set timerscalc_time_entry [ttk::entry \ $top_frame.calc_timerscalc_time_entry \ -width 8 \ -validate all \ -validatecommand "$this calc_timerscalc_time_validate %P" \ ] grid $timerscalc_time_entry -row 1 -column 1 -sticky we -columnspan 3 # BOTTOM HALF set bottom_frame [frame $parent.calc_timerscalc_bottom_frame] # "dec" "hex" "oct" grid [label $bottom_frame.calc_timerscalc_dec_label \ -text [mc "DEC"] -font $::smallfont -anchor e \ -highlightthickness 0 \ ] -row 0 -column 1 -ipadx 12 grid [label $bottom_frame.calc_timerscalc_hex_label \ -text [mc "HEX"] -font $::smallfont -anchor e \ -highlightthickness 0 \ ] -row 0 -column 2 -ipadx 12 grid [label $bottom_frame.calc_timerscalc_oct_label \ -text [mc "OCT"] -font $::smallfont -anchor e \ -highlightthickness 0 \ ] -row 0 -column 3 -ipadx 12 # "THx" "TLx" "Repeat" "Correction" grid [label $bottom_frame.calc_timerscalc_thx_label \ -text "THx" \ ] -row 1 -column 0 -sticky w grid [label $bottom_frame.calc_timerscalc_tlx_label \ -text "TLx" \ ] -row 2 -column 0 -sticky w grid [label $bottom_frame.calc_timerscalc_repeat_label \ -text [mc "Repeats"] \ ] -row 3 -column 0 -sticky w grid [label $bottom_frame.calc_timerscalc_correction_label \ -text [mc "Correction"] \ ] -row 4 -column 0 -sticky w # THx values set timerscalc_THxDec_label [label \ $bottom_frame.calc_timerscalc_THxDec_label \ -text "0" -disabledforeground {#AAAAAA} -fg {#000033} \ ] set timerscalc_THxHex_label [label \ $bottom_frame.calc_timerscalc_THxHex_label \ -text "0" -disabledforeground {#AAAAAA} -fg {#000033} \ ] set timerscalc_THxOct_label [label \ $bottom_frame.calc_timerscalc_THxOct_label \ -text "0" -disabledforeground {#AAAAAA} -fg {#000033} \ ] # TLx values set timerscalc_TLxDec_label [label \ $bottom_frame.calc_timerscalc_TLxDec_label \ -text "0" -disabledforeground {#AAAAAA} -fg {#000033} \ ] set timerscalc_TLxHex_label [label \ $bottom_frame.calc_timerscalc_TLxHex_label \ -text "0" -disabledforeground {#AAAAAA} -fg {#000033} \ ] set timerscalc_TLxOct_label [label \ $bottom_frame.calc_timerscalc_TLxOct_label \ -text "0" -disabledforeground {#AAAAAA} -fg {#000033} \ ] # Repeat values set timerscalc_RepeatDec_label [label \ $bottom_frame.calc_timerscalc_RepeatDec_label \ -text "0" -disabledforeground {#AAAAAA} -fg {#000033} \ ] set timerscalc_RepeatHex_label [label \ $bottom_frame.calc_timerscalc_RepeatHex_label \ -text "0" -disabledforeground {#AAAAAA} -fg {#000033} \ ] set timerscalc_RepeatOct_label [label \ $bottom_frame.calc_timerscalc_RepeatOct_label \ -text "0" -disabledforeground {#AAAAAA} -fg {#000033} \ ] # Correction values set timerscalc_CorrectionDec_label [label \ $bottom_frame.calc_timerscalc_CorrectionDec_label \ -text "0" -disabledforeground {#AAAAAA} -fg {#000033} \ ] set timerscalc_CorrectionHex_label [label \ $bottom_frame.calc_timerscalc_CorrectionHex_label \ -text "0" -disabledforeground {#AAAAAA} -fg {#000033} \ ] set timerscalc_CorrectionOct_label [label \ $bottom_frame.calc_timerscalc_CorrectionOct_label \ -text "0" -disabledforeground {#AAAAAA} -fg {#000033} \ ] # Show widgets grid $timerscalc_THxDec_label -row 1 -column 1 -sticky e grid $timerscalc_THxHex_label -row 1 -column 2 -sticky e grid $timerscalc_THxOct_label -row 1 -column 3 -sticky e grid $timerscalc_TLxDec_label -row 2 -column 1 -sticky e grid $timerscalc_TLxHex_label -row 2 -column 2 -sticky e grid $timerscalc_TLxOct_label -row 2 -column 3 -sticky e grid $timerscalc_RepeatDec_label -row 3 -column 1 -sticky e grid $timerscalc_RepeatHex_label -row 3 -column 2 -sticky e grid $timerscalc_RepeatOct_label -row 3 -column 3 -sticky e grid $timerscalc_CorrectionDec_label -row 4 -column 1 -sticky e grid $timerscalc_CorrectionHex_label -row 4 -column 2 -sticky e grid $timerscalc_CorrectionOct_label -row 4 -column 3 -sticky e # Make widgets in table as small as possible foreach widget " $bottom_frame.calc_timerscalc_dec_label $bottom_frame.calc_timerscalc_hex_label $bottom_frame.calc_timerscalc_oct_label $bottom_frame.calc_timerscalc_thx_label $bottom_frame.calc_timerscalc_tlx_label $bottom_frame.calc_timerscalc_repeat_label $bottom_frame.calc_timerscalc_correction_label $timerscalc_THxDec_label $timerscalc_THxHex_label $timerscalc_THxOct_label $timerscalc_TLxDec_label $timerscalc_TLxHex_label $timerscalc_TLxOct_label $timerscalc_RepeatDec_label $timerscalc_RepeatHex_label $timerscalc_RepeatOct_label $timerscalc_CorrectionDec_label $timerscalc_CorrectionHex_label $timerscalc_CorrectionOct_label " { $widget configure -bd 0 -relief raised -pady 0 -highlightthickness 0 } # Pack frames pack $top_frame -padx 5 -pady 2 pack $bottom_frame -padx 5 -pady 2 # Highlight calculator results as invalid calc_timerscalc_highlight 0 set timerscalc_validation_dis 0 } ## Create calculator keypad # @parm widget parent - target contaner (some frame) # @parm List definition - keypad definition (see class header) # @return void private method makeKeypad {parent definition} { # Local variables set row 0 ;# Current row in the grid # Oterate over row definitions in the given keypad definition foreach line $definition { # Local variables set col 0 ;# current column in the grid # Iterate over button definitions in the row foreach item $line { if {$item == "separator"} {continue} # Inicalize array of button features for {set i 0} {$i < 13} {incr i} { set parm($i) [lindex $item $i] } if {[lsearch -ascii -exact {A B C D E} $parm(0)] != -1} { incr col } # Initialize default values for some items foreach i {3 4 7} { if {$parm($i) == {}} {set parm($i) 1} } if {$parm(6) == {}} {set parm(6) 2} if {$parm(8) == {}} {set parm(8) 0} if {$parm(9) == {}} {set parm(9) {#FFFFFF}} if {$parm(10) == {}} {set parm(10) {#FFFFFF}} if {[string index $parm(9) 0] == {#}} { set parm(9) {Calculator} } # Set button ID set path "$parent.calc_$parm(1)" # Create button ttk::button $path \ -text $parm(0) \ -command "$this $parm(2)" \ -width $parm(6) \ -style $parm(9).TButton # -activebackground $parm(10) \ # -height $parm(7) \ DynamicHelp::add $path -text [mc $parm(5)] # Confugure button # if {$parm(11) == 1} {$path configure -font $large_font -pady 2} if {$parm(12) != {}} { setStatusTip -widget $path -text [mc $parm(12)] } if {$parm(3) > 1} { set sticky {we} } elseif {$parm(4) > 1} { set sticky {ns} } else { set sticky {} } # Show button grid $path \ -columnspan $parm(3) \ -rowspan $parm(4) \ -sticky $sticky \ -padx 2 \ -pady 2 \ -column $col \ -row $row # Incremet number of current column incr col $parm(3) } # Incremet number of current row incr row } grid columnconfigure $parent 4 -minsize 10 } ## Adjust scrollbar for scrollable area # @parm Float frac0 - 1st fraction # @parm Float frac0 - 2nd fraction # @return void public method calc_gui_scroll_set {frac0 frac1} { # Hide scrollbar if {$frac0 == 0 && $frac1 == 1} { if {[winfo ismapped $horizontal_scrollbar]} { pack forget $horizontal_scrollbar update } # Show scrollbar } else { if {![winfo ismapped $horizontal_scrollbar]} { pack $horizontal_scrollbar -fill x -side top -before $scrollable_frame } $horizontal_scrollbar set $frac0 $frac1 update } } } # >>> File inclusion guard } # <<< File inclusion guard mcu8051ide-1.4.7/lib/bottompanel/graph.tcl0000644000175000017500000006173712067167647021014 0ustar milleniummillenium#!/usr/bin/tclsh # Part of MCU 8051 IDE ( http://mcu8051ide.sf.net ) ############################################################################ # Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012 by Martin Ošmera # # martin.osmera@gmail.com # # # # This program is free software; you can redistribute it and#or modify # # it under the terms of the GNU General Public License as published by # # the Free Software Foundation; either version 2 of the License, or # # (at your option) any later version. # # # # This program is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU General Public License for more details. # # # # You should have received a copy of the GNU General Public License # # along with this program; if not, write to the # # Free Software Foundation, Inc., # # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # ############################################################################ # >>> File inclusion guard if { ! [ info exists _GRAPH_TCL ] } { set _GRAPH_TCL _ # <<< File inclusion guard # -------------------------------------------------------------------------- # DESCRIPTION # Graph panel in the bottom panel - shows states of ports # -------------------------------------------------------------------------- source "${::LIB_DIRNAME}/bottompanel/graph_wdg.tcl" ;# Graph widget class Graph { ## COMMON # Bool: The message: "Performance warning" was already displayed to the user common performance_warning_already_shown 0 # Bool: show performance warning when enabling external HW simulation common show_sim_per_warn ${::CONFIG(SHOW_PALE_WARN)} # Variables related to object initialization private variable data_list ;# Teportary variable -- Configuration list private variable graph_gui_initialized 0 ;# Bool: GUI created private variable parent ;# Parent widget private variable grid_mode {b} ;# Current grid mode (one of {b n x y}) private variable drawing_on 0 ;# Bool: Graph enabled private variable magnification 0 ;# Magnification level (0..3) private variable active_page {} ;# String: ID of currently active page private variable start_stop_button ;# Widget: Button "ON"/"OFF" private variable zoom_in_button ;# Widget: Button "Zoom in" private variable zoom_out_button ;# Widget: Button "Zoom out" private variable clear_marks_button ;# Widget: Button "Clear marks" private variable grid_button ;# Widget: Button "Change grid" private variable pages_manager ;# Widget: Pages manager for graph widgets private variable nb_state_frame ;# Widget: Frame containing graph "True state" private variable nb_latches_frame ;# Widget: Frame containing graph "Latches" private variable nb_output_frame ;# Widget: Frame containing graph "True Output" private variable state_but ;# Widget: Button "True state" private variable latches_but ;# Widget: Button "Latches" private variable output_but ;# Widget: Button "True Output" private variable graph_state ;# Object: Graph widget representing "True state" private variable graph_latches ;# Object: Graph widget representing "Latches" private variable graph_output ;# Object: Graph widget representing "True Output" private variable graph_state_created 0 ;# Bool: GUI of object $graph_state created private variable graph_latches_created 0 ;# Bool: GUI of object $graph_latches created private variable graph_output_created 0 ;# Bool: GUI of object $graph_output created ## Object constructor constructor {} { # Configure localy used ttk styles ttk::style configure Graph_ActiveTab.TButton \ -background {#AAAAFF} \ -padding 0 \ -borderwidth 1 ttk::style map Graph_ActiveTab.TButton \ -background [list active {#DDDDFF}] \ -foreground [list active {#0000DD} !active {#000000}] } ## Object destructor destructor { } ## Prepare object for creating its GUI # @parm Widget Parent - GUI parent widget # @parm List _data_list - Configuration data list # @return void public method PrepareGraph {Parent _data_list} { set parent $Parent set data_list $_data_list set graph_gui_initialized 0 # Enable or disable PALE $this pale_on_off [lindex $data_list 2] } ## Inform this tab than it has became active # @return void public method GraphTabRaised {} { } ## Initialize graph # @return void public method CreateGraphGUI {} { if {$graph_gui_initialized} {return} set graph_gui_initialized 1 if {${::DEBUG}} { puts "CreateGraphGUI \[ENTER\]" } # Create panel frames set top_bar [frame $parent.top_bar -bg {#CCCCCC}] ;# Buttons for switching pages set bottom_frame [frame $parent.bottom_frame] ;# Graphs set left_bar [frame $bottom_frame.left_bar] ;# Button bar on the left ## Create button bar # Button "Enable/Disable" set start_stop_button [ttk::button $left_bar.start_stop_button \ -command "$this graph_change_status_on" \ -width 3 \ ] DynamicHelp::add $left_bar.start_stop_button \ -text [mc "Turn graph on/off"] setStatusTip -widget $start_stop_button -text [mc "Enable/Disable graph"] bind $start_stop_button "$this graph_change_status_on; break" pack $start_stop_button -anchor n # Separator pack [ttk::separator $left_bar.sep0 -orient horizontal] -fill x -pady 2 # Button "Change grid mode" set grid_button [ttk::button $left_bar.grid_button \ -style Flat.TButton \ -image ::ICONS::16::grid1 \ -command "$this graph_switch_grid_mode 1" \ ] DynamicHelp::add $grid_button -text [mc "Change grid"] setStatusTip -widget $grid_button -text [mc "Change grid morphology"] pack $grid_button -anchor n bind $grid_button "$this graph_switch_grid_mode 1; break" bind $grid_button "$this graph_switch_grid_mode -1; break" # Separator pack [ttk::separator $left_bar.sep1 -orient horizontal] -fill x -pady 2 # Button "Zoom in" set zoom_in_button [ttk::button $left_bar.zoom_in_button \ -image ::ICONS::16::viewmag_in \ -command "$this graph_zoom_in" \ -style Flat.TButton \ ] DynamicHelp::add $zoom_in_button -text [mc "Change bit length on X axis to a lower value"] setStatusTip -widget $zoom_in_button -text [mc "Zoom in (X axis)"] pack $zoom_in_button # Button "Zoom out" set zoom_out_button [ttk::button $left_bar.zoom_out_button \ -image ::ICONS::16::viewmag_out \ -command "$this graph_zoom_out" \ -style Flat.TButton \ ] DynamicHelp::add $zoom_out_button -text [mc "Change bit length on X axis to a higher value"] setStatusTip -widget $zoom_out_button -text [mc "Zoom out (X axis)"] pack $zoom_out_button # Separator pack [ttk::separator $left_bar.sep2 -orient horizontal] -fill x -pady 2 # Button "Clear marks" set clear_marks_button [ttk::button $left_bar.clear_marks_button \ -image ::ICONS::16::editdelete \ -command "$this graph_clear_marks" \ -style Flat.TButton \ ] DynamicHelp::add $clear_marks_button -text [mc "Clear user marks"] setStatusTip -widget $clear_marks_button -text [mc "Clear marks"] pack $clear_marks_button # Create graphs set pages_manager [PagesManager $bottom_frame.pages_manager -background ${::COMMON_BG_COLOR}] set nb_state_frame [$pages_manager add {state}] set nb_latches_frame [$pages_manager add {latches}] set nb_output_frame [$pages_manager add {output}] ## Create buttons # Button "True state" set state_but [ttk::button $top_bar.state_but \ -text [mc "True state"] \ -image ::ICONS::16::dot_g \ -command "$this Graph_set_active_page {state}" \ -compound left \ -style Flat.TButton \ ] pack $state_but -side left -pady 0 -ipady 0 -padx 1 # Button "Port Latches" set latches_but [ttk::button $top_bar.latches_but \ -text [mc "Port latches"] \ -compound left \ -image ::ICONS::16::dot \ -command "$this Graph_set_active_page {latches}" \ -style Flat.TButton \ ] pack $latches_but -side left -pady 0 -ipady 0 -padx 1 # Button "True Output" set output_but [ttk::button $top_bar.output_but \ -text [mc "True output"] \ -compound left \ -image ::ICONS::16::dot_r \ -command "$this Graph_set_active_page {output}" \ -style Flat.TButton \ ] pack $output_but -side left -pady 0 -ipady 0 -padx 1 # Button "Show legend" set help_but [ttk::button $top_bar.help_but \ -text [mc "Legend"] \ -command "$this Graph_show_legend" \ -style Flat.TButton \ ] pack $help_but -side left -pady 0 -ipady 0 -padx 1 set graph_state [GraphWidget #auto $nb_state_frame $this] set graph_latches [GraphWidget #auto $nb_latches_frame $this] set graph_output [GraphWidget #auto $nb_output_frame $this] pack $top_bar -anchor nw -ipady 1 pack $left_bar -anchor n -side left pack [ttk::separator $bottom_frame.sep -orient vertical] -fill y -side left -padx 1 pack $pages_manager -fill both -expand 1 -side left pack $bottom_frame -fill both -expand 1 # Adjust configuration to the given datalist set grid_mode [lindex $data_list 0] set magnification [lindex $data_list 1] set drawing_on [lindex $data_list 2] set mark_flags_s [lindex $data_list 3] set mark_flags_l [lindex $data_list 4] set mark_flags_o [lindex $data_list 5] set active_page [lindex $data_list 6] # Validate the loaded confiuration foreach mark_flags {mark_flags_s mark_flags_l mark_flags_o} { set mark_flags_data [subst -nocommands "\$$mark_flags"] if {[string index $mark_flags_data 0] == {X}} { set mark_flags_data [string range $mark_flags_data 1 end] if { [string length $mark_flags_data] != 43 || ![string is xdigit $mark_flags_data] } then { puts stderr "Invalid graph mark flags -- discarded" set $mark_flags [string repeat {0 } 170] } else { set bin [::NumSystem::hex2bin $mark_flags_data] set len [string length $bin] if {$len < 170} { set bin "[string repeat {0} [expr {170 - $len}]]$bin" } set $mark_flags [split $bin {}] } } else { if { ![regexp {^[01]+$} $mark_flags_data] || [string bytelength $mark_flags_data] != 170 } then { puts stderr "Invalid graph mark flags -- discarded" set $mark_flags [string repeat {0 } 170] } else { set $mark_flags [split $mark_flags_data {}] } } } if { $magnification != {0} && $magnification != {1} && $magnification != {2} && $magnification != {3} } then { puts stderr "Invalid graph magnification level -- setting to default" set magnification 0 } if {$drawing_on != {0} && $drawing_on != {1}} { puts stderr "Invalid graph on/off flag -- setting to 'on'" set drawing_on 1 } if { $grid_mode != {b} && $grid_mode != {n} && $grid_mode != {y} && $grid_mode != {x} } then { puts stderr "Invalid graph grid mode -- setting to 'y'" set grid_mode {y} } if {[lsearch -ascii -exact {state latches output} $active_page] == -1} { puts stderr "Invalid graph active page -- setting to 'state'" set active_page {state} } set mark_flags [list $mark_flags_s $mark_flags_l $mark_flags_o] set i 0 foreach obj [list $graph_state $graph_latches $graph_output] { $obj graph_set_data \ $grid_mode \ $magnification \ $drawing_on \ [lindex $mark_flags $i] incr i } adjust_mag_buttons adjust_on_off_button adjust_grid_button # Unset tempotary variables unset data_list Graph_set_active_page $active_page } ## Show legend for graph # @return void public method Graph_show_legend {} { # Destroy legend window if {[winfo exists .graph_help_win]} { grab release .graph_help_win destroy .graph_help_win return } set win_x [expr {[winfo pointerx .] + 10}] set win_y [winfo pointery .] # Create legend window set win [toplevel .graph_help_win -class {Help} -bg ${::COMMON_BG_COLOR}] set frame [frame $win.f -bg {#555555} -bd 0 -padx 1 -pady 1] wm overrideredirect $win 1 # Click to close bind $win "grab release $win; destroy $win" # Create header "-- click to close --" pack [label $frame.lbl_header \ -text [mc "-- click to close --"] \ -bg {#FFFF55} -font $::smallfont \ -fg {#000000} -anchor c \ ] -side top -anchor c -fill x # Create canvas widget set canvas [canvas $frame.canvas\ -bg {#FFFFFF} \ -takefocus 0 \ -cursor left_ptr \ -bd 0 -relief flat \ -width 1 -height 1 \ ] pack $frame -fill both -expand 1 # Fill in the canvas widget Graph_create_legend $canvas 0 # Show the canvas pack $canvas -side bottom -fill both -expand 1 # Show the window wm geometry $win "=260x135+$win_x+$win_y" update catch { grab -global $win } } ## Fill in the specified canvas widget to contain the graph legend # @parm Widget canvas - Target canvas widget # @parm Bool nc_instead_of_X - Show "Not connected" instead of "Access to external memory" # @return void public method Graph_create_legend {canvas nc_instead_of_X} { set x 10 # {=} Log. 1 forced to log. 0 $canvas create line $x 20 [expr {$x + 20}] 20 -fill {#FF00AA} -width 2 incr x 20 # {} Not connected if {$nc_instead_of_X} { $canvas create line $x 20 $x 15 -fill {#FF00AA} -width 2 $canvas create line $x 15 [expr {$x + 20}] 15 -fill {#000000} -width 2 # {X} Access to external memory } else { $canvas create rectangle $x 20 \ [expr {$x + 20}] 15 \ -fill {#00FF00} -width 0 -outline {#00FF00} $canvas create rectangle $x 15 \ [expr {$x + 20}] 10 \ -fill {#FF0000} -width 0 -outline {#FF0000} } incr x 20 # {-} Indeterminable state $canvas create line $x 15 \ [expr {$x + 5}] 11 \ [expr {$x + 10}] 15 \ [expr {$x + 15}] 17 \ [expr {$x + 20}] 14 -fill {#FF8800} -width 2 incr x 20 # {?} No voltage $canvas create line $x 15 [expr {$x + 20}] 15 -fill {#888888} -width 2 incr x 20 # {1} Log. 1 $canvas create line $x 15 $x 10 [expr {$x + 20}] 10 [expr {$x + 20}] 15 -fill {#FF0000} -width 2 incr x 20 # {0} Log. 0 $canvas create line $x 15 $x 20 [expr {$x + 20}] 20 -fill {#00FF00} -width 2 incr x 20 ## Descriptions # {=} Log. 1 forced to log. 0 $canvas create line 20 23 20 100 30 100 \ -fill {#000000} -arrow first -arrowshape {6 6 2} $canvas create text 30 100 -fill {#000000} -anchor w \ -text [mc "Log. 1 forced to log. 0"] \ -font $::smallfont # {} Not connected if {$nc_instead_of_X} { set tmp_txt [mc "Not connected"] # {X} Access to external memory } else { set tmp_txt [mc "Access to external memory"] } $canvas create line 40 23 40 86 50 86 \ -fill {#000000} -arrow first -arrowshape {6 6 2} $canvas create text 50 86 -fill {#000000} -anchor w \ -text $tmp_txt -font $::smallfont # {-} Indeterminable state $canvas create line 60 23 60 72 70 72 \ -fill {#000000} -arrow first -arrowshape {6 6 2} $canvas create text 70 72 -fill {#000000} -anchor w \ -text [mc "Indeterminable state"] -font $::smallfont # {?} No voltage $canvas create line 80 23 80 58 90 58 \ -fill {#000000} -arrow first -arrowshape {6 6 2} $canvas create text 90 58 -fill {#000000} -anchor w \ -text [mc "No voltage"] -font $::smallfont # {1} Log. 1 $canvas create line 100 23 100 44 110 44 \ -fill {#000000} -arrow first -arrowshape {6 6 2} $canvas create text 110 44 -fill {#000000} -anchor w \ -text [mc "Log. 1"] -font $::smallfont # {0} Log. 0 $canvas create line 120 23 120 30 130 30 \ -fill {#000000} -arrow first -arrowshape {6 6 2} $canvas create text 130 30 -fill {#000000} -anchor w \ -text [mc "Log. 0"] -font $::smallfont } ## Create GUI for the specified tab # @parm String page - Tab ID # @return void public method Graph_create_tab {page} { switch -- $page { {state} { ;# Tab: True state if {!$graph_state_created} { set graph_state_created 1 $graph_state CreateGraphGUI } } {latches} { ;# Tab: Port Latches if {!$graph_latches_created} { set graph_latches_created 1 $graph_latches CreateGraphGUI } } {output} { ;# Tab: True Output if {!$graph_output_created} { set graph_output_created 1 $graph_output CreateGraphGUI } } } } ## Set current active page # @parm String page - Tab ID # @return void public method Graph_set_active_page {page} { set active_page $page Graph_create_tab $page $pages_manager raise $page # Adjust buttons on the top foreach w [list $state_but $latches_but $output_but] { $w configure -style Flat.TButton } switch -- $page { {state} { ;# Tab: True state $state_but configure -style Graph_ActiveTab.TButton } {latches} { ;# Tab: Port Latches $latches_but configure -style Graph_ActiveTab.TButton } {output} { ;# Tab: True Output $output_but configure -style Graph_ActiveTab.TButton } } } ## Draw interrupt line # @parm String nh={} - If "nohistory" the history of interrupt lines will not be modified # @return void public method graph_draw_interrupt_line {{nh {}}} { if {!$graph_gui_initialized} {CreateGraphGUI} create_all_graph_widgets $graph_state graph_draw_interrupt_line $nh $graph_latches graph_draw_interrupt_line $nh $graph_output graph_draw_interrupt_line $nh } ## Draw new port states in the graph # @parm String target - Target Graph, one of {S L O} # @parm List values - Values to display ... # @return void public method graph_new_output_state {target values} { if {!$graph_gui_initialized} {CreateGraphGUI} create_all_graph_widgets switch -- $target { {S} { ;# Tab: True state $graph_state graph_new_output_state $values } {L} { ;# Tab: Port Latches $graph_latches graph_new_output_state $values } {O} { ;# Tab: True Output $graph_output graph_new_output_state $values } } } ## Adjust magnification buttons to the current magnification level # @return void private method adjust_mag_buttons {} { # The lowest possible magnification level if {!$magnification} { $zoom_in_button configure -state normal $zoom_out_button configure -state disabled # The highest possible magnification level } elseif {$magnification == 3} { $zoom_in_button configure -state disabled $zoom_out_button configure -state normal # Something in the middle } else { $zoom_in_button configure -state normal $zoom_out_button configure -state normal } } ## Switch between ON and OFF # @return void public method graph_change_status_on {} { set drawing_on [expr {!$drawing_on}] graph_commit_state_on_off # Show performance warning if {$show_sim_per_warn && !$performance_warning_already_shown && $drawing_on} { set performance_warning_already_shown 1 if {[winfo exists .performance_warning_dialog]} { destroy .performance_warning_dialog } set dialog [toplevel .performance_warning_dialog] set top_frame [frame $dialog.top] pack [label $top_frame.img -image ::ICONS::32::messagebox_info] -side left -padx 5 pack [label $top_frame.txt -text [mc "You have just enabled simulation of external devices. Having this feature enabled causes serious reduction of simulator performance, the number of instructions executed per second in real time usually decreases by a factor of hundreds, maybe even thousands."] -wraplength 300 -justify left] -side left -fill both -padx 5 set bottom_frame [frame $dialog.bottom] pack [checkbutton $bottom_frame.chb \ -text [mc "Do not display again"] \ -onvalue 0 \ -offvalue 1 \ -variable ::Graph::show_sim_per_warn \ ] -anchor e -pady 5 pack [ttk::button $bottom_frame.button_ok \ -text [mc "Ok"] -compound left \ -image ::ICONS::16::ok \ -command "grab release $dialog; destroy $dialog"\ ] -pady 10 bind $bottom_frame.button_ok "grab release $dialog; destroy $dialog" bind $bottom_frame.button_ok "grab release $dialog; destroy $dialog" # Pack window frames pack $top_frame -expand 1 -padx 5 -pady 5 pack $bottom_frame -padx 5 -fill x # Window manager options -- modal window wm iconphoto $dialog ::ICONS::16::info wm title $dialog [mc "Performance warning"] wm resizable $dialog 0 0 wm transient $dialog . catch {grab $dialog} wm protocol $dialog WM_DELETE_WINDOW " grab release $dialog destroy $dialog " raise $dialog update focus -force $bottom_frame.button_ok tkwait window $dialog } } ## Commit new ON/OFF state # @return void public method graph_commit_state_on_off {} { create_all_graph_widgets $graph_state commit_state_on_off $drawing_on $graph_latches commit_state_on_off $drawing_on $graph_output commit_state_on_off $drawing_on adjust_mag_buttons adjust_on_off_button } ## Adjust apparence of all "ON/OFF" buttons in the PALE system # @return void private method adjust_on_off_button {} { $this pale_on_off $drawing_on # ON if {$drawing_on} { $start_stop_button configure -style GreenBg.TButton -text [mc "ON"] $grid_button configure -state normal $clear_marks_button configure -state normal # OFF } else { $start_stop_button configure -style RedBg.TButton -text [mc "OFF"] $zoom_in_button configure -state disabled $zoom_out_button configure -state disabled $grid_button configure -state disabled $clear_marks_button configure -state disabled } } ## Adjust apparence of all "Grid" buttons in the PALE system # @return void private method adjust_grid_button {} { # Adjust button in button bar and canvas popup menu switch -- $grid_mode { {b} {set image {grid0}} {n} {set image {grid1}} {y} {set image {grid2}} {x} {set image {grid3}} } $grid_button configure -image ::ICONS::16::$image } ## Zoom in/out # @parm Int by - Steps # @return void public method graph_switch_grid_mode {by} { create_all_graph_widgets # Determinate number of the current grid mode set i [lsearch {b n y x} $grid_mode] # Increment by '$by' incr i $by while {$i > 3} { incr i -4 } while {$i < 0} { incr i 4 } # Set new grid mode set grid_mode [lindex {b n y x} $i] adjust_grid_button $graph_state graph_switch_grid_mode $grid_mode $graph_latches graph_switch_grid_mode $grid_mode $graph_output graph_switch_grid_mode $grid_mode } ## Zoom out # @return void public method graph_zoom_out {} { if {!$magnification} {return} incr magnification -1 commit_magnification } ## Zoom in # @return void public method graph_zoom_in {} { if {$magnification == 3} {return} incr magnification commit_magnification } ## Commit new magnification level # @return void private method commit_magnification {} { create_all_graph_widgets $graph_state commit_magnification $magnification $graph_latches commit_magnification $magnification $graph_output commit_magnification $magnification # Adjust states of magnification buttons adjust_mag_buttons } ## Clear graph marks in the the current graph # @return void public method graph_clear_marks {} { switch -- $active_page { {state} { ;# Tab: True state $graph_state graph_clear_marks } {latches} { ;# Tab: Port Latches $graph_latches graph_clear_marks } {output} { ;# Tab: True Output $graph_output graph_clear_marks } } } ## Clear all graphs # @return void public method clear_graph {} { create_all_graph_widgets $graph_state clear_graph $graph_latches clear_graph $graph_output clear_graph } ## Create GUI of all graphs # @return void private method create_all_graph_widgets {} { if {!$graph_gui_initialized} {CreateGraphGUI} Graph_create_tab state Graph_create_tab latches Graph_create_tab output } ## Get graph configuration values -- for project save # @return List - Configuration list public method graph_get_config {} { if {!$graph_gui_initialized} {CreateGraphGUI} create_all_graph_widgets return [list $grid_mode $magnification $drawing_on \ [$graph_state graph_get_marks] \ [$graph_latches graph_get_marks] \ [$graph_output graph_get_marks] \ $active_page \ ] } ## Try to restore graph state before the given number of program steps # @parm Int bits - Number of steps to take back # @return void public method graph_stepback {bits} { if {!$graph_gui_initialized} {CreateGraphGUI} if {!$drawing_on} {return} create_all_graph_widgets $graph_state graph_stepback $bits $graph_latches graph_stepback $bits $graph_output graph_stepback $bits } ## React to MCU change # @return void public method graph_change_mcu {} { if {$graph_state_created} { $graph_state change_mcu } if {$graph_latches_created} { $graph_latches change_mcu } if {$graph_output_created} { $graph_output change_mcu } } } # >>> File inclusion guard } # <<< File inclusion guard mcu8051ide-1.4.7/lib/bottompanel/cvarsview.tcl0000644000175000017500000011427112067167647021714 0ustar milleniummillenium#!/usr/bin/tclsh # Part of MCU 8051 IDE ( http://mcu8051ide.sf.net ) ############################################################################ # Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012 by Martin Ošmera # # martin.osmera@gmail.com # # # # This program is free software; you can redistribute it and#or modify # # it under the terms of the GNU General Public License as published by # # the Free Software Foundation; either version 2 of the License, or # # (at your option) any later version. # # # # This program is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU General Public License for more details. # # # # You should have received a copy of the GNU General Public License # # along with this program; if not, write to the # # Free Software Foundation, Inc., # # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # ############################################################################ # >>> File inclusion guard if { ! [ info exists _CVARSVIEW_TCL ] } { set _CVARSVIEW_TCL _ # <<< File inclusion guard # -------------------------------------------------------------------------- # DESCRIPTION # Provides GUI interface designed for the bottom panel to show and # manipulate contents of variables in a running C program on simulated 8051 # -------------------------------------------------------------------------- class CVarsView { ## COMMON # Normal font fot the text widget common text_wdg_font_n [font create \ -family $::DEFAULT_FIXED_FONT \ -size [expr {int(-12 * $::font_size_factor)}] \ -weight normal \ -slant roman \ ] # Bold font for the text widget common text_wdg_font_b [font create \ -family $::DEFAULT_FIXED_FONT \ -size [expr {int(-12 * $::font_size_factor)}] \ -weight bold \ -slant roman \ ] # Italic font for the text widget common text_wdg_font_i [font create \ -family $::DEFAULT_FIXED_FONT \ -size [expr {int(-12 * $::font_size_factor)}] \ -weight normal \ -slant italic \ ] # Background color for selected lines common color_selected_line {#CCCCFF} private variable main_frame ;# Widget: Main frame # Variables related to object initialization private variable parent ;# Widget: parent widget private variable cvv_gui_initialized 0 ;# Bool: GUI initialized private variable panedwindow ;# Widget: Paned window for local and global variables # Int: Last paned window sash position private variable panel_sash_position [lindex $::CONFIG(C_VARS_VIEW_CONF) 0] private variable local_variables_nlist {} ;# List of Strings: Names of all local variables private variable local_variables {} ;# List of Lists: Detail definition of all local variables private variable local_addresses {} ;# List of Lists: Addresses of all local variables private variable local_addresses_list {} ;# List of Lists: {scope name level block} private variable global_variables_nlist {} ;# List of Strings: Names of all global variables private variable global_variables {} ;# List of Lists: Detail definition of all global variables private variable global_addresses {} ;# List of Lists: Addresses of all global variables private variable global_addresses_list {} ;# List of Lists: {scope name level block} private variable global_displayed {} ;# List of Integers: Indexes of displayed variables private variable help_window_frame {} ;# Widget: Main frame for the help window private variable text_widget_local ;# Widget: Text widget for local variables private variable text_widget_global ;# Widget: Text widget for global variables private variable current_level {} ;# Int: Current code level (determinated by simulator) private variable current_block {} ;# Int: Current code level (determinated by simulator) private variable validation_ena 1 ;# Bool: Entries validation and synchronization enabled private variable search_entry_Local ;# Widget: Search entry for local variables private variable search_clear_Local ;# Widget: Clear button for search entry box for local variables private variable search_entry_Global ;# Widget: Search entry for global variables private variable search_clear_Global ;# Widget: Clear button for search entry box for global variables private variable search_val_in_progress 0 ;# Bool: Search is in progress private variable selected_line_global 0 ;# Int: Number of currently selected line in global variables (0 == nothig selected) private variable selected_line_local 0 ;# Int: Number of currently selected line in local variables (0 == nothig selected) constructor {} { } destructor { } ## Prepare object for creating its GUI # @parm Widget _parent - GUI parent widget # @return void public method PrepareCVarsView {_parent} { set parent $_parent set cvv_gui_initialized 0 } ## Inform this tab than it has became active # @return void public method CVarsViewTabRaised {} { } ## Create GUI of this tab # @return void public method CreateCVarsViewGUI {} { if {$cvv_gui_initialized} {return} set cvv_gui_initialized 1 if {${::DEBUG}} { puts "CreateCVarsViewGUI \[ENTER\]" } ## Create GUI of main frame set main_frame [frame $parent.main_frame] set panedwindow [panedwindow $main_frame.pw \ -sashwidth 5 -showhandle 0 \ -opaqueresize 1 -orient horizontal \ ] # Create part containing local variables set pane [create_list_of_variables Local] # $panedwindow add $pane # $panedwindow paneconfigure $pane -minsize 200 # Create part containing global variables set pane [create_list_of_variables Global] $panedwindow add $pane $panedwindow paneconfigure $pane -minsize 200 # Pack main GUI parts of the panel pack $panedwindow -fill both -expand 1 pack $main_frame -fill both -expand 1 # Restore sash position cvarsview_redraw_pane # Load CDB file if simulator is engaged and C language is used if {[$this cget -programming_language] && [$this is_frozen]} { set filename [$this simulator_get_cdb_filename] if {[catch { set file [open $filename r] }]} then { tk_messageBox \ -parent . \ -icon warning \ -type ok \ -title [mc "Permission denied"] \ -message [mc "Unable to read file\n'%s'"] $filename } else { cvarsview_load_cdb $file close $file } } } ## Restore paned window sash position # @return void public method cvarsview_redraw_pane {} { if {!$cvv_gui_initialized} {return} # update idletasks # $panedwindow sash place 0 $panel_sash_position 0 } ## Get panel configuration list # @return List - Panel config public method cvarsview_get_config {} { if {$cvv_gui_initialized} { # set panel_sash_position [lindex [$panedwindow sash coord 0] 0] } return [list $panel_sash_position] } ## Search for certain variable by its name # @parm String type - Basic variable type specification ("Global" or "Local") # @parm String string - Variable name # @return Bool - allways 1 public method cvarsview_search {type string} { # Lock this function if {$search_val_in_progress} {return 0} set search_val_in_progress 1 # Empty string given if {![string length $string]} { [subst -nocommands "\$search_entry_$type"] configure -style TEntry [subst -nocommands "\$search_clear_$type"] configure -state disabled set search_val_in_progress 0 return 1 } [subst -nocommands "\$search_clear_$type"] configure -state normal ## Perform search set idx 0 set found 0 # Global variable if {$type == {Global}} { foreach name $global_variables_nlist { if {![string first $string $name] && [lsearch $global_displayed $idx] != -1} { set found 1 break } incr idx } # Local variable } else { } # Variable found if {$found} { cvarsview_select_line $type [expr {[lsearch $global_displayed $idx] + 1}] 1 [subst -nocommands "\$search_entry_$type"] configure -style StringFound.TEntry # Variable not found } else { [subst -nocommands "\$search_entry_$type"] configure -style StringNotFound.TEntry } # Unlock this function set search_val_in_progress 0 return 1 } ## Select line in the text widget # @parm String type - Basic variable type specification ("Global" or "Local") # @parm Int line_number - Number of line to select (1 .. infinity) # @parm Bool nofocus - Do not focus the entrybox # @return void public method cvarsview_select_line {type line_number nofocus} { cvarsview_unselect_line $type # Line with a global variable if {$type == {Global}} { set max [llength $global_displayed] if {$line_number > $max} { return } set selected_line_global $line_number $text_widget_global tag add tag_current_line $line_number.0 $line_number.0+1l $text_widget_global see $line_number.0 incr line_number -1 set eid [lindex $global_displayed $line_number] $text_widget_global.e_$eid configure \ -bg $color_selected_line \ -disabledbackground $color_selected_line if {!$nofocus} { focus $text_widget_global.e_$eid } # Line with a local variable } else { } } ## Unselect line in the text widget # @parm String type - Basic variable type specification ("Global" or "Local") # @return void public method cvarsview_unselect_line {type} { # View with a global variable if {$type == {Global}} { if {$selected_line_global != 0} { incr selected_line_global -1 $text_widget_global.e_[lindex $global_displayed $selected_line_global] configure \ -bg white -disabledbackground white } $text_widget_global tag remove tag_current_line 0.0 end set selected_line_global 0 # View with a local variable } else { } } ## Select line above the current one # @parm Bool isglobal - Global scope # @parm Int lines - Distance # @return void public method cvarsview_selection_up {isglobal lines} { if {$isglobal} { if {$selected_line_global == 0} { return } set max [llength $global_displayed] set target_line $selected_line_global incr target_line -$lines while {$target_line < 1} { incr target_line $max } cvarsview_select_line Global $target_line 0 } } ## Select line below the current one # @parm Bool isglobal - Global scope # @parm Int lines - Distance # @return void public method cvarsview_selection_down {isglobal lines} { if {$isglobal} { if {$selected_line_global == 0} { return } set max [llength $global_displayed] set target_line $selected_line_global incr target_line $lines while {$target_line > $max} { incr target_line -$max } cvarsview_select_line Global $target_line 0 } } ## Open the helpwindow for certain variable # @parm Int id - Variable ID # @parm Bool isglobal - Related to global scope variable # @return void public method cvarsview_create_help_window {id isglobal} { # set help_window_frame [frame .cvarsview_help_window -bg {#BBBBFF}] # # if {$isglobal} { # set variable_def [lindex $global_variables $id] # pack [label $help_window_frame.header \ # -text [lindex $variable_def 1] \ # -bg {#BBBBFF} \ # ] -anchor w # # set var_det_frame [frame $help_window_frame.details_frame -bg {#FFFFFF}] # pack $var_det_frame -fill both -padx 2 -pady 2 # # grid [label $var_det_frame.value_lbl \ # -text "Value:" \ # ] -row 0 -column 0 -columnspan 3 -sticky w # # } # # # lappend global_variables [list \ # # $scope $name \ # # [lindex $type_record 0] [lindex $type_record end] \ # # [lrange $type_record 1 end-1] $address_space \ # # $onstack $stack \ # # $registers 0 \ # # 0 \ # # ] } ## Move with the help window # @parm Bool isglobal - Related to global scope variable # @parm Int X - Absolute X position # @parm Int Y - Absolute Y position # @return void public method cvarsview_help_window_move {isglobal X Y} { if {[winfo exists $help_window_frame]} { incr X 10 incr Y 10 place $help_window_frame -x $X -y $Y -anchor sw raise $help_window_frame } } ## Hide the help window # @parm Bool isglobal - Related to global scope variable # @return void public method cvarsview_help_window_hide {isglobal} { if {[winfo exists $help_window_frame]} { destroy $help_window_frame } } ## Create panel with list of global or local variables # @parm String type - Basic variable type specification ("Global" or "Local") # @return void private method create_list_of_variables {type} { set local_frame [frame $main_frame.var_${type}_frame] # Create the top frame set top_frame [frame $local_frame.top_frame] pack [label $top_frame.header \ -text [mc "$type static scalar variables"] \ -anchor w -justify left \ ] -side left # Create search frame set search_frame [frame $top_frame.search_frame] pack [label $search_frame.search_lbl \ -text [mc "Search:"] \ ] -side left set search_entry_$type [ttk::entry $search_frame.search_ent \ -validate all \ -validatecommand "$this cvarsview_search $type %P" \ ] pack $search_frame.search_ent -side left set search_clear_$type [ttk::button $search_frame.search_clr_but\ -image ::ICONS::16::clear_left \ -style Flat.TButton \ -command "$search_frame.search_ent delete 0 end" \ -state disabled \ ] pack $search_frame.search_clr_but -side left # Pack top frame pack $search_frame -side right pack $top_frame -fill x -anchor nw # Create the text widget set text_frame [frame $local_frame.text_frame] set text_frame_main [frame $text_frame.main_frame -bd 1 -relief sunken] if {$type == {Local}} { set text [mc "Value Level Data type Variable name"] } else { set text [mc "Value Data type Variable name"] } pack [label $text_frame_main.header \ -font $text_wdg_font_b -justify left \ -text $text \ -bd 0 -relief flat -bg white -anchor w \ ] -fill x -anchor w -padx 0 -pady 0 pack [ttk::separator $text_frame_main.sep \ -orient horizontal \ ] -fill x set text_widget [text $text_frame_main.text \ -bg white -exportselection 0 -bd 0 \ -width 0 -height 0 -relief flat \ -font $text_wdg_font_n \ -yscrollcommand "$text_frame.scrollbar set" \ -state disabled \ -cursor left_ptr \ ] bind $text_widget <> "false_selection $text_widget; break" bind $text_widget "$this cvarsview_select_line $type \[expr {int(\[%W index @%x,%y\])}\] 0" bind $text_widget
{break} bind $text_widget {break} pack $text_widget -fill both -expand 1 pack $text_frame_main -fill both -expand 1 -side left pack [ttk::scrollbar $text_frame.scrollbar \ -command "$text_widget yview" \ -orient vertical \ ] -fill y -side right -after $text_frame_main pack $text_frame -fill both -expand 1 if {$type == {Local}} { set text_widget_local $text_widget } else { set text_widget_global $text_widget } # Create text tags $text_widget tag configure tag_current_line -background $color_selected_line $text_widget tag configure tag_variable -font $text_wdg_font_b $text_widget tag configure tag_datatype -font $text_wdg_font_i return $local_frame } ## Load CDB file (debugging file generated by SDCC) # @parm File cdb_file - Opened CDB file # @return Bool - True in success public method cvarsview_load_cdb {cdb_file} { if {!$cvv_gui_initialized} {CreateCVarsViewGUI} set result 1 set local_variables_nlist {} set local_variables_list {} set local_variables {} set local_addresses {} set local_addresses_list {} set global_variables_nlist {} set global_variables {} set global_addresses {} set global_addresses_list {} # Parse linker and symbol records while {![eof $cdb_file]} { set line [gets $cdb_file] set subtype [string index $line 2] switch -- [string index $line 0] { {S} { ;# Symbol record if {$subtype != {G} && $subtype != {L} && $subtype != {F}} { continue } if {![symbol_record $subtype [string range $line 3 end]]} { set result 0 } } {L} { ;# Linker record if {$subtype != {G} && $subtype != {L} && $subtype != {F}} { continue } if {![link_address_of_symbol $subtype [string range $line 3 end]]} { set result 0 } } default { continue } } } # Initialize list of displayed global variables set global_displayed {} # Clear search entries $search_entry_Global delete 0 end # Adjust lists of addresses evaluate_lists_of_addresses # Clear the viewers cvarsview_clear_view local cvarsview_clear_view global # Load gained informations into the viewers cvarsview_load_global_variables return $result } ## Adjust lists of addresses # @see cvarsview_load_cdb # Translate each start address to list of address of all registers occupied by the variable # @return void private method evaluate_lists_of_addresses {} { # Process global vaiables set global_addresses_new {} set global_variables_new {} set global_variables_nlist_new {} foreach start_address $global_addresses name $global_addresses_list { set name [lindex $name 1] set idx [lsearch $global_variables_nlist $name] set addresses {} set lenght 0 if {$idx == -1} { puts stderr "CVarsView::evaluate_lists_of_addresses :: Unknown error 0" continue } set glob_var_def [lindex $global_variables $idx] set length [lindex $glob_var_def 2] for {set i 0} {$i < $length} {incr i} { lappend addresses $start_address incr start_address } lappend global_addresses_new $addresses lappend global_variables_new $glob_var_def lappend global_variables_nlist_new $name } set global_addresses $global_addresses_new set global_variables $global_variables_new set global_variables_nlist $global_variables_nlist_new # Process local vaiables } ## Handle symbol record # @see cvarsview_load_cdb # @parm Char subtype - Variable scope ('G' == Global; 'L' == Local; 'F' == File) # @parm String record - Record data # @return Bool - True on success private method symbol_record {subtype record} { set scope {} set name {} set level {} set block {} set type_record {} set address_space {} set onstack {} set stack {} set registers {} if {$subtype == {F}} { set subtype {G} } set dolar_idx [string first {$} $record] if {$dolar_idx == -1} {return 0} set scope [string range $record 0 [expr {$dolar_idx - 1}]] set record [string replace $record 0 $dolar_idx] set dolar_idx [string first {$} $record] if {$dolar_idx == -1} {return 0} set name [string range $record 0 [expr {$dolar_idx - 1}]] set record [string replace $record 0 $dolar_idx] set dolar_idx [string first {$} $record] if {$dolar_idx == -1} {return 0} set level [string range $record 0 [expr {$dolar_idx - 1}]] set record [string replace $record 0 $dolar_idx] set bracket_idx [string first {(} $record] if {$bracket_idx == -1} {return 0} set block [string range $record 0 [expr {$bracket_idx - 1}]] set record [string replace $record 0 $bracket_idx] set bracket_idx [string first {)} $record] if {$bracket_idx == -1} {return 0} set type_record [string range $record 1 [expr {$bracket_idx - 1}]] set type_record [split $type_record {\{\},:}] set record [string replace $record 0 [expr {$bracket_idx + 1}]] set comma_idx [string first {,} $record] if {$comma_idx == -1} {return 0} set address_space [string range $record 0 [expr {$comma_idx - 1}]] set record [string replace $record 0 $comma_idx] set comma_idx [string first {,} $record] if {$comma_idx == -1} {return 0} set onstack [string range $record 0 [expr {$comma_idx - 1}]] set record [string replace $record 0 $comma_idx] set comma_idx [string first {,} $record] if {$comma_idx == -1} { set comma_idx [string length $record] } set stack [string range $record 0 [expr {$comma_idx - 1}]] if {$record != {}} { set record [string replace $record 0 $comma_idx] set registers [split [string range $record 1 end-1] {,}] } if {$subtype == {G}} { lappend global_variables_nlist $name lappend global_variables [list \ $scope $name \ [lindex $type_record 0] [lindex $type_record end] \ [lrange $type_record 1 end-1] $address_space \ $onstack $stack \ $registers 0 \ 0 \ ] } else { lappend local_variables_nlist $name lappend local_variables_list [list $level $block] lappend local_variables [list \ $scope $name \ [lindex $type_record 0] [lindex $type_record end] \ [lrange $type_record 1 end-1] $address_space \ $onstack $stack \ $registers $level \ $block \ ] } return 1 } ## Handle linker record # @see cvarsview_load_cdb # @parm Char subtype - Variable scope ('G' == Global; 'L' == Local; 'F' == File) # @parm String record - Record data # @return Bool - True on success private method link_address_of_symbol {subtype record} { set scope {} set name {} set level {} set block {} set address {} if {$subtype == {F}} { set subtype {G} } set dolar_idx [string first {$} $record] if {$dolar_idx == -1} {return 0} set scope [string range $record 0 [expr {$dolar_idx - 1}]] set record [string replace $record 0 $dolar_idx] set dolar_idx [string first {$} $record] if {$dolar_idx == -1} {return 0} set name [string range $record 0 [expr {$dolar_idx - 1}]] set record [string replace $record 0 $dolar_idx] set dolar_idx [string first {$} $record] if {$dolar_idx == -1} {return 0} set level [string range $record 0 [expr {$dolar_idx - 1}]] set record [string replace $record 0 $dolar_idx] set colon_idx [string first {:} $record] if {$colon_idx == -1} {return 0} set block [string range $record 0 [expr {$colon_idx - 1}]] set address [string replace $record 0 $colon_idx] if {$subtype == {G}} { set addresses_lst {global_addresses} set addresses_list_lst {global_addresses_list} } else { set addresses_lst {local_addresses} set addresses_list_lst {local_addresses_list} } lappend $addresses_lst [expr "0x$address"] lappend $addresses_list_lst [list $scope $name $level $block] return 1 } ## Clear the specified viewer # @parm String type - "Local" or "Global" # @return void public method cvarsview_clear_view {type} { if {!$cvv_gui_initialized} {CreateCVarsViewGUI} if {$type == {local}} { set text_widget $text_widget_local set current_level {} set current_block {} } else { set text_widget $text_widget_global } $text_widget configure -state normal $text_widget delete 1.0 end $text_widget configure -state disabled } ## Create variable record in the viewer # @parm Int id - Variable ID (an unique number) # @parm String name - Variable name # @parm Int level - Block level # @parm Bool isglobal - Is variable in global sope # @parm Int isvector - Is variable a vector # @parm Int start_address - Variable start address # @parm Int end_address - Variable end address # @parm Char memory_type - Type of memory where is the variable stored (see SDCC manual for more) # @parm Bool signed - Is variable signed (has meaning only for integers) # @parm String datatype - List describing data type (e.g. {SI DA2} is an array of two integers) # @return void private method create_variable_record {id name level isglobal isvector start_address end_address memory_type signed datatype} { set data_type {} set dt_func {} set pointer { } if {$isglobal} { set text_widget $text_widget_global } else { set text_widget $text_widget_local } if {$start_address == {}} { puts "Error: start_address is empty: create_variable_record [list is=$id name=$name level=$level isglobal=$isglobal isvector=$isvector start_address=$start_address end_address=$end_address memory_type=$memory_type signed=$signed datatype=$datatype]" return } foreach dt $datatype { switch -glob -- $dt { {DA*} { ;# Array of elements set argument [string replace $dt 0 1] return } {ST*} { ;# Structure of name set argument [string replace $dt 0 1] return } {SB*} { ;# Bit field of bits set argument [string replace $dt 0 1] return } {SX} { ;# Sbit set data_type {sbit} } {DG} { ;# Generic pointer set pointer {*} } {DC} { ;# Code pointer set pointer {*} } {DX} { ;# External ram pointer set pointer {*} } {DD} { ;# Internal ram pointer set pointer {*} } {DP} { ;# Paged pointer set pointer {*} } {DI} { ;# Upper 128 byte pointer set pointer {*} } {DF} { ;# Function set dt_func {>> } } {SL} { ;# Long integer if {$signed == {U}} { set data_type {ulong} } else { set data_type {long} } } {SI} { ;# Integer if {$signed == {U}} { set data_type {uint} } else { set data_type {int} } } {SC} { ;# Char if {$signed == {U}} { set data_type {uchar} } else { set data_type {char} } } {SS} { ;# Short integer if {$signed == {U}} { set data_type {ushort} } else { set data_type {short} } } {SV} { ;# Void set data_type {void} } {SF} { ;# Float set data_type {float} } } } if {!$isglobal} { set level_str [string repeat { } [expr {7 - [string length $level]}]] append level_str $level { } $text_widget insert insert $level_str } $text_widget configure -state normal set entry [create_embedded_entry $text_widget $id $isglobal $start_address] if {$data_type == {float}} { $entry configure -state readonly } $text_widget window create insert -window $entry -pady 0 set data_type "${dt_func}${data_type}${pointer}" set data_type "[string repeat { } [expr {12 - [string length $data_type]}]]$data_type" set tag_indexes {} lappend tag_indexes [$text_widget index insert] $text_widget insert insert $data_type lappend tag_indexes [$text_widget index insert] $text_widget insert insert { } lappend tag_indexes [$text_widget index insert] $text_widget insert insert $name lappend tag_indexes [$text_widget index insert] $text_widget insert insert "\n" $text_widget tag add tag_datatype [lindex $tag_indexes 0] [lindex $tag_indexes 1] $text_widget tag add tag_variable [lindex $tag_indexes 2] [lindex $tag_indexes 3] $text_widget configure -state disabled } ## Create embeddable entry box for representing variable value # @parm Widget target_widget - Target text widget # @parm Int id - Variable ID (an unique number) # @parm Bool isglobal - Is variable in global scope # @parm Int start_address - Variable start address # @return Widget - Created entry box private method create_embedded_entry {target_widget id isglobal start_address} { lappend global_displayed $id # Create entry widget set entry [entry $target_widget.e_$id \ -width 11 -font $text_wdg_font_b \ -bg {#FFFFFF} -validate key \ -takefocus 0 -highlightthickness 0 \ -bd 0 -justify right \ -disabledbackground {#FFFFFF} \ -fg ${::Simulator::normal_color} \ -validatecommand [list $this cvarsview_validate $id $isglobal $start_address %P] \ ] $entry insert insert 0 if {$isglobal} { set type {Global} } else { set type {Local} } # Set event bindings bind $entry "$this cvarsview_select_line $type [expr {$id + 1}] 1" bind $entry "$this cvarsview_selection_up $isglobal 1" bind $entry "$this cvarsview_selection_down $isglobal 1" bind $entry "$this cvarsview_selection_down $isglobal 4" bind $entry "$this cvarsview_selection_up $isglobal 4" bind $entry "$this cvarsview_help_window_move $isglobal %X %Y" bind $entry "$this cvarsview_help_window_hide $isglobal" bind $entry "$this cvarsview_create_help_window $id $isglobal" bind $entry "%W configure -fg ${::Simulator::normal_color}" bind $entry "$target_widget yview scroll -5 units" bind $entry "$target_widget yview scroll +5 units" # Return entry reference return $entry } ## Load definded global variables into the viewer # @return void public method cvarsview_load_global_variables {} { set id 0 foreach variable_def $global_variables { set isvector 0 set idx [lsearch $global_addresses_list [list \ [lindex $variable_def 0] [lindex $variable_def 1] \ [lindex $variable_def 9] [lindex $variable_def 10] \ ] \ ] if {$idx == -1} { continue } set start_address [lindex $global_addresses [list $idx 0]] set end_address [lindex $global_addresses [list $idx end]] create_variable_record \ $id [lindex $variable_def 1] {} 1 \ $isvector $start_address $end_address \ [lindex $variable_def 5] \ [lindex $variable_def 3] \ [lindex $variable_def 4] incr id } } ## Load definded global variables into the viewer # TODO: This function is not implemented yet # @return void # @parm Int level - Variable level # @parm Int block - Program block # @return void public method cvarsview_load_local_variables {level block} { return if {$current_level == $level && $current_block == $block} { return } set current_level $level set current_block $block set idx [lsearch -ascii -exact $local_variables_list [list $level $block]] if {$idx == -1} { return 0 } set variable_def [lindex $local_variables $idx] return 1 } ## Validator for entryboxes representing variable values # @parm Int id - Variable ID (an unique number) # @parm Bool isglobal - Variable is in the global scope # @parm Int address - Vaiable start address # @parm String string - String to validate # @return Bool - Validation result public method cvarsview_validate {id isglobal address string} { set value $string set negative 0 set min_value 0 set max_value 0 if {!$validation_ena} {return 1} set validation_ena 0 if {$isglobal} { set definition [lindex $global_variables $id] } else { set validation_ena 1 return 0 ;# <-- DEBUG } if {$address == {}} { error "Unknown address" } set datatype [lindex $definition 4] set mem_type [lindex $definition 5] set len [lindex $definition 2] set signed [lindex $definition 3] if {$signed == {S}} { set signed 1 } else { set signed 0 } # Check for valid characters if {$signed} { if {[string index $string 0] == {-}} { set negative 1 set value [string replace $string 0 0] } } if {$value == {}} { set validation_ena 1 return 1 } if {![string is digit -strict $value]} { set validation_ena 1 return 0 } # Determinate valid value range if {$mem_type == {J} || $mem_type == {H}} { set max_value 1 } else { set max_value [expr {int(pow(2, $len*8))}] if {$signed} { set min_value [expr {$max_value / 2}] set max_value [expr {$max_value / 2 - 1}] } else { incr max_value -1 } } # Check for valid range if {$negative} { if {$value > $min_value} { set validation_ena 1 return 0 } } else { if {$value > $max_value} { set validation_ena 1 return 0 } } ## Convert to list of decimal values # Bit value if {$mem_type == {J} || $mem_type == {H}} { set value_list $value # Other values } else { set value_list [list] set value [format %X $string] set value [string range $value end-[expr {$len * 2}] end] for {set i 0} {$i < $len} {incr i} { set val [string range $value end-1 end] set value [string replace $value end-1 end] if {$val == {}} { lappend value_list 0 } else { lappend value_list [expr "0x$val"] } } } set command {} switch -- $mem_type { {A} { ;# External stack } {B} { ;# Internal stack } {C} { ;# Code set validation_ena 1 return 0 } {D} { ;# Code / static segment set validation_ena 1 return 0 } {E} { ;# Internal ram (lower 128) bytes set command {setDataDEC} set mem_type_for_SE D set synccmd {Simulator_sync_reg} } {F} { ;# External ram set command {setXdataDEC} set mem_type_for_SE X set synccmd {Simulator_XDATA_sync} } {G} { ;# Internal ram set command {setDataDEC} set mem_type_for_SE I set synccmd {Simulator_sync_reg} } {H} { ;# Bit addressable set mem_type_for_SE B if {[$this simulator_address_range $mem_type_for_SE $address]} { $this setBit $address $value $this Simulator_sync_reg [$this getRegOfBit $address] } set validation_ena 1 return 1 } {I} { ;# SFR space set mem_type_for_SE S set command {setSfr_directly} set synccmd {Simulator_sync_sfr} } {J} { ;# SBIT space set mem_type_for_SE J if {[$this simulator_address_range $mem_type_for_SE $address]} { $this setBit $address $value $this Simulator_sync_sfr [$this getRegOfBit $address] } set validation_ena 1 return 1 } {R} { ;# Register space } {Z} { ;# Used for function records, or any undefined space code } default { set validation_ena 1 return 1 } } if {$command == {}} { set validation_ena 1 return 0 } foreach val $value_list { if {[$this simulator_address_range $mem_type_for_SE $address]} { $this $command $address $val $this $synccmd $address } incr address } set validation_ena 1 return 1 } ## Enable or disable the panel # @parm Bool enabled - 1 == Enable; 0 == Disable # @return void public method cvarsview_setEnabled {enabled} { if {!$cvv_gui_initialized} {return} if {$enabled} { set state normal } else { set state disabled } foreach id $global_displayed { if {[$text_widget_global.e_$id cget -state] == {readonly}} { continue } $text_widget_global.e_$id configure -state $state } } ## Synchronize with simulator engine (data are obtained from the engine) # @parm Char memtype - Type of memory (e.g. 'E' means IDATA) # @parm Int address - Address of changed register # @return void public method cvarsview_sync {memtype address} { if {!$cvv_gui_initialized} {return} if {!$validation_ena} {return} if {$memtype == {I} && !($address % 8)} { set bitaddr $address for {set i 0} {$i < 8} {incr i} { cvarsview_sync J $bitaddr incr bitaddr } } elseif {$memtype == {E} && $address > 31 && $address < 40} { set bitaddr [expr {($address - 32) * 8}] for {set i 0} {$i < 8} {incr i} { cvarsview_sync H $bitaddr incr bitaddr } } set idx 0 foreach addr $global_addresses { if {[lsearch $addr $address] != -1} { if {[lindex $global_variables [list $idx 5]] != $memtype} { continue } refresh_global_variable $idx break } incr idx } } ## Refresh contents of certain global variable (synchronize with simulator engine) # @parm Int idx - Variable ID # @return void private method refresh_global_variable {idx} { if {[lsearch $global_displayed $idx] == -1} { return } set validation_ena 0 set variable_def [lindex $global_variables $idx] set address_space [lindex $variable_def 5] set datatype [lindex $variable_def 4] set signed [lindex $variable_def 3] set length [lindex $variable_def 2] set value 0 set byte_num 0 foreach addr [lindex $global_addresses $idx] { switch -- $address_space { {G} { if {[$this simulator_address_range I $addr]} { incr value [expr {[$this getDataDEC $addr] << ($byte_num * 8)}] } } {E} { if {[$this simulator_address_range I $addr]} { incr value [expr {[$this getDataDEC $addr] << ($byte_num * 8)}] } } {I} { if {[$this simulator_address_range D $addr]} { incr value [expr {[$this getSfrDEC $addr] << ($byte_num * 8)}] } } {F} { if {[$this simulator_address_range X $addr]} { incr value [expr {[$this getXdataDEC $addr] << ($byte_num * 8)}] } } {J} { if {[$this simulator_address_range B $addr]} { incr value [$this getBit $addr] } } {H} { if {[$this simulator_address_range B $addr]} { incr value [$this getBit $addr] } } } incr byte_num } ## Adjust value # IEEE 754-1985 single precision floating-point number if {$datatype == {SF}} { ## Special cases # Zero if {$value == 0} { # One } elseif {$value == 0x3F800000} { set value 1 # Minus One } elseif {$value == 0xBF800000} { set value -1 # Positive infinity } elseif {$value == 0x7F800000} { set value {+ infinity} # Negative infinity } elseif {$value == 0xFF800000} { set value {- infinity} # Not a number } elseif {(($value & 0x7F800000) == 0x7F800000) && ($value & 0x007FFFFF)} { set value {NaN} ## Common cases } else { set sign [expr {($value & 0x80000000) ? 1 : 0}] set exponent [expr {int(($value & 0x7F800000) >> 23)}] set fraction_b [expr {$value & 0x007FFFFF}] incr exponent -127 set fraction 1 set val 0.5 set mask 0x00400000 for {set i 0} {$i < 23} {incr i} { if {$fraction_b & $mask} { set fraction [expr {$fraction + $val}] } set val [expr {$val / 2}] set mask [expr {$mask >> 1}] } set value [expr {pow(-1,$sign) * pow(2,$exponent) * $fraction}] } # Common signed integer } elseif {$signed == {S}} { set max_positive_value [expr {pow(2,($length * 8 - 1)) - 1}] if {$value > $max_positive_value} { set value [expr {$value - pow(2,($length * 8))}] } set value [expr {int($value)}] # Common unsigned integer } else { set value [expr {int($value)}] } # Write value to the entrybox if {$datatype == {SF}} { $text_widget_global.e_$idx configure -state normal } $text_widget_global.e_$idx delete 0 end $text_widget_global.e_$idx insert 0 $value $text_widget_global.e_$idx configure -fg ${::Simulator::highlight_color} if {$datatype == {SF}} { $text_widget_global.e_$idx configure -state readonly } # Reeanable synchronization and entryboxes validation set validation_ena 1 } } # >>> File inclusion guard } # <<< File inclusion guard mcu8051ide-1.4.7/lib/bottompanel/graph_wdg.tcl0000644000175000017500000010267612067167647021653 0ustar milleniummillenium#!/usr/bin/tclsh # Part of MCU 8051 IDE ( http://mcu8051ide.sf.net ) ############################################################################ # Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012 by Martin Ošmera # # martin.osmera@gmail.com # # # # This program is free software; you can redistribute it and#or modify # # it under the terms of the GNU General Public License as published by # # the Free Software Foundation; either version 2 of the License, or # # (at your option) any later version. # # # # This program is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU General Public License for more details. # # # # You should have received a copy of the GNU General Public License # # along with this program; if not, write to the # # Free Software Foundation, Inc., # # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # ############################################################################ # >>> File inclusion guard if { ! [ info exists _GRAPH_WDG_TCL ] } { set _GRAPH_WDG_TCL _ # <<< File inclusion guard # -------------------------------------------------------------------------- # DESCRIPTION # Graph widget for showing port states # -------------------------------------------------------------------------- class GraphWidget { ## COMMON common step_y 13 ;# Int: Vertical distance between graph rows common half_edge 5 ;# Int: Half length of bit edge common full_edge 10 ;# Int: Full length of bit edge # Big font (vertical header) common big_font [font create \ -family $::DEFAULT_FIXED_FONT \ -size -14 \ -weight bold \ ] # Small font (horizontal header) common small_font [font create \ -family $::DEFAULT_FIXED_FONT \ -size -14 \ -weight bold \ ] # Font for booleans values for each port common bool_font [font create \ -family $::DEFAULT_FIXED_FONT \ -size -12 \ -weight bold \ ] # Definition of graph popup menu common GRAPHMENU { {command {ON/OFF} {} 0 "graph_change_status_on" {} "Enable/Disable graph"} {separator} {command {Change grid} {} 1 "graph_switch_grid_mode 1" {} "Change grid morphology"} {separator} {command {Zoom in} {} 1 "graph_zoom_in" {viewmag_in} "Change bit length on X axis to a lower value"} {command {Zoom out} {} 1 "graph_zoom_out" {viewmag_out} "Change bit length on X axis to a higher value"} {separator} {command {Remove marks} {} 1 "graph_clear_marks" {editdelete} "Clear user marks"} } # Variables related to object initialization private variable graph_w_gui_initialized 0 ;# Bool: GUI created private variable _parent ;# Parent widget private variable parent ;# Innert parent widget private variable canvasWidget ;# ID of the canvas widget private variable grid_mode {b} ;# Current grid mode (one of {b n x y}) private variable drawing_on 0 ;# Bool: Graph enabled private variable magnification 0 ;# Magnification level (0..3) private variable graph_elements ;# Array: IDs of graph elements (green and red lines) private variable intr_lines {} ;# List of IDs of interrupt lines private variable marks {} ;# List of IDs mark rectangulars private variable mark_flags {} ;# List of Boolean mark flags private variable state_history {} ;# History of X bits (for changing magnification level and stepback) private variable intr_history {} ;# History of X interrupt flags private variable previous_state ;# Array: previous state of each bit private variable menu {} ;# ID of canvas popup menu private variable step_x ;# Number of pixels required for draw one bit private variable scrollable_frame ;# Widget: Scrollable area (parent for all other widgets) private variable horizontal_scrollbar ;# Widget: Horizontal scrollbar for scrollable area private variable number_of_ports ;# Int: Number of MCU's ports (see engine proc. get_ports_info) private variable port_numbers ;# List: Numbers of implemented ports (e.g. {0 3}) private variable port_length_in_px ;# Length of one port segment in PX private variable port_graph_length ;# Same as port_length_in_px but only visible area private variable history_max_length ;# Maximum history depth private variable Super ;# Object: Super ## Prepare object for creating its GUI # @parm Widget Parent - GUI parent widget # @parm List _data_list - Configuration data list # @return void constructor {Parent super} { set _parent $Parent set Super $super set graph_w_gui_initialized 0 } ## Object destructor destructor { if {$graph_w_gui_initialized} { menu_Sbar_remove $menu } } ## React to MCU change # @return void public method change_mcu {} { if {!$graph_w_gui_initialized} {return} foreach wdg [winfo children $_parent] { destroy $wdg } set graph_w_gui_initialized 0 CreateGraphGUI } ## Initialize graph # @return void public method CreateGraphGUI {} { if {$graph_w_gui_initialized} {return} set graph_w_gui_initialized 1 # Determinate number of ports and port indexes set number_of_ports [$Super get_ports_info] set port_numbers [lindex $number_of_ports 1] set number_of_ports [lindex $number_of_ports 0] set port_length_in_px [expr {840 / $number_of_ports}] set port_graph_length [expr {$port_length_in_px - 15}] set history_max_length [expr {$port_graph_length / 5}] # Create scrollable area set scrollable_frame [ScrollableFrame $_parent.scrollable_frame \ -xscrollcommand "$this graph_gui_scroll_set" \ ] set horizontal_scrollbar [ttk::scrollbar $_parent.horizontal_scrollbar \ -orient horizontal -command "$scrollable_frame xview" \ ] pack $scrollable_frame -fill both -side bottom -expand 1 set parent [$scrollable_frame getframe] # Create canvas widget set canvasWidget [canvas $parent.canvas \ -height 120 -width 860 -bd 0 \ -highlightthickness 0 \ ] # Create graph headers for {set i 0; set y 17} {$i < 8} {incr i; incr y $step_y} { $canvasWidget create text 10 $y -text $i -font $small_font -anchor n -fill {#0000FF} -tags background } for {set i 0} {$i < $number_of_ports} {incr i} { set x [expr {$i * $port_length_in_px + $port_length_in_px / 2 + 20}] $canvasWidget create text $x 7 \ -text "P[lindex $port_numbers $i]" \ -font $big_font -fill {#0000FF} -tags background } # Create separators $canvasWidget create line 20 0 20 120 -fill {#000000} -tags background $canvasWidget create line 0 15 860 15 -fill {#000000} -tags background for {set i 1} {$i <= $number_of_ports} {incr i} { set x [expr {$i * $port_length_in_px + 20}] $canvasWidget create line $x 0 $x 120 -fill {#000000} -tags background incr x -$step_y $canvasWidget create line $x 0 $x 120 -fill {#888888} -tags background } # Initialize array of graph elements and previous states for {set i 0} {$i < 40} {incr i} { set graph_elements($i) {} set previous_state($i) 1 } # Create canvas popup menu set menu $canvasWidget.menu menuFactory $GRAPHMENU $menu 0 "$Super " 0 {} [namespace current] # Set event bindings for the canvas widget bind $canvasWidget "$this graph_highlight %x %y" bind $canvasWidget "$this graph_unhighlight" bind $canvasWidget "$this graph_popup_menu %X %Y" bind $canvasWidget "$this graph_place_mark %x %y" # Pack the canvas widget set marks [string repeat {{} } [expr {$history_max_length + 1}]] pack $canvasWidget -fill none -expand 0 -anchor nw -side left # Commit magnification level commit_magnification $magnification # Commit ON/OFF state commit_state_on_off $drawing_on # Create graph grid graph_switch_grid_mode $grid_mode } ## Draw interrupt line # @parm String nh={} - If "nohistory" the history of interrupt lines will not be modified # @return void public method graph_draw_interrupt_line {{nh {}}} { if {!$graph_w_gui_initialized} {CreateGraphGUI} # Check if graph is enabled if {!$drawing_on} {return} # Adjust history if {$nh != {nohistory}} { if {[llength $intr_history]} { lset intr_history end 1 } else { lappend intr_history 1 } } # Create interrupt lines set lines {} for {set col 0} {$col < $number_of_ports} {incr col} { set x [expr {$col * $port_length_in_px + ([llength $graph_elements(0)] * $step_x) + 20}] lappend lines [$canvasWidget create line $x 16 $x 120 \ -fill {#DDAA00} -tags graph -width 2 -dash ,] } # Adjust list of canvas elements related to this line if {$nh != {nohistory}} { if {[llength $intr_lines]} { lset intr_lines end $lines } else { lappend intr_lines $lines } } } ## Draw new port states in the graph # A) With history enabled: # @parm String - Hexadecimal value of P0 # @parm String - Hexadecimal value of P1 # @parm String - Hexadecimal value of P2 # @parm String - Hexadecimal value of P3 # @parm String - Hexadecimal value of P4 # B) With disabled: # @parm List - {# {P0_hex P1_hex P2_hex P3_hex P4_hex}} # @return void public method graph_new_output_state args { if {!$graph_w_gui_initialized} {CreateGraphGUI} # Check if graph is enabled if {!$drawing_on} {return} # Determinate number of bits per block and the current position set treshold [expr {$port_graph_length / $step_x}] set position [llength $graph_elements(0)] # If graph is full -> remove last elements and move the graph if {$position == $treshold} { # Remove elemets for {set i 0} {$i < ($number_of_ports * 8)} {incr i} { foreach elm [lindex $graph_elements($i) 0] { $canvasWidget delete $elm } set graph_elements($i) [lreplace $graph_elements($i) 0 0] } foreach elm [lindex $intr_lines 0] { $canvasWidget delete $elm } set intr_lines [lreplace $intr_lines 0 0] # Adjust position index incr position -1 # Move graph $canvasWidget move graph -$step_x 0 } # Adjust history (cannot be longer than 38) if {[llength $intr_history] > $history_max_length} { set intr_history [lreplace $intr_history 0 0] set state_history [lreplace $state_history 0 0] } # Adjust history set args [join $args {}] if {[lindex $args 0] != {#}} { lappend state_history [list {#} $args] lappend intr_history 0 } else { set args [lindex $args 1] } lappend intr_lines {} # Adjust arguments set ports {} foreach idx $port_numbers { lappend ports [lindex $args $idx] } # Create new elements set p_idx 0 ;# Port index (not port number) set idx 0 ;# Bit index $canvasWidget delete booleans ;# Clear boolean values foreach num_x $ports { set num [list 0 0 0 0 0 0 0 0] for {set i 0; set j 7} {$i < 8} {incr i; incr j -1} { lset num $j [lindex $num_x $i] } # Draw bits foreach bit $num { draw_bit $idx $position $bit incr idx } # Draw booleans write_boolean $p_idx $num incr p_idx } } ## Write boolean values for the given port # @parm Int port_idx - Port number # @parm Int val - Port value # @return void private method write_boolean {port_idx val} { set x [expr {($port_idx + 1) * $port_length_in_px + 13}] for {set i 0; set y 17} {$i < 8} {incr i; incr y $step_y} { switch -- [lindex $val $i] { {1} { set txt {H} set clr {#FF0000} } {0} { set txt {L} set clr {#00FF00} } {|} { set txt {-} set clr {#FF8800} } {?} { set txt {-} set clr {#888888} } {X} { set txt {-} set clr {#8800FF} } {-} { set txt {?} set clr {#AAAA00} } {=} { set txt {L} set clr {#FF00AA} } default { set txt {?} set clr {#888888} } } $canvasWidget create text $x $y \ -text $txt \ -font $bool_font \ -anchor n \ -fill $clr \ -tags booleans } } ## Draw one bit to the graph # @parm Int idx - Bit index (0..39) # @parm Int pos - Target position # @parm Char bool - Bit value # @return void private method draw_bit {idx pos bool} { # Local variables set prev $previous_state($idx) ;# Previous state of the bit set offset_y [expr {($idx % 8) * $step_y + 18}] ;# Y offset set lines {} ;# List of line IDs # X offset set offset_x [expr { ($idx / 8) * $port_length_in_px + ($pos * $step_x) + 20 }] # Determinate length of line elements according to the current magnification level switch -- $magnification { {0} { set line_len 3 set enge_diff 0 set enge_inc0 0 set enge_inc1 0 } {1} { set line_len 4 set enge_diff 1 set enge_inc0 1 set enge_inc1 1 } {2} { set line_len 6 set enge_diff 1 set enge_inc0 2 set enge_inc1 1 } {3} { set line_len 8 set enge_diff 2 set enge_inc0 2 set enge_inc1 2 } } # Logical one forced to zero (e.g. by NPN transistor) if {$bool == {=}} { set bool 0 set zero_color {#FF00AA} } else { set zero_color {#FF0000} } ## Draw graph line(s) # High frequency pulse if {$bool == {|}} { # Draw transition from the previous value switch -- $prev { {0} { ;# From logical 0 lappend lines [$canvasWidget create line \ $offset_x [expr {$offset_y + $full_edge}] \ $offset_x [expr {$offset_y + $half_edge}] \ -fill {#00FF00} -tags graph] lappend lines [$canvasWidget create line \ $offset_x [expr {$offset_y + $half_edge}] \ $offset_x [expr {$offset_y + 0}] \ -fill $zero_color -tags graph] } {1} { ;# From logical 1 } {?} { ;# From no voltage lappend lines [$canvasWidget create line \ $offset_x [expr {$offset_y + $half_edge}] \ $offset_x [expr {$offset_y + 0}] \ -fill $zero_color -tags graph] } {-} { ;# From indeterminable state lappend lines [$canvasWidget create line \ $offset_x [expr {$offset_y + $half_edge}] \ $offset_x [expr {$offset_y + 0}] \ -fill $zero_color -tags graph] } } if {$magnification == 0} { lappend lines [$canvasWidget create line \ $offset_x $offset_y \ [expr {$offset_x + 1}] $offset_y \ [expr {$offset_x + 1}] [expr {$offset_y + $half_edge}] \ -fill $zero_color -tags graph] lappend lines [$canvasWidget create line \ [expr {$offset_x + 1}] [expr {$offset_y + $half_edge}] \ [expr {$offset_x + 1}] [expr {$offset_y + $full_edge}] \ [expr {$offset_x + 3}] [expr {$offset_y + $full_edge}] \ [expr {$offset_x + 3}] [expr {$offset_y + $half_edge}] \ -fill {#00FF00} -tags graph] lappend lines [$canvasWidget create line \ [expr {$offset_x + 4}] [expr {$offset_y + $half_edge}] \ [expr {$offset_x + 4}] [expr {$offset_y}] \ -fill $zero_color -tags graph] } else { switch -- $magnification { {1} { set line_len 3 set enge_diff 0 set enge_inc0 0 set enge_inc1 0 } {2} { set line_len 4 set enge_diff 1 set enge_inc0 1 set enge_inc1 1 } {3} { set line_len $half_edge set enge_diff 1 set enge_inc0 2 set enge_inc1 1 } } lappend lines [$canvasWidget create line \ $offset_x $offset_y \ [expr {$offset_x + $line_len}] $offset_y\ -fill $zero_color -tags graph] incr offset_x $line_len lappend lines [$canvasWidget create line\ $offset_x $offset_y \ [expr {$offset_x + $enge_diff}] \ [expr {$offset_y + $half_edge}] \ -fill $zero_color -tags graph \ ] incr offset_x $enge_inc0 incr offset_y $half_edge lappend lines [$canvasWidget create line\ $offset_x $offset_y \ [expr {$offset_x + $enge_diff}] \ [expr {$offset_y + 5}] \ -fill {#00FF00} -tags graph \ ] incr offset_x $enge_inc1 incr offset_y $half_edge lappend lines [$canvasWidget create line \ $offset_x $offset_y \ [expr {$offset_x + $line_len + 1}] $offset_y \ -fill {#00FF00} -tags graph] incr offset_x $line_len incr offset_x lappend lines [$canvasWidget create line\ $offset_x $offset_y \ [expr {$offset_x + $enge_diff}] \ [expr {$offset_y - $half_edge}] \ -fill {#00FF00} -tags graph] incr offset_x $enge_inc0 incr offset_y -$half_edge lappend lines [$canvasWidget create line\ $offset_x $offset_y \ [expr {$offset_x + $enge_diff}] \ [expr {$offset_y - $half_edge}] \ -fill $zero_color -tags graph] incr offset_x $enge_inc1 incr offset_y -$half_edge lappend lines [$canvasWidget create line \ $offset_x $offset_y \ [expr {$offset_x + $line_len}] $offset_y \ -fill $zero_color -tags graph] } # Access to external memory } elseif {$bool == {X}} { lappend lines [$canvasWidget create rectangle \ $offset_x $offset_y \ [expr {$offset_x + $step_x}] [expr {$offset_y + $half_edge}] \ -fill $zero_color -width 0 -tags graph] lappend lines [$canvasWidget create rectangle \ $offset_x [expr {$offset_y + $half_edge}] \ [expr {$offset_x + $step_x}] [expr {$offset_y + $full_edge}] \ -fill {#00FF00} -width 0 -tags graph] set bool $prev # Underminable state } elseif {$bool == {-}} { # Draw transition from the previous value switch -- $prev { {0} { ;# From logical zero lappend lines [$canvasWidget create line \ $offset_x [expr {$offset_y + $full_edge}] \ $offset_x [expr {$offset_y + $half_edge}] \ -fill {#00FF00} -tags graph] } {1} { ;# From logical one lappend lines [$canvasWidget create line \ $offset_x [expr {$offset_y + 0}] \ $offset_x [expr {$offset_y + $half_edge}] \ -fill $zero_color -tags graph] } {|} { ;# From high frequency pulse lappend lines [$canvasWidget create line \ $offset_x [expr {$offset_y + 0}] \ $offset_x [expr {$offset_y + $half_edge}] \ -fill $zero_color -tags graph] } } incr offset_y $half_edge lappend lines [$canvasWidget create line \ $offset_x $offset_y \ [expr {$offset_x + $line_len}] [expr {$offset_y + int(rand() * $half_edge)}] \ [expr {$offset_x + $line_len + $enge_inc0}] $offset_y \ [expr {$offset_x + $line_len + $enge_inc0 + $enge_inc1}] [expr {$offset_y - int(rand() * $half_edge)}] \ [expr {$offset_x + 2*$line_len + $enge_inc0 + $enge_inc1}] $offset_y \ -fill {#FF8800} -tags graph] # "Indeterminable state" -> "Zero" } elseif {$prev == {-} && $bool == 0} { lappend lines [$canvasWidget create line \ $offset_x [expr {$offset_y + $half_edge}] \ $offset_x [expr {$offset_y + $full_edge}] \ [expr {$offset_x + $step_x}] [expr {$offset_y + $full_edge}] \ -fill {#00FF00} -tags graph] # "Indeterminable state" -> "One" } elseif {$prev == {-} && $bool == 1} { lappend lines [$canvasWidget create line \ $offset_x [expr {$offset_y + $half_edge}] \ $offset_x [expr {$offset_y + 0}] \ [expr {$offset_x + $step_x}] [expr {$offset_y + 0}] \ -fill $zero_color -tags graph] # No voltage } elseif {$bool == {?}} { # Draw transition from the previous value switch -- $prev { {0} { ;# From logical zero lappend lines [$canvasWidget create line \ $offset_x [expr {$offset_y + $full_edge}] \ $offset_x [expr {$offset_y + $half_edge}] \ -fill {#00FF00} -tags graph] } {1} { ;# From logical one lappend lines [$canvasWidget create line \ $offset_x [expr {$offset_y + 0}] \ $offset_x [expr {$offset_y + $half_edge}] \ -fill $zero_color -tags graph] } {|} { ;# From high frequency pulse lappend lines [$canvasWidget create line \ $offset_x [expr {$offset_y + 0}] \ $offset_x [expr {$offset_y + $half_edge}] \ -fill $zero_color -tags graph] } } incr offset_y $half_edge lappend lines [$canvasWidget create line \ $offset_x $offset_y \ [expr {$offset_x + $step_x}] $offset_y \ -fill {#888888} -tags graph -width 2] # "No voltage" -> "Zero" } elseif {$prev == {?} && $bool == 0} { lappend lines [$canvasWidget create line \ $offset_x [expr {$offset_y + $half_edge}] \ $offset_x [expr {$offset_y + $full_edge}] \ [expr {$offset_x + $step_x}] [expr {$offset_y + $full_edge}] \ -fill {#00FF00} -tags graph] # "No voltage" -> "One" } elseif {$prev == {?} && $bool == 1} { lappend lines [$canvasWidget create line \ $offset_x [expr {$offset_y + $half_edge}] \ $offset_x [expr {$offset_y + 0}] \ [expr {$offset_x + $step_x}] [expr {$offset_y + 0}] \ -fill $zero_color -tags graph] # "High freq. pulse" -> "Zero" } elseif {$prev == {|} && $bool == 0} { lappend lines [$canvasWidget create line \ $offset_x [expr {$offset_y + 0}] \ $offset_x [expr {$offset_y + $half_edge}] \ -fill $zero_color -tags graph] lappend lines [$canvasWidget create line \ $offset_x [expr {$offset_y + $half_edge}] \ $offset_x [expr {$offset_y + $full_edge}] \ [expr {$offset_x + $step_x}] [expr {$offset_y + $full_edge}] \ -fill {#00FF00} -tags graph] # "High freq. pulse" -> "One" } elseif {$prev == {|} && $bool == 1} { lappend lines [$canvasWidget create line \ $offset_x $offset_y \ [expr {$offset_x + $step_x}] $offset_y \ -fill $zero_color -tags graph] # 1 -> 1 } elseif {$prev == 1 && $bool == 1} { lappend lines [$canvasWidget create line \ $offset_x $offset_y \ [expr {$offset_x + $step_x}] $offset_y \ -fill $zero_color -tags graph] # 1 -> 0 } elseif {$prev == 1 && $bool == 0} { lappend lines [$canvasWidget create line \ $offset_x $offset_y [expr {$offset_x + $line_len}] $offset_y \ -fill $zero_color -tags graph] incr offset_x $line_len lappend lines [$canvasWidget create line \ $offset_x $offset_y \ [expr {$offset_x + $enge_diff}] [expr {$offset_y + $half_edge}] \ -fill $zero_color -tags graph] incr offset_x $enge_inc0 incr offset_y $half_edge lappend lines [$canvasWidget create line \ $offset_x $offset_y \ [expr {$offset_x + $enge_diff}] [expr {$offset_y + 5}] \ -fill {#00FF00} -tags graph] incr offset_x $enge_inc1 incr offset_y $half_edge lappend lines [$canvasWidget create line \ $offset_x $offset_y [expr {$offset_x + $line_len}] $offset_y \ -fill {#00FF00} -tags graph] # 0 -> 1 } elseif {$prev == 0 && $bool == 1} { incr offset_y $full_edge lappend lines [$canvasWidget create line \ $offset_x $offset_y [expr {$offset_x + $line_len}] $offset_y \ -fill {#00FF00} -tags graph] incr offset_x $line_len lappend lines [$canvasWidget create line \ $offset_x $offset_y \ [expr {$offset_x + $enge_diff}] [expr {$offset_y - $half_edge}] \ -fill {#00FF00} -tags graph] incr offset_x $enge_inc0 incr offset_y -$half_edge lappend lines [$canvasWidget create line \ $offset_x $offset_y \ [expr {$offset_x + $enge_diff}] [expr {$offset_y - $half_edge}] \ -fill $zero_color -tags graph] incr offset_x $enge_inc1 incr offset_y -$half_edge lappend lines [$canvasWidget create line \ $offset_x $offset_y [expr {$offset_x + $line_len}] $offset_y \ -fill $zero_color -tags graph] # 0 -> 0 } else { incr offset_y $full_edge lappend lines [$canvasWidget create line \ $offset_x $offset_y \ [expr {$offset_x + $step_x}] $offset_y \ -fill {#00FF00} -tags graph] } # Adjust array of graph elements and previous states lappend graph_elements($idx) $lines set previous_state($idx) $bool } ## Iterate over available grid modes # @parm Int by - Iterate by # @return void public method graph_switch_grid_mode {_grid_mode} { set grid_mode $_grid_mode # Adjust button in button bar and canvas popup menu switch -- $grid_mode { {b} {set image {grid0}} {n} {set image {grid1}} {y} {set image {grid2}} {x} {set image {grid3}} } $menu entryconfigure [::mc "Change grid"] -image ::ICONS::16::$image # Redraw grid adjust_grid } ## Adjust grid morphology to the current grid mode # @return void private method adjust_grid {} { # Remove the current grid catch { $canvasWidget delete grid } # Create new grid switch -- $grid_mode { {b} { draw_y_grid draw_x_grid } {n} {} {y} {draw_y_grid} {x} {draw_x_grid} } } ## Draw vertical grid lines # @return void private method draw_y_grid {} { # Iterate over graph blocks for {set i 0} {$i < $number_of_ports} {incr i} { # Determinate horizontal boundaries set xoff [expr {$i * $port_length_in_px + 20 + $step_x}] set xend [expr {($i + 1) * $port_length_in_px + 5}] # Draw vertical lines for {set x $xoff} {$x < $xend} {incr x $step_x} { $canvasWidget create line $x 16 $x 120 -fill {#AAAAAA} -tags grid -dash . } } } ## Draw horizontal grid lines # @return void private method draw_x_grid {} { for {set y 30} {$y < 120} {incr y $step_y} { $canvasWidget create line 0 $y 860 $y -fill {#888888} -tags grid } } ## Set graph configuration variables # @parm Char _grid_mode - Grid morphology (one of {'n' 'x' 'y' 'b'}) # @parm Int _magnification - Magnification mode (one of {0 1 2 3}) # @parm Bool _drawing_on - Widget enabled # @parm List _mark_flags - List of mark flags (e.g {0 0 0 1 1 0}) # @return void public method graph_set_data {_grid_mode _magnification _drawing_on _mark_flags} { set grid_mode $_grid_mode set magnification $_magnification set drawing_on $_drawing_on set mark_flags $_mark_flags } ## Get mark flags # @return String - String of boolean flags public method graph_get_marks {} { set result [::NumSystem::bin2hex [join $mark_flags {}]] set len [string length $result] if {$len < 43} { set result "[string repeat {0} [expr {43 - $len}]]$result" } return "X$result" } ## Adjust graph to the current magnification level # @parm Int _magnification - Maginification level (0..3) # @return void public method commit_magnification {_magnification} { set magnification $_magnification # Determinate one bit X axis step set step_x [expr {$magnification * 5 + 5}] clear_graph keephistory ;# Clear graph adjust_grid ;# Adjust graph grid # Remove user marks catch { $canvasWidget delete mark } # Restore graph content from the history (voltage levels and interrupt lines) set length [expr {$port_graph_length / $step_x - 1}] foreach state [lrange $state_history end-$length end] \ intr [lrange $intr_history end-$length end] \ { graph_new_output_state $state if {$intr == 1} { graph_draw_interrupt_line nohistory } } # Restore user marks set x_off [expr {21 - $step_x}] set i -1 foreach mark [lrange $mark_flags 0 $length] { incr i incr x_off $step_x if {!$mark} {continue} set x $x_off set lines [list] for {set j 0} {$j < $number_of_ports} {incr j} { lappend lines [$canvasWidget create rectangle \ $x 16 [expr {$x + $step_x - 1}] 120 \ -fill {#AA88FF} -tags mark -width 0] incr x $port_length_in_px } lset marks $i $lines } } ## Remove all graph elements (voltage levels) # @parm String - If "keephistory" then do not clear history # @return void public method clear_graph args { if {!$graph_w_gui_initialized} {CreateGraphGUI} catch { $canvasWidget delete graph } catch { $canvasWidget delete highlight } catch { $canvasWidget delete booleans } for {set i 0} {$i < 40} {incr i} { set graph_elements($i) {} } set intr_lines {} if {$args != {keephistory}} { set state_history {} set intr_history {} for {set i 0} {$i < 40} {incr i} { set previous_state($i) 1 } } } ## Turn graph ON/OFF # @return void public method graph_change_status_on {} { $Super graph_commit_state_on_off $drawing_on } ## Adjust object to the current value of flag 'drawing_on' # @return void public method commit_state_on_off {_drawing_on} { if {!$graph_w_gui_initialized} {CreateGraphGUI} set drawing_on $_drawing_on # Enable widgets if {$drawing_on} { $menu entryconfigure [::mc "Remove marks"] -state normal $menu entryconfigure [::mc "Change grid"] -state normal $canvasWidget configure -state normal # Disable widgets, clear graph and clear history } else { $menu entryconfigure [::mc "Remove marks"] -state disabled $menu entryconfigure [::mc "Change grid"] -state disabled $menu entryconfigure [::mc "Zoom in"] -state disabled $menu entryconfigure [::mc "Zoom out"] -state disabled $canvasWidget configure -state disabled clear_graph } } ## Highlight graph segment # @parm Int x - Relative X coordinate # @parm Int y - Relative Y coordinate # @return void public method graph_highlight {x y} { # Remove previous highlight graph_unhighlight # Check for allowed coordinate range if {$y < 17 || $x < 21} {return} set x [expr {($x - 20) % $port_length_in_px}] if {$x >= $port_graph_length - ($port_graph_length % $step_x)} {return} incr x [expr {-($x % $step_x)}] incr x 21 # Draw highlight rectangulars for {set i 0} {$i < $number_of_ports} {incr i} { $canvasWidget create rectangle \ $x 16 [expr {$x + $step_x - 1}] 120 \ -fill {#88FFFF} -tags highlight -width 0 incr x $port_length_in_px } set y [expr {$y - (($y - 17) % $step_y)}] $canvasWidget create rectangle \ 0 $y 860 [expr {$y + $step_y}] \ -fill {#88FFFF} -tags highlight -width 0 # Set tag priorities catch { $canvasWidget lower highlight mark } catch { $canvasWidget lower highlight grid } catch { $canvasWidget lower highlight graph } catch { $canvasWidget lower highlight booleans } catch { $canvasWidget lower highlight background } } ## Remove highlightion # @return void public method graph_unhighlight {} { catch { $canvasWidget delete highlight } } ## Popup canvas menu # @parm Int X - Absolute X coordinate # @parm Int Y - Absolute X coordinate # @return void public method graph_popup_menu {X Y} { tk_popup $menu $X $Y } ## Place mark in the graph # @parm Int x - Relative X coordinate # @parm Int y - Relative Y coordinate # @return void public method graph_place_mark {x y} { # Check for allowed coordinate range if {$y < 17 || $x < 21} {return} set x [expr {($x - 20) % $port_length_in_px}] if {$x >= $port_graph_length - ($port_graph_length % $step_x)} {return} incr x [expr {-($x % $step_x)}] set idx [expr {$x / $step_x}] # Create mark if {[lindex $mark_flags $idx] != 1} { incr x 21 set lines {} for {set i 0} {$i < $number_of_ports} {incr i} { lappend lines [$canvasWidget create rectangle \ $x 16 [expr {$x + $step_x - 1}] 120 \ -fill {#AA88FF} -tags mark -width 0] incr x $port_length_in_px } catch { $canvasWidget raise mark highlight } catch { $canvasWidget lower mark grid } catch { $canvasWidget lower mark graph } lset marks $idx $lines lset mark_flags $idx 1 # Remove mark } else { catch { foreach elm [lindex $marks $idx] { $canvasWidget delete $elm } } lset marks $idx {} lset mark_flags $idx 0 } } ## Remove all user marks from the graph # @return void public method graph_clear_marks {} { catch { $canvasWidget delete mark } set marks [string repeat {{} } [expr {$history_max_length + 1}]] set mark_flags [string repeat {0 } [expr {$history_max_length + 1}]] } ## Adjust scrollbar for scrollable area # @parm Float frac0 - 1st fraction # @parm Float frac0 - 2nd fraction # @return void public method graph_gui_scroll_set {frac0 frac1} { # Hide scrollbar if {$frac0 == 0 && $frac1 == 1} { if {[winfo ismapped $horizontal_scrollbar]} { pack forget $horizontal_scrollbar update } # Show scrollbar } else { if {![winfo ismapped $horizontal_scrollbar]} { pack $horizontal_scrollbar -fill x -side top -before $scrollable_frame } $horizontal_scrollbar set $frac0 $frac1 update } } ## Try to restore graph state before the given number of program steps # @parm Int bits - Number of steps to take back # @return void public method graph_stepback {bits} { if {!$graph_w_gui_initialized} {CreateGraphGUI} if {!$drawing_on} {return} # Remove elemets incr bits -1 for {set i 0} {$i < ($number_of_ports * 8)} {incr i} { foreach elm [lrange $graph_elements($i) end-$bits end] { foreach e $elm { $canvasWidget delete $e } } foreach elm [lrange $intr_lines end-$bits end] { foreach e $elm { $canvasWidget delete $e } } set graph_elements($i) [lreplace $graph_elements($i) end-$bits end] } set intr_lines [lreplace $intr_lines end-$bits end] # Adjust history set intr_history [lreplace $intr_history end-$bits end] set state_history [lreplace $state_history end-$bits end] # Return graph to state before $bits steps set last_state [lindex $state_history {end 1}] if {[llength $last_state]} { set ports {} foreach idx $port_numbers { lappend ports [lindex $last_state $idx] } set p_idx 0 ;# Port index (not port number) set idx 0 ;# Bit index $canvasWidget delete booleans ;# Clear boolean values foreach num $ports { foreach bit $num { set previous_state($idx) $bit incr idx } # Draw booleans write_boolean $p_idx $num incr p_idx } } else { clear_graph } } } # >>> File inclusion guard } # <<< File inclusion guard mcu8051ide-1.4.7/lib/bottompanel/todo.tcl0000644000175000017500000013076412067167647020655 0ustar milleniummillenium#!/usr/bin/tclsh # Part of MCU 8051 IDE ( http://mcu8051ide.sf.net ) ############################################################################ # Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012 by Martin Ošmera # # martin.osmera@gmail.com # # # # This program is free software; you can redistribute it and#or modify # # it under the terms of the GNU General Public License as published by # # the Free Software Foundation; either version 2 of the License, or # # (at your option) any later version. # # # # This program is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU General Public License for more details. # # # # You should have received a copy of the GNU General Public License # # along with this program; if not, write to the # # Free Software Foundation, Inc., # # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # ############################################################################ # >>> File inclusion guard if { ! [ info exists _TODO_TCL ] } { set _TODO_TCL _ # <<< File inclusion guard # -------------------------------------------------------------------------- # DESCRIPTION # Provides autonome GUI component intented for writing ToDo list # -------------------------------------------------------------------------- class Todo { common buttonActiveBg {#2222FF} ;# Color for button representing currently active text tags common buttonSemiActBg {#8888FF} ;# - || - semi active tags # Normal font for messages text common todo_normal_font [font create \ -family ${Editor::fontFamily} \ -size -${Editor::fontSize} \ ] common normal_font [font create \ -family {helvetica} \ -size [expr {int(-12 * $::font_size_factor)}] \ -weight {normal} \ ] common bold_font [font create \ -family {helvetica} \ -size [expr {int(-12 * $::font_size_factor)}] \ -weight {bold} \ ] # List of used text tags common textTags { tag_bold tag_italic tag_overstrike tag_underline } # List of XML tags for text tags (above) common xmlTags { b i s u } # List "tagging" buttons common tagButtons { button_bold button_italic button_strike button_under } # List of self closing tags common selfCtags {bookmark} common set_shortcuts {} ;# Currently set shortcut bindigs common shortcuts_cat {todo} ;# Key shortcut categories related to this segment # ID of bookmark image common bookmarkImage ok # Definition of the popup menu common TODOMENU { {command {Undo} {Ctrl+Z} 0 "undo" {undo} "Undo last operation"} {command {Redo} {Ctrl+Shift+Z} 2 "redo" {redo} "Take back last undo operation"} {separator} {command {Cut} {Ctrl+X} 2 "cut" {editcut} {}} {command {Copy} {Ctrl+C} 0 "copy" {editcopy} {}} {command {Paste} {Ctrl+V} 0 "paste" {editpaste} {}} {command {Clear} {} 1 "clear" {editdelete} {}} {separator} {command {Select all} {Ctrl+A} 0 "selectall" {} {}} {separator} {command {Find} {$todo:todo_find} 0 "find_dialog" {find} {}} {command {Find next} {$todo:todo_find_n} 5 "find_next" {down0} {}} {command {Find previous} {$todo:todo_find_p} 8 "find_prev" {up0} {}} {separator} {command {Bold text} {$todo:bold} 0 "bold" {text_bold} "Use bold font"} {command {Italic text} {$todo:italic} 0 "italic" {text_italic} "Use italic font"} {command {Strikethrough text} {$todo:strike} 0 "strike" {text_strike} "Use strikethrough font"} {command {Underline text} {$todo:under} 1 "under" {text_under} "Use underline font"} {separator} {command {Erase tags} {$todo:edrase} 0 "eraser" {eraser} "Clear rich text tags"} {command {Insert OK image} {$todo:insert} 1 "bookmark" {ok} "Insert image \"Ok\""} } # Variables related to object initialization private variable input_text ;# String: initial content of the text widget private variable todo_gui_initialized 0 ;# Bool: GUI created # Other variables private variable main_frame ;# ID of main frame (text_widget; scrollbar; button_frame) private variable text_widget ;# ID of the text widget private variable scrollbar ;# ID of scrollbar private variable button_frame ;# ID of button frame (on left) private variable parent_container ;# ID of parent contaner (some frame) private variable button_bold ;# ID of button "Bold" private variable button_italic ;# ID of button "Italic" private variable button_strike ;# ID of button "Strikethrough" private variable button_under ;# ID of button "Underline" private variable active_tags {} ;# Currently active tags private variable menu {} ;# ID of popup menu private variable editor_count 0 ;# Int: Counter of editor instances private variable file_notes_pagesManager ;# Widget: Pages Manager for the file notes private variable LIST_file_notes {} ;# List of Widget: Text widgets with the file notes private variable LIST_file_notes_name {} ;# List of Widget: Label with the file name private variable file_notes ;# Widget: File specific notepad private variable file_notes_name ;# Widget: Label above file specific notepad (file name) private variable file_notes_pages private variable notes_invisible_frm ;# Widget: Frame to show when file notes is hidden private variable paned_win ;# Widget: Paned window containing "File notes" and "Notes" private variable right_pane ;# Widget: Right part of the $paned_win private variable left_pane ;# Widget: Left part of the $paned_win # Bool: Paned window redraw procedure is in progress private variable redraw_pane_in_progress 0 # Bool: File Notes is visible private variable notes_visible [lindex $::CONFIG(FILE_NOTES) 0] # Int: File notes panel size private variable panel_size [lindex $::CONFIG(FILE_NOTES) 1] # Int: File notes panel size (value before it was hidden) private variable panel_size_last [lindex $::CONFIG(FILE_NOTES) 1] # Variables related to search bar private variable search_frame ;# Widget: Search bar frame private variable last_find_index {} ;# String: Index of last found occurrence of the search string private variable search_string {} ;# String: Search string private variable search_string_length 0 ;# Int: Length of the search string private variable search_entry ;# Widget: Search bar entry box private variable search_find_next ;# Widget: Button "Next" private variable search_find_prev ;# Widget: Button "Prev" ## Object constructor constructor {} { # Configure specific ttk styles ttk::style configure Todo_Active.TButton \ -background $buttonActiveBg \ -padding 0 \ -relief flat ttk::style map Todo_Active.TButton \ -relief [list active raised] \ -background [list disabled ${::COMMON_BG_COLOR} active $buttonActiveBg] ttk::style configure Todo_SemiAct.TButton \ -background $buttonSemiActBg \ -padding 0 \ -relief flat ttk::style map Todo_SemiAct.TButton \ -relief [list active raised] \ -background [list disabled ${::COMMON_BG_COLOR} active $buttonSemiActBg] } ## Object destructor destructor { # Remove dynamic help on status bar if {[winfo exists $menu]} { menu_Sbar_remove $menu } } ## Get configuration list for file specific notepad # @return void public method get_file_notes_config {} { if {$panel_size < $panel_size_last} { set panel_size_max $panel_size_last } else { set panel_size_max $panel_size } return [list $notes_visible $panel_size_max] } ## Get contents of file specific notepad # @parm Int idx= - Index in $LIST_file_notes # @return void public method get_file_notes_data {{idx {}}} { CreateTodoGUI if {$idx == {}} { return [$file_notes get 1.0 {end-1l lineend}] } else { set w [lindex $LIST_file_notes $idx] if {$w == {}} { return {} } else { return [$w get 1.0 {end-1l lineend}] } } } ## Set contents of file specific notepad # @parm String data - Text # @return void public method set_file_notes_data {data} { CreateTodoGUI $file_notes delete 0.0 end $file_notes insert end $data } ## Prepare object for creating its GUI # @parm Widget parentContainer - parent contaner (some frame) # @parm String inputText - initial content of the text widget # @return void public method PrepareTodo {parentContainer _input_text} { set parent_container $parentContainer set input_text $_input_text set todo_gui_initialized 0 } ## Inform this tab than it has became active # @return void public method TodoTabRaised {} { focus $text_widget after idle "update; catch {$this todo_panel_redraw_pane}" } ## Add file specific notepad for a newly created editor # @parm String data - Text of the notes # @return void public method todo_add_Editor {data} { CreateTodoGUI # Create a new page in the pages manager for the file specific notepad set frm [$file_notes_pagesManager add $editor_count] # Create top and bottom frame set tf [frame $frm.t] set bf [frame $frm.b] # Create widgets for the top frame pack [label $tf.hl -text [mc "Notes for file:"] -font $normal_font] -side left set file_notes_name [label $tf.file_name -font $bold_font] pack $file_notes_name -side left pack [ttk::button $tf.hide_button \ -image ::ICONS::16::2rightarrow \ -command "$this todo_file_notes_show_hide 0" \ -style Flat.TButton \ ] -side right # Create widgets for the bottom frame set file_notes [text $bf.text \ -font $todo_normal_font -undo 1 -bg white \ -selectbackground {#AAFFAA} -selectborderwidth 1 \ -selectforeground {#000000} -highlightthickness 0 \ -yscrollcommand "$bf.scrollbar set" \ -wrap word -width 1 -height 1 -tabstyle wordprocessor \ ] pack $file_notes -fill both -expand 1 -side left pack [ttk::scrollbar $bf.scrollbar \ -command "$file_notes yview" \ -orient vertical \ ] -fill y -side right # Pack frames pack $tf -side top -anchor nw -fill x pack $bf -side bottom -fill both -expand 1 # Register the newly created widgets lappend file_notes_pages $editor_count lappend LIST_file_notes $file_notes lappend LIST_file_notes_name $file_notes_name set_file_notes_data $data incr editor_count } ## Redraw panel (move pane sash) acorning to current value of $PanelSize # @return void public method todo_panel_redraw_pane {} { if {!$todo_gui_initialized} {return} if {$redraw_pane_in_progress} { after 50 "$this todo_panel_redraw_pane" return } set redraw_pane_in_progress 1 update $paned_win sash place 0 [expr {${::WIN_GEOMETRY_width} - $panel_size}] 0 update set redraw_pane_in_progress 0 } ## Set panel width according to current sash position # @return void public method todo_panel_set_size {} { set panel_size [lindex [$paned_win sash coord 0] 0] set panel_size [expr {${::WIN_GEOMETRY_width} - $panel_size}] } ## Show or hide the file specific notepad # @parm Bool show__hide - 1 == Show; 0 == Hide # @return void public method todo_file_notes_show_hide {show__hide} { CreateTodoGUI set notes_visible $show__hide # Show if {$notes_visible} { pack forget $notes_invisible_frm pack $file_notes_pagesManager -fill both -expand 1 $paned_win paneconfigure $right_pane -minsize 200 set panel_size $panel_size_last # Hide } else { pack forget $file_notes_pagesManager pack $notes_invisible_frm -fill y -anchor nw $paned_win paneconfigure $right_pane -minsize 20 set panel_size_last $panel_size set panel_size 60 } todo_panel_redraw_pane } ## Remove file specific notes # @parm Int idx - Editor index # @return void public method todo_remove_editor {idx} { CreateTodoGUI $file_notes_pagesManager delete [lindex $file_notes_pages $idx] set file_notes_pages [lreplace $file_notes_pages $idx $idx] set LIST_file_notes [lreplace $LIST_file_notes $idx $idx] set LIST_file_notes_name [lreplace $LIST_file_notes_name $idx $idx] } ## Switch file specific notes to another editor # @parm Int idx - Editor index # @return void public method todo_switch_editor {idx} { CreateTodoGUI set file_notes_name [lindex $LIST_file_notes_name $idx] set file_notes [lindex $LIST_file_notes $idx] $file_notes_pagesManager raise [lindex $file_notes_pages $idx] } ## Change file name shown in the file specific notes to another string # @parm Int idx - Editor index # @parm String newname - New file name # @return void public method todo_change_filename {idx newname} { $file_notes_name configure -text $newname } ## Swithc some variables related to the file specific notes to another editor # @parm Inr idx - Editor index # @return void public method todo_switch_editor_vars {idx} { CreateTodoGUI set file_notes_name [lindex $LIST_file_notes_name $idx] set file_notes [lindex $LIST_file_notes $idx] } ## Set text for thec urrent file specific notepad # @parm String text - The text # @return void public method todo_file_notes_set_text {text} { $file_notes delete 0.0 end $file_notes insert end $text } ## Get text from the file specific notepad # @return void public method todo_file_notes_get_text {} { return [$file_notes get 0.0 end] } ## Initialize to do text # @return void public method CreateTodoGUI {} { if {$todo_gui_initialized} {return} set todo_gui_initialized 1 if {${::DEBUG}} { puts "CreateTodoGUI \[ENTER\]" } set paned_win [panedwindow $parent_container.paned_win \ -sashwidth 4 -showhandle 0 -opaqueresize 1 -orient horizontal \ ] bind $paned_win "$this todo_panel_set_size" set left_pane [frame $paned_win.l] set right_pane [frame $paned_win.r] $paned_win add $left_pane $paned_win add $right_pane $paned_win paneconfigure $left_pane -minsize 200 $paned_win paneconfigure $right_pane -minsize 200 # # RIGHT PART # set file_notes_pagesManager [PagesManager $right_pane.pmgr -background ${::COMMON_BG_COLOR}] $file_notes_pagesManager compute_size set notes_invisible_frm [frame $right_pane.notes_invisible_frm] pack [ttk::button $notes_invisible_frm.hide_button \ -image ::ICONS::16::2leftarrow \ -command "$this todo_file_notes_show_hide 1" \ -style Flat.TButton \ ] -anchor nw todo_file_notes_show_hide $notes_visible # # LEFT PART # # Create GUI components in main frame set main_frame [frame $left_pane.main_frame] set text_widget [text $main_frame.todo_text \ -yscrollcommand "$main_frame.todo_text_scrl set" \ -font $todo_normal_font -undo 1 -bg white \ -selectbackground {#AAFFAA} -selectborderwidth 1 \ -selectforeground {#000000} -highlightthickness 0 \ -wrap word -width 1 -height 1 -tabstyle wordprocessor \ ] set scrollbar [ttk::scrollbar $main_frame.todo_text_scrl \ -command "$text_widget yview" \ -orient vertical \ ] set button_frame [frame $main_frame.todo_text_bframe] # Pack GUI of main frame pack $button_frame -side left -anchor n pack $text_widget -fill both -expand 1 -side left pack $scrollbar -fill y -side right ## Create GUI components in search bar frame set search_frame [frame $left_pane.search_frame] # Search entry box set search_entry [ttk::entry $search_frame.entry \ -width 30 \ -validate all \ -validatecommand "$this TodoProc_search %P" \ ] bind $search_entry "$this TodoProc_hide_find_dialog" # Button: "Next" set search_find_next [ttk::button $search_frame.find_next_but \ -image ::ICONS::16::down0 \ -command "$this TodoProc_find_next" \ -state disabled \ -style Flat.TButton \ ] DynamicHelp::add $search_frame.find_next_but \ -text [mc "Find next occurrence of search string"] # Button: "Prev" set search_find_prev [ttk::button $search_frame.find_prev_but \ -image ::ICONS::16::up0 \ -command "$this TodoProc_find_prev" \ -state disabled \ -style Flat.TButton \ ] DynamicHelp::add $search_frame.find_prev_but \ -text [mc "Find previous occurrence of search string"] # Button: "Close" pack [ttk::button $search_frame.close_but \ -image ::ICONS::16::button_cancel \ -command "$this TodoProc_hide_find_dialog" \ -style Flat.TButton \ ] -side left DynamicHelp::add $search_frame.close_but \ -text [mc "Hide search bar"] # Separator pack [ttk::separator $search_frame.sep \ -orient vertical \ ] -fill y -padx 5 -side left -pady 2 # Label: "Find" pack [label $search_frame.find_lbl \ -text [mc "Find:"] \ ] -side left # Pack entry and buttons next and prev pack $search_entry -side left pack $search_find_next -side left -padx 5 pack $search_find_prev -side left # Checkbutton: "Match case" pack [checkbutton $search_frame.match_case_chb \ -text [mc "Match case"] \ -variable ::Todo::match_case \ -command "$this TodoProc_perform_search 1 1.0" \ ] -side left -padx 5 # Pack main frame pack $main_frame -fill both -expand 1 # Show the search bar frame TodoProc_find_dialog 0 # Adjust text widget parameters TodoProc_write_text_from_sgml $input_text unset input_text $text_widget edit modified 0 $text_widget edit reset # create events bindings foreach key [bind Text] { bind $text_widget $key {continue} } bind $text_widget <> "$this TodoProc_undo; break" bind $text_widget <> "$this TodoProc_redo; break" foreach key { } \ { bind $text_widget $key " [bind Text $key] $this recalc_left_panel insert break" } bind $text_widget "break" bind $text_widget "$this TodoProc_Key %A; break" bind $text_widget "$this TodoProc_leftClick %x %y" bind $text_widget "$this TodoProc_leftRelease" bind $text_widget "$this TodoProc_popupMenu %X %Y %x %y; break" bind $text_widget "$this TodoProc_Key_Menu; break" TodoProc_shortcuts_reevaluate ## Create button bar # Button "Bold" set button_bold [ttk::button $button_frame.todo_text_bB \ -image ::ICONS::16::text_bold \ -command "$this TodoProc_bold" \ -style Flat.TButton \ ] DynamicHelp::add $button_bold -text [mc "Bold font"] setStatusTip -widget $button_bold \ -text [mc "Use bold font"] # Button "Italic" set button_italic [ttk::button $button_frame.todo_text_bI \ -image ::ICONS::16::text_italic \ -command "$this TodoProc_italic" \ -style Flat.TButton \ ] DynamicHelp::add $button_italic \ -text [mc "Italic text"] setStatusTip -widget $button_italic \ -text [mc "Use italic font"] # Button "Strikethrough" set button_strike [ttk::button $button_frame.todo_text_bS \ -image ::ICONS::16::text_strike \ -command "$this TodoProc_strike" \ -style Flat.TButton \ ] DynamicHelp::add $button_strike \ -text [mc "Strikethrough font"] setStatusTip -widget $button_strike -text [mc "Use strikethrough font"] # Button "Underline" set button_under [ttk::button $button_frame.todo_text_bU \ -image ::ICONS::16::text_under \ -command "$this TodoProc_under" \ -style Flat.TButton \ ] DynamicHelp::add $button_under \ -text [mc "Underline font"] setStatusTip -widget $button_under \ -text [mc "Use underline font"] # pack these buttons foreach wdg $tagButtons { pack [subst -nocommands "\$$wdg"] } # Button "Eraser" pack [ttk::button $button_frame.todo_text_bE \ -image ::ICONS::16::eraser \ -command "$this TodoProc_eraser" \ -style Flat.TButton \ ] DynamicHelp::add $button_frame.todo_text_bE \ -text [mc "Erase text tags"] setStatusTip -widget $button_frame.todo_text_bE \ -text [mc "Remove formatting tags within selected area"] # Button "Bookmark" pack [ttk::button $button_frame.todo_text_bBm \ -image ::ICONS::16::$bookmarkImage \ -command "$this TodoProc_bookmark" \ -style Flat.TButton \ ] DynamicHelp::add $button_frame.todo_text_bBm \ -text [mc "Insert OK image"] setStatusTip -widget $button_frame.todo_text_bBm \ -text [mc "Insert \"Ok\" image at the current cursor position"] # create popup menu set menu $text_widget.todo_menu TodoProc_makePopupMenu # Create text tags and set main font todo_refresh_font_settings pack $paned_win -fill both -expand 1 } ## Recreate all text tags and font font for the text widget # @return void public method todo_refresh_font_settings {} { if {!$todo_gui_initialized} {CreateTodoGUI} $text_widget configure -font [font create \ -family ${Editor::fontFamily} \ -size -${Editor::fontSize} \ ] todo_create_tags } ## Create bindings for defined key shortcuts # @return void public method TodoProc_shortcuts_reevaluate {} { if {!$todo_gui_initialized} {CreateTodoGUI} # Unset previous configuration foreach key $set_shortcuts { bind $text_widget <$key> {} } set set_shortcuts {} # Iterate over shortcuts definition foreach block ${::SHORTCUTS_LIST} { # Determinate category set category [lindex $block 0] if {[lsearch $shortcuts_cat $category] == -1} {continue} # Determinate definition list and its length set block [lreplace $block 0 2] set len [llength $block] # Iterate over definition list and create bindings for {set i 0; set j 1} {$i < $len} {incr i 2; incr j 2} { # Determinate key sequence set key [lindex $block $i] if {[catch { set key $::SHORTCUTS_DB($category:$key) }]} then { continue } if {$key == {}} {continue} # Create and register new binding lappend set_shortcuts $key set cmd [subst [lindex $block [list $j 1]]] append cmd {;break} bind $text_widget <$key> $cmd bind $search_entry <$key> $cmd } } } ## Create popup menu # @return void public method TodoProc_makePopupMenu {} { if {!$todo_gui_initialized} {return} if {[winfo exists $menu]} { destroy $menu } menuFactory $TODOMENU $menu 0 "$this TodoProc_" 0 {} [namespace current] $menu entryconfigure [::mc "Find next"] -state disabled $menu entryconfigure [::mc "Find previous"] -state disabled } ## Create text tags in to do text widget # @return void private method todo_create_tags {} { # Tag "Bold" $text_widget tag configure tag_bold \ -font [font create -size -${Editor::fontSize} \ -weight bold -family ${Editor::fontFamily} \ ] # Tag "Italic" $text_widget tag configure tag_italic \ -font [font create -size -${Editor::fontSize} \ -slant italic -family ${Editor::fontFamily} \ ] # Tag "Underline" $text_widget tag configure tag_underline -underline 1 # Tag "Overstrike" $text_widget tag configure tag_overstrike -overstrike 1 } ## Invoke the popup menu # @parm Int X - Absolute x coordinate # @parm Int Y - Absolute y coordinate # @parm Int x - Relative x coordinate # @parm Int y - Relative y coordinate # @return void public method TodoProc_popupMenu {X Y x y} { popup_menu_disena tk_popup $menu $X $Y $text_widget mark set insert @$x,$y } ## Handles event: 'Menu' -- invoke popup menu # @return void public method TodoProc_Key_Menu {} { popup_menu_disena $text_widget see insert set bbox [$text_widget bbox [$text_widget index insert]] tk_popup $menu \ [expr {[winfo rootx $text_widget] + [lindex $bbox 0] + 10}] \ [expr {[winfo rooty $text_widget] + [lindex $bbox 1] + 10}] } ## Enable/Disable popup menu items according to state of the text widget # Auxiliary procedure for 'TodoProc_popupMenu' and 'TodoProc_Key_Menu' # @return void private method popup_menu_disena {} { set state [$text_widget cget -state] if {[llength [$text_widget tag nextrange sel 1.0]]} { if {$state != {disabled}} { $menu entryconfigure [::mc "Cut"] -state normal } $menu entryconfigure [::mc "Copy"] -state normal } else { $menu entryconfigure [::mc "Cut"] -state disabled $menu entryconfigure [::mc "Copy"] -state disabled } foreach entry {Undo Redo Paste Clear} { $menu entryconfigure [::mc $entry] -state $state } } ## Write text to the text widget from SGML formatted data # @parm String inputData - SGML data # @return void public method TodoProc_write_text_from_sgml {inputData} { if {!$todo_gui_initialized} {CreateTodoGUI} # Replace all \r\n shit with LF regsub -all {(\r)|(\r\n)} $inputData "\n" inputData # Insert plain text set plainText [regsub -all {<[^<>]*>} $inputData {}] regsub -all {<} $plainText {<} plainText regsub -all {>} $plainText {>} plainText $text_widget insert end $plainText # Convert entities to spaces regsub -all {<} $inputData { } inputData regsub -all {>} $inputData { } inputData ## Parse pair tags foreach xmltag $xmlTags texttag $textTags { # modify input data for later processing set data $inputData foreach tag $xmlTags { if {$tag == $xmltag} {continue} regsub -all "<$tag>" $data {} data regsub -all "" $data {} data regsub -all "" $data {} data } # Translate XML tags to Tk's native text tags set StartRow 1 set EndCol 0 while {1} { set SRow 0 set ERow 0 set tagLength [string length "<$xmltag>"] set startIdx [string first "<$xmltag>" $data] if {$startIdx == -1} {break} set LFidx 0 set LastLFidx $LFidx while {1} { set LFidx [string first "\n" $data $LFidx] if {($LFidx >= $startIdx) || ($LFidx == -1)} { set correction 0 if {$SRow == 0} { set correction $EndCol incr correction } set StartCol [expr {$startIdx - $LastLFidx - 1 + $correction}] set StartRow [expr {$StartRow + $SRow}] break } else { set LastLFidx $LFidx incr SRow incr LFidx } } set EndRow $StartRow set data [string range $data [expr {$tagLength + $startIdx}] end] set endIdx [string first "" $data] if {$endIdx == -1} {break} set LFidx 0 set LastLFidx $LFidx while {1} { set LFidx [string first "\n" $data $LFidx] if {($LFidx >= $endIdx) || ($LFidx == -1)} { set correction 0 if {$ERow == 0} {set correction $StartCol} set EndCol [expr {$endIdx - $LastLFidx - $ERow + $correction}] set EndRow [expr {$EndRow + $ERow}] break } else { set LastLFidx $LFidx incr ERow incr LFidx } } set data [string range $data [expr {$tagLength + $endIdx + 1}] end] if {($StartRow == $EndRow) && ($StartCol >= $EndCol)} {break} $text_widget tag add $texttag $StartRow.$StartCol $EndRow.$EndCol set StartRow $EndRow } } ## Parse non pair tags # modify input data for later processing set data $inputData regsub -all {<[^<>]*[^/]>} $data {} data append data "\n" foreach tag $selfCtags { set Row 1 set Col 0 while {1} { set tagIdx [string first "<$tag" $data] set tagEndIdx [string first "/>" $data] if {($tagEndIdx < $tagIdx) || ($tagIdx == -1)} {break} set tagEndIdx [expr {$tagEndIdx + 2}] set rowTmp 0 set LFidx 0 set LastLFidx $LFidx while {1} { set LFidx [string first "\n" $data $LFidx] if {$LFidx >= $tagIdx} { set correction 0 if {$rowTmp == 0} {set correction [expr {$Col + 2}]} set Col [expr {$tagIdx - $LastLFidx - 1 + $correction}] set Row [expr {$Row + $rowTmp}] break } else { set LastLFidx $LFidx incr rowTmp incr LFidx } } set data [string range $data $tagEndIdx end] switch $tag { {bookmark} { $text_widget delete $Row.$Col $Row.$Col+1c $text_widget image create $Row.$Col -image ::ICONS::16::$bookmarkImage } } } } } ## Return content of text widget formatted as SGML # @return String - SGML code public method TodoProc_read_text_as_sgml {} { if {!$todo_gui_initialized} {return $input_text} # Determinate end index set textEnd [$text_widget index end] set textEnd [expr {int($textEnd)}] # Determinate length of each line set lineIndex(1) -1 set sum -1 for {set i 1; set i0 2} {$i < $textEnd} {incr i; incr i0} { set lineend [$text_widget index "$i.0 lineend"] regexp {\d+$} $lineend lineend incr sum [expr {$lineend + 1}] set lineIndex($i0) $sum } # Determinate tag indexes set tagList {} foreach xmltag $xmlTags texttag $textTags { set ranges [$text_widget tag ranges $texttag] set i 0 set index {} while {1} { set index [lindex $ranges $i] if {$index == {}} {break} lappend tagList [list $index $xmltag] incr i lappend tagList [list [lindex $ranges $i] "/$xmltag"] incr i } } # Extract plain text data from the text widget set data [$text_widget get 1.0 end] # Determinate images indexes and adjust lines idxs set imageIdxs {} foreach imageName [$text_widget image names] { lappend imageIdxs [$text_widget index $imageName] } set imageIdxs [lsort -command "$this read_text_as_sgml_aux_compare 0" $imageIdxs] set lastRow 0 set col 0 set row 0 set index 0 foreach imageIdx $imageIdxs { scan $imageIdx %d.%d row col set index [expr {$lineIndex($row) + $col}] set data [string replace $data $index $index "[string index $data $index] "] if {$row == $lastRow} { regexp {\d+$} $imageIdx col incr colCorrection -1 incr col $colCorrection set imageIdx "$row.$col" } else { set lastRow $row set colCorrection 0 } lappend tagList [list $imageIdx {bookmark/}] } # Special reverse sorting of tag list set tagList [lsort -command "$this read_text_as_sgml_aux_compare 1" -index 0 $tagList] # Traslate angle brackets to some special characters regsub -all {<} $data "\a" data ;# '<' -> alert regsub -all {>} $data "\b" data ;# '>' -> backspace # Insert SGML tags into plain text data foreach xmlTagIdx $tagList { set index [lindex $xmlTagIdx 0] set tag [lindex $xmlTagIdx 1] scan $index %d.%d row col set index [expr {$lineIndex($row) + $col}] if {$index == -1} { incr index set char [string index $data $index] set data [string replace $data $index $index "<$tag>$char"] } else { set char [string index $data $index] set data [string replace $data $index $index "$char<$tag>"] } } # Traslate angle brackets back regsub -all {\a} $data {\<} data ;# alert -> '<' regsub -all {\b} $data {\>} data ;# backspace -> '> regsub -all -line {[  \t]+$} $data {} data regsub -all {<[^<>]+>\n]+>} $data "\n" data # return final SGML return $data } ## Special comparation for text indexes # @parm Bool reverse - Invert result # @parm TextIndex first - Firts index # @parm TextIndex second - Second index # @return Int - result, one of {-1 0 1} public method read_text_as_sgml_aux_compare {reverse first second} { # Set return values if {$reverse} { set A -1 set B 1 } else { set A 1 set B -1 } # Determinate First/End Row/Column regexp {^\d+} $first FR ;# First Row regexp {\d+$} $first FC ;# First Column regexp {^\d+} $second ER ;# End Row regexp {\d+$} $second EC ;# End Column # Perform comparation if {$FR > $ER} { return $A } elseif {$FR == $ER} { if {$FC > $EC} { return $A } elseif {$FC == $EC} { return 0 } else { return $B } } else { return $B } } ## Get content of text widget as plain text # @return String - result public method read_plain_text {} { if {!$todo_gui_initialized} {CreateTodoGUI} return [$text_widget get 1.0] } ## Switch to bold font # @return void public method TodoProc_bold {} { addRemoveTag tag_bold $button_bold after idle [list focus $text_widget] } ## Switch to italic font # @return void public method TodoProc_italic {} { addRemoveTag tag_italic $button_italic after idle [list focus $text_widget] } ## Switch to strikethrough font # @return void public method TodoProc_strike {} { addRemoveTag tag_overstrike $button_strike after idle [list focus $text_widget] } ## Switch to underline font # @return void public method TodoProc_under {} { addRemoveTag tag_underline $button_under after idle [list focus $text_widget] } ## Erase tags # @parm List idxs={} - Indexes of selected area # @parm Bool reset=1 - Reset font settings on left panel # @return Bool - result public method TodoProc_eraser {{idxs {}} {reset 1}} { if {$idxs == {}} { set idxs [getSelectionIdx] } if {$idxs == {}} { reset_left_panel return 0 } foreach tag $textTags { $text_widget tag remove $tag [lindex $idxs 0] [lindex $idxs 1] } if {$reset} { reset_left_panel set active_tags [list] } return 1 } ## Select all text in the text widget # @return void public method TodoProc_selectAll {} { $text_widget tag add sel 1.0 end } ## Insert bookmark image at current cursor position # @return void public method TodoProc_bookmark {} { set idx [$text_widget index insert] $text_widget image create $idx -image ::ICONS::16::$bookmarkImage } ## Take back last operation # @return void public method TodoProc_undo {} { catch { $text_widget edit undo } } ## Take back last undo # @return void public method TodoProc_redo {} { catch { $text_widget edit redo } } ## Cut selected text # @return void public method TodoProc_cut {} { if {![llength [$text_widget tag nextrange sel 1.0]]} {return} clipboard clear clipboard append [$text_widget get sel.first sel.last] $text_widget delete sel.first sel.last } ## Copy selected text to clipboard # @return void public method TodoProc_copy {} { if {![llength [$text_widget tag nextrange sel 1.0]]} {return} clipboard clear clipboard append [$text_widget get sel.first sel.last] } ## Paste text from clipboard # @return void public method TodoProc_paste {} { if {[catch { set data [clipboard get] }]} then { return } catch {$text_widget delete sel.first sel.last} $text_widget insert insert $data } ## Clear all text # @return void public method TodoProc_clear {} { if {!$todo_gui_initialized} {CreateTodoGUI} catch {$text_widget delete 1.0 end} } ## Select all text # @return void public method TodoProc_selectall {} { catch {$text_widget tag add sel 1.0 end} } ## Handles key press # @parm String key - ID of pressed key # @return void public method TodoProc_Key {key} { # Skip values with no meaning if {[string length $key] != 1} {return} # Delete seleced text catch { $text_widget delete sel.first sel.last } # Get text index before change regexp {\d+$} [$text_widget index insert] col0 incr col0 # Change content of the text widget $text_widget insert insert $key # Get text index after change regexp {\d+$} [$text_widget index insert] col1 # Apply active tags if {$col0 == $col1} { foreach tag $active_tags { $text_widget tag add $tag {insert-1c} insert } } } ## Manage left panel, must be called after each click to the text widget # @parm Int x - relative x coordinate # @parm Int y - relative y coordinate # @return void public method TodoProc_leftClick {x y} { recalc_left_panel [$text_widget index @$x,$y] } ## Determinate active tags in the selected area, should be called after each LeftRelease # @return Bool - result public method TodoProc_leftRelease {} { # Determinate start and end index of selected region set idxs [getSelectionIdx] # If nothing selected -> return False if {$idxs == {}} {return 0} # Local variables regexp {^\d+} [lindex $idxs 0] StartRow ;# Row of start index regexp {^\d+} [lindex $idxs 1] EndRow ;# Row of end index regexp {\d+$} [lindex $idxs 0] StartCol ;# Column of start index regexp {\d+$} [lindex $idxs 1] EndCol ;# Column of end index # Object variables set active_tags {} ;# Curretly active tags set semiActiveTags {} ;# Currently semi-active tags # Iterate over rows of selected region for {set row $StartRow} {$row <= $EndRow} {incr row} { # Iterate over columns of selected reegion for {set col $StartCol} {$col <= $EndCol} {incr col} { # Determinate list of active tags at the current index set tags [$text_widget tag names $row.$col-1c] # Append these tags to content of object variable active_tags foreach tag $tags { if {$tag == {sel}} { continue } if {[lsearch $active_tags $tag] == -1 && [lsearch $semiActiveTags $tag] == -1} { lappend active_tags $tag } } # Determinate semi-active tags foreach tag $active_tags { if {[lsearch $tags $tag] == -1} { set i [lsearch $active_tags $tag] set repleceTag [lindex $active_tags $i] lappend semiActiveTags $tag set active_tags [lreplace $active_tags $i $i] } } } } # Restore highlight of left panel buttons reset_left_panel foreach tag $active_tags { set_button_bg_by_tag_name $tag 1 } foreach tag $semiActiveTags { set_button_bg_by_tag_name $tag 2 } # done ... return 1 } ## Set background color for button related to given text tag according to given state # @parm String tag - name of text tag # @parm Int state - state number (0 == passive; 1 == active; 2 == semi-active) # @return void private method set_button_bg_by_tag_name {tag state} { switch $tag { {tag_bold} "setButtonBg $button_bold $state" {tag_italic} "setButtonBg $button_italic $state" {tag_overstrike} "setButtonBg $button_strike $state" {tag_underline} "setButtonBg $button_under $state" } } ## Reevaluate background color for each button on left panel # @parm TextIndex index - index in the text widget # @return void public method recalc_left_panel {index} { # Determinate list of active tags set active_tags [$text_widget tag names $index-1c] # Remove tag sel from the list set i [lsearch -ascii -exact $active_tags {sel}] if {$i != -1} { set active_tags [lreplace $active_tags $i $i] } # No active tags -> reset panel and return if {$active_tags == {}} { reset_left_panel return } # Determinate list of buttons related to active tags set affected {} foreach tag $active_tags { switch $tag { {tag_bold} { ;# Bold font if {[lsearch $affected button_bold] != -1} {continue} lappend affected button_bold } {tag_italic} { ;# Italic font if {[lsearch $affected button_italic] != -1} {continue} lappend affected button_italic } {tag_overstrike} { ;# Overstrike font if {[lsearch $affected button_strike] != -1} {continue} lappend affected button_strike } {tag_underline} { ;# Underline font if {[lsearch $affected button_under] != -1} {continue} lappend affected button_under } } } # Set background color for each button on left panel foreach button $tagButtons { # Determinate ID of button widget set buttonWdg [subst -nocommands "\$$button"] # Determinate state number and set Bg if {[lsearch $affected $button] != -1} { setButtonBg $buttonWdg 1 } else { setButtonBg $buttonWdg 0 } } } ## Set default background color for each button on the left panel # @return void private method reset_left_panel {} { foreach button $tagButtons { setButtonBg [subst -nocommands "\$$button"] 0 } } ## Set background color for given button according to given state # @parm Widget button - ID of button to modify # @parm Int state - state number (0 == passive; 1 == active; 2 == semi-active) # @return void private method setButtonBg {button state} { switch $state { 0 {set style {Flat.TButton}} 1 {set style {Todo_Active.TButton}} 2 {set style {Todo_SemiAct.TButton}} } $button configure -style $style } ## Use given text tag (for selection or next characters) # @parm String tagName - name of text tag # @parm Widget buttonName - ID of button related to that tag # @return void private method addRemoveTag {tagName buttonName} { # Index of given tag in list of active tags set tagIdx [lsearch $active_tags $tagName] # Tag is inactive -> add the tag if {$tagIdx == -1} { setButtonBg $buttonName 1 lappend active_tags $tagName # Tag is active -> remove the tag } else { setButtonBg $buttonName 0 set active_tags [lreplace $active_tags $tagIdx $tagIdx] } ## Modify the selected area set idxs [getSelectionIdx] # There is no selected area if {$idxs == {}} { set char_before_cursor [$text_widget get insert-1c insert] if {$char_before_cursor == { } || $char_before_cursor == "\t" || $char_before_cursor == "\xC2"} { set idxs [list [$text_widget index insert-1c] [$text_widget index insert]] } } if {$idxs != {}} { TodoProc_eraser $idxs 0 foreach tag $active_tags { setTagAtSel $tag $idxs } } } ## Set given text tag for area determinated by given indexes # @parm String tagName - name of text tag to set # @parm List idxs - target area {first_idx last_idx} # @return Bool - result private method setTagAtSel {tagName idxs} { if {$idxs == {}} {return 0} $text_widget tag add $tagName [lindex $idxs 0] [lindex $idxs 1] return 1 } ## Get list of indexes of selected area # @return List - text indexes '{first last}' or '{}' private method getSelectionIdx {} { # Try to determinate indexes set start {} set end {} catch { set start [$text_widget index sel.first] set end [$text_widget index sel.last] } # Return result if {$start != {} && $end != {}} { return [list $start $end] } else { return {} } } ## Hide search bar # @return void public method TodoProc_hide_find_dialog {} { if {[winfo ismapped $search_frame]} { pack forget $search_frame } } ## Show search bar # @parm Bool do_focus_entrybox - Automatically focus the search EntryBox # @return void public method TodoProc_find_dialog {{do_focus 1}} { if {![winfo ismapped $search_frame]} { pack $search_frame -before $main_frame -side top -anchor w $search_entry delete 0 end if {$do_focus} { focus -force $search_entry } } else { if {$do_focus} { focus -force $search_entry } } } ## Search for the given string within the text # @parm String string - Text to find # @return Bool - Always 1 public method TodoProc_search {string} { if {$string == {}} { $search_entry configure -style TEntry $search_find_next configure -state disabled $search_find_prev configure -state disabled $menu entryconfigure [::mc "Find next"] -state disabled $menu entryconfigure [::mc "Find previous"] -state disabled return 1 } set search_string $string TodoProc_perform_search 1 1.0 return 1 } ## Perform search for $search_string in the text widget # @parm Bool forw__back - 1 == Search forwards; 0 == Search backard # @parm String from - Start index # @return void public method TodoProc_perform_search {forw__back from} { if {$search_string == {}} {return} if {$forw__back} { set direction {-forwards} } else { set direction {-backwards} } if {${::Todo::match_case}} { set last_find_index [$text_widget search $direction -- $search_string $from] } else { set last_find_index [$text_widget search $direction -nocase -- $search_string $from] } if {$last_find_index == {}} { $search_entry configure -style StringNotFound.TEntry $search_find_next configure -state disabled $search_find_prev configure -state disabled $menu entryconfigure [::mc "Find next"] -state disabled $menu entryconfigure [::mc "Find previous"] -state disabled } else { $search_entry configure -style StringFound.TEntry $search_find_next configure -state normal $search_find_prev configure -state normal $menu entryconfigure [::mc "Find next"] -state normal $menu entryconfigure [::mc "Find previous"] -state normal set search_string_length [string length $search_string] $text_widget see $last_find_index catch { $text_widget tag remove sel 0.0 end } $text_widget tag add sel $last_find_index $last_find_index+${search_string_length}c } } ## Find next occurrence of the search string # @return void public method TodoProc_find_next {} { if {![winfo ismapped $search_frame]} { pack $search_frame -before $main_frame -side top -anchor w } if {$last_find_index == {}} { return } TodoProc_perform_search 1 $last_find_index+${search_string_length}c } ## Find previous occurrence of the search string # @return void public method TodoProc_find_prev {} { if {![winfo ismapped $search_frame]} { pack $search_frame -before $main_frame -side top -anchor w } if {$last_find_index == {}} { return } TodoProc_perform_search 0 $last_find_index } } # >>> File inclusion guard } # <<< File inclusion guard mcu8051ide-1.4.7/lib/bottompanel/bottomnotebook.tcl0000644000175000017500000003572712067167647022760 0ustar milleniummillenium#!/usr/bin/tclsh # Part of MCU 8051 IDE ( http://mcu8051ide.sf.net ) ############################################################################ # Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012 by Martin Ošmera # # martin.osmera@gmail.com # # # # This program is free software; you can redistribute it and#or modify # # it under the terms of the GNU General Public License as published by # # the Free Software Foundation; either version 2 of the License, or # # (at your option) any later version. # # # # This program is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU General Public License for more details. # # # # You should have received a copy of the GNU General Public License # # along with this program; if not, write to the # # Free Software Foundation, Inc., # # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # ############################################################################ # >>> File inclusion guard if { ! [ info exists _BOTTOMNOTEBOOK_TCL ] } { set _BOTTOMNOTEBOOK_TCL _ # <<< File inclusion guard # -------------------------------------------------------------------------- # DESCRIPTION # Implements bottom panel of the project tab # -------------------------------------------------------------------------- # Import nesesary sources source "${::LIB_DIRNAME}/bottompanel/calculator.tcl" ;# Calculator source "${::LIB_DIRNAME}/bottompanel/todo.tcl" ;# Todo list source "${::LIB_DIRNAME}/bottompanel/graph.tcl" ;# Graph source "${::LIB_DIRNAME}/bottompanel/messages.tcl" ;# Messages source "${::LIB_DIRNAME}/bottompanel/terminal.tcl" ;# Terminal source "${::LIB_DIRNAME}/bottompanel/find_in_files.tcl" ;# Find in files source "${::LIB_DIRNAME}/bottompanel/cvarsview.tcl" ;# C variables class BottomNoteBook { # Inherit content of some other clases inherit Calculator Todo Simulator Graph Messages Terminal FindInFiles CVarsView ## Public public variable simulator_frame ;# Identifier of tab of NoteBook widget for simulator public variable cvarsview_frame ;# Identifier of tab of NoteBook widget for c variables public variable graph_frame ;# Identifier of tab of NoteBook widget for graph public variable messages_frame ;# Identifier of tab of NoteBook widget for messages box public variable todo_frame ;# Identifier of tab of NoteBook widget for to do box public variable calculator_frame ;# Identifier of tab of NoteBook widget for calculator public variable terminal_frame ;# Identifier of tab of NoteBook widget for terminal public variable findinfiles_frame ;# Identifier of tab of NoteBook widget for terminal ## Private private variable pri_notebook ;# Identifier of NoteBook widget when panel is visible private variable main_frame ;# Identifier of frame containing both NoteBooks private variable panel_hidding_ena 1 ;# Is panel hidding enabled private variable redraw_pane_in_progress 0 ;# Is panel pane redraw in progress private variable parentPane ;# Identifier of parent pane private variable last_PanelSize ;# Last panel height private variable PanelVisible $CONFIG(BOTTOM_PANEL) ;# Is panel visible private variable active_page $CONFIG(BOTTOM_PANEL_ACTIVE_PAGE) ;# Identifier of active NoteBook page private variable PanelSize $CONFIG(BOTTOM_PANEL_SIZE) ;# Current panel height ## object constructor constructor {} { # Validate and set active page if {$active_page == {Terminal}} { set active_page {Simulator} } elseif { [lsearch {Simulator CVarsView Graph Messages Todo Calculator FindInFiles} $active_page] == -1 } then { puts stderr "Invalid value of active page '$active_page', setting to {Simulator}" set active_page {Simulator} } } ## object destructor destructor { # Destroy GUI destroy $main_frame notebook_Sbar_unset {bottomnb} } ## Create Bottom NoteBook (This function must be called after contructor) # @parm widget mainframe - Frame for bottom notebook # @parm widget PaneWindow - parent pane window contaier # @parm String todoText - content of to do text # @parm List calculatorList - List of values for calculator (display content, radix, etc.) # @parm List graph_config - Graph configuration list # @return Widget - ID of frame containg both notebooks public method initalize_BottomNoteBook {mainframe PaneWindow todoText calculatorList graph_config} { # set parent pane window set parentPane $PaneWindow ## Create some widgets # Frame for primary and secondary notebook set main_frame $mainframe # Primary notebook set pri_notebook [ModernNoteBook $main_frame.ntb_bottomNB_pri] # Register notebook status bar tips notebook_Sbar_set {bottomnb} [list \ Simulator [mc "Simulator panel"] \ CVarsView [mc "List of variables defined in C program"] \ Graph [mc "Graph showing voltage levels"] \ Messages [mc "Compiler messages"] \ Todo [mc "Editable notepad"] \ Calculator [mc "Scientific calculator"] \ Terminal [mc "Linux terminal emulator"] \ FindInFiles [mc "Search string in files"] \ Hide [mc "Hide the panel"] \ Show [mc "Show the panel"] \ ] $pri_notebook bindtabs "notebook_Sbar bottomnb" $pri_notebook bindtabs "Sbar {} ;#" ## create Primary NoteBook tabs # Tab "Simulator" set simulator_frame [$pri_notebook insert end {Simulator} \ -text [mc "Simulator"] \ -image ::ICONS::16::kcmmemory \ -raisecmd [list $this bottomNB_set_active_page {Simulator}] \ -helptext [mc "Simulator panel %s" "(Ctrl+1)"] \ -createcmd [list $this CreateSimulatorGUI] \ ] # Tab "C variables" set cvarsview_frame [$pri_notebook insert end {CVarsView} \ -text [mc "C variables"] \ -image ::ICONS::16::player_playlist \ -raisecmd [list $this bottomNB_set_active_page {CVarsView}] \ -helptext [mc "Variables from C source code %s" ""] \ -createcmd [list $this CreateCVarsViewGUI] \ ] # Tab "Graph" set graph_frame [$pri_notebook insert end {Graph} \ -text [mc "IO Ports"] \ -image ::ICONS::16::graph \ -raisecmd [list $this bottomNB_set_active_page {Graph}] \ -helptext [mc "Graph showing state of MCU ports %s" "(Ctrl+2)"] \ -createcmd [list $this CreateGraphGUI] \ ] # Tab "Messages" set messages_frame [$pri_notebook insert end {Messages} \ -text [mc "Messages"] \ -image ::ICONS::16::kcmsystem \ -raisecmd [list $this bottomNB_set_active_page {Messages}] \ -helptext [mc "Compiler messages %s" "(Ctrl+3)"] \ -createcmd [list $this CreateMessagesGUI] \ -leavecmd " $pri_notebook itemconfigure {Messages} -image ::ICONS::16::kcmsystem " \ ] # Tab "Notes" set todo_frame [$pri_notebook insert end {Todo} \ -text [mc "Notes"] \ -image ::ICONS::16::camera_test \ -raisecmd [list $this bottomNB_set_active_page {Todo}] \ -helptext [mc "Personal to do list & notepad %s" "(Ctrl+4)"]\ -createcmd [list $this CreateTodoGUI] \ ] # Tab "Calculator" set calculator_frame [$pri_notebook insert end {Calculator} \ -text [mc "Calculator"] \ -image ::ICONS::16::xcalc \ -raisecmd [list $this bottomNB_set_active_page {Calculator}] \ -helptext [mc "Scientific calculator %s" "(Ctrl+5)"] \ -createcmd [list $this CreateCalculatorGUI] \ ] if {!$::MICROSOFT_WINDOWS} { ;# Microsoft Windows has no terminal emulator # Tab "Terminal" set terminal_frame [$pri_notebook insert end {Terminal} \ -text [mc "Terminal"] \ -image ::ICONS::16::terminal \ -raisecmd [list $this bottomNB_set_active_page {Terminal}] \ -helptext [mc "Terminal emulator %s" ""] \ -createcmd [list $this CreateTerminalEmulGUI] \ -state [expr {${::PROGRAM_AVAILABLE(urxvt)} ? "normal" : "disabled"}] \ ] } # Tab "Find in files" set findinfiles_frame [$pri_notebook insert end {FindInFiles} \ -text [mc "Find in files"] \ -image ::ICONS::16::filefind \ -raisecmd [list $this bottomNB_set_active_page {FindInFiles}] \ -helptext [mc "Find in files %s" ""] \ -createcmd [list $this CreateFindInFilesGUI] \ ] # Tab "Hide" $pri_notebook insert end {Hide} \ -text [mc "Hide"] \ -image ::ICONS::16::2downarrow \ -raisecmd [list $this bottomNB_show_hide] \ -helptext [mc "Hide this panel"] \ # Prepare panel componenets but do not create GUI elements PrepareCalculator $calculator_frame $calculatorList PrepareGraph $graph_frame $graph_config PrepareMessages $messages_frame PrepareTodo $todo_frame $todoText PrepareSimulator $simulator_frame PrepareCVarsView $cvarsview_frame if {!$::MICROSOFT_WINDOWS} { ;# Microsoft Windows has no terminal emulator PrepareTerminal $terminal_frame } PrepareFindInFiles $findinfiles_frame # take case of proper pane resizing bind $parentPane "$this bottomNB_panel_set_size" # Show primary notebook if panel is visible or secondary notebook ohterwise pack [$pri_notebook get_nb] -expand 1 -fill both -padx 5 -pady 5 if {$PanelVisible != 0} { $parentPane paneconfigure $main_frame -minsize 215 $parentPane configure -sashwidth 4 # Raise tab catch {$pri_notebook raise $active_page} } else { $pri_notebook hide_pages_area $pri_notebook deselect_tab_button $pri_notebook itemconfigure {Hide} \ -text [mc "Show"] \ -image ::ICONS::16::2uparrow \ -helptext [mc "Show this panel"] $parentPane paneconfigure $main_frame -minsize 0 $parentPane configure -sashwidth 0 bind $parentPane

\7=<W޻woݏ?޻w@}R[K ~;22r˖-G}gd|xuaˡJ9WVVlD|M1` =(ǹn+矆_aEQ4uf>jժB;s@_*$ş$Ij4!ob1h p22 6΅#Gi^6&88800Pwdȑ;w?~vPXsk_K uJl;*Jh {x3ܾ]3tvt*+1DNNk  p|]U=~XV}L&քBX}L3` (+48//Ξ=L'øqp P s;v믿$0f .BVPLvSaC:{ٹhοc)><| wW/k܊L޽{KKK-[xgL6{_&͜9"" 9k>aapS~K4Zh;L0A*d2Ll4`C0e $%UmuJr9ro)HWn >nCF|ɓKh X, /熬5w۫dڵ0u*ܹԀiz Æ5 /^=Ɣ)0j,\}ƍճʬYз/lk<#n<?֎ln>Ν;_KѿwYw?R35iӦbR>Я|5@]&/??„ ˖-d111k׮=\=a4`˖}K4 ?Z>|\o14_cqFo.++5k[oU=_ý{з/\ kT3V?/y 3$H$*65,uCBjġ\ п'ɆL5XzX?~h `CzC^G%K@o o@ԩp0'Se8B55GB۶M7 GɄ5k޽8 ToyBVF;ab[!-zЗjbY8iÛ[D/MZX~5Bk7l}YCzC֏a8B!B&oB B!̇8B!Bw׿;0G!B&pBB!p ԩS#B!M`8B!Bt&L{M=SIa B!Qd¡)!B#B!dT=Zނ> B!S7hQB!zyqB!lqB!lqB!lqB!lqB!lqB!lqB!lqB!lqB!lqB!lqB!l7ou1B!z0$ˀB!K B!d#B!d#B!d#B!d[ܙ endstream endobj 780 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [210.178 660.844 216.902 674.64] /A << /S /GoTo /D (Hfootnote.5) >> >> endobj 781 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [364.112 574.169 370.836 587.965] /A << /S /GoTo /D (Hfootnote.6) >> >> endobj 789 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [234.063 503.19 240.787 516.985] /A << /S /GoTo /D (Hfootnote.7) >> >> endobj 790 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [464.778 503.19 471.502 516.985] /A << /S /GoTo /D (Hfootnote.8) >> >> endobj 791 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [357.779 488.744 424.464 501.294] /Subtype/Link/A<> >> endobj 795 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [193.738 262.589 250.816 274.887] /Subtype/Link/A<> >> endobj 796 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [373.756 262.589 471.502 274.887] /Subtype/Link/A<> >> endobj 800 0 obj << /D [798 0 R /XYZ 80.963 747.976 null] >> endobj 98 0 obj << /D [798 0 R /XYZ 81.963 712.73 null] >> endobj 102 0 obj << /D [798 0 R /XYZ 81.963 546.608 null] >> endobj 801 0 obj << /D [798 0 R /XYZ 81.963 411.905 null] >> endobj 802 0 obj << /D [798 0 R /XYZ 99.891 230.539 null] >> endobj 803 0 obj << /D [798 0 R /XYZ 99.891 206.628 null] >> endobj 804 0 obj << /D [798 0 R /XYZ 99.891 170.763 null] >> endobj 805 0 obj << /D [798 0 R /XYZ 99.891 146.852 null] >> endobj 797 0 obj << /Font << /F25 474 0 R /F39 618 0 R /F16 475 0 R /F36 596 0 R /F24 476 0 R /F44 651 0 R /F43 652 0 R /F45 668 0 R >> /XObject << /Im25 792 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj 810 0 obj << /Length 1751 /Filter /FlateDecode >> stream xڝWIw8 WVZHj[.3sȌVNҖ3j'o." $ :vfxu)B'4 w!ďXF^)gq>B-W2=kXš+*bL9s>2p?ߞ>}doo_EN0WxRN^/> 09'ٓh$B%a^97?8A T'![#=\~:]VpBʓ*"J^^wߗ="1va_T :^nv)bwF-0fU,>tp, [ͭ /l buKɻ]B~Od^d9 .;tzYf2f (zՈ3%ݚ6?v?#Gwam)4{uV=deKpLdTMVk+S ө t`=K'`~tdYmʡ!>sNO\C6mxtM~`(}ߵ57lB&>}`xDU ݙe[HPS>3Obh.hC=|^ٜ%}YC`㞇{4e-Ɇ e`y`nꇼpt<|?N?/EOI(y ~'4ูflRؐc/ XU]J#Ka}{ $霘wk!k9j9-cŷ׬=E(@ ӈ"Yv,H01+8nxcn8[՞l 7 "C)dd N)^aS'~Dž$/3C|([0xٮ !; hMj EL@~ '>eeIPީAFtgxQخC/ڱ#N`K Kzo#~[Sf񱒤vmD#iRx,>2sft . ҶЕUc6YUfQo-TUvnӪZ+z~c@ 3&L%G$Ui=BZʶ96^WdU\n ےMA-xlcC S8Hj"m +y "?J~zM:=A="Ħ$:<.Dg}i#eq[ITh~k"F IeKs:o:g>::sj‘X#p}RNJ%J¢0XD`n I<#oA ٜv]=p endstream endobj 809 0 obj << /Type /Page /Contents 810 0 R /Resources 808 0 R /MediaBox [0 0 595.276 841.89] /Parent 740 0 R /Group 688 0 R >> endobj 806 0 obj << /Type /XObject /Subtype /Image /Width 251 /Height 294 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 813 0 R /Length 15704 /Filter /FlateDecode >> stream x\A).XOPT8^Cϟb/YPQb/EPA)6P@iJK!!J -\؄@ٗ27v`KB9 u8#wx)+Vp0"F.AD~PROMM |?ATj:Uӝx~/ hn";泲sc|ΐ@8۟r6p͙oÙn3x2"Y.ӛF_i1E.]|9] *U +W ,{!]ކFht6S#Yyηo^9`` EӧO;fn5sVwioF~Briy$( s Ηs>6SҎV5:Sg軪vI]}w'L+)a2 ,fJJ`Ǚ#߽ͥӧXZYnhWZeHD9{!cdZgW QUTa1CR& TRRRaaep#_p\.W.;|xAx/Y*A\>|  FyYPI޿I 7w{{Ͻ&^xc%3gXYY:th޽1"h߰j*}} 4B#i/Xl'*F5<6STġѪhYUTꗃ1 GlxZͽZ!=BND[=@NL'PϒsIR0ʖ||&}ϋ0 ml^r.yF3VǭYXц Ve ,=kV#!\v*Ac_~rpV '?CWefFV4*1m] MQ!U *|$1m, BR|>Aӑ>)#(矯K6Fa{z9^ ~M֭;r-L&TlmmϞ9{q }oc#˖ϞHH \yN Iu9";Yg0^o0kmTOJ9]dfV ҉À736Z4jкѽD6WW·žbxeSWUu~xg|#|C5ީ׮{e˖7Z~$UXQQQxR9{qkÇw467[|٢ fϞ>}v#_dsu_)6?ue|@?~~N '/Z v59?ig_"_?ZkF[ i_-3O@0R3>nGr˯ez?l] cGGD64]5!Vǯoxpxabl׮]&&&6mZf+-^4GoΌ3ut~DZc6yG(~E;YUs?uWR27SyD؀a=px -7>3c}i̟M r5=4ٌ Ǧ&ub򭁕ppp9L?:ގy+,\gE3۶Y]ktM|||nnnC,6M7]vŊ,͌g?8nܸ~ʯtt1|PvWμU㍊U)O.LoFk ϔ"S1m?<($sݯ'L frr\57yro~97m `nn7E[ 6Z[ S_WC%KΝ4?Ӹq54 qL/8Vᜍ*dϲXA'KN+IN#Fh~沤@;1=0($jZ-s~|=O\0WrM!PLYgC{M^>SIk ~wFKKkЁ6 KNd$q<8W'ܿ/^aNmKK#'R}xD#:y?3+fv԰ owo'ȉc@nP<*pg\*?㉯qhOns8n^A0׬&v4ZR)+f_2ɟXёW>ImkIlk$s3DŽw *%,mI҅[w⒉8 B9*gԉ{]tuVX6h,(^nzt .䟁(b$0"ߥq˻q33rn' w{P:n~"MyH֮Dz[f\CTaiiiRyڔskuhoGm3cnwV]ZSGcc5?F?-fp%iJHL95"Yd[8- xV%3McmVODhc"[ ǂcc`1X0x,x < <,x,[n_(fci3sDP <|Hig1ˮi X15/S9oMĥf{ Kǻ%˯Ndx/>zK#^JclrdiMGyz@IHBFG(R7x ?abL[@1f}[~+cOyg#7ammiw|J62Wc[Ox999 <) C>:v_ XijwߜF7k{orp>n R/~(Yx,o.B~&RWFdF4r__xpfy$C7^': 2Yyh^|H5xi8 |gC~ooXx?xi l)&Ż~߇`|U7_y C2q pd]0b<Srt~<۽n. KPӐM8xWrd3 ?1G~%AZ?.|C&%>qKdukom'g (\د@ǒ6}wG~2{Hamx`tOl4pC~1<sAPhb:Qw5x.V9 H&=F ?(8p[3 Ejd}S>.-\pZ39{ukhe;ؐ`w+Բ͎o7tZz :$jM0xwOpu  ?Z7`^q C\dzK/Ҧ/CװRcێh4 XZjc1x < |[>''{cƌquu%ɬ^DQ u@92<>P*-H5*38 (9۷TTҠNvdd9(*P%11pKnؐyK ƍ;wrSRR 行GO *)Q! q2t:[U5 ]jj7@ohEY>+d߶M:YMM7oވPʴE L**jbb`WWA޽>5 nA~Ҥ,͂yyڇ\ ]Q]եAS ->}:7oӧO߾}KKK)e"^;99ua„ χٳl6pڵKt߼/eBťe@vvpd Ӯ8yyKB̙3/?}T)1>11qĉK{ŋKRR8kkgKKn.0 ~C82%e ߔC>>^@)12ܕAÇڠ TWʫVVVJ =y0!K`Ъ(t Cɽ{`dõϞ=]cu@22.葪HؽpwO;6hEc1F/kC^CC=ٳѣ!3bĈz >s&2UUP'L(_qHsܚ@5^t |PPI&Aۻ^@rrؐٓ@^,.ZDTTpaIIvq"TjU3v iS>} !ӱcGpx11rS@cd*S'0_eio*M}SOxT믨ٳge Ӌn%^֚ We˨޽kϟO,N;q@4!( ?G+n"nO|=ybCrm\>\\v1><<mVEN2/^(L/iaxr _!#8|P"^}ԉ̭[F0w&^]5=Ɯ|9" !b=ghOEbh0I=}x W7ȇGmD4PըQK3vlf~~$WWL*\Nͺ4G' xV0QIAnEnO<'E ,ǏWPP:t+x"Ӌ z4eeSS]73ã-,F$eBPޙK 'iw \/nq27@=BB/k7#OD>1M5-{nG_Xhޖ7nn%h]J\G_!aDȅ0!a'2RY>Skᅵ%0~ "@|BB%hƍY%v(0F* aiB"_Xcp x2ܤD>$5l'I[ 63fi_rh= קMryӘ0?A+SPP73=td["Z;D̨+1[9 Yn y"^بfffv('B=< nlL ZRUtF<4.]R)Ҍ &kKa ̫ܲе^y2?^|J\\?-bЇǂb`1X0x,x < <  7n 4n\&*@<=K&MʂԩP.4ȯ\)rp $Ӆ !jej} '1 <qBAP)ˮE:ٖ\x"E ̀@ gO?<YC_`#Oz^s^񺺺+؇B=H[ O:;psܱ&H|୬ :] gϝѣun|jhL8vڵG6b):uKTɫ4+ ѥ:eB:g?;ܵֈ?`8hw+6a|^^lceW=ϜwagϾC֭O_^^E@߷޶mGWϛsrʀb`I|raS82Freqc5*mXP^پ֡UG';2B@hLll6[9 Uo,lymIS|*"c…h0\pͶOIINgjj7x^RL6x̠G? JeK·6߻~箛vvbNk` xzjbb"YXxƂƏ˫F>,j%%*]tuiPԩ|PU?}t7oܧO} SʴEaW>|Qz d wrrСÄ ϟD Y~~e("%t^Nvx& 78A̙35uOI2mQ_'ϫ`葘8qD{p'$ hX\˃z)S[0y0M |pp0.vȟ;wT)FZz@ ;|'ڥ[@$ݽOϒ&˗?ѣGI2m, EzOOOq"sixfb:x`v޼&o2mx,W4УA%6p`CM%0hUT:h޽y0(h28{,I2m/kz̚5 >sL]?~(|E%UTj%a4Z$>9&HEEw޼YJ)=LUz/ڲ ARi`@;)(PGσ'pNvDĿ 7<ȑ#D(e")𬒪)688gR (;´ϕGI[D>G+W6?LZsXj飬K[3^Xy;gݝT8+orK+3N]u dx,-Ij_!UP~:Xt|`U5gÌb@ gvxz׭*<#kw\@UVOBS^qx9"OS[,,~[T^%oQ4f$^ |zX] `$kn8I <^u0X~ ߨV9Ҳ G5xi'7ȥ,.+OIeos(ߧy%p_E$ߠA+J猠db \FMee,%\p/O*))paeBB6/&Ld}@+'wiO:7 "Ç4iRdd.~'  }ΝhQX}ȁKo߾gX0ڳgԴ-**a_d/FDDoذa5{ 2Ft:ܹ3_VVvȑCVWWx,-]xp/;u#ٳgcǎA;ȼy󆧬Q_]#q&uO*WVVxݻwwLvv6-9G y10+˗K.͟??+:w\**f¾FylllpPP%Kn+0~GuF-oiii&CoJpoܸ'N5,2W# /F@!;Cxzz… #˷ `obƌH F$b_444Сj+"zSq5In˷ 'Laaa@ݝ-srri􋕕}kS#0*?5u&1cXYYU1xdUTT` |ø9À d?(]!CHdik3..JfffSLN*ߖѩSŋ_| J]]] Gv~qڵޣ%vW5\5!ZG i 7nvqj]GǦ i %&eAԉޒ +Y&HC[xa '9 3x)@ j/k4ta@"^ `)wxa "Kw@xa DxK#,A;E[{{RkkS隆/oQJjC 75ҕXhpB/.)^gPéﱔ]Hv<E{s5捦O6ft?Qlxc<\p#mo{^x`!E4_VY&\0>=VׇeLmx撚Zx i<~el oY}s0mև!qd]r8-YwRmPr;\zVu;oc]x*JYlY޽QFRPP Νk_w/" dSU%@O%%U_ 骪Qoܸ!4hѣ6#FdTU5[qH[^Xݻ!?~xvP0[ޥۙ8-/,.ťAC |v{ - }ǎT ojJ\ǎ5F 8/,УW^k< P*!3hP8F!E4<ོJ7n=u mxRti]gȃodϛsڒ@Hw=@"RK9]at:]EEMKkNĴiS542}BWFbn ϟ?K"bp?Ï2zh$IYKKLlO-3t.F\7MQoci*%W5n Ӓx,t*Iw=x.x,t*Iw=x.x,+d1oץRJi.I@ r2%%C$ @JNؑ`iSjii5= xyyÇ; ۷qHvz4߹sgn͒#FK=fg9On9oHI@<\CK|^<i##8֖  -ij$ ԥiiRn V#_g椉PX}ryS)`0Рֶߢ@02+$7-6LjodĄa0VU5 5-'/;I@<tqA|g͢ f[<|Kx,C0x <c)ZCc1x <3gA׮GckWlʕ[Ew$ ZZў=ċR׭c |%%klק"_~~]7Nhi՝DnJix=2yױ'_ȷ&ooIwAkժUK,ڵ+^rEXv<Dc~ҤI z=W"1߻wk._G"H Ҫߘ@}xn*ۃ![ xOKSVVfjJߢvxa;p!Cz wi;;@%!6m>}Εrx-be < lllܘA+2$wvxM c1x,x < <  O0sN:ueܹ*,D\R))Plȏr,::ّ=ڹu cc&0c8ߒ[0x <6)nnnx |Ǐr"o?SLQiӦ}V0ihh ~D31h]#5Ÿ}&%%ܹSMMd6 űQQ .<ҥK'N@0@F#b͙3'11=VƢpo~ܸq!!! 6116l^|p000AoddԵk~Hhe֭\C:9<\zG@`0,XNxO>̄><`;88/^ػwo.]ݻ%l2b0`y#gl|xާxgi _ɓׯ90#}<} 08g) d͛'W[ɧBC >_, ?V/@6x cǎuttDw睊F߿ pY+Wrپ}Bmp/|CgixyxR?xOZ[zc[Zф|ǫ%1x <?⇁očXZ``1X0x,x < < ǂcc``c ?V ~ endstream endobj 813 0 obj << /Type /XObject /Subtype /Image /Width 251 /Height 294 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 167 /Filter /FlateDecode >> stream x /9`e2 endstream endobj 811 0 obj << /D [809 0 R /XYZ 122.806 747.976 null] >> endobj 106 0 obj << /D [809 0 R /XYZ 123.806 712.73 null] >> endobj 110 0 obj << /D [809 0 R /XYZ 123.806 685.592 null] >> endobj 114 0 obj << /D [809 0 R /XYZ 123.806 572.009 null] >> endobj 118 0 obj << /D [809 0 R /XYZ 123.806 471.849 null] >> endobj 812 0 obj << /D [809 0 R /XYZ 123.806 434.555 null] >> endobj 122 0 obj << /D [809 0 R /XYZ 123.806 330.676 null] >> endobj 126 0 obj << /D [809 0 R /XYZ 123.806 212.459 null] >> endobj 130 0 obj << /D [809 0 R /XYZ 123.806 177.683 null] >> endobj 808 0 obj << /Font << /F25 474 0 R /F38 617 0 R /F39 618 0 R /F16 475 0 R /F44 651 0 R /F43 652 0 R >> /XObject << /Im26 806 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj 821 0 obj << /Length 1811 /Filter /FlateDecode >> stream xڍWK6WpUEO _%gIUZ-juP,nki"!?FH\ٴ:?bt߿m@ۖ:ݏDf14?o"q&SD;m3je*r2oш ܬ ƣcp?VR]&t3VRS?@FN19xfc?0/HiMExyP2nkwP,?>CիyΆOۥiǂ3dt"%"fU2W"Ty6f"%F͜)I:aD74 endstream endobj 820 0 obj << /Type /Page /Contents 821 0 R /Resources 819 0 R /MediaBox [0 0 595.276 841.89] /Parent 825 0 R /Group 688 0 R >> endobj 807 0 obj << /Type /XObject /Subtype /Image /Width 22 /Height 22 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 826 0 R /Length 558 /Filter /FlateDecode >> stream xڕkQƳr]*.݈t릸܈ ݉ q؄VEK Ehb#y6&L23yype 33s|?!oxp@/ϑݏ[7{>sjQ(WEAp'烌Z8`_vE3يz> stream x!0bCRmF5}G endstream endobj 814 0 obj << /Type /XObject /Subtype /Image /Width 600 /Height 457 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 827 0 R /Length 25664 /Filter /FlateDecode >> stream xXSWE8=kQZZ{o⨫n=QQqV@Pq"@( PdE( 3|ڔ>%!{{Mjw@Ұ/OxuYTu}:YyO#v8eZcg\[e#Ozt٢lA4[ IyegN r 3w&?w7h;oƒɉ#Os|,V[nvv~ffϼCe΃ַn\~%ߟ;vlټ0h׼_c.S&khNfgP:t(t\hU&qSVߑ5pd؏`x55'${;ٻ1.gOKqt ?~_R{-qΜ9s1~dǎ?lٲnݺ+VTq&;^j)p]܃?SR$Aw?qVEQ1y<}}{7۳o::۵<XL6Ǧ|`^ o5ukz~hd\zwٿIǦ[5Z~Auc&>e1wKPo'IӧM5|g{A̹_>}'ݻ\AddRppO^ s_'N:yiA Z%.?砽ġxk}]<}"kx/㇌4Ip+W.^xy Uʃ3/xGi'QM`[mj[XgMߗBN>6 {gϚ%\X!X͠A^nՓ߄jZZ{1 _mkJă}uq&G?ɉa4?3[eɽm;.zq:w5L~_VfؐZ|^B!p$quuSgV`+{w~rMK7/Z{jC5dSV| Ϝ=K1>d;vׯ_Ipɒy͜1s6<@`U9V6sCGoK\FK`T/LaS{QR丷 l7_>eY5gV S6 տ399Y|Խw컮pQW=G/i~F2[厚K:-'!vX`{YP\9=bc߿y)fg&%=~EԉxU V['riCmv1eO}.e1s|͎;&kxqcc$$A}Nz+,Y3o̙S&L0jhxs\ã󢵄o:Ѣ:>=SեI"wZl@j^i#2.s?k]ɭcjߜ洛^vS/>>^L;t\HsţzN]V?Yv[uz5W8j.sX/vA sCCM6Ǎ1baJƋ%%>HM$|:::;$$ɓNOCj?fّ#MQ_?vw)-6!& Ϋ~' Lў8qѣ  P>6IW+牺0w-Y=DR+ zseI4Fըd=x7h]^.^ߴFǢZ_ͮٻf-]>\'**J㡱ڱ'=ɵ-^q _^w[V;\Bpw(O:VΟ?l Ipܸq$AI0;4cO;'[Yy:t_EEc8z ~8qqG6Y9d*IwXlXц;T Ip׮][6|.Ip')'L :_~ U˃smՅӜϕ$8#oN[?2W/SUVYY ?]vuayv?xaGy7dZq<4zO[ok.{Z\].?sۏO=ˏVMMur޼% )+|M ) G= {pȆ/ǙpYf#WXtbZo?x{V 7uIuf͚9unj3tI@=X>yჺ\WsnP]w$usѽ[*T[Qd/d{g;Ņ':4k(Tqsyk-~ 05us a0qӌ|\ }:5}FBJ39S }'z#88$YȩSNqs _?f@*ۛ9MlN!f B哵ɓOzkƍH!e~dInjF_!A\`pHdTg=;33CC"  WFý;^4قla6 5Axͦ;Wk`f wN1M|F=2koMz}2lñ^~,9xA I];v 1&I]wyDmׯ> 񉱴46~`k"2-:C-Ĵ W3Cnfbb͛%?UW-]t1 ?@!ABBc^ǚ:Ml۸{wmfgg#";-zV3q/np~$%㢟~51#!!1ݻW>lket?]侜/\ϟ7g>y,(_Cd׃Z3Ҵ]48yr63Og4Ιeo 6Ƚ~?=I<~D4֖S~f|K#Deʛwzg'pɋNz6ODz_ԃ "'&ŋO6d~n<&&SVnzftr@ S,T_dVkGA/ TT˗g^N7wyOǎoۖ=09uc`)UR"(á |ɩ?%Nb<Ά'Ÿ .8Ã_t&ɢo֬,ރyޝswb\;!9{`ԠLu8wU-wE7yQk 3­ײG̅Ѓ6dTZ80?{Ptϟ_lF yZKet 4&e6f@xʁ9 =/FSv١3K#ᯆ**Z[N6ly?ߧfR?2Ĉ|"۷)E#b5(;}Re=a_&Mތy$Aj?nd x:bVVi%~~ z, ȔHrDeOꨝeg-?\RK`LܵkWyyӧK*K|^nԨBnn߾-ugƍmYfԎ;ۗ Pm$ȑ#_m y{g?p@ݺuo#&NyffY… 'OJЃ_gPPmmmΝ.׳,<߲eK@Jϙ3.{{{#iӦYzvO-[,$$O{>!ڵ+44tɒ%"/`A---z+֮]ܹsׯS(b.\m333阝;wcJN֊+WsbXgYxLIlٲI$Q2Eo|G$$z8LZEAh666i{'RE1rsI;$A7nիEq^烢RSѣeA?4idݺuE!wӧO 烤/H߾}3툄.'w1=/OrpR0 AZ(WWN<{ǎ}֭)J`Y,>>|0` ޾}v_GAm?n:I~mԩԑy73$$dhhDi;NgiO2^+ރE=ؾ}{zQJKcdd=,x۲`/ </ <Pu<<P=AAAx*˓~6Cu YZ5˳֭޽LJ as ]\6mj#cGJdޢ{!ߗkڴP(:AAQ@S Ո>$Ud֮e͛s}ggno_VXx8T&ja`VAmmm^zQ_'<$ ~~"O&:t1)+=ǏXE`~Eի:AA>nEVX9۳33n%H"z㢋/y&~qQx )F.ItHr=mR+q\Yj*w­[܄G!1 ~0//O^^o߾ \,+ɶZG5a-Z ݛ;3454j^-M*?HԫWo̘1_'<<2 "!AAAxxxAeϩS]#G"t.w;v}ڵsww:Ip_A*e-SU%t.ٳgiQFӦMС .m<@]fFzA K&e^@ :yF<@UL]aJJ,"$e]w駟w S-2[w)-l&كILLA@E]:seѕ+ٚ5fM֦ ;,p\Aӧ<(wt%Da6a$&$:uꤨ>^$eR~p\T"HrgΜ׋J<<(uA #K]GoJAI]AAAxxxRݺK}ysvqN%կ_ر>>>NxxPdyPK-]ʵ-[1qN%ރ]t! ˫~m ]eypKbH r @. ]0GGxL2uݥܹsNxxDL)] *󓘘߃QQQԟ(_tݥ< ʤ8P-ߏoÃ){P.aغuCVB:uD׋7t׋@RK^=QsqE:uxd1cƔA& "!AAAxxAP=Xr@>P=(ukܘݹTqNݥ"N u-fq_8n ҩT׉|x[wf`ii,) ҩT׉|x[wϏSP:&q> ħ.9(u"|Ef.=TVM+׿t ObbbA[wۛkksHz5$V=(L]U&L&{B%bp0uܥ4 $&ҩT׉Ud2^w)-EGs*Y3##xL\SwI@AAAxxxRѺK,,B:uh^z7/ H<h <@U /J!xSP:F$/t(KKU ۷>}$ͪ'LM7m.Ww駠 @|t(Y1+ gǵ_1ڒxsu Ç--ZZ*HăMoQ$Q*$Au? B+TPՃgzxp`/BZ ԬY-Wj>V4Rsjϟ{Iă:P`<8gΆRo:kӃA*Ig_p}+ Lz:tqqu5mok>8x??>H)n۱\}(;ܡjMʮyxݾeiQR/,1kVVPP.<-Tbzx4qۙǃ{}y@8"Sh8%5 ]Hu&D8E7K)vp=W,n^c-ɶgϞYY5{`\]CƒVV?8lu&()()ձ XT=TqHK<JA WV>/u$KM-`͛3%%6~gLyxxxZXXx]jN!;;ɓQ֪j?`rNIdǩhgɞ۳ΡZZlvHelJ s{QQQKACCޢϟ?=ŏoٲ嫶bkOu]++圜x G48)yؑ4z-vȡUpeyXWwfRsoT2!/KR6b&Mn]akԈ͙SqlϏ=W,YYl"V!6mJ*o7_T'P))^ $!H|a┼c#3icQ_[_g>?>0)nfYu+[s?!)*h6i[V$֯gcrݝk WZ5֠zU[s?+򠲲b.]K{W({PZU JA!;$:ә ^KX \%S ,g'2SY~\g`?n9H-SWg>>];f`ʬgOnccc&MZvŋɆ***qqqئ7W***0\lGvٜ#|S_|DTQ+$<{3k,+}:ahȝ"Ը^ȏE2mzff\VxD6O߸q ej]rn3 1 [o!7@@vttџ~VƢg ܥii;uk%0Ev(.+E]o-΃GJd洲*򥓥 $l ΪAAƄwgLIkmgq6,|u/Q8*"f 3WW.ѭf66lf>쯿:;핑?e]pW,_7殓 ZtY]]='5TÆ [nJ:u(a%&rllyz.[ZZ(<(xT뫱,ގ?Frt#Yr;~m"QxncQ),yٹX͚\Rk6&z؇E ~]3p ]rܜ9K z Rɮ_V蝹zٳR5~'пȌ j"xdhhU <13UP&+D2v Fr%nÇ]de22ɫ_hM236=׾S{&͛[7ii6mdM v $9#CEȴ,p-+딹շGԕ͛09O"SN6-\ӳ_Oz:8eԖoYU Jsp[wZ妕RX/<(#Xd]#Qo'/6@~91kt=~R0/Ǎ:t_ͤf^e:+Az7VִEA99.ٸBHރK6,)["Y5ܼZ@=xPj&N,}f|;y ȺWƕpahHTS|̴:&H)něS[!ZWHd֮*s=JJ txB M@xP:FpH5||8{4Aہ"kcPY)Q?.ڹ{VZҧj]Xw9iµ g,A6$Kzyb㏽癛˽:R{' \,V>jpuQ-D5?`8;!mJӒ )+LtHmKogS>Jȷ={h_kͫڊEx-Itk>8W וr7=œfJ:e`vp4y0bnmz[0!o??Ԋ$޽{S'{͛7722g_zzz7VTT޽{NN  9A&J5b2Ce3f *a=د[5oCpf\5jǏpܗbkOu]++圜1) իצM;w׏ޢ4l2Ϛ5k'N$H ?99ǣZ;%;SrB9jl?3O}\XT}ar4{fJT־==3GignM8q?<40ޅY /RRl-FqF ###I.JJJ3fHKKKJJ*uƒ|4 !H|a┼˽#3icQ_[_g>??YZ13%̎kW <wg}A&(C=sq:[Çի\cqE𡖵@ TUEEw1!;?)2CC*H+$`Imݝޖ&&&#G>|Pz &`pp0 nOJw ?RV^ 8әϢ@e狯{BVE7K)aveNp֮SRbMǃe߽ LWsחz/#1񩹹M3OE|KK s>߹sg999___>|uH%#"ͺKTWW)uƒ|4uPԩpܗ ͺKnnnJU@ Pw HxxP.xP=j] {xƃAx* [w Kl;ǏBju:A‘]*Ґ!.d155#lVzVwA'KEVXJLdrrldn{6YҫTB1&䣁L]*’ ٲ>̮^_y '2TB1&dSw KBiwPt^c$&ʺRŘNxxNݥ"+,>׷E>(PwbL\'<r$⺸Hy۶mgϞ:A‘A.AZݥ7oސwnbbҾ}{uuL*)r֬ J]7ÇSAh uDb]ʕ+?~8}j-K=(u2.eddiӆ֪U-˨߃.ER%x,B%;p޽/^QK y0ݥVw 8ҩ?_x!uƒ,_%&u6ndq׋lu>HO|ʱu㢪GL"B,ۺKf͚-Y\ Iă)KzzLN] IDsQWW TQCC\ Iă^wiNn ҩԢE!=&&F`]"Ѹ%Sw)((:K,8t)[:+b]]VԖﻭoj}7! 6kU\[h(TVzVwHa͍q_ȮQƬYJAG84 2/,I<;n<Q M"]:?E=} ]4i|FF?AKKYf_gecނml\"ߑBHώ|II4hz+Pgm.4N2yp.36AQGsz}bͻA#ݢxaGݸ3r/˗#ookܲek4jԼ7bi\Ggְ&MZQ:EYuJzEըQsыX^+Wxx=hy;nGgN r 3w&?w7h;v=(/РArZ Yiv;vܦ'Nx ݸqkwt/=2n݆.7o&}<{} t6xip<(YN5ɤ'ŋ:t A`_ݫpyfQOm~r~=lA%:.A:՘g3qJ 6mgn{pʔuc.,qÆͨC(Qjj-q~7n̙|Ľ|)u$}؊}墽PWhӦ˽{UT OΥ׾ӵn}]W>w%=lAe5:tZbOB=3 nyY Ge9gƌY0}KynO韓k~^[.Qh%3gn)iٲ-9\N]O9/?x/<.Jm]G/>x,kDtuʕܠ J.600իo߾-uV;RccO{{k-n[<#ɹ_6=YU;v8z--4hBڵ"ݹye@NiܸU2[׬Y[M{DRi 9\DkԨ5dowfw ][THΝ6%xpӦTx`]yAԛ˶]vQALߣ?w#b~׉nujg sNx.;/%8M&.;f.իW-uV=q-`asV;ߪS~+L_.5;:33$/ogo/ECux̸K 1qB%ރ/y&~qQI՛icCpۯM5k|A˰ Ǟ^V.eg;-nѣXHRyyy}:+e%g眛w y_vfro1,4JYwѥ wqc:__HzQ##3f}ux$Pw)<.yx޽3 LS].??X^1cDDDH ~OTe*@6xJwoKn/A<*#K A@9zK~"7nԨQ]vAۺuK~@VO{g~2}b&Ȥiii~𠊊.mș:}.JHH4hP^rGER[˿UH==qZO||<龰K~">>>57Wd>H lҶm[@pMz#-d(2 4[`rr2hT(k... E3I)((dddPd&dffcIL1556m?-++!߃]f>#߿_؃6P("w=X3YhsZaD6oL=zT{\ HIWx=}kܸ1?@ "{?Iِ&իWܹS4,C޽{?xɓs̡۶mSN 9e37*񐃶nik=XY~uA///^=H"D e9R^|YskAA{011I&_~- hrgHcǎEnj޼yfjjj?ڳgOϞ= șΤ4tiNNN{I?}=^J =gO{HOݝQFQUܵ 6l߃rrr/^LMMݲeK.]xׯ_^4Kx ݢonݢE5j92Օ-ݴn׮W#KfHĔ}7CN3f -N:s̤AJ UTTHVE)P۠A\_{"'N ժU~<+9s=z OΝEjd\\\GD !444E ?~tsskԨQ\<}lڴԼys[[O/cٹnݺtL8RW2lBB]jԨ1t{ Xܽ%{PEEEWW7 ȇkժE~Ȉ-xʕ=z$%%~͔rRI_jU~ _cB? n:Օ{%&fQ2Xxʶ>=L>֭[N߃[}| "N_@ `O ɃB011CMMMMo<+Z޽˿փ׮ES$#Cp+RȃYYy+Vxwdۻy we˼h~($XSN{C.x\j}X{13Vclriۻ?K gjUZ-jaaay.(U<(TA乼屸r?tGﰰdBƙa|c56W'V… _|Ŷmٓ!0K8p@x݉#[o!vys3S;!+tA> }<=<B#={VR睐:`uP5%b[eٲ{>_ɀt'VkGpU// q+V\0tçtAAA::aAG@ :EAA::AAttt @ @  @AA:H @  ttttAAA::'8:t :AtFN֚Re6[ ͜4.S'Oqrr :1c$''l޼bp`))"a,Е5-"jnؐ<9>9Jr߾"O8iĖ 9֮o7>&%2::{?c@:tP d4{zƥ'[v;b$XW׶`ζMM:89xF{{;nA`wv9pXlW}}5Qiׯ멃ΝU? 1}z8gcvp]vmUmm-nA`v73N(OtpVkKokk,[rC֎^^ V`4 A`t :At :ACy2bQ؎2= @FY~ԩ r`0i4O5A:h״i ZA rzAq**v[t>>B_eei;u:>1= @RNaC?qEjD N[W*`?;Lqc^HU>}zieA:8 ;m|ڝ~d>zAT;M[1e>zA@:t :At @AAvc֬$' '}eeV&/ԡ7C>&:Q+&vsԩSٺtP -=Q5kVFFÇ͛gXrrrƍ'1cPP/,^fw#@G`{54̙IO??^#>CkSċC&O4}MABrtto?xhI^Θ1cK,?G_DFFv>se…Cw :At @A@:tVU>)ey!>W|z :8zG8soAð#G^ʒ%;xXԩ -ʨl[.LGo&sJJ̙Ib3%=O A,zVWv0?*=pw/>o;YMNǮYs900M":qwPU)ӂUe mQ--J#"nXqA5,FEp  ̠J׮+;V%!\us6-A.Ʃ\:8nKKU[nZzux`xxg˽Uo @GsgvkF[oS65KJ== &O ^z,:8z@> stream xA 1""Pҳ|+_WW||+_WW||+_WW||+_WW||+_WW|+|+_WW|+|+_WW|+l+_W|+_+_W|+_+_W|+_+_W|+_+_W|+_ _W|+_ _W|+_ W||+_WW||+_WW||+_WW||+_WW|+|+_WW|+|+_WW|+|+_W&|+_+_W|+_+_W|+_+_W|+_+_W|+_ _W|+_ _W|+_ _W򕯰|+_WW||+_WW||+_WW||+_WW||+_WW|+|+_WW|+|+_WW|+l+_W|+_+_W|+_+_W|+_+_W|+_+_W|+_ _W|+_ _W|+_ W| _+|W | _+W+|W _WW _ _+|+|WW _ _+|W |[Uq|+_WW||+_WW||+_WW||+_WW|+|+_WW|+|+_WW|+|+_WW|++_W|+_+_W|+_+_W|+_+_Wn|+_ _W|+_ _W|+_ _W|+_ W||+_WW||+_WW||+_WW|[|+_WW|+|+_WW|+|+_WW|+|+_W-|+_+_ >( endstream endobj 815 0 obj << /Type /XObject /Subtype /Image /Width 32 /Height 32 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 828 0 R /Length 962 /Filter /FlateDecode >> stream xڵoLQ HD-]bD-"4RPJJ"XZF;Ny̼i$n>̽g>ᄏ{Kf!{hz&MˌG{,1Q4e;_ggZ|JC -BςLvy^jOS»6c5IB tBK&KkV\f\UW B>q M ;wQwhnUYh91rIkFRpze)Q} VGp&}In,~qTJZnz{ksUGH?VADLuODOnqːdc.`y _ ^`0e[˫(0|ŏ}|DZ؏LZJ^[.U@jp 9p%gr#߂yFbcܨ*=nŏ]ZX-QKkJUJ5RƬ;i:+>v! pB BiãWAh rZ&R,SY]xH61`aʓةo:KH#UV>6acZk*w0LvY=op uvgq9ߧȘTY5ܬ+h'oYvFQ6~4.8r`gߵ-Ώe(Mj>k\bfoj—)[QW\Pf3 >,t_pW9ހC8G%~ 4 endstream endobj 828 0 obj << /Type /XObject /Subtype /Image /Width 32 /Height 32 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 137 /Filter /FlateDecode >> stream xK!`#HF!Qz_Gwk_,: y f1E]أ7ryf`­4=G{ A5Y:Q}?48__/Oox}^. endstream endobj 816 0 obj << /Type /XObject /Subtype /Image /Width 314 /Height 299 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Length 18813 /Filter/FlateDecode /DecodeParms<> >> stream xw|TU{)'$PTŲ+.~kUWW A $d2}?& If k^p̙9f>{s0 "] Nne]  k鮀֭[wĠ.k m#9򾮌Vx{]++X\")b+U/W^^Az'p]1_W^^bK꒫?Gx`?q Ν7j]MMm{<9L(4[͒M7/m6)innH6k\\| c׺\) Vcx^qlfX&}wCI""ѼwO #AvV XXN  L'M| OaK9ڗa?]4O6mD̒_bݺu4M4C4E {G\2(u d4m孵X:;6^"@UWў={O=e͚5>p  I☃d!T_<9NlG~8D IF1'hXV)$  /ǾAQ1P4P4MѴW4Cݕ@Q p⊿*2Ak(i*no'[ZuEسg/MQ/e5Mb3_ŗKxKɬ?[@l --^m|)\/g9 p R4Lmizx 1.4;yA42Rȥ?ub)QfS_y Œ_x|(!ٞ[6[QCQ:}!>^7&qwZF扳s2~` qux!q]h_~8U(\cF== z{SX,Κ;ZU }M-.;:daUT oi&(kf4U: vybNA@ )JuQ2xU=E 9\oԝg@֏y^HZ0BK-66,_mmj7AEJ#p*Obcjh1W$7'7wݛ"k׮y})4M?8}D{{=XJ-ǀIm(ejô4$؇IjcsLiT t[yy[{; ef30 $ƃT&*lۡFZ\<c2Ǟ\SjaZ ~ɳ$S)4 9a}NNS%mܺg'W3x 0LN3/4E+z (0;nwA8@ieN8ˍ㸩ӌarfU$"`_4d? #sSp6as14fڭVu@%p9qHeb"-J6xzq~zE}mp yTJQGZ9x(.싍߶Ie26>e4)3}33n( 'o֬}ykr, kCuNM5xHMM mXOU"XgXM1I1!U ]IK ?ui޼ K^^VRR aaR^FwzkE0\Xxeѝ>vi8L22D".3r?Ds`7=&#rDE|b"R31, ED0kk4}B0<|2~8drsrsA))a |p&!zw(+BS"H3\\\\*~BwLljyt7WͻO,|\Sʣ+I7j"yt7veWʻ]C+ðǏW&% gd2qLQ$ 8c2a%@A$Kv)B˕ pQKљP]XVVܵ`` BDx4ϱ.fs9n"I<buս3 eNt?ێ$&oU}tq7VWOsWF)+hhtN7t!H~#5k=ȕxqOM9{С7ܐtkjZRScV>(͚7V%U:Yn=ZGأ+O~}z妭nAy(^o+RajRǸ'Hܝe 3 [ϝ.H7,3g'ݻl|(rݱxԨԨ(dg'm~$##`KH9tDrrtp+X:B#>\r.0;\ r.ҧ-ǡ )$~MwB h?$ĩiZh4x-u~\F4/)O[s6INXh Y"gNx8eSO7M zK'@2Dg=gv)#FܹsH$߁^3&u"WχHÑ#SSj%E1@Q4ðRi0n7pybMI,ikyO}|\:CzL2C2fb/vp`'y9:Nx^їZY\+}b͞m;ThATGQȟFW V{」G>o*J{}e2qa[dI6:;nO .SƥϞaqךOWuh?^޺hՑgv;~M7y]W( u͉'ݱG[WAe@Ys3d1 ,8pdR o),0CQTU! ^Θ1ٮ~^^W]]2//`AP䚘mۡxqHTv|KK_X2.7pT, &y().Պv;Q^'ɃWĀ >t:` 9 pHM-vbXN(Xldܡmj_OxAx흮` O3 kUR,gwO}Ӓ`줱y"c# *.tSLy6jj3OM;̝2m4_0:lb괯~겛awB#FDEEwOİbЮK04N:fӦ=}577]4-K Tx?jpUSlĄx`XdJf|N,p8q=N@XqǙҲԮ Yv82V oXbihynw<6"0(:ab![2A,U]߯'81RMUpia6kgGmGR&jHcje?oow<][wo=-iT&mZ6#7#)=Io{o1ӻ1̇ug**-L&ؙIiL\1\QjY_f^3)u!IpmE$C=nr=.%"0q_2N;4YNz7,W޻嗷0_ok7ۿ_Xk^oi|鑗Eik w81-=rjL"&r"\k 4fr\M\Etݤ)7} w,p6&ßsmi p"Po'N-@JNϰ$MH tV4%/_<?h[pQ 0RS1ԴD^ɪ9֙#t&Lsh4@}|r|DL셳&e_\Un֢?}ּ&7?wV[ȟ?!jB 幖*{aXw^vm_GW+j+40?G;rVåNIz/ۃcXտ^!w8(WTtzD* Iiary@64I`qrGCb)ȎЋD~=yA(tuQ(xp5X} "鿺3m>\~>Y?=~'}_yҨn\rcEhΜEs{pPP{T,)zcH0#rvMoLI@)F tKenm3I *-4MRP4i vF꯮z6u`fF$Ri YAՎ n7]<5Q&yKpT4-[5:w1w3c."oGx*1A^)PE6Rdl FsVN9 **V~G ~洴cGk5al tAOAD? "NZFNP gcX/CfWir +$#*)onStS8R5#ՇY~뎳m\,c V+8 FP-ee9x"i֎s\=xs;SLkFh fU$<wB\c]qAxM:q¦=;zu|"&9{V&=>qs94kիĊ[B?w>g6;>Ϝi\ OWw.+>l{I1F4qb؄ ao7M'$4+裏?099yժU(~СO3,tbgVkzf2.. "WMn@\02 "!06^x/(ZeLOt˗k>؏ +W֪բqW7jo O߽|%Q5^V"##%Ӧd4jL |L{olTTd={ί#zpo;ekו+mni!-Mk`A+vmm0 o' OJ%f$BC?S/nX\Nx']tFΜiJ11R_}eeu̘%Kb|ÆtVTrkby}PWW7}tLw~CaUvؼ94.?_ZQ%mH oVTW3UULvkTOq_JDxR q|lT)RY Uӗ^z=z Obaj󕕌\0 P\LE EEdV[m7l>Q]Μ)_(cq`@1/ Ïf^ގta3`ٻwวfkĉaS.˓YŻqOpIhbMέv#]t]/0^'$nkx` O?p !<F B$W"dNf^ӯB Z]=ɽOE9^^:#%ex02 "!`4ӗ9@9_iҐǏƅBѤH喛nJ}옩;7-Xnohdرƨ(Ŷm cʲD752`'=+L\$u:Inh,7rhx T]iwl2ٳcuS̍n+<]^2\f9o O!׶@hACp~ 0b`؅~J7 8; kjjgXF6NاLd^{P 1b)slR,ƛ\ܹqZGmcƌ_az=(=ܺwo pymjr]>,J65|r=z٫^'"$Dcs0b+(rSCI^ 3j~b1n0Z[IAFGؘ1ƪ*ɓheTVD"<,L{I$dfjRi 'NtT*R) |_z2Hrsu'X]SUUD55ZIj)i}~+W T-2P@S:5thpY*h UCdTb6GG+Nlk#;:Ho5;0 STJddDzB}S$´ڮ9j/Oonv(v;to_{kT@%`MNg1$A`{tĄaX|a.N=6X,TffR9𹴷7^| xe]0֟z ѣG X`YD",1QUUe3:r ÷{rrR)Kܙځ}FOz"q}g :toU5@hq/v HyCsh}MaBqdeU%^TVfdf^?p/;hEgb5jiiڝ;FRZ[ uhnv Y~_3Ա:=NKWb\E: a6}B]]A5~deEE)|DR).a,xYpo5x'Ov*Q {$&}ߎ  ZV+ۙ';jN'&?5> yKOֻ}W! Pfs$I Q+iP<`?t:d9*PO}F#^Yvm+3͌͘ WDŀ4MYYWx: 1c]FE)z9|*b4~$(o.i"h&:ݾ@m!Ր 8'(,oҾqP\lJOxkˑ# v{ڹ,B!QVT\dYbd>>^VI/ ? ۿ}D2k2l`zPO :;(EpkQ#c6S?x1;++Arrr9+-5(@4{X,hj%ݛwhf륅{Wsxuh91 ))(<@+B\o3ZN=;.N}{qbP+Ꮋ ))y!j #!+2*Pրʇtp $//L\~ : &aEilݰe8tRRb??\kٰ*?1^Uy2΅|T8`G3`[ O@<( ͆hyڟ`}zWH pɄ aII򊊮I|V^Rb3FΛgjw_G @r3P9F #-1rf>Bǀb7ܻHq%w+w:9 hDJ%ۦܭq c xVÃ)|yh4Ŏ&Dz4}Q3kZ[)?wOz{{ア^E]SCpCW-[ ɼ{+XI.'nNS~bPN/f9̋ ٷYS. yGJK~~YU^WGV AVjҤyӦSSMM;:m6vR*?"_{G.]Wb\?Nn1l)@@l(?UA e#pj.I}$/ ۭn9r{hѢ~C@C *pFy0%Qϝ;@w-9VTV*+K v;rqQQRkXۭdʔ)py_%Ibpi*q8 jƄc)3v|zPz{P*Ov+OOW'[L4,LgY(N  0a T;afUgV'4mhJuʺ-tN~[yk+5imLHo=&:'ht"t@ 8:zpOED "1@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDp-@\#-ϧc' &+1,,Z|G? &+1,|͆~>E+q jW"d@+2P@ vE BT"!]혇3@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HDȀ@ HD @ C,+|J1@ vE Ϣwn50+1,-Da"d@rE BF +N ]ᢧ2* "Jw}U@rE J* "Wh\Ѓ"\͈@\ SDrۇ1qhaDȀ@ HD0t6n1n;3`5uKN~pxxteN=XGbr=hI)JA,UĨ%o-y[pz62J;3-D' C?wMs V}7$o92'#(HuٝlPTmBȔoN579TuLK B+Pb;dmszL.Ƭ ǯ=\hs]b-#u7fF7[H3#ԗٿ1 v=lɌP7I][&%Jm?ʼf ǟkwUm vsffզ0#GFinydf^<26ͨvΛNMSa֮v14=3GͽG\ v=dhXvDuzjxUsX `TlB,)%A+~0?l.%6;.Ü4[ir͌>nNUi#cbbVǛ~q dGj$.!p #\UΛХT ǰ08ŠN.}L|j1zXlB~uuˀa=S@"FǢJk7 <aaN42°K.7ZWz{Zޮn 5ZTuGLK1n95̗떷W똡T-ݨzcȿ779]4bT1 [l.)!cqa ;ŦTkM :2L?"Ir:}&s.).ͻDrE\ k4p9q2w||_}|1**ni$ Ln8pd*#ާ5KCfF\ >jW4s;d՞T^9m'{8]fq=?,H2!dz^={233R%KN`Ekk+a˖-cV[[3ό=8Gzҥ}xFRΟ?A\~YoviӦ3f`=hllRd2ٜ9s};Ϙ1VL0]N0%o_x2b[ʝrs&>l^Ϸr9E_FDb7T uo [P^, b% N3o^jnnvݯʠH$|67o,J_4ͫW~s΢+Vcm׮]n$''<> /X`…7O||͛111ߺub1=t ^y^TRRbv5Kԗ߾sIkQ{䫯_FVu xW֬Y?ݻ׸7ݏ2KtIII.H$GH_|ůkCD}x?4 q|VIv.[ un}d&1Xb1aJk<2شaUS&çߑi]=6I&LG"]85 zܹ\qnnn}}?qh[dƍ,Y[o6mڟ_B裏{˗aa.wDQԶmۦOKy7o|YNׯ_tһo^֔~sIS#p<$ltgYt~uz}~y©vF[tK}-ϱE[&6%7iwn{?}PڱeX#U cǧ$O% m +]$x\.C+… l0 }ŋ~=/ 0=c _K_?)TlSRKlm1[#`G׫ ΠKF|rXyT.o'Eb MClAURnW~ ġO׏5qqq?MHHX|ĉ'O5##cݺux\␋xoܸh4l:;111III%=3[nųf͚?~FF`@tt/;8qe0ƍfff@yy |8A~`ӈ,9!ڮN>DŽ9I'5%OhD+ …uhD ˂Iz. $u`03uMMM[nizŊwy̭޺y毿n ĎviA_WǏ-[?FzJ=]%$$⋯Ν;jiӼӍF֭]mBsK_/خG,9خG*]6뤪9=R;<\۴T R H.dJ$㏊0:2Nx օQb1Yw撓l- P({LqK/ *q\^߽8f͚Ɔ ֬Ysٿ '.a~5}Q_ս~ŋc50lѢE!ܴ4O>8?fwn֮Qq[&yC@KR)`dt z,H*Ic"Um&$1ЬVӷ_}h:ſ{HpC'bDR8ārqP E)j'QKB\i:Or 98 es"=j{߯K,θSr7+mǃiG4ԥk^ݙťvGEkM~v5rrĢe YZf&YnE2;kƘqRNe[-;G힙*Yt>VAơs$ܸ$=Fê6x%YD7Fj3IM}{ڹ[k, ﮟ/QAb꿹,53QU2Y\׽XX䗥v eWH2TάQSgGď޸&4~kԼ1Hz9_C7K5A++++++++++`pX`?@\x@( endstream endobj 822 0 obj << /D [820 0 R /XYZ 80.963 747.976 null] >> endobj 134 0 obj << /D [820 0 R /XYZ 81.963 667.28 null] >> endobj 138 0 obj << /D [820 0 R /XYZ 81.963 596.012 null] >> endobj 823 0 obj << /D [820 0 R /XYZ 261.29 558.718 null] >> endobj 142 0 obj << /D [820 0 R /XYZ 81.963 322.502 null] >> endobj 824 0 obj << /D [820 0 R /XYZ 81.963 285.208 null] >> endobj 819 0 obj << /Font << /F25 474 0 R /F16 475 0 R /F39 618 0 R /F44 651 0 R /F43 652 0 R >> /XObject << /Im27 807 0 R /Im28 814 0 R /Im29 815 0 R /Im30 816 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj 839 0 obj << /Length 2150 /Filter /FlateDecode >> stream xڭXMs۶Wp%sm'uieh%Z+ET J#{,l~sD(]2"7FEH*-\bL[l-VﱲZW?^C/3f1keq72pjq]|O??],.DrtZh$Za(:wѣ_s¤:xߋd,ciB9eI"̰4GCn? \*[Wj#i]z[v D%ҫRB)jv2h0h>Z.+o.ӡ\N)}񱼿/.;+u0¦"S?ЕYBv7);Vi;~4Z5$\4qFǻ)EFA m}$Um`VعZ/XUZ9;Urv=V1{Rq]S+Cճ1tO;n[핏lw UW}ٓYS_oˢIaSLwi2~ ^[;j@q9i"$nhžE6AhDȭǨ -G"PuRV`aHEǠLO!i""GrWgU+͋j19JLBP-xMQ3#1I-ádhO9 pùo"]9d>[I4jR&@3(Un`c4DMKFdM 5Wϙ0'Zv867 * f|qԡ8eOP0L7`T<{><_5G:ŤvT_Չcs&Yİ yוۡ䛔 Xt*&bD}(br ~Zj;c@lx\l&lCG~Ӓ,I:÷R.i{U~LL(%3.%"7z} v)#;eP%/|xq]{,Ն"̏S:钾%jþ TT.Hݒq}RT9z<9,zȡˁx_ehՉFYOZ ˿]q"Yfsљ aӧU=HՅmv&fWhT(}-3wEeһgfF/xuI eKOo;]2>gϒIcS75|x=ŜW;,w9!S4p S<=9fw -$a+Ӗ&.[ǞOM_Sjl\lxWߺɯ]-(5+O[-]$;bӭ4xyWqmx,ן1: 4L_+f)5BeBY: Nѯox!eGXi6i=1s(%oH%EͿO=;WBhԦ؆VvH 2wяA/?:%]0BTK yy{NX&ّKG+*Y endstream endobj 838 0 obj << /Type /Page /Contents 839 0 R /Resources 837 0 R /MediaBox [0 0 595.276 841.89] /Parent 825 0 R /Group 688 0 R /Annots [ 817 0 R 818 0 R ] >> endobj 829 0 obj << /Type /XObject /Subtype /Image /Width 364 /Height 304 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Length 26267 /Filter/FlateDecode /DecodeParms<> >> stream xwXW]zG DDA4 vcbblQ&ZbD]co5-vcAvm3 ,3g윙{g\ D[smNxsC mfK;h566;( ꅩi3Ϛ BԚD96ɭ m[͓A>HD =4FCi/ a[ "/Xpk9ui^^Mm2 _+Ci?^jcB>(/K= eC5tYiοW3jjx/}MCb>`~87-︸&2$WgϫAa>2nU0 v&A;4抺o=P*PVX+ sˌ tqp0kf;u75B]a5-tg{ڑk@&¸ƍ W.K@V\̶i CE]I=ܻY2wEQMƒ}H˔ءKqF_uӗR4FSFe,Cf7UP&Xso'+ Lکi6joݺէOMΝ;NZ;zN$z;ݔݩv}  30h +?]9bb.2@zX5;~MPbݻ"UŴ64ˢ_-6,Wvgax| .ݻts60d CCBAZنqmB.pZsN9AꝥQxSgI;^. K(0 ̌s3[^VUD(SA Ps`~^L? HHqbmy%ۏ=1_wsΟ#E'8p  B.' h'ó/(''X,c$Iʊ )rpHL̳1b0d͛^evfyxauf1,]O6!G;\A(|˗/QI`Y/86 fN &i~s,ӀP2D8|ӽ{`tP 5+! Bee2 EeK,.,2UiV`EAͼ/%뗩+r BA(rPrA uKaǒ!-:p<ؘR2\ܾ %%ڨѶ _𣽁JPP*X%<̐ F LQU>%4P 9ArصkW_MUK?otxwk"IJ= $7ɽ-flE̾ F[Mn^x:+003ÄB0A>^XTDTꢿҲe\Q 8 %8H]ΜI(dH0IeHn=+"IqR*(>W)N 謹O?~ wSr\k'/Pg[X**qF^P$34QԺ7D 4[Q`'p=p2YIu+~7z O?t1іIiX =ƞ rK,8\嫝唽<#WeRr򬬘g>7 "XYk(H.[I )l\&Ǿ]P,T(U8E?˕%% 989Rjkkbf&(*?ڤLLQЮٽ{/vmo3!:LQɵ]\8&x~NR{n0CQǿА0!?u46x{ʈܻcHPfr!a[ dE!3tthع+Myl /$[q FV=%~+ T3)@Dȳ't"Z,K[Y%CpTM,#T/JL&)(*[D]عk'!'f͚_ zD  9Ah9!?zH`yl@Wf|BJE2 WW[ggk \(䔖u1IJEER3t2iiQ b2+ )$ӆ:i + zDG+mz]P1^FL qq.v(H7K+f;Rb7 ^ ɜ2kgj^qEތ5t76^K)Er<+~CȊ3eƜ Ba qRȉ ,lt6Pd߰h;2)p&NWn8yɰEfy/)pqǀ fK"Ta$HS̚5dRݵSv7=۱rZrH6/LJ*O5H&n?v&іRre,^F/ , 䄜+^_(!j׷Ν;An`H@yDșVn+M##zUJR1 08zE9HnW%eR2Ӫ2B`dĴ/Qb#g;YL`8` b J`(* Sr6OZAY1)TWJN:ur34]I= eI2IySσ]BBa*JG[o-Pįk1c\U 7p*1i"._10,yD*xcr̅! 3ag\UW9J$R(*A"),U*KL.vLMr˻b+eb\&p L,ɒ+RRLGb V\9ϟ5y\un/230UqxpoCC>T1 ؚU2+#EVυ{N\uNCR$@}mlvmuB(Pr9Av-7gϝG{ʪwskbIML3c1B|EQr:kGgϢ R&30d8d0(pc2 Ylq\W:^G4z~(z}7Edb %p/z>/cyq\H*(0';hJJPP!Vnc@Q").˔-+1N?ʕ+m۶Ea=2ׯSShV_^󉕅eee:M|ruux5K,X paagϞѯA}Wr\NܹH"e2ɑg 9\Rh5wsbǣԯf6o :|`iifFQ郿rqq܀CWl1XLR*IR^R7wP;vz>{%;9:#ID˘^>AhΞAD;M"CkR?yǻ>-&HG7dٚP];ld:}ܐtգ9;kS&n3/Q&|AP-yu쿼z?>mڴjgϞӄI΁",666((MASG43M5&BNٳg5pphMDCmA~ᇖvh$2i$zɫa```xW\-mniiٷoϟŠQFY[[>}7nfĈ@m9rvڴiRT>:::88M:vcu:Bks`ȑ*[nC.]OsYoǏ9s㭭{_(Ι3CH&㪦>]YfZ 222֬Ysܹ^zmݺny#G 4hɚsN2_~y򥧧W_}K`BBҥK9\PPsκ޼ysӦMǏǏiaC@dd$ԪӧR?'N 2$--m'O&IRڵko޳gϋ/҄xBuQCu|'-xӦMq_~`kk{}www$ % wܸq .H$IIIj͗.]۷oPP@ XtillP(lxijxѣG{{{]k׷?wܗ_~٭[7KKŋ\5)q|nnnՖҹs &dͭ>::u`jڻU=9?v\ڵuu zk9lr ###gaaA aggWVVfffFK \ҥ0\nyyKtA @=?{E ݻwC XYYX,Z\7MKqeeeMuVbbkӴwgU}jTUU4 Bk3T*lvyy -ɱcǪ֬Ycaay=p߿_.oܸqM1QC㭍C9r$!!A$-[Liii999vR߽{wlllIIիt )FDDTUU]Cܹsg.//gEq8yxwhڻ3IsAkÇ;ip) ǎ[UU>f̘[n;vGDD8;;_~}޽?w;;}֬YvvvW^}Pehh?|':u>}zLj#zN 3gΜnݺ|9dwwwss+722ŋg;zxx8;;O0AN"J_| 6o9~˗Ҏ8 &9q„Ñuѻݖ}Fܝyߎ-^Bw}BoDeѣGni/M'@ t%;hTTT}lK{T ndd^4D 6W22r6,Ӗv$h5T-B MD~S)ǣMhHR_ 7}dr,-y{v02䷬;NIDPQ Daӟ&d~W/ZGXLV'UdRl/-Юy+U8_8fh$M@$rK!J)D"qUD,!~uHBQQ՛߮0'qncka" 2ni"ޗ6cd6{/v\MmCtd2S3elk>߹P|[5wihh#RRRtqF/PL~ I\B!ϳ'ϵ'Irƍ]vjY&}#?oIh{GTww5w0,qz6qļ`ƌ!!!t)KRCCÂ3d J]\\֯_4vXy?|q.aB Xbɒ%={lwݒDZY%22XIu{(g{ aUeI*+*H41^)A믿 |ԩSO<]ݻwsrrp\~Z$#e ƺsKι|֏ kFh"@&۷?WK񴖛ZQ*p 1%kb_CTTT|ǎSם۸qt.30'NذaC@@@MD$bRϫ=U[`$}F̾x#J)HyeK*:1L&hakƌ/^puu%w]~朞ZܴiS^^^qqӧ޽ۻwJ12… {_W@dP8-b(R06666SL7n܍7JJJ޽p)ShiǁbIK3f<-yR=bWǷfbzU,WhP_$88~JLL,++w9hРi׮7|e˖zJ)HrQXT!V*JB$>L!?%bQd<}O>}U___//7رãR...FFF/U~LAmEnyh0y1 ڝ+V5jٝ:u6mڨQϟ@ň'\x\"=/IR2WI!!Q zeMtt 7n.\mUV~~~~+V5kȑ#cBԀhyt*U.bض_fhig_Μ<6b4#GۀjwsŮ tx*읥 ÷f 5RRlf,WTH%+T0y2q%&)P07[ݙAX0CGbQ:Tx,\񴙤1CڝAw3HL-v7W"#dNIDT^!,,)0 yR2HRI SVR՗zFv REo"6SP1dА;jjcgR ##eD$R!޾x6:y G$/oA,V}mWlq{UNSP@훠)+ qs KJE^+hޘ>5FG7qFJ޽sA{:}􉍍quwt( .^zUsԩS...Gav1|vRRKxxe˼n$&Jϐ^06j.yΟ߾n<,W Ń% ⅖i'-5槥zdeemٲET>}.}>o|ܬwgc2?ݻw׽/}MQ\\Rp %%%%%AxyyidtZ)|qx?`XrDߋ͔D u}wwްaCFFFQQѭ[OΎgggSSS5`0Fܹstt4|5Msnw>X&wzl""x:u%}]<.N|pz&h$2eʔ˗GEEM:W>}᧟~w߽ׯ_O?effve۷olݵk?tڴiÇi $X~۾_?ukW]m53cΝ.4Ԍ$Uۻo8qԩSx{pvvV->ez@J"B'»3/_li/t%@ t%( @I@脮Idʔ).xzz~go 5""ui"}||/ߦ#½~._RQ*'.B/Lg͚E/g>|DDDN:n=I] 2qM!P)S4۱?"DFI̬sUT:gPhbbrD5*Ugbű7TNk`ZtwfBEi)@ԆDx<ht;sL/// e}ڵkuwE;D3W{jŸ MBB/#$zH"$IT*JT*?`CCC$MaѣGwؑ4|ԩӯhѢ5/Yd„  We˖]|/Tӧ{xx?~׮]{ɓ']v(Ju0Iիtv poue˲9stҋ6VKKK/_<99Y,coEWsӓ^jxq]~ŋ7nܠ|OzA'LEϞ=ۧO={0j3z9oS9% ӫ5VXV߃^`bmDӡUM/<]ՒJjdQKii)=bGYXXV8Im򚦵Fd2Ϝ9{ٳg͚5gΜ*b˶-Q()%}laP9U;DUUUбcLeiiiii`@P t qM&o߾I&kD>zHJ=C^ڢq͛w9.{MFG?zB>z+k\^!gJw_=|p… fUUUFFFg޽gΜQhfffeeeBرcgΜ)++#"44|… N&FmQ(5k֜>}˗Owuu*ύM>_&]~vDqD+cűly^D??888H$k׮1={qM>=00p…t>}_~۶mggϞ _ܷo_JJȑ#wڥ>kW(W_^z[lY|V!޽ѡUcQEymm?~_?)ܣ/? m<"#"D}AI@J"B',ۧDB J@J"B'PA : DN$@ t%( @I@J"B'PA : DN$@ t%( @I@D+7D[ֶ]h>3U{! eΝSNmi/ԝA :kqtt0Z=̌d^d[M\\aUu[|TNϏ>祉 NT2$$ȑ#AAA/^xbhh(Pu xYYYMO@$R>yR``j(8}t9Ӗ)( W<(e;_a2Ovz51iA*<}:wܮ];p֬Y7oޜ_z5;vɓQQQ666/_(jLMM}왁ABB˥ x &NXڷnj0'Ov\ С;^99M~RM\;;> F?I$==]sUT@n>W +W~0thdz5u |-D@$Q>̙35-ZhQ5߿Um .vOm&(jzyD)@ t%( @I@J"B'PA : ]Hhh(0`/kǎ:nw511RY9D~$奔7ZV9';U5kTVX6lؒ%Kn̘1111ucoooݭ̉Tr˹ɏ'; ڇ5BcsY!Z5zH"ݻwWJ$1cƔ]L8D ×/Z[_n kP9͚kݴ{5J=z;ߋc2PPP'|/TԽ{O?tܹر?La?|rRa؝;wud2}}}jw?222Onݺlh5Lܹɉd={u0=9SChHY=(}@P[ =.{JgIf׫]+4iRTTԵk>`Сrp|Dm򚦵Fbo߾}ڵ/X:t*mUss HKKc666teɓ'kMQ .^bf͚շo_uAs//۷oݹsny5j⯿ڼys߾}WZ.]U@(~W<ѳ -E<*( tuu ѭ[ www ?77Ąo>w\ZZZ?w>tPII\.;vlII_|ɓtը- .\xϟ+WIҚO]pf$//+11pӦM5֭cX˗/0a=0aÆ .?88~'kkNxfq|w劣o.go~zݻʕ+lBkgnnzJ:,,gӦMO8]v۷ocϞ=h6uTNOUWxxرck:lٲPGGG++Yfo۶277^ O6kZ6 oߞ3gΝ;>'@4aV֭[Νb ''C,^eDV[ ׯ_۴i?pţG:::jmrkSBWZC J" T*Ge DsH-4&@ t%;5񮁒;ݻZ_><ڿ)QiH.&hi/(>^|X:QA񞃒H+#:ɓ 5%{33wT|W_-X^тeRJ" VjJtq 20дG۷˶n<|8Oƍe2["ݷhAPwՐxӳԒfKCC%%Ū b== 1KTnj06nlWWA}" %%%;8"?_ޱ#׮]>DZ;wMo''^̜ŋJM 1L_ ʒufDKR#]nx־}ۻ̄ 'rt BCQpBQ^ܜ5`Ņ E6eVT(CB,5wu?z ?gguٙSfUUʽ{sJJ d^(vTѩA\\eq1!>[;vKӥr[ߡRIEG( ^p8zA?ݙ'O ?ZXYYfmmmSSS/^|޽ϫ+ֶ/eѫWgk6ݻ`WRJ=ZQܷ/w7f21&W_dBAxf5|>>( z0vtRIů_D{6^C(EGGgee O>2$$ȑ#AAA/^xbhhh"'@*ؽ{bnnZ^PsF4$‚]RB$%)Ɔ-HT&&,XLԳYΆsJS'ZtfhT+OLr0 9Ba]գ6D#Å_bbbJJQӴ<-- c޽tpoo˗ӧ}qϚuYME2:b(WWϰ`lil4INl6Қc F}XAP*>>F Fk%cz$-M.2ɀ:J̓6lذa 22E;wܮ];uYfݼysuJb;kkAsfit((llpB>WW f5g3*ڎ99YD"E}ll1clx^^Ͳe 'Lh$tBU2x:/\(ԩX'iC4zaÆu҅f߹sZ$y#ݫTZ}VxF5S<~,zX)LK@bbUbbUmV""^OSfG䫅 ®]27g7lD//^kISTDٓrT֬UJ$999))ܼgϞAAAE={@s.^\ѯ߷9 :o'\.``>>Fέhz%BGJKKUEFFN:K._ZZYtmfϞlٲ:ѫ6I~zLI1tf3Z[.\\5k@V49j; Q]qqqQWOLL~P(tss{<񒒒mVZZڣG51^f0050a:Z6swCmHjjg ԉ Ç.\8q;z}ɨ(/_R5xu_Z2~x ]ҩMmѣD@8:kNtNnݺ=x`8zeŊu_D Je}6!fM~v|dM zݥ{w#Z ?ٳ%08\*z@wqM][_'CHPE8 We*ԫZ}i?ZꄷyDjL22($d>ǞD,ߏ$+׊ٿ ~ ~߫3!!!999[CCÀ~ZJIIg}!!!5ki KiKaaa۷oǟ>}g}eeeZIII111"G)w @% >@y.o[o &Bl#v-[)7l1 kmm%MII6mD" ]]] Laد:f1v;ww}ƍ &0L.;|~>fSRR^ݮҵ(... ͍A4&%%)#oPD L&dRݻ7""TPcVPPY^^dy󦗗WZZZrrvϫW^fMTTvӦM}ݝ;w6oެX.GDDx{{]xۻw9sxxxoׯ'f^Z*]k|۷o\xH$4履o'0IMMMMM%ߺ "7oެ+((0004oosss t:ek֬!;t?ɓ'+٣X,o޼yIPPӧO[[[2 __htoQFpMLL'N8MFa!op&V\\\\\\TTx\\TTTtww;99Κ5 _I/gW\m۶GwiSLnWZS3fpqq6lҥK322fΜiddDi|x}dV>LvwwrrcR=1DX(({=:44400F,FS(#nLMhwM,)))((ONN޼ysqq#Q˰}gV-,,?cXo.]JYA<**_~Ylو#ϟ޽ԩSYYY}ٳgmmmG=ydkkX,imm]lYiiiZZڡC*hB"lٲĉ555'NxɨQ(pڵM694B"2l0@p:fN:o޼h3gΜ/ȑ#Ovvv>s ٠̙3'66osqq?~[[۷oO81))ȑ#D{Mv4EiӦM6yxxܹs߾}&M4@IIK/E!z GQ=zdkk[^35eB& FݾyȘ1{(ǎ[f)4,}ĈJ#f2nՋD;6NU_q#T>u*||ހa ˼٩AP(Fillcr[Lgg)ÃJ***ƌϽ@D6Йހa@ӟ?J\6:RYOH"uSn_\p!%%Ν;֭311?1XG?أЙ @GGOOOϘ1^3gzژX57ܼylwOӦM:uݻaӇ rÉ鱱p8Ǐ+W !!AI$UVYXXX[[䶨( |]]]uVOOO8uꔫҥKB!{yyq9sdɒ䦦&OOOb#ICCCbb?6y{իW/\PUU-)]SvtC޽Į#eN.]nll Yp\.3eZՔ=A"24CCa8 bY 60jfggGFFN<ܹoo>~]]]3g,--jhhxPT]]-%4X9E|||Ϳ[__Yf$$$)y`ggWVVP(\.񫞙jժqYYY' F5uSJ#eNƍ[x1aoߦ2-j@ )Ih4icc``0 yKKr} gϞ :lfllL(DtsKK zjVVּy\GEE,ZhС;wdܒJƆd@ss3yi|~nnr0lϞ=>>>gϾ~:almm%H=.uW=v=P_y䄱/ʴ()*": b00&`0I P(* Rܻ૯244xC(Ǐ Bx5̝;777We. 111EEEUUUǎӧkrMMM'OZXX($^?zHQkʎRGcWQh?9r\#;;;ʾ(Ӣl 4ݽҶmm]ݭ8Fl6hggzւ7^FdddJt'ONLLp80wzBƅ$33sʕ8P566x]]]k;qDeeeggm|~pppffbqRRwW BcǎI$KJJZ[[)PvEŏX,֔RM1R~є/..>sLwwΝ;FIeZT=q!gCHg/=O?]W( B(T'O}JJJmV^^njj @."ѡP]]}ҥ>[YYӧOweffaeer劊-[i?d R<{lB0((,QjA "tʊF91iii666[l>|Imfll|Ye2YEEٳRu|rwwӧO@VVV"cɓ'<غun wuujPSS# jjjnݺEbԀΝ;wڴi`ii J2?(1XR444o$#G0Ç=:::ZXXxzzfeeD"-{900PKPbDhǯ.>>`ooonnN>}9sfڵ|>?<<\*[1g"...<&bʔ@bb"q.P(zzzbq޿yȑӧO>}+**jjjHInOLܹsʏ,fffZ%2~~~۷o߾}˥R)H>sܹ!sVĀ0Eð?o)**7K@`7̘1|}}---Mkk%:;;~622b޽{֬Yƍ{/3,JdkkwԔcj?w!-M8ʕ+F~~~~~>iDDٳ>|xʕ(MnΞ=cǎJ`?CD?ϟ3#/PNS^kVqH,J[ۻh@}]3S!Nd0Fw 8.(23aU4bmkmAED0FMAl,q,q!=4_&OhxȻyT"zfm`jj:w\7(c&a2")--}m΂0VC$ )}ːuRz .J\qqqQ *"@0T3r8Qc=arsy N2eժUC 155OCӇ rÉݻ?CJ$r] 8ekkk+W@CCÎ;@"Z  9-R 0gY,&NrX,rJ@@%K$''755yzz.YhS\\-,,֯_ҥ~lذ!--qڵKkLC޽f|ƍ?СCE-O0QZ\3c<ځ>P`ĈGYfJN 666ĝʎ0qD___{{{pppّ'O;w;[nD]]]555AAANRlnNq|ݺu4-(((--MSPQ]]Jv?OMeܠݻkǺ-m>|:;;/_j*>K*9EȈ`={Fj;;885ㅄRz,"ĩ&G-Z=***11b+u76O/2o&Ӿt -vvv k XZZWv:::B!Qsss_˳ 111EEEUUUHeV/@ED!d :N3[@c0U59 gff^~],'%%_{CBB222 {zz .TVVzbX{_+W000q=!H/@EDQ&N3³. "$E020r:7z+VXXX奦t {Yx=;x a>|ipp0!R~~~NNND-ʕ+F窱"t$RuO* BGdg_M>Z=:/t;otK.Vuә3a08KCC;]0޼A(8t́N\ A>kV& TY}4?"v+pp01&ׂ%?Eoq T cFL3bǂ@hE裏w?>C@ ^ =])ChMDwAk"Lѹ;VD@E@ TDD_!~ endstream endobj 817 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [401.951 697.455 408.674 711.25] /A << /S /GoTo /D (Hfootnote.9) >> >> endobj 818 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [461.423 654.117 468.147 667.913] /A << /S /GoTo /D (Hfootnote.10) >> >> endobj 840 0 obj << /D [838 0 R /XYZ 122.806 747.976 null] >> endobj 841 0 obj << /D [838 0 R /XYZ 123.806 619.497 null] >> endobj 146 0 obj << /D [838 0 R /XYZ 123.806 509.472 null] >> endobj 842 0 obj << /D [838 0 R /XYZ 382.834 472.178 null] >> endobj 150 0 obj << /D [838 0 R /XYZ 123.806 380.42 null] >> endobj 154 0 obj << /D [838 0 R /XYZ 123.806 222.477 null] >> endobj 843 0 obj << /D [838 0 R /XYZ 141.734 160.76 null] >> endobj 844 0 obj << /D [838 0 R /XYZ 141.734 148.805 null] >> endobj 837 0 obj << /Font << /F25 474 0 R /F16 475 0 R /F36 596 0 R /F40 648 0 R /F44 651 0 R /F43 652 0 R /F39 618 0 R /F46 674 0 R /F45 668 0 R /F47 733 0 R >> /XObject << /Im31 829 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj 849 0 obj << /Length 1978 /Filter /FlateDecode >> stream xڝWK8W(W _$Iv9Le砶嶪p$9]p$PF~ky^'R"KOҙ(5Nxg1ΧIq߷;>mwZ&Z:unQ ZFj1*:ԛsFRGϴ"*F(Q['ITZ:e#sVbIӤҼSFG?p#c"ԅ2༿1؍fȇERЅ9QKo*4ziˌR83 p-{\5n]5dmy52k[Zlg2n|}2C~Z*yUdՋ_=p_ﰆ/4myWU]+VT"a>=aҞӵ9 e|%F[֐s=߾6•RRS„8o3-7( %-=[c4&>UL a )Vb汿r"S<"0ag]ጥCLJr:;>ou 1Z0ghAߠ6~K> L.P%)O< %W >SVXb ,ݡ]f`>ʆ4KUTWDKpp/t/#L nHBĢ{A7n)f!,чA@: b{u~᭷W[P.YZ Н_St_♗'ͫ9/ˊ٠@4 w.]\v p /Z^zE˹<ةjp T=Pws1 מbveBZלC9SpU^Q/R`2>@69|6/A7ŁVW \i+\v`"Y_F`YnY!8,?oauh,28<+_,9t=AaEE2* F;IapI:'IrwiPL#a`L>cȜdA,l6J DTb> ,l-k[IQTnKh̍2ǡ/I*]+-\D|(O>?$㎮bvG…,h۽\& ȒI.FfpdfF&IYZO۸`d*dLu ^A\P! "0P97 f(^p HBEGG^7"_Tyַ)3 *g?zog)$NfsOYP [XѼy,xPs{akM JtL(