Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

v3.0 Re-write of core functions. Support under Arduino v1.0. Now supp…

…orts full speed 57600 and 115200bps! Lower standby power. 28354 bytes out of 32256. Update to new beta version of SerialPort lib from Bill Greiman. Update to Arduino v1.0. With Bill's library, we don't need to hack the HardwareSerial.cpp. Re-wrote the append function. This function is the most important function and has the most affect on record accuracy. We are now able to record at 57600 and 115200bps at full blast! The performance is vastly improved. To compile v3.0 you will need Arduino v1.0 and Bill's beta library: http://beta-lib.googlecode.com/files/SerialLoggerBeta20120108.zip

Unzip 'SerialPortBeta20120106.zip' and 'SdFatBeta20120108.zip' to the libraries directory and close and restart Arduino.

Small stuff:
Redirected all static strings to point to the new way in Arduino 1.0: NewSerial.print(F("asdf")); instead of PgmPrint
Figured out lower standby power from the low-power tutorial: http://www.sparkfun.com/tutorials/309
Corrected #define TRUE to built-in supported 'true'
Re-arranged some functions
Migrating to Uno bootloader to get an additional 1500 bytes of program space
Replumbed everything to get away from hardware UART
Reduced # of sub directory support from 15 levels to 2 to allow for more RAM

Wildcard remove is not yet supported in v3.0
Wildcard ls is not yet supported in v3.0
efcount and efinfo is not yet supported in v3.0
  • Loading branch information...
commit debf0f457b6d2ec7d221787c44079948675eb010 1 parent cef4c4d
@nseidle nseidle authored
View
239 HardwareSerial/HardwareSerial.cpp
@@ -1,239 +0,0 @@
-/*
- HardwareSerial.cpp - Hardware serial library for Wiring
- Copyright (c) 2006 Nicholas Zambetti. All right reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
- Modified 23 November 2006 by David A. Mellis
-*/
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <inttypes.h>
-#include "wiring.h"
-#include "wiring_private.h"
-
-#include "HardwareSerial.h"
-
-// Define constants and variables for buffering incoming serial data. We're
-// using a ring buffer (I think), in which rx_buffer_head is the index of the
-// location to which to write the next incoming character and rx_buffer_tail
-// is the index of the location from which to read.
-#define RX_BUFFER_SIZE 1
-//Reduce this buffer to almost nothing so that we can use the extra RAM for a larger rx buffer
-
-struct ring_buffer {
- unsigned char buffer[RX_BUFFER_SIZE];
- int head;
- int tail;
-};
-
-ring_buffer rx_buffer = { { 0 }, 0, 0 };
-
-#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
-ring_buffer rx_buffer1 = { { 0 }, 0, 0 };
-ring_buffer rx_buffer2 = { { 0 }, 0, 0 };
-ring_buffer rx_buffer3 = { { 0 }, 0, 0 };
-#endif
-
-inline void store_char(unsigned char c, ring_buffer *rx_buffer)
-{
- int i = (rx_buffer->head + 1) % RX_BUFFER_SIZE;
-
- // if we should be storing the received character into the location
- // just before the tail (meaning that the head would advance to the
- // current location of the tail), we're about to overflow the buffer
- // and so we don't write the character or advance the head.
- if (i != rx_buffer->tail) {
- rx_buffer->buffer[rx_buffer->head] = c;
- rx_buffer->head = i;
- }
-}
-
-#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
-
-SIGNAL(SIG_USART0_RECV)
-{
- unsigned char c = UDR0;
- store_char(c, &rx_buffer);
-}
-
-SIGNAL(SIG_USART1_RECV)
-{
- unsigned char c = UDR1;
- store_char(c, &rx_buffer1);
-}
-
-SIGNAL(SIG_USART2_RECV)
-{
- unsigned char c = UDR2;
- store_char(c, &rx_buffer2);
-}
-
-SIGNAL(SIG_USART3_RECV)
-{
- unsigned char c = UDR3;
- store_char(c, &rx_buffer3);
-}
-
-#else
-
-//The RX ISR is now defined in OpenLog_v2.pde
-/*
-#if defined(__AVR_ATmega8__)
-SIGNAL(SIG_UART_RECV)
-#else
-SIGNAL(USART_RX_vect)
-#endif
-{
-#if defined(__AVR_ATmega8__)
- unsigned char c = UDR;
-#else
- unsigned char c = UDR0;
-#endif
- store_char(c, &rx_buffer);
-}*/
-
-#endif
-
-// Constructors ////////////////////////////////////////////////////////////////
-
-HardwareSerial::HardwareSerial(ring_buffer *rx_buffer,
- volatile uint8_t *ubrrh, volatile uint8_t *ubrrl,
- volatile uint8_t *ucsra, volatile uint8_t *ucsrb,
- volatile uint8_t *udr,
- uint8_t rxen, uint8_t txen, uint8_t rxcie, uint8_t udre, uint8_t u2x)
-{
- _rx_buffer = rx_buffer;
- _ubrrh = ubrrh;
- _ubrrl = ubrrl;
- _ucsra = ucsra;
- _ucsrb = ucsrb;
- _udr = udr;
- _rxen = rxen;
- _txen = txen;
- _rxcie = rxcie;
- _udre = udre;
- _u2x = u2x;
-}
-
-// Public Methods //////////////////////////////////////////////////////////////
-
-void HardwareSerial::begin(long baud)
-{
- uint16_t baud_setting;
- bool use_u2x;
-
- // U2X mode is needed for baud rates higher than (CPU Hz / 16)
- if (baud > F_CPU / 16) {
- use_u2x = true;
- } else {
- // figure out if U2X mode would allow for a better connection
-
- // calculate the percent difference between the baud-rate specified and
- // the real baud rate for both U2X and non-U2X mode (0-255 error percent)
- uint8_t nonu2x_baud_error = abs((int)(255-((F_CPU/(16*(((F_CPU/8/baud-1)/2)+1))*255)/baud)));
- uint8_t u2x_baud_error = abs((int)(255-((F_CPU/(8*(((F_CPU/4/baud-1)/2)+1))*255)/baud)));
-
- // prefer non-U2X mode because it handles clock skew better
- use_u2x = (nonu2x_baud_error > u2x_baud_error);
- }
-
- if (use_u2x) {
- *_ucsra = 1 << _u2x;
- baud_setting = (F_CPU / 4 / baud - 1) / 2;
- } else {
- *_ucsra = 0;
- baud_setting = (F_CPU / 8 / baud - 1) / 2;
- }
-
- // assign the baud_setting, a.k.a. ubbr (USART Baud Rate Register)
- *_ubrrh = baud_setting >> 8;
- *_ubrrl = baud_setting;
-
- sbi(*_ucsrb, _rxen);
- sbi(*_ucsrb, _txen);
- sbi(*_ucsrb, _rxcie);
-}
-
-void HardwareSerial::end()
-{
- cbi(*_ucsrb, _rxen);
- cbi(*_ucsrb, _txen);
- cbi(*_ucsrb, _rxcie);
-}
-
-int HardwareSerial::available(void)
-{
- return (RX_BUFFER_SIZE + _rx_buffer->head - _rx_buffer->tail) % RX_BUFFER_SIZE;
-}
-
-int HardwareSerial::peek(void)
-{
- if (_rx_buffer->head == _rx_buffer->tail) {
- return -1;
- } else {
- return _rx_buffer->buffer[_rx_buffer->tail];
- }
-}
-
-int HardwareSerial::read(void)
-{
- // if the head isn't ahead of the tail, we don't have any characters
- if (_rx_buffer->head == _rx_buffer->tail) {
- return -1;
- } else {
- unsigned char c = _rx_buffer->buffer[_rx_buffer->tail];
- _rx_buffer->tail = (_rx_buffer->tail + 1) % RX_BUFFER_SIZE;
- return c;
- }
-}
-
-void HardwareSerial::flush()
-{
- // don't reverse this or there may be problems if the RX interrupt
- // occurs after reading the value of rx_buffer_head but before writing
- // the value to rx_buffer_tail; the previous value of rx_buffer_head
- // may be written to rx_buffer_tail, making it appear as if the buffer
- // don't reverse this or there may be problems if the RX interrupt
- // occurs after reading the value of rx_buffer_head but before writing
- // the value to rx_buffer_tail; the previous value of rx_buffer_head
- // may be written to rx_buffer_tail, making it appear as if the buffer
- // were full, not empty.
- _rx_buffer->head = _rx_buffer->tail;
-}
-
-void HardwareSerial::write(uint8_t c)
-{
- while (!((*_ucsra) & (1 << _udre)))
- ;
-
- *_udr = c;
-}
-
-// Preinstantiate Objects //////////////////////////////////////////////////////
-
-#if defined(__AVR_ATmega8__)
-HardwareSerial Serial(&rx_buffer, &UBRRH, &UBRRL, &UCSRA, &UCSRB, &UDR, RXEN, TXEN, RXCIE, UDRE, U2X);
-#else
-HardwareSerial Serial(&rx_buffer, &UBRR0H, &UBRR0L, &UCSR0A, &UCSR0B, &UDR0, RXEN0, TXEN0, RXCIE0, UDRE0, U2X0);
-#endif
-
-#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
-HardwareSerial Serial1(&rx_buffer1, &UBRR1H, &UBRR1L, &UCSR1A, &UCSR1B, &UDR1, RXEN1, TXEN1, RXCIE1, UDRE1, U2X1);
-HardwareSerial Serial2(&rx_buffer2, &UBRR2H, &UBRR2L, &UCSR2A, &UCSR2B, &UDR2, RXEN2, TXEN2, RXCIE2, UDRE2, U2X2);
-HardwareSerial Serial3(&rx_buffer3, &UBRR3H, &UBRR3L, &UCSR3A, &UCSR3B, &UDR3, RXEN3, TXEN3, RXCIE3, UDRE3, U2X3);
-#endif
View
67 HardwareSerial/HardwareSerial.h
@@ -1,67 +0,0 @@
-/*
- HardwareSerial.h - Hardware serial library for Wiring
- Copyright (c) 2006 Nicholas Zambetti. All right reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-*/
-
-#ifndef HardwareSerial_h
-#define HardwareSerial_h
-
-#include <inttypes.h>
-
-#include "Print.h"
-
-struct ring_buffer;
-
-class HardwareSerial : public Print
-{
- private:
- ring_buffer *_rx_buffer;
- volatile uint8_t *_ubrrh;
- volatile uint8_t *_ubrrl;
- volatile uint8_t *_ucsra;
- volatile uint8_t *_ucsrb;
- volatile uint8_t *_udr;
- uint8_t _rxen;
- uint8_t _txen;
- uint8_t _rxcie;
- uint8_t _udre;
- uint8_t _u2x;
- public:
- HardwareSerial(ring_buffer *rx_buffer,
- volatile uint8_t *ubrrh, volatile uint8_t *ubrrl,
- volatile uint8_t *ucsra, volatile uint8_t *ucsrb,
- volatile uint8_t *udr,
- uint8_t rxen, uint8_t txen, uint8_t rxcie, uint8_t udre, uint8_t u2x);
- void begin(long);
- int read(void);
- void flush(void);
- virtual void write(uint8_t);
- using Print::write; // pull in write(str) and write(buf, size) from Print
- void end();
- int available(void);
- int peek(void);
-};
-
-extern HardwareSerial Serial;
-
-#if defined(__AVR_ATmega1280__)
-extern HardwareSerial Serial1;
-extern HardwareSerial Serial2;
-extern HardwareSerial Serial3;
-#endif
-
-#endif
View
9 HardwareSerial/README
@@ -1,9 +0,0 @@
-For OpenLog to work under Arduino, we have to remove the normal serial interrupt that Serial.available() uses and replace it with our own RX interrupt vector in the main sketch.
-
-To compile OpenLog you will need to install a fresh copy of Arduino somewhere. I recommend c:\Arduino-OpenLog\ so that you don't confuse the installs.
-
-Replace the file located here:
-C:\arduino-OpenLog\hardware\arduino\cores\arduino\HardwareSerial.cpp
-with the HardwareSerial.cpp that you got when you did the github pull.
-
-Remember, compiling Sketches using this special version of Arduino will drive you mad because the serial interrupts will not work.
View
116 OpenLog_Test_Sketch/OpenLog_Test_Sketch.ino
@@ -1,60 +1,63 @@
/*
- 4-14-2010
- Copyright SparkFun Electronics© 2010
- Nathan Seidle
- spark at sparkfun.com
-
- This is a simple test sketch for OpenLog. It sends a large batch of characters to the serial port at 9600bps.
- Original test was recomended by ScottH on issue #12:
- http://github.com/nseidle/OpenLog/issues#issue/12
-
- To use this sketch, attach RXI pin of OpenLog to TX pin on Arduino. Power OpenLog from 5V (or 3.3V) and GND pins from Arduino.
- After power up, OpenLog will start flashing (indicating it's receiving characters). It takes about 1 minute for
- the sketch to run to completion. This will create a file that looks like this:
-
- ...
- 6:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-!#
- 7:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-!#
- 8:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-!#
- 9:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-!#
- #:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-!#
- 1:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-!#
- 2:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-!#
- ...
-
- The reason for creating these character blocks is it allows for a reader to very quickly scan the visible characters and
- indentify any byte errors or glitches along the way. Every 9 lines we print a 10th line that has a leading character
- such as # or !. These allow us to quickly see the different blocks of 10 lines.
-
- Note: Bootloading an Arduino will cause OpenLog to drop to command mode. This is because OpenLog is looking for the
- escape character (ctrl+z). During a bootload, all sorts of characters get sent to the Arduino and therefore ctrl+z is likely
- to get sent to OpenLog. v1.51 of the OpenLog firmware fixes this potential error by requiring three escape characters.
-
-*/
+ 4-14-2010
+ SparkFun Electronics 2012
+ Nathan Seidle
+
+ This code is public domain but you buy me a beer if you use this and we meet someday (Beerware license).
+
+ This is a simple test sketch for OpenLog. It sends a large batch of characters to the serial port at 9600bps.
+ Original test was recomended by ScottH on issue #12:
+ http://github.com/nseidle/OpenLog/issues#issue/12
+
+ Arduino TX to OpenLog RXI
+ Arduino 5V to OpenLog VCC
+ Arduino GND to OpenLog GND
+
+ To use this sketch, attach RXI pin of OpenLog to TX pin on Arduino. Power OpenLog from 5V (or 3.3V) and GND pins from Arduino.
+ After power up, OpenLog will start flashing (indicating it's receiving characters). It takes about 1 minute for
+ the sketch to run to completion. This will create a file that looks like this:
+
+ ...
+ 6:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-!#
+ 7:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-!#
+ 8:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-!#
+ 9:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-!#
+ #:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-!#
+ 1:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-!#
+ 2:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-!#
+ ...
+
+ The reason for creating these character blocks is it allows for a reader to very quickly scan the visible characters and
+ indentify any byte errors or glitches along the way. Every 9 lines we print a 10th line that has a leading character
+ such as # or !. These allow us to quickly see the different blocks of 10 lines.
+
+ Note: Bootloading an Arduino will cause OpenLog to drop to command mode. This is because OpenLog is looking for the
+ escape character (ctrl+z). During a bootload, all sorts of characters get sent to the Arduino and therefore ctrl+z is likely
+ to get sent to OpenLog. v1.51 of the OpenLog firmware fixes this potential error by requiring three escape characters.
+
+ */
-int ledPin = 13; // LED connected to digital pin 13
+int ledPin = 13; //Status LED connected to digital pin 13
void setup()
{
pinMode(ledPin, OUTPUT);
- Serial.begin(9600); //9600bps is default for OpenLog
+ //Serial.begin(9600); //9600bps is default for OpenLog
//Serial.begin(57600); //Much faster serial, used for testing buffer overruns on OpenLog
- //Serial.begin(115200); //Much faster serial, used for testing buffer overruns on OpenLog
+ Serial.begin(115200); //Much faster serial, used for testing buffer overruns on OpenLog
delay(1000); //Wait a second for OpenLog to init
Serial.println();
Serial.println("Run OpenLog Test");
-}
-void loop()
-{
- int testAmt = 4;
+ int testAmt = 30;
//At 9600, testAmt of 4 takes about 1 minute, 10 takes about 3 minutes
//At 57600, testAmt of 10 takes about 1 minute, 40 takes about 5 minutes
+ //At 115200, testAmt of 30 takes about 1 minute
//testAmt of 10 will push 111,000 characters/bytes. With header and footer strings, total is 111,052
-
+
//Each test is 100 lines. 10 tests is 1000 lines (11,000 characters)
for(int numofTests = 0 ; numofTests < testAmt ; numofTests++)
{
@@ -65,7 +68,7 @@ void loop()
Serial.write(k); //Print the ASCII value directly: ! then " then #, etc
Serial.println(":abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-!#");
//delay(50);
-
+
//Then print 9 lines of 110 characters with new line at the end of the line
for(int i = 1 ; i < 10 ; i++)
{
@@ -74,27 +77,28 @@ void loop()
//delay(50);
}
- if(digitalRead(ledPin) == 0)
- digitalWrite(ledPin, HIGH);
- else
- digitalWrite(ledPin, LOW);
-
+ if(digitalRead(ledPin) == 0) //Turn the status LED on/off as we go
+ digitalWrite(ledPin, HIGH);
+ else
+ digitalWrite(ledPin, LOW);
}
- }
+ } //End numofTests loop
unsigned long totalCharacters = (long)testAmt * 100 * 110;
-
Serial.print("Characters pushed: ");
Serial.println(totalCharacters);
Serial.print("Time taken (s): ");
Serial.println(millis()/1000);
Serial.println("Done!");
-
- while(1)
- {
- digitalWrite(ledPin, HIGH); // set the LED on
- delay(100); // wait for a second
- digitalWrite(ledPin, LOW); // set the LED off
- delay(100); // wait for a second
- }
}
+
+void loop()
+{
+ //Blink the Status LED because we're done!
+ digitalWrite(ledPin, HIGH);
+ delay(100);
+ digitalWrite(ledPin, LOW);
+ delay(1000);
+}
+
+
View
418 OpenLog_v2/FatStructs.h
@@ -1,418 +0,0 @@
-/* Arduino SdFat Library
- * Copyright (C) 2009 by William Greiman
- *
- * This file is part of the Arduino SdFat Library
- *
- * This Library 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 3 of the License, or
- * (at your option) any later version.
- *
- * This Library 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 the Arduino SdFat Library. If not, see
- * <http://www.gnu.org/licenses/>.
- */
-#ifndef FatStructs_h
-#define FatStructs_h
-/**
- * \file
- * FAT file structures
- */
-/*
- * mostly from Microsoft document fatgen103.doc
- * http://www.microsoft.com/whdc/system/platform/firmware/fatgen.mspx
- */
-//------------------------------------------------------------------------------
-/** Value for byte 510 of boot block or MBR */
-uint8_t const BOOTSIG0 = 0X55;
-/** Value for byte 511 of boot block or MBR */
-uint8_t const BOOTSIG1 = 0XAA;
-//------------------------------------------------------------------------------
-/**
- * \struct partitionTable
- * \brief MBR partition table entry
- *
- * A partition table entry for a MBR formatted storage device.
- * The MBR partition table has four entries.
- */
-struct partitionTable {
- /**
- * Boot Indicator . Indicates whether the volume is the active
- * partition. Legal values include: 0X00. Do not use for booting.
- * 0X80 Active partition.
- */
- uint8_t boot;
- /**
- * Head part of Cylinder-head-sector address of the first block in
- * the partition. Legal values are 0-255. Only used in old PC BIOS.
- */
- uint8_t beginHead;
- /**
- * Sector part of Cylinder-head-sector address of the first block in
- * the partition. Legal values are 1-63. Only used in old PC BIOS.
- */
- unsigned beginSector : 6;
- /** High bits cylinder for first block in partition. */
- unsigned beginCylinderHigh : 2;
- /**
- * Combine beginCylinderLow with beginCylinderHigh. Legal values
- * are 0-1023. Only used in old PC BIOS.
- */
- uint8_t beginCylinderLow;
- /**
- * Partition type. See defines that begin with PART_TYPE_ for
- * some Microsoft partition types.
- */
- uint8_t type;
- /**
- * head part of cylinder-head-sector address of the last sector in the
- * partition. Legal values are 0-255. Only used in old PC BIOS.
- */
- uint8_t endHead;
- /**
- * Sector part of cylinder-head-sector address of the last sector in
- * the partition. Legal values are 1-63. Only used in old PC BIOS.
- */
- unsigned endSector : 6;
- /** High bits of end cylinder */
- unsigned endCylinderHigh : 2;
- /**
- * Combine endCylinderLow with endCylinderHigh. Legal values
- * are 0-1023. Only used in old PC BIOS.
- */
- uint8_t endCylinderLow;
- /** Logical block address of the first block in the partition. */
- uint32_t firstSector;
- /** Length of the partition, in blocks. */
- uint32_t totalSectors;
-};
-/** Type name for partitionTable */
-typedef struct partitionTable part_t;
-//------------------------------------------------------------------------------
-/**
- * \struct masterBootRecord
- *
- * \brief Master Boot Record
- *
- * The first block of a storage device that is formatted with a MBR.
- */
-struct masterBootRecord {
- /** Code Area for master boot program. */
- uint8_t codeArea[440];
- /** Optional WindowsNT disk signature. May contain more boot code. */
- uint32_t diskSignature;
- /** Usually zero but may be more boot code. */
- uint16_t usuallyZero;
- /** Partition tables. */
- part_t part[4];
- /** First MBR signature byte. Must be 0X55 */
- uint8_t mbrSig0;
- /** Second MBR signature byte. Must be 0XAA */
- uint8_t mbrSig1;
-};
-/** Type name for masterBootRecord */
-typedef struct masterBootRecord mbr_t;
-//------------------------------------------------------------------------------
-/**
- * \struct biosParmBlock
- *
- * \brief BIOS parameter block
- *
- * The BIOS parameter block describes the physical layout of a FAT volume.
- */
-struct biosParmBlock {
- /**
- * Count of bytes per sector. This value may take on only the
- * following values: 512, 1024, 2048 or 4096
- */
- uint16_t bytesPerSector;
- /**
- * Number of sectors per allocation unit. This value must be a
- * power of 2 that is greater than 0. The legal values are
- * 1, 2, 4, 8, 16, 32, 64, and 128.
- */
- uint8_t sectorsPerCluster;
- /**
- * Number of sectors before the first FAT.
- * This value must not be zero.
- */
- uint16_t reservedSectorCount;
- /** The count of FAT data structures on the volume. This field should
- * always contain the value 2 for any FAT volume of any type.
- */
- uint8_t fatCount;
- /**
- * For FAT12 and FAT16 volumes, this field contains the count of
- * 32-byte directory entries in the root directory. For FAT32 volumes,
- * this field must be set to 0. For FAT12 and FAT16 volumes, this
- * value should always specify a count that when multiplied by 32
- * results in a multiple of bytesPerSector. FAT16 volumes should
- * use the value 512.
- */
- uint16_t rootDirEntryCount;
- /**
- * This field is the old 16-bit total count of sectors on the volume.
- * This count includes the count of all sectors in all four regions
- * of the volume. This field can be 0; if it is 0, then totalSectors32
- * must be non-zero. For FAT32 volumes, this field must be 0. For
- * FAT12 and FAT16 volumes, this field contains the sector count, and
- * totalSectors32 is 0 if the total sector count fits
- * (is less than 0x10000).
- */
- uint16_t totalSectors16;
- /**
- * This dates back to the old MS-DOS 1.x media determination and is
- * no longer usually used for anything. 0xF8 is the standard value
- * for fixed (non-removable) media. For removable media, 0xF0 is
- * frequently used. Legal values are 0xF0 or 0xF8-0xFF.
- */
- uint8_t mediaType;
- /**
- * Count of sectors occupied by one FAT on FAT12/FAT16 volumes.
- * On FAT32 volumes this field must be 0, and sectorsPerFat32
- * contains the FAT size count.
- */
- uint16_t sectorsPerFat16;
- /** Sectors per track for interrupt 0x13. Not used otherwise. */
- uint16_t sectorsPerTrtack;
- /** Number of heads for interrupt 0x13. Not used otherwise. */
- uint16_t headCount;
- /**
- * Count of hidden sectors preceding the partition that contains this
- * FAT volume. This field is generally only relevant for media
- * visible on interrupt 0x13.
- */
- uint32_t hidddenSectors;
- /**
- * This field is the new 32-bit total count of sectors on the volume.
- * This count includes the count of all sectors in all four regions
- * of the volume. This field can be 0; if it is 0, then
- * totalSectors16 must be non-zero.
- */
- uint32_t totalSectors32;
- /**
- * Count of sectors occupied by one FAT on FAT32 volumes.
- */
- uint32_t sectorsPerFat32;
- /**
- * This field is only defined for FAT32 media and does not exist on
- * FAT12 and FAT16 media.
- * Bits 0-3 -- Zero-based number of active FAT.
- * Only valid if mirroring is disabled.
- * Bits 4-6 -- Reserved.
- * Bit 7 -- 0 means the FAT is mirrored at runtime into all FATs.
- * -- 1 means only one FAT is active; it is the one referenced in bits 0-3.
- * Bits 8-15 -- Reserved.
- */
- uint16_t fat32Flags;
- /**
- * FAT32 version. High byte is major revision number.
- * Low byte is minor revision number. Only 0.0 define.
- */
- uint16_t fat32Version;
- /**
- * Cluster number of the first cluster of the root directory for FAT32.
- * This usually 2 but not required to be 2.
- */
- uint32_t fat32RootCluster;
- /**
- * Sector number of FSINFO structure in the reserved area of the
- * FAT32 volume. Usually 1.
- */
- uint16_t fat32FSInfo;
- /**
- * If non-zero, indicates the sector number in the reserved area
- * of the volume of a copy of the boot record. Usually 6.
- * No value other than 6 is recommended.
- */
- uint16_t fat32BackBootBlock;
- /**
- * Reserved for future expansion. Code that formats FAT32 volumes
- * should always set all of the bytes of this field to 0.
- */
- uint8_t fat32Reserved[12];
-};
-/** Type name for biosParmBlock */
-typedef struct biosParmBlock bpb_t;
-//------------------------------------------------------------------------------
-/**
- * \struct fat32BootSector
- *
- * \brief Boot sector for a FAT16 or FAT32 volume.
- *
- */
-struct fat32BootSector {
- /** X86 jmp to boot program */
- uint8_t jmpToBootCode[3];
- /** informational only - don't depend on it */
- char oemName[8];
- /** BIOS Parameter Block */
- bpb_t bpb;
- /** for int0x13 use value 0X80 for hard drive */
- uint8_t driveNumber;
- /** used by Windows NT - should be zero for FAT */
- uint8_t reserved1;
- /** 0X29 if next three fields are valid */
- uint8_t bootSignature;
- /** usually generated by combining date and time */
- uint32_t volumeSerialNumber;
- /** should match volume label in root dir */
- char volumeLabel[11];
- /** informational only - don't depend on it */
- char fileSystemType[8];
- /** X86 boot code */
- uint8_t bootCode[420];
- /** must be 0X55 */
- uint8_t bootSectorSig0;
- /** must be 0XAA */
- uint8_t bootSectorSig1;
-};
-//------------------------------------------------------------------------------
-// End Of Chain values for FAT entries
-/** FAT16 end of chain value used by Microsoft. */
-uint16_t const FAT16EOC = 0XFFFF;
-/** Minimum value for FAT16 EOC. Use to test for EOC. */
-uint16_t const FAT16EOC_MIN = 0XFFF8;
-/** FAT32 end of chain value used by Microsoft. */
-uint32_t const FAT32EOC = 0X0FFFFFFF;
-/** Minimum value for FAT32 EOC. Use to test for EOC. */
-uint32_t const FAT32EOC_MIN = 0X0FFFFFF8;
-/** Mask a for FAT32 entry. Entries are 28 bits. */
-uint32_t const FAT32MASK = 0X0FFFFFFF;
-
-/** Type name for fat32BootSector */
-typedef struct fat32BootSector fbs_t;
-//------------------------------------------------------------------------------
-/**
- * \struct directoryEntry
- * \brief FAT short directory entry
- *
- * Short means short 8.3 name, not the entry size.
- *
- * Date Format. A FAT directory entry date stamp is a 16-bit field that is
- * basically a date relative to the MS-DOS epoch of 01/01/1980. Here is the
- * format (bit 0 is the LSB of the 16-bit word, bit 15 is the MSB of the
- * 16-bit word):
- *
- * Bits 9-15: Count of years from 1980, valid value range 0-127
- * inclusive (1980-2107).
- *
- * Bits 5-8: Month of year, 1 = January, valid value range 1-12 inclusive.
- *
- * Bits 0-4: Day of month, valid value range 1-31 inclusive.
- *
- * Time Format. A FAT directory entry time stamp is a 16-bit field that has
- * a granularity of 2 seconds. Here is the format (bit 0 is the LSB of the
- * 16-bit word, bit 15 is the MSB of the 16-bit word).
- *
- * Bits 11-15: Hours, valid value range 0-23 inclusive.
- *
- * Bits 5-10: Minutes, valid value range 0-59 inclusive.
- *
- * Bits 0-4: 2-second count, valid value range 0-29 inclusive (0 - 58 seconds).
- *
- * The valid time range is from Midnight 00:00:00 to 23:59:58.
- */
-struct directoryEntry {
- /**
- * Short 8.3 name.
- * The first eight bytes contain the file name with blank fill.
- * The last three bytes contain the file extension with blank fill.
- */
- uint8_t name[11];
- /** Entry attributes.
- *
- * The upper two bits of the attribute byte are reserved and should
- * always be set to 0 when a file is created and never modified or
- * looked at after that. See defines that begin with DIR_ATT_.
- */
- uint8_t attributes;
- /**
- * Reserved for use by Windows NT. Set value to 0 when a file is
- * created and never modify or look at it after that.
- */
- uint8_t reservedNT;
- /**
- * The granularity of the seconds part of creationTime is 2 seconds
- * so this field is a count of tenths of a second and its valid
- * value range is 0-199 inclusive. (WHG note - seems to be hundredths)
- */
- uint8_t creationTimeTenths;
- /** Time file was created. */
- uint16_t creationTime;
- /** Date file was created. */
- uint16_t creationDate;
- /**
- * Last access date. Note that there is no last access time, only
- * a date. This is the date of last read or write. In the case of
- * a write, this should be set to the same date as lastWriteDate.
- */
- uint16_t lastAccessDate;
- /**
- * High word of this entry's first cluster number (always 0 for a
- * FAT12 or FAT16 volume).
- */
- uint16_t firstClusterHigh;
- /** Time of last write. File creation is considered a write. */
- uint16_t lastWriteTime;
- /** Date of last write. File creation is considered a write. */
- uint16_t lastWriteDate;
- /** Low word of this entry's first cluster number. */
- uint16_t firstClusterLow;
- /** 32-bit unsigned holding this file's size in bytes. */
- uint32_t fileSize;
-};
-//------------------------------------------------------------------------------
-// Definitions for directory entries
-//
-/** Type name for directoryEntry */
-typedef struct directoryEntry dir_t;
-/** escape for name[0] = 0XE5 */
-uint8_t const DIR_NAME_0XE5 = 0X05;
-/** name[0] value for entry that is free after being "deleted" */
-uint8_t const DIR_NAME_DELETED = 0XE5;
-/** name[0] value for entry that is free and no allocated entries follow */
-uint8_t const DIR_NAME_FREE = 0X00;
-/** file is read-only */
-uint8_t const DIR_ATT_READ_ONLY = 0X01;
-/** File should hidden in directory listings */
-uint8_t const DIR_ATT_HIDDEN = 0X02;
-/** Entry is for a system file */
-uint8_t const DIR_ATT_SYSTEM = 0X04;
-/** Directory entry contains the volume label */
-uint8_t const DIR_ATT_VOLUME_ID = 0X08;
-/** Entry is for a directory */
-uint8_t const DIR_ATT_DIRECTORY = 0X10;
-/** Old DOS archive bit for backup support */
-uint8_t const DIR_ATT_ARCHIVE = 0X20;
-/** Test value for long name entry. Test is
- (d->attributes & DIR_ATT_LONG_NAME_MASK) == DIR_ATT_LONG_NAME. */
-uint8_t const DIR_ATT_LONG_NAME = 0X0F;
-/** Test mask for long name entry */
-uint8_t const DIR_ATT_LONG_NAME_MASK = 0X3F;
-/** defined attribute bits */
-uint8_t const DIR_ATT_DEFINED_BITS = 0X3F;
-/** Directory entry is part of a long name */
-static inline uint8_t DIR_IS_LONG_NAME(const dir_t* dir) {
- return (dir->attributes & DIR_ATT_LONG_NAME_MASK) == DIR_ATT_LONG_NAME;
-}
-/** Mask for file/subdirectory tests */
-uint8_t const DIR_ATT_FILE_TYPE_MASK = (DIR_ATT_VOLUME_ID | DIR_ATT_DIRECTORY);
-/** Directory entry is for a file */
-static inline uint8_t DIR_IS_FILE(const dir_t* dir) {
- return (dir->attributes & DIR_ATT_FILE_TYPE_MASK) == 0;
-}
-/** Directory entry is for a subdirectory */
-static inline uint8_t DIR_IS_SUBDIR(const dir_t* dir) {
- return (dir->attributes & DIR_ATT_FILE_TYPE_MASK) == DIR_ATT_DIRECTORY;
-}
-/** Directory entry is for a file or subdirectory */
-static inline uint8_t DIR_IS_FILE_OR_SUBDIR(const dir_t* dir) {
- return (dir->attributes & DIR_ATT_VOLUME_ID) == 0;
-}
-#endif // FatStructs_h
View
1,801 OpenLog_v2/OpenLog_v2.cpp.hex
@@ -1,1801 +0,0 @@
-:100000000C948B050C94B3050C94B3050C94B305B8
-:100010000C94B3050C94B3050C94B3050C94B30580
-:100020000C94B3050C94B3050C94B3050C94B30570
-:100030000C94B3050C94B3050C94B3050C94B30560
-:100040000C9412320C94B3050C94E4080C94B30590
-:100050000C94B3050C94B3050C94B3050C94B30540
-:100060000C94B3050C94B30552656D6F76652066EC
-:1000700061696C65643A20006F70656E526F6F74D1
-:1000800000766F6C756D652E696E697400636172C0
-:10009000642E696E6974006572726F72207772697E
-:1000A00074696E6720746F2066696C6500437265C1
-:1000B00061746520636F6E666967206661696C654F
-:1000C000640052656D6F766520636F6E66696720A8
-:1000D0006661696C6564006F70656E526F6F740065
-:1000E0006F70656E526F6F740045786974696E67E2
-:1000F0000078000A0D4E756D626572206F6620658E
-:1001000073636170652063686172616374657273A3
-:10011000206E65656465643A20000A0D456E74655D
-:1001200072206E756D626572206F66206573636103
-:100130007065206368617261637465727320746FA7
-:10014000206C6F6F6B20666F7220283120746F20D7
-:1001500039293A200036000A0D4E65772065736311
-:10016000617065206368617261637465723A200032
-:10017000456E7465722061206E65772065736361DA
-:100180007065206368617261637465723A2000353E
-:10019000004E65772066696C65206E756D626572CC
-:1001A00020726573657420746F207A65726F0034F5
-:1001B00000436F6D6D616E642070726F6D707400BE
-:1001C0003300417070656E642066696C65206C6FE9
-:1001D0006767696E670032004E65772066696C65F7
-:1001E000206C6F6767696E67003100782920457859
-:1001F0006974003629204E756D626572206F662025
-:1002000065736361706520636861726163746572B0
-:1002100073003529204E6577206573636170652012
-:10022000636861726163746572003429205265737A
-:100230006574206E65772066696C65206E756D62E9
-:10024000657200332920436F6D6D616E642070729A
-:100250006F6D707400322920417070656E64206685
-:10026000696C65206C6F6767696E67003129204E85
-:1002700065772066696C65206C6F6767696E6700DB
-:100280004368616E676520746F3A002078200043F0
-:10029000757272656E742065736361706520636842
-:1002A0006172616374657220616E6420616D6F7547
-:1002B0006E743A2000436F6D6D616E640041707022
-:1002C000656E642066696C65004E65772066696CB2
-:1002D000650043757272656E7420626F6F74206D75
-:1002E0006F64653A20000D0A53797374656D20437D
-:1002F0006F6E66696775726174696F6E00457869C3
-:1003000074696E67007800476F696E6720746F20AC
-:100310003131353230306270732E2E2E0037004767
-:100320006F696E6720746F203537363030627073B6
-:100330002E2E2E003600476F696E6720746F2033B3
-:10034000383430306270732E2E2E003500476F69BE
-:100350006E6720746F2031393230306270732E2E08
-:100360002E003400476F696E6720746F2039363075
-:10037000306270732E2E2E003300476F696E672037
-:10038000746F20343830306270732E2E2E0032009D
-:10039000476F696E6720746F20323430306270733B
-:1003A0002E2E2E00310078292045786974003729D7
-:1003B00020313135323030206270730036292035DB
-:1003C00037363030206270730035292033383430AE
-:1003D000302062707300342920313932303020628D
-:1003E0007073003329203936303020627073003248
-:1003F00029203438303020627073003129203234A3
-:10040000303020627073004368616E676520746FDE
-:100410003A003030206270730031313532003537A8
-:100420003600333834003139320039360032340086
-:1004300034380043757272656E743A20000A0D42BA
-:1004400061756420436F6E66696775726174696F68
-:100450006E3A00626175640909093A204D656E754E
-:1004600020746F20636F6E666967757265206261C4
-:1004700075642072617465007365740909093A2016
-:100480004D656E7520746F20636F6E666967757257
-:10049000652073797374656D206D6F6465000A0D56
-:1004A0004D656E75733A0072657365740909093A92
-:1004B0002043617573657320756E697420746F20B5
-:1004C000726573657420616E64207573696E672050
-:1004D000616E79206E657720706172616D657465FB
-:1004E000727320696E20636F6E6669672066696C3F
-:1004F00065006469736B0909093A2053686F777363
-:100500002063617264206D616E75666163747572DB
-:1005100065722C207374617475732C2066696C6528
-:1005200073797374656D2063617061636974792098
-:10053000616E6420667265652073746F72616765B1
-:100540002073706163650073697A65203C66696C2D
-:10055000653E09093A2057726974652073697A65A6
-:10056000206F662066696C6520746F207465726DFB
-:10057000696E616C0072656164203C66696C653E01
-:10058000203C73746172743E203C6C656E677468C5
-:100590003E203C747970653E09093A2057726974AF
-:1005A0006573204153434949203C6C656E6774680C
-:1005B0003E207061727473206F66203C66696C65C2
-:1005C0003E20746F20746865207465726D696E6179
-:1005D0006C207374617274696E67206174203C735F
-:1005E000746172743E2E204F6D6974203C73746187
-:1005F00072743E20616E64203C6C656E6774683E68
-:1006000020746F20726561642077686F6C65206666
-:10061000696C652E203C747970653E2031207072C3
-:10062000696E747320696E2041534349492C20320E
-:1006300020696E204845582E006C730909093A203C
-:1006400053686F77732074686520636F6E74656E8E
-:1006500074206F66207468652063757272656E74AD
-:10066000206469726563746F72792E2055736520FA
-:1006700077696C646361726420746F20646F2061B9
-:100680002077696C6463617264206C697374696E4D
-:1006900067206F662066696C657320696E206375DC
-:1006A0007272656E74206469726563746F7279002A
-:1006B0006D64203C6469726563746F72793E093AB7
-:1006C000204372656174657320612064697265639B
-:1006D000746F72792063616C6C6564203C6469722C
-:1006E0006563746F72793E00617070656E64203C62
-:1006F00066696C653E09093A20417070656E6473E5
-:10070000207465787420746F20656E64206F662095
-:100710003C66696C653E2E2054686520746578746B
-:1007200020697320726561642066726F6D20746841
-:1007300065205541525420696E20612073747265A2
-:10074000616D20616E64206973206E6F7420656333
-:10075000686F65642E2046696E697368206279202F
-:1007600073656E64696E67204374726C2B7A2028FF
-:10077000415343494920323629006E6577203C6653
-:10078000696C653E09093A2043726561746573209E
-:100790003C66696C653E00426173696320636F6DFE
-:1007A0006D616E64733A004F70656E4C6F672076B2
-:1007B000322E3500756E6B6E6F776E20636F6D6DC8
-:1007C000616E643A20006566696E666F00636F75DE
-:1007D0006E747C006566636F756E74006F6666008C
-:1007E0006F6E0065656D006F6666006F6E00766502
-:1007F00072626F7365006F6666006F6E0065636896
-:100800006F0070776400617070656E64004572728D
-:100810006F72206372656174696E672066696C65CA
-:100820003A20006E65770072657365740073796EA7
-:100830006300204B4200436172642053697A653A39
-:10084000200072656164435344206661696C65648D
-:10085000004D616E75666163747572696E672064C0
-:100860006174653A200053657269616C206E756D24
-:100870006265723A20000A0D56657273696F6E3AAE
-:10088000200050726F647563743A20004F454D200C
-:1008900049443A20004D616E7566616374757265F6
-:1008A000722049443A2000726561644349442066DD
-:1008B00061696C656400556E6B6E6F776E005344B2
-:1008C00048430053443200534431000A4361726488
-:1008D00020747970653A20006469736B002D3100D3
-:1008E00073697A65006572726F72207772697469D4
-:1008F0006E6720746F2066696C650A0D0045727220
-:100900006F72207365656B696E6720746F20004697
-:1009100061696C656420746F206F70656E20666914
-:100920006C6520007772697465004572726F722081
-:100930007365656B696E6720746F20004661696C32
-:10094000656420746F206F70656E2066696C652029
-:100950000072656164006364002D726600726D0050
-:100960006572726F72206372656174696E6720646C
-:1009700069726563746F72793A20006D6400566F16
-:100980006C756D6520697320464154006C7300736B
-:10099000657400626175640068656C70003F0046B4
-:1009A000696C652073797374656D20696E6974690B
-:1009B000616C697A6564006F70656E526F6F740068
-:1009C000436C6F73696E6720646F776E2066696C25
-:1009D000652073797374656D00696E69740064696C
-:1009E000726563746F7279206E6F7420666F756EB6
-:1009F000643A200063616E6E6F7420636420746FCC
-:100A000020706172656E74206469726563746F72C0
-:100A1000793A20006F70656E526F6F74002E2E0051
-:100A20007E006F70656E31004572726F7220637266
-:100A3000656174696E67205345514C4F470A002128
-:100A4000546F6F206D616E79206C6F67733A32213D
-:100A50000021546F6F206D616E79206C6F67733A5F
-:100A60003121006572726F72206F70656E526F6F08
-:100A700074006572726F7220766F6C756D652E6989
-:100A80006E6974006572726F7220636172642E69A0
-:100A90006E6974005344206572726F723A2000656B
-:100AA00072726F723A20007C3C3E5E2B3D3F2F5BA2
-:100AB0005D3B2C2A225C0000000000240027002A55
-:100AC0000000000000250028002B0000000000238B
-:100AD00000260029000404040404040404020202A1
-:100AE000020202030303030303010204081020406F
-:100AF00080010204081020010204081020000000F8
-:100B000007000201000003040600000000000000CE
-:100B100000004B09103511241FBECFEFD8E0DEBF17
-:100B2000CDBF11E0A0E0B1E0E8ECFFE602C0059027
-:100B30000D92A23AB107D9F717E0A2EAB1E001C0DD
-:100B40001D92A433B107E1F71BE0C6E1DBE004C06E
-:100B50002297FE010E94A737C231D107C9F70E9430
-:100B60004A350C94E2370C940000FC018827992741
-:100B7000E89421912032E9F3293010F02E30C8F3A7
-:100B80002B3241F02D3239F4689404C00E942806BB
-:100B9000820F911D219120532A30C0F31EF49095AD
-:100BA00081959F4F0895FB01DC018D91059080197F
-:100BB0000110D9F3990B0895FB01DC01415050401D
-:100BC00030F08D910590801919F40020B9F7881B39
-:100BD000990B0895FB01DC0104C08D9101908019EF
-:100BE00021F441505040C8F7881B990B0895DC014F
-:100BF00001C06D9341505040E0F70895FB01DC01C6
-:100C00000D900020E9F7119701900D920020E1F777
-:100C10000895FB01DC018D91019080190110D9F339
-:100C2000990B0895FB01DC0101900D920020E1F782
-:100C30000895FB01DC014150504048F001900D92B5
-:100C40000020C9F701C01D9241505040E0F70895BF
-:100C50007AE0979F902D879F802D910D1124089504
-:100C6000AEE0B0E0E6E3F6E00C94B9370D891E89FA
-:100C700086E08C831A8309838FEF9FE79E838D83A1
-:100C80009E01275E3F4FCE0101966F89788DA901A5
-:100C90000E9454062F813885020F131FF80110821D
-:100CA0002E96E4E00C94D537ABE0B0E0EAE5F6E050
-:100CB0000C94AB373C012B015A01FC0117821682C0
-:100CC000838181FD03C06FEF7FEFC6C19AE0892E5B
-:100CD0001E010894211C311CF3012381F20123FD24
-:100CE000859123FF81912F01882309F4B2C18532B8
-:100CF00039F423FD859123FF81912F01853229F459
-:100D000090E0B3010E944708E7CF982FFF24EE241C
-:100D10009924FFE1FF15D0F09B3269F09C3228F452
-:100D2000903259F0933291F40EC09D3249F09033D5
-:100D300069F441E024C052E0F52A84E0F82A28C092
-:100D400098E0F92A25C0E0E1FE2A22C0F7FC29C07C
-:100D5000892F80538A3070F4F6FE05C0989C902C41
-:100D60001124980E15C0E89CE02C1124E80EF0E246
-:100D7000FF2A0EC09E3229F4F6FC6BC140E4F42A2F
-:100D800007C09C3619F450E8F52A02C0983649F499
-:100D9000F20123FD959123FF91912F01992309F0F1
-:100DA000B8CF892F8554833018F08052833038F4BF
-:100DB00044E050E0A40EB51E5FE359830FC09336A4
-:100DC00031F0933779F0933509F056C020C0F50122
-:100DD0008081898342E050E0A40EB51E610101E0EC
-:100DE00010E012C0F501C080D180F6FC03C06FEFA7
-:100DF0007FEF02C0692D70E042E050E0A40EB51E06
-:100E0000C6010E943C088C015FE7F52214C0F50181
-:100E1000C080D180F6FC03C06FEF7FEF02C0692D68
-:100E200070E042E050E0A40EB51EC6010E943108F9
-:100E30008C0150E8F52AF3FE07C01AC080E290E06A
-:100E4000B3010E944708EA948E2D90E00817190715
-:100E5000A8F30EC0F601F7FC8591F7FE81916F01B2
-:100E600090E0B3010E944708E110EA94015010405D
-:100E70000115110579F7EAC0943611F0993669F534
-:100E8000F7FE08C0F501208131814281538184E061
-:100E900090E00AC0F501808191819C01442737FDD3
-:100EA0004095542F82E090E0A80EB91E9FE6F922EB
-:100EB00057FF09C050954095309521953F4F4F4FB2
-:100EC0005F4FE0E8FE2ACA01B901A1012AE030E043
-:100ED0000E947308D82ED21840C0953729F41F2DD0
-:100EE0001F7E2AE030E01DC01F2D197F9F3661F064
-:100EF000903720F4983509F0ACC00FC0903739F026
-:100F0000983709F0A6C004C028E030E00AC010619C
-:100F100014FD146020E130E004C014FD166020E1EF
-:100F200032E017FF08C0F5016081718182819381F1
-:100F300044E050E008C0F50180819181BC0180E06F
-:100F400090E042E050E0A40EB51EA1010E9473089B
-:100F5000D82ED2188FE7F82EF122F6FE0BC05EEFE6
-:100F6000F522D91438F4F4FE07C0F2FC05C08FEE68
-:100F7000F82202C01D2D01C0192DF4FE0DC0FE0186
-:100F8000ED0DF11D8081803319F499EEF92208C02E
-:100F90001F5FF2FE05C003C08F2D867809F01F5F2A
-:100FA0000F2DF3FC14C0F0FE0FC01E1510F09D2C89
-:100FB0000BC09D2C9E0C911A1E2D06C080E290E065
-:100FC000B3010E9447081F5F1E15C0F304C01E1521
-:100FD00010F4E11A01C0EE2404FF0FC080E390E09A
-:100FE000B3010E94470802FF1DC001FD03C088E74E
-:100FF00090E00EC088E590E00BC0802F867891F0DD
-:1010000001FF02C08BE201C080E2F7FC8DE290E0BC
-:10101000B3010E94470806C080E390E0B3010E943C
-:1010200047089A94D914C0F3DA94F101ED0DF11D3B
-:10103000808190E0B3010E944708DD20A9F706C037
-:1010400080E290E0B3010E944708EA94EE20C1F7E5
-:1010500043CEF30166817781CB012B96E2E10C94BC
-:10106000C737FC010590615070400110D8F780959A
-:1010700090958E0F9F1F0895FC0161507040019064
-:101080000110D8F7809590958E0F9F1F08950F93AC
-:101090001F93CF93DF938C01EB018B8181FF1BC0EA
-:1010A00082FF0DC02E813F818C819D8128173907D9
-:1010B00064F4E881F9810193F983E88306C0E88547
-:1010C000F985802F0995892B31F48E819F810196B6
-:1010D0009F838E8302C00FEF1FEFC801DF91CF9176
-:1010E0001F910F910895FA01AA27283051F120315C
-:1010F00081F1E8946F936E7F6E5F7F4F8F4F9F4FAC
-:10110000AF4FB1E03ED0B4E03CD0670F781F891FED
-:101110009A1FA11D680F791F8A1F911DA11D6A0FBB
-:10112000711D811D911DA11D20D009F468943F916E
-:101130002AE0269F11243019305D3193DEF6CF016D
-:101140000895462F4770405D4193B3E00FD0C9F733
-:10115000F6CF462F4F70405D4A3318F0495D31FDA0
-:101160004052419302D0A9F7EACFB4E0A6959795F3
-:10117000879577956795BA95C9F7009761057105C9
-:1011800008959B01AC010A2E069457954795379513
-:101190002795BA95C9F7620F731F841F951FA01D6D
-:1011A0000895F999FECF72BD61BDF89A80B5089592
-:1011B000F999FECF1FBA72BD61BD40BD0FB6F8945C
-:1011C000FA9AF99A0FBE08951F920F920FB60F92D6
-:1011D00011242F938F939F93EF93FF938091A303F9
-:1011E0009091A4032091C600FC01ED55FE4F208391
-:1011F00001969093A4038093A3038050924021F41E
-:101200001092A4031092A303FF91EF919F918F91ED
-:101210002F910F900FBE0F901F901895FC01DB01CE
-:1012200008C0891721F08F3311F080E008953196BE
-:1012300011969C919923F1F080818A3291F71AC01E
-:1012400080818A3259F431968081882311F481E0BB
-:1012500008959D012F5F3F4FAF0110C0891711F016
-:101260008F3319F43196119609C0FA01D9012F5F15
-:101270003F4F04C020E030E040E050E09C919923D3
-:10128000F9F601C0319690819A32E1F380E099231A
-:1012900009F481E0089510927E0410927F04109268
-:1012A00082041092840482E090E0A0E0B0E0809399
-:1012B000850490938604A0938704B09388041092C9
-:1012C0009C048AE891E09093A4048093A304109274
-:1012D000A7049093CE048093CD041092D104089576
-:1012E000EF92FF920F931F937C0101E217E0C80178
-:1012F00068E670E00E948835C801B7010E94FB369D
-:101300001F910F91FF90EF900895CF93DF93EC0121
-:101310008FE0EBEFF4E0DF011D928A95E9F750E0F2
-:1013200041E0A62FB0E039C0242F30E0FE01E20FEB
-:10133000F31F8081803229F02F5F3F4F2A173B0730
-:1013400059F5842F90E001968A179B0709F4462FE0
-:10135000EBEFF4E020E080819181892B19F082810C
-:1013600081112F5F339685E0EA30F807A1F7253029
-:1013700088F4822F90E0FC01EE0FFF1FE80FF91FA9
-:10138000E550FB4FCE01850F911D91838083842F03
-:10139000851B82834F5F542F4F5F461728F2EBEF78
-:1013A000F4E020E080819181892B19F08281811104
-:1013B0002F5F3396A5E0EA30FA07A1F7822FDF917D
-:1013C000CF910895982F8EE1E7EAF3E0DF011D92B7
-:1013D0008A95E9F79530E8F4892F90E0FC01EE0F4B
-:1013E000FF1FE80FF91FE550FB4F60817181611508
-:1013F000710579F04281442361F04F3118F04EE1DC
-:1014000050E001C050E087EA93E00E9419069C0179
-:1014100002C020E030E0C90108950F931F9302EA53
-:1014200011E0C80161E070E041E00E94D808C80105
-:1014300062E070E040E00E94D808C80165E070E01A
-:101440004AE10E94D808C80166E070E043E00E94CB
-:10145000D8081F910F9108950F931F93CF93DF9397
-:10146000C0E0D0E0082F10E017C080917D0161E05E
-:101470000E94223368EC70E080E090E00E946832C5
-:1014800080917D0160E00E94223368EC70E080E092
-:1014900090E00E9468322196C017D10734F360EDC6
-:1014A00077E080E090E00E946832C0E0D0E0F4CFC6
-:1014B0000F931F93CF93DF93EC018B0141E00E94C8
-:1014C000E72D882311F081E005C0CE01B80140E08E
-:1014D0000E94E72DDF91CF911F910F91089582EA2D
-:1014E00091E061E070E00E94D1088093F7048B30B6
-:1014F00050F081E08093F70482EA91E061E070E0CF
-:1015000041E00E94D80882EA91E062E070E00E9427
-:10151000D1088093F804863048F01092F80482EAEB
-:1015200091E062E070E040E00E94D80882EA91E039
-:1015300065E070E00E94D1088093F90481508E3FED
-:1015400050F08AE18093F90482EA91E065E070E06E
-:101550004AE10E94D80882EA91E066E070E00E94C9
-:10156000D1088093FA0481508E3F50F083E080933D
-:10157000FA0482EA91E066E070E043E00E94D80855
-:101580000895CF93DF93EC0107C081E297E040E03C
-:1015900050E00E944A362196FE0164916623A9F725
-:1015A000DF91CF9108950E94C10A81E297E00E94E5
-:1015B000A636089587EA97E00E94D30A87E997E064
-:1015C0000E94D30A8AE797E00E94D30A88EE96E049
-:1015D0000E94D30A80EB96E00E94D30A89E396E04A
-:1015E0000E94D30A85E795E00E94D30A87E495E03C
-:1015F0000E94D30A82EF94E00E94D30A87EA94E023
-:101600000E94D30A8EE994E00E94D30A88E794E00E
-:101610000E94D30A83E594E00E94D30A0895CF92F2
-:10162000DF92EF92FF920F931F93CF93DF93EC0122
-:10163000D62E60E070E04D2D50E00E94F70500E0EE
-:10164000ED2CFF240894E108F10850E2C52E47C0B4
-:101650008091C00087FFFCCF1091C6008BB18C2514
-:101660008BB9183011F01F37E9F40023C1F1015094
-:10167000FE01E00FF11D108281E297E068E040E09A
-:1016800050E00E94923681E297E060E240E050E054
-:101690000E94923681E297E068E040E050E00E94CC
-:1016A00092361DC08091810180FF07C081E297E0E2
-:1016B000612F40E050E00E9492361D3049F481E2F3
-:1016C00097E00E94A636FE01E00FF11D10820DC0CA
-:1016D0001A3029F0FE01E00FF11D10830F5F802FFB
-:1016E00090E08E159F050CF4B3CFCE016D2D0E94B6
-:1016F0008509802FDF91CF911F910F91FF90EF907F
-:10170000DF90CF9008950F931F938C018FE99AE09B
-:101710000E94C10AC8010E94D30A80917E048823D6
-:10172000D9F084E99AE00E94C10A81E297E06091D1
-:101730007E0440E150E00E944A3681E297E06CE28C
-:1017400040E050E00E94923681E297E0609183048D
-:1017500040E150E00E94E136FFCF9F92AF92BF92EE
-:10176000CF92DF92EF92FF920F931F93DF93CF936D
-:10177000CDB7DEB7CA54D0400FB6F894DEBF0FBE67
-:10178000CDBF8AE891E09AA389A31DA2CE018196DC
-:1017900065E874E00E94B425882321F487ED90E089
-:1017A0000E94830B8E010C5F1F4FC80160E071E047
-:1017B0000E9412068DEC94E0BE016F5D7F4FA80180
-:1017C00022E00E94F92A882349F08DEC94E00E94DF
-:1017D000E922882319F482EC90E00FC08DEC94E0AC
-:1017E000BE016F5D7F4FAE014C5F5F4F26E10E94EF
-:1017F000F92A882329F48DEA90E00E94D30AFBC0DD
-:1018000082EA91E061E070E00E94D108082F82EA4C
-:1018100091E062E070E00E94D108982E82EA91E0A7
-:1018200065E070E00E94D108B82E82EA91E066E09F
-:1018300070E00E94D108A82E002329F4CE01419621
-:101840006BE071E029C0043029F4CE01419660E1DB
-:1018500071E022C0013029F4CE01419665E171E0CA
-:101860001BC0053029F4CE0141966AE171E014C035
-:10187000063029F4CE01419660E271E00DC00230DD
-:1018800029F4CE01419666E271E006C0033031F4DE
-:10189000CE0141966CE271E00E9412068E010F5E4D
-:1018A0001F4FC80163E371E00E94FE0500D000D025
-:1018B00000D0EDB7FEB731967E010894E11CF11C13
-:1018C000ADB7BEB71296FC92EE92119765E3C62EA5
-:1018D00061E0D62ED382C2828B2D992787FD909509
-:1018E000958384830E9430068DB79EB706960FB607
-:1018F000F8949EBF0FBE8DBFC801B7010E94FE05C0
-:10190000C80163E371E00E94FE0500D000D000D062
-:10191000EDB7FEB73196ADB7BEB71296FC92EE9218
-:101920001197D382C2828A2D992787FD909595833E
-:1019300084830E9430068DB79EB706960FB6F89442
-:101940009EBF0FBE8DBFC801B7010E94FE05C80132
-:1019500063E371E00E94FE0500D000D000D0EDB737
-:10196000FEB73196ADB7BEB71296FC92EE921197C4
-:10197000D382C282892D992787FD90959583848390
-:101980000E9430068DB79EB706960FB6F8949EBF9C
-:101990000FBE8DBFC801B7010E94FE0587EA93E024
-:1019A000B8010E941206F80101900020E9F7319772
-:1019B000E01BF10B8DEC94E067EA73E0AF010E944D
-:1019C000C028F80101900020E9F73197E01BF10BE6
-:1019D0008E179F0721F087E990E00E94D30A8DECD3
-:1019E00094E00E94CA218DEC94E00E941222CE0164
-:1019F00081960E941222C65BDF4F0FB6F894DEBFBD
-:101A00000FBECDBFCF91DF911F910F91FF90EF904F
-:101A1000DF90CF90BF90AF909F9008950F931F934A
-:101A200080E060E00E94FC3280E061E00E942233AE
-:101A300080E00E947633019709F477C080917F019E
-:101A400061E00E94FC3280917F0161E00E942233BC
-:101A500010E000E269E170E080E090E00E9468320E
-:101A60008BB180278BB980E00E947633019709F40F
-:101A70005CC069E170E080E090E00E94683285B16E
-:101A8000802785B980E00E947633019709F44DC024
-:101A90001F5F1832F9F60E940D0A89E794E060E0B2
-:101AA0004AE00E94C21F882321F48DE890E00E9442
-:101AB000830B85E894E069E774E00E94580A882364
-:101AC00021F481E890E00E94830B83EA94E065E8CA
-:101AD00074E00E94B425882321F488E790E00E94F6
-:101AE000830B0E94AD0B80917D0161E00E94FC326E
-:101AF00080917F0161E00E94FC3280917D0161E074
-:101B00000E94223380917F0161E00E94223310E223
-:101B100064EF71E080E090E00E9468328BB1812731
-:101B20008BB985B1812785B9F3CF1F910F910895A6
-:101B30004F925F926F927F928F929F92AF92BF92DD
-:101B4000CF92DF92EF92FF920F931F93DF93CF9389
-:101B5000CDB7DEB7C355D0400FB6F894DEBF0FBE89
-:101B6000CDBF8AE891E09BA78AA71EA6CE018A96E0
-:101B700065E874E00E94B425882321F480EE90E0AB
-:101B80000E94830B8E01075F1F4FC80160E071E068
-:101B90000E9412068DEC94E0BE01665D7F4FA801A5
-:101BA00021E00E94F92A882309F46FC1CC24DD24A6
-:101BB0007E010894E11CF11C8E010A5E1F4F8DEC22
-:101BC00094E0B70141E050E00E940523019771F4D1
-:101BD000898187FD0BC0F801EC0DFD1D8083089401
-:101BE000C11CD11C84E1C816D10449F78DEC94E0E6
-:101BF0000E941222CE018A960E94122201E010E079
-:101C00009AE1892E83E0B82E9924AA24B2E0EB2E23
-:101C1000F12CEC0EFD1EA6E14A2E512C4C0E5D1E41
-:101C2000F8E06F2E712C6C0E7D1E82C0ED939394A4
-:101C30002A2F2E19892D90E0F201E80FF91FE0817B
-:101C4000EC3231F08C159D051CF4A615B70571F723
-:101C5000F701E20FF11D1082AA20F1F5C7016BE038
-:101C600071E00E940906009711F400E05FC0C7010F
-:101C700060E171E00E940906009711F404E056C08B
-:101C8000C70165E171E00E940906009709F44DC0A3
-:101C9000C7016AE171E00E940906009711F405E0AE
-:101CA00045C0C70160E271E00E940906009711F487
-:101CB00006E03CC0C70166E271E00E940906009799
-:101CC00011F402E033C0C7016CE271E00E94090622
-:101CD000009759F503E02AC081E0A81649F4C7012E
-:101CE0000E94B505882E882309F5EAE18E2E1EC0D4
-:101CF00082E0A81651F4C7010E94B505B82E8823CA
-:101D000089F08AE08B1574F011C083E0A816B9F44D
-:101D1000C7010E94B505182F882341F0863034F0A2
-:101D200010E004C073E0B72E01C001E0A3949394C7
-:101D3000892D90E08C159D0514F4D70179CF202FC3
-:101D4000332727FD30958091F70490E02817390755
-:101D500011F44FEF5CC082EA91E061E070E0402F47
-:101D60000E94D8080093F704002341F481E297E031
-:101D700040E659E060E070E00E94C5338091F704CE
-:101D8000843041F481E297E040EC52E160E070E0A1
-:101D90000E94C5338091F704813041F481E297E0DD
-:101DA00040E855E260E070E00E94C5338091F7049E
-:101DB000853041F481E297E040E05BE460E070E070
-:101DC0000E94C5338091F704863041F481E297E0A8
-:101DD00040E056E960E070E00E94C5338091F7046E
-:101DE000823041F481E297E040E051EE60E070E043
-:101DF0000E94C5338091F704833041F481E297E07B
-:101E000040E052EC61E070E00E94C53340E0212FD9
-:101E1000332727FD30958091F80490E02817390783
-:101E200051F01093F80482EA91E062E070E0412FF3
-:101E30000E94D80840E0282D332727FD3095809157
-:101E4000F90490E02817390751F08092F90482EAEA
-:101E500091E065E070E0482D0E94D80840E02B2D0D
-:101E6000332727FD30958091FA0490E02817390731
-:101E700051F0B092FA0482EA91E066E070E04B2DF6
-:101E80000E94D80802C0442311F40E94AD0BCD5A21
-:101E9000DF4F0FB6F894DEBF0FBECDBFCF91DF91FD
-:101EA0001F910F91FF90EF90DF90CF90BF90AF9078
-:101EB0009F908F907F906F905F904F90089580914A
-:101EC0007D0161E00E94FC3283B7817F83BF83B7CD
-:101ED000816083BF809164008068809364008091FA
-:101EE00064008860809364008091640080648093C3
-:101EF0006400809164008160809364000E940E0DF4
-:101F00000E946F0A8091F704882341F481E297E0F0
-:101F100040E659E060E070E00E94C5338091F7042C
-:101F2000843041F481E297E040EC52E160E070E0FF
-:101F30000E94C5338091F704813041F481E297E03B
-:101F400040E855E260E070E00E94C5338091F704FC
-:101F5000853041F481E297E040E05BE460E070E0CE
-:101F60000E94C5338091F704863041F481E297E006
-:101F700040E056E960E070E00E94C5338091F704CC
-:101F8000823041F481E297E040E051EE60E070E0A1
-:101F90000E94C5338091F704833041F481E297E0D9
-:101FA00040E052EC61E070E00E94C53381E297E0CE
-:101FB00068E371E00E94883589E794E060E04AE0D8
-:101FC0000E94C21F882339F484E89AE00E94C10A63
-:101FD00083E00E942C0A85E894E069E774E00E949F
-:101FE000580A882339F482E79AE00E94C10A83E004
-:101FF0000E942C0A83EA94E065E874E00E94B4250C
-:10200000882339F483E69AE00E94C10A83E00E94A3
-:102010002C0A81E297E06AE371E00E9488350E9411
-:10202000980D84EBE5ECF3E0DF011D928A95E9F76A
-:102030000895EF92FF920F931F93CF93DF93AC011C
-:102040008DEC94E063EA74E026E10E94F92A88238B
-:1020500041F48091810181FF04C082E29AE00E94F4
-:10206000830B8091810183FF07C081E297E06AE1E1
-:1020700040E050E00E94923681E297E06CE340E05D
-:1020800050E00E94923680917D0161E00E942233EF
-:102090001092A4031092A3038091C10080688093E2
-:1020A000C1007894C0E0D0E0FF2420E2E22E00E0FE
-:1020B00010E069C084E0013B180718F40F5F1F4F60
-:1020C0005CC0209709F450C081E0C030D80709F403
-:1020D0004BC0CF3FD10509F054F48DEC94E063EA96
-:1020E00071E0AE010E94C02840E050E00BC0AE019C
-:1020F000405051408DEC94E063EA72E00E94C028A9
-:1021000040E051E0F8946091A3037091A403DA01D8
-:10211000AD55BE4F9A010FC0FE01ED55FE4F8081B7
-:102120008C93219682E0C030D80714F0C0E0D0E054
-:102130002F5F3F4F1196C617D70771F73093A4034F
-:102140002093A303EA0178948DEC94E00E94CA21C5
-:102150000BC085E060E00E94223383B7816083BFBB
-:10216000889583B78E7F83BF8091A3039091A4034A
-:10217000C817D90771F300E010E061E070E080E07B
-:1021800090E00E9468328091A3039091A403C81745
-:10219000D90709F48FCFFE01ED55FE4F208133277B
-:1021A00027FD30958091F90490E028173907A1F4B4
-:1021B000F3942F2D332727FD30958091FA0490E07A
-:1021C0002817390751F4F8948091C1008F778093D4
-:1021D000C100209751F53FC0FF24219681E0C03017
-:1021E000D80769F48DEC94E063EA71E040E051E0D7
-:1021F0000E94C0288DEC94E00E94CA2112C082E0A7
-:10220000C030D80771F48DEC94E063EA72E040E0EE
-:1022100051E00E94C0288DEC94E00E94CA21C0E0E9
-:10222000D0E08BB18E258BB942CF81E0C030D8078A
-:1022300091F0CF3FD10509F02CF48DEC94E063EAE6
-:1022400071E006C0C050D1408DEC94E063EA72E0CA
-:10225000AE010E94C0288DEC94E00E94CA218DEC52
-:1022600094E00E94122280917D0160E00E9422335E
-:1022700080E29AE00E94C10A81E0DF91CF911F9134
-:102280000F91FF90EF9008950F931F93DF93CF93DB
-:10229000CDB7DEB72D970FB6F894DEBF0FBECDBF1A
-:1022A000DE011196ECE3F1E08DE001900D9281509A
-:1022B000E1F78DEC94E063EA74E08E010F5F1F4F4D
-:1022C000A80122E10E94F92A882329F488E29AE0F1
-:1022D0000E94C10A07C08DEC94E00E941222C8013E
-:1022E0000E9419102D960FB6F894DEBF0FBECDBF19
-:1022F000CF91DF911F910F910895CF92DF92EF92CE
-:10230000FF920F931F93DF93CF93CDB7DEB72D9737
-:102310000FB6F894DEBF0FBECDBF82EA91E063E056
-:1023200070E00E94D108182F82EA91E064E070E02A
-:102330000E94D108282F1F3F99F48F3F89F482EA29
-:1023400091E063E070E040E00E94D80882EA91E00A
-:1023500064E070E040E00E94D808EE24FF240EC044
-:10236000922F80E0E12EFF24E82AF92A8EEFE8166A
-:102370008FEFF80619F481E59AE01AC0DE01119694
-:10238000E5E5F1E08DE001900D928150E1F78E01DD
-:102390000F5F1F4F39E4C32E31E0D32E0894E11CA8
-:1023A000F11C9EEFE9169FEFF90628F08FE39AE003
-:1023B0000E94C10A42C000D000D000D0EDB7FEB7E5
-:1023C0003196ADB7BEB712961C930E931197D38278
-:1023D000C282F582E4820E9430068DB79EB70696CF
-:1023E0000FB6F8949EBF0FBE8DBF8DEC94E063EAEC
-:1023F00074E0A80122E30E94F92A882379F28DEC87
-:1024000094E00E94122282EA91E063E070E04E2D97
-:102410000E94D80882EA91E064E070E00E94D1084E
-:102420008F1539F082EA91E064E070E04F2D0E9450
-:10243000D808CE0101960E9419102D960FB6F89477
-:10244000DEBF0FBECDBFCF91DF911F910F91FF90E7
-:10245000EF90DF90CF900895FF920F931F93DF933B
-:10246000CF9300D000D00F92CDB7DEB782EA91E0D3
-:1024700062E070E00E94D108F82E8E010F5F1F4FBE
-:1024800086EE92E00E94D30A82ED92E00E94C10A99
-:10249000FF2019F489EC92E00BC081E0F81619F4E2
-:1024A0008DEB92E005C082E0F81621F485EB92E016
-:1024B0000E94C10A81E297E00E94A6368FE892E06E
-:1024C0000E94C10A81E297E06091F9044AE050E07D
-:1024D0000E944A368BE892E00E94C10A81E297E0AE
-:1024E0006091FA044AE050E00E94E13680E892E010
-:1024F0000E94D30A8CE692E00E94D30A85E592E01E
-:102500000E94D30A83E492E00E94D30A8AE292E016
-:102510000E94D30A82E192E00E94D30A83EF91E005
-:102520000E94D30A8BEE91E00E94D30A81E297E0E9
-:102530006EE340E050E00E949236C80165E00E94E0
-:102540000F0B882309F49CCFC80169EE71E00E944B
-:10255000D305892B51F488ED91E00E94D30A82EAD9
-:1025600091E062E070E040E010C0C80166ED71E00B
-:102570000E94D305892B71F482EC91E00E94D30A6A
-:1025800082EA91E062E070E041E00E94D8080E9497
-:10259000AD0B8AC0C80160EC71E00E94D305892BA5
-:1025A00051F481EB91E00E94D30A82EA91E062E06B
-:1025B00070E042E0EACFC8016FEA71E00E94D30503
-:1025C000892B99F481E991E00E94D30A82EA91E093
-:1025D00063E070E040E00E94D80882EA91E064E0A5
-:1025E00070E040E00E94D8085FC0C8016FE871E069
-:1025F0000E94D305892BE9F480E791E00E94C10A8B
-:102600008091C00087FFFCCF4091C6004093F90441
-:1026100082EA91E065E070E00E94D8080E94AD0B6C
-:1026200087E591E00E94C10A81E297E06091F90498
-:102630002AC0C80165E571E00E94D305892B41F5E8
-:102640004AE00BC08AE191E00E94C10A8091C0007B
-:1026500087FFFCCF4091C6004053842F81508930C2
-:1026600088F74093FA0482EA91E066E070E00E9405
-:10267000D8080E94AD0B83EF90E00E94C10A81E26E
-:1026800097E06091FA044AE050E00E94E1360CC005
-:10269000C80161EF70E00E94D305892B09F0F0CEEC
-:1026A00089EE90E00E94D30A0F900F900F900F9048
-:1026B0000F90CF91DF911F910F91FF900895FF929E
-:1026C0000F931F93DF93CF9300D000D00F92CDB71D
-:1026D000DEB782EA91E061E070E00E94D108F82E56
-:1026E0008E010F5F1F4F8DE394E00E94D30A83E3B6
-:1026F00094E00E94C10A84E0F81619F480E394E0A3
-:1027000022C0FF2019F48DE294E01DC081E0F8168C
-:1027100019F48AE294E017C085E0F81619F486E20D
-:1027200094E011C086E0F81619F482E294E00BC040
-:1027300082E0F81619F48EE194E005C083E0F81603
-:1027400021F489E194E00E94C10A82E194E00E94B0
-:10275000D30A87E094E00E94D30A8BEF93E00E94B3
-:10276000D30A8FEE93E00E94D30A83EE93E00E9497
-:10277000D30A86ED93E00E94D30A89EC93E00E948D
-:10278000D30A8CEB93E00E94D30A8EEA93E00E9476
-:10279000D30A86EA93E00E94D30A81E297E06EE3CF
-:1027A00040E050E00E949236C80165E00E940F0BA5
-:1027B000882309F498CFC80164EA73E00E94D30526
-:1027C000892B51F480E993E00E94D30A82EA91E0D8
-:1027D00061E070E040E065C0C8016EE873E00E940F
-:1027E000D305892B51F48AE793E00E94D30A82EA49
-:1027F00091E061E070E044E054C0C80168E773E034
-:102800000E94D305892B51F484E693E00E94D30AF9
-:1028100082EA91E061E070E041E043C0C80162E615
-:1028200073E00E94D305892B51F48DE493E00E945C
-:10283000D30A82EA91E061E070E045E032C0C8016D
-:102840006BE473E00E94D305892B51F486E393E097
-:102850000E94D30A82EA91E061E070E046E021C084
-:10286000C80164E373E00E94D305892B51F48FE122
-:1028700093E00E94D30A82EA91E061E070E042E0D6
-:1028800010C0C8016DE173E00E94D305892B89F463
-:1028900087E093E00E94D30A82EA91E061E070E071
-:1028A00043E00E94D8080E94AD0B85E00E942C0AEC
-:1028B0000CC0C80165E073E00E94D305892B09F0C4
-:1028C00012CF8DEF92E00E94D30A0F900F900F90DD
-:1028D0000F900F90CF91DF911F910F91FF9008956E
-:1028E0008F929F92AF92BF92CF92DF92EF92FF9220
-:1028F0000F931F93DF93CF93CDB7DEB7AA970FB691
-:10290000F894DEBF0FBECDBF6C018AE891E09A83D8
-:1029100089831D82C6016DE17AE042E050E00E94A9
-:10292000DC05892B09F0BAC083EA94E00E941222E8
-:1029300083EA94E065E874E00E94B425882321F4DA
-:1029400084E19AE00E94830BE5ECF3E090E0808163
-:10295000882329F09F5F3C969F30C9F79FEFE92EAF
-:10296000EA94E7FE03C0FF24F3948EC0FF24F3949F
-:1029700000E010E05E010894A11CB11CEDE18E2E78
-:10298000912C8C0E9D1E70C0A801440F551F400F46
-:10299000511F440F551F440F551F4B535C4FC5012A
-:1029A00063EA74E021E00E94F92AF82E0F5F1F4FBE
-:1029B000882309F45CC08B818093A5048C8180936B
-:1029C000A6048D818093A7048E819F81A885B985F7
-:1029D0008093A8049093A904A093AA04B093AB0495
-:1029E0008A859B85AC85BD858093AC049093AD04AE
-:1029F000A093AE04B093AF048E859F85A889B98952
-:102A00008093B0049093B104A093B204B093B30444
-:102A10008A898093B4048B899C89AD89BE8980930F
-:102A2000B5049093B604A093B704B093B8048F890B
-:102A3000988DA98DBA8D8093B9049093BA04A09310
-:102A4000BB04B093BC048B8D9C8D9093BE0480938B
-:102A5000BD04AFEBB4E0F4018EE001900D92815023
-:102A6000E1F7C5010E9412220E150CF48DCF8CE007
-:102A70002E2D2802C00111248B539C4FFC018BE0AA
-:102A8000DF011D928A95E9F78091810181FF8CC059
-:102A9000FF2009F089C084EF99E011C0CE010196B2
-:102AA00063EA74E0A60121E00E94F92AF82E882347
-:102AB00071F48091810181FF77C08EED99E00E94D1
-:102AC000C10A81E297E0B6010E94FB366DC08B819E
-:102AD0008093A5048C818093A6048D818093A704A4
-:102AE0008E819F81A885B9858093A8049093A904BD
-:102AF000A093AA04B093AB048A859B85AC85BD8561
-:102B00008093AC049093AD04A093AE04B093AF0453
-:102B10008E859F85A889B9898093B0049093B1046C
-:102B2000A093B204B093B3048A898093B4048B89D0
-:102B30009C89AD89BE898093B5049093B604A09317
-:102B4000B704B093B8048F89988DA98DBA8D8093FE
-:102B5000B9049093BA04A093BB04B093BC048B8DCA
-:102B60009C8D9093BE048093BD04AFEBB4E0FE0156
-:102B70007D968EE001900D928150E1F7E5ECF3E057
-:102B800090E08081882329F09F5F3C969F30C9F7B1
-:102B90000BC08CE09802C00111248B539C4FB601EE
-:102BA0004BE050E00E9419068F2DAA960FB6F894BC
-:102BB000DEBF0FBECDBFCF91DF911F910F91FF9070
-:102BC000EF90DF90CF90BF90AF909F908F9008953F
-:102BD0002F923F924F925F926F927F928F929F922D
-:102BE000AF92BF92CF92DF92EF92FF920F931F931B
-:102BF000DF93CF93CDB7DEB7CB56D0400FB6F89466
-:102C0000DEBF0FBECDBFF8948091C1008F77809357
-:102C1000C10011E032E2432E512C4C0E5D1ECE015C
-:102C20000A96AC969FAF8EAFAC9720E4222E312C43
-:102C30002C0E3D1E01C010E08091810183FF07C072
-:102C400081E297E06AE140E050E00E949236112371
-:102C500039F481E297E061E240E050E00E94923670
-:102C600081E297E06EE340E050E00E949236C201BC
-:102C70006EE10E940F0B11E08823F1F280E00E94C8
-:102C8000E2097C0169ED79E00E94D305892B29F5E1
-:102C90008091810181FF04C080EC99E00E94D30AF9
-:102CA00083EA94E00E94122283EA94E065E874E0EB
-:102CB0000E94B425882321F487EB99E00E94830BBE
-:102CC00084EBE5ECF3E011928A95E9F780918101BC
-:102CD00081FF3EC68FE999E039C6C7016DE979E009
-:102CE0000E94D305892B39F0C70168E979E00E9479
-:102CF000D305892B19F40E94DA0A9ECFC70163E934
-:102D000079E00E94D305892B19F40E945F1394CFB8
-:102D1000C7016FE879E00E94D305892B19F40E945E
-:102D20002C128ACFC7016CE879E00E94D305892B69
-:102D3000E9F48091810181FF0CC08EE799E00E9447
-:102D4000C10A81E297E060919C044AE050E00E9451
-:102D5000E13681E00E94E2098C0183EA94E062E0BE
-:102D600040E02EE039E00E946C28F2C5C7016BE715
-:102D700079E042E050E00E94DC05892B09F581E012
-:102D80000E94E2098C01009709F455CF8AE891E08E
-:102D9000F1019183808325961FAE2597C10163EAD7
-:102DA00074E0A8010E949F2C882309F0D1C580916E
-:102DB000810181FF40CF80E699E00E94D30A12C4CE
-:102DC000C7016DE579E042E050E00E94DC05892B07
-:102DD00009F06DC081E00E94E2098C01009709F4BE
-:102DE0002ACFEBEFF4E020E080819181892B19F06C
-:102DF000828181112F5F339695E0EA30F907A1F7C0
-:102E0000233009F075C5C80169E579E043E050E079
-:102E10000E94DC05892B09F06BC582E00E94E20963
-:102E2000AC018DEC94E063EA74E021E00E94F92AA1
-:102E3000882309F400CF8DEC94E00E94B32609C0EA
-:102E40008091D104823008F45FC58DEC94E00E943B
-:102E50006424182F68C28DEC94E00E94E922F9CF17
-:102E600081E00E94E209AC0183EA94E06EE079E03F
-:102E700020E739E00E942B2C7B018C01809181019D
-:102E800081FF0EC081E297E0B801A7012AE030E09F
-:102E90000E942A3681E297E062E671E00E94FB36EA
-:102EA000E114F1040105110509F052C5C4CEC701B2
-:102EB00066E579E042E050E00E94DC05892B49F4A8
-:102EC00081E00E94E209009709F4B5CE0E947014D7
-:102ED0009EC3C70161E579E044E050E00E94DC0553
-:102EE000892B09F070C181E00E94E2098C010097F2
-:102EF00009F4A1CE8DEC94E063EA74E0A80121E02E
-:102F00000E94F92A882339F48091810181FF93CEB0
-:102F10008CE399E065C382E00E94E2097C0100979E
-:102F200009F44CC0FC0101900020E9F73197E81B3F
-:102F300020E030E04E2F50E00CC0F701E20FF31F0D
-:102F40008081992787FD9095C0970A97B8F52F5FE4
-:102F50003F4F241735078CF3870140E050E060E0D5
-:102F600070E019C0CB01BA012AE030E040E050E047
-:102F70000E943D37AB01BC018D2D992787FD9095AF
-:102F8000C097AA2797FDA095BA2F480F591F6A1F0F
-:102F90007B1F0F5F1F4FF801D0808D2D80538A302B
-:102FA00008F38DEC94E00E940421882339F4809189
-:102FB000810181FF84C18AE299E07AC183E00E94A5
-:102FC000E209AC01009709F43FC0FC010190002028
-:102FD000E9F73197E81B20E030E06E2F70E00CC07D
-:102FE000FA01E20FF31F8081992787FD9095C09722
-:102FF0000A9750F52F5F3F4F261737078CF38A014A
-:1030000066247724430119C0C401B3012AE030E0EB
-:1030100040E050E00E943D373B014C018F2D992745
-:1030200087FD9095C097AA2797FDA095BA2F680EA7
-:10303000791E8A1E9B1E0F5F1F4FF801F0808F2D97
-:1030400080538A3008F304C066246A94762C4301C6
-:1030500084E00E94E209AC01009709F440C0FC0141
-:1030600001900020E9F73197E81B20E030E06E2F57
-:1030700070E00CC0FA01E20FF31F8081992787FDF1
-:103080009095C0970A9758F52F5F3F4F261737073F
-:103090008CF36A01EE24FF2487011AC0C801B7012E
-:1030A0002AE030E040E050E00E943D377B018C0197
-:1030B0008B2D992787FD9095C097AA2797FDA095FE
-:1030C000BA2FE80EF91E0A1F1B1F0894C11CD11C41
-:1030D000F601B0808B2D80538A3000F305C091E05B
-:1030E000E92EF12C012D112D81E0A82EB12CC12C3F
-:1030F000D12C4AC06A147B048C049D0408F456C089
-:10310000262FF1E0EF16F10401051105D9F4862F01
-:1031100080528F3518F481E297E007C06A3011F0D1
-:103120006D3041F481E297E0622F40E050E00E9470
-:103130004A3625C081E297E06EE240E050E00E940E
-:1031400092361DC082E0E816F1040105110569F40C
-:1031500081E297E040E150E00E944A3681E297E048
-:1031600063E771E00E9488350AC093E0E916F10434
-:103170000105110521F481E297E00E94FD340894D5
-:10318000A11CB11CC11CD11C8DEC94E0BE016F5F71
-:103190007F4F41E050E00E940523019739F4898177
-:1031A000682F70E06115710509F0A4CF8DEC94E0F3
-:1031B0000E9412228091810183FDCAC381E297E0BF
-:1031C0000E94A636C5C3C70164E279E045E050E03D
-:1031D0000E94DC05892B09F0ABC081E00E94E20966
-:1031E0008C01009709F427CD8DEC94E063EA74E03C
-:1031F000A80122E00E94F92A882339F480918101F4
-:1032000081FF19CD8FE099E0EBC182E00E94E209D5
-:103210007C01009709F458C0FC0101900020E9F7F7
-:103220003197E81B20E030E04E2F50E00DC0F70151
-:10323000E20FF31F8081992787FD9095C0970A9729
-:1032400008F042C02F5F3F4F2417350784F38701F2
-:1032500040E050E060E070E019C0CB01BA012AE024
-:1032600030E040E050E00E943D37AB01BC018D2DC5
-:10327000992787FD9095C097AA2797FDA095BA2F0B
-:10328000480F591F6A1F7B1F0F5F1F4FF801D08027
-:103290008D2D80538A3008F38DEC94E00E94042138
-:1032A000882391F48091810181FF09C08DEF98E01E
-:1032B0000E94C10A81E297E0B7010E94FB368DECC3
-:1032C00094E00E941222B7CC8091810183FF07C055
-:1032D00081E297E06AE140E050E00E94923681E2AC
-:1032E00097E065E771E00E948835C2016EE10E94B7
-:1032F0000F0B182F882311F411E015C08DEC94E00A
-:10330000B201412F50E00E94C028212F30E08217E7
-:103310009307D1F28091810181FF04C085EE98E08E
-:103320000E94C10A10E08DEC94E00E94122284CC2D
-:10333000C70160EE78E044E050E00E94DC05892B94
-:10334000B1F581E00E94E209AC01009709F473CC69
-:103350008DEC94E063EA74E021E00E94F92A88236E
-:10336000A1F04091DF045091E0046091E10470917C
-:10337000E20481E297E02AE030E00E942A368DECF8
-:1033800094E00E94122211E009C08091810181FF26
-:1033900004C08DED98E00E94C10A10E08091810187
-:1033A00083FD4ACC81E297E00E94A63645CCC70156
-:1033B00068ED78E00E94D305892B09F0CDC08BEC35
-:1033C00098E00E94C10A80918404823039F08330F1
-:1033D00041F0813049F487EC98E008C083EC98E034
-:1033E00005C08EEB98E002C086EB98E00E94D30AFD
-:1033F00089E794E06AE0AE014E5F5F4F0E94461E8F
-:10340000882329F487EA98E00E94C10A14CC85E950
-:1034100098E00E94C10A81E297E06A8140E150E0B1
-:103420000E94E1368CE898E00E94C10A81E297E0B0
-:103430006B8140E050E00E94923681E297E06C811F
-:1034400040E050E00E94213782E898E00E94C10AE3
-:103450008E010B5F1F4F81E297E0F80161918F01B0
-:1034600040E050E00E949236AC968EAD9FADAC9796
-:103470000817190781F786E798E00E94C10A6A8554
-:1034800062956F7081E297E070E04AE050E00E9440
-:10349000393681E297E06EE240E050E00E949236D9
-:1034A0006A856F7081E297E070E04AE050E00E9428
-:1034B000C83686E698E00E94C10A4B855C856D851A
-:1034C0007E8581E297E02AE030E00E94BD3681E50A
-:1034D00098E00E94C10A68896F7081E297E070E00D
-:1034E0004AE050E00E94393681E297E06FE240E026
-:1034F00050E00E949236688962956F7070E0605368
-:10350000784F8F858F7090E014E0880F991F1A957F
-:10351000E1F7680F791F81E297E04AE050E00E94EE
-:10352000063789E794E00E94871E7B018C016115B4
-:1035300071058105910559F089E794E069E0AE01D4
-:103540004E5E5F4F0E94461E882309F0EDC182E463
-:1035500098E00E94D30A6FCBC7016DE278E00E9429
-:10356000D305892B49F48DEC94E00E94CA2183EAAB
-:1035700094E00E94CA21ECC1C70167E278E047E00D
-:1035800050E00E94DC05892B31F4E091A503F09115
-:10359000A603099550CBC70163E278E043E050E011
-:1035A0000E94DC05892B11F581E00E94E2098C0163
-:1035B000009709F440CB8DEC94E063EA74E0A80135
-:1035C00022E30E94F92A882329F08DEC94E00E94DE
-:1035D0001222BEC18091810181FF2DCB8DE098E048
-:1035E0000E94C10A81E297E0B8017FC1C70166E08D
-:1035F00078E046E050E00E94DC05892B51F481E040
-:103600000E94E209009709F416CB0E941910182FA6
-:1036100013CBC70162E078E043E050E00E94DC0594
-:10362000892BF1F581E297E067E771E00E94883528
-:10363000E5ECF3E0CC248081882339F0C3943C96F8
-:103640009FE0C916C1F7CC24CA94DD24EC2CFF24DA
-:103650000894E108F1081BC00D2D10E0B801660FB9
-:10366000771F600F711F660F771F660F771F6B53F1
-:103670007C4F81E297E00E9488350E151F0534F4D7
-:1036800081E297E06AE771E00E948835D394DC1408
-:1036900018F381E297E06CE771E00E94FB3658C1B5
-:1036A000C7016DEF77E044E050E00E94DC05892B14
-:1036B00019F581E00E94E2098C01009709F4BBCA68
-:1036C0006AEF77E042E050E00E94DC05982F882303
-:1036D00021F480918101816064C0C80166EF77E0C8
-:1036E00043E050E00E94DC05982F882309F05BC07E
-:1036F000809181018E7F55C0C7016EEE77E047E073
-:1037000050E00E94DC05892B11F581E00E94E2095E
-:103710008C01009709F48FCA6BEE77E042E050E02D
-:103720000E94DC05982F882321F48091810182601A
-:1037300038C0C80167EE77E043E050E00E94DC0546
-:10374000982F882381F5809181018D7F2AC0C70140
-:1037500063EE77E043E050E00E94DC05892B41F501
-:1037600081E00E94E2098C01009709F464CA60EECE
-:1037700077E042E050E00E94DC05982F882321F496
-:103780008091810188600DC0C8016CED77E043E055
-:1037900050E00E94DC05982F882329F48091810154
-:1037A000877F8093810110E0992309F045CAD0C03A
-:1037B000C70164ED77E047E050E00E94DC05892B0B
-:1037C000B1F481E00E94E2098DEC97E00E94C10A09
-:1037D00083EA94E061E020E030E040E050E08201E4
-:1037E0000E949D24AB01BC0181E297E06EC0C7013D
-:1037F00066EC77E046E050E00E94DC05892B09F09A
-:1038000069C081E00E94E209AC01009709F413CA83
-:10381000FC0101900020E9F73197E81B20E030E03F
-:103820006E2F70E00DC0FA01E20FF31F808199271F
-:1038300087FD9095C0970A9708F0FDC92F5F3F4F0D
-:103840002617370784F38A0120E030E040E050E09B
-:1038500019C0CA01B9012AE030E040E050E00E94FE
-:103860003D379B01AC018F2D992787FD9095C0971F
-:10387000AA2797FDA095BA2F280F391F4A1F5B1F53
-:103880000F5F1F4FF801F0808F2D80538A3008F3AF
-:103890008EE1F20111928A95E9F783EA94E062E001
-:1038A00082010E949D247B018C0181E297E0B2019C
-:1038B0000E94883581E297E06CE740E050E00E948A
-:1038C000923681E297E0B801A7012AE030E00E9439
-:1038D000BD363EC08091810181FFADC984EB97E088
-:1038E0000E94C10A81E297E0B7010E94FB36A3C99A
-:1038F0008DEC94E063EA74E0A80121E00E94F92ACB
-:10390000882309F09DCAACCA8DEC94E00E94122273
-:103910008DEC94E063EA74E0A80122E00E94F92AA9
-:10392000882309F4FFCC97CA86E398E00E94C10A75
-:1039300016950795F794E79481E297E0B801A701FF
-:103940002AE030E00E942A3682E398E00E94D30AFF
-:1039500011E072C98091F804882311F40E947D114E
-:103960008091F804813011F40E9444110E94E815FE
-:10397000FFCFFC01673020F086E1858380E0089569
-:10398000262F30E060FD02C0663019F48DB58E7FC1
-:1039900002C08DB581608DBD8CB58C7F8CBD4CB562
-:1039A00022FD02C090E001C092E036952795822F5B
-:1039B0008170842B892B8CBD81E00895FF920F9339
-:1039C0001F93CF93DF938B010E945A32EB01FF24A8
-:1039D000FA94FEBC0DB407FEFDCF8EB58F3F11F4F7
-:1039E00081E008C00E945A326C1B7D0B6017710782
-:1039F00080F380E0DF91CF911F910F91FF900895A8
-:103A0000FC01848160E00E9422330895FC018481DE
-:103A100061E00E9422330895DC016EBDFA0120E0CE
-:103A200030E00DB407FEFDCF80818EBD0DB407FEE2
-:103A3000FDCF81818EBD2E5F3F4F329682E02030D8
-:103A4000380779F70DB407FEFDCF8FEF8EBD0DB4AB
-:103A500007FEFDCF8FEF8EBD0DB407FEFDCF8FEFBC
-:103A60008EBD0DB407FEFDCF8EB51A968C931A97B6
-:103A70008F71853011F481E0089581E115968C9362
-:103A80001597CD010E94061D80E00895FF920F93C7
-:103A90001F93CF93DF93EC010E945A328B01FF24D6
-:103AA000FA9409C00E945A32601B710B6D5271402A
-:103AB00010F08FE00DC0FEBC0DB407FEFDCF8EB53B
-:103AC0008A878F3F79F38E3F11F481E006C08DE045
-:103AD0008D83CE010E94061D80E0DF91CF911F9162
-:103AE0000F91FF900895CF93DF93EC018E8188238F
-:103AF000D1F08FEF8EBD2F8138854FEF04C00DB40C
-:103B000007FEFDCF4EBD2F5F3F4FC901019781508A
-:103B10009240A8F338872F830DB407FEFDCFCE0166
-:103B20000E94061D1E82DF91CF910895DF92EF92D1
-:103B3000FF920F931F93CF93DF93EC01D62E790161
-:103B40008A010E94731DCE010E94001DCE016CE20D
-:103B500071E00E94DE1C8D2D80648EBD0DB407FEC9
-:103B6000FDCF28E130E0D801C701022E04C0B69590
-:103B7000A795979587950A94D2F78EBD0DB407FE49
-:103B8000FDCF285030408FEF283F380761F7DD2008
-:103B900011F485E906C088E0D81611F487E801C061
-:103BA0008FEF8EBD0DB407FEFDCF90E02FEF2EBD41
-:103BB0000DB407FEFDCF8EB587FF02C09150B9F757
-:103BC0008A87DF91CF911F910F91FF90EF90DF9047
-:103BD0000895CF92DF92EF92FF920F931F93CF93AE
-:103BE000DF93EC017A018B016901411551056105F3
-:103BF000710511F482E137C08B85833039F029E0FB
-:103C0000EE0CFF1C001F111F2A95D1F7CE0168E1B1
-:103C1000A80197010E94961D882311F084E023C01B
-:103C2000CE016EEFA6010E940C1D8823E9F0CE01A3
-:103C300068E572E00E94DE1C882311F485E113C060
-:103C4000CE016DE020E030E040E050E00E94961DA3
-:103C5000882341F48FEF8EBD0DB407FEFDCF8EB5E6
-:103C6000882379F084E18D83CE010E94061D80E0D7
-:103C7000DF91CF911F910F91FF90EF90DF90CF9048
-:103C80000895CE010E94061D81E0F2CF0F931F938D
-:103C9000CF93DF93EC01142F052F20E030E040E0BC
-:103CA00050E00E94961D882319F08EE08D8326C077
-:103CB000CE010E94461D882309F1812F902FFC011F
-:103CC0009FEF9F01205F3F4F9EBD0DB407FEFDCFCC
-:103CD0008EB58193E217F307B9F78FEF8EBD0DB460
-:103CE00007FEFDCF8EB58FEF8EBD0DB407FEFDCF65
-:103CF0008EB5CE010E94061D81E004C0CE010E9457
-:103D0000061D80E0DF91CF911F910F910895EF92F2
-:103D1000FF920F931F93DF93CF93CDB7DEB76097DA
-:103D20000FB6F894DEBF0FBECDBF8C0169E0AE01C7
-:103D30004F5F5F4F0E94461E882309F464C089814B
-:103D4000829586958695837089F58F818370382F4B
-:103D5000330F330F20E0888590E0880F991F880F7C
-:103D6000991F282B392B8985829586958695837096
-:103D700090E0282B392B2F5F3F4F790100E010E0B6
-:103D80008E818F7090E007972A852370220F3B85E4
-:103D9000331F3327331F232B820F911D04C0EE0CDA
-:103DA000FF1C001F111F8A95D2F730C0813041F5EA
-:103DB00088858695869590E0A0E0B0E08C01FF2490
-:103DC000EE248A8590E0A0E0B0E0E82AF92A0A2BE8
-:103DD0001B2B998580E0AA2797FDA095BA2FE82A8A
-:103DE000F92A0A2B1B2B0894E11CF11C011D111D43
-:103DF0003AE0EE0CFF1C001F111F3A95D1F706C0E8
-:103E000089E0F8018583EE24FF248701B701C8010A
-:103E100060960FB6F894DEBF0FBECDBFCF91DF9195
-:103E20001F910F91FF90EF9008958F929F92AF9204
-:103E3000BF92CF92DF92EF92FF920F931F93CF9397
-:103E4000DF93EC015A016B0149010115110509F4D9
-:103E50007BC0C801820F931F8150924008F06FC051
-:103E60008E81882371F088819981AA81BB8148174E
-:103E700059076A077B0729F48F8198858816990668
-:103E800018F5A882B982CA82DB828B85833039F02B
-:103E900069E0AA0CBB1CCC1CDD1C6A95D1F7CE01D5
-:103EA00061E1A60195010E94961D882319F083E027
-:103EB0008D8345C0CE010E94461D882309F43FC072
-:103EC00018861F8281E08E838FEF8EBD8F8198854B
-:103ED0002FEF05C00DB407FEFDCF2EBD019688154E
-:103EE0009905C0F398878F83D801119720E030E0BF
-:103EF0009FEF0BC00DB407FEFDCF8EB5F701E20FAB
-:103F0000F31F80839EBD2F5F3F4F2A173B0790F31F
-:103F10000DB407FEFDCF8EB5AE0DBF1D8C932F8166
-:103F20003885200F311F38872F838985882319F022
-:103F30002050324048F0CE010E94731D05C0CE01D2
-:103F40000E94061D80E001C081E0DF91CF911F91AA
-:103F50000F91FF90EF90DF90CF90BF90AF909F9028
-:103F60008F900895EF92FF920F931F93790120E0B5
-:103F700030E000E012E00E94151F1F910F91FF90AA
-:103F8000EF900895BF92CF92DF92EF92FF920F933E
-:103F90001F93CF93DF93EC01B62E1B8619861E82EA
-:103FA0001D824C830E945A326B018C8161E00E9419
-:103FB000FC32CE010E94061D8CE060E00E94FC32C3
-:103FC0008BE061E00E94FC328DE061E00E94FC32F7
-:103FD0008AE061E00E94FC3283E58CBD8DB58E7F66
-:103FE0008DBD80E09FEF9EBD0DB407FEFDCF8F5FBE
-:103FF0008A30C9F7CE010E94001D09C00E945A32C2
-:104000006C197D09615D774010F081E05EC0CE01E2
-:1040100060E020E030E040E050E00E94961D182F64
-:104020008A87813059F7CE0168E02AEA31E040E022
-:1040300050E00E94961D82FF02C01B8711C080E0E5
-:104040002FEF2EBD0DB407FEFDCF9EB58F5F8430E0
-:10405000C1F79A879A3A11F082E037C082E08B87E5
-:104060008B85823021F0EE24FF2487010FC0E12CE4
-:10407000F12C012D70E4172F09C00E945A326C19DF
-:104080007D09615D774010F088E01FC0CE0167E3D5
-:1040900020E030E040E050E00E94961DCE0169E251
-:1040A000A80197010E94961D8A87882331F78B8586
-:1040B000823031F5CE016AE320E030E040E050E0AC
-:1040C0000E94961D882339F086E08D83CE010E94E0
-:1040D000061D80E01CC08FEF8EBD0DB407FEFDCF26
-:1040E0008EB5807C803C11F483E08B8780E09FEF6D
-:1040F0009EBD0DB407FEFDCF2EB58F5F8330C1F797
-:10410000CE010E94061DCE016B2D0E94B91CDF91CD
-:10411000CF911F910F91FF90EF90DF90CF90BF90C4
-:10412000089520E0FC018385887109F421E0822F45
-:10413000089520E0FC0183858871803109F421E035
-:10414000822F0895CF93DF93EB01DC0190E020E014
-:104150003EE28C91803269F0283029F4FE01E90FAB
-:10416000F11D30839F5FFE01E90FF11D8C9180836B
-:104170009F5F2F5F11962B3061F7C90FD11D1882F9
-:10418000DF91CF910895CF93DF93EC01DB0180E0C5
-:1041900090E020E2FD01E80FF91F208301968B30AB
-:1041A0009105C1F757E040E021C02E3219F087EAAF
-:1041B0009AE007C05A3019F15AE048E017C03217A8
-:1041C000F1F0FC01019634913323C9F75417B8F08C
-:1041D0002132A8F02F3798F4822F81568A3108F4C3
-:1041E0002052FD01E40FF11D20834F5F299122230E
-:1041F000E1F690E08C91803219F091E001C090E0FE
-:10420000892FDF91CF9108956F927F928F929F9225
-:10421000AF92BF92CF92DF92EF92FF920F931F93D4
-:10422000CF93DF93EC017A018B012C81222309F4D7
-:1042300080C08A899B89AC89BD8984179507A607A8
-:10424000B70708F476C085C0E114F1040105110533
-:1042500049F41D821E821F82188619861A861B86C3
-:104260001C8665C029853A854B855C85EA8DFB8D6A
-:10427000858590E0099621503040404050403901FA
-:104280004A01082E04C096948794779467940A9400
-:10429000D2F72F5F3F4F4F4F5F4F0894E108F1086F
-:1042A000010911095701680104C0D694C794B79455
-:1042B000A7948A95D2F70894E11CF11C011D111DE9
-:1042C000A614B704C804D90428F021153105410506
-:1042D000510549F48E899F89A88DB98D8D839E8360
-:1042E000AF83B88716C0A618B708C808D90811C088
-:1042F0004D815E816F8178858A8D9B8D94010E94AE
-:10430000C82F0894A108B108C108D108882331F446
-:1043100010C085E0882E912C8C0E9D1EA114B10436
-:10432000C104D10429F7E986FA860B871C8781E04E
-:1043300001C080E0DF91CF911F910F91FF90EF902E
-:10434000DF90CF90BF90AF909F908F907F906F90B5
-:104350000895223009F078CFE6CFCF93DF93EC01B8
-:10436000462F6D857E858F8598890E94AC2D882388
-:1043700019F420E030E00AC08989282F30E095E068
-:10438000220F331F9A95E1F7245F3A4FC901DF915D
-:10439000CF9108950F931F93CF93DF938C01FC016E
-:1043A00084818823C9F1838187FF33C0C80161E01C
-:1043B0000E94AD21EC01009779F1F80184818230EF
-:1043C00040F482899389A489B5898C8F9D8FAE8FA3
-:1043D000BF8FF80186899789A08DB18D9B8F8A8FB9
-:1043E000CD01AA27BB279D8B8C8BE0910A05F0910C
-:1043F0000B05309751F0BE016A5E7F4FCE014896A3
-:104400000995888D998D9B8B8A8BF80183818F7795
-:1044100083830E944D2D01C080E0DF91CF911F91D9
-:104420000F910895CF93DF93EC010E94CA21882356
-:1044300011F01C8281E0DF91CF9108956F927F92FD
-:104440008F929F92AF92BF92CF92DF92EF92FF92A4
-:104450000F931F93DF93CF9300D000D0CDB7DEB77B
-:104460007C015A016B01DC0114968C911497813008
-:1044700009F08FC013968C9181FF8BC09EC000976E
-:10448000A105B10511F481E085C0F7016184728452
-:1044900083849484C701B601A5010E940421882366
-:1044A00009F477C0D7015A968D919C915B97A1141E
-:1044B000B104C104D10489F456964D915D916D917A
-:1044C0007C9159970E943B30882309F462C0F70120
-:1044D000168A178A108E118E3DC0D70115964D9100
-:1044E0005D916D917C9118979E012F5F3F4F0E94C7
-:1044F000C82F882309F44DC0D7015A96ED91FC913D
-:104500005B9749815A816B817C818789803129F051
-:1045100088EF9FEFAFEFBFE004C088EF9FEFA0E010
-:10452000B0E0481759076A077B07A0F4CF010E9443
-:104530003B30882371F1F701458156816781708591
-:10454000828D938D0FEF1FEF2FEF3FE00E942C2FF6
-:104550008823F9F0D7015296AD92BD92CD92DC92AC
-:10456000559713968C911397806813968C93C70177
-:104570000E94CA21882369F0B601A5016A147B0450
-:104580008C049D0410F4B401A301C7010E9404210E
-:1045900001C080E00F900F900F900F90CF91DF91AE
-:1045A0001F910F91FF90EF90DF90CF90BF90AF9051
-:1045B0009F908F907F906F900895F70182899389E3
-:1045C000A489B58984179507A607B70708F057CFC0
-:1045D000E0CFCF93DF93EC0140E050E060E070E08B
-:1045E0000E941E22882369F0CE0161E00E94AD2165
-:1045F000FC01009731F085EE80831C820E944D2DD6
-:1046000001C080E0DF91CF9108952F923F924F92A9
-:104610005F926F927F928F929F92AF92BF92CF9252
-:10462000DF92EF92FF920F931F93CF93DF93EC01F2
-:104630002A018C81882309F4C6C08B8180FFC3C006
-:10464000D8C025014E185F084B0175E0272E312C8C
-:104650002C0E3D1E3201B1C029853A854B855C8503
-:104660006FEFA62E61E0B62EA222B3228C817901D3
-:104670008A0199E016950795F794E7949A95D1F7F2
-:10468000EA8DFB8D823049F4428D538D648D758D9A
-:104690004E0D5F1D601F711F3FC0D480DA94DE2075
-:1046A000A114B104D9F4DD20C9F421153105410567
-:1046B000510549F48E899F89A88DB98D8D839E837C
-:1046C000AF83B8870BC04D815E816F817885CF0144
-:1046D00091010E94C82F882309F475C0EA8DFB8DD3
-:1046E0004D815E816F8178854250504060407040BE
-:1046F000058404C0440F551F661F771F0A94D2F724
-:1047000086859785A089B189480F591F6A1F7B1F2D
-:104710004D0D511D611D711D80E092E08A199B09AC
-:1047200063018615970508F46C018B8186FD06C030
-:1047300080E0C81682E0D80609F073C0809182013B
-:1047400090918301A0918401B09185014817590788
-:104750006A077B0709F465C080910C0790910D07EB
-:104760009501860174010E94151F882361F18C0C4C
-:104770009D1C12C09501245F3A4FA9014C0D5D1D8F
-:10478000D401F90102C081918D93E417F507D9F79F
-:10479000E21BF30B8E0E9F1E960140E050E08985D0
-:1047A0009A85AB85BC85820F931FA41FB51F89878F
-:1047B0009A87AB87BC876C187D086114710409F077
-:1047C0004BCFA20102C04FEF5FEFCA01DF91CF9143
-:1047D0001F910F91FF90EF90DF90CF90BF90AF901F
-:1047E0009F908F907F906F905F904F903F902F9011
-:1047F0000895AA88BB88CC88DD88E984FA840B8573
-:104800001C859A0140E050E0D601C5018E199F0930
-:10481000A00BB10B82179307A407B50708F411CFBB
-:1048200013CFCB01BA0140E00E94AC2D882309F0E0
-:10483000A1CFC9CFCF92DF92EF92FF920F931F9338
-:10484000DF93CF930F92CDB7DEB76C01FC0184816B
-:10485000823070F0E184F28403851485C601BE01C4
-:104860006F5F7F4F41E050E00E940523019769F0A0
-:1048700020E030E0C9010F90CF91DF911F910F919F
-:10488000FF90EF90DF90CF900895F601818592859B
-:10489000A385B4854F96A11DB11D81879287A387FB
-:1048A000B487F5E016950795F794E794FA95D1F754
-:1048B0008E2D8F70282F30E0E5E0220F331FEA9510
-:1048C000E1F7245F3A4FD6CFCF93DF93EC018C8191
-:1048D000843079F51D821E821F82188619861A86F9
-:1048E0001B861C8610C0CE010E941A24FC01009772
-:1048F00001F180818823A1F0853E29F08E3219F0E4
-:10490000838583FF16C029853A854B855C858A8916
-:104910009B89AC89BD89281739074A075B0718F3BB
-:1049200081E08C838B8182608B83CE010E94E9229F
-:1049300001C080E0DF91CF9108955F926F927F92E6
-:104940008F929F92AF92BF92CF92DF92EF92FF929F
-:104950000F931F93CF93DF936C01562E49015A0199
-:104960003801FC0115821682178210861186128684
-:1049700013861486EE24FF24870120C088818823B3
-:1049800019F1853ED9F08E32C9F08B858871B1F46A
-:10499000F2E05F1671F4E814F9040A051B0549F406
-:1049A000CE01B3010E94A220EC8CFD8C0E8D1F8DD8
-:1049B0000BC00894E11CF11C011D111DC6010E94D1
-:1049C0001A24EC010097D1F6B701C801DF91CF910D
-:1049D0001F910F91FF90EF90DF90CF90BF90AF901D
-:1049E0009F908F907F906F905F900895DF93CF930B
-:1049F00000D00F92CDB7DEB7282F6AE00E945C3757
-:104A0000805D8983822F0E945C37905D9A831B8230
-:104A100081E297E0BE016F5F7F4F0E9488350F9063
-:104A20000F900F90CF91DF910895EF92FF920F9327
-:104A30001F938C01812F8695869586950E94F6247A
-:104A4000B1E2EB2EB7E0FB2EC7016AE340E050E095
-:104A50000E949236C801A5E096958795AA95E1F740
-:104A60008F730E94F624C7016AE340E050E00E9481
-:104A700092360F711070802F880F0E94F6241F91BC
-:104A80000F91FF90EF900895EF92FF920F931F9375
-:104A90007C0101E217E0BC01672F7727669564541B
-:104AA000784FC8014AE050E00E943936C8016DE2F3
-:104AB00040E050E00E949236C70125E09695879528
-:104AC0002A95E1F78F700E94F624C8016DE240E05C
-:104AD00050E00E9492368E2D8F710E94F6241F9115
-:104AE0000F91FF90EF900895DF92EF92FF920F9356
-:104AF0001F93CF93DF937C01D62EEC0110E000E0F2
-:104B00008881803291F0083041F481E297E06EE2D2
-:104B100040E050E00E9492361F5F81E297E068819A
-:104B200040E050E00E944A361F5F0F5F21960B3035
-:104B300039F7F70183858871803161F481E297E06C
-:104B40006FE203C081E297E060E240E050E00E9443
-:104B500092361F5F1D15B0F3DF91CF911F910F911A
-:104B6000FF90EF90DF9008950F931F93CF93DF9303
-:104B7000EC018B018C81882309F041C0FB018789FE
-:104B80008031B1F482E08C831E8A1F8A188E198EC0
-:104B9000808D918DA0E0B0E045E0880F991FAA1F9D
-:104BA000BB1F4A95D1F78A8B9B8BAC8BBD8B15C0F5
-:104BB000803229F583E08C83FB01428D538D648D17
-:104BC000758D4E8B5F8B688F798F9E012E5E3F4F68
-:104BD000C8010E949430882391F01B8F0A8F81E0D6
-:104BE0008B831D821E821F82188619861A861B8659
-:104BF0001C861D861E861F86188A198A01C080E0C1
-:104C0000DF91CF911F910F9108951F93CF93DF9361
-:104C1000EC01142FE62FF0E075E0EE0FFF1F7A9500
-:104C2000E1F7E45FFA4F8385817121F0842F82746C
-:104C300009F054C0698B8091820190918301A09109
-:104C40008401B09185018D879E87AF87B88B848959
-:104C50009589A0E0B0E0BC0155274427828D938D53
-:104C6000A0E0B0E0482B592B6A2B7B2B4E8B5F8B3F
-:104C7000688F798F838590E088719070009751F4E8
-:104C8000848D958DA68DB78D8A8B9B8BAC8BBD8BC0
-:104C900081E00CC0409711F59E012E5E3F4F8A8D3A
-:104CA0009B8D0E9494308823C9F084E08C83812FEF
-:104CB0008F708B831D821E821F82188619861A862A
-:104CC0001B861C8616FD02C081E009C0CE0140E0B3
-:104CD00050E060E070E00E941E2201C080E0DF91A1
-:104CE000CF911F910895DF92EF92FF920F931F9340
-:104CF000CF93DF938C01EB017A01D22EFC018481EA
-:104D0000882341F5822F8073803321F18A8D9B8D1A
-:104D1000938F828FE5E0440F551FEA95E1F760E03D
-:104D200070E0CE010E9404218823A1F0CE010E94F0
-:104D30001A24FC01009771F08081882359F0853E88
-:104D400049F08E3239F06E2D6F70C8014D2D0E94E2
-:104D5000052601C080E0DF91CF911F910F91FF9058
-:104D6000EF90DF9008958F929F92AF92BF92CF9273
-:104D7000DF92EF92FF920F931F93DF93CF93CDB704
-:104D8000DEB7AA970FB6F894DEBF0FBECDBF8C0179
-:104D9000FC011582168217821086118612861386F0
-:104DA0001486BAE88B2EB1E09B2E5E010894A11CFC
-:104DB000B11C53C09A8289821D82C8010E941A24A4
-:104DC000FC01009709F463C08081882309F454C072
-:104DD000853E09F442C08E3209F43FC0838583FDCD
-:104DE0003CC0A7019601A5E05695479537952795B4
-:104DF000AA95D1F77901C501B801A90121E00E9466
-:104E00007326882309F443C08D81843021F4C501C1
-:104E10000E94B32606C08C8182608C83C5010E94EB
-:104E2000E9228823A1F10894E11CF11CF5E0EE0CC5
-:104E3000FF1CFA95E1F7A70160E070E0F8018185B9
-:104E40009285A385B48584179507A607B70729F02F
-:104E5000C8010E9404218823D1F0F801C184D284C2
-:104E6000E384F48482899389A489B589C816D90614
-:104E7000EA06FB0608F49ECFF80184818250823056
-:104E800010F481E005C0C8010E94642401C080E0E4
-:104E9000AA960FB6F894DEBF0FBECDBFCF91DF91BB
-:104EA0001F910F91FF90EF90DF90CF90BF90AF9048
-:104EB0009F908F9008952F923F924F925F926F92A2
-:104EC0007F928F929F92AF92BF92CF92DF92EF929A
-:104ED000FF920F931F93DF93CF93CDB7DEB7E39786
-:104EE0000FB6F894DEBF0FBECDBF6C016BA74CA709
-:104EF00039014801FEA6EDA6FC0115821682178233
-:104F0000108611861286138614865CE1A52EB12CBC
-:104F1000A80EB91E862F90E09C012370307038AB2C
-:104F20002FA7FC01E170F070FAABE9AB34E0232E5F
-:104F3000312C28223922F42FFE5FFBAB22E0422ED7
-:104F4000512C48225922A8C0F8018081882309F4F5
-:104F5000AAC0853E09F4A0C08E3209F49DC0C801E4
-:104F60002DA53EA5F9010995882309F495C0611482
-:104F7000710471F08114910459F0C801B5010E94C7
-:104F8000A220C401B501F3010995882309F484C066
-:104F9000FF2408C081E297E060E240E050E00E9418
-:104FA0009236F3943CA5F316A9F78FA598A9892BFF
-:104FB00011F460E001C06EE0C8010E947425E9A907
-:104FC000FAA9EF2B89F0F801808D918D0E9444257C
-:104FD00081E297E060E240E050E00E949236F80102
-:104FE000868997890E941525F8018385887180310B
-:104FF000A9F04114510491F081E297E060E240E0B1
-:1050000050E00E949236F801448D558D668D778D63
-:1050100081E297E02AE030E00E942A3681E297E0C0
-:105020000E94A63621143104B9F1F80183858871F4
-:10503000803191F5F60181859285A385B48505E0DF
-:10504000B695A795979587950A95D1F77C012AE89B
-:1050500031E03A8329831D82AC0141505040CE019A
-:105060000196B60121E00E947326882351F0CE01FB
-:1050700001966BA54BA920E030E000E010E00E9413
-:105080006C2815E0EE0CFF1C1A95E1F7A70160E013
-:1050900070E0C6010E940421C6010E941A248C01FE
-:1050A000009709F051CFE3960FB6F894DEBF0FBE1C
-:1050B000CDBFCF91DF911F910F91FF90EF90DF90C7
-:1050C000CF90BF90AF909F908F907F906F905F90A8
-:1050D0004F903F902F9008956F927F928F929F9262
-:1050E000AF92BF92CF92DF92EF92FF920F931F93F6
-:1050F0006C01762E642E5901E9E9EE2EE0E2FE2ED7
-:105100000E945B27C601672D462D950171E9E72EA8
-:1051100070E2F72E0E945B271F910F91FF90EF9096
-:10512000DF90CF90BF90AF909F908F907F906F90C7
-:105130000895CF93DF93EC019C012B5F3F4F8A8D45
-:105140009B8D41E050E060E070E00E9403318823D5
-:10515000A1F08E899F89A88DB98D0097A105B10511
-:1051600059F48D819E81AF81B8858E8B9F8BA88FDE
-:10517000B98F8B8180688B8381E0DF91CF91089517
-:105180002F923F924F925F927F928F929F92AF9217
-:10519000BF92CF92DF92EF92FF920F931F93DF9314
-:1051A000CF9300D000D000D0CDB7DEB76C01162F62
-:1051B000072F5E834D83DC0114968C911497813008
-:1051C00009F075C113968C9181FF71C18FC1F601F1
-:1051D000428953896489758981859285A385B485BF
-:1051E00084179507A607B70731F0C6010E9404216E
-:1051F000882309F45CC1812F902F9C0129012D8007
-:105200003E8019C1D6015A96ED91FC915B97DA0167
-:10521000C90119E0B695A795979587951A95D1F785
-:1052200074807A947822AFEF8A2EA1E09A2E82229F
-:105230009322772009F050C08114910409F04CC0EA
-:10524000D60115964D915D916D917C911897411500
-:1052500051056105710581F456968D919D910D90D2
-:10526000BC91A02D0097A105B10559F1F6018583E8
-:105270009683A783B08730C0CF019E012F5F3F4F39
-:105280000E94C82F882319F440E050E016C12981FC
-:105290003A814B815C81D6015A96ED91FC915B97E6
-:1052A0008789803129F088EF9FEFAFEFBFE004C01E
-:1052B00088EF9FEFA0E0B0E0281739074A075B07A7
-:1052C00030F0C6010E949928882331F4F0C0F6011D
-:1052D000258336834783508780E092E088199909B7
-:1052E00051018215930508F45C01D6015A96ED919F
-:1052F000FC915B971596ED90FD900D911C91189780
-:105300008EEF9FEFAFEFBFEFE80EF91E0A1F1B1FD6
-:10531000058404C0EE0CFF1C001F111F0A94D2F775
-:1053200086859785A089B189E80EF91E0A1F1B1F83
-:10533000E70CF11C011D111D90E0A91692E0B906C1
-:1053400051F58091820190918301A0918401B091E7
-:1053500085018E159F05A007B10761F48FEF9FEFC0
-:10536000AFEFBFEF8093820190938301A0938401FC
-:10537000B093850180910C0790910D07B801A701AA
-:1053800092010E94E91D882309F491C0A0E0B2E0D7
-:105390004A0E5B1E3EC08114910409F5F601218579
-:1053A00032854385548582899389A489B5892817D4
-:1053B00039074A075B0798F00E944D2D882309F4AE
-:1053C00076C0E0928201F0928301009384011093F1
-:1053D000850180910E07816080930E0708C0C80187
-:1053E000B70141E00E94AC2D882309F460C094010C
-:1053F000245F3A4FA9014A0D5B1DD201F90102C099
-:105400008D918193E417F507D9F7E21BF30B4E0E4C
-:105410005F1E2A183B08950140E050E0F6018185A7
-:105420009285A385B485820F931FA41FB51F818722
-:105430009287A387B487D60119962D913D914D91FE
-:105440005C911C972114310409F0DCCE52968D91A9
-:105450009D910D90BC91A02D82179307A407B507CD
-:1054600048F4F601228B338B448B558B8381806803
-:10547000838311C080910A0590910B05892B59F007
-:105480008D819E81892B39F0D60113968C911397CB
-:10549000806813968C93F601838183FF05C0C60153
-:1054A0000E94CA21882319F04D815E8106C081E0E7
-:1054B000D60112968C934FEF5FEFCA0126960FB676
-:1054C000F894DEBF0FBECDBFCF91DF911F910F913A
-:1054D000FF90EF90DF90CF90BF90AF909F908F9014
-:1054E0007F905F904F903F902F90089582FD6FCEF8
-:1054F00082CEDB010D900020E9F71197A61BB70BB8
-:10550000AD010E94C0280895DF93CF930F92CDB7CD
-:10551000DEB76983BE016F5F7F4F41E050E00E94BC
-:10552000C0280F90CF91DF910895DF92EF92FF9204
-:105530000F931F93CF93DF93EC010E949928882348
-:1055400009F44EC0EA8DFB8DED80FE800F81188539
-:105550008EEF9FEFAFEFBFEFE80EF91E0A1F1B1F84
-:10556000058404C0EE0CFF1C001F111F0A94D2F723
-:1055700086859785A089B189E80EF91E0A1F1B1F31
-:10558000D4800894E108F108010911090BC0C80191
-:10559000B7016D0D711D811D911D0E94882D8823FD
-:1055A000F9F0DA94DD2099F7EA8DFB8D20E032E006
-:1055B00040E050E0058404C0220F331F441F551FF4
-:1055C0000A94D2F78A899B89AC89BD89820F931F7F
-:1055D000A41FB51F8A8B9B8BAC8BBD8B81E001C058
-:1055E00080E0DF91CF911F910F91FF90EF90DF90BE
-:1055F00008956F927F928F929F92AF92BF92CF92B7
-:10560000DF92EF92FF920F931F93DF93CF93CDB76B
-:10561000DEB72B970FB6F894DEBF0FBECDBF5C018F
-:105620006B01822EDC0114968C91882309F0D2C084
-:10563000CA018E010F5F1F4FB8010E94C32088234B
-:1056400009F4C8C0F601828D938DD5015B969C93B9
-:105650008E935A971582168217821086D601199654
-:105660001D921D921D921C921C979924380141C0D5
-:10567000C6010E941A24FC01009709F4ABC085E022
-:1056800016950795F794E7948A95D1F71E2D1F700C
-:105690008081882311F0853ED1F4992091F4D501C1
-:1056A00051961C9351972091820130918301409132
-:1056B0008401509185011D962D933D934D935C93EC
-:1056C00050978081882399F49924939421C0C30131
-:1056D000BF014BE050E00E94EA05009751F4882D8D
-:1056E0008073803309F476C0C501612F6FC099249F
-:1056F0009394F601E184F284038514858289938969
-:10570000A489B589E816F9060A071B0708F4B0CF83
-:10571000882D8271823109F05DC0992041F0C50168
-:1057200061E00E94AD218C01009789F453C0D6013D
-:1057300014968C91823009F44DC0C6010E94952ABE
-:10574000882309F447C0F501118A0CE015E080E2D6
-:10575000D8011D928A95E9F7D801FE0131968BE0B8
-:1057600001900D928150E1F7E0910A05F0910B054F
-:10577000309739F0B801625F7F4FC80140960995B4
-:1057800009C081E298E2F801918B808B80E098E07B
-:1057900097878687D80150968D919C915197539603
-:1057A0009C938E93529759969C938E9358971E96DE
-:1057B0008D919C911F9757969C938E9356970E941C
-:1057C0004D2D882339F0C501F5016189482D0E94CE
-:1057D000052601C080E02B960FB6F894DEBF0FBE01
-:1057E000CDBFCF91DF911F910F91FF90EF90DF9090
-:1057F000CF90BF90AF909F908F907F906F900895C3
-:105800000F931F93DF93CF93CDB7DEB7AA970FB651
-:10581000F894DEBF0FBECDBF9C01AB018AE891E0DA
-:105820009A8389831D828E010F5F1F4FC801B901C2
-:1058300022E00E94F92A882319F0C8010E94E92277
-:10584000AA960FB6F894DEBF0FBECDBFCF91DF9101
-:105850001F910F9108956F927F928F929F92AF92B6
-:10586000BF92CF92DF92EF92FF920F931F93CF934D
-:10587000DF93EC013B014A0159016115710509F4FF
-:105880004AC04115510509F446C01D821E821F827F
-:10589000188619861A861B861C869CE1C92ED12C77
-:1058A000CC0EDD1EEE24FF2487012EC080818823CC
-:1058B000A9F1853E49F18E3239F18385887121F550
-:1058C000CF01B6010E94A220C401B601F3010995DF
-:1058D0008823D1F0CE01B6010E94002C882371F0FC
-:1058E0000894E11CF11C011D111D1D821E821F82E6
-:1058F000188619861A861B861C8606C0A114B10458
-:1059000019F0C601F5010995CE010E941A24FC0187
-:10591000009761F603C0EE24FF248701B701C80198
-:10592000DF91CF911F910F91FF90EF90DF90CF907B
-:10593000BF90AF909F908F907F906F900895EF925F
-:10594000FF920F931F93DF93CF93CDB7DEB7A0974E
-:105950000FB6F894DEBF0FBECDBF8C017B0123E3F1
-:105960000E94F92A882309F48AC081E0D80113969D
-:105970008C93139784E014968C93C8010E94952A07
-:10598000882309F47CC0C8010E94CA21882309F435
-:1059900076C0C80161E00E94AD21FC01009709F4C6
-:1059A0006EC080E18387DE01119680E201900D9246
-:1059B0008150E1F7FE01329620E2CE010C96219350
-:1059C000E817F907E1F78EE28983D8015A96ED913D
-:1059D000FC915B9756966D917D918D919C91599715
-:1059E0006250704080409040058404C0660F771F6D
-:1059F000881F991F0A94D2F72685378540895189D7
-:105A0000620F731F841F951F41E00E94AC2D8823F5
-:105A1000B1F1ACE0B5E0FE01319680E201900D926B
-:105A20008150E1F78EE28A83F701848182508230CF
-:105A300028F41C8E1B8E1E8A1D8A0CC0F7018689D5
-:105A40009789A08DB18D9C8F8B8FCD01AA27BB2705
-:105A50009E8B8D8BACE2B5E0FE01319680E2019029
-:105A60000D928150E1F780E490E0A0E0B0E0F80111
-:105A700081879287A387B4870E944D2D01C080E063
-:105A8000A0960FB6F894DEBF0FBECDBFCF91DF91C9
-:105A90001F910F91FF90EF90089580910E0788233A
-:105AA00099F140918201509183016091840170913C
-:105AB000850180910C0790910D072CE035E00E9444
-:105AC000E91D882319F140910F075091100760914B
-:105AD000110770911207411551056105710591F08B
-:105AE00080910C0790910D072CE035E00E94E91D94
-:105AF000882361F010920F0710921007109211077F
-:105B00001092120710920E0781E0089580E0089528
-:105B1000EF92FF920F931F937B018C010E944D2DFA
-:105B20008823A9F0ECE0F5E0119287E0EC30F8076B
-:105B3000D9F7E0928201F0928301009384011093DF
-:105B4000850180910E07816080930E0781E01F918F
-:105B50000F91FF90EF900895DF92EF92FF920F93D5
-:105B60001F937B018C01D42E80918201909183013F
-:105B7000A0918401B09185018E159F05A007B10702
-:105B8000C1F00E944D2D8823D9F080910C0790918F
-:105B90000D07B801A7012CE035E00E94B21F882351
-:105BA00079F0E0928201F0928301009384011093D6
-:105BB000850180910E078D2980930E0781E001C039
-:105BC00080E01F910F91FF90EF90DF9008958F92EA
-:105BD0009F92AF92BF92CF92DF92EF92FF920F937C
-:105BE0001F93CF93DF936C01142F70930D07609375
-:105BF0000C07442321F488249924540140C04530E3
-:105C000008F01CC160E070E080E090E040E00E949D
-:105C1000AC2D882309F412C1C12FD0E02197FE01D9
-:105C200074E0EE0FFF1F7A95E1F7E45FFA4FE2545C
-:105C3000FE4F8081EE5BF14090E08F779070892B72
-:105C400009F0FCC0E653FE4F80819181A281B381AF
-:105C500084369105A105B10508F4F0C064E0CC0FCD
-:105C6000DD1F6A95E1F7CE52D94F88809980AA80CE
-:105C7000BB8081149104A104B10409F4DFC0C50103
-:105C8000B40140E00E94AC2D882309F4D7C0809174
-:105C90001705909118058050924009F0CFC02091CF
-:105CA0001C05222309F4CAC080911A0590911B0596
-:105CB000892B09F4C3C080911905882309F4BEC05B
-:105CC000F601228B809119058483158661E070E0CE
-:105CD00007C04F5FF60145874150483008F0AEC01D
-:105CE000F6014585848190E09B01042E02C0220FBD
-:105CF000331F0A94E2F78217930759F72091220580
-:105D0000309123052115310519F040E050E008C01D
-:105D10002091300530913105409132055091330585
-:105D2000F6012583368347835087E0901A05F0906B
-:105D30001B0500E010E0E80CF91C0A1D1B1DE38A9E
-:105D4000F48A058B168B80911D0590911E05918F0D
-:105D5000808F60911C0570E080E090E00E943D37EC
-:105D60006E0D7F1D801F911FF601628F738F848FD0
-:105D7000958F20911D0530911E0555E0220F331F90
-:105D80005A95E1F721503E4F232F3327269540E0C7
-:105D900050E0260F371F481F591F26873787408B33
-:105DA000518B80911F0590912005009719F0A0E07C
-:105DB000B0E008C080912C0590912D05A0912E0592
-:105DC000B0912F0585017401E21AF30A040B150B3B
-:105DD000A8019701280F391F4A1F5B1FF601058490
-:105DE00004C056954795379527950A94D2F7218791
-:105DF000328743875487253FFFE03F07F0E04F0796
-:105E0000F0E05F0710F48CE006C0255F3F4F404094
-:105E1000504028F480E1F601878B81E010C080912A
-:105E2000380590913905A0913A05B0913B05F601EE
-:105E3000828F938FA48FB58F80E2EECF80E0DF91C9
-:105E4000CF911F910F91FF90EF90DF90CF90BF9077
-:105E5000AF909F908F9008954F925F926F927F9234
-:105E60008F929F92AF92BF92CF92DF92EF92FF926A
-:105E70000F931F93CF93DF93EC016A017B012801FD
-:105E80003901423051056105710508F46FC08985FB
-:105E90009A85AB85BC850196A11DB11D8417950718
-:105EA000A607B70708F462C02B893C894D895E8933
-:105EB0008F89803129F499278F2D7E2D6D2D09C072
-:105EC000C701B60117E096958795779567951A955E
-:105ED000D1F74B015C01820E931EA41EB51E80916A
-:105EE000820190918301A0918401B091850188166F
-:105EF0009906AA06BB0639F0C501B40140E00E942C
-:105F0000AC2D882399F18F89803149F4F601F07026
-:105F1000EE0FFF1FE45FFA4F518240820DC0F60181
-:105F2000EF77F070EE0FFF1FEE0FFF1FE45FFA4FE9
-:105F3000408251826282738280910E0781608093D9
-:105F40000E078A89823080F08D819E81AF81B8856D
-:105F5000880E991EAA1EBB1E80920F0790921007F2
-:105F6000A0921107B092120781E001C080E0DF919A
-:105F7000CF911F910F91FF90EF90DF90CF90BF9046
-:105F8000AF909F908F907F906F905F904F9008950B
-:105F9000CF92DF92EF92FF920F931F93CF93DF93F5
-:105FA000EC017A018B01690189859A85AB85BC85F5
-:105FB0000196A11DB11D84179507A607B70708F420
-:105FC00050C02B893C894D895E898F89803129F4A5
-:105FD0009927812F702F6F2D09C0C801B701E7E005
-:105FE0009695879577956795EA95D1F7260F371F90
-:105FF000481F591F8091820190918301A0918401D3
-:10600000B0918501281739074A075B0739F0CA01A3
-:10601000B90140E00E94AC2D882319F18F898031AD
-:1060200059F4F701F070EE0FFF1FE45FFA4F808123
-:106030009181A0E0B0E00EC0F701EF77F070EE0FB5
-:10604000FF1FEE0FFF1FE45FFA4F80819181A28155
-:10605000B381BF70F60180839183A283B38381E013
-:1060600001C080E0DF91CF911F910F91FF90EF90E1
-:10607000DF90CF900895AF92BF92CF92DF92EF92D0
-:10608000FF920F931F93DF93CF9300D000D0CDB733
-:10609000DEB76C017A018B0182E090E0A0E0B0E015
-:1060A000F60180839183A283B3835E010894A11CCF
-:1060B000B11CC601B801A70195010E94C82F882311
-:1060C00019F1C601B801A70100E010E020E030E0BE
-:1060D0000E942C2F8823C1F0E980FA800B811C815B
-:1060E000F6018789803129F088EF9FEFAFEFBFE09D
-:1060F00004C088EF9FEFA0E0B0E0E816F9060A07B9
-:106100001B07B8F281E001C080E00F900F900F9064
-:106110000F90CF91DF911F910F91FF90EF90DF9043
-:10612000CF90BF90AF9008954F925F926F927F9201
-:106130008F929F92AF92BF92CF92DF92EF92FF9297
-:106140000F931F93DF93CF9300D000D0CDB7DEB76E
-:106150006C0149835A836B837C833901EE24FF24CD
-:1061600087012E010894411C511C812CA2E09A2E1B
-:10617000A12CB12C49815A816B817C81C60192018D
-:106180000E94C82F882351F1D501C401F60105846E
-:1061900004C0880F991FAA1FBB1F0A94D2F7E80EEC
-:1061A000F91E0A1F1B1F29813A814B815C81878957
-:1061B000803129F088EF9FEFAFEFBFE004C088EF98
-:1061C0009FEFA0E0B0E0281739074A075B0790F27D
-:1061D000F301E082F1820283138381E00F900F903C
-:1061E0000F900F90CF91DF911F910F91FF90EF9043
-:1061F000DF90CF90BF90AF909F908F907F906F90E7
-:106200005F904F9008952F923F924F925F926F92BE
-:106210007F928F929F92AF92BF92CF92DF92EF9236
-:10622000FF920F931F93DF93CF93CDB7DEB72F97D6
-:106230000FB6F894DEBF0FBECDBF1C014A875B8747
-:106240006C877D873F872E87D9010D911D912D91F8
-:106250003C91011511052105310549F0480159010D
-:106260000894811C911CA11CB11C198610C0FC0152
-:1062700080809180A280B38019868A859B85AC85B9
-:10628000BD850197A105B10511F491E09987D10170
-:1062900019968D919D910D90BC91A02D0196A11DF7
-:1062A000B11D8D839E83AF83B8877501640144243B
-:1062B000552432018E010F5F1F4FF10181859285B8
-:1062C000A385B485481659066A067B0608F090C077
-:1062D0008D819E81AF81B8858C159D05AE05BF056A
-:1062E00050F482E0882E912CA12CB12CB2E0CB2E60
-:1062F000D12CE12CF12CC101B701A60198010E941B
-:10630000C82F882309F474C089819A81AB81BC812C
-:10631000A70196012F5F3F4F4F4F5F4F0097A10599
-:10632000B10519F049015A010DC0281939094A0966
-:106330005B098A859B85AC85BD85281739074A0787
-:106340005B0759F00894411C511C611C711C089496
-:10635000C11CD11CE11CF11CB0CFC101A601B701C9
-:106360000FEF1FEF2FEF3FE00E942C2F882399F4AF
-:106370003FC026013701089441085108610871089F
-:10638000C101B301A201970186010E942C2F88232D
-:1063900079F1730162018C149D04AE04BF0448F3CB
-:1063A000AE85BF854D915D916D917C9141155105F3
-:1063B0006105710539F0C101950184010E942C2FFE
-:1063C0008823B1F0EE85FF8580829182A282B3821C
-:1063D000F985FF2359F00894811C911CA11CB11C64
-:1063E000D1018D929D92AD92BC92139781E001C034
-:1063F00080E02F960FB6F894DEBF0FBECDBFCF91D1
-:10640000DF911F910F91FF90EF90DF90CF90BF90A1
-:10641000AF909F908F907F906F905F904F903F9044
-:106420002F9008951F920F920FB60F9211242F9361
-:106430003F938F939F93AF93BF9380911707909152
-:106440001807A0911907B0911A0730911B07019600
-:10645000A11DB11D232F2D5F2D3720F02D57019643
-:10646000A11DB11D20931B07809317079093180758
-:10647000A0931907B0931A078091130790911407FE
-:10648000A0911507B09116070196A11DB11D80932B
-:10649000130790931407A0931507B0931607BF91A5
-:1064A000AF919F918F913F912F910F900FBE0F90C1
-:1064B0001F9018958FB7F8942091170730911807FF
-:1064C0004091190750911A078FBFB901CA01089569
-:1064D0009B01AC017FB7F89480911307909114074A
-:1064E000A0911507B091160766B5A89B05C06F3F30
-:1064F00019F00196A11DB11D7FBFBA2FA92F982FAA
-:106500008827860F911DA11DB11D62E0880F991F7C
-:10651000AA1FBB1F6A95D1F7BC012DC0FFB7F89425
-:106520008091130790911407A0911507B091160759
-:10653000E6B5A89B05C0EF3F19F00196A11DB11D5E
-:10654000FFBFBA2FA92F982F88278E0F911DA11D4D
-:10655000B11DE2E0880F991FAA1FBB1FEA95D1F772
-:10656000861B970B885E9340C8F221503040404014
-:10657000504068517C4F211531054105510571F698
-:106580000895789484B5826084BD84B5816084BDAB
-:1065900085B5826085BD85B5816085BDEEE6F0E09C
-:1065A000808181608083E1E8F0E0108280818260F8
-:1065B0008083808181608083E0E8F0E08081816079
-:1065C0008083E1EBF0E0808184608083E0EBF0E0A9
-:1065D000808181608083EAE7F0E08081846080834D
-:1065E00080818260808380818160808380818068F7
-:1065F00080831092C1000895482F50E0CA0187514E
-:10660000954FFC0124914B52554FFA0184918823F8
-:10661000C1F0E82FF0E0EE0FFF1FE954F54FA59110
-:10662000B491662341F49FB7F8948C91209582230E
-:106630008C939FBF08959FB7F8948C91822B8C9375
-:106640009FBF0895482F50E0CA018350954FFC0129
-:106650002491CA018751954FFC0134914B52554FFB
-:10666000FA019491992309F440C0222331F1233097
-:1066700021F4809180008F7705C0243031F480911F
-:1066800080008F7D8093800018C0213019F484B57C
-:106690008F7704C0223021F484B58F7D84BD0DC076
-:1066A000263021F48091B0008F7705C0273029F47F
-:1066B0008091B0008F7D8093B000E92FF0E0EE0F65
-:1066C000FF1FEF53F54FA591B491662341F49FB797
-:1066D000F8948C91309583238C939FBF08959FB736
-:1066E000F8948C91832B8C939FBF0895682F70E052
-:1066F000CB018350954FFC012491CB018751954FDD
-:10670000FC0144916B52754FFB019491992319F44C
-:1067100020E030E038C0222331F1233021F4809191
-:1067200080008F7705C0243031F4809180008F7D08
-:106730008093800018C0213019F484B58F7704C08D
-:10674000223021F484B58F7D84BD0DC0263021F424
-:106750008091B0008F7705C0273029F48091B00078
-:106760008F7D8093B000892F90E0880F991F85530B
-:10677000954FFC01A591B4918C9120E030E08423E9
-:1067800011F021E030E0C90108955F926F927F928D
-:106790008F929F92AF92BF92CF92DF92EF92FF9231
-:1067A0000F931F93CF93DF93EC013A014B014134D8
-:1067B00082E458078FE0680780E078070CF07FC01C
-:1067C00060E874E88EE190E0A40193010E948A37AA
-:1067D0002150304040405040CA01B90122E030E031
-:1067E00040E050E00E948A3759016A01A6019501F4
-:1067F000209530954095509594E0220F331F441F0B
-:10680000551F9A95D1F760E074E284EF90E00E9402
-:106810008A37CA01B9012FEF30E040E050E00E9412
-:106820003D37A40193010E948A37C90181509F4FCF
-:10683000181619061CF4522E5A9403C0552453946A
-:10684000521A60E079E08DE390E0A40193010E9488
-:106850008A372150304040405040CA01B90122E0FF
-:1068600030E040E050E00E948A3720953095409516
-:10687000509583E0220F331F441F551F8A95D1F78F
-:1068800060E074E284EF90E00E948A37CA01B901A7
-:106890002FEF30E040E050E00E943D37A40193012B
-:1068A0000E948A37C90181509F4F181619061CF49F
-:1068B000822F815002C081E0821B851500F5E8859A
-:1068C000F98581E090E00A8802C0880F991F0A9438
-:1068D000E2F7808360E079E08DE390E0A40193012A
-:1068E0000E948A372150304040405040CA01B901CF
-:1068F00022E030E040E050E00E948A3704C0E885A2
-:10690000F98510829501EC81FD813083EE81FF8154
-:106910002083EA85FB85208141E050E0CA010E8496
-:1069200002C0880F991F0A94E2F7282B2083EA857A
-:10693000FB852081CA010F8402C0880F991F0A9429
-:10694000E2F7282B2083EA85FB858081088802C036
-:10695000440F551F0A94E2F7842B8083DF91CF9177
-:106960001F910F91FF90EF90DF90CF90BF90AF906D
-:106970009F908F907F906F905F90089580E090E05F
-:106980000895DC011296ED91FC91139723813481D7
-:10699000818192818217930719F42FEF3FEF05C091
-:1069A000E20FF31F8081282F30E0C9010895FC0118
-:1069B000A281B3811396ED91FC91149711968D915C
-:1069C0009C9112978E179F0719F42FEF3FEF09C084
-:1069D000EA0FFB1F808114961C921E921397282F9A
-:1069E00030E0C9010895DC011296ED91FC911397F6
-:1069F00083819481928381830895FC01A085B18570
-:106A000021898C9190E0022E02C0959587950A9479
-:106A1000E2F780FFF6CF0484F585E02D60830895CA
-:106A200084E991E090932207809321078CE197E01D
-:106A3000909324078093230785EC90E0909326079A
-:106A40008093250784EC90E0909328078093270794
-:106A500080EC90E090932A078093290781EC90E0E6
-:106A600090932C0780932B0786EC90E090932E0751
-:106A700080932D0784E080932F0783E08093300775
-:106A800087E08093310785E08093320781E080932F
-:106A9000330708950E94C1320E945F0F0E94AA1C12
-:106AA000FDCF0F931F93CF93DF938C01EB0109C0B0
-:106AB0002196D801ED91FC910190F081E02DC80163
-:106AC000099568816623A1F7DF91CF911F910F91FE
-:106AD0000895EF92FF920F931F93CF93DF938C0152
-:106AE0007B01EA010CC0D7016D917D01D801ED91C8
-:106AF000FC910190F081E02DC80109952197209724
-:106B000091F7DF91CF911F910F91FF90EF90089532
-:106B1000DC01ED91FC910280F381E02D099508954F
-:106B20002F923F924F925F926F927F928F929F929D
-:106B3000AF92BF92CF92DF92EF92FF920F931F938B
-:106B4000DF93CF93CDB7DEB7A0970FB6F894DEBF33
-:106B50000FBECDBF1C016A017B01411551056105C6
-:106B6000710549F440E350E060E070E020E030E07F
-:106B70000E945C3656C0882499245401422E552424
-:106B80006624772401E010E00C0F1D1F080D191D6D
-:106B9000C701B601A30192010E946837F801608322
-:106BA0000894811C911CA11CB11CC701B601A30152
-:106BB00092010E946837C901DA016C017D01C1149C
-:106BC000D104E104F104F1F681E0E82EF12CEC0EA1